diff options
author | Peter Stephenson <pws@users.sourceforge.net> | 2006-08-01 21:28:04 +0000 |
---|---|---|
committer | Peter Stephenson <pws@users.sourceforge.net> | 2006-08-01 21:28:04 +0000 |
commit | bb912594b2325334a603893e90e8d9aa7cc534ca (patch) | |
tree | bbbd081b8b2191081b260056ce17a4876b74227a /Src/Zle | |
parent | 7d77bc95b2ba7276cf430a989e9b4000c72ba765 (diff) | |
download | zsh-bb912594b2325334a603893e90e8d9aa7cc534ca.tar.gz zsh-bb912594b2325334a603893e90e8d9aa7cc534ca.tar.xz zsh-bb912594b2325334a603893e90e8d9aa7cc534ca.zip |
22575: multibyte fixes for bslashquote(), getzlequery()
Diffstat (limited to 'Src/Zle')
-rw-r--r-- | Src/Zle/compresult.c | 2 | ||||
-rw-r--r-- | Src/Zle/zle.h | 4 | ||||
-rw-r--r-- | Src/Zle/zle_tricky.c | 2 | ||||
-rw-r--r-- | Src/Zle/zle_utils.c | 46 |
4 files changed, 23 insertions, 31 deletions
diff --git a/Src/Zle/compresult.c b/Src/Zle/compresult.c index 2aa382cb5..887720a2f 100644 --- a/Src/Zle/compresult.c +++ b/Src/Zle/compresult.c @@ -1861,7 +1861,7 @@ asklist(void) listdat.nlines)); qup = ((l + columns - 1) / columns) - 1; fflush(shout); - if (getzlequery(1) != 'y') { + if (!getzlequery()) { if (clearflag) { putc('\r', shout); tcmultout(TCUP, TCMULTUP, qup); diff --git a/Src/Zle/zle.h b/Src/Zle/zle.h index 69c73f4cf..f56960734 100644 --- a/Src/Zle/zle.h +++ b/Src/Zle/zle.h @@ -125,9 +125,9 @@ static inline int ZS_strncmp(ZLE_STRING_T s1, ZLE_STRING_T s2, size_t l) #define ZC_icntrl icntrl #define ZC_idigit idigit #define ZC_iident iident -#define ZC_ilower ilower +#define ZC_ilower islower #define ZC_inblank inblank -#define ZC_iupper iupper +#define ZC_iupper isupper #define ZC_iword iword #define ZC_tolower tulower diff --git a/Src/Zle/zle_tricky.c b/Src/Zle/zle_tricky.c index 28857b03e..fb0ebad2a 100644 --- a/Src/Zle/zle_tricky.c +++ b/Src/Zle/zle_tricky.c @@ -2298,7 +2298,7 @@ listlist(LinkList l) fprintf(shout, "zsh: do you wish to see all %d lines? ", nlines)); qup = ((l + columns - 1) / columns) - 1; fflush(shout); - if (getzlequery(1) != 'y') { + if (!getzlequery()) { if (clearflag) { putc('\r', shout); tcmultout(TCUP, TCMULTUP, qup); diff --git a/Src/Zle/zle_utils.c b/Src/Zle/zle_utils.c index 2c92c955e..cce162fa0 100644 --- a/Src/Zle/zle_utils.c +++ b/Src/Zle/zle_utils.c @@ -653,50 +653,42 @@ zlinefind(ZLE_STRING_T haystack, int haylen, int pos, } /* - * Query the user, and return a single character response. The question - * is assumed to have been printed already, and the cursor is left - * immediately after the response echoed. (Might cause a problem if - * this takes it onto the next line.) If yesno is non-zero: <Tab> is - * interpreted as 'y'; any other control character is interpreted as - * 'n'. If there are any characters in the buffer, this is taken as a - * negative response, and no characters are read. Case is folded. - * - * TBD: this may need extending to return a wchar_t or possibly - * a wint_t. + * Query the user, and return 1 for yes, 0 for no. The question is assumed to + * have been printed already, and the cursor is left immediately after the + * response echoed. (Might cause a problem if this takes it onto the next + * line.) <Tab> is interpreted as 'y'; any other control character is + * interpreted as 'n'. If there are any characters in the buffer, this is + * taken as a negative response, and no characters are read. Case is folded. */ /**/ mod_export int -getzlequery(int yesno) +getzlequery(void) { ZLE_INT_T c; #ifdef FIONREAD int val; - if (yesno) { - /* check for typeahead, which is treated as a negative response */ - ioctl(SHTTY, FIONREAD, (char *)&val); - if (val) { - putc('n', shout); - return 'n'; - } + /* check for typeahead, which is treated as a negative response */ + ioctl(SHTTY, FIONREAD, (char *)&val); + if (val) { + putc('n', shout); + return 0; } #endif /* get a character from the tty and interpret it */ c = getfullchar(0); - if (yesno) { - if (c == ZWC('\t')) - c = ZWC('y'); - else if (ZC_icntrl(c) || c == ZLEEOF) - c = ZWC('n'); - else - c = ZC_tolower(c); - } + if (c == ZWC('\t')) + c = ZWC('y'); + else if (ZC_icntrl(c) || c == ZLEEOF) + c = ZWC('n'); + else + c = ZC_tolower(c); /* echo response and return */ if (c != ZWC('\n')) zwcputc(c); - return c; + return c == ZWC('y'); } /* Format a string, keybinding style. */ |