1implement Cleanname; 2 3include "sys.m"; 4 sys: Sys; 5 6include "draw.m"; 7 8include "names.m"; 9 names: Names; 10 11include "arg.m"; 12 13Cleanname: module 14{ 15 init: fn(nil: ref Draw->Context, nil: list of string); 16}; 17 18init(nil: ref Draw->Context, args: list of string) 19{ 20 sys = load Sys Sys->PATH; 21 names = load Names Names->PATH; 22 arg := load Arg Arg->PATH; 23 24 dir: string; 25 arg->init(args); 26 arg->setusage("cleanname [-d pwd] name ..."); 27 while((o := arg->opt()) != 0) 28 case o { 29 'd' => 30 dir = arg->earg(); 31 * => 32 arg->usage(); 33 } 34 args = arg->argv(); 35 if(args == nil) 36 arg->usage(); 37 arg = nil; 38 39 for(; args != nil; args = tl args){ 40 n := hd args; 41 if(dir != nil && n != nil && n[0] != '/' && n[0] != '#') 42 n = dir+"/"+n; 43 sys->print("%s\n", names->cleanname(n)); # %q? 44 } 45} 46