1 bc7cb1a1 2003-11-23 devnull #include <u.h>
2 bc7cb1a1 2003-11-23 devnull #include <libc.h>
5 bc7cb1a1 2003-11-23 devnull main(int argc, char **argv)
7 bc7cb1a1 2003-11-23 devnull char *dir;
8 bc7cb1a1 2003-11-23 devnull char *name;
11 bc7cb1a1 2003-11-23 devnull dir = nil;
12 bc7cb1a1 2003-11-23 devnull ARGBEGIN{
13 bc7cb1a1 2003-11-23 devnull case 'd':
14 bc7cb1a1 2003-11-23 devnull if((dir=ARGF()) == nil)
15 bc7cb1a1 2003-11-23 devnull goto Usage;
18 bc7cb1a1 2003-11-23 devnull goto Usage;
21 bc7cb1a1 2003-11-23 devnull if(argc < 1) {
23 bc7cb1a1 2003-11-23 devnull fprint(2, "usage: cleanname [-d pwd] name...\n");
24 bc7cb1a1 2003-11-23 devnull exits("usage");
27 bc7cb1a1 2003-11-23 devnull for(i=0; i<argc; i++) {
28 bc7cb1a1 2003-11-23 devnull if(dir == nil || argv[i][0] == '/') {
29 bc7cb1a1 2003-11-23 devnull cleanname(argv[i]);
30 bc7cb1a1 2003-11-23 devnull print("%s\n", argv[i]);
32 bc7cb1a1 2003-11-23 devnull name = malloc(strlen(argv[i])+1+strlen(dir)+1);
33 bc7cb1a1 2003-11-23 devnull if(name == nil) {
34 bc7cb1a1 2003-11-23 devnull fprint(2, "cleanname: out of memory\n");
35 bc7cb1a1 2003-11-23 devnull exits("out of memory");
37 bc7cb1a1 2003-11-23 devnull sprint(name, "%s/%s", dir, argv[i]);
38 bc7cb1a1 2003-11-23 devnull cleanname(name);
39 bc7cb1a1 2003-11-23 devnull print("%s\n", name);
40 bc7cb1a1 2003-11-23 devnull free(name);
43 bc7cb1a1 2003-11-23 devnull exits(0);