ls: print "?", not "0" as inode of dereferenced dangling symlink
authorJim Meyering <meyering@redhat.com>
Mon, 28 Sep 2009 18:24:41 +0000 (20:24 +0200)
committerJim Meyering <meyering@redhat.com>
Tue, 29 Sep 2009 09:42:45 +0000 (11:42 +0200)
commit36edf7bad2ab76720a0bf6519074d23d4b8823a7
tree8c762204a8de0171ba33fee50d8ae931291e2f8e
parent242689c7f93de72693979f877dd31b3ef7178eea
ls: print "?", not "0" as inode of dereferenced dangling symlink

ls prints inode numbers two ways: for long (-l) listings,
and for short ones, e.g., ls -li and ls -i.  The code to print
long listings properly printed "?" when the inode was unknown,
but the code for handling short listings would print 0 instead.
Factor out the formatting code into a new function so ls prints
the right string ("?") from both places:
* NEWS (Bug fixes): Mention it.
* src/ls.c (format_inode): New function.
(print_long_format): Use it here.
(print_file_name_and_frills): Use it here, too.
* tests/ls/dangle: Exercise this fix.
Reported by Yang Ren in http://bugzilla.redhat.com/525400
NEWS
src/ls.c
tests/ls/dangle