Revision 16,
1.4 KB
checked in by builder, 39 years ago
(diff) |
totally new ln01 filter
martillo
|
Line | |
---|
1 | %{ |
---|
2 | #include <sys/file.h> |
---|
3 | #include <signal.h> |
---|
4 | extern int sighandler(); |
---|
5 | struct sigvec vector = |
---|
6 | { |
---|
7 | sighandler, |
---|
8 | (int) 0xFFFFFFFF, |
---|
9 | (int) 0 |
---|
10 | }; |
---|
11 | char *reset="\033c"; /* ris */ |
---|
12 | char *land_length="\033[2550t"; |
---|
13 | char *landscape="\033[10m"; |
---|
14 | char *port_length="\033[3300t"; /* form length = 11 inches */ |
---|
15 | char *portrait="\033[11m"; |
---|
16 | char *beginunderline = "\033[4m"; |
---|
17 | char *endunderline = "\033[0m"; |
---|
18 | char *mode; |
---|
19 | char *form_length; |
---|
20 | %} |
---|
21 | PRINTABLE [0-9A-Za-z \t`\[\];'\\<,./-=~!@#$%^&*()_+{}:"|>?] |
---|
22 | %% |
---|
23 | \f { |
---|
24 | printf("\f%s%s%s",reset,mode,form_length); |
---|
25 | fflush(stdout); |
---|
26 | } |
---|
27 | (_\b{PRINTABLE})+ { |
---|
28 | register char *p = &yytext[0]; |
---|
29 | printf(beginunderline); |
---|
30 | while(*p) |
---|
31 | { |
---|
32 | if((*p != '_') && (*p != '\b')) |
---|
33 | { |
---|
34 | putchar(*p); |
---|
35 | } |
---|
36 | ++p; |
---|
37 | } |
---|
38 | printf(endunderline); |
---|
39 | fflush(stdout); |
---|
40 | } |
---|
41 | %% |
---|
42 | |
---|
43 | yywrap() |
---|
44 | { |
---|
45 | fflush(stdout); |
---|
46 | flock(1, LOCK_UN); |
---|
47 | return(1); |
---|
48 | } |
---|
49 | main(argc,argv) |
---|
50 | int argc; |
---|
51 | register char *argv[]; |
---|
52 | { |
---|
53 | register int i; |
---|
54 | for(i = 1; i <= 27; ++i) { |
---|
55 | sigvec(i, &vector, 0); |
---|
56 | } |
---|
57 | flock(1, LOCK_EX); |
---|
58 | if(!strcmp(argv[0], "ln01l")) { |
---|
59 | mode = landscape; |
---|
60 | form_length = land_length; |
---|
61 | } |
---|
62 | else { |
---|
63 | mode = portrait; |
---|
64 | form_length = port_length; |
---|
65 | } |
---|
66 | setbuf(stdout, NULL); |
---|
67 | printf("%s%s%s",reset,mode,form_length); |
---|
68 | fflush(stdout); |
---|
69 | while(1) { |
---|
70 | if(yylex() <= 0) break; |
---|
71 | } |
---|
72 | } |
---|
73 | |
---|
74 | int |
---|
75 | sighandler(sig) |
---|
76 | register int sig; |
---|
77 | { |
---|
78 | yywrap(); |
---|
79 | exit(sig); |
---|
80 | } |
---|
81 | |
---|
82 | /* Local Modes: */ |
---|
83 | /* Mode:C */ |
---|
84 | /* End: */ |
---|
Note: See
TracBrowser
for help on using the repository browser.