home *** CD-ROM | disk | FTP | other *** search
/ Source Code 1992 March / Source_Code_CD-ROM_Walnut_Creek_March_1992.iso / usenet / altsrcs / 2 / 2280 < prev    next >
SHell self-extracting ARchive  |  1990-12-28  |  13.4 KB

open in: MacOS 8.1     |     Win98     |     DOS

view JSON data     |     view as text

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

You can browse this item here: 2280

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, ASCII text default
100% TrID E-Mail message (Var. 2) default
100% checkBytes Printable ASCII default
100% perlTextCheck Likely Text (Perl) default
100% siegfried fmt/329 Shell Archive Format default
100% detectItEasy Format: plain text[LF] default (weak)
100% xdgMime message/rfc822 default



hex view
+--------+-------------------------+-------------------------+--------+--------+
|00000000| 46 72 6f 6d 3a 20 74 6f | 6d 40 73 73 64 2e 63 73 |From: to|m@ssd.cs|
|00000010| 64 2e 68 61 72 72 69 73 | 2e 63 6f 6d 20 28 54 6f |d.harris|.com (To|
|00000020| 6d 20 48 6f 72 73 6c 65 | 79 29 0a 4e 65 77 73 67 |m Horsle|y).Newsg|
|00000030| 72 6f 75 70 73 3a 20 61 | 6c 74 2e 73 6f 75 72 63 |roups: a|lt.sourc|
|00000040| 65 73 0a 53 75 62 6a 65 | 63 74 3a 20 6d 6b 69 64 |es.Subje|ct: mkid|
|00000050| 20 30 37 2f 31 31 20 28 | 69 64 65 6e 74 69 66 69 | 07/11 (|identifi|
|00000060| 65 72 20 63 72 6f 73 73 | 20 72 65 66 65 72 65 6e |er cross| referen|
|00000070| 63 65 20 74 6f 6f 6c 29 | 0a 4d 65 73 73 61 67 65 |ce tool)|.Message|
|00000080| 2d 49 44 3a 20 3c 54 4f | 4d 2e 39 30 44 65 63 31 |-ID: <TO|M.90Dec1|
|00000090| 32 30 39 34 35 31 36 40 | 68 63 78 32 2e 73 73 64 |2094516@|hcx2.ssd|
|000000a0| 2e 63 73 64 2e 68 61 72 | 72 69 73 2e 63 6f 6d 3e |.csd.har|ris.com>|
|000000b0| 0a 44 61 74 65 3a 20 31 | 32 20 44 65 63 20 39 30 |.Date: 1|2 Dec 90|
|000000c0| 20 31 34 3a 34 35 3a 31 | 36 20 47 4d 54 0a 0a 23 | 14:45:1|6 GMT..#|
|000000d0| 21 20 2f 62 69 6e 2f 73 | 68 0a 23 20 54 68 69 73 |! /bin/s|h.# This|
|000000e0| 20 69 73 20 61 20 73 68 | 65 6c 6c 20 61 72 63 68 | is a sh|ell arch|
|000000f0| 69 76 65 2e 20 20 52 65 | 6d 6f 76 65 20 61 6e 79 |ive. Re|move any|
|00000100| 74 68 69 6e 67 20 62 65 | 66 6f 72 65 20 74 68 69 |thing be|fore thi|
|00000110| 73 20 6c 69 6e 65 2c 20 | 74 68 65 6e 20 75 6e 70 |s line, |then unp|
|00000120| 61 63 6b 0a 23 20 69 74 | 20 62 79 20 73 61 76 69 |ack.# it| by savi|
|00000130| 6e 67 20 69 74 20 69 6e | 74 6f 20 61 20 66 69 6c |ng it in|to a fil|
|00000140| 65 20 61 6e 64 20 74 79 | 70 69 6e 67 20 22 73 68 |e and ty|ping "sh|
|00000150| 20 66 69 6c 65 22 2e 20 | 20 54 6f 20 6f 76 65 72 | file". | To over|
|00000160| 77 72 69 74 65 20 65 78 | 69 73 74 69 6e 67 0a 23 |write ex|isting.#|
|00000170| 20 66 69 6c 65 73 2c 20 | 74 79 70 65 20 22 73 68 | files, |type "sh|
|00000180| 20 66 69 6c 65 20 2d 63 | 22 2e 20 20 59 6f 75 20 | file -c|". You |
|00000190| 63 61 6e 20 61 6c 73 6f | 20 66 65 65 64 20 74 68 |can also| feed th|
|000001a0| 69 73 20 61 73 20 73 74 | 61 6e 64 61 72 64 20 69 |is as st|andard i|
|000001b0| 6e 70 75 74 20 76 69 61 | 0a 23 20 75 6e 73 68 61 |nput via|.# unsha|
|000001c0| 72 2c 20 6f 72 20 62 79 | 20 74 79 70 69 6e 67 20 |r, or by| typing |
|000001d0| 22 73 68 20 3c 66 69 6c | 65 22 2c 20 65 2e 67 2e |"sh <fil|e", e.g.|
|000001e0| 2e 20 20 49 66 20 74 68 | 69 73 20 61 72 63 68 69 |. If th|is archi|
|000001f0| 76 65 20 69 73 20 63 6f | 6d 70 6c 65 74 65 2c 20 |ve is co|mplete, |
|00000200| 79 6f 75 0a 23 20 77 69 | 6c 6c 20 73 65 65 20 74 |you.# wi|ll see t|
|00000210| 68 65 20 66 6f 6c 6c 6f | 77 69 6e 67 20 6d 65 73 |he follo|wing mes|
|00000220| 73 61 67 65 20 61 74 20 | 74 68 65 20 65 6e 64 3a |sage at |the end:|
|00000230| 0a 23 09 09 22 45 6e 64 | 20 6f 66 20 61 72 63 68 |.#.."End| of arch|
|00000240| 69 76 65 20 37 20 28 6f | 66 20 31 31 29 2e 22 0a |ive 7 (o|f 11).".|
|00000250| 23 20 43 6f 6e 74 65 6e | 74 73 3a 20 20 69 69 64 |# Conten|ts: iid|
|00000260| 2e 79 0a 23 20 57 72 61 | 70 70 65 64 20 62 79 20 |.y.# Wra|pped by |
|00000270| 74 6f 6d 40 68 63 78 32 | 20 6f 6e 20 57 65 64 20 |tom@hcx2| on Wed |
|00000280| 44 65 63 20 31 32 20 30 | 37 3a 32 31 3a 35 37 20 |Dec 12 0|7:21:57 |
|00000290| 31 39 39 30 0a 50 41 54 | 48 3d 2f 62 69 6e 3a 2f |1990.PAT|H=/bin:/|
|000002a0| 75 73 72 2f 62 69 6e 3a | 2f 75 73 72 2f 75 63 62 |usr/bin:|/usr/ucb|
|000002b0| 20 3b 20 65 78 70 6f 72 | 74 20 50 41 54 48 0a 69 | ; expor|t PATH.i|
|000002c0| 66 20 74 65 73 74 20 2d | 66 20 27 69 69 64 2e 79 |f test -|f 'iid.y|
|000002d0| 27 20 2d 61 20 22 24 7b | 31 7d 22 20 21 3d 20 22 |' -a "${|1}" != "|
|000002e0| 2d 63 22 20 3b 20 74 68 | 65 6e 20 0a 20 20 65 63 |-c" ; th|en . ec|
|000002f0| 68 6f 20 73 68 61 72 3a | 20 57 69 6c 6c 20 6e 6f |ho shar:| Will no|
|00000300| 74 20 63 6c 6f 62 62 65 | 72 20 65 78 69 73 74 69 |t clobbe|r existi|
|00000310| 6e 67 20 66 69 6c 65 20 | 5c 22 27 69 69 64 2e 79 |ng file |\"'iid.y|
|00000320| 27 5c 22 0a 65 6c 73 65 | 0a 65 63 68 6f 20 73 68 |'\".else|.echo sh|
|00000330| 61 72 3a 20 45 78 74 72 | 61 63 74 69 6e 67 20 5c |ar: Extr|acting \|
|00000340| 22 27 69 69 64 2e 79 27 | 5c 22 20 5c 28 31 31 32 |"'iid.y'|\" \(112|
|00000350| 37 38 20 63 68 61 72 61 | 63 74 65 72 73 5c 29 0a |78 chara|cters\).|
|00000360| 73 65 64 20 22 73 2f 5e | 58 2f 2f 22 20 3e 27 69 |sed "s/^|X//" >'i|
|00000370| 69 64 2e 79 27 20 3c 3c | 27 45 4e 44 5f 4f 46 5f |id.y' <<|'END_OF_|
|00000380| 46 49 4c 45 27 0a 58 25 | 7b 0a 58 2f 2a 20 54 68 |FILE'.X%|{.X/* Th|
|00000390| 69 73 20 69 73 20 74 68 | 65 20 79 61 63 63 20 64 |is is th|e yacc d|
|000003a0| 65 66 69 6e 69 74 69 6f | 6e 20 66 6f 72 20 74 68 |efinitio|n for th|
|000003b0| 65 20 69 69 64 20 63 6f | 6d 6d 61 6e 64 20 6c 61 |e iid co|mmand la|
|000003c0| 6e 67 75 61 67 65 2e 0a | 58 20 2a 20 54 68 65 20 |nguage..|X * The |
|000003d0| 6d 61 69 6e 20 70 72 6f | 67 72 61 6d 2c 20 73 63 |main pro|gram, sc|
|000003e0| 61 6e 6e 65 72 2c 20 61 | 6e 64 20 70 61 72 73 65 |anner, a|nd parse|
|000003f0| 72 20 61 72 65 20 64 65 | 66 69 6e 65 64 20 68 65 |r are de|fined he|
|00000400| 72 65 2e 0a 58 20 2a 20 | 54 68 65 20 75 74 69 6c |re..X * |The util|
|00000410| 69 74 79 20 66 75 6e 63 | 74 69 6f 6e 73 20 69 6e |ity func|tions in|
|00000420| 76 6f 6b 65 64 20 66 72 | 6f 6d 20 68 65 72 65 20 |voked fr|om here |
|00000430| 61 72 65 20 69 6e 20 69 | 69 64 66 75 6e 2e 63 0a |are in i|idfun.c.|
|00000440| 58 20 2a 2f 0a 58 0a 58 | 23 69 6e 63 6c 75 64 65 |X */.X.X|#include|
|00000450| 20 22 69 69 64 64 65 66 | 2e 68 22 0a 58 0a 58 25 | "iiddef|.h".X.X%|
|00000460| 7d 0a 58 0a 58 25 75 6e | 69 6f 6e 20 7b 0a 58 20 |}.X.X%un|ion {.X |
|00000470| 20 20 73 65 74 5f 74 79 | 70 65 20 2a 20 20 20 20 | set_ty|pe * |
|00000480| 20 73 65 74 64 65 66 20 | 3b 20 20 20 0a 58 20 20 | setdef |; .X |
|00000490| 20 69 64 5f 74 79 70 65 | 20 2a 20 20 20 20 20 20 | id_type| * |
|000004a0| 73 74 72 64 65 66 20 3b | 0a 58 20 20 20 69 64 5f |strdef ;|.X id_|
|000004b0| 6c 69 73 74 5f 74 79 70 | 65 20 2a 20 6c 69 73 74 |list_typ|e * list|
|000004c0| 64 65 66 20 3b 0a 58 7d | 0a 58 0a 58 25 74 6f 6b |def ;.X}|.X.X%tok|
|000004d0| 65 6e 20 3c 20 73 65 74 | 64 65 66 20 3e 20 53 45 |en < set|def > SE|
|000004e0| 54 0a 58 0a 58 25 74 6f | 6b 65 6e 20 3c 20 73 74 |T.X.X%to|ken < st|
|000004f0| 72 64 65 66 20 3e 20 49 | 44 20 53 48 45 4c 4c 5f |rdef > I|D SHELL_|
|00000500| 51 55 45 52 59 20 53 48 | 45 4c 4c 5f 43 4f 4d 4d |QUERY SH|ELL_COMM|
|00000510| 41 4e 44 0a 58 0a 58 25 | 74 79 70 65 20 3c 20 73 |AND.X.X%|type < s|
|00000520| 65 74 64 65 66 20 3e 20 | 51 75 65 72 79 20 50 72 |etdef > |Query Pr|
|00000530| 69 6d 69 74 69 76 65 0a | 58 0a 58 25 74 79 70 65 |imitive.|X.X%type|
|00000540| 20 3c 20 6c 69 73 74 64 | 65 66 20 3e 20 4c 69 64 | < listd|ef > Lid|
|00000550| 5f 67 72 6f 75 70 20 41 | 69 64 5f 67 72 6f 75 70 |_group A|id_group|
|00000560| 20 49 64 5f 6c 69 73 74 | 20 43 6f 6d 6d 61 6e 64 | Id_list| Command|
|00000570| 5f 6c 69 73 74 0a 58 0a | 58 25 74 6f 6b 65 6e 20 |_list.X.|X%token |
|00000580| 4c 49 44 20 41 49 44 20 | 42 45 47 49 4e 20 53 45 |LID AID |BEGIN SE|
|00000590| 54 53 20 53 53 20 46 49 | 4c 45 53 20 53 48 4f 57 |TS SS FI|LES SHOW|
|000005a0| 20 48 45 4c 50 20 4f 46 | 46 20 4d 41 54 43 48 0a | HELP OF|F MATCH.|
|000005b0| 58 0a 58 25 6c 65 66 74 | 20 4f 52 0a 58 0a 58 25 |X.X%left| OR.X.X%|
|000005c0| 6c 65 66 74 20 41 4e 44 | 0a 58 0a 58 25 6c 65 66 |left AND|.X.X%lef|
|000005d0| 74 20 4e 4f 54 0a 58 0a | 58 25 73 74 61 72 74 20 |t NOT.X.|X%start |
|000005e0| 43 6f 6d 6d 61 6e 64 0a | 58 0a 58 25 25 0a 58 0a |Command.|X.X%%.X.|
|000005f0| 58 43 6f 6d 6d 61 6e 64 | 20 3a 0a 58 20 20 20 42 |XCommand| :.X B|
|00000600| 45 47 49 4e 20 49 44 0a | 58 20 20 20 20 20 20 7b |EGIN ID.|X {|
|00000610| 0a 58 20 20 20 20 20 20 | 20 20 20 2f 2a 20 63 64 |.X | /* cd|
|00000620| 20 74 6f 20 74 68 65 20 | 64 69 72 65 63 74 6f 72 | to the |director|
|00000630| 79 20 73 70 65 63 69 66 | 69 65 64 20 61 73 20 61 |y specif|ied as a|
|00000640| 72 67 75 6d 65 6e 74 2c | 20 66 6c 75 73 68 20 73 |rgument,| flush s|
|00000650| 65 74 73 20 2a 2f 0a 58 | 0a 58 20 20 20 20 20 20 |ets */.X|.X |
|00000660| 20 20 20 53 65 74 44 69 | 72 65 63 74 6f 72 79 28 | SetDi|rectory(|
|00000670| 24 32 29 20 3b 0a 58 20 | 20 20 20 20 20 20 20 20 |$2) ;.X | |
|00000680| 46 6c 75 73 68 53 65 74 | 73 28 29 20 3b 0a 58 20 |FlushSet|s() ;.X |
|00000690| 20 20 20 20 20 7d 0a 58 | 7c 20 20 53 65 74 5f 71 | }.X|| Set_q|
|000006a0| 75 65 72 79 20 51 75 65 | 72 79 0a 58 7c 20 20 46 |uery Que|ry.X| F|
|000006b0| 69 6c 65 5f 71 75 65 72 | 79 20 51 75 65 72 79 0a |ile_quer|y Query.|
|000006c0| 58 20 20 20 20 20 20 7b | 0a 58 20 20 20 20 20 20 |X {|.X |
|000006d0| 20 20 20 2f 2a 20 70 72 | 69 6e 74 20 74 68 65 20 | /* pr|int the |
|000006e0| 6c 69 73 74 20 6f 66 20 | 66 69 6c 65 73 20 72 65 |list of |files re|
|000006f0| 73 75 6c 74 69 6e 67 20 | 66 72 6f 6d 20 51 75 65 |sulting |from Que|
|00000700| 72 79 20 2a 2f 0a 58 0a | 58 20 20 20 20 20 20 20 |ry */.X.|X |
|00000710| 20 20 50 72 69 6e 74 53 | 65 74 28 24 32 29 20 3b | PrintS|et($2) ;|
|00000720| 0a 58 20 20 20 20 20 20 | 7d 0a 58 7c 20 20 53 48 |.X |}.X| SH|
|00000730| 4f 57 20 53 45 54 0a 58 | 20 20 20 20 20 20 7b 0a |OW SET.X| {.|
|00000740| 58 20 20 20 20 20 20 20 | 20 20 2f 2a 20 72 75 6e |X | /* run|
|00000750| 20 50 41 47 45 52 20 6f | 6e 20 74 68 65 20 6c 69 | PAGER o|n the li|
|00000760| 73 74 20 6f 66 20 66 69 | 6c 65 73 20 69 6e 20 53 |st of fi|les in S|
|00000770| 45 54 20 2a 2f 0a 58 0a | 58 20 20 20 20 20 20 20 |ET */.X.|X |
|00000780| 20 20 52 75 6e 50 61 67 | 65 72 28 50 61 67 65 72 | RunPag|er(Pager|
|00000790| 2c 20 24 32 29 20 3b 0a | 58 20 20 20 20 20 20 7d |, $2) ;.|X }|
|000007a0| 0a 58 7c 20 20 53 45 54 | 53 0a 58 20 20 20 20 20 |.X| SET|S.X |
|000007b0| 20 7b 0a 58 20 20 20 20 | 20 20 20 20 20 2f 2a 20 | {.X | /* |
|000007c0| 64 65 73 63 72 69 62 65 | 20 73 65 74 73 20 63 72 |describe| sets cr|
|000007d0| 65 61 74 65 64 20 73 6f | 20 66 61 72 20 2a 2f 0a |eated so| far */.|
|000007e0| 58 0a 58 20 20 20 20 20 | 20 20 20 20 44 65 73 63 |X.X | Desc|
|000007f0| 72 69 62 65 53 65 74 73 | 28 29 20 3b 0a 58 20 20 |ribeSets|() ;.X |
|00000800| 20 20 20 20 7d 0a 58 7c | 20 20 48 45 4c 50 0a 58 | }.X|| HELP.X|
|00000810| 20 20 20 20 20 20 7b 0a | 58 20 20 20 20 20 20 20 | {.|X |
|00000820| 20 20 2f 2a 20 72 75 6e | 20 50 41 47 45 52 20 6f | /* run| PAGER o|
|00000830| 6e 20 74 68 65 20 68 65 | 6c 70 20 66 69 6c 65 20 |n the he|lp file |
|00000840| 2a 2f 0a 58 0a 58 20 20 | 20 20 20 20 20 20 20 52 |*/.X.X | R|
|00000850| 75 6e 50 61 67 65 72 28 | 50 61 67 65 72 2c 20 48 |unPager(|Pager, H|
|00000860| 65 6c 70 53 65 74 29 20 | 3b 0a 58 20 20 20 20 20 |elpSet) |;.X |
|00000870| 20 7d 0a 58 7c 20 20 4f | 46 46 0a 58 20 20 20 20 | }.X| O|FF.X |
|00000880| 20 20 7b 0a 58 20 20 20 | 20 20 20 20 20 20 65 78 | {.X | ex|
|00000890| 69 74 28 30 29 20 3b 0a | 58 20 20 20 20 20 20 7d |it(0) ;.|X }|
|000008a0| 0a 58 7c 20 53 48 45 4c | 4c 5f 51 55 45 52 59 20 |.X| SHEL|L_QUERY |
|000008b0| 43 6f 6d 6d 61 6e 64 5f | 6c 69 73 74 0a 58 20 20 |Command_|list.X |
|000008c0| 20 20 20 20 7b 0a 58 20 | 20 20 20 20 20 20 20 20 | {.X | |
|000008d0| 2f 2a 20 72 75 6e 20 74 | 68 65 20 73 68 65 6c 6c |/* run t|he shell|
|000008e0| 20 63 6f 6d 6d 61 6e 64 | 20 61 6e 64 20 65 61 74 | command| and eat|
|000008f0| 20 74 68 65 20 72 65 73 | 75 6c 74 73 20 61 73 20 | the res|ults as |
|00000900| 61 20 66 69 6c 65 20 73 | 65 74 20 2a 2f 0a 58 0a |a file s|et */.X.|
|00000910| 58 20 20 20 20 20 20 20 | 20 20 4f 6e 65 44 65 73 |X | OneDes|
|00000920| 63 72 69 70 74 69 6f 6e | 28 52 75 6e 50 72 6f 67 |cription|(RunProg|
|00000930| 28 24 31 2d 3e 69 64 2c | 20 24 32 29 29 20 3b 0a |($1->id,| $2)) ;.|
|00000940| 58 20 20 20 20 20 20 20 | 20 20 66 72 65 65 28 24 |X | free($|
|00000950| 31 29 20 3b 0a 58 20 20 | 20 20 20 20 7d 0a 58 7c |1) ;.X | }.X||
|00000960| 20 53 48 45 4c 4c 5f 43 | 4f 4d 4d 41 4e 44 20 43 | SHELL_C|OMMAND C|
|00000970| 6f 6d 6d 61 6e 64 5f 6c | 69 73 74 0a 58 20 20 20 |ommand_l|ist.X |
|00000980| 20 20 20 7b 0a 58 20 20 | 20 20 20 20 20 20 20 2f | {.X | /|
|00000990| 2a 20 72 75 6e 20 74 68 | 65 20 73 68 65 6c 6c 20 |* run th|e shell |
|000009a0| 63 6f 6d 6d 61 6e 64 20 | 2a 2f 0a 58 0a 58 20 20 |command |*/.X.X |
|000009b0| 20 20 20 20 20 20 20 52 | 75 6e 53 68 65 6c 6c 28 | R|unShell(|
|000009c0| 24 31 2d 3e 69 64 2c 20 | 24 32 29 20 3b 0a 58 20 |$1->id, |$2) ;.X |
|000009d0| 20 20 20 20 20 20 20 20 | 66 72 65 65 28 24 31 29 | |free($1)|
|000009e0| 20 3b 0a 58 20 20 20 20 | 20 20 7d 0a 58 3b 0a 58 | ;.X | }.X;.X|
|000009f0| 0a 58 53 65 74 5f 71 75 | 65 72 79 20 3a 0a 58 20 |.XSet_qu|ery :.X |
|00000a00| 20 20 53 53 0a 58 20 20 | 20 20 20 20 7b 0a 58 20 | SS.X | {.X |
|00000a10| 20 20 20 20 20 20 20 20 | 2f 2a 20 54 75 72 6e 20 | |/* Turn |
|00000a20| 6f 6e 20 76 65 72 62 6f | 73 65 20 71 75 65 72 79 |on verbo|se query|
|00000a30| 20 66 6c 61 67 20 2a 2f | 0a 58 0a 58 20 20 20 20 | flag */|.X.X |
|00000a40| 20 20 20 20 20 56 65 72 | 62 6f 73 65 51 75 65 72 | Ver|boseQuer|
|00000a50| 79 20 3d 20 54 52 55 45 | 20 3b 0a 58 20 20 20 20 |y = TRUE| ;.X |
|00000a60| 20 20 7d 0a 58 3b 0a 58 | 0a 58 46 69 6c 65 5f 71 | }.X;.X|.XFile_q|
|00000a70| 75 65 72 79 20 3a 0a 58 | 20 20 20 46 49 4c 45 53 |uery :.X| FILES|
|00000a80| 0a 58 20 20 20 20 20 20 | 7b 0a 58 20 20 20 20 20 |.X |{.X |
|00000a90| 20 20 20 20 2f 2a 20 54 | 75 72 6e 20 6f 66 66 20 | /* T|urn off |
|00000aa0| 76 65 72 62 6f 73 65 20 | 71 75 65 72 79 20 66 6c |verbose |query fl|
|00000ab0| 61 67 20 2a 2f 0a 58 0a | 58 20 20 20 20 20 20 20 |ag */.X.|X |
|00000ac0| 20 20 56 65 72 62 6f 73 | 65 51 75 65 72 79 20 3d | Verbos|eQuery =|
|00000ad0| 20 46 41 4c 53 45 20 3b | 0a 58 20 20 20 20 20 20 | FALSE ;|.X |
|00000ae0| 7d 0a 58 3b 0a 58 0a 58 | 51 75 65 72 79 20 3a 0a |}.X;.X.X|Query :.|
|00000af0| 58 20 20 20 50 72 69 6d | 69 74 69 76 65 0a 58 20 |X Prim|itive.X |
|00000b00| 20 20 20 20 20 7b 0a 58 | 20 20 20 20 20 20 20 20 | {.X| |
|00000b10| 20 2f 2a 20 76 61 6c 75 | 65 20 6f 66 20 71 75 65 | /* valu|e of que|
|00000b20| 72 79 20 69 73 20 73 65 | 74 20 61 73 73 6f 63 69 |ry is se|t associ|
|00000b30| 61 74 65 64 20 77 69 74 | 68 20 70 72 69 6d 69 74 |ated wit|h primit|
|00000b40| 69 76 65 20 2a 2f 0a 58 | 0a 58 20 20 20 20 20 20 |ive */.X|.X |
|00000b50| 20 20 20 24 24 20 3d 20 | 24 31 20 3b 0a 58 20 20 | $$ = |$1 ;.X |
|00000b60| 20 20 20 20 7d 0a 58 7c | 20 20 51 75 65 72 79 20 | }.X|| Query |
|00000b70| 41 4e 44 20 51 75 65 72 | 79 0a 58 20 20 20 20 20 |AND Quer|y.X |
|00000b80| 20 7b 0a 58 20 20 20 20 | 20 20 20 20 20 2f 2a 20 | {.X | /* |
|00000b90| 76 61 6c 75 65 20 6f 66 | 20 71 75 65 72 79 20 69 |value of| query i|
|00000ba0| 73 20 69 6e 74 65 72 73 | 65 63 74 69 6f 6e 20 6f |s inters|ection o|
|00000bb0| 66 20 74 68 65 20 74 77 | 6f 20 71 75 65 72 79 20 |f the tw|o query |
|00000bc0| 73 65 74 73 20 2a 2f 0a | 58 0a 58 20 20 20 20 20 |sets */.|X.X |
|00000bd0| 20 20 20 20 24 24 20 3d | 20 53 65 74 49 6e 74 65 | $$ =| SetInte|
|00000be0| 72 73 65 63 74 28 24 31 | 2c 20 24 33 29 20 3b 0a |rsect($1|, $3) ;.|
|00000bf0| 58 20 20 20 20 20 20 20 | 20 20 69 66 20 28 56 65 |X | if (Ve|
|00000c00| 72 62 6f 73 65 51 75 65 | 72 79 29 20 7b 0a 58 20 |rboseQue|ry) {.X |
|00000c10| 20 20 20 20 20 20 20 20 | 20 20 20 4f 6e 65 44 65 | | OneDe|
|00000c20| 73 63 72 69 70 74 69 6f | 6e 28 24 24 29 20 3b 0a |scriptio|n($$) ;.|
|00000c30| 58 20 20 20 20 20 20 20 | 20 20 7d 0a 58 20 20 20 |X | }.X |
|00000c40| 20 20 20 7d 0a 58 7c 20 | 20 51 75 65 72 79 20 4f | }.X| | Query O|
|00000c50| 52 20 51 75 65 72 79 0a | 58 20 20 20 20 20 20 7b |R Query.|X {|
|00000c60| 0a 58 20 20 20 20 20 20 | 20 20 20 2f 2a 20 76 61 |.X | /* va|
|00000c70| 6c 75 65 20 6f 66 20 71 | 75 65 72 79 20 69 73 20 |lue of q|uery is |
|00000c80| 75 6e 69 6f 6e 20 6f 66 | 20 74 68 65 20 74 77 6f |union of| the two|
|00000c90| 20 71 75 65 72 79 20 73 | 65 74 73 20 2a 2f 0a 58 | query s|ets */.X|
|00000ca0| 0a 58 20 20 20 20 20 20 | 20 20 20 24 24 20 3d 20 |.X | $$ = |
|00000cb0| 53 65 74 55 6e 69 6f 6e | 28 24 31 2c 20 24 33 29 |SetUnion|($1, $3)|
|00000cc0| 20 3b 0a 58 20 20 20 20 | 20 20 20 20 20 69 66 20 | ;.X | if |
|00000cd0| 28 56 65 72 62 6f 73 65 | 51 75 65 72 79 29 20 7b |(Verbose|Query) {|
|00000ce0| 0a 58 20 20 20 20 20 20 | 20 20 20 20 20 20 4f 6e |.X | On|
|00000cf0| 65 44 65 73 63 72 69 70 | 74 69 6f 6e 28 24 24 29 |eDescrip|tion($$)|
|00000d00| 20 3b 0a 58 20 20 20 20 | 20 20 20 20 20 7d 0a 58 | ;.X | }.X|
|00000d10| 20 20 20 20 20 20 7d 0a | 58 7c 20 20 4e 4f 54 20 | }.|X| NOT |
|00000d20| 51 75 65 72 79 0a 58 20 | 20 20 20 20 20 7b 0a 58 |Query.X | {.X|
|00000d30| 20 20 20 20 20 20 20 20 | 20 2f 2a 20 76 61 6c 75 | | /* valu|
|00000d40| 65 20 6f 66 20 71 75 65 | 72 79 20 69 73 20 69 6e |e of que|ry is in|
|00000d50| 76 65 72 73 65 20 6f 66 | 20 6f 74 68 65 72 20 71 |verse of| other q|
|00000d60| 75 65 72 79 20 2a 2f 0a | 58 20 20 20 20 20 20 20 |uery */.|X |
|00000d70| 20 20 0a 58 20 20 20 20 | 20 20 20 20 20 24 24 20 | .X | $$ |
|00000d80| 3d 20 53 65 74 49 6e 76 | 65 72 73 65 28 24 32 29 |= SetInv|erse($2)|
|00000d90| 20 3b 0a 58 20 20 20 20 | 20 20 20 20 20 69 66 20 | ;.X | if |
|00000da0| 28 56 65 72 62 6f 73 65 | 51 75 65 72 79 29 20 7b |(Verbose|Query) {|
|00000db0| 0a 58 20 20 20 20 20 20 | 20 20 20 20 20 20 4f 6e |.X | On|
|00000dc0| 65 44 65 73 63 72 69 70 | 74 69 6f 6e 28 24 24 29 |eDescrip|tion($$)|
|00000dd0| 20 3b 0a 58 20 20 20 20 | 20 20 20 20 20 7d 0a 58 | ;.X | }.X|
|00000de0| 20 20 20 20 20 20 7d 0a | 58 3b 0a 58 0a 58 50 72 | }.|X;.X.XPr|
|00000df0| 69 6d 69 74 69 76 65 20 | 3a 0a 58 20 20 20 53 45 |imitive |:.X SE|
|00000e00| 54 0a 58 20 20 20 20 20 | 20 7b 0a 58 20 20 20 20 |T.X | {.X |
|00000e10| 20 20 20 20 20 2f 2a 20 | 56 61 6c 75 65 20 6f 66 | /* |Value of|
|00000e20| 20 70 72 69 6d 69 74 69 | 76 65 20 69 73 20 76 61 | primiti|ve is va|
|00000e30| 6c 75 65 20 6f 66 20 72 | 65 63 6f 72 64 65 64 20 |lue of r|ecorded |
|00000e40| 73 65 74 20 2a 2f 0a 58 | 0a 58 20 20 20 20 20 20 |set */.X|.X |
|00000e50| 20 20 20 24 24 20 3d 20 | 24 31 20 3b 0a 58 20 20 | $$ = |$1 ;.X |
|00000e60| 20 20 20 20 7d 0a 58 7c | 20 20 4c 69 64 5f 67 72 | }.X|| Lid_gr|
|00000e70| 6f 75 70 0a 58 20 20 20 | 20 20 20 7b 0a 58 20 20 |oup.X | {.X |
|00000e80| 20 20 20 20 20 20 20 2f | 2a 20 56 61 6c 75 65 20 | /|* Value |
|00000e90| 6f 66 20 70 72 69 6d 69 | 74 69 76 65 20 69 73 20 |of primi|tive is |
|00000ea0| 6f 62 74 61 69 6e 65 64 | 20 62 79 20 72 75 6e 6e |obtained| by runn|
|00000eb0| 69 6e 67 20 61 6e 20 6c | 69 64 20 71 75 65 72 79 |ing an l|id query|
|00000ec0| 20 2a 2f 0a 58 0a 58 20 | 20 20 20 20 20 20 20 20 | */.X.X | |
|00000ed0| 24 24 20 3d 20 52 75 6e | 50 72 6f 67 28 4c 69 64 |$$ = Run|Prog(Lid|
|00000ee0| 43 6f 6d 6d 61 6e 64 2c | 20 24 31 29 20 3b 0a 58 |Command,| $1) ;.X|
|00000ef0| 20 20 20 20 20 20 20 20 | 20 69 66 20 28 56 65 72 | | if (Ver|
|00000f00| 62 6f 73 65 51 75 65 72 | 79 29 20 7b 0a 58 20 20 |boseQuer|y) {.X |
|00000f10| 20 20 20 20 20 20 20 20 | 20 20 4f 6e 65 44 65 73 | | OneDes|
|00000f20| 63 72 69 70 74 69 6f 6e | 28 24 24 29 20 3b 0a 58 |cription|($$) ;.X|
|00000f30| 20 20 20 20 20 20 20 20 | 20 7d 0a 58 20 20 20 20 | | }.X |
|00000f40| 20 20 7d 0a 58 7c 20 20 | 41 69 64 5f 67 72 6f 75 | }.X| |Aid_grou|
|00000f50| 70 0a 58 20 20 20 20 20 | 20 7b 0a 58 20 20 20 20 |p.X | {.X |
|00000f60| 20 20 20 20 20 2f 2a 20 | 56 61 6c 75 65 20 6f 66 | /* |Value of|
|00000f70| 20 70 72 69 6d 69 74 69 | 76 65 20 69 73 20 6f 62 | primiti|ve is ob|
|00000f80| 74 61 69 6e 65 64 20 62 | 79 20 72 75 6e 6e 69 6e |tained b|y runnin|
|00000f90| 67 20 61 6e 20 61 69 64 | 20 71 75 65 72 79 20 2a |g an aid| query *|
|00000fa0| 2f 0a 58 0a 58 20 20 20 | 20 20 20 20 20 20 24 24 |/.X.X | $$|
|00000fb0| 20 3d 20 52 75 6e 50 72 | 6f 67 28 22 61 69 64 20 | = RunPr|og("aid |
|00000fc0| 2d 6b 6d 6e 22 2c 20 24 | 31 29 20 3b 0a 58 20 20 |-kmn", $|1) ;.X |
|00000fd0| 20 20 20 20 20 20 20 69 | 66 20 28 56 65 72 62 6f | i|f (Verbo|
|00000fe0| 73 65 51 75 65 72 79 29 | 20 7b 0a 58 20 20 20 20 |seQuery)| {.X |
|00000ff0| 20 20 20 20 20 20 20 20 | 4f 6e 65 44 65 73 63 72 | |OneDescr|
|00001000| 69 70 74 69 6f 6e 28 24 | 24 29 20 3b 0a 58 20 20 |iption($|$) ;.X |
|00001010| 20 20 20 20 20 20 20 7d | 0a 58 20 20 20 20 20 20 | }|.X |
|00001020| 7d 0a 58 7c 20 20 4d 41 | 54 43 48 20 49 64 5f 6c |}.X| MA|TCH Id_l|
|00001030| 69 73 74 0a 58 20 20 20 | 20 20 20 7b 0a 58 20 20 |ist.X | {.X |
|00001040| 20 20 20 20 20 20 20 2f | 2a 20 4d 61 74 63 68 20 | /|* Match |
|00001050| 6e 61 6d 65 73 20 66 72 | 6f 6d 20 64 61 74 61 62 |names fr|om datab|
|00001060| 61 73 65 20 61 67 61 69 | 6e 73 74 20 70 61 74 74 |ase agai|nst patt|
|00001070| 65 72 6e 20 2a 2f 0a 58 | 20 20 20 20 20 20 20 20 |ern */.X| |
|00001080| 20 24 24 20 3d 20 52 75 | 6e 50 72 6f 67 28 22 70 | $$ = Ru|nProg("p|
|00001090| 69 64 20 2d 6b 6d 6e 22 | 2c 20 24 32 29 20 3b 0a |id -kmn"|, $2) ;.|
|000010a0| 58 20 20 20 20 20 20 20 | 20 20 69 66 20 28 56 65 |X | if (Ve|
|000010b0| 72 62 6f 73 65 51 75 65 | 72 79 29 20 7b 0a 58 20 |rboseQue|ry) {.X |
|000010c0| 20 20 20 20 20 20 20 20 | 20 20 20 4f 6e 65 44 65 | | OneDe|
|000010d0| 73 63 72 69 70 74 69 6f | 6e 28 24 24 29 20 3b 0a |scriptio|n($$) ;.|
|000010e0| 58 20 20 20 20 20 20 20 | 20 20 7d 0a 58 20 20 20 |X | }.X |
|000010f0| 20 20 20 7d 0a 58 7c 20 | 20 27 28 27 20 51 75 65 | }.X| | '(' Que|
|00001100| 72 79 20 27 29 27 0a 58 | 20 20 20 20 20 20 7b 0a |ry ')'.X| {.|
|00001110| 58 20 20 20 20 20 20 20 | 20 20 2f 2a 20 76 61 6c |X | /* val|
|00001120| 75 65 20 6f 66 20 70 72 | 69 6d 69 74 69 76 65 20 |ue of pr|imitive |
|00001130| 69 73 20 76 61 6c 75 65 | 20 6f 66 20 71 75 65 72 |is value| of quer|
|00001140| 79 20 2a 2f 0a 58 0a 58 | 20 20 20 20 20 20 20 20 |y */.X.X| |
|00001150| 20 24 24 20 3d 20 24 32 | 20 3b 0a 58 20 20 20 20 | $$ = $2| ;.X |
|00001160| 20 20 7d 0a 58 3b 0a 58 | 0a 58 4c 69 64 5f 67 72 | }.X;.X|.XLid_gr|
|00001170| 6f 75 70 20 3a 0a 58 20 | 20 20 49 44 0a 58 20 20 |oup :.X | ID.X |
|00001180| 20 20 20 20 7b 0a 58 20 | 20 20 20 20 20 20 20 20 | {.X | |
|00001190| 2f 2a 20 6d 61 6b 65 20 | 61 72 67 20 6c 69 73 74 |/* make |arg list|
|000011a0| 20 68 6f 6c 64 69 6e 67 | 20 73 69 6e 67 6c 65 20 | holding| single |
|000011b0| 49 44 20 2a 2f 0a 58 0a | 58 20 20 20 20 20 20 20 |ID */.X.|X |
|000011c0| 20 20 24 24 20 3d 20 49 | 6e 69 74 4c 69 73 74 28 | $$ = I|nitList(|
|000011d0| 29 20 3b 0a 58 20 20 20 | 20 20 20 20 20 20 24 24 |) ;.X | $$|
|000011e0| 20 3d 20 45 78 74 65 6e | 64 4c 69 73 74 28 24 24 | = Exten|dList($$|
|000011f0| 2c 20 24 31 29 20 3b 0a | 58 20 20 20 20 20 20 20 |, $1) ;.|X |
|00001200| 20 20 4c 69 64 43 6f 6d | 6d 61 6e 64 20 3d 20 44 | LidCom|mand = D|
|00001210| 65 66 61 75 6c 74 43 6f | 6d 6d 61 6e 64 20 3b 0a |efaultCo|mmand ;.|
|00001220| 58 20 20 20 20 20 20 7d | 0a 58 7c 20 20 4c 49 44 |X }|.X| LID|
|00001230| 20 49 64 5f 6c 69 73 74 | 0a 58 20 20 20 20 20 20 | Id_list|.X |
|00001240| 7b 0a 58 20 20 20 20 20 | 20 20 20 20 2f 2a 20 61 |{.X | /* a|
|00001250| 72 67 20 6c 69 73 74 20 | 69 73 20 49 64 5f 6c 69 |rg list |is Id_li|
|00001260| 73 74 20 2a 2f 0a 58 0a | 58 20 20 20 20 20 20 20 |st */.X.|X |
|00001270| 20 20 24 24 20 3d 20 24 | 32 20 3b 0a 58 20 20 20 | $$ = $|2 ;.X |
|00001280| 20 20 20 20 20 20 4c 69 | 64 43 6f 6d 6d 61 6e 64 | Li|dCommand|
|00001290| 20 3d 20 22 6c 69 64 20 | 2d 6b 6d 6e 22 20 3b 0a | = "lid |-kmn" ;.|
|000012a0| 58 20 20 20 20 20 20 7d | 0a 58 3b 0a 58 0a 58 41 |X }|.X;.X.XA|
|000012b0| 69 64 5f 67 72 6f 75 70 | 20 3a 0a 58 20 20 20 41 |id_group| :.X A|
|000012c0| 49 44 20 49 64 5f 6c 69 | 73 74 0a 58 20 20 20 20 |ID Id_li|st.X |
|000012d0| 20 20 7b 0a 58 20 20 20 | 20 20 20 20 20 20 2f 2a | {.X | /*|
|000012e0| 20 61 72 67 20 6c 69 73 | 74 20 69 73 20 49 64 5f | arg lis|t is Id_|
|000012f0| 6c 69 73 74 20 2a 2f 0a | 58 0a 58 20 20 20 20 20 |list */.|X.X |
|00001300| 20 20 20 20 24 24 20 3d | 20 24 32 20 3b 0a 58 20 | $$ =| $2 ;.X |
|00001310| 20 20 20 20 20 7d 0a 58 | 3b 0a 58 0a 58 43 6f 6d | }.X|;.X.XCom|
|00001320| 6d 61 6e 64 5f 6c 69 73 | 74 20 3a 0a 58 20 20 20 |mand_lis|t :.X |
|00001330| 49 44 0a 58 20 20 20 20 | 20 20 7b 0a 58 20 20 20 |ID.X | {.X |
|00001340| 20 20 20 20 20 20 2f 2a | 20 6d 61 6b 65 20 61 72 | /*| make ar|
|00001350| 67 20 6c 69 73 74 20 68 | 6f 6c 64 69 6e 67 20 73 |g list h|olding s|
|00001360| 69 6e 67 6c 65 20 49 44 | 20 2a 2f 0a 58 0a 58 20 |ingle ID| */.X.X |
|00001370| 20 20 20 20 20 20 20 20 | 24 24 20 3d 20 49 6e 69 | |$$ = Ini|
|00001380| 74 4c 69 73 74 28 29 20 | 3b 0a 58 20 20 20 20 20 |tList() |;.X |
|00001390| 20 20 20 20 24 24 20 3d | 20 45 78 74 65 6e 64 4c | $$ =| ExtendL|
|000013a0| 69 73 74 28 24 24 2c 20 | 24 31 29 20 3b 0a 58 20 |ist($$, |$1) ;.X |
|000013b0| 20 20 20 20 20 7d 0a 58 | 7c 20 20 53 45 54 0a 58 | }.X|| SET.X|
|000013c0| 20 20 20 20 20 20 7b 0a | 58 20 20 20 20 20 20 20 | {.|X |
|000013d0| 20 20 2f 2a 20 6d 61 6b | 65 20 61 72 67 20 6c 69 | /* mak|e arg li|
|000013e0| 73 74 20 68 6f 6c 64 69 | 6e 67 20 6e 61 6d 65 73 |st holdi|ng names|
|000013f0| 20 66 72 6f 6d 20 73 65 | 74 20 2a 2f 0a 58 0a 58 | from se|t */.X.X|
|00001400| 20 20 20 20 20 20 20 20 | 20 24 24 20 3d 20 49 6e | | $$ = In|
|00001410| 69 74 4c 69 73 74 28 29 | 20 3b 0a 58 20 20 20 20 |itList()| ;.X |
|00001420| 20 20 20 20 20 24 24 20 | 3d 20 53 65 74 4c 69 73 | $$ |= SetLis|
|00001430| 74 28 24 24 2c 20 24 31 | 29 20 3b 0a 58 20 20 20 |t($$, $1|) ;.X |
|00001440| 20 20 20 7d 0a 58 7c 20 | 20 43 6f 6d 6d 61 6e 64 | }.X| | Command|
|00001450| 5f 6c 69 73 74 20 49 44 | 0a 58 20 20 20 20 20 20 |_list ID|.X |
|00001460| 7b 0a 58 20 20 20 20 20 | 20 20 20 20 2f 2a 20 65 |{.X | /* e|
|00001470| 78 74 65 6e 64 20 61 72 | 67 20 6c 69 73 74 20 77 |xtend ar|g list w|
|00001480| 69 74 68 20 61 64 64 69 | 74 69 6f 6e 61 6c 20 49 |ith addi|tional I|
|00001490| 44 20 2a 2f 0a 58 0a 58 | 20 20 20 20 20 20 20 20 |D */.X.X| |
|000014a0| 20 24 24 20 3d 20 45 78 | 74 65 6e 64 4c 69 73 74 | $$ = Ex|tendList|
|000014b0| 28 24 31 2c 20 24 32 29 | 20 3b 0a 58 20 20 20 20 |($1, $2)| ;.X |
|000014c0| 20 20 7d 0a 58 7c 20 20 | 43 6f 6d 6d 61 6e 64 5f | }.X| |Command_|
|000014d0| 6c 69 73 74 20 53 45 54 | 0a 58 20 20 20 20 20 20 |list SET|.X |
|000014e0| 7b 0a 58 20 20 20 20 20 | 20 20 20 20 2f 2a 20 65 |{.X | /* e|
|000014f0| 78 74 65 6e 64 20 61 72 | 67 20 6c 69 73 74 20 77 |xtend ar|g list w|
|00001500| 69 74 68 20 61 64 64 69 | 74 69 6f 6e 61 6c 20 66 |ith addi|tional f|
|00001510| 69 6c 65 20 6e 61 6d 65 | 73 20 2a 2f 0a 58 0a 58 |ile name|s */.X.X|
|00001520| 20 20 20 20 20 20 20 20 | 20 24 24 20 3d 20 53 65 | | $$ = Se|
|00001530| 74 4c 69 73 74 28 24 31 | 2c 20 24 32 29 20 3b 0a |tList($1|, $2) ;.|
|00001540| 58 20 20 20 20 20 20 7d | 0a 58 3b 0a 58 0a 58 49 |X }|.X;.X.XI|
|00001550| 64 5f 6c 69 73 74 20 3a | 0a 58 20 20 20 49 44 0a |d_list :|.X ID.|
|00001560| 58 20 20 20 20 20 20 7b | 0a 58 20 20 20 20 20 20 |X {|.X |
|00001570| 20 20 20 2f 2a 20 6d 61 | 6b 65 20 61 72 67 20 6c | /* ma|ke arg l|
|00001580| 69 73 74 20 68 6f 6c 64 | 69 6e 67 20 73 69 6e 67 |ist hold|ing sing|
|00001590| 6c 65 20 49 44 20 2a 2f | 0a 58 0a 58 20 20 20 20 |le ID */|.X.X |
|000015a0| 20 20 20 20 20 24 24 20 | 3d 20 49 6e 69 74 4c 69 | $$ |= InitLi|
|000015b0| 73 74 28 29 20 3b 0a 58 | 20 20 20 20 20 20 20 20 |st() ;.X| |
|000015c0| 20 24 24 20 3d 20 45 78 | 74 65 6e 64 4c 69 73 74 | $$ = Ex|tendList|
|000015d0| 28 24 24 2c 20 24 31 29 | 20 3b 0a 58 20 20 20 20 |($$, $1)| ;.X |
|000015e0| 20 20 7d 0a 58 7c 20 20 | 49 64 5f 6c 69 73 74 20 | }.X| |Id_list |
|000015f0| 49 44 0a 58 20 20 20 20 | 20 20 7b 0a 58 20 20 20 |ID.X | {.X |
|00001600| 20 20 20 20 20 20 2f 2a | 20 65 78 74 65 6e 64 20 | /*| extend |
|00001610| 61 72 67 20 6c 69 73 74 | 20 77 69 74 68 20 61 64 |arg list| with ad|
|00001620| 64 69 74 69 6f 6e 61 6c | 20 49 44 20 2a 2f 0a 58 |ditional| ID */.X|
|00001630| 0a 58 20 20 20 20 20 20 | 20 20 20 24 24 20 3d 20 |.X | $$ = |
|00001640| 45 78 74 65 6e 64 4c 69 | 73 74 28 24 31 2c 20 24 |ExtendLi|st($1, $|
|00001650| 32 29 20 3b 0a 58 20 20 | 20 20 20 20 7d 0a 58 3b |2) ;.X | }.X;|
|00001660| 0a 58 0a 58 25 25 0a 58 | 0a 58 2f 2a 20 53 63 61 |.X.X%%.X|.X/* Sca|
|00001670| 6e 4c 69 6e 65 20 2d 20 | 61 20 67 6c 6f 62 61 6c |nLine - |a global|
|00001680| 20 76 61 72 69 61 62 6c | 65 20 68 6f 6c 64 69 6e | variabl|e holdin|
|00001690| 67 20 61 20 70 6f 69 6e | 74 65 72 20 74 6f 20 74 |g a poin|ter to t|
|000016a0| 68 65 20 63 75 72 72 65 | 6e 74 0a 58 20 2a 20 63 |he curre|nt.X * c|
|000016b0| 6f 6d 6d 61 6e 64 20 62 | 65 69 6e 67 20 73 63 61 |ommand b|eing sca|
|000016c0| 6e 6e 65 64 2e 0a 58 20 | 2a 2f 0a 58 63 68 61 72 |nned..X |*/.Xchar|
|000016d0| 20 2a 20 20 20 20 20 20 | 20 20 20 20 20 20 20 53 | * | S|
|000016e0| 63 61 6e 4c 69 6e 65 20 | 3b 0a 58 0a 58 2f 2a 20 |canLine |;.X.X/* |
|000016f0| 53 63 61 6e 50 74 72 20 | 2d 20 61 20 67 6c 6f 62 |ScanPtr |- a glob|
|00001700| 61 6c 20 70 6f 69 6e 74 | 65 72 20 74 6f 20 74 68 |al point|er to th|
|00001710| 65 20 63 75 72 72 65 6e | 74 20 73 63 61 6e 20 70 |e curren|t scan p|
|00001720| 6f 73 69 74 69 6f 6e 20 | 69 6e 20 53 63 61 6e 4c |osition |in ScanL|
|00001730| 69 6e 65 2e 0a 58 20 2a | 2f 0a 58 63 68 61 72 20 |ine..X *|/.Xchar |
|00001740| 2a 20 20 20 20 20 20 20 | 20 20 20 20 20 20 53 63 |* | Sc|
|00001750| 61 6e 50 74 72 20 3b 0a | 58 0a 58 2f 2a 20 79 79 |anPtr ;.|X.X/* yy|
|00001760| 74 65 78 74 20 2d 20 62 | 75 66 66 65 72 20 68 6f |text - b|uffer ho|
|00001770| 6c 64 69 6e 67 20 74 68 | 65 20 74 6f 6b 65 6e 2e |lding th|e token.|
|00001780| 0a 58 20 2a 2f 0a 58 63 | 68 61 72 20 20 20 20 20 |.X */.Xc|har |
|00001790| 20 20 20 20 20 20 20 20 | 20 20 79 79 74 65 78 74 | | yytext|
|000017a0| 20 5b 20 4d 41 58 43 4d | 44 20 5d 20 3b 0a 58 0a | [ MAXCM|D ] ;.X.|
|000017b0| 58 2f 2a 20 79 79 65 72 | 72 6f 72 20 2d 20 70 72 |X/* yyer|ror - pr|
|000017c0| 6f 63 65 73 73 20 73 79 | 6e 74 61 78 20 65 72 72 |ocess sy|ntax err|
|000017d0| 6f 72 73 2e 0a 58 20 2a | 2f 0a 58 69 6e 74 0a 58 |ors..X *|/.Xint.X|
|000017e0| 79 79 65 72 72 6f 72 28 | 73 29 0a 58 20 20 20 63 |yyerror(|s).X c|
|000017f0| 68 61 72 20 2a 20 20 20 | 20 20 73 20 3b 0a 58 7b |har * | s ;.X{|
|00001800| 0a 58 20 20 20 69 66 20 | 28 2a 53 63 61 6e 50 74 |.X if |(*ScanPt|
|00001810| 72 20 3d 3d 20 27 5c 30 | 27 29 20 7b 0a 58 20 20 |r == '\0|') {.X |
|00001820| 20 20 20 20 66 70 72 69 | 6e 74 66 28 73 74 64 65 | fpri|ntf(stde|
|00001830| 72 72 2c 22 53 79 6e 74 | 61 78 20 65 72 72 6f 72 |rr,"Synt|ax error|
|00001840| 20 6e 65 61 72 20 65 6e | 64 20 6f 66 20 63 6f 6d | near en|d of com|
|00001850| 6d 61 6e 64 2e 5c 6e 22 | 29 20 3b 0a 58 20 20 20 |mand.\n"|) ;.X |
|00001860| 7d 20 65 6c 73 65 20 7b | 0a 58 20 20 20 20 20 20 |} else {|.X |
|00001870| 66 70 72 69 6e 74 66 28 | 73 74 64 65 72 72 2c 22 |fprintf(|stderr,"|
|00001880| 53 79 6e 74 61 78 20 65 | 72 72 6f 72 20 6f 6e 20 |Syntax e|rror on |
|00001890| 6f 72 20 62 65 66 6f 72 | 65 20 25 73 5c 6e 22 2c |or befor|e %s\n",|
|000018a0| 53 63 61 6e 50 74 72 29 | 20 3b 0a 58 20 20 20 7d |ScanPtr)| ;.X }|
|000018b0| 0a 58 20 20 20 72 65 74 | 75 72 6e 28 30 29 20 3b |.X ret|urn(0) ;|
|000018c0| 0a 58 7d 0a 58 0a 58 2f | 2a 20 53 63 61 6e 49 6e |.X}.X.X/|* ScanIn|
|000018d0| 69 74 20 2d 20 69 6e 69 | 74 69 61 6c 69 7a 65 20 |it - ini|tialize |
|000018e0| 74 68 65 20 79 79 6c 65 | 78 20 72 6f 75 74 69 6e |the yyle|x routin|
|000018f0| 65 20 66 6f 72 20 74 68 | 65 20 6e 65 77 20 6c 69 |e for th|e new li|
|00001900| 6e 65 20 6f 66 20 69 6e | 70 75 74 2e 0a 58 20 2a |ne of in|put..X *|
|00001910| 20 42 61 73 69 63 61 6c | 6c 79 20 6a 75 73 74 20 | Basical|ly just |
|00001920| 69 6e 69 74 69 61 6c 69 | 7a 65 73 20 74 68 65 20 |initiali|zes the |
|00001930| 67 6c 6f 62 61 6c 20 76 | 61 72 69 61 62 6c 65 73 |global v|ariables|
|00001940| 20 74 68 61 74 20 68 6f | 6c 64 20 74 68 65 20 63 | that ho|ld the c|
|00001950| 68 61 72 0a 58 20 2a 20 | 70 74 72 73 20 74 68 65 |har.X * |ptrs the|
|00001960| 20 73 63 61 6e 6e 65 72 | 20 75 73 65 73 2e 0a 58 | scanner| uses..X|
|00001970| 20 2a 2f 0a 58 76 6f 69 | 64 0a 58 53 63 61 6e 49 | */.Xvoi|d.XScanI|
|00001980| 6e 69 74 28 6c 69 6e 65 | 29 0a 58 20 20 20 63 68 |nit(line|).X ch|
|00001990| 61 72 20 2a 20 20 20 20 | 6c 69 6e 65 20 3b 0a 58 |ar * |line ;.X|
|000019a0| 7b 0a 58 20 20 20 2f 2a | 20 73 6b 69 70 20 74 68 |{.X /*| skip th|
|000019b0| 65 20 6c 65 61 64 69 6e | 67 20 77 68 69 74 65 20 |e leadin|g white |
|000019c0| 73 70 61 63 65 20 2d 20 | 74 68 65 20 79 79 6c 65 |space - |the yyle|
|000019d0| 78 20 72 6f 75 74 69 6e | 65 20 69 73 20 73 65 6e |x routin|e is sen|
|000019e0| 73 69 74 69 76 65 0a 58 | 20 20 20 20 2a 20 74 6f |sitive.X| * to|
|000019f0| 20 6b 65 79 77 6f 72 64 | 73 20 69 6e 20 74 68 65 | keyword|s in the|
|00001a00| 20 66 69 72 73 74 20 70 | 6f 73 69 74 69 6f 6e 20 | first p|osition |
|00001a10| 6f 6e 20 74 68 65 20 63 | 6f 6d 6d 61 6e 64 20 6c |on the c|ommand l|
|00001a20| 69 6e 65 2e 0a 58 20 20 | 20 20 2a 2f 0a 58 20 20 |ine..X | */.X |
|00001a30| 20 0a 58 20 20 20 77 68 | 69 6c 65 20 28 69 73 73 | .X wh|ile (iss|
|00001a40| 70 61 63 65 28 2a 6c 69 | 6e 65 29 29 20 2b 2b 6c |pace(*li|ne)) ++l|
|00001a50| 69 6e 65 20 3b 0a 58 20 | 20 20 53 63 61 6e 4c 69 |ine ;.X | ScanLi|
|00001a60| 6e 65 20 3d 20 6c 69 6e | 65 20 3b 0a 58 20 20 20 |ne = lin|e ;.X |
|00001a70| 53 63 61 6e 50 74 72 20 | 3d 20 6c 69 6e 65 20 3b |ScanPtr |= line ;|
|00001a80| 0a 58 7d 0a 58 0a 58 2f | 2a 20 4e 61 6d 65 45 71 |.X}.X.X/|* NameEq|
|00001a90| 20 2d 20 63 6f 6d 70 61 | 72 65 20 74 77 6f 20 6e | - compa|re two n|
|00001aa0| 61 6d 65 73 20 66 6f 72 | 20 65 71 75 61 6c 69 74 |ames for| equalit|
|00001ab0| 79 20 69 6e 20 61 20 63 | 61 73 65 20 69 6e 73 65 |y in a c|ase inse|
|00001ac0| 6e 73 69 74 69 76 65 20 | 6d 61 6e 6e 65 72 2e 0a |nsitive |manner..|
|00001ad0| 58 20 2a 20 72 65 74 75 | 72 6e 20 54 52 55 45 20 |X * retu|rn TRUE |
|00001ae0| 66 6f 72 20 65 71 75 61 | 6c 2c 20 46 41 4c 53 45 |for equa|l, FALSE|
|00001af0| 20 6f 74 68 65 72 77 69 | 73 65 2e 0a 58 20 2a 2f | otherwi|se..X */|
|00001b00| 0a 58 69 6e 74 0a 58 4e | 61 6d 65 45 71 28 6e 31 |.Xint.XN|ameEq(n1|
|00001b10| 2c 6e 32 29 0a 58 20 20 | 20 63 68 61 72 20 2a 20 |,n2).X | char * |
|00001b20| 20 20 20 20 20 6e 31 20 | 3b 0a 58 20 20 20 63 68 | n1 |;.X ch|
|00001b30| 61 72 20 2a 20 20 20 20 | 20 20 6e 32 20 3b 0a 58 |ar * | n2 ;.X|
|00001b40| 7b 0a 58 20 20 20 63 68 | 61 72 20 20 20 20 20 20 |{.X ch|ar |
|00001b50| 20 20 63 31 20 3b 0a 58 | 20 20 20 63 68 61 72 20 | c1 ;.X| char |
|00001b60| 20 20 20 20 20 20 20 63 | 32 20 3b 0a 58 20 20 20 | c|2 ;.X |
|00001b70| 0a 58 20 20 20 66 6f 72 | 20 28 20 3b 20 3b 20 29 |.X for| ( ; ; )|
|00001b80| 20 7b 0a 58 20 20 20 20 | 20 20 63 31 20 3d 20 2a | {.X | c1 = *|
|00001b90| 6e 31 2b 2b 20 3b 0a 58 | 20 20 20 20 20 20 63 32 |n1++ ;.X| c2|
|00001ba0| 20 3d 20 2a 6e 32 2b 2b | 20 3b 0a 58 20 20 20 20 | = *n2++| ;.X |
|00001bb0| 20 20 69 66 20 28 69 73 | 61 6c 70 68 61 28 63 31 | if (is|alpha(c1|
|00001bc0| 29 29 20 63 31 20 3d 20 | 74 6f 6c 6f 77 65 72 28 |)) c1 = |tolower(|
|00001bd0| 63 31 29 20 3b 0a 58 20 | 20 20 20 20 20 69 66 20 |c1) ;.X | if |
|00001be0| 28 69 73 61 6c 70 68 61 | 28 63 32 29 29 20 63 32 |(isalpha|(c2)) c2|
|00001bf0| 20 3d 20 74 6f 6c 6f 77 | 65 72 28 63 32 29 20 3b | = tolow|er(c2) ;|
|00001c00| 0a 58 20 20 20 20 20 20 | 69 66 20 28 63 31 20 21 |.X |if (c1 !|
|00001c10| 3d 20 63 32 29 20 72 65 | 74 75 72 6e 20 46 41 4c |= c2) re|turn FAL|
|00001c20| 53 45 20 3b 0a 58 20 20 | 20 20 20 20 69 66 20 28 |SE ;.X | if (|
|00001c30| 63 31 20 3d 3d 20 27 5c | 30 27 29 20 72 65 74 75 |c1 == '\|0') retu|
|00001c40| 72 6e 20 54 52 55 45 20 | 3b 0a 58 20 20 20 7d 0a |rn TRUE |;.X }.|
|00001c50| 58 7d 0a 58 0a 58 2f 2a | 20 79 79 6c 65 78 20 2d |X}.X.X/*| yylex -|
|00001c60| 20 74 68 65 20 73 63 61 | 6e 6e 65 72 20 66 6f 72 | the sca|nner for|
|00001c70| 20 69 69 64 2e 20 42 61 | 73 69 63 61 6c 6c 79 20 | iid. Ba|sically |
|00001c80| 61 20 6b 6c 75 64 67 65 | 20 61 64 2d 68 6f 63 20 |a kludge| ad-hoc |
|00001c90| 70 69 65 63 65 20 6f 66 | 20 6a 75 6e 6b 2c 0a 58 |piece of| junk,.X|
|00001ca0| 20 2a 20 62 75 74 20 77 | 68 61 74 20 74 68 65 20 | * but w|hat the |
|00001cb0| 68 65 63 6b 2c 20 69 66 | 20 69 74 20 77 6f 72 6b |heck, if| it work|
|00001cc0| 73 2e 2e 2e 0a 58 20 2a | 0a 58 20 2a 20 4d 6f 73 |s....X *|.X * Mos|
|00001cd0| 74 6c 79 20 6a 75 73 74 | 20 73 63 61 6e 73 20 66 |tly just| scans f|
|00001ce0| 6f 72 20 6e 6f 6e 20 77 | 68 69 74 65 20 73 70 61 |or non w|hite spa|
|00001cf0| 63 65 20 73 74 72 69 6e | 67 73 20 61 6e 64 20 72 |ce strin|gs and r|
|00001d00| 65 74 75 72 6e 73 20 49 | 44 20 66 6f 72 20 74 68 |eturns I|D for th|
|00001d10| 65 6d 2e 0a 58 20 2a 20 | 44 6f 65 73 20 63 68 65 |em..X * |Does che|
|00001d20| 63 6b 20 65 73 70 65 63 | 69 61 6c 6c 79 20 66 6f |ck espec|ially fo|
|00001d30| 72 20 27 28 27 20 61 6e | 64 20 27 29 27 2e 20 4a |r '(' an|d ')'. J|
|00001d40| 75 73 74 20 62 65 66 6f | 72 65 20 72 65 74 75 72 |ust befo|re retur|
|00001d50| 6e 69 6e 67 20 49 44 20 | 69 74 0a 58 20 2a 20 63 |ning ID |it.X * c|
|00001d60| 68 65 63 6b 73 20 66 6f | 72 20 63 6f 6d 6d 61 6e |hecks fo|r comman|
|00001d70| 64 20 6e 61 6d 65 73 20 | 69 66 20 69 74 20 69 73 |d names |if it is|
|00001d80| 20 74 68 65 20 66 69 72 | 73 74 20 74 6f 6b 65 6e | the fir|st token|
|00001d90| 20 6f 6e 20 6c 69 6e 65 | 20 6f 72 0a 58 20 2a 20 | on line| or.X * |
|00001da0| 41 4e 44 2c 20 4f 52 2c | 20 4c 49 44 2c 20 41 49 |AND, OR,| LID, AI|
|00001db0| 44 20 69 66 20 69 74 20 | 69 73 20 69 6e 20 74 68 |D if it |is in th|
|00001dc0| 65 20 6d 69 64 64 6c 65 | 20 6f 66 20 61 20 6c 69 |e middle| of a li|
|00001dd0| 6e 65 2e 0a 58 20 2a 2f | 0a 58 69 6e 74 0a 58 79 |ne..X */|.Xint.Xy|
|00001de0| 79 6c 65 78 28 29 0a 58 | 7b 0a 58 20 20 20 63 68 |ylex().X|{.X ch|
|00001df0| 61 72 20 2a 20 20 20 20 | 20 20 62 70 20 3b 0a 58 |ar * | bp ;.X|
|00001e00| 20 20 20 63 68 61 72 20 | 20 20 20 20 20 20 20 63 | char | c|
|00001e10| 20 3b 0a 58 20 20 20 69 | 6e 74 20 20 20 20 20 20 | ;.X i|nt |
|00001e20| 20 20 20 63 6f 64 65 20 | 3d 20 49 44 20 3b 0a 58 | code |= ID ;.X|
|00001e30| 20 20 20 63 68 61 72 20 | 2a 20 20 20 20 20 20 64 | char |* d|
|00001e40| 70 20 3b 0a 58 20 20 20 | 63 68 61 72 20 2a 20 20 |p ;.X |char * |
|00001e50| 20 20 20 20 73 70 20 3b | 0a 58 20 20 20 69 6e 74 | sp ;|.X int|
|00001e60| 20 20 20 20 20 20 20 20 | 20 76 61 6c 20 3b 0a 58 | | val ;.X|
|00001e70| 20 20 20 0a 58 20 20 20 | 62 70 20 3d 20 53 63 61 | .X |bp = Sca|
|00001e80| 6e 50 74 72 20 3b 0a 58 | 20 20 20 77 68 69 6c 65 |nPtr ;.X| while|
|00001e90| 20 28 69 73 73 70 61 63 | 65 28 2a 62 70 29 29 20 | (isspac|e(*bp)) |
|00001ea0| 2b 2b 62 70 20 3b 0a 58 | 20 20 20 73 70 20 3d 20 |++bp ;.X| sp = |
|00001eb0| 62 70 20 3b 0a 58 20 20 | 20 63 20 3d 20 2a 73 70 |bp ;.X | c = *sp|
|00001ec0| 2b 2b 20 3b 0a 58 20 20 | 20 69 66 20 28 28 63 20 |++ ;.X | if ((c |
|00001ed0| 3d 3d 20 27 28 27 29 20 | 7c 7c 20 28 63 20 3d 3d |== '(') ||| (c ==|
|00001ee0| 20 27 29 27 29 20 7c 7c | 20 28 63 20 3d 3d 20 27 | ')') ||| (c == '|
|00001ef0| 5c 30 27 29 29 20 7b 0a | 58 20 20 20 20 20 20 53 |\0')) {.|X S|
|00001f00| 63 61 6e 50 74 72 20 3d | 20 73 70 20 3b 0a 58 20 |canPtr =| sp ;.X |
|00001f10| 20 20 20 20 20 69 66 20 | 28 63 20 3d 3d 20 27 5c | if |(c == '\|
|00001f20| 30 27 29 20 7b 0a 58 20 | 20 20 20 20 20 20 20 20 |0') {.X | |
|00001f30| 2d 2d 53 63 61 6e 50 74 | 72 20 3b 0a 58 20 20 20 |--ScanPt|r ;.X |
|00001f40| 20 20 20 7d 0a 58 20 20 | 20 20 20 20 72 65 74 75 | }.X | retu|
|00001f50| 72 6e 28 63 29 20 3b 0a | 58 20 20 20 7d 20 65 6c |rn(c) ;.|X } el|
|00001f60| 73 65 20 7b 0a 58 20 20 | 20 20 20 20 64 70 20 3d |se {.X | dp =|
|00001f70| 20 79 79 74 65 78 74 20 | 3b 0a 58 20 20 20 20 20 | yytext |;.X |
|00001f80| 20 77 68 69 6c 65 20 28 | 21 20 28 28 63 20 3d 3d | while (|! ((c ==|
|00001f90| 20 27 28 27 29 20 7c 7c | 20 28 63 20 3d 3d 20 27 | '(') ||| (c == '|
|00001fa0| 29 27 29 20 7c 7c 20 28 | 63 20 3d 3d 20 27 5c 30 |)') || (|c == '\0|
|00001fb0| 27 29 20 7c 7c 20 69 73 | 73 70 61 63 65 28 63 29 |') || is|space(c)|
|00001fc0| 29 29 20 7b 0a 58 20 20 | 20 20 20 20 20 20 20 2a |)) {.X | *|
|00001fd0| 64 70 2b 2b 20 3d 20 63 | 20 3b 0a 58 20 20 20 20 |dp++ = c| ;.X |
|00001fe0| 20 20 20 20 20 63 20 3d | 20 2a 73 70 2b 2b 20 3b | c =| *sp++ ;|
|00001ff0| 0a 58 20 20 20 20 20 20 | 7d 0a 58 20 20 20 20 20 |.X |}.X |
|00002000| 20 2a 64 70 2b 2b 20 3d | 20 27 5c 30 27 20 3b 0a | *dp++ =| '\0' ;.|
|00002010| 58 20 20 20 20 20 20 53 | 63 61 6e 50 74 72 20 3d |X S|canPtr =|
|00002020| 20 73 70 20 2d 20 31 20 | 3b 0a 58 20 20 20 20 20 | sp - 1 |;.X |
|00002030| 20 69 66 20 28 62 70 20 | 3d 3d 20 53 63 61 6e 4c | if (bp |== ScanL|
|00002040| 69 6e 65 29 20 7b 0a 58 | 0a 58 20 20 20 20 20 20 |ine) {.X|.X |
|00002050| 20 20 20 2f 2a 20 66 69 | 72 73 74 20 74 6f 6b 65 | /* fi|rst toke|
|00002060| 6e 20 6f 6e 20 6c 69 6e | 65 2c 20 63 68 65 63 6b |n on lin|e, check|
|00002070| 20 66 6f 72 20 63 6f 6d | 6d 61 6e 64 20 6e 61 6d | for com|mand nam|
|00002080| 65 73 20 2a 2f 0a 58 0a | 58 20 20 20 20 20 20 20 |es */.X.|X |
|00002090| 20 20 69 66 20 28 4e 61 | 6d 65 45 71 28 79 79 74 | if (Na|meEq(yyt|
|000020a0| 65 78 74 2c 20 22 53 53 | 22 29 29 20 72 65 74 75 |ext, "SS|")) retu|
|000020b0| 72 6e 28 53 53 29 20 3b | 0a 58 20 20 20 20 20 20 |rn(SS) ;|.X |
|000020c0| 20 20 20 69 66 20 28 4e | 61 6d 65 45 71 28 79 79 | if (N|ameEq(yy|
|000020d0| 74 65 78 74 2c 20 22 46 | 49 4c 45 53 22 29 29 20 |text, "F|ILES")) |
|000020e0| 72 65 74 75 72 6e 28 46 | 49 4c 45 53 29 20 3b 0a |return(F|ILES) ;.|
|000020f0| 58 20 20 20 20 20 20 20 | 20 20 69 66 20 28 4e 61 |X | if (Na|
|00002100| 6d 65 45 71 28 79 79 74 | 65 78 74 2c 20 22 46 22 |meEq(yyt|ext, "F"|
|00002110| 29 29 20 72 65 74 75 72 | 6e 28 46 49 4c 45 53 29 |)) retur|n(FILES)|
|00002120| 20 3b 0a 58 20 20 20 20 | 20 20 20 20 20 69 66 20 | ;.X | if |
|00002130| 28 4e 61 6d 65 45 71 28 | 79 79 74 65 78 74 2c 20 |(NameEq(|yytext, |
|00002140| 22 48 45 4c 50 22 29 29 | 20 72 65 74 75 72 6e 28 |"HELP"))| return(|
|00002150| 48 45 4c 50 29 20 3b 0a | 58 20 20 20 20 20 20 20 |HELP) ;.|X |
|00002160| 20 20 69 66 20 28 4e 61 | 6d 65 45 71 28 79 79 74 | if (Na|meEq(yyt|
|00002170| 65 78 74 2c 20 22 48 22 | 29 29 20 72 65 74 75 72 |ext, "H"|)) retur|
|00002180| 6e 28 48 45 4c 50 29 20 | 3b 0a 58 20 20 20 20 20 |n(HELP) |;.X |
|00002190| 20 20 20 20 69 66 20 28 | 4e 61 6d 65 45 71 28 79 | if (|NameEq(y|
|000021a0| 79 74 65 78 74 2c 20 22 | 3f 22 29 29 20 72 65 74 |ytext, "|?")) ret|
|000021b0| 75 72 6e 28 48 45 4c 50 | 29 20 3b 0a 58 20 20 20 |urn(HELP|) ;.X |
|000021c0| 20 20 20 20 20 20 69 66 | 20 28 4e 61 6d 65 45 71 | if| (NameEq|
|000021d0| 28 79 79 74 65 78 74 2c | 20 22 42 45 47 49 4e 22 |(yytext,| "BEGIN"|
|000021e0| 29 29 20 72 65 74 75 72 | 6e 28 42 45 47 49 4e 29 |)) retur|n(BEGIN)|
|000021f0| 20 3b 0a 58 20 20 20 20 | 20 20 20 20 20 69 66 20 | ;.X | if |
|00002200| 28 4e 61 6d 65 45 71 28 | 79 79 74 65 78 74 2c 20 |(NameEq(|yytext, |
|00002210| 22 42 22 29 29 20 72 65 | 74 75 72 6e 28 42 45 47 |"B")) re|turn(BEG|
|00002220| 49 4e 29 20 3b 0a 58 20 | 20 20 20 20 20 20 20 20 |IN) ;.X | |
|00002230| 69 66 20 28 4e 61 6d 65 | 45 71 28 79 79 74 65 78 |if (Name|Eq(yytex|
|00002240| 74 2c 20 22 53 45 54 53 | 22 29 29 20 72 65 74 75 |t, "SETS|")) retu|
|00002250| 72 6e 28 53 45 54 53 29 | 20 3b 0a 58 20 20 20 20 |rn(SETS)| ;.X |
|00002260| 20 20 20 20 20 69 66 20 | 28 4e 61 6d 65 45 71 28 | if |(NameEq(|
|00002270| 79 79 74 65 78 74 2c 20 | 22 53 48 4f 57 22 29 29 |yytext, |"SHOW"))|
|00002280| 20 72 65 74 75 72 6e 28 | 53 48 4f 57 29 20 3b 0a | return(|SHOW) ;.|
|00002290| 58 20 20 20 20 20 20 20 | 20 20 69 66 20 28 4e 61 |X | if (Na|
|000022a0| 6d 65 45 71 28 79 79 74 | 65 78 74 2c 20 22 50 22 |meEq(yyt|ext, "P"|
|000022b0| 29 29 20 72 65 74 75 72 | 6e 28 53 48 4f 57 29 20 |)) retur|n(SHOW) |
|000022c0| 3b 0a 58 20 20 20 20 20 | 20 20 20 20 69 66 20 28 |;.X | if (|
|000022d0| 4e 61 6d 65 45 71 28 79 | 79 74 65 78 74 2c 20 22 |NameEq(y|ytext, "|
|000022e0| 4f 46 46 22 29 29 20 72 | 65 74 75 72 6e 28 4f 46 |OFF")) r|eturn(OF|
|000022f0| 46 29 20 3b 0a 58 20 20 | 20 20 20 20 20 20 20 69 |F) ;.X | i|
|00002300| 66 20 28 4e 61 6d 65 45 | 71 28 79 79 74 65 78 74 |f (NameE|q(yytext|
|00002310| 2c 20 22 51 22 29 29 20 | 72 65 74 75 72 6e 28 4f |, "Q")) |return(O|
|00002320| 46 46 29 20 3b 0a 58 20 | 20 20 20 20 20 20 20 20 |FF) ;.X | |
|00002330| 69 66 20 28 4e 61 6d 65 | 45 71 28 79 79 74 65 78 |if (Name|Eq(yytex|
|00002340| 74 2c 20 22 51 55 49 54 | 22 29 29 20 72 65 74 75 |t, "QUIT|")) retu|
|00002350| 72 6e 28 4f 46 46 29 20 | 3b 0a 58 20 20 20 20 20 |rn(OFF) |;.X |
|00002360| 20 20 20 20 69 66 20 28 | 79 79 74 65 78 74 5b 30 | if (|yytext[0|
|00002370| 5d 20 3d 3d 20 27 21 27 | 29 20 7b 0a 58 20 20 20 |] == '!'|) {.X |
|00002380| 20 20 20 20 20 20 20 20 | 20 63 6f 64 65 20 3d 20 | | code = |
|00002390| 53 48 45 4c 4c 5f 43 4f | 4d 4d 41 4e 44 20 3b 0a |SHELL_CO|MMAND ;.|
|000023a0| 58 20 20 20 20 20 20 20 | 20 20 7d 20 65 6c 73 65 |X | } else|
|000023b0| 20 7b 0a 58 20 20 20 20 | 20 20 20 20 20 20 20 20 | {.X | |
|000023c0| 63 6f 64 65 20 3d 20 53 | 48 45 4c 4c 5f 51 55 45 |code = S|HELL_QUE|
|000023d0| 52 59 20 3b 0a 58 20 20 | 20 20 20 20 20 20 20 7d |RY ;.X | }|
|000023e0| 0a 58 20 20 20 20 20 20 | 7d 20 65 6c 73 65 20 7b |.X |} else {|
|000023f0| 0a 58 0a 58 20 20 20 20 | 20 20 20 20 20 2f 2a 20 |.X.X | /* |
|00002400| 6e 6f 74 20 66 69 72 73 | 74 20 74 6f 6b 65 6e 2c |not firs|t token,|
|00002410| 20 63 68 65 63 6b 20 66 | 6f 72 20 6f 70 65 72 61 | check f|or opera|
|00002420| 74 6f 72 20 6e 61 6d 65 | 73 20 2a 2f 0a 58 0a 58 |tor name|s */.X.X|
|00002430| 20 20 20 20 20 20 20 20 | 20 69 66 20 28 4e 61 6d | | if (Nam|
|00002440| 65 45 71 28 79 79 74 65 | 78 74 2c 20 22 4c 49 44 |eEq(yyte|xt, "LID|
|00002450| 22 29 29 20 72 65 74 75 | 72 6e 28 4c 49 44 29 20 |")) retu|rn(LID) |
|00002460| 3b 0a 58 20 20 20 20 20 | 20 20 20 20 69 66 20 28 |;.X | if (|
|00002470| 4e 61 6d 65 45 71 28 79 | 79 74 65 78 74 2c 20 22 |NameEq(y|ytext, "|
|00002480| 41 49 44 22 29 29 20 72 | 65 74 75 72 6e 28 41 49 |AID")) r|eturn(AI|
|00002490| 44 29 20 3b 0a 58 20 20 | 20 20 20 20 20 20 20 69 |D) ;.X | i|
|000024a0| 66 20 28 4e 61 6d 65 45 | 71 28 79 79 74 65 78 74 |f (NameE|q(yytext|
|000024b0| 2c 20 22 41 4e 44 22 29 | 29 20 72 65 74 75 72 6e |, "AND")|) return|
|000024c0| 28 41 4e 44 29 20 3b 0a | 58 20 20 20 20 20 20 20 |(AND) ;.|X |
|000024d0| 20 20 69 66 20 28 4e 61 | 6d 65 45 71 28 79 79 74 | if (Na|meEq(yyt|
|000024e0| 65 78 74 2c 20 22 4f 52 | 22 29 29 20 72 65 74 75 |ext, "OR|")) retu|
|000024f0| 72 6e 28 4f 52 29 20 3b | 0a 58 20 20 20 20 20 20 |rn(OR) ;|.X |
|00002500| 20 20 20 69 66 20 28 4e | 61 6d 65 45 71 28 79 79 | if (N|ameEq(yy|
|00002510| 74 65 78 74 2c 20 22 4e | 4f 54 22 29 29 20 72 65 |text, "N|OT")) re|
|00002520| 74 75 72 6e 28 4e 4f 54 | 29 20 3b 0a 58 20 20 20 |turn(NOT|) ;.X |
|00002530| 20 20 20 20 20 20 69 66 | 20 28 4e 61 6d 65 45 71 | if| (NameEq|
|00002540| 28 79 79 74 65 78 74 2c | 20 22 4d 41 54 43 48 22 |(yytext,| "MATCH"|
|00002550| 29 29 20 72 65 74 75 72 | 6e 28 4d 41 54 43 48 29 |)) retur|n(MATCH)|
|00002560| 20 3b 0a 58 20 20 20 20 | 20 20 20 20 20 69 66 20 | ;.X | if |
|00002570| 28 28 79 79 74 65 78 74 | 5b 30 5d 20 3d 3d 20 27 |((yytext|[0] == '|
|00002580| 73 27 20 7c 7c 20 79 79 | 74 65 78 74 5b 30 5d 20 |s' || yy|text[0] |
|00002590| 3d 3d 20 27 53 27 29 20 | 26 26 20 69 73 64 69 67 |== 'S') |&& isdig|
|000025a0| 69 74 28 79 79 74 65 78 | 74 5b 31 5d 29 29 20 7b |it(yytex|t[1])) {|
|000025b0| 0a 58 20 20 20 20 20 20 | 20 20 20 20 20 20 0a 58 |.X | .X|
|000025c0| 20 20 20 20 20 20 20 20 | 20 20 20 20 2f 2a 20 74 | | /* t|
|000025d0| 68 69 73 20 6d 69 67 68 | 74 20 62 65 20 61 20 73 |his migh|t be a s|
|000025e0| 65 74 20 73 70 65 63 69 | 66 69 63 61 74 69 6f 6e |et speci|fication|
|000025f0| 20 2a 2f 0a 58 20 20 20 | 20 20 20 20 20 20 20 20 | */.X | |
|00002600| 20 0a 58 20 20 20 20 20 | 20 20 20 20 20 20 20 73 | .X | s|
|00002610| 70 20 3d 20 26 79 79 74 | 65 78 74 5b 31 5d 20 3b |p = &yyt|ext[1] ;|
|00002620| 0a 58 20 20 20 20 20 20 | 20 20 20 20 20 20 76 61 |.X | va|
|00002630| 6c 20 3d 20 30 20 3b 0a | 58 20 20 20 20 20 20 20 |l = 0 ;.|X |
|00002640| 20 20 20 20 20 66 6f 72 | 20 28 20 3b 20 3b 20 29 | for| ( ; ; )|
|00002650| 20 7b 0a 58 20 20 20 20 | 20 20 20 20 20 20 20 20 | {.X | |
|00002660| 20 20 20 63 20 3d 20 2a | 73 70 2b 2b 20 3b 0a 58 | c = *|sp++ ;.X|
|00002670| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 69 | | i|
|00002680| 66 20 28 63 20 3d 3d 20 | 27 5c 30 27 29 20 7b 0a |f (c == |'\0') {.|
|00002690| 58 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |X | |
|000026a0| 20 20 20 69 66 20 28 76 | 61 6c 20 3c 20 4e 65 78 | if (v|al < Nex|
|000026b0| 74 53 65 74 4e 75 6d 29 | 20 7b 0a 58 20 20 20 20 |tSetNum)| {.X |
|000026c0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|000026d0| 20 79 79 6c 76 61 6c 2e | 73 65 74 64 65 66 20 3d | yylval.|setdef =|
|000026e0| 20 54 68 65 53 65 74 73 | 5b 76 61 6c 5d 20 3b 0a | TheSets|[val] ;.|
|000026f0| 58 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |X | |
|00002700| 20 20 20 20 20 20 72 65 | 74 75 72 6e 28 53 45 54 | re|turn(SET|
|00002710| 29 20 3b 0a 58 20 20 20 | 20 20 20 20 20 20 20 20 |) ;.X | |
|00002720| 20 20 20 20 20 20 20 7d | 0a 58 20 20 20 20 20 20 | }|.X |
|00002730| 20 20 20 20 20 20 20 20 | 20 7d 0a 58 20 20 20 20 | | }.X |
|00002740| 20 20 20 20 20 20 20 20 | 20 20 20 69 66 20 28 69 | | if (i|
|00002750| 73 64 69 67 69 74 28 63 | 29 29 20 7b 0a 58 20 20 |sdigit(c|)) {.X |
|00002760| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00002770| 76 61 6c 20 3d 20 28 76 | 61 6c 20 2a 20 31 30 29 |val = (v|al * 10)|
|00002780| 20 2b 20 28 63 20 2d 20 | 27 30 27 29 20 3b 0a 58 | + (c - |'0') ;.X|
|00002790| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 7d | | }|
|000027a0| 20 65 6c 73 65 20 7b 0a | 58 20 20 20 20 20 20 20 | else {.|X |
|000027b0| 20 20 20 20 20 20 20 20 | 20 20 20 62 72 65 61 6b | | break|
|000027c0| 20 3b 0a 58 20 20 20 20 | 20 20 20 20 20 20 20 20 | ;.X | |
|000027d0| 20 20 20 7d 0a 58 20 20 | 20 20 20 20 20 20 20 20 | }.X | |
|000027e0| 20 20 7d 0a 58 20 20 20 | 20 20 20 20 20 20 7d 0a | }.X | }.|
|000027f0| 58 20 20 20 20 20 20 7d | 0a 58 20 20 20 20 20 20 |X }|.X |
|00002800| 79 79 6c 76 61 6c 2e 73 | 74 72 64 65 66 20 3d 20 |yylval.s|trdef = |
|00002810| 28 69 64 5f 74 79 70 65 | 20 2a 29 6d 61 6c 6c 6f |(id_type| *)mallo|
|00002820| 63 28 73 69 7a 65 6f 66 | 28 69 64 5f 74 79 70 65 |c(sizeof|(id_type|
|00002830| 29 20 2b 20 73 74 72 6c | 65 6e 28 79 79 74 65 78 |) + strl|en(yytex|
|00002840| 74 29 29 20 3b 0a 58 20 | 20 20 20 20 20 69 66 20 |t)) ;.X | if |
|00002850| 28 79 79 6c 76 61 6c 2e | 73 74 72 64 65 66 20 3d |(yylval.|strdef =|
|00002860| 3d 20 4e 55 4c 4c 29 20 | 7b 0a 58 20 20 20 20 20 |= NULL) |{.X |
|00002870| 20 20 20 20 66 61 74 61 | 6c 28 22 4f 75 74 20 6f | fata|l("Out o|
|00002880| 66 20 6d 65 6d 6f 72 79 | 20 69 6e 20 79 79 6c 65 |f memory| in yyle|
|00002890| 78 22 29 20 3b 0a 58 20 | 20 20 20 20 20 7d 0a 58 |x") ;.X | }.X|
|000028a0| 20 20 20 20 20 20 79 79 | 6c 76 61 6c 2e 73 74 72 | yy|lval.str|
|000028b0| 64 65 66 2d 3e 6e 65 78 | 74 5f 69 64 20 3d 20 4e |def->nex|t_id = N|
|000028c0| 55 4c 4c 20 3b 0a 58 20 | 20 20 20 20 20 69 66 20 |ULL ;.X | if |
|000028d0| 28 63 6f 64 65 20 3d 3d | 20 53 48 45 4c 4c 5f 43 |(code ==| SHELL_C|
|000028e0| 4f 4d 4d 41 4e 44 29 20 | 7b 0a 58 20 20 20 20 20 |OMMAND) |{.X |
|000028f0| 20 20 20 20 73 74 72 63 | 70 79 28 79 79 6c 76 61 | strc|py(yylva|
|00002900| 6c 2e 73 74 72 64 65 66 | 2d 3e 69 64 2c 20 26 79 |l.strdef|->id, &y|
|00002910| 79 74 65 78 74 5b 31 5d | 29 20 3b 0a 58 20 20 20 |ytext[1]|) ;.X |
|00002920| 20 20 20 7d 20 65 6c 73 | 65 20 7b 0a 58 20 20 20 | } els|e {.X |
|00002930| 20 20 20 20 20 20 73 74 | 72 63 70 79 28 79 79 6c | st|rcpy(yyl|
|00002940| 76 61 6c 2e 73 74 72 64 | 65 66 2d 3e 69 64 2c 20 |val.strd|ef->id, |
|00002950| 79 79 74 65 78 74 29 20 | 3b 0a 58 20 20 20 20 20 |yytext) |;.X |
|00002960| 20 7d 0a 58 20 20 20 20 | 20 20 72 65 74 75 72 6e | }.X | return|
|00002970| 28 63 6f 64 65 29 20 3b | 0a 58 20 20 20 7d 0a 58 |(code) ;|.X }.X|
|00002980| 7d 0a 58 0a 58 2f 2a 20 | 54 68 65 20 6d 61 69 6e |}.X.X/* |The main|
|00002990| 20 70 72 6f 67 72 61 6d | 20 66 6f 72 20 69 69 64 | program| for iid|
|000029a0| 20 2d 20 70 61 72 73 65 | 20 74 68 65 20 63 6f 6d | - parse| the com|
|000029b0| 6d 61 6e 64 20 6c 69 6e | 65 2c 20 69 6e 69 74 69 |mand lin|e, initi|
|000029c0| 61 6c 69 7a 65 20 70 72 | 6f 63 65 73 73 69 6e 67 |alize pr|ocessing|
|000029d0| 2c 0a 58 20 2a 20 6c 6f | 6f 70 20 70 72 6f 63 65 |,.X * lo|op proce|
|000029e0| 73 73 69 6e 67 20 6f 6e | 65 20 63 6f 6d 6d 61 6e |ssing on|e comman|
|000029f0| 64 20 61 74 20 61 20 74 | 69 6d 65 2e 0a 58 20 2a |d at a t|ime..X *|
|00002a00| 2f 0a 58 6d 61 69 6e 28 | 61 72 67 63 2c 20 61 72 |/.Xmain(|argc, ar|
|00002a10| 67 76 29 0a 58 20 20 20 | 69 6e 74 20 20 20 20 20 |gv).X |int |
|00002a20| 20 20 20 20 61 72 67 63 | 20 3b 0a 58 20 20 20 63 | argc| ;.X c|
|00002a30| 68 61 72 20 2a 20 20 20 | 20 20 20 61 72 67 76 20 |har * | argv |
|00002a40| 5b 20 5d 20 3b 0a 58 7b | 0a 58 20 20 20 69 6e 74 |[ ] ;.X{|.X int|
|00002a50| 20 20 20 20 20 20 20 20 | 20 63 20 3b 20 20 20 20 | | c ; |
|00002a60| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00002a70| 20 2f 2a 20 63 75 72 72 | 65 6e 74 20 6f 70 74 69 | /* curr|ent opti|
|00002a80| 6f 6e 20 2a 2f 0a 58 20 | 20 20 63 68 61 72 20 2a |on */.X | char *|
|00002a90| 20 20 20 20 20 20 43 6d | 64 50 74 72 20 3b 20 20 | Cm|dPtr ; |
|00002aa0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 2f 2a | | /*|
|00002ab0| 20 50 6f 69 6e 74 73 20 | 74 6f 20 74 68 65 20 63 | Points |to the c|
|00002ac0| 6f 6d 6d 61 6e 64 20 73 | 74 72 69 6e 67 20 2a 2f |ommand s|tring */|
|00002ad0| 0a 58 20 20 20 63 68 61 | 72 20 20 20 20 20 20 20 |.X cha|r |
|00002ae0| 20 43 6f 6d 6d 61 6e 64 | 20 5b 20 4d 41 58 43 4d | Command| [ MAXCM|
|00002af0| 44 20 5d 20 3b 20 20 20 | 20 2f 2a 20 42 75 66 66 |D ] ; | /* Buff|
|00002b00| 65 72 20 66 6f 72 20 72 | 65 61 64 69 6e 67 20 63 |er for r|eading c|
|00002b10| 6f 6d 6d 61 6e 64 73 20 | 2a 2f 0a 58 20 20 20 69 |ommands |*/.X i|
|00002b20| 6e 74 20 20 20 20 20 20 | 20 20 20 44 6f 31 20 3d |nt | Do1 =|
|00002b30| 20 46 41 4c 53 45 20 3b | 20 20 20 20 20 20 20 20 | FALSE ;| |
|00002b40| 20 20 20 2f 2a 20 54 52 | 55 45 20 69 66 20 73 68 | /* TR|UE if sh|
|00002b50| 6f 75 6c 64 20 6f 6e 6c | 79 20 64 6f 20 31 20 63 |ould onl|y do 1 c|
|00002b60| 6f 6d 6d 61 6e 64 20 2a | 2f 0a 58 20 20 20 69 6e |ommand *|/.X in|
|00002b70| 74 20 20 20 20 20 20 20 | 20 20 44 6f 50 72 6f 6d |t | DoProm|
|00002b80| 70 74 20 3b 20 20 20 20 | 20 20 20 20 20 20 20 20 |pt ; | |
|00002b90| 20 20 2f 2a 20 54 52 55 | 45 20 69 66 20 73 68 6f | /* TRU|E if sho|
|00002ba0| 75 6c 64 20 77 72 69 74 | 65 20 61 20 70 72 6f 6d |uld writ|e a prom|
|00002bb0| 70 74 20 2a 2f 0a 58 20 | 20 20 69 6e 74 20 20 20 |pt */.X | int |
|00002bc0| 20 20 20 20 20 20 65 72 | 72 6f 72 73 20 3d 20 30 | er|rors = 0|
|00002bd0| 20 3b 20 20 20 20 20 20 | 20 20 20 20 20 20 2f 2a | ; | /*|
|00002be0| 20 65 72 72 6f 72 20 63 | 6f 75 6e 74 20 2a 2f 0a | error c|ount */.|
|00002bf0| 58 0a 58 20 20 20 44 6f | 50 72 6f 6d 70 74 20 3d |X.X Do|Prompt =|
|00002c00| 20 69 73 61 74 74 79 28 | 66 69 6c 65 6e 6f 28 73 | isatty(|fileno(s|
|00002c10| 74 64 69 6e 29 29 20 3b | 0a 58 20 20 20 77 68 69 |tdin)) ;|.X whi|
|00002c20| 6c 65 20 28 28 63 20 3d | 20 67 65 74 6f 70 74 28 |le ((c =| getopt(|
|00002c30| 61 72 67 63 2c 20 61 72 | 67 76 2c 20 22 48 61 63 |argc, ar|gv, "Hac|
|00002c40| 3a 22 29 29 20 21 3d 20 | 45 4f 46 29 20 7b 0a 58 |:")) != |EOF) {.X|
|00002c50| 20 20 20 20 20 20 73 77 | 69 74 63 68 28 63 29 20 | sw|itch(c) |
|00002c60| 7b 0a 58 20 20 20 20 20 | 20 63 61 73 65 20 27 61 |{.X | case 'a|
|00002c70| 27 3a 0a 58 20 20 20 20 | 20 20 20 20 20 44 65 66 |':.X | Def|
|00002c80| 61 75 6c 74 43 6f 6d 6d | 61 6e 64 20 3d 20 22 61 |aultComm|and = "a|
|00002c90| 69 64 20 2d 6b 6d 6e 22 | 20 3b 0a 58 20 20 20 20 |id -kmn"| ;.X |
|00002ca0| 20 20 20 20 20 62 72 65 | 61 6b 20 3b 0a 58 20 20 | bre|ak ;.X |
|00002cb0| 20 20 20 20 63 61 73 65 | 20 27 63 27 3a 0a 58 20 | case| 'c':.X |
|00002cc0| 20 20 20 20 20 20 20 20 | 43 6d 64 50 74 72 20 3d | |CmdPtr =|
|00002cd0| 20 6f 70 74 61 72 67 20 | 3b 0a 58 20 20 20 20 20 | optarg |;.X |
|00002ce0| 20 20 20 20 44 6f 31 20 | 3d 20 54 52 55 45 20 3b | Do1 |= TRUE ;|
|00002cf0| 0a 58 20 20 20 20 20 20 | 20 20 20 62 72 65 61 6b |.X | break|
|00002d00| 20 3b 0a 58 20 20 20 20 | 20 20 63 61 73 65 20 27 | ;.X | case '|
|00002d10| 48 27 3a 0a 58 20 20 20 | 20 20 20 20 20 20 66 70 |H':.X | fp|
|00002d20| 75 74 73 28 22 5c 0a 58 | 69 69 64 3a 20 69 6e 74 |uts("\.X|iid: int|
|00002d30| 65 72 61 63 74 69 76 65 | 20 49 44 20 64 61 74 61 |eractive| ID data|
|00002d40| 62 61 73 65 20 71 75 65 | 72 79 20 74 6f 6f 6c 2e |base que|ry tool.|
|00002d50| 20 43 61 6c 6c 20 77 69 | 74 68 3a 5c 6e 5c 0a 58 | Call wi|th:\n\.X|
|00002d60| 20 20 20 69 69 64 20 5b | 2d 61 5d 20 5b 2d 63 5d | iid [|-a] [-c]|
|00002d70| 20 5b 2d 48 5d 5c 6e 5c | 0a 58 5c 6e 5c 0a 58 2d | [-H]\n\|.X\n\.X-|
|00002d80| 61 5c 74 55 73 65 20 74 | 68 65 20 61 69 64 20 61 |a\tUse t|he aid a|
|00002d90| 73 20 74 68 65 20 64 65 | 66 61 75 6c 74 20 71 75 |s the de|fault qu|
|00002da0| 65 72 79 20 63 6f 6d 6d | 61 6e 64 20 28 6e 6f 74 |ery comm|and (not|
|00002db0| 20 6c 69 64 29 2e 5c 6e | 5c 0a 58 2d 63 20 63 6d | lid).\n|\.X-c cm|
|00002dc0| 64 5c 74 45 78 65 63 75 | 74 65 20 74 68 65 20 73 |d\tExecu|te the s|
|00002dd0| 69 6e 67 6c 65 20 71 75 | 65 72 79 20 63 6d 64 20 |ingle qu|ery cmd |
|00002de0| 61 6e 64 20 65 78 69 74 | 2e 5c 6e 5c 0a 58 2d 48 |and exit|.\n\.X-H|
|00002df0| 5c 74 50 72 69 6e 74 20 | 74 68 69 73 20 6d 65 73 |\tPrint |this mes|
|00002e00| 73 61 67 65 20 61 6e 64 | 20 65 78 69 74 2e 5c 6e |sage and| exit.\n|
|00002e10| 5c 0a 58 5c 6e 5c 0a 58 | 54 6f 20 67 65 74 20 68 |\.X\n\.X|To get h|
|00002e20| 65 6c 70 20 61 66 74 65 | 72 20 73 74 61 72 74 69 |elp afte|r starti|
|00002e30| 6e 67 20 70 72 6f 67 72 | 61 6d 20 74 79 70 65 20 |ng progr|am type |
|00002e40| 27 68 65 6c 70 27 2e 5c | 6e 5c 0a 58 22 2c 73 74 |'help'.\|n\.X",st|
|00002e50| 64 65 72 72 29 20 3b 0a | 58 20 20 20 20 20 20 20 |derr) ;.|X |
|00002e60| 20 20 65 78 69 74 28 30 | 29 20 3b 0a 58 20 20 20 | exit(0|) ;.X |
|00002e70| 20 20 20 64 65 66 61 75 | 6c 74 3a 0a 58 20 20 20 | defau|lt:.X |
|00002e80| 20 20 20 20 20 20 2b 2b | 65 72 72 6f 72 73 20 3b | ++|errors ;|
|00002e90| 0a 58 20 20 20 20 20 20 | 20 20 20 62 72 65 61 6b |.X | break|
|00002ea0| 20 3b 0a 58 20 20 20 20 | 20 20 7d 0a 58 20 20 20 | ;.X | }.X |
|00002eb0| 7d 0a 58 20 20 20 69 66 | 20 28 61 72 67 63 20 21 |}.X if| (argc !|
|00002ec0| 3d 20 6f 70 74 69 6e 64 | 29 20 7b 0a 58 20 20 20 |= optind|) {.X |
|00002ed0| 20 20 20 66 70 75 74 73 | 28 22 69 69 64 3a 20 45 | fputs|("iid: E|
|00002ee0| 78 63 65 73 73 20 61 72 | 67 75 6d 65 6e 74 73 20 |xcess ar|guments |
|00002ef0| 69 67 6e 6f 72 65 64 2e | 5c 6e 22 2c 73 74 64 65 |ignored.|\n",stde|
|00002f00| 72 72 29 20 3b 0a 58 20 | 20 20 20 20 20 2b 2b 65 |rr) ;.X | ++e|
|00002f10| 72 72 6f 72 73 20 3b 0a | 58 20 20 20 7d 0a 58 20 |rrors ;.|X }.X |
|00002f20| 20 20 69 66 20 28 65 72 | 72 6f 72 73 29 20 7b 0a | if (er|rors) {.|
|00002f30| 58 20 20 20 20 20 20 66 | 70 75 74 73 28 22 72 75 |X f|puts("ru|
|00002f40| 6e 20 69 69 64 20 2d 48 | 20 66 6f 72 20 68 65 6c |n iid -H| for hel|
|00002f50| 70 2e 5c 6e 22 2c 73 74 | 64 65 72 72 29 20 3b 0a |p.\n",st|derr) ;.|
|00002f60| 58 20 20 20 20 20 20 65 | 78 69 74 28 31 29 20 3b |X e|xit(1) ;|
|00002f70| 0a 58 20 20 20 7d 0a 58 | 0a 58 20 20 20 2f 2a 20 |.X }.X|.X /* |
|00002f80| 69 6e 69 74 69 61 6c 69 | 7a 65 20 67 6c 6f 62 61 |initiali|ze globa|
|00002f90| 6c 20 64 61 74 61 20 2a | 2f 0a 58 0a 58 20 20 20 |l data *|/.X.X |
|00002fa0| 49 6e 69 74 49 69 64 28 | 29 20 3b 0a 58 0a 58 20 |InitIid(|) ;.X.X |
|00002fb0| 20 20 2f 2a 20 72 75 6e | 20 74 68 65 20 70 61 72 | /* run| the par|
|00002fc0| 73 65 72 20 2a 2f 0a 58 | 0a 58 20 20 20 69 66 20 |ser */.X|.X if |
|00002fd0| 28 44 6f 31 29 20 7b 20 | 20 20 20 20 20 20 20 20 |(Do1) { | |
|00002fe0| 20 20 0a 58 20 20 20 20 | 20 20 53 63 61 6e 49 6e | .X | ScanIn|
|00002ff0| 69 74 28 43 6d 64 50 74 | 72 29 20 3b 0a 58 20 20 |it(CmdPt|r) ;.X |
|00003000| 20 20 20 20 65 78 69 74 | 28 79 79 70 61 72 73 65 | exit|(yyparse|
|00003010| 28 29 29 20 3b 0a 58 20 | 20 20 7d 20 65 6c 73 65 |()) ;.X | } else|
|00003020| 20 7b 0a 58 20 20 20 20 | 20 20 66 6f 72 20 28 20 | {.X | for ( |
|00003030| 3b 20 3b 20 29 20 7b 0a | 58 20 20 20 20 20 20 20 |; ; ) {.|X |
|00003040| 20 20 69 66 20 28 44 6f | 50 72 6f 6d 70 74 29 20 | if (Do|Prompt) |
|00003050| 7b 0a 58 20 20 20 20 20 | 20 20 20 20 20 20 20 66 |{.X | f|
|00003060| 70 75 74 73 28 50 72 6f | 6d 70 74 2c 20 73 74 64 |puts(Pro|mpt, std|
|00003070| 6f 75 74 29 20 3b 0a 58 | 20 20 20 20 20 20 20 20 |out) ;.X| |
|00003080| 20 20 20 20 66 66 6c 75 | 73 68 28 73 74 64 6f 75 | fflu|sh(stdou|
|00003090| 74 29 20 3b 0a 58 20 20 | 20 20 20 20 20 20 20 7d |t) ;.X | }|
|000030a0| 0a 58 20 20 20 20 20 20 | 20 20 20 67 65 74 73 28 |.X | gets(|
|000030b0| 43 6f 6d 6d 61 6e 64 29 | 20 3b 0a 58 20 20 20 20 |Command)| ;.X |
|000030c0| 20 20 20 20 20 69 66 20 | 28 66 65 6f 66 28 73 74 | if |(feof(st|
|000030d0| 64 69 6e 29 29 20 7b 0a | 58 20 20 20 20 20 20 20 |din)) {.|X |
|000030e0| 20 20 20 20 20 69 66 20 | 28 44 6f 50 72 6f 6d 70 | if |(DoPromp|
|000030f0| 74 29 20 66 70 75 74 73 | 28 22 5c 6e 22 2c 20 73 |t) fputs|("\n", s|
|00003100| 74 64 6f 75 74 29 20 3b | 0a 58 20 20 20 20 20 20 |tdout) ;|.X |
|00003110| 20 20 20 20 20 20 73 74 | 72 63 70 79 28 43 6f 6d | st|rcpy(Com|
|00003120| 6d 61 6e 64 2c 20 22 6f | 66 66 22 29 20 3b 0a 58 |mand, "o|ff") ;.X|
|00003130| 20 20 20 20 20 20 20 20 | 20 7d 0a 58 20 20 20 20 | | }.X |
|00003140| 20 20 20 20 20 53 63 61 | 6e 49 6e 69 74 28 43 6f | Sca|nInit(Co|
|00003150| 6d 6d 61 6e 64 29 20 3b | 0a 58 20 20 20 20 20 20 |mmand) ;|.X |
|00003160| 20 20 20 65 72 72 6f 72 | 73 20 2b 3d 20 79 79 70 | error|s += yyp|
|00003170| 61 72 73 65 28 29 20 3b | 0a 58 20 20 20 20 20 20 |arse() ;|.X |
|00003180| 7d 0a 58 20 20 20 7d 0a | 58 7d 0a 45 4e 44 5f 4f |}.X }.|X}.END_O|
|00003190| 46 5f 46 49 4c 45 0a 69 | 66 20 74 65 73 74 20 31 |F_FILE.i|f test 1|
|000031a0| 31 32 37 38 20 2d 6e 65 | 20 60 77 63 20 2d 63 20 |1278 -ne| `wc -c |
|000031b0| 3c 27 69 69 64 2e 79 27 | 60 3b 20 74 68 65 6e 0a |<'iid.y'|`; then.|
|000031c0| 20 20 20 20 65 63 68 6f | 20 73 68 61 72 3a 20 5c | echo| shar: \|
|000031d0| 22 27 69 69 64 2e 79 27 | 5c 22 20 75 6e 70 61 63 |"'iid.y'|\" unpac|
|000031e0| 6b 65 64 20 77 69 74 68 | 20 77 72 6f 6e 67 20 73 |ked with| wrong s|
|000031f0| 69 7a 65 21 0a 66 69 0a | 23 20 65 6e 64 20 6f 66 |ize!.fi.|# end of|
|00003200| 20 27 69 69 64 2e 79 27 | 0a 66 69 0a 65 63 68 6f | 'iid.y'|.fi.echo|
|00003210| 20 73 68 61 72 3a 20 45 | 6e 64 20 6f 66 20 61 72 | shar: E|nd of ar|
|00003220| 63 68 69 76 65 20 37 20 | 5c 28 6f 66 20 31 31 5c |chive 7 |\(of 11\|
|00003230| 29 2e 0a 63 70 20 2f 64 | 65 76 2f 6e 75 6c 6c 20 |)..cp /d|ev/null |
|00003240| 61 72 6b 37 69 73 64 6f | 6e 65 0a 4d 49 53 53 49 |ark7isdo|ne.MISSI|
|00003250| 4e 47 3d 22 22 0a 66 6f | 72 20 49 20 69 6e 20 31 |NG="".fo|r I in 1|
|00003260| 20 32 20 33 20 34 20 35 | 20 36 20 37 20 38 20 39 | 2 3 4 5| 6 7 8 9|
|00003270| 20 31 30 20 31 31 20 3b | 20 64 6f 0a 20 20 20 20 | 10 11 ;| do. |
|00003280| 69 66 20 74 65 73 74 20 | 21 20 2d 66 20 61 72 6b |if test |! -f ark|
|00003290| 24 7b 49 7d 69 73 64 6f | 6e 65 20 3b 20 74 68 65 |${I}isdo|ne ; the|
|000032a0| 6e 0a 09 4d 49 53 53 49 | 4e 47 3d 22 24 7b 4d 49 |n..MISSI|NG="${MI|
|000032b0| 53 53 49 4e 47 7d 20 24 | 7b 49 7d 22 0a 20 20 20 |SSING} $|{I}". |
|000032c0| 20 66 69 0a 64 6f 6e 65 | 0a 69 66 20 74 65 73 74 | fi.done|.if test|
|000032d0| 20 22 24 7b 4d 49 53 53 | 49 4e 47 7d 22 20 3d 20 | "${MISS|ING}" = |
|000032e0| 22 22 20 3b 20 74 68 65 | 6e 0a 20 20 20 20 65 63 |"" ; the|n. ec|
|000032f0| 68 6f 20 59 6f 75 20 68 | 61 76 65 20 75 6e 70 61 |ho You h|ave unpa|
|00003300| 63 6b 65 64 20 61 6c 6c | 20 31 31 20 61 72 63 68 |cked all| 11 arch|
|00003310| 69 76 65 73 2e 0a 20 20 | 20 20 72 6d 20 2d 66 20 |ives.. | rm -f |
|00003320| 61 72 6b 5b 31 2d 39 5d | 69 73 64 6f 6e 65 20 61 |ark[1-9]|isdone a|
|00003330| 72 6b 5b 31 2d 39 5d 5b | 30 2d 39 5d 69 73 64 6f |rk[1-9][|0-9]isdo|
|00003340| 6e 65 0a 65 6c 73 65 0a | 20 20 20 20 65 63 68 6f |ne.else.| echo|
|00003350| 20 59 6f 75 20 73 74 69 | 6c 6c 20 6e 65 65 64 20 | You sti|ll need |
|00003360| 74 6f 20 75 6e 70 61 63 | 6b 20 74 68 65 20 66 6f |to unpac|k the fo|
|00003370| 6c 6c 6f 77 69 6e 67 20 | 61 72 63 68 69 76 65 73 |llowing |archives|
|00003380| 3a 0a 20 20 20 20 65 63 | 68 6f 20 22 20 20 20 20 |:. ec|ho " |
|00003390| 20 20 20 20 22 20 24 7b | 4d 49 53 53 49 4e 47 7d | " ${|MISSING}|
|000033a0| 0a 66 69 0a 23 23 20 20 | 45 6e 64 20 6f 66 20 73 |.fi.## |End of s|
|000033b0| 68 65 6c 6c 20 61 72 63 | 68 69 76 65 2e 0a 65 78 |hell arc|hive..ex|
|000033c0| 69 74 20 30 0a 2d 2d 0a | 3d 3d 3d 3d 3d 3d 3d 3d |it 0.--.|========|
|000033d0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|000033e0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|000033f0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00003400| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 0a 64 |========|======.d|
|00003410| 6f 6d 61 69 6e 3a 20 74 | 61 68 6f 72 73 6c 65 79 |omain: t|ahorsley|
|00003420| 40 63 73 64 2e 68 61 72 | 72 69 73 2e 63 6f 6d 20 |@csd.har|ris.com |
|00003430| 20 20 20 20 20 20 55 53 | 4d 61 69 6c 3a 20 54 6f | US|Mail: To|
|00003440| 6d 20 48 6f 72 73 6c 65 | 79 0a 20 20 75 75 63 70 |m Horsle|y. uucp|
|00003450| 3a 20 2e 2e 2e 21 75 75 | 6e 65 74 21 68 63 78 31 |: ...!uu|net!hcx1|
|00003460| 21 74 61 68 6f 72 73 6c | 65 79 20 20 20 20 20 20 |!tahorsl|ey |
|00003470| 20 20 20 20 20 20 20 20 | 20 35 31 31 20 4b 69 6e | | 511 Kin|
|00003480| 67 62 69 72 64 20 43 69 | 72 63 6c 65 0a 20 20 20 |gbird Ci|rcle. |
|00003490| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|000034a0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|000034b0| 20 20 20 20 20 20 20 20 | 20 20 20 20 44 65 6c 72 | | Delr|
|000034c0| 61 79 20 42 65 61 63 68 | 2c 20 46 4c 20 20 33 33 |ay Beach|, FL 33|
|000034d0| 34 34 34 0a 2b 3d 3d 3d | 3d 20 43 65 6e 73 6f 72 |444.+===|= Censor|
|000034e0| 73 68 69 70 20 69 73 20 | 74 68 65 20 6f 6e 6c 79 |ship is |the only|
|000034f0| 20 66 6f 72 6d 20 6f 66 | 20 4f 62 73 63 65 6e 69 | form of| Obsceni|
|00003500| 74 79 20 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |ty =====|========|
|00003510| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 2b 0a 7c 20 20 20 20 |========|=+.| |
|00003520| 20 28 57 61 69 74 2c 20 | 49 20 66 6f 72 67 6f 74 | (Wait, |I forgot|
|00003530| 20 67 6f 76 65 72 6e 6d | 65 6e 74 20 74 6f 62 61 | governm|ent toba|
|00003540| 63 63 6f 20 73 75 62 73 | 69 64 69 65 73 2e 2e 2e |cco subs|idies...|
|00003550| 29 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |) | |
|00003560| 7c 0a 2b 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d ||.+=====|========|
|00003570| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00003580| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00003590| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|000035a0| 3d 3d 3d 3d 3d 3d 3d 2b | 0a |=======+|. |
+--------+-------------------------+-------------------------+--------+--------+