- /*
- * TODO: Implement parsing like for CSI when required.
- * Format: ESC type cmd ';' arg0 [';' argn] ESC \
- */
- int narg = 0;
- char *start = strescseq.buf, *end = start + strescseq.len;
- strescseq.args[0] = start;
- while(start < end && narg < LEN(strescseq.args)) {
- start = memchr(start, ';', end - start);
- if(!start)
- break;
- *start++ = '\0';
- if(start < end) {
- strescseq.args[++narg] = start;
- }
- }
- strescseq.narg = narg + 1;
+ char *p = strescseq.buf;
+
+ strescseq.narg = 0;
+ strescseq.buf[strescseq.len] = '\0';
+ while(p && strescseq.narg < STR_ARG_SIZ)
+ strescseq.args[strescseq.narg++] = strsep(&p, ";");