You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
159 lines
3.5 KiB
159 lines
3.5 KiB
Index: Makefile |
|
--- Makefile.orig 2005-05-26 05:39:40 +0200 |
|
+++ Makefile 2005-05-26 20:19:29 +0200 |
|
@@ -1,9 +1,10 @@ |
|
MAJOR=2 |
|
MINOR=1 |
|
-CC?=gcc |
|
-CFLAGS?=-g -O2 -Wall |
|
-CFLAGS+=-I. -DVERSION=\"$(MAJOR).$(MINOR)\" |
|
-prefix?=/usr/local |
|
+CC=gcc |
|
+CFLAGS=-Wall -I. -DVERSION=\"$(MAJOR).$(MINOR)\" |
|
+LDFLAGS= |
|
+LIBS=-lz |
|
+prefix=/usr/local |
|
OBJS=\ |
|
cbtcommon/debug.o\ |
|
cbtcommon/hash.o\ |
|
@@ -20,8 +21,11 @@ |
|
|
|
all: cvsps |
|
|
|
+.c.o: |
|
+ $(CC) $(CFLAGS) -c -o $@ $< |
|
+ |
|
cvsps: $(OBJS) |
|
- $(CC) -o cvsps $(OBJS) -lz |
|
+ $(CC) -o cvsps $(OBJS) $(LDFLAGS) $(LIBS) |
|
|
|
install: |
|
[ -d $(prefix)/bin ] || mkdir -p $(prefix)/bin |
|
Index: cache.c |
|
--- cache.c.orig 2005-05-26 05:39:40 +0200 |
|
+++ cache.c 2005-05-26 20:18:47 +0200 |
|
@@ -361,7 +361,7 @@ |
|
|
|
strcpy(buff, p_buff); |
|
|
|
- while ((s = strsep(&p, ";"))) |
|
+ while ((s = my_strsep(&p, ";"))) |
|
{ |
|
char * c = strchr(s, ':'); |
|
|
|
Index: cvs_direct.c |
|
--- cvs_direct.c.orig 2005-05-26 05:39:40 +0200 |
|
+++ cvs_direct.c 2005-05-26 20:18:47 +0200 |
|
@@ -92,12 +92,12 @@ |
|
|
|
strcpy(root, p_root); |
|
|
|
- tok = strsep(&p, ":"); |
|
+ tok = my_strsep(&p, ":"); |
|
|
|
/* if root string looks like :pserver:... then the first token will be empty */ |
|
if (strlen(tok) == 0) |
|
{ |
|
- char * method = strsep(&p, ":"); |
|
+ char * method = my_strsep(&p, ":"); |
|
if (strcmp(method, "pserver") == 0) |
|
{ |
|
ctx = open_ctx_pserver(ctx, p); |
|
@@ -185,14 +185,14 @@ |
|
|
|
strcpy(root, p_root); |
|
|
|
- tok = strsep(&p, ":"); |
|
+ tok = my_strsep(&p, ":"); |
|
if (strlen(tok) == 0 || !p) |
|
{ |
|
debug(DEBUG_APPERROR, "parse error on third token"); |
|
goto out_free_err; |
|
} |
|
|
|
- tok2 = strsep(&tok, "@"); |
|
+ tok2 = my_strsep(&tok, "@"); |
|
if (!strlen(tok2) || (!tok || !strlen(tok))) |
|
{ |
|
debug(DEBUG_APPERROR, "parse error on user@server in pserver"); |
|
@@ -272,7 +272,7 @@ |
|
strcpy(root, p_root); |
|
|
|
/* if there's a ':', it's remote */ |
|
- tok = strsep(&p, ":"); |
|
+ tok = my_strsep(&p, ":"); |
|
|
|
if (p) |
|
{ |
|
@@ -281,7 +281,7 @@ |
|
if (!cvs_rsh) |
|
cvs_rsh = "rsh"; |
|
|
|
- tok2 = strsep(&tok, "@"); |
|
+ tok2 = my_strsep(&tok, "@"); |
|
|
|
if (tok) |
|
snprintf(execcmd, PATH_MAX, "%s -l %s %s %s server", cvs_rsh, tok2, tok, cvs_server); |
|
@@ -771,7 +771,7 @@ |
|
static int parse_patch_arg(char * arg, char ** str) |
|
{ |
|
char *tok, *tok2 = ""; |
|
- tok = strsep(str, " "); |
|
+ tok = my_strsep(str, " "); |
|
if (!tok) |
|
return 0; |
|
|
|
@@ -791,7 +791,7 @@ |
|
/* see if command wants two args and they're separated by ' ' */ |
|
if (tok[2] == 0 && strchr("BdDFgiorVxYz", tok[1])) |
|
{ |
|
- tok2 = strsep(str, " "); |
|
+ tok2 = my_strsep(str, " "); |
|
if (!tok2) |
|
{ |
|
debug(DEBUG_APPERROR, "diff_opts parse_error: argument %s requires two arguments", tok); |
|
Index: util.c |
|
--- util.c.orig 2005-05-26 05:39:40 +0200 |
|
+++ util.c 2005-05-26 20:18:47 +0200 |
|
@@ -289,3 +289,31 @@ |
|
|
|
return (*src == 0) ? 0 : -1; |
|
} |
|
+ |
|
+char *my_strsep(char **stringp, const char *delim) |
|
+{ |
|
+ char *s; |
|
+ const char *spanp; |
|
+ int c, sc; |
|
+ char *tok; |
|
+ |
|
+ if ((s = *stringp) == NULL) |
|
+ return NULL; |
|
+ for (tok = s;;) { |
|
+ c = *s++; |
|
+ spanp = delim; |
|
+ do { |
|
+ if ((sc = *spanp++) == c) { |
|
+ if (c == 0) |
|
+ s = NULL; |
|
+ else |
|
+ s[-1] = 0; |
|
+ *stringp = s; |
|
+ return tok; |
|
+ } |
|
+ } while (sc != 0); |
|
+ } |
|
+ /* NOTREACHED */ |
|
+ return NULL; |
|
+} |
|
+ |
|
Index: util.h |
|
--- util.h.orig 2005-05-26 05:39:40 +0200 |
|
+++ util.h 2005-05-26 20:18:47 +0200 |
|
@@ -23,5 +23,6 @@ |
|
void timing_stop(const char *); |
|
int my_system(const char *); |
|
int escape_filename(char *, int, const char *); |
|
+char *my_strsep(char **, const char *); |
|
|
|
#endif /* UTIL_H */
|
|
|