mirror of
https://gitee.com/openharmony/third_party_alsa-lib
synced 2024-11-30 03:00:33 +00:00
conf: print quoted string more wisely
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
This commit is contained in:
parent
0ee4642a69
commit
8eaa03b7c9
21
src/conf.c
21
src/conf.c
@ -1508,6 +1508,7 @@ static int parse_defs(snd_config_t *parent, input_t *input, int skip, int overri
|
||||
|
||||
static void string_print(char *str, int id, snd_output_t *out)
|
||||
{
|
||||
int q;
|
||||
unsigned char *p = (unsigned char *)str;
|
||||
if (!p || !*p) {
|
||||
snd_output_puts(out, "''");
|
||||
@ -1549,7 +1550,8 @@ static void string_print(char *str, int id, snd_output_t *out)
|
||||
snd_output_puts(out, str);
|
||||
return;
|
||||
quoted:
|
||||
snd_output_putc(out, '\'');
|
||||
q = strchr(str, '\'') ? '"' : '\'';
|
||||
snd_output_putc(out, q);
|
||||
p = (unsigned char *)str;
|
||||
while (*p) {
|
||||
int c;
|
||||
@ -1579,20 +1581,21 @@ static void string_print(char *str, int id, snd_output_t *out)
|
||||
snd_output_putc(out, '\\');
|
||||
snd_output_putc(out, 'f');
|
||||
break;
|
||||
case '\'':
|
||||
snd_output_putc(out, '\\');
|
||||
snd_output_putc(out, c);
|
||||
break;
|
||||
default:
|
||||
if (c >= 32 && c <= 126 && c != '\'')
|
||||
if (c == q) {
|
||||
snd_output_putc(out, '\\');
|
||||
snd_output_putc(out, c);
|
||||
else
|
||||
snd_output_printf(out, "\\%04o", c);
|
||||
} else {
|
||||
if (c >= 32 && c <= 126)
|
||||
snd_output_putc(out, c);
|
||||
else
|
||||
snd_output_printf(out, "\\%04o", c);
|
||||
}
|
||||
break;
|
||||
}
|
||||
p++;
|
||||
}
|
||||
snd_output_putc(out, '\'');
|
||||
snd_output_putc(out, q);
|
||||
}
|
||||
|
||||
static void level_print(snd_output_t *out, unsigned int level)
|
||||
|
Loading…
Reference in New Issue
Block a user