Skip to content

Commit 02f7bcd

Browse files
committed
lib/format.c: simplify escape characters
1 parent 6d46066 commit 02f7bcd

File tree

1 file changed

+9
-15
lines changed

1 file changed

+9
-15
lines changed

lib/format.c

Lines changed: 9 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -133,17 +133,12 @@ nexttok(const char **pos, struct strbuf *buf)
133133
case 'r': r = strbuf_putc(buf, '\r'); break;
134134
case 't': r = strbuf_putc(buf, '\t'); break;
135135
case '0': r = strbuf_putc(buf, '\0'); break;
136-
case '{': r = strbuf_putc(buf, '{'); break;
137-
case '}': r = strbuf_putc(buf, '}'); break;
138-
default:
139-
r = strbuf_putc(buf, '\\');
140-
if (r < 0)
141-
break;
142-
r = strbuf_putc(buf, *p);
136+
default: r = *p ? strbuf_putc(buf, *p) : 0;
143137
}
144138
if (r < 0)
145139
return r;
146-
p++;
140+
if (*p)
141+
p++;
147142
break;
148143
default:
149144
r = strbuf_putc(buf, *p++);
@@ -241,9 +236,8 @@ parse_default(const char **pos, struct xbps_fmt *fmt, struct strbuf *buf,
241236
return r;
242237
str = buf->mem + buf->len;
243238
}
244-
for (; *p && *p != '"'; p++) {
245-
switch (*p) {
246-
case '\\':
239+
for (; *p && *p != '"';) {
240+
if (*p == '\\') {
247241
switch (*++p) {
248242
case '\\': r = strbuf_putc(buf, '\\'); break;
249243
case 'a': r = strbuf_putc(buf, '\a'); break;
@@ -253,15 +247,15 @@ parse_default(const char **pos, struct xbps_fmt *fmt, struct strbuf *buf,
253247
case 'r': r = strbuf_putc(buf, '\r'); break;
254248
case 't': r = strbuf_putc(buf, '\t'); break;
255249
case '0': r = strbuf_putc(buf, '\0'); break;
256-
case '"': r = strbuf_putc(buf, '"'); break;
257-
default: r = -EINVAL;
250+
default: r = *p ? strbuf_putc(buf, *p) : 0;
258251
}
259-
break;
260-
default:
252+
} else {
261253
r = strbuf_putc(buf, *p);
262254
}
263255
if (r < 0)
264256
goto err;
257+
if (*p)
258+
p++;
265259
}
266260
if (*p++ != '"') {
267261
r = -EINVAL;

0 commit comments

Comments
 (0)