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: 2112
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 74 63 | 68 72 69 73 74 40 63 6f |From: tc|hrist@co|
|00000010| 6e 76 65 78 2e 43 4f 4d | 20 28 54 6f 6d 20 43 68 |nvex.COM| (Tom Ch|
|00000020| 72 69 73 74 69 61 6e 73 | 65 6e 29 0a 4e 65 77 73 |ristians|en).News|
|00000030| 67 72 6f 75 70 73 3a 20 | 61 6c 74 2e 73 6f 75 72 |groups: |alt.sour|
|00000040| 63 65 73 2c 63 6f 6d 70 | 2e 6d 61 69 6c 2e 6d 69 |ces,comp|.mail.mi|
|00000050| 73 63 0a 53 75 62 6a 65 | 63 74 3a 20 52 65 3a 20 |sc.Subje|ct: Re: |
|00000060| 41 6c 69 61 73 20 4c 69 | 73 74 65 72 20 46 6f 72 |Alias Li|ster For|
|00000070| 20 55 73 65 72 73 0a 4d | 65 73 73 61 67 65 2d 49 | Users.M|essage-I|
|00000080| 44 3a 20 3c 31 30 38 39 | 32 32 40 63 6f 6e 76 65 |D: <1089|22@conve|
|00000090| 78 2e 63 6f 6e 76 65 78 | 2e 63 6f 6d 3e 0a 44 61 |x.convex|.com>.Da|
|000000a0| 74 65 3a 20 31 38 20 4e | 6f 76 20 39 30 20 31 34 |te: 18 N|ov 90 14|
|000000b0| 3a 33 35 3a 35 36 20 47 | 4d 54 0a 0a 49 20 68 61 |:35:56 G|MT..I ha|
|000000c0| 76 65 6e 27 74 20 70 6f | 73 74 65 64 20 74 68 65 |ven't po|sted the|
|000000d0| 73 65 20 69 6e 20 61 20 | 77 68 69 6c 65 2c 20 61 |se in a |while, a|
|000000e0| 6e 64 20 74 68 65 79 27 | 76 65 20 67 72 6f 77 6e |nd they'|ve grown|
|000000f0| 20 61 20 62 69 74 20 73 | 69 6e 63 65 20 6c 61 73 | a bit s|ince las|
|00000100| 74 0a 74 69 6d 65 2e 20 | 20 49 74 20 64 6f 65 73 |t.time. | It does|
|00000110| 20 72 65 63 75 72 73 69 | 76 65 6c 79 20 72 65 73 | recursi|vely res|
|00000120| 6f 6c 76 65 20 61 6c 69 | 61 73 65 73 2c 20 69 6e |olve ali|ases, in|
|00000130| 63 6c 75 64 69 6e 67 20 | 66 6f 6c 6c 6f 77 69 6e |cluding |followin|
|00000140| 67 20 69 6e 63 6c 75 64 | 65 0a 66 69 6c 65 73 20 |g includ|e.files |
|00000150| 61 6e 64 20 2e 66 6f 72 | 77 61 72 64 20 66 69 6c |and .for|ward fil|
|00000160| 65 73 2c 20 61 6e 64 20 | 69 73 20 70 72 65 74 74 |es, and |is prett|
|00000170| 79 20 66 61 73 74 65 72 | 2e 0a 0a 20 20 20 20 70 |y faster|... p|
|00000180| 69 78 65 6c 25 20 67 65 | 74 61 6c 69 61 73 20 2d |ixel% ge|talias -|
|00000190| 56 20 70 6f 73 74 6d 61 | 73 74 65 72 0a 20 20 20 |V postma|ster. |
|000001a0| 20 5b 20 70 6f 73 74 6d | 61 73 74 65 72 20 2d 3e | [ postm|aster ->|
|000001b0| 20 72 6f 6f 74 20 5d 0a | 20 20 20 20 5b 20 72 6f | root ].| [ ro|
|000001c0| 6f 74 20 2d 3e 20 2f 2f | 2e 66 6f 72 77 61 72 64 |ot -> //|.forward|
|000001d0| 20 5d 0a 20 20 20 20 5b | 20 2f 2f 2e 66 6f 72 77 | ]. [| //.forw|
|000001e0| 61 72 64 20 2d 3e 20 72 | 68 61 6c 6c 2c 20 72 6d |ard -> r|hall, rm|
|000001f0| 69 6e 67 65 65 2c 20 74 | 63 68 72 69 73 74 20 5d |ingee, t|christ ]|
|00000200| 0a 20 20 20 20 5b 20 72 | 68 61 6c 6c 20 2d 3e 20 |. [ r|hall -> |
|00000210| 72 68 61 6c 6c 40 70 69 | 78 65 6c 20 5d 0a 20 20 |rhall@pi|xel ]. |
|00000220| 20 20 5b 20 72 68 61 6c | 6c 20 2d 3e 20 2f 6d 6e | [ rhal|l -> /mn|
|00000230| 74 2f 72 68 61 6c 6c 2f | 2e 66 6f 72 77 61 72 64 |t/rhall/|.forward|
|00000240| 20 5d 0a 20 20 20 20 5b | 20 2f 6d 6e 74 2f 72 68 | ]. [| /mnt/rh|
|00000250| 61 6c 6c 2f 2e 66 6f 72 | 77 61 72 64 20 2d 3e 20 |all/.for|ward -> |
|00000260| 22 7c 20 2f 75 73 72 2f | 6c 6f 63 61 6c 2f 6d 68 |"| /usr/|local/mh|
|00000270| 2f 6c 69 62 2f 73 6c 6f | 63 61 6c 20 2d 75 73 65 |/lib/slo|cal -use|
|00000280| 72 20 72 68 61 6c 6c 22 | 20 5d 0a 20 20 20 20 5b |r rhall"| ]. [|
|00000290| 20 72 6d 69 6e 67 65 65 | 20 2d 3e 20 72 6d 69 6e | rmingee| -> rmin|
|000002a0| 67 65 65 40 70 69 78 65 | 6c 20 5d 0a 20 20 20 20 |gee@pixe|l ]. |
|000002b0| 5b 20 74 63 68 72 69 73 | 74 20 2d 3e 20 74 63 68 |[ tchris|t -> tch|
|000002c0| 72 69 73 74 40 70 69 78 | 65 6c 20 5d 0a 20 20 20 |rist@pix|el ]. |
|000002d0| 20 70 6f 73 74 6d 61 73 | 74 65 72 20 2d 3e 20 22 | postmas|ter -> "|
|000002e0| 7c 20 2f 75 73 72 2f 6c | 6f 63 61 6c 2f 6d 68 2f || /usr/l|ocal/mh/|
|000002f0| 6c 69 62 2f 73 6c 6f 63 | 61 6c 20 2d 75 73 65 72 |lib/sloc|al -user|
|00000300| 20 72 68 61 6c 6c 22 2c | 20 72 6d 69 6e 67 65 65 | rhall",| rmingee|
|00000310| 2c 20 74 63 68 72 69 73 | 74 0a 0a 28 73 74 72 69 |, tchris|t..(stri|
|00000320| 70 70 65 64 20 6f 66 20 | 40 70 69 78 65 6c 20 61 |pped of |@pixel a|
|00000330| 74 20 74 68 65 20 65 6e | 64 20 62 65 63 61 75 73 |t the en|d becaus|
|00000340| 65 20 74 68 61 74 27 73 | 20 77 68 65 72 65 20 49 |e that's| where I|
|00000350| 20 72 61 6e 20 74 68 65 | 20 71 75 65 72 79 2e 29 | ran the| query.)|
|00000360| 0a 0a 0a 41 6c 73 6f 20 | 69 6e 63 6c 75 64 65 64 |...Also |included|
|00000370| 20 69 73 20 6e 66 69 6e | 67 65 72 2c 20 77 68 69 | is nfin|ger, whi|
|00000380| 63 68 20 75 73 65 73 20 | 74 68 65 20 73 61 6d 65 |ch uses |the same|
|00000390| 20 61 6c 67 6f 72 69 74 | 68 6d 20 61 6e 64 20 66 | algorit|hm and f|
|000003a0| 69 6e 67 65 72 73 20 74 | 68 65 0a 72 65 73 75 6c |ingers t|he.resul|
|000003b0| 74 73 20 6f 66 20 74 68 | 65 20 61 6c 69 61 73 20 |ts of th|e alias |
|000003c0| 65 78 70 61 6e 73 69 6f | 6e 2e 20 20 49 74 20 70 |expansio|n. It p|
|000003d0| 61 73 73 65 73 20 66 69 | 6e 67 65 72 20 73 77 69 |asses fi|nger swi|
|000003e0| 74 63 68 65 73 20 6f 6e | 20 74 6f 20 66 69 6e 67 |tches on| to fing|
|000003f0| 65 72 2e 0a 49 20 6f 66 | 74 65 6e 20 64 75 65 20 |er..I of|ten due |
|00000400| 74 68 69 73 20 74 6f 20 | 66 69 6e 64 20 6f 75 74 |this to |find out|
|00000410| 20 77 68 6f 27 73 20 6c | 6f 67 67 65 64 20 69 6e | who's l|ogged in|
|00000420| 20 66 72 6f 6d 20 61 20 | 70 61 72 74 69 63 75 6c | from a |particul|
|00000430| 61 72 20 70 72 6f 6a 65 | 63 74 0a 67 72 6f 75 70 |ar proje|ct.group|
|00000440| 3a 0a 0a 20 20 20 20 25 | 20 61 6c 69 61 73 20 66 |:.. %| alias f|
|00000450| 75 20 27 6e 66 69 6e 67 | 65 72 20 2d 73 6d 27 0a |u 'nfing|er -sm'.|
|00000460| 20 20 20 20 25 20 66 75 | 20 6d 61 69 6c 69 6e 67 | % fu| mailing|
|00000470| 2d 6c 69 73 74 0a 0a 47 | 65 74 61 6c 69 61 73 20 |-list..G|etalias |
|00000480| 68 61 73 20 61 6e 20 65 | 6d 62 65 64 64 65 64 20 |has an e|mbedded |
|00000490| 6d 61 6e 20 70 61 67 65 | 2c 20 73 6f 20 69 6e 73 |man page|, so ins|
|000004a0| 74 61 6c 6c 20 2f 75 73 | 72 2f 6c 6f 63 61 6c 2f |tall /us|r/local/|
|000004b0| 62 69 6e 2f 67 65 74 61 | 6c 69 61 73 0a 61 73 20 |bin/geta|lias.as |
|000004c0| 61 20 6c 69 6e 6b 20 74 | 6f 20 2f 75 73 72 2f 6c |a link t|o /usr/l|
|000004d0| 6f 63 61 6c 2f 6d 61 6e | 2f 6d 61 6e 31 2f 67 65 |ocal/man|/man1/ge|
|000004e0| 74 61 6c 69 61 73 2c 20 | 6f 72 20 77 68 61 74 65 |talias, |or whate|
|000004f0| 76 65 72 20 79 6f 75 72 | 20 6c 6f 63 61 6c 0a 70 |ver your| local.p|
|00000500| 61 74 68 73 20 61 72 65 | 2e 20 20 4e 66 69 6e 67 |aths are|. Nfing|
|00000510| 65 72 20 64 6f 65 73 6e | 27 74 20 2d 2d 20 55 73 |er doesn|'t -- Us|
|00000520| 65 20 74 68 65 20 53 6f | 75 72 63 65 2e 0a 0a 70 |e the So|urce...p|
|00000530| 73 3a 20 49 20 61 64 6d | 69 74 20 74 6f 20 6e 6f |s: I adm|it to no|
|00000540| 20 6c 6f 6e 67 65 72 20 | 72 65 63 61 6c 6c 69 6e | longer |recallin|
|00000550| 67 20 77 68 79 20 6e 66 | 69 6e 67 65 72 20 64 69 |g why nf|inger di|
|00000560| 64 6e 27 74 20 6a 75 73 | 74 20 63 61 6c 6c 20 67 |dn't jus|t call g|
|00000570| 65 74 61 6c 69 61 73 2e | 0a 0a 2d 2d 74 6f 6d 0a |etalias.|..--tom.|
|00000580| 0a 23 21 20 2f 62 69 6e | 2f 73 68 0a 23 20 54 68 |.#! /bin|/sh.# Th|
|00000590| 69 73 20 69 73 20 61 20 | 73 68 65 6c 6c 20 61 72 |is is a |shell ar|
|000005a0| 63 68 69 76 65 2c 20 6d | 65 61 6e 69 6e 67 3a 0a |chive, m|eaning:.|
|000005b0| 23 20 31 2e 20 52 65 6d | 6f 76 65 20 65 76 65 72 |# 1. Rem|ove ever|
|000005c0| 79 74 68 69 6e 67 20 61 | 62 6f 76 65 20 74 68 65 |ything a|bove the|
|000005d0| 20 23 21 20 2f 62 69 6e | 2f 73 68 20 6c 69 6e 65 | #! /bin|/sh line|
|000005e0| 2e 0a 23 20 32 2e 20 53 | 61 76 65 20 74 68 65 20 |..# 2. S|ave the |
|000005f0| 72 65 73 75 6c 74 69 6e | 67 20 74 65 78 74 20 69 |resultin|g text i|
|00000600| 6e 20 61 20 66 69 6c 65 | 2e 0a 23 20 33 2e 20 45 |n a file|..# 3. E|
|00000610| 78 65 63 75 74 65 20 74 | 68 65 20 66 69 6c 65 20 |xecute t|he file |
|00000620| 77 69 74 68 20 2f 62 69 | 6e 2f 73 68 20 28 6e 6f |with /bi|n/sh (no|
|00000630| 74 20 63 73 68 29 20 74 | 6f 20 63 72 65 61 74 65 |t csh) t|o create|
|00000640| 3a 0a 23 09 67 65 74 61 | 6c 69 61 73 0a 23 09 6e |:.#.geta|lias.#.n|
|00000650| 66 69 6e 67 65 72 0a 23 | 20 54 68 69 73 20 61 72 |finger.#| This ar|
|00000660| 63 68 69 76 65 20 63 72 | 65 61 74 65 64 3a 20 53 |chive cr|eated: S|
|00000670| 75 6e 20 4e 6f 76 20 31 | 38 20 30 38 3a 33 32 3a |un Nov 1|8 08:32:|
|00000680| 33 39 20 31 39 39 30 0a | 65 78 70 6f 72 74 20 50 |39 1990.|export P|
|00000690| 41 54 48 3b 20 50 41 54 | 48 3d 2f 62 69 6e 3a 2f |ATH; PAT|H=/bin:/|
|000006a0| 75 73 72 2f 62 69 6e 3a | 24 50 41 54 48 0a 65 63 |usr/bin:|$PATH.ec|
|000006b0| 68 6f 20 73 68 61 72 3a | 20 22 65 78 74 72 61 63 |ho shar:| "extrac|
|000006c0| 74 69 6e 67 20 27 67 65 | 74 61 6c 69 61 73 27 22 |ting 'ge|talias'"|
|000006d0| 20 27 28 34 38 30 37 20 | 63 68 61 72 61 63 74 65 | '(4807 |characte|
|000006e0| 72 73 29 27 0a 69 66 20 | 74 65 73 74 20 2d 66 20 |rs)'.if |test -f |
|000006f0| 27 67 65 74 61 6c 69 61 | 73 27 0a 74 68 65 6e 0a |'getalia|s'.then.|
|00000700| 09 65 63 68 6f 20 73 68 | 61 72 3a 20 22 77 69 6c |.echo sh|ar: "wil|
|00000710| 6c 20 6e 6f 74 20 6f 76 | 65 72 2d 77 72 69 74 65 |l not ov|er-write|
|00000720| 20 65 78 69 73 74 69 6e | 67 20 66 69 6c 65 20 27 | existin|g file '|
|00000730| 67 65 74 61 6c 69 61 73 | 27 22 0a 65 6c 73 65 0a |getalias|'".else.|
|00000740| 73 65 64 20 27 73 2f 5e | 09 58 2f 2f 27 20 3c 3c |sed 's/^|.X//' <<|
|00000750| 20 5c 53 48 41 52 5f 45 | 4f 46 20 3e 20 27 67 65 | \SHAR_E|OF > 'ge|
|00000760| 74 61 6c 69 61 73 27 0a | 09 58 23 21 2f 75 73 72 |talias'.|.X#!/usr|
|00000770| 2f 6c 6f 63 61 6c 2f 62 | 69 6e 2f 70 65 72 6c 0a |/local/b|in/perl.|
|00000780| 09 58 27 64 69 27 3b 0a | 09 58 27 69 67 30 30 27 |.X'di';.|.X'ig00'|
|00000790| 3b 0a 09 58 0a 09 58 64 | 62 6d 6f 70 65 6e 28 41 |;..X..Xd|bmopen(A|
|000007a0| 4c 49 41 53 45 53 2c 27 | 2f 75 73 72 2f 6c 69 62 |LIASES,'|/usr/lib|
|000007b0| 2f 61 6c 69 61 73 65 73 | 27 2c 75 6e 64 65 66 29 |/aliases|',undef)|
|000007c0| 20 7c 7c 20 64 69 65 20 | 22 63 61 6e 27 74 20 64 | || die |"can't d|
|000007d0| 62 6d 6f 70 65 6e 20 61 | 6c 69 61 73 65 73 22 3b |bmopen a|liases";|
|000007e0| 0a 09 58 0a 09 58 72 65 | 71 75 69 72 65 20 27 67 |..X..Xre|quire 'g|
|000007f0| 65 74 6f 70 74 73 2e 70 | 6c 27 3b 3b 0a 09 58 0a |etopts.p|l';;..X.|
|00000800| 09 58 28 26 47 65 74 6f | 70 74 73 28 27 76 56 73 |.X(&Geto|pts('vVs|
|00000810| 27 29 20 26 26 20 24 23 | 41 52 47 56 20 3e 3d 20 |') && $#|ARGV >= |
|00000820| 30 29 20 7c 7c 20 64 69 | 65 20 22 75 73 61 67 65 |0) || di|e "usage|
|00000830| 3a 20 24 30 20 5b 2d 76 | 56 73 5d 20 61 6c 69 61 |: $0 [-v|Vs] alia|
|00000840| 73 20 2e 2e 2e 5c 6e 22 | 3b 0a 09 58 0a 09 58 63 |s ...\n"|;..X..Xc|
|00000850| 68 6f 70 28 24 68 6f 73 | 74 20 3d 20 60 68 6f 73 |hop($hos|t = `hos|
|00000860| 74 6e 61 6d 65 60 29 3b | 0a 09 58 0a 09 58 28 24 |tname`);|..X..X($|
|00000870| 76 65 72 62 6f 73 65 2c | 20 24 73 68 6f 77 61 6c |verbose,| $showal|
|00000880| 6c 2c 20 24 73 68 6f 72 | 74 29 20 3d 20 28 24 6f |l, $shor|t) = ($o|
|00000890| 70 74 5f 76 2c 20 24 6f | 70 74 5f 56 2c 20 24 6f |pt_v, $o|pt_V, $o|
|000008a0| 70 74 5f 73 29 3b 0a 09 | 58 24 76 65 72 62 6f 73 |pt_s);..|X$verbos|
|000008b0| 65 20 7c 3d 20 24 73 68 | 6f 77 61 6c 6c 3b 0a 09 |e |= $sh|owall;..|
|000008c0| 58 0a 09 58 77 68 69 6c | 65 20 28 24 75 73 65 72 |X..Xwhil|e ($user|
|000008d0| 20 3d 20 73 68 69 66 74 | 29 20 7b 0a 09 58 20 20 | = shift|) {..X |
|000008e0| 20 20 6c 6f 63 61 6c 28 | 25 73 65 65 6e 29 3b 0a | local(|%seen);.|
|000008f0| 09 58 20 20 20 20 69 66 | 20 28 24 73 68 6f 72 74 |.X if| ($short|
|00000900| 29 20 7b 0a 09 58 09 70 | 72 69 6e 74 20 6a 6f 69 |) {..X.p|rint joi|
|00000910| 6e 28 27 20 27 2c 20 26 | 72 65 73 6f 6c 76 65 28 |n(' ', &|resolve(|
|00000920| 24 75 73 65 72 29 29 2c | 20 22 5c 6e 22 3b 0a 09 |$user)),| "\n";..|
|00000930| 58 20 20 20 20 7d 20 65 | 6c 73 65 20 7b 0a 09 58 |X } e|lse {..X|
|00000940| 09 70 72 69 6e 74 20 22 | 24 75 73 65 72 20 2d 3e |.print "|$user ->|
|00000950| 20 22 2c 20 6a 6f 69 6e | 28 27 2c 20 27 2c 20 73 | ", join|(', ', s|
|00000960| 6f 72 74 20 26 72 65 73 | 6f 6c 76 65 28 24 75 73 |ort &res|olve($us|
|00000970| 65 72 29 29 2c 20 22 5c | 6e 22 3b 0a 09 58 20 20 |er)), "\|n";..X |
|00000980| 20 20 7d 20 0a 09 58 7d | 0a 09 58 0a 09 58 73 75 | } ..X}|..X..Xsu|
|00000990| 62 20 72 65 73 6f 6c 76 | 65 20 7b 0a 09 58 20 20 |b resolv|e {..X |
|000009a0| 20 20 6c 6f 63 61 6c 28 | 24 61 64 64 72 2c 24 61 | local(|$addr,$a|
|000009b0| 6c 69 61 73 2c 40 6c 69 | 73 74 2c 40 69 6c 69 73 |lias,@li|st,@ilis|
|000009c0| 74 29 3b 0a 09 58 0a 09 | 58 20 20 20 20 77 68 69 |t);..X..|X whi|
|000009d0| 6c 65 20 28 24 61 64 64 | 72 20 3d 20 73 68 69 66 |le ($add|r = shif|
|000009e0| 74 29 20 7b 0a 09 58 09 | 69 66 20 28 24 73 65 65 |t) {..X.|if ($see|
|000009f0| 6e 7b 24 61 64 64 72 7d | 2b 2b 29 20 7b 0a 09 58 |n{$addr}|++) {..X|
|00000a00| 09 20 20 20 20 23 70 75 | 73 68 28 40 6c 69 73 74 |. #pu|sh(@list|
|00000a10| 2c 20 24 61 64 64 72 29 | 3b 0a 09 58 09 20 20 20 |, $addr)|;..X. |
|00000a20| 20 6e 65 78 74 3b 0a 09 | 58 09 7d 20 0a 09 58 09 | next;..|X.} ..X.|
|00000a30| 75 6e 6c 65 73 73 20 28 | 64 65 66 69 6e 65 64 20 |unless (|defined |
|00000a40| 24 41 4c 49 41 53 45 53 | 7b 22 24 61 64 64 72 5c |$ALIASES|{"$addr\|
|00000a50| 30 22 7d 29 20 7b 0a 09 | 58 09 20 20 20 20 70 75 |0"}) {..|X. pu|
|00000a60| 73 68 28 40 6c 69 73 74 | 2c 20 26 66 6f 72 77 61 |sh(@list|, &forwa|
|00000a70| 72 64 28 24 61 64 64 72 | 29 29 3b 0a 09 58 09 20 |rd($addr|));..X. |
|00000a80| 20 20 20 6e 65 78 74 3b | 0a 09 58 09 7d 20 0a 09 | next;|..X.} ..|
|00000a90| 58 09 63 68 6f 70 28 24 | 61 6c 69 61 73 20 3d 20 |X.chop($|alias = |
|00000aa0| 24 41 4c 49 41 53 45 53 | 7b 22 24 61 64 64 72 5c |$ALIASES|{"$addr\|
|00000ab0| 30 22 7d 29 3b 0a 09 58 | 09 24 61 6c 69 61 73 20 |0"});..X|.$alias |
|00000ac0| 3d 7e 20 73 2f 5e 5c 73 | 2a 28 2e 2a 29 5c 73 2a |=~ s/^\s|*(.*)\s*|
|00000ad0| 24 2f 24 31 2f 3b 0a 09 | 58 09 69 66 20 28 24 61 |$/$1/;..|X.if ($a|
|00000ae0| 6c 69 61 73 20 65 71 20 | 24 61 64 64 72 29 20 7b |lias eq |$addr) {|
|00000af0| 0a 09 58 09 20 20 20 20 | 70 75 73 68 28 40 6c 69 |..X. |push(@li|
|00000b00| 73 74 2c 20 26 66 6f 72 | 77 61 72 64 28 24 61 64 |st, &for|ward($ad|
|00000b10| 64 72 29 29 3b 0a 09 58 | 09 20 20 20 20 6e 65 78 |dr));..X|. nex|
|00000b20| 74 3b 0a 09 58 09 7d 20 | 0a 09 58 09 69 66 20 28 |t;..X.} |..X.if (|
|00000b30| 24 61 6c 69 61 73 20 3d | 7e 20 2f 5e 22 2f 29 20 |$alias =|~ /^"/) |
|00000b40| 7b 0a 09 58 09 20 20 20 | 20 70 75 73 68 28 40 6c |{..X. | push(@l|
|00000b50| 69 73 74 2c 20 24 61 6c | 69 61 73 29 3b 0a 09 58 |ist, $al|ias);..X|
|00000b60| 09 20 20 20 20 6e 65 78 | 74 3b 0a 09 58 09 7d 20 |. nex|t;..X.} |
|00000b70| 0a 09 58 09 70 72 69 6e | 74 20 22 5b 20 24 61 64 |..X.prin|t "[ $ad|
|00000b80| 64 72 20 2d 3e 20 24 61 | 6c 69 61 73 20 5d 5c 6e |dr -> $a|lias ]\n|
|00000b90| 22 20 0a 09 58 09 20 20 | 20 20 69 66 20 24 73 68 |" ..X. | if $sh|
|00000ba0| 6f 77 61 6c 6c 20 7c 7c | 20 28 24 76 65 72 62 6f |owall ||| ($verbo|
|00000bb0| 73 65 20 0a 09 58 09 09 | 26 26 20 28 24 61 6c 69 |se ..X..|&& ($ali|
|00000bc0| 61 73 20 21 7e 20 2f 5e | 24 61 64 64 72 40 5c 77 |as !~ /^|$addr@\w|
|00000bd0| 2b 24 2f 20 26 26 20 0a | 09 58 09 09 20 20 20 20 |+$/ && .|.X.. |
|00000be0| 24 61 6c 69 61 73 20 21 | 7e 20 2f 5e 5b 5e 21 5d |$alias !|~ /^[^!]|
|00000bf0| 2b 21 5b 5e 21 5d 2b 24 | 2f 29 29 3b 0a 09 58 09 |+![^!]+$|/));..X.|
|00000c00| 69 66 20 28 24 61 6c 69 | 61 73 20 65 71 20 22 24 |if ($ali|as eq "$|
|00000c10| 61 64 64 72 40 24 68 6f | 73 74 22 29 20 7b 0a 09 |addr@$ho|st") {..|
|00000c20| 58 09 20 20 20 20 70 75 | 73 68 28 40 6c 69 73 74 |X. pu|sh(@list|
|00000c30| 2c 20 26 66 6f 72 77 61 | 72 64 28 24 61 64 64 72 |, &forwa|rd($addr|
|00000c40| 29 29 3b 0a 09 58 09 20 | 20 20 20 6e 65 78 74 3b |));..X. | next;|
|00000c50| 0a 09 58 09 7d 20 0a 09 | 58 09 69 66 20 28 24 61 |..X.} ..|X.if ($a|
|00000c60| 6c 69 61 73 20 3d 7e 20 | 2f 5e 3a 69 6e 63 6c 75 |lias =~ |/^:inclu|
|00000c70| 64 65 3a 28 2e 2a 29 2f | 29 20 7b 0a 09 58 09 20 |de:(.*)/|) {..X. |
|00000c80| 20 20 20 75 6e 6c 65 73 | 73 20 28 6f 70 65 6e 28 | unles|s (open(|
|00000c90| 49 4e 43 2c 20 24 66 69 | 6c 65 20 3d 20 24 31 29 |INC, $fi|le = $1)|
|00000ca0| 29 20 7b 0a 09 58 09 09 | 70 72 69 6e 74 20 53 54 |) {..X..|print ST|
|00000cb0| 44 45 52 52 20 22 24 30 | 3a 20 63 61 6e 27 74 20 |DERR "$0|: can't |
|00000cc0| 6f 70 65 6e 20 24 66 69 | 6c 65 3a 20 24 21 5c 6e |open $fi|le: $!\n|
|00000cd0| 22 3b 0a 09 58 09 09 6e | 65 78 74 3b 0a 09 58 09 |";..X..n|ext;..X.|
|00000ce0| 20 20 20 20 7d 0a 09 58 | 09 20 20 20 20 40 69 6c | }..X|. @il|
|00000cf0| 69 73 74 20 3d 20 67 72 | 65 70 28 21 2f 5e 23 2f |ist = gr|ep(!/^#/|
|00000d00| 2c 20 3c 49 4e 43 3e 29 | 3b 0a 09 58 09 20 20 20 |, <INC>)|;..X. |
|00000d10| 20 66 6f 72 20 28 40 69 | 6c 69 73 74 29 20 7b 20 | for (@i|list) { |
|00000d20| 73 2f 5c 73 2f 2f 67 3b | 20 7d 20 0a 09 58 09 20 |s/\s//g;| } ..X. |
|00000d30| 20 20 20 63 6c 6f 73 65 | 28 49 4e 43 29 3b 0a 09 | close|(INC);..|
|00000d40| 58 09 20 20 20 20 70 72 | 69 6e 74 66 20 22 5b 20 |X. pr|intf "[ |
|00000d50| 25 73 20 2d 3e 20 25 73 | 20 5d 5c 6e 22 2c 20 24 |%s -> %s| ]\n", $|
|00000d60| 66 69 6c 65 2c 20 6a 6f | 69 6e 28 27 20 27 2c 20 |file, jo|in(' ', |
|00000d70| 40 69 6c 69 73 74 29 20 | 69 66 20 24 76 65 72 62 |@ilist) |if $verb|
|00000d80| 6f 73 65 3b 0a 09 58 09 | 20 20 20 20 70 75 73 68 |ose;..X.| push|
|00000d90| 28 40 6c 69 73 74 2c 26 | 72 65 73 6f 6c 76 65 28 |(@list,&|resolve(|
|00000da0| 40 69 6c 69 73 74 29 29 | 3b 0a 09 58 09 7d 20 65 |@ilist))|;..X.} e|
|00000db0| 6c 73 65 20 7b 0a 09 58 | 09 20 20 20 20 70 75 73 |lse {..X|. pus|
|00000dc0| 68 28 40 6c 69 73 74 2c | 26 72 65 73 6f 6c 76 65 |h(@list,|&resolve|
|00000dd0| 28 73 70 6c 69 74 28 2f | 5c 73 2a 2c 5c 73 2a 2f |(split(/|\s*,\s*/|
|00000de0| 2c 24 61 6c 69 61 73 29 | 29 29 3b 0a 09 58 09 7d |,$alias)|));..X.}|
|00000df0| 0a 09 58 20 20 20 20 7d | 20 0a 09 58 20 20 20 20 |..X }| ..X |
|00000e00| 72 65 74 75 72 6e 20 40 | 6c 69 73 74 3b 0a 09 58 |return @|list;..X|
|00000e10| 7d 20 0a 09 58 0a 09 58 | 0a 09 58 23 23 23 23 23 |} ..X..X|..X#####|
|00000e20| 23 23 23 23 23 23 23 23 | 23 23 23 23 23 23 23 23 |########|########|
|00000e30| 23 23 23 23 23 23 23 23 | 23 23 23 23 23 23 23 23 |########|########|
|00000e40| 23 23 23 23 23 23 23 23 | 23 23 23 23 23 23 23 23 |########|########|
|00000e50| 23 23 23 23 23 23 23 23 | 23 0a 09 58 0a 09 58 73 |########|#..X..Xs|
|00000e60| 75 62 20 66 6f 72 77 61 | 72 64 20 7b 0a 09 58 20 |ub forwa|rd {..X |
|00000e70| 20 20 20 20 6c 6f 63 61 | 6c 28 24 75 73 65 72 29 | loca|l($user)|
|00000e80| 20 3d 20 40 5f 3b 0a 09 | 58 20 20 20 20 20 6c 6f | = @_;..|X lo|
|00000e90| 63 61 6c 28 24 66 6f 72 | 77 61 72 64 29 3b 20 0a |cal($for|ward); .|
|00000ea0| 09 58 0a 09 58 20 20 20 | 20 20 72 65 74 75 72 6e |.X..X | return|
|00000eb0| 20 24 75 73 65 72 20 69 | 66 20 24 75 73 65 72 20 | $user i|f $user |
|00000ec0| 3d 7e 20 2f 5e 5c 73 2a | 22 3f 5b 7c 5c 2f 5d 2f |=~ /^\s*|"?[|\/]/|
|00000ed0| 3b 0a 09 58 20 20 20 20 | 20 72 65 74 75 72 6e 20 |;..X | return |
|00000ee0| 24 75 73 65 72 20 69 66 | 20 24 75 73 65 72 20 3d |$user if| $user =|
|00000ef0| 7e 20 2f 5e 5c 73 2a 2e | 2b 40 2e 2b 24 2f 3b 0a |~ /^\s*.|+@.+$/;.|
|00000f00| 09 58 20 20 20 20 20 72 | 65 74 75 72 6e 20 24 75 |.X r|eturn $u|
|00000f10| 73 65 72 20 69 66 20 24 | 75 73 65 72 20 3d 7e 20 |ser if $|user =~ |
|00000f20| 2f 5e 5c 73 2a 2e 2b 5c | 5c 3f 21 2e 2b 24 2f 3b |/^\s*.+\|\?!.+$/;|
|00000f30| 0a 09 58 20 20 20 20 20 | 72 65 74 75 72 6e 20 24 |..X |return $|
|00000f40| 75 73 65 72 20 69 66 20 | 24 75 73 65 72 20 3d 7e |user if |$user =~|
|00000f50| 20 2f 5e 5c 73 2a 5c 5c | 2f 3b 0a 09 58 0a 09 58 | /^\s*\\|/;..X..X|
|00000f60| 20 20 20 20 20 69 66 20 | 28 28 24 66 6f 72 77 61 | if |(($forwa|
|00000f70| 72 64 20 3d 20 26 6c 6f | 67 64 69 72 28 24 75 73 |rd = &lo|gdir($us|
|00000f80| 65 72 29 29 20 26 26 20 | 2d 72 20 24 66 6f 72 77 |er)) && |-r $forw|
|00000f90| 61 72 64 20 2e 3d 20 27 | 2f 2e 66 6f 72 77 61 72 |ard .= '|/.forwar|
|00000fa0| 64 27 29 20 7b 0a 09 58 | 09 69 66 20 28 21 6f 70 |d') {..X|.if (!op|
|00000fb0| 65 6e 20 66 6f 72 77 61 | 72 64 29 20 7b 0a 09 58 |en forwa|rd) {..X|
|00000fc0| 09 20 20 20 20 70 72 69 | 6e 74 20 53 54 44 45 52 |. pri|nt STDER|
|00000fd0| 52 20 22 24 30 3a 20 63 | 61 6e 6e 6f 74 20 6f 70 |R "$0: c|annot op|
|00000fe0| 65 6e 20 24 66 6f 72 77 | 61 72 64 3a 20 24 21 5c |en $forw|ard: $!\|
|00000ff0| 6e 22 3b 0a 09 58 09 7d | 20 65 6c 73 65 20 7b 0a |n";..X.}| else {.|
|00001000| 09 58 09 20 20 20 20 70 | 72 69 6e 74 20 22 5b 20 |.X. p|rint "[ |
|00001010| 24 75 73 65 72 20 2d 3e | 20 24 66 6f 72 77 61 72 |$user ->| $forwar|
|00001020| 64 20 5d 5c 6e 22 20 69 | 66 20 24 76 65 72 62 6f |d ]\n" i|f $verbo|
|00001030| 73 65 3b 0a 09 58 09 20 | 20 20 20 63 68 6f 70 28 |se;..X. | chop(|
|00001040| 24 75 73 65 72 20 3d 20 | 3c 66 6f 72 77 61 72 64 |$user = |<forward|
|00001050| 3e 29 3b 0a 09 58 09 20 | 20 20 20 63 6c 6f 73 65 |>);..X. | close|
|00001060| 20 66 6f 72 77 61 72 64 | 3b 0a 09 58 09 20 20 20 | forward|;..X. |
|00001070| 20 70 72 69 6e 74 20 22 | 5b 20 24 66 6f 72 77 61 | print "|[ $forwa|
|00001080| 72 64 20 2d 3e 20 24 75 | 73 65 72 20 5d 5c 6e 22 |rd -> $u|ser ]\n"|
|00001090| 20 69 66 20 24 76 65 72 | 62 6f 73 65 3b 0a 09 58 | if $ver|bose;..X|
|000010a0| 09 20 20 20 20 72 65 74 | 75 72 6e 20 26 72 65 73 |. ret|urn &res|
|000010b0| 6f 6c 76 65 28 73 70 6c | 69 74 28 2f 5c 73 2a 2c |olve(spl|it(/\s*,|
|000010c0| 5c 73 2a 2f 2c 24 75 73 | 65 72 29 29 3b 0a 09 58 |\s*/,$us|er));..X|
|000010d0| 09 7d 0a 09 58 20 20 20 | 20 20 7d 20 65 6c 73 65 |.}..X | } else|
|000010e0| 20 7b 0a 09 58 09 23 70 | 72 69 6e 74 20 22 6e 6f | {..X.#p|rint "no|
|000010f0| 20 66 6f 72 77 61 72 64 | 20 66 6f 72 20 24 75 73 | forward| for $us|
|00001100| 65 72 5c 6e 22 3b 0a 09 | 58 20 20 20 20 20 7d 20 |er\n";..|X } |
|00001110| 0a 09 58 20 20 20 20 20 | 24 75 73 65 72 20 3d 20 |..X |$user = |
|00001120| 22 24 75 73 65 72 20 3c | 4d 41 49 4c 45 52 2d 44 |"$user <|MAILER-D|
|00001130| 41 45 4d 4f 4e 3e 22 20 | 75 6e 6c 65 73 73 20 24 |AEMON>" |unless $|
|00001140| 66 6f 72 77 61 72 64 3b | 0a 09 58 20 20 20 20 20 |forward;|..X |
|00001150| 72 65 74 75 72 6e 20 24 | 75 73 65 72 3b 0a 09 58 |return $|user;..X|
|00001160| 0a 09 58 7d 20 0a 09 58 | 0a 09 58 23 23 23 23 23 |..X} ..X|..X#####|
|00001170| 23 23 23 23 23 23 23 23 | 23 23 23 23 23 23 23 23 |########|########|
|00001180| 23 23 23 23 23 23 23 23 | 23 23 23 23 23 23 23 23 |########|########|
|00001190| 23 23 23 23 23 23 23 23 | 23 23 23 23 23 23 23 23 |########|########|
|000011a0| 23 23 23 23 23 23 23 23 | 23 0a 09 58 0a 09 58 73 |########|#..X..Xs|
|000011b0| 75 62 20 6c 6f 67 64 69 | 72 20 7b 0a 09 58 20 20 |ub logdi|r {..X |
|000011c0| 20 20 69 66 20 28 21 20 | 24 62 65 65 6e 5f 68 65 | if (! |$been_he|
|000011d0| 72 65 5f 62 65 66 6f 72 | 65 2b 2b 29 20 7b 20 23 |re_befor|e++) { #|
|000011e0| 20 6d 69 67 68 74 20 6d | 61 6b 65 20 69 74 20 6d | might m|ake it m|
|000011f0| 75 63 68 20 66 61 73 74 | 65 72 0a 09 58 09 73 65 |uch fast|er..X.se|
|00001200| 74 70 77 65 6e 74 20 75 | 6e 6c 65 73 73 20 24 64 |tpwent u|nless $d|
|00001210| 62 6d 5f 70 61 73 73 77 | 64 20 3d 20 64 62 6d 6f |bm_passw|d = dbmo|
|00001220| 70 65 6e 28 50 41 53 53 | 57 44 2c 27 2f 65 74 63 |pen(PASS|WD,'/etc|
|00001230| 2f 70 61 73 73 77 64 27 | 2c 20 75 6e 64 65 66 29 |/passwd'|, undef)|
|00001240| 3b 0a 09 58 20 20 20 20 | 7d 0a 09 58 0a 09 58 20 |;..X |}..X..X |
|00001250| 20 20 20 69 66 20 28 24 | 64 62 6d 5f 70 61 73 73 | if ($|dbm_pass|
|00001260| 77 64 29 20 7b 0a 09 58 | 09 72 65 74 75 72 6e 20 |wd) {..X|.return |
|00001270| 27 27 20 75 6e 6c 65 73 | 73 20 64 65 66 69 6e 65 |'' unles|s define|
|00001280| 64 20 24 50 41 53 53 57 | 44 7b 24 5f 5b 30 5d 7d |d $PASSW|D{$_[0]}|
|00001290| 3b 0a 09 58 09 6c 6f 63 | 61 6c 28 40 61 29 3b 0a |;..X.loc|al(@a);.|
|000012a0| 09 58 09 40 61 20 3d 20 | 73 70 6c 69 74 28 2f 5b |.X.@a = |split(/[|
|000012b0| 5c 30 30 30 5d 2b 2f 2c | 24 50 41 53 53 57 44 7b |\000]+/,|$PASSWD{|
|000012c0| 24 5f 5b 30 5d 7d 29 3b | 0a 09 58 09 72 65 74 75 |$_[0]});|..X.retu|
|000012d0| 72 6e 20 24 61 5b 24 23 | 61 2d 31 5d 3b 0a 09 58 |rn $a[$#|a-1];..X|
|000012e0| 20 20 20 20 7d 20 65 6c | 73 65 20 7b 0a 09 58 09 | } el|se {..X.|
|000012f0| 72 65 74 75 72 6e 20 28 | 67 65 74 70 77 6e 61 6d |return (|getpwnam|
|00001300| 28 24 5f 5b 30 5d 29 29 | 5b 37 5d 3b 0a 09 58 20 |($_[0]))|[7];..X |
|00001310| 20 20 20 7d 0a 09 58 7d | 20 0a 09 58 23 23 23 23 | }..X}| ..X####|
|00001320| 23 23 23 23 23 23 23 23 | 23 23 23 23 23 23 23 23 |########|########|
|00001330| 23 23 23 23 23 23 23 23 | 23 23 23 23 23 23 23 23 |########|########|
|00001340| 23 23 23 23 23 23 23 23 | 23 23 23 23 23 23 23 23 |########|########|
|00001350| 23 23 23 23 23 23 23 23 | 23 23 23 23 23 23 23 23 |########|########|
|00001360| 23 23 23 23 23 23 23 23 | 23 23 0a 09 58 0a 09 58 |########|##..X..X|
|00001370| 09 23 20 54 68 65 73 65 | 20 6e 65 78 74 20 66 65 |.# These| next fe|
|00001380| 77 20 6c 69 6e 65 73 20 | 61 72 65 20 6c 65 67 61 |w lines |are lega|
|00001390| 6c 20 69 6e 20 62 6f 74 | 68 20 50 65 72 6c 20 61 |l in bot|h Perl a|
|000013a0| 6e 64 20 6e 72 6f 66 66 | 2e 0a 09 58 0a 09 58 2e |nd nroff|...X..X.|
|000013b0| 30 30 3b 09 09 09 23 20 | 66 69 6e 69 73 68 20 2e |00;...# |finish .|
|000013c0| 69 67 0a 09 58 20 0a 09 | 58 27 64 69 09 09 09 5c |ig..X ..|X'di...\|
|000013d0| 22 20 66 69 6e 69 73 68 | 20 64 69 76 65 72 73 69 |" finish| diversi|
|000013e0| 6f 6e 2d 2d 70 72 65 76 | 69 6f 75 73 20 6c 69 6e |on--prev|ious lin|
|000013f0| 65 20 6d 75 73 74 20 62 | 65 20 62 6c 61 6e 6b 0a |e must b|e blank.|
|00001400| 09 58 2e 6e 72 20 6e 6c | 20 30 2d 31 09 09 5c 22 |.X.nr nl| 0-1..\"|
|00001410| 20 66 61 6b 65 20 75 70 | 20 74 72 61 6e 73 69 74 | fake up| transit|
|00001420| 69 6f 6e 20 74 6f 20 66 | 69 72 73 74 20 70 61 67 |ion to f|irst pag|
|00001430| 65 20 61 67 61 69 6e 0a | 09 58 2e 6e 72 20 25 20 |e again.|.X.nr % |
|00001440| 30 09 09 09 5c 22 20 73 | 74 61 72 74 20 61 74 20 |0...\" s|tart at |
|00001450| 70 61 67 65 20 31 0a 09 | 58 27 3b 3c 3c 27 2e 65 |page 1..|X';<<'.e|
|00001460| 78 27 3b 20 23 5f 5f 45 | 4e 44 5f 5f 20 23 23 23 |x'; #__E|ND__ ###|
|00001470| 23 23 23 23 23 23 23 23 | 23 23 20 46 72 6f 6d 20 |########|## From |
|00001480| 68 65 72 65 20 6f 6e 20 | 69 74 27 73 20 61 20 73 |here on |it's a s|
|00001490| 74 61 6e 64 61 72 64 20 | 6d 61 6e 75 61 6c 20 70 |tandard |manual p|
|000014a0| 61 67 65 20 23 23 23 23 | 23 23 23 23 23 23 23 23 |age ####|########|
|000014b0| 0a 09 58 2e 54 48 20 47 | 45 54 41 4c 49 41 53 20 |..X.TH G|ETALIAS |
|000014c0| 31 4c 0a 09 58 2e 64 65 | 20 4d 09 09 5c 22 20 6d |1L..X.de| M..\" m|
|000014d0| 61 6e 20 70 61 67 65 20 | 72 65 66 65 72 65 6e 63 |an page |referenc|
|000014e0| 65 0a 09 58 5c 5c 66 49 | 5c 5c 24 31 5c 5c 66 52 |e..X\\fI|\\$1\\fR|
|000014f0| 5c 5c 7c 28 5c 5c 24 32 | 5c 29 5c 5c 24 33 0a 09 |\\|(\\$2|\)\\$3..|
|00001500| 58 2e 2e 0a 09 58 2e 53 | 48 20 4e 41 4d 45 0a 09 |X....X.S|H NAME..|
|00001510| 58 67 65 74 61 6c 69 61 | 73 20 5c 2d 20 72 65 63 |Xgetalia|s \- rec|
|00001520| 75 72 73 69 76 65 6c 79 | 20 72 65 73 6f 6c 76 65 |ursively| resolve|
|00001530| 20 6d 61 69 6c 20 61 6c | 69 61 73 65 73 0a 09 58 | mail al|iases..X|
|00001540| 2e 53 48 20 53 59 4e 4f | 50 53 49 53 0a 09 58 2e |.SH SYNO|PSIS..X.|
|00001550| 42 20 67 65 74 61 6c 69 | 61 73 0a 09 58 5b 0a 09 |B getali|as..X[..|
|00001560| 58 2e 42 20 5c 2d 76 0a | 09 58 2e 42 20 5c 2d 56 |X.B \-v.|.X.B \-V|
|00001570| 0a 09 58 2e 42 20 5c 2d | 73 0a 09 58 5d 0a 09 58 |..X.B \-|s..X]..X|
|00001580| 2e 49 20 61 6c 69 61 73 | 0a 09 58 5c 26 2e 2e 2e |.I alias|..X\&...|
|00001590| 0a 09 58 2e 53 48 20 44 | 45 53 43 52 49 50 54 49 |..X.SH D|ESCRIPTI|
|000015a0| 4f 4e 0a 09 58 54 68 65 | 20 0a 09 58 2e 49 20 67 |ON..XThe| ..X.I g|
|000015b0| 65 74 61 6c 69 61 73 0a | 09 58 70 72 6f 67 72 61 |etalias.|.Xprogra|
|000015c0| 6d 20 63 6f 6e 73 75 6c | 74 73 20 74 68 65 20 0a |m consul|ts the .|
|000015d0| 09 58 2e 4d 20 64 62 6d | 20 33 58 0a 09 58 76 65 |.X.M dbm| 3X..Xve|
|000015e0| 72 73 69 6f 6e 20 6f 66 | 20 74 68 65 0a 09 58 2e |rsion of| the..X.|
|000015f0| 4d 20 61 6c 69 61 73 65 | 73 20 35 0a 09 58 64 61 |M aliase|s 5..Xda|
|00001600| 74 61 62 61 73 65 20 74 | 6f 20 72 65 73 63 75 72 |tabase t|o rescur|
|00001610| 73 69 76 65 6c 79 20 72 | 65 73 6f 6c 76 65 20 65 |sively r|esolve e|
|00001620| 61 63 68 20 6f 66 20 69 | 74 73 20 61 72 67 75 6d |ach of i|ts argum|
|00001630| 65 6e 74 73 2c 20 70 72 | 69 6e 74 69 6e 67 0a 09 |ents, pr|inting..|
|00001640| 58 74 68 65 20 61 6c 69 | 61 73 27 73 20 28 61 6c |Xthe ali|as's (al|
|00001650| 70 68 61 62 65 74 69 63 | 61 6c 6c 79 20 73 6f 72 |phabetic|ally sor|
|00001660| 74 65 64 29 20 72 65 73 | 6f 6c 75 74 69 6f 6e 20 |ted) res|olution |
|00001670| 74 6f 20 74 68 65 20 73 | 74 61 6e 64 61 72 64 20 |to the s|tandard |
|00001680| 6f 75 74 70 75 74 2c 0a | 09 58 73 65 70 61 72 61 |output,.|.Xsepara|
|00001690| 74 65 64 20 62 79 20 63 | 6f 6d 6d 61 73 2e 0a 09 |ted by c|ommas...|
|000016a0| 58 49 6e 63 6c 75 64 65 | 0a 09 58 66 69 6c 65 73 |XInclude|..Xfiles|
|000016b0| 20 72 65 66 65 72 65 6e | 63 65 64 20 62 79 20 74 | referen|ced by t|
|000016c0| 68 65 20 5c 66 49 3a 69 | 6e 63 6c 75 64 65 3a 5c |he \fI:i|nclude:\|
|000016d0| 66 50 20 73 79 6e 74 61 | 78 20 77 69 6c 6c 20 62 |fP synta|x will b|
|000016e0| 65 20 63 6f 6e 73 75 6c | 74 65 64 2c 20 0a 09 58 |e consul|ted, ..X|
|000016f0| 61 73 20 77 69 6c 6c 20 | 6c 6f 63 61 6c 20 75 73 |as will |local us|
|00001700| 65 72 73 27 0a 09 58 2e | 49 20 7e 2f 2e 66 6f 72 |ers'..X.|I ~/.for|
|00001710| 77 61 72 64 0a 09 58 66 | 69 6c 65 73 2e 20 0a 09 |ward..Xf|iles. ..|
|00001720| 58 2e 50 50 0a 09 58 41 | 72 67 75 65 6d 6e 74 73 |X.PP..XA|rguemnts|
|00001730| 20 6e 6f 74 20 61 70 70 | 65 61 72 69 6e 67 20 74 | not app|earing t|
|00001740| 6f 20 62 65 20 64 65 6c | 69 76 65 72 61 62 6c 65 |o be del|iverable|
|00001750| 20 61 64 64 72 65 73 73 | 65 73 0a 09 58 61 72 65 | address|es..Xare|
|00001760| 20 72 65 73 6f 6c 76 65 | 64 20 74 6f 0a 09 58 74 | resolve|d to..Xt|
|00001770| 68 65 20 66 6f 72 6d 20 | 60 60 5c 66 49 61 6c 69 |he form |``\fIali|
|00001780| 61 73 2d 6e 61 6d 65 5c | 66 50 20 3c 4d 41 49 4c |as-name\|fP <MAIL|
|00001790| 45 52 2d 44 41 45 4d 4f | 4e 3e 27 27 20 74 6f 20 |ER-DAEMO|N>'' to |
|000017a0| 69 6e 64 69 63 61 74 65 | 0a 09 58 74 68 61 74 20 |indicate|..Xthat |
|000017b0| 73 75 63 68 20 6d 61 69 | 6c 20 77 69 6c 6c 20 70 |such mai|l will p|
|000017c0| 72 6f 62 61 62 6c 79 20 | 62 65 20 64 65 6c 69 76 |robably |be deliv|
|000017d0| 65 72 65 64 20 74 6f 20 | 74 68 65 20 6d 61 69 6c |ered to |the mail|
|000017e0| 65 72 20 64 61 65 6d 6f | 6e 0a 09 58 66 6f 72 20 |er daemo|n..Xfor |
|000017f0| 73 75 62 73 65 71 75 65 | 6e 74 20 63 6f 6d 70 6c |subseque|nt compl|
|00001800| 61 69 6e 74 2e 0a 09 58 | 2e 50 50 0a 09 58 54 68 |aint...X|.PP..XTh|
|00001810| 65 0a 09 58 2e 42 20 5c | 2d 76 0a 09 58 6f 70 74 |e..X.B \|-v..Xopt|
|00001820| 69 6f 6e 20 74 72 61 63 | 65 73 20 69 6e 74 65 72 |ion trac|es inter|
|00001830| 6d 65 64 69 61 72 79 20 | 70 61 73 73 65 73 20 6f |mediary |passes o|
|00001840| 66 20 74 68 65 20 61 6c | 69 61 73 20 72 65 73 6f |f the al|ias reso|
|00001850| 6c 75 74 69 6f 6e 20 66 | 6f 72 0a 09 58 6d 61 69 |lution f|or..Xmai|
|00001860| 6c 69 6e 67 20 6c 69 73 | 74 73 2e 0a 09 58 57 61 |ling lis|ts...XWa|
|00001870| 74 63 68 69 6e 67 20 74 | 68 65 20 72 65 63 75 72 |tching t|he recur|
|00001880| 73 69 6f 6e 20 63 61 6e | 20 6f 63 63 61 73 69 6f |sion can| occasio|
|00001890| 6e 61 6c 6c 79 20 62 65 | 20 65 6e 74 65 72 74 61 |nally be| enterta|
|000018a0| 69 6e 69 6e 67 20 61 6e | 64 20 69 6e 66 6f 72 6d |ining an|d inform|
|000018b0| 61 74 69 76 65 2e 0a 09 | 58 2e 50 50 0a 09 58 54 |ative...|X.PP..XT|
|000018c0| 68 65 0a 09 58 2e 42 20 | 5c 2d 56 0a 09 58 6f 70 |he..X.B |\-V..Xop|
|000018d0| 74 69 6f 6e 20 69 73 20 | 6c 69 6b 65 20 0a 09 58 |tion is |like ..X|
|000018e0| 2e 42 20 5c 2d 76 5c 63 | 0a 09 58 2c 20 65 78 63 |.B \-v\c|..X, exc|
|000018f0| 65 70 74 20 74 68 61 74 | 20 69 74 20 61 6c 73 6f |ept that| it also|
|00001900| 20 69 6e 63 6c 75 64 65 | 73 20 73 69 6d 70 6c 65 | include|s simple|
|00001910| 20 60 60 6e 61 6d 65 20 | 2d 3e 20 6e 61 6d 65 40 | ``name |-> name@|
|00001920| 68 6f 73 74 27 27 20 61 | 6c 69 61 73 65 73 20 61 |host'' a|liases a|
|00001930| 73 20 77 65 6c 6c 2e 0a | 09 58 54 68 65 73 65 20 |s well..|.XThese |
|00001940| 61 72 65 20 6d 61 69 6c | 62 6f 78 65 73 20 74 68 |are mail|boxes th|
|00001950| 61 74 20 73 69 6d 70 6c | 79 20 67 6f 20 74 6f 20 |at simpl|y go to |
|00001960| 61 6e 6f 74 68 65 72 20 | 6d 61 63 68 69 6e 65 2c |another |machine,|
|00001970| 20 72 61 74 68 65 72 20 | 74 68 61 6e 20 0a 09 58 | rather |than ..X|
|00001980| 6d 61 69 6c 69 6e 67 20 | 6c 69 73 74 73 20 72 65 |mailing |lists re|
|00001990| 71 75 69 72 69 6e 67 20 | 72 65 63 75 72 73 69 76 |quiring |recursiv|
|000019a0| 65 20 65 78 70 61 6e 73 | 69 6f 6e 2e 0a 09 58 2e |e expans|ion...X.|
|000019b0| 50 50 0a 09 58 54 68 65 | 20 0a 09 58 2e 42 20 5c |PP..XThe| ..X.B \|
|000019c0| 2d 73 0a 09 58 6f 70 74 | 69 6f 6e 20 73 75 70 70 |-s..Xopt|ion supp|
|000019d0| 72 65 73 73 65 73 20 70 | 72 69 6e 74 69 6e 67 20 |resses p|rinting |
|000019e0| 6f 66 20 74 68 65 20 6f | 72 69 67 69 6e 61 6c 20 |of the o|riginal |
|000019f0| 61 6c 69 61 73 20 62 65 | 66 6f 72 65 20 69 74 73 |alias be|fore its|
|00001a00| 20 72 65 73 6f 6c 75 74 | 69 6f 6e 2e 0a 09 58 49 | resolut|ion...XI|
|00001a10| 74 20 61 6c 73 6f 20 6d | 61 6b 65 73 20 73 70 61 |t also m|akes spa|
|00001a20| 63 65 20 74 68 65 20 73 | 65 70 61 72 61 74 6f 72 |ce the s|eparator|
|00001a30| 20 63 68 61 72 61 63 74 | 65 72 2e 0a 09 58 2e 53 | charact|er...X.S|
|00001a40| 48 20 4e 4f 54 45 53 0a | 09 58 2e 49 20 47 65 74 |H NOTES.|.X.I Get|
|00001a50| 61 6c 69 61 73 0a 09 58 | 69 73 20 61 20 0a 09 58 |alias..X|is a ..X|
|00001a60| 2e 49 20 70 65 72 6c 20 | 0a 09 58 70 72 6f 67 72 |.I perl |..Xprogr|
|00001a70| 61 6d 2c 20 73 6f 20 79 | 6f 75 20 6d 75 73 74 20 |am, so y|ou must |
|00001a80| 68 61 76 65 20 0a 09 58 | 2e 49 20 70 65 72 6c 20 |have ..X|.I perl |
|00001a90| 0a 09 58 6f 6e 20 79 6f | 75 72 20 73 79 73 74 65 |..Xon yo|ur syste|
|00001aa0| 6d 20 74 6f 20 72 75 6e | 20 69 74 2e 20 20 53 69 |m to run| it. Si|
|00001ab0| 6e 63 65 20 69 74 0a 09 | 58 69 73 20 6e 6f 74 20 |nce it..|Xis not |
|00001ac0| 63 6f 6d 70 69 6c 65 64 | 2c 20 79 6f 75 20 6d 61 |compiled|, you ma|
|00001ad0| 79 20 72 65 61 64 20 74 | 68 65 20 70 72 6f 67 72 |y read t|he progr|
|00001ae0| 61 6d 20 74 6f 20 6c 65 | 61 72 6e 20 6d 6f 72 65 |am to le|arn more|
|00001af0| 20 61 62 6f 75 74 20 0a | 09 58 68 6f 77 20 69 74 | about .|.Xhow it|
|00001b00| 20 77 6f 72 6b 73 20 69 | 6e 74 65 72 6e 61 6c 6c | works i|nternall|
|00001b10| 79 2e 0a 09 58 2e 53 48 | 20 22 53 45 45 20 41 4c |y...X.SH| "SEE AL|
|00001b20| 53 4f 22 0a 09 58 2e 4d | 20 6d 61 69 6c 20 31 20 |SO"..X.M| mail 1 |
|00001b30| 2c 0a 09 58 2e 4d 20 6e | 66 69 6e 67 65 72 20 31 |,..X.M n|finger 1|
|00001b40| 20 2c 0a 09 58 2e 4d 20 | 70 65 72 6c 20 31 20 2c | ,..X.M |perl 1 ,|
|00001b50| 0a 09 58 2e 4d 20 64 62 | 6d 20 33 58 20 2c 0a 09 |..X.M db|m 3X ,..|
|00001b60| 58 2e 4d 20 61 6c 69 61 | 73 65 73 20 35 20 2c 0a |X.M alia|ses 5 ,.|
|00001b70| 09 58 2e 4d 20 73 65 6e | 64 6d 61 69 6c 20 38 0a |.X.M sen|dmail 8.|
|00001b80| 09 58 2e 53 48 20 41 55 | 54 48 4f 52 0a 09 58 54 |.X.SH AU|THOR..XT|
|00001b90| 6f 6d 20 43 68 72 69 73 | 74 69 61 6e 73 65 6e 20 |om Chris|tiansen |
|00001ba0| 0a 09 58 2e 49 20 22 3c | 74 63 68 72 69 73 74 40 |..X.I "<|tchrist@|
|00001bb0| 63 6f 6e 76 65 78 2e 63 | 6f 6d 3e 22 0a 09 58 2e |convex.c|om>"..X.|
|00001bc0| 65 78 0a 53 48 41 52 5f | 45 4f 46 0a 69 66 20 74 |ex.SHAR_|EOF.if t|
|00001bd0| 65 73 74 20 34 38 30 37 | 20 2d 6e 65 20 22 60 77 |est 4807| -ne "`w|
|00001be0| 63 20 2d 63 20 3c 20 27 | 67 65 74 61 6c 69 61 73 |c -c < '|getalias|
|00001bf0| 27 60 22 0a 74 68 65 6e | 0a 09 65 63 68 6f 20 73 |'`".then|..echo s|
|00001c00| 68 61 72 3a 20 22 65 72 | 72 6f 72 20 74 72 61 6e |har: "er|ror tran|
|00001c10| 73 6d 69 74 74 69 6e 67 | 20 27 67 65 74 61 6c 69 |smitting| 'getali|
|00001c20| 61 73 27 22 20 27 28 73 | 68 6f 75 6c 64 20 68 61 |as'" '(s|hould ha|
|00001c30| 76 65 20 62 65 65 6e 20 | 34 38 30 37 20 63 68 61 |ve been |4807 cha|
|00001c40| 72 61 63 74 65 72 73 29 | 27 0a 66 69 0a 63 68 6d |racters)|'.fi.chm|
|00001c50| 6f 64 20 37 37 35 20 27 | 67 65 74 61 6c 69 61 73 |od 775 '|getalias|
|00001c60| 27 0a 66 69 0a 65 63 68 | 6f 20 73 68 61 72 3a 20 |'.fi.ech|o shar: |
|00001c70| 22 65 78 74 72 61 63 74 | 69 6e 67 20 27 6e 66 69 |"extract|ing 'nfi|
|00001c80| 6e 67 65 72 27 22 20 27 | 28 33 33 32 39 20 63 68 |nger'" '|(3329 ch|
|00001c90| 61 72 61 63 74 65 72 73 | 29 27 0a 69 66 20 74 65 |aracters|)'.if te|
|00001ca0| 73 74 20 2d 66 20 27 6e | 66 69 6e 67 65 72 27 0a |st -f 'n|finger'.|
|00001cb0| 74 68 65 6e 0a 09 65 63 | 68 6f 20 73 68 61 72 3a |then..ec|ho shar:|
|00001cc0| 20 22 77 69 6c 6c 20 6e | 6f 74 20 6f 76 65 72 2d | "will n|ot over-|
|00001cd0| 77 72 69 74 65 20 65 78 | 69 73 74 69 6e 67 20 66 |write ex|isting f|
|00001ce0| 69 6c 65 20 27 6e 66 69 | 6e 67 65 72 27 22 0a 65 |ile 'nfi|nger'".e|
|00001cf0| 6c 73 65 0a 73 65 64 20 | 27 73 2f 5e 09 58 2f 2f |lse.sed |'s/^.X//|
|00001d00| 27 20 3c 3c 20 5c 53 48 | 41 52 5f 45 4f 46 20 3e |' << \SH|AR_EOF >|
|00001d10| 20 27 6e 66 69 6e 67 65 | 72 27 0a 09 58 23 21 2f | 'nfinge|r'..X#!/|
|00001d20| 75 73 72 2f 6c 6f 63 61 | 6c 2f 62 69 6e 2f 70 65 |usr/loca|l/bin/pe|
|00001d30| 72 6c 0a 09 58 23 0a 09 | 58 23 20 6e 66 69 6e 67 |rl..X#..|X# nfing|
|00001d40| 65 72 20 2d 2d 20 66 69 | 6e 67 65 72 20 70 65 6f |er -- fi|nger peo|
|00001d50| 70 6c 65 20 61 74 20 74 | 68 65 69 72 20 68 6f 6d |ple at t|heir hom|
|00001d60| 65 20 6d 61 63 68 69 6e | 65 73 0a 09 58 23 09 20 |e machin|es..X#. |
|00001d70| 20 20 20 20 61 73 20 64 | 65 66 69 6e 65 64 20 69 | as d|efined i|
|00001d80| 6e 20 74 68 65 20 2f 75 | 73 72 2f 6c 69 62 2f 61 |n the /u|sr/lib/a|
|00001d90| 6c 69 61 73 65 73 20 0a | 09 58 23 09 20 20 20 20 |liases .|.X#. |
|00001da0| 20 64 62 6d 20 66 69 6c | 65 2e 20 20 72 65 63 75 | dbm fil|e. recu|
|00001db0| 72 73 69 76 65 6c 79 20 | 72 65 73 6f 6c 76 65 20 |rsively |resolve |
|00001dc0| 61 6c 6c 0a 09 58 23 09 | 20 20 20 20 20 61 6c 69 |all..X#.| ali|
|00001dd0| 61 73 65 73 20 66 69 72 | 73 74 2c 20 73 6f 20 77 |ases fir|st, so w|
|00001de0| 6f 72 6b 73 20 6f 6e 20 | 6c 69 73 74 73 0a 09 58 |orks on |lists..X|
|00001df0| 0a 09 58 64 62 6d 6f 70 | 65 6e 28 41 4c 49 41 53 |..Xdbmop|en(ALIAS|
|00001e00| 2c 27 2f 75 73 72 2f 6c | 69 62 2f 61 6c 69 61 73 |,'/usr/l|ib/alias|
|00001e10| 65 73 27 2c 75 6e 64 65 | 66 29 20 7c 7c 20 64 69 |es',unde|f) || di|
|00001e20| 65 20 22 63 61 6e 27 74 | 20 64 62 6d 6f 70 65 6e |e "can't| dbmopen|
|00001e30| 20 61 6c 69 61 73 65 73 | 3a 20 24 21 22 3b 0a 09 | aliases|: $!";..|
|00001e40| 58 0a 09 58 63 68 6f 70 | 28 24 6c 6f 63 61 6c 68 |X..Xchop|($localh|
|00001e50| 6f 73 74 20 3d 20 60 68 | 6f 73 74 6e 61 6d 65 60 |ost = `h|ostname`|
|00001e60| 29 3b 0a 09 58 0a 09 58 | 40 66 69 6e 67 65 72 5f |);..X..X|@finger_|
|00001e70| 6f 70 74 73 20 3d 20 28 | 29 3b 0a 09 58 77 68 69 |opts = (|);..Xwhi|
|00001e80| 6c 65 20 28 24 41 52 47 | 56 5b 30 5d 20 3d 7e 20 |le ($ARG|V[0] =~ |
|00001e90| 2f 5e 2d 2f 29 20 7b 20 | 0a 09 58 20 20 20 20 69 |/^-/) { |..X i|
|00001ea0| 66 20 28 24 41 52 47 56 | 5b 30 5d 20 65 71 20 27 |f ($ARGV|[0] eq '|
|00001eb0| 2d 76 27 29 20 7b 0a 09 | 58 09 24 76 65 72 62 6f |-v') {..|X.$verbo|
|00001ec0| 73 65 2b 2b 3b 0a 09 58 | 09 73 68 69 66 74 3b 0a |se++;..X|.shift;.|
|00001ed0| 09 58 20 20 20 20 7d 20 | 65 6c 73 65 20 7b 0a 09 |.X } |else {..|
|00001ee0| 58 09 70 75 73 68 28 40 | 66 69 6e 67 65 72 5f 6f |X.push(@|finger_o|
|00001ef0| 70 74 73 2c 20 73 68 69 | 66 74 29 3b 20 0a 09 58 |pts, shi|ft); ..X|
|00001f00| 20 20 20 20 7d 0a 09 58 | 7d 20 0a 09 58 0a 09 58 | }..X|} ..X..X|
|00001f10| 77 68 69 6c 65 20 28 24 | 75 73 65 72 20 3d 20 73 |while ($|user = s|
|00001f20| 68 69 66 74 29 20 7b 20 | 0a 09 58 20 20 20 20 75 |hift) { |..X u|
|00001f30| 6e 64 65 66 20 25 73 65 | 65 6e 3b 0a 09 58 20 20 |ndef %se|en;..X |
|00001f40| 20 20 24 73 65 65 6b 69 | 6e 67 2b 2b 3b 0a 09 58 | $seeki|ng++;..X|
|00001f50| 20 20 20 20 70 75 73 68 | 28 40 66 69 6e 67 65 72 | push|(@finger|
|00001f60| 2c 20 26 72 65 73 6f 6c | 76 65 28 24 75 73 65 72 |, &resol|ve($user|
|00001f70| 29 29 3b 20 0a 09 58 7d | 0a 09 58 0a 09 58 75 6e |)); ..X}|..X..Xun|
|00001f80| 64 65 66 20 25 73 65 65 | 6e 3b 0a 09 58 40 6f 66 |def %see|n;..X@of|
|00001f90| 69 6e 67 65 72 20 3d 20 | 40 66 69 6e 67 65 72 3b |inger = |@finger;|
|00001fa0| 0a 09 58 66 6f 72 20 28 | 40 66 69 6e 67 65 72 29 |..Xfor (|@finger)|
|00001fb0| 20 7b 0a 09 58 20 20 20 | 20 73 2f 5e 5c 5c 2f 2f | {..X | s/^\\//|
|00001fc0| 3b 0a 09 58 20 20 20 20 | 73 2f 5c 73 2f 2f 67 3b |;..X |s/\s//g;|
|00001fd0| 0a 09 58 20 20 20 20 70 | 75 73 68 28 40 6e 66 69 |..X p|ush(@nfi|
|00001fe0| 6e 67 65 72 2c 20 24 5f | 29 20 75 6e 6c 65 73 73 |nger, $_|) unless|
|00001ff0| 20 24 73 65 65 6e 7b 24 | 5f 7d 2b 2b 20 7c 7c 20 | $seen{$|_}++ || |
|00002000| 6d 23 5e 5c 73 2a 28 22 | 5c 73 2a 29 3f 5b 7c 2f |m#^\s*("|\s*)?[|/|
|00002010| 5d 23 3b 0a 09 58 7d 20 | 0a 09 58 40 66 69 6e 67 |]#;..X} |..X@fing|
|00002020| 65 72 20 3d 20 73 6f 72 | 74 20 40 6e 66 69 6e 67 |er = sor|t @nfing|
|00002030| 65 72 3b 0a 09 58 0a 09 | 58 69 66 20 28 24 73 65 |er;..X..|Xif ($se|
|00002040| 65 6b 69 6e 67 20 26 26 | 20 21 40 66 69 6e 67 65 |eking &&| !@finge|
|00002050| 72 29 20 7b 0a 09 58 20 | 20 20 20 70 72 69 6e 74 |r) {..X | print|
|00002060| 66 20 53 54 44 45 52 52 | 20 22 24 30 3a 20 63 61 |f STDERR| "$0: ca|
|00002070| 6e 27 74 20 66 69 6e 67 | 65 72 20 6f 6e 6c 79 20 |n't fing|er only |
|00002080| 70 69 70 65 73 20 61 6e | 64 20 66 69 6c 65 73 21 |pipes an|d files!|
|00002090| 20 28 40 6f 66 69 6e 67 | 65 72 29 5c 6e 22 3b 0a | (@ofing|er)\n";.|
|000020a0| 09 58 20 20 20 20 65 78 | 69 74 20 31 3b 0a 09 58 |.X ex|it 1;..X|
|000020b0| 7d 20 0a 09 58 0a 09 58 | 24 65 78 65 63 20 3d 20 |} ..X..X|$exec = |
|000020c0| 22 2f 75 73 72 2f 75 63 | 62 2f 66 69 6e 67 65 72 |"/usr/uc|b/finger|
|000020d0| 20 40 66 69 6e 67 65 72 | 5f 6f 70 74 73 20 40 66 | @finger|_opts @f|
|000020e0| 69 6e 67 65 72 5c 6e 22 | 3b 0a 09 58 0a 09 58 70 |inger\n"|;..X..Xp|
|000020f0| 72 69 6e 74 20 24 65 78 | 65 63 20 69 66 20 24 76 |rint $ex|ec if $v|
|00002100| 65 72 62 6f 73 65 3b 0a | 09 58 0a 09 58 0a 09 58 |erbose;.|.X..X..X|
|00002110| 65 78 65 63 20 24 65 78 | 65 63 20 75 6e 6c 65 73 |exec $ex|ec unles|
|00002120| 73 20 67 72 65 70 28 2f | 2d 2e 2a 73 2f 2c 20 40 |s grep(/|-.*s/, @|
|00002130| 66 69 6e 67 65 72 5f 6f | 70 74 73 29 3b 0a 09 58 |finger_o|pts);..X|
|00002140| 20 20 20 20 0a 09 58 0a | 09 58 6f 70 65 6e 20 28 | ..X.|.Xopen (|
|00002150| 46 49 4e 47 45 52 2c 20 | 22 24 65 78 65 63 20 32 |FINGER, |"$exec 2|
|00002160| 3e 26 31 20 7c 22 29 20 | 7c 7c 20 64 69 65 20 22 |>&1 |") ||| die "|
|00002170| 43 61 6e 27 74 20 6f 70 | 65 6e 20 66 69 6e 67 65 |Can't op|en finge|
|00002180| 72 20 70 69 70 65 5c 6e | 22 3b 0a 09 58 0a 09 58 |r pipe\n|";..X..X|
|00002190| 24 6d 61 73 6b 20 3d 20 | 22 25 2d 38 73 25 73 22 |$mask = |"%-8s%s"|
|000021a0| 3b 0a 09 58 24 5c 20 3d | 20 22 5c 6e 22 3b 0a 09 |;..X$\ =| "\n";..|
|000021b0| 58 24 7c 20 3d 20 31 3b | 0a 09 58 24 6c 6f 63 61 |X$| = 1;|..X$loca|
|000021c0| 6c 68 6f 73 74 20 3d 20 | 73 70 72 69 6e 74 66 28 |lhost = |sprintf(|
|000021d0| 22 25 2d 38 73 22 2c 20 | 24 6c 6f 63 61 6c 68 6f |"%-8s", |$localho|
|000021e0| 73 74 29 3b 0a 09 58 0a | 09 58 77 68 69 6c 65 20 |st);..X.|.Xwhile |
|000021f0| 28 3c 46 49 4e 47 45 52 | 3e 29 20 7b 0a 09 58 20 |(<FINGER|>) {..X |
|00002200| 20 20 20 73 2f 5c 73 2a | 24 2f 2f 3b 0a 09 58 20 | s/\s*|$//;..X |
|00002210| 20 20 20 6e 65 78 74 20 | 69 66 20 2f 5e 24 2f 3b | next |if /^$/;|
|00002220| 0a 09 58 20 20 20 20 69 | 66 20 28 2f 5e 5c 5b 28 |..X i|f (/^\[(|
|00002230| 5b 5e 5c 5d 5d 2a 29 5c | 5d 24 2f 29 20 7b 0a 09 |[^\]]*)\|]$/) {..|
|00002240| 58 09 24 68 6f 73 74 20 | 3d 20 73 70 72 69 6e 74 |X.$host |= sprint|
|00002250| 66 28 22 25 2d 38 73 22 | 2c 20 24 31 29 3b 0a 09 |f("%-8s"|, $1);..|
|00002260| 58 09 24 73 61 77 68 6f | 73 74 20 3d 20 31 3b 0a |X.$sawho|st = 1;.|
|00002270| 09 58 20 20 20 20 7d 20 | 65 6c 73 69 66 20 28 2f |.X } |elsif (/|
|00002280| 5e 4c 6f 67 69 6e 2f 29 | 20 7b 0a 09 58 09 69 66 |^Login/)| {..X.if|
|00002290| 20 28 21 24 70 72 69 6e | 74 65 64 2b 2b 29 20 7b | (!$prin|ted++) {|
|000022a0| 0a 09 58 09 20 20 20 20 | 73 75 62 73 74 72 28 24 |..X. |substr($|
|000022b0| 5f 2c 20 39 2c 20 30 29 | 20 3d 20 27 48 6f 6d 65 |_, 9, 0)| = 'Home|
|000022c0| 20 20 20 20 27 3b 0a 09 | 58 09 20 20 20 20 73 2f | ';..|X. s/|
|000022d0| 20 20 20 4e 61 6d 65 2f | 4e 61 6d 65 20 20 20 2f | Name/|Name /|
|000022e0| 3b 0a 09 58 09 20 20 20 | 20 70 72 69 6e 74 3b 0a |;..X. | print;.|
|000022f0| 09 58 09 7d 0a 09 58 09 | 24 68 6f 73 74 20 3d 20 |.X.}..X.|$host = |
|00002300| 24 6c 6f 63 61 6c 68 6f | 73 74 20 75 6e 6c 65 73 |$localho|st unles|
|00002310| 73 20 24 73 61 77 68 6f | 73 74 3b 0a 09 58 09 24 |s $sawho|st;..X.$|
|00002320| 73 61 77 68 6f 73 74 20 | 3d 20 30 3b 0a 09 58 20 |sawhost |= 0;..X |
|00002330| 20 20 20 7d 20 65 6c 73 | 69 66 20 28 2f 5e 5c 53 | } els|if (/^\S|
|00002340| 2b 3a 2f 29 20 7b 0a 09 | 58 09 24 73 61 77 68 6f |+:/) {..|X.$sawho|
|00002350| 73 74 20 3d 20 2f 5e 66 | 69 6e 67 65 72 3a 2f 3b |st = /^f|inger:/;|
|00002360| 0a 09 58 09 70 72 69 6e | 74 20 53 54 44 45 52 52 |..X.prin|t STDERR|
|00002370| 20 22 24 68 6f 73 74 20 | 3c 24 5f 3e 22 3b 0a 09 | "$host |<$_>";..|
|00002380| 58 20 20 20 20 7d 20 65 | 6c 73 65 20 7b 0a 09 58 |X } e|lse {..X|
|00002390| 09 73 75 62 73 74 72 28 | 24 5f 2c 20 39 2c 20 30 |.substr(|$_, 9, 0|
|000023a0| 29 20 3d 20 24 68 6f 73 | 74 3b 0a 09 58 09 70 72 |) = $hos|t;..X.pr|
|000023b0| 69 6e 74 3b 0a 09 58 20 | 20 20 20 7d 20 0a 09 58 |int;..X | } ..X|
|000023c0| 7d 20 0a 09 58 63 6c 6f | 73 65 20 46 49 4e 47 45 |} ..Xclo|se FINGE|
|000023d0| 52 20 7c 7c 20 64 69 65 | 20 22 24 30 3a 20 65 72 |R || die| "$0: er|
|000023e0| 72 6f 72 20 72 75 6e 6e | 69 6e 67 20 66 69 6e 67 |ror runn|ing fing|
|000023f0| 65 72 2c 20 73 74 61 74 | 75 73 20 77 61 73 20 24 |er, stat|us was $|
|00002400| 3f 5c 6e 22 3b 0a 09 58 | 0a 09 58 23 23 23 23 23 |?\n";..X|..X#####|
|00002410| 23 23 23 23 23 23 23 23 | 23 23 23 23 23 23 23 23 |########|########|
|00002420| 23 23 23 23 23 23 23 23 | 23 23 23 23 23 23 23 23 |########|########|
|00002430| 23 23 23 23 23 23 23 23 | 23 23 23 23 23 23 23 23 |########|########|
|00002440| 23 23 23 23 23 23 23 23 | 23 0a 09 58 0a 09 58 73 |########|#..X..Xs|
|00002450| 75 62 20 72 65 73 6f 6c | 76 65 20 7b 0a 09 58 20 |ub resol|ve {..X |
|00002460| 20 20 20 6c 6f 63 61 6c | 28 24 61 64 64 72 2c 24 | local|($addr,$|
|00002470| 61 6c 69 61 73 2c 40 6c | 69 73 74 29 3b 0a 09 58 |alias,@l|ist);..X|
|00002480| 20 20 20 20 6c 6f 63 61 | 6c 28 40 61 64 64 72 73 | loca|l(@addrs|
|00002490| 29 20 3d 20 40 5f 3b 0a | 09 58 0a 09 58 20 20 20 |) = @_;.|.X..X |
|000024a0| 20 66 6f 72 20 24 61 64 | 64 72 20 28 40 61 64 64 | for $ad|dr (@add|
|000024b0| 72 73 29 20 7b 0a 09 58 | 09 75 6e 6c 65 73 73 20 |rs) {..X|.unless |
|000024c0| 28 64 65 66 69 6e 65 64 | 20 24 41 4c 49 41 53 7b |(defined| $ALIAS{|
|000024d0| 22 24 61 64 64 72 5c 30 | 22 7d 29 20 7b 0a 09 58 |"$addr\0|"}) {..X|
|000024e0| 09 20 20 20 20 70 75 73 | 68 28 40 6c 69 73 74 2c |. pus|h(@list,|
|000024f0| 20 26 66 6f 72 77 61 72 | 64 28 24 61 64 64 72 29 | &forwar|d($addr)|
|00002500| 29 3b 0a 09 58 09 20 20 | 20 20 6e 65 78 74 3b 0a |);..X. | next;.|
|00002510| 09 58 09 7d 20 0a 09 58 | 09 63 68 6f 70 28 24 61 |.X.} ..X|.chop($a|
|00002520| 6c 69 61 73 20 3d 20 24 | 41 4c 49 41 53 7b 22 24 |lias = $|ALIAS{"$|
|00002530| 61 64 64 72 5c 30 22 7d | 29 3b 0a 09 58 09 20 20 |addr\0"}|);..X. |
|00002540| 20 20 0a 09 58 09 24 61 | 6c 69 61 73 20 3d 7e 20 | ..X.$a|lias =~ |
|00002550| 73 2f 5e 5c 73 2a 28 2e | 2a 29 5c 73 2a 24 2f 24 |s/^\s*(.|*)\s*$/$|
|00002560| 31 2f 3b 0a 09 58 09 24 | 61 6c 69 61 73 20 3d 7e |1/;..X.$|alias =~|
|00002570| 20 73 2f 5e 28 5b 5e 21 | 5d 2a 29 21 28 5b 5e 21 | s/^([^!|]*)!([^!|
|00002580| 5d 2b 29 24 2f 24 32 40 | 24 31 2f 3b 0a 09 58 0a |]+)$/$2@|$1/;..X.|
|00002590| 09 58 09 69 66 20 28 24 | 61 6c 69 61 73 20 65 71 |.X.if ($|alias eq|
|000025a0| 20 22 24 61 64 64 72 40 | 24 6c 6f 63 61 6c 68 6f | "$addr@|$localho|
|000025b0| 73 74 22 20 7c 7c 20 24 | 61 6c 69 61 73 20 65 71 |st" || $|alias eq|
|000025c0| 20 24 61 64 64 72 29 20 | 7b 0a 09 58 09 20 20 20 | $addr) |{..X. |
|000025d0| 20 70 75 73 68 28 40 6c | 69 73 74 2c 20 26 66 6f | push(@l|ist, &fo|
|000025e0| 72 77 61 72 64 28 24 61 | 64 64 72 29 29 3b 0a 09 |rward($a|ddr));..|
|000025f0| 58 09 7d 20 20 65 6c 73 | 65 20 7b 0a 09 58 09 20 |X.} els|e {..X. |
|00002600| 20 20 20 70 72 69 6e 74 | 20 22 5b 20 24 61 64 64 | print| "[ $add|
|00002610| 72 20 2d 3e 20 24 61 6c | 69 61 73 20 5d 5c 6e 22 |r -> $al|ias ]\n"|
|00002620| 20 69 66 20 24 76 65 72 | 62 6f 73 65 3b 0a 09 58 | if $ver|bose;..X|
|00002630| 09 20 20 20 20 70 75 73 | 68 28 40 6c 69 73 74 2c |. pus|h(@list,|
|00002640| 26 72 65 73 6f 6c 76 65 | 28 73 70 6c 69 74 28 2f |&resolve|(split(/|
|00002650| 5c 73 2a 2c 5c 73 2a 2f | 2c 24 61 6c 69 61 73 29 |\s*,\s*/|,$alias)|
|00002660| 29 29 3b 0a 09 58 09 7d | 0a 09 58 20 20 20 20 7d |));..X.}|..X }|
|00002670| 20 0a 09 58 20 20 20 20 | 72 65 74 75 72 6e 20 40 | ..X |return @|
|00002680| 6c 69 73 74 3b 0a 09 58 | 7d 20 0a 09 58 0a 09 58 |list;..X|} ..X..X|
|00002690| 0a 09 58 23 23 23 23 23 | 23 23 23 23 23 23 23 23 |..X#####|########|
|000026a0| 23 23 23 23 23 23 23 23 | 23 23 23 23 23 23 23 23 |########|########|
|000026b0| 23 23 23 23 23 23 23 23 | 23 23 23 23 23 23 23 23 |########|########|
|000026c0| 23 23 23 23 23 23 23 23 | 23 23 23 23 23 23 23 23 |########|########|
|000026d0| 23 0a 09 58 0a 09 58 73 | 75 62 20 66 6f 72 77 61 |#..X..Xs|ub forwa|
|000026e0| 72 64 20 7b 0a 09 58 20 | 20 20 20 20 6c 6f 63 61 |rd {..X | loca|
|000026f0| 6c 28 24 75 73 65 72 29 | 20 3d 20 40 5f 3b 0a 09 |l($user)| = @_;..|
|00002700| 58 20 20 20 20 20 6c 6f | 63 61 6c 28 24 66 6f 72 |X lo|cal($for|
|00002710| 77 61 72 64 29 3b 20 0a | 09 58 0a 09 58 20 20 20 |ward); .|.X..X |
|00002720| 20 20 24 73 65 65 6e 7b | 24 61 64 64 72 7d 2b 2b | $seen{|$addr}++|
|00002730| 20 26 26 20 72 65 74 75 | 72 6e 20 24 61 64 64 72 | && retu|rn $addr|
|00002740| 3b 0a 09 58 0a 09 58 20 | 20 20 20 20 72 65 74 75 |;..X..X | retu|
|00002750| 72 6e 20 24 75 73 65 72 | 20 69 66 20 24 75 73 65 |rn $user| if $use|
|00002760| 72 20 3d 7e 20 2f 5e 5c | 73 2a 22 3f 5b 7c 5c 2f |r =~ /^\|s*"?[|\/|
|00002770| 5d 2f 3b 0a 09 58 20 20 | 20 20 20 72 65 74 75 72 |]/;..X | retur|
|00002780| 6e 20 24 75 73 65 72 20 | 69 66 20 24 75 73 65 72 |n $user |if $user|
|00002790| 20 3d 7e 20 2f 5e 5c 73 | 2a 2e 2b 40 2e 2b 24 2f | =~ /^\s|*.+@.+$/|
|000027a0| 3b 0a 09 58 20 20 20 20 | 20 72 65 74 75 72 6e 20 |;..X | return |
|000027b0| 24 75 73 65 72 20 69 66 | 20 24 75 73 65 72 20 3d |$user if| $user =|
|000027c0| 7e 20 2f 5e 5c 73 2a 2e | 2b 5c 5c 3f 21 2e 2b 24 |~ /^\s*.|+\\?!.+$|
|000027d0| 2f 3b 0a 09 58 20 20 20 | 20 20 72 65 74 75 72 6e |/;..X | return|
|000027e0| 20 24 75 73 65 72 20 69 | 66 20 24 75 73 65 72 20 | $user i|f $user |
|000027f0| 3d 7e 20 2f 5e 5c 73 2a | 5c 5c 2f 3b 0a 09 58 0a |=~ /^\s*|\\/;..X.|
|00002800| 09 58 20 20 20 20 20 69 | 66 20 28 28 24 66 6f 72 |.X i|f (($for|
|00002810| 77 61 72 64 20 3d 20 26 | 6c 6f 67 64 69 72 28 24 |ward = &|logdir($|
|00002820| 75 73 65 72 29 29 20 26 | 26 20 2d 72 20 24 66 6f |user)) &|& -r $fo|
|00002830| 72 77 61 72 64 20 2e 3d | 20 27 2f 2e 66 6f 72 77 |rward .=| '/.forw|
|00002840| 61 72 64 27 29 20 7b 0a | 09 58 09 69 66 20 28 21 |ard') {.|.X.if (!|
|00002850| 6f 70 65 6e 20 66 6f 72 | 77 61 72 64 29 20 7b 0a |open for|ward) {.|
|00002860| 09 58 09 20 20 20 20 70 | 72 69 6e 74 20 53 54 44 |.X. p|rint STD|
|00002870| 45 52 52 20 22 24 30 3a | 20 63 61 6e 6e 6f 74 20 |ERR "$0:| cannot |
|00002880| 6f 70 65 6e 20 24 66 6f | 72 77 61 72 64 3a 20 24 |open $fo|rward: $|
|00002890| 21 5c 6e 22 3b 0a 09 58 | 09 7d 20 65 6c 73 65 20 |!\n";..X|.} else |
|000028a0| 7b 0a 09 58 09 20 20 20 | 20 70 72 69 6e 74 20 22 |{..X. | print "|
|000028b0| 5b 20 24 75 73 65 72 20 | 2d 3e 20 24 66 6f 72 77 |[ $user |-> $forw|
|000028c0| 61 72 64 20 5d 5c 6e 22 | 20 69 66 20 24 76 65 72 |ard ]\n"| if $ver|
|000028d0| 62 6f 73 65 3b 0a 09 58 | 09 20 20 20 20 63 68 6f |bose;..X|. cho|
|000028e0| 70 28 24 75 73 65 72 20 | 3d 20 3c 66 6f 72 77 61 |p($user |= <forwa|
|000028f0| 72 64 3e 29 3b 0a 09 58 | 09 20 20 20 20 63 6c 6f |rd>);..X|. clo|
|00002900| 73 65 20 66 6f 72 77 61 | 72 64 3b 0a 09 58 09 20 |se forwa|rd;..X. |
|00002910| 20 20 20 70 72 69 6e 74 | 20 22 5b 20 24 66 6f 72 | print| "[ $for|
|00002920| 77 61 72 64 20 2d 3e 20 | 24 75 73 65 72 20 5d 5c |ward -> |$user ]\|
|00002930| 6e 22 20 69 66 20 24 76 | 65 72 62 6f 73 65 3b 0a |n" if $v|erbose;.|
|00002940| 09 58 09 20 20 20 20 72 | 65 74 75 72 6e 20 26 72 |.X. r|eturn &r|
|00002950| 65 73 6f 6c 76 65 28 73 | 70 6c 69 74 28 2f 2c 2f |esolve(s|plit(/,/|
|00002960| 2c 24 75 73 65 72 29 29 | 3b 0a 09 58 09 7d 0a 09 |,$user))|;..X.}..|
|00002970| 58 20 20 20 20 20 7d 20 | 0a 09 58 20 20 20 20 20 |X } |..X |
|00002980| 72 65 74 75 72 6e 20 24 | 75 73 65 72 3b 0a 09 58 |return $|user;..X|
|00002990| 0a 09 58 7d 20 0a 09 58 | 0a 09 58 23 23 23 23 23 |..X} ..X|..X#####|
|000029a0| 23 23 23 23 23 23 23 23 | 23 23 23 23 23 23 23 23 |########|########|
|000029b0| 23 23 23 23 23 23 23 23 | 23 23 23 23 23 23 23 23 |########|########|
|000029c0| 23 23 23 23 23 23 23 23 | 23 23 23 23 23 23 23 23 |########|########|
|000029d0| 23 23 23 23 23 23 23 23 | 23 0a 09 58 0a 09 58 73 |########|#..X..Xs|
|000029e0| 75 62 20 6c 6f 67 64 69 | 72 20 7b 0a 09 58 20 20 |ub logdi|r {..X |
|000029f0| 20 20 69 66 20 28 21 20 | 24 62 65 65 6e 5f 68 65 | if (! |$been_he|
|00002a00| 72 65 5f 62 65 66 6f 72 | 65 2b 2b 29 20 7b 20 23 |re_befor|e++) { #|
|00002a10| 20 6d 69 67 68 74 20 6d | 61 6b 65 20 69 74 20 6d | might m|ake it m|
|00002a20| 75 63 68 20 66 61 73 74 | 65 72 0a 09 58 09 73 65 |uch fast|er..X.se|
|00002a30| 74 70 77 65 6e 74 20 75 | 6e 6c 65 73 73 20 24 64 |tpwent u|nless $d|
|00002a40| 62 6d 5f 70 61 73 73 77 | 64 20 3d 20 64 62 6d 6f |bm_passw|d = dbmo|
|00002a50| 70 65 6e 28 50 41 53 53 | 57 44 2c 27 2f 65 74 63 |pen(PASS|WD,'/etc|
|00002a60| 2f 70 61 73 73 77 64 27 | 2c 20 75 6e 64 65 66 29 |/passwd'|, undef)|
|00002a70| 3b 0a 09 58 20 20 20 20 | 7d 0a 09 58 0a 09 58 20 |;..X |}..X..X |
|00002a80| 20 20 20 69 66 20 28 24 | 64 62 6d 5f 70 61 73 73 | if ($|dbm_pass|
|00002a90| 77 64 29 20 7b 0a 09 58 | 09 72 65 74 75 72 6e 20 |wd) {..X|.return |
|00002aa0| 27 27 20 75 6e 6c 65 73 | 73 20 64 65 66 69 6e 65 |'' unles|s define|
|00002ab0| 64 20 24 50 41 53 53 57 | 44 7b 24 5f 5b 30 5d 7d |d $PASSW|D{$_[0]}|
|00002ac0| 3b 0a 09 58 09 6c 6f 63 | 61 6c 28 40 61 29 3b 0a |;..X.loc|al(@a);.|
|00002ad0| 09 58 09 40 61 20 3d 20 | 73 70 6c 69 74 28 2f 5b |.X.@a = |split(/[|
|00002ae0| 5c 30 30 30 5d 2b 2f 2c | 24 50 41 53 53 57 44 7b |\000]+/,|$PASSWD{|
|00002af0| 24 5f 5b 30 5d 7d 29 3b | 0a 09 58 09 72 65 74 75 |$_[0]});|..X.retu|
|00002b00| 72 6e 20 24 61 5b 24 23 | 61 2d 31 5d 3b 0a 09 58 |rn $a[$#|a-1];..X|
|00002b10| 20 20 20 20 7d 20 65 6c | 73 65 20 7b 0a 09 58 09 | } el|se {..X.|
|00002b20| 72 65 74 75 72 6e 20 28 | 67 65 74 70 77 6e 61 6d |return (|getpwnam|
|00002b30| 28 24 5f 5b 30 5d 29 29 | 5b 37 5d 3b 0a 09 58 20 |($_[0]))|[7];..X |
|00002b40| 20 20 20 7d 0a 09 58 7d | 20 0a 53 48 41 52 5f 45 | }..X}| .SHAR_E|
|00002b50| 4f 46 0a 69 66 20 74 65 | 73 74 20 33 33 32 39 20 |OF.if te|st 3329 |
|00002b60| 2d 6e 65 20 22 60 77 63 | 20 2d 63 20 3c 20 27 6e |-ne "`wc| -c < 'n|
|00002b70| 66 69 6e 67 65 72 27 60 | 22 0a 74 68 65 6e 0a 09 |finger'`|".then..|
|00002b80| 65 63 68 6f 20 73 68 61 | 72 3a 20 22 65 72 72 6f |echo sha|r: "erro|
|00002b90| 72 20 74 72 61 6e 73 6d | 69 74 74 69 6e 67 20 27 |r transm|itting '|
|00002ba0| 6e 66 69 6e 67 65 72 27 | 22 20 27 28 73 68 6f 75 |nfinger'|" '(shou|
|00002bb0| 6c 64 20 68 61 76 65 20 | 62 65 65 6e 20 33 33 32 |ld have |been 332|
|00002bc0| 39 20 63 68 61 72 61 63 | 74 65 72 73 29 27 0a 66 |9 charac|ters)'.f|
|00002bd0| 69 0a 63 68 6d 6f 64 20 | 37 37 35 20 27 6e 66 69 |i.chmod |775 'nfi|
|00002be0| 6e 67 65 72 27 0a 66 69 | 0a 65 78 69 74 20 30 0a |nger'.fi|.exit 0.|
|00002bf0| 23 09 45 6e 64 20 6f 66 | 20 73 68 65 6c 6c 20 61 |#.End of| shell a|
|00002c00| 72 63 68 69 76 65 0a | |rchive. | |
+--------+-------------------------+-------------------------+--------+--------+