mirror of git://git.sv.gnu.org/nano.git
in nanogetstr(), fix a misplaced break and some indentation
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@2458 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
This commit is contained in:
parent
fc0ebe982d
commit
c504dffa39
|
@ -75,6 +75,8 @@ CVS code -
|
|||
regexec_safe()
|
||||
- Rename to safe_regexec() for consistency. (DLR)
|
||||
- winio.c:
|
||||
nanogetstr()
|
||||
- Fix misplaced break. (DLR)
|
||||
statusq()
|
||||
- Make sure that the vsnprintf(foo) call and foo's subsequent
|
||||
null termination both take the proper number of bytes when
|
||||
|
|
81
src/winio.c
81
src/winio.c
|
@ -2506,10 +2506,11 @@ int nanogetstr(bool allow_tabs, const char *buf, const char *def,
|
|||
switch (kbinput) {
|
||||
case NANO_TAB_KEY:
|
||||
#ifndef NANO_SMALL
|
||||
/* tab history completion */
|
||||
/* Tab history completion. */
|
||||
if (history_list != NULL) {
|
||||
if (!complete || last_kbinput != NANO_TAB_KEY) {
|
||||
history_list->current = (historytype *)history_list;
|
||||
history_list->current =
|
||||
(historytype *)history_list;
|
||||
history_list->len = strlen(answer);
|
||||
}
|
||||
|
||||
|
@ -2527,33 +2528,34 @@ int nanogetstr(bool allow_tabs, const char *buf, const char *def,
|
|||
#endif
|
||||
#ifndef DISABLE_TABCOMP
|
||||
if (allow_tabs) {
|
||||
answer = input_tab(answer, &statusbar_x, &tabbed, list);
|
||||
answer = input_tab(answer, &statusbar_x, &tabbed,
|
||||
list);
|
||||
answer_len = strlen(answer);
|
||||
}
|
||||
break;
|
||||
#endif
|
||||
break;
|
||||
case NANO_PREVLINE_KEY:
|
||||
#ifndef NANO_SMALL
|
||||
if (history_list != NULL) {
|
||||
|
||||
/* if currentbuf is NULL, or if use_cb is 1, currentbuf
|
||||
isn't NULL, and currentbuf is different from answer,
|
||||
it means that we're scrolling up at the top of the
|
||||
search history, and we need to save the current
|
||||
answer in currentbuf; do this and reset use_cb to
|
||||
0 */
|
||||
/* If currentbuf is NULL, or if use_cb is 1,
|
||||
* currentbuf isn't NULL, and currentbuf is
|
||||
* different from answer, it means that we're
|
||||
* scrolling up at the top of the search history,
|
||||
* and we need to save the current answer in
|
||||
* currentbuf. Do this and reset use_cb to 0. */
|
||||
if (currentbuf == NULL || (use_cb == 1 &&
|
||||
strcmp(currentbuf, answer) != 0)) {
|
||||
currentbuf = mallocstrcpy(currentbuf, answer);
|
||||
use_cb = 0;
|
||||
}
|
||||
|
||||
/* if currentbuf isn't NULL, use_cb is 2, and currentbuf
|
||||
is different from answer, it means that we're
|
||||
scrolling up at the bottom of the search history, and
|
||||
we need to make the string in currentbuf the current
|
||||
answer; do this, blow away currentbuf since we don't
|
||||
need it anymore, and reset use_cb to 0 */
|
||||
/* If currentbuf isn't NULL, use_cb is 2, and
|
||||
* currentbuf is different from answer, it means
|
||||
* that we're scrolling up at the bottom of the
|
||||
* search history, and we need to make the string in
|
||||
* currentbuf the current answer. Do this, blow
|
||||
* away currentbuf since we don't need it anymore,
|
||||
* and reset use_cb to 0. */
|
||||
if (currentbuf != NULL && use_cb == 2 &&
|
||||
strcmp(currentbuf, answer) != 0) {
|
||||
answer = mallocstrcpy(answer, currentbuf);
|
||||
|
@ -2562,9 +2564,9 @@ int nanogetstr(bool allow_tabs, const char *buf, const char *def,
|
|||
answer_len = strlen(answer);
|
||||
use_cb = 0;
|
||||
|
||||
/* else get older search from the history list and save
|
||||
it in answer; if there is no older search, blank out
|
||||
answer */
|
||||
/* Otherwise, get the older search from the history
|
||||
* list and save it in answer. If there is no older
|
||||
* search, blank out answer. */
|
||||
} else if ((history =
|
||||
get_history_older(history_list)) != NULL) {
|
||||
answer = mallocstrcpy(answer, history);
|
||||
|
@ -2580,37 +2582,34 @@ int nanogetstr(bool allow_tabs, const char *buf, const char *def,
|
|||
case NANO_NEXTLINE_KEY:
|
||||
#ifndef NANO_SMALL
|
||||
if (history_list != NULL) {
|
||||
|
||||
/* get newer search from the history list and save it
|
||||
in answer */
|
||||
if ((history = get_history_newer(history_list)) != NULL) {
|
||||
/* Get the newer search from the history list and
|
||||
* save it in answer. */
|
||||
if ((history =
|
||||
get_history_newer(history_list)) != NULL) {
|
||||
answer = mallocstrcpy(answer, history);
|
||||
answer_len = strlen(history);
|
||||
|
||||
/* if there is no newer search, we're here */
|
||||
|
||||
/* if currentbuf isn't NULL and use_cb isn't 2, it means
|
||||
that we're scrolling down at the bottom of the search
|
||||
history and we need to make the string in currentbuf
|
||||
the current answer; do this, blow away currentbuf
|
||||
since we don't need it anymore, and set use_cb to
|
||||
1 */
|
||||
/* If currentbuf isn't NULL and use_cb isn't 2, it
|
||||
* means that we're scrolling down at the bottom of
|
||||
* the search history and we need to make the string
|
||||
* in currentbuf the current answer; do this, blow
|
||||
* away currentbuf since we don't need it anymore,
|
||||
* and set use_cb to 1. */
|
||||
} else if (currentbuf != NULL && use_cb != 2) {
|
||||
answer = mallocstrcpy(answer, currentbuf);
|
||||
answer_len = strlen(answer);
|
||||
free(currentbuf);
|
||||
currentbuf = NULL;
|
||||
use_cb = 1;
|
||||
|
||||
/* otherwise, if currentbuf is NULL and use_cb isn't 2,
|
||||
it means that we're scrolling down at the bottom of
|
||||
the search history and the current answer (if it's
|
||||
not blank) needs to be saved in currentbuf; do this,
|
||||
blank out answer (if necessary), and set use_cb to
|
||||
2 */
|
||||
/* Itherwise, if currentbuf is NULL and use_cb isn't
|
||||
* 2, it means that we're scrolling down at the
|
||||
* bottom of the search history and the current
|
||||
* answer (if it's not blank) needs to be saved in
|
||||
* currentbuf. Do this, blank out answer (if
|
||||
* necessary), and set use_cb to 2. */
|
||||
} else if (use_cb != 2) {
|
||||
if (answer[0] != '\0') {
|
||||
currentbuf = mallocstrcpy(currentbuf, answer);
|
||||
currentbuf = mallocstrcpy(currentbuf,
|
||||
answer);
|
||||
answer = mallocstrcpy(answer, "");
|
||||
}
|
||||
answer_len = 0;
|
||||
|
|
Loading…
Reference in New Issue