home *** CD-ROM | disk | FTP | other *** search
/ BBS in a Box 12 / BBS in a box XII-1.iso / Files / Tele / Internet / NewsWatch.sit / source / nntplow.c < prev    next >
MacBinary  |  1991-04-03  |  16.4 KB  |  [TEXT/MPS ]

open in: MacOS 8.1     |     Win98     |     DOS

view JSON data     |     view as text

This file was processed as: MacBinary (archive/macBinary).

You can browse this item here: nntplow.c

ConfidenceProgramDetectionMatch TypeSupport
66% dexvert Compact Compressed (Unix) (archive/compact) ext Supported
10% dexvert MacBinary (archive/macBinary) fallback Supported
1% dexvert Text File (text/txt) fallback Supported
100% file MacBinary II, Wed Apr 3 18:30:20 1991, modified Wed Apr 3 18:30:20 1991, creator 'MPS ', type ASCII, 15810 bytes "nntplow.c" , at 0x3e42 734 bytes resource default (weak)
99% file data default
74% TrID Macintosh plain text (MacBinary) default
25% TrID MacBinary 2 default (weak)
100% siegfried fmt/1762 MacBinary (II) default
100% lsar MacBinary default


id metadata
keyvalue
macFileType[TEXT]
macFileCreator[MPS ]



hex view
+--------+-------------------------+-------------------------+--------+--------+
|00000000| 00 09 6e 6e 74 70 6c 6f | 77 2e 63 00 00 00 00 00 |..nntplo|w.c.....|
|00000010| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000020| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000030| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000040| 00 54 45 58 54 4d 50 53 | 20 00 00 00 00 00 00 00 |.TEXTMPS| .......|
|00000050| 00 00 00 00 00 3d c2 00 | 00 02 de a4 20 16 0c a4 |.....=..|.... ...|
|00000060| 20 16 0c 00 00 00 00 00 | 00 00 00 00 00 00 00 00 | .......|........|
|00000070| 00 00 00 00 00 00 00 00 | 00 00 81 81 d7 8f 00 00 |........|........|
|00000080| 2f 2a 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |/*------|--------|
|00000090| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000000a0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000000b0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 0d 23 0d 23 |--------|----.#.#|
|000000c0| 09 4e 65 77 73 57 61 74 | 63 68 65 72 09 2d 20 4d |.NewsWat|cher.- M|
|000000d0| 61 63 69 6e 74 6f 73 68 | 20 4e 4e 54 50 20 43 6c |acintosh| NNTP Cl|
|000000e0| 69 65 6e 74 20 41 70 70 | 6c 69 63 61 74 69 6f 6e |ient App|lication|
|000000f0| 0d 23 0d 23 09 57 72 69 | 74 74 65 6e 20 62 79 20 |.#.#.Wri|tten by |
|00000100| 53 74 65 76 65 6e 20 46 | 61 6c 6b 65 6e 62 75 72 |Steven F|alkenbur|
|00000110| 67 0d 23 09 a9 31 39 39 | 30 20 41 70 70 6c 65 20 |g.#..199|0 Apple |
|00000120| 43 6f 6d 70 75 74 65 72 | 2c 20 49 6e 63 2e 0d 23 |Computer|, Inc..#|
|00000130| 0d 23 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |.#------|--------|
|00000140| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000150| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000160| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 0d 23 0d |--------|-----.#.|
|00000170| 23 09 6e 6e 74 70 6c 6f | 77 2e 63 0d 23 0d 23 09 |#.nntplo|w.c.#.#.|
|00000180| 54 68 65 20 6e 6e 74 70 | 6c 6f 77 20 63 6f 64 65 |The nntp|low code|
|00000190| 20 6d 6f 64 75 6c 65 20 | 63 6f 6e 74 61 69 6e 73 | module |contains|
|000001a0| 20 74 68 65 20 6e 65 74 | 77 6f 72 6b 20 63 6f 64 | the net|work cod|
|000001b0| 65 20 77 68 69 63 68 0d | 23 09 63 6f 6d 6d 75 6e |e which.|#.commun|
|000001c0| 69 63 61 74 65 73 20 77 | 69 74 68 20 74 68 65 20 |icates w|ith the |
|000001d0| 72 65 6d 6f 74 65 20 4e | 4e 54 50 20 73 65 72 76 |remote N|NTP serv|
|000001e0| 65 72 20 74 6f 20 67 65 | 74 2f 70 6f 73 74 0d 23 |er to ge|t/post.#|
|000001f0| 09 6e 65 77 73 20 61 72 | 74 69 63 6c 65 73 20 6f |.news ar|ticles o|
|00000200| 72 20 72 65 74 72 69 65 | 76 65 20 73 75 62 6a 65 |r retrie|ve subje|
|00000210| 63 74 20 6f 72 20 67 72 | 6f 75 70 20 6c 69 73 74 |ct or gr|oup list|
|00000220| 73 2e 0d 23 0d 23 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |s..#.#--|--------|
|00000230| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000240| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000250| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000260| 2d 2a 2f 0d 0d 23 70 72 | 61 67 6d 61 20 73 65 67 |-*/..#pr|agma seg|
|00000270| 6d 65 6e 74 20 6c 6f 77 | 6c 65 76 65 6c 0d 0d 23 |ment low|level..#|
|00000280| 69 6e 63 6c 75 64 65 20 | 22 63 6f 6d 70 61 74 2e |include |"compat.|
|00000290| 68 22 0d 0d 23 69 66 64 | 65 66 20 50 52 4f 54 4f |h"..#ifd|ef PROTO|
|000002a0| 53 0d 0d 23 69 6e 63 6c | 75 64 65 20 3c 54 79 70 |S..#incl|ude <Typ|
|000002b0| 65 73 2e 68 3e 0d 23 69 | 6e 63 6c 75 64 65 20 3c |es.h>.#i|nclude <|
|000002c0| 4d 65 6d 6f 72 79 2e 68 | 3e 0d 23 69 6e 63 6c 75 |Memory.h|>.#inclu|
|000002d0| 64 65 20 3c 51 75 69 63 | 6b 44 72 61 77 2e 68 3e |de <Quic|kDraw.h>|
|000002e0| 0d 23 69 6e 63 6c 75 64 | 65 20 3c 4f 53 55 74 69 |.#includ|e <OSUti|
|000002f0| 6c 73 2e 68 3e 0d 23 69 | 6e 63 6c 75 64 65 20 3c |ls.h>.#i|nclude <|
|00000300| 43 75 72 73 6f 72 43 74 | 6c 2e 68 3e 0d 23 69 6e |CursorCt|l.h>.#in|
|00000310| 63 6c 75 64 65 20 3c 50 | 61 63 6b 61 67 65 73 2e |clude <P|ackages.|
|00000320| 68 3e 0d 23 69 6e 63 6c | 75 64 65 20 3c 54 6f 6f |h>.#incl|ude <Too|
|00000330| 6c 55 74 69 6c 73 2e 68 | 3e 0d 23 69 6e 63 6c 75 |lUtils.h|>.#inclu|
|00000340| 64 65 20 3c 4c 69 73 74 | 73 2e 68 3e 0d 23 69 6e |de <List|s.h>.#in|
|00000350| 63 6c 75 64 65 20 3c 53 | 74 72 69 6e 67 73 2e 68 |clude <S|trings.h|
|00000360| 3e 0d 0d 23 65 6e 64 69 | 66 0d 0d 23 69 6e 63 6c |>..#endi|f..#incl|
|00000370| 75 64 65 20 3c 73 74 72 | 69 6e 67 2e 68 3e 0d 0d |ude <str|ing.h>..|
|00000380| 23 69 6e 63 6c 75 64 65 | 20 22 6e 6e 74 70 2e 68 |#include| "nntp.h|
|00000390| 22 0d 23 69 6e 63 6c 75 | 64 65 20 22 4d 61 63 54 |".#inclu|de "MacT|
|000003a0| 43 50 43 6f 6d 6d 6f 6e | 54 79 70 65 73 2e 68 22 |CPCommon|Types.h"|
|000003b0| 0d 23 69 6e 63 6c 75 64 | 65 20 22 54 43 50 50 42 |.#includ|e "TCPPB|
|000003c0| 2e 68 22 0d 23 69 6e 63 | 6c 75 64 65 20 22 6e 65 |.h".#inc|lude "ne|
|000003d0| 74 73 74 75 66 66 2e 68 | 22 0d 23 69 6e 63 6c 75 |tstuff.h|".#inclu|
|000003e0| 64 65 20 22 54 43 50 48 | 69 2e 68 22 0d 23 69 6e |de "TCPH|i.h".#in|
|000003f0| 63 6c 75 64 65 20 22 46 | 54 50 4c 6f 77 2e 68 22 |clude "F|TPLow.h"|
|00000400| 0d 23 69 6e 63 6c 75 64 | 65 20 22 4e 4e 54 50 4c |.#includ|e "NNTPL|
|00000410| 6f 77 2e 68 22 0d 23 69 | 6e 63 6c 75 64 65 20 22 |ow.h".#i|nclude "|
|00000420| 6d 69 73 63 73 74 75 66 | 66 2e 68 22 0d 0d 75 6e |miscstuf|f.h"..un|
|00000430| 73 69 67 6e 65 64 20 6c | 6f 6e 67 09 67 43 6f 6e |signed l|ong.gCon|
|00000440| 6e 49 44 20 3d 20 30 3b | 09 09 2f 2a 20 63 6f 6e |nID = 0;|../* con|
|00000450| 6e 65 63 74 69 6f 6e 20 | 69 64 20 66 6f 72 20 6e |nection |id for n|
|00000460| 6e 74 70 20 63 6f 6e 6e | 65 63 74 69 6f 6e 20 2a |ntp conn|ection *|
|00000470| 2f 0d 73 68 6f 72 74 09 | 09 09 67 4e 75 6d 47 72 |/.short.|..gNumGr|
|00000480| 6f 75 70 73 3b 09 09 09 | 2f 2a 20 6e 75 6d 62 65 |oups;...|/* numbe|
|00000490| 72 20 6f 66 20 6e 65 77 | 73 67 72 6f 75 70 73 20 |r of new|sgroups |
|000004a0| 2a 2f 0d 54 47 72 6f 75 | 70 09 09 09 2a 67 47 72 |*/.TGrou|p...*gGr|
|000004b0| 6f 75 70 4c 69 73 74 3b | 09 09 2f 2a 20 70 6f 69 |oupList;|../* poi|
|000004c0| 6e 74 65 72 20 74 6f 20 | 66 69 72 73 74 20 67 72 |nter to |first gr|
|000004d0| 6f 75 70 20 2a 2f 0d 73 | 74 61 74 69 63 20 54 47 |oup */.s|tatic TG|
|000004e0| 72 6f 75 70 09 2a 2a 67 | 72 6f 75 70 48 61 6e 64 |roup.**g|roupHand|
|000004f0| 6c 65 3b 09 09 2f 2a 20 | 68 61 6e 64 6c 65 20 74 |le;../* |handle t|
|00000500| 6f 20 66 69 72 73 74 20 | 67 72 6f 75 70 20 2a 2f |o first |group */|
|00000510| 0d 75 6e 73 69 67 6e 65 | 64 20 6c 6f 6e 67 09 67 |.unsigne|d long.g|
|00000520| 4e 4e 54 50 41 64 64 72 | 65 73 73 3b 09 09 2f 2a |NNTPAddr|ess;../*|
|00000530| 20 61 64 64 72 65 73 73 | 20 6f 66 20 4e 4e 54 50 | address| of NNTP|
|00000540| 20 73 65 72 76 65 72 20 | 2a 2f 0d 0d 4f 53 45 72 | server |*/..OSEr|
|00000550| 72 20 47 72 6f 77 44 61 | 74 61 53 74 72 75 63 74 |r GrowDa|taStruct|
|00000560| 75 72 65 28 76 6f 69 64 | 29 3b 0d 0d 0d 2f 2a 09 |ure(void|);.../*.|
|00000570| 47 72 6f 77 44 61 74 61 | 53 74 72 75 63 74 75 72 |GrowData|Structur|
|00000580| 65 20 64 79 6e 61 6d 69 | 63 61 6c 6c 79 20 67 72 |e dynami|cally gr|
|00000590| 6f 77 73 20 74 68 65 20 | 67 72 6f 75 70 20 64 61 |ows the |group da|
|000005a0| 74 61 20 73 74 72 75 63 | 74 75 72 65 2c 20 72 65 |ta struc|ture, re|
|000005b0| 2d 61 73 73 69 67 6e 69 | 6e 67 0d 09 67 47 72 6f |-assigni|ng..gGro|
|000005c0| 75 70 4c 69 73 74 20 61 | 66 74 65 72 20 6c 6f 63 |upList a|fter loc|
|000005d0| 6b 69 6e 67 20 74 68 65 | 20 68 61 6e 64 6c 65 2e |king the| handle.|
|000005e0| 0d 2a 2f 0d 0d 4f 53 45 | 72 72 20 47 72 6f 77 44 |.*/..OSE|rr GrowD|
|000005f0| 61 74 61 53 74 72 75 63 | 74 75 72 65 28 76 6f 69 |ataStruc|ture(voi|
|00000600| 64 29 0d 7b 0d 09 53 69 | 7a 65 20 70 72 65 76 53 |d).{..Si|ze prevS|
|00000610| 69 7a 65 3b 0d 09 4f 53 | 45 72 72 20 65 72 72 3b |ize;..OS|Err err;|
|00000620| 0d 09 0d 09 48 55 6e 6c | 6f 63 6b 28 28 48 61 6e |....HUnl|ock((Han|
|00000630| 64 6c 65 29 67 72 6f 75 | 70 48 61 6e 64 6c 65 29 |dle)grou|pHandle)|
|00000640| 3b 0d 09 70 72 65 76 53 | 69 7a 65 20 3d 20 47 65 |;..prevS|ize = Ge|
|00000650| 74 48 61 6e 64 6c 65 53 | 69 7a 65 28 28 48 61 6e |tHandleS|ize((Han|
|00000660| 64 6c 65 29 67 72 6f 75 | 70 48 61 6e 64 6c 65 29 |dle)grou|pHandle)|
|00000670| 3b 0d 09 4d 79 53 65 74 | 48 61 6e 64 6c 65 53 69 |;..MySet|HandleSi|
|00000680| 7a 65 28 28 48 61 6e 64 | 6c 65 29 67 72 6f 75 70 |ze((Hand|le)group|
|00000690| 48 61 6e 64 6c 65 2c 70 | 72 65 76 53 69 7a 65 2b |Handle,p|revSize+|
|000006a0| 73 69 7a 65 6f 66 28 54 | 47 72 6f 75 70 29 29 3b |sizeof(T|Group));|
|000006b0| 0d 09 69 66 20 28 28 65 | 72 72 20 3d 20 4d 79 4d |..if ((e|rr = MyM|
|000006c0| 65 6d 45 72 72 28 29 29 | 21 3d 6e 6f 45 72 72 29 |emErr())|!=noErr)|
|000006d0| 20 7b 0d 09 09 4d 6f 76 | 65 48 48 69 28 28 48 61 | {...Mov|eHHi((Ha|
|000006e0| 6e 64 6c 65 29 67 72 6f | 75 70 48 61 6e 64 6c 65 |ndle)gro|upHandle|
|000006f0| 29 3b 0d 09 09 48 4c 6f | 63 6b 28 28 48 61 6e 64 |);...HLo|ck((Hand|
|00000700| 6c 65 29 67 72 6f 75 70 | 48 61 6e 64 6c 65 29 3b |le)group|Handle);|
|00000710| 0d 09 09 67 47 72 6f 75 | 70 4c 69 73 74 20 3d 20 |...gGrou|pList = |
|00000720| 2a 67 72 6f 75 70 48 61 | 6e 64 6c 65 3b 0d 09 09 |*groupHa|ndle;...|
|00000730| 72 65 74 75 72 6e 20 65 | 72 72 3b 0d 09 7d 0d 09 |return e|rr;..}..|
|00000740| 4d 6f 76 65 48 48 69 28 | 28 48 61 6e 64 6c 65 29 |MoveHHi(|(Handle)|
|00000750| 67 72 6f 75 70 48 61 6e | 64 6c 65 29 3b 0d 09 48 |groupHan|dle);..H|
|00000760| 4c 6f 63 6b 28 28 48 61 | 6e 64 6c 65 29 67 72 6f |Lock((Ha|ndle)gro|
|00000770| 75 70 48 61 6e 64 6c 65 | 29 3b 0d 09 67 47 72 6f |upHandle|);..gGro|
|00000780| 75 70 4c 69 73 74 20 3d | 20 2a 67 72 6f 75 70 48 |upList =| *groupH|
|00000790| 61 6e 64 6c 65 3b 0d 7d | 0d 0d 0d 2f 2a 09 53 74 |andle;.}|.../*.St|
|000007a0| 61 72 74 4e 4e 54 50 20 | 69 6e 69 74 69 61 6c 69 |artNNTP |initiali|
|000007b0| 7a 65 73 20 4d 61 63 54 | 43 50 2c 20 6f 70 65 6e |zes MacT|CP, open|
|000007c0| 73 20 74 68 65 20 4e 4e | 54 50 20 63 6f 6e 6e 65 |s the NN|TP conne|
|000007d0| 63 74 69 6f 6e 2c 20 61 | 6e 64 0d 09 67 65 74 73 |ction, a|nd..gets|
|000007e0| 20 74 68 65 20 6c 69 73 | 74 20 6f 66 20 67 72 6f | the lis|t of gro|
|000007f0| 75 70 73 20 66 72 6f 6d | 20 74 68 65 20 4e 4e 54 |ups from| the NNT|
|00000800| 50 20 73 65 72 76 65 72 | 2e 0d 2a 2f 0d 0d 4f 53 |P server|..*/..OS|
|00000810| 45 72 72 20 53 74 61 72 | 74 4e 4e 54 50 28 76 6f |Err Star|tNNTP(vo|
|00000820| 69 64 29 0d 7b 0d 09 4f | 53 45 72 72 20 65 72 72 |id).{..O|SErr err|
|00000830| 3b 0d 09 0d 09 53 74 61 | 74 75 73 57 69 6e 64 6f |;....Sta|tusWindo|
|00000840| 77 28 22 47 65 74 74 69 | 6e 67 20 4e 4e 54 50 20 |w("Getti|ng NNTP |
|00000850| 41 64 64 72 65 73 73 2e | 2e 2e 22 2c 2d 31 29 3b |Address.|..",-1);|
|00000860| 0d 09 47 65 74 43 6f 6e | 66 69 67 75 72 61 74 69 |..GetCon|figurati|
|00000870| 6f 6e 28 29 3b 0d 09 0d | 09 53 74 61 74 75 73 57 |on();...|.StatusW|
|00000880| 69 6e 64 6f 77 28 22 4f | 70 65 6e 69 6e 67 20 54 |indow("O|pening T|
|00000890| 43 50 20 44 72 69 76 65 | 72 2e 2e 2e 22 2c 2d 31 |CP Drive|r...",-1|
|000008a0| 29 3b 0d 09 47 69 76 65 | 54 69 6d 65 28 30 29 3b |);..Give|Time(0);|
|000008b0| 09 0d 09 69 66 20 28 28 | 65 72 72 20 3d 20 49 6e |...if ((|err = In|
|000008c0| 69 74 4e 4e 54 50 28 29 | 29 20 3d 3d 20 6e 6f 45 |itNNTP()|) == noE|
|000008d0| 72 72 20 26 26 0d 09 09 | 28 65 72 72 20 3d 20 46 |rr &&...|(err = F|
|000008e0| 54 50 49 6e 69 74 28 28 | 50 72 6f 63 50 74 72 29 |TPInit((|ProcPtr)|
|000008f0| 53 74 61 74 75 73 50 72 | 6f 63 29 29 20 3d 3d 20 |StatusPr|oc)) == |
|00000900| 6e 6f 45 72 72 20 26 26 | 0d 09 09 28 53 74 61 74 |noErr &&|...(Stat|
|00000910| 75 73 57 69 6e 64 6f 77 | 28 22 4f 70 65 6e 69 6e |usWindow|("Openin|
|00000920| 67 20 43 6f 6e 6e 65 63 | 74 69 6f 6e 2e 2e 2e 22 |g Connec|tion..."|
|00000930| 2c 2d 31 29 29 20 26 26 | 0d 09 09 28 65 72 72 20 |,-1)) &&|...(err |
|00000940| 3d 20 4f 70 65 6e 4e 65 | 77 73 43 6f 6e 6e 65 63 |= OpenNe|wsConnec|
|00000950| 74 69 6f 6e 28 67 4e 4e | 54 50 41 64 64 72 65 73 |tion(gNN|TPAddres|
|00000960| 73 29 29 20 3d 3d 20 6e | 6f 45 72 72 20 26 26 0d |s)) == n|oErr &&.|
|00000970| 09 09 28 53 74 61 74 75 | 73 57 69 6e 64 6f 77 28 |..(Statu|sWindow(|
|00000980| 22 47 65 74 74 69 6e 67 | 20 47 72 6f 75 70 73 20 |"Getting| Groups |
|00000990| 46 72 6f 6d 20 4e 65 74 | 2e 2e 2e 22 2c 30 29 29 |From Net|...",0))|
|000009a0| 20 26 26 0d 09 09 28 65 | 72 72 20 3d 20 47 65 74 | &&...(e|rr = Get|
|000009b0| 47 72 6f 75 70 4c 69 73 | 74 28 26 67 4e 75 6d 47 |GroupLis|t(&gNumG|
|000009c0| 72 6f 75 70 73 29 29 20 | 3d 3d 20 6e 6f 45 72 72 |roups)) |== noErr|
|000009d0| 20 26 26 0d 09 09 28 53 | 74 61 74 75 73 57 69 6e | &&...(S|tatusWin|
|000009e0| 64 6f 77 28 22 47 65 74 | 74 69 6e 67 20 47 72 6f |dow("Get|ting Gro|
|000009f0| 75 70 73 20 46 72 6f 6d | 20 4e 65 74 2e 2e 2e 22 |ups From| Net..."|
|00000a00| 2c 31 30 30 29 29 29 0d | 09 09 09 3b 0d 09 47 69 |,100))).|...;..Gi|
|00000a10| 76 65 54 69 6d 65 28 30 | 29 3b 0d 09 72 65 74 75 |veTime(0|);..retu|
|00000a20| 72 6e 20 65 72 72 3b 0d | 7d 0d 0d 0d 2f 2a 09 49 |rn err;.|}.../*.I|
|00000a30| 6e 69 74 4e 4e 54 50 20 | 69 73 20 63 61 6c 6c 65 |nitNNTP |is calle|
|00000a40| 64 20 74 6f 20 69 6e 69 | 74 69 61 6c 69 7a 65 20 |d to ini|tialize |
|00000a50| 61 6c 6c 20 64 72 69 76 | 65 72 73 2f 65 74 63 20 |all driv|ers/etc |
|00000a60| 6e 65 63 65 73 73 61 72 | 79 20 66 6f 72 0d 09 6f |necessar|y for..o|
|00000a70| 70 65 72 61 74 69 6f 6e | 20 61 6e 64 20 6d 61 69 |peration| and mai|
|00000a80| 6e 74 65 6e 65 6e 63 65 | 20 6f 66 20 74 68 65 20 |ntenence| of the |
|00000a90| 4e 4e 54 50 20 63 6f 6e | 6e 65 63 74 69 6f 6e 2e |NNTP con|nection.|
|00000aa0| 0d 2a 2f 0d 0d 4f 53 45 | 72 72 20 49 6e 69 74 4e |.*/..OSE|rr InitN|
|00000ab0| 4e 54 50 28 76 6f 69 64 | 29 0d 7b 0d 09 67 72 6f |NTP(void|).{..gro|
|00000ac0| 75 70 48 61 6e 64 6c 65 | 20 3d 20 28 54 47 72 6f |upHandle| = (TGro|
|00000ad0| 75 70 20 2a 2a 29 4d 79 | 4e 65 77 48 61 6e 64 6c |up **)My|NewHandl|
|00000ae0| 65 28 73 69 7a 65 6f 66 | 28 54 47 72 6f 75 70 29 |e(sizeof|(TGroup)|
|00000af0| 29 3b 0d 09 69 66 20 28 | 4d 79 4d 65 6d 45 72 72 |);..if (|MyMemErr|
|00000b00| 28 29 20 21 3d 20 6e 6f | 45 72 72 29 0d 09 09 72 |() != no|Err)...r|
|00000b10| 65 74 75 72 6e 20 4d 79 | 4d 65 6d 45 72 72 28 29 |eturn My|MemErr()|
|00000b20| 3b 0d 09 48 4c 6f 63 6b | 28 28 48 61 6e 64 6c 65 |;..HLock|((Handle|
|00000b30| 29 67 72 6f 75 70 48 61 | 6e 64 6c 65 29 3b 0d 09 |)groupHa|ndle);..|
|00000b40| 67 47 72 6f 75 70 4c 69 | 73 74 20 3d 20 2a 67 72 |gGroupLi|st = *gr|
|00000b50| 6f 75 70 48 61 6e 64 6c | 65 3b 0d 09 72 65 74 75 |oupHandl|e;..retu|
|00000b60| 72 6e 20 49 6e 69 74 4e | 65 74 77 6f 72 6b 28 29 |rn InitN|etwork()|
|00000b70| 3b 0d 7d 0d 0d 0d 2f 2a | 09 52 65 73 65 74 43 6f |;.}.../*|.ResetCo|
|00000b80| 6e 6e 65 63 74 69 6f 6e | 20 63 6c 6f 73 65 73 20 |nnection| closes |
|00000b90| 61 6e 64 20 72 65 2d 6f | 70 65 6e 73 20 74 68 65 |and re-o|pens the|
|00000ba0| 20 4e 4e 54 50 20 63 6f | 6e 6e 65 63 74 69 6f 6e | NNTP co|nnection|
|00000bb0| 2e 20 20 54 68 69 73 20 | 72 6f 75 74 69 6e 65 0d |. This |routine.|
|00000bc0| 09 69 73 20 63 61 6c 6c | 65 64 20 77 68 65 6e 20 |.is call|ed when |
|00000bd0| 61 20 6e 65 74 77 6f 72 | 6b 20 65 72 72 6f 72 20 |a networ|k error |
|00000be0| 6f 63 63 75 72 73 2e 0d | 2a 2f 0d 0d 4f 53 45 72 |occurs..|*/..OSEr|
|00000bf0| 72 20 52 65 73 65 74 43 | 6f 6e 6e 65 63 74 69 6f |r ResetC|onnectio|
|00000c00| 6e 28 76 6f 69 64 29 0d | 7b 0d 09 4f 53 45 72 72 |n(void).|{..OSErr|
|00000c10| 20 65 72 72 3b 0d 09 53 | 74 72 32 35 35 20 74 6d | err;..S|tr255 tm|
|00000c20| 70 53 74 72 3b 0d 09 65 | 78 74 65 72 6e 20 42 6f |pStr;..e|xtern Bo|
|00000c30| 6f 6c 65 61 6e 20 67 43 | 61 6e 63 65 6c 3b 0d 09 |olean gC|ancel;..|
|00000c40| 0d 09 67 43 61 6e 63 65 | 6c 20 3d 20 66 61 6c 73 |..gCance|l = fals|
|00000c50| 65 3b 0d 09 41 62 6f 72 | 74 4e 65 77 73 43 6f 6e |e;..Abor|tNewsCon|
|00000c60| 6e 65 63 74 69 6f 6e 28 | 29 3b 0d 09 53 74 61 74 |nection(|);..Stat|
|00000c70| 75 73 57 69 6e 64 6f 77 | 28 22 52 65 2d 65 73 74 |usWindow|("Re-est|
|00000c80| 61 62 6c 69 73 68 69 6e | 67 20 43 6f 6e 6e 65 63 |ablishin|g Connec|
|00000c90| 74 69 6f 6e 2e 2e 2e 22 | 2c 2d 31 29 3b 0d 09 69 |tion..."|,-1);..i|
|00000ca0| 66 20 28 28 65 72 72 20 | 3d 20 49 6e 69 74 4e 65 |f ((err |= InitNe|
|00000cb0| 74 77 6f 72 6b 28 29 29 | 20 3d 3d 20 6e 6f 45 72 |twork())| == noEr|
|00000cc0| 72 20 26 26 0d 09 09 28 | 65 72 72 20 3d 20 46 54 |r &&...(|err = FT|
|00000cd0| 50 49 6e 69 74 28 28 50 | 72 6f 63 50 74 72 29 53 |PInit((P|rocPtr)S|
|00000ce0| 74 61 74 75 73 50 72 6f | 63 29 29 20 3d 3d 20 6e |tatusPro|c)) == n|
|00000cf0| 6f 45 72 72 20 26 26 0d | 09 09 28 65 72 72 20 3d |oErr &&.|..(err =|
|00000d00| 20 4f 70 65 6e 4e 65 77 | 73 43 6f 6e 6e 65 63 74 | OpenNew|sConnect|
|00000d10| 69 6f 6e 28 67 4e 4e 54 | 50 41 64 64 72 65 73 73 |ion(gNNT|PAddress|
|00000d20| 29 29 20 3d 3d 20 6e 6f | 45 72 72 29 0d 09 09 09 |)) == no|Err)....|
|00000d30| 3b 0d 09 65 6c 73 65 20 | 7b 0d 09 09 4e 75 6d 54 |;..else |{...NumT|
|00000d40| 6f 53 74 72 69 6e 67 28 | 65 72 72 2c 74 6d 70 53 |oString(|err,tmpS|
|00000d50| 74 72 29 3b 0d 09 09 50 | 61 72 61 6d 54 65 78 74 |tr);...P|aramText|
|00000d60| 28 22 5c 70 43 6f 6e 6e | 65 63 74 69 6f 6e 20 63 |("\pConn|ection c|
|00000d70| 6f 75 6c 64 20 6e 6f 74 | 20 65 73 74 61 62 6c 69 |ould not| establi|
|00000d80| 73 68 65 64 2e 22 2c 74 | 6d 70 53 74 72 2c 22 5c |shed.",t|mpStr,"\|
|00000d90| 70 22 2c 22 5c 70 22 29 | 3b 0d 09 09 43 61 75 74 |p","\p")|;...Caut|
|00000da0| 69 6f 6e 41 6c 65 72 74 | 28 6b 45 72 72 44 6c 67 |ionAlert|(kErrDlg|
|00000db0| 2c 6e 69 6c 29 3b 0d 09 | 7d 09 09 0d 09 72 65 74 |,nil);..|}....ret|
|00000dc0| 75 72 6e 20 65 72 72 3b | 0d 7d 0d 0d 0d 2f 2a 09 |urn err;|.}.../*.|
|00000dd0| 47 65 74 48 65 6c 6c 6f | 20 67 65 74 73 20 74 68 |GetHello| gets th|
|00000de0| 65 20 69 6e 69 74 69 61 | 6c 20 73 74 61 74 75 73 |e initia|l status|
|00000df0| 20 62 61 63 6b 20 66 72 | 6f 6d 20 61 6e 20 6f 70 | back fr|om an op|
|00000e00| 65 6e 20 4e 4e 54 50 20 | 63 6f 6e 6e 65 63 74 69 |en NNTP |connecti|
|00000e10| 6f 6e 0d 09 74 6f 20 64 | 65 74 65 72 6d 69 6e 65 |on..to d|etermine|
|00000e20| 20 77 68 65 74 68 65 72 | 20 6f 72 20 6e 6f 74 20 | whether| or not |
|00000e30| 74 68 65 20 63 6f 6e 6e | 65 63 74 69 6f 6e 20 77 |the conn|ection w|
|00000e40| 61 73 20 6f 70 65 6e 65 | 64 20 73 75 63 65 73 73 |as opene|d sucess|
|00000e50| 66 75 6c 6c 79 2e 0d 2a | 2f 0d 0d 4f 53 45 72 72 |fully..*|/..OSErr|
|00000e60| 20 47 65 74 48 65 6c 6c | 6f 28 76 6f 69 64 29 0d | GetHell|o(void).|
|00000e70| 7b 0d 09 4f 53 45 72 72 | 20 65 72 72 3b 0d 09 50 |{..OSErr| err;..P|
|00000e80| 74 72 20 64 61 74 61 3b | 0d 09 75 6e 73 69 67 6e |tr data;|..unsign|
|00000e90| 65 64 20 73 68 6f 72 74 | 20 6c 65 6e 67 74 68 3b |ed short| length;|
|00000ea0| 0d 09 0d 09 64 61 74 61 | 20 3d 20 4d 79 4e 65 77 |....data| = MyNew|
|00000eb0| 50 74 72 28 6b 42 75 66 | 4c 65 6e 29 3b 0d 09 69 |Ptr(kBuf|Len);..i|
|00000ec0| 66 20 28 4d 79 4d 65 6d | 45 72 72 28 29 20 21 3d |f (MyMem|Err() !=|
|00000ed0| 20 6e 6f 45 72 72 29 0d | 09 09 72 65 74 75 72 6e | noErr).|..return|
|00000ee0| 20 4d 79 4d 65 6d 45 72 | 72 28 29 3b 0d 09 09 0d | MyMemEr|r();....|
|00000ef0| 09 6c 65 6e 67 74 68 20 | 3d 20 6b 42 75 66 4c 65 |.length |= kBufLe|
|00000f00| 6e 3b 0d 09 0d 09 65 72 | 72 20 3d 20 52 65 63 76 |n;....er|r = Recv|
|00000f10| 44 61 74 61 28 67 43 6f | 6e 6e 49 44 2c 64 61 74 |Data(gCo|nnID,dat|
|00000f20| 61 2c 26 6c 65 6e 67 74 | 68 2c 74 72 75 65 29 3b |a,&lengt|h,true);|
|00000f30| 0d 09 0d 09 69 66 20 28 | 2a 64 61 74 61 20 21 3d |....if (|*data !=|
|00000f40| 20 27 32 27 29 0d 09 09 | 65 72 72 20 3d 20 2d 31 | '2')...|err = -1|
|00000f50| 3b 0d 09 0d 09 4d 79 44 | 69 73 70 6f 73 50 74 72 |;....MyD|isposPtr|
|00000f60| 28 64 61 74 61 29 3b 0d | 09 0d 09 72 65 74 75 72 |(data);.|...retur|
|00000f70| 6e 20 65 72 72 3b 0d 7d | 0d 0d 0d 2f 2a 09 4f 70 |n err;.}|.../*.Op|
|00000f80| 65 6e 4e 65 77 73 43 6f | 6e 6e 65 63 74 69 6f 6e |enNewsCo|nnection|
|00000f90| 20 6f 70 65 6e 73 20 74 | 68 65 20 63 6f 6e 6e 65 | opens t|he conne|
|00000fa0| 63 69 74 6f 6e 20 74 6f | 20 74 68 65 20 72 65 6d |citon to| the rem|
|00000fb0| 6f 74 65 20 4e 4e 54 50 | 20 73 65 72 76 65 72 2e |ote NNTP| server.|
|00000fc0| 0d 2a 2f 0d 0d 4f 53 45 | 72 72 20 4f 70 65 6e 4e |.*/..OSE|rr OpenN|
|00000fd0| 65 77 73 43 6f 6e 6e 65 | 63 74 69 6f 6e 28 75 6e |ewsConne|ction(un|
|00000fe0| 73 69 67 6e 65 64 20 6c | 6f 6e 67 20 61 64 64 72 |signed l|ong addr|
|00000ff0| 65 73 73 29 0d 7b 0d 09 | 75 6e 73 69 67 6e 65 64 |ess).{..|unsigned|
|00001000| 20 6c 6f 6e 67 20 72 65 | 63 76 4c 65 6e 3b 0d 09 | long re|cvLen;..|
|00001010| 4f 53 45 72 72 20 65 72 | 72 3b 0d 09 0d 09 72 65 |OSErr er|r;....re|
|00001020| 63 76 4c 65 6e 20 3d 20 | 6b 42 75 66 4c 65 6e 3b |cvLen = |kBufLen;|
|00001030| 0d 09 69 66 20 28 28 65 | 72 72 20 3d 20 43 72 65 |..if ((e|rr = Cre|
|00001040| 61 74 65 53 74 72 65 61 | 6d 28 26 67 43 6f 6e 6e |ateStrea|m(&gConn|
|00001050| 49 44 2c 72 65 63 76 4c | 65 6e 29 29 20 21 3d 20 |ID,recvL|en)) != |
|00001060| 6e 6f 45 72 72 29 0d 09 | 09 72 65 74 75 72 6e 20 |noErr)..|.return |
|00001070| 65 72 72 3b 0d 09 69 66 | 20 28 28 65 72 72 20 3d |err;..if| ((err =|
|00001080| 20 4f 70 65 6e 43 6f 6e | 6e 65 63 74 69 6f 6e 28 | OpenCon|nection(|
|00001090| 67 43 6f 6e 6e 49 44 2c | 61 64 64 72 65 73 73 2c |gConnID,|address,|
|000010a0| 6b 4e 4e 54 50 50 6f 72 | 74 2c 31 30 29 29 20 3d |kNNTPPor|t,10)) =|
|000010b0| 3d 20 6e 6f 45 72 72 29 | 0d 09 09 65 72 72 20 3d |= noErr)|...err =|
|000010c0| 20 47 65 74 48 65 6c 6c | 6f 28 29 3b 0d 0d 09 72 | GetHell|o();...r|
|000010d0| 65 74 75 72 6e 20 65 72 | 72 3b 0d 7d 0d 0d 0d 2f |eturn er|r;.}.../|
|000010e0| 2a 09 43 6c 6f 73 65 43 | 6f 6e 6e 65 63 74 69 6f |*.CloseC|onnectio|
|000010f0| 6e 20 63 6c 6f 73 65 73 | 20 74 68 65 20 63 6f 6e |n closes| the con|
|00001100| 6e 65 63 74 69 6f 6e 20 | 74 6f 20 74 68 65 20 4e |nection |to the N|
|00001110| 4e 54 50 20 73 65 72 76 | 65 72 2e 20 20 54 68 69 |NTP serv|er. Thi|
|00001120| 73 20 69 73 20 6e 6f 72 | 6d 61 6c 6c 79 0d 09 63 |s is nor|mally..c|
|00001130| 61 6c 6c 65 64 20 77 68 | 65 6e 20 74 68 65 20 70 |alled wh|en the p|
|00001140| 72 6f 67 72 61 6d 20 69 | 73 20 74 65 72 6d 69 6e |rogram i|s termin|
|00001150| 61 74 69 6e 67 2e 0d 2a | 2f 0d 0d 4f 53 45 72 72 |ating..*|/..OSErr|
|00001160| 20 43 6c 6f 73 65 4e 65 | 77 73 43 6f 6e 6e 65 63 | CloseNe|wsConnec|
|00001170| 74 69 6f 6e 28 76 6f 69 | 64 29 0d 7b 0d 09 4f 53 |tion(voi|d).{..OS|
|00001180| 45 72 72 20 65 72 72 3b | 0d 09 0d 09 53 74 61 74 |Err err;|....Stat|
|00001190| 75 73 57 69 6e 64 6f 77 | 28 22 43 6c 6f 73 69 6e |usWindow|("Closin|
|000011a0| 67 20 4e 4e 54 50 20 43 | 6f 6e 6e 65 63 74 69 6f |g NNTP C|onnectio|
|000011b0| 6e 2e 2e 2e 22 2c 2d 31 | 29 3b 0d 09 65 72 72 20 |n...",-1|);..err |
|000011c0| 3d 20 43 6c 6f 73 65 43 | 6f 6e 6e 65 63 74 69 6f |= CloseC|onnectio|
|000011d0| 6e 28 67 43 6f 6e 6e 49 | 44 29 3b 0d 09 65 72 72 |n(gConnI|D);..err|
|000011e0| 20 3d 20 52 65 6c 65 61 | 73 65 53 74 72 65 61 6d | = Relea|seStream|
|000011f0| 28 67 43 6f 6e 6e 49 44 | 29 3b 0d 09 72 65 74 75 |(gConnID|);..retu|
|00001200| 72 6e 20 65 72 72 3b 0d | 7d 0d 0d 0d 2f 2a 09 41 |rn err;.|}.../*.A|
|00001210| 62 6f 72 74 4e 65 77 73 | 43 6f 6e 6e 65 63 74 69 |bortNews|Connecti|
|00001220| 6f 6e 20 66 6f 72 63 69 | 62 6c 79 20 63 6c 6f 73 |on forci|bly clos|
|00001230| 65 73 20 61 20 63 6f 6e | 6e 65 63 74 69 6f 6e 20 |es a con|nection |
|00001240| 74 6f 20 74 68 65 20 4e | 4e 54 50 20 73 65 72 76 |to the N|NTP serv|
|00001250| 65 72 2c 20 75 73 75 61 | 6c 6c 79 0d 09 62 65 66 |er, usua|lly..bef|
|00001260| 6f 72 65 20 72 65 73 65 | 74 74 69 6e 67 20 74 68 |ore rese|tting th|
|00001270| 65 20 63 6f 6e 6e 65 63 | 74 69 6f 6e 2e 0d 2a 2f |e connec|tion..*/|
|00001280| 0d 0d 4f 53 45 72 72 20 | 41 62 6f 72 74 4e 65 77 |..OSErr |AbortNew|
|00001290| 73 43 6f 6e 6e 65 63 74 | 69 6f 6e 28 76 6f 69 64 |sConnect|ion(void|
|000012a0| 29 0d 7b 0d 09 53 74 61 | 74 75 73 57 69 6e 64 6f |).{..Sta|tusWindo|
|000012b0| 77 28 22 41 62 6f 72 74 | 69 6e 67 20 4e 4e 54 50 |w("Abort|ing NNTP|
|000012c0| 20 43 6f 6e 6e 65 63 74 | 69 6f 6e 2e 2e 2e 22 2c | Connect|ion...",|
|000012d0| 2d 31 29 3b 0d 09 41 62 | 6f 72 74 43 6f 6e 6e 65 |-1);..Ab|ortConne|
|000012e0| 63 74 69 6f 6e 28 67 43 | 6f 6e 6e 49 44 29 3b 0d |ction(gC|onnID);.|
|000012f0| 09 72 65 74 75 72 6e 20 | 52 65 6c 65 61 73 65 53 |.return |ReleaseS|
|00001300| 74 72 65 61 6d 28 67 43 | 6f 6e 6e 49 44 29 3b 0d |tream(gC|onnID);.|
|00001310| 7d 0d 0d 0d 2f 2a 09 47 | 65 74 47 72 6f 75 70 4c |}.../*.G|etGroupL|
|00001320| 69 73 74 20 67 65 74 73 | 20 74 68 65 20 6c 69 73 |ist gets| the lis|
|00001330| 74 20 6f 66 20 61 6c 6c | 20 6b 6e 6f 77 6e 20 6e |t of all| known n|
|00001340| 65 77 73 67 72 6f 75 70 | 73 20 66 72 6f 6d 20 74 |ewsgroup|s from t|
|00001350| 68 65 20 4e 4e 54 50 20 | 73 65 72 76 65 72 2e 0d |he NNTP |server..|
|00001360| 2a 2f 0d 0d 4f 53 45 72 | 72 20 47 65 74 47 72 6f |*/..OSEr|r GetGro|
|00001370| 75 70 4c 69 73 74 28 73 | 68 6f 72 74 20 2a 6e 75 |upList(s|hort *nu|
|00001380| 6d 47 72 6f 75 70 73 29 | 0d 7b 0d 09 4f 53 45 72 |mGroups)|.{..OSEr|
|00001390| 72 20 65 72 72 3b 0d 09 | 63 68 61 72 20 2a 63 75 |r err;..|char *cu|
|000013a0| 72 72 65 6e 74 3b 0d 09 | 63 68 61 72 20 63 75 72 |rrent;..|char cur|
|000013b0| 47 72 6f 75 70 5b 32 35 | 36 5d 3b 0d 09 63 68 61 |Group[25|6];..cha|
|000013c0| 72 20 2a 64 61 74 61 3b | 0d 09 73 68 6f 72 74 20 |r *data;|..short |
|000013d0| 6e 61 6d 65 4c 65 6e 20 | 3d 20 30 3b 0d 09 75 6e |nameLen |= 0;..un|
|000013e0| 73 69 67 6e 65 64 20 73 | 68 6f 72 74 20 6c 65 6e |signed s|hort len|
|000013f0| 67 74 68 20 3d 20 28 75 | 6e 73 69 67 6e 65 64 20 |gth = (u|nsigned |
|00001400| 73 68 6f 72 74 29 20 6b | 42 75 66 4c 65 6e 3b 0d |short) k|BufLen;.|
|00001410| 09 42 6f 6f 6c 65 61 6e | 20 64 6f 6e 65 20 3d 20 |.Boolean| done = |
|00001420| 66 61 6c 73 65 2c 73 74 | 61 72 74 20 3d 20 74 72 |false,st|art = tr|
|00001430| 75 65 3b 0d 09 73 68 6f | 72 74 20 73 74 61 74 65 |ue;..sho|rt state|
|00001440| 20 3d 20 63 4e 6f 72 6d | 61 6c 3b 0d 09 53 74 72 | = cNorm|al;..Str|
|00001450| 32 35 35 20 73 65 6e 64 | 44 61 74 61 5b 32 5d 3b |255 send|Data[2];|
|00001460| 0d 09 0d 09 2a 6e 75 6d | 47 72 6f 75 70 73 20 3d |....*num|Groups =|
|00001470| 20 30 3b 0d 09 6e 61 6d | 65 4c 65 6e 20 3d 20 30 | 0;..nam|eLen = 0|
|00001480| 3b 0d 09 0d 09 73 74 72 | 63 70 79 28 28 63 68 61 |;....str|cpy((cha|
|00001490| 72 20 2a 29 73 65 6e 64 | 44 61 74 61 5b 30 5d 2c |r *)send|Data[0],|
|000014a0| 22 4c 49 53 54 22 29 3b | 0d 09 73 74 72 63 70 79 |"LIST");|..strcpy|
|000014b0| 28 28 63 68 61 72 20 2a | 29 73 65 6e 64 44 61 74 |((char *|)sendDat|
|000014c0| 61 5b 31 5d 2c 43 52 4c | 46 29 3b 0d 09 0d 09 69 |a[1],CRL|F);....i|
|000014d0| 66 20 28 28 65 72 72 20 | 3d 20 53 65 6e 64 4d 75 |f ((err |= SendMu|
|000014e0| 6c 74 69 44 61 74 61 28 | 67 43 6f 6e 6e 49 44 2c |ltiData(|gConnID,|
|000014f0| 73 65 6e 64 44 61 74 61 | 2c 32 2c 74 72 75 65 29 |sendData|,2,true)|
|00001500| 29 20 21 3d 20 6e 6f 45 | 72 72 29 20 7b 0d 09 09 |) != noE|rr) {...|
|00001510| 52 65 73 65 74 43 6f 6e | 6e 65 63 74 69 6f 6e 28 |ResetCon|nection(|
|00001520| 29 3b 0d 09 09 72 65 74 | 75 72 6e 20 65 72 72 3b |);...ret|urn err;|
|00001530| 0d 09 7d 0d 09 0d 09 64 | 61 74 61 20 3d 20 4d 79 |..}....d|ata = My|
|00001540| 4e 65 77 50 74 72 28 6b | 42 75 66 4c 65 6e 29 3b |NewPtr(k|BufLen);|
|00001550| 0d 09 69 66 20 28 4d 79 | 4d 65 6d 45 72 72 28 29 |..if (My|MemErr()|
|00001560| 20 21 3d 20 6e 6f 45 72 | 72 29 0d 09 09 72 65 74 | != noEr|r)...ret|
|00001570| 75 72 6e 20 4d 79 4d 65 | 6d 45 72 72 28 29 3b 0d |urn MyMe|mErr();.|
|00001580| 09 09 0d 09 77 68 69 6c | 65 20 28 20 21 64 6f 6e |....whil|e ( !don|
|00001590| 65 20 26 26 20 28 28 65 | 72 72 20 3d 20 52 65 63 |e && ((e|rr = Rec|
|000015a0| 76 44 61 74 61 28 67 43 | 6f 6e 6e 49 44 2c 64 61 |vData(gC|onnID,da|
|000015b0| 74 61 2c 26 6c 65 6e 67 | 74 68 2c 74 72 75 65 29 |ta,&leng|th,true)|
|000015c0| 29 20 3d 3d 20 6e 6f 45 | 72 72 29 29 20 7b 0d 09 |) == noE|rr)) {..|
|000015d0| 09 66 6f 72 20 28 63 75 | 72 72 65 6e 74 20 3d 20 |.for (cu|rrent = |
|000015e0| 64 61 74 61 3b 20 28 63 | 75 72 72 65 6e 74 20 2d |data; (c|urrent -|
|000015f0| 20 64 61 74 61 29 20 3c | 20 6c 65 6e 67 74 68 3b | data) <| length;|
|00001600| 20 63 75 72 72 65 6e 74 | 2b 2b 29 20 7b 0d 09 09 | current|++) {...|
|00001610| 09 73 77 69 74 63 68 20 | 28 2a 63 75 72 72 65 6e |.switch |(*curren|
|00001620| 74 29 20 7b 0d 09 09 09 | 09 63 61 73 65 20 43 52 |t) {....|.case CR|
|00001630| 3a 0d 09 09 09 09 09 69 | 66 20 28 73 74 61 74 65 |:......i|f (state|
|00001640| 20 3d 3d 20 63 4c 61 73 | 74 44 6f 74 29 0d 09 09 | == cLas|tDot)...|
|00001650| 09 09 09 09 73 74 61 74 | 65 20 3d 20 63 4c 61 73 |....stat|e = cLas|
|00001660| 74 44 6f 74 43 52 3b 0d | 09 09 09 09 09 65 6c 73 |tDotCR;.|.....els|
|00001670| 65 0d 09 09 09 09 09 09 | 73 74 61 74 65 20 3d 20 |e.......|state = |
|00001680| 63 4c 61 73 74 43 52 3b | 0d 09 09 09 09 09 62 72 |cLastCR;|......br|
|00001690| 65 61 6b 3b 0d 09 09 09 | 09 63 61 73 65 20 4c 46 |eak;....|.case LF|
|000016a0| 3a 0d 09 09 09 09 09 69 | 66 20 28 73 74 61 74 65 |:......i|f (state|
|000016b0| 20 3d 3d 20 63 4c 61 73 | 74 43 52 29 20 7b 0d 09 | == cLas|tCR) {..|
|000016c0| 09 09 09 09 09 73 74 61 | 74 65 20 3d 20 63 4c 61 |.....sta|te = cLa|
|000016d0| 73 74 4c 46 3b 0d 09 09 | 09 09 09 09 0d 09 09 09 |stLF;...|........|
|000016e0| 09 09 09 63 75 72 47 72 | 6f 75 70 5b 6e 61 6d 65 |...curGr|oup[name|
|000016f0| 4c 65 6e 5d 20 3d 20 27 | 5c 30 27 3b 0d 09 09 09 |Len] = '|\0';....|
|00001700| 09 09 09 69 66 20 28 28 | 65 72 72 20 3d 20 47 72 |...if ((|err = Gr|
|00001710| 6f 77 44 61 74 61 53 74 | 72 75 63 74 75 72 65 28 |owDataSt|ructure(|
|00001720| 29 29 20 21 3d 20 6e 6f | 45 72 72 29 0d 09 09 09 |)) != no|Err)....|
|00001730| 09 09 09 09 72 65 74 75 | 72 6e 20 65 72 72 3b 0d |....retu|rn err;.|
|00001740| 09 09 09 09 09 09 69 66 | 20 28 50 61 72 73 65 47 |......if| (ParseG|
|00001750| 72 6f 75 70 28 63 75 72 | 47 72 6f 75 70 2c 6e 61 |roup(cur|Group,na|
|00001760| 6d 65 4c 65 6e 2c 26 67 | 47 72 6f 75 70 4c 69 73 |meLen,&g|GroupLis|
|00001770| 74 5b 2a 6e 75 6d 47 72 | 6f 75 70 73 5d 29 29 20 |t[*numGr|oups])) |
|00001780| 7b 0d 09 09 09 09 09 09 | 09 73 74 61 72 74 20 3d |{.......|.start =|
|00001790| 20 66 61 6c 73 65 3b 0d | 09 09 09 09 09 09 09 28 | false;.|.......(|
|000017a0| 2a 6e 75 6d 47 72 6f 75 | 70 73 29 2b 2b 3b 0d 09 |*numGrou|ps)++;..|
|000017b0| 09 09 09 09 09 09 53 74 | 61 74 75 73 57 69 6e 64 |......St|atusWind|
|000017c0| 6f 77 28 22 47 65 74 74 | 69 6e 67 20 47 72 6f 75 |ow("Gett|ing Grou|
|000017d0| 70 73 20 46 72 6f 6d 20 | 4e 65 74 2e 2e 2e 22 2c |ps From |Net...",|
|000017e0| 28 73 68 6f 72 74 29 31 | 2b 28 28 28 66 6c 6f 61 |(short)1|+(((floa|
|000017f0| 74 29 28 2a 6e 75 6d 47 | 72 6f 75 70 73 29 2f 31 |t)(*numG|roups)/1|
|00001800| 31 30 30 2e 30 29 2a 31 | 30 30 29 29 3b 0d 09 09 |100.0)*1|00));...|
|00001810| 09 09 09 09 7d 0d 09 09 | 09 09 09 09 65 6c 73 65 |....}...|....else|
|00001820| 20 69 66 20 28 73 74 61 | 72 74 3d 3d 74 72 75 65 | if (sta|rt==true|
|00001830| 20 26 26 20 63 75 72 47 | 72 6f 75 70 5b 30 5d 21 | && curG|roup[0]!|
|00001840| 3d 27 32 27 29 20 7b 0d | 09 09 09 09 09 09 09 52 |='2') {.|.......R|
|00001850| 65 73 65 74 43 6f 6e 6e | 65 63 74 69 6f 6e 28 29 |esetConn|ection()|
|00001860| 3b 0d 09 09 09 09 09 09 | 09 64 6f 6e 65 3d 74 72 |;.......|.done=tr|
|00001870| 75 65 3b 0d 09 09 09 09 | 09 09 7d 0d 09 09 09 09 |ue;.....|..}.....|
|00001880| 09 09 6e 61 6d 65 4c 65 | 6e 20 3d 20 30 3b 20 0d |..nameLe|n = 0; .|
|00001890| 09 09 09 09 09 09 47 69 | 76 65 54 69 6d 65 28 30 |......Gi|veTime(0|
|000018a0| 29 3b 0d 09 09 09 09 09 | 7d 0d 09 09 09 09 09 65 |);......|}......e|
|000018b0| 6c 73 65 20 69 66 20 28 | 73 74 61 74 65 20 3d 3d |lse if (|state ==|
|000018c0| 20 63 4c 61 73 74 44 6f | 74 43 52 29 20 7b 0d 09 | cLastDo|tCR) {..|
|000018d0| 09 09 09 09 09 64 6f 6e | 65 20 3d 20 74 72 75 65 |.....don|e = true|
|000018e0| 3b 0d 09 09 09 09 09 09 | 73 74 61 74 65 20 3d 20 |;.......|state = |
|000018f0| 63 4c 61 73 74 44 6f 74 | 43 52 4c 46 3b 0d 09 09 |cLastDot|CRLF;...|
|00001900| 09 09 09 7d 0d 09 09 09 | 09 09 62 72 65 61 6b 3b |...}....|..break;|
|00001910| 0d 09 09 09 09 63 61 73 | 65 20 27 2e 27 3a 0d 09 |.....cas|e '.':..|
|00001920| 09 09 09 09 69 66 20 28 | 73 74 61 74 65 20 3d 3d |....if (|state ==|
|00001930| 20 63 4c 61 73 74 4c 46 | 29 0d 09 09 09 09 09 09 | cLastLF|).......|
|00001940| 73 74 61 74 65 20 3d 20 | 63 4c 61 73 74 44 6f 74 |state = |cLastDot|
|00001950| 3b 0d 09 09 09 09 09 65 | 6c 73 65 20 7b 0d 09 09 |;......e|lse {...|
|00001960| 09 09 09 09 73 74 61 74 | 65 20 3d 20 63 4e 6f 72 |....stat|e = cNor|
|00001970| 6d 61 6c 3b 0d 09 09 09 | 09 09 09 63 75 72 47 72 |mal;....|...curGr|
|00001980| 6f 75 70 5b 6e 61 6d 65 | 4c 65 6e 2b 2b 5d 20 3d |oup[name|Len++] =|
|00001990| 20 2a 63 75 72 72 65 6e | 74 3b 0d 09 09 09 09 09 | *curren|t;......|
|000019a0| 7d 0d 09 09 09 09 09 62 | 72 65 61 6b 3b 0d 09 09 |}......b|reak;...|
|000019b0| 09 09 64 65 66 61 75 6c | 74 3a 0d 09 09 09 09 09 |..defaul|t:......|
|000019c0| 73 74 61 74 65 20 3d 20 | 63 4e 6f 72 6d 61 6c 3b |state = |cNormal;|
|000019d0| 0d 09 09 09 09 09 63 75 | 72 47 72 6f 75 70 5b 6e |......cu|rGroup[n|
|000019e0| 61 6d 65 4c 65 6e 2b 2b | 5d 20 3d 20 2a 63 75 72 |ameLen++|] = *cur|
|000019f0| 72 65 6e 74 3b 0d 09 09 | 09 09 09 62 72 65 61 6b |rent;...|...break|
|00001a00| 3b 0d 09 09 09 7d 0d 09 | 09 7d 0d 09 09 6c 65 6e |;....}..|.}...len|
|00001a10| 67 74 68 20 3d 20 28 75 | 6e 73 69 67 6e 65 64 20 |gth = (u|nsigned |
|00001a20| 73 68 6f 72 74 29 20 6b | 42 75 66 4c 65 6e 3b 0d |short) k|BufLen;.|
|00001a30| 09 7d 0d 09 4d 79 44 69 | 73 70 6f 73 50 74 72 28 |.}..MyDi|sposPtr(|
|00001a40| 64 61 74 61 29 3b 0d 09 | 53 65 74 43 75 72 73 6f |data);..|SetCurso|
|00001a50| 72 28 26 51 44 41 52 52 | 4f 57 29 3b 0d 09 0d 09 |r(&QDARR|OW);....|
|00001a60| 69 66 20 28 65 72 72 20 | 21 3d 20 6e 6f 45 72 72 |if (err |!= noErr|
|00001a70| 29 0d 09 09 52 65 73 65 | 74 43 6f 6e 6e 65 63 74 |)...Rese|tConnect|
|00001a80| 69 6f 6e 28 29 3b 0d 09 | 09 0d 09 72 65 74 75 72 |ion();..|...retur|
|00001a90| 6e 20 6e 6f 45 72 72 3b | 0d 7d 0d 0d 0d 2f 2a 09 |n noErr;|.}.../*.|
|00001aa0| 50 61 72 73 65 47 72 6f | 75 70 20 70 61 72 73 65 |ParseGro|up parse|
|00001ab0| 73 20 6f 75 74 20 74 68 | 65 20 6e 61 6d 65 20 6f |s out th|e name o|
|00001ac0| 66 20 61 20 73 70 65 63 | 69 66 69 63 20 67 72 6f |f a spec|ific gro|
|00001ad0| 75 70 20 66 72 6f 6d 20 | 74 68 65 20 72 65 63 65 |up from |the rece|
|00001ae0| 69 76 65 20 62 75 66 66 | 65 72 2e 0d 09 54 68 69 |ive buff|er...Thi|
|00001af0| 73 20 69 73 20 63 61 6c | 6c 65 64 20 6f 6e 63 65 |s is cal|led once|
|00001b00| 20 70 65 72 20 6c 69 6e | 65 20 66 6f 72 20 74 68 | per lin|e for th|
|00001b10| 65 20 62 75 66 66 65 72 | 20 72 65 63 65 69 76 65 |e buffer| receive|
|00001b20| 64 20 61 66 74 65 72 20 | 61 20 27 4c 49 53 54 27 |d after |a 'LIST'|
|00001b30| 20 63 6f 6d 6d 61 6e 64 | 2e 0d 2a 2f 0d 0d 42 6f | command|..*/..Bo|
|00001b40| 6f 6c 65 61 6e 20 50 61 | 72 73 65 47 72 6f 75 70 |olean Pa|rseGroup|
|00001b50| 28 63 68 61 72 20 2a 67 | 72 6f 75 70 53 74 72 69 |(char *g|roupStri|
|00001b60| 6e 67 2c 73 68 6f 72 74 | 20 67 72 6f 75 70 4c 65 |ng,short| groupLe|
|00001b70| 6e 2c 54 47 72 6f 75 70 | 20 2a 67 72 6f 75 70 53 |n,TGroup| *groupS|
|00001b80| 74 6f 72 61 67 65 29 0d | 7b 0d 09 63 68 61 72 20 |torage).|{..char |
|00001b90| 74 6d 70 53 74 72 5b 32 | 35 36 5d 2c 74 6d 70 53 |tmpStr[2|56],tmpS|
|00001ba0| 74 6f 72 65 5b 35 31 32 | 5d 3b 0d 09 63 68 61 72 |tore[512|];..char|
|00001bb0| 20 2a 63 75 72 72 65 6e | 74 2c 2a 74 6d 70 43 75 | *curren|t,*tmpCu|
|00001bc0| 72 72 65 6e 74 3b 0d 09 | 0d 09 69 66 20 28 67 72 |rrent;..|..if (gr|
|00001bd0| 6f 75 70 4c 65 6e 20 3e | 20 30 20 26 26 0d 09 09 |oupLen >| 0 &&...|
|00001be0| 21 28 2a 67 72 6f 75 70 | 53 74 72 69 6e 67 20 3e |!(*group|String >|
|00001bf0| 3d 20 27 30 27 20 26 26 | 20 2a 67 72 6f 75 70 53 |= '0' &&| *groupS|
|00001c00| 74 72 69 6e 67 20 3c 3d | 20 27 39 27 29 20 26 26 |tring <=| '9') &&|
|00001c10| 0d 09 09 2a 67 72 6f 75 | 70 53 74 72 69 6e 67 20 |...*grou|pString |
|00001c20| 21 3d 20 27 2e 27 29 20 | 7b 0d 09 09 09 69 66 20 |!= '.') |{....if |
|00001c30| 28 4d 79 4d 65 6d 45 72 | 72 28 29 20 21 3d 20 6e |(MyMemEr|r() != n|
|00001c40| 6f 45 72 72 29 0d 09 09 | 09 09 72 65 74 75 72 6e |oErr)...|..return|
|00001c50| 20 66 61 6c 73 65 3b 0d | 09 09 09 66 6f 72 20 28 | false;.|...for (|
|00001c60| 63 75 72 72 65 6e 74 20 | 3d 20 67 72 6f 75 70 53 |current |= groupS|
|00001c70| 74 72 69 6e 67 2c 74 6d | 70 43 75 72 72 65 6e 74 |tring,tm|pCurrent|
|00001c80| 3d 74 6d 70 53 74 6f 72 | 65 3b 0d 09 09 09 09 09 |=tmpStor|e;......|
|00001c90| 2a 63 75 72 72 65 6e 74 | 20 21 3d 20 27 20 27 20 |*current| != ' ' |
|00001ca0| 26 26 20 2a 63 75 72 72 | 65 6e 74 3b 0d 09 09 09 |&& *curr|ent;....|
|00001cb0| 09 09 2a 74 6d 70 43 75 | 72 72 65 6e 74 2b 2b 20 |..*tmpCu|rrent++ |
|00001cc0| 3d 20 2a 63 75 72 72 65 | 6e 74 2b 2b 29 3b 0d 09 |= *curre|nt++);..|
|00001cd0| 09 09 2a 74 6d 70 43 75 | 72 72 65 6e 74 20 3d 20 |..*tmpCu|rrent = |
|00001ce0| 27 5c 30 27 3b 0d 09 09 | 09 73 74 72 6e 63 70 79 |'\0';...|.strncpy|
|00001cf0| 28 67 72 6f 75 70 53 74 | 6f 72 61 67 65 2d 3e 6e |(groupSt|orage->n|
|00001d00| 61 6d 65 2c 74 6d 70 53 | 74 6f 72 65 2c 6b 47 4e |ame,tmpS|tore,kGN|
|00001d10| 61 6d 65 4c 65 6e 29 3b | 0d 09 09 09 67 72 6f 75 |ameLen);|....grou|
|00001d20| 70 53 74 6f 72 61 67 65 | 2d 3e 6e 61 6d 65 5b 6b |pStorage|->name[k|
|00001d30| 47 4e 61 6d 65 4c 65 6e | 2d 31 5d 20 3d 20 27 5c |GNameLen|-1] = '\|
|00001d40| 30 27 3b 0d 09 09 09 66 | 6f 72 20 28 63 75 72 72 |0';....f|or (curr|
|00001d50| 65 6e 74 2b 2b 2c 74 6d | 70 43 75 72 72 65 6e 74 |ent++,tm|pCurrent|
|00001d60| 3d 74 6d 70 53 74 72 3b | 0d 09 09 09 09 09 2a 63 |=tmpStr;|......*c|
|00001d70| 75 72 72 65 6e 74 20 21 | 3d 20 27 20 27 20 26 26 |urrent !|= ' ' &&|
|00001d80| 20 2a 63 75 72 72 65 6e | 74 3b 0d 09 09 09 09 09 | *curren|t;......|
|00001d90| 2a 74 6d 70 43 75 72 72 | 65 6e 74 2b 2b 20 3d 20 |*tmpCurr|ent++ = |
|00001da0| 2a 63 75 72 72 65 6e 74 | 2b 2b 29 3b 0d 09 09 09 |*current|++);....|
|00001db0| 2a 74 6d 70 43 75 72 72 | 65 6e 74 20 3d 20 27 5c |*tmpCurr|ent = '\|
|00001dc0| 30 27 3b 0d 09 09 09 53 | 74 72 69 6e 67 54 6f 4e |0';....S|tringToN|
|00001dd0| 75 6d 28 28 53 74 72 69 | 6e 67 50 74 72 29 63 32 |um((Stri|ngPtr)c2|
|00001de0| 70 73 74 72 28 74 6d 70 | 53 74 72 29 2c 26 67 72 |pstr(tmp|Str),&gr|
|00001df0| 6f 75 70 53 74 6f 72 61 | 67 65 2d 3e 6c 61 73 74 |oupStora|ge->last|
|00001e00| 4d 65 73 73 29 3b 0d 09 | 09 09 69 66 20 28 67 72 |Mess);..|..if (gr|
|00001e10| 6f 75 70 53 74 6f 72 61 | 67 65 2d 3e 6c 61 73 74 |oupStora|ge->last|
|00001e20| 4d 65 73 73 20 3d 3d 20 | 30 29 0d 09 09 09 09 67 |Mess == |0).....g|
|00001e30| 72 6f 75 70 53 74 6f 72 | 61 67 65 2d 3e 6c 61 73 |roupStor|age->las|
|00001e40| 74 4d 65 73 73 2b 2b 3b | 0d 09 09 09 09 0d 09 09 |tMess++;|........|
|00001e50| 09 66 6f 72 20 28 63 75 | 72 72 65 6e 74 2b 2b 2c |.for (cu|rrent++,|
|00001e60| 74 6d 70 43 75 72 72 65 | 6e 74 3d 74 6d 70 53 74 |tmpCurre|nt=tmpSt|
|00001e70| 72 3b 0d 09 09 09 09 09 | 2a 63 75 72 72 65 6e 74 |r;......|*current|
|00001e80| 20 21 3d 20 27 20 27 20 | 26 26 20 2a 63 75 72 72 | != ' ' |&& *curr|
|00001e90| 65 6e 74 3b 0d 09 09 09 | 09 09 2a 74 6d 70 43 75 |ent;....|..*tmpCu|
|00001ea0| 72 72 65 6e 74 2b 2b 20 | 3d 20 2a 63 75 72 72 65 |rrent++ |= *curre|
|00001eb0| 6e 74 2b 2b 29 3b 0d 09 | 09 09 2a 74 6d 70 43 75 |nt++);..|..*tmpCu|
|00001ec0| 72 72 65 6e 74 20 3d 20 | 27 5c 30 27 3b 0d 09 09 |rrent = |'\0';...|
|00001ed0| 09 53 74 72 69 6e 67 54 | 6f 4e 75 6d 28 28 53 74 |.StringT|oNum((St|
|00001ee0| 72 69 6e 67 50 74 72 29 | 63 32 70 73 74 72 28 74 |ringPtr)|c2pstr(t|
|00001ef0| 6d 70 53 74 72 29 2c 26 | 67 72 6f 75 70 53 74 6f |mpStr),&|groupSto|
|00001f00| 72 61 67 65 2d 3e 66 69 | 72 73 74 4d 65 73 73 29 |rage->fi|rstMess)|
|00001f10| 3b 0d 09 09 09 69 66 20 | 28 67 72 6f 75 70 53 74 |;....if |(groupSt|
|00001f20| 6f 72 61 67 65 2d 3e 66 | 69 72 73 74 4d 65 73 73 |orage->f|irstMess|
|00001f30| 20 3d 3d 20 30 29 0d 09 | 09 09 09 67 72 6f 75 70 | == 0)..|...group|
|00001f40| 53 74 6f 72 61 67 65 2d | 3e 66 69 72 73 74 4d 65 |Storage-|>firstMe|
|00001f50| 73 73 2b 2b 3b 0d 0d 09 | 09 09 67 72 6f 75 70 53 |ss++;...|..groupS|
|00001f60| 74 6f 72 61 67 65 2d 3e | 73 74 61 74 75 73 20 3d |torage->|status =|
|00001f70| 20 2a 28 63 75 72 72 65 | 6e 74 2b 31 29 3b 0d 09 | *(curre|nt+1);..|
|00001f80| 09 09 0d 09 09 09 69 66 | 20 28 67 72 6f 75 70 53 |......if| (groupS|
|00001f90| 74 6f 72 61 67 65 2d 3e | 73 74 61 74 75 73 20 3d |torage->|status =|
|00001fa0| 3d 20 27 6e 27 29 0d 09 | 09 09 09 72 65 74 75 72 |= 'n')..|...retur|
|00001fb0| 6e 20 66 61 6c 73 65 3b | 0d 09 09 09 0d 09 09 09 |n false;|........|
|00001fc0| 72 65 74 75 72 6e 20 74 | 72 75 65 3b 0d 09 7d 0d |return t|rue;..}.|
|00001fd0| 09 65 6c 73 65 0d 09 09 | 72 65 74 75 72 6e 20 66 |.else...|return f|
|00001fe0| 61 6c 73 65 3b 0d 7d 0d | 0d 0d 2f 2a 09 47 65 74 |alse;.}.|../*.Get|
|00001ff0| 4d 65 73 73 61 67 65 73 | 20 72 65 74 75 72 6e 73 |Messages| returns|
|00002000| 20 74 68 65 20 6c 69 73 | 74 20 6f 66 20 73 75 62 | the lis|t of sub|
|00002010| 6a 65 63 74 73 20 66 72 | 6f 6d 20 61 20 72 61 6e |jects fr|om a ran|
|00002020| 67 65 20 6f 66 20 6d 65 | 73 73 61 67 65 73 20 69 |ge of me|ssages i|
|00002030| 6e 20 61 0d 09 73 70 65 | 63 69 66 69 63 20 6e 65 |n a..spe|cific ne|
|00002040| 77 73 67 72 6f 75 70 2e | 20 20 54 68 69 73 20 72 |wsgroup.| This r|
|00002050| 6f 75 74 69 6e 65 20 69 | 73 73 75 65 73 20 74 68 |outine i|ssues th|
|00002060| 65 20 63 6f 6d 6d 61 6e | 64 20 27 58 48 44 52 20 |e comman|d 'XHDR |
|00002070| 3c 66 69 72 73 74 3e 2d | 3c 6c 61 73 74 3e 27 0d |<first>-|<last>'.|
|00002080| 09 74 6f 20 74 68 65 20 | 72 65 6d 6f 74 65 20 4e |.to the |remote N|
|00002090| 4e 54 50 20 73 65 72 76 | 65 72 2e 0d 2a 2f 0d 0d |NTP serv|er..*/..|
|000020a0| 4f 53 45 72 72 20 47 65 | 74 4d 65 73 73 61 67 65 |OSErr Ge|tMessage|
|000020b0| 73 28 63 68 61 72 20 2a | 6e 65 77 73 47 72 6f 75 |s(char *|newsGrou|
|000020c0| 70 2c 6c 6f 6e 67 20 66 | 69 72 73 74 2c 6c 6f 6e |p,long f|irst,lon|
|000020d0| 67 20 6c 61 73 74 2c 54 | 53 75 62 6a 65 63 74 20 |g last,T|Subject |
|000020e0| 2a 73 75 62 6a 65 63 74 | 73 2c 6c 6f 6e 67 20 2a |*subject|s,long *|
|000020f0| 6e 75 6d 53 75 62 6a 65 | 63 74 73 2c 63 68 61 72 |numSubje|cts,char|
|00002100| 20 2a 68 64 72 4e 61 6d | 65 29 0d 7b 0d 09 50 74 | *hdrNam|e).{..Pt|
|00002110| 72 20 64 61 74 61 3b 0d | 09 42 6f 6f 6c 65 61 6e |r data;.|.Boolean|
|00002120| 20 64 6f 6e 65 20 3d 20 | 66 61 6c 73 65 2c 73 74 | done = |false,st|
|00002130| 61 72 74 3b 0d 09 4f 53 | 45 72 72 20 65 72 72 3b |art;..OS|Err err;|
|00002140| 0d 09 75 6e 73 69 67 6e | 65 64 20 73 68 6f 72 74 |..unsign|ed short|
|00002150| 20 6c 65 6e 67 74 68 3b | 0d 09 63 68 61 72 20 2a | length;|..char *|
|00002160| 63 75 72 72 65 6e 74 2c | 2a 63 75 72 72 65 6e 74 |current,|*current|
|00002170| 32 2c 2a 63 75 72 72 65 | 6e 74 33 2c 63 75 72 53 |2,*curre|nt3,curS|
|00002180| 75 62 6a 65 63 74 5b 31 | 30 32 34 5d 2c 6e 75 6d |ubject[1|024],num|
|00002190| 62 65 72 53 74 72 5b 32 | 35 36 5d 3b 0d 09 73 68 |berStr[2|56];..sh|
|000021a0| 6f 72 74 20 6e 61 6d 65 | 4c 65 6e 3b 0d 09 73 68 |ort name|Len;..sh|
|000021b0| 6f 72 74 20 73 74 61 74 | 65 20 3d 20 63 4e 6f 72 |ort stat|e = cNor|
|000021c0| 6d 61 6c 3b 0d 09 63 68 | 61 72 20 74 6d 70 53 74 |mal;..ch|ar tmpSt|
|000021d0| 72 5b 32 35 36 5d 3b 0d | 09 6c 6f 6e 67 20 61 72 |r[256];.|.long ar|
|000021e0| 74 69 63 6c 65 4e 75 6d | 62 65 72 3b 0d 09 53 74 |ticleNum|ber;..St|
|000021f0| 72 32 35 35 20 73 65 6e | 64 44 61 74 61 5b 37 5d |r255 sen|dData[7]|
|00002200| 3b 0d 09 09 09 0d 09 73 | 74 61 72 74 20 3d 20 74 |;......s|tart = t|
|00002210| 72 75 65 3b 0d 09 6e 61 | 6d 65 4c 65 6e 20 3d 20 |rue;..na|meLen = |
|00002220| 30 3b 0d 09 2a 6e 75 6d | 53 75 62 6a 65 63 74 73 |0;..*num|Subjects|
|00002230| 20 3d 20 30 3b 0d 09 64 | 61 74 61 20 3d 20 4d 79 | = 0;..d|ata = My|
|00002240| 4e 65 77 50 74 72 28 6b | 42 75 66 4c 65 6e 29 3b |NewPtr(k|BufLen);|
|00002250| 0d 09 69 66 20 28 4d 79 | 4d 65 6d 45 72 72 28 29 |..if (My|MemErr()|
|00002260| 20 21 3d 20 6e 6f 45 72 | 72 29 0d 09 09 72 65 74 | != noEr|r)...ret|
|00002270| 75 72 6e 20 4d 79 4d 65 | 6d 45 72 72 28 29 3b 0d |urn MyMe|mErr();.|
|00002280| 0d 09 2f 2a 20 73 65 6e | 64 20 47 52 4f 55 50 20 |../* sen|d GROUP |
|00002290| 3c 67 72 6f 75 70 6e 61 | 6d 65 3e 20 63 6f 6d 6d |<groupna|me> comm|
|000022a0| 61 6e 64 20 2a 2f 20 0d | 09 0d 09 47 69 76 65 54 |and */ .|...GiveT|
|000022b0| 69 6d 65 28 30 29 3b 0d | 0d 09 73 74 72 63 70 79 |ime(0);.|..strcpy|
|000022c0| 28 28 63 68 61 72 20 2a | 29 73 65 6e 64 44 61 74 |((char *|)sendDat|
|000022d0| 61 5b 30 5d 2c 22 47 52 | 4f 55 50 20 22 29 3b 0d |a[0],"GR|OUP ");.|
|000022e0| 09 73 74 72 63 70 79 28 | 28 63 68 61 72 20 2a 29 |.strcpy(|(char *)|
|000022f0| 73 65 6e 64 44 61 74 61 | 5b 31 5d 2c 6e 65 77 73 |sendData|[1],news|
|00002300| 47 72 6f 75 70 29 3b 0d | 09 73 74 72 63 70 79 28 |Group);.|.strcpy(|
|00002310| 28 63 68 61 72 20 2a 29 | 73 65 6e 64 44 61 74 61 |(char *)|sendData|
|00002320| 5b 32 5d 2c 43 52 4c 46 | 29 3b 0d 09 0d 09 69 66 |[2],CRLF|);....if|
|00002330| 20 28 28 65 72 72 20 3d | 20 53 65 6e 64 4d 75 6c | ((err =| SendMul|
|00002340| 74 69 44 61 74 61 28 67 | 43 6f 6e 6e 49 44 2c 73 |tiData(g|ConnID,s|
|00002350| 65 6e 64 44 61 74 61 2c | 33 2c 74 72 75 65 29 29 |endData,|3,true))|
|00002360| 20 21 3d 20 6e 6f 45 72 | 72 29 20 7b 0d 09 09 52 | != noEr|r) {...R|
|00002370| 65 73 65 74 43 6f 6e 6e | 65 63 74 69 6f 6e 28 29 |esetConn|ection()|
|00002380| 3b 0d 09 09 72 65 74 75 | 72 6e 20 65 72 72 3b 0d |;...retu|rn err;.|
|00002390| 09 7d 0d 09 0d 09 47 69 | 76 65 54 69 6d 65 28 30 |.}....Gi|veTime(0|
|000023a0| 29 3b 0d 0d 09 6c 65 6e | 67 74 68 20 3d 20 28 75 |);...len|gth = (u|
|000023b0| 6e 73 69 67 6e 65 64 20 | 73 68 6f 72 74 29 20 6b |nsigned |short) k|
|000023c0| 42 75 66 4c 65 6e 3b 0d | 09 69 66 20 28 28 65 72 |BufLen;.|.if ((er|
|000023d0| 72 20 3d 20 52 65 63 76 | 44 61 74 61 28 67 43 6f |r = Recv|Data(gCo|
|000023e0| 6e 6e 49 44 2c 64 61 74 | 61 2c 26 6c 65 6e 67 74 |nnID,dat|a,&lengt|
|000023f0| 68 2c 74 72 75 65 29 29 | 20 21 3d 20 6e 6f 45 72 |h,true))| != noEr|
|00002400| 72 29 20 7b 0d 09 09 52 | 65 73 65 74 43 6f 6e 6e |r) {...R|esetConn|
|00002410| 65 63 74 69 6f 6e 28 29 | 3b 0d 09 09 72 65 74 75 |ection()|;...retu|
|00002420| 72 6e 20 65 72 72 3b 0d | 09 7d 0d 09 0d 09 69 66 |rn err;.|.}....if|
|00002430| 20 28 2a 64 61 74 61 20 | 21 3d 20 27 32 27 29 20 | (*data |!= '2') |
|00002440| 7b 0d 09 09 52 65 73 65 | 74 43 6f 6e 6e 65 63 74 |{...Rese|tConnect|
|00002450| 69 6f 6e 28 29 3b 0d 09 | 09 72 65 74 75 72 6e 20 |ion();..|.return |
|00002460| 2d 31 3b 0d 09 7d 0d 09 | 0d 09 2f 2a 20 73 65 6e |-1;..}..|../* sen|
|00002470| 64 20 58 48 44 52 20 3c | 68 64 72 4e 61 6d 65 3e |d XHDR <|hdrName>|
|00002480| 20 3c 66 69 72 73 74 3e | 2d 3c 6c 61 73 74 3e 20 | <first>|-<last> |
|00002490| 63 6f 6d 6d 61 6e 64 20 | 2a 2f 0d 09 0d 09 47 69 |command |*/....Gi|
|000024a0| 76 65 54 69 6d 65 28 30 | 29 3b 0d 0d 09 73 74 72 |veTime(0|);...str|
|000024b0| 63 70 79 28 28 63 68 61 | 72 20 2a 29 73 65 6e 64 |cpy((cha|r *)send|
|000024c0| 44 61 74 61 5b 30 5d 2c | 22 58 48 44 52 20 22 29 |Data[0],|"XHDR ")|
|000024d0| 3b 0d 09 73 74 72 63 70 | 79 28 28 63 68 61 72 20 |;..strcp|y((char |
|000024e0| 2a 29 73 65 6e 64 44 61 | 74 61 5b 31 5d 2c 68 64 |*)sendDa|ta[1],hd|
|000024f0| 72 4e 61 6d 65 29 3b 0d | 09 73 74 72 63 70 79 28 |rName);.|.strcpy(|
|00002500| 28 63 68 61 72 20 2a 29 | 73 65 6e 64 44 61 74 61 |(char *)|sendData|
|00002510| 5b 32 5d 2c 22 20 22 29 | 3b 0d 09 4e 75 6d 54 6f |[2]," ")|;..NumTo|
|00002520| 53 74 72 69 6e 67 28 66 | 69 72 73 74 2c 28 53 74 |String(f|irst,(St|
|00002530| 72 69 6e 67 50 74 72 29 | 74 6d 70 53 74 72 29 3b |ringPtr)|tmpStr);|
|00002540| 0d 09 70 32 63 73 74 72 | 28 74 6d 70 53 74 72 29 |..p2cstr|(tmpStr)|
|00002550| 3b 0d 09 73 74 72 63 70 | 79 28 28 63 68 61 72 20 |;..strcp|y((char |
|00002560| 2a 29 73 65 6e 64 44 61 | 74 61 5b 33 5d 2c 74 6d |*)sendDa|ta[3],tm|
|00002570| 70 53 74 72 29 3b 0d 09 | 73 74 72 63 70 79 28 28 |pStr);..|strcpy((|
|00002580| 63 68 61 72 20 2a 29 73 | 65 6e 64 44 61 74 61 5b |char *)s|endData[|
|00002590| 34 5d 2c 22 2d 22 29 3b | 0d 09 4e 75 6d 54 6f 53 |4],"-");|..NumToS|
|000025a0| 74 72 69 6e 67 28 6c 61 | 73 74 2c 28 53 74 72 69 |tring(la|st,(Stri|
|000025b0| 6e 67 50 74 72 29 74 6d | 70 53 74 72 29 3b 0d 09 |ngPtr)tm|pStr);..|
|000025c0| 70 32 63 73 74 72 28 74 | 6d 70 53 74 72 29 3b 0d |p2cstr(t|mpStr);.|
|000025d0| 09 73 74 72 63 70 79 28 | 28 63 68 61 72 20 2a 29 |.strcpy(|(char *)|
|000025e0| 73 65 6e 64 44 61 74 61 | 5b 35 5d 2c 74 6d 70 53 |sendData|[5],tmpS|
|000025f0| 74 72 29 3b 0d 09 73 74 | 72 63 70 79 28 28 63 68 |tr);..st|rcpy((ch|
|00002600| 61 72 20 2a 29 73 65 6e | 64 44 61 74 61 5b 36 5d |ar *)sen|dData[6]|
|00002610| 2c 43 52 4c 46 29 3b 0d | 09 09 0d 09 69 66 20 28 |,CRLF);.|....if (|
|00002620| 28 65 72 72 20 3d 20 53 | 65 6e 64 4d 75 6c 74 69 |(err = S|endMulti|
|00002630| 44 61 74 61 28 67 43 6f | 6e 6e 49 44 2c 73 65 6e |Data(gCo|nnID,sen|
|00002640| 64 44 61 74 61 2c 37 2c | 74 72 75 65 29 29 20 21 |dData,7,|true)) !|
|00002650| 3d 20 6e 6f 45 72 72 29 | 20 7b 0d 09 09 52 65 73 |= noErr)| {...Res|
|00002660| 65 74 43 6f 6e 6e 65 63 | 74 69 6f 6e 28 29 3b 0d |etConnec|tion();.|
|00002670| 09 09 72 65 74 75 72 6e | 20 65 72 72 3b 0d 09 7d |..return| err;..}|
|00002680| 0d 0d 09 47 69 76 65 54 | 69 6d 65 28 30 29 3b 0d |...GiveT|ime(0);.|
|00002690| 09 0d 09 77 68 69 6c 65 | 20 28 20 21 64 6f 6e 65 |...while| ( !done|
|000026a0| 20 26 26 20 28 28 65 72 | 72 20 3d 20 52 65 63 76 | && ((er|r = Recv|
|000026b0| 44 61 74 61 28 67 43 6f | 6e 6e 49 44 2c 64 61 74 |Data(gCo|nnID,dat|
|000026c0| 61 2c 26 6c 65 6e 67 74 | 68 2c 74 72 75 65 29 29 |a,&lengt|h,true))|
|000026d0| 20 3d 3d 20 6e 6f 45 72 | 72 29 29 20 7b 0d 09 09 | == noEr|r)) {...|
|000026e0| 66 6f 72 20 28 63 75 72 | 72 65 6e 74 20 3d 20 64 |for (cur|rent = d|
|000026f0| 61 74 61 3b 20 28 63 75 | 72 72 65 6e 74 20 2d 20 |ata; (cu|rrent - |
|00002700| 64 61 74 61 29 20 3c 20 | 6c 65 6e 67 74 68 3b 20 |data) < |length; |
|00002710| 63 75 72 72 65 6e 74 2b | 2b 29 20 7b 0d 09 09 09 |current+|+) {....|
|00002720| 73 77 69 74 63 68 20 28 | 2a 63 75 72 72 65 6e 74 |switch (|*current|
|00002730| 29 20 7b 0d 09 09 09 09 | 63 61 73 65 20 43 52 3a |) {.....|case CR:|
|00002740| 0d 09 09 09 09 09 69 66 | 20 28 73 74 61 74 65 20 |......if| (state |
|00002750| 3d 3d 20 63 4c 61 73 74 | 44 6f 74 29 0d 09 09 09 |== cLast|Dot)....|
|00002760| 09 09 09 73 74 61 74 65 | 20 3d 20 63 4c 61 73 74 |...state| = cLast|
|00002770| 44 6f 74 43 52 3b 0d 09 | 09 09 09 09 65 6c 73 65 |DotCR;..|....else|
|00002780| 0d 09 09 09 09 09 09 73 | 74 61 74 65 20 3d 20 63 |.......s|tate = c|
|00002790| 4c 61 73 74 43 52 3b 0d | 09 09 09 09 09 62 72 65 |LastCR;.|.....bre|
|000027a0| 61 6b 3b 0d 09 09 09 09 | 63 61 73 65 20 4c 46 3a |ak;.....|case LF:|
|000027b0| 0d 09 09 09 09 09 69 66 | 20 28 73 74 61 74 65 20 |......if| (state |
|000027c0| 3d 3d 20 63 4c 61 73 74 | 43 52 29 20 7b 0d 09 09 |== cLast|CR) {...|
|000027d0| 09 09 09 09 73 74 61 74 | 65 20 3d 20 63 4c 61 73 |....stat|e = cLas|
|000027e0| 74 4c 46 3b 0d 09 09 09 | 09 09 09 0d 09 09 09 09 |tLF;....|........|
|000027f0| 09 09 69 66 20 28 6e 61 | 6d 65 4c 65 6e 20 3e 20 |..if (na|meLen > |
|00002800| 32 35 30 29 0d 09 09 09 | 09 09 09 09 6e 61 6d 65 |250)....|....name|
|00002810| 4c 65 6e 20 3d 20 32 35 | 30 3b 0d 09 09 09 09 09 |Len = 25|0;......|
|00002820| 09 63 75 72 53 75 62 6a | 65 63 74 5b 6e 61 6d 65 |.curSubj|ect[name|
|00002830| 4c 65 6e 5d 20 3d 20 27 | 5c 30 27 3b 0d 09 09 09 |Len] = '|\0';....|
|00002840| 09 09 09 0d 09 09 09 09 | 09 09 69 66 20 28 21 73 |........|..if (!s|
|00002850| 74 61 72 74 20 26 26 20 | 63 75 72 53 75 62 6a 65 |tart && |curSubje|
|00002860| 63 74 5b 30 5d 20 3e 3d | 20 27 30 27 20 26 26 20 |ct[0] >=| '0' && |
|00002870| 63 75 72 53 75 62 6a 65 | 63 74 5b 30 5d 20 3c 3d |curSubje|ct[0] <=|
|00002880| 20 27 39 27 20 26 26 20 | 28 2a 6e 75 6d 53 75 62 | '9' && |(*numSub|
|00002890| 6a 65 63 74 73 20 3c 3d | 20 28 6c 61 73 74 2d 66 |jects <=| (last-f|
|000028a0| 69 72 73 74 29 29 29 20 | 7b 0d 09 09 09 09 09 09 |irst))) |{.......|
|000028b0| 09 09 73 75 62 6a 65 63 | 74 73 5b 2a 6e 75 6d 53 |..subjec|ts[*numS|
|000028c0| 75 62 6a 65 63 74 73 5d | 2e 6e 61 6d 65 20 3d 20 |ubjects]|.name = |
|000028d0| 28 63 68 61 72 20 2a 29 | 20 4d 79 4e 65 77 50 74 |(char *)| MyNewPt|
|000028e0| 72 28 6e 61 6d 65 4c 65 | 6e 2b 32 29 3b 0d 09 09 |r(nameLe|n+2);...|
|000028f0| 09 09 09 09 09 09 69 66 | 20 28 4d 79 4d 65 6d 45 |......if| (MyMemE|
|00002900| 72 72 28 29 20 21 3d 20 | 6e 6f 45 72 72 29 0d 09 |rr() != |noErr)..|
|00002910| 09 09 09 09 09 09 09 09 | 72 65 74 75 72 6e 20 4d |........|return M|
|00002920| 79 4d 65 6d 45 72 72 28 | 29 3b 0d 09 09 09 09 09 |yMemErr(|);......|
|00002930| 09 09 09 73 74 72 6e 63 | 70 79 28 73 75 62 6a 65 |...strnc|py(subje|
|00002940| 63 74 73 5b 2a 6e 75 6d | 53 75 62 6a 65 63 74 73 |cts[*num|Subjects|
|00002950| 5d 2e 6e 61 6d 65 2b 31 | 2c 63 75 72 53 75 62 6a |].name+1|,curSubj|
|00002960| 65 63 74 2c 6e 61 6d 65 | 4c 65 6e 2b 31 29 3b 0d |ect,name|Len+1);.|
|00002970| 09 09 09 09 09 09 09 09 | 2a 28 73 75 62 6a 65 63 |........|*(subjec|
|00002980| 74 73 5b 2a 6e 75 6d 53 | 75 62 6a 65 63 74 73 5d |ts[*numS|ubjects]|
|00002990| 2e 6e 61 6d 65 29 20 3d | 20 27 20 27 3b 0d 09 09 |.name) =| ' ';...|
|000029a0| 09 09 09 09 09 09 0d 09 | 09 09 09 09 09 09 09 66 |........|.......f|
|000029b0| 6f 72 20 28 63 75 72 72 | 65 6e 74 32 20 3d 20 6e |or (curr|ent2 = n|
|000029c0| 75 6d 62 65 72 53 74 72 | 2c 63 75 72 72 65 6e 74 |umberStr|,current|
|000029d0| 33 20 3d 20 63 75 72 53 | 75 62 6a 65 63 74 3b 0d |3 = curS|ubject;.|
|000029e0| 09 09 09 09 09 09 09 09 | 09 09 2a 63 75 72 72 65 |........|..*curre|
|000029f0| 6e 74 33 20 21 3d 20 27 | 20 27 20 26 26 20 2a 63 |nt3 != '| ' && *c|
|00002a00| 75 72 72 65 6e 74 33 3b | 0d 09 09 09 09 09 09 09 |urrent3;|........|
|00002a10| 09 09 09 2a 63 75 72 72 | 65 6e 74 32 2b 2b 20 3d |...*curr|ent2++ =|
|00002a20| 20 2a 63 75 72 72 65 6e | 74 33 2b 2b 29 0d 09 09 | *curren|t3++)...|
|00002a30| 09 09 09 09 09 09 09 3b | 0d 09 09 09 09 09 09 09 |.......;|........|
|00002a40| 09 2a 63 75 72 72 65 6e | 74 32 20 3d 20 27 5c 30 |.*curren|t2 = '\0|
|00002a50| 27 3b 0d 09 09 09 09 09 | 09 09 09 53 74 72 69 6e |';......|...Strin|
|00002a60| 67 54 6f 4e 75 6d 28 28 | 53 74 72 69 6e 67 50 74 |gToNum((|StringPt|
|00002a70| 72 29 63 32 70 73 74 72 | 28 6e 75 6d 62 65 72 53 |r)c2pstr|(numberS|
|00002a80| 74 72 29 2c 26 61 72 74 | 69 63 6c 65 4e 75 6d 62 |tr),&art|icleNumb|
|00002a90| 65 72 29 3b 0d 09 09 09 | 09 09 09 09 09 0d 09 09 |er);....|........|
|00002aa0| 09 09 09 09 09 09 73 75 | 62 6a 65 63 74 73 5b 2a |......su|bjects[*|
|00002ab0| 6e 75 6d 53 75 62 6a 65 | 63 74 73 5d 2e 6e 75 6d |numSubje|cts].num|
|00002ac0| 62 65 72 20 3d 20 61 72 | 74 69 63 6c 65 4e 75 6d |ber = ar|ticleNum|
|00002ad0| 62 65 72 3b 0d 09 09 09 | 09 09 09 09 09 73 75 62 |ber;....|.....sub|
|00002ae0| 6a 65 63 74 73 5b 2a 6e | 75 6d 53 75 62 6a 65 63 |jects[*n|umSubjec|
|00002af0| 74 73 5d 2e 72 65 61 64 | 20 3d 20 66 61 6c 73 65 |ts].read| = false|
|00002b00| 3b 0d 09 09 09 09 09 09 | 09 09 0d 09 09 09 09 09 |;.......|........|
|00002b10| 09 09 09 28 2a 6e 75 6d | 53 75 62 6a 65 63 74 73 |...(*num|Subjects|
|00002b20| 29 2b 2b 3b 0d 09 09 09 | 09 09 09 09 09 53 74 61 |)++;....|.....Sta|
|00002b30| 74 75 73 57 69 6e 64 6f | 77 28 22 47 65 74 74 69 |tusWindo|w("Getti|
|00002b40| 6e 67 20 53 75 62 6a 65 | 63 74 20 4c 69 73 74 2e |ng Subje|ct List.|
|00002b50| 2e 2e 22 2c 28 73 68 6f | 72 74 29 31 2b 28 28 28 |..",(sho|rt)1+(((|
|00002b60| 66 6c 6f 61 74 29 28 31 | 2b 2a 6e 75 6d 53 75 62 |float)(1|+*numSub|
|00002b70| 6a 65 63 74 73 29 2f 28 | 66 6c 6f 61 74 29 28 6c |jects)/(|float)(l|
|00002b80| 61 73 74 2d 66 69 72 73 | 74 29 29 2a 31 30 30 29 |ast-firs|t))*100)|
|00002b90| 29 3b 0d 09 09 09 09 09 | 09 09 09 47 69 76 65 54 |);......|...GiveT|
|00002ba0| 69 6d 65 28 30 29 3b 0d | 0d 09 09 09 09 09 09 7d |ime(0);.|.......}|
|00002bb0| 0d 09 09 09 09 09 09 65 | 6c 73 65 20 69 66 20 28 |.......e|lse if (|
|00002bc0| 73 74 61 72 74 20 26 26 | 20 63 75 72 53 75 62 6a |start &&| curSubj|
|00002bd0| 65 63 74 5b 30 5d 21 3d | 27 32 27 29 20 7b 0d 09 |ect[0]!=|'2') {..|
|00002be0| 09 09 09 09 09 09 53 79 | 73 42 65 65 70 28 31 29 |......Sy|sBeep(1)|
|00002bf0| 3b 0d 09 09 09 09 09 09 | 09 64 6f 6e 65 20 3d 20 |;.......|.done = |
|00002c00| 74 72 75 65 3b 0d 09 09 | 09 09 09 09 7d 0d 09 09 |true;...|....}...|
|00002c10| 09 09 09 09 65 6c 73 65 | 0d 09 09 09 09 09 09 09 |....else|........|
|00002c20| 73 74 61 72 74 20 3d 20 | 66 61 6c 73 65 3b 0d 09 |start = |false;..|
|00002c30| 09 09 09 09 09 09 0d 09 | 09 09 09 09 09 6e 61 6d |........|.....nam|
|00002c40| 65 4c 65 6e 20 3d 20 30 | 3b 20 0d 09 09 09 09 09 |eLen = 0|; ......|
|00002c50| 7d 20 65 6c 73 65 20 69 | 66 20 28 73 74 61 74 65 |} else i|f (state|
|00002c60| 20 3d 3d 20 63 4c 61 73 | 74 44 6f 74 43 52 29 20 | == cLas|tDotCR) |
|00002c70| 7b 0d 09 09 09 09 09 09 | 73 74 61 74 65 20 3d 20 |{.......|state = |
|00002c80| 63 4c 61 73 74 44 6f 74 | 43 52 4c 46 3b 0d 09 09 |cLastDot|CRLF;...|
|00002c90| 09 09 09 09 64 6f 6e 65 | 20 3d 20 74 72 75 65 3b |....done| = true;|
|00002ca0| 0d 09 09 09 09 09 7d 0d | 09 09 09 09 09 62 72 65 |......}.|.....bre|
|00002cb0| 61 6b 3b 0d 09 09 09 09 | 63 61 73 65 20 27 2e 27 |ak;.....|case '.'|
|00002cc0| 3a 0d 09 09 09 09 09 69 | 66 20 28 73 74 61 74 65 |:......i|f (state|
|00002cd0| 20 3d 3d 20 63 4c 61 73 | 74 4c 46 29 0d 09 09 09 | == cLas|tLF)....|
|00002ce0| 09 09 09 73 74 61 74 65 | 20 3d 20 63 4c 61 73 74 |...state| = cLast|
|00002cf0| 44 6f 74 3b 0d 09 09 09 | 09 09 65 6c 73 65 20 7b |Dot;....|..else {|
|00002d00| 0d 09 09 09 09 09 09 73 | 74 61 74 65 20 3d 20 63 |.......s|tate = c|
|00002d10| 4e 6f 72 6d 61 6c 3b 0d | 09 09 09 09 09 09 63 75 |Normal;.|......cu|
|00002d20| 72 53 75 62 6a 65 63 74 | 5b 6e 61 6d 65 4c 65 6e |rSubject|[nameLen|
|00002d30| 2b 2b 5d 20 3d 20 2a 63 | 75 72 72 65 6e 74 3b 0d |++] = *c|urrent;.|
|00002d40| 09 09 09 09 09 7d 0d 09 | 09 09 09 09 62 72 65 61 |.....}..|....brea|
|00002d50| 6b 3b 0d 09 09 09 09 64 | 65 66 61 75 6c 74 3a 0d |k;.....d|efault:.|
|00002d60| 09 09 09 09 09 73 74 61 | 74 65 20 3d 20 63 4e 6f |.....sta|te = cNo|
|00002d70| 72 6d 61 6c 3b 0d 09 09 | 09 09 09 63 75 72 53 75 |rmal;...|...curSu|
|00002d80| 62 6a 65 63 74 5b 6e 61 | 6d 65 4c 65 6e 2b 2b 5d |bject[na|meLen++]|
|00002d90| 20 3d 20 2a 63 75 72 72 | 65 6e 74 3b 0d 09 09 09 | = *curr|ent;....|
|00002da0| 09 09 62 72 65 61 6b 3b | 0d 09 09 09 7d 0d 09 09 |..break;|....}...|
|00002db0| 7d 0d 09 09 6c 65 6e 67 | 74 68 20 3d 20 28 75 6e |}...leng|th = (un|
|00002dc0| 73 69 67 6e 65 64 20 73 | 68 6f 72 74 29 20 6b 42 |signed s|hort) kB|
|00002dd0| 75 66 4c 65 6e 3b 0d 09 | 7d 0d 09 4d 79 44 69 73 |ufLen;..|}..MyDis|
|00002de0| 70 6f 73 50 74 72 28 64 | 61 74 61 29 3b 0d 09 53 |posPtr(d|ata);..S|
|00002df0| 65 74 43 75 72 73 6f 72 | 28 26 51 44 41 52 52 4f |etCursor|(&QDARRO|
|00002e00| 57 29 3b 0d 09 0d 09 69 | 66 20 28 65 72 72 20 21 |W);....i|f (err !|
|00002e10| 3d 20 6e 6f 45 72 72 29 | 0d 09 09 52 65 73 65 74 |= noErr)|...Reset|
|00002e20| 43 6f 6e 6e 65 63 74 69 | 6f 6e 28 29 3b 0d 09 09 |Connecti|on();...|
|00002e30| 0d 09 72 65 74 75 72 6e | 20 6e 6f 45 72 72 3b 0d |..return| noErr;.|
|00002e40| 7d 0d 0d 0d 2f 2a 09 47 | 65 74 41 72 74 69 63 6c |}.../*.G|etArticl|
|00002e50| 65 20 67 65 74 73 20 74 | 68 65 20 66 75 6c 6c 20 |e gets t|he full |
|00002e60| 74 65 78 74 20 66 72 6f | 6d 20 6f 6e 65 20 61 72 |text fro|m one ar|
|00002e70| 74 69 63 6c 65 20 66 72 | 6f 6d 20 74 68 65 20 4e |ticle fr|om the N|
|00002e80| 4e 54 50 20 73 65 72 76 | 65 72 2e 0d 09 54 68 69 |NTP serv|er...Thi|
|00002e90| 73 20 74 65 78 74 20 69 | 73 20 72 65 74 75 72 6e |s text i|s return|
|00002ea0| 65 64 20 69 6e 20 61 20 | 62 75 66 66 65 72 20 77 |ed in a |buffer w|
|00002eb0| 68 69 63 68 20 74 68 65 | 20 72 6f 75 74 69 6e 65 |hich the| routine|
|00002ec0| 20 61 6c 6c 6f 63 61 74 | 65 73 2e 0d 2a 2f 0d 0d | allocat|es..*/..|
|00002ed0| 4f 53 45 72 72 20 47 65 | 74 41 72 74 69 63 6c 65 |OSErr Ge|tArticle|
|00002ee0| 28 63 68 61 72 20 2a 6e | 65 77 73 47 72 6f 75 70 |(char *n|ewsGroup|
|00002ef0| 2c 63 68 61 72 20 2a 61 | 72 74 69 63 6c 65 2c 63 |,char *a|rticle,c|
|00002f00| 68 61 72 20 2a 2a 74 65 | 78 74 2c 6c 6f 6e 67 20 |har **te|xt,long |
|00002f10| 2a 72 65 74 4c 65 6e 67 | 74 68 2c 6c 6f 6e 67 20 |*retLeng|th,long |
|00002f20| 6d 61 78 4c 65 6e 67 74 | 68 29 0d 7b 0d 09 4f 53 |maxLengt|h).{..OS|
|00002f30| 45 72 72 20 65 72 72 3b | 0d 09 50 74 72 20 64 61 |Err err;|..Ptr da|
|00002f40| 74 61 3b 0d 09 75 6e 73 | 69 67 6e 65 64 20 73 68 |ta;..uns|igned sh|
|00002f50| 6f 72 74 20 6c 65 6e 67 | 74 68 3b 0d 09 63 68 61 |ort leng|th;..cha|
|00002f60| 72 20 2a 63 75 72 72 65 | 6e 74 3b 0d 09 42 6f 6f |r *curre|nt;..Boo|
|00002f70| 6c 65 61 6e 20 64 6f 6e | 65 2c 73 74 61 72 74 3b |lean don|e,start;|
|00002f80| 0d 09 73 68 6f 72 74 20 | 73 74 61 74 65 20 3d 20 |..short |state = |
|00002f90| 63 4e 6f 72 6d 61 6c 3b | 0d 09 6c 6f 6e 67 20 74 |cNormal;|..long t|
|00002fa0| 6f 74 61 6c 4c 65 6e 67 | 74 68 20 3d 20 30 3b 0d |otalLeng|th = 0;.|
|00002fb0| 09 53 74 72 32 35 35 20 | 73 65 6e 64 44 61 74 61 |.Str255 |sendData|
|00002fc0| 5b 33 5d 3b 0d 09 48 61 | 6e 64 6c 65 20 74 78 74 |[3];..Ha|ndle txt|
|00002fd0| 48 6e 64 6c 3b 0d 09 6c | 6f 6e 67 20 63 75 72 4d |Hndl;..l|ong curM|
|00002fe0| 61 78 4c 65 6e 3b 0d 09 | 0d 09 74 78 74 48 6e 64 |axLen;..|..txtHnd|
|00002ff0| 6c 20 3d 20 4d 79 4e 65 | 77 48 61 6e 64 6c 65 28 |l = MyNe|wHandle(|
|00003000| 6b 4d 61 78 4c 65 6e 67 | 74 68 29 3b 0d 09 69 66 |kMaxLeng|th);..if|
|00003010| 20 28 4d 79 4d 65 6d 45 | 72 72 28 29 20 21 3d 20 | (MyMemE|rr() != |
|00003020| 6e 6f 45 72 72 29 0d 09 | 09 72 65 74 75 72 6e 20 |noErr)..|.return |
|00003030| 4d 79 4d 65 6d 45 72 72 | 28 29 3b 0d 09 09 0d 09 |MyMemErr|();.....|
|00003040| 63 75 72 4d 61 78 4c 65 | 6e 20 3d 20 6b 4d 61 78 |curMaxLe|n = kMax|
|00003050| 4c 65 6e 67 74 68 3b 0d | 09 48 4c 6f 63 6b 28 74 |Length;.|.HLock(t|
|00003060| 78 74 48 6e 64 6c 29 3b | 0d 09 2a 74 65 78 74 20 |xtHndl);|..*text |
|00003070| 3d 20 2a 74 78 74 48 6e | 64 6c 3b 0d 09 0d 09 73 |= *txtHn|dl;....s|
|00003080| 74 61 72 74 20 3d 20 74 | 72 75 65 3b 0d 09 64 6f |tart = t|rue;..do|
|00003090| 6e 65 20 3d 20 66 61 6c | 73 65 3b 0d 09 0d 09 64 |ne = fal|se;....d|
|000030a0| 61 74 61 20 3d 20 4d 79 | 4e 65 77 50 74 72 28 6b |ata = My|NewPtr(k|
|000030b0| 42 75 66 4c 65 6e 29 3b | 0d 09 69 66 20 28 4d 79 |BufLen);|..if (My|
|000030c0| 4d 65 6d 45 72 72 28 29 | 20 21 3d 20 6e 6f 45 72 |MemErr()| != noEr|
|000030d0| 72 29 0d 09 09 72 65 74 | 75 72 6e 20 4d 79 4d 65 |r)...ret|urn MyMe|
|000030e0| 6d 45 72 72 28 29 3b 0d | 0d 09 69 66 20 28 6e 65 |mErr();.|..if (ne|
|000030f0| 77 73 47 72 6f 75 70 29 | 20 7b 0d 09 09 2f 2a 20 |wsGroup)| {.../* |
|00003100| 73 65 6e 64 20 47 52 4f | 55 50 20 3c 67 72 6f 75 |send GRO|UP <grou|
|00003110| 70 6e 61 6d 65 3e 20 63 | 6f 6d 6d 61 6e 64 20 2a |pname> c|ommand *|
|00003120| 2f 0d 09 09 0d 09 09 47 | 69 76 65 54 69 6d 65 28 |/......G|iveTime(|
|00003130| 30 29 3b 0d 09 0d 09 09 | 73 74 72 63 70 79 28 28 |0);.....|strcpy((|
|00003140| 63 68 61 72 20 2a 29 73 | 65 6e 64 44 61 74 61 5b |char *)s|endData[|
|00003150| 30 5d 2c 22 47 52 4f 55 | 50 20 22 29 3b 0d 09 09 |0],"GROU|P ");...|
|00003160| 73 74 72 63 70 79 28 28 | 63 68 61 72 20 2a 29 73 |strcpy((|char *)s|
|00003170| 65 6e 64 44 61 74 61 5b | 31 5d 2c 6e 65 77 73 47 |endData[|1],newsG|
|00003180| 72 6f 75 70 29 3b 0d 09 | 09 73 74 72 63 70 79 28 |roup);..|.strcpy(|
|00003190| 28 63 68 61 72 20 2a 29 | 73 65 6e 64 44 61 74 61 |(char *)|sendData|
|000031a0| 5b 32 5d 2c 43 52 4c 46 | 29 3b 0d 09 09 0d 09 09 |[2],CRLF|);......|
|000031b0| 69 66 20 28 28 65 72 72 | 20 3d 20 53 65 6e 64 4d |if ((err| = SendM|
|000031c0| 75 6c 74 69 44 61 74 61 | 28 67 43 6f 6e 6e 49 44 |ultiData|(gConnID|
|000031d0| 2c 73 65 6e 64 44 61 74 | 61 2c 33 2c 74 72 75 65 |,sendDat|a,3,true|
|000031e0| 29 29 20 21 3d 20 6e 6f | 45 72 72 29 20 7b 0d 09 |)) != no|Err) {..|
|000031f0| 09 09 52 65 73 65 74 43 | 6f 6e 6e 65 63 74 69 6f |..ResetC|onnectio|
|00003200| 6e 28 29 3b 0d 09 09 09 | 72 65 74 75 72 6e 20 65 |n();....|return e|
|00003210| 72 72 3b 0d 09 09 7d 0d | 09 0d 09 09 47 69 76 65 |rr;...}.|....Give|
|00003220| 54 69 6d 65 28 30 29 3b | 0d 09 0d 09 09 6c 65 6e |Time(0);|.....len|
|00003230| 67 74 68 20 3d 20 28 75 | 6e 73 69 67 6e 65 64 20 |gth = (u|nsigned |
|00003240| 73 68 6f 72 74 29 20 6b | 42 75 66 4c 65 6e 3b 0d |short) k|BufLen;.|
|00003250| 09 09 69 66 20 28 28 65 | 72 72 20 3d 20 52 65 63 |..if ((e|rr = Rec|
|00003260| 76 44 61 74 61 28 67 43 | 6f 6e 6e 49 44 2c 64 61 |vData(gC|onnID,da|
|00003270| 74 61 2c 26 6c 65 6e 67 | 74 68 2c 74 72 75 65 29 |ta,&leng|th,true)|
|00003280| 29 20 21 3d 20 6e 6f 45 | 72 72 29 20 7b 0d 09 09 |) != noE|rr) {...|
|00003290| 09 52 65 73 65 74 43 6f | 6e 6e 65 63 74 69 6f 6e |.ResetCo|nnection|
|000032a0| 28 29 3b 0d 09 09 09 72 | 65 74 75 72 6e 20 65 72 |();....r|eturn er|
|000032b0| 72 3b 0d 09 09 7d 0d 09 | 09 0d 09 09 69 66 20 28 |r;...}..|....if (|
|000032c0| 2a 64 61 74 61 20 21 3d | 20 27 32 27 29 20 7b 0d |*data !=| '2') {.|
|000032d0| 09 09 09 52 65 73 65 74 | 43 6f 6e 6e 65 63 74 69 |...Reset|Connecti|
|000032e0| 6f 6e 28 29 3b 0d 09 09 | 09 72 65 74 75 72 6e 20 |on();...|.return |
|000032f0| 2d 31 3b 0d 09 09 7d 0d | 09 0d 09 7d 0d 09 0d 09 |-1;...}.|...}....|
|00003300| 73 74 72 63 70 79 28 28 | 63 68 61 72 20 2a 29 73 |strcpy((|char *)s|
|00003310| 65 6e 64 44 61 74 61 5b | 30 5d 2c 22 41 52 54 49 |endData[|0],"ARTI|
|00003320| 43 4c 45 20 22 29 3b 0d | 09 73 74 72 63 70 79 28 |CLE ");.|.strcpy(|
|00003330| 28 63 68 61 72 20 2a 29 | 73 65 6e 64 44 61 74 61 |(char *)|sendData|
|00003340| 5b 31 5d 2c 61 72 74 69 | 63 6c 65 29 3b 0d 09 73 |[1],arti|cle);..s|
|00003350| 74 72 63 70 79 28 28 63 | 68 61 72 20 2a 29 73 65 |trcpy((c|har *)se|
|00003360| 6e 64 44 61 74 61 5b 32 | 5d 2c 43 52 4c 46 29 3b |ndData[2|],CRLF);|
|00003370| 0d 09 0d 09 69 66 20 28 | 28 65 72 72 20 3d 20 53 |....if (|(err = S|
|00003380| 65 6e 64 4d 75 6c 74 69 | 44 61 74 61 28 67 43 6f |endMulti|Data(gCo|
|00003390| 6e 6e 49 44 2c 73 65 6e | 64 44 61 74 61 2c 33 2c |nnID,sen|dData,3,|
|000033a0| 74 72 75 65 29 29 20 21 | 3d 20 6e 6f 45 72 72 29 |true)) !|= noErr)|
|000033b0| 20 7b 0d 09 09 52 65 73 | 65 74 43 6f 6e 6e 65 63 | {...Res|etConnec|
|000033c0| 74 69 6f 6e 28 29 3b 0d | 09 09 72 65 74 75 72 6e |tion();.|..return|
|000033d0| 20 65 72 72 3b 0d 09 7d | 0d 09 0d 09 6c 65 6e 67 | err;..}|....leng|
|000033e0| 74 68 20 3d 20 6b 42 75 | 66 4c 65 6e 3b 0d 09 77 |th = kBu|fLen;..w|
|000033f0| 68 69 6c 65 20 28 20 21 | 64 6f 6e 65 20 26 26 20 |hile ( !|done && |
|00003400| 28 28 65 72 72 20 3d 20 | 52 65 63 76 44 61 74 61 |((err = |RecvData|
|00003410| 28 67 43 6f 6e 6e 49 44 | 2c 64 61 74 61 2c 26 6c |(gConnID|,data,&l|
|00003420| 65 6e 67 74 68 2c 74 72 | 75 65 29 29 20 3d 3d 20 |ength,tr|ue)) == |
|00003430| 6e 6f 45 72 72 29 29 20 | 7b 0d 09 09 66 6f 72 20 |noErr)) |{...for |
|00003440| 28 63 75 72 72 65 6e 74 | 20 3d 20 64 61 74 61 3b |(current| = data;|
|00003450| 20 28 63 75 72 72 65 6e | 74 20 2d 20 64 61 74 61 | (curren|t - data|
|00003460| 29 20 3c 20 6c 65 6e 67 | 74 68 3b 20 63 75 72 72 |) < leng|th; curr|
|00003470| 65 6e 74 2b 2b 29 20 7b | 0d 09 09 09 69 66 20 28 |ent++) {|....if (|
|00003480| 74 6f 74 61 6c 4c 65 6e | 67 74 68 20 3e 3d 20 63 |totalLen|gth >= c|
|00003490| 75 72 4d 61 78 4c 65 6e | 20 26 26 20 74 6f 74 61 |urMaxLen| && tota|
|000034a0| 6c 4c 65 6e 67 74 68 20 | 3c 20 28 6d 61 78 4c 65 |lLength |< (maxLe|
|000034b0| 6e 67 74 68 2d 6b 4d 61 | 78 4c 65 6e 67 74 68 29 |ngth-kMa|xLength)|
|000034c0| 29 20 7b 0d 09 09 09 09 | 63 75 72 4d 61 78 4c 65 |) {.....|curMaxLe|
|000034d0| 6e 20 2b 3d 20 6b 4d 61 | 78 4c 65 6e 67 74 68 3b |n += kMa|xLength;|
|000034e0| 0d 09 09 09 09 48 55 6e | 6c 6f 63 6b 28 74 78 74 |.....HUn|lock(txt|
|000034f0| 48 6e 64 6c 29 3b 0d 09 | 09 09 09 4d 79 53 65 74 |Hndl);..|...MySet|
|00003500| 48 61 6e 64 6c 65 53 69 | 7a 65 28 74 78 74 48 6e |HandleSi|ze(txtHn|
|00003510| 64 6c 2c 63 75 72 4d 61 | 78 4c 65 6e 29 3b 0d 09 |dl,curMa|xLen);..|
|00003520| 09 09 09 69 66 20 28 28 | 65 72 72 20 3d 20 4d 79 |...if ((|err = My|
|00003530| 4d 65 6d 45 72 72 28 29 | 29 20 21 3d 20 6e 6f 45 |MemErr()|) != noE|
|00003540| 72 72 29 20 7b 0d 09 09 | 09 09 09 4d 79 44 69 73 |rr) {...|...MyDis|
|00003550| 70 6f 73 48 61 6e 64 6c | 65 28 74 78 74 48 6e 64 |posHandl|e(txtHnd|
|00003560| 6c 29 3b 0d 09 09 09 09 | 09 4d 79 44 69 73 70 6f |l);.....|.MyDispo|
|00003570| 73 50 74 72 28 64 61 74 | 61 29 3b 0d 09 09 09 09 |sPtr(dat|a);.....|
|00003580| 09 72 65 74 75 72 6e 20 | 65 72 72 3b 0d 09 09 09 |.return |err;....|
|00003590| 09 7d 0d 09 09 09 09 09 | 0d 09 09 09 09 48 4c 6f |.}......|.....HLo|
|000035a0| 63 6b 28 74 78 74 48 6e | 64 6c 29 3b 0d 09 09 09 |ck(txtHn|dl);....|
|000035b0| 09 2a 74 65 78 74 20 3d | 20 2a 74 78 74 48 6e 64 |.*text =| *txtHnd|
|000035c0| 6c 3b 0d 09 09 09 7d 0d | 09 09 09 73 77 69 74 63 |l;....}.|...switc|
|000035d0| 68 20 28 2a 63 75 72 72 | 65 6e 74 29 20 7b 0d 09 |h (*curr|ent) {..|
|000035e0| 09 09 09 63 61 73 65 20 | 43 52 3a 0d 09 09 09 09 |...case |CR:.....|
|000035f0| 09 69 66 20 28 73 74 61 | 74 65 20 3d 3d 20 63 4c |.if (sta|te == cL|
|00003600| 61 73 74 44 6f 74 29 0d | 09 09 09 09 09 09 73 74 |astDot).|......st|
|00003610| 61 74 65 20 3d 20 63 4c | 61 73 74 44 6f 74 43 52 |ate = cL|astDotCR|
|00003620| 3b 0d 09 09 09 09 09 65 | 6c 73 65 0d 09 09 09 09 |;......e|lse.....|
|00003630| 09 09 73 74 61 74 65 20 | 3d 20 63 4c 61 73 74 43 |..state |= cLastC|
|00003640| 52 3b 0d 09 09 09 09 09 | 69 66 20 28 21 73 74 61 |R;......|if (!sta|
|00003650| 72 74 29 20 7b 0d 09 09 | 09 09 09 09 69 66 20 28 |rt) {...|....if (|
|00003660| 74 6f 74 61 6c 4c 65 6e | 67 74 68 20 3c 20 6d 61 |totalLen|gth < ma|
|00003670| 78 4c 65 6e 67 74 68 29 | 0d 09 09 09 09 09 09 09 |xLength)|........|
|00003680| 28 2a 74 65 78 74 29 5b | 74 6f 74 61 6c 4c 65 6e |(*text)[|totalLen|
|00003690| 67 74 68 2b 2b 5d 20 3d | 20 2a 63 75 72 72 65 6e |gth++] =| *curren|
|000036a0| 74 3b 0d 09 09 09 09 09 | 7d 0d 09 09 09 09 09 62 |t;......|}......b|
|000036b0| 72 65 61 6b 3b 0d 09 09 | 09 09 63 61 73 65 20 4c |reak;...|..case L|
|000036c0| 46 3a 0d 09 09 09 09 09 | 69 66 20 28 73 74 61 74 |F:......|if (stat|
|000036d0| 65 20 3d 3d 20 63 4c 61 | 73 74 43 52 29 20 7b 0d |e == cLa|stCR) {.|
|000036e0| 09 09 09 09 09 09 73 74 | 61 72 74 20 3d 20 66 61 |......st|art = fa|
|000036f0| 6c 73 65 3b 0d 09 09 09 | 09 09 09 73 74 61 74 65 |lse;....|...state|
|00003700| 20 3d 20 63 4c 61 73 74 | 4c 46 3b 0d 09 09 09 09 | = cLast|LF;.....|
|00003710| 09 7d 0d 09 09 09 09 09 | 65 6c 73 65 20 69 66 20 |.}......|else if |
|00003720| 28 73 74 61 74 65 20 3d | 3d 20 63 4c 61 73 74 44 |(state =|= cLastD|
|00003730| 6f 74 43 52 29 20 7b 0d | 09 09 09 09 09 09 73 74 |otCR) {.|......st|
|00003740| 61 74 65 20 3d 20 63 4c | 61 73 74 44 6f 74 43 52 |ate = cL|astDotCR|
|00003750| 4c 46 3b 0d 09 09 09 09 | 09 09 64 6f 6e 65 20 3d |LF;.....|..done =|
|00003760| 20 74 72 75 65 3b 0d 09 | 09 09 09 09 7d 0d 09 09 | true;..|....}...|
|00003770| 09 09 09 62 72 65 61 6b | 3b 0d 09 09 09 09 63 61 |...break|;.....ca|
|00003780| 73 65 20 27 2e 27 3a 0d | 09 09 09 09 09 69 66 20 |se '.':.|.....if |
|00003790| 28 73 74 61 74 65 20 3d | 3d 20 63 4c 61 73 74 4c |(state =|= cLastL|
|000037a0| 46 29 0d 09 09 09 09 09 | 09 73 74 61 74 65 20 3d |F)......|.state =|
|000037b0| 20 63 4c 61 73 74 44 6f | 74 3b 0d 09 09 09 09 09 | cLastDo|t;......|
|000037c0| 65 6c 73 65 20 69 66 20 | 28 21 73 74 61 72 74 29 |else if |(!start)|
|000037d0| 20 7b 0d 09 09 09 09 09 | 09 73 74 61 74 65 20 3d | {......|.state =|
|000037e0| 20 63 4e 6f 72 6d 61 6c | 3b 0d 09 09 09 09 09 09 | cNormal|;.......|
|000037f0| 69 66 20 28 74 6f 74 61 | 6c 4c 65 6e 67 74 68 20 |if (tota|lLength |
|00003800| 3c 20 6d 61 78 4c 65 6e | 67 74 68 29 0d 09 09 09 |< maxLen|gth)....|
|00003810| 09 09 09 09 28 2a 74 65 | 78 74 29 5b 74 6f 74 61 |....(*te|xt)[tota|
|00003820| 6c 4c 65 6e 67 74 68 2b | 2b 5d 20 3d 20 2a 63 75 |lLength+|+] = *cu|
|00003830| 72 72 65 6e 74 3b 0d 09 | 09 09 09 09 7d 0d 09 09 |rrent;..|....}...|
|00003840| 09 09 09 62 72 65 61 6b | 3b 0d 09 09 09 09 64 65 |...break|;.....de|
|00003850| 66 61 75 6c 74 3a 0d 09 | 09 09 09 09 69 66 20 28 |fault:..|....if (|
|00003860| 21 73 74 61 72 74 29 20 | 7b 0d 09 09 09 09 09 09 |!start) |{.......|
|00003870| 73 74 61 74 65 20 3d 20 | 63 4e 6f 72 6d 61 6c 3b |state = |cNormal;|
|00003880| 0d 09 09 09 09 09 09 69 | 66 20 28 74 6f 74 61 6c |.......i|f (total|
|00003890| 4c 65 6e 67 74 68 20 3c | 20 6d 61 78 4c 65 6e 67 |Length <| maxLeng|
|000038a0| 74 68 29 0d 09 09 09 09 | 09 09 09 28 2a 74 65 78 |th).....|...(*tex|
|000038b0| 74 29 5b 74 6f 74 61 6c | 4c 65 6e 67 74 68 2b 2b |t)[total|Length++|
|000038c0| 5d 20 3d 20 2a 63 75 72 | 72 65 6e 74 3b 0d 09 09 |] = *cur|rent;...|
|000038d0| 09 09 09 7d 0d 09 09 09 | 09 09 65 6c 73 65 20 69 |...}....|..else i|
|000038e0| 66 20 28 64 61 74 61 5b | 30 5d 21 3d 27 32 27 29 |f (data[|0]!='2')|
|000038f0| 0d 09 09 09 09 09 09 64 | 6f 6e 65 20 3d 20 74 72 |.......d|one = tr|
|00003900| 75 65 3b 0d 09 09 09 09 | 09 62 72 65 61 6b 3b 0d |ue;.....|.break;.|
|00003910| 09 09 09 7d 0d 09 09 7d | 0d 09 09 6c 65 6e 67 74 |...}...}|...lengt|
|00003920| 68 20 3d 20 28 75 6e 73 | 69 67 6e 65 64 20 73 68 |h = (uns|igned sh|
|00003930| 6f 72 74 29 20 6b 42 75 | 66 4c 65 6e 3b 0d 09 09 |ort) kBu|fLen;...|
|00003940| 47 69 76 65 54 69 6d 65 | 28 30 29 3b 0d 09 7d 0d |GiveTime|(0);..}.|
|00003950| 09 53 65 74 43 75 72 73 | 6f 72 28 26 51 44 41 52 |.SetCurs|or(&QDAR|
|00003960| 52 4f 57 29 3b 0d 09 2a | 72 65 74 4c 65 6e 67 74 |ROW);..*|retLengt|
|00003970| 68 20 3d 20 74 6f 74 61 | 6c 4c 65 6e 67 74 68 3b |h = tota|lLength;|
|00003980| 0d 09 0d 09 4d 79 44 69 | 73 70 6f 73 50 74 72 28 |....MyDi|sposPtr(|
|00003990| 64 61 74 61 29 3b 0d 09 | 0d 09 48 55 6e 6c 6f 63 |data);..|..HUnloc|
|000039a0| 6b 28 74 78 74 48 6e 64 | 6c 29 3b 0d 09 2a 74 65 |k(txtHnd|l);..*te|
|000039b0| 78 74 20 3d 20 4d 79 4e | 65 77 50 74 72 28 74 6f |xt = MyN|ewPtr(to|
|000039c0| 74 61 6c 4c 65 6e 67 74 | 68 29 3b 0d 09 69 66 20 |talLengt|h);..if |
|000039d0| 28 28 65 72 72 20 3d 20 | 4d 79 4d 65 6d 45 72 72 |((err = |MyMemErr|
|000039e0| 28 29 29 20 21 3d 20 6e | 6f 45 72 72 29 20 7b 0d |()) != n|oErr) {.|
|000039f0| 09 09 4d 79 44 69 73 70 | 6f 73 48 61 6e 64 6c 65 |..MyDisp|osHandle|
|00003a00| 28 74 78 74 48 6e 64 6c | 29 3b 0d 09 09 72 65 74 |(txtHndl|);...ret|
|00003a10| 75 72 6e 20 65 72 72 3b | 0d 09 7d 0d 09 48 4c 6f |urn err;|..}..HLo|
|00003a20| 63 6b 28 74 78 74 48 6e | 64 6c 29 3b 0d 09 42 6c |ck(txtHn|dl);..Bl|
|00003a30| 6f 63 6b 4d 6f 76 65 28 | 2a 74 78 74 48 6e 64 6c |ockMove(|*txtHndl|
|00003a40| 2c 2a 74 65 78 74 2c 74 | 6f 74 61 6c 4c 65 6e 67 |,*text,t|otalLeng|
|00003a50| 74 68 29 3b 0d 09 48 55 | 6e 6c 6f 63 6b 28 74 78 |th);..HU|nlock(tx|
|00003a60| 74 48 6e 64 6c 29 3b 0d | 09 4d 79 44 69 73 70 6f |tHndl);.|.MyDispo|
|00003a70| 73 48 61 6e 64 6c 65 28 | 74 78 74 48 6e 64 6c 29 |sHandle(|txtHndl)|
|00003a80| 3b 0d 09 0d 09 69 66 20 | 28 65 72 72 20 21 3d 20 |;....if |(err != |
|00003a90| 6e 6f 45 72 72 29 0d 09 | 09 52 65 73 65 74 43 6f |noErr)..|.ResetCo|
|00003aa0| 6e 6e 65 63 74 69 6f 6e | 28 29 3b 0d 09 09 09 0d |nnection|();.....|
|00003ab0| 09 72 65 74 75 72 6e 20 | 6e 6f 45 72 72 3b 0d 7d |.return |noErr;.}|
|00003ac0| 0d 0d 0d 2f 2a 09 53 65 | 6e 64 4e 4e 54 50 20 70 |.../*.Se|ndNNTP p|
|00003ad0| 6f 73 74 73 20 61 20 6e | 65 77 73 20 61 72 74 69 |osts a n|ews arti|
|00003ae0| 63 6c 65 20 74 6f 20 61 | 20 6e 65 77 73 67 72 6f |cle to a| newsgro|
|00003af0| 75 70 20 75 73 69 6e 67 | 20 74 68 65 20 27 50 4f |up using| the 'PO|
|00003b00| 53 54 27 20 63 6f 6d 6d | 61 6e 64 0d 09 6f 6e 20 |ST' comm|and..on |
|00003b10| 74 68 65 20 4e 4e 54 50 | 20 73 65 72 76 65 72 2e |the NNTP| server.|
|00003b20| 0d 2a 2f 0d 0d 42 6f 6f | 6c 65 61 6e 20 53 65 6e |.*/..Boo|lean Sen|
|00003b30| 64 4e 4e 54 50 28 63 68 | 61 72 20 2a 74 65 78 74 |dNNTP(ch|ar *text|
|00003b40| 2c 75 6e 73 69 67 6e 65 | 64 20 73 68 6f 72 74 20 |,unsigne|d short |
|00003b50| 74 4c 65 6e 67 74 68 29 | 0d 7b 0d 09 65 78 74 65 |tLength)|.{..exte|
|00003b60| 72 6e 20 75 6e 73 69 67 | 6e 65 64 20 6c 6f 6e 67 |rn unsig|ned long|
|00003b70| 20 67 43 6f 6e 6e 49 44 | 3b 0d 09 50 74 72 20 64 | gConnID|;..Ptr d|
|00003b80| 61 74 61 3b 0d 09 75 6e | 73 69 67 6e 65 64 20 73 |ata;..un|signed s|
|00003b90| 68 6f 72 74 20 6c 65 6e | 67 74 68 3b 0d 09 42 6f |hort len|gth;..Bo|
|00003ba0| 6f 6c 65 61 6e 20 72 65 | 73 75 6c 74 3b 0d 09 63 |olean re|sult;..c|
|00003bb0| 68 61 72 20 63 6f 6d 6d | 53 74 72 5b 32 35 36 5d |har comm|Str[256]|
|00003bc0| 3b 0d 09 0d 09 73 74 72 | 63 70 79 28 63 6f 6d 6d |;....str|cpy(comm|
|00003bd0| 53 74 72 2c 22 50 4f 53 | 54 22 29 3b 0d 09 73 74 |Str,"POS|T");..st|
|00003be0| 72 63 61 74 28 63 6f 6d | 6d 53 74 72 2c 43 52 4c |rcat(com|mStr,CRL|
|00003bf0| 46 29 3b 0d 09 0d 09 69 | 66 20 28 53 65 6e 64 44 |F);....i|f (SendD|
|00003c00| 61 74 61 28 67 43 6f 6e | 6e 49 44 2c 63 6f 6d 6d |ata(gCon|nID,comm|
|00003c10| 53 74 72 2c 36 2c 66 61 | 6c 73 65 29 20 21 3d 20 |Str,6,fa|lse) != |
|00003c20| 6e 6f 45 72 72 29 0d 09 | 09 72 65 74 75 72 6e 20 |noErr)..|.return |
|00003c30| 66 61 6c 73 65 3b 0d 09 | 0d 09 64 61 74 61 20 3d |false;..|..data =|
|00003c40| 20 4d 79 4e 65 77 50 74 | 72 28 32 35 36 29 3b 0d | MyNewPt|r(256);.|
|00003c50| 09 69 66 20 28 4d 79 4d | 65 6d 45 72 72 28 29 20 |.if (MyM|emErr() |
|00003c60| 21 3d 20 6e 6f 45 72 72 | 29 0d 09 09 72 65 74 75 |!= noErr|)...retu|
|00003c70| 72 6e 20 66 61 6c 73 65 | 3b 0d 09 0d 09 73 74 72 |rn false|;....str|
|00003c80| 63 70 79 28 63 6f 6d 6d | 53 74 72 2c 43 52 4c 46 |cpy(comm|Str,CRLF|
|00003c90| 29 3b 0d 09 73 74 72 63 | 61 74 28 63 6f 6d 6d 53 |);..strc|at(commS|
|00003ca0| 74 72 2c 22 2e 22 29 3b | 0d 09 73 74 72 63 61 74 |tr,".");|..strcat|
|00003cb0| 28 63 6f 6d 6d 53 74 72 | 2c 43 52 4c 46 29 3b 0d |(commStr|,CRLF);.|
|00003cc0| 09 0d 09 6c 65 6e 67 74 | 68 20 3d 20 32 30 30 3b |...lengt|h = 200;|
|00003cd0| 0d 09 69 66 20 28 52 65 | 63 76 44 61 74 61 28 67 |..if (Re|cvData(g|
|00003ce0| 43 6f 6e 6e 49 44 2c 64 | 61 74 61 2c 26 6c 65 6e |ConnID,d|ata,&len|
|00003cf0| 67 74 68 2c 66 61 6c 73 | 65 29 20 3d 3d 20 6e 6f |gth,fals|e) == no|
|00003d00| 45 72 72 20 26 26 0d 09 | 09 73 74 72 6e 63 6d 70 |Err &&..|.strncmp|
|00003d10| 28 64 61 74 61 2c 22 33 | 22 2c 31 29 3d 3d 30 20 |(data,"3|",1)==0 |
|00003d20| 26 26 0d 09 09 53 65 6e | 64 44 61 74 61 28 67 43 |&&...Sen|dData(gC|
|00003d30| 6f 6e 6e 49 44 2c 74 65 | 78 74 2c 74 4c 65 6e 67 |onnID,te|xt,tLeng|
|00003d40| 74 68 2c 66 61 6c 73 65 | 29 20 3d 3d 20 6e 6f 45 |th,false|) == noE|
|00003d50| 72 72 20 26 26 0d 09 09 | 53 65 6e 64 44 61 74 61 |rr &&...|SendData|
|00003d60| 28 67 43 6f 6e 6e 49 44 | 2c 63 6f 6d 6d 53 74 72 |(gConnID|,commStr|
|00003d70| 2c 35 2c 66 61 6c 73 65 | 29 20 3d 3d 20 6e 6f 45 |,5,false|) == noE|
|00003d80| 72 72 20 26 26 0d 09 09 | 28 6c 65 6e 67 74 68 20 |rr &&...|(length |
|00003d90| 3d 20 32 30 30 2c 20 74 | 72 75 65 29 20 26 26 0d |= 200, t|rue) &&.|
|00003da0| 09 09 52 65 63 76 44 61 | 74 61 28 67 43 6f 6e 6e |..RecvDa|ta(gConn|
|00003db0| 49 44 2c 64 61 74 61 2c | 26 6c 65 6e 67 74 68 2c |ID,data,|&length,|
|00003dc0| 66 61 6c 73 65 29 20 3d | 3d 20 6e 6f 45 72 72 20 |false) =|= noErr |
|00003dd0| 26 26 0d 09 09 73 74 72 | 6e 63 6d 70 28 64 61 74 |&&...str|ncmp(dat|
|00003de0| 61 2c 22 32 22 2c 31 29 | 3d 3d 30 29 0d 09 09 09 |a,"2",1)|==0)....|
|00003df0| 72 65 73 75 6c 74 20 3d | 20 74 72 75 65 3b 0d 09 |result =| true;..|
|00003e00| 65 6c 73 65 20 7b 0d 09 | 09 72 65 73 75 6c 74 20 |else {..|.result |
|00003e10| 3d 20 66 61 6c 73 65 3b | 0d 09 7d 0d 09 4d 79 44 |= false;|..}..MyD|
|00003e20| 69 73 70 6f 73 50 74 72 | 28 64 61 74 61 29 3b 0d |isposPtr|(data);.|
|00003e30| 09 72 65 74 75 72 6e 20 | 74 72 75 65 3b 0d 7d 0d |.return |true;.}.|
|00003e40| 0d 0d 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00003e50| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00003e60| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00003e70| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00003e80| 00 00 01 00 00 00 02 94 | 00 00 01 94 00 00 00 4a |........|.......J|
|00003e90| 1f ff 4e ad 02 b2 e5 80 | 22 71 08 00 1f 11 3f 3c |..N.....|"q....?<|
|00003ea0| 00 ff 4e ad 02 ba 70 3f | 20 d9 51 c8 ff fc 42 67 |..N...p?| .Q...Bg|
|00003eb0| 09 6e 6e 74 70 6c 6f 77 | 2e 63 02 00 00 00 50 61 |.nntplow|.c....Pa|
|00003ec0| 72 74 53 49 54 78 00 00 | 00 00 00 00 00 00 00 01 |rtSITx..|........|
|00003ed0| 00 00 50 61 72 74 53 49 | 54 78 00 00 00 00 00 00 |..PartSI|Tx......|
|00003ee0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00003ef0| 00 00 a9 8d 49 79 00 00 | 00 00 00 00 02 de fe fc |....Iy..|........|
|00003f00| 2f 2e 00 08 4e ba 1f 20 | 10 1f 66 3a 48 6d f6 06 |/...N.. |..f:Hm..|
|00003f10| 48 7a 04 40 42 67 4e ad | 0a ea 48 6d f6 06 20 6d |Hz.@BgN.|..Hm.. m|
|00003f20| f5 e6 2f 10 42 67 4e ad | 0a ea 48 6d f6 06 48 7a |../.BgN.|..Hm..Hz|
|00003f30| 04 e0 42 67 4e ad 0a ea | 48 6d f6 06 4e ad 0a d2 |..BgN...|Hm..N...|
|00003f40| 1b 7c 00 01 c4 63 20 6d | f5 e6 22 6e 00 08 30 11 |.|...c m|.."n..0.|
|00003f50| 48 c0 2f 00 42 a7 2f 3c | 00 00 1f ff 4e ad 02 b2 |H./.B./<|....N...|
|00003f60| e5 80 20 70 08 00 1f 10 | 3f 3c 00 7f 4e ad 02 ba |.. p....|?<..N...|
|00003f70| 43 ed c3 b6 70 1f 22 d8 | 51 c8 ff fc 60 00 03 9a |C...p.".|Q...`...|
|00003f80| 00 00 00 48 00 09 4d 6f | 6e 61 63 6f 00 ff 00 3f |...H..Mo|naco...?|
|00003f90| 00 00 00 14 00 01 a6 b4 | 00 0a 00 00 00 00 00 00 |........|........|
|00003fa0| 00 00 00 46 00 00 00 06 | 00 04 00 4e 00 4a 01 db |...F....|...N.J..|
|00003fb0| 02 67 00 86 00 8b 02 13 | 02 a8 a4 0a af 83 00 00 |.g......|........|
|00003fc0| 07 fb 00 00 07 fb 00 00 | 07 b2 01 00 00 00 01 22 |........|......."|
|00003fd0| 00 0d 00 00 05 6c 00 00 | 05 7d 11 47 72 6f 77 44 |.....l..|.}.GrowD|
|00003fe0| 61 74 61 53 74 72 75 63 | 74 75 72 65 00 00 07 95 |ataStruc|ture....|
|00003ff0| 00 00 07 9e 09 53 74 61 | 72 74 4e 4e 54 50 00 00 |.....Sta|rtNNTP..|
|00004000| 0a 2c 00 00 0a 34 09 49 | 6e 69 74 4e 4e 54 50 00 |.,...4.I|nitNNTP.|
|00004010| 00 00 0b 73 00 00 0b 82 | 0f 52 65 73 65 74 43 6f |...s....|.ResetCo|
|00004020| 6e 6e 65 63 74 69 6f 6e | 00 00 0d f8 00 00 0e 00 |nnection|........|
|00004030| 09 47 65 74 48 65 6c 6c | 6f 00 00 00 0f 62 00 00 |.GetHell|o....b..|
|00004040| 0f 74 13 4f 70 65 6e 4e | 65 77 73 43 6f 6e 6e 65 |.t.OpenN|ewsConne|
|00004050| 63 74 69 6f 6e 00 00 00 | 10 f8 00 00 11 0b 13 43 |ction...|.......C|
|00004060| 6c 6f 73 65 4e 65 77 73 | 43 6f 6e 6e 65 63 74 69 |loseNews|Connecti|
|00004070| 6f 6e 00 00 11 ff 00 00 | 12 12 13 41 62 6f 72 74 |on......|...Abort|
|00004080| 4e 65 77 73 43 6f 6e 6e | 65 63 74 69 6f 6e 00 00 |NewsConn|ection..|
|00004090| 12 e1 00 00 12 ed 0d 47 | 65 74 47 72 6f 75 70 4c |.......G|etGroupL|
|000040a0| 69 73 74 00 00 00 1a ad | 00 00 1a b7 0b 50 61 72 |ist.....|.....Par|
|000040b0| 73 65 47 72 6f 75 70 00 | 00 00 1f f7 00 00 20 02 |seGroup.|...... .|
|000040c0| 0b 47 65 74 4d 65 73 73 | 61 67 65 73 00 00 2d b6 |.GetMess|ages..-.|
|000040d0| 00 00 2d c0 0b 47 65 74 | 41 72 74 69 63 6c 65 00 |..-..Get|Article.|
|000040e0| 00 00 39 dd 00 00 39 e5 | 09 53 65 6e 64 4e 4e 54 |..9...9.|.SendNNT|
|000040f0| 50 00 00 00 00 1e 00 4e | 00 4a 01 db 02 67 00 86 |P......N|.J...g..|
|00004100| 00 8b 02 13 02 a8 00 00 | 07 b2 00 00 00 00 00 00 |........|........|
|00004110| 00 00 00 00 00 00 01 00 | 00 00 02 94 00 00 01 94 |........|........|
|00004120| 00 00 00 4a 00 43 15 b0 | 04 c8 00 00 00 1c 00 4a |...J.C..|.......J|
|00004130| 00 00 4d 50 53 52 00 02 | 00 0a 03 ed ff ff 00 00 |..MPSR..|........|
|00004140| 00 00 00 00 00 00 03 ef | ff ff 00 00 00 4c 00 00 |........|.....L..|
|00004150| 00 00 03 f0 ff ff 00 00 | 01 72 00 44 fa 7c 00 00 |........|.r.D.|..|
|00004160| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00004170| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
+--------+-------------------------+-------------------------+--------+--------+