1<!-- 2 3 $Id: linuxdoc-roff.ts,v 1.2.2.1 1996/12/22 15:32:25 joerg Exp $ 4 5 Copyright (C) 1996 6 John R. Fieber. All rights reserved. 7 8 Redistribution and use in source and binary forms, with or without 9 modification, are permitted provided that the following conditions 10 are met: 11 1. Redistributions of source code must retain the above copyright 12 notice, this list of conditions and the following disclaimer. 13 2. Redistributions in binary form must reproduce the above copyright 14 notice, this list of conditions and the following disclaimer in the 15 documentation and/or other materials provided with the distribution. 16 17 THIS SOFTWARE IS PROVIDED BY JOHN R. FIEBER AND CONTRIBUTORS ``AS IS'' AND 18 ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 19 IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 20 ARE DISCLAIMED. IN NO EVENT SHALL JOHN R. FIEBER OR CONTRIBUTORS BE LIABLE 21 FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 22 DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 23 OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 24 HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 25 LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 26 OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 27 SUCH DAMAGE. 28 29--> 30 31<!-- 32 33 This is an instant(1) translation specification to turn an 34 SGML document marked up according to the linuxdoc DTD into 35 a document suitable for processing with groff(1) using mm 36 macros. 37 38 Special thanks to Chuck Robey <chuckr@freebsd.org> for helping 39 to unravel the mysteries of groff. 40 41--> 42 43<!DOCTYPE transpec PUBLIC "-//FreeBSD//DTD transpec//EN" [ 44 45<!ENTITY r.pass CDATA "1"> 46<!ENTITY r.passw CDATA "2"> 47<!ENTITY r.phack CDATA "3"> 48<!ENTITY r.label CDATA "4"> 49<!ENTITY r.initr CDATA "5"> 50 51<!ENTITY gt CDATA ">"> 52<!ENTITY lt CDATA "<"> 53<!ENTITY amp CDATA "&"> 54 55<!ENTITY cmap SYSTEM "roff.cmap"> 56<!ENTITY sdata SYSTEM "roff.sdata"> 57 58<!ENTITY family CDATA "P"> 59 60]> 61 62<transpec> 63 64<!-- Character and SDATA entity mapping --> 65<cmap>&cmap;</cmap> 66<smap>&sdata;</smap> 67 68<!-- Transform rules --> 69 70<!-- Inside a HEADING, all these need to be suppressed or deferred 71 to a later time. --> 72<rule> 73<match> 74<gi>EM IT BF SF SL TT CPARAM LABEL REF PAGEREF CITE URL HTMLURL MANREF NCITE EMAIL IDX CDX F X 75<relation>ancestor HEADING 76</rule> 77 78<rule> 79<match> 80<gi>LINUXDOC 81<action> 82<start>^.\" Generated ${date} using ${transpec} 83.\" by ${user}@${host} 84.if t \{\ 85. nr W 6i 86. nr O 1.25i 87. nr L 11i 88.\} 89.if n .nr W 79n 90.so /usr/local/share/groff/current/tmac/tmac.m 91.nr Pt 0 92.ie t \{\ 93. fam &family; 94. ds HP 16 14 12 10 10 10 10 95. ds HF HB HB HB HBI HI HI HI 96.\} 97.el \{\ 98. SA 0 99. ftr C R 100.\} 101.PH "'${_followrel descendant TITLE &r.pass;}''%'" 102.nr N 1 <!-- header at the bottom of the first page --> 103.nr Pgps 0 <!-- header/footer size immune from .S --> 104.nr Hy 1 <!-- hypenation on --> 105.nr H0 0 1 <!-- Part counter --> 106.af H0 I 107${_followrel descendant LABEL &r.initr;}</start> 108<end>^</end> 109</rule> 110 111<!-- This is used with the above ${_followrel ...} to insert the 112 .INITR command which opens a file for writing cross reference 113 information. If there are no <label> tags, we don't want to 114 bother with this. --> 115<rule id="&r.initr;"> 116<match> 117<gi>_initr 118<action> 119<start>^.INITR "${filename}"^</start> 120</rule> 121 122<rule> 123<match> 124<gi>ARTICLE 125<action> 126<start>^.nr Hb 4 127.nr Hs 4^</start> 128<end>^.bp 129.TC^</end> 130</rule> 131 132<rule> 133<match> 134<gi>REPORT BOOK 135<action> 136<start>^.nr Cl 3 <!-- TOC goes to level 3 --> 137.nr Hb 5 138.nr Hs 5^</start> 139<end> 140^.bp 141.TC^</end> 142</rule> 143 144<rule> 145<match> 146<gi>NOTES 147</rule> 148 149<rule> 150<match> 151<gi>MANPAGE 152</rule> 153 154<rule> 155<match> 156<gi>TITLEPAG 157<action> 158<start>^\& 159.if t .SP 1i^</start> 160<end>^.SP 3^</end> 161</rule> 162 163<rule> 164<match> 165<gi>TITLE 166<action> 167<start>^.if t .S 18 168.DS C F 169.if t .fam H 170.B 171.if t .SA 0^</start> 172<end>^.if t .SA 1 173.R 174.if t .fam &family; 175.DE 176.if t .S D^</end> 177</rule> 178 179<rule> 180<match> 181<gi>SUBTITLE 182</rule> 183 184<rule> 185<match> 186<gi>DATE 187<action> 188<start>^.DS C F^</start> 189<end>^.DE^</end> 190</rule> 191 192<rule> 193<match> 194<gi>ABSTRACT 195<action> 196<start>^.SP 3 197.DS C 198.B Abstract 199.DE 200.DS I F^</start> 201<end>^.DE^</end> 202</rule> 203 204<rule> 205<match> 206<gi>AUTHOR 207<action> 208<start>^.DS C F^</start> 209<end>^.DE^</end> 210</rule> 211 212<rule> 213<match> 214<gi>NAME 215</rule> 216 217<rule> 218<match> 219<gi>AND 220<action> 221<start>^.br^</start> 222</rule> 223 224<rule> 225<match> 226<gi>THANKS 227<action> 228<start>\*F 229.FS^</start> 230<end>^.FE^</end> 231</rule> 232 233<rule> 234<match> 235<gi>INST 236<action> 237<start>^.br^</start> 238</rule> 239 240<rule> 241<match> 242<gi>NEWLINE 243<action> 244<start>^.br^</start> 245</rule> 246 247<rule id="&r.label;"> 248<match> 249<gi>LABEL 250<action> 251<start>^.SETR "${ID}"^</start> 252</rule> 253 254<rule> 255<match> 256<gi>HEADER 257</rule> 258 259<rule> 260<match> 261<gi>LHEAD 262<action> 263<start>^.EH '</start> 264<end>'''^</end> 265</rule> 266 267<rule> 268<match> 269<gi>RHEAD 270<action> 271<start>^.OH '''</start> 272<end>'^</end> 273</rule> 274 275<rule> 276<match> 277<gi>COMMENT 278<action> 279<start>^(*^</start> 280<end>^*)^</end> 281</rule> 282 283<rule> 284<match> 285<gi>APPENDIX 286<action> 287<start>^.af H1 A^</start> 288</rule> 289 290<rule> 291<match> 292<gi>TOC 293</rule> 294 295<rule> 296<match> 297<gi>LOF 298</rule> 299 300<rule> 301<match> 302<gi>LOT 303</rule> 304 305<rule> 306<match> 307<gi>PART 308</rule> 309 310<rule> 311<match> 312<gi>CHAPT 313<action> 314<start>^.if t .SK 315${_set sl 1}</start> 316</rule> 317 318<rule> 319<match> 320<gi>SECT 321<relation>ancestor BOOK 322<action> 323<start>${_set sl 2}</start> 324</rule> 325 326<rule> 327<match> 328<gi>SECT 329<action> 330<start>${_set sl 1}</start> 331</rule> 332 333<rule> 334<match> 335<gi>SECT1 336<relation>ancestor BOOK 337<action> 338<start>${_set sl 3}</start> 339</rule> 340 341<rule> 342<match> 343<gi>SECT1 344<action> 345<start>${_set sl 2}</start> 346</rule> 347 348<rule> 349<match> 350<gi>SECT2 351<relation>ancestor BOOK 352<action> 353<start>${_set sl 4}</start> 354</rule> 355 356<rule> 357<match> 358<gi>SECT2 359<action> 360<start>${_set sl 3}</start> 361</rule> 362 363<rule> 364<match> 365<gi>SECT3 366<relation>ancestor BOOK 367<action> 368<start>${_set sl 5}</start> 369</rule> 370 371<rule> 372<match> 373<gi>SECT3 374<action> 375<start>${_set sl 4}</start> 376</rule> 377 378<rule> 379<match> 380<gi>SECT4 381<relation>ancestor BOOK 382<action> 383<start>${_set sl 6}</start> 384</rule> 385 386<rule> 387<match> 388<gi>SECT4 389<action> 390<start>${_set sl 5}</start> 391</rule> 392 393<rule> 394<match> 395<gi>HEADING 396<context>PART 397<action> 398<start>^.if t .SK 399\& 400.if t .fam H 401.SP 3i 402.if t .S 24 403Part \n+(H0 404.SP 1i 405.if t .S 36^</start> 406<end>^.if t .S D 407.if t .fam &family; 408.if t .SK^</end> 409</rule> 410 411<rule> 412<match> 413<gi>HEADING 414<action> 415<start>^.H ${sl} "</start> 416<end>" 417${_followrel child LABEL &r.label}</end> 418</rule> 419 420<!-- 421<rule> 422<match> 423<gi>HEADING 424<action> 425<start>^.br 426.di fbsd-head^</start> 427<end>^.br 428.di 429.asciify fbsd-head 430.H ${sl} \*[fbsd-head] 431${_followrel child LABEL &r.label}</end> 432</rule> 433--> 434 435<!-- A paragraph immediately following a <tag> in a <descrip>. --> 436<rule> 437<match> 438<gi>P 439<relation>sibling-1 TAG 440</rule> 441 442<rule> 443<match> 444<gi>P 445<action> 446<start>${_notempty &r.phack;}</start> 447</rule> 448 449<!-- Completely empty paragraphs. --> 450<rule id="&r.phack;"> 451<match> 452<gi>_phack 453<action> 454<replace>^.P^</replace> 455</rule> 456 457 458<rule> 459<match> 460<gi>ITEMIZE 461<action> 462<start>^.BL^</start> 463<end>^.LE^</end> 464</rule> 465 466<rule> 467<match> 468<gi>ENUM 469<action> 470<start>^.AL^</start> 471<end>^.LE^</end> 472</rule> 473 474<rule> 475<match> 476<gi>DESCRIP 477<action> 478<start>^.BVL \n(Li*2/1 \n(Li^</start> 479<end>^.LE^</end> 480</rule> 481 482<rule> 483<match> 484<gi>ITEM 485<action> 486<start>^.LI^</start> 487</rule> 488 489<rule> 490<match> 491<gi>TAG 492<action> 493<start>^.LI "</start> 494<end>"^</end> 495</rule> 496 497<rule> 498<match> 499<gi>CITE 500<action> 501<start>^.\[ 502${ID} 503.\]^</start> 504</rule> 505 506<rule> 507<match> 508<gi>NCITE 509<action> 510<start>^.\[ 511${ID} 512.\] 513(${NOTE})</start> 514</rule> 515 516<rule> 517<match> 518<gi>FOOTNOTE 519<action> 520<start>\*F 521.FS^</start> 522<end>^.FE^</end> 523</rule> 524 525<rule> 526<match> 527<gi>SQ 528<action> 529<start>\*Q</start> 530<end>\*U</end> 531</rule> 532 533<rule> 534<match> 535<gi>LQ 536<action> 537<start>^.if t .br 538.if t .S -2 539.DS I F^</start> 540<end>^.DE 541.if t .S D^</end> 542</rule> 543 544<rule> 545<match> 546<gi>EM 547<action> 548<start>\fI</start> 549<end>\fR</end> 550</rule> 551 552<rule> 553<match> 554<gi>BF 555<action> 556<start>\fB</start> 557<end>\fR</end> 558</rule> 559 560<rule> 561<match> 562<gi>IT 563<action> 564<start>\fI</start> 565<end>\fR</end> 566</rule> 567 568<rule> 569<match> 570<gi>SF 571<action> 572<start>\fR</start> 573<end>\fR</end> 574</rule> 575 576<rule> 577<match> 578<gi>SL 579<action> 580<start>\fI</start> 581<end>\fR</end> 582</rule> 583 584<rule> 585<match> 586<gi>TT 587<action> 588<start>\fC</start> 589<end>\fR</end> 590</rule> 591 592<rule> 593<match> 594<gi>CPARAM 595<action> 596<start>\fI<</start> 597<end>>\fR</end> 598</rule> 599 600<!-- A URL with a NAME attribute --> 601<rule> 602<match> 603<gi>URL 604<attval>NAME . 605<action> 606<start>${NAME}\*F 607.FS 608\fC<URL:${URL}>\fP 609.FE 610\&</start> 611</rule> 612 613<!-- A URL without a NAME attribute --> 614<rule> 615<match> 616<gi>URL 617<action> 618<start>\fC<URL:${URL}>\fP</start> 619</rule> 620 621<rule> 622<match> 623<gi>HTMLURL 624<action> 625<start>${NAME}</start> 626</rule> 627 628<rule> 629<match> 630<gi>MANREF 631<attval>SECTION 632<action> 633<start>\fC${NAME}(${SECTION})\fR</start> 634</rule> 635 636<rule> 637<match> 638<gi>MANREF 639<action> 640<start>\fC${NAME}\fR</start> 641</rule> 642 643 644<rule> 645<match> 646<gi>REF 647<attval>NAME . 648<action> 649<start>\fI${NAME}\fP (section\~ 650.GETHN "${ID}" 651, page\~ 652.GETPN "${ID}" 653)</start> 654</rule> 655 656<rule> 657<match> 658<gi>REF 659<action> 660<start>\fI${ID}\fP (section\~ 661.GETHN "${ID}" 662, page\~ 663.GETPN "${ID}" 664)</start> 665</rule> 666 667<rule> 668<match> 669<gi>PAGEREF 670<action> 671<start>^.GETPN "${ID}" 672\&</start> 673</rule> 674 675<rule> 676<match> 677<gi>X 678</rule> 679 680<rule> 681<match> 682<gi>MC 683</rule> 684 685<rule> 686<match> 687<gi>BIBLIO 688<action> 689<start>^.\[ 690\$LIST\$ 691.\]^</start> 692</rule> 693 694<rule> 695<match> 696<gi>VERB CODE 697<action> 698<start>^.if t .br 699.if t .S -2 700.DS I 701.fam C^</start> 702<end>^.DE 703.if t .S D^</end> 704</rule> 705 706<rule> 707<match> 708<gi>TSCREEN 709<relation>child VERB 710</rule> 711 712<rule> 713<match> 714<gi>TSCREEN 715<action> 716<start>^.if t .br 717.if t .S -2 718.DS I 719.fam C^</start> 720<end>^.DE 721.if t .S D^</end> 722</rule> 723 724<rule> 725<match> 726<gi>QUOTE 727<action> 728<start>^.DS I F^</start> 729<end>^.DE^</end> 730</rule> 731 732<rule> 733<match> 734<gi>DEF 735<action> 736<start>^.sp 737.nr def \n\[def\]+1 738.B "Definition \n\[def\] "^</start> 739<end>^.ft P 740.sp^</end> 741</rule> 742 743<rule> 744<match> 745<gi>PROP 746<action> 747<start>^.sp 748.nr prop \n\[prop\]+1 749.B "Proposition \n\[prop\] "^</start> 750<end>^.ft P 751.sp^</end> 752</rule> 753 754<rule> 755<match> 756<gi>LEMMA 757<action> 758<start>^.sp 759.nr lemma \n\[lemma\]+1 760.B "Lemma \n\[lemma\] "^</start> 761<end>^.ft P 762.sp^</end> 763</rule> 764 765<rule> 766<match> 767<gi>COROLL 768<action> 769<start>^.sp 770.nr coroll \n\[coroll\]+1 771.B "Corolloary \n\[coroll\] "^</start> 772<end>^.ft P 773.sp^</end> 774</rule> 775 776<rule> 777<match> 778<gi>PROOF 779<action> 780<start>^.sp 781.nr proof \n\[proof\]+1 782.B "Proof \n\[proof\] "^</start> 783<end>^.ft P 784.sp^</end> 785</rule> 786 787<rule> 788<match> 789<gi>THEOREM 790<action> 791<start>^.sp 792.nr theorem \n\[theorem\]+1 793.B "Theorem \n\[theorem\] "^</start> 794<end>^.ft P 795.sp^</end> 796</rule> 797 798<rule> 799<match> 800<gi>THTAG 801<action> 802<start>^.B 803(</start> 804<end>) 805.I^</end> 806</rule> 807 808<rule> 809<match> 810<gi>F 811</rule> 812 813<rule> 814<match> 815<gi>DM 816<action> 817<start>^.DS L^</start> 818<end>^.DE^</end> 819</rule> 820 821<rule> 822<match> 823<gi>EQ 824<action> 825<start>^.DS L^</start> 826<end>^.DE^</end> 827</rule> 828 829<rule> 830<match> 831<gi>FR 832</rule> 833 834<rule> 835<match> 836<gi>NU 837<action> 838<start>{</start> 839<end>} over </end> 840</rule> 841 842<rule> 843<match> 844<gi>DE 845<action> 846<start>{</start> 847<end>}</end> 848</rule> 849 850<rule> 851<match> 852<gi>LIM 853</rule> 854 855<rule> 856<match> 857<gi>OP 858</rule> 859 860<rule> 861<match> 862<gi>LL 863<action> 864<start>from {</start> 865<end>}</end> 866</rule> 867 868<rule> 869<match> 870<gi>UL 871<action> 872<start>to {</start> 873<end>}</end> 874</rule> 875 876<rule> 877<match> 878<gi>OPD 879</rule> 880 881<rule> 882<match> 883<gi>PR 884<action> 885<start> prod </start> 886</rule> 887 888<rule> 889<match> 890<gi>IN 891<action> 892<start> int </start> 893</rule> 894 895<rule> 896<match> 897<gi>SUM 898<action> 899<start> sum </start> 900</rule> 901 902<rule> 903<match> 904<gi>ROOT 905<action> 906<start> sqrt {</start> 907<end>}</end> 908</rule> 909 910<rule> 911<match> 912<gi>AR 913<action> 914<start>^.TS 915center, tab(|) ; 916${CA}.^</start> 917<end>^.TE^</end> 918</rule> 919 920<rule> 921<match> 922<gi>ARR 923</rule> 924 925<rule> 926<match> 927<gi>ARC 928<action> 929<start>|</start> 930</rule> 931 932<rule> 933<match> 934<gi>SUP 935<action> 936<start> sup {</start> 937<end>}</end> 938</rule> 939 940<rule> 941<match> 942<gi>INF 943<action> 944<start> sub {</start> 945<end>}</end> 946</rule> 947 948<rule> 949<match> 950<gi>UNL 951<action> 952<start>{</start> 953<end>} under </end> 954</rule> 955 956<rule> 957<match> 958<gi>OVL 959<action> 960<start>{</start> 961<end>} bar </end> 962</rule> 963 964<rule> 965<match> 966<gi>RF 967<action> 968<start> bold{</start> 969<end>}</end> 970</rule> 971 972<rule> 973<match> 974<gi>V 975<action> 976<start>{</start> 977<end>} vec </end> 978</rule> 979 980<rule> 981<match> 982<gi>FI 983<action> 984<start>\fI</start> 985<end>\fR</end> 986</rule> 987 988<rule> 989<match> 990<gi>PHR 991<action> 992<start> roman }</start> 993<end>}</end> 994</rule> 995 996<rule> 997<match> 998<gi>TU 999<action> 1000<start>^.br^</start> 1001</rule> 1002 1003<rule> 1004<match> 1005<gi>FIGURE 1006</rule> 1007 1008<rule> 1009<match> 1010<gi>EPS 1011<action> 1012<start>^.if t .PSPIC ${FILE} 1013.if n .sp 4^</start> 1014</rule> 1015 1016<rule> 1017<match> 1018<gi>PH 1019<action> 1020<start>^.sp ${VSPACE}^</start> 1021</rule> 1022 1023<rule> 1024<match> 1025<gi>CAPTION 1026<action> 1027<start>^.sp 1028.ce^</start> 1029</rule> 1030 1031<rule> 1032<match> 1033<gi>TABLE 1034<action> 1035<start>^.DF 1036.R^</start> 1037<end>^.DE^</end> 1038</rule> 1039 1040<rule> 1041<match> 1042<gi>TABULAR 1043<action> 1044<start>^.TS 1045center, tab(|) ; 1046${CA}.^</start> 1047<end>^.TE^</end> 1048</rule> 1049 1050<rule> 1051<match> 1052<gi>ROWSEP 1053<action> 1054<start>^</start> 1055</rule> 1056 1057<rule> 1058<match> 1059<gi>COLSEP 1060<action> 1061<start>|</start> 1062</rule> 1063 1064<rule> 1065<match> 1066<gi>HLINE 1067<action> 1068<start>^_^</start> 1069</rule> 1070 1071<rule> 1072<match> 1073<gi>SLIDES 1074<action> 1075<start>^.nr PS 18^</start> 1076</rule> 1077 1078<rule> 1079<match> 1080<gi>SLIDE 1081<action> 1082<end>^.bp 1083\&^</end> 1084</rule> 1085 1086<rule> 1087<match> 1088<gi>LETTER 1089<action> 1090<start>^.nf^</start> 1091<end>^</end> 1092</rule> 1093 1094<rule> 1095<match> 1096<gi>FROM 1097<action> 1098<start>^From: </start> 1099</rule> 1100 1101<rule> 1102<match> 1103<gi>TO 1104<action> 1105<start>^To: </start> 1106</rule> 1107 1108<rule> 1109<match> 1110<gi>ADDRESS 1111<action> 1112<start>^.de Ad</start> 1113<end>^..^</end> 1114</rule> 1115 1116<rule> 1117<match> 1118<gi>EMAIL 1119<action> 1120<start><</start> 1121<end>></end> 1122</rule> 1123 1124<rule> 1125<match> 1126<gi>SUBJECT 1127<action> 1128<start>^Subject: </start> 1129</rule> 1130 1131<rule> 1132<match> 1133<gi>SREF 1134<action> 1135<start>^Sref: </start> 1136</rule> 1137 1138<rule> 1139<match> 1140<gi>RREF 1141<action> 1142<start>^In-Reply-To: </start> 1143</rule> 1144 1145<rule> 1146<match> 1147<gi>CC 1148<action> 1149<start>^cc: </start> 1150</rule> 1151 1152<rule> 1153<match> 1154<gi>OPENING 1155<action> 1156<start>^.fi 1157.LP^</start> 1158</rule> 1159 1160<rule> 1161<match> 1162<gi>CLOSING 1163<action> 1164<start>^.LP^</start> 1165</rule> 1166 1167<rule> 1168<match> 1169<gi>ENCL 1170<action> 1171<start>^.XP 1172encl: </start> 1173</rule> 1174 1175<rule> 1176<match> 1177<gi>PS 1178<action> 1179<start>^.LP 1180p.s.</start> 1181</rule> 1182 1183<!-- Pass the content through --> 1184<rule id="&r.pass"> 1185<match> 1186<gi>_pass-text 1187</rule> 1188 1189<rule id="&r.passw"> 1190<match> 1191<gi>_pass-word 1192<action> 1193<replace>${each_C} </replace> 1194</rule> 1195 1196</transpec> 1197