Changed sregex() (Closes: #1124).
[mpsl.git] / scripts / mkquickref.mpsl
blob27f8bb78b5075fdb3386b8d6d17094394a29793b
1 /* mkquickref.mpsl */
2 /* builds a PostScript file from mpsl_quickref.txt */
3 /* (C) Angel Ortega 2006 - GPL */
5 print("%!PS-Adobe-1.0\n",
6         "%%BoundingBox: 0 0 594 841\n",
7         "%%Orientation: Landscape\n",
8         "%%Pages: (atend)\n",
9         "%%EndComments\n",
10         "\n",
11         "%%BeginProlog\n",
12         "%%EndProlog\n",
13         "\n",
14         "%%BeginSetup\n",
15         "\n",
16         "/qr_colw { 280 } def\n",
17         "/qr_tabsep { 130 } def\n",
18         "/qr_rmarg { 12 } def\n",
19         "/qr_tmarg { -20 } def\n",
20         "/qr_maxy { -580 } def\n",
21         "/qr_maxx { 600 } def\n",
22         "/qr_fsize { 10 } def\n",
23         "\n",
24         "/qr_prop { /Courier findfont qr_fsize 1 sub scalefont setfont } def\n",
25         "/qr_noprop { /Times-Roman findfont qr_fsize scalefont setfont } def\n",
26         "/qr_bold { /Times-Bold findfont qr_fsize scalefont setfont } def\n",
27         "/qr_page { 90 rotate /qr_xpos qr_rmarg def /qr_ypos qr_tmarg def } def\n",
28         "\n",
29         "/qr_newline {\n",
30         "       /qr_ypos qr_ypos qr_fsize sub def\n",
31         "       qr_ypos qr_maxy lt { /qr_ypos qr_tmarg def\n",
32         "               /qr_xpos qr_xpos qr_colw add def\n",
33         "               qr_xpos qr_maxx gt { /qr_xpos qr_rmarg def } if\n",
34         "       } if\n",
35         "} def\n",
36         "\n",
37         "/qr_2cols {\n",
38         "       exch qr_xpos qr_ypos moveto qr_prop show\n",
39         "       qr_xpos qr_tabsep add qr_ypos moveto qr_noprop show\n",
40         "       qr_newline\n",
41         "} def\n",
42         "\n",
43         "/qr_title {\n",
44         "       qr_xpos qr_ypos moveto qr_bold show\n",
45         "       qr_newline\n",
46         "} def\n",
47         "\n",
48         "%%EndSetup\n"
51 print("%%Page: 1 1\n",
52         "%%BeginPageSetup\n",
53         "%%EndPageSetup\n",
54         "\n",
55         "qr_page\n"
58 n_lines = 0;
59 n_pag = 1;
61 while (line = read(STDIN)) {
62         local l;
64         /* strip \n */
65         line = sregex(line, "/\n$/", NULL);
67         /* escape parens */
68         line = sregex(line, "/\\\\/g", '\\');
69         line = sregex(line, "/\(/g", '\(');
70         line = sregex(line, "/\)/g", '\)');
72         /* leading asterisk? it's a title */
73         if ((l = regex([ "/^\*/", "/.*$/" ], line)) && size(l) == 2)
74                 print("(", l[1], ") qr_title\n");
75         else
76         /* text-tabs-text: two columns */
77         if ((l = regex([ "/^[^\t]*/", "/\t+/", "/.*$/" ], line)) && size(l) == 3)
78                 print("(", l[0], ") (", l[2], ") qr_2cols\n");
79         else
80         /* other: two columns, with empty second one */
81                 print("(", line, ") () qr_2cols\n");
83         n_lines++;
85         if (n_lines > 170) { /* 64 * 3 */
86                 n_pag++;
87                 n_lines = 0;
89                 print("showpage\n",
90                         "%%Page: ", n_pag, " ", n_pag, "\n",
91                         "%%BeginPageSetup\n",
92                         "%%EndPageSetup\n",
93                         "\n",
94                         "qr_page\n"
95                 );
96         }
99 print("showpage\n",
100         "\n",
101         "%%PageTrailer\n",
102         "\n",
103         "%%Trailer\n",
104         "%%Pages: ", n_pag, "\n",
105         "%%EOF\n"