From c9679f966283fdab7cef6be2f26820db10112cbd Mon Sep 17 00:00:00 2001 From: Alexander Sedov Date: Tue, 26 Feb 2013 23:47:50 +0400 Subject: [st] [PATCH 1/2] Replaced strtok_r with strsep for correct empty field handling. To: dev@suckless.org --- st.c | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/st.c b/st.c index f663263..6416b2b 100644 --- a/st.c +++ b/st.c @@ -1,4 +1,5 @@ /* See LICENSE for licence details. */ +#define _BSD_SOURCE #define _XOPEN_SOURCE 600 #include #include @@ -1932,14 +1933,12 @@ strhandle(void) { void strparse(void) { - char *p = strescseq.buf, *sp; + char *p = strescseq.buf; + strescseq.narg = 0; strescseq.buf[strescseq.len] = '\0'; - for(p = strtok_r(p, ";", &sp); p; p = strtok_r(NULL, ";", &sp)) { - if(strescseq.narg == STR_ARG_SIZ) - return; - strescseq.args[strescseq.narg++] = p; - } + while (p && strescseq.narg < STR_ARG_SIZ) + strescseq.args[strescseq.narg++] = strsep(&p, ";"); } void -- 1.7.10.4