diff options
| -rw-r--r-- | config.mk | 2 | ||||
| -rw-r--r-- | st.c | 15 | 
2 files changed, 14 insertions, 3 deletions
@@ -19,7 +19,7 @@ LIBS = -L/usr/lib -lc -L${X11LIB} -lm -lrt -lX11 -lutil -lXext -lXft \         `pkg-config --libs freetype2`  # flags -CPPFLAGS = -DVERSION=\"${VERSION}\" -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 +CPPFLAGS = -DVERSION=\"${VERSION}\" -D_XOPEN_SOURCE=600  CFLAGS += -g -std=c99 -pedantic -Wall -Wvariadic-macros -Os ${INCS} ${CPPFLAGS}  LDFLAGS += -g ${LIBS} @@ -2272,12 +2272,23 @@ strhandle(void) {  void  strparse(void) { +	int c;  	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, ";"); + +	if(*p == '\0') +		return; + +	while(strescseq.narg < STR_ARG_SIZ) { +		strescseq.args[strescseq.narg++] = p; +		while((c = *p) != ';' && c != '\0') +			++p; +		if(c == '\0') +			return; +		*p++ = '\0'; +	}  }  void  |