Remove strsep() call
strsep() is not a POSIX function, and it means that every system needs different defines to expose it. If the prototype of strsep is not exposed then an ugly int/pointer is done and it might mean a crash. The best solution?, to remove the strsep and make a custom loop. If C programmers cannot do this kind of loops without calling a library function, then maybe we should move all the suckless software to Java.
This commit is contained in:
		| @@ -19,7 +19,7 @@ LIBS = -L/usr/lib -lc -L${X11LIB} -lm -lrt -lX11 -lutil -lXext -lXft \ | |||||||
|        `pkg-config --libs freetype2` |        `pkg-config --libs freetype2` | ||||||
|  |  | ||||||
| # flags | # 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} | CFLAGS += -g -std=c99 -pedantic -Wall -Wvariadic-macros -Os ${INCS} ${CPPFLAGS} | ||||||
| LDFLAGS += -g ${LIBS} | LDFLAGS += -g ${LIBS} | ||||||
|  |  | ||||||
|   | |||||||
							
								
								
									
										15
									
								
								st.c
									
									
									
									
									
								
							
							
						
						
									
										15
									
								
								st.c
									
									
									
									
									
								
							| @@ -2272,12 +2272,23 @@ strhandle(void) { | |||||||
|  |  | ||||||
| void | void | ||||||
| strparse(void) { | strparse(void) { | ||||||
|  | 	int c; | ||||||
| 	char *p = strescseq.buf; | 	char *p = strescseq.buf; | ||||||
|  |  | ||||||
| 	strescseq.narg = 0; | 	strescseq.narg = 0; | ||||||
| 	strescseq.buf[strescseq.len] = '\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 | void | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user