X-Git-Url: http://erislabs.net/gitweb/?a=blobdiff_plain;f=lib%2Fbackupfile.c;h=b6a557df05dabcc1c76aa42176b2f0a14e0c5e1e;hb=2c6d91f6bcfffcaa7320af7ea4e2a9c970c0966e;hp=4b0f2ec580543d5d1e0bd3b246db752841dd7a9b;hpb=56a7a6715289da1dc2714ed125054ae68b828fb8;p=gnulib.git diff --git a/lib/backupfile.c b/lib/backupfile.c index 4b0f2ec58..b6a557df0 100644 --- a/lib/backupfile.c +++ b/lib/backupfile.c @@ -1,5 +1,5 @@ /* backupfile.c -- make Emacs style backup file names - Copyright (C) 1990,1991,1992,1993,1995,1997 Free Software Foundation, Inc. + Copyright (C) 1990-1997, 1998, 1999 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -74,7 +74,7 @@ char *malloc (); # include #endif #ifndef CHAR_BIT -#define CHAR_BIT 8 +# define CHAR_BIT 8 #endif /* Upper bound on the string length of an integer converted to string. 302 / 1000 is ceil (log10 (2.0)). Subtract 1 for the sign bit; @@ -97,15 +97,12 @@ char *malloc (); # define REAL_DIR_ENTRY(dp) 1 #endif -/* Which type of backup file names are generated. */ -enum backup_type backup_type = none; - /* The extension added to file names to produce a simple (as opposed to numbered) backup file name. */ -const char *simple_backup_suffix = ".orig"; +const char *simple_backup_suffix = "~"; -static int max_backup_version __BACKUPFILE_P ((const char *, const char *)); -static int version_number __BACKUPFILE_P ((const char *, const char *, size_t)); +static int max_backup_version PARAMS ((const char *, const char *)); +static int version_number PARAMS ((const char *, const char *, size_t)); /* Return the name of the new backup file for file FILE, allocated with malloc. Return 0 if out of memory. @@ -113,8 +110,7 @@ static int version_number __BACKUPFILE_P ((const char *, const char *, size_t)); Do not call this function if backup_type == none. */ char * -find_backup_file_name (file) - const char *file; +find_backup_file_name (const char *file, enum backup_type backup_type) { size_t backup_suffix_size_max; size_t file_len = strlen (file); @@ -163,9 +159,7 @@ find_backup_file_name (file) */ static int -max_backup_version (file, dir) - const char *file; - const char *dir; +max_backup_version (const char *file, const char *dir) { DIR *dirp; struct dirent *dp; @@ -199,10 +193,7 @@ max_backup_version (file, dir) */ static int -version_number (base, backup, base_length) - const char *base; - const char *backup; - size_t base_length; +version_number (const char *base, const char *backup, size_t base_length) { int version; const char *p; @@ -235,18 +226,13 @@ static const enum backup_type backup_types[] = Unique abbreviations are accepted. */ enum backup_type -get_version (version) - const char *version; +get_version (const char *version) { - int i; - + enum backup_type type; if (version == 0 || *version == 0) - return numbered_existing; - i = argmatch (version, backup_args); - if (i < 0) - { - invalid_arg ("version control type", version, i); - exit (2); - } - return backup_types[i]; + type = numbered_existing; + else + XARGMATCH (&type, "version control type", version, + backup_args, backup_types, exit (2)); + return type; }