X-Git-Url: http://erislabs.net/gitweb/?a=blobdiff_plain;f=lib%2Fbackupfile.c;h=89b5f1e43d4cbfbc0937c268c036a699947e30e4;hb=d33ed582fc804afef36639a9fbcf8a3e242dc7b7;hp=5d8fe25facaba2950e4414c64a25417bc926bb38;hpb=c1e84a1314394b86dd121372a6656bb6c6df349b;p=gnulib.git diff --git a/lib/backupfile.c b/lib/backupfile.c index 5d8fe25fa..89b5f1e43 100644 --- a/lib/backupfile.c +++ b/lib/backupfile.c @@ -18,36 +18,38 @@ /* David MacKenzie . Some algorithms adapted from GNU Emacs. */ +#ifdef HAVE_CONFIG_H +#include +#endif + #include #include #include #include "backupfile.h" -#if defined(STDC_HEADERS) || defined(HAVE_STRING_H) +#ifdef HAVE_STRING_H #include -#define index strchr -#define rindex strrchr #else #include #endif -#if defined(DIRENT) || defined(_POSIX_VERSION) +#ifdef HAVE_DIRENT_H #include #define NLENGTH(direct) (strlen((direct)->d_name)) -#else /* not (DIRENT or _POSIX_VERSION) */ +#else /* not HAVE_DIRENT_H */ #define dirent direct #define NLENGTH(direct) ((direct)->d_namlen) -#ifdef SYSNDIR +#ifdef HAVE_SYS_NDIR_H #include -#endif /* SYSNDIR */ -#ifdef SYSDIR +#endif /* HAVE_SYS_NDIR_H */ +#ifdef HAVE_SYS_DIR_H #include -#endif /* SYSDIR */ -#ifdef NDIR +#endif /* HAVE_SYS_DIR_H */ +#ifdef HAVE_NDIR_H #include -#endif /* NDIR */ -#endif /* DIRENT or _POSIX_VERSION */ +#endif /* HAVE_NDIR_H */ +#endif /* HAVE_DIRENT_H */ -#ifdef VOID_CLOSEDIR +#ifdef CLOSEDIR_VOID /* Fake a return value. */ #define CLOSEDIR(d) (closedir (d), 0) #else @@ -60,11 +62,13 @@ char *malloc (); #endif -#if !defined (isascii) || defined (STDC_HEADERS) -#define isascii(c) 1 +#if defined (STDC_HEADERS) || (!defined (isascii) && !defined (HAVE_ISASCII)) +#define ISASCII(c) 1 +#else +#define ISASCII(c) isascii(c) #endif -#define ISDIGIT(c) (isascii ((unsigned char ) c) \ +#define ISDIGIT(c) (ISASCII ((unsigned char) (c)) \ && isdigit ((unsigned char) (c))) #if defined (HAVE_UNISTD_H) @@ -140,11 +144,11 @@ max_backup_version (file, dir) int highest_version; int this_version; int file_name_length; - + dirp = opendir (dir); if (!dirp) return 0; - + highest_version = 0; file_name_length = strlen (file); @@ -152,7 +156,7 @@ max_backup_version (file, dir) { if (!REAL_DIR_ENTRY (dp) || NLENGTH (dp) <= file_name_length) continue; - + this_version = version_number (file, dp->d_name, file_name_length); if (this_version > highest_version) highest_version = this_version; @@ -191,7 +195,7 @@ version_number (base, backup, base_length) { int version; char *p; - + version = 0; if (!strncmp (base, backup, base_length) && ISDIGIT (backup[base_length])) { @@ -211,7 +215,7 @@ concat (str1, str2) char *str1, *str2; { char *newstr; - char str1_length = strlen (str1); + int str1_length = strlen (str1); newstr = malloc (str1_length + strlen (str2) + 1); if (newstr == 0)