xref: /plan9-contrib/sys/src/cmd/proof/main.c (revision 219b2ee8daee37f4aad58d63f21287faa8e4ffdc)
1 #include	<u.h>
2 #include	<libc.h>
3 #include	<libg.h>
4 #include	<bio.h>
5 #include	"proof.h"
6 
7 int Mode = DorS;
8 
9 Rectangle rpage = { 0, 0, 850, 1150 };
10 char devname[64];
11 double mag = DEFMAG;
12 int dbg = 0;
13 char *track = 0;
14 Biobuf bin;
15 char libfont[100] = "/lib/font/bit";
16 char mapfile[100] = "MAP";
17 char *mapname = "MAP";
18 
19 void
20 main(int argc, char *argv[])
21 {
22 	char c;
23 	int dotrack = 0;
24 
25 	for (argv++; *argv && (**argv == '-'); argv++)
26 		switch(argv[0][1]) {
27 		case 'm':	/* magnification */
28 			mag = atof(&argv[0][2]);
29 			if (mag < 0.1 || mag > 10){
30 				fprint(2, "ridiculous mag argument ignored\n");
31 				mag = DEFMAG;
32 			}
33 			break;
34 		case '/':
35 			nview = atoi(&argv[0][2]);
36 			if (nview < 1 || nview > MAXVIEW)
37 				nview = 1;
38 			break;
39 		case 'x':
40 			xyoffset.x += atoi(&argv[0][2]) * 100;
41 			break;
42 		case 'y':
43 			xyoffset.y += atoi(&argv[0][2]) * 100;
44 			break;
45 		case 'M':	/* change MAP file */
46 			if (argv[0][2])
47 				strcpy(mapname, &argv[0][2]);
48 			else {
49 				strcpy(mapname, argv[1]);
50 				argv++;
51 				argc--;
52 			}
53 			break;
54 		case 'F':	/* change /lib/font/bit directory */
55 			if (argv[0][2])
56 				strcpy(libfont, &argv[0][2]);
57 			else {
58 				strcpy(libfont, argv[1]);
59 				argv++;
60 				argc--;
61 			}
62 			break;
63 		case 'd':
64 			dbg = 1;
65 			break;
66 		case 't':
67 			dotrack = 1;
68 			break;
69 		default:
70 			fprint(2, "unknown option '%s' ignored!\n", *argv);
71 			break;
72 		}
73 	if (*argv) {
74 		close(0);
75 		if (open(*argv, 0) == -1) {
76 			perror(*argv);
77 			exits("open failure");
78 		}
79 		if(dotrack)
80 			track = *argv;
81 	}
82 	Binit(&bin, 0, OREAD);
83 	sprint(mapfile, "%s/%s", libfont, mapname);
84 	readmapfile(mapfile);
85 	for (c = 0; c < NFONT; c++)
86 		loadfontname(c, "??");
87 	mapscreen();
88 	clearscreen();
89 	readpage();
90 }
91