home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 January / usenetsourcesnewsgroupsinfomagicjanuary1994.iso / sources / unix / volume25 / trn / part09 < prev    next >
SHell self-extracting ARchive  |  1991-12-02  |  57.5 KB

open in: MacOS 8.1     |     Win98     |     DOS

browse contents    |     view JSON data     |     view as text


This file was processed as: SHell self-extracting ARchive (archive/shar).

ConfidenceProgramDetectionMatch TypeSupport
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 text default
99% file C source, ASCII text 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| 53 75 62 6a 65 63 74 3a | 20 20 76 32 35 69 30 31 |Subject:| v25i01|
|00000010| 32 3a 20 20 74 72 6e 20 | 32 2e 30 20 2d 20 74 68 |2: trn |2.0 - th|
|00000020| 72 65 61 64 65 64 20 6e | 65 77 73 72 65 61 64 65 |readed n|ewsreade|
|00000030| 72 20 62 61 73 65 64 20 | 6f 6e 20 72 6e 20 34 2e |r based |on rn 4.|
|00000040| 34 2c 20 50 61 72 74 30 | 39 2f 31 33 0a 4e 65 77 |4, Part0|9/13.New|
|00000050| 73 67 72 6f 75 70 73 3a | 20 63 6f 6d 70 2e 73 6f |sgroups:| comp.so|
|00000060| 75 72 63 65 73 2e 75 6e | 69 78 0a 41 70 70 72 6f |urces.un|ix.Appro|
|00000070| 76 65 64 3a 20 76 69 78 | 69 65 40 70 61 2e 64 65 |ved: vix|ie@pa.de|
|00000080| 63 2e 63 6f 6d 0a 0a 53 | 75 62 6d 69 74 74 65 64 |c.com..S|ubmitted|
|00000090| 2d 62 79 3a 20 64 61 76 | 69 73 6f 6e 40 62 6f 72 |-by: dav|ison@bor|
|000000a0| 6c 61 6e 64 2e 63 6f 6d | 20 28 57 61 79 6e 65 20 |land.com| (Wayne |
|000000b0| 44 61 76 69 73 6f 6e 29 | 0a 50 6f 73 74 69 6e 67 |Davison)|.Posting|
|000000c0| 2d 6e 75 6d 62 65 72 3a | 20 56 6f 6c 75 6d 65 20 |-number:| Volume |
|000000d0| 32 35 2c 20 49 73 73 75 | 65 20 31 32 0a 41 72 63 |25, Issu|e 12.Arc|
|000000e0| 68 69 76 65 2d 6e 61 6d | 65 3a 20 74 72 6e 2f 70 |hive-nam|e: trn/p|
|000000f0| 61 72 74 30 39 0a 0a 23 | 21 20 2f 62 69 6e 2f 73 |art09..#|! /bin/s|
|00000100| 68 0a 23 20 54 68 69 73 | 20 69 73 20 61 20 73 68 |h.# This| is a sh|
|00000110| 65 6c 6c 20 61 72 63 68 | 69 76 65 2e 20 20 52 65 |ell arch|ive. Re|
|00000120| 6d 6f 76 65 20 61 6e 79 | 74 68 69 6e 67 20 62 65 |move any|thing be|
|00000130| 66 6f 72 65 20 74 68 69 | 73 20 6c 69 6e 65 2c 20 |fore thi|s line, |
|00000140| 74 68 65 6e 20 75 6e 70 | 61 63 6b 0a 23 20 69 74 |then unp|ack.# it|
|00000150| 20 62 79 20 73 61 76 69 | 6e 67 20 69 74 20 69 6e | by savi|ng it in|
|00000160| 74 6f 20 61 20 66 69 6c | 65 20 61 6e 64 20 74 79 |to a fil|e and ty|
|00000170| 70 69 6e 67 20 22 73 68 | 20 66 69 6c 65 22 2e 20 |ping "sh| file". |
|00000180| 20 54 6f 20 6f 76 65 72 | 77 72 69 74 65 20 65 78 | To over|write ex|
|00000190| 69 73 74 69 6e 67 0a 23 | 20 66 69 6c 65 73 2c 20 |isting.#| files, |
|000001a0| 74 79 70 65 20 22 73 68 | 20 66 69 6c 65 20 2d 63 |type "sh| file -c|
|000001b0| 22 2e 20 20 59 6f 75 20 | 63 61 6e 20 61 6c 73 6f |". You |can also|
|000001c0| 20 66 65 65 64 20 74 68 | 69 73 20 61 73 20 73 74 | feed th|is as st|
|000001d0| 61 6e 64 61 72 64 20 69 | 6e 70 75 74 20 76 69 61 |andard i|nput via|
|000001e0| 0a 23 20 75 6e 73 68 61 | 72 2c 20 6f 72 20 62 79 |.# unsha|r, or by|
|000001f0| 20 74 79 70 69 6e 67 20 | 22 73 68 20 3c 66 69 6c | typing |"sh <fil|
|00000200| 65 22 2c 20 65 2e 67 2e | 2e 20 20 49 66 20 74 68 |e", e.g.|. If th|
|00000210| 69 73 20 61 72 63 68 69 | 76 65 20 69 73 20 63 6f |is archi|ve is co|
|00000220| 6d 70 6c 65 74 65 2c 20 | 79 6f 75 0a 23 20 77 69 |mplete, |you.# wi|
|00000230| 6c 6c 20 73 65 65 20 74 | 68 65 20 66 6f 6c 6c 6f |ll see t|he follo|
|00000240| 77 69 6e 67 20 6d 65 73 | 73 61 67 65 20 61 74 20 |wing mes|sage at |
|00000250| 74 68 65 20 65 6e 64 3a | 0a 23 09 09 22 45 6e 64 |the end:|.#.."End|
|00000260| 20 6f 66 20 61 72 63 68 | 69 76 65 20 39 20 28 6f | of arch|ive 9 (o|
|00000270| 66 20 31 33 29 2e 22 0a | 23 20 43 6f 6e 74 65 6e |f 13).".|# Conten|
|00000280| 74 73 3a 20 20 69 6e 74 | 72 70 2e 63 20 72 63 73 |ts: int|rp.c rcs|
|00000290| 74 75 66 66 2e 63 0a 23 | 20 57 72 61 70 70 65 64 |tuff.c.#| Wrapped|
|000002a0| 20 62 79 20 76 69 78 69 | 65 40 63 6f 67 6e 69 74 | by vixi|e@cognit|
|000002b0| 69 6f 6e 2e 70 61 2e 64 | 65 63 2e 63 6f 6d 20 6f |ion.pa.d|ec.com o|
|000002c0| 6e 20 54 75 65 20 44 65 | 63 20 20 33 20 31 36 3a |n Tue De|c 3 16:|
|000002d0| 33 34 3a 35 35 20 31 39 | 39 31 0a 50 41 54 48 3d |34:55 19|91.PATH=|
|000002e0| 2f 62 69 6e 3a 2f 75 73 | 72 2f 62 69 6e 3a 2f 75 |/bin:/us|r/bin:/u|
|000002f0| 73 72 2f 75 63 62 20 3b | 20 65 78 70 6f 72 74 20 |sr/ucb ;| export |
|00000300| 50 41 54 48 0a 69 66 20 | 74 65 73 74 20 2d 66 20 |PATH.if |test -f |
|00000310| 27 69 6e 74 72 70 2e 63 | 27 20 2d 61 20 22 24 7b |'intrp.c|' -a "${|
|00000320| 31 7d 22 20 21 3d 20 22 | 2d 63 22 20 3b 20 74 68 |1}" != "|-c" ; th|
|00000330| 65 6e 20 0a 20 20 65 63 | 68 6f 20 73 68 61 72 3a |en . ec|ho shar:|
|00000340| 20 57 69 6c 6c 20 6e 6f | 74 20 63 6c 6f 62 62 65 | Will no|t clobbe|
|00000350| 72 20 65 78 69 73 74 69 | 6e 67 20 66 69 6c 65 20 |r existi|ng file |
|00000360| 5c 22 27 69 6e 74 72 70 | 2e 63 27 5c 22 0a 65 6c |\"'intrp|.c'\".el|
|00000370| 73 65 0a 65 63 68 6f 20 | 73 68 61 72 3a 20 45 78 |se.echo |shar: Ex|
|00000380| 74 72 61 63 74 69 6e 67 | 20 5c 22 27 69 6e 74 72 |tracting| \"'intr|
|00000390| 70 2e 63 27 5c 22 20 5c | 28 32 37 30 31 30 20 63 |p.c'\" \|(27010 c|
|000003a0| 68 61 72 61 63 74 65 72 | 73 5c 29 0a 73 65 64 20 |haracter|s\).sed |
|000003b0| 22 73 2f 5e 58 2f 2f 22 | 20 3e 27 69 6e 74 72 70 |"s/^X//"| >'intrp|
|000003c0| 2e 63 27 20 3c 3c 27 45 | 4e 44 5f 4f 46 5f 46 49 |.c' <<'E|ND_OF_FI|
|000003d0| 4c 45 27 0a 58 2f 2a 20 | 24 49 64 3a 20 69 6e 74 |LE'.X/* |$Id: int|
|000003e0| 72 70 2e 63 2c 76 20 34 | 2e 34 2e 32 2e 31 20 31 |rp.c,v 4|.4.2.1 1|
|000003f0| 39 39 31 2f 31 32 2f 30 | 31 20 31 38 3a 30 35 3a |991/12/0|1 18:05:|
|00000400| 34 32 20 73 6f 62 20 50 | 41 54 43 48 5f 32 20 73 |42 sob P|ATCH_2 s|
|00000410| 6f 62 20 24 0a 58 20 2a | 0a 58 20 2a 20 24 4c 6f |ob $.X *|.X * $Lo|
|00000420| 67 3a 20 69 6e 74 72 70 | 2e 63 2c 76 20 24 0a 58 |g: intrp|.c,v $.X|
|00000430| 20 2a 20 52 65 76 69 73 | 69 6f 6e 20 34 2e 34 2e | * Revis|ion 4.4.|
|00000440| 32 2e 31 20 20 31 39 39 | 31 2f 31 32 2f 30 31 20 |2.1 199|1/12/01 |
|00000450| 20 31 38 3a 30 35 3a 34 | 32 20 20 73 6f 62 0a 58 | 18:05:4|2 sob.X|
|00000460| 20 2a 20 50 61 74 63 68 | 6c 65 76 65 6c 20 32 20 | * Patch|level 2 |
|00000470| 63 68 61 6e 67 65 73 0a | 58 20 2a 0a 58 20 2a 20 |changes.|X *.X * |
|00000480| 52 65 76 69 73 69 6f 6e | 20 34 2e 34 20 20 31 39 |Revision| 4.4 19|
|00000490| 39 31 2f 30 39 2f 30 39 | 20 20 32 30 3a 31 38 3a |91/09/09| 20:18:|
|000004a0| 32 33 20 20 73 6f 62 0a | 58 20 2a 20 72 65 6c 65 |23 sob.|X * rele|
|000004b0| 61 73 65 20 34 2e 34 0a | 58 20 2a 0a 58 20 2a 0a |ase 4.4.|X *.X *.|
|000004c0| 58 20 2a 20 0a 58 20 2a | 2f 0a 58 2f 2a 20 54 68 |X * .X *|/.X/* Th|
|000004d0| 69 73 20 73 6f 66 74 77 | 61 72 65 20 69 73 20 43 |is softw|are is C|
|000004e0| 6f 70 79 72 69 67 68 74 | 20 31 39 39 31 20 62 79 |opyright| 1991 by|
|000004f0| 20 53 74 61 6e 20 42 61 | 72 62 65 72 2e 20 0a 58 | Stan Ba|rber. .X|
|00000500| 20 2a 0a 58 20 2a 20 50 | 65 72 6d 69 73 73 69 6f | *.X * P|ermissio|
|00000510| 6e 20 69 73 20 68 65 72 | 65 62 79 20 67 72 61 6e |n is her|eby gran|
|00000520| 74 65 64 20 74 6f 20 63 | 6f 70 79 2c 20 72 65 70 |ted to c|opy, rep|
|00000530| 72 6f 64 75 63 65 2c 20 | 72 65 64 69 73 74 72 69 |roduce, |redistri|
|00000540| 62 75 74 65 20 6f 72 20 | 6f 74 68 65 72 77 69 73 |bute or |otherwis|
|00000550| 65 0a 58 20 2a 20 75 73 | 65 20 74 68 69 73 20 73 |e.X * us|e this s|
|00000560| 6f 66 74 77 61 72 65 20 | 61 73 20 6c 6f 6e 67 20 |oftware |as long |
|00000570| 61 73 3a 20 74 68 65 72 | 65 20 69 73 20 6e 6f 20 |as: ther|e is no |
|00000580| 6d 6f 6e 65 74 61 72 79 | 20 70 72 6f 66 69 74 20 |monetary| profit |
|00000590| 67 61 69 6e 65 64 0a 58 | 20 2a 20 73 70 65 63 69 |gained.X| * speci|
|000005a0| 66 69 63 61 6c 6c 79 20 | 66 72 6f 6d 20 74 68 65 |fically |from the|
|000005b0| 20 75 73 65 20 6f 72 20 | 72 65 70 72 6f 64 75 63 | use or |reproduc|
|000005c0| 74 69 6f 6e 20 6f 66 20 | 74 68 69 73 20 73 6f 66 |tion of |this sof|
|000005d0| 74 77 61 72 65 2c 20 69 | 74 20 69 73 20 6e 6f 74 |tware, i|t is not|
|000005e0| 0a 58 20 2a 20 73 6f 6c | 64 2c 20 72 65 6e 74 65 |.X * sol|d, rente|
|000005f0| 64 2c 20 74 72 61 64 65 | 64 20 6f 72 20 6f 74 68 |d, trade|d or oth|
|00000600| 65 72 77 69 73 65 20 6d | 61 72 6b 65 74 65 64 2c |erwise m|arketed,|
|00000610| 20 61 6e 64 20 74 68 69 | 73 20 63 6f 70 79 72 69 | and thi|s copyri|
|00000620| 67 68 74 20 6e 6f 74 69 | 63 65 20 69 73 0a 58 20 |ght noti|ce is.X |
|00000630| 2a 20 69 6e 63 6c 75 64 | 65 64 20 70 72 6f 6d 69 |* includ|ed promi|
|00000640| 6e 65 6e 74 6c 79 20 69 | 6e 20 61 6e 79 20 63 6f |nently i|n any co|
|00000650| 70 79 20 6d 61 64 65 2e | 20 0a 58 20 2a 0a 58 20 |py made.| .X *.X |
|00000660| 2a 20 54 68 65 20 61 75 | 74 68 6f 72 20 6d 61 6b |* The au|thor mak|
|00000670| 65 20 6e 6f 20 63 6c 61 | 69 6d 73 20 61 73 20 74 |e no cla|ims as t|
|00000680| 6f 20 74 68 65 20 66 69 | 74 6e 65 73 73 20 6f 72 |o the fi|tness or|
|00000690| 20 63 6f 72 72 65 63 74 | 6e 65 73 73 20 6f 66 20 | correct|ness of |
|000006a0| 74 68 69 73 20 73 6f 66 | 74 77 61 72 65 0a 58 20 |this sof|tware.X |
|000006b0| 2a 20 66 6f 72 20 61 6e | 79 20 75 73 65 20 77 68 |* for an|y use wh|
|000006c0| 61 74 73 6f 65 76 65 72 | 2c 20 61 6e 64 20 69 74 |atsoever|, and it|
|000006d0| 20 69 73 20 70 72 6f 76 | 69 64 65 64 20 61 73 20 | is prov|ided as |
|000006e0| 69 73 2e 20 41 6e 79 20 | 75 73 65 20 6f 66 20 74 |is. Any |use of t|
|000006f0| 68 69 73 20 73 6f 66 74 | 77 61 72 65 0a 58 20 2a |his soft|ware.X *|
|00000700| 20 69 73 20 61 74 20 74 | 68 65 20 75 73 65 72 27 | is at t|he user'|
|00000710| 73 20 6f 77 6e 20 72 69 | 73 6b 2e 20 0a 58 20 2a |s own ri|sk. .X *|
|00000720| 2f 0a 58 23 69 6e 63 6c | 75 64 65 20 22 45 58 54 |/.X#incl|ude "EXT|
|00000730| 45 52 4e 2e 68 22 0a 58 | 23 69 6e 63 6c 75 64 65 |ERN.h".X|#include|
|00000740| 20 22 63 6f 6d 6d 6f 6e | 2e 68 22 0a 58 23 69 6e | "common|.h".X#in|
|00000750| 63 6c 75 64 65 20 22 75 | 74 69 6c 2e 68 22 0a 58 |clude "u|til.h".X|
|00000760| 23 69 6e 63 6c 75 64 65 | 20 22 73 65 61 72 63 68 |#include| "search|
|00000770| 2e 68 22 0a 58 23 69 6e | 63 6c 75 64 65 20 22 68 |.h".X#in|clude "h|
|00000780| 65 61 64 2e 68 22 0a 58 | 23 69 6e 63 6c 75 64 65 |ead.h".X|#include|
|00000790| 20 22 72 6e 2e 68 22 0a | 58 23 69 6e 63 6c 75 64 | "rn.h".|X#includ|
|000007a0| 65 20 22 61 72 74 73 72 | 63 68 2e 68 22 0a 58 23 |e "artsr|ch.h".X#|
|000007b0| 69 6e 63 6c 75 64 65 20 | 22 6e 67 2e 68 22 0a 58 |include |"ng.h".X|
|000007c0| 23 69 6e 63 6c 75 64 65 | 20 22 72 65 73 70 6f 6e |#include| "respon|
|000007d0| 64 2e 68 22 0a 58 23 69 | 6e 63 6c 75 64 65 20 22 |d.h".X#i|nclude "|
|000007e0| 72 63 73 74 75 66 66 2e | 68 22 0a 58 23 69 6e 63 |rcstuff.|h".X#inc|
|000007f0| 6c 75 64 65 20 22 62 69 | 74 73 2e 68 22 0a 58 23 |lude "bi|ts.h".X#|
|00000800| 69 6e 63 6c 75 64 65 20 | 22 61 72 74 69 6f 2e 68 |include |"artio.h|
|00000810| 22 0a 58 23 69 6e 63 6c | 75 64 65 20 22 74 65 72 |".X#incl|ude "ter|
|00000820| 6d 2e 68 22 0a 58 23 69 | 6e 63 6c 75 64 65 20 22 |m.h".X#i|nclude "|
|00000830| 66 69 6e 61 6c 2e 68 22 | 0a 58 23 69 66 64 65 66 |final.h"|.X#ifdef|
|00000840| 20 55 53 45 54 48 52 45 | 41 44 53 0a 58 23 69 6e | USETHRE|ADS.X#in|
|00000850| 63 6c 75 64 65 20 22 74 | 68 72 65 61 64 73 2e 68 |clude "t|hreads.h|
|00000860| 22 0a 58 23 69 6e 63 6c | 75 64 65 20 22 72 74 68 |".X#incl|ude "rth|
|00000870| 72 65 61 64 73 2e 68 22 | 0a 58 23 65 6e 64 69 66 |reads.h"|.X#endif|
|00000880| 0a 58 23 69 6e 63 6c 75 | 64 65 20 22 49 4e 54 45 |.X#inclu|de "INTE|
|00000890| 52 4e 2e 68 22 0a 58 23 | 69 6e 63 6c 75 64 65 20 |RN.h".X#|include |
|000008a0| 22 69 6e 74 72 70 2e 68 | 22 0a 58 0a 73 74 61 74 |"intrp.h|".X.stat|
|000008b0| 69 63 20 63 68 61 72 20 | 2a 20 72 65 67 65 78 70 |ic char |* regexp|
|000008c0| 5f 73 70 65 63 69 61 6c | 73 20 3d 20 22 5e 24 2e |_special|s = "^$.|
|000008d0| 2a 5b 5c 5c 2f 3f 22 3b | 0a 58 0a 63 68 61 72 20 |*[\\/?";|.X.char |
|000008e0| 6f 72 67 6e 61 6d 65 5b | 5d 20 3d 20 4f 52 47 4e |orgname[|] = ORGN|
|000008f0| 41 4d 45 3b 0a 58 0a 58 | 2f 2a 20 6e 61 6d 65 20 |AME;.X.X|/* name |
|00000900| 6f 66 20 74 68 69 73 20 | 73 69 74 65 20 2a 2f 0a |of this |site */.|
|00000910| 58 23 69 66 64 65 66 20 | 47 45 54 48 4f 53 54 4e |X#ifdef |GETHOSTN|
|00000920| 41 4d 45 0a 58 20 20 20 | 20 63 68 61 72 20 2a 68 |AME.X | char *h|
|00000930| 6f 73 74 6e 61 6d 65 3b | 0a 58 23 20 20 20 75 6e |ostname;|.X# un|
|00000940| 64 65 66 20 53 49 54 45 | 4e 41 4d 45 0a 58 23 20 |def SITE|NAME.X# |
|00000950| 20 20 64 65 66 69 6e 65 | 20 53 49 54 45 4e 41 4d | define| SITENAM|
|00000960| 45 20 68 6f 73 74 6e 61 | 6d 65 0a 58 23 65 6c 73 |E hostna|me.X#els|
|00000970| 65 20 2f 2a 20 21 47 45 | 54 48 4f 53 54 4e 41 4d |e /* !GE|THOSTNAM|
|00000980| 45 20 2a 2f 0a 58 23 20 | 20 20 69 66 64 65 66 20 |E */.X# | ifdef |
|00000990| 44 4f 55 4e 41 4d 45 0a | 58 23 09 69 6e 63 6c 75 |DOUNAME.|X#.inclu|
|000009a0| 64 65 20 3c 73 79 73 2f | 75 74 73 6e 61 6d 65 2e |de <sys/|utsname.|
|000009b0| 68 3e 0a 58 09 73 74 72 | 75 63 74 20 75 74 73 6e |h>.X.str|uct utsn|
|000009c0| 61 6d 65 20 75 74 73 6e | 3b 0a 58 23 09 75 6e 64 |ame utsn|;.X#.und|
|000009d0| 65 66 20 53 49 54 45 4e | 41 4d 45 0a 58 23 09 64 |ef SITEN|AME.X#.d|
|000009e0| 65 66 69 6e 65 20 53 49 | 54 45 4e 41 4d 45 20 75 |efine SI|TENAME u|
|000009f0| 74 73 6e 2e 6e 6f 64 65 | 6e 61 6d 65 0a 58 23 20 |tsn.node|name.X# |
|00000a00| 20 20 65 6c 73 65 20 2f | 2a 20 21 44 4f 55 4e 41 | else /|* !DOUNA|
|00000a10| 4d 45 20 2a 2f 0a 58 23 | 09 69 66 64 65 66 20 50 |ME */.X#|.ifdef P|
|00000a20| 48 4f 53 54 4e 41 4d 45 | 0a 58 09 20 20 20 20 63 |HOSTNAME|.X. c|
|00000a30| 68 61 72 20 2a 68 6f 73 | 74 6e 61 6d 65 3b 0a 58 |har *hos|tname;.X|
|00000a40| 23 09 20 20 20 20 75 6e | 64 65 66 20 53 49 54 45 |#. un|def SITE|
|00000a50| 4e 41 4d 45 0a 58 23 09 | 20 20 20 20 64 65 66 69 |NAME.X#.| defi|
|00000a60| 6e 65 20 53 49 54 45 4e | 41 4d 45 20 68 6f 73 74 |ne SITEN|AME host|
|00000a70| 6e 61 6d 65 0a 58 23 09 | 65 6c 73 65 20 2f 2a 20 |name.X#.|else /* |
|00000a80| 21 50 48 4f 53 54 4e 41 | 4d 45 20 2a 2f 0a 58 23 |!PHOSTNA|ME */.X#|
|00000a90| 09 20 20 20 20 69 66 64 | 65 66 20 57 48 4f 41 4d |. ifd|ef WHOAM|
|00000aa0| 49 0a 58 23 09 09 75 6e | 64 65 66 20 53 49 54 45 |I.X#..un|def SITE|
|00000ab0| 4e 41 4d 45 0a 58 23 09 | 09 64 65 66 69 6e 65 20 |NAME.X#.|.define |
|00000ac0| 53 49 54 45 4e 41 4d 45 | 20 73 79 73 6e 61 6d 65 |SITENAME| sysname|
|00000ad0| 0a 58 23 09 20 20 20 20 | 65 6e 64 69 66 20 2f 2a |.X#. |endif /*|
|00000ae0| 20 57 48 4f 41 4d 49 20 | 2a 2f 0a 58 23 09 65 6e | WHOAMI |*/.X#.en|
|00000af0| 64 69 66 20 2f 2a 20 50 | 48 4f 53 54 4e 41 4d 45 |dif /* P|HOSTNAME|
|00000b00| 20 2a 2f 0a 58 23 20 20 | 20 65 6e 64 69 66 20 2f | */.X# | endif /|
|00000b10| 2a 20 44 4f 55 4e 41 4d | 45 20 2a 2f 0a 58 23 65 |* DOUNAM|E */.X#e|
|00000b20| 6e 64 69 66 20 2f 2a 20 | 47 45 54 48 4f 53 54 4e |ndif /* |GETHOSTN|
|00000b30| 41 4d 45 20 2a 2f 0a 58 | 0a 58 23 69 66 64 65 66 |AME */.X|.X#ifdef|
|00000b40| 20 54 49 4c 44 45 4e 41 | 4d 45 0a 73 74 61 74 69 | TILDENA|ME.stati|
|00000b50| 63 20 63 68 61 72 20 2a | 74 69 6c 64 65 6e 61 6d |c char *|tildenam|
|00000b60| 65 20 3d 20 4e 75 6c 6c | 63 68 3b 0a 73 74 61 74 |e = Null|ch;.stat|
|00000b70| 69 63 20 63 68 61 72 20 | 2a 74 69 6c 64 65 64 69 |ic char |*tildedi|
|00000b80| 72 20 3d 20 4e 75 6c 6c | 63 68 3b 0a 58 23 65 6e |r = Null|ch;.X#en|
|00000b90| 64 69 66 0a 58 0a 63 68 | 61 72 20 2a 72 65 61 6c |dif.X.ch|ar *real|
|00000ba0| 6e 61 6d 65 20 49 4e 49 | 54 28 4e 75 6c 6c 63 68 |name INI|T(Nullch|
|00000bb0| 29 3b 09 2f 2a 20 72 65 | 61 6c 20 6e 61 6d 65 20 |);./* re|al name |
|00000bc0| 6f 66 20 73 65 6e 64 65 | 72 20 66 72 6f 6d 20 2f |of sende|r from /|
|00000bd0| 65 74 63 2f 70 61 73 73 | 77 64 20 2a 2f 0a 58 0a |etc/pass|wd */.X.|
|00000be0| 58 23 69 66 64 65 66 20 | 43 4f 4e 44 53 55 42 0a |X#ifdef |CONDSUB.|
|00000bf0| 63 68 61 72 20 2a 73 6b | 69 70 69 6e 74 65 72 70 |char *sk|ipinterp|
|00000c00| 20 41 4e 53 49 28 28 63 | 68 61 72 20 2a 2c 63 68 | ANSI((c|har *,ch|
|00000c10| 61 72 20 2a 29 29 3b 0a | 58 23 65 6e 64 69 66 0a |ar *));.|X#endif.|
|00000c20| 58 0a 73 74 61 74 69 63 | 20 76 6f 69 64 20 61 62 |X.static| void ab|
|00000c30| 6f 72 74 5f 69 6e 74 65 | 72 70 20 41 4e 53 49 28 |ort_inte|rp ANSI(|
|00000c40| 28 76 6f 69 64 29 29 3b | 0a 58 0a 76 6f 69 64 0a |(void));|.X.void.|
|00000c50| 69 6e 74 72 70 5f 69 6e | 69 74 28 74 63 62 75 66 |intrp_in|it(tcbuf|
|00000c60| 29 0a 63 68 61 72 20 2a | 74 63 62 75 66 3b 0a 58 |).char *|tcbuf;.X|
|00000c70| 7b 0a 58 20 20 20 20 63 | 68 61 72 20 2a 67 65 74 |{.X c|har *get|
|00000c80| 6c 6f 67 69 6e 28 29 3b | 0a 58 0a 58 20 20 20 20 |login();|.X.X |
|00000c90| 73 70 6f 6f 6c 20 3d 20 | 73 61 76 65 73 74 72 28 |spool = |savestr(|
|00000ca0| 66 69 6c 65 78 70 28 53 | 50 4f 4f 4c 29 29 3b 09 |filexp(S|POOL));.|
|00000cb0| 2f 2a 20 75 73 75 61 6c | 6c 79 20 2f 75 73 72 2f |/* usual|ly /usr/|
|00000cc0| 73 70 6f 6f 6c 2f 6e 65 | 77 73 20 2a 2f 0a 58 23 |spool/ne|ws */.X#|
|00000cd0| 69 66 64 65 66 20 55 53 | 45 54 48 52 45 41 44 53 |ifdef US|ETHREADS|
|00000ce0| 0a 58 20 20 20 20 6d 74 | 6c 69 62 20 3d 20 73 61 |.X mt|lib = sa|
|00000cf0| 76 65 73 74 72 28 66 69 | 6c 65 78 70 28 4d 54 4c |vestr(fi|lexp(MTL|
|00000d00| 49 42 29 29 3b 0a 58 20 | 20 20 20 74 68 72 65 61 |IB));.X | threa|
|00000d10| 64 64 69 72 20 3d 20 73 | 61 76 65 73 74 72 28 66 |ddir = s|avestr(f|
|00000d20| 69 6c 65 78 70 28 54 48 | 52 45 41 44 5f 44 49 52 |ilexp(TH|READ_DIR|
|00000d30| 29 29 3b 0a 58 23 65 6e | 64 69 66 0a 58 20 20 20 |));.X#en|dif.X |
|00000d40| 20 0a 58 20 20 20 20 2f | 2a 20 67 65 74 20 65 6e | .X /|* get en|
|00000d50| 76 69 72 6f 6e 6d 65 6e | 74 61 6c 20 73 74 75 66 |vironmen|tal stuf|
|00000d60| 66 20 2a 2f 0a 58 0a 58 | 23 69 66 64 65 66 20 4e |f */.X.X|#ifdef N|
|00000d70| 45 57 53 41 44 4d 49 4e | 0a 58 20 20 20 20 7b 0a |EWSADMIN|.X {.|
|00000d80| 58 23 69 66 64 65 66 20 | 47 45 54 50 57 45 4e 54 |X#ifdef |GETPWENT|
|00000d90| 0a 58 09 73 74 72 75 63 | 74 20 70 61 73 73 77 64 |.X.struc|t passwd|
|00000da0| 20 2a 67 65 74 70 77 6e | 61 6d 28 29 3b 0a 58 09 | *getpwn|am();.X.|
|00000db0| 73 74 72 75 63 74 20 70 | 61 73 73 77 64 20 2a 70 |struct p|asswd *p|
|00000dc0| 77 64 20 3d 20 67 65 74 | 70 77 6e 61 6d 28 4e 45 |wd = get|pwnam(NE|
|00000dd0| 57 53 41 44 4d 49 4e 29 | 3b 0a 58 0a 58 09 69 66 |WSADMIN)|;.X.X.if|
|00000de0| 20 28 70 77 64 20 21 3d | 20 4e 55 4c 4c 29 0a 58 | (pwd !=| NULL).X|
|00000df0| 09 20 20 20 20 6e 65 77 | 73 75 69 64 20 3d 20 70 |. new|suid = p|
|00000e00| 77 64 2d 3e 70 77 5f 75 | 69 64 3b 0a 58 23 65 6c |wd->pw_u|id;.X#el|
|00000e10| 73 65 0a 58 23 69 66 64 | 65 66 20 54 49 4c 44 45 |se.X#ifd|ef TILDE|
|00000e20| 4e 41 4d 45 0a 58 09 63 | 68 61 72 20 74 69 6c 64 |NAME.X.c|har tild|
|00000e30| 65 6e 65 77 73 5b 32 2b | 73 69 7a 65 6f 66 20 4e |enews[2+|sizeof N|
|00000e40| 45 57 53 41 44 4d 49 4e | 5d 3b 0a 58 09 73 74 72 |EWSADMIN|];.X.str|
|00000e50| 63 70 79 28 74 69 6c 64 | 65 6e 65 77 73 2c 20 22 |cpy(tild|enews, "|
|00000e60| 7e 22 29 3b 0a 58 09 73 | 74 72 63 61 74 28 74 69 |~");.X.s|trcat(ti|
|00000e70| 6c 64 65 6e 65 77 73 2c | 20 4e 45 57 53 41 44 4d |ldenews,| NEWSADM|
|00000e80| 49 4e 29 3b 0a 58 09 28 | 76 6f 69 64 29 20 66 69 |IN);.X.(|void) fi|
|00000e90| 6c 65 78 70 28 74 69 6c | 64 65 6e 65 77 73 29 3b |lexp(til|denews);|
|00000ea0| 0a 58 23 65 6c 73 65 0a | 58 09 23 65 72 72 6f 72 |.X#else.|X.#error|
|00000eb0| 20 22 41 74 20 6c 65 61 | 73 74 20 6f 6e 65 20 6f | "At lea|st one o|
|00000ec0| 66 20 47 45 54 50 57 45 | 4e 54 20 6f 72 20 54 49 |f GETPWE|NT or TI|
|00000ed0| 4c 44 45 4e 41 4d 45 20 | 6e 65 65 64 65 64 20 74 |LDENAME |needed t|
|00000ee0| 6f 20 67 65 74 20 4e 45 | 57 53 41 44 4d 49 4e 22 |o get NE|WSADMIN"|
|00000ef0| 0a 58 23 65 6e 64 69 66 | 20 20 2f 2a 20 54 49 4c |.X#endif| /* TIL|
|00000f00| 44 45 4e 41 4d 45 20 2a | 2f 0a 58 23 65 6e 64 69 |DENAME *|/.X#endi|
|00000f10| 66 09 2f 2a 20 47 45 54 | 50 57 45 4e 54 20 2a 2f |f./* GET|PWENT */|
|00000f20| 0a 58 20 20 20 20 7d 0a | 58 23 65 6e 64 69 66 09 |.X }.|X#endif.|
|00000f30| 2f 2a 20 4e 45 57 53 41 | 44 4d 49 4e 20 2a 2f 0a |/* NEWSA|DMIN */.|
|00000f40| 58 20 20 20 20 2f 2a 20 | 67 65 74 20 68 6f 6d 65 |X /* |get home|
|00000f50| 20 64 69 72 65 63 74 6f | 72 79 20 2a 2f 0a 58 0a | directo|ry */.X.|
|00000f60| 58 20 20 20 20 68 6f 6d | 65 64 69 72 20 3d 20 67 |X hom|edir = g|
|00000f70| 65 74 65 6e 76 28 22 48 | 4f 4d 45 22 29 3b 0a 58 |etenv("H|OME");.X|
|00000f80| 20 20 20 20 69 66 20 28 | 68 6f 6d 65 64 69 72 20 | if (|homedir |
|00000f90| 3d 3d 20 4e 75 6c 6c 63 | 68 29 0a 58 09 68 6f 6d |== Nullc|h).X.hom|
|00000fa0| 65 64 69 72 20 3d 20 67 | 65 74 65 6e 76 28 22 4c |edir = g|etenv("L|
|00000fb0| 4f 47 44 49 52 22 29 3b | 0a 58 0a 58 20 20 20 20 |OGDIR");|.X.X |
|00000fc0| 64 6f 74 64 69 72 20 3d | 20 67 65 74 76 61 6c 28 |dotdir =| getval(|
|00000fd0| 22 44 4f 54 44 49 52 22 | 2c 68 6f 6d 65 64 69 72 |"DOTDIR"|,homedir|
|00000fe0| 29 3b 0a 58 0a 58 20 20 | 20 20 2f 2a 20 67 65 74 |);.X.X | /* get|
|00000ff0| 20 6c 6f 67 69 6e 20 6e | 61 6d 65 20 2a 2f 0a 58 | login n|ame */.X|
|00001000| 0a 58 20 20 20 20 6c 6f | 67 6e 61 6d 65 20 3d 20 |.X lo|gname = |
|00001010| 67 65 74 65 6e 76 28 22 | 55 53 45 52 22 29 3b 0a |getenv("|USER");.|
|00001020| 58 20 20 20 20 69 66 20 | 28 6c 6f 67 6e 61 6d 65 |X if |(logname|
|00001030| 20 3d 3d 20 4e 75 6c 6c | 63 68 29 0a 58 09 6c 6f | == Null|ch).X.lo|
|00001040| 67 6e 61 6d 65 20 3d 20 | 67 65 74 65 6e 76 28 22 |gname = |getenv("|
|00001050| 4c 4f 47 4e 41 4d 45 22 | 29 3b 0a 58 23 69 66 64 |LOGNAME"|);.X#ifd|
|00001060| 65 66 20 47 45 54 4c 4f | 47 49 4e 0a 58 20 20 20 |ef GETLO|GIN.X |
|00001070| 20 69 66 20 28 6c 6f 67 | 6e 61 6d 65 20 3d 3d 20 | if (log|name == |
|00001080| 4e 75 6c 6c 63 68 29 0a | 58 09 6c 6f 67 6e 61 6d |Nullch).|X.lognam|
|00001090| 65 20 3d 20 73 61 76 65 | 73 74 72 28 67 65 74 6c |e = save|str(getl|
|000010a0| 6f 67 69 6e 28 29 29 3b | 0a 58 23 65 6e 64 69 66 |ogin());|.X#endif|
|000010b0| 0a 58 0a 58 23 69 66 64 | 65 66 20 4e 45 57 53 41 |.X.X#ifd|ef NEWSA|
|000010c0| 44 4d 49 4e 0a 58 20 20 | 20 20 2f 2a 20 69 66 20 |DMIN.X | /* if |
|000010d0| 74 68 69 73 20 69 73 20 | 74 68 65 20 6e 65 77 73 |this is |the news|
|000010e0| 20 61 64 6d 69 6e 20 74 | 68 61 6e 20 6c 6f 61 64 | admin t|han load|
|000010f0| 20 68 69 73 20 55 49 44 | 20 69 6e 74 6f 20 6e 65 | his UID| into ne|
|00001100| 77 73 75 69 64 20 2a 2f | 0a 58 0a 58 20 20 20 20 |wsuid */|.X.X |
|00001110| 69 66 20 28 20 73 74 72 | 45 51 28 6c 6f 67 6e 61 |if ( str|EQ(logna|
|00001120| 6d 65 2c 4e 45 57 53 41 | 44 4d 49 4e 29 20 29 0a |me,NEWSA|DMIN) ).|
|00001130| 58 09 6e 65 77 73 75 69 | 64 20 3d 20 67 65 74 75 |X.newsui|d = getu|
|00001140| 69 64 28 29 3b 0a 58 23 | 65 6e 64 69 66 0a 58 0a |id();.X#|endif.X.|
|00001150| 58 20 20 20 20 69 66 20 | 28 63 68 65 63 6b 66 6c |X if |(checkfl|
|00001160| 61 67 29 09 09 09 2f 2a | 20 74 68 61 74 20 67 65 |ag).../*| that ge|
|00001170| 74 77 64 20 62 65 6c 6f | 77 20 74 61 6b 65 73 20 |twd belo|w takes |
|00001180| 7e 31 2f 33 20 73 65 63 | 2e 20 2a 2f 0a 58 09 72 |~1/3 sec|. */.X.r|
|00001190| 65 74 75 72 6e 3b 09 09 | 09 09 2f 2a 20 61 6e 64 |eturn;..|../* and|
|000011a0| 20 77 65 20 64 6f 20 6e | 6f 74 20 6e 65 65 64 20 | we do n|ot need |
|000011b0| 69 74 20 66 6f 72 20 2d | 63 20 2a 2f 0a 58 20 20 |it for -|c */.X |
|000011c0| 20 20 67 65 74 77 64 28 | 74 63 62 75 66 29 3b 09 | getwd(|tcbuf);.|
|000011d0| 09 09 2f 2a 20 66 69 6e | 64 20 77 6f 72 6b 69 6e |../* fin|d workin|
|000011e0| 67 20 64 69 72 65 63 74 | 6f 72 79 20 6e 61 6d 65 |g direct|ory name|
|000011f0| 20 2a 2f 0a 58 20 20 20 | 20 6f 72 69 67 64 69 72 | */.X | origdir|
|00001200| 20 3d 20 73 61 76 65 73 | 74 72 28 74 63 62 75 66 | = saves|tr(tcbuf|
|00001210| 29 3b 09 09 2f 2a 20 61 | 6e 64 20 72 65 6d 65 6d |);../* a|nd remem|
|00001220| 62 65 72 20 69 74 20 2a | 2f 0a 58 0a 58 20 20 20 |ber it *|/.X.X |
|00001230| 20 2f 2a 20 67 65 74 20 | 74 68 65 20 72 65 61 6c | /* get |the real|
|00001240| 20 6e 61 6d 65 20 6f 66 | 20 74 68 65 20 70 65 72 | name of| the per|
|00001250| 73 6f 6e 20 28 25 4e 29 | 20 2a 2f 0a 58 20 20 20 |son (%N)| */.X |
|00001260| 20 2f 2a 20 4d 75 73 74 | 20 62 65 20 64 6f 6e 65 | /* Must| be done|
|00001270| 20 61 66 74 65 72 20 6c | 6f 67 6e 61 6d 65 20 69 | after l|ogname i|
|00001280| 73 20 72 65 61 64 20 69 | 6e 20 62 65 63 61 75 73 |s read i|n becaus|
|00001290| 65 20 42 45 52 4b 4e 41 | 4d 45 53 20 75 73 65 73 |e BERKNA|MES uses|
|000012a0| 20 74 68 61 74 20 2a 2f | 0a 58 0a 58 20 20 20 20 | that */|.X.X |
|000012b0| 73 74 72 63 70 79 28 74 | 63 62 75 66 2c 67 65 74 |strcpy(t|cbuf,get|
|000012c0| 72 65 61 6c 6e 61 6d 65 | 28 28 6c 6f 6e 67 29 67 |realname|((long)g|
|000012d0| 65 74 75 69 64 28 29 29 | 29 3b 0a 58 20 20 20 20 |etuid())|);.X |
|000012e0| 72 65 61 6c 6e 61 6d 65 | 20 3d 20 73 61 76 65 73 |realname| = saves|
|000012f0| 74 72 28 74 63 62 75 66 | 29 3b 0a 58 0a 58 20 20 |tr(tcbuf|);.X.X |
|00001300| 20 20 2f 2a 20 6e 61 6d | 65 20 6f 66 20 68 65 61 | /* nam|e of hea|
|00001310| 64 65 72 20 66 69 6c 65 | 20 28 25 68 29 20 2a 2f |der file| (%h) */|
|00001320| 0a 58 0a 58 20 20 20 20 | 68 65 61 64 6e 61 6d 65 |.X.X |headname|
|00001330| 20 3d 20 73 61 76 65 73 | 74 72 28 66 69 6c 65 78 | = saves|tr(filex|
|00001340| 70 28 48 45 41 44 4e 41 | 4d 45 29 29 3b 0a 58 0a |p(HEADNA|ME));.X.|
|00001350| 58 20 20 20 20 2f 2a 20 | 6e 61 6d 65 20 6f 66 20 |X /* |name of |
|00001360| 74 68 69 73 20 73 69 74 | 65 20 28 25 48 29 20 2a |this sit|e (%H) *|
|00001370| 2f 0a 58 0a 58 23 69 66 | 64 65 66 20 48 4f 53 54 |/.X.X#if|def HOST|
|00001380| 46 49 4c 45 0a 58 20 20 | 20 20 69 66 20 28 28 74 |FILE.X | if ((t|
|00001390| 6d 70 66 70 20 3d 20 66 | 6f 70 65 6e 28 48 4f 53 |mpfp = f|open(HOS|
|000013a0| 54 46 49 4c 45 2c 22 72 | 22 29 29 20 3d 3d 20 4e |TFILE,"r|")) == N|
|000013b0| 55 4c 4c 29 20 7b 0a 58 | 09 68 6f 73 74 6e 61 6d |ULL) {.X|.hostnam|
|000013c0| 65 20 3d 20 22 75 6e 6b | 6e 6f 77 6e 22 3b 0a 58 |e = "unk|nown";.X|
|000013d0| 09 70 72 69 6e 74 66 28 | 22 57 61 72 6e 69 6e 67 |.printf(|"Warning|
|000013e0| 3a 20 43 6f 75 6c 64 6e | 27 74 20 6f 70 65 6e 20 |: Couldn|'t open |
|000013f0| 25 73 20 74 6f 20 64 65 | 74 65 72 6d 69 6e 65 20 |%s to de|termine |
|00001400| 68 6f 73 74 6e 61 6d 65 | 21 5c 6e 22 2c 20 48 4f |hostname|!\n", HO|
|00001410| 53 54 46 49 4c 45 29 3b | 20 0a 58 20 20 20 20 7d |STFILE);| .X }|
|00001420| 20 65 6c 73 65 20 7b 0a | 58 09 66 67 65 74 73 28 | else {.|X.fgets(|
|00001430| 62 75 66 2c 20 73 69 7a | 65 6f 66 28 62 75 66 29 |buf, siz|eof(buf)|
|00001440| 2c 20 74 6d 70 66 70 29 | 3b 0a 58 09 62 75 66 5b |, tmpfp)|;.X.buf[|
|00001450| 73 74 72 6c 65 6e 28 62 | 75 66 29 2d 31 5d 20 3d |strlen(b|uf)-1] =|
|00001460| 20 30 3b 0a 58 09 68 6f | 73 74 6e 61 6d 65 20 3d | 0;.X.ho|stname =|
|00001470| 20 73 61 76 65 73 74 72 | 28 62 75 66 29 3b 0a 58 | savestr|(buf);.X|
|00001480| 09 66 63 6c 6f 73 65 28 | 74 6d 70 66 70 29 3b 0a |.fclose(|tmpfp);.|
|00001490| 58 20 20 20 20 7d 0a 58 | 23 65 6c 73 65 0a 58 23 |X }.X|#else.X#|
|000014a0| 69 66 64 65 66 20 47 45 | 54 48 4f 53 54 4e 41 4d |ifdef GE|THOSTNAM|
|000014b0| 45 0a 58 20 20 20 20 67 | 65 74 68 6f 73 74 6e 61 |E.X g|ethostna|
|000014c0| 6d 65 28 62 75 66 2c 73 | 69 7a 65 6f 66 20 62 75 |me(buf,s|izeof bu|
|000014d0| 66 29 3b 0a 58 20 20 20 | 20 68 6f 73 74 6e 61 6d |f);.X | hostnam|
|000014e0| 65 20 3d 20 73 61 76 65 | 73 74 72 28 62 75 66 29 |e = save|str(buf)|
|000014f0| 3b 0a 58 23 65 6c 73 65 | 0a 58 23 69 66 64 65 66 |;.X#else|.X#ifdef|
|00001500| 20 44 4f 55 4e 41 4d 45 | 0a 58 20 20 20 20 2f 2a | DOUNAME|.X /*|
|00001510| 20 67 65 74 20 73 79 73 | 6e 61 6d 65 20 2a 2f 0a | get sys|name */.|
|00001520| 58 20 20 20 20 75 6e 61 | 6d 65 28 26 75 74 73 6e |X una|me(&utsn|
|00001530| 29 3b 0a 58 23 65 6c 73 | 65 0a 58 23 69 66 64 65 |);.X#els|e.X#ifde|
|00001540| 66 20 50 48 4f 53 54 4e | 41 4d 45 0a 58 20 20 20 |f PHOSTN|AME.X |
|00001550| 20 7b 0a 58 09 46 49 4c | 45 20 2a 70 6f 70 65 6e | {.X.FIL|E *popen|
|00001560| 28 29 3b 0a 58 09 46 49 | 4c 45 20 2a 70 69 70 65 |();.X.FI|LE *pipe|
|00001570| 66 70 20 3d 20 70 6f 70 | 65 6e 28 50 48 4f 53 54 |fp = pop|en(PHOST|
|00001580| 4e 41 4d 45 2c 22 72 22 | 29 3b 0a 58 09 0a 58 09 |NAME,"r"|);.X..X.|
|00001590| 69 66 20 28 70 69 70 65 | 66 70 20 3d 3d 20 4e 75 |if (pipe|fp == Nu|
|000015a0| 6c 6c 66 70 29 20 7b 0a | 58 09 20 20 20 20 70 72 |llfp) {.|X. pr|
|000015b0| 69 6e 74 66 28 22 43 61 | 6e 27 74 20 66 69 6e 64 |intf("Ca|n't find|
|000015c0| 20 68 6f 73 74 6e 61 6d | 65 5c 6e 22 29 3b 0a 58 | hostnam|e\n");.X|
|000015d0| 09 20 20 20 20 73 69 67 | 5f 63 61 74 63 68 65 72 |. sig|_catcher|
|000015e0| 28 30 29 3b 0a 58 09 7d | 0a 58 09 66 67 65 74 73 |(0);.X.}|.X.fgets|
|000015f0| 28 62 75 66 2c 73 69 7a | 65 6f 66 20 62 75 66 2c |(buf,siz|eof buf,|
|00001600| 70 69 70 65 66 70 29 3b | 0a 58 09 62 75 66 5b 73 |pipefp);|.X.buf[s|
|00001610| 74 72 6c 65 6e 28 62 75 | 66 29 2d 31 5d 20 3d 20 |trlen(bu|f)-1] = |
|00001620| 27 5c 30 27 3b 09 2f 2a | 20 77 69 70 65 20 6f 75 |'\0';./*| wipe ou|
|00001630| 74 20 6e 65 77 6c 69 6e | 65 20 2a 2f 0a 58 09 68 |t newlin|e */.X.h|
|00001640| 6f 73 74 6e 61 6d 65 20 | 3d 20 73 61 76 65 73 74 |ostname |= savest|
|00001650| 72 28 62 75 66 29 3b 0a | 58 09 70 63 6c 6f 73 65 |r(buf);.|X.pclose|
|00001660| 28 70 69 70 65 66 70 29 | 3b 0a 58 20 20 20 20 7d |(pipefp)|;.X }|
|00001670| 0a 58 23 65 6e 64 69 66 | 09 2f 2a 20 50 48 4f 53 |.X#endif|./* PHOS|
|00001680| 54 4e 41 4d 45 20 2a 2f | 0a 58 23 65 6e 64 69 66 |TNAME */|.X#endif|
|00001690| 09 2f 2a 20 44 4f 55 4e | 41 4d 45 20 2a 2f 0a 58 |./* DOUN|AME */.X|
|000016a0| 23 65 6e 64 69 66 09 2f | 2a 20 47 45 54 48 4f 53 |#endif./|* GETHOS|
|000016b0| 54 4e 41 4d 45 20 2a 2f | 0a 58 23 65 6e 64 69 66 |TNAME */|.X#endif|
|000016c0| 09 2f 2a 20 48 4f 53 54 | 46 49 4c 45 20 2a 2f 0a |./* HOST|FILE */.|
|000016d0| 58 20 20 20 20 69 66 20 | 28 69 6e 64 65 78 28 53 |X if |(index(S|
|000016e0| 49 54 45 4e 41 4d 45 2c | 27 2e 27 29 20 3d 3d 20 |ITENAME,|'.') == |
|000016f0| 4e 55 4c 4c 29 20 7b 0a | 58 09 73 70 72 69 6e 74 |NULL) {.|X.sprint|
|00001700| 66 28 62 75 66 2c 20 22 | 25 73 2e 25 73 22 2c 20 |f(buf, "|%s.%s", |
|00001710| 53 49 54 45 4e 41 4d 45 | 2c 20 4f 55 52 44 4f 4d |SITENAME|, OURDOM|
|00001720| 41 49 4e 29 3b 0a 58 09 | 73 69 74 65 6e 61 6d 65 |AIN);.X.|sitename|
|00001730| 20 3d 20 73 61 76 65 73 | 74 72 28 62 75 66 29 3b | = saves|tr(buf);|
|00001740| 0a 58 20 20 20 20 7d 20 | 65 6c 73 65 0a 58 09 73 |.X } |else.X.s|
|00001750| 69 74 65 6e 61 6d 65 20 | 3d 20 73 61 76 65 73 74 |itename |= savest|
|00001760| 72 28 53 49 54 45 4e 41 | 4d 45 29 3b 0a 58 7d 0a |r(SITENA|ME);.X}.|
|00001770| 58 0a 58 2f 2a 20 65 78 | 70 61 6e 64 20 66 69 6c |X.X/* ex|pand fil|
|00001780| 65 6e 61 6d 65 20 76 69 | 61 20 25 2c 20 7e 2c 20 |ename vi|a %, ~, |
|00001790| 61 6e 64 20 24 20 69 6e | 74 65 72 70 72 65 74 61 |and $ in|terpreta|
|000017a0| 74 69 6f 6e 20 2a 2f 0a | 58 2f 2a 20 72 65 74 75 |tion */.|X/* retu|
|000017b0| 72 6e 73 20 70 6f 69 6e | 74 65 72 20 74 6f 20 73 |rns poin|ter to s|
|000017c0| 74 61 74 69 63 20 61 72 | 65 61 20 2a 2f 0a 58 2f |tatic ar|ea */.X/|
|000017d0| 2a 20 4e 6f 74 65 20 74 | 68 61 74 20 74 68 65 72 |* Note t|hat ther|
|000017e0| 65 20 69 73 20 61 20 31 | 2d 64 65 65 70 20 63 61 |e is a 1|-deep ca|
|000017f0| 63 68 65 20 6f 66 20 7e | 6e 61 6d 65 20 69 6e 74 |che of ~|name int|
|00001800| 65 72 70 72 65 74 61 74 | 69 6f 6e 20 2a 2f 0a 58 |erpretat|ion */.X|
|00001810| 0a 63 68 61 72 20 2a 0a | 66 69 6c 65 78 70 28 73 |.char *.|filexp(s|
|00001820| 29 0a 72 65 67 69 73 74 | 65 72 20 63 68 61 72 20 |).regist|er char |
|00001830| 2a 73 3b 0a 58 7b 0a 58 | 20 20 20 20 73 74 61 74 |*s;.X{.X| stat|
|00001840| 69 63 20 63 68 61 72 20 | 66 69 6c 65 6e 61 6d 65 |ic char |filename|
|00001850| 5b 43 42 55 46 4c 45 4e | 5d 3b 0a 58 20 20 20 20 |[CBUFLEN|];.X |
|00001860| 63 68 61 72 20 73 63 72 | 62 75 66 5b 43 42 55 46 |char scr|buf[CBUF|
|00001870| 4c 45 4e 5d 3b 0a 58 20 | 20 20 20 72 65 67 69 73 |LEN];.X | regis|
|00001880| 74 65 72 20 63 68 61 72 | 20 2a 64 3b 0a 58 0a 58 |ter char| *d;.X.X|
|00001890| 23 69 66 64 65 66 20 44 | 45 42 55 47 47 49 4e 47 |#ifdef D|EBUGGING|
|000018a0| 0a 58 20 20 20 20 69 66 | 20 28 64 65 62 75 67 20 |.X if| (debug |
|000018b0| 26 20 44 45 42 5f 46 49 | 4c 45 58 50 29 0a 58 09 |& DEB_FI|LEXP).X.|
|000018c0| 70 72 69 6e 74 66 28 22 | 3c 20 25 73 5c 6e 22 2c |printf("|< %s\n",|
|000018d0| 73 29 20 46 4c 55 53 48 | 3b 0a 58 23 65 6e 64 69 |s) FLUSH|;.X#endi|
|000018e0| 66 0a 58 20 20 20 20 69 | 6e 74 65 72 70 28 66 69 |f.X i|nterp(fi|
|000018f0| 6c 65 6e 61 6d 65 2c 20 | 28 73 69 7a 65 6f 66 20 |lename, |(sizeof |
|00001900| 66 69 6c 65 6e 61 6d 65 | 29 2c 20 73 29 3b 09 0a |filename|), s);..|
|00001910| 58 09 09 09 09 09 2f 2a | 20 69 6e 74 65 72 70 72 |X...../*| interpr|
|00001920| 65 74 20 61 6e 79 20 25 | 20 65 73 63 61 70 65 73 |et any %| escapes|
|00001930| 20 2a 2f 0a 58 23 69 66 | 64 65 66 20 44 45 42 55 | */.X#if|def DEBU|
|00001940| 47 47 49 4e 47 0a 58 20 | 20 20 20 69 66 20 28 64 |GGING.X | if (d|
|00001950| 65 62 75 67 20 26 20 44 | 45 42 5f 46 49 4c 45 58 |ebug & D|EB_FILEX|
|00001960| 50 29 0a 58 09 70 72 69 | 6e 74 66 28 22 25 25 20 |P).X.pri|ntf("%% |
|00001970| 25 73 5c 6e 22 2c 66 69 | 6c 65 6e 61 6d 65 29 20 |%s\n",fi|lename) |
|00001980| 46 4c 55 53 48 3b 0a 58 | 23 65 6e 64 69 66 0a 58 |FLUSH;.X|#endif.X|
|00001990| 20 20 20 20 73 20 3d 20 | 66 69 6c 65 6e 61 6d 65 | s = |filename|
|000019a0| 3b 0a 58 20 20 20 20 69 | 66 20 28 2a 73 20 3d 3d |;.X i|f (*s ==|
|000019b0| 20 27 7e 27 29 20 7b 09 | 2f 2a 20 64 6f 65 73 20 | '~') {.|/* does |
|000019c0| 64 65 73 74 69 6e 61 74 | 69 6f 6e 20 73 74 61 72 |destinat|ion star|
|000019d0| 74 20 77 69 74 68 20 7e | 3f 20 2a 2f 0a 58 09 69 |t with ~|? */.X.i|
|000019e0| 66 20 28 21 2a 28 2b 2b | 73 29 20 7c 7c 20 2a 73 |f (!*(++|s) || *s|
|000019f0| 20 3d 3d 20 27 2f 27 29 | 20 7b 0a 58 09 20 20 20 | == '/')| {.X. |
|00001a00| 20 73 70 72 69 6e 74 66 | 28 73 63 72 62 75 66 2c | sprintf|(scrbuf,|
|00001a10| 22 25 73 25 73 22 2c 68 | 6f 6d 65 64 69 72 2c 73 |"%s%s",h|omedir,s|
|00001a20| 29 3b 0a 58 09 09 09 09 | 2f 2a 20 73 77 61 70 20 |);.X....|/* swap |
|00001a30| 24 48 4f 4d 45 20 66 6f | 72 20 69 74 20 2a 2f 0a |$HOME fo|r it */.|
|00001a40| 58 23 69 66 64 65 66 20 | 44 45 42 55 47 47 49 4e |X#ifdef |DEBUGGIN|
|00001a50| 47 0a 58 20 20 20 20 69 | 66 20 28 64 65 62 75 67 |G.X i|f (debug|
|00001a60| 20 26 20 44 45 42 5f 46 | 49 4c 45 58 50 29 0a 58 | & DEB_F|ILEXP).X|
|00001a70| 09 70 72 69 6e 74 66 28 | 22 7e 20 25 73 5c 6e 22 |.printf(|"~ %s\n"|
|00001a80| 2c 73 63 72 62 75 66 29 | 20 46 4c 55 53 48 3b 0a |,scrbuf)| FLUSH;.|
|00001a90| 58 23 65 6e 64 69 66 0a | 58 09 20 20 20 20 73 74 |X#endif.|X. st|
|00001aa0| 72 63 70 79 28 66 69 6c | 65 6e 61 6d 65 2c 73 63 |rcpy(fil|ename,sc|
|00001ab0| 72 62 75 66 29 3b 0a 58 | 09 7d 0a 58 09 65 6c 73 |rbuf);.X|.}.X.els|
|00001ac0| 65 20 7b 0a 58 23 69 66 | 64 65 66 20 54 49 4c 44 |e {.X#if|def TILD|
|00001ad0| 45 4e 41 4d 45 0a 58 09 | 20 20 20 20 66 6f 72 20 |ENAME.X.| for |
|00001ae0| 28 64 3d 73 63 72 62 75 | 66 3b 20 69 73 61 6c 6e |(d=scrbu|f; isaln|
|00001af0| 75 6d 28 2a 73 29 3b 20 | 73 2b 2b 2c 64 2b 2b 29 |um(*s); |s++,d++)|
|00001b00| 0a 58 09 09 2a 64 20 3d | 20 2a 73 3b 0a 58 09 20 |.X..*d =| *s;.X. |
|00001b10| 20 20 20 2a 64 20 3d 20 | 27 5c 30 27 3b 0a 58 09 | *d = |'\0';.X.|
|00001b20| 20 20 20 20 69 66 20 28 | 74 69 6c 64 65 64 69 72 | if (|tildedir|
|00001b30| 20 26 26 20 73 74 72 45 | 51 28 74 69 6c 64 65 6e | && strE|Q(tilden|
|00001b40| 61 6d 65 2c 73 63 72 62 | 75 66 29 29 20 7b 0a 58 |ame,scrb|uf)) {.X|
|00001b50| 09 09 73 74 72 63 70 79 | 28 73 63 72 62 75 66 2c |..strcpy|(scrbuf,|
|00001b60| 74 69 6c 64 65 64 69 72 | 29 3b 0a 58 09 09 73 74 |tildedir|);.X..st|
|00001b70| 72 63 61 74 28 73 63 72 | 62 75 66 2c 20 73 29 3b |rcat(scr|buf, s);|
|00001b80| 0a 58 09 09 73 74 72 63 | 70 79 28 66 69 6c 65 6e |.X..strc|py(filen|
|00001b90| 61 6d 65 2c 20 73 63 72 | 62 75 66 29 3b 0a 58 23 |ame, scr|buf);.X#|
|00001ba0| 69 66 64 65 66 20 44 45 | 42 55 47 47 49 4e 47 0a |ifdef DE|BUGGING.|
|00001bb0| 58 09 09 69 66 20 28 64 | 65 62 75 67 20 26 20 44 |X..if (d|ebug & D|
|00001bc0| 45 42 5f 46 49 4c 45 58 | 50 29 0a 58 09 09 20 20 |EB_FILEX|P).X.. |
|00001bd0| 20 20 70 72 69 6e 74 66 | 28 22 72 20 25 73 20 25 | printf|("r %s %|
|00001be0| 73 5c 6e 22 2c 74 69 6c | 64 65 6e 61 6d 65 2c 74 |s\n",til|dename,t|
|00001bf0| 69 6c 64 65 64 69 72 29 | 20 46 4c 55 53 48 3b 0a |ildedir)| FLUSH;.|
|00001c00| 58 23 65 6e 64 69 66 0a | 58 09 20 20 20 20 7d 0a |X#endif.|X. }.|
|00001c10| 58 09 20 20 20 20 65 6c | 73 65 20 7b 0a 58 09 09 |X. el|se {.X..|
|00001c20| 69 66 20 28 74 69 6c 64 | 65 6e 61 6d 65 29 20 7b |if (tild|ename) {|
|00001c30| 0a 58 09 09 20 20 20 20 | 66 72 65 65 28 74 69 6c |.X.. |free(til|
|00001c40| 64 65 6e 61 6d 65 29 3b | 0a 58 09 09 20 20 20 20 |dename);|.X.. |
|00001c50| 66 72 65 65 28 74 69 6c | 64 65 64 69 72 29 3b 0a |free(til|dedir);.|
|00001c60| 58 09 09 7d 0a 58 09 09 | 74 69 6c 64 65 64 69 72 |X..}.X..|tildedir|
|00001c70| 20 3d 20 4e 75 6c 6c 63 | 68 3b 0a 58 09 09 74 69 | = Nullc|h;.X..ti|
|00001c80| 6c 64 65 6e 61 6d 65 20 | 3d 20 73 61 76 65 73 74 |ldename |= savest|
|00001c90| 72 28 73 63 72 62 75 66 | 29 3b 0a 58 23 69 66 64 |r(scrbuf|);.X#ifd|
|00001ca0| 65 66 20 47 45 54 50 57 | 45 4e 54 09 09 2f 2a 20 |ef GETPW|ENT../* |
|00001cb0| 67 65 74 70 77 6e 61 6d | 28 29 20 69 73 20 6e 6f |getpwnam|() is no|
|00001cc0| 74 20 74 68 65 20 70 61 | 72 61 67 6f 6e 20 6f 66 |t the pa|ragon of|
|00001cd0| 20 65 66 66 69 63 69 65 | 6e 63 79 20 2a 2f 0a 58 | efficie|ncy */.X|
|00001ce0| 09 09 7b 0a 58 23 69 66 | 64 65 66 20 6e 6f 74 64 |..{.X#if|def notd|
|00001cf0| 65 66 0a 58 09 09 20 20 | 20 20 73 74 72 75 63 74 |ef.X.. | struct|
|00001d00| 20 70 61 73 73 77 64 20 | 2a 67 65 74 70 77 6e 61 | passwd |*getpwna|
|00001d10| 6d 20 41 4e 53 49 28 28 | 63 68 61 72 2a 29 29 3b |m ANSI((|char*));|
|00001d20| 0a 58 23 65 6e 64 69 66 | 0a 58 09 09 20 20 20 20 |.X#endif|.X.. |
|00001d30| 73 74 72 75 63 74 20 70 | 61 73 73 77 64 20 2a 70 |struct p|asswd *p|
|00001d40| 77 64 20 3d 20 67 65 74 | 70 77 6e 61 6d 28 74 69 |wd = get|pwnam(ti|
|00001d50| 6c 64 65 6e 61 6d 65 29 | 3b 0a 58 09 09 20 20 20 |ldename)|;.X.. |
|00001d60| 20 69 66 20 28 20 70 77 | 64 20 3d 3d 20 4e 55 4c | if ( pw|d == NUL|
|00001d70| 4c 29 7b 0a 58 09 09 09 | 70 72 69 6e 74 66 28 22 |L){.X...|printf("|
|00001d80| 25 73 20 69 73 20 61 6e | 20 75 6e 6b 6e 6f 77 6e |%s is an| unknown|
|00001d90| 20 75 73 65 72 2e 20 55 | 73 69 6e 67 20 64 65 66 | user. U|sing def|
|00001da0| 61 75 6c 74 2e 5c 6e 22 | 2c 74 69 6c 64 65 6e 61 |ault.\n"|,tildena|
|00001db0| 6d 65 29 20 46 4c 55 53 | 48 3b 0a 58 09 09 09 72 |me) FLUS|H;.X...r|
|00001dc0| 65 74 75 72 6e 28 4e 75 | 6c 6c 63 68 29 3b 0a 58 |eturn(Nu|llch);.X|
|00001dd0| 09 09 20 20 20 20 7d 0a | 58 09 09 20 20 20 20 73 |.. }.|X.. s|
|00001de0| 70 72 69 6e 74 66 28 73 | 63 72 62 75 66 2c 22 25 |printf(s|crbuf,"%|
|00001df0| 73 25 73 22 2c 70 77 64 | 2d 3e 70 77 5f 64 69 72 |s%s",pwd|->pw_dir|
|00001e00| 2c 73 29 3b 0a 58 09 09 | 20 20 20 20 74 69 6c 64 |,s);.X..| tild|
|00001e10| 65 64 69 72 20 3d 20 73 | 61 76 65 73 74 72 28 70 |edir = s|avestr(p|
|00001e20| 77 64 2d 3e 70 77 5f 64 | 69 72 29 3b 0a 58 09 09 |wd->pw_d|ir);.X..|
|00001e30| 20 20 20 20 73 74 72 63 | 70 79 28 66 69 6c 65 6e | strc|py(filen|
|00001e40| 61 6d 65 2c 73 63 72 62 | 75 66 29 3b 0a 58 09 09 |ame,scrb|uf);.X..|
|00001e50| 20 20 20 20 65 6e 64 70 | 77 65 6e 74 28 29 3b 0a | endp|went();.|
|00001e60| 58 09 09 7d 0a 58 23 65 | 6c 73 65 09 09 09 2f 2a |X..}.X#e|lse.../*|
|00001e70| 20 74 68 69 73 20 77 69 | 6c 6c 20 72 75 6e 20 66 | this wi|ll run f|
|00001e80| 61 73 74 65 72 2c 20 61 | 6e 64 20 69 73 20 6c 65 |aster, a|nd is le|
|00001e90| 73 73 20 44 20 73 70 61 | 63 65 20 2a 2f 0a 58 09 |ss D spa|ce */.X.|
|00001ea0| 09 7b 09 2f 2a 20 6a 75 | 73 74 20 62 65 20 73 75 |.{./* ju|st be su|
|00001eb0| 72 65 20 4c 4f 47 44 49 | 52 46 49 45 4c 44 20 69 |re LOGDI|RFIELD i|
|00001ec0| 73 20 63 6f 72 72 65 63 | 74 20 2a 2f 0a 58 09 09 |s correc|t */.X..|
|00001ed0| 20 20 20 20 46 49 4c 45 | 20 2a 70 66 70 20 3d 20 | FILE| *pfp = |
|00001ee0| 66 6f 70 65 6e 28 22 2f | 65 74 63 2f 70 61 73 73 |fopen("/|etc/pass|
|00001ef0| 77 64 22 2c 22 72 22 29 | 3b 0a 58 09 09 20 20 20 |wd","r")|;.X.. |
|00001f00| 20 63 68 61 72 20 74 6d | 70 62 75 66 5b 35 31 32 | char tm|pbuf[512|
|00001f10| 5d 3b 0a 58 09 09 20 20 | 20 20 69 6e 74 20 69 3b |];.X.. | int i;|
|00001f20| 0a 58 09 09 20 20 20 20 | 0a 58 09 09 20 20 20 20 |.X.. |.X.. |
|00001f30| 69 66 20 28 70 66 70 20 | 3d 3d 20 4e 75 6c 6c 66 |if (pfp |== Nullf|
|00001f40| 70 29 20 7b 0a 58 09 09 | 09 70 72 69 6e 74 66 28 |p) {.X..|.printf(|
|00001f50| 63 61 6e 74 6f 70 65 6e | 2c 22 70 61 73 73 77 64 |cantopen|,"passwd|
|00001f60| 22 29 20 46 4c 55 53 48 | 3b 0a 58 09 09 09 73 69 |") FLUSH|;.X...si|
|00001f70| 67 5f 63 61 74 63 68 65 | 72 28 30 29 3b 0a 58 09 |g_catche|r(0);.X.|
|00001f80| 09 20 20 20 20 7d 0a 58 | 09 09 20 20 20 20 77 68 |. }.X|.. wh|
|00001f90| 69 6c 65 20 28 66 67 65 | 74 73 28 74 6d 70 62 75 |ile (fge|ts(tmpbu|
|00001fa0| 66 2c 35 31 32 2c 70 66 | 70 29 20 21 3d 20 4e 75 |f,512,pf|p) != Nu|
|00001fb0| 6c 6c 63 68 29 20 7b 0a | 58 09 09 09 64 20 3d 20 |llch) {.|X...d = |
|00001fc0| 63 70 79 74 69 6c 6c 28 | 73 63 72 62 75 66 2c 74 |cpytill(|scrbuf,t|
|00001fd0| 6d 70 62 75 66 2c 27 3a | 27 29 3b 0a 58 23 69 66 |mpbuf,':|');.X#if|
|00001fe0| 64 65 66 20 44 45 42 55 | 47 47 49 4e 47 0a 58 09 |def DEBU|GGING.X.|
|00001ff0| 09 09 69 66 20 28 64 65 | 62 75 67 20 26 20 44 45 |..if (de|bug & DE|
|00002000| 42 5f 46 49 4c 45 58 50 | 29 0a 58 09 09 09 20 20 |B_FILEXP|).X... |
|00002010| 20 20 70 72 69 6e 74 66 | 28 22 70 20 25 73 5c 6e | printf|("p %s\n|
|00002020| 22 2c 74 6d 70 62 75 66 | 29 20 46 4c 55 53 48 3b |",tmpbuf|) FLUSH;|
|00002030| 0a 58 23 65 6e 64 69 66 | 0a 58 09 09 09 69 66 20 |.X#endif|.X...if |
|00002040| 28 73 74 72 45 51 28 73 | 63 72 62 75 66 2c 74 69 |(strEQ(s|crbuf,ti|
|00002050| 6c 64 65 6e 61 6d 65 29 | 29 20 7b 0a 58 09 09 09 |ldename)|) {.X...|
|00002060| 20 20 20 20 66 6f 72 20 | 28 69 3d 4c 4f 47 44 49 | for |(i=LOGDI|
|00002070| 52 46 49 45 4c 44 2d 32 | 3b 20 69 3b 20 69 2d 2d |RFIELD-2|; i; i--|
|00002080| 29 20 7b 0a 58 09 09 09 | 09 69 66 20 28 64 29 0a |) {.X...|.if (d).|
|00002090| 58 09 09 09 09 20 20 20 | 20 64 20 3d 20 69 6e 64 |X.... | d = ind|
|000020a0| 65 78 28 64 2b 31 2c 27 | 3a 27 29 3b 0a 58 09 09 |ex(d+1,'|:');.X..|
|000020b0| 09 20 20 20 20 7d 0a 58 | 09 09 09 20 20 20 20 69 |. }.X|... i|
|000020c0| 66 20 28 64 29 20 7b 0a | 58 09 09 09 09 63 70 79 |f (d) {.|X....cpy|
|000020d0| 74 69 6c 6c 28 73 63 72 | 62 75 66 2c 64 2b 31 2c |till(scr|buf,d+1,|
|000020e0| 27 3a 27 29 3b 0a 58 09 | 09 09 09 74 69 6c 64 65 |':');.X.|...tilde|
|000020f0| 64 69 72 20 3d 20 73 61 | 76 65 73 74 72 28 73 63 |dir = sa|vestr(sc|
|00002100| 72 62 75 66 29 3b 0a 58 | 09 09 09 09 73 74 72 63 |rbuf);.X|....strc|
|00002110| 61 74 28 73 63 72 62 75 | 66 2c 73 29 3b 0a 58 09 |at(scrbu|f,s);.X.|
|00002120| 09 09 09 73 74 72 63 70 | 79 28 66 69 6c 65 6e 61 |...strcp|y(filena|
|00002130| 6d 65 2c 73 63 72 62 75 | 66 29 3b 0a 58 09 09 09 |me,scrbu|f);.X...|
|00002140| 20 20 20 20 7d 0a 58 09 | 09 09 20 20 20 20 62 72 | }.X.|.. br|
|00002150| 65 61 6b 3b 0a 58 09 09 | 09 7d 0a 58 09 09 20 20 |eak;.X..|.}.X.. |
|00002160| 20 20 7d 0a 58 09 09 20 | 20 20 20 66 63 6c 6f 73 | }.X.. | fclos|
|00002170| 65 28 70 66 70 29 3b 0a | 58 09 09 7d 0a 58 23 65 |e(pfp);.|X..}.X#e|
|00002180| 6e 64 69 66 0a 58 09 20 | 20 20 20 7d 0a 58 23 65 |ndif.X. | }.X#e|
|00002190| 6c 73 65 20 2f 2a 20 21 | 54 49 4c 44 45 4e 41 4d |lse /* !|TILDENAM|
|000021a0| 45 20 2a 2f 0a 58 23 69 | 66 64 65 66 20 56 45 52 |E */.X#i|fdef VER|
|000021b0| 42 4f 53 45 0a 58 09 20 | 20 20 20 49 46 28 76 65 |BOSE.X. | IF(ve|
|000021c0| 72 62 6f 73 65 29 0a 58 | 09 09 66 70 75 74 73 28 |rbose).X|..fputs(|
|000021d0| 22 7e 6c 6f 67 69 6e 6e | 61 6d 65 20 6e 6f 74 20 |"~loginn|ame not |
|000021e0| 69 6d 70 6c 65 6d 65 6e | 74 65 64 2e 5c 6e 22 2c |implemen|ted.\n",|
|000021f0| 73 74 64 6f 75 74 29 20 | 46 4c 55 53 48 3b 0a 58 |stdout) |FLUSH;.X|
|00002200| 09 20 20 20 20 45 4c 53 | 45 0a 58 23 65 6e 64 69 |. ELS|E.X#endi|
|00002210| 66 0a 58 23 69 66 64 65 | 66 20 54 45 52 53 45 0a |f.X#ifde|f TERSE.|
|00002220| 58 09 09 66 70 75 74 73 | 28 22 7e 6c 6f 67 69 6e |X..fputs|("~login|
|00002230| 20 6e 6f 74 20 69 6d 70 | 6c 2e 5c 6e 22 2c 73 74 | not imp|l.\n",st|
|00002240| 64 6f 75 74 29 20 46 4c | 55 53 48 3b 0a 58 23 65 |dout) FL|USH;.X#e|
|00002250| 6e 64 69 66 0a 58 23 65 | 6e 64 69 66 0a 58 09 7d |ndif.X#e|ndif.X.}|
|00002260| 0a 58 20 20 20 20 7d 0a | 58 20 20 20 20 65 6c 73 |.X }.|X els|
|00002270| 65 20 69 66 20 28 2a 73 | 20 3d 3d 20 27 24 27 29 |e if (*s| == '$')|
|00002280| 20 7b 09 2f 2a 20 73 74 | 61 72 74 73 20 77 69 74 | {./* st|arts wit|
|00002290| 68 20 73 6f 6d 65 20 65 | 6e 76 20 76 61 72 69 61 |h some e|nv varia|
|000022a0| 62 6c 65 3f 20 2a 2f 0a | 58 09 64 20 3d 20 73 63 |ble? */.|X.d = sc|
|000022b0| 72 62 75 66 3b 0a 58 09 | 2a 64 2b 2b 20 3d 20 27 |rbuf;.X.|*d++ = '|
|000022c0| 25 27 3b 0a 58 09 69 66 | 20 28 73 5b 31 5d 20 3d |%';.X.if| (s[1] =|
|000022d0| 3d 20 27 7b 27 29 0a 58 | 09 20 20 20 20 73 74 72 |= '{').X|. str|
|000022e0| 63 70 79 28 64 2c 73 2b | 32 29 3b 0a 58 09 65 6c |cpy(d,s+|2);.X.el|
|000022f0| 73 65 20 7b 0a 58 09 20 | 20 20 20 2a 64 2b 2b 20 |se {.X. | *d++ |
|00002300| 3d 20 27 7b 27 3b 0a 58 | 09 20 20 20 20 66 6f 72 |= '{';.X|. for|
|00002310| 20 28 73 2b 2b 3b 20 69 | 73 61 6c 6e 75 6d 28 2a | (s++; i|salnum(*|
|00002320| 73 29 3b 20 73 2b 2b 29 | 20 2a 64 2b 2b 20 3d 20 |s); s++)| *d++ = |
|00002330| 2a 73 3b 0a 58 09 09 09 | 09 2f 2a 20 73 6b 69 70 |*s;.X...|./* skip|
|00002340| 20 6f 76 65 72 20 74 6f | 6b 65 6e 20 2a 2f 0a 58 | over to|ken */.X|
|00002350| 09 20 20 20 20 2a 64 2b | 2b 20 3d 20 27 7d 27 3b |. *d+|+ = '}';|
|00002360| 0a 58 09 20 20 20 20 73 | 74 72 63 70 79 28 64 2c |.X. s|trcpy(d,|
|00002370| 73 29 3b 0a 58 09 7d 0a | 58 23 69 66 64 65 66 20 |s);.X.}.|X#ifdef |
|00002380| 44 45 42 55 47 47 49 4e | 47 0a 58 09 69 66 20 28 |DEBUGGIN|G.X.if (|
|00002390| 64 65 62 75 67 20 26 20 | 44 45 42 5f 46 49 4c 45 |debug & |DEB_FILE|
|000023a0| 58 50 29 0a 58 09 20 20 | 20 20 70 72 69 6e 74 66 |XP).X. | printf|
|000023b0| 28 22 24 20 25 73 5c 6e | 22 2c 73 63 72 62 75 66 |("$ %s\n|",scrbuf|
|000023c0| 29 20 46 4c 55 53 48 3b | 0a 58 23 65 6e 64 69 66 |) FLUSH;|.X#endif|
|000023d0| 0a 58 09 69 6e 74 65 72 | 70 28 66 69 6c 65 6e 61 |.X.inter|p(filena|
|000023e0| 6d 65 2c 20 28 73 69 7a | 65 6f 66 20 66 69 6c 65 |me, (siz|eof file|
|000023f0| 6e 61 6d 65 29 2c 20 73 | 63 72 62 75 66 29 3b 0a |name), s|crbuf);.|
|00002400| 58 09 09 09 09 09 2f 2a | 20 74 68 69 73 20 6d 69 |X...../*| this mi|
|00002410| 67 68 74 20 64 6f 20 73 | 6f 6d 65 20 65 78 74 72 |ght do s|ome extr|
|00002420| 61 20 27 25 27 73 20 62 | 75 74 20 2a 2f 0a 58 09 |a '%'s b|ut */.X.|
|00002430| 09 09 09 09 2f 2a 20 74 | 68 61 74 20 69 73 20 68 |..../* t|hat is h|
|00002440| 6f 77 20 74 68 65 20 4d | 65 72 63 65 64 65 73 20 |ow the M|ercedes |
|00002450| 42 65 6e 7a 20 2a 2f 0a | 58 20 20 20 20 7d 0a 58 |Benz */.|X }.X|
|00002460| 23 69 66 64 65 66 20 44 | 45 42 55 47 47 49 4e 47 |#ifdef D|EBUGGING|
|00002470| 0a 58 20 20 20 20 69 66 | 20 28 64 65 62 75 67 20 |.X if| (debug |
|00002480| 26 20 44 45 42 5f 46 49 | 4c 45 58 50 29 0a 58 09 |& DEB_FI|LEXP).X.|
|00002490| 70 72 69 6e 74 66 28 22 | 3e 20 25 73 5c 6e 22 2c |printf("|> %s\n",|
|000024a0| 66 69 6c 65 6e 61 6d 65 | 29 20 46 4c 55 53 48 3b |filename|) FLUSH;|
|000024b0| 0a 58 23 65 6e 64 69 66 | 0a 58 20 20 20 20 72 65 |.X#endif|.X re|
|000024c0| 74 75 72 6e 20 66 69 6c | 65 6e 61 6d 65 3b 0a 58 |turn fil|ename;.X|
|000024d0| 7d 0a 58 0a 58 23 69 66 | 64 65 66 20 43 4f 4e 44 |}.X.X#if|def COND|
|000024e0| 53 55 42 0a 58 2f 2a 20 | 73 6b 69 70 20 69 6e 74 |SUB.X/* |skip int|
|000024f0| 65 72 70 6f 6c 61 74 69 | 6f 6e 73 20 2a 2f 0a 58 |erpolati|ons */.X|
|00002500| 0a 63 68 61 72 20 2a 0a | 73 6b 69 70 69 6e 74 65 |.char *.|skipinte|
|00002510| 72 70 28 70 61 74 74 65 | 72 6e 2c 73 74 6f 70 70 |rp(patte|rn,stopp|
|00002520| 65 72 73 29 0a 72 65 67 | 69 73 74 65 72 20 63 68 |ers).reg|ister ch|
|00002530| 61 72 20 2a 70 61 74 74 | 65 72 6e 3b 0a 63 68 61 |ar *patt|ern;.cha|
|00002540| 72 20 2a 73 74 6f 70 70 | 65 72 73 3b 0a 58 7b 0a |r *stopp|ers;.X{.|
|00002550| 58 0a 58 20 20 20 20 77 | 68 69 6c 65 20 28 2a 70 |X.X w|hile (*p|
|00002560| 61 74 74 65 72 6e 20 26 | 26 20 28 21 73 74 6f 70 |attern &|& (!stop|
|00002570| 70 65 72 73 20 7c 7c 20 | 21 69 6e 64 65 78 28 73 |pers || |!index(s|
|00002580| 74 6f 70 70 65 72 73 2c | 2a 70 61 74 74 65 72 6e |toppers,|*pattern|
|00002590| 29 29 29 20 7b 0a 58 23 | 69 66 64 65 66 20 44 45 |))) {.X#|ifdef DE|
|000025a0| 42 55 47 47 49 4e 47 0a | 58 09 69 66 20 28 64 65 |BUGGING.|X.if (de|
|000025b0| 62 75 67 20 26 20 38 29 | 0a 58 09 20 20 20 20 70 |bug & 8)|.X. p|
|000025c0| 72 69 6e 74 66 28 22 73 | 6b 69 70 69 6e 74 65 72 |rintf("s|kipinter|
|000025d0| 70 20 74 69 6c 6c 20 25 | 73 20 61 74 20 25 73 5c |p till %|s at %s\|
|000025e0| 6e 22 2c 73 74 6f 70 70 | 65 72 73 3f 73 74 6f 70 |n",stopp|ers?stop|
|000025f0| 70 65 72 73 3a 22 22 2c | 70 61 74 74 65 72 6e 29 |pers:"",|pattern)|
|00002600| 3b 0a 58 23 65 6e 64 69 | 66 0a 58 09 69 66 20 28 |;.X#endi|f.X.if (|
|00002610| 2a 70 61 74 74 65 72 6e | 20 3d 3d 20 27 25 27 20 |*pattern| == '%' |
|00002620| 26 26 20 70 61 74 74 65 | 72 6e 5b 31 5d 29 20 7b |&& patte|rn[1]) {|
|00002630| 0a 58 09 20 20 20 20 73 | 77 69 74 63 68 20 28 2a |.X. s|witch (*|
|00002640| 2b 2b 70 61 74 74 65 72 | 6e 29 20 7b 0a 58 09 20 |++patter|n) {.X. |
|00002650| 20 20 20 63 61 73 65 20 | 27 7b 27 3a 0a 58 09 09 | case |'{':.X..|
|00002660| 66 6f 72 20 28 70 61 74 | 74 65 72 6e 2b 2b 3b 20 |for (pat|tern++; |
|00002670| 2a 70 61 74 74 65 72 6e | 20 26 26 20 2a 70 61 74 |*pattern| && *pat|
|00002680| 74 65 72 6e 20 21 3d 20 | 27 7d 27 3b 20 70 61 74 |tern != |'}'; pat|
|00002690| 74 65 72 6e 2b 2b 29 0a | 58 09 09 20 20 20 20 69 |tern++).|X.. i|
|000026a0| 66 20 28 2a 70 61 74 74 | 65 72 6e 20 3d 3d 20 27 |f (*patt|ern == '|
|000026b0| 5c 5c 27 29 0a 58 09 09 | 09 70 61 74 74 65 72 6e |\\').X..|.pattern|
|000026c0| 2b 2b 3b 0a 58 09 09 62 | 72 65 61 6b 3b 0a 58 09 |++;.X..b|reak;.X.|
|000026d0| 20 20 20 20 63 61 73 65 | 20 27 5b 27 3a 0a 58 09 | case| '[':.X.|
|000026e0| 09 66 6f 72 20 28 70 61 | 74 74 65 72 6e 2b 2b 3b |.for (pa|ttern++;|
|000026f0| 20 2a 70 61 74 74 65 72 | 6e 20 26 26 20 2a 70 61 | *patter|n && *pa|
|00002700| 74 74 65 72 6e 20 21 3d | 20 27 5d 27 3b 20 70 61 |ttern !=| ']'; pa|
|00002710| 74 74 65 72 6e 2b 2b 29 | 0a 58 09 09 20 20 20 20 |ttern++)|.X.. |
|00002720| 69 66 20 28 2a 70 61 74 | 74 65 72 6e 20 3d 3d 20 |if (*pat|tern == |
|00002730| 27 5c 5c 27 29 0a 58 09 | 09 09 70 61 74 74 65 72 |'\\').X.|..patter|
|00002740| 6e 2b 2b 3b 0a 58 09 09 | 62 72 65 61 6b 3b 0a 58 |n++;.X..|break;.X|
|00002750| 23 69 66 64 65 66 20 43 | 4f 4e 44 53 55 42 0a 58 |#ifdef C|ONDSUB.X|
|00002760| 09 20 20 20 20 63 61 73 | 65 20 27 28 27 3a 20 7b |. cas|e '(': {|
|00002770| 0a 58 09 09 70 61 74 74 | 65 72 6e 20 3d 20 73 6b |.X..patt|ern = sk|
|00002780| 69 70 69 6e 74 65 72 70 | 28 70 61 74 74 65 72 6e |ipinterp|(pattern|
|00002790| 2b 31 2c 22 21 3d 22 29 | 3b 0a 58 09 09 69 66 20 |+1,"!=")|;.X..if |
|000027a0| 28 21 2a 70 61 74 74 65 | 72 6e 29 0a 58 09 09 20 |(!*patte|rn).X.. |
|000027b0| 20 20 20 67 6f 74 6f 20 | 67 65 74 6f 75 74 3b 0a | goto |getout;.|
|000027c0| 58 09 09 66 6f 72 20 28 | 70 61 74 74 65 72 6e 2b |X..for (|pattern+|
|000027d0| 2b 3b 20 2a 70 61 74 74 | 65 72 6e 20 26 26 20 2a |+; *patt|ern && *|
|000027e0| 70 61 74 74 65 72 6e 20 | 21 3d 20 27 3f 27 3b 20 |pattern |!= '?'; |
|000027f0| 70 61 74 74 65 72 6e 2b | 2b 29 0a 58 09 09 20 20 |pattern+|+).X.. |
|00002800| 20 20 69 66 20 28 2a 70 | 61 74 74 65 72 6e 20 3d | if (*p|attern =|
|00002810| 3d 20 27 5c 5c 27 29 0a | 58 09 09 09 70 61 74 74 |= '\\').|X...patt|
|00002820| 65 72 6e 2b 2b 3b 0a 58 | 09 09 69 66 20 28 21 2a |ern++;.X|..if (!*|
|00002830| 70 61 74 74 65 72 6e 29 | 0a 58 09 09 20 20 20 20 |pattern)|.X.. |
|00002840| 67 6f 74 6f 20 67 65 74 | 6f 75 74 3b 0a 58 09 09 |goto get|out;.X..|
|00002850| 70 61 74 74 65 72 6e 20 | 3d 20 73 6b 69 70 69 6e |pattern |= skipin|
|00002860| 74 65 72 70 28 70 61 74 | 74 65 72 6e 2b 31 2c 22 |terp(pat|tern+1,"|
|00002870| 3a 29 22 29 3b 0a 58 09 | 09 69 66 20 28 2a 70 61 |:)");.X.|.if (*pa|
|00002880| 74 74 65 72 6e 20 3d 3d | 20 27 3a 27 29 0a 58 09 |ttern ==| ':').X.|
|00002890| 09 20 20 20 20 70 61 74 | 74 65 72 6e 20 3d 20 73 |. pat|tern = s|
|000028a0| 6b 69 70 69 6e 74 65 72 | 70 28 70 61 74 74 65 72 |kipinter|p(patter|
|000028b0| 6e 2b 31 2c 22 29 22 29 | 3b 0a 58 09 09 62 72 65 |n+1,")")|;.X..bre|
|000028c0| 61 6b 3b 0a 58 09 20 20 | 20 20 7d 0a 58 23 65 6e |ak;.X. | }.X#en|
|000028d0| 64 69 66 0a 58 23 69 66 | 64 65 66 20 42 41 43 4b |dif.X#if|def BACK|
|000028e0| 54 49 43 4b 0a 58 09 20 | 20 20 20 63 61 73 65 20 |TICK.X. | case |
|000028f0| 27 60 27 3a 20 7b 0a 58 | 09 09 70 61 74 74 65 72 |'`': {.X|..patter|
|00002900| 6e 20 3d 20 73 6b 69 70 | 69 6e 74 65 72 70 28 70 |n = skip|interp(p|
|00002910| 61 74 74 65 72 6e 2b 31 | 2c 22 60 22 29 3b 0a 58 |attern+1|,"`");.X|
|00002920| 09 09 62 72 65 61 6b 3b | 0a 58 09 20 20 20 20 7d |..break;|.X. }|
|00002930| 0a 58 23 65 6e 64 69 66 | 0a 58 23 69 66 64 65 66 |.X#endif|.X#ifdef|
|00002940| 20 50 52 4f 4d 50 54 54 | 54 59 0a 58 09 20 20 20 | PROMPTT|TY.X. |
|00002950| 20 63 61 73 65 20 27 22 | 27 3a 0a 58 09 09 70 61 | case '"|':.X..pa|
|00002960| 74 74 65 72 6e 20 3d 20 | 73 6b 69 70 69 6e 74 65 |ttern = |skipinte|
|00002970| 72 70 28 70 61 74 74 65 | 72 6e 2b 31 2c 22 5c 22 |rp(patte|rn+1,"\"|
|00002980| 22 29 3b 0a 58 09 09 62 | 72 65 61 6b 3b 0a 58 23 |");.X..b|reak;.X#|
|00002990| 65 6e 64 69 66 0a 58 09 | 20 20 20 20 64 65 66 61 |endif.X.| defa|
|000029a0| 75 6c 74 3a 0a 58 09 09 | 62 72 65 61 6b 3b 0a 58 |ult:.X..|break;.X|
|000029b0| 09 20 20 20 20 7d 0a 58 | 09 20 20 20 20 70 61 74 |. }.X|. pat|
|000029c0| 74 65 72 6e 2b 2b 3b 0a | 58 09 7d 0a 58 09 65 6c |tern++;.|X.}.X.el|
|000029d0| 73 65 20 7b 0a 58 09 20 | 20 20 20 69 66 20 28 2a |se {.X. | if (*|
|000029e0| 70 61 74 74 65 72 6e 20 | 3d 3d 20 27 5e 27 20 26 |pattern |== '^' &|
|000029f0| 26 20 70 61 74 74 65 72 | 6e 5b 31 5d 29 0a 58 09 |& patter|n[1]).X.|
|00002a00| 09 70 61 74 74 65 72 6e | 20 2b 3d 20 32 3b 0a 58 |.pattern| += 2;.X|
|00002a10| 09 20 20 20 20 65 6c 73 | 65 20 69 66 20 28 2a 70 |. els|e if (*p|
|00002a20| 61 74 74 65 72 6e 20 3d | 3d 20 27 5c 5c 27 20 26 |attern =|= '\\' &|
|00002a30| 26 20 70 61 74 74 65 72 | 6e 5b 31 5d 29 0a 58 09 |& patter|n[1]).X.|
|00002a40| 09 70 61 74 74 65 72 6e | 20 2b 3d 20 32 3b 0a 58 |.pattern| += 2;.X|
|00002a50| 09 20 20 20 20 65 6c 73 | 65 0a 58 09 09 70 61 74 |. els|e.X..pat|
|00002a60| 74 65 72 6e 2b 2b 3b 0a | 58 09 7d 0a 58 20 20 20 |tern++;.|X.}.X |
|00002a70| 20 7d 0a 67 65 74 6f 75 | 74 3a 0a 58 20 20 20 20 | }.getou|t:.X |
|00002a80| 72 65 74 75 72 6e 20 70 | 61 74 74 65 72 6e 3b 09 |return p|attern;.|
|00002a90| 09 09 2f 2a 20 77 68 65 | 72 65 20 77 65 20 6c 65 |../* whe|re we le|
|00002aa0| 66 74 20 6f 66 66 20 2a | 2f 0a 58 7d 0a 58 23 65 |ft off *|/.X}.X#e|
|00002ab0| 6e 64 69 66 0a 58 0a 58 | 2f 2a 20 69 6e 74 65 72 |ndif.X.X|/* inter|
|00002ac0| 70 72 65 74 20 69 6e 74 | 65 72 70 6f 6c 61 74 69 |pret int|erpolati|
|00002ad0| 6f 6e 73 20 2a 2f 0a 58 | 0a 63 68 61 72 20 2a 0a |ons */.X|.char *.|
|00002ae0| 64 6f 69 6e 74 65 72 70 | 28 64 65 73 74 2c 64 65 |dointerp|(dest,de|
|00002af0| 73 74 73 69 7a 65 2c 70 | 61 74 74 65 72 6e 2c 73 |stsize,p|attern,s|
|00002b00| 74 6f 70 70 65 72 73 29 | 0a 72 65 67 69 73 74 65 |toppers)|.registe|
|00002b10| 72 20 63 68 61 72 20 2a | 64 65 73 74 3b 0a 72 65 |r char *|dest;.re|
|00002b20| 67 69 73 74 65 72 20 69 | 6e 74 20 64 65 73 74 73 |gister i|nt dests|
|00002b30| 69 7a 65 3b 0a 72 65 67 | 69 73 74 65 72 20 63 68 |ize;.reg|ister ch|
|00002b40| 61 72 20 2a 70 61 74 74 | 65 72 6e 3b 0a 63 68 61 |ar *patt|ern;.cha|
|00002b50| 72 20 2a 73 74 6f 70 70 | 65 72 73 3b 0a 58 7b 0a |r *stopp|ers;.X{.|
|00002b60| 58 20 20 20 20 63 68 61 | 72 20 2a 73 75 62 6a 5f |X cha|r *subj_|
|00002b70| 62 75 66 20 3d 20 4e 75 | 6c 6c 63 68 3b 0a 58 20 |buf = Nu|llch;.X |
|00002b80| 20 20 20 63 68 61 72 20 | 2a 6e 67 73 5f 62 75 66 | char |*ngs_buf|
|00002b90| 20 3d 20 4e 75 6c 6c 63 | 68 3b 0a 58 20 20 20 20 | = Nullc|h;.X |
|00002ba0| 63 68 61 72 20 2a 72 65 | 66 73 5f 62 75 66 20 3d |char *re|fs_buf =|
|00002bb0| 20 4e 75 6c 6c 63 68 3b | 0a 58 20 20 20 20 63 68 | Nullch;|.X ch|
|00002bc0| 61 72 20 2a 61 72 74 69 | 64 5f 62 75 66 20 3d 20 |ar *arti|d_buf = |
|00002bd0| 4e 75 6c 6c 63 68 3b 0a | 58 20 20 20 20 63 68 61 |Nullch;.|X cha|
|00002be0| 72 20 2a 72 65 70 6c 79 | 5f 62 75 66 20 3d 20 4e |r *reply|_buf = N|
|00002bf0| 75 6c 6c 63 68 3b 0a 58 | 20 20 20 20 63 68 61 72 |ullch;.X| char|
|00002c00| 20 2a 66 72 6f 6d 5f 62 | 75 66 20 3d 20 4e 75 6c | *from_b|uf = Nul|
|00002c10| 6c 63 68 3b 0a 58 20 20 | 20 20 63 68 61 72 20 2a |lch;.X | char *|
|00002c20| 70 61 74 68 5f 62 75 66 | 20 3d 20 4e 75 6c 6c 63 |path_buf| = Nullc|
|00002c30| 68 3b 0a 58 20 20 20 20 | 63 68 61 72 20 2a 66 6f |h;.X |char *fo|
|00002c40| 6c 6c 6f 77 5f 62 75 66 | 20 3d 20 4e 75 6c 6c 63 |llow_buf| = Nullc|
|00002c50| 68 3b 0a 58 20 20 20 20 | 63 68 61 72 20 2a 64 69 |h;.X |char *di|
|00002c60| 73 74 5f 62 75 66 20 3d | 20 4e 75 6c 6c 63 68 3b |st_buf =| Nullch;|
|00002c70| 0a 58 20 20 20 20 63 68 | 61 72 20 2a 6c 69 6e 65 |.X ch|ar *line|
|00002c80| 5f 62 75 66 20 3d 20 4e | 75 6c 6c 63 68 3b 0a 58 |_buf = N|ullch;.X|
|00002c90| 20 20 20 20 72 65 67 69 | 73 74 65 72 20 63 68 61 | regi|ster cha|
|00002ca0| 72 20 2a 73 2c 20 2a 68 | 3b 0a 58 20 20 20 20 72 |r *s, *h|;.X r|
|00002cb0| 65 67 69 73 74 65 72 20 | 69 6e 74 20 69 3b 0a 58 |egister |int i;.X|
|00002cc0| 20 20 20 20 63 68 61 72 | 20 73 63 72 62 75 66 5b | char| scrbuf[|
|00002cd0| 35 31 32 5d 3b 0a 58 20 | 20 20 20 62 6f 6f 6c 20 |512];.X | bool |
|00002ce0| 75 70 70 65 72 20 3d 20 | 46 41 4c 53 45 3b 0a 58 |upper = |FALSE;.X|
|00002cf0| 20 20 20 20 62 6f 6f 6c | 20 6c 61 73 74 63 6f 6d | bool| lastcom|
|00002d00| 70 20 3d 20 46 41 4c 53 | 45 3b 0a 58 20 20 20 20 |p = FALS|E;.X |
|00002d10| 62 6f 6f 6c 20 72 65 5f | 71 75 6f 74 65 20 3d 20 |bool re_|quote = |
|00002d20| 46 41 4c 53 45 3b 0a 58 | 20 20 20 20 69 6e 74 20 |FALSE;.X| int |
|00002d30| 6d 65 74 61 62 69 74 20 | 3d 20 30 3b 0a 58 0a 58 |metabit |= 0;.X.X|
|00002d40| 20 20 20 20 77 68 69 6c | 65 20 28 2a 70 61 74 74 | whil|e (*patt|
|00002d50| 65 72 6e 20 26 26 20 28 | 21 73 74 6f 70 70 65 72 |ern && (|!stopper|
|00002d60| 73 20 7c 7c 20 21 69 6e | 64 65 78 28 73 74 6f 70 |s || !in|dex(stop|
|00002d70| 70 65 72 73 2c 2a 70 61 | 74 74 65 72 6e 29 29 29 |pers,*pa|ttern)))|
|00002d80| 20 7b 0a 58 23 69 66 64 | 65 66 20 44 45 42 55 47 | {.X#ifd|ef DEBUG|
|00002d90| 47 49 4e 47 0a 58 09 69 | 66 20 28 64 65 62 75 67 |GING.X.i|f (debug|
|00002da0| 20 26 20 38 29 0a 58 09 | 20 20 20 20 70 72 69 6e | & 8).X.| prin|
|00002db0| 74 66 28 22 64 6f 69 6e | 74 65 72 70 20 74 69 6c |tf("doin|terp til|
|00002dc0| 6c 20 25 73 20 61 74 20 | 25 73 5c 6e 22 2c 73 74 |l %s at |%s\n",st|
|00002dd0| 6f 70 70 65 72 73 3f 73 | 74 6f 70 70 65 72 73 3a |oppers?s|toppers:|
|00002de0| 22 22 2c 70 61 74 74 65 | 72 6e 29 3b 0a 58 23 65 |"",patte|rn);.X#e|
|00002df0| 6e 64 69 66 0a 58 09 69 | 66 20 28 2a 70 61 74 74 |ndif.X.i|f (*patt|
|00002e00| 65 72 6e 20 3d 3d 20 27 | 25 27 20 26 26 20 70 61 |ern == '|%' && pa|
|00002e10| 74 74 65 72 6e 5b 31 5d | 29 20 7b 0a 58 09 20 20 |ttern[1]|) {.X. |
|00002e20| 20 20 75 70 70 65 72 20 | 3d 20 46 41 4c 53 45 3b | upper |= FALSE;|
|00002e30| 0a 58 09 20 20 20 20 6c | 61 73 74 63 6f 6d 70 20 |.X. l|astcomp |
|00002e40| 3d 20 46 41 4c 53 45 3b | 0a 58 09 20 20 20 20 72 |= FALSE;|.X. r|
|00002e50| 65 5f 71 75 6f 74 65 20 | 3d 20 46 41 4c 53 45 3b |e_quote |= FALSE;|
|00002e60| 0a 58 09 20 20 20 20 66 | 6f 72 20 28 73 3d 4e 75 |.X. f|or (s=Nu|
|00002e70| 6c 6c 63 68 3b 20 21 73 | 3b 20 29 20 7b 0a 58 09 |llch; !s|; ) {.X.|
|00002e80| 09 73 77 69 74 63 68 20 | 28 2a 2b 2b 70 61 74 74 |.switch |(*++patt|
|00002e90| 65 72 6e 29 20 7b 0a 58 | 09 09 63 61 73 65 20 27 |ern) {.X|..case '|
|00002ea0| 5e 27 3a 0a 58 09 09 20 | 20 20 20 75 70 70 65 72 |^':.X.. | upper|
|00002eb0| 20 3d 20 54 52 55 45 3b | 0a 58 09 09 20 20 20 20 | = TRUE;|.X.. |
|00002ec0| 62 72 65 61 6b 3b 0a 58 | 09 09 63 61 73 65 20 27 |break;.X|..case '|
|00002ed0| 5f 27 3a 0a 58 09 09 20 | 20 20 20 6c 61 73 74 63 |_':.X.. | lastc|
|00002ee0| 6f 6d 70 20 3d 20 54 52 | 55 45 3b 0a 58 09 09 20 |omp = TR|UE;.X.. |
|00002ef0| 20 20 20 62 72 65 61 6b | 3b 0a 58 09 09 63 61 73 | break|;.X..cas|
|00002f00| 65 20 27 5c 5c 27 3a 0a | 58 09 09 20 20 20 20 72 |e '\\':.|X.. r|
|00002f10| 65 5f 71 75 6f 74 65 20 | 3d 20 54 52 55 45 3b 0a |e_quote |= TRUE;.|
|00002f20| 58 09 09 20 20 20 20 62 | 72 65 61 6b 3b 0a 58 09 |X.. b|reak;.X.|
|00002f30| 09 63 61 73 65 20 27 2f | 27 3a 0a 58 23 69 66 64 |.case '/|':.X#ifd|
|00002f40| 65 66 20 41 52 54 53 52 | 43 48 0a 58 09 09 20 20 |ef ARTSR|CH.X.. |
|00002f50| 20 20 73 20 3d 20 73 63 | 72 62 75 66 3b 0a 58 09 | s = sc|rbuf;.X.|
|00002f60| 09 20 20 20 20 69 66 20 | 28 21 69 6e 64 65 78 28 |. if |(!index(|
|00002f70| 22 2f 3f 67 22 2c 70 61 | 74 74 65 72 6e 5b 2d 32 |"/?g",pa|ttern[-2|
|00002f80| 5d 29 29 0a 58 09 09 09 | 2a 73 2b 2b 20 3d 20 27 |])).X...|*s++ = '|
|00002f90| 2f 27 3b 0a 58 09 09 20 | 20 20 20 73 74 72 63 70 |/';.X.. | strcp|
|00002fa0| 79 28 73 2c 6c 61 73 74 | 70 61 74 29 3b 0a 58 09 |y(s,last|pat);.X.|
|00002fb0| 09 20 20 20 20 73 20 2b | 3d 20 73 74 72 6c 65 6e |. s +|= strlen|
|00002fc0| 28 73 29 3b 0a 58 09 09 | 20 20 20 20 69 66 20 28 |(s);.X..| if (|
|00002fd0| 70 61 74 74 65 72 6e 5b | 2d 32 5d 20 21 3d 20 27 |pattern[|-2] != '|
|00002fe0| 67 27 29 20 7b 0a 58 09 | 09 09 69 66 20 28 69 6e |g') {.X.|..if (in|
|00002ff0| 64 65 78 28 22 2f 3f 22 | 2c 70 61 74 74 65 72 6e |dex("/?"|,pattern|
|00003000| 5b 2d 32 5d 29 29 0a 58 | 09 09 09 20 20 20 20 2a |[-2])).X|... *|
|00003010| 73 2b 2b 20 3d 20 70 61 | 74 74 65 72 6e 5b 2d 32 |s++ = pa|ttern[-2|
|00003020| 5d 3b 0a 58 09 09 09 65 | 6c 73 65 0a 58 09 09 09 |];.X...e|lse.X...|
|00003030| 20 20 20 20 2a 73 2b 2b | 20 3d 20 27 2f 27 3b 0a | *s++| = '/';.|
|00003040| 58 09 09 09 69 66 20 28 | 61 72 74 5f 68 6f 77 6d |X...if (|art_howm|
|00003050| 75 63 68 20 3d 3d 20 31 | 29 0a 58 09 09 09 20 20 |uch == 1|).X... |
|00003060| 20 20 2a 73 2b 2b 20 3d | 20 27 68 27 3b 0a 58 09 | *s++ =| 'h';.X.|
|00003070| 09 09 65 6c 73 65 20 69 | 66 20 28 61 72 74 5f 68 |..else i|f (art_h|
|00003080| 6f 77 6d 75 63 68 20 3d | 3d 20 32 29 0a 58 09 09 |owmuch =|= 2).X..|
|00003090| 09 20 20 20 20 2a 73 2b | 2b 20 3d 20 27 61 27 3b |. *s+|+ = 'a';|
|000030a0| 0a 58 09 09 09 69 66 20 | 28 61 72 74 5f 64 6f 72 |.X...if |(art_dor|
|000030b0| 65 61 64 29 0a 58 09 09 | 09 20 20 20 20 2a 73 2b |ead).X..|. *s+|
|000030c0| 2b 20 3d 20 27 72 27 3b | 0a 58 09 09 20 20 20 20 |+ = 'r';|.X.. |
|000030d0| 7d 0a 58 09 09 20 20 20 | 20 2a 73 20 3d 20 27 5c |}.X.. | *s = '\|
|000030e0| 30 27 3b 0a 58 09 09 20 | 20 20 20 73 20 3d 20 73 |0';.X.. | s = s|
|000030f0| 63 72 62 75 66 3b 0a 58 | 23 65 6c 73 65 0a 58 09 |crbuf;.X|#else.X.|
|00003100| 09 20 20 20 20 73 20 3d | 20 6e 75 6c 6c 73 74 72 |. s =| nullstr|
|00003110| 3b 0a 58 23 65 6e 64 69 | 66 0a 58 09 09 20 20 20 |;.X#endi|f.X.. |
|00003120| 20 62 72 65 61 6b 3b 0a | 58 09 09 63 61 73 65 20 | break;.|X..case |
|00003130| 27 7b 27 3a 0a 58 09 09 | 20 20 20 20 70 61 74 74 |'{':.X..| patt|
|00003140| 65 72 6e 20 3d 20 63 70 | 79 74 69 6c 6c 28 73 63 |ern = cp|ytill(sc|
|00003150| 72 62 75 66 2c 70 61 74 | 74 65 72 6e 2b 31 2c 27 |rbuf,pat|tern+1,'|
|00003160| 7d 27 29 3b 0a 58 09 09 | 20 20 20 20 69 66 20 28 |}');.X..| if (|
|00003170| 73 20 3d 20 69 6e 64 65 | 78 28 73 63 72 62 75 66 |s = inde|x(scrbuf|
|00003180| 2c 27 2d 27 29 29 0a 58 | 09 09 09 2a 73 2b 2b 20 |,'-')).X|...*s++ |
|00003190| 3d 20 27 5c 30 27 3b 0a | 58 09 09 20 20 20 20 65 |= '\0';.|X.. e|
|000031a0| 6c 73 65 0a 58 09 09 09 | 73 20 3d 20 6e 75 6c 6c |lse.X...|s = null|
|000031b0| 73 74 72 3b 0a 58 09 09 | 20 20 20 20 73 20 3d 20 |str;.X..| s = |
|000031c0| 67 65 74 76 61 6c 28 73 | 63 72 62 75 66 2c 73 29 |getval(s|crbuf,s)|
|000031d0| 3b 0a 58 09 09 20 20 20 | 20 62 72 65 61 6b 3b 0a |;.X.. | break;.|
|000031e0| 58 09 09 63 61 73 65 20 | 27 5b 27 3a 0a 58 09 09 |X..case |'[':.X..|
|000031f0| 20 20 20 20 70 61 74 74 | 65 72 6e 20 3d 20 63 70 | patt|ern = cp|
|00003200| 79 74 69 6c 6c 28 73 63 | 72 62 75 66 2c 70 61 74 |ytill(sc|rbuf,pat|
|00003210| 74 65 72 6e 2b 31 2c 27 | 5d 27 29 3b 0a 58 09 09 |tern+1,'|]');.X..|
|00003220| 20 20 20 20 69 20 3d 20 | 73 65 74 5f 6c 69 6e 65 | i = |set_line|
|00003230| 5f 74 79 70 65 28 73 63 | 72 62 75 66 2c 73 63 72 |_type(sc|rbuf,scr|
|00003240| 62 75 66 2b 73 74 72 6c | 65 6e 28 73 63 72 62 75 |buf+strl|en(scrbu|
|00003250| 66 29 29 3b 0a 58 09 09 | 20 20 20 20 69 66 20 28 |f));.X..| if (|
|00003260| 6c 69 6e 65 5f 62 75 66 | 29 0a 58 09 09 09 66 72 |line_buf|).X...fr|
|00003270| 65 65 28 6c 69 6e 65 5f | 62 75 66 29 3b 0a 58 09 |ee(line_|buf);.X.|
|00003280| 09 20 20 20 20 73 20 3d | 20 6c 69 6e 65 5f 62 75 |. s =| line_bu|
|00003290| 66 20 3d 20 66 65 74 63 | 68 6c 69 6e 65 73 28 61 |f = fetc|hlines(a|
|000032a0| 72 74 2c 69 29 3b 0a 58 | 09 09 20 20 20 20 62 72 |rt,i);.X|.. br|
|000032b0| 65 61 6b 3b 0a 58 23 69 | 66 64 65 66 20 43 4f 4e |eak;.X#i|fdef CON|
|000032c0| 44 53 55 42 0a 58 09 09 | 63 61 73 65 20 27 28 27 |DSUB.X..|case '('|
|000032d0| 3a 20 7b 0a 58 09 09 20 | 20 20 20 43 4f 4d 50 45 |: {.X.. | COMPE|
|000032e0| 58 20 2a 6f 6c 64 62 72 | 61 5f 63 6f 6d 70 65 78 |X *oldbr|a_compex|
|000032f0| 20 3d 20 62 72 61 5f 63 | 6f 6d 70 65 78 3b 0a 58 | = bra_c|ompex;.X|
|00003300| 09 09 20 20 20 20 43 4f | 4d 50 45 58 20 63 6f 6e |.. CO|MPEX con|
|00003310| 64 5f 63 6f 6d 70 65 78 | 3b 0a 58 09 09 20 20 20 |d_compex|;.X.. |
|00003320| 20 63 68 61 72 20 72 63 | 68 3b 0a 58 09 09 20 20 | char rc|h;.X.. |
|00003330| 20 20 62 6f 6f 6c 20 6d | 61 74 63 68 65 64 3b 0a | bool m|atched;.|
|00003340| 58 09 09 20 20 20 20 0a | 58 09 09 20 20 20 20 69 |X.. .|X.. i|
|00003350| 6e 69 74 5f 63 6f 6d 70 | 65 78 28 26 63 6f 6e 64 |nit_comp|ex(&cond|
|00003360| 5f 63 6f 6d 70 65 78 29 | 3b 0a 58 09 09 20 20 20 |_compex)|;.X.. |
|00003370| 20 70 61 74 74 65 72 6e | 20 3d 20 64 6f 69 6e 74 | pattern| = doint|
|00003380| 65 72 70 28 64 65 73 74 | 2c 64 65 73 74 73 69 7a |erp(dest|,destsiz|
|00003390| 65 2c 70 61 74 74 65 72 | 6e 2b 31 2c 22 21 3d 22 |e,patter|n+1,"!="|
|000033a0| 29 3b 0a 58 09 09 20 20 | 20 20 72 63 68 20 3d 20 |);.X.. | rch = |
|000033b0| 2a 70 61 74 74 65 72 6e | 3b 0a 58 09 09 20 20 20 |*pattern|;.X.. |
|000033c0| 20 69 66 20 28 72 63 68 | 20 3d 3d 20 27 21 27 29 | if (rch| == '!')|
|000033d0| 0a 58 09 09 09 70 61 74 | 74 65 72 6e 2b 2b 3b 0a |.X...pat|tern++;.|
|000033e0| 58 09 09 20 20 20 20 69 | 66 20 28 2a 70 61 74 74 |X.. i|f (*patt|
|000033f0| 65 72 6e 20 21 3d 20 27 | 3d 27 29 0a 58 09 09 09 |ern != '|=').X...|
|00003400| 67 6f 74 6f 20 67 65 74 | 6f 75 74 3b 0a 58 09 09 |goto get|out;.X..|
|00003410| 20 20 20 20 70 61 74 74 | 65 72 6e 20 3d 20 63 70 | patt|ern = cp|
|00003420| 79 74 69 6c 6c 28 73 63 | 72 62 75 66 2c 70 61 74 |ytill(sc|rbuf,pat|
|00003430| 74 65 72 6e 2b 31 2c 27 | 3f 27 29 3b 0a 58 09 09 |tern+1,'|?');.X..|
|00003440| 20 20 20 20 69 66 20 28 | 21 2a 70 61 74 74 65 72 | if (|!*patter|
|00003450| 6e 29 0a 58 09 09 09 67 | 6f 74 6f 20 67 65 74 6f |n).X...g|oto geto|
|00003460| 75 74 3b 0a 58 09 09 20 | 20 20 20 69 66 20 28 73 |ut;.X.. | if (s|
|00003470| 20 3d 20 63 6f 6d 70 69 | 6c 65 28 26 63 6f 6e 64 | = compi|le(&cond|
|00003480| 5f 63 6f 6d 70 65 78 2c | 73 63 72 62 75 66 2c 54 |_compex,|scrbuf,T|
|00003490| 52 55 45 2c 54 52 55 45 | 29 29 20 7b 0a 58 09 09 |RUE,TRUE|)) {.X..|
|000034a0| 09 70 72 69 6e 74 66 28 | 22 25 73 3a 20 25 73 5c |.printf(|"%s: %s\|
|000034b0| 6e 22 2c 73 63 72 62 75 | 66 2c 73 29 20 46 4c 55 |n",scrbu|f,s) FLU|
|000034c0| 53 48 3b 0a 58 09 09 09 | 70 61 74 74 65 72 6e 20 |SH;.X...|pattern |
|000034d0| 2b 3d 20 73 74 72 6c 65 | 6e 28 70 61 74 74 65 72 |+= strle|n(patter|
|000034e0| 6e 29 3b 0a 58 09 09 09 | 67 6f 74 6f 20 67 65 74 |n);.X...|goto get|
|000034f0| 6f 75 74 3b 0a 58 09 09 | 20 20 20 20 7d 0a 58 09 |out;.X..| }.X.|
|00003500| 09 20 20 20 20 6d 61 74 | 63 68 65 64 20 3d 20 28 |. mat|ched = (|
|00003510| 65 78 65 63 75 74 65 28 | 26 63 6f 6e 64 5f 63 6f |execute(|&cond_co|
|00003520| 6d 70 65 78 2c 64 65 73 | 74 29 20 21 3d 20 4e 75 |mpex,des|t) != Nu|
|00003530| 6c 6c 63 68 29 3b 0a 58 | 09 09 20 20 20 20 69 66 |llch);.X|.. if|
|00003540| 20 28 63 6f 6e 64 5f 63 | 6f 6d 70 65 78 2e 6e 62 | (cond_c|ompex.nb|
|00003550| 72 61 29 09 2f 2a 20 77 | 65 72 65 20 74 68 65 72 |ra)./* w|ere ther|
|00003560| 65 20 62 72 61 63 6b 65 | 74 73 3f 20 2a 2f 0a 58 |e bracke|ts? */.X|
|00003570| 09 09 09 62 72 61 5f 63 | 6f 6d 70 65 78 20 3d 20 |...bra_c|ompex = |
|00003580| 26 63 6f 6e 64 5f 63 6f | 6d 70 65 78 3b 0a 58 09 |&cond_co|mpex;.X.|
|00003590| 09 20 20 20 20 69 66 20 | 28 6d 61 74 63 68 65 64 |. if |(matched|
|000035a0| 3d 3d 28 72 63 68 20 3d | 3d 20 27 3d 27 29 29 20 |==(rch =|= '=')) |
|000035b0| 7b 0a 58 09 09 09 70 61 | 74 74 65 72 6e 20 3d 20 |{.X...pa|ttern = |
|000035c0| 64 6f 69 6e 74 65 72 70 | 28 64 65 73 74 2c 64 65 |dointerp|(dest,de|
|000035d0| 73 74 73 69 7a 65 2c 70 | 61 74 74 65 72 6e 2b 31 |stsize,p|attern+1|
|000035e0| 2c 22 3a 29 22 29 3b 0a | 58 09 09 09 69 66 20 28 |,":)");.|X...if (|
|000035f0| 2a 70 61 74 74 65 72 6e | 20 3d 3d 20 27 3a 27 29 |*pattern| == ':')|
|00003600| 0a 58 09 09 09 20 20 20 | 20 70 61 74 74 65 72 6e |.X... | pattern|
|00003610| 20 3d 20 73 6b 69 70 69 | 6e 74 65 72 70 28 70 61 | = skipi|nterp(pa|
|00003620| 74 74 65 72 6e 2b 31 2c | 22 29 22 29 3b 0a 58 09 |ttern+1,|")");.X.|
|00003630| 09 20 20 20 20 7d 0a 58 | 09 09 20 20 20 20 65 6c |. }.X|.. el|
|00003640| 73 65 20 7b 0a 58 09 09 | 09 70 61 74 74 65 72 6e |se {.X..|.pattern|
|00003650| 20 3d 20 73 6b 69 70 69 | 6e 74 65 72 70 28 70 61 | = skipi|nterp(pa|
|00003660| 74 74 65 72 6e 2b 31 2c | 22 3a 29 22 29 3b 0a 58 |ttern+1,|":)");.X|
|00003670| 09 09 09 69 66 20 28 2a | 70 61 74 74 65 72 6e 20 |...if (*|pattern |
|00003680| 3d 3d 20 27 3a 27 29 0a | 58 09 09 09 20 20 20 20 |== ':').|X... |
|00003690| 70 61 74 74 65 72 6e 2b | 2b 3b 0a 58 09 09 09 70 |pattern+|+;.X...p|
|000036a0| 61 74 74 65 72 6e 20 3d | 20 64 6f 69 6e 74 65 72 |attern =| dointer|
|000036b0| 70 28 64 65 73 74 2c 64 | 65 73 74 73 69 7a 65 2c |p(dest,d|estsize,|
|000036c0| 70 61 74 74 65 72 6e 2c | 22 29 22 29 3b 0a 58 09 |pattern,|")");.X.|
|000036d0| 09 20 20 20 20 7d 0a 58 | 09 09 20 20 20 20 73 20 |. }.X|.. s |
|000036e0| 3d 20 64 65 73 74 3b 0a | 58 09 09 20 20 20 20 62 |= dest;.|X.. b|
|000036f0| 72 61 5f 63 6f 6d 70 65 | 78 20 3d 20 6f 6c 64 62 |ra_compe|x = oldb|
|00003700| 72 61 5f 63 6f 6d 70 65 | 78 3b 0a 58 09 09 20 20 |ra_compe|x;.X.. |
|00003710| 20 20 66 72 65 65 5f 63 | 6f 6d 70 65 78 28 26 63 | free_c|ompex(&c|
|00003720| 6f 6e 64 5f 63 6f 6d 70 | 65 78 29 3b 0a 58 09 09 |ond_comp|ex);.X..|
|00003730| 20 20 20 20 62 72 65 61 | 6b 3b 0a 58 09 09 7d 0a | brea|k;.X..}.|
|00003740| 58 23 65 6e 64 69 66 0a | 58 23 69 66 64 65 66 20 |X#endif.|X#ifdef |
|00003750| 42 41 43 4b 54 49 43 4b | 0a 58 09 09 63 61 73 65 |BACKTICK|.X..case|
|00003760| 20 27 60 27 3a 20 7b 0a | 58 09 09 20 20 20 20 46 | '`': {.|X.. F|
|00003770| 49 4c 45 20 2a 70 69 70 | 65 66 70 2c 20 2a 70 6f |ILE *pip|efp, *po|
|00003780| 70 65 6e 28 29 3b 0a 58 | 0a 58 09 09 20 20 20 20 |pen();.X|.X.. |
|00003790| 70 61 74 74 65 72 6e 20 | 3d 20 64 6f 69 6e 74 65 |pattern |= dointe|
|000037a0| 72 70 28 73 63 72 62 75 | 66 2c 28 73 69 7a 65 6f |rp(scrbu|f,(sizeo|
|000037b0| 66 20 73 63 72 62 75 66 | 29 2c 70 61 74 74 65 72 |f scrbuf|),patter|
|000037c0| 6e 2b 31 2c 22 60 22 29 | 3b 0a 58 09 09 20 20 20 |n+1,"`")|;.X.. |
|000037d0| 20 70 69 70 65 66 70 20 | 3d 20 70 6f 70 65 6e 28 | pipefp |= popen(|
|000037e0| 73 63 72 62 75 66 2c 22 | 72 22 29 3b 0a 58 09 09 |scrbuf,"|r");.X..|
|000037f0| 20 20 20 20 69 66 20 28 | 70 69 70 65 66 70 20 21 | if (|pipefp !|
|00003800| 3d 20 4e 75 6c 6c 66 70 | 29 20 7b 0a 58 09 09 09 |= Nullfp|) {.X...|
|00003810| 69 6e 74 20 6c 65 6e 3b | 0a 58 0a 58 09 09 09 6c |int len;|.X.X...l|
|00003820| 65 6e 20 3d 20 66 72 65 | 61 64 28 73 63 72 62 75 |en = fre|ad(scrbu|
|00003830| 66 2c 73 69 7a 65 6f 66 | 28 63 68 61 72 29 2c 28 |f,sizeof|(char),(|
|00003840| 73 69 7a 65 6f 66 20 73 | 63 72 62 75 66 29 2d 31 |sizeof s|crbuf)-1|
|00003850| 2c 0a 58 09 09 09 20 20 | 20 20 70 69 70 65 66 70 |,.X... | pipefp|
|00003860| 29 3b 0a 58 09 09 09 73 | 63 72 62 75 66 5b 6c 65 |);.X...s|crbuf[le|
|00003870| 6e 5d 20 3d 20 27 5c 30 | 27 3b 0a 58 09 09 09 70 |n] = '\0|';.X...p|
|00003880| 63 6c 6f 73 65 28 70 69 | 70 65 66 70 29 3b 0a 58 |close(pi|pefp);.X|
|00003890| 09 09 20 20 20 20 7d 0a | 58 09 09 20 20 20 20 65 |.. }.|X.. e|
|000038a0| 6c 73 65 20 7b 0a 58 09 | 09 09 70 72 69 6e 74 66 |lse {.X.|..printf|
|000038b0| 28 22 5c 6e 43 61 6e 27 | 74 20 72 75 6e 20 25 73 |("\nCan'|t run %s|
|000038c0| 5c 6e 22 2c 73 63 72 62 | 75 66 29 3b 0a 58 09 09 |\n",scrb|uf);.X..|
|000038d0| 09 2a 73 63 72 62 75 66 | 20 3d 20 27 5c 30 27 3b |.*scrbuf| = '\0';|
|000038e0| 0a 58 09 09 20 20 20 20 | 7d 0a 58 09 09 20 20 20 |.X.. |}.X.. |
|000038f0| 20 66 6f 72 20 28 73 3d | 73 63 72 62 75 66 3b 20 | for (s=|scrbuf; |
|00003900| 2a 73 3b 20 73 2b 2b 29 | 20 7b 0a 58 09 09 09 69 |*s; s++)| {.X...i|
|00003910| 66 20 28 2a 73 20 3d 3d | 20 27 5c 6e 27 29 20 7b |f (*s ==| '\n') {|
|00003920| 0a 58 09 09 09 20 20 20 | 20 69 66 20 28 73 5b 31 |.X... | if (s[1|
|00003930| 5d 29 0a 58 09 09 09 09 | 2a 73 20 3d 20 27 20 27 |]).X....|*s = ' '|
|00003940| 3b 0a 58 09 09 09 20 20 | 20 20 65 6c 73 65 0a 58 |;.X... | else.X|
|00003950| 09 09 09 09 2a 73 20 3d | 20 27 5c 30 27 3b 0a 58 |....*s =| '\0';.X|
|00003960| 09 09 09 7d 0a 58 09 09 | 20 20 20 20 7d 0a 58 09 |...}.X..| }.X.|
|00003970| 09 20 20 20 20 73 20 3d | 20 73 63 72 62 75 66 3b |. s =| scrbuf;|
|00003980| 0a 58 09 09 20 20 20 20 | 62 72 65 61 6b 3b 0a 58 |.X.. |break;.X|
|00003990| 09 09 7d 0a 58 23 65 6e | 64 69 66 0a 58 23 69 66 |..}.X#en|dif.X#if|
|000039a0| 64 65 66 20 50 52 4f 4d | 50 54 54 54 59 0a 58 09 |def PROM|PTTTY.X.|
|000039b0| 09 63 61 73 65 20 27 22 | 27 3a 0a 58 09 09 20 20 |.case '"|':.X.. |
|000039c0| 20 20 70 61 74 74 65 72 | 6e 20 3d 20 64 6f 69 6e | patter|n = doin|
|000039d0| 74 65 72 70 28 73 63 72 | 62 75 66 2c 28 73 69 7a |terp(scr|buf,(siz|
|000039e0| 65 6f 66 20 73 63 72 62 | 75 66 29 2c 70 61 74 74 |eof scrb|uf),patt|
|000039f0| 65 72 6e 2b 31 2c 22 5c | 22 22 29 3b 0a 58 09 09 |ern+1,"\|"");.X..|
|00003a00| 20 20 20 20 66 70 75 74 | 73 28 73 63 72 62 75 66 | fput|s(scrbuf|
|00003a10| 2c 73 74 64 6f 75 74 29 | 20 46 4c 55 53 48 3b 0a |,stdout)| FLUSH;.|
|00003a20| 58 09 09 20 20 20 20 72 | 65 73 65 74 74 79 28 29 |X.. r|esetty()|
|00003a30| 3b 0a 58 09 09 20 20 20 | 20 67 65 74 73 28 73 63 |;.X.. | gets(sc|
|00003a40| 72 62 75 66 29 3b 0a 58 | 09 09 20 20 20 20 6e 6f |rbuf);.X|.. no|
|00003a50| 65 63 68 6f 28 29 3b 0a | 58 09 09 20 20 20 20 63 |echo();.|X.. c|
|00003a60| 72 6d 6f 64 65 28 29 3b | 0a 58 09 09 20 20 20 20 |rmode();|.X.. |
|00003a70| 73 20 3d 20 73 63 72 62 | 75 66 3b 0a 58 09 09 20 |s = scrb|uf;.X.. |
|00003a80| 20 20 20 62 72 65 61 6b | 3b 0a 58 23 65 6e 64 69 | break|;.X#endi|
|00003a90| 66 0a 58 09 09 63 61 73 | 65 20 27 7e 27 3a 0a 58 |f.X..cas|e '~':.X|
|00003aa0| 09 09 20 20 20 20 73 20 | 3d 20 68 6f 6d 65 64 69 |.. s |= homedi|
|00003ab0| 72 3b 0a 58 09 09 20 20 | 20 20 62 72 65 61 6b 3b |r;.X.. | break;|
|00003ac0| 0a 58 09 09 63 61 73 65 | 20 27 2e 27 3a 0a 58 09 |.X..case| '.':.X.|
|00003ad0| 09 20 20 20 20 73 20 3d | 20 64 6f 74 64 69 72 3b |. s =| dotdir;|
|00003ae0| 0a 58 09 09 20 20 20 20 | 62 72 65 61 6b 3b 0a 58 |.X.. |break;.X|
|00003af0| 09 09 63 61 73 65 20 27 | 24 27 3a 0a 58 09 09 20 |..case '|$':.X.. |
|00003b00| 20 20 20 73 20 3d 20 73 | 63 72 62 75 66 3b 0a 58 | s = s|crbuf;.X|
|00003b10| 09 09 20 20 20 20 73 70 | 72 69 6e 74 66 28 73 2c |.. sp|rintf(s,|
|00003b20| 22 25 64 22 2c 67 65 74 | 70 69 64 28 29 29 3b 0a |"%d",get|pid());.|
|00003b30| 58 09 09 20 20 20 20 62 | 72 65 61 6b 3b 0a 58 09 |X.. b|reak;.X.|
|00003b40| 09 63 61 73 65 20 27 23 | 27 3a 0a 58 09 09 20 20 |.case '#|':.X.. |
|00003b50| 20 20 73 20 3d 20 73 63 | 72 62 75 66 3b 0a 58 09 | s = sc|rbuf;.X.|
|00003b60| 09 20 20 20 20 73 70 72 | 69 6e 74 66 28 73 2c 22 |. spr|intf(s,"|
|00003b70| 25 64 22 2c 70 65 72 66 | 6f 72 6d 5f 63 6e 74 29 |%d",perf|orm_cnt)|
|00003b80| 3b 0a 58 09 09 20 20 20 | 20 62 72 65 61 6b 3b 0a |;.X.. | break;.|
|00003b90| 58 09 09 63 61 73 65 20 | 27 30 27 3a 20 63 61 73 |X..case |'0': cas|
|00003ba0| 65 20 27 31 27 3a 20 63 | 61 73 65 20 27 32 27 3a |e '1': c|ase '2':|
|00003bb0| 20 63 61 73 65 20 27 33 | 27 3a 20 63 61 73 65 20 | case '3|': case |
|00003bc0| 27 34 27 3a 0a 58 09 09 | 63 61 73 65 20 27 35 27 |'4':.X..|case '5'|
|00003bd0| 3a 20 63 61 73 65 20 27 | 36 27 3a 20 63 61 73 65 |: case '|6': case|
|00003be0| 20 27 37 27 3a 20 63 61 | 73 65 20 27 38 27 3a 20 | '7': ca|se '8': |
|00003bf0| 63 61 73 65 20 27 39 27 | 3a 0a 58 23 69 66 64 65 |case '9'|:.X#ifde|
|00003c00| 66 20 43 4f 4e 44 53 55 | 42 0a 58 09 09 20 20 20 |f CONDSU|B.X.. |
|00003c10| 20 73 20 3d 20 67 65 74 | 62 72 61 63 6b 65 74 28 | s = get|bracket(|
|00003c20| 62 72 61 5f 63 6f 6d 70 | 65 78 2c 2a 70 61 74 74 |bra_comp|ex,*patt|
|00003c30| 65 72 6e 20 2d 20 27 30 | 27 29 3b 0a 58 23 65 6c |ern - '0|');.X#el|
|00003c40| 73 65 0a 58 09 09 20 20 | 20 20 73 20 3d 20 6e 75 |se.X.. | s = nu|
|00003c50| 6c 6c 73 74 72 3b 0a 58 | 23 65 6e 64 69 66 0a 58 |llstr;.X|#endif.X|
|00003c60| 09 09 20 20 20 20 62 72 | 65 61 6b 3b 0a 58 09 09 |.. br|eak;.X..|
|00003c70| 63 61 73 65 20 27 61 27 | 3a 0a 58 09 09 20 20 20 |case 'a'|:.X.. |
|00003c80| 20 73 20 3d 20 73 63 72 | 62 75 66 3b 0a 58 09 09 | s = scr|buf;.X..|
|00003c90| 20 20 20 20 73 70 72 69 | 6e 74 66 28 73 2c 22 25 | spri|ntf(s,"%|
|00003ca0| 6c 64 22 2c 28 6c 6f 6e | 67 29 61 72 74 29 3b 0a |ld",(lon|g)art);.|
|00003cb0| 58 09 09 20 20 20 20 62 | 72 65 61 6b 3b 0a 58 09 |X.. b|reak;.X.|
|00003cc0| 09 63 61 73 65 20 27 41 | 27 3a 0a 58 23 69 66 64 |.case 'A|':.X#ifd|
|00003cd0| 65 66 20 4c 49 4e 4b 41 | 52 54 0a 58 09 09 20 20 |ef LINKA|RT.X.. |
|00003ce0| 20 20 73 20 3d 20 6c 69 | 6e 6b 61 72 74 6e 61 6d | s = li|nkartnam|
|00003cf0| 65 3b 09 2f 2a 20 73 6f | 20 45 75 6e 69 63 65 20 |e;./* so| Eunice |
|00003d00| 70 65 6f 70 6c 65 20 67 | 65 74 20 72 69 67 68 74 |people g|et right|
|00003d10| 20 66 69 6c 65 20 2a 2f | 0a 58 23 65 6c 73 65 0a | file */|.X#else.|
|00003d20| 58 09 09 20 20 20 20 73 | 20 3d 20 73 63 72 62 75 |X.. s| = scrbu|
|00003d30| 66 3b 0a 58 23 69 66 64 | 65 66 20 53 45 52 56 45 |f;.X#ifd|ef SERVE|
|00003d40| 52 0a 58 09 09 20 20 20 | 20 73 70 72 69 6e 74 66 |R.X.. | sprintf|
|00003d50| 28 73 2c 22 25 73 2f 72 | 72 6e 25 6c 64 2e 25 64 |(s,"%s/r|rn%ld.%d|
|00003d60| 22 2c 73 70 6f 6f 6c 2c | 28 6c 6f 6e 67 29 61 72 |",spool,|(long)ar|
|00003d70| 74 2c 67 65 74 70 69 64 | 28 29 29 3b 0a 58 23 65 |t,getpid|());.X#e|
|00003d80| 6c 73 65 0a 58 09 09 20 | 20 20 20 73 70 72 69 6e |lse.X.. | sprin|
|00003d90| 74 66 28 73 2c 22 25 73 | 2f 25 73 2f 25 6c 64 22 |tf(s,"%s|/%s/%ld"|
|00003da0| 2c 73 70 6f 6f 6c 2c 6e | 67 64 69 72 2c 28 6c 6f |,spool,n|gdir,(lo|
|00003db0| 6e 67 29 61 72 74 29 3b | 0a 58 23 65 6e 64 69 66 |ng)art);|.X#endif|
|00003dc0| 0a 58 23 65 6e 64 69 66 | 0a 58 09 09 20 20 20 20 |.X#endif|.X.. |
|00003dd0| 62 72 65 61 6b 3b 0a 58 | 09 09 63 61 73 65 20 27 |break;.X|..case '|
|00003de0| 62 27 3a 0a 58 09 09 20 | 20 20 20 73 20 3d 20 73 |b':.X.. | s = s|
|00003df0| 61 76 65 64 65 73 74 3b | 0a 58 09 09 20 20 20 20 |avedest;|.X.. |
|00003e00| 62 72 65 61 6b 3b 0a 58 | 09 09 63 61 73 65 20 27 |break;.X|..case '|
|00003e10| 42 27 3a 0a 58 09 09 20 | 20 20 20 73 20 3d 20 73 |B':.X.. | s = s|
|00003e20| 63 72 62 75 66 3b 0a 58 | 09 09 20 20 20 20 73 70 |crbuf;.X|.. sp|
|00003e30| 72 69 6e 74 66 28 73 2c | 22 25 6c 64 22 2c 28 6c |rintf(s,|"%ld",(l|
|00003e40| 6f 6e 67 29 73 61 76 65 | 66 72 6f 6d 29 3b 0a 58 |ong)save|from);.X|
|00003e50| 09 09 20 20 20 20 62 72 | 65 61 6b 3b 0a 58 09 09 |.. br|eak;.X..|
|00003e60| 63 61 73 65 20 27 63 27 | 3a 0a 58 09 09 20 20 20 |case 'c'|:.X.. |
|00003e70| 20 73 20 3d 20 6e 67 64 | 69 72 3b 0a 58 09 09 20 | s = ngd|ir;.X.. |
|00003e80| 20 20 20 62 72 65 61 6b | 3b 0a 58 09 09 63 61 73 | break|;.X..cas|
|00003e90| 65 20 27 43 27 3a 0a 58 | 09 09 20 20 20 20 73 20 |e 'C':.X|.. s |
|00003ea0| 3d 20 6e 67 6e 61 6d 65 | 3b 0a 58 09 09 20 20 20 |= ngname|;.X.. |
|00003eb0| 20 62 72 65 61 6b 3b 0a | 58 09 09 63 61 73 65 20 | break;.|X..case |
|00003ec0| 27 64 27 3a 0a 58 09 09 | 20 20 20 20 73 20 3d 20 |'d':.X..| s = |
|00003ed0| 73 63 72 62 75 66 3b 0a | 58 09 09 20 20 20 20 73 |scrbuf;.|X.. s|
|00003ee0| 70 72 69 6e 74 66 28 73 | 2c 22 25 73 2f 25 73 22 |printf(s|,"%s/%s"|
|00003ef0| 2c 73 70 6f 6f 6c 2c 6e | 67 64 69 72 29 3b 0a 58 |,spool,n|gdir);.X|
|00003f00| 09 09 20 20 20 20 62 72 | 65 61 6b 3b 0a 58 09 09 |.. br|eak;.X..|
|00003f10| 63 61 73 65 20 27 44 27 | 3a 0a 58 09 09 20 20 20 |case 'D'|:.X.. |
|00003f20| 20 73 20 3d 20 64 69 73 | 74 5f 62 75 66 20 3d 20 | s = dis|t_buf = |
|00003f30| 66 65 74 63 68 6c 69 6e | 65 73 28 61 72 74 2c 44 |fetchlin|es(art,D|
|00003f40| 49 53 54 5f 4c 49 4e 45 | 29 3b 0a 58 09 09 20 20 |IST_LINE|);.X.. |
|00003f50| 20 20 62 72 65 61 6b 3b | 0a 58 09 09 63 61 73 65 | break;|.X..case|
|00003f60| 20 27 65 27 3a 0a 58 09 | 09 20 20 20 20 73 20 3d | 'e':.X.|. s =|
|00003f70| 20 28 65 78 74 72 61 63 | 74 70 72 6f 67 20 3f 20 | (extrac|tprog ? |
|00003f80| 65 78 74 72 61 63 74 70 | 72 6f 67 20 3a 20 22 2d |extractp|rog : "-|
|00003f90| 22 29 3b 0a 58 09 09 20 | 20 20 20 62 72 65 61 6b |");.X.. | break|
|00003fa0| 3b 0a 58 09 09 63 61 73 | 65 20 27 45 27 3a 0a 58 |;.X..cas|e 'E':.X|
|00003fb0| 09 09 20 20 20 20 73 20 | 3d 20 65 78 74 72 61 63 |.. s |= extrac|
|00003fc0| 74 64 65 73 74 3b 0a 58 | 09 09 20 20 20 20 62 72 |tdest;.X|.. br|
|00003fd0| 65 61 6b 3b 0a 58 09 09 | 63 61 73 65 20 27 66 27 |eak;.X..|case 'f'|
|00003fe0| 3a 09 09 09 2f 2a 20 66 | 72 6f 6d 20 6c 69 6e 65 |:.../* f|rom line|
|00003ff0| 20 2a 2f 0a 58 23 69 66 | 64 65 66 20 41 53 59 4e | */.X#if|def ASYN|
|00004000| 43 5f 50 41 52 53 45 0a | 58 09 09 20 20 20 20 70 |C_PARSE.|X.. p|
|00004010| 61 72 73 65 5f 6d 61 79 | 62 65 28 61 72 74 29 3b |arse_may|be(art);|
|00004020| 0a 58 23 65 6e 64 69 66 | 0a 58 09 09 20 20 20 20 |.X#endif|.X.. |
|00004030| 69 66 20 28 68 74 79 70 | 65 5b 52 45 50 4c 59 5f |if (htyp|e[REPLY_|
|00004040| 4c 49 4e 45 5d 2e 68 74 | 5f 6d 69 6e 70 6f 73 20 |LINE].ht|_minpos |
|00004050| 3e 3d 20 30 29 20 7b 0a | 58 09 09 09 09 09 09 2f |>= 0) {.|X....../|
|00004060| 2a 20 77 61 73 20 74 68 | 65 72 65 20 61 20 72 65 |* was th|ere a re|
|00004070| 70 6c 79 20 6c 69 6e 65 | 3f 20 2a 2f 0a 58 09 09 |ply line|? */.X..|
|00004080| 09 69 66 20 28 21 28 73 | 3d 72 65 70 6c 79 5f 62 |.if (!(s|=reply_b|
|00004090| 75 66 29 29 0a 58 09 09 | 09 20 20 20 20 73 20 3d |uf)).X..|. s =|
|000040a0| 20 72 65 70 6c 79 5f 62 | 75 66 20 3d 20 66 65 74 | reply_b|uf = fet|
|000040b0| 63 68 6c 69 6e 65 73 28 | 61 72 74 2c 52 45 50 4c |chlines(|art,REPL|
|000040c0| 59 5f 4c 49 4e 45 29 3b | 0a 58 09 09 20 20 20 20 |Y_LINE);|.X.. |
|000040d0| 7d 0a 58 09 09 20 20 20 | 20 65 6c 73 65 20 69 66 |}.X.. | else if|
|000040e0| 20 28 21 28 73 20 3d 20 | 66 72 6f 6d 5f 62 75 66 | (!(s = |from_buf|
|000040f0| 29 29 0a 58 09 09 09 73 | 20 3d 20 66 72 6f 6d 5f |)).X...s| = from_|
|00004100| 62 75 66 20 3d 20 66 65 | 74 63 68 6c 69 6e 65 73 |buf = fe|tchlines|
|00004110| 28 61 72 74 2c 46 52 4f | 4d 5f 4c 49 4e 45 29 3b |(art,FRO|M_LINE);|
|00004120| 0a 58 09 09 20 20 20 20 | 62 72 65 61 6b 3b 0a 58 |.X.. |break;.X|
|00004130| 09 09 63 61 73 65 20 27 | 46 27 3a 0a 58 23 69 66 |..case '|F':.X#if|
|00004140| 64 65 66 20 41 53 59 4e | 43 5f 50 41 52 53 45 0a |def ASYN|C_PARSE.|
|00004150| 58 09 09 20 20 20 20 70 | 61 72 73 65 5f 6d 61 79 |X.. p|arse_may|
|00004160| 62 65 28 61 72 74 29 3b | 0a 58 23 65 6e 64 69 66 |be(art);|.X#endif|
|00004170| 0a 58 09 09 20 20 20 20 | 69 66 20 28 68 74 79 70 |.X.. |if (htyp|
|00004180| 65 5b 46 4f 4c 4c 4f 57 | 5f 4c 49 4e 45 5d 2e 68 |e[FOLLOW|_LINE].h|
|00004190| 74 5f 6d 69 6e 70 6f 73 | 20 3e 3d 20 30 29 0a 58 |t_minpos| >= 0).X|
|000041a0| 09 09 09 09 09 2f 2a 20 | 69 73 20 74 68 65 72 65 |...../* |is there|
|000041b0| 20 61 20 46 6f 6c 6c 6f | 77 75 70 2d 54 6f 20 6c | a Follo|wup-To l|
|000041c0| 69 6e 65 3f 20 2a 2f 0a | 58 09 09 09 73 20 3d 20 |ine? */.|X...s = |
|000041d0| 66 6f 6c 6c 6f 77 5f 62 | 75 66 20 3d 20 66 65 74 |follow_b|uf = fet|
|000041e0| 63 68 6c 69 6e 65 73 28 | 61 72 74 2c 46 4f 4c 4c |chlines(|art,FOLL|
|000041f0| 4f 57 5f 4c 49 4e 45 29 | 3b 0a 58 09 09 20 20 20 |OW_LINE)|;.X.. |
|00004200| 20 65 6c 73 65 20 0a 58 | 09 09 09 73 20 3d 20 6e | else .X|...s = n|
|00004210| 67 73 5f 62 75 66 20 3d | 20 66 65 74 63 68 6c 69 |gs_buf =| fetchli|
|00004220| 6e 65 73 28 61 72 74 2c | 4e 47 53 5f 4c 49 4e 45 |nes(art,|NGS_LINE|
|00004230| 29 3b 0a 58 09 09 20 20 | 20 20 62 72 65 61 6b 3b |);.X.. | break;|
|00004240| 0a 58 09 09 63 61 73 65 | 20 27 68 27 3a 09 09 09 |.X..case| 'h':...|
|00004250| 2f 2a 20 68 65 61 64 65 | 72 20 66 69 6c 65 20 6e |/* heade|r file n|
|00004260| 61 6d 65 20 2a 2f 0a 58 | 09 09 20 20 20 20 73 20 |ame */.X|.. s |
|00004270| 3d 20 68 65 61 64 6e 61 | 6d 65 3b 0a 58 09 09 20 |= headna|me;.X.. |
|00004280| 20 20 20 62 72 65 61 6b | 3b 0a 58 09 09 63 61 73 | break|;.X..cas|
|00004290| 65 20 27 48 27 3a 09 09 | 09 2f 2a 20 68 6f 73 74 |e 'H':..|./* host|
|000042a0| 20 6e 61 6d 65 20 2a 2f | 0a 58 09 09 20 20 20 20 | name */|.X.. |
|000042b0| 73 20 3d 20 73 69 74 65 | 6e 61 6d 65 3b 0a 58 09 |s = site|name;.X.|
|000042c0| 09 20 20 20 20 62 72 65 | 61 6b 3b 0a 58 09 09 63 |. bre|ak;.X..c|
|000042d0| 61 73 65 20 27 69 27 3a | 0a 58 09 09 20 20 20 20 |ase 'i':|.X.. |
|000042e0| 69 66 20 28 21 28 73 3d | 61 72 74 69 64 5f 62 75 |if (!(s=|artid_bu|
|000042f0| 66 29 29 0a 58 09 09 09 | 73 20 3d 20 61 72 74 69 |f)).X...|s = arti|
|00004300| 64 5f 62 75 66 20 3d 20 | 66 65 74 63 68 6c 69 6e |d_buf = |fetchlin|
|00004310| 65 73 28 61 72 74 2c 4d | 45 53 53 49 44 5f 4c 49 |es(art,M|ESSID_LI|
|00004320| 4e 45 29 3b 0a 58 09 09 | 20 20 20 20 69 66 20 28 |NE);.X..| if (|
|00004330| 2a 73 20 26 26 20 2a 73 | 20 21 3d 20 27 3c 27 29 |*s && *s| != '<')|
|00004340| 20 7b 0a 58 09 09 09 73 | 70 72 69 6e 74 66 28 73 | {.X...s|printf(s|
|00004350| 63 72 62 75 66 2c 22 3c | 25 73 3e 22 2c 61 72 74 |crbuf,"<|%s>",art|
|00004360| 69 64 5f 62 75 66 29 3b | 0a 58 09 09 09 73 20 3d |id_buf);|.X...s =|
|00004370| 20 73 63 72 62 75 66 3b | 0a 58 09 09 20 20 20 20 | scrbuf;|.X.. |
|00004380| 7d 0a 58 09 09 20 20 20 | 20 62 72 65 61 6b 3b 0a |}.X.. | break;.|
|00004390| 58 09 09 63 61 73 65 20 | 27 49 27 3a 09 09 09 2f |X..case |'I':.../|
|000043a0| 2a 20 72 65 66 20 61 72 | 74 69 63 6c 65 20 69 6e |* ref ar|ticle in|
|000043b0| 64 69 63 61 74 6f 72 20 | 2a 2f 0a 58 09 09 20 20 |dicator |*/.X.. |
|000043c0| 20 20 73 20 3d 20 73 63 | 72 62 75 66 3b 0a 58 09 | s = sc|rbuf;.X.|
|000043d0| 09 20 20 20 20 73 70 72 | 69 6e 74 66 28 73 63 72 |. spr|intf(scr|
|000043e0| 62 75 66 2c 22 27 25 73 | 27 22 2c 69 6e 64 73 74 |buf,"'%s|'",indst|
|000043f0| 72 29 3b 0a 58 09 09 20 | 20 20 20 62 72 65 61 6b |r);.X.. | break|
|00004400| 3b 0a 58 09 09 63 61 73 | 65 20 27 6c 27 3a 09 09 |;.X..cas|e 'l':..|
|00004410| 09 2f 2a 20 72 6e 20 6c | 69 62 72 61 72 79 20 2a |./* rn l|ibrary *|
|00004420| 2f 0a 58 23 69 66 64 65 | 66 20 4e 45 57 53 41 44 |/.X#ifde|f NEWSAD|
|00004430| 4d 49 4e 0a 58 09 09 20 | 20 20 20 73 20 3d 20 6e |MIN.X.. | s = n|
|00004440| 65 77 73 61 64 6d 69 6e | 3b 0a 58 23 65 6c 73 65 |ewsadmin|;.X#else|
|00004450| 0a 58 09 09 20 20 20 20 | 73 20 3d 20 22 3f 3f 3f |.X.. |s = "???|
|00004460| 22 3b 0a 58 23 65 6e 64 | 69 66 0a 58 09 09 20 20 |";.X#end|if.X.. |
|00004470| 20 20 62 72 65 61 6b 3b | 0a 58 09 09 63 61 73 65 | break;|.X..case|
|00004480| 20 27 4c 27 3a 09 09 09 | 2f 2a 20 6c 6f 67 69 6e | 'L':...|/* login|
|00004490| 20 69 64 20 2a 2f 0a 58 | 09 09 20 20 20 20 73 20 | id */.X|.. s |
|000044a0| 3d 20 6c 6f 67 6e 61 6d | 65 3b 0a 58 09 09 20 20 |= lognam|e;.X.. |
|000044b0| 20 20 62 72 65 61 6b 3b | 0a 58 09 09 63 61 73 65 | break;|.X..case|
|000044c0| 20 27 6d 27 3a 09 09 2f | 2a 20 63 75 72 72 65 6e | 'm':../|* curren|
|000044d0| 74 20 6d 6f 64 65 20 2a | 2f 0a 58 09 09 20 20 20 |t mode *|/.X.. |
|000044e0| 20 73 20 3d 20 73 63 72 | 62 75 66 3b 0a 58 09 09 | s = scr|buf;.X..|
|000044f0| 20 20 20 20 2a 73 20 3d | 20 6d 6f 64 65 3b 0a 58 | *s =| mode;.X|
|00004500| 09 09 20 20 20 20 73 5b | 31 5d 20 3d 20 27 5c 30 |.. s[|1] = '\0|
|00004510| 27 3b 0a 58 09 09 20 20 | 20 20 62 72 65 61 6b 3b |';.X.. | break;|
|00004520| 0a 58 09 09 63 61 73 65 | 20 27 4d 27 3a 0a 58 23 |.X..case| 'M':.X#|
|00004530| 69 66 64 65 66 20 44 45 | 4c 41 59 4d 41 52 4b 0a |ifdef DE|LAYMARK.|
|00004540| 58 09 09 20 20 20 20 73 | 70 72 69 6e 74 66 28 73 |X.. s|printf(s|
|00004550| 63 72 62 75 66 2c 22 25 | 6c 64 22 2c 28 6c 6f 6e |crbuf,"%|ld",(lon|
|00004560| 67 29 64 6d 63 6f 75 6e | 74 29 3b 0a 58 09 09 20 |g)dmcoun|t);.X.. |
|00004570| 20 20 20 73 20 3d 20 73 | 63 72 62 75 66 3b 0a 58 | s = s|crbuf;.X|
|00004580| 23 65 6c 73 65 0a 58 09 | 09 20 20 20 20 73 20 3d |#else.X.|. s =|
|00004590| 20 6e 75 6c 6c 73 74 72 | 3b 0a 58 23 65 6e 64 69 | nullstr|;.X#endi|
|000045a0| 66 0a 58 09 09 20 20 20 | 20 62 72 65 61 6b 3b 0a |f.X.. | break;.|
|000045b0| 58 09 09 63 61 73 65 20 | 27 6e 27 3a 09 09 09 2f |X..case |'n':.../|
|000045c0| 2a 20 6e 65 77 73 67 72 | 6f 75 70 73 20 2a 2f 0a |* newsgr|oups */.|
|000045d0| 58 09 09 20 20 20 20 73 | 20 3d 20 6e 67 73 5f 62 |X.. s| = ngs_b|
|000045e0| 75 66 20 3d 20 66 65 74 | 63 68 6c 69 6e 65 73 28 |uf = fet|chlines(|
|000045f0| 61 72 74 2c 4e 47 53 5f | 4c 49 4e 45 29 3b 0a 58 |art,NGS_|LINE);.X|
|00004600| 09 09 20 20 20 20 62 72 | 65 61 6b 3b 0a 58 09 09 |.. br|eak;.X..|
|00004610| 63 61 73 65 20 27 4e 27 | 3a 09 09 09 2f 2a 20 66 |case 'N'|:.../* f|
|00004620| 75 6c 6c 20 6e 61 6d 65 | 20 2a 2f 0a 58 09 09 20 |ull name| */.X.. |
|00004630| 20 20 20 73 20 3d 20 67 | 65 74 76 61 6c 28 22 4e | s = g|etval("N|
|00004640| 41 4d 45 22 2c 72 65 61 | 6c 6e 61 6d 65 29 3b 0a |AME",rea|lname);.|
|00004650| 58 09 09 20 20 20 20 62 | 72 65 61 6b 3b 0a 58 09 |X.. b|reak;.X.|
|00004660| 09 63 61 73 65 20 27 6f | 27 3a 09 09 09 2f 2a 20 |.case 'o|':.../* |
|00004670| 6f 72 67 61 6e 69 7a 61 | 74 69 6f 6e 20 2a 2f 0a |organiza|tion */.|
|00004680| 58 23 69 66 64 65 66 20 | 49 47 4e 4f 52 45 4f 52 |X#ifdef |IGNOREOR|
|00004690| 47 0a 58 09 09 20 20 20 | 20 73 20 3d 20 67 65 74 |G.X.. | s = get|
|000046a0| 76 61 6c 28 22 4e 45 57 | 53 4f 52 47 22 2c 6f 72 |val("NEW|SORG",or|
|000046b0| 67 6e 61 6d 65 29 3b 20 | 0a 58 23 65 6c 73 65 0a |gname); |.X#else.|
|000046c0| 58 09 09 20 20 20 20 73 | 20 3d 20 67 65 74 65 6e |X.. s| = geten|
|000046d0| 76 28 22 4e 45 57 53 4f | 52 47 22 29 3b 0a 58 09 |v("NEWSO|RG");.X.|
|000046e0| 09 20 20 20 20 69 66 20 | 28 73 20 3d 3d 20 4e 75 |. if |(s == Nu|
|000046f0| 6c 6c 63 68 29 20 0a 58 | 09 09 09 73 20 3d 20 67 |llch) .X|...s = g|
|00004700| 65 74 76 61 6c 28 22 4f | 52 47 41 4e 49 5a 41 54 |etval("O|RGANIZAT|
|00004710| 49 4f 4e 22 2c 6f 72 67 | 6e 61 6d 65 29 3b 20 0a |ION",org|name); .|
|00004720| 58 23 65 6e 64 69 66 0a | 58 23 69 66 64 65 66 20 |X#endif.|X#ifdef |
|00004730| 4f 52 47 46 49 4c 45 0a | 58 09 09 20 20 20 20 69 |ORGFILE.|X.. i|
|00004740| 66 20 28 2a 73 20 3d 3d | 20 27 2f 27 29 20 7b 0a |f (*s ==| '/') {.|
|00004750| 58 09 09 09 46 49 4c 45 | 20 2a 6f 66 70 20 3d 20 |X...FILE| *ofp = |
|00004760| 66 6f 70 65 6e 28 73 2c | 22 72 22 29 3b 0a 58 0a |fopen(s,|"r");.X.|
|00004770| 58 09 09 09 69 66 20 28 | 6f 66 70 29 20 7b 0a 58 |X...if (|ofp) {.X|
|00004780| 09 09 09 20 20 20 20 66 | 67 65 74 73 28 73 63 72 |... f|gets(scr|
|00004790| 62 75 66 2c 73 69 7a 65 | 6f 66 20 73 63 72 62 75 |buf,size|of scrbu|
|000047a0| 66 2c 6f 66 70 29 3b 0a | 58 09 09 09 20 20 20 20 |f,ofp);.|X... |
|000047b0| 66 63 6c 6f 73 65 28 6f | 66 70 29 3b 0a 58 09 09 |fclose(o|fp);.X..|
|000047c0| 09 20 20 20 20 73 20 3d | 20 73 63 72 62 75 66 2b |. s =| scrbuf+|
|000047d0| 73 74 72 6c 65 6e 28 73 | 63 72 62 75 66 29 2d 31 |strlen(s|crbuf)-1|
|000047e0| 3b 0a 58 09 09 09 20 20 | 20 20 69 66 20 28 2a 73 |;.X... | if (*s|
|000047f0| 20 3d 3d 20 27 5c 6e 27 | 29 0a 58 09 09 09 09 2a | == '\n'|).X....*|
|00004800| 73 20 3d 20 27 5c 30 27 | 3b 0a 58 09 09 09 20 20 |s = '\0'|;.X... |
|00004810| 20 20 73 20 3d 20 73 63 | 72 62 75 66 3b 0a 58 09 | s = sc|rbuf;.X.|
|00004820| 09 09 7d 0a 58 09 09 20 | 20 20 20 7d 0a 58 23 65 |..}.X.. | }.X#e|
|00004830| 6e 64 69 66 0a 58 09 09 | 20 20 20 20 62 72 65 61 |ndif.X..| brea|
|00004840| 6b 3b 0a 58 09 09 63 61 | 73 65 20 27 4f 27 3a 0a |k;.X..ca|se 'O':.|
|00004850| 58 09 09 20 20 20 20 73 | 20 3d 20 6f 72 69 67 64 |X.. s| = origd|
|00004860| 69 72 3b 0a 58 09 09 20 | 20 20 20 62 72 65 61 6b |ir;.X.. | break|
|00004870| 3b 0a 58 09 09 63 61 73 | 65 20 27 70 27 3a 0a 58 |;.X..cas|e 'p':.X|
|00004880| 09 09 20 20 20 20 73 20 | 3d 20 63 77 64 3b 0a 58 |.. s |= cwd;.X|
|00004890| 09 09 20 20 20 20 62 72 | 65 61 6b 3b 0a 58 09 09 |.. br|eak;.X..|
|000048a0| 63 61 73 65 20 27 50 27 | 3a 0a 58 09 09 20 20 20 |case 'P'|:.X.. |
|000048b0| 20 73 20 3d 20 73 70 6f | 6f 6c 3b 0a 58 09 09 20 | s = spo|ol;.X.. |
|000048c0| 20 20 20 62 72 65 61 6b | 3b 0a 58 09 09 63 61 73 | break|;.X..cas|
|000048d0| 65 20 27 72 27 3a 0a 58 | 23 69 66 64 65 66 20 41 |e 'r':.X|#ifdef A|
|000048e0| 53 59 4e 43 5f 50 41 52 | 53 45 0a 58 09 09 20 20 |SYNC_PAR|SE.X.. |
|000048f0| 20 20 70 61 72 73 65 5f | 6d 61 79 62 65 28 61 72 | parse_|maybe(ar|
|00004900| 74 29 3b 0a 58 23 65 6e | 64 69 66 0a 58 09 09 20 |t);.X#en|dif.X.. |
|00004910| 20 20 20 69 66 20 28 68 | 74 79 70 65 5b 52 45 46 | if (h|type[REF|
|00004920| 53 5f 4c 49 4e 45 5d 2e | 68 74 5f 6d 69 6e 70 6f |S_LINE].|ht_minpo|
|00004930| 73 20 3e 3d 20 30 29 20 | 7b 0a 58 09 09 09 72 65 |s >= 0) |{.X...re|
|00004940| 66 73 5f 62 75 66 20 3d | 20 66 65 74 63 68 6c 69 |fs_buf =| fetchli|
|00004950| 6e 65 73 28 61 72 74 2c | 52 45 46 53 5f 4c 49 4e |nes(art,|REFS_LIN|
|00004960| 45 29 3b 0a 58 09 09 09 | 72 65 66 73 63 70 79 28 |E);.X...|refscpy(|
|00004970| 73 63 72 62 75 66 2c 28 | 73 69 7a 65 6f 66 20 73 |scrbuf,(|sizeof s|
|00004980| 63 72 62 75 66 29 2c 72 | 65 66 73 5f 62 75 66 29 |crbuf),r|efs_buf)|
|00004990| 3b 0a 58 09 09 20 20 20 | 20 7d 0a 58 09 09 20 20 |;.X.. | }.X.. |
|000049a0| 20 20 65 6c 73 65 0a 58 | 09 09 09 2a 73 63 72 62 | else.X|...*scrb|
|000049b0| 75 66 20 3d 20 27 5c 30 | 27 3b 0a 58 09 09 20 20 |uf = '\0|';.X.. |
|000049c0| 20 20 73 20 3d 20 72 69 | 6e 64 65 78 28 73 63 72 | s = ri|ndex(scr|
|000049d0| 62 75 66 2c 27 3c 27 29 | 3b 0a 58 09 09 20 20 20 |buf,'<')|;.X.. |
|000049e0| 20 62 72 65 61 6b 3b 0a | 58 09 09 63 61 73 65 20 | break;.|X..case |
|000049f0| 27 52 27 3a 0a 58 23 69 | 66 64 65 66 20 41 53 59 |'R':.X#i|fdef ASY|
|00004a00| 4e 43 5f 50 41 52 53 45 | 0a 58 09 09 20 20 20 20 |NC_PARSE|.X.. |
|00004a10| 70 61 72 73 65 5f 6d 61 | 79 62 65 28 61 72 74 29 |parse_ma|ybe(art)|
|00004a20| 3b 0a 58 23 65 6e 64 69 | 66 0a 58 09 09 20 20 20 |;.X#endi|f.X.. |
|00004a30| 20 69 66 20 28 68 74 79 | 70 65 5b 52 45 46 53 5f | if (hty|pe[REFS_|
|00004a40| 4c 49 4e 45 5d 2e 68 74 | 5f 6d 69 6e 70 6f 73 20 |LINE].ht|_minpos |
|00004a50| 3e 3d 20 30 29 20 7b 0a | 58 09 09 09 72 65 66 73 |>= 0) {.|X...refs|
|00004a60| 5f 62 75 66 20 3d 20 66 | 65 74 63 68 6c 69 6e 65 |_buf = f|etchline|
|00004a70| 73 28 61 72 74 2c 52 45 | 46 53 5f 4c 49 4e 45 29 |s(art,RE|FS_LINE)|
|00004a80| 3b 0a 58 09 09 09 72 65 | 66 73 63 70 79 28 73 63 |;.X...re|fscpy(sc|
|00004a90| 72 62 75 66 2c 28 73 69 | 7a 65 6f 66 20 73 63 72 |rbuf,(si|zeof scr|
|00004aa0| 62 75 66 29 2c 72 65 66 | 73 5f 62 75 66 29 3b 0a |buf),ref|s_buf);.|
|00004ab0| 58 09 09 09 2f 2a 20 6e | 6f 20 6d 6f 72 65 20 74 |X.../* n|o more t|
|00004ac0| 68 61 6e 20 33 20 70 72 | 69 6f 72 20 72 65 66 65 |han 3 pr|ior refe|
|00004ad0| 72 65 6e 63 65 73 20 61 | 6c 6c 6f 77 65 64 2c 0a |rences a|llowed,.|
|00004ae0| 58 09 09 09 2a 2a 20 69 | 6e 63 6c 75 64 69 6e 67 |X...** i|ncluding|
|00004af0| 20 74 68 65 20 6f 6e 65 | 20 63 6f 6e 63 61 74 65 | the one| concate|
|00004b00| 6e 61 74 65 64 20 62 65 | 6c 6f 77 20 2a 2f 0a 58 |nated be|low */.X|
|00004b10| 09 09 09 69 66 20 28 28 | 73 20 3d 20 72 69 6e 64 |...if ((|s = rind|
|00004b20| 65 78 28 73 63 72 62 75 | 66 2c 27 3c 27 29 29 20 |ex(scrbu|f,'<')) |
|00004b30| 3e 20 73 63 72 62 75 66 | 29 20 7b 0a 58 09 09 09 |> scrbuf|) {.X...|
|00004b40| 20 20 20 20 2a 73 20 3d | 20 27 5c 30 27 3b 0a 58 | *s =| '\0';.X|
|00004b50| 09 09 09 20 20 20 20 68 | 20 3d 20 72 69 6e 64 65 |... h| = rinde|
|00004b60| 78 28 73 63 72 62 75 66 | 2c 27 3c 27 29 3b 0a 58 |x(scrbuf|,'<');.X|
|00004b70| 09 09 09 20 20 20 20 2a | 73 20 3d 20 27 3c 27 3b |... *|s = '<';|
|00004b80| 0a 58 09 09 09 20 20 20 | 20 69 66 20 28 68 20 3e |.X... | if (h >|
|00004b90| 20 73 63 72 62 75 66 29 | 0a 58 09 09 09 09 73 74 | scrbuf)|.X....st|
|00004ba0| 72 63 70 79 28 73 63 72 | 62 75 66 2c 68 29 3b 0a |rcpy(scr|buf,h);.|
|00004bb0| 58 09 09 09 7d 0a 58 09 | 09 20 20 20 20 7d 0a 58 |X...}.X.|. }.X|
|00004bc0| 09 09 20 20 20 20 65 6c | 73 65 0a 58 09 09 09 2a |.. el|se.X...*|
|00004bd0| 73 63 72 62 75 66 20 3d | 20 27 5c 30 27 3b 0a 58 |scrbuf =| '\0';.X|
|00004be0| 09 09 20 20 20 20 69 66 | 20 28 21 61 72 74 69 64 |.. if| (!artid|
|00004bf0| 5f 62 75 66 29 0a 58 09 | 09 09 61 72 74 69 64 5f |_buf).X.|..artid_|
|00004c00| 62 75 66 20 3d 20 66 65 | 74 63 68 6c 69 6e 65 73 |buf = fe|tchlines|
|00004c10| 28 61 72 74 2c 4d 45 53 | 53 49 44 5f 4c 49 4e 45 |(art,MES|SID_LINE|
|00004c20| 29 3b 0a 58 09 09 20 20 | 20 20 69 66 20 28 61 72 |);.X.. | if (ar|
|00004c30| 74 69 64 5f 62 75 66 5b | 30 5d 20 3d 3d 20 27 3c |tid_buf[|0] == '<|
|00004c40| 27 29 0a 58 09 09 09 73 | 61 66 65 63 61 74 28 73 |').X...s|afecat(s|
|00004c50| 63 72 62 75 66 2c 61 72 | 74 69 64 5f 62 75 66 2c |crbuf,ar|tid_buf,|
|00004c60| 73 69 7a 65 6f 66 28 73 | 63 72 62 75 66 29 29 3b |sizeof(s|crbuf));|
|00004c70| 0a 58 09 09 20 20 20 20 | 65 6c 73 65 20 69 66 20 |.X.. |else if |
|00004c80| 28 61 72 74 69 64 5f 62 | 75 66 5b 30 5d 29 20 7b |(artid_b|uf[0]) {|
|00004c90| 0a 58 09 09 09 63 68 61 | 72 20 74 6d 70 62 75 66 |.X...cha|r tmpbuf|
|00004ca0| 5b 36 34 5d 3b 0a 58 20 | 20 20 20 0a 58 09 09 09 |[64];.X | .X...|
|00004cb0| 73 70 72 69 6e 74 66 28 | 74 6d 70 62 75 66 2c 22 |sprintf(|tmpbuf,"|
|00004cc0| 3c 25 73 3e 22 2c 61 72 | 74 69 64 5f 62 75 66 29 |<%s>",ar|tid_buf)|
|00004cd0| 3b 0a 58 09 09 09 73 61 | 66 65 63 61 74 28 73 63 |;.X...sa|fecat(sc|
|00004ce0| 72 62 75 66 2c 74 6d 70 | 62 75 66 2c 73 69 7a 65 |rbuf,tmp|buf,size|
|00004cf0| 6f 66 28 73 63 72 62 75 | 66 29 29 3b 0a 58 09 09 |of(scrbu|f));.X..|
|00004d00| 20 20 20 20 7d 0a 58 09 | 09 20 20 20 20 73 20 3d | }.X.|. s =|
|00004d10| 20 73 63 72 62 75 66 3b | 0a 58 09 09 20 20 20 20 | scrbuf;|.X.. |
|00004d20| 62 72 65 61 6b 3b 0a 58 | 09 09 63 61 73 65 20 27 |break;.X|..case '|
|00004d30| 73 27 3a 0a 58 09 09 20 | 20 20 20 69 66 20 28 21 |s':.X.. | if (!|
|00004d40| 28 73 3d 73 75 62 6a 5f | 62 75 66 29 29 0a 58 09 |(s=subj_|buf)).X.|
|00004d50| 09 09 73 20 3d 20 73 75 | 62 6a 5f 62 75 66 20 3d |..s = su|bj_buf =|
|00004d60| 20 66 65 74 63 68 73 75 | 62 6a 28 61 72 74 2c 54 | fetchsu|bj(art,T|
|00004d70| 52 55 45 2c 54 52 55 45 | 29 3b 0a 58 09 09 09 09 |RUE,TRUE|);.X....|
|00004d80| 09 09 2f 2a 20 67 65 74 | 20 73 75 62 6a 65 63 74 |../* get| subject|
|00004d90| 20 68 61 6e 64 79 20 2a | 2f 0a 58 09 09 20 20 20 | handy *|/.X.. |
|00004da0| 20 77 68 69 6c 65 20 28 | 28 2a 73 3d 3d 27 52 27 | while (|(*s=='R'|
|00004db0| 7c 7c 2a 73 3d 3d 27 72 | 27 29 26 26 28 73 5b 31 |||*s=='r|')&&(s[1|
|00004dc0| 5d 3d 3d 27 45 27 7c 7c | 73 5b 31 5d 3d 3d 27 65 |]=='E'|||s[1]=='e|
|00004dd0| 27 29 26 26 73 5b 32 5d | 3d 3d 27 3a 27 29 20 7b |')&&s[2]|==':') {|
|00004de0| 0a 58 09 09 09 09 09 09 | 2f 2a 20 73 6b 69 70 20 |.X......|/* skip |
|00004df0| 65 78 74 72 61 20 52 65 | 3a 20 2a 2f 0a 58 09 09 |extra Re|: */.X..|
|00004e00| 09 73 20 2b 3d 20 33 3b | 0a 58 09 09 09 69 66 20 |.s += 3;|.X...if |
|00004e10| 28 2a 73 20 3d 3d 20 27 | 20 27 29 0a 58 09 09 09 |(*s == '| ').X...|
|00004e20| 20 20 20 20 73 2b 2b 3b | 0a 58 09 09 20 20 20 20 | s++;|.X.. |
|00004e30| 7d 0a 58 09 09 20 20 20 | 20 69 66 20 28 68 20 3d |}.X.. | if (h =|
|00004e40| 20 69 6e 73 74 72 28 73 | 2c 22 2d 20 28 6e 66 22 | instr(s|,"- (nf"|
|00004e50| 2c 20 54 52 55 45 29 29 | 0a 58 09 09 09 2a 68 20 |, TRUE))|.X...*h |
|00004e60| 3d 20 27 5c 30 27 3b 0a | 58 09 09 20 20 20 20 62 |= '\0';.|X.. b|
|00004e70| 72 65 61 6b 3b 0a 58 09 | 09 63 61 73 65 20 27 53 |reak;.X.|.case 'S|
|00004e80| 27 3a 0a 58 09 09 20 20 | 20 20 69 66 20 28 21 28 |':.X.. | if (!(|
|00004e90| 73 3d 73 75 62 6a 5f 62 | 75 66 29 29 0a 58 09 09 |s=subj_b|uf)).X..|
|00004ea0| 09 73 20 3d 20 73 75 62 | 6a 5f 62 75 66 20 3d 20 |.s = sub|j_buf = |
|00004eb0| 66 65 74 63 68 73 75 62 | 6a 28 61 72 74 2c 54 52 |fetchsub|j(art,TR|
|00004ec0| 55 45 2c 54 52 55 45 29 | 3b 0a 58 09 09 09 09 09 |UE,TRUE)|;.X.....|
|00004ed0| 09 2f 2a 20 67 65 74 20 | 73 75 62 6a 65 63 74 20 |./* get |subject |
|00004ee0| 68 61 6e 64 79 20 2a 2f | 0a 58 09 09 20 20 20 20 |handy */|.X.. |
|00004ef0| 69 66 20 28 28 2a 73 3d | 3d 27 52 27 7c 7c 2a 73 |if ((*s=|='R'||*s|
|00004f00| 3d 3d 27 72 27 29 26 26 | 28 73 5b 31 5d 3d 3d 27 |=='r')&&|(s[1]=='|
|00004f10| 45 27 7c 7c 73 5b 31 5d | 3d 3d 27 65 27 29 26 26 |E'||s[1]|=='e')&&|
|00004f20| 73 5b 32 5d 3d 3d 27 3a | 27 29 20 7b 0a 58 09 09 |s[2]==':|') {.X..|
|00004f30| 09 09 09 09 2f 2a 20 73 | 6b 69 70 20 65 78 74 72 |..../* s|kip extr|
|00004f40| 61 20 52 65 3a 20 2a 2f | 0a 58 09 09 09 73 20 2b |a Re: */|.X...s +|
|00004f50| 3d 20 33 3b 0a 58 09 09 | 09 69 66 20 28 2a 73 20 |= 3;.X..|.if (*s |
|00004f60| 3d 3d 20 27 20 27 29 0a | 58 09 09 09 20 20 20 20 |== ' ').|X... |
|00004f70| 73 2b 2b 3b 0a 58 09 09 | 20 20 20 20 7d 0a 58 09 |s++;.X..| }.X.|
|00004f80| 09 20 20 20 20 62 72 65 | 61 6b 3b 0a 58 09 09 63 |. bre|ak;.X..c|
|00004f90| 61 73 65 20 27 74 27 3a | 0a 58 09 09 63 61 73 65 |ase 't':|.X..case|
|00004fa0| 20 27 54 27 3a 0a 58 23 | 69 66 64 65 66 20 41 53 | 'T':.X#|ifdef AS|
|00004fb0| 59 4e 43 5f 50 41 52 53 | 45 0a 58 09 09 20 20 20 |YNC_PARS|E.X.. |
|00004fc0| 20 70 61 72 73 65 5f 6d | 61 79 62 65 28 61 72 74 | parse_m|aybe(art|
|00004fd0| 29 3b 0a 58 23 65 6e 64 | 69 66 0a 58 09 09 20 20 |);.X#end|if.X.. |
|00004fe0| 20 20 69 66 20 28 68 74 | 79 70 65 5b 52 45 50 4c | if (ht|ype[REPL|
|00004ff0| 59 5f 4c 49 4e 45 5d 2e | 68 74 5f 6d 69 6e 70 6f |Y_LINE].|ht_minpo|
|00005000| 73 20 3e 3d 20 30 29 20 | 7b 0a 58 09 09 09 09 09 |s >= 0) |{.X.....|
|00005010| 2f 2a 20 77 61 73 20 74 | 68 65 72 65 20 61 20 72 |/* was t|here a r|
|00005020| 65 70 6c 79 20 6c 69 6e | 65 3f 20 2a 2f 0a 58 09 |eply lin|e? */.X.|
|00005030| 09 09 69 66 20 28 21 28 | 73 3d 72 65 70 6c 79 5f |..if (!(|s=reply_|
|00005040| 62 75 66 29 29 0a 58 09 | 09 09 20 20 20 20 73 20 |buf)).X.|.. s |
|00005050| 3d 20 72 65 70 6c 79 5f | 62 75 66 20 3d 20 66 65 |= reply_|buf = fe|
|00005060| 74 63 68 6c 69 6e 65 73 | 28 61 72 74 2c 52 45 50 |tchlines|(art,REP|
|00005070| 4c 59 5f 4c 49 4e 45 29 | 3b 0a 58 09 09 20 20 20 |LY_LINE)|;.X.. |
|00005080| 20 7d 0a 58 09 09 20 20 | 20 20 65 6c 73 65 20 69 | }.X.. | else i|
|00005090| 66 20 28 21 28 73 20 3d | 20 66 72 6f 6d 5f 62 75 |f (!(s =| from_bu|
|000050a0| 66 29 29 0a 58 09 09 09 | 73 20 3d 20 66 72 6f 6d |f)).X...|s = from|
|000050b0| 5f 62 75 66 20 3d 20 66 | 65 74 63 68 6c 69 6e 65 |_buf = f|etchline|
|000050c0| 73 28 61 72 74 2c 46 52 | 4f 4d 5f 4c 49 4e 45 29 |s(art,FR|OM_LINE)|
|000050d0| 3b 0a 58 09 09 20 20 20 | 20 69 66 20 28 2a 70 61 |;.X.. | if (*pa|
|000050e0| 74 74 65 72 6e 20 3d 3d | 20 27 54 27 29 20 7b 0a |ttern ==| 'T') {.|
|000050f0| 58 09 09 09 69 66 20 28 | 68 74 79 70 65 5b 50 41 |X...if (|htype[PA|
|00005100| 54 48 5f 4c 49 4e 45 5d | 2e 68 74 5f 6d 69 6e 70 |TH_LINE]|.ht_minp|
|00005110| 6f 73 20 3e 3d 20 30 29 | 20 7b 0a 58 09 09 09 09 |os >= 0)| {.X....|
|00005120| 09 2f 2a 20 73 68 6f 75 | 6c 64 20 77 65 20 73 75 |./* shou|ld we su|
|00005130| 62 73 74 69 74 75 74 65 | 20 70 61 74 68 3f 20 2a |bstitute| path? *|
|00005140| 2f 0a 58 09 09 09 20 20 | 20 20 73 20 3d 20 70 61 |/.X... | s = pa|
|00005150| 74 68 5f 62 75 66 20 3d | 20 66 65 74 63 68 6c 69 |th_buf =| fetchli|
|00005160| 6e 65 73 28 61 72 74 2c | 50 41 54 48 5f 4c 49 4e |nes(art,|PATH_LIN|
|00005170| 45 29 3b 0a 58 09 09 09 | 7d 0a 58 09 09 09 69 20 |E);.X...|}.X...i |
|00005180| 3d 20 73 74 72 6c 65 6e | 28 73 69 74 65 6e 61 6d |= strlen|(sitenam|
|00005190| 65 29 3b 0a 58 09 09 09 | 69 66 20 28 73 74 72 6e |e);.X...|if (strn|
|000051a0| 45 51 28 73 69 74 65 6e | 61 6d 65 2c 73 2c 69 29 |EQ(siten|ame,s,i)|
|000051b0| 20 26 26 20 73 5b 69 5d | 20 3d 3d 20 27 21 27 29 | && s[i]| == '!')|
|000051c0| 0a 58 09 09 09 20 20 20 | 20 73 20 2b 3d 20 69 20 |.X... | s += i |
|000051d0| 2b 20 31 3b 0a 58 09 09 | 20 20 20 20 7d 0a 58 09 |+ 1;.X..| }.X.|
|000051e0| 09 20 20 20 20 69 66 20 | 28 28 68 3d 69 6e 64 65 |. if |((h=inde|
|000051f0| 78 28 73 2c 27 28 27 29 | 29 20 21 3d 20 4e 75 6c |x(s,'(')|) != Nul|
|00005200| 6c 63 68 29 0a 58 09 09 | 09 09 09 09 2f 2a 20 73 |lch).X..|..../* s|
|00005210| 74 72 69 70 20 67 61 72 | 62 61 67 65 20 66 72 6f |trip gar|bage fro|
|00005220| 6d 20 65 6e 64 20 2a 2f | 0a 58 09 09 09 2a 28 68 |m end */|.X...*(h|
|00005230| 2d 31 29 20 3d 20 27 5c | 30 27 3b 0a 58 09 09 20 |-1) = '\|0';.X.. |
|00005240| 20 20 20 65 6c 73 65 20 | 69 66 20 28 28 68 3d 69 | else |if ((h=i|
|00005250| 6e 64 65 78 28 73 2c 27 | 3c 27 29 29 20 21 3d 20 |ndex(s,'|<')) != |
|00005260| 4e 75 6c 6c 63 68 29 20 | 7b 0a 58 09 09 09 09 09 |Nullch) |{.X.....|
|00005270| 09 2f 2a 20 6f 72 20 70 | 65 72 68 61 70 73 20 66 |./* or p|erhaps f|
|00005280| 72 6f 6d 20 62 65 67 69 | 6e 6e 69 6e 67 20 2a 2f |rom begi|nning */|
|00005290| 0a 58 09 09 09 73 20 3d | 20 68 2b 31 3b 0a 58 09 |.X...s =| h+1;.X.|
|000052a0| 09 09 69 66 20 28 28 68 | 3d 69 6e 64 65 78 28 73 |..if ((h|=index(s|
|000052b0| 2c 27 3e 27 29 29 20 21 | 3d 20 4e 75 6c 6c 63 68 |,'>')) !|= Nullch|
|000052c0| 29 0a 58 09 09 09 20 20 | 20 20 2a 68 20 3d 20 27 |).X... | *h = '|
|000052d0| 5c 30 27 3b 0a 58 09 09 | 20 20 20 20 7d 0a 58 09 |\0';.X..| }.X.|
|000052e0| 09 20 20 20 20 62 72 65 | 61 6b 3b 0a 58 09 09 63 |. bre|ak;.X..c|
|000052f0| 61 73 65 20 27 75 27 3a | 0a 58 09 09 20 20 20 20 |ase 'u':|.X.. |
|00005300| 73 70 72 69 6e 74 66 28 | 73 63 72 62 75 66 2c 22 |sprintf(|scrbuf,"|
|00005310| 25 6c 64 22 2c 28 6c 6f | 6e 67 29 74 6f 72 65 61 |%ld",(lo|ng)torea|
|00005320| 64 5b 6e 67 5d 29 3b 0a | 58 09 09 20 20 20 20 73 |d[ng]);.|X.. s|
|00005330| 20 3d 20 73 63 72 62 75 | 66 3b 0a 58 09 09 20 20 | = scrbu|f;.X.. |
|00005340| 20 20 62 72 65 61 6b 3b | 0a 58 09 09 63 61 73 65 | break;|.X..case|
|00005350| 20 27 55 27 3a 20 7b 0a | 58 09 09 20 20 20 20 69 | 'U': {.|X.. i|
|00005360| 6e 74 20 75 6e 73 65 65 | 6e 3b 0a 58 0a 58 09 09 |nt unsee|n;.X.X..|
|00005370| 20 20 20 20 75 6e 73 65 | 65 6e 20 3d 20 28 61 72 | unse|en = (ar|
|00005380| 74 20 3c 3d 20 6c 61 73 | 74 61 72 74 29 20 26 26 |t <= las|tart) &&|
|00005390| 20 21 77 61 73 5f 72 65 | 61 64 28 61 72 74 29 3b | !was_re|ad(art);|
|000053a0| 0a 58 23 69 66 64 65 66 | 20 55 53 45 54 48 52 45 |.X#ifdef| USETHRE|
|000053b0| 41 44 53 0a 58 09 09 20 | 20 20 20 69 66 20 28 73 |ADS.X.. | if (s|
|000053c0| 65 6c 65 63 74 65 64 5f | 72 6f 6f 74 5f 63 6e 74 |elected_|root_cnt|
|000053d0| 29 20 7b 0a 58 09 09 09 | 69 6e 74 20 73 65 6c 65 |) {.X...|int sele|
|000053e0| 63 74 65 64 3b 0a 58 0a | 58 09 09 09 73 65 6c 65 |cted;.X.|X...sele|
|000053f0| 63 74 65 64 20 3d 20 63 | 75 72 72 5f 70 5f 61 72 |cted = c|urr_p_ar|
|00005400| 74 0a 58 09 09 09 09 26 | 26 20 28 73 65 6c 65 63 |t.X....&|& (selec|
|00005410| 74 65 64 5f 72 6f 6f 74 | 73 5b 63 75 72 72 5f 70 |ted_root|s[curr_p|
|00005420| 5f 61 72 74 2d 3e 72 6f | 6f 74 5d 20 26 20 31 29 |_art->ro|ot] & 1)|
|00005430| 3b 0a 58 09 09 09 73 70 | 72 69 6e 74 66 28 73 63 |;.X...sp|rintf(sc|
|00005440| 72 62 75 66 2c 22 25 6c | 64 22 2c 0a 58 09 09 09 |rbuf,"%l|d",.X...|
|00005450| 09 28 6c 6f 6e 67 29 73 | 65 6c 65 63 74 65 64 5f |.(long)s|elected_|
|00005460| 63 6f 75 6e 74 20 2d 20 | 28 73 65 6c 65 63 74 65 |count - |(selecte|
|00005470| 64 20 26 26 20 75 6e 73 | 65 65 6e 29 29 3b 0a 58 |d && uns|een));.X|
|00005480| 09 09 20 20 20 20 7d 0a | 58 09 09 20 20 20 20 65 |.. }.|X.. e|
|00005490| 6c 73 65 0a 58 09 09 09 | 73 70 72 69 6e 74 66 28 |lse.X...|sprintf(|
|000054a0| 73 63 72 62 75 66 2c 22 | 25 6c 64 22 2c 28 6c 6f |scrbuf,"|%ld",(lo|
|000054b0| 6e 67 29 74 6f 72 65 61 | 64 5b 6e 67 5d 2d 75 6e |ng)torea|d[ng]-un|
|000054c0| 74 68 72 65 61 64 65 64 | 0a 58 09 09 09 09 09 09 |threaded|.X......|
|000054d0| 2d 75 6e 73 65 65 6e 29 | 3b 0a 58 23 65 6c 73 65 |-unseen)|;.X#else|
|000054e0| 0a 58 09 09 20 20 20 20 | 73 70 72 69 6e 74 66 28 |.X.. |sprintf(|
|000054f0| 73 63 72 62 75 66 2c 22 | 25 6c 64 22 2c 28 6c 6f |scrbuf,"|%ld",(lo|
|00005500| 6e 67 29 74 6f 72 65 61 | 64 5b 6e 67 5d 2d 75 6e |ng)torea|d[ng]-un|
|00005510| 73 65 65 6e 29 3b 0a 58 | 23 65 6e 64 69 66 0a 58 |seen);.X|#endif.X|
|00005520| 09 09 20 20 20 20 73 20 | 3d 20 73 63 72 62 75 66 |.. s |= scrbuf|
|00005530| 3b 0a 58 09 09 20 20 20 | 20 62 72 65 61 6b 3b 0a |;.X.. | break;.|
|00005540| 58 09 09 7d 0a 58 23 69 | 66 64 65 66 20 55 53 45 |X..}.X#i|fdef USE|
|00005550| 54 48 52 45 41 44 53 0a | 58 09 09 63 61 73 65 20 |THREADS.|X..case |
|00005560| 27 76 27 3a 20 7b 0a 58 | 09 09 20 20 20 20 69 6e |'v': {.X|.. in|
|00005570| 74 20 73 65 6c 65 63 74 | 65 64 2c 20 75 6e 73 65 |t select|ed, unse|
|00005580| 65 6e 3b 0a 58 0a 58 09 | 09 20 20 20 20 73 65 6c |en;.X.X.|. sel|
|00005590| 65 63 74 65 64 20 3d 20 | 63 75 72 72 5f 70 5f 61 |ected = |curr_p_a|
|000055a0| 72 74 0a 58 09 09 09 09 | 26 26 20 28 73 65 6c 65 |rt.X....|&& (sele|
|000055b0| 63 74 65 64 5f 72 6f 6f | 74 73 5b 63 75 72 72 5f |cted_roo|ts[curr_|
|000055c0| 70 5f 61 72 74 2d 3e 72 | 6f 6f 74 5d 20 26 20 31 |p_art->r|oot] & 1|
|000055d0| 29 3b 0a 58 09 09 20 20 | 20 20 75 6e 73 65 65 6e |);.X.. | unseen|
|000055e0| 20 3d 20 28 61 72 74 20 | 3c 3d 20 6c 61 73 74 61 | = (art |<= lasta|
|000055f0| 72 74 29 20 26 26 20 21 | 77 61 73 5f 72 65 61 64 |rt) && !|was_read|
|00005600| 28 61 72 74 29 3b 0a 58 | 09 09 20 20 20 20 73 70 |(art);.X|.. sp|
|00005610| 72 69 6e 74 66 28 73 63 | 72 62 75 66 2c 22 25 6c |rintf(sc|rbuf,"%l|
|00005620| 64 22 2c 28 6c 6f 6e 67 | 29 74 6f 72 65 61 64 5b |d",(long|)toread[|
|00005630| 6e 67 5d 20 2d 20 73 65 | 6c 65 63 74 65 64 5f 63 |ng] - se|lected_c|
|00005640| 6f 75 6e 74 0a 58 09 09 | 09 09 09 20 2d 20 75 6e |ount.X..|... - un|
|00005650| 74 68 72 65 61 64 65 64 | 20 2d 20 28 21 73 65 6c |threaded| - (!sel|
|00005660| 65 63 74 65 64 20 26 26 | 20 75 6e 73 65 65 6e 29 |ected &&| unseen)|
|00005670| 29 3b 0a 58 09 09 20 20 | 20 20 73 20 3d 20 73 63 |);.X.. | s = sc|
|00005680| 72 62 75 66 3b 0a 58 09 | 09 20 20 20 20 62 72 65 |rbuf;.X.|. bre|
|00005690| 61 6b 3b 0a 58 09 09 7d | 0a 58 09 09 63 61 73 65 |ak;.X..}|.X..case|
|000056a0| 20 27 77 27 3a 0a 58 09 | 09 20 20 20 20 73 20 3d | 'w':.X.|. s =|
|000056b0| 20 6d 74 6c 69 62 3b 0a | 58 09 09 20 20 20 20 62 | mtlib;.|X.. b|
|000056c0| 72 65 61 6b 3b 0a 58 09 | 09 63 61 73 65 20 27 57 |reak;.X.|.case 'W|
|000056d0| 27 3a 0a 58 09 09 20 20 | 20 20 73 20 3d 20 74 68 |':.X.. | s = th|
|000056e0| 72 65 61 64 64 69 72 3b | 0a 58 09 09 20 20 20 20 |readdir;|.X.. |
|000056f0| 62 72 65 61 6b 3b 0a 58 | 23 65 6e 64 69 66 0a 58 |break;.X|#endif.X|
|00005700| 09 09 63 61 73 65 20 27 | 78 27 3a 09 09 09 2f 2a |..case '|x':.../*|
|00005710| 20 6e 65 77 73 20 6c 69 | 62 72 61 72 79 20 2a 2f | news li|brary */|
|00005720| 0a 58 09 09 20 20 20 20 | 73 20 3d 20 6c 69 62 3b |.X.. |s = lib;|
|00005730| 0a 58 09 09 20 20 20 20 | 62 72 65 61 6b 3b 0a 58 |.X.. |break;.X|
|00005740| 09 09 63 61 73 65 20 27 | 58 27 3a 09 09 09 2f 2a |..case '|X':.../*|
|00005750| 20 72 6e 20 6c 69 62 72 | 61 72 79 20 2a 2f 0a 58 | rn libr|ary */.X|
|00005760| 09 09 20 20 20 20 73 20 | 3d 20 72 6e 6c 69 62 3b |.. s |= rnlib;|
|00005770| 0a 58 09 09 20 20 20 20 | 62 72 65 61 6b 3b 0a 58 |.X.. |break;.X|
|00005780| 09 09 63 61 73 65 20 27 | 7a 27 3a 0a 58 23 69 66 |..case '|z':.X#if|
|00005790| 64 65 66 20 4c 49 4e 4b | 41 52 54 0a 58 09 09 20 |def LINK|ART.X.. |
|000057a0| 20 20 20 73 20 3d 20 6c | 69 6e 6b 61 72 74 6e 61 | s = l|inkartna|
|000057b0| 6d 65 3b 09 2f 2a 20 73 | 6f 20 45 75 6e 69 63 65 |me;./* s|o Eunice|
|000057c0| 20 70 65 6f 70 6c 65 20 | 67 65 74 20 72 69 67 68 | people |get righ|
|000057d0| 74 20 66 69 6c 65 20 2a | 2f 0a 58 23 65 6c 73 65 |t file *|/.X#else|
|000057e0| 0a 58 09 09 20 20 20 20 | 73 20 3d 20 73 63 72 62 |.X.. |s = scrb|
|000057f0| 75 66 3b 0a 58 09 09 20 | 20 20 20 73 70 72 69 6e |uf;.X.. | sprin|
|00005800| 74 66 28 73 2c 22 25 6c | 64 22 2c 28 6c 6f 6e 67 |tf(s,"%l|d",(long|
|00005810| 29 61 72 74 29 3b 0a 58 | 23 65 6e 64 69 66 0a 58 |)art);.X|#endif.X|
|00005820| 09 09 20 20 20 20 69 66 | 20 28 73 74 61 74 28 73 |.. if| (stat(s|
|00005830| 2c 26 66 69 6c 65 73 74 | 61 74 29 20 3c 20 30 29 |,&filest|at) < 0)|
|00005840| 0a 58 09 09 09 66 69 6c | 65 73 74 61 74 2e 73 74 |.X...fil|estat.st|
|00005850| 5f 73 69 7a 65 20 3d 20 | 30 4c 3b 0a 58 09 09 20 |_size = |0L;.X.. |
|00005860| 20 20 20 73 70 72 69 6e | 74 66 28 73 63 72 62 75 | sprin|tf(scrbu|
|00005870| 66 2c 22 25 35 6c 64 22 | 2c 28 6c 6f 6e 67 29 66 |f,"%5ld"|,(long)f|
|00005880| 69 6c 65 73 74 61 74 2e | 73 74 5f 73 69 7a 65 29 |ilestat.|st_size)|
|00005890| 3b 0a 58 09 09 20 20 20 | 20 73 20 3d 20 73 63 72 |;.X.. | s = scr|
|000058a0| 62 75 66 3b 0a 58 09 09 | 20 20 20 20 62 72 65 61 |buf;.X..| brea|
|000058b0| 6b 3b 0a 58 23 69 66 64 | 65 66 20 55 53 45 54 48 |k;.X#ifd|ef USETH|
|000058c0| 52 45 41 44 53 0a 58 09 | 09 63 61 73 65 20 27 5a |READS.X.|.case 'Z|
|000058d0| 27 3a 0a 58 09 09 20 20 | 20 20 73 70 72 69 6e 74 |':.X.. | sprint|
|000058e0| 66 28 73 63 72 62 75 66 | 2c 22 25 6c 64 22 2c 28 |f(scrbuf|,"%ld",(|
|000058f0| 6c 6f 6e 67 29 73 65 6c | 65 63 74 65 64 5f 63 6f |long)sel|ected_co|
|00005900| 75 6e 74 29 3b 0a 58 09 | 09 20 20 20 20 73 20 3d |unt);.X.|. s =|
|00005910| 20 73 63 72 62 75 66 3b | 0a 58 09 09 20 20 20 20 | scrbuf;|.X.. |
|00005920| 62 72 65 61 6b 3b 0a 58 | 23 65 6e 64 69 66 0a 58 |break;.X|#endif.X|
|00005930| 09 09 64 65 66 61 75 6c | 74 3a 0a 58 09 09 20 20 |..defaul|t:.X.. |
|00005940| 20 20 69 66 20 28 2d 2d | 64 65 73 74 73 69 7a 65 | if (--|destsize|
|00005950| 20 3c 3d 20 30 29 0a 58 | 09 09 09 61 62 6f 72 74 | <= 0).X|...abort|
|00005960| 5f 69 6e 74 65 72 70 28 | 29 3b 0a 58 09 09 20 20 |_interp(|);.X.. |
|00005970| 20 20 2a 64 65 73 74 2b | 2b 20 3d 20 2a 70 61 74 | *dest+|+ = *pat|
|00005980| 74 65 72 6e 20 7c 20 6d | 65 74 61 62 69 74 3b 0a |tern | m|etabit;.|
|00005990| 58 09 09 20 20 20 20 73 | 20 3d 20 6e 75 6c 6c 73 |X.. s| = nulls|
|000059a0| 74 72 3b 0a 58 09 09 20 | 20 20 20 62 72 65 61 6b |tr;.X.. | break|
|000059b0| 3b 0a 58 09 09 7d 0a 58 | 09 20 20 20 20 7d 0a 58 |;.X..}.X|. }.X|
|000059c0| 09 20 20 20 20 69 66 20 | 28 21 73 29 0a 58 09 09 |. if |(!s).X..|
|000059d0| 73 20 3d 20 6e 75 6c 6c | 73 74 72 3b 0a 58 09 20 |s = null|str;.X. |
|000059e0| 20 20 20 70 61 74 74 65 | 72 6e 2b 2b 3b 0a 58 09 | patte|rn++;.X.|
|000059f0| 20 20 20 20 69 66 20 28 | 75 70 70 65 72 20 7c 7c | if (|upper |||
|00005a00| 20 6c 61 73 74 63 6f 6d | 70 29 20 7b 0a 58 09 09 | lastcom|p) {.X..|
|00005a10| 63 68 61 72 20 2a 74 3b | 0a 58 0a 58 09 09 69 66 |char *t;|.X.X..if|
|00005a20| 20 28 73 20 21 3d 20 73 | 63 72 62 75 66 29 20 7b | (s != s|crbuf) {|
|00005a30| 0a 58 09 09 20 20 20 20 | 73 61 66 65 63 70 79 28 |.X.. |safecpy(|
|00005a40| 73 63 72 62 75 66 2c 73 | 2c 28 73 69 7a 65 6f 66 |scrbuf,s|,(sizeof|
|00005a50| 20 73 63 72 62 75 66 29 | 29 3b 0a 58 09 09 20 20 | scrbuf)|);.X.. |
|00005a60| 20 20 73 20 3d 20 73 63 | 72 62 75 66 3b 0a 58 09 | s = sc|rbuf;.X.|
|00005a70| 09 7d 0a 58 09 09 69 66 | 20 28 75 70 70 65 72 20 |.}.X..if| (upper |
|00005a80| 7c 7c 20 21 28 74 3d 72 | 69 6e 64 65 78 28 73 2c ||| !(t=r|index(s,|
|00005a90| 27 2f 27 29 29 29 0a 58 | 09 09 20 20 20 20 74 20 |'/'))).X|.. t |
|00005aa0| 3d 20 73 3b 0a 58 09 09 | 77 68 69 6c 65 20 28 2a |= s;.X..|while (*|
|00005ab0| 74 20 26 26 20 21 69 73 | 61 6c 70 68 61 28 2a 74 |t && !is|alpha(*t|
|00005ac0| 29 29 0a 58 09 09 20 20 | 20 20 74 2b 2b 3b 0a 58 |)).X.. | t++;.X|
|00005ad0| 09 09 69 66 20 28 69 73 | 6c 6f 77 65 72 28 2a 74 |..if (is|lower(*t|
|00005ae0| 29 29 0a 58 09 09 20 20 | 20 20 2a 74 20 3d 20 74 |)).X.. | *t = t|
|00005af0| 6f 75 70 70 65 72 28 2a | 74 29 3b 0a 58 09 20 20 |oupper(*|t);.X. |
|00005b00| 20 20 7d 0a 58 09 20 20 | 20 20 2f 2a 20 44 6f 20 | }.X. | /* Do |
|00005b10| 77 65 20 68 61 76 65 20 | 72 6f 6f 6d 20 6c 65 66 |we have |room lef|
|00005b20| 74 3f 20 2a 2f 0a 58 09 | 20 20 20 20 69 20 3d 20 |t? */.X.| i = |
|00005b30| 73 74 72 6c 65 6e 28 73 | 29 3b 0a 58 09 20 20 20 |strlen(s|);.X. |
|00005b40| 20 69 66 20 28 64 65 73 | 74 73 69 7a 65 20 3c 3d | if (des|tsize <=|
|00005b50| 20 69 29 0a 58 09 09 61 | 62 6f 72 74 5f 69 6e 74 | i).X..a|bort_int|
|00005b60| 65 72 70 28 29 3b 0a 58 | 09 20 20 20 20 64 65 73 |erp();.X|. des|
|00005b70| 74 73 69 7a 65 20 2d 3d | 20 69 3b 09 2f 2a 20 61 |tsize -=| i;./* a|
|00005b80| 64 6a 75 73 74 20 74 68 | 65 20 73 69 7a 65 20 6e |djust th|e size n|
|00005b90| 6f 77 2e 20 2a 2f 0a 58 | 0a 58 09 20 20 20 20 2f |ow. */.X|.X. /|
|00005ba0| 2a 20 41 20 6d 61 7a 65 | 20 6f 66 20 74 77 69 73 |* A maze| of twis|
|00005bb0| 74 79 20 6c 69 74 74 6c | 65 20 63 6f 6e 64 69 74 |ty littl|e condit|
|00005bc0| 69 6f 6e 73 2c 20 61 6c | 6c 20 61 6c 69 6b 65 2e |ions, al|l alike.|
|00005bd0| 2e 2e 20 2a 2f 0a 58 09 | 20 20 20 20 69 66 20 28 |.. */.X.| if (|
|00005be0| 6d 65 74 61 62 69 74 29 | 20 7b 0a 58 09 09 2f 2a |metabit)| {.X../*|
|00005bf0| 20 73 65 74 20 6d 65 74 | 61 20 62 69 74 20 77 68 | set met|a bit wh|
|00005c00| 69 6c 65 20 63 6f 70 79 | 69 6e 67 2e 20 2a 2f 0a |ile copy|ing. */.|
|00005c10| 58 09 09 69 20 3d 20 6d | 65 74 61 62 69 74 3b 09 |X..i = m|etabit;.|
|00005c20| 09 2f 2a 20 6d 61 79 62 | 65 20 67 65 74 20 69 6e |./* mayb|e get in|
|00005c30| 74 6f 20 72 65 67 69 73 | 74 65 72 20 2a 2f 0a 58 |to regis|ter */.X|
|00005c40| 09 09 69 66 20 28 73 20 | 3d 3d 20 64 65 73 74 29 |..if (s |== dest)|
|00005c50| 20 7b 0a 58 09 09 20 20 | 20 20 77 68 69 6c 65 20 | {.X.. | while |
|00005c60| 28 2a 64 65 73 74 29 0a | 58 09 09 09 2a 64 65 73 |(*dest).|X...*des|
|00005c70| 74 2b 2b 20 7c 3d 20 69 | 3b 0a 58 09 09 7d 20 65 |t++ |= i|;.X..} e|
|00005c80| 6c 73 65 20 7b 0a 58 09 | 09 20 20 20 20 77 68 69 |lse {.X.|. whi|
|00005c90| 6c 65 20 28 2a 73 29 0a | 58 09 09 09 2a 64 65 73 |le (*s).|X...*des|
|00005ca0| 74 2b 2b 20 3d 20 2a 73 | 2b 2b 20 7c 20 69 3b 0a |t++ = *s|++ | i;.|
|00005cb0| 58 09 09 7d 0a 58 09 20 | 20 20 20 7d 20 65 6c 73 |X..}.X. | } els|
|00005cc0| 65 20 69 66 20 28 72 65 | 5f 71 75 6f 74 65 29 20 |e if (re|_quote) |
|00005cd0| 7b 0a 58 09 09 2f 2a 20 | 70 75 74 20 61 20 62 61 |{.X../* |put a ba|
|00005ce0| 63 6b 73 6c 61 73 68 20 | 62 65 66 6f 72 65 20 72 |ckslash |before r|
|00005cf0| 65 67 65 78 70 20 73 70 | 65 63 69 61 6c 73 20 77 |egexp sp|ecials w|
|00005d00| 68 69 6c 65 20 63 6f 70 | 79 69 6e 67 2e 20 2a 2f |hile cop|ying. */|
|00005d10| 0a 58 09 09 69 66 20 28 | 73 20 3d 3d 20 64 65 73 |.X..if (|s == des|
|00005d20| 74 29 20 7b 0a 58 09 09 | 20 20 20 20 2f 2a 20 63 |t) {.X..| /* c|
|00005d30| 6f 70 79 20 6f 75 74 20 | 73 6f 20 77 65 20 63 61 |opy out |so we ca|
|00005d40| 6e 20 63 6f 70 79 20 69 | 6e 2e 20 2a 2f 0a 58 09 |n copy i|n. */.X.|
|00005d50| 09 20 20 20 20 73 61 66 | 65 63 70 79 28 73 63 72 |. saf|ecpy(scr|
|00005d60| 62 75 66 2c 20 73 2c 20 | 73 69 7a 65 6f 66 20 73 |buf, s, |sizeof s|
|00005d70| 63 72 62 75 66 29 3b 0a | 58 09 09 20 20 20 20 73 |crbuf);.|X.. s|
|00005d80| 20 3d 20 73 63 72 62 75 | 66 3b 0a 58 09 09 20 20 | = scrbu|f;.X.. |
|00005d90| 20 20 69 66 20 28 69 20 | 3e 20 73 69 7a 65 6f 66 | if (i |> sizeof|
|00005da0| 20 73 63 72 62 75 66 29 | 09 2f 2a 20 77 65 20 74 | scrbuf)|./* we t|
|00005db0| 72 75 6e 63 61 74 65 64 | 2c 20 61 63 6b 21 20 2a |runcated|, ack! *|
|00005dc0| 2f 0a 58 09 09 09 64 65 | 73 74 73 69 7a 65 20 2b |/.X...de|stsize +|
|00005dd0| 3d 20 69 20 2d 20 73 69 | 7a 65 6f 66 20 73 63 72 |= i - si|zeof scr|
|00005de0| 62 75 66 3b 0a 58 09 09 | 7d 0a 58 09 09 77 68 69 |buf;.X..|}.X..whi|
|00005df0| 6c 65 20 28 2a 73 29 20 | 7b 0a 58 09 09 20 20 20 |le (*s) |{.X.. |
|00005e00| 20 69 66 20 28 69 6e 64 | 65 78 28 72 65 67 65 78 | if (ind|ex(regex|
|00005e10| 70 5f 73 70 65 63 69 61 | 6c 73 2c 20 2a 73 29 29 |p_specia|ls, *s))|
|00005e20| 20 7b 0a 58 09 09 09 69 | 66 20 28 2d 2d 64 65 73 | {.X...i|f (--des|
|00005e30| 74 73 69 7a 65 20 3c 3d | 20 30 29 0a 58 09 09 09 |tsize <=| 0).X...|
|00005e40| 20 20 20 20 61 62 6f 72 | 74 5f 69 6e 74 65 72 70 | abor|t_interp|
|00005e50| 28 29 3b 0a 58 09 09 09 | 2a 64 65 73 74 2b 2b 20 |();.X...|*dest++ |
|00005e60| 3d 20 27 5c 5c 27 3b 0a | 58 09 09 20 20 20 20 7d |= '\\';.|X.. }|
|00005e70| 0a 58 09 09 20 20 20 20 | 2a 64 65 73 74 2b 2b 20 |.X.. |*dest++ |
|00005e80| 3d 20 2a 73 2b 2b 3b 0a | 58 09 09 7d 0a 58 09 20 |= *s++;.|X..}.X. |
|00005e90| 20 20 20 7d 20 65 6c 73 | 65 20 7b 0a 58 09 09 2f | } els|e {.X../|
|00005ea0| 2a 20 73 74 72 61 69 67 | 68 74 20 63 6f 70 79 2e |* straig|ht copy.|
|00005eb0| 20 2a 2f 0a 58 09 09 69 | 66 20 28 73 20 3d 3d 20 | */.X..i|f (s == |
|00005ec0| 64 65 73 74 29 20 7b 0a | 58 09 09 20 20 20 20 64 |dest) {.|X.. d|
|00005ed0| 65 73 74 20 2b 3d 20 69 | 3b 0a 58 09 09 7d 20 65 |est += i|;.X..} e|
|00005ee0| 6c 73 65 20 7b 0a 58 09 | 09 20 20 20 20 77 68 69 |lse {.X.|. whi|
|00005ef0| 6c 65 20 28 2a 73 29 0a | 58 09 09 09 2a 64 65 73 |le (*s).|X...*des|
|00005f00| 74 2b 2b 20 3d 20 2a 73 | 2b 2b 3b 0a 58 09 09 7d |t++ = *s|++;.X..}|
|00005f10| 0a 58 09 20 20 20 20 7d | 0a 58 09 7d 0a 58 09 65 |.X. }|.X.}.X.e|
|00005f20| 6c 73 65 20 7b 0a 58 09 | 20 20 20 20 69 66 20 28 |lse {.X.| if (|
|00005f30| 2d 2d 64 65 73 74 73 69 | 7a 65 20 3c 3d 20 30 29 |--destsi|ze <= 0)|
|00005f40| 0a 58 09 09 61 62 6f 72 | 74 5f 69 6e 74 65 72 70 |.X..abor|t_interp|
|00005f50| 28 29 3b 0a 58 09 20 20 | 20 20 69 66 20 28 2a 70 |();.X. | if (*p|
|00005f60| 61 74 74 65 72 6e 20 3d | 3d 20 27 5e 27 20 26 26 |attern =|= '^' &&|
|00005f70| 20 70 61 74 74 65 72 6e | 5b 31 5d 29 20 7b 0a 58 | pattern|[1]) {.X|
|00005f80| 09 09 2b 2b 70 61 74 74 | 65 72 6e 3b 09 09 09 2f |..++patt|ern;.../|
|00005f90| 2a 20 73 6b 69 70 20 75 | 70 61 72 72 6f 77 20 2a |* skip u|parrow *|
|00005fa0| 2f 0a 58 09 09 69 20 3d | 20 2a 70 61 74 74 65 72 |/.X..i =| *patter|
|00005fb0| 6e 3b 09 09 2f 2a 20 67 | 65 74 20 63 68 61 72 20 |n;../* g|et char |
|00005fc0| 69 6e 74 6f 20 61 20 72 | 65 67 69 73 74 65 72 20 |into a r|egister |
|00005fd0| 2a 2f 0a 58 09 09 69 66 | 20 28 69 20 3d 3d 20 27 |*/.X..if| (i == '|
|00005fe0| 3f 27 29 0a 58 09 09 20 | 20 20 20 2a 64 65 73 74 |?').X.. | *dest|
|00005ff0| 2b 2b 20 3d 20 27 5c 31 | 37 37 27 20 7c 20 6d 65 |++ = '\1|77' | me|
|00006000| 74 61 62 69 74 3b 0a 58 | 09 09 65 6c 73 65 20 69 |tabit;.X|..else i|
|00006010| 66 20 28 69 20 3d 3d 20 | 27 28 27 29 20 7b 0a 58 |f (i == |'(') {.X|
|00006020| 09 09 20 20 20 20 6d 65 | 74 61 62 69 74 20 3d 20 |.. me|tabit = |
|00006030| 30 32 30 30 3b 0a 58 09 | 09 20 20 20 20 64 65 73 |0200;.X.|. des|
|00006040| 74 73 69 7a 65 2b 2b 3b | 0a 58 09 09 7d 0a 58 09 |tsize++;|.X..}.X.|
|00006050| 09 65 6c 73 65 20 69 66 | 20 28 69 20 3d 3d 20 27 |.else if| (i == '|
|00006060| 29 27 29 20 7b 0a 58 09 | 09 20 20 20 20 6d 65 74 |)') {.X.|. met|
|00006070| 61 62 69 74 20 3d 20 30 | 3b 0a 58 09 09 20 20 20 |abit = 0|;.X.. |
|00006080| 20 64 65 73 74 73 69 7a | 65 2b 2b 3b 0a 58 09 09 | destsiz|e++;.X..|
|00006090| 7d 0a 58 09 09 65 6c 73 | 65 0a 58 09 09 20 20 20 |}.X..els|e.X.. |
|000060a0| 20 2a 64 65 73 74 2b 2b | 20 3d 20 69 20 26 20 30 | *dest++| = i & 0|
|000060b0| 33 37 20 7c 20 6d 65 74 | 61 62 69 74 3b 0a 58 09 |37 | met|abit;.X.|
|000060c0| 09 70 61 74 74 65 72 6e | 2b 2b 3b 0a 58 09 20 20 |.pattern|++;.X. |
|000060d0| 20 20 7d 0a 58 09 20 20 | 20 20 65 6c 73 65 20 69 | }.X. | else i|
|000060e0| 66 20 28 2a 70 61 74 74 | 65 72 6e 20 3d 3d 20 27 |f (*patt|ern == '|
|000060f0| 5c 5c 27 20 26 26 20 70 | 61 74 74 65 72 6e 5b 31 |\\' && p|attern[1|
|00006100| 5d 29 20 7b 0a 58 09 09 | 2b 2b 70 61 74 74 65 72 |]) {.X..|++patter|
|00006110| 6e 3b 09 09 09 2f 2a 20 | 73 6b 69 70 20 62 61 63 |n;.../* |skip bac|
|00006120| 6b 73 6c 61 73 68 20 2a | 2f 0a 58 09 09 69 20 3d |kslash *|/.X..i =|
|00006130| 20 2a 70 61 74 74 65 72 | 6e 3b 09 09 2f 2a 20 67 | *patter|n;../* g|
|00006140| 65 74 20 63 68 61 72 20 | 69 6e 74 6f 20 61 20 72 |et char |into a r|
|00006150| 65 67 69 73 74 65 72 20 | 2a 2f 0a 58 20 20 20 20 |egister |*/.X |
|00006160| 0a 58 09 09 2f 2a 20 74 | 68 69 73 20 75 73 65 64 |.X../* t|his used|
|00006170| 20 74 6f 20 62 65 20 61 | 20 73 77 69 74 63 68 20 | to be a| switch |
|00006180| 62 75 74 20 74 68 65 20 | 69 66 20 6d 61 79 20 73 |but the |if may s|
|00006190| 61 76 65 20 73 70 61 63 | 65 20 2a 2f 0a 58 09 09 |ave spac|e */.X..|
|000061a0| 0a 58 09 09 69 66 20 28 | 69 20 3e 3d 20 27 30 27 |.X..if (|i >= '0'|
|000061b0| 20 26 26 20 69 20 3c 3d | 20 27 37 27 29 20 7b 0a | && i <=| '7') {.|
|000061c0| 58 09 09 20 20 20 20 69 | 20 3d 20 31 3b 0a 58 09 |X.. i| = 1;.X.|
|000061d0| 09 20 20 20 20 77 68 69 | 6c 65 20 28 69 20 3c 20 |. whi|le (i < |
|000061e0| 30 31 30 30 30 20 26 26 | 20 2a 70 61 74 74 65 72 |01000 &&| *patter|
|000061f0| 6e 20 3e 3d 20 27 30 27 | 20 26 26 20 2a 70 61 74 |n >= '0'| && *pat|
|00006200| 74 65 72 6e 20 3c 3d 20 | 27 37 27 29 20 7b 0a 58 |tern <= |'7') {.X|
|00006210| 09 09 09 69 20 3c 3c 3d | 20 33 3b 0a 58 09 09 09 |...i <<=| 3;.X...|
|00006220| 69 20 2b 3d 20 2a 70 61 | 74 74 65 72 6e 2b 2b 20 |i += *pa|ttern++ |
|00006230| 2d 20 27 30 27 3b 0a 58 | 09 09 20 20 20 20 7d 0a |- '0';.X|.. }.|
|00006240| 58 09 09 20 20 20 20 2a | 64 65 73 74 2b 2b 20 3d |X.. *|dest++ =|
|00006250| 20 69 20 26 20 30 33 37 | 37 20 7c 20 6d 65 74 61 | i & 037|7 | meta|
|00006260| 62 69 74 3b 0a 58 09 09 | 20 20 20 20 2d 2d 70 61 |bit;.X..| --pa|
|00006270| 74 74 65 72 6e 3b 0a 58 | 09 09 7d 0a 58 09 09 65 |ttern;.X|..}.X..e|
|00006280| 6c 73 65 20 69 66 20 28 | 69 20 3d 3d 20 27 62 27 |lse if (|i == 'b'|
|00006290| 29 0a 58 09 09 20 20 20 | 20 2a 64 65 73 74 2b 2b |).X.. | *dest++|
|000062a0| 20 3d 20 27 5c 62 27 20 | 7c 20 6d 65 74 61 62 69 | = '\b' || metabi|
|000062b0| 74 3b 0a 58 09 09 65 6c | 73 65 20 69 66 20 28 69 |t;.X..el|se if (i|
|000062c0| 20 3d 3d 20 27 66 27 29 | 0a 58 09 09 20 20 20 20 | == 'f')|.X.. |
|000062d0| 2a 64 65 73 74 2b 2b 20 | 3d 20 27 5c 66 27 20 7c |*dest++ |= '\f' ||
|000062e0| 20 6d 65 74 61 62 69 74 | 3b 0a 58 09 09 65 6c 73 | metabit|;.X..els|
|000062f0| 65 20 69 66 20 28 69 20 | 3d 3d 20 27 6e 27 29 0a |e if (i |== 'n').|
|00006300| 58 09 09 20 20 20 20 2a | 64 65 73 74 2b 2b 20 3d |X.. *|dest++ =|
|00006310| 20 27 5c 6e 27 20 7c 20 | 6d 65 74 61 62 69 74 3b | '\n' | |metabit;|
|00006320| 0a 58 09 09 65 6c 73 65 | 20 69 66 20 28 69 20 3d |.X..else| if (i =|
|00006330| 3d 20 27 72 27 29 0a 58 | 09 09 20 20 20 20 2a 64 |= 'r').X|.. *d|
|00006340| 65 73 74 2b 2b 20 3d 20 | 27 5c 72 27 20 7c 20 6d |est++ = |'\r' | m|
|00006350| 65 74 61 62 69 74 3b 0a | 58 09 09 65 6c 73 65 20 |etabit;.|X..else |
|00006360| 69 66 20 28 69 20 3d 3d | 20 27 74 27 29 0a 58 09 |if (i ==| 't').X.|
|00006370| 09 20 20 20 20 2a 64 65 | 73 74 2b 2b 20 3d 20 27 |. *de|st++ = '|
|00006380| 5c 74 27 20 7c 20 6d 65 | 74 61 62 69 74 3b 0a 58 |\t' | me|tabit;.X|
|00006390| 09 09 65 6c 73 65 0a 58 | 09 09 20 20 20 20 2a 64 |..else.X|.. *d|
|000063a0| 65 73 74 2b 2b 20 3d 20 | 69 20 7c 20 6d 65 74 61 |est++ = |i | meta|
|000063b0| 62 69 74 3b 0a 58 09 09 | 70 61 74 74 65 72 6e 2b |bit;.X..|pattern+|
|000063c0| 2b 3b 0a 58 09 20 20 20 | 20 7d 0a 58 09 20 20 20 |+;.X. | }.X. |
|000063d0| 20 65 6c 73 65 0a 58 09 | 09 2a 64 65 73 74 2b 2b | else.X.|.*dest++|
|000063e0| 20 3d 20 2a 70 61 74 74 | 65 72 6e 2b 2b 20 7c 20 | = *patt|ern++ | |
|000063f0| 6d 65 74 61 62 69 74 3b | 0a 58 09 7d 0a 58 20 20 |metabit;|.X.}.X |
+--------+-------------------------+-------------------------+--------+--------+
Only 25.0 KB of data is shown above.