Blame


1 c42a1d3d 2006-02-21 devnull #include "a.h"
2 c42a1d3d 2006-02-21 devnull
3 c42a1d3d 2006-02-21 devnull /*
4 c42a1d3d 2006-02-21 devnull * 10. Input and Output Conventions and Character Translation.
5 c42a1d3d 2006-02-21 devnull */
6 c42a1d3d 2006-02-21 devnull
7 c42a1d3d 2006-02-21 devnull /* set escape character */
8 c42a1d3d 2006-02-21 devnull void
9 c42a1d3d 2006-02-21 devnull r_ec(int argc, Rune **argv)
10 c42a1d3d 2006-02-21 devnull {
11 c42a1d3d 2006-02-21 devnull if(argc == 1)
12 c42a1d3d 2006-02-21 devnull backslash = '\\';
13 c42a1d3d 2006-02-21 devnull else
14 c42a1d3d 2006-02-21 devnull backslash = argv[1][0];
15 c42a1d3d 2006-02-21 devnull }
16 c42a1d3d 2006-02-21 devnull
17 c42a1d3d 2006-02-21 devnull /* turn off escape character */
18 c42a1d3d 2006-02-21 devnull void
19 c42a1d3d 2006-02-21 devnull r_eo(int argc, Rune **argv)
20 c42a1d3d 2006-02-21 devnull {
21 c42a1d3d 2006-02-21 devnull USED(argc);
22 c42a1d3d 2006-02-21 devnull USED(argv);
23 c42a1d3d 2006-02-21 devnull backslash = -2;
24 c42a1d3d 2006-02-21 devnull }
25 c42a1d3d 2006-02-21 devnull
26 c42a1d3d 2006-02-21 devnull /* continuous underline (same as ul in troff) for the next N lines */
27 c42a1d3d 2006-02-21 devnull /* set underline font */
28 c42a1d3d 2006-02-21 devnull void
29 c42a1d3d 2006-02-21 devnull g_uf(int argc, Rune **argv)
30 c42a1d3d 2006-02-21 devnull {
31 c42a1d3d 2006-02-21 devnull USED(argc);
32 c42a1d3d 2006-02-21 devnull USED(argv);
33 c42a1d3d 2006-02-21 devnull }
34 c42a1d3d 2006-02-21 devnull
35 c42a1d3d 2006-02-21 devnull /* set control character */
36 c42a1d3d 2006-02-21 devnull void
37 c42a1d3d 2006-02-21 devnull r_cc(int argc, Rune **argv)
38 c42a1d3d 2006-02-21 devnull {
39 c42a1d3d 2006-02-21 devnull if(argc == 1)
40 c42a1d3d 2006-02-21 devnull dot = '.';
41 c42a1d3d 2006-02-21 devnull else
42 c42a1d3d 2006-02-21 devnull dot = argv[1][0];
43 c42a1d3d 2006-02-21 devnull }
44 c42a1d3d 2006-02-21 devnull
45 c42a1d3d 2006-02-21 devnull /* set no-break control character */
46 c42a1d3d 2006-02-21 devnull void
47 c42a1d3d 2006-02-21 devnull r_c2(int argc, Rune **argv)
48 c42a1d3d 2006-02-21 devnull {
49 c42a1d3d 2006-02-21 devnull if(argc == 1)
50 c42a1d3d 2006-02-21 devnull tick = '\'';
51 c42a1d3d 2006-02-21 devnull else
52 c42a1d3d 2006-02-21 devnull tick = argv[1][0];
53 c42a1d3d 2006-02-21 devnull }
54 c42a1d3d 2006-02-21 devnull
55 c42a1d3d 2006-02-21 devnull /* output translation */
56 c42a1d3d 2006-02-21 devnull
57 c42a1d3d 2006-02-21 devnull int
58 c42a1d3d 2006-02-21 devnull e_bang(void)
59 c42a1d3d 2006-02-21 devnull {
60 c42a1d3d 2006-02-21 devnull Rune *line;
61 c42a1d3d 2006-02-21 devnull
62 c42a1d3d 2006-02-21 devnull line = readline(CopyMode);
63 c42a1d3d 2006-02-21 devnull out(line);
64 c42a1d3d 2006-02-21 devnull outrune('\n');
65 c42a1d3d 2006-02-21 devnull free(line);
66 c42a1d3d 2006-02-21 devnull return 0;
67 c42a1d3d 2006-02-21 devnull }
68 c42a1d3d 2006-02-21 devnull
69 c42a1d3d 2006-02-21 devnull int
70 c42a1d3d 2006-02-21 devnull e_X(void)
71 c42a1d3d 2006-02-21 devnull {
72 c42a1d3d 2006-02-21 devnull int c;
73 c42a1d3d 2006-02-21 devnull
74 c42a1d3d 2006-02-21 devnull while((c = getrune()) >= 0 && c != '\'' && c != '\n')
75 c42a1d3d 2006-02-21 devnull outrune(c);
76 c42a1d3d 2006-02-21 devnull if(c == '\n'){
77 c42a1d3d 2006-02-21 devnull warn("newline in %CX'...'", backslash);
78 c42a1d3d 2006-02-21 devnull outrune(c);
79 c42a1d3d 2006-02-21 devnull }
80 c42a1d3d 2006-02-21 devnull if(c < 0)
81 c42a1d3d 2006-02-21 devnull warn("eof in %CX'...'", backslash);
82 c42a1d3d 2006-02-21 devnull return 0;
83 c42a1d3d 2006-02-21 devnull }
84 c42a1d3d 2006-02-21 devnull
85 c42a1d3d 2006-02-21 devnull int
86 c42a1d3d 2006-02-21 devnull e_quote(void)
87 c42a1d3d 2006-02-21 devnull {
88 c42a1d3d 2006-02-21 devnull int c;
89 c42a1d3d 2006-02-21 devnull
90 c42a1d3d 2006-02-21 devnull if(inputmode&ArgMode){
91 c42a1d3d 2006-02-21 devnull /* Leave \" around for argument parsing */
92 c42a1d3d 2006-02-21 devnull ungetrune('"');
93 c42a1d3d 2006-02-21 devnull return '\\';
94 c42a1d3d 2006-02-21 devnull }
95 c42a1d3d 2006-02-21 devnull while((c = getrune()) >= 0 && c != '\n')
96 c42a1d3d 2006-02-21 devnull ;
97 c42a1d3d 2006-02-21 devnull return '\n';
98 c42a1d3d 2006-02-21 devnull }
99 c42a1d3d 2006-02-21 devnull
100 c42a1d3d 2006-02-21 devnull int
101 c42a1d3d 2006-02-21 devnull e_newline(void)
102 c42a1d3d 2006-02-21 devnull {
103 c42a1d3d 2006-02-21 devnull return 0;
104 c42a1d3d 2006-02-21 devnull }
105 c42a1d3d 2006-02-21 devnull
106 c42a1d3d 2006-02-21 devnull int
107 c42a1d3d 2006-02-21 devnull e_e(void)
108 c42a1d3d 2006-02-21 devnull {
109 c42a1d3d 2006-02-21 devnull return backslash;
110 c42a1d3d 2006-02-21 devnull }
111 c42a1d3d 2006-02-21 devnull
112 c42a1d3d 2006-02-21 devnull void
113 c42a1d3d 2006-02-21 devnull r_comment(Rune *name)
114 c42a1d3d 2006-02-21 devnull {
115 c42a1d3d 2006-02-21 devnull int c;
116 c42a1d3d 2006-02-21 devnull
117 c42a1d3d 2006-02-21 devnull USED(name);
118 c42a1d3d 2006-02-21 devnull while((c = getrune()) >= 0 && c != '\n')
119 c42a1d3d 2006-02-21 devnull ;
120 c42a1d3d 2006-02-21 devnull }
121 c42a1d3d 2006-02-21 devnull
122 c42a1d3d 2006-02-21 devnull void
123 c42a1d3d 2006-02-21 devnull t10init(void)
124 c42a1d3d 2006-02-21 devnull {
125 c42a1d3d 2006-02-21 devnull addreq(L("ec"), r_ec, -1);
126 c42a1d3d 2006-02-21 devnull addreq(L("eo"), r_eo, 0);
127 c42a1d3d 2006-02-21 devnull addreq(L("lg"), r_nop, -1);
128 c42a1d3d 2006-02-21 devnull addreq(L("cc"), r_cc, -1);
129 c42a1d3d 2006-02-21 devnull addreq(L("c2"), r_c2, -1);
130 c42a1d3d 2006-02-21 devnull addreq(L("tr"), r_warn, -1);
131 c42a1d3d 2006-02-21 devnull addreq(L("ul"), r_nop, -1);
132 c42a1d3d 2006-02-21 devnull addraw(L("\\\""), r_comment);
133 c42a1d3d 2006-02-21 devnull
134 c42a1d3d 2006-02-21 devnull addesc('!', e_bang, 0);
135 c42a1d3d 2006-02-21 devnull addesc('X', e_X, 0);
136 c42a1d3d 2006-02-21 devnull addesc('\"', e_quote, CopyMode|ArgMode);
137 c42a1d3d 2006-02-21 devnull addesc('\n', e_newline, CopyMode|ArgMode|HtmlMode);
138 c42a1d3d 2006-02-21 devnull addesc('e', e_e, 0);
139 c42a1d3d 2006-02-21 devnull }
140 c42a1d3d 2006-02-21 devnull