blob: e79f6967f99755828511945770e294e5540ace30 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
|
--- src/gensig/gensig.cc.orig Wed May 13 16:25:09 1998
+++ src/gensig/gensig.cc Wed May 13 16:26:02 1998
@@ -680,3 +680,30 @@
system(buf);
return 0;
}
+
+
+/* basename function from MOROHOSHI Akihiko <moro@race.u-tokyo.ac.jp> */
+char *
+basename(const char * str) {
+ const char *s,*t;
+ char *r;
+ if (str == NULL)
+ return strdup(".");
+
+ if( *str == '\0' )
+ return strdup(".");
+
+ for (s=str+strlen(str)-1; *s=='/' && s>str; s--) /* trim trailing '/'s */
+ ;
+ t=s+1;
+ for (; s>=str; s--)
+ if (*s == '/') {
+ if (t-s>1)
+ str=s+1; /* t-s==1 is special case: str=~^/+$ */
+ break;
+ }
+ r=(char *)malloc(t-str+1);
+ strncpy(r,str,t-str);
+ r[t-str]='\0';
+ return r;
+}
|