]> git.draconx.ca Git - dxcommon.git/blobdiff - m4/linguas.m4
Avoid nonportable ${x%%y} substitutions in DX_LINGUAS.
[dxcommon.git] / m4 / linguas.m4
index 61613b6dc2f2c42c610ca2ca662971a2cf746ab7..eb6701e2dd92c5696e3fd891b77f44af7ccce2b4 100644 (file)
@@ -32,31 +32,32 @@ if test -f "$srcdir/po/LINGUAS"; then
         # Ensure that if "la_CC"-style code is requested then so is plain "la".
         printf '%s\n' "$arg"
         case $arg in
-        *_*) printf '%s\n' "${arg%%_*}" ;;
+        *_*)
+          save_IFS=$IFS; IFS=_
+          set x $arg
+          IFS=$save_IFS
+          AS_ECHO(["${2}"])
+          ;;
         esac
       done
     } | sort -u >conftest.ena
   fi
 
-  ALL_LINGUAS=`cat conftest.all`
-  LINGUAS=`join conftest.ena conftest.all`
-
-  # Note: $srcdir is not used here because these variables are for make.
-  set x $ALL_LINGUAS; shift
-  case ${#} in
-  0) ;;
-  *) POFILES=`printf "po/%s.po\n" "${@}"` ;;
-  esac
+  exec 3<conftest.all
+  while read x <&3; do
+    AS_VAR_APPEND([POFILES], ["${POFILES:+ }po/$x.po"])
+  done
 
   if test x"$USE_NLS" = x"yes"; then
-    set x $LINGUAS; shift
-    case ${#} in
-    0) ;;
-    *) MOFILES=`printf "po/%s.mo\n" "${@}"` ;;
-    esac
+    join conftest.ena conftest.all >conftest.out
+    exec 3<conftest.out
+    while read x <&3; do
+      AS_VAR_APPEND([MOFILES], ["${MOFILES:+ }po/$x.mo"])
+    done
   fi
 
-  rm -f conftest.all conftest.ena
+  exec 3<&-
+  rm -f conftest.all conftest.ena conftest.out
 fi
 
 AC_SUBST([POFILES])