* lib/mdate-sh: Cope with Darwin's Day/Month/Year output.
authorAlexandre Duret-Lutz <adl@gnu.org>
Mon, 7 Feb 2005 08:31:59 +0000 (08:31 +0000)
committerAlexandre Duret-Lutz <adl@gnu.org>
Mon, 7 Feb 2005 08:31:59 +0000 (08:31 +0000)
Report from Peter O'Gorman.

ChangeLog
lib/mdate-sh

index c568d7d..73ad2c2 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2005-02-07  Alexandre Duret-Lutz  <adl@gnu.org>
+
+       * lib/mdate-sh: Cope with Darwin's Day/Month/Year output.
+       Report from Peter O'Gorman.
+
 2005-02-06  Alexandre Duret-Lutz  <adl@gnu.org>
 
        * aclocal.in (usage, parse_arguments): New --dry-run and --diff
index c1f037a..a60e7d7 100755 (executable)
@@ -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.