Include <config.h> instead of "config.h".
[bpt/emacs.git] / src / filelock.c
index 5b31acb..3955f38 100644 (file)
@@ -19,7 +19,7 @@ the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.  */
 
 #include <sys/types.h>
 #include <sys/stat.h>
-#include "config.h"
+#include <config.h>
 
 #ifdef VMS
 #include "vms-pwd.h"
@@ -42,6 +42,12 @@ extern int errno;
 extern char *egetenv ();
 extern char *strcpy ();
 
+#if defined (__bsdi__) || defined (DECLARE_GETPWUID_WITH_UID_T)
+extern struct passwd *getpwuid (uid_t);
+#else
+extern struct passwd *getpwuid ();
+#endif
+
 #ifdef CLASH_DETECTION
   
 /* If system does not have symbolic links, it does not have lstat.
@@ -67,7 +73,7 @@ char *superlock_path;
 /* Set LOCK to the name of the lock file for the filename FILE.
    char *LOCK; Lisp_Object FILE;  */
 
-#ifdef SHORT_FILE_NAMES
+#ifndef HAVE_LONG_FILE_NAMES
 
 #define MAKE_LOCK_PATH(lock, file) \
   (lock = (char *) alloca (14 + strlen (lock_path) + 1), \
@@ -92,8 +98,7 @@ fill_in_lock_short_file_name (lockfile, fn)
 
   for (p = XSTRING (fn)->data; new = *p++; )
     {
-      new += crc.byte[7];
-      crc.byte[7] = crc.byte[6];
+      new += crc.byte[6];
       crc.byte[6] = crc.byte[5] + new;
       crc.byte[5] = crc.byte[4];
       crc.byte[4] = crc.byte[3];
@@ -107,7 +112,7 @@ fill_in_lock_short_file_name (lockfile, fn)
           crc.byte[4], crc.byte[5], crc.byte[6]);
 }
 
-#else /* !defined SHORT_FILE_NAMES */
+#else /* defined HAVE_LONG_FILE_NAMES */
 
 #define MAKE_LOCK_PATH(lock, file) \
   (lock = (char *) alloca (XSTRING (file)->size + strlen (lock_path) + 1), \
@@ -132,7 +137,7 @@ fill_in_lock_file_name (lockfile, fn)
        *p = '!';
     }
 }
-#endif /* SHORT_FILE_NAMES */
+#endif /* !defined HAVE_LONG_FILE_NAMES */
 
 static Lisp_Object
 lock_file_owner_name (lfname)
@@ -140,7 +145,6 @@ lock_file_owner_name (lfname)
 {
   struct stat s;
   struct passwd *the_pw;
-  extern struct passwd *getpwuid ();
 
   if (lstat (lfname, &s) == 0)
     the_pw = getpwuid (s.st_uid);
@@ -169,10 +173,10 @@ lock_file_owner_name (lfname)
    and put in the Emacs lock directory.  */
 /* (ie., /ka/king/junk.tex -> /!/!ka!king!junk.tex). */
 
-/* If SHORT_FILE_NAMES is defined, the lock file name is the hex
+/* If HAVE_LONG_FILE_NAMES is not defined, the lock file name is the hex
    representation of a 14-bytes CRC generated from the file name
    and put in the Emacs lock directory (not very nice, but it works).
-   (ie., /ka/king/junk.tex -> /!/ec92d3ed24a8f0). */
+   (ie., /ka/king/junk.tex -> /!/12a82c62f1c6da). */
 
 void
 lock_file (fn)
@@ -434,8 +438,9 @@ init_filelock ()
   /* Make sure it ends with a slash.  */
   if (lock_path[strlen (lock_path) - 1] != '/')
     {
-      lock_path = strcpy ((char *) xmalloc (strlen (lock_path) + 2),
-                         lock_path);
+      char *new_path = (char *) xmalloc (strlen (lock_path) + 2);
+      strcpy (new_path, lock_path);
+      lock_path = new_path;
       strcat (lock_path, "/");
     }