File cscope-15.7-vpath.patch of Package cscope

Index: src/vpinit.c
===================================================================
--- src/vpinit.c.orig
+++ src/vpinit.c
@@ -111,7 +111,13 @@ vpinit(char *current_dir)
 	vpath = my_strdup(vpath);
 	
 	/* split the view path into nodes */
-	for (i = 0, s = vpath; *s != '\0'; ++i) {
+	/* handle VPATH=":foo" */
+	i = 0;
+	s = vpath;
+	while (*s++ == ':') {
+		vpdirs[i++] = ".";
+	}
+	for (; *s != '\0'; ++i) {
 		vpdirs[i] = s;
 		while (*s != '\0' && *++s != ':') {
 			if (*s == '\n') {
@@ -119,6 +125,16 @@ vpinit(char *current_dir)
 			}
 		}
 		if (*s != '\0') {
+			/* handle VPATH="foo:" and VPATH="foo::bar" */
+			if (s[1] == '\0' || s[1] == ':') {
+				while (s[1] != '\0' && s[1] == ':') {
+					vpdirs[++i] = ".";
+					*s++ = '\0';
+				}
+				if (s[1] == '\0') {
+					vpdirs[++i] = ".";
+				}
+			}
 			*s++ = '\0';
 		}
 	}
openSUSE Build Service is sponsored by