summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorwlemb <wlemb>2001-01-17 14:17:20 +0000
committerwlemb <wlemb>2001-01-17 14:17:20 +0000
commit294359e6b4d7e34c7762580bbfeb5e73deebe778 (patch)
tree60b49f99fa015b03fd534fca6fda438893f9da50
parenta701afffed51dcf73ae7bf7d9cbdef5529da9fe9 (diff)
downloadgroff-294359e6b4d7e34c7762580bbfeb5e73deebe778.tar.gz
First cut of the new html device driver. Changes to pre-html and
the new grohtml are too numerous to be documented here. Stuff related to `html' has been renamed to `html-old' and `html2' stuff has been renamed to `html' (including directories). The new html device driver is therefore invoked as `-Thtml'. Added new `O' escape to suppress output (needed by html driver). Added functions and code to pass info about input-level commands (`.in', `.fl', etc.) to html driver. Three new functions (.html-begin, .html-end, and .html-image) for better html handling: `html-begin' will execute the remaining line if at the outermost nesting level, increasing an internal counter. `html-end' does the same but decreases the internal counter. `html_image' puts its arguments into a special node (suppress_node) to define an image region. The `output' request has been removed. * tmac/html-tags.tmac: Removed. * tmac/arkup.tmac: Updated and renamed to ... * tmac/www.tmac: New file. * tmac/markup.tmac Updated and renamed to ... * tmac/mwww.tmac: New file. * tmac/Makefile.sub: Updated. * tmac/an-old.tmac: Updated. * tmac/eqnrc: Updated. * tmac/groff_man.man * tmac/groff_markup.man: Updated and renamed to ... * tmac/groff_mwww.man: New file. * tmac/groff_tmac.man: Updated. * tmac/html-old.tmac: Updated and Renamed from html.tmac. * tmac/html.tmac: Updated and renamed from html2.tmac. * tmac/pspic.tmac: Updated html support. * tmac/s.tmac: Added html output support. * tmac/troffrc, tmac/troffrc-end: Updated. * Makefile.in, doc/Makefile: Updated. * doc/groff.texinfo: Added info about new `O' escape. * doc/homepage.ms: Use `MAILTO' macro. * font/devhtml/DESC.proto: Add `C' font. * font/devhtml/Makefile.sub: Updated. * font/devhtml/R.proto: Minor fixes. * font/devhtml-old/Makefile.sub: Updated. * src/devices/grohtml-old/Makefile.sub: Updated. * src/libs/libdriver/printer.cc (printer::get_font_from_index): New method. * src/libs/libgroff/htmlindicate.cc (html_begin_suppress, graphic_start): Add `inline' parameter. Update. (html_end_suppress, graphic_end): Update. * src/include/html-strings.h: New file. * src/include/htmlindicate.h: Comments updated. * src/include/printer.h: Updated. * src/preproc/eqn/main.cc (do_file, main): Updated. * src/preproc/pic/troff.cc (troff_output::start_picture, troff_output::finish_picture): Updated. * src/preproc/tbl/main.cc (process_input_file): Updated. * src/roff/groff/groff.cc (main): Updated. Pass device arguments to predrivers also. Use `ps' device for `eqn' preprocessor if `-Thtml' is given. * src/roff/troff/env.h (environment): Updated. New elements `need_eol' and `ignore_next_eol' (for html output). * src/roff/troff/env.cc (environment::environment): Add initializers for `need_eol' and `ignore_next_eol'. (environment::add_html_tag_eol, environment::add_html_tag_tabs): New functions. (point_size, fill, no_fill, center, right_justify, line_length, indent, temporary_indent, break_request, handle_tab): Use `add_html_tag()'. (set_tabs): Use `add_html_tag_tabs()'. (environment::add_html_tag): Updated. (environment::do_break): Updated. * src/roff/troff/div.cc (space_request, flush_output): Use `environment::add_html_tag()'. * src/roff/troff/input.cc: Updated. New variable `html_level' to indicate nested `html-begin' requests. (file_iterator::fill): Use `environment::add_html_tag_eol()'. (non_interpreted_char_node, token_node, non_interpreted_node): Add `force_tprint()' method. (token::next): Handle `O'. (do_suppress): Implement it. (html_begin, html_end, html_image): New functions. (init_output_requests): Renamed to ... (init_html_requests): this. (main): Use it. (macro::append_str, macro::append_unsigned, macro::append_int): New methods. New variable `output_low_mark_miny' to limit minimal value of y. (reset_output_registers): Use it. (output_request): Removed. (get_output_registers): New function. * src/roff/troff/node.h (node): Make `force_tprint()' virtual. (*_node): Added `force_tprint()' if necessary. (special_node): New elements `tf' and `get_tfont()'. (suppress_node): New class. * src/roff/troff/node.cc: New global variables `image_no' and `suppress_start_page'. (real_output_file): New method `is_on()'. (troff_output_file): New method `start_special(tfont)'. (troff_output_file::really_print_line): Use `tprint' conditionally. (real_output_file::print_line): Updated. (real_output_file::on): Updated. (*_node): Added `force_tprint()'. (special_node::special_node): Initializer updated. (special_node::same, special_node::copy, special_node::tprint_start): Updated. (get_reg_int, get_reg_str): New functions. (suppress_node::*): New methods. New global variables last_position, last_image_filename; (min): New inline function. * src/roff/troff/reg.h, src/roff/troff/request.h, src/roff/troff/troff.h: Updated.
-rwxr-xr-xfont/devhtml2/DESC.proto12
-rwxr-xr-xfont/devhtml2/Makefile.sub34
-rwxr-xr-xfont/devhtml2/R.proto315
3 files changed, 361 insertions, 0 deletions
diff --git a/font/devhtml2/DESC.proto b/font/devhtml2/DESC.proto
new file mode 100755
index 00000000..e245441c
--- /dev/null
+++ b/font/devhtml2/DESC.proto
@@ -0,0 +1,12 @@
+res 240
+hor 24
+vert 40
+unitwidth 10
+sizes 6 8 10 12 14 16 18 0
+fonts 6 R I B BI C S
+tcommand
+html
+postpro post-grohtml
+prepro pre-grohtml
+use_charnames_in_special
+pass_filenames
diff --git a/font/devhtml2/Makefile.sub b/font/devhtml2/Makefile.sub
new file mode 100755
index 00000000..df56914e
--- /dev/null
+++ b/font/devhtml2/Makefile.sub
@@ -0,0 +1,34 @@
+DEV=html
+PROTOFONTS=R I B BI CR
+FONTS=$(PROTOFONTS) S
+DEVFILES=$(FONTS) DESC
+CLEANADD=$(FONTS) DESC
+
+RES=240
+CPI=10
+LPI=6
+
+$(FONTS): R.proto
+ @echo Making $@
+ @-rm -f $@
+ @(charwidth=`expr $(RES) / $(CPI)` ; \
+ sed -e "s/^name [A-Z]*$$/name $@/" \
+ -e "s/^\\([^ ]*\\) [0-9]+ /\\1 $$charwidth /" \
+ -e "s/^spacewidth [0-9]+$$/spacewidth $$charwidth/" \
+ -e "s/^internalname .*$$/internalname $@/" \
+ -e "/^internalname/s/CR/4/" \
+ -e "/^internalname/s/BI/3/" \
+ -e "/^internalname/s/B/2/" \
+ -e "/^internalname/s/I/1/" \
+ -e "/^internalname .*[^ 0-9]/d" \
+ $(srcdir)/R.proto >$@)
+
+DESC: DESC.proto
+ @echo Making $@
+ @-rm -f $@
+ @sed -e "s/^res .*$$/res $(RES)/" \
+ -e "s/^hor .*$$/hor `expr $(RES) / $(CPI)`/" \
+ -e "s/^vert .*$$/vert `expr $(RES) / $(LPI)`/" \
+ -e "s/^fonts .*$$/fonts `set $(FONTS); echo $$#` $(FONTS)/" \
+ $(srcdir)/DESC.proto >$@
+
diff --git a/font/devhtml2/R.proto b/font/devhtml2/R.proto
new file mode 100755
index 00000000..f2c9d248
--- /dev/null
+++ b/font/devhtml2/R.proto
@@ -0,0 +1,315 @@
+name R
+internalname 0
+spacewidth 24
+charset
+! 24 0 0x0021
+" 24 0 0x0022 &quot;
+dq "
+# 24 0 0x0023
+sh "
+$ 24 0 0x0024
+Do "
+% 24 0 0x0025
+& 24 0 0x0026 &amp;
+aq 24 0 0x0027
+' "
+( 24 0 0x0028
+) 24 0 0x0029
+* 24 0 0x002A
++ 24 0 0x002B
+pl "
+, 24 0 0x002C
+\- 24 0 0x002D
+hy "
+- "
+mi "
+en "
+. 24 0 0x002E
+/ 24 0 0x002F
+sl "
+0 24 0 0x0030
+1 24 0 0x0031
+2 24 0 0x0032
+3 24 0 0x0033
+4 24 0 0x0034
+5 24 0 0x0035
+6 24 0 0x0036
+7 24 0 0x0037
+8 24 0 0x0038
+9 24 0 0x0039
+: 24 0 0x003A
+; 24 0 0x003B
+< 24 0 0x003C &lt;
+la "
+= 24 0 0x003D
+eq "
+> 24 0 0x003E &gt;
+ra "
+? 24 0 0x003F
+@ 24 0 0x0040
+at "
+A 24 0 0x0041
+B 24 0 0x0042
+C 24 0 0x0043
+D 24 0 0x0044
+E 24 0 0x0045
+F 24 0 0x0046
+G 24 0 0x0047
+H 24 0 0x0048
+I 24 0 0x0049
+J 24 0 0x004A
+K 24 0 0x004B
+L 24 0 0x004C
+M 24 0 0x004D
+N 24 0 0x004E
+O 24 0 0x004F
+P 24 0 0x0050
+Q 24 0 0x0051
+R 24 0 0x0052
+S 24 0 0x0053
+T 24 0 0x0054
+U 24 0 0x0055
+V 24 0 0x0056
+W 24 0 0x0057
+X 24 0 0x0058
+Y 24 0 0x0059
+Z 24 0 0x005A
+[ 24 0 0x005B
+lB "
+\ 24 0 0x005C
+rs "
+] 24 0 0x005D
+rB "
+^ 24 0 0x005E
+a^ "
+ha "
+_ 24 0 0x005F
+ru "
+ul "
+` 24 0 0x0060
+a 24 0 0x0061
+b 24 0 0x0062
+c 24 0 0x0063
+d 24 0 0x0064
+e 24 0 0x0065
+f 24 0 0x0066
+g 24 0 0x0067
+h 24 0 0x0068
+i 24 0 0x0069
+j 24 0 0x006A
+k 24 0 0x006B
+l 24 0 0x006C
+m 24 0 0x006D
+n 24 0 0x006E
+o 24 0 0x006F
+p 24 0 0x0070
+q 24 0 0x0071
+r 24 0 0x0072
+s 24 0 0x0073
+t 24 0 0x0074
+u 24 0 0x0075
+v 24 0 0x0076
+w 24 0 0x0077
+x 24 0 0x0078
+y 24 0 0x0079
+z 24 0 0x007A
+lC 24 0 0x007B
+{ "
+ba 24 0 0x007C
+or "
+| "
+rC 24 0 0x007D
+} "
+a~ 24 0 0x007E
+~ "
+ti "
+r! 24 0 0x00A1 &iexcl;
+char161 "
+ct 24 0 0x00A2 &cent;
+char162 "
+Po 24 0 0x00A3 &pound;
+char163 "
+Cs 24 0 0x00A4 &curren;
+char164 "
+Ye 24 0 0x00A5 &yen;
+char165 "
+bb 24 0 0x00A6 &brvbar;
+char166 "
+sc 24 0 0x00A7 &sect;
+char167 "
+ad 24 0 0x00A8 &uml;
+char168 "
+co 24 0 0x00A9 &copy;
+char169 "
+Of 24 0 0x00AA &ordf;
+char170 "
+Fo 24 0 0x00AB &laquo;
+char171 "
+no 24 0 0x00AC &not;
+char172 "
+rg 24 0 0x00AE &reg;
+char174 "
+a- 24 0 0x00AF &macr;
+char175 "
+de 24 0 0x00B0 &deg;
+char176 "
++- 24 0 0x00B1 &plusmn;
+char177 "
+S2 24 0 0x00B2 &sup2;
+char178 "
+S3 24 0 0x00B3 &sup3;
+char179 "
+aa 24 0 0x00B4 &acute;
+\' "
+char180 "
+char181 24 0 0x00B5 &micro;
+ps 24 0 0x00B6 &para;
+char182 "
+pc 24 0 0x00B7 &middot;
+char183 "
+ac 24 0 0x00B8 &cedil;
+char184 "
+S1 24 0 0x00B9 &sup1;
+char185 "
+Om 24 0 0x00BA &ordm;
+char186 "
+Fc 24 0 0x00BB &raquo;
+char187 "
+14 24 0 0x00BC &frac14;
+char188 "
+12 24 0 0x00BD &frac12;
+char189 "
+34 24 0 0x00BE &frac34;
+char190 "
+r? 24 0 0x00BF &iquest;
+char191 "
+`A 24 0 0x00C0 &Agrave;
+char192 "
+'A 24 0 0x00C1 &Aacute;
+char193 "
+^A 24 0 0x00C2 &Acirc;
+char194 "
+~A 24 0 0x00C3 &Atilde;
+char195 "
+:A 24 0 0x00C4 &Auml;
+char196 "
+oA 24 0 0x00C5 &Aring;
+char197 "
+AE 24 0 0x00C6 &AElig;
+char198 "
+,C 24 0 0x00C7 &Ccedil;
+char199 "
+`E 24 0 0x00C8 &Egrave;
+char200 "
+'E 24 0 0x00C9 &Eacute;
+char201 "
+^E 24 0 0x00CA &Ecirc;
+char202 "
+:E 24 0 0x00CB &Euml;
+char203 "
+`I 24 0 0x00CC &Igrave;
+char204 "
+'I 24 0 0x00CD &Iacute;
+char205 "
+^I 24 0 0x00CE &Icirc;
+char206 "
+:I 24 0 0x00CF &Iuml;
+char207 "
+-D 24 0 0x00D0 &ETH;
+char208 "
+~N 24 0 0x00D1 &Ntilde;
+char209 "
+`O 24 0 0x00D2 &Ograve;
+char210 "
+'O 24 0 0x00D3 &Oacute;
+char211 "
+^O 24 0 0x00D4 &Ocirc;
+char212 "
+~O 24 0 0x00D5 &Otilde;
+char213 "
+:O 24 0 0x00D6 &Ouml;
+char214 "
+mu 24 0 0x00D7 &times;
+char215 "
+/O 24 0 0x00D8 &Oslash;
+char216 "
+`U 24 0 0x00D9 &Ugrave;
+char217 "
+'U 24 0 0x00DA &Uacute;
+char218 "
+^U 24 0 0x00DB &Ucirc;
+char219 "
+:U 24 0 0x00DC &Uuml;
+char220 "
+'Y 24 0 0x00DD &Yacute;
+char221 "
+TP 24 0 0x00DE &THORN;
+char222 "
+ss 24 0 0x00DF &szlig;
+char223 "
+`a 24 0 0x00E0 &agrave;
+char224 "
+'a 24 0 0x00E1 &aacute;
+char225 "
+^a 24 0 0x00E2 &acirc;
+char226 "
+~a 24 0 0x00E3 &atilde;
+char227 "
+:a 24 0 0x00E4 &auml;
+char228 "
+oa 24 0 0x00E5 &aring;
+char229 "
+ae 24 0 0x00E6 &aelig;
+char230 "
+,c 24 0 0x00E7 &ccedil;
+char231 "
+`e 24 0 0x00E8 &egrave;
+char232 "
+'e 24 0 0x00E9 &eacute;
+char233 "
+^e 24 0 0x00EA &ecirc;
+char234 "
+:e 24 0 0x00EB &euml;
+char235 "
+`i 24 0 0x00EC &igrave;
+char236 "
+'i 24 0 0x00ED &iacute;
+char237 "
+^i 24 0 0x00EE &icirc;
+char238 "
+:i 24 0 0x00EF &iuml;
+char239 "
+Sd 24 0 0x00F0 &eth;
+char240 "
+~n 24 0 0x00F1 &ntilde;
+char241 "
+`o 24 0 0x00F2 &ograve;
+char242 "
+'o 24 0 0x00F3 &oacute;
+char243 "
+^o 24 0 0x00F4 &ocirc;
+char244 "
+~o 24 0 0x00F5 &otilde;
+char245 "
+:o 24 0 0x00F6 &ouml;
+char246 "
+di 24 0 0x00F7 &divide;
+char247 "
+/o 24 0 0x00F8 &oslash;
+char248 "
+`u 24 0 0x00F9 &ugrave;
+char249 "
+'u 24 0 0x00FA &uacute;
+char250 "
+^u 24 0 0x00FB &ucirc;
+char251 "
+:u 24 0 0x00FC &uuml;
+char252 "
+'y 24 0 0x00FD &yacute;
+char253 "
+Tp 24 0 0x00FE &thorn;
+char254 "
+:y 24 0 0x00FF &yuml;
+char255 "
+\` 24 0 0x2018 &grave;
+ga "