main.c (1108B)
1 #include <u.h> 2 #include <libc.h> 3 #include <bio.h> 4 #include <draw.h> 5 #include <html.h> 6 #include "dat.h" 7 8 char *url = ""; 9 int aflag; 10 int width = 70; 11 int defcharset; 12 13 void 14 usage(void) 15 { 16 fprint(2, "usage: htmlfmt [-c charset] [-u URL] [-a] [-l length] [file ...]\n"); 17 exits("usage"); 18 } 19 20 void 21 main(int argc, char *argv[]) 22 { 23 int i, fd; 24 char *p, *err, *file; 25 char errbuf[ERRMAX]; 26 27 ARGBEGIN{ 28 case 'a': 29 aflag++; 30 break; 31 case 'c': 32 p = smprint("<meta charset=\"%s\">", EARGF(usage())); 33 defcharset = charset(p); 34 free(p); 35 break; 36 case 'l': case 'w': 37 err = EARGF(usage()); 38 width = atoi(err); 39 if(width <= 0) 40 usage(); 41 break; 42 case 'u': 43 url = EARGF(usage()); 44 aflag++; 45 break; 46 default: 47 usage(); 48 }ARGEND 49 50 err = nil; 51 file = "<stdin>"; 52 if(argc == 0) 53 err = loadhtml(0); 54 else 55 for(i=0; err==nil && i<argc; i++){ 56 file = argv[i]; 57 fd = open(file, OREAD); 58 if(fd < 0){ 59 errstr(errbuf, sizeof errbuf); 60 err = errbuf; 61 break; 62 } 63 err = loadhtml(fd); 64 close(fd); 65 if(err) 66 break; 67 } 68 if(err) 69 fprint(2, "htmlfmt: processing %s: %s\n", file, err); 70 exits(err); 71 }