Mercurial > hg > xemacs-beta
comparison src/filelock.c @ 647:b39c14581166
[xemacs-hg @ 2001-08-13 04:45:47 by ben]
removal of unsigned, size_t, etc.
author | ben |
---|---|
date | Mon, 13 Aug 2001 04:46:48 +0000 |
parents | 023b83f4e54b |
children | fdefd0186b75 |
comparison
equal
deleted
inserted
replaced
646:00c54252fe4f | 647:b39c14581166 |
---|---|
79 | 79 |
80 typedef struct | 80 typedef struct |
81 { | 81 { |
82 char *user; | 82 char *user; |
83 char *host; | 83 char *host; |
84 unsigned long pid; | 84 pid_t pid; |
85 } lock_info_type; | 85 } lock_info_type; |
86 | 86 |
87 /* When we read the info back, we might need this much more, | 87 /* When we read the info back, we might need this much more, |
88 enough for decimal representation plus null. */ | 88 enough for decimal representation plus null. */ |
89 #define LOCK_PID_MAX (4 * sizeof (unsigned long)) | 89 #define LOCK_PID_MAX (4 * sizeof (pid_t)) |
90 | 90 |
91 /* Free the two dynamically-allocated pieces in PTR. */ | 91 /* Free the two dynamically-allocated pieces in PTR. */ |
92 #define FREE_LOCK_INFO(i) do { xfree ((i).user); xfree ((i).host); } while (0) | 92 #define FREE_LOCK_INFO(i) do { xfree ((i).user); xfree ((i).host); } while (0) |
93 | 93 |
94 /* Write the name of the lock file for FN into LFNAME. Length will be | 94 /* Write the name of the lock file for FN into LFNAME. Length will be |
100 static void | 100 static void |
101 fill_in_lock_file_name (Bufbyte *lockfile, Lisp_Object fn) | 101 fill_in_lock_file_name (Bufbyte *lockfile, Lisp_Object fn) |
102 { | 102 { |
103 Bufbyte *file_name = XSTRING_DATA (fn); | 103 Bufbyte *file_name = XSTRING_DATA (fn); |
104 Bufbyte *p; | 104 Bufbyte *p; |
105 size_t dirlen; | 105 Bytecount dirlen; |
106 | 106 |
107 for (p = file_name + XSTRING_LENGTH (fn) - 1; | 107 for (p = file_name + XSTRING_LENGTH (fn) - 1; |
108 p > file_name && !IS_ANY_SEP (p[-1]); | 108 p > file_name && !IS_ANY_SEP (p[-1]); |
109 p--) | 109 p--) |
110 ; | 110 ; |
139 host_name = ""; | 139 host_name = ""; |
140 | 140 |
141 lock_info_str = (char *)alloca (strlen (user_name) + strlen (host_name) | 141 lock_info_str = (char *)alloca (strlen (user_name) + strlen (host_name) |
142 + LOCK_PID_MAX + 5); | 142 + LOCK_PID_MAX + 5); |
143 | 143 |
144 sprintf (lock_info_str, "%s@%s.%lu", user_name, host_name, | 144 sprintf (lock_info_str, "%s@%s.%d", user_name, host_name, getpid ()); |
145 (unsigned long) getpid ()); | |
146 | 145 |
147 err = symlink (lock_info_str, lfname); | 146 err = symlink (lock_info_str, lfname); |
148 if (err != 0 && errno == EEXIST && force) | 147 if (err != 0 && errno == EEXIST && force) |
149 { | 148 { |
150 unlink (lfname); | 149 unlink (lfname); |
347 goto done; | 346 goto done; |
348 | 347 |
349 /* Else consider breaking the lock */ | 348 /* Else consider breaking the lock */ |
350 locker = (char *) alloca (strlen (lock_info.user) + strlen (lock_info.host) | 349 locker = (char *) alloca (strlen (lock_info.user) + strlen (lock_info.host) |
351 + LOCK_PID_MAX + 9); | 350 + LOCK_PID_MAX + 9); |
352 sprintf (locker, "%s@%s (pid %lu)", lock_info.user, lock_info.host, | 351 sprintf (locker, "%s@%s (pid %d)", lock_info.user, lock_info.host, |
353 lock_info.pid); | 352 lock_info.pid); |
354 FREE_LOCK_INFO (lock_info); | 353 FREE_LOCK_INFO (lock_info); |
355 | 354 |
356 attack = call2_in_buffer (BUFFERP (subject_buf) ? XBUFFER (subject_buf) : | 355 attack = call2_in_buffer (BUFFERP (subject_buf) ? XBUFFER (subject_buf) : |
357 current_buffer, Qask_user_about_lock , fn, | 356 current_buffer, Qask_user_about_lock , fn, |