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@82: .ftr CW -\-`\`'\'
meillo@82: .ftr CI -\-`\`'\'
meillo@82: .ftr CB -\-`\`'\'
meillo@82: .ftr L -\-`\`'\'
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@0: .ig
meillo@75: .	nr PS 11
meillo@75: .	nr VS 13
meillo@75: .	padj
meillo@0: ..
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@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@90: .	\" Lp - enlarge the current page by one line to avoid widows
meillo@90: .de Lp
meillo@90: .ch FO -\n(FMu+1v
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@81: .	\" H- - Chapter unnumbered and not in TOC ($2=="no" -> no page hdrs)
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@40: .if !,\\$2,no, \{
meillo@40: .	EH "\\\\*(_E
meillo@40: .	ie \\n(H1 .OH "\\\\*(_O
meillo@40: .	el .OH "\\\\*(_o
meillo@40: .	ds CF \\n(PN
meillo@40: .\}
meillo@81: .RT
meillo@29: .sp 4
meillo@29: .nr PP 0
meillo@29: ..
meillo@29: 
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@0: 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@79: .if !,\\$2,no, .ds t_ \\*(SN\0\0
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@29: .ie \\n(H1 .OH "\\\\*(_O
meillo@29: .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@81: .if !'\\$2'no' .T_ .3v 1 "\\*(SN\0\0\\$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@81: .T_ 0 2 "\\*(SN\0\0\\$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@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@81: .	\" FA - XXX somehow related to footnotes?
meillo@0: .am FA
meillo@0: .ps 8
meillo@0: .vs 9
meillo@0: ..
meillo@18: 
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: ..