diff options
author | Peter Stephenson <pws@users.sourceforge.net> | 2006-09-10 18:10:48 +0000 |
---|---|---|
committer | Peter Stephenson <pws@users.sourceforge.net> | 2006-09-10 18:10:48 +0000 |
commit | 80acfd135cb41dc63b2e037fe8c18bcf46ce929c (patch) | |
tree | d7827b367db9afcddb8c6302c686da47f96ef2a5 /Src/zsh.h | |
parent | b726ead94e911e1ce3e8b582c315b3d6f83a6eb7 (diff) | |
download | zsh-80acfd135cb41dc63b2e037fe8c18bcf46ce929c.tar.gz zsh-80acfd135cb41dc63b2e037fe8c18bcf46ce929c.tar.xz zsh-80acfd135cb41dc63b2e037fe8c18bcf46ce929c.zip |
22684: improve getkeystring() interface and make printf do octal escapes
Diffstat (limited to 'Src/zsh.h')
-rw-r--r-- | Src/zsh.h | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/Src/zsh.h b/Src/zsh.h index 19d8a368f..3cb006cbf 100644 --- a/Src/zsh.h +++ b/Src/zsh.h @@ -1900,6 +1900,62 @@ enum { CASMOD_CAPS }; +/*******************************************/ +/* Flags to third argument of getkeystring */ +/*******************************************/ + +/* + * By default handles some subset of \-escapes. The following bits + * turn on extra features. + */ +enum { + /* + * Handle octal where the first digit is non-zero e.g. \3, \33, \333 + * \0333 etc. is always handled. + */ + GETKEY_OCTAL_ESC = (1 << 0), + /* + * Handle Emacs-like key sequences \C-x etc. + * Also treat \E like \e and use backslashes to escape the + * next character if not special, i.e. do all the things we + * don't do with the echo builtin. + */ + GETKEY_EMACS = (1 << 1), + /* Handle ^X etc. */ + GETKEY_CTRL = (1 << 2), + /* Handle \c (uses misc arg to getkeystring()) */ + GETKEY_BACKSLASH_C = (1 << 3), + /* Do $'...' quoting (len arg to getkeystring() not used) */ + GETKEY_DOLLAR_QUOTE = (1 << 4), + /* Handle \- (uses misc arg to getkeystring()) */ + GETKEY_BACKSLASH_MINUS = (1 << 5), + /* Parse only one character (len arg to getkeystring() not used) */ + GETKEY_SINGLE_CHAR = (1 << 6) +}; + +/* + * Standard combinations used within the shell. + * Note GETKEYS_... instead of GETKEY_...: this is important in some cases. + */ +/* echo builtin */ +#define GETKEYS_ECHO (GETKEY_BACKSLASH_C) +/* printf format string */ +#define GETKEYS_PRINTF (GETKEY_OCTAL_ESC|GETKEY_BACKSLASH_C) +/* Full print without -e */ +#define GETKEYS_PRINT (GETKEY_OCTAL_ESC|GETKEY_BACKSLASH_C|GETKEY_EMACS) +/* bindkey */ +#define GETKEYS_BINDKEY (GETKEY_OCTAL_ESC|GETKEY_EMACS|GETKEY_CTRL) +/* $'...' */ +#define GETKEYS_DOLLARS_QUOTE (GETKEY_OCTAL_ESC|GETKEY_EMACS|GETKEY_DOLLAR_QUOTE) +/* Single character for math processing */ +#define GETKEYS_MATH \ + (GETKEY_OCTAL_ESC|GETKEY_EMACS|GETKEY_CTRL|GETKEY_SINGLE_CHAR) +/* Used to process separators etc. with print-style escapes */ +#define GETKEYS_SEP (GETKEY_OCTAL_ESC|GETKEY_EMACS) +/* Used for suffix removal */ +#define GETKEYS_SUFFIX \ + (GETKEY_OCTAL_ESC|GETKEY_EMACS|GETKEY_CTRL|GETKEY_BACKSLASH_MINUS) + /**********************************/ /* Flags to third argument of zle */ /**********************************/ |