#include <sys/types.h>
#include <sys/stat.h>
-#include "config.h"
+#include <config.h>
#ifdef VMS
#include "vms-pwd.h"
#endif /* USG */
#include "lisp.h"
-#include "paths.h"
+#include <paths.h>
#include "buffer.h"
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.
/* 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), \
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];
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), \
*p = '!';
}
}
-#endif /* SHORT_FILE_NAMES */
+#endif /* !defined HAVE_LONG_FILE_NAMES */
static Lisp_Object
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);
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)
/* 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, "/");
}