BSD 4_3_Reno release
[unix-history] / usr / src / usr.bin / basename / basename.c
CommitLineData
72aaa5de
KB
1/*
2 * Copyright (c) 1987 Regents of the University of California.
b00122c8
KB
3 * All rights reserved.
4 *
5 * Redistribution and use in source and binary forms are permitted
1c15e888
C
6 * provided that: (1) source distributions retain this entire copyright
7 * notice and comment, and (2) distributions including binaries display
8 * the following acknowledgement: ``This product includes software
9 * developed by the University of California, Berkeley and its contributors''
10 * in the documentation or other materials provided with the distribution
11 * and in all advertising materials mentioning features or use of this
12 * software. Neither the name of the University nor the names of its
13 * contributors may be used to endorse or promote products derived
5e8b0e60
KB
14 * from this software without specific prior written permission.
15 * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
16 * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
1c15e888 17 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
72aaa5de 18 */
38582a33 19
72aaa5de
KB
20#ifndef lint
21char copyright[] =
22"@(#) Copyright (c) 1987 Regents of the University of California.\n\
23 All rights reserved.\n";
24#endif /* not lint */
25
26#ifndef lint
1c15e888 27static char sccsid[] = "@(#)basename.c 4.7 (Berkeley) 6/1/90";
72aaa5de
KB
28#endif /* not lint */
29
13564b25
KB
30#include <stdio.h>
31
8c24706b 32main(argc, argv)
b00122c8
KB
33 int argc;
34 char **argv;
8c24706b 35{
b00122c8
KB
36 register char *p, *t;
37 char *base;
8c24706b 38
13564b25
KB
39 if (argc < 2 || argc > 3) {
40 fprintf(stderr, "usage: basename string [suffix]\n");
8c24706b
BJ
41 exit(1);
42 }
b00122c8
KB
43 for (p = base = *++argv; *p;)
44 if (*p++ == '/')
45 base = p;
13564b25 46 if (argc == 3) {
b00122c8
KB
47 for (t = *++argv; *t; ++t);
48 do {
49 if (t == *argv) {
50 *p = '\0';
51 break;
52 }
53 } while (p >= base && *--t == *--p);
8c24706b 54 }
13564b25 55 printf("%s\n", base);
8c24706b
BJ
56 exit(0);
57}