in get_next_filename(), store the value of digits(ULONG_MAX) in a

static, since it doesn't change and hence doesn't need to be
recalculated


git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3124 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
master
David Lawrence Ramsey 2005-11-09 15:13:00 +00:00
parent 31d7b3667c
commit c1a28fa9ae
2 changed files with 9 additions and 1 deletions

View File

@ -91,6 +91,10 @@ CVS code -
read_file() read_file()
- Remove apparently unneeded logic to handle a case where - Remove apparently unneeded logic to handle a case where
current is NULL, since it shouldn't be NULL there. (DLR) current is NULL, since it shouldn't be NULL there. (DLR)
get_next_filename()
- Store the value of digits(ULONG_MAX) in a static, since it
doesn't change and hence doesn't need to be recalculated.
(DLR)
- nano.c: - nano.c:
do_verbatim_input() do_verbatim_input()
- Move to text.c, since it's an advanced text-based operation. - Move to text.c, since it's an advanced text-based operation.

View File

@ -628,16 +628,20 @@ int open_file(const char *filename, bool newfie, FILE **f)
* extension exists, we return "". */ * extension exists, we return "". */
char *get_next_filename(const char *name, const char *suffix) char *get_next_filename(const char *name, const char *suffix)
{ {
static int ulmax_digits = -1;
unsigned long i = 0; unsigned long i = 0;
char *buf; char *buf;
size_t namelen, suffixlen; size_t namelen, suffixlen;
assert(name != NULL && suffix != NULL); assert(name != NULL && suffix != NULL);
if (ulmax_digits == -1)
ulmax_digits = digits(ULONG_MAX);
namelen = strlen(name); namelen = strlen(name);
suffixlen = strlen(suffix); suffixlen = strlen(suffix);
buf = charalloc(namelen + suffixlen + digits(ULONG_MAX) + 2); buf = charalloc(namelen + suffixlen + ulmax_digits + 2);
sprintf(buf, "%s%s", name, suffix); sprintf(buf, "%s%s", name, suffix);
while (TRUE) { while (TRUE) {