home *** CD-ROM | disk | FTP | other *** search
open in:
MacOS 8.1
|
Win98
|
DOS
view JSON data
|
view as text
This file was processed as: SHell self-extracting ARchive
(archive/shar).
You can browse this item here: 3626
Confidence | Program | Detection | Match Type | Support
|
---|
100%
| dexvert
| Newsgroup Content (archive/news)
| magic
| Supported |
100%
| dexvert
| SHell self-extracting ARchive (archive/shar)
| magic
| Supported |
100%
| dexvert
| Internet Message Format (text/imf)
| magic
| Supported |
1%
| dexvert
| Text File (text/txt)
| fallback
| Supported |
100%
| file
| news or mail, ASCII text
| default
| |
100%
| TrID
| E-Mail message (Var. 2)
| default
| |
100%
| checkBytes
| Printable ASCII
| default
| |
100%
| perlTextCheck
| Likely Text (Perl)
| default
| |
100%
| siegfried
| fmt/329 Shell Archive Format
| default
| |
100%
| detectItEasy
| Format: plain text[LF]
| default (weak)
| |
100%
| xdgMime
| message/rfc822
| default
|
|
hex view+--------+-------------------------+-------------------------+--------+--------+
|00000000| 46 72 6f 6d 3a 20 63 6c | 69 70 70 65 72 40 63 73 |From: cl|ipper@cs|
|00000010| 64 2e 75 77 6f 2e 63 61 | 20 28 4b 68 75 6e 20 59 |d.uwo.ca| (Khun Y|
|00000020| 65 65 20 46 75 6e 67 29 | 0a 4e 65 77 73 67 72 6f |ee Fung)|.Newsgro|
|00000030| 75 70 73 3a 20 61 6c 74 | 2e 73 6f 75 72 63 65 73 |ups: alt|.sources|
|00000040| 0a 53 75 62 6a 65 63 74 | 3a 20 56 65 72 73 69 6f |.Subject|: Versio|
|00000050| 6e 20 32 20 6f 66 20 61 | 72 63 68 69 65 20 63 6c |n 2 of a|rchie cl|
|00000060| 69 65 6e 74 20 69 6e 20 | 50 65 72 6c 0a 4d 65 73 |ient in |Perl.Mes|
|00000070| 73 61 67 65 2d 49 44 3a | 20 3c 39 31 30 37 31 34 |sage-ID:| <910714|
|00000080| 30 38 34 36 2e 41 41 32 | 30 32 38 37 40 6e 6f 39 |0846.AA2|0287@no9|
|00000090| 73 75 6e 2e 63 73 64 2e | 75 77 6f 2e 63 61 3e 0a |sun.csd.|uwo.ca>.|
|000000a0| 44 61 74 65 3a 20 31 34 | 20 4a 75 6c 20 39 31 20 |Date: 14| Jul 91 |
|000000b0| 30 38 3a 34 36 3a 32 39 | 20 47 4d 54 0a 0a 49 20 |08:46:29| GMT..I |
|000000c0| 63 68 61 6e 67 65 64 20 | 61 20 6c 6f 74 20 6f 66 |changed |a lot of|
|000000d0| 20 74 68 69 6e 67 73 20 | 74 68 69 73 20 74 69 6d | things |this tim|
|000000e0| 65 2e 20 54 68 65 72 65 | 20 69 73 20 61 6c 73 6f |e. There| is also|
|000000f0| 20 61 20 72 75 64 69 6d | 65 6e 74 61 72 79 0a 6d | a rudim|entary.m|
|00000100| 61 6e 75 61 6c 20 70 61 | 67 65 2c 20 61 6e 64 20 |anual pa|ge, and |
|00000110| 61 6e 20 65 78 61 6d 70 | 6c 65 20 66 69 6c 65 2e |an examp|le file.|
|00000120| 20 49 20 68 61 76 65 20 | 61 6c 73 6f 20 61 64 64 | I have |also add|
|00000130| 65 64 20 61 20 73 74 61 | 72 74 75 70 20 66 69 6c |ed a sta|rtup fil|
|00000140| 65 0a 66 61 63 69 6c 69 | 74 79 20 73 6f 20 74 68 |e.facili|ty so th|
|00000150| 61 74 20 61 20 75 73 65 | 72 20 63 61 6e 20 70 75 |at a use|r can pu|
|00000160| 74 20 68 69 73 2f 68 65 | 72 20 64 65 66 61 75 6c |t his/he|r defaul|
|00000170| 74 73 20 69 6e 20 74 68 | 65 20 66 69 6c 65 20 61 |ts in th|e file a|
|00000180| 6e 64 20 64 6f 65 73 0a | 6e 6f 74 20 6e 65 65 64 |nd does.|not need|
|00000190| 20 74 6f 20 73 70 65 63 | 69 66 79 20 74 68 65 6d | to spec|ify them|
|000001a0| 20 65 76 65 72 79 20 74 | 69 6d 65 20 6f 6e 20 74 | every t|ime on t|
|000001b0| 68 65 20 63 6f 6d 6d 61 | 6e 64 20 6c 69 6e 65 2e |he comma|nd line.|
|000001c0| 20 54 68 65 20 66 6f 72 | 6d 61 74 0a 73 74 72 69 | The for|mat.stri|
|000001d0| 6e 67 20 66 61 63 69 6c | 69 74 79 20 68 61 73 20 |ng facil|ity has |
|000001e0| 62 65 65 6e 20 72 65 77 | 72 69 74 74 65 6e 20 63 |been rew|ritten c|
|000001f0| 6f 6d 70 6c 65 74 65 6c | 79 2e 20 49 20 68 61 76 |ompletel|y. I hav|
|00000200| 65 20 63 6f 6d 6d 65 6e | 74 65 64 20 74 68 65 0a |e commen|ted the.|
|00000210| 63 6f 64 65 20 73 6f 20 | 79 6f 75 20 63 61 6e 20 |code so |you can |
|00000220| 72 65 61 64 20 74 68 65 | 20 63 6f 64 65 20 61 6e |read the| code an|
|00000230| 64 20 6b 6e 6f 77 20 77 | 68 61 74 20 49 20 77 61 |d know w|hat I wa|
|00000240| 73 20 74 72 79 69 6e 67 | 20 74 6f 20 64 6f 2e 0a |s trying| to do..|
|00000250| 0a 48 6f 77 65 76 65 72 | 2c 20 49 20 73 74 69 6c |.However|, I stil|
|00000260| 6c 20 68 61 76 65 20 61 | 20 66 65 77 20 71 75 65 |l have a| few que|
|00000270| 73 74 69 6f 6e 73 20 61 | 62 6f 75 74 20 74 68 65 |stions a|bout the|
|00000280| 20 70 72 6f 73 70 65 72 | 6f 20 73 6f 20 49 20 77 | prosper|o so I w|
|00000290| 69 6c 6c 20 73 61 79 0a | 74 68 69 73 20 76 65 72 |ill say.|this ver|
|000002a0| 73 69 6f 6e 20 69 73 20 | 62 65 74 77 65 65 6e 20 |sion is |between |
|000002b0| 61 20 61 6c 70 68 61 20 | 61 6e 64 20 61 20 62 65 |a alpha |and a be|
|000002c0| 74 61 20 72 65 6c 65 61 | 73 65 2e 0a 0a 49 20 74 |ta relea|se...I t|
|000002d0| 72 69 65 64 20 74 68 65 | 20 70 72 6f 67 72 61 6d |ried the| program|
|000002e0| 20 6f 6e 20 62 6f 74 68 | 20 4d 49 50 53 20 61 6e | on both| MIPS an|
|000002f0| 64 20 53 65 71 75 65 6e | 74 20 73 79 6d 6d 65 74 |d Sequen|t symmet|
|00000300| 72 79 2e 20 42 6f 74 68 | 20 77 65 72 65 20 6f 6b |ry. Both| were ok|
|00000310| 61 79 2e 0a 49 6e 20 61 | 64 64 69 74 69 6f 6e 20 |ay..In a|ddition |
|00000320| 74 6f 20 53 75 6e 20 33 | 2c 20 74 68 65 73 65 20 |to Sun 3|, these |
|00000330| 61 72 65 20 74 68 65 20 | 6f 6e 6c 79 20 6d 61 63 |are the |only mac|
|00000340| 68 69 6e 65 73 20 49 20 | 68 61 76 65 20 61 63 63 |hines I |have acc|
|00000350| 65 73 73 20 74 6f 0a 28 | 65 76 65 6e 20 74 68 65 |ess to.(|even the|
|00000360| 20 4d 49 50 53 20 6d 61 | 63 68 69 6e 65 20 61 63 | MIPS ma|chine ac|
|00000370| 63 6f 75 6e 74 20 49 20 | 68 61 64 20 74 6f 20 62 |count I |had to b|
|00000380| 6f 72 72 6f 77 20 66 72 | 6f 6d 20 61 20 66 72 69 |orrow fr|om a fri|
|00000390| 65 6e 64 29 2e 20 53 6f | 2c 20 69 66 0a 79 6f 75 |end). So|, if.you|
|000003a0| 20 74 72 69 65 64 20 69 | 74 20 6f 6e 20 79 6f 75 | tried i|t on you|
|000003b0| 72 20 6d 61 63 68 69 6e | 65 20 61 6e 64 20 74 68 |r machin|e and th|
|000003c0| 65 20 70 72 6f 67 72 61 | 6d 20 64 6f 65 73 20 6e |e progra|m does n|
|000003d0| 6f 74 20 77 6f 72 6b 2c | 20 70 6c 65 61 73 65 0a |ot work,| please.|
|000003e0| 73 65 6e 64 20 6d 65 20 | 63 6f 6d 6d 65 6e 74 73 |send me |comments|
|000003f0| 20 61 6e 64 20 62 75 67 | 20 72 65 70 6f 72 74 73 | and bug| reports|
|00000400| 2e 0a 0a 54 68 61 6e 6b | 73 0a 0a 23 21 20 2f 62 |...Thank|s..#! /b|
|00000410| 69 6e 2f 73 68 0a 23 20 | 54 68 69 73 20 69 73 20 |in/sh.# |This is |
|00000420| 61 20 73 68 65 6c 6c 20 | 61 72 63 68 69 76 65 2e |a shell |archive.|
|00000430| 20 20 52 65 6d 6f 76 65 | 20 61 6e 79 74 68 69 6e | Remove| anythin|
|00000440| 67 20 62 65 66 6f 72 65 | 20 74 68 69 73 20 6c 69 |g before| this li|
|00000450| 6e 65 2c 20 74 68 65 6e | 20 75 6e 70 61 63 6b 0a |ne, then| unpack.|
|00000460| 23 20 69 74 20 62 79 20 | 73 61 76 69 6e 67 20 69 |# it by |saving i|
|00000470| 74 20 69 6e 74 6f 20 61 | 20 66 69 6c 65 20 61 6e |t into a| file an|
|00000480| 64 20 74 79 70 69 6e 67 | 20 22 73 68 20 66 69 6c |d typing| "sh fil|
|00000490| 65 22 2e 20 20 54 6f 20 | 6f 76 65 72 77 72 69 74 |e". To |overwrit|
|000004a0| 65 20 65 78 69 73 74 69 | 6e 67 0a 23 20 66 69 6c |e existi|ng.# fil|
|000004b0| 65 73 2c 20 74 79 70 65 | 20 22 73 68 20 66 69 6c |es, type| "sh fil|
|000004c0| 65 20 2d 63 22 2e 20 20 | 59 6f 75 20 63 61 6e 20 |e -c". |You can |
|000004d0| 61 6c 73 6f 20 66 65 65 | 64 20 74 68 69 73 20 61 |also fee|d this a|
|000004e0| 73 20 73 74 61 6e 64 61 | 72 64 20 69 6e 70 75 74 |s standa|rd input|
|000004f0| 20 76 69 61 0a 23 20 75 | 6e 73 68 61 72 2c 20 6f | via.# u|nshar, o|
|00000500| 72 20 62 79 20 74 79 70 | 69 6e 67 20 22 73 68 20 |r by typ|ing "sh |
|00000510| 3c 66 69 6c 65 22 2c 20 | 65 2e 67 2e 2e 20 20 49 |<file", |e.g.. I|
|00000520| 66 20 74 68 69 73 20 61 | 72 63 68 69 76 65 20 69 |f this a|rchive i|
|00000530| 73 20 63 6f 6d 70 6c 65 | 74 65 2c 20 79 6f 75 0a |s comple|te, you.|
|00000540| 23 20 77 69 6c 6c 20 73 | 65 65 20 74 68 65 20 66 |# will s|ee the f|
|00000550| 6f 6c 6c 6f 77 69 6e 67 | 20 6d 65 73 73 61 67 65 |ollowing| message|
|00000560| 20 61 74 20 74 68 65 20 | 65 6e 64 3a 0a 23 09 09 | at the |end:.#..|
|00000570| 22 45 6e 64 20 6f 66 20 | 73 68 65 6c 6c 20 61 72 |"End of |shell ar|
|00000580| 63 68 69 76 65 2e 22 0a | 23 20 43 6f 6e 74 65 6e |chive.".|# Conten|
|00000590| 74 73 3a 20 20 52 45 41 | 44 4d 45 20 61 72 63 68 |ts: REA|DME arch|
|000005a0| 69 65 2e 66 69 6c 65 73 | 20 61 72 63 68 69 65 20 |ie.files| archie |
|000005b0| 61 72 63 68 69 65 2e 6c | 20 73 6f 63 6b 65 74 2e |archie.l| socket.|
|000005c0| 68 20 72 65 73 6f 6c 76 | 65 72 2e 70 6c 0a 23 20 |h resolv|er.pl.# |
|000005d0| 20 20 6e 65 77 67 65 74 | 6f 70 74 2e 70 6c 20 61 | newget|opt.pl a|
|000005e0| 72 63 68 69 65 2e 64 65 | 70 65 6e 64 20 61 72 63 |rchie.de|pend arc|
|000005f0| 68 69 65 2e 65 78 61 6d | 70 6c 65 73 20 44 4f 54 |hie.exam|ples DOT|
|00000600| 2e 61 72 63 68 69 65 72 | 63 0a 23 20 57 72 61 70 |.archier|c.# Wrap|
|00000610| 70 65 64 20 62 79 20 63 | 6c 69 70 70 65 72 40 6e |ped by c|lipper@n|
|00000620| 6f 39 73 75 6e 20 6f 6e | 20 53 75 6e 20 4a 75 6c |o9sun on| Sun Jul|
|00000630| 20 31 34 20 30 34 3a 32 | 34 3a 31 31 20 31 39 39 | 14 04:2|4:11 199|
|00000640| 31 0a 50 41 54 48 3d 2f | 62 69 6e 3a 2f 75 73 72 |1.PATH=/|bin:/usr|
|00000650| 2f 62 69 6e 3a 2f 75 73 | 72 2f 75 63 62 20 3b 20 |/bin:/us|r/ucb ; |
|00000660| 65 78 70 6f 72 74 20 50 | 41 54 48 0a 69 66 20 74 |export P|ATH.if t|
|00000670| 65 73 74 20 2d 66 20 27 | 52 45 41 44 4d 45 27 20 |est -f '|README' |
|00000680| 2d 61 20 22 24 7b 31 7d | 22 20 21 3d 20 22 2d 63 |-a "${1}|" != "-c|
|00000690| 22 20 3b 20 74 68 65 6e | 20 0a 20 20 65 63 68 6f |" ; then| . echo|
|000006a0| 20 73 68 61 72 3a 20 57 | 69 6c 6c 20 6e 6f 74 20 | shar: W|ill not |
|000006b0| 63 6c 6f 62 62 65 72 20 | 65 78 69 73 74 69 6e 67 |clobber |existing|
|000006c0| 20 66 69 6c 65 20 5c 22 | 27 52 45 41 44 4d 45 27 | file \"|'README'|
|000006d0| 5c 22 0a 65 6c 73 65 0a | 65 63 68 6f 20 73 68 61 |\".else.|echo sha|
|000006e0| 72 3a 20 45 78 74 72 61 | 63 74 69 6e 67 20 5c 22 |r: Extra|cting \"|
|000006f0| 27 52 45 41 44 4d 45 27 | 5c 22 20 5c 28 32 37 31 |'README'|\" \(271|
|00000700| 31 20 63 68 61 72 61 63 | 74 65 72 73 5c 29 0a 73 |1 charac|ters\).s|
|00000710| 65 64 20 22 73 2f 5e 58 | 2f 2f 22 20 3e 27 52 45 |ed "s/^X|//" >'RE|
|00000720| 41 44 4d 45 27 20 3c 3c | 27 45 4e 44 5f 4f 46 5f |ADME' <<|'END_OF_|
|00000730| 46 49 4c 45 27 0a 58 23 | 20 43 6f 70 79 72 69 67 |FILE'.X#| Copyrig|
|00000740| 68 74 20 28 43 29 20 4b | 68 75 6e 20 59 65 65 20 |ht (C) K|hun Yee |
|00000750| 46 75 6e 67 20 63 6c 69 | 70 70 65 72 40 63 73 64 |Fung cli|pper@csd|
|00000760| 2e 75 77 6f 2e 63 61 0a | 58 23 20 59 6f 75 20 63 |.uwo.ca.|X# You c|
|00000770| 61 6e 20 64 6f 20 61 6e | 79 74 68 69 6e 67 20 74 |an do an|ything t|
|00000780| 6f 20 74 68 69 73 20 70 | 72 6f 67 72 61 6d 20 65 |o this p|rogram e|
|00000790| 78 63 65 70 74 20 73 65 | 6c 6c 69 6e 67 20 69 74 |xcept se|lling it|
|000007a0| 20 66 6f 72 20 70 72 6f | 66 69 74 20 6f 72 0a 58 | for pro|fit or.X|
|000007b0| 23 20 70 72 65 74 65 6e | 64 69 6e 67 20 79 6f 75 |# preten|ding you|
|000007c0| 20 77 72 6f 74 65 20 69 | 74 2e 0a 58 23 20 24 49 | wrote i|t..X# $I|
|000007d0| 64 3a 20 52 45 41 44 4d | 45 2c 76 20 31 2e 31 20 |d: READM|E,v 1.1 |
|000007e0| 31 39 39 31 2f 30 37 2f | 31 34 20 30 38 3a 32 31 |1991/07/|14 08:21|
|000007f0| 3a 34 30 20 63 6c 69 70 | 70 65 72 20 45 78 70 20 |:40 clip|per Exp |
|00000800| 63 6c 69 70 70 65 72 20 | 24 0a 58 0a 58 54 68 69 |clipper |$.X.XThi|
|00000810| 73 20 69 73 20 61 20 61 | 72 63 68 69 65 20 63 6c |s is a a|rchie cl|
|00000820| 69 65 6e 74 20 77 72 69 | 74 74 65 6e 20 69 6e 20 |ient wri|tten in |
|00000830| 50 65 72 6c 20 75 73 69 | 6e 67 20 74 68 65 20 70 |Perl usi|ng the p|
|00000840| 72 6f 73 70 65 72 6f 20 | 70 72 6f 74 6f 63 6f 6c |rospero |protocol|
|00000850| 2e 0a 58 49 74 20 69 73 | 20 73 74 61 6e 64 61 6c |..XIt is| standal|
|00000860| 6f 6e 65 20 77 69 74 68 | 20 6e 6f 20 64 65 70 65 |one with| no depe|
|00000870| 6e 64 61 6e 63 65 20 6f | 6e 20 74 68 65 20 70 72 |ndance o|n the pr|
|00000880| 6f 73 70 65 72 6f 20 63 | 6f 64 65 20 69 6e 0a 58 |ospero c|ode in.X|
|00000890| 70 72 6f 73 70 65 72 6f | 2e 74 61 72 2e 5a 20 6f |prospero|.tar.Z o|
|000008a0| 6e 20 6a 75 6e 65 2e 63 | 73 2e 77 61 73 68 69 6e |n june.c|s.washin|
|000008b0| 67 74 6f 6e 2e 65 64 75 | 2e 20 49 20 61 6d 20 6e |gton.edu|. I am n|
|000008c0| 6f 74 20 73 75 72 65 20 | 74 68 69 73 20 70 72 6f |ot sure |this pro|
|000008d0| 67 72 61 6d 0a 58 69 73 | 20 75 73 65 66 75 6c 20 |gram.Xis| useful |
|000008e0| 61 73 20 74 68 65 72 65 | 20 69 73 20 61 6c 73 6f |as there| is also|
|000008f0| 20 61 20 73 74 61 6e 64 | 61 6c 6f 6e 65 20 61 72 | a stand|alone ar|
|00000900| 63 68 69 65 20 70 72 6f | 67 72 61 6d 20 69 6e 20 |chie pro|gram in |
|00000910| 74 68 61 74 20 66 69 6c | 65 0a 58 61 72 63 68 69 |that fil|e.Xarchi|
|00000920| 76 65 2c 20 65 78 63 65 | 70 74 20 74 68 61 74 20 |ve, exce|pt that |
|00000930| 79 6f 75 20 68 61 76 65 | 20 74 6f 20 63 6f 6d 70 |you have| to comp|
|00000940| 69 6c 65 20 74 68 65 20 | 70 72 6f 70 65 72 6f 20 |ile the |propero |
|00000950| 66 69 6c 65 20 73 79 73 | 74 65 6d 20 74 6f 6f 2e |file sys|tem too.|
|00000960| 0a 58 41 6e 79 68 6f 77 | 2e 0a 58 0a 58 54 6f 20 |.XAnyhow|..X.XTo |
|00000970| 73 74 61 72 74 20 74 68 | 69 6e 67 73 20 6f 66 66 |start th|ings off|
|00000980| 2c 20 6d 6f 64 69 66 79 | 20 74 68 65 20 66 69 6c |, modify| the fil|
|00000990| 65 20 61 72 63 68 69 65 | 2e 64 65 70 65 6e 64 2e |e archie|.depend.|
|000009a0| 20 59 6f 75 20 73 68 6f | 75 6c 64 20 61 6c 73 6f | You sho|uld also|
|000009b0| 0a 58 6d 6f 76 65 20 61 | 72 63 68 69 65 20 69 6e |.Xmove a|rchie in|
|000009c0| 20 74 68 65 20 64 69 72 | 65 63 74 6f 72 79 20 77 | the dir|ectory w|
|000009d0| 68 65 72 65 20 79 6f 75 | 20 73 74 6f 72 65 20 79 |here you| store y|
|000009e0| 6f 75 20 70 65 72 6c 20 | 73 63 72 69 70 74 73 2e |ou perl |scripts.|
|000009f0| 20 54 68 65 0a 58 6c 69 | 62 72 61 72 79 20 66 69 | The.Xli|brary fi|
|00000a00| 6c 65 73 20 73 68 6f 75 | 6c 64 20 62 65 20 69 6e |les shou|ld be in|
|00000a10| 20 74 68 65 20 70 65 72 | 6c 20 6c 69 62 72 61 72 | the per|l librar|
|00000a20| 79 2e 0a 58 0a 58 41 73 | 20 49 20 64 6f 6e 27 74 |y..X.XAs| I don't|
|00000a30| 20 68 61 76 65 20 61 20 | 66 75 6c 6c 20 64 6f 63 | have a |full doc|
|00000a40| 75 6d 65 6e 74 20 6f 66 | 20 74 68 65 20 70 72 6f |ument of| the pro|
|00000a50| 70 65 72 6f 2c 20 73 6f | 6d 65 20 6f 66 20 74 68 |pero, so|me of th|
|00000a60| 65 20 64 65 74 61 69 6c | 73 20 69 6e 0a 58 70 72 |e detail|s in.Xpr|
|00000a70| 6f 73 70 65 72 6f 20 6d | 69 67 68 74 20 62 65 20 |ospero m|ight be |
|00000a80| 6d 69 73 75 6e 64 65 72 | 73 74 6f 6f 64 20 62 79 |misunder|stood by|
|00000a90| 20 6d 65 2e 20 49 20 72 | 65 61 64 20 74 68 65 20 | me. I r|ead the |
|00000aa0| 73 6f 75 72 63 65 20 63 | 6f 64 65 20 6f 66 20 74 |source c|ode of t|
|00000ab0| 68 65 0a 58 70 72 6f 73 | 70 65 72 6f 20 66 69 6c |he.Xpros|pero fil|
|00000ac0| 65 20 73 79 73 74 65 6d | 20 74 6f 20 67 65 74 20 |e system| to get |
|00000ad0| 69 6e 66 6f 72 6d 61 74 | 69 6f 6e 20 6f 6e 20 74 |informat|ion on t|
|00000ae0| 68 65 20 70 72 6f 73 70 | 65 72 6f 20 70 72 6f 74 |he prosp|ero prot|
|00000af0| 6f 63 6f 6c 2e 20 49 20 | 64 6f 0a 58 68 61 76 65 |ocol. I |do.Xhave|
|00000b00| 20 74 68 65 20 66 69 6c | 65 20 63 61 6c 6c 65 64 | the fil|e called|
|00000b10| 20 70 72 6f 74 6f 63 6f | 6c 2e 74 78 74 20 66 72 | protoco|l.txt fr|
|00000b20| 6f 6d 20 6a 75 6e 65 2e | 63 73 2e 77 61 73 68 69 |om june.|cs.washi|
|00000b30| 6e 67 74 6f 6e 2e 65 64 | 75 2c 20 62 75 74 20 69 |ngton.ed|u, but i|
|00000b40| 74 0a 58 69 73 20 6e 6f | 74 20 63 6f 6d 70 6c 65 |t.Xis no|t comple|
|00000b50| 74 65 2e 20 49 20 77 6f | 75 6c 64 20 6c 69 6b 65 |te. I wo|uld like|
|00000b60| 20 74 6f 20 68 61 76 65 | 20 61 20 70 6f 69 6e 74 | to have| a point|
|00000b70| 65 72 20 74 6f 20 61 20 | 66 75 6c 6c 65 72 0a 58 |er to a |fuller.X|
|00000b80| 64 65 73 63 72 69 70 74 | 69 6f 6e 2c 20 69 6e 63 |descript|ion, inc|
|00000b90| 6c 75 64 69 6e 67 20 74 | 68 65 20 68 65 61 64 65 |luding t|he heade|
|00000ba0| 72 20 69 6e 66 6f 72 6d | 61 74 69 6f 6e 20 6f 66 |r inform|ation of|
|00000bb0| 20 74 68 65 20 70 61 63 | 6b 65 74 73 2e 0a 58 0a | the pac|kets..X.|
|00000bc0| 58 54 68 69 73 20 70 72 | 6f 67 72 61 6d 20 69 73 |XThis pr|ogram is|
|00000bd0| 20 69 6e 20 74 68 65 20 | 61 6c 70 68 61 20 74 65 | in the |alpha te|
|00000be0| 73 74 69 6e 67 20 73 74 | 61 67 65 2e 20 4f 74 68 |sting st|age. Oth|
|00000bf0| 65 72 20 74 68 61 6e 20 | 74 68 65 20 66 61 63 74 |er than |the fact|
|00000c00| 20 74 68 61 74 20 49 0a | 58 61 6d 20 73 74 69 6c | that I.|Xam stil|
|00000c10| 6c 20 6e 6f 74 20 31 30 | 30 25 20 73 75 72 65 20 |l not 10|0% sure |
|00000c20| 6f 66 20 74 68 65 20 70 | 72 6f 74 6f 63 6f 6c 2c |of the p|rotocol,|
|00000c30| 20 49 20 63 6f 6e 73 69 | 64 65 72 20 69 74 20 72 | I consi|der it r|
|00000c40| 65 61 6c 6c 79 20 69 6e | 20 62 65 74 61 0a 58 74 |eally in| beta.Xt|
|00000c50| 65 73 74 2e 20 20 49 20 | 6e 65 65 64 20 70 65 6f |est. I |need peo|
|00000c60| 70 6c 65 20 74 6f 20 74 | 65 73 74 2c 20 69 6d 70 |ple to t|est, imp|
|00000c70| 72 6f 76 65 2c 20 61 6e | 64 20 73 75 67 67 65 73 |rove, an|d sugges|
|00000c80| 74 2c 20 74 6f 20 6d 61 | 6b 65 20 69 74 20 62 65 |t, to ma|ke it be|
|00000c90| 74 74 65 72 2e 0a 58 49 | 74 20 69 73 20 77 72 69 |tter..XI|t is wri|
|00000ca0| 74 74 65 6e 20 6f 6e 20 | 61 20 53 75 6e 20 33 2f |tten on |a Sun 3/|
|00000cb0| 35 30 2e 20 20 49 20 74 | 72 69 65 64 20 69 74 20 |50. I t|ried it |
|00000cc0| 6f 6e 20 61 20 4d 49 50 | 53 52 49 53 43 2f 6f 73 |on a MIP|SRISC/os|
|00000cd0| 20 34 2e 35 31 2e 20 49 | 74 0a 58 77 6f 72 6b 65 | 4.51. I|t.Xworke|
|00000ce0| 64 2e 20 49 20 68 61 76 | 65 20 61 6c 73 6f 20 74 |d. I hav|e also t|
|00000cf0| 72 69 65 64 20 69 74 20 | 6f 6e 20 61 20 53 65 71 |ried it |on a Seq|
|00000d00| 75 65 6e 74 20 73 79 6d | 6d 65 74 72 79 20 44 79 |uent sym|metry Dy|
|00000d10| 6e 69 78 20 56 65 72 73 | 69 6f 6e 0a 58 73 6f 6d |nix Vers|ion.Xsom|
|00000d20| 65 74 68 69 6e 67 2e 20 | 54 68 65 73 65 20 61 72 |ething. |These ar|
|00000d30| 65 20 74 68 65 20 6d 61 | 63 68 69 6e 65 73 20 74 |e the ma|chines t|
|00000d40| 68 61 74 20 49 20 68 61 | 76 65 20 61 63 63 65 73 |hat I ha|ve acces|
|00000d50| 73 20 74 6f 2e 20 20 49 | 74 20 6d 69 67 68 74 20 |s to. I|t might |
|00000d60| 6e 6f 74 0a 58 77 6f 72 | 6b 20 6f 6e 20 6f 74 68 |not.Xwor|k on oth|
|00000d70| 65 72 20 6d 61 63 68 69 | 6e 65 73 2e 20 20 49 66 |er machi|nes. If|
|00000d80| 20 79 6f 75 20 70 6f 72 | 74 20 69 74 20 74 6f 20 | you por|t it to |
|00000d90| 61 6e 6f 74 68 65 72 20 | 6d 61 63 68 69 6e 65 20 |another |machine |
|00000da0| 74 79 70 65 2c 0a 58 70 | 6c 65 61 73 65 20 73 65 |type,.Xp|lease se|
|00000db0| 6e 64 20 6d 65 20 74 68 | 65 20 64 69 66 66 73 2c |nd me th|e diffs,|
|00000dc0| 20 74 68 61 6e 6b 73 2e | 20 49 66 20 79 6f 75 20 | thanks.| If you |
|00000dd0| 66 69 6e 64 20 62 75 67 | 73 20 6f 6e 20 6f 74 68 |find bug|s on oth|
|00000de0| 65 72 20 6d 61 63 68 69 | 6e 65 0a 58 74 79 70 65 |er machi|ne.Xtype|
|00000df0| 73 2c 20 70 6c 65 61 73 | 65 20 61 6c 73 6f 20 74 |s, pleas|e also t|
|00000e00| 65 6c 6c 20 6d 65 2e 20 | 49 20 77 6f 75 6c 64 20 |ell me. |I would |
|00000e10| 6c 69 6b 65 20 74 6f 20 | 6b 6e 77 6f 20 68 6f 77 |like to |knwo how|
|00000e20| 20 70 6f 72 74 61 62 6c | 65 20 74 68 65 0a 58 70 | portabl|e the.Xp|
|00000e30| 72 6f 67 72 61 6d 20 69 | 73 2e 0a 58 0a 58 54 68 |rogram i|s..X.XTh|
|00000e40| 65 20 70 72 6f 67 72 61 | 6d 20 68 61 73 20 61 20 |e progra|m has a |
|00000e50| 66 6f 72 6d 61 74 20 66 | 61 63 69 6c 69 74 79 20 |format f|acility |
|00000e60| 74 6f 20 6f 75 74 70 75 | 74 20 74 68 65 20 65 6e |to outpu|t the en|
|00000e70| 74 72 69 65 73 20 73 65 | 6e 74 20 62 61 63 6b 0a |tries se|nt back.|
|00000e80| 58 66 72 6f 6d 20 74 68 | 65 20 61 72 63 68 69 65 |Xfrom th|e archie|
|00000e90| 20 73 65 72 76 65 72 2e | 0a 58 0a 58 46 6f 72 6d | server.|.X.XForm|
|00000ea0| 61 74 3a 0a 58 20 20 20 | 20 20 20 54 68 65 20 64 |at:.X | The d|
|00000eb0| 65 66 61 75 6c 74 20 66 | 6f 72 6d 61 74 20 73 74 |efault f|ormat st|
|00000ec0| 72 69 6e 67 20 69 73 3a | 0a 58 0a 58 20 20 20 20 |ring is:|.X.X |
|00000ed0| 20 20 25 30 32 73 65 71 | 20 48 6f 73 74 20 25 68 | %02seq| Host %h|
|00000ee0| 6f 73 74 0a 58 0a 58 20 | 20 20 20 20 20 20 20 20 |ost.X.X | |
|00000ef0| 20 4c 6f 63 61 74 69 6f | 6e 3a 20 25 64 69 72 0a | Locatio|n: %dir.|
|00000f00| 58 20 20 20 20 20 20 20 | 20 20 20 20 20 25 74 79 |X | %ty|
|00000f10| 70 65 20 25 6d 6f 64 65 | 20 25 73 69 7a 65 20 25 |pe %mode| %size %|
|00000f20| 64 61 74 65 20 25 6e 61 | 6d 65 0a 58 0a 58 20 20 |date %na|me.X.X |
|00000f30| 20 20 20 54 68 61 74 20 | 69 73 2c 20 61 6e 20 65 | That |is, an e|
|00000f40| 6e 74 72 79 20 77 69 6c | 6c 20 6c 6f 6f 6b 20 6c |ntry wil|l look l|
|00000f50| 69 6b 65 20 74 68 69 73 | 3a 0a 58 0a 58 20 20 20 |ike this|:.X.X |
|00000f60| 20 20 20 48 6f 73 74 20 | 72 75 73 6d 76 31 2e 72 | Host |rusmv1.r|
|00000f70| 75 73 2e 75 6e 69 2d 73 | 74 75 74 74 67 61 72 74 |us.uni-s|tuttgart|
|00000f80| 2e 64 65 0a 58 0a 58 20 | 20 20 20 20 20 20 20 20 |.de.X.X | |
|00000f90| 20 4c 6f 63 61 74 69 6f | 6e 3a 20 2f 73 6f 66 74 | Locatio|n: /soft|
|00000fa0| 2f 74 65 78 2f 6d 61 63 | 68 69 6e 65 73 2f 61 74 |/tex/mac|hines/at|
|00000fb0| 61 72 69 2f 70 61 73 73 | 61 75 74 65 78 0a 58 20 |ari/pass|autex.X |
|00000fc0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00000fd0| 46 69 6c 65 20 2d 72 77 | 2d 72 77 2d 72 2d 2d 20 |File -rw|-rw-r-- |
|00000fe0| 20 20 20 20 31 34 38 38 | 36 34 20 31 39 39 31 20 | 1488|64 1991 |
|00000ff0| 46 65 62 20 31 34 20 31 | 31 3a 33 34 20 47 4d 54 |Feb 14 1|1:34 GMT|
|00001000| 20 54 65 58 44 72 61 77 | 2d 31 2c 34 31 2d 53 54 | TeXDraw|-1,41-ST|
|00001010| 2e 6c 7a 68 0a 58 0a 58 | 20 20 20 59 6f 75 20 63 |.lzh.X.X| You c|
|00001020| 61 6e 20 72 65 61 64 20 | 74 68 65 20 66 69 6c 65 |an read |the file|
|00001030| 20 61 72 63 68 69 65 2e | 65 78 61 6d 70 6c 65 73 | archie.|examples|
|00001040| 27 20 66 6f 72 20 6d 6f | 72 65 20 65 78 61 6d 70 |' for mo|re examp|
|00001050| 6c 65 73 2e 0a 58 0a 58 | 54 68 69 6e 67 73 20 74 |les..X.X|Things t|
|00001060| 6f 20 62 65 20 64 6f 6e | 65 3a 0a 58 0a 58 31 2c |o be don|e:.X.X1,|
|00001070| 20 41 20 64 65 66 61 75 | 6c 74 20 73 6f 72 74 69 | A defau|lt sorti|
|00001080| 6e 67 20 6f 70 74 69 6f | 6e 2e 0a 58 0a 58 32 2c |ng optio|n..X.X2,|
|00001090| 20 43 6c 65 61 6e 20 75 | 70 20 74 68 65 20 63 6f | Clean u|p the co|
|000010a0| 64 65 2e 0a 58 0a 58 33 | 2c 20 47 65 74 20 61 20 |de..X.X3|, Get a |
|000010b0| 66 75 6c 6c 20 64 65 73 | 63 72 69 70 74 69 6f 6e |full des|cription|
|000010c0| 20 6f 66 20 74 68 65 20 | 70 72 6f 74 6f 63 6f 6c | of the |protocol|
|000010d0| 20 61 6e 64 20 61 72 63 | 68 69 65 20 65 6e 74 72 | and arc|hie entr|
|000010e0| 79 2d 73 65 6e 64 69 6e | 67 20 62 65 68 61 76 69 |y-sendin|g behavi|
|000010f0| 6f 75 72 2e 0a 58 0a 58 | 34 2c 20 43 6c 65 61 6e |our..X.X|4, Clean|
|00001100| 20 75 70 20 74 68 65 20 | 72 65 73 6f 6c 76 65 72 | up the |resolver|
|00001110| 20 63 6f 64 65 20 66 6f | 72 20 74 68 65 20 70 65 | code fo|r the pe|
|00001120| 6f 70 6c 65 20 77 69 74 | 68 6f 75 74 20 61 20 72 |ople wit|hout a r|
|00001130| 65 73 6f 6c 76 65 72 20 | 6c 69 62 72 61 72 79 2e |esolver |library.|
|00001140| 0a 58 0a 58 35 2c 20 49 | 20 61 6d 20 73 75 72 65 |.X.X5, I| am sure|
|00001150| 20 49 20 63 61 6e 20 74 | 68 69 6e 6b 20 6f 66 20 | I can t|hink of |
|00001160| 6f 74 68 65 72 20 74 68 | 69 6e 67 73 20 74 6f 20 |other th|ings to |
|00001170| 69 6d 70 72 6f 76 65 2e | 0a 58 0a 58 50 6c 65 61 |improve.|.X.XPlea|
|00001180| 73 65 20 73 65 6e 64 20 | 79 6f 75 72 20 63 6f 6d |se send |your com|
|00001190| 6d 65 6e 74 73 2c 20 63 | 72 69 74 69 63 69 73 6d |ments, c|riticism|
|000011a0| 73 2c 20 64 69 66 66 73 | 2c 20 65 74 63 2e 20 74 |s, diffs|, etc. t|
|000011b0| 6f 20 6d 65 20 61 74 0a | 58 63 6c 69 70 70 65 72 |o me at.|Xclipper|
|000011c0| 40 63 73 64 2e 75 77 6f | 2e 63 61 2e 20 59 65 73 |@csd.uwo|.ca. Yes|
|000011d0| 2c 20 79 6f 75 20 63 61 | 6e 20 65 76 65 6e 20 63 |, you ca|n even c|
|000011e0| 72 69 74 69 63 69 73 65 | 20 6d 79 20 70 72 6f 67 |riticise| my prog|
|000011f0| 72 61 6d 6d 69 6e 67 20 | 73 74 79 6c 65 2e 0a 58 |ramming |style..X|
|00001200| 0a 58 4b 68 75 6e 20 59 | 65 65 0a 58 4a 75 6c 79 |.XKhun Y|ee.XJuly|
|00001210| 20 31 34 0a 45 4e 44 5f | 4f 46 5f 46 49 4c 45 0a | 14.END_|OF_FILE.|
|00001220| 69 66 20 74 65 73 74 20 | 32 37 31 31 20 2d 6e 65 |if test |2711 -ne|
|00001230| 20 60 77 63 20 2d 63 20 | 3c 27 52 45 41 44 4d 45 | `wc -c |<'README|
|00001240| 27 60 3b 20 74 68 65 6e | 0a 20 20 20 20 65 63 68 |'`; then|. ech|
|00001250| 6f 20 73 68 61 72 3a 20 | 5c 22 27 52 45 41 44 4d |o shar: |\"'READM|
|00001260| 45 27 5c 22 20 75 6e 70 | 61 63 6b 65 64 20 77 69 |E'\" unp|acked wi|
|00001270| 74 68 20 77 72 6f 6e 67 | 20 73 69 7a 65 21 0a 66 |th wrong| size!.f|
|00001280| 69 0a 23 20 65 6e 64 20 | 6f 66 20 27 52 45 41 44 |i.# end |of 'READ|
|00001290| 4d 45 27 0a 66 69 0a 69 | 66 20 74 65 73 74 20 2d |ME'.fi.i|f test -|
|000012a0| 66 20 27 61 72 63 68 69 | 65 2e 66 69 6c 65 73 27 |f 'archi|e.files'|
|000012b0| 20 2d 61 20 22 24 7b 31 | 7d 22 20 21 3d 20 22 2d | -a "${1|}" != "-|
|000012c0| 63 22 20 3b 20 74 68 65 | 6e 20 0a 20 20 65 63 68 |c" ; the|n . ech|
|000012d0| 6f 20 73 68 61 72 3a 20 | 57 69 6c 6c 20 6e 6f 74 |o shar: |Will not|
|000012e0| 20 63 6c 6f 62 62 65 72 | 20 65 78 69 73 74 69 6e | clobber| existin|
|000012f0| 67 20 66 69 6c 65 20 5c | 22 27 61 72 63 68 69 65 |g file \|"'archie|
|00001300| 2e 66 69 6c 65 73 27 5c | 22 0a 65 6c 73 65 0a 65 |.files'\|".else.e|
|00001310| 63 68 6f 20 73 68 61 72 | 3a 20 45 78 74 72 61 63 |cho shar|: Extrac|
|00001320| 74 69 6e 67 20 5c 22 27 | 61 72 63 68 69 65 2e 66 |ting \"'|archie.f|
|00001330| 69 6c 65 73 27 5c 22 20 | 5c 28 38 38 30 20 63 68 |iles'\" |\(880 ch|
|00001340| 61 72 61 63 74 65 72 73 | 5c 29 0a 73 65 64 20 22 |aracters|\).sed "|
|00001350| 73 2f 5e 58 2f 2f 22 20 | 3e 27 61 72 63 68 69 65 |s/^X//" |>'archie|
|00001360| 2e 66 69 6c 65 73 27 20 | 3c 3c 27 45 4e 44 5f 4f |.files' |<<'END_O|
|00001370| 46 5f 46 49 4c 45 27 0a | 58 61 72 63 68 69 65 2e |F_FILE'.|Xarchie.|
|00001380| 66 69 6c 65 73 20 20 20 | 20 20 20 20 2d 2d 20 74 |files | -- t|
|00001390| 68 69 73 20 66 69 6c 65 | 2e 0a 58 61 72 63 68 69 |his file|..Xarchi|
|000013a0| 65 20 20 20 20 20 20 20 | 20 20 20 20 20 20 2d 2d |e | --|
|000013b0| 20 74 68 65 20 70 72 6f | 67 72 61 6d 20 66 69 6c | the pro|gram fil|
|000013c0| 65 2e 20 52 65 6d 65 6d | 62 65 72 20 74 6f 20 73 |e. Remem|ber to s|
|000013d0| 65 74 20 74 6f 20 65 78 | 65 63 75 74 61 62 6c 65 |et to ex|ecutable|
|000013e0| 0a 58 52 45 41 44 4d 45 | 20 20 20 20 20 20 20 20 |.XREADME| |
|000013f0| 20 20 20 20 20 2d 2d 20 | 74 68 65 20 72 65 61 64 | -- |the read|
|00001400| 6d 65 20 66 69 6c 65 20 | 66 6f 72 20 61 72 63 68 |me file |for arch|
|00001410| 69 65 0a 58 73 79 73 2f | 73 6f 63 6b 65 74 2e 68 |ie.Xsys/|socket.h|
|00001420| 20 20 20 20 20 20 20 2d | 2d 20 59 6f 75 72 73 20 | -|- Yours |
|00001430| 6d 69 67 68 74 20 62 65 | 20 63 61 6c 6c 65 64 20 |might be| called |
|00001440| 73 79 73 2f 73 6f 63 6b | 65 74 2e 70 68 2e 20 49 |sys/sock|et.ph. I|
|00001450| 66 20 73 6f 2c 0a 58 20 | 20 20 20 20 20 20 20 20 |f so,.X | |
|00001460| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 63 68 61 | | cha|
|00001470| 6e 67 65 20 74 68 65 20 | 6e 61 6d 65 20 69 6e 20 |nge the |name in |
|00001480| 74 68 65 20 66 69 6c 65 | 20 61 72 63 68 69 65 2e |the file| archie.|
|00001490| 20 54 68 69 73 20 66 69 | 6c 65 20 69 73 0a 58 20 | This fi|le is.X |
|000014a0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|000014b0| 20 20 20 20 20 69 6e 63 | 6c 75 64 65 64 20 6f 6e | inc|luded on|
|000014c0| 6c 79 20 66 6f 72 20 63 | 6f 6d 70 6c 65 74 65 6e |ly for c|ompleten|
|000014d0| 65 73 73 27 73 20 73 61 | 6b 65 2e 0a 58 72 65 73 |ess's sa|ke..Xres|
|000014e0| 6f 6c 76 65 72 2e 70 6c | 20 20 20 20 20 20 20 20 |olver.pl| |
|000014f0| 2d 2d 20 61 20 73 69 6d | 70 6c 65 20 61 64 64 72 |-- a sim|ple addr|
|00001500| 65 73 73 20 72 65 73 6f | 6c 76 65 72 20 69 6e 20 |ess reso|lver in |
|00001510| 70 65 72 6c 2e 20 61 72 | 63 68 69 65 20 75 73 65 |perl. ar|chie use|
|00001520| 73 0a 58 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |s.X | |
|00001530| 20 20 20 20 20 20 20 20 | 20 67 65 74 68 6f 73 74 | | gethost|
|00001540| 62 79 6e 61 6d 65 28 29 | 20 66 69 72 73 74 20 62 |byname()| first b|
|00001550| 65 66 6f 72 65 20 74 72 | 79 69 6e 67 20 74 68 65 |efore tr|ying the|
|00001560| 0a 58 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |.X | |
|00001570| 20 20 20 20 20 20 20 20 | 72 65 73 6f 6c 76 65 72 | |resolver|
|00001580| 2e 20 44 6f 20 63 68 65 | 63 6b 20 74 68 65 20 64 |. Do che|ck the d|
|00001590| 6f 6d 61 69 6e 20 73 65 | 72 76 65 72 20 6e 61 6d |omain se|rver nam|
|000015a0| 65 20 69 6e 20 74 68 65 | 0a 58 20 20 20 20 20 20 |e in the|.X |
|000015b0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|000015c0| 72 65 73 6f 6c 76 65 72 | 20 66 69 6c 65 2e 0a 58 |resolver| file..X|
|000015d0| 6e 65 77 67 65 74 6f 70 | 74 2e 70 6c 20 20 20 20 |newgetop|t.pl |
|000015e0| 20 20 20 2d 2d 20 49 20 | 67 6f 74 20 74 68 69 73 | -- I |got this|
|000015f0| 20 66 72 6f 6d 20 63 6f | 6d 70 2e 6c 61 6e 67 2e | from co|mp.lang.|
|00001600| 70 65 72 6c 2e 20 41 20 | 77 6f 6e 64 65 72 66 75 |perl. A |wonderfu|
|00001610| 6c 20 70 61 63 6b 61 67 | 65 2e 0a 58 61 72 63 68 |l packag|e..Xarch|
|00001620| 69 65 2e 64 65 70 65 6e | 64 20 20 20 20 20 20 2d |ie.depen|d -|
|00001630| 2d 20 53 79 73 74 65 6d | 20 64 65 70 65 6e 64 65 |- System| depende|
|00001640| 6e 74 20 73 74 75 66 66 | 2e 0a 58 61 72 63 68 69 |nt stuff|..Xarchi|
|00001650| 65 2e 6c 20 20 20 20 20 | 20 20 20 20 20 20 2d 2d |e.l | --|
|00001660| 20 41 20 72 75 64 69 6d | 65 6e 74 61 72 79 20 6d | A rudim|entary m|
|00001670| 61 6e 75 61 6c 20 70 61 | 67 65 20 66 6f 72 20 61 |anual pa|ge for a|
|00001680| 72 63 68 69 65 2e 0a 58 | 44 4f 54 2e 61 72 63 68 |rchie..X|DOT.arch|
|00001690| 69 65 72 63 20 20 20 20 | 20 20 20 2d 2d 20 41 6e |ierc | -- An|
|000016a0| 20 65 78 61 6d 70 6c 65 | 20 2e 61 72 63 68 69 72 | example| .archir|
|000016b0| 63 20 66 69 6c 65 2e 0a | 58 61 72 63 68 69 65 2e |c file..|Xarchie.|
|000016c0| 65 78 61 6d 70 6c 65 73 | 20 20 20 20 2d 2d 20 53 |examples| -- S|
|000016d0| 6f 6d 65 20 65 78 61 6d | 70 6c 65 73 20 6f 6e 20 |ome exam|ples on |
|000016e0| 75 73 69 6e 67 20 61 72 | 63 68 69 65 2e 0a 58 0a |using ar|chie..X.|
|000016f0| 58 54 68 61 6e 6b 73 2e | 0a 45 4e 44 5f 4f 46 5f |XThanks.|.END_OF_|
|00001700| 46 49 4c 45 0a 69 66 20 | 74 65 73 74 20 38 38 30 |FILE.if |test 880|
|00001710| 20 2d 6e 65 20 60 77 63 | 20 2d 63 20 3c 27 61 72 | -ne `wc| -c <'ar|
|00001720| 63 68 69 65 2e 66 69 6c | 65 73 27 60 3b 20 74 68 |chie.fil|es'`; th|
|00001730| 65 6e 0a 20 20 20 20 65 | 63 68 6f 20 73 68 61 72 |en. e|cho shar|
|00001740| 3a 20 5c 22 27 61 72 63 | 68 69 65 2e 66 69 6c 65 |: \"'arc|hie.file|
|00001750| 73 27 5c 22 20 75 6e 70 | 61 63 6b 65 64 20 77 69 |s'\" unp|acked wi|
|00001760| 74 68 20 77 72 6f 6e 67 | 20 73 69 7a 65 21 0a 66 |th wrong| size!.f|
|00001770| 69 0a 23 20 65 6e 64 20 | 6f 66 20 27 61 72 63 68 |i.# end |of 'arch|
|00001780| 69 65 2e 66 69 6c 65 73 | 27 0a 66 69 0a 69 66 20 |ie.files|'.fi.if |
|00001790| 74 65 73 74 20 2d 66 20 | 27 61 72 63 68 69 65 27 |test -f |'archie'|
|000017a0| 20 2d 61 20 22 24 7b 31 | 7d 22 20 21 3d 20 22 2d | -a "${1|}" != "-|
|000017b0| 63 22 20 3b 20 74 68 65 | 6e 20 0a 20 20 65 63 68 |c" ; the|n . ech|
|000017c0| 6f 20 73 68 61 72 3a 20 | 57 69 6c 6c 20 6e 6f 74 |o shar: |Will not|
|000017d0| 20 63 6c 6f 62 62 65 72 | 20 65 78 69 73 74 69 6e | clobber| existin|
|000017e0| 67 20 66 69 6c 65 20 5c | 22 27 61 72 63 68 69 65 |g file \|"'archie|
|000017f0| 27 5c 22 0a 65 6c 73 65 | 0a 65 63 68 6f 20 73 68 |'\".else|.echo sh|
|00001800| 61 72 3a 20 45 78 74 72 | 61 63 74 69 6e 67 20 5c |ar: Extr|acting \|
|00001810| 22 27 61 72 63 68 69 65 | 27 5c 22 20 5c 28 31 35 |"'archie|'\" \(15|
|00001820| 31 39 31 20 63 68 61 72 | 61 63 74 65 72 73 5c 29 |191 char|acters\)|
|00001830| 0a 73 65 64 20 22 73 2f | 5e 58 2f 2f 22 20 3e 27 |.sed "s/|^X//" >'|
|00001840| 61 72 63 68 69 65 27 20 | 3c 3c 27 45 4e 44 5f 4f |archie' |<<'END_O|
|00001850| 46 5f 46 49 4c 45 27 0a | 58 23 21 2f 75 73 72 2f |F_FILE'.|X#!/usr/|
|00001860| 62 69 6e 2f 70 65 72 6c | 20 20 20 20 20 20 20 20 |bin/perl| |
|00001870| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00001880| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00001890| 20 23 2d 2a 2d 70 65 72 | 6c 2d 2a 2d 0a 58 23 21 | #-*-per|l-*-.X#!|
|000018a0| 2f 75 33 2f 74 68 65 73 | 69 73 2f 63 6c 69 70 70 |/u3/thes|is/clipp|
|000018b0| 65 72 2f 62 69 6e 2f 70 | 65 72 6c 20 20 20 20 20 |er/bin/p|erl |
|000018c0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|000018d0| 20 20 20 20 20 20 20 23 | 20 2d 2a 2d 70 65 72 6c | #| -*-perl|
|000018e0| 2d 2a 2d 0a 58 23 20 43 | 6f 70 79 72 69 67 68 74 |-*-.X# C|opyright|
|000018f0| 20 28 43 29 20 4b 68 75 | 6e 20 59 65 65 20 46 75 | (C) Khu|n Yee Fu|
|00001900| 6e 67 20 63 6c 69 70 70 | 65 72 40 63 73 64 2e 75 |ng clipp|er@csd.u|
|00001910| 77 6f 2e 63 61 20 31 39 | 39 31 0a 58 23 20 59 6f |wo.ca 19|91.X# Yo|
|00001920| 75 20 63 61 6e 20 64 6f | 20 61 6e 79 74 68 69 6e |u can do| anythin|
|00001930| 67 20 74 6f 20 74 68 69 | 73 20 70 72 6f 67 72 61 |g to thi|s progra|
|00001940| 6d 20 65 78 63 65 70 74 | 20 73 65 6c 6c 69 6e 67 |m except| selling|
|00001950| 20 69 74 20 66 6f 72 20 | 70 72 6f 66 69 74 20 6f | it for |profit o|
|00001960| 72 0a 58 23 20 70 72 65 | 74 65 6e 64 69 6e 67 20 |r.X# pre|tending |
|00001970| 79 6f 75 20 77 72 6f 74 | 65 20 69 74 2e 20 54 68 |you wrot|e it. Th|
|00001980| 65 20 63 6f 70 79 72 69 | 67 68 74 20 6e 6f 74 69 |e copyri|ght noti|
|00001990| 63 65 20 6d 75 73 74 20 | 62 65 20 70 72 65 73 65 |ce must |be prese|
|000019a0| 72 76 65 64 20 69 6e 20 | 61 6c 6c 20 0a 58 23 20 |rved in |all .X# |
|000019b0| 63 6f 70 69 65 73 2e 20 | 41 62 73 6f 6c 75 74 65 |copies. |Absolute|
|000019c0| 6c 79 20 6e 6f 20 77 61 | 72 72 61 6e 74 79 2e 0a |ly no wa|rranty..|
|000019d0| 58 23 20 24 49 64 3a 20 | 61 72 63 68 69 65 2c 76 |X# $Id: |archie,v|
|000019e0| 20 32 2e 35 20 31 39 39 | 31 2f 30 37 2f 31 34 20 | 2.5 199|1/07/14 |
|000019f0| 30 38 3a 32 30 3a 32 33 | 20 63 6c 69 70 70 65 72 |08:20:23| clipper|
|00001a00| 20 45 78 70 20 63 6c 69 | 70 70 65 72 20 24 0a 58 | Exp cli|pper $.X|
|00001a10| 23 20 4d 61 63 68 69 6e | 65 73 20 49 20 68 61 76 |# Machin|es I hav|
|00001a20| 65 20 74 72 69 65 64 3a | 20 53 75 6e 20 33 2c 20 |e tried:| Sun 3, |
|00001a30| 4d 49 50 53 20 34 2e 35 | 31 2c 20 53 65 71 75 65 |MIPS 4.5|1, Seque|
|00001a40| 6e 74 20 53 79 6d 6d 65 | 74 72 79 20 44 79 6e 69 |nt Symme|try Dyni|
|00001a50| 78 2e 0a 58 65 76 61 6c | 20 22 65 78 65 63 20 70 |x..Xeval| "exec p|
|00001a60| 65 72 6c 20 2d 53 20 24 | 30 20 24 2a 22 0a 58 09 |erl -S $|0 $*".X.|
|00001a70| 69 66 20 24 72 75 6e 6e | 69 6e 67 5f 75 6e 64 65 |if $runn|ing_unde|
|00001a80| 72 5f 73 6f 6d 65 5f 73 | 68 65 6c 6c 3b 0a 58 0a |r_some_s|hell;.X.|
|00001a90| 58 23 20 54 6f 20 67 65 | 74 20 73 79 73 74 65 6d |X# To ge|t system|
|00001aa0| 20 64 65 70 65 6e 64 61 | 6e 74 20 73 79 73 2f 73 | dependa|nt sys/s|
|00001ab0| 6f 63 6b 65 74 2e 68 20 | 6e 61 6d 65 20 61 6e 64 |ocket.h |name and|
|00001ac0| 20 74 68 65 20 64 6f 6d | 61 69 6e 20 73 65 72 76 | the dom|ain serv|
|00001ad0| 65 72 20 49 50 0a 58 23 | 20 69 66 20 72 65 73 6f |er IP.X#| if reso|
|00001ae0| 6c 76 65 72 20 6c 69 62 | 61 72 79 20 69 73 20 6e |lver lib|ary is n|
|00001af0| 6f 74 20 62 75 69 6c 74 | 20 69 6e 2e 0a 58 72 65 |ot built| in..Xre|
|00001b00| 71 75 69 72 65 20 27 61 | 72 63 68 69 65 2e 64 65 |quire 'a|rchie.de|
|00001b10| 70 65 6e 64 27 3b 0a 58 | 72 65 71 75 69 72 65 20 |pend';.X|require |
|00001b20| 24 73 6f 63 6b 65 74 3b | 0a 58 72 65 71 75 69 72 |$socket;|.Xrequir|
|00001b30| 65 20 27 72 65 73 6f 6c | 76 65 72 2e 70 6c 27 3b |e 'resol|ver.pl';|
|00001b40| 0a 58 72 65 71 75 69 72 | 65 20 27 6e 65 77 67 65 |.Xrequir|e 'newge|
|00001b50| 74 6f 70 74 2e 70 6c 27 | 3b 0a 58 0a 58 23 20 54 |topt.pl'|;.X.X# T|
|00001b60| 6f 20 67 65 74 20 74 68 | 65 20 6f 70 74 69 6f 6e |o get th|e option|
|00001b70| 73 20 6f 6e 20 74 68 65 | 20 63 6f 6d 6d 61 6e 64 |s on the| command|
|00001b80| 20 6c 69 6e 65 2e 20 45 | 78 61 70 6c 61 6e 61 74 | line. E|xaplanat|
|00001b90| 69 6f 6e 73 20 69 6e 20 | 74 68 65 20 63 6f 64 65 |ions in |the code|
|00001ba0| 0a 58 23 20 68 61 6e 64 | 6c 69 6e 67 20 74 68 65 |.X# hand|ling the|
|00001bb0| 6d 0a 58 26 4e 47 65 74 | 4f 70 74 28 27 6d 61 74 |m.X&NGet|Opt('mat|
|00001bc0| 63 68 3d 69 27 2c 20 27 | 72 65 67 27 2c 20 27 65 |ch=i', '|reg', 'e|
|00001bd0| 78 61 63 74 27 2c 20 27 | 6e 6f 63 61 73 65 27 2c |xact', '|nocase',|
|00001be0| 20 27 63 61 73 65 27 2c | 20 27 68 6f 73 74 3d 73 | 'case',| 'host=s|
|00001bf0| 27 2c 0a 58 09 20 27 66 | 66 69 6c 65 3d 73 27 2c |',.X. 'f|file=s',|
|00001c00| 20 27 66 6f 72 6d 61 74 | 3d 73 27 2c 20 27 61 6c | 'format|=s', 'al|
|00001c10| 6f 6e 67 27 2c 20 27 6e | 6f 72 63 27 2c 20 27 73 |ong', 'n|orc', 's|
|00001c20| 79 6e 74 61 78 27 29 3b | 0a 58 0a 58 23 20 47 65 |yntax');|.X.X# Ge|
|00001c30| 74 20 74 68 65 20 6e 61 | 6d 65 20 6f 66 20 74 68 |t the na|me of th|
|00001c40| 69 73 20 70 72 6f 67 72 | 61 6d 2e 20 54 68 65 20 |is progr|am. The |
|00001c50| 6c 61 73 74 20 6e 61 6d | 65 20 69 73 20 74 68 65 |last nam|e is the|
|00001c60| 20 6f 6e 65 2e 0a 58 40 | 70 72 6f 67 20 3d 20 73 | one..X@|prog = s|
|00001c70| 70 6c 69 74 28 27 2f 27 | 2c 20 24 30 29 3b 0a 58 |plit('/'|, $0);.X|
|00001c80| 24 70 72 6f 67 20 3d 20 | 24 70 72 6f 67 5b 24 23 |$prog = |$prog[$#|
|00001c90| 70 72 6f 67 5d 3b 0a 58 | 0a 58 23 20 55 73 61 67 |prog];.X|.X# Usag|
|00001ca0| 65 20 73 74 72 69 6e 67 | 2e 0a 58 24 75 73 61 67 |e string|..X$usag|
|00001cb0| 65 20 3d 20 0a 58 22 55 | 73 61 67 65 3a 20 24 70 |e = .X"U|sage: $p|
|00001cc0| 72 6f 67 20 5b 6f 70 74 | 69 6f 6e 73 5d 20 77 6f |rog [opt|ions] wo|
|00001cd0| 72 64 31 20 77 6f 72 64 | 32 20 2e 2e 2e 0a 58 20 |rd1 word|2 ....X |
|00001ce0| 20 57 68 65 72 65 20 6f | 70 74 69 6f 6e 73 20 61 | Where o|ptions a|
|00001cf0| 72 65 20 6f 6e 65 20 6f | 72 20 6d 6f 72 65 20 6f |re one o|r more o|
|00001d00| 66 20 74 68 65 20 66 6f | 6c 6c 6f 77 69 6e 67 3a |f the fo|llowing:|
|00001d10| 0a 58 20 20 2d 63 61 73 | 65 20 20 20 20 20 20 20 |.X -cas|e |
|00001d20| 20 20 20 20 43 61 73 65 | 20 73 65 6e 73 69 74 69 | Case| sensiti|
|00001d30| 76 65 0a 58 20 20 2d 6e | 6f 63 61 73 65 20 20 20 |ve.X -n|ocase |
|00001d40| 20 20 20 20 20 20 43 61 | 73 65 20 69 6e 73 65 6e | Ca|se insen|
|00001d50| 73 69 74 69 76 65 0a 58 | 20 20 2d 65 78 61 63 74 |sitive.X| -exact|
|00001d60| 20 20 20 20 20 20 20 20 | 20 20 45 78 61 63 74 20 | | Exact |
|00001d70| 6d 61 74 63 68 0a 58 20 | 20 2d 72 65 67 20 20 20 |match.X | -reg |
|00001d80| 20 20 20 20 20 20 20 20 | 20 52 65 67 75 6c 61 72 | | Regular|
|00001d90| 20 65 78 70 72 65 73 73 | 69 6f 6e 20 6d 61 74 63 | express|ion matc|
|00001da0| 68 0a 58 20 20 2d 6d 61 | 74 63 68 20 5c 23 20 20 |h.X -ma|tch \# |
|00001db0| 20 20 20 20 20 4d 61 78 | 20 68 69 74 73 0a 58 20 | Max| hits.X |
|00001dc0| 20 2d 68 6f 73 74 20 20 | 20 20 20 20 20 20 20 20 | -host | |
|00001dd0| 20 49 6e 73 74 65 61 64 | 20 6f 66 20 71 75 69 63 | Instead| of quic|
|00001de0| 68 65 2e 63 73 2e 6d 63 | 67 69 6c 6c 2e 63 61 0a |he.cs.mc|gill.ca.|
|00001df0| 58 20 20 2d 66 66 69 6c | 65 20 66 69 6c 65 6e 61 |X -ffil|e filena|
|00001e00| 6d 65 20 55 73 65 20 61 | 20 66 6f 72 6d 61 74 20 |me Use a| format |
|00001e10| 66 69 6c 65 0a 58 20 20 | 2d 66 6f 72 6d 61 74 20 |file.X |-format |
|00001e20| 73 74 72 69 6e 67 20 20 | 53 70 65 63 69 66 79 20 |string |Specify |
|00001e30| 61 20 66 6f 72 6d 61 74 | 20 73 74 72 69 6e 67 0a |a format| string.|
|00001e40| 58 20 20 2d 61 6c 6f 6e | 67 20 20 20 20 20 20 20 |X -alon|g |
|00001e50| 20 20 20 50 72 69 6e 74 | 20 6f 75 74 70 75 74 20 | Print| output |
|00001e60| 61 6c 6f 6e 67 20 74 68 | 65 20 77 61 79 2c 20 69 |along th|e way, i|
|00001e70| 6e 73 74 65 61 64 20 6f | 66 20 61 6c 6c 20 61 74 |nstead o|f all at|
|00001e80| 20 6f 6e 63 65 20 61 74 | 20 74 68 65 20 65 6e 64 | once at| the end|
|00001e90| 0a 58 20 20 2d 6e 6f 72 | 63 20 20 20 20 20 20 20 |.X -nor|c |
|00001ea0| 20 20 20 20 44 6f 20 6e | 6f 74 20 72 65 61 64 20 | Do n|ot read |
|00001eb0| 2e 61 72 63 68 69 65 72 | 63 20 66 69 6c 65 20 69 |.archier|c file i|
|00001ec0| 6e 20 68 6f 6d 65 20 64 | 69 72 65 63 74 6f 72 79 |n home d|irectory|
|00001ed0| 2e 0a 58 22 3b 0a 58 0a | 58 23 20 53 68 6f 75 6c |..X";.X.|X# Shoul|
|00001ee0| 64 20 68 61 76 65 20 61 | 74 20 6c 65 61 73 74 20 |d have a|t least |
|00001ef0| 6f 6e 65 20 71 75 65 72 | 79 2e 0a 58 69 66 20 28 |one quer|y..Xif (|
|00001f00| 24 23 41 52 47 56 20 3c | 20 30 29 20 7b 0a 58 20 |$#ARGV <| 0) {.X |
|00001f10| 20 20 20 70 72 69 6e 74 | 20 22 50 6c 65 61 73 65 | print| "Please|
|00001f20| 20 73 70 65 63 69 66 79 | 20 61 74 20 6c 65 61 73 | specify| at leas|
|00001f30| 74 20 6f 6e 65 20 71 75 | 65 72 79 2e 5c 6e 22 3b |t one qu|ery.\n";|
|00001f40| 0a 58 20 20 20 20 70 72 | 69 6e 74 20 24 75 73 61 |.X pr|int $usa|
|00001f50| 67 65 3b 0a 58 20 20 20 | 20 65 78 69 74 28 32 35 |ge;.X | exit(25|
|00001f60| 35 29 3b 0a 58 7d 0a 58 | 40 73 74 72 69 6e 67 20 |5);.X}.X|@string |
|00001f70| 3d 20 40 41 52 47 56 3b | 0a 58 0a 58 23 20 46 6f |= @ARGV;|.X.X# Fo|
|00001f80| 72 20 74 68 65 20 63 6f | 6e 76 65 72 73 69 6f 6e |r the co|nversion|
|00001f90| 20 6f 66 20 64 61 74 65 | 20 69 6e 20 74 68 65 20 | of date| in the |
|00001fa0| 73 75 62 72 6f 75 74 69 | 6e 65 20 64 61 74 65 2e |subrouti|ne date.|
|00001fb0| 0a 58 40 6d 6f 6e 74 68 | 20 3d 20 28 27 27 2c 20 |.X@month| = ('', |
|00001fc0| 27 4a 61 6e 27 2c 20 27 | 46 65 62 27 2c 20 27 4d |'Jan', '|Feb', 'M|
|00001fd0| 61 72 27 2c 20 27 41 70 | 72 27 2c 20 27 4d 61 79 |ar', 'Ap|r', 'May|
|00001fe0| 27 2c 20 27 4a 75 6e 27 | 2c 20 27 4a 75 6c 27 2c |', 'Jun'|, 'Jul',|
|00001ff0| 20 27 41 75 67 27 2c 0a | 58 09 20 20 27 53 65 70 | 'Aug',.|X. 'Sep|
|00002000| 27 2c 20 27 4f 63 74 27 | 2c 20 27 4e 6f 76 27 2c |', 'Oct'|, 'Nov',|
|00002010| 20 27 44 65 63 27 29 3b | 0a 58 0a 58 23 20 54 68 | 'Dec');|.X.X# Th|
|00002020| 65 20 61 72 63 68 69 65 | 20 70 6f 72 74 20 6e 75 |e archie| port nu|
|00002030| 6d 62 65 72 20 69 73 20 | 31 35 32 35 2e 20 53 68 |mber is |1525. Sh|
|00002040| 6f 75 6c 64 20 70 72 6f | 62 61 62 6c 79 20 74 72 |ould pro|bably tr|
|00002050| 79 20 74 68 65 20 70 72 | 69 76 69 6c 65 67 65 64 |y the pr|ivileged|
|00002060| 20 70 6f 72 74 73 0a 58 | 23 20 28 66 72 6f 6d 20 | ports.X|# (from |
|00002070| 39 30 31 20 6f 6e 77 61 | 72 64 73 20 6f 72 20 73 |901 onwa|rds or s|
|00002080| 6f 6d 65 74 68 69 6e 67 | 29 20 66 69 72 73 74 2e |omething|) first.|
|00002090| 0a 58 24 70 6f 72 74 20 | 3d 20 31 35 32 35 3b 0a |.X$port |= 1525;.|
|000020a0| 58 0a 58 23 20 54 68 65 | 20 73 6f 63 6b 65 74 61 |X.X# The| socketa|
|000020b0| 64 64 72 20 73 74 72 75 | 63 74 75 72 65 2e 20 53 |ddr stru|cture. S|
|000020c0| 65 65 20 2f 75 73 72 2f | 69 6e 63 6c 75 64 65 2f |ee /usr/|include/|
|000020d0| 73 79 73 2f 73 6f 63 6b | 65 74 2e 68 20 66 6f 72 |sys/sock|et.h for|
|000020e0| 20 74 68 65 20 43 20 0a | 58 23 20 76 65 72 73 69 | the C .|X# versi|
|000020f0| 6f 6e 2e 20 54 68 65 20 | 68 6f 73 74 6e 61 6d 65 |on. The |hostname|
|00002100| 20 69 73 20 68 61 72 64 | 2d 77 69 72 65 64 2e 20 | is hard|-wired. |
|00002110| 41 73 20 74 68 65 72 65 | 20 69 73 20 61 20 68 6f |As there| is a ho|
|00002120| 73 74 20 6f 70 74 69 6f | 6e 2c 20 74 68 69 73 0a |st optio|n, this.|
|00002130| 58 23 20 69 73 20 70 72 | 6f 62 61 62 6c 79 20 6e |X# is pr|obably n|
|00002140| 6f 74 20 76 65 72 79 20 | 69 6d 70 6f 72 74 61 6e |ot very |importan|
|00002150| 74 2e 20 48 6f 73 74 63 | 61 70 73 20 69 73 20 66 |t. Hostc|aps is f|
|00002160| 6f 72 20 61 20 73 74 72 | 61 6e 67 65 20 65 6e 74 |or a str|ange ent|
|00002170| 72 79 20 66 6f 72 6d 61 | 74 2e 0a 58 23 20 49 20 |ry forma|t..X# I |
|00002180| 73 74 69 6c 6c 20 64 6f | 6e 27 74 20 6b 6e 6f 77 |still do|n't know|
|00002190| 20 65 78 61 63 74 6c 79 | 20 68 6f 77 20 74 68 65 | exactly| how the|
|000021a0| 20 65 6e 74 72 69 65 73 | 20 61 72 65 20 73 70 65 | entries| are spe|
|000021b0| 63 69 66 69 65 64 2e 0a | 58 24 73 6f 63 6b 61 64 |cified..|X$sockad|
|000021c0| 64 72 20 3d 20 27 53 20 | 6e 20 61 34 20 78 38 27 |dr = 'S |n a4 x8'|
|000021d0| 3b 0a 58 24 68 6f 73 74 | 6e 61 6d 65 20 3d 20 27 |;.X$host|name = '|
|000021e0| 31 33 32 2e 32 30 36 2e | 32 2e 33 27 3b 0a 58 24 |132.206.|2.3';.X$|
|000021f0| 68 6f 73 74 63 61 70 73 | 20 3d 20 27 51 55 49 43 |hostcaps| = 'QUIC|
|00002200| 48 45 2e 43 53 2e 4d 43 | 47 49 4c 4c 2e 43 41 27 |HE.CS.MC|GILL.CA'|
|00002210| 3b 0a 58 0a 58 23 20 44 | 65 66 61 75 6c 74 73 3a |;.X.X# D|efaults:|
|00002220| 20 6d 61 78 69 6d 75 6d | 20 68 69 74 20 69 73 20 | maximum| hit is |
|00002230| 31 30 30 2e 20 49 74 20 | 64 6f 65 73 20 6e 6f 74 |100. It |does not|
|00002240| 20 6d 65 61 6e 20 74 68 | 65 72 65 20 77 69 6c 6c | mean th|ere will|
|00002250| 20 62 65 20 65 78 61 63 | 74 6c 79 0a 58 23 20 31 | be exac|tly.X# 1|
|00002260| 30 30 20 65 6e 74 72 69 | 65 73 20 72 65 74 75 72 |00 entri|es retur|
|00002270| 6e 65 64 2c 20 74 68 6f | 75 67 68 2e 20 45 78 70 |ned, tho|ugh. Exp|
|00002280| 65 63 74 20 61 20 66 65 | 77 20 65 6e 74 72 69 65 |ect a fe|w entrie|
|00002290| 73 20 6d 6f 72 65 20 6f | 72 20 6c 65 73 73 2e 0a |s more o|r less..|
|000022a0| 58 23 20 54 68 65 20 64 | 65 66 61 75 6c 74 20 73 |X# The d|efault s|
|000022b0| 65 61 72 63 68 20 6f 70 | 74 69 6f 6e 20 69 73 20 |earch op|tion is |
|000022c0| 63 61 73 65 20 69 6e 73 | 65 6e 73 69 74 69 76 65 |case ins|ensitive|
|000022d0| 2e 20 41 6c 73 6f 2c 20 | 70 72 69 6e 74 20 61 6c |. Also, |print al|
|000022e0| 6c 20 65 6e 74 72 69 65 | 73 0a 58 23 20 61 74 20 |l entrie|s.X# at |
|000022f0| 6f 6e 63 65 20 61 74 20 | 74 68 65 20 65 6e 64 2e |once at |the end.|
|00002300| 0a 58 24 6d 61 74 63 68 | 20 3d 20 31 30 30 3b 20 |.X$match| = 100; |
|00002310| 24 63 61 73 65 20 3d 20 | 27 53 27 3b 20 24 61 6c |$case = |'S'; $al|
|00002320| 6f 6e 67 20 3d 20 30 3b | 0a 58 0a 58 23 20 54 6f |ong = 0;|.X.X# To|
|00002330| 20 67 65 74 20 74 68 65 | 20 75 73 65 72 20 6e 61 | get the| user na|
|00002340| 6d 65 20 61 6e 64 20 75 | 73 65 72 20 68 6f 6d 65 |me and u|ser home|
|00002350| 20 70 61 74 68 2e 0a 58 | 40 70 77 20 3d 20 67 65 | path..X|@pw = ge|
|00002360| 74 70 77 75 69 64 28 24 | 3c 29 3b 0a 58 24 75 73 |tpwuid($|<);.X$us|
|00002370| 65 72 20 3d 20 24 70 77 | 5b 30 5d 3b 0a 58 24 75 |er = $pw|[0];.X$u|
|00002380| 73 65 72 70 61 74 68 20 | 3d 20 24 70 77 5b 37 5d |serpath |= $pw[7]|
|00002390| 3b 0a 58 0a 58 23 20 54 | 68 65 20 64 65 66 61 75 |;.X.X# T|he defau|
|000023a0| 6c 74 20 66 6f 72 6d 61 | 74 20 73 74 72 69 6e 67 |lt forma|t string|
|000023b0| 2e 20 43 61 6e 20 62 65 | 20 6f 76 65 72 69 64 65 |. Can be| overide|
|000023c0| 6e 20 62 79 20 74 68 65 | 20 2d 66 6f 72 6d 61 74 |n by the| -format|
|000023d0| 20 6f 72 20 2d 66 66 69 | 6c 65 20 0a 58 23 20 6f | or -ffi|le .X# o|
|000023e0| 70 74 69 6f 6e 73 2e 20 | 43 61 6e 20 61 6c 73 6f |ptions. |Can also|
|000023f0| 20 73 70 65 63 69 66 79 | 20 61 20 64 65 66 61 75 | specify| a defau|
|00002400| 6c 74 20 66 6f 72 6d 61 | 74 20 73 74 72 69 6e 67 |lt forma|t string|
|00002410| 20 69 6e 20 7e 2f 2e 61 | 72 63 68 69 65 72 63 0a | in ~/.a|rchierc.|
|00002420| 58 24 66 6f 72 6d 61 74 | 20 3d 20 22 30 32 25 73 |X$format| = "02%s|
|00002430| 65 71 20 48 6f 73 74 20 | 25 68 6f 73 74 0a 58 4c |eq Host |%host.XL|
|00002440| 61 73 74 20 75 70 64 61 | 74 65 64 3a 20 25 61 72 |ast upda|ted: %ar|
|00002450| 63 0a 58 0a 58 20 20 20 | 20 4c 6f 63 61 74 69 6f |c.X.X | Locatio|
|00002460| 6e 3a 20 25 64 69 72 0a | 58 20 20 20 20 20 20 25 |n: %dir.|X %|
|00002470| 31 30 74 79 70 65 20 25 | 6d 6f 64 65 20 25 30 38 |10type %|mode %08|
|00002480| 73 69 7a 65 20 25 64 61 | 74 65 20 25 6e 61 6d 65 |size %da|te %name|
|00002490| 0a 58 0a 58 22 3b 0a 58 | 0a 58 23 20 52 65 61 64 |.X.X";.X|.X# Read|
|000024a0| 20 7e 2f 2e 61 72 63 68 | 69 65 72 63 3f 0a 58 69 | ~/.arch|ierc?.Xi|
|000024b0| 66 20 28 21 64 65 66 69 | 6e 65 64 28 24 6f 70 74 |f (!defi|ned($opt|
|000024c0| 5f 6e 6f 72 63 29 29 20 | 7b 0a 58 20 20 20 20 26 |_norc)) |{.X &|
|000024d0| 70 61 72 73 65 72 63 28 | 29 3b 0a 58 7d 0a 58 0a |parserc(|);.X}.X.|
|000024e0| 58 23 20 70 72 69 6e 74 | 20 65 6e 74 72 69 65 73 |X# print| entries|
|000024f0| 20 77 68 65 6e 20 67 65 | 74 74 69 6e 67 20 74 68 | when ge|tting th|
|00002500| 65 6d 3f 0a 58 69 66 20 | 28 64 65 66 69 6e 65 64 |em?.Xif |(defined|
|00002510| 28 24 6f 70 74 5f 61 6c | 6f 6e 67 29 29 20 7b 0a |($opt_al|ong)) {.|
|00002520| 58 20 20 20 20 24 61 6c | 6f 6e 67 20 3d 20 31 3b |X $al|ong = 1;|
|00002530| 0a 58 7d 0a 58 0a 58 23 | 20 57 68 61 74 20 69 73 |.X}.X.X#| What is|
|00002540| 20 74 68 65 20 6e 75 6d | 62 65 72 20 6f 66 20 68 | the num|ber of h|
|00002550| 69 74 73 20 77 61 6e 74 | 65 64 3f 0a 58 69 66 20 |its want|ed?.Xif |
|00002560| 28 64 65 66 69 6e 65 64 | 28 24 6f 70 74 5f 6d 61 |(defined|($opt_ma|
|00002570| 74 63 68 29 29 20 7b 0a | 58 20 20 20 20 24 6d 61 |tch)) {.|X $ma|
|00002580| 74 63 68 20 3d 20 24 6f | 70 74 5f 6d 61 74 63 68 |tch = $o|pt_match|
|00002590| 3b 0a 58 7d 0a 58 0a 58 | 23 20 52 65 61 64 20 61 |;.X}.X.X|# Read a|
|000025a0| 20 66 6f 72 6d 61 74 20 | 73 74 72 69 6e 67 20 66 | format |string f|
|000025b0| 72 6f 6d 20 61 20 66 69 | 6c 65 2e 0a 58 69 66 20 |rom a fi|le..Xif |
|000025c0| 28 64 65 66 69 6e 65 64 | 28 24 6f 70 74 5f 66 66 |(defined|($opt_ff|
|000025d0| 69 6c 65 29 29 20 7b 0a | 58 20 20 20 20 69 66 20 |ile)) {.|X if |
|000025e0| 28 21 6f 70 65 6e 28 46 | 46 49 4c 45 2c 20 22 24 |(!open(F|FILE, "$|
|000025f0| 6f 70 74 5f 66 66 69 6c | 65 22 29 29 20 7b 0a 58 |opt_ffil|e")) {.X|
|00002600| 09 64 69 65 20 22 43 61 | 6e 27 74 20 6f 70 65 6e |.die "Ca|n't open|
|00002610| 20 66 6f 72 6d 61 74 20 | 66 69 6c 65 20 24 6f 70 | format |file $op|
|00002620| 74 5f 66 66 69 6c 65 5c | 6e 22 3b 0a 58 20 20 20 |t_ffile\|n";.X |
|00002630| 20 7d 0a 58 20 20 20 20 | 24 66 6f 72 6d 61 74 20 | }.X |$format |
|00002640| 3d 20 27 27 3b 0a 58 20 | 20 20 20 77 68 69 6c 65 |= '';.X | while|
|00002650| 20 28 24 5f 20 3d 20 3c | 46 46 49 4c 45 3e 29 20 | ($_ = <|FFILE>) |
|00002660| 7b 0a 58 09 24 66 6f 72 | 6d 61 74 20 2e 3d 20 24 |{.X.$for|mat .= $|
|00002670| 5f 3b 0a 58 20 20 20 20 | 7d 0a 58 20 20 20 20 63 |_;.X |}.X c|
|00002680| 6c 6f 73 65 28 46 46 49 | 4c 45 29 3b 0a 58 7d 0a |lose(FFI|LE);.X}.|
|00002690| 58 0a 58 23 20 52 65 61 | 64 20 61 20 66 6f 72 6d |X.X# Rea|d a form|
|000026a0| 61 74 20 73 74 72 69 6e | 67 20 6f 6e 20 74 68 65 |at strin|g on the|
|000026b0| 20 63 6f 6d 6d 61 6e 64 | 20 6c 69 6e 65 2e 0a 58 | command| line..X|
|000026c0| 69 66 20 28 64 65 66 69 | 6e 65 64 28 24 6f 70 74 |if (defi|ned($opt|
|000026d0| 5f 66 6f 72 6d 61 74 29 | 29 20 7b 0a 58 20 20 20 |_format)|) {.X |
|000026e0| 20 24 66 6f 72 6d 61 74 | 20 3d 20 24 6f 70 74 5f | $format| = $opt_|
|000026f0| 66 6f 72 6d 61 74 3b 0a | 58 7d 0a 58 0a 58 23 20 |format;.|X}.X.X# |
|00002700| 53 65 74 20 73 65 61 72 | 63 68 20 6f 70 74 69 6f |Set sear|ch optio|
|00002710| 6e 20 74 6f 20 63 61 73 | 65 20 73 65 6e 73 69 74 |n to cas|e sensit|
|00002720| 69 76 65 2e 0a 58 69 66 | 20 28 64 65 66 69 6e 65 |ive..Xif| (define|
|00002730| 64 28 24 6f 70 74 5f 63 | 61 73 65 29 29 20 7b 0a |d($opt_c|ase)) {.|
|00002740| 58 20 20 20 20 24 63 61 | 73 65 20 3d 20 27 43 27 |X $ca|se = 'C'|
|00002750| 3b 0a 58 7d 0a 58 0a 58 | 23 20 53 65 74 20 73 65 |;.X}.X.X|# Set se|
|00002760| 61 72 63 68 20 6f 70 74 | 69 6f 6e 20 74 6f 20 63 |arch opt|ion to c|
|00002770| 61 73 65 20 69 6e 73 65 | 6e 73 69 74 69 76 65 2e |ase inse|nsitive.|
|00002780| 0a 58 69 66 20 28 64 65 | 66 69 6e 65 64 28 24 6f |.Xif (de|fined($o|
|00002790| 70 74 5f 6e 6f 63 61 73 | 65 29 29 20 7b 0a 58 20 |pt_nocas|e)) {.X |
|000027a0| 20 20 20 24 63 61 73 65 | 20 3d 20 27 53 27 3b 0a | $case| = 'S';.|
|000027b0| 58 7d 0a 58 0a 58 23 20 | 73 65 74 20 74 68 65 20 |X}.X.X# |set the |
|000027c0| 73 65 61 72 63 68 20 6f | 70 74 69 6f 6e 20 74 6f |search o|ption to|
|000027d0| 20 72 65 67 75 6c 61 72 | 20 65 78 70 72 65 73 73 | regular| express|
|000027e0| 69 6f 6e 2e 0a 58 69 66 | 20 28 64 65 66 69 6e 65 |ion..Xif| (define|
|000027f0| 64 28 24 6f 70 74 5f 72 | 65 67 29 29 20 7b 0a 58 |d($opt_r|eg)) {.X|
|00002800| 20 20 20 20 24 63 61 73 | 65 20 3d 20 27 52 27 3b | $cas|e = 'R';|
|00002810| 0a 58 7d 0a 58 0a 58 23 | 20 73 65 74 20 74 68 65 |.X}.X.X#| set the|
|00002820| 20 73 65 61 72 63 68 20 | 6f 70 74 69 6f 6e 20 74 | search |option t|
|00002830| 6f 20 65 78 61 63 74 20 | 6d 61 74 63 68 0a 58 69 |o exact |match.Xi|
|00002840| 66 20 28 64 65 66 69 6e | 65 64 28 24 6f 70 74 5f |f (defin|ed($opt_|
|00002850| 65 78 61 63 74 29 29 20 | 7b 0a 58 20 20 20 20 24 |exact)) |{.X $|
|00002860| 63 61 73 65 20 3d 20 27 | 3d 27 3b 0a 58 7d 0a 58 |case = '|=';.X}.X|
|00002870| 0a 58 23 20 73 65 74 20 | 61 20 6e 65 77 20 61 72 |.X# set |a new ar|
|00002880| 63 68 69 65 20 68 6f 73 | 74 2e 0a 58 69 66 20 28 |chie hos|t..Xif (|
|00002890| 64 65 66 69 6e 65 64 28 | 24 6f 70 74 5f 68 6f 73 |defined(|$opt_hos|
|000028a0| 74 29 29 20 7b 0a 58 20 | 20 20 20 24 68 6f 73 74 |t)) {.X | $host|
|000028b0| 6e 61 6d 65 20 3d 20 24 | 6f 70 74 5f 68 6f 73 74 |name = $|opt_host|
|000028c0| 3b 0a 58 20 20 20 20 24 | 68 6f 73 74 63 61 70 73 |;.X $|hostcaps|
|000028d0| 20 3d 20 79 2f 61 2d 7a | 2f 41 2d 5a 2f 3b 0a 58 | = y/a-z|/A-Z/;.X|
|000028e0| 7d 0a 58 0a 58 23 20 70 | 61 72 73 65 20 74 68 65 |}.X.X# p|arse the|
|000028f0| 20 66 6f 72 6d 61 74 20 | 73 74 72 69 6e 67 2c 0a | format |string,.|
|00002900| 58 24 66 6f 72 6d 61 74 | 20 3d 20 26 70 61 72 73 |X$format| = &pars|
|00002910| 65 66 6f 72 6d 61 74 28 | 24 66 6f 72 6d 61 74 29 |eformat(|$format)|
|00002920| 3b 0a 58 0a 58 23 20 54 | 68 69 73 20 69 73 20 66 |;.X.X# T|his is f|
|00002930| 6f 72 20 63 68 65 63 6b | 69 6e 67 20 74 68 65 20 |or check|ing the |
|00002940| 66 6f 72 6d 61 74 20 65 | 74 63 2e 20 4e 6f 74 20 |format e|tc. Not |
|00002950| 66 6f 72 20 65 78 74 65 | 72 6e 61 6c 20 75 73 65 |for exte|rnal use|
|00002960| 20 3a 2d 29 0a 58 69 66 | 20 28 24 6f 70 74 5f 73 | :-).Xif| ($opt_s|
|00002970| 79 6e 74 61 78 29 20 7b | 0a 58 20 20 20 20 70 72 |yntax) {|.X pr|
|00002980| 69 6e 74 20 22 45 78 65 | 63 75 74 69 6f 6e 20 75 |int "Exe|cution u|
|00002990| 6e 74 69 6c 20 68 65 72 | 65 2e 5c 6e 22 3b 0a 58 |ntil her|e.\n";.X|
|000029a0| 20 20 20 20 65 78 69 74 | 28 30 29 3b 0a 58 7d 0a | exit|(0);.X}.|
|000029b0| 58 0a 58 23 20 47 65 74 | 20 74 68 65 20 49 50 20 |X.X# Get| the IP |
|000029c0| 61 64 64 72 65 73 73 20 | 6f 66 20 74 68 65 20 61 |address |of the a|
|000029d0| 72 63 68 69 65 20 73 65 | 72 76 65 72 2e 0a 58 69 |rchie se|rver..Xi|
|000029e0| 66 20 28 24 68 6f 73 74 | 6e 61 6d 65 20 3d 7e 20 |f ($host|name =~ |
|000029f0| 2f 5e 28 5c 64 2b 29 5c | 2e 28 5c 64 2b 29 5c 2e |/^(\d+)\|.(\d+)\.|
|00002a00| 28 5c 64 2b 29 5c 2e 28 | 5c 64 2b 29 24 2f 29 20 |(\d+)\.(|\d+)$/) |
|00002a10| 7b 0a 58 20 20 24 74 68 | 61 74 61 64 64 72 20 3d |{.X $th|ataddr =|
|00002a20| 20 70 61 63 6b 28 22 43 | 43 43 43 22 2c 20 24 31 | pack("C|CCC", $1|
|00002a30| 2c 20 24 32 2c 20 24 33 | 2c 20 24 34 29 3b 0a 58 |, $2, $3|, $4);.X|
|00002a40| 7d 0a 58 65 6c 73 69 66 | 20 28 21 28 28 24 6e 61 |}.Xelsif| (!(($na|
|00002a50| 6d 65 2c 20 24 61 6c 69 | 61 73 65 73 2c 20 24 74 |me, $ali|ases, $t|
|00002a60| 79 70 65 2c 20 24 6c 65 | 6e 2c 20 24 74 68 61 74 |ype, $le|n, $that|
|00002a70| 61 64 64 72 29 20 3d 20 | 0a 58 09 20 67 65 74 68 |addr) = |.X. geth|
|00002a80| 6f 73 74 62 79 6e 61 6d | 65 28 24 68 6f 73 74 6e |ostbynam|e($hostn|
|00002a90| 61 6d 65 29 29 29 20 7b | 0a 58 20 20 20 20 24 74 |ame))) {|.X $t|
|00002aa0| 68 61 74 61 64 64 72 20 | 3d 20 26 72 65 73 6f 6c |hataddr |= &resol|
|00002ab0| 76 65 72 28 24 68 6f 73 | 74 6e 61 6d 65 2c 20 24 |ver($hos|tname, $|
|00002ac0| 73 65 72 76 65 72 29 20 | 7c 7c 20 64 69 65 20 22 |server) ||| die "|
|00002ad0| 4e 6f 20 73 75 63 68 20 | 68 6f 73 74 22 3b 0a 58 |No such |host";.X|
|00002ae0| 7d 0a 58 24 74 68 65 6d | 20 3d 20 70 61 63 6b 28 |}.X$them| = pack(|
|00002af0| 24 73 6f 63 6b 61 64 64 | 72 2c 20 26 41 46 5f 49 |$sockadd|r, &AF_I|
|00002b00| 4e 45 54 2c 20 24 70 6f | 72 74 2c 20 24 74 68 61 |NET, $po|rt, $tha|
|00002b10| 74 61 64 64 72 29 3b 0a | 58 63 68 6f 70 28 24 74 |taddr);.|Xchop($t|
|00002b20| 68 69 73 68 6f 73 74 20 | 3d 20 60 68 6f 73 74 6e |hishost |= `hostn|
|00002b30| 61 6d 65 60 29 3b 0a 58 | 28 24 6e 61 6d 65 2c 20 |ame`);.X|($name, |
|00002b40| 24 61 6c 69 61 73 65 73 | 2c 20 24 74 79 70 65 2c |$aliases|, $type,|
|00002b50| 20 24 6c 65 6e 2c 20 24 | 74 68 69 73 61 64 64 72 | $len, $|thisaddr|
|00002b60| 29 20 3d 20 67 65 74 68 | 6f 73 74 62 79 6e 61 6d |) = geth|ostbynam|
|00002b70| 65 28 24 74 68 69 73 68 | 6f 73 74 29 3b 0a 58 24 |e($thish|ost);.X$|
|00002b80| 75 73 20 3d 20 70 61 63 | 6b 28 24 73 6f 63 6b 61 |us = pac|k($socka|
|00002b90| 64 64 72 2c 20 26 41 46 | 5f 49 4e 45 54 2c 20 30 |ddr, &AF|_INET, 0|
|00002ba0| 2c 20 24 74 68 69 73 61 | 64 64 72 29 3b 0a 58 0a |, $thisa|ddr);.X.|
|00002bb0| 58 23 20 67 65 74 20 61 | 6e 64 20 62 69 6e 64 20 |X# get a|nd bind |
|00002bc0| 61 20 73 6f 63 6b 65 74 | 2e 0a 58 73 6f 63 6b 65 |a socket|..Xsocke|
|00002bd0| 74 28 44 41 54 41 2c 20 | 26 41 46 5f 49 4e 45 54 |t(DATA, |&AF_INET|
|00002be0| 2c 20 26 53 4f 43 4b 5f | 44 47 52 41 4d 2c 20 30 |, &SOCK_|DGRAM, 0|
|00002bf0| 29 20 7c 7c 20 64 69 65 | 20 22 73 6f 63 6b 65 74 |) || die| "socket|
|00002c00| 3a 24 21 5c 6e 22 3b 0a | 58 62 69 6e 64 28 44 41 |:$!\n";.|Xbind(DA|
|00002c10| 54 41 2c 20 24 75 73 29 | 20 7c 7c 20 64 69 65 20 |TA, $us)| || die |
|00002c20| 22 62 69 6e 64 3a 20 24 | 21 5c 6e 22 3b 0a 58 0a |"bind: $|!\n";.X.|
|00002c30| 58 73 65 6c 65 63 74 28 | 53 54 44 4f 55 54 29 3b |Xselect(|STDOUT);|
|00002c40| 20 24 7c 20 3d 20 31 3b | 0a 58 0a 58 23 20 47 65 | $| = 1;|.X.X# Ge|
|00002c50| 74 20 74 68 65 20 6c 69 | 73 74 20 6f 66 20 6d 61 |t the li|st of ma|
|00002c60| 74 63 68 65 73 2e 0a 58 | 24 68 6f 73 74 73 20 3d |tches..X|$hosts =|
|00002c70| 20 26 6c 69 73 74 28 24 | 74 68 65 6d 2c 20 24 75 | &list($|them, $u|
|00002c80| 73 65 72 2c 20 40 73 74 | 72 69 6e 67 29 3b 0a 58 |ser, @st|ring);.X|
|00002c90| 0a 58 23 20 50 72 69 6e | 74 20 74 68 65 6d 2e 0a |.X# Prin|t them..|
|00002ca0| 58 69 66 20 28 21 24 61 | 6c 6f 6e 67 29 20 7b 0a |Xif (!$a|long) {.|
|00002cb0| 58 20 20 20 20 26 6f 75 | 74 70 75 74 28 24 68 6f |X &ou|tput($ho|
|00002cc0| 73 74 73 29 3b 0a 58 7d | 0a 58 63 6c 6f 73 65 28 |sts);.X}|.Xclose(|
|00002cd0| 44 41 54 41 29 3b 0a 58 | 0a 58 23 20 54 68 65 20 |DATA);.X|.X# The |
|00002ce0| 73 75 62 72 6f 75 74 69 | 6e 65 20 6c 69 73 74 20 |subrouti|ne list |
|00002cf0| 69 73 20 74 68 65 20 60 | 6d 65 61 74 27 20 6f 66 |is the `|meat' of|
|00002d00| 20 74 68 65 20 71 75 65 | 72 79 2e 0a 58 23 20 49 | the que|ry..X# I|
|00002d10| 74 20 73 65 6e 64 73 20 | 74 68 65 20 71 75 65 72 |t sends |the quer|
|00002d20| 79 20 74 6f 20 74 68 65 | 20 61 72 63 68 69 65 20 |y to the| archie |
|00002d30| 73 65 72 76 65 72 20 68 | 6f 73 74 20 61 6e 64 20 |server h|ost and |
|00002d40| 70 61 72 73 65 73 20 74 | 68 65 20 65 6e 74 72 69 |parses t|he entri|
|00002d50| 65 73 0a 58 23 20 72 65 | 74 75 72 6e 65 64 20 62 |es.X# re|turned b|
|00002d60| 79 20 74 68 65 20 73 65 | 72 76 65 72 2e 0a 58 73 |y the se|rver..Xs|
|00002d70| 75 62 20 6c 69 73 74 20 | 7b 0a 58 20 20 20 20 6c |ub list |{.X l|
|00002d80| 6f 63 61 6c 28 24 74 68 | 65 6d 2c 20 24 75 73 65 |ocal($th|em, $use|
|00002d90| 72 2c 20 40 77 6f 72 64 | 73 29 20 3d 20 40 5f 3b |r, @word|s) = @_;|
|00002da0| 0a 58 20 20 20 20 6c 6f | 63 61 6c 28 24 61 6e 73 |.X lo|cal($ans|
|00002db0| 77 65 72 2c 20 24 61 6e | 73 2c 20 24 74 69 6d 65 |wer, $an|s, $time|
|00002dc0| 6f 75 74 2c 20 24 72 65 | 74 72 69 65 73 2c 20 24 |out, $re|tries, $|
|00002dd0| 6c 69 6e 65 73 2c 20 40 | 6c 69 6e 65 73 29 3b 0a |lines, @|lines);.|
|00002de0| 58 20 20 20 20 6c 6f 63 | 61 6c 28 24 70 6b 74 73 |X loc|al($pkts|
|00002df0| 6e 75 6d 2c 20 24 70 6b | 74 73 65 71 2c 20 24 73 |num, $pk|tseq, $s|
|00002e00| 65 71 2c 20 24 72 69 6e | 2c 20 24 74 69 6d 65 6c |eq, $rin|, $timel|
|00002e10| 65 66 74 2c 20 24 72 6f | 75 74 2c 20 24 6e 66 6f |eft, $ro|ut, $nfo|
|00002e20| 75 6e 64 29 3b 0a 58 20 | 20 20 20 6c 6f 63 61 6c |und);.X | local|
|00002e30| 28 24 68 64 72 5f 6c 65 | 6e 2c 20 24 69 64 2c 20 |($hdr_le|n, $id, |
|00002e40| 24 64 75 6d 2c 20 24 62 | 61 63 6b 6f 66 66 2c 20 |$dum, $b|ackoff, |
|00002e50| 24 63 74 6c 70 74 72 2c | 20 24 77 6f 72 64 2c 20 |$ctlptr,| $word, |
|00002e60| 24 6b 6b 29 3b 0a 58 20 | 20 20 20 6c 6f 63 61 6c |$kk);.X | local|
|00002e70| 28 24 66 69 72 73 74 2c | 20 24 74 72 61 69 6c 65 |($first,| $traile|
|00002e80| 72 2c 20 24 68 65 61 64 | 65 72 2c 20 24 72 64 70 |r, $head|er, $rdp|
|00002e90| 2c 20 24 69 6e 64 65 78 | 29 3b 0a 58 20 20 20 20 |, $index|);.X |
|00002ea0| 6c 6f 63 61 6c 28 24 70 | 61 63 6b 65 74 29 20 3d |local($p|acket) =|
|00002eb0| 20 30 3b 0a 58 20 20 20 | 20 0a 58 20 20 20 20 24 | 0;.X | .X $|
|00002ec0| 74 69 6d 65 6f 75 74 20 | 3d 20 34 3b 0a 58 20 20 |timeout |= 4;.X |
|00002ed0| 20 20 24 72 65 74 72 69 | 65 73 20 3d 20 33 3b 0a | $retri|es = 3;.|
|00002ee0| 58 0a 58 20 20 20 20 23 | 20 43 6f 6e 73 74 72 75 |X.X #| Constru|
|00002ef0| 63 74 20 74 68 65 20 71 | 75 65 72 79 20 70 61 63 |ct the q|uery pac|
|00002f00| 6b 65 74 2e 0a 58 20 20 | 20 20 40 6c 69 6e 65 73 |ket..X | @lines|
|00002f10| 20 3d 20 28 22 56 45 52 | 53 49 4f 4e 20 31 5c 6e | = ("VER|SION 1\n|
|00002f20| 22 2c 20 22 41 55 54 48 | 45 4e 54 49 43 41 54 4f |", "AUTH|ENTICATO|
|00002f30| 52 20 55 4e 41 55 54 48 | 45 4e 54 49 43 41 54 45 |R UNAUTH|ENTICATE|
|00002f40| 44 20 24 75 73 65 72 5c | 6e 22 29 3b 0a 58 20 20 |D $user\|n");.X |
|00002f50| 20 20 66 6f 72 65 61 63 | 68 20 24 77 6f 72 64 20 | foreac|h $word |
|00002f60| 28 40 77 6f 72 64 73 29 | 20 7b 0a 58 09 70 75 73 |(@words)| {.X.pus|
|00002f70| 68 28 40 6c 69 6e 65 73 | 2c 20 22 44 49 52 45 43 |h(@lines|, "DIREC|
|00002f80| 54 4f 52 59 20 41 53 43 | 49 49 20 41 52 43 48 49 |TORY ASC|II ARCHI|
|00002f90| 45 2f 4d 41 54 43 48 28 | 24 6d 61 74 63 68 2c 30 |E/MATCH(|$match,0|
|00002fa0| 2c 24 63 61 73 65 29 2f | 24 77 6f 72 64 5c 6e 22 |,$case)/|$word\n"|
|00002fb0| 29 3b 0a 58 09 70 75 73 | 68 28 40 6c 69 6e 65 73 |);.X.pus|h(@lines|
|00002fc0| 2c 20 22 4c 49 53 54 20 | 41 54 54 52 49 42 55 54 |, "LIST |ATTRIBUT|
|00002fd0| 45 53 20 43 4f 4d 50 4f | 4e 45 4e 54 53 20 5c 6e |ES COMPO|NENTS \n|
|00002fe0| 22 29 3b 0a 58 20 20 20 | 20 7d 0a 58 20 20 20 20 |");.X | }.X |
|00002ff0| 24 6c 69 6e 65 73 20 3d | 20 6a 6f 69 6e 28 27 27 |$lines =| join(''|
|00003000| 2c 20 40 6c 69 6e 65 73 | 29 3b 0a 58 0a 58 20 20 |, @lines|);.X.X |
|00003010| 20 20 24 66 69 72 73 74 | 20 3d 20 31 3b 0a 58 20 | $first| = 1;.X |
|00003020| 20 72 65 74 72 79 3a 20 | 0a 58 20 20 20 20 77 68 | retry: |.X wh|
|00003030| 69 6c 65 20 28 24 66 69 | 72 73 74 29 20 7b 0a 58 |ile ($fi|rst) {.X|
|00003040| 09 24 66 69 72 73 74 20 | 3d 20 30 3b 0a 58 09 73 |.$first |= 0;.X.s|
|00003050| 65 6e 64 28 44 41 54 41 | 2c 20 24 6c 69 6e 65 73 |end(DATA|, $lines|
|00003060| 2c 20 30 2c 20 24 74 68 | 65 6d 29 3b 0a 58 09 24 |, 0, $th|em);.X.$|
|00003070| 70 6b 74 73 6e 75 6d 20 | 3d 20 30 3b 0a 58 09 77 |pktsnum |= 0;.X.w|
|00003080| 68 69 6c 65 20 28 31 29 | 20 7b 0a 58 09 20 20 20 |hile (1)| {.X. |
|00003090| 20 24 73 65 71 20 3d 20 | 30 3b 0a 58 0a 58 09 20 | $seq = |0;.X.X. |
|000030a0| 20 20 20 23 20 77 61 69 | 74 20 66 6f 72 20 61 20 | # wai|t for a |
|000030b0| 70 61 63 6b 65 74 20 74 | 6f 20 63 6f 6d 65 20 62 |packet t|o come b|
|000030c0| 61 63 6b 2e 0a 58 09 20 | 20 20 20 24 72 69 6e 20 |ack..X. | $rin |
|000030d0| 3d 20 27 27 3b 0a 58 09 | 20 20 20 20 76 65 63 28 |= '';.X.| vec(|
|000030e0| 24 72 69 6e 2c 20 66 69 | 6c 65 6e 6f 28 44 41 54 |$rin, fi|leno(DAT|
|000030f0| 41 29 2c 20 31 29 20 3d | 20 31 3b 0a 58 09 20 20 |A), 1) =| 1;.X. |
|00003100| 20 20 28 24 6e 66 6f 75 | 6e 64 2c 20 24 74 69 6d | ($nfou|nd, $tim|
|00003110| 65 6c 65 66 74 29 20 3d | 20 73 65 6c 65 63 74 28 |eleft) =| select(|
|00003120| 24 72 6f 75 74 20 3d 20 | 24 72 69 6e 2c 20 27 27 |$rout = |$rin, ''|
|00003130| 2c 20 27 27 2c 20 24 74 | 69 6d 65 6f 75 74 29 3b |, '', $t|imeout);|
|00003140| 0a 58 09 20 20 20 20 69 | 66 20 28 28 24 74 69 6d |.X. i|f (($tim|
|00003150| 65 6c 65 66 74 20 3d 3d | 20 30 20 7c 7c 20 6f 72 |eleft ==| 0 || or|
|00003160| 64 28 24 72 6f 75 74 29 | 20 3d 3d 20 30 29 20 26 |d($rout)| == 0) &|
|00003170| 26 20 28 24 72 65 74 72 | 69 65 73 2d 2d 20 3e 20 |& ($retr|ies-- > |
|00003180| 30 29 29 20 7b 0a 58 09 | 09 24 74 69 6d 65 6f 75 |0)) {.X.|.$timeou|
|00003190| 74 20 2a 3d 20 32 3b 0a | 58 09 09 72 65 64 6f 20 |t *= 2;.|X..redo |
|000031a0| 72 65 74 72 79 3b 0a 58 | 09 20 20 20 20 7d 0a 58 |retry;.X|. }.X|
|000031b0| 0a 58 09 20 20 20 20 23 | 20 52 65 61 64 20 61 20 |.X. #| Read a |
|000031c0| 70 61 63 6b 65 74 20 66 | 72 6f 6d 20 74 68 65 20 |packet f|rom the |
|000031d0| 73 65 72 76 65 72 2e 0a | 58 09 20 20 20 20 24 61 |server..|X. $a|
|000031e0| 6e 73 20 3d 20 27 27 3b | 0a 58 09 20 20 20 20 69 |ns = '';|.X. i|
|000031f0| 66 20 28 21 28 72 65 63 | 76 28 44 41 54 41 2c 20 |f (!(rec|v(DATA, |
|00003200| 24 61 6e 73 2c 20 31 30 | 30 30 30 2c 20 30 29 29 |$ans, 10|000, 0))|
|00003210| 29 20 7b 0a 58 09 09 64 | 69 65 20 22 72 65 63 76 |) {.X..d|ie "recv|
|00003220| 3a 20 43 61 6e 27 74 20 | 72 65 63 76 2e 20 44 69 |: Can't |recv. Di|
|00003230| 65 2e 5c 6e 22 3b 0a 58 | 09 20 20 20 20 7d 0a 58 |e.\n";.X|. }.X|
|00003240| 09 20 20 20 20 24 70 61 | 63 6b 65 74 2b 2b 3b 0a |. $pa|cket++;.|
|00003250| 58 0a 58 09 20 20 20 20 | 23 20 49 66 20 74 68 65 |X.X. |# If the|
|00003260| 20 66 69 72 73 74 20 62 | 79 74 65 20 69 73 20 6c | first b|yte is l|
|00003270| 65 73 73 20 74 68 61 6e | 20 32 30 2c 20 74 68 65 |ess than| 20, the|
|00003280| 6e 20 74 68 69 73 20 69 | 73 20 61 20 6f 6c 64 2d |n this i|s a old-|
|00003290| 66 61 73 68 69 6f 6e 65 | 64 0a 58 09 20 20 20 20 |fashione|d.X. |
|000032a0| 23 20 70 61 63 6b 65 74 | 2e 20 54 6f 20 62 65 20 |# packet|. To be |
|000032b0| 70 68 61 73 65 64 20 6f | 75 74 20 6c 61 74 65 72 |phased o|ut later|
|000032c0| 3f 0a 58 09 20 20 20 20 | 69 66 20 28 28 24 68 64 |?.X. |if (($hd|
|000032d0| 72 5f 6c 65 6e 20 3d 20 | 6f 72 64 28 73 75 62 73 |r_len = |ord(subs|
|000032e0| 74 72 28 24 61 6e 73 2c | 20 30 2c 20 31 29 29 29 |tr($ans,| 0, 1)))|
|000032f0| 20 3c 20 32 30 29 20 7b | 0a 58 09 09 23 20 54 68 | < 20) {|.X..# Th|
|00003300| 65 20 68 65 61 64 65 72 | 20 66 6f 72 6d 61 74 20 |e header| format |
|00003310| 69 73 3a 0a 58 09 09 23 | 20 43 4e 4e 4e 4e 4e 0a |is:.X..#| CNNNNN.|
|00003320| 58 09 09 23 20 54 68 65 | 20 66 69 72 73 74 20 62 |X..# The| first b|
|00003330| 79 74 65 20 69 73 20 6c | 65 6e 67 74 68 2c 20 74 |yte is l|ength, t|
|00003340| 68 65 20 73 65 63 6f 6e | 64 20 73 68 6f 72 74 20 |he secon|d short |
|00003350| 69 6e 74 65 67 65 72 20 | 74 68 65 20 69 64 2c 0a |integer |the id,.|
|00003360| 58 09 09 23 20 54 68 65 | 20 74 68 69 72 64 20 73 |X..# The| third s|
|00003370| 68 6f 72 74 20 69 6e 74 | 65 67 65 72 20 74 68 65 |hort int|eger the|
|00003380| 20 73 65 71 75 65 6e 63 | 65 20 6e 75 6d 62 65 72 | sequenc|e number|
|00003390| 2c 20 74 68 65 6e 20 74 | 68 65 20 6e 75 6d 62 65 |, then t|he numbe|
|000033a0| 72 0a 58 09 09 23 20 6f | 66 20 70 61 63 6b 65 74 |r.X..# o|f packet|
|000033b0| 73 20 6f 6e 20 74 68 65 | 20 77 61 79 2c 20 61 20 |s on the| way, a |
|000033c0| 64 75 6d 6d 79 20 66 69 | 65 6c 64 20 6e 6f 74 20 |dummy fi|eld not |
|000033d0| 75 73 65 66 75 6c 20 66 | 6f 72 20 61 20 63 6c 69 |useful f|or a cli|
|000033e0| 65 6e 74 2c 0a 58 09 09 | 23 20 61 6e 64 20 74 68 |ent,.X..|# and th|
|000033f0| 65 6e 20 74 68 65 20 62 | 61 63 6b 6f 66 66 20 74 |en the b|ackoff t|
|00003400| 69 6d 65 20 72 65 71 75 | 65 73 74 65 64 20 62 79 |ime requ|ested by|
|00003410| 20 74 68 65 20 73 65 72 | 76 65 72 2e 0a 58 09 09 | the ser|ver..X..|
|00003420| 24 73 65 71 20 3d 20 30 | 3b 0a 58 09 09 28 24 68 |$seq = 0|;.X..($h|
|00003430| 64 72 5f 6c 65 6e 2c 20 | 24 69 64 2c 20 24 73 65 |dr_len, |$id, $se|
|00003440| 71 2c 20 24 70 6b 74 73 | 6e 75 6d 2c 20 24 64 75 |q, $pkts|num, $du|
|00003450| 6d 2c 20 24 62 61 63 6b | 6f 66 66 29 20 3d 20 0a |m, $back|off) = .|
|00003460| 58 09 09 20 20 20 20 75 | 6e 70 61 63 6b 28 22 43 |X.. u|npack("C|
|00003470| 6e 2a 22 2c 20 24 61 6e | 73 29 3b 0a 58 09 09 69 |n*", $an|s);.X..i|
|00003480| 66 20 28 24 68 64 72 5f | 6c 65 6e 20 3c 20 35 29 |f ($hdr_|len < 5)|
|00003490| 20 7b 0a 58 09 09 20 20 | 20 20 24 73 65 71 20 3d | {.X.. | $seq =|
|000034a0| 20 24 70 6b 74 73 6e 75 | 6d 20 3d 20 31 3b 0a 58 | $pktsnu|m = 1;.X|
|000034b0| 09 09 7d 0a 58 09 09 69 | 66 20 28 24 68 64 72 5f |..}.X..i|f ($hdr_|
|000034c0| 6c 65 6e 20 3e 3d 20 31 | 31 20 26 26 20 24 62 61 |len >= 1|1 && $ba|
|000034d0| 63 6b 6f 66 66 20 21 3d | 20 30 29 20 7b 0a 58 09 |ckoff !=| 0) {.X.|
|000034e0| 09 20 20 20 20 24 74 69 | 6d 65 6f 75 74 20 3d 20 |. $ti|meout = |
|000034f0| 24 62 61 63 6b 6f 66 66 | 3b 0a 58 09 09 7d 0a 58 |$backoff|;.X..}.X|
|00003500| 09 09 6e 65 78 74 20 69 | 66 20 28 24 73 65 71 20 |..next i|f ($seq |
|00003510| 3d 3d 20 30 29 3b 0a 58 | 09 09 73 75 62 73 74 72 |== 0);.X|..substr|
|00003520| 28 24 61 6e 73 2c 20 30 | 2c 20 24 68 64 72 5f 6c |($ans, 0|, $hdr_l|
|00003530| 65 6e 29 20 3d 20 27 27 | 3b 0a 58 09 20 20 20 20 |en) = ''|;.X. |
|00003540| 7d 0a 58 09 20 20 20 20 | 65 6c 73 65 20 7b 0a 58 |}.X. |else {.X|
|00003550| 09 09 23 20 4e 65 77 20 | 66 6f 72 6d 61 74 2e 20 |..# New |format. |
|00003560| 53 74 69 6c 6c 20 68 61 | 76 65 20 76 65 72 79 20 |Still ha|ve very |
|00003570| 76 61 67 75 65 20 61 62 | 6f 75 74 20 74 68 65 20 |vague ab|out the |
|00003580| 66 6f 72 6d 61 74 20 6f | 66 0a 58 09 09 23 20 74 |format o|f.X..# t|
|00003590| 68 69 73 20 6b 69 6e 64 | 20 6f 66 20 70 61 63 6b |his kind| of pack|
|000035a0| 65 74 73 2e 20 43 6f 75 | 6c 64 20 6e 6f 74 20 66 |ets. Cou|ld not f|
|000035b0| 69 6e 64 20 69 74 20 69 | 6e 20 70 72 6f 74 6f 63 |ind it i|n protoc|
|000035c0| 6f 6c 2e 74 78 74 2e 0a | 58 09 09 23 20 47 6f 74 |ol.txt..|X..# Got|
|000035d0| 20 74 68 65 20 69 6e 66 | 6f 72 6d 61 74 69 6f 6e | the inf|ormation|
|000035e0| 20 66 72 6f 6d 20 0a 58 | 09 09 23 20 6c 69 62 2f | from .X|..# lib/|
|000035f0| 70 73 72 76 2f 72 65 70 | 6c 79 2e 63 20 61 6e 64 |psrv/rep|ly.c and|
|00003600| 20 6c 69 62 2f 70 66 73 | 2f 64 69 72 73 65 6e 64 | lib/pfs|/dirsend|
|00003610| 2e 63 0a 58 09 09 23 20 | 61 6e 64 20 61 20 69 6d |.c.X..# |and a im|
|00003620| 70 72 6f 76 65 64 20 70 | 72 6f 74 6f 63 6f 6c 2e |proved p|rotocol.|
|00003630| 74 78 74 20 66 72 6f 6d | 20 62 63 6e 40 63 73 2e |txt from| bcn@cs.|
|00003640| 77 61 73 68 69 6e 67 74 | 6f 6e 2e 65 64 75 2e 0a |washingt|on.edu..|
|00003650| 58 09 09 24 69 64 20 3d | 20 30 3b 0a 58 09 09 24 |X..$id =| 0;.X..$|
|00003660| 72 64 70 20 3d 20 28 24 | 68 64 72 5f 6c 65 6e 20 |rdp = ($|hdr_len |
|00003670| 26 20 30 78 63 30 29 20 | 3e 3e 20 36 3b 0a 58 09 |& 0xc0) |>> 6;.X.|
|00003680| 09 24 68 64 72 5f 6c 65 | 6e 20 3d 20 24 68 64 72 |.$hdr_le|n = $hdr|
|00003690| 5f 6c 65 6e 20 26 20 30 | 78 33 46 3b 0a 58 09 09 |_len & 0|x3F;.X..|
|000036a0| 24 68 65 61 64 65 72 20 | 3d 20 73 75 62 73 74 72 |$header |= substr|
|000036b0| 28 24 61 6e 73 2c 20 30 | 2c 20 24 68 64 72 5f 6c |($ans, 0|, $hdr_l|
|000036c0| 65 6e 29 3b 0a 58 09 09 | 73 75 62 73 74 72 28 24 |en);.X..|substr($|
|000036d0| 61 6e 73 2c 20 30 2c 20 | 24 68 64 72 5f 6c 65 6e |ans, 0, |$hdr_len|
|000036e0| 29 20 3d 20 27 27 3b 0a | 58 09 09 24 69 6e 64 65 |) = '';.|X..$inde|
|000036f0| 78 20 3d 20 69 6e 64 65 | 78 28 24 61 6e 73 2c 20 |x = inde|x($ans, |
|00003700| 22 5c 30 30 30 22 29 3b | 0a 58 09 09 24 69 6e 64 |"\000");|.X..$ind|
|00003710| 65 78 2b 2b 3b 0a 58 09 | 09 24 74 72 61 69 6c 65 |ex++;.X.|.$traile|
|00003720| 72 20 3d 20 73 75 62 73 | 74 72 28 24 61 6e 73 2c |r = subs|tr($ans,|
|00003730| 20 24 69 6e 64 65 78 29 | 3b 0a 58 09 09 73 75 62 | $index)|;.X..sub|
|00003740| 73 74 72 28 24 61 6e 73 | 2c 20 24 69 6e 64 65 78 |str($ans|, $index|
|00003750| 29 20 3d 20 27 27 3b 0a | 58 09 09 28 24 69 64 2c |) = '';.|X..($id,|
|00003760| 20 24 73 65 71 2c 20 24 | 6b 6b 2c 20 24 64 75 6d | $seq, $|kk, $dum|
|00003770| 2c 20 24 62 61 63 6b 6f | 66 66 29 20 3d 20 75 6e |, $backo|ff) = un|
|00003780| 70 61 63 6b 28 22 6e 6e | 6e 6e 6e 22 2c 20 24 74 |pack("nn|nnn", $t|
|00003790| 72 61 69 6c 65 72 29 3b | 0a 58 09 09 69 66 20 28 |railer);|.X..if (|
|000037a0| 24 6b 6b 29 20 7b 0a 58 | 09 09 20 20 20 20 24 70 |$kk) {.X|.. $p|
|000037b0| 6b 74 73 6e 75 6d 20 3d | 20 24 6b 6b 3b 0a 58 09 |ktsnum =| $kk;.X.|
|000037c0| 09 7d 0a 58 09 09 69 66 | 20 28 24 62 61 63 6b 6f |.}.X..if| ($backo|
|000037d0| 66 66 29 20 7b 0a 58 09 | 09 20 20 20 20 24 74 69 |ff) {.X.|. $ti|
|000037e0| 6d 65 6f 75 74 20 3d 20 | 24 62 61 63 6b 6f 66 66 |meout = |$backoff|
|000037f0| 3b 0a 58 09 09 7d 0a 58 | 09 09 6e 65 78 74 20 69 |;.X..}.X|..next i|
|00003800| 66 20 28 24 73 65 71 20 | 3d 3d 20 30 29 3b 0a 58 |f ($seq |== 0);.X|
|00003810| 09 09 23 20 47 65 74 20 | 6d 75 6c 74 69 20 70 61 |..# Get |multi pa|
|00003820| 63 6b 65 74 20 73 65 71 | 75 65 6e 63 65 20 61 6e |cket seq|uence an|
|00003830| 64 20 71 75 61 6e 74 69 | 74 79 2e 0a 58 09 09 69 |d quanti|ty..X..i|
|00003840| 66 20 28 24 61 6e 73 20 | 3d 7e 20 2f 5e 4d 55 4c |f ($ans |=~ /^MUL|
|00003850| 54 49 2d 50 41 43 4b 45 | 54 5c 73 2b 28 5c 64 2b |TI-PACKE|T\s+(\d+|
|00003860| 29 5c 73 2b 4f 46 5c 73 | 2b 28 5c 64 2b 29 2f 29 |)\s+OF\s|+(\d+)/)|
|00003870| 20 7b 0a 58 09 09 20 20 | 20 20 23 20 41 63 63 6f | {.X.. | # Acco|
|00003880| 72 64 69 6e 67 20 74 6f | 20 74 68 65 20 73 6f 75 |rding to| the sou|
|00003890| 72 63 65 20 63 6f 64 65 | 2c 20 74 68 69 73 20 69 |rce code|, this i|
|000038a0| 73 20 73 65 6e 74 0a 58 | 09 09 20 20 20 20 23 20 |s sent.X|.. # |
|000038b0| 6f 6e 6c 79 20 61 73 20 | 74 68 65 20 6c 61 73 74 |only as |the last|
|000038c0| 20 70 61 63 6b 65 74 2e | 0a 58 09 09 20 20 20 20 | packet.|.X.. |
|000038d0| 70 72 69 6e 74 20 22 4d | 55 4c 54 49 2d 50 41 43 |print "M|ULTI-PAC|
|000038e0| 4b 45 54 20 4f 46 20 69 | 73 20 73 65 6e 74 5c 6e |KET OF i|s sent\n|
|000038f0| 22 3b 0a 58 09 09 20 20 | 20 20 24 73 65 71 20 3d |";.X.. | $seq =|
|00003900| 20 24 31 3b 0a 58 09 09 | 20 20 20 20 24 70 6b 74 | $1;.X..| $pkt|
|00003910| 73 6e 75 6d 20 3d 20 24 | 32 3b 0a 58 09 09 7d 0a |snum = $|2;.X..}.|
|00003920| 58 09 09 65 6c 73 69 66 | 20 28 24 61 6e 73 20 3d |X..elsif| ($ans =|
|00003930| 7e 20 2f 5e 4d 55 4c 54 | 49 2d 50 41 43 4b 45 54 |~ /^MULT|I-PACKET|
|00003940| 5c 73 2b 28 5c 64 2b 29 | 2f 29 20 7b 0a 58 09 09 |\s+(\d+)|/) {.X..|
|00003950| 20 20 20 20 70 72 69 6e | 74 20 22 4d 55 4c 54 49 | prin|t "MULTI|
|00003960| 2d 50 41 43 4b 45 54 20 | 69 73 20 73 65 6e 74 5c |-PACKET |is sent\|
|00003970| 6e 22 3b 0a 58 09 09 20 | 20 20 20 24 73 65 71 20 |n";.X.. | $seq |
|00003980| 3d 20 24 31 3b 0a 58 09 | 09 20 20 20 20 24 70 6b |= $1;.X.|. $pk|
|00003990| 74 73 6e 75 6d 20 3d 20 | 30 3b 0a 58 09 09 7d 0a |tsnum = |0;.X..}.|
|000039a0| 58 09 09 65 6c 73 65 20 | 7b 0a 58 09 09 20 20 20 |X..else |{.X.. |
|000039b0| 20 23 20 6f 75 74 70 75 | 74 20 69 66 20 74 68 65 | # outpu|t if the|
|000039c0| 20 75 73 65 72 20 77 61 | 6e 74 73 20 74 6f 20 72 | user wa|nts to r|
|000039d0| 65 61 64 20 74 68 65 20 | 65 6e 74 72 69 65 73 20 |ead the |entries |
|000039e0| 77 68 65 6e 0a 58 09 09 | 20 20 20 20 23 20 73 74 |when.X..| # st|
|000039f0| 69 6c 6c 20 6d 61 74 63 | 68 69 6e 67 2e 0a 58 09 |ill matc|hing..X.|
|00003a00| 09 20 20 20 20 69 66 20 | 28 24 61 6c 6f 6e 67 29 |. if |($along)|
|00003a10| 20 7b 0a 58 09 09 09 26 | 6f 75 74 70 75 74 28 24 | {.X...&|output($|
|00003a20| 61 6e 73 29 3b 0a 58 09 | 09 20 20 20 20 7d 0a 58 |ans);.X.|. }.X|
|00003a30| 09 09 20 20 20 20 72 65 | 74 75 72 6e 28 24 61 6e |.. re|turn($an|
|00003a40| 73 29 3b 0a 58 09 09 7d | 0a 58 09 09 24 69 6e 64 |s);.X..}|.X..$ind|
|00003a50| 65 78 20 3d 20 69 6e 64 | 65 78 28 24 61 6e 73 2c |ex = ind|ex($ans,|
|00003a60| 20 22 5c 6e 22 29 3b 0a | 58 09 09 24 61 6e 73 20 | "\n");.|X..$ans |
|00003a70| 3d 20 73 75 62 73 74 72 | 28 24 61 6e 73 2c 20 24 |= substr|($ans, $|
|00003a80| 69 6e 64 65 78 20 2b 20 | 31 29 3b 0a 58 09 20 20 |index + |1);.X. |
|00003a90| 20 20 7d 0a 58 09 20 20 | 20 20 24 70 6b 74 73 65 | }.X. | $pktse|
|00003aa0| 71 2b 2b 3b 0a 58 09 20 | 20 20 20 24 72 65 74 72 |q++;.X. | $retr|
|00003ab0| 69 65 73 20 3d 20 33 3b | 0a 58 09 20 20 20 20 69 |ies = 3;|.X. i|
|00003ac0| 66 20 28 24 61 6c 6f 6e | 67 29 20 7b 0a 58 09 09 |f ($alon|g) {.X..|
|00003ad0| 26 6f 75 74 70 75 74 28 | 24 61 6e 73 29 3b 0a 58 |&output(|$ans);.X|
|00003ae0| 09 20 20 20 20 7d 0a 58 | 09 20 20 20 20 24 61 6e |. }.X|. $an|
|00003af0| 73 77 65 72 20 2e 3d 20 | 24 61 6e 73 3b 0a 58 09 |swer .= |$ans;.X.|
|00003b00| 20 20 20 20 23 20 54 68 | 65 20 63 6f 6e 64 69 74 | # Th|e condit|
|00003b10| 69 6f 6e 20 66 6f 72 20 | 67 65 74 74 69 6e 67 20 |ion for |getting |
|00003b20| 6d 6f 72 65 20 70 61 63 | 6b 65 74 73 2e 0a 58 09 |more pac|kets..X.|
|00003b30| 20 20 20 20 69 66 20 28 | 24 70 6b 74 73 6e 75 6d | if (|$pktsnum|
|00003b40| 20 3d 3d 20 30 20 7c 7c | 20 24 70 6b 74 73 65 71 | == 0 ||| $pktseq|
|00003b50| 20 3c 20 24 70 6b 74 73 | 6e 75 6d 29 20 7b 0a 58 | < $pkts|num) {.X|
|00003b60| 09 09 6e 65 78 74 3b 0a | 58 09 20 20 20 20 7d 0a |..next;.|X. }.|
|00003b70| 58 09 20 20 20 20 6c 61 | 73 74 3b 0a 58 09 7d 0a |X. la|st;.X.}.|
|00003b80| 58 20 20 20 20 7d 0a 58 | 20 20 20 20 72 65 74 75 |X }.X| retu|
|00003b90| 72 6e 28 24 61 6e 73 77 | 65 72 29 3b 0a 58 7d 0a |rn($answ|er);.X}.|
|00003ba0| 58 0a 58 23 20 50 72 69 | 6e 74 20 74 68 65 20 65 |X.X# Pri|nt the e|
|00003bb0| 6e 74 72 69 65 73 20 69 | 6e 20 61 20 70 61 63 6b |ntries i|n a pack|
|00003bc0| 65 74 2e 0a 58 73 75 62 | 20 6f 75 74 70 75 74 20 |et..Xsub| output |
|00003bd0| 7b 0a 58 20 20 20 20 6c | 6f 63 61 6c 28 24 6c 69 |{.X l|ocal($li|
|00003be0| 73 74 29 20 3d 20 40 5f | 3b 0a 58 20 20 20 20 6c |st) = @_|;.X l|
|00003bf0| 6f 63 61 6c 28 40 6c 69 | 6e 65 73 2c 20 24 64 75 |ocal(@li|nes, $du|
|00003c00| 6d 2c 20 24 61 72 63 6d | 6f 64 2c 20 24 6c 61 73 |m, $arcm|od, $las|
|00003c10| 74 6d 6f 64 2c 20 24 6d | 6f 64 65 73 2c 20 24 68 |tmod, $m|odes, $h|
|00003c20| 6f 73 74 2c 20 24 73 69 | 7a 65 2c 20 24 64 69 72 |ost, $si|ze, $dir|
|00003c30| 29 3b 0a 58 20 20 20 20 | 6c 6f 63 61 6c 28 24 6e |);.X |local($n|
|00003c40| 61 6d 65 2c 20 40 61 74 | 74 72 2c 20 40 61 69 6e |ame, @at|tr, @ain|
|00003c50| 66 6f 2c 20 24 74 79 70 | 65 29 3b 0a 58 0a 58 20 |fo, $typ|e);.X.X |
|00003c60| 20 20 20 23 20 73 70 6c | 69 74 20 74 68 65 20 6c | # spl|it the l|
|00003c70| 69 6e 65 73 20 69 6e 20 | 74 68 65 20 70 61 63 6b |ines in |the pack|
|00003c80| 65 74 20 66 69 72 73 74 | 2e 0a 58 20 20 20 20 40 |et first|..X @|
|00003c90| 6c 69 6e 65 73 20 3d 20 | 73 70 6c 69 74 28 2f 5c |lines = |split(/\|
|00003ca0| 6e 2f 2c 20 24 6c 69 73 | 74 29 3b 0a 58 20 20 20 |n/, $lis|t);.X |
|00003cb0| 20 24 68 6f 73 74 20 3d | 20 27 27 3b 0a 58 20 20 | $host =| '';.X |
|00003cc0| 20 20 77 68 69 6c 65 20 | 28 24 6c 69 6e 65 20 3d | while |($line =|
|00003cd0| 20 73 68 69 66 74 28 40 | 6c 69 6e 65 73 29 29 20 | shift(@|lines)) |
|00003ce0| 7b 0a 58 09 23 20 49 66 | 20 61 20 4c 49 4e 4b 20 |{.X.# If| a LINK |
|00003cf0| 4c 20 6c 69 6e 65 2c 20 | 74 68 65 6e 20 67 65 74 |L line, |then get|
|00003d00| 20 74 68 65 20 69 6e 69 | 74 69 61 6c 20 66 69 65 | the ini|tial fie|
|00003d10| 6c 64 73 20 66 6f 72 20 | 74 68 65 0a 58 09 23 20 |lds for |the.X.# |
|00003d20| 65 6e 74 72 79 2e 20 4f | 75 74 70 75 74 20 74 68 |entry. O|utput th|
|00003d30| 65 20 6c 61 73 74 20 65 | 6e 74 72 79 20 69 66 20 |e last e|ntry if |
|00003d40| 74 68 65 72 65 20 69 73 | 20 6f 6e 65 2e 0a 58 09 |there is| one..X.|
|00003d50| 69 66 20 28 24 6c 69 6e | 65 20 3d 7e 20 2f 5e 4c |if ($lin|e =~ /^L|
|00003d60| 49 4e 4b 20 4c 2f 29 20 | 7b 0a 58 09 20 20 20 20 |INK L/) |{.X. |
|00003d70| 69 66 20 28 24 68 6f 73 | 74 20 6e 65 20 27 27 29 |if ($hos|t ne '')|
|00003d80| 20 7b 0a 58 09 09 26 77 | 72 69 74 65 28 24 68 6f | {.X..&w|rite($ho|
|00003d90| 73 74 2c 20 24 74 79 70 | 65 2c 20 24 64 69 72 2c |st, $typ|e, $dir,|
|00003da0| 20 24 73 69 7a 65 2c 20 | 24 61 72 63 6d 6f 64 2c | $size, |$arcmod,|
|00003db0| 20 24 6d 6f 64 65 73 2c | 0a 58 09 09 20 20 20 20 | $modes,|.X.. |
|00003dc0| 20 20 20 24 6c 61 73 74 | 6d 6f 64 2c 20 24 6e 61 | $last|mod, $na|
|00003dd0| 6d 65 29 3b 0a 58 09 20 | 20 20 20 7d 0a 58 09 20 |me);.X. | }.X. |
|00003de0| 20 20 20 24 74 79 70 65 | 20 3d 20 24 6e 61 6d 65 | $type| = $name|
|00003df0| 20 3d 20 24 68 6f 73 74 | 20 3d 20 24 64 69 72 20 | = $host| = $dir |
|00003e00| 3d 20 27 27 3b 0a 58 09 | 20 20 20 20 24 73 69 7a |= '';.X.| $siz|
|00003e10| 65 20 3d 20 24 6d 6f 64 | 65 73 20 3d 20 24 6c 61 |e = $mod|es = $la|
|00003e20| 73 74 6d 6f 64 20 3d 20 | 24 61 72 63 6d 6f 64 20 |stmod = |$arcmod |
|00003e30| 3d 20 27 27 3b 0a 58 09 | 20 20 20 20 24 23 61 74 |= '';.X.| $#at|
|00003e40| 74 72 20 3d 20 24 23 61 | 69 6e 66 6f 20 3d 20 2d |tr = $#a|info = -|
|00003e50| 31 3b 0a 58 09 20 20 20 | 20 28 24 64 75 6d 2c 20 |1;.X. | ($dum, |
|00003e60| 24 64 75 6d 2c 20 24 74 | 79 70 65 2c 20 24 6e 61 |$dum, $t|ype, $na|
|00003e70| 6d 65 2c 20 24 64 75 6d | 2c 20 24 68 6f 73 74 2c |me, $dum|, $host,|
|00003e80| 20 24 64 75 6d 2c 20 24 | 64 69 72 2c 20 24 64 75 | $dum, $|dir, $du|
|00003e90| 6d 2c 20 24 64 75 6d 29 | 20 3d 0a 58 09 09 73 70 |m, $dum)| =.X..sp|
|00003ea0| 6c 69 74 28 2f 20 2f 2c | 20 24 6c 69 6e 65 29 3b |lit(/ /,| $line);|
|00003eb0| 0a 58 09 7d 0a 58 09 65 | 6c 73 69 66 20 28 24 6c |.X.}.X.e|lsif ($l|
|00003ec0| 69 6e 65 20 3d 7e 20 2f | 5e 4c 49 4e 4b 20 2f 29 |ine =~ /|^LINK /)|
|00003ed0| 20 7b 0a 58 09 20 20 20 | 20 23 20 57 68 61 74 20 | {.X. | # What |
|00003ee0| 73 68 6f 75 6c 64 20 49 | 20 64 6f 20 69 66 20 74 |should I| do if t|
|00003ef0| 68 65 20 72 65 73 70 6f | 6e 73 65 20 69 73 20 4c |he respo|nse is L|
|00003f00| 49 4e 4b 20 62 75 74 20 | 6e 6f 74 20 4c 3f 0a 58 |INK but |not L?.X|
|00003f10| 09 7d 0a 58 09 65 6c 73 | 69 66 20 28 24 6c 69 6e |.}.X.els|if ($lin|
|00003f20| 65 20 3d 7e 20 2f 5e 4c | 49 4e 4b 2d 49 4e 46 4f |e =~ /^L|INK-INFO|
|00003f30| 2f 29 20 7b 0a 58 09 20 | 20 20 20 23 20 41 20 4c |/) {.X. | # A L|
|00003f40| 49 4e 4b 2d 49 4e 46 4f | 20 6c 69 6e 65 2e 20 47 |INK-INFO| line. G|
|00003f50| 65 74 20 6f 6e 65 20 61 | 74 74 72 69 62 75 74 65 |et one a|ttribute|
|00003f60| 20 70 65 72 20 6c 69 6e | 65 2e 0a 58 09 20 20 20 | per lin|e..X. |
|00003f70| 20 28 24 64 75 6d 2c 20 | 24 64 75 6d 2c 20 24 61 | ($dum, |$dum, $a|
|00003f80| 74 74 72 2c 20 24 64 75 | 6d 2c 20 40 69 6e 66 6f |ttr, $du|m, @info|
|00003f90| 29 20 3d 20 73 70 6c 69 | 74 28 2f 20 2f 2c 20 24 |) = spli|t(/ /, $|
|00003fa0| 6c 69 6e 65 29 3b 0a 58 | 09 20 20 20 20 69 66 20 |line);.X|. if |
|00003fb0| 28 24 61 74 74 72 20 65 | 71 20 27 53 49 5a 45 27 |($attr e|q 'SIZE'|
|00003fc0| 29 20 7b 0a 58 09 09 24 | 73 69 7a 65 20 3d 20 6a |) {.X..$|size = j|
|00003fd0| 6f 69 6e 28 27 20 27 2c | 20 40 69 6e 66 6f 29 3b |oin(' ',| @info);|
|00003fe0| 0a 58 09 20 20 20 20 7d | 0a 58 09 20 20 20 20 65 |.X. }|.X. e|
|00003ff0| 6c 73 69 66 20 28 24 61 | 74 74 72 20 65 71 20 27 |lsif ($a|ttr eq '|
|00004000| 55 4e 49 58 2d 4d 4f 44 | 45 53 27 29 20 7b 0a 58 |UNIX-MOD|ES') {.X|
|00004010| 09 09 24 6d 6f 64 65 73 | 20 3d 20 6a 6f 69 6e 28 |..$modes| = join(|
|00004020| 27 20 27 2c 20 40 69 6e | 66 6f 29 3b 0a 58 09 20 |' ', @in|fo);.X. |
|00004030| 20 20 20 7d 0a 58 09 20 | 20 20 20 65 6c 73 69 66 | }.X. | elsif|
|00004040| 20 28 24 61 74 74 72 20 | 65 71 20 27 41 52 43 2d | ($attr |eq 'ARC-|
|00004050| 4d 4f 44 54 49 4d 45 27 | 29 20 7b 0a 58 09 09 24 |MODTIME'|) {.X..$|
|00004060| 61 72 63 6d 6f 64 20 3d | 20 6a 6f 69 6e 28 27 20 |arcmod =| join(' |
|00004070| 27 2c 20 40 69 6e 66 6f | 29 3b 0a 58 09 20 20 20 |', @info|);.X. |
|00004080| 20 7d 0a 58 09 20 20 20 | 20 65 6c 73 69 66 20 28 | }.X. | elsif (|
|00004090| 24 61 74 74 72 20 65 71 | 20 27 4c 41 53 54 2d 4d |$attr eq| 'LAST-M|
|000040a0| 4f 44 49 46 49 45 44 27 | 29 20 7b 0a 58 09 09 24 |ODIFIED'|) {.X..$|
|000040b0| 6c 61 73 74 6d 6f 64 20 | 3d 20 6a 6f 69 6e 28 27 |lastmod |= join('|
|000040c0| 20 27 2c 20 40 69 6e 66 | 6f 29 3b 0a 58 09 20 20 | ', @inf|o);.X. |
|000040d0| 20 20 7d 0a 58 09 20 20 | 20 20 65 6c 73 65 20 7b | }.X. | else {|
|000040e0| 0a 58 09 09 70 75 73 68 | 28 40 61 74 74 72 2c 20 |.X..push|(@attr, |
|000040f0| 24 61 74 74 72 29 3b 0a | 58 09 09 70 75 73 68 28 |$attr);.|X..push(|
|00004100| 40 61 69 6e 66 6f 2c 20 | 6a 6f 69 6e 28 27 20 27 |@ainfo, |join(' '|
|00004110| 2c 20 40 69 6e 66 6f 29 | 29 3b 0a 58 09 20 20 20 |, @info)|);.X. |
|00004120| 20 7d 0a 58 09 7d 0a 58 | 09 65 6c 73 69 66 20 28 | }.X.}.X|.elsif (|
|00004130| 24 6c 69 6e 65 20 3d 7e | 20 2f 5e 56 45 52 53 49 |$line =~| /^VERSI|
|00004140| 4f 4e 2d 4e 4f 54 2d 53 | 55 50 50 4f 52 54 45 44 |ON-NOT-S|UPPORTED|
|00004150| 20 54 52 59 20 28 5c 64 | 2b 29 2d 28 5c 64 2b 29 | TRY (\d|+)-(\d+)|
|00004160| 2c 28 5c 64 2b 29 2f 29 | 20 7b 0a 58 09 20 20 20 |,(\d+)/)| {.X. |
|00004170| 20 23 20 57 68 61 74 20 | 73 68 6f 75 6c 64 20 49 | # What |should I|
|00004180| 20 64 6f 20 69 66 20 74 | 68 65 20 76 65 72 73 69 | do if t|he versi|
|00004190| 6f 6e 20 69 73 20 77 72 | 6f 6e 67 3f 20 44 69 65 |on is wr|ong? Die|
|000041a0| 3f 0a 58 09 7d 0a 58 09 | 65 6c 73 69 66 20 28 24 |?.X.}.X.|elsif ($|
|000041b0| 6c 69 6e 65 20 3d 7e 20 | 2f 5e 4e 4f 54 2d 41 2d |line =~ |/^NOT-A-|
|000041c0| 44 49 52 45 43 54 4f 52 | 59 2f 29 20 7b 0a 58 09 |DIRECTOR|Y/) {.X.|
|000041d0| 20 20 20 20 23 20 57 48 | 61 74 20 61 62 6f 75 74 | # WH|at about|
|000041e0| 20 74 68 69 73 3f 0a 58 | 09 7d 0a 58 09 65 6c 73 | this?.X|.}.X.els|
|000041f0| 69 66 20 28 24 6c 69 6e | 65 20 3d 7e 20 2f 5e 55 |if ($lin|e =~ /^U|
|00004200| 4e 52 45 53 4f 4c 56 45 | 44 2f 29 20 7b 0a 58 09 |NRESOLVE|D/) {.X.|
|00004210| 7d 0a 58 09 65 6c 73 69 | 66 20 28 24 6c 69 6e 65 |}.X.elsi|f ($line|
|00004220| 20 3d 7e 20 2f 5e 46 49 | 4c 54 45 52 2f 29 20 7b | =~ /^FI|LTER/) {|
|00004230| 0a 58 09 7d 0a 58 09 65 | 6c 73 69 66 20 28 24 6c |.X.}.X.e|lsif ($l|
|00004240| 69 6e 65 20 3d 7e 20 2f | 5e 4f 42 4a 45 43 54 2d |ine =~ /|^OBJECT-|
|00004250| 49 4e 46 4f 2f 29 20 7b | 0a 58 09 7d 0a 58 09 65 |INFO/) {|.X.}.X.e|
|00004260| 6c 73 69 66 20 28 24 6c | 69 6e 65 20 3d 7e 20 2f |lsif ($l|ine =~ /|
|00004270| 5e 4e 4f 4e 45 2d 46 4f | 55 4e 44 2f 29 20 7b 0a |^NONE-FO|UND/) {.|
|00004280| 58 09 7d 0a 58 09 65 6c | 73 69 66 20 28 24 6c 69 |X.}.X.el|sif ($li|
|00004290| 6e 65 20 3d 7e 20 2f 5e | 53 55 43 43 45 53 53 2f |ne =~ /^|SUCCESS/|
|000042a0| 29 20 7b 0a 58 09 7d 0a | 58 09 65 6c 73 69 66 20 |) {.X.}.|X.elsif |
|000042b0| 28 24 6c 69 6e 65 20 3d | 7e 20 2f 5e 46 4f 52 44 |($line =|~ /^FORD|
|000042c0| 57 41 52 44 45 44 2f 29 | 20 7b 0a 58 09 7d 0a 58 |WARDED/)| {.X.}.X|
|000042d0| 09 65 6c 73 69 66 20 28 | 24 6c 69 6e 65 20 3d 7e |.elsif (|$line =~|
|000042e0| 20 2f 5e 46 41 49 4c 55 | 52 45 2f 29 20 7b 0a 58 | /^FAILU|RE/) {.X|
|000042f0| 09 7d 0a 58 09 65 6c 73 | 69 66 20 28 24 6c 69 6e |.}.X.els|if ($lin|
|00004300| 65 20 3d 7e 20 2f 5e 4e | 4f 54 2d 41 55 54 48 4f |e =~ /^N|OT-AUTHO|
|00004310| 52 49 5a 45 44 2f 29 20 | 7b 0a 58 09 7d 0a 58 09 |RIZED/) |{.X.}.X.|
|00004320| 65 6c 73 65 20 7b 0a 58 | 09 20 20 20 20 23 20 49 |else {.X|. # I|
|00004330| 20 62 61 73 69 63 61 6c | 6c 79 20 64 6f 6e 27 74 | basical|ly don't|
|00004340| 20 6b 6e 6f 77 20 77 68 | 61 74 20 74 6f 20 64 6f | know wh|at to do|
|00004350| 20 69 66 20 6e 6f 74 20 | 4c 49 4e 4b 20 4c 20 61 | if not |LINK L a|
|00004360| 6e 64 20 4c 49 4e 4b 2d | 49 4e 46 4f 2e 0a 58 09 |nd LINK-|INFO..X.|
|00004370| 20 20 20 20 23 20 49 66 | 20 79 6f 75 20 6b 6e 6f | # If| you kno|
|00004380| 77 2c 20 70 6c 65 61 73 | 65 20 74 65 6c 6c 20 6d |w, pleas|e tell m|
|00004390| 65 2e 0a 58 09 7d 0a 58 | 20 20 20 20 7d 0a 58 20 |e..X.}.X| }.X |
|000043a0| 20 20 20 69 66 20 28 24 | 68 6f 73 74 20 6e 65 20 | if ($|host ne |
|000043b0| 27 27 29 20 7b 0a 58 09 | 26 77 72 69 74 65 28 24 |'') {.X.|&write($|
|000043c0| 68 6f 73 74 2c 20 24 74 | 79 70 65 2c 20 24 64 69 |host, $t|ype, $di|
|000043d0| 72 2c 20 24 73 69 7a 65 | 2c 20 24 61 72 63 6d 6f |r, $size|, $arcmo|
|000043e0| 64 2c 20 24 6d 6f 64 65 | 73 2c 20 24 6c 61 73 74 |d, $mode|s, $last|
|000043f0| 6d 6f 64 2c 20 24 6e 61 | 6d 65 29 3b 0a 58 20 20 |mod, $na|me);.X |
|00004400| 20 20 7d 0a 58 7d 0a 58 | 0a 58 23 20 57 72 69 74 | }.X}.X|.X# Writ|
|00004410| 65 20 74 68 65 20 66 69 | 65 6c 64 73 20 6f 75 74 |e the fi|elds out|
|00004420| 20 6f 6e 20 74 65 72 6d | 69 6e 61 6c 20 75 73 69 | on term|inal usi|
|00004430| 6e 67 20 74 68 65 20 66 | 6f 72 6d 61 74 20 73 74 |ng the f|ormat st|
|00004440| 72 69 6e 67 2e 0a 58 73 | 75 62 20 77 72 69 74 65 |ring..Xs|ub write|
|00004450| 20 7b 0a 58 20 20 20 20 | 6c 6f 63 61 6c 28 24 68 | {.X |local($h|
|00004460| 6f 73 74 2c 20 24 74 79 | 70 65 2c 20 24 64 69 72 |ost, $ty|pe, $dir|
|00004470| 2c 20 24 73 69 7a 65 2c | 20 24 61 72 63 6d 6f 64 |, $size,| $arcmod|
|00004480| 2c 20 24 6d 6f 64 65 2c | 20 24 6c 61 73 74 6d 6f |, $mode,| $lastmo|
|00004490| 64 2c 20 24 6e 61 6d 65 | 29 20 3d 20 40 5f 3b 0a |d, $name|) = @_;.|
|000044a0| 58 20 20 20 20 6c 6f 63 | 61 6c 28 24 73 65 71 2c |X loc|al($seq,|
|000044b0| 20 40 70 61 74 68 2c 20 | 24 64 61 74 65 2c 20 24 | @path, |$date, $|
|000044c0| 70 61 74 68 29 3b 0a 58 | 20 20 20 20 23 20 47 65 |path);.X| # Ge|
|000044d0| 74 20 74 68 65 20 74 79 | 70 65 20 6f 66 20 66 69 |t the ty|pe of fi|
|000044e0| 6c 65 2e 0a 58 20 20 20 | 20 69 66 20 28 24 74 79 |le..X | if ($ty|
|000044f0| 70 65 20 65 71 20 27 44 | 49 52 45 43 54 4f 52 59 |pe eq 'D|IRECTORY|
|00004500| 27 29 20 7b 0a 58 09 24 | 74 79 70 65 20 3d 20 27 |') {.X.$|type = '|
|00004510| 44 69 72 65 63 74 6f 72 | 79 27 3b 0a 58 20 20 20 |Director|y';.X |
|00004520| 20 7d 0a 58 20 20 20 20 | 65 6c 73 65 20 7b 0a 58 | }.X |else {.X|
|00004530| 09 24 74 79 70 65 20 3d | 20 27 46 69 6c 65 27 3b |.$type =| 'File';|
|00004540| 0a 58 20 20 20 20 7d 0a | 58 0a 58 20 20 20 20 23 |.X }.|X.X #|
|00004550| 20 41 20 73 74 72 61 6e | 67 65 20 66 6f 72 6d 61 | A stran|ge forma|
|00004560| 74 20 77 69 74 68 20 74 | 68 65 20 68 6f 73 74 20 |t with t|he host |
|00004570| 62 65 69 6e 67 20 24 68 | 6f 73 74 63 61 70 73 20 |being $h|ostcaps |
|00004580| 61 6e 64 20 74 68 65 0a | 58 20 20 20 20 23 20 70 |and the.|X # p|
|00004590| 61 74 68 20 62 65 69 6e | 67 20 69 6e 20 74 68 69 |ath bein|g in thi|
|000045a0| 73 20 66 6f 72 6d 3a 20 | 41 52 43 48 49 45 2f 48 |s form: |ARCHIE/H|
|000045b0| 4f 53 54 2f 70 61 74 68 | 0a 58 20 20 20 20 69 66 |OST/path|.X if|
|000045c0| 20 28 24 68 6f 73 74 20 | 65 71 20 24 68 6f 73 74 | ($host |eq $host|
|000045d0| 63 61 70 73 29 20 7b 0a | 58 09 28 24 61 72 63 68 |caps) {.|X.($arch|
|000045e0| 69 65 2c 20 24 64 75 6d | 2c 20 24 68 6f 73 74 2c |ie, $dum|, $host,|
|000045f0| 20 24 64 69 72 29 20 3d | 20 0a 58 09 20 20 20 20 | $dir) =| .X. |
|00004600| 28 24 64 69 72 20 3d 7e | 20 6d 7c 28 5b 5e 2f 5d |($dir =~| m|([^/]|
|00004610| 2b 29 2f 28 5b 5e 2f 5d | 2b 29 2f 28 5b 5e 2f 5d |+)/([^/]|+)/([^/]|
|00004620| 2b 29 2f 28 2e 2a 29 24 | 7c 29 3b 0a 58 09 24 64 |+)/(.*)$||);.X.$d|
|00004630| 69 72 20 3d 20 27 2f 27 | 20 2e 20 24 64 69 72 3b |ir = '/'| . $dir;|
|00004640| 0a 58 20 20 20 20 7d 0a | 58 0a 58 20 20 20 20 23 |.X }.|X.X #|
|00004650| 20 43 6f 6e 76 65 72 74 | 20 74 68 65 20 64 61 74 | Convert| the dat|
|00004660| 65 20 73 74 72 69 6e 67 | 20 66 72 6f 6d 20 31 39 |e string| from 19|
|00004670| 39 31 30 37 31 33 31 32 | 33 32 35 30 5a 20 74 6f |91071312|3250Z to|
|00004680| 0a 58 20 20 20 20 23 20 | 31 39 39 31 20 4a 75 6c |.X # |1991 Jul|
|00004690| 20 31 33 20 31 32 3a 33 | 32 3a 35 30 20 47 4d 54 | 13 12:3|2:50 GMT|
|000046a0| 0a 58 20 20 20 20 24 64 | 61 74 65 20 3d 20 26 64 |.X $d|ate = &d|
|000046b0| 61 74 65 28 24 6c 61 73 | 74 6d 6f 64 29 3b 0a 58 |ate($las|tmod);.X|
|000046c0| 20 20 20 20 24 70 6e 75 | 6d 2b 2b 3b 0a 58 20 20 | $pnu|m++;.X |
|000046d0| 20 20 24 73 65 71 20 3d | 20 24 70 6e 75 6d 3b 0a | $seq =| $pnum;.|
|000046e0| 58 0a 58 20 20 20 20 23 | 20 70 72 69 6e 74 20 74 |X.X #| print t|
|000046f0| 68 65 20 65 6e 74 72 79 | 2e 20 44 69 65 20 69 66 |he entry|. Die if|
|00004700| 20 73 6f 6d 65 74 68 69 | 6e 67 20 69 73 20 77 72 | somethi|ng is wr|
|00004710| 6f 6e 67 2e 20 53 68 6f | 75 6c 64 20 49 0a 58 20 |ong. Sho|uld I.X |
|00004720| 20 20 20 23 20 4c 6f 67 | 20 74 68 65 20 6f 75 74 | # Log| the out|
|00004730| 70 75 74 20 69 6e 20 61 | 20 66 69 6c 65 20 73 6f |put in a| file so|
|00004740| 20 74 68 65 20 65 66 66 | 65 63 74 20 69 73 20 6e | the eff|ect is n|
|00004750| 6f 74 20 77 61 73 74 65 | 64 3f 0a 58 20 20 20 20 |ot waste|d?.X |
|00004760| 69 66 20 28 28 65 76 61 | 6c 20 22 70 72 69 6e 74 |if ((eva|l "print|
|00004770| 66 20 24 66 6f 72 6d 61 | 74 22 29 20 65 71 20 27 |f $forma|t") eq '|
|00004780| 27 29 20 7b 0a 58 09 64 | 69 65 20 22 41 20 73 79 |') {.X.d|ie "A sy|
|00004790| 6e 74 61 78 20 65 72 72 | 6f 72 20 77 68 65 6e 20 |ntax err|or when |
|000047a0| 70 72 69 6e 74 69 6e 67 | 20 74 68 65 20 66 6f 72 |printing| the for|
|000047b0| 6d 61 74 20 73 74 72 69 | 6e 67 5c 6e 22 3b 0a 58 |mat stri|ng\n";.X|
|000047c0| 20 20 20 20 7d 0a 58 7d | 0a 58 0a 58 23 20 43 6f | }.X}|.X.X# Co|
|000047d0| 6e 76 65 72 74 20 61 20 | 73 74 72 69 6e 67 2e 0a |nvert a |string..|
|000047e0| 58 73 75 62 20 64 61 74 | 65 20 7b 0a 58 20 20 20 |Xsub dat|e {.X |
|000047f0| 20 6c 6f 63 61 6c 28 24 | 64 61 74 65 29 20 3d 20 | local($|date) = |
|00004800| 40 5f 3b 0a 58 20 20 20 | 20 6c 6f 63 61 6c 28 24 |@_;.X | local($|
|00004810| 79 65 61 72 2c 20 24 6d | 6f 6e 74 68 2c 20 24 64 |year, $m|onth, $d|
|00004820| 61 79 2c 20 24 68 6f 75 | 72 2c 20 24 6d 69 6e 2c |ay, $hou|r, $min,|
|00004830| 20 24 73 65 63 29 20 3d | 0a 58 09 28 30 2c 20 31 | $sec) =|.X.(0, 1|
|00004840| 2c 20 30 2c 20 30 2c 20 | 30 2c 20 30 29 3b 0a 58 |, 0, 0, |0, 0);.X|
|00004850| 20 20 20 20 6c 6f 63 61 | 6c 28 24 7a 6f 6e 65 29 | loca|l($zone)|
|00004860| 20 3d 20 27 5a 27 3b 0a | 58 0a 58 20 20 20 20 28 | = 'Z';.|X.X (|
|00004870| 24 79 65 61 72 2c 20 24 | 6d 6f 6e 74 68 2c 20 24 |$year, $|month, $|
|00004880| 64 61 79 2c 20 24 68 6f | 75 72 2c 20 24 6d 69 6e |day, $ho|ur, $min|
|00004890| 2c 20 24 73 65 63 2c 20 | 24 7a 6f 6e 65 29 20 3d |, $sec, |$zone) =|
|000048a0| 20 0a 58 09 28 24 64 61 | 74 65 20 3d 7e 20 2f 5e | .X.($da|te =~ /^|
|000048b0| 28 5c 64 5c 64 5c 64 5c | 64 29 28 5c 64 5c 64 29 |(\d\d\d\|d)(\d\d)|
|000048c0| 28 5c 64 5c 64 29 28 5c | 64 5c 64 29 28 5c 64 5c |(\d\d)(\|d\d)(\d\|
|000048d0| 64 29 28 5c 64 5c 64 29 | 28 2e 2a 29 2f 29 3b 0a |d)(\d\d)|(.*)/);.|
|000048e0| 58 0a 58 20 20 20 20 23 | 20 41 20 74 69 6d 65 20 |X.X #| A time |
|000048f0| 7a 6f 6e 65 20 5a 20 69 | 73 20 74 68 65 20 73 61 |zone Z i|s the sa|
|00004900| 6d 65 20 61 73 20 47 4d | 54 2c 20 72 69 67 68 74 |me as GM|T, right|
|00004910| 3f 20 49 20 61 6d 20 6e | 6f 74 20 73 75 72 65 2e |? I am n|ot sure.|
|00004920| 20 54 65 6c 6c 20 6d 65 | 0a 58 20 20 20 20 23 20 | Tell me|.X # |
|00004930| 69 66 20 79 6f 75 20 6b | 6e 6f 77 2e 0a 58 20 20 |if you k|now..X |
|00004940| 20 20 69 66 20 28 24 7a | 6f 6e 65 20 65 71 20 27 | if ($z|one eq '|
|00004950| 5a 27 29 20 7b 0a 58 09 | 24 7a 6f 6e 65 20 3d 20 |Z') {.X.|$zone = |
|00004960| 27 47 4d 54 27 3b 0a 58 | 20 20 20 20 7d 0a 58 20 |'GMT';.X| }.X |
|00004970| 20 20 20 72 65 74 75 72 | 6e 20 22 24 79 65 61 72 | retur|n "$year|
|00004980| 20 24 6d 6f 6e 74 68 5b | 24 6d 6f 6e 74 68 5d 20 | $month[|$month] |
|00004990| 24 64 61 79 20 24 68 6f | 75 72 3a 24 6d 69 6e 3a |$day $ho|ur:$min:|
|000049a0| 24 73 65 63 20 24 7a 6f | 6e 65 22 3b 0a 58 7d 0a |$sec $zo|ne";.X}.|
|000049b0| 58 0a 58 23 20 50 61 72 | 73 65 20 74 68 65 20 66 |X.X# Par|se the f|
|000049c0| 6f 72 6d 61 74 20 73 74 | 72 69 6e 67 20 74 6f 20 |ormat st|ring to |
|000049d0| 63 6f 6e 76 65 72 74 20 | 69 74 20 74 6f 20 61 20 |convert |it to a |
|000049e0| 76 61 6c 69 64 20 70 65 | 72 6c 20 66 6f 72 6d 61 |valid pe|rl forma|
|000049f0| 74 0a 58 23 20 73 74 72 | 69 6e 67 2e 0a 58 73 75 |t.X# str|ing..Xsu|
|00004a00| 62 20 70 61 72 73 65 66 | 6f 72 6d 61 74 20 7b 0a |b parsef|ormat {.|
|00004a10| 58 20 20 20 20 6c 6f 63 | 61 6c 28 24 73 74 72 69 |X loc|al($stri|
|00004a20| 6e 67 29 20 3d 20 40 5f | 3b 0a 58 20 20 20 20 6c |ng) = @_|;.X l|
|00004a30| 6f 63 61 6c 28 24 6e 73 | 74 72 69 6e 67 2c 20 24 |ocal($ns|tring, $|
|00004a40| 69 6e 64 65 78 2c 20 40 | 70 6c 69 73 74 29 3b 0a |index, @|plist);.|
|00004a50| 58 0a 58 20 20 20 20 24 | 73 74 72 69 6e 67 20 3d |X.X $|string =|
|00004a60| 7e 20 73 2f 5c 24 2f 5c | 5c 5c 24 2f 67 3b 0a 58 |~ s/\$/\|\\$/g;.X|
|00004a70| 20 20 20 20 24 73 74 72 | 69 6e 67 20 3d 7e 20 73 | $str|ing =~ s|
|00004a80| 2f 5c 7b 2f 5c 5c 5c 7b | 2f 67 3b 0a 58 20 20 20 |/\{/\\\{|/g;.X |
|00004a90| 20 24 73 74 72 69 6e 67 | 20 3d 7e 20 73 2f 5c 7d | $string| =~ s/\}|
|00004aa0| 2f 5c 5c 5c 7d 2f 67 3b | 0a 58 20 20 20 20 24 6e |/\\\}/g;|.X $n|
|00004ab0| 73 74 72 69 6e 67 20 3d | 20 27 27 3b 0a 58 20 20 |string =| '';.X |
|00004ac0| 20 20 24 23 70 6c 69 73 | 74 20 3d 20 2d 31 3b 0a | $#plis|t = -1;.|
|00004ad0| 58 20 20 20 20 77 68 69 | 6c 65 20 28 28 24 69 6e |X whi|le (($in|
|00004ae0| 64 65 78 20 3d 20 69 6e | 64 65 78 28 24 73 74 72 |dex = in|dex($str|
|00004af0| 69 6e 67 2c 20 27 25 27 | 29 29 20 3e 3d 20 30 29 |ing, '%'|)) >= 0)|
|00004b00| 20 7b 0a 58 09 24 6e 73 | 74 72 69 6e 67 20 2e 3d | {.X.$ns|tring .=|
|00004b10| 20 73 75 62 73 74 72 28 | 24 73 74 72 69 6e 67 2c | substr(|$string,|
|00004b20| 20 30 2c 20 24 69 6e 64 | 65 78 29 3b 0a 58 09 73 | 0, $ind|ex);.X.s|
|00004b30| 75 62 73 74 72 28 24 73 | 74 72 69 6e 67 2c 20 30 |ubstr($s|tring, 0|
|00004b40| 2c 20 24 69 6e 64 65 78 | 29 20 3d 20 27 27 3b 0a |, $index|) = '';.|
|00004b50| 58 09 69 66 20 28 73 75 | 62 73 74 72 28 24 73 74 |X.if (su|bstr($st|
|00004b60| 72 69 6e 67 2c 20 31 2c | 20 31 29 20 65 71 20 27 |ring, 1,| 1) eq '|
|00004b70| 25 27 29 20 7b 0a 58 09 | 20 20 20 20 73 75 62 73 |%') {.X.| subs|
|00004b80| 74 72 28 24 73 74 72 69 | 6e 67 2c 20 30 2c 20 32 |tr($stri|ng, 0, 2|
|00004b90| 29 20 3d 20 27 27 3b 0a | 58 09 20 20 20 20 24 6e |) = '';.|X. $n|
|00004ba0| 73 74 72 69 6e 67 20 2e | 3d 20 27 25 25 27 3b 0a |string .|= '%%';.|
|00004bb0| 58 09 7d 0a 58 09 65 6c | 73 69 66 20 28 24 73 74 |X.}.X.el|sif ($st|
|00004bc0| 72 69 6e 67 20 3d 7e 20 | 2f 5e 5c 25 28 5c 64 2a |ring =~ |/^\%(\d*|
|00004bd0| 29 68 6f 73 74 2f 29 20 | 7b 0a 58 09 20 20 20 20 |)host/) |{.X. |
|00004be0| 23 20 25 31 32 68 6f 73 | 74 20 6d 65 61 6e 73 20 |# %12hos|t means |
|00004bf0| 74 68 65 20 77 69 64 74 | 68 20 6f 66 20 74 68 65 |the widt|h of the|
|00004c00| 20 66 69 65 6c 64 20 69 | 73 20 31 32 2e 0a 58 09 | field i|s 12..X.|
|00004c10| 20 20 20 20 70 75 73 68 | 28 40 70 6c 69 73 74 2c | push|(@plist,|
|00004c20| 20 27 24 68 6f 73 74 27 | 29 3b 0a 58 09 20 20 20 | '$host'|);.X. |
|00004c30| 20 24 6e 73 74 72 69 6e | 67 20 2e 3d 20 22 5c 25 | $nstrin|g .= "\%|
|00004c40| 24 31 73 22 3b 0a 58 09 | 20 20 20 20 73 75 62 73 |$1s";.X.| subs|
|00004c50| 74 72 28 24 73 74 72 69 | 6e 67 2c 20 30 2c 20 6c |tr($stri|ng, 0, l|
|00004c60| 65 6e 67 74 68 28 24 31 | 29 20 2b 20 35 29 20 3d |ength($1|) + 5) =|
|00004c70| 20 27 27 3b 0a 58 09 7d | 0a 58 09 65 6c 73 69 66 | '';.X.}|.X.elsif|
|00004c80| 20 28 24 73 74 72 69 6e | 67 20 3d 7e 20 2f 5e 5c | ($strin|g =~ /^\|
|00004c90| 25 28 5c 64 2a 29 64 69 | 72 2f 29 20 7b 0a 58 09 |%(\d*)di|r/) {.X.|
|00004ca0| 20 20 20 20 70 75 73 68 | 28 40 70 6c 69 73 74 2c | push|(@plist,|
|00004cb0| 20 27 24 64 69 72 27 29 | 3b 0a 58 09 20 20 20 20 | '$dir')|;.X. |
|00004cc0| 24 6e 73 74 72 69 6e 67 | 20 2e 3d 20 22 5c 25 24 |$nstring| .= "\%$|
|00004cd0| 31 73 22 3b 0a 58 09 20 | 20 20 20 73 75 62 73 74 |1s";.X. | subst|
|00004ce0| 72 28 24 73 74 72 69 6e | 67 2c 20 30 2c 20 6c 65 |r($strin|g, 0, le|
|00004cf0| 6e 67 74 68 28 24 31 29 | 20 2b 20 34 29 20 3d 20 |ngth($1)| + 4) = |
|00004d00| 27 27 3b 0a 58 09 7d 0a | 58 09 65 6c 73 69 66 20 |'';.X.}.|X.elsif |
|00004d10| 28 24 73 74 72 69 6e 67 | 20 3d 7e 20 2f 5e 5c 25 |($string| =~ /^\%|
|00004d20| 28 5c 64 2a 29 6d 6f 64 | 65 2f 29 20 7b 0a 58 09 |(\d*)mod|e/) {.X.|
|00004d30| 20 20 20 20 70 75 73 68 | 28 40 70 6c 69 73 74 2c | push|(@plist,|
|00004d40| 20 27 24 6d 6f 64 65 27 | 29 3b 0a 58 09 20 20 20 | '$mode'|);.X. |
|00004d50| 20 24 6e 73 74 72 69 6e | 67 20 2e 3d 20 22 5c 25 | $nstrin|g .= "\%|
|00004d60| 24 31 73 22 3b 0a 58 09 | 20 20 20 20 73 75 62 73 |$1s";.X.| subs|
|00004d70| 74 72 28 24 73 74 72 69 | 6e 67 2c 20 30 2c 20 6c |tr($stri|ng, 0, l|
|00004d80| 65 6e 67 74 68 28 24 31 | 29 20 2b 20 35 29 20 3d |ength($1|) + 5) =|
|00004d90| 20 27 27 3b 0a 58 09 7d | 0a 58 09 65 6c 73 69 66 | '';.X.}|.X.elsif|
|00004da0| 20 28 24 73 74 72 69 6e | 67 20 3d 7e 20 2f 5e 5c | ($strin|g =~ /^\|
|00004db0| 25 28 5c 64 2a 29 64 61 | 74 65 2f 29 20 7b 0a 58 |%(\d*)da|te/) {.X|
|00004dc0| 09 20 20 20 20 70 75 73 | 68 28 40 70 6c 69 73 74 |. pus|h(@plist|
|00004dd0| 2c 20 27 24 64 61 74 65 | 27 29 3b 0a 58 09 20 20 |, '$date|');.X. |
|00004de0| 20 20 24 6e 73 74 72 69 | 6e 67 20 2e 3d 20 22 5c | $nstri|ng .= "\|
|00004df0| 25 24 31 73 22 3b 0a 58 | 09 20 20 20 20 73 75 62 |%$1s";.X|. sub|
|00004e00| 73 74 72 28 24 73 74 72 | 69 6e 67 2c 20 30 2c 20 |str($str|ing, 0, |
|00004e10| 6c 65 6e 67 74 68 28 24 | 31 29 20 2b 20 35 29 20 |length($|1) + 5) |
|00004e20| 3d 20 27 27 3b 0a 58 09 | 7d 0a 58 09 65 6c 73 69 |= '';.X.|}.X.elsi|
|00004e30| 66 20 28 24 73 74 72 69 | 6e 67 20 3d 7e 20 2f 5e |f ($stri|ng =~ /^|
|00004e40| 5c 25 28 5c 64 2a 29 61 | 72 63 2f 29 20 7b 0a 58 |\%(\d*)a|rc/) {.X|
|00004e50| 09 20 20 20 20 70 75 73 | 68 28 40 70 6c 69 73 74 |. pus|h(@plist|
|00004e60| 2c 20 27 24 61 72 63 6d | 6f 64 27 29 3b 0a 58 09 |, '$arcm|od');.X.|
|00004e70| 20 20 20 20 24 6e 73 74 | 72 69 6e 67 20 2e 3d 20 | $nst|ring .= |
|00004e80| 22 5c 25 24 31 73 22 3b | 0a 58 09 20 20 20 20 73 |"\%$1s";|.X. s|
|00004e90| 75 62 73 74 72 28 24 73 | 74 72 69 6e 67 2c 20 30 |ubstr($s|tring, 0|
|00004ea0| 2c 20 6c 65 6e 67 74 68 | 28 24 31 29 20 2b 20 34 |, length|($1) + 4|
|00004eb0| 29 20 3d 20 27 27 3b 0a | 58 09 7d 0a 58 09 65 6c |) = '';.|X.}.X.el|
|00004ec0| 73 69 66 20 28 24 73 74 | 72 69 6e 67 20 3d 7e 20 |sif ($st|ring =~ |
|00004ed0| 2f 5e 5c 25 28 5c 64 2a | 29 73 65 71 2f 29 20 7b |/^\%(\d*|)seq/) {|
|00004ee0| 0a 58 09 20 20 20 20 70 | 75 73 68 28 40 70 6c 69 |.X. p|ush(@pli|
|00004ef0| 73 74 2c 20 27 24 73 65 | 71 27 29 3b 0a 58 09 20 |st, '$se|q');.X. |
|00004f00| 20 20 20 24 6e 73 74 72 | 69 6e 67 20 2e 3d 20 22 | $nstr|ing .= "|
|00004f10| 5c 25 24 31 64 22 3b 0a | 58 09 20 20 20 20 73 75 |\%$1d";.|X. su|
|00004f20| 62 73 74 72 28 24 73 74 | 72 69 6e 67 2c 20 30 2c |bstr($st|ring, 0,|
|00004f30| 20 6c 65 6e 67 74 68 28 | 24 31 29 20 2b 20 34 29 | length(|$1) + 4)|
|00004f40| 20 3d 20 27 27 3b 0a 58 | 09 7d 0a 58 09 65 6c 73 | = '';.X|.}.X.els|
|00004f50| 69 66 20 28 24 73 74 72 | 69 6e 67 20 3d 7e 20 2f |if ($str|ing =~ /|
|00004f60| 5e 5c 25 28 5c 64 2a 29 | 73 69 7a 65 2f 29 20 7b |^\%(\d*)|size/) {|
|00004f70| 0a 58 09 20 20 20 20 70 | 75 73 68 28 40 70 6c 69 |.X. p|ush(@pli|
|00004f80| 73 74 2c 20 27 24 73 69 | 7a 65 27 29 3b 0a 58 09 |st, '$si|ze');.X.|
|00004f90| 20 20 20 20 24 6e 73 74 | 72 69 6e 67 20 2e 3d 20 | $nst|ring .= |
|00004fa0| 22 5c 25 24 31 64 22 3b | 0a 58 09 20 20 20 20 73 |"\%$1d";|.X. s|
|00004fb0| 75 62 73 74 72 28 24 73 | 74 72 69 6e 67 2c 20 30 |ubstr($s|tring, 0|
|00004fc0| 2c 20 6c 65 6e 67 74 68 | 28 24 31 29 20 2b 20 35 |, length|($1) + 5|
|00004fd0| 29 20 3d 20 27 27 3b 0a | 58 09 7d 0a 58 09 65 6c |) = '';.|X.}.X.el|
|00004fe0| 73 69 66 20 28 24 73 74 | 72 69 6e 67 20 3d 7e 20 |sif ($st|ring =~ |
|00004ff0| 2f 5e 5c 25 28 5c 64 2a | 29 6e 61 6d 65 2f 29 20 |/^\%(\d*|)name/) |
|00005000| 7b 0a 58 09 20 20 20 20 | 70 75 73 68 28 40 70 6c |{.X. |push(@pl|
|00005010| 69 73 74 2c 20 27 24 6e | 61 6d 65 27 29 3b 0a 58 |ist, '$n|ame');.X|
|00005020| 09 20 20 20 20 24 6e 73 | 74 72 69 6e 67 20 2e 3d |. $ns|tring .=|
|00005030| 20 22 5c 25 24 31 73 22 | 3b 0a 58 09 20 20 20 20 | "\%$1s"|;.X. |
|00005040| 73 75 62 73 74 72 28 24 | 73 74 72 69 6e 67 2c 20 |substr($|string, |
|00005050| 30 2c 20 6c 65 6e 67 74 | 68 28 24 31 29 20 2b 20 |0, lengt|h($1) + |
|00005060| 35 29 20 3d 20 27 27 3b | 0a 58 09 7d 0a 58 09 65 |5) = '';|.X.}.X.e|
|00005070| 6c 73 69 66 20 28 24 73 | 74 72 69 6e 67 20 3d 7e |lsif ($s|tring =~|
|00005080| 20 2f 5e 5c 25 28 5c 64 | 2a 29 74 79 70 65 2f 29 | /^\%(\d|*)type/)|
|00005090| 20 7b 0a 58 09 20 20 20 | 20 70 75 73 68 28 40 70 | {.X. | push(@p|
|000050a0| 6c 69 73 74 2c 20 27 24 | 74 79 70 65 27 29 3b 0a |list, '$|type');.|
|000050b0| 58 09 20 20 20 20 24 6e | 73 74 72 69 6e 67 20 2e |X. $n|string .|
|000050c0| 3d 20 22 5c 25 24 31 73 | 22 3b 0a 58 09 20 20 20 |= "\%$1s|";.X. |
|000050d0| 20 73 75 62 73 74 72 28 | 24 73 74 72 69 6e 67 2c | substr(|$string,|
|000050e0| 20 30 2c 20 6c 65 6e 67 | 74 68 28 24 31 29 20 2b | 0, leng|th($1) +|
|000050f0| 20 35 29 20 3d 20 27 27 | 3b 0a 58 09 7d 0a 58 09 | 5) = ''|;.X.}.X.|
|00005100| 65 6c 73 65 20 7b 0a 58 | 09 20 20 20 20 64 69 65 |else {.X|. die|
|00005110| 20 73 70 72 69 6e 74 66 | 28 22 24 70 72 6f 67 3a | sprintf|("$prog:|
|00005120| 20 46 6f 72 6d 61 74 20 | 65 72 72 6f 72 2e 20 55 | Format |error. U|
|00005130| 6e 6b 6e 6f 77 6e 20 66 | 69 65 6c 64 3a 20 25 73 |nknown f|ield: %s|
|00005140| 5c 6e 22 2c 20 24 73 74 | 72 69 6e 67 29 3b 0a 58 |\n", $st|ring);.X|
|00005150| 09 7d 0a 58 20 20 20 20 | 7d 0a 58 20 20 20 20 24 |.}.X |}.X $|
|00005160| 6e 73 74 72 69 6e 67 20 | 2e 3d 20 24 73 74 72 69 |nstring |.= $stri|
|00005170| 6e 67 3b 0a 58 20 20 20 | 20 24 6e 73 74 72 69 6e |ng;.X | $nstrin|
|00005180| 67 20 3d 20 27 22 27 20 | 2e 20 24 6e 73 74 72 69 |g = '"' |. $nstri|
|00005190| 6e 67 20 2e 20 27 22 27 | 3b 0a 58 20 20 20 20 72 |ng . '"'|;.X r|
|000051a0| 65 74 75 72 6e 20 6a 6f | 69 6e 28 27 2c 20 27 2c |eturn jo|in(', ',|
|000051b0| 20 24 6e 73 74 72 69 6e | 67 2c 20 40 70 6c 69 73 | $nstrin|g, @plis|
|000051c0| 74 29 3b 0a 58 7d 0a 58 | 0a 58 23 20 50 61 72 73 |t);.X}.X|.X# Pars|
|000051d0| 65 20 74 68 65 20 73 74 | 61 72 74 75 70 20 66 69 |e the st|artup fi|
|000051e0| 6c 65 20 7e 2f 2e 61 72 | 63 68 69 65 72 63 0a 58 |le ~/.ar|chierc.X|
|000051f0| 23 20 54 68 65 20 66 6f | 72 6d 61 74 20 6f 66 20 |# The fo|rmat of |
|00005200| 74 68 65 20 66 69 6c 65 | 20 69 73 20 76 65 72 79 |the file| is very|
|00005210| 20 73 69 6d 70 6c 65 3a | 0a 58 23 20 63 6f 6d 6d | simple:|.X# comm|
|00005220| 61 6e 64 20 6f 70 74 69 | 6f 6e 0a 58 23 20 54 68 |and opti|on.X# Th|
|00005230| 65 20 66 6f 72 6d 61 74 | 20 63 6f 6d 6d 61 6e 64 |e format| command|
|00005240| 20 6d 75 73 74 20 62 65 | 20 74 68 65 20 6c 61 73 | must be| the las|
|00005250| 74 20 6f 6e 65 2e 0a 58 | 73 75 62 20 70 61 72 73 |t one..X|sub pars|
|00005260| 65 72 63 20 7b 0a 58 20 | 20 20 20 69 66 20 28 2d |erc {.X | if (-|
|00005270| 65 20 22 24 75 73 65 72 | 70 61 74 68 2f 2e 61 72 |e "$user|path/.ar|
|00005280| 63 68 69 65 72 63 22 20 | 26 26 20 2d 72 20 22 24 |chierc" |&& -r "$|
|00005290| 75 73 65 72 70 61 74 68 | 2f 2e 61 72 63 68 69 65 |userpath|/.archie|
|000052a0| 72 63 22 29 20 7b 0a 58 | 09 6f 70 65 6e 20 28 52 |rc") {.X|.open (R|
|000052b0| 43 2c 20 22 24 75 73 65 | 72 70 61 74 68 2f 2e 61 |C, "$use|rpath/.a|
|000052c0| 72 63 68 69 65 72 63 22 | 29 3b 0a 58 09 77 68 69 |rchierc"|);.X.whi|
|000052d0| 6c 65 20 28 3c 52 43 3e | 29 20 7b 0a 58 09 20 20 |le (<RC>|) {.X. |
|000052e0| 20 20 63 68 6f 70 3b 0a | 58 09 20 20 20 20 69 66 | chop;.|X. if|
|000052f0| 20 28 24 5f 20 3d 7e 20 | 2f 5e 5c 73 2a 6d 61 74 | ($_ =~ |/^\s*mat|
|00005300| 63 68 5c 73 2b 28 5c 64 | 2b 29 5c 73 2a 24 2f 29 |ch\s+(\d|+)\s*$/)|
|00005310| 20 7b 0a 58 09 09 24 6d | 61 74 63 68 20 3d 20 24 | {.X..$m|atch = $|
|00005320| 31 3b 0a 58 09 20 20 20 | 20 7d 0a 58 09 20 20 20 |1;.X. | }.X. |
|00005330| 20 65 6c 73 69 66 20 28 | 24 5f 20 3d 7e 2f 5e 5c | elsif (|$_ =~/^\|
|00005340| 73 2a 73 65 61 72 63 68 | 5c 73 2b 28 5b 61 2d 7a |s*search|\s+([a-z|
|00005350| 5d 2b 29 5c 73 2a 24 2f | 29 20 7b 0a 58 09 09 69 |]+)\s*$/|) {.X..i|
|00005360| 66 20 28 24 31 20 65 71 | 20 27 63 61 73 65 27 29 |f ($1 eq| 'case')|
|00005370| 20 7b 0a 58 09 09 20 20 | 20 20 24 63 61 73 65 20 | {.X.. | $case |
|00005380| 3d 20 27 43 27 3b 0a 58 | 09 09 7d 0a 58 09 09 65 |= 'C';.X|..}.X..e|
|00005390| 6c 73 69 66 20 28 24 31 | 20 65 71 20 27 6e 6f 63 |lsif ($1| eq 'noc|
|000053a0| 61 73 65 27 29 20 7b 0a | 58 09 09 20 20 20 20 24 |ase') {.|X.. $|
|000053b0| 63 61 73 65 20 3d 20 27 | 53 27 3b 0a 58 09 09 7d |case = '|S';.X..}|
|000053c0| 0a 58 09 09 65 6c 73 69 | 66 20 28 24 31 20 65 71 |.X..elsi|f ($1 eq|
|000053d0| 20 27 72 65 67 27 29 20 | 7b 0a 58 09 09 20 20 20 | 'reg') |{.X.. |
|000053e0| 20 24 63 61 73 65 20 3d | 20 27 52 27 3b 0a 58 09 | $case =| 'R';.X.|
|000053f0| 09 7d 0a 58 09 09 65 6c | 73 69 66 20 28 24 31 20 |.}.X..el|sif ($1 |
|00005400| 65 71 20 27 65 78 61 63 | 74 27 29 20 7b 0a 58 09 |eq 'exac|t') {.X.|
|00005410| 09 20 20 20 20 24 63 61 | 73 65 20 3d 20 27 3d 27 |. $ca|se = '='|
|00005420| 3b 0a 58 09 09 7d 0a 58 | 09 09 65 6c 73 65 20 7b |;.X..}.X|..else {|
|00005430| 0a 58 09 09 20 20 20 20 | 70 72 69 6e 74 20 22 24 |.X.. |print "$|
|00005440| 70 72 6f 67 3a 20 24 75 | 73 65 72 2f 2e 61 72 63 |prog: $u|ser/.arc|
|00005450| 68 69 65 72 63 3a 20 75 | 6e 6b 6e 6f 77 6e 20 73 |hierc: u|nknown s|
|00005460| 65 61 72 63 68 20 6f 70 | 74 69 6f 6e 20 24 31 5c |earch op|tion $1\|
|00005470| 6e 22 3b 0a 58 09 09 7d | 0a 58 09 20 20 20 20 7d |n";.X..}|.X. }|
|00005480| 0a 58 09 20 20 20 20 65 | 6c 73 69 66 20 28 24 5f |.X. e|lsif ($_|
|00005490| 20 3d 7e 20 2f 5e 5c 73 | 2a 68 6f 73 74 5c 73 2b | =~ /^\s|*host\s+|
|000054a0| 28 2e 2b 29 5c 73 2a 24 | 2f 29 20 7b 0a 58 09 09 |(.+)\s*$|/) {.X..|
|000054b0| 24 68 6f 73 74 6e 61 6d | 65 20 3d 20 24 31 3b 0a |$hostnam|e = $1;.|
|000054c0| 58 09 20 20 20 20 7d 0a | 58 09 20 20 20 20 65 6c |X. }.|X. el|
|000054d0| 73 69 66 20 28 24 5f 20 | 3d 7e 20 2f 5e 5c 73 2a |sif ($_ |=~ /^\s*|
|000054e0| 66 6f 72 6d 61 74 5c 73 | 2a 24 2f 29 20 7b 0a 58 |format\s|*$/) {.X|
|000054f0| 09 09 24 66 6f 72 6d 61 | 74 20 3d 20 27 27 3b 0a |..$forma|t = '';.|
|00005500| 58 09 09 77 68 69 6c 65 | 20 28 3c 52 43 3e 29 20 |X..while| (<RC>) |
|00005510| 7b 0a 58 09 09 20 20 20 | 20 24 66 6f 72 6d 61 74 |{.X.. | $format|
|00005520| 20 2e 3d 20 24 5f 3b 0a | 58 09 09 7d 0a 58 09 09 | .= $_;.|X..}.X..|
|00005530| 72 65 74 75 72 6e 3b 0a | 58 09 20 20 20 20 7d 0a |return;.|X. }.|
|00005540| 58 09 20 20 20 20 65 6c | 73 69 66 20 28 24 5f 20 |X. el|sif ($_ |
|00005550| 3d 7e 20 2f 5e 5c 73 2a | 24 2f 20 7c 7c 20 24 5f |=~ /^\s*|$/ || $_|
|00005560| 20 3d 7e 20 2f 5e 5c 73 | 2a 5c 23 2f 29 20 7b 0a | =~ /^\s|*\#/) {.|
|00005570| 58 09 20 20 20 20 7d 0a | 58 09 20 20 20 20 65 6c |X. }.|X. el|
|00005580| 73 65 20 7b 0a 58 09 09 | 70 72 69 6e 74 20 22 24 |se {.X..|print "$|
|00005590| 70 72 6f 67 3a 20 55 6e | 6b 6e 6f 77 6e 20 6f 70 |prog: Un|known op|
|000055a0| 74 69 6f 6e 20 69 6e 20 | 24 75 73 65 72 2f 2e 61 |tion in |$user/.a|
|000055b0| 72 63 68 69 65 72 63 3a | 20 24 5f 5c 6e 22 3b 0a |rchierc:| $_\n";.|
|000055c0| 58 09 20 20 20 20 7d 0a | 58 09 7d 0a 58 09 63 6c |X. }.|X.}.X.cl|
|000055d0| 6f 73 65 28 52 43 29 3b | 0a 58 20 20 20 20 7d 0a |ose(RC);|.X }.|
|000055e0| 58 7d 0a 45 4e 44 5f 4f | 46 5f 46 49 4c 45 0a 69 |X}.END_O|F_FILE.i|
|000055f0| 66 20 74 65 73 74 20 31 | 35 31 39 31 20 2d 6e 65 |f test 1|5191 -ne|
|00005600| 20 60 77 63 20 2d 63 20 | 3c 27 61 72 63 68 69 65 | `wc -c |<'archie|
|00005610| 27 60 3b 20 74 68 65 6e | 0a 20 20 20 20 65 63 68 |'`; then|. ech|
|00005620| 6f 20 73 68 61 72 3a 20 | 5c 22 27 61 72 63 68 69 |o shar: |\"'archi|
|00005630| 65 27 5c 22 20 75 6e 70 | 61 63 6b 65 64 20 77 69 |e'\" unp|acked wi|
|00005640| 74 68 20 77 72 6f 6e 67 | 20 73 69 7a 65 21 0a 66 |th wrong| size!.f|
|00005650| 69 0a 63 68 6d 6f 64 20 | 2b 78 20 27 61 72 63 68 |i.chmod |+x 'arch|
|00005660| 69 65 27 0a 23 20 65 6e | 64 20 6f 66 20 27 61 72 |ie'.# en|d of 'ar|
|00005670| 63 68 69 65 27 0a 66 69 | 0a 69 66 20 74 65 73 74 |chie'.fi|.if test|
|00005680| 20 2d 66 20 27 61 72 63 | 68 69 65 2e 6c 27 20 2d | -f 'arc|hie.l' -|
|00005690| 61 20 22 24 7b 31 7d 22 | 20 21 3d 20 22 2d 63 22 |a "${1}"| != "-c"|
|000056a0| 20 3b 20 74 68 65 6e 20 | 0a 20 20 65 63 68 6f 20 | ; then |. echo |
|000056b0| 73 68 61 72 3a 20 57 69 | 6c 6c 20 6e 6f 74 20 63 |shar: Wi|ll not c|
|000056c0| 6c 6f 62 62 65 72 20 65 | 78 69 73 74 69 6e 67 20 |lobber e|xisting |
|000056d0| 66 69 6c 65 20 5c 22 27 | 61 72 63 68 69 65 2e 6c |file \"'|archie.l|
|000056e0| 27 5c 22 0a 65 6c 73 65 | 0a 65 63 68 6f 20 73 68 |'\".else|.echo sh|
|000056f0| 61 72 3a 20 45 78 74 72 | 61 63 74 69 6e 67 20 5c |ar: Extr|acting \|
|00005700| 22 27 61 72 63 68 69 65 | 2e 6c 27 5c 22 20 5c 28 |"'archie|.l'\" \(|
|00005710| 33 38 35 34 20 63 68 61 | 72 61 63 74 65 72 73 5c |3854 cha|racters\|
|00005720| 29 0a 73 65 64 20 22 73 | 2f 5e 58 2f 2f 22 20 3e |).sed "s|/^X//" >|
|00005730| 27 61 72 63 68 69 65 2e | 6c 27 20 3c 3c 27 45 4e |'archie.|l' <<'EN|
|00005740| 44 5f 4f 46 5f 46 49 4c | 45 27 0a 58 2e 5c 22 20 |D_OF_FIL|E'.X.\" |
|00005750| 24 49 64 3a 20 61 72 63 | 68 69 65 2e 6c 2c 76 20 |$Id: arc|hie.l,v |
|00005760| 31 2e 30 20 31 39 39 31 | 2f 30 37 2f 31 33 20 31 |1.0 1991|/07/13 1|
|00005770| 33 3a 35 36 3a 33 33 20 | 63 6c 69 70 70 65 72 20 |3:56:33 |clipper |
|00005780| 45 78 70 20 63 6c 69 70 | 70 65 72 20 24 0a 58 2e |Exp clip|per $.X.|
|00005790| 54 48 20 41 52 43 48 49 | 45 20 4c 20 22 31 33 20 |TH ARCHI|E L "13 |
|000057a0| 4a 55 4c 59 20 31 39 39 | 31 22 0a 58 2e 53 48 20 |JULY 199|1".X.SH |
|000057b0| 4e 41 4d 45 0a 58 61 72 | 63 68 69 65 20 5c 2d 20 |NAME.Xar|chie \- |
|000057c0| 71 75 65 72 79 20 61 6e | 20 61 72 63 68 69 65 20 |query an| archie |
|000057d0| 73 65 72 76 65 72 0a 58 | 2e 53 48 20 53 59 4e 4f |server.X|.SH SYNO|
|000057e0| 50 53 49 53 0a 58 2e 42 | 20 61 72 63 68 69 65 0a |PSIS.X.B| archie.|
|000057f0| 58 2e 52 42 20 5b 20 22 | 20 5c 2d 6d 61 74 63 68 |X.RB [ "| \-match|
|00005800| 20 68 69 74 73 20 22 20 | 5d 0a 58 2e 52 42 20 5b | hits " |].X.RB [|
|00005810| 20 22 20 5c 2d 72 65 67 | 20 22 20 5d 0a 58 2e 52 | " \-reg| " ].X.R|
|00005820| 42 20 5b 20 22 20 5c 2d | 65 78 61 63 74 20 22 20 |B [ " \-|exact " |
|00005830| 5d 0a 58 2e 52 42 20 5b | 20 22 20 5c 2d 6e 6f 63 |].X.RB [| " \-noc|
|00005840| 61 73 65 20 22 20 5d 0a | 58 2e 52 42 20 5b 20 22 |ase " ].|X.RB [ "|
|00005850| 20 5c 2d 63 61 73 65 20 | 22 20 5d 0a 58 2e 52 42 | \-case |" ].X.RB|
|00005860| 20 5b 20 22 20 5c 2d 68 | 6f 73 74 20 68 6f 73 74 | [ " \-h|ost host|
|00005870| 6e 61 6d 65 20 22 20 5d | 0a 58 2e 52 42 20 5b 20 |name " ]|.X.RB [ |
|00005880| 22 20 5c 2d 66 66 69 6c | 65 20 66 6f 72 6d 61 74 |" \-ffil|e format|
|00005890| 66 69 6c 65 20 22 20 5d | 0a 58 2e 52 42 20 5b 20 |file " ]|.X.RB [ |
|000058a0| 22 20 5c 2d 66 6f 72 6d | 61 74 20 66 6f 72 6d 61 |" \-form|at forma|
|000058b0| 74 20 22 20 5d 0a 58 2e | 52 42 20 5b 20 22 20 5c |t " ].X.|RB [ " \|
|000058c0| 2d 61 6c 6f 6e 67 20 22 | 20 5d 0a 58 2e 52 42 20 |-along "| ].X.RB |
|000058d0| 5b 20 22 20 5c 2d 6e 6f | 72 63 20 22 20 5d 0a 58 |[ " \-no|rc " ].X|
|000058e0| 2e 49 52 20 77 6f 72 64 | 31 20 0a 58 2e 49 52 20 |.IR word|1 .X.IR |
|000058f0| 77 6f 72 64 32 20 5c 26 | 2e 5c 7c 2e 5c 7c 2e 0a |word2 \&|.\|.\|..|
|00005900| 58 2e 4c 50 0a 58 2e 53 | 48 20 44 45 53 43 52 49 |X.LP.X.S|H DESCRI|
|00005910| 50 54 49 4f 4e 0a 58 2e | 42 20 61 72 63 68 69 65 |PTION.X.|B archie|
|00005920| 0a 58 71 75 65 72 69 65 | 73 20 61 6e 20 61 72 63 |.Xquerie|s an arc|
|00005930| 68 69 65 20 73 65 72 76 | 65 72 20 74 6f 20 67 65 |hie serv|er to ge|
|00005940| 74 20 64 69 72 65 63 74 | 6f 72 79 20 61 73 73 69 |t direct|ory assi|
|00005950| 73 74 61 6e 63 65 20 6f | 6e 20 74 68 65 20 68 6f |stance o|n the ho|
|00005960| 73 74 73 20 61 6e 64 0a | 58 64 69 72 65 63 74 6f |sts and.|Xdirecto|
|00005970| 72 69 65 73 20 68 61 76 | 69 6e 67 20 74 68 65 20 |ries hav|ing the |
|00005980| 70 72 6f 67 72 61 6d 73 | 20 77 69 74 68 20 74 68 |programs| with th|
|00005990| 65 20 77 6f 72 64 20 27 | 77 6f 72 64 27 2e 20 54 |e word '|word'. T|
|000059a0| 68 65 20 70 72 6f 67 72 | 61 6d 0a 58 61 6c 6c 6f |he progr|am.Xallo|
|000059b0| 77 73 20 74 68 65 20 75 | 73 65 72 20 74 6f 20 73 |ws the u|ser to s|
|000059c0| 70 65 63 69 66 79 20 61 | 20 66 6f 72 6d 61 74 20 |pecify a| format |
|000059d0| 74 6f 20 70 72 69 6e 74 | 20 74 68 65 20 6d 61 74 |to print| the mat|
|000059e0| 63 68 69 6e 67 20 65 6e | 74 72 69 65 73 20 66 72 |ching en|tries fr|
|000059f0| 6f 6d 0a 58 74 68 65 20 | 61 72 63 68 69 65 20 73 |om.Xthe |archie s|
|00005a00| 65 72 76 65 72 2e 0a 58 | 2e 4c 50 0a 58 2e 53 48 |erver..X|.LP.X.SH|
|00005a10| 20 4f 50 54 49 4f 4e 53 | 0a 58 2e 54 50 0a 58 2e | OPTIONS|.X.TP.X.|
|00005a20| 42 20 5c 2d 6d 61 74 63 | 68 20 68 69 74 73 0a 58 |B \-matc|h hits.X|
|00005a30| 53 65 74 20 74 68 65 20 | 6d 61 78 69 6d 75 6d 20 |Set the |maximum |
|00005a40| 6e 75 6d 62 65 72 20 6f | 66 20 68 69 74 73 20 74 |number o|f hits t|
|00005a50| 6f 20 62 65 20 60 20 68 | 69 74 73 20 27 2e 20 54 |o be ` h|its '. T|
|00005a60| 68 65 20 64 65 66 61 75 | 6c 74 20 6e 75 6d 62 65 |he defau|lt numbe|
|00005a70| 72 20 69 73 0a 58 31 30 | 30 2e 20 50 6c 65 61 73 |r is.X10|0. Pleas|
|00005a80| 65 20 73 65 74 20 74 68 | 69 73 20 74 6f 20 61 20 |e set th|is to a |
|00005a90| 6d 6f 64 65 72 61 74 65 | 20 6e 75 6d 62 65 72 2e |moderate| number.|
|00005aa0| 0a 58 2e 54 50 0a 58 2e | 42 20 5c 2d 63 61 73 65 |.X.TP.X.|B \-case|
|00005ab0| 0a 58 53 65 74 20 74 68 | 65 20 73 65 61 72 63 68 |.XSet th|e search|
|00005ac0| 20 6f 70 74 69 6f 6e 20 | 74 6f 20 62 65 20 63 61 | option |to be ca|
|00005ad0| 73 65 20 73 65 6e 73 69 | 74 69 76 65 2e 0a 58 2e |se sensi|tive..X.|
|00005ae0| 54 50 0a 58 2e 42 20 5c | 2d 6e 6f 63 61 73 65 0a |TP.X.B \|-nocase.|
|00005af0| 58 53 65 74 20 74 68 65 | 20 73 65 61 72 63 68 20 |XSet the| search |
|00005b00| 6f 70 74 69 6f 6e 20 74 | 6f 20 62 65 20 63 61 73 |option t|o be cas|
|00005b10| 65 20 69 6e 73 65 6e 73 | 69 74 69 76 65 2e 0a 58 |e insens|itive..X|
|00005b20| 2e 54 50 0a 58 2e 42 20 | 5c 2d 65 78 61 63 74 0a |.TP.X.B |\-exact.|
|00005b30| 58 53 65 74 20 74 68 65 | 20 73 65 61 72 63 68 20 |XSet the| search |
|00005b40| 6f 70 74 69 6f 6e 20 74 | 6f 20 62 65 20 65 78 61 |option t|o be exa|
|00005b50| 63 74 2e 0a 58 2e 54 50 | 0a 58 2e 42 20 5c 2d 72 |ct..X.TP|.X.B \-r|
|00005b60| 65 67 0a 58 53 65 74 20 | 74 68 65 20 73 65 61 72 |eg.XSet |the sear|
|00005b70| 63 68 20 6f 70 74 69 6f | 6e 20 74 6f 20 62 65 20 |ch optio|n to be |
|00005b80| 72 65 67 75 6c 61 72 20 | 65 78 70 72 65 73 73 69 |regular |expressi|
|00005b90| 6f 6e 2e 0a 58 2e 54 50 | 0a 58 2e 42 20 5c 2d 68 |on..X.TP|.X.B \-h|
|00005ba0| 6f 73 74 20 68 6f 73 74 | 6e 61 6d 65 20 0a 58 53 |ost host|name .XS|
|00005bb0| 65 74 20 74 68 65 20 61 | 72 63 68 69 65 20 68 6f |et the a|rchie ho|
|00005bc0| 73 74 20 74 6f 20 60 20 | 68 6f 73 74 6e 61 6d 65 |st to ` |hostname|
|00005bd0| 20 27 2e 0a 58 2e 54 50 | 0a 58 2e 42 20 5c 2d 66 | '..X.TP|.X.B \-f|
|00005be0| 66 69 6c 65 20 66 69 6c | 65 6e 61 6d 65 0a 58 52 |file fil|ename.XR|
|00005bf0| 65 61 64 20 74 68 65 20 | 66 69 6c 65 20 60 20 66 |ead the |file ` f|
|00005c00| 69 6c 65 6e 61 6d 65 20 | 27 20 74 6f 20 67 65 74 |ilename |' to get|
|00005c10| 20 74 68 65 20 66 6f 72 | 6d 61 74 20 73 74 72 69 | the for|mat stri|
|00005c20| 6e 67 2e 0a 58 2e 54 50 | 0a 58 2e 42 20 5c 2d 66 |ng..X.TP|.X.B \-f|
|00005c30| 6f 72 6d 61 74 20 73 74 | 72 69 6e 67 0a 58 53 65 |ormat st|ring.XSe|
|00005c40| 74 20 74 68 65 20 66 6f | 72 6d 61 74 20 73 74 72 |t the fo|rmat str|
|00005c50| 69 6e 67 20 74 6f 20 62 | 65 20 60 20 73 74 72 69 |ing to b|e ` stri|
|00005c60| 6e 67 20 27 2e 0a 58 2e | 54 50 0a 58 2e 42 20 5c |ng '..X.|TP.X.B \|
|00005c70| 2d 61 6c 6f 6e 67 0a 58 | 4f 75 74 70 75 74 20 61 |-along.X|Output a|
|00005c80| 6c 6c 20 65 6e 74 72 69 | 65 73 20 61 73 20 73 6f |ll entri|es as so|
|00005c90| 6f 6e 20 61 73 20 74 68 | 65 79 20 61 72 65 20 61 |on as th|ey are a|
|00005ca0| 76 61 69 6c 61 62 6c 65 | 2e 20 54 68 65 20 64 65 |vailable|. The de|
|00005cb0| 66 61 75 6c 74 20 69 73 | 20 74 6f 0a 58 6f 75 74 |fault is| to.Xout|
|00005cc0| 70 75 74 20 65 76 65 72 | 79 74 68 69 6e 67 20 61 |put ever|ything a|
|00005cd0| 74 20 74 68 65 20 65 6e | 64 2e 0a 58 2e 54 50 0a |t the en|d..X.TP.|
|00005ce0| 58 2e 42 20 5c 2d 6e 6f | 72 63 0a 58 44 6f 20 6e |X.B \-no|rc.XDo n|
|00005cf0| 6f 74 20 72 65 61 64 20 | 74 68 65 20 2e 61 72 63 |ot read |the .arc|
|00005d00| 68 69 65 72 63 20 66 69 | 6c 65 20 66 72 6f 6d 20 |hierc fi|le from |
|00005d10| 74 68 65 20 75 73 65 72 | 27 73 20 68 6f 6d 65 20 |the user|'s home |
|00005d20| 64 69 72 65 63 74 6f 72 | 79 2e 0a 58 2e 53 48 20 |director|y..X.SH |
|00005d30| 53 54 41 52 54 55 50 20 | 46 49 4c 45 0a 58 2e 49 |STARTUP |FILE.X.I|
|00005d40| 20 41 72 63 68 69 65 0a | 58 72 65 61 64 73 20 74 | Archie.|Xreads t|
|00005d50| 68 65 20 66 69 6c 65 20 | 60 20 2e 61 72 63 68 69 |he file |` .archi|
|00005d60| 65 72 63 20 27 20 66 72 | 6f 6d 20 74 68 65 20 75 |erc ' fr|om the u|
|00005d70| 73 65 72 27 73 20 68 6f | 6d 65 20 64 69 72 65 63 |ser's ho|me direc|
|00005d80| 74 6f 72 79 2e 20 54 68 | 65 0a 58 63 6f 6d 6d 61 |tory. Th|e.Xcomma|
|00005d90| 6e 64 73 20 61 6c 6c 6f | 77 65 64 20 61 72 65 20 |nds allo|wed are |
|00005da0| 60 20 6d 61 74 63 68 20 | 27 2c 20 60 20 73 65 61 |` match |', ` sea|
|00005db0| 72 63 68 20 27 2c 20 60 | 20 68 6f 73 74 20 27 2c |rch ', `| host ',|
|00005dc0| 20 61 6e 64 20 60 20 66 | 6f 72 6d 61 74 20 27 2e | and ` f|ormat '.|
|00005dd0| 0a 58 54 68 65 20 66 6f | 72 6d 61 74 20 63 6f 6d |.XThe fo|rmat com|
|00005de0| 6d 61 6e 64 20 6d 75 73 | 74 20 62 65 20 73 70 65 |mand mus|t be spe|
|00005df0| 63 69 66 69 65 64 20 61 | 73 20 74 68 65 20 6c 61 |cified a|s the la|
|00005e00| 73 74 20 6f 70 74 69 6f | 6e 20 6f 66 20 74 68 65 |st optio|n of the|
|00005e10| 20 66 69 6c 65 2e 0a 58 | 45 61 63 68 20 6c 69 6e | file..X|Each lin|
|00005e20| 65 20 68 61 73 20 74 77 | 6f 20 66 69 65 6c 64 73 |e has tw|o fields|
|00005e30| 3b 20 74 68 65 20 66 69 | 72 73 74 20 66 69 65 6c |; the fi|rst fiel|
|00005e40| 64 20 69 73 20 74 68 65 | 20 6e 61 6d 65 20 6f 66 |d is the| name of|
|00005e50| 20 74 68 65 20 6f 70 74 | 69 6f 6e 0a 58 61 6e 64 | the opt|ion.Xand|
|00005e60| 20 74 68 65 20 73 65 63 | 6f 6e 64 20 66 69 65 6c | the sec|ond fiel|
|00005e70| 64 20 69 73 20 74 68 65 | 20 6f 70 74 69 6f 6e 20 |d is the| option |
|00005e80| 76 61 6c 75 65 2e 20 54 | 68 65 20 76 61 6c 75 65 |value. T|he value|
|00005e90| 20 6f 66 20 74 68 65 20 | 60 20 6d 61 74 63 68 20 | of the |` match |
|00005ea0| 27 0a 58 6f 70 74 69 6f | 6e 20 69 73 20 61 6e 20 |'.Xoptio|n is an |
|00005eb0| 69 6e 74 65 67 65 72 2e | 20 54 68 65 20 76 61 6c |integer.| The val|
|00005ec0| 75 65 73 20 61 6c 6c 6f | 77 65 64 20 66 6f 72 20 |ues allo|wed for |
|00005ed0| 74 68 65 20 60 20 73 65 | 61 72 63 68 20 27 20 63 |the ` se|arch ' c|
|00005ee0| 6f 6d 6d 61 6e 64 0a 58 | 61 72 65 0a 58 2e 49 20 |ommand.X|are.X.I |
|00005ef0| 63 61 73 65 2c 20 6e 6f | 63 61 73 65 2c 20 72 65 |case, no|case, re|
|00005f00| 67 2c 20 65 78 61 63 74 | 0a 58 77 69 74 68 20 74 |g, exact|.Xwith t|
|00005f10| 68 65 20 73 61 6d 65 20 | 6d 65 61 6e 69 6e 67 20 |he same |meaning |
|00005f20| 61 73 20 6f 6e 20 74 68 | 65 20 63 6f 6d 6d 61 6e |as on th|e comman|
|00005f30| 64 20 6c 69 6e 65 2e 20 | 54 68 65 20 60 20 68 6f |d line. |The ` ho|
|00005f40| 73 74 20 27 20 63 6f 6d | 6d 61 6e 64 0a 58 61 6c |st ' com|mand.Xal|
|00005f50| 6c 6f 77 73 20 61 20 61 | 72 63 68 69 65 20 73 65 |lows a a|rchie se|
|00005f60| 72 76 65 72 20 74 6f 20 | 62 65 20 73 70 65 63 69 |rver to |be speci|
|00005f70| 66 69 65 64 2e 20 54 68 | 65 20 66 69 6c 65 20 63 |fied. Th|e file c|
|00005f80| 61 6e 20 68 61 76 65 20 | 63 6f 6d 6d 65 6e 74 0a |an have |comment.|
|00005f90| 58 6c 69 6e 65 73 20 62 | 65 66 6f 72 65 20 74 68 |Xlines b|efore th|
|00005fa0| 65 20 66 6f 72 6d 61 74 | 20 6f 70 74 69 6f 6e 2e |e format| option.|
|00005fb0| 20 45 61 63 68 20 63 6f | 6d 6d 65 6e 74 20 6c 69 | Each co|mment li|
|00005fc0| 6e 65 20 6d 75 73 74 20 | 62 65 20 62 79 20 69 74 |ne must |be by it|
|00005fd0| 73 20 6f 77 6e 2e 0a 58 | 4e 6f 20 63 6f 6d 6d 65 |s own..X|No comme|
|00005fe0| 6e 74 73 20 61 72 65 20 | 61 6c 6c 6f 77 65 64 20 |nts are |allowed |
|00005ff0| 6f 6e 20 74 68 65 20 73 | 61 6d 65 20 6c 69 6e 65 |on the s|ame line|
|00006000| 73 20 61 73 20 74 68 65 | 20 63 6f 6d 6d 61 6e 64 |s as the| command|
|00006010| 73 2e 20 41 20 63 6f 6d | 6d 65 6e 74 0a 58 6c 69 |s. A com|ment.Xli|
|00006020| 6e 65 20 69 73 20 73 74 | 61 72 74 65 64 20 77 69 |ne is st|arted wi|
|00006030| 74 68 20 74 68 65 20 5c | 23 20 63 68 61 72 61 63 |th the \|# charac|
|00006040| 74 65 72 2e 0a 58 2e 53 | 48 20 4f 55 54 50 55 54 |ter..X.S|H OUTPUT|
|00006050| 20 46 4f 52 4d 41 54 0a | 58 54 68 65 20 6f 75 74 | FORMAT.|XThe out|
|00006060| 70 75 74 20 6f 66 0a 58 | 2e 49 20 61 72 63 68 69 |put of.X|.I archi|
|00006070| 65 0a 58 69 73 20 63 6f | 6e 74 72 6f 6c 65 64 20 |e.Xis co|ntroled |
|00006080| 62 79 20 61 20 66 6f 72 | 6d 61 74 20 73 74 72 69 |by a for|mat stri|
|00006090| 6e 67 2e 20 54 68 69 73 | 20 66 6f 72 6d 61 74 20 |ng. This| format |
|000060a0| 73 74 72 69 6e 67 20 63 | 61 6e 20 62 65 20 63 68 |string c|an be ch|
|000060b0| 61 6e 67 65 64 20 69 6e | 0a 58 74 68 65 20 61 72 |anged in|.Xthe ar|
|000060c0| 63 68 69 65 20 73 74 61 | 72 74 75 70 20 66 69 6c |chie sta|rtup fil|
|000060d0| 65 2c 20 73 70 65 63 69 | 66 69 65 64 20 6f 6e 20 |e, speci|fied on |
|000060e0| 74 68 65 20 63 6f 6d 6d | 61 6e 64 20 6c 69 6e 65 |the comm|and line|
|000060f0| 2c 20 6f 72 20 72 65 61 | 64 20 66 72 6f 6d 20 61 |, or rea|d from a|
|00006100| 0a 58 66 69 6c 65 2e 20 | 54 68 65 20 66 6f 72 6d |.Xfile. |The form|
|00006110| 61 74 20 73 74 72 69 6e | 67 20 68 61 73 20 61 20 |at strin|g has a |
|00006120| 73 69 6d 69 6c 61 72 20 | 73 79 6e 74 61 78 20 77 |similar |syntax w|
|00006130| 69 74 68 20 74 68 65 20 | 66 6f 72 6d 61 74 20 66 |ith the |format f|
|00006140| 69 6c 65 20 6f 66 0a 58 | 70 72 69 6e 74 66 28 29 |ile of.X|printf()|
|00006150| 2e 20 54 68 65 20 65 73 | 63 61 70 65 20 63 68 61 |. The es|cape cha|
|00006160| 72 61 63 74 65 72 20 66 | 6f 72 20 66 69 65 6c 64 |racter f|or field|
|00006170| 73 20 69 73 20 25 2e 20 | 54 68 65 20 6d 65 61 6e |s is %. |The mean|
|00006180| 69 6e 67 20 6f 66 0a 58 | 62 61 63 6b 73 6c 61 73 |ing of.X|backslas|
|00006190| 68 20 69 73 20 73 69 6d | 69 6c 61 72 20 74 6f 20 |h is sim|ilar to |
|000061a0| 74 68 61 74 20 69 6e 20 | 70 72 69 6e 74 66 2e 20 |that in |printf. |
|000061b0| 54 68 65 20 61 6c 6c 6f | 77 65 64 20 66 69 65 6c |The allo|wed fiel|
|000061c0| 64 73 20 61 72 65 3a 0a | 58 2e 50 44 20 30 0a 58 |ds are:.|X.PD 0.X|
|000061d0| 2e 54 50 20 31 30 0a 58 | 2e 42 20 25 0a 58 44 6f |.TP 10.X|.B %.XDo|
|000061e0| 75 62 6c 65 20 25 20 77 | 69 6c 6c 20 70 72 6f 64 |uble % w|ill prod|
|000061f0| 75 63 65 20 61 20 73 69 | 6e 67 6c 65 20 25 20 69 |uce a si|ngle % i|
|00006200| 6e 20 74 68 65 20 6f 75 | 74 70 75 74 2e 0a 58 2e |n the ou|tput..X.|
|00006210| 54 50 0a 58 2e 42 20 68 | 6f 73 74 0a 58 54 68 69 |TP.X.B h|ost.XThi|
|00006220| 73 20 66 69 65 6c 64 20 | 77 69 6c 6c 20 62 65 20 |s field |will be |
|00006230| 72 65 70 6c 61 63 65 64 | 20 62 79 20 74 68 65 20 |replaced| by the |
|00006240| 68 6f 73 74 20 6e 61 6d | 65 20 69 6e 20 61 6e 20 |host nam|e in an |
|00006250| 65 6e 74 72 79 2e 0a 58 | 2e 54 50 0a 58 2e 42 20 |entry..X|.TP.X.B |
|00006260| 64 69 72 0a 58 54 68 69 | 73 20 66 69 65 6c 64 20 |dir.XThi|s field |
|00006270| 73 70 65 63 69 66 69 65 | 73 20 74 68 65 20 70 61 |specifie|s the pa|
|00006280| 74 68 20 6f 66 20 74 68 | 65 20 65 6e 74 72 79 2e |th of th|e entry.|
|00006290| 0a 58 2e 54 50 0a 58 2e | 42 20 6d 6f 64 65 0a 58 |.X.TP.X.|B mode.X|
|000062a0| 54 68 65 20 70 72 6f 74 | 65 63 74 69 6f 6e 20 6f |The prot|ection o|
|000062b0| 66 20 74 68 65 20 65 6e | 74 72 79 2e 0a 58 2e 54 |f the en|try..X.T|
|000062c0| 50 0a 58 2e 42 20 64 61 | 74 65 0a 58 54 68 65 20 |P.X.B da|te.XThe |
|000062d0| 64 61 74 65 20 6f 66 20 | 6c 61 73 74 20 6d 6f 64 |date of |last mod|
|000062e0| 69 66 69 63 61 74 69 6f | 6e 20 6f 66 20 74 68 65 |ificatio|n of the|
|000062f0| 20 65 6e 74 72 79 2e 0a | 58 2e 54 50 0a 58 2e 42 | entry..|X.TP.X.B|
|00006300| 20 61 72 63 0a 58 54 68 | 65 20 64 61 74 65 20 66 | arc.XTh|e date f|
|00006310| 6f 72 20 6c 61 73 74 20 | 75 70 64 61 74 65 20 6f |or last |update o|
|00006320| 66 20 74 68 65 20 65 6e | 74 72 79 20 69 6e 20 74 |f the en|try in t|
|00006330| 68 65 20 64 61 74 61 62 | 61 73 65 2e 0a 58 2e 54 |he datab|ase..X.T|
|00006340| 50 0a 58 2e 42 20 73 65 | 71 0a 58 54 68 65 20 6e |P.X.B se|q.XThe n|
|00006350| 75 6d 62 65 72 20 6f 66 | 20 65 6e 74 72 69 65 73 |umber of| entries|
|00006360| 20 70 72 6f 63 65 73 73 | 65 64 20 73 6f 20 66 61 | process|ed so fa|
|00006370| 72 2e 0a 58 2e 54 50 0a | 58 2e 42 20 73 69 7a 65 |r..X.TP.|X.B size|
|00006380| 0a 58 54 68 65 20 73 69 | 7a 65 20 6f 66 20 74 68 |.XThe si|ze of th|
|00006390| 65 20 65 6e 74 72 79 2e | 0a 58 2e 54 50 0a 58 2e |e entry.|.X.TP.X.|
|000063a0| 42 20 6e 61 6d 65 0a 58 | 54 68 65 20 66 69 6c 65 |B name.X|The file|
|000063b0| 6e 61 6d 65 20 6f 66 20 | 65 6e 74 72 79 2e 0a 58 |name of |entry..X|
|000063c0| 2e 54 50 0a 58 2e 42 20 | 74 79 70 65 0a 58 54 68 |.TP.X.B |type.XTh|
|000063d0| 65 20 66 69 6c 65 20 74 | 79 70 65 20 6f 66 20 74 |e file t|ype of t|
|000063e0| 68 65 20 65 6e 74 72 79 | 2c 20 61 20 64 69 72 65 |he entry|, a dire|
|000063f0| 63 74 6f 72 79 20 6f 72 | 20 61 20 66 69 6c 65 2e |ctory or| a file.|
+--------+-------------------------+-------------------------+--------+--------+
Only 25.0 KB of data is shown above.