diff --git a/vfs/ChangeLog b/vfs/ChangeLog index 9b0beadc8..afc24bbf3 100644 --- a/vfs/ChangeLog +++ b/vfs/ChangeLog @@ -1,3 +1,8 @@ +2002-02-12 Pavel Roskin + + * extfs/lslR.in: Fix parsing of old entries (with year number). + From Daniel Skarda <0rfelyus@atrey.karlin.mff.cuni.cz> + 2002-02-08 Andrew V. Samoilov * direntry.c (vfs_s_retrieve_file): Use off_t for total diff --git a/vfs/extfs/lslR.in b/vfs/extfs/lslR.in index 61e26e936..b9b445e24 100644 --- a/vfs/extfs/lslR.in +++ b/vfs/extfs/lslR.in @@ -16,7 +16,12 @@ case "$1" in esac $MYCAT "$1" | @AWK@ ' -BEGIN { dir="" } +BEGIN { + dir=""; + # Pattern to match 8 first fields. + rx = "[^ ]+[ ]+"; + rx = "^" rx rx rx rx rx rx rx rx; +} /^total\ [0-9]*$/ { next } /^$/ { next } /^[^ ].*:$/ { @@ -26,10 +31,11 @@ BEGIN { dir="" } else sub(/:$/, "/", dir); next; } -/:/ { - # gensub is not portable. +{ $9 != "" } { + # gensub() is not portable. name=$0 - sub(/^[^:]+:[^ ]+[ ]+/, "", name) + sub(rx, "", name) + # Cannot assign to $9, or spaces in the filename would be reduced. attr=substr($0, 1, length($0)-length(name)) printf "%s%s%s\n", attr, dir, name }' 2>/dev/null