mirror of
https://github.com/irssi/irssi.git
synced 2024-11-03 04:27:19 -05:00
Add escape_string_escape function for expand_escapes
To avoid expanding, tab completion escapes the completion list. But the escape_string function escapes too much for the expand_escapes code. Add a function that only escapes the backslashes.
This commit is contained in:
parent
257cb2f5f9
commit
7e6e3cd503
@ -757,6 +757,22 @@ char *escape_string(const char *str)
|
||||
return ret;
|
||||
}
|
||||
|
||||
/* Escape all '\' chars with '\' */
|
||||
char *escape_string_escape(const char *str)
|
||||
{
|
||||
char *ret, *p;
|
||||
|
||||
p = ret = g_malloc(strlen(str)*2+1);
|
||||
while (*str != '\0') {
|
||||
if (*str == '\\')
|
||||
*p++ = '\\';
|
||||
*p++ = *str++;
|
||||
}
|
||||
*p = '\0';
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
int nearest_power(int num)
|
||||
{
|
||||
int n = 1;
|
||||
|
@ -93,6 +93,9 @@ char *ascii_strdown(char *str);
|
||||
/* Escape all '"', "'" and '\' chars with '\' */
|
||||
char *escape_string(const char *str);
|
||||
|
||||
/* Escape all '\' chars with '\' */
|
||||
char *escape_string_escape(const char *str);
|
||||
|
||||
/* convert all low-ascii (<32) to ^<A..> combinations */
|
||||
char *show_lowascii(const char *str);
|
||||
|
||||
|
@ -256,7 +256,7 @@ char *word_complete(WINDOW_REC *window, const char *line, int *pos, int erase, i
|
||||
|
||||
/* escape if the word doesn't begin with '/' and expand_escapes are turned on */
|
||||
data = strchr(cmdchars, *line) == NULL && expand_escapes ?
|
||||
escape_string(complist->data) : g_strdup(complist->data);
|
||||
escape_string_escape(complist->data) : g_strdup(complist->data);
|
||||
|
||||
/* word completed */
|
||||
*pos = startpos + strlen(data);
|
||||
|
Loading…
Reference in New Issue
Block a user