Blame SOURCES/pinfo-0.6.9-mansection.patch

1c8da8
--- pinfo-0.6.9/src/manual.c.mansection	2006-03-16 15:14:30.000000000 +0100
1c8da8
+++ pinfo-0.6.9/src/manual.c	2007-02-23 14:52:30.000000000 +0100
1c8da8
@@ -167,16 +167,29 @@
1c8da8
 	}
1c8da8
 	i = len;
1c8da8
 	/* find the beginning of the last token */
1c8da8
-	for (i = len - 1;(i > 0) &&(!isspace(name1[i])); i--);
1c8da8
-
1c8da8
-	/* if we've found space, then we move to the first nonspace character */
1c8da8
-	if (i > 0)
1c8da8
-		i++;
1c8da8
+	for (i = len - 1;(i >= 0) &&(!isspace(name1[i])); i--)
1c8da8
+		;
1c8da8
+	i++;
1c8da8
 
1c8da8
 	/* filename->name */
1c8da8
-	strcpy(manualhistory[0].name, &name1[i]);
1c8da8
+	snprintf(manualhistory[0].name, 256, "%s", &name1[i]);
1c8da8
+
1c8da8
 	/* section unknown */
1c8da8
-	strcpy(manualhistory[0].sect, "");
1c8da8
+	manualhistory[0].sect[0] = 0;
1c8da8
+
1c8da8
+	/* try to find section */
1c8da8
+	if (i > 1) {
1c8da8
+		for (i--; (i >= 0) && isspace(name1[i]); i--)
1c8da8
+			;
1c8da8
+		if (i >= 0) {
1c8da8
+			name1[i + 1] = 0;
1c8da8
+			for (; (i >= 0) && !isspace(name1[i]); i--)
1c8da8
+				;
1c8da8
+			i++;
1c8da8
+			snprintf(manualhistory[0].sect, 32, "%s", &name1[i]);
1c8da8
+		}
1c8da8
+	}
1c8da8
+
1c8da8
 	/* selected unknown */
1c8da8
 	manualhistory[0].selected = -1;
1c8da8
 	/* pos=0 */