1 diff -p -u -r1.7 Config.in
2 --- busybox-1.00/debianutils/Config.in 15 Mar 2004 08:28:24 -0000 1.7
3 +++ busybox-1.00-patched/debianutils/Config.in 16 Nov 2004 11:46:41 -0000
4 @@ -24,6 +24,13 @@ config CONFIG_READLINK
5 This program reads a symbolic link and returns the name
6 of the file it points to
8 +config CONFIG_FEATURE_READLINK_FOLLOW
9 + bool " Enable canonicalization by following all symlinks (-f)"
11 + depends on CONFIG_READLINK
13 + Enable the readlink option (-f).
15 config CONFIG_RUN_PARTS
18 diff -p -u -r1.2 readlink.c
19 --- busybox-1.00/debianutils/readlink.c 19 Mar 2003 09:11:41 -0000 1.2
20 +++ busybox-1.00-patched/debianutils/readlink.c 16 Nov 2004 11:46:41 -0000
28 +#ifdef CONFIG_FEATURE_READLINK_FOLLOW
29 +# define READLINK_FOLLOW "f"
30 +# define READLINK_FLAG_f (1 << 0)
32 +# define READLINK_FOLLOW ""
35 +static const char readlink_options[] = READLINK_FOLLOW;
37 int readlink_main(int argc, char **argv)
40 + unsigned long opt = bb_getopt_ulflags(argc, argv, readlink_options);
41 +#ifdef CONFIG_FEATURE_READLINK_FOLLOW
42 + RESERVE_CONFIG_BUFFER(resolved_path, PATH_MAX);
45 /* no options, no getopt */
48 + if (optind + 1 != argc)
51 - buf = xreadlink(argv[1]);
52 +#ifdef CONFIG_FEATURE_READLINK_FOLLOW
53 + if (opt & READLINK_FLAG_f) {
54 + buf = realpath(argv[optind], resolved_path);
57 + buf = xreadlink(argv[optind]);
62 diff -p -u -r1.222 usage.h
63 --- busybox-1.00/include/usage.h 14 Sep 2004 16:23:56 -0000 1.222
64 +++ busybox-1.00-patched/include/usage.h 16 Nov 2004 11:46:42 -0000
65 @@ -1985,10 +1985,18 @@
66 "\t-s\tSet the system date and time (default).\n" \
67 "\t-p\tPrint the date and time."
69 +#ifdef CONFIG_FEATURE_READLINK_FOLLOW
70 +#define USAGE_READLINK_FOLLOW(a) a
72 +#define USAGE_READLINK_FOLLOW(a)
75 #define readlink_trivial_usage \
77 + USAGE_READLINK_FOLLOW("[-f] ") "FILE"
78 #define readlink_full_usage \
79 - "Displays the value of a symbolic link."
80 + "Displays the value of a symbolic link." \
81 + USAGE_READLINK_FOLLOW("\n\nOptions:\n" \
82 + "\t-f\tcanonicalize by following all symlinks")
84 #define realpath_trivial_usage \