@@ -458,33 +458,37 @@ imap_refcounted_done_box( imap_store_t *ctx ATTR_UNUSED, struct imap_cmd *cmd, i
}
static char *
-next_arg( char **s )
+next_arg( char **ps )
{
- char *ret;
+ char *ret, *s;
- if (!s || !*s)
+ assert( ps );
+ s = *ps;
+ if (!s)
return 0;
- while (isspace( (unsigned char) **s ))
- (*s)++;
- if (!**s) {
- *s = 0;
+ while (isspace( (unsigned char)*s ))
+ s++;
+ if (!*s) {
+ *ps = 0;
- if (**s == '"') {
- ++*s;
- ret = *s;
- *s = strchr( *s, '"' );
+ if (*s == '"') {
+ ++s;
+ ret = s;
+ s = strchr( s, '"' );
} else {
- while (**s && !isspace( (unsigned char) **s ))
+ while (*s && !isspace( (unsigned char)*s ))
- if (*s) {
- if (**s)
- *(*s)++ = 0;
- if (!**s)
+ if (s) {
+ if (*s)
+ *s++ = 0;
+ if (!*s)
+ s = 0;
+
+ *ps = s;
return ret;