opnsense-ports/textproc/catdoc/files/patch-src__fileutil.c
Franco Fichtner 8cb1a96ede ports: pull in a snapshot of the FreeBSD ports tree
Taken from:	https://github.com/freebsd/freebsd-ports.git
Commit id:	5070672073b68be364139bc6b3a89100bd17d331
2014-11-09 14:03:21 +01:00

60 lines
1.3 KiB
C

diff --git src/fileutil.c src/fileutil.c
index d902a6a..6afddec 100644
--- src/fileutil.c
+++ src/fileutil.c
@@ -71,13 +71,12 @@ char *find_file(char *name, const char *path)
char *q;
char path_buf[PATH_BUF_SIZE];
char dir_sep[2]={DIR_SEP,0};
- for (p=path;p;p=q+1) {
+ for (p=path;p;) {
q=strchr(p,LIST_SEP);
if (q) {
if (!prepare_path_buf(path_buf,p,q)) continue;
} else {
- q--;
if (!prepare_path_buf(path_buf,p,p+strlen(p))) continue;
}
strcat(path_buf,dir_sep); /* always one char */
@@ -88,6 +87,11 @@ char *find_file(char *name, const char *path)
free(name);
return strdup(path_buf);
}
+ if (q) {
+ p = q + 1;
+ } else {
+ p = NULL;
+ }
}
/* if we are here, nothing found */
free(name);
@@ -186,7 +190,7 @@ void list_charsets(void) {
int count,glob_flags=GLOB_ERR;
#endif
char **ptr;
- for (p=charset_path;p;p=q+1) {
+ for (p=charset_path;p;) {
q=strchr(p,LIST_SEP);
if (q) {
@@ -197,7 +201,6 @@ void list_charsets(void) {
strncpy(path_buf,p,q-p);
path_buf[q-p]=0;
} else {
- q--;
if (strlen(p)>=PATH_BUF_SIZE) continue;
strcpy(path_buf,p);
}
@@ -244,6 +247,11 @@ void list_charsets(void) {
}
glob_flags|=GLOB_APPEND;
#endif
+ if (q) {
+ p = q + 1;
+ } else {
+ p = NULL;
+ }
}
#ifdef __MSDOS__
fputs("utf-8\n",stdout);