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,