plan9port

fork of plan9port with libvec, libstr and libsdb
Log | Files | Refs | README | LICENSE

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 }