X-Git-Url: http://erislabs.net/gitweb/?a=blobdiff_plain;ds=sidebyside;f=lib%2Fbackupfile.c;h=2ca512532d2ce9313dc4b2fd8a7d063e06e20887;hb=0aaee99cbb17d6508bef411304056c88ef6b3a89;hp=8222d46b853ae38920e73da1b0b3f4b180971d9e;hpb=58ec4b5e10b91f73c01a785293552d617260381b;p=gnulib.git diff --git a/lib/backupfile.c b/lib/backupfile.c index 8222d46b8..2ca512532 100644 --- a/lib/backupfile.c +++ b/lib/backupfile.c @@ -12,8 +12,8 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ + along with this program; if not, write to the Free Software Foundation, + Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /* David MacKenzie . Some algorithms adapted from GNU Emacs. */ @@ -63,13 +63,22 @@ char *malloc (); #endif #if defined (STDC_HEADERS) || (!defined (isascii) && !defined (HAVE_ISASCII)) -# define ISASCII(c) 1 +# define IN_CTYPE_DOMAIN(c) 1 #else -# define ISASCII(c) isascii(c) +# define IN_CTYPE_DOMAIN(c) isascii(c) #endif -#define ISDIGIT(c) (ISASCII ((unsigned char) (c)) \ - && isdigit ((unsigned char) (c))) +#define ISDIGIT_LOCALE(c) (IN_CTYPE_DOMAIN (c) && isdigit (c)) + +/* ISDIGIT differs from ISDIGIT_LOCALE, as follows: + - Its arg may be any int or unsigned int; it need not be an unsigned char. + - It's guaranteed to evaluate its argument exactly once. + - It's typically faster. + Posix 1003.2-1992 section 2.5.2.1 page 50 lines 1556-1558 says that + only '0' through '9' are digits. Prefer ISDIGIT to ISDIGIT_LOCALE unless + it's important to use the locale's definition of `digit' even when the + host does not conform to Posix. */ +#define ISDIGIT(c) ((unsigned) (c) - '0' <= 9) #if defined (HAVE_UNISTD_H) #include @@ -105,7 +114,7 @@ static int version_number (); char * find_backup_file_name (file) - char *file; + const char *file; { char *dir; char *base_versions; @@ -137,13 +146,14 @@ find_backup_file_name (file) static int max_backup_version (file, dir) - char *file, *dir; + const char *file; + const char *dir; { DIR *dirp; struct dirent *dp; int highest_version; int this_version; - int file_name_length; + size_t file_name_length; dirp = opendir (dir); if (!dirp) @@ -171,7 +181,7 @@ max_backup_version (file, dir) static char * make_version_name (file, version) - char *file; + const char *file; int version; { char *backup_name; @@ -189,12 +199,12 @@ make_version_name (file, version) static int version_number (base, backup, base_length) - char *base; - char *backup; + const char *base; + const char *backup; int base_length; { int version; - char *p; + const char *p; version = 0; if (!strncmp (base, backup, base_length) && ISDIGIT (backup[base_length])) @@ -212,7 +222,8 @@ version_number (base, backup, base_length) static char * concat (str1, str2) - char *str1, *str2; + const char *str1; + const char *str2; { char *newstr; int str1_length = strlen (str1);