Fix compilation with Sun Studio compiler changing \e to \x1b as it does not support \e as an escape character.

darcs-hash:20070822075239-cac88-1a9768bf35295615d553192d9a494f00db26f742.gz
This commit is contained in:
Claes Nästén 2007-08-22 17:52:39 +10:00
parent baeca81305
commit 2994378e1a
7 changed files with 52 additions and 57 deletions

View file

@ -755,11 +755,6 @@ wchar_t *escape( const wchar_t *in,
*(pos++) = L'r'; *(pos++) = L'r';
break; break;
case L'\e':
*(pos++) = L'\\';
*(pos++) = L'e';
break;
case L'\\': case L'\\':
case L'&': case L'&':
case L'$': case L'$':
@ -999,9 +994,9 @@ wchar_t *unescape( const wchar_t * orig, int flags )
} }
/* /*
\e means escape \x1b means escape
*/ */
case L'e': case L'\x1b':
{ {
in[out_pos]=L'\x1b'; in[out_pos]=L'\x1b';
break; break;

View file

@ -168,7 +168,7 @@ static int is_quotable( wchar_t *str )
case L'\t': case L'\t':
case L'\r': case L'\r':
case L'\b': case L'\b':
case L'\e': case L'\x1b':
return 0; return 0;
default: default:

View file

@ -285,7 +285,7 @@ static wint_t readch()
struct mapping m[]= struct mapping m[]=
{ {
{ {
"\e[A", LINE_UP "\x1b[A", LINE_UP
} }
, ,
{ {
@ -293,7 +293,7 @@ static wint_t readch()
} }
, ,
{ {
"\e[B", LINE_DOWN "\x1b[B", LINE_DOWN
} }
, ,
{ {

84
input.c
View file

@ -471,7 +471,7 @@ static wchar_t *input_symbolic_sequence( const wchar_t *in )
} }
if( has_meta ) if( has_meta )
{ {
res = wcsdup( L"\ea" ); res = wcsdup( L"\x1ba" );
res[1]=1+c-L'a'; res[1]=1+c-L'a';
} }
else else
@ -485,7 +485,7 @@ static wchar_t *input_symbolic_sequence( const wchar_t *in )
else if( wcsncmp( in, META_SYMBOL, wcslen(META_SYMBOL) ) == 0 ) else if( wcsncmp( in, META_SYMBOL, wcslen(META_SYMBOL) ) == 0 )
{ {
in += wcslen(META_SYMBOL); in += wcslen(META_SYMBOL);
res = wcsdup( L"\e" ); res = wcsdup( L"\x1b" );
debug( 4, L"Got meta" ); debug( 4, L"Got meta" );
} }
else else
@ -510,7 +510,7 @@ static wchar_t *input_symbolic_sequence( const wchar_t *in )
, ,
{ {
L"esc", L"esc",
"\e" "\x1b"
} }
, ,
{ {
@ -626,7 +626,7 @@ static wchar_t *input_expand_sequence( const wchar_t *in )
break; break;
case L'e': case L'e':
*(out++)=L'\e'; *(out++)=L'\x1b';
break; break;
case L'\\': case L'\\':
@ -761,7 +761,7 @@ static wchar_t *input_expand_sequence( const wchar_t *in )
(*in < L'a'+32) ) (*in < L'a'+32) )
{ {
if( has_escape ) if( has_escape )
*(out++)=L'\e'; *(out++)=L'\x1b';
*(out++)=*in-L'a'+1; *(out++)=*in-L'a'+1;
break; break;
} }
@ -770,7 +770,7 @@ static wchar_t *input_expand_sequence( const wchar_t *in )
(*in < L'A'+32) ) (*in < L'A'+32) )
{ {
if( has_escape ) if( has_escape )
*(out++)=L'\e'; *(out++)=L'\x1b';
*(out++)=*in-L'A'+1; *(out++)=*in-L'A'+1;
break; break;
} }
@ -798,7 +798,7 @@ static wchar_t *input_expand_sequence( const wchar_t *in )
error=1; error=1;
break; break;
} }
*(out++)=L'\e'; *(out++)=L'\x1b';
break; break;
} }
@ -1236,19 +1236,19 @@ static void add_common_bindings()
self-insert ignored the escape character unless it is the self-insert ignored the escape character unless it is the
only character of the sequence. only character of the sequence.
*/ */
add_mapping( name[i], L"\e\n", L"Meta-newline", L"self-insert" ); add_mapping( name[i], L"\x1b\n", L"Meta-newline", L"self-insert" );
/* /*
We need alternative keybidnings for arrowkeys, since We need alternative keybidnings for arrowkeys, since
terminfo sometimes specifies a different sequence than what terminfo sometimes specifies a different sequence than what
keypresses actually generate keypresses actually generate
*/ */
add_mapping( name[i], L"\e[A", L"Up", L"history-search-backward" ); add_mapping( name[i], L"\x1b[A", L"Up", L"history-search-backward" );
add_mapping( name[i], L"\e[B", L"Down", L"history-search-forward" ); add_mapping( name[i], L"\x1b[B", L"Down", L"history-search-forward" );
add_terminfo_mapping( name[i], (key_up), L"Up", L"history-search-backward" ); add_terminfo_mapping( name[i], (key_up), L"Up", L"history-search-backward" );
add_terminfo_mapping( name[i], (key_down), L"Down", L"history-search-forward" ); add_terminfo_mapping( name[i], (key_down), L"Down", L"history-search-forward" );
add_mapping( name[i], L"\e[C", L"Right", L"forward-char" ); add_mapping( name[i], L"\x1b[C", L"Right", L"forward-char" );
add_mapping( name[i], L"\e[D", L"Left", L"backward-char" ); add_mapping( name[i], L"\x1b[D", L"Left", L"backward-char" );
add_terminfo_mapping( name[i], (key_right), L"Right", L"forward-char" ); add_terminfo_mapping( name[i], (key_right), L"Right", L"forward-char" );
add_terminfo_mapping( name[i], (key_left), L"Left", L"backward-char" ); add_terminfo_mapping( name[i], (key_left), L"Left", L"backward-char" );
@ -1257,8 +1257,8 @@ static void add_common_bindings()
add_terminfo_mapping( name[i], (key_backspace), L"Backspace", L"backward-delete-char" ); add_terminfo_mapping( name[i], (key_backspace), L"Backspace", L"backward-delete-char" );
add_mapping( name[i], L"\x7f", L"Backspace", L"backward-delete-char" ); add_mapping( name[i], L"\x7f", L"Backspace", L"backward-delete-char" );
add_mapping( name[i], L"\e[H", L"Home", L"beginning-of-line" ); add_mapping( name[i], L"\x1b[H", L"Home", L"beginning-of-line" );
add_mapping( name[i], L"\e[F", L"End", L"end-of-line" ); add_mapping( name[i], L"\x1b[F", L"End", L"end-of-line" );
add_terminfo_mapping( name[i], (key_home), L"Home", L"beginning-of-line" ); add_terminfo_mapping( name[i], (key_home), L"Home", L"beginning-of-line" );
add_terminfo_mapping( name[i], (key_end), L"End", L"end-of-line" ); add_terminfo_mapping( name[i], (key_end), L"End", L"end-of-line" );
@ -1269,27 +1269,27 @@ static void add_common_bindings()
generated generated
*/ */
add_mapping( name[i], L"\e\eOC", L"Alt-Right", L"nextd-or-forward-word" ); add_mapping( name[i], L"\x1b\x1bOC", L"Alt-Right", L"nextd-or-forward-word" );
add_mapping( name[i], L"\e\eOD", L"Alt-Left", L"prevd-or-backward-word" ); add_mapping( name[i], L"\x1b\x1bOD", L"Alt-Left", L"prevd-or-backward-word" );
add_mapping( name[i], L"\e\e[C", L"Alt-Right", L"nextd-or-forward-word" ); add_mapping( name[i], L"\x1b\x1b[C", L"Alt-Right", L"nextd-or-forward-word" );
add_mapping( name[i], L"\e\e[D", L"Alt-Left", L"prevd-or-backward-word" ); add_mapping( name[i], L"\x1b\x1b[D", L"Alt-Left", L"prevd-or-backward-word" );
add_mapping( name[i], L"\eO3C", L"Alt-Right", L"nextd-or-forward-word" ); add_mapping( name[i], L"\x1bO3C", L"Alt-Right", L"nextd-or-forward-word" );
add_mapping( name[i], L"\eO3D", L"Alt-Left", L"prevd-or-backward-word" ); add_mapping( name[i], L"\x1bO3D", L"Alt-Left", L"prevd-or-backward-word" );
add_mapping( name[i], L"\e[3C", L"Alt-Right", L"nextd-or-forward-word" ); add_mapping( name[i], L"\x1b[3C", L"Alt-Right", L"nextd-or-forward-word" );
add_mapping( name[i], L"\e[3D", L"Alt-Left", L"prevd-or-backward-word" ); add_mapping( name[i], L"\x1b[3D", L"Alt-Left", L"prevd-or-backward-word" );
add_mapping( name[i], L"\e[1;3C", L"Alt-Right", L"nextd-or-forward-word" ); add_mapping( name[i], L"\x1b[1;3C", L"Alt-Right", L"nextd-or-forward-word" );
add_mapping( name[i], L"\e[1;3D", L"Alt-Left", L"prevd-or-backward-word" ); add_mapping( name[i], L"\x1b[1;3D", L"Alt-Left", L"prevd-or-backward-word" );
add_mapping( name[i], L"\e\eOA", L"Alt-Up", L"history-token-search-backward" ); add_mapping( name[i], L"\x1b\x1bOA", L"Alt-Up", L"history-token-search-backward" );
add_mapping( name[i], L"\e\eOB", L"Alt-Down", L"history-token-search-forward" ); add_mapping( name[i], L"\x1b\x1bOB", L"Alt-Down", L"history-token-search-forward" );
add_mapping( name[i], L"\e\e[A", L"Alt-Up", L"history-token-search-backward" ); add_mapping( name[i], L"\x1b\x1b[A", L"Alt-Up", L"history-token-search-backward" );
add_mapping( name[i], L"\e\e[B", L"Alt-Down", L"history-token-search-forward" ); add_mapping( name[i], L"\x1b\x1b[B", L"Alt-Down", L"history-token-search-forward" );
add_mapping( name[i], L"\eO3A", L"Alt-Up", L"history-token-search-backward" ); add_mapping( name[i], L"\x1bO3A", L"Alt-Up", L"history-token-search-backward" );
add_mapping( name[i], L"\eO3B", L"Alt-Down", L"history-token-search-forward" ); add_mapping( name[i], L"\x1bO3B", L"Alt-Down", L"history-token-search-forward" );
add_mapping( name[i], L"\e[3A", L"Alt-Up", L"history-token-search-backward" ); add_mapping( name[i], L"\x1b[3A", L"Alt-Up", L"history-token-search-backward" );
add_mapping( name[i], L"\e[3B", L"Alt-Down", L"history-token-search-forward" ); add_mapping( name[i], L"\x1b[3B", L"Alt-Down", L"history-token-search-forward" );
add_mapping( name[i], L"\e[1;3A", L"Alt-Up", L"history-token-search-backward" ); add_mapping( name[i], L"\x1b[1;3A", L"Alt-Up", L"history-token-search-backward" );
add_mapping( name[i], L"\e[1;3B", L"Alt-Down", L"history-token-search-forward" ); add_mapping( name[i], L"\x1b[1;3B", L"Alt-Down", L"history-token-search-forward" );
} }
/* /*
@ -1320,14 +1320,14 @@ static void add_emacs_bindings()
add_escaped_mapping( L"emacs", (L"\\C-n"), L"Control-n", L"history-search-forward" ); add_escaped_mapping( L"emacs", (L"\\C-n"), L"Control-n", L"history-search-forward" );
add_escaped_mapping( L"emacs", (L"\\C-f"), L"Control-f", L"forward-char" ); add_escaped_mapping( L"emacs", (L"\\C-f"), L"Control-f", L"forward-char" );
add_escaped_mapping( L"emacs", (L"\\C-b"), L"Control-b", L"backward-char" ); add_escaped_mapping( L"emacs", (L"\\C-b"), L"Control-b", L"backward-char" );
add_escaped_mapping( L"emacs", (L"\e\x7f"), L"Alt-backspace", L"backward-kill-word" ); add_escaped_mapping( L"emacs", (L"\x1b\x7f"), L"Alt-backspace", L"backward-kill-word" );
add_escaped_mapping( L"emacs", (L"\eb"), L"Alt-b", L"backward-word" ); add_escaped_mapping( L"emacs", (L"\x1bb"), L"Alt-b", L"backward-word" );
add_escaped_mapping( L"emacs", (L"\ef"), L"Alt-f", L"forward-word" ); add_escaped_mapping( L"emacs", (L"\x1bf"), L"Alt-f", L"forward-word" );
add_escaped_mapping( L"emacs", (L"\ed"), L"Alt-d", L"forward-kill-word" ); add_escaped_mapping( L"emacs", (L"\x1bd"), L"Alt-d", L"forward-kill-word" );
add_terminfo_mapping( L"emacs", (key_ppage), L"Page Up", L"beginning-of-history" ); add_terminfo_mapping( L"emacs", (key_ppage), L"Page Up", L"beginning-of-history" );
add_terminfo_mapping( L"emacs", (key_npage), L"Page Down", L"end-of-history" ); add_terminfo_mapping( L"emacs", (key_npage), L"Page Down", L"end-of-history" );
add_escaped_mapping( L"emacs", (L"\e<"), L"Alt-<", L"beginning-of-buffer" ); add_escaped_mapping( L"emacs", (L"\x1b<"), L"Alt-<", L"beginning-of-buffer" );
add_escaped_mapping( L"emacs", (L"\e>"), L"Alt->", L"end-of-buffer" ); add_escaped_mapping( L"emacs", (L"\x1b>"), L"Alt->", L"end-of-buffer" );
} }
/** /**
@ -1335,7 +1335,7 @@ static void add_emacs_bindings()
*/ */
static void add_vi_bindings() static void add_vi_bindings()
{ {
add_mapping( L"vi", L"\e", L"Escape", L"bind -M vi-command" ); add_mapping( L"vi", L"\x1b", L"Escape", L"bind -M vi-command" );
add_mapping( L"vi-command", L"i", L"i", L"bind -M vi" ); add_mapping( L"vi-command", L"i", L"i", L"bind -M vi" );
add_mapping( L"vi-command", L"I", L"I", L"bind -M vi" ); add_mapping( L"vi-command", L"I", L"I", L"bind -M vi" );
@ -1540,7 +1540,7 @@ static wint_t input_exec_binding( mapping *m, const wchar_t *seq )
{ {
int idx = 0; int idx = 0;
if( seq[0] == L'\e' && seq[1] ) if( seq[0] == L'\x1b' && seq[1] )
{ {
idx = 1; idx = 1;
} }

View file

@ -28,7 +28,7 @@ Implementation file for the low level input library
/** /**
Time in milliseconds to wait for another byte to be available for Time in milliseconds to wait for another byte to be available for
reading after \e is read before assuming that escape key was reading after \x1b is read before assuming that escape key was
pressed, and not an escape sequence. pressed, and not an escape sequence.
*/ */
#define WAIT_ON_ESCAPE 10 #define WAIT_ON_ESCAPE 10

View file

@ -581,7 +581,7 @@ void reader_write_title()
int i; int i;
if( al_get_count( &l ) > 0 ) if( al_get_count( &l ) > 0 )
{ {
writestr( L"\e]2;" ); writestr( L"\x1b]2;" );
for( i=0; i<al_get_count( &l ); i++ ) for( i=0; i<al_get_count( &l ); i++ )
{ {
writestr( (wchar_t *)al_get( &l, i ) ); writestr( (wchar_t *)al_get( &l, i ) );
@ -2619,7 +2619,7 @@ wchar_t *reader_readline()
} }
/* Escape was pressed */ /* Escape was pressed */
case L'\e': case L'\x1b':
{ {
if( search_mode ) if( search_mode )
{ {

View file

@ -104,7 +104,7 @@ static int calc_prompt_width( wchar_t *prompt )
for( j=0; prompt[j]; j++ ) for( j=0; prompt[j]; j++ )
{ {
if( prompt[j] == L'\e' ) if( prompt[j] == L'\x1b' )
{ {
/* /*
This is the start of an escape code. Try to guess it's width. This is the start of an escape code. Try to guess it's width.
@ -201,7 +201,7 @@ static int calc_prompt_width( wchar_t *prompt )
wchar_t *end; wchar_t *end;
j+=2; j+=2;
found = 1; found = 1;
end = wcsstr( &prompt[j], L"\e\\" ); end = wcsstr( &prompt[j], L"\x1b\\" );
if( end ) if( end )
{ {
/* /*