diff options
Diffstat (limited to 'dev-vcs/cvsps/files/cvsps-2.1-solaris.patch')
-rw-r--r-- | dev-vcs/cvsps/files/cvsps-2.1-solaris.patch | 131 |
1 files changed, 131 insertions, 0 deletions
diff --git a/dev-vcs/cvsps/files/cvsps-2.1-solaris.patch b/dev-vcs/cvsps/files/cvsps-2.1-solaris.patch new file mode 100644 index 000000000000..3e063fd9248b --- /dev/null +++ b/dev-vcs/cvsps/files/cvsps-2.1-solaris.patch @@ -0,0 +1,131 @@ +Modified version of +http://cvs.openpkg.org/fileview?f=openpkg-src/cvsps/cvsps.patch&v=1.13 + +Index: cache.c +--- cache.c.orig 2008-04-02 03:18:44 +0200 ++++ cache.c 2008-04-02 09:10:25 +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 2008-04-02 03:18:44 +0200 ++++ cvs_direct.c 2008-04-02 09:10:25 +0200 +@@ -92,12 +92,12 @@ + + strcpy_a(root, p_root, PATH_MAX); + +- 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_a(root, p_root, PATH_MAX); + +- 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_a(root, p_root, PATH_MAX); + + /* 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); +@@ -776,7 +776,7 @@ + static int parse_patch_arg(char * arg, char ** str) + { + char *tok, *tok2 = ""; +- tok = strsep(str, " "); ++ tok = my_strsep(str, " "); + if (!tok) + return 0; + +@@ -796,7 +796,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 2008-04-02 03:18:44 +0200 ++++ util.c 2008-04-02 09:10:25 +0200 +@@ -316,3 +316,31 @@ + exit(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 2008-04-02 03:18:44 +0200 ++++ util.h 2008-04-02 09:15:35 +0200 +@@ -24,5 +24,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 */ |