Pádraig Brady wrote:
> On 12/12/2012 07:05 PM, Aaron Davies wrote:
>> Is there a reason the interface for readlink(1) is “FILE” instead of
>> “FILE...”? I’ve often wanted to do e.g. “find -type l|xargs
>> readlink” or (in zsh) “readlink **/*(@)”, and having to do a shell
>> loop or use “xargs -n1” seems inelegant.
>
> Note the newer more general realpath(1)
> supports multiple files.
>
> Though there is no reason I see that readlink(1)
> can't do so too. I also see the BSD version
> can accept multiple args, so I'll probably add
> something along the lines of the following
> unless there are objections.
Thanks. That seems like the right way to go.
...
> + const char *fname;
> + char *value;
> + fname = argv[optind];
...
> + value = (can_mode != -1
> + ? canonicalize_filename_mode (fname, can_mode)
> + : areadlink_with_size (fname, 63));
Maybe save two lines in the loop body by moving each of those declarations
down to its initialization?
const char *fname = argv[optind];
char *value = (can_mode != -1
? canonicalize_filename_mode (fname, can_mode)
: areadlink_with_size (fname, 63));