|
|
1be407 |
diff -up man-db-2.6.2/src/Makefile.am.so-links man-db-2.6.2/src/Makefile.am
|
|
|
1be407 |
--- man-db-2.6.2/src/Makefile.am.so-links 2012-07-20 19:21:13.000000000 +0200
|
|
|
1be407 |
+++ man-db-2.6.2/src/Makefile.am 2012-07-20 19:21:13.000000000 +0200
|
|
|
1be407 |
@@ -87,6 +87,8 @@ lexgrog_SOURCES = \
|
|
|
1be407 |
descriptions.h \
|
|
|
1be407 |
filenames.c \
|
|
|
1be407 |
filenames.h \
|
|
|
1be407 |
+ globbing.c \
|
|
|
1be407 |
+ globbing.h \
|
|
|
1be407 |
lexgrog.l \
|
|
|
1be407 |
lexgrog_test.c \
|
|
|
1be407 |
manconv.c \
|
|
|
1be407 |
diff -up man-db-2.6.2/src/Makefile.in.so-links man-db-2.6.2/src/Makefile.in
|
|
|
1be407 |
--- man-db-2.6.2/src/Makefile.in.so-links 2012-07-20 19:21:13.000000000 +0200
|
|
|
1be407 |
+++ man-db-2.6.2/src/Makefile.in 2012-07-20 19:21:39.000000000 +0200
|
|
|
1be407 |
@@ -257,7 +257,7 @@ catman_DEPENDENCIES = $(am__DEPENDENCIES
|
|
|
1be407 |
am_globbing_OBJECTS = globbing.$(OBJEXT) globbing_test.$(OBJEXT)
|
|
|
1be407 |
globbing_OBJECTS = $(am_globbing_OBJECTS)
|
|
|
1be407 |
globbing_DEPENDENCIES = $(am__DEPENDENCIES_1)
|
|
|
1be407 |
-am_lexgrog_OBJECTS = compression.$(OBJEXT) descriptions.$(OBJEXT) \
|
|
|
1be407 |
+am_lexgrog_OBJECTS = globbing.$(OBJEXT) compression.$(OBJEXT) descriptions.$(OBJEXT) \
|
|
|
1be407 |
filenames.$(OBJEXT) lexgrog.$(OBJEXT) lexgrog_test.$(OBJEXT) \
|
|
|
1be407 |
manconv.$(OBJEXT) manconv_client.$(OBJEXT) ult_src.$(OBJEXT)
|
|
|
1be407 |
lexgrog_OBJECTS = $(am_lexgrog_OBJECTS)
|
|
|
1be407 |
@@ -1356,6 +1356,8 @@ lexgrog_SOURCES = \
|
|
|
1be407 |
descriptions.h \
|
|
|
1be407 |
filenames.c \
|
|
|
1be407 |
filenames.h \
|
|
|
1be407 |
+ globbing.c \
|
|
|
1be407 |
+ globbing.h \
|
|
|
1be407 |
lexgrog.l \
|
|
|
1be407 |
lexgrog_test.c \
|
|
|
1be407 |
manconv.c \
|
|
|
1be407 |
diff -up man-db-2.6.2/src/ult_src.c.so-links man-db-2.6.2/src/ult_src.c
|
|
|
1be407 |
--- man-db-2.6.2/src/ult_src.c.so-links 2012-06-18 04:28:56.000000000 +0200
|
|
|
1be407 |
+++ man-db-2.6.2/src/ult_src.c 2012-07-20 19:21:13.000000000 +0200
|
|
|
1be407 |
@@ -59,6 +59,8 @@
|
|
|
1be407 |
#include <unistd.h>
|
|
|
1be407 |
|
|
|
1be407 |
#include "canonicalize.h"
|
|
|
1be407 |
+#include "dirname.h"
|
|
|
1be407 |
+#include "globbing.h"
|
|
|
1be407 |
|
|
|
1be407 |
#include "gettext.h"
|
|
|
1be407 |
#define _(String) gettext (String)
|
|
|
1be407 |
@@ -343,6 +345,38 @@ const char *ult_src (const char *name, c
|
|
|
1be407 |
free (base);
|
|
|
1be407 |
base = appendstr (NULL, path, "/", include,
|
|
|
1be407 |
NULL);
|
|
|
1be407 |
+
|
|
|
1be407 |
+ /* If the original path from above doesn't exist, try to create
|
|
|
1be407 |
+ * new path as if the "include" was relative to the current
|
|
|
1be407 |
+ * man page.
|
|
|
1be407 |
+ */
|
|
|
1be407 |
+ if (access (base, F_OK) != 0) {
|
|
|
1be407 |
+ char *dirname = mdir_name (name);
|
|
|
1be407 |
+ char *tempFile = appendstr (NULL, dirname, "/", include,
|
|
|
1be407 |
+ NULL);
|
|
|
1be407 |
+ free (dirname);
|
|
|
1be407 |
+ if (access (tempFile, F_OK) == 0) {
|
|
|
1be407 |
+ free (base);
|
|
|
1be407 |
+ base = canonicalize_filename_mode (tempFile,
|
|
|
1be407 |
+ CAN_EXISTING);
|
|
|
1be407 |
+ } else {
|
|
|
1be407 |
+ char *tempFileAsterisk = appendstr (NULL, tempFile,
|
|
|
1be407 |
+ "*", NULL);
|
|
|
1be407 |
+ char **possibleFiles = expand_path (tempFileAsterisk);
|
|
|
1be407 |
+ free (tempFileAsterisk);
|
|
|
1be407 |
+ if (access (possibleFiles[0], F_OK) == 0) {
|
|
|
1be407 |
+ free (base);
|
|
|
1be407 |
+ base = canonicalize_filename_mode (possibleFiles[0],
|
|
|
1be407 |
+ CAN_EXISTING);
|
|
|
1be407 |
+ }
|
|
|
1be407 |
+ int i;
|
|
|
1be407 |
+ for (i = 0; possibleFiles[i] != NULL; i++) {
|
|
|
1be407 |
+ free (possibleFiles[i]);
|
|
|
1be407 |
+ }
|
|
|
1be407 |
+ free (possibleFiles);
|
|
|
1be407 |
+ }
|
|
|
1be407 |
+ free (tempFile);
|
|
|
1be407 |
+ }
|
|
|
1be407 |
free (include);
|
|
|
1be407 |
|
|
|
1be407 |
debug ("ult_src: points to %s\n", base);
|