]> git.draconx.ca Git - dxcommon.git/blobdiff - snippet/exported.sh.in
exported.sh: Restructure argument processing a bit.
[dxcommon.git] / snippet / exported.sh.in
index ef875a55f3ddd500be41a9a5db4beef24a712afc..f9d3c4043511767cded4010d9578154b54079fdb 100644 (file)
@@ -1,6 +1,6 @@
 #!@SHELL@
 #
-# Copyright © 2011-2012 Nick Bowler
+# Copyright © 2011-2012, 2022 Nick Bowler
 #
 # Determine the list of exported symbols from archives or (libtool) object
 # files.
 
 OBJS=
 
-while test $# -gt 0
+for arg
 do
-       case $1 in
-       /*) arg=$1   ;;
-       *)  arg=./$1 ;;
-       esac
+  case $arg in
+  *.lo)
+    case $arg in /*) :;; *) arg=./$arg ;; esac
 
-       if expr "$arg" : '.*\.lo' >/dev/null; then
-               non_pic_object=
-               pic_object=
-               . "$arg"
+    non_pic_object=
+    pic_object=
+    . "$arg"
 
-               dir=`expr "$arg" : '\(.*\)/'`
-               if test x"$pic_object" != x"none"; then
-                       OBJS="$OBJS $dir/$pic_object"
-               fi
-               if test x"$non_pic_object" != x"none"; then
-                       OBJS="$OBJS $dir/$non_pic_object"
-               fi
-       else
-               OBJS="$OBJS $arg"
-       fi
-
-       shift
+    dir=`expr "$arg" : '\(.*\)/'`
+    if test x"$pic_object" != x"none"; then
+      OBJS="$OBJS $dir/$pic_object"
+    fi
+    if test x"$non_pic_object" != x"none"; then
+      OBJS="$OBJS $dir/$non_pic_object"
+    fi
+    ;;
+  *)
+    OBJS="$OBJS $arg"
+    ;;
+  esac
 done
 
 set x $OBJS; shift
 case $# in
 0) : ;;
 *)
-       exec 4>&1
-       eval_cmd=`exec 3>&1
-               { @NM@ $OBJS 3>&-
-                       echo "(exit $?) || exit $?" >&3
-               } | { @GLOBAL_SYMBOL_PIPE@ 3>&-
-                       echo "(exit $?) || exit $?" >&3
-               } | { @SED@ 's/^.* //' 3>&-
-                       echo "(exit $?) || exit $?" >&3
-               } | { sort -u 3>&-
-                       echo "(exit $?) || exit $?" >&3
-               } >&4`
-       exec 4>&-
-       eval "$eval_cmd"
+  exec 4>&1
+  eval_cmd=`exec 3>&1
+    { @NM@ $OBJS 3>&-
+      echo "(exit $?) || exit $?" >&3
+    } | { @GLOBAL_SYMBOL_PIPE@ 3>&-
+      echo "(exit $?) || exit $?" >&3
+    } | { @SED@ 's/^.* //' 3>&-
+      echo "(exit $?) || exit $?" >&3
+    } | { LC_ALL=C sort -u 3>&-
+      echo "(exit $?) || exit $?" >&3
+    } >&4`
+  exec 4>&-
+  eval "$eval_cmd"
 ;;
 esac