1
0
mirror of https://github.com/irssi/irssi.git synced 2024-12-04 14:46:39 -05:00

Merge pull request #978 from ailin-nemui/fix-974

Fix inconsistent escaping from expand_escapes
This commit is contained in:
ailin-nemui 2019-01-09 09:29:29 +01:00 committed by GitHub
commit d57203e926
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 20 additions and 1 deletions

View File

@ -757,6 +757,22 @@ char *escape_string(const char *str)
return ret;
}
/* Escape all '\' chars with '\' */
char *escape_string_backslashes(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;

View File

@ -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_backslashes(const char *str);
/* convert all low-ascii (<32) to ^<A..> combinations */
char *show_lowascii(const char *str);

View File

@ -268,7 +268,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_backslashes(complist->data) : g_strdup(complist->data);
/* word completed */
*pos = startpos + strlen(data);