Major coreutils update.

This commit is contained in:
Manuel Novoa III
2003-03-19 09:13:01 +00:00
parent e01f9662a5
commit cad5364599
295 changed files with 6944 additions and 5570 deletions

View File

@ -21,32 +21,43 @@
*
*/
/* getopt not needed */
/* BB_AUDIT SUSv3 compliant */
/* http://www.opengroup.org/onlinepubs/007904975/utilities/basename.html */
/* Mar 16, 2003 Manuel Novoa III (mjn3@codepoet.org)
*
* Changes:
* 1) Now checks for too many args. Need at least one and at most two.
* 2) Don't check for options, as per SUSv3.
* 3) Save some space by using strcmp(). Calling strncmp() here was silly.
*/
#include <stdlib.h>
#include "busybox.h"
#include <stdio.h>
#include <string.h>
#include "busybox.h"
extern int basename_main(int argc, char **argv)
{
int m, n;
size_t m, n;
char *s;
if ((argc < 2) || (**(argv + 1) == '-')) {
show_usage();
if (((unsigned int)(argc-2)) >= 2) {
bb_show_usage();
}
argv++;
s = bb_get_last_path_component(*++argv);
s = get_last_path_component(*argv);
if (argc>2) {
argv++;
if (*++argv) {
n = strlen(*argv);
m = strlen(s);
if (m>n && strncmp(s+m-n, *argv, n)==0)
if ((m > n) && ((strcmp)(s+m-n, *argv) == 0)) {
s[m-n] = '\0';
}
}
puts(s);
return EXIT_SUCCESS;
bb_fflush_stdout_and_exit(EXIT_SUCCESS);
}