From 1b900e843b6cbdc2fa745f263f9927b235748e1d Mon Sep 17 00:00:00 2001 From: Alexandre Duret-Lutz Date: Mon, 7 Feb 2005 08:31:57 +0000 Subject: [PATCH] * lib/mdate-sh: Cope with Darwin's Day/Month/Year output. Report from Peter O'Gorman. --- ChangeLog | 5 +++++ lib/mdate-sh | 32 +++++++++++++++++++++++++++----- 2 files changed, 32 insertions(+), 5 deletions(-) diff --git a/ChangeLog b/ChangeLog index c568d7db..73ad2c20 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2005-02-07 Alexandre Duret-Lutz + + * lib/mdate-sh: Cope with Darwin's Day/Month/Year output. + Report from Peter O'Gorman. + 2005-02-06 Alexandre Duret-Lutz * aclocal.in (usage, parse_arguments): New --dry-run and --diff diff --git a/lib/mdate-sh b/lib/mdate-sh index c1f037a2..a60e7d71 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. -- 2.43.5