summaryrefslogtreecommitdiff
path: root/lib/mdate-sh
diff options
context:
space:
mode:
authorAlexandre Duret-Lutz <adl@gnu.org>2005-02-07 08:31:59 +0000
committerAlexandre Duret-Lutz <adl@gnu.org>2005-02-07 08:31:59 +0000
commit0f0865b9d09561dc4bd6a1c3557b27e9ad339aad (patch)
tree36912a706e19349f4defcf96c6655a062b13bcdc /lib/mdate-sh
parent16ca57539ea8482c6449cf769d36d52778c8553c (diff)
downloadautomake-0f0865b9d09561dc4bd6a1c3557b27e9ad339aad.tar.gz
* lib/mdate-sh: Cope with Darwin's Day/Month/Year output.
Report from Peter O'Gorman.
Diffstat (limited to 'lib/mdate-sh')
-rwxr-xr-xlib/mdate-sh32
1 files changed, 27 insertions, 5 deletions
diff --git a/lib/mdate-sh b/lib/mdate-sh
index c1f037a27..a60e7d71b 100755
--- a/lib/mdate-sh
+++ b/lib/mdate-sh
@@ -1,7 +1,7 @@
#!/bin/sh
# Get modification time of a file or directory and pretty-print it.
-scriptversion=2005-02-02.22
+scriptversion=2005-02-07.09
# Copyright (C) 1995, 1996, 1997, 2003, 2004, 2005 Free Software
# Foundation, Inc.
@@ -108,13 +108,32 @@ do
done
# Get the extended ls output of the file or directory.
-set x`eval "$ls_command \"\$save_arg1\""`
+set dummy x`eval "$ls_command \"\$save_arg1\""`
# Remove all preceding arguments
eval $command
-# Get the month. Next argument is day, followed by the year or time.
-case $1 in
+# Because of the dummy argument above, month is in $2.
+#
+# On a POSIX system, we should have
+#
+# $# = 5
+# $1 = file size
+# $2 = month
+# $3 = day
+# $4 = year or time
+# $5 = filename
+#
+# On Darwin 7.7.0 and 7.6.0, we have
+#
+# $# = 4
+# $1 = day
+# $2 = month
+# $3 = year or time
+# $4 = filename
+
+# Get the month.
+case $2 in
Jan) month=January; nummonth=1;;
Feb) month=February; nummonth=2;;
Mar) month=March; nummonth=3;;
@@ -129,7 +148,10 @@ case $1 in
Dec) month=December; nummonth=12;;
esac
-day=$2
+case $# in
+ 4) day=$1;;
+ *) day=$3; shift;;
+esac
# Here we have to deal with the problem that the ls output gives either
# the time of day or the year.