| #include <u.h> |
| #include <libc.h> |
| |
| void |
| main(int argc, char **argv) |
| { |
| char *dir; |
| char *name; |
| int i; |
| |
| dir = nil; |
| ARGBEGIN{ |
| case 'd': |
| if((dir=ARGF()) == nil) |
| goto Usage; |
| break; |
| default: |
| goto Usage; |
| }ARGEND; |
| |
| if(argc < 1) { |
| Usage: |
| fprint(2, "usage: cleanname [-d pwd] name...\n"); |
| exits("usage"); |
| } |
| |
| for(i=0; i<argc; i++) { |
| if(dir == nil || argv[i][0] == '/') { |
| cleanname(argv[i]); |
| print("%s\n", argv[i]); |
| } else { |
| name = malloc(strlen(argv[i])+1+strlen(dir)+1); |
| if(name == nil) { |
| fprint(2, "cleanname: out of memory\n"); |
| exits("out of memory"); |
| } |
| sprint(name, "%s/%s", dir, argv[i]); |
| cleanname(name); |
| print("%s\n", name); |
| free(name); |
| } |
| } |
| exits(0); |
| } |