17 |
{ |
{ |
18 |
int retval = EXIT_SUCCESS; |
int retval = EXIT_SUCCESS; |
19 |
|
|
|
#if PATH_MAX > (BUFSIZ+1) |
|
|
RESERVE_CONFIG_BUFFER(resolved_path, PATH_MAX); |
|
|
# define resolved_path_MUST_FREE 1 |
|
|
#else |
|
|
#define resolved_path bb_common_bufsiz1 |
|
|
# define resolved_path_MUST_FREE 0 |
|
|
#endif |
|
|
|
|
20 |
if (!*++argv) { |
if (!*++argv) { |
21 |
bb_show_usage(); |
bb_show_usage(); |
22 |
} |
} |
23 |
|
|
24 |
do { |
do { |
25 |
if (realpath(*argv, resolved_path) != NULL) { |
char *resolved_path = xmalloc_realpath(*argv); |
26 |
|
if (resolved_path != NULL) { |
27 |
puts(resolved_path); |
puts(resolved_path); |
28 |
|
free(resolved_path); |
29 |
} else { |
} else { |
30 |
retval = EXIT_FAILURE; |
retval = EXIT_FAILURE; |
31 |
bb_simple_perror_msg(*argv); |
bb_simple_perror_msg(*argv); |
32 |
} |
} |
33 |
} while (*++argv); |
} while (*++argv); |
34 |
|
|
|
#if ENABLE_FEATURE_CLEAN_UP && resolved_path_MUST_FREE |
|
|
RELEASE_CONFIG_BUFFER(resolved_path); |
|
|
#endif |
|
|
|
|
35 |
fflush_stdout_and_exit(retval); |
fflush_stdout_and_exit(retval); |
36 |
} |
} |