' # month name .if "\nm"6" .ds ]m July .if "\nm"7" .ds ]m August .if "\nm"8" .ds ]m September .if "\nm"9" .ds ]m October .if "\nm"10" .ds ]m November .if "\nm"11" .ds ]m December ' # set the date .if n \{.nr m \nm+1 . ie \nd .ds ]W Modified \nm/\nd/\ny . el .ds ]W Printed \n(mo/\n(dy/\n(yr\} .if t \{.ie \nd .ds ]W \*(]m \nd, 19\ny . el .ds ]W \*(]m \n(dy, 19\n(yr\} .if t .ds ]W 7th Edition ' # reset the basic page layout .de }E .}f .in \\n()Ru+\\n(INu .ll \\n(LLu .. ' # default tabs .de DT 'ta .5i 1i 1.5i 2i 2.5i 3i 3.5i 4i 4.5i 5i 5.5i 6i 6.5i .. ' # set type font and size .de }f .ps 10 .ft 1 .. ' # handle the head of the page .de }H .ev 1 .}C 'sp .5i .ft 1 .ps 10 .tl @\\*(]H@\\*(]D@\\*(]H@ 'sp .5i .ev .ns .. ' # handle the foot of the page .de }F .ev 1 .ft 1 .ps 10 'sp .5i .tl @\\*(]W@\\*(]L@%@ 'bp .ev .. ' # the cut mark .if n .ig .if s .ig .if \nv .ig .de }C .po .1i .tl '-' .po .. ' # the final cut mark .de }M .}N .wh -1p }C .ll \\n(LLu .. ' # no runout unless there was a .TH .de }K .}N .pl 1 .ll \\n(LLu .. .em }K ' # set title and heading .de TH .PD .if n .nr IN .5i .if t .nr IN .5i .nr LL \\n(.l .ds ]H \\$1\|(\|\\$2\|) .ds ]D UNIX Programmer's Manual .ds ]L \\$3 .if t .ds ]W 7th Edition .wh 0 }H .if t .wh -1i }F .if n .wh -1.167i }F .em }M .if \\n(nl .bp 1 .}E .DT .nr )I .5i .nr )R 0 .if n .na .. ' # section heading .de SH .}X 0 .nr )E 2 \&\\$1 \|\\$2 \|\\$3 \|\\$4 \|\\$5 \|\\$6 .. ' # sub section heading .de SS .}X \\n()Ru+\\n(INu \&\\$1 \|\\$2 \|\\$3 \|\\$4 \|\\$5 \|\\$6 .br .. ' # subroutine for section heading .de }X .}E .ti \\$1 .sp \\n()Pu .ne 2 .nr )R 0 .fi .it 1 }N .SM .B .. ' # end of SH (cf }X above and }N below) .de }2 .nr )E 0 .}E .nr )I .5i .ns .. ' # italic .de I .ft 2 .it 1 }N .if !"\\$1"" \&\\$1 \\$2 \\$3 \\$4 \\$5 \\$6 .. ' # bold .de B .ft 3 .it 1 }N .if !"\\$1"" \&\\$1 \\$2 \\$3 \\$4 \\$5 \\$6 .. ' # small .de SM .ps 9 .it 1 }N .if !"\\$1"" \&\\$1 \\$2 \\$3 \\$4 \\$5 \\$6 .. ' # combinations of Roman, italic, bold .de RI .}S 1 2 \& "\\$1" "\\$2" "\\$3" "\\$4" "\\$5" "\\$6" .. .de RB .}S 1 3 \& "\\$1" "\\$2" "\\$3" "\\$4" "\\$5" "\\$6" .. .de IR .}S 2 1 \& "\\$1" "\\$2" "\\$3" "\\$4" "\\$5" "\\$6" .. .de IB .}S 2 3 \& "\\$1" "\\$2" "\\$3" "\\$4" "\\$5" "\\$6" .. .de BR .}S 3 1 \& "\\$1" "\\$2" "\\$3" "\\$4" "\\$5" "\\$6" .. .de BI .}S 3 2 \& "\\$1" "\\$2" "\\$3" "\\$4" "\\$5" "\\$6" .. ' # make special case of shift out of italic .de }S .ds ]F .if "\\$1"2" .if !"\\$5"" .ds ]F\^ .ie !"\\$4"" .}S \\$2 \\$1 "\\$3\f\\$1\\$4\\*(]F" "\\$5" "\\$6" "\\$7" "\\$8" "\\$9" .el \\$3 .}f .. ' # paragraph .de LP .PP .. .de PP .sp \\n()Pu .ne 2 .}E .nr )I .5i .ns .. ' # paragraph distance .de PD .if t .nr )P .4v .if n .nr )P 1v .if !"\\$1"" .nr )P \\$1v .. ' # hanging indent .de HP .sp \\n()Pu .ne 2 .if !"\\$1"" .nr )I \\$1n .ll \\n(LLu .in \\n()Ru+\\n(INu+\\n()Iu .ti \\n()Ru+\\n(INu .}f .. ' # indented paragraph .de IP .TP \\$2 \&\\$1 .. ' # hanging label .de TP .if !"\\$1"" .nr )I \\$1n .sp \\n()Pu .in \\n()Ru .nr )E 1 .ns .it 1 }N .di ]B .. ' # end of TP (cf }N below) .de }1 .ds ]X \&\\*(]B\\ .nr )E 0 .if !"\\$1"" .nr )I \\$1n .}f .ll \\n(LLu .in \\n()Ru+\\n(INu+\\n()Iu .ti \\n(INu .ie !\\n()Iu+\\n()Ru-\w@\\*(]X@u-3p \{\\*(]X .br\} .el \\*(]X\h@|\\n()Iu+\\n()Ru@\c .}f .. ' # handle end of 1-line features .de }N .if \\n()E .br .di .if "\\n()E"0" .}f .if "\\n()E"1" .}1 .if "\\n()E"2" .}2 .nr )E 0 .. ' # increase relative indent .de RS .nr ]\\n+()p \\n()I .nr )\\n()p \\n()R .ie !"\\$1"" .nr )R +\\$1n .el .nr )R +\\n()I .nr )I .5i .}E .. ' # decrease relative indent .de RE .if !"\\$1"" \{.ie "\\$1"0" .nr )p 1 1 . el .nr )p \\$1 1\} .ds ]i \\*(]I\\n()p .ds ]r \\*(]R\\n()p .nr )I \\*(]i .nr )R \\*(]r .if \\n()p .nr )p -1 .}E .. .nr )p 0 1 .ds ]I \\\\n(] .ds ]R \\\\n() .bd S 3 3 .if t .ds R \(rg .if n .ds R (Reg.) .ds S \s10 .hy 14 .de UC .if t \{\ . ie "\\$1"" .ds ]W Second Berkeley Distribution . el .ie "\\$1"4" .ds ]W \\$1th Berkeley Distribution . el .ds ]W \\$2 \\$1 BSD .\} ..