Jim Meyering wrote: > Here's another corner-case fix. > I'll push something like this as soon as I've updated NEWS > and added a test. > >>From 26a1306a0a9028eceed388dad0d8916aeeb00233 Mon Sep 17 00:00:00 2001 > From: Jim Meyering <meyer...@redhat.com> > Date: Mon, 28 Sep 2009 20:24:41 +0200 > Subject: [PATCH] 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
looks good. For my reference I notice the documented `find` behavior is to fall back to reporting on the dangling symlinks themselves: $ ls -RLli t/ t/: ls: cannot access t/bad.link: No such file or directory total 0 ? l????????? ? ? ? ? ? bad.link 88141 -rw-rw-r-- 1 padraig padraig 0 2009-09-28 22:10 t 88141 -rw-rw-r-- 1 padraig padraig 0 2009-09-28 22:10 t.link $ find -L t/ -ls 84691 4 drwxrwxr-x 2 padraig padraig 4096 Sep 28 22:13 t/ 88141 0 -rw-rw-r-- 1 padraig padraig 0 Sep 28 22:10 t/t 88141 0 -rw-rw-r-- 1 padraig padraig 0 Sep 28 22:10 t/t.link 134826 0 lrwxrwxrwx 1 padraig padraig 4 Sep 28 22:04 t/bad.link -> blah