summary refs log tree commit diff
path: root/pkgs/os-specific/linux/shadow/respect-xml-catalog-files-var.patch
blob: 7d922eae71fca8b6d68bff34e393aaf0dcc98931 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
diff --git a/acinclude.m4 b/acinclude.m4
index dd01f165..e23160ee 100644
--- a/acinclude.m4
+++ b/acinclude.m4
@@ -46,9 +46,21 @@ AC_DEFUN([JH_CHECK_XML_CATALOG],
     ifelse([$3],,,[$3
 ])dnl
   else
-    AC_MSG_RESULT([not found])
-    ifelse([$4],,
-       [AC_MSG_ERROR([could not find ifelse([$2],,[$1],[$2]) in XML catalog])],
-       [$4])
+    jh_check_xml_catalog_saved_ifs="$IFS"
+    IFS=' '
+    for f in $XML_CATALOG_FILES; do
+      if [[ -f "$f" ]] && \
+        AC_RUN_LOG([$XMLCATALOG --noout "$f" "$1" >&2]); then
+        jh_found_xmlcatalog=true
+        AC_MSG_RESULT([found])
+        ifelse([$3],,,[$3])
+        break
+      fi
+    done
+    IFS="$jh_check_xml_catalog_saved_ifs"
+    if ! $jh_found_xmlcatalog; then
+      AC_MSG_RESULT([not found])
+      ifelse([$4],,[AC_MSG_ERROR([could not find ifelse([$2],,[$1],[$2]) in XML catalog])],[$4])
+    fi
   fi
 ])