* srclist-update: Port to POSIX 1003.1-2001 hosts by avoiding the
[pspp] / config / srclist-update
index b4ae7c0cfe38e2affb1a6983695992ca5fb93bc3..cbe1af5292dcb78d340862cd83425bb1e2b4753b 100755 (executable)
@@ -1,9 +1,9 @@
 #!/bin/sh
-# $Id: srclist-update,v 1.3 2002-11-25 00:20:03 karl Exp $
-# 
+# $Id: srclist-update,v 1.6 2003-07-08 23:33:45 eggert Exp $
+#
 # Check for files in directory $1 being up to date, according to the
 # list on stdin.  Don't actually make any changes, just show the diffs.
-# 
+#
 # Source `dirname $0`/srclistvars.sh first, if it exists.
 
 if test -n "$1"; then
@@ -13,8 +13,9 @@ fi
 verbose=false
 #chicken="echo (would)"
 
-srctmp=${TMPDIR-/tmp}/srclist.src
-dsttmp=${TMPDIR-/tmp}/srclist.dst
+: ${TMPDIR=/tmp}
+srctmp=$TMPDIR/srclist.src
+dsttmp=$TMPDIR/srclist.dst
 
 mydir=`dirname $0`
 test -r $mydir/srclistvars.sh && . $mydir/srclistvars.sh
@@ -22,7 +23,7 @@ test -r $mydir/srclistvars.sh && . $mydir/srclistvars.sh
 
 # \f
 # $1 is input, output to stdout with gpl.
-# 
+#
 fixlicense() \
 {
     sed '/The .* is free software/,/USA\.  *\*\//c\
@@ -47,45 +48,47 @@ fixlicense() \
 # Remove $Id lines, since they'll differ between source locations.
 # If $options contains "gpl", change the license to be the standard
 # GPL.  We use this for libc files.
-# 
+#
 fixfile() \
 {
-  if echo "$options" | grep -w gpl >/dev/null; then
-    fixlicense $1
-  else
-    cat $1
-  fi \
-  | fgrep -v '$'"Id:" >$2
+  case " $options " in
+  *' gpl '*)
+    fixlicense $1;;
+  *)
+    cat $1;;
+  esac \
+  | grep -v '\$Id: srclist-update,v 1.6 2003-07-08 23:33:45 eggert Exp $' >$2
 }
 
 
 # \f
 cat | while read src dst options; do
-  test -z "$dst" && continue  # skip lines without second element
-  echo "$src $dst" | sed 's/#.*$//' | egrep '^\s*$' >/dev/null \
-  && continue  # skip whitespace and comment-only lines
-  
-  src=`eval echo $src`
+  case $src:$dst in
+    *: ) continue;;  # skip lines without second element
+    '#'* ) continue;;  # skip comment-only lines
+  esac
+
+  eval src=$src
   if test ! -r $src; then
     echo "$0: cannot read $src" >&2
     continue
   fi
-  
+
   # Ignore subdirs in src dir.  E.g., if input spec is
   #   src/subdir/foo.c dst
   # write destination file dst/foo.c.
-  dst=`eval echo $dst`
+  eval dst=$dst
   test -d $dst && dst=$dst/`basename $src`
-  
+
   # Make changes for sake of comparison.
   fixfile $src $srctmp
   test -r $dst && fixfile $dst $dsttmp
-  
+
   # don't show license differences.
   gplsrc=$TMPDIR/`basename $src`
   fixlicense $src >$gplsrc
   cmp -s $src $gplsrc && gplsrc=$src
-  
+
   if test ! -e $dst; then
     echo "## $gplsrc $dst  # new"
     $chicken cp -p $gplsrc $dst
@@ -93,7 +96,7 @@ cat | while read src dst options; do
     $verbose && echo "## $gplsrc $dst  # unchanged"
   else
     echo "## $gplsrc $dst  # changes"
-    diff -c2 $dst $gplsrc
+    diff -2 $dst $gplsrc
   fi
 done