1
0
Fork 0
mirror of git://git.code.sf.net/p/zsh/code synced 2025-11-25 14:20:53 +01:00

Merge trunk revisions 1.{79,80,81} for 21509 and two unposted.

This commit is contained in:
Paul Ackersviller 2007-05-08 03:19:36 +00:00
parent 18e408f3de
commit 8895a0fa94

View file

@ -3493,21 +3493,22 @@ ucs4toutf8(char *dest, unsigned int wval)
/*
* Decode a key string, turning it into the literal characters.
* The length is returned in len.
* fromwhere determines how the processing works.
* The length is (usually) returned in *len.
* fromwhere determines how the processing works:
* 0: Don't handle keystring, just print-like escapes.
* Expects misc to be present.
* 1: Handle Emacs-like \C-X arguments etc., but not ^X
* Expects misc to be present.
* If a \c escape is seen, *misc is set to 1.
* 1: Handle Emacs-like \C-X arguments etc., but not ^X.
* If a \c escape is seen, *misc is set to 1.
* 2: Handle ^X as well as emacs-like keys; don't handle \c
* for no newlines.
* 3: As 1, but don't handle \c.
* (the misc arg is not used).
* 3: As 1, but don't handle \c (the misc arg is not used).
* 4: Do $'...' quoting. Overwrites the existing string instead of
* zhalloc'ing. If \uNNNN ever generates multi-byte chars longer
* than 6 bytes, will need to adjust this to re-allocate memory.
* 5: As 2, but \- is special. Expects misc to be defined.
* 6: As 2, but parses only one character and returns end-pointer
* and parsed character in *misc
* 5: As 2, but \- is special. If \- is seen, *misc is set to 1.
* 6: As 2, but parses only one character: returns a pointer to the
* next character and puts the parsed character into *misc (the
* len arg is not used).
*/
/**/
@ -3573,6 +3574,7 @@ getkeystring(char *s, int *len, int fromwhere, int *misc)
*t++ = '\\', s--;
continue;
}
/* FALL THROUGH */
case 'e':
*t++ = '\033';
break;
@ -3604,8 +3606,11 @@ getkeystring(char *s, int *len, int fromwhere, int *misc)
case 'c':
if (fromwhere < 2) {
*misc = 1;
break;
*t = '\0';
*len = t - buf;
return buf;
}
goto def;
case 'u':
case 'U':
wval = 0;