diff options
Diffstat (limited to 'dirname.c')
| -rw-r--r-- | dirname.c | 14 |
1 files changed, 2 insertions, 12 deletions
| @@ -30,21 +30,11 @@ | |||
| 30 | 30 | ||
| 31 | extern int dirname_main(int argc, char **argv) | 31 | extern int dirname_main(int argc, char **argv) |
| 32 | { | 32 | { |
| 33 | char* s; | ||
| 34 | |||
| 35 | if ((argc < 2) || (**(argv + 1) == '-')) | 33 | if ((argc < 2) || (**(argv + 1) == '-')) |
| 36 | show_usage(); | 34 | show_usage(); |
| 37 | argv++; | 35 | argv++; |
| 38 | 36 | ||
| 39 | s=*argv+strlen(*argv)-1; | 37 | puts (dirname (argv[0])); |
| 40 | while (s > *argv && *s == '/') { | 38 | |
| 41 | *s-- = '\0'; | ||
| 42 | } | ||
| 43 | s = strrchr(*argv, '/'); | ||
| 44 | if (s != NULL && s == *argv) | ||
| 45 | s[1] = '\0'; | ||
| 46 | else if (s != NULL) | ||
| 47 | *s = '\0'; | ||
| 48 | puts(s ? *argv : "."); | ||
| 49 | return EXIT_SUCCESS; | 39 | return EXIT_SUCCESS; |
| 50 | } | 40 | } |
