~ubuntu-branches/ubuntu/lucid/9base/lucid

« back to all changes in this revision

Viewing changes to basename/basename.c

  • Committer: Bazaar Package Importer
  • Author(s): Daniel Baumann
  • Date: 2006-01-25 15:33:00 UTC
  • Revision ID: james.westby@ubuntu.com-20060125153300-6hh4p9wx8iqqply5
Tags: upstream-2
ImportĀ upstreamĀ versionĀ 2

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
#include <u.h>
 
2
#include <libc.h>
 
3
 
 
4
void
 
5
main(int argc, char *argv[])
 
6
{
 
7
        char *pr;
 
8
        int n, dflag;
 
9
 
 
10
        dflag = 0;
 
11
        if(argc>1 && strcmp(argv[1], "-d") == 0){
 
12
                --argc;
 
13
                ++argv;
 
14
                dflag = 1;
 
15
        }
 
16
        if(argc < 2 || argc > 3){
 
17
                fprint(2, "usage: basename [-d] string [suffix]\n");
 
18
                exits("usage");
 
19
        }
 
20
        pr = utfrrune(argv[1], '/');
 
21
        if(dflag){
 
22
                if(pr){
 
23
                        *pr = 0;
 
24
                        print("%s\n", argv[1]);
 
25
                        exits(0);
 
26
                }
 
27
                print(".\n");
 
28
                exits(0);
 
29
        }
 
30
        if(pr)
 
31
                pr++;
 
32
        else
 
33
                pr = argv[1];
 
34
        if(argc==3){
 
35
                n = strlen(pr)-strlen(argv[2]);
 
36
                if(n >= 0 && !strcmp(pr+n, argv[2]))
 
37
                        pr[n] = 0;
 
38
        }
 
39
        print("%s\n", pr);
 
40
        exits(0);
 
41
}