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-d3aeb78583b8master
parent
31d7b3667c
commit
c1a28fa9ae
|
@ -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.
|
||||||
|
|
|
@ -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) {
|
||||||
|
|
Loading…
Reference in New Issue