Tito pointed out that if readlink doesn't have -f, there's no need to call
authorRob Landley <rob@landley.net>
Sat, 17 Sep 2005 11:13:25 +0000 (11:13 -0000)
committerRob Landley <rob@landley.net>
Sat, 17 Sep 2005 11:13:25 +0000 (11:13 -0000)
the option parsing code at all.

debianutils/readlink.c

index 3042b83ec8d03a2795cba51cec62a62a6319dd59..83abdbfa6049fde18e6701783e2a4c854e9265f6 100644 (file)
 int readlink_main(int argc, char **argv)
 {
        char *buf;
-       unsigned long opt = bb_getopt_ulflags(argc, argv,
-                                                       ENABLE_FEATURE_READLINK_FOLLOW ? "f" : "");
+       unsigned long opt = ENABLE_FEATURE_READLINK_FOLLOW ?
+                                                       bb_getopt_ulflags(argc, argv, "f") : 0;
 
-       if (optind + 1 != argc)
-               bb_show_usage();
+       if (argc != (ENABLE_FEATURE_READLINK_FOLLOW ? optind + 1 : 2))
+                       bb_show_usage();
 
-       if (ENABLE_FEATURE_READLINK_FOLLOW && (opt & READLINK_FLAG_f))
+       if (opt & READLINK_FLAG_f)
                buf = realpath(argv[optind], NULL);
        else
-               buf = xreadlink(argv[optind]);
+               buf = xreadlink(argv[ENABLE_FEATURE_READLINK_FOLLOW ? optind : 1]);
 
        if (!buf)
                return EXIT_FAILURE;