diff --git a/files.c b/files.c index 97084093480427b54e8077453722a9f3f336c4e7..029a482efc080906102f34d8c73e926bb2f0722e 100644 --- a/files.c +++ b/files.c @@ -625,7 +625,8 @@ int input_tab(char *buf, int place, int lastWasTab) /* Make a local copy of the string -- up to the position of the cursor */ - matchBuf = (char *) calloc(strlen(buf), sizeof(char)); + matchBuf = (char *) calloc(strlen(buf) + 2, sizeof(char)); + strncpy(matchBuf, buf, place); tmp = matchBuf; @@ -656,14 +657,17 @@ int input_tab(char *buf, int place, int lastWasTab) free(matchBuf); /* Did we find exactly one match? */ - if (matches && num_matches == 1) { + switch(num_matches) { + case 0: + break; + case 1: buf = nrealloc(buf, strlen(buf) + strlen(matches[0]) - pos + 1); /* write out the matched command */ strncpy(buf + pos, matches[0] + pos, strlen(matches[0]) - pos); newplace += strlen(matches[0]) - pos; - } - else { + break; + default: /* Check to see if all matches share a beginning, and if so tack it onto buf and then beep */ @@ -689,6 +693,7 @@ int input_tab(char *buf, int place, int lastWasTab) break; } } + break; } } else { /* Ok -- the last char was a TAB. Since they diff --git a/po/nano.pot b/po/nano.pot index 736b7dafaf369931fa9aeaf22c1329e39bae1629..319165632e485a71f58bc96ef9b2c58fcf42820b 100644 --- a/po/nano.pot +++ b/po/nano.pot @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" -"POT-Creation-Date: 2000-11-05 23:04-0500\n" +"POT-Creation-Date: 2000-11-06 00:38-0500\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\n" @@ -107,7 +107,7 @@ msgstr "" msgid "File exists, OVERWRITE ?" msgstr "" -#: files.c:735 +#: files.c:740 msgid "(more)" msgstr ""