]> git.wh0rd.org Git - nano.git/commitdiff
in get_next_filename(), store the value of digits(ULONG_MAX) in a
authorDavid Lawrence Ramsey <pooka109@gmail.com>
Wed, 9 Nov 2005 15:13:00 +0000 (15:13 +0000)
committerDavid Lawrence Ramsey <pooka109@gmail.com>
Wed, 9 Nov 2005 15:13:00 +0000 (15:13 +0000)
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

ChangeLog
src/files.c

index 2bfca09e8db09fa905b0f99d0f89e31d9ade2abb..f701bb6253561e41f3d9bbed83adf0535d552f6b 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -91,6 +91,10 @@ CVS code -
   read_file()
        - Remove apparently unneeded logic to handle a case where
          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:
   do_verbatim_input()
        - Move to text.c, since it's an advanced text-based operation.
index 233e06de88b43e122fe0fab13f39c34cdbc74c7a..a7885dfa3f33ab20ce9f281249c3cc3121d8665d 100644 (file)
@@ -628,16 +628,20 @@ int open_file(const char *filename, bool newfie, FILE **f)
  * extension exists, we return "". */
 char *get_next_filename(const char *name, const char *suffix)
 {
+    static int ulmax_digits = -1;
     unsigned long i = 0;
     char *buf;
     size_t namelen, suffixlen;
 
     assert(name != NULL && suffix != NULL);
 
+    if (ulmax_digits == -1)
+       ulmax_digits = digits(ULONG_MAX);
+
     namelen = strlen(name);
     suffixlen = strlen(suffix);
 
-    buf = charalloc(namelen + suffixlen + digits(ULONG_MAX) + 2);
+    buf = charalloc(namelen + suffixlen + ulmax_digits + 2);
     sprintf(buf, "%s%s", name, suffix);
 
     while (TRUE) {