aboutsummaryrefslogtreecommitdiffhomepage
path: root/reader.c
diff options
context:
space:
mode:
authorGravatar liljencrantz <liljencrantz@gmail.com>2008-01-09 10:00:46 +1000
committerGravatar liljencrantz <liljencrantz@gmail.com>2008-01-09 10:00:46 +1000
commit5379200b9ecef9e80b8d7f60c9ef480231c7ed39 (patch)
tree9a6140be0582826bf973c2dddd16ac3dbffac08c /reader.c
parent9c38ed8238cb184b11ac349a70e8e9679783e183 (diff)
Make sure inserted completions are escaped, even when case insensitive
darcs-hash:20080109000046-75c98-baf9ef4594ad0c7024a79b5c4819c10c0697ba47.gz
Diffstat (limited to 'reader.c')
-rw-r--r--reader.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/reader.c b/reader.c
index 3ae6db52..b15c8a8c 100644
--- a/reader.c
+++ b/reader.c
@@ -967,7 +967,8 @@ static void completion_insert( const wchar_t *val, int flags )
int tok_start, tok_len;
wchar_t *begin, *end;
string_buffer_t sb;
-
+ wchar_t *escaped;
+
parse_util_token_extent( data->buff, data->buff_pos, &begin, 0, 0, 0 );
end = data->buff+data->buff_pos;
@@ -976,7 +977,12 @@ static void completion_insert( const wchar_t *val, int flags )
sb_init( &sb );
sb_append_substring( &sb, data->buff, begin - data->buff );
- sb_append( &sb, val );
+
+ escaped = escape( val, ESCAPE_ALL | ESCAPE_NO_QUOTED );
+
+ sb_append( &sb, escaped );
+ free( escaped );
+
if( add_space )
{
sb_append( &sb, L" " );