commit c1a28fa9ae1a66dbd88c7a90d0fe72b0914b2f98
parent 31d7b3667c209e951934dcb70dca6ecebddc6392
Author: David Lawrence Ramsey <pooka109@gmail.com>
Date: Wed, 9 Nov 2005 15:13:00 +0000
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
Diffstat:
2 files changed, 9 insertions(+), 1 deletion(-)
diff --git 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.
diff --git a/src/files.c b/src/files.c
@@ -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) {