meillo@0: .do xflag 3 meillo@0: .de __ meillo@0: .. meillo@0: .blm __ \" ignore empty lines in input meillo@0: .lc_ctype en_US.utf8 meillo@0: .mediasize a4 meillo@0: meillo@0: .fp 1 R LinLibertine_R otf meillo@0: .feature R +onum meillo@0: .fp 2 I LinLibertine_RI otf meillo@0: .feature I +onum meillo@0: .fp 3 B LinLibertine_RB otf meillo@0: .feature B +onum meillo@0: .fp 4 BI LinLibertine_RBI otf meillo@0: .feature BI +onum meillo@0: .fp 5 CW TerminusMedium-4.36 ttf meillo@0: .fp 0 CI TerminusMediumItalic-4.36 ttf meillo@0: .fp 0 CB TerminusBold-4.36 ttf meillo@0: .fp 0 L TerminusMedium-4.36 ttf meillo@205: .fp 0 U TerminusMedium-4.36 ttf meillo@82: .ftr CW -\-`\`'\' meillo@82: .ftr CI -\-`\`'\' meillo@82: .ftr CB -\-`\`'\' meillo@82: .ftr L -\-`\`'\' meillo@205: .ftr U -\-`\`'\' meillo@205: .fzoom U .9 meillo@15: .fp 0 SC LinLibertine_R otf meillo@15: .feature SC +onum +smcp meillo@15: .fp 0 IC LinLibertine_RI otf meillo@15: .feature IC +onum +smcp meillo@0: .fp 0 BC LinLibertine_RB otf meillo@0: .feature BC +onum +smcp meillo@0: meillo@152: .ss 12 0 \" the second (non-portable) argument requests french spacing meillo@152: meillo@170: .nr PI 4n meillo@41: .nr PD .3v meillo@170: .nr QI 2u*\n(PIu meillo@0: .nr lu 0 meillo@0: .af PN i meillo@0: meillo@15: .ds _E '\\\\n(PN''\f(SCMarkus Schnalke: The Modern Mail Handler\fP' \" left meillo@185: .ds _a '\f(SCAppendix \\\\n(H1\ \ \\\\*(_C\fP''\\\\n(PN' \" right meillo@15: .ds _O '\f(SCChapter \\\\n(H1\ \ \\\\*(_C\fP''\\\\n(PN' \" right meillo@29: .ds _o '\f(SC\\\\*(_C\fP''\\\\n(PN' \" right meillo@0: .ds CH " meillo@0: meillo@0: .nr HM 3.3c meillo@0: .nr FM 6.6c meillo@75: .nr LL 13c meillo@75: .ll 13c meillo@0: .nr LT \n(LL meillo@0: meillo@81: . \" _M - change margins for text block on next page meillo@81: .de _M meillo@99: .if t .if o .nr PO 5c meillo@99: .if t .if e .nr PO 3c meillo@0: .ds CF " meillo@0: .. meillo@0: .wh -1u _M meillo@0: meillo@218: . \" ZZ - enlarge or shorten the text block on the current meillo@218: . \" page to avoid widows meillo@218: . \" .ZZ -> enlarge by one line meillo@218: . \" .ZZ +3 -> enlarge by three lines meillo@218: . \" .ZZ -2 -> shorten by two lines meillo@218: . \" .ZZ +1c -> enlarge by one centimeter meillo@218: . \" .ZZ "" -> reset to the default meillo@218: .de ZZ meillo@218: .ie \\n(.$=0 .ch FO -\\n(FMu+1v meillo@218: .el .ch FO -\\n(FMu\\$1 meillo@90: .. meillo@90: meillo@81: . \" CW - Set text in CW font (similar to .B and .I) meillo@0: .de CW meillo@0: .nr PQ \\n(.f meillo@0: .if t \{\ meillo@0: . ft CW meillo@0: . if !^\\$1^^ \&\\$1\f\\n(PQ\\$2 meillo@0: .\} meillo@0: .if n \{\ meillo@0: . ie ^\\$1^^ .ul 999 meillo@0: . el .ul 1 meillo@0: . if \\n(.$=1 \&\\$1 meillo@0: . if \\n(.$>1 \&\\$1\c meillo@0: . if \\n(.$>1 \&\\$2 meillo@0: .\} meillo@0: .. meillo@0: meillo@81: . \" refer(1) stuff meillo@35: .ds [. " [ meillo@0: .ds .] ] meillo@0: .rm ]< meillo@0: .de ]< meillo@0: . de FP meillo@170: . IP \\\\$1 meillo@0: \\.. meillo@0: . rm FS FE meillo@0: .. meillo@0: meillo@81: . \" PT - page top macro of ms meillo@0: .am PT meillo@0: . rs meillo@0: .. meillo@0: meillo@81: meillo@81: . \" RN - Reset PN and continue on an odd page ($1=number-format) meillo@81: .de RN meillo@81: .ie e .pn 1 meillo@81: .el \{ meillo@81: . pn 0 meillo@81: . bp meillo@81: .\} meillo@81: .ie \\n(.$=1 .af PN \\$1 meillo@81: .el .af PN 1 meillo@81: .. meillo@81: meillo@81: meillo@81: . \" T_ - Add TOC entry ($1=pre-space $2=indent-level $3=text) meillo@81: .de T_ meillo@79: .tm TOC____.sp \\$1 meillo@79: .tm TOC____\&\\h'\\$2u*2u*\\n(PIu'\\$3\0\0\a\t\\n(PN\fR meillo@79: .. meillo@79: meillo@81: . \" NH - redefine numbered heading meillo@0: .de NH meillo@0: .SH meillo@0: .nr NS \\$1 meillo@0: .if !\\n(.$ .nr NS 1 meillo@0: .if !\\n(NS .nr NS 1 meillo@0: .nr H\\n(NS +1 meillo@6: .if \\n(NS<2 .nr H2 0 meillo@6: .if \\n(NS<3 .nr H3 0 meillo@0: .ds SN \\n(H1 meillo@6: .if \\n(NS>1 .as SN \&.\\n(H2 meillo@6: .if \\n(NS>2 .as SN \&.\\n(H3 meillo@0: .. meillo@0: meillo@185: . \" H- - Chapter not numbered and not in TOC meillo@40: .de H- meillo@29: .EH " meillo@29: .OH " meillo@29: .bp meillo@81: .if e .rs \" move to an odd page meillo@29: .if e .bp meillo@29: .lg 0 meillo@29: .nr PS +6 meillo@29: .nr VS +6 meillo@29: .SH meillo@29: .ce 1 meillo@29: .tr aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ meillo@29: \&\\$1 meillo@29: .br meillo@29: .tr aabbccddeeffgghhiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz meillo@29: .nr PS -6 meillo@29: .nr VS -6 meillo@29: .lg meillo@185: .EH "\\\\*(_E meillo@185: .OH "\\\\*(_o meillo@185: .ds CF \\n(PN meillo@81: .RT meillo@29: .sp 4 meillo@29: .nr PP 0 meillo@29: .. meillo@29: meillo@185: . \" AP - Start the Appendix meillo@185: .de AP meillo@185: .nr _A 1 meillo@185: .nr H1 0 meillo@185: .af H1 A meillo@185: .. meillo@185: meillo@81: . \" H0 - Chapter ($2=="no" -> not numbered) meillo@0: .de H0 meillo@0: .EH " meillo@0: .OH " meillo@0: .bp meillo@81: .if e .rs \" begin chapter on an odd page meillo@0: .if e .bp meillo@81: .lg 0 meillo@81: .nr PS +6 meillo@81: .nr VS +6 meillo@81: .ie ,\\$2,no, .SH meillo@81: .el \{\ meillo@0: . NH 1 meillo@0: . ce 1 meillo@185: .ie \\n(_A Appendix \\*(SN meillo@185: .el Chapter \\*(SN meillo@0: . sp .5 meillo@0: .\} meillo@81: .ce 1 meillo@81: .tr aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ meillo@0: \&\\$1 meillo@81: .br meillo@81: .tr aabbccddeeffgghhiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz meillo@81: .nr PS -6 meillo@81: .nr VS -6 meillo@81: .lg meillo@81: .\" add to TOC meillo@79: .rm t_ meillo@211: .if !,\\$2,no, .ds t_ \\Z'\\*(SN'\\h'3n' meillo@79: .T_ .5v 0 "\fB\\*(t_\\$1 meillo@81: .\" set page headers and footers meillo@29: .EH "\\\\*(_E meillo@81: .ds _C "\\$1 meillo@185: .ie ,\\$2,no, .OH "\\\\*(_o meillo@185: .el .ie \\n(_A .OH "\\\\*(_a meillo@185: .el .OH "\\\\*(_O meillo@29: .ds CF \\n(PN meillo@81: .RT meillo@0: .sp 4 meillo@0: .nr PP 0 meillo@0: .. meillo@0: meillo@39: meillo@81: . \" H1 - Section ($2=="no" -> not numbered) meillo@0: .de H1 meillo@0: .br meillo@0: .ne 7 meillo@1: .sp meillo@81: .lg 0 meillo@81: .nr PS +2 meillo@81: .nr VS +2 meillo@81: .ie '\\$2'no' .SH meillo@81: .el .NH 2 meillo@6: .if !'\\$2'no' \&\\*(SN meillo@81: .tr aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ meillo@81: \&\\$1 meillo@81: .br meillo@81: .tr aabbccddeeffgghhiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz meillo@81: .nr PS -2 meillo@81: .nr VS -2 meillo@81: .lg meillo@211: .if !'\\$2'no' .T_ .3v 1 "\\Z'\\*(SN'\\h'4n'\\$1 \" add to TOC meillo@81: .RT meillo@6: .nr PP 0 meillo@6: .. meillo@6: meillo@81: . \" H2 - Subsection meillo@6: .de H2 meillo@6: .br meillo@7: .ne 4 meillo@59: .NH 3 meillo@81: \&\\*(SN \\$1 meillo@211: .T_ 0 2 "\\Z'\\*(SN'\\h'5.5n'\\$1 \" add to TOC meillo@11: .RT meillo@11: .nr PP 0 meillo@11: .. meillo@11: meillo@81: . \" U2 - Subsection unnumbered meillo@11: .de U2 meillo@11: .br meillo@11: .ne 4 meillo@11: .SH meillo@81: \&\\$1 meillo@11: .RT meillo@0: .nr PP 0 meillo@0: .. meillo@0: meillo@81: . \" U3 - Subsubsection unnumbered meillo@73: .de U3 meillo@73: .br meillo@73: .ne 4 meillo@73: .RT meillo@73: .sp meillo@73: .I "\\$1 meillo@73: .RT meillo@73: .nr PP 0 meillo@73: .. meillo@73: meillo@81: . \" P - Paragraph (indented unless following a heading) meillo@0: .de P meillo@0: .ie \\n(PP .PP meillo@0: .el .LP meillo@0: .nr PP 1 meillo@0: .. meillo@0: meillo@170: .am LP meillo@170: .nr PP 1 meillo@170: .. meillo@170: meillo@170: meillo@170: . \" LI - Numbered paragraph ``list item'' ($1=label) meillo@170: .de LI meillo@170: .ie \\n(.$ .IP "\\h'\\n(PIu'\\$1." 2u*\\n(PIu meillo@170: .el .IP "\\h'\\n(PIu'\\(bu" 2u*\\n(PIu meillo@170: .nr PP 1 meillo@170: .. meillo@170: .ig \" backup meillo@170: .ie \\n(.$ .IP "\h'1n'\\$1" meillo@170: .el .IP "\h'1.5n'\\(bu" meillo@0: .. meillo@0: meillo@81: . \" BU - Bulleted paragraph meillo@6: .de BU meillo@170: .LI meillo@6: .. meillo@6: meillo@98: . \" QS - Block quote start meillo@98: .de QS meillo@91: .ti \\n(.iu meillo@137: .\"RT meillo@98: .sp 2u*\\n(PDu meillo@91: .ne 1.1 meillo@0: .ps -1 meillo@103: .vs -1 meillo@91: .in +\\n(QIu meillo@91: .ll -\\n(QIu meillo@91: .ti \\n(.iu meillo@98: .\"if \\n(Qp .ti +\\n(PIu meillo@98: .\"nr QP 1 meillo@98: .\"rr Qp meillo@98: .. meillo@98: meillo@98: . \" QP - Block quote paragraph meillo@98: .de QP meillo@98: .sp \n(PDu meillo@98: .ne 1.1 meillo@98: .ti +\\n(PIu meillo@98: .. meillo@98: meillo@98: . \" QP - Block quote end meillo@98: .de QE meillo@98: .sp \\n(PDu meillo@98: .in -\\n(QIu meillo@98: .ll +\\n(QIu meillo@98: .ti \\n(.iu meillo@103: .ps +1 meillo@103: .vs +1 meillo@0: .. meillo@0: meillo@81: . \" DS - Code display meillo@0: .am DS meillo@0: .ft CW meillo@0: .ps -1 meillo@0: .ta T 8n meillo@0: .. meillo@0: meillo@82: . \" VS - verbatim text start (\\ -> ^G; ' -> disabled; . -> ^B) meillo@82: .de VS meillo@82: .br meillo@119: .ne 3 meillo@82: .sp \n(DDu meillo@119: .di _V meillo@82: .nf meillo@82: .ft CW meillo@119: .ps -.5 meillo@82: .\" set up verbatim environment meillo@82: \.blm meillo@82: \.ec  meillo@82: \.c2 "" meillo@82: \.cc  meillo@82: .. meillo@82: meillo@82: . \" VE - verbatim text end (NOTE: Needs to be called as ^BVE !) meillo@82: .de VE meillo@82: \" restore the special characters meillo@82: cc meillo@82: .c2 meillo@82: .ec meillo@119: .br meillo@119: .di meillo@119: .ne \\n(dnu+1v \" ensure enough space on the page meillo@175: .in +2u*\\n(PIu meillo@119: .ta T 8n meillo@119: \.ec  \" set up verbatim environment, once again meillo@119: \.c2 "" meillo@119: \.cc  meillo@119: _V \" output the verbatim content meillo@119: \" restore the special characters meillo@119: cc meillo@119: .c2 meillo@119: .ec meillo@82: .blm __ meillo@175: .in -2u*\\n(PIu meillo@82: .sp \n(DDu meillo@201: .ps +.5 meillo@82: .ft P meillo@82: .fi meillo@82: .TA meillo@82: .. meillo@82: meillo@83: . \" VF - verbatim text from file ($1=filename) meillo@83: .de VF meillo@83: .VS meillo@83: so $1 meillo@83: VE meillo@83: .. meillo@83: meillo@18: .de Fn \" file name meillo@18: .CW "\\$1" "\\$2 meillo@18: .. meillo@18: .de Pn \" program name meillo@18: .CW "\\$1" "\\$2 meillo@18: .. meillo@18: .de Fu \" function meillo@18: .CW "\\$1" "\\$2 meillo@18: .. meillo@19: .de Ev \" env variable meillo@19: .CW "\\$1" "\\$2 meillo@19: .. meillo@18: .de Cl \" command line meillo@18: `\c meillo@18: .CW "\\$1" "'\\$2 meillo@18: .. meillo@18: .de Sw \" switch meillo@18: .CW "\\$1" "\\$2 meillo@18: .. meillo@84: .de Ar \" argument meillo@84: .CW "\f(CI\\$1" "\\$2 meillo@84: .. meillo@18: .de Mp \" man page meillo@18: .I "\\$1" "\\$2 meillo@18: .. meillo@18: .de Pe \" profile entry meillo@18: .CW "\\$1" "\\$2 meillo@18: .. meillo@84: .de Hd \" mail header field meillo@84: .CW "\\$1:\&" "\\$2 meillo@84: .. meillo@67: meillo@81: .de Ci \" commit hash ref meillo@70: .ds _t \\$1 meillo@70: .substring _t 0 6 meillo@167: [\(rh\|\fL\\*(_t\fP]\\$2 meillo@67: .. meillo@77: meillo@151: . \" Cf - reference within the document ($1=name of ref file) meillo@151: .de Cf meillo@151: \.if !\\nZ .so refs/\\$1 \c meillo@151: \\$2 meillo@77: .. meillo@151: meillo@151: . \" Id - put a referenceable marker here ($1=identifier) meillo@151: .de Id meillo@151: .tm REF____\\$1\t\\*(SN\t\\n(PN meillo@151: ..