aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPřemysl Eric Janouch <p@janouch.name>2024-08-07 22:04:00 +0200
committerPřemysl Eric Janouch <p@janouch.name>2024-08-07 22:04:00 +0200
commit8a8437634a2dc58768172f481ccf3c6637745d46 (patch)
tree8c838e6f7ab27018b1075949719d6f81740ecd77
parente78b410a6afff53d61a4caf9c6e76fb995e0bc76 (diff)
downloadliberty-8a8437634a2dc58768172f481ccf3c6637745d46.tar.gz
liberty-8a8437634a2dc58768172f481ccf3c6637745d46.tar.xz
liberty-8a8437634a2dc58768172f481ccf3c6637745d46.zip
MPD client: fix argument quoting
-rw-r--r--liberty-proto.c16
1 files changed, 8 insertions, 8 deletions
diff --git a/liberty-proto.c b/liberty-proto.c
index 577fcda..d4355c7 100644
--- a/liberty-proto.c
+++ b/liberty-proto.c
@@ -1636,29 +1636,29 @@ mpd_client_on_ready (const struct pollfd *pfd, void *user_data)
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
static bool
-mpd_client_must_quote_char (char c)
-{
- return (unsigned char) c <= ' ' || c == '"' || c == '\'';
-}
-
-static bool
mpd_client_must_quote (const char *s)
{
if (!*s)
return true;
for (; *s; s++)
- if (mpd_client_must_quote_char (*s))
+ if ((unsigned char) *s <= ' ' || *s == '"' || *s == '\'')
return true;
return false;
}
+static bool
+mpd_client_must_escape_in_quote (char c)
+{
+ return c == '"' || c == '\'' || c == '\\';
+}
+
static void
mpd_client_quote (const char *s, struct str *output)
{
str_append_c (output, '"');
for (; *s; s++)
{
- if (mpd_client_must_quote_char (*s))
+ if (mpd_client_must_escape_in_quote (*s))
str_append_c (output, '\\');
str_append_c (output, *s);
}