000000: 45 58 54 45 4E 44 45 44 20 43 50 43 20 44 53 4B EXTENDED CPC DSK
000010: 20 46 69 6C 65 0D 0A 44 69 73 6B 2D 49 6E 66 6F File..Disk-Info
000020: 0D 0A 53 41 4D 64 69 73 6B 31 35 30 37 30 38 00 ..SAMdisk150708.
000030: 2A 01 00 00 13 13 13 13 13 13 13 13 13 13 13 13 *...............
000040: 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 ................
000050: 13 13 13 13 13 13 13 13 13 13 13 13 02 00 00 00 ................
000060: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
000070: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
000080: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
000090: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0000A0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0000B0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0000C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0000D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0000E0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0000F0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
000100: 54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 00 00 00 Track-Info......
000110: 00 00 01 00 02 09 52 E5 00 00 41 02 00 00 00 02 ......R...A.....
000120: 00 00 46 02 00 00 00 02 00 00 42 02 00 00 00 02 ..F.......B.....
000130: 00 00 47 02 00 00 00 02 00 00 43 02 00 00 00 02 ..G.......C.....
000140: 00 00 48 02 00 00 00 02 00 00 44 02 00 00 00 02 ..H.......D.....
000150: 00 00 49 02 00 00 00 02 00 00 45 02 00 00 00 02 ..I.......E.....
000160: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
000170: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
000180: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
000190: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0001A0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0001B0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0001C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0001D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0001E0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0001F0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
000200: 60 69 E5 11 00 A8 01 33 00 ED B0 E1 11 00 A7 01 `i.....3........
000210: 33 00 ED B0 21 00 A0 22 04 A7 21 35 01 11 00 10 3...!.."..!5....
000220: 01 47 00 ED B0 0E 00 CD 1B A8 F3 D9 CB C9 CB 81 .G..............
000230: D9 FB C3 00 10 01 00 A0 11 14 00 3E 1C CD 1C 10 ...........>....
000240: 01 00 01 11 08 00 3E 0C CD 1C 10 01 00 A7 C3 00 ......>.........
000250: 01 32 3C 10 D5 C5 01 00 00 CD 1E A8 C1 CD 24 A8 .2<...........$.
000260: 21 80 00 09 E3 44 4D CD 21 A8 C5 CD 27 A8 E1 23 !....DM.!...'..#
000270: 3E 0C BD 28 05 E3 44 4D 18 E3 C1 C9 60 69 11 00 >..(..DM....`i..
000280: 05 01 33 00 ED B0 0E 42 11 00 00 21 00 03 CD 89 ..3....B...!....
000290: BE 30 06 CD 50 01 C3 03 05 CD 59 02 0D 0A 46 61 .0..P.....Y...Fa
0002A0: 69 6C 65 64 20 74 6F 20 6C 6F 61 64 20 74 68 65 iled to load the
0002B0: 20 63 6F 6E 66 69 67 75 72 61 74 69 6F 6E 20 73 configuration s
0002C0: 65 63 74 6F 72 0D 0A 0A 24 C3 03 05 CD 59 02 04 ector...$....Y..
0002D0: 02 24 2A 00 03 11 CB ED 19 7C B5 28 26 CD 59 02 .$*......|.(&.Y.
0002E0: 0D 0A 49 6C 6C 65 67 61 6C 20 63 6F 6E 66 69 67 ..Illegal config
0002F0: 75 72 61 74 69 6F 6E 20 73 65 63 74 6F 72 0D 0A uration sector..
000300: 0A 24 C9 2A 02 03 22 3D 02 2A 04 03 22 3F 02 3A .$.*.."=.*.."?.:
000310: 06 03 32 43 02 21 3D 02 CD 83 BE 3A 07 03 32 03 ..2C.!=....:..2.
000320: 00 3A 08 03 CD 80 BE 3A 09 03 CD 9E BE 21 0A 03 .:.....:.....!..
000330: CD A1 BE 21 64 03 CD 5F 02 7E 23 B7 28 0C 47 4E ...!d.._.~#.(.GN
000340: 23 E5 C5 CD 0F 05 C1 E1 10 F5 EB 21 27 BB CD 46 #..........!'..F
000350: 02 21 2D BB CD 46 02 21 33 BB CD 46 02 EB 7E 23 .!-..F.!3..F..~#
000360: B7 28 50 57 46 23 4E 23 E5 D5 C5 CD 0F BB C1 D1 .(PWF#N#........
000370: E1 38 3A CD 59 02 0D 0A 45 78 70 61 6E 73 69 6F .8:.Y...Expansio
000380: 6E 20 62 75 66 66 65 72 20 66 75 6C 6C 20 6F 72 n buffer full or
000390: 20 69 6C 6C 65 67 61 6C 20 74 6F 6B 65 6E 20 73 illegal token s
0003A0: 70 65 63 69 66 69 65 64 0D 0A 0A 24 C9 06 00 09 pecified...$....
0003B0: 15 20 B1 3A 16 03 C3 A4 BE 00 00 00 00 AF 1E 00 . .:............
0003C0: 01 03 1A 4F 13 B7 C8 1A 47 13 1A 13 E5 CD 6C 02 ...O....G.....l.
0003D0: E1 0D 20 F3 C9 E3 CD 5F 02 E3 C9 7E 23 FE 24 C8 .. ...._...~#.$.
0003E0: 4F E5 CD 0C 05 E1 18 F3 E9 CF CF CF CF CF CF CF O...............
0003F0: CF CF CF CF CF CF CF CF CF CF CF CF CF CF CF CF ................
000400: 31 00 A0 0E 00 CD 1B A8 11 0A 00 19 5E 23 56 EB 1...........^#V.
000410: 11 F1 A1 01 0E 00 ED B0 21 00 00 ED 5B F1 A1 ED ........!...[...
000420: 4B FE A1 03 0B 78 B1 28 03 19 18 F8 22 EF A1 CD K....x.(...."...
000430: 70 A1 79 32 ED A1 01 80 00 CD 24 A8 11 80 00 ED p.y2......$.....
000440: 53 E5 A1 ED 4B FE A1 ED 43 E7 A1 CD 1E A8 0E 00 S...K...C.......
000450: C5 CD 21 A8 CD 27 A8 C1 CD 4B A1 38 3A 2A E5 A1 ..!..'...K.8:*..
000460: 11 04 00 B7 ED 52 22 E5 A1 28 10 38 0E 0C 3A F1 .....R"..(.8..:.
000470: A1 B9 20 DC ED 4B E7 A1 03 18 CC 21 93 A1 CD 87 .. ..K.....!....
000480: A1 CD 09 A8 CD 9B BE 9E BE 21 D4 A1 CD D4 BC 18 .........!......
000490: EA AF B8 20 0E 18 26 11 10 00 19 11 01 A2 D5 06 ... ..&.........
0004A0: 10 0E 00 3A F7 A1 16 00 5E 05 23 B7 28 03 56 05 ...:....^.#.(.V.
0004B0: 23 0C E3 73 23 72 23 E3 7A B3 20 D5 0D D1 79 B7 #..s#r#.z. ...y.
0004C0: CA 7B A0 32 00 A2 21 01 A2 E5 01 80 00 ED 43 EB .{.2..!.......C.
0004D0: A1 E1 5E 23 56 23 E5 CD E4 A0 21 00 A2 35 20 F1 ..^#V#....!..5 .
0004E0: E1 C3 00 01 EB 3A F3 A1 29 3D 20 FC ED 5B EF A1 .....:..)= ..[..
0004F0: 19 ED 5B F1 A1 AF ED 52 3C 28 04 30 F9 19 3D 2B ..[....R<(.0..=+
000500: 22 E9 A1 6F 26 00 22 E7 A1 4D 44 CD 1E A8 3A F4 "..o&."..MD...:.
000510: A1 3C 47 C5 3A F1 A1 47 3A E9 A1 3C B8 20 0D ED .<G.:..G:..<. ..
000520: 4B E7 A1 03 ED 43 E7 A1 CD 1E A8 AF 32 E9 A1 4F K....C......2..O
000530: 06 00 CD 21 A8 2A EB A1 11 80 00 19 22 EB A1 E5 ...!.*......"...
000540: C1 CD 24 A8 CD 27 A8 C1 10 C9 C9 C5 06 04 21 80 ..$..'........!.
000550: 00 E5 11 D9 A1 C5 06 0C 1A BE 20 09 23 13 10 F8 .......... .#...
000560: C1 E1 C1 37 C9 C1 E1 11 20 00 19 10 E4 C1 B7 C9 ...7.... .......
000570: 3A FA A1 CD 7B A1 3A FB A1 18 02 0E 00 06 08 CB :...{.:.........
000580: 17 30 01 0C 10 F9 C9 7E B7 C8 23 E5 4F CD 0C A8 .0.....~..#.O...
000590: E1 18 F4 24 4F 53 43 2E 53 59 53 20 77 75 72 64 ...$OSC.SYS wurd
0005A0: 65 20 6E 69 63 68 74 20 67 65 66 75 6E 64 65 6E e nicht gefunden
0005B0: 2E 0D 0A 42 41 53 49 43 3D 69 72 67 65 6E 64 65 ...BASIC=irgende
0005C0: 69 6E 65 20 54 61 73 74 65 20 64 72 75 65 63 6B ine Taste drueck
0005D0: 65 6E 20 00 42 41 53 49 C3 00 24 4F 53 43 20 20 en .BASI..$OSC
0005E0: 20 20 53 59 53 00 00 00 00 00 00 00 00 00 00 00 SYS...........
0005F0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
000600: 35 12 32 00 FA 00 0C 81 00 00 44 6A E1 44 6A E1 5.2.......Dj.Dj.
000610: 0D 00 0D 00 0D 00 00 00 00 00 00 00 00 00 00 00 ................
000620: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
000630: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
000640: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
000650: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
000660: 00 00 00 00 24 00 00 00 00 00 00 40 1D 77 77 43 ....$......@.wwC
000670: 50 2F 4D 20 32 2E 32 20 2D 20 41 6D 73 74 72 61 P/M 2.2 - Amstra
000680: 64 20 43 6F 6E 73 75 6D 65 72 20 45 6C 65 63 74 d Consumer Elect
000690: 72 6F 6E 69 63 73 20 70 6C 63 0A 0D 24 00 00 00 ronics plc..$...
0006A0: 00 00 00 00 08 08 09 01 0A 02 07 1B 42 7F 10 08 ............B...
0006B0: 4F 0B 00 08 08 09 01 0A 02 07 1B 42 7F 10 08 4F O..........B...O
0006C0: 0B 00 08 08 09 01 0A 02 00 00 31 31 31 31 31 31 ..........111111
0006D0: 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 1111111111111111
0006E0: 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 1111111111111111
0006F0: 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 1111111111111111
000700: 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 1111111111111111
000710: 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 31 1111111111111111
000720: 31 31 31 31 31 31 31 31 31 31 01 66 32 32 32 32 1111111111.f2222
000730: 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 2222222222222222
000740: 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 2222222222222222
000750: 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 2222222222222222
000760: 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 2222222222222222
000770: 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 2222222222222222
000780: 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 2222222222222222
000790: 32 32 03 1C 33 33 33 33 33 33 33 33 33 33 33 33 22..333333333333
0007A0: 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 3333333333333333
0007B0: 34 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 4...............
0007C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0007D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0007E0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0007F0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 E5 E5 ................
000800: A3 1E FE 0F C2 8A 06 CD CF 15 01 06 1E CD 20 12 £............. .
000810: 3A A9 1E D6 01 C6 FF 9F F5 3A A8 1E D6 3D C6 FF :........:...=..
000820: 9F C1 48 B1 1F D2 AE 06 01 9D 04 CD AF 09 21 A7 ..H...........!.
000830: 1F 36 01 3A A7 1F 1F D2 BE 07 3A C0 1E 32 C1 1E .6.:......:..2..
000840: 01 06 1E CD 20 12 21 04 1E 36 00 3A A9 1E D6 02 .... .!..6.:....
000850: D6 01 9F F5 3A F5 1D 2F C1 48 A1 1F D2 ED 06 CD ....:../.H......
000860: 88 1C CD BE 18 21 A8 1E 36 FF C3 13 07 3A A9 1E .....!..6....:..
000870: D6 03 C6 FF 9F F5 3E 0A 21 A8 1E 96 9F 2F F5 3E ......>.!..../.>
000880: 05 96 9F C1 48 A1 C1 48 B1 1F D2 13 07 01 B0 04 ....H..H........
000890: CD AF 09 3A 04 1E 21 5E 1F B6 77 3A A8 1E 3C 32 ...:..!^..w:..<2
0008A0: A4 1E 3A A8 1E FE 13 C2 30 07 CD CF 15 C3 7D 07 ..:.....0.....}.
0008B0: 3A A8 1E FE 14 C2 40 07 0E 1A CD 45 0E C3 7D 07 :.....@....E..}.
0008C0: 3A A8 1E D6 05 9F 21 05 1E A6 1F D2 53 07 21 57 :.....!.....S.!W
0008D0: 1F 36 01 3A A3 1E FE 0A C2 7A 07 21 5D 1F 36 01 .6.:£....z.!].6.
0008E0: 3A 63 1F FE 00 C2 6D 07 21 63 1F 36 08 3A 5F 1F :c....m.!c.6.:_.
0008F0: FE 00 C2 7A 07 21 5F 1F 36 01 CD 6C 1A CD 12 19 ...z.!_.6..l....
000900: 01 06 1E CD 20 12 3A A9 1E D6 01 C6 FF 9F F5 3A .... .:........:
000910: A8 1E D6 2C C6 FF 9F F5 3A A8 1E D6 0D C6 FF 9F ...,....:.......
000920: C1 48 A1 C1 48 B1 1F D2 B0 07 01 BC 04 CD AF 09 .H..H...........
000930: 3A A8 1E D6 0D C6 FF 9F 32 A7 1F C3 B3 06 3A A3 :.......2.....:£
000940: 1E FE 0F C2 CE 07 0E 1A CD 45 0E CD CF 15 3A A3 .........E....:£
000950: 1E FE 00 C2 DB 07 0E 00 CD 31 19 3A A5 1E 32 CC .........1.:..2.
000960: 1E C3 14 05 FB 76 21 F2 1D 71 21 F2 07 E5 2A 38 .....v!..q!...*8
000970: 02 E9 C9 21 FB 07 E5 2A 36 02 E9 3A 09 01 C9 3E ...!...*6..:...>
000980: FA CD A6 1D 3E FA CD A6 1D C9 11 00 00 0E 03 CD ....>...........
000990: 05 00 C9 11 00 00 0E 01 CD 05 00 C9 21 AB 1E 71 ............!..q
0009A0: 3A AB 1E E6 7F 5F 16 00 0E 02 CD 05 00 C9 0E 0D :...._..........
0009B0: CD 1C 08 0E 0A CD 1C 08 C9 21 AD 1E 70 2B 71 CD .........!..p+q.
0009C0: 2E 08 2A AC 1E EB 0E 09 CD 05 00 C9 11 00 00 0E ..*.............
0009D0: 0C CD 05 00 C9 11 00 00 0E 0D CD 05 00 C9 21 AF ..............!.
0009E0: 1E 71 2A AF 1E 26 00 EB 0E 0E CD 05 00 C9 21 B1 .q*..&........!.
0009F0: 1E 70 2B 71 2A B0 1E EB 0E 0F CD 05 00 32 AE 1E .p+q*........2..
000A00: 60 69 11 00 05 01 33 00 ED B0 0E 42 11 00 00 21 `i....3....B...!
000A10: 00 03 CD 89 BE 30 06 CD 50 01 C3 03 05 CD 59 02 .....0..P.....Y.
000A20: 0D 0A 46 61 69 6C 65 64 20 74 6F 20 6C 6F 61 64 ..Failed to load
000A30: 20 74 68 65 20 63 6F 6E 66 69 67 75 72 61 74 69 the configurati
000A40: 6F 6E 20 73 65 63 74 6F 72 0D 0A 0A 24 C3 03 05 on sector...$...
000A50: CD 59 02 04 02 24 2A 00 03 11 CB ED 19 7C B5 28 .Y...$*......|.(
000A60: 26 CD 59 02 0D 0A 49 6C 6C 65 67 61 6C 20 63 6F &.Y...Illegal co
000A70: 6E 66 69 67 75 72 61 74 69 6F 6E 20 73 65 63 74 nfiguration sect
000A80: 6F 72 0D 0A 0A 24 C9 2A 02 03 22 3D 02 2A 04 03 or...$.*.."=.*..
000A90: 22 3F 02 3A 06 03 32 43 02 21 3D 02 CD 83 BE 3A "?.:..2C.!=....:
000AA0: 07 03 32 03 00 3A 08 03 CD 80 BE 3A 09 03 CD 9E ..2..:.....:....
000AB0: BE 21 0A 03 CD A1 BE 21 64 03 CD 5F 02 7E 23 B7 .!.....!d.._.~#.
000AC0: 28 0C 47 4E 23 E5 C5 CD 0F 05 C1 E1 10 F5 EB 21 (.GN#..........!
000AD0: 27 BB CD 46 02 21 2D BB CD 46 02 21 33 BB CD 46 '..F.!-..F.!3..F
000AE0: 02 EB 7E 23 B7 28 50 57 46 23 4E 23 E5 D5 C5 CD ..~#.(PWF#N#....
000AF0: 0F BB C1 D1 E1 38 3A CD 59 02 0D 0A 45 78 70 61 .....8:.Y...Expa
000B00: 6E 73 69 6F 6E 20 62 75 66 66 65 72 20 66 75 6C nsion buffer ful
000B10: 6C 20 6F 72 20 69 6C 6C 65 67 61 6C 20 74 6F 6B l or illegal tok
000B20: 65 6E 20 73 70 65 63 69 66 69 65 64 0D 0A 0A 24 en specified...$
000B30: C9 06 00 09 15 20 B1 3A 16 03 C3 A4 BE 00 00 00 ..... .:........
000B40: 00 AF 1E 00 01 03 1A 4F 13 B7 C8 1A 47 13 1A 13 .......O....G...
000B50: E5 CD 6C 02 E1 0D 20 F3 C9 E3 CD 5F 02 E3 C9 7E ..l... ...._...~
000B60: 23 FE 24 C8 4F E5 CD 0C 05 E1 18 F3 E9 CF CF CF #.$.O...........
000B70: CF CF CF CF CF CF CF CF CF CF CF CF CF CF CF CF ................
000B80: CF CF CF CF CF CF CF CF CF CF CF CF CF CF CF CF ................
000B90: CF CF CF CF CF CF CF CF CF CF CF CF CF CF CF CF ................
000BA0: CF CF CF CF CF CF CF CF CF CF CF CF CF CF CF CF ................
000BB0: CF CF CF CF CF CF CF CF CF CF CF CF CF CF CF CF ................
000BC0: CF CF CF CF CF CF CF CF CF CF CF CF CF CF CF CF ................
000BD0: CF CF CF CF CF CF CF CF CF CF CF CF CF CF CF CF ................
000BE0: CF CF CF CF CF CF CF CF CF CF CF CF CF CF CF CF ................
000BF0: CF CF CF CF CF CF CF CF CF CF CF CF CF CF CF CF ................
000C00: C3 5C E1 C3 58 E1 7F 00 20 20 20 20 20 20 20 20 .\..X...
000C10: 20 20 20 20 20 20 20 20 43 4F 50 59 52 49 47 48 COPYRIGH
000C20: 54 20 28 43 29 20 31 39 37 39 2C 20 44 49 47 49 T (C) 1979, DIGI
000C30: 54 41 4C 20 52 45 53 45 41 52 43 48 20 20 00 00 TAL RESEARCH ..
000C40: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
000C50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
000C60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
000C70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
000C80: 00 00 00 00 00 00 00 00 08 DE 00 00 5F 0E 02 C3 ............_...
000C90: 05 00 C5 CD 8C DE C1 C9 3E 0D CD 92 DE 3E 0A C3 ........>....>..
000CA0: 92 DE 3E 20 C3 92 DE C5 CD 98 DE E1 7E B7 C8 23 ..> ........~..#
000CB0: E5 CD 8C DE E1 C3 AC DE 0E 0D C3 05 00 5F 0E 0E ............._..
000CC0: C3 05 00 CD 05 00 32 EE E5 3C C9 0E 0F C3 C3 DE ......2..<......
000CD0: AF 32 ED E5 11 CD E5 C3 CB DE 0E 10 C3 C3 DE 0E .2..............
000CE0: 11 C3 C3 DE 0E 12 C3 C3 DE 11 CD E5 C3 DF DE 0E ................
000CF0: 13 C3 05 00 CD 05 00 B7 C9 0E 14 C3 F4 DE 11 CD ................
000D00: E5 C3 F9 DE 0E 15 C3 F4 DE 0E 16 C3 C3 DE 0E 17 ................
000D10: C3 05 00 1E FF 0E 20 C3 05 00 CD 13 DF 87 87 87 ...... .........
000D20: 87 21 EF E5 B6 32 04 00 C9 3A EF E5 32 04 00 C9 .!...2...:..2...
000D30: FE 61 D8 FE 7B D0 E6 5F C9 3A AB E5 B7 CA 96 DF .a..{.._.:......
000D40: 3A EF E5 B7 3E 00 C4 BD DE 11 AC E5 CD CB DE CA :...>...........
000D50: 96 DF 3A BB E5 3D 32 CC E5 11 AC E5 CD F9 DE C2 ..:..=2.........
000D60: 96 DF 11 07 DE 21 80 00 06 80 CD 42 E2 21 BA E5 .....!.....B.!..
000D70: 36 00 23 35 11 AC E5 CD DA DE CA 96 DF 3A EF E5 6.#5.........:..
000D80: B7 C4 BD DE 21 08 DE CD AC DE CD C2 DF CA A7 DF ....!...........
000D90: CD DD DF C3 82 E1 CD DD DF CD 1A DF 0E 0A 11 06 ................
000DA0: DE CD 05 00 CD 29 DF 21 07 DE 46 23 78 B7 CA BA .....).!..F#x...
000DB0: DF 7E CD 30 DF 77 05 C3 AB DF 77 21 08 DE 22 88 .~.0.w....w!..".
000DC0: DE C9 0E 0B CD 05 00 B7 C8 0E 01 CD 05 00 B7 C9 ................
000DD0: 0E 19 C3 05 00 11 80 00 0E 1A C3 05 00 21 AB E5 .............!..
000DE0: 7E B7 C8 36 00 AF CD BD DE 11 AC E5 CD EF DE 3A ~..6...........:
000DF0: EF E5 C3 BD DE 11 28 E1 21 00 E6 06 06 1A BE C2 ......(.!.......
000E00: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000E10: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000E20: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000E30: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000E40: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000E50: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000E60: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000E70: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000E80: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000E90: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000EA0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000EB0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000EC0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000ED0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000EE0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000EF0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000F00: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000F10: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000F20: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000F30: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000F40: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000F50: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000F60: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000F70: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000F80: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000F90: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000FA0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000FB0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000FC0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000FD0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000FE0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
000FF0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
001000: CF E1 13 23 05 C2 FD DF C9 CD 98 DE 2A 8A DE 7E ...#........*..~
001010: FE 20 CA 22 E0 B7 CA 22 E0 E5 CD 8C DE E1 23 C3 . ."..."......#.
001020: 0F E0 3E 3F CD 8C DE CD 98 DE CD DD DF C3 82 E1 ..>?............
001030: 1A B7 C8 FE 20 DA 09 E0 C8 FE 3D C8 FE 5F C8 FE .... .....=.._..
001040: 2E C8 FE 3A C8 FE 3B C8 FE 3C C8 FE 3E C8 C9 1A ...:..;..<..>...
001050: B7 C8 FE 20 C0 13 C3 4F E0 85 6F D0 24 C9 3E 00 ... ...O..o.$.>.
001060: 21 CD E5 CD 59 E0 E5 E5 AF 32 F0 E5 2A 88 DE EB !...Y....2..*...
001070: CD 4F E0 EB 22 8A DE EB E1 1A B7 CA 89 E0 DE 40 .O.."..........@
001080: 47 13 1A FE 3A CA 90 E0 1B 3A EF E5 77 C3 96 E0 G...:....:..w...
001090: 78 32 F0 E5 70 13 06 08 CD 30 E0 CA B9 E0 23 FE x2..p....0....#.
0010A0: 2A C2 A9 E0 36 3F C3 AB E0 77 13 05 C2 98 E0 CD *...6?...w......
0010B0: 30 E0 CA C0 E0 13 C3 AF E0 23 36 20 05 C2 B9 E0 0........#6 ....
0010C0: 06 03 FE 2E C2 E9 E0 13 CD 30 E0 CA E9 E0 23 FE .........0....#.
0010D0: 2A C2 D9 E0 36 3F C3 DB E0 77 13 05 C2 C8 E0 CD *...6?...w......
0010E0: 30 E0 CA F0 E0 13 C3 DF E0 23 36 20 05 C2 E9 E0 0........#6 ....
0010F0: 06 03 23 36 00 05 C2 F2 E0 EB 22 88 DE E1 01 0B ..#6......".....
001100: 00 23 7E FE 3F C2 09 E1 04 0D C2 01 E1 78 B7 C9 .#~.?........x..
001110: 44 49 52 20 45 52 41 20 54 59 50 45 53 41 56 45 DIR ERA TYPESAVE
001120: 52 45 4E 20 55 53 45 52 D0 16 04 00 00 00 21 10 REN USER......!.
001130: E1 0E 00 79 FE 06 D0 11 CE E5 06 04 1A BE C2 4F ...y...........O
001140: E1 13 23 05 C2 3C E1 1A FE 20 C2 54 E1 79 C9 23 ..#..<... .T.y.#
001150: 05 C2 4F E1 0C C3 33 E1 AF 32 07 DE 31 AB E5 C5 ..O...3..2..1...
001160: 79 1F 1F 1F 1F E6 0F 5F CD 15 DF CD B8 DE 32 AB y......_......2.
001170: E5 C1 79 E6 0F 32 EF E5 CD BD DE 3A 07 DE B7 C2 ..y..2.....:....
001180: 98 E1 31 AB E5 CD 98 DE CD D0 DF C6 41 CD 8C DE ..1.........A...
001190: 3E 3E CD 8C DE CD 39 DF 11 80 00 CD D8 DF CD D0 >>....9.........
0011A0: DF 32 EF E5 CD 5E E0 C4 09 E0 3A F0 E5 B7 C2 A5 .2...^....:.....
0011B0: E4 CD 2E E1 21 C1 E1 5F 16 00 19 19 7E 23 66 6F ....!.._....~#fo
0011C0: E9 77 E2 1F E3 5D E3 AD E3 10 E4 8E E4 A5 E4 21 .w...].........!
0011D0: F3 76 22 00 DE 21 00 DE E9 01 DF E1 C3 A7 DE 52 .v"..!.........R
0011E0: 45 41 44 20 45 52 52 4F 52 00 01 F0 E1 C3 A7 DE EAD ERROR.......
0011F0: 4E 4F 20 46 49 4C 45 00 CD 5E E0 3A F0 E5 B7 C2 NO FILE..^.:....
001200: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
001210: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
001220: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
001230: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
001240: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
001250: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
001260: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
001270: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
001280: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
001290: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0012A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0012B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0012C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0012D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0012E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0012F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
001300: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
001310: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
001320: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
001330: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
001340: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
001350: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
001360: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
001370: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
001380: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
001390: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0013A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0013B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0013C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0013D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0013E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0013F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
001400: 54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 00 00 00 Track-Info......
001410: 01 00 01 00 02 09 52 E5 01 00 41 02 00 00 00 02 ......R...A.....
001420: 01 00 46 02 00 00 00 02 01 00 42 02 00 00 00 02 ..F.......B.....
001430: 01 00 47 02 00 00 00 02 01 00 43 02 00 00 00 02 ..G.......C.....
001440: 01 00 48 02 00 00 00 02 01 00 44 02 00 00 00 02 ..H.......D.....
001450: 01 00 49 02 00 00 00 02 01 00 45 02 00 00 00 02 ..I.......E.....
001460: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
001470: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
001480: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
001490: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0014A0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0014B0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0014C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0014D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0014E0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0014F0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
001500: 09 E0 21 CE E5 01 0B 00 7E FE 20 CA 33 E2 23 D6 ..!.....~. .3.#.
001510: 30 FE 0A D2 09 E0 57 78 E6 E0 C2 09 E0 78 07 07 0.....Wx.....x..
001520: 07 80 DA 09 E0 80 DA 09 E0 82 DA 09 E0 47 0D C2 .............G..
001530: 08 E2 C9 7E FE 20 C2 09 E0 23 0D C2 33 E2 78 C9 ...~. ...#..3.x.
001540: 06 03 7E 12 23 13 05 C2 42 E2 C9 21 80 00 81 CD ..~.#...B..!....
001550: 59 E0 7E C9 AF 32 CD E5 3A F0 E5 B7 C8 3D 21 EF Y.~..2..:....=!.
001560: E5 BE C8 C3 BD DE 3A F0 E5 B7 C8 3D 21 EF E5 BE ......:....=!...
001570: C8 3A EF E5 C3 BD DE CD 5E E0 CD 54 E2 21 CE E5 .:......^..T.!..
001580: 7E FE 20 C2 8F E2 06 0B 36 3F 23 05 C2 88 E2 1E ~. .....6?#.....
001590: 00 D5 CD E9 DE CC EA E1 CA 1B E3 3A EE E5 0F 0F ...........:....
0015A0: 0F E6 60 4F 3E 0A CD 4B E2 17 DA 0F E3 D1 7B 1C ..`O>..K......{.
0015B0: D5 E6 03 F5 C2 CC E2 CD 98 DE C5 CD D0 DF C1 C6 ................
0015C0: 41 CD 92 DE 3E 3A CD 92 DE C3 D4 E2 CD A2 DE 3E A...>:.........>
0015D0: 3A CD 92 DE CD A2 DE 06 01 78 CD 4B E2 E6 7F FE :........x.K....
0015E0: 20 C2 F9 E2 F1 F5 FE 03 C2 F7 E2 3E 09 CD 4B E2 ..........>..K.
0015F0: E6 7F FE 20 CA 0E E3 3E 20 CD 92 DE 04 78 FE 0C ... ...> ....x..
001600: D2 0E E3 FE 09 C2 D9 E2 CD A2 DE C3 D9 E2 F1 CD ................
001610: C2 DF C2 1B E3 CD E4 DE C3 98 E2 D1 C3 86 E5 CD ................
001620: 5E E0 FE 0B C2 42 E3 01 52 E3 CD A7 DE CD 39 DF ^....B..R.....9.
001630: 21 07 DE 35 C2 82 E1 23 7E FE 59 C2 82 E1 23 22 !..5...#~.Y...#"
001640: 88 DE CD 54 E2 11 CD E5 CD EF DE 3C CC EA E1 C3 ...T.......<....
001650: 86 E5 41 4C 4C 20 28 59 2F 4E 29 3F 00 CD 5E E0 ..ALL (Y/N)?..^.
001660: C2 09 E0 CD 54 E2 CD D0 DE CA A7 E3 CD 98 DE 21 ....T..........!
001670: F1 E5 36 FF 21 F1 E5 7E FE 80 DA 87 E3 E5 CD FE ..6.!..~........
001680: DE E1 C2 A0 E3 AF 77 34 21 80 00 CD 59 E0 7E FE ......w4!...Y.~.
001690: 1A CA 86 E5 CD 8C DE CD C2 DF C2 86 E5 C3 74 E3 ..............t.
0016A0: 3D CA 86 E5 CD D9 E1 CD 66 E2 C3 09 E0 CD F8 E1 =.......f.......
0016B0: F5 CD 5E E0 C2 09 E0 CD 54 E2 11 CD E5 D5 CD EF ..^.....T.......
0016C0: DE D1 CD 09 DF CA FB E3 AF 32 ED E5 F1 6F 26 00 .........2...o&.
0016D0: 29 11 00 01 7C B5 CA F1 E3 2B E5 21 80 00 19 E5 )...|....+.!....
0016E0: CD D8 DF 11 CD E5 CD 04 DF D1 E1 C2 FB E3 C3 D4 ................
0016F0: E3 11 CD E5 CD DA DE 3C C2 01 E4 01 07 E4 CD A7 .......<........
001700: FF 22 EA F3 C9 2A C8 F3 EB 2A EA F3 23 22 EA F3 ."...*...*..#"..
001710: CD 95 EB D2 19 EC C3 FE EB 3A EA F3 E6 03 06 05 .........:......
001720: 87 05 C2 20 EC 32 E9 F3 B7 C0 C5 CD C3 E9 CD D4 ... .2..........
001730: EB C1 C3 9E EB 79 E6 07 3C 5F 57 79 0F 0F 0F E6 .....y..<_Wy....
001740: 1F 4F 78 87 87 87 87 87 B1 4F 78 0F 0F 0F E6 1F .Ox......Ox.....
001750: 47 2A BF F3 09 7E 07 1D C2 56 EC C9 D5 CD 35 EC G*...~...V....5.
001760: E6 FE C1 B1 0F 15 C2 64 EC 77 C9 CD 5E EB 11 10 .......d.w..^...
001770: 00 19 C5 0E 11 D1 0D C8 D5 3A DD F3 B7 CA 88 EC .........:......
001780: C5 E5 4E 06 00 C3 8E EC 0D C5 4E 23 46 E5 79 B0 ..N.......N#F.y.
001790: CA 9D EC 2A C6 F3 7D 91 7C 98 D4 5C EC E1 23 C1 ...*..}.|..\..#.
0017A0: C3 75 EC 2A C6 F3 0E 03 CD EA EA 23 44 4D 2A BF .u.*.......#DM*.
0017B0: F3 36 00 23 0B 78 B1 C2 B1 EC 2A CA F3 EB 2A BF .6.#.x....*...*.
0017C0: F3 73 23 72 CD A1 E9 2A B3 F3 36 03 23 36 00 CD .s#r...*..6.#6..
0017D0: FE EB 0E FF CD 05 EC CD F5 EB C8 CD 5E EB 3E E5 ............^.>.
0017E0: BE CA D2 EC 3A 41 E9 BE C2 F6 EC 23 7E D6 24 C2 ....:A.....#~.$.
0017F0: F6 EC 3D 32 45 E9 0E 01 CD 6B EC CD 8C EB C3 D2 ..=2E....k......
001800: EC 3A D4 F3 C3 01 E9 C5 F5 3A C5 F3 2F 47 79 A0 .:.......:../Gy.
001810: 4F F1 A0 91 E6 1F C1 C9 3E FF 32 D4 F3 21 D8 F3 O.......>.2..!..
001820: 71 2A 43 E9 22 D9 F3 CD FE EB CD A1 E9 0E 00 CD q*C."...........
001830: 05 EC CD F5 EB CA 94 ED 2A D9 F3 EB 1A FE E5 CA ........*.......
001840: 4A ED D5 CD 7F EB D1 D2 94 ED CD 5E EB 3A D8 F3 J..........^.:..
001850: 4F 06 00 79 B7 CA 83 ED 1A FE 3F CA 7C ED 78 FE O..y......?.|.x.
001860: 0D CA 7C ED FE 0C 1A CA 73 ED 96 E6 7F C2 2D ED ..|.....s.....-.
001870: C3 7C ED C5 4E CD 07 ED C1 C2 2D ED 13 23 04 0D .|..N.....-..#..
001880: C3 53 ED 3A EA F3 E6 03 32 45 E9 21 D4 F3 7E 17 .S.:....2E.!..~.
001890: D0 AF 77 C9 CD FE EB 3E FF C3 01 E9 CD 54 EB 0E ..w....>.....T..
0018A0: 0C CD 18 ED CD F5 EB C8 CD 44 EB CD 5E EB 36 E5 .........D..^.6.
0018B0: 0E 00 CD 6B EC CD C6 EB CD 2D ED C3 A4 ED 50 59 ...k.....-....PY
0018C0: 79 B0 CA D1 ED 0B D5 C5 CD 35 EC 1F D2 EC ED C1 y........5......
0018D0: D1 2A C6 F3 7B 95 7A 9C D2 F4 ED 13 C5 D5 42 4B .*..{.z.......BK
0018E0: CD 35 EC 1F D2 EC ED D1 C1 C3 C0 ED 17 3C CD 64 .5...........<.d
0018F0: EC E1 D1 C9 79 B0 C2 C0 ED 21 00 00 C9 0E 00 1E ....y....!......
001900: DE CD D5 DF C3 86 E5 4E 4F 20 53 50 41 43 45 00 .......NO SPACE.
001910: CD 5E E0 C2 09 E0 3A F0 E5 F5 CD 54 E2 CD E9 DE .^....:....T....
001920: C2 79 E4 21 CD E5 11 DD E5 06 10 CD 42 E2 2A 88 .y.!........B.*.
001930: DE EB CD 4F E0 FE 3D CA 3F E4 FE 5F C2 73 E4 EB ...O..=.?.._.s..
001940: 23 22 88 DE CD 5E E0 C2 73 E4 F1 47 21 F0 E5 7E #"...^..s..G!..~
001950: B7 CA 59 E4 B8 70 C2 73 E4 70 AF 32 CD E5 CD E9 ..Y..p.s.p.2....
001960: DE CA 6D E4 11 CD E5 CD 0E DF C3 86 E5 CD EA E1 ..m.............
001970: C3 86 E5 CD 66 E2 C3 09 E0 01 82 E4 CD A7 DE C3 ....f...........
001980: 86 E5 46 49 4C 45 20 45 58 49 53 54 53 00 CD F8 ..FILE EXISTS...
001990: E1 FE 10 D2 09 E0 5F 3A CE E5 FE 20 CA 09 E0 CD ......_:... ....
0019A0: 15 DF C3 89 E5 CD F5 DF 3A CE E5 FE 20 C2 C4 E4 ........:... ...
0019B0: 3A F0 E5 B7 CA 89 E5 3D 32 EF E5 CD 29 DF CD BD :......=2...)...
0019C0: DE C3 89 E5 11 D6 E5 1A FE 20 C2 09 E0 D5 CD 54 ......... .....T
0019D0: E2 D1 21 83 E5 CD 40 E2 CD D0 DE CA 6B E5 21 00 ..!...@.....k.!.
0019E0: 01 E5 EB CD D8 DF 11 CD E5 CD F9 DE C2 01 E5 E1 ................
0019F0: 11 80 00 19 11 00 DE 7D 93 7C 9A D2 71 E5 C3 E1 .......}.|..q...
001A00: E4 E1 3D C2 71 E5 CD 66 E2 CD 5E E0 21 F0 E5 E5 ..=.q..f..^.!...
001A10: 7E 32 CD E5 3E 10 CD 60 E0 E1 7E 32 DD E5 AF 32 ~2..>..`..~2...2
001A20: ED E5 11 5C 00 21 CD E5 06 21 CD 42 E2 21 08 DE ...\.!...!.B.!..
001A30: 7E B7 CA 3E E5 FE 20 CA 3E E5 23 C3 30 E5 06 00 ~..>.. .>.#.0...
001A40: 11 81 00 7E 12 B7 CA 4F E5 04 23 13 C3 43 E5 78 ...~...O..#..C.x
001A50: 32 80 00 CD 98 DE CD D5 DF CD 1A DF CD 00 01 31 2..............1
001A60: AB E5 CD 29 DF CD BD DE C3 82 E1 CD 66 E2 C3 09 ...)........f...
001A70: E0 01 7A E5 CD A7 DE C3 86 E5 42 41 44 20 4C 4F ..z.......BAD LO
001A80: 41 44 00 43 4F 4D CD 66 E2 CD 5E E0 3A CE E5 D6 AD.COM.f..^.:...
001A90: 20 21 F0 E5 B6 C2 09 E0 C3 82 E1 00 00 00 00 00 !..............
001AA0: 00 00 00 00 00 00 00 00 00 00 00 00 00 24 24 24 .............$$$
001AB0: 20 20 20 20 20 53 55 42 00 00 00 00 00 00 00 00 SUB........
001AC0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
001AD0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
001AE0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
001AF0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
001B00: 20 D5 06 00 2A 43 E9 09 EB CD 5E EB C1 CD 4F E9 ...*C....^...O.
001B10: CD C3 E9 C3 C6 EB CD 54 EB 0E 0C CD 18 ED 2A 43 .......T......*C
001B20: E9 7E 11 10 00 19 77 CD F5 EB C8 CD 44 EB 0E 10 .~....w.....D...
001B30: 1E 0C CD 01 EE CD 2D ED C3 27 EE 0E 0C CD 18 ED ......-..'......
001B40: CD F5 EB C8 0E 00 1E 0C CD 01 EE CD 2D ED C3 40 ............-..@
001B50: EE 0E 0F CD 18 ED CD F5 EB C8 CD A6 EA 7E F5 E5 .............~..
001B60: CD 5E EB EB 2A 43 E9 0E 20 D5 CD 4F E9 CD 78 EB .^..*C.. ..O..x.
001B70: D1 21 0C 00 19 4E 21 0F 00 19 46 E1 F1 77 79 BE .!...N!...F..wy.
001B80: 78 CA 8B EE 3E 00 DA 8B EE 3E 80 2A 43 E9 11 0F x...>....>.*C...
001B90: 00 19 77 C9 7E 23 B6 2B C0 1A 77 13 23 1A 77 1B ..w.~#.+..w.#.w.
001BA0: 2B C9 AF 32 45 E9 32 EA F3 32 EB F3 CD 1E EB C0 +..2E.2..2......
001BB0: CD 69 EB E6 80 C0 0E 0F CD 18 ED CD F5 EB C8 01 .i..............
001BC0: 10 00 CD 5E EB 09 EB 2A 43 E9 09 0E 10 3A DD F3 ...^...*C....:..
001BD0: B7 CA E8 EE 7E B7 1A C2 DB EE 77 B7 C2 E1 EE 7E ....~.....w....~
001BE0: 12 BE C2 1F EF C3 FD EE CD 94 EE EB CD 94 EE EB ................
001BF0: 1A BE C2 1F EF 13 23 1A BE C2 1F EF 0D 13 23 0D ......#.......#.
001C00: C2 CD EE 01 EC FF 09 EB 09 1A BE DA 17 EF 77 01 ..............w.
001C10: 03 00 09 EB 09 7E 12 3E FF 32 D2 F3 C3 10 EE 21 .....~.>.2.....!
001C20: 45 E9 35 C9 CD 54 EB 2A 43 E9 E5 21 AC F3 22 43 E.5..T.*C..!.."C
001C30: E9 0E 01 CD 18 ED CD F5 EB E1 22 43 E9 C8 EB 21 .........."C...!
001C40: 0F 00 19 0E 11 AF 77 23 0D C2 46 EF 21 0D 00 19 ......w#..F.!...
001C50: 77 CD 8C EB CD FD ED C3 78 EB AF 32 D2 F3 CD A2 w.......x..2....
001C60: EE CD F5 EB C8 2A 43 E9 01 0C 00 09 7E 3C E6 1F .....*C.....~<..
001C70: 77 CA 83 EF 47 3A C5 F3 A0 21 D2 F3 A6 CA 8E EF w...G:...!......
001C80: C3 AC EF 01 02 00 09 34 7E E6 0F CA B6 EF 0E 0F .......4~.......
001C90: CD 18 ED CD F5 EB C2 AC EF 3A D3 F3 3C CA B6 EF .........:..<...
001CA0: CD 24 EF CD F5 EB CA B6 EF C3 AF EF CD 5A EE CD .$...........Z..
001CB0: BB EA AF C3 01 E9 CD 05 E9 C3 78 EB 3E 01 32 D5 ..........x.>.2.
001CC0: F3 3E FF 32 D3 F3 CD BB EA 3A E3 F3 21 E1 F3 BE .>.2.....:..!...
001CD0: DA E6 EF FE 80 C2 FB EF CD 5A EF AF 32 E3 F3 3A .........Z..2..:
001CE0: 45 E9 B7 C2 FB EF CD 77 EA CD 84 EA CA FB EF CD E......w........
001CF0: 8A EA CD D1 E9 CD B2 E9 C3 D2 EA C3 05 E9 3E 01 ..............>.
001D00: D0 16 04 00 00 00 C3 11 E6 99 E6 A5 E6 AB E6 B1 ................
001D10: E6 EB 22 43 E9 EB 7B 32 D6 F3 21 00 00 22 45 E9 .."C..{2..!.."E.
001D20: 39 22 0F E9 31 41 E9 AF 32 E0 F3 32 DE F3 21 74 9"..1A..2..2..!t
001D30: F3 E5 79 FE 29 D0 4B 21 47 E6 5F 16 00 19 19 5E ..y.).K!G._....^
001D40: 23 56 2A 43 E9 EB E9 03 F4 C8 E8 90 E7 CE E8 12 #V*C............
001D50: F4 0F F4 D4 E8 ED E8 F3 E8 F8 E8 E1 E7 FE E8 7E ...............~
001D60: F2 83 F2 45 F2 9C F2 A5 F2 AB F2 C8 F2 D7 F2 E0 ...E............
001D70: F2 E6 F2 EC F2 F5 F2 FE F2 04 F3 0A F3 11 F3 2C ...............,
001D80: EB 17 F3 1D F3 26 F3 2D F3 41 F3 47 F3 4D F3 0E .....&.-.A.G.M..
001D90: F2 53 F3 04 E9 04 E9 9B F3 21 CA E6 CD E5 E6 FE .S.......!......
001DA0: 03 CA 00 00 C9 21 D5 E6 C3 B4 E6 21 E1 E6 C3 B4 .....!.....!....
001DB0: E6 21 DC E6 CD E5 E6 C3 00 00 42 64 6F 73 20 45 .!........Bdos E
001DC0: 72 72 20 4F 6E 20 20 3A 20 24 42 61 64 20 53 65 rr On : $Bad Se
001DD0: 63 74 6F 72 24 53 65 6C 65 63 74 24 46 69 6C 65 ctor$Select$File
001DE0: 20 52 2F 4F 24 E5 CD C9 E7 3A 42 E9 C6 41 32 C6 R/O$....:B..A2.
001DF0: E6 01 BA E6 CD D3 E7 C1 CD D3 E7 21 0E E9 7E 36 ...........!..~6
001E00: 00 B7 C0 C3 09 F4 CD FB E6 CD 14 E7 D8 F5 4F CD ..............O.
001E10: 90 E7 F1 C9 FE 0D C8 FE 0A C8 FE 09 C8 FE 08 C8 ................
001E20: FE 20 C9 3A 0E E9 B7 C2 45 E7 CD 06 F4 E6 01 C8 . .:....E.......
001E30: CD 09 F4 FE 13 C2 42 E7 CD 09 F4 FE 03 CA 00 00 ......B.........
001E40: AF C9 32 0E E9 3E 01 C9 3A 0A E9 B7 C2 62 E7 C5 ..2..>..:....b..
001E50: CD 2A E7 C1 C5 CD 0C F4 C1 C5 3A 0D E9 B7 C4 0F .*........:.....
001E60: F4 C1 79 21 0C E9 FE 7F C8 34 FE 20 D0 35 7E B7 ..y!.....4. .5~.
001E70: C8 79 FE 08 C2 79 E7 35 C9 FE 0A C0 36 00 C9 79 .y...y.5....6..y
001E80: CD 14 E7 D2 90 E7 F5 0E 5E CD 48 E7 F1 F6 40 4F ........^.H...@O
001E90: 79 FE 09 C2 48 E7 0E 20 CD 48 E7 3A 0C E9 E6 07 y...H.. .H.:....
001EA0: C2 96 E7 C9 CD AC E7 0E 20 CD 0C F4 0E 08 C3 0C ........ .......
001EB0: F4 0E 23 CD 48 E7 CD C9 E7 3A 0C E9 21 0B E9 BE ..#.H....:..!...
001EC0: D0 0E 20 CD 48 E7 C3 B9 E7 0E 0D CD 48 E7 0E 0A .. .H.......H...
001ED0: C3 48 E7 0A FE 24 C8 03 C5 4F CD 90 E7 C1 C3 D3 .H...$...O......
001EE0: E7 3A 0C E9 32 0B E9 2A 43 E9 4E 23 E5 06 00 C5 .:..2..*C.N#....
001EF0: E5 CD FB E6 E6 7F E1 C1 FE 0D CA C1 E8 FE 0A CA ................
001F00: 32 D5 F3 3E 00 32 D3 F3 CD 54 EB 2A 43 E9 CD 47 2..>.2...T.*C..G
001F10: EB CD BB EA 3A E3 F3 FE 80 D2 05 E9 CD 77 EA CD ....:........w..
001F20: 84 EA 0E 00 C2 6E F0 CD 3E EA 32 D7 F3 01 00 00 .....n..>.2.....
001F30: B7 CA 3B F0 4F 0B CD 5E EA 44 4D CD BE ED 7D B4 ..;.O..^.DM...}.
001F40: C2 48 F0 3E 02 C3 01 E9 22 E5 F3 EB 2A 43 E9 01 .H.>...."...*C..
001F50: 10 00 09 3A DD F3 B7 3A D7 F3 CA 64 F0 CD 64 EB ...:...:...d..d.
001F60: 73 C3 6C F0 4F 06 00 09 09 73 23 72 0E 02 3A 45 s.l.O....s#r..:E
001F70: E9 B7 C0 C5 CD 8A EA 3A D5 F3 3D 3D C2 BB F0 C1 .......:..==....
001F80: C5 79 3D 3D C2 BB F0 E5 2A B9 F3 57 77 23 14 F2 .y==....*..Ww#..
001F90: 8C F0 CD E0 EB 2A E7 F3 0E 02 22 E5 F3 C5 CD D1 .....*....".....
001FA0: E9 C1 CD B8 E9 2A E5 F3 0E 00 3A C4 F3 47 A5 B8 .....*....:..G..
001FB0: 23 C2 9A F0 E1 22 E5 F3 CD DA EB CD D1 E9 C1 C5 #...."..........
001FC0: CD B8 E9 C1 3A E3 F3 21 E1 F3 BE DA D2 F0 77 34 ....:..!......w4
001FD0: 0E 02 00 00 21 00 DE F5 CD 69 EB E6 7F 77 F1 FE ....!....i...w..
001FE0: 7F C2 00 F1 3A D5 F3 FE 01 C2 00 F1 CD D2 EA CD ....:...........
001FF0: 5A EF 21 45 E9 7E B7 C2 FE F0 3D 32 E3 F3 36 00 Z.!E.~....=2..6.
002000: C3 D2 EA AF 32 D5 F3 C5 2A 43 E9 EB 21 21 00 19 ....2...*C..!!..
002010: 7E E6 7F F5 7E 17 23 7E 17 E6 1F 4F 7E 1F 1F 1F ~...~.#~...O~...
002020: 1F E6 0F 47 F1 23 6E 2C 2D 2E 06 C2 8B F1 21 20 ...G.#n,-.....!
002030: 00 19 77 21 0C 00 19 79 96 C2 47 F1 21 0E 00 19 ..w!...y..G.!...
002040: 78 96 E6 7F CA 7F F1 C5 D5 CD A2 EE D1 C1 2E 03 x...............
002050: 3A 45 E9 3C CA 84 F1 21 0C 00 19 71 21 0E 00 19 :E.<...!...q!...
002060: 70 CD 51 EE 3A 45 E9 3C C2 7F F1 C1 C5 2E 04 0C p.Q.:E.<........
002070: CA 84 F1 CD 24 EF 2E 05 3A 45 E9 3C CA 84 F1 C1 ....$...:E.<....
002080: AF C3 01 E9 E5 CD 69 EB 36 C0 E1 C1 7D 32 45 E9 ......i.6...}2E.
002090: C3 78 EB 0E FF CD 03 F1 CC C1 EF C9 0E 00 CD 03 .x..............
0020A0: F1 CC 03 F0 C9 EB 19 4E 06 00 21 0C 00 19 7E 0F .......N..!...~.
0020B0: E6 80 81 4F 3E 00 88 47 7E 0F E6 0F 80 47 21 0E ...O>..G~....G!.
0020C0: 00 19 7E 87 87 87 87 F5 80 47 F5 E1 7D E1 B5 E6 ..~......G..}...
0020D0: 01 C9 0E 0C CD 18 ED 2A 43 E9 11 21 00 19 E5 72 .......*C..!...r
0020E0: 23 72 23 72 CD F5 EB CA 0C F2 CD 5E EB 11 0F 00 #r#r.......^....
0020F0: CD A5 F1 E1 E5 5F 79 96 23 78 9E 23 7B 9E DA 06 ....._y.#x.#{...
002100: C1 E8 FE 08 C2 16 E8 78 B7 CA EF E7 05 3A 0C E9 .......x.....:..
002110: 32 0A E9 C3 70 E8 FE 7F C2 26 E8 3E 08 C3 07 E8 2...p....&.>....
002120: 7E 05 2B C3 A9 E8 FE 05 C2 37 E8 C5 E5 CD C9 E7 ~.+......7......
002130: AF 32 0B E9 C3 F1 E7 FE 10 C2 48 E8 E5 21 0D E9 .2........H..!..
002140: 3E 01 96 77 E1 C3 EF E7 FE 18 C2 5F E8 E1 3A 0B >..w......._..:.
002150: E9 21 0C E9 BE D2 E1 E7 35 CD A4 E7 C3 4E E8 FE .!......5....N..
002160: 15 C2 6B E8 CD B1 E7 E1 C3 E1 E7 FE 12 C2 A6 E8 ..k.............
002170: C5 CD B1 E7 C1 E1 E5 C5 78 B7 CA 8A E8 23 4E 05 ........x....#N.
002180: C5 E5 CD 7F E7 E1 C1 C3 78 E8 E5 3A 0A E9 B7 CA ........x..:....
002190: F1 E7 21 0C E9 96 32 0A E9 CD A4 E7 21 0A E9 35 ..!...2.....!..5
0021A0: C2 99 E8 C3 F1 E7 23 77 04 C5 E5 4F CD 7F E7 E1 ......#w...O....
0021B0: C1 7E FE 03 78 C2 BD E8 FE 01 CA 00 00 B9 DA EF .~..x...........
0021C0: E7 E1 70 0E 0D C3 48 E7 CD 06 E7 C3 01 E9 CD 15 ..p...H.........
0021D0: F4 C3 01 E9 79 3C CA E0 E8 3C CA 06 F4 C3 0C F4 ....y<...<......
0021E0: CD 06 F4 B7 CA 91 F3 CD 09 F4 C3 01 E9 3A 03 00 .............:..
0021F0: C3 01 E9 21 03 00 71 C9 EB 4D 44 C3 D3 E7 CD 23 ...!..q..MD....#
002200: E7 32 45 E9 C9 3E 01 C3 01 E9 00 00 00 00 00 00 .2E..>..........
002210: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
002220: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
002230: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
002240: 00 00 00 00 00 00 00 21 0B E6 5E 23 56 EB E9 0C .......!..^#V...
002250: 0D C8 1A 77 13 23 C3 50 E9 3A 42 E9 4F CD 1B F4 ...w.#.P.:B.O...
002260: 7C B5 C8 5E 23 56 23 22 B3 F3 23 23 22 B5 F3 23 |..^#V#"..##"..#
002270: 23 22 B7 F3 23 23 EB 22 D0 F3 21 B9 F3 0E 08 CD #"..##."..!.....
002280: 4F E9 2A BB F3 EB 21 C1 F3 0E 0F CD 4F E9 2A C6 O.*...!.....O.*.
002290: F3 7C 21 DD F3 36 FF B7 CA 9D E9 36 00 3E FF B7 .|!..6.....6.>..
0022A0: C9 CD 18 F4 AF 2A B5 F3 77 23 77 2A B7 F3 77 23 .....*..w#w*..w#
0022B0: 77 C9 CD 27 F4 C3 BB E9 CD 2A F4 B7 C8 21 09 E6 w..'.....*...!..
0022C0: C3 4A E9 2A EA F3 0E 02 CD EA EA 22 E5 F3 22 EC .J.*......."..".
0022D0: F3 21 E5 F3 4E 23 46 2A B7 F3 5E 23 56 2A B5 F3 .!..N#F*..^#V*..
0022E0: 7E 23 66 6F 79 93 78 9A D2 FA E9 E5 2A C1 F3 7B ~#foy.x.....*..{
0022F0: 95 5F 7A 9C 57 E1 2B C3 E4 E9 E5 2A C1 F3 19 DA ._z.W.+....*....
002300: F2 73 2B 70 2B 71 CD 2D ED C3 E4 F1 E1 C9 2A 43 .s+p+q.-......*C
002310: E9 11 20 00 CD A5 F1 21 21 00 19 71 23 70 23 77 .. ....!!..q#p#w
002320: C9 2A AF F3 3A 42 E9 4F CD EA EA E5 EB CD 59 E9 .*..:B.O......Y.
002330: E1 CC 47 E9 7D 1F D8 2A AF F3 4D 44 CD 0B EB 22 ..G.}..*..MD..."
002340: AF F3 C3 A3 EC 3A D6 F3 21 42 E9 BE C8 77 C3 21 ...£.:..!B...w.!
002350: F2 3E FF 32 DE F3 2A 43 E9 7E E6 1F 3D 32 D6 F3 .>.2..*C.~..=2..
002360: FE 1E D2 75 F2 3A 42 E9 32 DF F3 7E 32 E0 F3 E6 ...u.:B.2..~2...
002370: E0 77 CD 45 F2 3A 41 E9 2A 43 E9 B6 77 C9 3E 22 .w.E.:A.*C..w.>"
002380: C3 01 E9 21 00 00 22 AD F3 22 AF F3 AF 32 42 E9 ...!..".."...2B.
002390: 21 80 00 22 B1 F3 CD DA EB C3 21 F2 CD 72 EB CD !.."......!..r..
0023A0: 51 F2 C3 51 EE CD 51 F2 C3 A2 EE 0E 00 EB 7E FE Q..Q..Q.......~.
0023B0: 3F CA C2 F2 CD A6 EA 7E FE 3F C4 72 EB CD 51 F2 ?......~.?.r..Q.
0023C0: 0E 0F CD 18 ED C3 E9 EB 2A D9 F3 22 43 E9 CD 51 ........*.."C..Q
0023D0: F2 CD 2D ED C3 E9 EB CD 51 F2 CD 9C ED C3 01 ED ..-.....Q.......
0023E0: CD 51 F2 C3 BC EF CD 51 F2 C3 FE EF CD 72 EB CD .Q.....Q.....r..
0023F0: 51 F2 C3 24 EF CD 51 F2 CD 16 EE C3 01 ED 2A AF Q..$..Q.......*.
002400: F3 C3 29 F3 3A 42 E9 C3 01 E9 EB 22 B1 F3 C3 DA ..).:B....."....
002410: EB 2A BF F3 C3 29 F3 2A AD F3 C3 29 F3 CD 51 F2 .*...).*...)..Q.
002420: CD 3B EE C3 01 ED 2A BB F3 22 45 E9 C9 3A D6 F3 .;....*.."E..:..
002430: FE FF C2 3B F3 3A 41 E9 C3 01 E9 E6 1F 32 41 E9 ...;.:A......2A.
002440: C9 CD 51 F2 C3 93 F1 CD 51 F2 C3 9C F1 CD 51 F2 ..Q.....Q.....Q.
002450: C3 D2 F1 2A 43 E9 7D 2F 5F 7C 2F 2A AF F3 A4 57 ...*C.}/_|/*...W
002460: 7D A3 5F 2A AD F3 EB 22 AF F3 7D A3 6F 7C A2 67 }£_*..."..}£o|.g
002470: 22 AD F3 C9 3A DE F3 B7 CA 91 F3 2A 43 E9 36 00 "...:......*C.6.
002480: 3A E0 F3 B7 CA 91 F3 77 3A DF F3 32 D6 F3 CD 45 :......w:..2...E
002490: F2 2A 0F E9 F9 2A 45 E9 7D 44 C9 CD 51 F2 3E 02 .*...*E.}D..Q.>.
0024A0: 32 D5 F3 0E 00 CD 07 F1 CC 03 F0 C9 E5 00 00 00 2...............
0024B0: 00 80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0024C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0024D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0024E0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0024F0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
002500: 0F EA 79 95 78 9C DA 0F EA EB E1 23 C3 FA E9 E1 ..y.x......#....
002510: C5 D5 E5 EB 2A CE F3 19 44 4D CD 1E F4 D1 2A B5 ....*...DM....*.
002520: F3 73 23 72 D1 2A B7 F3 73 23 72 C1 79 93 4F 78 .s#r.*..s#r.y.Ox
002530: 9A 47 2A D0 F3 EB CD 30 F4 4D 44 C3 21 F4 21 C3 .G*....0.MD.!.!.
002540: F3 4E 3A E3 F3 B7 1F 0D C2 45 EA 47 3E 08 96 4F .N:......E.G>..O
002550: 3A E2 F3 0D CA 5C EA B7 17 C3 53 EA 80 C9 2A 43 :....\....S...*C
002560: E9 11 10 00 19 09 3A DD F3 B7 CA 71 EA 6E 26 00 ......:....q.n&.
002570: C9 09 5E 23 56 EB C9 CD 3E EA 4F 06 00 CD 5E EA ..^#V...>.O...^.
002580: 22 E5 F3 C9 2A E5 F3 7D B4 C9 3A C3 F3 2A E5 F3 "...*..}..:..*..
002590: 29 3D C2 90 EA 22 E7 F3 3A C4 F3 4F 3A E3 F3 A1 )=..."..:..O:...
0025A0: B5 6F 22 E5 F3 C9 2A 43 E9 11 0C 00 19 C9 2A 43 .o"...*C......*C
0025B0: E9 11 0F 00 19 EB 21 11 00 19 C9 CD AE EA 7E 32 ......!.......~2
0025C0: E3 F3 EB 7E 32 E1 F3 CD A6 EA 3A C5 F3 A6 32 E2 ...~2.....:...2.
0025D0: F3 C9 CD AE EA 3A D5 F3 FE 02 C2 DE EA AF 4F 3A .....:........O:
0025E0: E3 F3 81 77 EB 3A E1 F3 77 C9 0C 0D C8 7C B7 1F ...w.:..w....|..
0025F0: 67 7D 1F 6F C3 EB EA 0E 80 2A B9 F3 AF 86 23 0D g}.o.....*....#.
002600: C2 FD EA C9 0C 0D C8 29 C3 05 EB C5 3A 42 E9 4F .......)....:B.O
002610: 21 01 00 CD 04 EB C1 79 B5 6F 78 B4 67 C9 2A AD !......y.ox.g.*.
002620: F3 3A 42 E9 4F CD EA EA 7D E6 01 C9 21 AD F3 4E .:B.O...}...!..N
002630: 23 46 CD 0B EB 22 AD F3 2A C8 F3 23 EB 2A B3 F3 #F..."..*..#.*..
002640: 73 23 72 C9 CD 5E EB 11 09 00 19 7E 17 D0 21 0F s#r..^.....~..!.
002650: E6 C3 4A E9 CD 1E EB C8 21 0D E6 C3 4A E9 2A B9 ..J.....!...J.*.
002660: F3 3A E9 F3 85 6F D0 24 C9 2A 43 E9 11 0E 00 19 .:...o.$.*C.....
002670: 7E C9 CD 69 EB 36 00 C9 CD 69 EB F6 80 77 C9 2A ~..i.6...i...w.*
002680: EA F3 EB 2A B3 F3 7B 96 23 7A 9E C9 CD 7F EB D8 ...*..{.#z......
002690: 13 72 2B 73 C9 7B 95 6F 7A 9C 67 C9 0E FF 2A EC .r+s.{.oz.g...*.
0026A0: F3 EB 2A CC F3 CD 95 EB D0 C5 CD F7 EA 2A BD F3 ..*..........*..
0026B0: EB 2A EC F3 19 C1 0C CA C4 EB BE C8 CD 7F EB D0 .*..............
0026C0: CD 2C EB C9 77 C9 CD 9C EB CD E0 EB 0E 01 CD B8 .,..w...........
0026D0: E9 C3 DA EB CD E0 EB CD B2 E9 21 B1 F3 C3 E3 EB ..........!.....
0026E0: 21 B9 F3 4E 23 46 C3 24 F4 2A B9 F3 EB 2A B1 F3 !..N#F.$.*...*..
0026F0: 0E 80 C3 4F E9 21 EA F3 7E 23 BE C0 3C C9 21 FF ...O.!..~#..<.!.
002700: 54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 00 00 00 Track-Info......
002710: 02 00 01 00 02 09 52 E5 02 00 41 02 00 00 00 02 ......R...A.....
002720: 02 00 46 02 00 00 00 02 02 00 42 02 00 00 00 02 ..F.......B.....
002730: 02 00 47 02 00 00 00 02 02 00 43 02 00 00 00 02 ..G.......C.....
002740: 02 00 48 02 00 00 00 02 02 00 44 02 00 00 00 02 ..H.......D.....
002750: 02 00 49 02 00 00 00 02 02 00 45 02 00 00 00 02 ..I.......E.....
002760: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
002770: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
002780: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
002790: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0027A0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0027B0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0027C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0027D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0027E0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0027F0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
002800: E5 50 49 50 20 20 20 20 20 43 4F 4D 00 00 00 3A .PIP COM...:
002810: 02 03 04 05 06 07 08 09 00 00 00 00 00 00 00 00 ................
002820: 00 50 52 4F 4F 46 20 20 20 53 55 42 00 00 00 02 .PROOF SUB....
002830: 0A 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
002840: 00 44 49 43 54 20 20 20 20 20 20 20 00 00 00 80 .DICT ....
002850: 0B 0C 0D 0E 0F 10 11 12 13 14 15 16 17 18 19 1A ................
002860: 00 44 49 43 54 20 20 20 20 20 20 20 01 00 00 5B .DICT ...[
002870: 1B 1C 1D 1E 1F 20 21 22 23 24 25 26 00 00 00 00 ..... !"#$%&....
002880: 00 48 49 53 54 4F 52 59 20 20 20 20 00 00 00 13 .HISTORY ....
002890: 27 28 29 00 00 00 00 00 00 00 00 00 00 00 00 00 '().............
0028A0: 00 53 54 44 49 4F 20 20 20 48 20 20 00 00 00 04 .STDIO H ....
0028B0: 2A 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 *...............
0028C0: 00 54 4F 4F 4C 53 20 20 20 48 20 20 00 00 00 0C .TOOLS H ....
0028D0: 2B 2C 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +,..............
0028E0: 00 42 55 46 20 20 20 20 20 43 20 20 00 00 00 16 .BUF C ....
0028F0: 2D 2E 2F 00 00 00 00 00 00 00 00 00 00 00 00 00 -./.............
002900: 00 43 41 4E 54 20 20 20 20 43 20 20 00 00 00 02 .CANT C ....
002910: 30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0...............
002920: 00 43 41 54 53 55 42 20 20 43 20 20 00 00 00 04 .CATSUB C ....
002930: 31 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 1...............
002940: 00 43 48 47 20 20 20 20 20 43 20 20 00 00 00 0E .CHG C ....
002950: 32 33 00 00 00 00 00 00 00 00 00 00 00 00 00 00 23..............
002960: 00 43 50 59 20 20 20 20 20 43 20 20 00 00 00 1B .CPY C ....
002970: 34 35 36 37 00 00 00 00 00 00 00 00 00 00 00 00 4567............
002980: 00 43 4E 54 20 20 20 20 20 43 20 20 00 00 00 0B .CNT C ....
002990: 38 39 00 00 00 00 00 00 00 00 00 00 00 00 00 00 89..............
0029A0: 00 43 50 54 20 20 20 20 20 43 20 20 00 00 00 06 .CPT C ....
0029B0: 3A 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 :...............
0029C0: 00 44 54 42 20 20 20 20 20 43 20 20 00 00 00 07 .DTB C ....
0029D0: 3B 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ;...............
0029E0: 00 44 49 47 49 54 20 20 20 43 20 20 00 00 00 04 .DIGIT C ....
0029F0: 3C 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 <...............
002A00: 41 42 4F 52 54 45 44 24 42 41 44 20 50 41 52 41 ABORTED$BAD PARA
002A10: 4D 45 54 45 52 24 49 4E 56 41 4C 49 44 20 55 53 METER$INVALID US
002A20: 45 52 20 4E 55 4D 42 45 52 24 52 45 43 4F 52 44 ER NUMBER$RECORD
002A30: 20 54 4F 4F 20 4C 4F 4E 47 24 49 4E 56 41 4C 49 TOO LONG$INVALI
002A40: 44 20 44 49 47 49 54 24 45 4E 44 20 4F 46 20 46 D DIGIT$END OF F
002A50: 49 4C 45 2C 20 43 54 4C 2D 5A 3F 24 43 48 45 43 ILE, CTL-Z?$CHEC
002A60: 4B 53 55 4D 20 45 52 52 4F 52 24 43 4F 52 52 45 KSUM ERROR$CORRE
002A70: 43 54 20 45 52 52 4F 52 2C 20 54 59 50 45 20 52 CT ERROR, TYPE R
002A80: 45 54 55 52 4E 20 4F 52 20 43 54 4C 2D 5A 24 49 ETURN OR CTL-Z$I
002A90: 4E 56 41 4C 49 44 20 46 4F 52 4D 41 54 24 48 45 NVALID FORMAT$HE
002AA0: 58 24 24 24 24 4E 4F 20 44 49 52 45 43 54 4F 52 X$$$$NO DIRECTOR
002AB0: 59 20 53 50 41 43 45 24 4E 4F 20 46 49 4C 45 24 Y SPACE$NO FILE$
002AC0: 43 4F 4D 24 53 54 41 52 54 20 4E 4F 54 20 46 4F COM$START NOT FO
002AD0: 55 4E 44 24 51 55 49 54 20 4E 4F 54 20 46 4F 55 UND$QUIT NOT FOU
002AE0: 4E 44 24 43 41 4E 4E 4F 54 20 43 4C 4F 53 45 20 ND$CANNOT CLOSE
002AF0: 44 45 53 54 49 4E 41 54 49 4F 4E 20 46 49 4C 45 DESTINATION FILE
002B00: 24 44 45 53 54 49 4E 41 54 49 4F 4E 20 49 53 20 $DESTINATION IS
002B10: 52 2F 4F 2C 20 44 45 4C 45 54 45 20 28 59 2F 4E R/O, DELETE (Y/N
002B20: 29 3F 24 2A 2A 4E 4F 54 20 44 45 4C 45 54 45 44 )?$**NOT DELETED
002B30: 2A 2A 24 24 24 24 24 24 24 4E 4F 54 20 46 4F 55 **$$$$$$$NOT FOU
002B40: 4E 44 24 43 4F 50 59 49 4E 47 20 2D 24 52 45 51 ND$COPYING -$REQ
002B50: 55 49 52 45 53 20 43 50 2F 4D 20 32 2E 30 20 4F UIRES CP/M 2.0 O
002B60: 52 20 4E 45 57 45 52 20 46 4F 52 20 4F 50 45 52 R NEWER FOR OPER
002B70: 41 54 49 4F 4E 2E 24 55 4E 52 45 43 4F 47 4E 49 ATION.$UNRECOGNI
002B80: 5A 45 44 20 44 45 53 54 49 4E 41 54 49 4F 4E 24 ZED DESTINATION$
002B90: 43 41 4E 4E 4F 54 20 57 52 49 54 45 24 49 4E 56 CANNOT WRITE$INV
002BA0: 41 4C 49 44 20 50 49 50 20 46 4F 52 4D 41 54 24 ALID PIP FORMAT$
002BB0: 43 41 4E 4E 4F 54 20 52 45 41 44 24 49 4E 56 41 CANNOT READ$INVA
002BC0: 4C 49 44 20 53 45 50 41 52 41 54 4F 52 24 31 F2 LID SEPARATOR$1.
002BD0: 1D 01 80 00 C5 1E 80 01 CC 1E CD 18 0A 3A CC 1E .............:..
002BE0: D6 00 D6 01 9F 32 A5 1E CD 4C 08 EB 3E 20 CD 84 .....2...L..> ..
002BF0: 1D D2 FD 04 01 4D 04 CD 39 08 CD 00 00 CD 16 09 .....M..9.......
002C00: 00 45 44 54 20 20 20 20 20 43 20 20 00 00 00 4A .EDT C ...J
002C10: 3D 3E 3F 40 41 42 43 44 45 46 00 00 00 00 00 00 =>?@ABCDEF......
002C20: 00 45 44 54 32 20 20 20 20 43 20 20 00 00 00 42 .EDT2 C ...B
002C30: 47 48 49 4A 4B 4C 4D 4E 4F 00 00 00 00 00 00 00 GHIJKLMNO.......
002C40: 00 45 54 42 20 20 20 20 20 43 20 20 00 00 00 09 .ETB C ....
002C50: 50 51 00 00 00 00 00 00 00 00 00 00 00 00 00 00 PQ..............
002C60: 00 45 52 52 4F 52 20 20 20 43 20 20 00 00 00 04 .ERROR C ....
002C70: 52 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 R...............
002C80: 00 46 4E 44 20 20 20 20 20 43 20 20 00 00 00 08 .FND C ....
002C90: 53 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 S...............
002CA0: 00 46 4E 54 20 20 20 20 20 43 20 20 00 00 00 17 .FNT C ....
002CB0: 54 55 56 00 00 00 00 00 00 00 00 00 00 00 00 00 TUV.............
002CC0: 00 46 4D 54 20 20 20 20 20 43 20 20 00 00 00 5D .FMT C ...]
002CD0: 57 58 59 5A 5B 5C 5D 5E 5F 60 61 62 00 00 00 00 WXYZ[\]^_`ab....
002CE0: 00 46 4D 54 32 20 20 20 20 43 20 20 00 00 00 13 .FMT2 C ....
002CF0: 63 64 65 00 00 00 00 00 00 00 00 00 00 00 00 00 cde.............
002D00: 00 46 4D 54 33 20 20 20 20 43 20 20 00 00 00 6D .FMT3 C ...m
002D10: 66 67 68 69 6A 6B 6C 6D 6E 6F 70 71 72 73 00 00 fghijklmnopqrs..
002D20: 00 47 45 54 57 52 44 20 20 43 20 20 00 00 00 03 .GETWRD C ....
002D30: 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 t...............
002D40: 00 49 4E 44 45 58 20 20 20 43 20 20 00 00 00 04 .INDEX C ....
002D50: 75 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 u...............
002D60: 00 4C 53 54 20 20 20 20 20 43 20 20 00 00 00 1E .LST C ....
002D70: 76 77 78 79 00 00 00 00 00 00 00 00 00 00 00 00 vwxy............
002D80: 00 4D 41 4B 53 45 54 20 20 43 20 20 00 00 00 04 .MAKSET C ....
002D90: 7A 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 z...............
002DA0: 00 4D 41 4B 53 55 42 20 20 43 20 20 00 00 00 04 .MAKSUB C ....
002DB0: 7B 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 {...............
002DC0: 00 4D 52 47 20 20 20 20 20 43 20 20 00 00 00 12 .MRG C ....
002DD0: 7C 7D 7E 00 00 00 00 00 00 00 00 00 00 00 00 00 |}~.............
002DE0: 00 4F 55 54 20 20 20 20 20 43 20 20 00 00 00 04 .OUT C ....
002DF0: 7F 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
002E00: 32 C0 1E 11 00 00 0E 19 CD 05 00 32 FC 1D 31 F2 2..........2..1.
002E10: 1D CD 40 1A 3A C0 1E 32 C1 1E 21 6F 1F 36 00 2B ..@.:..2..!o.6.+
002E20: 36 00 2B 36 00 21 A6 1E 36 01 23 36 00 21 F3 1D 6.+6.!..6.#6.!..
002E30: 36 00 23 36 FE 3A A5 1E 1F D2 47 05 0E 2A CD 1C 6.#6.:....G..*..
002E40: 08 CD 6F 09 CD 2E 08 21 4E 1F 36 FF 3A CC 1E FE ..o....!N.6.:...
002E50: 00 C2 5E 05 2A FC 1D 4D CD 5E 08 CD 00 00 21 4B ..^.*..M.^....!K
002E60: 1E 36 00 21 03 1E 36 00 21 A4 1E 36 00 2B 36 00 .6.!..6.!..6.+6.
002E70: 01 27 1E CD 20 12 3A A9 1E FE 03 C2 81 05 C3 24 .'.. .:........$
002E80: 06 3A A9 1E FE 04 C2 C3 05 3A 94 1F 3D 32 4B 1E .:.......:..=2K.
002E90: CD 0C 1D 01 06 1E CD 20 12 3A A9 1E FE 02 CA A4 ....... .:......
002EA0: 05 CD 5C 18 3A F5 1D 1F D2 B7 05 01 5C 00 CD EE ..\.:.......\...
002EB0: 1C CD 78 1B C3 C0 05 01 27 1E CD EE 1C CD B2 1A ..x.....'.......
002EC0: C3 DB 07 3A A9 1E D6 02 C6 FF 9F 21 F5 1D B6 1F ...:.......!....
002ED0: D2 D6 05 CD 5C 18 CD A2 1C CD 0C 1D 01 06 1E CD ....\...........
002EE0: 20 12 3A A9 1E FE 04 C2 05 06 CD 88 1C CD C6 1C .:.............
002EF0: 01 27 1E C5 1E 21 01 06 1E CD 18 0A CD DF 1C CD .'...!..........
002F00: B2 1A C3 DB 07 3A A9 1E FE 02 C2 24 06 CD 11 12 .....:.....$....
002F10: 3A A8 1E FE 0D CA 1B 06 C3 24 06 CD 88 1C CD B2 :........$......
002F20: 1A C3 DB 07 21 4E 1F 36 FF 01 27 1E CD 20 12 3A ....!N.6..'.. .:
002F30: A9 1E D6 02 9F 21 F5 1D B6 1F D2 43 06 01 77 04 .....!.....C..w.
002F40: CD AF 09 21 05 1E 36 00 3A A9 1E FE 02 C2 5E 06 ...!..6.:.....^.
002F50: CD A2 1C CD 63 18 21 A8 1E 36 FF C3 7B 06 3A A8 ....c.!..6..{.:.
002F60: 1E D6 13 9F 2F F5 3E 05 21 A8 1E 96 9F 2F C1 48 ..../.>.!..../.H
002F70: B1 1F D2 7B 06 01 90 04 CD AF 09 3A A8 1E 3C 32 ...{.......:..<2
002F80: A3 1E FE 0F C2 8A 06 CD CF 15 01 06 1E CD 20 12 £............. .
002F90: 3A A9 1E D6 01 C6 FF 9F F5 3A A8 1E D6 3D C6 FF :........:...=..
002FA0: 9F C1 48 B1 1F D2 AE 06 01 9D 04 CD AF 09 21 A7 ..H...........!.
002FB0: 1F 36 01 3A A7 1F 1F D2 BE 07 3A C0 1E 32 C1 1E .6.:......:..2..
002FC0: 01 06 1E CD 20 12 21 04 1E 36 00 3A A9 1E D6 02 .... .!..6.:....
002FD0: D6 01 9F F5 3A F5 1D 2F C1 48 A1 1F D2 ED 06 CD ....:../.H......
002FE0: 88 1C CD BE 18 21 A8 1E 36 FF C3 13 07 3A A9 1E .....!..6....:..
002FF0: D6 03 C6 FF 9F F5 3E 0A 21 A8 1E 96 9F 2F F5 3E ......>.!..../.>
003000: 00 50 41 47 45 20 20 20 20 43 20 20 00 00 00 04 .PAGE C ....
003010: 80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
003020: 00 50 41 54 20 20 20 20 20 43 20 20 00 00 00 34 .PAT C ...4
003030: 81 82 83 84 85 86 87 00 00 00 00 00 00 00 00 00 ................
003040: 00 50 52 54 20 20 20 20 20 43 20 20 00 00 00 21 .PRT C ...!
003050: 88 89 8A 8B 8C 00 00 00 00 00 00 00 00 00 00 00 ................
003060: 00 50 52 49 4E 54 46 20 20 43 20 20 00 00 00 0C .PRINTF C ....
003070: 8D 8E 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
003080: 00 53 41 4D 45 20 20 20 20 43 20 20 00 00 00 04 .SAME C ....
003090: 8F 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0030A0: 00 53 43 4F 50 59 20 20 20 43 20 20 00 00 00 04 .SCOPY C ....
0030B0: 90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0030C0: 00 53 45 54 54 41 42 20 20 43 20 20 00 00 00 07 .SETTAB C ....
0030D0: 91 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0030E0: 00 53 54 50 20 20 20 20 20 43 20 20 00 00 00 0F .STP C ....
0030F0: 92 93 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
003100: 00 53 52 54 20 20 20 20 20 43 20 20 00 00 00 44 .SRT C ...D
003110: 94 95 96 97 98 99 9A 9B 9C 00 00 00 00 00 00 00 ................
003120: 00 53 54 52 49 50 20 20 20 43 20 20 00 00 00 02 .STRIP C ....
003130: 9D 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
003140: 00 54 41 42 50 4F 53 20 20 43 20 20 00 00 00 04 .TABPOS C ....
003150: 9E 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
003160: 00 54 52 4E 20 20 20 20 20 43 20 20 00 00 00 0F .TRN C ....
003170: 9F A0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
003180: 00 54 52 49 4D 20 20 20 20 43 20 20 00 00 00 02 .TRIM C ....
003190: A1 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0031A0: 00 58 49 4E 44 45 58 20 20 43 20 20 00 00 00 04 .XINDEX C ....
0031B0: A2 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0031C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0031D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0031E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0031F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
003200: 05 96 9F C1 48 A1 C1 48 B1 1F D2 13 07 01 B0 04 ....H..H........
003210: CD AF 09 3A 5E 1F 21 04 1E B6 77 3A A8 1E 3C 32 ...:^.!...w:..<2
003220: A4 1E 3A A8 1E FE 13 C2 30 07 CD CF 15 C3 7D 07 ..:.....0.....}.
003230: 3A A8 1E FE 14 C2 40 07 0E 1A CD 45 0E C3 7D 07 :.....@....E..}.
003240: 3A A8 1E D6 05 9F 21 05 1E A6 1F D2 53 07 21 57 :.....!.....S.!W
003250: 1F 36 01 3A A3 1E FE 0A C2 7A 07 21 5D 1F 36 01 .6.:£....z.!].6.
003260: 3A 63 1F FE 00 C2 6D 07 21 63 1F 36 08 3A 5F 1F :c....m.!c.6.:_.
003270: FE 00 C2 7A 07 21 5F 1F 36 01 CD 6C 1A CD 12 19 ...z.!_.6..l....
003280: 01 06 1E CD 20 12 3A A9 1E D6 01 C6 FF 9F F5 3A .... .:........:
003290: A8 1E D6 2C C6 FF 9F F5 3A A8 1E D6 0D C6 FF 9F ...,....:.......
0032A0: C1 48 A1 C1 48 B1 1F D2 B0 07 01 BC 04 CD AF 09 .H..H...........
0032B0: 3A A8 1E D6 0D C6 FF 9F 32 A7 1F C3 B3 06 3A A3 :.......2.....:£
0032C0: 1E FE 0F C2 CE 07 0E 1A CD 45 0E CD CF 15 3A A3 .........E....:£
0032D0: 1E FE 00 C2 DB 07 0E 00 CD 31 19 3A A5 1E 32 CC .........1.:..2.
0032E0: 1E C3 14 05 FB 76 21 F2 1D 71 21 F2 07 E5 2A 38 .....v!..q!...*8
0032F0: 02 E9 C9 21 FB 07 E5 2A 36 02 E9 3A 09 01 C9 3E ...!...*6..:...>
003300: FA CD A6 1D 3E FA CD A6 1D C9 11 00 00 0E 03 CD ....>...........
003310: 05 00 C9 11 00 00 0E 01 CD 05 00 C9 21 AB 1E 71 ............!..q
003320: 3A AB 1E E6 7F 5F 16 00 0E 02 CD 05 00 C9 0E 0D :...._..........
003330: CD 1C 08 0E 0A CD 1C 08 C9 21 AD 1E 70 2B 71 CD .........!..p+q.
003340: 2E 08 2A AC 1E EB 0E 09 CD 05 00 C9 11 00 00 0E ..*.............
003350: 0C CD 05 00 C9 11 00 00 0E 0D CD 05 00 C9 21 AF ..............!.
003360: 1E 71 2A AF 1E 26 00 EB 0E 0E CD 05 00 C9 21 B1 .q*..&........!.
003370: 1E 70 2B 71 2A B0 1E EB 0E 0F CD 05 00 32 AE 1E .p+q*........2..
003380: C9 21 B3 1E 70 2B 71 2A B2 1E EB 0E 10 CD 05 00 .!..p+q*........
003390: 32 AE 1E C9 21 B5 1E 70 2B 71 2A B4 1E EB 0E 11 2...!..p+q*.....
0033A0: CD 05 00 32 AE 1E C9 11 00 00 0E 12 CD 05 00 32 ...2...........2
0033B0: AE 1E C9 21 B7 1E 70 2B 71 2A B6 1E EB 0E 13 CD ...!..p+q*......
0033C0: 05 00 C9 21 B9 1E 70 2B 71 2A B8 1E EB 0E 14 CD ...!..p+q*......
0033D0: 05 00 C9 21 BB 1E 70 2B 71 2A BA 1E EB 0E 15 CD ...!..p+q*......
0033E0: 05 00 C9 21 BD 1E 70 2B 71 2A BC 1E EB 0E 16 CD ...!..p+q*......
0033F0: 05 00 32 AE 1E C9 21 BF 1E 70 2B 71 2A BE 1E EB ..2...!..p+q*...
003400: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
003410: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
003420: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
003430: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
003440: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
003450: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
003460: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
003470: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
003480: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
003490: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0034A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0034B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0034C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0034D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0034E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0034F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
003500: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
003510: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
003520: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
003530: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
003540: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
003550: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
003560: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
003570: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
003580: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
003590: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0035A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0035B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0035C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0035D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0035E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0035F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
003600: 0E 17 CD 05 00 C9 21 C3 1E 70 2B 71 2A C2 1E EB ......!..p+q*...
003610: 0E 1E CD 05 00 C9 11 FF 00 0E 20 CD 05 00 C9 21 .......... ....!
003620: C4 1E 71 2A C4 1E 26 00 EB 0E 20 CD 05 00 C9 2A ..q*..&... ....*
003630: C0 1E 4D CD 1F 09 C9 2A C1 1E 4D CD 1F 09 C9 21 ..M....*..M....!
003640: C6 1E 70 2B 71 2A C5 1E EB 0E 21 CD 05 00 C9 21 ..p+q*....!....!
003650: C8 1E 70 2B 71 2A C7 1E EB 0E 22 CD 05 00 C9 21 ..p+q*...."....!
003660: CA 1E 70 2B 71 2A C9 1E EB 0E 24 CD 05 00 C9 21 ..p+q*....$....!
003670: CB 1E 36 80 11 CB 1E 0E 0A CD 05 00 C9 11 00 00 ..6.............
003680: 0E 0B CD 05 00 C9 21 6B 1F 70 2B 71 2A 6A 1F EB ......!k.p+q*j..
003690: 0E 1A CD 05 00 C9 3E 0C D3 01 3E 08 D3 01 DB 01 ......>...>.....
0036A0: 07 07 07 1F DA AA 09 C3 9E 09 DB 03 E6 7F C9 21 ...............!
0036B0: 71 1F 70 2B 71 CD 2F 09 2A 70 1F 44 4D CD 39 08 q.p+q./.*p.DM.9.
0036C0: 0E 3A CD 1C 08 0E 20 CD 1C 08 3A 4D 1F 32 72 1F .:.... ...:M.2r.
0036D0: 3A 4E 1F 21 72 1F BE DA F8 09 21 CC 1E 3A 72 1F :N.!r.....!..:r.
0036E0: BE D2 F1 09 2A 72 1F 26 00 01 CD 1E 09 4E CD 1C ....*r.&.....N..
0036F0: 08 21 72 1F 34 C2 D0 09 21 CC 1E 36 00 01 3A 02 .!r.4...!..6..:.
003700: CD 94 08 3A AE 1E FE FF CA 11 0A 01 3A 02 CD B3 ...:........:...
003710: 08 CD 2E 08 C3 0E 05 C9 21 77 1F 73 2B 70 2B 71 ........!w.s+p+q
003720: 2B D1 C1 70 2B 71 D5 3A 77 1F 3D 32 77 1F FE FF +..p+q.:w.=2w...
003730: CA 4E 0A 2A 73 1F E5 2A 75 1F C1 0A 77 2A 73 1F .N.*s..*u...w*s.
003740: 23 22 73 1F 2A 75 1F 23 22 75 1F C3 27 0A C9 21 #"s.*u.#"u..'..!
003750: 00 00 22 9D 1E 2A 03 1E 4D CD 5E 08 CD 37 09 21 .."..*..M.^..7.!
003760: 78 1F 36 00 3A FB 1D 21 78 1F BE DA BE 0A 2A 9D x.6.:..!x.....*.
003770: 1E EB 2A 01 1E 19 44 4D CD 86 09 01 06 1E CD C3 ..*...DM........
003780: 08 32 79 1F FE 00 CA AD 0A 3A 79 1F FE 01 CA 97 .2y......:y.....
003790: 0A 01 94 02 CD AF 09 2A 9D 1E 22 9F 1E EB 2A 01 .......*.."...*.
0037A0: 1E 19 36 1A 3A FB 1D 32 78 1F C3 B7 0A 11 80 00 ..6.:..2x.......
0037B0: 2A 9D 1E 19 22 9D 1E 21 78 1F 34 C2 64 0A 21 00 *..."..!x.4.d.!.
0037C0: 00 22 9D 1E CD 2F 09 C9 0E 07 21 A1 1E CD 6A 1D .".../....!...j.
0037D0: 7D 3D 32 7C 1F FE FF C2 DB 0A C9 21 00 00 22 A1 }=2|.......!..".
0037E0: 1E 2A 4B 1E 4D CD 5E 08 01 27 1E CD 5F 09 21 7A .*K.M.^..'.._.!z
0037F0: 1F 36 00 3A 7C 1F 21 7A 1F BE DA 31 0B 2A A1 1E .6.:|.!z...1.*..
003800: C3 CE 04 C9 00 00 C9 00 00 1A 00 00 00 00 00 00 ................
003810: 28 49 4E 50 3A 2F 4F 55 54 3A 53 50 41 43 45 29 (INP:/OUT:SPACE)
003820: 28 49 4E 50 3A 2F 4F 55 54 3A 53 50 41 43 45 29 (INP:/OUT:SPACE)
003830: 28 49 4E 50 3A 2F 4F 55 54 3A 53 50 41 43 45 29 (INP:/OUT:SPACE)
003840: 28 49 4E 50 3A 2F 4F 55 54 3A 53 50 41 43 45 29 (INP:/OUT:SPACE)
003850: 28 49 4E 50 3A 2F 4F 55 54 3A 53 50 41 43 45 29 (INP:/OUT:SPACE)
003860: 28 49 4E 50 3A 2F 4F 55 54 3A 53 50 41 43 45 29 (INP:/OUT:SPACE)
003870: 28 49 4E 50 3A 2F 4F 55 54 3A 53 50 41 43 45 29 (INP:/OUT:SPACE)
003880: 28 49 4E 50 3A 2F 4F 55 54 3A 53 50 41 43 45 29 (INP:/OUT:SPACE)
003890: 28 49 4E 50 3A 2F 4F 55 54 3A 53 50 41 43 45 29 (INP:/OUT:SPACE)
0038A0: 28 49 4E 50 3A 2F 4F 55 54 3A 53 50 41 43 45 29 (INP:/OUT:SPACE)
0038B0: 28 49 4E 50 3A 2F 4F 55 54 3A 53 50 41 43 45 29 (INP:/OUT:SPACE)
0038C0: 28 49 4E 50 3A 2F 4F 55 54 3A 53 50 41 43 45 29 (INP:/OUT:SPACE)
0038D0: 28 49 4E 50 3A 2F 4F 55 54 3A 53 50 41 43 45 29 (INP:/OUT:SPACE)
0038E0: 28 49 4E 50 3A 2F 4F 55 54 3A 53 50 41 43 45 29 (INP:/OUT:SPACE)
0038F0: 28 49 4E 50 3A 2F 4F 55 54 3A 53 50 41 43 45 29 (INP:/OUT:SPACE)
003900: 20 20 20 43 4F 50 59 52 49 47 48 54 20 28 43 29 COPYRIGHT (C)
003910: 20 31 39 37 39 2C 20 44 49 47 49 54 41 4C 20 52 1979, DIGITAL R
003920: 45 53 45 41 52 43 48 2C 20 20 50 49 50 20 56 45 ESEARCH, PIP VE
003930: 52 53 20 31 2E 35 03 01 06 01 00 24 24 24 20 20 RS 1.5.....$$$
003940: 20 20 20 53 55 42 00 00 00 20 3D 2E 3A 2C 3C 3E SUB... =.:,<>
003950: 0D 5F 5B 5D 49 4E 50 49 52 44 50 54 52 55 52 31 ._[]INPIRDPTRUR1
003960: 55 52 32 52 44 52 4F 55 54 4C 50 54 55 4C 31 50 UR2RDROUTLPTUL1P
003970: 52 4E 4C 53 54 50 54 50 55 50 31 55 50 32 50 55 RNLSTPTPUP1UP2PU
003980: 4E 54 54 59 43 52 54 55 43 31 43 4F 4E 4E 55 4C NTTYCRTUC1CONNUL
003990: 45 4F 46 00 44 49 53 4B 20 52 45 41 44 20 45 52 EOF.DISK READ ER
0039A0: 52 4F 52 24 44 49 53 4B 20 57 52 49 54 45 20 45 ROR$DISK WRITE E
0039B0: 52 52 4F 52 24 56 45 52 49 46 59 20 45 52 52 4F RROR$VERIFY ERRO
0039C0: 52 24 4E 4F 54 20 41 20 43 48 41 52 41 43 54 45 R$NOT A CHARACTE
0039D0: 52 20 53 49 4E 4B 24 52 45 41 44 45 52 20 53 54 R SINK$READER ST
0039E0: 4F 50 50 49 4E 47 0D 0A 24 4E 4F 54 20 41 20 43 OPPING..$NOT A C
0039F0: 48 41 52 41 43 54 45 52 20 53 4F 55 52 43 45 24 HARACTER SOURCE$
003A00: 54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 00 00 00 Track-Info......
003A10: 03 00 01 00 02 09 52 E5 03 00 41 02 00 00 00 02 ......R...A.....
003A20: 03 00 46 02 00 00 00 02 03 00 42 02 00 00 00 02 ..F.......B.....
003A30: 03 00 47 02 00 00 00 02 03 00 43 02 00 00 00 02 ..G.......C.....
003A40: 03 00 48 02 00 00 00 02 03 00 44 02 00 00 00 02 ..H.......D.....
003A50: 03 00 49 02 00 00 00 02 03 00 45 02 00 00 00 02 ..I.......E.....
003A60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
003A70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
003A80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
003A90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
003AA0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
003AB0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
003AC0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
003AD0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
003AE0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
003AF0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
003B00: 01 CA 1F 09 22 7D 1F 2A 7D 1F 44 4D CD 86 09 01 ...."}.*}.DM....
003B10: 27 1E CD D3 08 FE 00 CA 20 0B 01 A4 02 CD AF 09 '....... .......
003B20: 11 80 00 2A A1 1E 19 22 A1 1E 21 7A 1F 34 C2 F3 ...*..."..!z.4..
003B30: 0A 3A 65 1F 1F D2 C9 0B 21 00 00 22 A1 1E 01 80 .:e.....!.."....
003B40: 00 CD 86 09 21 7A 1F 36 00 3A 7C 1F 21 7A 1F BE ....!z.6.:|.!z..
003B50: DA C0 0B 01 27 1E CD 3F 09 D6 00 D6 01 9F 32 7F ....'..?......2.
003B60: 1F 2A 48 1E 23 22 48 1E 21 7B 1F 36 00 3A 7B 1F .*H.#"H.!{.6.:{.
003B70: D6 80 9F 21 7F 1F A6 1F D2 A2 0B 2A 7B 1F 26 00 ...!.......*{.&.
003B80: 01 80 00 09 3A 7B 1F 11 A1 1E E5 CD 34 1D 01 CA ....:{......4...
003B90: 1F 09 C1 0A 96 D6 01 9F 32 7F 1F 21 7B 1F 34 C3 ........2..!{.4.
003BA0: 6D 0B 11 80 00 2A A1 1E 19 22 A1 1E 3A 7F 1F 1F m....*..."..:...
003BB0: DA B9 0B 01 B5 02 CD AF 09 21 7A 1F 34 C2 49 0B .........!z.4.I.
003BC0: 01 27 1E CD D3 08 32 7F 1F 21 00 00 22 A1 1E C9 .'....2..!.."...
003BD0: 21 80 1F 71 3A 80 1F FE 20 DA F4 0B 21 F3 1D 34 !..q:... ...!..4
003BE0: 3E 00 21 53 1F BE D2 F4 0B 3A 53 1F 21 F3 1D BE >.!S.....:S.!...
003BF0: D2 F4 0B C9 3A 03 00 32 81 1F 2A A3 1E 4D 06 00 ....:..2..*£.M..
003C00: 21 DD 0C 09 09 5E 23 56 EB E9 01 FF 1D 11 A1 1E !....^#V........
003C10: CD 8E 1D DA 19 0C CD C8 0A 2A A1 1E 01 CA 1F 09 .........*......
003C20: 3A 80 1F 77 2A A1 1E 23 22 A1 1E C3 05 0D C3 3D :..w*..#"......=
003C30: 0C C3 3D 0C C3 3D 0C C3 3D 0C C3 3D 0C 01 C2 02 ..=..=..=..=....
003C40: CD AF 09 C3 05 0D 2A 80 1F 4D CD E6 07 C3 05 0D ......*..M......
003C50: 21 03 00 36 80 C3 71 0C C3 05 0D 21 03 00 36 C0 !..6..q....!..6.
003C60: C3 71 0C C3 05 0D 21 03 00 36 80 C3 71 0C C3 05 .q....!..6..q...
003C70: 0D 2A 80 1F 26 00 EB 0E 05 CD 05 00 C3 05 0D 21 .*..&..........!
003C80: 03 00 36 10 C3 A0 0C C3 05 0D 21 03 00 36 20 C3 ..6.......!..6 .
003C90: A0 0C C3 05 0D 21 03 00 36 30 C3 A0 0C C3 05 0D .....!..60......
003CA0: 2A 80 1F 26 00 EB 0E 04 CD 05 00 C3 05 0D 21 03 *..&..........!.
003CB0: 00 36 00 C3 CF 0C C3 05 0D 21 03 00 36 01 C3 CF .6.......!..6...
003CC0: 0C C3 05 0D 21 03 00 36 03 C3 CF 0C C3 05 0D 2A ....!..6.......*
003CD0: 80 1F 26 00 EB 0E 02 CD 05 00 C3 05 0D 0A 0C 2E ..&.............
003CE0: 0C 31 0C 34 0C 37 0C 3A 0C 3D 0C 46 0C 50 0C 5B .1.4.7.:.=.F.P.[
003CF0: 0C 66 0C 71 0C 7F 0C 8A 0C 95 0C A0 0C AE 0C B9 .f.q............
003D00: C3 B7 15 3A A8 1E D6 53 D6 01 9F F5 3A A8 1E D6 ...:...S....:...
003D10: 51 D6 01 9F C1 48 B1 1F D2 49 15 3A 4E 1F 3C 32 Q....H...I.:N.<2
003D20: 9F 1F CD F2 11 32 A8 1E D6 1A D6 01 9F F5 3A A8 .....2........:.
003D30: 1E D6 0D D6 01 9F C1 48 B1 1F DA 40 15 C3 22 15 .......H...@..".
003D40: CD F2 11 32 A8 1E C3 8D 15 CD F2 11 32 A8 1E D6 ...2........2...
003D50: 30 32 9F 1F 4F 3E 09 B9 D2 63 15 21 9F 1F 36 01 02..O>...c.!..6.
003D60: C3 8D 15 CD F2 11 32 A8 1E D6 30 32 99 1F 4F 3E ......2...02..O>
003D70: 09 B9 DA 8D 15 2A 9F 1F 26 00 CD 4F 1D E5 2A 99 .....*..&..O..*.
003D80: 1F 26 00 C1 09 EB 21 9F 1F 73 C3 63 15 2A 9E 1F .&....!..s.c.*..
003D90: 26 00 01 50 1F 09 3A 9F 1F 77 3A 9E 1F FE 06 C2 &..P..:..w:.....
003DA0: B7 15 3E 1F 21 9F 1F BE D2 B1 15 01 16 03 CD AF ..>.!...........
003DB0: 09 3A 9F 1F 32 C1 1E C3 C2 14 CD F2 11 32 A8 1E .:..2........2..
003DC0: C9 3A A8 1E FE 5F C2 CE 15 21 A8 1E 36 3D C9 21 .:..._...!..6=.!
003DD0: A3 1F 36 00 3E 27 21 A3 1F BE DA E9 15 0E 00 CD £.6.>'!£........
003DE0: 45 0E 21 A3 1F 34 C2 D4 15 C9 21 A9 1F 70 2B 71 E.!£.4....!..p+q
003DF0: 2A A8 1F E5 1E 03 01 30 1E CD 18 0A C9 21 AD 1F *......0.....!..
003E00: 72 2B 73 2B 70 2B 71 2A AC 1F 7E FE 24 CA 37 16 r+s+p+q*..~.$.7.
003E10: 2A AC 1F 3E 7F A6 2A AA 1F F5 3E 7F A6 C1 48 B9 *..>..*...>...H.
003E20: CA 26 16 3E 00 C9 2A AA 1F 23 22 AA 1F 2A AC 1F .&.>..*..#"..*..
003E30: 23 22 AC 1F C3 07 16 3E 01 C9 CD 0D 11 32 A8 1E #".....>.....2..
003E40: 3A 04 1E 1F D2 52 16 01 9D 1E 11 9F 1E CD 8E 1D :....R..........
003E50: 9F C9 3A A8 1E D6 1A D6 01 9F C9 21 AF 1F 36 01 ..:........!..6.
003E60: 21 9C 1E 36 00 CD 3D 17 32 B5 1F FE 3A CA 99 16 !..6..=.2...:...
003E70: 21 9C 1E 36 00 3A B5 1F FE 1A C2 93 16 01 48 03 !..6.:........H.
003E80: CD 39 08 CD 13 08 FE 1A C2 8E 16 3E 01 C9 21 9C .9.........>..!.
003E90: 1E 36 00 CD 2D 17 C3 65 16 21 B5 1F 36 00 CD BB .6..-..e.!..6...
003EA0: 17 32 B4 1F FE 00 C2 C7 16 CD 3D 17 32 B4 1F FE .2........=.2...
003EB0: 1A CA BA 16 CD 2D 17 C3 A9 16 3A AF 1F 1F D2 C4 .....-....:.....
003EC0: 16 3E 01 C9 3E 02 C9 CD C4 17 22 B7 1F CD BB 17 .>..>.....".....
003ED0: 32 B6 1F 3A B4 1F D6 00 C6 FF 9F 21 AF 1F A6 1F 2..:.......!....
003EE0: D2 F0 16 21 B4 1F 35 CD BB 17 32 B3 1F C3 D3 16 ...!..5...2.....
003EF0: CD AC 17 21 B5 1F 86 FE 00 CA 02 17 01 5C 03 CD ...!.........\..
003F00: 0C C4 0C CF 0C 3A 81 1F 32 03 00 C9 21 82 1F 71 .....:..2...!..q
003F10: 3A 82 1F FE 09 CA 22 0D 2A 82 1F 4D CD D0 0B C3 :.....".*..M....
003F20: 6E 0D 3A 63 1F FE 00 C2 34 0D 2A 82 1F 4D CD D0 n.:c....4.*..M..
003F30: 0B C3 6E 0D 3A F3 1D 32 83 1F 21 63 1F 3A 83 1F ..n.:..2..!c.:..
003F40: BE DA 51 0D 21 63 1F 3A 83 1F 96 32 83 1F C3 3A ..Q.!c.:...2...:
003F50: 0D 21 83 1F 3A 63 1F 96 77 3E 00 21 83 1F BE D2 .!..:c..w>.!....
003F60: 6E 0D 21 83 1F 35 0E 20 CD D0 0B C3 59 0D 3A 82 n.!..5. ....Y.:.
003F70: 1F FE 0D C2 7B 0D 21 F3 1D 36 00 C9 21 84 1F 71 ....{.!..6..!..q
003F80: 3A 84 1F D6 00 D6 01 9F 21 6C 1F A6 77 1F D2 99 :.......!l..w...
003F90: 0D 0E 20 CD 0C 0D C3 A2 0D 3A 84 1F C6 30 4F CD .. ......:...0O.
003FA0: 0C 0D C9 21 85 1F 71 3A 85 1F E6 F8 1F 1F 1F 1F ...!..q:........
003FB0: 4F CD 7C 0D 3A 85 1F E6 0F 4F CD 7C 0D C9 21 86 O.|.:....O.|..!.
003FC0: 1F 36 01 3A 5D 1F D6 01 D6 01 9F 32 6C 1F 3A 6F .6.:]......2l.:o
003FD0: 1F 86 27 32 6F 1F 3A 6E 1F CE 00 27 32 6E 1F 3A ..'2o.:n...'2n.:
003FE0: 6D 1F CE 00 27 32 6D 1F 2A 6D 1F 4D CD A3 0D 2A m...'2m.*m.M.£.*
003FF0: 6E 1F 4D CD A3 0D 2A 6F 1F 4D CD A3 0D 3A 5D 1F n.M.£.*o.M.£.:].
004000: FE 01 C2 12 0E 0E 3A CD 0C 0D 0E 20 CD 0C 0D C3 ......:.... ....
004010: 17 0E 0E 09 CD 0C 0D C9 2A A1 1E 7D E6 7F 32 89 ........*..}..2.
004020: 1F 11 80 FF CD 44 1D 22 87 1F CD C8 0A 2A 87 1F .....D.".....*..
004030: 01 CA 1F 09 E5 2A 89 1F EB CD 18 0A 2A 89 1F 26 .....*......*..&
004040: 00 22 A1 1E C9 21 8A 1F 71 3A 55 1F 1F D2 59 0E ."...!..q:U...Y.
004050: 3A 8A 1F FE 0C C2 59 0E C9 3A A6 1E 1F D2 A9 0E :.....Y..:......
004060: 3A 8A 1F FE 0C CA A9 0E 3A 5F 1F 32 8B 1F FE 00 :.......:_.2....
004070: CA 98 0E 3A 8B 1F FE 01 C2 80 0E 21 8B 1F 36 3C ...:.......!..6<
004080: 3A F4 1D 3C 32 F4 1D 21 8B 1F BE DA 98 0E 21 F4 :..<2..!......!.
004090: 1D 36 00 0E 0C CD 0C 0D 3E 00 21 5D 1F BE D2 A4 .6......>.!]....
0040A0: 0E CD BE 0D 21 A6 1E 36 00 3A 51 1F 1F D2 CC 0E ....!..6.:Q.....
0040B0: 3A 8A 1F D6 13 D6 01 9F F5 3A A3 1E D6 00 D6 01 :........:£.....
0040C0: 9F C1 48 A1 1F D2 CC 0E CD 18 0E C9 3A 8A 1F FE ..H.........:...
0040D0: 0C C2 D9 0E 21 F4 1D 36 00 2A 8A 1F 4D CD 0C 0D ....!..6.*..M...
0040E0: 3A 8A 1F FE 0A C2 ED 0E 21 A6 1E 36 01 C9 21 8C :.......!..6..!.
0040F0: 1F 71 3A 8C 1F D6 61 9F 2F F5 3E 7A 21 8C 1F 96 .q:...a./.>z!...
004100: 12 17 CD 2D 17 3A AF 1F 1F D2 0F 17 3E 00 C9 3E ...-.:......>..>
004110: 02 C9 21 B1 1F 70 2B 71 3A AF 1F 1F D2 2C 17 21 ..!..p+q:....,.!
004120: AF 1F 36 00 2A B0 1F 44 4D CD 39 08 C9 3A AE 1F ..6.*..DM.9..:..
004130: 1F D2 3C 17 21 AE 1F 36 00 CD 18 0E C9 3A AF 1F ..<.!..6.....:..
004140: 1F D2 7A 17 CD 0D 11 32 B2 1F FE 13 C2 57 17 21 ..z....2.....W.!
004150: AE 1F 36 01 C3 44 17 2A 9C 1E 26 00 01 4C 1E 09 ..6..D.*..&..L..
004160: 3A B2 1F 77 3A 9C 1E 3C 32 9C 1E FE 4F DA 76 17 :..w:..<2...O.v.
004170: 01 2A 03 CD 12 17 3A B2 1F C9 3E 1A C9 CD 3D 17 .*....:...>...=.
004180: 32 B9 1F D6 30 4F 3E 09 B9 DA 92 17 3A B9 1F D6 2...0O>.....:...
004190: 30 C9 3A B9 1F D6 41 4F 3E 05 B9 D2 A4 17 01 3A 0.:...AO>......:
0041A0: 03 CD 12 17 3A B9 1F D6 41 C6 0A C9 CD 7D 17 87 ....:...A....}..
0041B0: 87 87 87 F5 CD 7D 17 C1 48 B1 C9 CD AC 17 21 B5 .....}..H.....!.
0041C0: 1F 86 77 C9 CD BB 17 4F 06 00 60 69 0E 08 CD 64 ..w....O..`i...d
0041D0: 1D E5 CD BB 17 E1 CD 56 1D C9 CD 5B 16 32 BA 1F .......V...[.2..
0041E0: 4F 3E 01 B9 DA 32 18 3A BA 1F D6 01 D6 01 9F 21 O>...2.:.......!
0041F0: 58 1F A6 1F DA 1C 18 21 BB 1F 36 01 3A 9C 1E 21 X......!..6.:..!
004200: BB 1F BE DA 1C 18 3A BB 1F 3D 4F 06 00 21 4C 1E ......:..=O..!L.
004210: 09 4E CD 45 0E 21 BB 1F 34 C2 FC 17 0E 0D CD 45 .N.E.!..4......E
004220: 0E 0E 0A CD 45 0E 3A BA 1F FE 01 C2 2F 18 C9 C3 ....E.:...../...
004230: DA 17 CD 2E 08 2A 9C 1E 26 00 01 4C 1E 09 36 24 .....*..&..L..6$
004240: 01 4C 1E CD 39 08 01 6B 03 CD 39 08 CD 2E 08 CD .L..9..k..9.....
004250: 13 08 FE 1A C2 58 18 C9 C3 DA 17 C9 01 8F 03 CD .....X..........
004260: AF 09 C9 2A 4B 1E 4D CD 5E 08 11 9E 03 01 30 1E ...*K.M.^.....0.
004270: CD FD 15 32 05 1E 01 30 1E C5 1E 03 01 A4 1F CD ...2...0........
004280: 18 0A 3A 30 1E E6 7F 32 30 1E 3A 31 1E E6 7F 32 ..:0...20.:1...2
004290: 31 1E 01 A2 03 CD EA 15 01 27 1E CD B3 08 01 27 1........'.....'
0042A0: 1E CD E3 08 3A AE 1E FE FF C2 B2 18 01 A5 03 CD ....:...........
0042B0: AF 09 21 47 1E 36 00 21 00 00 22 A1 1E C9 21 FF ..!G.6.!.."...!.
0042C0: FF 22 9F 1E CD 37 09 2A 03 1E 4D CD 5E 08 01 06 ."...7.*..M.^...
0042D0: 1E CD 6E 08 CD 2F 09 3A 61 1F 2F F5 3A 10 1E 07 ..n../.:a./.:...
0042E0: C1 48 A1 1F D2 EC 18 21 AE 1E 36 FF 3A AE 1E FE .H.....!..6.:...
0042F0: FF C2 FA 18 01 B8 03 CD AF 09 21 26 1E 36 00 11 ..........!&.6..
004300: 9F 2F C1 48 A1 1F D2 11 0F 3A 8C 1F E6 5F 32 8C ./.H.....:..._2.
004310: 1F 3A 8C 1F C9 21 8D 1F 71 3A 8D 1F D6 41 9F 2F .:...!..q:...A./
004320: F5 3E 5A 21 8D 1F 96 9F 2F C1 48 A1 1F D2 38 0F .>Z!..../.H...8.
004330: 3A 8D 1F F6 20 32 8D 1F 3A 8D 1F C9 3A A4 1E 3D :... 2..:...:..=
004340: 4F 3E 05 B9 DA 6D 0F 3A 57 1F 21 51 1F B6 F5 CD O>...m.:W.!Q....
004350: 7D 09 C1 48 A1 1F D2 6D 0F CD 13 08 FE 1A C2 64 }..H...m.......d
004360: 0F 3E 1A C9 01 D7 02 CD 39 08 3E 13 C9 21 90 1F .>......9.>..!..
004370: 36 01 3A 03 00 32 8E 1F 2A A4 1E 4D 06 00 21 45 6.:..2..*..M..!E
004380: 10 09 09 5E 23 56 EB E9 01 FD 1D 11 9D 1E CD 8E ...^#V..........
004390: 1D DA 97 0F CD 4F 0A 2A 9D 1E EB 2A 01 1E 19 7E .....O.*...*...~
0043A0: 32 8F 1F 2A 9D 1E 23 22 9D 1E C3 6D 10 CD F3 07 2..*..#"...m....
0043B0: 32 8F 1F C3 6D 10 CD 96 09 32 8F 1F C3 6D 10 21 2...m....2...m.!
0043C0: 03 00 36 04 C3 E0 0F C3 6D 10 21 03 00 36 08 C3 ..6.....m.!..6..
0043D0: E0 0F C3 6D 10 21 03 00 36 0C C3 E0 0F C3 6D 10 ...m.!..6.....m.
0043E0: 11 00 00 0E 03 CD 05 00 E6 7F 32 8F 1F C3 6D 10 ..........2...m.
0043F0: C3 08 10 C3 08 10 C3 08 10 C3 08 10 C3 08 10 C3 ................
004400: 08 10 C3 08 10 C3 08 10 01 E9 02 CD AF 09 C3 6D ...............m
004410: 10 21 03 00 36 00 C3 32 10 C3 6D 10 21 03 00 36 .!..6..2..m.!..6
004420: 01 C3 32 10 C3 6D 10 21 03 00 36 03 C3 32 10 C3 ..2..m.!..6..2..
004430: 6D 10 21 90 1F 36 00 11 00 00 0E 01 CD 05 00 32 m.!..6.........2
004440: 8F 1F C3 6D 10 88 0F AD 0F B6 0F BF 0F CA 0F D5 ...m............
004450: 0F E0 0F F0 0F F3 0F F6 0F F9 0F FC 0F FF 0F 02 ................
004460: 10 05 10 08 10 11 10 1C 10 27 10 32 10 3A 8E 1F .........'.2.:..
004470: 32 03 00 3A 54 1F 1F D2 92 10 3A A3 1E 32 8E 1F 2..:T.....:£.2..
004480: 21 A3 1E 36 13 2A 8F 1F 4D CD 45 0E 3A 8E 1F 32 !£.6.*..M.E.:..2
004490: A3 1E 3A 90 1F 1F D2 DC 10 3A 04 1E 1F D2 B2 10 £.:......:......
0044A0: 3A A7 1E 3C 32 A7 1E D6 00 D6 01 9F 32 90 1F C3 :..<2.......2...
0044B0: BD 10 3A 8F 1F D6 0A D6 01 9F 32 90 1F 3A 90 1F ..:.......2..:..
0044C0: 1F D2 DC 10 CD 7D 09 1F D2 DC 10 CD 13 08 FE 1A .....}..........
0044D0: C2 D6 10 3E 1A C9 01 00 03 CD AF 09 3A 69 1F 1F ...>........:i..
0044E0: D2 EB 10 3A 8F 1F E6 7F 32 8F 1F 3A 64 1F 1F D2 ...:....2..:d...
0044F0: FA 10 2A 8F 1F 4D CD EE 0E C9 3A 5B 1F 1F D2 09 ..*..M....:[....
004500: C0 03 01 0F 1E CD FD 15 32 04 1E 2A FD 1D 22 9D ........2..*..".
004510: 1E C9 3E 00 21 62 1F BE D2 21 19 01 C4 03 CD AF ..>.!b...!......
004520: 09 3E 00 21 60 1F BE D2 30 19 01 D4 03 CD AF 09 .>.!`...0.......
004530: C9 21 BC 1F 71 3A BC 1F 1F D2 45 19 3A 13 1E 32 .!..q:....E.:..2
004540: 34 1E C3 4A 19 21 34 1E 36 00 2A A1 1E 7D E6 7F 4..J.!4.6.*..}..
004550: FE 00 CA 61 19 21 34 1E 34 0E 1A CD 45 0E C3 4A ...a.!4.4...E..J
004560: 19 CD 12 19 CD C8 0A 2A 4B 1E 4D CD 5E 08 01 27 .......*K.M.^..'
004570: 1E CD 81 08 3A AE 1E FE FF C2 82 19 01 E3 03 CD ....:...........
004580: AF 09 01 A4 1F CD EA 15 21 33 1E 36 00 01 27 1E ........!3.6..'.
004590: CD 6E 08 3A AE 1E FE FF CA E9 19 3A 30 1E 07 1F .n.:.......:0...
0045A0: D2 E3 19 3A 66 1F 1F DA D5 19 01 01 04 CD 39 08 ...:f.........9.
0045B0: CD 13 08 4F CD EE 0E FE 59 CA D2 19 01 23 04 CD ...O....Y....#..
0045C0: 39 08 CD 2E 08 01 33 04 CD EA 15 01 27 1E CD B3 9.....3.....'...
0045D0: 08 C9 CD 2E 08 3A 30 1E E6 7F 32 30 1E 01 27 1E .....:0...20..'.
0045E0: CD 06 09 01 27 1E CD B3 08 01 27 1E C5 1E 10 01 ....'.....'.....
0045F0: 37 1E CD 18 0A 01 36 04 CD EA 15 01 27 1E CD F6 7.....6.....'...
004600: 08 C9 0E 07 21 FF 1D CD 6A 1D 3E FF CD 41 1D 2B ....!...j.>..A.+
004610: EB 21 FB 1D 73 C9 21 CA 1F 22 01 1E 01 00 40 11 .!..s.!.."....@.
004620: FF 1D CD 93 1D DA 31 1A 21 80 7F 22 FF 1D C3 3C ......1.!.."...<
004630: 1A 2A FD 1D EB 2A FF 1D 19 22 FF 1D CD 02 1A C9 .*...*..."......
004640: 01 CA 1F 11 06 00 CD 93 1D 0E 01 E5 CD 6E 1D 01 .............n..
004650: CA 1F 09 22 01 1E 11 00 FF E1 CD 44 1D 0E 01 CD ...".......D....
004660: 6E 1D 22 FD 1D 22 FF 1D CD 02 1A C9 3A A4 1E D6 n.".."......:...
004670: 00 C6 FF 9F 21 51 1F A6 32 BD 1F 1F D2 82 1A CD ....!Q..2.......
004680: 16 1A 3A 58 1F 21 57 1F B6 1F D2 93 1A CD DA 17 ..:X.!W.........
004690: C3 A4 1A CD 3A 16 1F DA A4 1A 2A A8 1E 4D CD 45 ....:.....*..M.E
0046A0: 0E C3 93 1A 3A BD 1F 1F D2 B1 1A CD 18 0E CD 40 ....:..........@
0046B0: 1A C9 CD 40 1A 3A 4F 1F 32 4D 1F CD 63 18 CD BE ...@.:O.2M..c...
0046C0: 18 21 BE 1F 36 01 23 36 00 3E 19 21 BF 1F BE DA .!..6.#6.>.!....
0046D0: 29 1B 2A BF 1F 26 00 01 50 1F 09 7E FE 00 CA 22 ).*..&..P..~..."
0046E0: 1B 3A BF 1F D6 06 D6 01 9F F5 3A BF 1F D6 0E D6 .:........:.....
0046F0: 01 9F C1 48 B1 F5 3A BF 1F D6 11 D6 01 9F C1 48 ...H..:........H
004700: 11 2A 8F 1F 4D CD 15 0F C9 3A 8F 1F C9 3E 00 21 .*..M....:...>.!
004710: FA 1D BE D2 28 11 3A FA 1D 3D 32 FA 1D FE 01 C2 ....(.:..=2.....
004720: 25 11 3E 0A C9 3E 1A C9 3E 00 21 F8 1D BE D2 46 %.>..>..>.!....F
004730: 11 21 F8 1D 35 2B 4E 06 00 21 CD 1E 09 7E 32 91 .!..5+N..!...~2.
004740: 1F 21 F7 1D 34 C9 CD 3C 0F 32 91 1F FE 1A C2 54 .!..4..<.2.....T
004750: 11 3E 1A C9 3E 00 21 62 1F BE D2 7D 11 2A 62 1F .>..>.!b...}.*b.
004760: 4D CD AD 11 1F D2 7A 11 3A 62 1F 32 F7 1D 21 62 M.....z.:b.2..!b
004770: 1F 36 00 3A F9 1D 3C 32 F8 1D C3 A9 11 3E 00 21 .6.:..<2.....>.!
004780: 60 1F BE D2 A5 11 2A 60 1F 4D CD AD 11 1F D2 9E `.....*`.M......
004790: 11 21 60 1F 36 00 21 FA 1D 36 02 3E 0D C9 3A 91 .!`.6.!..6.>..:.
0047A0: 1F C9 C3 A9 11 3A 91 1F C9 C3 28 11 C9 21 92 1F .....:....(..!..
0047B0: 71 3A F9 1D 21 92 1F 86 77 4F 06 00 21 CD 1E 09 q:..!...wO..!...
0047C0: 7E 32 93 1F FE 1A C2 D9 11 2A 92 1F 26 00 01 CD ~2.......*..&...
0047D0: 1E 09 3A 91 1F 77 3E 01 C9 21 91 1F 3A 93 1F BE ..:..w>..!..:...
0047E0: C2 EA 11 21 F9 1D 34 C3 EF 11 21 F9 1D 36 00 3E ...!..4...!..6.>
0047F0: 00 C9 3A 4E 1F 3C 32 4E 1F 21 CC 1E BE DA 03 12 ..:N.<2N.!......
004800: 3E 0D C9 2A 4E 1F 26 00 01 CD 1E 09 4E CD EE 0E >..*N.&.....N...
004810: C9 CD F2 11 32 A8 1E FE 20 C2 1F 12 C3 11 12 C9 ....2... .......
004820: 21 96 1F 70 2B 71 21 F5 1D 36 00 21 A9 1E 36 00 !..p+q!..6.!..6.
004830: 2B 36 20 21 AA 1E 36 00 3A AA 1E FE 20 D2 53 12 +6 !..6.:... .S.
004840: 3A AA 1E FE 0B C2 4D 12 21 A8 1E 36 00 CD 67 14 :.....M.!..6..g.
004850: C3 38 12 CD 11 12 3A 4E 1F 32 4D 1F 2A A8 1E 4D .8....:N.2M.*..M
004860: CD 38 14 1F D2 70 12 CD C1 15 21 A9 1E 36 01 C9 .8...p....!..6..
004870: 21 94 1F 36 00 21 97 1F 36 00 3E 19 21 97 1F BE !..6.!..6.>.!...
004880: DA 95 12 2A 97 1F 26 00 01 50 1F 09 36 00 21 97 ...*..&..P..6.!.
004890: 1F 34 C2 7A 12 21 F6 1D 36 00 21 F8 1D 36 00 23 .4.z.!..6.!..6.#
0048A0: 36 00 23 36 00 21 AA 1E 36 00 2A A8 1E 4D CD 38 6.#6.!..6.*..M.8
0048B0: 14 1F DA DA 12 3A AA 1E FE 08 DA BE 12 C9 3A A8 .....:........:.
0048C0: 1E FE 2A C2 CE 12 0E 08 CD 87 14 C3 D1 12 CD 67 ..*............g
0048D0: 14 CD F2 11 32 A8 1E C3 AA 12 3A A8 1E FE 3A C2 ....2.....:...:.
0048E0: BF 13 3A 94 1F FE 00 CA EB 12 C9 3A AA 1E FE 01 ..:........:....
0048F0: C2 2C 13 0E 01 CD A1 14 D6 41 3C 32 94 1F 4F 3E .,.......A<2..O>
004900: B1 F5 3A BF 1F D6 15 D6 01 9F C1 48 B1 F5 3A BF ..:........H..:.
004910: 1F D6 16 D6 01 9F C1 48 B1 1F DA 22 1B 21 BE 1F .......H...".!..
004920: 36 00 21 BF 1F 34 C2 C9 1A 3A BE 1F 1F D2 5F 1B 6.!..4...:...._.
004930: CD 16 1A CD 6A 1B 1F DA 59 1B CD 4F 0A CD 6A 1B ....j...Y..O..j.
004940: 1F D2 4D 1B 2A 9F 1E 22 A1 1E C3 53 1B 2A FF 1D ..M.*.."...S.*..
004950: 22 A1 1E CD C8 0A C3 33 1B CD 40 1A C3 62 1B CD "......3..@..b..
004960: 6C 1A 2A BE 1F 4D CD 31 19 C9 01 FF FF 11 9F 1E l.*..M.1........
004970: CD 93 1D B5 C6 FF 9F C9 21 00 00 22 C0 1F 22 C4 ........!.."..".
004980: 1F CD 37 09 2A 03 1E 4D CD 5E 08 01 80 00 CD 86 ..7.*..M.^......
004990: 09 01 5C 00 CD 94 08 21 00 00 22 C2 1F 3A AE 1E ..\....!.."..:..
0049A0: D6 FF C6 FF 9F 01 C0 1F 11 C2 1F F5 CD 8E 1D 9F ................
0049B0: C1 48 A1 1F D2 C4 1B 2A C2 1F 23 22 C2 1F CD A7 .H.....*..#"....
0049C0: 08 C3 9D 1B CD 2F 09 3A AE 1E FE FF C2 E5 1B 3E ...../.:.......>
0049D0: 00 11 C4 1F CD 9B 1D B5 C2 E1 1B 01 39 04 CD AF ............9...
0049E0: 09 CD 2E 08 C9 2A C2 1F 23 22 C0 1F 3A AE 1E E6 .....*..#"..:...
0049F0: 03 87 87 87 87 87 5F 16 00 21 80 00 19 E5 1E 10 ......_..!......
004A00: 01 27 1E CD 18 0A 21 27 1E 36 00 21 33 1E 36 00 .'....!'.6.!3.6.
004A10: 01 27 1E C5 1E 10 01 06 1E CD 18 0A 3A 31 1E 07 .'..........:1..
004A20: 2F 21 61 1F B6 1F D2 45 1C 2A C4 1F 23 22 C4 1F /!a....E.*..#"..
004A30: 3E 01 CD 7A 1D B5 C2 3F 1C 01 43 04 CD 39 08 CD >..z...?..C..9..
004A40: 49 1C CD B2 1A C3 81 1B C9 CD 2E 08 21 C6 1F 36 I...........!..6
004A50: 01 3E 0B 21 C6 1F BE DA 87 1C 2A C6 1F 26 00 01 .>.!......*..&..
004A60: 27 1E 09 7E 32 C7 1F FE 20 CA 80 1C 3A C6 1F FE '..~2... ...:...
004A70: 09 C2 79 1C 0E 2E CD 1C 08 2A C7 1F 4D CD 1C 08 ..y......*..M...
004A80: 21 C6 1F 34 C2 51 1C C9 3E 00 21 94 1F BE D2 9B !..4.Q..>.!.....
004A90: 1C 3A 94 1F 3D 32 03 1E C3 A1 1C 3A FC 1D 32 03 .:..=2.....:..2.
004AA0: 1E C9 3A F6 1D 1F D2 AC 1C CD 5C 18 3E 00 21 94 ..:.......\.>.!.
004AB0: 1F BE D2 BF 1C 3A 94 1F 3D 32 4B 1E C3 C5 1C 3A .....:..=2K....:
004AC0: FC 1D 32 4B 1E C9 21 C0 1E 3A C1 1E BE CA D1 1C ..2K..!..:......
004AD0: C9 21 03 1E 3A 4B 1E BE C2 DE 1C CD 5C 18 C9 CD .!..:K......\...
004AE0: 11 12 3A A8 1E FE 0D CA ED 1C CD 5C 18 C9 21 C9 ..:........\..!.
004AF0: 1F 70 2B 71 CD 88 1C CD DF 1C 01 06 1E C5 2A C8 .p+q..........*.
004B00: 1A B9 D2 06 13 C9 CD 11 12 2A A8 1E 4D CD 38 14 .........*..M.8.
004B10: 1F D2 29 13 3A A8 1E FE 5B C2 1F 13 CD B1 14 21 ..).:...[......!
004B20: 4E 1F 35 21 A9 1E 36 04 C9 C3 B1 13 3A AA 1E FE N.5!..6.....:...
004B30: 03 CA 35 13 C9 21 A1 1F 36 FF 23 36 00 3E 14 21 ..5..!..6.#6.>.!
004B40: A2 1F BE DA B0 13 21 A0 1F 36 00 3A A0 1F 3C 32 ......!..6.:..<2
004B50: A0 1F 4F 3E 03 91 9F 2F F5 3A A0 1F 21 A1 1F 86 ..O>.../.:..!...
004B60: 4F 06 00 21 54 02 09 E5 2A A0 1F 4D CD A1 14 E1 O..!T...*..M....
004B70: 96 D6 01 9F C1 48 A1 1F D2 7E 13 C3 4B 13 3A A0 .....H...~..K.:.
004B80: 1F FE 04 C2 A1 13 21 A9 1E 36 03 CD F2 11 FE 5B ......!..6.....[
004B90: C2 96 13 CD B1 14 21 4E 1F 35 3A A2 1F 32 A8 1E ......!N.5:..2..
004BA0: C9 3A A1 1F C6 03 32 A1 1F 21 A2 1F 34 C2 3D 13 .:....2..!..4.=.
004BB0: C9 3A A8 1E FE 5B C2 BC 13 CD B1 14 C3 34 14 3A .:...[.......4.:
004BC0: AA 1E FE 00 C2 C8 13 C9 21 AA 1E 36 08 3A A8 1E ........!..6.:..
004BD0: FE 2E C2 02 14 CD F2 11 32 A8 1E 4F CD 38 14 1F ........2..O.8..
004BE0: DA 02 14 3A AA 1E FE 0B DA EC 13 C9 3A A8 1E FE ...:........:...
004BF0: 2A C2 FC 13 0E 0B CD 87 14 C3 FF 13 CD 67 14 C3 *............g..
004C00: D5 13 3A A8 1E FE 5B C2 0D 14 CD B1 14 21 4E 1F ..:...[......!N.
004C10: 35 21 A9 1E 36 02 3A 94 1F FE 00 C2 25 14 3A FC 5!..6.:.....%.:.
004C20: 1D 3C 32 94 1F 2A 95 1F 36 00 01 20 00 2A 95 1F .<2..*..6.. .*..
004C30: 09 36 00 C9 C3 A5 12 C9 21 9A 1F 71 21 9B 1F 36 .6......!..q!..6
004C40: 00 3E 0A 21 9B 1F BE DA 64 14 2A 9B 1F 26 00 01 .>.!....d.*..&..
004C50: 49 02 09 3A 9A 1F BE C2 5D 14 3E 01 C9 21 9B 1F I..:....].>..!..
004C60: 34 C2 41 14 3E 00 C9 3A AA 1E 3C 32 AA 1E 4F 06 4.A.>..:..<2..O.
004C70: 00 2A 95 1F 09 3A A8 1E 77 3A A8 1E FE 3F C2 86 .*...:..w:...?..
004C80: 14 21 F5 1D 36 01 C9 21 9C 1F 71 21 A8 1E 36 3F .!..6..!..q!..6?
004C90: 21 9C 1F 3A AA 1E BE D2 A0 14 CD 67 14 C3 90 14 !..:.......g....
004CA0: C9 21 9D 1F 71 2A 9D 1F 26 00 EB 2A 95 1F 19 7E .!..q*..&..*...~
004CB0: C9 21 F6 1D 36 01 3A C0 1E 32 C1 1E CD F2 11 32 .!..6.:..2.....2
004CC0: A8 1E 3A A8 1E D6 0D D6 01 9F F5 3A A8 1E D6 5D ..:........:...]
004CD0: D6 01 9F C1 48 B1 1F DA BA 15 3A A8 1E D6 41 32 ....H.....:...A2
004CE0: 9E 1F 4F 3E 19 B9 D2 03 15 3A A8 1E FE 20 C2 FA ..O>.....:... ..
004CF0: 14 CD F2 11 32 A8 1E C3 00 15 01 08 03 CD AF 09 ....2...........
004D00: 54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 00 00 00 Track-Info......
004D10: 04 00 01 00 02 09 52 E5 04 00 41 02 00 00 00 02 ......R...A.....
004D20: 04 00 46 02 00 00 00 02 04 00 42 02 00 00 00 02 ..F.......B.....
004D30: 04 00 47 02 00 00 00 02 04 00 43 02 00 00 00 02 ..G.......C.....
004D40: 04 00 48 02 00 00 00 02 04 00 44 02 00 00 00 02 ..H.......D.....
004D50: 04 00 49 02 00 00 00 02 04 00 45 02 00 00 00 02 ..I.......E.....
004D60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
004D70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
004D80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
004D90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
004DA0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
004DB0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
004DC0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
004DD0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
004DE0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
004DF0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
004E00: 1F 44 4D 1E 21 CD 18 0A CD C6 1C C9 01 06 1E CD .DM.!...........
004E10: 20 12 3A A9 1E D6 01 D6 01 9F F5 3A A8 1E D6 3D .:........:...=
004E20: D6 01 9F C1 48 A1 1F DA 2D 1D CD 5C 18 3A 4E 1F ....H...-..\.:N.
004E30: 32 4F 1F C9 EB 5F 16 00 EB 1A 85 6F 13 1A 8C 67 2O..._.....o...g
004E40: C9 5F 16 00 7B A5 6F 7A A4 67 C9 5E 23 56 EB 29 ._..{.oz.g.^#V.)
004E50: E5 29 29 C1 09 C9 5F 16 00 7B B5 6F 7A B4 67 C9 .))..._..{.oz.g.
004E60: 5E 23 56 EB 29 0D C2 64 1D C9 5E 23 56 EB 7C B7 ^#V.)..d..^#V.|.
004E70: 1F 67 7D 1F 6F 0D C2 6E 1D C9 5F 16 00 7B 95 6F .g}.o..n.._..{.o
004E80: 7A 9C 67 C9 4F 06 00 7B 91 6F 7A 98 67 C9 69 60 z.g.O..{.oz.g.i`
004E90: 4E 23 46 1A 91 6F 13 1A 98 67 C9 6F 26 00 1A 95 N#F..o...g.o&...
004EA0: 6F 13 1A 9C 67 C9 06 0C 48 0D C2 A9 1D 3D C2 A8 o...g...H....=..
004EB0: 1D C9 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
004EC0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
004ED0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
004EE0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
004EF0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
004F00: 01 27 1E CD 18 0A 21 27 1E 36 00 21 33 1E 36 00 .'....!'.6.!3.6.
004F10: 01 27 1E C5 1E 10 01 06 1E CD 18 0A 3A 31 1E 07 .'..........:1..
004F20: 2F 21 61 1F B6 1F D2 45 1C 2A C4 1F 23 22 C4 1F /!a....E.*..#"..
004F30: 3E 01 CD 7A 1D B5 C2 3F 1C 01 43 04 CD 39 08 CD >..z...?..C..9..
004F40: 49 1C CD B2 1A C3 81 1B C9 CD 2E 08 21 C6 1F 36 I...........!..6
004F50: 01 3E 0B 21 C6 1F BE DA 87 1C 2A C6 1F 26 00 01 .>.!......*..&..
004F60: 27 1E 09 7E 32 C7 1F FE 20 CA 80 1C 3A C6 1F FE '..~2... ...:...
004F70: 09 C2 79 1C 0E 2E CD 1C 08 2A C7 1F 4D CD 1C 08 ..y......*..M...
004F80: 21 C6 1F 34 C2 51 1C C9 3E 00 21 94 1F BE D2 9B !..4.Q..>.!.....
004F90: 1C 3A 94 1F 3D 32 03 1E C3 A1 1C 3A FC 1D 32 03 .:..=2.....:..2.
004FA0: 1E C9 3A F6 1D 1F D2 AC 1C CD 5C 18 3E 00 21 94 ..:.......\.>.!.
004FB0: 1F BE D2 BF 1C 3A 94 1F 3D 32 4B 1E C3 C5 1C 3A .....:..=2K....:
004FC0: FC 1D 32 4B 1E C9 21 C0 1E 3A C1 1E BE CA D1 1C ..2K..!..:......
004FD0: C9 21 03 1E 3A 4B 1E BE C2 DE 1C CD 5C 18 C9 CD .!..:K......\...
004FE0: 11 12 3A A8 1E FE 0D CA ED 1C CD 5C 18 C9 21 C9 ..:........\..!.
004FF0: 1F 70 2B 71 CD 88 1C CD DF 1C 01 06 1E C5 2A C8 .p+q..........*.
005000: 0D 0A 61 64 61 70 74 69 6E 67 0D 0A 61 64 64 0D ..adapting..add.
005010: 0A 61 64 64 65 64 0D 0A 61 64 64 69 6E 67 0D 0A .added..adding..
005020: 61 64 64 69 74 69 6F 6E 0D 0A 61 64 64 69 74 69 addition..additi
005030: 6F 6E 61 6C 0D 0A 61 64 64 69 74 69 6F 6E 73 0D onal..additions.
005040: 0A 61 64 64 72 65 73 73 0D 0A 61 64 64 72 65 73 .address..addres
005050: 73 65 64 0D 0A 61 64 64 72 65 73 73 65 73 0D 0A sed..addresses..
005060: 61 64 64 72 65 73 73 69 6E 67 0D 0A 61 64 64 73 addressing..adds
005070: 0D 0A 61 64 65 71 75 61 74 65 0D 0A 61 64 68 65 ..adequate..adhe
005080: 72 65 0D 0A 61 64 6A 75 73 74 0D 0A 61 64 6A 75 re..adjust..adju
005090: 73 74 65 64 0D 0A 61 64 6A 75 73 74 69 6E 67 0D sted..adjusting.
0050A0: 0A 61 64 6A 75 73 74 73 0D 0A 61 64 6D 69 6E 69 .adjusts..admini
0050B0: 73 74 72 61 74 69 76 65 0D 0A 61 64 76 61 6E 74 strative..advant
0050C0: 61 67 65 0D 0A 61 64 76 61 6E 74 61 67 65 73 0D age..advantages.
0050D0: 0A 61 64 76 69 63 65 0D 0A 61 66 66 65 63 74 0D .advice..affect.
0050E0: 0A 61 66 66 65 63 74 65 64 0D 0A 61 66 66 65 63 .affected..affec
0050F0: 74 69 6E 67 0D 0A 61 66 66 65 63 74 73 0D 0A 61 ting..affects..a
005100: 66 72 61 69 64 0D 0A 61 66 74 65 72 0D 0A 61 67 fraid..after..ag
005110: 61 69 6E 0D 0A 61 67 61 69 6E 73 74 0D 0A 61 67 ain..against..ag
005120: 65 0D 0A 61 68 65 61 64 0D 0A 61 69 64 0D 0A 61 e..ahead..aid..a
005130: 6C 61 72 6D 0D 0A 61 6C 67 6F 72 69 74 68 6D 0D larm..algorithm.
005140: 0A 61 6C 69 61 73 0D 0A 61 6C 69 67 6E 73 0D 0A .alias..aligns..
005150: 61 6C 6C 0D 0A 61 6C 6C 6F 63 61 74 65 0D 0A 61 all..allocate..a
005160: 6C 6C 6F 63 61 74 65 64 0D 0A 61 6C 6C 6F 63 61 llocated..alloca
005170: 74 65 73 0D 0A 61 6C 6C 6F 63 61 74 69 6E 67 0D tes..allocating.
005180: 0A 61 6C 6C 6F 63 61 74 69 6F 6E 0D 0A 61 6C 6C .allocation..all
005190: 6F 63 61 74 69 6F 6E 73 0D 0A 61 6C 6C 6F 77 0D ocations..allow.
0051A0: 0A 61 6C 6C 6F 77 65 64 0D 0A 61 6C 6C 6F 77 69 .allowed..allowi
0051B0: 6E 67 0D 0A 61 6C 6C 6F 77 73 0D 0A 61 6C 6F 6E ng..allows..alon
0051C0: 65 0D 0A 61 6C 6F 6E 67 0D 0A 61 6C 70 68 61 62 e..along..alphab
0051D0: 65 74 0D 0A 61 6C 70 68 61 62 65 74 69 63 0D 0A et..alphabetic..
0051E0: 61 6C 70 68 61 62 65 74 69 63 73 0D 0A 61 6C 72 alphabetics..alr
0051F0: 65 61 64 79 0D 0A 61 6C 73 6F 0D 0A 61 6C 74 65 eady..also..alte
005200: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
005210: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
005220: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
005230: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
005240: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
005250: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
005260: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
005270: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
005280: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
005290: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0052A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0052B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0052C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0052D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0052E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0052F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
005300: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
005310: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
005320: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
005330: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
005340: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
005350: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
005360: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
005370: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
005380: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
005390: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0053A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0053B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0053C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0053D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0053E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0053F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
005400: 72 0D 0A 61 6C 74 65 72 65 64 0D 0A 61 6C 74 65 r..altered..alte
005410: 72 69 6E 67 0D 0A 61 6C 74 65 72 6E 61 74 65 0D ring..alternate.
005420: 0A 61 6C 74 65 72 6E 61 74 65 6C 79 0D 0A 61 6C .alternately..al
005430: 74 65 72 6E 61 74 69 76 65 0D 0A 61 6C 74 65 72 ternative..alter
005440: 73 0D 0A 61 6C 74 68 6F 75 67 68 0D 0A 61 6C 74 s..although..alt
005450: 6F 67 65 74 68 65 72 0D 0A 61 6C 77 61 79 73 0D ogether..always.
005460: 0A 61 6D 0D 0A 61 6D 65 72 69 63 61 6E 0D 0A 61 .am..american..a
005470: 6D 6F 6E 67 0D 0A 61 6D 6F 75 6E 74 0D 0A 61 6D mong..amount..am
005480: 6F 75 6E 74 73 0D 0A 61 6E 0D 0A 61 6E 61 6C 6F ounts..an..analo
005490: 67 6F 75 73 0D 0A 61 6E 61 6C 79 7A 65 72 0D 0A gous..analyzer..
0054A0: 61 6E 64 0D 0A 61 6E 6E 6F 75 6E 63 65 0D 0A 61 and..announce..a
0054B0: 6E 6E 6F 75 6E 63 65 6D 65 6E 74 0D 0A 61 6E 6E nnouncement..ann
0054C0: 6F 75 6E 63 65 6D 65 6E 74 73 0D 0A 61 6E 6F 74 ouncements..anot
0054D0: 68 65 72 0D 0A 61 6E 73 77 65 72 0D 0A 61 6E 73 her..answer..ans
0054E0: 77 65 72 69 6E 67 0D 0A 61 6E 74 69 63 69 70 61 wering..anticipa
0054F0: 74 65 0D 0A 61 6E 74 69 63 69 70 61 74 65 73 0D te..anticipates.
005500: 0A 61 6E 78 69 6F 75 73 0D 0A 61 6E 79 0D 0A 61 .anxious..any..a
005510: 6E 79 6F 6E 65 0D 0A 61 6E 79 74 68 69 6E 67 0D nyone..anything.
005520: 0A 61 6E 79 77 61 79 0D 0A 61 6E 79 77 68 65 72 .anyway..anywher
005530: 65 0D 0A 61 70 61 72 74 0D 0A 61 70 6F 73 74 72 e..apart..apostr
005540: 6F 70 68 65 0D 0A 61 70 70 61 72 65 6E 74 0D 0A ophe..apparent..
005550: 61 70 70 65 61 6C 69 6E 67 0D 0A 61 70 70 65 61 appealing..appea
005560: 72 0D 0A 61 70 70 65 61 72 61 6E 63 65 0D 0A 61 r..appearance..a
005570: 70 70 65 61 72 65 64 0D 0A 61 70 70 65 61 72 69 ppeared..appeari
005580: 6E 67 0D 0A 61 70 70 65 61 72 73 0D 0A 61 70 70 ng..appears..app
005590: 65 6E 64 0D 0A 61 70 70 65 6E 64 65 64 0D 0A 61 end..appended..a
0055A0: 70 70 65 6E 64 69 63 65 73 0D 0A 61 70 70 65 6E ppendices..appen
0055B0: 64 69 78 0D 0A 61 70 70 65 6E 64 73 0D 0A 61 70 dix..appends..ap
0055C0: 70 6C 69 63 61 62 6C 65 0D 0A 61 70 70 6C 69 63 plicable..applic
0055D0: 61 74 69 6F 6E 0D 0A 61 70 70 6C 69 63 61 74 69 ation..applicati
0055E0: 6F 6E 73 0D 0A 61 70 70 6C 69 65 64 0D 0A 61 70 ons..applied..ap
0055F0: 70 6C 79 0D 0A 61 70 70 6C 79 69 6E 67 0D 0A 61 ply..applying..a
005600: 42 3A 0D 0A 41 3A 54 52 4E 20 3C 24 31 20 20 20 B:..A:TRN <$1
005610: 20 20 20 20 20 20 3E 50 52 4F 4F 46 31 2E 54 4D >PROOF1.TM
005620: 50 20 7E 61 2D 7A 41 2D 5A 3A 2D 3A 27 20 3A 6E P ~a-zA-Z:-:' :n
005630: 0D 0A 41 3A 53 52 54 20 3C 50 52 4F 4F 46 31 2E ..A:SRT <PROOF1.
005640: 54 4D 50 20 3E 50 52 4F 4F 46 32 2E 54 4D 50 20 TMP >PROOF2.TMP
005650: 2D 55 0D 0A 45 52 41 20 20 20 20 50 52 4F 4F 46 -U..ERA PROOF
005660: 31 2E 54 4D 50 0D 0A 41 3A 4D 52 47 20 20 50 52 1.TMP..A:MRG PR
005670: 4F 4F 46 32 2E 54 4D 50 20 41 3A 44 49 43 54 20 OOF2.TMP A:DICT
005680: 2D 31 20 3E 50 52 4F 4F 46 33 2E 54 4D 50 0D 0A -1 >PROOF3.TMP..
005690: 45 52 41 20 20 20 20 50 52 4F 4F 46 32 2E 54 4D ERA PROOF2.TM
0056A0: 50 0D 0A 41 3A 45 44 54 20 20 50 52 4F 4F 46 33 P..A:EDT PROOF3
0056B0: 2E 54 4D 50 0D 0A 41 3A 4D 52 47 20 20 50 52 4F .TMP..A:MRG PRO
0056C0: 4F 46 33 2E 54 4D 50 20 41 3A 44 49 43 54 20 20 OF3.TMP A:DICT
0056D0: 20 20 3E 41 3A 44 49 43 54 2E 4E 45 57 0D 0A 45 >A:DICT.NEW..E
0056E0: 52 41 20 20 20 20 50 52 4F 4F 46 33 2E 54 4D 50 RA PROOF3.TMP
0056F0: 0D 0A 0D 0A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
005700: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
005710: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
005720: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
005730: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
005740: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
005750: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
005760: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
005770: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
005780: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
005790: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0057A0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0057B0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0057C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0057D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0057E0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0057F0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
005800: 70 70 72 65 63 69 61 74 65 0D 0A 61 70 70 72 6F ppreciate..appro
005810: 61 63 68 0D 0A 61 70 70 72 6F 61 63 68 65 73 0D ach..approaches.
005820: 0A 61 70 70 72 6F 70 72 69 61 74 65 0D 0A 61 70 .appropriate..ap
005830: 70 72 6F 70 72 69 61 74 65 6C 79 0D 0A 61 70 70 propriately..app
005840: 72 6F 78 69 6D 61 74 65 64 0D 0A 61 70 70 72 6F roximated..appro
005850: 78 69 6D 61 74 65 6C 79 0D 0A 61 72 62 69 74 72 ximately..arbitr
005860: 61 72 69 6C 79 0D 0A 61 72 62 69 74 72 61 72 79 arily..arbitrary
005870: 0D 0A 61 72 63 68 69 74 65 63 74 75 72 65 0D 0A ..architecture..
005880: 61 72 65 0D 0A 61 72 65 61 0D 0A 61 72 65 61 73 are..area..areas
005890: 0D 0A 61 72 67 75 6D 65 6E 74 0D 0A 61 72 67 75 ..argument..argu
0058A0: 6D 65 6E 74 73 0D 0A 61 72 69 73 65 73 0D 0A 61 ments..arises..a
0058B0: 72 69 74 68 6D 65 74 69 63 0D 0A 61 72 6F 75 6E rithmetic..aroun
0058C0: 64 0D 0A 61 72 72 61 6E 67 65 6D 65 6E 74 0D 0A d..arrangement..
0058D0: 61 72 72 61 6E 67 65 73 0D 0A 61 72 72 61 6E 67 arranges..arrang
0058E0: 69 6E 67 0D 0A 61 72 72 61 79 0D 0A 61 72 72 61 ing..array..arra
0058F0: 79 73 0D 0A 61 72 72 69 76 65 0D 0A 61 72 74 69 ys..arrive..arti
005900: 63 6C 65 0D 0A 61 72 74 69 63 6C 65 73 0D 0A 61 cle..articles..a
005910: 73 0D 0A 61 73 63 65 6E 64 69 6E 67 0D 0A 61 73 s..ascending..as
005920: 63 65 72 74 61 69 6E 0D 0A 61 73 69 64 65 0D 0A certain..aside..
005930: 61 73 6B 65 64 0D 0A 61 73 6B 69 6E 67 0D 0A 61 asked..asking..a
005940: 73 70 65 63 74 73 0D 0A 61 73 73 65 6D 62 6C 65 spects..assemble
005950: 0D 0A 61 73 73 65 6D 62 6C 65 64 0D 0A 61 73 73 ..assembled..ass
005960: 65 6D 62 6C 65 72 0D 0A 61 73 73 65 6D 62 6C 65 embler..assemble
005970: 72 73 0D 0A 61 73 73 65 6D 62 6C 65 73 0D 0A 61 rs..assembles..a
005980: 73 73 65 6D 62 6C 69 6E 67 0D 0A 61 73 73 65 6D ssembling..assem
005990: 62 6C 79 0D 0A 61 73 73 65 73 73 65 64 0D 0A 61 bly..assessed..a
0059A0: 73 73 69 67 6E 0D 0A 61 73 73 69 67 6E 65 64 0D ssign..assigned.
0059B0: 0A 61 73 73 69 67 6E 6D 65 6E 74 0D 0A 61 73 73 .assignment..ass
0059C0: 69 67 6E 6D 65 6E 74 73 0D 0A 61 73 73 69 67 6E ignments..assign
0059D0: 73 0D 0A 61 73 73 69 73 74 0D 0A 61 73 73 69 73 s..assist..assis
0059E0: 74 65 64 0D 0A 61 73 73 6F 63 69 61 74 65 0D 0A ted..associate..
0059F0: 61 73 73 6F 63 69 61 74 65 64 0D 0A 61 73 73 6F associated..asso
005A00: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
005A10: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
005A20: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
005A30: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
005A40: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
005A50: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
005A60: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
005A70: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
005A80: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
005A90: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
005AA0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
005AB0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
005AC0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
005AD0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
005AE0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
005AF0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
005B00: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
005B10: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
005B20: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
005B30: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
005B40: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
005B50: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
005B60: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
005B70: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
005B80: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
005B90: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
005BA0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
005BB0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
005BC0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
005BD0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
005BE0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
005BF0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
005C00: 63 69 61 74 65 73 0D 0A 61 73 73 75 6D 65 0D 0A ciates..assume..
005C10: 61 73 73 75 6D 65 64 0D 0A 61 73 73 75 6D 65 73 assumed..assumes
005C20: 0D 0A 61 73 73 75 6D 69 6E 67 0D 0A 61 73 73 75 ..assuming..assu
005C30: 6D 70 74 69 6F 6E 0D 0A 61 73 73 75 6D 70 74 69 mption..assumpti
005C40: 6F 6E 73 0D 0A 61 73 74 65 72 69 73 6B 0D 0A 61 ons..asterisk..a
005C50: 74 0D 0A 61 74 74 61 63 68 65 64 0D 0A 61 74 74 t..attached..att
005C60: 65 6D 70 74 0D 0A 61 74 74 65 6D 70 74 69 6E 67 empt..attempting
005C70: 0D 0A 61 74 74 65 6D 70 74 73 0D 0A 61 74 74 65 ..attempts..atte
005C80: 6E 74 69 6F 6E 0D 0A 61 75 64 69 62 6C 65 0D 0A ntion..audible..
005C90: 61 75 67 6D 65 6E 74 65 64 0D 0A 61 75 74 68 6F augmented..autho
005CA0: 72 0D 0A 61 75 74 6F 0D 0A 61 75 74 6F 6D 61 74 r..auto..automat
005CB0: 69 63 0D 0A 61 75 74 6F 6D 61 74 69 63 61 6C 6C ic..automaticall
005CC0: 79 0D 0A 61 75 78 69 6C 69 61 72 79 0D 0A 61 76 y..auxiliary..av
005CD0: 61 69 6C 61 62 69 6C 69 74 79 0D 0A 61 76 61 69 ailability..avai
005CE0: 6C 61 62 6C 65 0D 0A 61 76 6F 69 64 0D 0A 61 76 lable..avoid..av
005CF0: 6F 69 64 65 64 0D 0A 61 76 6F 69 64 69 6E 67 0D oided..avoiding.
005D00: 0A 61 77 61 69 74 0D 0A 61 77 61 72 65 0D 0A 61 .await..aware..a
005D10: 77 61 79 0D 0A 61 77 6B 77 61 72 64 0D 0A 62 0D way..awkward..b.
005D20: 0A 62 61 63 6B 0D 0A 62 61 63 6B 67 72 6F 75 6E .back..backgroun
005D30: 64 0D 0A 62 61 63 6B 69 6E 67 0D 0A 62 61 63 6B d..backing..back
005D40: 73 6C 61 73 68 65 73 0D 0A 62 61 63 6B 73 70 61 slashes..backspa
005D50: 63 65 0D 0A 62 61 63 6B 73 70 61 63 65 73 0D 0A ce..backspaces..
005D60: 62 61 63 6B 75 70 0D 0A 62 61 64 6C 79 0D 0A 62 backup..badly..b
005D70: 61 72 0D 0A 62 61 72 65 0D 0A 62 61 72 72 69 65 ar..bare..barrie
005D80: 72 0D 0A 62 61 73 65 0D 0A 62 61 73 65 64 0D 0A r..base..based..
005D90: 62 61 73 69 63 0D 0A 62 65 0D 0A 62 65 61 72 73 basic..be..bears
005DA0: 0D 0A 62 65 63 61 6D 65 0D 0A 62 65 63 61 75 73 ..became..becaus
005DB0: 65 0D 0A 62 65 63 6F 6D 65 0D 0A 62 65 63 6F 6D e..become..becom
005DC0: 65 73 0D 0A 62 65 65 6E 0D 0A 62 65 66 6F 72 65 es..been..before
005DD0: 0D 0A 62 65 66 6F 72 65 68 61 6E 64 0D 0A 62 65 ..beforehand..be
005DE0: 67 61 6E 0D 0A 62 65 67 69 6E 0D 0A 62 65 67 69 gan..begin..begi
005DF0: 6E 6E 69 6E 67 0D 0A 62 65 67 69 6E 73 0D 0A 62 nning..begins..b
005E00: 0D 0A 2D 0D 0A 2D 2D 0D 0A 61 0D 0A 61 62 62 72 ..-..--..a..abbr
005E10: 65 76 69 61 74 65 64 0D 0A 61 62 69 6C 69 74 79 eviated..ability
005E20: 0D 0A 61 62 6C 65 0D 0A 61 62 6E 6F 72 6D 61 6C ..able..abnormal
005E30: 0D 0A 61 62 6F 72 74 0D 0A 61 62 6F 72 74 65 64 ..abort..aborted
005E40: 0D 0A 61 62 6F 72 74 69 6E 67 0D 0A 61 62 6F 72 ..aborting..abor
005E50: 74 73 0D 0A 61 62 6F 75 74 0D 0A 61 62 6F 76 65 ts..about..above
005E60: 0D 0A 61 62 73 65 6E 63 65 0D 0A 61 62 73 6F 6C ..absence..absol
005E70: 75 74 65 0D 0A 61 62 73 6F 6C 75 74 65 6C 79 0D ute..absolutely.
005E80: 0A 61 62 75 73 65 0D 0A 61 63 63 65 6E 74 0D 0A .abuse..accent..
005E90: 61 63 63 65 70 74 0D 0A 61 63 63 65 70 74 61 62 accept..acceptab
005EA0: 6C 65 0D 0A 61 63 63 65 70 74 61 6E 63 65 0D 0A le..acceptance..
005EB0: 61 63 63 65 70 74 65 64 0D 0A 61 63 63 65 70 74 accepted..accept
005EC0: 69 6E 67 0D 0A 61 63 63 65 70 74 73 0D 0A 61 63 ing..accepts..ac
005ED0: 63 65 73 73 0D 0A 61 63 63 65 73 73 65 64 0D 0A cess..accessed..
005EE0: 61 63 63 65 73 73 65 73 0D 0A 61 63 63 65 73 73 accesses..access
005EF0: 69 6E 67 0D 0A 61 63 63 69 64 65 6E 74 61 6C 0D ing..accidental.
005F00: 0A 61 63 63 69 64 65 6E 74 61 6C 6C 79 0D 0A 61 .accidentally..a
005F10: 63 63 6F 6D 6D 6F 64 61 74 65 0D 0A 61 63 63 6F ccommodate..acco
005F20: 6D 70 61 6E 69 65 73 0D 0A 61 63 63 6F 6D 70 6C mpanies..accompl
005F30: 69 73 68 65 64 0D 0A 61 63 63 6F 6D 70 6C 69 73 ished..accomplis
005F40: 68 65 73 0D 0A 61 63 63 6F 72 64 69 6E 67 0D 0A hes..according..
005F50: 61 63 63 6F 72 64 69 6E 67 6C 79 0D 0A 61 63 63 accordingly..acc
005F60: 6F 75 6E 74 0D 0A 61 63 63 75 6D 75 6C 61 74 6F ount..accumulato
005F70: 72 0D 0A 61 63 63 75 72 61 63 79 0D 0A 61 63 68 r..accuracy..ach
005F80: 69 65 76 65 0D 0A 61 63 68 69 65 76 65 64 0D 0A ieve..achieved..
005F90: 61 63 68 69 65 76 69 6E 67 0D 0A 61 63 71 75 69 achieving..acqui
005FA0: 72 65 64 0D 0A 61 63 72 6F 6E 79 6D 73 0D 0A 61 red..acronyms..a
005FB0: 63 72 6F 73 73 0D 0A 61 63 74 69 6F 6E 0D 0A 61 cross..action..a
005FC0: 63 74 69 6F 6E 73 0D 0A 61 63 74 69 76 61 74 65 ctions..activate
005FD0: 73 0D 0A 61 63 74 69 76 69 74 69 65 73 0D 0A 61 s..activities..a
005FE0: 63 74 69 76 69 74 79 0D 0A 61 63 74 75 61 6C 0D ctivity..actual.
005FF0: 0A 61 63 74 75 61 6C 6C 79 0D 0A 61 64 61 70 74 .actually..adapt
006000: 54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 00 00 00 Track-Info......
006010: 05 00 01 00 02 09 52 E5 05 00 41 02 00 00 00 02 ......R...A.....
006020: 05 00 46 02 00 00 00 02 05 00 42 02 00 00 00 02 ..F.......B.....
006030: 05 00 47 02 00 00 00 02 05 00 43 02 00 00 00 02 ..G.......C.....
006040: 05 00 48 02 00 00 00 02 05 00 44 02 00 00 00 02 ..H.......D.....
006050: 05 00 49 02 00 00 00 02 05 00 45 02 00 00 00 02 ..I.......E.....
006060: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
006070: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
006080: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
006090: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0060A0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0060B0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0060C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0060D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0060E0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0060F0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
006100: 65 67 75 6E 0D 0A 62 65 68 61 76 69 6F 72 0D 0A egun..behavior..
006110: 62 65 68 69 6E 64 0D 0A 62 65 69 6E 67 0D 0A 62 behind..being..b
006120: 65 6C 6C 0D 0A 62 65 6C 6C 73 0D 0A 62 65 6C 6F ell..bells..belo
006130: 77 0D 0A 62 65 6E 63 68 6D 61 72 6B 0D 0A 62 65 w..benchmark..be
006140: 6E 65 66 69 74 73 0D 0A 62 65 72 73 65 72 6B 0D nefits..berserk.
006150: 0A 62 65 73 69 64 65 73 0D 0A 62 65 73 74 0D 0A .besides..best..
006160: 62 65 74 74 65 72 0D 0A 62 65 74 77 65 65 6E 0D better..between.
006170: 0A 62 65 79 6F 6E 64 0D 0A 62 69 6E 61 72 79 0D .beyond..binary.
006180: 0A 62 69 6E 64 69 6E 67 0D 0A 62 69 74 0D 0A 62 .binding..bit..b
006190: 69 74 73 0D 0A 62 6C 61 6E 6B 0D 0A 62 6C 61 6E its..blank..blan
0061A0: 6B 73 0D 0A 62 6C 6F 63 6B 0D 0A 62 6C 6F 63 6B ks..block..block
0061B0: 69 6E 67 0D 0A 62 6C 6F 63 6B 73 0D 0A 62 6C 6F ing..blocks..blo
0061C0: 77 73 0D 0A 62 6F 64 79 0D 0A 62 6F 6E 65 73 0D ws..body..bones.
0061D0: 0A 62 6F 6F 6B 0D 0A 62 6F 6F 6B 73 0D 0A 62 6F .book..books..bo
0061E0: 6F 6D 69 6E 67 0D 0A 62 6F 6F 74 0D 0A 62 6F 6F oming..boot..boo
0061F0: 74 69 6E 67 0D 0A 62 6F 72 72 6F 77 0D 0A 62 6F ting..borrow..bo
006200: 74 68 0D 0A 62 6F 74 68 65 72 0D 0A 62 6F 74 74 th..bother..bott
006210: 6F 6D 0D 0A 62 6F 75 6E 64 73 0D 0A 62 6F 78 0D om..bounds..box.
006220: 0A 62 72 61 63 65 73 0D 0A 62 72 61 63 6B 65 74 .braces..bracket
006230: 0D 0A 62 72 61 63 6B 65 74 73 0D 0A 62 72 61 6E ..brackets..bran
006240: 63 68 0D 0A 62 72 65 61 6B 0D 0A 62 72 65 61 6B ch..break..break
006250: 73 0D 0A 62 72 65 76 69 74 79 0D 0A 62 72 69 65 s..brevity..brie
006260: 66 0D 0A 62 72 69 65 66 6C 79 0D 0A 62 72 69 6E f..briefly..brin
006270: 67 73 0D 0A 62 72 6F 6B 65 6E 0D 0A 62 72 6F 75 gs..broken..brou
006280: 67 68 74 0D 0A 62 72 6F 77 73 65 0D 0A 62 75 66 ght..browse..buf
006290: 66 65 72 0D 0A 62 75 66 66 65 72 69 6E 67 0D 0A fer..buffering..
0062A0: 62 75 66 66 65 72 73 0D 0A 62 75 67 0D 0A 62 75 buffers..bug..bu
0062B0: 67 73 0D 0A 62 75 69 6C 64 0D 0A 62 75 69 6C 64 gs..build..build
0062C0: 69 6E 67 0D 0A 62 75 69 6C 64 73 0D 0A 62 75 69 ing..builds..bui
0062D0: 6C 74 0D 0A 62 75 73 69 6E 65 73 73 0D 0A 62 75 lt..business..bu
0062E0: 74 0D 0A 62 75 74 74 6F 6E 0D 0A 62 75 79 0D 0A t..button..buy..
0062F0: 62 75 79 65 72 0D 0A 62 79 0D 0A 62 79 65 0D 0A buyer..by..bye..
006300: 75 74 69 6E 67 0D 0A 63 6F 6E 73 74 72 61 69 6E uting..constrain
006310: 74 0D 0A 63 6F 6E 74 61 69 6E 0D 0A 63 6F 6E 74 t..contain..cont
006320: 61 69 6E 65 64 0D 0A 63 6F 6E 74 61 69 6E 69 6E ained..containin
006330: 67 0D 0A 63 6F 6E 74 61 69 6E 73 0D 0A 63 6F 6E g..contains..con
006340: 74 65 6E 64 0D 0A 63 6F 6E 74 65 6E 74 0D 0A 63 tend..content..c
006350: 6F 6E 74 65 6E 74 73 0D 0A 63 6F 6E 74 65 78 74 ontents..context
006360: 0D 0A 63 6F 6E 74 65 78 74 73 0D 0A 63 6F 6E 74 ..contexts..cont
006370: 69 67 75 6F 75 73 0D 0A 63 6F 6E 74 69 6E 75 61 iguous..continua
006380: 62 6C 65 0D 0A 63 6F 6E 74 69 6E 75 65 0D 0A 63 ble..continue..c
006390: 6F 6E 74 69 6E 75 65 64 0D 0A 63 6F 6E 74 69 6E ontinued..contin
0063A0: 75 65 73 0D 0A 63 6F 6E 74 69 6E 75 69 6E 67 0D ues..continuing.
0063B0: 0A 63 6F 6E 74 69 6E 75 6F 75 73 0D 0A 63 6F 6E .continuous..con
0063C0: 74 72 6F 6C 0D 0A 63 6F 6E 74 72 6F 6C 6C 65 64 trol..controlled
0063D0: 0D 0A 63 6F 6E 74 72 6F 6C 6C 65 72 0D 0A 63 6F ..controller..co
0063E0: 6E 74 72 6F 6C 6C 69 6E 67 0D 0A 63 6F 6E 74 72 ntrolling..contr
0063F0: 6F 6C 73 0D 0A 63 6F 6E 76 65 6E 69 65 6E 74 0D ols..convenient.
006400: 0A 63 6F 6E 76 65 6E 74 69 6F 6E 0D 0A 63 6F 6E .convention..con
006410: 76 65 6E 74 69 6F 6E 61 6C 0D 0A 63 6F 6E 76 65 ventional..conve
006420: 6E 74 69 6F 6E 73 0D 0A 63 6F 6E 76 65 72 73 69 ntions..conversi
006430: 6E 67 0D 0A 63 6F 6E 76 65 72 73 69 6F 6E 0D 0A ng..conversion..
006440: 63 6F 6E 76 65 72 74 0D 0A 63 6F 6E 76 65 72 74 convert..convert
006450: 65 64 0D 0A 63 6F 6E 76 65 72 74 69 6E 67 0D 0A ed..converting..
006460: 63 6F 6E 76 65 72 74 73 0D 0A 63 6F 6E 76 69 6E converts..convin
006470: 63 65 64 0D 0A 63 6F 6F 70 65 72 61 74 65 0D 0A ced..cooperate..
006480: 63 6F 6F 70 65 72 61 74 69 6F 6E 0D 0A 63 6F 70 cooperation..cop
006490: 69 65 64 0D 0A 63 6F 70 69 65 73 0D 0A 63 6F 70 ied..copies..cop
0064A0: 79 0D 0A 63 6F 70 79 69 6E 67 0D 0A 63 6F 70 79 y..copying..copy
0064B0: 72 69 67 68 74 0D 0A 63 6F 70 79 72 69 67 68 74 right..copyright
0064C0: 65 64 0D 0A 63 6F 72 65 0D 0A 63 6F 72 72 65 63 ed..core..correc
0064D0: 74 0D 0A 63 6F 72 72 65 63 74 65 64 0D 0A 63 6F t..corrected..co
0064E0: 72 72 65 63 74 69 6F 6E 0D 0A 63 6F 72 72 65 63 rrection..correc
0064F0: 74 69 6F 6E 73 0D 0A 63 6F 72 72 65 63 74 6C 79 tions..correctly
006500: 62 79 70 61 73 73 0D 0A 62 79 74 65 0D 0A 62 79 bypass..byte..by
006510: 74 65 73 0D 0A 63 0D 0A 63 61 6C 63 75 6C 61 74 tes..c..calculat
006520: 65 64 0D 0A 63 61 6C 63 75 6C 61 74 65 73 0D 0A ed..calculates..
006530: 63 61 6C 63 75 6C 61 74 69 6F 6E 73 0D 0A 63 61 calculations..ca
006540: 6C 6C 0D 0A 63 61 6C 6C 65 64 0D 0A 63 61 6C 6C ll..called..call
006550: 65 72 0D 0A 63 61 6C 6C 65 72 27 73 0D 0A 63 61 er..caller's..ca
006560: 6C 6C 69 6E 67 0D 0A 63 61 6C 6C 73 0D 0A 63 61 lling..calls..ca
006570: 6D 65 0D 0A 63 61 6D 6F 75 66 6C 61 67 65 73 0D me..camouflages.
006580: 0A 63 61 6E 0D 0A 63 61 6E 27 74 0D 0A 63 61 6E .can..can't..can
006590: 63 65 6C 0D 0A 63 61 6E 63 65 6C 73 0D 0A 63 61 cel..cancels..ca
0065A0: 6E 6E 6F 74 0D 0A 63 61 70 61 62 69 6C 69 74 69 nnot..capabiliti
0065B0: 65 73 0D 0A 63 61 70 61 62 69 6C 69 74 79 0D 0A es..capability..
0065C0: 63 61 70 61 62 6C 65 0D 0A 63 61 70 61 63 69 74 capable..capacit
0065D0: 79 0D 0A 63 61 70 69 74 61 6C 69 7A 69 6E 67 0D y..capitalizing.
0065E0: 0A 63 61 70 73 0D 0A 63 61 70 74 75 72 65 0D 0A .caps..capture..
0065F0: 63 61 72 65 0D 0A 63 61 72 65 66 75 6C 0D 0A 63 care..careful..c
006600: 61 72 72 69 61 67 65 0D 0A 63 61 72 72 79 0D 0A arriage..carry..
006610: 63 61 73 63 61 64 65 0D 0A 63 61 73 65 0D 0A 63 cascade..case..c
006620: 61 73 65 73 0D 0A 63 61 75 67 68 74 0D 0A 63 61 ases..caught..ca
006630: 75 73 65 0D 0A 63 61 75 73 65 64 0D 0A 63 61 75 use..caused..cau
006640: 73 65 73 0D 0A 63 61 75 73 69 6E 67 0D 0A 63 65 ses..causing..ce
006650: 61 73 65 73 0D 0A 63 65 6E 74 65 72 0D 0A 63 65 ases..center..ce
006660: 6E 74 65 72 65 64 0D 0A 63 65 6E 74 65 72 69 6E ntered..centerin
006670: 67 0D 0A 63 65 6E 74 65 72 73 0D 0A 63 65 72 74 g..centers..cert
006680: 61 69 6E 0D 0A 63 65 73 73 61 74 69 6F 6E 0D 0A ain..cessation..
006690: 63 68 61 69 6E 0D 0A 63 68 61 69 6E 73 0D 0A 63 chain..chains..c
0066A0: 68 61 6E 63 65 0D 0A 63 68 61 6E 67 65 0D 0A 63 hance..change..c
0066B0: 68 61 6E 67 65 64 0D 0A 63 68 61 6E 67 65 73 0D hanged..changes.
0066C0: 0A 63 68 61 6E 67 69 6E 67 0D 0A 63 68 61 70 74 .changing..chapt
0066D0: 65 72 0D 0A 63 68 61 70 74 65 72 73 0D 0A 63 68 er..chapters..ch
0066E0: 61 72 61 63 74 65 72 0D 0A 63 68 61 72 61 63 74 aracter..charact
0066F0: 65 72 73 0D 0A 63 68 61 72 74 0D 0A 63 68 65 63 ers..chart..chec
006700: 0D 0A 63 6F 72 72 65 73 70 6F 6E 64 0D 0A 63 6F ..correspond..co
006710: 72 72 65 73 70 6F 6E 64 65 64 0D 0A 63 6F 72 72 rresponded..corr
006720: 65 73 70 6F 6E 64 69 6E 67 0D 0A 63 6F 72 72 65 esponding..corre
006730: 73 70 6F 6E 64 73 0D 0A 63 6F 72 72 75 70 74 65 sponds..corrupte
006740: 64 0D 0A 63 6F 72 72 75 70 74 69 6E 67 0D 0A 63 d..corrupting..c
006750: 6F 73 74 0D 0A 63 6F 73 74 73 0D 0A 63 6F 75 6C ost..costs..coul
006760: 64 0D 0A 63 6F 75 6C 64 6E 27 74 0D 0A 63 6F 75 d..couldn't..cou
006770: 6E 74 0D 0A 63 6F 75 6E 74 65 64 0D 0A 63 6F 75 nt..counted..cou
006780: 6E 74 65 72 0D 0A 63 6F 75 6E 74 65 72 70 61 72 nter..counterpar
006790: 74 73 0D 0A 63 6F 75 6E 74 69 6E 67 0D 0A 63 6F ts..counting..co
0067A0: 75 6E 74 73 0D 0A 63 6F 75 72 73 65 0D 0A 63 6F unts..course..co
0067B0: 76 65 72 65 64 0D 0A 63 6F 76 65 72 73 0D 0A 63 vered..covers..c
0067C0: 72 65 61 74 65 0D 0A 63 72 65 61 74 65 64 0D 0A reate..created..
0067D0: 63 72 65 61 74 65 73 0D 0A 63 72 65 61 74 69 6E creates..creatin
0067E0: 67 0D 0A 63 72 65 61 74 69 6F 6E 0D 0A 63 72 65 g..creation..cre
0067F0: 64 69 74 65 64 0D 0A 63 72 69 74 69 63 61 6C 0D dited..critical.
006800: 0A 63 72 79 70 74 0D 0A 63 72 79 70 74 69 63 0D .crypt..cryptic.
006810: 0A 63 75 6D 75 6C 61 74 69 76 65 0D 0A 63 75 72 .cumulative..cur
006820: 72 65 6E 74 0D 0A 63 75 72 72 65 6E 74 6C 79 0D rent..currently.
006830: 0A 63 75 72 73 6F 72 79 0D 0A 63 75 73 74 6F 6D .cursory..custom
006840: 0D 0A 63 75 73 74 6F 6D 61 72 79 0D 0A 63 75 73 ..customary..cus
006850: 74 6F 6D 69 7A 65 0D 0A 63 75 73 74 6F 6D 69 7A tomize..customiz
006860: 65 64 0D 0A 63 75 74 0D 0A 63 79 63 6C 69 63 0D ed..cut..cyclic.
006870: 0A 64 0D 0A 64 61 69 6C 79 0D 0A 64 61 6D 61 67 .d..daily..damag
006880: 65 64 0D 0A 64 61 6E 67 65 72 0D 0A 64 61 74 61 ed..danger..data
006890: 0D 0A 64 61 74 65 0D 0A 64 65 2D 61 6C 6C 6F 63 ..date..de-alloc
0068A0: 61 74 65 64 0D 0A 64 65 61 64 0D 0A 64 65 61 64 ated..dead..dead
0068B0: 6C 69 6E 65 0D 0A 64 65 61 6C 0D 0A 64 65 61 6C line..deal..deal
0068C0: 69 6E 67 0D 0A 64 65 61 6C 73 0D 0A 64 65 61 6C ing..deals..deal
0068D0: 74 0D 0A 64 65 61 72 0D 0A 64 65 62 6C 6F 63 6B t..dear..deblock
0068E0: 69 6E 67 0D 0A 64 65 62 74 0D 0A 64 65 62 75 67 ing..debt..debug
0068F0: 67 65 72 0D 0A 64 65 62 75 67 67 69 6E 67 0D 0A ger..debugging..
006900: 6B 0D 0A 63 68 65 63 6B 65 64 0D 0A 63 68 65 63 k..checked..chec
006910: 6B 65 72 0D 0A 63 68 65 63 6B 69 6E 67 0D 0A 63 ker..checking..c
006920: 68 65 63 6B 73 0D 0A 63 68 69 65 66 0D 0A 63 68 hecks..chief..ch
006930: 69 70 0D 0A 63 68 6F 69 63 65 0D 0A 63 68 6F 69 ip..choice..choi
006940: 63 65 73 0D 0A 63 68 6F 6B 65 73 0D 0A 63 68 6F ces..chokes..cho
006950: 6F 73 65 0D 0A 63 68 6F 6F 73 69 6E 67 0D 0A 63 ose..choosing..c
006960: 68 6F 72 65 0D 0A 63 68 6F 73 65 0D 0A 63 68 6F hore..chose..cho
006970: 73 65 6E 0D 0A 63 69 72 63 75 6D 66 6C 65 78 0D sen..circumflex.
006980: 0A 63 69 72 63 75 6D 73 74 61 6E 63 65 73 0D 0A .circumstances..
006990: 63 69 74 65 0D 0A 63 6C 61 69 6D 65 64 0D 0A 63 cite..claimed..c
0069A0: 6C 61 72 69 74 79 0D 0A 63 6C 61 73 73 0D 0A 63 larity..class..c
0069B0: 6C 65 61 6E 0D 0A 63 6C 65 61 72 0D 0A 63 6C 65 lean..clear..cle
0069C0: 61 72 65 64 0D 0A 63 6C 65 61 72 69 6E 67 0D 0A ared..clearing..
0069D0: 63 6C 65 61 72 6C 79 0D 0A 63 6C 65 61 72 73 0D clearly..clears.
0069E0: 0A 63 6C 6F 73 65 0D 0A 63 6C 6F 73 65 64 0D 0A .close..closed..
0069F0: 63 6C 6F 73 65 6C 79 0D 0A 63 6C 6F 73 65 73 0D closely..closes.
006A00: 0A 63 6C 6F 73 69 6E 67 0D 0A 63 6F 64 65 0D 0A .closing..code..
006A10: 63 6F 64 65 64 0D 0A 63 6F 64 65 73 0D 0A 63 6F coded..codes..co
006A20: 65 78 69 73 74 0D 0A 63 6F 6C 6C 61 62 6F 72 61 exist..collabora
006A30: 74 69 6F 6E 0D 0A 63 6F 6C 6C 61 70 73 65 0D 0A tion..collapse..
006A40: 63 6F 6C 6C 61 70 73 65 64 0D 0A 63 6F 6C 6C 61 collapsed..colla
006A50: 70 73 65 73 0D 0A 63 6F 6C 6C 61 70 73 69 6E 67 pses..collapsing
006A60: 0D 0A 63 6F 6C 6C 65 63 74 69 6F 6E 0D 0A 63 6F ..collection..co
006A70: 6C 6F 6E 0D 0A 63 6F 6C 6F 6E 73 0D 0A 63 6F 6C lon..colons..col
006A80: 75 6D 6E 0D 0A 63 6F 6C 75 6D 6E 73 0D 0A 63 6F umn..columns..co
006A90: 6D 62 69 6E 61 74 69 6F 6E 0D 0A 63 6F 6D 62 69 mbination..combi
006AA0: 6E 61 74 69 6F 6E 73 0D 0A 63 6F 6D 62 69 6E 65 nations..combine
006AB0: 0D 0A 63 6F 6D 62 69 6E 65 64 0D 0A 63 6F 6D 62 ..combined..comb
006AC0: 69 6E 65 73 0D 0A 63 6F 6D 62 69 6E 69 6E 67 0D ines..combining.
006AD0: 0A 63 6F 6D 65 0D 0A 63 6F 6D 65 73 0D 0A 63 6F .come..comes..co
006AE0: 6D 66 6F 72 74 61 62 6C 65 0D 0A 63 6F 6D 69 6E mfortable..comin
006AF0: 67 0D 0A 63 6F 6D 6D 61 0D 0A 63 6F 6D 6D 61 6E g..comma..comman
006B00: 64 65 63 65 6D 62 65 72 0D 0A 64 65 63 69 64 65 december..decide
006B10: 0D 0A 64 65 63 69 64 65 64 0D 0A 64 65 63 69 64 ..decided..decid
006B20: 65 73 0D 0A 64 65 63 69 6D 61 6C 0D 0A 64 65 63 es..decimal..dec
006B30: 69 70 68 65 72 0D 0A 64 65 63 69 73 69 6F 6E 73 ipher..decisions
006B40: 0D 0A 64 65 63 6C 61 72 61 74 69 6F 6E 0D 0A 64 ..declaration..d
006B50: 65 63 6C 61 72 61 74 69 6F 6E 73 0D 0A 64 65 63 eclarations..dec
006B60: 6C 61 72 65 0D 0A 64 65 63 6C 61 72 65 64 0D 0A lare..declared..
006B70: 64 65 63 6C 61 72 65 73 0D 0A 64 65 63 72 65 61 declares..decrea
006B80: 73 65 0D 0A 64 65 63 72 65 61 73 65 64 0D 0A 64 se..decreased..d
006B90: 65 63 72 65 61 73 65 73 0D 0A 64 65 63 72 65 6D ecreases..decrem
006BA0: 65 6E 74 0D 0A 64 65 63 72 65 6D 65 6E 74 73 0D ent..decrements.
006BB0: 0A 64 65 64 69 63 61 74 65 64 0D 0A 64 65 66 61 .dedicated..defa
006BC0: 75 6C 74 0D 0A 64 65 66 61 75 6C 74 73 0D 0A 64 ult..defaults..d
006BD0: 65 66 69 6E 65 0D 0A 64 65 66 69 6E 65 64 0D 0A efine..defined..
006BE0: 64 65 66 69 6E 65 73 0D 0A 64 65 66 69 6E 69 6E defines..definin
006BF0: 67 0D 0A 64 65 66 69 6E 69 74 69 6F 6E 0D 0A 64 g..definition..d
006C00: 65 66 69 6E 69 74 69 6F 6E 73 0D 0A 64 65 66 69 efinitions..defi
006C10: 6E 69 74 69 76 65 0D 0A 64 65 6C 61 79 0D 0A 64 nitive..delay..d
006C20: 65 6C 65 74 65 0D 0A 64 65 6C 65 74 65 64 0D 0A elete..deleted..
006C30: 64 65 6C 65 74 65 73 0D 0A 64 65 6C 65 74 69 6E deletes..deletin
006C40: 67 0D 0A 64 65 6C 69 67 68 74 0D 0A 64 65 6C 69 g..delight..deli
006C50: 6D 69 74 0D 0A 64 65 6C 69 6D 69 74 65 64 0D 0A mit..delimited..
006C60: 64 65 6C 69 6D 69 74 65 72 0D 0A 64 65 6C 69 6D delimiter..delim
006C70: 69 74 65 72 73 0D 0A 64 65 6C 69 6D 69 74 73 0D iters..delimits.
006C80: 0A 64 65 6C 69 76 65 72 65 64 0D 0A 64 65 6D 61 .delivered..dema
006C90: 6E 64 69 6E 67 0D 0A 64 65 6D 6F 6E 73 74 72 61 nding..demonstra
006CA0: 74 65 64 0D 0A 64 65 6E 69 65 64 0D 0A 64 65 6E ted..denied..den
006CB0: 69 65 73 0D 0A 64 65 6E 73 65 72 0D 0A 64 65 6E ies..denser..den
006CC0: 73 69 74 79 0D 0A 64 65 6E 79 0D 0A 64 65 70 65 sity..deny..depe
006CD0: 6E 64 0D 0A 64 65 70 65 6E 64 65 6E 63 65 0D 0A nd..dependence..
006CE0: 64 65 70 65 6E 64 65 6E 74 0D 0A 64 65 70 65 6E dependent..depen
006CF0: 64 69 6E 67 0D 0A 64 65 70 65 6E 64 73 0D 0A 64 ding..depends..d
006D00: 64 0D 0A 63 6F 6D 6D 61 6E 64 73 0D 0A 63 6F 6D d..commands..com
006D10: 6D 61 73 0D 0A 63 6F 6D 6D 65 6E 63 65 0D 0A 63 mas..commence..c
006D20: 6F 6D 6D 65 6E 63 65 73 0D 0A 63 6F 6D 6D 65 6E ommences..commen
006D30: 63 69 6E 67 0D 0A 63 6F 6D 6D 65 6E 74 0D 0A 63 cing..comment..c
006D40: 6F 6D 6D 65 6E 74 73 0D 0A 63 6F 6D 6D 65 72 63 omments..commerc
006D50: 69 61 6C 0D 0A 63 6F 6D 6D 6F 6E 0D 0A 63 6F 6D ial..common..com
006D60: 6D 6F 6E 6C 79 0D 0A 63 6F 6D 6D 75 6E 69 63 61 monly..communica
006D70: 74 69 6F 6E 73 0D 0A 63 6F 6D 70 61 63 74 0D 0A tions..compact..
006D80: 63 6F 6D 70 61 72 65 0D 0A 63 6F 6D 70 61 72 65 compare..compare
006D90: 64 0D 0A 63 6F 6D 70 61 72 65 73 0D 0A 63 6F 6D d..compares..com
006DA0: 70 61 72 69 6E 67 0D 0A 63 6F 6D 70 61 72 69 73 paring..comparis
006DB0: 6F 6E 0D 0A 63 6F 6D 70 61 72 69 73 6F 6E 73 0D on..comparisons.
006DC0: 0A 63 6F 6D 70 61 74 69 62 69 6C 69 74 79 0D 0A .compatibility..
006DD0: 63 6F 6D 70 61 74 69 62 6C 65 0D 0A 63 6F 6D 70 compatible..comp
006DE0: 65 6C 6C 69 6E 67 0D 0A 63 6F 6D 70 69 6C 61 74 elling..compilat
006DF0: 69 6F 6E 0D 0A 63 6F 6D 70 69 6C 65 0D 0A 63 6F ion..compile..co
006E00: 6D 70 69 6C 65 64 0D 0A 63 6F 6D 70 69 6C 65 72 mpiled..compiler
006E10: 0D 0A 63 6F 6D 70 69 6C 65 72 27 73 0D 0A 63 6F ..compiler's..co
006E20: 6D 70 69 6C 65 72 73 0D 0A 63 6F 6D 70 69 6C 65 mpilers..compile
006E30: 73 0D 0A 63 6F 6D 70 69 6C 69 6E 67 0D 0A 63 6F s..compiling..co
006E40: 6D 70 6C 65 6D 65 6E 74 0D 0A 63 6F 6D 70 6C 65 mplement..comple
006E50: 6D 65 6E 74 73 0D 0A 63 6F 6D 70 6C 65 74 65 0D ments..complete.
006E60: 0A 63 6F 6D 70 6C 65 74 65 6C 79 0D 0A 63 6F 6D .completely..com
006E70: 70 6C 65 74 65 6E 65 73 73 0D 0A 63 6F 6D 70 6C pleteness..compl
006E80: 65 74 69 6F 6E 0D 0A 63 6F 6D 70 6C 65 78 0D 0A etion..complex..
006E90: 63 6F 6D 70 6C 69 63 61 74 65 64 0D 0A 63 6F 6D complicated..com
006EA0: 70 6C 69 63 61 74 69 6F 6E 0D 0A 63 6F 6D 70 6F plication..compo
006EB0: 6E 65 6E 74 0D 0A 63 6F 6D 70 6F 6E 65 6E 74 73 nent..components
006EC0: 0D 0A 63 6F 6D 70 6F 73 65 64 0D 0A 63 6F 6D 70 ..composed..comp
006ED0: 6F 73 69 6E 67 0D 0A 63 6F 6D 70 6F 75 6E 64 0D osing..compound.
006EE0: 0A 63 6F 6D 70 72 65 68 65 6E 73 69 76 65 0D 0A .comprehensive..
006EF0: 63 6F 6D 70 72 65 73 73 0D 0A 63 6F 6D 70 72 65 compress..compre
006F00: 65 72 69 76 65 0D 0A 64 65 72 69 76 65 73 0D 0A erive..derives..
006F10: 64 65 73 63 65 6E 64 69 6E 67 0D 0A 64 65 73 63 descending..desc
006F20: 72 69 62 65 0D 0A 64 65 73 63 72 69 62 65 64 0D ribe..described.
006F30: 0A 64 65 73 63 72 69 62 65 73 0D 0A 64 65 73 63 .describes..desc
006F40: 72 69 62 69 6E 67 0D 0A 64 65 73 63 72 69 70 74 ribing..descript
006F50: 69 6F 6E 0D 0A 64 65 73 63 72 69 70 74 69 6F 6E ion..description
006F60: 73 0D 0A 64 65 73 63 72 69 70 74 69 76 65 0D 0A s..descriptive..
006F70: 64 65 73 63 72 69 70 74 6F 72 0D 0A 64 65 73 63 descriptor..desc
006F80: 72 69 70 74 6F 72 73 0D 0A 64 65 73 69 67 6E 0D riptors..design.
006F90: 0A 64 65 73 69 67 6E 61 74 65 0D 0A 64 65 73 69 .designate..desi
006FA0: 67 6E 61 74 65 64 0D 0A 64 65 73 69 67 6E 61 74 gnated..designat
006FB0: 65 73 0D 0A 64 65 73 69 67 6E 61 74 69 6F 6E 0D es..designation.
006FC0: 0A 64 65 73 69 67 6E 61 74 6F 72 0D 0A 64 65 73 .designator..des
006FD0: 69 67 6E 65 64 0D 0A 64 65 73 69 67 6E 69 6E 67 igned..designing
006FE0: 0D 0A 64 65 73 69 72 61 62 6C 65 0D 0A 64 65 73 ..desirable..des
006FF0: 69 72 65 64 0D 0A 64 65 73 69 72 65 73 0D 0A 64 ired..desires..d
007000: 65 73 74 69 6E 61 74 69 6F 6E 0D 0A 64 65 73 74 estination..dest
007010: 72 6F 79 0D 0A 64 65 74 61 69 6C 0D 0A 64 65 74 roy..detail..det
007020: 61 69 6C 73 0D 0A 64 65 74 65 63 74 0D 0A 64 65 ails..detect..de
007030: 74 65 63 74 65 64 0D 0A 64 65 74 65 72 6D 69 6E tected..determin
007040: 65 0D 0A 64 65 74 65 72 6D 69 6E 65 64 0D 0A 64 e..determined..d
007050: 65 74 65 72 6D 69 6E 65 73 0D 0A 64 65 76 65 6C etermines..devel
007060: 6F 70 0D 0A 64 65 76 65 6C 6F 70 65 64 0D 0A 64 op..developed..d
007070: 65 76 65 6C 6F 70 69 6E 67 0D 0A 64 65 76 65 6C eveloping..devel
007080: 6F 70 6D 65 6E 74 0D 0A 64 65 76 69 63 65 0D 0A opment..device..
007090: 64 65 76 69 63 65 73 0D 0A 64 65 76 6F 74 65 64 devices..devoted
0070A0: 0D 0A 64 69 61 67 6E 6F 73 74 69 63 0D 0A 64 69 ..diagnostic..di
0070B0: 61 67 72 61 6D 0D 0A 64 69 63 74 69 6F 6E 61 72 agram..dictionar
0070C0: 79 0D 0A 64 69 64 0D 0A 64 69 64 6E 27 74 0D 0A y..did..didn't..
0070D0: 64 69 66 66 65 72 0D 0A 64 69 66 66 65 72 65 6E differ..differen
0070E0: 63 65 0D 0A 64 69 66 66 65 72 65 6E 63 65 73 0D ce..differences.
0070F0: 0A 64 69 66 66 65 72 65 6E 74 0D 0A 64 69 66 66 .different..diff
007100: 73 73 65 64 0D 0A 63 6F 6D 70 72 69 73 65 64 0D ssed..comprised.
007110: 0A 63 6F 6D 70 72 69 73 69 6E 67 0D 0A 63 6F 6D .comprising..com
007120: 70 75 74 65 72 0D 0A 63 6F 6D 70 75 74 65 72 73 puter..computers
007130: 0D 0A 63 6F 6E 63 61 74 65 6E 61 74 65 64 0D 0A ..concatenated..
007140: 63 6F 6E 63 61 74 65 6E 61 74 69 6E 67 0D 0A 63 concatenating..c
007150: 6F 6E 63 65 69 76 65 64 0D 0A 63 6F 6E 63 65 70 onceived..concep
007160: 74 0D 0A 63 6F 6E 63 65 70 74 73 0D 0A 63 6F 6E t..concepts..con
007170: 63 65 70 74 75 61 6C 0D 0A 63 6F 6E 63 65 72 6E ceptual..concern
007180: 0D 0A 63 6F 6E 63 65 72 6E 65 64 0D 0A 63 6F 6E ..concerned..con
007190: 63 65 72 6E 69 6E 67 0D 0A 63 6F 6E 63 65 72 6E cerning..concern
0071A0: 73 0D 0A 63 6F 6E 63 65 72 74 0D 0A 63 6F 6E 63 s..concert..conc
0071B0: 69 73 65 0D 0A 63 6F 6E 63 69 73 65 6C 79 0D 0A ise..concisely..
0071C0: 63 6F 6E 64 69 74 69 6F 6E 0D 0A 63 6F 6E 64 69 condition..condi
0071D0: 74 69 6F 6E 61 6C 0D 0A 63 6F 6E 64 69 74 69 6F tional..conditio
0071E0: 6E 73 0D 0A 63 6F 6E 66 69 67 75 72 65 64 0D 0A ns..configured..
0071F0: 63 6F 6E 66 6C 69 63 74 0D 0A 63 6F 6E 66 6F 72 conflict..confor
007200: 6D 0D 0A 63 6F 6E 66 6F 72 6D 69 6E 67 0D 0A 63 m..conforming..c
007210: 6F 6E 6A 75 6E 63 74 69 6F 6E 0D 0A 63 6F 6E 6E onjunction..conn
007220: 65 63 74 65 64 0D 0A 63 6F 6E 73 65 63 75 74 69 ected..consecuti
007230: 76 65 0D 0A 63 6F 6E 73 65 72 76 65 73 0D 0A 63 ve..conserves..c
007240: 6F 6E 73 69 64 65 72 0D 0A 63 6F 6E 73 69 64 65 onsider..conside
007250: 72 61 62 6C 65 0D 0A 63 6F 6E 73 69 64 65 72 61 rable..considera
007260: 74 69 6F 6E 73 0D 0A 63 6F 6E 73 69 64 65 72 65 tions..considere
007270: 64 0D 0A 63 6F 6E 73 69 64 65 72 69 6E 67 0D 0A d..considering..
007280: 63 6F 6E 73 69 64 65 72 73 0D 0A 63 6F 6E 73 69 considers..consi
007290: 73 74 0D 0A 63 6F 6E 73 69 73 74 65 6E 74 0D 0A st..consistent..
0072A0: 63 6F 6E 73 69 73 74 69 6E 67 0D 0A 63 6F 6E 73 consisting..cons
0072B0: 69 73 74 73 0D 0A 63 6F 6E 73 6F 6C 65 0D 0A 63 ists..console..c
0072C0: 6F 6E 73 74 61 6E 74 0D 0A 63 6F 6E 73 74 61 6E onstant..constan
0072D0: 74 6C 79 0D 0A 63 6F 6E 73 74 61 6E 74 73 0D 0A tly..constants..
0072E0: 63 6F 6E 73 74 69 74 75 74 65 0D 0A 63 6F 6E 73 constitute..cons
0072F0: 74 69 74 75 74 65 73 0D 0A 63 6F 6E 73 74 69 74 titutes..constit
007300: 54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 00 00 00 Track-Info......
007310: 06 00 01 00 02 09 52 E5 06 00 41 02 00 00 00 02 ......R...A.....
007320: 06 00 46 02 00 00 00 02 06 00 42 02 00 00 00 02 ..F.......B.....
007330: 06 00 47 02 00 00 00 02 06 00 43 02 00 00 00 02 ..G.......C.....
007340: 06 00 48 02 00 00 00 02 06 00 44 02 00 00 00 02 ..H.......D.....
007350: 06 00 49 02 00 00 00 02 06 00 45 02 00 00 00 02 ..I.......E.....
007360: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
007370: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
007380: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
007390: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0073A0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0073B0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0073C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0073D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0073E0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0073F0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
007400: 65 72 73 0D 0A 64 69 66 66 69 63 75 6C 74 0D 0A ers..difficult..
007410: 64 69 66 66 69 63 75 6C 74 79 0D 0A 64 69 67 69 difficulty..digi
007420: 74 0D 0A 64 69 67 69 74 73 0D 0A 64 69 6C 65 6D t..digits..dilem
007430: 6D 61 0D 0A 64 69 6D 65 6E 73 69 6F 6E 0D 0A 64 ma..dimension..d
007440: 69 6D 65 6E 73 69 6F 6E 73 0D 0A 64 69 72 65 63 imensions..direc
007450: 74 0D 0A 64 69 72 65 63 74 65 64 0D 0A 64 69 72 t..directed..dir
007460: 65 63 74 69 6E 67 0D 0A 64 69 72 65 63 74 69 6F ecting..directio
007470: 6E 0D 0A 64 69 72 65 63 74 69 76 65 0D 0A 64 69 n..directive..di
007480: 72 65 63 74 69 76 65 73 0D 0A 64 69 72 65 63 74 rectives..direct
007490: 6C 79 0D 0A 64 69 72 65 63 74 6F 72 79 0D 0A 64 ly..directory..d
0074A0: 69 73 61 62 6C 65 0D 0A 64 69 73 61 62 6C 65 64 isable..disabled
0074B0: 0D 0A 64 69 73 61 62 6C 65 73 0D 0A 64 69 73 61 ..disables..disa
0074C0: 64 76 61 6E 74 61 67 65 0D 0A 64 69 73 61 70 70 dvantage..disapp
0074D0: 65 61 72 61 6E 63 65 0D 0A 64 69 73 63 61 72 64 earance..discard
0074E0: 0D 0A 64 69 73 63 61 72 64 65 64 0D 0A 64 69 73 ..discarded..dis
0074F0: 63 6F 6E 74 69 6E 75 65 0D 0A 64 69 73 63 6F 6E continue..discon
007500: 74 69 6E 75 65 64 0D 0A 64 69 73 63 6F 75 6E 74 tinued..discount
007510: 73 0D 0A 64 69 73 63 6F 76 65 72 0D 0A 64 69 73 s..discover..dis
007520: 63 75 73 73 0D 0A 64 69 73 63 75 73 73 65 64 0D cuss..discussed.
007530: 0A 64 69 73 63 75 73 73 69 6F 6E 0D 0A 64 69 73 .discussion..dis
007540: 6B 0D 0A 64 69 73 6B 65 74 74 65 0D 0A 64 69 73 k..diskette..dis
007550: 6B 65 74 74 65 73 0D 0A 64 69 73 6B 73 0D 0A 64 kettes..disks..d
007560: 69 73 70 61 74 63 68 65 73 0D 0A 64 69 73 70 6C ispatches..displ
007570: 61 63 65 0D 0A 64 69 73 70 6C 61 63 65 6D 65 6E ace..displacemen
007580: 74 0D 0A 64 69 73 70 6C 61 63 65 6D 65 6E 74 73 t..displacements
007590: 0D 0A 64 69 73 70 6C 61 79 0D 0A 64 69 73 70 6C ..display..displ
0075A0: 61 79 61 62 6C 65 0D 0A 64 69 73 70 6C 61 79 65 ayable..displaye
0075B0: 64 0D 0A 64 69 73 70 6C 61 79 69 6E 67 0D 0A 64 d..displaying..d
0075C0: 69 73 70 6C 61 79 73 0D 0A 64 69 73 74 69 6E 67 isplays..disting
0075D0: 75 69 73 68 0D 0A 64 69 73 74 72 69 62 75 74 65 uish..distribute
0075E0: 64 0D 0A 64 69 73 74 72 69 62 75 74 69 6F 6E 0D d..distribution.
0075F0: 0A 64 69 76 65 72 74 73 0D 0A 64 69 76 69 64 65 .diverts..divide
007600: 6C 0D 0A 66 61 69 6C 65 64 0D 0A 66 61 69 6C 69 l..failed..faili
007610: 6E 67 0D 0A 66 61 69 6C 73 0D 0A 66 61 69 6C 75 ng..fails..failu
007620: 72 65 0D 0A 66 61 69 72 6C 79 0D 0A 66 61 69 74 re..fairly..fait
007630: 68 66 75 6C 0D 0A 66 61 6C 6C 0D 0A 66 61 6C 6C hful..fall..fall
007640: 69 6E 67 0D 0A 66 61 6C 6C 73 0D 0A 66 61 6C 73 ing..falls..fals
007650: 65 0D 0A 66 61 6D 69 6C 69 61 72 0D 0A 66 61 6D e..familiar..fam
007660: 69 6C 69 61 72 69 74 79 0D 0A 66 61 72 0D 0A 66 iliarity..far..f
007670: 61 73 68 69 6F 6E 0D 0A 66 61 73 74 0D 0A 66 61 ashion..fast..fa
007680: 73 74 65 72 0D 0A 66 61 74 0D 0A 66 65 61 74 75 ster..fat..featu
007690: 72 65 0D 0A 66 65 61 74 75 72 65 73 0D 0A 66 65 re..features..fe
0076A0: 62 72 75 61 72 79 0D 0A 66 65 65 64 0D 0A 66 65 bruary..feed..fe
0076B0: 65 6C 0D 0A 66 65 65 74 0D 0A 66 65 6E 63 65 0D el..feet..fence.
0076C0: 0A 66 65 74 63 68 0D 0A 66 65 74 63 68 65 64 0D .fetch..fetched.
0076D0: 0A 66 65 74 63 68 65 73 0D 0A 66 65 77 0D 0A 66 .fetches..few..f
0076E0: 65 77 65 73 74 0D 0A 66 69 65 6C 64 0D 0A 66 69 ewest..field..fi
0076F0: 65 6C 64 73 0D 0A 66 69 66 74 68 0D 0A 66 69 67 elds..fifth..fig
007700: 75 72 65 0D 0A 66 69 6C 65 0D 0A 66 69 6C 65 27 ure..file..file'
007710: 73 0D 0A 66 69 6C 65 73 0D 0A 66 69 6C 6C 0D 0A s..files..fill..
007720: 66 69 6C 6C 65 64 0D 0A 66 69 6C 6C 69 6E 67 0D filled..filling.
007730: 0A 66 69 6C 6C 73 0D 0A 66 69 6E 61 6C 0D 0A 66 .fills..final..f
007740: 69 6E 61 6C 6C 79 0D 0A 66 69 6E 64 0D 0A 66 69 inally..find..fi
007750: 6E 64 69 6E 67 0D 0A 66 69 6E 64 69 6E 67 73 0D nding..findings.
007760: 0A 66 69 6E 64 73 0D 0A 66 69 6E 65 0D 0A 66 69 .finds..fine..fi
007770: 6E 69 73 68 0D 0A 66 69 6E 69 73 68 65 64 0D 0A nish..finished..
007780: 66 69 72 73 74 0D 0A 66 69 74 0D 0A 66 69 76 65 first..fit..five
007790: 0D 0A 66 69 78 0D 0A 66 69 78 65 64 0D 0A 66 69 ..fix..fixed..fi
0077A0: 78 65 73 0D 0A 66 6C 61 67 0D 0A 66 6C 61 67 67 xes..flag..flagg
0077B0: 69 6E 67 0D 0A 66 6C 61 67 73 0D 0A 66 6C 61 77 ing..flags..flaw
0077C0: 0D 0A 66 6C 65 78 69 62 69 6C 69 74 79 0D 0A 66 ..flexibility..f
0077D0: 6C 65 78 69 62 6C 65 0D 0A 66 6C 69 70 0D 0A 66 lexible..flip..f
0077E0: 6C 6F 70 0D 0A 66 6C 6F 70 70 79 0D 0A 66 6C 6F lop..floppy..flo
0077F0: 77 0D 0A 66 6C 75 73 68 0D 0A 66 6C 75 73 68 65 w..flush..flushe
007800: 64 0D 0A 64 69 76 69 64 65 73 0D 0A 64 6F 0D 0A d..divides..do..
007810: 64 6F 63 74 6F 72 0D 0A 64 6F 63 75 6D 65 6E 74 doctor..document
007820: 0D 0A 64 6F 63 75 6D 65 6E 74 61 72 79 0D 0A 64 ..documentary..d
007830: 6F 63 75 6D 65 6E 74 61 74 69 6F 6E 0D 0A 64 6F ocumentation..do
007840: 63 75 6D 65 6E 74 65 64 0D 0A 64 6F 63 75 6D 65 cumented..docume
007850: 6E 74 73 0D 0A 64 6F 65 73 0D 0A 64 6F 65 73 6E nts..does..doesn
007860: 27 74 0D 0A 64 6F 69 6E 67 0D 0A 64 6F 6C 6C 61 't..doing..dolla
007870: 72 0D 0A 64 6F 6D 61 69 6E 0D 0A 64 6F 6E 65 0D r..domain..done.
007880: 0A 64 6F 75 62 6C 65 0D 0A 64 6F 75 62 6C 65 64 .double..doubled
007890: 0D 0A 64 6F 75 62 6C 65 73 0D 0A 64 6F 75 62 74 ..doubles..doubt
0078A0: 0D 0A 64 6F 75 62 74 66 75 6C 0D 0A 64 6F 77 6E ..doubtful..down
0078B0: 0D 0A 64 72 61 77 62 61 63 6B 0D 0A 64 72 69 76 ..drawback..driv
0078C0: 65 0D 0A 64 72 69 76 65 72 0D 0A 64 72 69 76 65 e..driver..drive
0078D0: 72 73 0D 0A 64 72 69 76 65 73 0D 0A 64 72 6F 70 rs..drives..drop
0078E0: 0D 0A 64 72 6F 70 70 65 64 0D 0A 64 72 6F 70 73 ..dropped..drops
0078F0: 0D 0A 64 75 62 62 65 64 0D 0A 64 75 6D 6D 79 0D ..dubbed..dummy.
007900: 0A 64 75 6D 70 0D 0A 64 75 6D 70 65 64 0D 0A 64 .dump..dumped..d
007910: 75 70 6C 69 63 61 74 65 0D 0A 64 75 70 6C 69 63 uplicate..duplic
007920: 61 74 65 64 0D 0A 64 75 70 6C 69 63 61 74 65 73 ated..duplicates
007930: 0D 0A 64 75 72 69 6E 67 0D 0A 64 75 74 79 0D 0A ..during..duty..
007940: 64 79 6E 61 6D 69 63 0D 0A 64 79 6E 61 6D 69 63 dynamic..dynamic
007950: 61 6C 6C 79 0D 0A 65 0D 0A 65 61 63 68 0D 0A 65 ally..e..each..e
007960: 61 72 6C 69 65 72 0D 0A 65 61 72 6C 79 0D 0A 65 arlier..early..e
007970: 61 73 65 0D 0A 65 61 73 69 65 72 0D 0A 65 61 73 ase..easier..eas
007980: 69 6C 79 0D 0A 65 61 73 79 0D 0A 65 63 68 6F 65 ily..easy..echoe
007990: 64 0D 0A 65 63 68 6F 65 73 0D 0A 65 63 68 6F 69 d..echoes..echoi
0079A0: 6E 67 0D 0A 65 64 67 65 0D 0A 65 64 69 74 0D 0A ng..edge..edit..
0079B0: 65 64 69 74 65 64 0D 0A 65 64 69 74 69 6E 67 0D edited..editing.
0079C0: 0A 65 64 69 74 6F 72 0D 0A 65 64 69 74 6F 72 73 .editor..editors
0079D0: 0D 0A 65 66 66 65 63 74 0D 0A 65 66 66 65 63 74 ..effect..effect
0079E0: 69 76 65 0D 0A 65 66 66 65 63 74 69 76 65 6C 79 ive..effectively
0079F0: 0D 0A 65 66 66 65 63 74 73 0D 0A 65 66 66 69 63 ..effects..effic
007A00: 64 0D 0A 66 6C 75 73 68 65 73 0D 0A 66 6C 75 73 d..flushes..flus
007A10: 68 69 6E 67 0D 0A 66 6F 6C 64 65 64 0D 0A 66 6F hing..folded..fo
007A20: 6C 64 73 0D 0A 66 6F 6C 6C 6F 77 0D 0A 66 6F 6C lds..follow..fol
007A30: 6C 6F 77 65 64 0D 0A 66 6F 6C 6C 6F 77 69 6E 67 lowed..following
007A40: 0D 0A 66 6F 6C 6C 6F 77 73 0D 0A 66 6F 6F 6C 0D ..follows..fool.
007A50: 0A 66 6F 6F 6C 70 72 6F 6F 66 0D 0A 66 6F 6F 74 .foolproof..foot
007A60: 0D 0A 66 6F 72 0D 0A 66 6F 72 63 65 0D 0A 66 6F ..for..force..fo
007A70: 72 63 65 64 0D 0A 66 6F 72 63 65 73 0D 0A 66 6F rced..forces..fo
007A80: 72 63 69 6E 67 0D 0A 66 6F 72 65 69 67 6E 0D 0A rcing..foreign..
007A90: 66 6F 72 67 65 74 0D 0A 66 6F 72 6D 0D 0A 66 6F forget..form..fo
007AA0: 72 6D 61 74 0D 0A 66 6F 72 6D 61 74 73 0D 0A 66 rmat..formats..f
007AB0: 6F 72 6D 61 74 74 65 64 0D 0A 66 6F 72 6D 61 74 ormatted..format
007AC0: 74 65 72 0D 0A 66 6F 72 6D 61 74 74 65 72 73 0D ter..formatters.
007AD0: 0A 66 6F 72 6D 61 74 74 69 6E 67 0D 0A 66 6F 72 .formatting..for
007AE0: 6D 65 64 0D 0A 66 6F 72 6D 65 72 0D 0A 66 6F 72 med..former..for
007AF0: 6D 69 6E 67 0D 0A 66 6F 72 6D 73 0D 0A 66 6F 72 ming..forms..for
007B00: 77 61 72 64 0D 0A 66 6F 75 6E 64 0D 0A 66 6F 75 ward..found..fou
007B10: 6E 64 61 74 69 6F 6E 0D 0A 66 6F 75 6E 74 61 69 ndation..fountai
007B20: 6E 0D 0A 66 6F 75 72 0D 0A 66 6F 75 72 74 68 0D n..four..fourth.
007B30: 0A 66 72 65 65 0D 0A 66 72 65 65 64 0D 0A 66 72 .free..freed..fr
007B40: 65 65 69 6E 67 0D 0A 66 72 65 65 6C 79 0D 0A 66 eeing..freely..f
007B50: 72 65 71 75 65 6E 74 6C 79 0D 0A 66 72 65 73 68 requently..fresh
007B60: 0D 0A 66 72 69 65 6E 64 6C 79 0D 0A 66 72 69 6C ..friendly..fril
007B70: 6C 73 0D 0A 66 72 6F 67 0D 0A 66 72 6F 6D 0D 0A ls..frog..from..
007B80: 66 72 6F 6E 74 0D 0A 66 75 6C 6C 0D 0A 66 75 6C front..full..ful
007B90: 6C 79 0D 0A 66 75 6E 63 74 69 6F 6E 0D 0A 66 75 ly..function..fu
007BA0: 6E 63 74 69 6F 6E 61 6C 0D 0A 66 75 6E 63 74 69 nctional..functi
007BB0: 6F 6E 73 0D 0A 66 75 72 74 68 65 72 0D 0A 66 75 ons..further..fu
007BC0: 74 75 72 65 0D 0A 67 0D 0A 67 61 70 0D 0A 67 61 ture..g..gap..ga
007BD0: 70 73 0D 0A 67 61 72 62 61 67 65 0D 0A 67 61 72 ps..garbage..gar
007BE0: 62 6C 65 64 0D 0A 67 61 74 68 65 72 65 64 0D 0A bled..gathered..
007BF0: 67 61 74 68 65 72 69 6E 67 0D 0A 67 65 6E 65 72 gathering..gener
007C00: 69 65 6E 63 79 0D 0A 65 66 66 69 63 69 65 6E 74 iency..efficient
007C10: 0D 0A 65 66 66 6F 72 74 0D 0A 65 69 67 68 74 0D ..effort..eight.
007C20: 0A 65 69 74 68 65 72 0D 0A 65 6C 65 6D 65 6E 74 .either..element
007C30: 0D 0A 65 6C 65 6D 65 6E 74 73 0D 0A 65 6C 65 76 ..elements..elev
007C40: 65 6E 0D 0A 65 6C 69 6D 69 6E 61 74 65 0D 0A 65 en..eliminate..e
007C50: 6C 69 6D 69 6E 61 74 65 64 0D 0A 65 6C 69 6D 69 liminated..elimi
007C60: 6E 61 74 65 73 0D 0A 65 6C 69 6D 69 6E 61 74 69 nates..eliminati
007C70: 6E 67 0D 0A 65 6C 6C 69 70 73 69 73 0D 0A 65 6C ng..ellipsis..el
007C80: 73 65 0D 0A 65 6D 62 65 64 64 65 64 0D 0A 65 6D se..embedded..em
007C90: 70 68 61 73 69 73 0D 0A 65 6D 70 68 61 73 69 7A phasis..emphasiz
007CA0: 65 73 0D 0A 65 6D 70 6C 6F 79 0D 0A 65 6D 70 6C es..employ..empl
007CB0: 6F 79 65 64 0D 0A 65 6D 70 6C 6F 79 73 0D 0A 65 oyed..employs..e
007CC0: 6D 70 74 79 0D 0A 65 6E 61 62 6C 65 0D 0A 65 6E mpty..enable..en
007CD0: 61 62 6C 65 64 0D 0A 65 6E 61 62 6C 65 73 0D 0A abled..enables..
007CE0: 65 6E 61 62 6C 69 6E 67 0D 0A 65 6E 63 6C 6F 73 enabling..enclos
007CF0: 65 0D 0A 65 6E 63 6C 6F 73 65 64 0D 0A 65 6E 63 e..enclosed..enc
007D00: 6F 75 6E 74 65 72 0D 0A 65 6E 63 6F 75 6E 74 65 ounter..encounte
007D10: 72 65 64 0D 0A 65 6E 63 6F 75 6E 74 65 72 73 0D red..encounters.
007D20: 0A 65 6E 63 6F 75 72 61 67 65 64 0D 0A 65 6E 63 .encouraged..enc
007D30: 6F 75 72 61 67 65 6D 65 6E 74 0D 0A 65 6E 63 72 ouragement..encr
007D40: 79 70 74 69 6F 6E 0D 0A 65 6E 64 0D 0A 65 6E 64 yption..end..end
007D50: 2D 6F 66 2D 66 69 6C 65 0D 0A 65 6E 64 65 64 0D -of-file..ended.
007D60: 0A 65 6E 64 73 0D 0A 65 6E 66 6F 72 63 65 0D 0A .ends..enforce..
007D70: 65 6E 67 69 6E 65 65 72 69 6E 67 0D 0A 65 6E 68 engineering..enh
007D80: 61 6E 63 65 64 0D 0A 65 6E 68 61 6E 63 65 6D 65 anced..enhanceme
007D90: 6E 74 0D 0A 65 6E 68 61 6E 63 65 6D 65 6E 74 73 nt..enhancements
007DA0: 0D 0A 65 6E 68 61 6E 63 65 73 0D 0A 65 6E 6C 61 ..enhances..enla
007DB0: 72 67 65 0D 0A 65 6E 6F 75 67 68 0D 0A 65 6E 73 rge..enough..ens
007DC0: 75 72 65 0D 0A 65 6E 74 65 72 0D 0A 65 6E 74 65 ure..enter..ente
007DD0: 72 65 64 0D 0A 65 6E 74 65 72 69 6E 67 0D 0A 65 red..entering..e
007DE0: 6E 74 68 75 73 69 61 73 74 69 63 0D 0A 65 6E 74 nthusiastic..ent
007DF0: 69 72 65 0D 0A 65 6E 74 69 72 65 6C 79 0D 0A 65 ire..entirely..e
007E00: 61 6C 0D 0A 67 65 6E 65 72 61 6C 6C 79 0D 0A 67 al..generally..g
007E10: 65 6E 65 72 61 74 65 0D 0A 67 65 6E 65 72 61 74 enerate..generat
007E20: 65 64 0D 0A 67 65 6E 65 72 61 74 65 73 0D 0A 67 ed..generates..g
007E30: 65 6E 65 72 61 74 69 6E 67 0D 0A 67 65 6E 65 72 enerating..gener
007E40: 61 74 69 6F 6E 0D 0A 67 65 6E 65 72 61 74 69 76 ation..generativ
007E50: 65 0D 0A 67 65 6E 65 72 69 63 0D 0A 67 65 74 0D e..generic..get.
007E60: 0A 67 65 74 73 0D 0A 67 65 74 74 69 6E 67 0D 0A .gets..getting..
007E70: 67 69 76 65 0D 0A 67 69 76 65 6E 0D 0A 67 69 76 give..given..giv
007E80: 65 73 0D 0A 67 69 76 69 6E 67 0D 0A 67 6C 6F 62 es..giving..glob
007E90: 61 6C 0D 0A 67 6F 0D 0A 67 6F 61 6C 0D 0A 67 6F al..go..goal..go
007EA0: 65 73 0D 0A 67 6F 69 6E 67 0D 0A 67 6F 6E 65 0D es..going..gone.
007EB0: 0A 67 6F 6F 64 0D 0A 67 72 61 63 65 66 75 6C 6C .good..gracefull
007EC0: 79 0D 0A 67 72 61 63 69 6F 75 73 6C 79 0D 0A 67 y..graciously..g
007ED0: 72 61 76 65 0D 0A 67 72 65 61 74 0D 0A 67 72 65 rave..great..gre
007EE0: 61 74 65 72 0D 0A 67 72 65 61 74 6C 79 0D 0A 67 ater..greatly..g
007EF0: 72 6F 75 70 0D 0A 67 72 6F 75 70 73 0D 0A 67 72 roup..groups..gr
007F00: 6F 77 0D 0A 67 72 6F 77 69 6E 67 0D 0A 67 72 6F ow..growing..gro
007F10: 77 73 0D 0A 67 75 61 72 61 6E 74 65 65 0D 0A 67 ws..guarantee..g
007F20: 75 61 72 61 6E 74 65 65 64 0D 0A 67 75 61 72 61 uaranteed..guara
007F30: 6E 74 65 65 73 0D 0A 67 75 69 64 61 6E 63 65 0D ntees..guidance.
007F40: 0A 67 75 69 64 65 0D 0A 67 75 69 6E 65 61 0D 0A .guide..guinea..
007F50: 67 75 6C 70 0D 0A 68 0D 0A 68 61 64 0D 0A 68 61 gulp..h..had..ha
007F60: 6C 66 0D 0A 68 61 6C 6C 0D 0A 68 61 6C 74 0D 0A lf..hall..halt..
007F70: 68 61 6C 74 65 64 0D 0A 68 61 6C 74 69 6E 67 0D halted..halting.
007F80: 0A 68 61 6C 74 73 0D 0A 68 61 6E 64 0D 0A 68 61 .halts..hand..ha
007F90: 6E 64 62 6F 6F 6B 0D 0A 68 61 6E 64 6C 65 0D 0A ndbook..handle..
007FA0: 68 61 6E 64 6C 65 64 0D 0A 68 61 6E 64 6C 65 73 handled..handles
007FB0: 0D 0A 68 61 6E 64 6C 69 6E 67 0D 0A 68 61 6E 64 ..handling..hand
007FC0: 79 0D 0A 68 61 70 70 65 6E 0D 0A 68 61 70 70 65 y..happen..happe
007FD0: 6E 69 6E 67 73 0D 0A 68 61 70 70 65 6E 73 0D 0A nings..happens..
007FE0: 68 61 70 70 79 0D 0A 68 61 72 64 0D 0A 68 61 72 happy..hard..har
007FF0: 64 65 72 0D 0A 68 61 72 64 77 61 72 65 0D 0A 68 der..hardware..h
008000: 6E 74 69 74 6C 65 64 0D 0A 65 6E 74 72 69 65 73 ntitled..entries
008010: 0D 0A 65 6E 74 72 79 0D 0A 65 6E 76 65 6C 6F 70 ..entry..envelop
008020: 65 73 0D 0A 65 6E 76 69 72 6F 6E 6D 65 6E 74 0D es..environment.
008030: 0A 65 6E 76 69 72 6F 6E 6D 65 6E 74 73 0D 0A 65 .environments..e
008040: 71 75 61 6C 0D 0A 65 71 75 61 6C 69 74 79 0D 0A qual..equality..
008050: 65 71 75 61 6C 69 7A 65 64 0D 0A 65 71 75 61 6C equalized..equal
008060: 6C 79 0D 0A 65 71 75 61 74 65 0D 0A 65 71 75 61 ly..equate..equa
008070: 74 65 64 0D 0A 65 71 75 61 74 65 73 0D 0A 65 71 ted..equates..eq
008080: 75 69 76 61 6C 65 6E 74 0D 0A 65 72 61 73 65 64 uivalent..erased
008090: 0D 0A 65 72 61 73 75 72 65 0D 0A 65 72 72 6F 6E ..erasure..erron
0080A0: 65 6F 75 73 0D 0A 65 72 72 6F 72 0D 0A 65 72 72 eous..error..err
0080B0: 6F 72 63 6F 64 65 0D 0A 65 72 72 6F 72 73 0D 0A orcode..errors..
0080C0: 65 73 63 61 70 65 0D 0A 65 73 63 61 70 65 64 0D escape..escaped.
0080D0: 0A 65 73 70 65 63 69 61 6C 6C 79 0D 0A 65 73 73 .especially..ess
0080E0: 65 6E 74 69 61 6C 6C 79 0D 0A 65 73 74 61 62 6C entially..establ
0080F0: 69 73 68 0D 0A 65 73 74 61 62 6C 69 73 68 65 73 ish..establishes
008100: 0D 0A 65 73 74 61 62 6C 69 73 68 69 6E 67 0D 0A ..establishing..
008110: 65 73 74 69 6D 61 74 65 0D 0A 65 74 63 0D 0A 65 estimate..etc..e
008120: 76 61 6C 75 61 74 65 0D 0A 65 76 61 6C 75 61 74 valuate..evaluat
008130: 65 64 0D 0A 65 76 65 6E 0D 0A 65 76 65 6E 74 75 ed..even..eventu
008140: 61 6C 6C 79 0D 0A 65 76 65 72 0D 0A 65 76 65 72 ally..ever..ever
008150: 79 0D 0A 65 76 65 72 79 6F 6E 65 0D 0A 65 76 65 y..everyone..eve
008160: 72 79 74 68 69 6E 67 0D 0A 65 78 61 63 74 6C 79 rything..exactly
008170: 0D 0A 65 78 61 6D 69 6E 61 74 69 6F 6E 0D 0A 65 ..examination..e
008180: 78 61 6D 69 6E 69 6E 67 0D 0A 65 78 61 6D 70 6C xamining..exampl
008190: 65 0D 0A 65 78 61 6D 70 6C 65 73 0D 0A 65 78 63 e..examples..exc
0081A0: 65 6C 6C 65 6E 74 0D 0A 65 78 63 65 70 74 0D 0A ellent..except..
0081B0: 65 78 63 65 70 74 69 6F 6E 0D 0A 65 78 63 65 70 exception..excep
0081C0: 74 69 6F 6E 61 6C 0D 0A 65 78 63 65 70 74 69 6F tional..exceptio
0081D0: 6E 73 0D 0A 65 78 63 65 73 73 0D 0A 65 78 63 68 ns..excess..exch
0081E0: 61 6E 67 65 0D 0A 65 78 63 68 61 6E 67 65 64 0D ange..exchanged.
0081F0: 0A 65 78 63 68 61 6E 67 65 73 0D 0A 65 78 63 6C .exchanges..excl
008200: 61 72 6D 6F 6E 79 0D 0A 68 61 73 0D 0A 68 61 73 armony..has..has
008210: 68 0D 0A 68 61 76 65 0D 0A 68 61 76 69 6E 67 0D h..have..having.
008220: 0A 68 65 0D 0A 68 65 61 64 0D 0A 68 65 61 64 65 .he..head..heade
008230: 72 0D 0A 68 65 61 64 65 72 73 0D 0A 68 65 61 64 r..headers..head
008240: 69 6E 67 0D 0A 68 65 61 64 69 6E 67 73 0D 0A 68 ing..headings..h
008250: 65 61 72 0D 0A 68 65 61 72 73 0D 0A 68 65 6C 64 ear..hears..held
008260: 0D 0A 68 65 6C 70 0D 0A 68 65 6C 70 66 75 6C 0D ..help..helpful.
008270: 0A 68 65 6C 70 73 0D 0A 68 65 6E 63 65 0D 0A 68 .helps..hence..h
008280: 65 72 65 0D 0A 68 65 72 65 74 6F 66 6F 72 65 0D ere..heretofore.
008290: 0A 68 65 78 0D 0A 68 65 78 61 64 65 63 69 6D 61 .hex..hexadecima
0082A0: 6C 0D 0A 68 69 67 68 0D 0A 68 69 67 68 2D 6C 65 l..high..high-le
0082B0: 76 65 6C 0D 0A 68 69 67 68 2D 6F 72 64 65 72 0D vel..high-order.
0082C0: 0A 68 69 67 68 65 72 0D 0A 68 69 67 68 65 73 74 .higher..highest
0082D0: 0D 0A 68 69 67 68 6C 79 0D 0A 68 69 6D 0D 0A 68 ..highly..him..h
0082E0: 69 73 0D 0A 68 69 74 73 0D 0A 68 69 74 74 69 6E is..hits..hittin
0082F0: 67 0D 0A 68 6F 62 62 69 65 73 0D 0A 68 6F 6C 64 g..hobbies..hold
008300: 0D 0A 68 6F 6C 64 69 6E 67 0D 0A 68 6F 6C 64 73 ..holding..holds
008310: 0D 0A 68 6F 6D 65 0D 0A 68 6F 6E 6F 72 0D 0A 68 ..home..honor..h
008320: 6F 6E 6F 72 65 64 0D 0A 68 6F 6E 6F 72 69 6E 67 onored..honoring
008330: 0D 0A 68 6F 6F 6B 65 64 0D 0A 68 6F 70 65 0D 0A ..hooked..hope..
008340: 68 6F 72 69 7A 6F 6E 0D 0A 68 6F 72 69 7A 6F 6E horizon..horizon
008350: 74 61 6C 0D 0A 68 6F 73 74 0D 0A 68 6F 75 72 73 tal..host..hours
008360: 0D 0A 68 6F 75 73 65 6B 65 65 70 69 6E 67 0D 0A ..housekeeping..
008370: 68 6F 77 0D 0A 68 6F 77 65 76 65 72 0D 0A 68 75 how..however..hu
008380: 6D 61 6E 73 0D 0A 68 79 62 72 69 64 0D 0A 68 79 mans..hybrid..hy
008390: 70 68 65 6E 0D 0A 68 79 70 68 65 6E 73 0D 0A 69 phen..hyphens..i
0083A0: 0D 0A 69 27 6C 6C 0D 0A 69 64 65 61 0D 0A 69 64 ..i'll..idea..id
0083B0: 65 61 6C 0D 0A 69 64 65 61 73 0D 0A 69 64 65 6E eal..ideas..iden
0083C0: 74 69 63 61 6C 0D 0A 69 64 65 6E 74 69 66 69 63 tical..identific
0083D0: 61 74 69 6F 6E 0D 0A 69 64 65 6E 74 69 66 69 65 ation..identifie
0083E0: 64 0D 0A 69 64 65 6E 74 69 66 69 65 73 0D 0A 69 d..identifies..i
0083F0: 64 65 6E 74 69 66 79 0D 0A 69 66 0D 0A 69 67 6E dentify..if..ign
008400: 75 64 65 0D 0A 65 78 63 6C 75 64 65 64 0D 0A 65 ude..excluded..e
008410: 78 63 6C 75 73 69 76 65 0D 0A 65 78 65 63 75 74 xclusive..execut
008420: 61 62 6C 65 0D 0A 65 78 65 63 75 74 65 0D 0A 65 able..execute..e
008430: 78 65 63 75 74 65 64 0D 0A 65 78 65 63 75 74 65 xecuted..execute
008440: 73 0D 0A 65 78 65 63 75 74 69 6E 67 0D 0A 65 78 s..executing..ex
008450: 65 63 75 74 69 6F 6E 0D 0A 65 78 68 61 75 73 74 ecution..exhaust
008460: 65 64 0D 0A 65 78 69 73 74 0D 0A 65 78 69 73 74 ed..exist..exist
008470: 65 64 0D 0A 65 78 69 73 74 65 6E 63 65 0D 0A 65 ed..existence..e
008480: 78 69 73 74 69 6E 67 0D 0A 65 78 69 73 74 73 0D xisting..exists.
008490: 0A 65 78 69 74 0D 0A 65 78 69 74 65 64 0D 0A 65 .exit..exited..e
0084A0: 78 69 74 69 6E 67 0D 0A 65 78 70 61 6E 64 0D 0A xiting..expand..
0084B0: 65 78 70 61 6E 64 65 64 0D 0A 65 78 70 61 6E 64 expanded..expand
0084C0: 73 0D 0A 65 78 70 61 6E 73 69 6F 6E 0D 0A 65 78 s..expansion..ex
0084D0: 70 65 63 74 0D 0A 65 78 70 65 63 74 65 64 0D 0A pect..expected..
0084E0: 65 78 70 65 63 74 69 6E 67 0D 0A 65 78 70 65 63 expecting..expec
0084F0: 74 73 0D 0A 65 78 70 65 6E 73 65 0D 0A 65 78 70 ts..expense..exp
008500: 65 72 69 65 6E 63 65 0D 0A 65 78 70 65 72 69 65 erience..experie
008510: 6E 63 65 64 0D 0A 65 78 70 6C 61 69 6E 65 64 0D nced..explained.
008520: 0A 65 78 70 6C 61 69 6E 73 0D 0A 65 78 70 6C 69 .explains..expli
008530: 63 69 74 0D 0A 65 78 70 6C 69 63 69 74 6C 79 0D cit..explicitly.
008540: 0A 65 78 70 6C 6F 69 74 0D 0A 65 78 70 72 65 73 .exploit..expres
008550: 73 0D 0A 65 78 70 72 65 73 73 65 64 0D 0A 65 78 s..expressed..ex
008560: 70 72 65 73 73 69 6F 6E 0D 0A 65 78 70 72 65 73 pression..expres
008570: 73 69 6F 6E 73 0D 0A 65 78 74 65 6E 64 0D 0A 65 sions..extend..e
008580: 78 74 65 6E 64 65 64 0D 0A 65 78 74 65 6E 64 73 xtended..extends
008590: 0D 0A 65 78 74 65 6E 73 69 6F 6E 0D 0A 65 78 74 ..extension..ext
0085A0: 65 6E 73 69 6F 6E 73 0D 0A 65 78 74 65 6E 73 69 ensions..extensi
0085B0: 76 65 0D 0A 65 78 74 65 6E 74 0D 0A 65 78 74 65 ve..extent..exte
0085C0: 72 6E 61 6C 0D 0A 65 78 74 72 61 0D 0A 66 0D 0A rnal..extra..f..
0085D0: 66 61 63 69 6C 69 74 61 74 65 0D 0A 66 61 63 69 facilitate..faci
0085E0: 6C 69 74 69 65 73 0D 0A 66 61 63 74 0D 0A 66 61 lities..fact..fa
0085F0: 63 74 6F 72 0D 0A 66 61 63 74 73 0D 0A 66 61 69 ctor..facts..fai
008600: 54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 00 00 00 Track-Info......
008610: 07 00 01 00 02 09 52 E5 07 00 41 02 00 00 00 02 ......R...A.....
008620: 07 00 46 02 00 00 00 02 07 00 42 02 00 00 00 02 ..F.......B.....
008630: 07 00 47 02 00 00 00 02 07 00 43 02 00 00 00 02 ..G.......C.....
008640: 07 00 48 02 00 00 00 02 07 00 44 02 00 00 00 02 ..H.......D.....
008650: 07 00 49 02 00 00 00 02 07 00 45 02 00 00 00 02 ..I.......E.....
008660: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
008670: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
008680: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
008690: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0086A0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0086B0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0086C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0086D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0086E0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0086F0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
008700: 6F 72 65 0D 0A 69 67 6E 6F 72 65 64 0D 0A 69 67 ore..ignored..ig
008710: 6E 6F 72 65 73 0D 0A 69 6C 6C 65 67 61 6C 0D 0A nores..illegal..
008720: 69 6C 6C 75 73 74 72 61 74 65 0D 0A 69 6C 6C 75 illustrate..illu
008730: 73 74 72 61 74 65 64 0D 0A 69 6C 6C 75 73 74 72 strated..illustr
008740: 61 74 65 73 0D 0A 69 6D 61 67 65 0D 0A 69 6D 61 ates..image..ima
008750: 67 69 6E 61 74 69 6F 6E 0D 0A 69 6D 61 67 69 6E gination..imagin
008760: 65 0D 0A 69 6D 6D 61 74 65 72 69 61 6C 0D 0A 69 e..immaterial..i
008770: 6D 6D 65 64 69 61 74 65 0D 0A 69 6D 6D 65 64 69 mmediate..immedi
008780: 61 74 65 6C 79 0D 0A 69 6D 70 61 63 74 0D 0A 69 ately..impact..i
008790: 6D 70 6C 65 6D 65 6E 74 0D 0A 69 6D 70 6C 65 6D mplement..implem
0087A0: 65 6E 74 61 74 69 6F 6E 0D 0A 69 6D 70 6C 65 6D entation..implem
0087B0: 65 6E 74 61 74 69 6F 6E 73 0D 0A 69 6D 70 6C 65 entations..imple
0087C0: 6D 65 6E 74 65 64 0D 0A 69 6D 70 6C 65 6D 65 6E mented..implemen
0087D0: 74 69 6E 67 0D 0A 69 6D 70 6C 65 6D 65 6E 74 73 ting..implements
0087E0: 0D 0A 69 6D 70 6C 69 63 69 74 0D 0A 69 6D 70 6C ..implicit..impl
0087F0: 69 63 69 74 65 6C 79 0D 0A 69 6D 70 6C 69 65 64 icitely..implied
008800: 0D 0A 69 6D 70 6C 69 65 73 0D 0A 69 6D 70 6C 79 ..implies..imply
008810: 0D 0A 69 6D 70 6F 72 74 61 6E 63 65 0D 0A 69 6D ..importance..im
008820: 70 6F 72 74 61 6E 74 0D 0A 69 6D 70 6F 73 65 0D portant..impose.
008830: 0A 69 6D 70 6F 73 65 64 0D 0A 69 6D 70 6F 73 73 .imposed..imposs
008840: 69 62 6C 65 0D 0A 69 6D 70 72 6F 76 65 0D 0A 69 ible..improve..i
008850: 6D 70 72 6F 76 65 64 0D 0A 69 6D 70 72 6F 76 65 mproved..improve
008860: 6D 65 6E 74 0D 0A 69 6D 70 72 6F 76 65 6D 65 6E ment..improvemen
008870: 74 73 0D 0A 69 6E 0D 0A 69 6E 61 70 70 72 6F 70 ts..in..inapprop
008880: 72 69 61 74 65 0D 0A 69 6E 63 6C 75 64 65 0D 0A riate..include..
008890: 69 6E 63 6C 75 64 65 64 0D 0A 69 6E 63 6C 75 64 included..includ
0088A0: 65 73 0D 0A 69 6E 63 6C 75 64 69 6E 67 0D 0A 69 es..including..i
0088B0: 6E 63 6C 75 73 69 6F 6E 0D 0A 69 6E 63 6C 75 73 nclusion..inclus
0088C0: 69 76 65 0D 0A 69 6E 63 6F 6D 69 6E 67 0D 0A 69 ive..incoming..i
0088D0: 6E 63 6F 6E 73 69 73 74 65 6E 74 0D 0A 69 6E 63 nconsistent..inc
0088E0: 72 65 61 73 65 0D 0A 69 6E 63 72 65 61 73 65 64 rease..increased
0088F0: 0D 0A 69 6E 63 72 65 61 73 69 6E 67 0D 0A 69 6E ..increasing..in
008900: 6B 61 67 65 0D 0A 6C 69 6E 6B 65 64 0D 0A 6C 69 kage..linked..li
008910: 6E 6B 69 6E 67 0D 0A 6C 69 6E 6B 73 0D 0A 6C 69 nking..links..li
008920: 73 70 0D 0A 6C 69 73 74 0D 0A 6C 69 73 74 65 64 sp..list..listed
008930: 0D 0A 6C 69 73 74 69 6E 67 0D 0A 6C 69 73 74 69 ..listing..listi
008940: 6E 67 73 0D 0A 6C 69 73 74 73 0D 0A 6C 69 74 65 ngs..lists..lite
008950: 72 61 6C 0D 0A 6C 69 74 65 72 61 6C 6C 79 0D 0A ral..literally..
008960: 6C 69 74 65 72 61 6C 73 0D 0A 6C 69 74 74 6C 65 literals..little
008970: 0D 0A 6C 6F 61 64 0D 0A 6C 6F 61 64 65 64 0D 0A ..load..loaded..
008980: 6C 6F 61 64 65 72 0D 0A 6C 6F 61 64 65 72 73 0D loader..loaders.
008990: 0A 6C 6F 61 64 69 6E 67 0D 0A 6C 6F 61 64 73 0D .loading..loads.
0089A0: 0A 6C 6F 63 61 6C 0D 0A 6C 6F 63 61 74 65 0D 0A .local..locate..
0089B0: 6C 6F 63 61 74 65 64 0D 0A 6C 6F 63 61 74 65 73 located..locates
0089C0: 0D 0A 6C 6F 63 61 74 69 6E 67 0D 0A 6C 6F 63 61 ..locating..loca
0089D0: 74 69 6F 6E 0D 0A 6C 6F 63 61 74 69 6F 6E 73 0D tion..locations.
0089E0: 0A 6C 6F 67 69 63 0D 0A 6C 6F 67 69 63 61 6C 0D .logic..logical.
0089F0: 0A 6C 6F 67 69 63 61 6C 6C 79 0D 0A 6C 6F 6E 67 .logically..long
008A00: 0D 0A 6C 6F 6E 67 65 72 0D 0A 6C 6F 6F 6B 0D 0A ..longer..look..
008A10: 6C 6F 6F 6B 65 64 0D 0A 6C 6F 6F 6B 69 6E 67 0D looked..looking.
008A20: 0A 6C 6F 6F 6B 73 0D 0A 6C 6F 6F 70 0D 0A 6C 6F .looks..loop..lo
008A30: 73 65 0D 0A 6C 6F 73 65 73 0D 0A 6C 6F 73 73 0D se..loses..loss.
008A40: 0A 6C 6F 73 74 0D 0A 6C 6F 74 0D 0A 6C 6F 74 73 .lost..lot..lots
008A50: 0D 0A 6C 6F 76 65 0D 0A 6C 6F 77 0D 0A 6C 6F 77 ..love..low..low
008A60: 2D 6C 65 76 65 6C 0D 0A 6C 6F 77 2D 6F 72 64 65 -level..low-orde
008A70: 72 0D 0A 6C 6F 77 65 72 0D 0A 6C 6F 77 65 73 74 r..lower..lowest
008A80: 0D 0A 6D 0D 0A 6D 61 63 68 69 6E 65 0D 0A 6D 61 ..m..machine..ma
008A90: 63 68 69 6E 65 73 0D 0A 6D 61 63 72 6F 0D 0A 6D chines..macro..m
008AA0: 61 64 65 0D 0A 6D 61 67 6E 69 74 75 64 65 0D 0A ade..magnitude..
008AB0: 6D 61 69 6C 0D 0A 6D 61 69 6C 69 6E 67 0D 0A 6D mail..mailing..m
008AC0: 61 69 6E 0D 0A 6D 61 69 6E 66 72 61 6D 65 73 0D ain..mainframes.
008AD0: 0A 6D 61 69 6E 74 61 69 6E 69 6E 67 0D 0A 6D 61 .maintaining..ma
008AE0: 69 6E 74 61 69 6E 73 0D 0A 6D 61 69 6E 74 65 6E intains..mainten
008AF0: 61 6E 63 65 0D 0A 6D 61 6A 6F 72 0D 0A 6D 61 6B ance..major..mak
008B00: 63 72 65 6D 65 6E 74 0D 0A 69 6E 63 72 65 6D 65 crement..increme
008B10: 6E 74 61 6C 0D 0A 69 6E 63 72 65 6D 65 6E 74 65 ntal..incremente
008B20: 64 0D 0A 69 6E 63 72 65 6D 65 6E 74 69 6E 67 0D d..incrementing.
008B30: 0A 69 6E 63 72 65 6D 65 6E 74 73 0D 0A 69 6E 64 .increments..ind
008B40: 65 65 64 0D 0A 69 6E 64 65 66 69 6E 69 74 65 0D eed..indefinite.
008B50: 0A 69 6E 64 65 6E 74 0D 0A 69 6E 64 65 6E 74 65 .indent..indente
008B60: 64 0D 0A 69 6E 64 65 6E 74 69 6E 67 0D 0A 69 6E d..indenting..in
008B70: 64 65 6E 74 69 6F 6E 0D 0A 69 6E 64 65 70 65 6E dention..indepen
008B80: 64 65 6E 63 65 0D 0A 69 6E 64 65 70 65 6E 64 65 dence..independe
008B90: 6E 74 0D 0A 69 6E 64 65 70 65 6E 64 65 6E 74 6C nt..independentl
008BA0: 79 0D 0A 69 6E 64 65 78 0D 0A 69 6E 64 69 63 61 y..index..indica
008BB0: 74 65 0D 0A 69 6E 64 69 63 61 74 65 64 0D 0A 69 te..indicated..i
008BC0: 6E 64 69 63 61 74 65 73 0D 0A 69 6E 64 69 63 61 ndicates..indica
008BD0: 74 69 6E 67 0D 0A 69 6E 64 69 63 61 74 6F 72 0D ting..indicator.
008BE0: 0A 69 6E 64 69 72 65 63 74 0D 0A 69 6E 64 69 72 .indirect..indir
008BF0: 65 63 74 6C 79 0D 0A 69 6E 64 69 76 69 64 75 61 ectly..individua
008C00: 6C 0D 0A 69 6E 64 69 76 69 64 75 61 6C 6C 79 0D l..individually.
008C10: 0A 69 6E 65 66 66 69 63 69 65 6E 63 69 65 73 0D .inefficiencies.
008C20: 0A 69 6E 65 71 75 61 6C 69 74 79 0D 0A 69 6E 65 .inequality..ine
008C30: 78 70 65 6E 73 69 76 65 0D 0A 69 6E 66 6F 72 6D xpensive..inform
008C40: 61 74 69 6F 6E 0D 0A 69 6E 66 6F 72 6D 73 0D 0A ation..informs..
008C50: 69 6E 66 72 69 6E 67 65 73 0D 0A 69 6E 69 74 69 infringes..initi
008C60: 61 6C 0D 0A 69 6E 69 74 69 61 6C 69 7A 61 74 69 al..initializati
008C70: 6F 6E 0D 0A 69 6E 69 74 69 61 6C 69 7A 65 0D 0A on..initialize..
008C80: 69 6E 69 74 69 61 6C 69 7A 65 64 0D 0A 69 6E 69 initialized..ini
008C90: 74 69 61 6C 6C 79 0D 0A 69 6E 69 74 69 61 74 65 tially..initiate
008CA0: 0D 0A 69 6E 69 74 69 61 74 65 64 0D 0A 69 6E 69 ..initiated..ini
008CB0: 74 69 61 74 65 73 0D 0A 69 6E 6E 65 72 0D 0A 69 tiates..inner..i
008CC0: 6E 70 75 74 0D 0A 69 6E 70 75 74 73 0D 0A 69 6E nput..inputs..in
008CD0: 73 65 72 74 0D 0A 69 6E 73 65 72 74 65 64 0D 0A sert..inserted..
008CE0: 69 6E 73 65 72 74 69 6E 67 0D 0A 69 6E 73 65 72 inserting..inser
008CF0: 74 73 0D 0A 69 6E 73 69 64 65 0D 0A 69 6E 73 69 ts..inside..insi
008D00: 65 0D 0A 6D 61 6B 65 73 0D 0A 6D 61 6B 69 6E 67 e..makes..making
008D10: 0D 0A 6D 61 6E 0D 0A 6D 61 6E 61 67 65 6D 65 6E ..man..managemen
008D20: 74 0D 0A 6D 61 6E 69 70 75 6C 61 74 65 0D 0A 6D t..manipulate..m
008D30: 61 6E 69 70 75 6C 61 74 65 64 0D 0A 6D 61 6E 69 anipulated..mani
008D40: 70 75 6C 61 74 69 6F 6E 0D 0A 6D 61 6E 69 70 75 pulation..manipu
008D50: 6C 61 74 69 6F 6E 73 0D 0A 6D 61 6E 6E 65 72 0D lations..manner.
008D60: 0A 6D 61 6E 75 61 6C 0D 0A 6D 61 6E 75 61 6C 6C .manual..manuall
008D70: 79 0D 0A 6D 61 6E 79 0D 0A 6D 61 70 0D 0A 6D 61 y..many..map..ma
008D80: 72 67 69 6E 0D 0A 6D 61 72 67 69 6E 73 0D 0A 6D rgin..margins..m
008D90: 61 72 6B 0D 0A 6D 61 72 6B 73 0D 0A 6D 61 74 63 ark..marks..matc
008DA0: 68 0D 0A 6D 61 74 63 68 65 64 0D 0A 6D 61 74 63 h..matched..matc
008DB0: 68 65 73 0D 0A 6D 61 74 63 68 69 6E 67 0D 0A 6D hes..matching..m
008DC0: 61 74 65 72 69 61 6C 0D 0A 6D 61 74 72 69 78 0D aterial..matrix.
008DD0: 0A 6D 61 74 74 65 72 0D 0A 6D 61 78 69 6D 75 6D .matter..maximum
008DE0: 0D 0A 6D 61 79 0D 0A 6D 65 0D 0A 6D 65 61 6E 0D ..may..me..mean.
008DF0: 0A 6D 65 61 6E 69 6E 67 0D 0A 6D 65 61 6E 69 6E .meaning..meanin
008E00: 67 73 0D 0A 6D 65 61 6E 73 0D 0A 6D 65 63 68 61 gs..means..mecha
008E10: 6E 69 73 6D 0D 0A 6D 65 65 74 0D 0A 6D 65 65 74 nism..meet..meet
008E20: 69 6E 67 0D 0A 6D 65 6D 6F 72 79 0D 0A 6D 65 6E ing..memory..men
008E30: 74 69 6F 6E 65 64 0D 0A 6D 65 6E 74 69 6F 6E 73 tioned..mentions
008E40: 0D 0A 6D 65 72 65 6C 79 0D 0A 6D 65 72 67 65 0D ..merely..merge.
008E50: 0A 6D 65 72 67 65 64 0D 0A 6D 65 72 67 65 73 0D .merged..merges.
008E60: 0A 6D 65 72 67 69 6E 67 0D 0A 6D 65 73 73 61 67 .merging..messag
008E70: 65 0D 0A 6D 65 73 73 61 67 65 73 0D 0A 6D 65 74 e..messages..met
008E80: 61 63 68 61 72 61 63 74 65 72 73 0D 0A 6D 65 74 acharacters..met
008E90: 68 6F 64 0D 0A 6D 65 74 68 6F 64 73 0D 0A 6D 69 hod..methods..mi
008EA0: 63 72 6F 0D 0A 6D 69 63 72 6F 63 6F 6D 70 75 74 cro..microcomput
008EB0: 65 72 0D 0A 6D 69 63 72 6F 63 6F 6D 70 75 74 65 er..microcompute
008EC0: 72 73 0D 0A 6D 69 63 72 6F 73 0D 0A 6D 69 64 64 rs..micros..midd
008ED0: 6C 65 0D 0A 6D 69 67 68 74 0D 0A 6D 69 67 72 61 le..might..migra
008EE0: 74 69 6F 6E 0D 0A 6D 69 6E 64 0D 0A 6D 69 6E 69 tion..mind..mini
008EF0: 6D 69 7A 65 0D 0A 6D 69 6E 69 6D 75 6D 0D 0A 6D mize..minimum..m
008F00: 64 69 6F 75 73 0D 0A 69 6E 73 70 69 72 61 74 69 dious..inspirati
008F10: 6F 6E 0D 0A 69 6E 73 70 69 72 65 64 0D 0A 69 6E on..inspired..in
008F20: 73 74 61 6C 6C 0D 0A 69 6E 73 74 61 6C 6C 61 74 stall..installat
008F30: 69 6F 6E 0D 0A 69 6E 73 74 61 6C 6C 65 64 0D 0A ion..installed..
008F40: 69 6E 73 74 61 6C 6C 69 6E 67 0D 0A 69 6E 73 74 installing..inst
008F50: 61 6E 63 65 0D 0A 69 6E 73 74 61 6E 63 65 73 0D ance..instances.
008F60: 0A 69 6E 73 74 65 61 64 0D 0A 69 6E 73 74 72 75 .instead..instru
008F70: 63 74 0D 0A 69 6E 73 74 72 75 63 74 69 6E 67 0D ct..instructing.
008F80: 0A 69 6E 73 74 72 75 63 74 69 6F 6E 0D 0A 69 6E .instruction..in
008F90: 73 74 72 75 63 74 69 6F 6E 73 0D 0A 69 6E 73 74 structions..inst
008FA0: 72 75 63 74 73 0D 0A 69 6E 73 75 66 66 69 63 69 ructs..insuffici
008FB0: 65 6E 74 0D 0A 69 6E 74 61 63 74 0D 0A 69 6E 74 ent..intact..int
008FC0: 65 67 65 72 0D 0A 69 6E 74 65 67 65 72 73 0D 0A eger..integers..
008FD0: 69 6E 74 65 67 72 69 74 79 0D 0A 69 6E 74 65 6C integrity..intel
008FE0: 6C 69 67 65 6E 74 0D 0A 69 6E 74 65 6E 64 0D 0A ligent..intend..
008FF0: 69 6E 74 65 6E 64 65 64 0D 0A 69 6E 74 65 6E 74 intended..intent
009000: 0D 0A 69 6E 74 65 72 61 63 74 69 6F 6E 0D 0A 69 ..interaction..i
009010: 6E 74 65 72 63 65 70 74 0D 0A 69 6E 74 65 72 63 ntercept..interc
009020: 65 70 74 73 0D 0A 69 6E 74 65 72 65 73 74 0D 0A epts..interest..
009030: 69 6E 74 65 72 65 73 74 65 64 0D 0A 69 6E 74 65 interested..inte
009040: 72 65 73 74 69 6E 67 0D 0A 69 6E 74 65 72 66 61 resting..interfa
009050: 63 65 0D 0A 69 6E 74 65 72 66 61 63 65 73 0D 0A ce..interfaces..
009060: 69 6E 74 65 72 66 65 72 65 0D 0A 69 6E 74 65 72 interfere..inter
009070: 66 65 72 69 6E 67 0D 0A 69 6E 74 65 72 6E 61 6C fering..internal
009080: 73 0D 0A 69 6E 74 65 72 70 72 65 74 61 74 69 6F s..interpretatio
009090: 6E 0D 0A 69 6E 74 65 72 70 72 65 74 65 64 0D 0A n..interpreted..
0090A0: 69 6E 74 65 72 72 75 70 74 0D 0A 69 6E 74 65 72 interrupt..inter
0090B0: 72 75 70 74 65 64 0D 0A 69 6E 74 65 72 72 75 70 rupted..interrup
0090C0: 74 69 6E 67 0D 0A 69 6E 74 65 72 72 75 70 74 69 ting..interrupti
0090D0: 6F 6E 0D 0A 69 6E 74 65 72 72 75 70 74 69 6F 6E on..interruption
0090E0: 73 0D 0A 69 6E 74 65 72 72 75 70 74 73 0D 0A 69 s..interrupts..i
0090F0: 6E 74 65 72 73 70 65 72 73 65 64 0D 0A 69 6E 74 nterspersed..int
009100: 69 6E 6F 72 0D 0A 6D 69 6E 75 73 0D 0A 6D 69 6E inor..minus..min
009110: 75 74 65 0D 0A 6D 69 6E 75 74 65 73 0D 0A 6D 69 ute..minutes..mi
009120: 72 72 6F 72 0D 0A 6D 69 73 63 65 6C 6C 61 6E 65 rror..miscellane
009130: 6F 75 73 0D 0A 6D 69 73 73 69 6E 67 0D 0A 6D 69 ous..missing..mi
009140: 73 73 69 73 73 69 70 70 69 0D 0A 6D 69 73 73 70 ssissippi..missp
009150: 65 6C 6C 65 64 0D 0A 6D 69 73 73 70 65 6C 6C 69 elled..misspelli
009160: 6E 67 73 0D 0A 6D 69 73 74 61 6B 65 0D 0A 6D 69 ngs..mistake..mi
009170: 78 65 64 0D 0A 6D 69 78 69 6E 67 0D 0A 6D 6E 65 xed..mixing..mne
009180: 6D 6F 6E 69 63 0D 0A 6D 6E 65 6D 6F 6E 69 63 73 monic..mnemonics
009190: 0D 0A 6D 6F 64 65 0D 0A 6D 6F 64 65 73 0D 0A 6D ..mode..modes..m
0091A0: 6F 64 65 73 74 0D 0A 6D 6F 64 69 66 69 63 61 74 odest..modificat
0091B0: 69 6F 6E 0D 0A 6D 6F 64 69 66 69 63 61 74 69 6F ion..modificatio
0091C0: 6E 73 0D 0A 6D 6F 64 69 66 69 65 64 0D 0A 6D 6F ns..modified..mo
0091D0: 64 69 66 69 65 72 73 0D 0A 6D 6F 64 69 66 79 0D difiers..modify.
0091E0: 0A 6D 6F 64 69 66 79 69 6E 67 0D 0A 6D 6F 64 75 .modifying..modu
0091F0: 6C 65 0D 0A 6D 6F 64 75 6C 65 73 0D 0A 6D 6F 6E le..modules..mon
009200: 69 74 6F 72 0D 0A 6D 6F 6E 69 74 6F 72 65 64 0D itor..monitored.
009210: 0A 6D 6F 6E 69 74 6F 72 73 0D 0A 6D 6F 72 65 0D .monitors..more.
009220: 0A 6D 6F 73 74 0D 0A 6D 6F 75 6E 74 0D 0A 6D 6F .most..mount..mo
009230: 75 6E 74 65 64 0D 0A 6D 6F 76 65 0D 0A 6D 6F 76 unted..move..mov
009240: 65 64 0D 0A 6D 6F 76 65 73 0D 0A 6D 72 0D 0A 6D ed..moves..mr..m
009250: 75 63 68 0D 0A 6D 75 6C 74 69 70 6C 65 0D 0A 6D uch..multiple..m
009260: 75 6C 74 69 70 6C 69 65 73 0D 0A 6D 75 6C 74 69 ultiplies..multi
009270: 70 6C 79 0D 0A 6D 75 73 74 0D 0A 6D 75 74 75 61 ply..must..mutua
009280: 6C 6C 79 0D 0A 6D 79 0D 0A 6D 79 73 74 65 72 69 lly..my..mysteri
009290: 6F 75 73 0D 0A 6E 0D 0A 6E 61 6D 65 0D 0A 6E 61 ous..n..name..na
0092A0: 6D 65 64 0D 0A 6E 61 6D 65 73 0D 0A 6E 61 6D 69 med..names..nami
0092B0: 6E 67 0D 0A 6E 61 74 75 72 61 6C 0D 0A 6E 61 74 ng..natural..nat
0092C0: 75 72 61 6C 6C 79 0D 0A 6E 61 74 75 72 65 0D 0A urally..nature..
0092D0: 6E 65 61 72 0D 0A 6E 65 61 72 6C 79 0D 0A 6E 65 near..nearly..ne
0092E0: 61 74 0D 0A 6E 65 63 65 73 73 61 72 69 6C 79 0D at..necessarily.
0092F0: 0A 6E 65 63 65 73 73 61 72 79 0D 0A 6E 65 65 64 .necessary..need
009300: 65 72 76 65 6E 69 6E 67 0D 0A 69 6E 74 6F 0D 0A ervening..into..
009310: 69 6E 74 72 6F 64 75 63 65 0D 0A 69 6E 74 72 6F introduce..intro
009320: 64 75 63 65 64 0D 0A 69 6E 74 72 6F 64 75 63 65 duced..introduce
009330: 73 0D 0A 69 6E 74 72 6F 64 75 63 74 69 6F 6E 0D s..introduction.
009340: 0A 69 6E 74 72 6F 64 75 63 74 6F 72 79 0D 0A 69 .introductory..i
009350: 6E 76 61 6C 69 64 0D 0A 69 6E 76 61 6C 69 64 61 nvalid..invalida
009360: 74 65 64 0D 0A 69 6E 76 61 6C 69 64 61 74 69 6E ted..invalidatin
009370: 67 0D 0A 69 6E 76 61 6C 75 61 62 6C 65 0D 0A 69 g..invaluable..i
009380: 6E 76 6F 6B 65 0D 0A 69 6E 76 6F 6B 65 64 0D 0A nvoke..invoked..
009390: 69 6E 76 6F 6B 65 73 0D 0A 69 6E 76 6F 6B 69 6E invokes..invokin
0093A0: 67 0D 0A 69 6E 76 6F 6C 76 65 0D 0A 69 6E 76 6F g..involve..invo
0093B0: 6C 76 65 64 0D 0A 69 6E 76 6F 6C 76 65 73 0D 0A lved..involves..
0093C0: 69 6E 76 6F 6C 76 69 6E 67 0D 0A 69 6E 77 61 72 involving..inwar
0093D0: 64 0D 0A 69 72 6F 6E 69 63 61 6C 6C 79 0D 0A 69 d..ironically..i
0093E0: 72 72 69 74 61 6E 74 73 0D 0A 69 73 0D 0A 69 73 rritants..is..is
0093F0: 6F 6C 61 74 65 64 0D 0A 69 73 6F 6C 61 74 69 6E olated..isolatin
009400: 67 0D 0A 69 73 73 75 65 0D 0A 69 73 73 75 65 64 g..issue..issued
009410: 0D 0A 69 73 73 75 69 6E 67 0D 0A 69 74 0D 0A 69 ..issuing..it..i
009420: 74 27 73 0D 0A 69 74 65 6D 0D 0A 69 74 65 72 61 t's..item..itera
009430: 74 69 6F 6E 0D 0A 69 74 73 0D 0A 69 74 73 65 6C tion..its..itsel
009440: 66 0D 0A 6A 0D 0A 6A 61 6E 75 61 72 79 0D 0A 6A f..j..january..j
009450: 6F 62 0D 0A 6A 6F 69 6E 0D 0A 6A 6F 69 6E 65 64 ob..join..joined
009460: 0D 0A 6A 6F 75 72 6E 61 6C 0D 0A 6A 75 64 67 65 ..journal..judge
009470: 64 0D 0A 6A 75 64 69 63 69 6F 75 73 0D 0A 6A 75 d..judicious..ju
009480: 64 69 63 69 6F 75 73 6C 79 0D 0A 6A 75 6D 70 0D diciously..jump.
009490: 0A 6A 75 6D 70 73 0D 0A 6A 75 73 74 0D 0A 6A 75 .jumps..just..ju
0094A0: 73 74 69 66 69 63 61 74 69 6F 6E 0D 0A 6A 75 73 stification..jus
0094B0: 74 69 66 69 65 64 0D 0A 6A 75 73 74 69 66 79 0D tified..justify.
0094C0: 0A 6A 75 73 74 69 66 79 69 6E 67 0D 0A 6B 0D 0A .justifying..k..
0094D0: 6B 65 65 70 0D 0A 6B 65 65 70 69 6E 67 0D 0A 6B keep..keeping..k
0094E0: 65 65 70 73 0D 0A 6B 65 70 74 0D 0A 6B 65 79 0D eeps..kept..key.
0094F0: 0A 6B 65 79 62 6F 61 72 64 0D 0A 6B 65 79 73 0D .keyboard..keys.
009500: 0D 0A 6E 65 65 64 65 64 0D 0A 6E 65 65 64 73 0D ..needed..needs.
009510: 0A 6E 65 67 61 74 65 0D 0A 6E 65 67 61 74 65 73 .negate..negates
009520: 0D 0A 6E 65 67 61 74 69 76 65 0D 0A 6E 65 67 6C ..negative..negl
009530: 65 63 74 65 64 0D 0A 6E 65 73 74 65 64 0D 0A 6E ected..nested..n
009540: 65 73 74 69 6E 67 0D 0A 6E 65 76 65 72 0D 0A 6E esting..never..n
009550: 65 76 65 72 74 68 65 6C 65 73 73 0D 0A 6E 65 77 evertheless..new
009560: 0D 0A 6E 65 78 74 0D 0A 6E 69 62 62 6C 65 0D 0A ..next..nibble..
009570: 6E 69 62 62 6C 65 73 0D 0A 6E 6F 0D 0A 6E 6F 6D nibbles..no..nom
009580: 69 6E 61 6C 0D 0A 6E 6F 6E 2D 7A 65 72 6F 0D 0A inal..non-zero..
009590: 6E 6F 6E 63 6F 6D 6D 65 72 63 69 61 6C 0D 0A 6E noncommercial..n
0095A0: 6F 6E 65 0D 0A 6E 6F 72 0D 0A 6E 6F 72 6D 61 6C one..nor..normal
0095B0: 0D 0A 6E 6F 72 6D 61 6C 6C 79 0D 0A 6E 6F 72 74 ..normally..nort
0095C0: 68 0D 0A 6E 6F 74 0D 0A 6E 6F 74 61 74 69 6F 6E h..not..notation
0095D0: 0D 0A 6E 6F 74 65 0D 0A 6E 6F 74 65 73 0D 0A 6E ..note..notes..n
0095E0: 6F 74 68 69 6E 67 0D 0A 6E 6F 74 69 63 65 0D 0A othing..notice..
0095F0: 6E 6F 76 65 6D 62 65 72 0D 0A 6E 6F 77 0D 0A 6E november..now..n
009600: 75 63 6C 65 75 73 0D 0A 6E 75 69 73 61 6E 63 65 ucleus..nuisance
009610: 0D 0A 6E 75 6C 6C 0D 0A 6E 75 6D 62 65 72 0D 0A ..null..number..
009620: 6E 75 6D 62 65 72 65 64 0D 0A 6E 75 6D 62 65 72 numbered..number
009630: 69 6E 67 0D 0A 6E 75 6D 62 65 72 73 0D 0A 6E 75 ing..numbers..nu
009640: 6D 65 72 69 63 0D 0A 6E 75 6D 65 72 69 63 61 6C meric..numerical
009650: 0D 0A 6E 75 6D 65 72 69 63 61 6C 6C 79 0D 0A 6F ..numerically..o
009660: 0D 0A 6F 62 65 79 0D 0A 6F 62 6A 65 63 74 0D 0A ..obey..object..
009670: 6F 62 6A 65 63 74 69 76 65 73 0D 0A 6F 62 6A 65 objectives..obje
009680: 63 74 73 0D 0A 6F 62 73 65 72 76 65 0D 0A 6F 62 cts..observe..ob
009690: 73 65 72 76 69 6E 67 0D 0A 6F 62 74 61 69 6E 0D serving..obtain.
0096A0: 0A 6F 62 74 61 69 6E 65 64 0D 0A 6F 62 74 61 69 .obtained..obtai
0096B0: 6E 69 6E 67 0D 0A 6F 62 74 61 69 6E 73 0D 0A 6F ning..obtains..o
0096C0: 62 76 69 6F 75 73 0D 0A 6F 63 63 61 73 69 6F 6E bvious..occasion
0096D0: 61 6C 0D 0A 6F 63 63 61 73 69 6F 6E 61 6C 6C 79 al..occasionally
0096E0: 0D 0A 6F 63 63 61 73 69 6F 6E 73 0D 0A 6F 63 63 ..occasions..occ
0096F0: 75 70 69 65 64 0D 0A 6F 63 63 75 70 69 65 73 0D upied..occupies.
009700: 0A 6B 65 79 77 6F 72 64 0D 0A 6B 69 6E 64 0D 0A .keyword..kind..
009710: 6B 69 6E 64 73 0D 0A 6B 6E 6F 77 0D 0A 6B 6E 6F kinds..know..kno
009720: 77 69 6E 67 0D 0A 6B 6E 6F 77 6C 65 64 67 65 61 wing..knowledgea
009730: 62 6C 65 0D 0A 6B 6E 6F 77 6E 0D 0A 6B 6E 6F 77 ble..known..know
009740: 73 0D 0A 6C 0D 0A 6C 61 62 65 6C 0D 0A 6C 61 62 s..l..label..lab
009750: 65 6C 73 0D 0A 6C 61 62 6F 72 61 74 6F 72 69 65 els..laboratorie
009760: 73 0D 0A 6C 61 62 6F 72 61 74 6F 72 79 0D 0A 6C s..laboratory..l
009770: 61 62 73 0D 0A 6C 61 63 6B 0D 0A 6C 61 67 0D 0A abs..lack..lag..
009780: 6C 61 6E 67 75 61 67 65 0D 0A 6C 61 6E 67 75 61 language..langua
009790: 67 65 73 0D 0A 6C 61 72 67 65 0D 0A 6C 61 72 67 ges..large..larg
0097A0: 65 6C 79 0D 0A 6C 61 72 67 65 72 0D 0A 6C 61 73 ely..larger..las
0097B0: 74 0D 0A 6C 61 74 65 72 0D 0A 6C 61 74 65 73 74 t..later..latest
0097C0: 0D 0A 6C 61 74 74 65 72 0D 0A 6C 61 79 0D 0A 6C ..latter..lay..l
0097D0: 61 79 6F 75 74 0D 0A 6C 65 61 64 69 6E 67 0D 0A ayout..leading..
0097E0: 6C 65 61 70 0D 0A 6C 65 61 72 6E 0D 0A 6C 65 61 leap..learn..lea
0097F0: 72 6E 65 64 0D 0A 6C 65 61 72 6E 69 6E 67 0D 0A rned..learning..
009800: 6C 65 61 72 6E 73 0D 0A 6C 65 61 73 74 0D 0A 6C learns..least..l
009810: 65 61 76 65 0D 0A 6C 65 61 76 65 73 0D 0A 6C 65 eave..leaves..le
009820: 61 76 69 6E 67 0D 0A 6C 65 66 74 0D 0A 6C 65 66 aving..left..lef
009830: 74 6D 6F 73 74 0D 0A 6C 65 67 61 6C 0D 0A 6C 65 tmost..legal..le
009840: 6E 67 74 68 0D 0A 6C 65 6E 67 74 68 73 0D 0A 6C ngth..lengths..l
009850: 65 73 73 0D 0A 6C 65 74 0D 0A 6C 65 74 73 0D 0A ess..let..lets..
009860: 6C 65 74 74 65 72 0D 0A 6C 65 74 74 65 72 73 0D letter..letters.
009870: 0A 6C 65 76 65 6C 0D 0A 6C 65 76 65 6C 73 0D 0A .level..levels..
009880: 6C 69 62 72 61 72 69 65 73 0D 0A 6C 69 62 72 61 libraries..libra
009890: 72 79 0D 0A 6C 69 63 65 6E 73 65 65 0D 0A 6C 69 ry..licensee..li
0098A0: 6B 65 0D 0A 6C 69 6B 65 6C 69 68 6F 6F 64 0D 0A ke..likelihood..
0098B0: 6C 69 6B 65 6C 79 0D 0A 6C 69 6B 65 77 69 73 65 likely..likewise
0098C0: 0D 0A 6C 69 6D 69 74 61 74 69 6F 6E 73 0D 0A 6C ..limitations..l
0098D0: 69 6D 69 74 65 64 0D 0A 6C 69 6D 69 74 69 6E 67 imited..limiting
0098E0: 0D 0A 6C 69 6D 69 74 73 0D 0A 6C 69 6E 65 0D 0A ..limits..line..
0098F0: 6C 69 6E 65 73 0D 0A 6C 69 6E 6B 0D 0A 6C 69 6E lines..link..lin
009900: 54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 00 00 00 Track-Info......
009910: 08 00 01 00 02 09 52 E5 08 00 41 02 00 00 00 02 ......R...A.....
009920: 08 00 46 02 00 00 00 02 08 00 42 02 00 00 00 02 ..F.......B.....
009930: 08 00 47 02 00 00 00 02 08 00 43 02 00 00 00 02 ..G.......C.....
009940: 08 00 48 02 00 00 00 02 08 00 44 02 00 00 00 02 ..H.......D.....
009950: 08 00 49 02 00 00 00 02 08 00 45 02 00 00 00 02 ..I.......E.....
009960: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
009970: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
009980: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
009990: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0099A0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0099B0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0099C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0099D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0099E0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0099F0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
009A00: 0A 6F 63 63 75 70 79 0D 0A 6F 63 63 75 70 79 69 .occupy..occupyi
009A10: 6E 67 0D 0A 6F 63 63 75 72 0D 0A 6F 63 63 75 72 ng..occur..occur
009A20: 72 65 64 0D 0A 6F 63 63 75 72 72 65 6E 63 65 0D red..occurrence.
009A30: 0A 6F 63 63 75 72 72 65 6E 63 65 73 0D 0A 6F 63 .occurrences..oc
009A40: 63 75 72 72 69 6E 67 0D 0A 6F 63 63 75 72 73 0D curring..occurs.
009A50: 0A 6F 64 64 0D 0A 6F 66 0D 0A 6F 66 66 0D 0A 6F .odd..of..off..o
009A60: 66 66 65 72 0D 0A 6F 66 66 65 72 73 0D 0A 6F 66 ffer..offers..of
009A70: 66 73 65 74 0D 0A 6F 66 66 73 65 74 73 0D 0A 6F fset..offsets..o
009A80: 66 74 65 6E 0D 0A 6F 68 0D 0A 6F 6C 64 0D 0A 6F ften..oh..old..o
009A90: 6D 69 74 74 65 64 0D 0A 6F 6E 0D 0A 6F 6E 63 65 mitted..on..once
009AA0: 0D 0A 6F 6E 65 0D 0A 6F 6E 65 27 73 0D 0A 6F 6E ..one..one's..on
009AB0: 65 73 0D 0A 6F 6E 6C 79 0D 0A 6F 6E 74 6F 0D 0A es..only..onto..
009AC0: 6F 70 65 6E 0D 0A 6F 70 65 6E 65 64 0D 0A 6F 70 open..opened..op
009AD0: 65 6E 69 6E 67 0D 0A 6F 70 65 72 61 6E 64 0D 0A ening..operand..
009AE0: 6F 70 65 72 61 6E 64 73 0D 0A 6F 70 65 72 61 74 operands..operat
009AF0: 65 0D 0A 6F 70 65 72 61 74 65 64 0D 0A 6F 70 65 e..operated..ope
009B00: 72 61 74 65 73 0D 0A 6F 70 65 72 61 74 69 6E 67 rates..operating
009B10: 0D 0A 6F 70 65 72 61 74 69 6F 6E 0D 0A 6F 70 65 ..operation..ope
009B20: 72 61 74 69 6F 6E 73 0D 0A 6F 70 65 72 61 74 6F rations..operato
009B30: 72 0D 0A 6F 70 65 72 61 74 6F 72 73 0D 0A 6F 70 r..operators..op
009B40: 70 6F 72 74 75 6E 69 74 79 0D 0A 6F 70 70 6F 73 portunity..oppos
009B50: 65 64 0D 0A 6F 70 70 6F 73 69 74 65 0D 0A 6F 70 ed..opposite..op
009B60: 74 69 6D 69 73 74 69 63 0D 0A 6F 70 74 69 6D 69 timistic..optimi
009B70: 7A 61 74 69 6F 6E 0D 0A 6F 70 74 69 6D 69 7A 65 zation..optimize
009B80: 0D 0A 6F 70 74 69 6D 69 7A 65 64 0D 0A 6F 70 74 ..optimized..opt
009B90: 69 6D 69 7A 65 72 0D 0A 6F 70 74 69 6D 69 7A 69 imizer..optimizi
009BA0: 6E 67 0D 0A 6F 70 74 69 6F 6E 0D 0A 6F 70 74 69 ng..option..opti
009BB0: 6F 6E 61 6C 0D 0A 6F 70 74 69 6F 6E 61 6C 6C 79 onal..optionally
009BC0: 0D 0A 6F 70 74 69 6F 6E 73 0D 0A 6F 72 0D 0A 6F ..options..or..o
009BD0: 72 64 65 72 0D 0A 6F 72 64 69 6E 61 72 69 6C 79 rder..ordinarily
009BE0: 0D 0A 6F 72 64 69 6E 61 72 79 0D 0A 6F 72 67 61 ..ordinary..orga
009BF0: 6E 69 7A 61 74 69 6F 6E 0D 0A 6F 72 67 61 6E 69 nization..organi
009C00: 0A 70 72 69 76 61 74 65 0D 0A 70 72 69 76 69 6C .private..privil
009C10: 65 67 65 0D 0A 70 72 6F 62 61 62 6C 65 0D 0A 70 ege..probable..p
009C20: 72 6F 62 61 62 6C 79 0D 0A 70 72 6F 62 6C 65 6D robably..problem
009C30: 0D 0A 70 72 6F 62 6C 65 6D 73 0D 0A 70 72 6F 63 ..problems..proc
009C40: 65 64 75 72 65 0D 0A 70 72 6F 63 65 64 75 72 65 edure..procedure
009C50: 73 0D 0A 70 72 6F 63 65 65 64 0D 0A 70 72 6F 63 s..proceed..proc
009C60: 65 65 64 69 6E 67 0D 0A 70 72 6F 63 65 65 64 73 eeding..proceeds
009C70: 0D 0A 70 72 6F 63 65 73 73 0D 0A 70 72 6F 63 65 ..process..proce
009C80: 73 73 65 64 0D 0A 70 72 6F 63 65 73 73 65 73 0D ssed..processes.
009C90: 0A 70 72 6F 63 65 73 73 69 6E 67 0D 0A 70 72 6F .processing..pro
009CA0: 63 65 73 73 6F 72 0D 0A 70 72 6F 63 65 73 73 6F cessor..processo
009CB0: 72 73 0D 0A 70 72 6F 64 75 63 65 0D 0A 70 72 6F rs..produce..pro
009CC0: 64 75 63 65 64 0D 0A 70 72 6F 64 75 63 65 73 0D duced..produces.
009CD0: 0A 70 72 6F 64 75 63 69 6E 67 0D 0A 70 72 6F 64 .producing..prod
009CE0: 75 63 74 0D 0A 70 72 6F 64 75 63 74 69 76 65 0D uct..productive.
009CF0: 0A 70 72 6F 64 75 63 74 69 76 69 74 79 0D 0A 70 .productivity..p
009D00: 72 6F 66 65 73 73 69 6F 6E 61 6C 6C 79 0D 0A 70 rofessionally..p
009D10: 72 6F 66 65 73 73 6F 72 73 0D 0A 70 72 6F 67 72 rofessors..progr
009D20: 61 6D 0D 0A 70 72 6F 67 72 61 6D 27 73 0D 0A 70 am..program's..p
009D30: 72 6F 67 72 61 6D 6D 65 72 0D 0A 70 72 6F 67 72 rogrammer..progr
009D40: 61 6D 6D 65 72 27 73 0D 0A 70 72 6F 67 72 61 6D ammer's..program
009D50: 6D 65 72 73 0D 0A 70 72 6F 67 72 61 6D 6D 69 6E mers..programmin
009D60: 67 0D 0A 70 72 6F 67 72 61 6D 73 0D 0A 70 72 6F g..programs..pro
009D70: 67 72 65 73 73 0D 0A 70 72 6F 6A 65 63 74 0D 0A gress..project..
009D80: 70 72 6F 6A 65 63 74 73 0D 0A 70 72 6F 6D 69 73 projects..promis
009D90: 65 64 0D 0A 70 72 6F 6D 70 74 0D 0A 70 72 6F 6D ed..prompt..prom
009DA0: 70 74 65 64 0D 0A 70 72 6F 6D 70 74 69 6E 67 0D pted..prompting.
009DB0: 0A 70 72 6F 6D 70 74 73 0D 0A 70 72 6F 6F 66 0D .prompts..proof.
009DC0: 0A 70 72 6F 6F 66 69 6E 67 0D 0A 70 72 6F 6F 66 .proofing..proof
009DD0: 72 65 61 64 69 6E 67 0D 0A 70 72 6F 6F 66 73 0D reading..proofs.
009DE0: 0A 70 72 6F 70 65 72 0D 0A 70 72 6F 70 65 72 6C .proper..properl
009DF0: 79 0D 0A 70 72 6F 70 65 72 74 69 65 73 0D 0A 70 y..properties..p
009E00: 7A 61 74 69 6F 6E 61 6C 0D 0A 6F 72 67 61 6E 69 zational..organi
009E10: 7A 65 0D 0A 6F 72 67 61 6E 69 7A 65 64 0D 0A 6F ze..organized..o
009E20: 72 69 65 6E 74 65 64 0D 0A 6F 72 69 67 69 6E 0D riented..origin.
009E30: 0A 6F 72 69 67 69 6E 61 6C 0D 0A 6F 72 69 67 69 .original..origi
009E40: 6E 61 6C 6C 79 0D 0A 6F 74 68 65 72 0D 0A 6F 74 nally..other..ot
009E50: 68 65 72 73 0D 0A 6F 74 68 65 72 77 69 73 65 0D hers..otherwise.
009E60: 0A 6F 75 72 0D 0A 6F 75 74 0D 0A 6F 75 74 63 6F .our..out..outco
009E70: 6D 65 0D 0A 6F 75 74 65 72 0D 0A 6F 75 74 6C 69 me..outer..outli
009E80: 6E 65 0D 0A 6F 75 74 6C 69 6E 65 64 0D 0A 6F 75 ne..outlined..ou
009E90: 74 70 75 74 0D 0A 6F 75 74 70 75 74 73 0D 0A 6F tput..outputs..o
009EA0: 75 74 73 69 64 65 0D 0A 6F 76 65 72 0D 0A 6F 76 utside..over..ov
009EB0: 65 72 63 6F 6D 65 73 0D 0A 6F 76 65 72 66 6C 6F ercomes..overflo
009EC0: 77 0D 0A 6F 76 65 72 68 65 61 64 0D 0A 6F 76 65 w..overhead..ove
009ED0: 72 6C 61 69 64 0D 0A 6F 76 65 72 6C 61 70 0D 0A rlaid..overlap..
009EE0: 6F 76 65 72 6C 61 70 73 0D 0A 6F 76 65 72 6C 61 overlaps..overla
009EF0: 79 73 0D 0A 6F 76 65 72 72 69 64 64 65 6E 0D 0A ys..overridden..
009F00: 6F 76 65 72 72 69 64 65 0D 0A 6F 76 65 72 72 69 override..overri
009F10: 64 65 73 0D 0A 6F 76 65 72 76 69 65 77 0D 0A 6F des..overview..o
009F20: 76 65 72 77 72 69 74 74 65 6E 0D 0A 6F 77 6E 0D verwritten..own.
009F30: 0A 70 0D 0A 70 61 63 6B 61 67 65 0D 0A 70 61 63 .p..package..pac
009F40: 6B 61 67 65 73 0D 0A 70 61 64 64 65 64 0D 0A 70 kages..padded..p
009F50: 61 67 65 0D 0A 70 61 67 65 73 0D 0A 70 61 69 64 age..pages..paid
009F60: 0D 0A 70 61 69 72 0D 0A 70 61 69 72 73 0D 0A 70 ..pair..pairs..p
009F70: 61 6C 61 74 61 62 6C 65 0D 0A 70 61 70 65 72 0D alatable..paper.
009F80: 0A 70 61 72 61 67 72 61 70 68 0D 0A 70 61 72 61 .paragraph..para
009F90: 67 72 61 70 68 73 0D 0A 70 61 72 61 6C 6C 65 6C graphs..parallel
009FA0: 0D 0A 70 61 72 61 6C 6C 65 6C 73 0D 0A 70 61 72 ..parallels..par
009FB0: 61 6D 65 74 65 72 0D 0A 70 61 72 61 6D 65 74 65 ameter..paramete
009FC0: 72 73 0D 0A 70 61 72 65 6E 74 68 65 73 65 73 0D rs..parentheses.
009FD0: 0A 70 61 72 69 74 79 0D 0A 70 61 72 6B 0D 0A 70 .parity..park..p
009FE0: 61 72 74 0D 0A 70 61 72 74 69 61 6C 0D 0A 70 61 art..partial..pa
009FF0: 72 74 69 63 75 6C 61 72 0D 0A 70 61 72 74 69 63 rticular..partic
00A000: 72 6F 74 65 63 74 69 6F 6E 0D 0A 70 72 6F 74 6F rotection..proto
00A010: 74 79 70 65 0D 0A 70 72 6F 76 65 0D 0A 70 72 6F type..prove..pro
00A020: 76 65 73 0D 0A 70 72 6F 76 69 64 65 0D 0A 70 72 ves..provide..pr
00A030: 6F 76 69 64 65 64 0D 0A 70 72 6F 76 69 64 65 73 ovided..provides
00A040: 0D 0A 70 72 6F 76 69 64 69 6E 67 0D 0A 70 72 6F ..providing..pro
00A050: 76 69 73 69 6F 6E 0D 0A 70 72 6F 78 69 6D 69 74 vision..proximit
00A060: 79 0D 0A 70 73 65 75 64 6F 0D 0A 70 75 62 6C 69 y..pseudo..publi
00A070: 63 0D 0A 70 75 62 6C 69 73 68 65 64 0D 0A 70 75 c..published..pu
00A080: 62 6C 69 73 68 65 72 0D 0A 70 75 6E 63 68 65 64 blisher..punched
00A090: 0D 0A 70 75 6E 63 74 75 61 74 69 6F 6E 0D 0A 70 ..punctuation..p
00A0A0: 75 72 63 68 61 73 65 64 0D 0A 70 75 72 67 65 0D urchased..purge.
00A0B0: 0A 70 75 72 70 6F 73 65 0D 0A 70 75 72 70 6F 73 .purpose..purpos
00A0C0: 65 73 0D 0A 70 75 72 73 75 65 0D 0A 70 75 73 68 es..pursue..push
00A0D0: 0D 0A 70 75 73 68 65 64 0D 0A 70 75 73 68 65 73 ..pushed..pushes
00A0E0: 0D 0A 70 75 73 68 69 6E 67 0D 0A 70 75 74 0D 0A ..pushing..put..
00A0F0: 70 75 74 73 0D 0A 70 75 74 74 69 6E 67 0D 0A 71 puts..putting..q
00A100: 0D 0A 71 75 61 64 0D 0A 71 75 61 6C 69 74 79 0D ..quad..quality.
00A110: 0A 71 75 65 73 74 69 6F 6E 0D 0A 71 75 65 73 74 .question..quest
00A120: 69 6F 6E 61 62 6C 65 0D 0A 71 75 65 73 74 69 6F ionable..questio
00A130: 6E 73 0D 0A 71 75 65 75 65 0D 0A 71 75 69 63 6B ns..queue..quick
00A140: 0D 0A 71 75 69 74 0D 0A 71 75 69 74 65 0D 0A 71 ..quit..quite..q
00A150: 75 6F 74 61 74 69 6F 6E 0D 0A 71 75 6F 74 65 64 uotation..quoted
00A160: 0D 0A 71 75 6F 74 65 73 0D 0A 71 75 6F 74 69 65 ..quotes..quotie
00A170: 6E 74 0D 0A 72 0D 0A 72 61 67 67 65 64 0D 0A 72 nt..r..ragged..r
00A180: 61 6E 0D 0A 72 61 6E 64 6F 6D 0D 0A 72 61 6E 64 an..random..rand
00A190: 6F 6D 6C 79 0D 0A 72 61 6E 67 65 0D 0A 72 61 74 omly..range..rat
00A1A0: 65 0D 0A 72 61 74 68 65 72 0D 0A 72 65 2D 65 6E e..rather..re-en
00A1B0: 74 65 72 69 6E 67 0D 0A 72 65 2D 65 6E 74 65 72 tering..re-enter
00A1C0: 73 0D 0A 72 65 61 63 68 65 64 0D 0A 72 65 61 63 s..reached..reac
00A1D0: 68 65 73 0D 0A 72 65 61 64 0D 0A 72 65 61 64 61 hes..read..reada
00A1E0: 62 6C 65 0D 0A 72 65 61 64 65 72 0D 0A 72 65 61 ble..reader..rea
00A1F0: 64 65 72 73 0D 0A 72 65 61 64 69 6E 67 0D 0A 72 ders..reading..r
00A200: 75 6C 61 72 73 0D 0A 70 61 72 74 69 74 69 6F 6E ulars..partition
00A210: 65 64 0D 0A 70 61 72 74 73 0D 0A 70 61 73 73 0D ed..parts..pass.
00A220: 0A 70 61 73 73 65 64 0D 0A 70 61 73 73 65 73 0D .passed..passes.
00A230: 0A 70 61 73 73 69 6E 67 0D 0A 70 61 73 74 0D 0A .passing..past..
00A240: 70 61 74 0D 0A 70 61 74 63 68 0D 0A 70 61 74 63 pat..patch..patc
00A250: 68 65 73 0D 0A 70 61 74 63 68 69 6E 67 0D 0A 70 hes..patching..p
00A260: 61 74 69 65 6E 74 6C 79 0D 0A 70 61 74 74 65 72 atiently..patter
00A270: 6E 0D 0A 70 61 74 74 65 72 6E 73 0D 0A 70 61 75 n..patterns..pau
00A280: 73 65 0D 0A 70 61 75 73 65 64 0D 0A 70 61 75 73 se..paused..paus
00A290: 65 73 0D 0A 70 61 75 73 69 6E 67 0D 0A 70 61 79 es..pausing..pay
00A2A0: 0D 0A 70 65 6E 64 69 6E 67 0D 0A 70 65 6E 65 74 ..pending..penet
00A2B0: 72 61 74 69 6F 6E 0D 0A 70 65 6F 70 6C 65 0D 0A ration..people..
00A2C0: 70 65 72 0D 0A 70 65 72 63 65 6E 74 0D 0A 70 65 per..percent..pe
00A2D0: 72 66 65 63 74 6C 79 0D 0A 70 65 72 66 6F 72 61 rfectly..perfora
00A2E0: 74 69 6F 6E 73 0D 0A 70 65 72 66 6F 72 6D 0D 0A tions..perform..
00A2F0: 70 65 72 66 6F 72 6D 61 6E 63 65 0D 0A 70 65 72 performance..per
00A300: 66 6F 72 6D 65 64 0D 0A 70 65 72 66 6F 72 6D 69 formed..performi
00A310: 6E 67 0D 0A 70 65 72 66 6F 72 6D 73 0D 0A 70 65 ng..performs..pe
00A320: 72 69 6F 64 0D 0A 70 65 72 69 6F 64 69 63 0D 0A riod..periodic..
00A330: 70 65 72 69 6F 64 69 63 61 6C 6C 79 0D 0A 70 65 periodically..pe
00A340: 72 69 70 68 65 72 61 6C 0D 0A 70 65 72 6D 69 73 ripheral..permis
00A350: 73 69 6F 6E 0D 0A 70 65 72 6D 69 74 0D 0A 70 65 sion..permit..pe
00A360: 72 6D 69 74 73 0D 0A 70 65 72 6D 69 74 74 65 64 rmits..permitted
00A370: 0D 0A 70 65 72 6D 69 74 74 69 6E 67 0D 0A 70 65 ..permitting..pe
00A380: 72 73 6F 6E 0D 0A 70 65 72 73 6F 6E 61 6C 69 7A rson..personaliz
00A390: 65 0D 0A 70 65 72 73 6F 6E 61 6C 69 7A 65 64 0D e..personalized.
00A3A0: 0A 70 65 72 74 61 69 6E 69 6E 67 0D 0A 70 65 72 .pertaining..per
00A3B0: 74 61 69 6E 73 0D 0A 70 68 61 73 65 0D 0A 70 68 tains..phase..ph
00A3C0: 61 73 65 73 0D 0A 70 68 69 6C 6F 73 6F 70 68 79 ases..philosophy
00A3D0: 0D 0A 70 68 6F 6E 65 74 69 63 0D 0A 70 68 79 73 ..phonetic..phys
00A3E0: 69 63 61 6C 0D 0A 70 68 79 73 69 63 61 6C 6C 79 ical..physically
00A3F0: 0D 0A 70 69 63 6B 0D 0A 70 69 63 6B 65 64 0D 0A ..pick..picked..
00A400: 65 61 64 73 0D 0A 72 65 61 64 79 0D 0A 72 65 61 eads..ready..rea
00A410: 6C 0D 0A 72 65 61 6C 69 7A 65 0D 0A 72 65 61 6C l..realize..real
00A420: 69 7A 65 64 0D 0A 72 65 61 6C 6C 79 0D 0A 72 65 ized..really..re
00A430: 61 73 6F 6E 0D 0A 72 65 61 73 6F 6E 61 62 6C 79 ason..reasonably
00A440: 0D 0A 72 65 61 73 6F 6E 65 64 0D 0A 72 65 61 73 ..reasoned..reas
00A450: 6F 6E 73 0D 0A 72 65 61 73 73 65 6D 62 6C 65 64 ons..reassembled
00A460: 0D 0A 72 65 61 73 73 65 6D 62 6C 69 6E 67 0D 0A ..reassembling..
00A470: 72 65 63 61 6C 63 75 6C 61 74 65 0D 0A 72 65 63 recalculate..rec
00A480: 61 6C 6C 0D 0A 72 65 63 61 6C 6C 65 64 0D 0A 72 all..recalled..r
00A490: 65 63 61 70 74 75 72 65 0D 0A 72 65 63 65 69 76 ecapture..receiv
00A4A0: 65 64 0D 0A 72 65 63 65 69 76 65 73 0D 0A 72 65 ed..receives..re
00A4B0: 63 65 69 76 69 6E 67 0D 0A 72 65 63 65 6E 74 0D ceiving..recent.
00A4C0: 0A 72 65 63 65 6E 74 6C 79 0D 0A 72 65 63 6F 67 .recently..recog
00A4D0: 6E 69 7A 65 0D 0A 72 65 63 6F 67 6E 69 7A 65 64 nize..recognized
00A4E0: 0D 0A 72 65 63 6F 67 6E 69 7A 69 6E 67 0D 0A 72 ..recognizing..r
00A4F0: 65 63 6F 6D 6D 65 6E 64 65 64 0D 0A 72 65 63 6F ecommended..reco
00A500: 6D 70 69 6C 65 64 0D 0A 72 65 63 6F 6D 70 69 6C mpiled..recompil
00A510: 69 6E 67 0D 0A 72 65 63 6F 72 64 0D 0A 72 65 63 ing..record..rec
00A520: 6F 72 64 73 0D 0A 72 65 64 65 66 69 6E 65 64 0D ords..redefined.
00A530: 0A 72 65 64 65 66 69 6E 65 73 0D 0A 72 65 64 69 .redefines..redi
00A540: 72 65 63 74 0D 0A 72 65 64 69 72 65 63 74 61 62 rect..redirectab
00A550: 6C 65 0D 0A 72 65 64 69 72 65 63 74 65 64 0D 0A le..redirected..
00A560: 72 65 64 69 72 65 63 74 69 6E 67 0D 0A 72 65 64 redirecting..red
00A570: 69 72 65 63 74 69 6F 6E 0D 0A 72 65 64 69 73 70 irection..redisp
00A580: 6C 61 79 0D 0A 72 65 64 75 63 65 0D 0A 72 65 64 lay..reduce..red
00A590: 75 63 65 64 0D 0A 72 65 64 75 63 65 73 0D 0A 72 uced..reduces..r
00A5A0: 65 64 75 63 69 6E 67 0D 0A 72 65 64 75 6E 64 61 educing..redunda
00A5B0: 6E 63 79 0D 0A 72 65 66 65 72 0D 0A 72 65 66 65 ncy..refer..refe
00A5C0: 72 65 6E 63 65 0D 0A 72 65 66 65 72 65 6E 63 65 rence..reference
00A5D0: 64 0D 0A 72 65 66 65 72 65 6E 63 65 73 0D 0A 72 d..references..r
00A5E0: 65 66 65 72 65 6E 63 69 6E 67 0D 0A 72 65 66 65 eferencing..refe
00A5F0: 72 72 65 64 0D 0A 72 65 66 65 72 72 69 6E 67 0D rred..referring.
00A600: 70 69 65 63 65 0D 0A 70 69 67 0D 0A 70 69 67 67 piece..pig..pigg
00A610: 79 62 61 63 6B 0D 0A 70 69 6C 65 0D 0A 70 6C 61 yback..pile..pla
00A620: 63 65 0D 0A 70 6C 61 63 65 64 0D 0A 70 6C 61 63 ce..placed..plac
00A630: 65 6D 65 6E 74 0D 0A 70 6C 61 63 65 73 0D 0A 70 ement..places..p
00A640: 6C 61 63 69 6E 67 0D 0A 70 6C 61 6E 73 0D 0A 70 lacing..plans..p
00A650: 6C 65 61 73 61 6E 74 0D 0A 70 6C 65 61 73 65 0D leasant..please.
00A660: 0A 70 6C 65 61 73 65 64 0D 0A 70 6C 75 73 0D 0A .pleased..plus..
00A670: 70 6F 69 6E 74 0D 0A 70 6F 69 6E 74 65 64 0D 0A point..pointed..
00A680: 70 6F 69 6E 74 65 72 0D 0A 70 6F 69 6E 74 65 72 pointer..pointer
00A690: 73 0D 0A 70 6F 69 6E 74 69 6E 67 0D 0A 70 6F 69 s..pointing..poi
00A6A0: 6E 74 73 0D 0A 70 6F 6C 6C 0D 0A 70 6F 6C 6C 69 nts..poll..polli
00A6B0: 6E 67 0D 0A 70 6F 6F 72 6C 79 0D 0A 70 6F 70 0D ng..poorly..pop.
00A6C0: 0A 70 6F 70 70 65 64 0D 0A 70 6F 70 73 0D 0A 70 .popped..pops..p
00A6D0: 6F 70 75 6C 61 72 0D 0A 70 6F 70 75 6C 61 72 69 opular..populari
00A6E0: 74 79 0D 0A 70 6F 72 74 0D 0A 70 6F 72 74 61 62 ty..port..portab
00A6F0: 69 6C 69 74 79 0D 0A 70 6F 72 74 61 62 6C 65 0D ility..portable.
00A700: 0A 70 6F 72 74 65 64 0D 0A 70 6F 72 74 69 6E 67 .ported..porting
00A710: 0D 0A 70 6F 72 74 69 6F 6E 0D 0A 70 6F 72 74 73 ..portion..ports
00A720: 0D 0A 70 6F 73 65 0D 0A 70 6F 73 65 64 0D 0A 70 ..pose..posed..p
00A730: 6F 73 69 74 69 6F 6E 0D 0A 70 6F 73 69 74 69 6F osition..positio
00A740: 6E 61 6C 0D 0A 70 6F 73 69 74 69 6F 6E 73 0D 0A nal..positions..
00A750: 70 6F 73 69 74 69 76 65 0D 0A 70 6F 73 73 69 62 positive..possib
00A760: 69 6C 69 74 69 65 73 0D 0A 70 6F 73 73 69 62 69 ilities..possibi
00A770: 6C 69 74 79 0D 0A 70 6F 73 73 69 62 6C 65 0D 0A lity..possible..
00A780: 70 6F 73 73 69 62 6C 79 0D 0A 70 6F 73 74 61 67 possibly..postag
00A790: 65 0D 0A 70 6F 77 65 72 0D 0A 70 6F 77 65 72 66 e..power..powerf
00A7A0: 75 6C 0D 0A 70 72 61 63 74 69 63 61 6C 0D 0A 70 ul..practical..p
00A7B0: 72 61 63 74 69 63 65 0D 0A 70 72 65 2D 61 6C 6C ractice..pre-all
00A7C0: 6F 63 61 74 69 6E 67 0D 0A 70 72 65 63 61 75 74 ocating..precaut
00A7D0: 69 6F 6E 0D 0A 70 72 65 63 61 75 74 69 6F 6E 61 ion..precautiona
00A7E0: 72 79 0D 0A 70 72 65 63 65 64 65 0D 0A 70 72 65 ry..precede..pre
00A7F0: 63 65 64 65 64 0D 0A 70 72 65 63 65 64 65 73 0D ceded..precedes.
00A800: 0A 72 65 66 65 72 73 0D 0A 72 65 66 6C 65 63 74 .refers..reflect
00A810: 0D 0A 72 65 66 6C 65 63 74 73 0D 0A 72 65 66 75 ..reflects..refu
00A820: 73 65 73 0D 0A 72 65 67 61 69 6E 73 0D 0A 72 65 ses..regains..re
00A830: 67 61 72 64 6C 65 73 73 0D 0A 72 65 67 69 73 74 gardless..regist
00A840: 65 72 0D 0A 72 65 67 69 73 74 65 72 73 0D 0A 72 er..registers..r
00A850: 65 67 75 6C 61 72 0D 0A 72 65 69 6E 73 74 61 74 egular..reinstat
00A860: 65 0D 0A 72 65 69 6E 73 74 61 74 65 64 0D 0A 72 e..reinstated..r
00A870: 65 6A 65 63 74 65 64 0D 0A 72 65 6C 61 74 69 6E ejected..relatin
00A880: 67 0D 0A 72 65 6C 61 74 69 6F 6E 73 68 69 70 0D g..relationship.
00A890: 0A 72 65 6C 61 74 69 76 65 0D 0A 72 65 6C 61 74 .relative..relat
00A8A0: 69 76 65 6C 79 0D 0A 72 65 6C 65 61 73 65 0D 0A ively..release..
00A8B0: 72 65 6C 65 61 73 65 73 0D 0A 72 65 6C 69 65 66 releases..relief
00A8C0: 0D 0A 72 65 6C 69 6E 71 75 69 73 68 0D 0A 72 65 ..relinquish..re
00A8D0: 6C 6F 61 64 65 64 0D 0A 72 65 6C 6F 61 64 69 6E loaded..reloadin
00A8E0: 67 0D 0A 72 65 6C 6F 63 61 74 61 62 6C 65 0D 0A g..relocatable..
00A8F0: 72 65 6C 6F 63 61 74 65 0D 0A 72 65 6C 6F 63 61 relocate..reloca
00A900: 74 65 64 0D 0A 72 65 6C 6F 63 61 74 65 73 0D 0A ted..relocates..
00A910: 72 65 6C 6F 63 61 74 69 6E 67 0D 0A 72 65 6C 75 relocating..relu
00A920: 63 74 61 6E 63 65 0D 0A 72 65 6C 75 63 74 61 6E ctance..reluctan
00A930: 74 0D 0A 72 65 6D 61 69 6E 0D 0A 72 65 6D 61 69 t..remain..remai
00A940: 6E 64 65 72 0D 0A 72 65 6D 61 69 6E 69 6E 67 0D nder..remaining.
00A950: 0A 72 65 6D 61 69 6E 73 0D 0A 72 65 6D 61 6E 69 .remains..remani
00A960: 6E 69 67 0D 0A 72 65 6D 65 6D 62 65 72 0D 0A 72 nig..remember..r
00A970: 65 6D 65 6D 62 65 72 65 64 0D 0A 72 65 6D 65 6D emembered..remem
00A980: 62 65 72 69 6E 67 0D 0A 72 65 6D 65 6D 62 65 72 bering..remember
00A990: 73 0D 0A 72 65 6D 6F 76 65 0D 0A 72 65 6D 6F 76 s..remove..remov
00A9A0: 65 64 0D 0A 72 65 6D 6F 76 65 73 0D 0A 72 65 6D ed..removes..rem
00A9B0: 6F 76 69 6E 67 0D 0A 72 65 6E 61 6D 65 0D 0A 72 oving..rename..r
00A9C0: 65 6E 6F 77 6E 65 64 0D 0A 72 65 6E 75 6D 62 65 enowned..renumbe
00A9D0: 72 0D 0A 72 65 6E 75 6D 62 65 72 65 64 0D 0A 72 r..renumbered..r
00A9E0: 65 6E 75 6D 62 65 72 69 6E 67 0D 0A 72 65 6F 72 enumbering..reor
00A9F0: 67 61 6E 69 7A 65 64 0D 0A 72 65 70 65 61 74 0D ganized..repeat.
00AA00: 0A 70 72 65 63 65 64 69 6E 67 0D 0A 70 72 65 63 .preceding..prec
00AA10: 69 73 69 6F 6E 0D 0A 70 72 65 63 6C 75 64 65 0D ision..preclude.
00AA20: 0A 70 72 65 66 61 63 65 0D 0A 70 72 65 66 65 72 .preface..prefer
00AA30: 0D 0A 70 72 65 66 69 78 0D 0A 70 72 65 66 69 78 ..prefix..prefix
00AA40: 65 64 0D 0A 70 72 65 66 69 78 65 73 0D 0A 70 72 ed..prefixes..pr
00AA50: 65 66 69 78 69 6E 67 0D 0A 70 72 65 70 61 72 61 efixing..prepara
00AA60: 74 69 6F 6E 0D 0A 70 72 65 70 61 72 65 0D 0A 70 tion..prepare..p
00AA70: 72 65 70 61 72 65 64 0D 0A 70 72 65 70 61 72 69 repared..prepari
00AA80: 6E 67 0D 0A 70 72 65 72 65 71 75 69 73 69 74 65 ng..prerequisite
00AA90: 0D 0A 70 72 65 72 6F 67 61 74 69 76 65 0D 0A 70 ..prerogative..p
00AAA0: 72 65 73 63 72 69 62 65 73 0D 0A 70 72 65 73 65 rescribes..prese
00AAB0: 6E 63 65 0D 0A 70 72 65 73 65 6E 74 0D 0A 70 72 nce..present..pr
00AAC0: 65 73 65 6E 74 61 74 69 6F 6E 0D 0A 70 72 65 73 esentation..pres
00AAD0: 65 6E 74 65 64 0D 0A 70 72 65 73 65 6E 74 69 6E ented..presentin
00AAE0: 67 0D 0A 70 72 65 73 65 6E 74 6C 79 0D 0A 70 72 g..presently..pr
00AAF0: 65 73 65 6E 74 73 0D 0A 70 72 65 73 65 72 76 65 esents..preserve
00AB00: 0D 0A 70 72 65 73 65 72 76 65 64 0D 0A 70 72 65 ..preserved..pre
00AB10: 73 73 0D 0A 70 72 65 73 73 65 64 0D 0A 70 72 65 ss..pressed..pre
00AB20: 73 73 69 6E 67 0D 0A 70 72 65 73 75 6D 61 62 6C ssing..presumabl
00AB30: 79 0D 0A 70 72 65 74 74 79 0D 0A 70 72 65 76 65 y..pretty..preve
00AB40: 6E 74 0D 0A 70 72 65 76 65 6E 74 65 64 0D 0A 70 nt..prevented..p
00AB50: 72 65 76 65 6E 74 69 6E 67 0D 0A 70 72 65 76 65 reventing..preve
00AB60: 6E 74 73 0D 0A 70 72 65 76 69 65 77 69 6E 67 0D nts..previewing.
00AB70: 0A 70 72 65 76 69 6F 75 73 0D 0A 70 72 65 76 69 .previous..previ
00AB80: 6F 75 73 6C 79 0D 0A 70 72 65 77 72 69 74 74 65 ously..prewritte
00AB90: 6E 0D 0A 70 72 69 63 65 0D 0A 70 72 69 6D 61 72 n..price..primar
00ABA0: 69 6C 79 0D 0A 70 72 69 6D 61 72 79 0D 0A 70 72 ily..primary..pr
00ABB0: 69 6D 69 74 69 76 65 73 0D 0A 70 72 69 6E 74 0D imitives..print.
00ABC0: 0A 70 72 69 6E 74 61 62 6C 65 0D 0A 70 72 69 6E .printable..prin
00ABD0: 74 65 64 0D 0A 70 72 69 6E 74 65 72 0D 0A 70 72 ted..printer..pr
00ABE0: 69 6E 74 69 6E 67 0D 0A 70 72 69 6E 74 73 0D 0A inting..prints..
00ABF0: 70 72 69 6F 72 0D 0A 70 72 69 6F 72 69 74 79 0D prior..priority.
00AC00: 54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 00 00 00 Track-Info......
00AC10: 09 00 01 00 02 09 52 E5 09 00 41 02 00 00 00 02 ......R...A.....
00AC20: 09 00 46 02 00 00 00 02 09 00 42 02 00 00 00 02 ..F.......B.....
00AC30: 09 00 47 02 00 00 00 02 09 00 43 02 00 00 00 02 ..G.......C.....
00AC40: 09 00 48 02 00 00 00 02 09 00 44 02 00 00 00 02 ..H.......D.....
00AC50: 09 00 49 02 00 00 00 02 09 00 45 02 00 00 00 02 ..I.......E.....
00AC60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00AC70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00AC80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00AC90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00ACA0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00ACB0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00ACC0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00ACD0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00ACE0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00ACF0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00AD00: 0A 72 65 70 65 61 74 65 64 6C 79 0D 0A 72 65 70 .repeatedly..rep
00AD10: 65 61 74 69 6E 67 0D 0A 72 65 70 65 74 69 74 69 eating..repetiti
00AD20: 76 65 0D 0A 72 65 70 6C 61 63 65 0D 0A 72 65 70 ve..replace..rep
00AD30: 6C 61 63 65 64 0D 0A 72 65 70 6C 61 63 65 6D 65 laced..replaceme
00AD40: 6E 74 0D 0A 72 65 70 6C 61 63 65 73 0D 0A 72 65 nt..replaces..re
00AD50: 70 6C 61 63 69 6E 67 0D 0A 72 65 70 6F 72 74 0D placing..report.
00AD60: 0A 72 65 70 6F 72 74 65 64 0D 0A 72 65 70 6F 72 .reported..repor
00AD70: 74 69 6E 67 0D 0A 72 65 70 6F 72 74 73 0D 0A 72 ting..reports..r
00AD80: 65 70 72 65 73 65 6E 74 0D 0A 72 65 70 72 65 73 epresent..repres
00AD90: 65 6E 74 61 74 69 6F 6E 0D 0A 72 65 70 72 65 73 entation..repres
00ADA0: 65 6E 74 61 74 69 6F 6E 73 0D 0A 72 65 70 72 65 entations..repre
00ADB0: 73 65 6E 74 65 64 0D 0A 72 65 70 72 65 73 65 6E sented..represen
00ADC0: 74 69 6E 67 0D 0A 72 65 70 72 65 73 65 6E 74 73 ting..represents
00ADD0: 0D 0A 72 65 70 72 69 6E 74 0D 0A 72 65 71 75 65 ..reprint..reque
00ADE0: 73 74 0D 0A 72 65 71 75 65 73 74 65 64 0D 0A 72 st..requested..r
00ADF0: 65 71 75 65 73 74 73 0D 0A 72 65 71 75 69 72 65 equests..require
00AE00: 0D 0A 72 65 71 75 69 72 65 64 0D 0A 72 65 71 75 ..required..requ
00AE10: 69 72 65 6D 65 6E 74 0D 0A 72 65 71 75 69 72 65 irement..require
00AE20: 6D 65 6E 74 73 0D 0A 72 65 71 75 69 72 65 73 0D ments..requires.
00AE30: 0A 72 65 71 75 69 72 69 6E 67 0D 0A 72 65 71 75 .requiring..requ
00AE40: 69 73 69 74 65 0D 0A 72 65 73 65 6D 62 6C 65 0D isite..resemble.
00AE50: 0A 72 65 73 65 6D 62 6C 69 6E 67 0D 0A 72 65 73 .resembling..res
00AE60: 65 72 76 65 0D 0A 72 65 73 65 72 76 65 64 0D 0A erve..reserved..
00AE70: 72 65 73 65 72 76 65 73 0D 0A 72 65 73 65 72 76 reserves..reserv
00AE80: 69 6E 67 0D 0A 72 65 73 65 74 0D 0A 72 65 73 69 ing..reset..resi
00AE90: 64 65 0D 0A 72 65 73 69 64 65 6E 74 0D 0A 72 65 de..resident..re
00AEA0: 73 69 64 65 73 0D 0A 72 65 73 69 64 69 6E 67 0D sides..residing.
00AEB0: 0A 72 65 73 69 7A 65 64 0D 0A 72 65 73 6F 6C 76 .resized..resolv
00AEC0: 65 0D 0A 72 65 73 6F 72 74 0D 0A 72 65 73 6F 75 e..resort..resou
00AED0: 72 63 65 0D 0A 72 65 73 6F 75 72 63 65 73 0D 0A rce..resources..
00AEE0: 72 65 73 70 65 63 74 0D 0A 72 65 73 70 65 63 74 respect..respect
00AEF0: 61 62 6C 65 0D 0A 72 65 73 70 65 63 74 69 76 65 able..respective
00AF00: 6F 6C 75 74 69 6F 6E 0D 0A 73 6F 6C 76 65 64 0D olution..solved.
00AF10: 0A 73 6F 6C 76 69 6E 67 0D 0A 73 6F 6D 65 0D 0A .solving..some..
00AF20: 73 6F 6D 65 74 68 69 6E 67 0D 0A 73 6F 6D 65 74 something..somet
00AF30: 69 6D 65 73 0D 0A 73 6F 6D 65 77 68 61 74 0D 0A imes..somewhat..
00AF40: 73 6F 6D 65 77 68 65 72 65 0D 0A 73 6F 6F 6E 0D somewhere..soon.
00AF50: 0A 73 6F 6F 6E 65 72 0D 0A 73 6F 72 74 0D 0A 73 .sooner..sort..s
00AF60: 6F 72 74 65 64 0D 0A 73 6F 72 74 69 6E 67 0D 0A orted..sorting..
00AF70: 73 6F 72 74 73 0D 0A 73 6F 75 67 68 74 0D 0A 73 sorts..sought..s
00AF80: 6F 75 6E 64 0D 0A 73 6F 75 6E 64 65 64 0D 0A 73 ound..sounded..s
00AF90: 6F 75 6E 64 73 0D 0A 73 6F 75 72 63 65 0D 0A 73 ounds..source..s
00AFA0: 6F 75 72 63 65 73 0D 0A 73 70 61 63 65 0D 0A 73 ources..space..s
00AFB0: 70 61 63 65 64 0D 0A 73 70 61 63 65 73 0D 0A 73 paced..spaces..s
00AFC0: 70 61 63 69 6E 67 0D 0A 73 70 61 6E 0D 0A 73 70 pacing..span..sp
00AFD0: 65 63 69 61 6C 0D 0A 73 70 65 63 69 61 6C 6C 79 ecial..specially
00AFE0: 0D 0A 73 70 65 63 69 66 69 63 0D 0A 73 70 65 63 ..specific..spec
00AFF0: 69 66 69 63 61 6C 6C 79 0D 0A 73 70 65 63 69 66 ifically..specif
00B000: 69 63 61 74 69 6F 6E 0D 0A 73 70 65 63 69 66 69 ication..specifi
00B010: 63 61 74 69 6F 6E 73 0D 0A 73 70 65 63 69 66 69 cations..specifi
00B020: 65 64 0D 0A 73 70 65 63 69 66 69 65 73 0D 0A 73 ed..specifies..s
00B030: 70 65 63 69 66 79 0D 0A 73 70 65 63 69 66 79 69 pecify..specifyi
00B040: 6E 67 0D 0A 73 70 65 65 64 0D 0A 73 70 65 6C 6C ng..speed..spell
00B050: 69 6E 67 0D 0A 73 70 65 6E 74 0D 0A 73 70 69 6C ing..spent..spil
00B060: 6C 69 6E 67 0D 0A 73 70 69 72 69 74 0D 0A 73 70 ling..spirit..sp
00B070: 6C 69 74 0D 0A 73 70 6C 69 74 73 0D 0A 73 70 6C lit..splits..spl
00B080: 69 74 74 69 6E 67 0D 0A 73 70 72 65 61 64 0D 0A itting..spread..
00B090: 73 70 72 65 61 64 69 6E 67 0D 0A 73 70 75 72 69 spreading..spuri
00B0A0: 6F 75 73 0D 0A 73 71 75 61 72 65 0D 0A 73 71 75 ous..square..squ
00B0B0: 65 65 7A 65 0D 0A 73 71 75 65 65 7A 65 64 0D 0A eeze..squeezed..
00B0C0: 73 71 75 65 65 7A 69 6E 67 0D 0A 73 74 61 63 6B squeezing..stack
00B0D0: 0D 0A 73 74 61 67 69 6E 67 0D 0A 73 74 61 6E 64 ..staging..stand
00B0E0: 0D 0A 73 74 61 6E 64 61 72 64 0D 0A 73 74 61 6E ..standard..stan
00B0F0: 64 61 72 64 69 7A 65 0D 0A 73 74 61 6E 64 69 6E dardize..standin
00B100: 6C 79 0D 0A 72 65 73 70 65 63 74 73 0D 0A 72 65 ly..respects..re
00B110: 73 70 6F 6E 64 73 0D 0A 72 65 73 70 6F 6E 73 65 sponds..response
00B120: 0D 0A 72 65 73 70 6F 6E 73 65 73 0D 0A 72 65 73 ..responses..res
00B130: 70 6F 6E 73 69 62 69 6C 69 74 79 0D 0A 72 65 73 ponsibility..res
00B140: 74 0D 0A 72 65 73 74 61 72 74 0D 0A 72 65 73 74 t..restart..rest
00B150: 61 72 74 65 64 0D 0A 72 65 73 74 61 72 74 69 6E arted..restartin
00B160: 67 0D 0A 72 65 73 74 61 72 74 73 0D 0A 72 65 73 g..restarts..res
00B170: 74 6F 72 65 73 0D 0A 72 65 73 74 6F 72 69 6E 67 tores..restoring
00B180: 0D 0A 72 65 73 74 72 69 63 74 0D 0A 72 65 73 74 ..restrict..rest
00B190: 72 69 63 74 65 64 0D 0A 72 65 73 74 72 69 63 74 ricted..restrict
00B1A0: 69 6F 6E 0D 0A 72 65 73 74 72 69 63 74 69 6F 6E ion..restriction
00B1B0: 73 0D 0A 72 65 73 75 6C 74 0D 0A 72 65 73 75 6C s..result..resul
00B1C0: 74 65 64 0D 0A 72 65 73 75 6C 74 69 6E 67 0D 0A ted..resulting..
00B1D0: 72 65 73 75 6C 74 73 0D 0A 72 65 73 75 6D 65 0D results..resume.
00B1E0: 0A 72 65 73 75 6D 65 64 0D 0A 72 65 73 75 6D 65 .resumed..resume
00B1F0: 73 0D 0A 72 65 73 75 6D 69 6E 67 0D 0A 72 65 73 s..resuming..res
00B200: 75 6D 70 74 69 6F 6E 0D 0A 72 65 74 61 69 6E 0D umption..retain.
00B210: 0A 72 65 74 61 69 6E 65 64 0D 0A 72 65 74 61 69 .retained..retai
00B220: 6E 73 0D 0A 72 65 74 72 61 69 6E 69 6E 67 0D 0A ns..retraining..
00B230: 72 65 74 75 72 6E 0D 0A 72 65 74 75 72 6E 65 64 return..returned
00B240: 0D 0A 72 65 74 75 72 6E 69 6E 67 0D 0A 72 65 74 ..returning..ret
00B250: 75 72 6E 73 0D 0A 72 65 75 73 61 62 6C 65 0D 0A urns..reusable..
00B260: 72 65 75 73 65 0D 0A 72 65 75 73 65 64 0D 0A 72 reuse..reused..r
00B270: 65 75 73 69 6E 67 0D 0A 72 65 76 65 72 73 65 0D eusing..reverse.
00B280: 0A 72 65 76 65 72 73 65 64 0D 0A 72 65 76 65 72 .reversed..rever
00B290: 73 65 73 0D 0A 72 65 76 69 65 77 0D 0A 72 65 76 ses..review..rev
00B2A0: 69 73 65 64 0D 0A 72 65 76 69 73 69 6E 67 0D 0A ised..revising..
00B2B0: 72 65 76 69 73 69 6F 6E 0D 0A 72 65 77 72 69 74 revision..rewrit
00B2C0: 65 0D 0A 72 65 77 72 69 74 69 6E 67 0D 0A 72 65 e..rewriting..re
00B2D0: 77 72 69 74 74 65 6E 0D 0A 72 69 63 68 0D 0A 72 written..rich..r
00B2E0: 69 67 68 74 0D 0A 72 69 67 68 74 6D 6F 73 74 0D ight..rightmost.
00B2F0: 0A 72 69 67 68 74 73 0D 0A 72 6F 61 64 0D 0A 72 .rights..road..r
00B300: 67 0D 0A 73 74 61 6E 64 73 0D 0A 73 74 61 72 0D g..stands..star.
00B310: 0A 73 74 61 72 74 0D 0A 73 74 61 72 74 65 64 0D .start..started.
00B320: 0A 73 74 61 72 74 69 6E 67 0D 0A 73 74 61 72 74 .starting..start
00B330: 73 0D 0A 73 74 61 74 65 0D 0A 73 74 61 74 65 64 s..state..stated
00B340: 0D 0A 73 74 61 74 65 6D 65 6E 74 0D 0A 73 74 61 ..statement..sta
00B350: 74 65 6D 65 6E 74 73 0D 0A 73 74 61 74 75 73 0D tements..status.
00B360: 0A 73 74 61 79 0D 0A 73 74 65 61 6C 73 0D 0A 73 .stay..steals..s
00B370: 74 65 65 70 0D 0A 73 74 65 70 0D 0A 73 74 65 70 teep..step..step
00B380: 73 0D 0A 73 74 69 63 6B 0D 0A 73 74 69 6C 6C 0D s..stick..still.
00B390: 0A 73 74 6F 70 0D 0A 73 74 6F 70 70 69 6E 67 0D .stop..stopping.
00B3A0: 0A 73 74 6F 70 73 0D 0A 73 74 6F 72 61 67 65 0D .stops..storage.
00B3B0: 0A 73 74 6F 72 65 64 0D 0A 73 74 6F 72 65 73 0D .stored..stores.
00B3C0: 0A 73 74 72 61 69 67 68 74 0D 0A 73 74 72 61 6E .straight..stran
00B3D0: 67 65 0D 0A 73 74 72 65 61 6D 0D 0A 73 74 72 69 ge..stream..stri
00B3E0: 63 74 0D 0A 73 74 72 69 63 74 6C 79 0D 0A 73 74 ct..strictly..st
00B3F0: 72 69 6B 65 73 0D 0A 73 74 72 69 6E 67 0D 0A 73 rikes..string..s
00B400: 74 72 69 6E 67 73 0D 0A 73 74 72 69 70 70 65 64 trings..stripped
00B410: 0D 0A 73 74 72 6F 6B 65 73 0D 0A 73 74 72 75 63 ..strokes..struc
00B420: 74 75 72 65 0D 0A 73 74 72 75 63 74 75 72 65 64 ture..structured
00B430: 0D 0A 73 74 72 75 63 74 75 72 65 73 0D 0A 73 74 ..structures..st
00B440: 75 64 65 6E 74 73 0D 0A 73 74 75 64 69 65 64 0D udents..studied.
00B450: 0A 73 74 75 64 79 0D 0A 73 74 79 6C 65 64 0D 0A .study..styled..
00B460: 73 75 62 6A 65 63 74 0D 0A 73 75 62 6D 69 74 74 subject..submitt
00B470: 65 64 0D 0A 73 75 62 6F 72 64 69 6E 61 74 65 0D ed..subordinate.
00B480: 0A 73 75 62 70 72 6F 67 72 61 6D 73 0D 0A 73 75 .subprograms..su
00B490: 62 72 6F 75 74 69 6E 65 0D 0A 73 75 62 72 6F 75 broutine..subrou
00B4A0: 74 69 6E 65 73 0D 0A 73 75 62 73 63 72 69 70 74 tines..subscript
00B4B0: 65 64 0D 0A 73 75 62 73 63 72 69 70 74 73 0D 0A ed..subscripts..
00B4C0: 73 75 62 73 65 63 74 69 6F 6E 0D 0A 73 75 62 73 subsection..subs
00B4D0: 65 63 74 69 6F 6E 73 0D 0A 73 75 62 73 65 71 75 ections..subsequ
00B4E0: 65 6E 74 0D 0A 73 75 62 73 65 74 0D 0A 73 75 62 ent..subset..sub
00B4F0: 73 74 61 6E 74 69 61 6C 6C 79 0D 0A 73 75 62 73 stantially..subs
00B500: 6F 63 6B 0D 0A 72 6F 6F 6D 0D 0A 72 6F 74 61 74 ock..room..rotat
00B510: 65 0D 0A 72 6F 74 61 74 65 73 0D 0A 72 6F 75 6E e..rotates..roun
00B520: 64 0D 0A 72 6F 75 6E 64 65 64 0D 0A 72 6F 75 74 d..rounded..rout
00B530: 65 0D 0A 72 6F 75 74 69 6E 65 0D 0A 72 6F 75 74 e..routine..rout
00B540: 69 6E 65 73 0D 0A 72 75 62 0D 0A 72 75 62 62 65 ines..rub..rubbe
00B550: 64 0D 0A 72 75 6C 65 0D 0A 72 75 6C 65 73 0D 0A d..rule..rules..
00B560: 72 75 6E 0D 0A 72 75 6E 6E 69 6E 67 0D 0A 72 75 run..running..ru
00B570: 6E 73 0D 0A 73 0D 0A 73 61 66 65 0D 0A 73 61 66 ns..s..safe..saf
00B580: 65 67 75 61 72 64 0D 0A 73 61 69 64 0D 0A 73 61 eguard..said..sa
00B590: 6B 65 0D 0A 73 61 6D 65 0D 0A 73 61 6D 70 6C 65 ke..same..sample
00B5A0: 0D 0A 73 61 6E 64 77 69 63 68 65 64 0D 0A 73 61 ..sandwiched..sa
00B5B0: 76 65 0D 0A 73 61 76 65 64 0D 0A 73 61 76 65 73 ve..saved..saves
00B5C0: 0D 0A 73 61 76 69 6E 67 0D 0A 73 61 79 0D 0A 73 ..saving..say..s
00B5D0: 61 79 73 0D 0A 73 63 61 6C 65 0D 0A 73 63 61 6C ays..scale..scal
00B5E0: 65 64 0D 0A 73 63 61 6E 0D 0A 73 63 61 6E 73 0D ed..scan..scans.
00B5F0: 0A 73 63 68 65 6D 65 0D 0A 73 63 69 65 6E 63 65 .scheme..science
00B600: 0D 0A 73 63 69 65 6E 74 69 66 69 63 0D 0A 73 63 ..scientific..sc
00B610: 6F 72 65 0D 0A 73 63 72 65 61 6D 0D 0A 73 63 72 ore..scream..scr
00B620: 65 65 6E 0D 0A 73 63 72 6F 6C 6C 65 64 0D 0A 73 een..scrolled..s
00B630: 63 72 6F 6C 6C 69 6E 67 0D 0A 73 63 72 6F 6C 6C crolling..scroll
00B640: 73 0D 0A 73 65 61 72 63 68 0D 0A 73 65 61 72 63 s..search..searc
00B650: 68 65 64 0D 0A 73 65 61 72 63 68 65 73 0D 0A 73 hed..searches..s
00B660: 65 61 72 63 68 69 6E 67 0D 0A 73 65 63 6F 6E 64 earching..second
00B670: 0D 0A 73 65 63 6F 6E 64 61 72 79 0D 0A 73 65 63 ..secondary..sec
00B680: 74 69 6F 6E 0D 0A 73 65 63 74 69 6F 6E 73 0D 0A tion..sections..
00B690: 73 65 63 74 6F 72 0D 0A 73 65 63 74 6F 72 73 0D sector..sectors.
00B6A0: 0A 73 65 63 75 72 65 0D 0A 73 65 63 75 72 69 74 .secure..securit
00B6B0: 79 0D 0A 73 65 65 0D 0A 73 65 65 6B 0D 0A 73 65 y..see..seek..se
00B6C0: 65 6B 69 6E 67 0D 0A 73 65 65 6B 73 0D 0A 73 65 eking..seeks..se
00B6D0: 65 6D 0D 0A 73 65 65 6D 65 64 0D 0A 73 65 65 6D em..seemed..seem
00B6E0: 73 0D 0A 73 65 65 6E 0D 0A 73 65 65 73 0D 0A 73 s..seen..sees..s
00B6F0: 65 67 6D 65 6E 74 65 64 0D 0A 73 65 67 6D 65 6E egmented..segmen
00B700: 74 69 74 75 74 65 0D 0A 73 75 62 73 74 69 74 75 titute..substitu
00B710: 74 65 64 0D 0A 73 75 62 73 74 69 74 75 74 65 73 ted..substitutes
00B720: 0D 0A 73 75 62 73 74 69 74 75 74 69 6F 6E 0D 0A ..substitution..
00B730: 73 75 62 73 74 69 74 75 74 69 6F 6E 73 0D 0A 73 substitutions..s
00B740: 75 62 74 72 61 63 74 0D 0A 73 75 62 74 72 61 63 ubtract..subtrac
00B750: 74 65 64 0D 0A 73 75 62 74 72 61 63 74 69 6E 67 ted..subtracting
00B760: 0D 0A 73 75 62 74 72 61 63 74 73 0D 0A 73 75 63 ..subtracts..suc
00B770: 63 65 65 64 0D 0A 73 75 63 63 65 73 73 0D 0A 73 ceed..success..s
00B780: 75 63 63 65 73 73 66 75 6C 0D 0A 73 75 63 63 65 uccessful..succe
00B790: 73 73 66 75 6C 6C 79 0D 0A 73 75 63 63 65 73 73 ssfully..success
00B7A0: 69 76 65 0D 0A 73 75 63 63 65 73 73 69 76 65 6C ive..successivel
00B7B0: 79 0D 0A 73 75 63 68 0D 0A 73 75 66 66 65 72 0D y..such..suffer.
00B7C0: 0A 73 75 66 66 69 63 65 0D 0A 73 75 66 66 69 78 .suffice..suffix
00B7D0: 0D 0A 73 75 66 66 69 78 65 73 0D 0A 73 75 67 67 ..suffixes..sugg
00B7E0: 65 73 74 0D 0A 73 75 67 67 65 73 74 65 64 0D 0A est..suggested..
00B7F0: 73 75 67 67 65 73 74 69 6F 6E 0D 0A 73 75 67 67 suggestion..sugg
00B800: 65 73 74 69 6F 6E 73 0D 0A 73 75 67 67 65 73 74 estions..suggest
00B810: 73 0D 0A 73 75 69 74 0D 0A 73 75 69 74 61 62 6C s..suit..suitabl
00B820: 65 0D 0A 73 75 69 74 65 64 0D 0A 73 75 6D 0D 0A e..suited..sum..
00B830: 73 75 6D 6D 61 72 79 0D 0A 73 75 70 65 72 66 6C summary..superfl
00B840: 75 6F 75 73 0D 0A 73 75 70 65 72 69 6F 72 0D 0A uous..superior..
00B850: 73 75 70 70 6C 65 6D 65 6E 74 0D 0A 73 75 70 70 supplement..supp
00B860: 6C 69 65 64 0D 0A 73 75 70 70 6C 69 65 73 0D 0A lied..supplies..
00B870: 73 75 70 70 6C 79 0D 0A 73 75 70 70 6C 79 69 6E supply..supplyin
00B880: 67 0D 0A 73 75 70 70 6F 72 74 0D 0A 73 75 70 70 g..support..supp
00B890: 6F 72 74 65 64 0D 0A 73 75 70 70 6F 72 74 73 0D orted..supports.
00B8A0: 0A 73 75 70 70 6F 73 65 0D 0A 73 75 70 70 72 65 .suppose..suppre
00B8B0: 73 73 0D 0A 73 75 70 70 72 65 73 73 65 64 0D 0A ss..suppressed..
00B8C0: 73 75 72 65 0D 0A 73 75 72 66 61 63 65 0D 0A 73 sure..surface..s
00B8D0: 75 72 70 72 69 73 65 0D 0A 73 75 72 72 6F 75 6E urprise..surroun
00B8E0: 64 65 64 0D 0A 73 75 72 72 6F 75 6E 64 69 6E 67 ded..surrounding
00B8F0: 0D 0A 73 75 72 76 69 76 65 0D 0A 73 75 73 70 69 ..survive..suspi
00B900: 74 73 0D 0A 73 65 6C 64 6F 6D 0D 0A 73 65 6C 65 ts..seldom..sele
00B910: 63 74 65 64 0D 0A 73 65 6C 65 63 74 69 6F 6E 0D cted..selection.
00B920: 0A 73 65 6C 65 63 74 73 0D 0A 73 65 6C 66 0D 0A .selects..self..
00B930: 73 65 6C 66 2D 63 6F 6E 74 61 69 6E 65 64 0D 0A self-contained..
00B940: 73 65 6D 69 63 6F 6C 6F 6E 0D 0A 73 65 6D 69 63 semicolon..semic
00B950: 6F 6C 6F 6E 73 0D 0A 73 65 6E 64 0D 0A 73 65 6E olons..send..sen
00B960: 64 69 6E 67 0D 0A 73 65 6E 64 73 0D 0A 73 65 6E ding..sends..sen
00B970: 69 6F 72 0D 0A 73 65 6E 73 69 74 69 76 65 0D 0A ior..sensitive..
00B980: 73 65 6E 74 0D 0A 73 65 6E 74 65 6E 63 65 0D 0A sent..sentence..
00B990: 73 65 70 61 72 61 74 65 0D 0A 73 65 70 61 72 61 separate..separa
00B9A0: 74 65 64 0D 0A 73 65 70 61 72 61 74 65 6C 79 0D ted..separately.
00B9B0: 0A 73 65 70 61 72 61 74 65 73 0D 0A 73 65 70 61 .separates..sepa
00B9C0: 72 61 74 6F 72 0D 0A 73 65 70 74 65 6D 62 65 72 rator..september
00B9D0: 0D 0A 73 65 71 75 65 6E 63 65 0D 0A 73 65 71 75 ..sequence..sequ
00B9E0: 65 6E 63 65 73 0D 0A 73 65 71 75 65 6E 74 69 61 ences..sequentia
00B9F0: 6C 0D 0A 73 65 71 75 65 6E 74 69 61 6C 6C 79 0D l..sequentially.
00BA00: 0A 73 65 72 69 61 6C 0D 0A 73 65 72 69 61 6C 6C .serial..seriall
00BA10: 79 0D 0A 73 65 72 69 65 73 0D 0A 73 65 72 76 65 y..series..serve
00BA20: 0D 0A 73 65 72 76 65 73 0D 0A 73 65 72 76 69 63 ..serves..servic
00BA30: 65 0D 0A 73 65 72 76 69 63 65 73 0D 0A 73 65 74 e..services..set
00BA40: 0D 0A 73 65 74 73 0D 0A 73 65 74 74 69 6E 67 0D ..sets..setting.
00BA50: 0A 73 65 74 74 69 6E 67 73 0D 0A 73 65 74 75 70 .settings..setup
00BA60: 0D 0A 73 65 76 65 72 61 6C 0D 0A 73 68 61 72 65 ..several..share
00BA70: 64 0D 0A 73 68 61 72 70 0D 0A 73 68 65 65 74 0D d..sharp..sheet.
00BA80: 0A 73 68 65 65 74 73 0D 0A 73 68 65 6C 6C 0D 0A .sheets..shell..
00BA90: 73 68 69 66 74 0D 0A 73 68 69 66 74 65 64 0D 0A shift..shifted..
00BAA0: 73 68 69 66 74 73 0D 0A 73 68 69 70 70 69 6E 67 shifts..shipping
00BAB0: 0D 0A 73 68 6F 72 74 0D 0A 73 68 6F 72 74 61 67 ..short..shortag
00BAC0: 65 0D 0A 73 68 6F 72 74 65 72 0D 0A 73 68 6F 72 e..shorter..shor
00BAD0: 74 68 61 6E 64 0D 0A 73 68 6F 75 6C 64 0D 0A 73 thand..should..s
00BAE0: 68 6F 75 6C 64 6E 27 74 0D 0A 73 68 6F 77 0D 0A houldn't..show..
00BAF0: 73 68 6F 77 69 6E 67 0D 0A 73 68 6F 77 6E 0D 0A showing..shown..
00BB00: 63 69 6F 75 73 0D 0A 73 77 61 70 0D 0A 73 77 61 cious..swap..swa
00BB10: 70 73 0D 0A 73 77 69 74 63 68 0D 0A 73 77 69 74 ps..switch..swit
00BB20: 63 68 65 73 0D 0A 73 77 69 74 63 68 69 6E 67 0D ches..switching.
00BB30: 0A 73 79 6D 62 6F 6C 0D 0A 73 79 6D 62 6F 6C 69 .symbol..symboli
00BB40: 63 0D 0A 73 79 6D 62 6F 6C 69 63 61 6C 6C 79 0D c..symbolically.
00BB50: 0A 73 79 6D 62 6F 6C 73 0D 0A 73 79 6E 6F 6E 79 .symbols..synony
00BB60: 6D 73 0D 0A 73 79 6E 74 61 78 0D 0A 73 79 73 74 ms..syntax..syst
00BB70: 65 6D 0D 0A 73 79 73 74 65 6D 73 0D 0A 74 0D 0A em..systems..t..
00BB80: 74 61 62 0D 0A 74 61 62 6C 65 0D 0A 74 61 62 6C tab..table..tabl
00BB90: 65 73 0D 0A 74 61 62 73 0D 0A 74 61 69 6C 0D 0A es..tabs..tail..
00BBA0: 74 61 6B 65 0D 0A 74 61 6B 65 6E 0D 0A 74 61 6B take..taken..tak
00BBB0: 65 73 0D 0A 74 61 6B 69 6E 67 0D 0A 74 61 70 65 es..taking..tape
00BBC0: 73 0D 0A 74 61 72 67 65 74 0D 0A 74 61 73 6B 0D s..target..task.
00BBD0: 0A 74 61 73 6B 73 0D 0A 74 65 63 68 6E 69 71 75 .tasks..techniqu
00BBE0: 65 0D 0A 74 65 63 68 6E 69 71 75 65 73 0D 0A 74 e..techniques..t
00BBF0: 65 64 69 6F 75 73 0D 0A 74 65 6C 65 70 68 6F 6E edious..telephon
00BC00: 65 0D 0A 74 65 6C 6C 0D 0A 74 65 6C 6C 69 6E 67 e..tell..telling
00BC10: 0D 0A 74 65 6C 6C 73 0D 0A 74 65 6D 70 6F 72 61 ..tells..tempora
00BC20: 72 69 6C 79 0D 0A 74 65 6D 70 6F 72 61 72 79 0D rily..temporary.
00BC30: 0A 74 65 6D 70 74 65 64 0D 0A 74 65 6E 64 0D 0A .tempted..tend..
00BC40: 74 65 6E 64 65 6E 63 69 65 73 0D 0A 74 65 6E 64 tendencies..tend
00BC50: 73 0D 0A 74 65 72 6D 0D 0A 74 65 72 6D 69 6E 61 s..term..termina
00BC60: 74 65 0D 0A 74 65 72 6D 69 6E 61 74 65 64 0D 0A te..terminated..
00BC70: 74 65 72 6D 69 6E 61 74 65 73 0D 0A 74 65 72 6D terminates..term
00BC80: 69 6E 61 74 69 6E 67 0D 0A 74 65 72 6D 69 6E 61 inating..termina
00BC90: 74 69 6F 6E 0D 0A 74 65 72 6D 69 6E 61 74 6F 72 tion..terminator
00BCA0: 0D 0A 74 65 72 6D 69 6E 6F 6C 6F 67 79 0D 0A 74 ..terminology..t
00BCB0: 65 72 6D 73 0D 0A 74 65 73 74 0D 0A 74 65 73 74 erms..test..test
00BCC0: 65 64 0D 0A 74 65 73 74 69 6E 67 0D 0A 74 65 73 ed..testing..tes
00BCD0: 74 73 0D 0A 74 65 78 74 0D 0A 74 65 78 74 75 61 ts..text..textua
00BCE0: 6C 0D 0A 74 68 61 6E 0D 0A 74 68 61 6E 6B 73 0D l..than..thanks.
00BCF0: 0A 74 68 61 74 0D 0A 74 68 61 74 27 73 0D 0A 74 .that..that's..t
00BD00: 73 68 6F 77 73 0D 0A 73 68 75 64 64 65 72 0D 0A shows..shudder..
00BD10: 73 68 75 66 66 6C 69 6E 67 0D 0A 73 69 64 65 0D shuffling..side.
00BD20: 0A 73 69 64 65 64 0D 0A 73 69 64 65 73 0D 0A 73 .sided..sides..s
00BD30: 69 64 65 73 74 65 70 70 65 64 0D 0A 73 69 67 6E idestepped..sign
00BD40: 0D 0A 73 69 67 6E 61 6C 0D 0A 73 69 67 6E 61 6C ..signal..signal
00BD50: 69 6E 67 0D 0A 73 69 67 6E 61 6C 73 0D 0A 73 69 ing..signals..si
00BD60: 67 6E 65 64 0D 0A 73 69 67 6E 69 66 69 63 61 6E gned..significan
00BD70: 63 65 0D 0A 73 69 67 6E 69 66 69 63 61 6E 74 0D ce..significant.
00BD80: 0A 73 69 67 6E 69 66 69 63 61 6E 74 6C 79 0D 0A .significantly..
00BD90: 73 69 67 6E 69 66 79 69 6E 67 0D 0A 73 69 67 6E signifying..sign
00BDA0: 73 0D 0A 73 69 6C 65 6E 63 65 64 0D 0A 73 69 6C s..silenced..sil
00BDB0: 65 6E 74 6C 79 0D 0A 73 69 6D 69 6C 61 72 0D 0A ently..similar..
00BDC0: 73 69 6D 69 6C 61 72 6C 79 0D 0A 73 69 6D 70 6C similarly..simpl
00BDD0: 65 0D 0A 73 69 6D 70 6C 65 72 0D 0A 73 69 6D 70 e..simpler..simp
00BDE0: 6C 65 73 74 0D 0A 73 69 6D 70 6C 69 63 69 74 79 lest..simplicity
00BDF0: 0D 0A 73 69 6D 70 6C 79 0D 0A 73 69 6D 75 6C 61 ..simply..simula
00BE00: 74 69 6F 6E 0D 0A 73 69 6D 75 6C 74 61 6E 65 6F tion..simultaneo
00BE10: 75 73 6C 79 0D 0A 73 69 6E 63 65 0D 0A 73 69 6E usly..since..sin
00BE20: 63 65 72 65 0D 0A 73 69 6E 63 65 72 65 6C 79 0D cere..sincerely.
00BE30: 0A 73 69 6E 67 6C 65 0D 0A 73 69 74 73 0D 0A 73 .single..sits..s
00BE40: 69 74 74 69 6E 67 0D 0A 73 69 74 75 61 74 69 6F itting..situatio
00BE50: 6E 0D 0A 73 69 74 75 61 74 69 6F 6E 73 0D 0A 73 n..situations..s
00BE60: 69 78 0D 0A 73 69 7A 65 0D 0A 73 69 7A 65 73 0D ix..size..sizes.
00BE70: 0A 73 69 7A 69 6E 67 0D 0A 73 6B 69 70 0D 0A 73 .sizing..skip..s
00BE80: 6B 69 70 70 65 64 0D 0A 73 6B 69 70 70 69 6E 67 kipped..skipping
00BE90: 0D 0A 73 6B 69 70 73 0D 0A 73 6C 61 73 68 0D 0A ..skips..slash..
00BEA0: 73 6C 61 73 68 65 73 0D 0A 73 6C 65 65 70 0D 0A slashes..sleep..
00BEB0: 73 6C 69 67 68 74 0D 0A 73 6C 69 67 68 74 6C 79 slight..slightly
00BEC0: 0D 0A 73 6C 6F 77 65 72 0D 0A 73 6D 61 6C 6C 0D ..slower..small.
00BED0: 0A 73 6D 61 6C 6C 65 72 0D 0A 73 6E 61 70 0D 0A .smaller..snap..
00BEE0: 73 6E 75 66 66 0D 0A 73 6E 75 66 66 69 6E 67 0D snuff..snuffing.
00BEF0: 0A 73 6F 0D 0A 73 6F 66 74 77 61 72 65 0D 0A 73 .so..software..s
00BF00: 54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 00 00 00 Track-Info......
00BF10: 0A 00 01 00 02 09 52 E5 0A 00 41 02 00 00 00 02 ......R...A.....
00BF20: 0A 00 46 02 00 00 00 02 0A 00 42 02 00 00 00 02 ..F.......B.....
00BF30: 0A 00 47 02 00 00 00 02 0A 00 43 02 00 00 00 02 ..G.......C.....
00BF40: 0A 00 48 02 00 00 00 02 0A 00 44 02 00 00 00 02 ..H.......D.....
00BF50: 0A 00 49 02 00 00 00 02 0A 00 45 02 00 00 00 02 ..I.......E.....
00BF60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00BF70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00BF80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00BF90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00BFA0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00BFB0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00BFC0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00BFD0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00BFE0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00BFF0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00C000: 68 65 0D 0A 74 68 65 69 72 0D 0A 74 68 65 6D 0D he..their..them.
00C010: 0A 74 68 65 6D 73 65 6C 76 65 73 0D 0A 74 68 65 .themselves..the
00C020: 6E 0D 0A 74 68 65 6F 72 65 74 69 63 61 6C 6C 79 n..theoretically
00C030: 0D 0A 74 68 65 6F 72 79 0D 0A 74 68 65 72 65 0D ..theory..there.
00C040: 0A 74 68 65 72 65 61 66 74 65 72 0D 0A 74 68 65 .thereafter..the
00C050: 72 65 66 6F 72 65 0D 0A 74 68 65 73 65 0D 0A 74 refore..these..t
00C060: 68 65 79 0D 0A 74 68 69 6E 67 0D 0A 74 68 69 6E hey..thing..thin
00C070: 6B 0D 0A 74 68 69 6E 6B 69 6E 67 0D 0A 74 68 69 k..thinking..thi
00C080: 72 64 0D 0A 74 68 69 73 0D 0A 74 68 6F 72 6F 75 rd..this..thorou
00C090: 67 68 0D 0A 74 68 6F 73 65 0D 0A 74 68 6F 75 67 gh..those..thoug
00C0A0: 68 0D 0A 74 68 6F 75 67 68 74 0D 0A 74 68 72 65 h..thought..thre
00C0B0: 65 0D 0A 74 68 72 6F 75 67 68 0D 0A 74 68 72 6F e..through..thro
00C0C0: 75 67 68 6F 75 74 0D 0A 74 68 75 73 0D 0A 74 69 ughout..thus..ti
00C0D0: 65 64 0D 0A 74 69 67 68 74 0D 0A 74 69 6D 65 0D ed..tight..time.
00C0E0: 0A 74 69 6D 65 73 0D 0A 74 6F 0D 0A 74 6F 67 65 .times..to..toge
00C0F0: 74 68 65 72 0D 0A 74 6F 67 67 6C 65 0D 0A 74 6F ther..toggle..to
00C100: 67 67 6C 65 73 0D 0A 74 6F 6C 64 0D 0A 74 6F 6F ggles..told..too
00C110: 0D 0A 74 6F 6F 6C 0D 0A 74 6F 6F 6C 73 0D 0A 74 ..tool..tools..t
00C120: 6F 70 0D 0A 74 6F 70 69 63 0D 0A 74 6F 74 61 6C op..topic..total
00C130: 6C 79 0D 0A 74 6F 77 61 72 64 0D 0A 74 72 61 63 ly..toward..trac
00C140: 65 0D 0A 74 72 61 63 6B 0D 0A 74 72 61 63 6B 73 e..track..tracks
00C150: 0D 0A 74 72 61 64 65 0D 0A 74 72 61 64 65 6D 61 ..trade..tradema
00C160: 72 6B 0D 0A 74 72 61 69 6C 65 72 0D 0A 74 72 61 rk..trailer..tra
00C170: 69 6C 69 6E 67 0D 0A 74 72 61 6E 73 61 63 74 69 iling..transacti
00C180: 6F 6E 0D 0A 74 72 61 6E 73 61 63 74 69 6F 6E 73 on..transactions
00C190: 0D 0A 74 72 61 6E 73 66 65 72 0D 0A 74 72 61 6E ..transfer..tran
00C1A0: 73 66 65 72 72 65 64 0D 0A 74 72 61 6E 73 66 65 sferred..transfe
00C1B0: 72 72 69 6E 67 0D 0A 74 72 61 6E 73 66 65 72 73 rring..transfers
00C1C0: 0D 0A 74 72 61 6E 73 66 6F 72 6D 65 64 0D 0A 74 ..transformed..t
00C1D0: 72 61 6E 73 6C 61 74 65 0D 0A 74 72 61 6E 73 6C ranslate..transl
00C1E0: 61 74 65 64 0D 0A 74 72 61 6E 73 6C 61 74 69 6E ated..translatin
00C1F0: 67 0D 0A 74 72 61 6E 73 6C 61 74 69 6F 6E 0D 0A g..translation..
00C200: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00C210: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00C220: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00C230: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00C240: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00C250: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00C260: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00C270: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00C280: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00C290: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00C2A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00C2B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00C2C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00C2D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00C2E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00C2F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00C300: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00C310: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00C320: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00C330: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00C340: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00C350: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00C360: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00C370: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00C380: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00C390: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00C3A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00C3B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00C3C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00C3D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00C3E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00C3F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00C400: 74 72 61 6E 73 6C 61 74 6F 72 0D 0A 74 72 61 6E translator..tran
00C410: 73 6C 61 74 6F 72 73 0D 0A 74 72 61 6E 73 6C 69 slators..transli
00C420: 74 65 72 61 74 65 0D 0A 74 72 61 6E 73 6C 69 74 terate..translit
00C430: 65 72 61 74 69 6E 67 0D 0A 74 72 61 76 65 72 73 erating..travers
00C440: 65 64 0D 0A 74 72 65 61 74 0D 0A 74 72 65 61 74 ed..treat..treat
00C450: 65 64 0D 0A 74 72 65 6D 65 6E 64 6F 75 73 0D 0A ed..tremendous..
00C460: 74 72 69 61 6C 0D 0A 74 72 69 63 6B 0D 0A 74 72 trial..trick..tr
00C470: 69 76 69 61 6C 0D 0A 74 72 75 65 0D 0A 74 72 75 ivial..true..tru
00C480: 6C 79 0D 0A 74 72 75 6E 63 61 74 65 64 0D 0A 74 ly..truncated..t
00C490: 72 79 69 6E 67 0D 0A 74 75 72 6E 0D 0A 74 75 72 rying..turn..tur
00C4A0: 6E 65 64 0D 0A 74 75 72 6E 6B 65 79 0D 0A 74 75 ned..turnkey..tu
00C4B0: 72 6E 73 0D 0A 74 77 6F 0D 0A 74 79 70 65 0D 0A rns..two..type..
00C4C0: 74 79 70 65 64 0D 0A 74 79 70 65 73 0D 0A 74 79 typed..types..ty
00C4D0: 70 69 63 61 6C 6C 79 0D 0A 74 79 70 69 6E 67 0D pically..typing.
00C4E0: 0A 74 79 70 6F 67 72 61 70 68 69 63 61 6C 0D 0A .typographical..
00C4F0: 75 0D 0A 75 6E 61 63 63 65 70 74 61 62 6C 65 0D u..unacceptable.
00C500: 0A 75 6E 61 66 66 65 63 74 65 64 0D 0A 75 6E 61 .unaffected..una
00C510: 6C 74 65 72 65 64 0D 0A 75 6E 61 6E 74 69 63 69 ltered..unantici
00C520: 70 61 74 65 64 0D 0A 75 6E 63 68 61 6E 67 65 64 pated..unchanged
00C530: 0D 0A 75 6E 63 6F 6D 66 6F 72 74 61 62 6C 65 0D ..uncomfortable.
00C540: 0A 75 6E 63 6F 6E 64 69 74 69 6F 6E 61 6C 0D 0A .unconditional..
00C550: 75 6E 64 65 66 69 6E 65 64 0D 0A 75 6E 64 65 72 undefined..under
00C560: 0D 0A 75 6E 64 65 72 6C 69 6E 65 0D 0A 75 6E 64 ..underline..und
00C570: 65 72 6C 69 6E 65 64 0D 0A 75 6E 64 65 72 6C 69 erlined..underli
00C580: 6E 69 6E 67 0D 0A 75 6E 64 65 72 6C 79 69 6E 67 ning..underlying
00C590: 0D 0A 75 6E 64 65 72 73 63 6F 72 65 0D 0A 75 6E ..underscore..un
00C5A0: 64 65 72 73 63 6F 72 65 73 0D 0A 75 6E 64 65 72 derscores..under
00C5B0: 73 74 61 6E 64 0D 0A 75 6E 64 65 72 73 74 61 6E stand..understan
00C5C0: 64 69 6E 67 0D 0A 75 6E 64 65 72 73 74 6F 6F 64 ding..understood
00C5D0: 0D 0A 75 6E 65 71 75 61 6C 0D 0A 75 6E 66 6F 72 ..unequal..unfor
00C5E0: 74 75 6E 61 74 65 6C 79 0D 0A 75 6E 69 6E 74 65 tunately..uninte
00C5F0: 72 72 75 70 74 61 62 6C 65 0D 0A 75 6E 69 6E 74 rruptable..unint
00C600: 53 6D 61 6C 6C 2D 54 6F 6F 6C 73 20 52 65 76 69 Small-Tools Revi
00C610: 73 69 6F 6E 20 48 69 73 74 6F 72 79 0D 0A 0D 0A sion History....
00C620: 2D 2D 20 69 6E 63 6C 75 64 65 64 20 69 6E 20 76 -- included in v
00C630: 65 72 73 69 6F 6E 20 31 2E 31 0D 0A 0D 0A 2D 2D ersion 1.1....--
00C640: 2D 20 65 64 74 20 63 68 61 6E 67 65 73 0D 0A 20 - edt changes..
00C650: 31 2E 20 44 6F 20 6E 6F 74 20 61 62 6F 72 74 20 1. Do not abort
00C660: 72 75 6E 20 6F 6E 20 65 72 72 6F 72 20 6C 6F 61 run on error loa
00C670: 64 69 6E 67 20 66 69 6C 65 20 6E 61 6D 65 64 20 ding file named
00C680: 69 6E 20 63 6F 6D 6D 61 6E 64 20 6C 69 6E 65 2E in command line.
00C690: 0D 0A 20 32 2E 20 52 65 6E 61 6D 65 20 6F 72 69 .. 2. Rename ori
00C6A0: 67 69 6E 61 6C 20 66 69 6C 65 20 74 6F 20 2E 24 ginal file to .$
00C6B0: 24 24 20 65 78 74 65 6E 73 69 6F 6E 20 62 65 66 $$ extension bef
00C6C0: 6F 72 65 20 77 72 69 74 69 6E 67 20 69 74 20 61 ore writing it a
00C6D0: 6E 65 77 2E 0D 0A 20 20 20 20 44 65 6C 65 74 65 new... Delete
00C6E0: 20 2E 24 24 24 20 66 69 6C 65 20 69 66 20 73 75 .$$$ file if su
00C6F0: 63 63 65 73 73 66 75 6C 2E 0D 0A 20 33 2E 20 41 ccessful... 3. A
00C700: 64 64 20 22 7A 22 20 63 6F 6D 6D 61 6E 64 20 74 dd "z" command t
00C710: 6F 20 22 7A 69 70 22 20 74 68 72 6F 75 67 68 20 o "zip" through
00C720: 74 68 65 20 62 75 66 66 65 72 20 66 72 6F 6D 20 the buffer from
00C730: 74 68 65 20 63 75 72 72 65 6E 74 20 6C 69 6E 65 the current line
00C740: 0D 0A 20 20 20 20 75 6E 74 69 6C 20 69 6E 74 65 .. until inte
00C750: 72 72 75 70 74 65 64 20 62 79 20 61 6E 79 20 69 rrupted by any i
00C760: 6E 70 75 74 2E 0D 0A 20 34 2E 20 41 62 6F 72 74 nput... 4. Abort
00C770: 20 69 74 65 72 61 74 69 76 65 20 63 6F 6D 6D 61 iterative comma
00C780: 6E 64 73 20 6F 6E 20 45 53 43 20 66 72 6F 6D 20 nds on ESC from
00C790: 63 6F 6E 73 6F 6C 65 2E 0D 0A 20 20 20 20 41 62 console... Ab
00C7A0: 6F 72 74 20 22 70 72 69 6E 74 22 20 61 6E 64 20 ort "print" and
00C7B0: 22 7A 69 70 22 20 63 6F 6D 6D 61 6E 64 73 20 6F "zip" commands o
00C7C0: 6E 20 61 6E 79 20 69 6E 70 75 74 2E 0D 0A 0D 0A n any input.....
00C7D0: 2D 2D 2D 20 66 6D 74 20 63 68 61 6E 67 65 73 0D --- fmt changes.
00C7E0: 0A 20 35 2E 20 61 64 64 20 2E 62 66 20 63 6F 6D . 5. add .bf com
00C7F0: 6D 61 6E 64 20 66 6F 72 20 62 6F 6C 64 66 61 63 mand for boldfac
00C800: 65 72 72 75 70 74 65 64 0D 0A 75 6E 69 71 75 65 errupted..unique
00C810: 0D 0A 75 6E 69 71 75 65 6E 65 73 73 0D 0A 75 6E ..uniqueness..un
00C820: 69 74 0D 0A 75 6E 69 74 73 0D 0A 75 6E 69 76 65 it..units..unive
00C830: 72 73 69 74 79 0D 0A 75 6E 6B 6E 6F 77 6E 0D 0A rsity..unknown..
00C840: 75 6E 6C 65 73 73 0D 0A 75 6E 6C 69 6B 65 0D 0A unless..unlike..
00C850: 75 6E 6C 69 6E 6B 0D 0A 75 6E 6D 61 74 63 68 65 unlink..unmatche
00C860: 64 0D 0A 75 6E 6D 65 6E 74 69 6F 6E 65 64 0D 0A d..unmentioned..
00C870: 75 6E 6D 6F 64 69 66 69 65 64 0D 0A 75 6E 6E 65 unmodified..unne
00C880: 63 65 73 73 61 72 69 6C 79 0D 0A 75 6E 6E 65 63 cessarily..unnec
00C890: 65 73 73 61 72 79 0D 0A 75 6E 70 72 65 64 69 63 essary..unpredic
00C8A0: 74 61 62 6C 65 0D 0A 75 6E 72 65 63 6F 67 6E 69 table..unrecogni
00C8B0: 7A 61 62 6C 65 0D 0A 75 6E 72 65 73 74 72 69 63 zable..unrestric
00C8C0: 74 65 64 0D 0A 75 6E 73 69 67 6E 65 64 0D 0A 75 ted..unsigned..u
00C8D0: 6E 73 6F 63 69 61 6C 0D 0A 75 6E 73 6F 6C 69 63 nsocial..unsolic
00C8E0: 69 74 65 64 0D 0A 75 6E 73 75 63 63 65 73 73 66 ited..unsuccessf
00C8F0: 75 6C 6C 79 0D 0A 75 6E 74 69 6C 0D 0A 75 6E 74 ully..until..unt
00C900: 6F 75 63 68 65 64 0D 0A 75 6E 75 73 65 64 0D 0A ouched..unused..
00C910: 75 6E 75 73 75 61 6C 0D 0A 75 6E 77 61 6E 74 65 unusual..unwante
00C920: 64 0D 0A 75 70 0D 0A 75 70 64 61 74 65 0D 0A 75 d..up..update..u
00C930: 70 64 61 74 65 64 0D 0A 75 70 64 61 74 65 73 0D pdated..updates.
00C940: 0A 75 70 64 61 74 69 6E 67 0D 0A 75 70 6F 6E 0D .updating..upon.
00C950: 0A 75 70 70 65 72 0D 0A 75 70 70 65 72 63 61 73 .upper..uppercas
00C960: 65 0D 0A 75 70 77 61 72 64 0D 0A 75 73 61 62 6C e..upward..usabl
00C970: 65 0D 0A 75 73 61 67 65 0D 0A 75 73 65 0D 0A 75 e..usage..use..u
00C980: 73 65 64 0D 0A 75 73 65 66 75 6C 0D 0A 75 73 65 sed..useful..use
00C990: 72 0D 0A 75 73 65 72 27 73 0D 0A 75 73 65 72 73 r..user's..users
00C9A0: 0D 0A 75 73 65 73 0D 0A 75 73 69 6E 67 0D 0A 75 ..uses..using..u
00C9B0: 73 75 61 6C 0D 0A 75 73 75 61 6C 6C 79 0D 0A 75 sual..usually..u
00C9C0: 73 75 72 70 0D 0A 75 73 75 72 70 73 0D 0A 75 74 surp..usurps..ut
00C9D0: 69 6C 69 74 79 0D 0A 75 74 69 6C 69 7A 61 74 69 ility..utilizati
00C9E0: 6F 6E 0D 0A 76 0D 0A 76 61 6C 69 64 0D 0A 76 61 on..v..valid..va
00C9F0: 6C 69 64 61 74 65 64 0D 0A 76 61 6C 69 64 61 74 lidated..validat
00CA00: 65 2E 0D 0A 20 36 2E 20 61 64 64 20 2D 62 73 23 e... 6. add -bs#
00CA10: 20 73 77 69 74 63 68 20 66 6F 72 20 6E 75 6D 62 switch for numb
00CA20: 65 72 20 6F 66 20 62 6F 6C 64 66 61 63 65 20 73 er of boldface s
00CA30: 74 72 69 6B 65 73 2E 0D 0A 20 37 2E 20 61 64 64 trikes... 7. add
00CA40: 20 2D 73 20 73 77 69 74 63 68 20 74 6F 20 73 68 -s switch to sh
00CA50: 6F 77 20 73 6F 75 72 63 65 20 66 69 6C 65 73 2E ow source files.
00CA60: 0D 0A 20 38 2E 20 75 73 65 20 73 77 69 74 63 68 .. 8. use switch
00CA70: 20 73 74 61 74 65 6D 65 6E 74 2E 0D 0A 20 39 2E statement... 9.
00CA80: 20 66 69 78 20 62 75 67 20 63 61 75 73 69 6E 67 fix bug causing
00CA90: 20 74 68 65 20 70 72 69 6E 74 69 6E 67 20 6F 66 the printing of
00CAA0: 20 70 61 67 65 73 20 77 69 74 68 20 6F 6E 6C 79 pages with only
00CAB0: 20 61 20 68 65 61 64 69 6E 67 2F 66 6F 6F 74 69 a heading/footi
00CAC0: 6E 67 2E 0D 0A 31 30 2E 20 61 64 64 20 45 50 53 ng...10. add EPS
00CAD0: 4F 4E 20 6D 6F 64 65 20 66 6F 72 20 75 6E 64 65 ON mode for unde
00CAE0: 72 6C 69 6E 65 73 20 61 6E 64 20 62 6F 6C 64 66 rlines and boldf
00CAF0: 61 63 65 2E 0D 0A 20 20 20 20 2D 62 73 23 20 73 ace... -bs# s
00CB00: 77 69 74 63 68 20 69 73 20 65 66 66 65 63 74 69 witch is effecti
00CB10: 76 65 20 6F 6E 6C 79 20 69 6E 20 54 54 59 20 6D ve only in TTY m
00CB20: 6F 64 65 2E 0D 0A 31 31 2E 20 61 64 64 20 2D 74 ode...11. add -t
00CB30: 20 73 77 69 74 63 68 20 74 6F 20 73 65 74 20 54 switch to set T
00CB40: 54 59 20 6D 6F 64 65 2E 0D 0A 31 32 20 20 61 64 TY mode...12 ad
00CB50: 64 20 2E 69 74 20 63 6F 6D 6D 61 6E 64 20 66 6F d .it command fo
00CB60: 72 20 69 74 61 6C 69 63 73 20 69 6E 20 45 50 53 r italics in EPS
00CB70: 4F 4E 20 6D 6F 64 65 2E 0D 0A 31 33 2E 20 61 64 ON mode...13. ad
00CB80: 64 20 2D 69 20 73 77 69 74 63 68 20 74 6F 20 73 d -i switch to s
00CB90: 75 62 73 74 69 74 75 74 65 20 69 74 61 6C 69 63 ubstitute italic
00CBA0: 73 20 66 6F 72 20 75 6E 64 65 72 6C 69 6E 65 73 s for underlines
00CBB0: 2E 0D 0A 31 34 2E 20 61 64 64 20 2D 75 20 73 77 ...14. add -u sw
00CBC0: 69 74 63 68 20 74 6F 20 73 75 62 73 74 69 74 75 itch to substitu
00CBD0: 74 65 20 75 6E 64 65 72 6C 69 6E 65 73 20 66 6F te underlines fo
00CBE0: 72 20 69 74 61 6C 69 63 73 2E 0D 0A 31 35 2E 20 r italics...15.
00CBF0: 6D 61 6B 65 20 62 6F 6C 64 66 61 63 65 20 61 6C make boldface al
00CC00: 65 73 0D 0A 76 61 6C 6C 65 79 0D 0A 76 61 6C 75 es..valley..valu
00CC10: 61 62 6C 65 0D 0A 76 61 6C 75 65 0D 0A 76 61 6C able..value..val
00CC20: 75 65 64 0D 0A 76 61 6C 75 65 73 0D 0A 76 61 72 ued..values..var
00CC30: 69 61 62 6C 65 0D 0A 76 61 72 69 61 62 6C 65 73 iable..variables
00CC40: 0D 0A 76 61 72 69 65 73 0D 0A 76 61 72 69 65 74 ..varies..variet
00CC50: 79 0D 0A 76 61 72 69 6F 75 73 0D 0A 76 61 72 79 y..various..vary
00CC60: 0D 0A 76 61 72 79 69 6E 67 0D 0A 76 61 73 74 6C ..varying..vastl
00CC70: 79 0D 0A 76 65 63 74 6F 72 0D 0A 76 65 72 62 0D y..vector..verb.
00CC80: 0A 76 65 72 69 66 69 65 73 0D 0A 76 65 72 69 66 .verifies..verif
00CC90: 79 0D 0A 76 65 72 73 61 0D 0A 76 65 72 73 69 6F y..versa..versio
00CCA0: 6E 0D 0A 76 65 72 73 69 6F 6E 73 0D 0A 76 65 72 n..versions..ver
00CCB0: 74 69 63 61 6C 0D 0A 76 65 72 79 0D 0A 76 69 63 tical..very..vic
00CCC0: 65 0D 0A 76 69 64 65 6F 0D 0A 76 69 65 77 0D 0A e..video..view..
00CCD0: 76 69 65 77 65 64 0D 0A 76 69 65 77 69 6E 67 0D viewed..viewing.
00CCE0: 0A 76 69 65 77 73 0D 0A 76 69 6F 6C 61 74 65 64 .views..violated
00CCF0: 0D 0A 76 69 6F 6C 61 74 65 73 0D 0A 76 69 72 74 ..violates..virt
00CD00: 75 61 6C 0D 0A 76 69 72 74 75 61 6C 6C 79 0D 0A ual..virtually..
00CD10: 76 6F 6C 75 6D 65 0D 0A 77 0D 0A 77 61 69 74 65 volume..w..waite
00CD20: 64 0D 0A 77 61 69 74 69 6E 67 0D 0A 77 61 69 74 d..waiting..wait
00CD30: 73 0D 0A 77 61 6E 74 0D 0A 77 61 6E 74 65 64 0D s..want..wanted.
00CD40: 0A 77 61 6E 74 73 0D 0A 77 61 72 6E 69 6E 67 0D .wants..warning.
00CD50: 0A 77 61 73 0D 0A 77 61 73 74 65 64 0D 0A 77 61 .was..wasted..wa
00CD60: 79 0D 0A 77 61 79 73 0D 0A 77 65 0D 0A 77 65 27 y..ways..we..we'
00CD70: 6C 6C 0D 0A 77 65 65 64 0D 0A 77 65 6C 6C 0D 0A ll..weed..well..
00CD80: 77 65 72 65 0D 0A 77 68 61 74 0D 0A 77 68 61 74 were..what..what
00CD90: 65 76 65 72 0D 0A 77 68 65 6E 0D 0A 77 68 65 6E ever..when..when
00CDA0: 65 76 65 72 0D 0A 77 68 65 72 65 0D 0A 77 68 65 ever..where..whe
00CDB0: 72 65 76 65 72 0D 0A 77 68 65 74 68 65 72 0D 0A rever..whether..
00CDC0: 77 68 69 63 68 0D 0A 77 68 69 63 68 65 76 65 72 which..whichever
00CDD0: 0D 0A 77 68 69 6C 65 0D 0A 77 68 69 73 74 6C 65 ..while..whistle
00CDE0: 73 0D 0A 77 68 69 74 65 0D 0A 77 68 6F 0D 0A 77 s..white..who..w
00CDF0: 68 6F 6C 65 0D 0A 77 68 6F 73 65 0D 0A 77 68 79 hole..whose..why
00CE00: 73 6F 20 64 6F 75 62 6C 65 20 73 74 72 69 6B 65 so double strike
00CE10: 2E 0D 0A 31 36 2E 20 65 6E 68 61 6E 63 65 20 69 ...16. enhance i
00CE20: 74 61 6C 69 63 73 2E 0D 0A 31 37 2E 20 75 73 65 talics...17. use
00CE30: 20 22 73 77 69 74 63 68 22 20 69 6E 20 63 6F 6D "switch" in com
00CE40: 74 79 70 28 29 0D 0A 31 38 2E 20 6B 65 65 70 20 typ()..18. keep
00CE50: 62 6F 6C 64 2F 69 74 61 6C 69 63 73 2F 75 6E 64 bold/italics/und
00CE60: 65 72 6C 69 6E 65 20 6F 75 74 20 6F 66 20 68 65 erline out of he
00CE70: 61 64 69 6E 67 73 2F 66 6F 6F 74 65 72 73 2E 0D adings/footers..
00CE80: 0A 31 39 2E 20 64 6F 6E 27 74 20 6F 62 73 63 75 .19. don't obscu
00CE90: 72 65 20 62 6C 61 6E 6B 20 6C 69 6E 65 73 20 77 re blank lines w
00CEA0: 69 74 68 20 2E 75 6C 2C 20 2E 62 66 2C 20 2E 69 ith .ul, .bf, .i
00CEB0: 74 2E 0D 0A 32 30 2E 20 70 72 65 76 65 6E 74 20 t...20. prevent
00CEC0: 62 6C 61 6E 6B 20 70 61 67 65 73 20 6F 6E 20 2E blank pages on .
00CED0: 62 70 20 61 74 20 6C 61 73 74 20 6C 69 6E 65 20 bp at last line
00CEE0: 6F 66 20 61 20 70 61 67 65 2E 0D 0A 32 31 2E 20 of a page...21.
00CEF0: 61 64 64 20 2D 6E 72 20 73 77 69 74 63 68 20 74 add -nr switch t
00CF00: 6F 20 6E 65 67 61 74 65 20 22 72 65 61 64 79 20 o negate "ready
00CF10: 70 72 69 6E 74 65 72 2E 2E 2E 22 20 70 72 6F 6D printer..." prom
00CF20: 70 74 2E 0D 0A 32 32 2E 20 6D 61 6B 65 20 22 2E pt...22. make ".
00CF30: 6D 70 20 23 22 20 61 6C 67 6F 72 69 74 68 6D 20 mp #" algorithm
00CF40: 77 61 69 74 20 23 20 6C 69 6E 65 73 20 62 65 66 wait # lines bef
00CF50: 6F 72 65 20 66 6F 72 63 69 6E 67 20 61 6E 6F 74 ore forcing anot
00CF60: 68 65 72 20 70 61 67 65 20 62 72 65 61 6B 2E 0D her page break..
00CF70: 0A 32 33 2E 20 6D 61 6B 65 20 2D 65 63 23 20 70 .23. make -ec# p
00CF80: 72 69 6E 74 20 6D 75 6C 74 69 70 6C 65 20 63 6F rint multiple co
00CF90: 70 69 65 73 20 65 76 65 6E 20 77 2F 6F 20 6D 65 pies even w/o me
00CFA0: 72 67 65 66 69 6C 65 2E 0D 0A 32 34 2E 20 61 64 rgefile...24. ad
00CFB0: 64 20 22 2E 64 77 20 23 22 20 63 6F 6D 6D 61 6E d ".dw #" comman
00CFC0: 64 20 66 6F 72 20 6E 6F 6E 74 74 79 20 6D 6F 64 d for nontty mod
00CFD0: 65 20 64 6F 75 62 6C 65 20 77 69 64 65 20 70 72 e double wide pr
00CFE0: 69 6E 74 2E 0D 0A 0D 0A 2D 2D 2D 20 6C 73 74 20 int.....--- lst
00CFF0: 63 68 61 6E 67 65 73 0D 0A 32 35 2E 20 61 6C 6C changes..25. all
00D000: 0D 0A 77 69 64 65 0D 0A 77 69 64 65 73 70 72 65 ..wide..widespre
00D010: 61 64 0D 0A 77 69 64 6F 77 0D 0A 77 69 64 74 68 ad..widow..width
00D020: 0D 0A 77 69 66 65 0D 0A 77 69 6C 6C 0D 0A 77 69 ..wife..will..wi
00D030: 70 65 0D 0A 77 69 73 68 0D 0A 77 69 73 68 65 73 pe..wish..wishes
00D040: 0D 0A 77 69 74 68 0D 0A 77 69 74 68 69 6E 0D 0A ..with..within..
00D050: 77 69 74 68 6F 75 74 0D 0A 77 6F 72 64 0D 0A 77 without..word..w
00D060: 6F 72 64 73 0D 0A 77 6F 72 6B 0D 0A 77 6F 72 6B ords..work..work
00D070: 69 6E 67 0D 0A 77 6F 72 6B 69 6E 67 73 0D 0A 77 ing..workings..w
00D080: 6F 72 6B 73 0D 0A 77 6F 72 6C 64 0D 0A 77 6F 72 orks..world..wor
00D090: 74 68 0D 0A 77 6F 72 74 68 69 6E 65 73 73 0D 0A th..worthiness..
00D0A0: 77 6F 75 6C 64 0D 0A 77 6F 75 6C 64 6E 27 74 0D would..wouldn't.
00D0B0: 0A 77 72 61 70 73 0D 0A 77 72 69 74 65 0D 0A 77 .wraps..write..w
00D0C0: 72 69 74 65 72 0D 0A 77 72 69 74 65 73 0D 0A 77 riter..writes..w
00D0D0: 72 69 74 69 6E 67 0D 0A 77 72 69 74 74 65 6E 0D riting..written.
00D0E0: 0A 77 72 6F 6E 67 0D 0A 77 72 6F 74 65 0D 0A 78 .wrong..wrote..x
00D0F0: 0D 0A 79 0D 0A 79 65 61 72 0D 0A 79 65 74 0D 0A ..y..year..yet..
00D100: 79 69 65 6C 64 0D 0A 79 69 65 6C 64 69 6E 67 0D yield..yielding.
00D110: 0A 79 69 65 6C 64 73 0D 0A 79 6F 75 0D 0A 79 6F .yields..you..yo
00D120: 75 72 0D 0A 79 6F 75 72 73 0D 0A 7A 0D 0A 7A 65 ur..yours..z..ze
00D130: 62 72 61 0D 0A 7A 65 72 6F 0D 0A 7A 65 72 6F 65 bra..zero..zeroe
00D140: 64 0D 0A 7A 65 72 6F 65 73 0D 0A 0D 0A 1A 1A 1A d..zeroes.......
00D150: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
00D160: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
00D170: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
00D180: 77 65 72 65 0D 0A 77 68 61 74 0D 0A 77 68 61 74 were..what..what
00D190: 65 76 65 72 0D 0A 77 68 65 6E 0D 0A 77 68 65 6E ever..when..when
00D1A0: 65 76 65 72 0D 0A 77 68 65 72 65 0D 0A 77 68 65 ever..where..whe
00D1B0: 72 65 76 65 72 0D 0A 77 68 65 74 68 65 72 0D 0A rever..whether..
00D1C0: 77 68 69 63 68 0D 0A 77 68 69 63 68 65 76 65 72 which..whichever
00D1D0: 0D 0A 77 68 69 6C 65 0D 0A 77 68 69 73 74 6C 65 ..while..whistle
00D1E0: 73 0D 0A 77 68 69 74 65 0D 0A 77 68 6F 0D 0A 77 s..white..who..w
00D1F0: 68 6F 6C 65 0D 0A 77 68 6F 73 65 0D 0A 77 68 79 hole..whose..why
00D200: 54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 00 00 00 Track-Info......
00D210: 0B 00 01 00 02 09 52 E5 0B 00 41 02 00 00 00 02 ......R...A.....
00D220: 0B 00 46 02 00 00 00 02 0B 00 42 02 00 00 00 02 ..F.......B.....
00D230: 0B 00 47 02 00 00 00 02 0B 00 43 02 00 00 00 02 ..G.......C.....
00D240: 0B 00 48 02 00 00 00 02 0B 00 44 02 00 00 00 02 ..H.......D.....
00D250: 0B 00 49 02 00 00 00 02 0B 00 45 02 00 00 00 02 ..I.......E.....
00D260: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00D270: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00D280: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00D290: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00D2A0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00D2B0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00D2C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00D2D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00D2E0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00D2F0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00D300: 6F 77 20 62 61 72 65 20 66 69 6C 65 6E 61 6D 65 ow bare filename
00D310: 20 69 6E 20 6C 65 75 20 6F 66 20 72 65 64 69 72 in leu of redir
00D320: 65 63 74 69 6F 6E 20 73 70 65 63 20 66 6F 72 20 ection spec for
00D330: 73 74 64 69 6E 20 69 6E 20 74 68 65 0D 0A 20 20 stdin in the..
00D340: 20 20 63 6F 6D 6D 61 6E 64 20 6C 69 6E 65 2E 0D command line..
00D350: 0A 0D 0A 2D 2D 2D 20 6D 72 67 20 63 68 61 6E 67 ...--- mrg chang
00D360: 65 73 0D 0A 32 36 2E 20 4D 65 72 67 65 20 62 61 es..26. Merge ba
00D370: 73 65 64 20 6F 6E 20 61 20 6C 65 78 69 63 6F 67 sed on a lexicog
00D380: 72 61 70 68 69 63 61 6C 20 6F 72 64 65 72 69 6E raphical orderin
00D390: 67 20 72 61 74 68 65 72 20 74 68 61 6E 20 74 68 g rather than th
00D3A0: 65 20 73 74 72 61 69 67 68 74 0D 0A 20 20 20 20 e straight..
00D3B0: 41 53 43 49 49 20 63 6F 6C 61 74 69 6E 67 20 73 ASCII colating s
00D3C0: 65 71 75 65 6E 63 65 2E 0D 0A 0D 0A 2D 2D 2D 20 equence.....---
00D3D0: 70 72 74 20 63 68 61 6E 67 65 73 0D 0A 32 37 2E prt changes..27.
00D3E0: 20 46 6F 72 63 65 20 6F 75 74 70 75 74 20 74 6F Force output to
00D3F0: 20 4C 53 54 3A 20 75 6E 6C 65 73 73 20 73 74 64 LST: unless std
00D400: 6F 75 74 20 69 73 20 72 65 64 69 72 65 63 74 65 out is redirecte
00D410: 64 20 61 77 61 79 20 66 72 6F 6D 20 74 68 65 20 d away from the
00D420: 63 6F 6E 73 6F 6C 65 2E 0D 0A 0D 0A 2D 2D 2D 20 console.....---
00D430: 73 72 74 20 63 68 61 6E 67 65 73 0D 0A 32 38 2E srt changes..28.
00D440: 20 75 6E 6C 65 73 73 20 73 70 65 63 69 66 69 65 unless specifie
00D450: 64 20 6F 74 68 65 72 77 69 73 65 20 77 69 74 68 d otherwise with
00D460: 20 74 68 65 20 2D 74 20 73 77 69 74 63 68 2C 20 the -t switch,
00D470: 74 65 6D 70 6F 72 61 72 79 20 66 69 6C 65 73 20 temporary files
00D480: 67 6F 20 74 6F 0D 0A 20 20 20 20 74 68 65 20 64 go to.. the d
00D490: 65 66 61 75 6C 74 20 64 72 69 76 65 2E 0D 0A 0D efault drive....
00D4A0: 0A 2D 2D 20 69 6E 63 6C 75 64 65 64 20 69 6E 20 .-- included in
00D4B0: 76 65 72 73 69 6F 6E 20 31 2E 32 0D 0A 0D 0A 2D version 1.2....-
00D4C0: 2D 2D 20 66 6D 74 20 63 68 61 6E 67 65 73 0D 0A -- fmt changes..
00D4D0: 32 39 2E 20 73 75 62 73 63 72 69 70 74 20 66 72 29. subscript fr
00D4E0: 6F 6D 20 2F 2F 20 74 6F 20 5C 5C 20 6F 72 20 77 om // to \\ or w
00D4F0: 68 69 74 65 20 73 70 61 63 65 2C 20 61 6E 64 0D hite space, and.
00D500: 2F 2A 0D 0A 2A 2A 20 53 6D 61 6C 6C 2D 54 6F 6F /*..** Small-Too
00D510: 6C 73 20 64 65 66 69 6E 69 74 69 6F 6E 73 2E 0D ls definitions..
00D520: 0A 2A 2A 0D 0A 2A 2A 20 54 68 65 20 6D 65 74 61 .**..** The meta
00D530: 63 68 61 72 61 63 74 65 72 20 64 65 66 69 6E 69 character defini
00D540: 74 69 6F 6E 73 20 64 6F 20 6E 6F 74 20 63 6F 6D tions do not com
00D550: 70 6C 65 74 65 6C 79 0D 0A 2A 2A 20 66 6F 6C 6C pletely..** foll
00D560: 6F 77 20 55 4E 49 58 20 6F 72 20 74 68 65 20 53 ow UNIX or the S
00D570: 6F 66 74 77 61 72 65 2D 54 6F 6F 6C 73 20 64 65 oftware-Tools de
00D580: 66 69 6E 69 74 69 6F 6E 73 2E 0D 0A 2A 2A 0D 0A finitions...**..
00D590: 2A 2A 20 59 6F 75 20 6D 61 79 20 63 68 61 6E 67 ** You may chang
00D5A0: 65 20 61 6E 79 74 68 69 6E 67 20 74 6F 20 73 75 e anything to su
00D5B0: 69 74 20 79 6F 75 72 20 70 72 65 66 65 72 65 6E it your preferen
00D5C0: 63 65 73 2E 0D 0A 2A 2F 0D 0A 23 64 65 66 69 6E ces...*/..#defin
00D5D0: 65 20 4D 41 58 46 4E 20 20 20 20 20 20 31 35 20 e MAXFN 15
00D5E0: 20 2F 2A 20 6D 61 78 20 66 69 6C 65 20 6E 61 6D /* max file nam
00D5F0: 65 20 73 70 61 63 65 20 2A 2F 0D 0A 23 64 65 66 e space */..#def
00D600: 69 6E 65 20 45 58 54 4D 41 52 4B 20 20 20 20 27 ine EXTMARK '
00D610: 2E 27 20 2F 2A 20 66 69 6C 65 20 65 78 74 65 6E .' /* file exten
00D620: 73 69 6F 6E 20 6D 61 72 6B 20 2A 2F 0D 0A 23 64 sion mark */..#d
00D630: 65 66 69 6E 65 20 4D 41 58 4C 49 4E 45 20 20 20 efine MAXLINE
00D640: 31 39 32 20 20 2F 2A 20 6D 61 78 20 74 65 78 74 192 /* max text
00D650: 20 6C 69 6E 65 20 73 70 61 63 65 20 2A 2F 0D 0A line space */..
00D660: 0D 0A 20 20 20 20 20 20 20 20 2F 2A 20 57 59 2D .. /* WY-
00D670: 35 30 2C 20 54 56 2D 39 32 30 2C 20 48 5A 2D 31 50, TV-920, HZ-1
00D680: 35 30 30 2C 20 41 44 2D 56 50 20 2A 2F 0D 0A 23 500, AD-VP */..#
00D690: 64 65 66 69 6E 65 20 43 4C 45 41 52 20 22 5C 33 define CLEAR "\3
00D6A0: 33 5C 35 33 22 20 2F 2A 20 73 63 72 65 65 6E 20 3\53" /* screen
00D6B0: 65 72 61 73 65 20 2A 2F 0D 0A 23 64 65 66 69 6E erase */..#defin
00D6C0: 65 20 43 52 54 57 49 44 45 20 20 20 20 38 30 20 e CRTWIDE 80
00D6D0: 20 2F 2A 20 73 63 72 65 65 6E 20 77 69 64 74 68 /* screen width
00D6E0: 20 2A 2F 0D 0A 23 64 65 66 69 6E 65 20 43 52 54 */..#define CRT
00D6F0: 48 49 47 48 20 20 20 20 32 34 20 20 2F 2A 20 73 HIGH 24 /* s
00D700: 0A 20 20 20 20 73 75 70 65 72 73 63 72 69 70 74 . superscript
00D710: 20 66 72 6F 6D 20 5C 5C 20 74 6F 20 2F 2F 20 6F from \\ to // o
00D720: 72 20 77 68 69 74 65 20 73 70 61 63 65 2E 0D 0A r white space...
00D730: 0D 0A 2D 2D 2D 20 73 72 74 20 63 68 61 6E 67 65 ..--- srt change
00D740: 73 0D 0A 33 30 2E 20 66 69 78 20 69 6D 70 72 6F s..30. fix impro
00D750: 70 65 72 20 63 6C 6F 73 69 6E 67 20 6F 66 20 74 per closing of t
00D760: 65 6D 70 20 66 69 6C 65 73 2E 0D 0A 33 31 2E 20 emp files...31.
00D770: 6D 61 6B 65 20 64 75 70 74 65 73 74 28 29 20 63 make duptest() c
00D780: 68 65 63 6B 20 2D 75 20 73 77 69 74 63 68 20 69 heck -u switch i
00D790: 6E 73 74 65 61 64 20 6F 66 20 61 73 73 75 6D 69 nstead of assumi
00D7A0: 6E 67 20 69 74 20 69 73 20 73 65 74 2E 0D 0A 33 ng it is set...3
00D7B0: 32 2E 20 66 69 78 20 70 6F 74 65 6E 74 69 61 6C 2. fix potential
00D7C0: 20 70 72 6F 62 6C 65 6D 20 69 6E 20 6D 65 72 67 problem in merg
00D7D0: 65 28 29 20 69 66 20 69 6E 70 75 74 20 74 65 6D e() if input tem
00D7E0: 70 20 66 69 6C 65 20 69 73 20 6E 75 6C 6C 2E 0D p file is null..
00D7F0: 0A 33 33 2E 20 66 69 78 20 74 65 73 74 20 66 6F .33. fix test fo
00D800: 72 20 65 73 63 61 70 65 20 66 72 6F 6D 20 6D 65 r escape from me
00D810: 72 67 65 20 6C 6F 6F 70 2E 0D 0A 1A 1A 1A 1A 1A rge loop........
00D820: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
00D830: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
00D840: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
00D850: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
00D860: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
00D870: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
00D880: 67 6F 20 74 6F 0D 0A 20 20 20 20 74 68 65 20 64 go to.. the d
00D890: 65 66 61 75 6C 74 20 64 72 69 76 65 2E 0D 0A 0D efault drive....
00D8A0: 0A 2D 2D 20 69 6E 63 6C 75 64 65 64 20 69 6E 20 .-- included in
00D8B0: 76 65 72 73 69 6F 6E 20 31 2E 32 0D 0A 0D 0A 2D version 1.2....-
00D8C0: 2D 2D 20 66 6D 74 20 63 68 61 6E 67 65 73 0D 0A -- fmt changes..
00D8D0: 32 39 2E 20 73 75 62 73 63 72 69 70 74 20 66 72 29. subscript fr
00D8E0: 6F 6D 20 2F 2F 20 74 6F 20 5C 5C 20 6F 72 20 77 om // to \\ or w
00D8F0: 68 69 74 65 20 73 70 61 63 65 2C 20 61 6E 64 0D hite space, and.
00D900: 63 72 65 65 6E 20 68 65 69 67 68 74 20 2A 2F 0D creen height */.
00D910: 0A 0D 0A 23 64 65 66 69 6E 65 20 50 54 52 57 49 ...#define PTRWI
00D920: 44 45 20 20 20 20 38 30 20 20 2F 2A 20 70 61 67 DE 80 /* pag
00D930: 65 20 77 69 64 74 68 20 2A 2F 0D 0A 23 64 65 66 e width */..#def
00D940: 69 6E 65 20 50 54 52 48 49 47 48 20 20 20 20 36 ine PTRHIGH 6
00D950: 36 20 20 2F 2A 20 70 61 67 65 20 68 65 69 67 68 6 /* page heigh
00D960: 74 20 2A 2F 0D 0A 23 64 65 66 69 6E 65 20 50 54 t */..#define PT
00D970: 52 53 4B 49 50 20 20 20 20 20 38 20 20 2F 2A 20 RSKIP 8 /*
00D980: 70 61 67 65 20 70 65 72 66 6F 72 61 74 69 6F 6E page perforation
00D990: 20 73 6B 69 70 73 20 2A 2F 0D 0A 23 64 65 66 69 skips */..#defi
00D9A0: 6E 65 20 50 54 52 48 44 52 20 20 20 20 20 20 32 ne PTRHDR 2
00D9B0: 20 20 2F 2A 20 70 61 67 65 20 68 65 61 64 65 72 /* page header
00D9C0: 20 6C 69 6E 65 73 20 2A 2F 0D 0A 0D 0A 23 64 65 lines */....#de
00D9D0: 66 69 6E 65 20 4D 41 58 50 41 54 20 20 20 20 32 fine MAXPAT 2
00D9E0: 35 37 20 20 2F 2A 20 6D 61 78 20 70 61 74 74 65 57 /* max patte
00D9F0: 72 6E 20 69 6E 20 69 6E 74 65 72 6E 61 6C 20 66 rn in internal f
00DA00: 6F 72 6D 61 74 20 2A 2F 0D 0A 23 64 65 66 69 6E ormat */..#defin
00DA10: 65 20 43 48 41 52 20 20 20 20 20 20 20 27 63 27 e CHAR 'c'
00DA20: 20 2F 2A 20 69 64 65 6E 74 69 66 69 65 73 20 61 /* identifies a
00DA30: 20 63 68 61 72 61 63 74 65 72 20 2A 2F 0D 0A 23 character */..#
00DA40: 64 65 66 69 6E 65 20 42 4F 4C 20 20 20 20 20 20 define BOL
00DA50: 20 20 27 60 27 20 2F 2A 20 62 65 67 69 6E 6E 69 '`' /* beginni
00DA60: 6E 67 20 6F 66 20 6C 69 6E 65 20 2A 2F 0D 0A 23 ng of line */..#
00DA70: 64 65 66 69 6E 65 20 45 4F 4C 20 20 20 20 20 20 define EOL
00DA80: 20 27 5C 27 27 20 2F 2A 20 65 6E 64 20 6F 66 20 '\'' /* end of
00DA90: 6C 69 6E 65 20 2A 2F 0D 0A 23 64 65 66 69 6E 65 line */..#define
00DAA0: 20 41 4E 59 20 20 20 20 20 20 20 20 27 3F 27 20 ANY '?'
00DAB0: 2F 2A 20 61 6E 79 20 63 68 61 72 61 63 74 65 72 /* any character
00DAC0: 20 2A 2F 0D 0A 23 64 65 66 69 6E 65 20 43 43 4C */..#define CCL
00DAD0: 20 20 20 20 20 20 20 20 27 5B 27 20 2F 2A 20 62 '[' /* b
00DAE0: 65 67 69 6E 20 63 68 61 72 61 63 74 65 72 20 63 egin character c
00DAF0: 6C 61 73 73 20 2A 2F 0D 0A 23 64 65 66 69 6E 65 lass */..#define
00DB00: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00DB10: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00DB20: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00DB30: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00DB40: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00DB50: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00DB60: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00DB70: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00DB80: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00DB90: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00DBA0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00DBB0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00DBC0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00DBD0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00DBE0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00DBF0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00DC00: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00DC10: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00DC20: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00DC30: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00DC40: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00DC50: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00DC60: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00DC70: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00DC80: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00DC90: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00DCA0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00DCB0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00DCC0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00DCD0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00DCE0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00DCF0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00DD00: 20 4E 43 43 4C 20 20 20 20 20 20 20 27 7E 27 20 NCCL '~'
00DD10: 2F 2A 20 6E 65 67 61 74 69 6F 6E 20 6F 66 20 63 /* negation of c
00DD20: 68 61 72 61 63 74 65 72 20 63 6C 61 73 73 20 2A haracter class *
00DD30: 2F 0D 0A 23 64 65 66 69 6E 65 20 43 43 4C 45 4E /..#define CCLEN
00DD40: 44 20 20 20 20 20 27 5D 27 20 2F 2A 20 65 6E 64 D ']' /* end
00DD50: 20 6F 66 20 63 68 61 72 61 63 74 65 72 20 63 6C of character cl
00DD60: 61 73 73 20 2A 2F 0D 0A 23 64 65 66 69 6E 65 20 ass */..#define
00DD70: 43 4C 4F 53 55 52 45 20 20 20 20 27 2A 27 20 2F CLOSURE '*' /
00DD80: 2A 20 7A 65 72 6F 20 6F 72 20 6D 6F 72 65 20 6F * zero or more o
00DD90: 63 63 75 72 72 65 6E 63 65 73 20 2A 2F 0D 0A 23 ccurrences */..#
00DDA0: 64 65 66 69 6E 65 20 44 49 54 54 4F 20 20 20 20 define DITTO
00DDB0: 20 20 27 5E 27 20 2F 2A 20 77 68 61 74 65 76 65 '^' /* whateve
00DDC0: 72 20 73 74 72 69 6E 67 20 6D 61 74 63 68 65 73 r string matches
00DDD0: 20 70 61 74 74 65 72 6E 20 2A 2F 0D 0A 23 64 65 pattern */..#de
00DDE0: 66 69 6E 65 20 45 53 43 41 50 45 20 20 20 20 20 fine ESCAPE
00DDF0: 27 3A 27 20 2F 2A 20 65 73 63 61 70 65 20 63 68 ':' /* escape ch
00DE00: 61 72 61 63 74 65 72 20 2A 2F 0D 0A 23 64 65 66 aracter */..#def
00DE10: 69 6E 65 20 4E 4F 54 20 20 20 20 20 20 20 20 27 ine NOT '
00DE20: 7E 27 20 2F 2A 20 6E 65 67 61 74 69 6F 6E 20 63 ~' /* negation c
00DE30: 68 61 72 61 63 74 65 72 20 2A 2F 0D 0A 0D 0A 23 haracter */....#
00DE40: 64 65 66 69 6E 65 20 44 49 54 43 4F 44 45 20 20 define DITCODE
00DE50: 20 20 2D 33 20 20 0D 0A 23 64 65 66 69 6E 65 20 -3 ..#define
00DE60: 43 4F 55 4E 54 20 20 20 20 20 20 20 31 0D 0A 23 COUNT 1..#
00DE70: 64 65 66 69 6E 65 20 50 52 45 56 43 4C 20 20 20 define PREVCL
00DE80: 20 20 20 32 0D 0A 23 64 65 66 69 6E 65 20 53 54 2..#define ST
00DE90: 41 52 54 20 20 20 20 20 20 20 33 0D 0A 23 64 65 ART 3..#de
00DEA0: 66 69 6E 65 20 43 4C 4F 53 49 5A 45 20 20 20 20 fine CLOSIZE
00DEB0: 20 34 0D 0A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 4..............
00DEC0: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
00DED0: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
00DEE0: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
00DEF0: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
00DF00: 2F 2A 0D 0A 2A 2A 20 53 54 44 49 4F 2E 48 20 2D /*..** STDIO.H -
00DF10: 2D 20 53 74 61 6E 64 61 72 64 20 53 6D 61 6C 6C - Standard Small
00DF20: 2D 43 20 44 65 66 69 6E 69 74 69 6F 6E 73 0D 0A -C Definitions..
00DF30: 2A 2A 0D 0A 2A 2A 20 43 6F 70 79 72 69 67 68 74 **..** Copyright
00DF40: 20 31 39 38 33 20 20 4C 2E 20 45 2E 20 50 61 79 1983 L. E. Pay
00DF50: 6E 65 20 61 6E 64 20 4A 2E 20 45 2E 20 48 65 6E ne and J. E. Hen
00DF60: 64 72 69 78 0D 0A 2A 2F 0D 0A 23 64 65 66 69 6E drix..*/..#defin
00DF70: 65 20 73 74 64 69 6E 20 20 20 20 30 0D 0A 23 64 e stdin 0..#d
00DF80: 65 66 69 6E 65 20 73 74 64 6F 75 74 20 20 20 31 efine stdout 1
00DF90: 0D 0A 23 64 65 66 69 6E 65 20 73 74 64 65 72 72 ..#define stderr
00DFA0: 20 20 20 32 0D 0A 23 64 65 66 69 6E 65 20 45 52 2..#define ER
00DFB0: 52 20 20 20 28 2D 32 29 0D 0A 23 64 65 66 69 6E R (-2)..#defin
00DFC0: 65 20 45 4F 46 20 20 20 28 2D 31 29 0D 0A 23 64 e EOF (-1)..#d
00DFD0: 65 66 69 6E 65 20 59 45 53 20 20 20 20 20 20 31 efine YES 1
00DFE0: 0D 0A 23 64 65 66 69 6E 65 20 4E 4F 20 20 20 20 ..#define NO
00DFF0: 20 20 20 30 0D 0A 23 64 65 66 69 6E 65 20 4E 55 0..#define NU
00E000: 4C 4C 20 20 20 20 20 30 0D 0A 23 64 65 66 69 6E LL 0..#defin
00E010: 65 20 43 52 20 20 20 20 20 20 31 33 0D 0A 23 64 e CR 13..#d
00E020: 65 66 69 6E 65 20 4C 46 20 20 20 20 20 20 31 30 efine LF 10
00E030: 0D 0A 23 64 65 66 69 6E 65 20 42 45 4C 4C 20 20 ..#define BELL
00E040: 20 20 20 37 0D 0A 23 64 65 66 69 6E 65 20 53 50 7..#define SP
00E050: 41 43 45 20 20 27 20 27 0D 0A 23 64 65 66 69 6E ACE ' '..#defin
00E060: 65 20 4E 45 57 4C 49 4E 45 20 4C 46 20 20 20 20 e NEWLINE LF
00E070: 20 20 2F 2A 32 33 2A 2F 20 2F 2A 34 35 2A 2F 0D /*23*/ /*45*/.
00E080: 0A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
00E090: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
00E0A0: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
00E0B0: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
00E0C0: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
00E0D0: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
00E0E0: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
00E0F0: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
00E100: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00E110: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00E120: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00E130: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00E140: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00E150: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00E160: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00E170: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00E180: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00E190: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00E1A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00E1B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00E1C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00E1D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00E1E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00E1F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00E200: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00E210: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00E220: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00E230: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00E240: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00E250: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00E260: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00E270: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00E280: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00E290: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00E2A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00E2B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00E2C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00E2D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00E2E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00E2F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00E300: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00E310: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00E320: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00E330: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00E340: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00E350: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00E360: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00E370: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00E380: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00E390: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00E3A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00E3B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00E3C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00E3D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00E3E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00E3F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00E400: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00E410: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00E420: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00E430: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00E440: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00E450: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00E460: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00E470: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00E480: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00E490: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00E4A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00E4B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00E4C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00E4D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00E4E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00E4F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00E500: 54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 00 00 00 Track-Info......
00E510: 0C 00 01 00 02 09 52 E5 0C 00 41 02 00 00 00 02 ......R...A.....
00E520: 0C 00 46 02 00 00 00 02 0C 00 42 02 00 00 00 02 ..F.......B.....
00E530: 0C 00 47 02 00 00 00 02 0C 00 43 02 00 00 00 02 ..G.......C.....
00E540: 0C 00 48 02 00 00 00 02 0C 00 44 02 00 00 00 02 ..H.......D.....
00E550: 0C 00 49 02 00 00 00 02 0C 00 45 02 00 00 00 02 ..I.......E.....
00E560: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00E570: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00E580: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00E590: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00E5A0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00E5B0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00E5C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00E5D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00E5E0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00E5F0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00E600: 0D 0A 2F 2A 0D 0A 2A 2A 20 62 75 66 2E 63 20 2D ../*..** buf.c -
00E610: 2D 20 62 75 66 66 65 72 20 6D 61 6E 69 70 75 6C - buffer manipul
00E620: 61 74 69 6F 6E 20 66 75 6E 63 74 69 6F 6E 73 20 ation functions
00E630: 28 6D 65 6D 6F 72 79 20 76 65 72 73 69 6F 6E 29 (memory version)
00E640: 0D 0A 2A 2F 0D 0A 0D 0A 69 6E 74 20 67 6F 74 6C ..*/....int gotl
00E650: 69 6E 65 2C 20 67 6F 74 69 6E 64 3B 0D 0A 63 68 ine, gotind;..ch
00E660: 61 72 20 2A 62 75 66 70 74 72 3B 0D 0A 0D 0A 2F ar *bufptr;..../
00E670: 2A 0D 0A 2A 2A 20 63 6C 72 62 75 66 20 2D 2D 20 *..** clrbuf --
00E680: 69 6E 69 74 69 61 6C 69 7A 65 20 66 6F 72 20 6E initialize for n
00E690: 65 77 20 66 69 6C 65 20 28 73 74 75 62 29 0D 0A ew file (stub)..
00E6A0: 2A 2F 0D 0A 63 6C 72 62 75 66 28 29 20 7B 0D 0A */..clrbuf() {..
00E6B0: 20 20 72 65 74 75 72 6E 3B 0D 0A 20 20 7D 0D 0A return;.. }..
00E6C0: 0D 0A 2F 2A 0D 0A 2A 2A 20 67 65 74 69 6E 64 20 ../*..** getind
00E6D0: 2D 2D 20 6C 6F 63 61 74 65 20 6C 69 6E 65 20 69 -- locate line i
00E6E0: 6E 64 65 78 20 69 6E 20 62 75 66 0D 0A 2A 2F 0D ndex in buf..*/.
00E6F0: 0A 67 65 74 69 6E 64 28 6C 6E 29 20 69 6E 74 20 .getind(ln) int
00E700: 6C 6E 3B 20 7B 0D 0A 20 20 69 6E 74 20 6A 3B 0D ln; {.. int j;.
00E710: 0A 20 20 69 66 28 28 6A 3D 6C 6E 2D 67 6F 74 6C . if((j=ln-gotl
00E720: 69 6E 65 29 20 3E 20 30 29 0D 0A 20 20 20 20 77 ine) > 0).. w
00E730: 68 69 6C 65 28 6A 2D 2D 29 20 67 65 74 69 6E 74 hile(j--) getint
00E740: 28 67 6F 74 69 6E 64 2B 4E 45 58 54 2C 20 26 67 (gotind+NEXT, &g
00E750: 6F 74 69 6E 64 2C 20 49 4E 54 45 47 45 52 29 3B otind, INTEGER);
00E760: 0D 0A 20 20 65 6C 73 65 20 69 66 28 6A 20 3C 20 .. else if(j <
00E770: 30 29 0D 0A 20 20 20 20 77 68 69 6C 65 28 6A 2B 0).. while(j+
00E780: 2B 29 20 67 65 74 69 6E 74 28 67 6F 74 69 6E 64 +) getint(gotind
00E790: 2B 50 52 45 56 2C 20 26 67 6F 74 69 6E 64 2C 20 +PREV, &gotind,
00E7A0: 49 4E 54 45 47 45 52 29 3B 0D 0A 20 20 67 6F 74 INTEGER);.. got
00E7B0: 6C 69 6E 65 3D 6C 6E 3B 0D 0A 20 20 72 65 74 75 line=ln;.. retu
00E7C0: 72 6E 20 67 6F 74 69 6E 64 3B 0D 0A 20 20 7D 0D rn gotind;.. }.
00E7D0: 0A 0D 0A 2F 2A 0D 0A 2A 2A 20 67 65 74 69 6E 74 .../*..** getint
00E7E0: 20 2D 2D 20 6F 62 74 61 69 6E 20 69 6E 74 65 67 -- obtain integ
00E7F0: 65 72 20 6F 72 20 6C 6F 6E 67 20 66 72 6F 6D 20 er or long from
00E800: 7B 0D 0A 20 20 72 65 6C 69 6E 6B 28 4C 49 4E 45 {.. relink(LINE
00E810: 30 2C 20 4C 49 4E 45 30 2C 20 4C 49 4E 45 30 2C 0, LINE0, LINE0,
00E820: 20 4C 49 4E 45 30 29 3B 0D 0A 20 20 6C 61 73 74 LINE0);.. last
00E830: 62 66 3D 4C 49 4E 45 30 2B 54 45 58 54 3B 0D 0A bf=LINE0+TEXT;..
00E840: 20 20 61 64 64 73 65 74 28 4E 55 4C 4C 2C 20 62 addset(NULL, b
00E850: 75 66 2C 20 26 6C 61 73 74 62 66 2C 20 6D 61 78 uf, &lastbf, max
00E860: 62 75 66 29 3B 0D 0A 20 20 67 6F 74 6C 69 6E 65 buf);.. gotline
00E870: 3D 63 75 72 6C 6E 3D 6C 61 73 74 6C 6E 3D 30 3B =curln=lastln=0;
00E880: 0D 0A 20 20 67 6F 74 69 6E 64 3D 4C 49 4E 45 30 .. gotind=LINE0
00E890: 3B 0D 0A 20 20 7D 0D 0A 1A 1A 1A 1A 1A 1A 1A 1A ;.. }..........
00E8A0: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
00E8B0: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
00E8C0: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
00E8D0: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
00E8E0: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
00E8F0: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
00E900: 3B 0D 0A 20 20 2B 2B 6C 61 73 74 6C 6E 3B 0D 0A ;.. ++lastln;..
00E910: 20 20 7D 0D 0A 0D 0A 2F 2A 0D 0A 2A 2A 20 72 65 }..../*..** re
00E920: 6C 69 6E 6B 20 2D 2D 20 72 65 77 72 69 74 65 20 link -- rewrite
00E930: 74 77 6F 20 68 61 6C 66 20 6C 69 6E 6B 73 0D 0A two half links..
00E940: 2A 2F 0D 0A 72 65 6C 69 6E 6B 28 61 2C 20 78 2C */..relink(a, x,
00E950: 20 79 2C 20 62 29 20 69 6E 74 20 61 2C 20 78 2C y, b) int a, x,
00E960: 20 79 2C 20 62 3B 20 7B 0D 0A 20 20 70 75 74 69 y, b; {.. puti
00E970: 6E 74 28 78 2B 50 52 45 56 2C 20 26 61 2C 20 49 nt(x+PREV, &a, I
00E980: 4E 54 45 47 45 52 29 3B 0D 0A 20 20 70 75 74 69 NTEGER);.. puti
00E990: 6E 74 28 79 2B 4E 45 58 54 2C 20 26 62 2C 20 49 nt(y+NEXT, &b, I
00E9A0: 4E 54 45 47 45 52 29 3B 0D 0A 20 20 75 70 64 74 NTEGER);.. updt
00E9B0: 66 6C 61 67 3D 59 45 53 3B 0D 0A 20 20 7D 0D 0A flag=YES;.. }..
00E9C0: 0D 0A 2F 2A 0D 0A 2A 2A 20 73 65 74 62 75 66 20 ../*..** setbuf
00E9D0: 2D 2D 20 69 6E 69 74 69 61 6C 69 7A 65 20 6C 69 -- initialize li
00E9E0: 6E 65 20 73 74 6F 72 61 67 65 20 62 75 66 66 65 ne storage buffe
00E9F0: 72 0D 0A 2A 2F 0D 0A 73 65 74 62 75 66 28 29 20 r..*/..setbuf()
00EA00: 62 75 66 20 61 74 20 6F 66 66 73 65 74 0D 0A 2A buf at offset..*
00EA10: 2F 0D 0A 67 65 74 69 6E 74 28 6F 66 66 73 65 74 /..getint(offset
00EA20: 2C 20 64 65 73 74 2C 20 6C 65 6E 67 74 68 29 20 , dest, length)
00EA30: 69 6E 74 20 6F 66 66 73 65 74 2C 20 6C 65 6E 67 int offset, leng
00EA40: 74 68 3B 20 63 68 61 72 20 2A 64 65 73 74 3B 20 th; char *dest;
00EA50: 7B 0D 0A 20 20 62 75 66 70 74 72 3D 62 75 66 2B {.. bufptr=buf+
00EA60: 6F 66 66 73 65 74 3B 0D 0A 20 20 77 68 69 6C 65 offset;.. while
00EA70: 28 6C 65 6E 67 74 68 2D 2D 29 20 20 2A 64 65 73 (length--) *des
00EA80: 74 2B 2B 20 3D 20 2A 62 75 66 70 74 72 2B 2B 3B t++ = *bufptr++;
00EA90: 0D 0A 20 20 7D 0D 0A 0D 0A 2F 2A 0D 0A 2A 2A 20 .. }..../*..**
00EAA0: 70 75 74 69 6E 74 20 2D 2D 20 70 6C 61 63 65 20 putint -- place
00EAB0: 69 6E 74 65 67 65 72 20 6F 72 20 6C 6F 6E 67 20 integer or long
00EAC0: 69 6E 74 6F 20 62 75 66 20 61 74 20 6F 66 66 73 into buf at offs
00EAD0: 65 74 0D 0A 2A 2F 0D 0A 70 75 74 69 6E 74 28 6F et..*/..putint(o
00EAE0: 66 66 73 65 74 2C 20 73 6F 75 72 63 65 2C 20 6C ffset, source, l
00EAF0: 65 6E 67 74 68 29 20 69 6E 74 20 6F 66 66 73 65 ength) int offse
00EB00: 74 2C 20 6C 65 6E 67 74 68 3B 20 63 68 61 72 20 t, length; char
00EB10: 2A 73 6F 75 72 63 65 3B 20 7B 0D 0A 20 20 62 75 *source; {.. bu
00EB20: 66 70 74 72 3D 62 75 66 2B 6F 66 66 73 65 74 3B fptr=buf+offset;
00EB30: 0D 0A 20 20 77 68 69 6C 65 28 6C 65 6E 67 74 68 .. while(length
00EB40: 2D 2D 29 20 2A 62 75 66 70 74 72 2B 2B 20 3D 20 --) *bufptr++ =
00EB50: 2A 73 6F 75 72 63 65 2B 2B 3B 0D 0A 20 20 7D 0D *source++;.. }.
00EB60: 0A 0D 0A 2F 2A 0D 0A 2A 2A 20 67 65 74 74 78 74 .../*..** gettxt
00EB70: 20 2D 2D 20 6C 6F 63 61 74 65 20 74 65 78 74 20 -- locate text
00EB80: 66 6F 72 20 6C 69 6E 65 20 61 6E 64 20 6D 61 6B for line and mak
00EB90: 65 20 61 76 61 69 6C 61 62 6C 65 0D 0A 2A 2F 0D e available..*/.
00EBA0: 0A 67 65 74 74 78 74 28 6C 69 6E 65 29 20 69 6E .gettxt(line) in
00EBB0: 74 20 6C 69 6E 65 3B 20 7B 0D 0A 20 20 69 6E 74 t line; {.. int
00EBC0: 20 69 2C 20 6A 2C 20 6B 3B 0D 0A 20 20 69 3D 28 i, j, k;.. i=(
00EBD0: 6B 3D 67 65 74 69 6E 64 28 6C 69 6E 65 29 29 20 k=getind(line))
00EBE0: 2B 20 54 45 58 54 3B 0D 0A 20 20 6A 3D 30 3B 0D + TEXT;.. j=0;.
00EBF0: 0A 20 20 77 68 69 6C 65 28 74 78 74 5B 6A 2B 2B . while(txt[j++
00EC00: 0D 0A 2F 2A 0D 0A 2A 2A 20 63 61 6E 74 2E 63 20 ../*..** cant.c
00EC10: 2D 2D 20 61 62 6F 72 74 20 77 69 74 68 20 22 6E -- abort with "n
00EC20: 61 6D 65 3A 20 63 61 6E 27 74 20 6F 70 65 6E 22 ame: can't open"
00EC30: 20 6D 65 73 73 61 67 65 0D 0A 2A 2F 0D 0A 63 61 message..*/..ca
00EC40: 6E 74 28 73 74 72 29 20 63 68 61 72 20 2A 73 74 nt(str) char *st
00EC50: 72 3B 20 7B 0D 0A 20 20 66 70 75 74 73 28 73 74 r; {.. fputs(st
00EC60: 72 2C 20 73 74 64 65 72 72 29 3B 0D 0A 20 20 66 r, stderr);.. f
00EC70: 70 75 74 73 28 22 3A 20 63 61 6E 27 74 20 6F 70 puts(": can't op
00EC80: 65 6E 5C 6E 22 2C 20 73 74 64 65 72 72 29 3B 0D en\n", stderr);.
00EC90: 0A 20 20 61 62 6F 72 74 28 37 29 3B 0D 0A 20 20 . abort(7);..
00ECA0: 7D 0D 0A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A }...............
00ECB0: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
00ECC0: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
00ECD0: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
00ECE0: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
00ECF0: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
00ED00: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00ED10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00ED20: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00ED30: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00ED40: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00ED50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00ED60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00ED70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00ED80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00ED90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00EDA0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00EDB0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00EDC0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00EDD0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00EDE0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00EDF0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00EE00: 5D 3D 62 75 66 5B 69 2B 2B 5D 29 3B 0D 0A 20 20 ]=buf[i++]);..
00EE10: 72 65 74 75 72 6E 20 6B 3B 0D 0A 20 20 7D 0D 0A return k;.. }..
00EE20: 0D 0A 2F 2A 0D 0A 2A 2A 20 69 6E 70 75 74 20 2D ../*..** input -
00EE30: 2D 20 69 6E 70 75 74 20 74 65 78 74 20 66 72 6F - input text fro
00EE40: 6D 20 66 64 20 69 6E 74 6F 20 62 75 66 0D 0A 2A m fd into buf..*
00EE50: 2F 0D 0A 69 6E 70 75 74 28 66 64 29 20 69 6E 74 /..input(fd) int
00EE60: 20 66 64 3B 20 7B 0D 0A 20 20 69 6E 74 20 6B 33 fd; {.. int k3
00EE70: 3B 0D 0A 20 20 77 68 69 6C 65 28 59 45 53 29 20 ;.. while(YES)
00EE80: 7B 0D 0A 20 20 20 20 69 66 28 70 6F 6C 6C 28 59 {.. if(poll(Y
00EE90: 45 53 29 3D 3D 45 53 43 29 20 72 65 74 75 72 6E ES)==ESC) return
00EEA0: 20 45 52 52 3B 0D 0A 20 20 20 20 6B 33 3D 6C 61 ERR;.. k3=la
00EEB0: 73 74 62 66 3B 0D 0A 20 20 20 20 69 66 28 66 67 stbf;.. if(fg
00EEC0: 65 74 73 28 62 75 66 20 2B 20 28 6C 61 73 74 62 ets(buf + (lastb
00EED0: 66 20 2B 3D 20 54 45 58 54 29 2C 20 4D 41 58 4C f += TEXT), MAXL
00EEE0: 49 4E 45 2C 20 66 64 29 29 20 7B 0D 0A 20 20 20 INE, fd)) {..
00EEF0: 20 20 20 6C 61 73 74 62 66 20 2B 3D 20 74 72 69 lastbf += tri
00EF00: 6D 28 62 75 66 2B 6C 61 73 74 62 66 29 20 2B 20 m(buf+lastbf) +
00EF10: 31 3B 0D 0A 20 20 20 20 20 20 69 6E 6C 69 6E 6B 1;.. inlink
00EF20: 28 6B 33 29 3B 0D 0A 20 20 20 20 20 20 69 66 28 (k3);.. if(
00EF30: 28 6C 61 73 74 62 66 2B 4D 41 58 4C 49 4E 45 29 (lastbf+MAXLINE)
00EF40: 20 3E 20 6D 61 78 62 75 66 29 20 7B 0D 0A 20 20 > maxbuf) {..
00EF50: 20 20 20 20 20 20 66 70 75 74 73 28 22 6D 65 6D fputs("mem
00EF60: 6F 72 79 20 6F 76 65 72 66 6C 6F 77 20 22 2C 20 ory overflow ",
00EF70: 73 74 64 65 72 72 29 3B 0D 0A 20 20 20 20 20 20 stderr);..
00EF80: 20 20 72 65 74 75 72 6E 20 45 52 52 3B 0D 0A 20 return ERR;..
00EF90: 20 20 20 20 20 20 20 7D 0D 0A 20 20 20 20 20 20 }..
00EFA0: 7D 0D 0A 20 20 20 20 65 6C 73 65 20 62 72 65 61 }.. else brea
00EFB0: 6B 3B 0D 0A 20 20 20 20 7D 0D 0A 20 20 6C 61 73 k;.. }.. las
00EFC0: 74 62 66 20 2D 3D 20 54 45 58 54 3B 0D 0A 20 20 tbf -= TEXT;..
00EFD0: 72 65 74 75 72 6E 20 4F 4B 3B 0D 0A 20 20 7D 0D return OK;.. }.
00EFE0: 0A 0D 0A 2F 2A 0D 0A 2A 2A 20 69 6E 6A 65 63 74 .../*..** inject
00EFF0: 20 2D 2D 20 70 75 74 20 74 65 78 74 20 66 72 6F -- put text fro
00F000: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00F010: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00F020: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00F030: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00F040: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00F050: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00F060: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00F070: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00F080: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00F090: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00F0A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00F0B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00F0C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00F0D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00F0E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00F0F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00F100: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00F110: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00F120: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00F130: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00F140: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00F150: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00F160: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00F170: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00F180: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00F190: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00F1A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00F1B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00F1C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00F1D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00F1E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00F1F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00F200: 6D 20 6C 69 6E 20 61 66 74 65 72 20 63 75 72 6C m lin after curl
00F210: 6E 0D 0A 2A 2F 0D 0A 69 6E 6A 65 63 74 28 6C 69 n..*/..inject(li
00F220: 6E 29 20 63 68 61 72 20 6C 69 6E 5B 5D 3B 20 7B n) char lin[]; {
00F230: 0D 0A 20 20 69 6E 74 20 69 2C 20 6B 33 3B 0D 0A .. int i, k3;..
00F240: 20 20 69 66 28 2A 6C 69 6E 3D 3D 4E 55 4C 4C 29 if(*lin==NULL)
00F250: 20 7B 0D 0A 20 20 20 20 2A 6C 69 6E 3D 27 5C 6E {.. *lin='\n
00F260: 27 3B 0D 0A 20 20 20 20 2A 28 6C 69 6E 2B 31 29 ';.. *(lin+1)
00F270: 3D 4E 55 4C 4C 3B 0D 0A 20 20 20 20 7D 0D 0A 20 =NULL;.. }..
00F280: 20 69 3D 30 3B 0D 0A 20 20 77 68 69 6C 65 28 6C i=0;.. while(l
00F290: 69 6E 5B 69 5D 21 3D 4E 55 4C 4C 29 20 7B 0D 0A in[i]!=NULL) {..
00F2A0: 20 20 20 20 6B 33 3D 6C 61 73 74 62 66 3B 0D 0A k3=lastbf;..
00F2B0: 20 20 20 20 6C 61 73 74 62 66 3D 6C 61 73 74 62 lastbf=lastb
00F2C0: 66 2B 54 45 58 54 3B 0D 0A 20 20 20 20 77 68 69 f+TEXT;.. whi
00F2D0: 6C 65 28 6C 69 6E 5B 69 5D 21 3D 4E 55 4C 4C 29 le(lin[i]!=NULL)
00F2E0: 20 7B 0D 0A 20 20 20 20 20 20 69 66 28 6C 69 6E {.. if(lin
00F2F0: 5B 69 5D 3D 3D 27 5C 6E 27 29 20 7B 0D 0A 20 20 [i]=='\n') {..
00F300: 20 20 20 20 20 20 2B 2B 69 3B 0D 0A 20 20 20 20 ++i;..
00F310: 20 20 20 20 62 72 65 61 6B 3B 0D 0A 20 20 20 20 break;..
00F320: 20 20 20 20 7D 0D 0A 20 20 20 20 20 20 61 64 64 }.. add
00F330: 73 65 74 28 6C 69 6E 5B 69 2B 2B 5D 2C 20 62 75 set(lin[i++], bu
00F340: 66 2C 20 26 6C 61 73 74 62 66 2C 20 6D 61 78 62 f, &lastbf, maxb
00F350: 75 66 29 3B 0D 0A 20 20 20 20 20 20 7D 0D 0A 20 uf);.. }..
00F360: 20 20 20 69 66 28 61 64 64 73 65 74 28 4E 55 4C if(addset(NUL
00F370: 4C 2C 20 62 75 66 2C 20 26 6C 61 73 74 62 66 2C L, buf, &lastbf,
00F380: 20 6D 61 78 62 75 66 29 3D 3D 4E 4F 29 20 7B 0D maxbuf)==NO) {.
00F390: 0A 20 20 20 20 20 20 66 70 75 74 73 28 22 6D 65 . fputs("me
00F3A0: 6D 6F 72 79 20 6F 76 65 72 66 6C 6F 77 20 22 2C mory overflow ",
00F3B0: 20 73 74 64 65 72 72 29 3B 0D 0A 20 20 20 20 20 stderr);..
00F3C0: 20 72 65 74 75 72 6E 20 45 52 52 3B 0D 0A 20 20 return ERR;..
00F3D0: 20 20 20 20 7D 0D 0A 20 20 20 20 69 6E 6C 69 6E }.. inlin
00F3E0: 6B 28 6B 33 29 3B 0D 0A 20 20 20 20 7D 0D 0A 20 k(k3);.. }..
00F3F0: 20 72 65 74 75 72 6E 20 4F 4B 3B 0D 0A 20 20 7D return OK;.. }
00F400: 0D 0A 2F 2A 0D 0A 2A 2A 20 63 61 74 73 75 62 2E ../*..** catsub.
00F410: 63 20 2D 2D 20 61 64 64 20 72 65 70 6C 61 63 65 c -- add replace
00F420: 6D 65 6E 74 20 74 65 78 74 20 74 6F 20 65 6E 64 ment text to end
00F430: 20 6F 66 20 6E 65 77 0D 0A 2A 2F 0D 0A 63 61 74 of new..*/..cat
00F440: 73 75 62 28 6C 69 6E 2C 20 66 72 6F 6D 2C 20 74 sub(lin, from, t
00F450: 6F 2C 20 73 75 62 2C 20 6E 65 77 2C 20 6B 2C 20 o, sub, new, k,
00F460: 6D 61 78 6E 65 77 29 0D 0A 20 20 63 68 61 72 20 maxnew).. char
00F470: 6C 69 6E 5B 5D 2C 20 6E 65 77 5B 5D 2C 20 73 75 lin[], new[], su
00F480: 62 5B 5D 3B 0D 0A 20 20 69 6E 74 20 66 72 6F 6D b[];.. int from
00F490: 2C 20 74 6F 2C 20 2A 6B 2C 20 6D 61 78 6E 65 77 , to, *k, maxnew
00F4A0: 3B 20 7B 0D 0A 0D 0A 20 20 69 6E 74 20 69 2C 20 ; {.... int i,
00F4B0: 6A 3B 0D 0A 20 20 69 3D 30 3B 0D 0A 20 20 77 68 j;.. i=0;.. wh
00F4C0: 69 6C 65 28 73 75 62 5B 69 5D 21 3D 4E 55 4C 4C ile(sub[i]!=NULL
00F4D0: 29 20 7B 0D 0A 20 20 20 20 69 66 28 73 75 62 5B ) {.. if(sub[
00F4E0: 69 5D 3D 3D 44 49 54 43 4F 44 45 29 20 7B 0D 0A i]==DITCODE) {..
00F4F0: 20 20 20 20 20 20 6A 3D 66 72 6F 6D 3B 0D 0A 20 j=from;..
00F500: 20 20 20 20 20 77 68 69 6C 65 28 6A 20 3C 20 74 while(j < t
00F510: 6F 29 20 61 64 64 73 65 74 28 6C 69 6E 5B 6A 2B o) addset(lin[j+
00F520: 2B 5D 2C 20 6E 65 77 2C 20 6B 2C 20 6D 61 78 6E +], new, k, maxn
00F530: 65 77 29 3B 0D 0A 20 20 20 20 20 20 7D 0D 0A 20 ew);.. }..
00F540: 20 20 20 65 6C 73 65 20 61 64 64 73 65 74 28 73 else addset(s
00F550: 75 62 5B 69 5D 2C 20 6E 65 77 2C 20 6B 2C 20 6D ub[i], new, k, m
00F560: 61 78 6E 65 77 29 3B 0D 0A 20 20 20 20 2B 2B 69 axnew);.. ++i
00F570: 3B 0D 0A 20 20 20 20 7D 0D 0A 20 20 7D 0D 0A 1A ;.. }.. }...
00F580: 2F 0D 0A 20 20 69 66 28 61 64 64 73 65 74 28 4E /.. if(addset(N
00F590: 55 4C 4C 2C 20 73 75 62 2C 20 26 6A 2C 20 4D 41 ULL, sub, &j, MA
00F5A0: 58 50 41 54 29 3D 3D 4E 4F 29 20 72 65 74 75 72 XPAT)==NO) retur
00F5B0: 6E 20 45 52 52 3B 20 2F 2A 2A 20 6E 6F 20 72 6F n ERR; /** no ro
00F5C0: 6F 6D 20 2A 2A 2F 0D 0A 20 20 72 65 74 75 72 6E om **/.. return
00F5D0: 20 69 3B 0D 0A 20 20 7D 0D 0A 1A 41 54 5D 2C 20 i;.. }...AT],
00F5E0: 73 75 62 5B 4D 41 58 50 41 54 5D 3B 0D 0A 63 68 sub[MAXPAT];..ch
00F5F0: 61 72 20 61 72 67 5B 4D 41 58 41 52 47 5D 3B 0D ar arg[MAXARG];.
00F600: 0D 0A 0D 0A 2F 2A 0D 0A 2A 2A 20 69 6E 6C 69 6E ..../*..** inlin
00F610: 6B 20 2D 2D 20 6C 69 6E 6B 20 69 6E 6A 65 63 74 k -- link inject
00F620: 65 64 20 6C 69 6E 65 0D 0A 2A 2F 0D 0A 69 6E 6C ed line..*/..inl
00F630: 69 6E 6B 28 6B 33 29 20 69 6E 74 20 6B 33 3B 20 ink(k3) int k3;
00F640: 7B 0D 0A 20 20 69 6E 74 20 6B 31 2C 20 6B 32 3B {.. int k1, k2;
00F650: 0D 0A 20 20 6B 31 3D 67 65 74 69 6E 64 28 63 75 .. k1=getind(cu
00F660: 72 6C 6E 29 3B 0D 0A 20 20 2F 2A 2A 20 6C 65 61 rln);.. /** lea
00F670: 76 65 73 20 67 6F 74 6C 69 6E 65 20 26 20 67 6F ves gotline & go
00F680: 74 69 6E 64 20 62 65 66 6F 72 65 20 61 66 66 65 tind before affe
00F690: 63 74 65 64 20 61 72 65 61 20 2A 2A 2F 0D 0A 20 cted area **/..
00F6A0: 20 67 65 74 69 6E 74 28 6B 31 2B 4E 45 58 54 2C getint(k1+NEXT,
00F6B0: 20 26 6B 32 2C 20 49 4E 54 45 47 45 52 29 3B 0D &k2, INTEGER);.
00F6C0: 0A 20 20 72 65 6C 69 6E 6B 28 6B 31 2C 20 6B 33 . relink(k1, k3
00F6D0: 2C 20 6B 33 2C 20 6B 32 29 3B 0D 0A 20 20 72 65 , k3, k2);.. re
00F6E0: 6C 69 6E 6B 28 6B 33 2C 20 6B 32 2C 20 6B 31 2C link(k3, k2, k1,
00F6F0: 20 6B 33 29 3B 0D 0A 20 20 2B 2B 63 75 72 6C 6E k3);.. ++curln
00F700: 3B 0D 0A 20 20 2B 2B 6C 61 73 74 6C 6E 3B 0D 0A ;.. ++lastln;..
00F710: 20 20 7D 0D 0A 0D 0A 2F 2A 0D 0A 2A 2A 20 72 65 }..../*..** re
00F720: 6C 69 6E 6B 20 2D 2D 20 72 65 77 72 69 74 65 20 link -- rewrite
00F730: 74 77 6F 20 68 61 6C 66 20 6C 69 6E 6B 73 0D 0A two half links..
00F740: 2A 2F 0D 0A 72 65 6C 69 6E 6B 28 61 2C 20 78 2C */..relink(a, x,
00F750: 20 79 2C 20 62 29 20 69 6E 74 20 61 2C 20 78 2C y, b) int a, x,
00F760: 20 79 2C 20 62 3B 20 7B 0D 0A 20 20 70 75 74 69 y, b; {.. puti
00F770: 6E 74 28 78 2B 50 52 45 56 2C 20 26 61 2C 20 49 nt(x+PREV, &a, I
00F780: 4E 54 45 47 45 52 29 3B 0D 0A 20 20 70 75 74 69 NTEGER);.. puti
00F790: 6E 74 28 79 2B 4E 45 58 54 2C 20 26 62 2C 20 49 nt(y+NEXT, &b, I
00F7A0: 4E 54 45 47 45 52 29 3B 0D 0A 20 20 75 70 64 74 NTEGER);.. updt
00F7B0: 66 6C 61 67 3D 59 45 53 3B 0D 0A 20 20 7D 0D 0A flag=YES;.. }..
00F7C0: 0D 0A 2F 2A 0D 0A 2A 2A 20 73 65 74 62 75 66 20 ../*..** setbuf
00F7D0: 2D 2D 20 69 6E 69 74 69 61 6C 69 7A 65 20 6C 69 -- initialize li
00F7E0: 6E 65 20 73 74 6F 72 61 67 65 20 62 75 66 66 65 ne storage buffe
00F7F0: 72 0D 0A 2A 2F 0D 0A 73 65 74 62 75 66 28 29 20 r..*/..setbuf()
00F800: 54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 00 00 00 Track-Info......
00F810: 0D 00 01 00 02 09 52 E5 0D 00 41 02 00 00 00 02 ......R...A.....
00F820: 0D 00 46 02 00 00 00 02 0D 00 42 02 00 00 00 02 ..F.......B.....
00F830: 0D 00 47 02 00 00 00 02 0D 00 43 02 00 00 00 02 ..G.......C.....
00F840: 0D 00 48 02 00 00 00 02 0D 00 44 02 00 00 00 02 ..H.......D.....
00F850: 0D 00 49 02 00 00 00 02 0D 00 45 02 00 00 00 02 ..I.......E.....
00F860: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00F870: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00F880: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00F890: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00F8A0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00F8B0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00F8C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00F8D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00F8E0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00F8F0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00F900: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00F910: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00F920: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00F930: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00F940: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00F950: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00F960: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00F970: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00F980: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00F990: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00F9A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00F9B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00F9C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00F9D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00F9E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00F9F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00FA00: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00FA10: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00FA20: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00FA30: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00FA40: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00FA50: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00FA60: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00FA70: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00FA80: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00FA90: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00FAA0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00FAB0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00FAC0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00FAD0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00FAE0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00FAF0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
00FB00: 0D 0A 2F 2A 0D 0A 2A 2A 20 63 70 79 2E 63 20 2D ../*..** cpy.c -
00FB10: 2D 20 63 6F 70 79 20 6E 61 6D 65 64 20 66 69 6C - copy named fil
00FB20: 65 73 20 74 6F 20 73 74 61 6E 64 61 72 64 20 6F es to standard o
00FB30: 75 74 70 75 74 0D 0A 2A 2A 0D 0A 2A 2A 20 43 6F utput..**..** Co
00FB40: 70 79 72 69 67 68 74 20 31 39 38 32 20 4A 2E 20 pyright 1982 J.
00FB50: 45 2E 20 48 65 6E 64 72 69 78 2E 20 20 41 6C 6C E. Hendrix. All
00FB60: 20 72 69 67 68 74 73 20 72 65 73 65 72 76 65 64 rights reserved
00FB70: 2E 0D 0A 2A 2F 0D 0A 23 69 6E 63 6C 75 64 65 20 ...*/..#include
00FB80: 3C 73 74 64 69 6F 2E 68 3E 0D 0A 23 69 6E 63 6C <stdio.h>..#incl
00FB90: 75 64 65 20 22 74 6F 6F 6C 73 2E 68 22 0D 0A 23 ude "tools.h"..#
00FBA0: 64 65 66 69 6E 65 20 4E 4F 43 43 41 52 47 43 0D define NOCCARGC.
00FBB0: 0A 23 64 65 66 69 6E 65 20 4D 41 58 41 52 47 20 .#define MAXARG
00FBC0: 31 32 0D 0A 69 6E 74 20 66 69 6E 2C 20 69 2C 20 12..int fin, i,
00FBD0: 6A 3B 0D 0A 69 6E 74 20 73 74 61 74 75 73 3B 0D j;..int status;.
00FBE0: 0A 69 6E 74 20 62 69 6E 61 72 79 2C 20 73 74 72 .int binary, str
00FBF0: 69 70 6C 66 2C 20 73 74 72 69 70 63 72 2C 20 66 iplf, stripcr, f
00FC00: 72 6F 6D 2C 20 74 6F 3B 0D 0A 63 68 61 72 20 6E rom, to;..char n
00FC10: 61 6D 65 5B 4D 41 58 46 4E 5D 2C 20 69 6E 63 6C ame[MAXFN], incl
00FC20: 65 78 74 5B 4D 41 58 46 4E 5D 3B 0D 0A 6D 61 69 ext[MAXFN];..mai
00FC30: 6E 28 61 72 67 63 2C 20 61 72 67 76 29 20 69 6E n(argc, argv) in
00FC40: 74 20 61 72 67 63 2C 20 2A 61 72 67 76 3B 20 7B t argc, *argv; {
00FC50: 0D 0A 20 20 61 75 78 62 75 66 28 73 74 64 6F 75 .. auxbuf(stdou
00FC60: 74 2C 20 34 30 39 36 29 3B 0D 0A 20 20 64 6F 61 t, 4096);.. doa
00FC70: 72 67 73 28 61 72 67 63 2C 20 61 72 67 76 29 3B rgs(argc, argv);
00FC80: 0D 0A 20 20 69 66 28 28 62 69 6E 61 72 79 3D 3D .. if((binary==
00FC90: 59 45 53 29 26 28 69 6E 63 6C 65 78 74 5B 30 5D YES)&(inclext[0]
00FCA0: 21 3D 4E 55 4C 4C 29 29 20 7B 0D 0A 20 20 20 20 !=NULL)) {..
00FCB0: 66 70 75 74 73 28 22 63 61 6E 6E 6F 74 20 69 6E fputs("cannot in
00FCC0: 63 6C 75 64 65 20 66 69 6C 65 73 20 64 75 72 69 clude files duri
00FCD0: 6E 67 20 62 69 6E 61 72 79 20 63 6F 70 79 22 2C ng binary copy",
00FCE0: 20 73 74 64 65 72 72 29 3B 0D 0A 20 20 20 20 61 stderr);.. a
00FCF0: 62 6F 72 74 28 37 29 3B 0D 0A 20 20 20 20 7D 0D bort(7);.. }.
00FD00: 0D 0A 2F 2A 0D 0A 2A 2A 20 63 68 67 2E 63 20 2D ../*..** chg.c -
00FD10: 2D 20 63 68 61 6E 67 65 20 6F 63 63 75 72 72 65 - change occurre
00FD20: 6E 63 65 73 20 6F 66 20 22 66 72 6F 6D 22 20 74 nces of "from" t
00FD30: 6F 20 22 74 6F 22 0D 0A 2A 2A 0D 0A 2A 2A 20 43 o "to"..**..** C
00FD40: 6F 70 79 72 69 67 68 74 20 31 39 38 32 20 4A 2E opyright 1982 J.
00FD50: 20 45 2E 20 48 65 6E 64 72 69 78 2E 20 20 41 6C E. Hendrix. Al
00FD60: 6C 20 72 69 67 68 74 73 20 72 65 73 65 72 76 65 l rights reserve
00FD70: 64 2E 0D 0A 2A 2F 0D 0A 23 69 6E 63 6C 75 64 65 d...*/..#include
00FD80: 20 3C 73 74 64 69 6F 2E 68 3E 0D 0A 23 69 6E 63 <stdio.h>..#inc
00FD90: 6C 75 64 65 20 22 74 6F 6F 6C 73 2E 68 22 0D 0A lude "tools.h"..
00FDA0: 23 64 65 66 69 6E 65 20 4E 4F 43 43 41 52 47 43 #define NOCCARGC
00FDB0: 0D 0A 23 64 65 66 69 6E 65 20 4D 41 58 41 52 47 ..#define MAXARG
00FDC0: 20 34 39 0D 0A 23 64 65 66 69 6E 65 20 4D 41 58 49..#define MAX
00FDD0: 4C 49 4E 31 20 28 4D 41 58 4C 49 4E 45 2B 31 29 LIN1 (MAXLINE+1)
00FDE0: 0D 0A 63 68 61 72 20 6C 69 6E 5B 4D 41 58 4C 49 ..char lin[MAXLI
00FDF0: 4E 31 5D 2C 20 6E 65 77 5B 4D 41 58 4C 49 4E 31 N1], new[MAXLIN1
00FE00: 5D 2C 20 70 61 74 5B 4D 41 58 50 41 54 5D 2C 20 ], pat[MAXPAT],
00FE10: 73 75 62 5B 4D 41 58 50 41 54 5D 3B 0D 0A 63 68 sub[MAXPAT];..ch
00FE20: 61 72 20 61 72 67 5B 4D 41 58 41 52 47 5D 3B 0D ar arg[MAXARG];.
00FE30: 0A 69 6E 74 20 69 2C 20 6B 2C 20 6C 61 73 74 6E .int i, k, lastn
00FE40: 2C 20 6E 3B 0D 0A 6D 61 69 6E 28 61 72 67 63 2C , n;..main(argc,
00FE50: 20 61 72 67 76 29 20 69 6E 74 20 61 72 67 63 2C argv) int argc,
00FE60: 20 2A 61 72 67 76 3B 20 7B 0D 0A 20 20 69 66 28 *argv; {.. if(
00FE70: 28 67 65 74 61 72 67 28 31 2C 20 61 72 67 2C 20 (getarg(1, arg,
00FE80: 4D 41 58 41 52 47 2C 20 61 72 67 63 2C 20 61 72 MAXARG, argc, ar
00FE90: 67 76 29 3D 3D 45 4F 46 29 0D 0A 20 20 20 20 7C gv)==EOF).. |
00FEA0: 28 28 61 72 67 5B 30 5D 3D 3D 27 2D 27 29 26 28 ((arg[0]=='-')&(
00FEB0: 61 72 67 5B 31 5D 3D 3D 30 29 29 29 0D 0A 20 20 arg[1]==0)))..
00FEC0: 20 20 65 72 72 6F 72 28 22 75 73 61 67 65 3A 20 error("usage:
00FED0: 43 48 47 20 70 61 74 74 65 72 6E 20 5B 72 65 70 CHG pattern [rep
00FEE0: 6C 61 63 65 6D 65 6E 74 5D 5C 6E 22 29 3B 0D 0A lacement]\n");..
00FEF0: 20 20 69 66 28 6D 61 6B 70 61 74 28 61 72 67 2C if(makpat(arg,
00FF00: 0A 20 20 66 69 6E 3D 39 39 3B 0D 0A 20 20 69 3D . fin=99;.. i=
00FF10: 30 3B 0D 0A 20 20 77 68 69 6C 65 28 67 65 74 61 0;.. while(geta
00FF20: 72 67 28 2B 2B 69 2C 20 6E 61 6D 65 2C 20 4D 41 rg(++i, name, MA
00FF30: 58 46 4E 2C 20 61 72 67 63 2C 20 61 72 67 76 29 XFN, argc, argv)
00FF40: 21 3D 45 4F 46 29 20 7B 0D 0A 20 20 20 20 69 66 !=EOF) {.. if
00FF50: 28 28 6E 61 6D 65 5B 30 5D 3D 3D 27 2D 27 29 7C ((name[0]=='-')|
00FF60: 28 6E 61 6D 65 5B 30 5D 3D 3D 45 58 54 4D 41 52 (name[0]==EXTMAR
00FF70: 4B 29 29 20 63 6F 6E 74 69 6E 75 65 3B 0D 0A 20 K)) continue;..
00FF80: 20 20 20 69 66 28 28 66 69 6E 3D 66 6F 70 65 6E if((fin=fopen
00FF90: 28 6E 61 6D 65 2C 20 22 72 22 29 29 3D 3D 4E 55 (name, "r"))==NU
00FFA0: 4C 4C 29 20 63 61 6E 74 28 6E 61 6D 65 29 3B 0D LL) cant(name);.
00FFB0: 0A 20 20 20 20 69 66 28 62 69 6E 61 72 79 29 20 . if(binary)
00FFC0: 62 63 6F 70 79 28 66 69 6E 2C 20 73 74 64 6F 75 bcopy(fin, stdou
00FFD0: 74 29 3B 0D 0A 20 20 20 20 65 6C 73 65 20 20 20 t);.. else
00FFE0: 20 20 20 20 66 63 6F 70 79 28 66 69 6E 2C 20 73 fcopy(fin, s
00FFF0: 74 64 6F 75 74 29 3B 0D 0A 20 20 20 20 66 63 6C tdout);.. fcl
010000: 6F 73 65 28 66 69 6E 29 3B 0D 0A 20 20 20 20 7D ose(fin);.. }
010010: 0D 0A 20 20 69 66 28 66 69 6E 3D 3D 39 39 29 20 .. if(fin==99)
010020: 7B 0D 0A 20 20 20 20 69 66 28 62 69 6E 61 72 79 {.. if(binary
010030: 29 20 62 63 6F 70 79 28 73 74 64 69 6E 2C 20 73 ) bcopy(stdin, s
010040: 74 64 6F 75 74 29 3B 0D 0A 20 20 20 20 65 6C 73 tdout);.. els
010050: 65 20 20 20 20 20 20 20 66 63 6F 70 79 28 73 74 e fcopy(st
010060: 64 69 6E 2C 20 73 74 64 6F 75 74 29 3B 0D 0A 20 din, stdout);..
010070: 20 20 20 7D 0D 0A 20 20 66 63 6C 6F 73 65 28 73 }.. fclose(s
010080: 74 64 6F 75 74 29 3B 0D 0A 20 20 7D 0D 0A 0D 0A tdout);.. }....
010090: 64 6F 61 72 67 73 28 61 72 67 63 2C 20 61 72 67 doargs(argc, arg
0100A0: 76 29 20 69 6E 74 20 61 72 67 63 2C 20 2A 61 72 v) int argc, *ar
0100B0: 67 76 3B 20 7B 0D 0A 20 20 69 6E 74 20 6C 65 6E gv; {.. int len
0100C0: 3B 0D 0A 20 20 63 68 61 72 20 61 72 67 5B 4D 41 ;.. char arg[MA
0100D0: 58 41 52 47 5D 2C 20 65 72 72 6F 72 3B 0D 0A 20 XARG], error;..
0100E0: 20 69 6E 63 6C 65 78 74 5B 30 5D 3D 66 72 6F 6D inclext[0]=from
0100F0: 3D 74 6F 3D 4E 55 4C 4C 3B 0D 0A 20 20 62 69 6E =to=NULL;.. bin
010100: 20 30 2C 20 4E 55 4C 4C 2C 20 70 61 74 29 3D 3D 0, NULL, pat)==
010110: 45 52 52 29 0D 0A 20 20 20 20 65 72 72 6F 72 28 ERR).. error(
010120: 22 70 61 74 74 65 72 6E 20 74 6F 6F 20 6C 6F 6E "pattern too lon
010130: 67 5C 6E 22 29 3B 0D 0A 20 20 69 66 28 67 65 74 g\n");.. if(get
010140: 61 72 67 28 32 2C 20 61 72 67 2C 20 4D 41 58 41 arg(2, arg, MAXA
010150: 52 47 2C 20 61 72 67 63 2C 20 61 72 67 76 29 3D RG, argc, argv)=
010160: 3D 45 4F 46 29 0D 0A 20 20 20 20 61 72 67 5B 30 =EOF).. arg[0
010170: 5D 3D 4E 55 4C 4C 3B 0D 0A 20 20 69 66 28 6D 61 ]=NULL;.. if(ma
010180: 6B 73 75 62 28 61 72 67 2C 20 30 2C 20 4E 55 4C ksub(arg, 0, NUL
010190: 4C 2C 20 73 75 62 29 3D 3D 45 52 52 29 0D 0A 20 L, sub)==ERR)..
0101A0: 20 20 20 65 72 72 6F 72 28 22 72 65 70 6C 61 63 error("replac
0101B0: 65 6D 65 6E 74 20 74 6F 6F 20 6C 6F 6E 67 5C 6E ement too long\n
0101C0: 22 29 3B 0D 0A 20 20 61 75 78 62 75 66 28 73 74 ");.. auxbuf(st
0101D0: 64 69 6E 2C 20 34 30 39 36 29 3B 20 20 2F 2A 2A din, 4096); /**
0101E0: 20 61 6C 6C 6F 63 20 61 75 78 20 62 75 66 66 65 alloc aux buffe
0101F0: 72 20 74 6F 20 73 74 64 69 6E 20 2A 2A 2F 0D 0A r to stdin **/..
010200: 20 20 77 68 69 6C 65 28 66 67 65 74 73 28 6C 69 while(fgets(li
010210: 6E 2C 20 4D 41 58 4C 49 4E 31 2C 20 73 74 64 69 n, MAXLIN1, stdi
010220: 6E 29 21 3D 4E 55 4C 4C 29 20 7B 0D 0A 20 20 20 n)!=NULL) {..
010230: 20 70 6F 6C 6C 28 59 45 53 29 3B 0D 0A 20 20 20 poll(YES);..
010240: 20 6C 61 73 74 6E 20 3D 20 2D 31 3B 0D 0A 20 20 lastn = -1;..
010250: 20 20 69 3D 30 3B 20 20 6B 3D 30 3B 0D 0A 20 20 i=0; k=0;..
010260: 20 20 74 72 69 6D 28 6C 69 6E 29 3B 0D 0A 20 20 trim(lin);..
010270: 20 20 77 68 69 6C 65 28 59 45 53 29 20 7B 0D 0A while(YES) {..
010280: 20 20 20 20 20 20 6E 3D 61 6D 61 74 63 68 28 6C n=amatch(l
010290: 69 6E 2C 20 69 2C 20 70 61 74 29 3B 0D 0A 20 20 in, i, pat);..
0102A0: 20 20 20 20 69 66 28 28 6E 3E 3D 30 29 26 28 6C if((n>=0)&(l
0102B0: 61 73 74 6E 21 3D 6E 29 29 20 7B 20 20 20 2F 2A astn!=n)) { /*
0102C0: 2A 20 72 65 70 6C 61 63 65 20 6D 61 74 63 68 65 * replace matche
0102D0: 64 20 74 65 78 74 20 2A 2A 2F 0D 0A 20 20 20 20 d text **/..
0102E0: 20 20 20 20 63 61 74 73 75 62 28 6C 69 6E 2C 20 catsub(lin,
0102F0: 69 2C 20 6E 2C 20 73 75 62 2C 20 6E 65 77 2C 20 i, n, sub, new,
010300: 61 72 79 3D 73 74 72 69 70 6C 66 3D 73 74 72 69 ary=striplf=stri
010310: 70 63 72 3D 65 72 72 6F 72 3D 4E 4F 3B 0D 0A 20 pcr=error=NO;..
010320: 20 69 3D 30 3B 0D 0A 20 20 77 68 69 6C 65 28 67 i=0;.. while(g
010330: 65 74 61 72 67 28 2B 2B 69 2C 20 61 72 67 2C 20 etarg(++i, arg,
010340: 4D 41 58 41 52 47 2C 20 61 72 67 63 2C 20 61 72 MAXARG, argc, ar
010350: 67 76 29 21 3D 45 4F 46 29 20 7B 0D 0A 20 20 20 gv)!=EOF) {..
010360: 20 69 66 28 61 72 67 5B 30 5D 3D 3D 45 58 54 4D if(arg[0]==EXTM
010370: 41 52 4B 29 20 7B 0D 0A 20 20 20 20 20 20 6A 3D ARK) {.. j=
010380: 30 3B 0D 0A 20 20 20 20 20 20 77 68 69 6C 65 28 0;.. while(
010390: 69 6E 63 6C 65 78 74 5B 6A 5D 3D 61 72 67 5B 6A inclext[j]=arg[j
0103A0: 5D 29 20 2B 2B 6A 3B 0D 0A 20 20 20 20 20 20 63 ]) ++j;.. c
0103B0: 6F 6E 74 69 6E 75 65 3B 0D 0A 20 20 20 20 20 20 ontinue;..
0103C0: 7D 0D 0A 20 20 20 20 69 66 28 61 72 67 5B 30 5D }.. if(arg[0]
0103D0: 21 3D 27 2D 27 29 20 63 6F 6E 74 69 6E 75 65 3B !='-') continue;
0103E0: 0D 0A 20 20 20 20 69 66 28 61 72 67 5B 32 5D 3D .. if(arg[2]=
0103F0: 3D 4E 55 4C 4C 29 20 7B 0D 0A 20 20 20 20 20 20 =NULL) {..
010400: 69 66 28 73 61 6D 65 28 61 72 67 5B 31 5D 2C 20 if(same(arg[1],
010410: 27 62 27 29 29 20 62 69 6E 61 72 79 3D 59 45 53 'b')) binary=YES
010420: 3B 0D 0A 20 20 20 20 20 20 65 6C 73 65 20 65 72 ;.. else er
010430: 72 6F 72 3D 59 45 53 3B 0D 0A 20 20 20 20 20 20 ror=YES;..
010440: 7D 0D 0A 20 20 20 20 65 6C 73 65 20 69 66 28 61 }.. else if(a
010450: 72 67 5B 34 5D 3D 3D 4E 55 4C 4C 29 20 7B 0D 0A rg[4]==NULL) {..
010460: 20 20 20 20 20 20 69 66 28 73 61 6D 65 28 61 72 if(same(ar
010470: 67 5B 31 5D 2C 20 27 6E 27 29 29 20 7B 0D 0A 20 g[1], 'n')) {..
010480: 20 20 20 20 20 20 20 69 66 28 73 61 6D 65 28 61 if(same(a
010490: 72 67 5B 32 5D 2C 20 27 63 27 29 20 26 20 73 61 rg[2], 'c') & sa
0104A0: 6D 65 28 61 72 67 5B 33 5D 2C 20 27 72 27 29 29 me(arg[3], 'r'))
0104B0: 0D 0A 20 20 20 20 20 20 20 20 20 20 73 74 72 69 .. stri
0104C0: 70 63 72 3D 62 69 6E 61 72 79 3D 59 45 53 3B 0D pcr=binary=YES;.
0104D0: 0A 20 20 20 20 20 20 20 20 65 6C 73 65 20 69 66 . else if
0104E0: 28 73 61 6D 65 28 61 72 67 5B 32 5D 2C 20 27 6C (same(arg[2], 'l
0104F0: 27 29 20 26 20 73 61 6D 65 28 61 72 67 5B 33 5D ') & same(arg[3]
010500: 26 6B 2C 20 4D 41 58 4C 49 4E 31 29 3B 0D 0A 20 &k, MAXLIN1);..
010510: 20 20 20 20 20 20 20 6C 61 73 74 6E 3D 6E 3B 0D lastn=n;.
010520: 0A 20 20 20 20 20 20 20 20 7D 0D 0A 20 20 20 20 . }..
010530: 20 20 69 66 28 6C 69 6E 5B 69 5D 3D 3D 4E 55 4C if(lin[i]==NUL
010540: 4C 29 20 62 72 65 61 6B 3B 0D 0A 20 20 20 20 20 L) break;..
010550: 20 69 66 28 28 6E 3D 3D 2D 31 29 7C 28 6E 3D 3D if((n==-1)|(n==
010560: 69 29 29 20 7B 20 20 20 20 20 20 2F 2A 2A 20 6E i)) { /** n
010570: 6F 20 6D 61 74 63 68 20 6F 72 20 6E 75 6C 6C 20 o match or null
010580: 6D 61 74 63 68 20 2A 2A 2F 0D 0A 20 20 20 20 20 match **/..
010590: 20 20 20 61 64 64 73 65 74 28 6C 69 6E 5B 69 5D addset(lin[i]
0105A0: 2C 20 6E 65 77 2C 20 26 6B 2C 20 4D 41 58 4C 49 , new, &k, MAXLI
0105B0: 4E 31 29 3B 0D 0A 20 20 20 20 20 20 20 20 2B 2B N1);.. ++
0105C0: 69 3B 0D 0A 20 20 20 20 20 20 20 20 7D 0D 0A 20 i;.. }..
0105D0: 20 20 20 20 20 65 6C 73 65 20 69 3D 6E 3B 20 20 else i=n;
0105E0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2F /
0105F0: 2A 2A 20 73 6B 69 70 20 6D 61 74 63 68 65 64 20 ** skip matched
010600: 74 65 78 74 20 2A 2A 2F 0D 0A 20 20 20 20 20 20 text **/..
010610: 7D 0D 0A 20 20 20 20 69 66 28 61 64 64 73 65 74 }.. if(addset
010620: 28 4E 55 4C 4C 2C 20 6E 65 77 2C 20 26 6B 2C 20 (NULL, new, &k,
010630: 4D 41 58 4C 49 4E 31 29 3D 3D 4E 4F 29 20 7B 0D MAXLIN1)==NO) {.
010640: 0A 20 20 20 20 20 20 6B 3D 4D 41 58 4C 49 4E 31 . k=MAXLIN1
010650: 2D 31 3B 0D 0A 20 20 20 20 20 20 61 64 64 73 65 -1;.. addse
010660: 74 28 4E 55 4C 4C 2C 20 6E 65 77 2C 20 26 6B 2C t(NULL, new, &k,
010670: 20 4D 41 58 4C 49 4E 31 29 3B 0D 0A 20 20 20 20 MAXLIN1);..
010680: 20 20 73 6F 75 74 28 22 5C 37 6C 69 6E 65 20 74 sout("\7line t
010690: 72 75 6E 63 61 74 65 64 3A 20 22 2C 20 73 74 64 runcated: ", std
0106A0: 65 72 72 29 3B 0D 0A 20 20 20 20 20 20 6C 6F 75 err);.. lou
0106B0: 74 28 6E 65 77 2C 20 73 74 64 65 72 72 29 3B 0D t(new, stderr);.
0106C0: 0A 20 20 20 20 20 20 7D 0D 0A 20 20 20 20 6C 6F . }.. lo
0106D0: 75 74 28 6E 65 77 2C 20 73 74 64 6F 75 74 29 3B ut(new, stdout);
0106E0: 0D 0A 20 20 20 20 7D 0D 0A 20 20 66 63 6C 6F 73 .. }.. fclos
0106F0: 65 28 73 74 64 6F 75 74 29 3B 0D 0A 20 20 7D 0D e(stdout);.. }.
010700: 2C 20 27 66 27 29 29 0D 0A 20 20 20 20 20 20 20 , 'f'))..
010710: 20 20 20 73 74 72 69 70 6C 66 3D 62 69 6E 61 72 striplf=binar
010720: 79 3D 59 45 53 3B 0D 0A 20 20 20 20 20 20 20 20 y=YES;..
010730: 65 6C 73 65 20 65 72 72 6F 72 3D 59 45 53 3B 0D else error=YES;.
010740: 0A 20 20 20 20 20 20 20 20 7D 0D 0A 20 20 20 20 . }..
010750: 20 20 65 6C 73 65 20 65 72 72 6F 72 3D 59 45 53 else error=YES
010760: 3B 0D 0A 20 20 20 20 20 20 7D 0D 0A 20 20 20 20 ;.. }..
010770: 65 6C 73 65 20 69 66 28 73 61 6D 65 28 61 72 67 else if(same(arg
010780: 5B 31 5D 2C 20 27 74 27 29 29 20 7B 0D 0A 20 20 [1], 't')) {..
010790: 20 20 20 20 62 69 6E 61 72 79 3D 59 45 53 3B 0D binary=YES;.
0107A0: 0A 20 20 20 20 20 20 6C 65 6E 3D 75 74 6F 69 28 . len=utoi(
0107B0: 61 72 67 2B 32 2C 20 26 66 72 6F 6D 29 3B 0D 0A arg+2, &from);..
0107C0: 20 20 20 20 20 20 69 66 28 28 6C 65 6E 3C 31 29 if((len<1)
0107D0: 7C 28 61 72 67 5B 6C 65 6E 2B 32 5D 21 3D 27 2C |(arg[len+2]!=',
0107E0: 27 29 29 20 65 72 72 6F 72 3D 59 45 53 3B 0D 0A ')) error=YES;..
0107F0: 20 20 20 20 20 20 65 6C 73 65 20 7B 0D 0A 20 20 else {..
010800: 20 20 20 20 20 20 6A 3D 6C 65 6E 2B 33 3B 0D 0A j=len+3;..
010810: 20 20 20 20 20 20 20 20 6C 65 6E 3D 75 74 6F 69 len=utoi
010820: 28 61 72 67 2B 6A 2C 20 26 74 6F 29 3B 0D 0A 20 (arg+j, &to);..
010830: 20 20 20 20 20 20 20 69 66 28 28 6C 65 6E 3C 31 if((len<1
010840: 29 7C 28 61 72 67 5B 6C 65 6E 2B 6A 5D 21 3D 4E )|(arg[len+j]!=N
010850: 55 4C 4C 29 29 20 65 72 72 6F 72 3D 59 45 53 3B ULL)) error=YES;
010860: 0D 0A 20 20 20 20 20 20 20 20 7D 0D 0A 20 20 20 .. }..
010870: 20 20 20 7D 0D 0A 20 20 20 20 65 6C 73 65 20 65 }.. else e
010880: 72 72 6F 72 3D 59 45 53 3B 0D 0A 20 20 20 20 69 rror=YES;.. i
010890: 66 28 65 72 72 6F 72 29 20 7B 0D 0A 20 20 20 20 f(error) {..
0108A0: 20 20 66 70 75 74 73 28 22 75 73 61 67 65 3A 20 fputs("usage:
0108B0: 43 50 59 20 5B 66 69 6C 65 5D 2E 2E 2E 20 5B 2E CPY [file]... [.
0108C0: 3F 5D 20 5B 2D 42 5D 20 5B 2D 4E 43 52 5D 20 5B ?] [-B] [-NCR] [
0108D0: 2D 4E 4C 46 5D 20 5B 2D 54 23 2C 23 5D 5C 6E 22 -NLF] [-T#,#]\n"
0108E0: 2C 20 73 74 64 65 72 72 29 3B 0D 0A 20 20 20 20 , stderr);..
0108F0: 20 20 61 62 6F 72 74 28 37 29 3B 0D 0A 20 20 20 abort(7);..
010900: 0A 0D 0A 23 69 6E 63 6C 75 64 65 20 22 70 61 74 ...#include "pat
010910: 2E 63 22 0D 0A 23 69 6E 63 6C 75 64 65 20 22 6D .c"..#include "m
010920: 61 6B 73 75 62 2E 63 22 0D 0A 23 69 6E 63 6C 75 aksub.c"..#inclu
010930: 64 65 20 22 63 61 74 73 75 62 2E 63 22 0D 0A 23 de "catsub.c"..#
010940: 69 6E 63 6C 75 64 65 20 22 69 6E 64 65 78 2E 63 include "index.c
010950: 22 0D 0A 23 69 6E 63 6C 75 64 65 20 22 65 72 72 "..#include "err
010960: 6F 72 2E 63 22 0D 0A 23 69 6E 63 6C 75 64 65 20 or.c"..#include
010970: 22 6F 75 74 2E 63 22 0D 0A 23 69 6E 63 6C 75 64 "out.c"..#includ
010980: 65 20 22 74 72 69 6D 2E 63 22 0D 0A 0D 0A 1A 1A e "trim.c"......
010990: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
0109A0: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
0109B0: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
0109C0: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
0109D0: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
0109E0: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
0109F0: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
010A00: 74 65 78 74 20 2A 2A 2F 0D 0A 20 20 20 20 20 20 text **/..
010A10: 7D 0D 0A 20 20 20 20 69 66 28 61 64 64 73 65 74 }.. if(addset
010A20: 28 4E 55 4C 4C 2C 20 6E 65 77 2C 20 26 6B 2C 20 (NULL, new, &k,
010A30: 4D 41 58 4C 49 4E 31 29 3D 3D 4E 4F 29 20 7B 0D MAXLIN1)==NO) {.
010A40: 0A 20 20 20 20 20 20 6B 3D 4D 41 58 4C 49 4E 31 . k=MAXLIN1
010A50: 2D 31 3B 0D 0A 20 20 20 20 20 20 61 64 64 73 65 -1;.. addse
010A60: 74 28 4E 55 4C 4C 2C 20 6E 65 77 2C 20 26 6B 2C t(NULL, new, &k,
010A70: 20 4D 41 58 4C 49 4E 31 29 3B 0D 0A 20 20 20 20 MAXLIN1);..
010A80: 20 20 73 6F 75 74 28 22 5C 37 6C 69 6E 65 20 74 sout("\7line t
010A90: 72 75 6E 63 61 74 65 64 3A 20 22 2C 20 73 74 64 runcated: ", std
010AA0: 65 72 72 29 3B 0D 0A 20 20 20 20 20 20 6C 6F 75 err);.. lou
010AB0: 74 28 6E 65 77 2C 20 73 74 64 65 72 72 29 3B 0D t(new, stderr);.
010AC0: 0A 20 20 20 20 20 20 7D 0D 0A 20 20 20 20 6C 6F . }.. lo
010AD0: 75 74 28 6E 65 77 2C 20 73 74 64 6F 75 74 29 3B ut(new, stdout);
010AE0: 0D 0A 20 20 20 20 7D 0D 0A 20 20 66 63 6C 6F 73 .. }.. fclos
010AF0: 65 28 73 74 64 6F 75 74 29 3B 0D 0A 20 20 7D 0D e(stdout);.. }.
010B00: 54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 00 00 00 Track-Info......
010B10: 0E 00 01 00 02 09 52 E5 0E 00 41 02 00 00 00 02 ......R...A.....
010B20: 0E 00 46 02 00 00 00 02 0E 00 42 02 00 00 00 02 ..F.......B.....
010B30: 0E 00 47 02 00 00 00 02 0E 00 43 02 00 00 00 02 ..G.......C.....
010B40: 0E 00 48 02 00 00 00 02 0E 00 44 02 00 00 00 02 ..H.......D.....
010B50: 0E 00 49 02 00 00 00 02 0E 00 45 02 00 00 00 02 ..I.......E.....
010B60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
010B70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
010B80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
010B90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
010BA0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
010BB0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
010BC0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
010BD0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
010BE0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
010BF0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
010C00: 20 20 20 7D 0D 0A 20 20 20 20 7D 0D 0A 20 20 7D }.. }.. }
010C10: 0D 0A 0D 0A 62 63 6F 70 79 28 69 6E 2C 20 6F 75 ....bcopy(in, ou
010C20: 74 29 20 69 6E 74 20 69 6E 2C 20 6F 75 74 3B 20 t) int in, out;
010C30: 7B 0D 0A 20 20 63 68 61 72 20 63 5B 31 5D 3B 0D {.. char c[1];.
010C40: 0A 20 20 77 68 69 6C 65 28 59 45 53 29 20 7B 0D . while(YES) {.
010C50: 0A 20 20 20 20 73 74 61 74 75 73 3D 72 65 61 64 . status=read
010C60: 28 69 6E 2C 20 63 2C 20 31 29 3B 0D 0A 20 20 20 (in, c, 1);..
010C70: 20 69 66 28 73 74 61 74 75 73 3D 3D 30 29 20 62 if(status==0) b
010C80: 72 65 61 6B 3B 0D 0A 20 20 20 20 69 66 28 69 73 reak;.. if(is
010C90: 61 74 74 79 28 69 6E 29 26 28 63 5B 30 5D 3D 3D atty(in)&(c[0]==
010CA0: 34 29 29 20 62 72 65 61 6B 3B 0D 0A 20 20 20 20 4)) break;..
010CB0: 69 66 28 73 74 61 74 75 73 20 3C 20 31 29 20 7B if(status < 1) {
010CC0: 0D 0A 20 20 20 20 20 20 66 70 75 74 73 28 22 69 .. fputs("i
010CD0: 6E 70 75 74 20 65 72 72 6F 72 5C 6E 22 2C 20 73 nput error\n", s
010CE0: 74 64 65 72 72 29 3B 0D 0A 20 20 20 20 20 20 66 tderr);.. f
010CF0: 63 6C 6F 73 65 28 6F 75 74 29 3B 0D 0A 20 20 20 close(out);..
010D00: 20 20 20 61 62 6F 72 74 28 37 29 3B 0D 0A 20 20 abort(7);..
010D10: 20 20 20 20 7D 0D 0A 20 20 20 20 69 66 28 28 63 }.. if((c
010D20: 5B 30 5D 3D 3D 43 52 29 26 28 73 74 72 69 70 63 [0]==CR)&(stripc
010D30: 72 29 29 20 63 6F 6E 74 69 6E 75 65 3B 0D 0A 20 r)) continue;..
010D40: 20 20 20 69 66 28 28 63 5B 30 5D 3D 3D 4C 46 29 if((c[0]==LF)
010D50: 26 28 73 74 72 69 70 6C 66 29 29 20 63 6F 6E 74 &(striplf)) cont
010D60: 69 6E 75 65 3B 0D 0A 20 20 20 20 69 66 28 28 66 inue;.. if((f
010D70: 72 6F 6D 21 3D 74 6F 29 26 28 28 63 5B 30 5D 26 rom!=to)&((c[0]&
010D80: 32 35 35 29 3D 3D 66 72 6F 6D 29 29 20 63 5B 30 255)==from)) c[0
010D90: 5D 3D 74 6F 3B 0D 0A 20 20 20 20 73 74 61 74 75 ]=to;.. statu
010DA0: 73 3D 77 72 69 74 65 28 6F 75 74 2C 20 63 2C 20 s=write(out, c,
010DB0: 31 29 3B 0D 0A 20 20 20 20 69 66 28 73 74 61 74 1);.. if(stat
010DC0: 75 73 20 3C 20 31 29 20 7B 0D 0A 20 20 20 20 20 us < 1) {..
010DD0: 20 66 70 75 74 73 28 22 6F 75 74 70 75 74 20 65 fputs("output e
010DE0: 72 72 6F 72 5C 6E 22 2C 20 73 74 64 65 72 72 29 rror\n", stderr)
010DF0: 3B 0D 0A 20 20 20 20 20 20 66 63 6C 6F 73 65 28 ;.. fclose(
010E00: 72 28 61 72 67 5B 31 5D 29 29 20 7B 0D 0A 20 20 r(arg[1])) {..
010E10: 20 20 20 20 63 61 73 65 20 27 63 27 3A 20 63 61 case 'c': ca
010E20: 73 65 20 27 77 27 3A 20 63 61 73 65 20 27 6C 27 se 'w': case 'l'
010E30: 3A 20 63 6F 6E 74 69 6E 75 65 3B 0D 0A 20 20 20 : continue;..
010E40: 20 20 20 64 65 66 61 75 6C 74 3A 0D 0A 20 20 20 default:..
010E50: 20 20 20 20 20 66 70 75 74 73 28 22 75 73 61 67 fputs("usag
010E60: 65 3A 20 43 4E 54 20 5B 66 69 6C 65 5D 20 5B 2D e: CNT [file] [-
010E70: 43 7C 2D 57 7C 2D 4C 5D 5C 6E 22 2C 20 73 74 64 C|-W|-L]\n", std
010E80: 65 72 72 29 3B 0D 0A 20 20 20 20 20 20 20 20 61 err);.. a
010E90: 62 6F 72 74 28 37 29 3B 0D 0A 20 20 20 20 20 20 bort(7);..
010EA0: 7D 0D 0A 20 20 20 20 7D 0D 0A 20 20 6E 63 3D 6E }.. }.. nc=n
010EB0: 6C 3D 6E 77 3D 30 3B 0D 0A 20 20 69 6E 77 6F 72 l=nw=0;.. inwor
010EC0: 64 3D 4E 4F 3B 0D 0A 20 20 77 68 69 6C 65 28 28 d=NO;.. while((
010ED0: 63 3D 66 67 65 74 63 28 66 64 29 29 21 3D 45 4F c=fgetc(fd))!=EO
010EE0: 46 29 20 7B 0D 0A 20 20 20 20 70 6F 6C 6C 28 59 F) {.. poll(Y
010EF0: 45 53 29 3B 0D 0A 20 20 20 20 69 66 28 63 3D 3D ES);.. if(c==
010F00: 27 5C 6E 27 29 20 7B 0D 0A 20 20 20 20 20 20 2B '\n') {.. +
010F10: 2B 6E 6C 3B 0D 0A 20 20 20 20 20 20 7D 0D 0A 20 +nl;.. }..
010F20: 20 20 20 65 6C 73 65 20 2B 2B 6E 63 3B 0D 0A 20 else ++nc;..
010F30: 20 20 20 69 66 28 69 73 73 70 61 63 65 28 63 29 if(isspace(c)
010F40: 29 20 69 6E 77 6F 72 64 3D 4E 4F 3B 0D 0A 20 20 ) inword=NO;..
010F50: 20 20 65 6C 73 65 20 69 66 28 69 6E 77 6F 72 64 else if(inword
010F60: 3D 3D 4E 4F 29 20 7B 0D 0A 20 20 20 20 20 20 69 ==NO) {.. i
010F70: 6E 77 6F 72 64 3D 59 45 53 3B 0D 0A 20 20 20 20 nword=YES;..
010F80: 20 20 2B 2B 6E 77 3B 0D 0A 20 20 20 20 20 20 7D ++nw;.. }
010F90: 0D 0A 20 20 20 20 7D 0D 0A 20 20 69 74 6F 75 28 .. }.. itou(
010FA0: 6E 63 2C 20 73 74 72 63 2C 20 36 29 3B 0D 0A 20 nc, strc, 6);..
010FB0: 20 69 74 6F 75 28 6E 77 2C 20 73 74 72 77 2C 20 itou(nw, strw,
010FC0: 36 29 3B 0D 0A 20 20 69 74 6F 75 28 6E 6C 2C 20 6);.. itou(nl,
010FD0: 73 74 72 6C 2C 20 36 29 3B 0D 0A 20 20 73 77 69 strl, 6);.. swi
010FE0: 74 63 68 28 66 29 20 7B 0D 0A 20 20 20 20 63 61 tch(f) {.. ca
010FF0: 73 65 20 27 63 27 3A 20 6C 6F 75 74 28 73 74 72 se 'c': lout(str
011000: 6F 75 74 29 3B 0D 0A 20 20 20 20 20 20 61 62 6F out);.. abo
011010: 72 74 28 37 29 3B 0D 0A 20 20 20 20 20 20 7D 0D rt(7);.. }.
011020: 0A 20 20 20 20 70 6F 6C 6C 28 59 45 53 29 3B 0D . poll(YES);.
011030: 0A 20 20 20 20 7D 0D 0A 20 20 7D 0D 0A 0D 0A 66 . }.. }....f
011040: 63 6F 70 79 28 69 6E 2C 20 6F 75 74 29 20 69 6E copy(in, out) in
011050: 74 20 69 6E 2C 20 6F 75 74 3B 20 7B 0D 0A 20 20 t in, out; {..
011060: 69 6E 74 20 69 2C 20 6C 6F 63 2C 20 69 6E 32 3B int i, loc, in2;
011070: 0D 0A 20 20 63 68 61 72 20 62 75 66 5B 4D 41 58 .. char buf[MAX
011080: 4C 49 4E 45 2B 31 5D 2C 20 73 74 72 5B 4D 41 58 LINE+1], str[MAX
011090: 4C 49 4E 45 2B 31 5D 3B 0D 0A 20 20 77 68 69 6C LINE+1];.. whil
0110A0: 65 28 66 67 65 74 73 28 62 75 66 2C 20 4D 41 58 e(fgets(buf, MAX
0110B0: 4C 49 4E 45 2B 31 2C 20 69 6E 29 21 3D 4E 55 4C LINE+1, in)!=NUL
0110C0: 4C 29 20 7B 0D 0A 20 20 20 20 70 6F 6C 6C 28 59 L) {.. poll(Y
0110D0: 45 53 29 3B 0D 0A 20 20 20 20 69 66 28 69 6E 63 ES);.. if(inc
0110E0: 6C 65 78 74 5B 30 5D 3D 3D 4E 55 4C 4C 29 20 7B lext[0]==NULL) {
0110F0: 0D 0A 20 20 20 20 20 20 73 6F 75 74 28 62 75 66 .. sout(buf
011100: 2C 20 6F 75 74 29 3B 0D 0A 20 20 20 20 20 20 63 , out);.. c
011110: 6F 6E 74 69 6E 75 65 3B 0D 0A 20 20 20 20 20 20 ontinue;..
011120: 7D 0D 0A 20 20 20 20 6C 6F 63 3D 30 3B 0D 0A 20 }.. loc=0;..
011130: 20 20 20 67 65 74 77 72 64 28 62 75 66 2C 20 26 getwrd(buf, &
011140: 6C 6F 63 2C 20 73 74 72 29 3B 0D 0A 20 20 20 20 loc, str);..
011150: 69 66 28 28 6C 65 78 63 6D 70 28 73 74 72 2C 20 if((lexcmp(str,
011160: 22 23 69 6E 63 6C 75 64 65 22 29 21 3D 30 29 20 "#include")!=0)
011170: 26 26 0D 0A 20 20 20 20 20 20 20 28 6C 65 78 63 &&.. (lexc
011180: 6D 70 28 73 74 72 2C 20 22 2E 73 6F 22 29 21 3D mp(str, ".so")!=
011190: 30 29 29 20 7B 0D 0A 20 20 20 20 20 20 73 6F 75 0)) {.. sou
0111A0: 74 28 62 75 66 2C 20 6F 75 74 29 3B 0D 0A 20 20 t(buf, out);..
0111B0: 20 20 20 20 63 6F 6E 74 69 6E 75 65 3B 0D 0A 20 continue;..
0111C0: 20 20 20 20 20 7D 0D 0A 20 20 20 20 67 65 74 77 }.. getw
0111D0: 72 64 28 62 75 66 2C 20 26 6C 6F 63 2C 20 73 74 rd(buf, &loc, st
0111E0: 72 29 3B 0D 0A 20 20 20 20 73 74 72 69 70 28 73 r);.. strip(s
0111F0: 74 72 29 3B 0D 0A 20 20 20 20 69 3D 30 3B 0D 0A tr);.. i=0;..
011200: 63 2C 20 73 74 64 6F 75 74 29 3B 20 62 72 65 61 c, stdout); brea
011210: 6B 3B 0D 0A 20 20 20 20 63 61 73 65 20 27 77 27 k;.. case 'w'
011220: 3A 20 6C 6F 75 74 28 73 74 72 77 2C 20 73 74 64 : lout(strw, std
011230: 6F 75 74 29 3B 20 62 72 65 61 6B 3B 0D 0A 20 20 out); break;..
011240: 20 20 63 61 73 65 20 27 6C 27 3A 20 6C 6F 75 74 case 'l': lout
011250: 28 73 74 72 6C 2C 20 73 74 64 6F 75 74 29 3B 20 (strl, stdout);
011260: 62 72 65 61 6B 3B 0D 0A 20 20 20 20 64 65 66 61 break;.. defa
011270: 75 6C 74 3A 0D 0A 20 20 20 20 20 20 73 6F 75 74 ult:.. sout
011280: 28 73 74 72 63 2C 20 73 74 64 6F 75 74 29 3B 20 (strc, stdout);
011290: 6C 6F 75 74 28 22 20 63 68 61 72 61 63 74 65 72 lout(" character
0112A0: 73 22 2C 20 73 74 64 6F 75 74 29 3B 0D 0A 20 20 s", stdout);..
0112B0: 20 20 20 20 73 6F 75 74 28 73 74 72 77 2C 20 73 sout(strw, s
0112C0: 74 64 6F 75 74 29 3B 20 6C 6F 75 74 28 22 20 77 tdout); lout(" w
0112D0: 6F 72 64 73 22 2C 20 73 74 64 6F 75 74 29 3B 0D ords", stdout);.
0112E0: 0A 20 20 20 20 20 20 73 6F 75 74 28 73 74 72 6C . sout(strl
0112F0: 2C 20 73 74 64 6F 75 74 29 3B 20 6C 6F 75 74 28 , stdout); lout(
011300: 22 20 6C 69 6E 65 73 22 2C 20 73 74 64 6F 75 74 " lines", stdout
011310: 29 3B 0D 0A 20 20 20 20 7D 0D 0A 20 20 66 63 6C );.. }.. fcl
011320: 6F 73 65 28 73 74 64 6F 75 74 29 3B 0D 0A 20 20 ose(stdout);..
011330: 7D 0D 0A 23 69 6E 63 6C 75 64 65 20 22 63 61 6E }..#include "can
011340: 74 2E 63 22 0D 0A 23 69 6E 63 6C 75 64 65 20 22 t.c"..#include "
011350: 6F 75 74 2E 63 22 0D 0A 0D 0A 1A 1A 1A 1A 1A 1A out.c"..........
011360: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
011370: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
011380: 20 20 2B 2B 6E 77 3B 0D 0A 20 20 20 20 20 20 7D ++nw;.. }
011390: 0D 0A 20 20 20 20 7D 0D 0A 20 20 69 74 6F 75 28 .. }.. itou(
0113A0: 6E 63 2C 20 73 74 72 63 2C 20 36 29 3B 0D 0A 20 nc, strc, 6);..
0113B0: 20 69 74 6F 75 28 6E 77 2C 20 73 74 72 77 2C 20 itou(nw, strw,
0113C0: 36 29 3B 0D 0A 20 20 69 74 6F 75 28 6E 6C 2C 20 6);.. itou(nl,
0113D0: 73 74 72 6C 2C 20 36 29 3B 0D 0A 20 20 73 77 69 strl, 6);.. swi
0113E0: 74 63 68 28 66 29 20 7B 0D 0A 20 20 20 20 63 61 tch(f) {.. ca
0113F0: 73 65 20 27 63 27 3A 20 6C 6F 75 74 28 73 74 72 se 'c': lout(str
011400: 20 20 20 20 77 68 69 6C 65 28 28 73 74 72 5B 69 while((str[i
011410: 5D 21 3D 45 58 54 4D 41 52 4B 29 20 26 26 20 73 ]!=EXTMARK) && s
011420: 74 72 5B 69 5D 29 20 2B 2B 69 3B 0D 0A 20 20 20 tr[i]) ++i;..
011430: 20 69 66 28 69 6E 63 6C 65 78 74 5B 31 5D 20 26 if(inclext[1] &
011440: 26 20 6C 65 78 63 6D 70 28 73 74 72 2B 69 2C 20 & lexcmp(str+i,
011450: 69 6E 63 6C 65 78 74 29 29 20 7B 0D 0A 20 20 20 inclext)) {..
011460: 20 20 20 73 6F 75 74 28 62 75 66 2C 20 6F 75 74 sout(buf, out
011470: 29 3B 0D 0A 20 20 20 20 20 20 63 6F 6E 74 69 6E );.. contin
011480: 75 65 3B 0D 0A 20 20 20 20 20 20 7D 0D 0A 20 20 ue;.. }..
011490: 20 20 69 66 28 28 69 6E 32 3D 66 6F 70 65 6E 28 if((in2=fopen(
0114A0: 73 74 72 2C 20 22 72 22 29 29 3D 3D 4E 55 4C 4C str, "r"))==NULL
0114B0: 29 20 63 61 6E 74 28 73 74 72 29 3B 0D 0A 20 20 ) cant(str);..
0114C0: 20 20 66 63 6F 70 79 28 69 6E 32 2C 20 6F 75 74 fcopy(in2, out
0114D0: 29 3B 0D 0A 20 20 20 20 66 63 6C 6F 73 65 28 69 );.. fclose(i
0114E0: 6E 32 29 3B 0D 0A 20 20 20 20 7D 0D 0A 20 20 7D n2);.. }.. }
0114F0: 0D 0A 0D 0A 23 69 6E 63 6C 75 64 65 20 22 6F 75 ....#include "ou
011500: 74 2E 63 22 0D 0A 23 69 6E 63 6C 75 64 65 20 22 t.c"..#include "
011510: 63 61 6E 74 2E 63 22 0D 0A 23 69 6E 63 6C 75 64 cant.c"..#includ
011520: 65 20 22 73 61 6D 65 2E 63 22 0D 0A 23 69 6E 63 e "same.c"..#inc
011530: 6C 75 64 65 20 22 73 74 72 69 70 2E 63 22 0D 0A lude "strip.c"..
011540: 23 69 6E 63 6C 75 64 65 20 22 67 65 74 77 72 64 #include "getwrd
011550: 2E 63 22 0D 0A 0D 0A 1A 1A 1A 1A 1A 1A 1A 1A 1A .c".............
011560: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
011570: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
011580: 6D 70 28 73 74 72 2C 20 22 2E 73 6F 22 29 21 3D mp(str, ".so")!=
011590: 30 29 29 20 7B 0D 0A 20 20 20 20 20 20 73 6F 75 0)) {.. sou
0115A0: 74 28 62 75 66 2C 20 6F 75 74 29 3B 0D 0A 20 20 t(buf, out);..
0115B0: 20 20 20 20 63 6F 6E 74 69 6E 75 65 3B 0D 0A 20 continue;..
0115C0: 20 20 20 20 20 7D 0D 0A 20 20 20 20 67 65 74 77 }.. getw
0115D0: 72 64 28 62 75 66 2C 20 26 6C 6F 63 2C 20 73 74 rd(buf, &loc, st
0115E0: 72 29 3B 0D 0A 20 20 20 20 73 74 72 69 70 28 73 r);.. strip(s
0115F0: 74 72 29 3B 0D 0A 20 20 20 20 69 3D 30 3B 0D 0A tr);.. i=0;..
011600: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
011610: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
011620: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
011630: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
011640: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
011650: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
011660: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
011670: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
011680: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
011690: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0116A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0116B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0116C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0116D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0116E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0116F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
011700: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
011710: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
011720: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
011730: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
011740: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
011750: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
011760: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
011770: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
011780: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
011790: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0117A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0117B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0117C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0117D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0117E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0117F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
011800: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
011810: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
011820: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
011830: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
011840: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
011850: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
011860: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
011870: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
011880: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
011890: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0118A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0118B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0118C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0118D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0118E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0118F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
011900: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
011910: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
011920: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
011930: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
011940: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
011950: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
011960: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
011970: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
011980: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
011990: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0119A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0119B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0119C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0119D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0119E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0119F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
011A00: 2F 2A 0D 0A 2A 2A 20 63 70 74 2E 63 20 2D 2D 20 /*..** cpt.c --
011A10: 65 6E 63 72 79 70 74 20 6F 72 20 64 65 63 72 79 encrypt or decry
011A20: 70 74 20 41 53 43 49 49 20 6F 72 20 62 69 6E 61 pt ASCII or bina
011A30: 72 79 20 66 69 6C 65 73 0D 0A 2A 2A 0D 0A 2A 2A ry files..**..**
011A40: 20 43 6F 70 79 72 69 67 68 74 20 31 39 38 32 20 Copyright 1982
011A50: 4A 2E 20 45 2E 20 48 65 6E 64 72 69 78 2E 20 20 J. E. Hendrix.
011A60: 41 6C 6C 20 72 69 67 68 74 73 20 72 65 73 65 72 All rights reser
011A70: 76 65 64 2E 0D 0A 2A 2F 0D 0A 23 69 6E 63 6C 75 ved...*/..#inclu
011A80: 64 65 20 3C 73 74 64 69 6F 2E 68 3E 0D 0A 23 64 de <stdio.h>..#d
011A90: 65 66 69 6E 65 20 4E 4F 43 43 41 52 47 43 0D 0A efine NOCCARGC..
011AA0: 23 64 65 66 69 6E 65 20 4D 41 58 4B 45 59 20 38 #define MAXKEY 8
011AB0: 31 0D 0A 23 64 65 66 69 6E 65 20 43 54 4C 5A 20 1..#define CTLZ
011AC0: 20 20 32 36 0D 0A 6D 61 69 6E 28 61 72 67 63 2C 26..main(argc,
011AD0: 20 61 72 67 76 29 20 69 6E 74 20 61 72 67 63 2C argv) int argc,
011AE0: 20 2A 61 72 67 76 3B 20 7B 0D 0A 20 20 63 68 61 *argv; {.. cha
011AF0: 72 20 63 2C 20 6B 65 79 5B 4D 41 58 4B 45 59 5D r c, key[MAXKEY]
011B00: 3B 0D 0A 20 20 69 6E 74 20 69 2C 20 6B 65 79 6C ;.. int i, keyl
011B10: 65 6E 3B 0D 0A 20 20 61 75 78 62 75 66 28 73 74 en;.. auxbuf(st
011B20: 64 69 6E 2C 20 34 30 39 36 29 3B 0D 0A 20 20 6B din, 4096);.. k
011B30: 65 79 6C 65 6E 3D 67 65 74 61 72 67 28 31 2C 20 eylen=getarg(1,
011B40: 6B 65 79 2C 20 4D 41 58 4B 45 59 2C 20 61 72 67 key, MAXKEY, arg
011B50: 63 2C 20 61 72 67 76 29 3B 0D 0A 20 20 69 66 28 c, argv);.. if(
011B60: 28 6B 65 79 6C 65 6E 3D 3D 45 4F 46 29 7C 28 6B (keylen==EOF)|(k
011B70: 65 79 5B 30 5D 3D 3D 27 2D 27 29 29 20 7B 0D 0A ey[0]=='-')) {..
011B80: 20 20 20 20 66 70 75 74 73 28 22 75 73 61 67 65 fputs("usage
011B90: 3A 20 43 50 54 20 6B 65 79 5C 6E 22 2C 20 73 74 : CPT key\n", st
011BA0: 64 65 72 72 29 3B 0D 0A 20 20 20 20 61 62 6F 72 derr);.. abor
011BB0: 74 28 37 29 3B 0D 0A 20 20 20 20 7D 0D 0A 20 20 t(7);.. }..
011BC0: 69 3D 31 3B 0D 0A 20 20 77 68 69 6C 65 28 72 65 i=1;.. while(re
011BD0: 61 64 28 73 74 64 69 6E 2C 20 26 63 2C 20 31 29 ad(stdin, &c, 1)
011BE0: 20 3E 20 30 29 20 7B 0D 0A 20 20 20 20 70 6F 6C > 0) {.. pol
011BF0: 6C 28 59 45 53 29 3B 0D 0A 20 20 20 20 69 66 28 l(YES);.. if(
011C00: 0D 0A 2F 2A 0D 0A 2A 2A 20 63 6E 74 2E 63 20 2D ../*..** cnt.c -
011C10: 2D 20 63 6F 75 6E 74 20 63 68 61 72 61 63 74 65 - count characte
011C20: 72 73 2C 20 77 6F 72 64 73 2C 20 61 6E 64 2F 6F rs, words, and/o
011C30: 72 20 6C 69 6E 65 73 0D 0A 2A 2A 0D 0A 2A 2A 20 r lines..**..**
011C40: 43 6F 70 79 72 69 67 68 74 20 31 39 38 32 20 4A Copyright 1982 J
011C50: 2E 20 45 2E 20 48 65 6E 64 72 69 78 2E 20 20 41 . E. Hendrix. A
011C60: 6C 6C 20 72 69 67 68 74 73 20 72 65 73 65 72 76 ll rights reserv
011C70: 65 64 2E 0D 0A 2A 2F 0D 0A 23 69 6E 63 6C 75 64 ed...*/..#includ
011C80: 65 20 3C 73 74 64 69 6F 2E 68 3E 0D 0A 23 69 6E e <stdio.h>..#in
011C90: 63 6C 75 64 65 20 22 74 6F 6F 6C 73 2E 68 22 0D clude "tools.h".
011CA0: 0A 23 64 65 66 69 6E 65 20 4E 4F 43 43 41 52 47 .#define NOCCARG
011CB0: 43 0D 0A 63 68 61 72 20 73 74 72 63 5B 36 5D 2C C..char strc[6],
011CC0: 20 73 74 72 77 5B 36 5D 2C 20 73 74 72 6C 5B 36 strw[6], strl[6
011CD0: 5D 3B 0D 0A 6D 61 69 6E 28 61 72 67 63 2C 20 61 ];..main(argc, a
011CE0: 72 67 76 29 20 69 6E 74 20 61 72 67 63 2C 20 2A rgv) int argc, *
011CF0: 61 72 67 76 3B 20 7B 0D 0A 20 20 63 68 61 72 20 argv; {.. char
011D00: 61 72 67 5B 4D 41 58 46 4E 5D 2C 20 2A 6E 63 2C arg[MAXFN], *nc,
011D10: 20 2A 6E 6C 2C 20 2A 6E 77 3B 0D 0A 20 20 69 6E *nl, *nw;.. in
011D20: 74 20 63 2C 20 66 2C 20 69 2C 20 66 64 2C 20 69 t c, f, i, fd, i
011D30: 6E 77 6F 72 64 3B 0D 0A 20 20 66 64 3D 73 74 64 nword;.. fd=std
011D40: 69 6E 3B 0D 0A 20 20 69 3D 66 3D 30 3B 0D 0A 20 in;.. i=f=0;..
011D50: 20 77 68 69 6C 65 28 67 65 74 61 72 67 28 2B 2B while(getarg(++
011D60: 69 2C 20 61 72 67 2C 20 4D 41 58 46 4E 2C 20 61 i, arg, MAXFN, a
011D70: 72 67 63 2C 20 61 72 67 76 29 20 21 3D 20 45 4F rgc, argv) != EO
011D80: 46 29 20 7B 0D 0A 20 20 20 20 69 66 28 61 72 67 F) {.. if(arg
011D90: 5B 30 5D 20 21 3D 20 27 2D 27 29 20 7B 0D 0A 20 [0] != '-') {..
011DA0: 20 20 20 20 20 69 66 28 28 66 64 20 3D 20 66 6F if((fd = fo
011DB0: 70 65 6E 28 61 72 67 2C 20 22 72 22 29 29 20 3D pen(arg, "r")) =
011DC0: 3D 20 30 29 20 63 61 6E 74 28 61 72 67 29 3B 0D = 0) cant(arg);.
011DD0: 0A 20 20 20 20 20 20 63 6F 6E 74 69 6E 75 65 3B . continue;
011DE0: 0D 0A 20 20 20 20 20 20 7D 0D 0A 20 20 20 20 73 .. }.. s
011DF0: 77 69 74 63 68 28 66 20 3D 20 74 6F 6C 6F 77 65 witch(f = tolowe
011E00: 54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 00 00 00 Track-Info......
011E10: 0F 00 01 00 02 09 52 E5 0F 00 41 02 00 00 00 02 ......R...A.....
011E20: 0F 00 46 02 00 00 00 02 0F 00 42 02 00 00 00 02 ..F.......B.....
011E30: 0F 00 47 02 00 00 00 02 0F 00 43 02 00 00 00 02 ..G.......C.....
011E40: 0F 00 48 02 00 00 00 02 0F 00 44 02 00 00 00 02 ..H.......D.....
011E50: 0F 00 49 02 00 00 00 02 0F 00 45 02 00 00 00 02 ..I.......E.....
011E60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
011E70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
011E80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
011E90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
011EA0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
011EB0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
011EC0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
011ED0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
011EE0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
011EF0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
011F00: 69 73 61 74 74 79 28 73 74 64 69 6E 29 20 26 26 isatty(stdin) &&
011F10: 20 28 63 3D 3D 43 54 4C 5A 29 29 20 62 72 65 61 (c==CTLZ)) brea
011F20: 6B 3B 0D 0A 20 20 20 20 63 3D 63 5E 6B 65 79 5B k;.. c=c^key[
011F30: 69 2D 31 5D 3B 0D 0A 20 20 20 20 69 66 28 77 72 i-1];.. if(wr
011F40: 69 74 65 28 73 74 64 6F 75 74 2C 20 26 63 2C 20 ite(stdout, &c,
011F50: 31 29 20 21 3D 31 20 29 20 7B 0D 0A 20 20 20 20 1) !=1 ) {..
011F60: 20 20 66 70 75 74 73 28 22 6F 75 74 70 75 74 20 fputs("output
011F70: 65 72 72 6F 72 5C 6E 22 2C 20 73 74 64 65 72 72 error\n", stderr
011F80: 29 3B 0D 0A 20 20 20 20 20 20 61 62 6F 72 74 28 );.. abort(
011F90: 37 29 3B 0D 0A 20 20 20 20 20 20 7D 0D 0A 20 20 7);.. }..
011FA0: 20 20 69 3D 28 69 25 6B 65 79 6C 65 6E 29 2B 31 i=(i%keylen)+1
011FB0: 3B 0D 0A 20 20 20 20 7D 0D 0A 20 20 7D 0D 0A 0D ;.. }.. }...
011FC0: 0A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
011FD0: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
011FE0: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
011FF0: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
012000: 3B 0D 0A 20 20 69 6E 74 20 69 2C 20 6B 65 79 6C ;.. int i, keyl
012010: 65 6E 3B 0D 0A 20 20 61 75 78 62 75 66 28 73 74 en;.. auxbuf(st
012020: 64 69 6E 2C 20 34 30 39 36 29 3B 0D 0A 20 20 6B din, 4096);.. k
012030: 65 79 6C 65 6E 3D 67 65 74 61 72 67 28 31 2C 20 eylen=getarg(1,
012040: 6B 65 79 2C 20 4D 41 58 4B 45 59 2C 20 61 72 67 key, MAXKEY, arg
012050: 63 2C 20 61 72 67 76 29 3B 0D 0A 20 20 69 66 28 c, argv);.. if(
012060: 28 6B 65 79 6C 65 6E 3D 3D 45 4F 46 29 7C 28 6B (keylen==EOF)|(k
012070: 65 79 5B 30 5D 3D 3D 27 2D 27 29 29 20 7B 0D 0A ey[0]=='-')) {..
012080: 20 20 20 20 66 70 75 74 73 28 22 75 73 61 67 65 fputs("usage
012090: 3A 20 43 50 54 20 6B 65 79 5C 6E 22 2C 20 73 74 : CPT key\n", st
0120A0: 64 65 72 72 29 3B 0D 0A 20 20 20 20 61 62 6F 72 derr);.. abor
0120B0: 74 28 37 29 3B 0D 0A 20 20 20 20 7D 0D 0A 20 20 t(7);.. }..
0120C0: 69 3D 31 3B 0D 0A 20 20 77 68 69 6C 65 28 72 65 i=1;.. while(re
0120D0: 61 64 28 73 74 64 69 6E 2C 20 26 63 2C 20 31 29 ad(stdin, &c, 1)
0120E0: 20 3E 20 30 29 20 7B 0D 0A 20 20 20 20 70 6F 6C > 0) {.. pol
0120F0: 6C 28 59 45 53 29 3B 0D 0A 20 20 20 20 69 66 28 l(YES);.. if(
012100: 2F 2A 0D 0A 2A 2A 20 65 64 74 2E 63 20 2D 2D 20 /*..** edt.c --
012110: 65 64 69 74 20 74 65 78 74 0D 0A 2A 2A 0D 0A 2A edit text..**..*
012120: 2A 20 43 6F 70 79 72 69 67 68 74 20 31 39 38 32 * Copyright 1982
012130: 20 4A 2E 20 45 2E 20 48 65 6E 64 72 69 78 2E 20 J. E. Hendrix.
012140: 20 41 6C 6C 20 72 69 67 68 74 73 20 72 65 73 65 All rights rese
012150: 72 76 65 64 2E 0D 0A 2A 2F 0D 0A 23 69 6E 63 6C rved...*/..#incl
012160: 75 64 65 20 3C 73 74 64 69 6F 2E 68 3E 0D 0A 23 ude <stdio.h>..#
012170: 69 6E 63 6C 75 64 65 20 22 74 6F 6F 6C 73 2E 68 include "tools.h
012180: 22 0D 0A 23 64 65 66 69 6E 65 20 4E 4F 43 43 41 "..#define NOCCA
012190: 52 47 43 0D 0A 23 64 65 66 69 6E 65 20 4F 4B 20 RGC..#define OK
0121A0: 31 0D 0A 23 64 65 66 69 6E 65 20 52 45 53 45 52 1..#define RESER
0121B0: 56 45 20 36 30 30 0D 0A 23 64 65 66 69 6E 65 20 VE 600..#define
0121C0: 50 52 45 56 20 30 0D 0A 23 64 65 66 69 6E 65 20 PREV 0..#define
0121D0: 4E 45 58 54 20 32 0D 0A 23 64 65 66 69 6E 65 20 NEXT 2..#define
0121E0: 4D 41 52 4B 20 34 0D 0A 23 64 65 66 69 6E 65 20 MARK 4..#define
0121F0: 54 45 58 54 20 35 0D 0A 23 64 65 66 69 6E 65 20 TEXT 5..#define
012200: 49 4E 54 45 47 45 52 20 32 0D 0A 23 64 65 66 69 INTEGER 2..#defi
012210: 6E 65 20 4C 4F 4E 47 20 34 0D 0A 23 64 65 66 69 ne LONG 4..#defi
012220: 6E 65 20 4C 49 4E 45 30 20 30 0D 0A 23 64 65 66 ne LINE0 0..#def
012230: 69 6E 65 20 4E 4F 53 54 41 54 55 53 20 30 0D 0A ine NOSTATUS 0..
012240: 23 64 65 66 69 6E 65 20 43 55 52 4C 49 4E 45 20 #define CURLINE
012250: 27 2E 27 0D 0A 23 64 65 66 69 6E 65 20 4C 41 53 '.'..#define LAS
012260: 54 4C 49 4E 45 20 27 7C 27 0D 0A 23 64 65 66 69 TLINE '|'..#defi
012270: 6E 65 20 53 43 41 4E 20 27 2F 27 0D 0A 23 64 65 ne SCAN '/'..#de
012280: 66 69 6E 65 20 42 41 43 4B 53 43 41 4E 20 27 5C fine BACKSCAN '\
012290: 5C 27 0D 0A 23 64 65 66 69 6E 65 20 46 4F 52 57 \'..#define FORW
0122A0: 41 52 44 20 31 0D 0A 23 64 65 66 69 6E 65 20 42 ARD 1..#define B
0122B0: 41 43 4B 57 41 52 44 20 30 0D 0A 23 64 65 66 69 ACKWARD 0..#defi
0122C0: 6E 65 20 50 45 52 49 4F 44 20 27 2E 27 0D 0A 23 ne PERIOD '.'..#
0122D0: 64 65 66 69 6E 65 20 43 4F 4D 4D 41 20 27 2C 27 define COMMA ','
0122E0: 0D 0A 23 64 65 66 69 6E 65 20 53 45 4D 49 43 4F ..#define SEMICO
0122F0: 4C 20 27 3B 27 0D 0A 23 64 65 66 69 6E 65 20 50 L ';'..#define P
012300: 0D 0A 2F 2A 0D 0A 2A 2A 20 64 74 62 2E 63 20 2D ../*..** dtb.c -
012310: 2D 20 63 6F 6E 76 65 72 74 20 74 61 62 73 20 74 - convert tabs t
012320: 6F 20 65 71 75 69 76 61 6C 65 6E 74 20 62 6C 61 o equivalent bla
012330: 6E 6B 73 0D 0A 2A 2A 0D 0A 2A 2A 20 43 6F 70 79 nks..**..** Copy
012340: 72 69 67 68 74 20 31 39 38 32 20 4A 2E 20 45 2E right 1982 J. E.
012350: 20 48 65 6E 64 72 69 78 2E 20 20 41 6C 6C 20 72 Hendrix. All r
012360: 69 67 68 74 73 20 72 65 73 65 72 76 65 64 2E 0D ights reserved..
012370: 0A 2A 2F 0D 0A 23 69 6E 63 6C 75 64 65 20 3C 73 .*/..#include <s
012380: 74 64 69 6F 2E 68 3E 0D 0A 23 69 6E 63 6C 75 64 tdio.h>..#includ
012390: 65 20 22 74 6F 6F 6C 73 2E 68 22 0D 0A 23 64 65 e "tools.h"..#de
0123A0: 66 69 6E 65 20 4E 4F 43 43 41 52 47 43 0D 0A 23 fine NOCCARGC..#
0123B0: 64 65 66 69 6E 65 20 4D 41 58 4C 49 4E 31 20 28 define MAXLIN1 (
0123C0: 4D 41 58 4C 49 4E 45 2B 31 29 0D 0A 6D 61 69 6E MAXLINE+1)..main
0123D0: 28 61 72 67 63 2C 61 72 67 76 29 20 69 6E 74 20 (argc,argv) int
0123E0: 61 72 67 63 2C 20 2A 61 72 67 76 3B 20 7B 0D 0A argc, *argv; {..
0123F0: 20 20 63 68 61 72 20 63 2C 20 74 61 62 73 5B 4D char c, tabs[M
012400: 41 58 4C 49 4E 31 5D 3B 0D 0A 20 20 69 6E 74 20 AXLIN1];.. int
012410: 63 6F 6C 2C 20 69 3B 0D 0A 20 20 61 75 78 62 75 col, i;.. auxbu
012420: 66 28 73 74 64 69 6E 2C 20 34 30 39 36 29 3B 0D f(stdin, 4096);.
012430: 0A 20 20 69 66 28 73 65 74 74 61 62 28 74 61 62 . if(settab(tab
012440: 73 2C 20 61 72 67 63 2C 20 61 72 67 76 29 3D 3D s, argc, argv)==
012450: 45 52 52 29 20 7B 0D 0A 20 20 20 20 66 70 75 74 ERR) {.. fput
012460: 73 28 22 75 73 61 67 65 3A 20 44 54 42 20 5B 23 s("usage: DTB [#
012470: 5D 2E 2E 2E 20 5B 2B 23 5D 5C 6E 22 2C 20 73 74 ]... [+#]\n", st
012480: 64 65 72 72 29 3B 0D 0A 20 20 20 20 61 62 6F 72 derr);.. abor
012490: 74 28 37 29 3B 0D 0A 20 20 20 20 7D 0D 0A 20 20 t(7);.. }..
0124A0: 63 6F 6C 3D 31 3B 0D 0A 20 20 77 68 69 6C 65 28 col=1;.. while(
0124B0: 28 63 3D 67 65 74 63 68 61 72 28 29 29 21 3D 45 (c=getchar())!=E
0124C0: 4F 46 29 20 7B 0D 0A 20 20 20 20 70 6F 6C 6C 28 OF) {.. poll(
0124D0: 59 45 53 29 3B 0D 0A 20 20 20 20 69 66 28 63 3D YES);.. if(c=
0124E0: 3D 27 5C 74 27 29 0D 0A 20 20 20 20 20 20 77 68 ='\t').. wh
0124F0: 69 6C 65 28 59 45 53 29 20 7B 0D 0A 20 20 20 20 ile(YES) {..
012500: 4C 55 53 20 27 2B 27 0D 0A 23 64 65 66 69 6E 65 LUS '+'..#define
012510: 20 4D 49 4E 55 53 20 27 2D 27 0D 0A 23 64 65 66 MINUS '-'..#def
012520: 69 6E 65 20 42 4C 41 4E 4B 20 27 20 27 0D 0A 23 ine BLANK ' '..#
012530: 64 65 66 69 6E 65 20 54 41 42 20 27 5C 74 27 0D define TAB '\t'.
012540: 0A 23 64 65 66 69 6E 65 20 45 53 43 20 32 37 0D .#define ESC 27.
012550: 0A 23 64 65 66 69 6E 65 20 50 52 4F 4D 50 54 20 .#define PROMPT
012560: 27 23 27 0D 0A 23 64 65 66 69 6E 65 20 43 4C 46 '#'..#define CLF
012570: 4C 41 47 20 27 2A 27 0D 0A 0D 0A 23 64 65 66 69 LAG '*'....#defi
012580: 6E 65 20 50 52 49 4E 54 20 27 70 27 0D 0A 23 64 ne PRINT 'p'..#d
012590: 65 66 69 6E 65 20 4C 49 4E 45 20 27 6C 27 0D 0A efine LINE 'l'..
0125A0: 23 64 65 66 69 6E 65 20 47 4C 4F 42 41 4C 20 27 #define GLOBAL '
0125B0: 67 27 0D 0A 23 64 65 66 69 6E 65 20 45 58 43 4C g'..#define EXCL
0125C0: 55 44 45 20 27 78 27 0D 0A 23 64 65 66 69 6E 65 UDE 'x'..#define
0125D0: 20 41 50 50 45 4E 44 20 27 61 27 0D 0A 23 64 65 APPEND 'a'..#de
0125E0: 66 69 6E 65 20 43 48 41 4E 47 45 20 27 63 27 0D fine CHANGE 'c'.
0125F0: 0A 23 64 65 66 69 6E 65 20 44 45 4C 45 54 45 20 .#define DELETE
012600: 27 64 27 0D 0A 23 64 65 66 69 6E 65 20 49 4E 53 'd'..#define INS
012610: 45 52 54 20 27 69 27 0D 0A 23 64 65 66 69 6E 65 ERT 'i'..#define
012620: 20 4A 4F 49 4E 20 27 6A 27 0D 0A 23 64 65 66 69 JOIN 'j'..#defi
012630: 6E 65 20 4D 4F 56 45 20 27 6D 27 0D 0A 23 64 65 ne MOVE 'm'..#de
012640: 66 69 6E 65 20 53 55 42 53 54 49 54 55 54 45 20 fine SUBSTITUTE
012650: 27 73 27 0D 0A 23 64 65 66 69 6E 65 20 45 4E 54 's'..#define ENT
012660: 45 52 20 27 65 27 0D 0A 23 64 65 66 69 6E 65 20 ER 'e'..#define
012670: 46 49 4C 45 20 27 66 27 0D 0A 23 64 65 66 69 6E FILE 'f'..#defin
012680: 65 20 52 45 41 44 20 27 72 27 0D 0A 23 64 65 66 e READ 'r'..#def
012690: 69 6E 65 20 57 52 49 54 45 20 27 77 27 0D 0A 23 ine WRITE 'w'..#
0126A0: 64 65 66 69 6E 65 20 51 55 49 54 20 27 71 27 0D define QUIT 'q'.
0126B0: 0A 23 64 65 66 69 6E 65 20 56 49 45 57 20 27 76 .#define VIEW 'v
0126C0: 27 0D 0A 23 64 65 66 69 6E 65 20 5A 49 50 20 27 '..#define ZIP '
0126D0: 7A 27 0D 0A 0D 0A 69 6E 74 0D 0A 20 20 6C 69 6E z'....int.. lin
0126E0: 65 31 2C 20 20 20 2F 2A 20 66 69 72 73 74 20 6C e1, /* first l
0126F0: 69 6E 65 20 6E 75 6D 62 65 72 20 2A 2F 0D 0A 20 ine number */..
012700: 20 20 20 20 63 6F 75 74 28 27 20 27 2C 20 73 74 cout(' ', st
012710: 64 6F 75 74 29 3B 0D 0A 20 20 20 20 20 20 20 20 dout);..
012720: 2B 2B 63 6F 6C 3B 0D 0A 20 20 20 20 20 20 20 20 ++col;..
012730: 69 66 28 74 61 62 70 6F 73 28 63 6F 6C 2C 20 74 if(tabpos(col, t
012740: 61 62 73 29 3D 3D 59 45 53 29 20 62 72 65 61 6B abs)==YES) break
012750: 3B 0D 0A 20 20 20 20 20 20 20 20 7D 0D 0A 20 20 ;.. }..
012760: 20 20 65 6C 73 65 20 69 66 28 63 3D 3D 27 5C 6E else if(c=='\n
012770: 27 29 20 7B 0D 0A 20 20 20 20 20 20 63 6F 75 74 ') {.. cout
012780: 28 27 5C 6E 27 2C 20 73 74 64 6F 75 74 29 3B 0D ('\n', stdout);.
012790: 0A 20 20 20 20 20 20 63 6F 6C 3D 31 3B 0D 0A 20 . col=1;..
0127A0: 20 20 20 20 20 7D 0D 0A 20 20 20 20 65 6C 73 65 }.. else
0127B0: 20 7B 0D 0A 20 20 20 20 20 20 63 6F 75 74 28 63 {.. cout(c
0127C0: 2C 20 73 74 64 6F 75 74 29 3B 0D 0A 20 20 20 20 , stdout);..
0127D0: 20 20 2B 2B 63 6F 6C 3B 0D 0A 20 20 20 20 20 20 ++col;..
0127E0: 7D 0D 0A 20 20 20 20 7D 0D 0A 20 20 66 63 6C 6F }.. }.. fclo
0127F0: 73 65 28 73 74 64 6F 75 74 29 3B 0D 0A 20 20 7D se(stdout);.. }
012800: 0D 0A 23 69 6E 63 6C 75 64 65 20 22 73 65 74 74 ..#include "sett
012810: 61 62 2E 63 22 0D 0A 23 69 6E 63 6C 75 64 65 20 ab.c"..#include
012820: 22 74 61 62 70 6F 73 2E 63 22 0D 0A 23 69 6E 63 "tabpos.c"..#inc
012830: 6C 75 64 65 20 22 6F 75 74 2E 63 22 0D 0A 0D 0A lude "out.c"....
012840: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
012850: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
012860: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
012870: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
012880: 64 65 72 72 29 3B 0D 0A 20 20 20 20 61 62 6F 72 derr);.. abor
012890: 74 28 37 29 3B 0D 0A 20 20 20 20 7D 0D 0A 20 20 t(7);.. }..
0128A0: 63 6F 6C 3D 31 3B 0D 0A 20 20 77 68 69 6C 65 28 col=1;.. while(
0128B0: 28 63 3D 67 65 74 63 68 61 72 28 29 29 21 3D 45 (c=getchar())!=E
0128C0: 4F 46 29 20 7B 0D 0A 20 20 20 20 70 6F 6C 6C 28 OF) {.. poll(
0128D0: 59 45 53 29 3B 0D 0A 20 20 20 20 69 66 28 63 3D YES);.. if(c=
0128E0: 3D 27 5C 74 27 29 0D 0A 20 20 20 20 20 20 77 68 ='\t').. wh
0128F0: 69 6C 65 28 59 45 53 29 20 7B 0D 0A 20 20 20 20 ile(YES) {..
012900: 20 6C 69 6E 65 32 2C 20 20 20 2F 2A 20 73 65 63 line2, /* sec
012910: 6F 6E 64 20 6C 69 6E 65 20 6E 75 6D 62 65 72 20 ond line number
012920: 2A 2F 0D 0A 20 20 6E 6C 69 6E 65 73 2C 20 20 2F */.. nlines, /
012930: 2A 20 6E 75 6D 62 65 72 20 6F 66 20 6C 69 6E 65 * number of line
012940: 20 6E 75 6D 62 65 72 73 20 67 69 76 65 6E 20 2A numbers given *
012950: 2F 0D 0A 20 20 63 75 72 6C 6E 2C 20 20 20 2F 2A /.. curln, /*
012960: 20 63 75 72 72 65 6E 74 20 6C 69 6E 65 20 28 76 current line (v
012970: 61 6C 75 65 20 6F 66 20 64 6F 74 29 20 2A 2F 0D alue of dot) */.
012980: 0A 20 20 6C 61 73 74 6C 6E 3B 20 20 2F 2A 20 6C . lastln; /* l
012990: 61 73 74 20 6C 69 6E 65 20 28 76 61 6C 75 65 20 ast line (value
0129A0: 6F 66 20 24 29 20 2A 2F 0D 0A 0D 0A 63 68 61 72 of $) */....char
0129B0: 20 2A 62 75 66 3B 20 20 20 20 2F 2A 20 62 75 66 *buf; /* buf
0129C0: 66 65 72 20 66 6F 72 20 70 6F 69 6E 74 65 72 73 fer for pointers
0129D0: 20 61 6E 64 20 74 65 78 74 20 2A 2F 0D 0A 2F 2A and text */../*
0129E0: 0D 0A 2A 2A 20 62 75 66 5B 6B 2B 30 5D 20 50 52 ..** buf[k+0] PR
0129F0: 45 56 20 20 20 20 20 28 32 20 62 79 74 65 73 29 EV (2 bytes)
012A00: 20 20 70 72 65 76 69 6F 75 73 20 6C 69 6E 65 0D previous line.
012A10: 0A 2A 2A 20 62 75 66 5B 6B 2B 32 5D 20 4E 45 58 .** buf[k+2] NEX
012A20: 54 20 20 20 20 20 28 32 20 62 79 74 65 73 29 20 T (2 bytes)
012A30: 20 6E 65 78 74 20 6C 69 6E 65 0D 0A 2A 2A 20 62 next line..** b
012A40: 75 66 5B 6B 2B 34 5D 20 4D 41 52 4B 20 20 20 20 uf[k+4] MARK
012A50: 20 28 31 20 62 79 74 65 29 20 20 20 6D 61 72 6B (1 byte) mark
012A60: 20 66 6F 72 20 67 6C 6F 62 61 6C 20 63 6F 6D 6D for global comm
012A70: 61 6E 64 73 0D 0A 2A 2A 20 62 75 66 5B 6B 2B 35 ands..** buf[k+5
012A80: 5D 20 54 45 58 54 0D 0A 2A 2F 0D 0A 69 6E 74 20 ] TEXT..*/..int
012A90: 20 6C 61 73 74 62 66 3B 20 20 2F 2A 20 6C 61 73 lastbf; /* las
012AA0: 74 20 65 6C 65 6D 65 6E 74 20 75 73 65 64 20 69 t element used i
012AB0: 6E 20 62 75 66 20 2A 2F 0D 0A 63 68 61 72 20 2A n buf */..char *
012AC0: 74 78 74 2C 20 20 20 20 2F 2A 20 74 65 78 74 20 txt, /* text
012AD0: 6C 69 6E 65 20 66 6F 72 20 6D 61 74 63 68 69 6E line for matchin
012AE0: 67 20 61 6E 64 20 6F 75 74 70 75 74 20 2A 2F 0D g and output */.
012AF0: 0A 20 20 20 20 20 2A 73 61 76 66 69 6C 2C 20 2F . *savfil, /
012B00: 0D 0A 2F 2A 0D 0A 2A 2A 20 64 69 67 69 74 2E 63 ../*..** digit.c
012B10: 20 2D 2D 20 72 65 74 75 72 6E 20 59 45 53 20 69 -- return YES i
012B20: 66 20 63 20 69 73 20 61 20 64 65 63 69 6D 61 6C f c is a decimal
012B30: 20 64 69 67 69 74 2C 20 65 6C 73 65 20 4E 4F 0D digit, else NO.
012B40: 0A 2A 2F 0D 0A 64 69 67 69 74 28 63 29 20 63 68 .*/..digit(c) ch
012B50: 61 72 20 63 3B 20 7B 0D 0A 20 20 69 66 28 28 63 ar c; {.. if((c
012B60: 3E 3D 27 30 27 29 26 28 63 3C 3D 27 39 27 29 29 >='0')&(c<='9'))
012B70: 20 72 65 74 75 72 6E 20 59 45 53 3B 0D 0A 20 20 return YES;..
012B80: 72 65 74 75 72 6E 20 4E 4F 3B 0D 0A 20 20 7D 0D return NO;.. }.
012B90: 0A 1A 1A 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
012BA0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
012BB0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
012BC0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
012BD0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
012BE0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
012BF0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
012C00: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
012C10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
012C20: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
012C30: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
012C40: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
012C50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
012C60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
012C70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
012C80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
012C90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
012CA0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
012CB0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
012CC0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
012CD0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
012CE0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
012CF0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
012D00: 2A 20 72 65 6D 65 6D 62 65 72 65 64 20 66 69 6C * remembered fil
012D10: 65 20 6E 61 6D 65 20 2A 2F 0D 0A 20 20 20 20 20 e name */..
012D20: 2A 66 69 6C 65 3B 0D 0A 69 6E 74 0D 0A 20 20 73 *file;..int.. s
012D30: 63 72 2C 20 20 20 20 20 20 20 20 2F 2A 20 73 63 cr, /* sc
012D40: 72 61 74 63 68 20 66 69 6C 65 20 69 64 20 2A 2F ratch file id */
012D50: 0D 0A 20 20 73 63 72 65 6E 64 5B 32 5D 3B 20 20 .. scrend[2];
012D60: 2F 2A 20 65 6E 64 20 6F 66 20 69 6E 66 6F 20 6F /* end of info o
012D70: 6E 20 73 63 72 61 74 63 68 20 66 69 6C 65 20 2A n scratch file *
012D80: 2F 0D 0A 63 68 61 72 20 2A 6C 69 6E 2C 20 2A 70 /..char *lin, *p
012D90: 61 74 2C 20 2A 73 75 62 2C 20 75 70 64 74 66 6C at, *sub, updtfl
012DA0: 61 67 2C 20 6E 62 72 73 74 72 5B 37 5D 3B 0D 0A ag, nbrstr[7];..
012DB0: 69 6E 74 20 63 75 72 73 61 76 2C 20 69 2C 20 73 int cursav, i, s
012DC0: 74 61 74 75 73 2C 20 6D 61 78 62 75 66 2C 20 63 tatus, maxbuf, c
012DD0: 6F 6E 74 65 78 74 2C 20 76 69 65 77 3B 0D 0A 0D ontext, view;...
012DE0: 0A 6D 61 69 6E 28 61 72 67 63 2C 20 61 72 67 76 .main(argc, argv
012DF0: 29 20 69 6E 74 20 61 72 67 63 2C 20 2A 61 72 67 ) int argc, *arg
012E00: 76 3B 20 7B 0D 0A 20 20 69 66 28 69 73 61 74 74 v; {.. if(isatt
012E10: 79 28 73 74 64 69 6E 29 29 20 76 69 65 77 3D 31 y(stdin)) view=1
012E20: 3B 20 65 6C 73 65 20 76 69 65 77 3D 30 3B 0D 0A ; else view=0;..
012E30: 20 20 74 78 74 3D 6D 61 6C 6C 6F 63 28 4D 41 58 txt=malloc(MAX
012E40: 4C 49 4E 45 29 3B 0D 0A 20 20 6C 69 6E 3D 6D 61 LINE);.. lin=ma
012E50: 6C 6C 6F 63 28 4D 41 58 4C 49 4E 45 29 3B 0D 0A lloc(MAXLINE);..
012E60: 20 20 70 61 74 3D 6D 61 6C 6C 6F 63 28 4D 41 58 pat=malloc(MAX
012E70: 50 41 54 29 3B 0D 0A 20 20 73 75 62 3D 6D 61 6C PAT);.. sub=mal
012E80: 6C 6F 63 28 4D 41 58 50 41 54 29 3B 0D 0A 20 20 loc(MAXPAT);..
012E90: 66 69 6C 65 3D 6D 61 6C 6C 6F 63 28 4D 41 58 46 file=malloc(MAXF
012EA0: 4E 29 3B 0D 0A 20 20 73 61 76 66 69 6C 3D 6D 61 N);.. savfil=ma
012EB0: 6C 6C 6F 63 28 4D 41 58 46 4E 29 3B 0D 0A 20 20 lloc(MAXFN);..
012EC0: 6D 61 78 62 75 66 3D 61 76 61 69 6C 28 59 45 53 maxbuf=avail(YES
012ED0: 29 2D 52 45 53 45 52 56 45 3B 0D 0A 20 20 69 66 )-RESERVE;.. if
012EE0: 28 6D 61 78 62 75 66 20 3C 20 30 29 20 6D 61 78 (maxbuf < 0) max
012EF0: 62 75 66 3D 33 32 37 36 37 3B 0D 0A 20 20 62 75 buf=32767;.. bu
012F00: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
012F10: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
012F20: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
012F30: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
012F40: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
012F50: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
012F60: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
012F70: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
012F80: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
012F90: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
012FA0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
012FB0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
012FC0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
012FD0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
012FE0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
012FF0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
013000: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
013010: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
013020: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
013030: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
013040: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
013050: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
013060: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
013070: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
013080: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
013090: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0130A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0130B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0130C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0130D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0130E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0130F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
013100: 54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 00 00 00 Track-Info......
013110: 10 00 01 00 02 09 52 E5 10 00 41 02 00 00 00 02 ......R...A.....
013120: 10 00 46 02 00 00 00 02 10 00 42 02 00 00 00 02 ..F.......B.....
013130: 10 00 47 02 00 00 00 02 10 00 43 02 00 00 00 02 ..G.......C.....
013140: 10 00 48 02 00 00 00 02 10 00 44 02 00 00 00 02 ..H.......D.....
013150: 10 00 49 02 00 00 00 02 10 00 45 02 00 00 00 02 ..I.......E.....
013160: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
013170: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
013180: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
013190: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0131A0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0131B0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0131C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0131D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0131E0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0131F0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
013200: 66 3D 6D 61 6C 6C 6F 63 28 6D 61 78 62 75 66 29 f=malloc(maxbuf)
013210: 3B 0D 0A 20 20 73 65 74 62 75 66 28 29 3B 0D 0A ;.. setbuf();..
013220: 20 20 75 70 64 74 66 6C 61 67 3D 4E 4F 3B 0D 0A updtflag=NO;..
013230: 20 20 70 61 74 5B 30 5D 3D 73 61 76 66 69 6C 5B pat[0]=savfil[
013240: 30 5D 3D 6E 62 72 73 74 72 5B 36 5D 3D 4E 55 4C 0]=nbrstr[6]=NUL
013250: 4C 3B 0D 0A 20 20 63 6F 6E 74 65 78 74 3D 37 3B L;.. context=7;
013260: 0D 0A 20 20 69 3D 30 3B 0D 0A 20 20 77 68 69 6C .. i=0;.. whil
013270: 65 28 67 65 74 61 72 67 28 2B 2B 69 2C 20 74 78 e(getarg(++i, tx
013280: 74 2C 20 4D 41 58 46 4E 2C 20 61 72 67 63 2C 20 t, MAXFN, argc,
013290: 61 72 67 76 29 21 3D 45 4F 46 29 20 7B 0D 0A 20 argv)!=EOF) {..
0132A0: 20 20 20 69 66 28 74 78 74 5B 30 5D 3D 3D 27 2D if(txt[0]=='-
0132B0: 27 29 20 7B 0D 0A 20 20 20 20 20 20 69 66 28 73 ') {.. if(s
0132C0: 61 6D 65 28 74 78 74 5B 31 5D 2C 20 27 76 27 29 ame(txt[1], 'v')
0132D0: 26 28 74 78 74 5B 32 5D 3D 3D 4E 55 4C 4C 29 29 &(txt[2]==NULL))
0132E0: 20 76 69 65 77 20 3D 20 31 20 2D 20 76 69 65 77 view = 1 - view
0132F0: 3B 0D 0A 20 20 20 20 20 20 65 6C 73 65 20 7B 0D ;.. else {.
013300: 0A 20 20 20 20 20 20 20 20 66 70 75 74 73 28 22 . fputs("
013310: 75 73 61 67 65 3A 20 45 44 54 20 5B 66 69 6C 65 usage: EDT [file
013320: 5D 20 5B 2D 56 5D 5C 6E 22 2C 20 73 74 64 65 72 ] [-V]\n", stder
013330: 72 29 3B 0D 0A 20 20 20 20 20 20 20 20 61 62 6F r);.. abo
013340: 72 74 28 37 29 3B 0D 0A 20 20 20 20 20 20 20 20 rt(7);..
013350: 7D 0D 0A 20 20 20 20 20 20 7D 0D 0A 20 20 20 20 }.. }..
013360: 65 6C 73 65 20 73 63 6F 70 79 28 74 78 74 2C 20 else scopy(txt,
013370: 30 2C 20 73 61 76 66 69 6C 2C 20 30 29 3B 0D 0A 0, savfil, 0);..
013380: 20 20 20 20 7D 0D 0A 20 20 69 66 28 2A 73 61 76 }.. if(*sav
013390: 66 69 6C 29 20 7B 0D 0A 20 20 20 20 69 66 28 65 fil) {.. if(e
0133A0: 6E 74 65 72 28 73 61 76 66 69 6C 29 3D 3D 45 52 nter(savfil)==ER
0133B0: 52 29 20 7B 0D 0A 20 20 20 20 20 20 66 70 75 74 R) {.. fput
0133C0: 73 28 22 65 72 72 6F 72 5C 6E 22 2C 20 73 74 64 s("error\n", std
0133D0: 65 72 72 29 3B 0D 0A 20 20 20 20 20 20 7D 0D 0A err);.. }..
0133E0: 20 20 20 20 7D 0D 0A 20 20 69 66 28 69 73 61 74 }.. if(isat
0133F0: 74 79 28 73 74 64 69 6E 29 29 0D 0A 20 20 20 20 ty(stdin))..
013400: 20 20 7D 0D 0A 20 20 20 20 20 20 20 20 7D 0D 0A }.. }..
013410: 20 20 20 20 20 20 62 72 65 61 6B 3B 0D 0A 20 20 break;..
013420: 20 20 63 61 73 65 20 53 55 42 53 54 49 54 55 54 case SUBSTITUT
013430: 45 3A 0D 0A 20 20 20 20 20 20 2B 2B 69 3B 0D 0A E:.. ++i;..
013440: 20 20 20 20 20 20 69 66 28 6F 70 74 70 61 74 28 if(optpat(
013450: 29 3D 3D 4F 4B 29 20 7B 0D 0A 20 20 20 20 20 20 )==OK) {..
013460: 20 20 69 66 28 67 65 74 72 68 73 28 6C 69 6E 2C if(getrhs(lin,
013470: 20 26 69 2C 20 73 75 62 2C 20 26 67 66 6C 61 67 &i, sub, &gflag
013480: 29 3D 3D 4F 4B 29 20 7B 0D 0A 20 20 20 20 20 20 )==OK) {..
013490: 20 20 20 20 69 66 28 63 6B 70 28 6C 69 6E 2C 20 if(ckp(lin,
0134A0: 69 2B 31 2C 20 26 70 66 6C 61 67 29 3D 3D 4F 4B i+1, &pflag)==OK
0134B0: 29 20 7B 0D 0A 20 20 20 20 20 20 20 20 20 20 20 ) {..
0134C0: 20 69 66 28 64 65 66 61 6C 74 28 63 75 72 6C 6E if(defalt(curln
0134D0: 2C 20 63 75 72 6C 6E 29 3D 3D 4F 4B 29 0D 0A 20 , curln)==OK)..
0134E0: 20 20 20 20 20 20 20 20 20 20 20 20 20 73 74 61 sta
0134F0: 74 75 73 3D 73 75 62 73 74 28 73 75 62 2C 20 67 tus=subst(sub, g
013500: 66 6C 61 67 29 3B 0D 0A 20 20 20 20 20 20 20 20 flag);..
013510: 20 20 20 20 7D 0D 0A 20 20 20 20 20 20 20 20 20 }..
013520: 20 7D 0D 0A 20 20 20 20 20 20 20 20 7D 0D 0A 20 }.. }..
013530: 20 20 20 20 20 62 72 65 61 6B 3B 0D 0A 20 20 20 break;..
013540: 20 63 61 73 65 20 45 4E 54 45 52 3A 0D 0A 20 20 case ENTER:..
013550: 20 20 20 20 69 66 28 63 68 6B 75 70 64 74 28 29 if(chkupdt()
013560: 3D 3D 45 52 52 29 20 73 74 61 74 75 73 3D 4F 4B ==ERR) status=OK
013570: 3B 0D 0A 20 20 20 20 20 20 65 6C 73 65 20 69 66 ;.. else if
013580: 28 6E 6C 69 6E 65 73 3D 3D 30 29 20 7B 0D 0A 20 (nlines==0) {..
013590: 20 20 20 20 20 20 20 69 66 28 67 65 74 66 6E 28 if(getfn(
0135A0: 6C 69 6E 2C 20 69 2C 20 66 69 6C 65 2C 20 4D 41 lin, i, file, MA
0135B0: 58 46 4E 29 3D 3D 4F 4B 29 20 7B 0D 0A 20 20 20 XFN)==OK) {..
0135C0: 20 20 20 20 20 20 20 73 63 6F 70 79 28 66 69 6C scopy(fil
0135D0: 65 2C 20 30 2C 20 73 61 76 66 69 6C 2C 20 30 29 e, 0, savfil, 0)
0135E0: 3B 0D 0A 20 20 20 20 20 20 20 20 20 20 63 6C 72 ;.. clr
0135F0: 62 75 66 28 29 3B 0D 0A 20 20 20 20 20 20 20 20 buf();..
013600: 66 70 75 74 63 28 50 52 4F 4D 50 54 2C 20 73 74 fputc(PROMPT, st
013610: 64 65 72 72 29 3B 0D 0A 20 20 77 68 69 6C 65 28 derr);.. while(
013620: 66 67 65 74 73 28 6C 69 6E 2C 20 4D 41 58 4C 49 fgets(lin, MAXLI
013630: 4E 45 2C 20 73 74 64 69 6E 29 21 3D 4E 55 4C 4C NE, stdin)!=NULL
013640: 29 20 7B 0D 0A 20 20 20 20 70 6F 6C 6C 28 59 45 ) {.. poll(YE
013650: 53 29 3B 0D 0A 20 20 20 20 74 72 69 6D 28 6C 69 S);.. trim(li
013660: 6E 29 3B 0D 0A 20 20 20 20 69 3D 30 3B 0D 0A 20 n);.. i=0;..
013670: 20 20 20 63 75 72 73 61 76 3D 63 75 72 6C 6E 3B cursav=curln;
013680: 0D 0A 20 20 20 20 69 66 28 67 65 74 6C 73 74 28 .. if(getlst(
013690: 29 3D 3D 4F 4B 29 20 7B 0D 0A 20 20 20 20 20 20 )==OK) {..
0136A0: 69 66 28 63 6B 67 6C 6F 62 28 29 3D 3D 4F 4B 29 if(ckglob()==OK)
0136B0: 0D 0A 20 20 20 20 20 20 20 20 73 74 61 74 75 73 .. status
0136C0: 3D 64 6F 67 6C 6F 62 28 29 3B 0D 0A 20 20 20 20 =doglob();..
0136D0: 20 20 65 6C 73 65 20 69 66 28 73 74 61 74 75 73 else if(status
0136E0: 21 3D 20 45 52 52 29 0D 0A 20 20 20 20 20 20 20 != ERR)..
0136F0: 20 73 74 61 74 75 73 3D 64 6F 63 6D 64 28 4E 4F status=docmd(NO
013700: 29 3B 0D 0A 20 20 20 20 20 20 2F 2A 20 65 6C 73 );.. /* els
013710: 65 20 65 72 72 6F 72 2C 20 64 6F 20 6E 6F 74 68 e error, do noth
013720: 69 6E 67 20 2A 2F 0D 0A 20 20 20 20 20 20 7D 0D ing */.. }.
013730: 0A 20 20 20 20 69 66 28 73 74 61 74 75 73 3D 3D . if(status==
013740: 45 52 52 29 20 7B 0D 0A 20 20 20 20 20 20 66 70 ERR) {.. fp
013750: 75 74 73 28 22 5C 37 65 72 72 6F 72 5C 6E 22 2C uts("\7error\n",
013760: 20 73 74 64 65 72 72 29 3B 0D 0A 20 20 20 20 20 stderr);..
013770: 20 63 75 72 6C 6E 3D 63 75 72 73 61 76 3B 0D 0A curln=cursav;..
013780: 20 20 20 20 20 20 7D 0D 0A 20 20 20 20 65 6C 73 }.. els
013790: 65 20 69 66 28 73 74 61 74 75 73 3D 3D 45 4F 46 e if(status==EOF
0137A0: 29 20 62 72 65 61 6B 3B 0D 0A 20 20 20 20 2F 2A ) break;.. /*
0137B0: 20 65 6C 73 65 20 4F 4B 2C 20 74 68 65 6E 20 6C else OK, then l
0137C0: 6F 6F 70 20 2A 2F 0D 0A 20 20 20 20 69 66 28 69 oop */.. if(i
0137D0: 73 61 74 74 79 28 73 74 64 69 6E 29 29 20 66 70 satty(stdin)) fp
0137E0: 75 74 63 28 50 52 4F 4D 50 54 2C 20 73 74 64 65 utc(PROMPT, stde
0137F0: 72 72 29 3B 0D 0A 20 20 20 20 7D 0D 0A 20 20 7D rr);.. }.. }
013800: 20 20 73 65 74 62 75 66 28 29 3B 0D 0A 20 20 20 setbuf();..
013810: 20 20 20 20 20 20 20 73 74 61 74 75 73 3D 65 6E status=en
013820: 74 65 72 28 66 69 6C 65 29 3B 0D 0A 20 20 20 20 ter(file);..
013830: 20 20 20 20 20 20 7D 0D 0A 20 20 20 20 20 20 20 }..
013840: 20 7D 0D 0A 20 20 20 20 20 20 62 72 65 61 6B 3B }.. break;
013850: 0D 0A 20 20 20 20 63 61 73 65 20 46 49 4C 45 3A .. case FILE:
013860: 0D 0A 20 20 20 20 20 20 69 66 28 6E 6C 69 6E 65 .. if(nline
013870: 73 3D 3D 30 29 20 7B 0D 0A 20 20 20 20 20 20 20 s==0) {..
013880: 20 69 66 28 67 65 74 66 6E 28 6C 69 6E 2C 20 69 if(getfn(lin, i
013890: 2C 20 66 69 6C 65 2C 20 4D 41 58 46 4E 29 3D 3D , file, MAXFN)==
0138A0: 4F 4B 29 20 7B 0D 0A 20 20 20 20 20 20 20 20 20 OK) {..
0138B0: 20 73 63 6F 70 79 28 66 69 6C 65 2C 20 30 2C 20 scopy(file, 0,
0138C0: 73 61 76 66 69 6C 2C 20 30 29 3B 0D 0A 20 20 20 savfil, 0);..
0138D0: 20 20 20 20 20 20 20 70 75 74 73 28 73 61 76 66 puts(savf
0138E0: 69 6C 29 3B 0D 0A 20 20 20 20 20 20 20 20 20 20 il);..
0138F0: 7D 0D 0A 20 20 20 20 20 20 20 20 69 74 6F 75 28 }.. itou(
013900: 6D 61 78 62 75 66 2D 6C 61 73 74 62 66 2C 20 6E maxbuf-lastbf, n
013910: 62 72 73 74 72 2C 20 36 29 3B 0D 0A 20 20 20 20 brstr, 6);..
013920: 20 20 20 20 70 75 74 73 28 6E 62 72 73 74 72 29 puts(nbrstr)
013930: 3B 0D 0A 20 20 20 20 20 20 20 20 73 74 61 74 75 ;.. statu
013940: 73 3D 4F 4B 3B 0D 0A 20 20 20 20 20 20 20 20 7D s=OK;.. }
013950: 0D 0A 20 20 20 20 20 20 62 72 65 61 6B 3B 0D 0A .. break;..
013960: 20 20 20 20 63 61 73 65 20 52 45 41 44 3A 0D 0A case READ:..
013970: 20 20 20 20 20 20 69 66 28 67 65 74 66 6E 28 6C if(getfn(l
013980: 69 6E 2C 20 69 2C 20 66 69 6C 65 2C 20 4D 41 58 in, i, file, MAX
013990: 46 4E 29 3D 3D 4F 4B 29 0D 0A 20 20 20 20 20 20 FN)==OK)..
0139A0: 20 20 73 74 61 74 75 73 3D 64 6F 72 65 61 64 28 status=doread(
0139B0: 6C 69 6E 65 32 2C 20 66 69 6C 65 29 3B 0D 0A 20 line2, file);..
0139C0: 20 20 20 20 20 70 66 6C 61 67 3D 76 69 65 77 3B pflag=view;
0139D0: 0D 0A 20 20 20 20 20 20 62 72 65 61 6B 3B 0D 0A .. break;..
0139E0: 20 20 20 20 63 61 73 65 20 57 52 49 54 45 3A 0D case WRITE:.
0139F0: 0A 20 20 20 20 20 20 69 66 28 67 65 74 66 6E 28 . if(getfn(
013A00: 0D 0A 0D 0A 2F 2A 0D 0A 2A 2A 20 64 6F 63 6D 64 ..../*..** docmd
013A10: 20 2D 2D 20 68 61 6E 64 6C 65 20 61 6C 6C 20 63 -- handle all c
013A20: 6F 6D 6D 61 6E 64 73 20 65 78 63 65 70 74 20 67 ommands except g
013A30: 6C 6F 62 61 6C 73 0D 0A 2A 2F 0D 0A 64 6F 63 6D lobals..*/..docm
013A40: 64 28 67 6C 6F 62 29 20 69 6E 74 20 67 6C 6F 62 d(glob) int glob
013A50: 3B 20 7B 0D 0A 20 20 69 6E 74 20 67 66 6C 61 67 ; {.. int gflag
013A60: 2C 20 6C 69 6E 65 33 2C 20 70 66 6C 61 67 3B 0D , line3, pflag;.
013A70: 0A 20 20 70 66 6C 61 67 3D 4E 4F 3B 0D 0A 20 20 . pflag=NO;..
013A80: 73 74 61 74 75 73 3D 45 52 52 3B 0D 0A 20 20 73 status=ERR;.. s
013A90: 77 69 74 63 68 28 74 6F 6C 6F 77 65 72 28 6C 69 witch(tolower(li
013AA0: 6E 5B 69 5D 29 29 20 7B 0D 0A 20 20 20 20 63 61 n[i])) {.. ca
013AB0: 73 65 20 41 50 50 45 4E 44 3A 0D 0A 20 20 20 20 se APPEND:..
013AC0: 20 20 69 66 28 63 6B 70 28 6C 69 6E 2C 20 69 2B if(ckp(lin, i+
013AD0: 31 2C 20 26 70 66 6C 61 67 29 3D 3D 4F 4B 29 0D 1, &pflag)==OK).
013AE0: 0A 20 20 20 20 20 20 20 20 73 74 61 74 75 73 3D . status=
013AF0: 61 70 70 65 6E 64 28 6C 69 6E 65 32 2C 20 67 6C append(line2, gl
013B00: 6F 62 29 3B 0D 0A 20 20 20 20 20 20 62 72 65 61 ob);.. brea
013B10: 6B 3B 0D 0A 20 20 20 20 63 61 73 65 20 43 48 41 k;.. case CHA
013B20: 4E 47 45 3A 0D 0A 20 20 20 20 20 20 69 66 28 63 NGE:.. if(c
013B30: 6B 70 28 6C 69 6E 2C 20 69 2B 31 2C 20 26 70 66 kp(lin, i+1, &pf
013B40: 6C 61 67 29 3D 3D 4F 4B 29 20 7B 0D 0A 20 20 20 lag)==OK) {..
013B50: 20 20 20 20 20 69 66 28 64 65 66 61 6C 74 28 63 if(defalt(c
013B60: 75 72 6C 6E 2C 20 63 75 72 6C 6E 29 3D 3D 4F 4B urln, curln)==OK
013B70: 29 20 7B 0D 0A 20 20 20 20 20 20 20 20 20 20 69 ) {.. i
013B80: 66 28 28 73 74 61 74 75 73 3D 61 70 70 65 6E 64 f((status=append
013B90: 28 6C 69 6E 65 32 2C 20 67 6C 6F 62 29 29 21 3D (line2, glob))!=
013BA0: 45 52 52 29 20 7B 0D 0A 20 20 20 20 20 20 20 20 ERR) {..
013BB0: 20 20 20 20 6B 69 6C 6C 28 6C 69 6E 65 31 2C 20 kill(line1,
013BC0: 6C 69 6E 65 32 29 3B 0D 0A 20 20 20 20 20 20 20 line2);..
013BD0: 20 20 20 20 20 2B 2B 63 75 72 6C 6E 3B 0D 0A 20 ++curln;..
013BE0: 20 20 20 20 20 20 20 20 20 20 20 7D 0D 0A 20 20 }..
013BF0: 20 20 20 20 20 20 20 20 7D 0D 0A 20 20 20 20 20 }..
013C00: 6C 69 6E 2C 20 69 2C 20 66 69 6C 65 2C 20 4D 41 lin, i, file, MA
013C10: 58 46 4E 29 3D 3D 4F 4B 29 20 7B 0D 0A 20 20 20 XFN)==OK) {..
013C20: 20 20 20 20 20 69 66 28 64 65 66 61 6C 74 28 31 if(defalt(1
013C30: 2C 20 6C 61 73 74 6C 6E 29 3D 3D 4F 4B 29 0D 0A , lastln)==OK)..
013C40: 20 20 20 20 20 20 20 20 20 20 73 74 61 74 75 73 status
013C50: 3D 64 6F 77 72 69 74 28 6C 69 6E 65 31 2C 20 6C =dowrit(line1, l
013C60: 69 6E 65 32 2C 20 66 69 6C 65 29 3B 0D 0A 20 20 ine2, file);..
013C70: 20 20 20 20 20 20 7D 0D 0A 20 20 20 20 20 20 62 }.. b
013C80: 72 65 61 6B 3B 0D 0A 20 20 20 20 63 61 73 65 20 reak;.. case
013C90: 5A 49 50 3A 0D 0A 20 20 20 20 20 20 69 66 28 64 ZIP:.. if(d
013CA0: 65 66 61 6C 74 28 63 75 72 6C 6E 2C 20 6C 61 73 efalt(curln, las
013CB0: 74 6C 6E 29 3D 3D 4F 4B 29 0D 0A 20 20 20 20 20 tln)==OK)..
013CC0: 20 20 20 73 74 61 74 75 73 3D 64 6F 70 72 6E 74 status=doprnt
013CD0: 28 6C 69 6E 65 31 2C 20 6C 69 6E 65 32 2C 20 67 (line1, line2, g
013CE0: 6C 6F 62 29 3B 0D 0A 20 20 20 20 20 20 62 72 65 lob);.. bre
013CF0: 61 6B 3B 0D 0A 20 20 20 20 63 61 73 65 20 50 52 ak;.. case PR
013D00: 49 4E 54 3A 0D 0A 20 20 20 20 20 20 69 66 28 64 INT:.. if(d
013D10: 65 66 61 6C 74 28 63 75 72 6C 6E 2C 20 63 75 72 efalt(curln, cur
013D20: 6C 6E 29 3D 3D 4F 4B 29 0D 0A 20 20 20 20 20 20 ln)==OK)..
013D30: 20 20 73 74 61 74 75 73 3D 64 6F 70 72 6E 74 28 status=doprnt(
013D40: 6C 69 6E 65 31 2C 20 6C 69 6E 65 32 2C 20 67 6C line1, line2, gl
013D50: 6F 62 29 3B 0D 0A 20 20 20 20 20 20 62 72 65 61 ob);.. brea
013D60: 6B 3B 0D 0A 20 20 20 20 63 61 73 65 20 4E 55 4C k;.. case NUL
013D70: 4C 3A 0D 0A 20 20 20 20 20 20 69 66 28 28 6E 6C L:.. if((nl
013D80: 69 6E 65 73 3D 3D 30 29 26 28 67 6C 6F 62 3D 3D ines==0)&(glob==
013D90: 4E 4F 29 29 20 6C 69 6E 65 32 3D 6E 65 78 74 6C NO)) line2=nextl
013DA0: 6E 28 63 75 72 6C 6E 29 3B 0D 0A 20 20 20 20 20 n(curln);..
013DB0: 20 69 66 28 76 69 65 77 29 20 73 74 61 74 75 73 if(view) status
013DC0: 3D 64 6F 70 72 6E 74 28 6C 69 6E 65 32 2C 20 6C =doprnt(line2, l
013DD0: 69 6E 65 32 2C 20 67 6C 6F 62 29 3B 0D 0A 20 20 ine2, glob);..
013DE0: 20 20 20 20 65 6C 73 65 20 7B 0D 0A 20 20 20 20 else {..
013DF0: 20 20 20 20 63 75 72 6C 6E 3D 6C 69 6E 65 32 3B curln=line2;
013E00: 20 20 20 7D 0D 0A 20 20 20 20 20 20 62 72 65 61 }.. brea
013E10: 6B 3B 0D 0A 20 20 20 20 63 61 73 65 20 44 45 4C k;.. case DEL
013E20: 45 54 45 3A 0D 0A 20 20 20 20 20 20 69 66 28 63 ETE:.. if(c
013E30: 6B 70 28 6C 69 6E 2C 20 69 2B 31 2C 20 26 70 66 kp(lin, i+1, &pf
013E40: 6C 61 67 29 3D 3D 4F 4B 29 20 7B 0D 0A 20 20 20 lag)==OK) {..
013E50: 20 20 20 20 20 69 66 28 64 65 66 61 6C 74 28 63 if(defalt(c
013E60: 75 72 6C 6E 2C 20 63 75 72 6C 6E 29 3D 3D 4F 4B urln, curln)==OK
013E70: 29 20 7B 0D 0A 20 20 20 20 20 20 20 20 20 20 6B ) {.. k
013E80: 69 6C 6C 28 6C 69 6E 65 31 2C 20 6C 69 6E 65 32 ill(line1, line2
013E90: 29 3B 0D 0A 20 20 20 20 20 20 20 20 20 20 69 66 );.. if
013EA0: 28 63 75 72 6C 6E 20 3C 20 6C 61 73 74 6C 6E 29 (curln < lastln)
013EB0: 20 63 75 72 6C 6E 3D 6E 65 78 74 6C 6E 28 63 75 curln=nextln(cu
013EC0: 72 6C 6E 29 3B 0D 0A 20 20 20 20 20 20 20 20 20 rln);..
013ED0: 20 7D 0D 0A 20 20 20 20 20 20 20 20 7D 0D 0A 20 }.. }..
013EE0: 20 20 20 20 20 62 72 65 61 6B 3B 0D 0A 20 20 20 break;..
013EF0: 20 63 61 73 65 20 49 4E 53 45 52 54 3A 0D 0A 20 case INSERT:..
013F00: 20 20 20 20 20 69 66 28 63 6B 70 28 6C 69 6E 2C if(ckp(lin,
013F10: 20 69 2B 31 2C 20 26 70 66 6C 61 67 29 3D 3D 4F i+1, &pflag)==O
013F20: 4B 29 0D 0A 20 20 20 20 20 20 20 20 73 74 61 74 K).. stat
013F30: 75 73 3D 61 70 70 65 6E 64 28 70 72 65 76 6C 6E us=append(prevln
013F40: 28 6C 69 6E 65 32 29 2C 20 67 6C 6F 62 29 3B 0D (line2), glob);.
013F50: 0A 20 20 20 20 20 20 62 72 65 61 6B 3B 0D 0A 20 . break;..
013F60: 20 20 20 63 61 73 65 20 4C 49 4E 45 3A 0D 0A 20 case LINE:..
013F70: 20 20 20 20 20 69 66 28 6C 69 6E 5B 69 2B 31 5D if(lin[i+1]
013F80: 3D 3D 4E 55 4C 4C 29 20 7B 0D 0A 20 20 20 20 20 ==NULL) {..
013F90: 20 20 20 69 74 6F 75 28 63 75 72 6C 6E 2C 20 6E itou(curln, n
013FA0: 62 72 73 74 72 2C 20 36 29 3B 0D 0A 20 20 20 20 brstr, 6);..
013FB0: 20 20 20 20 70 75 74 73 28 6E 62 72 73 74 72 29 puts(nbrstr)
013FC0: 3B 0D 0A 20 20 20 20 20 20 20 20 73 74 61 74 75 ;.. statu
013FD0: 73 3D 4F 4B 3B 0D 0A 20 20 20 20 20 20 20 20 7D s=OK;.. }
013FE0: 0D 0A 20 20 20 20 20 20 62 72 65 61 6B 3B 0D 0A .. break;..
013FF0: 20 20 20 20 63 61 73 65 20 4A 4F 49 4E 3A 0D 0A case JOIN:..
014000: 0D 0A 20 20 20 20 20 20 20 20 73 74 61 74 75 73 .. status
014010: 3D 4F 4B 3B 0D 0A 20 20 20 20 20 20 20 20 7D 0D =OK;.. }.
014020: 0A 20 20 20 20 20 20 62 72 65 61 6B 3B 0D 0A 20 . break;..
014030: 20 20 20 63 61 73 65 20 51 55 49 54 3A 0D 0A 20 case QUIT:..
014040: 20 20 20 20 20 69 66 28 28 6C 69 6E 5B 69 2B 31 if((lin[i+1
014050: 5D 3D 3D 4E 55 4C 4C 29 26 28 6E 6C 69 6E 65 73 ]==NULL)&(nlines
014060: 3D 3D 30 29 26 28 67 6C 6F 62 3D 3D 4E 4F 29 29 ==0)&(glob==NO))
014070: 20 7B 0D 0A 20 20 20 20 20 20 20 20 69 66 28 63 {.. if(c
014080: 68 6B 75 70 64 74 28 29 3D 3D 45 52 52 29 20 73 hkupdt()==ERR) s
014090: 74 61 74 75 73 3D 4F 4B 3B 0D 0A 20 20 20 20 20 tatus=OK;..
0140A0: 20 20 20 65 6C 73 65 20 73 74 61 74 75 73 3D 45 else status=E
0140B0: 4F 46 3B 0D 0A 20 20 20 20 20 20 20 20 7D 0D 0A OF;.. }..
0140C0: 20 20 20 20 20 20 62 72 65 61 6B 3B 0D 0A 20 20 break;..
0140D0: 20 20 63 61 73 65 20 56 49 45 57 3A 0D 0A 20 20 case VIEW:..
0140E0: 20 20 20 20 76 69 65 77 3D 31 2D 76 69 65 77 3B view=1-view;
0140F0: 0D 0A 20 20 20 20 20 20 73 74 61 74 75 73 3D 4F .. status=O
014100: 4B 3B 0D 0A 20 20 20 20 7D 0D 0A 20 20 2F 2A 20 K;.. }.. /*
014110: 65 6C 73 65 20 73 74 61 74 75 73 20 69 73 20 45 else status is E
014120: 52 52 20 2A 2F 0D 0A 20 20 69 66 28 63 75 72 6C RR */.. if(curl
014130: 6E 20 3C 20 31 29 20 63 75 72 6C 6E 20 3D 20 6E n < 1) curln = n
014140: 65 78 74 6C 6E 28 30 29 3B 0D 0A 20 20 69 66 28 extln(0);.. if(
014150: 28 73 74 61 74 75 73 3D 3D 4F 4B 29 26 28 70 66 (status==OK)&(pf
014160: 6C 61 67 3D 3D 59 45 53 29 29 0D 0A 20 20 20 20 lag==YES))..
014170: 73 74 61 74 75 73 3D 64 6F 70 72 6E 74 28 63 75 status=doprnt(cu
014180: 72 6C 6E 2C 20 63 75 72 6C 6E 2C 20 67 6C 6F 62 rln, curln, glob
014190: 29 3B 0D 0A 20 20 72 65 74 75 72 6E 20 73 74 61 );.. return sta
0141A0: 74 75 73 3B 0D 0A 20 20 7D 0D 0A 0D 0A 2F 2A 0D tus;.. }..../*.
0141B0: 0A 2A 2A 20 63 68 6B 75 70 64 74 20 2D 2D 20 77 .** chkupdt -- w
0141C0: 61 72 6E 20 69 66 20 75 70 64 61 74 65 20 6E 6F arn if update no
0141D0: 74 20 77 72 69 74 74 65 6E 20 74 6F 20 64 69 73 t written to dis
0141E0: 6B 0D 0A 2A 2F 0D 0A 63 68 6B 75 70 64 74 28 29 k..*/..chkupdt()
0141F0: 20 7B 0D 0A 20 20 69 66 28 75 70 64 74 66 6C 61 {.. if(updtfla
014200: 20 20 20 20 20 20 69 66 28 63 6B 70 28 6C 69 6E if(ckp(lin
014210: 2C 20 69 2B 31 2C 20 26 70 66 6C 61 67 29 3D 3D , i+1, &pflag)==
014220: 4F 4B 29 20 7B 0D 0A 20 20 20 20 20 20 20 20 69 OK) {.. i
014230: 66 28 64 65 66 61 6C 74 28 63 75 72 6C 6E 2C 20 f(defalt(curln,
014240: 63 75 72 6C 6E 2B 31 29 3D 3D 4F 4B 29 20 7B 0D curln+1)==OK) {.
014250: 0A 20 20 20 20 20 20 20 20 20 20 69 66 28 28 73 . if((s
014260: 74 61 74 75 73 3D 6A 6F 69 6E 28 6C 69 6E 65 31 tatus=join(line1
014270: 2C 20 6C 69 6E 65 32 29 29 3D 3D 4F 4B 29 20 7B , line2))==OK) {
014280: 0D 0A 20 20 20 20 20 20 20 20 20 20 20 20 63 75 .. cu
014290: 72 6C 6E 3D 6C 69 6E 65 32 3B 0D 0A 20 20 20 20 rln=line2;..
0142A0: 20 20 20 20 20 20 20 20 69 66 28 28 73 74 61 74 if((stat
0142B0: 75 73 3D 69 6E 6A 65 63 74 28 74 78 74 29 29 3D us=inject(txt))=
0142C0: 3D 4F 4B 29 0D 0A 20 20 20 20 20 20 20 20 20 20 =OK)..
0142D0: 20 20 20 20 6B 69 6C 6C 28 6C 69 6E 65 31 2C 20 kill(line1,
0142E0: 6C 69 6E 65 32 29 3B 0D 0A 20 20 20 20 20 20 20 line2);..
0142F0: 20 20 20 20 20 20 20 2B 2B 63 75 72 6C 6E 3B 0D ++curln;.
014300: 0A 20 20 20 20 20 20 20 20 20 20 20 20 7D 0D 0A . }..
014310: 20 20 20 20 20 20 20 20 20 20 7D 0D 0A 20 20 20 }..
014320: 20 20 20 20 20 7D 0D 0A 20 20 20 20 20 20 62 72 }.. br
014330: 65 61 6B 3B 0D 0A 20 20 20 20 63 61 73 65 20 4D eak;.. case M
014340: 4F 56 45 3A 0D 0A 20 20 20 20 20 20 2B 2B 69 3B OVE:.. ++i;
014350: 0D 0A 20 20 20 20 20 20 69 66 28 67 65 74 6F 6E .. if(geton
014360: 65 28 26 6C 69 6E 65 33 29 3D 3D 45 4F 46 29 20 e(&line3)==EOF)
014370: 73 74 61 74 75 73 3D 45 52 52 3B 0D 0A 20 20 20 status=ERR;..
014380: 20 20 20 69 66 28 73 74 61 74 75 73 3D 3D 4F 4B if(status==OK
014390: 29 20 7B 0D 0A 20 20 20 20 20 20 20 20 69 66 28 ) {.. if(
0143A0: 63 6B 70 28 6C 69 6E 2C 20 69 2C 20 26 70 66 6C ckp(lin, i, &pfl
0143B0: 61 67 29 3D 3D 4F 4B 29 20 7B 0D 0A 20 20 20 20 ag)==OK) {..
0143C0: 20 20 20 20 20 20 69 66 28 64 65 66 61 6C 74 28 if(defalt(
0143D0: 63 75 72 6C 6E 2C 20 63 75 72 6C 6E 29 3D 3D 4F curln, curln)==O
0143E0: 4B 29 20 73 74 61 74 75 73 3D 6D 6F 76 65 28 6C K) status=move(l
0143F0: 69 6E 65 33 29 3B 0D 0A 20 20 20 20 20 20 20 20 ine3);..
014400: 54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 00 00 00 Track-Info......
014410: 11 00 01 00 02 09 52 E5 11 00 41 02 00 00 00 02 ......R...A.....
014420: 11 00 46 02 00 00 00 02 11 00 42 02 00 00 00 02 ..F.......B.....
014430: 11 00 47 02 00 00 00 02 11 00 43 02 00 00 00 02 ..G.......C.....
014440: 11 00 48 02 00 00 00 02 11 00 44 02 00 00 00 02 ..H.......D.....
014450: 11 00 49 02 00 00 00 02 11 00 45 02 00 00 00 02 ..I.......E.....
014460: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
014470: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
014480: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
014490: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0144A0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0144B0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0144C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0144D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0144E0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0144F0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
014500: 67 29 20 7B 0D 0A 20 20 20 20 66 70 75 74 73 28 g) {.. fputs(
014510: 22 64 69 64 6E 27 74 20 77 72 69 74 65 20 74 6F "didn't write to
014520: 20 64 69 73 6B 21 5C 6E 22 2C 20 73 74 64 65 72 disk!\n", stder
014530: 72 29 3B 0D 0A 20 20 20 20 75 70 64 74 66 6C 61 r);.. updtfla
014540: 67 3D 4E 4F 3B 0D 0A 20 20 20 20 72 65 74 75 72 g=NO;.. retur
014550: 6E 20 45 52 52 3B 0D 0A 20 20 20 20 7D 0D 0A 20 n ERR;.. }..
014560: 20 72 65 74 75 72 6E 20 4F 4B 3B 0D 0A 20 20 7D return OK;.. }
014570: 0D 0A 0D 0A 2F 2A 0D 0A 2A 2A 20 63 74 6F 69 20 ..../*..** ctoi
014580: 2D 2D 20 63 6F 6E 76 65 72 74 20 73 74 72 69 6E -- convert strin
014590: 67 20 61 74 20 69 6E 5B 2A 69 5D 20 74 6F 20 69 g at in[*i] to i
0145A0: 6E 74 65 67 65 72 2C 20 62 75 6D 70 20 2A 69 0D nteger, bump *i.
0145B0: 0A 2A 2F 0D 0A 63 74 6F 69 28 69 6E 2C 20 69 29 .*/..ctoi(in, i)
0145C0: 20 63 68 61 72 20 69 6E 5B 5D 3B 20 69 6E 74 20 char in[]; int
0145D0: 2A 69 3B 20 7B 0D 0A 20 20 69 6E 74 20 64 64 2C *i; {.. int dd,
0145E0: 20 6E 75 6D 3B 0D 0A 20 20 63 68 61 72 20 2A 64 num;.. char *d
0145F0: 69 67 69 74 73 3B 0D 0A 20 20 64 69 67 69 74 73 igits;.. digits
014600: 3D 22 30 31 32 33 34 35 36 37 38 39 22 3B 0D 0A ="0123456789";..
014610: 20 20 77 68 69 6C 65 28 28 69 6E 5B 2A 69 5D 3D while((in[*i]=
014620: 3D 42 4C 41 4E 4B 29 7C 28 69 6E 5B 2A 69 5D 3D =BLANK)|(in[*i]=
014630: 3D 54 41 42 29 29 20 2A 69 20 3D 20 2A 69 20 2B =TAB)) *i = *i +
014640: 20 31 3B 0D 0A 20 20 6E 75 6D 3D 30 3B 0D 0A 20 1;.. num=0;..
014650: 20 77 68 69 6C 65 28 69 6E 5B 2A 69 5D 21 3D 4E while(in[*i]!=N
014660: 55 4C 4C 29 20 7B 0D 0A 20 20 20 20 64 64 3D 69 ULL) {.. dd=i
014670: 6E 64 65 78 28 64 69 67 69 74 73 2C 20 69 6E 5B ndex(digits, in[
014680: 2A 69 5D 29 3B 0D 0A 20 20 20 20 69 66 28 64 64 *i]);.. if(dd
014690: 20 3C 20 30 29 20 62 72 65 61 6B 3B 0D 0A 20 20 < 0) break;..
0146A0: 20 20 6E 75 6D 20 3D 20 31 30 2A 6E 75 6D 20 2B num = 10*num +
0146B0: 20 64 64 3B 0D 0A 20 20 20 20 2A 69 20 3D 20 2A dd;.. *i = *
0146C0: 69 20 2B 20 31 3B 0D 0A 20 20 20 20 7D 0D 0A 20 i + 1;.. }..
0146D0: 20 72 65 74 75 72 6E 20 6E 75 6D 3B 0D 0A 20 20 return num;..
0146E0: 7D 0D 0A 0D 0A 2F 2A 0D 0A 2A 2A 20 73 6B 69 70 }..../*..** skip
0146F0: 62 6C 20 2D 2D 20 73 6B 69 70 20 62 6C 61 6E 6B bl -- skip blank
014700: 65 64 74 32 2E 63 22 0D 0A 23 69 6E 63 6C 75 64 edt2.c"..#includ
014710: 65 20 22 73 61 6D 65 2E 63 22 0D 0A 23 69 6E 63 e "same.c"..#inc
014720: 6C 75 64 65 20 22 70 61 74 2E 63 22 0D 0A 23 69 lude "pat.c"..#i
014730: 6E 63 6C 75 64 65 20 22 62 75 66 2E 63 22 0D 0A nclude "buf.c"..
014740: 23 69 6E 63 6C 75 64 65 20 22 65 72 72 6F 72 2E #include "error.
014750: 63 22 0D 0A 23 69 6E 63 6C 75 64 65 20 22 69 6E c"..#include "in
014760: 64 65 78 2E 63 22 0D 0A 23 69 6E 63 6C 75 64 65 dex.c"..#include
014770: 20 22 6D 61 6B 73 75 62 2E 63 22 0D 0A 23 69 6E "maksub.c"..#in
014780: 63 6C 75 64 65 20 22 63 61 74 73 75 62 2E 63 22 clude "catsub.c"
014790: 0D 0A 23 69 6E 63 6C 75 64 65 20 22 73 63 6F 70 ..#include "scop
0147A0: 79 2E 63 22 0D 0A 23 69 6E 63 6C 75 64 65 20 22 y.c"..#include "
0147B0: 74 72 69 6D 2E 63 22 0D 0A 0D 0A 1A 1A 1A 1A 1A trim.c".........
0147C0: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
0147D0: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
0147E0: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
0147F0: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
014800: 0A 20 20 20 20 20 20 67 65 74 6E 75 6D 28 26 70 . getnum(&p
014810: 6E 75 6D 29 3B 0D 0A 20 20 20 20 20 20 2A 6E 75 num);.. *nu
014820: 6D 20 3D 20 2A 6E 75 6D 20 2B 20 6D 75 6C 2A 70 m = *num + mul*p
014830: 6E 75 6D 3B 0D 0A 20 20 20 20 20 20 69 66 28 73 num;.. if(s
014840: 74 61 74 75 73 3D 3D 45 4F 46 29 20 73 74 61 74 tatus==EOF) stat
014850: 75 73 3D 45 52 52 3B 0D 0A 20 20 20 20 20 20 69 us=ERR;.. i
014860: 66 28 73 74 61 74 75 73 21 3D 4F 4B 29 20 62 72 f(status!=OK) br
014870: 65 61 6B 3B 0D 0A 20 20 20 20 20 20 7D 0D 0A 20 eak;.. }..
014880: 20 69 66 28 28 2A 6E 75 6D 3C 30 29 7C 28 2A 6E if((*num<0)|(*n
014890: 75 6D 3E 6C 61 73 74 6C 6E 29 29 20 72 65 74 75 um>lastln)) retu
0148A0: 72 6E 20 28 73 74 61 74 75 73 3D 45 52 52 29 3B rn (status=ERR);
0148B0: 0D 0A 20 20 69 66 28 69 3C 3D 69 73 74 61 72 74 .. if(i<=istart
0148C0: 29 20 72 65 74 75 72 6E 20 28 73 74 61 74 75 73 ) return (status
0148D0: 3D 45 4F 46 29 3B 0D 0A 20 20 72 65 74 75 72 6E =EOF);.. return
0148E0: 20 28 73 74 61 74 75 73 3D 4F 4B 29 3B 0D 0A 20 (status=OK);..
0148F0: 20 7D 0D 0A 0D 0A 23 69 6E 63 6C 75 64 65 20 22 }....#include "
014900: 73 20 61 6E 64 20 74 61 62 73 0D 0A 2A 2F 0D 0A s and tabs..*/..
014910: 73 6B 69 70 62 6C 28 6C 69 6E 2C 20 69 29 20 63 skipbl(lin, i) c
014920: 68 61 72 20 6C 69 6E 5B 5D 3B 20 69 6E 74 20 2A har lin[]; int *
014930: 69 3B 20 7B 0D 0A 20 20 77 68 69 6C 65 28 28 6C i; {.. while((l
014940: 69 6E 5B 2A 69 5D 3D 3D 27 20 27 29 7C 28 6C 69 in[*i]==' ')|(li
014950: 6E 5B 2A 69 5D 3D 3D 27 5C 74 27 29 29 20 2A 69 n[*i]=='\t')) *i
014960: 20 3D 20 2A 69 20 2B 20 31 3B 0D 0A 20 20 7D 0D = *i + 1;.. }.
014970: 0A 0D 0A 2F 2A 0D 0A 2A 2A 20 6E 65 78 74 6C 6E .../*..** nextln
014980: 20 2D 2D 20 67 65 74 20 6C 69 6E 65 20 61 66 74 -- get line aft
014990: 65 72 20 6C 6E 0D 0A 2A 2F 0D 0A 6E 65 78 74 6C er ln..*/..nextl
0149A0: 6E 28 6C 6E 29 20 69 6E 74 20 6C 6E 3B 20 7B 0D n(ln) int ln; {.
0149B0: 0A 20 20 69 66 28 2B 2B 6C 6E 20 3E 20 6C 61 73 . if(++ln > las
0149C0: 74 6C 6E 29 20 72 65 74 75 72 6E 20 30 3B 0D 0A tln) return 0;..
0149D0: 20 20 72 65 74 75 72 6E 20 6C 6E 3B 0D 0A 20 20 return ln;..
0149E0: 7D 0D 0A 0D 0A 2F 2A 0D 0A 2A 2A 20 70 72 65 76 }..../*..** prev
0149F0: 6C 6E 20 2D 2D 20 67 65 74 20 6C 69 6E 65 20 62 ln -- get line b
014A00: 65 66 6F 72 65 20 6C 6E 0D 0A 2A 2F 0D 0A 70 72 efore ln..*/..pr
014A10: 65 76 6C 6E 28 6C 6E 29 20 69 6E 74 20 6C 6E 3B evln(ln) int ln;
014A20: 20 7B 0D 0A 20 20 69 66 28 2D 2D 6C 6E 20 3C 20 {.. if(--ln <
014A30: 30 29 20 72 65 74 75 72 6E 20 6C 61 73 74 6C 6E 0) return lastln
014A40: 3B 0D 0A 20 20 72 65 74 75 72 6E 20 6C 6E 3B 0D ;.. return ln;.
014A50: 0A 20 20 7D 0D 0A 0D 0A 2F 2A 0D 0A 2A 2A 20 6A . }..../*..** j
014A60: 6F 69 6E 20 2D 2D 20 70 75 74 20 6C 69 6E 65 31 oin -- put line1
014A70: 20 74 68 72 75 20 6C 69 6E 65 32 20 74 6F 67 65 thru line2 toge
014A80: 74 68 65 72 20 69 6E 74 6F 20 74 78 74 0D 0A 2A ther into txt..*
014A90: 2F 0D 0A 6A 6F 69 6E 28 6C 6E 31 2C 20 6C 6E 32 /..join(ln1, ln2
014AA0: 29 20 69 6E 74 20 6C 6E 31 2C 20 6C 6E 32 3B 20 ) int ln1, ln2;
014AB0: 7B 0D 0A 20 20 69 6E 74 20 69 2C 20 6A 3B 0D 0A {.. int i, j;..
014AC0: 20 20 6A 3D 30 3B 0D 0A 20 20 77 68 69 6C 65 28 j=0;.. while(
014AD0: 6C 6E 31 20 3C 3D 20 6C 6E 32 29 20 7B 0D 0A 20 ln1 <= ln2) {..
014AE0: 20 20 20 69 3D 67 65 74 69 6E 64 28 6C 6E 31 2B i=getind(ln1+
014AF0: 2B 29 2B 54 45 58 54 3B 0D 0A 20 20 20 20 77 68 +)+TEXT;.. wh
014B00: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
014B10: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
014B20: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
014B30: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
014B40: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
014B50: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
014B60: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
014B70: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
014B80: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
014B90: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
014BA0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
014BB0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
014BC0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
014BD0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
014BE0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
014BF0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
014C00: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
014C10: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
014C20: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
014C30: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
014C40: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
014C50: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
014C60: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
014C70: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
014C80: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
014C90: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
014CA0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
014CB0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
014CC0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
014CD0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
014CE0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
014CF0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
014D00: 69 6C 65 28 74 78 74 5B 6A 2B 2B 5D 3D 62 75 66 ile(txt[j++]=buf
014D10: 5B 69 2B 2B 5D 29 0D 0A 20 20 20 20 20 20 69 66 [i++]).. if
014D20: 28 6A 20 3E 3D 20 4D 41 58 4C 49 4E 45 29 20 72 (j >= MAXLINE) r
014D30: 65 74 75 72 6E 20 45 52 52 3B 0D 0A 20 20 20 20 eturn ERR;..
014D40: 2D 2D 6A 3B 0D 0A 20 20 20 20 7D 0D 0A 20 20 72 --j;.. }.. r
014D50: 65 74 75 72 6E 20 4F 4B 3B 0D 0A 20 20 7D 0D 0A eturn OK;.. }..
014D60: 0D 0A 2F 2A 0D 0A 2A 2A 20 64 6F 72 65 61 64 20 ../*..** doread
014D70: 2D 2D 20 72 65 61 64 20 22 66 69 6C 65 22 20 61 -- read "file" a
014D80: 66 74 65 72 20 22 6C 69 6E 65 22 0D 0A 2A 2F 0D fter "line"..*/.
014D90: 0A 64 6F 72 65 61 64 28 6C 69 6E 65 2C 20 66 69 .doread(line, fi
014DA0: 6C 65 29 20 69 6E 74 20 6C 69 6E 65 3B 20 63 68 le) int line; ch
014DB0: 61 72 20 66 69 6C 65 5B 5D 3B 20 7B 0D 0A 20 20 ar file[]; {..
014DC0: 69 6E 74 20 66 64 2C 20 73 74 61 74 3B 0D 0A 20 int fd, stat;..
014DD0: 20 69 66 28 28 66 64 3D 66 6F 70 65 6E 28 66 69 if((fd=fopen(fi
014DE0: 6C 65 2C 20 22 72 22 29 29 3D 3D 4E 55 4C 4C 29 le, "r"))==NULL)
014DF0: 20 7B 0D 0A 20 20 20 20 66 70 75 74 73 28 22 6F {.. fputs("o
014E00: 70 65 6E 20 22 2C 20 73 74 64 65 72 72 29 3B 0D pen ", stderr);.
014E10: 0A 20 20 20 20 72 65 74 75 72 6E 20 45 52 52 3B . return ERR;
014E20: 0D 0A 20 20 20 20 7D 0D 0A 20 20 63 75 72 6C 6E .. }.. curln
014E30: 3D 6C 69 6E 65 3B 0D 0A 20 20 73 74 61 74 3D 69 =line;.. stat=i
014E40: 6E 70 75 74 28 66 64 29 3B 0D 0A 20 20 66 63 6C nput(fd);.. fcl
014E50: 6F 73 65 28 66 64 29 3B 0D 0A 20 20 72 65 74 75 ose(fd);.. retu
014E60: 72 6E 20 73 74 61 74 3B 0D 0A 20 20 7D 0D 0A 0D rn stat;.. }...
014E70: 0A 2F 2A 0D 0A 2A 2A 20 67 65 74 6C 73 74 20 2D ./*..** getlst -
014E80: 2D 20 63 6F 6C 6C 65 63 74 20 6C 69 6E 65 20 6E - collect line n
014E90: 75 6D 62 65 72 73 20 28 69 66 20 61 6E 79 29 20 umbers (if any)
014EA0: 61 74 20 6C 69 6E 5B 69 5D 2C 20 62 75 6D 70 20 at lin[i], bump
014EB0: 69 0D 0A 2A 2F 0D 0A 67 65 74 6C 73 74 28 29 20 i..*/..getlst()
014EC0: 7B 0D 0A 20 20 69 6E 74 20 6E 75 6D 3B 0D 0A 20 {.. int num;..
014ED0: 20 6C 69 6E 65 32 3D 30 3B 0D 0A 20 20 6E 6C 69 line2=0;.. nli
014EE0: 6E 65 73 3D 30 3B 0D 0A 20 20 77 68 69 6C 65 28 nes=0;.. while(
014EF0: 67 65 74 6F 6E 65 28 26 6E 75 6D 29 3D 3D 4F 4B getone(&num)==OK
014F00: 0D 0A 2F 2A 0D 0A 2A 2A 20 65 64 74 32 2E 63 20 ../*..** edt2.c
014F10: 2D 2D 20 65 64 69 74 20 70 61 72 74 20 32 0D 0A -- edit part 2..
014F20: 2A 2F 0D 0A 0D 0A 2F 2A 0D 0A 2A 2A 20 67 65 74 */..../*..** get
014F30: 6E 75 6D 20 2D 2D 20 63 6F 6E 76 65 72 74 20 6F num -- convert o
014F40: 6E 65 20 74 65 72 6D 20 74 6F 20 61 20 6C 69 6E ne term to a lin
014F50: 65 20 6E 75 6D 62 65 72 0D 0A 2A 2F 0D 0A 67 65 e number..*/..ge
014F60: 74 6E 75 6D 28 70 6E 75 6D 29 20 69 6E 74 20 2A tnum(pnum) int *
014F70: 70 6E 75 6D 3B 20 7B 0D 0A 20 20 69 6E 74 20 73 pnum; {.. int s
014F80: 74 61 74 3B 0D 0A 20 20 63 68 61 72 20 2A 64 69 tat;.. char *di
014F90: 67 69 74 73 3B 0D 0A 20 20 64 69 67 69 74 73 3D gits;.. digits=
014FA0: 22 30 31 32 33 34 35 36 37 38 39 22 3B 0D 0A 20 "0123456789";..
014FB0: 20 73 74 61 74 3D 4F 4B 3B 0D 0A 20 20 69 66 28 stat=OK;.. if(
014FC0: 69 6E 64 65 78 28 64 69 67 69 74 73 2C 20 6C 69 index(digits, li
014FD0: 6E 5B 69 5D 29 20 3E 3D 20 30 29 20 7B 0D 0A 20 n[i]) >= 0) {..
014FE0: 20 20 20 2A 70 6E 75 6D 3D 63 74 6F 69 28 6C 69 *pnum=ctoi(li
014FF0: 6E 2C 20 26 69 29 3B 0D 0A 20 20 20 20 2D 2D 69 n, &i);.. --i
015000: 3B 20 20 2F 2A 2A 20 62 61 63 6B 75 70 20 74 68 ; /** backup th
015010: 65 6E 20 62 75 6D 70 20 61 74 20 65 6E 64 20 2A en bump at end *
015020: 2A 2F 0D 0A 20 20 20 20 7D 0D 0A 20 20 65 6C 73 */.. }.. els
015030: 65 20 69 66 28 6C 69 6E 5B 69 5D 3D 3D 43 55 52 e if(lin[i]==CUR
015040: 4C 49 4E 45 29 20 2A 70 6E 75 6D 3D 63 75 72 6C LINE) *pnum=curl
015050: 6E 3B 0D 0A 20 20 65 6C 73 65 20 69 66 28 6C 69 n;.. else if(li
015060: 6E 5B 69 5D 3D 3D 4C 41 53 54 4C 49 4E 45 29 20 n[i]==LASTLINE)
015070: 2A 70 6E 75 6D 3D 6C 61 73 74 6C 6E 3B 0D 0A 20 *pnum=lastln;..
015080: 20 65 6C 73 65 20 69 66 28 28 6C 69 6E 5B 69 5D else if((lin[i]
015090: 3D 3D 53 43 41 4E 29 7C 28 6C 69 6E 5B 69 5D 3D ==SCAN)|(lin[i]=
0150A0: 3D 42 41 43 4B 53 43 41 4E 29 29 20 7B 0D 0A 20 =BACKSCAN)) {..
0150B0: 20 20 20 69 66 28 6F 70 74 70 61 74 28 29 3D 3D if(optpat()==
0150C0: 45 52 52 29 20 73 74 61 74 3D 45 52 52 3B 0D 0A ERR) stat=ERR;..
0150D0: 20 20 20 20 65 6C 73 65 20 69 66 28 6C 69 6E 5B else if(lin[
0150E0: 69 5D 3D 3D 53 43 41 4E 29 20 73 74 61 74 3D 70 i]==SCAN) stat=p
0150F0: 74 73 63 61 6E 28 46 4F 52 57 41 52 44 2C 20 70 tscan(FORWARD, p
015100: 29 20 7B 0D 0A 20 20 20 20 6C 69 6E 65 31 3D 6C ) {.. line1=l
015110: 69 6E 65 32 3B 0D 0A 20 20 20 20 6C 69 6E 65 32 ine2;.. line2
015120: 3D 6E 75 6D 3B 0D 0A 20 20 20 20 2B 2B 6E 6C 69 =num;.. ++nli
015130: 6E 65 73 3B 0D 0A 20 20 20 20 69 66 28 28 6C 69 nes;.. if((li
015140: 6E 5B 69 5D 21 3D 43 4F 4D 4D 41 29 26 28 6C 69 n[i]!=COMMA)&(li
015150: 6E 5B 69 5D 21 3D 53 45 4D 49 43 4F 4C 29 29 20 n[i]!=SEMICOL))
015160: 62 72 65 61 6B 3B 0D 0A 20 20 20 20 69 66 28 6C break;.. if(l
015170: 69 6E 5B 69 5D 3D 3D 53 45 4D 49 43 4F 4C 29 20 in[i]==SEMICOL)
015180: 63 75 72 6C 6E 3D 6E 75 6D 3B 0D 0A 20 20 20 20 curln=num;..
015190: 2B 2B 69 3B 0D 0A 20 20 20 20 7D 0D 0A 20 20 69 ++i;.. }.. i
0151A0: 66 28 6E 6C 69 6E 65 73 3E 32 29 20 6E 6C 69 6E f(nlines>2) nlin
0151B0: 65 73 3D 32 3B 0D 0A 20 20 69 66 28 6E 6C 69 6E es=2;.. if(nlin
0151C0: 65 73 3D 3D 30 29 20 6C 69 6E 65 32 3D 63 75 72 es==0) line2=cur
0151D0: 6C 6E 3B 0D 0A 20 20 69 66 28 6E 6C 69 6E 65 73 ln;.. if(nlines
0151E0: 3C 3D 31 29 20 6C 69 6E 65 31 3D 6C 69 6E 65 32 <=1) line1=line2
0151F0: 3B 0D 0A 20 20 69 66 28 73 74 61 74 75 73 21 3D ;.. if(status!=
015200: 45 52 52 29 20 73 74 61 74 75 73 3D 4F 4B 3B 0D ERR) status=OK;.
015210: 0A 20 20 72 65 74 75 72 6E 20 73 74 61 74 75 73 . return status
015220: 3B 0D 0A 20 20 7D 0D 0A 0D 0A 2F 2A 0D 0A 2A 2A ;.. }..../*..**
015230: 20 67 65 74 6F 6E 65 20 2D 2D 20 65 76 61 6C 75 getone -- evalu
015240: 61 74 65 20 6F 6E 65 20 6C 69 6E 65 20 6E 75 6D ate one line num
015250: 62 65 72 20 65 78 70 72 65 73 73 69 6F 6E 0D 0A ber expression..
015260: 2A 2F 0D 0A 67 65 74 6F 6E 65 28 6E 75 6D 29 20 */..getone(num)
015270: 69 6E 74 20 2A 6E 75 6D 3B 20 7B 0D 0A 20 20 69 int *num; {.. i
015280: 6E 74 20 69 73 74 61 72 74 2C 20 6D 75 6C 2C 20 nt istart, mul,
015290: 70 6E 75 6D 3B 0D 0A 20 20 73 6B 69 70 62 6C 28 pnum;.. skipbl(
0152A0: 6C 69 6E 2C 20 26 69 29 3B 0D 0A 20 20 69 73 74 lin, &i);.. ist
0152B0: 61 72 74 3D 69 3B 0D 0A 20 20 69 66 28 28 6C 69 art=i;.. if((li
0152C0: 6E 5B 69 5D 3D 3D 50 4C 55 53 29 7C 28 6C 69 6E n[i]==PLUS)|(lin
0152D0: 5B 69 5D 3D 3D 4D 49 4E 55 53 29 29 20 2A 6E 75 [i]==MINUS)) *nu
0152E0: 6D 3D 63 75 72 6C 6E 3B 0D 0A 20 20 65 6C 73 65 m=curln;.. else
0152F0: 20 2A 6E 75 6D 3D 30 3B 0D 0A 20 20 69 66 28 67 *num=0;.. if(g
015300: 6E 75 6D 29 3B 0D 0A 20 20 20 20 65 6C 73 65 20 num);.. else
015310: 73 74 61 74 3D 70 74 73 63 61 6E 28 42 41 43 4B stat=ptscan(BACK
015320: 57 41 52 44 2C 20 70 6E 75 6D 29 3B 0D 0A 20 20 WARD, pnum);..
015330: 20 20 7D 0D 0A 20 20 65 6C 73 65 20 69 66 28 28 }.. else if((
015340: 6C 69 6E 5B 69 5D 3D 3D 50 4C 55 53 29 7C 28 6C lin[i]==PLUS)|(l
015350: 69 6E 5B 69 5D 3D 3D 4D 49 4E 55 53 29 29 20 2D in[i]==MINUS)) -
015360: 2D 69 3B 0D 0A 20 20 65 6C 73 65 20 73 74 61 74 -i;.. else stat
015370: 3D 45 4F 46 3B 0D 0A 20 20 69 66 28 73 74 61 74 =EOF;.. if(stat
015380: 3D 3D 4F 4B 29 20 2B 2B 69 3B 0D 0A 20 20 72 65 ==OK) ++i;.. re
015390: 74 75 72 6E 20 28 73 74 61 74 75 73 3D 73 74 61 turn (status=sta
0153A0: 74 29 3B 0D 0A 20 20 7D 0D 0A 0D 0A 2F 2A 0D 0A t);.. }..../*..
0153B0: 2A 2A 20 6F 70 74 70 61 74 20 2D 2D 20 6D 61 6B ** optpat -- mak
0153C0: 65 20 70 61 74 74 65 72 6E 20 69 66 20 73 70 65 e pattern if spe
0153D0: 63 69 66 69 65 64 20 61 74 20 6C 69 6E 5B 69 5D cified at lin[i]
0153E0: 0D 0A 2A 2F 0D 0A 6F 70 74 70 61 74 28 29 20 7B ..*/..optpat() {
0153F0: 0D 0A 20 20 69 66 28 6C 69 6E 5B 69 5D 3D 3D 4E .. if(lin[i]==N
015400: 55 4C 4C 29 20 69 20 3D 20 45 52 52 3B 0D 0A 20 ULL) i = ERR;..
015410: 20 65 6C 73 65 20 69 66 28 6C 69 6E 5B 69 2B 31 else if(lin[i+1
015420: 5D 3D 3D 4E 55 4C 4C 29 20 69 20 3D 20 45 52 52 ]==NULL) i = ERR
015430: 3B 0D 0A 20 20 65 6C 73 65 20 69 66 28 6C 69 6E ;.. else if(lin
015440: 5B 69 2B 31 5D 3D 3D 6C 69 6E 5B 69 5D 29 20 2B [i+1]==lin[i]) +
015450: 2B 69 3B 0D 0A 20 20 65 6C 73 65 20 69 20 3D 20 +i;.. else i =
015460: 6D 61 6B 70 61 74 28 6C 69 6E 2C 20 69 2B 31 2C makpat(lin, i+1,
015470: 20 6C 69 6E 5B 69 5D 2C 20 70 61 74 29 3B 0D 0A lin[i], pat);..
015480: 20 20 69 66 28 70 61 74 5B 30 5D 3D 3D 4E 55 4C if(pat[0]==NUL
015490: 4C 29 20 69 20 3D 20 45 52 52 3B 0D 0A 20 20 69 L) i = ERR;.. i
0154A0: 66 28 69 3D 3D 45 52 52 29 20 7B 0D 0A 20 20 20 f(i==ERR) {..
0154B0: 20 70 61 74 5B 30 5D 3D 4E 55 4C 4C 3B 0D 0A 20 pat[0]=NULL;..
0154C0: 20 20 20 72 65 74 75 72 6E 20 45 52 52 3B 0D 0A return ERR;..
0154D0: 20 20 20 20 7D 0D 0A 20 20 72 65 74 75 72 6E 20 }.. return
0154E0: 4F 4B 3B 0D 0A 20 20 7D 0D 0A 0D 0A 2F 2A 0D 0A OK;.. }..../*..
0154F0: 2A 2A 20 70 74 73 63 61 6E 20 2D 2D 20 73 63 61 ** ptscan -- sca
015500: 65 74 6E 75 6D 28 6E 75 6D 29 3D 3D 4F 4B 29 0D etnum(num)==OK).
015510: 0A 20 20 20 20 77 68 69 6C 65 28 59 45 53 29 20 . while(YES)
015520: 7B 0D 0A 20 20 20 20 20 20 73 6B 69 70 62 6C 28 {.. skipbl(
015530: 6C 69 6E 2C 20 26 69 29 3B 0D 0A 20 20 20 20 20 lin, &i);..
015540: 20 69 66 28 28 6C 69 6E 5B 69 5D 21 3D 50 4C 55 if((lin[i]!=PLU
015550: 53 29 26 28 6C 69 6E 5B 69 5D 21 3D 4D 49 4E 55 S)&(lin[i]!=MINU
015560: 53 29 29 20 7B 0D 0A 20 20 20 20 20 20 20 20 73 S)) {.. s
015570: 74 61 74 75 73 3D 45 4F 46 3B 0D 0A 20 20 20 20 tatus=EOF;..
015580: 20 20 20 20 62 72 65 61 6B 3B 0D 0A 20 20 20 20 break;..
015590: 20 20 20 20 7D 0D 0A 20 20 20 20 20 20 69 66 28 }.. if(
0155A0: 6C 69 6E 5B 69 5D 3D 3D 50 4C 55 53 29 20 6D 75 lin[i]==PLUS) mu
0155B0: 6C 20 3D 20 31 3B 0D 0A 20 20 20 20 20 20 65 6C l = 1;.. el
0155C0: 73 65 20 6D 75 6C 20 3D 20 2D 31 3B 0D 0A 20 20 se mul = -1;..
0155D0: 20 20 20 20 2B 2B 69 3B 0D 0A 20 20 20 20 20 20 ++i;..
0155E0: 73 6B 69 70 62 6C 28 6C 69 6E 2C 20 26 69 29 3B skipbl(lin, &i);
0155F0: 0D 0A 20 20 20 20 20 20 70 6E 75 6D 3D 31 3B 0D .. pnum=1;.
015600: 0A 20 20 20 20 20 20 67 65 74 6E 75 6D 28 26 70 . getnum(&p
015610: 6E 75 6D 29 3B 0D 0A 20 20 20 20 20 20 2A 6E 75 num);.. *nu
015620: 6D 20 3D 20 2A 6E 75 6D 20 2B 20 6D 75 6C 2A 70 m = *num + mul*p
015630: 6E 75 6D 3B 0D 0A 20 20 20 20 20 20 69 66 28 73 num;.. if(s
015640: 74 61 74 75 73 3D 3D 45 4F 46 29 20 73 74 61 74 tatus==EOF) stat
015650: 75 73 3D 45 52 52 3B 0D 0A 20 20 20 20 20 20 69 us=ERR;.. i
015660: 66 28 73 74 61 74 75 73 21 3D 4F 4B 29 20 62 72 f(status!=OK) br
015670: 65 61 6B 3B 0D 0A 20 20 20 20 20 20 7D 0D 0A 20 eak;.. }..
015680: 20 69 66 28 28 2A 6E 75 6D 3C 30 29 7C 28 2A 6E if((*num<0)|(*n
015690: 75 6D 3E 6C 61 73 74 6C 6E 29 29 20 72 65 74 75 um>lastln)) retu
0156A0: 72 6E 20 28 73 74 61 74 75 73 3D 45 52 52 29 3B rn (status=ERR);
0156B0: 0D 0A 20 20 69 66 28 69 3C 3D 69 73 74 61 72 74 .. if(i<=istart
0156C0: 29 20 72 65 74 75 72 6E 20 28 73 74 61 74 75 73 ) return (status
0156D0: 3D 45 4F 46 29 3B 0D 0A 20 20 72 65 74 75 72 6E =EOF);.. return
0156E0: 20 28 73 74 61 74 75 73 3D 4F 4B 29 3B 0D 0A 20 (status=OK);..
0156F0: 20 7D 0D 0A 0D 0A 23 69 6E 63 6C 75 64 65 20 22 }....#include "
015700: 54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 00 00 00 Track-Info......
015710: 12 00 01 00 02 09 52 E5 12 00 41 02 00 00 00 02 ......R...A.....
015720: 12 00 46 02 00 00 00 02 12 00 42 02 00 00 00 02 ..F.......B.....
015730: 12 00 47 02 00 00 00 02 12 00 43 02 00 00 00 02 ..G.......C.....
015740: 12 00 48 02 00 00 00 02 12 00 44 02 00 00 00 02 ..H.......D.....
015750: 12 00 49 02 00 00 00 02 12 00 45 02 00 00 00 02 ..I.......E.....
015760: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
015770: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
015780: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
015790: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0157A0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0157B0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0157C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0157D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0157E0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0157F0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
015800: 6E 20 66 6F 72 20 6E 65 78 74 20 6F 63 63 75 72 n for next occur
015810: 72 65 6E 63 65 20 6F 66 20 70 61 74 74 65 72 6E rence of pattern
015820: 0D 0A 2A 2F 0D 0A 70 74 73 63 61 6E 28 77 61 79 ..*/..ptscan(way
015830: 2C 20 6E 75 6D 29 20 69 6E 74 20 77 61 79 2C 20 , num) int way,
015840: 2A 6E 75 6D 3B 20 7B 0D 0A 20 20 2A 6E 75 6D 3D *num; {.. *num=
015850: 63 75 72 6C 6E 3B 0D 0A 20 20 77 68 69 6C 65 28 curln;.. while(
015860: 59 45 53 29 20 7B 0D 0A 20 20 20 20 69 66 28 70 YES) {.. if(p
015870: 6F 6C 6C 28 59 45 53 29 3D 3D 45 53 43 29 20 72 oll(YES)==ESC) r
015880: 65 74 75 72 6E 20 28 45 52 52 29 3B 0D 0A 20 20 eturn (ERR);..
015890: 20 20 69 66 28 77 61 79 3D 3D 46 4F 52 57 41 52 if(way==FORWAR
0158A0: 44 29 20 2A 6E 75 6D 3D 6E 65 78 74 6C 6E 28 2A D) *num=nextln(*
0158B0: 6E 75 6D 29 3B 0D 0A 20 20 20 20 65 6C 73 65 20 num);.. else
0158C0: 2A 6E 75 6D 3D 70 72 65 76 6C 6E 28 2A 6E 75 6D *num=prevln(*num
0158D0: 29 3B 0D 0A 20 20 20 20 69 66 28 6D 61 74 63 68 );.. if(match
0158E0: 28 62 75 66 2B 67 65 74 69 6E 64 28 2A 6E 75 6D (buf+getind(*num
0158F0: 29 2B 54 45 58 54 2C 20 70 61 74 29 3D 3D 59 45 )+TEXT, pat)==YE
015900: 53 29 20 72 65 74 75 72 6E 20 4F 4B 3B 0D 0A 20 S) return OK;..
015910: 20 20 20 69 66 28 2A 6E 75 6D 3D 3D 63 75 72 6C if(*num==curl
015920: 6E 29 20 62 72 65 61 6B 3B 0D 0A 20 20 20 20 7D n) break;.. }
015930: 0D 0A 20 20 72 65 74 75 72 6E 20 45 52 52 3B 0D .. return ERR;.
015940: 0A 20 20 7D 0D 0A 0D 0A 2F 2A 0D 0A 2A 2A 20 63 . }..../*..** c
015950: 6B 67 6C 6F 62 20 2D 2D 20 69 66 20 67 6C 6F 62 kglob -- if glob
015960: 61 6C 20 70 72 65 66 69 78 2C 20 6D 61 72 6B 20 al prefix, mark
015970: 6C 69 6E 65 73 20 74 6F 20 62 65 20 61 66 66 65 lines to be affe
015980: 63 74 65 64 0D 0A 2A 2F 0D 0A 63 6B 67 6C 6F 62 cted..*/..ckglob
015990: 28 29 20 7B 0D 0A 20 20 69 6E 74 20 67 66 6C 61 () {.. int gfla
0159A0: 67 2C 20 6B 2C 20 6C 69 6E 65 3B 0D 0A 20 20 69 g, k, line;.. i
0159B0: 66 28 28 73 61 6D 65 28 6C 69 6E 5B 69 5D 2C 20 f((same(lin[i],
0159C0: 47 4C 4F 42 41 4C 29 3D 3D 4E 4F 29 26 28 73 61 GLOBAL)==NO)&(sa
0159D0: 6D 65 28 6C 69 6E 5B 69 5D 2C 20 45 58 43 4C 55 me(lin[i], EXCLU
0159E0: 44 45 29 3D 3D 4E 4F 29 29 0D 0A 20 20 20 20 72 DE)==NO)).. r
0159F0: 65 74 75 72 6E 20 28 73 74 61 74 75 73 3D 45 4F eturn (status=EO
015A00: 2F 2A 2A 20 6C 65 61 76 65 73 20 67 6F 74 6C 69 /** leaves gotli
015A10: 6E 65 20 26 20 67 6F 74 69 6E 64 20 62 65 6C 6F ne & gotind belo
015A20: 77 20 61 66 66 65 63 74 65 64 20 61 72 65 61 20 w affected area
015A30: 2A 2A 2F 0D 0A 20 20 6C 61 73 74 6C 6E 3D 6C 61 **/.. lastln=la
015A40: 73 74 6C 6E 2D 28 74 6F 2D 66 72 6F 6D 2B 31 29 stln-(to-from+1)
015A50: 3B 0D 0A 20 20 63 75 72 6C 6E 3D 70 72 65 76 6C ;.. curln=prevl
015A60: 6E 28 66 72 6F 6D 29 3B 0D 0A 20 20 72 65 6C 69 n(from);.. reli
015A70: 6E 6B 28 6B 31 2C 20 6B 32 2C 20 6B 31 2C 20 6B nk(k1, k2, k1, k
015A80: 32 29 3B 0D 0A 20 20 72 65 74 75 72 6E 20 28 73 2);.. return (s
015A90: 74 61 74 75 73 3D 4F 4B 29 3B 0D 0A 20 20 7D 0D tatus=OK);.. }.
015AA0: 0A 0D 0A 2F 2A 0D 0A 2A 2A 20 63 6B 70 20 2D 2D .../*..** ckp --
015AB0: 20 63 68 65 63 6B 20 66 6F 72 20 22 70 22 20 61 check for "p" a
015AC0: 66 74 65 72 20 63 6F 6D 6D 61 6E 64 0D 0A 2A 2F fter command..*/
015AD0: 0D 0A 63 6B 70 28 6C 69 6E 2C 20 69 2C 20 70 66 ..ckp(lin, i, pf
015AE0: 6C 61 67 29 20 63 68 61 72 20 6C 69 6E 5B 5D 3B lag) char lin[];
015AF0: 20 69 6E 74 20 69 2C 20 2A 70 66 6C 61 67 3B 20 int i, *pflag;
015B00: 7B 0D 0A 20 20 69 66 28 73 61 6D 65 28 6C 69 6E {.. if(same(lin
015B10: 5B 69 5D 2C 20 50 52 49 4E 54 29 29 20 7B 0D 0A [i], PRINT)) {..
015B20: 20 20 20 20 2A 70 66 6C 61 67 3D 59 45 53 3B 0D *pflag=YES;.
015B30: 0A 20 20 20 20 2B 2B 69 3B 0D 0A 20 20 20 20 7D . ++i;.. }
015B40: 0D 0A 20 20 65 6C 73 65 20 2A 70 66 6C 61 67 3D .. else *pflag=
015B50: 4E 4F 3B 0D 0A 20 20 69 66 28 76 69 65 77 29 20 NO;.. if(view)
015B60: 2A 70 66 6C 61 67 3D 59 45 53 3B 0D 0A 20 20 69 *pflag=YES;.. i
015B70: 66 28 6C 69 6E 5B 69 5D 3D 3D 4E 55 4C 4C 29 20 f(lin[i]==NULL)
015B80: 73 74 61 74 75 73 3D 4F 4B 3B 0D 0A 20 20 65 6C status=OK;.. el
015B90: 73 65 20 73 74 61 74 75 73 3D 45 52 52 3B 0D 0A se status=ERR;..
015BA0: 20 20 72 65 74 75 72 6E 20 73 74 61 74 75 73 3B return status;
015BB0: 0D 0A 20 20 7D 0D 0A 0D 0A 2F 2A 0D 0A 2A 2A 20 .. }..../*..**
015BC0: 6D 6F 76 65 20 2D 2D 20 6D 6F 76 65 20 6C 69 6E move -- move lin
015BD0: 65 31 20 74 68 72 6F 75 67 68 20 6C 69 6E 65 32 e1 through line2
015BE0: 20 61 66 74 65 72 20 6C 69 6E 65 33 0D 0A 2A 2F after line3..*/
015BF0: 0D 0A 6D 6F 76 65 28 6C 69 6E 65 33 29 20 69 6E ..move(line3) in
015C00: 46 29 3B 0D 0A 20 20 69 66 28 73 61 6D 65 28 6C F);.. if(same(l
015C10: 69 6E 5B 69 5D 2C 20 47 4C 4F 42 41 4C 29 29 20 in[i], GLOBAL))
015C20: 67 66 6C 61 67 3D 59 45 53 3B 0D 0A 20 20 65 6C gflag=YES;.. el
015C30: 73 65 20 67 66 6C 61 67 3D 4E 4F 3B 0D 0A 20 20 se gflag=NO;..
015C40: 2B 2B 69 3B 0D 0A 20 20 69 66 28 28 6F 70 74 70 ++i;.. if((optp
015C50: 61 74 28 29 3D 3D 45 52 52 29 7C 28 64 65 66 61 at()==ERR)|(defa
015C60: 6C 74 28 31 2C 20 6C 61 73 74 6C 6E 29 3D 3D 45 lt(1, lastln)==E
015C70: 52 52 29 29 0D 0A 20 20 20 20 72 65 74 75 72 6E RR)).. return
015C80: 20 28 73 74 61 74 75 73 3D 45 52 52 29 3B 0D 0A (status=ERR);..
015C90: 20 20 2B 2B 69 3B 0D 0A 20 20 6C 69 6E 65 3D 6C ++i;.. line=l
015CA0: 69 6E 65 31 3B 0D 0A 20 20 77 68 69 6C 65 28 6C ine1;.. while(l
015CB0: 69 6E 65 3C 3D 6C 69 6E 65 32 29 20 7B 0D 0A 20 ine<=line2) {..
015CC0: 20 20 20 69 66 28 70 6F 6C 6C 28 59 45 53 29 3D if(poll(YES)=
015CD0: 3D 45 53 43 29 20 72 65 74 75 72 6E 20 28 73 74 =ESC) return (st
015CE0: 61 74 75 73 3D 45 52 52 29 3B 0D 0A 20 20 20 20 atus=ERR);..
015CF0: 6B 3D 67 65 74 74 78 74 28 6C 69 6E 65 2B 2B 29 k=gettxt(line++)
015D00: 3B 0D 0A 20 20 20 20 69 66 28 6D 61 74 63 68 28 ;.. if(match(
015D10: 74 78 74 2C 20 70 61 74 29 3D 3D 67 66 6C 61 67 txt, pat)==gflag
015D20: 29 20 62 75 66 5B 6B 2B 4D 41 52 4B 5D 3D 59 45 ) buf[k+MARK]=YE
015D30: 53 3B 0D 0A 20 20 20 20 65 6C 73 65 20 62 75 66 S;.. else buf
015D40: 5B 6B 2B 4D 41 52 4B 5D 3D 4E 4F 3B 0D 0A 20 20 [k+MARK]=NO;..
015D50: 20 20 7D 0D 0A 20 20 6C 69 6E 65 3D 6E 65 78 74 }.. line=next
015D60: 6C 6E 28 6C 69 6E 65 32 29 3B 0D 0A 20 20 77 68 ln(line2);.. wh
015D70: 69 6C 65 28 6C 69 6E 65 21 3D 6C 69 6E 65 31 29 ile(line!=line1)
015D80: 20 7B 0D 0A 20 20 20 20 69 66 28 70 6F 6C 6C 28 {.. if(poll(
015D90: 59 45 53 29 3D 3D 45 53 43 29 20 72 65 74 75 72 YES)==ESC) retur
015DA0: 6E 20 28 73 74 61 74 75 73 3D 45 52 52 29 3B 0D n (status=ERR);.
015DB0: 0A 20 20 20 20 6B 3D 67 65 74 69 6E 64 28 6C 69 . k=getind(li
015DC0: 6E 65 29 3B 0D 0A 20 20 20 20 62 75 66 5B 6B 2B ne);.. buf[k+
015DD0: 4D 41 52 4B 5D 3D 4E 4F 3B 0D 0A 20 20 20 20 6C MARK]=NO;.. l
015DE0: 69 6E 65 3D 6E 65 78 74 6C 6E 28 6C 69 6E 65 29 ine=nextln(line)
015DF0: 3B 0D 0A 20 20 20 20 7D 0D 0A 20 20 72 65 74 75 ;.. }.. retu
015E00: 74 20 6C 69 6E 65 33 3B 20 7B 0D 0A 20 20 69 6E t line3; {.. in
015E10: 74 20 6B 30 2C 20 6B 31 2C 20 6B 32 2C 20 6B 33 t k0, k1, k2, k3
015E20: 2C 20 6B 34 2C 20 6B 35 3B 0D 0A 20 20 69 66 28 , k4, k5;.. if(
015E30: 28 6C 69 6E 65 31 3C 3D 30 29 7C 28 28 6C 69 6E (line1<=0)|((lin
015E40: 65 31 3C 3D 6C 69 6E 65 33 29 26 28 6C 69 6E 65 e1<=line3)&(line
015E50: 33 3C 3D 6C 69 6E 65 32 29 29 29 20 72 65 74 75 3<=line2))) retu
015E60: 72 6E 20 45 52 52 3B 0D 0A 20 20 6B 31 3D 67 65 rn ERR;.. k1=ge
015E70: 74 69 6E 64 28 6C 69 6E 65 31 29 3B 0D 0A 20 20 tind(line1);..
015E80: 6B 32 3D 67 65 74 69 6E 64 28 6C 69 6E 65 32 29 k2=getind(line2)
015E90: 3B 0D 0A 20 20 6B 33 3D 67 65 74 69 6E 64 28 6E ;.. k3=getind(n
015EA0: 65 78 74 6C 6E 28 6C 69 6E 65 32 29 29 3B 0D 0A extln(line2));..
015EB0: 20 20 6B 30 3D 67 65 74 69 6E 64 28 70 72 65 76 k0=getind(prev
015EC0: 6C 6E 28 6C 69 6E 65 31 29 29 3B 0D 0A 20 20 2F ln(line1));.. /
015ED0: 2A 2A 20 6C 65 61 76 65 73 20 67 6F 74 6C 69 6E ** leaves gotlin
015EE0: 65 20 26 20 67 6F 74 69 6E 64 20 62 65 6C 6F 77 e & gotind below
015EF0: 20 61 66 66 65 63 74 65 64 20 61 72 65 61 20 2A affected area *
015F00: 2A 2F 0D 0A 20 20 72 65 6C 69 6E 6B 28 6B 30 2C */.. relink(k0,
015F10: 20 6B 33 2C 20 6B 30 2C 20 6B 33 29 3B 0D 0A 20 k3, k0, k3);..
015F20: 20 69 66 28 6C 69 6E 65 33 3E 6C 69 6E 65 31 29 if(line3>line1)
015F30: 20 7B 0D 0A 20 20 20 20 63 75 72 6C 6E 3D 6C 69 {.. curln=li
015F40: 6E 65 33 3B 0D 0A 20 20 20 20 6C 69 6E 65 33 3D ne3;.. line3=
015F50: 6C 69 6E 65 33 2D 28 6C 69 6E 65 32 2D 6C 69 6E line3-(line2-lin
015F60: 65 31 2B 31 29 3B 0D 0A 20 20 20 20 7D 0D 0A 20 e1+1);.. }..
015F70: 20 65 6C 73 65 20 63 75 72 6C 6E 3D 6C 69 6E 65 else curln=line
015F80: 33 2B 28 6C 69 6E 65 32 2D 6C 69 6E 65 31 2B 31 3+(line2-line1+1
015F90: 29 3B 0D 0A 20 20 6B 35 3D 67 65 74 69 6E 64 28 );.. k5=getind(
015FA0: 6E 65 78 74 6C 6E 28 6C 69 6E 65 33 29 29 3B 0D nextln(line3));.
015FB0: 0A 20 20 6B 34 3D 67 65 74 69 6E 64 28 6C 69 6E . k4=getind(lin
015FC0: 65 33 29 3B 0D 0A 20 20 2F 2A 2A 20 6C 65 61 76 e3);.. /** leav
015FD0: 65 73 20 67 6F 74 6C 69 6E 65 20 26 20 67 6F 74 es gotline & got
015FE0: 69 6E 64 20 62 65 6C 6F 77 20 61 66 66 65 63 74 ind below affect
015FF0: 65 64 20 61 72 65 61 20 2A 2A 2F 0D 0A 20 20 72 ed area **/.. r
016000: 72 6E 20 28 73 74 61 74 75 73 3D 4F 4B 29 3B 0D rn (status=OK);.
016010: 0A 20 20 7D 0D 0A 0D 0A 2F 2A 0D 0A 2A 2A 20 64 . }..../*..** d
016020: 65 66 61 6C 74 20 2D 2D 20 73 65 74 20 64 65 66 efalt -- set def
016030: 61 75 6C 74 65 64 20 6C 69 6E 65 20 6E 75 6D 62 aulted line numb
016040: 65 72 73 0D 0A 2A 2F 0D 0A 64 65 66 61 6C 74 28 ers..*/..defalt(
016050: 64 65 66 31 2C 20 64 65 66 32 29 20 69 6E 74 20 def1, def2) int
016060: 64 65 66 31 2C 20 64 65 66 32 3B 20 7B 0D 0A 20 def1, def2; {..
016070: 20 69 66 28 6E 6C 69 6E 65 73 3D 3D 30 29 20 7B if(nlines==0) {
016080: 0D 0A 20 20 20 20 6C 69 6E 65 31 3D 64 65 66 31 .. line1=def1
016090: 3B 0D 0A 20 20 20 20 6C 69 6E 65 32 3D 64 65 66 ;.. line2=def
0160A0: 32 3B 0D 0A 20 20 20 20 7D 0D 0A 20 20 69 66 28 2;.. }.. if(
0160B0: 28 6C 69 6E 65 31 3E 6C 69 6E 65 32 29 7C 28 6C (line1>line2)|(l
0160C0: 69 6E 65 31 3C 3D 30 29 7C 28 6C 69 6E 65 32 3E ine1<=0)|(line2>
0160D0: 6C 61 73 74 6C 6E 29 29 0D 0A 20 20 20 20 72 65 lastln)).. re
0160E0: 74 75 72 6E 20 28 73 74 61 74 75 73 3D 45 52 52 turn (status=ERR
0160F0: 29 3B 0D 0A 20 20 72 65 74 75 72 6E 20 28 73 74 );.. return (st
016100: 61 74 75 73 3D 4F 4B 29 3B 0D 0A 20 20 7D 0D 0A atus=OK);.. }..
016110: 0D 0A 2F 2A 0D 0A 2A 2A 20 64 6F 67 6C 6F 62 20 ../*..** doglob
016120: 2D 2D 20 64 6F 20 63 6F 6D 6D 61 6E 64 20 61 74 -- do command at
016130: 20 6C 69 6E 5B 69 5D 20 6F 6E 20 61 6C 6C 20 6D lin[i] on all m
016140: 61 72 6B 65 64 20 6C 69 6E 65 73 0D 0A 2A 2F 0D arked lines..*/.
016150: 0A 64 6F 67 6C 6F 62 28 29 20 7B 0D 0A 20 20 69 .doglob() {.. i
016160: 6E 74 20 63 6F 75 6E 74 2C 20 69 73 74 61 72 74 nt count, istart
016170: 2C 20 6B 2C 20 6C 69 6E 65 3B 0D 0A 20 20 73 74 , k, line;.. st
016180: 61 74 75 73 3D 4F 4B 3B 0D 0A 20 20 63 6F 75 6E atus=OK;.. coun
016190: 74 3D 30 3B 0D 0A 20 20 6C 69 6E 65 3D 6C 69 6E t=0;.. line=lin
0161A0: 65 31 3B 0D 0A 20 20 69 73 74 61 72 74 3D 69 3B e1;.. istart=i;
0161B0: 0D 0A 20 20 77 68 69 6C 65 28 59 45 53 29 20 7B .. while(YES) {
0161C0: 0D 0A 20 20 20 20 69 66 28 70 6F 6C 6C 28 59 45 .. if(poll(YE
0161D0: 53 29 3D 3D 45 53 43 29 20 72 65 74 75 72 6E 20 S)==ESC) return
0161E0: 28 73 74 61 74 75 73 3D 45 52 52 29 3B 0D 0A 20 (status=ERR);..
0161F0: 20 20 20 6B 3D 67 65 74 69 6E 64 28 6C 69 6E 65 k=getind(line
016200: 65 6C 69 6E 6B 28 6B 34 2C 20 6B 31 2C 20 6B 32 elink(k4, k1, k2
016210: 2C 20 6B 35 29 3B 0D 0A 20 20 72 65 6C 69 6E 6B , k5);.. relink
016220: 28 6B 32 2C 20 6B 35 2C 20 6B 34 2C 20 6B 31 29 (k2, k5, k4, k1)
016230: 3B 0D 0A 20 20 72 65 74 75 72 6E 20 4F 4B 3B 0D ;.. return OK;.
016240: 0A 20 20 7D 0D 0A 0D 0A 2F 2A 0D 0A 2A 2A 20 67 . }..../*..** g
016250: 65 74 72 68 73 20 2D 2D 20 67 65 74 20 73 75 62 etrhs -- get sub
016260: 73 74 69 74 75 74 69 6F 6E 20 73 74 72 69 6E 67 stitution string
016270: 20 66 6F 72 20 22 73 22 20 63 6F 6D 6D 61 6E 64 for "s" command
016280: 0D 0A 2A 2F 0D 0A 67 65 74 72 68 73 28 6C 69 6E ..*/..getrhs(lin
016290: 2C 20 69 2C 20 73 75 62 2C 20 67 66 6C 61 67 29 , i, sub, gflag)
0162A0: 20 63 68 61 72 20 6C 69 6E 5B 5D 2C 20 73 75 62 char lin[], sub
0162B0: 5B 5D 3B 20 69 6E 74 20 2A 69 2C 20 2A 67 66 6C []; int *i, *gfl
0162C0: 61 67 3B 20 7B 0D 0A 20 20 69 66 28 6C 69 6E 5B ag; {.. if(lin[
0162D0: 2A 69 5D 3D 3D 4E 55 4C 4C 29 20 72 65 74 75 72 *i]==NULL) retur
0162E0: 6E 20 45 52 52 3B 0D 0A 20 20 69 66 28 6C 69 6E n ERR;.. if(lin
0162F0: 5B 2A 69 2B 31 5D 3D 3D 4E 55 4C 4C 29 20 72 65 [*i+1]==NULL) re
016300: 74 75 72 6E 20 45 52 52 3B 0D 0A 20 20 2A 69 3D turn ERR;.. *i=
016310: 6D 61 6B 73 75 62 28 6C 69 6E 2C 20 2A 69 2B 31 maksub(lin, *i+1
016320: 2C 20 6C 69 6E 5B 2A 69 5D 2C 20 73 75 62 29 3B , lin[*i], sub);
016330: 0D 0A 20 20 69 66 28 2A 69 3D 3D 45 52 52 29 20 .. if(*i==ERR)
016340: 72 65 74 75 72 6E 20 45 52 52 3B 0D 0A 20 20 69 return ERR;.. i
016350: 66 28 73 61 6D 65 28 6C 69 6E 5B 2A 69 2B 31 5D f(same(lin[*i+1]
016360: 2C 20 47 4C 4F 42 41 4C 29 29 20 7B 0D 0A 20 20 , GLOBAL)) {..
016370: 20 20 2A 69 20 3D 20 2A 69 20 2B 20 31 3B 0D 0A *i = *i + 1;..
016380: 20 20 20 20 2A 67 66 6C 61 67 3D 59 45 53 3B 0D *gflag=YES;.
016390: 0A 20 20 20 20 7D 0D 0A 20 20 65 6C 73 65 20 2A . }.. else *
0163A0: 67 66 6C 61 67 3D 4E 4F 3B 0D 0A 20 20 72 65 74 gflag=NO;.. ret
0163B0: 75 72 6E 20 4F 4B 3B 0D 0A 20 20 7D 0D 0A 0D 0A urn OK;.. }....
0163C0: 2F 2A 0D 0A 2A 2A 20 73 75 62 73 74 20 2D 2D 20 /*..** subst --
0163D0: 73 75 62 73 74 69 74 75 74 65 20 22 73 75 62 22 substitute "sub"
0163E0: 20 66 6F 72 20 6F 63 63 75 72 72 65 6E 63 65 73 for occurrences
0163F0: 20 6F 66 20 70 61 74 74 65 72 6E 0D 0A 2A 2F 0D of pattern..*/.
016400: 29 3B 0D 0A 20 20 20 20 69 66 28 62 75 66 5B 6B );.. if(buf[k
016410: 2B 4D 41 52 4B 5D 3D 3D 59 45 53 29 20 7B 0D 0A +MARK]==YES) {..
016420: 20 20 20 20 20 20 62 75 66 5B 6B 2B 4D 41 52 4B buf[k+MARK
016430: 5D 3D 4E 4F 3B 0D 0A 20 20 20 20 20 20 63 75 72 ]=NO;.. cur
016440: 73 61 76 3D 63 75 72 6C 6E 3D 6C 69 6E 65 3B 0D sav=curln=line;.
016450: 0A 20 20 20 20 20 20 69 3D 69 73 74 61 72 74 3B . i=istart;
016460: 0D 0A 20 20 20 20 20 20 69 66 28 67 65 74 6C 73 .. if(getls
016470: 74 28 29 3D 3D 4F 4B 29 20 7B 0D 0A 20 20 20 20 t()==OK) {..
016480: 20 20 20 20 69 66 28 64 6F 63 6D 64 28 59 45 53 if(docmd(YES
016490: 29 3D 3D 4F 4B 29 20 63 6F 75 6E 74 3D 30 3B 0D )==OK) count=0;.
0164A0: 0A 20 20 20 20 20 20 20 20 7D 0D 0A 20 20 20 20 . }..
0164B0: 20 20 7D 0D 0A 20 20 20 20 65 6C 73 65 20 7B 0D }.. else {.
0164C0: 0A 20 20 20 20 20 20 6C 69 6E 65 3D 6E 65 78 74 . line=next
0164D0: 6C 6E 28 6C 69 6E 65 29 3B 0D 0A 20 20 20 20 20 ln(line);..
0164E0: 20 2B 2B 63 6F 75 6E 74 3B 0D 0A 20 20 20 20 20 ++count;..
0164F0: 20 7D 0D 0A 20 20 20 20 69 66 28 28 63 6F 75 6E }.. if((coun
016500: 74 3E 6C 61 73 74 6C 6E 29 7C 28 73 74 61 74 75 t>lastln)|(statu
016510: 73 21 3D 4F 4B 29 29 20 62 72 65 61 6B 3B 0D 0A s!=OK)) break;..
016520: 20 20 20 20 7D 0D 0A 20 20 72 65 74 75 72 6E 20 }.. return
016530: 73 74 61 74 75 73 3B 0D 0A 20 20 7D 0D 0A 0D 0A status;.. }....
016540: 2F 2A 0D 0A 2A 2A 20 61 70 70 65 6E 64 20 2D 2D /*..** append --
016550: 20 61 70 70 65 6E 64 20 6C 69 6E 65 73 20 61 66 append lines af
016560: 74 65 72 20 6C 6E 0D 0A 2A 2F 0D 0A 61 70 70 65 ter ln..*/..appe
016570: 6E 64 28 6C 6E 2C 20 67 6C 6F 62 29 20 69 6E 74 nd(ln, glob) int
016580: 20 6C 6E 2C 20 67 6C 6F 62 3B 20 7B 0D 0A 20 20 ln, glob; {..
016590: 69 6E 74 20 73 74 61 74 3B 0D 0A 20 20 69 66 28 int stat;.. if(
0165A0: 67 6C 6F 62 3D 3D 59 45 53 29 20 72 65 74 75 72 glob==YES) retur
0165B0: 6E 20 45 52 52 3B 0D 0A 20 20 63 75 72 6C 6E 3D n ERR;.. curln=
0165C0: 6C 6E 3B 0D 0A 20 20 73 74 61 74 3D 4E 4F 53 54 ln;.. stat=NOST
0165D0: 41 54 55 53 3B 0D 0A 20 20 77 68 69 6C 65 28 73 ATUS;.. while(s
0165E0: 74 61 74 3D 3D 4E 4F 53 54 41 54 55 53 29 20 7B tat==NOSTATUS) {
0165F0: 0D 0A 20 20 20 20 66 70 75 74 63 28 27 20 27 2C .. fputc(' ',
016600: 0A 73 75 62 73 74 28 73 75 62 2C 20 67 66 6C 61 .subst(sub, gfla
016610: 67 29 20 63 68 61 72 20 73 75 62 5B 5D 3B 20 69 g) char sub[]; i
016620: 6E 74 20 67 66 6C 61 67 3B 20 7B 0D 0A 20 20 63 nt gflag; {.. c
016630: 68 61 72 20 6E 65 77 5B 4D 41 58 4C 49 4E 45 5D har new[MAXLINE]
016640: 3B 0D 0A 20 20 69 6E 74 20 6A 2C 20 6B 2C 20 6C ;.. int j, k, l
016650: 61 73 74 6E 2C 20 6C 69 6E 65 2C 20 6E 2C 20 73 astn, line, n, s
016660: 75 62 62 65 64 3B 0D 0A 20 20 69 66 28 6C 69 6E ubbed;.. if(lin
016670: 65 31 3C 3D 30 29 20 72 65 74 75 72 6E 20 45 52 e1<=0) return ER
016680: 52 3B 0D 0A 20 20 6C 69 6E 65 3D 6C 69 6E 65 31 R;.. line=line1
016690: 3B 0D 0A 20 20 77 68 69 6C 65 28 6C 69 6E 65 3C ;.. while(line<
0166A0: 3D 6C 69 6E 65 32 29 20 7B 0D 0A 20 20 20 20 69 =line2) {.. i
0166B0: 66 28 70 6F 6C 6C 28 59 45 53 29 3D 3D 45 53 43 f(poll(YES)==ESC
0166C0: 29 20 72 65 74 75 72 6E 20 28 45 52 52 29 3B 0D ) return (ERR);.
0166D0: 0A 20 20 20 20 6A 3D 30 3B 0D 0A 20 20 20 20 73 . j=0;.. s
0166E0: 75 62 62 65 64 3D 4E 4F 3B 0D 0A 20 20 20 20 67 ubbed=NO;.. g
0166F0: 65 74 74 78 74 28 6C 69 6E 65 29 3B 0D 0A 20 20 ettxt(line);..
016700: 20 20 6C 61 73 74 6E 3D 2D 31 3B 0D 0A 20 20 20 lastn=-1;..
016710: 20 6B 3D 30 3B 0D 0A 20 20 20 20 77 68 69 6C 65 k=0;.. while
016720: 28 59 45 53 29 20 7B 0D 0A 20 20 20 20 20 20 69 (YES) {.. i
016730: 66 28 28 67 66 6C 61 67 3D 3D 59 45 53 29 7C 28 f((gflag==YES)|(
016740: 73 75 62 62 65 64 3D 3D 4E 4F 29 29 20 6E 3D 61 subbed==NO)) n=a
016750: 6D 61 74 63 68 28 74 78 74 2C 20 6B 2C 20 70 61 match(txt, k, pa
016760: 74 29 3B 0D 0A 20 20 20 20 20 20 65 6C 73 65 20 t);.. else
016770: 6E 3D 2D 31 3B 0D 0A 20 20 20 20 20 20 69 66 28 n=-1;.. if(
016780: 28 6E 3E 3D 30 29 26 28 6C 61 73 74 6E 21 3D 6E (n>=0)&(lastn!=n
016790: 29 29 20 7B 20 20 20 20 2F 2A 2A 20 72 65 70 6C )) { /** repl
0167A0: 61 63 65 20 6D 61 74 63 68 65 64 20 74 65 78 74 ace matched text
0167B0: 20 2A 2A 2F 0D 0A 20 20 20 20 20 20 20 20 73 75 **/.. su
0167C0: 62 62 65 64 3D 59 45 53 3B 0D 0A 20 20 20 20 20 bbed=YES;..
0167D0: 20 20 20 63 61 74 73 75 62 28 74 78 74 2C 20 6B catsub(txt, k
0167E0: 2C 20 6E 2C 20 73 75 62 2C 20 6E 65 77 2C 20 26 , n, sub, new, &
0167F0: 6A 2C 20 4D 41 58 4C 49 4E 45 29 3B 0D 0A 20 20 j, MAXLINE);..
016800: 20 73 74 64 65 72 72 29 3B 0D 0A 20 20 20 20 69 stderr);.. i
016810: 66 28 66 67 65 74 73 28 6C 69 6E 2C 20 4D 41 58 f(fgets(lin, MAX
016820: 4C 49 4E 45 2C 20 73 74 64 69 6E 29 3D 3D 4E 55 LINE, stdin)==NU
016830: 4C 4C 29 20 73 74 61 74 3D 45 4F 46 3B 0D 0A 20 LL) stat=EOF;..
016840: 20 20 20 65 6C 73 65 20 7B 0D 0A 20 20 20 20 20 else {..
016850: 20 74 72 69 6D 28 6C 69 6E 29 3B 0D 0A 20 20 20 trim(lin);..
016860: 20 20 20 69 66 28 28 6C 69 6E 5B 30 5D 3D 3D 50 if((lin[0]==P
016870: 45 52 49 4F 44 29 26 28 6C 69 6E 5B 31 5D 3D 3D ERIOD)&(lin[1]==
016880: 4E 55 4C 4C 29 29 20 73 74 61 74 3D 4F 4B 3B 0D NULL)) stat=OK;.
016890: 0A 20 20 20 20 20 20 65 6C 73 65 20 69 66 28 69 . else if(i
0168A0: 6E 6A 65 63 74 28 6C 69 6E 29 3D 3D 45 52 52 29 nject(lin)==ERR)
0168B0: 20 73 74 61 74 3D 45 52 52 3B 0D 0A 20 20 20 20 stat=ERR;..
0168C0: 20 20 7D 0D 0A 20 20 20 20 7D 0D 0A 20 20 72 65 }.. }.. re
0168D0: 74 75 72 6E 20 73 74 61 74 3B 0D 0A 20 20 7D 0D turn stat;.. }.
0168E0: 0A 0D 0A 2F 2A 0D 0A 2A 2A 20 6B 69 6C 6C 20 2D .../*..** kill -
0168F0: 2D 20 64 65 6C 65 74 65 20 6C 69 6E 65 73 20 66 - delete lines f
016900: 72 6F 6D 20 74 68 72 6F 75 67 68 20 74 6F 0D 0A rom through to..
016910: 2A 2F 0D 0A 6B 69 6C 6C 28 66 72 6F 6D 2C 20 74 */..kill(from, t
016920: 6F 29 20 69 6E 74 20 66 72 6F 6D 2C 20 74 6F 3B o) int from, to;
016930: 20 7B 0D 0A 20 20 69 6E 74 20 6B 31 2C 20 6B 32 {.. int k1, k2
016940: 3B 0D 0A 20 20 69 66 28 28 66 72 6F 6D 3D 3D 31 ;.. if((from==1
016950: 29 26 28 74 6F 3D 3D 6C 61 73 74 6C 6E 29 29 20 )&(to==lastln))
016960: 7B 0D 0A 20 20 20 20 73 65 74 62 75 66 28 29 3B {.. setbuf();
016970: 0D 0A 20 20 20 20 75 70 64 74 66 6C 61 67 3D 4E .. updtflag=N
016980: 4F 3B 0D 0A 20 20 20 20 72 65 74 75 72 6E 20 28 O;.. return (
016990: 73 74 61 74 75 73 3D 4F 4B 29 3B 0D 0A 20 20 20 status=OK);..
0169A0: 20 7D 0D 0A 20 20 69 66 28 66 72 6F 6D 3C 3D 30 }.. if(from<=0
0169B0: 29 20 72 65 74 75 72 6E 20 28 73 74 61 74 75 73 ) return (status
0169C0: 3D 45 52 52 29 3B 0D 0A 20 20 6B 32 3D 67 65 74 =ERR);.. k2=get
0169D0: 69 6E 64 28 6E 65 78 74 6C 6E 28 74 6F 29 29 3B ind(nextln(to));
0169E0: 0D 0A 20 20 6B 31 3D 67 65 74 69 6E 64 28 70 72 .. k1=getind(pr
0169F0: 65 76 6C 6E 28 66 72 6F 6D 29 29 3B 0D 0A 20 20 evln(from));..
016A00: 54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 00 00 00 Track-Info......
016A10: 13 00 01 00 02 09 52 E5 13 00 41 02 00 00 00 02 ......R...A.....
016A20: 13 00 46 02 00 00 00 02 13 00 42 02 00 00 00 02 ..F.......B.....
016A30: 13 00 47 02 00 00 00 02 13 00 43 02 00 00 00 02 ..G.......C.....
016A40: 13 00 48 02 00 00 00 02 13 00 44 02 00 00 00 02 ..H.......D.....
016A50: 13 00 49 02 00 00 00 02 13 00 45 02 00 00 00 02 ..I.......E.....
016A60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
016A70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
016A80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
016A90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
016AA0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
016AB0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
016AC0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
016AD0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
016AE0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
016AF0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
016B00: 20 20 20 20 20 20 6C 61 73 74 6E 3D 6E 3B 0D 0A lastn=n;..
016B10: 20 20 20 20 20 20 20 20 7D 0D 0A 20 20 20 20 20 }..
016B20: 20 69 66 28 74 78 74 5B 6B 5D 3D 3D 4E 55 4C 4C if(txt[k]==NULL
016B30: 29 20 62 72 65 61 6B 3B 0D 0A 20 20 20 20 20 20 ) break;..
016B40: 69 66 28 28 6E 3D 3D 2D 31 29 7C 28 6E 3D 3D 6B if((n==-1)|(n==k
016B50: 29 29 20 7B 20 20 20 20 20 20 20 2F 2A 2A 20 6E )) { /** n
016B60: 6F 20 6D 61 74 63 68 20 6F 72 20 6E 75 6C 6C 20 o match or null
016B70: 6D 61 74 63 68 20 2A 2A 2F 0D 0A 20 20 20 20 20 match **/..
016B80: 20 20 20 61 64 64 73 65 74 28 74 78 74 5B 6B 5D addset(txt[k]
016B90: 2C 20 6E 65 77 2C 20 26 6A 2C 20 4D 41 58 4C 49 , new, &j, MAXLI
016BA0: 4E 45 29 3B 0D 0A 20 20 20 20 20 20 20 20 2B 2B NE);.. ++
016BB0: 6B 3B 0D 0A 20 20 20 20 20 20 20 20 7D 0D 0A 20 k;.. }..
016BC0: 20 20 20 20 20 65 6C 73 65 20 6B 3D 6E 3B 20 20 else k=n;
016BD0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
016BE0: 2F 2A 2A 20 73 6B 69 70 20 6D 61 74 63 68 65 64 /** skip matched
016BF0: 20 74 65 78 74 20 2A 2A 2F 0D 0A 20 20 20 20 20 text **/..
016C00: 20 7D 0D 0A 20 20 20 20 69 66 28 73 75 62 62 65 }.. if(subbe
016C10: 64 3D 3D 59 45 53 29 20 7B 0D 0A 20 20 20 20 20 d==YES) {..
016C20: 20 69 66 28 61 64 64 73 65 74 28 4E 55 4C 4C 2C if(addset(NULL,
016C30: 20 6E 65 77 2C 20 26 6A 2C 20 4D 41 58 4C 49 4E new, &j, MAXLIN
016C40: 45 29 3D 3D 4E 4F 29 20 72 65 74 75 72 6E 20 45 E)==NO) return E
016C50: 52 52 3B 0D 0A 20 20 20 20 20 20 63 75 72 6C 6E RR;.. curln
016C60: 3D 70 72 65 76 6C 6E 28 6C 69 6E 65 29 3B 0D 0A =prevln(line);..
016C70: 20 20 20 20 20 20 69 66 28 69 6E 6A 65 63 74 28 if(inject(
016C80: 6E 65 77 29 3D 3D 45 52 52 29 20 7B 0D 0A 20 20 new)==ERR) {..
016C90: 20 20 20 20 20 20 63 75 72 6C 6E 3D 6C 69 6E 65 curln=line
016CA0: 3B 0D 0A 20 20 20 20 20 20 20 20 72 65 74 75 72 ;.. retur
016CB0: 6E 20 45 52 52 3B 0D 0A 20 20 20 20 20 20 20 20 n ERR;..
016CC0: 7D 0D 0A 20 20 20 20 20 20 6B 69 6C 6C 28 63 75 }.. kill(cu
016CD0: 72 6C 6E 2B 31 2C 20 63 75 72 6C 6E 2B 31 29 3B rln+1, curln+1);
016CE0: 0D 0A 20 20 20 20 20 20 7D 0D 0A 20 20 20 20 2B .. }.. +
016CF0: 2B 6C 69 6E 65 3B 0D 0A 20 20 20 20 7D 0D 0A 20 +line;.. }..
016D00: 3B 0D 0A 20 20 72 65 74 75 72 6E 20 4F 4B 3B 0D ;.. return OK;.
016D10: 0A 20 20 7D 0D 0A 0D 0A 2F 2A 0D 0A 2A 2A 20 65 . }..../*..** e
016D20: 6E 74 65 72 20 2D 2D 20 65 6E 74 65 72 20 61 20 nter -- enter a
016D30: 6E 65 77 20 66 69 6C 65 0D 0A 2A 2F 0D 0A 65 6E new file..*/..en
016D40: 74 65 72 28 6E 61 6D 65 29 20 63 68 61 72 20 6E ter(name) char n
016D50: 61 6D 65 5B 5D 3B 20 7B 0D 0A 20 20 69 6E 74 20 ame[]; {.. int
016D60: 65 72 72 3B 0D 0A 20 20 65 72 72 3D 64 6F 72 65 err;.. err=dore
016D70: 61 64 28 30 2C 20 6E 61 6D 65 29 3B 0D 0A 20 20 ad(0, name);..
016D80: 69 66 28 76 69 65 77 29 20 64 6F 70 72 6E 74 28 if(view) doprnt(
016D90: 31 2C 20 31 2C 20 4E 4F 29 3B 0D 0A 20 20 63 75 1, 1, NO);.. cu
016DA0: 72 6C 6E 3D 31 3B 0D 0A 20 20 75 70 64 74 66 6C rln=1;.. updtfl
016DB0: 61 67 3D 4E 4F 3B 0D 0A 20 20 72 65 74 75 72 6E ag=NO;.. return
016DC0: 20 65 72 72 3B 0D 0A 20 20 7D 0D 0A 0D 0A 1A 1A err;.. }......
016DD0: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
016DE0: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
016DF0: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
016E00: 66 6C 6F 77 20 68 61 6E 64 6C 65 64 20 69 6E 20 flow handled in
016E10: 64 6F 63 6D 64 28 29 20 2A 2F 0D 0A 20 20 20 20 docmd() */..
016E20: 20 20 63 75 72 6C 6E 20 3D 20 6A 20 2D 20 63 6F curln = j - co
016E30: 6E 74 65 78 74 3B 0D 0A 20 20 20 20 20 20 72 65 ntext;.. re
016E40: 74 75 72 6E 20 4F 4B 3B 0D 0A 20 20 20 20 20 20 turn OK;..
016E50: 7D 0D 0A 20 20 20 20 69 66 28 28 6A 3D 3D 74 6F }.. if((j==to
016E60: 29 26 28 67 6C 6F 62 3D 3D 4E 4F 29 29 20 70 72 )&(glob==NO)) pr
016E70: 65 66 3D 43 4C 46 4C 41 47 3B 0D 0A 20 20 20 20 ef=CLFLAG;..
016E80: 65 6C 73 65 20 70 72 65 66 3D 27 20 27 3B 0D 0A else pref=' ';..
016E90: 20 20 20 20 67 65 74 74 78 74 28 6A 2B 2B 29 3B gettxt(j++);
016EA0: 0D 0A 20 20 20 20 66 70 75 74 63 28 70 72 65 66 .. fputc(pref
016EB0: 2C 20 73 74 64 6F 75 74 29 3B 0D 0A 20 20 20 20 , stdout);..
016EC0: 66 70 75 74 73 28 74 78 74 2C 20 73 74 64 6F 75 fputs(txt, stdou
016ED0: 74 29 3B 0D 0A 20 20 20 20 66 70 75 74 63 28 27 t);.. fputc('
016EE0: 5C 6E 27 2C 20 73 74 64 6F 75 74 29 3B 0D 0A 20 \n', stdout);..
016EF0: 20 20 20 7D 0D 0A 20 20 63 75 72 6C 6E 3D 74 6F }.. curln=to
016F00: 20 72 65 74 75 72 6E 20 4F 4B 3B 0D 0A 20 20 7D return OK;.. }
016F10: 0D 0A 0D 0A 2F 2A 0D 0A 2A 2A 20 67 65 74 66 6E ..../*..** getfn
016F20: 20 2D 2D 20 67 65 74 20 66 69 6C 65 20 6E 61 6D -- get file nam
016F30: 65 20 66 72 6F 6D 20 6C 69 6E 5B 69 5D 0D 0A 2A e from lin[i]..*
016F40: 2F 0D 0A 67 65 74 66 6E 28 6C 69 6E 2C 20 69 2C /..getfn(lin, i,
016F50: 20 66 69 6C 65 2C 20 6D 61 78 29 20 63 68 61 72 file, max) char
016F60: 20 6C 69 6E 5B 5D 2C 20 66 69 6C 65 5B 5D 3B 20 lin[], file[];
016F70: 69 6E 74 20 69 2C 20 6D 61 78 3B 20 7B 0D 0A 20 int i, max; {..
016F80: 20 69 6E 74 20 6A 2C 20 6B 2C 20 73 74 61 74 3B int j, k, stat;
016F90: 0D 0A 20 20 73 74 61 74 3D 45 52 52 3B 0D 0A 20 .. stat=ERR;..
016FA0: 20 69 66 28 6C 69 6E 5B 69 2B 31 5D 3D 3D 42 4C if(lin[i+1]==BL
016FB0: 41 4E 4B 29 20 7B 0D 0A 20 20 20 20 6A 3D 69 2B ANK) {.. j=i+
016FC0: 32 3B 20 20 2F 2A 2A 20 67 65 74 20 6E 65 77 20 2; /** get new
016FD0: 66 69 6C 65 20 6E 61 6D 65 20 2A 2A 2F 0D 0A 20 file name **/..
016FE0: 20 20 20 73 6B 69 70 62 6C 28 6C 69 6E 2C 20 26 skipbl(lin, &
016FF0: 6A 29 3B 0D 0A 20 20 20 20 6B 3D 30 3B 0D 0A 20 j);.. k=0;..
017000: 20 20 20 77 68 69 6C 65 28 66 69 6C 65 5B 6B 2B while(file[k+
017010: 2B 5D 3D 6C 69 6E 5B 6A 2B 2B 5D 29 20 69 66 28 +]=lin[j++]) if(
017020: 2D 2D 6D 61 78 20 3C 20 31 29 20 62 72 65 61 6B --max < 1) break
017030: 3B 0D 0A 20 20 20 20 69 66 28 28 6B 20 3E 20 31 ;.. if((k > 1
017040: 29 26 28 6D 61 78 20 3E 20 30 29 29 20 73 74 61 )&(max > 0)) sta
017050: 74 3D 4F 4B 3B 0D 0A 20 20 20 20 7D 0D 0A 20 20 t=OK;.. }..
017060: 65 6C 73 65 20 69 66 28 28 6C 69 6E 5B 69 2B 31 else if((lin[i+1
017070: 5D 3D 3D 4E 55 4C 4C 29 26 28 73 61 76 66 69 6C ]==NULL)&(savfil
017080: 5B 30 5D 21 3D 4E 55 4C 4C 29 29 20 7B 0D 0A 20 [0]!=NULL)) {..
017090: 20 20 20 73 63 6F 70 79 28 73 61 76 66 69 6C 2C scopy(savfil,
0170A0: 20 30 2C 20 66 69 6C 65 2C 20 30 29 3B 0D 0A 20 0, file, 0);..
0170B0: 20 20 20 73 74 61 74 3D 4F 4B 3B 0D 0A 20 20 20 stat=OK;..
0170C0: 20 7D 0D 0A 20 20 69 66 28 28 73 74 61 74 3D 3D }.. if((stat==
0170D0: 4F 4B 29 26 28 73 61 76 66 69 6C 5B 30 5D 3D 3D OK)&(savfil[0]==
0170E0: 4E 55 4C 4C 29 29 0D 0A 20 20 20 20 73 63 6F 70 NULL)).. scop
0170F0: 79 28 66 69 6C 65 2C 20 30 2C 20 73 61 76 66 69 y(file, 0, savfi
017100: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
017110: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
017120: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
017130: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
017140: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
017150: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
017160: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
017170: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
017180: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
017190: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0171A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0171B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0171C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0171D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0171E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0171F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
017200: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
017210: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
017220: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
017230: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
017240: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
017250: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
017260: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
017270: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
017280: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
017290: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0172A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0172B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0172C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0172D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0172E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0172F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
017300: 6C 2C 20 30 29 3B 20 20 2F 2A 2A 20 73 61 76 65 l, 0); /** save
017310: 20 69 66 20 6E 6F 20 6F 6C 64 20 6F 6E 65 20 2A if no old one *
017320: 2A 2F 0D 0A 20 20 72 65 74 75 72 6E 20 73 74 61 */.. return sta
017330: 74 3B 0D 0A 20 20 7D 0D 0A 0D 0A 2F 2A 0D 0A 2A t;.. }..../*..*
017340: 2A 20 64 6F 77 72 69 74 20 2D 2D 20 77 72 69 74 * dowrit -- writ
017350: 65 20 22 66 72 6F 6D 22 20 74 68 72 6F 75 67 68 e "from" through
017360: 20 22 74 6F 22 20 69 6E 74 6F 20 66 69 6C 65 0D "to" into file.
017370: 0A 2A 2F 0D 0A 64 6F 77 72 69 74 28 66 72 6F 6D .*/..dowrit(from
017380: 2C 20 74 6F 2C 20 66 69 6C 65 29 20 69 6E 74 20 , to, file) int
017390: 66 72 6F 6D 2C 20 74 6F 3B 20 63 68 61 72 20 66 from, to; char f
0173A0: 69 6C 65 5B 5D 3B 20 7B 0D 0A 20 20 63 68 61 72 ile[]; {.. char
0173B0: 20 74 6D 70 5B 4D 41 58 46 4E 5D 2C 20 2A 70 74 tmp[MAXFN], *pt
0173C0: 72 3B 0D 0A 20 20 69 6E 74 20 66 64 2C 20 6C 69 r;.. int fd, li
0173D0: 6E 65 3B 0D 0A 0D 0A 20 20 73 74 72 63 70 79 28 ne;.... strcpy(
0173E0: 74 6D 70 2C 20 66 69 6C 65 29 3B 0D 0A 20 20 69 tmp, file);.. i
0173F0: 66 28 28 70 74 72 20 3D 20 73 74 72 63 68 72 28 f((ptr = strchr(
017400: 74 6D 70 2C 20 27 2E 27 29 29 20 3D 3D 20 30 29 tmp, '.')) == 0)
017410: 20 70 74 72 20 3D 20 74 6D 70 20 2B 20 73 74 72 ptr = tmp + str
017420: 6C 65 6E 28 74 6D 70 29 3B 0D 0A 20 20 73 74 72 len(tmp);.. str
017430: 63 70 79 28 70 74 72 2C 20 22 2E 24 24 24 22 29 cpy(ptr, ".$$$")
017440: 3B 0D 0A 20 20 72 65 6E 61 6D 65 28 66 69 6C 65 ;.. rename(file
017450: 2C 20 74 6D 70 29 3B 0D 0A 0D 0A 20 20 69 66 28 , tmp);.... if(
017460: 28 66 64 3D 66 6F 70 65 6E 28 66 69 6C 65 2C 20 (fd=fopen(file,
017470: 22 77 22 29 29 3D 3D 4E 55 4C 4C 29 20 72 65 74 "w"))==NULL) ret
017480: 75 72 6E 20 45 52 52 3B 0D 0A 20 20 6C 69 6E 65 urn ERR;.. line
017490: 3D 66 72 6F 6D 3B 0D 0A 20 20 77 68 69 6C 65 28 =from;.. while(
0174A0: 6C 69 6E 65 3C 3D 74 6F 29 20 7B 0D 0A 20 20 20 line<=to) {..
0174B0: 20 66 70 75 74 73 28 62 75 66 2B 67 65 74 69 6E fputs(buf+getin
0174C0: 64 28 6C 69 6E 65 2B 2B 29 2B 54 45 58 54 2C 20 d(line++)+TEXT,
0174D0: 66 64 29 3B 0D 0A 20 20 20 20 69 66 28 66 70 75 fd);.. if(fpu
0174E0: 74 63 28 27 5C 6E 27 2C 20 66 64 29 3D 3D 45 4F tc('\n', fd)==EO
0174F0: 46 29 20 7B 0D 0A 20 20 20 20 20 20 66 70 75 74 F) {.. fput
017500: 2F 2A 0D 0A 2A 2A 20 65 74 62 2E 63 20 2D 2D 20 /*..** etb.c --
017510: 72 65 70 6C 61 63 65 20 62 6C 61 6E 6B 73 20 77 replace blanks w
017520: 69 74 68 20 74 61 62 73 20 61 6E 64 20 62 6C 61 ith tabs and bla
017530: 6E 6B 73 0D 0A 2A 2A 0D 0A 2A 2A 20 43 6F 70 79 nks..**..** Copy
017540: 72 69 67 68 74 20 31 39 38 32 20 4A 2E 20 45 2E right 1982 J. E.
017550: 20 48 65 6E 64 72 69 78 2E 20 20 41 6C 6C 20 72 Hendrix. All r
017560: 69 67 68 74 73 20 72 65 73 65 72 76 65 64 2E 0D ights reserved..
017570: 0A 2A 2F 0D 0A 23 69 6E 63 6C 75 64 65 20 3C 73 .*/..#include <s
017580: 74 64 69 6F 2E 68 3E 0D 0A 23 69 6E 63 6C 75 64 tdio.h>..#includ
017590: 65 20 22 74 6F 6F 6C 73 2E 68 22 0D 0A 23 64 65 e "tools.h"..#de
0175A0: 66 69 6E 65 20 4E 4F 43 43 41 52 47 43 0D 0A 23 fine NOCCARGC..#
0175B0: 64 65 66 69 6E 65 20 4D 41 58 4C 49 4E 31 20 28 define MAXLIN1 (
0175C0: 4D 41 58 4C 49 4E 45 2B 31 29 0D 0A 6D 61 69 6E MAXLINE+1)..main
0175D0: 28 61 72 67 63 2C 20 61 72 67 76 29 20 69 6E 74 (argc, argv) int
0175E0: 20 61 72 67 63 2C 20 2A 61 72 67 76 3B 20 7B 0D argc, *argv; {.
0175F0: 0A 20 20 63 68 61 72 20 63 2C 20 74 61 62 73 5B . char c, tabs[
017600: 4D 41 58 4C 49 4E 31 5D 3B 0D 0A 20 20 69 6E 74 MAXLIN1];.. int
017610: 20 63 6F 6C 2C 20 6E 65 77 63 6F 6C 3B 0D 0A 20 col, newcol;..
017620: 20 61 75 78 62 75 66 28 73 74 64 69 6E 2C 20 34 auxbuf(stdin, 4
017630: 30 39 36 29 3B 0D 0A 20 20 69 66 28 73 65 74 74 096);.. if(sett
017640: 61 62 28 74 61 62 73 2C 20 61 72 67 63 2C 20 61 ab(tabs, argc, a
017650: 72 67 76 29 3D 3D 45 52 52 29 20 7B 0D 0A 20 20 rgv)==ERR) {..
017660: 20 20 66 70 75 74 73 28 22 75 73 61 67 65 3A 20 fputs("usage:
017670: 45 54 42 20 5B 23 5D 2E 2E 2E 20 5B 2B 23 5D 5C ETB [#]... [+#]\
017680: 6E 22 2C 20 73 74 64 65 72 72 29 3B 0D 0A 20 20 n", stderr);..
017690: 20 20 61 62 6F 72 74 28 37 29 3B 0D 0A 20 20 20 abort(7);..
0176A0: 20 7D 0D 0A 20 20 63 6F 6C 3D 31 3B 0D 0A 20 20 }.. col=1;..
0176B0: 77 68 69 6C 65 28 59 45 53 29 20 7B 0D 0A 20 20 while(YES) {..
0176C0: 20 20 70 6F 6C 6C 28 59 45 53 29 3B 0D 0A 20 20 poll(YES);..
0176D0: 20 20 6E 65 77 63 6F 6C 3D 63 6F 6C 3B 0D 0A 20 newcol=col;..
0176E0: 20 20 20 77 68 69 6C 65 28 28 63 3D 67 65 74 63 while((c=getc
0176F0: 68 61 72 28 29 29 3D 3D 27 20 27 29 20 7B 0D 0A har())==' ') {..
017700: 73 28 22 77 72 69 74 65 20 22 2C 20 73 74 64 65 s("write ", stde
017710: 72 72 29 3B 0D 0A 20 20 20 20 20 20 66 63 6C 6F rr);.. fclo
017720: 73 65 28 66 64 29 3B 0D 0A 20 20 20 20 20 20 72 se(fd);.. r
017730: 65 74 75 72 6E 20 45 52 52 3B 0D 0A 20 20 20 20 eturn ERR;..
017740: 20 20 7D 0D 0A 20 20 20 20 7D 0D 0A 20 20 69 66 }.. }.. if
017750: 28 66 63 6C 6F 73 65 28 66 64 29 29 20 72 65 74 (fclose(fd)) ret
017760: 75 72 6E 20 45 52 52 3B 0D 0A 20 20 75 6E 6C 69 urn ERR;.. unli
017770: 6E 6B 28 74 6D 70 29 3B 0D 0A 20 20 75 70 64 74 nk(tmp);.. updt
017780: 66 6C 61 67 3D 4E 4F 3B 0D 0A 20 20 72 65 74 75 flag=NO;.. retu
017790: 72 6E 20 4F 4B 3B 0D 0A 20 20 7D 0D 0A 0D 0A 2F rn OK;.. }..../
0177A0: 2A 0D 0A 2A 2A 20 64 6F 70 72 6E 74 20 2D 2D 20 *..** doprnt --
0177B0: 70 72 69 6E 74 20 6C 69 6E 65 73 20 66 72 6F 6D print lines from
0177C0: 20 74 68 72 6F 75 67 68 20 74 6F 0D 0A 2A 2F 0D through to..*/.
0177D0: 0A 64 6F 70 72 6E 74 28 66 72 6F 6D 2C 20 74 6F .doprnt(from, to
0177E0: 2C 20 67 6C 6F 62 29 20 69 6E 74 20 66 72 6F 6D , glob) int from
0177F0: 2C 20 74 6F 2C 20 67 6C 6F 62 3B 20 7B 0D 0A 20 , to, glob; {..
017800: 20 69 6E 74 20 6A 2C 20 6B 3B 0D 0A 20 20 63 68 int j, k;.. ch
017810: 61 72 20 70 72 65 66 3B 0D 0A 20 20 69 66 28 66 ar pref;.. if(f
017820: 72 6F 6D 3C 3D 30 29 20 72 65 74 75 72 6E 20 4F rom<=0) return O
017830: 4B 3B 0D 0A 20 20 69 66 28 73 61 6D 65 28 6C 69 K;.. if(same(li
017840: 6E 5B 69 5D 2C 20 50 52 49 4E 54 29 29 20 7B 0D n[i], PRINT)) {.
017850: 0A 20 20 20 20 2B 2B 69 3B 0D 0A 20 20 20 20 69 . ++i;.. i
017860: 66 28 28 6C 69 6E 5B 69 5D 3E 3D 27 30 27 29 26 f((lin[i]>='0')&
017870: 28 6C 69 6E 5B 69 5D 3C 3D 27 39 27 29 29 20 7B (lin[i]<='9')) {
017880: 0D 0A 20 20 20 20 20 20 69 66 28 6C 69 6E 5B 69 .. if(lin[i
017890: 2B 31 5D 3D 3D 4E 55 4C 4C 29 20 63 6F 6E 74 65 +1]==NULL) conte
0178A0: 78 74 3D 6C 69 6E 5B 69 5D 2D 27 30 27 3B 0D 0A xt=lin[i]-'0';..
0178B0: 20 20 20 20 20 20 65 6C 73 65 20 72 65 74 75 72 else retur
0178C0: 6E 20 45 52 52 3B 0D 0A 20 20 20 20 20 20 7D 0D n ERR;.. }.
0178D0: 0A 20 20 20 20 65 6C 73 65 20 69 66 28 6C 69 6E . else if(lin
0178E0: 5B 69 5D 21 3D 4E 55 4C 4C 29 20 72 65 74 75 72 [i]!=NULL) retur
0178F0: 6E 20 45 52 52 3B 0D 0A 20 20 20 20 7D 0D 0A 20 n ERR;.. }..
017900: 20 20 20 20 20 20 2B 2B 6E 65 77 63 6F 6C 3B 0D ++newcol;.
017910: 0A 20 20 20 20 20 20 69 66 28 74 61 62 70 6F 73 . if(tabpos
017920: 28 6E 65 77 63 6F 6C 2C 20 74 61 62 73 29 3D 3D (newcol, tabs)==
017930: 59 45 53 29 20 7B 0D 0A 20 20 20 20 20 20 20 20 YES) {..
017940: 63 6F 75 74 28 27 5C 74 27 2C 20 73 74 64 6F 75 cout('\t', stdou
017950: 74 29 3B 0D 0A 20 20 20 20 20 20 20 20 63 6F 6C t);.. col
017960: 3D 6E 65 77 63 6F 6C 3B 0D 0A 20 20 20 20 20 20 =newcol;..
017970: 20 20 7D 0D 0A 20 20 20 20 20 20 7D 0D 0A 20 20 }.. }..
017980: 20 20 69 66 28 63 3D 3D 27 5C 74 27 29 20 7B 0D if(c=='\t') {.
017990: 0A 20 20 20 20 20 20 77 68 69 6C 65 28 74 61 62 . while(tab
0179A0: 70 6F 73 28 6E 65 77 63 6F 6C 2C 20 74 61 62 73 pos(newcol, tabs
0179B0: 29 3D 3D 4E 4F 29 20 2B 2B 6E 65 77 63 6F 6C 3B )==NO) ++newcol;
0179C0: 0D 0A 20 20 20 20 20 20 63 6F 75 74 28 27 5C 74 .. cout('\t
0179D0: 27 2C 20 73 74 64 6F 75 74 29 3B 0D 0A 20 20 20 ', stdout);..
0179E0: 20 20 20 63 6F 6C 3D 6E 65 77 63 6F 6C 3B 0D 0A col=newcol;..
0179F0: 20 20 20 20 20 20 63 6F 6E 74 69 6E 75 65 3B 0D continue;.
017A00: 0A 20 20 20 20 20 20 7D 0D 0A 20 20 20 20 77 68 . }.. wh
017A10: 69 6C 65 28 63 6F 6C 3C 6E 65 77 63 6F 6C 29 20 ile(col<newcol)
017A20: 7B 0D 0A 20 20 20 20 20 20 63 6F 75 74 28 27 20 {.. cout('
017A30: 27 2C 20 73 74 64 6F 75 74 29 3B 0D 0A 20 20 20 ', stdout);..
017A40: 20 20 20 2B 2B 63 6F 6C 3B 0D 0A 20 20 20 20 20 ++col;..
017A50: 20 7D 0D 0A 20 20 20 20 69 66 28 63 3D 3D 45 4F }.. if(c==EO
017A60: 46 29 20 62 72 65 61 6B 3B 0D 0A 20 20 20 20 63 F) break;.. c
017A70: 6F 75 74 28 63 2C 20 73 74 64 6F 75 74 29 3B 0D out(c, stdout);.
017A80: 0A 20 20 20 20 69 66 28 63 3D 3D 27 5C 6E 27 29 . if(c=='\n')
017A90: 20 63 6F 6C 3D 31 3B 0D 0A 20 20 20 20 65 6C 73 col=1;.. els
017AA0: 65 20 69 66 28 63 3D 3D 27 5C 62 27 29 20 2D 2D e if(c=='\b') --
017AB0: 63 6F 6C 3B 20 2F 2A 20 6F 6B 20 69 66 20 69 74 col; /* ok if it
017AC0: 20 67 6F 65 73 20 6E 65 67 20 2A 2F 0D 0A 20 20 goes neg */..
017AD0: 20 20 65 6C 73 65 20 2B 2B 63 6F 6C 3B 0D 0A 20 else ++col;..
017AE0: 20 20 20 7D 0D 0A 20 20 66 63 6C 6F 73 65 28 73 }.. fclose(s
017AF0: 74 64 6F 75 74 29 3B 0D 0A 20 20 7D 0D 0A 23 69 tdout);.. }..#i
017B00: 20 69 66 28 28 66 72 6F 6D 3D 3D 74 6F 29 26 28 if((from==to)&(
017B10: 67 6C 6F 62 3D 3D 4E 4F 29 29 20 7B 0D 0A 20 20 glob==NO)) {..
017B20: 20 20 6A 3D 66 72 6F 6D 2D 63 6F 6E 74 65 78 74 j=from-context
017B30: 3B 0D 0A 20 20 20 20 6B 3D 74 6F 2B 63 6F 6E 74 ;.. k=to+cont
017B40: 65 78 74 3B 0D 0A 20 20 20 20 7D 0D 0A 20 20 65 ext;.. }.. e
017B50: 6C 73 65 20 7B 0D 0A 20 20 20 20 6A 3D 66 72 6F lse {.. j=fro
017B60: 6D 3B 0D 0A 20 20 20 20 6B 3D 74 6F 3B 0D 0A 20 m;.. k=to;..
017B70: 20 20 20 7D 0D 0A 20 20 69 66 28 6A 20 3C 20 31 }.. if(j < 1
017B80: 29 20 6A 3D 31 3B 0D 0A 20 20 69 66 28 6B 20 3E ) j=1;.. if(k >
017B90: 20 6C 61 73 74 6C 6E 29 20 6B 3D 6C 61 73 74 6C lastln) k=lastl
017BA0: 6E 3B 0D 0A 20 20 69 66 28 67 6C 6F 62 3D 3D 4E n;.. if(glob==N
017BB0: 4F 29 20 66 70 75 74 73 28 43 4C 45 41 52 2C 20 O) fputs(CLEAR,
017BC0: 73 74 64 6F 75 74 29 3B 0D 0A 20 20 77 68 69 6C stdout);.. whil
017BD0: 65 28 6A 20 3C 3D 20 6B 29 20 7B 0D 0A 20 20 20 e(j <= k) {..
017BE0: 20 69 66 28 70 6F 6C 6C 28 59 45 53 29 29 20 7B if(poll(YES)) {
017BF0: 0D 0A 20 20 20 20 20 20 2F 2A 20 75 6E 64 65 72 .. /* under
017C00: 66 6C 6F 77 20 68 61 6E 64 6C 65 64 20 69 6E 20 flow handled in
017C10: 64 6F 63 6D 64 28 29 20 2A 2F 0D 0A 20 20 20 20 docmd() */..
017C20: 20 20 63 75 72 6C 6E 20 3D 20 6A 20 2D 20 63 6F curln = j - co
017C30: 6E 74 65 78 74 3B 0D 0A 20 20 20 20 20 20 72 65 ntext;.. re
017C40: 74 75 72 6E 20 4F 4B 3B 0D 0A 20 20 20 20 20 20 turn OK;..
017C50: 7D 0D 0A 20 20 20 20 69 66 28 28 6A 3D 3D 74 6F }.. if((j==to
017C60: 29 26 28 67 6C 6F 62 3D 3D 4E 4F 29 29 20 70 72 )&(glob==NO)) pr
017C70: 65 66 3D 43 4C 46 4C 41 47 3B 0D 0A 20 20 20 20 ef=CLFLAG;..
017C80: 65 6C 73 65 20 70 72 65 66 3D 27 20 27 3B 0D 0A else pref=' ';..
017C90: 20 20 20 20 67 65 74 74 78 74 28 6A 2B 2B 29 3B gettxt(j++);
017CA0: 0D 0A 20 20 20 20 66 70 75 74 63 28 70 72 65 66 .. fputc(pref
017CB0: 2C 20 73 74 64 6F 75 74 29 3B 0D 0A 20 20 20 20 , stdout);..
017CC0: 66 70 75 74 73 28 74 78 74 2C 20 73 74 64 6F 75 fputs(txt, stdou
017CD0: 74 29 3B 0D 0A 20 20 20 20 66 70 75 74 63 28 27 t);.. fputc('
017CE0: 5C 6E 27 2C 20 73 74 64 6F 75 74 29 3B 0D 0A 20 \n', stdout);..
017CF0: 20 20 20 7D 0D 0A 20 20 63 75 72 6C 6E 3D 74 6F }.. curln=to
017D00: 54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 00 00 00 Track-Info......
017D10: 14 00 01 00 02 09 52 E5 14 00 41 02 00 00 00 02 ......R...A.....
017D20: 14 00 46 02 00 00 00 02 14 00 42 02 00 00 00 02 ..F.......B.....
017D30: 14 00 47 02 00 00 00 02 14 00 43 02 00 00 00 02 ..G.......C.....
017D40: 14 00 48 02 00 00 00 02 14 00 44 02 00 00 00 02 ..H.......D.....
017D50: 14 00 49 02 00 00 00 02 14 00 45 02 00 00 00 02 ..I.......E.....
017D60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
017D70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
017D80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
017D90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
017DA0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
017DB0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
017DC0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
017DD0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
017DE0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
017DF0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
017E00: 6E 63 6C 75 64 65 20 22 73 65 74 74 61 62 2E 63 nclude "settab.c
017E10: 22 0D 0A 23 69 6E 63 6C 75 64 65 20 22 74 61 62 "..#include "tab
017E20: 70 6F 73 2E 63 22 0D 0A 23 69 6E 63 6C 75 64 65 pos.c"..#include
017E30: 20 22 6F 75 74 2E 63 22 0D 0A 0D 0A 1A 1A 1A 1A "out.c"........
017E40: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
017E50: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
017E60: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
017E70: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
017E80: 20 20 69 66 28 63 3D 3D 27 5C 74 27 29 20 7B 0D if(c=='\t') {.
017E90: 0A 20 20 20 20 20 20 77 68 69 6C 65 28 74 61 62 . while(tab
017EA0: 70 6F 73 28 6E 65 77 63 6F 6C 2C 20 74 61 62 73 pos(newcol, tabs
017EB0: 29 3D 3D 4E 4F 29 20 2B 2B 6E 65 77 63 6F 6C 3B )==NO) ++newcol;
017EC0: 0D 0A 20 20 20 20 20 20 63 6F 75 74 28 27 5C 74 .. cout('\t
017ED0: 27 2C 20 73 74 64 6F 75 74 29 3B 0D 0A 20 20 20 ', stdout);..
017EE0: 20 20 20 63 6F 6C 3D 6E 65 77 63 6F 6C 3B 0D 0A col=newcol;..
017EF0: 20 20 20 20 20 20 63 6F 6E 74 69 6E 75 65 3B 0D continue;.
017F00: 0A 20 20 20 20 20 20 7D 0D 0A 20 20 20 20 77 68 . }.. wh
017F10: 69 6C 65 28 63 6F 6C 3C 6E 65 77 63 6F 6C 29 20 ile(col<newcol)
017F20: 7B 0D 0A 20 20 20 20 20 20 63 6F 75 74 28 27 20 {.. cout('
017F30: 27 2C 20 73 74 64 6F 75 74 29 3B 0D 0A 20 20 20 ', stdout);..
017F40: 20 20 20 2B 2B 63 6F 6C 3B 0D 0A 20 20 20 20 20 ++col;..
017F50: 20 7D 0D 0A 20 20 20 20 69 66 28 63 3D 3D 45 4F }.. if(c==EO
017F60: 46 29 20 62 72 65 61 6B 3B 0D 0A 20 20 20 20 63 F) break;.. c
017F70: 6F 75 74 28 63 2C 20 73 74 64 6F 75 74 29 3B 0D out(c, stdout);.
017F80: 0A 20 20 20 20 69 66 28 63 3D 3D 27 5C 6E 27 29 . if(c=='\n')
017F90: 20 63 6F 6C 3D 31 3B 0D 0A 20 20 20 20 65 6C 73 col=1;.. els
017FA0: 65 20 69 66 28 63 3D 3D 27 5C 62 27 29 20 2D 2D e if(c=='\b') --
017FB0: 63 6F 6C 3B 20 2F 2A 20 6F 6B 20 69 66 20 69 74 col; /* ok if it
017FC0: 20 67 6F 65 73 20 6E 65 67 20 2A 2F 0D 0A 20 20 goes neg */..
017FD0: 20 20 65 6C 73 65 20 2B 2B 63 6F 6C 3B 0D 0A 20 else ++col;..
017FE0: 20 20 20 7D 0D 0A 20 20 66 63 6C 6F 73 65 28 73 }.. fclose(s
017FF0: 74 64 6F 75 74 29 3B 0D 0A 20 20 7D 0D 0A 23 69 tdout);.. }..#i
018000: 70 61 74 29 3D 3D 45 52 52 29 20 65 72 72 6F 72 pat)==ERR) error
018010: 28 22 70 61 74 74 65 72 6E 20 74 6F 6F 20 6C 6F ("pattern too lo
018020: 6E 67 5C 6E 22 29 3B 0D 0A 20 20 77 68 69 6C 65 ng\n");.. while
018030: 28 66 67 65 74 73 28 6C 69 6E 2C 20 4D 41 58 4C (fgets(lin, MAXL
018040: 49 4E 31 2C 20 73 74 64 69 6E 29 21 3D 4E 55 4C IN1, stdin)!=NUL
018050: 4C 29 20 7B 0D 0A 20 20 20 20 70 6F 6C 6C 28 59 L) {.. poll(Y
018060: 45 53 29 3B 0D 0A 20 20 20 20 74 72 69 6D 28 6C ES);.. trim(l
018070: 69 6E 29 3B 0D 0A 20 20 20 20 69 66 28 6D 61 74 in);.. if(mat
018080: 63 68 28 6C 69 6E 2C 20 70 61 74 29 29 20 7B 0D ch(lin, pat)) {.
018090: 0A 20 20 20 20 20 20 69 66 28 61 72 67 69 3D 3D . if(argi==
0180A0: 30 29 20 6C 6F 75 74 28 6C 69 6E 2C 20 73 74 64 0) lout(lin, std
0180B0: 6F 75 74 29 3B 0D 0A 20 20 20 20 20 20 7D 0D 0A out);.. }..
0180C0: 20 20 20 20 65 6C 73 65 20 69 66 28 61 72 67 69 else if(argi
0180D0: 3D 3D 31 29 20 6C 6F 75 74 28 6C 69 6E 2C 20 73 ==1) lout(lin, s
0180E0: 74 64 6F 75 74 29 3B 0D 0A 20 20 20 20 7D 0D 0A tdout);.. }..
0180F0: 20 20 66 63 6C 6F 73 65 28 73 74 64 6F 75 74 29 fclose(stdout)
018100: 3B 0D 0A 20 20 7D 0D 0A 0D 0A 67 65 74 70 61 74 ;.. }....getpat
018110: 28 61 72 67 2C 20 70 61 74 29 20 63 68 61 72 20 (arg, pat) char
018120: 61 72 67 5B 5D 2C 20 70 61 74 5B 5D 3B 20 7B 0D arg[], pat[]; {.
018130: 0A 20 20 72 65 74 75 72 6E 28 6D 61 6B 70 61 74 . return(makpat
018140: 28 61 72 67 2C 20 30 2C 20 4E 55 4C 4C 2C 20 70 (arg, 0, NULL, p
018150: 61 74 29 29 3B 0D 0A 20 20 7D 0D 0A 0D 0A 23 69 at));.. }....#i
018160: 6E 63 6C 75 64 65 20 22 70 61 74 2E 63 22 0D 0A nclude "pat.c"..
018170: 23 69 6E 63 6C 75 64 65 20 22 65 72 72 6F 72 2E #include "error.
018180: 63 22 0D 0A 23 69 6E 63 6C 75 64 65 20 22 69 6E c"..#include "in
018190: 64 65 78 2E 63 22 0D 0A 23 69 6E 63 6C 75 64 65 dex.c"..#include
0181A0: 20 22 6F 75 74 2E 63 22 0D 0A 23 69 6E 63 6C 75 "out.c"..#inclu
0181B0: 64 65 20 22 74 72 69 6D 2E 63 22 0D 0A 0D 0A 1A de "trim.c".....
0181C0: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
0181D0: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
0181E0: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
0181F0: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
018200: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
018210: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
018220: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
018230: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
018240: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
018250: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
018260: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
018270: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
018280: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
018290: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0182A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0182B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0182C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0182D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0182E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0182F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
018300: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
018310: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
018320: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
018330: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
018340: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
018350: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
018360: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
018370: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
018380: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
018390: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0183A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0183B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0183C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0183D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0183E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0183F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
018400: 2F 2A 0D 0A 2A 2A 20 66 6E 74 2E 63 20 2D 2D 20 /*..** fnt.c --
018410: 63 68 6F 6F 73 65 20 46 58 20 70 72 69 6E 74 65 choose FX printe
018420: 72 20 66 6F 6E 74 0D 0A 2A 2F 0D 0A 23 69 6E 63 r font..*/..#inc
018430: 6C 75 64 65 20 3C 73 74 64 69 6F 2E 68 3E 0D 0A lude <stdio.h>..
018440: 23 69 6E 63 6C 75 64 65 20 22 74 6F 6F 6C 73 2E #include "tools.
018450: 68 22 0D 0A 23 64 65 66 69 6E 65 20 4E 4F 43 43 h"..#define NOCC
018460: 41 52 47 43 0D 0A 63 68 61 72 0D 0A 20 20 20 63 ARGC..char.. c
018470: 6F 6E 64 65 6E 73 65 64 5B 5D 3D 7B 32 37 2C 20 ondensed[]={27,
018480: 31 35 2C 20 30 7D 2C 0D 0A 20 20 78 63 6F 6E 64 15, 0},.. xcond
018490: 65 6E 73 65 64 5B 5D 3D 7B 20 20 20 20 31 38 2C ensed[]={ 18,
0184A0: 20 30 7D 2C 0D 0A 20 20 20 64 6F 75 62 6C 65 5B 0},.. double[
0184B0: 5D 3D 7B 32 37 2C 20 27 47 27 2C 20 30 7D 2C 0D ]={27, 'G', 0},.
0184C0: 0A 20 20 78 64 6F 75 62 6C 65 5B 5D 3D 7B 32 37 . xdouble[]={27
0184D0: 2C 20 27 48 27 2C 20 30 7D 2C 0D 0A 20 20 20 65 , 'H', 0},.. e
0184E0: 6C 69 74 65 5B 5D 3D 7B 32 37 2C 20 27 4D 27 2C lite[]={27, 'M',
0184F0: 20 30 7D 2C 0D 0A 20 20 78 65 6C 69 74 65 5B 5D 0},.. xelite[]
018500: 3D 7B 32 37 2C 20 27 50 27 2C 20 30 7D 2C 0D 0A ={27, 'P', 0},..
018510: 20 20 20 65 6D 70 68 61 73 69 7A 65 64 5B 5D 3D emphasized[]=
018520: 7B 32 37 2C 20 27 45 27 2C 20 30 7D 2C 0D 0A 20 {27, 'E', 0},..
018530: 20 78 65 6D 70 68 61 73 69 7A 65 64 5B 5D 3D 7B xemphasized[]={
018540: 32 37 2C 20 27 46 27 2C 20 30 7D 2C 0D 0A 20 20 27, 'F', 0},..
018550: 20 65 6E 6C 61 72 67 65 64 5B 5D 3D 7B 32 37 2C enlarged[]={27,
018560: 20 27 57 27 2C 20 34 39 2C 20 30 7D 2C 0D 0A 20 'W', 49, 0},..
018570: 20 78 65 6E 6C 61 72 67 65 64 5B 5D 3D 7B 32 37 xenlarged[]={27
018580: 2C 20 27 57 27 2C 20 34 38 2C 20 30 7D 2C 0D 0A , 'W', 48, 0},..
018590: 20 20 20 69 74 61 6C 69 63 73 5B 5D 3D 7B 32 37 italics[]={27
0185A0: 2C 20 27 34 27 2C 20 30 7D 2C 0D 0A 20 20 78 69 , '4', 0},.. xi
0185B0: 74 61 6C 69 63 73 5B 5D 3D 7B 32 37 2C 20 27 35 talics[]={27, '5
0185C0: 27 2C 20 30 7D 2C 0D 0A 20 20 20 70 69 63 61 5B ', 0},.. pica[
0185D0: 5D 3D 7B 32 37 2C 20 27 50 27 2C 20 30 7D 2C 0D ]={27, 'P', 0},.
0185E0: 0A 20 20 78 70 69 63 61 5B 5D 3D 7B 32 37 2C 20 . xpica[]={27,
0185F0: 27 4D 27 2C 20 30 7D 2C 0D 0A 20 20 20 73 75 62 'M', 0},.. sub
018600: 0D 0A 2F 2A 0D 0A 2A 2A 20 65 72 72 6F 72 2E 63 ../*..** error.c
018610: 20 2D 2D 20 64 69 73 70 6C 61 79 20 6D 65 73 73 -- display mess
018620: 61 67 65 20 73 74 72 20 61 6E 64 20 61 62 6F 72 age str and abor
018630: 74 0D 0A 2A 2F 0D 0A 65 72 72 6F 72 28 73 74 72 t..*/..error(str
018640: 29 20 63 68 61 72 20 2A 73 74 72 3B 20 7B 0D 0A ) char *str; {..
018650: 20 20 66 70 75 74 73 28 73 74 72 2C 20 73 74 64 fputs(str, std
018660: 65 72 72 29 3B 0D 0A 20 20 66 70 75 74 63 28 27 err);.. fputc('
018670: 5C 6E 27 2C 20 73 74 64 65 72 72 29 3B 0D 0A 20 \n', stderr);..
018680: 20 61 62 6F 72 74 28 37 29 3B 0D 0A 20 20 7D 0D abort(7);.. }.
018690: 0A 1A 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0186A0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0186B0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0186C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0186D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0186E0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0186F0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
018700: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
018710: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
018720: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
018730: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
018740: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
018750: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
018760: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
018770: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
018780: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
018790: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0187A0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0187B0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0187C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0187D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0187E0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0187F0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
018800: 73 63 72 69 70 74 5B 5D 3D 7B 32 37 2C 20 27 53 script[]={27, 'S
018810: 27 2C 20 34 39 2C 20 30 7D 2C 0D 0A 20 20 78 73 ', 49, 0},.. xs
018820: 75 62 73 63 72 69 70 74 5B 5D 3D 7B 32 37 2C 20 ubscript[]={27,
018830: 27 54 27 2C 20 30 7D 2C 0D 0A 20 20 20 73 75 70 'T', 0},.. sup
018840: 65 72 73 63 72 69 70 74 5B 5D 3D 7B 32 37 2C 20 erscript[]={27,
018850: 27 53 27 2C 20 34 38 2C 20 30 7D 2C 0D 0A 20 20 'S', 48, 0},..
018860: 78 73 75 70 65 72 73 63 72 69 70 74 5B 5D 3D 7B xsuperscript[]={
018870: 32 37 2C 20 27 54 27 2C 20 30 7D 2C 0D 0A 20 20 27, 'T', 0},..
018880: 20 70 72 6F 70 6F 72 74 69 6F 6E 61 6C 5B 5D 3D proportional[]=
018890: 7B 32 37 2C 20 27 70 27 2C 20 34 39 2C 20 30 7D {27, 'p', 49, 0}
0188A0: 2C 0D 0A 20 20 78 70 72 6F 70 6F 72 74 69 6F 6E ,.. xproportion
0188B0: 61 6C 5B 5D 3D 7B 32 37 2C 20 27 70 27 2C 20 34 al[]={27, 'p', 4
0188C0: 38 2C 20 30 7D 3B 0D 0A 63 68 61 72 20 73 74 72 8, 0};..char str
0188D0: 5B 31 35 5D 2C 20 2A 70 74 72 3D 22 4C 53 54 3A [15], *ptr="LST:
0188E0: 22 3B 0D 0A 69 6E 74 20 69 2C 20 66 64 3B 0D 0A ";..int i, fd;..
0188F0: 6D 61 69 6E 28 61 72 67 63 2C 20 61 72 67 76 29 main(argc, argv)
018900: 20 69 6E 74 20 61 72 67 63 2C 20 2A 61 72 67 76 int argc, *argv
018910: 3B 20 7B 0D 0A 20 20 69 66 28 67 65 74 61 72 67 ; {.. if(getarg
018920: 28 31 2C 20 73 74 72 2C 20 31 35 2C 20 61 72 67 (1, str, 15, arg
018930: 63 2C 20 61 72 67 76 29 20 21 3D 20 45 4F 46 29 c, argv) != EOF)
018940: 20 70 74 72 20 3D 20 73 74 72 3B 0D 0A 20 20 69 ptr = str;.. i
018950: 66 28 2A 73 74 72 20 3D 3D 20 27 2D 27 29 20 7B f(*str == '-') {
018960: 0D 0A 20 20 20 20 66 70 75 74 73 28 22 75 73 61 .. fputs("usa
018970: 67 65 3A 20 46 4E 54 20 5B 64 65 76 69 63 65 5D ge: FNT [device]
018980: 22 2C 20 73 74 64 65 72 72 29 3B 0D 0A 20 20 20 ", stderr);..
018990: 20 61 62 6F 72 74 28 37 29 3B 0D 0A 20 20 20 20 abort(7);..
0189A0: 7D 0D 0A 20 20 69 66 28 28 66 64 3D 66 6F 70 65 }.. if((fd=fope
0189B0: 6E 28 70 74 72 2C 20 22 77 22 29 29 20 3D 3D 20 n(ptr, "w")) ==
0189C0: 30 29 20 63 61 6E 74 28 70 74 72 29 3B 0D 0A 20 0) cant(ptr);..
0189D0: 20 64 6F 20 7B 0D 0A 20 20 20 20 66 70 75 74 73 do {.. fputs
0189E0: 28 43 4C 45 41 52 2C 20 73 74 64 6F 75 74 29 3B (CLEAR, stdout);
0189F0: 0D 0A 20 20 20 20 66 70 75 74 73 28 22 20 20 20 .. fputs("
018A00: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
018A10: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
018A20: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
018A30: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
018A40: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
018A50: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
018A60: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
018A70: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
018A80: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
018A90: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
018AA0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
018AB0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
018AC0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
018AD0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
018AE0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
018AF0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
018B00: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
018B10: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
018B20: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
018B30: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
018B40: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
018B50: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
018B60: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
018B70: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
018B80: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
018B90: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
018BA0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
018BB0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
018BC0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
018BD0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
018BE0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
018BF0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
018C00: 20 53 65 6C 65 63 74 20 45 70 73 6F 6E 20 46 58 Select Epson FX
018C10: 20 4F 70 74 69 6F 6E 20 28 52 45 54 55 52 4E 20 Option (RETURN
018C20: 74 6F 20 65 78 69 74 29 5C 6E 5C 6E 22 2C 20 73 to exit)\n\n", s
018C30: 74 64 6F 75 74 29 3B 0D 0A 20 20 20 20 66 70 75 tdout);.. fpu
018C40: 74 73 28 22 73 65 74 20 20 63 6C 65 61 72 20 20 ts("set clear
018C50: 20 6D 6F 64 65 5C 6E 5C 6E 22 2C 20 73 74 64 6F mode\n\n", stdo
018C60: 75 74 29 3B 0D 0A 20 20 20 20 66 70 75 74 73 28 ut);.. fputs(
018C70: 22 20 31 20 20 20 20 20 32 20 20 20 20 20 63 6F " 1 2 co
018C80: 6E 64 65 6E 73 65 64 20 20 20 20 5C 6E 22 2C 20 ndensed \n",
018C90: 73 74 64 6F 75 74 29 3B 0D 0A 20 20 20 20 66 70 stdout);.. fp
018CA0: 75 74 73 28 22 20 33 20 20 20 20 20 34 20 20 20 uts(" 3 4
018CB0: 20 20 64 6F 75 62 6C 65 20 73 74 72 69 6B 65 5C double strike\
018CC0: 6E 22 2C 20 73 74 64 6F 75 74 29 3B 0D 0A 20 20 n", stdout);..
018CD0: 20 20 66 70 75 74 73 28 22 20 35 20 20 20 20 20 fputs(" 5
018CE0: 36 20 20 20 20 20 65 6C 69 74 65 5C 6E 22 2C 20 6 elite\n",
018CF0: 73 74 64 6F 75 74 29 3B 0D 0A 20 20 20 20 66 70 stdout);.. fp
018D00: 75 74 73 28 22 20 37 20 20 20 20 20 38 20 20 20 uts(" 7 8
018D10: 20 20 65 6D 70 68 61 73 69 7A 65 64 20 20 20 5C emphasized \
018D20: 6E 22 2C 20 73 74 64 6F 75 74 29 3B 0D 0A 20 20 n", stdout);..
018D30: 20 20 66 70 75 74 73 28 22 20 39 20 20 20 20 31 fputs(" 9 1
018D40: 30 20 20 20 20 20 65 6E 6C 61 72 67 65 64 5C 6E 0 enlarged\n
018D50: 22 2C 20 73 74 64 6F 75 74 29 3B 0D 0A 20 20 20 ", stdout);..
018D60: 20 66 70 75 74 73 28 22 31 31 20 20 20 20 31 32 fputs("11 12
018D70: 20 20 20 20 20 69 74 61 6C 69 63 73 5C 6E 22 2C italics\n",
018D80: 20 73 74 64 6F 75 74 29 3B 0D 0A 20 20 20 20 66 stdout);.. f
018D90: 70 75 74 73 28 22 31 33 20 20 20 20 31 34 20 20 puts("13 14
018DA0: 20 20 20 70 69 63 61 5C 6E 22 2C 20 73 74 64 6F pica\n", stdo
018DB0: 75 74 29 3B 0D 0A 20 20 20 20 66 70 75 74 73 28 ut);.. fputs(
018DC0: 22 31 35 20 20 20 20 31 36 20 20 20 20 20 73 75 "15 16 su
018DD0: 62 73 63 72 69 70 74 5C 6E 22 2C 20 73 74 64 6F bscript\n", stdo
018DE0: 75 74 29 3B 0D 0A 20 20 20 20 66 70 75 74 73 28 ut);.. fputs(
018DF0: 22 31 37 20 20 20 20 31 38 20 20 20 20 20 73 75 "17 18 su
018E00: 2F 2A 0D 0A 2A 2A 20 66 6E 64 2E 63 20 2D 2D 20 /*..** fnd.c --
018E10: 66 69 6E 64 20 70 61 74 74 65 72 6E 73 20 69 6E find patterns in
018E20: 20 74 65 78 74 20 66 69 6C 65 0D 0A 2A 2A 0D 0A text file..**..
018E30: 2A 2A 20 43 6F 70 79 72 69 67 68 74 20 31 39 38 ** Copyright 198
018E40: 32 20 4A 2E 20 45 2E 20 48 65 6E 64 72 69 78 2E 2 J. E. Hendrix.
018E50: 20 20 41 6C 6C 20 72 69 67 68 74 73 20 72 65 73 All rights res
018E60: 65 72 76 65 64 2E 0D 0A 2A 2F 0D 0A 23 69 6E 63 erved...*/..#inc
018E70: 6C 75 64 65 20 3C 73 74 64 69 6F 2E 68 3E 0D 0A lude <stdio.h>..
018E80: 23 69 6E 63 6C 75 64 65 20 22 74 6F 6F 6C 73 2E #include "tools.
018E90: 68 22 0D 0A 23 64 65 66 69 6E 65 20 4E 4F 43 43 h"..#define NOCC
018EA0: 41 52 47 43 0D 0A 23 64 65 66 69 6E 65 20 4D 41 ARGC..#define MA
018EB0: 58 41 52 47 20 34 39 0D 0A 23 64 65 66 69 6E 65 XARG 49..#define
018EC0: 20 4D 41 58 4C 49 4E 31 20 28 4D 41 58 4C 49 4E MAXLIN1 (MAXLIN
018ED0: 45 2B 31 29 0D 0A 63 68 61 72 20 61 72 67 5B 4D E+1)..char arg[M
018EE0: 41 58 41 52 47 5D 2C 20 6C 69 6E 5B 4D 41 58 4C AXARG], lin[MAXL
018EF0: 49 4E 31 5D 2C 20 70 61 74 5B 4D 41 58 50 41 54 IN1], pat[MAXPAT
018F00: 5D 3B 0D 0A 69 6E 74 20 65 72 72 2C 20 61 72 67 ];..int err, arg
018F10: 69 3B 0D 0A 6D 61 69 6E 28 61 72 67 63 2C 20 61 i;..main(argc, a
018F20: 72 67 76 29 20 69 6E 74 20 61 72 67 63 2C 20 2A rgv) int argc, *
018F30: 61 72 67 76 3B 20 7B 0D 0A 20 20 61 75 78 62 75 argv; {.. auxbu
018F40: 66 28 73 74 64 69 6E 2C 20 34 30 39 36 29 3B 0D f(stdin, 4096);.
018F50: 0A 20 20 65 72 72 3D 4E 4F 3B 0D 0A 20 20 69 66 . err=NO;.. if
018F60: 28 28 67 65 74 61 72 67 28 31 2C 20 61 72 67 2C ((getarg(1, arg,
018F70: 20 4D 41 58 41 52 47 2C 20 61 72 67 63 2C 20 61 MAXARG, argc, a
018F80: 72 67 76 29 3D 3D 45 4F 46 29 7C 28 61 72 67 5B rgv)==EOF)|(arg[
018F90: 30 5D 3D 3D 27 2D 27 29 29 0D 0A 20 20 20 20 65 0]=='-')).. e
018FA0: 72 72 6F 72 28 22 75 73 61 67 65 3A 20 46 4E 44 rror("usage: FND
018FB0: 20 5B 7E 5D 70 61 74 74 65 72 6E 5C 6E 22 29 3B [~]pattern\n");
018FC0: 0D 0A 20 20 69 66 28 61 72 67 5B 30 5D 3D 3D 4E .. if(arg[0]==N
018FD0: 4F 54 29 20 61 72 67 69 3D 31 3B 20 65 6C 73 65 OT) argi=1; else
018FE0: 20 61 72 67 69 3D 30 3B 0D 0A 20 20 69 66 28 67 argi=0;.. if(g
018FF0: 65 74 70 61 74 28 61 72 67 2B 61 72 67 69 2C 20 etpat(arg+argi,
019000: 54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 00 00 00 Track-Info......
019010: 15 00 01 00 02 09 52 E5 15 00 41 02 00 00 00 02 ......R...A.....
019020: 15 00 46 02 00 00 00 02 15 00 42 02 00 00 00 02 ..F.......B.....
019030: 15 00 47 02 00 00 00 02 15 00 43 02 00 00 00 02 ..G.......C.....
019040: 15 00 48 02 00 00 00 02 15 00 44 02 00 00 00 02 ..H.......D.....
019050: 15 00 49 02 00 00 00 02 15 00 45 02 00 00 00 02 ..I.......E.....
019060: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
019070: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
019080: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
019090: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0190A0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0190B0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0190C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0190D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0190E0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0190F0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
019100: 70 65 72 73 63 72 69 70 74 5C 6E 22 2C 20 73 74 perscript\n", st
019110: 64 6F 75 74 29 3B 0D 0A 20 20 20 20 66 70 75 74 dout);.. fput
019120: 73 28 22 31 39 20 20 20 20 32 30 20 20 20 20 20 s("19 20
019130: 70 72 6F 70 6F 72 74 69 6F 6E 61 6C 5C 6E 22 2C proportional\n",
019140: 20 73 74 64 6F 75 74 29 3B 0D 0A 20 20 20 20 66 stdout);.. f
019150: 70 75 74 73 28 22 5C 6E 73 65 6C 65 63 74 2E 2E puts("\nselect..
019160: 2E 20 22 2C 20 73 74 64 6F 75 74 29 3B 0D 0A 20 . ", stdout);..
019170: 20 20 20 66 67 65 74 73 28 73 74 72 2C 20 31 30 fgets(str, 10
019180: 2C 20 73 74 64 69 6E 29 3B 0D 0A 20 20 20 20 70 , stdin);.. p
019190: 74 72 20 3D 20 73 74 72 3B 0D 0A 20 20 20 20 77 tr = str;.. w
0191A0: 68 69 6C 65 28 2A 70 74 72 29 20 7B 0D 0A 20 20 hile(*ptr) {..
0191B0: 20 20 20 20 69 66 28 2A 70 74 72 20 3D 3D 20 27 if(*ptr == '
0191C0: 5C 6E 27 29 20 2A 70 74 72 3D 4E 55 4C 4C 3B 0D \n') *ptr=NULL;.
0191D0: 0A 20 20 20 20 20 20 2B 2B 70 74 72 3B 0D 0A 20 . ++ptr;..
0191E0: 20 20 20 20 20 7D 0D 0A 20 20 20 20 69 66 28 75 }.. if(u
0191F0: 74 6F 69 28 73 74 72 2C 20 26 69 29 29 20 7B 0D toi(str, &i)) {.
019200: 0A 20 20 20 20 20 20 73 77 69 74 63 68 28 69 29 . switch(i)
019210: 20 7B 0D 0A 20 20 20 20 20 20 20 20 63 61 73 65 {.. case
019220: 20 20 31 3A 20 7B 66 70 75 74 73 28 20 63 6F 6E 1: {fputs( con
019230: 64 65 6E 73 65 64 2C 20 66 64 29 3B 20 62 72 65 densed, fd); bre
019240: 61 6B 3B 7D 0D 0A 20 20 20 20 20 20 20 20 63 61 ak;}.. ca
019250: 73 65 20 20 32 3A 20 7B 66 70 75 74 73 28 78 63 se 2: {fputs(xc
019260: 6F 6E 64 65 6E 73 65 64 2C 20 66 64 29 3B 20 62 ondensed, fd); b
019270: 72 65 61 6B 3B 7D 0D 0A 20 20 20 20 20 20 20 20 reak;}..
019280: 63 61 73 65 20 20 33 3A 20 7B 66 70 75 74 73 28 case 3: {fputs(
019290: 20 64 6F 75 62 6C 65 2C 20 66 64 29 3B 20 62 72 double, fd); br
0192A0: 65 61 6B 3B 7D 0D 0A 20 20 20 20 20 20 20 20 63 eak;}.. c
0192B0: 61 73 65 20 20 34 3A 20 7B 66 70 75 74 73 28 78 ase 4: {fputs(x
0192C0: 64 6F 75 62 6C 65 2C 20 66 64 29 3B 20 62 72 65 double, fd); bre
0192D0: 61 6B 3B 7D 0D 0A 20 20 20 20 20 20 20 20 63 61 ak;}.. ca
0192E0: 73 65 20 20 35 3A 20 7B 66 70 75 74 73 28 20 65 se 5: {fputs( e
0192F0: 6C 69 74 65 2C 20 66 64 29 3B 20 62 72 65 61 6B lite, fd); break
019300: 61 67 65 20 6F 66 66 73 65 74 20 73 70 65 63 69 age offset speci
019310: 66 69 63 61 74 69 6F 6E 20 2A 2F 0D 0A 20 20 70 fication */.. p
019320: 6F 76 61 6C 2C 20 20 20 2F 2A 20 70 61 67 65 20 oval, /* page
019330: 6F 66 66 73 65 74 20 66 6F 72 20 63 75 72 72 65 offset for curre
019340: 6E 74 20 70 61 67 65 20 2A 2F 0D 0A 20 20 74 69 nt page */.. ti
019350: 76 61 6C 2C 20 20 20 2F 2A 20 74 65 6D 70 6F 72 val, /* tempor
019360: 61 72 79 20 69 6E 64 65 6E 74 20 2A 2F 0D 0A 20 ary indent */..
019370: 20 63 65 76 61 6C 2C 20 20 20 2F 2A 20 6E 75 6D ceval, /* num
019380: 62 65 72 20 6F 66 20 6C 69 6E 65 73 20 74 6F 20 ber of lines to
019390: 63 65 6E 74 65 72 20 2A 2F 0D 0A 20 20 75 6C 76 center */.. ulv
0193A0: 61 6C 2C 20 20 20 2F 2A 20 6E 75 6D 62 65 72 20 al, /* number
0193B0: 6F 66 20 6C 69 6E 65 73 20 74 6F 20 75 6E 64 65 of lines to unde
0193C0: 72 6C 69 6E 65 20 2A 2F 0D 0A 20 20 62 66 76 61 rline */.. bfva
0193D0: 6C 2C 20 20 20 2F 2A 20 6E 75 6D 62 65 72 20 6F l, /* number o
0193E0: 66 20 6C 69 6E 65 73 20 74 6F 20 62 6F 6C 64 66 f lines to boldf
0193F0: 61 63 65 20 2A 2F 0D 0A 20 20 69 74 76 61 6C 2C ace */.. itval,
019400: 20 20 20 2F 2A 20 6E 75 6D 62 65 72 20 6F 66 20 /* number of
019410: 6C 69 6E 65 73 20 74 6F 20 69 74 61 6C 69 63 69 lines to italici
019420: 7A 65 20 2A 2F 0D 0A 20 20 64 77 76 61 6C 2C 20 ze */.. dwval,
019430: 20 20 2F 2A 20 6E 75 6D 62 65 72 20 6F 66 20 6C /* number of l
019440: 69 6E 65 73 20 74 6F 20 64 6F 75 62 6C 65 2D 77 ines to double-w
019450: 69 64 65 20 2A 2F 0D 0A 20 20 64 77 61 63 74 2C ide */.. dwact,
019460: 20 20 20 2F 2A 20 64 6F 75 62 6C 65 2D 77 69 64 /* double-wid
019470: 65 20 69 73 20 61 63 74 69 76 65 20 2A 2F 0D 0A e is active */..
019480: 20 20 62 66 73 74 72 69 6B 65 73 2C 20 20 2F 2A bfstrikes, /*
019490: 20 6E 75 6D 62 65 72 20 6F 66 20 62 6F 6C 64 66 number of boldf
0194A0: 61 63 65 20 73 74 72 69 6B 65 73 20 2A 2F 0D 0A ace strikes */..
0194B0: 20 20 63 75 61 63 74 2C 20 20 20 2F 2A 20 63 6F cuact, /* co
0194C0: 6E 74 69 6E 75 6F 75 73 20 75 6E 64 65 72 6C 69 ntinuous underli
0194D0: 6E 65 20 61 63 74 69 76 65 20 69 66 20 3E 20 30 ne active if > 0
0194E0: 20 2A 2F 0D 0A 20 20 6D 70 63 6E 74 2C 20 20 20 */.. mpcnt,
0194F0: 2F 2A 20 6C 69 6E 65 73 20 70 72 69 6E 74 65 64 /* lines printed
019500: 3B 7D 0D 0A 20 20 20 20 20 20 20 20 63 61 73 65 ;}.. case
019510: 20 20 36 3A 20 7B 66 70 75 74 73 28 78 65 6C 69 6: {fputs(xeli
019520: 74 65 2C 20 66 64 29 3B 20 62 72 65 61 6B 3B 7D te, fd); break;}
019530: 0D 0A 20 20 20 20 20 20 20 20 63 61 73 65 20 20 .. case
019540: 37 3A 20 7B 66 70 75 74 73 28 20 65 6D 70 68 61 7: {fputs( empha
019550: 73 69 7A 65 64 2C 20 66 64 29 3B 20 62 72 65 61 sized, fd); brea
019560: 6B 3B 7D 0D 0A 20 20 20 20 20 20 20 20 63 61 73 k;}.. cas
019570: 65 20 20 38 3A 20 7B 66 70 75 74 73 28 78 65 6D e 8: {fputs(xem
019580: 70 68 61 73 69 7A 65 64 2C 20 66 64 29 3B 20 62 phasized, fd); b
019590: 72 65 61 6B 3B 7D 0D 0A 20 20 20 20 20 20 20 20 reak;}..
0195A0: 63 61 73 65 20 20 39 3A 20 7B 66 70 75 74 73 28 case 9: {fputs(
0195B0: 20 65 6E 6C 61 72 67 65 64 2C 20 66 64 29 3B 20 enlarged, fd);
0195C0: 62 72 65 61 6B 3B 7D 0D 0A 20 20 20 20 20 20 20 break;}..
0195D0: 20 63 61 73 65 20 31 30 3A 20 7B 66 70 75 74 73 case 10: {fputs
0195E0: 28 78 65 6E 6C 61 72 67 65 64 2C 20 66 64 29 3B (xenlarged, fd);
0195F0: 20 62 72 65 61 6B 3B 7D 0D 0A 20 20 20 20 20 20 break;}..
019600: 20 20 63 61 73 65 20 31 31 3A 20 7B 66 70 75 74 case 11: {fput
019610: 73 28 20 69 74 61 6C 69 63 73 2C 20 66 64 29 3B s( italics, fd);
019620: 20 62 72 65 61 6B 3B 7D 0D 0A 20 20 20 20 20 20 break;}..
019630: 20 20 63 61 73 65 20 31 32 3A 20 7B 66 70 75 74 case 12: {fput
019640: 73 28 78 69 74 61 6C 69 63 73 2C 20 66 64 29 3B s(xitalics, fd);
019650: 20 62 72 65 61 6B 3B 7D 0D 0A 20 20 20 20 20 20 break;}..
019660: 20 20 63 61 73 65 20 31 33 3A 20 7B 66 70 75 74 case 13: {fput
019670: 73 28 20 70 69 63 61 2C 20 66 64 29 3B 20 62 72 s( pica, fd); br
019680: 65 61 6B 3B 7D 0D 0A 20 20 20 20 20 20 20 20 63 eak;}.. c
019690: 61 73 65 20 31 34 3A 20 7B 66 70 75 74 73 28 78 ase 14: {fputs(x
0196A0: 70 69 63 61 2C 20 66 64 29 3B 20 62 72 65 61 6B pica, fd); break
0196B0: 3B 7D 0D 0A 20 20 20 20 20 20 20 20 63 61 73 65 ;}.. case
0196C0: 20 31 35 3A 20 7B 66 70 75 74 73 28 20 73 75 62 15: {fputs( sub
0196D0: 73 63 72 69 70 74 2C 20 66 64 29 3B 20 62 72 65 script, fd); bre
0196E0: 61 6B 3B 7D 0D 0A 20 20 20 20 20 20 20 20 63 61 ak;}.. ca
0196F0: 73 65 20 31 36 3A 20 7B 66 70 75 74 73 28 78 73 se 16: {fputs(xs
019700: 20 73 69 6E 63 65 20 6C 61 73 74 20 2E 6D 70 20 since last .mp
019710: 70 61 67 65 20 62 72 65 61 6B 20 2A 2F 0D 0A 20 page break */..
019720: 20 6D 70 76 61 6C 2C 20 20 20 2F 2A 20 6D 69 6E mpval, /* min
019730: 69 6D 75 6D 20 6C 69 6E 65 73 20 72 65 71 75 69 imum lines requi
019740: 72 65 64 20 66 6F 72 20 70 61 72 61 67 72 61 70 red for paragrap
019750: 68 73 20 2A 2F 0D 0A 20 20 73 71 76 61 6C 2C 20 hs */.. sqval,
019760: 20 20 2F 2A 20 73 71 75 65 65 7A 65 20 69 6E 64 /* squeeze ind
019770: 65 6E 74 73 20 2A 2F 0D 0A 20 20 62 6C 69 6E 65 ents */.. bline
019780: 2C 20 20 20 2F 2A 20 62 6C 61 6E 6B 20 6C 69 6E , /* blank lin
019790: 65 20 66 6C 61 67 20 2A 2F 0D 0A 20 20 63 75 72 e flag */.. cur
0197A0: 70 61 67 2C 20 20 2F 2A 20 63 75 72 72 65 6E 74 pag, /* current
0197B0: 20 70 61 67 65 20 6E 75 6D 62 65 72 20 2A 2F 0D page number */.
0197C0: 0A 20 20 6E 65 77 70 61 67 2C 20 20 2F 2A 20 6E . newpag, /* n
0197D0: 65 78 74 20 70 61 67 65 20 6E 75 6D 62 65 72 20 ext page number
0197E0: 2A 2F 0D 0A 20 20 6C 69 6E 65 6E 6F 2C 20 20 2F */.. lineno, /
0197F0: 2A 20 6E 65 78 74 20 6C 69 6E 65 20 74 6F 20 62 * next line to b
019800: 65 20 70 72 69 6E 74 65 64 20 2A 2F 0D 0A 20 20 e printed */..
019810: 70 6C 76 61 6C 2C 20 20 20 2F 2A 20 70 61 67 65 plval, /* page
019820: 20 6C 65 6E 67 74 68 20 69 6E 20 6C 69 6E 65 73 length in lines
019830: 20 2A 2F 0D 0A 20 20 6D 31 76 61 6C 2C 20 20 20 */.. m1val,
019840: 2F 2A 20 6D 61 72 67 69 6E 20 62 65 66 6F 72 65 /* margin before
019850: 20 61 6E 64 20 69 6E 63 6C 75 64 69 6E 67 20 68 and including h
019860: 65 61 64 65 72 20 2A 2F 0D 0A 20 20 6D 32 76 61 eader */.. m2va
019870: 6C 2C 20 20 20 2F 2A 20 6D 61 72 67 69 6E 20 61 l, /* margin a
019880: 66 74 65 72 20 68 65 61 64 65 72 20 2A 2F 0D 0A fter header */..
019890: 20 20 6D 33 76 61 6C 2C 20 20 20 2F 2A 20 6D 61 m3val, /* ma
0198A0: 72 67 69 6E 20 61 66 74 65 72 20 6C 61 73 74 20 rgin after last
0198B0: 74 65 78 74 20 6C 69 6E 65 20 2A 2F 0D 0A 20 20 text line */..
0198C0: 6D 34 76 61 6C 2C 20 20 20 2F 2A 20 62 6F 74 74 m4val, /* bott
0198D0: 6F 6D 20 6D 61 72 67 69 6E 20 69 6E 63 6C 75 64 om margin includ
0198E0: 69 6E 67 20 66 6F 6F 74 65 72 20 2A 2F 0D 0A 20 ing footer */..
0198F0: 20 62 6F 74 74 6F 6D 2C 20 20 2F 2A 20 6C 61 73 bottom, /* las
019900: 75 62 73 63 72 69 70 74 2C 20 66 64 29 3B 20 62 ubscript, fd); b
019910: 72 65 61 6B 3B 7D 0D 0A 20 20 20 20 20 20 20 20 reak;}..
019920: 63 61 73 65 20 31 37 3A 20 7B 66 70 75 74 73 28 case 17: {fputs(
019930: 20 73 75 70 65 72 73 63 72 69 70 74 2C 20 66 64 superscript, fd
019940: 29 3B 20 62 72 65 61 6B 3B 7D 0D 0A 20 20 20 20 ); break;}..
019950: 20 20 20 20 63 61 73 65 20 31 38 3A 20 7B 66 70 case 18: {fp
019960: 75 74 73 28 78 73 75 70 65 72 73 63 72 69 70 74 uts(xsuperscript
019970: 2C 20 66 64 29 3B 20 62 72 65 61 6B 3B 7D 0D 0A , fd); break;}..
019980: 20 20 20 20 20 20 20 20 63 61 73 65 20 31 39 3A case 19:
019990: 20 7B 66 70 75 74 73 28 20 70 72 6F 70 6F 72 74 {fputs( proport
0199A0: 69 6F 6E 61 6C 2C 20 66 64 29 3B 20 62 72 65 61 ional, fd); brea
0199B0: 6B 3B 7D 0D 0A 20 20 20 20 20 20 20 20 63 61 73 k;}.. cas
0199C0: 65 20 32 30 3A 20 7B 66 70 75 74 73 28 78 70 72 e 20: {fputs(xpr
0199D0: 6F 70 6F 72 74 69 6F 6E 61 6C 2C 20 66 64 29 3B oportional, fd);
0199E0: 20 62 72 65 61 6B 3B 7D 0D 0A 20 20 20 20 20 20 break;}..
0199F0: 20 20 7D 0D 0A 20 20 20 20 20 20 7D 0D 0A 20 20 }.. }..
019A00: 20 20 7D 20 77 68 69 6C 65 20 28 2A 73 74 72 29 } while (*str)
019A10: 3B 0D 0A 20 20 7D 0D 0A 23 69 6E 63 6C 75 64 65 ;.. }..#include
019A20: 20 22 63 61 6E 74 2E 63 22 0D 0A 0D 0A 1A 1A 1A "cant.c".......
019A30: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
019A40: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
019A50: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
019A60: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
019A70: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
019A80: 65 61 6B 3B 7D 0D 0A 20 20 20 20 20 20 20 20 63 eak;}.. c
019A90: 61 73 65 20 31 34 3A 20 7B 66 70 75 74 73 28 78 ase 14: {fputs(x
019AA0: 70 69 63 61 2C 20 66 64 29 3B 20 62 72 65 61 6B pica, fd); break
019AB0: 3B 7D 0D 0A 20 20 20 20 20 20 20 20 63 61 73 65 ;}.. case
019AC0: 20 31 35 3A 20 7B 66 70 75 74 73 28 20 73 75 62 15: {fputs( sub
019AD0: 73 63 72 69 70 74 2C 20 66 64 29 3B 20 62 72 65 script, fd); bre
019AE0: 61 6B 3B 7D 0D 0A 20 20 20 20 20 20 20 20 63 61 ak;}.. ca
019AF0: 73 65 20 31 36 3A 20 7B 66 70 75 74 73 28 78 73 se 16: {fputs(xs
019B00: 74 20 6C 69 76 65 20 6C 69 6E 65 20 6F 6E 20 70 t live line on p
019B10: 61 67 65 20 2A 2F 0D 0A 20 20 6F 75 74 70 2C 20 age */.. outp,
019B20: 20 20 20 2F 2A 20 6C 61 73 74 20 63 68 61 72 61 /* last chara
019B30: 63 74 65 72 20 70 6F 73 69 74 69 6F 6E 20 69 6E cter position in
019B40: 20 6F 75 74 62 75 66 20 2A 2F 0D 0A 20 20 6F 75 outbuf */.. ou
019B50: 74 77 2C 20 20 20 20 2F 2A 20 77 69 64 74 68 20 tw, /* width
019B60: 6F 66 20 74 65 78 74 20 69 6E 20 6F 75 74 62 75 of text in outbu
019B70: 66 20 2A 2F 0D 0A 20 20 6F 75 74 77 64 73 2C 20 f */.. outwds,
019B80: 20 2F 2A 20 6E 75 6D 62 65 72 20 6F 66 20 77 6F /* number of wo
019B90: 72 64 73 20 69 6E 20 6F 75 74 62 75 66 20 2A 2F rds in outbuf */
019BA0: 0D 0A 20 20 70 61 75 73 65 2C 20 20 20 2F 2A 20 .. pause, /*
019BB0: 70 61 75 73 65 20 6F 6E 20 70 61 67 65 20 62 72 pause on page br
019BC0: 65 61 6B 73 20 69 66 20 59 45 53 20 2A 2F 0D 0A eaks if YES */..
019BD0: 20 20 72 65 61 64 79 2C 20 20 20 2F 2A 20 70 72 ready, /* pr
019BE0: 6F 6D 70 74 20 22 72 65 61 64 79 20 70 72 69 6E ompt "ready prin
019BF0: 74 65 72 2E 2E 2E 22 20 69 66 20 59 45 53 20 2A ter..." if YES *
019C00: 2F 0D 0A 20 20 73 68 6F 77 2C 20 20 20 20 2F 2A /.. show, /*
019C10: 20 73 68 6F 77 20 73 6F 75 72 63 65 20 66 69 6C show source fil
019C20: 65 20 6E 61 6D 65 73 20 2A 2F 0D 0A 20 20 62 65 e names */.. be
019C30: 67 69 6E 2C 20 20 20 2F 2A 20 62 65 67 69 6E 6E gin, /* beginn
019C40: 69 6E 67 20 70 61 67 65 20 74 6F 20 70 72 69 6E ing page to prin
019C50: 74 20 2A 2F 0D 0A 20 20 65 6E 64 2C 20 20 20 20 t */.. end,
019C60: 20 2F 2A 20 65 6E 64 69 6E 67 20 70 61 67 65 20 /* ending page
019C70: 74 6F 20 70 72 69 6E 74 20 2A 2F 0D 0A 20 20 62 to print */.. b
019C80: 63 6F 70 79 2C 20 20 20 2F 2A 20 62 65 67 69 6E copy, /* begin
019C90: 6E 69 6E 67 20 63 6F 70 79 20 2A 2F 0D 0A 20 20 ning copy */..
019CA0: 65 63 6F 70 79 2C 20 20 20 2F 2A 20 65 6E 64 69 ecopy, /* endi
019CB0: 6E 67 20 63 6F 70 79 20 2A 2F 0D 0A 20 20 6D 72 ng copy */.. mr
019CC0: 67 66 64 2C 20 20 20 2F 2A 20 6D 65 72 67 65 20 gfd, /* merge
019CD0: 66 69 6C 65 20 66 64 20 2A 2F 0D 0A 20 20 73 65 file fd */.. se
019CE0: 6E 74 65 6E 64 2C 20 2F 2A 20 59 45 53 20 66 6F ntend, /* YES fo
019CF0: 72 20 70 6C 61 75 73 69 62 6C 65 20 65 6E 64 20 r plausible end
019D00: 2F 2A 0D 0A 2A 2A 20 66 6D 74 2E 63 20 2D 2D 20 /*..** fmt.c --
019D10: 74 65 78 74 20 66 6F 72 6D 61 74 74 65 72 0D 0A text formatter..
019D20: 2A 2A 0D 0A 2A 2A 20 43 6F 70 79 72 69 67 6E 74 **..** Copyrignt
019D30: 20 31 39 38 32 20 4A 2E 20 45 2E 20 48 65 6E 64 1982 J. E. Hend
019D40: 72 69 78 2E 20 20 41 6C 6C 20 72 69 67 68 74 73 rix. All rights
019D50: 20 72 65 73 65 72 76 65 64 2E 0D 0A 2A 2F 0D 0A reserved...*/..
019D60: 0D 0A 23 69 6E 63 6C 75 64 65 20 3C 73 74 64 69 ..#include <stdi
019D70: 6F 2E 68 3E 0D 0A 23 69 6E 63 6C 75 64 65 20 22 o.h>..#include "
019D80: 74 6F 6F 6C 73 2E 68 22 0D 0A 23 64 65 66 69 6E tools.h"..#defin
019D90: 65 20 4E 4F 43 43 41 52 47 43 0D 0A 23 64 65 66 e NOCCARGC..#def
019DA0: 69 6E 65 20 4B 49 4C 4C 20 31 34 20 20 2F 2A 20 ine KILL 14 /*
019DB0: 63 6F 6E 74 72 6F 6C 2D 4E 20 2A 2F 0D 0A 23 64 control-N */..#d
019DC0: 65 66 69 6E 65 20 49 4E 53 49 5A 45 20 33 39 36 efine INSIZE 396
019DD0: 0D 0A 23 64 65 66 69 6E 65 20 4D 41 58 4F 55 54 ..#define MAXOUT
019DE0: 20 35 37 39 0D 0A 23 64 65 66 69 6E 65 20 43 4F 579..#define CO
019DF0: 4D 4D 41 4E 44 20 27 2E 27 0D 0A 23 64 65 66 69 MMAND '.'..#defi
019E00: 6E 65 20 50 41 47 45 4E 55 4D 20 27 23 27 0D 0A ne PAGENUM '#'..
019E10: 23 64 65 66 69 6E 65 20 54 54 4C 44 45 4C 49 4D #define TTLDELIM
019E20: 20 27 2F 27 0D 0A 23 64 65 66 69 6E 65 20 4D 52 '/'..#define MR
019E30: 47 43 48 41 52 20 27 7C 27 0D 0A 23 64 65 66 69 GCHAR '|'..#defi
019E40: 6E 65 20 53 55 42 43 48 41 52 20 27 2F 27 0D 0A ne SUBCHAR '/'..
019E50: 23 64 65 66 69 6E 65 20 53 55 50 43 48 41 52 20 #define SUPCHAR
019E60: 27 5C 5C 27 0D 0A 23 64 65 66 69 6E 65 20 42 4C '\\'..#define BL
019E70: 41 4E 4B 20 27 7E 27 0D 0A 23 64 65 66 69 6E 65 ANK '~'..#define
019E80: 20 44 45 46 4D 31 20 31 0D 0A 23 64 65 66 69 6E DEFM1 1..#defin
019E90: 65 20 44 45 46 4D 32 20 32 0D 0A 23 64 65 66 69 e DEFM2 2..#defi
019EA0: 6E 65 20 44 45 46 4D 33 20 32 0D 0A 23 64 65 66 ne DEFM3 2..#def
019EB0: 69 6E 65 20 44 45 46 4D 34 20 39 0D 0A 2F 2A 2A ine DEFM4 9../**
019EC0: 2A 2A 20 4C 4D 20 69 73 20 65 66 66 65 63 74 69 ** LM is effecti
019ED0: 76 65 6C 79 20 6F 6E 65 20 67 72 65 61 74 65 72 vely one greater
019EE0: 20 2A 2A 2A 2A 2F 0D 0A 23 64 65 66 69 6E 65 20 ****/..#define
019EF0: 44 45 46 4C 4D 20 39 0D 0A 23 64 65 66 69 6E 65 DEFLM 9..#define
019F00: 6F 66 20 73 65 6E 74 65 6E 63 65 20 2A 2F 0D 0A of sentence */..
019F10: 20 20 64 69 72 3B 20 20 20 20 20 2F 2A 20 64 69 dir; /* di
019F20: 72 65 63 74 69 6F 6E 20 66 6F 72 20 73 70 72 65 rection for spre
019F30: 61 64 69 6E 67 20 62 6C 61 6E 6B 73 20 2A 2F 0D ading blanks */.
019F40: 0A 0D 0A 63 68 61 72 0D 0A 20 20 20 20 20 20 20 ...char..
019F50: 73 62 70 72 65 66 5B 5D 3D 7B 32 37 2C 27 53 27 sbpref[]={27,'S'
019F60: 2C 34 39 2C 31 7D 2C 20 20 2F 2A 20 6E 6F 6E 74 ,49,1}, /* nont
019F70: 74 79 20 73 75 62 73 63 72 69 70 74 20 70 72 65 ty subscript pre
019F80: 66 69 78 20 2A 2F 0D 0A 20 20 20 20 20 20 20 73 fix */.. s
019F90: 62 73 75 66 66 5B 5D 3D 7B 32 37 2C 27 54 27 2C bsuff[]={27,'T',
019FA0: 20 31 2C 30 7D 2C 20 20 2F 2A 20 6E 6F 6E 74 74 1,0}, /* nontt
019FB0: 79 20 73 75 62 73 63 72 69 70 74 20 73 75 66 66 y subscript suff
019FC0: 69 78 20 2A 2F 0D 0A 20 20 20 20 20 20 20 73 70 ix */.. sp
019FD0: 70 72 65 66 5B 5D 3D 7B 32 37 2C 27 53 27 2C 34 pref[]={27,'S',4
019FE0: 38 2C 31 7D 2C 20 20 2F 2A 20 6E 6F 6E 74 74 79 8,1}, /* nontty
019FF0: 20 73 75 70 65 72 73 63 72 69 70 74 20 70 72 65 superscript pre
01A000: 66 69 78 20 2A 2F 0D 0A 20 20 20 20 20 20 20 73 fix */.. s
01A010: 70 73 75 66 66 5B 5D 3D 7B 32 37 2C 27 54 27 2C psuff[]={27,'T',
01A020: 20 31 2C 30 7D 2C 20 20 2F 2A 20 6E 6F 6E 74 74 1,0}, /* nontt
01A030: 79 20 73 75 70 65 72 73 63 72 69 70 74 20 73 75 y superscript su
01A040: 66 66 69 78 20 2A 2F 0D 0A 20 20 20 20 20 20 2A ffix */.. *
01A050: 75 6C 6F 6E 2C 20 2A 75 6C 6F 66 66 2C 0D 0A 20 ulon, *uloff,..
01A060: 20 20 20 20 20 20 75 6C 70 72 65 66 5B 5D 3D 7B ulpref[]={
01A070: 32 37 2C 27 2D 27 2C 34 39 2C 31 7D 2C 20 20 2F 27,'-',49,1}, /
01A080: 2A 20 6E 6F 6E 74 74 79 20 75 6E 64 65 72 6C 69 * nontty underli
01A090: 6E 65 20 70 72 65 66 69 78 20 2A 2F 0D 0A 20 20 ne prefix */..
01A0A0: 20 20 20 20 20 75 6C 73 75 66 66 5B 5D 3D 7B 32 ulsuff[]={2
01A0B0: 37 2C 27 2D 27 2C 34 38 2C 31 7D 2C 20 20 2F 2A 7,'-',48,1}, /*
01A0C0: 20 6E 6F 6E 74 74 79 20 75 6E 64 65 72 6C 69 6E nontty underlin
01A0D0: 65 20 73 75 66 66 69 78 20 2A 2F 0D 0A 20 20 20 e suffix */..
01A0E0: 20 20 20 2A 62 66 6F 6E 2C 20 2A 62 66 6F 66 66 *bfon, *bfoff
01A0F0: 2C 0D 0A 20 20 20 20 20 20 20 62 66 70 72 65 66 ,.. bfpref
01A100: 20 44 45 46 52 4D 20 37 33 0D 0A 23 64 65 66 69 DEFRM 73..#defi
01A110: 6E 65 20 44 45 46 4D 50 20 32 0D 0A 23 64 65 66 ne DEFMP 2..#def
01A120: 69 6E 65 20 50 41 47 45 4C 45 4E 20 36 36 0D 0A ine PAGELEN 66..
01A130: 23 64 65 66 69 6E 65 20 48 55 47 45 20 33 32 30 #define HUGE 320
01A140: 30 30 0D 0A 23 64 65 66 69 6E 65 20 4E 44 49 4D 00..#define NDIM
01A150: 20 35 0D 0A 23 64 65 66 69 6E 65 20 4E 57 49 44 5..#define NWID
01A160: 54 48 20 34 0D 0A 0D 0A 69 6E 74 0D 0A 20 20 74 TH 4....int.. t
01A170: 74 79 6D 6F 64 65 2C 20 2F 2A 20 74 74 79 20 6D tymode, /* tty m
01A180: 6F 64 65 20 69 66 20 59 45 53 20 2A 2F 0D 0A 20 ode if YES */..
01A190: 20 69 74 73 75 62 2C 20 20 20 2F 2A 20 69 74 61 itsub, /* ita
01A1A0: 6C 69 63 20 73 75 62 73 20 66 6F 72 20 75 6E 64 lic subs for und
01A1B0: 65 72 6C 69 6E 65 73 20 2A 2F 0D 0A 20 20 75 6C erlines */.. ul
01A1C0: 73 75 62 2C 20 20 20 2F 2A 20 75 6E 64 65 72 6C sub, /* underl
01A1D0: 69 6E 65 20 73 75 62 73 20 66 6F 72 20 69 74 61 ine subs for ita
01A1E0: 6C 69 63 73 20 2A 2F 0D 0A 20 20 70 61 73 73 2C lics */.. pass,
01A1F0: 20 20 20 20 2F 2A 20 70 61 73 73 20 63 6F 75 6E /* pass coun
01A200: 74 65 72 20 2A 2F 0D 0A 20 20 66 69 6C 6C 2C 20 ter */.. fill,
01A210: 20 20 20 2F 2A 20 66 69 6C 6C 20 69 66 20 59 45 /* fill if YE
01A220: 53 20 2A 2F 0D 0A 20 20 6A 75 73 74 2C 20 20 20 S */.. just,
01A230: 20 2F 2A 20 6A 75 73 74 69 66 79 20 69 66 20 59 /* justify if Y
01A240: 45 53 20 2A 2F 0D 0A 20 20 6C 73 76 61 6C 2C 20 ES */.. lsval,
01A250: 20 20 2F 2A 20 6C 69 6E 65 20 73 70 61 63 69 6E /* line spacin
01A260: 67 20 2A 2F 0D 0A 20 20 69 6E 76 61 6C 2C 20 20 g */.. inval,
01A270: 20 2F 2A 20 69 6E 64 65 6E 74 20 76 61 6C 75 65 /* indent value
01A280: 20 2A 2F 0D 0A 20 20 6C 6D 76 61 6C 2C 20 20 20 */.. lmval,
01A290: 2F 2A 20 6C 65 66 74 20 6D 61 72 67 69 6E 20 76 /* left margin v
01A2A0: 61 6C 75 65 20 2A 2F 0D 0A 20 20 72 6D 76 61 6C alue */.. rmval
01A2B0: 2C 20 20 20 2F 2A 20 72 69 67 68 74 20 6D 61 72 , /* right mar
01A2C0: 67 69 6E 20 76 61 6C 75 65 20 2A 2F 0D 0A 20 20 gin value */..
01A2D0: 70 61 67 65 6B 69 6C 6C 2C 2F 2A 20 6B 69 6C 6C pagekill,/* kill
01A2E0: 20 70 61 67 65 20 69 66 20 59 45 53 20 2A 2F 0D page if YES */.
01A2F0: 0A 20 20 70 6F 73 70 65 63 2C 20 20 2F 2A 20 70 . pospec, /* p
01A300: 54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 00 00 00 Track-Info......
01A310: 16 00 01 00 02 09 52 E5 16 00 41 02 00 00 00 02 ......R...A.....
01A320: 16 00 46 02 00 00 00 02 16 00 42 02 00 00 00 02 ..F.......B.....
01A330: 16 00 47 02 00 00 00 02 16 00 43 02 00 00 00 02 ..G.......C.....
01A340: 16 00 48 02 00 00 00 02 16 00 44 02 00 00 00 02 ..H.......D.....
01A350: 16 00 49 02 00 00 00 02 16 00 45 02 00 00 00 02 ..I.......E.....
01A360: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01A370: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01A380: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01A390: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01A3A0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01A3B0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01A3C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01A3D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01A3E0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01A3F0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01A400: 5B 5D 3D 7B 32 37 2C 27 45 27 2C 31 2C 30 7D 2C []={27,'E',1,0},
01A410: 20 20 20 2F 2A 20 6E 6F 6E 74 74 79 20 62 6F 6C /* nontty bol
01A420: 64 66 61 63 65 20 70 72 65 66 69 78 20 2A 2F 0D dface prefix */.
01A430: 0A 20 20 20 20 20 20 20 62 66 73 75 66 66 5B 5D . bfsuff[]
01A440: 3D 7B 32 37 2C 27 46 27 2C 31 2C 30 7D 2C 20 20 ={27,'F',1,0},
01A450: 20 2F 2A 20 6E 6F 6E 74 74 79 20 62 6F 6C 64 66 /* nontty boldf
01A460: 61 63 65 20 73 75 66 66 69 78 20 2A 2F 0D 0A 20 ace suffix */..
01A470: 20 20 20 20 20 2A 64 73 6F 6E 2C 20 2A 64 73 6F *dson, *dso
01A480: 66 66 2C 0D 0A 20 20 20 20 20 20 20 64 73 70 72 ff,.. dspr
01A490: 65 66 5B 5D 3D 7B 32 37 2C 27 47 27 2C 31 2C 30 ef[]={27,'G',1,0
01A4A0: 7D 2C 20 20 20 2F 2A 20 6E 6F 6E 74 74 79 20 64 }, /* nontty d
01A4B0: 62 6C 20 73 74 72 69 6B 65 20 70 72 65 66 69 78 bl strike prefix
01A4C0: 20 2A 2F 0D 0A 20 20 20 20 20 20 20 64 73 73 75 */.. dssu
01A4D0: 66 66 5B 5D 3D 7B 32 37 2C 27 48 27 2C 31 2C 30 ff[]={27,'H',1,0
01A4E0: 7D 2C 20 20 20 2F 2A 20 6E 6F 6E 74 74 79 20 64 }, /* nontty d
01A4F0: 62 6C 20 73 74 72 69 6B 65 20 73 75 66 66 69 78 bl strike suffix
01A500: 20 2A 2F 0D 0A 20 20 20 20 20 20 2A 69 74 6F 6E */.. *iton
01A510: 2C 20 2A 69 74 6F 66 66 2C 0D 0A 20 20 20 20 20 , *itoff,..
01A520: 20 20 69 74 70 72 65 66 5B 5D 3D 7B 32 37 2C 27 itpref[]={27,'
01A530: 34 27 2C 31 2C 30 7D 2C 20 20 20 2F 2A 20 6E 6F 4',1,0}, /* no
01A540: 6E 74 74 79 20 69 74 61 6C 69 63 73 20 70 72 65 ntty italics pre
01A550: 66 69 78 20 2A 2F 0D 0A 20 20 20 20 20 20 20 69 fix */.. i
01A560: 74 73 75 66 66 5B 5D 3D 7B 32 37 2C 27 35 27 2C tsuff[]={27,'5',
01A570: 31 2C 30 7D 2C 20 20 20 2F 2A 20 6E 6F 6E 74 74 1,0}, /* nontt
01A580: 79 20 69 74 61 6C 69 63 73 20 73 75 66 66 69 78 y italics suffix
01A590: 20 2A 2F 0D 0A 20 20 20 20 20 20 2A 64 77 6F 6E */.. *dwon
01A5A0: 2C 20 2A 64 77 6F 66 66 2C 0D 0A 20 20 20 20 20 , *dwoff,..
01A5B0: 20 20 64 77 70 72 65 66 5B 5D 3D 7B 32 37 2C 27 dwpref[]={27,'
01A5C0: 57 27 2C 34 39 2C 31 7D 2C 20 20 2F 2A 20 6E 6F W',49,1}, /* no
01A5D0: 6E 74 74 79 20 64 62 6C 20 77 69 64 65 20 70 72 ntty dbl wide pr
01A5E0: 65 66 69 78 20 2A 2F 0D 0A 20 20 20 20 20 20 20 efix */..
01A5F0: 64 77 73 75 66 66 5B 5D 3D 7B 32 37 2C 27 57 27 dwsuff[]={27,'W'
01A600: 0A 20 20 20 20 20 20 72 65 74 75 72 6E 3B 0D 0A . return;..
01A610: 20 20 20 20 69 66 28 69 6E 62 75 66 5B 30 5D 3D if(inbuf[0]=
01A620: 3D 63 6D 64 29 20 63 6F 6D 6D 61 6E 64 28 69 6E =cmd) command(in
01A630: 62 75 66 29 3B 0D 0A 20 20 20 20 65 6C 73 65 20 buf);.. else
01A640: 7B 0D 0A 20 20 20 20 20 20 69 66 28 6D 65 72 67 {.. if(merg
01A650: 65 28 29 3D 3D 4E 4F 29 20 63 6F 6E 74 69 6E 75 e()==NO) continu
01A660: 65 3B 0D 0A 20 20 20 20 20 20 74 65 78 74 28 69 e;.. text(i
01A670: 6E 62 75 66 29 3B 0D 0A 20 20 20 20 20 20 7D 0D nbuf);.. }.
01A680: 0A 20 20 20 20 7D 0D 0A 20 20 7D 0D 0A 0D 0A 2F . }.. }..../
01A690: 2A 0D 0A 2A 2A 20 69 6E 63 6C 75 64 65 20 2D 2D *..** include --
01A6A0: 20 70 72 6F 63 65 73 73 20 69 6E 63 6C 75 64 65 process include
01A6B0: 64 20 74 65 78 74 20 28 6E 65 78 74 69 6E 67 20 d text (nexting
01A6C0: 61 6C 6C 6F 77 65 64 29 0D 0A 2A 2F 0D 0A 69 6E allowed)..*/..in
01A6D0: 63 6C 75 64 65 28 29 20 7B 0D 0A 20 20 69 6E 74 clude() {.. int
01A6E0: 20 69 2C 20 66 64 3B 0D 0A 20 20 63 68 61 72 20 i, fd;.. char
01A6F0: 66 6E 61 6D 65 5B 49 4E 53 49 5A 45 5D 3B 0D 0A fname[INSIZE];..
01A700: 20 20 69 3D 30 3B 0D 0A 20 20 77 68 69 6C 65 28 i=0;.. while(
01A710: 28 69 6E 62 75 66 5B 69 5D 21 3D 27 20 27 29 26 (inbuf[i]!=' ')&
01A720: 28 69 6E 62 75 66 5B 69 5D 21 3D 4E 55 4C 4C 29 (inbuf[i]!=NULL)
01A730: 29 20 2B 2B 69 3B 0D 0A 20 20 67 65 74 77 72 64 ) ++i;.. getwrd
01A740: 28 69 6E 62 75 66 2C 20 26 69 2C 20 66 6E 61 6D (inbuf, &i, fnam
01A750: 65 29 3B 0D 0A 20 20 69 66 28 28 66 64 3D 66 6F e);.. if((fd=fo
01A760: 70 65 6E 28 66 6E 61 6D 65 2C 20 22 72 22 29 29 pen(fname, "r"))
01A770: 3D 3D 4E 55 4C 4C 29 20 63 61 6E 74 28 66 6E 61 ==NULL) cant(fna
01A780: 6D 65 29 3B 0D 0A 20 20 6C 6F 75 74 28 66 6E 61 me);.. lout(fna
01A790: 6D 65 2C 20 73 74 64 65 72 72 29 3B 0D 0A 20 20 me, stderr);..
01A7A0: 69 66 28 73 68 6F 77 29 20 7B 0D 0A 20 20 20 20 if(show) {..
01A7B0: 62 72 6B 28 29 3B 0D 0A 20 20 20 20 70 75 74 28 brk();.. put(
01A7C0: 66 6E 61 6D 65 29 3B 0D 0A 20 20 20 20 62 72 6B fname);.. brk
01A7D0: 28 29 3B 0D 0A 20 20 20 7D 0D 0A 20 20 70 72 6F ();.. }.. pro
01A7E0: 63 65 73 73 28 66 64 29 3B 0D 0A 20 20 66 63 6C cess(fd);.. fcl
01A7F0: 6F 73 65 28 66 64 29 3B 0D 0A 20 20 7D 0D 0A 0D ose(fd);.. }...
01A800: 2C 34 38 2C 31 7D 3B 20 20 2F 2A 20 6E 6F 6E 74 ,48,1}; /* nont
01A810: 74 79 20 64 62 6C 20 77 69 64 65 20 73 75 66 66 ty dbl wide suff
01A820: 69 78 20 2A 2F 0D 0A 0D 0A 63 68 61 72 0D 0A 20 ix */....char..
01A830: 20 20 63 6D 64 2C 20 20 20 20 20 20 2F 2A 20 63 cmd, /* c
01A840: 6F 6D 6D 61 6E 64 20 63 68 61 72 61 63 74 65 72 ommand character
01A850: 20 2A 2F 0D 0A 20 20 20 6D 72 67 2C 20 20 20 20 */.. mrg,
01A860: 20 20 2F 2A 20 6D 65 72 67 65 20 66 69 65 6C 64 /* merge field
01A870: 20 64 65 6C 69 6D 69 74 65 72 20 2A 2F 0D 0A 20 delimiter */..
01A880: 20 20 62 6C 61 6E 6B 2C 20 20 20 20 2F 2A 20 6C blank, /* l
01A890: 69 74 65 72 61 6C 20 62 6C 61 6E 6B 20 63 68 61 iteral blank cha
01A8A0: 72 61 63 74 65 72 20 2A 2F 0D 0A 20 20 2A 75 6C racter */.. *ul
01A8B0: 73 6B 69 70 73 2C 20 20 2F 2A 20 73 70 65 63 69 skips, /* speci
01A8C0: 66 69 63 20 63 68 61 72 61 63 74 65 72 73 20 74 fic characters t
01A8D0: 6F 20 73 6B 69 70 20 75 6E 64 65 72 6C 69 6E 69 o skip underlini
01A8E0: 6E 67 20 2A 2F 0D 0A 20 20 2A 6F 68 65 61 64 65 ng */.. *oheade
01A8F0: 72 2C 20 20 2F 2A 20 6F 64 64 20 70 61 67 65 20 r, /* odd page
01A900: 68 65 61 64 65 72 20 2A 2F 0D 0A 20 20 2A 65 68 header */.. *eh
01A910: 65 61 64 65 72 2C 20 20 2F 2A 20 65 76 65 6E 20 eader, /* even
01A920: 70 61 67 65 20 68 65 61 64 65 72 20 2A 2F 0D 0A page header */..
01A930: 20 20 2A 6F 66 6F 6F 74 65 72 2C 20 20 2F 2A 20 *ofooter, /*
01A940: 6F 64 64 20 70 61 67 65 20 66 6F 6F 74 65 72 20 odd page footer
01A950: 2A 2F 0D 0A 20 20 2A 65 66 6F 6F 74 65 72 2C 20 */.. *efooter,
01A960: 20 2F 2A 20 65 76 65 6E 20 70 61 67 65 20 66 6F /* even page fo
01A970: 6F 74 65 72 20 2A 2F 0D 0A 20 20 2A 6F 75 74 62 oter */.. *outb
01A980: 75 66 2C 20 20 20 2F 2A 20 6F 75 74 70 75 74 20 uf, /* output
01A990: 62 75 66 66 65 72 20 2A 2F 0D 0A 20 20 2A 74 74 buffer */.. *tt
01A9A0: 6C 62 75 66 2C 20 20 20 2F 2A 20 62 75 66 66 65 lbuf, /* buffe
01A9B0: 72 20 66 6F 72 20 74 69 74 6C 65 73 20 2A 2F 0D r for titles */.
01A9C0: 0A 20 20 2A 6D 72 67 62 75 66 2C 20 20 20 2F 2A . *mrgbuf, /*
01A9D0: 20 62 75 66 66 65 72 20 66 6F 72 20 6D 65 72 67 buffer for merg
01A9E0: 65 64 20 74 65 78 74 20 2A 2F 0D 0A 20 20 2A 69 ed text */.. *i
01A9F0: 6E 62 75 66 2C 20 20 20 20 2F 2A 20 69 6E 70 75 nbuf, /* inpu
01AA00: 0A 2F 2A 0D 0A 2A 2A 20 70 72 6F 6D 70 74 20 2D ./*..** prompt -
01AA10: 2D 20 70 72 6F 6D 70 74 20 6F 70 65 72 61 74 6F - prompt operato
01AA20: 72 20 66 6F 72 20 69 6E 70 75 74 0D 0A 2A 2F 0D r for input..*/.
01AA30: 0A 70 72 6F 6D 70 74 28 29 20 7B 0D 0A 20 20 66 .prompt() {.. f
01AA40: 70 75 74 73 28 22 5C 37 65 6E 74 65 72 3A 20 22 puts("\7enter: "
01AA50: 2C 20 73 74 64 65 72 72 29 3B 0D 0A 20 20 66 70 , stderr);.. fp
01AA60: 75 74 73 28 69 6E 62 75 66 2B 33 2C 20 73 74 64 uts(inbuf+3, std
01AA70: 65 72 72 29 3B 0D 0A 20 20 66 70 75 74 63 28 27 err);.. fputc('
01AA80: 5C 6E 27 2C 20 73 74 64 65 72 72 29 3B 0D 0A 20 \n', stderr);..
01AA90: 20 70 72 6F 63 65 73 73 28 73 74 64 65 72 72 29 process(stderr)
01AAA0: 3B 0D 0A 20 20 7D 0D 0A 0D 0A 2F 2A 0D 0A 2A 2A ;.. }..../*..**
01AAB0: 20 69 6E 69 74 20 2D 2D 20 69 6E 69 74 69 61 6C init -- initial
01AAC0: 69 7A 65 20 70 61 72 61 6D 65 74 65 72 73 0D 0A ize parameters..
01AAD0: 2A 2F 0D 0A 69 6E 69 74 28 29 20 7B 0D 0A 20 20 */..init() {..
01AAE0: 63 6D 64 3D 43 4F 4D 4D 41 4E 44 3B 0D 0A 20 20 cmd=COMMAND;..
01AAF0: 6D 72 67 3D 4D 52 47 43 48 41 52 3B 0D 0A 20 20 mrg=MRGCHAR;..
01AB00: 62 6C 61 6E 6B 3D 42 4C 41 4E 4B 3B 0D 0A 20 20 blank=BLANK;..
01AB10: 73 65 6E 74 65 6E 64 3D 4E 4F 3B 0D 0A 20 20 66 sentend=NO;.. f
01AB20: 69 6C 6C 3D 6A 75 73 74 3D 59 45 53 3B 0D 0A 20 ill=just=YES;..
01AB30: 20 6C 73 76 61 6C 3D 31 3B 0D 0A 20 20 69 6E 76 lsval=1;.. inv
01AB40: 61 6C 3D 74 69 76 61 6C 3D 73 71 76 61 6C 3D 30 al=tival=sqval=0
01AB50: 3B 0D 0A 20 20 6C 6D 76 61 6C 3D 44 45 46 4C 4D ;.. lmval=DEFLM
01AB60: 3B 0D 0A 20 20 72 6D 76 61 6C 3D 44 45 46 52 4D ;.. rmval=DEFRM
01AB70: 3B 0D 0A 20 20 62 66 76 61 6C 3D 69 74 76 61 6C ;.. bfval=itval
01AB80: 3D 63 65 76 61 6C 3D 75 6C 76 61 6C 3D 63 75 61 =ceval=ulval=cua
01AB90: 63 74 3D 30 3B 0D 0A 20 20 63 75 72 70 61 67 3D ct=0;.. curpag=
01ABA0: 30 3B 0D 0A 20 20 6E 65 77 70 61 67 3D 31 3B 0D 0;.. newpag=1;.
01ABB0: 0A 20 20 6C 69 6E 65 6E 6F 3D 30 3B 0D 0A 20 20 . lineno=0;..
01ABC0: 6D 70 76 61 6C 3D 44 45 46 4D 50 3B 0D 0A 20 20 mpval=DEFMP;..
01ABD0: 62 6C 69 6E 65 3D 4E 4F 3B 20 2F 2A 2A 20 70 72 bline=NO; /** pr
01ABE0: 65 76 65 6E 74 73 20 61 20 62 6C 61 6E 6B 20 66 events a blank f
01ABF0: 69 72 73 74 20 70 61 67 65 20 2A 2A 2F 0D 0A 20 irst page **/..
01AC00: 74 20 62 75 66 66 65 72 20 2A 2F 0D 0A 20 20 2A t buffer */.. *
01AC10: 77 72 64 62 75 66 2C 20 20 20 2F 2A 20 73 70 61 wrdbuf, /* spa
01AC20: 63 65 20 66 6F 72 20 6F 6E 65 20 77 6F 72 64 20 ce for one word
01AC30: 2A 2F 0D 0A 20 20 2A 6E 62 72 73 74 72 3B 20 20 */.. *nbrstr;
01AC40: 20 2F 2A 20 6E 75 6D 62 65 72 20 73 74 72 69 6E /* number strin
01AC50: 67 20 2A 2F 0D 0A 0D 0A 6D 61 69 6E 28 61 72 67 g */....main(arg
01AC60: 63 2C 20 61 72 67 76 29 20 69 6E 74 20 61 72 67 c, argv) int arg
01AC70: 63 2C 20 2A 61 72 67 76 3B 20 7B 0D 0A 20 20 6F c, *argv; {.. o
01AC80: 68 65 61 64 65 72 3D 6D 61 6C 6C 6F 63 28 28 4D header=malloc((M
01AC90: 41 58 4C 49 4E 45 2B 31 29 29 3B 0D 0A 20 20 65 AXLINE+1));.. e
01ACA0: 68 65 61 64 65 72 3D 6D 61 6C 6C 6F 63 28 28 4D header=malloc((M
01ACB0: 41 58 4C 49 4E 45 2B 31 29 29 3B 0D 0A 20 20 6F AXLINE+1));.. o
01ACC0: 66 6F 6F 74 65 72 3D 6D 61 6C 6C 6F 63 28 28 4D footer=malloc((M
01ACD0: 41 58 4C 49 4E 45 2B 31 29 29 3B 0D 0A 20 20 65 AXLINE+1));.. e
01ACE0: 66 6F 6F 74 65 72 3D 6D 61 6C 6C 6F 63 28 28 4D footer=malloc((M
01ACF0: 41 58 4C 49 4E 45 2B 31 29 29 3B 0D 0A 20 20 6D AXLINE+1));.. m
01AD00: 72 67 62 75 66 3D 6D 61 6C 6C 6F 63 28 28 4D 41 rgbuf=malloc((MA
01AD10: 58 4C 49 4E 45 2B 31 29 29 3B 0D 0A 20 20 6F 75 XLINE+1));.. ou
01AD20: 74 62 75 66 3D 6D 61 6C 6C 6F 63 28 4D 41 58 4F tbuf=malloc(MAXO
01AD30: 55 54 29 3B 0D 0A 20 20 74 74 6C 62 75 66 3D 6D UT);.. ttlbuf=m
01AD40: 61 6C 6C 6F 63 28 4D 41 58 4F 55 54 29 3B 0D 0A alloc(MAXOUT);..
01AD50: 20 20 77 72 64 62 75 66 3D 6D 61 6C 6C 6F 63 28 wrdbuf=malloc(
01AD60: 4D 41 58 4F 55 54 29 3B 0D 0A 20 20 69 6E 62 75 MAXOUT);.. inbu
01AD70: 66 3D 6D 61 6C 6C 6F 63 28 49 4E 53 49 5A 45 29 f=malloc(INSIZE)
01AD80: 3B 0D 0A 20 20 6E 62 72 73 74 72 3D 6D 61 6C 6C ;.. nbrstr=mall
01AD90: 6F 63 28 4E 44 49 4D 29 3B 0D 0A 20 20 6E 62 72 oc(NDIM);.. nbr
01ADA0: 73 74 72 5B 4E 57 49 44 54 48 5D 3D 4E 55 4C 4C str[NWIDTH]=NULL
01ADB0: 3B 0D 0A 20 20 64 6F 61 72 67 73 28 61 72 67 63 ;.. doargs(argc
01ADC0: 2C 20 61 72 67 76 29 3B 0D 0A 20 20 6D 70 63 6E , argv);.. mpcn
01ADD0: 74 3D 39 39 3B 0D 0A 20 20 70 61 73 73 3D 30 3B t=99;.. pass=0;
01ADE0: 0D 0A 20 20 69 66 28 6D 72 67 66 64 29 20 7B 0D .. if(mrgfd) {.
01ADF0: 0A 20 20 20 20 77 68 69 6C 65 28 66 67 65 74 73 . while(fgets
01AE00: 20 70 6C 76 61 6C 3D 50 41 47 45 4C 45 4E 3B 0D plval=PAGELEN;.
01AE10: 0A 20 20 6D 31 76 61 6C 3D 44 45 46 4D 31 3B 0D . m1val=DEFM1;.
01AE20: 0A 20 20 6D 32 76 61 6C 3D 44 45 46 4D 32 3B 0D . m2val=DEFM2;.
01AE30: 0A 20 20 6D 33 76 61 6C 3D 44 45 46 4D 33 3B 0D . m3val=DEFM3;.
01AE40: 0A 20 20 6D 34 76 61 6C 3D 44 45 46 4D 34 3B 0D . m4val=DEFM4;.
01AE50: 0A 20 20 62 6F 74 74 6F 6D 3D 70 6C 76 61 6C 2D . bottom=plval-
01AE60: 6D 33 76 61 6C 2D 6D 34 76 61 6C 3B 0D 0A 20 20 m3val-m4val;..
01AE70: 6F 68 65 61 64 65 72 5B 30 5D 3D 65 68 65 61 64 oheader[0]=ehead
01AE80: 65 72 5B 30 5D 3D 4E 55 4C 4C 3B 0D 0A 20 20 6F er[0]=NULL;.. o
01AE90: 66 6F 6F 74 65 72 5B 30 5D 3D 65 66 6F 6F 74 65 footer[0]=efoote
01AEA0: 72 5B 30 5D 3D 4E 55 4C 4C 3B 0D 0A 20 20 6F 75 r[0]=NULL;.. ou
01AEB0: 74 70 3D 2D 31 3B 0D 0A 20 20 6F 75 74 77 3D 6F tp=-1;.. outw=o
01AEC0: 75 74 77 64 73 3D 30 3B 0D 0A 20 20 64 69 72 3D utwds=0;.. dir=
01AED0: 30 3B 0D 0A 20 20 7D 0D 0A 0D 0A 2F 2A 0D 0A 2A 0;.. }..../*..*
01AEE0: 2A 20 63 6F 6D 6D 61 6E 64 20 2D 2D 20 70 72 6F * command -- pro
01AEF0: 63 65 73 73 20 63 6F 6D 6D 61 6E 64 73 0D 0A 2A cess commands..*
01AF00: 2F 0D 0A 63 6F 6D 6D 61 6E 64 28 62 75 66 29 20 /..command(buf)
01AF10: 63 68 61 72 20 62 75 66 5B 5D 3B 20 7B 0D 0A 20 char buf[]; {..
01AF20: 20 69 6E 74 20 61 72 67 74 79 70 2C 20 73 70 76 int argtyp, spv
01AF30: 61 6C 2C 20 76 61 6C 3B 0D 0A 20 20 69 66 28 62 al, val;.. if(b
01AF40: 75 66 5B 31 5D 20 3D 3D 20 63 6D 64 29 20 72 65 uf[1] == cmd) re
01AF50: 74 75 72 6E 3B 20 20 20 2F 2A 20 63 6F 6D 6D 65 turn; /* comme
01AF60: 6E 74 20 2A 2F 0D 0A 20 20 76 61 6C 3D 67 65 74 nt */.. val=get
01AF70: 76 61 6C 28 62 75 66 2C 20 26 61 72 67 74 79 70 val(buf, &argtyp
01AF80: 29 3B 0D 0A 20 20 73 77 69 74 63 68 28 28 74 6F );.. switch((to
01AF90: 75 70 70 65 72 28 62 75 66 5B 31 5D 29 20 3C 3C upper(buf[1]) <<
01AFA0: 20 38 29 20 2B 20 74 6F 75 70 70 65 72 28 62 75 8) + toupper(bu
01AFB0: 66 5B 32 5D 29 29 20 7B 0D 0A 20 20 20 20 64 65 f[2])) {.. de
01AFC0: 66 61 75 6C 74 3A 20 7B 0D 0A 20 20 20 20 20 20 fault: {..
01AFD0: 66 70 75 74 73 28 22 5C 37 6E 6F 74 65 3A 20 22 fputs("\7note: "
01AFE0: 2C 20 73 74 64 65 72 72 29 3B 0D 0A 20 20 20 20 , stderr);..
01AFF0: 20 20 66 70 75 74 73 28 62 75 66 2C 20 73 74 64 fputs(buf, std
01B000: 28 6D 72 67 62 75 66 2C 20 28 4D 41 58 4C 49 4E (mrgbuf, (MAXLIN
01B010: 45 2B 31 29 2C 20 6D 72 67 66 64 29 20 26 26 20 E+1), mrgfd) &&
01B020: 28 70 61 73 73 20 3C 20 65 63 6F 70 79 29 29 20 (pass < ecopy))
01B030: 7B 0D 0A 20 20 20 20 20 20 69 66 28 2B 2B 70 61 {.. if(++pa
01B040: 73 73 20 3C 20 62 63 6F 70 79 29 20 63 6F 6E 74 ss < bcopy) cont
01B050: 69 6E 75 65 3B 0D 0A 20 20 20 20 20 20 74 72 69 inue;.. tri
01B060: 6D 28 6D 72 67 62 75 66 29 3B 0D 0A 20 20 20 20 m(mrgbuf);..
01B070: 20 20 6E 65 78 74 70 61 73 73 28 29 3B 0D 0A 20 nextpass();..
01B080: 20 20 20 20 20 7D 0D 0A 20 20 20 20 7D 0D 0A 20 }.. }..
01B090: 20 65 6C 73 65 20 69 66 28 65 63 6F 70 79 20 3D else if(ecopy =
01B0A0: 3D 20 48 55 47 45 29 20 6E 65 78 74 70 61 73 73 = HUGE) nextpass
01B0B0: 28 29 3B 0D 0A 20 20 65 6C 73 65 20 66 6F 72 28 ();.. else for(
01B0C0: 70 61 73 73 20 3D 20 62 63 6F 70 79 3B 20 70 61 pass = bcopy; pa
01B0D0: 73 73 20 3C 3D 20 65 63 6F 70 79 3B 20 2B 2B 70 ss <= ecopy; ++p
01B0E0: 61 73 73 29 20 6E 65 78 74 70 61 73 73 28 29 3B ass) nextpass();
01B0F0: 0D 0A 20 20 66 63 6C 6F 73 65 28 73 74 64 6F 75 .. fclose(stdou
01B100: 74 29 3B 0D 0A 20 20 7D 0D 0A 0D 0A 2F 2A 0D 0A t);.. }..../*..
01B110: 2A 2A 20 6E 65 78 74 70 61 73 73 20 2D 2D 20 6D ** nextpass -- m
01B120: 61 6B 65 20 6E 65 78 74 20 70 61 73 73 20 6F 6E ake next pass on
01B130: 20 73 74 64 69 6E 20 74 65 78 74 0D 0A 2A 2F 0D stdin text..*/.
01B140: 0A 6E 65 78 74 70 61 73 73 28 29 20 7B 0D 0A 20 .nextpass() {..
01B150: 20 63 68 61 72 20 63 2C 20 73 74 72 5B 36 5D 3B char c, str[6];
01B160: 0D 0A 20 20 69 6E 69 74 28 29 3B 0D 0A 20 20 69 .. init();.. i
01B170: 66 28 6D 72 67 66 64 20 7C 7C 20 65 63 6F 70 79 f(mrgfd || ecopy
01B180: 20 21 3D 20 48 55 47 45 29 20 7B 0D 0A 20 20 20 != HUGE) {..
01B190: 20 63 73 65 65 6B 28 73 74 64 69 6E 2C 20 30 2C cseek(stdin, 0,
01B1A0: 20 30 29 3B 0D 0A 20 20 20 20 6C 65 66 74 28 69 0);.. left(i
01B1B0: 74 6F 64 28 70 61 73 73 2C 20 73 74 72 2C 20 36 tod(pass, str, 6
01B1C0: 29 29 3B 0D 0A 20 20 20 20 66 70 75 74 73 28 22 ));.. fputs("
01B1D0: 63 6F 70 79 20 22 2C 20 73 74 64 65 72 72 29 3B copy ", stderr);
01B1E0: 0D 0A 20 20 20 20 66 70 75 74 73 28 73 74 72 2C .. fputs(str,
01B1F0: 20 73 74 64 65 72 72 29 3B 0D 0A 20 20 20 20 66 stderr);.. f
01B200: 65 72 72 29 3B 0D 0A 20 20 20 20 20 20 66 70 75 err);.. fpu
01B210: 74 63 28 27 5C 6E 27 2C 20 73 74 64 65 72 72 29 tc('\n', stderr)
01B220: 3B 0D 0A 20 20 20 20 20 20 72 65 74 75 72 6E 3B ;.. return;
01B230: 0D 0A 20 20 20 20 20 20 7D 0D 0A 20 20 20 20 63 .. }.. c
01B240: 61 73 65 20 27 46 49 27 3A 20 7B 0D 0A 20 20 20 ase 'FI': {..
01B250: 20 20 20 62 72 6B 28 29 3B 0D 0A 20 20 20 20 20 brk();..
01B260: 20 66 69 6C 6C 3D 59 45 53 3B 0D 0A 20 20 20 20 fill=YES;..
01B270: 20 20 62 72 65 61 6B 3B 0D 0A 20 20 20 20 20 20 break;..
01B280: 7D 0D 0A 20 20 20 20 63 61 73 65 20 27 4E 46 27 }.. case 'NF'
01B290: 3A 20 7B 0D 0A 20 20 20 20 20 20 62 72 6B 28 29 : {.. brk()
01B2A0: 3B 0D 0A 20 20 20 20 20 20 66 69 6C 6C 3D 4E 4F ;.. fill=NO
01B2B0: 3B 0D 0A 20 20 20 20 20 20 62 72 65 61 6B 3B 0D ;.. break;.
01B2C0: 0A 20 20 20 20 20 20 7D 0D 0A 20 20 20 20 63 61 . }.. ca
01B2D0: 73 65 20 27 4A 55 27 3A 20 7B 0D 0A 20 20 20 20 se 'JU': {..
01B2E0: 20 20 62 72 6B 28 29 3B 0D 0A 20 20 20 20 20 20 brk();..
01B2F0: 6A 75 73 74 3D 59 45 53 3B 0D 0A 20 20 20 20 20 just=YES;..
01B300: 20 62 72 65 61 6B 3B 0D 0A 20 20 20 20 20 20 7D break;.. }
01B310: 0D 0A 20 20 20 20 63 61 73 65 20 27 4E 4A 27 3A .. case 'NJ':
01B320: 20 7B 0D 0A 20 20 20 20 20 20 62 72 6B 28 29 3B {.. brk();
01B330: 0D 0A 20 20 20 20 20 20 6A 75 73 74 3D 4E 4F 3B .. just=NO;
01B340: 0D 0A 20 20 20 20 20 20 62 72 65 61 6B 3B 0D 0A .. break;..
01B350: 20 20 20 20 20 20 7D 0D 0A 20 20 20 20 63 61 73 }.. cas
01B360: 65 20 27 42 52 27 3A 7B 0D 0A 20 20 20 20 20 20 e 'BR':{..
01B370: 62 72 6B 28 29 3B 0D 0A 20 20 20 20 20 20 62 72 brk();.. br
01B380: 65 61 6B 3B 0D 0A 20 20 20 20 20 20 7D 0D 0A 20 eak;.. }..
01B390: 20 20 20 63 61 73 65 20 27 4C 53 27 3A 20 7B 0D case 'LS': {.
01B3A0: 0A 20 20 20 20 20 20 73 65 74 76 61 6C 75 65 28 . setvalue(
01B3B0: 26 6C 73 76 61 6C 2C 20 76 61 6C 2C 20 61 72 67 &lsval, val, arg
01B3C0: 74 79 70 2C 20 31 2C 20 31 2C 20 48 55 47 45 29 typ, 1, 1, HUGE)
01B3D0: 3B 0D 0A 20 20 20 20 20 20 62 72 65 61 6B 3B 0D ;.. break;.
01B3E0: 0A 20 20 20 20 20 20 7D 0D 0A 20 20 20 20 63 61 . }.. ca
01B3F0: 73 65 20 27 48 45 27 3A 20 7B 0D 0A 20 20 20 20 se 'HE': {..
01B400: 70 75 74 73 28 22 20 20 20 22 2C 20 73 74 64 65 puts(" ", stde
01B410: 72 72 29 3B 0D 0A 20 20 20 20 7D 0D 0A 20 20 63 rr);.. }.. c
01B420: 3D 4E 55 4C 4C 3B 0D 0A 20 20 69 66 28 28 28 70 =NULL;.. if(((p
01B430: 61 73 73 20 3C 3D 20 62 63 6F 70 79 29 20 7C 7C ass <= bcopy) ||
01B440: 20 28 70 61 75 73 65 3D 3D 59 45 53 29 29 20 26 (pause==YES)) &
01B450: 26 0D 0A 20 20 20 20 20 72 65 61 64 79 20 26 26 &.. ready &&
01B460: 20 69 73 61 74 74 79 28 73 74 64 6F 75 74 29 29 isatty(stdout))
01B470: 20 7B 0D 0A 20 20 20 20 66 70 75 74 73 28 22 72 {.. fputs("r
01B480: 65 61 64 79 20 70 72 69 6E 74 65 72 2E 2E 2E 20 eady printer...
01B490: 22 2C 20 73 74 64 65 72 72 29 3B 0D 0A 20 20 20 ", stderr);..
01B4A0: 20 63 3D 66 67 65 74 63 28 73 74 64 65 72 72 29 c=fgetc(stderr)
01B4B0: 3B 0D 0A 20 20 20 20 7D 0D 0A 20 20 69 66 28 63 ;.. }.. if(c
01B4C0: 21 3D 4B 49 4C 4C 29 20 7B 0D 0A 20 20 20 20 70 !=KILL) {.. p
01B4D0: 72 6F 63 65 73 73 28 73 74 64 69 6E 29 3B 0D 0A rocess(stdin);..
01B4E0: 20 20 20 20 69 66 28 28 6C 69 6E 65 6E 6F 20 3E if((lineno >
01B4F0: 20 30 29 7C 28 6F 75 74 70 20 3E 20 2D 31 29 29 0)|(outp > -1))
01B500: 20 73 70 61 63 65 28 48 55 47 45 29 3B 0D 0A 20 space(HUGE);..
01B510: 20 20 20 7D 0D 0A 20 20 65 6C 73 65 20 66 70 75 }.. else fpu
01B520: 74 63 28 27 5C 6E 27 2C 20 73 74 64 65 72 72 29 tc('\n', stderr)
01B530: 3B 0D 0A 20 20 7D 0D 0A 0D 0A 2F 2A 0D 0A 2A 2A ;.. }..../*..**
01B540: 20 70 72 6F 63 65 73 73 20 2D 2D 20 70 72 6F 63 process -- proc
01B550: 65 73 73 20 74 65 78 74 20 66 72 6F 6D 20 66 64 ess text from fd
01B560: 0D 0A 2A 2F 0D 0A 70 72 6F 63 65 73 73 28 66 64 ..*/..process(fd
01B570: 29 20 69 6E 74 20 66 64 3B 20 7B 0D 0A 20 20 77 ) int fd; {.. w
01B580: 68 69 6C 65 28 66 67 65 74 73 28 69 6E 62 75 66 hile(fgets(inbuf
01B590: 2C 20 49 4E 53 49 5A 45 2C 20 66 64 29 21 3D 4E , INSIZE, fd)!=N
01B5A0: 55 4C 4C 29 20 7B 0D 0A 20 20 20 20 70 6F 6C 6C ULL) {.. poll
01B5B0: 28 59 45 53 29 3B 0D 0A 20 20 20 20 74 72 69 6D (YES);.. trim
01B5C0: 28 69 6E 62 75 66 29 3B 0D 0A 20 20 20 20 69 66 (inbuf);.. if
01B5D0: 28 28 66 64 3D 3D 73 74 64 65 72 72 29 26 28 69 ((fd==stderr)&(i
01B5E0: 6E 62 75 66 5B 30 5D 3D 3D 63 6D 64 29 26 28 69 nbuf[0]==cmd)&(i
01B5F0: 6E 62 75 66 5B 31 5D 3D 3D 4E 55 4C 4C 29 29 0D nbuf[1]==NULL)).
01B600: 54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 00 00 00 Track-Info......
01B610: 17 00 01 00 02 09 52 E5 17 00 41 02 00 00 00 02 ......R...A.....
01B620: 17 00 46 02 00 00 00 02 17 00 42 02 00 00 00 02 ..F.......B.....
01B630: 17 00 47 02 00 00 00 02 17 00 43 02 00 00 00 02 ..G.......C.....
01B640: 17 00 48 02 00 00 00 02 17 00 44 02 00 00 00 02 ..H.......D.....
01B650: 17 00 49 02 00 00 00 02 17 00 45 02 00 00 00 02 ..I.......E.....
01B660: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01B670: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01B680: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01B690: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01B6A0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01B6B0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01B6C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01B6D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01B6E0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01B6F0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01B700: 20 20 67 65 74 74 6C 28 62 75 66 2C 20 6F 68 65 gettl(buf, ohe
01B710: 61 64 65 72 29 3B 0D 0A 20 20 20 20 20 20 67 65 ader);.. ge
01B720: 74 74 6C 28 62 75 66 2C 20 65 68 65 61 64 65 72 ttl(buf, eheader
01B730: 29 3B 0D 0A 20 20 20 20 20 20 62 72 65 61 6B 3B );.. break;
01B740: 0D 0A 20 20 20 20 20 20 7D 0D 0A 20 20 20 20 63 .. }.. c
01B750: 61 73 65 20 27 4F 48 27 3A 20 7B 0D 0A 20 20 20 ase 'OH': {..
01B760: 20 20 20 67 65 74 74 6C 28 62 75 66 2C 20 6F 68 gettl(buf, oh
01B770: 65 61 64 65 72 29 3B 0D 0A 20 20 20 20 20 20 62 eader);.. b
01B780: 72 65 61 6B 3B 0D 0A 20 20 20 20 20 20 7D 0D 0A reak;.. }..
01B790: 20 20 20 20 63 61 73 65 20 27 45 48 27 3A 20 7B case 'EH': {
01B7A0: 0D 0A 20 20 20 20 20 20 67 65 74 74 6C 28 62 75 .. gettl(bu
01B7B0: 66 2C 20 65 68 65 61 64 65 72 29 3B 0D 0A 20 20 f, eheader);..
01B7C0: 20 20 20 20 62 72 65 61 6B 3B 0D 0A 20 20 20 20 break;..
01B7D0: 20 20 7D 0D 0A 20 20 20 20 63 61 73 65 20 27 46 }.. case 'F
01B7E0: 4F 27 3A 20 7B 0D 0A 20 20 20 20 20 20 67 65 74 O': {.. get
01B7F0: 74 6C 28 62 75 66 2C 20 6F 66 6F 6F 74 65 72 29 tl(buf, ofooter)
01B800: 3B 0D 0A 20 20 20 20 20 20 67 65 74 74 6C 28 62 ;.. gettl(b
01B810: 75 66 2C 20 65 66 6F 6F 74 65 72 29 3B 0D 0A 20 uf, efooter);..
01B820: 20 20 20 20 20 62 72 65 61 6B 3B 0D 0A 20 20 20 break;..
01B830: 20 20 20 7D 0D 0A 20 20 20 20 63 61 73 65 20 27 }.. case '
01B840: 4F 46 27 3A 20 7B 0D 0A 20 20 20 20 20 20 67 65 OF': {.. ge
01B850: 74 74 6C 28 62 75 66 2C 20 6F 66 6F 6F 74 65 72 ttl(buf, ofooter
01B860: 29 3B 0D 0A 20 20 20 20 20 20 62 72 65 61 6B 3B );.. break;
01B870: 0D 0A 20 20 20 20 20 20 7D 0D 0A 20 20 20 20 63 .. }.. c
01B880: 61 73 65 20 27 45 46 27 3A 20 7B 0D 0A 20 20 20 ase 'EF': {..
01B890: 20 20 20 67 65 74 74 6C 28 62 75 66 2C 20 65 66 gettl(buf, ef
01B8A0: 6F 6F 74 65 72 29 3B 0D 0A 20 20 20 20 20 20 62 ooter);.. b
01B8B0: 72 65 61 6B 3B 0D 0A 20 20 20 20 20 20 7D 0D 0A reak;.. }..
01B8C0: 20 20 20 20 63 61 73 65 20 27 53 50 27 3A 20 7B case 'SP': {
01B8D0: 0D 0A 20 20 20 20 20 20 73 65 74 76 61 6C 75 65 .. setvalue
01B8E0: 28 26 73 70 76 61 6C 2C 20 76 61 6C 2C 20 61 72 (&spval, val, ar
01B8F0: 67 74 79 70 2C 20 31 2C 20 30 2C 20 48 55 47 45 gtyp, 1, 0, HUGE
01B900: 20 7D 0D 0A 20 20 20 20 63 61 73 65 20 27 4E 45 }.. case 'NE
01B910: 27 3A 20 7B 0D 0A 20 20 20 20 20 20 69 66 28 28 ': {.. if((
01B920: 28 62 6F 74 74 6F 6D 2D 6C 69 6E 65 6E 6F 29 20 (bottom-lineno)
01B930: 3C 20 76 61 6C 29 20 26 20 28 6C 69 6E 65 6E 6F < val) & (lineno
01B940: 20 3E 20 30 29 29 0D 0A 20 20 20 20 20 20 20 20 > 0))..
01B950: 73 70 61 63 65 28 48 55 47 45 29 3B 0D 0A 20 20 space(HUGE);..
01B960: 20 20 20 20 62 72 65 61 6B 3B 0D 0A 20 20 20 20 break;..
01B970: 20 20 7D 0D 0A 20 20 20 20 63 61 73 65 20 27 52 }.. case 'R
01B980: 53 27 3A 20 7B 0D 0A 20 20 20 20 20 20 69 66 28 S': {.. if(
01B990: 28 28 62 6F 74 74 6F 6D 2D 6C 69 6E 65 6E 6F 29 ((bottom-lineno)
01B9A0: 20 3C 20 76 61 6C 29 20 26 20 28 6C 69 6E 65 6E < val) & (linen
01B9B0: 6F 20 3E 20 30 29 29 0D 0A 20 20 20 20 20 20 20 o > 0))..
01B9C0: 20 73 70 61 63 65 28 48 55 47 45 29 3B 0D 0A 20 space(HUGE);..
01B9D0: 20 20 20 20 20 73 70 61 63 65 28 76 61 6C 29 3B space(val);
01B9E0: 0D 0A 20 20 20 20 20 20 62 72 65 61 6B 3B 0D 0A .. break;..
01B9F0: 20 20 20 20 20 20 7D 0D 0A 20 20 20 20 63 61 73 }.. cas
01BA00: 65 20 27 53 4F 27 3A 20 7B 0D 0A 20 20 20 20 20 e 'SO': {..
01BA10: 20 69 6E 63 6C 75 64 65 28 29 3B 0D 0A 20 20 20 include();..
01BA20: 20 20 20 62 72 65 61 6B 3B 0D 0A 20 20 20 20 20 break;..
01BA30: 20 7D 0D 0A 20 20 20 20 63 61 73 65 20 27 50 52 }.. case 'PR
01BA40: 27 3A 20 7B 0D 0A 20 20 20 20 20 20 70 72 6F 6D ': {.. prom
01BA50: 70 74 28 29 3B 0D 0A 20 20 20 20 20 20 62 72 65 pt();.. bre
01BA60: 61 6B 3B 0D 0A 20 20 20 20 20 20 7D 0D 0A 20 20 ak;.. }..
01BA70: 20 20 63 61 73 65 20 27 43 43 27 3A 20 7B 0D 0A case 'CC': {..
01BA80: 20 20 20 20 20 20 76 61 6C 3D 30 3B 0D 0A 20 20 val=0;..
01BA90: 20 20 20 20 67 65 74 77 72 64 28 62 75 66 2C 20 getwrd(buf,
01BAA0: 26 76 61 6C 2C 20 77 72 64 62 75 66 29 3B 0D 0A &val, wrdbuf);..
01BAB0: 20 20 20 20 20 20 69 66 28 67 65 74 77 72 64 28 if(getwrd(
01BAC0: 62 75 66 2C 20 26 76 61 6C 2C 20 77 72 64 62 75 buf, &val, wrdbu
01BAD0: 66 29 3D 3D 31 29 20 63 6D 64 3D 77 72 64 62 75 f)==1) cmd=wrdbu
01BAE0: 66 5B 30 5D 3B 0D 0A 20 20 20 20 20 20 62 72 65 f[0];.. bre
01BAF0: 61 6B 3B 0D 0A 20 20 20 20 20 20 7D 0D 0A 20 20 ak;.. }..
01BB00: 29 3B 0D 0A 20 20 20 20 20 20 73 70 61 63 65 28 );.. space(
01BB10: 73 70 76 61 6C 29 3B 0D 0A 20 20 20 20 20 20 62 spval);.. b
01BB20: 6C 69 6E 65 3D 59 45 53 3B 0D 0A 20 20 20 20 20 line=YES;..
01BB30: 20 62 72 65 61 6B 3B 0D 0A 20 20 20 20 20 20 7D break;.. }
01BB40: 0D 0A 20 20 20 20 63 61 73 65 20 27 42 50 27 3A .. case 'BP':
01BB50: 20 7B 0D 0A 20 20 20 20 20 20 69 66 28 28 6C 69 {.. if((li
01BB60: 6E 65 6E 6F 20 3E 20 30 29 7C 28 6F 75 74 70 20 neno > 0)|(outp
01BB70: 3E 20 2D 31 29 29 20 73 70 61 63 65 28 48 55 47 > -1)) space(HUG
01BB80: 45 29 3B 0D 0A 20 20 20 20 20 20 73 65 74 76 61 E);.. setva
01BB90: 6C 75 65 28 26 63 75 72 70 61 67 2C 20 76 61 6C lue(&curpag, val
01BBA0: 2C 20 61 72 67 74 79 70 2C 20 6E 65 77 70 61 67 , argtyp, newpag
01BBB0: 2C 20 2D 48 55 47 45 2C 20 48 55 47 45 29 3B 0D , -HUGE, HUGE);.
01BBC0: 0A 20 20 20 20 20 20 6E 65 77 70 61 67 3D 63 75 . newpag=cu
01BBD0: 72 70 61 67 3B 0D 0A 20 20 20 20 20 20 62 72 65 rpag;.. bre
01BBE0: 61 6B 3B 0D 0A 20 20 20 20 20 20 7D 0D 0A 20 20 ak;.. }..
01BBF0: 20 20 63 61 73 65 20 27 50 4C 27 3A 20 7B 0D 0A case 'PL': {..
01BC00: 20 20 20 20 20 20 69 66 28 76 61 6C 3D 3D 30 29 if(val==0)
01BC10: 20 7B 0D 0A 20 20 20 20 20 20 20 20 6C 69 6E 65 {.. line
01BC20: 6E 6F 3D 31 3B 0D 0A 20 20 20 20 20 20 20 20 70 no=1;.. p
01BC30: 6C 76 61 6C 3D 30 3B 0D 0A 20 20 20 20 20 20 20 lval=0;..
01BC40: 20 7D 0D 0A 20 20 20 20 20 20 65 6C 73 65 20 7B }.. else {
01BC50: 0D 0A 20 20 20 20 20 20 20 20 73 65 74 76 61 6C .. setval
01BC60: 75 65 28 26 70 6C 76 61 6C 2C 20 76 61 6C 2C 20 ue(&plval, val,
01BC70: 61 72 67 74 79 70 2C 0D 0A 20 20 20 20 20 20 20 argtyp,..
01BC80: 20 20 20 20 20 50 41 47 45 4C 45 4E 2C 20 6D 31 PAGELEN, m1
01BC90: 76 61 6C 2B 6D 32 76 61 6C 2B 6D 33 76 61 6C 2B val+m2val+m3val+
01BCA0: 6D 34 76 61 6C 2B 31 2C 20 48 55 47 45 29 3B 0D m4val+1, HUGE);.
01BCB0: 0A 20 20 20 20 20 20 20 20 62 6F 74 74 6F 6D 3D . bottom=
01BCC0: 70 6C 76 61 6C 2D 6D 33 76 61 6C 2D 6D 34 76 61 plval-m3val-m4va
01BCD0: 6C 3B 0D 0A 20 20 20 20 20 20 20 20 7D 0D 0A 20 l;.. }..
01BCE0: 20 20 20 20 20 62 72 65 61 6B 3B 0D 0A 20 20 20 break;..
01BCF0: 20 20 20 7D 0D 0A 20 20 20 20 63 61 73 65 20 27 }.. case '
01BD00: 20 20 63 61 73 65 20 27 4D 43 27 3A 20 7B 0D 0A case 'MC': {..
01BD10: 20 20 20 20 20 20 76 61 6C 3D 30 3B 0D 0A 20 20 val=0;..
01BD20: 20 20 20 20 67 65 74 77 72 64 28 62 75 66 2C 20 getwrd(buf,
01BD30: 26 76 61 6C 2C 20 77 72 64 62 75 66 29 3B 0D 0A &val, wrdbuf);..
01BD40: 20 20 20 20 20 20 69 66 28 67 65 74 77 72 64 28 if(getwrd(
01BD50: 62 75 66 2C 20 26 76 61 6C 2C 20 77 72 64 62 75 buf, &val, wrdbu
01BD60: 66 29 3D 3D 31 29 20 6D 72 67 3D 77 72 64 62 75 f)==1) mrg=wrdbu
01BD70: 66 5B 30 5D 3B 0D 0A 20 20 20 20 20 20 62 72 65 f[0];.. bre
01BD80: 61 6B 3B 0D 0A 20 20 20 20 20 20 7D 0D 0A 20 20 ak;.. }..
01BD90: 20 20 63 61 73 65 20 27 42 43 27 3A 20 7B 0D 0A case 'BC': {..
01BDA0: 20 20 20 20 20 20 76 61 6C 3D 30 3B 0D 0A 20 20 val=0;..
01BDB0: 20 20 20 20 67 65 74 77 72 64 28 62 75 66 2C 20 getwrd(buf,
01BDC0: 26 76 61 6C 2C 20 77 72 64 62 75 66 29 3B 0D 0A &val, wrdbuf);..
01BDD0: 20 20 20 20 20 20 69 66 28 67 65 74 77 72 64 28 if(getwrd(
01BDE0: 62 75 66 2C 20 26 76 61 6C 2C 20 77 72 64 62 75 buf, &val, wrdbu
01BDF0: 66 29 3D 3D 31 29 20 62 6C 61 6E 6B 3D 77 72 64 f)==1) blank=wrd
01BE00: 62 75 66 5B 30 5D 3B 0D 0A 20 20 20 20 20 20 62 buf[0];.. b
01BE10: 72 65 61 6B 3B 0D 0A 20 20 20 20 20 20 7D 0D 0A reak;.. }..
01BE20: 20 20 20 20 63 61 73 65 20 27 4D 31 27 3A 20 7B case 'M1': {
01BE30: 0D 0A 20 20 20 20 20 20 73 65 74 76 61 6C 75 65 .. setvalue
01BE40: 28 26 6D 31 76 61 6C 2C 20 76 61 6C 2C 20 61 72 (&m1val, val, ar
01BE50: 67 74 79 70 2C 20 44 45 46 4D 31 2C 20 30 2C 20 gtyp, DEFM1, 0,
01BE60: 48 55 47 45 29 3B 0D 0A 20 20 20 20 20 20 62 72 HUGE);.. br
01BE70: 65 61 6B 3B 0D 0A 20 20 20 20 20 20 7D 0D 0A 20 eak;.. }..
01BE80: 20 20 20 63 61 73 65 20 27 4D 32 27 3A 20 7B 0D case 'M2': {.
01BE90: 0A 20 20 20 20 20 20 73 65 74 76 61 6C 75 65 28 . setvalue(
01BEA0: 26 6D 32 76 61 6C 2C 20 76 61 6C 2C 20 61 72 67 &m2val, val, arg
01BEB0: 74 79 70 2C 20 44 45 46 4D 32 2C 20 30 2C 20 48 typ, DEFM2, 0, H
01BEC0: 55 47 45 29 3B 0D 0A 20 20 20 20 20 20 62 72 65 UGE);.. bre
01BED0: 61 6B 3B 0D 0A 20 20 20 20 20 20 7D 0D 0A 20 20 ak;.. }..
01BEE0: 20 20 63 61 73 65 20 27 4D 33 27 3A 20 7B 0D 0A case 'M3': {..
01BEF0: 20 20 20 20 20 20 73 65 74 76 61 6C 75 65 28 26 setvalue(&
01BF00: 49 4E 27 3A 20 7B 0D 0A 20 20 20 20 20 20 62 72 IN': {.. br
01BF10: 6B 28 29 3B 0D 0A 20 20 20 20 20 20 73 65 74 76 k();.. setv
01BF20: 61 6C 75 65 28 26 69 6E 76 61 6C 2C 20 76 61 6C alue(&inval, val
01BF30: 2C 20 61 72 67 74 79 70 2C 20 30 2C 20 2D 6C 6D , argtyp, 0, -lm
01BF40: 76 61 6C 2C 20 72 6D 76 61 6C 2D 6C 6D 76 61 6C val, rmval-lmval
01BF50: 2D 31 29 3B 0D 0A 20 20 20 20 20 20 62 72 65 61 -1);.. brea
01BF60: 6B 3B 0D 0A 20 20 20 20 20 20 7D 0D 0A 20 20 20 k;.. }..
01BF70: 20 63 61 73 65 20 27 4C 4D 27 3A 20 7B 0D 0A 20 case 'LM': {..
01BF80: 20 20 20 20 20 62 72 6B 28 29 3B 0D 0A 20 20 20 brk();..
01BF90: 20 20 20 73 65 74 76 61 6C 75 65 28 26 6C 6D 76 setvalue(&lmv
01BFA0: 61 6C 2C 20 76 61 6C 2D 31 2C 20 61 72 67 74 79 al, val-1, argty
01BFB0: 70 2C 20 44 45 46 4C 4D 2C 20 30 2C 20 72 6D 76 p, DEFLM, 0, rmv
01BFC0: 61 6C 2D 31 29 3B 0D 0A 20 20 20 20 20 20 62 72 al-1);.. br
01BFD0: 65 61 6B 3B 0D 0A 20 20 20 20 20 20 7D 0D 0A 20 eak;.. }..
01BFE0: 20 20 20 63 61 73 65 20 27 52 4D 27 3A 20 7B 0D case 'RM': {.
01BFF0: 0A 20 20 20 20 20 20 73 65 74 76 61 6C 75 65 28 . setvalue(
01C000: 26 72 6D 76 61 6C 2C 20 76 61 6C 2C 20 61 72 67 &rmval, val, arg
01C010: 74 79 70 2C 20 44 45 46 52 4D 2C 20 6C 6D 76 61 typ, DEFRM, lmva
01C020: 6C 2B 31 2C 20 48 55 47 45 29 3B 0D 0A 20 20 20 l+1, HUGE);..
01C030: 20 20 20 62 72 65 61 6B 3B 0D 0A 20 20 20 20 20 break;..
01C040: 20 7D 0D 0A 20 20 20 20 63 61 73 65 20 27 54 49 }.. case 'TI
01C050: 27 3A 20 7B 0D 0A 20 20 20 20 20 20 62 72 6B 28 ': {.. brk(
01C060: 29 3B 0D 0A 20 20 20 20 20 20 73 65 74 76 61 6C );.. setval
01C070: 75 65 28 26 74 69 76 61 6C 2C 20 76 61 6C 2C 20 ue(&tival, val,
01C080: 61 72 67 74 79 70 2C 20 30 2C 0D 0A 20 20 20 20 argtyp, 0,..
01C090: 20 20 20 20 20 20 2D 28 6C 6D 76 61 6C 2B 69 6E -(lmval+in
01C0A0: 76 61 6C 29 2C 20 72 6D 76 61 6C 2D 28 6C 6D 76 val), rmval-(lmv
01C0B0: 61 6C 2B 69 6E 76 61 6C 29 2D 31 29 3B 0D 0A 20 al+inval)-1);..
01C0C0: 20 20 20 20 20 62 72 65 61 6B 3B 0D 0A 20 20 20 break;..
01C0D0: 20 20 20 7D 0D 0A 20 20 20 20 63 61 73 65 20 27 }.. case '
01C0E0: 53 51 27 3A 20 7B 0D 0A 20 20 20 20 20 20 62 72 SQ': {.. br
01C0F0: 6B 28 29 3B 0D 0A 20 20 20 20 20 20 73 65 74 76 k();.. setv
01C100: 6D 33 76 61 6C 2C 20 76 61 6C 2C 20 61 72 67 74 m3val, val, argt
01C110: 79 70 2C 20 44 45 46 4D 33 2C 20 30 2C 20 48 55 yp, DEFM3, 0, HU
01C120: 47 45 29 3B 0D 0A 20 20 20 20 20 20 62 6F 74 74 GE);.. bott
01C130: 6F 6D 3D 70 6C 76 61 6C 2D 6D 33 76 61 6C 2D 6D om=plval-m3val-m
01C140: 34 76 61 6C 3B 0D 0A 20 20 20 20 20 20 62 72 65 4val;.. bre
01C150: 61 6B 3B 0D 0A 20 20 20 20 20 20 7D 0D 0A 20 20 ak;.. }..
01C160: 20 20 63 61 73 65 20 27 4D 34 27 3A 20 7B 0D 0A case 'M4': {..
01C170: 20 20 20 20 20 20 73 65 74 76 61 6C 75 65 28 26 setvalue(&
01C180: 6D 34 76 61 6C 2C 20 76 61 6C 2C 20 61 72 67 74 m4val, val, argt
01C190: 79 70 2C 20 44 45 46 4D 34 2C 20 30 2C 20 48 55 yp, DEFM4, 0, HU
01C1A0: 47 45 29 3B 0D 0A 20 20 20 20 20 20 62 6F 74 74 GE);.. bott
01C1B0: 6F 6D 3D 70 6C 76 61 6C 2D 6D 33 76 61 6C 2D 6D om=plval-m3val-m
01C1C0: 34 76 61 6C 3B 0D 0A 20 20 20 20 20 20 62 72 65 4val;.. bre
01C1D0: 61 6B 3B 0D 0A 20 20 20 20 20 20 7D 0D 0A 20 20 ak;.. }..
01C1E0: 20 20 63 61 73 65 20 27 50 4F 27 3A 20 7B 0D 0A case 'PO': {..
01C1F0: 20 20 20 20 20 20 73 65 74 76 61 6C 75 65 28 26 setvalue(&
01C200: 70 6F 73 70 65 63 2C 20 76 61 6C 2C 20 61 72 67 pospec, val, arg
01C210: 74 79 70 2C 20 30 2C 20 30 2C 20 48 55 47 45 29 typ, 0, 0, HUGE)
01C220: 3B 0D 0A 20 20 20 20 20 20 62 72 65 61 6B 3B 0D ;.. break;.
01C230: 0A 20 20 20 20 20 20 7D 0D 0A 20 20 20 20 7D 0D . }.. }.
01C240: 0A 20 20 7D 0D 0A 0D 0A 23 69 6E 63 6C 75 64 65 . }....#include
01C250: 20 22 66 6D 74 32 2E 63 22 0D 0A 23 69 6E 63 6C "fmt2.c"..#incl
01C260: 75 64 65 20 22 66 6D 74 33 2E 63 22 0D 0A 23 69 ude "fmt3.c"..#i
01C270: 6E 63 6C 75 64 65 20 22 73 63 6F 70 79 2E 63 22 nclude "scopy.c"
01C280: 0D 0A 23 69 6E 63 6C 75 64 65 20 22 67 65 74 77 ..#include "getw
01C290: 72 64 2E 63 22 0D 0A 23 69 6E 63 6C 75 64 65 20 rd.c"..#include
01C2A0: 22 63 61 6E 74 2E 63 22 0D 0A 23 69 6E 63 6C 75 "cant.c"..#inclu
01C2B0: 64 65 20 22 70 61 67 65 2E 63 22 0D 0A 23 69 6E de "page.c"..#in
01C2C0: 63 6C 75 64 65 20 22 69 6E 64 65 78 2E 63 22 0D clude "index.c".
01C2D0: 0A 23 69 6E 63 6C 75 64 65 20 22 73 61 6D 65 2E .#include "same.
01C2E0: 63 22 0D 0A 23 69 6E 63 6C 75 64 65 20 22 74 72 c"..#include "tr
01C2F0: 69 6D 2E 63 22 0D 0A 23 69 6E 63 6C 75 64 65 20 im.c"..#include
01C300: 61 6C 75 65 28 26 73 71 76 61 6C 2C 20 76 61 6C alue(&sqval, val
01C310: 2C 20 61 72 67 74 79 70 2C 20 30 2C 20 30 2C 20 , argtyp, 0, 0,
01C320: 48 55 47 45 29 3B 0D 0A 20 20 20 20 20 20 62 72 HUGE);.. br
01C330: 65 61 6B 3B 0D 0A 20 20 20 20 20 20 7D 0D 0A 20 eak;.. }..
01C340: 20 20 20 63 61 73 65 20 27 43 45 27 3A 20 7B 0D case 'CE': {.
01C350: 0A 20 20 20 20 20 20 62 72 6B 28 29 3B 0D 0A 20 . brk();..
01C360: 20 20 20 20 20 73 65 74 76 61 6C 75 65 28 26 63 setvalue(&c
01C370: 65 76 61 6C 2C 20 76 61 6C 2C 20 61 72 67 74 79 eval, val, argty
01C380: 70 2C 20 31 2C 20 30 2C 20 48 55 47 45 29 3B 0D p, 1, 0, HUGE);.
01C390: 0A 20 20 20 20 20 20 62 72 65 61 6B 3B 0D 0A 20 . break;..
01C3A0: 20 20 20 20 20 7D 0D 0A 20 20 20 20 63 61 73 65 }.. case
01C3B0: 20 27 42 46 27 3A 20 7B 0D 0A 20 20 20 20 20 20 'BF': {..
01C3C0: 73 65 74 76 61 6C 75 65 28 26 62 66 76 61 6C 2C setvalue(&bfval,
01C3D0: 20 76 61 6C 2C 20 61 72 67 74 79 70 2C 20 31 2C val, argtyp, 1,
01C3E0: 20 30 2C 20 48 55 47 45 29 3B 0D 0A 20 20 20 20 0, HUGE);..
01C3F0: 20 20 75 6C 76 61 6C 3D 30 3B 0D 0A 20 20 20 20 ulval=0;..
01C400: 20 20 62 72 65 61 6B 3B 0D 0A 20 20 20 20 20 20 break;..
01C410: 7D 0D 0A 20 20 20 20 63 61 73 65 20 27 49 54 27 }.. case 'IT'
01C420: 3A 20 7B 0D 0A 20 20 20 20 20 20 73 65 74 76 61 : {.. setva
01C430: 6C 75 65 28 26 69 74 76 61 6C 2C 20 76 61 6C 2C lue(&itval, val,
01C440: 20 61 72 67 74 79 70 2C 20 31 2C 20 30 2C 20 48 argtyp, 1, 0, H
01C450: 55 47 45 29 3B 0D 0A 20 20 20 20 20 20 62 72 65 UGE);.. bre
01C460: 61 6B 3B 0D 0A 20 20 20 20 20 20 7D 0D 0A 20 20 ak;.. }..
01C470: 20 20 63 61 73 65 20 27 44 57 27 3A 20 7B 0D 0A case 'DW': {..
01C480: 20 20 20 20 20 20 73 65 74 76 61 6C 75 65 28 26 setvalue(&
01C490: 64 77 76 61 6C 2C 20 76 61 6C 2C 20 61 72 67 74 dwval, val, argt
01C4A0: 79 70 2C 20 31 2C 20 30 2C 20 48 55 47 45 29 3B yp, 1, 0, HUGE);
01C4B0: 0D 0A 20 20 20 20 20 20 62 72 65 61 6B 3B 0D 0A .. break;..
01C4C0: 20 20 20 20 20 20 7D 0D 0A 20 20 20 20 63 61 73 }.. cas
01C4D0: 65 20 27 55 4C 27 3A 20 7B 0D 0A 20 20 20 20 20 e 'UL': {..
01C4E0: 20 73 65 74 76 61 6C 75 65 28 26 75 6C 76 61 6C setvalue(&ulval
01C4F0: 2C 20 76 61 6C 2C 20 61 72 67 74 79 70 2C 20 31 , val, argtyp, 1
01C500: 22 6F 75 74 2E 63 22 0D 0A 0D 0A 1A 1A 1A 1A 1A "out.c".........
01C510: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
01C520: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
01C530: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
01C540: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
01C550: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
01C560: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
01C570: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
01C580: 6D 34 76 61 6C 2C 20 76 61 6C 2C 20 61 72 67 74 m4val, val, argt
01C590: 79 70 2C 20 44 45 46 4D 34 2C 20 30 2C 20 48 55 yp, DEFM4, 0, HU
01C5A0: 47 45 29 3B 0D 0A 20 20 20 20 20 20 62 6F 74 74 GE);.. bott
01C5B0: 6F 6D 3D 70 6C 76 61 6C 2D 6D 33 76 61 6C 2D 6D om=plval-m3val-m
01C5C0: 34 76 61 6C 3B 0D 0A 20 20 20 20 20 20 62 72 65 4val;.. bre
01C5D0: 61 6B 3B 0D 0A 20 20 20 20 20 20 7D 0D 0A 20 20 ak;.. }..
01C5E0: 20 20 63 61 73 65 20 27 50 4F 27 3A 20 7B 0D 0A case 'PO': {..
01C5F0: 20 20 20 20 20 20 73 65 74 76 61 6C 75 65 28 26 setvalue(&
01C600: 70 6F 73 70 65 63 2C 20 76 61 6C 2C 20 61 72 67 pospec, val, arg
01C610: 74 79 70 2C 20 30 2C 20 30 2C 20 48 55 47 45 29 typ, 0, 0, HUGE)
01C620: 3B 0D 0A 20 20 20 20 20 20 62 72 65 61 6B 3B 0D ;.. break;.
01C630: 0A 20 20 20 20 20 20 7D 0D 0A 20 20 20 20 7D 0D . }.. }.
01C640: 0A 20 20 7D 0D 0A 0D 0A 23 69 6E 63 6C 75 64 65 . }....#include
01C650: 20 22 66 6D 74 32 2E 63 22 0D 0A 23 69 6E 63 6C "fmt2.c"..#incl
01C660: 75 64 65 20 22 66 6D 74 33 2E 63 22 0D 0A 23 69 ude "fmt3.c"..#i
01C670: 6E 63 6C 75 64 65 20 22 73 63 6F 70 79 2E 63 22 nclude "scopy.c"
01C680: 0D 0A 23 69 6E 63 6C 75 64 65 20 22 67 65 74 77 ..#include "getw
01C690: 72 64 2E 63 22 0D 0A 23 69 6E 63 6C 75 64 65 20 rd.c"..#include
01C6A0: 22 63 61 6E 74 2E 63 22 0D 0A 23 69 6E 63 6C 75 "cant.c"..#inclu
01C6B0: 64 65 20 22 70 61 67 65 2E 63 22 0D 0A 23 69 6E de "page.c"..#in
01C6C0: 63 6C 75 64 65 20 22 69 6E 64 65 78 2E 63 22 0D clude "index.c".
01C6D0: 0A 23 69 6E 63 6C 75 64 65 20 22 73 61 6D 65 2E .#include "same.
01C6E0: 63 22 0D 0A 23 69 6E 63 6C 75 64 65 20 22 74 72 c"..#include "tr
01C6F0: 69 6D 2E 63 22 0D 0A 23 69 6E 63 6C 75 64 65 20 im.c"..#include
01C700: 2C 20 30 2C 20 48 55 47 45 29 3B 0D 0A 20 20 20 , 0, HUGE);..
01C710: 20 20 20 63 75 61 63 74 3D 30 3B 0D 0A 20 20 20 cuact=0;..
01C720: 20 20 20 75 6C 73 6B 69 70 73 3D 22 20 28 29 5B ulskips=" ()[
01C730: 5D 7B 7D 5C 74 5C 62 2C 2E 3B 3A 3F 21 5F 27 5C ]{}\t\b,.;:?!_'\
01C740: 22 22 3B 0D 0A 20 20 20 20 20 20 62 66 76 61 6C "";.. bfval
01C750: 3D 30 3B 0D 0A 20 20 20 20 20 20 62 72 65 61 6B =0;.. break
01C760: 3B 0D 0A 20 20 20 20 20 20 7D 0D 0A 20 20 20 20 ;.. }..
01C770: 63 61 73 65 20 27 43 55 27 3A 20 7B 0D 0A 20 20 case 'CU': {..
01C780: 20 20 20 20 73 65 74 76 61 6C 75 65 28 26 75 6C setvalue(&ul
01C790: 76 61 6C 2C 20 76 61 6C 2C 20 61 72 67 74 79 70 val, val, argtyp
01C7A0: 2C 20 31 2C 20 30 2C 20 48 55 47 45 29 3B 0D 0A , 1, 0, HUGE);..
01C7B0: 20 20 20 20 20 20 69 66 28 75 6C 76 61 6C 3D 3D if(ulval==
01C7C0: 30 29 20 63 75 61 63 74 3D 30 3B 0D 0A 20 20 20 0) cuact=0;..
01C7D0: 20 20 20 65 6C 73 65 20 63 75 61 63 74 3D 31 3B else cuact=1;
01C7E0: 20 20 20 20 2F 2A 20 62 65 63 6F 6D 65 73 20 32 /* becomes 2
01C7F0: 20 61 66 74 65 72 20 6E 65 78 74 20 70 75 74 77 after next putw
01C800: 72 64 20 2A 2F 0D 0A 20 20 20 20 20 20 69 66 28 rd */.. if(
01C810: 74 74 79 6D 6F 64 65 29 20 75 6C 73 6B 69 70 73 ttymode) ulskips
01C820: 3D 22 20 5C 74 5C 62 22 3B 0D 0A 20 20 20 20 20 =" \t\b";..
01C830: 20 65 6C 73 65 20 20 20 20 20 20 20 20 75 6C 73 else uls
01C840: 6B 69 70 73 3D 20 22 5C 74 5C 62 22 3B 0D 0A 20 kips= "\t\b";..
01C850: 20 20 20 20 20 62 72 65 61 6B 3B 0D 0A 20 20 20 break;..
01C860: 20 20 20 7D 0D 0A 20 20 20 20 63 61 73 65 20 27 }.. case '
01C870: 4E 55 27 3A 20 7B 0D 0A 20 20 20 20 20 20 75 6C NU': {.. ul
01C880: 76 61 6C 3D 63 75 61 63 74 3D 30 3B 0D 0A 20 20 val=cuact=0;..
01C890: 20 20 20 20 62 72 65 61 6B 3B 0D 0A 20 20 20 20 break;..
01C8A0: 20 20 7D 0D 0A 20 20 20 20 63 61 73 65 20 27 4D }.. case 'M
01C8B0: 50 27 3A 20 7B 0D 0A 20 20 20 20 20 20 73 65 74 P': {.. set
01C8C0: 76 61 6C 75 65 28 26 6D 70 76 61 6C 2C 20 76 61 value(&mpval, va
01C8D0: 6C 2C 20 61 72 67 74 79 70 2C 20 44 45 46 4D 50 l, argtyp, DEFMP
01C8E0: 2C 20 30 2C 20 48 55 47 45 29 3B 0D 0A 20 20 20 , 0, HUGE);..
01C8F0: 20 20 20 62 72 65 61 6B 3B 0D 0A 20 20 20 20 20 break;..
01C900: 54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 00 00 00 Track-Info......
01C910: 18 00 01 00 02 09 52 E5 18 00 41 02 00 00 00 02 ......R...A.....
01C920: 18 00 46 02 00 00 00 02 18 00 42 02 00 00 00 02 ..F.......B.....
01C930: 18 00 47 02 00 00 00 02 18 00 43 02 00 00 00 02 ..G.......C.....
01C940: 18 00 48 02 00 00 00 02 18 00 44 02 00 00 00 02 ..H.......D.....
01C950: 18 00 49 02 00 00 00 02 18 00 45 02 00 00 00 02 ..I.......E.....
01C960: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01C970: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01C980: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01C990: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01C9A0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01C9B0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01C9C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01C9D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01C9E0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01C9F0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01CA00: 2F 2A 0D 0A 2A 2A 20 66 6D 74 32 2E 63 20 2D 2D /*..** fmt2.c --
01CA10: 20 74 65 78 74 20 66 6F 72 6D 61 74 74 65 72 20 text formatter
01CA20: 70 61 72 74 20 32 0D 0A 2A 2F 0D 0A 0D 0A 2F 2A part 2..*/..../*
01CA30: 0D 0A 2A 2A 20 67 65 74 76 61 6C 20 2D 2D 20 65 ..** getval -- e
01CA40: 76 61 6C 75 61 74 65 20 6F 70 74 69 6F 6E 61 6C valuate optional
01CA50: 20 6E 75 6D 65 72 69 63 20 61 72 67 75 6D 65 6E numeric argumen
01CA60: 74 0D 0A 2A 2F 0D 0A 67 65 74 76 61 6C 28 62 75 t..*/..getval(bu
01CA70: 66 2C 20 61 72 67 74 79 70 29 20 63 68 61 72 20 f, argtyp) char
01CA80: 62 75 66 5B 5D 3B 20 69 6E 74 20 2A 61 72 67 74 buf[]; int *argt
01CA90: 79 70 3B 20 7B 0D 0A 20 20 69 6E 74 20 69 3B 0D yp; {.. int i;.
01CAA0: 0A 20 20 69 3D 30 3B 0D 0A 20 20 77 68 69 6C 65 . i=0;.. while
01CAB0: 28 28 62 75 66 5B 69 5D 21 3D 27 20 27 29 26 28 ((buf[i]!=' ')&(
01CAC0: 62 75 66 5B 69 5D 21 3D 27 5C 74 27 29 26 28 62 buf[i]!='\t')&(b
01CAD0: 75 66 5B 69 5D 21 3D 4E 55 4C 4C 29 29 20 2B 2B uf[i]!=NULL)) ++
01CAE0: 69 3B 0D 0A 20 20 73 6B 69 70 62 6C 28 62 75 66 i;.. skipbl(buf
01CAF0: 2C 20 26 69 29 3B 0D 0A 20 20 2A 61 72 67 74 79 , &i);.. *argty
01CB00: 70 3D 62 75 66 5B 69 5D 3B 0D 0A 20 20 69 66 28 p=buf[i];.. if(
01CB10: 28 2A 61 72 67 74 79 70 3D 3D 27 2B 27 29 7C 28 (*argtyp=='+')|(
01CB20: 2A 61 72 67 74 79 70 3D 3D 27 2D 27 29 29 20 2B *argtyp=='-')) +
01CB30: 2B 69 3B 0D 0A 20 20 69 66 28 75 74 6F 69 28 62 +i;.. if(utoi(b
01CB40: 75 66 2B 69 2C 20 26 69 29 20 3C 20 30 29 20 7B uf+i, &i) < 0) {
01CB50: 0D 0A 20 20 20 20 66 70 75 74 73 28 22 5C 37 65 .. fputs("\7e
01CB60: 72 72 6F 72 3A 20 22 2C 20 73 74 64 65 72 72 29 rror: ", stderr)
01CB70: 3B 0D 0A 20 20 20 20 66 70 75 74 73 28 69 6E 62 ;.. fputs(inb
01CB80: 75 66 2C 20 73 74 64 65 72 72 29 3B 0D 0A 20 20 uf, stderr);..
01CB90: 20 20 66 70 75 74 63 28 27 5C 6E 27 2C 20 73 74 fputc('\n', st
01CBA0: 64 65 72 72 29 3B 0D 0A 20 20 20 20 72 65 74 75 derr);.. retu
01CBB0: 72 6E 20 30 3B 0D 0A 20 20 20 20 7D 0D 0A 20 20 rn 0;.. }..
01CBC0: 72 65 74 75 72 6E 20 69 3B 0D 0A 20 20 7D 0D 0A return i;.. }..
01CBD0: 0D 0A 2F 2A 0D 0A 2A 2A 20 73 6B 69 70 62 6C 20 ../*..** skipbl
01CBE0: 2D 2D 20 73 6B 69 70 20 62 6C 61 6E 6B 73 20 61 -- skip blanks a
01CBF0: 6E 64 20 74 61 62 73 0D 0A 2A 2F 0D 0A 73 6B 69 nd tabs..*/..ski
01CC00: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
01CC10: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
01CC20: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
01CC30: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
01CC40: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
01CC50: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
01CC60: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
01CC70: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
01CC80: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
01CC90: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
01CCA0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
01CCB0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
01CCC0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
01CCD0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
01CCE0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
01CCF0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
01CD00: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
01CD10: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
01CD20: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
01CD30: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
01CD40: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
01CD50: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
01CD60: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
01CD70: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
01CD80: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
01CD90: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
01CDA0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
01CDB0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
01CDC0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
01CDD0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
01CDE0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
01CDF0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
01CE00: 70 62 6C 28 6C 69 6E 2C 20 69 29 20 63 68 61 72 pbl(lin, i) char
01CE10: 20 6C 69 6E 5B 5D 3B 20 69 6E 74 20 2A 69 3B 20 lin[]; int *i;
01CE20: 7B 0D 0A 20 20 77 68 69 6C 65 28 28 6C 69 6E 5B {.. while((lin[
01CE30: 2A 69 5D 3D 3D 27 20 27 29 7C 28 6C 69 6E 5B 2A *i]==' ')|(lin[*
01CE40: 69 5D 3D 3D 27 5C 74 27 29 29 20 2A 69 20 3D 20 i]=='\t')) *i =
01CE50: 2A 69 20 2B 20 31 3B 0D 0A 20 20 7D 0D 0A 0D 0A *i + 1;.. }....
01CE60: 2F 2A 0D 0A 2A 2A 20 73 65 74 76 61 6C 75 65 20 /*..** setvalue
01CE70: 2D 2D 20 73 65 74 20 70 61 72 61 6D 65 74 65 72 -- set parameter
01CE80: 20 61 6E 64 20 63 68 65 63 6B 20 72 61 6E 67 65 and check range
01CE90: 0D 0A 2A 2F 0D 0A 73 65 74 76 61 6C 75 65 28 70 ..*/..setvalue(p
01CEA0: 61 72 61 6D 2C 20 76 61 6C 2C 20 61 72 67 74 79 aram, val, argty
01CEB0: 70 2C 20 64 65 66 76 61 6C 2C 20 6D 69 6E 76 61 p, defval, minva
01CEC0: 6C 2C 20 6D 61 78 76 61 6C 29 0D 0A 20 20 69 6E l, maxval).. in
01CED0: 74 20 2A 70 61 72 61 6D 2C 20 76 61 6C 2C 20 61 t *param, val, a
01CEE0: 72 67 74 79 70 2C 20 64 65 66 76 61 6C 2C 20 6D rgtyp, defval, m
01CEF0: 69 6E 76 61 6C 2C 20 6D 61 78 76 61 6C 3B 20 7B inval, maxval; {
01CF00: 0D 0A 20 20 69 66 28 61 72 67 74 79 70 3D 3D 4E .. if(argtyp==N
01CF10: 55 4C 4C 29 20 2A 70 61 72 61 6D 3D 64 65 66 76 ULL) *param=defv
01CF20: 61 6C 3B 0D 0A 20 20 65 6C 73 65 20 69 66 28 61 al;.. else if(a
01CF30: 72 67 74 79 70 3D 3D 27 2B 27 29 20 2A 70 61 72 rgtyp=='+') *par
01CF40: 61 6D 3D 2A 70 61 72 61 6D 2B 76 61 6C 3B 0D 0A am=*param+val;..
01CF50: 20 20 65 6C 73 65 20 69 66 28 61 72 67 74 79 70 else if(argtyp
01CF60: 3D 3D 27 2D 27 29 20 2A 70 61 72 61 6D 3D 2A 70 =='-') *param=*p
01CF70: 61 72 61 6D 2D 76 61 6C 3B 0D 0A 20 20 65 6C 73 aram-val;.. els
01CF80: 65 20 2A 70 61 72 61 6D 3D 76 61 6C 3B 0D 0A 20 e *param=val;..
01CF90: 20 69 66 28 2A 70 61 72 61 6D 20 3E 20 6D 61 78 if(*param > max
01CFA0: 76 61 6C 29 20 2A 70 61 72 61 6D 3D 6D 61 78 76 val) *param=maxv
01CFB0: 61 6C 3B 0D 0A 20 20 69 66 28 2A 70 61 72 61 6D al;.. if(*param
01CFC0: 20 3C 20 6D 69 6E 76 61 6C 29 20 2A 70 61 72 61 < minval) *para
01CFD0: 6D 3D 6D 69 6E 76 61 6C 3B 0D 0A 20 20 7D 0D 0A m=minval;.. }..
01CFE0: 0D 0A 2F 2A 0D 0A 2A 2A 20 74 65 78 74 20 2D 2D ../*..** text --
01CFF0: 20 70 72 6F 63 65 73 73 20 74 65 78 74 20 6C 69 process text li
01D000: 2F 2A 0D 0A 2A 2A 20 66 6D 74 33 2E 63 20 2D 2D /*..** fmt3.c --
01D010: 20 74 65 78 74 20 66 6F 72 6D 61 74 74 65 72 20 text formatter
01D020: 70 61 72 74 20 33 0D 0A 2A 2F 0D 0A 0D 0A 2F 2A part 3..*/..../*
01D030: 0D 0A 2A 2A 20 70 75 74 20 2D 2D 20 70 75 74 20 ..** put -- put
01D040: 6F 75 74 20 6C 69 6E 65 20 77 69 74 68 20 70 72 out line with pr
01D050: 6F 70 65 72 20 73 70 61 63 69 6E 67 20 61 6E 64 oper spacing and
01D060: 20 69 6E 64 65 6E 74 69 6E 67 0D 0A 2A 2F 0D 0A indenting..*/..
01D070: 70 75 74 28 62 75 66 29 20 63 68 61 72 20 62 75 put(buf) char bu
01D080: 66 5B 5D 3B 20 7B 0D 0A 20 20 69 6E 74 20 69 3B f[]; {.. int i;
01D090: 0D 0A 20 20 69 66 28 28 62 75 66 5B 30 5D 3D 3D .. if((buf[0]==
01D0A0: 4E 55 4C 4C 29 7C 28 62 75 66 5B 30 5D 3D 3D 27 NULL)|(buf[0]=='
01D0B0: 20 27 29 29 20 62 6C 69 6E 65 3D 59 45 53 3B 0D ')) bline=YES;.
01D0C0: 0A 20 20 65 6C 73 65 20 7B 0D 0A 20 20 20 20 69 . else {.. i
01D0D0: 66 28 28 28 62 6F 74 74 6F 6D 2D 6C 69 6E 65 6E f(((bottom-linen
01D0E0: 6F 2B 31 29 20 3C 20 28 6D 70 76 61 6C 2A 6C 73 o+1) < (mpval*ls
01D0F0: 76 61 6C 29 29 20 26 26 0D 0A 20 20 20 20 20 20 val)) &&..
01D100: 20 28 62 6C 69 6E 65 3D 3D 59 45 53 29 20 26 26 (bline==YES) &&
01D110: 0D 0A 20 20 20 20 20 20 20 28 6D 70 63 6E 74 20 .. (mpcnt
01D120: 3E 3D 20 6D 70 76 61 6C 29 29 20 7B 0D 0A 20 20 >= mpval)) {..
01D130: 20 20 20 20 6D 70 63 6E 74 3D 30 3B 0D 0A 20 20 mpcnt=0;..
01D140: 20 20 20 20 73 6B 69 70 28 62 6F 74 74 6F 6D 2D skip(bottom-
01D150: 6C 69 6E 65 6E 6F 2B 31 29 3B 0D 0A 20 20 20 20 lineno+1);..
01D160: 20 20 6C 69 6E 65 6E 6F 3D 62 6F 74 74 6F 6D 2B lineno=bottom+
01D170: 31 3B 20 20 20 2F 2A 20 66 6F 72 63 65 20 66 6F 1; /* force fo
01D180: 6F 74 69 6E 67 20 2A 2F 0D 0A 20 20 20 20 20 20 oting */..
01D190: 7D 0D 0A 20 20 20 20 62 6C 69 6E 65 3D 4E 4F 3B }.. bline=NO;
01D1A0: 0D 0A 20 20 20 20 7D 0D 0A 20 20 2B 2B 6D 70 63 .. }.. ++mpc
01D1B0: 6E 74 3B 0D 0A 20 20 69 66 28 6C 69 6E 65 6E 6F nt;.. if(lineno
01D1C0: 3E 62 6F 74 74 6F 6D 29 20 70 66 6F 6F 74 28 29 >bottom) pfoot()
01D1D0: 3B 0D 0A 20 20 69 66 28 6C 69 6E 65 6E 6F 3D 3D ;.. if(lineno==
01D1E0: 30 29 20 70 68 65 61 64 28 29 3B 0D 0A 20 20 69 0) phead();.. i
01D1F0: 3D 70 6F 76 61 6C 3B 20 20 2F 2A 2A 20 6D 69 6E =poval; /** min
01D200: 6E 65 73 0D 0A 2A 2F 0D 0A 74 65 78 74 28 69 6E nes..*/..text(in
01D210: 62 75 66 29 20 63 68 61 72 20 69 6E 62 75 66 5B buf) char inbuf[
01D220: 5D 3B 20 7B 0D 0A 20 20 69 6E 74 20 69 3B 0D 0A ]; {.. int i;..
01D230: 20 20 63 68 61 72 20 63 31 2C 20 63 32 3B 0D 0A char c1, c2;..
01D240: 20 20 69 66 28 28 69 6E 62 75 66 5B 30 5D 3D 3D if((inbuf[0]==
01D250: 27 20 27 29 7C 28 69 6E 62 75 66 5B 30 5D 3D 3D ' ')|(inbuf[0]==
01D260: 4E 55 4C 4C 29 29 20 6C 65 61 64 62 6C 28 69 6E NULL)) leadbl(in
01D270: 62 75 66 29 3B 0D 0A 20 20 69 66 28 62 66 76 61 buf);.. if(bfva
01D280: 6C 20 3E 20 30 29 20 7B 0D 0A 20 20 20 20 62 6F l > 0) {.. bo
01D290: 6C 64 28 69 6E 62 75 66 2C 20 77 72 64 62 75 66 ld(inbuf, wrdbuf
01D2A0: 2C 20 49 4E 53 49 5A 45 29 3B 0D 0A 20 20 20 20 , INSIZE);..
01D2B0: 2D 2D 62 66 76 61 6C 3B 0D 0A 20 20 20 20 7D 0D --bfval;.. }.
01D2C0: 0A 20 20 64 77 61 63 74 20 3D 20 4E 4F 3B 0D 0A . dwact = NO;..
01D2D0: 20 20 69 66 28 64 77 76 61 6C 20 3E 20 30 29 20 if(dwval > 0)
01D2E0: 7B 0D 0A 20 20 20 20 69 66 28 21 74 74 79 6D 6F {.. if(!ttymo
01D2F0: 64 65 29 20 7B 0D 0A 20 20 20 20 20 20 64 77 61 de) {.. dwa
01D300: 63 74 20 3D 20 59 45 53 3B 0D 0A 20 20 20 20 20 ct = YES;..
01D310: 20 64 6F 75 62 6C 65 28 69 6E 62 75 66 2C 20 77 double(inbuf, w
01D320: 72 64 62 75 66 2C 20 49 4E 53 49 5A 45 29 3B 0D rdbuf, INSIZE);.
01D330: 0A 20 20 20 20 20 20 7D 0D 0A 20 20 20 20 2D 2D . }.. --
01D340: 64 77 76 61 6C 3B 0D 0A 20 20 20 20 7D 0D 0A 20 dwval;.. }..
01D350: 20 69 66 28 75 6C 76 61 6C 20 3E 20 30 29 20 7B if(ulval > 0) {
01D360: 0D 0A 20 20 20 20 69 66 28 69 74 73 75 62 29 20 .. if(itsub)
01D370: 69 74 61 6C 69 63 28 69 6E 62 75 66 2C 20 77 72 italic(inbuf, wr
01D380: 64 62 75 66 2C 20 49 4E 53 49 5A 45 29 3B 0D 0A dbuf, INSIZE);..
01D390: 20 20 20 20 65 6C 73 65 20 20 20 20 20 20 75 6E else un
01D3A0: 64 65 72 6C 28 69 6E 62 75 66 2C 20 77 72 64 62 derl(inbuf, wrdb
01D3B0: 75 66 2C 20 49 4E 53 49 5A 45 29 3B 0D 0A 20 20 uf, INSIZE);..
01D3C0: 20 20 2D 2D 75 6C 76 61 6C 3B 0D 0A 20 20 20 20 --ulval;..
01D3D0: 7D 0D 0A 20 20 69 66 28 69 74 76 61 6C 20 3E 20 }.. if(itval >
01D3E0: 30 29 20 7B 0D 0A 20 20 20 20 69 66 28 75 6C 73 0) {.. if(uls
01D3F0: 75 62 29 20 75 6E 64 65 72 6C 28 69 6E 62 75 66 ub) underl(inbuf
01D400: 75 73 20 6F 6E 20 6F 64 64 20 70 61 67 65 73 20 us on odd pages
01D410: 2A 2A 2F 0D 0A 20 20 77 68 69 6C 65 28 2B 2B 69 **/.. while(++i
01D420: 20 3C 3D 20 28 6C 6D 76 61 6C 2B 74 69 76 61 6C <= (lmval+tival
01D430: 2B 69 6E 76 61 6C 2B 73 71 76 61 6C 29 29 0D 0A +inval+sqval))..
01D440: 20 20 20 20 70 72 69 6E 74 28 22 20 22 2C 20 4E print(" ", N
01D450: 4F 29 3B 0D 0A 20 20 74 69 76 61 6C 3D 30 3B 0D O);.. tival=0;.
01D460: 0A 20 20 70 72 69 6E 74 28 62 75 66 2C 20 4E 4F . print(buf, NO
01D470: 29 3B 0D 0A 20 20 69 66 28 28 6C 73 76 61 6C 2D );.. if((lsval-
01D480: 31 29 20 3C 20 28 62 6F 74 74 6F 6D 2D 6C 69 6E 1) < (bottom-lin
01D490: 65 6E 6F 29 29 20 73 6B 69 70 28 6C 73 76 61 6C eno)) skip(lsval
01D4A0: 29 3B 0D 0A 20 20 65 6C 73 65 20 73 6B 69 70 28 );.. else skip(
01D4B0: 62 6F 74 74 6F 6D 2D 6C 69 6E 65 6E 6F 2B 31 29 bottom-lineno+1)
01D4C0: 3B 0D 0A 20 20 69 66 28 70 6C 76 61 6C 20 3E 20 ;.. if(plval >
01D4D0: 30 29 20 6C 69 6E 65 6E 6F 3D 6C 69 6E 65 6E 6F 0) lineno=lineno
01D4E0: 2B 6C 73 76 61 6C 3B 0D 0A 20 20 69 66 28 6C 69 +lsval;.. if(li
01D4F0: 6E 65 6E 6F 20 3E 20 62 6F 74 74 6F 6D 29 20 70 neno > bottom) p
01D500: 66 6F 6F 74 28 29 3B 0D 0A 20 20 7D 0D 0A 0D 0A foot();.. }....
01D510: 2F 2A 0D 0A 2A 2A 20 70 72 69 6E 74 20 2D 2D 20 /*..** print --
01D520: 70 72 69 6E 74 20 6F 75 74 70 75 74 20 74 6F 20 print output to
01D530: 73 74 64 6F 75 74 20 69 66 20 6E 6F 74 20 73 6B stdout if not sk
01D540: 69 70 70 69 6E 67 20 70 61 67 65 73 0D 0A 2A 2F ipping pages..*/
01D550: 0D 0A 70 72 69 6E 74 28 73 74 72 2C 20 74 69 74 ..print(str, tit
01D560: 6C 65 29 20 63 68 61 72 20 2A 73 74 72 3B 20 69 le) char *str; i
01D570: 6E 74 20 74 69 74 6C 65 3B 20 7B 0D 0A 20 20 77 nt title; {.. w
01D580: 68 69 6C 65 28 2A 73 74 72 29 20 7B 0D 0A 20 20 hile(*str) {..
01D590: 20 20 69 66 28 2A 73 74 72 20 3D 3D 20 31 29 20 if(*str == 1)
01D5A0: 7B 0D 0A 20 20 20 20 20 20 69 66 28 21 74 69 74 {.. if(!tit
01D5B0: 6C 65 29 20 6F 6E 6F 66 66 28 2A 28 73 74 72 2D le) onoff(*(str-
01D5C0: 31 29 29 3B 0D 0A 20 20 20 20 20 20 7D 0D 0A 20 1));.. }..
01D5D0: 20 20 20 65 6C 73 65 20 7B 0D 0A 20 20 20 20 20 else {..
01D5E0: 20 2F 2A 20 73 6B 69 70 20 6F 75 74 70 75 74 20 /* skip output
01D5F0: 6F 66 20 63 6F 6E 74 72 6F 6C 20 73 65 71 75 65 of control seque
01D600: 2C 20 77 72 64 62 75 66 2C 20 49 4E 53 49 5A 45 , wrdbuf, INSIZE
01D610: 29 3B 0D 0A 20 20 20 20 65 6C 73 65 20 20 20 20 );.. else
01D620: 20 20 69 74 61 6C 69 63 28 69 6E 62 75 66 2C 20 italic(inbuf,
01D630: 77 72 64 62 75 66 2C 20 49 4E 53 49 5A 45 29 3B wrdbuf, INSIZE);
01D640: 0D 0A 20 20 20 20 2D 2D 69 74 76 61 6C 3B 0D 0A .. --itval;..
01D650: 20 20 20 20 7D 0D 0A 20 20 73 75 70 65 72 73 75 }.. supersu
01D660: 62 28 69 6E 62 75 66 2C 20 77 72 64 62 75 66 2C b(inbuf, wrdbuf,
01D670: 20 49 4E 53 49 5A 45 29 3B 0D 0A 20 20 69 66 28 INSIZE);.. if(
01D680: 63 65 76 61 6C 20 3E 20 30 29 20 7B 0D 0A 20 20 ceval > 0) {..
01D690: 20 20 63 65 6E 74 65 72 28 69 6E 62 75 66 29 3B center(inbuf);
01D6A0: 0D 0A 20 20 20 20 70 75 74 28 69 6E 62 75 66 29 .. put(inbuf)
01D6B0: 3B 0D 0A 20 20 20 20 2D 2D 63 65 76 61 6C 3B 0D ;.. --ceval;.
01D6C0: 0A 20 20 20 20 7D 0D 0A 20 20 65 6C 73 65 20 69 . }.. else i
01D6D0: 66 28 69 6E 62 75 66 5B 30 5D 3D 3D 4E 55 4C 4C f(inbuf[0]==NULL
01D6E0: 29 20 70 75 74 28 69 6E 62 75 66 29 3B 0D 0A 20 ) put(inbuf);..
01D6F0: 20 65 6C 73 65 20 69 66 28 66 69 6C 6C 3D 3D 4E else if(fill==N
01D700: 4F 29 20 70 75 74 28 69 6E 62 75 66 29 3B 0D 0A O) put(inbuf);..
01D710: 20 20 65 6C 73 65 20 7B 0D 0A 20 20 20 20 69 3D else {.. i=
01D720: 30 3B 0D 0A 20 20 20 20 77 72 64 62 75 66 5B 30 0;.. wrdbuf[0
01D730: 5D 3D 27 20 27 3B 0D 0A 20 20 20 20 77 68 69 6C ]=' ';.. whil
01D740: 65 28 67 65 74 77 72 64 28 69 6E 62 75 66 2C 20 e(getwrd(inbuf,
01D750: 26 69 2C 20 77 72 64 62 75 66 2B 31 29 20 3E 20 &i, wrdbuf+1) >
01D760: 30 29 20 7B 0D 0A 20 20 20 20 20 20 69 66 28 28 0) {.. if((
01D770: 73 65 6E 74 65 6E 64 3D 3D 59 45 53 29 26 28 69 sentend==YES)&(i
01D780: 73 75 70 70 65 72 28 77 72 64 62 75 66 5B 31 5D supper(wrdbuf[1]
01D790: 29 3D 3D 59 45 53 29 26 28 77 72 64 62 75 66 5B )==YES)&(wrdbuf[
01D7A0: 32 5D 21 3D 27 2E 27 29 29 0D 0A 20 20 20 20 20 2]!='.'))..
01D7B0: 20 20 20 70 75 74 77 72 64 28 77 72 64 62 75 66 putwrd(wrdbuf
01D7C0: 29 3B 20 20 2F 2A 2A 20 6C 65 61 64 69 6E 67 20 ); /** leading
01D7D0: 73 70 61 63 65 20 2A 2A 2F 0D 0A 20 20 20 20 20 space **/..
01D7E0: 20 65 6C 73 65 20 70 75 74 77 72 64 28 77 72 64 else putwrd(wrd
01D7F0: 62 75 66 2B 31 29 3B 0D 0A 20 20 20 20 20 20 69 buf+1);.. i
01D800: 6E 63 65 20 74 65 72 6D 69 6E 61 74 6F 72 20 2A nce terminator *
01D810: 2F 0D 0A 20 20 20 20 20 20 69 66 28 28 70 6C 76 /.. if((plv
01D820: 61 6C 3D 3D 30 29 7C 28 28 63 75 72 70 61 67 20 al==0)|((curpag
01D830: 3E 3D 20 62 65 67 69 6E 29 26 28 70 61 67 65 6B >= begin)&(pagek
01D840: 69 6C 6C 3D 3D 4E 4F 29 29 29 20 7B 0D 0A 20 20 ill==NO))) {..
01D850: 20 20 20 20 20 20 62 65 67 69 6E 3D 31 3B 20 20 begin=1;
01D860: 2F 2A 2A 20 66 75 74 75 72 65 20 63 6F 70 69 65 /** future copie
01D870: 73 20 62 65 67 69 6E 20 6F 6E 20 70 61 67 65 20 s begin on page
01D880: 31 20 2A 2A 2F 0D 0A 20 20 20 20 20 20 20 20 69 1 **/.. i
01D890: 66 28 2A 73 74 72 20 21 3D 20 62 6C 61 6E 6B 29 f(*str != blank)
01D8A0: 20 63 6F 75 74 28 2A 73 74 72 2C 20 73 74 64 6F cout(*str, stdo
01D8B0: 75 74 29 3B 0D 0A 20 20 20 20 20 20 20 20 65 6C ut);.. el
01D8C0: 73 65 20 63 6F 75 74 28 27 20 27 2C 20 73 74 64 se cout(' ', std
01D8D0: 6F 75 74 29 3B 0D 0A 20 20 20 20 20 20 20 20 7D out);.. }
01D8E0: 0D 0A 20 20 20 20 20 20 65 6C 73 65 20 69 66 28 .. else if(
01D8F0: 2A 73 74 72 20 3D 3D 20 32 37 29 20 7B 0D 0A 20 *str == 27) {..
01D900: 20 20 20 20 20 20 20 77 68 69 6C 65 28 2A 73 74 while(*st
01D910: 72 20 21 3D 20 31 29 20 63 6F 75 74 28 2A 73 74 r != 1) cout(*st
01D920: 72 2B 2B 2C 20 73 74 64 6F 75 74 29 3B 0D 0A 20 r++, stdout);..
01D930: 20 20 20 20 20 20 20 63 6F 6E 74 69 6E 75 65 3B continue;
01D940: 0D 0A 20 20 20 20 20 20 20 20 7D 0D 0A 20 20 20 .. }..
01D950: 20 20 20 7D 0D 0A 20 20 20 20 2B 2B 73 74 72 3B }.. ++str;
01D960: 0D 0A 20 20 20 20 7D 0D 0A 20 20 7D 0D 0A 0D 0A .. }.. }....
01D970: 2F 2A 0D 0A 2A 2A 20 6F 6E 6F 66 66 20 2D 2D 20 /*..** onoff --
01D980: 73 65 74 20 61 6E 64 20 63 6C 65 61 72 20 78 78 set and clear xx
01D990: 6F 6E 20 61 6E 64 20 78 78 6F 66 66 20 70 6F 69 on and xxoff poi
01D9A0: 6E 74 65 72 73 0D 0A 2A 2F 0D 0A 6F 6E 6F 66 66 nters..*/..onoff
01D9B0: 28 63 68 29 20 69 6E 74 20 63 68 3B 20 7B 0D 0A (ch) int ch; {..
01D9C0: 20 20 20 20 20 20 20 69 66 28 63 68 20 3D 3D 20 if(ch ==
01D9D0: 75 6C 70 72 65 66 5B 32 5D 29 20 7B 75 6C 6F 6E ulpref[2]) {ulon
01D9E0: 3D 75 6C 70 72 65 66 3B 20 75 6C 6F 66 66 3D 75 =ulpref; uloff=u
01D9F0: 6C 73 75 66 66 3B 7D 0D 0A 20 20 65 6C 73 65 20 lsuff;}.. else
01DA00: 66 28 69 6E 62 75 66 5B 69 2D 31 5D 3D 3D 27 22 f(inbuf[i-1]=='"
01DA10: 27 29 20 7B 0D 0A 20 20 20 20 20 20 20 20 63 31 ') {.. c1
01DA20: 3D 69 6E 62 75 66 5B 69 2D 33 5D 3B 0D 0A 20 20 =inbuf[i-3];..
01DA30: 20 20 20 20 20 20 63 32 3D 69 6E 62 75 66 5B 69 c2=inbuf[i
01DA40: 2D 32 5D 3B 0D 0A 20 20 20 20 20 20 20 20 7D 0D -2];.. }.
01DA50: 0A 20 20 20 20 20 20 65 6C 73 65 20 7B 0D 0A 20 . else {..
01DA60: 20 20 20 20 20 20 20 63 31 3D 69 6E 62 75 66 5B c1=inbuf[
01DA70: 69 2D 32 5D 3B 0D 0A 20 20 20 20 20 20 20 20 63 i-2];.. c
01DA80: 32 3D 69 6E 62 75 66 5B 69 2D 31 5D 3B 0D 0A 20 2=inbuf[i-1];..
01DA90: 20 20 20 20 20 20 20 7D 0D 0A 20 20 20 20 20 20 }..
01DAA0: 69 66 28 28 69 6E 62 75 66 5B 69 5D 21 3D 27 5C if((inbuf[i]!='\
01DAB0: 74 27 29 26 28 69 73 75 70 70 65 72 28 63 31 29 t')&(isupper(c1)
01DAC0: 3D 3D 4E 4F 29 26 0D 0A 20 20 20 20 20 20 20 20 ==NO)&..
01DAD0: 20 28 28 63 32 3D 3D 27 2E 27 29 7C 28 63 32 3D ((c2=='.')|(c2=
01DAE0: 3D 27 3F 27 29 7C 28 63 32 3D 3D 27 21 27 29 29 ='?')|(c2=='!'))
01DAF0: 29 20 73 65 6E 74 65 6E 64 3D 59 45 53 3B 0D 0A ) sentend=YES;..
01DB00: 20 20 20 20 20 20 65 6C 73 65 20 73 65 6E 74 65 else sente
01DB10: 6E 64 3D 4E 4F 3B 0D 0A 20 20 20 20 20 20 7D 0D nd=NO;.. }.
01DB20: 0A 20 20 20 20 7D 0D 0A 20 20 69 66 28 75 6C 76 . }.. if(ulv
01DB30: 61 6C 3D 3D 30 29 20 63 75 61 63 74 3D 30 3B 0D al==0) cuact=0;.
01DB40: 0A 20 20 7D 0D 0A 0D 0A 0D 0A 1A 1A 1A 1A 1A 1A . }............
01DB50: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
01DB60: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
01DB70: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
01DB80: 73 75 70 70 65 72 28 77 72 64 62 75 66 5B 31 5D supper(wrdbuf[1]
01DB90: 29 3D 3D 59 45 53 29 26 28 77 72 64 62 75 66 5B )==YES)&(wrdbuf[
01DBA0: 32 5D 21 3D 27 2E 27 29 29 0D 0A 20 20 20 20 20 2]!='.'))..
01DBB0: 20 20 20 70 75 74 77 72 64 28 77 72 64 62 75 66 putwrd(wrdbuf
01DBC0: 29 3B 20 20 2F 2A 2A 20 6C 65 61 64 69 6E 67 20 ); /** leading
01DBD0: 73 70 61 63 65 20 2A 2A 2F 0D 0A 20 20 20 20 20 space **/..
01DBE0: 20 65 6C 73 65 20 70 75 74 77 72 64 28 77 72 64 else putwrd(wrd
01DBF0: 62 75 66 2B 31 29 3B 0D 0A 20 20 20 20 20 20 69 buf+1);.. i
01DC00: 54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 00 00 00 Track-Info......
01DC10: 19 00 01 00 02 09 52 E5 19 00 41 02 00 00 00 02 ......R...A.....
01DC20: 19 00 46 02 00 00 00 02 19 00 42 02 00 00 00 02 ..F.......B.....
01DC30: 19 00 47 02 00 00 00 02 19 00 43 02 00 00 00 02 ..G.......C.....
01DC40: 19 00 48 02 00 00 00 02 19 00 44 02 00 00 00 02 ..H.......D.....
01DC50: 19 00 49 02 00 00 00 02 19 00 45 02 00 00 00 02 ..I.......E.....
01DC60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01DC70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01DC80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01DC90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01DCA0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01DCB0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01DCC0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01DCD0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01DCE0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01DCF0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01DD00: 69 66 28 63 68 20 3D 3D 20 75 6C 73 75 66 66 5B if(ch == ulsuff[
01DD10: 32 5D 29 20 75 6C 6F 6E 3D 75 6C 6F 66 66 3D 30 2]) ulon=uloff=0
01DD20: 3B 0D 0A 20 20 65 6C 73 65 20 69 66 28 63 68 20 ;.. else if(ch
01DD30: 3D 3D 20 62 66 70 72 65 66 5B 31 5D 29 20 7B 62 == bfpref[1]) {b
01DD40: 66 6F 6E 3D 62 66 70 72 65 66 3B 20 62 66 6F 66 fon=bfpref; bfof
01DD50: 66 3D 62 66 73 75 66 66 3B 7D 0D 0A 20 20 65 6C f=bfsuff;}.. el
01DD60: 73 65 20 69 66 28 63 68 20 3D 3D 20 62 66 73 75 se if(ch == bfsu
01DD70: 66 66 5B 31 5D 29 20 62 66 6F 6E 3D 62 66 6F 66 ff[1]) bfon=bfof
01DD80: 66 3D 30 3B 0D 0A 20 20 65 6C 73 65 20 69 66 28 f=0;.. else if(
01DD90: 63 68 20 3D 3D 20 64 73 70 72 65 66 5B 31 5D 29 ch == dspref[1])
01DDA0: 20 7B 64 73 6F 6E 3D 64 73 70 72 65 66 3B 20 64 {dson=dspref; d
01DDB0: 73 6F 66 66 3D 64 73 73 75 66 66 3B 7D 0D 0A 20 soff=dssuff;}..
01DDC0: 20 65 6C 73 65 20 69 66 28 63 68 20 3D 3D 20 64 else if(ch == d
01DDD0: 73 73 75 66 66 5B 31 5D 29 20 64 73 6F 6E 3D 64 ssuff[1]) dson=d
01DDE0: 73 6F 66 66 3D 30 3B 0D 0A 20 20 65 6C 73 65 20 soff=0;.. else
01DDF0: 69 66 28 63 68 20 3D 3D 20 69 74 70 72 65 66 5B if(ch == itpref[
01DE00: 31 5D 29 20 7B 69 74 6F 6E 3D 69 74 70 72 65 66 1]) {iton=itpref
01DE10: 3B 20 69 74 6F 66 66 3D 69 74 73 75 66 66 3B 7D ; itoff=itsuff;}
01DE20: 0D 0A 20 20 65 6C 73 65 20 69 66 28 63 68 20 3D .. else if(ch =
01DE30: 3D 20 69 74 73 75 66 66 5B 31 5D 29 20 69 74 6F = itsuff[1]) ito
01DE40: 6E 3D 69 74 6F 66 66 3D 30 3B 0D 0A 20 20 65 6C n=itoff=0;.. el
01DE50: 73 65 20 69 66 28 63 68 20 3D 3D 20 64 77 70 72 se if(ch == dwpr
01DE60: 65 66 5B 31 5D 29 20 7B 64 77 6F 6E 3D 64 77 70 ef[1]) {dwon=dwp
01DE70: 72 65 66 3B 20 64 77 6F 66 66 3D 64 77 73 75 66 ref; dwoff=dwsuf
01DE80: 66 3B 7D 0D 0A 20 20 65 6C 73 65 20 69 66 28 63 f;}.. else if(c
01DE90: 68 20 3D 3D 20 64 77 73 75 66 66 5B 31 5D 29 20 h == dwsuff[1])
01DEA0: 64 77 6F 6E 3D 64 77 6F 66 66 3D 30 3B 0D 0A 20 dwon=dwoff=0;..
01DEB0: 20 7D 0D 0A 0D 0A 2F 2A 0D 0A 2A 2A 20 73 6B 69 }..../*..** ski
01DEC0: 70 20 2D 2D 20 6F 75 74 70 75 74 20 6E 20 62 6C p -- output n bl
01DED0: 61 6E 6B 20 6C 69 6E 65 73 0D 0A 2A 2F 0D 0A 73 ank lines..*/..s
01DEE0: 6B 69 70 28 6E 29 20 69 6E 74 20 6E 3B 20 7B 0D kip(n) int n; {.
01DEF0: 0A 20 20 77 68 69 6C 65 28 28 6E 2D 2D 29 20 3E . while((n--) >
01DF00: 3B 0D 0A 20 20 69 3D 30 3B 0D 0A 20 20 77 68 69 ;.. i=0;.. whi
01DF10: 6C 65 28 28 62 75 66 5B 69 5D 21 3D 27 20 27 29 le((buf[i]!=' ')
01DF20: 26 28 62 75 66 5B 69 5D 21 3D 27 5C 74 27 29 26 &(buf[i]!='\t')&
01DF30: 28 62 75 66 5B 69 5D 21 3D 4E 55 4C 4C 29 29 20 (buf[i]!=NULL))
01DF40: 2B 2B 69 3B 0D 0A 20 20 73 6B 69 70 62 6C 28 62 ++i;.. skipbl(b
01DF50: 75 66 2C 20 26 69 29 3B 0D 0A 20 20 69 66 28 28 uf, &i);.. if((
01DF60: 62 75 66 5B 69 5D 3D 3D 27 5C 27 27 29 7C 28 62 buf[i]=='\'')|(b
01DF70: 75 66 5B 69 5D 3D 3D 27 22 27 29 29 20 2B 2B 69 uf[i]=='"')) ++i
01DF80: 3B 20 2F 2A 2A 20 73 74 72 69 70 20 6C 65 61 64 ; /** strip lead
01DF90: 69 6E 67 20 71 75 6F 74 65 20 2A 2A 2F 0D 0A 20 ing quote **/..
01DFA0: 20 62 75 66 3D 62 75 66 2B 69 3B 0D 0A 20 20 77 buf=buf+i;.. w
01DFB0: 68 69 6C 65 28 2A 74 74 6C 2B 2B 20 3D 20 2A 62 hile(*ttl++ = *b
01DFC0: 75 66 2B 2B 29 3B 0D 0A 20 20 7D 0D 0A 0D 0A 2F uf++);.. }..../
01DFD0: 2A 0D 0A 2A 2A 20 73 70 61 63 65 20 2D 2D 20 73 *..** space -- s
01DFE0: 70 61 63 65 20 6E 20 6C 69 6E 65 73 20 6F 72 20 pace n lines or
01DFF0: 74 6F 20 62 6F 74 74 6F 6D 0D 0A 2A 2F 0D 0A 73 to bottom..*/..s
01E000: 70 61 63 65 28 6E 29 20 69 6E 74 20 6E 3B 20 7B pace(n) int n; {
01E010: 0D 0A 20 20 62 72 6B 28 29 3B 0D 0A 20 20 69 66 .. brk();.. if
01E020: 28 6C 69 6E 65 6E 6F 20 3E 20 62 6F 74 74 6F 6D (lineno > bottom
01E030: 29 20 72 65 74 75 72 6E 3B 0D 0A 20 20 69 66 28 ) return;.. if(
01E040: 6C 69 6E 65 6E 6F 3D 3D 30 29 20 7B 0D 0A 20 20 lineno==0) {..
01E050: 20 20 70 68 65 61 64 28 29 3B 0D 0A 20 20 20 20 phead();..
01E060: 69 66 28 6E 3D 3D 48 55 47 45 29 20 72 65 74 75 if(n==HUGE) retu
01E070: 72 6E 3B 0D 0A 20 20 20 20 7D 0D 0A 20 20 69 66 rn;.. }.. if
01E080: 28 6E 20 3C 20 28 62 6F 74 74 6F 6D 2B 31 2D 6C (n < (bottom+1-l
01E090: 69 6E 65 6E 6F 29 29 20 73 6B 69 70 28 6E 29 3B ineno)) skip(n);
01E0A0: 0D 0A 20 20 65 6C 73 65 20 73 6B 69 70 28 62 6F .. else skip(bo
01E0B0: 74 74 6F 6D 2B 31 2D 6C 69 6E 65 6E 6F 29 3B 0D ttom+1-lineno);.
01E0C0: 0A 20 20 69 66 28 70 6C 76 61 6C 20 3E 20 30 29 . if(plval > 0)
01E0D0: 20 6C 69 6E 65 6E 6F 3D 6C 69 6E 65 6E 6F 2B 6E lineno=lineno+n
01E0E0: 3B 0D 0A 20 20 69 66 28 6C 69 6E 65 6E 6F 20 3E ;.. if(lineno >
01E0F0: 20 62 6F 74 74 6F 6D 29 20 70 66 6F 6F 74 28 29 bottom) pfoot()
01E100: 20 30 29 20 70 72 69 6E 74 28 22 5C 6E 22 2C 20 0) print("\n",
01E110: 4E 4F 29 3B 0D 0A 20 20 7D 0D 0A 0D 0A 2F 2A 0D NO);.. }..../*.
01E120: 0A 2A 2A 20 70 68 65 61 64 20 2D 2D 20 70 75 74 .** phead -- put
01E130: 20 6F 75 74 20 68 65 61 64 65 72 0D 0A 2A 2F 0D out header..*/.
01E140: 0A 70 68 65 61 64 28 29 20 7B 0D 0A 20 20 70 61 .phead() {.. pa
01E150: 67 65 6B 69 6C 6C 3D 4E 4F 3B 0D 0A 20 20 69 66 gekill=NO;.. if
01E160: 28 28 63 75 72 70 61 67 3D 6E 65 77 70 61 67 2B ((curpag=newpag+
01E170: 2B 29 20 3E 3D 20 62 65 67 69 6E 29 20 7B 0D 0A +) >= begin) {..
01E180: 20 20 20 20 69 66 28 70 61 67 65 28 63 75 72 70 if(page(curp
01E190: 61 67 2C 20 70 61 75 73 65 2C 20 73 74 64 6F 75 ag, pause, stdou
01E1A0: 74 29 3D 3D 4B 49 4C 4C 29 20 7B 0D 0A 20 20 20 t)==KILL) {..
01E1B0: 20 20 20 70 61 67 65 6B 69 6C 6C 3D 59 45 53 3B pagekill=YES;
01E1C0: 0D 0A 20 20 20 20 20 20 66 70 75 74 63 28 27 5C .. fputc('\
01E1D0: 6E 27 2C 20 73 74 64 65 72 72 29 3B 0D 0A 20 20 n', stderr);..
01E1E0: 20 20 20 20 7D 0D 0A 20 20 20 20 7D 0D 0A 20 20 }.. }..
01E1F0: 69 66 28 63 75 72 70 61 67 25 32 29 20 70 6F 76 if(curpag%2) pov
01E200: 61 6C 20 3D 20 2D 70 6F 73 70 65 63 3B 0D 0A 20 al = -pospec;..
01E210: 20 65 6C 73 65 20 70 6F 76 61 6C 20 3D 20 70 6F else poval = po
01E220: 73 70 65 63 3B 0D 0A 20 20 69 66 28 6D 31 76 61 spec;.. if(m1va
01E230: 6C 20 3E 20 30 29 20 7B 0D 0A 20 20 20 20 73 6B l > 0) {.. sk
01E240: 69 70 28 6D 31 76 61 6C 2D 31 29 3B 0D 0A 20 20 ip(m1val-1);..
01E250: 20 20 69 66 28 63 75 72 70 61 67 25 32 29 20 70 if(curpag%2) p
01E260: 75 74 74 6C 28 6F 68 65 61 64 65 72 2C 20 63 75 uttl(oheader, cu
01E270: 72 70 61 67 29 3B 0D 0A 20 20 20 20 65 6C 73 65 rpag);.. else
01E280: 20 70 75 74 74 6C 28 65 68 65 61 64 65 72 2C 20 puttl(eheader,
01E290: 63 75 72 70 61 67 29 3B 0D 0A 20 20 20 20 7D 0D curpag);.. }.
01E2A0: 0A 20 20 73 6B 69 70 28 6D 32 76 61 6C 29 3B 0D . skip(m2val);.
01E2B0: 0A 20 20 6C 69 6E 65 6E 6F 3D 6D 31 76 61 6C 2B . lineno=m1val+
01E2C0: 6D 32 76 61 6C 2B 31 3B 0D 0A 20 20 7D 0D 0A 0D m2val+1;.. }...
01E2D0: 0A 2F 2A 0D 0A 2A 2A 20 70 66 6F 6F 74 20 2D 2D ./*..** pfoot --
01E2E0: 20 70 75 74 20 6F 75 74 20 66 6F 6F 74 65 72 0D put out footer.
01E2F0: 0A 2A 2F 0D 0A 70 66 6F 6F 74 28 29 20 7B 0D 0A .*/..pfoot() {..
01E300: 3B 0D 0A 20 20 7D 0D 0A 0D 0A 2F 2A 0D 0A 2A 2A ;.. }..../*..**
01E310: 20 6C 65 61 64 62 6C 20 2D 2D 20 64 65 6C 65 74 leadbl -- delet
01E320: 65 20 6C 65 61 64 69 6E 67 20 62 6C 61 6E 6B 73 e leading blanks
01E330: 2C 20 73 65 74 20 74 69 76 61 6C 0D 0A 2A 2F 0D , set tival..*/.
01E340: 0A 6C 65 61 64 62 6C 28 62 75 66 29 20 63 68 61 .leadbl(buf) cha
01E350: 72 20 62 75 66 5B 5D 3B 20 7B 0D 0A 20 20 69 6E r buf[]; {.. in
01E360: 74 20 69 2C 20 6A 3B 0D 0A 20 20 62 72 6B 28 29 t i, j;.. brk()
01E370: 3B 0D 0A 20 20 69 3D 30 3B 0D 0A 20 20 77 68 69 ;.. i=0;.. whi
01E380: 6C 65 28 62 75 66 5B 69 5D 3D 3D 27 20 27 29 20 le(buf[i]==' ')
01E390: 2B 2B 69 3B 0D 0A 20 20 69 66 28 62 75 66 5B 69 ++i;.. if(buf[i
01E3A0: 5D 21 3D 4E 55 4C 4C 29 20 74 69 76 61 6C 20 3D ]!=NULL) tival =
01E3B0: 20 74 69 76 61 6C 20 2B 20 69 3B 0D 0A 20 20 6A tival + i;.. j
01E3C0: 3D 30 3B 0D 0A 20 20 77 68 69 6C 65 28 62 75 66 =0;.. while(buf
01E3D0: 5B 6A 2B 2B 5D 3D 62 75 66 5B 69 2B 2B 5D 29 3B [j++]=buf[i++]);
01E3E0: 0D 0A 20 20 7D 0D 0A 0D 0A 2F 2A 0D 0A 2A 2A 20 .. }..../*..**
01E3F0: 77 69 64 74 68 20 2D 2D 20 63 6F 6D 70 75 74 65 width -- compute
01E400: 20 77 69 64 74 68 20 6F 66 20 63 68 61 72 61 63 width of charac
01E410: 74 65 72 20 73 74 72 69 6E 67 0D 0A 2A 2F 0D 0A ter string..*/..
01E420: 77 69 64 74 68 28 62 75 66 29 20 63 68 61 72 20 width(buf) char
01E430: 2A 62 75 66 3B 20 7B 0D 0A 20 20 69 6E 74 20 77 *buf; {.. int w
01E440: 69 64 65 3B 0D 0A 20 20 77 69 64 65 3D 30 3B 0D ide;.. wide=0;.
01E450: 0A 20 20 77 68 69 6C 65 28 2A 62 75 66 29 20 7B . while(*buf) {
01E460: 0D 0A 20 20 20 20 69 66 28 2A 62 75 66 3D 3D 32 .. if(*buf==2
01E470: 37 29 20 7B 0D 0A 20 20 20 20 20 20 77 68 69 6C 7) {.. whil
01E480: 65 28 2A 62 75 66 2B 2B 20 21 3D 20 31 29 20 3B e(*buf++ != 1) ;
01E490: 0D 0A 20 20 20 20 20 20 63 6F 6E 74 69 6E 75 65 .. continue
01E4A0: 3B 0D 0A 20 20 20 20 20 20 7D 0D 0A 20 20 20 20 ;.. }..
01E4B0: 69 66 28 2A 62 75 66 20 3D 3D 20 27 5C 62 27 29 if(*buf == '\b')
01E4C0: 20 2D 2D 77 69 64 65 3B 0D 0A 20 20 20 20 65 6C --wide;.. el
01E4D0: 73 65 20 69 66 28 2A 62 75 66 20 21 3D 20 27 5C se if(*buf != '\
01E4E0: 6E 27 29 20 7B 0D 0A 20 20 20 20 20 20 2B 2B 77 n') {.. ++w
01E4F0: 69 64 65 3B 0D 0A 20 20 20 20 20 20 69 66 28 64 ide;.. if(d
01E500: 20 20 73 6B 69 70 28 6D 33 76 61 6C 29 3B 0D 0A skip(m3val);..
01E510: 20 20 69 66 28 6D 34 76 61 6C 20 3E 20 30 29 20 if(m4val > 0)
01E520: 7B 0D 0A 20 20 20 20 69 66 28 63 75 72 70 61 67 {.. if(curpag
01E530: 25 32 29 20 70 75 74 74 6C 28 6F 66 6F 6F 74 65 %2) puttl(ofoote
01E540: 72 2C 20 63 75 72 70 61 67 29 3B 0D 0A 20 20 20 r, curpag);..
01E550: 20 65 6C 73 65 20 70 75 74 74 6C 28 65 66 6F 6F else puttl(efoo
01E560: 74 65 72 2C 20 63 75 72 70 61 67 29 3B 0D 0A 20 ter, curpag);..
01E570: 20 20 20 7D 0D 0A 20 20 69 66 28 28 63 75 72 70 }.. if((curp
01E580: 61 67 20 3E 3D 20 65 6E 64 29 26 28 28 65 63 6F ag >= end)&((eco
01E590: 70 79 3D 3D 48 55 47 45 29 7C 28 65 63 6F 70 79 py==HUGE)|(ecopy
01E5A0: 3D 3D 70 61 73 73 29 29 29 20 7B 0D 0A 20 20 20 ==pass))) {..
01E5B0: 20 66 63 6C 6F 73 65 28 73 74 64 6F 75 74 29 3B fclose(stdout);
01E5C0: 0D 0A 20 20 20 20 65 78 69 74 28 30 29 3B 0D 0A .. exit(0);..
01E5D0: 20 20 20 20 7D 0D 0A 20 20 69 66 28 70 61 75 73 }.. if(paus
01E5E0: 65 3D 3D 4E 4F 29 20 73 6B 69 70 28 6D 34 76 61 e==NO) skip(m4va
01E5F0: 6C 2D 31 29 3B 0D 0A 20 20 6C 69 6E 65 6E 6F 3D l-1);.. lineno=
01E600: 30 3B 0D 0A 20 20 7D 0D 0A 0D 0A 2F 2A 0D 0A 2A 0;.. }..../*..*
01E610: 2A 20 70 75 74 74 6C 20 2D 2D 20 70 75 74 20 6F * puttl -- put o
01E620: 75 74 20 74 69 74 6C 65 20 6C 69 6E 65 20 77 69 ut title line wi
01E630: 74 68 20 6F 70 74 69 6F 6E 61 6C 20 70 61 67 65 th optional page
01E640: 20 6E 75 6D 62 65 72 0D 0A 2A 2F 0D 0A 70 75 74 number..*/..put
01E650: 74 6C 28 62 75 66 2C 20 70 61 67 65 6E 6F 29 20 tl(buf, pageno)
01E660: 63 68 61 72 20 62 75 66 5B 5D 3B 20 69 6E 74 20 char buf[]; int
01E670: 70 61 67 65 6E 6F 3B 20 7B 0D 0A 20 20 63 68 61 pageno; {.. cha
01E680: 72 20 73 74 72 5B 32 5D 3B 0D 0A 20 20 69 6E 74 r str[2];.. int
01E690: 20 69 2C 20 6A 2C 20 6B 20 2C 70 61 72 74 73 3B i, j, k ,parts;
01E6A0: 0D 0A 20 20 73 74 72 5B 31 5D 3D 4E 55 4C 4C 3B .. str[1]=NULL;
01E6B0: 0D 0A 20 20 69 3D 70 6F 76 61 6C 3B 20 20 2F 2A .. i=poval; /*
01E6C0: 2A 20 6D 69 6E 75 73 20 6F 6E 20 6F 64 64 20 70 * minus on odd p
01E6D0: 61 67 65 73 20 2A 2A 2F 0D 0A 20 20 77 68 69 6C ages **/.. whil
01E6E0: 65 28 2B 2B 69 20 3C 3D 20 6C 6D 76 61 6C 29 20 e(++i <= lmval)
01E6F0: 70 72 69 6E 74 28 22 20 22 2C 20 59 45 53 29 3B print(" ", YES);
01E700: 77 61 63 74 20 26 26 20 21 69 73 73 70 61 63 65 wact && !isspace
01E710: 28 2A 62 75 66 29 29 20 2B 2B 77 69 64 65 3B 0D (*buf)) ++wide;.
01E720: 0A 20 20 20 20 20 20 7D 0D 0A 20 20 20 20 2B 2B . }.. ++
01E730: 62 75 66 3B 0D 0A 20 20 20 20 7D 0D 0A 20 20 72 buf;.. }.. r
01E740: 65 74 75 72 6E 20 28 77 69 64 65 29 3B 0D 0A 20 eturn (wide);..
01E750: 20 7D 0D 0A 0D 0A 2F 2A 0D 0A 2A 2A 20 62 72 6B }..../*..** brk
01E760: 20 2D 2D 20 65 6E 64 20 63 75 72 72 65 6E 74 20 -- end current
01E770: 66 69 6C 6C 65 64 20 6C 69 6E 65 0D 0A 2A 2F 0D filled line..*/.
01E780: 0A 62 72 6B 28 29 20 7B 0D 0A 20 20 69 66 28 6F .brk() {.. if(o
01E790: 75 74 70 20 3E 20 2D 31 29 20 7B 0D 0A 20 20 20 utp > -1) {..
01E7A0: 20 6F 75 74 62 75 66 5B 6F 75 74 70 5D 3D 4E 55 outbuf[outp]=NU
01E7B0: 4C 4C 3B 0D 0A 20 20 20 20 6F 75 74 70 3D 2D 31 LL;.. outp=-1
01E7C0: 3B 0D 0A 20 20 20 20 70 75 74 28 6F 75 74 62 75 ;.. put(outbu
01E7D0: 66 29 3B 0D 0A 20 20 20 20 7D 0D 0A 20 20 6F 75 f);.. }.. ou
01E7E0: 74 77 3D 6F 75 74 77 64 73 3D 30 3B 0D 0A 20 20 tw=outwds=0;..
01E7F0: 7D 0D 0A 0D 0A 2F 2A 0D 0A 2A 2A 20 70 75 74 77 }..../*..** putw
01E800: 72 64 20 2D 2D 20 70 75 74 20 61 20 77 6F 72 64 rd -- put a word
01E810: 20 69 6E 20 6F 75 74 62 75 66 20 28 64 6F 65 73 in outbuf (does
01E820: 20 6D 61 72 67 69 6E 20 6A 75 73 74 69 66 69 63 margin justific
01E830: 61 74 69 6F 6E 29 0D 0A 2A 2F 0D 0A 70 75 74 77 ation)..*/..putw
01E840: 72 64 28 77 72 64 62 75 66 29 20 63 68 61 72 20 rd(wrdbuf) char
01E850: 77 72 64 62 75 66 5B 5D 3B 20 7B 0D 0A 20 20 69 wrdbuf[]; {.. i
01E860: 6E 74 20 6C 61 73 74 2C 20 6C 6C 76 61 6C 2C 20 nt last, llval,
01E870: 6E 65 78 74 72 61 2C 20 77 2C 20 69 3B 0D 0A 20 nextra, w, i;..
01E880: 20 77 3D 77 69 64 74 68 28 77 72 64 62 75 66 29 w=width(wrdbuf)
01E890: 3B 0D 0A 20 20 6C 61 73 74 3D 73 74 72 6C 65 6E ;.. last=strlen
01E8A0: 28 77 72 64 62 75 66 29 2B 6F 75 74 70 2B 31 3B (wrdbuf)+outp+1;
01E8B0: 0D 0A 20 20 6C 6C 76 61 6C 3D 72 6D 76 61 6C 2D .. llval=rmval-
01E8C0: 6C 6D 76 61 6C 2D 74 69 76 61 6C 2D 69 6E 76 61 lmval-tival-inva
01E8D0: 6C 2D 28 73 71 76 61 6C 3C 3C 31 29 3B 0D 0A 20 l-(sqval<<1);..
01E8E0: 20 69 66 28 28 6F 75 74 70 20 3E 20 2D 31 29 26 if((outp > -1)&
01E8F0: 28 28 6F 75 74 77 2B 77 20 3E 20 6C 6C 76 61 6C ((outw+w > llval
01E900: 0D 0A 20 20 70 61 72 74 73 3D 31 3B 0D 0A 20 20 .. parts=1;..
01E910: 69 3D 6B 3D 30 3B 0D 0A 20 20 77 68 69 6C 65 28 i=k=0;.. while(
01E920: 62 75 66 5B 69 5D 21 3D 4E 55 4C 4C 29 20 7B 0D buf[i]!=NULL) {.
01E930: 0A 20 20 20 20 69 66 28 62 75 66 5B 69 5D 3D 3D . if(buf[i]==
01E940: 50 41 47 45 4E 55 4D 29 20 7B 0D 0A 20 20 20 20 PAGENUM) {..
01E950: 20 20 69 74 6F 64 28 70 61 67 65 6E 6F 2C 20 6E itod(pageno, n
01E960: 62 72 73 74 72 2C 20 2D 20 4E 57 49 44 54 48 29 brstr, - NWIDTH)
01E970: 3B 0D 0A 20 20 20 20 20 20 6A 3D 30 3B 0D 0A 20 ;.. j=0;..
01E980: 20 20 20 20 20 77 68 69 6C 65 28 6E 62 72 73 74 while(nbrst
01E990: 72 5B 6A 5D 3D 3D 27 20 27 29 20 2B 2B 6A 3B 0D r[j]==' ') ++j;.
01E9A0: 0A 20 20 20 20 20 20 77 68 69 6C 65 28 6A 20 3C . while(j <
01E9B0: 20 4E 57 49 44 54 48 29 20 7B 0D 0A 20 20 20 20 NWIDTH) {..
01E9C0: 20 20 20 20 69 66 28 6B 20 3C 20 28 4D 41 58 4F if(k < (MAXO
01E9D0: 55 54 2D 31 29 29 20 74 74 6C 62 75 66 5B 6B 2B UT-1)) ttlbuf[k+
01E9E0: 2B 5D 3D 6E 62 72 73 74 72 5B 6A 5D 3B 0D 0A 20 +]=nbrstr[j];..
01E9F0: 20 20 20 20 20 20 20 2B 2B 6A 3B 0D 0A 20 20 20 ++j;..
01EA00: 20 20 20 20 20 7D 0D 0A 20 20 20 20 20 20 7D 0D }.. }.
01EA10: 0A 20 20 20 20 65 6C 73 65 20 7B 0D 0A 20 20 20 . else {..
01EA20: 20 20 20 69 66 28 62 75 66 5B 69 5D 3D 3D 54 54 if(buf[i]==TT
01EA30: 4C 44 45 4C 49 4D 29 20 2B 2B 70 61 72 74 73 3B LDELIM) ++parts;
01EA40: 0D 0A 20 20 20 20 20 20 69 66 28 6B 20 3C 20 28 .. if(k < (
01EA50: 4D 41 58 4F 55 54 2D 31 29 29 20 74 74 6C 62 75 MAXOUT-1)) ttlbu
01EA60: 66 5B 6B 2B 2B 5D 3D 62 75 66 5B 69 5D 3B 0D 0A f[k++]=buf[i];..
01EA70: 20 20 20 20 20 20 7D 0D 0A 20 20 20 20 2B 2B 69 }.. ++i
01EA80: 3B 0D 0A 20 20 20 20 7D 0D 0A 20 20 74 74 6C 62 ;.. }.. ttlb
01EA90: 75 66 5B 6B 5D 3D 4E 55 4C 4C 3B 0D 0A 20 20 73 uf[k]=NULL;.. s
01EAA0: 70 72 65 61 64 28 74 74 6C 62 75 66 2C 20 6B 2B pread(ttlbuf, k+
01EAB0: 31 2C 20 4D 41 58 4F 55 54 2C 20 72 6D 76 61 6C 1, MAXOUT, rmval
01EAC0: 2D 6C 6D 76 61 6C 2D 6B 2C 20 70 61 72 74 73 2C -lmval-k, parts,
01EAD0: 20 54 54 4C 44 45 4C 49 4D 29 3B 0D 0A 20 20 2F TTLDELIM);.. /
01EAE0: 2A 20 64 69 73 61 62 6C 65 20 72 75 6E 6E 69 6E * disable runnin
01EAF0: 67 20 75 6C 2C 20 69 74 2C 20 64 77 2C 20 64 73 g ul, it, dw, ds
01EB00: 29 7C 28 6C 61 73 74 20 3E 3D 20 4D 41 58 4F 55 )|(last >= MAXOU
01EB10: 54 29 29 29 20 7B 0D 0A 20 20 20 20 6C 61 73 74 T))) {.. last
01EB20: 3D 6C 61 73 74 2D 6F 75 74 70 2D 31 3B 0D 0A 20 =last-outp-1;..
01EB30: 20 20 20 69 66 28 6A 75 73 74 21 3D 59 45 53 29 if(just!=YES)
01EB40: 20 6E 65 78 74 72 61 3D 30 3B 0D 0A 20 20 20 20 nextra=0;..
01EB50: 65 6C 73 65 20 6E 65 78 74 72 61 3D 6C 6C 76 61 else nextra=llva
01EB60: 6C 2D 6F 75 74 77 2B 31 3B 0D 0A 20 20 20 20 73 l-outw+1;.. s
01EB70: 70 72 65 61 64 28 6F 75 74 62 75 66 2C 20 6F 75 pread(outbuf, ou
01EB80: 74 70 2C 20 4D 41 58 4F 55 54 2C 20 6E 65 78 74 tp, MAXOUT, next
01EB90: 72 61 2C 20 6F 75 74 77 64 73 2C 20 27 20 27 29 ra, outwds, ' ')
01EBA0: 3B 0D 0A 20 20 20 20 69 66 28 28 6E 65 78 74 72 ;.. if((nextr
01EBB0: 61 20 3E 20 30 29 26 28 6F 75 74 77 64 73 20 3E a > 0)&(outwds >
01EBC0: 20 31 29 29 20 6F 75 74 70 3D 6F 75 74 70 2B 6E 1)) outp=outp+n
01EBD0: 65 78 74 72 61 3B 0D 0A 20 20 20 20 62 72 6B 28 extra;.. brk(
01EBE0: 29 3B 0D 0A 20 20 20 20 7D 0D 0A 20 20 69 66 28 );.. }.. if(
01EBF0: 6F 75 74 70 20 3E 20 30 20 26 26 20 63 75 61 63 outp > 0 && cuac
01EC00: 74 20 3E 20 31 20 26 26 20 21 69 74 73 75 62 20 t > 1 && !itsub
01EC10: 26 26 20 74 74 79 6D 6F 64 65 29 0D 0A 20 20 20 && ttymode)..
01EC20: 20 6F 75 74 62 75 66 5B 6F 75 74 70 5D 3D 27 5F outbuf[outp]='_
01EC30: 27 3B 0D 0A 20 20 65 6C 73 65 20 7B 0D 0A 20 20 ';.. else {..
01EC40: 20 20 2B 2B 6F 75 74 77 64 73 3B 0D 0A 20 20 20 ++outwds;..
01EC50: 20 69 66 28 63 75 61 63 74 3D 3D 31 29 20 63 75 if(cuact==1) cu
01EC60: 61 63 74 3D 32 3B 0D 0A 20 20 20 20 7D 0D 0A 20 act=2;.. }..
01EC70: 20 69 66 28 28 6F 75 74 70 20 3C 20 30 29 26 28 if((outp < 0)&(
01EC80: 77 72 64 62 75 66 5B 30 5D 3D 3D 27 20 27 29 29 wrdbuf[0]==' '))
01EC90: 20 69 3D 31 3B 20 65 6C 73 65 20 69 3D 30 3B 0D i=1; else i=0;.
01ECA0: 0A 20 20 73 63 6F 70 79 28 77 72 64 62 75 66 2B . scopy(wrdbuf+
01ECB0: 69 2C 20 30 2C 20 6F 75 74 62 75 66 2C 20 6F 75 i, 0, outbuf, ou
01ECC0: 74 70 2B 31 29 3B 0D 0A 20 20 6F 75 74 70 3D 6C tp+1);.. outp=l
01ECD0: 61 73 74 2D 69 3B 0D 0A 20 20 6F 75 74 62 75 66 ast-i;.. outbuf
01ECE0: 5B 6F 75 74 70 5D 3D 27 20 27 3B 0D 0A 20 20 6F [outp]=' ';.. o
01ECF0: 75 74 77 3D 6F 75 74 77 2B 77 2B 31 2D 69 3B 0D utw=outw+w+1-i;.
01ED00: 2C 20 6F 72 20 62 66 20 2A 2F 0D 0A 20 20 69 66 , or bf */.. if
01ED10: 28 75 6C 6F 66 66 29 20 70 72 69 6E 74 28 75 6C (uloff) print(ul
01ED20: 6F 66 66 2C 20 59 45 53 29 3B 0D 0A 20 20 69 66 off, YES);.. if
01ED30: 28 69 74 6F 66 66 29 20 70 72 69 6E 74 28 69 74 (itoff) print(it
01ED40: 6F 66 66 2C 20 59 45 53 29 3B 0D 0A 20 20 69 66 off, YES);.. if
01ED50: 28 64 73 6F 66 66 29 20 70 72 69 6E 74 28 64 73 (dsoff) print(ds
01ED60: 6F 66 66 2C 20 59 45 53 29 3B 0D 0A 20 20 69 66 off, YES);.. if
01ED70: 28 62 66 6F 66 66 29 20 70 72 69 6E 74 28 62 66 (bfoff) print(bf
01ED80: 6F 66 66 2C 20 59 45 53 29 3B 0D 0A 20 20 69 66 off, YES);.. if
01ED90: 28 64 77 6F 66 66 29 20 70 72 69 6E 74 28 64 77 (dwoff) print(dw
01EDA0: 6F 66 66 2C 20 59 45 53 29 3B 0D 0A 20 20 70 72 off, YES);.. pr
01EDB0: 69 6E 74 28 74 74 6C 62 75 66 2C 20 59 45 53 29 int(ttlbuf, YES)
01EDC0: 3B 0D 0A 20 20 2F 2A 20 72 65 65 6E 61 62 6C 65 ;.. /* reenable
01EDD0: 20 72 75 6E 6E 69 6E 67 20 75 6C 2C 20 69 74 2C running ul, it,
01EDE0: 20 64 77 2C 20 64 73 2C 20 6F 72 20 62 66 20 2A dw, ds, or bf *
01EDF0: 2F 0D 0A 20 20 69 66 28 75 6C 6F 6E 29 20 70 72 /.. if(ulon) pr
01EE00: 69 6E 74 28 75 6C 6F 6E 2C 20 59 45 53 29 3B 0D int(ulon, YES);.
01EE10: 0A 20 20 69 66 28 69 74 6F 6E 29 20 70 72 69 6E . if(iton) prin
01EE20: 74 28 69 74 6F 6E 2C 20 59 45 53 29 3B 0D 0A 20 t(iton, YES);..
01EE30: 20 69 66 28 64 73 6F 6E 29 20 70 72 69 6E 74 28 if(dson) print(
01EE40: 64 73 6F 6E 2C 20 59 45 53 29 3B 0D 0A 20 20 69 dson, YES);.. i
01EE50: 66 28 62 66 6F 6E 29 20 70 72 69 6E 74 28 62 66 f(bfon) print(bf
01EE60: 6F 6E 2C 20 59 45 53 29 3B 0D 0A 20 20 69 66 28 on, YES);.. if(
01EE70: 64 77 6F 6E 29 20 70 72 69 6E 74 28 64 77 6F 6E dwon) print(dwon
01EE80: 2C 20 59 45 53 29 3B 0D 0A 20 20 70 72 69 6E 74 , YES);.. print
01EE90: 28 22 5C 6E 22 2C 20 59 45 53 29 3B 0D 0A 20 20 ("\n", YES);..
01EEA0: 7D 0D 0A 0D 0A 2F 2A 0D 0A 2A 2A 20 67 65 74 74 }..../*..** gett
01EEB0: 6C 20 2D 2D 20 63 6F 70 79 20 74 69 74 6C 65 20 l -- copy title
01EEC0: 66 72 6F 6D 20 62 75 66 20 74 6F 20 74 74 6C 0D from buf to ttl.
01EED0: 0A 2A 2F 0D 0A 67 65 74 74 6C 28 62 75 66 2C 20 .*/..gettl(buf,
01EEE0: 74 74 6C 29 20 63 68 61 72 20 2A 62 75 66 2C 20 ttl) char *buf,
01EEF0: 2A 74 74 6C 3B 20 7B 0D 0A 20 20 69 6E 74 20 69 *ttl; {.. int i
01EF00: 54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 00 00 00 Track-Info......
01EF10: 1A 00 01 00 02 09 52 E5 1A 00 41 02 00 00 00 02 ......R...A.....
01EF20: 1A 00 46 02 00 00 00 02 1A 00 42 02 00 00 00 02 ..F.......B.....
01EF30: 1A 00 47 02 00 00 00 02 1A 00 43 02 00 00 00 02 ..G.......C.....
01EF40: 1A 00 48 02 00 00 00 02 1A 00 44 02 00 00 00 02 ..H.......D.....
01EF50: 1A 00 49 02 00 00 00 02 1A 00 45 02 00 00 00 02 ..I.......E.....
01EF60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01EF70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01EF80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01EF90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01EFA0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01EFB0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01EFC0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01EFD0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01EFE0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01EFF0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
01F000: 0A 20 20 7D 0D 0A 0D 0A 2F 2A 0D 0A 2A 2A 20 73 . }..../*..** s
01F010: 70 72 65 61 64 20 2D 2D 20 73 70 72 65 61 64 20 pread -- spread
01F020: 77 6F 72 64 73 20 74 6F 20 6A 75 73 74 69 66 79 words to justify
01F030: 20 72 69 67 68 74 20 6D 61 72 67 69 6E 0D 0A 2A right margin..*
01F040: 2F 0D 0A 73 70 72 65 61 64 28 62 75 66 2C 20 6F /..spread(buf, o
01F050: 75 74 70 2C 20 6D 61 78 2C 20 6E 65 78 74 72 61 utp, max, nextra
01F060: 2C 20 6F 75 74 77 64 73 2C 20 67 61 70 69 64 29 , outwds, gapid)
01F070: 0D 0A 20 20 63 68 61 72 20 62 75 66 5B 5D 2C 20 .. char buf[],
01F080: 67 61 70 69 64 3B 20 69 6E 74 20 6F 75 74 70 2C gapid; int outp,
01F090: 20 6D 61 78 2C 20 6E 65 78 74 72 61 2C 20 6F 75 max, nextra, ou
01F0A0: 74 77 64 73 3B 20 7B 0D 0A 20 20 69 6E 74 20 69 twds; {.. int i
01F0B0: 2C 20 6A 2C 20 6E 62 2C 20 6E 65 2C 20 6E 68 6F , j, nb, ne, nho
01F0C0: 6C 65 73 3B 0D 0A 20 20 69 66 28 28 6E 65 78 74 les;.. if((next
01F0D0: 72 61 20 3C 3D 20 30 29 7C 28 6F 75 74 77 64 73 ra <= 0)|(outwds
01F0E0: 20 3C 3D 20 31 29 29 20 72 65 74 75 72 6E 3B 0D <= 1)) return;.
01F0F0: 0A 20 20 64 69 72 3D 31 2D 64 69 72 3B 20 2F 2A . dir=1-dir; /*
01F100: 20 72 65 76 65 72 73 65 20 70 72 65 76 20 64 69 reverse prev di
01F110: 72 65 63 74 69 6F 6E 20 2A 2F 0D 0A 20 20 6E 65 rection */.. ne
01F120: 3D 6E 65 78 74 72 61 3B 0D 0A 20 20 6E 68 6F 6C =nextra;.. nhol
01F130: 65 73 3D 6F 75 74 77 64 73 2D 31 3B 0D 0A 20 20 es=outwds-1;..
01F140: 69 3D 6F 75 74 70 2D 31 3B 0D 0A 20 20 69 66 28 i=outp-1;.. if(
01F150: 28 6D 61 78 2D 32 29 20 3C 20 28 69 2B 6E 65 29 (max-2) < (i+ne)
01F160: 29 20 6A 3D 6D 61 78 2D 32 3B 0D 0A 20 20 65 6C ) j=max-2;.. el
01F170: 73 65 20 6A 3D 69 2B 6E 65 3B 0D 0A 20 20 77 68 se j=i+ne;.. wh
01F180: 69 6C 65 28 69 20 3C 20 6A 29 20 7B 0D 0A 20 20 ile(i < j) {..
01F190: 20 20 69 66 28 62 75 66 5B 69 5D 3D 3D 67 61 70 if(buf[i]==gap
01F1A0: 69 64 29 20 7B 0D 0A 20 20 20 20 20 20 62 75 66 id) {.. buf
01F1B0: 5B 6A 5D 3D 27 20 27 3B 0D 0A 20 20 20 20 20 20 [j]=' ';..
01F1C0: 69 66 28 64 69 72 3D 3D 30 29 20 6E 62 3D 28 6E if(dir==0) nb=(n
01F1D0: 65 2D 31 29 2F 6E 68 6F 6C 65 73 20 2B 20 31 3B e-1)/nholes + 1;
01F1E0: 0D 0A 20 20 20 20 20 20 65 6C 73 65 20 6E 62 3D .. else nb=
01F1F0: 6E 65 2F 6E 68 6F 6C 65 73 3B 0D 0A 20 20 20 20 ne/nholes;..
01F200: 20 6C 69 6E 65 0D 0A 2A 2F 0D 0A 69 74 61 6C 69 line..*/..itali
01F210: 63 28 62 75 66 2C 20 74 62 75 66 2C 20 73 69 7A c(buf, tbuf, siz
01F220: 65 29 20 63 68 61 72 20 62 75 66 5B 5D 2C 20 74 e) char buf[], t
01F230: 62 75 66 5B 5D 3B 20 69 6E 74 20 73 69 7A 65 3B buf[]; int size;
01F240: 20 7B 0D 0A 20 20 63 68 61 72 20 2A 70 74 72 3B {.. char *ptr;
01F250: 0D 0A 20 20 69 6E 74 20 69 2C 20 6A 3B 0D 0A 20 .. int i, j;..
01F260: 20 69 66 28 2A 62 75 66 20 3D 3D 20 30 29 20 72 if(*buf == 0) r
01F270: 65 74 75 72 6E 3B 0D 0A 20 20 69 66 28 74 74 79 eturn;.. if(tty
01F280: 6D 6F 64 65 29 20 72 65 74 75 72 6E 3B 0D 0A 20 mode) return;..
01F290: 20 69 3D 6A 3D 30 3B 0D 0A 20 20 70 74 72 3D 69 i=j=0;.. ptr=i
01F2A0: 74 70 72 65 66 3B 0D 0A 20 20 77 68 69 6C 65 28 tpref;.. while(
01F2B0: 28 74 62 75 66 5B 6A 2B 2B 5D 3D 2A 70 74 72 2B (tbuf[j++]=*ptr+
01F2C0: 2B 29 20 21 3D 20 31 29 20 3B 0D 0A 20 20 70 74 +) != 1) ;.. pt
01F2D0: 72 3D 62 66 70 72 65 66 3B 0D 0A 20 20 77 68 69 r=bfpref;.. whi
01F2E0: 6C 65 28 28 74 62 75 66 5B 6A 2B 2B 5D 3D 2A 70 le((tbuf[j++]=*p
01F2F0: 74 72 2B 2B 29 20 21 3D 20 31 29 20 3B 0D 0A 20 tr++) != 1) ;..
01F300: 20 77 68 69 6C 65 28 28 62 75 66 5B 69 5D 21 3D while((buf[i]!=
01F310: 4E 55 4C 4C 29 26 28 6A 3C 28 73 69 7A 65 2D 32 NULL)&(j<(size-2
01F320: 29 29 29 20 20 74 62 75 66 5B 6A 2B 2B 5D 3D 62 ))) tbuf[j++]=b
01F330: 75 66 5B 69 2B 2B 5D 3B 0D 0A 20 20 70 74 72 3D uf[i++];.. ptr=
01F340: 69 74 73 75 66 66 3B 0D 0A 20 20 77 68 69 6C 65 itsuff;.. while
01F350: 28 28 74 62 75 66 5B 6A 2B 2B 5D 3D 2A 70 74 72 ((tbuf[j++]=*ptr
01F360: 2B 2B 29 20 21 3D 20 31 29 20 3B 0D 0A 20 20 70 ++) != 1) ;.. p
01F370: 74 72 3D 62 66 73 75 66 66 3B 0D 0A 20 20 77 68 tr=bfsuff;.. wh
01F380: 69 6C 65 28 28 74 62 75 66 5B 6A 2B 2B 5D 3D 2A ile((tbuf[j++]=*
01F390: 70 74 72 2B 2B 29 20 21 3D 20 31 29 20 3B 0D 0A ptr++) != 1) ;..
01F3A0: 20 20 74 62 75 66 5B 6A 5D 3D 4E 55 4C 4C 3B 0D tbuf[j]=NULL;.
01F3B0: 0A 20 20 73 63 6F 70 79 28 74 62 75 66 2C 20 30 . scopy(tbuf, 0
01F3C0: 2C 20 62 75 66 2C 20 30 29 3B 0D 0A 20 20 7D 0D , buf, 0);.. }.
01F3D0: 0A 0D 0A 2F 2A 0D 0A 2A 2A 20 64 6F 75 62 6C 65 .../*..** double
01F3E0: 20 2D 2D 20 64 6F 75 62 6C 65 2D 77 69 64 65 20 -- double-wide
01F3F0: 61 20 6C 69 6E 65 20 28 6E 6F 6E 74 74 79 20 6D a line (nontty m
01F400: 20 20 6E 65 3D 6E 65 2D 6E 62 3B 0D 0A 20 20 20 ne=ne-nb;..
01F410: 20 20 20 6E 68 6F 6C 65 73 3D 6E 68 6F 6C 65 73 nholes=nholes
01F420: 2D 31 3B 0D 0A 20 20 20 20 20 20 77 68 69 6C 65 -1;.. while
01F430: 28 28 6E 62 2D 2D 29 20 3E 20 30 29 0D 0A 20 20 ((nb--) > 0)..
01F440: 20 20 20 20 20 20 62 75 66 5B 2D 2D 6A 5D 3D 27 buf[--j]='
01F450: 20 27 3B 0D 0A 20 20 20 20 20 20 7D 0D 0A 20 20 ';.. }..
01F460: 20 20 65 6C 73 65 20 62 75 66 5B 6A 5D 3D 62 75 else buf[j]=bu
01F470: 66 5B 69 5D 3B 0D 0A 20 20 20 20 2D 2D 69 3B 0D f[i];.. --i;.
01F480: 0A 20 20 20 20 2D 2D 6A 3B 0D 0A 20 20 20 20 7D . --j;.. }
01F490: 0D 0A 20 20 7D 0D 0A 0D 0A 2F 2A 0D 0A 2A 2A 20 .. }..../*..**
01F4A0: 63 65 6E 74 65 72 20 2D 2D 20 63 65 6E 74 65 72 center -- center
01F4B0: 20 61 20 6C 69 6E 65 20 62 79 20 73 65 74 74 69 a line by setti
01F4C0: 6E 67 20 74 69 76 61 6C 0D 0A 2A 2F 0D 0A 63 65 ng tival..*/..ce
01F4D0: 6E 74 65 72 28 62 75 66 29 20 63 68 61 72 20 62 nter(buf) char b
01F4E0: 75 66 5B 5D 3B 20 7B 0D 0A 20 20 69 6E 74 20 69 uf[]; {.. int i
01F4F0: 2C 20 6A 3B 0D 0A 20 20 6A 20 3D 20 2D 6C 6D 76 , j;.. j = -lmv
01F500: 61 6C 20 2D 20 69 6E 76 61 6C 20 2D 20 73 71 76 al - inval - sqv
01F510: 61 6C 3B 0D 0A 20 20 69 66 28 28 69 3D 28 28 72 al;.. if((i=((r
01F520: 6D 76 61 6C 2D 6C 6D 76 61 6C 2D 77 69 64 74 68 mval-lmval-width
01F530: 28 62 75 66 29 29 2F 32 29 2D 69 6E 76 61 6C 2D (buf))/2)-inval-
01F540: 73 71 76 61 6C 29 20 3C 20 6A 29 0D 0A 20 20 20 sqval) < j)..
01F550: 20 20 20 20 74 69 76 61 6C 20 3D 20 6A 3B 0D 0A tival = j;..
01F560: 20 20 65 6C 73 65 20 74 69 76 61 6C 20 3D 20 69 else tival = i
01F570: 3B 0D 0A 20 20 7D 0D 0A 0D 0A 2F 2A 0D 0A 2A 2A ;.. }..../*..**
01F580: 20 75 6E 64 65 72 6C 20 2D 2D 20 75 6E 64 65 72 underl -- under
01F590: 6C 69 6E 65 20 61 20 6C 69 6E 65 0D 0A 2A 2F 0D line a line..*/.
01F5A0: 0A 75 6E 64 65 72 6C 28 62 75 66 2C 20 74 62 75 .underl(buf, tbu
01F5B0: 66 2C 20 73 69 7A 65 29 20 63 68 61 72 20 62 75 f, size) char bu
01F5C0: 66 5B 5D 2C 20 74 62 75 66 5B 5D 3B 20 69 6E 74 f[], tbuf[]; int
01F5D0: 20 73 69 7A 65 3B 20 7B 0D 0A 20 20 63 68 61 72 size; {.. char
01F5E0: 20 63 2C 20 2A 70 74 72 3B 0D 0A 20 20 69 6E 74 c, *ptr;.. int
01F5F0: 20 70 72 65 66 69 78 65 64 2C 20 69 2C 20 6A 3B prefixed, i, j;
01F600: 6F 64 65 20 6F 6E 6C 79 29 0D 0A 2A 2F 0D 0A 64 ode only)..*/..d
01F610: 6F 75 62 6C 65 28 62 75 66 2C 20 74 62 75 66 2C ouble(buf, tbuf,
01F620: 20 73 69 7A 65 29 20 63 68 61 72 20 62 75 66 5B size) char buf[
01F630: 5D 2C 20 74 62 75 66 5B 5D 3B 20 69 6E 74 20 73 ], tbuf[]; int s
01F640: 69 7A 65 3B 20 7B 0D 0A 20 20 63 68 61 72 20 2A ize; {.. char *
01F650: 70 74 72 3B 0D 0A 20 20 69 6E 74 20 73 70 61 63 ptr;.. int spac
01F660: 65 2C 20 69 2C 20 6A 3B 0D 0A 20 20 69 66 28 21 e, i, j;.. if(!
01F670: 2A 62 75 66 20 7C 7C 20 74 74 79 6D 6F 64 65 29 *buf || ttymode)
01F680: 20 72 65 74 75 72 6E 3B 0D 0A 20 20 73 70 61 63 return;.. spac
01F690: 65 20 3D 20 59 45 53 3B 0D 0A 20 20 69 20 3D 20 e = YES;.. i =
01F6A0: 6A 20 3D 20 30 3B 0D 0A 20 20 77 68 69 6C 65 28 j = 0;.. while(
01F6B0: 62 75 66 5B 69 5D 20 26 26 20 6A 20 3C 20 28 73 buf[i] && j < (s
01F6C0: 69 7A 65 2D 33 29 29 20 7B 0D 0A 20 20 20 20 69 ize-3)) {.. i
01F6D0: 66 28 69 73 73 70 61 63 65 28 62 75 66 5B 69 5D f(isspace(buf[i]
01F6E0: 29 29 20 7B 0D 0A 20 20 20 20 20 20 69 66 28 21 )) {.. if(!
01F6F0: 73 70 61 63 65 29 20 7B 0D 0A 20 20 20 20 20 20 space) {..
01F700: 20 20 70 74 72 3D 64 77 73 75 66 66 3B 0D 0A 20 ptr=dwsuff;..
01F710: 20 20 20 20 20 20 20 77 68 69 6C 65 28 28 74 62 while((tb
01F720: 75 66 5B 6A 2B 2B 5D 3D 2A 70 74 72 2B 2B 29 20 uf[j++]=*ptr++)
01F730: 21 3D 20 31 29 20 3B 0D 0A 20 20 20 20 20 20 20 != 1) ;..
01F740: 20 7D 0D 0A 20 20 20 20 20 20 73 70 61 63 65 20 }.. space
01F750: 3D 20 59 45 53 3B 0D 0A 20 20 20 20 20 20 7D 0D = YES;.. }.
01F760: 0A 20 20 20 20 65 6C 73 65 20 7B 0D 0A 20 20 20 . else {..
01F770: 20 20 20 69 66 28 73 70 61 63 65 29 20 7B 0D 0A if(space) {..
01F780: 20 20 20 20 20 20 20 20 70 74 72 3D 64 77 70 72 ptr=dwpr
01F790: 65 66 3B 0D 0A 20 20 20 20 20 20 20 20 77 68 69 ef;.. whi
01F7A0: 6C 65 28 28 74 62 75 66 5B 6A 2B 2B 5D 3D 2A 70 le((tbuf[j++]=*p
01F7B0: 74 72 2B 2B 29 20 21 3D 20 31 29 20 3B 0D 0A 20 tr++) != 1) ;..
01F7C0: 20 20 20 20 20 20 20 7D 0D 0A 20 20 20 20 20 20 }..
01F7D0: 73 70 61 63 65 20 3D 20 4E 4F 3B 0D 0A 20 20 20 space = NO;..
01F7E0: 20 20 20 7D 0D 0A 20 20 20 20 74 62 75 66 5B 6A }.. tbuf[j
01F7F0: 2B 2B 5D 3D 62 75 66 5B 69 2B 2B 5D 3B 0D 0A 20 ++]=buf[i++];..
01F800: 0D 0A 20 20 69 66 28 2A 62 75 66 20 3D 3D 20 30 .. if(*buf == 0
01F810: 29 20 72 65 74 75 72 6E 3B 0D 0A 20 20 69 66 28 ) return;.. if(
01F820: 21 74 74 79 6D 6F 64 65 29 20 70 72 65 66 69 78 !ttymode) prefix
01F830: 65 64 3D 4E 4F 3B 0D 0A 20 20 65 6C 73 65 20 70 ed=NO;.. else p
01F840: 72 65 66 69 78 65 64 3D 39 3B 20 20 2F 2A 20 6E refixed=9; /* n
01F850: 65 69 74 68 65 72 20 59 45 53 20 6E 6F 72 20 4E either YES nor N
01F860: 4F 20 2A 2F 0D 0A 20 20 69 3D 6A 3D 30 3B 0D 0A O */.. i=j=0;..
01F870: 20 20 77 68 69 6C 65 28 28 62 75 66 5B 69 5D 21 while((buf[i]!
01F880: 3D 4E 55 4C 4C 29 26 28 6A 3C 28 73 69 7A 65 2D =NULL)&(j<(size-
01F890: 32 29 29 29 20 7B 0D 0A 20 20 20 20 63 3D 62 75 2))) {.. c=bu
01F8A0: 66 5B 69 2B 2B 5D 3B 0D 0A 20 20 20 20 69 66 28 f[i++];.. if(
01F8B0: 69 6E 64 65 78 28 75 6C 73 6B 69 70 73 2C 20 63 index(ulskips, c
01F8C0: 29 20 3C 20 30 29 20 7B 0D 0A 20 20 20 20 20 20 ) < 0) {..
01F8D0: 69 66 28 70 72 65 66 69 78 65 64 3D 3D 4E 4F 29 if(prefixed==NO)
01F8E0: 20 7B 0D 0A 20 20 20 20 20 20 20 20 70 72 65 66 {.. pref
01F8F0: 69 78 65 64 3D 59 45 53 3B 0D 0A 20 20 20 20 20 ixed=YES;..
01F900: 20 20 20 70 74 72 3D 75 6C 70 72 65 66 3B 0D 0A ptr=ulpref;..
01F910: 20 20 20 20 20 20 20 20 77 68 69 6C 65 28 28 74 while((t
01F920: 62 75 66 5B 6A 2B 2B 5D 3D 2A 70 74 72 2B 2B 29 buf[j++]=*ptr++)
01F930: 20 21 3D 20 31 29 20 3B 0D 0A 20 20 20 20 20 20 != 1) ;..
01F940: 20 20 7D 0D 0A 20 20 20 20 20 20 65 6C 73 65 20 }.. else
01F950: 69 66 28 74 74 79 6D 6F 64 65 29 20 7B 0D 0A 20 if(ttymode) {..
01F960: 20 20 20 20 20 20 20 74 62 75 66 5B 6A 2B 2B 5D tbuf[j++]
01F970: 3D 27 5F 27 3B 0D 0A 20 20 20 20 20 20 20 20 74 ='_';.. t
01F980: 62 75 66 5B 6A 2B 2B 5D 3D 27 5C 62 27 3B 0D 0A buf[j++]='\b';..
01F990: 20 20 20 20 20 20 20 20 7D 0D 0A 20 20 20 20 20 }..
01F9A0: 20 7D 0D 0A 20 20 20 20 65 6C 73 65 20 7B 0D 0A }.. else {..
01F9B0: 20 20 20 20 20 20 69 66 28 70 72 65 66 69 78 65 if(prefixe
01F9C0: 64 3D 3D 59 45 53 29 20 7B 0D 0A 20 20 20 20 20 d==YES) {..
01F9D0: 20 20 20 70 72 65 66 69 78 65 64 3D 4E 4F 3B 0D prefixed=NO;.
01F9E0: 0A 20 20 20 20 20 20 20 20 70 74 72 3D 75 6C 73 . ptr=uls
01F9F0: 75 66 66 3B 0D 0A 20 20 20 20 20 20 20 20 77 68 uff;.. wh
01FA00: 20 20 20 7D 0D 0A 20 20 69 66 28 21 73 70 61 63 }.. if(!spac
01FA10: 65 29 20 7B 0D 0A 20 20 20 20 70 74 72 3D 64 77 e) {.. ptr=dw
01FA20: 73 75 66 66 3B 0D 0A 20 20 20 20 77 68 69 6C 65 suff;.. while
01FA30: 28 28 74 62 75 66 5B 6A 2B 2B 5D 3D 2A 70 74 72 ((tbuf[j++]=*ptr
01FA40: 2B 2B 29 20 21 3D 20 31 29 20 3B 0D 0A 20 20 20 ++) != 1) ;..
01FA50: 20 7D 0D 0A 20 20 74 62 75 66 5B 6A 5D 3D 4E 55 }.. tbuf[j]=NU
01FA60: 4C 4C 3B 0D 0A 20 20 73 63 6F 70 79 28 74 62 75 LL;.. scopy(tbu
01FA70: 66 2C 20 30 2C 20 62 75 66 2C 20 30 29 3B 0D 0A f, 0, buf, 0);..
01FA80: 20 20 7D 0D 0A 0D 0A 2F 2A 0D 0A 2A 2A 20 73 75 }..../*..** su
01FA90: 70 65 72 73 75 62 20 2D 2D 20 70 72 6F 63 65 73 persub -- proces
01FAA0: 73 20 73 75 70 65 72 2D 20 26 20 73 75 62 2D 73 s super- & sub-s
01FAB0: 63 72 69 70 74 73 0D 0A 2A 2F 0D 0A 73 75 70 65 cripts..*/..supe
01FAC0: 72 73 75 62 28 62 75 66 2C 20 74 62 75 66 2C 20 rsub(buf, tbuf,
01FAD0: 73 69 7A 65 29 20 63 68 61 72 20 62 75 66 5B 5D size) char buf[]
01FAE0: 2C 20 74 62 75 66 5B 5D 3B 20 69 6E 74 20 73 69 , tbuf[]; int si
01FAF0: 7A 65 3B 20 7B 0D 0A 20 20 63 68 61 72 20 2A 70 ze; {.. char *p
01FB00: 72 65 66 2C 20 2A 73 75 66 66 2C 20 2A 70 74 72 ref, *suff, *ptr
01FB10: 3B 0D 0A 20 20 69 6E 74 20 69 2C 20 6A 3B 0D 0A ;.. int i, j;..
01FB20: 20 20 69 66 28 21 2A 62 75 66 29 20 72 65 74 75 if(!*buf) retu
01FB30: 72 6E 3B 0D 0A 20 20 69 20 3D 20 6A 20 3D 20 73 rn;.. i = j = s
01FB40: 75 66 66 20 3D 20 30 3B 0D 0A 20 20 77 68 69 6C uff = 0;.. whil
01FB50: 65 28 62 75 66 5B 69 5D 20 26 26 20 6A 20 3C 20 e(buf[i] && j <
01FB60: 28 73 69 7A 65 2D 33 29 29 20 7B 0D 0A 20 20 20 (size-3)) {..
01FB70: 20 69 66 28 69 73 73 70 61 63 65 28 62 75 66 5B if(isspace(buf[
01FB80: 69 5D 29 20 26 26 20 73 75 66 66 29 20 7B 0D 0A i]) && suff) {..
01FB90: 20 20 20 20 20 20 77 68 69 6C 65 28 28 74 62 75 while((tbu
01FBA0: 66 5B 6A 2B 2B 5D 20 3D 20 2A 73 75 66 66 2B 2B f[j++] = *suff++
01FBB0: 29 20 21 3D 20 31 29 20 3B 0D 0A 20 20 20 20 20 ) != 1) ;..
01FBC0: 20 73 75 66 66 20 3D 20 30 3B 0D 0A 20 20 20 20 suff = 0;..
01FBD0: 20 20 7D 0D 0A 20 20 20 20 69 66 28 62 75 66 5B }.. if(buf[
01FBE0: 69 5D 20 3D 3D 20 53 55 42 43 48 41 52 20 26 26 i] == SUBCHAR &&
01FBF0: 20 62 75 66 5B 69 2B 31 5D 20 3D 3D 20 53 55 42 buf[i+1] == SUB
01FC00: 69 6C 65 28 28 74 62 75 66 5B 6A 2B 2B 5D 3D 2A ile((tbuf[j++]=*
01FC10: 70 74 72 2B 2B 29 20 21 3D 20 31 29 20 3B 0D 0A ptr++) != 1) ;..
01FC20: 20 20 20 20 20 20 20 20 7D 0D 0A 20 20 20 20 20 }..
01FC30: 20 69 66 28 63 75 61 63 74 3E 30 20 26 26 20 66 if(cuact>0 && f
01FC40: 69 6C 6C 3D 3D 4E 4F 20 26 26 20 63 3D 3D 27 20 ill==NO && c=='
01FC50: 27 20 26 26 20 74 74 79 6D 6F 64 65 29 20 63 3D ' && ttymode) c=
01FC60: 27 5F 27 3B 0D 0A 20 20 20 20 20 20 7D 0D 0A 20 '_';.. }..
01FC70: 20 20 20 74 62 75 66 5B 6A 2B 2B 5D 3D 63 3B 0D tbuf[j++]=c;.
01FC80: 0A 20 20 20 20 7D 0D 0A 20 20 69 66 28 70 72 65 . }.. if(pre
01FC90: 66 69 78 65 64 3D 3D 59 45 53 29 20 7B 0D 0A 20 fixed==YES) {..
01FCA0: 20 20 20 70 74 72 3D 75 6C 73 75 66 66 3B 0D 0A ptr=ulsuff;..
01FCB0: 20 20 20 20 77 68 69 6C 65 28 28 74 62 75 66 5B while((tbuf[
01FCC0: 6A 2B 2B 5D 3D 2A 70 74 72 2B 2B 29 20 21 3D 20 j++]=*ptr++) !=
01FCD0: 31 29 20 3B 0D 0A 20 20 20 20 7D 0D 0A 20 20 74 1) ;.. }.. t
01FCE0: 62 75 66 5B 6A 5D 3D 4E 55 4C 4C 3B 0D 0A 20 20 buf[j]=NULL;..
01FCF0: 73 63 6F 70 79 28 74 62 75 66 2C 20 30 2C 20 62 scopy(tbuf, 0, b
01FD00: 75 66 2C 20 30 29 3B 0D 0A 20 20 7D 0D 0A 0D 0A uf, 0);.. }....
01FD10: 2F 2A 0D 0A 2A 2A 20 62 6F 6C 64 20 2D 2D 20 62 /*..** bold -- b
01FD20: 6F 6C 64 66 61 63 65 20 61 20 6C 69 6E 65 0D 0A oldface a line..
01FD30: 2A 2F 0D 0A 62 6F 6C 64 28 62 75 66 2C 20 74 62 */..bold(buf, tb
01FD40: 75 66 2C 20 73 69 7A 65 29 20 63 68 61 72 20 62 uf, size) char b
01FD50: 75 66 5B 5D 2C 20 74 62 75 66 5B 5D 3B 20 69 6E uf[], tbuf[]; in
01FD60: 74 20 73 69 7A 65 3B 20 7B 0D 0A 20 20 63 68 61 t size; {.. cha
01FD70: 72 20 2A 70 74 72 3B 0D 0A 20 20 69 6E 74 20 63 r *ptr;.. int c
01FD80: 2C 20 69 2C 20 6A 3B 0D 0A 20 20 69 66 28 2A 62 , i, j;.. if(*b
01FD90: 75 66 20 3D 3D 20 30 29 20 72 65 74 75 72 6E 3B uf == 0) return;
01FDA0: 0D 0A 20 20 69 3D 6A 3D 30 3B 0D 0A 20 20 69 66 .. i=j=0;.. if
01FDB0: 28 21 74 74 79 6D 6F 64 65 29 20 7B 0D 0A 20 20 (!ttymode) {..
01FDC0: 20 20 70 74 72 3D 62 66 70 72 65 66 3B 0D 0A 20 ptr=bfpref;..
01FDD0: 20 20 20 77 68 69 6C 65 28 28 74 62 75 66 5B 6A while((tbuf[j
01FDE0: 2B 2B 5D 3D 2A 70 74 72 2B 2B 29 20 21 3D 20 31 ++]=*ptr++) != 1
01FDF0: 29 20 3B 0D 0A 20 20 20 20 70 74 72 3D 64 73 70 ) ;.. ptr=dsp
01FE00: 43 48 41 52 29 20 7B 0D 0A 20 20 20 20 20 20 69 CHAR) {.. i
01FE10: 66 28 21 74 74 79 6D 6F 64 65 29 20 7B 0D 0A 20 f(!ttymode) {..
01FE20: 20 20 20 20 20 20 20 69 66 28 73 75 66 66 29 20 if(suff)
01FE30: 7B 70 74 72 20 3D 20 73 75 66 66 3B 20 20 20 73 {ptr = suff; s
01FE40: 75 66 66 20 3D 20 30 3B 7D 0D 0A 20 20 20 20 20 uff = 0;}..
01FE50: 20 20 20 65 6C 73 65 20 20 20 20 20 7B 70 74 72 else {ptr
01FE60: 20 3D 20 73 62 70 72 65 66 3B 20 73 75 66 66 20 = sbpref; suff
01FE70: 3D 20 73 62 73 75 66 66 3B 7D 0D 0A 20 20 20 20 = sbsuff;}..
01FE80: 20 20 20 20 77 68 69 6C 65 28 28 74 62 75 66 5B while((tbuf[
01FE90: 6A 2B 2B 5D 20 3D 20 2A 70 74 72 2B 2B 29 20 21 j++] = *ptr++) !
01FEA0: 3D 20 31 29 20 3B 0D 0A 20 20 20 20 20 20 20 20 = 1) ;..
01FEB0: 7D 0D 0A 20 20 20 20 20 20 69 20 2B 3D 20 32 3B }.. i += 2;
01FEC0: 0D 0A 20 20 20 20 20 20 7D 0D 0A 20 20 20 20 65 .. }.. e
01FED0: 6C 73 65 20 69 66 28 62 75 66 5B 69 5D 20 3D 3D lse if(buf[i] ==
01FEE0: 20 53 55 50 43 48 41 52 20 26 26 20 62 75 66 5B SUPCHAR && buf[
01FEF0: 69 2B 31 5D 20 3D 3D 20 53 55 50 43 48 41 52 29 i+1] == SUPCHAR)
01FF00: 20 7B 0D 0A 20 20 20 20 20 20 69 66 28 21 74 74 {.. if(!tt
01FF10: 79 6D 6F 64 65 29 20 7B 0D 0A 20 20 20 20 20 20 ymode) {..
01FF20: 20 20 69 66 28 73 75 66 66 29 20 7B 70 74 72 20 if(suff) {ptr
01FF30: 3D 20 73 75 66 66 3B 20 20 20 73 75 66 66 20 3D = suff; suff =
01FF40: 20 30 3B 7D 0D 0A 20 20 20 20 20 20 20 20 65 6C 0;}.. el
01FF50: 73 65 20 20 20 20 20 7B 70 74 72 20 3D 20 73 70 se {ptr = sp
01FF60: 70 72 65 66 3B 20 73 75 66 66 20 3D 20 73 70 73 pref; suff = sps
01FF70: 75 66 66 3B 7D 0D 0A 20 20 20 20 20 20 20 20 77 uff;}.. w
01FF80: 68 69 6C 65 28 28 74 62 75 66 5B 6A 2B 2B 5D 20 hile((tbuf[j++]
01FF90: 3D 20 2A 70 74 72 2B 2B 29 20 21 3D 20 31 29 20 = *ptr++) != 1)
01FFA0: 3B 0D 0A 20 20 20 20 20 20 20 20 7D 0D 0A 20 20 ;.. }..
01FFB0: 20 20 20 20 69 20 2B 3D 20 32 3B 0D 0A 20 20 20 i += 2;..
01FFC0: 20 20 20 7D 0D 0A 20 20 20 20 65 6C 73 65 20 74 }.. else t
01FFD0: 62 75 66 5B 6A 2B 2B 5D 20 3D 20 62 75 66 5B 69 buf[j++] = buf[i
01FFE0: 2B 2B 5D 3B 0D 0A 20 20 20 20 7D 0D 0A 20 20 69 ++];.. }.. i
01FFF0: 66 28 73 75 66 66 29 20 77 68 69 6C 65 28 28 74 f(suff) while((t
020000: 72 65 66 3B 0D 0A 20 20 20 20 77 68 69 6C 65 28 ref;.. while(
020010: 28 74 62 75 66 5B 6A 2B 2B 5D 3D 2A 70 74 72 2B (tbuf[j++]=*ptr+
020020: 2B 29 20 21 3D 20 31 29 20 3B 0D 0A 20 20 20 20 +) != 1) ;..
020030: 7D 0D 0A 20 20 77 68 69 6C 65 28 28 62 75 66 5B }.. while((buf[
020040: 69 5D 21 3D 4E 55 4C 4C 29 26 28 6A 3C 28 73 69 i]!=NULL)&(j<(si
020050: 7A 65 2D 32 29 29 29 20 7B 0D 0A 20 20 20 20 63 ze-2))) {.. c
020060: 3D 74 62 75 66 5B 6A 2B 2B 5D 3D 62 75 66 5B 69 =tbuf[j++]=buf[i
020070: 2B 2B 5D 26 32 35 35 3B 0D 0A 20 20 20 20 69 66 ++]&255;.. if
020080: 28 74 74 79 6D 6F 64 65 20 26 26 20 28 63 20 3E (ttymode && (c >
020090: 20 27 20 27 29 20 26 26 20 28 63 20 3C 20 31 32 ' ') && (c < 12
0200A0: 37 29 29 20 7B 0D 0A 20 20 20 20 20 20 69 6E 74 7)) {.. int
0200B0: 20 69 3B 0D 0A 20 20 20 20 20 20 69 20 3D 20 62 i;.. i = b
0200C0: 66 73 74 72 69 6B 65 73 3B 0D 0A 20 20 20 20 20 fstrikes;..
0200D0: 20 77 68 69 6C 65 20 28 2D 2D 69 29 20 7B 0D 0A while (--i) {..
0200E0: 20 20 20 20 20 20 20 20 74 62 75 66 5B 6A 2B 2B tbuf[j++
0200F0: 5D 3D 27 5C 62 27 3B 0D 0A 20 20 20 20 20 20 20 ]='\b';..
020100: 20 74 62 75 66 5B 6A 2B 2B 5D 3D 63 3B 0D 0A 20 tbuf[j++]=c;..
020110: 20 20 20 20 20 20 20 7D 0D 0A 20 20 20 20 20 20 }..
020120: 7D 0D 0A 20 20 20 20 7D 0D 0A 20 20 69 66 28 21 }.. }.. if(!
020130: 74 74 79 6D 6F 64 65 29 20 7B 0D 0A 20 20 20 20 ttymode) {..
020140: 70 74 72 3D 62 66 73 75 66 66 3B 0D 0A 20 20 20 ptr=bfsuff;..
020150: 20 77 68 69 6C 65 28 28 74 62 75 66 5B 6A 2B 2B while((tbuf[j++
020160: 5D 3D 2A 70 74 72 2B 2B 29 20 21 3D 20 31 29 20 ]=*ptr++) != 1)
020170: 3B 0D 0A 20 20 20 20 70 74 72 3D 64 73 73 75 66 ;.. ptr=dssuf
020180: 66 3B 0D 0A 20 20 20 20 77 68 69 6C 65 28 28 74 f;.. while((t
020190: 62 75 66 5B 6A 2B 2B 5D 3D 2A 70 74 72 2B 2B 29 buf[j++]=*ptr++)
0201A0: 20 21 3D 20 31 29 20 3B 0D 0A 20 20 20 20 7D 0D != 1) ;.. }.
0201B0: 0A 20 20 74 62 75 66 5B 6A 5D 3D 4E 55 4C 4C 3B . tbuf[j]=NULL;
0201C0: 0D 0A 20 20 73 63 6F 70 79 28 74 62 75 66 2C 20 .. scopy(tbuf,
0201D0: 30 2C 20 62 75 66 2C 20 30 29 3B 0D 0A 20 20 7D 0, buf, 0);.. }
0201E0: 0D 0A 0D 0A 2F 2A 0D 0A 2A 2A 20 69 74 61 6C 69 ..../*..** itali
0201F0: 63 20 2D 2D 20 69 74 61 6C 69 63 69 7A 65 20 61 c -- italicize a
020200: 54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 00 00 00 Track-Info......
020210: 1B 00 01 00 02 09 52 E5 1B 00 41 02 00 00 00 02 ......R...A.....
020220: 1B 00 46 02 00 00 00 02 1B 00 42 02 00 00 00 02 ..F.......B.....
020230: 1B 00 47 02 00 00 00 02 1B 00 43 02 00 00 00 02 ..G.......C.....
020240: 1B 00 48 02 00 00 00 02 1B 00 44 02 00 00 00 02 ..H.......D.....
020250: 1B 00 49 02 00 00 00 02 1B 00 45 02 00 00 00 02 ..I.......E.....
020260: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
020270: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
020280: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
020290: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0202A0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0202B0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0202C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0202D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0202E0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0202F0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
020300: 62 75 66 5B 6A 2B 2B 5D 20 3D 20 2A 73 75 66 66 buf[j++] = *suff
020310: 2B 2B 29 20 21 3D 20 31 29 20 3B 0D 0A 20 20 74 ++) != 1) ;.. t
020320: 62 75 66 5B 6A 5D 20 3D 20 4E 55 4C 4C 3B 0D 0A buf[j] = NULL;..
020330: 20 20 73 63 6F 70 79 28 74 62 75 66 2C 20 30 2C scopy(tbuf, 0,
020340: 20 62 75 66 2C 20 30 29 3B 0D 0A 20 20 7D 0D 0A buf, 0);.. }..
020350: 0D 0A 2F 2A 0D 0A 2A 2A 20 64 6F 61 72 67 73 20 ../*..** doargs
020360: 2D 2D 20 70 72 6F 63 65 73 73 20 63 6F 6D 6D 61 -- process comma
020370: 6E 64 20 6C 69 6E 65 20 61 72 67 75 6D 65 6E 74 nd line argument
020380: 73 0D 0A 2A 2F 0D 0A 64 6F 61 72 67 73 28 61 72 s..*/..doargs(ar
020390: 67 63 2C 20 61 72 67 76 29 20 69 6E 74 20 61 72 gc, argv) int ar
0203A0: 67 63 2C 20 2A 61 72 67 76 3B 20 7B 0D 0A 20 20 gc, *argv; {..
0203B0: 63 68 61 72 20 61 72 67 5B 4D 41 58 46 4E 5D 3B char arg[MAXFN];
0203C0: 0D 0A 20 20 69 6E 74 20 69 2C 20 65 72 72 3B 0D .. int i, err;.
0203D0: 0A 20 20 73 68 6F 77 3D 65 72 72 3D 74 74 79 6D . show=err=ttym
0203E0: 6F 64 65 3D 69 74 73 75 62 3D 75 6C 73 75 62 3D ode=itsub=ulsub=
0203F0: 4E 4F 3B 0D 0A 20 20 70 61 75 73 65 3D 72 65 61 NO;.. pause=rea
020400: 64 79 3D 59 45 53 3B 0D 0A 20 20 62 66 73 74 72 dy=YES;.. bfstr
020410: 69 6B 65 73 3D 33 3B 0D 0A 20 20 70 6F 73 70 65 ikes=3;.. pospe
020420: 63 3D 6D 72 67 66 64 3D 30 3B 0D 0A 20 20 6D 72 c=mrgfd=0;.. mr
020430: 67 62 75 66 5B 30 5D 3D 4E 55 4C 4C 3B 0D 0A 20 gbuf[0]=NULL;..
020440: 20 62 65 67 69 6E 3D 62 63 6F 70 79 3D 31 3B 0D begin=bcopy=1;.
020450: 0A 20 20 65 6E 64 3D 65 63 6F 70 79 3D 48 55 47 . end=ecopy=HUG
020460: 45 3B 0D 0A 20 20 69 3D 30 3B 0D 0A 20 20 77 68 E;.. i=0;.. wh
020470: 69 6C 65 28 67 65 74 61 72 67 28 2B 2B 69 2C 20 ile(getarg(++i,
020480: 61 72 67 2C 20 4D 41 58 46 4E 2C 20 61 72 67 63 arg, MAXFN, argc
020490: 2C 20 61 72 67 76 29 21 3D 45 4F 46 29 20 7B 0D , argv)!=EOF) {.
0204A0: 0A 20 20 20 20 69 66 28 61 72 67 5B 30 5D 3D 3D . if(arg[0]==
0204B0: 27 2D 27 29 20 7B 0D 0A 20 20 20 20 20 20 69 66 '-') {.. if
0204C0: 28 73 61 6D 65 28 61 72 67 5B 31 5D 2C 20 27 6E (same(arg[1], 'n
0204D0: 27 29 20 26 20 73 61 6D 65 28 61 72 67 5B 32 5D ') & same(arg[2]
0204E0: 2C 20 27 70 27 29 29 20 7B 0D 0A 20 20 20 20 20 , 'p')) {..
0204F0: 20 20 20 70 61 75 73 65 3D 4E 4F 3B 0D 0A 20 20 pause=NO;..
020500: 0A 20 20 20 20 20 20 69 66 28 28 6C 3D 75 74 6F . if((l=uto
020510: 69 28 74 74 6C 62 75 66 2B 6A 2C 20 26 6B 29 29 i(ttlbuf+j, &k))
020520: 20 3C 20 31 29 20 63 6F 6E 74 69 6E 75 65 3B 0D < 1) continue;.
020530: 0A 20 20 20 20 20 20 69 66 28 74 74 6C 62 75 66 . if(ttlbuf
020540: 5B 6A 2B 6C 5D 21 3D 6D 72 67 29 20 63 6F 6E 74 [j+l]!=mrg) cont
020550: 69 6E 75 65 3B 0D 0A 20 20 20 20 20 20 2D 2D 69 inue;.. --i
020560: 3B 0D 0A 20 20 20 20 20 20 6A 3D 6A 2B 6C 2B 31 ;.. j=j+l+1
020570: 3B 0D 0A 20 20 20 20 20 20 6D 3D 30 3B 0D 0A 20 ;.. m=0;..
020580: 20 20 20 20 20 77 68 69 6C 65 28 2D 2D 6B 29 20 while(--k)
020590: 7B 0D 0A 20 20 20 20 20 20 20 20 77 68 69 6C 65 {.. while
0205A0: 28 6D 72 67 62 75 66 5B 6D 5D 29 20 7B 0D 0A 20 (mrgbuf[m]) {..
0205B0: 20 20 20 20 20 20 20 20 20 69 66 28 6D 72 67 62 if(mrgb
0205C0: 75 66 5B 6D 2B 2B 5D 3D 3D 6D 72 67 29 20 62 72 uf[m++]==mrg) br
0205D0: 65 61 6B 3B 0D 0A 20 20 20 20 20 20 20 20 20 20 eak;..
0205E0: 7D 0D 0A 20 20 20 20 20 20 20 20 7D 0D 0A 20 20 }.. }..
0205F0: 20 20 20 20 77 68 69 6C 65 28 28 6D 72 67 62 75 while((mrgbu
020600: 66 5B 6D 5D 21 3D 4E 55 4C 4C 29 26 28 6D 72 67 f[m]!=NULL)&(mrg
020610: 62 75 66 5B 6D 5D 21 3D 6D 72 67 29 29 20 7B 0D buf[m]!=mrg)) {.
020620: 0A 20 20 20 20 20 20 20 20 69 6E 62 75 66 5B 69 . inbuf[i
020630: 2B 2B 5D 3D 6D 72 67 62 75 66 5B 6D 2B 2B 5D 3B ++]=mrgbuf[m++];
020640: 0D 0A 20 20 20 20 20 20 20 20 69 66 28 69 20 3E .. if(i >
020650: 3D 20 28 49 4E 53 49 5A 45 2D 31 29 29 20 62 72 = (INSIZE-1)) br
020660: 65 61 6B 3B 0D 0A 20 20 20 20 20 20 20 20 7D 0D eak;.. }.
020670: 0A 20 20 20 20 20 20 6D 65 72 67 65 64 3D 59 45 . merged=YE
020680: 53 3B 0D 0A 20 20 20 20 20 20 7D 0D 0A 20 20 20 S;.. }..
020690: 20 7D 0D 0A 20 20 69 66 28 6D 65 72 67 65 64 3D }.. if(merged=
0206A0: 3D 4E 4F 29 20 72 65 74 75 72 6E 20 59 45 53 3B =NO) return YES;
0206B0: 0D 0A 20 20 69 20 3D 20 2D 31 3B 0D 0A 20 20 77 .. i = -1;.. w
0206C0: 68 69 6C 65 28 69 6E 62 75 66 5B 2B 2B 69 5D 29 hile(inbuf[++i])
0206D0: 20 7B 0D 0A 20 20 20 20 69 66 28 28 69 6E 62 75 {.. if((inbu
0206E0: 66 5B 69 5D 21 3D 27 20 27 29 26 28 69 6E 62 75 f[i]!=' ')&(inbu
0206F0: 66 5B 69 5D 21 3D 27 5C 74 27 29 29 20 72 65 74 f[i]!='\t')) ret
020700: 20 20 20 20 20 20 63 6F 6E 74 69 6E 75 65 3B 0D continue;.
020710: 0A 20 20 20 20 20 20 20 20 7D 0D 0A 20 20 20 20 . }..
020720: 20 20 69 66 28 73 61 6D 65 28 61 72 67 5B 31 5D if(same(arg[1]
020730: 2C 20 27 6E 27 29 20 26 20 73 61 6D 65 28 61 72 , 'n') & same(ar
020740: 67 5B 32 5D 2C 20 27 72 27 29 29 20 7B 0D 0A 20 g[2], 'r')) {..
020750: 20 20 20 20 20 20 20 72 65 61 64 79 3D 4E 4F 3B ready=NO;
020760: 0D 0A 20 20 20 20 20 20 20 20 63 6F 6E 74 69 6E .. contin
020770: 75 65 3B 0D 0A 20 20 20 20 20 20 20 20 7D 0D 0A ue;.. }..
020780: 20 20 20 20 20 20 69 66 28 73 61 6D 65 28 61 72 if(same(ar
020790: 67 5B 31 5D 2C 20 27 73 27 29 20 26 20 61 72 67 g[1], 's') & arg
0207A0: 5B 32 5D 20 3D 3D 20 4E 55 4C 4C 29 20 7B 0D 0A [2] == NULL) {..
0207B0: 20 20 20 20 20 20 20 20 73 68 6F 77 20 3D 20 59 show = Y
0207C0: 45 53 3B 0D 0A 20 20 20 20 20 20 20 20 63 6F 6E ES;.. con
0207D0: 74 69 6E 75 65 3B 0D 0A 20 20 20 20 20 20 20 20 tinue;..
0207E0: 7D 0D 0A 20 20 20 20 20 20 69 66 28 73 61 6D 65 }.. if(same
0207F0: 28 61 72 67 5B 31 5D 2C 20 27 74 27 29 20 26 20 (arg[1], 't') &
020800: 61 72 67 5B 32 5D 3D 3D 4E 55 4C 4C 29 20 7B 20 arg[2]==NULL) {
020810: 2F 2A 2A 20 74 74 79 20 6D 6F 64 65 20 2A 2A 2F /** tty mode **/
020820: 0D 0A 20 20 20 20 20 20 20 20 74 74 79 6D 6F 64 .. ttymod
020830: 65 3D 59 45 53 3B 0D 0A 20 20 20 20 20 20 20 20 e=YES;..
020840: 63 6F 6E 74 69 6E 75 65 3B 0D 0A 20 20 20 20 20 continue;..
020850: 20 20 20 7D 0D 0A 20 20 20 20 20 20 69 66 28 73 }.. if(s
020860: 61 6D 65 28 61 72 67 5B 31 5D 2C 20 27 69 27 29 ame(arg[1], 'i')
020870: 20 26 20 61 72 67 5B 32 5D 20 3D 3D 20 4E 55 4C & arg[2] == NUL
020880: 4C 29 20 7B 0D 0A 20 20 20 20 20 20 20 20 2F 2A L) {.. /*
020890: 20 69 74 61 6C 69 63 73 20 72 65 70 6C 61 63 65 italics replace
0208A0: 20 75 6E 64 65 72 6C 69 6E 65 73 20 2A 2F 0D 0A underlines */..
0208B0: 20 20 20 20 20 20 20 20 69 74 73 75 62 3D 59 45 itsub=YE
0208C0: 53 3B 0D 0A 20 20 20 20 20 20 20 20 63 6F 6E 74 S;.. cont
0208D0: 69 6E 75 65 3B 0D 0A 20 20 20 20 20 20 20 20 7D inue;.. }
0208E0: 0D 0A 20 20 20 20 20 20 69 66 28 73 61 6D 65 28 .. if(same(
0208F0: 61 72 67 5B 31 5D 2C 20 27 75 27 29 20 26 20 61 arg[1], 'u') & a
020900: 75 72 6E 20 59 45 53 3B 0D 0A 20 20 20 20 7D 0D urn YES;.. }.
020910: 0A 20 20 72 65 74 75 72 6E 20 4E 4F 3B 0D 0A 20 . return NO;..
020920: 20 7D 0D 0A 1A 0D 0A 1A 1A 1A 1A 1A 1A 1A 1A 1A }..............
020930: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
020940: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
020950: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
020960: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
020970: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
020980: 20 20 20 20 20 77 68 69 6C 65 28 2D 2D 6B 29 20 while(--k)
020990: 7B 0D 0A 20 20 20 20 20 20 20 20 77 68 69 6C 65 {.. while
0209A0: 28 6D 72 67 62 75 66 5B 6D 5D 29 20 7B 0D 0A 20 (mrgbuf[m]) {..
0209B0: 20 20 20 20 20 20 20 20 20 69 66 28 6D 72 67 62 if(mrgb
0209C0: 75 66 5B 6D 2B 2B 5D 3D 3D 6D 72 67 29 20 62 72 uf[m++]==mrg) br
0209D0: 65 61 6B 3B 0D 0A 20 20 20 20 20 20 20 20 20 20 eak;..
0209E0: 7D 0D 0A 20 20 20 20 20 20 20 20 7D 0D 0A 20 20 }.. }..
0209F0: 20 20 20 20 77 68 69 6C 65 28 28 6D 72 67 62 75 while((mrgbu
020A00: 66 5B 6D 5D 21 3D 4E 55 4C 4C 29 26 28 6D 72 67 f[m]!=NULL)&(mrg
020A10: 62 75 66 5B 6D 5D 21 3D 6D 72 67 29 29 20 7B 0D buf[m]!=mrg)) {.
020A20: 0A 20 20 20 20 20 20 20 20 69 6E 62 75 66 5B 69 . inbuf[i
020A30: 2B 2B 5D 3D 6D 72 67 62 75 66 5B 6D 2B 2B 5D 3B ++]=mrgbuf[m++];
020A40: 0D 0A 20 20 20 20 20 20 20 20 69 66 28 69 20 3E .. if(i >
020A50: 3D 20 28 49 4E 53 49 5A 45 2D 31 29 29 20 62 72 = (INSIZE-1)) br
020A60: 65 61 6B 3B 0D 0A 20 20 20 20 20 20 20 20 7D 0D eak;.. }.
020A70: 0A 20 20 20 20 20 20 6D 65 72 67 65 64 3D 59 45 . merged=YE
020A80: 53 3B 0D 0A 20 20 20 20 20 20 7D 0D 0A 20 20 20 S;.. }..
020A90: 20 7D 0D 0A 20 20 69 66 28 6D 65 72 67 65 64 3D }.. if(merged=
020AA0: 3D 4E 4F 29 20 72 65 74 75 72 6E 20 59 45 53 3B =NO) return YES;
020AB0: 0D 0A 20 20 69 20 3D 20 2D 31 3B 0D 0A 20 20 77 .. i = -1;.. w
020AC0: 68 69 6C 65 28 69 6E 62 75 66 5B 2B 2B 69 5D 29 hile(inbuf[++i])
020AD0: 20 7B 0D 0A 20 20 20 20 69 66 28 28 69 6E 62 75 {.. if((inbu
020AE0: 66 5B 69 5D 21 3D 27 20 27 29 26 28 69 6E 62 75 f[i]!=' ')&(inbu
020AF0: 66 5B 69 5D 21 3D 27 5C 74 27 29 29 20 72 65 74 f[i]!='\t')) ret
020B00: 72 67 5B 32 5D 20 3D 3D 20 4E 55 4C 4C 29 20 7B rg[2] == NULL) {
020B10: 0D 0A 20 20 20 20 20 20 20 20 2F 2A 20 75 6E 64 .. /* und
020B20: 65 72 6C 69 6E 65 73 20 72 65 70 6C 61 63 65 20 erlines replace
020B30: 69 74 61 6C 69 63 73 20 2A 2F 0D 0A 20 20 20 20 italics */..
020B40: 20 20 20 20 75 6C 73 75 62 3D 59 45 53 3B 0D 0A ulsub=YES;..
020B50: 20 20 20 20 20 20 20 20 63 6F 6E 74 69 6E 75 65 continue
020B60: 3B 0D 0A 20 20 20 20 20 20 20 20 7D 0D 0A 20 20 ;.. }..
020B70: 20 20 20 20 69 66 28 73 61 6D 65 28 61 72 67 5B if(same(arg[
020B80: 31 5D 2C 20 27 62 27 29 29 20 7B 0D 0A 20 20 20 1], 'b')) {..
020B90: 20 20 20 20 20 69 66 28 73 61 6D 65 28 61 72 67 if(same(arg
020BA0: 5B 32 5D 2C 20 27 70 27 29 29 20 7B 20 20 2F 2A [2], 'p')) { /*
020BB0: 2A 20 62 65 67 69 6E 20 70 61 67 65 20 23 20 2A * begin page # *
020BC0: 2A 2F 0D 0A 20 20 20 20 20 20 20 20 20 20 69 66 */.. if
020BD0: 28 75 74 6F 69 28 61 72 67 2B 33 2C 20 26 62 65 (utoi(arg+3, &be
020BE0: 67 69 6E 29 20 3E 20 30 29 20 63 6F 6E 74 69 6E gin) > 0) contin
020BF0: 75 65 3B 0D 0A 20 20 20 20 20 20 20 20 20 20 7D ue;.. }
020C00: 0D 0A 20 20 20 20 20 20 20 20 65 6C 73 65 20 69 .. else i
020C10: 66 28 73 61 6D 65 28 61 72 67 5B 32 5D 2C 20 27 f(same(arg[2], '
020C20: 63 27 29 29 20 7B 20 20 2F 2A 2A 20 63 6F 70 79 c')) { /** copy
020C30: 20 23 20 2A 2A 2F 0D 0A 20 20 20 20 20 20 20 20 # **/..
020C40: 20 20 69 66 28 75 74 6F 69 28 61 72 67 2B 33 2C if(utoi(arg+3,
020C50: 20 26 62 63 6F 70 79 29 20 3E 20 30 29 20 63 6F &bcopy) > 0) co
020C60: 6E 74 69 6E 75 65 3B 0D 0A 20 20 20 20 20 20 20 ntinue;..
020C70: 20 20 20 7D 0D 0A 20 20 20 20 20 20 20 20 65 6C }.. el
020C80: 73 65 20 69 66 28 73 61 6D 65 28 61 72 67 5B 32 se if(same(arg[2
020C90: 5D 2C 20 27 73 27 29 29 20 7B 20 20 2F 2A 2A 20 ], 's')) { /**
020CA0: 62 6F 6C 64 66 61 63 65 20 73 74 72 69 6B 65 73 boldface strikes
020CB0: 20 2A 2A 2F 0D 0A 20 20 20 20 20 20 20 20 20 20 **/..
020CC0: 69 66 28 75 74 6F 69 28 61 72 67 2B 33 2C 20 26 if(utoi(arg+3, &
020CD0: 62 66 73 74 72 69 6B 65 73 29 20 3E 20 30 29 20 bfstrikes) > 0)
020CE0: 63 6F 6E 74 69 6E 75 65 3B 0D 0A 20 20 20 20 20 continue;..
020CF0: 20 20 20 20 20 7D 0D 0A 20 20 20 20 20 20 20 20 }..
020D00: 0D 0A 2F 2A 0D 0A 2A 2A 20 67 65 74 77 72 64 2E ../*..** getwrd.
020D10: 63 20 2D 2D 20 67 65 74 20 6E 6F 6E 2D 62 6C 61 c -- get non-bla
020D20: 6E 6B 20 77 6F 72 64 20 66 72 6F 6D 20 69 6E 5B nk word from in[
020D30: 69 5D 20 69 6E 74 6F 20 6F 75 74 2C 20 69 6E 63 i] into out, inc
020D40: 72 20 69 0D 0A 2A 2F 0D 0A 67 65 74 77 72 64 28 r i..*/..getwrd(
020D50: 69 6E 2C 20 69 2C 20 6F 75 74 29 20 63 68 61 72 in, i, out) char
020D60: 20 69 6E 5B 5D 2C 20 6F 75 74 5B 5D 3B 20 69 6E in[], out[]; in
020D70: 74 20 2A 69 3B 20 7B 0D 0A 20 20 63 68 61 72 20 t *i; {.. char
020D80: 63 3B 20 20 69 6E 74 20 6A 3B 0D 0A 20 20 77 68 c; int j;.. wh
020D90: 69 6C 65 28 69 73 73 70 61 63 65 28 69 6E 5B 2A ile(isspace(in[*
020DA0: 69 5D 29 29 20 2B 2B 2A 69 3B 0D 0A 20 20 6A 3D i])) ++*i;.. j=
020DB0: 30 3B 0D 0A 20 20 77 68 69 6C 65 28 63 3D 69 6E 0;.. while(c=in
020DC0: 5B 2A 69 5D 29 20 7B 0D 0A 20 20 20 20 69 66 28 [*i]) {.. if(
020DD0: 69 73 73 70 61 63 65 28 63 29 29 20 62 72 65 61 isspace(c)) brea
020DE0: 6B 3B 0D 0A 20 20 20 20 6F 75 74 5B 6A 2B 2B 5D k;.. out[j++]
020DF0: 3D 63 3B 0D 0A 20 20 20 20 2B 2B 2A 69 3B 0D 0A =c;.. ++*i;..
020E00: 20 20 20 20 7D 0D 0A 20 20 6F 75 74 5B 6A 5D 3D }.. out[j]=
020E10: 4E 55 4C 4C 3B 0D 0A 20 20 72 65 74 75 72 6E 20 NULL;.. return
020E20: 6A 3B 0D 0A 20 20 7D 0D 0A 1A 1A 1A 1A 1A 1A 1A j;.. }.........
020E30: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
020E40: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
020E50: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
020E60: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
020E70: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
020E80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
020E90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
020EA0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
020EB0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
020EC0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
020ED0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
020EE0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
020EF0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
020F00: 7D 0D 0A 20 20 20 20 20 20 69 66 28 73 61 6D 65 }.. if(same
020F10: 28 61 72 67 5B 31 5D 2C 20 27 65 27 29 29 20 7B (arg[1], 'e')) {
020F20: 20 20 20 2F 2A 2A 20 65 6E 64 20 20 2A 2A 2F 0D /** end **/.
020F30: 0A 20 20 20 20 20 20 20 20 69 66 28 73 61 6D 65 . if(same
020F40: 28 61 72 67 5B 32 5D 2C 20 27 70 27 29 29 20 7B (arg[2], 'p')) {
020F50: 20 20 2F 2A 2A 20 70 61 67 65 20 23 20 2A 2A 2F /** page # **/
020F60: 0D 0A 20 20 20 20 20 20 20 20 20 20 69 66 28 75 .. if(u
020F70: 74 6F 69 28 61 72 67 2B 33 2C 20 26 65 6E 64 29 toi(arg+3, &end)
020F80: 20 3E 20 30 29 20 63 6F 6E 74 69 6E 75 65 3B 0D > 0) continue;.
020F90: 0A 20 20 20 20 20 20 20 20 20 20 7D 0D 0A 20 20 . }..
020FA0: 20 20 20 20 20 20 65 6C 73 65 20 69 66 28 73 61 else if(sa
020FB0: 6D 65 28 61 72 67 5B 32 5D 2C 20 27 63 27 29 29 me(arg[2], 'c'))
020FC0: 20 7B 20 20 2F 2A 2A 20 63 6F 70 79 20 23 20 2A { /** copy # *
020FD0: 2A 2F 0D 0A 20 20 20 20 20 20 20 20 20 20 69 66 */.. if
020FE0: 28 75 74 6F 69 28 61 72 67 2B 33 2C 20 26 65 63 (utoi(arg+3, &ec
020FF0: 6F 70 79 29 20 3E 20 30 29 20 63 6F 6E 74 69 6E opy) > 0) contin
021000: 75 65 3B 0D 0A 20 20 20 20 20 20 20 20 20 20 7D ue;.. }
021010: 0D 0A 20 20 20 20 20 20 20 20 7D 0D 0A 20 20 20 .. }..
021020: 20 20 20 69 66 28 73 61 6D 65 28 61 72 67 5B 31 if(same(arg[1
021030: 5D 2C 20 27 70 27 29 20 26 20 73 61 6D 65 28 61 ], 'p') & same(a
021040: 72 67 5B 32 5D 2C 20 27 6F 27 29 29 20 7B 20 20 rg[2], 'o')) {
021050: 2F 2A 2A 20 70 61 67 65 20 6F 66 66 73 65 74 20 /** page offset
021060: 2A 2A 2F 0D 0A 20 20 20 20 20 20 20 20 69 66 28 **/.. if(
021070: 75 74 6F 69 28 61 72 67 2B 33 2C 20 26 70 6F 73 utoi(arg+3, &pos
021080: 70 65 63 29 20 3E 20 30 29 20 63 6F 6E 74 69 6E pec) > 0) contin
021090: 75 65 3B 0D 0A 20 20 20 20 20 20 20 20 7D 0D 0A ue;.. }..
0210A0: 20 20 20 20 20 20 65 72 72 3D 59 45 53 3B 0D 0A err=YES;..
0210B0: 20 20 20 20 20 20 7D 0D 0A 20 20 20 20 65 6C 73 }.. els
0210C0: 65 20 20 7B 0D 0A 20 20 20 20 20 20 69 66 28 28 e {.. if((
0210D0: 6D 72 67 66 64 3D 66 6F 70 65 6E 28 61 72 67 2C mrgfd=fopen(arg,
0210E0: 20 22 72 22 29 29 3D 3D 4E 55 4C 4C 29 20 63 61 "r"))==NULL) ca
0210F0: 6E 74 28 61 72 67 29 3B 0D 0A 20 20 20 20 20 20 nt(arg);..
021100: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
021110: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
021120: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
021130: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
021140: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
021150: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
021160: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
021170: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
021180: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
021190: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0211A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0211B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0211C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0211D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0211E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0211F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
021200: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
021210: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
021220: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
021230: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
021240: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
021250: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
021260: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
021270: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
021280: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
021290: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0212A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0212B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0212C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0212D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0212E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0212F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
021300: 63 6F 6E 74 69 6E 75 65 3B 0D 0A 20 20 20 20 20 continue;..
021310: 20 7D 0D 0A 20 20 20 20 65 72 72 3D 59 45 53 3B }.. err=YES;
021320: 0D 0A 20 20 20 20 7D 0D 0A 20 20 69 66 28 65 72 .. }.. if(er
021330: 72 3D 3D 59 45 53 29 20 7B 0D 0A 20 20 20 20 66 r==YES) {.. f
021340: 70 75 74 73 28 22 75 73 61 67 65 3A 20 46 4D 54 puts("usage: FMT
021350: 20 5B 6D 65 72 67 65 66 69 6C 65 5D 20 5B 2D 42 [mergefile] [-B
021360: 43 23 5D 20 5B 2D 45 43 23 5D 5C 6E 22 2C 73 74 C#] [-EC#]\n",st
021370: 64 65 72 72 29 3B 0D 0A 20 20 20 20 66 70 75 74 derr);.. fput
021380: 73 28 22 20 20 20 20 5B 2D 42 50 23 5D 20 5B 2D s(" [-BP#] [-
021390: 45 50 23 5D 20 5B 2D 50 4F 23 5D 20 5B 2D 4E 50 EP#] [-PO#] [-NP
0213A0: 5D 20 5B 2D 4E 52 5D 5C 6E 22 2C 73 74 64 65 72 ] [-NR]\n",stder
0213B0: 72 29 3B 0D 0A 20 20 20 20 66 70 75 74 73 28 22 r);.. fputs("
0213C0: 20 20 20 20 5B 2D 54 5D 20 5B 2D 49 5D 20 5B 2D [-T] [-I] [-
0213D0: 55 5D 20 5B 2D 53 5D 20 5B 2D 42 53 23 5D 5C 6E U] [-S] [-BS#]\n
0213E0: 22 2C 73 74 64 65 72 72 29 3B 0D 0A 20 20 20 20 ",stderr);..
0213F0: 61 62 6F 72 74 28 37 29 3B 0D 0A 20 20 20 20 7D abort(7);.. }
021400: 0D 0A 20 20 7D 0D 0A 0D 0A 2F 2A 0D 0A 2A 2A 20 .. }..../*..**
021410: 6D 65 72 67 65 20 2D 2D 20 6D 65 72 67 65 20 66 merge -- merge f
021420: 69 65 6C 64 73 20 66 72 6F 6D 20 6D 72 67 62 75 ields from mrgbu
021430: 66 20 69 6E 74 6F 20 69 6E 62 75 66 0D 0A 2A 2F f into inbuf..*/
021440: 0D 0A 6D 65 72 67 65 28 29 20 7B 0D 0A 20 20 69 ..merge() {.. i
021450: 6E 74 20 69 2C 20 6A 2C 20 6B 2C 20 6C 2C 20 6D nt i, j, k, l, m
021460: 2C 20 6D 65 72 67 65 64 3B 0D 0A 20 20 69 66 28 , merged;.. if(
021470: 6D 72 67 62 75 66 5B 30 5D 3D 3D 4E 55 4C 4C 29 mrgbuf[0]==NULL)
021480: 20 72 65 74 75 72 6E 20 59 45 53 3B 0D 0A 20 20 return YES;..
021490: 73 63 6F 70 79 28 69 6E 62 75 66 2C 20 30 2C 20 scopy(inbuf, 0,
0214A0: 74 74 6C 62 75 66 2C 20 30 29 3B 0D 0A 20 20 6D ttlbuf, 0);.. m
0214B0: 65 72 67 65 64 3D 4E 4F 3B 0D 0A 20 20 69 3D 6A erged=NO;.. i=j
0214C0: 3D 30 3B 0D 0A 20 20 77 68 69 6C 65 28 69 6E 62 =0;.. while(inb
0214D0: 75 66 5B 69 5D 3D 74 74 6C 62 75 66 5B 6A 2B 2B uf[i]=ttlbuf[j++
0214E0: 5D 29 20 7B 0D 0A 20 20 20 20 69 66 28 69 6E 62 ]) {.. if(inb
0214F0: 75 66 5B 69 2B 2B 5D 3D 3D 6D 72 67 29 20 7B 0D uf[i++]==mrg) {.
021500: 54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 00 00 00 Track-Info......
021510: 1C 00 01 00 02 09 52 E5 1C 00 41 02 00 00 00 02 ......R...A.....
021520: 1C 00 46 02 00 00 00 02 1C 00 42 02 00 00 00 02 ..F.......B.....
021530: 1C 00 47 02 00 00 00 02 1C 00 43 02 00 00 00 02 ..G.......C.....
021540: 1C 00 48 02 00 00 00 02 1C 00 44 02 00 00 00 02 ..H.......D.....
021550: 1C 00 49 02 00 00 00 02 1C 00 45 02 00 00 00 02 ..I.......E.....
021560: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
021570: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
021580: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
021590: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0215A0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0215B0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0215C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0215D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0215E0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0215F0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
021600: 0D 0A 2F 2A 0D 0A 2A 2A 20 69 6E 64 65 78 2E 63 ../*..** index.c
021610: 20 2D 2D 20 66 69 6E 64 20 63 68 61 72 61 63 74 -- find charact
021620: 65 72 20 63 20 69 6E 20 73 74 72 69 6E 67 20 73 er c in string s
021630: 74 72 0D 0A 2A 2F 0D 0A 69 6E 64 65 78 28 73 74 tr..*/..index(st
021640: 72 2C 20 63 29 20 63 68 61 72 20 73 74 72 5B 5D r, c) char str[]
021650: 2C 20 63 3B 20 7B 0D 0A 20 20 69 6E 74 20 69 3B , c; {.. int i;
021660: 0D 0A 20 20 69 3D 2D 31 3B 0D 0A 20 20 77 68 69 .. i=-1;.. whi
021670: 6C 65 28 73 74 72 5B 2B 2B 69 5D 21 3D 4E 55 4C le(str[++i]!=NUL
021680: 4C 29 20 69 66 28 73 74 72 5B 69 5D 3D 3D 63 29 L) if(str[i]==c)
021690: 20 72 65 74 75 72 6E 20 69 3B 0D 0A 20 20 72 65 return i;.. re
0216A0: 74 75 72 6E 20 2D 31 3B 0D 0A 20 20 7D 0D 0A 1A turn -1;.. }...
0216B0: 0A 1A 0A 1A 1A 0D 0A 1A 0D 0A 1A 0B 30 7C B5 CA ............0|..
0216C0: D1 39 21 00 00 39 E5 21 30 00 D1 CD D0 2F C3 DD .9!..9.!0..../..
0216D0: 39 21 00 00 39 E5 21 37 00 D1 CD D0 2F 21 08 00 9!..9.!7..../!..
0216E0: 39 CD C8 2F E5 21 08 00 39 E5 CD C8 2F 2B D1 CD 9../.!..9.../+..
0216F0: D0 2F D1 19 E5 21 04 00 39 CD C8 2F E5 21 04 00 ./...!..9../.!..
021700: AA CD C8 2F D1 19 D1 CD CD 2F 21 0A 00 39 CD C8 .../...../!..9..
021710: 2F E5 21 00 00 D1 CD EB 2F 7C B5 CA 21 3A C3 24 /.!...../|..!:.$
021720: 3A C3 67 39 21 06 00 39 CD C8 2F 7C B5 CA 52 3A :.g9!..9../|..R:
021730: 21 08 00 39 CD C8 2F E5 21 08 00 39 E5 CD C8 2F !..9../.!..9.../
021740: 2B D1 CD D0 2F D1 19 E5 21 20 00 D1 CD CD 2F C3 +.../...! ..../.
021750: 24 3A C1 C1 C9 C5 C5 C5 C5 C5 C5 C5 C5 3B 3B EB $:...........;;.
021760: 21 F9 1A 39 F9 EB C5 3B 21 03 00 39 E5 21 06 00 !..9...;!..9.!..
021770: D1 19 E5 21 00 00 D1 CD CD 2F 21 1E 00 39 E5 21 ...!...../!..9.!
021780: 20 00 39 E5 21 02 00 E5 21 24 00 39 CD C8 2F D1 .9.!...!$.9../.
021790: CD 6F 30 D1 19 D1 CD D0 2F 21 0E 00 39 E5 21 20 .o0...../!..9.!
0217A0: 00 39 CD C8 2F E5 21 02 00 D1 19 CD C8 2F D1 CD .9../.!....../..
0217B0: D0 2F 21 0E 00 39 CD C8 2F CD C2 2F E5 21 3F 00 ./!..9../../.!?.
0217C0: D1 CD EB 2F 7C B5 CA E5 3A 21 10 00 39 E5 21 02 .../|...:!..9.!.
0217D0: 00 D1 CD D0 2F 21 0E 00 39 E5 CD C8 2F 23 D1 CD ..../!..9.../#..
0217E0: D0 2F C3 F1 3A 21 10 00 39 E5 21 01 00 D1 CD D0 ./..:!..9.!.....
0217F0: 2F 21 0B 00 39 E5 21 10 00 39 E5 CD C8 2F 23 D1 /!..9.!..9.../#.
021800: 74 69 6E 75 65 3B 0D 0A 20 20 20 20 20 20 7D 0D tinue;.. }.
021810: 0A 20 20 20 20 69 66 28 73 61 6D 65 28 61 72 67 . if(same(arg
021820: 5B 31 5D 2C 20 27 6E 27 29 29 20 7B 0D 0A 20 20 [1], 'n')) {..
021830: 20 20 20 20 69 66 28 61 72 67 5B 33 5D 20 3C 3D if(arg[3] <=
021840: 20 27 20 27 29 20 7B 0D 0A 20 20 20 20 20 20 20 ' ') {..
021850: 20 69 66 28 73 61 6D 65 28 61 72 67 5B 32 5D 2C if(same(arg[2],
021860: 20 27 62 27 29 29 20 7B 0D 0A 20 20 20 20 20 20 'b')) {..
021870: 20 20 20 20 62 6C 61 6E 6B 73 3D 4E 4F 3B 0D 0A blanks=NO;..
021880: 20 20 20 20 20 20 20 20 20 20 63 6F 6E 74 69 6E contin
021890: 75 65 3B 0D 0A 20 20 20 20 20 20 20 20 20 20 7D ue;.. }
0218A0: 0D 0A 20 20 20 20 20 20 20 20 69 66 28 73 61 6D .. if(sam
0218B0: 65 28 61 72 67 5B 32 5D 2C 20 27 70 27 29 29 20 e(arg[2], 'p'))
0218C0: 7B 0D 0A 20 20 20 20 20 20 20 20 20 20 70 61 75 {.. pau
0218D0: 73 65 3D 4E 4F 3B 0D 0A 20 20 20 20 20 20 20 20 se=NO;..
0218E0: 20 20 63 6F 6E 74 69 6E 75 65 3B 0D 0A 20 20 20 continue;..
0218F0: 20 20 20 20 20 20 20 7D 0D 0A 20 20 20 20 20 20 }..
021900: 20 20 69 66 28 73 61 6D 65 28 61 72 67 5B 32 5D if(same(arg[2]
021910: 2C 20 27 6E 27 29 29 20 7B 0D 0A 20 20 20 20 20 , 'n')) {..
021920: 20 20 20 20 20 6E 75 6D 62 65 72 73 3D 30 3B 0D numbers=0;.
021930: 0A 20 20 20 20 20 20 20 20 20 20 63 6F 6E 74 69 . conti
021940: 6E 75 65 3B 0D 0A 20 20 20 20 20 20 20 20 20 20 nue;..
021950: 7D 0D 0A 20 20 20 20 20 20 20 20 65 72 72 3D 59 }.. err=Y
021960: 45 53 3B 0D 0A 20 20 20 20 20 20 20 20 7D 0D 0A ES;.. }..
021970: 20 20 20 20 20 20 7D 0D 0A 20 20 20 20 69 66 28 }.. if(
021980: 73 61 6D 65 28 61 72 67 5B 31 5D 2C 20 27 70 27 same(arg[1], 'p'
021990: 29 29 20 7B 0D 0A 20 20 20 20 20 20 69 66 28 28 )) {.. if((
0219A0: 6A 3D 75 74 6F 69 28 61 72 67 2B 33 2C 20 26 6B j=utoi(arg+3, &k
0219B0: 29 29 20 3E 20 30 29 20 7B 0D 0A 20 20 20 20 20 )) > 0) {..
0219C0: 20 20 20 69 66 28 28 6B 20 3E 20 30 29 26 28 61 if((k > 0)&(a
0219D0: 72 67 5B 6A 2B 33 5D 20 3C 3D 20 27 20 27 29 29 rg[j+3] <= ' '))
0219E0: 20 7B 0D 0A 20 20 20 20 20 20 20 20 20 20 69 66 {.. if
0219F0: 28 73 61 6D 65 28 61 72 67 5B 32 5D 2C 20 27 6C (same(arg[2], 'l
021A00: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
021A10: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
021A20: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
021A30: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
021A40: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
021A50: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
021A60: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
021A70: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
021A80: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
021A90: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
021AA0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
021AB0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
021AC0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
021AD0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
021AE0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
021AF0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
021B00: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
021B10: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
021B20: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
021B30: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
021B40: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
021B50: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
021B60: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
021B70: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
021B80: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
021B90: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
021BA0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
021BB0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
021BC0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
021BD0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
021BE0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
021BF0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
021C00: 27 29 29 20 7B 0D 0A 20 20 20 20 20 20 20 20 20 ')) {..
021C10: 20 20 20 70 6C 65 6E 67 74 68 3D 6B 3B 0D 0A 20 plength=k;..
021C20: 20 20 20 20 20 20 20 20 20 20 20 63 6F 6E 74 69 conti
021C30: 6E 75 65 3B 0D 0A 20 20 20 20 20 20 20 20 20 20 nue;..
021C40: 20 20 7D 0D 0A 20 20 20 20 20 20 20 20 20 20 69 }.. i
021C50: 66 28 73 61 6D 65 28 61 72 67 5B 32 5D 2C 20 27 f(same(arg[2], '
021C60: 77 27 29 29 20 7B 0D 0A 20 20 20 20 20 20 20 20 w')) {..
021C70: 20 20 20 20 70 77 69 64 74 68 3D 6B 3B 0D 0A 20 pwidth=k;..
021C80: 20 20 20 20 20 20 20 20 20 20 20 63 6F 6E 74 69 conti
021C90: 6E 75 65 3B 0D 0A 20 20 20 20 20 20 20 20 20 20 nue;..
021CA0: 20 20 7D 0D 0A 20 20 20 20 20 20 20 20 20 20 7D }.. }
021CB0: 0D 0A 20 20 20 20 20 20 20 20 7D 0D 0A 20 20 20 .. }..
021CC0: 20 20 20 7D 0D 0A 20 20 20 20 65 72 72 3D 59 45 }.. err=YE
021CD0: 53 3B 0D 0A 20 20 20 20 7D 0D 0A 20 20 69 66 28 S;.. }.. if(
021CE0: 65 72 72 29 20 7B 0D 0A 20 20 20 20 66 70 75 74 err) {.. fput
021CF0: 73 28 22 75 73 61 67 65 3A 20 4C 53 54 20 5B 66 s("usage: LST [f
021D00: 69 6C 65 5D 20 5B 2D 43 23 5D 20 5B 2D 50 57 23 ile] [-C#] [-PW#
021D10: 5D 20 5B 2D 50 4C 23 5D 20 5B 2D 4E 42 5D 20 5B ] [-PL#] [-NB] [
021D20: 2D 4E 4E 5D 20 5B 2D 4E 50 5D 5C 6E 22 2C 0D 0A -NN] [-NP]\n",..
021D30: 20 20 20 20 20 20 20 20 20 20 73 74 64 65 72 72 stderr
021D40: 29 3B 0D 0A 20 20 20 20 61 62 6F 72 74 28 37 29 );.. abort(7)
021D50: 3B 0D 0A 20 20 20 20 7D 0D 0A 20 20 7D 0D 0A 63 ;.. }.. }..c
021D60: 6F 6C 75 6D 6E 28 69 6E 2C 20 6F 75 74 2C 20 63 olumn(in, out, c
021D70: 77 69 64 74 68 2C 20 63 6F 6C 73 2C 20 70 6C 65 width, cols, ple
021D80: 6E 67 74 68 2C 20 6E 75 6D 62 65 72 29 0D 0A 20 ngth, number)..
021D90: 20 20 69 6E 74 20 69 6E 2C 20 6F 75 74 2C 20 63 int in, out, c
021DA0: 77 69 64 74 68 2C 20 63 6F 6C 73 2C 20 70 6C 65 width, cols, ple
021DB0: 6E 67 74 68 2C 20 2A 6E 75 6D 62 65 72 3B 20 7B ngth, *number; {
021DC0: 0D 0A 20 20 20 69 6E 74 20 65 6F 66 2C 20 6C 69 .. int eof, li
021DD0: 6E 65 73 2C 20 63 6F 6C 63 6E 74 2C 20 6C 77 69 nes, colcnt, lwi
021DE0: 64 74 68 2C 20 69 2C 20 62 75 66 73 7A 2C 20 6C dth, i, bufsz, l
021DF0: 69 6E 65 63 6E 74 3B 0D 0A 20 20 63 68 61 72 20 inecnt;.. char
021E00: 2F 2A 0D 0A 2A 2A 20 6C 73 74 2E 63 20 2D 2D 20 /*..** lst.c --
021E10: 6C 69 73 74 20 74 65 78 74 20 69 6E 20 63 6F 6C list text in col
021E20: 75 6D 6E 73 20 6F 6E 20 70 61 67 65 73 0D 0A 2A umns on pages..*
021E30: 2A 0D 0A 2A 2A 20 43 6F 70 79 72 69 67 68 74 20 *..** Copyright
021E40: 31 39 38 32 20 4A 2E 20 45 2E 20 48 65 6E 64 72 1982 J. E. Hendr
021E50: 69 78 2E 20 20 41 6C 6C 20 72 69 67 68 74 73 20 ix. All rights
021E60: 72 65 73 65 72 76 65 64 2E 0D 0A 2A 2F 0D 0A 23 reserved...*/..#
021E70: 69 6E 63 6C 75 64 65 20 3C 73 74 64 69 6F 2E 68 include <stdio.h
021E80: 3E 0D 0A 23 69 6E 63 6C 75 64 65 20 22 74 6F 6F >..#include "too
021E90: 6C 73 2E 68 22 0D 0A 23 64 65 66 69 6E 65 20 4E ls.h"..#define N
021EA0: 4F 43 43 41 52 47 43 0D 0A 69 6E 74 0D 0A 20 20 OCCARGC..int..
021EB0: 66 64 2C 20 20 20 20 20 2F 2A 20 66 69 6C 65 20 fd, /* file
021EC0: 64 65 73 63 72 69 70 74 6F 72 20 66 6F 72 20 69 descriptor for i
021ED0: 6E 70 75 74 20 2A 2F 0D 0A 20 20 65 6F 66 2C 20 nput */.. eof,
021EE0: 20 20 20 2F 2A 20 65 6E 64 20 6F 66 20 66 69 6C /* end of fil
021EF0: 65 20 69 66 20 59 45 53 20 2A 2F 0D 0A 20 20 63 e if YES */.. c
021F00: 6F 6C 73 2C 20 20 20 2F 2A 20 6E 75 6D 62 65 72 ols, /* number
021F10: 20 6F 66 20 63 6F 6C 73 20 2A 2F 0D 0A 20 20 63 of cols */.. c
021F20: 77 69 64 74 68 2C 20 2F 2A 20 63 6F 6C 20 77 69 width, /* col wi
021F30: 64 74 68 20 2A 2F 0D 0A 20 20 70 77 69 64 74 68 dth */.. pwidth
021F40: 2C 20 2F 2A 20 70 61 67 65 20 77 69 64 74 68 20 , /* page width
021F50: 2A 2F 0D 0A 20 20 70 6C 65 6E 67 74 68 2C 2F 2A */.. plength,/*
021F60: 20 70 61 67 65 20 6C 65 6E 67 74 68 20 2A 2F 0D page length */.
021F70: 0A 20 20 62 6C 61 6E 6B 73 2C 20 2F 2A 20 62 6C . blanks, /* bl
021F80: 61 6E 6B 20 6C 69 6E 65 73 20 70 72 6F 63 65 73 ank lines proces
021F90: 73 65 64 20 69 66 20 59 45 53 20 2A 2F 0D 0A 20 sed if YES */..
021FA0: 20 6E 75 6D 62 65 72 73 2C 2F 2A 20 6E 75 6D 62 numbers,/* numb
021FB0: 65 72 20 6C 69 6E 65 73 20 69 66 20 3E 20 30 20 er lines if > 0
021FC0: 2A 2F 0D 0A 20 20 70 61 75 73 65 3B 20 20 2F 2A */.. pause; /*
021FD0: 20 70 61 75 73 65 20 62 65 66 6F 72 65 20 65 61 pause before ea
021FE0: 63 68 20 70 61 67 65 20 69 66 20 59 45 53 20 2A ch page if YES *
021FF0: 2F 0D 0A 6D 61 69 6E 28 61 72 67 63 2C 20 61 72 /..main(argc, ar
022000: 2A 70 74 72 2C 20 2A 73 74 6F 70 2C 20 2A 65 70 *ptr, *stop, *ep
022010: 74 72 2C 20 2A 6E 65 78 74 65 70 74 72 2C 20 2A tr, *nexteptr, *
022020: 62 75 66 2C 20 2A 62 65 6E 64 3B 0D 0A 20 20 62 buf, *bend;.. b
022030: 75 66 73 7A 3D 63 6F 6C 73 2A 28 63 77 69 64 74 ufsz=cols*(cwidt
022040: 68 2B 31 29 2A 70 6C 65 6E 67 74 68 3B 0D 0A 20 h+1)*plength;..
022050: 20 70 74 72 3D 62 75 66 3D 6D 61 6C 6C 6F 63 28 ptr=buf=malloc(
022060: 62 75 66 73 7A 29 3B 0D 0A 20 20 62 65 6E 64 3D bufsz);.. bend=
022070: 62 75 66 2B 62 75 66 73 7A 3B 0D 0A 20 20 65 6F buf+bufsz;.. eo
022080: 66 3D 4E 4F 3B 0D 0A 20 20 77 68 69 6C 65 28 70 f=NO;.. while(p
022090: 74 72 20 3C 20 62 65 6E 64 29 20 7B 0D 0A 20 20 tr < bend) {..
0220A0: 20 20 70 6F 6C 6C 28 59 45 53 29 3B 0D 0A 20 20 poll(YES);..
0220B0: 20 20 69 66 28 2A 6E 75 6D 62 65 72 29 20 7B 0D if(*number) {.
0220C0: 0A 20 20 20 20 20 20 69 3D 34 3B 0D 0A 20 20 20 . i=4;..
0220D0: 20 20 20 69 74 6F 75 28 2A 6E 75 6D 62 65 72 2C itou(*number,
0220E0: 20 70 74 72 2C 20 2D 69 29 3B 0D 0A 20 20 20 20 ptr, -i);..
0220F0: 20 20 70 74 72 5B 69 2B 2B 5D 3D 27 20 27 3B 0D ptr[i++]=' ';.
022100: 0A 20 20 20 20 20 20 7D 0D 0A 20 20 20 20 65 6C . }.. el
022110: 73 65 20 69 3D 30 3B 0D 0A 20 20 20 20 69 66 28 se i=0;.. if(
022120: 66 67 65 74 73 28 70 74 72 2B 69 2C 20 63 77 69 fgets(ptr+i, cwi
022130: 64 74 68 2B 31 2D 69 2C 20 69 6E 29 3D 3D 4E 55 dth+1-i, in)==NU
022140: 4C 4C 29 20 7B 0D 0A 20 20 20 20 20 20 65 6F 66 LL) {.. eof
022150: 3D 59 45 53 3B 0D 0A 20 20 20 20 20 20 62 72 65 =YES;.. bre
022160: 61 6B 3B 0D 0A 20 20 20 20 20 20 7D 0D 0A 20 20 ak;.. }..
022170: 20 20 74 72 69 6D 28 70 74 72 2B 69 29 3B 0D 0A trim(ptr+i);..
022180: 20 20 20 20 69 66 28 28 62 6C 61 6E 6B 73 3D 3D if((blanks==
022190: 4E 4F 29 20 26 26 20 28 70 74 72 5B 69 5D 3D 3D NO) && (ptr[i]==
0221A0: 4E 55 4C 4C 29 29 20 63 6F 6E 74 69 6E 75 65 3B NULL)) continue;
0221B0: 0D 0A 20 20 20 20 69 66 28 2A 6E 75 6D 62 65 72 .. if(*number
0221C0: 29 20 2B 2B 28 2A 6E 75 6D 62 65 72 29 3B 0D 0A ) ++(*number);..
0221D0: 20 20 20 20 70 74 72 3D 70 74 72 2B 63 77 69 64 ptr=ptr+cwid
0221E0: 74 68 2B 31 3B 0D 0A 20 20 20 20 7D 0D 0A 20 20 th+1;.. }..
0221F0: 73 74 6F 70 3D 70 74 72 3B 0D 0A 20 20 70 74 72 stop=ptr;.. ptr
022200: 67 76 29 20 69 6E 74 20 61 72 67 63 2C 20 2A 61 gv) int argc, *a
022210: 72 67 76 3B 20 7B 0D 0A 20 20 69 66 28 21 69 73 rgv; {.. if(!is
022220: 61 74 74 79 28 73 74 64 6F 75 74 29 29 20 7B 20 atty(stdout)) {
022230: 20 20 20 20 20 20 20 2F 2A 20 73 65 74 20 64 65 /* set de
022240: 66 61 75 6C 74 20 64 69 6D 65 6E 73 69 6F 6E 73 fault dimensions
022250: 20 2A 2F 0D 0A 20 20 20 20 70 61 75 73 65 3D 4E */.. pause=N
022260: 4F 3B 0D 0A 20 20 20 20 70 77 69 64 74 68 3D 50 O;.. pwidth=P
022270: 54 52 57 49 44 45 2D 31 3B 0D 0A 20 20 20 20 70 TRWIDE-1;.. p
022280: 6C 65 6E 67 74 68 3D 50 54 52 48 49 47 48 2D 50 length=PTRHIGH-P
022290: 54 52 53 4B 49 50 2D 50 54 52 48 44 52 3B 20 20 TRSKIP-PTRHDR;
0222A0: 2F 2A 20 70 61 67 65 20 62 6F 64 79 20 68 65 69 /* page body hei
0222B0: 67 68 74 20 2A 2F 0D 0A 20 20 20 20 7D 0D 0A 20 ght */.. }..
0222C0: 20 65 6C 73 65 20 7B 0D 0A 20 20 20 20 70 61 75 else {.. pau
0222D0: 73 65 3D 59 45 53 3B 0D 0A 20 20 20 20 70 77 69 se=YES;.. pwi
0222E0: 64 74 68 3D 43 52 54 57 49 44 45 2D 31 3B 0D 0A dth=CRTWIDE-1;..
0222F0: 20 20 20 20 70 6C 65 6E 67 74 68 3D 43 52 54 48 plength=CRTH
022300: 49 47 48 2D 31 3B 20 20 20 20 20 20 20 20 20 20 IGH-1;
022310: 20 20 20 20 20 2F 2A 20 61 6C 6C 6F 77 20 66 6F /* allow fo
022320: 72 20 70 72 6F 6D 70 74 73 20 2A 2F 0D 0A 20 20 r prompts */..
022330: 20 20 7D 0D 0A 20 20 62 6C 61 6E 6B 73 3D 59 45 }.. blanks=YE
022340: 53 3B 0D 0A 20 20 65 6F 66 3D 4E 4F 3B 0D 0A 20 S;.. eof=NO;..
022350: 20 63 6F 6C 73 3D 31 3B 0D 0A 20 20 6E 75 6D 62 cols=1;.. numb
022360: 65 72 73 3D 31 3B 0D 0A 20 20 66 64 3D 73 74 64 ers=1;.. fd=std
022370: 69 6E 3B 0D 0A 20 20 64 6F 61 72 67 73 28 61 72 in;.. doargs(ar
022380: 67 63 2C 20 61 72 67 76 29 3B 0D 0A 20 20 63 77 gc, argv);.. cw
022390: 69 64 74 68 3D 70 77 69 64 74 68 2F 63 6F 6C 73 idth=pwidth/cols
0223A0: 3B 0D 0A 20 20 77 68 69 6C 65 28 65 6F 66 3D 3D ;.. while(eof==
0223B0: 4E 4F 29 20 7B 0D 0A 20 20 20 20 69 66 28 70 61 NO) {.. if(pa
0223C0: 75 73 65 29 20 7B 0D 0A 20 20 20 20 20 20 66 70 use) {.. fp
0223D0: 75 74 73 28 22 77 61 69 74 69 6E 67 2E 2E 2E 20 uts("waiting...
0223E0: 22 2C 20 73 74 64 65 72 72 29 3B 0D 0A 20 20 20 ", stderr);..
0223F0: 20 20 20 66 67 65 74 63 28 73 74 64 65 72 72 29 fgetc(stderr)
022400: 3D 62 75 66 3B 0D 0A 20 20 6C 77 69 64 74 68 3D =buf;.. lwidth=
022410: 63 6F 6C 73 2A 28 63 77 69 64 74 68 2B 31 29 3B cols*(cwidth+1);
022420: 0D 0A 20 20 6C 69 6E 65 73 3D 28 73 74 6F 70 2D .. lines=(stop-
022430: 62 75 66 29 2F 6C 77 69 64 74 68 3B 0D 0A 20 20 buf)/lwidth;..
022440: 69 66 28 28 73 74 6F 70 2D 62 75 66 29 25 6C 77 if((stop-buf)%lw
022450: 69 64 74 68 29 20 2B 2B 6C 69 6E 65 73 3B 0D 0A idth) ++lines;..
022460: 20 20 69 66 28 6C 69 6E 65 73 3D 3D 30 29 20 72 if(lines==0) r
022470: 65 74 75 72 6E 20 65 6F 66 3B 0D 0A 20 20 6C 69 eturn eof;.. li
022480: 6E 65 63 6E 74 3D 6C 69 6E 65 73 3B 0D 0A 20 20 necnt=lines;..
022490: 77 68 69 6C 65 28 6C 69 6E 65 63 6E 74 2D 2D 29 while(linecnt--)
0224A0: 20 7B 0D 0A 20 20 20 20 70 6F 6C 6C 28 59 45 53 {.. poll(YES
0224B0: 29 3B 0D 0A 20 20 20 20 65 70 74 72 3D 70 74 72 );.. eptr=ptr
0224C0: 3B 0D 0A 20 20 20 20 63 6F 6C 63 6E 74 3D 63 6F ;.. colcnt=co
0224D0: 6C 73 3B 0D 0A 20 20 20 20 77 68 69 6C 65 28 63 ls;.. while(c
0224E0: 6F 6C 63 6E 74 2D 2D 29 20 7B 0D 0A 20 20 20 20 olcnt--) {..
0224F0: 20 20 73 6F 75 74 28 65 70 74 72 2C 20 6F 75 74 sout(eptr, out
022500: 29 3B 0D 0A 20 20 20 20 20 20 69 66 28 28 6E 65 );.. if((ne
022510: 78 74 65 70 74 72 3D 65 70 74 72 2B 28 6C 69 6E xteptr=eptr+(lin
022520: 65 73 2A 28 63 77 69 64 74 68 2B 31 29 29 29 20 es*(cwidth+1)))
022530: 3E 3D 20 73 74 6F 70 29 20 62 72 65 61 6B 3B 0D >= stop) break;.
022540: 0A 20 20 20 20 20 20 69 66 28 63 6F 6C 63 6E 74 . if(colcnt
022550: 20 3E 20 30 29 20 7B 0D 0A 20 20 20 20 20 20 20 > 0) {..
022560: 20 69 66 28 28 69 3D 73 74 72 6C 65 6E 28 65 70 if((i=strlen(ep
022570: 74 72 29 29 20 3C 20 63 77 69 64 74 68 29 20 7B tr)) < cwidth) {
022580: 0D 0A 20 20 20 20 20 20 20 20 20 20 69 3D 63 77 .. i=cw
022590: 69 64 74 68 2D 69 3B 0D 0A 20 20 20 20 20 20 20 idth-i;..
0225A0: 20 20 20 77 68 69 6C 65 28 69 2D 2D 29 20 63 6F while(i--) co
0225B0: 75 74 28 27 20 27 2C 20 6F 75 74 29 3B 0D 0A 20 ut(' ', out);..
0225C0: 20 20 20 20 20 20 20 20 20 7D 0D 0A 20 20 20 20 }..
0225D0: 20 20 20 20 7D 0D 0A 20 20 20 20 20 20 65 70 74 }.. ept
0225E0: 72 3D 6E 65 78 74 65 70 74 72 3B 0D 0A 20 20 20 r=nexteptr;..
0225F0: 20 20 20 7D 0D 0A 20 20 20 20 63 6F 75 74 28 27 }.. cout('
022600: 3B 0D 0A 20 20 20 20 20 20 7D 0D 0A 20 20 20 20 ;.. }..
022610: 65 6F 66 3D 63 6F 6C 75 6D 6E 28 66 64 2C 20 73 eof=column(fd, s
022620: 74 64 6F 75 74 2C 20 63 77 69 64 74 68 2C 20 63 tdout, cwidth, c
022630: 6F 6C 73 2C 20 70 6C 65 6E 67 74 68 2C 20 26 6E ols, plength, &n
022640: 75 6D 62 65 72 73 29 3B 0D 0A 20 20 20 20 7D 0D umbers);.. }.
022650: 0A 20 20 66 63 6C 6F 73 65 28 73 74 64 6F 75 74 . fclose(stdout
022660: 29 3B 0D 0A 20 20 7D 0D 0A 64 6F 61 72 67 73 28 );.. }..doargs(
022670: 61 72 67 63 2C 20 61 72 67 76 29 20 69 6E 74 20 argc, argv) int
022680: 61 72 67 63 2C 20 2A 61 72 67 76 3B 20 7B 0D 0A argc, *argv; {..
022690: 20 20 69 6E 74 20 69 2C 20 6A 2C 20 6B 2C 20 65 int i, j, k, e
0226A0: 72 72 3B 0D 0A 20 20 63 68 61 72 20 61 72 67 5B rr;.. char arg[
0226B0: 4D 41 58 46 4E 5D 3B 0D 0A 20 20 65 72 72 3D 4E MAXFN];.. err=N
0226C0: 4F 3B 0D 0A 20 20 69 3D 30 3B 0D 0A 20 20 77 68 O;.. i=0;.. wh
0226D0: 69 6C 65 28 67 65 74 61 72 67 28 2B 2B 69 2C 20 ile(getarg(++i,
0226E0: 61 72 67 2C 20 4D 41 58 46 4E 2C 20 61 72 67 63 arg, MAXFN, argc
0226F0: 2C 20 61 72 67 76 29 20 21 3D 20 45 4F 46 29 20 , argv) != EOF)
022700: 7B 0D 0A 20 20 20 20 69 66 28 61 72 67 5B 30 5D {.. if(arg[0]
022710: 20 21 3D 20 27 2D 27 29 20 7B 0D 0A 20 20 20 20 != '-') {..
022720: 20 20 69 66 28 21 28 66 64 3D 66 6F 70 65 6E 28 if(!(fd=fopen(
022730: 61 72 67 2C 20 22 72 22 29 29 29 20 7B 65 72 72 arg, "r"))) {err
022740: 3D 59 45 53 3B 20 62 72 65 61 6B 3B 7D 0D 0A 20 =YES; break;}..
022750: 20 20 20 20 20 63 6F 6E 74 69 6E 75 65 3B 0D 0A continue;..
022760: 20 20 20 20 20 20 7D 0D 0A 20 20 20 20 69 66 28 }.. if(
022770: 73 61 6D 65 28 61 72 67 5B 31 5D 2C 20 27 63 27 same(arg[1], 'c'
022780: 29 29 20 7B 0D 0A 20 20 20 20 20 20 69 66 28 28 )) {.. if((
022790: 6A 3D 75 74 6F 69 28 61 72 67 2B 32 2C 20 26 63 j=utoi(arg+2, &c
0227A0: 6F 6C 73 29 29 20 3C 20 31 29 20 7B 65 72 72 3D ols)) < 1) {err=
0227B0: 59 45 53 3B 20 62 72 65 61 6B 3B 7D 0D 0A 20 20 YES; break;}..
0227C0: 20 20 20 20 69 66 28 28 63 6F 6C 73 20 3C 20 31 if((cols < 1
0227D0: 29 7C 28 61 72 67 5B 6A 2B 32 5D 20 3E 20 27 20 )|(arg[j+2] > '
0227E0: 27 29 29 20 7B 65 72 72 3D 59 45 53 3B 20 62 72 ')) {err=YES; br
0227F0: 65 61 6B 3B 7D 0D 0A 20 20 20 20 20 20 63 6F 6E eak;}.. con
022800: 54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 00 00 00 Track-Info......
022810: 1D 00 01 00 02 09 52 E5 1D 00 41 02 00 00 00 02 ......R...A.....
022820: 1D 00 46 02 00 00 00 02 1D 00 42 02 00 00 00 02 ..F.......B.....
022830: 1D 00 47 02 00 00 00 02 1D 00 43 02 00 00 00 02 ..G.......C.....
022840: 1D 00 48 02 00 00 00 02 1D 00 44 02 00 00 00 02 ..H.......D.....
022850: 1D 00 49 02 00 00 00 02 1D 00 45 02 00 00 00 02 ..I.......E.....
022860: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
022870: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
022880: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
022890: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0228A0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0228B0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0228C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0228D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0228E0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0228F0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
022900: 5C 6E 27 2C 20 6F 75 74 29 3B 0D 0A 20 20 20 20 \n', out);..
022910: 70 74 72 3D 70 74 72 2B 63 77 69 64 74 68 2B 31 ptr=ptr+cwidth+1
022920: 3B 0D 0A 20 20 20 20 7D 0D 0A 20 20 66 72 65 65 ;.. }.. free
022930: 28 62 75 66 29 3B 0D 0A 20 20 72 65 74 75 72 6E (buf);.. return
022940: 20 65 6F 66 3B 0D 0A 20 20 7D 0D 0A 23 69 6E 63 eof;.. }..#inc
022950: 6C 75 64 65 20 22 6F 75 74 2E 63 22 0D 0A 23 69 lude "out.c"..#i
022960: 6E 63 6C 75 64 65 20 22 73 61 6D 65 2E 63 22 0D nclude "same.c".
022970: 0A 23 69 6E 63 6C 75 64 65 20 22 74 72 69 6D 2E .#include "trim.
022980: 63 22 0D 0A 0D 0A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A c"..............
022990: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
0229A0: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
0229B0: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
0229C0: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
0229D0: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
0229E0: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
0229F0: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
022A00: 29 3B 0D 0A 20 20 20 20 20 20 69 66 28 28 6E 65 );.. if((ne
022A10: 78 74 65 70 74 72 3D 65 70 74 72 2B 28 6C 69 6E xteptr=eptr+(lin
022A20: 65 73 2A 28 63 77 69 64 74 68 2B 31 29 29 29 20 es*(cwidth+1)))
022A30: 3E 3D 20 73 74 6F 70 29 20 62 72 65 61 6B 3B 0D >= stop) break;.
022A40: 0A 20 20 20 20 20 20 69 66 28 63 6F 6C 63 6E 74 . if(colcnt
022A50: 20 3E 20 30 29 20 7B 0D 0A 20 20 20 20 20 20 20 > 0) {..
022A60: 20 69 66 28 28 69 3D 73 74 72 6C 65 6E 28 65 70 if((i=strlen(ep
022A70: 74 72 29 29 20 3C 20 63 77 69 64 74 68 29 20 7B tr)) < cwidth) {
022A80: 0D 0A 20 20 20 20 20 20 20 20 20 20 69 3D 63 77 .. i=cw
022A90: 69 64 74 68 2D 69 3B 0D 0A 20 20 20 20 20 20 20 idth-i;..
022AA0: 20 20 20 77 68 69 6C 65 28 69 2D 2D 29 20 63 6F while(i--) co
022AB0: 75 74 28 27 20 27 2C 20 6F 75 74 29 3B 0D 0A 20 ut(' ', out);..
022AC0: 20 20 20 20 20 20 20 20 20 7D 0D 0A 20 20 20 20 }..
022AD0: 20 20 20 20 7D 0D 0A 20 20 20 20 20 20 65 70 74 }.. ept
022AE0: 72 3D 6E 65 78 74 65 70 74 72 3B 0D 0A 20 20 20 r=nexteptr;..
022AF0: 20 20 20 7D 0D 0A 20 20 20 20 63 6F 75 74 28 27 }.. cout('
022B00: 2F 2A 0D 0A 2A 2A 20 6D 72 67 2E 63 20 2D 2D 20 /*..** mrg.c --
022B10: 63 6F 6D 70 61 72 65 73 20 74 77 6F 20 73 6F 72 compares two sor
022B20: 74 65 64 20 74 65 78 74 20 66 69 6C 65 73 0D 0A ted text files..
022B30: 2A 2A 0D 0A 2A 2A 20 43 6F 70 79 72 69 67 68 74 **..** Copyright
022B40: 20 31 39 38 32 20 4A 2E 20 45 2E 20 48 65 64 6E 1982 J. E. Hedn
022B50: 72 69 78 2E 20 20 41 6C 6C 20 72 69 67 68 74 73 rix. All rights
022B60: 20 72 65 73 65 72 76 65 64 2E 0D 0A 2A 2A 0D 0A reserved...**..
022B70: 2A 2A 20 73 77 69 74 63 68 20 31 20 3D 20 6C 69 ** switch 1 = li
022B80: 6E 65 73 20 69 6E 20 66 69 72 73 74 20 66 69 6C nes in first fil
022B90: 65 20 6F 6E 6C 79 0D 0A 2A 2A 20 73 77 69 74 63 e only..** switc
022BA0: 68 20 32 20 3D 20 6C 69 6E 65 73 20 69 6E 20 73 h 2 = lines in s
022BB0: 65 63 6F 6E 64 20 66 69 6C 65 20 6F 6E 6C 79 0D econd file only.
022BC0: 0A 2A 2A 20 73 77 69 74 63 68 20 33 20 3D 20 6C .** switch 3 = l
022BD0: 69 6E 65 73 20 69 6E 20 62 6F 74 68 20 66 69 6C ines in both fil
022BE0: 65 73 0D 0A 2A 2A 20 73 77 69 74 63 68 20 66 20 es..** switch f
022BF0: 3D 20 6C 69 6E 65 73 20 69 6E 20 62 6F 74 68 20 = lines in both
022C00: 66 69 6C 65 73 20 66 6F 72 6D 61 74 74 65 64 0D files formatted.
022C10: 0A 2A 2A 0D 0A 2A 2A 20 20 20 20 20 20 20 20 20 .**..**
022C20: 20 73 74 64 69 6E 20 64 65 66 61 75 6C 74 73 20 stdin defaults
022C30: 66 6F 72 20 73 65 63 6F 6E 64 20 66 69 6C 65 0D for second file.
022C40: 0A 2A 2F 0D 0A 23 69 6E 63 6C 75 64 65 20 3C 73 .*/..#include <s
022C50: 74 64 69 6F 2E 68 3E 0D 0A 23 69 6E 63 6C 75 64 tdio.h>..#includ
022C60: 65 20 22 74 6F 6F 6C 73 2E 68 22 0D 0A 23 64 65 e "tools.h"..#de
022C70: 66 69 6E 65 20 4E 4F 43 43 41 52 47 43 0D 0A 69 fine NOCCARGC..i
022C80: 6E 74 20 63 6D 70 72 2C 20 66 64 31 2C 20 66 64 nt cmpr, fd1, fd
022C90: 32 2C 20 69 3B 0D 0A 63 68 61 72 20 2A 6C 69 6E 2, i;..char *lin
022CA0: 65 31 2C 20 2A 6C 69 6E 65 32 2C 20 63 6F 6C 75 e1, *line2, colu
022CB0: 6D 6E 2C 20 61 72 67 5B 4D 41 58 46 4E 5D 3B 0D mn, arg[MAXFN];.
022CC0: 0A 6D 61 69 6E 28 61 72 67 63 2C 20 61 72 67 76 .main(argc, argv
022CD0: 29 20 69 6E 74 20 61 72 67 63 2C 20 2A 61 72 67 ) int argc, *arg
022CE0: 76 3B 20 7B 0D 0A 20 20 69 6E 74 20 65 72 72 6F v; {.. int erro
022CF0: 72 3B 0D 0A 20 20 63 6F 6C 75 6D 6E 3D 27 30 27 r;.. column='0'
022D00: 0D 0A 2F 2A 0D 0A 2A 2A 20 6D 61 6B 73 65 74 2E ../*..** makset.
022D10: 63 20 2D 2D 20 6D 61 6B 65 20 61 72 72 61 79 20 c -- make array
022D20: 69 6E 74 6F 20 61 20 73 65 74 0D 0A 2A 2F 0D 0A into a set..*/..
022D30: 6D 61 6B 73 65 74 28 61 72 72 61 79 2C 20 6B 2C makset(array, k,
022D40: 20 73 65 74 2C 20 73 69 7A 65 29 20 63 68 61 72 set, size) char
022D50: 20 61 72 72 61 79 5B 5D 2C 20 73 65 74 5B 5D 3B array[], set[];
022D60: 20 69 6E 74 20 6B 2C 20 73 69 7A 65 3B 20 7B 0D int k, size; {.
022D70: 0A 20 20 69 6E 74 20 69 2C 20 6A 3B 0D 0A 20 20 . int i, j;..
022D80: 69 3D 6B 3B 0D 0A 20 20 6A 3D 30 3B 0D 0A 20 20 i=k;.. j=0;..
022D90: 66 69 6C 73 65 74 28 4E 55 4C 4C 2C 20 61 72 72 filset(NULL, arr
022DA0: 61 79 2C 20 26 69 2C 20 73 65 74 2C 20 26 6A 2C ay, &i, set, &j,
022DB0: 20 73 69 7A 65 29 3B 0D 0A 20 20 72 65 74 75 72 size);.. retur
022DC0: 6E 20 61 64 64 73 65 74 28 4E 55 4C 4C 2C 20 73 n addset(NULL, s
022DD0: 65 74 2C 20 26 6A 2C 20 73 69 7A 65 29 3B 0D 0A et, &j, size);..
022DE0: 20 20 7D 0D 0A 1A 20 72 65 74 75 72 6E 20 61 64 }... return ad
022DF0: 64 73 65 74 28 4E 55 4C 4C 2C 20 73 65 74 2C 20 dset(NULL, set,
022E00: 26 6A 2C 20 73 69 7A 65 29 3B 0D 0A 20 20 7D 0D &j, size);.. }.
022E10: 0A 1A 45 54 5D 2C 20 74 6F 5B 44 49 4D 53 45 54 ..ET], to[DIMSET
022E20: 5D 3B 0D 0A 20 20 69 6E 74 20 61 6C 6C 62 75 74 ];.. int allbut
022E30: 2C 20 63 6F 6C 6C 61 70 2C 20 69 2C 20 6C 61 73 , collap, i, las
022E40: 74 74 6F 3B 0D 0A 20 20 69 66 28 67 65 74 61 72 tto;.. if(getar
022E50: 67 28 31 2C 20 61 72 67 2C 20 4D 41 58 41 52 52 g(1, arg, MAXARR
022E60: 2C 20 61 72 67 63 2C 20 61 72 67 76 29 3D 3D 45 , argc, argv)==E
022E70: 4F 46 29 20 7B 0D 0A 20 20 20 20 67 65 74 61 72 OF) {.. getar
022E80: 67 28 30 2C 20 61 72 67 2C 20 4D 41 58 41 52 52 g(0, arg, MAXARR
022E90: 2C 20 61 72 67 63 2C 20 61 72 67 76 29 3B 0D 0A , argc, argv);..
022EA0: 20 20 20 20 70 72 69 6E 74 66 28 22 3F 55 73 61 printf("?Usa
022EB0: 67 65 3A 20 25 73 20 70 61 74 74 65 72 6E 66 72 ge: %s patternfr
022EC0: 6F 6D 20 5B 70 61 74 74 65 72 6E 74 6F 5D 5C 6E om [patternto]\n
022ED0: 22 2C 20 61 72 67 2C 20 31 29 3B 0D 0A 20 20 20 ", arg, 1);..
022EE0: 20 61 62 6F 72 74 28 30 29 3B 0D 0A 20 20 20 20 abort(0);..
022EF0: 7D 0D 0A 20 20 65 6C 73 65 20 69 66 28 61 72 67 }.. else if(arg
022F00: 3B 0D 0A 20 20 66 64 31 3D 66 64 32 3D 73 74 64 ;.. fd1=fd2=std
022F10: 69 6E 3B 0D 0A 20 20 6C 69 6E 65 31 3D 6D 61 6C in;.. line1=mal
022F20: 6C 6F 63 28 4D 41 58 4C 49 4E 45 2B 31 29 3B 0D loc(MAXLINE+1);.
022F30: 0A 20 20 6C 69 6E 65 32 3D 6D 61 6C 6C 6F 63 28 . line2=malloc(
022F40: 4D 41 58 4C 49 4E 45 2B 31 29 3B 0D 0A 20 20 65 MAXLINE+1);.. e
022F50: 72 72 6F 72 3D 4E 4F 3B 0D 0A 20 20 69 3D 30 3B rror=NO;.. i=0;
022F60: 0D 0A 20 20 77 68 69 6C 65 28 67 65 74 61 72 67 .. while(getarg
022F70: 28 2B 2B 69 2C 20 61 72 67 2C 20 4D 41 58 46 4E (++i, arg, MAXFN
022F80: 2C 20 61 72 67 63 2C 20 61 72 67 76 29 21 3D 45 , argc, argv)!=E
022F90: 4F 46 29 20 7B 0D 0A 20 20 20 20 69 66 28 61 72 OF) {.. if(ar
022FA0: 67 5B 30 5D 21 3D 27 2D 27 29 20 7B 0D 0A 20 20 g[0]!='-') {..
022FB0: 20 20 20 20 69 66 28 66 64 31 3D 3D 73 74 64 69 if(fd1==stdi
022FC0: 6E 29 20 7B 0D 0A 20 20 20 20 20 20 20 20 69 66 n) {.. if
022FD0: 28 28 66 64 31 3D 66 6F 70 65 6E 28 61 72 67 2C ((fd1=fopen(arg,
022FE0: 20 22 72 22 29 29 3D 3D 4E 55 4C 4C 29 20 63 61 "r"))==NULL) ca
022FF0: 6E 74 28 61 72 67 29 3B 0D 0A 20 20 20 20 20 20 nt(arg);..
023000: 20 20 7D 0D 0A 20 20 20 20 20 20 65 6C 73 65 20 }.. else
023010: 69 66 28 66 64 32 3D 3D 73 74 64 69 6E 29 20 7B if(fd2==stdin) {
023020: 0D 0A 20 20 20 20 20 20 20 20 69 66 28 28 66 64 .. if((fd
023030: 32 3D 66 6F 70 65 6E 28 61 72 67 2C 20 22 72 22 2=fopen(arg, "r"
023040: 29 29 3D 3D 4E 55 4C 4C 29 20 63 61 6E 74 28 61 ))==NULL) cant(a
023050: 72 67 29 3B 0D 0A 20 20 20 20 20 20 20 20 7D 0D rg);.. }.
023060: 0A 20 20 20 20 20 20 65 6C 73 65 20 65 72 72 6F . else erro
023070: 72 3D 59 45 53 3B 0D 0A 20 20 20 20 20 20 7D 0D r=YES;.. }.
023080: 0A 20 20 20 20 65 6C 73 65 20 69 66 28 28 28 61 . else if(((a
023090: 72 67 5B 31 5D 20 3E 20 27 30 27 29 26 28 61 72 rg[1] > '0')&(ar
0230A0: 67 5B 31 5D 20 3C 20 27 34 27 29 29 0D 0A 20 20 g[1] < '4'))..
0230B0: 20 20 20 20 20 20 20 20 20 20 7C 28 73 61 6D 65 |(same
0230C0: 28 61 72 67 5B 31 5D 2C 20 27 66 27 29 29 29 0D (arg[1], 'f'))).
0230D0: 0A 20 20 20 20 20 20 63 6F 6C 75 6D 6E 3D 61 72 . column=ar
0230E0: 67 5B 31 5D 3B 0D 0A 20 20 20 20 65 6C 73 65 20 g[1];.. else
0230F0: 65 72 72 6F 72 3D 59 45 53 3B 0D 0A 20 20 20 20 error=YES;..
023100: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023110: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023120: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023130: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023140: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023150: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023160: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023170: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023180: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023190: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0231A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0231B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0231C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0231D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0231E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0231F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023200: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023210: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023220: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023230: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023240: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023250: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023260: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023270: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023280: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023290: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0232A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0232B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0232C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0232D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0232E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0232F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023300: 7D 0D 0A 20 20 69 66 28 28 65 72 72 6F 72 29 7C }.. if((error)|
023310: 28 66 64 31 3D 3D 73 74 64 69 6E 29 29 20 7B 0D (fd1==stdin)) {.
023320: 0A 20 20 20 20 66 70 75 74 73 28 22 75 73 61 67 . fputs("usag
023330: 65 3A 20 4D 52 47 20 66 69 6C 65 20 5B 66 69 6C e: MRG file [fil
023340: 65 5D 20 5B 2D 31 7C 2D 32 7C 2D 33 7C 2D 46 5D e] [-1|-2|-3|-F]
023350: 5C 6E 22 2C 20 73 74 64 65 72 72 29 3B 0D 0A 20 \n", stderr);..
023360: 20 20 20 61 62 6F 72 74 28 37 29 3B 0D 0A 20 20 abort(7);..
023370: 20 20 7D 0D 0A 20 20 61 75 78 62 75 66 28 66 64 }.. auxbuf(fd
023380: 31 2C 20 34 30 39 36 29 3B 0D 0A 20 20 61 75 78 1, 4096);.. aux
023390: 62 75 66 28 66 64 32 2C 20 34 30 39 36 29 3B 0D buf(fd2, 4096);.
0233A0: 0A 20 20 67 65 74 6C 69 6E 65 28 6C 69 6E 65 31 . getline(line1
0233B0: 2C 20 66 64 31 29 3B 0D 0A 20 20 67 65 74 6C 69 , fd1);.. getli
0233C0: 6E 65 28 6C 69 6E 65 32 2C 20 66 64 32 29 3B 0D ne(line2, fd2);.
0233D0: 0A 20 20 77 68 69 6C 65 28 59 45 53 29 20 7B 0D . while(YES) {.
0233E0: 0A 20 20 20 20 70 6F 6C 6C 28 59 45 53 29 3B 0D . poll(YES);.
0233F0: 0A 20 20 20 20 63 6D 70 72 3D 6C 65 78 63 6D 70 . cmpr=lexcmp
023400: 28 6C 69 6E 65 31 2C 20 6C 69 6E 65 32 29 3B 0D (line1, line2);.
023410: 0A 20 20 20 20 69 66 28 63 6D 70 72 20 3C 20 30 . if(cmpr < 0
023420: 29 20 7B 0D 0A 20 20 20 20 20 20 69 66 28 73 61 ) {.. if(sa
023430: 6D 65 28 63 6F 6C 75 6D 6E 2C 20 27 66 27 29 29 me(column, 'f'))
023440: 20 66 6F 75 74 28 22 31 29 20 22 2C 20 6C 69 6E fout("1) ", lin
023450: 65 31 29 3B 0D 0A 20 20 20 20 20 20 65 6C 73 65 e1);.. else
023460: 20 69 66 28 28 63 6F 6C 75 6D 6E 3D 3D 27 30 27 if((column=='0'
023470: 29 7C 28 63 6F 6C 75 6D 6E 3D 3D 27 31 27 29 29 )|(column=='1'))
023480: 20 73 6F 75 74 28 6C 69 6E 65 31 2C 20 73 74 64 sout(line1, std
023490: 6F 75 74 29 3B 0D 0A 20 20 20 20 20 20 67 65 74 out);.. get
0234A0: 6C 69 6E 65 28 6C 69 6E 65 31 2C 20 66 64 31 29 line(line1, fd1)
0234B0: 3B 0D 0A 20 20 20 20 20 20 63 6F 6E 74 69 6E 75 ;.. continu
0234C0: 65 3B 0D 0A 20 20 20 20 20 20 7D 0D 0A 20 20 20 e;.. }..
0234D0: 20 65 6C 73 65 20 69 66 28 63 6D 70 72 20 3E 20 else if(cmpr >
0234E0: 30 29 20 7B 0D 0A 20 20 20 20 20 20 69 66 28 73 0) {.. if(s
0234F0: 61 6D 65 28 63 6F 6C 75 6D 6E 2C 20 27 66 27 29 ame(column, 'f')
023500: 0D 0A 2F 2A 0D 0A 2A 2A 20 6D 61 6B 73 75 62 2E ../*..** maksub.
023510: 63 20 2D 2D 20 6D 61 6B 65 20 73 75 62 73 74 69 c -- make substi
023520: 74 75 74 69 6F 6E 20 73 74 72 69 6E 67 20 69 6E tution string in
023530: 20 73 75 62 0D 0A 2A 2F 0D 0A 6D 61 6B 73 75 62 sub..*/..maksub
023540: 28 61 72 67 2C 20 66 72 6F 6D 2C 20 64 65 6C 69 (arg, from, deli
023550: 6D 2C 20 73 75 62 29 20 63 68 61 72 20 61 72 67 m, sub) char arg
023560: 5B 5D 2C 20 73 75 62 5B 5D 2C 20 64 65 6C 69 6D [], sub[], delim
023570: 3B 20 69 6E 74 20 66 72 6F 6D 3B 20 7B 0D 0A 20 ; int from; {..
023580: 20 69 6E 74 20 69 2C 20 6A 3B 0D 0A 20 20 6A 3D int i, j;.. j=
023590: 30 3B 0D 0A 20 20 69 3D 66 72 6F 6D 3B 0D 0A 20 0;.. i=from;..
0235A0: 20 77 68 69 6C 65 28 28 61 72 67 5B 69 5D 21 3D while((arg[i]!=
0235B0: 64 65 6C 69 6D 29 26 28 61 72 67 5B 69 5D 21 3D delim)&(arg[i]!=
0235C0: 4E 55 4C 4C 29 29 20 7B 0D 0A 20 20 20 20 69 66 NULL)) {.. if
0235D0: 28 61 72 67 5B 69 5D 3D 3D 44 49 54 54 4F 29 20 (arg[i]==DITTO)
0235E0: 61 64 64 73 65 74 28 44 49 54 43 4F 44 45 2C 20 addset(DITCODE,
0235F0: 73 75 62 2C 20 26 6A 2C 20 4D 41 58 50 41 54 29 sub, &j, MAXPAT)
023600: 3B 0D 0A 20 20 20 20 65 6C 73 65 20 61 64 64 73 ;.. else adds
023610: 65 74 28 65 73 63 28 61 72 67 2C 20 26 69 29 2C et(esc(arg, &i),
023620: 20 73 75 62 2C 20 26 6A 2C 20 4D 41 58 50 41 54 sub, &j, MAXPAT
023630: 29 3B 0D 0A 20 20 20 20 2B 2B 69 3B 0D 0A 20 20 );.. ++i;..
023640: 20 20 7D 0D 0A 20 20 69 66 28 61 72 67 5B 69 5D }.. if(arg[i]
023650: 21 3D 64 65 6C 69 6D 29 20 72 65 74 75 72 6E 20 !=delim) return
023660: 45 52 52 3B 20 2F 2A 2A 2A 2A 20 6D 69 73 73 69 ERR; /**** missi
023670: 6E 67 20 64 65 6C 69 6D 69 74 65 72 20 2A 2A 2A ng delimiter ***
023680: 2A 2F 0D 0A 20 20 69 66 28 61 64 64 73 65 74 28 */.. if(addset(
023690: 4E 55 4C 4C 2C 20 73 75 62 2C 20 26 6A 2C 20 4D NULL, sub, &j, M
0236A0: 41 58 50 41 54 29 3D 3D 4E 4F 29 20 72 65 74 75 AXPAT)==NO) retu
0236B0: 72 6E 20 45 52 52 3B 20 2F 2A 2A 20 6E 6F 20 72 rn ERR; /** no r
0236C0: 6F 6F 6D 20 2A 2A 2F 0D 0A 20 20 72 65 74 75 72 oom **/.. retur
0236D0: 6E 20 69 3B 0D 0A 20 20 7D 0D 0A 1A 54 5D 2C 20 n i;.. }...T],
0236E0: 73 75 62 5B 4D 41 58 50 41 54 5D 3B 0D 0A 63 68 sub[MAXPAT];..ch
0236F0: 61 72 20 61 72 67 5B 4D 41 58 41 52 47 5D 3B 0D ar arg[MAXARG];.
023700: 29 20 66 6F 75 74 28 22 20 20 32 29 20 22 2C 20 ) fout(" 2) ",
023710: 6C 69 6E 65 32 29 3B 0D 0A 20 20 20 20 20 20 65 line2);.. e
023720: 6C 73 65 20 69 66 28 28 63 6F 6C 75 6D 6E 3D 3D lse if((column==
023730: 27 30 27 29 7C 28 63 6F 6C 75 6D 6E 3D 3D 27 32 '0')|(column=='2
023740: 27 29 29 20 73 6F 75 74 28 6C 69 6E 65 32 2C 20 ')) sout(line2,
023750: 73 74 64 6F 75 74 29 3B 0D 0A 20 20 20 20 20 20 stdout);..
023760: 67 65 74 6C 69 6E 65 28 6C 69 6E 65 32 2C 20 66 getline(line2, f
023770: 64 32 29 3B 0D 0A 20 20 20 20 20 20 63 6F 6E 74 d2);.. cont
023780: 69 6E 75 65 3B 0D 0A 20 20 20 20 20 20 7D 0D 0A inue;.. }..
023790: 20 20 20 20 69 66 28 6C 69 6E 65 31 5B 30 5D 20 if(line1[0]
0237A0: 3D 3D 20 31 32 37 29 20 62 72 65 61 6B 3B 0D 0A == 127) break;..
0237B0: 20 20 20 20 69 66 28 73 61 6D 65 28 63 6F 6C 75 if(same(colu
0237C0: 6D 6E 2C 20 27 66 27 29 29 20 20 20 66 6F 75 74 mn, 'f')) fout
0237D0: 28 22 20 20 20 20 33 29 20 22 2C 20 6C 69 6E 65 (" 3) ", line
0237E0: 31 29 3B 0D 0A 20 20 20 20 65 6C 73 65 20 69 66 1);.. else if
0237F0: 28 28 63 6F 6C 75 6D 6E 3D 3D 27 30 27 29 7C 28 ((column=='0')|(
023800: 63 6F 6C 75 6D 6E 3D 3D 27 33 27 29 29 20 73 6F column=='3')) so
023810: 75 74 28 6C 69 6E 65 31 2C 20 73 74 64 6F 75 74 ut(line1, stdout
023820: 29 3B 0D 0A 20 20 20 20 67 65 74 6C 69 6E 65 28 );.. getline(
023830: 6C 69 6E 65 31 2C 20 66 64 31 29 3B 0D 0A 20 20 line1, fd1);..
023840: 20 20 67 65 74 6C 69 6E 65 28 6C 69 6E 65 32 2C getline(line2,
023850: 20 66 64 32 29 3B 0D 0A 20 20 20 20 7D 0D 0A 20 fd2);.. }..
023860: 20 66 63 6C 6F 73 65 28 73 74 64 6F 75 74 29 3B fclose(stdout);
023870: 0D 0A 20 20 7D 0D 0A 0D 0A 67 65 74 6C 69 6E 65 .. }....getline
023880: 28 6C 69 6E 65 2C 20 66 64 29 20 63 68 61 72 20 (line, fd) char
023890: 2A 6C 69 6E 65 3B 20 69 6E 74 20 66 64 3B 20 7B *line; int fd; {
0238A0: 0D 0A 20 20 69 66 28 66 67 65 74 73 28 6C 69 6E .. if(fgets(lin
0238B0: 65 2C 20 4D 41 58 4C 49 4E 45 2B 31 2C 20 66 64 e, MAXLINE+1, fd
0238C0: 29 3D 3D 4E 55 4C 4C 29 20 7B 0D 0A 20 20 20 20 )==NULL) {..
0238D0: 6C 69 6E 65 5B 30 5D 20 3D 20 31 32 37 3B 0D 0A line[0] = 127;..
0238E0: 20 20 20 20 6C 69 6E 65 5B 31 5D 20 3D 20 4E 55 line[1] = NU
0238F0: 4C 4C 3B 0D 0A 20 20 20 20 7D 0D 0A 20 20 7D 0D LL;.. }.. }.
023900: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023910: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023920: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023930: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023940: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023950: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023960: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023970: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023980: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023990: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0239A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0239B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0239C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0239D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0239E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0239F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023A00: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023A10: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023A20: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023A30: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023A40: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023A50: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023A60: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023A70: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023A80: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023A90: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023AA0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023AB0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023AC0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023AD0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023AE0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023AF0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023B00: 54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 00 00 00 Track-Info......
023B10: 1E 00 01 00 02 09 52 E5 1E 00 41 02 00 00 00 02 ......R...A.....
023B20: 1E 00 46 02 00 00 00 02 1E 00 42 02 00 00 00 02 ..F.......B.....
023B30: 1E 00 47 02 00 00 00 02 1E 00 43 02 00 00 00 02 ..G.......C.....
023B40: 1E 00 48 02 00 00 00 02 1E 00 44 02 00 00 00 02 ..H.......D.....
023B50: 1E 00 49 02 00 00 00 02 1E 00 45 02 00 00 00 02 ..I.......E.....
023B60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
023B70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
023B80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
023B90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
023BA0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
023BB0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
023BC0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
023BD0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
023BE0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
023BF0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
023C00: 0A 0D 0A 2F 2A 0D 0A 2A 2A 20 66 6F 75 74 20 2D .../*..** fout -
023C10: 2D 20 66 6F 72 6D 61 74 74 65 64 20 6F 75 74 70 - formatted outp
023C20: 75 74 20 6F 66 20 61 20 6C 69 6E 65 0D 0A 2A 2F ut of a line..*/
023C30: 0D 0A 66 6F 75 74 28 68 65 61 64 65 72 2C 20 64 ..fout(header, d
023C40: 61 74 61 29 20 63 68 61 72 20 2A 68 65 61 64 65 ata) char *heade
023C50: 72 2C 20 2A 64 61 74 61 3B 20 7B 0D 0A 20 20 73 r, *data; {.. s
023C60: 6F 75 74 28 68 65 61 64 65 72 2C 20 73 74 64 6F out(header, stdo
023C70: 75 74 29 3B 0D 0A 20 20 73 6F 75 74 28 64 61 74 ut);.. sout(dat
023C80: 61 2C 20 73 74 64 6F 75 74 29 3B 0D 0A 20 20 7D a, stdout);.. }
023C90: 0D 0A 0D 0A 23 69 6E 63 6C 75 64 65 20 22 6F 75 ....#include "ou
023CA0: 74 2E 63 22 0D 0A 23 69 6E 63 6C 75 64 65 20 22 t.c"..#include "
023CB0: 63 61 6E 74 2E 63 22 0D 0A 23 69 6E 63 6C 75 64 cant.c"..#includ
023CC0: 65 20 22 73 61 6D 65 2E 63 22 0D 0A 0D 0A 1A 1A e "same.c"......
023CD0: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
023CE0: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
023CF0: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
023D00: 63 6F 6C 75 6D 6E 3D 3D 27 33 27 29 29 20 73 6F column=='3')) so
023D10: 75 74 28 6C 69 6E 65 31 2C 20 73 74 64 6F 75 74 ut(line1, stdout
023D20: 29 3B 0D 0A 20 20 20 20 67 65 74 6C 69 6E 65 28 );.. getline(
023D30: 6C 69 6E 65 31 2C 20 66 64 31 29 3B 0D 0A 20 20 line1, fd1);..
023D40: 20 20 67 65 74 6C 69 6E 65 28 6C 69 6E 65 32 2C getline(line2,
023D50: 20 66 64 32 29 3B 0D 0A 20 20 20 20 7D 0D 0A 20 fd2);.. }..
023D60: 20 66 63 6C 6F 73 65 28 73 74 64 6F 75 74 29 3B fclose(stdout);
023D70: 0D 0A 20 20 7D 0D 0A 0D 0A 67 65 74 6C 69 6E 65 .. }....getline
023D80: 28 6C 69 6E 65 2C 20 66 64 29 20 63 68 61 72 20 (line, fd) char
023D90: 2A 6C 69 6E 65 3B 20 69 6E 74 20 66 64 3B 20 7B *line; int fd; {
023DA0: 0D 0A 20 20 69 66 28 66 67 65 74 73 28 6C 69 6E .. if(fgets(lin
023DB0: 65 2C 20 4D 41 58 4C 49 4E 45 2B 31 2C 20 66 64 e, MAXLINE+1, fd
023DC0: 29 3D 3D 4E 55 4C 4C 29 20 7B 0D 0A 20 20 20 20 )==NULL) {..
023DD0: 6C 69 6E 65 5B 30 5D 20 3D 20 31 32 37 3B 0D 0A line[0] = 127;..
023DE0: 20 20 20 20 6C 69 6E 65 5B 31 5D 20 3D 20 4E 55 line[1] = NU
023DF0: 4C 4C 3B 0D 0A 20 20 20 20 7D 0D 0A 20 20 7D 0D LL;.. }.. }.
023E00: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023E10: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023E20: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023E30: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023E40: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023E50: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023E60: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023E70: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023E80: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023E90: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023EA0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023EB0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023EC0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023ED0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023EE0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023EF0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023F00: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023F10: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023F20: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023F30: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023F40: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023F50: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023F60: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023F70: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023F80: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023F90: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023FA0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023FB0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023FC0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023FD0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023FE0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
023FF0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
024000: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
024010: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
024020: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
024030: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
024040: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
024050: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
024060: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
024070: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
024080: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
024090: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0240A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0240B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0240C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0240D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0240E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0240F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
024100: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
024110: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
024120: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
024130: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
024140: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
024150: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
024160: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
024170: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
024180: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
024190: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0241A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0241B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0241C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0241D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0241E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0241F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
024200: 0D 0A 2F 2A 0D 0A 2A 2A 20 70 61 74 2E 63 20 2D ../*..** pat.c -
024210: 2D 20 70 61 74 74 65 72 6E 20 6D 61 6B 69 6E 67 - pattern making
024220: 20 61 6E 64 20 6D 61 74 63 68 69 6E 67 20 66 75 and matching fu
024230: 6E 63 74 69 6F 6E 73 0D 0A 2A 2F 0D 0A 0D 0A 2F nctions..*/..../
024240: 2A 0D 0A 2A 2A 20 61 64 64 73 65 74 20 2D 2D 20 *..** addset --
024250: 70 75 74 20 63 20 69 6E 20 73 65 74 20 26 20 69 put c in set & i
024260: 6E 63 72 65 6D 65 6E 74 20 6A 0D 0A 2A 2F 0D 0A ncrement j..*/..
024270: 61 64 64 73 65 74 28 63 2C 20 73 65 74 2C 20 6A addset(c, set, j
024280: 2C 20 6D 61 78 73 69 7A 29 20 63 68 61 72 20 63 , maxsiz) char c
024290: 2C 20 73 65 74 5B 5D 3B 20 69 6E 74 20 2A 6A 2C , set[]; int *j,
0242A0: 20 6D 61 78 73 69 7A 3B 20 7B 0D 0A 20 20 69 66 maxsiz; {.. if
0242B0: 28 2A 6A 20 3E 3D 20 6D 61 78 73 69 7A 29 20 72 (*j >= maxsiz) r
0242C0: 65 74 75 72 6E 20 4E 4F 3B 0D 0A 20 20 73 65 74 eturn NO;.. set
0242D0: 5B 2A 6A 5D 3D 63 3B 0D 0A 20 20 2A 6A 20 3D 20 [*j]=c;.. *j =
0242E0: 2A 6A 20 2B 20 31 3B 0D 0A 20 20 72 65 74 75 72 *j + 1;.. retur
0242F0: 6E 20 59 45 53 3B 0D 0A 20 20 7D 0D 0A 0D 0A 2F n YES;.. }..../
024300: 2A 0D 0A 2A 2A 20 61 6D 61 74 63 68 20 2D 2D 20 *..** amatch --
024310: 6C 6F 6F 6B 20 66 6F 72 20 6D 61 74 63 68 20 73 look for match s
024320: 74 61 72 74 69 6E 67 20 61 74 20 6C 69 6E 5B 66 tarting at lin[f
024330: 72 6F 6D 5D 0D 0A 2A 2F 0D 0A 61 6D 61 74 63 68 rom]..*/..amatch
024340: 28 6C 69 6E 2C 20 66 72 6F 6D 2C 20 70 61 74 29 (lin, from, pat)
024350: 20 63 68 61 72 20 6C 69 6E 5B 5D 2C 20 70 61 74 char lin[], pat
024360: 5B 5D 3B 20 69 6E 74 20 66 72 6F 6D 3B 20 7B 0D []; int from; {.
024370: 0A 20 20 69 6E 74 20 69 2C 20 6A 2C 20 6F 66 66 . int i, j, off
024380: 73 65 74 2C 20 73 74 61 63 6B 3B 0D 0A 20 20 73 set, stack;.. s
024390: 74 61 63 6B 20 3D 20 2D 31 3B 0D 0A 20 20 6F 66 tack = -1;.. of
0243A0: 66 73 65 74 3D 66 72 6F 6D 3B 0D 0A 20 20 6A 3D fset=from;.. j=
0243B0: 30 3B 0D 0A 20 20 77 68 69 6C 65 28 70 61 74 5B 0;.. while(pat[
0243C0: 6A 5D 21 3D 4E 55 4C 4C 29 20 7B 0D 0A 20 20 20 j]!=NULL) {..
0243D0: 20 69 66 28 70 61 74 5B 6A 5D 3D 3D 43 4C 4F 53 if(pat[j]==CLOS
0243E0: 55 52 45 29 20 7B 0D 0A 20 20 20 20 20 20 73 74 URE) {.. st
0243F0: 61 63 6B 3D 6A 3B 0D 0A 20 20 20 20 20 20 6A 3D ack=j;.. j=
024400: 0D 0A 2F 2A 0D 0A 2A 2A 20 6F 75 74 2E 63 20 2D ../*..** out.c -
024410: 2D 20 6F 75 74 70 75 74 20 74 6F 20 66 64 20 63 - output to fd c
024420: 68 65 63 6B 69 6E 67 20 66 6F 72 20 65 72 72 6F hecking for erro
024430: 72 73 0D 0A 2A 2F 0D 0A 63 6F 75 74 28 63 2C 20 rs..*/..cout(c,
024440: 66 64 29 20 63 68 61 72 20 63 3B 20 69 6E 74 20 fd) char c; int
024450: 66 64 3B 20 7B 0D 0A 20 20 69 66 28 66 70 75 74 fd; {.. if(fput
024460: 63 28 63 2C 20 66 64 29 3D 3D 45 4F 46 29 20 78 c(c, fd)==EOF) x
024470: 6F 75 74 28 29 3B 0D 0A 20 20 7D 0D 0A 0D 0A 73 out();.. }....s
024480: 6F 75 74 28 73 74 72 69 6E 67 2C 20 66 64 29 20 out(string, fd)
024490: 63 68 61 72 20 2A 73 74 72 69 6E 67 3B 20 69 6E char *string; in
0244A0: 74 20 66 64 3B 20 7B 0D 0A 20 20 69 66 28 66 70 t fd; {.. if(fp
0244B0: 75 74 73 28 73 74 72 69 6E 67 2C 20 66 64 29 3D uts(string, fd)=
0244C0: 3D 45 4F 46 29 20 78 6F 75 74 28 29 3B 0D 0A 20 =EOF) xout();..
0244D0: 20 7D 0D 0A 0D 0A 6C 6F 75 74 28 6C 69 6E 65 2C }....lout(line,
0244E0: 20 66 64 29 20 63 68 61 72 20 2A 6C 69 6E 65 3B fd) char *line;
0244F0: 20 69 6E 74 20 66 64 3B 20 7B 0D 0A 20 20 73 6F int fd; {.. so
024500: 75 74 28 6C 69 6E 65 2C 20 66 64 29 3B 0D 0A 20 ut(line, fd);..
024510: 20 63 6F 75 74 28 27 5C 6E 27 2C 20 66 64 29 3B cout('\n', fd);
024520: 0D 0A 20 20 7D 0D 0A 0D 0A 78 6F 75 74 28 29 20 .. }....xout()
024530: 7B 0D 0A 20 20 66 70 75 74 73 28 22 6F 75 74 70 {.. fputs("outp
024540: 75 74 20 65 72 72 6F 72 5C 6E 22 2C 20 73 74 64 ut error\n", std
024550: 65 72 72 29 3B 0D 0A 20 20 61 62 6F 72 74 28 37 err);.. abort(7
024560: 29 3B 0D 0A 20 20 7D 0D 0A 1A 1A 00 00 00 00 00 );.. }.........
024570: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
024580: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
024590: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0245A0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0245B0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0245C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0245D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0245E0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0245F0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
024600: 6A 2B 43 4C 4F 53 49 5A 45 3B 0D 0A 20 20 20 20 j+CLOSIZE;..
024610: 20 20 69 3D 6F 66 66 73 65 74 3B 0D 0A 20 20 20 i=offset;..
024620: 20 20 20 77 68 69 6C 65 28 6C 69 6E 5B 69 5D 21 while(lin[i]!
024630: 3D 4E 55 4C 4C 29 20 7B 0D 0A 20 20 20 20 20 20 =NULL) {..
024640: 20 20 69 66 28 6F 6D 61 74 63 68 28 6C 69 6E 2C if(omatch(lin,
024650: 20 26 69 2C 20 70 61 74 2C 20 6A 29 3D 3D 4E 4F &i, pat, j)==NO
024660: 29 20 62 72 65 61 6B 3B 0D 0A 20 20 20 20 20 20 ) break;..
024670: 20 20 7D 0D 0A 20 20 20 20 20 20 70 61 74 5B 73 }.. pat[s
024680: 74 61 63 6B 2B 43 4F 55 4E 54 5D 3D 69 2D 6F 66 tack+COUNT]=i-of
024690: 66 73 65 74 3B 0D 0A 20 20 20 20 20 20 70 61 74 fset;.. pat
0246A0: 5B 73 74 61 63 6B 2B 53 54 41 52 54 5D 3D 6F 66 [stack+START]=of
0246B0: 66 73 65 74 3B 0D 0A 20 20 20 20 20 20 6F 66 66 fset;.. off
0246C0: 73 65 74 3D 69 3B 0D 0A 20 20 20 20 20 20 7D 0D set=i;.. }.
0246D0: 0A 20 20 20 20 65 6C 73 65 20 69 66 28 6F 6D 61 . else if(oma
0246E0: 74 63 68 28 6C 69 6E 2C 20 26 6F 66 66 73 65 74 tch(lin, &offset
0246F0: 2C 20 70 61 74 2C 20 6A 29 3D 3D 4E 4F 29 20 7B , pat, j)==NO) {
024700: 0D 0A 20 20 20 20 20 20 77 68 69 6C 65 28 73 74 .. while(st
024710: 61 63 6B 20 3E 3D 20 30 29 20 7B 0D 0A 20 20 20 ack >= 0) {..
024720: 20 20 20 20 20 69 66 28 70 61 74 5B 73 74 61 63 if(pat[stac
024730: 6B 2B 43 4F 55 4E 54 5D 20 3E 20 30 29 20 62 72 k+COUNT] > 0) br
024740: 65 61 6B 3B 0D 0A 20 20 20 20 20 20 20 20 73 74 eak;.. st
024750: 61 63 6B 3D 70 61 74 5B 73 74 61 63 6B 2B 50 52 ack=pat[stack+PR
024760: 45 56 43 4C 5D 3B 0D 0A 20 20 20 20 20 20 20 20 EVCL];..
024770: 7D 0D 0A 20 20 20 20 20 20 69 66 28 73 74 61 63 }.. if(stac
024780: 6B 20 3C 20 30 29 20 72 65 74 75 72 6E 20 2D 31 k < 0) return -1
024790: 3B 0D 0A 20 20 20 20 20 20 70 61 74 5B 73 74 61 ;.. pat[sta
0247A0: 63 6B 2B 43 4F 55 4E 54 5D 3D 70 61 74 5B 73 74 ck+COUNT]=pat[st
0247B0: 61 63 6B 2B 43 4F 55 4E 54 5D 2D 31 3B 0D 0A 20 ack+COUNT]-1;..
0247C0: 20 20 20 20 20 6A 3D 73 74 61 63 6B 2B 43 4C 4F j=stack+CLO
0247D0: 53 49 5A 45 3B 0D 0A 20 20 20 20 20 20 6F 66 66 SIZE;.. off
0247E0: 73 65 74 3D 70 61 74 5B 73 74 61 63 6B 2B 53 54 set=pat[stack+ST
0247F0: 41 52 54 5D 2B 70 61 74 5B 73 74 61 63 6B 2B 43 ART]+pat[stack+C
024800: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
024810: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
024820: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
024830: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
024840: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
024850: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
024860: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
024870: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
024880: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
024890: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0248A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0248B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0248C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0248D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0248E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0248F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
024900: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
024910: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
024920: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
024930: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
024940: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
024950: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
024960: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
024970: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
024980: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
024990: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0249A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0249B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0249C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0249D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0249E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0249F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
024A00: 4F 55 4E 54 5D 3B 0D 0A 20 20 20 20 20 20 7D 0D OUNT];.. }.
024A10: 0A 20 20 20 20 6A 3D 6A 2B 70 61 74 73 69 7A 28 . j=j+patsiz(
024A20: 70 61 74 2C 20 6A 29 3B 0D 0A 20 20 20 20 7D 0D pat, j);.. }.
024A30: 0A 20 20 72 65 74 75 72 6E 20 6F 66 66 73 65 74 . return offset
024A40: 3B 0D 0A 20 20 7D 0D 0A 0D 0A 2F 2A 0D 0A 2A 2A ;.. }..../*..**
024A50: 20 64 6F 64 61 73 68 20 2D 2D 20 65 78 70 61 6E dodash -- expan
024A60: 64 20 61 72 72 61 79 5B 69 2D 31 5D 20 2D 20 61 d array[i-1] - a
024A70: 72 72 61 79 5B 69 2B 31 5D 20 69 6E 74 6F 20 73 rray[i+1] into s
024A80: 65 74 5B 6A 5D 2E 2E 2E 0D 0A 2A 2F 0D 0A 64 6F et[j].....*/..do
024A90: 64 61 73 68 28 76 61 6C 69 64 2C 20 61 72 72 61 dash(valid, arra
024AA0: 79 2C 20 69 2C 20 73 65 74 2C 20 6A 2C 20 6D 61 y, i, set, j, ma
024AB0: 78 73 65 74 29 0D 0A 20 20 63 68 61 72 20 76 61 xset).. char va
024AC0: 6C 69 64 5B 5D 2C 20 73 65 74 5B 5D 2C 20 61 72 lid[], set[], ar
024AD0: 72 61 79 5B 5D 3B 20 69 6E 74 20 2A 69 2C 20 2A ray[]; int *i, *
024AE0: 6A 2C 20 6D 61 78 73 65 74 3B 20 7B 0D 0A 20 20 j, maxset; {..
024AF0: 69 6E 74 20 6B 2C 20 6C 69 6D 69 74 3B 0D 0A 20 int k, limit;..
024B00: 20 2A 69 20 3D 20 31 20 2B 20 2A 69 3B 0D 0A 20 *i = 1 + *i;..
024B10: 20 2A 6A 20 3D 20 2D 31 20 2B 20 2A 6A 3B 0D 0A *j = -1 + *j;..
024B20: 20 20 6C 69 6D 69 74 3D 69 6E 64 65 78 28 76 61 limit=index(va
024B30: 6C 69 64 2C 20 65 73 63 28 61 72 72 61 79 2C 20 lid, esc(array,
024B40: 69 29 29 3B 0D 0A 20 20 6B 3D 69 6E 64 65 78 28 i));.. k=index(
024B50: 76 61 6C 69 64 2C 20 73 65 74 5B 2A 6A 5D 29 3B valid, set[*j]);
024B60: 0D 0A 20 20 77 68 69 6C 65 28 6B 20 3C 3D 20 6C .. while(k <= l
024B70: 69 6D 69 74 29 0D 0A 20 20 20 20 61 64 64 73 65 imit).. addse
024B80: 74 28 76 61 6C 69 64 5B 6B 2B 2B 5D 2C 20 73 65 t(valid[k++], se
024B90: 74 2C 20 6A 2C 20 6D 61 78 73 65 74 29 3B 0D 0A t, j, maxset);..
024BA0: 20 20 7D 0D 0A 0D 0A 2F 2A 0D 0A 2A 2A 20 65 73 }..../*..** es
024BB0: 63 20 2D 2D 20 6D 61 70 20 61 72 72 61 79 5B 69 c -- map array[i
024BC0: 5D 20 69 6E 74 6F 20 65 73 63 61 70 65 64 20 63 ] into escaped c
024BD0: 68 61 72 20 69 66 20 61 70 70 72 6F 70 72 69 61 har if appropria
024BE0: 74 65 0D 0A 2A 2F 0D 0A 65 73 63 28 61 72 72 61 te..*/..esc(arra
024BF0: 79 2C 20 69 29 20 63 68 61 72 20 61 72 72 61 79 y, i) char array
024C00: 0D 0A 2F 2A 0D 0A 2A 2A 20 70 61 67 65 2E 63 20 ../*..** page.c
024C10: 2D 2D 20 74 65 6C 6C 20 73 74 64 65 72 72 20 6F -- tell stderr o
024C20: 66 20 6E 65 77 20 70 61 67 65 20 61 6E 64 20 70 f new page and p
024C30: 6F 73 73 69 62 6C 79 20 70 61 75 73 65 0D 0A 2A ossibly pause..*
024C40: 2F 0D 0A 70 61 67 65 28 70 61 67 65 6E 6F 2C 20 /..page(pageno,
024C50: 70 61 75 73 65 2C 20 66 64 29 20 69 6E 74 20 70 pause, fd) int p
024C60: 61 67 65 6E 6F 2C 20 70 61 75 73 65 2C 20 66 64 ageno, pause, fd
024C70: 3B 20 7B 0D 0A 20 20 69 6E 74 20 69 3B 0D 0A 20 ; {.. int i;..
024C80: 20 63 68 61 72 20 73 74 72 5B 36 5D 3B 0D 0A 20 char str[6];..
024C90: 20 73 74 72 5B 35 5D 3D 4E 55 4C 4C 3B 0D 0A 20 str[5]=NULL;..
024CA0: 20 69 74 6F 64 28 70 61 67 65 6E 6F 2C 20 73 74 itod(pageno, st
024CB0: 72 2C 20 35 29 3B 0D 0A 20 20 69 3D 30 3B 0D 0A r, 5);.. i=0;..
024CC0: 20 20 77 68 69 6C 65 28 73 74 72 5B 69 5D 3D 3D while(str[i]==
024CD0: 27 20 27 29 20 2B 2B 69 3B 0D 0A 20 20 69 66 28 ' ') ++i;.. if(
024CE0: 28 70 61 75 73 65 3D 3D 59 45 53 29 26 26 28 70 (pause==YES)&&(p
024CF0: 61 67 65 6E 6F 3E 31 29 26 26 69 73 61 74 74 79 ageno>1)&&isatty
024D00: 28 66 64 29 29 20 7B 0D 0A 20 20 20 20 66 70 75 (fd)) {.. fpu
024D10: 74 73 28 22 5C 37 73 65 74 20 70 61 67 65 20 22 ts("\7set page "
024D20: 2C 20 73 74 64 65 72 72 29 3B 0D 0A 20 20 20 20 , stderr);..
024D30: 66 70 75 74 73 28 73 74 72 2B 69 2C 20 73 74 64 fputs(str+i, std
024D40: 65 72 72 29 3B 0D 0A 20 20 20 20 66 70 75 74 73 err);.. fputs
024D50: 28 22 2E 2E 2E 20 22 2C 20 73 74 64 65 72 72 29 ("... ", stderr)
024D60: 3B 0D 0A 20 20 20 20 72 65 74 75 72 6E 20 66 67 ;.. return fg
024D70: 65 74 63 28 73 74 64 65 72 72 29 3B 0D 0A 20 20 etc(stderr);..
024D80: 20 20 7D 0D 0A 20 20 65 6C 73 65 20 7B 0D 0A 20 }.. else {..
024D90: 20 20 20 66 70 75 74 73 28 22 70 61 67 65 20 22 fputs("page "
024DA0: 2C 20 73 74 64 65 72 72 29 3B 0D 0A 20 20 20 20 , stderr);..
024DB0: 66 70 75 74 73 28 73 74 72 2B 69 2C 20 73 74 64 fputs(str+i, std
024DC0: 65 72 72 29 3B 0D 0A 20 20 20 20 66 70 75 74 63 err);.. fputc
024DD0: 28 27 5C 6E 27 2C 20 73 74 64 65 72 72 29 3B 0D ('\n', stderr);.
024DE0: 0A 20 20 20 20 72 65 74 75 72 6E 20 4E 55 4C 4C . return NULL
024DF0: 3B 0D 0A 20 20 20 20 7D 0D 0A 20 20 7D 0D 0A 1A ;.. }.. }...
024E00: 54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 00 00 00 Track-Info......
024E10: 1F 00 01 00 02 09 52 E5 1F 00 41 02 00 00 00 02 ......R...A.....
024E20: 1F 00 46 02 00 00 00 02 1F 00 42 02 00 00 00 02 ..F.......B.....
024E30: 1F 00 47 02 00 00 00 02 1F 00 43 02 00 00 00 02 ..G.......C.....
024E40: 1F 00 48 02 00 00 00 02 1F 00 44 02 00 00 00 02 ..H.......D.....
024E50: 1F 00 49 02 00 00 00 02 1F 00 45 02 00 00 00 02 ..I.......E.....
024E60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
024E70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
024E80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
024E90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
024EA0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
024EB0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
024EC0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
024ED0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
024EE0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
024EF0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
024F00: 5B 5D 3B 20 69 6E 74 20 2A 69 3B 20 7B 0D 0A 20 []; int *i; {..
024F10: 20 69 66 28 61 72 72 61 79 5B 2A 69 5D 21 3D 45 if(array[*i]!=E
024F20: 53 43 41 50 45 29 20 72 65 74 75 72 6E 20 61 72 SCAPE) return ar
024F30: 72 61 79 5B 2A 69 5D 3B 0D 0A 20 20 65 6C 73 65 ray[*i];.. else
024F40: 20 69 66 28 61 72 72 61 79 5B 20 2A 69 20 2B 20 if(array[ *i +
024F50: 31 5D 3D 3D 4E 55 4C 4C 29 20 20 20 20 2F 2A 20 1]==NULL) /*
024F60: 65 73 63 20 6E 6F 74 20 73 70 65 63 69 61 6C 20 esc not special
024F70: 61 74 20 65 6E 64 20 2A 2F 0D 0A 20 20 20 20 72 at end */.. r
024F80: 65 74 75 72 6E 20 45 53 43 41 50 45 3B 0D 0A 20 eturn ESCAPE;..
024F90: 20 65 6C 73 65 20 7B 0D 0A 20 20 20 20 2A 69 3D else {.. *i=
024FA0: 20 2A 69 20 2B 20 31 3B 0D 0A 20 20 20 20 69 66 *i + 1;.. if
024FB0: 28 61 72 72 61 79 5B 2A 69 5D 3D 3D 27 6E 27 29 (array[*i]=='n')
024FC0: 20 72 65 74 75 72 6E 20 27 5C 6E 27 3B 0D 0A 20 return '\n';..
024FD0: 20 20 20 65 6C 73 65 20 69 66 28 61 72 72 61 79 else if(array
024FE0: 5B 2A 69 5D 3D 3D 27 74 27 29 20 72 65 74 75 72 [*i]=='t') retur
024FF0: 6E 20 27 5C 74 27 3B 0D 0A 20 20 20 20 65 6C 73 n '\t';.. els
025000: 65 20 69 66 28 61 72 72 61 79 5B 2A 69 5D 3D 3D e if(array[*i]==
025010: 27 62 27 29 20 72 65 74 75 72 6E 20 27 5C 62 27 'b') return '\b'
025020: 3B 0D 0A 20 20 20 20 65 6C 73 65 20 69 66 28 61 ;.. else if(a
025030: 72 72 61 79 5B 2A 69 5D 3D 3D 27 73 27 29 20 72 rray[*i]=='s') r
025040: 65 74 75 72 6E 20 27 20 27 3B 0D 0A 20 20 20 20 eturn ' ';..
025050: 65 6C 73 65 20 72 65 74 75 72 6E 20 61 72 72 61 else return arra
025060: 79 5B 2A 69 5D 3B 0D 0A 20 20 20 20 7D 0D 0A 20 y[*i];.. }..
025070: 20 7D 0D 0A 0D 0A 2F 2A 0D 0A 2A 2A 20 66 69 6C }..../*..** fil
025080: 73 65 74 20 2D 2D 20 65 78 70 61 6E 64 20 73 65 set -- expand se
025090: 74 20 69 6E 20 61 72 72 61 79 20 69 6E 74 6F 20 t in array into
0250A0: 73 65 74 20 73 74 6F 70 70 69 6E 67 20 61 74 20 set stopping at
0250B0: 64 65 6C 69 6D 0D 0A 2A 2F 0D 0A 66 69 6C 73 65 delim..*/..filse
0250C0: 74 28 64 65 6C 69 6D 2C 20 61 72 72 61 79 2C 20 t(delim, array,
0250D0: 69 2C 20 73 65 74 2C 20 6A 2C 20 6D 61 78 73 65 i, set, j, maxse
0250E0: 74 29 0D 0A 20 20 63 68 61 72 20 64 65 6C 69 6D t).. char delim
0250F0: 2C 20 61 72 72 61 79 5B 5D 2C 20 73 65 74 5B 5D , array[], set[]
025100: 20 61 64 64 73 65 74 28 45 4F 4C 2C 20 70 61 74 addset(EOL, pat
025110: 2C 20 26 6A 2C 20 4D 41 58 50 41 54 29 3B 0D 0A , &j, MAXPAT);..
025120: 20 20 20 20 65 6C 73 65 20 69 66 28 61 72 67 5B else if(arg[
025130: 69 5D 3D 3D 43 43 4C 29 20 7B 0D 0A 20 20 20 20 i]==CCL) {..
025140: 20 20 69 66 28 67 65 74 63 63 6C 28 61 72 67 2C if(getccl(arg,
025150: 20 26 69 2C 20 70 61 74 2C 20 26 6A 29 3D 3D 45 &i, pat, &j)==E
025160: 52 52 29 20 62 72 65 61 6B 3B 0D 0A 20 20 20 20 RR) break;..
025170: 20 20 7D 0D 0A 20 20 20 20 65 6C 73 65 20 69 66 }.. else if
025180: 28 28 61 72 67 5B 69 5D 3D 3D 43 4C 4F 53 55 52 ((arg[i]==CLOSUR
025190: 45 29 26 28 69 3E 66 72 6F 6D 29 29 20 7B 0D 0A E)&(i>from)) {..
0251A0: 20 20 20 20 20 20 6C 6A 3D 6C 61 73 74 6A 3B 0D lj=lastj;.
0251B0: 0A 20 20 20 20 20 20 69 66 28 28 70 61 74 5B 6C . if((pat[l
0251C0: 6A 5D 3D 3D 42 4F 4C 29 7C 28 70 61 74 5B 6C 6A j]==BOL)|(pat[lj
0251D0: 5D 3D 3D 45 4F 4C 29 7C 28 70 61 74 5B 6C 6A 5D ]==EOL)|(pat[lj]
0251E0: 3D 3D 43 4C 4F 53 55 52 45 29 29 20 62 72 65 61 ==CLOSURE)) brea
0251F0: 6B 3B 0D 0A 20 20 20 20 20 20 6C 61 73 74 63 6C k;.. lastcl
025200: 3D 73 74 63 6C 6F 73 28 70 61 74 2C 20 26 6A 2C =stclos(pat, &j,
025210: 20 26 6C 61 73 74 6A 2C 20 6C 61 73 74 63 6C 29 &lastj, lastcl)
025220: 3B 0D 0A 20 20 20 20 20 20 7D 0D 0A 20 20 20 20 ;.. }..
025230: 65 6C 73 65 20 7B 0D 0A 20 20 20 20 20 20 61 64 else {.. ad
025240: 64 73 65 74 28 43 48 41 52 2C 20 70 61 74 2C 20 dset(CHAR, pat,
025250: 26 6A 2C 20 4D 41 58 50 41 54 29 3B 0D 0A 20 20 &j, MAXPAT);..
025260: 20 20 20 20 61 64 64 73 65 74 28 65 73 63 28 61 addset(esc(a
025270: 72 67 2C 20 26 69 29 2C 20 70 61 74 2C 20 26 6A rg, &i), pat, &j
025280: 2C 20 4D 41 58 50 41 54 29 3B 0D 0A 20 20 20 20 , MAXPAT);..
025290: 20 20 7D 0D 0A 20 20 20 20 6C 61 73 74 6A 3D 6C }.. lastj=l
0252A0: 6A 3B 0D 0A 20 20 20 20 2B 2B 69 3B 0D 0A 20 20 j;.. ++i;..
0252B0: 20 20 7D 0D 0A 20 20 69 66 28 28 61 72 67 5B 69 }.. if((arg[i
0252C0: 5D 21 3D 64 65 6C 69 6D 29 7C 28 61 64 64 73 65 ]!=delim)|(addse
0252D0: 74 28 4E 55 4C 4C 2C 20 70 61 74 2C 20 26 6A 2C t(NULL, pat, &j,
0252E0: 20 4D 41 58 50 41 54 29 3D 3D 4E 4F 29 29 20 72 MAXPAT)==NO)) r
0252F0: 65 74 75 72 6E 20 45 52 52 3B 0D 0A 20 20 72 65 eturn ERR;.. re
025300: 3B 20 69 6E 74 20 2A 69 2C 20 2A 6A 2C 20 6D 61 ; int *i, *j, ma
025310: 78 73 65 74 3B 20 7B 0D 0A 20 20 63 68 61 72 20 xset; {.. char
025320: 2A 64 69 67 69 74 73 2C 20 2A 6C 6F 77 61 6C 66 *digits, *lowalf
025330: 2C 20 2A 75 70 61 6C 66 3B 0D 0A 20 20 64 69 67 , *upalf;.. dig
025340: 69 74 73 3D 22 30 31 32 33 34 35 36 37 38 39 22 its="0123456789"
025350: 3B 0D 0A 20 20 6C 6F 77 61 6C 66 3D 22 61 62 63 ;.. lowalf="abc
025360: 64 65 66 67 68 69 6A 6B 6C 6D 6E 6F 70 71 72 73 defghijklmnopqrs
025370: 74 75 76 77 78 79 7A 22 3B 0D 0A 20 20 75 70 61 tuvwxyz";.. upa
025380: 6C 66 3D 22 41 42 43 44 45 46 47 48 49 4A 4B 4C lf="ABCDEFGHIJKL
025390: 4D 4E 4F 50 51 52 53 54 55 56 57 58 59 5A 22 3B MNOPQRSTUVWXYZ";
0253A0: 0D 0A 20 20 77 68 69 6C 65 28 28 61 72 72 61 79 .. while((array
0253B0: 5B 2A 69 5D 21 3D 64 65 6C 69 6D 29 26 28 61 72 [*i]!=delim)&(ar
0253C0: 72 61 79 5B 2A 69 5D 21 3D 4E 55 4C 4C 29 29 20 ray[*i]!=NULL))
0253D0: 7B 0D 0A 20 20 20 20 69 66 28 61 72 72 61 79 5B {.. if(array[
0253E0: 2A 69 5D 3D 3D 45 53 43 41 50 45 29 0D 0A 20 20 *i]==ESCAPE)..
0253F0: 20 20 20 20 61 64 64 73 65 74 28 65 73 63 28 61 addset(esc(a
025400: 72 72 61 79 2C 20 69 29 2C 20 73 65 74 2C 20 6A rray, i), set, j
025410: 2C 20 6D 61 78 73 65 74 29 3B 0D 0A 20 20 20 20 , maxset);..
025420: 65 6C 73 65 20 69 66 28 61 72 72 61 79 5B 2A 69 else if(array[*i
025430: 5D 21 3D 27 2D 27 29 0D 0A 20 20 20 20 20 20 61 ]!='-').. a
025440: 64 64 73 65 74 28 61 72 72 61 79 5B 2A 69 5D 2C ddset(array[*i],
025450: 20 73 65 74 2C 20 6A 2C 20 6D 61 78 73 65 74 29 set, j, maxset)
025460: 3B 0D 0A 20 20 20 20 65 6C 73 65 20 69 66 28 28 ;.. else if((
025470: 6A 20 3C 3D 20 30 29 7C 28 61 72 72 61 79 5B 2A j <= 0)|(array[*
025480: 69 2B 31 5D 3D 3D 4E 55 4C 4C 29 29 20 20 20 20 i+1]==NULL))
025490: 2F 2A 20 6C 69 74 65 72 61 6C 20 2D 20 2A 2F 0D /* literal - */.
0254A0: 0A 20 20 20 20 20 20 61 64 64 73 65 74 28 27 2D . addset('-
0254B0: 27 2C 20 73 65 74 2C 20 6A 2C 20 6D 61 78 73 65 ', set, j, maxse
0254C0: 74 29 3B 0D 0A 20 20 20 20 65 6C 73 65 20 69 66 t);.. else if
0254D0: 28 69 6E 64 65 78 28 64 69 67 69 74 73 2C 20 73 (index(digits, s
0254E0: 65 74 5B 2A 6A 20 2D 31 5D 29 20 3E 20 2D 31 29 et[*j -1]) > -1)
0254F0: 0D 0A 20 20 20 20 20 20 64 6F 64 61 73 68 28 64 .. dodash(d
025500: 74 75 72 6E 20 69 3B 0D 0A 20 20 7D 0D 0A 0D 0A turn i;.. }....
025510: 2F 2A 0D 0A 2A 2A 20 6D 61 74 63 68 20 2D 2D 20 /*..** match --
025520: 66 69 6E 64 20 6D 61 74 63 68 20 61 6E 79 77 68 find match anywh
025530: 65 72 65 20 69 6E 20 6C 69 6E 65 0D 0A 2A 2F 0D ere in line..*/.
025540: 0A 6D 61 74 63 68 28 6C 69 6E 65 2C 20 70 61 74 .match(line, pat
025550: 74 65 72 6E 29 20 63 68 61 72 20 6C 69 6E 65 5B tern) char line[
025560: 5D 2C 20 70 61 74 74 65 72 6E 5B 5D 3B 20 7B 0D ], pattern[]; {.
025570: 0A 20 20 69 6E 74 20 69 3B 0D 0A 20 20 69 3D 30 . int i;.. i=0
025580: 3B 0D 0A 20 20 77 68 69 6C 65 28 59 45 53 29 20 ;.. while(YES)
025590: 7B 0D 0A 20 20 20 20 69 66 28 61 6D 61 74 63 68 {.. if(amatch
0255A0: 28 6C 69 6E 65 2C 20 69 2C 20 70 61 74 74 65 72 (line, i, patter
0255B0: 6E 29 20 3E 3D 20 30 29 20 72 65 74 75 72 6E 20 n) >= 0) return
0255C0: 59 45 53 3B 0D 0A 20 20 20 20 69 66 28 6C 69 6E YES;.. if(lin
0255D0: 65 5B 69 2B 2B 5D 3D 3D 4E 55 4C 4C 29 20 72 65 e[i++]==NULL) re
0255E0: 74 75 72 6E 20 4E 4F 3B 0D 0A 20 20 20 20 7D 0D turn NO;.. }.
0255F0: 0A 20 20 7D 0D 0A 0D 0A 2F 2A 0D 0A 2A 2A 20 6F . }..../*..** o
025600: 6D 61 74 63 68 20 2D 2D 20 74 72 79 20 74 6F 20 match -- try to
025610: 6D 61 74 63 68 20 61 20 73 69 6E 67 6C 65 20 70 match a single p
025620: 61 74 74 65 72 6E 20 61 74 20 70 61 74 5B 6A 5D attern at pat[j]
025630: 0D 0A 2A 2F 0D 0A 6F 6D 61 74 63 68 28 6C 69 6E ..*/..omatch(lin
025640: 2C 20 69 2C 20 70 61 74 2C 20 6A 29 20 63 68 61 , i, pat, j) cha
025650: 72 20 6C 69 6E 5B 5D 2C 20 70 61 74 5B 5D 3B 20 r lin[], pat[];
025660: 69 6E 74 20 2A 69 2C 20 6A 3B 20 7B 0D 0A 20 20 int *i, j; {..
025670: 69 6E 74 20 62 75 6D 70 3B 0D 0A 20 20 62 75 6D int bump;.. bum
025680: 70 20 3D 20 2D 31 3B 0D 0A 20 20 69 66 28 70 61 p = -1;.. if(pa
025690: 74 5B 6A 5D 3D 3D 42 4F 4C 29 20 7B 0D 0A 20 20 t[j]==BOL) {..
0256A0: 20 20 69 66 28 2A 69 3D 3D 30 29 20 62 75 6D 70 if(*i==0) bump
0256B0: 3D 30 3B 0D 0A 20 20 20 20 7D 0D 0A 20 20 65 6C =0;.. }.. el
0256C0: 73 65 20 69 66 28 70 61 74 5B 6A 5D 3D 3D 45 4F se if(pat[j]==EO
0256D0: 4C 29 20 7B 0D 0A 20 20 20 20 69 66 28 6C 69 6E L) {.. if(lin
0256E0: 5B 2A 69 5D 3D 3D 4E 55 4C 4C 29 20 62 75 6D 70 [*i]==NULL) bump
0256F0: 3D 30 3B 0D 0A 20 20 20 20 7D 0D 0A 20 20 65 6C =0;.. }.. el
025700: 69 67 69 74 73 2C 20 61 72 72 61 79 2C 20 69 2C igits, array, i,
025710: 20 73 65 74 2C 20 6A 2C 20 6D 61 78 73 65 74 29 set, j, maxset)
025720: 3B 0D 0A 20 20 20 20 65 6C 73 65 20 69 66 28 69 ;.. else if(i
025730: 6E 64 65 78 28 6C 6F 77 61 6C 66 2C 20 73 65 74 ndex(lowalf, set
025740: 5B 2A 6A 20 2D 31 5D 29 20 3E 20 2D 31 29 0D 0A [*j -1]) > -1)..
025750: 20 20 20 20 20 20 64 6F 64 61 73 68 28 6C 6F 77 dodash(low
025760: 61 6C 66 2C 20 61 72 72 61 79 2C 20 69 2C 20 73 alf, array, i, s
025770: 65 74 2C 20 6A 2C 20 6D 61 78 73 65 74 29 3B 0D et, j, maxset);.
025780: 0A 20 20 20 20 65 6C 73 65 20 69 66 28 69 6E 64 . else if(ind
025790: 65 78 28 75 70 61 6C 66 2C 20 73 65 74 5B 2A 6A ex(upalf, set[*j
0257A0: 20 2D 31 5D 29 20 3E 20 2D 31 29 0D 0A 20 20 20 -1]) > -1)..
0257B0: 20 20 20 64 6F 64 61 73 68 28 75 70 61 6C 66 2C dodash(upalf,
0257C0: 20 61 72 72 61 79 2C 20 69 2C 20 73 65 74 2C 20 array, i, set,
0257D0: 6A 2C 20 6D 61 78 73 65 74 29 3B 0D 0A 20 20 20 j, maxset);..
0257E0: 20 65 6C 73 65 20 61 64 64 73 65 74 28 27 2D 27 else addset('-'
0257F0: 2C 20 73 65 74 2C 20 6A 2C 20 6D 61 78 73 65 74 , set, j, maxset
025800: 29 3B 0D 0A 20 20 20 20 2A 69 20 3D 20 2A 69 20 );.. *i = *i
025810: 2B 20 31 3B 0D 0A 20 20 20 20 7D 0D 0A 20 20 7D + 1;.. }.. }
025820: 0D 0A 0D 0A 2F 2A 0D 0A 2A 2A 20 67 65 74 63 63 ..../*..** getcc
025830: 6C 20 2D 2D 20 65 78 70 61 6E 64 20 63 68 61 72 l -- expand char
025840: 20 63 6C 61 73 73 20 61 74 20 61 72 67 5B 69 5D class at arg[i]
025850: 20 69 6E 74 6F 20 70 61 74 5B 6A 5D 0D 0A 2A 2F into pat[j]..*/
025860: 0D 0A 67 65 74 63 63 6C 28 61 72 67 2C 20 69 2C ..getccl(arg, i,
025870: 20 70 61 74 2C 20 6A 29 20 63 68 61 72 20 61 72 pat, j) char ar
025880: 67 5B 5D 2C 20 70 61 74 5B 5D 3B 20 69 6E 74 20 g[], pat[]; int
025890: 2A 69 2C 20 2A 6A 3B 20 7B 0D 0A 20 20 69 6E 74 *i, *j; {.. int
0258A0: 20 6A 73 74 61 72 74 3B 0D 0A 20 20 2A 69 20 3D jstart;.. *i =
0258B0: 20 2A 69 20 2B 20 31 3B 20 20 2F 2A 2A 2A 2A 20 *i + 1; /****
0258C0: 73 6B 69 70 20 6F 76 65 72 20 27 5B 27 20 69 6E skip over '[' in
0258D0: 20 61 72 67 20 2A 2A 2A 2A 2F 0D 0A 20 20 69 66 arg ****/.. if
0258E0: 28 61 72 67 5B 2A 69 5D 3D 3D 4E 4F 54 29 20 7B (arg[*i]==NOT) {
0258F0: 0D 0A 20 20 20 20 61 64 64 73 65 74 28 4E 43 43 .. addset(NCC
025900: 73 65 20 69 66 28 6C 69 6E 5B 2A 69 5D 3D 3D 4E se if(lin[*i]==N
025910: 55 4C 4C 29 20 72 65 74 75 72 6E 20 4E 4F 3B 0D ULL) return NO;.
025920: 0A 20 20 65 6C 73 65 20 69 66 28 70 61 74 5B 6A . else if(pat[j
025930: 5D 3D 3D 43 48 41 52 29 20 7B 0D 0A 20 20 20 20 ]==CHAR) {..
025940: 69 66 28 6C 69 6E 5B 2A 69 5D 3D 3D 70 61 74 5B if(lin[*i]==pat[
025950: 6A 2B 31 5D 29 20 62 75 6D 70 3D 31 3B 0D 0A 20 j+1]) bump=1;..
025960: 20 20 20 7D 0D 0A 20 20 65 6C 73 65 20 69 66 28 }.. else if(
025970: 70 61 74 5B 6A 5D 3D 3D 41 4E 59 29 20 62 75 6D pat[j]==ANY) bum
025980: 70 3D 31 3B 0D 0A 20 20 65 6C 73 65 20 69 66 28 p=1;.. else if(
025990: 70 61 74 5B 6A 5D 3D 3D 43 43 4C 29 20 7B 0D 0A pat[j]==CCL) {..
0259A0: 20 20 20 20 69 66 28 6C 6F 63 61 74 65 28 6C 69 if(locate(li
0259B0: 6E 5B 2A 69 5D 2C 20 70 61 74 2C 20 6A 2B 31 29 n[*i], pat, j+1)
0259C0: 3D 3D 59 45 53 29 20 62 75 6D 70 3D 31 3B 0D 0A ==YES) bump=1;..
0259D0: 20 20 20 20 7D 0D 0A 20 20 65 6C 73 65 20 69 66 }.. else if
0259E0: 28 70 61 74 5B 6A 5D 3D 3D 4E 43 43 4C 29 20 7B (pat[j]==NCCL) {
0259F0: 0D 0A 20 20 20 20 69 66 28 6C 6F 63 61 74 65 28 .. if(locate(
025A00: 6C 69 6E 5B 2A 69 5D 2C 20 70 61 74 2C 20 6A 2B lin[*i], pat, j+
025A10: 31 29 3D 3D 4E 4F 29 20 62 75 6D 70 3D 31 3B 0D 1)==NO) bump=1;.
025A20: 0A 20 20 20 20 7D 0D 0A 20 20 65 6C 73 65 20 65 . }.. else e
025A30: 72 72 6F 72 28 22 69 6E 20 6F 6D 61 74 63 68 3A rror("in omatch:
025A40: 20 63 61 6E 27 74 20 68 61 70 70 65 6E 5C 6E 22 can't happen\n"
025A50: 29 3B 0D 0A 20 20 69 66 28 62 75 6D 70 20 3E 3D );.. if(bump >=
025A60: 20 30 29 20 7B 0D 0A 20 20 20 20 2A 69 20 3D 20 0) {.. *i =
025A70: 2A 69 20 2B 20 62 75 6D 70 3B 0D 0A 20 20 20 20 *i + bump;..
025A80: 72 65 74 75 72 6E 20 59 45 53 3B 0D 0A 20 20 20 return YES;..
025A90: 20 7D 0D 0A 20 20 72 65 74 75 72 6E 20 4E 4F 3B }.. return NO;
025AA0: 0D 0A 20 20 7D 0D 0A 0D 0A 2F 2A 0D 0A 2A 2A 20 .. }..../*..**
025AB0: 70 61 74 73 69 7A 20 2D 2D 20 72 65 74 75 72 6E patsiz -- return
025AC0: 73 20 73 69 7A 65 20 6F 66 20 65 6E 74 72 79 20 s size of entry
025AD0: 61 74 20 70 61 74 5B 6E 5D 0D 0A 2A 2F 0D 0A 70 at pat[n]..*/..p
025AE0: 61 74 73 69 7A 28 70 61 74 2C 20 6E 29 20 63 68 atsiz(pat, n) ch
025AF0: 61 72 20 2A 70 61 74 3B 20 69 6E 74 20 6E 3B 20 ar *pat; int n;
025B00: 4C 2C 20 70 61 74 2C 20 6A 2C 20 4D 41 58 50 41 L, pat, j, MAXPA
025B10: 54 29 3B 0D 0A 20 20 20 20 2A 69 20 3D 20 2A 69 T);.. *i = *i
025B20: 20 2B 20 31 3B 0D 0A 20 20 20 20 7D 0D 0A 20 20 + 1;.. }..
025B30: 65 6C 73 65 20 61 64 64 73 65 74 28 43 43 4C 2C else addset(CCL,
025B40: 20 70 61 74 2C 20 6A 2C 20 4D 41 58 50 41 54 29 pat, j, MAXPAT)
025B50: 3B 0D 0A 20 20 6A 73 74 61 72 74 20 3D 20 2A 6A ;.. jstart = *j
025B60: 3B 0D 0A 20 20 61 64 64 73 65 74 28 30 2C 20 70 ;.. addset(0, p
025B70: 61 74 2C 20 6A 2C 20 4D 41 58 50 41 54 29 3B 20 at, j, MAXPAT);
025B80: 20 2F 2A 2A 2A 2A 20 6C 65 61 76 65 20 72 6F 6F /**** leave roo
025B90: 6D 20 66 6F 72 20 63 6F 75 6E 74 20 2A 2A 2A 2A m for count ****
025BA0: 2F 0D 0A 20 20 66 69 6C 73 65 74 28 43 43 4C 45 /.. filset(CCLE
025BB0: 4E 44 2C 20 61 72 67 2C 20 69 2C 20 70 61 74 2C ND, arg, i, pat,
025BC0: 20 6A 2C 20 4D 41 58 50 41 54 29 3B 0D 0A 20 20 j, MAXPAT);..
025BD0: 70 61 74 5B 6A 73 74 61 72 74 5D 20 3D 20 2A 6A pat[jstart] = *j
025BE0: 20 2D 20 6A 73 74 61 72 74 20 2D 20 31 3B 0D 0A - jstart - 1;..
025BF0: 20 20 69 66 28 61 72 67 5B 2A 69 5D 3D 3D 43 43 if(arg[*i]==CC
025C00: 4C 45 4E 44 29 20 72 65 74 75 72 6E 20 59 45 53 LEND) return YES
025C10: 3B 0D 0A 20 20 72 65 74 75 72 6E 20 45 52 52 3B ;.. return ERR;
025C20: 0D 0A 20 20 7D 0D 0A 0D 0A 2F 2A 0D 0A 2A 2A 20 .. }..../*..**
025C30: 6C 6F 63 61 74 65 20 2D 2D 20 6C 6F 6F 6B 20 66 locate -- look f
025C40: 6F 72 20 63 20 69 6E 20 63 68 61 72 20 63 6C 61 or c in char cla
025C50: 73 73 20 61 74 20 70 61 74 5B 6F 66 66 73 65 74 ss at pat[offset
025C60: 5D 0D 0A 2A 2F 0D 0A 6C 6F 63 61 74 65 28 63 2C ]..*/..locate(c,
025C70: 20 70 61 74 2C 20 6F 66 66 73 65 74 29 20 63 68 pat, offset) ch
025C80: 61 72 20 63 2C 20 70 61 74 5B 5D 3B 20 69 6E 74 ar c, pat[]; int
025C90: 20 6F 66 66 73 65 74 3B 20 7B 0D 0A 20 20 69 6E offset; {.. in
025CA0: 74 20 69 3B 0D 0A 20 20 2F 2A 0D 0A 20 20 2A 2A t i;.. /*.. **
025CB0: 20 73 69 7A 65 20 6F 66 20 63 6C 61 73 73 20 69 size of class i
025CC0: 73 20 61 74 20 70 61 74 5B 6F 66 66 73 65 74 5D s at pat[offset]
025CD0: 2C 20 63 68 61 72 61 63 74 65 72 73 20 66 6F 6C , characters fol
025CE0: 6C 6F 77 0D 0A 20 20 2A 2F 0D 0A 20 20 69 3D 6F low.. */.. i=o
025CF0: 66 66 73 65 74 2B 70 61 74 5B 6F 66 66 73 65 74 ffset+pat[offset
025D00: 7B 0D 0A 20 20 70 61 74 3D 70 61 74 2B 6E 3B 0D {.. pat=pat+n;.
025D10: 0A 20 20 69 66 28 2A 70 61 74 3D 3D 43 48 41 52 . if(*pat==CHAR
025D20: 29 20 72 65 74 75 72 6E 20 32 3B 0D 0A 20 20 65 ) return 2;.. e
025D30: 6C 73 65 20 69 66 28 28 2A 70 61 74 3D 3D 42 4F lse if((*pat==BO
025D40: 4C 29 7C 28 2A 70 61 74 3D 3D 45 4F 4C 29 7C 28 L)|(*pat==EOL)|(
025D50: 2A 70 61 74 3D 3D 41 4E 59 29 29 20 72 65 74 75 *pat==ANY)) retu
025D60: 72 6E 20 31 3B 0D 0A 20 20 65 6C 73 65 20 69 66 rn 1;.. else if
025D70: 28 28 2A 70 61 74 3D 3D 43 43 4C 29 7C 28 2A 70 ((*pat==CCL)|(*p
025D80: 61 74 3D 3D 4E 43 43 4C 29 29 20 72 65 74 75 72 at==NCCL)) retur
025D90: 6E 20 28 2A 28 2B 2B 70 61 74 29 2B 32 29 3B 0D n (*(++pat)+2);.
025DA0: 0A 20 20 65 6C 73 65 20 69 66 28 2A 70 61 74 3D . else if(*pat=
025DB0: 3D 43 4C 4F 53 55 52 45 29 20 72 65 74 75 72 6E =CLOSURE) return
025DC0: 20 43 4C 4F 53 49 5A 45 3B 0D 0A 20 20 65 6C 73 CLOSIZE;.. els
025DD0: 65 20 65 72 72 6F 72 28 22 69 6E 20 70 61 74 73 e error("in pats
025DE0: 69 7A 3A 20 63 61 6E 27 74 20 68 61 70 70 65 6E iz: can't happen
025DF0: 5C 6E 22 29 3B 0D 0A 20 20 7D 0D 0A 0D 0A 2F 2A \n");.. }..../*
025E00: 0D 0A 2A 2A 20 73 74 63 6C 6F 73 20 2D 2D 20 69 ..** stclos -- i
025E10: 6E 73 65 72 74 20 63 6C 6F 73 75 72 65 20 65 6E nsert closure en
025E20: 74 72 79 20 61 74 20 70 61 74 5B 6A 5D 0D 0A 2A try at pat[j]..*
025E30: 2F 0D 0A 73 74 63 6C 6F 73 28 70 61 74 2C 20 6A /..stclos(pat, j
025E40: 2C 20 6C 61 73 74 6A 2C 20 6C 61 73 74 63 6C 29 , lastj, lastcl)
025E50: 20 63 68 61 72 20 70 61 74 5B 5D 3B 20 69 6E 74 char pat[]; int
025E60: 20 2A 6A 2C 20 2A 6C 61 73 74 6A 2C 20 6C 61 73 *j, *lastj, las
025E70: 74 63 6C 3B 20 7B 0D 0A 20 20 69 6E 74 20 6A 70 tcl; {.. int jp
025E80: 2C 20 6A 74 3B 0D 0A 20 20 6A 70 20 3D 20 2A 6A , jt;.. jp = *j
025E90: 20 2D 20 31 3B 0D 0A 20 20 77 68 69 6C 65 28 6A - 1;.. while(j
025EA0: 70 20 3E 3D 20 2A 6C 61 73 74 6A 29 20 7B 20 20 p >= *lastj) {
025EB0: 20 2F 2A 2A 2A 2A 20 6D 61 6B 65 20 68 6F 6C 65 /**** make hole
025EC0: 20 66 6F 72 20 63 6C 6F 73 75 72 65 20 2A 2A 2A for closure ***
025ED0: 2A 2F 0D 0A 20 20 20 20 6A 74 20 3D 20 6A 70 20 */.. jt = jp
025EE0: 2B 20 43 4C 4F 53 49 5A 45 3B 0D 0A 20 20 20 20 + CLOSIZE;..
025EF0: 61 64 64 73 65 74 28 70 61 74 5B 6A 70 2D 2D 5D addset(pat[jp--]
025F00: 5D 3B 0D 0A 20 20 77 68 69 6C 65 28 20 69 20 3E ];.. while( i >
025F10: 20 6F 66 66 73 65 74 29 20 7B 0D 0A 20 20 20 20 offset) {..
025F20: 69 66 28 63 3D 3D 70 61 74 5B 69 2D 2D 5D 29 20 if(c==pat[i--])
025F30: 72 65 74 75 72 6E 20 59 45 53 3B 0D 0A 20 20 20 return YES;..
025F40: 20 7D 0D 0A 20 20 72 65 74 75 72 6E 20 4E 4F 3B }.. return NO;
025F50: 0D 0A 20 20 7D 0D 0A 0D 0A 2F 2A 0D 0A 2A 2A 20 .. }..../*..**
025F60: 6D 61 6B 70 61 74 20 2D 2D 20 6D 61 6B 65 20 70 makpat -- make p
025F70: 61 74 74 65 72 6E 20 66 72 6F 6D 20 61 72 67 5B attern from arg[
025F80: 66 72 6F 6D 5D 2C 20 65 6E 64 20 61 74 20 64 65 from], end at de
025F90: 6C 69 6D 0D 0A 2A 2F 0D 0A 6D 61 6B 70 61 74 28 lim..*/..makpat(
025FA0: 61 72 67 2C 20 66 72 6F 6D 2C 20 64 65 6C 69 6D arg, from, delim
025FB0: 2C 20 70 61 74 29 20 63 68 61 72 20 61 72 67 5B , pat) char arg[
025FC0: 5D 2C 20 64 65 6C 69 6D 2C 20 70 61 74 5B 5D 3B ], delim, pat[];
025FD0: 20 69 6E 74 20 66 72 6F 6D 3B 20 7B 0D 0A 20 20 int from; {..
025FE0: 69 6E 74 20 69 2C 20 6A 2C 20 6C 61 73 74 63 6C int i, j, lastcl
025FF0: 2C 20 6C 61 73 74 6A 2C 20 6C 6A 3B 0D 0A 20 20 , lastj, lj;..
026000: 6A 3D 6C 61 73 74 6A 3D 30 3B 0D 0A 20 20 6C 61 j=lastj=0;.. la
026010: 73 74 63 6C 20 3D 20 2D 31 3B 0D 0A 20 20 69 3D stcl = -1;.. i=
026020: 66 72 6F 6D 3B 0D 0A 20 20 77 68 69 6C 65 28 28 from;.. while((
026030: 61 72 67 5B 69 5D 21 3D 64 65 6C 69 6D 29 26 28 arg[i]!=delim)&(
026040: 61 72 67 5B 69 5D 21 3D 4E 55 4C 4C 29 29 20 7B arg[i]!=NULL)) {
026050: 0D 0A 20 20 20 20 6C 6A 3D 6A 3B 0D 0A 20 20 20 .. lj=j;..
026060: 20 69 66 28 61 72 67 5B 69 5D 3D 3D 41 4E 59 29 if(arg[i]==ANY)
026070: 20 61 64 64 73 65 74 28 41 4E 59 2C 20 70 61 74 addset(ANY, pat
026080: 2C 20 26 6A 2C 20 4D 41 58 50 41 54 29 3B 0D 0A , &j, MAXPAT);..
026090: 20 20 20 20 65 6C 73 65 20 69 66 28 28 61 72 67 else if((arg
0260A0: 5B 69 5D 3D 3D 42 4F 4C 29 26 28 69 3D 3D 66 72 [i]==BOL)&(i==fr
0260B0: 6F 6D 29 29 20 61 64 64 73 65 74 28 42 4F 4C 2C om)) addset(BOL,
0260C0: 20 70 61 74 2C 20 26 6A 2C 20 4D 41 58 50 41 54 pat, &j, MAXPAT
0260D0: 29 3B 0D 0A 20 20 20 20 65 6C 73 65 20 69 66 28 );.. else if(
0260E0: 28 61 72 67 5B 69 5D 3D 3D 45 4F 4C 29 26 28 61 (arg[i]==EOL)&(a
0260F0: 72 67 5B 69 2B 31 5D 3D 3D 64 65 6C 69 6D 29 29 rg[i+1]==delim))
026100: 54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 00 00 00 Track-Info......
026110: 20 00 01 00 02 09 52 E5 20 00 41 02 00 00 00 02 .....R. .A.....
026120: 20 00 46 02 00 00 00 02 20 00 42 02 00 00 00 02 .F..... .B.....
026130: 20 00 47 02 00 00 00 02 20 00 43 02 00 00 00 02 .G..... .C.....
026140: 20 00 48 02 00 00 00 02 20 00 44 02 00 00 00 02 .H..... .D.....
026150: 20 00 49 02 00 00 00 02 20 00 45 02 00 00 00 02 .I..... .E.....
026160: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
026170: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
026180: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
026190: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0261A0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0261B0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0261C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0261D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0261E0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0261F0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
026200: 2C 20 70 61 74 2C 20 26 6A 74 2C 20 4D 41 58 50 , pat, &jt, MAXP
026210: 41 54 29 3B 0D 0A 20 20 20 20 7D 0D 0A 20 20 2A AT);.. }.. *
026220: 6A 20 3D 20 2A 6A 20 2B 20 43 4C 4F 53 49 5A 45 j = *j + CLOSIZE
026230: 3B 0D 0A 20 20 6A 70 20 3D 20 2A 6C 61 73 74 6A ;.. jp = *lastj
026240: 3B 0D 0A 20 20 61 64 64 73 65 74 28 43 4C 4F 53 ;.. addset(CLOS
026250: 55 52 45 2C 20 70 61 74 2C 20 6C 61 73 74 6A 2C URE, pat, lastj,
026260: 20 4D 41 58 50 41 54 29 3B 20 20 2F 2A 2A 20 43 MAXPAT); /** C
026270: 4C 4F 53 55 52 45 20 2A 2A 2F 0D 0A 20 20 61 64 LOSURE **/.. ad
026280: 64 73 65 74 28 30 2C 20 70 61 74 2C 20 6C 61 73 dset(0, pat, las
026290: 74 6A 2C 20 4D 41 58 50 41 54 29 3B 20 20 20 20 tj, MAXPAT);
0262A0: 20 20 20 20 2F 2A 2A 20 43 4F 55 4E 54 20 2A 2A /** COUNT **
0262B0: 2F 0D 0A 20 20 61 64 64 73 65 74 28 6C 61 73 74 /.. addset(last
0262C0: 63 6C 2C 20 70 61 74 2C 20 6C 61 73 74 6A 2C 20 cl, pat, lastj,
0262D0: 4D 41 58 50 41 54 29 3B 20 20 20 2F 2A 2A 20 50 MAXPAT); /** P
0262E0: 52 45 56 43 4C 20 2A 2A 2F 0D 0A 20 20 61 64 64 REVCL **/.. add
0262F0: 73 65 74 28 30 2C 20 70 61 74 2C 20 6C 61 73 74 set(0, pat, last
026300: 6A 2C 20 4D 41 58 50 41 54 29 3B 20 20 20 20 20 j, MAXPAT);
026310: 20 20 20 2F 2A 2A 20 53 54 41 52 54 20 2A 2A 2F /** START **/
026320: 0D 0A 20 20 72 65 74 75 72 6E 20 6A 70 3B 0D 0A .. return jp;..
026330: 20 20 7D 0D 0A 1A 1A 00 00 00 00 00 00 00 00 00 }.............
026340: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
026350: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
026360: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
026370: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
026380: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
026390: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0263A0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0263B0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0263C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0263D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0263E0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0263F0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
026400: 20 20 20 20 20 75 74 6F 69 28 6E 61 6D 65 2B 33 utoi(name+3
026410: 2C 20 26 62 65 67 69 6E 29 3B 0D 0A 20 20 20 20 , &begin);..
026420: 20 20 63 6F 6E 74 69 6E 75 65 3B 0D 0A 20 20 20 continue;..
026430: 20 20 20 7D 0D 0A 20 20 20 20 69 66 28 28 73 61 }.. if((sa
026440: 6D 65 28 6E 61 6D 65 5B 31 5D 2C 20 27 65 27 29 me(name[1], 'e')
026450: 29 26 28 73 61 6D 65 28 6E 61 6D 65 5B 32 5D 2C )&(same(name[2],
026460: 20 27 70 27 29 29 29 20 7B 0D 0A 20 20 20 20 20 'p'))) {..
026470: 20 75 74 6F 69 28 6E 61 6D 65 2B 33 2C 20 26 65 utoi(name+3, &e
026480: 6E 64 29 3B 0D 0A 20 20 20 20 20 20 63 6F 6E 74 nd);.. cont
026490: 69 6E 75 65 3B 0D 0A 20 20 20 20 20 20 7D 0D 0A inue;.. }..
0264A0: 20 20 20 20 69 66 28 28 73 61 6D 65 28 6E 61 6D if((same(nam
0264B0: 65 5B 31 5D 2C 20 27 6C 27 29 29 26 28 73 61 6D e[1], 'l'))&(sam
0264C0: 65 28 6E 61 6D 65 5B 32 5D 2C 20 27 6D 27 29 29 e(name[2], 'm'))
0264D0: 29 20 7B 0D 0A 20 20 20 20 20 20 75 74 6F 69 28 ) {.. utoi(
0264E0: 6E 61 6D 65 2B 33 2C 20 26 6D 61 72 67 69 6E 29 name+3, &margin)
0264F0: 3B 0D 0A 20 20 20 20 20 20 63 6F 6E 74 69 6E 75 ;.. continu
026500: 65 3B 0D 0A 20 20 20 20 20 20 7D 0D 0A 20 20 20 e;.. }..
026510: 20 69 66 28 28 73 61 6D 65 28 6E 61 6D 65 5B 31 if((same(name[1
026520: 5D 2C 20 27 6E 27 29 29 26 28 73 61 6D 65 28 6E ], 'n'))&(same(n
026530: 61 6D 65 5B 32 5D 2C 20 27 72 27 29 29 29 20 7B ame[2], 'r'))) {
026540: 0D 0A 20 20 20 20 20 20 72 65 61 64 79 3D 4E 4F .. ready=NO
026550: 3B 0D 0A 20 20 20 20 20 20 63 6F 6E 74 69 6E 75 ;.. continu
026560: 65 3B 0D 0A 20 20 20 20 20 20 7D 0D 0A 20 20 20 e;.. }..
026570: 20 69 66 28 73 61 6D 65 28 6E 61 6D 65 5B 31 5D if(same(name[1]
026580: 2C 20 27 70 27 29 29 20 7B 0D 0A 20 20 20 20 20 , 'p')) {..
026590: 20 70 61 75 73 65 3D 59 45 53 3B 0D 0A 20 20 20 pause=YES;..
0265A0: 20 20 20 63 6F 6E 74 69 6E 75 65 3B 0D 0A 20 20 continue;..
0265B0: 20 20 20 20 7D 0D 0A 20 20 20 20 69 66 28 73 61 }.. if(sa
0265C0: 6D 65 28 6E 61 6D 65 5B 31 5D 2C 20 27 6E 27 29 me(name[1], 'n')
0265D0: 29 20 7B 0D 0A 20 20 20 20 20 20 69 66 28 73 61 ) {.. if(sa
0265E0: 6D 65 28 6E 61 6D 65 5B 32 5D 2C 20 27 68 27 29 me(name[2], 'h')
0265F0: 29 20 7B 68 65 61 64 69 6E 67 73 3D 4E 4F 3B 20 ) {headings=NO;
026600: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026610: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026620: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026630: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026640: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026650: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026660: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026670: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026680: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026690: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0266A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0266B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0266C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0266D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0266E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0266F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026700: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026710: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026720: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026730: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026740: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026750: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026760: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026770: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026780: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026790: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0267A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0267B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0267C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0267D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0267E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0267F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
026800: 63 6F 6E 74 69 6E 75 65 3B 7D 0D 0A 20 20 20 20 continue;}..
026810: 20 20 69 66 28 73 61 6D 65 28 6E 61 6D 65 5B 32 if(same(name[2
026820: 5D 2C 20 27 73 27 29 29 20 7B 20 20 20 73 6B 69 ], 's')) { ski
026830: 70 73 3D 4E 4F 3B 20 63 6F 6E 74 69 6E 75 65 3B ps=NO; continue;
026840: 7D 0D 0A 20 20 20 20 20 20 69 66 28 73 61 6D 65 }.. if(same
026850: 28 6E 61 6D 65 5B 32 5D 2C 20 27 6E 27 29 29 20 (name[2], 'n'))
026860: 7B 20 6E 75 6D 62 65 72 73 3D 4E 4F 3B 20 63 6F { numbers=NO; co
026870: 6E 74 69 6E 75 65 3B 7D 0D 0A 20 20 20 20 20 20 ntinue;}..
026880: 7D 0D 0A 20 20 20 20 66 70 75 74 73 28 22 75 73 }.. fputs("us
026890: 61 67 65 3A 20 50 52 54 20 5B 66 69 6C 65 5D 2E age: PRT [file].
0268A0: 2E 2E 20 5B 2E 3F 5D 20 5B 2D 4E 4E 5D 20 5B 2D .. [.?] [-NN] [-
0268B0: 4E 48 7C 2D 4E 53 5D 5C 6E 22 2C 0D 0A 20 20 20 NH|-NS]\n",..
0268C0: 20 20 20 20 20 20 20 73 74 64 65 72 72 29 3B 0D stderr);.
0268D0: 0A 20 20 20 20 66 70 75 74 73 28 22 20 20 20 20 . fputs("
0268E0: 20 5B 2D 4C 4D 23 5D 20 5B 2D 42 50 23 5D 20 5B [-LM#] [-BP#] [
0268F0: 2D 45 50 23 5D 20 5B 2D 50 5D 20 5B 2D 4E 52 5D -EP#] [-P] [-NR]
026900: 5C 6E 22 2C 20 73 74 64 65 72 72 29 3B 0D 0A 20 \n", stderr);..
026910: 20 20 20 61 62 6F 72 74 28 37 29 3B 0D 0A 20 20 abort(7);..
026920: 20 20 7D 0D 0A 20 20 7D 0D 0A 0D 0A 66 70 72 6E }.. }....fprn
026930: 74 28 6E 61 6D 65 2C 20 66 69 6E 29 0D 0A 20 20 t(name, fin)..
026940: 63 68 61 72 20 6E 61 6D 65 5B 5D 3B 20 69 6E 74 char name[]; int
026950: 20 66 69 6E 3B 20 7B 0D 0A 20 20 63 68 61 72 20 fin; {.. char
026960: 6C 69 6E 65 5B 4D 41 58 4C 49 4E 45 2B 31 5D 2C line[MAXLINE+1],
026970: 20 77 6F 72 64 5B 4D 41 58 4C 49 4E 45 2B 31 5D word[MAXLINE+1]
026980: 3B 0D 0A 20 20 69 6E 74 20 74 65 78 74 6C 69 6E ;.. int textlin
026990: 65 2C 20 66 69 6E 32 2C 20 69 2C 20 74 65 6D 70 e, fin2, i, temp
0269A0: 3B 0D 0A 20 20 74 65 78 74 6C 69 6E 65 3D 30 3B ;.. textline=0;
0269B0: 0D 0A 20 20 77 68 69 6C 65 28 66 67 65 74 73 28 .. while(fgets(
0269C0: 6C 69 6E 65 2C 20 4D 41 58 4C 49 4E 45 2B 31 2C line, MAXLINE+1,
0269D0: 20 66 69 6E 29 21 3D 4E 55 4C 4C 29 20 7B 0D 0A fin)!=NULL) {..
0269E0: 20 20 20 20 70 6F 6C 6C 28 59 45 53 29 3B 0D 0A poll(YES);..
0269F0: 20 20 20 20 69 66 28 28 6C 69 6E 65 6E 6F 3D 3D if((lineno==
026A00: 2F 2A 0D 0A 2A 2A 20 70 72 74 2E 63 20 2D 2D 20 /*..** prt.c --
026A10: 70 72 69 6E 74 20 66 69 6C 65 73 20 77 69 74 68 print files with
026A20: 20 6F 70 74 69 6F 6E 61 6C 20 70 61 67 65 20 73 optional page s
026A30: 6B 69 70 73 2C 20 68 65 61 64 69 6E 67 73 2C 0D kips, headings,.
026A40: 0A 2A 2A 20 20 20 20 20 20 20 20 20 20 61 6E 64 .** and
026A50: 20 6C 69 6E 65 20 6E 75 6D 62 65 72 73 2E 0D 0A line numbers...
026A60: 2A 2A 0D 0A 2A 2A 20 43 6F 70 79 72 69 67 68 74 **..** Copyright
026A70: 20 31 39 38 32 20 4A 2E 20 45 2E 20 48 65 6E 64 1982 J. E. Hend
026A80: 72 69 78 2E 20 20 41 6C 6C 20 72 69 67 68 74 73 rix. All rights
026A90: 20 72 65 73 65 72 76 65 64 2E 0D 0A 2A 2F 0D 0A reserved...*/..
026AA0: 23 69 6E 63 6C 75 64 65 20 3C 73 74 64 69 6F 2E #include <stdio.
026AB0: 68 3E 0D 0A 23 69 6E 63 6C 75 64 65 20 22 74 6F h>..#include "to
026AC0: 6F 6C 73 2E 68 22 0D 0A 23 64 65 66 69 6E 65 20 ols.h"..#define
026AD0: 4D 41 52 47 49 4E 31 20 30 0D 0A 23 64 65 66 69 MARGIN1 0..#defi
026AE0: 6E 65 20 4D 41 52 47 49 4E 32 20 31 0D 0A 63 68 ne MARGIN2 1..ch
026AF0: 61 72 20 6E 61 6D 65 5B 4D 41 58 46 4E 5D 2C 20 ar name[MAXFN],
026B00: 69 6E 63 6C 65 78 74 5B 4D 41 58 46 4E 5D 3B 0D inclext[MAXFN];.
026B10: 0A 69 6E 74 0D 0A 20 20 69 2C 0D 0A 20 20 66 69 .int.. i,.. fi
026B20: 6E 2C 0D 0A 20 20 66 69 6C 65 73 2C 0D 0A 20 20 n,.. files,..
026B30: 68 65 61 64 69 6E 67 73 2C 0D 0A 20 20 73 6B 69 headings,.. ski
026B40: 70 73 2C 0D 0A 20 20 6E 75 6D 62 65 72 73 2C 0D ps,.. numbers,.
026B50: 0A 20 20 62 65 67 69 6E 2C 0D 0A 20 20 65 6E 64 . begin,.. end
026B60: 2C 0D 0A 20 20 72 65 61 64 79 2C 0D 0A 20 20 70 ,.. ready,.. p
026B70: 61 75 73 65 3B 0D 0A 69 6E 74 20 6C 69 6E 65 6E ause;..int linen
026B80: 6F 2C 20 70 61 67 65 6E 6F 2C 20 6D 61 72 67 69 o, pageno, margi
026B90: 6E 3B 0D 0A 6D 61 69 6E 28 61 72 67 63 2C 20 61 n;..main(argc, a
026BA0: 72 67 76 29 20 69 6E 74 20 61 72 67 63 2C 20 2A rgv) int argc, *
026BB0: 61 72 67 76 3B 20 7B 0D 0A 20 20 68 65 61 64 69 argv; {.. headi
026BC0: 6E 67 73 3D 73 6B 69 70 73 3D 6E 75 6D 62 65 72 ngs=skips=number
026BD0: 73 3D 59 45 53 3B 0D 0A 20 20 64 6F 61 72 67 73 s=YES;.. doargs
026BE0: 28 61 72 67 63 2C 20 61 72 67 76 29 3B 0D 0A 20 (argc, argv);..
026BF0: 20 69 66 28 69 73 63 6F 6E 73 28 73 74 64 6F 75 if(iscons(stdou
026C00: 30 29 26 28 73 6B 69 70 73 29 29 20 7B 0D 0A 20 0)&(skips)) {..
026C10: 20 20 20 20 20 69 66 28 2B 2B 70 61 67 65 6E 6F if(++pageno
026C20: 20 3E 20 65 6E 64 29 20 65 78 69 74 28 30 29 3B > end) exit(0);
026C30: 0D 0A 20 20 20 20 20 20 69 66 28 70 61 67 65 6E .. if(pagen
026C40: 6F 20 3E 3D 20 62 65 67 69 6E 29 20 7B 0D 0A 20 o >= begin) {..
026C50: 20 20 20 20 20 20 20 70 61 67 65 28 70 61 67 65 page(page
026C60: 6E 6F 2C 20 70 61 75 73 65 2C 20 73 74 64 6F 75 no, pause, stdou
026C70: 74 29 3B 0D 0A 20 20 20 20 20 20 20 20 73 6B 69 t);.. ski
026C80: 70 28 4D 41 52 47 49 4E 31 29 3B 0D 0A 20 20 20 p(MARGIN1);..
026C90: 20 20 20 20 20 69 66 28 68 65 61 64 69 6E 67 73 if(headings
026CA0: 29 20 7B 0D 0A 20 20 20 20 20 20 20 20 20 20 74 ) {.. t
026CB0: 65 6D 70 3D 6D 61 72 67 69 6E 3B 0D 0A 20 20 20 emp=margin;..
026CC0: 20 20 20 20 20 20 20 77 68 69 6C 65 28 74 65 6D while(tem
026CD0: 70 2D 2D 29 20 70 72 69 6E 74 66 28 22 20 22 2C p--) printf(" ",
026CE0: 20 30 29 3B 0D 0A 20 20 20 20 20 20 20 20 20 20 0);..
026CF0: 69 66 28 6E 75 6D 62 65 72 73 29 20 70 72 69 6E if(numbers) prin
026D00: 74 66 28 22 20 20 20 20 20 20 22 2C 20 30 29 3B tf(" ", 0);
026D10: 0D 0A 20 20 20 20 20 20 20 20 20 20 70 72 69 6E .. prin
026D20: 74 66 28 22 46 69 6C 65 3A 20 25 73 20 20 20 20 tf("File: %s
026D30: 50 61 67 65 3A 20 25 64 5C 6E 22 2C 20 6E 61 6D Page: %d\n", nam
026D40: 65 2C 20 70 61 67 65 6E 6F 2C 20 32 29 3B 0D 0A e, pageno, 2);..
026D50: 20 20 20 20 20 20 20 20 20 20 7D 0D 0A 20 20 20 }..
026D60: 20 20 20 20 20 65 6C 73 65 20 70 72 69 6E 74 66 else printf
026D70: 28 22 5C 6E 22 2C 30 29 3B 0D 0A 20 20 20 20 20 ("\n",0);..
026D80: 20 20 20 2B 2B 6C 69 6E 65 6E 6F 3B 0D 0A 20 20 ++lineno;..
026D90: 20 20 20 20 20 20 73 6B 69 70 28 4D 41 52 47 49 skip(MARGI
026DA0: 4E 32 29 3B 0D 0A 20 20 20 20 20 20 20 20 7D 0D N2);.. }.
026DB0: 0A 20 20 20 20 20 20 6C 69 6E 65 6E 6F 3D 6C 69 . lineno=li
026DC0: 6E 65 6E 6F 2B 4D 41 52 47 49 4E 31 2B 4D 41 52 neno+MARGIN1+MAR
026DD0: 47 49 4E 32 3B 0D 0A 20 20 20 20 20 20 7D 0D 0A GIN2;.. }..
026DE0: 20 20 20 20 2B 2B 74 65 78 74 6C 69 6E 65 3B 0D ++textline;.
026DF0: 0A 20 20 20 20 2B 2B 6C 69 6E 65 6E 6F 3B 0D 0A . ++lineno;..
026E00: 74 29 29 20 66 72 65 6F 70 65 6E 28 22 4C 53 54 t)) freopen("LST
026E10: 3A 22 2C 20 22 77 22 2C 20 73 74 64 6F 75 74 29 :", "w", stdout)
026E20: 3B 0D 0A 20 20 69 66 28 72 65 61 64 79 20 26 26 ;.. if(ready &&
026E30: 20 69 73 61 74 74 79 28 73 74 64 6F 75 74 29 29 isatty(stdout))
026E40: 20 7B 0D 0A 20 20 20 20 66 70 75 74 73 28 22 72 {.. fputs("r
026E50: 65 61 64 79 20 70 72 69 6E 74 65 72 2E 2E 2E 20 eady printer...
026E60: 22 2C 20 73 74 64 65 72 72 29 3B 0D 0A 20 20 20 ", stderr);..
026E70: 20 66 67 65 74 63 28 73 74 64 65 72 72 29 3B 0D fgetc(stderr);.
026E80: 0A 20 20 20 20 7D 0D 0A 20 20 66 69 6C 65 73 3D . }.. files=
026E90: 4E 4F 3B 0D 0A 20 20 69 3D 30 3B 0D 0A 20 20 77 NO;.. i=0;.. w
026EA0: 68 69 6C 65 28 67 65 74 61 72 67 28 2B 2B 69 2C hile(getarg(++i,
026EB0: 20 6E 61 6D 65 2C 20 4D 41 58 46 4E 2C 20 61 72 name, MAXFN, ar
026EC0: 67 63 2C 20 61 72 67 76 29 21 3D 45 4F 46 29 20 gc, argv)!=EOF)
026ED0: 7B 0D 0A 20 20 20 20 69 66 28 28 6E 61 6D 65 5B {.. if((name[
026EE0: 30 5D 3D 3D 27 2D 27 29 7C 28 6E 61 6D 65 5B 30 0]=='-')|(name[0
026EF0: 5D 3D 3D 45 58 54 4D 41 52 4B 29 29 20 63 6F 6E ]==EXTMARK)) con
026F00: 74 69 6E 75 65 3B 0D 0A 20 20 20 20 66 69 6C 65 tinue;.. file
026F10: 73 3D 59 45 53 3B 0D 0A 20 20 20 20 66 69 6E 3D s=YES;.. fin=
026F20: 66 6F 70 65 6E 28 6E 61 6D 65 2C 20 22 72 22 29 fopen(name, "r")
026F30: 3B 0D 0A 20 20 20 20 69 66 28 66 69 6E 3D 3D 30 ;.. if(fin==0
026F40: 29 20 63 61 6E 74 28 6E 61 6D 65 29 3B 0D 0A 20 ) cant(name);..
026F50: 20 20 20 70 61 67 65 6E 6F 3D 6C 69 6E 65 6E 6F pageno=lineno
026F60: 3D 30 3B 0D 0A 20 20 20 20 66 70 72 6E 74 28 6E =0;.. fprnt(n
026F70: 61 6D 65 2C 20 66 69 6E 29 3B 0D 0A 20 20 20 20 ame, fin);..
026F80: 66 63 6C 6F 73 65 28 66 69 6E 29 3B 0D 0A 20 20 fclose(fin);..
026F90: 20 20 69 66 28 28 6C 69 6E 65 6E 6F 20 3E 20 30 if((lineno > 0
026FA0: 29 26 28 73 6B 69 70 73 29 29 20 73 6B 69 70 28 )&(skips)) skip(
026FB0: 50 54 52 48 49 47 48 2D 6C 69 6E 65 6E 6F 29 3B PTRHIGH-lineno);
026FC0: 0D 0A 20 20 20 20 7D 0D 0A 20 20 69 66 28 66 69 .. }.. if(fi
026FD0: 6C 65 73 3D 3D 4E 4F 29 20 7B 0D 0A 20 20 20 20 les==NO) {..
026FE0: 70 61 67 65 6E 6F 3D 6C 69 6E 65 6E 6F 3D 30 3B pageno=lineno=0;
026FF0: 0D 0A 20 20 20 20 66 70 72 6E 74 28 22 3C 73 74 .. fprnt("<st
027000: 20 20 20 20 69 66 28 70 61 67 65 6E 6F 20 3E 3D if(pageno >=
027010: 20 62 65 67 69 6E 29 20 7B 0D 0A 20 20 20 20 20 begin) {..
027020: 20 74 65 6D 70 3D 6D 61 72 67 69 6E 3B 0D 0A 20 temp=margin;..
027030: 20 20 20 20 20 77 68 69 6C 65 28 74 65 6D 70 2D while(temp-
027040: 2D 29 20 70 72 69 6E 74 66 28 22 20 22 2C 20 30 -) printf(" ", 0
027050: 29 3B 0D 0A 20 20 20 20 20 20 69 66 28 6E 75 6D );.. if(num
027060: 62 65 72 73 29 0D 0A 20 20 20 20 20 20 20 20 70 bers).. p
027070: 72 69 6E 74 66 28 22 25 35 64 20 25 73 22 2C 20 rintf("%5d %s",
027080: 74 65 78 74 6C 69 6E 65 2C 20 6C 69 6E 65 2C 20 textline, line,
027090: 32 29 3B 0D 0A 20 20 20 20 20 20 65 6C 73 65 20 2);.. else
0270A0: 70 72 69 6E 74 66 28 22 25 73 22 2C 20 6C 69 6E printf("%s", lin
0270B0: 65 2C 20 31 29 3B 0D 0A 20 20 20 20 20 20 7D 0D e, 1);.. }.
0270C0: 0A 20 20 20 20 69 66 28 28 6C 69 6E 65 6E 6F 20 . if((lineno
0270D0: 3E 3D 20 28 50 54 52 48 49 47 48 2D 50 54 52 53 >= (PTRHIGH-PTRS
0270E0: 4B 49 50 29 29 26 28 73 6B 69 70 73 29 29 20 7B KIP))&(skips)) {
0270F0: 0D 0A 20 20 20 20 20 20 73 6B 69 70 28 50 54 52 .. skip(PTR
027100: 48 49 47 48 2D 6C 69 6E 65 6E 6F 29 3B 0D 0A 20 HIGH-lineno);..
027110: 20 20 20 20 20 6C 69 6E 65 6E 6F 3D 30 3B 0D 0A lineno=0;..
027120: 20 20 20 20 20 20 7D 0D 0A 20 20 20 20 69 66 28 }.. if(
027130: 69 6E 63 6C 65 78 74 5B 30 5D 21 3D 45 58 54 4D inclext[0]!=EXTM
027140: 41 52 4B 29 20 63 6F 6E 74 69 6E 75 65 3B 0D 0A ARK) continue;..
027150: 20 20 20 20 69 3D 30 3B 0D 0A 20 20 20 20 67 65 i=0;.. ge
027160: 74 77 72 64 28 6C 69 6E 65 2C 20 26 69 2C 20 77 twrd(line, &i, w
027170: 6F 72 64 29 3B 0D 0A 20 20 20 20 69 66 28 28 6C ord);.. if((l
027180: 65 78 63 6D 70 28 77 6F 72 64 2C 20 22 23 69 6E excmp(word, "#in
027190: 63 6C 75 64 65 22 29 3D 3D 30 29 20 7C 7C 0D 0A clude")==0) ||..
0271A0: 20 20 20 20 20 20 20 28 6C 65 78 63 6D 70 28 77 (lexcmp(w
0271B0: 6F 72 64 2C 20 22 2E 73 6F 22 29 3D 3D 30 29 29 ord, ".so")==0))
0271C0: 20 7B 0D 0A 20 20 20 20 20 20 69 66 28 67 65 74 {.. if(get
0271D0: 77 72 64 28 6C 69 6E 65 2C 20 26 69 2C 20 77 6F wrd(line, &i, wo
0271E0: 72 64 29 20 3E 3D 20 4D 41 58 46 4E 29 20 63 61 rd) >= MAXFN) ca
0271F0: 6E 74 28 77 6F 72 64 29 3B 0D 0A 20 20 20 20 20 nt(word);..
027200: 64 69 6E 3E 22 2C 20 73 74 64 69 6E 29 3B 0D 0A din>", stdin);..
027210: 20 20 20 20 69 66 28 28 6C 69 6E 65 6E 6F 20 3E if((lineno >
027220: 20 30 29 26 28 73 6B 69 70 73 29 29 20 73 6B 69 0)&(skips)) ski
027230: 70 28 50 54 52 48 49 47 48 2D 6C 69 6E 65 6E 6F p(PTRHIGH-lineno
027240: 29 3B 0D 0A 20 20 20 20 7D 0D 0A 20 20 66 63 6C );.. }.. fcl
027250: 6F 73 65 28 73 74 64 6F 75 74 29 3B 0D 0A 20 20 ose(stdout);..
027260: 65 78 69 74 28 30 29 3B 0D 0A 20 20 7D 0D 0A 0D exit(0);.. }...
027270: 0A 64 6F 61 72 67 73 28 61 72 67 63 2C 20 61 72 .doargs(argc, ar
027280: 67 76 29 20 69 6E 74 20 61 72 67 63 2C 20 2A 61 gv) int argc, *a
027290: 72 67 76 3B 20 7B 0D 0A 20 20 69 6E 74 20 69 2C rgv; {.. int i,
0272A0: 20 6A 3B 0D 0A 20 20 69 6E 63 6C 65 78 74 5B 30 j;.. inclext[0
0272B0: 5D 3D 4E 55 4C 4C 3B 0D 0A 20 20 62 65 67 69 6E ]=NULL;.. begin
0272C0: 3D 30 3B 0D 0A 20 20 65 6E 64 3D 33 32 37 36 37 =0;.. end=32767
0272D0: 3B 0D 0A 20 20 72 65 61 64 79 3D 59 45 53 3B 0D ;.. ready=YES;.
0272E0: 0A 20 20 70 61 75 73 65 3D 4E 4F 3B 0D 0A 20 20 . pause=NO;..
0272F0: 6D 61 72 67 69 6E 3D 30 3B 0D 0A 20 20 69 3D 30 margin=0;.. i=0
027300: 3B 0D 0A 20 20 77 68 69 6C 65 28 67 65 74 61 72 ;.. while(getar
027310: 67 28 2B 2B 69 2C 20 6E 61 6D 65 2C 20 4D 41 58 g(++i, name, MAX
027320: 46 4E 2C 20 61 72 67 63 2C 20 61 72 67 76 29 21 FN, argc, argv)!
027330: 3D 45 4F 46 29 20 7B 0D 0A 20 20 20 20 69 66 28 =EOF) {.. if(
027340: 6E 61 6D 65 5B 30 5D 3D 3D 45 58 54 4D 41 52 4B name[0]==EXTMARK
027350: 29 20 7B 0D 0A 20 20 20 20 20 20 6A 3D 30 3B 0D ) {.. j=0;.
027360: 0A 20 20 20 20 20 20 77 68 69 6C 65 28 69 6E 63 . while(inc
027370: 6C 65 78 74 5B 6A 5D 3D 74 6F 75 70 70 65 72 28 lext[j]=toupper(
027380: 6E 61 6D 65 5B 6A 5D 29 29 20 2B 2B 6A 3B 0D 0A name[j])) ++j;..
027390: 20 20 20 20 20 20 63 6F 6E 74 69 6E 75 65 3B 0D continue;.
0273A0: 0A 20 20 20 20 20 20 7D 0D 0A 20 20 20 20 69 66 . }.. if
0273B0: 28 6E 61 6D 65 5B 30 5D 21 3D 27 2D 27 29 20 63 (name[0]!='-') c
0273C0: 6F 6E 74 69 6E 75 65 3B 0D 0A 20 20 20 20 69 66 ontinue;.. if
0273D0: 28 28 73 61 6D 65 28 6E 61 6D 65 5B 31 5D 2C 20 ((same(name[1],
0273E0: 27 62 27 29 29 26 28 73 61 6D 65 28 6E 61 6D 65 'b'))&(same(name
0273F0: 5B 32 5D 2C 20 27 70 27 29 29 29 20 7B 0D 0A 20 [2], 'p'))) {..
027400: 54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 00 00 00 Track-Info......
027410: 21 00 01 00 02 09 52 E5 21 00 41 02 00 00 00 02 !.....R.!.A.....
027420: 21 00 46 02 00 00 00 02 21 00 42 02 00 00 00 02 !.F.....!.B.....
027430: 21 00 47 02 00 00 00 02 21 00 43 02 00 00 00 02 !.G.....!.C.....
027440: 21 00 48 02 00 00 00 02 21 00 44 02 00 00 00 02 !.H.....!.D.....
027450: 21 00 49 02 00 00 00 02 21 00 45 02 00 00 00 02 !.I.....!.E.....
027460: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
027470: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
027480: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
027490: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0274A0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0274B0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0274C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0274D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0274E0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0274F0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
027500: 20 73 74 72 69 70 28 77 6F 72 64 29 3B 0D 0A 20 strip(word);..
027510: 20 20 20 20 20 69 3D 30 3B 0D 0A 20 20 20 20 20 i=0;..
027520: 20 77 68 69 6C 65 28 28 77 6F 72 64 5B 69 5D 21 while((word[i]!
027530: 3D 45 58 54 4D 41 52 4B 29 20 26 26 20 28 77 6F =EXTMARK) && (wo
027540: 72 64 5B 69 5D 29 29 20 2B 2B 69 3B 0D 0A 20 20 rd[i])) ++i;..
027550: 20 20 20 20 69 66 28 28 69 6E 63 6C 65 78 74 5B if((inclext[
027560: 31 5D 29 20 26 26 0D 0A 20 20 20 20 20 20 20 20 1]) &&..
027570: 20 28 6C 65 78 63 6D 70 28 77 6F 72 64 2B 69 2C (lexcmp(word+i,
027580: 20 69 6E 63 6C 65 78 74 29 21 3D 30 29 29 20 63 inclext)!=0)) c
027590: 6F 6E 74 69 6E 75 65 3B 0D 0A 20 20 20 20 20 20 ontinue;..
0275A0: 69 66 28 28 66 69 6E 32 3D 66 6F 70 65 6E 28 77 if((fin2=fopen(w
0275B0: 6F 72 64 2C 20 22 72 22 29 29 3D 3D 4E 55 4C 4C ord, "r"))==NULL
0275C0: 29 20 63 61 6E 74 28 77 6F 72 64 29 3B 0D 0A 20 ) cant(word);..
0275D0: 20 20 20 20 20 66 70 72 6E 74 28 6E 61 6D 65 2C fprnt(name,
0275E0: 20 66 69 6E 32 29 3B 0D 0A 20 20 20 20 20 20 66 fin2);.. f
0275F0: 63 6C 6F 73 65 28 66 69 6E 32 29 3B 0D 0A 20 20 close(fin2);..
027600: 20 20 20 20 7D 0D 0A 20 20 20 20 7D 0D 0A 20 20 }.. }..
027610: 7D 0D 0A 0D 0A 73 6B 69 70 28 6E 29 20 69 6E 74 }....skip(n) int
027620: 20 6E 3B 20 7B 0D 0A 20 20 69 6E 74 20 69 3B 0D n; {.. int i;.
027630: 0A 20 20 69 66 28 70 61 67 65 6E 6F 20 3C 20 62 . if(pageno < b
027640: 65 67 69 6E 29 20 72 65 74 75 72 6E 3B 0D 0A 20 egin) return;..
027650: 20 69 3D 30 3B 0D 0A 20 20 77 68 69 6C 65 28 2B i=0;.. while(+
027660: 2B 69 20 3C 3D 20 6E 29 20 7B 0D 0A 20 20 20 20 +i <= n) {..
027670: 70 6F 6C 6C 28 59 45 53 29 3B 0D 0A 20 20 20 20 poll(YES);..
027680: 66 70 75 74 63 28 27 5C 6E 27 2C 20 73 74 64 6F fputc('\n', stdo
027690: 75 74 29 3B 0D 0A 20 20 20 20 7D 0D 0A 20 20 7D ut);.. }.. }
0276A0: 0D 0A 23 69 6E 63 6C 75 64 65 20 22 63 61 6E 74 ..#include "cant
0276B0: 2E 63 22 0D 0A 23 69 6E 63 6C 75 64 65 20 22 70 .c"..#include "p
0276C0: 61 67 65 2E 63 22 0D 0A 23 69 6E 63 6C 75 64 65 age.c"..#include
0276D0: 20 22 73 61 6D 65 2E 63 22 0D 0A 23 69 6E 63 6C "same.c"..#incl
0276E0: 75 64 65 20 22 73 74 72 69 70 2E 63 22 0D 0A 23 ude "strip.c"..#
0276F0: 69 6E 63 6C 75 64 65 20 22 67 65 74 77 72 64 2E include "getwrd.
027700: 3D 27 75 27 29 20 69 74 6F 75 28 69 2C 20 73 74 ='u') itou(i, st
027710: 72 2C 20 37 29 3B 0D 0A 20 20 20 20 65 6C 73 65 r, 7);.. else
027720: 20 63 6F 6E 74 69 6E 75 65 3B 0D 0A 20 20 20 20 continue;..
027730: 63 74 6C 3D 63 78 3B 20 2F 2A 20 61 63 63 65 70 ctl=cx; /* accep
027740: 74 20 63 6F 6E 76 65 72 73 69 6F 6E 20 73 70 65 t conversion spe
027750: 63 20 2A 2F 0D 0A 20 20 20 20 69 66 28 63 21 3D c */.. if(c!=
027760: 27 73 27 29 20 77 68 69 6C 65 28 2A 73 70 74 72 's') while(*sptr
027770: 3D 3D 27 20 27 29 20 2B 2B 73 70 74 72 3B 0D 0A ==' ') ++sptr;..
027780: 20 20 20 20 6C 65 6E 3D 2D 31 3B 20 77 68 69 6C len=-1; whil
027790: 65 28 73 70 74 72 5B 2B 2B 6C 65 6E 5D 29 3B 20 e(sptr[++len]);
0277A0: 2F 2A 20 67 65 74 20 6C 65 6E 67 74 68 20 2A 2F /* get length */
0277B0: 0D 0A 20 20 20 20 69 66 28 28 63 3D 3D 27 73 27 .. if((c=='s'
0277C0: 29 26 28 6C 65 6E 3E 70 72 65 63 29 26 28 70 72 )&(len>prec)&(pr
0277D0: 65 63 6C 65 6E 3E 30 29 29 20 6C 65 6E 3D 70 72 eclen>0)) len=pr
0277E0: 65 63 3B 0D 0A 20 20 20 20 69 66 28 72 69 67 68 ec;.. if(righ
0277F0: 74 29 20 77 68 69 6C 65 28 28 28 77 69 64 74 68 t) while(((width
027800: 2D 2D 29 2D 6C 65 6E 29 3E 30 29 20 63 6F 75 74 --)-len)>0) cout
027810: 28 70 61 64 2C 20 73 74 64 6F 75 74 29 3B 0D 0A (pad, stdout);..
027820: 20 20 20 20 77 68 69 6C 65 28 6C 65 6E 29 20 7B while(len) {
027830: 63 6F 75 74 28 2A 73 70 74 72 2B 2B 2C 20 73 74 cout(*sptr++, st
027840: 64 6F 75 74 29 3B 20 2D 2D 6C 65 6E 3B 20 2D 2D dout); --len; --
027850: 77 69 64 74 68 3B 7D 0D 0A 20 20 20 20 77 68 69 width;}.. whi
027860: 6C 65 28 28 28 77 69 64 74 68 2D 2D 29 2D 6C 65 le(((width--)-le
027870: 6E 29 3E 30 29 20 63 6F 75 74 28 70 61 64 2C 20 n)>0) cout(pad,
027880: 73 74 64 6F 75 74 29 3B 0D 0A 20 20 20 20 7D 0D stdout);.. }.
027890: 0A 20 20 7D 0D 0A 1A 00 00 00 00 00 00 00 00 00 . }............
0278A0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0278B0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0278C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0278D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0278E0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0278F0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
027900: 63 22 0D 0A 0D 0A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A c"..............
027910: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
027920: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
027930: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
027940: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
027950: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
027960: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
027970: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
027980: 20 69 6E 63 6C 65 78 74 29 21 3D 30 29 29 20 63 inclext)!=0)) c
027990: 6F 6E 74 69 6E 75 65 3B 0D 0A 20 20 20 20 20 20 ontinue;..
0279A0: 69 66 28 28 66 69 6E 32 3D 66 6F 70 65 6E 28 77 if((fin2=fopen(w
0279B0: 6F 72 64 2C 20 22 72 22 29 29 3D 3D 4E 55 4C 4C ord, "r"))==NULL
0279C0: 29 20 63 61 6E 74 28 77 6F 72 64 29 3B 0D 0A 20 ) cant(word);..
0279D0: 20 20 20 20 20 66 70 72 6E 74 28 6E 61 6D 65 2C fprnt(name,
0279E0: 20 66 69 6E 32 29 3B 0D 0A 20 20 20 20 20 20 66 fin2);.. f
0279F0: 63 6C 6F 73 65 28 66 69 6E 32 29 3B 0D 0A 20 20 close(fin2);..
027A00: 20 20 20 20 7D 0D 0A 20 20 20 20 7D 0D 0A 20 20 }.. }..
027A10: 7D 0D 0A 0D 0A 73 6B 69 70 28 6E 29 20 69 6E 74 }....skip(n) int
027A20: 20 6E 3B 20 7B 0D 0A 20 20 69 6E 74 20 69 3B 0D n; {.. int i;.
027A30: 0A 20 20 69 66 28 70 61 67 65 6E 6F 20 3C 20 62 . if(pageno < b
027A40: 65 67 69 6E 29 20 72 65 74 75 72 6E 3B 0D 0A 20 egin) return;..
027A50: 20 69 3D 30 3B 0D 0A 20 20 77 68 69 6C 65 28 2B i=0;.. while(+
027A60: 2B 69 20 3C 3D 20 6E 29 20 7B 0D 0A 20 20 20 20 +i <= n) {..
027A70: 70 6F 6C 6C 28 59 45 53 29 3B 0D 0A 20 20 20 20 poll(YES);..
027A80: 66 70 75 74 63 28 27 5C 6E 27 2C 20 73 74 64 6F fputc('\n', stdo
027A90: 75 74 29 3B 0D 0A 20 20 20 20 7D 0D 0A 20 20 7D ut);.. }.. }
027AA0: 0D 0A 23 69 6E 63 6C 75 64 65 20 22 63 61 6E 74 ..#include "cant
027AB0: 2E 63 22 0D 0A 23 69 6E 63 6C 75 64 65 20 22 70 .c"..#include "p
027AC0: 61 67 65 2E 63 22 0D 0A 23 69 6E 63 6C 75 64 65 age.c"..#include
027AD0: 20 22 73 61 6D 65 2E 63 22 0D 0A 23 69 6E 63 6C "same.c"..#incl
027AE0: 75 64 65 20 22 73 74 72 69 70 2E 63 22 0D 0A 23 ude "strip.c"..#
027AF0: 69 6E 63 6C 75 64 65 20 22 67 65 74 77 72 64 2E include "getwrd.
027B00: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027B10: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027B20: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027B30: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027B40: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027B50: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027B60: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027B70: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027B80: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027B90: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027BA0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027BB0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027BC0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027BD0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027BE0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027BF0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027C00: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027C10: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027C20: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027C30: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027C40: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027C50: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027C60: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027C70: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027C80: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027C90: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027CA0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027CB0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027CC0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027CD0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027CE0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027CF0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027D00: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027D10: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027D20: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027D30: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027D40: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027D50: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027D60: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027D70: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027D80: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027D90: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027DA0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027DB0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027DC0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027DD0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027DE0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027DF0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027E00: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027E10: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027E20: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027E30: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027E40: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027E50: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027E60: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027E70: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027E80: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027E90: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027EA0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027EB0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027EC0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027ED0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027EE0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027EF0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
027F00: 0D 0A 2F 2A 0D 0A 2A 2A 20 73 61 6D 65 20 2D 2D ../*..** same --
027F10: 20 59 45 53 20 69 66 20 63 20 73 61 6D 65 20 61 YES if c same a
027F20: 73 20 6C 6F 77 65 72 20 63 61 73 65 20 6C 63 2C s lower case lc,
027F30: 20 65 6C 73 65 20 4E 4F 0D 0A 2A 2A 20 20 20 20 else NO..**
027F40: 20 20 20 20 20 63 20 6D 61 79 20 62 65 20 75 70 c may be up
027F50: 70 65 72 20 6F 72 20 6C 6F 77 65 72 20 63 61 73 per or lower cas
027F60: 65 0D 0A 2A 2F 0D 0A 73 61 6D 65 28 63 2C 20 6C e..*/..same(c, l
027F70: 63 29 20 63 68 61 72 20 63 2C 20 6C 63 3B 20 7B c) char c, lc; {
027F80: 0D 0A 20 20 69 66 28 28 63 20 3E 3D 20 27 41 27 .. if((c >= 'A'
027F90: 29 26 28 63 20 3C 3D 20 27 5A 27 29 29 20 63 20 )&(c <= 'Z')) c
027FA0: 3D 20 63 20 2B 20 33 32 3B 0D 0A 20 20 69 66 20 = c + 32;.. if
027FB0: 28 63 20 3D 3D 20 6C 63 29 20 72 65 74 75 72 6E (c == lc) return
027FC0: 20 59 45 53 3B 0D 0A 20 20 72 65 74 75 72 6E 20 YES;.. return
027FD0: 4E 4F 3B 0D 0A 20 20 7D 0D 0A 1A 00 00 00 00 00 NO;.. }........
027FE0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
027FF0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
028000: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
028010: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
028020: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
028030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
028040: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
028050: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
028060: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
028070: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
028080: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
028090: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0280A0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0280B0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0280C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0280D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0280E0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0280F0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
028100: 0D 0A 2F 2A 0D 0A 2A 2A 20 70 72 69 6E 74 66 28 ../*..** printf(
028110: 63 6F 6E 74 72 6F 6C 73 74 72 69 6E 67 2C 20 61 controlstring, a
028120: 72 67 2C 20 61 72 67 2C 20 2E 2E 2E 29 20 2D 2D rg, arg, ...) --
028130: 20 66 6F 72 6D 61 74 74 65 64 20 70 72 69 6E 74 formatted print
028140: 0D 0A 2A 2A 20 20 20 20 20 20 20 20 6F 70 65 72 ..** oper
028150: 61 74 65 73 20 61 73 20 64 65 73 63 72 69 62 65 ates as describe
028160: 64 20 62 79 20 4B 65 72 6E 69 67 68 61 6E 20 26 d by Kernighan &
028170: 20 52 69 74 63 68 69 65 0D 0A 2A 2A 20 20 20 20 Ritchie..**
028180: 20 20 20 20 6F 6E 6C 79 20 64 2C 20 78 2C 20 63 only d, x, c
028190: 2C 20 73 2C 20 61 6E 64 20 75 20 73 70 65 63 73 , s, and u specs
0281A0: 20 61 72 65 20 73 75 70 70 6F 72 74 65 64 2E 0D are supported..
0281B0: 0A 2A 2F 0D 0A 70 72 69 6E 74 66 28 61 72 67 63 .*/..printf(argc
0281C0: 29 20 69 6E 74 20 61 72 67 63 3B 20 7B 0D 0A 20 ) int argc; {..
0281D0: 20 69 6E 74 20 69 2C 20 77 69 64 74 68 2C 20 70 int i, width, p
0281E0: 72 65 63 2C 20 70 72 65 63 6C 65 6E 2C 20 6C 65 rec, preclen, le
0281F0: 6E 2C 20 2A 6E 78 74 61 72 67 3B 0D 0A 20 20 63 n, *nxtarg;.. c
028200: 68 61 72 20 2A 63 74 6C 2C 20 2A 63 78 2C 20 63 har *ctl, *cx, c
028210: 2C 20 72 69 67 68 74 2C 20 73 74 72 5B 37 5D 2C , right, str[7],
028220: 20 2A 73 70 74 72 2C 20 70 61 64 3B 0D 0A 20 20 *sptr, pad;..
028230: 69 20 3D 20 43 43 41 52 47 43 28 29 3B 20 20 20 i = CCARGC();
028240: 2F 2A 20 66 65 74 63 68 20 61 72 67 20 63 6F 75 /* fetch arg cou
028250: 6E 74 20 66 72 6F 6D 20 41 20 72 65 67 20 66 69 nt from A reg fi
028260: 72 73 74 20 2A 2F 0D 0A 20 20 6E 78 74 61 72 67 rst */.. nxtarg
028270: 20 3D 20 26 61 72 67 63 20 2B 20 69 20 2D 20 31 = &argc + i - 1
028280: 3B 0D 0A 20 20 63 74 6C 20 3D 20 2A 6E 78 74 61 ;.. ctl = *nxta
028290: 72 67 3B 0D 0A 20 20 77 68 69 6C 65 28 63 3D 2A rg;.. while(c=*
0282A0: 63 74 6C 2B 2B 29 20 7B 0D 0A 20 20 20 20 69 66 ctl++) {.. if
0282B0: 28 63 21 3D 27 25 27 29 20 7B 63 6F 75 74 28 63 (c!='%') {cout(c
0282C0: 2C 20 73 74 64 6F 75 74 29 3B 20 63 6F 6E 74 69 , stdout); conti
0282D0: 6E 75 65 3B 7D 0D 0A 20 20 20 20 69 66 28 2A 63 nue;}.. if(*c
0282E0: 74 6C 3D 3D 27 25 27 29 20 7B 63 6F 75 74 28 2A tl=='%') {cout(*
0282F0: 63 74 6C 2B 2B 2C 20 73 74 64 6F 75 74 29 3B 20 ctl++, stdout);
028300: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028310: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028320: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028330: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028340: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028350: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028360: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028370: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028380: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028390: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0283A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0283B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0283C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0283D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0283E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0283F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028400: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028410: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028420: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028430: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028440: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028450: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028460: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028470: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028480: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028490: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0284A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0284B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0284C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0284D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0284E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
0284F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028500: 63 6F 6E 74 69 6E 75 65 3B 7D 0D 0A 20 20 20 20 continue;}..
028510: 63 78 3D 63 74 6C 3B 0D 0A 20 20 20 20 69 66 28 cx=ctl;.. if(
028520: 2A 63 78 3D 3D 27 2D 27 29 20 7B 72 69 67 68 74 *cx=='-') {right
028530: 3D 30 3B 20 2B 2B 63 78 3B 7D 20 65 6C 73 65 20 =0; ++cx;} else
028540: 72 69 67 68 74 3D 31 3B 0D 0A 20 20 20 20 69 66 right=1;.. if
028550: 28 2A 63 78 3D 3D 27 30 27 29 20 7B 70 61 64 3D (*cx=='0') {pad=
028560: 27 30 27 3B 20 2B 2B 63 78 3B 7D 20 65 6C 73 65 '0'; ++cx;} else
028570: 20 70 61 64 3D 27 20 27 3B 0D 0A 20 20 20 20 69 pad=' ';.. i
028580: 66 28 28 69 3D 75 74 6F 69 28 63 78 2C 20 26 77 f((i=utoi(cx, &w
028590: 69 64 74 68 29 29 20 3E 3D 20 30 29 20 63 78 3D idth)) >= 0) cx=
0285A0: 63 78 2B 69 3B 20 65 6C 73 65 20 63 6F 6E 74 69 cx+i; else conti
0285B0: 6E 75 65 3B 0D 0A 20 20 20 20 69 66 28 2A 63 78 nue;.. if(*cx
0285C0: 3D 3D 27 2E 27 29 20 7B 0D 0A 20 20 20 20 20 20 =='.') {..
0285D0: 69 66 28 28 70 72 65 63 6C 65 6E 3D 75 74 6F 69 if((preclen=utoi
0285E0: 28 2B 2B 63 78 2C 20 26 70 72 65 63 29 29 20 3E (++cx, &prec)) >
0285F0: 3D 20 30 29 20 63 78 3D 63 78 2B 70 72 65 63 6C = 0) cx=cx+precl
028600: 65 6E 3B 0D 0A 20 20 20 20 20 20 65 6C 73 65 20 en;.. else
028610: 63 6F 6E 74 69 6E 75 65 3B 0D 0A 20 20 20 20 20 continue;..
028620: 20 7D 0D 0A 20 20 20 20 65 6C 73 65 20 70 72 65 }.. else pre
028630: 63 6C 65 6E 3D 30 3B 0D 0A 20 20 20 20 73 70 74 clen=0;.. spt
028640: 72 3D 73 74 72 3B 20 63 3D 2A 63 78 2B 2B 3B 20 r=str; c=*cx++;
028650: 69 3D 2A 28 2D 2D 6E 78 74 61 72 67 29 3B 0D 0A i=*(--nxtarg);..
028660: 20 20 20 20 69 66 28 63 3D 3D 27 64 27 29 20 69 if(c=='d') i
028670: 74 6F 64 28 69 2C 20 73 74 72 2C 20 37 29 3B 0D tod(i, str, 7);.
028680: 0A 20 20 20 20 65 6C 73 65 20 69 66 28 63 3D 3D . else if(c==
028690: 27 78 27 29 20 69 74 6F 78 28 69 2C 20 73 74 72 'x') itox(i, str
0286A0: 2C 20 37 29 3B 0D 0A 20 20 20 20 65 6C 73 65 20 , 7);.. else
0286B0: 69 66 28 63 3D 3D 27 63 27 29 20 7B 73 74 72 5B if(c=='c') {str[
0286C0: 30 5D 3D 69 3B 20 73 74 72 5B 31 5D 3D 4E 55 4C 0]=i; str[1]=NUL
0286D0: 4C 3B 7D 0D 0A 20 20 20 20 65 6C 73 65 20 69 66 L;}.. else if
0286E0: 28 63 3D 3D 27 73 27 29 20 73 70 74 72 3D 69 3B (c=='s') sptr=i;
0286F0: 0D 0A 20 20 20 20 65 6C 73 65 20 69 66 28 63 3D .. else if(c=
028700: 54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 00 00 00 Track-Info......
028710: 22 00 01 00 02 09 52 E5 22 00 41 02 00 00 00 02 ".....R.".A.....
028720: 22 00 46 02 00 00 00 02 22 00 42 02 00 00 00 02 ".F.....".B.....
028730: 22 00 47 02 00 00 00 02 22 00 43 02 00 00 00 02 ".G.....".C.....
028740: 22 00 48 02 00 00 00 02 22 00 44 02 00 00 00 02 ".H.....".D.....
028750: 22 00 49 02 00 00 00 02 22 00 45 02 00 00 00 02 ".I.....".E.....
028760: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
028770: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
028780: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
028790: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0287A0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0287B0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0287C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0287D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0287E0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0287F0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
028800: 0D 0A 2F 2A 0D 0A 2A 2A 20 73 63 6F 70 79 20 2D ../*..** scopy -
028810: 2D 20 63 6F 70 79 20 66 72 6F 6D 5B 69 5D 20 74 - copy from[i] t
028820: 6F 20 74 6F 5B 6A 5D 0D 0A 2A 2F 0D 0A 73 63 6F o to[j]..*/..sco
028830: 70 79 28 66 72 6F 6D 2C 20 69 2C 20 74 6F 2C 20 py(from, i, to,
028840: 6A 29 20 63 68 61 72 20 2A 66 72 6F 6D 2C 20 2A j) char *from, *
028850: 74 6F 3B 20 69 6E 74 20 69 2C 20 6A 3B 20 7B 0D to; int i, j; {.
028860: 0A 20 20 66 72 6F 6D 3D 66 72 6F 6D 2B 69 3B 0D . from=from+i;.
028870: 0A 20 20 74 6F 3D 74 6F 2B 6A 3B 0D 0A 20 20 77 . to=to+j;.. w
028880: 68 69 6C 65 28 2A 74 6F 2B 2B 20 3D 20 2A 66 72 hile(*to++ = *fr
028890: 6F 6D 2B 2B 29 3B 0D 0A 20 20 7D 0D 0A 1A 00 00 om++);.. }.....
0288A0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0288B0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0288C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0288D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0288E0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0288F0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
028900: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
028910: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
028920: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
028930: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
028940: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
028950: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
028960: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
028970: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
028980: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
028990: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0289A0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0289B0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0289C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0289D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0289E0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0289F0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
028A00: 20 20 20 20 20 20 20 20 7D 0D 0A 20 20 20 20 20 }..
028A10: 20 69 66 28 74 6F 6C 6F 77 65 72 28 6C 6E 5B 31 if(tolower(ln[1
028A20: 5D 29 20 3D 3D 20 27 64 27 29 20 7B 09 2F 2A 20 ]) == 'd') {./*
028A30: 64 65 62 75 67 20 6D 6F 64 65 20 2D 20 6F 6E 6C debug mode - onl
028A40: 79 20 73 68 6F 77 20 6F 75 74 70 75 74 20 2A 2F y show output */
028A50: 0D 0A 20 20 20 20 20 20 20 20 64 65 62 75 67 20 .. debug
028A60: 3D 20 59 45 53 3B 0D 0A 20 20 20 20 20 20 20 20 = YES;..
028A70: 63 6F 6E 74 69 6E 75 65 3B 0D 0A 20 20 20 20 20 continue;..
028A80: 20 20 20 7D 0D 0A 20 20 20 20 20 20 62 72 65 61 }.. brea
028A90: 6B 3B 0D 0A 20 20 20 20 20 20 7D 0D 0A 20 20 20 k;.. }..
028AA0: 20 66 70 75 74 73 28 22 75 73 61 67 65 3A 20 53 fputs("usage: S
028AB0: 54 50 20 5B 2D 56 5D 20 5B 2D 44 5D 22 2C 20 73 TP [-V] [-D]", s
028AC0: 74 64 65 72 72 29 3B 0D 0A 20 20 20 20 61 62 6F tderr);.. abo
028AD0: 72 74 28 37 29 3B 0D 0A 20 20 20 20 7D 0D 0A 20 rt(7);.. }..
028AE0: 20 77 68 69 6C 65 28 66 67 65 74 73 28 6C 6E 2C while(fgets(ln,
028AF0: 20 4C 49 4E 45 53 5A 2C 20 73 74 64 69 6E 29 29 LINESZ, stdin))
028B00: 20 7B 0D 0A 20 20 20 20 6C 6E 70 74 72 20 3D 20 {.. lnptr =
028B10: 6C 6E 3B 0D 0A 20 20 20 20 65 72 72 6F 72 20 3D ln;.. error =
028B20: 20 4E 4F 3B 0D 0A 20 20 20 20 77 68 69 6C 65 28 NO;.. while(
028B30: 2A 6C 6E 70 74 72 20 26 26 20 2A 6C 6E 70 74 72 *lnptr && *lnptr
028B40: 20 21 3D 20 46 45 4E 43 45 20 26 26 20 2A 6C 6E != FENCE && *ln
028B50: 70 74 72 20 21 3D 20 27 5C 6E 27 29 20 7B 0D 0A ptr != '\n') {..
028B60: 20 20 20 20 20 20 70 6F 6C 6C 28 59 45 53 29 3B poll(YES);
028B70: 0D 0A 20 20 20 20 20 20 69 66 28 2A 6C 6E 70 74 .. if(*lnpt
028B80: 72 20 3D 3D 20 51 55 4F 54 45 29 20 64 6F 73 74 r == QUOTE) dost
028B90: 72 69 6E 67 28 29 3B 20 65 6C 73 65 20 64 6F 68 ring(); else doh
028BA0: 65 78 28 29 3B 0D 0A 20 20 20 20 20 20 77 68 69 ex();.. whi
028BB0: 6C 65 28 69 73 73 70 61 63 65 28 2A 2B 2B 6C 6E le(isspace(*++ln
028BC0: 70 74 72 29 29 20 3B 0D 0A 20 20 20 20 20 20 7D ptr)) ;.. }
028BD0: 0D 0A 20 20 20 20 69 66 28 64 65 62 75 67 29 20 .. if(debug)
028BE0: 66 70 75 74 73 28 22 5C 6E 22 2C 20 73 74 64 65 fputs("\n", stde
028BF0: 72 72 29 3B 0D 0A 20 20 20 20 69 66 28 76 69 65 rr);.. if(vie
028C00: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028C10: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028C20: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028C30: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028C40: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028C50: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028C60: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028C70: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028C80: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028C90: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028CA0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028CB0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028CC0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028CD0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028CE0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028CF0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028D00: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028D10: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028D20: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028D30: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028D40: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028D50: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028D60: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028D70: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028D80: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028D90: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028DA0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028DB0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028DC0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028DD0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028DE0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028DF0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
028E00: 77 20 7C 7C 20 65 72 72 6F 72 29 20 66 70 75 74 w || error) fput
028E10: 73 28 6C 6E 2C 20 73 74 64 65 72 72 29 3B 0D 0A s(ln, stderr);..
028E20: 20 20 20 20 7D 0D 0A 20 20 7D 0D 0A 0D 0A 64 6F }.. }....do
028E30: 73 74 72 69 6E 67 28 29 20 7B 0D 0A 20 20 2B 2B string() {.. ++
028E40: 6C 6E 70 74 72 3B 0D 0A 20 20 77 68 69 6C 65 28 lnptr;.. while(
028E50: 2A 6C 6E 70 74 72 20 3E 3D 20 27 20 27 29 20 7B *lnptr >= ' ') {
028E60: 0D 0A 20 20 20 20 69 66 28 2A 6C 6E 70 74 72 20 .. if(*lnptr
028E70: 3D 3D 20 51 55 4F 54 45 29 20 7B 0D 0A 20 20 20 == QUOTE) {..
028E80: 20 20 20 2B 2B 6C 6E 70 74 72 3B 0D 0A 20 20 20 ++lnptr;..
028E90: 20 20 20 69 66 28 2A 6C 6E 70 74 72 20 21 3D 20 if(*lnptr !=
028EA0: 51 55 4F 54 45 29 20 72 65 74 75 72 6E 3B 0D 0A QUOTE) return;..
028EB0: 20 20 20 20 20 20 7D 0D 0A 20 20 20 20 73 65 6E }.. sen
028EC0: 64 28 6C 6E 70 74 72 2B 2B 29 3B 0D 0A 20 20 20 d(lnptr++);..
028ED0: 20 7D 0D 0A 20 20 66 70 75 74 73 28 22 5C 37 5C }.. fputs("\7\
028EE0: 6E 2D 20 75 6E 74 65 72 6D 69 6E 61 74 65 64 20 n- unterminated
028EF0: 73 74 72 69 6E 67 20 69 6E 20 66 6F 6C 6C 6F 77 string in follow
028F00: 69 6E 67 20 6C 69 6E 65 5C 6E 22 2C 20 73 74 64 ing line\n", std
028F10: 65 72 72 29 3B 0D 0A 20 20 65 72 72 6F 72 20 3D err);.. error =
028F20: 20 59 45 53 3B 0D 0A 20 20 7D 0D 0A 0D 0A 64 6F YES;.. }....do
028F30: 68 65 78 28 29 20 7B 0D 0A 20 20 69 6E 74 20 69 hex() {.. int i
028F40: 2C 20 68 65 78 3B 0D 0A 20 20 63 68 61 72 20 63 , hex;.. char c
028F50: 68 3B 0D 0A 20 20 69 20 3D 20 78 74 6F 69 28 6C h;.. i = xtoi(l
028F60: 6E 70 74 72 2C 20 26 68 65 78 29 3B 0D 0A 20 20 nptr, &hex);..
028F70: 69 66 28 69 20 3C 20 31 20 7C 7C 20 69 20 3E 20 if(i < 1 || i >
028F80: 32 20 7C 7C 20 21 69 73 73 70 61 63 65 28 6C 6E 2 || !isspace(ln
028F90: 70 74 72 5B 69 5D 29 29 20 69 20 3D 20 30 3B 0D ptr[i])) i = 0;.
028FA0: 0A 20 20 77 68 69 6C 65 28 21 69 73 73 70 61 63 . while(!isspac
028FB0: 65 28 2A 6C 6E 70 74 72 29 29 20 2B 2B 6C 6E 70 e(*lnptr)) ++lnp
028FC0: 74 72 3B 0D 0A 20 20 69 66 28 69 20 3D 3D 20 30 tr;.. if(i == 0
028FD0: 29 20 7B 0D 0A 20 20 20 20 66 70 75 74 73 28 22 ) {.. fputs("
028FE0: 5C 37 5C 6E 2D 20 62 61 64 20 68 65 78 20 62 79 \7\n- bad hex by
028FF0: 74 65 20 69 6E 20 66 6F 6C 6C 6F 77 69 6E 67 20 te in following
029000: 0D 0A 2F 2A 0D 0A 2A 2A 20 73 65 74 74 61 62 2E ../*..** settab.
029010: 63 20 2D 2D 20 73 65 61 72 63 68 20 63 6F 6D 6D c -- search comm
029020: 61 6E 64 20 6C 69 6E 65 20 66 6F 72 20 74 61 62 and line for tab
029030: 20 6C 69 73 74 20 70 6F 73 73 69 62 6C 79 0D 0A list possibly..
029040: 2A 2A 20 20 20 20 20 20 20 20 20 20 20 20 20 74 ** t
029050: 65 72 6D 69 6E 61 74 65 64 20 77 69 74 68 20 61 erminated with a
029060: 6E 20 69 6E 74 65 72 76 61 6C 20 28 2B 6E 29 20 n interval (+n)
029070: 61 6E 64 20 73 65 74 20 75 70 0D 0A 2A 2A 20 20 and set up..**
029080: 20 20 20 20 20 20 20 20 20 20 20 74 61 62 73 5B tabs[
029090: 4D 41 58 4C 49 4E 45 2B 31 5D 0D 0A 2A 2F 0D 0A MAXLINE+1]..*/..
0290A0: 23 64 65 66 69 6E 65 20 44 45 46 54 41 42 20 38 #define DEFTAB 8
0290B0: 0D 0A 73 65 74 74 61 62 28 74 61 62 73 2C 20 61 ..settab(tabs, a
0290C0: 72 67 63 2C 20 61 72 67 76 29 20 63 68 61 72 20 rgc, argv) char
0290D0: 74 61 62 73 5B 5D 3B 20 69 6E 74 20 61 72 67 63 tabs[]; int argc
0290E0: 2C 20 2A 61 72 67 76 3B 20 7B 0D 0A 20 20 69 6E , *argv; {.. in
0290F0: 74 20 69 2C 20 6A 2C 20 6B 3B 0D 0A 20 20 63 68 t i, j, k;.. ch
029100: 61 72 20 70 61 72 6D 5B 39 5D 3B 0D 0A 20 20 69 ar parm[9];.. i
029110: 3D 30 3B 0D 0A 20 20 77 68 69 6C 65 28 2B 2B 69 =0;.. while(++i
029120: 3C 4D 41 58 4C 49 4E 45 29 20 74 61 62 73 5B 69 <MAXLINE) tabs[i
029130: 5D 3D 4E 4F 3B 0D 0A 20 20 69 66 28 28 67 65 74 ]=NO;.. if((get
029140: 61 72 67 28 31 2C 20 70 61 72 6D 2C 20 39 2C 20 arg(1, parm, 9,
029150: 61 72 67 63 2C 20 61 72 67 76 29 29 3D 3D 45 4F argc, argv))==EO
029160: 46 29 20 7B 0D 0A 20 20 20 20 69 3D 30 3B 0D 0A F) {.. i=0;..
029170: 20 20 20 20 77 68 69 6C 65 28 2B 2B 69 3C 4D 41 while(++i<MA
029180: 58 4C 49 4E 45 29 0D 0A 20 20 20 20 69 66 28 28 XLINE).. if((
029190: 69 25 44 45 46 54 41 42 29 3D 3D 31 29 20 74 61 i%DEFTAB)==1) ta
0291A0: 62 73 5B 69 5D 3D 59 45 53 3B 0D 0A 20 20 20 20 bs[i]=YES;..
0291B0: 72 65 74 75 72 6E 20 59 45 53 3B 0D 0A 20 20 20 return YES;..
0291C0: 20 7D 0D 0A 20 20 69 3D 30 3B 0D 0A 20 20 6A 3D }.. i=0;.. j=
0291D0: 31 3B 0D 0A 20 20 77 68 69 6C 65 28 67 65 74 61 1;.. while(geta
0291E0: 72 67 28 2B 2B 69 2C 20 70 61 72 6D 2C 20 39 2C rg(++i, parm, 9,
0291F0: 20 61 72 67 63 2C 20 61 72 67 76 29 21 3D 45 4F argc, argv)!=EO
029200: 6C 69 6E 65 5C 6E 22 2C 20 73 74 64 65 72 72 29 line\n", stderr)
029210: 3B 0D 0A 20 20 20 20 65 72 72 6F 72 20 3D 20 59 ;.. error = Y
029220: 45 53 3B 0D 0A 20 20 20 20 72 65 74 75 72 6E 3B ES;.. return;
029230: 0D 0A 20 20 20 20 7D 0D 0A 20 20 63 68 20 3D 20 .. }.. ch =
029240: 68 65 78 3B 0D 0A 20 20 73 65 6E 64 28 26 63 68 hex;.. send(&ch
029250: 29 3B 0D 0A 20 20 7D 0D 0A 0D 0A 73 65 6E 64 28 );.. }....send(
029260: 70 74 72 29 20 63 68 61 72 20 2A 70 74 72 3B 20 ptr) char *ptr;
029270: 7B 0D 0A 20 20 69 66 28 64 65 62 75 67 29 20 7B {.. if(debug) {
029280: 0D 0A 20 20 20 20 69 6E 74 20 69 3B 0D 0A 20 20 .. int i;..
029290: 20 20 63 68 61 72 20 73 74 72 5B 33 5D 3B 0D 0A char str[3];..
0292A0: 20 20 20 20 69 20 3D 20 2A 70 74 72 20 26 20 32 i = *ptr & 2
0292B0: 35 35 3B 0D 0A 20 20 20 20 69 74 6F 78 28 69 2C 55;.. itox(i,
0292C0: 20 73 74 72 2C 20 33 29 3B 0D 0A 20 20 20 20 66 str, 3);.. f
0292D0: 70 75 74 73 28 73 74 72 2C 20 73 74 64 65 72 72 puts(str, stderr
0292E0: 29 3B 0D 0A 20 20 20 20 66 70 75 74 73 28 22 20 );.. fputs("
0292F0: 22 2C 20 73 74 64 65 72 72 29 3B 0D 0A 20 20 20 ", stderr);..
029300: 20 7D 0D 0A 20 20 65 6C 73 65 20 77 72 69 74 65 }.. else write
029310: 28 73 74 64 6F 75 74 2C 20 70 74 72 2C 20 31 29 (stdout, ptr, 1)
029320: 3B 0D 0A 20 20 7D 0D 0A 0D 0A 1A 1A 1A 1A 1A 1A ;.. }..........
029330: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
029340: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
029350: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
029360: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
029370: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
029380: 32 20 7C 7C 20 21 69 73 73 70 61 63 65 28 6C 6E 2 || !isspace(ln
029390: 70 74 72 5B 69 5D 29 29 20 69 20 3D 20 30 3B 0D ptr[i])) i = 0;.
0293A0: 0A 20 20 77 68 69 6C 65 28 21 69 73 73 70 61 63 . while(!isspac
0293B0: 65 28 2A 6C 6E 70 74 72 29 29 20 2B 2B 6C 6E 70 e(*lnptr)) ++lnp
0293C0: 74 72 3B 0D 0A 20 20 69 66 28 69 20 3D 3D 20 30 tr;.. if(i == 0
0293D0: 29 20 7B 0D 0A 20 20 20 20 66 70 75 74 73 28 22 ) {.. fputs("
0293E0: 5C 37 5C 6E 2D 20 62 61 64 20 68 65 78 20 62 79 \7\n- bad hex by
0293F0: 74 65 20 69 6E 20 66 6F 6C 6C 6F 77 69 6E 67 20 te in following
029400: 46 29 20 7B 0D 0A 20 20 20 20 69 66 28 75 74 6F F) {.. if(uto
029410: 69 28 70 61 72 6D 2C 20 26 6B 29 29 20 7B 0D 0A i(parm, &k)) {..
029420: 20 20 20 20 20 20 69 66 28 6B 3C 3D 4D 41 58 4C if(k<=MAXL
029430: 49 4E 45 29 20 7B 0D 0A 20 20 20 20 20 20 20 20 INE) {..
029440: 74 61 62 73 5B 6B 5D 3D 59 45 53 3B 0D 0A 20 20 tabs[k]=YES;..
029450: 20 20 20 20 20 20 6A 3D 6B 3B 0D 0A 20 20 20 20 j=k;..
029460: 20 20 20 20 7D 0D 0A 20 20 20 20 20 20 65 6C 73 }.. els
029470: 65 20 7B 0D 0A 20 20 20 20 20 20 20 20 66 70 75 e {.. fpu
029480: 74 73 28 22 74 61 62 20 73 74 6F 70 20 62 65 79 ts("tab stop bey
029490: 6F 6E 64 20 6D 61 78 20 6C 69 6E 65 20 6C 65 6E ond max line len
0294A0: 67 74 68 5C 6E 22 2C 20 73 74 64 65 72 72 29 3B gth\n", stderr);
0294B0: 0D 0A 20 20 20 20 20 20 20 20 72 65 74 75 72 6E .. return
0294C0: 20 45 52 52 3B 0D 0A 20 20 20 20 20 20 20 20 7D ERR;.. }
0294D0: 0D 0A 20 20 20 20 20 20 7D 0D 0A 20 20 20 20 65 .. }.. e
0294E0: 6C 73 65 20 69 66 28 70 61 72 6D 5B 30 5D 3D 3D lse if(parm[0]==
0294F0: 27 2B 27 29 20 7B 0D 0A 20 20 20 20 20 20 69 66 '+') {.. if
029500: 28 75 74 6F 69 28 28 70 61 72 6D 2B 31 29 2C 20 (utoi((parm+1),
029510: 26 6B 29 29 0D 0A 20 20 20 20 20 20 20 20 77 68 &k)).. wh
029520: 69 6C 65 28 28 6A 3D 6A 2B 6B 29 3C 3D 4D 41 58 ile((j=j+k)<=MAX
029530: 4C 49 4E 45 29 20 74 61 62 73 5B 6A 5D 3D 59 45 LINE) tabs[j]=YE
029540: 53 3B 20 20 0D 0A 20 20 20 20 20 20 7D 0D 0A 20 S; .. }..
029550: 20 20 20 65 6C 73 65 20 72 65 74 75 72 6E 20 45 else return E
029560: 52 52 3B 0D 0A 20 20 20 20 7D 0D 0A 20 20 72 65 RR;.. }.. re
029570: 74 75 72 6E 20 59 45 53 3B 0D 0A 20 20 7D 0D 0A turn YES;.. }..
029580: 58 4C 49 4E 45 29 0D 0A 20 20 20 20 69 66 28 28 XLINE).. if((
029590: 69 25 44 45 46 54 41 42 29 3D 3D 31 29 20 74 61 i%DEFTAB)==1) ta
0295A0: 62 73 5B 69 5D 3D 59 45 53 3B 0D 0A 20 20 20 20 bs[i]=YES;..
0295B0: 72 65 74 75 72 6E 20 59 45 53 3B 0D 0A 20 20 20 return YES;..
0295C0: 20 7D 0D 0A 20 20 69 3D 30 3B 0D 0A 20 20 6A 3D }.. i=0;.. j=
0295D0: 31 3B 0D 0A 20 20 77 68 69 6C 65 28 67 65 74 61 1;.. while(geta
0295E0: 72 67 28 2B 2B 69 2C 20 70 61 72 6D 2C 20 39 2C rg(++i, parm, 9,
0295F0: 20 61 72 67 63 2C 20 61 72 67 76 29 21 3D 45 4F argc, argv)!=EO
029600: 2F 2A 0D 0A 2A 2A 20 73 72 74 2E 63 20 2D 2D 20 /*..** srt.c --
029610: 73 6F 72 74 20 74 65 78 74 20 6C 69 6E 65 73 0D sort text lines.
029620: 0A 2A 2A 0D 0A 2A 2A 20 43 6F 70 79 72 69 67 68 .**..** Copyrigh
029630: 74 20 31 39 38 32 20 4A 2E 20 45 2E 20 48 65 6E t 1982 J. E. Hen
029640: 64 72 69 78 2E 20 20 41 6C 6C 20 72 69 67 68 74 drix. All right
029650: 73 20 72 65 73 65 72 76 65 64 2E 0D 0A 2A 2A 0D s reserved...**.
029660: 0A 2A 2A 20 45 61 63 68 20 6C 69 6E 65 20 69 6E .** Each line in
029670: 20 74 68 65 20 62 75 66 66 65 72 20 69 73 20 70 the buffer is p
029680: 72 65 63 65 65 64 65 64 20 62 79 20 61 20 31 2D receeded by a 1-
029690: 62 79 74 65 20 6F 66 66 73 65 74 20 74 6F 0D 0A byte offset to..
0296A0: 2A 2A 20 74 68 65 20 73 6F 72 74 20 6B 65 79 2E ** the sort key.
0296B0: 20 20 4C 69 6E 65 20 70 6F 69 6E 74 65 72 73 20 Line pointers
0296C0: 64 65 73 69 67 6E 61 74 65 20 74 68 65 20 66 69 designate the fi
0296D0: 72 73 74 20 64 61 74 61 20 62 79 74 65 2E 0D 0A rst data byte...
0296E0: 2A 2F 0D 0A 23 69 6E 63 6C 75 64 65 20 3C 73 74 */..#include <st
0296F0: 64 69 6F 2E 68 3E 0D 0A 23 69 6E 63 6C 75 64 65 dio.h>..#include
029700: 20 22 74 6F 6F 6C 73 2E 68 22 0D 0A 23 64 65 66 "tools.h"..#def
029710: 69 6E 65 20 4E 4F 43 43 41 52 47 43 0D 0A 23 64 ine NOCCARGC..#d
029720: 65 66 69 6E 65 20 53 48 45 4C 4C 20 31 0D 0A 23 efine SHELL 1..#
029730: 64 65 66 69 6E 65 20 51 55 49 43 4B 20 32 0D 0A define QUICK 2..
029740: 23 64 65 66 69 6E 65 20 57 52 54 4D 4F 44 45 20 #define WRTMODE
029750: 32 0D 0A 23 64 65 66 69 6E 65 20 4D 41 58 52 55 2..#define MAXRU
029760: 4E 53 20 39 39 0D 0A 23 64 65 66 69 6E 65 20 4C NS 99..#define L
029770: 4F 47 50 54 52 20 32 30 0D 0A 23 64 65 66 69 6E OGPTR 20..#defin
029780: 65 20 41 56 47 4C 49 4E 20 32 38 0D 0A 23 64 65 e AVGLIN 28..#de
029790: 66 69 6E 65 20 52 45 53 45 52 56 45 20 32 30 30 fine RESERVE 200
0297A0: 30 0D 0A 23 64 65 66 69 6E 65 20 4D 45 52 47 45 0..#define MERGE
0297B0: 4F 52 44 45 52 20 35 0D 0A 63 68 61 72 20 2A 6C ORDER 5..char *l
0297C0: 69 6E 62 75 66 2C 20 6F 75 74 6E 61 6D 5B 4D 41 inbuf, outnam[MA
0297D0: 58 46 4E 5D 2C 20 74 6D 70 64 72 76 3B 0D 0A 63 XFN], tmpdrv;..c
0297E0: 68 61 72 20 6C 61 73 74 6C 69 6E 65 5B 4D 41 58 har lastline[MAX
0297F0: 4C 49 4E 45 2B 31 5D 3B 0D 0A 63 68 61 72 20 2A LINE+1];..char *
029800: 2F 2A 0D 0A 2A 2A 20 73 74 70 2E 63 20 2D 2D 20 /*..** stp.c --
029810: 73 65 74 75 70 20 61 20 64 65 76 69 63 65 20 63 setup a device c
029820: 6F 6E 66 69 67 75 72 61 74 69 6F 6E 0D 0A 2A 2F onfiguration..*/
029830: 0D 0A 23 69 6E 63 6C 75 64 65 20 3C 73 74 64 69 ..#include <stdi
029840: 6F 2E 68 3E 0D 0A 23 64 65 66 69 6E 65 20 4C 49 o.h>..#define LI
029850: 4E 45 53 5A 20 20 20 31 33 33 09 09 2F 2A 20 6D NESZ 133../* m
029860: 61 78 69 6D 75 6D 20 69 6E 70 75 74 20 6C 69 6E aximum input lin
029870: 65 20 73 69 7A 65 20 2A 2F 0D 0A 23 64 65 66 69 e size */..#defi
029880: 6E 65 20 46 45 4E 43 45 20 20 20 20 27 7C 27 09 ne FENCE '|'.
029890: 09 2F 2A 20 63 6F 6D 6D 65 6E 74 20 70 72 65 66 ./* comment pref
0298A0: 69 78 20 2A 2F 0D 0A 23 64 65 66 69 6E 65 20 51 ix */..#define Q
0298B0: 55 4F 54 45 20 20 20 20 27 22 27 09 09 2F 2A 20 UOTE '"'../*
0298C0: 71 75 6F 74 65 20 66 6F 72 20 73 74 72 69 6E 67 quote for string
0298D0: 73 20 2A 2F 0D 0A 63 68 61 72 20 6C 6E 5B 4C 49 s */..char ln[LI
0298E0: 4E 45 53 5A 5D 2C 20 2A 6C 6E 70 74 72 3B 0D 0A NESZ], *lnptr;..
0298F0: 69 6E 74 20 76 69 65 77 2C 20 64 65 62 75 67 2C int view, debug,
029900: 20 65 72 72 6F 72 3B 0D 0A 6D 61 69 6E 28 61 72 error;..main(ar
029910: 67 63 2C 20 61 72 67 76 29 20 69 6E 74 20 61 72 gc, argv) int ar
029920: 67 63 2C 20 2A 61 72 67 76 3B 20 7B 0D 0A 20 20 gc, *argv; {..
029930: 69 6E 74 20 69 3B 0D 0A 20 20 76 69 65 77 20 3D int i;.. view =
029940: 20 64 65 62 75 67 20 3D 20 4E 4F 3B 0D 0A 20 20 debug = NO;..
029950: 69 20 3D 20 30 3B 0D 0A 20 20 77 68 69 6C 65 28 i = 0;.. while(
029960: 67 65 74 61 72 67 28 2B 2B 69 2C 20 6C 6E 2C 20 getarg(++i, ln,
029970: 31 35 2C 20 61 72 67 63 2C 20 61 72 67 76 29 20 15, argc, argv)
029980: 21 3D 20 45 4F 46 29 20 7B 0D 0A 20 20 20 20 69 != EOF) {.. i
029990: 66 28 2A 6C 6E 20 3D 3D 20 27 2D 27 29 20 7B 0D f(*ln == '-') {.
0299A0: 0A 20 20 20 20 20 20 69 66 28 74 6F 6C 6F 77 65 . if(tolowe
0299B0: 72 28 6C 6E 5B 31 5D 29 20 3D 3D 20 27 76 27 29 r(ln[1]) == 'v')
0299C0: 20 7B 09 2F 2A 20 76 69 65 77 20 61 63 74 69 76 {./* view activ
0299D0: 69 74 79 20 2A 2F 0D 0A 20 20 20 20 20 20 20 20 ity */..
0299E0: 76 69 65 77 20 3D 20 59 45 53 3B 0D 0A 20 20 20 view = YES;..
0299F0: 20 20 20 20 20 63 6F 6E 74 69 6E 75 65 3B 0D 0A continue;..
029A00: 54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 00 00 00 Track-Info......
029A10: 23 00 01 00 02 09 52 E5 23 00 41 02 00 00 00 02 #.....R.#.A.....
029A20: 23 00 46 02 00 00 00 02 23 00 42 02 00 00 00 02 #.F.....#.B.....
029A30: 23 00 47 02 00 00 00 02 23 00 43 02 00 00 00 02 #.G.....#.C.....
029A40: 23 00 48 02 00 00 00 02 23 00 44 02 00 00 00 02 #.H.....#.D.....
029A50: 23 00 49 02 00 00 00 02 23 00 45 02 00 00 00 02 #.I.....#.E.....
029A60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
029A70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
029A80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
029A90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
029AA0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
029AB0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
029AC0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
029AD0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
029AE0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
029AF0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
029B00: 6D 61 78 62 75 66 2C 20 2A 6D 61 78 6C 69 6E 3B maxbuf, *maxlin;
029B10: 20 20 2F 2A 2A 2A 2A 20 66 61 6B 65 20 75 6E 73 /**** fake uns
029B20: 69 67 6E 65 64 20 69 6E 74 20 2A 2A 2A 2A 2F 0D igned int ****/.
029B30: 0A 63 68 61 72 20 74 6D 70 6F 75 74 5B 5D 3D 22 .char tmpout[]="
029B40: 58 3A 73 6F 72 74 30 30 2E 24 24 24 22 3B 0D 0A X:sort00.$$$";..
029B50: 63 68 61 72 20 74 6D 70 69 6E 70 5B 5D 3D 22 58 char tmpinp[]="X
029B60: 3A 73 6F 72 74 30 30 2E 24 24 24 22 3B 0D 0A 63 :sort00.$$$";..c
029B70: 68 61 72 20 74 6D 70 64 65 6C 5B 5D 3D 22 58 3A har tmpdel[]="X:
029B80: 73 6F 72 74 30 30 2E 24 24 24 22 3B 0D 0A 63 68 sort00.$$$";..ch
029B90: 61 72 20 64 65 6C 69 6D 3B 0D 0A 69 6E 74 20 20 ar delim;..int
029BA0: 66 69 65 6C 64 3B 0D 0A 69 6E 74 20 74 6D 70 66 field;..int tmpf
029BB0: 64 5B 4D 45 52 47 45 4F 52 44 45 52 5D 2C 20 2A d[MERGEORDER], *
029BC0: 6C 69 6E 70 74 72 2C 20 6E 6C 69 6E 65 73 3B 0D linptr, nlines;.
029BD0: 0A 69 6E 74 20 6C 6F 77 2C 20 6C 69 6D 2C 20 68 .int low, lim, h
029BE0: 69 67 68 2C 20 6F 75 74 66 69 6C 2C 20 6F 75 74 igh, outfil, out
029BF0: 70 75 74 2C 20 74 2C 20 6F 72 64 65 72 2C 20 75 put, t, order, u
029C00: 6E 69 71 75 65 2C 20 74 79 70 65 73 6F 72 74 3B nique, typesort;
029C10: 0D 0A 6D 61 69 6E 28 61 72 67 63 2C 20 61 72 67 ..main(argc, arg
029C20: 76 29 20 69 6E 74 20 61 72 67 63 2C 20 2A 61 72 v) int argc, *ar
029C30: 67 76 3B 20 7B 0D 0A 20 20 6C 61 73 74 6C 69 6E gv; {.. lastlin
029C40: 65 5B 30 5D 3D 6F 75 74 6E 61 6D 5B 30 5D 3D 30 e[0]=outnam[0]=0
029C50: 3B 0D 0A 20 20 74 6D 70 64 72 76 3D 27 58 27 3B ;.. tmpdrv='X';
029C60: 0D 0A 20 20 64 6F 61 72 67 73 28 61 72 67 63 2C .. doargs(argc,
029C70: 20 61 72 67 76 29 3B 0D 0A 20 20 69 66 28 74 6D argv);.. if(tm
029C80: 70 64 72 76 20 3D 3D 20 27 58 27 29 20 7B 0D 0A pdrv == 'X') {..
029C90: 20 20 20 20 73 74 72 63 70 79 28 74 6D 70 6F 75 strcpy(tmpou
029CA0: 74 2C 20 74 6D 70 6F 75 74 2B 32 29 3B 0D 0A 20 t, tmpout+2);..
029CB0: 20 20 20 73 74 72 63 70 79 28 74 6D 70 69 6E 70 strcpy(tmpinp
029CC0: 2C 20 74 6D 70 69 6E 70 2B 32 29 3B 0D 0A 20 20 , tmpinp+2);..
029CD0: 20 20 73 74 72 63 70 79 28 74 6D 70 64 65 6C 2C strcpy(tmpdel,
029CE0: 20 74 6D 70 64 65 6C 2B 32 29 3B 0D 0A 20 20 20 tmpdel+2);..
029CF0: 20 7D 0D 0A 20 20 65 6C 73 65 20 74 6D 70 6F 75 }.. else tmpou
029D00: 20 27 41 27 29 20 26 26 0D 0A 20 20 20 20 20 20 'A') &&..
029D10: 20 20 20 20 20 28 74 6F 75 70 70 65 72 28 61 72 (toupper(ar
029D20: 67 5B 32 5D 29 20 3C 20 27 47 27 29 20 26 26 0D g[2]) < 'G') &&.
029D30: 0A 20 20 20 20 20 20 20 20 20 20 20 28 61 72 67 . (arg
029D40: 5B 33 5D 3D 3D 4E 55 4C 4C 29 29 0D 0A 20 20 20 [3]==NULL))..
029D50: 20 20 20 20 20 20 20 20 74 6D 70 64 72 76 3D 61 tmpdrv=a
029D60: 72 67 5B 32 5D 3B 0D 0A 20 20 20 20 65 6C 73 65 rg[2];.. else
029D70: 20 69 66 28 73 61 6D 65 28 63 2C 20 27 63 27 29 if(same(c, 'c')
029D80: 29 20 7B 0D 0A 20 20 20 20 20 20 64 65 6C 69 6D ) {.. delim
029D90: 3D 4E 55 4C 4C 3B 0D 0A 20 20 20 20 20 20 69 66 =NULL;.. if
029DA0: 28 61 72 67 5B 75 74 6F 69 28 61 72 67 2B 32 2C (arg[utoi(arg+2,
029DB0: 20 26 66 69 65 6C 64 29 2B 32 5D 20 21 3D 20 4E &field)+2] != N
029DC0: 55 4C 4C 29 20 65 72 72 6F 72 3D 59 45 53 3B 0D ULL) error=YES;.
029DD0: 0A 20 20 20 20 20 20 69 66 28 66 69 65 6C 64 29 . if(field)
029DE0: 20 2D 2D 66 69 65 6C 64 3B 0D 0A 20 20 20 20 20 --field;..
029DF0: 20 7D 0D 0A 20 20 20 20 65 6C 73 65 20 69 66 28 }.. else if(
029E00: 73 61 6D 65 28 63 2C 20 27 66 27 29 29 20 7B 0D same(c, 'f')) {.
029E10: 0A 20 20 20 20 20 20 69 66 28 61 72 67 5B 28 6C . if(arg[(l
029E20: 65 6E 3D 75 74 6F 69 28 61 72 67 2B 32 2C 20 26 en=utoi(arg+2, &
029E30: 66 69 65 6C 64 29 29 2B 32 5D 20 3E 20 27 20 27 field))+2] > ' '
029E40: 29 20 7B 0D 0A 20 20 20 20 20 20 20 20 64 65 6C ) {.. del
029E50: 69 6D 3D 61 72 67 5B 6C 65 6E 2B 32 5D 3B 0D 0A im=arg[len+2];..
029E60: 20 20 20 20 20 20 20 20 69 66 28 61 72 67 5B 6C if(arg[l
029E70: 65 6E 2B 33 5D 20 21 3D 20 4E 55 4C 4C 29 20 65 en+3] != NULL) e
029E80: 72 72 6F 72 3D 59 45 53 3B 0D 0A 20 20 20 20 20 rror=YES;..
029E90: 20 20 20 7D 0D 0A 20 20 20 20 20 20 65 6C 73 65 }.. else
029EA0: 20 64 65 6C 69 6D 3D 27 20 27 3B 0D 0A 20 20 20 delim=' ';..
029EB0: 20 20 20 69 66 28 66 69 65 6C 64 29 20 2D 2D 66 if(field) --f
029EC0: 69 65 6C 64 3B 0D 0A 20 20 20 20 20 20 66 69 65 ield;.. fie
029ED0: 6C 64 20 3D 20 2D 66 69 65 6C 64 3B 0D 0A 20 20 ld = -field;..
029EE0: 20 20 20 20 7D 0D 0A 20 20 20 20 65 6C 73 65 20 }.. else
029EF0: 69 66 28 61 72 67 5B 32 5D 21 3D 4E 55 4C 4C 29 if(arg[2]!=NULL)
029F00: 74 5B 30 5D 3D 74 6D 70 69 6E 70 5B 30 5D 3D 74 t[0]=tmpinp[0]=t
029F10: 6D 70 64 65 6C 5B 30 5D 3D 74 6D 70 64 72 76 3B mpdel[0]=tmpdrv;
029F20: 0D 0A 20 20 6F 75 74 70 75 74 3D 73 74 64 6F 75 .. output=stdou
029F30: 74 3B 0D 0A 20 20 69 66 28 28 6C 69 6D 3D 61 76 t;.. if((lim=av
029F40: 61 69 6C 28 59 45 53 29 29 3C 30 29 20 6C 69 6D ail(YES))<0) lim
029F50: 3D 33 32 37 36 37 3B 0D 0A 20 20 6D 61 78 6C 69 =32767;.. maxli
029F60: 6E 3D 28 6C 69 6D 2D 52 45 53 45 52 56 45 29 2F n=(lim-RESERVE)/
029F70: 28 32 2B 41 56 47 4C 49 4E 29 3B 0D 0A 20 20 6C (2+AVGLIN);.. l
029F80: 69 6E 70 74 72 3D 6D 61 6C 6C 6F 63 28 32 2A 6D inptr=malloc(2*m
029F90: 61 78 6C 69 6E 29 3B 0D 0A 20 20 69 66 28 28 6C axlin);.. if((l
029FA0: 69 6D 3D 61 76 61 69 6C 28 59 45 53 29 29 3C 30 im=avail(YES))<0
029FB0: 29 20 6C 69 6D 3D 33 32 37 36 37 3B 0D 0A 20 20 ) lim=32767;..
029FC0: 6D 61 78 62 75 66 3D 6C 69 6D 20 2D 20 52 45 53 maxbuf=lim - RES
029FD0: 45 52 56 45 3B 0D 0A 20 20 6C 69 6E 62 75 66 3D ERVE;.. linbuf=
029FE0: 6D 61 6C 6C 6F 63 28 6D 61 78 62 75 66 29 3B 0D malloc(maxbuf);.
029FF0: 0A 0D 0A 20 20 68 69 67 68 3D 30 3B 0D 0A 20 20 ... high=0;..
02A000: 77 68 69 6C 65 28 59 45 53 29 20 7B 0D 0A 20 20 while(YES) {..
02A010: 20 20 69 66 28 2B 2B 68 69 67 68 20 3E 3D 20 4D if(++high >= M
02A020: 41 58 52 55 4E 53 29 20 7B 0D 0A 20 20 20 20 20 AXRUNS) {..
02A030: 20 66 70 75 74 73 28 22 66 69 6C 65 20 74 6F 6F fputs("file too
02A040: 20 6C 61 72 67 65 5C 6E 22 2C 20 73 74 64 65 72 large\n", stder
02A050: 72 29 3B 0D 0A 20 20 20 20 20 20 61 62 6F 72 74 r);.. abort
02A060: 28 37 29 3B 0D 0A 20 20 20 20 20 20 7D 0D 0A 20 (7);.. }..
02A070: 20 20 20 74 3D 67 74 65 78 74 28 29 3B 0D 0A 0D t=gtext();...
02A080: 0A 20 20 20 20 73 6F 72 74 28 30 2C 20 6E 6C 69 . sort(0, nli
02A090: 6E 65 73 2D 31 29 3B 0D 0A 0D 0A 20 20 20 20 69 nes-1);.... i
02A0A0: 66 28 68 69 67 68 3D 3D 31 29 20 7B 0D 0A 20 20 f(high==1) {..
02A0B0: 20 20 20 20 69 66 28 74 3D 3D 4E 55 4C 4C 29 20 if(t==NULL)
02A0C0: 7B 0D 0A 20 20 20 20 20 20 20 20 6F 75 74 66 69 {.. outfi
02A0D0: 6C 3D 6F 75 74 70 75 74 3B 0D 0A 20 20 20 20 20 l=output;..
02A0E0: 20 20 20 70 74 65 78 74 28 29 3B 0D 0A 20 20 20 ptext();..
02A0F0: 20 20 20 20 20 66 63 6C 6F 73 65 28 6F 75 74 66 fclose(outf
02A100: 20 65 72 72 6F 72 3D 59 45 53 3B 0D 0A 20 20 20 error=YES;..
02A110: 20 65 6C 73 65 20 69 66 28 73 61 6D 65 28 63 2C else if(same(c,
02A120: 20 27 64 27 29 29 20 6F 72 64 65 72 3D 2D 31 3B 'd')) order=-1;
02A130: 0D 0A 20 20 20 20 65 6C 73 65 20 69 66 28 73 61 .. else if(sa
02A140: 6D 65 28 63 2C 20 27 75 27 29 29 20 75 6E 69 71 me(c, 'u')) uniq
02A150: 75 65 3D 59 45 53 3B 0D 0A 20 20 20 20 65 6C 73 ue=YES;.. els
02A160: 65 20 69 66 28 73 61 6D 65 28 63 2C 20 27 71 27 e if(same(c, 'q'
02A170: 29 29 20 74 79 70 65 73 6F 72 74 3D 51 55 49 43 )) typesort=QUIC
02A180: 4B 3B 0D 0A 20 20 20 20 65 6C 73 65 20 65 72 72 K;.. else err
02A190: 6F 72 3D 59 45 53 3B 0D 0A 20 20 20 20 69 66 28 or=YES;.. if(
02A1A0: 65 72 72 6F 72 29 20 7B 0D 0A 20 20 20 20 20 20 error) {..
02A1B0: 66 70 75 74 73 28 22 75 73 61 67 65 3A 20 53 52 fputs("usage: SR
02A1C0: 54 20 5B 2D 43 23 7C 2D 46 23 3F 5D 20 5B 2D 44 T [-C#|-F#?] [-D
02A1D0: 5D 20 5B 2D 55 5D 20 5B 2D 54 78 5D 20 5B 2D 51 ] [-U] [-Tx] [-Q
02A1E0: 5D 5C 6E 22 2C 0D 0A 20 20 20 20 20 20 20 20 20 ]\n",..
02A1F0: 20 20 20 20 73 74 64 65 72 72 29 3B 0D 0A 20 20 stderr);..
02A200: 20 20 20 20 61 62 6F 72 74 28 37 29 3B 0D 0A 20 abort(7);..
02A210: 20 20 20 20 20 7D 0D 0A 20 20 20 20 7D 0D 0A 20 }.. }..
02A220: 20 7D 0D 0A 0D 0A 67 74 65 78 74 28 29 20 7B 0D }....gtext() {.
02A230: 0A 20 20 69 6E 74 20 6C 65 6E 3B 0D 0A 20 20 63 . int len;.. c
02A240: 68 61 72 20 2A 6C 62 70 3B 0D 0A 20 20 6C 62 70 har *lbp;.. lbp
02A250: 3D 31 3B 20 2F 2A 2A 20 6C 65 61 76 65 20 73 70 =1; /** leave sp
02A260: 61 63 65 20 66 6F 72 20 66 69 72 73 74 20 73 6F ace for first so
02A270: 72 74 20 6B 65 79 20 6F 66 66 73 65 74 20 2A 2A rt key offset **
02A280: 2F 0D 0A 20 20 6E 6C 69 6E 65 73 3D 30 3B 0D 0A /.. nlines=0;..
02A290: 20 20 77 68 69 6C 65 28 59 45 53 29 20 7B 0D 0A while(YES) {..
02A2A0: 20 20 20 20 70 6F 6C 6C 28 59 45 53 29 3B 0D 0A poll(YES);..
02A2B0: 20 20 20 20 69 66 28 28 6C 65 6E 3D 72 65 61 64 if((len=read
02A2C0: 6C 69 6E 65 28 6C 69 6E 62 75 66 2B 6C 62 70 2C line(linbuf+lbp,
02A2D0: 20 73 74 64 69 6E 29 29 3D 3D 4E 55 4C 4C 29 20 stdin))==NULL)
02A2E0: 62 72 65 61 6B 3B 0D 0A 20 20 20 20 6C 69 6E 70 break;.. linp
02A2F0: 74 72 5B 6E 6C 69 6E 65 73 2B 2B 5D 3D 6C 62 70 tr[nlines++]=lbp
02A300: 69 6C 29 3B 0D 0A 20 20 20 20 20 20 20 20 65 78 il);.. ex
02A310: 69 74 28 30 29 3B 0D 0A 20 20 20 20 20 20 20 20 it(0);..
02A320: 7D 0D 0A 20 20 20 20 20 20 7D 0D 0A 20 20 20 20 }.. }..
02A330: 6D 61 6B 65 74 6D 70 28 29 3B 0D 0A 20 20 20 20 maketmp();..
02A340: 70 74 65 78 74 28 29 3B 0D 0A 20 20 20 20 66 63 ptext();.. fc
02A350: 6C 6F 73 65 28 6F 75 74 66 69 6C 29 3B 0D 0A 20 lose(outfil);..
02A360: 20 20 20 69 66 28 74 3D 3D 4E 55 4C 4C 29 20 62 if(t==NULL) b
02A370: 72 65 61 6B 3B 0D 0A 20 20 20 20 7D 0D 0A 0D 0A reak;.. }....
02A380: 0D 0A 2F 2A 0D 0A 2A 2A 20 4D 75 73 74 20 64 65 ../*..** Must de
02A390: 61 6C 6C 6F 63 61 74 65 20 69 6E 20 72 65 76 65 allocate in reve
02A3A0: 72 73 65 20 6F 72 64 65 72 20 66 72 6F 6D 20 61 rse order from a
02A3B0: 6C 6C 6F 63 61 74 69 6F 6E 2E 0D 0A 2A 2A 20 57 llocation...** W
02A3C0: 69 6C 6C 20 61 6C 6C 6F 63 61 74 65 20 69 6E 70 ill allocate inp
02A3D0: 75 74 20 74 6D 70 20 66 69 6C 65 20 62 75 66 66 ut tmp file buff
02A3E0: 65 72 73 2F 46 43 42 73 20 6F 76 65 72 20 74 68 ers/FCBs over th
02A3F0: 69 73 20 73 70 61 63 65 3B 0D 0A 2A 2A 20 74 68 is space;..** th
02A400: 65 73 65 20 6D 75 73 74 20 6E 6F 74 20 72 65 61 ese must not rea
02A410: 63 68 20 65 6E 64 20 6F 66 20 6C 69 6E 62 75 66 ch end of linbuf
02A420: 20 77 68 65 72 65 20 6F 75 74 70 75 74 20 74 6D where output tm
02A430: 70 20 66 69 6C 65 0D 0A 2A 2A 20 73 70 61 63 65 p file..** space
02A440: 20 77 61 73 20 61 6C 6C 6F 63 61 74 65 64 2C 20 was allocated,
02A450: 73 69 6E 63 65 20 74 68 61 74 20 73 70 61 63 65 since that space
02A460: 20 73 74 61 79 73 20 77 69 74 68 20 74 68 61 74 stays with that
02A470: 20 66 64 2E 0D 0A 2A 2F 0D 0A 20 20 66 72 65 65 fd...*/.. free
02A480: 28 6C 69 6E 62 75 66 29 3B 0D 0A 20 20 66 72 65 (linbuf);.. fre
02A490: 65 28 6C 69 6E 70 74 72 29 3B 0D 0A 0D 0A 20 20 e(linptr);....
02A4A0: 6C 69 6E 70 74 72 3D 6D 61 6C 6C 6F 63 28 32 2A linptr=malloc(2*
02A4B0: 28 4D 45 52 47 45 4F 52 44 45 52 2B 31 29 29 3B (MERGEORDER+1));
02A4C0: 0D 0A 20 20 6C 69 6E 62 75 66 3D 6D 61 6C 6C 6F .. linbuf=mallo
02A4D0: 63 28 4D 45 52 47 45 4F 52 44 45 52 2A 28 4D 41 c(MERGEORDER*(MA
02A4E0: 58 4C 49 4E 45 2B 31 29 29 3B 0D 0A 20 20 6C 61 XLINE+1));.. la
02A4F0: 73 74 6C 69 6E 65 5B 30 5D 3D 30 3B 0D 0A 20 20 stline[0]=0;..
02A500: 3B 0D 0A 20 20 20 20 6C 62 70 3D 6C 62 70 2B 6C ;.. lbp=lbp+l
02A510: 65 6E 3B 20 20 2F 2A 2A 20 68 61 73 20 32 20 62 en; /** has 2 b
02A520: 79 74 65 73 20 66 6F 72 20 4E 55 4C 4C 20 61 6E ytes for NULL an
02A530: 64 20 6E 65 78 74 20 6F 66 66 73 65 74 20 2A 2A d next offset **
02A540: 2F 0D 0A 20 20 20 20 69 66 28 28 28 6C 62 70 2B /.. if(((lbp+
02A550: 31 29 20 3E 3D 20 28 6D 61 78 62 75 66 2D 28 4D 1) >= (maxbuf-(M
02A560: 41 58 4C 49 4E 45 2B 31 29 29 29 7C 7C 28 6E 6C AXLINE+1)))||(nl
02A570: 69 6E 65 73 20 3E 3D 20 6D 61 78 6C 69 6E 29 29 ines >= maxlin))
02A580: 0D 0A 20 20 20 20 20 20 62 72 65 61 6B 3B 0D 0A .. break;..
02A590: 20 20 20 20 7D 0D 0A 20 20 72 65 74 75 72 6E 20 }.. return
02A5A0: 6C 65 6E 3B 0D 0A 20 20 7D 0D 0A 0D 0A 70 74 65 len;.. }....pte
02A5B0: 78 74 28 29 20 7B 0D 0A 20 20 69 6E 74 20 69 3B xt() {.. int i;
02A5C0: 0D 0A 20 20 63 68 61 72 20 2A 6C 62 70 3B 0D 0A .. char *lbp;..
02A5D0: 20 20 69 3D 30 3B 0D 0A 20 20 77 68 69 6C 65 28 i=0;.. while(
02A5E0: 69 20 3C 20 6E 6C 69 6E 65 73 29 20 7B 0D 0A 20 i < nlines) {..
02A5F0: 20 20 20 70 6F 6C 6C 28 59 45 53 29 3B 0D 0A 20 poll(YES);..
02A600: 20 20 20 6C 62 70 3D 6C 69 6E 62 75 66 2B 6C 69 lbp=linbuf+li
02A610: 6E 70 74 72 5B 69 2B 2B 5D 3B 0D 0A 20 20 20 20 nptr[i++];..
02A620: 69 66 28 64 75 70 74 65 73 74 28 6C 62 70 29 29 if(duptest(lbp))
02A630: 20 63 6F 6E 74 69 6E 75 65 3B 0D 0A 20 20 20 20 continue;..
02A640: 73 6F 75 74 28 6C 62 70 2C 20 6F 75 74 66 69 6C sout(lbp, outfil
02A650: 29 3B 0D 0A 20 20 20 20 7D 0D 0A 20 20 7D 0D 0A );.. }.. }..
02A660: 0D 0A 64 75 70 74 65 73 74 28 6C 69 6E 65 29 20 ..duptest(line)
02A670: 63 68 61 72 20 2A 6C 69 6E 65 3B 20 7B 0D 0A 20 char *line; {..
02A680: 20 69 6E 74 20 64 69 66 66 3B 0D 0A 20 20 69 66 int diff;.. if
02A690: 28 21 75 6E 69 71 75 65 29 20 72 65 74 75 72 6E (!unique) return
02A6A0: 20 28 4E 4F 29 3B 20 20 20 20 20 20 20 20 20 20 (NO);
02A6B0: 20 2F 2A 30 33 2A 2F 0D 0A 20 20 64 69 66 66 20 /*03*/.. diff
02A6C0: 3D 20 6C 65 78 63 6D 70 28 6C 61 73 74 6C 69 6E = lexcmp(lastlin
02A6D0: 65 2C 20 6C 69 6E 65 29 3B 0D 0A 20 20 73 74 72 e, line);.. str
02A6E0: 63 70 79 28 6C 61 73 74 6C 69 6E 65 2C 20 6C 69 cpy(lastline, li
02A6F0: 6E 65 29 3B 0D 0A 20 20 72 65 74 75 72 6E 20 28 ne);.. return (
02A700: 6C 6F 77 3D 31 3B 0D 0A 20 20 77 68 69 6C 65 28 low=1;.. while(
02A710: 6C 6F 77 20 3C 20 68 69 67 68 29 20 7B 20 20 20 low < high) {
02A720: 20 20 20 20 20 20 20 20 20 20 20 20 2F 2A 30 35 /*05
02A730: 2A 2F 0D 0A 20 20 20 20 6C 69 6D 3D 6C 6F 77 2B */.. lim=low+
02A740: 4D 45 52 47 45 4F 52 44 45 52 2D 31 3B 0D 0A 20 MERGEORDER-1;..
02A750: 20 20 20 69 66 28 68 69 67 68 20 3C 20 6C 69 6D if(high < lim
02A760: 29 20 6C 69 6D 3D 68 69 67 68 3B 0D 0A 20 20 20 ) lim=high;..
02A770: 20 74 3D 30 3B 0D 0A 20 20 20 20 77 68 69 6C 65 t=0;.. while
02A780: 28 74 20 3C 3D 20 28 6C 69 6D 2D 6C 6F 77 29 29 (t <= (lim-low))
02A790: 20 7B 0D 0A 20 20 20 20 20 20 62 75 6D 70 74 6D {.. bumptm
02A7A0: 70 28 74 6D 70 69 6E 70 29 3B 0D 0A 20 20 20 20 p(tmpinp);..
02A7B0: 20 20 69 66 28 28 74 6D 70 66 64 5B 74 5D 3D 66 if((tmpfd[t]=f
02A7C0: 6F 70 65 6E 28 74 6D 70 69 6E 70 2C 20 22 72 22 open(tmpinp, "r"
02A7D0: 29 29 3D 3D 4E 55 4C 4C 29 20 63 61 6E 74 28 74 ))==NULL) cant(t
02A7E0: 6D 70 69 6E 70 29 3B 0D 0A 20 20 20 20 20 20 61 mpinp);.. a
02A7F0: 75 78 62 75 66 28 74 6D 70 66 64 5B 74 2B 2B 5D uxbuf(tmpfd[t++]
02A800: 2C 20 32 30 34 38 29 3B 20 2F 2A 20 72 65 64 75 , 2048); /* redu
02A810: 6E 64 61 6E 74 20 63 61 6C 6C 73 20 69 67 6E 6F ndant calls igno
02A820: 72 65 64 20 2A 2F 0D 0A 20 20 20 20 20 20 7D 0D red */.. }.
02A830: 0A 20 20 20 20 69 66 28 6C 69 6D 3D 3D 68 69 67 . if(lim==hig
02A840: 68 29 20 6F 75 74 66 69 6C 3D 6F 75 74 70 75 74 h) outfil=output
02A850: 3B 0D 0A 20 20 20 20 65 6C 73 65 20 6D 61 6B 65 ;.. else make
02A860: 74 6D 70 28 29 3B 0D 0A 20 20 20 20 69 66 28 2B tmp();.. if(+
02A870: 2B 68 69 67 68 20 3E 3D 20 4D 41 58 52 55 4E 53 +high >= MAXRUNS
02A880: 29 20 7B 0D 0A 20 20 20 20 20 20 66 70 75 74 73 ) {.. fputs
02A890: 28 22 66 69 6C 65 20 74 6F 6F 20 6C 61 72 67 65 ("file too large
02A8A0: 5C 6E 22 2C 20 73 74 64 65 72 72 29 3B 0D 0A 20 \n", stderr);..
02A8B0: 20 20 20 20 20 61 62 6F 72 74 28 37 29 3B 0D 0A abort(7);..
02A8C0: 20 20 20 20 20 20 7D 0D 0A 20 20 20 20 6D 65 72 }.. mer
02A8D0: 67 65 28 6C 69 6D 2D 6C 6F 77 2B 31 29 3B 0D 0A ge(lim-low+1);..
02A8E0: 20 20 20 20 66 63 6C 6F 73 65 28 6F 75 74 66 69 fclose(outfi
02A8F0: 6C 29 3B 0D 0A 20 20 20 20 74 3D 30 3B 0D 0A 20 l);.. t=0;..
02A900: 21 64 69 66 66 29 3B 0D 0A 20 20 7D 0D 0A 0D 0A !diff);.. }....
02A910: 62 75 6D 70 74 6D 70 28 74 6D 70 6E 61 6D 65 29 bumptmp(tmpname)
02A920: 20 63 68 61 72 20 74 6D 70 6E 61 6D 65 5B 5D 3B char tmpname[];
02A930: 20 7B 0D 0A 20 20 63 68 61 72 20 2A 64 69 67 69 {.. char *digi
02A940: 74 3B 0D 0A 20 20 64 69 67 69 74 20 3D 20 73 74 t;.. digit = st
02A950: 72 63 68 72 28 74 6D 70 6E 61 6D 65 2C 20 27 2E rchr(tmpname, '.
02A960: 27 29 20 2D 20 31 3B 0D 0A 20 20 69 66 28 2A 64 ') - 1;.. if(*d
02A970: 69 67 69 74 20 3D 3D 20 27 39 27 29 20 7B 2A 64 igit == '9') {*d
02A980: 69 67 69 74 20 3D 20 27 30 27 3B 20 2D 2D 64 69 igit = '0'; --di
02A990: 67 69 74 3B 7D 0D 0A 20 20 2B 2B 2A 64 69 67 69 git;}.. ++*digi
02A9A0: 74 3B 0D 0A 20 20 7D 0D 0A 0D 0A 6D 61 6B 65 74 t;.. }....maket
02A9B0: 6D 70 28 29 20 7B 0D 0A 20 20 62 75 6D 70 74 6D mp() {.. bumptm
02A9C0: 70 28 74 6D 70 6F 75 74 29 3B 0D 0A 20 20 69 66 p(tmpout);.. if
02A9D0: 28 28 6F 75 74 66 69 6C 3D 66 6F 70 65 6E 28 74 ((outfil=fopen(t
02A9E0: 6D 70 6F 75 74 2C 22 77 22 29 29 3D 3D 4E 55 4C mpout,"w"))==NUL
02A9F0: 4C 29 20 63 61 6E 74 28 74 6D 70 6F 75 74 29 3B L) cant(tmpout);
02AA00: 0D 0A 20 20 7D 0D 0A 0D 0A 6B 69 6C 6C 74 6D 70 .. }....killtmp
02AA10: 28 29 20 7B 0D 0A 20 20 62 75 6D 70 74 6D 70 28 () {.. bumptmp(
02AA20: 74 6D 70 64 65 6C 29 3B 0D 0A 20 20 75 6E 6C 69 tmpdel);.. unli
02AA30: 6E 6B 28 74 6D 70 64 65 6C 29 3B 0D 0A 20 20 7D nk(tmpdel);.. }
02AA40: 0D 0A 0D 0A 73 6F 72 74 28 6C 76 2C 20 75 76 29 ....sort(lv, uv)
02AA50: 20 69 6E 74 20 6C 76 2C 20 75 76 3B 20 7B 0D 0A int lv, uv; {..
02AA60: 20 20 69 66 28 74 79 70 65 73 6F 72 74 3D 3D 51 if(typesort==Q
02AA70: 55 49 43 4B 29 20 71 75 69 63 6B 28 6C 76 2C 20 UICK) quick(lv,
02AA80: 75 76 29 3B 0D 0A 20 20 65 6C 73 65 20 20 20 20 uv);.. else
02AA90: 20 20 20 20 20 20 20 20 20 20 20 20 73 68 65 6C shel
02AAA0: 6C 28 6C 76 2C 20 75 76 29 3B 0D 0A 20 20 7D 0D l(lv, uv);.. }.
02AAB0: 0A 0D 0A 73 68 65 6C 6C 28 6C 76 2C 20 75 76 29 ...shell(lv, uv)
02AAC0: 20 69 6E 74 20 6C 76 2C 20 75 76 3B 20 7B 0D 0A int lv, uv; {..
02AAD0: 20 20 69 6E 74 20 67 61 70 2C 20 69 2C 20 6A 2C int gap, i, j,
02AAE0: 20 6A 67 3B 0D 0A 20 20 67 61 70 20 3D 20 28 75 jg;.. gap = (u
02AAF0: 76 2D 6C 76 2B 31 29 20 3E 3E 20 31 3B 20 2F 2A v-lv+1) >> 1; /*
02AB00: 20 20 20 77 68 69 6C 65 28 74 20 3C 3D 20 28 6C while(t <= (l
02AB10: 69 6D 2D 6C 6F 77 29 29 20 7B 0D 0A 20 20 20 20 im-low)) {..
02AB20: 20 20 66 63 6C 6F 73 65 28 74 6D 70 66 64 5B 74 fclose(tmpfd[t
02AB30: 2B 2B 5D 29 3B 20 20 20 20 20 20 20 20 20 20 20 ++]);
02AB40: 2F 2A 30 32 2A 2F 0D 0A 20 20 20 20 20 20 6B 69 /*02*/.. ki
02AB50: 6C 6C 74 6D 70 28 29 3B 0D 0A 20 20 20 20 20 20 lltmp();..
02AB60: 7D 0D 0A 20 20 20 20 6C 6F 77 3D 6C 6F 77 2B 4D }.. low=low+M
02AB70: 45 52 47 45 4F 52 44 45 52 3B 0D 0A 20 20 20 20 ERGEORDER;..
02AB80: 7D 0D 0A 20 20 7D 0D 0A 0D 0A 64 6F 61 72 67 73 }.. }....doargs
02AB90: 28 61 72 67 63 2C 20 61 72 67 76 29 20 20 69 6E (argc, argv) in
02ABA0: 74 20 61 72 67 63 2C 20 2A 61 72 67 76 3B 20 20 t argc, *argv;
02ABB0: 7B 0D 0A 20 20 63 68 61 72 20 61 72 67 5B 4D 41 {.. char arg[MA
02ABC0: 58 46 4E 5D 2C 20 63 3B 0D 0A 20 20 69 6E 74 20 XFN], c;.. int
02ABD0: 69 2C 20 65 72 72 6F 72 2C 20 6C 65 6E 3B 0D 0A i, error, len;..
02ABE0: 20 20 66 69 65 6C 64 3D 30 3B 0D 0A 20 20 64 65 field=0;.. de
02ABF0: 6C 69 6D 3D 4E 55 4C 4C 3B 20 20 20 20 2F 2A 2A lim=NULL; /**
02AC00: 20 69 6E 64 69 63 61 74 65 73 20 63 6F 6C 75 6D indicates colum
02AC10: 6E 20 6E 75 6D 62 65 72 20 69 6E 20 66 69 65 6C n number in fiel
02AC20: 64 20 2A 2A 2F 0D 0A 20 20 6F 72 64 65 72 3D 31 d **/.. order=1
02AC30: 3B 0D 0A 20 20 74 79 70 65 73 6F 72 74 3D 53 48 ;.. typesort=SH
02AC40: 45 4C 4C 3B 0D 0A 20 20 75 6E 69 71 75 65 3D 65 ELL;.. unique=e
02AC50: 72 72 6F 72 3D 4E 4F 3B 0D 0A 20 20 69 3D 30 3B rror=NO;.. i=0;
02AC60: 0D 0A 20 20 77 68 69 6C 65 28 67 65 74 61 72 67 .. while(getarg
02AC70: 28 2B 2B 69 2C 20 61 72 67 2C 20 4D 41 58 46 4E (++i, arg, MAXFN
02AC80: 2C 20 61 72 67 63 2C 20 61 72 67 76 29 21 3D 45 , argc, argv)!=E
02AC90: 4F 46 29 20 7B 0D 0A 20 20 20 20 63 3D 61 72 67 OF) {.. c=arg
02ACA0: 5B 31 5D 3B 0D 0A 20 20 20 20 69 66 28 61 72 67 [1];.. if(arg
02ACB0: 5B 30 5D 21 3D 27 2D 27 29 20 65 72 72 6F 72 3D [0]!='-') error=
02ACC0: 59 45 53 3B 0D 0A 20 20 20 20 65 6C 73 65 20 69 YES;.. else i
02ACD0: 66 28 73 61 6D 65 28 63 2C 20 27 74 27 29 20 26 f(same(c, 't') &
02ACE0: 26 0D 0A 20 20 20 20 20 20 20 20 20 20 20 28 74 &.. (t
02ACF0: 6F 75 70 70 65 72 28 61 72 67 5B 32 5D 29 20 3E oupper(arg[2]) >
02AD00: 54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 00 00 00 Track-Info......
02AD10: 24 00 01 00 02 09 52 E5 24 00 41 02 00 00 00 02 $.....R.$.A.....
02AD20: 24 00 46 02 00 00 00 02 24 00 42 02 00 00 00 02 $.F.....$.B.....
02AD30: 24 00 47 02 00 00 00 02 24 00 43 02 00 00 00 02 $.G.....$.C.....
02AD40: 24 00 48 02 00 00 00 02 24 00 44 02 00 00 00 02 $.H.....$.D.....
02AD50: 24 00 49 02 00 00 00 02 24 00 45 02 00 00 00 02 $.I.....$.E.....
02AD60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02AD70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02AD80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02AD90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02ADA0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02ADB0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02ADC0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02ADD0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02ADE0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02ADF0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02AE00: 2A 20 64 69 76 69 64 65 20 62 79 20 32 20 2A 2A * divide by 2 **
02AE10: 2F 0D 0A 20 20 77 68 69 6C 65 28 67 61 70 20 3E /.. while(gap >
02AE20: 20 30 29 20 7B 0D 0A 20 20 20 20 70 6F 6C 6C 28 0) {.. poll(
02AE30: 59 45 53 29 3B 0D 0A 20 20 20 20 69 20 3D 20 67 YES);.. i = g
02AE40: 61 70 20 2B 20 6C 76 3B 0D 0A 20 20 20 20 77 68 ap + lv;.. wh
02AE50: 69 6C 65 28 69 20 3C 3D 20 75 76 29 20 7B 0D 0A ile(i <= uv) {..
02AE60: 20 20 20 20 20 20 6A 20 3D 20 69 2B 2B 20 2D 20 j = i++ -
02AE70: 67 61 70 3B 0D 0A 20 20 20 20 20 20 77 68 69 6C gap;.. whil
02AE80: 65 28 6A 20 3E 3D 20 6C 76 29 20 7B 0D 0A 20 20 e(j >= lv) {..
02AE90: 20 20 20 20 20 20 6A 67 20 3D 20 6A 20 2B 20 67 jg = j + g
02AEA0: 61 70 3B 0D 0A 20 20 20 20 20 20 20 20 69 66 28 ap;.. if(
02AEB0: 63 6F 6D 70 61 72 65 28 6C 69 6E 70 74 72 5B 6A compare(linptr[j
02AEC0: 5D 2C 20 6C 69 6E 70 74 72 5B 6A 67 5D 29 20 3C ], linptr[jg]) <
02AED0: 3D 20 30 29 20 62 72 65 61 6B 3B 0D 0A 20 20 20 = 0) break;..
02AEE0: 20 20 20 20 20 65 78 63 68 61 6E 67 65 28 6A 2C exchange(j,
02AEF0: 20 6A 67 29 3B 0D 0A 20 20 20 20 20 20 20 20 6A jg);.. j
02AF00: 20 3D 20 6A 20 2D 20 67 61 70 3B 0D 0A 20 20 20 = j - gap;..
02AF10: 20 20 20 20 20 7D 0D 0A 20 20 20 20 20 20 7D 0D }.. }.
02AF20: 0A 20 20 20 20 67 61 70 20 3D 20 67 61 70 3E 3E . gap = gap>>
02AF30: 31 3B 20 2F 2A 2A 20 64 69 76 69 64 65 20 62 79 1; /** divide by
02AF40: 20 32 20 2A 2A 2F 0D 0A 20 20 20 20 7D 0D 0A 20 2 **/.. }..
02AF50: 20 7D 0D 0A 0D 0A 71 75 69 63 6B 28 6C 76 2C 20 }....quick(lv,
02AF60: 75 76 29 20 69 6E 74 20 6C 76 2C 20 75 76 3B 20 uv) int lv, uv;
02AF70: 7B 0D 0A 20 20 69 6E 74 20 69 2C 20 6A 2C 20 70 {.. int i, j, p
02AF80: 69 76 6C 69 6E 3B 0D 0A 20 20 61 76 61 69 6C 28 ivlin;.. avail(
02AF90: 59 45 53 29 3B 0D 0A 20 20 70 6F 6C 6C 28 59 45 YES);.. poll(YE
02AFA0: 53 29 3B 0D 0A 20 20 69 66 28 6C 76 20 3E 3D 20 S);.. if(lv >=
02AFB0: 75 76 29 20 72 65 74 75 72 6E 3B 20 20 2F 2A 2A uv) return; /**
02AFC0: 20 6F 6E 6C 79 20 6F 6E 65 20 65 6C 65 6D 65 6E only one elemen
02AFD0: 74 20 2A 2A 2F 0D 0A 20 20 69 3D 6C 76 2D 31 3B t **/.. i=lv-1;
02AFE0: 0D 0A 20 20 6A 3D 75 76 3B 0D 0A 20 20 70 69 76 .. j=uv;.. piv
02AFF0: 6C 69 6E 3D 6C 69 6E 70 74 72 5B 6A 5D 3B 0D 0A lin=linptr[j];..
02B000: 20 20 20 20 20 61 6E 64 20 72 65 74 75 72 6E 20 and return
02B010: 69 74 73 20 6C 65 6E 67 74 68 0D 0A 2A 2F 0D 0A its length..*/..
02B020: 72 65 61 64 6C 69 6E 65 28 73 74 72 2C 20 66 64 readline(str, fd
02B030: 29 20 63 68 61 72 20 2A 73 74 72 3B 20 69 6E 74 ) char *str; int
02B040: 20 66 64 3B 20 7B 0D 0A 20 20 69 6E 74 20 66 6C fd; {.. int fl
02B050: 64 3B 0D 0A 20 20 63 68 61 72 20 2A 70 74 72 2C d;.. char *ptr,
02B060: 20 2A 6F 66 66 73 65 74 3B 0D 0A 20 20 69 66 28 *offset;.. if(
02B070: 66 67 65 74 73 28 73 74 72 2C 20 4D 41 58 4C 49 fgets(str, MAXLI
02B080: 4E 45 2B 31 2C 20 66 64 29 3D 3D 4E 55 4C 4C 29 NE+1, fd)==NULL)
02B090: 20 72 65 74 75 72 6E 20 4E 55 4C 4C 3B 0D 0A 20 return NULL;..
02B0A0: 20 70 74 72 3D 6F 66 66 73 65 74 3D 73 74 72 2D ptr=offset=str-
02B0B0: 31 3B 20 20 20 20 20 2F 2A 2A 20 6C 6F 63 61 74 1; /** locat
02B0C0: 69 6F 6E 20 6F 66 20 6F 66 66 73 65 74 20 66 69 ion of offset fi
02B0D0: 65 6C 64 20 2A 2A 2F 0D 0A 20 20 66 6C 64 3D 66 eld **/.. fld=f
02B0E0: 69 65 6C 64 3B 0D 0A 20 20 69 66 28 64 65 6C 69 ield;.. if(deli
02B0F0: 6D 29 20 7B 20 20 20 20 20 20 20 20 20 20 20 2F m) { /
02B100: 2A 2A 20 6D 75 73 74 20 73 65 61 72 63 68 20 66 ** must search f
02B110: 6F 72 20 66 69 65 6C 64 27 74 68 20 66 69 65 6C or field'th fiel
02B120: 64 20 2A 2A 2F 0D 0A 20 20 20 20 2A 6F 66 66 73 d **/.. *offs
02B130: 65 74 20 3D 20 2D 31 3B 0D 0A 20 20 20 20 77 68 et = -1;.. wh
02B140: 69 6C 65 28 2A 28 2B 2B 70 74 72 29 29 20 7B 0D ile(*(++ptr)) {.
02B150: 0A 20 20 20 20 20 20 69 66 28 66 6C 64 20 3C 20 . if(fld <
02B160: 30 29 20 7B 0D 0A 20 20 20 20 20 20 20 20 69 66 0) {.. if
02B170: 28 64 65 6C 69 6D 20 3D 3D 20 27 20 27 29 20 7B (delim == ' ') {
02B180: 0D 0A 20 20 20 20 20 20 20 20 20 20 69 66 28 28 .. if((
02B190: 2A 70 74 72 20 3E 20 27 20 27 29 26 28 2A 28 70 *ptr > ' ')&(*(p
02B1A0: 74 72 2B 31 29 20 3C 3D 20 27 20 27 29 29 20 2B tr+1) <= ' ')) +
02B1B0: 2B 66 6C 64 3B 0D 0A 20 20 20 20 20 20 20 20 20 +fld;..
02B1C0: 20 7D 0D 0A 20 20 20 20 20 20 20 20 65 6C 73 65 }.. else
02B1D0: 20 69 66 28 2A 70 74 72 20 3D 3D 20 64 65 6C 69 if(*ptr == deli
02B1E0: 6D 29 20 2B 2B 66 6C 64 3B 0D 0A 20 20 20 20 20 m) ++fld;..
02B1F0: 20 20 20 7D 0D 0A 20 20 20 20 20 20 65 6C 73 65 }.. else
02B200: 20 20 77 68 69 6C 65 28 69 20 3C 20 6A 29 20 7B while(i < j) {
02B210: 0D 0A 20 20 20 20 2B 2B 69 3B 0D 0A 20 20 20 20 .. ++i;..
02B220: 77 68 69 6C 65 28 63 6F 6D 70 61 72 65 28 6C 69 while(compare(li
02B230: 6E 70 74 72 5B 69 5D 2C 20 70 69 76 6C 69 6E 29 nptr[i], pivlin)
02B240: 20 3C 20 30 29 20 2B 2B 69 3B 0D 0A 20 20 20 20 < 0) ++i;..
02B250: 2D 2D 6A 3B 0D 0A 20 20 20 20 77 68 69 6C 65 28 --j;.. while(
02B260: 69 20 3C 20 6A 29 20 7B 0D 0A 20 20 20 20 20 20 i < j) {..
02B270: 69 66 28 63 6F 6D 70 61 72 65 28 6C 69 6E 70 74 if(compare(linpt
02B280: 72 5B 6A 5D 2C 20 70 69 76 6C 69 6E 29 20 3E 20 r[j], pivlin) >
02B290: 30 29 20 2D 2D 6A 3B 0D 0A 20 20 20 20 20 20 65 0) --j;.. e
02B2A0: 6C 73 65 20 62 72 65 61 6B 3B 0D 0A 20 20 20 20 lse break;..
02B2B0: 20 20 7D 0D 0A 20 20 20 20 69 66 28 69 20 3C 20 }.. if(i <
02B2C0: 6A 29 20 65 78 63 68 61 6E 67 65 28 69 2C 20 6A j) exchange(i, j
02B2D0: 29 3B 0D 0A 20 20 20 20 7D 0D 0A 20 20 6A 3D 75 );.. }.. j=u
02B2E0: 76 3B 0D 0A 20 20 65 78 63 68 61 6E 67 65 28 69 v;.. exchange(i
02B2F0: 2C 20 6A 29 3B 0D 0A 20 20 69 66 28 28 69 2D 6C , j);.. if((i-l
02B300: 76 29 20 3C 20 28 75 76 2D 69 29 29 20 7B 0D 0A v) < (uv-i)) {..
02B310: 20 20 20 20 71 75 69 63 6B 28 6C 76 2C 20 69 2D quick(lv, i-
02B320: 31 29 3B 0D 0A 20 20 20 20 71 75 69 63 6B 28 69 1);.. quick(i
02B330: 2B 31 2C 20 75 76 29 3B 0D 0A 20 20 20 20 7D 0D +1, uv);.. }.
02B340: 0A 20 20 65 6C 73 65 20 7B 0D 0A 20 20 20 20 71 . else {.. q
02B350: 75 69 63 6B 28 69 2B 31 2C 20 75 76 29 3B 0D 0A uick(i+1, uv);..
02B360: 20 20 20 20 71 75 69 63 6B 28 6C 76 2C 20 69 2D quick(lv, i-
02B370: 31 29 3B 0D 0A 20 20 20 20 7D 0D 0A 20 20 7D 0D 1);.. }.. }.
02B380: 0A 0D 0A 63 6F 6D 70 61 72 65 28 70 31 2C 20 70 ...compare(p1, p
02B390: 32 29 20 69 6E 74 20 70 31 2C 20 70 32 3B 20 7B 2) int p1, p2; {
02B3A0: 0D 0A 20 20 63 68 61 72 20 2A 70 74 72 31 2C 20 .. char *ptr1,
02B3B0: 2A 70 74 72 32 3B 0D 0A 20 20 70 74 72 31 20 3D *ptr2;.. ptr1 =
02B3C0: 20 6C 69 6E 62 75 66 20 2B 20 28 70 31 20 2D 20 linbuf + (p1 -
02B3D0: 31 29 3B 20 70 74 72 31 20 3D 20 70 74 72 31 20 1); ptr1 = ptr1
02B3E0: 2B 20 2A 70 74 72 31 3B 0D 0A 20 20 70 74 72 32 + *ptr1;.. ptr2
02B3F0: 20 3D 20 6C 69 6E 62 75 66 20 2B 20 28 70 32 20 = linbuf + (p2
02B400: 20 69 66 28 28 66 6C 64 20 3D 3D 20 30 29 26 28 if((fld == 0)&(
02B410: 28 64 65 6C 69 6D 20 21 3D 20 27 20 27 29 7C 28 (delim != ' ')|(
02B420: 2A 70 74 72 20 3E 20 27 20 27 29 29 29 20 7B 0D *ptr > ' '))) {.
02B430: 0A 20 20 20 20 20 20 20 20 2A 6F 66 66 73 65 74 . *offset
02B440: 3D 28 70 74 72 2D 73 74 72 29 3B 0D 0A 20 20 20 =(ptr-str);..
02B450: 20 20 20 20 20 66 6C 64 3D 31 3B 0D 0A 20 20 20 fld=1;..
02B460: 20 20 20 20 20 7D 0D 0A 20 20 20 20 20 20 7D 0D }.. }.
02B470: 0A 20 20 20 20 69 66 20 28 2A 6F 66 66 73 65 74 . if (*offset
02B480: 20 3D 3D 20 2D 31 29 20 2A 6F 66 66 73 65 74 3D == -1) *offset=
02B490: 28 70 74 72 2D 73 74 72 29 3B 20 2F 2A 2A 20 65 (ptr-str); /** e
02B4A0: 6E 64 20 6F 66 20 6C 69 6E 65 20 2A 2A 2F 0D 0A nd of line **/..
02B4B0: 20 20 20 20 7D 0D 0A 20 20 65 6C 73 65 20 7B 20 }.. else {
02B4C0: 20 2F 2A 2A 20 66 69 65 6C 64 20 69 73 20 74 68 /** field is th
02B4D0: 65 20 63 6F 6C 75 6D 6E 20 6E 75 6D 62 65 72 20 e column number
02B4E0: 6F 66 20 74 68 65 20 73 6F 72 74 20 6B 65 79 20 of the sort key
02B4F0: 2A 2A 2F 0D 0A 20 20 20 20 77 68 69 6C 65 28 2A **/.. while(*
02B500: 28 2B 2B 70 74 72 29 29 3B 0D 0A 20 20 20 20 69 (++ptr));.. i
02B510: 66 28 66 69 65 6C 64 20 3C 20 28 70 74 72 2D 73 f(field < (ptr-s
02B520: 74 72 29 29 20 2A 6F 66 66 73 65 74 3D 66 69 65 tr)) *offset=fie
02B530: 6C 64 3B 0D 0A 20 20 20 20 65 6C 73 65 20 20 20 ld;.. else
02B540: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2A *
02B550: 6F 66 66 73 65 74 3D 28 70 74 72 2D 73 74 72 29 offset=(ptr-str)
02B560: 3B 0D 0A 20 20 20 20 7D 0D 0A 20 20 72 65 74 75 ;.. }.. retu
02B570: 72 6E 20 28 70 74 72 2D 73 74 72 2B 32 29 3B 20 rn (ptr-str+2);
02B580: 2F 2A 2A 20 69 6E 63 6C 75 64 65 73 20 4E 55 4C /** includes NUL
02B590: 4C 20 61 6E 64 20 6E 65 78 74 20 6F 66 66 73 65 L and next offse
02B5A0: 74 20 2A 2A 2F 0D 0A 20 20 7D 0D 0A 0D 0A 23 69 t **/.. }....#i
02B5B0: 6E 63 6C 75 64 65 20 22 6F 75 74 2E 63 22 0D 0A nclude "out.c"..
02B5C0: 23 69 6E 63 6C 75 64 65 20 22 63 61 6E 74 2E 63 #include "cant.c
02B5D0: 22 0D 0A 23 69 6E 63 6C 75 64 65 20 22 73 61 6D "..#include "sam
02B5E0: 65 2E 63 22 0D 0A 0D 0A 1A 1A 1A 1A 1A 1A 1A 1A e.c"............
02B5F0: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
02B600: 2D 20 31 29 3B 20 70 74 72 32 20 3D 20 70 74 72 - 1); ptr2 = ptr
02B610: 32 20 2B 20 2A 70 74 72 32 3B 0D 0A 20 20 77 68 2 + *ptr2;.. wh
02B620: 69 6C 65 28 6C 65 78 6F 72 64 65 72 28 2A 2B 2B ile(lexorder(*++
02B630: 70 74 72 31 2C 20 2A 2B 2B 70 74 72 32 29 20 3D ptr1, *++ptr2) =
02B640: 3D 20 30 29 0D 0A 20 20 20 20 69 66 28 28 2A 70 = 0).. if((*p
02B650: 74 72 31 20 3D 3D 20 4E 55 4C 4C 29 7C 7C 28 64 tr1 == NULL)||(d
02B660: 65 6C 69 6D 69 74 28 2A 70 74 72 31 29 29 29 20 elimit(*ptr1)))
02B670: 72 65 74 75 72 6E 20 30 3B 0D 0A 20 20 69 66 28 return 0;.. if(
02B680: 64 65 6C 69 6D 69 74 28 2A 70 74 72 31 29 29 20 delimit(*ptr1))
02B690: 72 65 74 75 72 6E 20 2D 6F 72 64 65 72 3B 0D 0A return -order;..
02B6A0: 20 20 69 66 28 64 65 6C 69 6D 69 74 28 2A 70 74 if(delimit(*pt
02B6B0: 72 32 29 29 20 72 65 74 75 72 6E 20 20 6F 72 64 r2)) return ord
02B6C0: 65 72 3B 0D 0A 20 20 69 66 28 6C 65 78 6F 72 64 er;.. if(lexord
02B6D0: 65 72 28 2A 70 74 72 31 2C 20 2A 70 74 72 32 29 er(*ptr1, *ptr2)
02B6E0: 20 3E 20 30 29 20 72 65 74 75 72 6E 20 6F 72 64 > 0) return ord
02B6F0: 65 72 3B 0D 0A 20 20 72 65 74 75 72 6E 20 2D 6F er;.. return -o
02B700: 72 64 65 72 3B 0D 0A 20 20 7D 0D 0A 0D 0A 64 65 rder;.. }....de
02B710: 6C 69 6D 69 74 28 63 29 20 63 68 61 72 20 63 3B limit(c) char c;
02B720: 20 7B 0D 0A 20 20 69 66 28 63 20 3E 20 64 65 6C {.. if(c > del
02B730: 69 6D 29 20 20 20 20 72 65 74 75 72 6E 20 4E 4F im) return NO
02B740: 3B 0D 0A 20 20 69 66 28 64 65 6C 69 6D 20 3D 3D ;.. if(delim ==
02B750: 20 27 20 27 29 20 72 65 74 75 72 6E 20 59 45 53 ' ') return YES
02B760: 3B 0D 0A 20 20 69 66 28 63 20 3C 20 64 65 6C 69 ;.. if(c < deli
02B770: 6D 29 20 20 20 20 72 65 74 75 72 6E 20 4E 4F 3B m) return NO;
02B780: 0D 0A 20 20 72 65 74 75 72 6E 20 59 45 53 3B 0D .. return YES;.
02B790: 0A 20 20 7D 0D 0A 0D 0A 65 78 63 68 61 6E 67 65 . }....exchange
02B7A0: 28 69 2C 20 6A 29 20 69 6E 74 20 69 2C 20 6A 3B (i, j) int i, j;
02B7B0: 20 7B 0D 0A 20 20 69 6E 74 20 6B 3B 0D 0A 20 20 {.. int k;..
02B7C0: 6B 3D 6C 69 6E 70 74 72 5B 69 5D 3B 20 6C 69 6E k=linptr[i]; lin
02B7D0: 70 74 72 5B 69 5D 3D 6C 69 6E 70 74 72 5B 6A 5D ptr[i]=linptr[j]
02B7E0: 3B 20 6C 69 6E 70 74 72 5B 6A 5D 3D 6B 3B 0D 0A ; linptr[j]=k;..
02B7F0: 20 20 7D 0D 0A 0D 0A 6D 65 72 67 65 28 6E 66 69 }....merge(nfi
02B800: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B810: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B820: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B830: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B840: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B850: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B860: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B870: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B880: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B890: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B8A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B8B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B8C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B8D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B8E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B8F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B900: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B910: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B920: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B930: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B940: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B950: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B960: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B970: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B980: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B990: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B9A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B9B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B9C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B9D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B9E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02B9F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02BA00: 6C 65 73 29 20 69 6E 74 20 6E 66 69 6C 65 73 3B les) int nfiles;
02BA10: 20 7B 0D 0A 20 20 69 6E 74 20 69 2C 20 69 6E 66 {.. int i, inf
02BA20: 2C 20 6C 62 70 2C 20 6C 70 31 2C 20 6E 66 3B 0D , lbp, lp1, nf;.
02BA30: 0A 20 20 63 68 61 72 20 2A 70 74 72 3B 0D 0A 20 . char *ptr;..
02BA40: 20 6C 62 70 3D 31 3B 20 2F 2A 20 6C 65 61 76 65 lbp=1; /* leave
02BA50: 20 73 70 61 63 65 20 66 6F 72 20 66 69 72 73 74 space for first
02BA60: 20 73 6F 72 74 20 6B 65 79 20 6F 66 66 73 65 74 sort key offset
02BA70: 20 2A 2A 2F 0D 0A 20 20 6E 66 3D 69 3D 30 3B 0D **/.. nf=i=0;.
02BA80: 0A 20 20 77 68 69 6C 65 28 69 20 3C 20 6E 66 69 . while(i < nfi
02BA90: 6C 65 73 29 20 7B 20 20 20 20 2F 2A 2A 20 67 65 les) { /** ge
02BAA0: 74 20 6F 6E 65 20 6C 69 6E 65 20 66 72 6F 6D 20 t one line from
02BAB0: 65 61 63 68 20 66 69 6C 65 20 2A 2A 2F 0D 0A 20 each file **/..
02BAC0: 20 20 20 69 66 28 72 65 61 64 6C 69 6E 65 28 28 if(readline((
02BAD0: 6C 69 6E 62 75 66 2B 6C 62 70 29 2C 20 74 6D 70 linbuf+lbp), tmp
02BAE0: 66 64 5B 69 2B 2B 5D 29 21 3D 4E 55 4C 4C 29 20 fd[i++])!=NULL)
02BAF0: 7B 0D 0A 20 20 20 20 20 20 6C 69 6E 70 74 72 5B {.. linptr[
02BB00: 2B 2B 6E 66 5D 3D 6C 62 70 3B 0D 0A 20 20 20 20 ++nf]=lbp;..
02BB10: 20 20 6C 62 70 3D 6C 62 70 2B 28 4D 41 58 4C 49 lbp=lbp+(MAXLI
02BB20: 4E 45 2B 31 29 3B 0D 0A 20 20 20 20 20 20 7D 0D NE+1);.. }.
02BB30: 0A 20 20 20 20 7D 0D 0A 0D 0A 20 20 73 6F 72 74 . }.... sort
02BB40: 28 31 2C 20 6E 66 29 3B 20 20 20 20 2F 2A 2A 20 (1, nf); /**
02BB50: 6D 61 6B 65 20 69 6E 69 74 69 61 6C 20 68 65 61 make initial hea
02BB60: 70 20 2A 2A 2F 20 2F 2A 30 34 2A 2F 0D 0A 0D 0A p **/ /*04*/....
02BB70: 20 20 77 68 69 6C 65 28 6E 66 20 3E 20 30 29 20 while(nf > 0)
02BB80: 7B 0D 0A 20 20 20 20 70 6F 6C 6C 28 59 45 53 29 {.. poll(YES)
02BB90: 3B 0D 0A 20 20 20 20 6C 70 31 3D 6C 69 6E 70 74 ;.. lp1=linpt
02BBA0: 72 5B 31 5D 3B 0D 0A 20 20 20 20 70 74 72 3D 6C r[1];.. ptr=l
02BBB0: 69 6E 62 75 66 2B 6C 70 31 3B 0D 0A 20 20 20 20 inbuf+lp1;..
02BBC0: 69 66 28 64 75 70 74 65 73 74 28 70 74 72 29 3D if(duptest(ptr)=
02BBD0: 3D 4E 4F 29 20 73 6F 75 74 28 70 74 72 2C 20 6F =NO) sout(ptr, o
02BBE0: 75 74 66 69 6C 29 3B 0D 0A 20 20 20 20 69 6E 66 utfil);.. inf
02BBF0: 3D 28 6C 70 31 2F 28 4D 41 58 4C 49 4E 45 2B 31 =(lp1/(MAXLINE+1
02BC00: 2F 2A 0D 0A 2A 2A 20 73 74 72 69 70 20 2D 2D 20 /*..** strip --
02BC10: 53 74 72 69 70 20 3C 2C 20 3E 2C 20 61 6E 64 20 Strip <, >, and
02BC20: 22 20 66 72 6F 6D 20 73 74 72 2E 0D 0A 2A 2F 0D " from str...*/.
02BC30: 0A 73 74 72 69 70 28 73 74 72 29 20 63 68 61 72 .strip(str) char
02BC40: 20 2A 73 74 72 3B 20 7B 0D 0A 20 20 63 68 61 72 *str; {.. char
02BC50: 20 2A 63 70 3B 0D 0A 20 20 63 70 20 3D 20 73 74 *cp;.. cp = st
02BC60: 72 20 2D 20 31 3B 0D 0A 20 20 77 68 69 6C 65 28 r - 1;.. while(
02BC70: 2A 2B 2B 63 70 20 3D 20 2A 73 74 72 2B 2B 29 20 *++cp = *str++)
02BC80: 7B 0D 0A 20 20 20 20 73 77 69 74 63 68 28 2A 63 {.. switch(*c
02BC90: 70 29 20 7B 0D 0A 20 20 20 20 20 20 63 61 73 65 p) {.. case
02BCA0: 20 27 3C 27 3A 20 20 63 61 73 65 20 27 3E 27 3A '<': case '>':
02BCB0: 20 20 63 61 73 65 20 27 22 27 3A 20 20 2D 2D 63 case '"': --c
02BCC0: 70 3B 0D 0A 20 20 20 20 20 20 7D 0D 0A 20 20 20 p;.. }..
02BCD0: 20 7D 0D 0A 20 20 7D 0D 0A 1A 1A 1A 1A 1A 1A 1A }.. }.........
02BCE0: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
02BCF0: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
02BD00: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02BD10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02BD20: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02BD30: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02BD40: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02BD50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02BD60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02BD70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02BD80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02BD90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02BDA0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02BDB0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02BDC0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02BDD0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02BDE0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02BDF0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02BE00: 29 29 3B 20 2F 2A 2A 20 63 6F 6D 70 75 74 65 20 )); /** compute
02BE10: 66 69 6C 65 20 69 6E 64 65 78 20 2A 2A 2F 0D 0A file index **/..
02BE20: 20 20 20 20 69 66 28 72 65 61 64 6C 69 6E 65 28 if(readline(
02BE30: 28 6C 69 6E 62 75 66 2B 6C 70 31 29 2C 20 74 6D (linbuf+lp1), tm
02BE40: 70 66 64 5B 69 6E 66 5D 29 3D 3D 4E 55 4C 4C 29 pfd[inf])==NULL)
02BE50: 0D 0A 20 20 20 20 20 20 6C 69 6E 70 74 72 5B 31 .. linptr[1
02BE60: 5D 3D 6C 69 6E 70 74 72 5B 6E 66 2D 2D 5D 3B 0D ]=linptr[nf--];.
02BE70: 0A 20 20 20 20 72 65 68 65 61 70 28 6E 66 29 3B . reheap(nf);
02BE80: 0D 0A 20 20 20 20 7D 0D 0A 20 20 7D 0D 0A 0D 0A .. }.. }....
02BE90: 72 65 68 65 61 70 28 6E 66 29 20 69 6E 74 20 6E reheap(nf) int n
02BEA0: 66 3B 20 7B 0D 0A 20 20 69 6E 74 20 69 2C 20 6A f; {.. int i, j
02BEB0: 3B 0D 0A 20 20 69 3D 31 3B 0D 0A 20 20 77 68 69 ;.. i=1;.. whi
02BEC0: 6C 65 28 28 6A 3D 28 69 3C 3C 31 29 29 20 3C 3D le((j=(i<<1)) <=
02BED0: 20 6E 66 29 20 7B 0D 0A 20 20 20 20 69 66 28 6A nf) {.. if(j
02BEE0: 20 3C 20 6E 66 29 20 7B 20 20 20 20 20 20 2F 2A < nf) { /*
02BEF0: 2A 20 66 69 6E 64 20 73 6D 61 6C 6C 65 72 20 63 * find smaller c
02BF00: 68 69 6C 64 20 2A 2A 2F 0D 0A 20 20 20 20 20 20 hild **/..
02BF10: 69 66 28 63 6F 6D 70 61 72 65 28 6C 69 6E 70 74 if(compare(linpt
02BF20: 72 5B 6A 5D 2C 20 6C 69 6E 70 74 72 5B 6A 2B 31 r[j], linptr[j+1
02BF30: 5D 29 20 3E 20 30 29 20 2B 2B 6A 3B 0D 0A 20 20 ]) > 0) ++j;..
02BF40: 20 20 20 20 7D 0D 0A 20 20 20 20 69 66 28 63 6F }.. if(co
02BF50: 6D 70 61 72 65 28 6C 69 6E 70 74 72 5B 69 5D 2C mpare(linptr[i],
02BF60: 20 6C 69 6E 70 74 72 5B 6A 5D 29 20 3C 3D 20 30 linptr[j]) <= 0
02BF70: 29 20 62 72 65 61 6B 3B 0D 0A 20 20 20 20 65 78 ) break;.. ex
02BF80: 63 68 61 6E 67 65 28 69 2C 20 6A 29 3B 20 20 20 change(i, j);
02BF90: 20 20 2F 2A 2A 20 70 65 72 63 6F 6C 61 74 65 20 /** percolate
02BFA0: 2A 2A 2F 0D 0A 20 20 20 20 69 3D 6A 3B 0D 0A 20 **/.. i=j;..
02BFB0: 20 20 20 7D 0D 0A 20 20 7D 0D 0A 0D 0A 2F 2A 0D }.. }..../*.
02BFC0: 0A 2A 2A 20 72 65 61 64 6C 69 6E 65 20 2D 2D 20 .** readline --
02BFD0: 72 65 61 64 20 6E 65 78 74 20 6C 69 6E 65 2C 20 read next line,
02BFE0: 73 65 74 20 69 74 73 20 73 6F 72 74 20 6B 65 79 set its sort key
02BFF0: 20 6F 66 66 73 65 74 2C 0D 0A 2A 2A 20 20 20 20 offset,..**
02C000: 54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 00 00 00 Track-Info......
02C010: 25 00 01 00 02 09 52 E5 25 00 41 02 00 00 00 02 %.....R.%.A.....
02C020: 25 00 46 02 00 00 00 02 25 00 42 02 00 00 00 02 %.F.....%.B.....
02C030: 25 00 47 02 00 00 00 02 25 00 43 02 00 00 00 02 %.G.....%.C.....
02C040: 25 00 48 02 00 00 00 02 25 00 44 02 00 00 00 02 %.H.....%.D.....
02C050: 25 00 49 02 00 00 00 02 25 00 45 02 00 00 00 02 %.I.....%.E.....
02C060: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02C070: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02C080: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02C090: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02C0A0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02C0B0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02C0C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02C0D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02C0E0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02C0F0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02C100: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C110: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C120: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C130: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C140: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C150: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C160: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C170: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C180: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C190: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C1A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C1B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C1C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C1D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C1E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C1F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C200: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C210: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C220: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C230: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C240: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C250: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C260: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C270: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C280: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C290: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C2A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C2B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C2C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C2D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C2E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C2F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C300: 65 28 31 29 20 7B 0D 0A 20 20 20 20 70 6F 6C 6C e(1) {.. poll
02C310: 28 59 45 53 29 3B 0D 0A 20 20 20 20 69 3D 78 69 (YES);.. i=xi
02C320: 6E 64 65 78 28 66 72 6F 6D 2C 20 63 3D 66 67 65 ndex(from, c=fge
02C330: 74 63 28 73 74 64 69 6E 29 2C 20 61 6C 6C 62 75 tc(stdin), allbu
02C340: 74 2C 20 6C 61 73 74 74 6F 29 3B 0D 0A 20 20 20 t, lastto);..
02C350: 20 69 66 28 28 63 6F 6C 6C 61 70 3D 3D 59 45 53 if((collap==YES
02C360: 29 26 28 69 3E 3D 6C 61 73 74 74 6F 29 26 28 6C )&(i>=lastto)&(l
02C370: 61 73 74 74 6F 3E 2D 31 29 29 20 7B 20 2F 2A 20 astto>-1)) { /*
02C380: 63 6F 6C 6C 61 70 73 65 20 2A 2F 0D 0A 20 20 20 collapse */..
02C390: 20 20 20 69 66 28 66 70 75 74 63 28 74 6F 5B 6C if(fputc(to[l
02C3A0: 61 73 74 74 6F 5D 2C 20 73 74 64 6F 75 74 29 3D astto], stdout)=
02C3B0: 3D 45 4F 46 29 0D 0A 20 20 20 20 20 20 20 20 65 =EOF).. e
02C3C0: 72 72 6F 72 28 22 6F 75 74 70 75 74 20 65 72 72 rror("output err
02C3D0: 6F 72 22 29 3B 0D 0A 20 20 20 20 20 20 77 68 69 or");.. whi
02C3E0: 6C 65 28 31 29 20 7B 0D 0A 20 20 20 20 20 20 20 le(1) {..
02C3F0: 20 69 3D 78 69 6E 64 65 78 28 66 72 6F 6D 2C 20 i=xindex(from,
02C400: 63 3D 66 67 65 74 63 28 73 74 64 69 6E 29 2C 20 c=fgetc(stdin),
02C410: 61 6C 6C 62 75 74 2C 20 6C 61 73 74 74 6F 29 3B allbut, lastto);
02C420: 0D 0A 20 20 20 20 20 20 20 20 69 66 28 69 3C 6C .. if(i<l
02C430: 61 73 74 74 6F 29 20 62 72 65 61 6B 3B 0D 0A 20 astto) break;..
02C440: 20 20 20 20 20 20 20 7D 0D 0A 20 20 20 20 20 20 }..
02C450: 7D 0D 0A 20 20 20 20 69 66 28 63 3D 3D 45 4F 46 }.. if(c==EOF
02C460: 29 20 62 72 65 61 6B 3B 0D 0A 20 20 20 20 69 66 ) break;.. if
02C470: 28 28 69 3E 2D 31 29 26 28 6C 61 73 74 74 6F 3E ((i>-1)&(lastto>
02C480: 2D 31 29 29 20 7B 20 20 20 20 20 20 20 20 20 20 -1)) {
02C490: 20 20 2F 2A 20 74 72 61 6E 73 6C 61 74 65 20 2A /* translate *
02C4A0: 2F 0D 0A 20 20 20 20 20 20 69 66 28 66 70 75 74 /.. if(fput
02C4B0: 63 28 74 6F 5B 69 5D 2C 20 73 74 64 6F 75 74 29 c(to[i], stdout)
02C4C0: 3D 3D 45 4F 46 29 0D 0A 20 20 20 20 20 20 20 20 ==EOF)..
02C4D0: 65 72 72 6F 72 28 22 6F 75 74 70 75 74 20 65 72 error("output er
02C4E0: 72 6F 72 22 29 3B 0D 0A 20 20 20 20 20 20 7D 0D ror");.. }.
02C4F0: 0A 20 20 20 20 65 6C 73 65 20 69 66 28 69 3C 30 . else if(i<0
02C500: 0D 0A 2F 2A 0D 0A 2A 2A 20 74 61 62 70 6F 73 2E ../*..** tabpos.
02C510: 63 20 2D 2D 20 72 65 74 75 72 6E 20 59 45 53 20 c -- return YES
02C520: 69 66 20 63 6F 6C 20 69 73 20 61 20 74 61 62 20 if col is a tab
02C530: 73 74 6F 70 2C 20 65 6C 73 65 20 4E 4F 0D 0A 2A stop, else NO..*
02C540: 2F 0D 0A 74 61 62 70 6F 73 28 63 6F 6C 2C 20 74 /..tabpos(col, t
02C550: 61 62 73 29 20 69 6E 74 20 63 6F 6C 3B 20 63 68 abs) int col; ch
02C560: 61 72 20 74 61 62 73 5B 5D 3B 20 7B 0D 0A 20 20 ar tabs[]; {..
02C570: 69 66 28 63 6F 6C 3E 4D 41 58 4C 49 4E 45 29 20 if(col>MAXLINE)
02C580: 72 65 74 75 72 6E 20 59 45 53 3B 0D 0A 20 20 65 return YES;.. e
02C590: 6C 73 65 20 72 65 74 75 72 6E 20 74 61 62 73 5B lse return tabs[
02C5A0: 63 6F 6C 5D 3B 0D 0A 20 20 7D 0D 0A 1A 1A 0A 1A col];.. }......
02C5B0: 0A 1A 5D 3B 0D 0A 20 20 7D 0D 0A 1A 4D 4C 49 4E ..];.. }...MLIN
02C5C0: 45 5D 3B 0D 0A 20 20 69 6E 74 20 63 6F 6C 2C 20 E];.. int col,
02C5D0: 69 3B 0D 0A 20 20 73 65 74 74 61 62 28 74 61 62 i;.. settab(tab
02C5E0: 73 29 3B 0D 0A 20 20 63 6F 6C 3D 31 3B 0D 0A 20 s);.. col=1;..
02C5F0: 20 77 68 69 6C 65 28 28 63 3D 67 65 74 63 68 61 while((c=getcha
02C600: AA 28 29 29 21 3D 45 4F 46 29 20 7B 0D 0A 20 20 .())!=EOF) {..
02C610: 20 20 69 66 28 63 3D 3D 27 5C 74 27 29 0D 0A 20 if(c=='\t')..
02C620: 20 20 20 20 20 77 68 69 6C 65 28 31 29 20 7B 0D while(1) {.
02C630: 0A 20 20 20 20 20 20 20 20 70 75 74 63 68 61 72 . putchar
02C640: 28 27 20 27 29 3B 0D 0A 20 20 20 20 20 20 20 20 (' ');..
02C650: 2B 2B 63 6F 6C 3B 0D 0A 20 20 20 20 20 20 20 20 ++col;..
02C660: 69 66 28 74 61 62 70 6F 73 28 63 6F 6C 2C 20 74 if(tabpos(col, t
02C670: 61 62 73 29 3D 3D 59 45 53 29 20 62 72 65 61 6B abs)==YES) break
02C680: 3B 0D 0A 20 20 20 20 20 20 20 20 7D 0D 0A 20 20 ;.. }..
02C690: 20 20 65 6C 73 65 20 69 66 28 63 3D 3D 27 5C 6E else if(c=='\n
02C6A0: 27 29 20 7B 0D 0A 20 20 20 20 20 20 70 75 74 63 ') {.. putc
02C6B0: 68 61 72 28 27 5C 6E 27 29 3B 0D 0A 20 20 20 20 har('\n');..
02C6C0: 20 20 63 6F 6C 3D 31 3B 0D 0A 20 20 20 20 20 20 col=1;..
02C6D0: 7D 0D 0A 20 20 20 20 65 6C 73 65 20 7B 0D 0A 20 }.. else {..
02C6E0: 20 20 20 20 20 70 75 74 63 68 61 72 28 63 29 3B putchar(c);
02C6F0: 0D 0A 20 20 20 20 20 20 2B 2B 63 6F 6C 3B 0D 0A .. ++col;..
02C700: 29 20 7B 20 20 20 20 20 20 20 20 20 20 20 20 20 ) {
02C710: 20 20 20 20 20 20 20 20 20 20 2F 2A 20 63 6F 70 /* cop
02C720: 79 20 2A 2F 0D 0A 20 20 20 20 20 20 69 66 28 66 y */.. if(f
02C730: 70 75 74 63 28 63 2C 20 73 74 64 6F 75 74 29 3D putc(c, stdout)=
02C740: 3D 45 4F 46 29 0D 0A 20 20 20 20 20 20 20 20 65 =EOF).. e
02C750: 72 72 6F 72 28 22 6F 75 74 70 75 74 20 65 72 72 rror("output err
02C760: 6F 72 22 29 3B 0D 0A 20 20 20 20 20 20 7D 0D 0A or");.. }..
02C770: 20 20 20 20 7D 20 20 20 20 20 20 20 20 20 20 20 }
02C780: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
02C790: 20 20 20 20 20 20 20 20 20 2F 2A 20 64 65 6C 65 /* dele
02C7A0: 74 65 20 2A 2F 0D 0A 20 20 66 63 6C 6F 73 65 28 te */.. fclose(
02C7B0: 73 74 64 6F 75 74 29 3B 0D 0A 20 20 7D 0D 0A 23 stdout);.. }..#
02C7C0: 69 6E 63 6C 75 64 65 20 22 70 61 74 2E 63 22 0D include "pat.c".
02C7D0: 0A 23 69 6E 63 6C 75 64 65 20 22 65 72 72 6F 72 .#include "error
02C7E0: 2E 63 22 0D 0A 23 69 6E 63 6C 75 64 65 20 22 69 .c"..#include "i
02C7F0: 6E 64 65 78 2E 63 22 0D 0A 23 69 6E 63 6C 75 64 ndex.c"..#includ
02C800: 65 20 22 78 69 6E 64 65 78 2E 63 22 0D 0A 23 69 e "xindex.c"..#i
02C810: 6E 63 6C 75 64 65 20 22 6D 61 6B 73 65 74 2E 63 nclude "makset.c
02C820: 22 0D 0A 0D 0A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A "...............
02C830: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
02C840: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
02C850: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
02C860: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
02C870: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
02C880: 2D 31 29 29 20 7B 20 20 20 20 20 20 20 20 20 20 -1)) {
02C890: 20 20 2F 2A 20 74 72 61 6E 73 6C 61 74 65 20 2A /* translate *
02C8A0: 2F 0D 0A 20 20 20 20 20 20 69 66 28 66 70 75 74 /.. if(fput
02C8B0: 63 28 74 6F 5B 69 5D 2C 20 73 74 64 6F 75 74 29 c(to[i], stdout)
02C8C0: 3D 3D 45 4F 46 29 0D 0A 20 20 20 20 20 20 20 20 ==EOF)..
02C8D0: 65 72 72 6F 72 28 22 6F 75 74 70 75 74 20 65 72 error("output er
02C8E0: 72 6F 72 22 29 3B 0D 0A 20 20 20 20 20 20 7D 0D ror");.. }.
02C8F0: 0A 20 20 20 20 65 6C 73 65 20 69 66 28 69 3C 30 . else if(i<0
02C900: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C910: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C920: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C930: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C940: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C950: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C960: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C970: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C980: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C990: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C9A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C9B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C9C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C9D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C9E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02C9F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CA00: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CA10: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CA20: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CA30: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CA40: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CA50: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CA60: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CA70: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CA80: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CA90: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CAA0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CAB0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CAC0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CAD0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CAE0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CAF0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CB00: 2F 2A 0D 0A 2A 2A 20 74 72 69 6D 20 2D 2D 20 74 /*..** trim -- t
02CB10: 72 69 6D 20 5C 6E 20 66 72 6F 6D 20 73 74 72 20 rim \n from str
02CB20: 26 20 72 65 74 75 72 6E 20 69 74 73 20 6C 65 6E & return its len
02CB30: 67 74 68 0D 0A 2A 2F 0D 0A 74 72 69 6D 28 73 74 gth..*/..trim(st
02CB40: 72 29 20 63 68 61 72 20 2A 73 74 72 3B 20 7B 0D r) char *str; {.
02CB50: 0A 20 20 63 68 61 72 20 2A 73 3B 0D 0A 20 20 73 . char *s;.. s
02CB60: 20 3D 20 73 74 72 20 2D 20 31 3B 0D 0A 20 20 77 = str - 1;.. w
02CB70: 68 69 6C 65 28 2A 2B 2B 73 29 20 3B 20 20 2F 2A hile(*++s) ; /*
02CB80: 20 70 72 65 66 69 78 20 2B 2B 20 69 73 20 66 61 prefix ++ is fa
02CB90: 73 74 65 72 20 2A 2F 0D 0A 20 20 69 66 28 28 2A ster */.. if((*
02CBA0: 2D 2D 73 20 3D 3D 20 27 5C 6E 27 29 20 26 26 20 --s == '\n') &&
02CBB0: 28 73 20 3E 3D 20 73 74 72 29 29 20 2A 73 20 3D (s >= str)) *s =
02CBC0: 20 4E 55 4C 4C 3B 20 65 6C 73 65 20 2B 2B 73 3B NULL; else ++s;
02CBD0: 0D 0A 20 20 72 65 74 75 72 6E 20 28 73 20 2D 20 .. return (s -
02CBE0: 73 74 72 29 3B 0D 0A 20 20 7D 0D 0A 0D 0A 1A 1A str);.. }......
02CBF0: 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A 1A ................
02CC00: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02CC10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02CC20: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02CC30: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02CC40: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02CC50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02CC60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02CC70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02CC80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02CC90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02CCA0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02CCB0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02CCC0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02CCD0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02CCE0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02CCF0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02CD00: 2F 2A 0D 0A 2A 2A 20 74 72 6E 2E 63 20 2D 2D 20 /*..** trn.c --
02CD10: 6D 61 70 20 63 68 61 72 61 63 74 65 72 73 0D 0A map characters..
02CD20: 2A 2A 0D 0A 2A 2A 20 43 6F 70 79 72 69 67 68 74 **..** Copyright
02CD30: 20 31 39 38 32 20 4A 2E 20 45 2E 20 48 65 6E 64 1982 J. E. Hend
02CD40: 72 69 78 2E 20 20 41 6C 6C 20 72 69 67 68 74 73 rix. All rights
02CD50: 20 72 65 73 65 72 76 65 64 2E 0D 0A 2A 2F 0D 0A reserved...*/..
02CD60: 23 69 6E 63 6C 75 64 65 20 3C 73 74 64 69 6F 2E #include <stdio.
02CD70: 68 3E 0D 0A 23 69 6E 63 6C 75 64 65 20 22 74 6F h>..#include "to
02CD80: 6F 6C 73 2E 68 22 0D 0A 23 64 65 66 69 6E 65 20 ols.h"..#define
02CD90: 4E 4F 43 43 41 52 47 43 0D 0A 23 64 65 66 69 6E NOCCARGC..#defin
02CDA0: 65 20 4D 41 58 41 52 47 20 38 30 0D 0A 23 64 65 e MAXARG 80..#de
02CDB0: 66 69 6E 65 20 4D 41 58 53 45 54 20 31 32 37 0D fine MAXSET 127.
02CDC0: 0A 6D 61 69 6E 28 61 72 67 63 2C 20 61 72 67 76 .main(argc, argv
02CDD0: 29 20 69 6E 74 20 61 72 67 63 2C 20 2A 61 72 67 ) int argc, *arg
02CDE0: 76 3B 20 7B 0D 0A 20 20 63 68 61 72 20 61 72 67 v; {.. char arg
02CDF0: 5B 4D 41 58 41 52 47 2B 31 5D 2C 20 63 2C 20 66 [MAXARG+1], c, f
02CE00: 72 6F 6D 5B 4D 41 58 53 45 54 2B 31 5D 2C 20 74 rom[MAXSET+1], t
02CE10: 6F 5B 4D 41 58 53 45 54 2B 31 5D 3B 0D 0A 20 20 o[MAXSET+1];..
02CE20: 69 6E 74 20 61 6C 6C 62 75 74 2C 20 63 6F 6C 6C int allbut, coll
02CE30: 61 70 2C 20 69 2C 20 6C 61 73 74 74 6F 2C 20 65 ap, i, lastto, e
02CE40: 72 72 6F 72 3B 0D 0A 20 20 61 75 78 62 75 66 28 rror;.. auxbuf(
02CE50: 73 74 64 69 6E 2C 20 34 30 39 36 29 3B 0D 0A 20 stdin, 4096);..
02CE60: 20 65 72 72 6F 72 3D 4E 4F 3B 0D 0A 20 20 69 66 error=NO;.. if
02CE70: 28 67 65 74 61 72 67 28 31 2C 20 61 72 67 2C 20 (getarg(1, arg,
02CE80: 4D 41 58 41 52 47 2C 20 61 72 67 63 2C 20 61 72 MAXARG, argc, ar
02CE90: 67 76 29 3D 3D 45 4F 46 29 20 65 72 72 6F 72 3D gv)==EOF) error=
02CEA0: 59 45 53 3B 0D 0A 20 20 69 66 28 28 28 61 72 67 YES;.. if(((arg
02CEB0: 5B 30 5D 3D 3D 27 2D 27 29 26 28 61 72 67 5B 31 [0]=='-')&(arg[1
02CEC0: 5D 3C 3D 27 20 27 29 29 7C 28 65 72 72 6F 72 3D ]<=' '))|(error=
02CED0: 3D 59 45 53 29 29 20 7B 0D 0A 20 20 20 20 66 70 =YES)) {.. fp
02CEE0: 75 74 73 28 22 75 73 61 67 65 3A 20 54 52 4E 20 uts("usage: TRN
02CEF0: 5B 7E 5D 66 72 6F 6D 20 5B 74 6F 5D 5C 6E 22 2C [~]from [to]\n",
02CF00: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CF10: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CF20: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CF30: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CF40: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CF50: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CF60: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CF70: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CF80: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CF90: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CFA0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CFB0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CFC0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CFD0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CFE0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02CFF0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D000: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D010: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D020: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D030: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D040: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D050: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D060: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D070: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D080: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D090: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D0A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D0B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D0C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D0D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D0E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D0F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D100: 20 73 74 64 65 72 72 29 3B 0D 0A 20 20 20 20 61 stderr);.. a
02D110: 62 6F 72 74 28 37 29 3B 0D 0A 20 20 20 20 7D 0D bort(7);.. }.
02D120: 0A 20 20 69 66 28 61 72 67 5B 30 5D 3D 3D 4E 4F . if(arg[0]==NO
02D130: 54 29 20 7B 0D 0A 20 20 20 20 61 6C 6C 62 75 74 T) {.. allbut
02D140: 3D 59 45 53 3B 0D 0A 20 20 20 20 69 66 28 6D 61 =YES;.. if(ma
02D150: 6B 73 65 74 28 61 72 67 2C 20 31 2C 20 66 72 6F kset(arg, 1, fro
02D160: 6D 2C 20 4D 41 58 53 45 54 29 3D 3D 4E 4F 29 0D m, MAXSET)==NO).
02D170: 0A 20 20 20 20 20 20 65 72 72 6F 72 28 22 66 72 . error("fr
02D180: 6F 6D 2D 6C 69 73 74 20 74 6F 6F 20 6C 61 72 67 om-list too larg
02D190: 65 22 29 3B 0D 0A 20 20 20 20 7D 0D 0A 20 20 65 e");.. }.. e
02D1A0: 6C 73 65 20 7B 0D 0A 20 20 20 20 61 6C 6C 62 75 lse {.. allbu
02D1B0: 74 3D 4E 4F 3B 0D 0A 20 20 20 20 69 66 28 6D 61 t=NO;.. if(ma
02D1C0: 6B 73 65 74 28 61 72 67 2C 20 30 2C 20 66 72 6F kset(arg, 0, fro
02D1D0: 6D 2C 20 4D 41 58 53 45 54 29 3D 3D 4E 4F 29 0D m, MAXSET)==NO).
02D1E0: 0A 20 20 20 20 20 20 65 72 72 6F 72 28 22 66 72 . error("fr
02D1F0: 6F 6D 2D 6C 69 73 74 20 74 6F 6F 20 6C 61 72 67 om-list too larg
02D200: 65 22 29 3B 0D 0A 20 20 20 20 7D 0D 0A 20 20 69 e");.. }.. i
02D210: 66 28 67 65 74 61 72 67 28 32 2C 20 61 72 67 2C f(getarg(2, arg,
02D220: 20 4D 41 58 41 52 47 2C 20 61 72 67 63 2C 20 61 MAXARG, argc, a
02D230: 72 67 76 29 3D 3D 45 4F 46 29 20 74 6F 5B 30 5D rgv)==EOF) to[0]
02D240: 3D 4E 55 4C 4C 3B 0D 0A 20 20 65 6C 73 65 20 69 =NULL;.. else i
02D250: 66 28 6D 61 6B 73 65 74 28 61 72 67 2C 20 30 2C f(makset(arg, 0,
02D260: 20 74 6F 2C 20 4D 41 58 53 45 54 29 3D 3D 4E 4F to, MAXSET)==NO
02D270: 29 0D 0A 20 20 20 20 65 72 72 6F 72 28 22 74 6F ).. error("to
02D280: 2D 6C 69 73 74 20 74 6F 6F 20 6C 61 72 67 65 22 -list too large"
02D290: 29 3B 0D 0A 20 20 6C 61 73 74 74 6F 3D 73 74 72 );.. lastto=str
02D2A0: 6C 65 6E 28 74 6F 29 2D 31 3B 0D 0A 20 20 69 66 len(to)-1;.. if
02D2B0: 28 28 73 74 72 6C 65 6E 28 66 72 6F 6D 29 3E 28 ((strlen(from)>(
02D2C0: 6C 61 73 74 74 6F 2B 31 29 29 7C 28 61 6C 6C 62 lastto+1))|(allb
02D2D0: 75 74 3D 3D 59 45 53 29 29 20 63 6F 6C 6C 61 70 ut==YES)) collap
02D2E0: 3D 59 45 53 3B 0D 0A 20 20 65 6C 73 65 20 63 6F =YES;.. else co
02D2F0: 6C 6C 61 70 3D 4E 4F 3B 0D 0A 20 20 77 68 69 6C llap=NO;.. whil
02D300: 54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 00 00 00 Track-Info......
02D310: 26 00 01 00 02 09 52 E5 26 00 41 02 00 00 00 02 &.....R.&.A.....
02D320: 26 00 46 02 00 00 00 02 26 00 42 02 00 00 00 02 &.F.....&.B.....
02D330: 26 00 47 02 00 00 00 02 26 00 43 02 00 00 00 02 &.G.....&.C.....
02D340: 26 00 48 02 00 00 00 02 26 00 44 02 00 00 00 02 &.H.....&.D.....
02D350: 26 00 49 02 00 00 00 02 26 00 45 02 00 00 00 02 &.I.....&.E.....
02D360: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02D370: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02D380: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02D390: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02D3A0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02D3B0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02D3C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02D3D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02D3E0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02D3F0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02D400: 0D 0A 2F 2A 0D 0A 2A 2A 20 78 69 6E 64 65 78 2E ../*..** xindex.
02D410: 63 20 2D 2D 20 69 6E 76 65 72 74 20 63 6F 6E 64 c -- invert cond
02D420: 69 74 69 6F 6E 20 72 65 74 75 72 6E 65 64 20 62 ition returned b
02D430: 79 20 69 6E 64 65 78 0D 0A 2A 2F 0D 0A 78 69 6E y index..*/..xin
02D440: 64 65 78 28 61 72 72 61 79 2C 20 63 2C 20 61 6C dex(array, c, al
02D450: 6C 62 75 74 2C 20 6C 61 73 74 74 6F 29 20 63 68 lbut, lastto) ch
02D460: 61 72 20 61 72 72 61 79 5B 5D 2C 20 63 3B 20 69 ar array[], c; i
02D470: 6E 74 20 61 6C 6C 62 75 74 2C 20 6C 61 73 74 74 nt allbut, lastt
02D480: 6F 3B 20 7B 0D 0A 20 20 69 66 28 63 3D 3D 45 4F o; {.. if(c==EO
02D490: 46 29 20 72 65 74 75 72 6E 20 2D 31 3B 0D 0A 20 F) return -1;..
02D4A0: 20 65 6C 73 65 20 69 66 28 61 6C 6C 62 75 74 3D else if(allbut=
02D4B0: 3D 4E 4F 29 20 72 65 74 75 72 6E 20 69 6E 64 65 =NO) return inde
02D4C0: 78 28 61 72 72 61 79 2C 20 63 29 3B 0D 0A 20 20 x(array, c);..
02D4D0: 65 6C 73 65 20 69 66 28 69 6E 64 65 78 28 61 72 else if(index(ar
02D4E0: 72 61 79 2C 20 63 29 3E 2D 31 29 20 72 65 74 75 ray, c)>-1) retu
02D4F0: 72 6E 20 2D 31 3B 0D 0A 20 20 65 6C 73 65 20 72 rn -1;.. else r
02D500: 65 74 75 72 6E 20 6C 61 73 74 74 6F 2B 31 3B 0D eturn lastto+1;.
02D510: 0A 20 20 7D 0D 0A 1A EB 2F 7C B5 CA 21 3A C3 24 . }..../|..!:.$
02D520: 3A C3 67 39 21 06 00 39 CD C8 2F 7C B5 CA 52 3A :.g9!..9../|..R:
02D530: 21 08 00 39 CD C8 2F E5 21 08 00 39 E5 CD C8 2F !..9../.!..9.../
02D540: 2B D1 CD D0 2F D1 19 E5 21 20 00 D1 CD CD 2F C3 +.../...! ..../.
02D550: 24 3A C1 C1 C9 C5 C5 C5 C5 C5 C5 C5 C5 3B 3B EB $:...........;;.
02D560: 21 F9 1A 39 F9 EB C5 3B 21 03 00 39 E5 21 06 00 !..9...;!..9.!..
02D570: D1 19 E5 21 00 00 D1 CD CD 2F 21 1E 00 39 E5 21 ...!...../!..9.!
02D580: 20 00 39 E5 21 02 00 E5 21 24 00 39 CD C8 2F D1 .9.!...!$.9../.
02D590: CD 6F 30 D1 19 D1 CD D0 2F 21 0E 00 39 E5 21 20 .o0...../!..9.!
02D5A0: 00 39 CD C8 2F E5 21 02 00 D1 19 CD C8 2F D1 CD .9../.!....../..
02D5B0: D0 2F 21 0E 00 39 CD C8 2F CD C2 2F E5 21 3F 00 ./!..9../../.!?.
02D5C0: D1 CD EB 2F 7C B5 CA E5 3A 21 10 00 39 E5 21 02 .../|...:!..9.!.
02D5D0: 00 D1 CD D0 2F 21 0E 00 39 E5 CD C8 2F 23 D1 CD ..../!..9.../#..
02D5E0: D0 2F C3 F1 3A 21 10 00 39 E5 21 01 00 D1 CD D0 ./..:!..9.!.....
02D5F0: 2F 21 0B 00 39 E5 21 10 00 39 E5 CD C8 2F 23 D1 /!..9.!..9.../#.
02D600: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D610: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D620: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D630: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D640: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D650: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D660: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D670: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D680: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D690: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D6A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D6B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D6C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D6D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D6E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D6F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D700: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D710: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D720: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D730: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D740: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D750: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D760: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D770: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D780: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D790: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D7A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D7B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D7C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D7D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D7E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D7F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D800: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D810: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D820: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D830: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D840: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D850: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D860: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D870: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D880: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D890: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D8A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D8B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D8C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D8D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D8E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D8F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D900: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D910: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D920: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D930: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D940: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D950: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D960: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D970: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D980: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D990: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D9A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D9B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D9C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D9D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D9E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02D9F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DA00: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DA10: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DA20: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DA30: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DA40: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DA50: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DA60: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DA70: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DA80: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DA90: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DAA0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DAB0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DAC0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DAD0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DAE0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DAF0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DB00: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DB10: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DB20: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DB30: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DB40: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DB50: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DB60: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DB70: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DB80: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DB90: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DBA0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DBB0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DBC0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DBD0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DBE0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DBF0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DC00: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DC10: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DC20: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DC30: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DC40: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DC50: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DC60: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DC70: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DC80: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DC90: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DCA0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DCB0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DCC0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DCD0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DCE0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DCF0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DD00: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DD10: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DD20: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DD30: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DD40: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DD50: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DD60: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DD70: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DD80: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DD90: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DDA0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DDB0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DDC0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DDD0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DDE0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DDF0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DE00: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DE10: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DE20: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DE30: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DE40: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DE50: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DE60: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DE70: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DE80: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DE90: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DEA0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DEB0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DEC0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DED0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DEE0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DEF0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DF00: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DF10: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DF20: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DF30: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DF40: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DF50: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DF60: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DF70: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DF80: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DF90: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DFA0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DFB0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DFC0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DFD0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DFE0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02DFF0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E000: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E010: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E020: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E030: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E040: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E050: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E060: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E070: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E080: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E090: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E0A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E0B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E0C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E0D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E0E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E0F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E100: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E110: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E120: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E130: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E140: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E150: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E160: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E170: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E180: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E190: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E1A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E1B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E1C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E1D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E1E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E1F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E200: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E210: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E220: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E230: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E240: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E250: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E260: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E270: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E280: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E290: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E2A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E2B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E2C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E2D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E2E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E2F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E300: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E310: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E320: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E330: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E340: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E350: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E360: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E370: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E380: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E390: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E3A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E3B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E3C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E3D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E3E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E3F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E400: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E410: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E420: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E430: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E440: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E450: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E460: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E470: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E480: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E490: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E4A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E4B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E4C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E4D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E4E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E4F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E500: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E510: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E520: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E530: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E540: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E550: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E560: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E570: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E580: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E590: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E5A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E5B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E5C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E5D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E5E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E5F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E600: 54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 00 00 00 Track-Info......
02E610: 27 00 01 00 02 09 52 E5 27 00 41 02 00 00 00 02 '.....R.'.A.....
02E620: 27 00 46 02 00 00 00 02 27 00 42 02 00 00 00 02 '.F.....'.B.....
02E630: 27 00 47 02 00 00 00 02 27 00 43 02 00 00 00 02 '.G.....'.C.....
02E640: 27 00 48 02 00 00 00 02 27 00 44 02 00 00 00 02 '.H.....'.D.....
02E650: 27 00 49 02 00 00 00 02 27 00 45 02 00 00 00 02 '.I.....'.E.....
02E660: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02E670: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02E680: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02E690: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02E6A0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02E6B0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02E6C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02E6D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02E6E0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02E6F0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02E700: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E710: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E720: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E730: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E740: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E750: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E760: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E770: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E780: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E790: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E7A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E7B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E7C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E7D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E7E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E7F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E800: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E810: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E820: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E830: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E840: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E850: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E860: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E870: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E880: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E890: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E8A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E8B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E8C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E8D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E8E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E8F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E900: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E910: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E920: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E930: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E940: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E950: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E960: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E970: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E980: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E990: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E9A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E9B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E9C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E9D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E9E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02E9F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EA00: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EA10: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EA20: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EA30: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EA40: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EA50: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EA60: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EA70: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EA80: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EA90: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EAA0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EAB0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EAC0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EAD0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EAE0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EAF0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EB00: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EB10: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EB20: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EB30: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EB40: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EB50: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EB60: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EB70: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EB80: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EB90: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EBA0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EBB0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EBC0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EBD0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EBE0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EBF0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EC00: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EC10: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EC20: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EC30: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EC40: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EC50: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EC60: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EC70: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EC80: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EC90: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02ECA0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02ECB0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02ECC0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02ECD0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02ECE0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02ECF0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02ED00: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02ED10: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02ED20: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02ED30: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02ED40: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02ED50: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02ED60: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02ED70: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02ED80: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02ED90: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EDA0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EDB0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EDC0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EDD0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EDE0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EDF0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EE00: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EE10: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EE20: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EE30: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EE40: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EE50: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EE60: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EE70: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EE80: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EE90: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EEA0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EEB0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EEC0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EED0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EEE0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EEF0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EF00: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EF10: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EF20: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EF30: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EF40: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EF50: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EF60: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EF70: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EF80: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EF90: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EFA0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EFB0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EFC0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EFD0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EFE0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02EFF0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F000: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F010: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F020: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F030: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F040: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F050: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F060: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F070: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F080: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F090: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F0A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F0B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F0C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F0D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F0E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F0F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F100: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F110: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F120: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F130: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F140: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F150: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F160: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F170: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F180: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F190: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F1A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F1B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F1C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F1D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F1E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F1F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F200: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F210: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F220: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F230: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F240: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F250: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F260: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F270: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F280: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F290: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F2A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F2B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F2C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F2D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F2E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F2F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F300: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F310: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F320: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F330: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F340: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F350: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F360: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F370: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F380: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F390: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F3A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F3B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F3C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F3D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F3E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F3F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F400: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F410: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F420: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F430: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F440: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F450: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F460: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F470: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F480: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F490: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F4A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F4B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F4C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F4D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F4E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F4F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F500: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F510: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F520: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F530: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F540: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F550: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F560: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F570: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F580: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F590: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F5A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F5B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F5C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F5D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F5E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F5F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F600: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F610: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F620: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F630: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F640: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F650: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F660: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F670: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F680: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F690: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F6A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F6B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F6C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F6D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F6E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F6F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F700: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F710: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F720: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F730: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F740: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F750: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F760: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F770: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F780: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F790: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F7A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F7B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F7C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F7D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F7E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F7F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F800: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F810: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F820: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F830: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F840: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F850: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F860: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F870: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F880: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F890: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F8A0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F8B0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F8C0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F8D0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F8E0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F8F0: E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 ................
02F900: 54 72 61 63 6B 2D 49 6E 66 6F 0D 0A 00 00 00 00 Track-Info......
02F910: 28 00 01 01 00 01 52 E5 28 00 01 00 20 20 80 00 (.....R.(... ..
02F920: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02F930: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02F940: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02F950: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02F960: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02F970: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02F980: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02F990: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02F9A0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02F9B0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02F9C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02F9D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02F9E0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02F9F0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02FA00: 01 02 03 04 05 00 03 00 30 80 00 00 10 00 88 04 ........0.......
02FA10: 10 09 47 21 00 01 00 35 32 33 2D 30 33 37 43 20 ..G!...523-037C
02FA20: 20 20 20 20 20 20 20 53 43 48 4E 45 49 44 45 52 SCHNEIDER
02FA30: 20 44 55 50 20 33 22 2D 31 30 30 2F 34 30 20 32 DUP 3"-100/40 2
02FA40: 53 20 44 44 20 53 53 00 00 20 20 20 20 20 20 20 S DD SS..
02FA50: 20 20 20 20 20 20 20 00 00 00 00 37 30 32 39 32 ....70292
02FA60: 2D 30 30 77 00 04 00 77 00 8E 01 00 00 00 00 00 -00w...w........
02FA70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02FA80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02FA90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02FAA0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02FAB0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02FAC0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02FAD0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02FAE0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
02FAF0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
RESULT OF SEARCH :
PRO=110 CHEA=0 COD=7 MUSI=0 COP=76 GRA=18 WRIT=27 198=15 199=0 STARTER=0 KBI=0 CAAV=0 L.TOURNIER=0
EXTENDED CPC DSK File SAMdisk150708* RAFBGCHDIEi33!"!5G2$!DM!'#(DMi3B!0PY F
ailed to load the configuration sector $Y$*(&Y Illegal configuration sector
$*"*"2C!2! !d#(GN#!'F!-F!3F#(PWF#N#8Y Expansion buffer full or illegal token s
pecified $ OGl #$O1 #V!Kx("py2$SKC!'K8*R"(8 K!! &#(V#s#r#z y2!C#V#!5 ) R(0+"
o&"MDGG KC2O!*"$'! #7 0#O$OSC.SYS wurde nicht gefunden. BASICirgendeine Taste
druecken BASI$OSC SYS52DjDj $wwCP/M 2.2 - Amstrad Consumer Electronics plc
$ BO BO 11111111111111111111111111111111111111111111111111111111111111111111111
1111111111111111111111111f222222222222222222222222222222222222222222222222222222
22222222222222222222222222222222222222222222222233333333333333333333333333334£ H
!62 !6/H!6 !/HH!w20E!S!W6£ z!6cm!c6z!6l , HH 2£E£12v!q!*8!*6!q !p+q.* !q*&!p+q*
2i3B!0PY Failed to load the configuration sector $Y$*(&Y Illegal configurati
on sector $*"*"2C!2! !d#(GN#!'F!-F!3F#(PWF#N#8Y Expansion buffer full or ille
gal token specified $ OGl #$OX COPYRIGHT (C) 1979, DIGITAL RES
EARCH # 22 !22a2!B!6#5! )!F#x0ww!"!6(!#* ""# . Oo$!Y2*O"Gwx2p0#*6w0#6 .0#*6w
0#6 #6"# xDIR ERA TYPESAVEREN USER!yO# Ty#O321y2y21A92.!#fow!v"!READ ERRORNO FIL
E RAFBGCHDIE! 3#0 WxxG # 3x#B!Y2!!T! 6#O KAxK K xBR9!5#Y#"TALL (Y/N)T!6!w4!Yt
fT2o&)+!"**#" 2yWyOxOxG*V5dw N N#Fy*#u*#DM*6#x**s#r*6#6A#$2Ek/GyO2!q*C"*JOyx s-N
-# S2E!wTD6k-PYy5*zBK5dy!NO SPACETy!B*Os#"sG!Ypsp2mfFILE EXISTS 2) T!k!qqf!222!
!B! #0O#Cx21)fzBAD LOADCOMf !$$$ SUB *COT*CwD-'-*C Ox!N!Fwyx*Cw#+w#w+2E22i*C
w# # w2!E5T*C!"C"C!w# F! wx2*CwG!4$Zx22!Z2Ew"C2!"E9"1A22!ty)K!G#V*CE ,&-AGMS!!!!
Bdos Err On $Bad Sector$Select$File R/O$BA2!6O EB2 b* y!4 5yy5 6yHOyH H #H!
H H H $O2*CN# 22T*CGwn2ODMH"*CddslOs#rEy*Ww#*"*G#"!w4!iwZ!E262*C!!#OG#n,-.! w!y
G!x.E!q!pQE.$.Ei62ExN!OGG!G*C!r#r#ry#x#x2 p&+72H! w!5Nkx#Nx !2 ! 5#wOxp Hy!qMD#2
E!#V w#PBO#V#"##"##"##"!O*!O*!66*w#w*w#w'*!J*""!N#F*#V*#foyx*zW+*s+p+q-*C !!q#p#
w*BOYG*MD"£!Bw!2*C2uB22wEA*Cw"!""2B!"!rQQQrQ*"CQ-QQQrQ$Q*)B"*)*)Q*"EA2AQQQ*C//*W
£*"£og"*C6w2E**EDQ2yx#*DM*s#r*s#ryOxG*0MD!!N EGO S*Cqn&#VO"**)"Oo"*C*C!222Oww go
*# )BO!yoxg*BO!N#F"*#*s#r!J! J*o$*Ci6iw**#zr+sozg****,w!!N#F$**O!#! RAFBGCHDIE
PIP COMPROOF SUB DICT DICT !"#$%&HISTORY '()STDIO H *T
OOLS H +,BUF C -./CANT C 0CATSUB C 1CHG C 23CPY C 4567CN
T C 89CPT C DTB C DIGIT C ABORTED$BAD PARAMETER$INVALID USER N
UMBER$RECORD TOO LONG$INVALID DIGIT$END OF FILE, CTL-Z$CHECKSUM ERROR$CORRECT ER
ROR, TYPE RETURN OR CTL-Z$INVALID FORMAT$HEX$$$$NO DIRECTORY SPACE$NO FILE$COM$S
TART NOT FOUND$QUIT NOT FOUND$CANNOT CLOSE DESTINATION FILE$DESTINATION IS R/O,
DELETE (Y/N)$**NOT DELETED**$$$$$$$NOT FOUND$COPYING -$REQUIRES CP/M 2.0 OR NEWE
R FOR OPERATION.$UNRECOGNIZED DESTINATION$CANNOT WRITE$INVALID PIP FORMAT$CANNOT
READ$INVALID SEPARATOR$1 2L M9EDT C JABCDEFEDT2 C BGHIJKLMNOETB C
PQERROR C RFND C SFNT C TUVFMT C WXYZabFMT2 C cdeFMT3
C mfghijklmnopqrsGETWRD C tINDEX C uLST C vwxyMAKSET C zMAKSUB C
MRG C OUT C 2212!o6+6+6!6#6!6#6G*o.!N6*M!K6!6!6+6' $2K x'! '! $ $!N6'
!Cw!6c!6/!/H2£ H!62 !6/H!6 !/PAGE C PAT C 4PRT C !PRINTF C SAME
C SCOPY C SETTAB C STP C SRT C DSTRIP C TABPOS C TRN
C TRIM C XINDEX C HH!w20E!S!W6£ z!6cm!c6z!6l , HH 2£E£12v!q!*8!*6!q !p+
q.* !q*&!p+q*2!p+q*2!p+q*22!p+q*!p+q*!p+q*!p+q*2!p+q*!p+q* !q*& *M*M!p+q*!!p+q*"
!p+q*$!6 !kp+q*j!qp+q/*pDM9 M2rN!r!r*r&N!r4!6 .!ws+p+q+p+qw2wN *s*u w*s#"s*u#"u'
!"*M7!x6!x **DM2y y *"*62x *"!x4d !"/!j2 !"*KM'!z6!z1*(INP/OUTSPACE)(INP/OUTSPA
CE)(INP/OUTSPACE)(INP/OUTSPACE)(INP/OUTSPACE)(INP/OUTSPACE)(INP/OUTSPACE)(INP/OU
TSPACE)(INP/OUTSPACE)(INP/OUTSPACE)(INP/OUTSPACE)(INP/OUTSPACE)(INP/OUTSPACE)(IN
P/OUTSPACE)(INP/OUTSPACE) COPYRIGHT (C) 1979, DIGITAL RESEARCH, PIP VERS 1.5$
$$ SUB ., INPIRDPTRUR1UR2RDROUTLPTUL1PRNLSTPTPUP1UP2PUNTTYCRTUC1CONNULEOFDIS
K READ ERROR$DISK WRITE ERROR$VERIFY ERROR$NOT A CHARACTER SINK$READER STOPPING
$NOT A CHARACTER SOURCE$ RAFBGCHDIE"*DM' *"!z4 e!"!z6!z'2*H#"H!6!*&4 2!4m*"!z4
I'2!"!q !4!SS!2*£M!#V *w*#" *M !6q !6q !6q *& !6 !6 !60 *& !6 !6 !6 *& .147FP
fqSQHIN22 H"2202Oc!6202O*&O*&!sc*&Pw!22!6!£6'!£E!£4!p+q*0 !r+s+p+q*$7**H&*#"*#"
2R!6!62!6H9!6-e!622-"2!!52!2!q" *Mn c4 *Mn 2!cQ !c2 !cw!n !5 Y !6!q!lw 0O !
qO O !62lo'2on'2nm'2m*mM£ *nM£ *oM£ *2D" ** *&"!qUYY2!62!!6 ! !6Q£H!6*M !6!
qa/z!-!p+q,!6*DM9!6z 2W!6D*&Lw2Ov*20O0AOA H!wOidV2O2!X!6!O!LNE!4 E E/.*&L6$L9k9.
X*KM020 020121''!G6!"!"7*Mn/a/H!6!&6/H2!qA/Z!/H8 2OmW!QHmd9!62*M!E#VO **2*#"m2m2
m!6m!6m!6m2mm!62m!62m!62m!62m'22T£2!£6*ME2£22 2i2d*M2*"!b!!0!qE24J!46*a!44EJ *KM
'!36'n0f9OY#9.3'.020'''7 6'!jA+!s!"1!"**"n"Dn""!Q2X!W*MEO2Mc!6#6!)*&P"HH*M!(2% !
F!5+N!2!42T!b*bMzb2!b62!*M!6!6 (!q!wO!2*&w!!4!6N2N! *N&N2 !p+q!6!6+6 !6 SM!6g8N2
M*M8p!6!6!6!*&P6!4z!6!6#6#6!6*M8*g2,A2OHH"!6!4jYO jM*"S*" 3bl*M1!""7*M!"H*#"/9.*
#"!' !'6!36' 1/!aE*#"zC9I.!6!*&'2 y.*M!4Q!22!2K2K!!K !p+q**M8)!N5!65!6#6!!62O/!O
!T*MHK!6!N522!44!6.2O8*g !N5!6%2*6 *6!q!6 !d*&I!4A2O*w!6!q!6!g!q*&*!622 HA2O 2
RAFBGCHDIEDM! H-N2Oogozg#V)))ozg#V) d#Vgo nozgOozgiN#Fogo&ogH ' !'6!36' 1/!aE*#
"zC9I.!6!*&'2 y.*M!4Q!22!2K2K!!K !p+q* adapting add added adding addition
additional additions address addressed addresses addressing adds adequate
adhere adjust adjusted adjusting adjusts administrative advantage advan
tages advice affect affected affecting affects afraid after again again
st age ahead aid alarm algorithm alias aligns all allocate allocated
allocates allocating allocation allocations allow allowed allowing allows
alone along alphabet alphabetic alphabetics already also alter altered
altering alternate alternately alternative alters although altogether a
lways am american among amount amounts an analogous analyzer and annou
nce announcement announcements another answer answering anticipate antici
pates anxious any anyone anything anyway anywhere apart apostrophe appa
rent appealing appear appearance appeared appearing appears append appen
ded appendices appendix appends applicable application applications appli
ed apply applying aB ATRN $1 PROOF1.TMP a-zA-Z-' n ASRT PROOF1.TMP
PROOF2.TMP -U ERA PROOF1.TMP AMRG PROOF2.TMP ADICT -1 PROOF3.TMP ERA P
ROOF2.TMP AEDT PROOF3.TMP AMRG PROOF3.TMP ADICT ADICT.NEW ERA PROOF3.
TMP ppreciate approach approaches appropriate appropriately approximated
approximately arbitrarily arbitrary architecture are area areas argumen
t arguments arises arithmetic around arrangement arranges arranging arra
y arrays arrive article articles as ascending ascertain aside asked as
king aspects assemble assembled assembler assemblers assembles assembling
assembly assessed assign assigned assignment assignments assigns assist
assisted associate associated associates assume assumed assumes assumin
g assumption assumptions asterisk at attached attempt attempting attempt
s attention audible augmented author auto automatic automatically auxili
ary availability available avoid avoided avoiding await aware away awkw
ard b back background backing backslashes backspace backspaces backup b
adly bar bare barrier base based basic be bears became because become
becomes been before beforehand began begin beginning begins b - --
a abbreviated ability able abnormal abort aborted aborting aborts about
above absence absolute absolutely abuse accent accept acceptable accep
tance accepted accepting accepts access accessed accesses accessing acci
dental accidentally accommodate accompanies accomplished accomplishes acco
rding accordingly account accumulator accuracy achieve achieved achieving
acquired acronyms across action actions activates activities activity
actual actually adapt RAFBGCHDIEegun behavior behind being bell bells b
elow benchmark benefits berserk besides best better between beyond bina
ry binding bit bits blank blanks block blocking blocks blows body bon
es book books booming boot booting borrow both bother bottom bounds b
ox braces bracket brackets branch break breaks brevity brief briefly b
rings broken brought browse buffer buffering buffers bug bugs build bu
ilding builds built business but button buy buyer by bye uting constr
aint contain contained containing contains contend content contents cont
ext contexts contiguous continuable continue continued continues continui
ng continuous control controlled controller controlling controls convenie
nt convention conventional conventions conversing conversion convert conv
erted converting converts convinced cooperate cooperation copied copies
copy copying copyright copyrighted core correct corrected correction cor
rections correctlybypass byte bytes c calculated calculates calculations
call called caller caller's calling calls came camouflages can can't
cancel cancels cannot capabilities capability capable capacity capitalizi
ng caps capture care careful carriage carry cascade case cases caught
cause caused causes causing ceases center centered centering centers c
ertain cessation chain chains chance change changed changes changing ch
apter chapters character characters chart chec correspond corresponded c
orresponding corresponds corrupted corrupting cost costs could couldn't
count counted counter counterparts counting counts course covered covers
create created creates creating creation credited critical crypt crypt
ic cumulative current currently cursory custom customary customize custo
mized cut cyclic d daily damaged danger data date de-allocated dead d
eadline deal dealing deals dealt dear deblocking debt debugger debuggin
g k checked checker checking checks chief chip choice choices chokes
choose choosing chore chose chosen circumflex circumstances cite claimed
clarity class clean clear cleared clearing clearly clears close close
d closely closes closing code coded codes coexist collaboration collaps
e collapsed collapses collapsing collection colon colons column columns
combination combinations combine combined combines combining come comes
comfortable coming comma commandecember decide decided decides decimal
decipher decisions declaration declarations declare declared declares dec
rease decreased decreases decrement decrements dedicated default defaults
define defined defines defining definition definitions definitive delay
delete deleted deletes deleting delight delimit delimited delimiter de
limiters delimits delivered demanding demonstrated denied denies denser
density deny depend dependence dependent depending depends dd commands
commas commence commences commencing comment comments commercial common
commonly communications compact compare compared compares comparing compa
rison comparisons compatibility compatible compelling compilation compile
compiled compiler compiler's compilers compiles compiling complement com
plements complete completely completeness completion complex complicated
complication component components composed composing compound comprehensiv
e compress compreerive derives descending describe described describes d
escribing description descriptions descriptive descriptor descriptors desi
gn designate designated designates designation designator designed design
ing desirable desired desires destination destroy detail details detect
detected determine determined determines develop developed developing de
velopment device devices devoted diagnostic diagram dictionary did didn'
t differ difference differences different diffssed comprised comprising
computer computers concatenated concatenating conceived concept concepts
conceptual concern concerned concerning concerns concert concise concisel
y condition conditional conditions configured conflict conform conforming
conjunction connected consecutive conserves consider considerable consid
erations considered considering considers consist consistent consisting c
onsists console constant constantly constants constitute constitutes cons
tit RAFBGCHDIEers difficult difficulty digit digits dilemma dimension di
mensions direct directed directing direction directive directives directl
y directory disable disabled disables disadvantage disappearance discard
discarded discontinue discontinued discounts discover discuss discussed
discussion disk diskette diskettes disks dispatches displace displacement
displacements display displayable displayed displaying displays distingu
ish distributed distribution diverts dividel failed failing fails failur
e fairly faithful fall falling falls false familiar familiarity far fa
shion fast faster fat feature features february feed feel feet fence
fetch fetched fetches few fewest field fields fifth figure file file's
files fill filled filling fills final finally find finding findings
finds fine finish finished first fit five fix fixed fixes flag flaggi
ng flags flaw flexibility flexible flip flop floppy flow flush flushed
divides do doctor document documentary documentation documented documen
ts does doesn't doing dollar domain done double doubled doubles doubt
doubtful down drawback drive driver drivers drives drop dropped drops
dubbed dummy dump dumped duplicate duplicated duplicates during duty d
ynamic dynamically e each earlier early ease easier easily easy echoed
echoes echoing edge edit edited editing editor editors effect effecti
ve effectively effects efficd flushes flushing folded folds follow foll
owed following follows fool foolproof foot for force forced forces for
cing foreign forget form format formats formatted formatter formatters
formatting formed former forming forms forward found foundation fountain
four fourth free freed freeing freely frequently fresh friendly frill
s frog from front full fully function functional functions further fut
ure g gap gaps garbage garbled gathered gathering generiency efficient
effort eight either element elements eleven eliminate eliminated elimin
ates eliminating ellipsis else embedded emphasis emphasizes employ emplo
yed employs empty enable enabled enables enabling enclose enclosed enco
unter encountered encounters encouraged encouragement encryption end end-
of-file ended ends enforce engineering enhanced enhancement enhancements
enhances enlarge enough ensure enter entered entering enthusiastic enti
re entirely eal generally generate generated generates generating genera
tion generative generic get gets getting give given gives giving globa
l go goal goes going gone good gracefully graciously grave great grea
ter greatly group groups grow growing grows guarantee guaranteed guaran
tees guidance guide guinea gulp h had half hall halt halted halting
halts hand handbook handle handled handles handling handy happen happen
ings happens happy hard harder hardware hntitled entries entry envelope
s environment environments equal equality equalized equally equate equat
ed equates equivalent erased erasure erroneous error errorcode errors e
scape escaped especially essentially establish establishes establishing e
stimate etc evaluate evaluated even eventually ever every everyone ever
ything exactly examination examining example examples excellent except e
xception exceptional exceptions excess exchange exchanged exchanges excla
rmony has hash have having he head header headers heading headings he
ar hears held help helpful helps hence here heretofore hex hexadecimal
high high-level high-order higher highest highly him his hits hitting
hobbies hold holding holds home honor honored honoring hooked hope h
orizon horizontal host hours housekeeping how however humans hybrid hyp
hen hyphens i i'll idea ideal ideas identical identification identified
identifies identify if ignude excluded exclusive executable execute ex
ecuted executes executing execution exhausted exist existed existence ex
isting exists exit exited exiting expand expanded expands expansion exp
ect expected expecting expects expense experience experienced explained
explains explicit explicitly exploit express expressed expression express
ions extend extended extends extension extensions extensive extent exter
nal extra f facilitate facilities fact factor facts fai RAFBGCHDIEore
ignored ignores illegal illustrate illustrated illustrates image imaginat
ion imagine immaterial immediate immediately impact implement implementat
ion implementations implemented implementing implements implicit implicite
ly implied implies imply importance important impose imposed impossible
improve improved improvement improvements in inappropriate include inclu
ded includes including inclusion inclusive incoming inconsistent increase
increased increasing inkage linked linking links lisp list listed lis
ting listings lists literal literally literals little load loaded loade
r loaders loading loads local locate located locates locating location
locations logic logical logically long longer look looked looking look
s loop lose loses loss lost lot lots love low low-level low-order lo
wer lowest m machine machines macro made magnitude mail mailing main
mainframes maintaining maintains maintenance major makcrement incremental
incremented incrementing increments indeed indefinite indent indented in
denting indention independence independent independently index indicate i
ndicated indicates indicating indicator indirect indirectly individual in
dividually inefficiencies inequality inexpensive information informs infri
nges initial initialization initialize initialized initially initiate ini
tiated initiates inner input inputs insert inserted inserting inserts i
nside insie makes making man management manipulate manipulated manipulat
ion manipulations manner manual manually many map margin margins mark
marks match matched matches matching material matrix matter maximum may
me mean meaning meanings means mechanism meet meeting memory mentione
d mentions merely merge merged merges merging message messages metachar
acters method methods micro microcomputer microcomputers micros middle m
ight migration mind minimize minimum mdious inspiration inspired install
installation installed installing instance instances instead instruct i
nstructing instruction instructions instructs insufficient intact integer
integers integrity intelligent intend intended intent interaction interc
ept intercepts interest interested interesting interface interfaces inter
fere interfering internals interpretation interpreted interrupt interrupte
d interrupting interruption interruptions interrupts interspersed intinor
minus minute minutes mirror miscellaneous missing mississippi misspelled
misspellings mistake mixed mixing mnemonic mnemonics mode modes modest
modification modifications modified modifiers modify modifying module m
odules monitor monitored monitors more most mount mounted move moved m
oves mr much multiple multiplies multiply must mutually my mysterious
n name named names naming natural naturally nature near nearly neat n
ecessarily necessary needervening into introduce introduced introduces in
troduction introductory invalid invalidated invalidating invaluable invoke
invoked invokes invoking involve involved involves involving inward ir
onically irritants is isolated isolating issue issued issuing it it's
item iteration its itself j january job join joined journal judged ju
dicious judiciously jump jumps just justification justified justify just
ifying k keep keeping keeps kept key keyboard keys needed needs nega
te negates negative neglected nested nesting never nevertheless new nex
t nibble nibbles no nominal non-zero noncommercial none nor normal nor
mally north not notation note notes nothing notice november now nucleu
s nuisance null number numbered numbering numbers numeric numerical num
erically o obey object objectives objects observe observing obtain obta
ined obtaining obtains obvious occasional occasionally occasions occupied
occupies keyword kind kinds know knowing knowledgeable known knows l
label labels laboratories laboratory labs lack lag language languages
large largely larger last later latest latter lay layout leading leap
learn learned learning learns least leave leaves leaving left leftmost
legal length lengths less let lets letter letters level levels libra
ries library licensee like likelihood likely likewise limitations limite
d limiting limits line lines link lin RAFBGCHDIE occupy occupying occur
occurred occurrence occurrences occurring occurs odd of off offer off
ers offset offsets often oh old omitted on once one one's ones only
onto open opened opening operand operands operate operated operates op
erating operation operations operator operators opportunity opposed oppos
ite optimistic optimization optimize optimized optimizer optimizing optio
n optional optionally options or order ordinarily ordinary organization
organi private privilege probable probably problem problems procedure pr
ocedures proceed proceeding proceeds process processed processes processi
ng processor processors produce produced produces producing product prod
uctive productivity professionally professors program program's programmer
programmer's programmers programming programs progress project projects
promised prompt prompted prompting prompts proof proofing proofreading
proofs proper properly properties pzational organize organized oriented
origin original originally other others otherwise our out outcome outer
outline outlined output outputs outside over overcomes overflow overhe
ad overlaid overlap overlaps overlays overridden override overrides over
view overwritten own p package packages padded page pages paid pair p
airs palatable paper paragraph paragraphs parallel parallels parameter p
arameters parentheses parity park part partial particular particrotection
prototype prove proves provide provided provides providing provision p
roximity pseudo public published publisher punched punctuation purchased
purge purpose purposes pursue push pushed pushes pushing put puts put
ting q quad quality question questionable questions queue quick quit q
uite quotation quoted quotes quotient r ragged ran random randomly ran
ge rate rather re-entering re-enters reached reaches read readable read
er readers reading rulars partitioned parts pass passed passes passing
past pat patch patches patching patiently pattern patterns pause pause
d pauses pausing pay pending penetration people per percent perfectly
perforations perform performance performed performing performs period per
iodic periodically peripheral permission permit permits permitted permitt
ing person personalize personalized pertaining pertains phase phases phi
losophy phonetic physical physically pick picked eads ready real realiz
e realized really reason reasonably reasoned reasons reassembled reassem
bling recalculate recall recalled recapture received receives receiving
recent recently recognize recognized recognizing recommended recompiled r
ecompiling record records redefined redefines redirect redirectable redir
ected redirecting redirection redisplay reduce reduced reduces reducing
redundancy refer reference referenced references referencing referred ref
erring piece pig piggyback pile place placed placement places placing p
lans pleasant please pleased plus point pointed pointer pointers pointi
ng points poll polling poorly pop popped pops popular popularity port
portability portable ported porting portion ports pose posed position
positional positions positive possibilities possibility possible possibly
postage power powerful practical practice pre-allocating precaution prec
autionary precede preceded precedes refers reflect reflects refuses rega
ins regardless register registers regular reinstate reinstated rejected
relating relationship relative relatively release releases relief relinqu
ish reloaded reloading relocatable relocate relocated relocates relocatin
g reluctance reluctant remain remainder remaining remains remaninig reme
mber remembered remembering remembers remove removed removes removing re
name renowned renumber renumbered renumbering reorganized repeat precedin
g precision preclude preface prefer prefix prefixed prefixes prefixing
preparation prepare prepared preparing prerequisite prerogative prescribes
presence present presentation presented presenting presently presents p
reserve preserved press pressed pressing presumably pretty prevent preve
nted preventing prevents previewing previous previously prewritten price
primarily primary primitives print printable printed printer printing p
rints prior priority RAFBGCHDIE repeatedly repeating repetitive replace
replaced replacement replaces replacing report reported reporting reports
represent representation representations represented representing represe
nts reprint request requested requests require required requirement requ
irements requires requiring requisite resemble resembling reserve reserve
d reserves reserving reset reside resident resides residing resized res
olve resort resource resources respect respectable respectiveolution solv
ed solving some something sometimes somewhat somewhere soon sooner sort
sorted sorting sorts sought sound sounded sounds source sources space
spaced spaces spacing span special specially specific specifically spe
cification specifications specified specifies specify specifying speed sp
elling spent spilling spirit split splits splitting spread spreading sp
urious square squeeze squeezed squeezing stack staging stand standard s
tandardize standinly respects responds response responses responsibility
rest restart restarted restarting restarts restores restoring restrict r
estricted restriction restrictions result resulted resulting results resu
me resumed resumes resuming resumption retain retained retains retrainin
g return returned returning returns reusable reuse reused reusing rever
se reversed reverses review revised revising revision rewrite rewriting
rewritten rich right rightmost rights road rg stands star start start
ed starting starts state stated statement statements status stay steals
steep step steps stick still stop stopping stops storage stored stor
es straight strange stream strict strictly strikes string strings strip
ped strokes structure structured structures students studied study style
d subject submitted subordinate subprograms subroutine subroutines subscr
ipted subscripts subsection subsections subsequent subset substantially s
ubsock room rotate rotates round rounded route routine routines rub ru
bbed rule rules run running runs s safe safeguard said sake same sam
ple sandwiched save saved saves saving say says scale scaled scan sca
ns scheme science scientific score scream screen scrolled scrolling scr
olls search searched searches searching second secondary section section
s sector sectors secure security see seek seeking seeks seem seemed s
eems seen sees segmented segmentitute substituted substitutes substitutio
n substitutions subtract subtracted subtracting subtracts succeed success
successful successfully successive successively such suffer suffice suf
fix suffixes suggest suggested suggestion suggestions suggests suit suit
able suited sum summary superfluous superior supplement supplied supplie
s supply supplying support supported supports suppose suppress suppresse
d sure surface surprise surrounded surrounding survive suspits seldom s
elected selection selects self self-contained semicolon semicolons send
sending sends senior sensitive sent sentence separate separated separate
ly separates separator september sequence sequences sequential sequential
ly serial serially series serve serves service services set sets setti
ng settings setup several shared sharp sheet sheets shell shift shifte
d shifts shipping short shortage shorter shorthand should shouldn't sho
w showing shown cious swap swaps switch switches switching symbol symb
olic symbolically symbols synonyms syntax system systems t tab table t
ables tabs tail take taken takes taking tapes target task tasks techn
ique techniques tedious telephone tell telling tells temporarily tempora
ry tempted tend tendencies tends term terminate terminated terminates t
erminating termination terminator terminology terms test tested testing
tests text textual than thanks that that's tshows shudder shuffling si
de sided sides sidestepped sign signal signaling signals signed signifi
cance significant significantly signifying signs silenced silently simila
r similarly simple simpler simplest simplicity simply simulation simulta
neously since sincere sincerely single sits sitting situation situations
six size sizes sizing skip skipped skipping skips slash slashes slee
p slight slightly slower small smaller snap snuff snuffing so software
s R A F B G C H D I Ehe their them themselves then theoretically theor
y there thereafter therefore these they thing think thinking third thi
s thorough those though thought three through throughout thus tied tig
ht time times to together toggle toggles told too tool tools top top
ic totally toward trace track tracks trade trademark trailer trailing
transaction transactions transfer transferred transferring transfers trans
formed translate translated translating translation translator translators
transliterate transliterating traversed treat treated tremendous trial
trick trivial true truly truncated trying turn turned turnkey turns tw
o type typed types typically typing typographical u unacceptable unaffe
cted unaltered unanticipated unchanged uncomfortable unconditional undefin
ed under underline underlined underlining underlying underscore underscor
es understand understanding understood unequal unfortunately uninterruptab
le unintSmall-Tools Revision History -- included in version 1.1 --- edt c
hanges 1. Do not abort run on error loading file named in command line. 2. R
ename original file to .$$$ extension before writing it anew. Delete .$$$ f
ile if successful. 3. Add "z" command to "zip" through the buffer from the cur
rent line until interrupted by any input. 4. Abort iterative commands on
ESC from console. Abort "print" and "zip" commands on any input. --- fmt
changes 5. add .bf command for boldfacerrupted unique uniqueness unit uni
ts university unknown unless unlike unlink unmatched unmentioned unmodif
ied unnecessarily unnecessary unpredictable unrecognizable unrestricted un
signed unsocial unsolicited unsuccessfully until untouched unused unusual
unwanted up update updated updates updating upon upper uppercase upwa
rd usable usage use used useful user user's users uses using usual u
sually usurp usurps utility utilization v valid validated validate. 6.
add -bs# switch for number of boldface strikes. 7. add -s switch to show sour
ce files. 8. use switch statement. 9. fix bug causing the printing of pages
with only a heading/footing. 10. add EPSON mode for underlines and boldface.
-bs# switch is effective only in TTY mode. 11. add -t switch to set TTY mode
. 12 add .it command for italics in EPSON mode. 13. add -i switch to substitu
te italics for underlines. 14. add -u switch to substitute underlines for itali
cs. 15. make boldface ales valley valuable value valued values variable
variables varies variety various vary varying vastly vector verb verifi
es verify versa version versions vertical very vice video view viewed
viewing views violated violates virtual virtually volume w waited wait
ing waits want wanted wants warning was wasted way ways we we'll wee
d well were what whatever when whenever where wherever whether which
whichever while whistles white who whole whose whyso double strike. 16.
enhance italics. 17. use "switch" in comtyp() 18. keep bold/italics/underline
out of headings/footers. 19. don't obscure blank lines with .ul, .bf, .it. 20.
prevent blank pages on .bp at last line of a page. 21. add -nr switch to negat
e "ready printer..." prompt. 22. make ".mp #" algorithm wait # lines before for
cing another page break. 23. make -ec# print multiple copies even w/o mergefile
. 24. add ".dw #" command for nontty mode double wide print. --- lst changes
25. all wide widespread widow width wife will wipe wish wishes with
within without word words work working workings works world worth wor
thiness would wouldn't wraps write writer writes writing written wrong
wrote x y year yet yield yielding yields you your yours z zebra ze
ro zeroed zeroes were what whatever when whenever where wherever whe
ther which whichever while whistles white who whole whose why RAFBGCHD
IEow bare filename in leu of redirection spec for stdin in the command line
. --- mrg changes 26. Merge based on a lexicographical ordering rather than
the straight ASCII colating sequence. --- prt changes 27. Force output
to LST unless stdout is redirected away from the console. --- srt changes 28
. unless specified otherwise with the -t switch, temporary files go to the
default drive. -- included in version 1.2 --- fmt changes 29. subscript f
rom // to or white space, and /* ** Small-Tools definitions. ** ** The metac
haracter definitions do not completely ** follow UNIX or the Software-Tools def
initions. ** ** You may change anything to suit your preferences. */ #define
MAXFN 15 /* max file name space */ #define EXTMARK '.' /* file extens
ion mark */ #define MAXLINE 192 /* max text line space */ /* WY-5
0, TV-920, HZ-1500, AD-VP */ #define CLEAR "3353" /* screen erase */ #define C
RTWIDE 80 /* screen width */ #define CRTHIGH 24 /* s superscript fr
om to // or white space. --- srt changes 30. fix improper closing of temp f
iles. 31. make duptest() check -u switch instead of assuming it is set. 32. fi
x potential problem in merge() if input temp file is null. 33. fix test for esc
ape from merge loop. go to the default drive. -- included in version 1.
2 --- fmt changes 29. subscript from // to or white space, and creen height
*/ #define PTRWIDE 80 /* page width */ #define PTRHIGH 66 /* page h
eight */ #define PTRSKIP 8 /* page perforation skips */ #define PTRHDR
2 /* page header lines */ #define MAXPAT 257 /* max pattern in intern
al format */ #define CHAR 'c' /* identifies a character */ #define BOL
'' /* beginning of line */ #define EOL ''' /* end of line */ #defi
ne ANY '' /* any character */ #define CCL '' /* begin character c
lass */ #define NCCL '' /* negation of character class */ #define CCLEND
'' /* end of character class */ #define CLOSURE '*' /* zero or more occ
urrences */ #define DITTO '' /* whatever string matches pattern */ #defin
e ESCAPE '' /* escape character */ #define NOT '' /* negation charac
ter */ #define DITCODE -3 #define COUNT 1 #define PREVCL 2
#define START 3 #define CLOSIZE 4 /* ** STDIO.H -- Standard Small-
C Definitions ** ** Copyright 1983 L. E. Payne and J. E. Hendrix */ #define
stdin 0 #define stdout 1 #define stderr 2 #define ERR (-2) #define
EOF (-1) #define YES 1 #define NO 0 #define NULL 0 #define
CR 13 #define LF 10 #define BELL 7 #define SPACE ' ' #define
NEWLINE LF /*23*/ /*45*/ RAFBGCHDIE /* ** buf.c -- buffer manipulatio
n functions (memory version) */ int gotline, gotind char *bufptr /* **
clrbuf -- initialize for new file (stub) */ clrbuf() return /* **
getind -- locate line index in buf */ getind(ln) int ln int j if((jln-g
otline) 0) while(j--) getint(gotind+NEXT, &gotind, INTEGER) else if(j
0) while(j++) getint(gotind+PREV, &gotind, INTEGER) gotlineln return
gotind /* ** getint -- obtain integer or long from relink(LINE0, LIN
E0, LINE0, LINE0) lastbfLINE0+TEXT addset(NULL, buf, &lastbf, maxbuf) g
otlinecurlnlastln0 gotindLINE0 ++lastln /* ** relink -- rewr
ite two half links */ relink(a, x, y, b) int a, x, y, b putint(x+PREV, &a,
INTEGER) putint(y+NEXT, &b, INTEGER) updtflagYES /* ** setbuf --
initialize line storage buffer */ setbuf() buf at offset */ getint(offset, d
est, length) int offset, length char *dest bufptrbuf+offset while(length-
-) *dest++ *bufptr++ /* ** putint -- place integer or long into buf at
offset */ putint(offset, source, length) int offset, length char *source
bufptrbuf+offset while(length--) *bufptr++ *source++ /* ** gettxt --
locate text for line and make available */ gettxt(line) int line int i, j
, k i(kgetind(line)) + TEXT j0 while(txtj++ /* ** cant.c -- abort wit
h "name can't open" message */ cant(str) char *str fputs(str, stderr) f
puts(" can't openn", stderr) abort(7) bufi++) return k /* **
input -- input text from fd into buf */ input(fd) int fd int k3 while(Y
ES) if(poll(YES)ESC) return ERR k3lastbf if(fgets(buf + (lastbf
+ TEXT), MAXLINE, fd)) lastbf + trim(buf+lastbf) + 1 inlink(k3)
if((lastbf+MAXLINE) maxbuf) fputs("memory overflow ", stderr)
return ERR else break lastbf - TEXT r
eturn OK /* ** inject -- put text from lin after curln */ inject(lin)
char lin int i, k3 if(*linNULL) *lin'n' *(lin+1)NULL
i0 while(lini!NULL) k3lastbf lastbflastbf+TEXT while(lini!NUL
L) if(lini'n') ++i break addset(lini
++, buf, &lastbf, maxbuf) if(addset(NULL, buf, &lastbf, maxbuf)NO)
fputs("memory overflow ", stderr) return ERR inlink(
k3) return OK /* ** catsub.c -- add replacement text to end of ne
w */ catsub(lin, from, to, sub, new, k, maxnew) char lin, new, sub int f
rom, to, *k, maxnew int i, j i0 while(subi!NULL) if(subiDITCOD
E) jfrom while(j to) addset(linj++, new, k, maxnew)
else addset(subi, new, k, maxnew) ++i / if(addset(NULL, sub,
&j, MAXPAT)NO) return ERR /** no room **/ return i AT, subMAXPAT char
argMAXARG /* ** inlink -- link injected line */ inlink(k3) int k3 int
k1, k2 k1getind(curln) /** leaves gotline & gotind before affected area *
*/ getint(k1+NEXT, &k2, INTEGER) relink(k1, k3, k3, k2) relink(k3, k2,
k1, k3) ++curln ++lastln /* ** relink -- rewrite two half links *
/ relink(a, x, y, b) int a, x, y, b putint(x+PREV, &a, INTEGER) putint(y
+NEXT, &b, INTEGER) updtflagYES /* ** setbuf -- initialize line stora
ge buffer */ setbuf() R A F B G C H D I E /* ** cpy.c -- copy named files
to standard output ** ** Copyright 1982 J. E. Hendrix. All rights reserved.
*/ #include stdio.h #include "tools.h" #define NOCCARGC #define MAXARG 12
int fin, i, j int status int binary, striplf, stripcr, from, to char nameMAXF
N, inclextMAXFN main(argc, argv) int argc, *argv auxbuf(stdout, 4096) do
args(argc, argv) if((binaryYES)&(inclext0!NULL)) fputs("cannot include
files during binary copy", stderr) abort(7) /* ** chg.c -- change
occurrences of "from" to "to" ** ** Copyright 1982 J. E. Hendrix. All rights
reserved. */ #include stdio.h #include "tools.h" #define NOCCARGC #define M
AXARG 49 #define MAXLIN1 (MAXLINE+1) char linMAXLIN1, newMAXLIN1, patMAXPAT, s
ubMAXPAT char argMAXARG int i, k, lastn, n main(argc, argv) int argc, *argv
if((getarg(1, arg, MAXARG, argc, argv)EOF) ((arg0'-')&(arg10))) err
or("usage CHG pattern replacementn") if(makpat(arg, fin99 i0 while(ge
targ(++i, name, MAXFN, argc, argv)!EOF) if((name0'-')(name0EXTMARK)) conti
nue if((finfopen(name, "r"))NULL) cant(name) if(binary) bcopy(fin, std
out) else fcopy(fin, stdout) fclose(fin) if(fin99)
if(binary) bcopy(stdin, stdout) else fcopy(stdin, stdout)
fclose(stdout) doargs(argc, argv) int argc, *argv int len char arg
MAXARG, error inclext0fromtoNULL bin 0, NULL, pat)ERR) error("pattern
too longn") if(getarg(2, arg, MAXARG, argc, argv)EOF) arg0NULL if(ma
ksub(arg, 0, NULL, sub)ERR) error("replacement too longn") auxbuf(stdin,
4096) /** alloc aux buffer to stdin **/ while(fgets(lin, MAXLIN1, stdin)!NU
LL) poll(YES) lastn -1 i0 k0 trim(lin) while(YES)
namatch(lin, i, pat) if((n0)&(lastn!n)) /** replace matched text
**/ catsub(lin, i, n, sub, new, arystriplfstripcrerrorNO i0 whil
e(getarg(++i, arg, MAXARG, argc, argv)!EOF) if(arg0EXTMARK) j0
while(inclextjargj) ++j continue if(arg0!'-') continue
if(arg2NULL) if(same(arg1, 'b')) binaryYES else errorYES
else if(arg4NULL) if(same(arg1, 'n')) if(same(arg2, '
c') & same(arg3, 'r')) stripcrbinaryYES else if(same(arg2, '
l') & same(arg3&k, MAXLIN1) lastnn if(liniNULL) break
if((n-1)(ni)) /** no match or null match **/ addset(lini,
new, &k, MAXLIN1) ++i else in /** skip
matched text **/ if(addset(NULL, new, &k, MAXLIN1)NO) kMAX
LIN1-1 addset(NULL, new, &k, MAXLIN1) sout("7line truncated ", std
err) lout(new, stderr) lout(new, stdout) fclose(std
out) , 'f')) striplfbinaryYES else errorYES
else errorYES else if(same(arg1, 't')) binaryYES
lenutoi(arg+2, &from) if((len1)(arglen+2!',')) errorYES else
jlen+3 lenutoi(arg+j, &to) if((len1)(arglen+j!NULL)) er
rorYES else errorYES if(error) fputs("usage
CPY file... . -B -NCR -NLF -T#,#n", stderr) abort(7) #include "pat
.c" #include "maksub.c" #include "catsub.c" #include "index.c" #include "err
or.c" #include "out.c" #include "trim.c" text **/ if(addset(NU
LL, new, &k, MAXLIN1)NO) kMAXLIN1-1 addset(NULL, new, &k, MAXLIN1
) sout("7line truncated ", stderr) lout(new, stderr)
lout(new, stdout) fclose(stdout) RAFBGCHDIE bcopy
(in, out) int in, out char c1 while(YES) statusread(in, c, 1)
if(status0) break if(isatty(in)&(c04)) break if(status 1) fpu
ts("input errorn", stderr) fclose(out) abort(7) if((c
0CR)&(stripcr)) continue if((c0LF)&(striplf)) continue if((from!to)&((
c0&255)from)) c0to statuswrite(out, c, 1) if(status 1) fputs(
"output errorn", stderr) fclose(r(arg1)) case 'c' case 'w' case '
l' continue default fputs("usage CNT file -C-W-Ln", stderr)
abort(7) ncnlnw0 inwordNO while((cfgetc(fd))!EOF)
poll(YES) if(c'n') ++nl else ++nc if(isspace(
c)) inwordNO else if(inwordNO) inwordYES ++nw
itou(nc, strc, 6) itou(nw, strw, 6) itou(nl, strl, 6) switch(f)
case 'c' lout(strout) abort(7) poll(YES) fcop
y(in, out) int in, out int i, loc, in2 char bufMAXLINE+1, strMAXLINE+1
while(fgets(buf, MAXLINE+1, in)!NULL) poll(YES) if(inclext0NULL)
sout(buf, out) continue loc0 getwrd(buf, &loc, str
) if((lexcmp(str, "#include")!0) && (lexcmp(str, ".so")!0))
sout(buf, out) continue getwrd(buf, &loc, str) strip(s
tr) i0 c, stdout) break case 'w' lout(strw, stdout) break case '
l' lout(strl, stdout) break default sout(strc, stdout) lout(" charac
ters", stdout) sout(strw, stdout) lout(" words", stdout) sout(strl
, stdout) lout(" lines", stdout) fclose(stdout) #include "cant.c"
#include "out.c" ++nw itou(nc, strc, 6) itou(nw, strw,
6) itou(nl, strl, 6) switch(f) case 'c' lout(str while((stri!EXT
MARK) && stri) ++i if(inclext1 && lexcmp(str+i, inclext)) sout(buf,
out) continue if((in2fopen(str, "r"))NULL) cant(str) f
copy(in2, out) fclose(in2) #include "out.c" #include "cant.c"
#include "same.c" #include "strip.c" #include "getwrd.c" mp(str, ".so")!0
)) sout(buf, out) continue getwrd(buf, &loc, str)
strip(str) i0 /* ** cpt.c -- encrypt or decrypt ASCII or binary files
** ** Copyright 1982 J. E. Hendrix. All rights reserved. */ #include stdio.
h #define NOCCARGC #define MAXKEY 81 #define CTLZ 26 main(argc, argv) int
argc, *argv char c, keyMAXKEY int i, keylen auxbuf(stdin, 4096) key
lengetarg(1, key, MAXKEY, argc, argv) if((keylenEOF)(key0'-')) fputs("u
sage CPT keyn", stderr) abort(7) i1 while(read(stdin, &c, 1) 0
) poll(YES) if( /* ** cnt.c -- count characters, words, and/or line
s ** ** Copyright 1982 J. E. Hendrix. All rights reserved. */ #include stdi
o.h #include "tools.h" #define NOCCARGC char strc6, strw6, strl6 main(argc,
argv) int argc, *argv char argMAXFN, *nc, *nl, *nw int c, f, i, fd, inwor
d fdstdin if0 while(getarg(++i, arg, MAXFN, argc, argv) ! EOF) if
(arg0 ! '-') if((fd fopen(arg, "r")) 0) cant(arg) continue
switch(f tolowe RAFBGCHDIEisatty(stdin) && (cCTLZ)) break cckeyi
-1 if(write(stdout, &c, 1) !1 ) fputs("output errorn", stderr)
abort(7) i(i%keylen)+1 int i, keylen auxbuf(
stdin, 4096) keylengetarg(1, key, MAXKEY, argc, argv) if((keylenEOF)(key0'
-')) fputs("usage CPT keyn", stderr) abort(7) i1 while(re
ad(stdin, &c, 1) 0) poll(YES) if(/* ** edt.c -- edit text ** ** C
opyright 1982 J. E. Hendrix. All rights reserved. */ #include stdio.h #inclu
de "tools.h" #define NOCCARGC #define OK 1 #define RESERVE 600 #define PREV
0 #define NEXT 2 #define MARK 4 #define TEXT 5 #define INTEGER 2 #define LO
NG 4 #define LINE0 0 #define NOSTATUS 0 #define CURLINE '.' #define LASTLINE
'' #define SCAN '/' #define BACKSCAN '' #define FORWARD 1 #define BACKWARD
0 #define PERIOD '.' #define COMMA ',' #define SEMICOL '' #define P /* **
dtb.c -- convert tabs to equivalent blanks ** ** Copyright 1982 J. E. Hendrix.
All rights reserved. */ #include stdio.h #include "tools.h" #define NOCCAR
GC #define MAXLIN1 (MAXLINE+1) main(argc,argv) int argc, *argv char c, tab
sMAXLIN1 int col, i auxbuf(stdin, 4096) if(settab(tabs, argc, argv)ERR)
fputs("usage DTB #... +#n", stderr) abort(7) col1 while(
(cgetchar())!EOF) poll(YES) if(c't') while(YES) LUS '+'
#define MINUS '-' #define BLANK ' ' #define TAB 't' #define ESC 27 #define
PROMPT '#' #define CLFLAG '*' #define PRINT 'p' #define LINE 'l' #define G
LOBAL 'g' #define EXCLUDE 'x' #define APPEND 'a' #define CHANGE 'c' #define
DELETE 'd' #define INSERT 'i' #define JOIN 'j' #define MOVE 'm' #define SUBS
TITUTE 's' #define ENTER 'e' #define FILE 'f' #define READ 'r' #define WRITE
'w' #define QUIT 'q' #define VIEW 'v' #define ZIP 'z' int line1, /*
first line number */ cout(' ', stdout) ++col if(tabpos(c
ol, tabs)YES) break else if(c'n') cout('n', stdout)
col1 else cout(c, stdout) ++col f
close(stdout) #include "settab.c" #include "tabpos.c" #include "out.c"
derr) abort(7) col1 while((cgetchar())!EOF) poll(YES)
if(c't') while(YES) line2, /* second line number */ nlines
, /* number of line numbers given */ curln, /* current line (value of dot)
*/ lastln /* last line (value of $) */ char *buf /* buffer for pointe
rs and text */ /* ** bufk+0 PREV (2 bytes) previous line ** bufk+2 NEXT
(2 bytes) next line ** bufk+4 MARK (1 byte) mark for global commands
** bufk+5 TEXT */ int lastbf /* last element used in buf */ char *txt,
/* text line for matching and output */ *savfil, / /* ** digit.c -- ret
urn YES if c is a decimal digit, else NO */ digit(c) char c if((c'0')&(c'9
')) return YES return NO * remembered file name */ *file int s
cr, /* scratch file id */ scrend2 /* end of info on scratch file */
char *lin, *pat, *sub, updtflag, nbrstr7 int cursav, i, status, maxbuf, context
, view main(argc, argv) int argc, *argv if(isatty(stdin)) view1 else view
0 txtmalloc(MAXLINE) linmalloc(MAXLINE) patmalloc(MAXPAT) submalloc(
MAXPAT) filemalloc(MAXFN) savfilmalloc(MAXFN) maxbufavail(YES)-RESERVE
if(maxbuf 0) maxbuf32767 bu RAFBGCHDIEfmalloc(maxbuf) setbuf() upd
tflagNO pat0savfil0nbrstr6NULL context7 i0 while(getarg(++i, txt, MA
XFN, argc, argv)!EOF) if(txt0'-') if(same(txt1, 'v')&(txt2NULL)) v
iew 1 - view else fputs("usage EDT file -Vn", stderr)
abort(7) else scopy(txt, 0, savfil, 0) if(*savf
il) if(enter(savfil)ERR) fputs("errorn", stderr)
if(isatty(stdin)) break case SUBSTITUTE ++i
if(optpat()OK) if(getrhs(lin, &i, sub, &gflag)OK)
if(ckp(lin, i+1, &pflag)OK) if(defalt(curln, curln)OK)
statussubst(sub, gflag) break
case ENTER if(chkupdt()ERR) statusOK else if(nlines0)
if(getfn(lin, i, file, MAXFN)OK) scopy(file, 0, savfil, 0)
clrbuf() fputc(PROMPT, stderr) while(fgets(lin, MAXLINE, stdin)!NU
LL) poll(YES) trim(lin) i0 cursavcurln if(getlst()OK)
if(ckglob()OK) statusdoglob() else if(status! ERR)
statusdocmd(NO) /* else error, do nothing */ if(statusER
R) fputs("7errorn", stderr) curlncursav else if(stat
usEOF) break /* else OK, then loop */ if(isatty(stdin)) fputc(PROMPT,
stderr) setbuf() statusenter(file)
break case FILE if(nlines0) if(getfn(lin, i, file, M
AXFN)OK) scopy(file, 0, savfil, 0) puts(savfil)
itou(maxbuf-lastbf, nbrstr, 6) puts(nbrstr) status
OK break case READ if(getfn(lin, i, file, MAXFN)OK)
statusdoread(line2, file) pflagview break case WRIT
E if(getfn( /* ** docmd -- handle all commands except globals */ do
cmd(glob) int glob int gflag, line3, pflag pflagNO statusERR switch
(tolower(lini)) case APPEND if(ckp(lin, i+1, &pflag)OK) st
atusappend(line2, glob) break case CHANGE if(ckp(lin, i+1, &p
flag)OK) if(defalt(curln, curln)OK) if((statusappend(line2
, glob))!ERR) kill(line1, line2) ++curln
lin, i, file, MAXFN)OK) if(defalt(1, lastln)OK)
statusdowrit(line1, line2, file) break case ZIP
if(defalt(curln, lastln)OK) statusdoprnt(line1, line2, glob)
break case PRINT if(defalt(curln, curln)OK) statusdoprnt
(line1, line2, glob) break case NULL if((nlines0)&(globNO)) l
ine2nextln(curln) if(view) statusdoprnt(line2, line2, glob) else
curlnline2 break case DELETE if(ckp(lin, i+1, &pf
lag)OK) if(defalt(curln, curln)OK) kill(line1, line2)
if(curln lastln) curlnnextln(curln) break
case INSERT if(ckp(lin, i+1, &pflag)OK) statusappend(prevln(
line2), glob) break case LINE if(lini+1NULL) itou(c
urln, nbrstr, 6) puts(nbrstr) statusOK break
case JOIN statusOK break case QUIT
if((lini+1NULL)&(nlines0)&(globNO)) if(chkupdt()ERR) statusOK
else statusEOF break case VIEW view1-view s
tatusOK /* else status is ERR */ if(curln 1) curln nextln(0) if
((statusOK)&(pflagYES)) statusdoprnt(curln, curln, glob) return status
/* ** chkupdt -- warn if update not written to disk */ chkupdt() if
(updtfla if(ckp(lin, i+1, &pflag)OK) if(defalt(curln, curln+1)OK)
if((statusjoin(line1, line2))OK) curlnline2
if((statusinject(txt))OK) kill(line1, line2) +
+curln break case MOVE ++
i if(getone(&line3)EOF) statusERR if(statusOK) if(ckp(li
n, i, &pflag)OK) if(defalt(curln, curln)OK) statusmove(line3)
RAFBGCHDIEg) fputs("didn't write to disk!n", stderr) updtflagNO
return ERR return OK /* ** ctoi -- convert string at in*i
to integer, bump *i */ ctoi(in, i) char in int *i int dd, num char *dig
its digits"0123456789" while((in*iBLANK)(in*iTAB)) *i *i + 1 num0 w
hile(in*i!NULL) ddindex(digits, in*i) if(dd 0) break num 10*nu
m + dd *i *i + 1 return num /* ** skipbl -- skip blankedt
2.c" #include "same.c" #include "pat.c" #include "buf.c" #include "error.c"
#include "index.c" #include "maksub.c" #include "catsub.c" #include "scopy.c
" #include "trim.c" getnum(&pnum) *num *num + mul*pnum
if(statusEOF) statusERR if(status!OK) break if((*num0)(*numla
stln)) return (statusERR) if(iistart) return (statusEOF) return (statusOK)
#include "s and tabs */ skipbl(lin, i) char lin int *i while((lin*
i' ')(lin*i't')) *i *i + 1 /* ** nextln -- get line after ln */ nextl
n(ln) int ln if(++ln lastln) return 0 return ln /* ** prevln --
get line before ln */ prevln(ln) int ln if(--ln 0) return lastln retur
n ln /* ** join -- put line1 thru line2 together into txt */ join(ln1,
ln2) int ln1, ln2 int i, j j0 while(ln1 ln2) igetind(ln1++)+TE
XT while(txtj++bufi++) if(j MAXLINE) return ERR --j r
eturn OK /* ** doread -- read "file" after "line" */ doread(line, file
) int line char file int fd, stat if((fdfopen(file, "r"))NULL) fput
s("open ", stderr) return ERR curlnline statinput(fd) fclose
(fd) return stat /* ** getlst -- collect line numbers (if any) at lin
i, bump i */ getlst() int num line20 nlines0 while(getone(&num)OK
/* ** edt2.c -- edit part 2 */ /* ** getnum -- convert one term to a lin
e number */ getnum(pnum) int *pnum int stat char *digits digits"0123
456789" statOK if(index(digits, lini) 0) *pnumctoi(lin, &i) --
i /** backup then bump at end **/ else if(liniCURLINE) *pnumcurln e
lse if(liniLASTLINE) *pnumlastln else if((liniSCAN)(liniBACKSCAN)) if(o
ptpat()ERR) statERR else if(liniSCAN) statptscan(FORWARD, p) line1lin
e2 line2num ++nlines if((lini!COMMA)&(lini!SEMICOL)) break i
f(liniSEMICOL) curlnnum ++i if(nlines2) nlines2 if(nlines0) lin
e2curln if(nlines1) line1line2 if(status!ERR) statusOK return status
/* ** getone -- evaluate one line number expression */ getone(num) int *
num int istart, mul, pnum skipbl(lin, &i) istarti if((liniPLUS)(lin
iMINUS)) *numcurln else *num0 if(gnum) else statptscan(BACKWARD, pnum
) else if((liniPLUS)(liniMINUS)) --i else statEOF if(statOK) ++i
return (statusstat) /* ** optpat -- make pattern if specified at lini
*/ optpat() if(liniNULL) i ERR else if(lini+1NULL) i ERR else if(
lini+1lini) ++i else i makpat(lin, i+1, lini, pat) if(pat0NULL) i ERR
if(iERR) pat0NULL return ERR return OK /* ** ptscan
-- scaetnum(num)OK) while(YES) skipbl(lin, &i) if((lini!PLU
S)&(lini!MINUS)) statusEOF break if(liniPLUS
) mul 1 else mul -1 ++i skipbl(lin, &i) pnum1
getnum(&pnum) *num *num + mul*pnum if(statusEOF) statusERR
if(status!OK) break if((*num0)(*numlastln)) return (statusERR)
if(iistart) return (statusEOF) return (statusOK) #include " RAFBGCHD
IEn for next occurrence of pattern */ ptscan(way, num) int way, *num *numc
urln while(YES) if(poll(YES)ESC) return (ERR) if(wayFORWARD) *numn
extln(*num) else *numprevln(*num) if(match(buf+getind(*num)+TEXT, pat)
YES) return OK if(*numcurln) break return ERR /* ** ckglob
-- if global prefix, mark lines to be affected */ ckglob() int gflag, k,
line if((same(lini, GLOBAL)NO)&(same(lini, EXCLUDE)NO)) return (statusEO
/** leaves gotline & gotind below affected area **/ lastlnlastln-(to-from+1)
curlnprevln(from) relink(k1, k2, k1, k2) return (statusOK) /* *
* ckp -- check for "p" after command */ ckp(lin, i, pflag) char lin int i, *pf
lag if(same(lini, PRINT)) *pflagYES ++i else *pflagNO
if(view) *pflagYES if(liniNULL) statusOK else statusERR return status
/* ** move -- move line1 through line2 after line3 */ move(line3) inF)
if(same(lini, GLOBAL)) gflagYES else gflagNO ++i if((optpat()ERR)(d
efalt(1, lastln)ERR)) return (statusERR) ++i lineline1 while(linel
ine2) if(poll(YES)ESC) return (statusERR) kgettxt(line++) if(mat
ch(txt, pat)gflag) bufk+MARKYES else bufk+MARKNO linenextln(line2)
while(line!line1) if(poll(YES)ESC) return (statusERR) kgetind(lin
e) bufk+MARKNO linenextln(line) retut line3 int k0, k1, k
2, k3, k4, k5 if((line10)((line1line3)&(line3line2))) return ERR k1getind(
line1) k2getind(line2) k3getind(nextln(line2)) k0getind(prevln(line1))
/** leaves gotline & gotind below affected area **/ relink(k0, k3, k0, k3)
if(line3line1) curlnline3 line3line3-(line2-line1+1) els
e curlnline3+(line2-line1+1) k5getind(nextln(line3)) k4getind(line3) /*
* leaves gotline & gotind below affected area **/ rrn (statusOK) /* *
* defalt -- set defaulted line numbers */ defalt(def1, def2) int def1, def2
if(nlines0) line1def1 line2def2 if((line1line2)(line10)(li
ne2lastln)) return (statusERR) return (statusOK) /* ** doglob --
do command at lini on all marked lines */ doglob() int count, istart, k,
line statusOK count0 lineline1 istarti while(YES) if(poll(Y
ES)ESC) return (statusERR) kgetind(lineelink(k4, k1, k2, k5) relink(k2,
k5, k4, k1) return OK /* ** getrhs -- get substitution string for "s"
command */ getrhs(lin, i, sub, gflag) char lin, sub int *i, *gflag if(lin
*iNULL) return ERR if(lin*i+1NULL) return ERR *imaksub(lin, *i+1, lin*i, s
ub) if(*iERR) return ERR if(same(lin*i+1, GLOBAL)) *i *i + 1 *
gflagYES else *gflagNO return OK /* ** subst -- substitute "
sub" for occurrences of pattern */ ) if(bufk+MARKYES) bufk+MARKNO
cursavcurlnline iistart if(getlst()OK) if(docmd(Y
ES)OK) count0 else linenextln(line) ++coun
t if((countlastln)(status!OK)) break return status
/* ** append -- append lines after ln */ append(ln, glob) int ln, glob in
t stat if(globYES) return ERR curlnln statNOSTATUS while(statNOSTATU
S) fputc(' ', subst(sub, gflag) char sub int gflag char newMAXLINE
int j, k, lastn, line, n, subbed if(line10) return ERR lineline1 while(
lineline2) if(poll(YES)ESC) return (ERR) j0 subbedNO gettxt
(line) lastn-1 k0 while(YES) if((gflagYES)(subbedNO)) nam
atch(txt, k, pat) else n-1 if((n0)&(lastn!n)) /** replace matc
hed text **/ subbedYES catsub(txt, k, n, sub, new, &j, MAXLINE
) stderr) if(fgets(lin, MAXLINE, stdin)NULL) statEOF else
trim(lin) if((lin0PERIOD)&(lin1NULL)) statOK else if(inject(lin)ER
R) statERR return stat /* ** kill -- delete lines from
through to */ kill(from, to) int from, to int k1, k2 if((from1)&(tolast
ln)) setbuf() updtflagNO return (statusOK) if(from0) re
turn (statusERR) k2getind(nextln(to)) k1getind(prevln(from)) RAFBGCHD
IE lastnn if(txtkNULL) break if((n-1)(nk)) /
** no match or null match **/ addset(txtk, new, &j, MAXLINE) +
+k else kn /** skip matched text **/
if(subbedYES) if(addset(NULL, new, &j, MAXLINE)NO) return ERR
curlnprevln(line) if(inject(new)ERR) curlnline return
ERR kill(curln+1, curln+1) ++line ret
urn OK /* ** enter -- enter a new file */ enter(name) char name in
t err errdoread(0, name) if(view) doprnt(1, 1, NO) curln1 updtflagNO
return err flow handled in docmd() */ curln j - context
return OK if((jto)&(globNO)) prefCLFLAG else pref' ' ge
ttxt(j++) fputc(pref, stdout) fputs(txt, stdout) fputc('n', stdou
t) curlnto return OK /* ** getfn -- get file name from lini */
getfn(lin, i, file, max) char lin, file int i, max int j, k, stat statE
RR if(lini+1BLANK) ji+2 /** get new file name **/ skipbl(lin, &j)
k0 while(filek++linj++) if(--max 1) break if((k 1)&(max 0)) s
tatOK else if((lini+1NULL)&(savfil0!NULL)) scopy(savfil, 0, file,
0) statOK if((statOK)&(savfil0NULL)) scopy(file, 0, savfil,
0) /** save if no old one **/ return stat /* ** dowrit -- write "fro
m" through "to" into file */ dowrit(from, to, file) int from, to char file
char tmpMAXFN, *ptr int fd, line strcpy(tmp, file) if((ptr strchr(t
mp, '.')) 0) ptr tmp + strlen(tmp) strcpy(ptr, ".$$$") rename(file, tmp)
if((fdfopen(file, "w"))NULL) return ERR linefrom while(lineto)
fputs(buf+getind(line++)+TEXT, fd) if(fputc('n', fd)EOF) fput/* *
* etb.c -- replace blanks with tabs and blanks ** ** Copyright 1982 J. E. Hend
rix. All rights reserved. */ #include stdio.h #include "tools.h" #define NO
CCARGC #define MAXLIN1 (MAXLINE+1) main(argc, argv) int argc, *argv char c
, tabsMAXLIN1 int col, newcol auxbuf(stdin, 4096) if(settab(tabs, argc,
argv)ERR) fputs("usage ETB #... +#n", stderr) abort(7) col1
while(YES) poll(YES) newcolcol while((cgetchar())' ') s("w
rite ", stderr) fclose(fd) return ERR if(fclose(f
d)) return ERR unlink(tmp) updtflagNO return OK /* ** doprnt --
print lines from through to */ doprnt(from, to, glob) int from, to, glob
int j, k char pref if(from0) return OK if(same(lini, PRINT)) ++i
if((lini'0')&(lini'9')) if(lini+1NULL) contextlini-'0' else
return ERR else if(lini!NULL) return ERR ++newcol
if(tabpos(newcol, tabs)YES) cout('t', stdout) colnewcol
if(c't') while(tabpos(newcol, tabs)NO) ++newcol
cout('t', stdout) colnewcol continue while(colne
wcol) cout(' ', stdout) ++col if(cEOF) break co
ut(c, stdout) if(c'n') col1 else if(c'b') --col /* ok if it goes neg *
/ else ++col fclose(stdout) #i if((fromto)&(globNO)) jf
rom-context kto+context else jfrom kto if(j 1
) j1 if(k lastln) klastln if(globNO) fputs(CLEAR, stdout) while(j k)
if(poll(YES)) /* underflow handled in docmd() */ curln j -
context return OK if((jto)&(globNO)) prefCLFLAG else p
ref' ' gettxt(j++) fputc(pref, stdout) fputs(txt, stdout) fp
utc('n', stdout) curlnto RAFBGCHDIEnclude "settab.c" #include "tabpos
.c" #include "out.c" if(c't') while(tabpos(newcol, tabs)NO) ++newc
ol cout('t', stdout) colnewcol continue while(
colnewcol) cout(' ', stdout) ++col if(cEOF) break
cout(c, stdout) if(c'n') col1 else if(c'b') --col /* ok if it goes
neg */ else ++col fclose(stdout) #ipat)ERR) error("pattern to
o longn") while(fgets(lin, MAXLIN1, stdin)!NULL) poll(YES) trim(li
n) if(match(lin, pat)) if(argi0) lout(lin, stdout) els
e if(argi1) lout(lin, stdout) fclose(stdout) getpat(arg, pat) ch
ar arg, pat return(makpat(arg, 0, NULL, pat)) #include "pat.c" #incl
ude "error.c" #include "index.c" #include "out.c" #include "trim.c" /* **
fnt.c -- choose FX printer font */ #include stdio.h #include "tools.h" #def
ine NOCCARGC char condensed27, 15, 0, xcondensed 18, 0, double27,
'G', 0, xdouble27, 'H', 0, elite27, 'M', 0, xelite27, 'P', 0, emp
hasized27, 'E', 0, xemphasized27, 'F', 0, enlarged27, 'W', 49, 0, xenl
arged27, 'W', 48, 0, italics27, '4', 0, xitalics27, '5', 0, pica27, '
P', 0, xpica27, 'M', 0, sub /* ** error.c -- display message str and ab
ort */ error(str) char *str fputs(str, stderr) fputc('n', stderr) ab
ort(7) script27, 'S', 49, 0, xsubscript27, 'T', 0, superscript27, 'S
', 48, 0, xsuperscript27, 'T', 0, proportional27, 'p', 49, 0, xproport
ional27, 'p', 48, 0 char str15, *ptr"LST" int i, fd main(argc, argv) int argc
, *argv if(getarg(1, str, 15, argc, argv) ! EOF) ptr str if(*str '-')
fputs("usage FNT device", stderr) abort(7) if((fdfopen(ptr, "
w")) 0) cant(ptr) do fputs(CLEAR, stdout) fputs(" Select Epson
FX Option (RETURN to exit)nn", stdout) fputs("set clear modenn", stdout
) fputs(" 1 2 condensed n", stdout) fputs(" 3 4 dou
ble striken", stdout) fputs(" 5 6 eliten", stdout) fputs(" 7
8 emphasized n", stdout) fputs(" 9 10 enlargedn", stdout)
fputs("11 12 italicsn", stdout) fputs("13 14 pican", stdo
ut) fputs("15 16 subscriptn", stdout) fputs("17 18 su/*
** fnd.c -- find patterns in text file ** ** Copyright 1982 J. E. Hendrix. A
ll rights reserved. */ #include stdio.h #include "tools.h" #define NOCCARGC
#define MAXARG 49 #define MAXLIN1 (MAXLINE+1) char argMAXARG, linMAXLIN1, pat
MAXPAT int err, argi main(argc, argv) int argc, *argv auxbuf(stdin, 4096)
errNO if((getarg(1, arg, MAXARG, argc, argv)EOF)(arg0'-')) error("usa
ge FND patternn") if(arg0NOT) argi1 else argi0 if(getpat(arg+argi, RAFBG
CHDIEperscriptn", stdout) fputs("19 20 proportionaln", stdout)
fputs("nselect... ", stdout) fgets(str, 10, stdin) ptr str while
(*ptr) if(*ptr 'n') *ptrNULL ++ptr if(utoi(str, &i)
) switch(i) case 1 fputs( condensed, fd) break case
2 fputs(xcondensed, fd) break case 3 fputs( double, fd) break
case 4 fputs(xdouble, fd) break case 5 fputs( elite, fd) breakage o
ffset specification */ poval, /* page offset for current page */ tival,
/* temporary indent */ ceval, /* number of lines to center */ ulval,
/* number of lines to underline */ bfval, /* number of lines to boldface *
/ itval, /* number of lines to italicize */ dwval, /* number of lines
to double-wide */ dwact, /* double-wide is active */ bfstrikes, /* numb
er of boldface strikes */ cuact, /* continuous underline active if 0 */
mpcnt, /* lines printed case 6 fputs(xelite, fd) break cas
e 7 fputs( emphasized, fd) break case 8 fputs(xemphasized, fd) break
case 9 fputs( enlarged, fd) break case 10 fputs(xenlarged, fd
) break case 11 fputs( italics, fd) break case 12 fputs(xitali
cs, fd) break case 13 fputs( pica, fd) break case 14 fputs(xpi
ca, fd) break case 15 fputs( subscript, fd) break case 16 fput
s(xs since last .mp page break */ mpval, /* minimum lines required for para
graphs */ sqval, /* squeeze indents */ bline, /* blank line flag */
curpag, /* current page number */ newpag, /* next page number */ lineno
, /* next line to be printed */ plval, /* page length in lines */ m1val
, /* margin before and including header */ m2val, /* margin after header
*/ m3val, /* margin after last text line */ m4val, /* bottom margin in
cluding footer */ bottom, /* lasubscript, fd) break case 17 fputs(
superscript, fd) break case 18 fputs(xsuperscript, fd) break c
ase 19 fputs( proportional, fd) break case 20 fputs(xproportional, fd)
break while (*str) #include "cant.c" eak
case 14 fputs(xpica, fd) break case 15 fputs( subscript, fd) break
case 16 fputs(xst live line on page */ outp, /* last character posi
tion in outbuf */ outw, /* width of text in outbuf */ outwds, /* numbe
r of words in outbuf */ pause, /* pause on page breaks if YES */ ready,
/* prompt "ready printer..." if YES */ show, /* show source file names *
/ begin, /* beginning page to print */ end, /* ending page to print
*/ bcopy, /* beginning copy */ ecopy, /* ending copy */ mrgfd, /*
merge file fd */ sentend, /* YES for plausible end /* ** fmt.c -- text form
atter ** ** Copyrignt 1982 J. E. Hendrix. All rights reserved. */ #includ
e stdio.h #include "tools.h" #define NOCCARGC #define KILL 14 /* control-N *
/ #define INSIZE 396 #define MAXOUT 579 #define COMMAND '.' #define PAGENUM
'#' #define TTLDELIM '/' #define MRGCHAR '' #define SUBCHAR '/' #define SUPC
HAR '' #define BLANK '' #define DEFM1 1 #define DEFM2 2 #define DEFM3 2 #de
fine DEFM4 9 /**** LM is effectively one greater ****/ #define DEFLM 9 #defin
eof sentence */ dir /* direction for spreading blanks */ char
sbpref27,'S',49,1, /* nontty subscript prefix */ sbsuff27,'T', 1,0, /*
nontty subscript suffix */ sppref27,'S',48,1, /* nontty superscript pr
efix */ spsuff27,'T', 1,0, /* nontty superscript suffix */ *ulon
, *uloff, ulpref27,'-',49,1, /* nontty underline prefix */ ulsu
ff27,'-',48,1, /* nontty underline suffix */ *bfon, *bfoff, bfpr
ef DEFRM 73 #define DEFMP 2 #define PAGELEN 66 #define HUGE 32000 #define ND
IM 5 #define NWIDTH 4 int ttymode, /* tty mode if YES */ itsub, /* i
talic subs for underlines */ ulsub, /* underline subs for italics */ pas
s, /* pass counter */ fill, /* fill if YES */ just, /* justify if
YES */ lsval, /* line spacing */ inval, /* indent value */ lmval,
/* left margin value */ rmval, /* right margin value */ pagekill,/* ki
ll page if YES */ pospec, /* p RAFBGCHDIE27,'E',1,0, /* nontty boldface p
refix */ bfsuff27,'F',1,0, /* nontty boldface suffix */ *dson,
*dsoff, dspref27,'G',1,0, /* nontty dbl strike prefix */ dssuf
f27,'H',1,0, /* nontty dbl strike suffix */ *iton, *itoff, itpr
ef27,'4',1,0, /* nontty italics prefix */ itsuff27,'5',1,0, /* nontt
y italics suffix */ *dwon, *dwoff, dwpref27,'W',49,1, /* nontty
dbl wide prefix */ dwsuff27,'W' return if(inbuf0cmd) command(
inbuf) else if(merge()NO) continue text(inbuf)
/* ** include -- process included text (nexting allowed) */ include()
int i, fd char fnameINSIZE i0 while((inbufi!' ')&(inbufi!NULL)) ++
i getwrd(inbuf, &i, fname) if((fdfopen(fname, "r"))NULL) cant(fname) lo
ut(fname, stderr) if(show) brk() put(fname) brk() pro
cess(fd) fclose(fd) ,48,1 /* nontty dbl wide suffix */ char cmd
, /* command character */ mrg, /* merge field delimiter */ bla
nk, /* literal blank character */ *ulskips, /* specific characters to ski
p underlining */ *oheader, /* odd page header */ *eheader, /* even page
header */ *ofooter, /* odd page footer */ *efooter, /* even page footer
*/ *outbuf, /* output buffer */ *ttlbuf, /* buffer for titles */ *m
rgbuf, /* buffer for merged text */ *inbuf, /* inpu /* ** prompt -- pro
mpt operator for input */ prompt() fputs("7enter ", stderr) fputs(inbuf
+3, stderr) fputc('n', stderr) process(stderr) /* ** init -- initi
alize parameters */ init() cmdCOMMAND mrgMRGCHAR blankBLANK sente
ndNO filljustYES lsval1 invaltivalsqval0 lmvalDEFLM rmvalDEFRM
bfvalitvalcevalulvalcuact0 curpag0 newpag1 lineno0 mpvalDEFMP bl
ineNO /** prevents a blank first page **/ t buffer */ *wrdbuf, /* space f
or one word */ *nbrstr /* number string */ main(argc, argv) int argc, *a
rgv oheadermalloc((MAXLINE+1)) eheadermalloc((MAXLINE+1)) ofootermallo
c((MAXLINE+1)) efootermalloc((MAXLINE+1)) mrgbufmalloc((MAXLINE+1)) out
bufmalloc(MAXOUT) ttlbufmalloc(MAXOUT) wrdbufmalloc(MAXOUT) inbufmalloc
(INSIZE) nbrstrmalloc(NDIM) nbrstrNWIDTHNULL doargs(argc, argv) mpcn
t99 pass0 if(mrgfd) while(fgets plvalPAGELEN m1valDEFM1 m2valD
EFM2 m3valDEFM3 m4valDEFM4 bottomplval-m3val-m4val oheader0eheader0N
ULL ofooter0efooter0NULL outp-1 outwoutwds0 dir0 /* ** comma
nd -- process commands */ command(buf) char buf int argtyp, spval, val
if(buf1 cmd) return /* comment */ valgetval(buf, &argtyp) switch((toupp
er(buf1) 8) + toupper(buf2)) default fputs("7note ", stderr)
fputs(buf, std(mrgbuf, (MAXLINE+1), mrgfd) && (pass ecopy)) if(++pas
s bcopy) continue trim(mrgbuf) nextpass() else i
f(ecopy HUGE) nextpass() else for(pass bcopy pass ecopy ++pass) nextpass()
fclose(stdout) /* ** nextpass -- make next pass on stdin text */ n
extpass() char c, str6 init() if(mrgfd ecopy ! HUGE) cseek(stdi
n, 0, 0) left(itod(pass, str, 6)) fputs("copy ", stderr) fputs(st
r, stderr) ferr) fputc('n', stderr) return case
'FI' brk() fillYES break case 'NF' br
k() fillNO break case 'JU' brk() justY
ES break case 'NJ' brk() justNO break
case 'BR' brk() break case 'LS'
setvalue(&lsval, val, argtyp, 1, 1, HUGE) break case 'HE'
puts(" ", stderr) cNULL if(((pass bcopy) (pauseYES)) &&
ready && isatty(stdout)) fputs("ready printer... ", stderr) cfgetc(
stderr) if(c!KILL) process(stdin) if((lineno 0)(outp -1))
space(HUGE) else fputc('n', stderr) /* ** process -- process te
xt from fd */ process(fd) int fd while(fgets(inbuf, INSIZE, fd)!NULL)
poll(YES) trim(inbuf) if((fdstderr)&(inbuf0cmd)&(inbuf1NULL)) RAFB
GCHDIE gettl(buf, oheader) gettl(buf, eheader) break
case 'OH' gettl(buf, oheader) break case 'EH'
gettl(buf, eheader) break case 'FO' gettl(buf, of
ooter) gettl(buf, efooter) break case 'OF' ge
ttl(buf, ofooter) break case 'EF' gettl(buf, efooter
) break case 'SP' setvalue(&spval, val, argtyp, 1, 0
, HUGE case 'NE' if(((bottom-lineno) val) & (lineno 0))
space(HUGE) break case 'RS' if(((bottom-lineno) va
l) & (lineno 0)) space(HUGE) space(val) break
case 'SO' include() break case 'PR' promp
t() break case 'CC' val0 getwrd(buf, &val, wr
dbuf) if(getwrd(buf, &val, wrdbuf)1) cmdwrdbuf0 break )
space(spval) blineYES break case 'BP'
if((lineno 0)(outp -1)) space(HUGE) setvalue(&curpag, val, argtyp, new
pag, -HUGE, HUGE) newpagcurpag break case 'PL'
if(val0) lineno1 plval0 else set
value(&plval, val, argtyp, PAGELEN, m1val+m2val+m3val+m4val+1, HUGE
) bottomplval-m3val-m4val break case ' c
ase 'MC' val0 getwrd(buf, &val, wrdbuf) if(getwrd(buf, &va
l, wrdbuf)1) mrgwrdbuf0 break case 'BC' val0
getwrd(buf, &val, wrdbuf) if(getwrd(buf, &val, wrdbuf)1) blankwrdbuf0
break case 'M1' setvalue(&m1val, val, argtyp, DEFM1, 0,
HUGE) break case 'M2' setvalue(&m2val, val, argtyp,
DEFM2, 0, HUGE) break case 'M3' setvalue(&IN'
brk() setvalue(&inval, val, argtyp, 0, -lmval, rmval-lmval-1) b
reak case 'LM' brk() setvalue(&lmval, val-1, argtyp,
DEFLM, 0, rmval-1) break case 'RM' setvalue(&rmval,
val, argtyp, DEFRM, lmval+1, HUGE) break case 'TI'
brk() setvalue(&tival, val, argtyp, 0, -(lmval+inval), rmval-(
lmval+inval)-1) break case 'SQ' brk() setvm3v
al, val, argtyp, DEFM3, 0, HUGE) bottomplval-m3val-m4val break
case 'M4' setvalue(&m4val, val, argtyp, DEFM4, 0, HUGE)
bottomplval-m3val-m4val break case 'PO' setvalue(&p
ospec, val, argtyp, 0, 0, HUGE) break #include "fmt2
.c" #include "fmt3.c" #include "scopy.c" #include "getwrd.c" #include "cant.
c" #include "page.c" #include "index.c" #include "same.c" #include "trim.c"
#include alue(&sqval, val, argtyp, 0, 0, HUGE) break case '
CE' brk() setvalue(&ceval, val, argtyp, 1, 0, HUGE) break
case 'BF' setvalue(&bfval, val, argtyp, 1, 0, HUGE)
ulval0 break case 'IT' setvalue(&itval, val, argtyp,
1, 0, HUGE) break case 'DW' setvalue(&dwval, val, a
rgtyp, 1, 0, HUGE) break case 'UL' setvalue(&ulval,
val, argtyp, 1"out.c" m4val, val, argtyp, DEFM4, 0, HUGE) bottomplval-
m3val-m4val break case 'PO' setvalue(&pospec, val, a
rgtyp, 0, 0, HUGE) break #include "fmt2.c" #include
"fmt3.c" #include "scopy.c" #include "getwrd.c" #include "cant.c" #include
"page.c" #include "index.c" #include "same.c" #include "trim.c" #include , 0
, HUGE) cuact0 ulskips" ()tb,.!'"" bfval0 break
case 'CU' setvalue(&ulval, val, argtyp, 1, 0, HUGE) if(u
lval0) cuact0 else cuact1 /* becomes 2 after next putwrd */ if(
ttymode) ulskips" tb" else ulskips "tb" break
case 'NU' ulvalcuact0 break case 'MP' setval
ue(&mpval, val, argtyp, DEFMP, 0, HUGE) break RAFBGCHDIE/* ** fm
t2.c -- text formatter part 2 */ /* ** getval -- evaluate optional numeric
argument */ getval(buf, argtyp) char buf int *argtyp int i i0 while(
(bufi!' ')&(bufi!'t')&(bufi!NULL)) ++i skipbl(buf, &i) *argtypbufi if((
*argtyp'+')(*argtyp'-')) ++i if(utoi(buf+i, &i) 0) fputs("7error ", st
derr) fputs(inbuf, stderr) fputc('n', stderr) return 0 r
eturn i /* ** skipbl -- skip blanks and tabs */ skipbl(lin, i) char li
n int *i while((lin*i' ')(lin*i't')) *i *i + 1 /* ** setvalue -- se
t parameter and check range */ setvalue(param, val, argtyp, defval, minval, ma
xval) int *param, val, argtyp, defval, minval, maxval if(argtypNULL) *par
amdefval else if(argtyp'+') *param*param+val else if(argtyp'-') *param*par
am-val else *paramval if(*param maxval) *parammaxval if(*param minval
) *paramminval /* ** text -- process text li/* ** fmt3.c -- text format
ter part 3 */ /* ** put -- put out line with proper spacing and indenting
*/ put(buf) char buf int i if((buf0NULL)(buf0' ')) blineYES else
if(((bottom-lineno+1) (mpval*lsval)) && (blineYES) && (mpcnt
mpval)) mpcnt0 skip(bottom-lineno+1) linenobottom+1 /*
force footing */ blineNO ++mpcnt if(linenobottom) pfoot
() if(lineno0) phead() ipoval /** minnes */ text(inbuf) char inbuf
int i char c1, c2 if((inbuf0' ')(inbuf0NULL)) leadbl(inbuf) if(bfval 0
) bold(inbuf, wrdbuf, INSIZE) --bfval dwact NO if(dwval
0) if(!ttymode) dwact YES double(inbuf, wrdbuf, INSIZE)
--dwval if(ulval 0) if(itsub) italic(inbuf, wrdbuf,
INSIZE) else underl(inbuf, wrdbuf, INSIZE) --ulval if(it
val 0) if(ulsub) underl(inbufus on odd pages **/ while(++i (lmval+tiv
al+inval+sqval)) print(" ", NO) tival0 print(buf, NO) if((lsval-1)
(bottom-lineno)) skip(lsval) else skip(bottom-lineno+1) if(plval 0) lin
enolineno+lsval if(lineno bottom) pfoot() /* ** print -- print outpu
t to stdout if not skipping pages */ print(str, title) char *str int title
while(*str) if(*str 1) if(!title) onoff(*(str-1)) e
lse /* skip output of control seque, wrdbuf, INSIZE) else ital
ic(inbuf, wrdbuf, INSIZE) --itval supersub(inbuf, wrdbuf, INSIZE)
if(ceval 0) center(inbuf) put(inbuf) --ceval else i
f(inbuf0NULL) put(inbuf) else if(fillNO) put(inbuf) else i0 wrd
buf0' ' while(getwrd(inbuf, &i, wrdbuf+1) 0) if((sentendYES)&(isup
per(wrdbuf1)YES)&(wrdbuf2!'.')) putwrd(wrdbuf) /** leading space **/
else putwrd(wrdbuf+1) ince terminator */ if((plval0)((curpag
begin)&(pagekillNO))) begin1 /** future copies begin on page 1 **/
if(*str ! blank) cout(*str, stdout) else cout(' ', stdout)
else if(*str 27) while(*str ! 1) cout(*str++, stdout)
continue ++str /* ** onoff -- set a
nd clear xxon and xxoff pointers */ onoff(ch) int ch if(ch ulpref2)
ulonulpref uloffulsuff else f(inbufi-1'"') c1inbufi-3 c2in
bufi-2 else c1inbufi-2 c2inbufi-1
if((inbufi!'t')&(isupper(c1)NO)& ((c2'.')(c2'')(c2'!'))) senten
dYES else sentendNO if(ulval0) cuact0 supper(wr
dbuf1)YES)&(wrdbuf2!'.')) putwrd(wrdbuf) /** leading space **/
else putwrd(wrdbuf+1) i RAFBGCHDIEif(ch ulsuff2) ulonuloff0 else if(
ch bfpref1) bfonbfpref bfoffbfsuff else if(ch bfsuff1) bfonbfoff0 else i
f(ch dspref1) dsondspref dsoffdssuff else if(ch dssuff1) dsondsoff0 else
if(ch itpref1) itonitpref itoffitsuff else if(ch itsuff1) itonitoff0 el
se if(ch dwpref1) dwondwpref dwoffdwsuff else if(ch dwsuff1) dwondwoff0
/* ** skip -- output n blank lines */ skip(n) int n while((n--) i
0 while((bufi!' ')&(bufi!'t')&(bufi!NULL)) ++i skipbl(buf, &i) if((bufi
''')(bufi'"')) ++i /** strip leading quote **/ bufbuf+i while(*ttl++ *buf
++) /* ** space -- space n lines or to bottom */ space(n) int n br
k() if(lineno bottom) return if(lineno0) phead() if(nHUGE) ret
urn if(n (bottom+1-lineno)) skip(n) else skip(bottom+1-lineno) i
f(plval 0) linenolineno+n if(lineno bottom) pfoot() 0) print("n", NO)
/* ** phead -- put out header */ phead() pagekillNO if((curpagnewpag
++) begin) if(page(curpag, pause, stdout)KILL) pagekillYES
fputc('n', stderr) if(curpag%2) poval -pospec else poval
pospec if(m1val 0) skip(m1val-1) if(curpag%2) puttl(oheader, curp
ag) else puttl(eheader, curpag) skip(m2val) linenom1val+m2val+1
/* ** pfoot -- put out footer */ pfoot() /* ** leadbl -- d
elete leading blanks, set tival */ leadbl(buf) char buf int i, j brk()
i0 while(bufi' ') ++i if(bufi!NULL) tival tival + i j0 while(buf
j++bufi++) /* ** width -- compute width of character string */ width(b
uf) char *buf int wide wide0 while(*buf) if(*buf27) whil
e(*buf++ ! 1) continue if(*buf 'b') --wide else if(*b
uf ! 'n') ++wide if(d skip(m3val) if(m4val 0) if(curpa
g%2) puttl(ofooter, curpag) else puttl(efooter, curpag) if((curpag
end)&((ecopyHUGE)(ecopypass))) fclose(stdout) exit(0) if(p
auseNO) skip(m4val-1) lineno0 /* ** puttl -- put out title line with
optional page number */ puttl(buf, pageno) char buf int pageno char str2
int i, j, k ,parts str1NULL ipoval /** minus on odd pages **/ while(
++i lmval) print(" ", YES)wact && !isspace(*buf)) ++wide ++buf
return (wide) /* ** brk -- end current filled line */ brk()
if(outp -1) outbufoutpNULL outp-1 put(outbuf) outwoutw
ds0 /* ** putwrd -- put a word in outbuf (does margin justification) */
putwrd(wrdbuf) char wrdbuf int last, llval, nextra, w, i wwidth(wrdbuf)
laststrlen(wrdbuf)+outp+1 llvalrmval-lmval-tival-inval-(sqval1) if((ou
tp -1)&((outw+w llval parts1 ik0 while(bufi!NULL) if(bufiPAGENU
M) itod(pageno, nbrstr, - NWIDTH) j0 while(nbrstrj' ') ++j
while(j NWIDTH) if(k (MAXOUT-1)) ttlbufk++nbrstrj +
+j else if(bufiTTLDELIM) ++parts if(k (MA
XOUT-1)) ttlbufk++bufi ++i ttlbufkNULL spread(ttlbuf, k
+1, MAXOUT, rmval-lmval-k, parts, TTLDELIM) /* disable running ul, it, dw, ds
)(last MAXOUT))) lastlast-outp-1 if(just!YES) nextra0 else next
rallval-outw+1 spread(outbuf, outp, MAXOUT, nextra, outwds, ' ') if((n
extra 0)&(outwds 1)) outpoutp+nextra brk() if(outp 0 && cuact
1 && !itsub && ttymode) outbufoutp'' else ++outwds if(cuact1)
cuact2 if((outp 0)&(wrdbuf0' ')) i1 else i0 scopy(wrdbuf+i, 0, out
buf, outp+1) outplast-i outbufoutp' ' outwoutw+w+1-i , or bf */ if(u
loff) print(uloff, YES) if(itoff) print(itoff, YES) if(dsoff) print(dsoff,
YES) if(bfoff) print(bfoff, YES) if(dwoff) print(dwoff, YES) print(ttl
buf, YES) /* reenable running ul, it, dw, ds, or bf */ if(ulon) print(ulon
, YES) if(iton) print(iton, YES) if(dson) print(dson, YES) if(bfon) pri
nt(bfon, YES) if(dwon) print(dwon, YES) print("n", YES) /* ** gett
l -- copy title from buf to ttl */ gettl(buf, ttl) char *buf, *ttl int i
RAFBGCHDIE /* ** spread -- spread words to justify right margin */ spre
ad(buf, outp, max, nextra, outwds, gapid) char buf, gapid int outp, max, next
ra, outwds int i, j, nb, ne, nholes if((nextra 0)(outwds 1)) return
dir1-dir /* reverse prev direction */ nenextra nholesoutwds-1 ioutp-1
if((max-2) (i+ne)) jmax-2 else ji+ne while(i j) if(bufigapid)
bufj' ' if(dir0) nb(ne-1)/nholes + 1 else nbne/nholes
line */ italic(buf, tbuf, size) char buf, tbuf int size char *ptr int i
, j if(*buf 0) return if(ttymode) return ij0 ptritpref while((tb
ufj++*ptr++) ! 1) ptrbfpref while((tbufj++*ptr++) ! 1) while((bufi!NU
LL)&(j(size-2))) tbufj++bufi++ ptritsuff while((tbufj++*ptr++) ! 1) p
trbfsuff while((tbufj++*ptr++) ! 1) tbufjNULL scopy(tbuf, 0, buf, 0)
/* ** double -- double-wide a line (nontty m nene-nb nholesnholes
-1 while((nb--) 0) buf--j' ' else bufjbufi --
i --j /* ** center -- center a line by setting tival */ cen
ter(buf) char buf int i, j j -lmval - inval - sqval if((i((rmval-lmva
l-width(buf))/2)-inval-sqval) j) tival j else tival i /* *
* underl -- underline a line */ underl(buf, tbuf, size) char buf, tbuf int siz
e char c, *ptr int prefixed, i, jode only) */ double(buf, tbuf, size) c
har buf, tbuf int size char *ptr int space, i, j if(!*buf ttymode) re
turn space YES i j 0 while(bufi && j (size-3)) if(isspace(buf
i)) if(!space) ptrdwsuff while((tbufj++*ptr++) ! 1)
space YES else if(space) ptrdwp
ref while((tbufj++*ptr++) ! 1) space NO
tbufj++bufi++ if(*buf 0) return if(!ttymode) prefixedNO else prefi
xed9 /* neither YES nor NO */ ij0 while((bufi!NULL)&(j(size-2))) cb
ufi++ if(index(ulskips, c) 0) if(prefixedNO) prefixedYES
ptrulpref while((tbufj++*ptr++) ! 1) else i
f(ttymode) tbufj++'' tbufj++'b' else
if(prefixedYES) prefixedNO ptrulsuff wh
if(!space) ptrdwsuff while((tbufj++*ptr++) ! 1) tbufjNULL
scopy(tbuf, 0, buf, 0) /* ** supersub -- process super- & sub-scripts
*/ supersub(buf, tbuf, size) char buf, tbuf int size char *pref, *suff, *
ptr int i, j if(!*buf) return i j suff 0 while(bufi && j (size-3
)) if(isspace(bufi) && suff) while((tbufj++ *suff++) ! 1)
suff 0 if(bufi SUBCHAR && bufi+1 SUBile((tbufj++*ptr++) ! 1)
if(cuact0 && fillNO && c' ' && ttymode) c'' tbufj++
c if(prefixedYES) ptrulsuff while((tbufj++*ptr++) ! 1)
tbufjNULL scopy(tbuf, 0, buf, 0) /* ** bold -- boldface a line
*/ bold(buf, tbuf, size) char buf, tbuf int size char *ptr int c, i, j
if(*buf 0) return ij0 if(!ttymode) ptrbfpref while((tbufj++*
ptr++) ! 1) ptrdspCHAR) if(!ttymode) if(suff) ptr suff
suff 0 else ptr sbpref suff sbsuff while((tbufj++ *p
tr++) ! 1) i + 2 else if(bufi SUPCHAR && bufi+1
SUPCHAR) if(!ttymode) if(suff) ptr suff suff 0 e
lse ptr sppref suff spsuff while((tbufj++ *ptr++) ! 1)
i + 2 else tbufj++ bufi++ if(suff) while((tref
while((tbufj++*ptr++) ! 1) while((bufi!NULL)&(j(size-2))) ct
bufj++bufi++&255 if(ttymode && (c ' ') && (c 127)) int i i
bfstrikes while (--i) tbufj++'b' tbufj++c
if(!ttymode) ptrbfsuff while((tbufj++*ptr++) ! 1)
ptrdssuff while((tbufj++*ptr++) ! 1) tbufjNULL scopy(tbuf,
0, buf, 0) /* ** italic -- italicize a RAFBGCHDIEbufj++ *suff++) ! 1)
tbufj NULL scopy(tbuf, 0, buf, 0) /* ** doargs -- process comma
nd line arguments */ doargs(argc, argv) int argc, *argv char argMAXFN i
nt i, err showerrttymodeitsubulsubNO pausereadyYES bfstrikes3 pospec
mrgfd0 mrgbuf0NULL beginbcopy1 endecopyHUGE i0 while(getarg(++i,
arg, MAXFN, argc, argv)!EOF) if(arg0'-') if(same(arg1, 'n') & same
(arg2, 'p')) pauseNO if((lutoi(ttlbuf+j, &k)) 1) continue
if(ttlbufj+l!mrg) continue --i jj+l+1 m0 while
(--k) while(mrgbufm) if(mrgbufm++mrg) break
while((mrgbufm!NULL)&(mrgbufm!mrg)) inbufi++mrgbufm++
if(i (INSIZE-1)) break mergedYES if(m
ergedNO) return YES i -1 while(inbuf++i) if((inbufi!' ')&(inbufi!'t
')) ret continue if(same(arg1, 'n') & same(arg2, 'r'))
readyNO continue if(same(arg1, 's') & arg2 NUL
L) show YES continue if(same(arg1, 't') & a
rg2NULL) /** tty mode **/ ttymodeYES continue
if(same(arg1, 'i') & arg2 NULL) /* italics replace underlines */
itsubYES continue if(same(arg1, 'u') & aurn YES
return NO while(--k) while(mrgbufm)
if(mrgbufm++mrg) break while((mrgbufm!NULL)&(mrgbuf
m!mrg)) inbufi++mrgbufm++ if(i (INSIZE-1)) break
mergedYES if(mergedNO) return YES i -1 while(inbuf
++i) if((inbufi!' ')&(inbufi!'t')) retrg2 NULL) /* underlines r
eplace italics */ ulsubYES continue if(same(a
rg1, 'b')) if(same(arg2, 'p')) /** begin page # **/ if(ut
oi(arg+3, &begin) 0) continue else if(same(arg2, 'c')) /
** copy # **/ if(utoi(arg+3, &bcopy) 0) continue
else if(same(arg2, 's')) /** boldface strikes **/ if(utoi(arg+3,
&bfstrikes) 0) continue /* ** getwrd.c -- get non-blank
word from ini into out, incr i */ getwrd(in, i, out) char in, out int *i
char c int j while(isspace(in*i)) ++*i j0 while(cin*i) if(isspac
e(c)) break outj++c ++*i outjNULL return j if
(same(arg1, 'e')) /** end **/ if(same(arg2, 'p')) /** page # **/
if(utoi(arg+3, &end) 0) continue else if(same(a
rg2, 'c')) /** copy # **/ if(utoi(arg+3, &ecopy) 0) continue
if(same(arg1, 'p') & same(arg2, 'o')) /** page offset
**/ if(utoi(arg+3, &pospec) 0) continue errYES
else if((mrgfdfopen(arg, "r"))NULL) cant(arg) continue
errYES if(errYES) fputs("usage FMT mergefile -BC# -EC#
n",stderr) fputs(" -BP# -EP# -PO# -NP -NRn",stderr) fputs(" -T -
I -U -S -BS#n",stderr) abort(7) /* ** merge -- merge fields f
rom mrgbuf into inbuf */ merge() int i, j, k, l, m, merged if(mrgbuf0NU
LL) return YES scopy(inbuf, 0, ttlbuf, 0) mergedNO ij0 while(inbufit
tlbufj++) if(inbufi++mrg) RAFBGCHDIE /* ** index.c -- find character
c in string str */ index(str, c) char str, c int i i-1 while(str++i!
NULL) if(stric) return i return -1 09!9!0/9!9!7/!9/!9/+/!9/!//! 9/
!/!$g9!9/R!9/!9/+/! /$!9!9!!/!9! 9!!$9/o0/!9! 9/!//!9//!/!9!/!9/#/!9!/!9!9/#tinu
e if(same(arg1, 'n')) if(arg3 ' ') if(same(arg2,
'b')) blanksNO continue if(same(arg
2, 'p')) pauseNO continue if(same(ar
g2, 'n')) numbers0 continue errYES
if(same(arg1, 'p')) if((jutoi(arg+3, &k)) 0)
if((k 0)&(argj+3 ' ')) if(same(arg2, 'l')) ple
ngthk continue if(same(arg2, 'w'))
pwidthk continue
errYES if(err) fputs("usage LST file -C# -PW# -PL# -NB -NN
-NPn", stderr) abort(7) column(in, out, cwidth, cols,
plength, number) int in, out, cwidth, cols, plength, *number int eof,
lines, colcnt, lwidth, i, bufsz, linecnt char /* ** lst.c -- list text in co
lumns on pages ** ** Copyright 1982 J. E. Hendrix. All rights reserved. */
#include stdio.h #include "tools.h" #define NOCCARGC int fd, /* file d
escriptor for input */ eof, /* end of file if YES */ cols, /* number
of cols */ cwidth, /* col width */ pwidth, /* page width */ plength,/*
page length */ blanks, /* blank lines processed if YES */ numbers,/* numbe
r lines if 0 */ pause /* pause before each page if YES */ main(argc, ar*pt
r, *stop, *eptr, *nexteptr, *buf, *bend bufszcols*(cwidth+1)*plength ptrbu
fmalloc(bufsz) bendbuf+bufsz eofNO while(ptr bend) poll(YES)
if(*number) i4 itou(*number, ptr, -i) ptri++' '
else i0 if(fgets(ptr+i, cwidth+1-i, in)NULL) eofYES bre
ak trim(ptr+i) if((blanksNO) && (ptriNULL)) continue if(*
number) ++(*number) ptrptr+cwidth+1 stopptr ptrgv) int argc, *a
rgv if(!isatty(stdout)) /* set default dimensions */ pauseNO
pwidthPTRWIDE-1 plengthPTRHIGH-PTRSKIP-PTRHDR /* page body height */
else pauseYES pwidthCRTWIDE-1 plengthCRTHIGH-1
/* allow for prompts */ blanksYES eofNO cols1 numbers1
fdstdin doargs(argc, argv) cwidthpwidth/cols while(eofNO) if(paus
e) fputs("waiting... ", stderr) fgetc(stderr)buf lwidthcols*(c
width+1) lines(stop-buf)/lwidth if((stop-buf)%lwidth) ++lines if(lines0
) return eof linecntlines while(linecnt--) poll(YES) eptrptr
colcntcols while(colcnt--) sout(eptr, out) if((nexteptrep
tr+(lines*(cwidth+1))) stop) break if(colcnt 0) if((istrlen(e
ptr)) cwidth) icwidth-i while(i--) cout(' ', out)
eptrnexteptr cout(' eofcolumn(f
d, stdout, cwidth, cols, plength, &numbers) fclose(stdout) doargs(
argc, argv) int argc, *argv int i, j, k, err char argMAXFN errNO i0
while(getarg(++i, arg, MAXFN, argc, argv) ! EOF) if(arg0 ! '-')
if(!(fdfopen(arg, "r"))) errYES break continue if(same(arg
1, 'c')) if((jutoi(arg+2, &cols)) 1) errYES break if((cols 1)(a
rgj+2 ' ')) errYES break con RAFBGCHDIEn', out) ptrptr+cwidth+1
free(buf) return eof #include "out.c" #include "same.c" #includ
e "trim.c" ) if((nexteptreptr+(lines*(cwidth+1))) stop) break
if(colcnt 0) if((istrlen(eptr)) cwidth) icwidth-i
while(i--) cout(' ', out) eptrnexteptr
cout('/* ** mrg.c -- compares two sorted text files ** ** Copyright 198
2 J. E. Hednrix. All rights reserved. ** ** switch 1 lines in first file onl
y ** switch 2 lines in second file only ** switch 3 lines in both files **
switch f lines in both files formatted ** ** stdin defaults for seco
nd file */ #include stdio.h #include "tools.h" #define NOCCARGC int cmpr, f
d1, fd2, i char *line1, *line2, column, argMAXFN main(argc, argv) int argc, *a
rgv int error column'0' /* ** makset.c -- make array into a set */ ma
kset(array, k, set, size) char array, set int k, size int i, j ik j0
filset(NULL, array, &i, set, &j, size) return addset(NULL, set, &j, size)
return addset(NULL, set, &j, size) ET, toDIMSET int allbut, collap,
i, lastto if(getarg(1, arg, MAXARR, argc, argv)EOF) getarg(0, arg, MAX
ARR, argc, argv) printf("Usage %s patternfrom patternton", arg, 1) abo
rt(0) else if(arg fd1fd2stdin line1malloc(MAXLINE+1) line2mall
oc(MAXLINE+1) errorNO i0 while(getarg(++i, arg, MAXFN, argc, argv)!EOF)
if(arg0!'-') if(fd1stdin) if((fd1fopen(arg, "r"))NULL)
cant(arg) else if(fd2stdin) if((fd2fopen(arg, "r"))NU
LL) cant(arg) else errorYES else if(((arg1 '0')&(
arg1 '4')) (same(arg1, 'f'))) columnarg1 else errorYES
if((error)(fd1stdin)) fputs("usage MRG file file -1-2-3-Fn", std
err) abort(7) auxbuf(fd1, 4096) auxbuf(fd2, 4096) getline(li
ne1, fd1) getline(line2, fd2) while(YES) poll(YES) cmprlexcmp(l
ine1, line2) if(cmpr 0) if(same(column, 'f')) fout("1) ", line1)
else if((column'0')(column'1')) sout(line1, stdout) getline(line1,
fd1) continue else if(cmpr 0) if(same(column, 'f')
/* ** maksub.c -- make substitution string in sub */ maksub(arg, from, delim
, sub) char arg, sub, delim int from int i, j j0 ifrom while((argi!
delim)&(argi!NULL)) if(argiDITTO) addset(DITCODE, sub, &j, MAXPAT) el
se addset(esc(arg, &i), sub, &j, MAXPAT) ++i if(argi!delim) return
ERR /**** missing delimiter ****/ if(addset(NULL, sub, &j, MAXPAT)NO) return
ERR /** no room **/ return i T, subMAXPAT char argMAXARG ) fout(" 2)
", line2) else if((column'0')(column'2')) sout(line2, stdout) getl
ine(line2, fd2) continue if(line10 127) break if(same(
column, 'f')) fout(" 3) ", line1) else if((column'0')(column'3')) sout
(line1, stdout) getline(line1, fd1) getline(line2, fd2) fclos
e(stdout) getline(line, fd) char *line int fd if(fgets(line, MAXLINE+
1, fd)NULL) line0 127 line1 NULL RAFBGCHDIE /* ** fo
ut -- formatted output of a line */ fout(header, data) char *header, *data
sout(header, stdout) sout(data, stdout) #include "out.c" #include "c
ant.c" #include "same.c" column'3')) sout(line1, stdout) getline(line1,
fd1) getline(line2, fd2) fclose(stdout) getline(line, fd)
char *line int fd if(fgets(line, MAXLINE+1, fd)NULL) line0 127 l
ine1 NULL /* ** pat.c -- pattern making and matching functions */
/* ** addset -- put c in set & increment j */ addset(c, set, j, maxsiz) c
har c, set int *j, maxsiz if(*j maxsiz) return NO set*jc *j *j + 1
return YES /* ** amatch -- look for match starting at linfrom */ ama
tch(lin, from, pat) char lin, pat int from int i, j, offset, stack stack
-1 offsetfrom j0 while(patj!NULL) if(patjCLOSURE) stackj
j /* ** out.c -- output to fd checking for errors */ cout(c, fd) cha
r c int fd if(fputc(c, fd)EOF) xout() sout(string, fd) char *string i
nt fd if(fputs(string, fd)EOF) xout() lout(line, fd) char *line int f
d sout(line, fd) cout('n', fd) xout() fputs("output errorn", s
tderr) abort(7) j+CLOSIZE ioffset while(lini!NULL)
if(omatch(lin, &i, pat, j)NO) break patstack+COUNTi-offset
patstack+STARToffset offseti else if(omatch(lin, &offs
et, pat, j)NO) while(stack 0) if(patstack+COUNT 0) break
stackpatstack+PREVCL if(stack 0) return -1 patsta
ck+COUNTpatstack+COUNT-1 jstack+CLOSIZE offsetpatstack+START+patst
ack+COUNT jj+patsiz(pat, j) return offset /* ** do
dash -- expand arrayi-1 - arrayi+1 into setj... */ dodash(valid, array, i, set
, j, maxset) char valid, set, array int *i, *j, maxset int k, limit *i
1 + *i *j -1 + *j limitindex(valid, esc(array, i)) kindex(valid, set
*j) while(k limit) addset(validk++, set, j, maxset) /* ** esc -
- map arrayi into escaped char if appropriate */ esc(array, i) char array /*
** page.c -- tell stderr of new page and possibly pause */ page(pageno, pause
, fd) int pageno, pause, fd int i char str6 str5NULL itod(pageno, s
tr, 5) i0 while(stri' ') ++i if((pauseYES)&&(pageno1)&&isatty(fd))
fputs("7set page ", stderr) fputs(str+i, stderr) fputs("... ", stder
r) return fgetc(stderr) else fputs("page ", stderr) fpu
ts(str+i, stderr) fputc('n', stderr) return NULL RAFBGCHD
IE int *i if(array*i!ESCAPE) return array*i else if(array *i + 1NULL)
/* esc not special at end */ return ESCAPE else *i *i + 1 if(
array*i'n') return 'n' else if(array*i't') return 't' else if(array*i'
b') return 'b' else if(array*i's') return ' ' else return array*i
/* ** filset -- expand set in array into set stopping at delim */ fi
lset(delim, array, i, set, j, maxset) char delim, array, set addset(EOL, pat,
&j, MAXPAT) else if(argiCCL) if(getccl(arg, &i, pat, &j)ERR) break
else if((argiCLOSURE)&(ifrom)) ljlastj if((patljBOL
)(patljEOL)(patljCLOSURE)) break lastclstclos(pat, &j, &lastj, lastcl)
else addset(CHAR, pat, &j, MAXPAT) addset(esc(arg, &i)
, pat, &j, MAXPAT) lastjlj ++i if((argi!delim)(addset
(NULL, pat, &j, MAXPAT)NO)) return ERR re int *i, *j, maxset char *digits
, *lowalf, *upalf digits"0123456789" lowalf"abcdefghijklmnopqrstuvwxyz"
upalf"ABCDEFGHIJKLMNOPQRSTUVWXYZ" while((array*i!delim)&(array*i!NULL))
if(array*iESCAPE) addset(esc(array, i), set, j, maxset) else if(ar
ray*i!'-') addset(array*i, set, j, maxset) else if((j 0)(array*i+1N
ULL)) /* literal - */ addset('-', set, j, maxset) else if(index(d
igits, set*j -1) -1) dodash(dturn i /* ** match -- find match an
ywhere in line */ match(line, pattern) char line, pattern int i i0 w
hile(YES) if(amatch(line, i, pattern) 0) return YES if(linei++NULL)
return NO /* ** omatch -- try to match a single pattern at patj *
/ omatch(lin, i, pat, j) char lin, pat int *i, j int bump bump -1 if
(patjBOL) if(*i0) bump0 else if(patjEOL) if(lin*iNULL) bump
0 eligits, array, i, set, j, maxset) else if(index(lowalf, set*j -
1) -1) dodash(lowalf, array, i, set, j, maxset) else if(index(upalf
, set*j -1) -1) dodash(upalf, array, i, set, j, maxset) else addset
('-', set, j, maxset) *i *i + 1 /* ** getccl -- expand char
class at argi into patj */ getccl(arg, i, pat, j) char arg, pat int *i, *j
int jstart *i *i + 1 /**** skip over '' in arg ****/ if(arg*iNOT)
addset(NCCse if(lin*iNULL) return NO else if(patjCHAR) if(lin*ipatj+1)
bump1 else if(patjANY) bump1 else if(patjCCL) if(locate(lin*i
, pat, j+1)YES) bump1 else if(patjNCCL) if(locate(lin*i, pat, j+1
)NO) bump1 else error("in omatch can't happenn") if(bump 0) *
i *i + bump return YES return NO /* ** patsiz -- returns
size of entry at patn */ patsiz(pat, n) char *pat int n L, pat, j, MAXPAT)
*i *i + 1 else addset(CCL, pat, j, MAXPAT) jstart *j addset(0
, pat, j, MAXPAT) /**** leave room for count ****/ filset(CCLEND, arg, i, pa
t, j, MAXPAT) patjstart *j - jstart - 1 if(arg*iCCLEND) return YES ret
urn ERR /* ** locate -- look for c in char class at patoffset */ locat
e(c, pat, offset) char c, pat int offset int i /* ** size of class is
at patoffset, characters follow */ ioffset+patoffset patpat+n if(*pa
tCHAR) return 2 else if((*patBOL)(*patEOL)(*patANY)) return 1 else if((*pa
tCCL)(*patNCCL)) return (*(++pat)+2) else if(*patCLOSURE) return CLOSIZE e
lse error("in patsiz can't happenn") /* ** stclos -- insert closure entr
y at patj */ stclos(pat, j, lastj, lastcl) char pat int *j, *lastj, lastcl
int jp, jt jp *j - 1 while(jp *lastj) /**** make hole for closure **
**/ jt jp + CLOSIZE addset(patjp-- while( i offset) if(cpat
i--) return YES return NO /* ** makpat -- make pattern from arg
from, end at delim */ makpat(arg, from, delim, pat) char arg, delim, pat int f
rom int i, j, lastcl, lastj, lj jlastj0 lastcl -1 ifrom while((
argi!delim)&(argi!NULL)) ljj if(argiANY) addset(ANY, pat, &j, MAXPAT)
else if((argiBOL)&(ifrom)) addset(BOL, pat, &j, MAXPAT) else if((argi
EOL)&(argi+1delim)) R A F B G C H D I E, pat, &jt, MAXPAT) *j *j + C
LOSIZE jp *lastj addset(CLOSURE, pat, lastj, MAXPAT) /** CLOSURE **/
addset(0, pat, lastj, MAXPAT) /** COUNT **/ addset(lastcl, pat, lastj,
MAXPAT) /** PREVCL **/ addset(0, pat, lastj, MAXPAT) /** START **/
return jp utoi(name+3, &begin) continue if((sam
e(name1, 'e'))&(same(name2, 'p'))) utoi(name+3, &end) continue
if((same(name1, 'l'))&(same(name2, 'm'))) utoi(name+3, &margi
n) continue if((same(name1, 'n'))&(same(name2, 'r')))
readyNO continue if(same(name1, 'p')) pauseYES
continue if(same(name1, 'n')) if(same(name2, 'h')) head
ingsNO continue if(same(name2, 's')) skipsNO continue if(same(n
ame2, 'n')) numbersNO continue fputs("usage PRT file... . -NN -NH-
NSn", stderr) fputs(" -LM# -BP# -EP# -P -NRn", stderr)
abort(7) fprnt(name, fin) char name int fin char lineMAXLINE
+1, wordMAXLINE+1 int textline, fin2, i, temp textline0 while(fgets(lin
e, MAXLINE+1, fin)!NULL) poll(YES) if((lineno/* ** prt.c -- print fi
les with optional page skips, headings, ** and line numbers. ** ** C
opyright 1982 J. E. Hendrix. All rights reserved. */ #include stdio.h #inclu
de "tools.h" #define MARGIN1 0 #define MARGIN2 1 char nameMAXFN, inclextMAXFN
int i, fin, files, headings, skips, numbers, begin, en
d, ready, pause int lineno, pageno, margin main(argc, argv) int argc, *a
rgv headingsskipsnumbersYES doargs(argc, argv) if(iscons(stdou0)&(skip
s)) if(++pageno end) exit(0) if(pageno begin) page(pa
geno, pause, stdout) skip(MARGIN1) if(headings) te
mpmargin while(temp--) printf(" ", 0) if(numbers) printf("
", 0) printf("File %s Page %dn", name, pageno, 2)
else printf("n",0) ++lineno skip(MARGIN2)
linenolineno+MARGIN1+MARGIN2 ++textline ++lineno t))
freopen("LST", "w", stdout) if(ready && isatty(stdout)) fputs("ready pr
inter... ", stderr) fgetc(stderr) filesNO i0 while(getarg(++
i, name, MAXFN, argc, argv)!EOF) if((name0'-')(name0EXTMARK)) continue
filesYES finfopen(name, "r") if(fin0) cant(name) pagenolineno0
fprnt(name, fin) fclose(fin) if((lineno 0)&(skips)) skip(PTRHIGH
-lineno) if(filesNO) pagenolineno0 fprnt("st if(pageno b
egin) tempmargin while(temp--) printf(" ", 0) if(numbers)
printf("%5d %s", textline, line, 2) else printf("%s", line, 1)
if((lineno (PTRHIGH-PTRSKIP))&(skips)) skip(PTRHIGH-lineno)
lineno0 if(inclext0!EXTMARK) continue i0 getwrd(l
ine, &i, word) if((lexcmp(word, "#include")0) (lexcmp(word, ".so")
0)) if(getwrd(line, &i, word) MAXFN) cant(word) din", stdin)
if((lineno 0)&(skips)) skip(PTRHIGH-lineno) fclose(stdout) exit(0)
doargs(argc, argv) int argc, *argv int i, j inclext0NULL begin
0 end32767 readyYES pauseNO margin0 i0 while(getarg(++i, name,
MAXFN, argc, argv)!EOF) if(name0EXTMARK) j0 while(inclextj
toupper(namej)) ++j continue if(name0!'-') continue if(
(same(name1, 'b'))&(same(name2, 'p'))) !R!A!F!B!G!C!H!D!I!E strip(word)
i0 while((wordi!EXTMARK) && (wordi)) ++i if((inclext1) &&
(lexcmp(word+i, inclext)!0)) continue if((fin2fopen(word, "r"))NULL
) cant(word) fprnt(name, fin2) fclose(fin2) s
kip(n) int n int i if(pageno begin) return i0 while(++i n)
poll(YES) fputc('n', stdout) #include "cant.c" #include "page.c
" #include "same.c" #include "strip.c" #include "getwrd.'u') itou(i, str, 7)
else continue ctlcx /* accept conversion spec */ if(c!'s') while(
*sptr' ') ++sptr len-1 while(sptr++len) /* get length */ if((c's')&(le
nprec)&(preclen0)) lenprec if(right) while(((width--)-len)0) cout(pad, stdo
ut) while(len) cout(*sptr++, stdout) --len --width while(((width--)-le
n)0) cout(pad, stdout) c" inclext)!0)) continue if((fin2fo
pen(word, "r"))NULL) cant(word) fprnt(name, fin2) fclose(fin2)
skip(n) int n int i if(pageno begin) return i0 w
hile(++i n) poll(YES) fputc('n', stdout) #include "cant.c
" #include "page.c" #include "same.c" #include "strip.c" #include "getwrd.
/* ** same -- YES if c same as lower case lc, else NO ** c may be uppe
r or lower case */ same(c, lc) char c, lc if((c 'A')&(c 'Z')) c c + 32
if (c lc) return YES return NO /* ** printf(controlstring, arg, a
rg, ...) -- formatted print ** operates as described by Kernighan & Ritc
hie ** only d, x, c, s, and u specs are supported. */ printf(argc) int
argc int i, width, prec, preclen, len, *nxtarg char *ctl, *cx, c, right,
str7, *sptr, pad i CCARGC() /* fetch arg count from A reg first */ nxt
arg &argc + i - 1 ctl *nxtarg while(c*ctl++) if(c!'%') cout(c, std
out) continue if(*ctl'%') cout(*ctl++, stdout) continue cxctl if(
*cx'-') right0 ++cx else right1 if(*cx'0') pad'0' ++cx else pad' ' if(
(iutoi(cx, &width)) 0) cxcx+i else continue if(*cx'.') if((preclen
utoi(++cx, &prec)) 0) cxcx+preclen else continue else precl
en0 sptrstr c*cx++ i*(--nxtarg) if(c'd') itod(i, str, 7) else if(
c'x') itox(i, str, 7) else if(c'c') str0i str1NULL else if(c's') sptri
else if(c "R"A"F"B"G"C"H"D"I"E /* ** scopy -- copy fromi to toj */ sc
opy(from, i, to, j) char *from, *to int i, j fromfrom+i toto+j while(*
to++ *from++) if(tolower(ln1) 'd') /* debug mode - only s
how output */ debug YES continue break
fputs("usage STP -V -D", stderr) abort(7) while(fgets(ln,
LINESZ, stdin)) lnptr ln error NO while(*lnptr && *lnptr ! FEN
CE && *lnptr ! 'n') poll(YES) if(*lnptr QUOTE) dostring() else d
ohex() while(isspace(*++lnptr)) if(debug) fputs("n", stderr
) if(view error) fputs(ln, stderr) dostring() ++lnptr
while(*lnptr ' ') if(*lnptr QUOTE) ++lnptr if(*lnptr ! QU
OTE) return send(lnptr++) fputs("7n- unterminated string i
n following linen", stderr) error YES dohex() int i, hex char
ch i xtoi(lnptr, &hex) if(i 1 i 2 !isspace(lnptri)) i 0 while(!is
space(*lnptr)) ++lnptr if(i 0) fputs("7n- bad hex byte in following
/* ** settab.c -- search command line for tab list possibly ** ter
minated with an interval (+n) and set up ** tabsMAXLINE+1 */ #def
ine DEFTAB 8 settab(tabs, argc, argv) char tabs int argc, *argv int i, j, k
char parm9 i0 while(++iMAXLINE) tabsiNO if((getarg(1, parm, 9, argc
, argv))EOF) i0 while(++iMAXLINE) if((i%DEFTAB)1) tabsiYES
return YES i0 j1 while(getarg(++i, parm, 9, argc, argv)!EOlinen",
stderr) error YES return ch hex send(&ch) send(p
tr) char *ptr if(debug) int i char str3 i *ptr & 255 i
tox(i, str, 3) fputs(str, stderr) fputs(" ", stderr) else wri
te(stdout, ptr, 1) 2 !isspace(lnptri)) i 0 while(!isspace(*lnptr)) +
+lnptr if(i 0) fputs("7n- bad hex byte in following F) if(utoi(p
arm, &k)) if(kMAXLINE) tabskYES jk e
lse fputs("tab stop beyond max line lengthn", stderr) return
ERR else if(parm0'+') if(utoi((parm+1), &k))
while((jj+k)MAXLINE) tabsjYES else return ERR retur
n YES XLINE) if((i%DEFTAB)1) tabsiYES return YES i0 j
1 while(getarg(++i, parm, 9, argc, argv)!EO/* ** srt.c -- sort text lines *
* ** Copyright 1982 J. E. Hendrix. All rights reserved. ** ** Each line in t
he buffer is preceeded by a 1-byte offset to ** the sort key. Line pointers de
signate the first data byte. */ #include stdio.h #include "tools.h" #define
NOCCARGC #define SHELL 1 #define QUICK 2 #define WRTMODE 2 #define MAXRUNS 9
9 #define LOGPTR 20 #define AVGLIN 28 #define RESERVE 2000 #define MERGEORDE
R 5 char *linbuf, outnamMAXFN, tmpdrv char lastlineMAXLINE+1 char */* ** stp
.c -- setup a device configuration */ #include stdio.h #define LINESZ 133/*
maximum input line size */ #define FENCE ''/* comment prefix */ #define QU
OTE '"'/* quote for strings */ char lnLINESZ, *lnptr int view, debug, error
main(argc, argv) int argc, *argv int i view debug NO i 0 while
(getarg(++i, ln, 15, argc, argv) ! EOF) if(*ln '-') if(tolower(ln
1) 'v') /* view activity */ view YES continue #R#A#F#B#G#
C#H#D#I#Emaxbuf, *maxlin /**** fake unsigned int ****/ char tmpout"Xsort00.$$$
" char tmpinp"Xsort00.$$$" char tmpdel"Xsort00.$$$" char delim int field i
nt tmpfdMERGEORDER, *linptr, nlines int low, lim, high, outfil, output, t, orde
r, unique, typesort main(argc, argv) int argc, *argv lastline0outnam00 t
mpdrv'X' doargs(argc, argv) if(tmpdrv 'X') strcpy(tmpout, tmpout+2)
strcpy(tmpinp, tmpinp+2) strcpy(tmpdel, tmpdel+2) else tmpou
'A') && (toupper(arg2) 'G') && (arg3NULL))
tmpdrvarg2 else if(same(c, 'c')) delimNULL if(argutoi(arg+2
, &field)+2 ! NULL) errorYES if(field) --field else if(same(
c, 'f')) if(arg(lenutoi(arg+2, &field))+2 ' ') delimarglen+2
if(arglen+3 ! NULL) errorYES else delim' ' if(f
ield) --field field -field else if(arg2!NULL)t0tmpinp0tmpde
l0tmpdrv outputstdout if((limavail(YES))0) lim32767 maxlin(lim-RESERVE)
/(2+AVGLIN) linptrmalloc(2*maxlin) if((limavail(YES))0) lim32767 maxbuf
lim - RESERVE linbufmalloc(maxbuf) high0 while(YES) if(++high
MAXRUNS) fputs("file too largen", stderr) abort(7) t
gtext() sort(0, nlines-1) if(high1) if(tNULL) ou
tfiloutput ptext() fclose(outf errorYES else if(same(c, '
d')) order-1 else if(same(c, 'u')) uniqueYES else if(same(c, 'q')) typ
esortQUICK else errorYES if(error) fputs("usage SRT -C#-F# -D
-U -Tx -Qn", stderr) abort(7) gtext()
int len char *lbp lbp1 /** leave space for first sort key offset **/
nlines0 while(YES) poll(YES) if((lenreadline(linbuf+lbp, stdin))
NULL) break linptrnlines++lbpil) exit(0) ma
ketmp() ptext() fclose(outfil) if(tNULL) break /* **
Must deallocate in reverse order from allocation. ** Will allocate input tmp fi
le buffers/FCBs over this space ** these must not reach end of linbuf where out
put tmp file ** space was allocated, since that space stays with that fd. */
free(linbuf) free(linptr) linptrmalloc(2*(MERGEORDER+1)) linbufmall
oc(MERGEORDER*(MAXLINE+1)) lastline00 lbplbp+len /** has 2 bytes fo
r NULL and next offset **/ if(((lbp+1) (maxbuf-(MAXLINE+1)))(nlines maxli
n)) break return len ptext() int i char *lbp i0
while(i nlines) poll(YES) lbplinbuf+linptri++ if(duptest(lb
p)) continue sout(lbp, outfil) duptest(line) char *line in
t diff if(!unique) return (NO) /*03*/ diff lexcmp(lastline, lin
e) strcpy(lastline, line) return (low1 while(low high)
/*05*/ limlow+MERGEORDER-1 if(high lim) limhigh t0 while(t
(lim-low)) bumptmp(tmpinp) if((tmpfdtfopen(tmpinp, "r"))NULL) ca
nt(tmpinp) auxbuf(tmpfdt++, 2048) /* redundant calls ignored */
if(limhigh) outfiloutput else maketmp() if(++high MAXRUNS)
fputs("file too largen", stderr) abort(7) merge(lim-low+1)
fclose(outfil) t0 !diff) bumptmp(tmpname) char tmpname c
har *digit digit strchr(tmpname, '.') - 1 if(*digit '9') *digit '0' --d
igit ++*digit maketmp() bumptmp(tmpout) if((outfilfopen(tmpout,
"w"))NULL) cant(tmpout) killtmp() bumptmp(tmpdel) unlink(tmpdel)
sort(lv, uv) int lv, uv if(typesortQUICK) quick(lv, uv) else
shell(lv, uv) shell(lv, uv) int lv, uv int gap, i, j, jg
gap (uv-lv+1) 1 /* while(t (lim-low)) fclose(tmpfdt++) /*
02*/ killtmp() lowlow+MERGEORDER doargs(argc, a
rgv) int argc, *argv char argMAXFN, c int i, error, len field0 de
limNULL /** indicates column number in field **/ order1 typesortSHELL
uniqueerrorNO i0 while(getarg(++i, arg, MAXFN, argc, argv)!EOF) ca
rg1 if(arg0!'-') errorYES else if(same(c, 't') && (toupper
(arg2) $R$A$F$B$G$C$H$D$I$E* divide by 2 **/ while(gap 0) poll(YES)
i gap + lv while(i uv) j i++ - gap while(j lv)
jg j + gap if(compare(linptrj, linptrjg) 0) break exch
ange(j, jg) j j - gap gap gap1 /** divide by 2
**/ quick(lv, uv) int lv, uv int i, j, pivlin avail(YES)
poll(YES) if(lv uv) return /** only one element **/ ilv-1 juv piv
linlinptrj and return its length */ readline(str, fd) char *str int fd
int fld char *ptr, *offset if(fgets(str, MAXLINE+1, fd)NULL) return NUL
L ptroffsetstr-1 /** location of offset field **/ fldfield if(delim
) /** must search for field'th field **/ *offset -1 while(
*(++ptr)) if(fld 0) if(delim ' ') if((*ptr ' ')
&(*(ptr+1) ' ')) ++fld else if(*ptr delim) ++fld
else while(i j) ++i while(compare(linptri, pivlin) 0) ++i
--j while(i j) if(compare(linptrj, pivlin) 0) --j el
se break if(i j) exchange(i, j) juv exchange(i, j)
if((i-lv) (uv-i)) quick(lv, i-1) quick(i+1, uv) else
quick(i+1, uv) quick(lv, i-1) compare(p1, p2) int p1, p2 c
har *ptr1, *ptr2 ptr1 linbuf + (p1 - 1) ptr1 ptr1 + *ptr1 ptr2 linbuf +
(p2 if((fld 0)&((delim ! ' ')(*ptr ' '))) *offset(ptr-str)
fld1 if (*offset -1) *offset(ptr-str) /** end of line
**/ else /** field is the column number of the sort key **/ whil
e(*(++ptr)) if(field (ptr-str)) *offsetfield else *o
ffset(ptr-str) return (ptr-str+2) /** includes NULL and next offset **/
#include "out.c" #include "cant.c" #include "same.c" - 1) ptr2 ptr
2 + *ptr2 while(lexorder(*++ptr1, *++ptr2) 0) if((*ptr1 NULL)(delimit(
*ptr1))) return 0 if(delimit(*ptr1)) return -order if(delimit(*ptr2)) retu
rn order if(lexorder(*ptr1, *ptr2) 0) return order return -order
delimit(c) char c if(c delim) return NO if(delim ' ') return YES
if(c delim) return NO return YES exchange(i, j) int i, j int k
klinptri linptrilinptrj linptrjk merge(nfiles) int nfiles int i,
inf, lbp, lp1, nf char *ptr lbp1 /* leave space for first sort key offset
**/ nfi0 while(i nfiles) /** get one line from each file **/ if(
readline((linbuf+lbp), tmpfdi++)!NULL) linptr++nflbp lbplbp+(MAXL
INE+1) sort(1, nf) /** make initial heap **/ /*04*/ w
hile(nf 0) poll(YES) lp1linptr1 ptrlinbuf+lp1 if(duptest(p
tr)NO) sout(ptr, outfil) inf(lp1/(MAXLINE+1/* ** strip -- Strip , , and "
from str. */ strip(str) char *str char *cp cp str - 1 while(*++cp
*str++) switch(*cp) case '' case '' case '"' --cp
)) /** compute file index **/ if(readline((linbuf+lp1), tmpfdinf)NULL
) linptr1linptrnf-- reheap(nf) reheap(nf) int nf in
t i, j i1 while((j(i1)) nf) if(j nf) /** find smaller child
**/ if(compare(linptrj, linptrj+1) 0) ++j if(compare(linptr
i, linptrj) 0) break exchange(i, j) /** percolate **/ ij
/* ** readline -- read next line, set its sort key offset, ** %R%A%F
%B%G%C%H%D%I%Ee(1) poll(YES) ixindex(from, cfgetc(stdin), allbut, las
tto) if((collapYES)&(ilastto)&(lastto-1)) /* collapse */ if(fputc(t
olastto, stdout)EOF) error("output error") while(1) ix
index(from, cfgetc(stdin), allbut, lastto) if(ilastto) break
if(cEOF) break if((i-1)&(lastto-1)) /* translate *
/ if(fputc(toi, stdout)EOF) error("output error") e
lse if(i0 /* ** tabpos.c -- return YES if col is a tab stop, else NO */ tabp
os(col, tabs) int col char tabs if(colMAXLINE) return YES else return tab
scol MLINE int col, i settab(tabs) col1 while((cgetcha(
))!EOF) if(c't') while(1) putchar(' ') ++col
if(tabpos(col, tabs)YES) break else if(c'n') putcha
r('n') col1 else putchar(c) ++col )
/* copy */ if(fputc(c, stdout)EOF) error("output
error") /* delete */ fclose(
stdout) #include "pat.c" #include "error.c" #include "index.c" #include
"xindex.c" #include "makset.c" -1)) /* translate */ if(fp
utc(toi, stdout)EOF) error("output error") else if(i0/* *
* trim -- trim n from str & return its length */ trim(str) char *str char
*s s str - 1 while(*++s) /* prefix ++ is faster */ if((*--s 'n') &&
(s str)) *s NULL else ++s return (s - str) /* ** trn.c -- map char
acters ** ** Copyright 1982 J. E. Hendrix. All rights reserved. */ #include
stdio.h #include "tools.h" #define NOCCARGC #define MAXARG 80 #define MAXSE
T 127 main(argc, argv) int argc, *argv char argMAXARG+1, c, fromMAXSET+1, t
oMAXSET+1 int allbut, collap, i, lastto, error auxbuf(stdin, 4096) erro
rNO if(getarg(1, arg, MAXARG, argc, argv)EOF) errorYES if(((arg0'-')&(arg1
' '))(errorYES)) fputs("usage TRN from ton", stderr) abort(7)
if(arg0NOT) allbutYES if(makset(arg, 1, from, MAXSET)NO) err
or("from-list too large") else allbutNO if(makset(arg, 0, fr
om, MAXSET)NO) error("from-list too large") if(getarg(2, arg, MA
XARG, argc, argv)EOF) to0NULL else if(makset(arg, 0, to, MAXSET)NO) erro
r("to-list too large") lasttostrlen(to)-1 if((strlen(from)(lastto+1))(allb
utYES)) collapYES else collapNO whil &R&A&F&B&G&C&H&D&I&E /* ** xindex.
c -- invert condition returned by index */ xindex(array, c, allbut, lastto) ch
ar array, c int allbut, lastto if(cEOF) return -1 else if(allbutNO) retur
n index(array, c) else if(index(array, c)-1) return -1 else return lastto+
1 /!$g9!9/R!9/!9/+/! /$!9!9!!/!9! 9!!$9/o0/!9! 9/!//!9//!/!9!/!9/#/!9!/!9!9
/# 'R'A'F'B'G'C'H'D'I'E (R( 0G!523-037C SCHNEIDER DUP 3"-100/40 2S DD
SS 70292-00ww