Annotation of researchv8dc/cmd/monk/db/macro.m, revision 1.1

1.1     ! root        1: |include(macro.h)
        !             2: 
        !             3: |macro(.top.of.page;
        !             4:        [
        !             5: '\"    #T used by tbl to draw boxes ?????
        !             6: '\"    :2 store for multi-page table heading
        !             7: '\"    :A multi-page table heading being used
        !             8: '\"    :T top of table printed
        !             9: '\"    :d prevent )h from outputting a floating group
        !            10: '\"    :o footer trap location
        !            11: '\"    :q amount of footnote text
        !            12: '\"    :r position at end of page header macro
        !            13: '\"    :u position to return to for second column output
        !            14: '\"    :v width of stored footnote 0=narrow, 1=wide
        !            15: '\"    :w output counter for floating keeps
        !            16: '\"    :z input counter for floating keeps
        !            17: '\"    P page number register
        !            18: '\"    ;i remembered indent TEMP
        !            19: '\"    ;o prevailing page offset ??????? bug with .po
        !            20: '\"    ;t copy of :w TEMP
        !            21: '\"    ;w convert to alpha format TEMP
        !            22: .              de )h
        !            23: .              ev 2                                    \" use header environment
        !            24: .              if "\*(.T"aps" \{\
        !            25: .                      nr ;o \\n(.o                    \" save prevailing page offset
        !            26: .                      po 0                            \" always from left margin
        !            27: .                      lt 7.5i                         \" width of photo composer
        !            28: .                      ps 10                           \" 10 point roman font
        !            29: .                      vs 10p
        !            30: .                      ft 1
        !            31: .                      tl '--''--'                     \" output the cut marks
        !            32: .                      ft                              \" restore values
        !            33: .                      vs
        !            34: .                      ps
        !            35: .                      lt
        !            36: .                      po \\n(;ou\}
        !            37: .              nr P +1                                 \" incr page number
        !            38: .              lt \\nWu                                \" use line length for title
        !            39: .              TP                                      \" user-redefinable macro
        !            40: .              br                                      \" force a break in the header environment
        !            41: .              ev                                      \" back to main environment
        !            42: .              ie \\n(:q .ch )f -\\n(:ou               \" reset footer trap
        !            43: .              el .nr :v 0                             \" no saved footnotes, thus narrow
        !            44: .              mk :r                                   \" position at end of page header macro
        !            45: .              mk :u                                   \" save where second column starts
        !            46: '\"    output floating displays
        !            47: .              if \\n(:d=0&(\\n(:z-\\n(:w) \{\
        !            48: .                      nr ;t \\n(:w%26+1               \" get index of next output element
        !            49: .                      af ;w a                         \" conversion register for display queue names
        !            50: .                      nr ;w \\n(;t                    \" form the next queue element name
        !            51: .                      )z                              \" output at least one floating display
        !            52: .                      )s                              \" but as many as will fit
        !            53: .                      rr ;t ;w \}                     \" free storage
        !            54: '\"    print top part of multi-page table
        !            55: .              nr :T 0                                 \" mark multi-page table header not printed
        !            56: .              if \\n(:A>0 \{\
        !            57: .                      nr ;i \\n(.i                    \" save prevailing indent
        !            58: .                      in 0                            \" indent back
        !            59: .                      :2                              \" heading
        !            60: .                      nr :T 1                         \" mark multi-page table header printed
        !            61: .                      in \\n(;iu \}                   \" restore prevailing indent
        !            62: .              mk #T                                   \" mark spot for table drawing ???????
        !            63: .              rr ;i ;o ;t ;w                          \" free storage
        !            64: .              ns                                      \" avoid .sp in user text here
        !            65: ..
        !            66: ])
        !            67: 
        !            68: |macro(top.of.page;
        !            69:        [
        !            70: '\"    EH string containing even top title info
        !            71: '\"    OH string containing odd top title info
        !            72: '\"    P page number register
        !            73: '\"    PH string containing top title info
        !            74: '\"    ;P page number register TEMP
        !            75: .              de TP
        !            76: '              sp
        !            77: .              af ;P \\gP                              \" save format of P
        !            78: .              af P 1                                  \" normal format for next line
        !            79: .              nr ;P \\nP                              \" must use different name for P
        !            80: .              af P \\g(;P                             \" restore format to P
        !            81: .              af ;P 1                                 \" normal format for control register
        !            82: '              sp 2
        !            83: .              if \\n(;P-1 .tl \\*(PH                  \" output headers
        !            84: .              if !\\n(;P%2 .tl \\*(EH
        !            85: .              if \\n(;P%2 .tl \\*(OH
        !            86: '              sp 2
        !            87: .              if \\n(;P=4 .if "\\*(f0"model" \{.nr L 13.25i   \" model sheet kludge
        !            88: .              pl 13.25i \}                            \" model sheet kludge
        !            89: .              rr ;P                                   \" free storage
        !            90: ..
        !            91: ])
        !            92: 
        !            93: |macro(.end.of.page;
        !            94:        [
        !            95: '\"    #T used by tbl to draw boxes ?????
        !            96: '\"    :2 store for multi-page table heading
        !            97: '\"    :A multi-page table heading being used
        !            98: '\"    :C 0=one column, 1=first column, 2=second column
        !            99: '\"    :K position for )f trap
        !           100: '\"    :T top of table printed
        !           101: '\"    :d prevent )h from outputting a floating group
        !           102: '\"    :f bottom of table printed
        !           103: '\"    :m initial footer place and partial footnote diverter trap
        !           104: '\"    :o footer trap location
        !           105: '\"    :q amount of footnote text
        !           106: '\"    :v width of stored footnote 0=narrow, 1=wide
        !           107: '\"    :w output counter for floating keeps
        !           108: '\"    :z input counter for floating keeps
        !           109: '\"    T. ?????
        !           110: '\"    ;i remembered indent TEMP
        !           111: '\"    ;o page offset transfer TEMP
        !           112: '\"    ;t copy of :w TEMP
        !           113: '\"    ;u hidden def of )f TEMP
        !           114: '\"    ;w convert to alpha format TEMP
        !           115: '\"    ;y room left on the page TEMP
        !           116: .              de )f
        !           117: '\"    print bottom part of boxed multi-page table
        !           118: .              if \\n(:A \{\
        !           119: .                      rn )f ;u                        \"hide footer
        !           120: .                      nr T. 1
        !           121: .                      if \\n(:f=0 .T# 1               \" print multi-page table footer
        !           122: '                      br                              \" output new page
        !           123: .                      nr :f 1                         \" remember footer has been printed
        !           124: .                      rn ;u )f \}                     \" restore footer
        !           125: .              nr ;y \\n(.pu-\\n(nlu-\\n(:mu           \" compute amount of room left on the page
        !           126: .              if \\n(:qu>4v .nr ;y -4v                \" output a reasonable amount
        !           127: '\"    if footnotes and there is room left and full page or left column output,
        !           128: '\"    or narrow footnotes, call footnote expander
        !           129: .              ie \\n(:q&\\n(;y&((\\n(:C<2):(\\n(:v=0)) .)o
        !           130: .              el \{\
        !           131: .                      ch )f -\\n(:mu                  \" hide footnote divider trap
        !           132: .                      nr :o \\n(:m+\\n(:q \}          \" reset footer trap location
        !           133: .              ie \\n(:C=0 'bp                         \" new page if not multi-column
        !           134: '\"    end second column
        !           135: .              el .ie \\n(:C=2 \{\
        !           136: .                      nr ;o \\nOu                     \" save second column offset
        !           137: .                      nr O \\n(:Ou                    \" restore first column offset
        !           138: .                      nr :O \\n(;o                    \" save second column offset
        !           139: .                      po \\nOu                        \" reset page offset
        !           140: .                      nr :C 1                         \" set col indicator
        !           141: '                      bp                              \" force next page
        !           142: .                      rr ;o \}                        \" free storage
        !           143: '\"    end first column
        !           144: .                  el \{\
        !           145: .                      rt \\n(:uu                      \" return to top
        !           146: .                      nr ;o \\nOu                     \" save first column offset
        !           147: .                      nr O \\n(:Ou                    \" restore second column offset
        !           148: .                      nr :O \\n(;o                    \" save first column offset
        !           149: .                      po \\nOu                        \" advance page offset
        !           150: .                      nr :C 2                         \" set col indicator
        !           151: .                      if \\n(:q .ch )f -\\n(:ou       \" reset footer trap
        !           152: '\"    output floating displays that are narrow
        !           153: .                      if \\n(:d=0&(\\n(:z-\\n(:w) \{\
        !           154: .                              nr ;t \\n(:w%26+1       \" get index of next output element
        !           155: .                              af ;w a                 \" conversion register for display queue names
        !           156: .                              nr ;w \\n(;t            \" form the next queue element name
        !           157: '\"    inhibit if wide display
        !           158: .                              if \\n(!\\n(;w=1 \{\
        !           159: .                                      )z              \" output at least one floating display
        !           160: .                                      )s \}           \" but as many as will fit
        !           161: .                              rr ; o ;t ;w \}         \" free storage
        !           162: '\"    print top part of multi-page table
        !           163: .                      nr :T 0                         \" mark multi-page table header not printed
        !           164: .                      if \\n(:A>0 \{\
        !           165: .                              nr ;i \\n(.i            \" save prevailing indent
        !           166: .                              in 0                    \" indent back
        !           167: .                              :2                      \" heading
        !           168: .                              nr :T 1                 \" mark multi-page table header printed
        !           169: .                              in \\n(;iu \}           \" restore prevailing indent
        !           170: .                      mk #T                           \" mark spot for table drawing ???????
        !           171: .                      rr ;i ;t ;w                     \" free storage
        !           172: .                      ns \}                           \" avoid .sp in user text here
        !           173: .              if \\n(:A \{\
        !           174: .                      nr :K \\n(:ou+2v                \" position for )f trap
        !           175: .                      ch >f -(\\n(:Ku+1v)             \" when moved by >f macro
        !           176: '                      br \}
        !           177: .              rr ;y                                   \" free storage
        !           178: ..
        !           179: ])
        !           180: 
        !           181: |macro(.float.output;
        !           182:        [
        !           183: '\"    !{a-z} width of stored floating 0=narrow, 1=wide
        !           184: '\"    :C 0=one column, 1=first column, 2=second column
        !           185: '\"    :d prevent )h from outputting a floating group
        !           186: '\"    :w output counter for floating keeps
        !           187: '\"    :z input counter for floating keeps
        !           188: '\"    ?{a-z} text of stored floating
        !           189: '\"    |{a-z} size of stored floating
        !           190: '\"    ;i remembered indent TEMP
        !           191: '\"    ;l remembered line spacing TEMP
        !           192: '\"    ;q remembered fill/no-fill mode TEMP
        !           193: '\"    ;w convert to alpha format TEMP
        !           194: .              de )z
        !           195: .              if !\\n(:z-\\n(:w .tm no floats to output
        !           196: .              nr :w \\n(:w%26+1                       \" get index of next output element
        !           197: .              af ;w a                                 \" conversion register for display queue names
        !           198: .              nr ;w \\n(:w                            \" form the next queue element name
        !           199: .              nr ;q \\n(.u                            \" save prevailing fill/no-fill mode
        !           200: .              nr ;l \\n(.L                            \" save line spacing
        !           201: .              nr ;i \\n(.i                            \" save prevailing indent
        !           202: .              ev 1                                    \" use footnote environment
        !           203: .              nf                                      \" bring it back in no-fill
        !           204: .              ls 1                                    \" output display in ls 1
        !           205: .              in 0                                    \" indent back
        !           206: .              nr :d 1                                 \" inhibit header from calling )y
        !           207: .              rs                                      \" restore spacing
        !           208: .              br                                      \" output partial line before display
        !           209: .              ?\\n(;w                                 \" lay out one keep
        !           210: .              if \\n(;q .fi                           \" restore fill if necessary
        !           211: .              ls \\n(;L                               \" restore line spacing
        !           212: .              in \\n(;iu                              \" restore prevailing indent
        !           213: .              nr :d 0                                 \" allow )h to process fl keeps again
        !           214: .              ev                                      \" back to previous environment
        !           215: .              ne 2                                    \" require two lines under float
        !           216: .              rm ?\\n(;w                              \" free storage
        !           217: .              rr |\\n(;w !\\n(;w
        !           218: .              rr ;i ;l ;q ;w
        !           219: ..
        !           220: ])
        !           221: 
        !           222: |macro(.multiple.float.output;
        !           223:        [
        !           224: '\"    !{a-z} width of stored floating 0=narrow, 1=wide
        !           225: '\"    :C 0=one column, 1=first column, 2=second column
        !           226: '\"    :m initial footer place and partial footnote diverter trap
        !           227: '\"    :o footer trap location
        !           228: '\"    :r position at end of page header macro
        !           229: '\"    :w output counter for floating keeps
        !           230: '\"    :z input counter for floating keeps
        !           231: '\"    |{a-z} size of stored floating
        !           232: '\"    ;h height of floating display on top of queue TEMP
        !           233: '\"    ;t copy of :w TEMP
        !           234: '\"    ;w convert to alpha format TEMP
        !           235: .              de )s
        !           236: '\"    inhibit if no floats in queue
        !           237: .              if \\n(:z-\\n(:w \{\
        !           238: .                      nr ;t \\n(:w%26+1               \" get index of next output element
        !           239: .                      af ;w a                         \" conversion register for display queue names
        !           240: .                      nr ;w \\n(;t                    \" form the next queue element name
        !           241: .                      nr ;h \\n(|\\n(;w               \" height of current display
        !           242: '\"    The following if condition tests: (1) if wide displays and (2) we are on the
        !           243: '\"    first column and (3) if the float fits on the current page
        !           244: '\"    or (4) the float is too large to fit on any one page, and (5) we have used
        !           245: '\"    less than half of the current page. (the five conditions are grouped
        !           246: '\"    in the form ((1 & 2) & (1 : (2 & 3))). If this total condition is true,
        !           247: '\"    then a float is output.
        !           248: .                      if (((\\n(!\\n(;w=1)&(\\n(:C<2))&\
        !           249: ((\\n(;h<\\n(.t):((\\n(;h>(\\n(.p-\\n(:r-\\n(:m))&\
        !           250: (\\n(nl<=(\\n(.p-\\n(:r-\\n(:o/2u+\\n(:r))))) \{\
        !           251: .                              )z                      \" output it
        !           252: .                              )s \}                   \" recurse
        !           253: .                      rr ;h ;t ;w \}                  \" free storage
        !           254: ..
        !           255: ])
        !           256: 
        !           257: |macro(.flush.float.output;
        !           258:        [
        !           259: '\"    :d prevent )h from outputting a floating group
        !           260: '\"    :w output counter for floating keeps
        !           261: '\"    :z input counter for floating keeps
        !           262: '\"    ;o copy of :w TEMP
        !           263: .              de )w
        !           264: '\"    inhibit if no floats in queue
        !           265: .              if \\n(:z-\\n(:w \{\
        !           266: .                      nr ;o \\n(:w                    \" save output count
        !           267: .                      )s
        !           268: .                      if \\n(:w=\\n(;o \{\
        !           269: .                              nr :d 1                 \" inhibit header from calling )y
        !           270: .                              rs                      \" turn on spacing
        !           271: .                              bp                      \" top of next page
        !           272: .                              nr :d 0 \}              \" allow )h to process fl keeps again
        !           273: .                      )w \}                           \" recurse
        !           274: .              rr ;o                                   \" free storage
        !           275: ..
        !           276: ])
        !           277: 
        !           278: |macro(.footnote.output;
        !           279:        [
        !           280: '\"    dump accumulated footnote text
        !           281: '\"    long text may spring )n trap so the remaining partial
        !           282: '\"    text may go into :3
        !           283: '\"    :3 store for partial footnotes
        !           284: '\"    :m initial footer place and partial footnote diverter trap
        !           285: '\"    :o footer trap location
        !           286: '\"    :q amount of footnote text
        !           287: '\"    :v width of stored footnote 0=narrow, 1=wide
        !           288: .              de )o
        !           289: .              ev 1                                    \" use footnote environment
        !           290: .              nf                                      \" bring it back in no-fill
        !           291: .              ls 1                                    \" output display in ls 1
        !           292: .              in 0                                    \" indent back
        !           293: .              :F                                      \" lay out footnotes
        !           294: '\"    did we spring the partial footnote trap
        !           295: .              ie "\\n(.z":3" \{\
        !           296: .                      br                              \" get last partial line
        !           297: .                      di                              \" end diversion
        !           298: .                      nr :q \\n(dnu                   \" fix amount of footnote text
        !           299: .                      rn :3 :F \}                     \" put text back in :F
        !           300: .              el .nr :q 0                             \" clear amount of footnote text
        !           301: .              ev                                      \" back to main environment
        !           302: .              if \\n(:qu<=2v \{\                      \" ignore just divider line
        !           303: .                      nr :q 0                         \" clear amount of footnote text
        !           304: .                      rm :F \}                        \" clear text of footnote
        !           305: .              nr :o \\n(:mu+\\n(:qu                   \" reset footnote location register
        !           306: .              ch )f -\\n(:ou                          \" reset trap for footer
        !           307: ..
        !           308: ])
        !           309: 
        !           310: |macro(.footnote.diverter;
        !           311:        [
        !           312: '\"    partial footnote text diverter
        !           313: '\"    called via trap planted at -\n(:m
        !           314: '\"    since the default footer trap is also at -n(:m,
        !           315: '\"    this macro actually invoked when the footer trap
        !           316: '\"    has been moved up due to footnote processing
        !           317: '\"    :3 store for partial footnotes
        !           318: '\"    :q amount of footnote text
        !           319: '\"    ;o prevailing page offset ??????? bug with .po
        !           320: .              de )n
        !           321: .              if \\n(:q \{\
        !           322: .                      di :3
        !           323: .                      nr ;o \\n(.o            \" save prevailing page offset
        !           324: .                      po \\nOu                \" always from left margin
        !           325: .                      ps 10                   \" 10 point roman font          
        !           326: .                      vs 10p
        !           327: .                      ft 1
        !           328: .                      ie \n(.A=0 \l@\\n(.lu@
        !           329: .                      el _____________________________
        !           330: .                      ft                      \" restore values
        !           331: .                      vs
        !           332: .                      ps
        !           333: .                      po \\n(;ou\}
        !           334: ..
        !           335: ])
        !           336: 
        !           337: |macro(.end.of.file;
        !           338:        [
        !           339: .              de )q
        !           340: ..
        !           341: ])
        !           342: 
        !           343: |macro(.initalize;
        !           344:        [
        !           345: '\"    REQUIRED INITIALIZATIONS
        !           346: '\"    initialize various regs
        !           347: '\"    !{a-z} width of stored floating 0=narrow, 1=wide
        !           348: '\"    #T used by tbl to draw boxes ?????
        !           349: '\"    :0 store for initally diverted text
        !           350: '\"    :1 store for centered block text
        !           351: '\"    :2 store for multi-page table heading
        !           352: '\"    :3 store for partial footnotes
        !           353: '\"    :A multi-page table heading being used
        !           354: .              nr :A 0
        !           355: '\"    :C 0=one column, 1=first column, 2=second column
        !           356: .              nr :C 0
        !           357: '\"    :F Footnote text
        !           358: '\"    :K position for )f trap
        !           359: .              nr :K 0
        !           360: '\"    :O page offset for other column
        !           361: .              nr :O 0
        !           362: '\"    :T top of table printed
        !           363: .              nr :T 0
        !           364: '\"    :W page width for full page output
        !           365: .              nr :W 0
        !           366: '\"    :d prevent )h from outputting a floating group
        !           367: .              nr :d 0
        !           368: '\"    :f bottom of table printed
        !           369: .              nr :f 0
        !           370: '\"    :m initial footer place and partial footnote diverter trap
        !           371: .              nr :m .8i
        !           372: '\"    :o footer trap location
        !           373: .              nr :o \n(:mu
        !           374: '\"    :q amount of footnote text
        !           375: .              nr :q 0
        !           376: '\"    :r position at end of page header macro
        !           377: .              nr :r .6i
        !           378: '\"    :u position to return to for second column output
        !           379: .              nr :u .6i
        !           380: '\"    :v width of stored footnote 0=narrow, 1=wide
        !           381: .              nr :v 0
        !           382: '\"    :w output counter for floating keeps
        !           383: .              nr :w 0
        !           384: '\"    :x flag indicating footnote in progress
        !           385: .              nr :x 0
        !           386: '\"    :y flag indicating group/float in progress
        !           387: .              nr :y 0
        !           388: '\"    :z input counter for floating keeps
        !           389: .              nr :z 0
        !           390: '\"    ?{a-z} text of stored floating
        !           391: '\"    AT string containing AT&T in helvetica
        !           392: .              ds AT \fP\f(HBA\h'-.2m'T\h'-.15m'\s0\s13&\s0\s16\h'-.15m'T
        !           393: '\"    DT date string
        !           394: .              if \n(mo-0 .ds DT January
        !           395: .              if \n(mo-1 .ds DT February
        !           396: .              if \n(mo-2 .ds DT March
        !           397: .              if \n(mo-3 .ds DT April
        !           398: .              if \n(mo-4 .ds DT May
        !           399: .              if \n(mo-5 .ds DT June
        !           400: .              if \n(mo-6 .ds DT July
        !           401: .              if \n(mo-7 .ds DT August
        !           402: .              if \n(mo-8 .ds DT September
        !           403: .              if \n(mo-9 .ds DT October
        !           404: .              if \n(mo-10 .ds DT November
        !           405: .              if \n(mo-11 .ds DT December
        !           406: .              as DT " \n(dy, 19\n(yr
        !           407: '\"    EH string containing even top title info
        !           408: '\"    F default font
        !           409: .              nr F 1
        !           410: '\"    L page length
        !           411: .              if !\nL .nr L 11i
        !           412: '\"    LO string containing logo
        !           413: .              ie "\*(.T"aps" .ds LO \s36\(Lb\s0
        !           414: .              el .ds LO \s36\(L1\s0\s16\v'-.4'\*(AT\v'.4'\h'-\w'\*(AT'u'\fP\s0
        !           415: '\"    OH string containing odd top title info
        !           416: '\"    P page number
        !           417: .              if \nP .nr P -1
        !           418: .              nr P \nP 1
        !           419: '\"    PH string containing top title info
        !           420: .              ds PH ''- \\nP -''              \" top of page string
        !           421: '\"    O page offset
        !           422: .              if !\w'\gO' .ie t .nr O .963i
        !           423: .                      el .nr O 0i
        !           424: .              if "\*(.T"202" .nr O \nO-.34375i
        !           425: .              if "\*(.T"aps" .nr O \nO-.21875i
        !           426: '\"    S default point size
        !           427: .              if !\nS .nr S 10
        !           428: '\"    T. ?????
        !           429: '\"    W page width
        !           430: .              if !\nW .nr W 6i
        !           431: '\"    |{a-z} size of stored floating
        !           432: '\"    INITIAL SET UP
        !           433: .              wh 0 )h                                 \" trap for header
        !           434: .              wh -\n(:mu )f                           \" trap for footer
        !           435: .              ch )f 15i                               \" move it over partial footnote diverter
        !           436: .              wh -\n(:mu )n                           \" trap for partial footnote diverter
        !           437: .              ch )f -\n(:mu
        !           438: .              em )q                                   \" end macro
        !           439: '\"    TROFF ACCENTS (` ' ^ ~ cedilla and 2 umlauts)
        !           440: '\"    The accent string must follow immediately the character to be accented.
        !           441: '\"    These strings are "tuned" to the Times Roman type faces ONLY.
        !           442: '\"    The R, I, and B fonts are assumed to be mounted in
        !           443: '\"    positions 1, 2, and 3, respectively.
        !           444: '\"    All of these strings alter the number register `:'.
        !           445: '\"    Grave accent -- {aeou}\*`
        !           446: .              ds ` \\k:\h@-\\n(.wu*8u/10u@\h@\\n(.fu/2u*2u+1u-\\n(.fu*.2m@\(ga\h@|\\n:u@
        !           447: '\"    Lower-case acute accent -- {aeou}\*'
        !           448: .              ds ' \\k:\h@-\\n(.wu*8u/10u@\h@\\n(.fu/2u*2u+1u-\\n(.fu*.2m+.07m@\(aa\h@|\\n:u@
        !           449: '\"    Upper-case acute accent -- {aeou}\*+
        !           450: .              ds + \\k:\h@-\\n(.wu*8u/10u@\h@\\n(.fu/2u*2u+1u-\\n(.fu*.2m+.07m@\[email protected]@\(aa\[email protected]@\h@|\\n:u@
        !           451: '\"    Circumflex -- {aeou}\*^
        !           452: .              ds ^ \\k:\h@-\\n(.wu*8u/10u@\h@\\n(.fu/2u*2u+1u-\\n(.fu*.15m-.07m@\
        !           453: \h@\\n(.fu-1u/2u*.02m@^\h@|\\n:u@
        !           454: '\"    Tilde -- n\*~ (But watch out for ".tr ~")
        !           455: .              ds ~ \\k:\h@-\\n(.wu*8u/10u@\h@\\n(.fu/2u*2u+1u-\\n(.fu*.2m-.07m@\
        !           456: \h@\\n(.fu-1u/2u*.05m@~\h@|\\n:u@
        !           457: '\"    Cedilla -- c\*,
        !           458: .              ds , \\k:\h@-\\n(.wu*85u/100u@\[email protected]@,\[email protected]@\h@|\\n:u@
        !           459: '\"    Lower-case umlaut -- {aeou}\*:
        !           460: .              ds : \\k:\h@-\\n(.wu*85u/100u@\h@\\n(.fu/2u*2u+1u-\\n(.fu*3u*.06m@\
        !           461: \h@3u-\\n(.fu/2u*.05m-.1m@\
        !           462: \[email protected]@\z.\h@\\n(.fu-1u/2u*.05m+.2m@.\[email protected]@\h@|\\n:u@
        !           463: '\"    Upper-case umlaut -- {AEOU}\*;
        !           464: .              ds ; \\k:\h@-\\n(.wu*75u/100u@\h@\\n(.fu/2u*2u+1u-\\n(.fu*3u*.09m@\
        !           465: \h@3u-\\n(.fu/2u*.06m-.15m@\h@\\n(.fu-1u/2u*.04m@\
        !           466: \[email protected]@\z.\[email protected]@.\[email protected]@\h@|\\n:u@
        !           467: '\"    Nasal -- c\*-
        !           468: .              ds - \\k:\h@-\\n(.wu*75u/100u@\[email protected]@`\[email protected]@\h@|\\n:u@
        !           469: '\"    Slash -- c\*/
        !           470: .              ds / \\k:\h@-\\n(.wu*85u/100u@\[email protected]@\(aa\[email protected]@\h@|\\n:u@
        !           471: ])

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.