Hi,
Gentoo has encountered the same problem:
<http://bugs.gentoo.org/show_bug.cgi?id=306445#c7>
Another related issue is that files beginning with the string "dir"
cannot be opened, e.g. "dired-x" (which is included with emacs):
<http://bugs.gentoo.org/show_bug.cgi?id=340697>
Attached are two patches that should fix these issues. (They are
against pinfo-0.6.9, but can be cleanly applied for 0.6.10 too.)
--- pinfo-0.6.9-orig/src/filehandling_functions.c
+++ pinfo-0.6.9/src/filehandling_functions.c
@@ -96,11 +96,14 @@ matchfile(char **buf, char *name)
{
/* use strcat rather than strdup, because xmalloc handles all
* malloc errors */
- char *thisfile = xmalloc(strlen(dp->d_name)+1);
+ int len = strlen(dp->d_name)+1;
+ char *thisfile = xmalloc(len * 2);
+ char *thisfile_info = thisfile + len;
strcat(thisfile, dp->d_name);
/* strip suffixes (so "gcc.info.gz" -> "gcc") */
strip_compression_suffix(thisfile);
+ strcat(thisfile_info, thisfile);
strip_info_suffix(thisfile);
/* compare this file with the file we're looking for */
@@ -109,8 +112,7 @@ matchfile(char **buf, char *name)
/* we found a match! */
matched++;
/* put it in the buffer */
- strncat(Buf, thisfile, 1023-strlen(Buf));
- strncat(Buf, ".info", 1023-strlen(Buf));
+ strncat(Buf, thisfile_info, 1023-strlen(Buf));
/* clean up, and exit the loop */
xfree(thisfile);
--- pinfo-0.6.9-orig/src/filehandling_functions.c
+++ pinfo-0.6.9/src/filehandling_functions.c
@@ -742,7 +742,7 @@
int i, j;
char *tmpfilename;
- if (strncmp(filename, "dir", 3) == 0)
+ if (strncmp(filename, "dir", 3) == 0 && !isalnum(filename[3]))
{
xfree(buf);
return opendirfile(number);