@@ -133,17 +133,12 @@ nexttok(const char **pos, struct strbuf *buf)
133
133
case 'r' : r = strbuf_putc (buf , '\r' ); break ;
134
134
case 't' : r = strbuf_putc (buf , '\t' ); break ;
135
135
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 ;
143
137
}
144
138
if (r < 0 )
145
139
return r ;
146
- p ++ ;
140
+ if (* p )
141
+ p ++ ;
147
142
break ;
148
143
default :
149
144
r = strbuf_putc (buf , * p ++ );
@@ -241,9 +236,8 @@ parse_default(const char **pos, struct xbps_fmt *fmt, struct strbuf *buf,
241
236
return r ;
242
237
str = buf -> mem + buf -> len ;
243
238
}
244
- for (; * p && * p != '"' ; p ++ ) {
245
- switch (* p ) {
246
- case '\\' :
239
+ for (; * p && * p != '"' ;) {
240
+ if (* p == '\\' ) {
247
241
switch (* ++ p ) {
248
242
case '\\' : r = strbuf_putc (buf , '\\' ); break ;
249
243
case 'a' : r = strbuf_putc (buf , '\a' ); break ;
@@ -253,15 +247,15 @@ parse_default(const char **pos, struct xbps_fmt *fmt, struct strbuf *buf,
253
247
case 'r' : r = strbuf_putc (buf , '\r' ); break ;
254
248
case 't' : r = strbuf_putc (buf , '\t' ); break ;
255
249
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 ;
258
251
}
259
- break ;
260
- default :
252
+ } else {
261
253
r = strbuf_putc (buf , * p );
262
254
}
263
255
if (r < 0 )
264
256
goto err ;
257
+ if (* p )
258
+ p ++ ;
265
259
}
266
260
if (* p ++ != '"' ) {
267
261
r = - EINVAL ;
0 commit comments