home *** CD-ROM | disk | FTP | other *** search
open in:
MacOS 8.1
|
Win98
|
DOS
view JSON data
|
view as text
This file was processed as: SHell self-extracting ARchive
(archive/shar).
You can browse this item here: 3597
Confidence | Program | Detection | Match Type | Support
|
---|
100%
| dexvert
| SHell self-extracting ARchive (archive/shar)
| magic
| Supported |
1%
| dexvert
| Text File (text/txt)
| fallback
| Supported |
100%
| file
| 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)
|
|
hex view+--------+-------------------------+-------------------------+--------+--------+
|00000000| 4e 65 77 73 67 72 6f 75 | 70 73 3a 20 61 6c 74 2e |Newsgrou|ps: alt.|
|00000010| 73 6f 75 72 63 65 73 0a | 46 72 6f 6d 3a 20 6a 70 |sources.|From: jp|
|00000020| 72 40 6a 70 72 61 64 6c | 65 79 2e 6a 70 72 2e 63 |r@jpradl|ey.jpr.c|
|00000030| 6f 6d 20 28 4a 65 61 6e | 2d 50 69 65 72 72 65 20 |om (Jean|-Pierre |
|00000040| 52 61 64 6c 65 79 29 0a | 53 75 62 6a 65 63 74 3a |Radley).|Subject:|
|00000050| 20 58 43 20 33 2e 30 62 | 20 34 2f 35 20 43 6f 6d | XC 3.0b| 4/5 Com|
|00000060| 6d 75 6e 69 63 61 74 69 | 6f 6e 73 20 50 72 6f 67 |municati|ons Prog|
|00000070| 72 61 6d 0a 44 61 74 65 | 3a 20 54 75 65 2c 20 30 |ram.Date|: Tue, 0|
|00000080| 39 20 4a 75 6c 20 31 39 | 39 31 20 30 31 3a 30 33 |9 Jul 19|91 01:03|
|00000090| 3a 34 38 20 47 4d 54 0a | 4d 65 73 73 61 67 65 2d |:48 GMT.|Message-|
|000000a0| 49 44 3a 20 3c 31 39 39 | 31 4a 75 6c 30 39 2e 30 |ID: <199|1Jul09.0|
|000000b0| 31 30 33 34 38 2e 38 30 | 31 30 40 6a 70 72 61 64 |10348.80|10@jprad|
|000000c0| 6c 65 79 2e 6a 70 72 2e | 63 6f 6d 3e 0a 0a 0a 2d |ley.jpr.|com>...-|
|000000d0| 2d 2d 63 75 74 2d 2d 2d | 0a 23 21 2f 62 69 6e 2f |--cut---|.#!/bin/|
|000000e0| 73 68 0a 23 20 54 68 69 | 73 20 69 73 20 61 20 73 |sh.# Thi|s is a s|
|000000f0| 68 65 6c 6c 20 61 72 63 | 68 69 76 65 2c 20 6d 65 |hell arc|hive, me|
|00000100| 61 6e 69 6e 67 3a 0a 23 | 20 31 2e 20 52 65 6d 6f |aning:.#| 1. Remo|
|00000110| 76 65 20 65 76 65 72 79 | 74 68 69 6e 67 20 61 62 |ve every|thing ab|
|00000120| 6f 76 65 20 74 68 65 20 | 23 21 2f 62 69 6e 2f 73 |ove the |#!/bin/s|
|00000130| 68 20 6c 69 6e 65 2e 0a | 23 20 32 2e 20 53 61 76 |h line..|# 2. Sav|
|00000140| 65 20 74 68 65 20 72 65 | 73 75 6c 74 69 6e 67 20 |e the re|sulting |
|00000150| 74 65 78 74 20 69 6e 20 | 61 20 66 69 6c 65 2e 0a |text in |a file..|
|00000160| 23 20 33 2e 20 45 78 65 | 63 75 74 65 20 74 68 65 |# 3. Exe|cute the|
|00000170| 20 66 69 6c 65 20 77 69 | 74 68 20 2f 62 69 6e 2f | file wi|th /bin/|
|00000180| 73 68 20 28 6e 6f 74 20 | 63 73 68 29 20 74 6f 20 |sh (not |csh) to |
|00000190| 63 72 65 61 74 65 20 74 | 68 65 20 66 69 6c 65 73 |create t|he files|
|000001a0| 3a 0a 23 09 78 63 73 63 | 72 70 74 2e 63 0a 23 20 |:.#.xcsc|rpt.c.# |
|000001b0| 54 68 69 73 20 61 72 63 | 68 69 76 65 20 63 72 65 |This arc|hive cre|
|000001c0| 61 74 65 64 3a 20 4d 6f | 6e 20 4a 75 6c 20 20 38 |ated: Mo|n Jul 8|
|000001d0| 20 32 30 3a 33 37 3a 33 | 37 20 31 39 39 31 0a 65 | 20:37:3|7 1991.e|
|000001e0| 78 70 6f 72 74 20 50 41 | 54 48 3b 20 50 41 54 48 |xport PA|TH; PATH|
|000001f0| 3d 2f 62 69 6e 3a 24 50 | 41 54 48 0a 65 63 68 6f |=/bin:$P|ATH.echo|
|00000200| 20 73 68 61 72 3a 20 65 | 78 74 72 61 63 74 69 6e | shar: e|xtractin|
|00000210| 67 20 22 27 78 63 73 63 | 72 70 74 2e 63 27 22 20 |g "'xcsc|rpt.c'" |
|00000220| 27 28 33 37 35 39 39 20 | 63 68 61 72 61 63 74 65 |'(37599 |characte|
|00000230| 72 73 29 27 0a 69 66 20 | 74 65 73 74 20 2d 66 20 |rs)'.if |test -f |
|00000240| 27 78 63 73 63 72 70 74 | 2e 63 27 0a 74 68 65 6e |'xcscrpt|.c'.then|
|00000250| 0a 09 65 63 68 6f 20 73 | 68 61 72 3a 20 77 69 6c |..echo s|har: wil|
|00000260| 6c 20 6e 6f 74 20 6f 76 | 65 72 2d 77 72 69 74 65 |l not ov|er-write|
|00000270| 20 65 78 69 73 74 69 6e | 67 20 66 69 6c 65 20 22 | existin|g file "|
|00000280| 27 78 63 73 63 72 70 74 | 2e 63 27 22 0a 65 6c 73 |'xcscrpt|.c'".els|
|00000290| 65 0a 73 65 64 20 27 73 | 2f 5e 7c 2f 2f 27 20 3c |e.sed 's|/^|//' <|
|000002a0| 3c 20 5c 53 48 41 52 5f | 45 4f 46 20 3e 20 27 78 |< \SHAR_|EOF > 'x|
|000002b0| 63 73 63 72 70 74 2e 63 | 27 0a 7c 2f 2a 09 78 63 |cscrpt.c|'.|/*.xc|
|000002c0| 73 63 72 70 74 2e 63 20 | 2d 2d 20 73 63 72 69 70 |scrpt.c |-- scrip|
|000002d0| 74 20 69 6e 74 65 72 70 | 72 65 74 65 72 20 6d 6f |t interp|reter mo|
|000002e0| 64 75 6c 65 20 66 6f 72 | 20 58 43 0a 7c 09 54 68 |dule for| XC.|.Th|
|000002f0| 69 73 20 66 69 6c 65 20 | 75 73 65 73 20 34 2d 63 |is file |uses 4-c|
|00000300| 68 61 72 61 63 74 65 72 | 20 74 61 62 73 74 6f 70 |haracter| tabstop|
|00000310| 73 0a 7c 09 41 75 74 68 | 6f 72 3a 20 6c 61 72 72 |s.|.Auth|or: larr|
|00000320| 79 20 67 65 6e 73 63 68 | 2c 20 44 65 63 65 6d 62 |y gensch|, Decemb|
|00000330| 65 72 20 34 2c 20 31 39 | 38 37 0a 7c 09 4d 61 6a |er 4, 19|87.|.Maj|
|00000340| 6f 72 20 72 65 77 72 69 | 74 65 3a 20 66 72 65 64 |or rewri|te: fred|
|00000350| 20 62 75 63 6b 2c 20 4a | 61 6e 20 31 39 38 39 0a | buck, J|an 1989.|
|00000360| 7c 09 54 68 69 73 20 63 | 6f 64 65 20 69 73 20 72 ||.This c|ode is r|
|00000370| 65 6c 65 61 73 65 64 20 | 74 6f 20 74 68 65 20 70 |eleased |to the p|
|00000380| 75 62 6c 69 63 20 64 6f | 6d 61 69 6e 0a 7c 2a 2f |ublic do|main.|*/|
|00000390| 0a 7c 0a 7c 23 69 6e 63 | 6c 75 64 65 20 3c 73 74 |.|.|#inc|lude <st|
|000003a0| 64 69 6f 2e 68 3e 0a 7c | 23 69 6e 63 6c 75 64 65 |dio.h>.||#include|
|000003b0| 20 3c 73 79 73 2f 74 79 | 70 65 73 2e 68 3e 0a 7c | <sys/ty|pes.h>.||
|000003c0| 23 69 6e 63 6c 75 64 65 | 20 3c 73 79 73 2f 74 69 |#include| <sys/ti|
|000003d0| 6d 65 73 2e 68 3e 0a 7c | 23 69 6e 63 6c 75 64 65 |mes.h>.||#include|
|000003e0| 20 3c 73 79 73 2f 70 61 | 72 61 6d 2e 68 3e 0a 7c | <sys/pa|ram.h>.||
|000003f0| 23 69 6e 63 6c 75 64 65 | 20 3c 63 74 79 70 65 2e |#include| <ctype.|
|00000400| 68 3e 0a 7c 23 69 6e 63 | 6c 75 64 65 20 3c 73 69 |h>.|#inc|lude <si|
|00000410| 67 6e 61 6c 2e 68 3e 0a | 7c 23 69 6e 63 6c 75 64 |gnal.h>.||#includ|
|00000420| 65 20 3c 73 65 74 6a 6d | 70 2e 68 3e 0a 7c 23 69 |e <setjm|p.h>.|#i|
|00000430| 6e 63 6c 75 64 65 20 3c | 73 79 73 2f 73 74 61 74 |nclude <|sys/stat|
|00000440| 2e 68 3e 0a 7c 23 69 6e | 63 6c 75 64 65 20 3c 74 |.h>.|#in|clude <t|
|00000450| 65 72 6d 69 6f 2e 68 3e | 0a 7c 23 69 66 64 65 66 |ermio.h>|.|#ifdef|
|00000460| 20 54 36 30 30 30 0a 7c | 23 69 6e 63 6c 75 64 65 | T6000.||#include|
|00000470| 20 3c 73 79 73 2f 69 6f | 63 74 6c 2e 68 3e 0a 7c | <sys/io|ctl.h>.||
|00000480| 23 65 6e 64 69 66 0a 7c | 23 69 6e 63 6c 75 64 65 |#endif.||#include|
|00000490| 20 22 78 63 2e 68 22 0a | 7c 0a 7c 23 64 65 66 69 | "xc.h".||.|#defi|
|000004a0| 6e 65 09 4d 41 58 5f 4c | 49 4e 45 09 31 32 38 0a |ne.MAX_L|INE.128.|
|000004b0| 7c 0a 7c 6a 6d 70 5f 62 | 75 66 20 68 65 72 65 3b ||.|jmp_b|uf here;|
|000004c0| 0a 7c 46 49 4c 45 20 2a | 63 66 3b 0a 7c 73 68 6f |.|FILE *|cf;.|sho|
|000004d0| 72 74 20 74 74 79 5f 66 | 6c 61 67 2c 0a 7c 09 65 |rt tty_f|lag,.|.e|
|000004e0| 63 68 6f 5f 66 6c 61 67 | 20 3d 20 46 41 4c 53 45 |cho_flag| = FALSE|
|000004f0| 2c 0a 7c 09 63 61 70 74 | 66 6c 61 67 20 3d 20 46 |,.|.capt|flag = F|
|00000500| 41 4c 53 45 2c 0a 7c 09 | 6c 69 6e 6b 66 6c 61 67 |ALSE,.|.|linkflag|
|00000510| 20 3d 20 46 41 4c 53 45 | 2c 0a 7c 09 73 63 72 69 | = FALSE|,.|.scri|
|00000520| 70 74 66 6c 61 67 20 3d | 20 46 41 4c 53 45 2c 0a |ptflag =| FALSE,.|
|00000530| 7c 09 6d 72 62 73 74 61 | 72 74 2c 09 09 09 2f 2a ||.mrbsta|rt,.../*|
|00000540| 20 72 69 6e 67 20 62 75 | 66 66 65 72 20 73 74 61 | ring bu|ffer sta|
|00000550| 72 74 20 70 6f 69 6e 74 | 65 72 20 2a 2f 0a 7c 09 |rt point|er */.|.|
|00000560| 6d 72 62 63 6f 75 6e 74 | 3b 09 09 09 2f 2a 20 72 |mrbcount|;.../* r|
|00000570| 69 6e 67 20 62 75 66 66 | 65 72 20 63 6f 75 6e 74 |ing buff|er count|
|00000580| 65 72 20 2a 2f 0a 7c 65 | 78 74 65 72 6e 20 73 68 |er */.|e|xtern sh|
|00000590| 6f 72 74 20 65 6f 66 5f | 66 6c 61 67 3b 0a 7c 65 |ort eof_|flag;.|e|
|000005a0| 78 74 65 72 6e 20 69 6e | 74 09 72 65 64 69 61 6c |xtern in|t.redial|
|000005b0| 28 29 2c 20 73 5f 65 78 | 69 74 28 29 2c 20 78 6d |(), s_ex|it(), xm|
|000005c0| 69 74 62 72 6b 28 29 3b | 0a 7c 63 68 61 72 20 6d |itbrk();|.|char m|
|000005d0| 72 69 6e 67 62 75 66 5b | 4c 47 5f 42 55 46 46 5d |ringbuf[|LG_BUFF]|
|000005e0| 3b 09 2f 2a 20 72 69 6e | 67 20 62 75 66 66 65 72 |;./* rin|g buffer|
|000005f0| 20 66 6f 72 20 6d 6f 64 | 65 6d 20 69 6e 70 75 74 | for mod|em input|
|00000600| 20 2a 2f 0a 7c 73 74 61 | 74 69 63 20 76 6f 69 64 | */.|sta|tic void|
|00000610| 20 75 6e 73 65 74 61 6c | 6c 28 29 2c 20 53 5f 62 | unsetal|l(), S_b|
|00000620| 6f 6d 62 6f 75 74 28 29 | 2c 20 53 5f 63 61 6c 6c |ombout()|, S_call|
|00000630| 28 29 3b 0a 7c 65 78 74 | 65 72 6e 20 76 6f 69 64 |();.|ext|ern void|
|00000640| 20 64 69 76 65 72 74 28 | 29 2c 20 73 65 74 5f 6f | divert(|), set_o|
|00000650| 6e 6f 66 66 28 29 2c 20 | 78 63 64 69 61 6c 28 29 |noff(), |xcdial()|
|00000660| 3b 0a 7c 0a 7c 73 74 61 | 74 69 63 20 76 6f 69 64 |;.|.|sta|tic void|
|00000670| 20 6e 65 77 73 69 67 69 | 6e 74 28 29 0a 7c 7b 0a | newsigi|nt().|{.|
|00000680| 7c 09 73 69 67 6e 61 6c | 28 53 49 47 49 4e 54 2c ||.signal|(SIGINT,|
|00000690| 20 53 49 47 5f 49 47 4e | 29 3b 0a 7c 0a 7c 09 65 | SIG_IGN|);.|.|.e|
|000006a0| 6f 66 5f 66 6c 61 67 2b | 2b 3b 0a 7c 09 73 68 6f |of_flag+|+;.|.sho|
|000006b0| 77 5f 61 62 6f 72 74 28 | 29 3b 0a 7c 09 53 5f 62 |w_abort(|);.|.S_b|
|000006c0| 6f 6d 62 6f 75 74 28 29 | 3b 0a 7c 09 6c 6f 6e 67 |ombout()|;.|.long|
|000006d0| 6a 6d 70 28 68 65 72 65 | 2c 31 29 3b 0a 7c 7d 0a |jmp(here|,1);.|}.|
|000006e0| 7c 0a 7c 76 6f 69 64 20 | 64 6f 5f 73 63 72 69 70 ||.|void |do_scrip|
|000006f0| 74 28 66 69 6c 65 29 0a | 7c 63 68 61 72 20 2a 66 |t(file).||char *f|
|00000700| 69 6c 65 3b 0a 7c 7b 0a | 7c 09 63 61 70 74 66 6c |ile;.|{.||.captfl|
|00000710| 61 67 20 3d 20 46 41 4c | 53 45 3b 0a 7c 09 74 74 |ag = FAL|SE;.|.tt|
|00000720| 79 5f 66 6c 61 67 20 3d | 20 54 52 55 45 3b 0a 7c |y_flag =| TRUE;.||
|00000730| 09 73 63 72 69 70 74 66 | 6c 61 67 20 3d 20 54 52 |.scriptf|lag = TR|
|00000740| 55 45 3b 0a 7c 09 65 6f | 66 5f 66 6c 61 67 20 3d |UE;.|.eo|f_flag =|
|00000750| 20 46 41 4c 53 45 3b 0a | 7c 0a 7c 09 69 66 20 28 | FALSE;.||.|.if (|
|00000760| 73 65 74 6a 6d 70 28 68 | 65 72 65 29 20 3d 3d 20 |setjmp(h|ere) == |
|00000770| 30 29 7b 0a 7c 09 09 73 | 69 67 6e 61 6c 28 53 49 |0){.|..s|ignal(SI|
|00000780| 47 49 4e 54 2c 20 6e 65 | 77 73 69 67 69 6e 74 29 |GINT, ne|wsigint)|
|00000790| 3b 0a 7c 09 09 69 6e 74 | 64 65 6c 28 54 52 55 45 |;.|..int|del(TRUE|
|000007a0| 29 3b 0a 7c 09 09 53 5f | 63 61 6c 6c 28 66 69 6c |);.|..S_|call(fil|
|000007b0| 65 29 3b 0a 7c 09 7d 0a | 7c 09 75 6e 73 65 74 61 |e);.|.}.||.unseta|
|000007c0| 6c 6c 28 29 3b 0a 7c 09 | 69 66 20 28 63 61 70 74 |ll();.|.|if (capt|
|000007d0| 66 6c 61 67 29 0a 7c 09 | 09 66 63 6c 6f 73 65 28 |flag).|.|.fclose(|
|000007e0| 63 66 29 3b 0a 7c 0a 7c | 09 6c 69 6e 6b 66 6c 61 |cf);.|.||.linkfla|
|000007f0| 67 20 3d 20 30 3b 0a 7c | 09 73 63 72 69 70 74 66 |g = 0;.||.scriptf|
|00000800| 6c 61 67 20 3d 20 46 41 | 4c 53 45 3b 0a 7c 0a 7c |lag = FA|LSE;.|.||
|00000810| 09 73 69 67 6e 61 6c 28 | 53 49 47 49 4e 54 2c 20 |.signal(|SIGINT, |
|00000820| 53 49 47 5f 49 47 4e 29 | 3b 0a 7c 09 69 6e 74 64 |SIG_IGN)|;.|.intd|
|00000830| 65 6c 28 46 41 4c 53 45 | 29 3b 0a 7c 0a 7c 09 72 |el(FALSE|);.|.|.r|
|00000840| 65 74 75 72 6e 3b 0a 7c | 7d 0a 7c 0a 7c 73 74 61 |eturn;.||}.|.|sta|
|00000850| 74 69 63 20 6b 5f 73 65 | 65 6e 28 62 79 74 65 73 |tic k_se|en(bytes|
|00000860| 2c 66 77 6f 72 64 29 0a | 7c 6c 6f 6e 67 20 69 6e |,fword).||long in|
|00000870| 74 20 62 79 74 65 73 3b | 0a 7c 63 68 61 72 20 2a |t bytes;|.|char *|
|00000880| 66 77 6f 72 64 3b 0a 7c | 7b 0a 7c 09 69 6e 74 20 |fword;.||{.|.int |
|00000890| 69 2c 20 6a 2c 20 6b 3b | 0a 7c 09 63 68 61 72 20 |i, j, k;|.|.char |
|000008a0| 2a 63 70 74 72 3b 0a 7c | 0a 7c 09 63 70 74 72 20 |*cptr;.||.|.cptr |
|000008b0| 3d 20 66 77 6f 72 64 3b | 0a 7c 0a 7c 09 69 66 20 |= fword;|.|.|.if |
|000008c0| 28 21 66 77 6f 72 64 20 | 7c 7c 20 21 2a 66 77 6f |(!fword ||| !*fwo|
|000008d0| 72 64 29 7b 0a 7c 09 09 | 73 68 6f 77 28 32 2c 22 |rd){.|..|show(2,"|
|000008e0| 4e 6f 20 61 72 67 75 6d | 65 6e 74 20 74 6f 20 53 |No argum|ent to S|
|000008f0| 45 45 4e 20 63 6f 6d 6d | 61 6e 64 22 29 3b 0a 7c |EEN comm|and");.||
|00000900| 09 09 72 65 74 75 72 6e | 20 2d 31 3b 0a 7c 09 7d |..return| -1;.|.}|
|00000910| 0a 7c 09 6a 20 3d 20 6d | 72 62 73 74 61 72 74 20 |.|.j = m|rbstart |
|00000920| 2d 20 31 3b 0a 7c 09 69 | 66 20 28 62 79 74 65 73 |- 1;.|.i|f (bytes|
|00000930| 3c 3d 30 20 7c 7c 20 62 | 79 74 65 73 3e 4c 47 5f |<=0 || b|ytes>LG_|
|00000940| 42 55 46 46 29 0a 7c 09 | 09 62 79 74 65 73 20 3d |BUFF).|.|.bytes =|
|00000950| 20 4c 47 5f 42 55 46 46 | 3b 0a 7c 09 6b 20 3d 20 | LG_BUFF|;.|.k = |
|00000960| 6d 72 62 63 6f 75 6e 74 | 20 2d 20 62 79 74 65 73 |mrbcount| - bytes|
|00000970| 3b 09 2f 2a 20 63 68 65 | 63 6b 20 6f 6e 6c 79 20 |;./* che|ck only |
|00000980| 6d 6f 73 74 20 72 65 63 | 65 6e 74 20 27 62 79 74 |most rec|ent 'byt|
|00000990| 65 73 27 20 62 79 74 65 | 73 20 2a 2f 0a 7c 09 69 |es' byte|s */.|.i|
|000009a0| 20 3d 20 30 3b 0a 7c 09 | 77 68 69 6c 65 20 28 28 | = 0;.|.|while ((|
|000009b0| 69 2b 2b 29 3c 6d 72 62 | 63 6f 75 6e 74 29 7b 0a |i++)<mrb|count){.|
|000009c0| 7c 09 09 2b 2b 6a 3b 0a | 7c 09 09 6a 20 3d 20 6a ||..++j;.||..j = j|
|000009d0| 20 25 20 4c 47 5f 42 55 | 46 46 3b 0a 7c 09 09 69 | % LG_BU|FF;.|..i|
|000009e0| 66 20 28 69 3c 6b 29 0a | 7c 09 09 09 63 6f 6e 74 |f (i<k).||...cont|
|000009f0| 69 6e 75 65 3b 0a 7c 09 | 09 69 66 20 28 6d 72 69 |inue;.|.|.if (mri|
|00000a00| 6e 67 62 75 66 5b 6a 5d | 20 21 3d 20 2a 63 70 74 |ngbuf[j]| != *cpt|
|00000a10| 72 29 7b 0a 7c 09 09 09 | 63 70 74 72 20 3d 20 66 |r){.|...|cptr = f|
|00000a20| 77 6f 72 64 3b 0a 7c 09 | 09 09 63 6f 6e 74 69 6e |word;.|.|..contin|
|00000a30| 75 65 3b 0a 7c 09 09 7d | 0a 7c 09 09 69 66 20 28 |ue;.|..}|.|..if (|
|00000a40| 2a 28 2b 2b 63 70 74 72 | 29 3d 3d 27 5c 30 27 29 |*(++cptr|)=='\0')|
|00000a50| 0a 7c 09 09 09 72 65 74 | 75 72 6e 20 30 3b 0a 7c |.|...ret|urn 0;.||
|00000a60| 09 7d 0a 7c 09 72 65 74 | 75 72 6e 20 2d 31 3b 0a |.}.|.ret|urn -1;.|
|00000a70| 7c 7d 0a 7c 0a 7c 6b 5f | 77 61 69 74 66 6f 72 28 ||}.|.|k_|waitfor(|
|00000a80| 69 6e 74 65 72 76 61 6c | 2c 66 77 6f 72 64 29 0a |interval|,fword).|
|00000a90| 7c 6c 6f 6e 67 20 69 6e | 74 65 72 76 61 6c 3b 0a ||long in|terval;.|
|00000aa0| 7c 63 68 61 72 20 2a 66 | 77 6f 72 64 3b 0a 7c 7b ||char *f|word;.|{|
|00000ab0| 0a 7c 09 72 65 67 69 73 | 74 65 72 20 63 2c 20 69 |.|.regis|ter c, i|
|00000ac0| 20 3d 20 2d 31 20 3b 0a | 7c 09 72 65 67 69 73 74 | = -1 ;.||.regist|
|00000ad0| 65 72 20 6c 6f 6e 67 20 | 6c 69 6d 69 74 2c 20 77 |er long |limit, w|
|00000ae0| 61 69 74 66 6f 72 5f 6d | 73 65 63 20 3d 20 30 3b |aitfor_m|sec = 0;|
|00000af0| 0a 7c 09 63 68 61 72 20 | 2a 70 74 72 20 3d 20 4e |.|.char |*ptr = N|
|00000b00| 55 4c 4c 53 3b 0a 7c 09 | 65 78 74 65 72 6e 20 76 |ULLS;.|.|extern v|
|00000b10| 6f 69 64 20 73 5f 63 69 | 73 28 29 3b 0a 7c 09 73 |oid s_ci|s();.|.s|
|00000b20| 74 72 75 63 74 20 74 6d | 73 20 74 62 75 66 3b 0a |truct tm|s tbuf;.|
|00000b30| 7c 0a 7c 09 6d 72 62 73 | 74 61 72 74 20 3d 20 6d ||.|.mrbs|tart = m|
|00000b40| 72 62 63 6f 75 6e 74 20 | 3d 20 30 3b 0a 7c 09 73 |rbcount |= 0;.|.s|
|00000b50| 70 72 69 6e 74 66 28 6c | 69 6e 65 2c 22 5c 22 25 |printf(l|ine,"\"%|
|00000b60| 73 5c 22 22 2c 66 77 6f | 72 64 29 3b 0a 7c 09 6c |s\"",fwo|rd);.|.l|
|00000b70| 70 74 72 20 3d 20 6c 69 | 6e 65 3b 0a 7c 09 67 65 |ptr = li|ne;.|.ge|
|00000b80| 74 77 6f 72 64 28 29 3b | 0a 7c 09 6c 63 5f 77 6f |tword();|.|.lc_wo|
|00000b90| 72 64 28 77 6f 72 64 29 | 3b 0a 7c 0a 7c 09 69 66 |rd(word)|;.|.|.if|
|00000ba0| 20 28 69 6e 74 65 72 76 | 61 6c 20 3c 20 2d 31 29 | (interv|al < -1)|
|00000bb0| 20 7b 0a 7c 09 09 77 61 | 69 74 66 6f 72 5f 6d 73 | {.|..wa|itfor_ms|
|00000bc0| 65 63 20 3d 20 2d 69 6e | 74 65 72 76 61 6c 3b 0a |ec = -in|terval;.|
|00000bd0| 7c 09 09 67 6f 74 6f 20 | 53 50 49 54 4f 55 54 3b ||..goto |SPITOUT;|
|00000be0| 0a 7c 09 7d 0a 7c 09 69 | 66 20 28 21 77 6f 72 64 |.|.}.|.i|f (!word|
|00000bf0| 20 7c 7c 20 77 6f 72 64 | 5b 30 5d 20 3d 3d 20 27 | || word|[0] == '|
|00000c00| 5c 30 27 29 7b 0a 7c 09 | 09 73 68 6f 77 28 32 2c |\0'){.|.|.show(2,|
|00000c10| 22 4e 6f 20 61 72 67 75 | 6d 65 6e 74 20 74 6f 20 |"No argu|ment to |
|00000c20| 57 41 49 54 46 4f 52 20 | 63 6f 6d 6d 61 6e 64 22 |WAITFOR |command"|
|00000c30| 29 3b 0a 7c 09 09 72 65 | 74 75 72 6e 20 2d 31 3b |);.|..re|turn -1;|
|00000c40| 0a 7c 09 7d 0a 7c 0a 7c | 09 77 61 69 74 66 6f 72 |.|.}.|.||.waitfor|
|00000c50| 5f 6d 73 65 63 20 3d 20 | 31 30 30 30 20 2a 20 28 |_msec = |1000 * (|
|00000c60| 28 69 6e 74 65 72 76 61 | 6c 20 3e 20 30 29 20 3f |(interva|l > 0) ?|
|00000c70| 20 69 6e 74 65 72 76 61 | 6c 20 3a 20 33 30 29 3b | interva|l : 30);|
|00000c80| 0a 7c 09 65 6f 66 5f 66 | 6c 61 67 20 3d 20 46 41 |.|.eof_f|lag = FA|
|00000c90| 4c 53 45 3b 0a 7c 0a 7c | 53 50 49 54 4f 55 54 3a |LSE;.|.||SPITOUT:|
|00000ca0| 20 6c 69 6d 69 74 20 3d | 20 74 69 6d 65 73 28 26 | limit =| times(&|
|00000cb0| 74 62 75 66 29 20 2b 20 | 28 48 5a 20 2a 20 77 61 |tbuf) + |(HZ * wa|
|00000cc0| 69 74 66 6f 72 5f 6d 73 | 65 63 29 2f 31 30 30 30 |itfor_ms|ec)/1000|
|00000cd0| 3b 0a 7c 09 77 68 69 6c | 65 20 28 6c 69 6d 69 74 |;.|.whil|e (limit|
|00000ce0| 20 3e 3d 20 74 69 6d 65 | 73 28 26 74 62 75 66 29 | >= time|s(&tbuf)|
|00000cf0| 20 26 26 20 21 65 6f 66 | 5f 66 6c 61 67 29 7b 0a | && !eof|_flag){.|
|00000d00| 7c 09 09 69 66 20 28 28 | 63 20 3d 20 72 65 61 64 ||..if ((|c = read|
|00000d10| 5f 6d 62 79 74 65 28 31 | 29 29 20 3d 3d 20 2d 31 |_mbyte(1|)) == -1|
|00000d20| 29 0a 7c 09 09 09 63 6f | 6e 74 69 6e 75 65 3b 0a |).|...co|ntinue;.|
|00000d30| 7c 0a 7c 09 09 69 66 20 | 28 63 69 73 6d 6f 64 65 ||.|..if |(cismode|
|00000d40| 20 26 26 20 63 3d 3d 45 | 4e 51 29 7b 0a 7c 09 09 | && c==E|NQ){.|..|
|00000d50| 09 73 5f 63 69 73 28 29 | 3b 0a 7c 09 09 09 67 6f |.s_cis()|;.|...go|
|00000d60| 74 6f 20 53 50 49 54 4f | 55 54 3b 0a 7c 09 09 7d |to SPITO|UT;.|..}|
|00000d70| 0a 7c 0a 7c 09 09 2b 2b | 69 3b 0a 7c 09 09 69 20 |.|.|..++|i;.|..i |
|00000d80| 3d 20 69 20 25 20 4c 47 | 5f 42 55 46 46 3b 0a 7c |= i % LG|_BUFF;.||
|00000d90| 09 09 6d 72 69 6e 67 62 | 75 66 5b 69 5d 20 3d 20 |..mringb|uf[i] = |
|00000da0| 63 3b 0a 7c 09 09 6d 72 | 62 73 74 61 72 74 20 3d |c;.|..mr|bstart =|
|00000db0| 20 6d 72 62 73 74 61 72 | 74 20 25 20 4c 47 5f 42 | mrbstar|t % LG_B|
|00000dc0| 55 46 46 3b 0a 7c 09 09 | 69 66 20 28 6d 72 62 63 |UFF;.|..|if (mrbc|
|00000dd0| 6f 75 6e 74 3c 4c 47 5f | 42 55 46 46 29 0a 7c 09 |ount<LG_|BUFF).|.|
|00000de0| 09 09 2b 2b 6d 72 62 63 | 6f 75 6e 74 3b 0a 7c 09 |..++mrbc|ount;.|.|
|00000df0| 09 65 6c 73 65 20 7b 0a | 7c 09 09 09 2b 2b 6d 72 |.else {.||...++mr|
|00000e00| 62 73 74 61 72 74 3b 0a | 7c 09 09 09 6d 72 62 73 |bstart;.||...mrbs|
|00000e10| 74 61 72 74 20 3d 20 6d | 72 62 73 74 61 72 74 20 |tart = m|rbstart |
|00000e20| 25 20 4c 47 5f 42 55 46 | 46 3b 0a 7c 09 09 7d 0a |% LG_BUF|F;.|..}.|
|00000e30| 7c 0a 7c 09 09 69 66 20 | 28 74 74 79 5f 66 6c 61 ||.|..if |(tty_fla|
|00000e40| 67 29 0a 7c 09 09 09 66 | 70 75 74 63 28 63 2c 74 |g).|...f|putc(c,t|
|00000e50| 66 70 29 3b 0a 7c 0a 7c | 09 09 69 66 20 28 63 61 |fp);.|.||..if (ca|
|00000e60| 70 74 66 6c 61 67 20 26 | 26 20 63 20 21 3d 20 27 |ptflag &|& c != '|
|00000e70| 5c 72 27 29 0a 7c 09 09 | 09 66 70 75 74 63 28 63 |\r').|..|.fputc(c|
|00000e80| 2c 63 66 29 3b 0a 7c 0a | 7c 09 09 69 66 20 28 74 |,cf);.|.||..if (t|
|00000e90| 6f 6c 6f 77 65 72 28 63 | 29 20 21 3d 20 2a 70 74 |olower(c|) != *pt|
|00000ea0| 72 29 7b 0a 7c 09 09 09 | 70 74 72 20 3d 20 77 6f |r){.|...|ptr = wo|
|00000eb0| 72 64 3b 0a 7c 09 09 09 | 63 6f 6e 74 69 6e 75 65 |rd;.|...|continue|
|00000ec0| 3b 0a 7c 09 09 7d 0a 7c | 0a 7c 09 09 69 66 20 28 |;.|..}.||.|..if (|
|00000ed0| 2a 2b 2b 70 74 72 20 3d | 3d 20 27 5c 30 27 29 0a |*++ptr =|= '\0').|
|00000ee0| 7c 09 09 09 72 65 74 75 | 72 6e 20 30 3b 0a 7c 09 ||...retu|rn 0;.|.|
|00000ef0| 7d 0a 7c 09 72 65 74 75 | 72 6e 20 2d 31 3b 0a 7c |}.|.retu|rn -1;.||
|00000f00| 7d 0a 7c 0a 7c 73 74 61 | 74 69 63 20 6b 5f 74 72 |}.|.|sta|tic k_tr|
|00000f10| 61 6e 73 6d 69 74 28 6a | 75 6e 6b 2c 66 77 6f 72 |ansmit(j|unk,fwor|
|00000f20| 64 29 0a 7c 6c 6f 6e 67 | 20 69 6e 74 20 6a 75 6e |d).|long| int jun|
|00000f30| 6b 3b 0a 7c 63 68 61 72 | 20 2a 66 77 6f 72 64 3b |k;.|char| *fword;|
|00000f40| 0a 7c 7b 0a 7c 09 73 70 | 72 69 6e 74 66 28 6c 69 |.|{.|.sp|rintf(li|
|00000f50| 6e 65 2c 22 5c 22 25 73 | 5c 22 22 2c 66 77 6f 72 |ne,"\"%s|\"",fwor|
|00000f60| 64 29 3b 0a 7c 09 6c 70 | 74 72 20 3d 20 6c 69 6e |d);.|.lp|tr = lin|
|00000f70| 65 3b 0a 7c 09 67 65 74 | 77 6f 72 64 28 29 3b 0a |e;.|.get|word();.|
|00000f80| 7c 09 69 66 20 28 21 66 | 77 6f 72 64 20 7c 7c 20 ||.if (!f|word || |
|00000f90| 66 77 6f 72 64 5b 30 5d | 20 3d 3d 20 27 5c 30 27 |fword[0]| == '\0'|
|00000fa0| 29 7b 0a 7c 09 09 73 68 | 6f 77 28 32 2c 22 4e 6f |){.|..sh|ow(2,"No|
|00000fb0| 20 61 72 67 75 6d 65 6e | 74 20 74 6f 20 54 52 41 | argumen|t to TRA|
|00000fc0| 4e 53 4d 49 54 20 63 6f | 6d 6d 61 6e 64 22 29 3b |NSMIT co|mmand");|
|00000fd0| 0a 7c 09 09 72 65 74 75 | 72 6e 20 2d 31 3b 0a 7c |.|..retu|rn -1;.||
|00000fe0| 09 7d 0a 7c 09 73 65 6e | 64 5f 73 6c 6f 77 6c 79 |.}.|.sen|d_slowly|
|00000ff0| 28 77 6f 72 64 29 3b 0a | 7c 09 72 65 74 75 72 6e |(word);.||.return|
|00001000| 20 30 3b 0a 7c 7d 0a 7c | 0a 7c 73 74 61 74 69 63 | 0;.|}.||.|static|
|00001010| 20 6b 5f 70 61 75 73 65 | 28 70 61 75 73 65 5f 74 | k_pause|(pause_t|
|00001020| 69 6d 65 2c 6a 75 6e 6b | 29 0a 7c 6c 6f 6e 67 20 |ime,junk|).|long |
|00001030| 69 6e 74 20 70 61 75 73 | 65 5f 74 69 6d 65 3b 0a |int paus|e_time;.|
|00001040| 7c 63 68 61 72 20 2a 6a | 75 6e 6b 3b 0a 7c 7b 0a ||char *j|unk;.|{.|
|00001050| 7c 09 70 61 75 73 65 5f | 74 69 6d 65 20 3d 20 70 ||.pause_|time = p|
|00001060| 61 75 73 65 5f 74 69 6d | 65 20 3f 20 70 61 75 73 |ause_tim|e ? paus|
|00001070| 65 5f 74 69 6d 65 20 3a | 20 35 3b 0a 7c 09 73 6c |e_time :| 5;.|.sl|
|00001080| 65 65 70 28 28 75 6e 73 | 69 67 6e 65 64 29 70 61 |eep((uns|igned)pa|
|00001090| 75 73 65 5f 74 69 6d 65 | 29 3b 0a 7c 09 72 65 74 |use_time|);.|.ret|
|000010a0| 75 72 6e 20 30 3b 0a 7c | 7d 0a 7c 0a 7c 73 74 61 |urn 0;.||}.|.|sta|
|000010b0| 74 69 63 20 6b 5f 64 69 | 61 6c 28 6a 75 6e 6b 2c |tic k_di|al(junk,|
|000010c0| 66 77 6f 72 64 29 0a 7c | 6c 6f 6e 67 20 69 6e 74 |fword).||long int|
|000010d0| 20 6a 75 6e 6b 3b 0a 7c | 63 68 61 72 20 2a 66 77 | junk;.||char *fw|
|000010e0| 6f 72 64 3b 0a 7c 7b 0a | 7c 09 73 70 72 69 6e 74 |ord;.|{.||.sprint|
|000010f0| 66 28 6c 69 6e 65 2c 22 | 25 73 22 2c 66 77 6f 72 |f(line,"|%s",fwor|
|00001100| 64 29 3b 0a 7c 09 6c 70 | 74 72 20 3d 20 6c 69 6e |d);.|.lp|tr = lin|
|00001110| 65 3b 0a 7c 09 67 65 74 | 77 6f 72 64 28 29 3b 0a |e;.|.get|word();.|
|00001120| 7c 09 69 66 20 28 21 77 | 6f 72 64 20 7c 7c 20 77 ||.if (!w|ord || w|
|00001130| 6f 72 64 5b 30 5d 20 3d | 3d 20 27 5c 30 27 29 7b |ord[0] =|= '\0'){|
|00001140| 0a 7c 09 09 73 68 6f 77 | 28 32 2c 22 44 49 41 4c |.|..show|(2,"DIAL|
|00001150| 20 63 6f 6d 6d 61 6e 64 | 20 6d 75 73 74 20 68 61 | command| must ha|
|00001160| 76 65 20 61 6e 20 61 72 | 67 75 6d 65 6e 74 22 29 |ve an ar|gument")|
|00001170| 3b 0a 7c 09 09 72 65 74 | 75 72 6e 20 2d 31 3b 0a |;.|..ret|urn -1;.|
|00001180| 7c 09 7d 0a 7c 09 78 63 | 64 69 61 6c 28 77 6f 72 ||.}.|.xc|dial(wor|
|00001190| 64 29 3b 0a 7c 09 72 65 | 74 75 72 6e 20 30 3b 0a |d);.|.re|turn 0;.|
|000011a0| 7c 7d 0a 7c 0a 7c 73 74 | 61 74 69 63 20 6b 5f 63 ||}.|.|st|atic k_c|
|000011b0| 61 70 74 75 72 65 28 6a | 75 6e 6b 2c 66 77 6f 72 |apture(j|unk,fwor|
|000011c0| 64 29 0a 7c 6c 6f 6e 67 | 20 69 6e 74 20 6a 75 6e |d).|long| int jun|
|000011d0| 6b 3b 0a 7c 63 68 61 72 | 20 2a 66 77 6f 72 64 3b |k;.|char| *fword;|
|000011e0| 0a 7c 7b 0a 7c 09 69 6e | 74 20 76 61 6c 20 3d 20 |.|{.|.in|t val = |
|000011f0| 63 61 70 74 66 6c 61 67 | 3b 0a 7c 0a 7c 09 73 70 |captflag|;.|.|.sp|
|00001200| 72 69 6e 74 66 28 77 6f | 72 64 2c 22 63 61 70 74 |rintf(wo|rd,"capt|
|00001210| 75 72 65 22 29 3b 0a 7c | 09 73 70 72 69 6e 74 66 |ure");.||.sprintf|
|00001220| 28 6c 69 6e 65 2c 22 25 | 73 22 2c 66 77 6f 72 64 |(line,"%|s",fword|
|00001230| 29 3b 0a 7c 09 6c 70 74 | 72 20 3d 20 6c 69 6e 65 |);.|.lpt|r = line|
|00001240| 3b 0a 7c 09 73 65 74 5f | 6f 6e 6f 66 66 28 26 63 |;.|.set_|onoff(&c|
|00001250| 61 70 74 66 6c 61 67 29 | 3b 0a 7c 0a 7c 09 69 66 |aptflag)|;.|.|.if|
|00001260| 20 28 76 61 6c 20 3d 3d | 20 63 61 70 74 66 6c 61 | (val ==| captfla|
|00001270| 67 29 0a 7c 09 09 72 65 | 74 75 72 6e 20 30 3b 0a |g).|..re|turn 0;.|
|00001280| 7c 0a 7c 09 69 66 20 28 | 63 61 70 74 66 6c 61 67 ||.|.if (|captflag|
|00001290| 20 3d 3d 20 30 29 0a 7c | 09 09 66 63 6c 6f 73 65 | == 0).||..fclose|
|000012a0| 28 63 66 29 3b 0a 7c 09 | 65 6c 73 65 20 7b 0a 7c |(cf);.|.|else {.||
|000012b0| 09 09 69 66 20 28 28 63 | 66 20 3d 20 66 6f 70 65 |..if ((c|f = fope|
|000012c0| 6e 28 63 61 70 74 66 69 | 6c 65 2c 20 22 61 22 29 |n(captfi|le, "a")|
|000012d0| 29 20 3d 3d 20 4e 55 4c | 4c 46 29 20 7b 0a 7c 09 |) == NUL|LF) {.|.|
|000012e0| 09 09 73 70 72 69 6e 74 | 66 28 4d 73 67 2c 22 43 |..sprint|f(Msg,"C|
|000012f0| 61 6e 27 74 20 6f 70 65 | 6e 20 63 61 70 74 75 72 |an't ope|n captur|
|00001300| 65 20 66 69 6c 65 20 25 | 73 22 2c 63 61 70 74 66 |e file %|s",captf|
|00001310| 69 6c 65 29 3b 0a 7c 09 | 09 09 53 32 3b 0a 7c 09 |ile);.|.|..S2;.|.|
|00001320| 09 09 65 6f 66 5f 66 6c | 61 67 2b 2b 3b 0a 7c 09 |..eof_fl|ag++;.|.|
|00001330| 09 09 72 65 74 75 72 6e | 20 2d 31 3b 0a 7c 09 09 |..return| -1;.|..|
|00001340| 7d 0a 7c 09 7d 0a 7c 09 | 72 65 74 75 72 6e 20 30 |}.|.}.|.|return 0|
|00001350| 3b 0a 7c 7d 0a 7c 0a 7c | 73 74 61 74 69 63 20 6b |;.|}.|.||static k|
|00001360| 5f 65 63 68 6f 28 6a 75 | 6e 6b 2c 66 77 6f 72 64 |_echo(ju|nk,fword|
|00001370| 29 0a 7c 6c 6f 6e 67 20 | 69 6e 74 20 6a 75 6e 6b |).|long |int junk|
|00001380| 3b 0a 7c 63 68 61 72 20 | 2a 66 77 6f 72 64 3b 0a |;.|char |*fword;.|
|00001390| 7c 7b 0a 7c 09 73 70 72 | 69 6e 74 66 28 77 6f 72 ||{.|.spr|intf(wor|
|000013a0| 64 2c 22 64 65 62 75 67 | 22 29 3b 0a 7c 09 73 70 |d,"debug|");.|.sp|
|000013b0| 72 69 6e 74 66 28 6c 69 | 6e 65 2c 22 25 73 22 2c |rintf(li|ne,"%s",|
|000013c0| 66 77 6f 72 64 29 3b 0a | 7c 09 6c 70 74 72 20 3d |fword);.||.lptr =|
|000013d0| 20 6c 69 6e 65 3b 0a 7c | 09 73 65 74 5f 6f 6e 6f | line;.||.set_ono|
|000013e0| 66 66 28 26 65 63 68 6f | 5f 66 6c 61 67 29 3b 0a |ff(&echo|_flag);.|
|000013f0| 7c 09 72 65 74 75 72 6e | 20 30 3b 0a 7c 7d 0a 7c ||.return| 0;.|}.||
|00001400| 0a 7c 73 74 61 74 69 63 | 20 6b 5f 74 74 79 28 6a |.|static| k_tty(j|
|00001410| 75 6e 6b 2c 66 77 6f 72 | 64 29 0a 7c 6c 6f 6e 67 |unk,fwor|d).|long|
|00001420| 20 69 6e 74 20 6a 75 6e | 6b 3b 0a 7c 63 68 61 72 | int jun|k;.|char|
|00001430| 20 2a 66 77 6f 72 64 3b | 0a 7c 7b 0a 7c 09 73 70 | *fword;|.|{.|.sp|
|00001440| 72 69 6e 74 66 28 77 6f | 72 64 2c 22 74 74 79 22 |rintf(wo|rd,"tty"|
|00001450| 29 3b 0a 7c 09 73 70 72 | 69 6e 74 66 28 6c 69 6e |);.|.spr|intf(lin|
|00001460| 65 2c 22 25 73 22 2c 66 | 77 6f 72 64 29 3b 0a 7c |e,"%s",f|word);.||
|00001470| 09 6c 70 74 72 20 3d 20 | 6c 69 6e 65 3b 0a 7c 09 |.lptr = |line;.|.|
|00001480| 73 65 74 5f 6f 6e 6f 66 | 66 28 26 74 74 79 5f 66 |set_onof|f(&tty_f|
|00001490| 6c 61 67 29 3b 0a 7c 09 | 72 65 74 75 72 6e 20 30 |lag);.|.|return 0|
|000014a0| 3b 0a 7c 7d 0a 7c 0a 7c | 73 74 61 74 69 63 20 6b |;.|}.|.||static k|
|000014b0| 5f 74 79 70 65 28 6a 75 | 6e 6b 2c 66 77 6f 72 64 |_type(ju|nk,fword|
|000014c0| 29 0a 7c 6c 6f 6e 67 20 | 69 6e 74 20 6a 75 6e 6b |).|long |int junk|
|000014d0| 3b 0a 7c 63 68 61 72 20 | 2a 66 77 6f 72 64 3b 0a |;.|char |*fword;.|
|000014e0| 7c 7b 0a 7c 09 73 70 72 | 69 6e 74 66 28 6c 69 6e ||{.|.spr|intf(lin|
|000014f0| 65 2c 22 25 73 22 2c 66 | 77 6f 72 64 29 3b 0a 7c |e,"%s",f|word);.||
|00001500| 09 6c 70 74 72 20 3d 20 | 6c 69 6e 65 3b 0a 7c 09 |.lptr = |line;.|.|
|00001510| 67 65 74 77 6f 72 64 28 | 29 3b 0a 7c 09 69 66 20 |getword(|);.|.if |
|00001520| 28 21 77 6f 72 64 20 7c | 7c 20 77 6f 72 64 5b 30 |(!word ||| word[0|
|00001530| 5d 20 3d 3d 20 27 5c 30 | 27 29 7b 0a 7c 09 09 73 |] == '\0|'){.|..s|
|00001540| 68 6f 77 28 32 2c 22 54 | 59 50 45 20 63 6f 6d 6d |how(2,"T|YPE comm|
|00001550| 61 6e 64 20 6d 75 73 74 | 20 68 61 76 65 20 61 6e |and must| have an|
|00001560| 20 61 72 67 75 6d 65 6e | 74 22 29 3b 0a 7c 09 09 | argumen|t");.|..|
|00001570| 72 65 74 75 72 6e 20 2d | 31 3b 0a 7c 09 7d 0a 7c |return -|1;.|.}.||
|00001580| 09 64 69 76 65 72 74 28 | 54 52 55 45 29 3b 0a 7c |.divert(|TRUE);.||
|00001590| 09 72 65 74 75 72 6e 20 | 30 3b 0a 7c 7d 0a 7c 0a |.return |0;.|}.|.|
|000015a0| 7c 73 74 61 74 69 63 20 | 6b 5f 6c 69 6e 6b 65 64 ||static |k_linked|
|000015b0| 28 29 0a 7c 7b 0a 7c 09 | 72 65 74 75 72 6e 28 21 |().|{.|.|return(!|
|000015c0| 21 28 6c 69 6e 6b 66 6c | 61 67 29 20 2d 20 31 29 |!(linkfl|ag) - 1)|
|000015d0| 3b 0a 7c 7d 0a 7c 0a 7c | 65 78 74 65 72 6e 20 46 |;.|}.|.||extern F|
|000015e0| 49 4c 45 20 2a 63 66 3b | 0a 7c 65 78 74 65 72 6e |ILE *cf;|.|extern|
|000015f0| 20 73 68 6f 72 74 20 65 | 63 68 6f 5f 66 6c 61 67 | short e|cho_flag|
|00001600| 3b 0a 7c 0a 7c 73 68 6f | 72 74 20 42 52 45 41 4b |;.|.|sho|rt BREAK|
|00001610| 20 3d 20 30 3b 09 09 2f | 2a 20 61 20 68 6f 6f 6b | = 0;../|* a hook|
|00001620| 20 66 6f 72 20 61 20 6c | 61 74 65 72 20 27 74 72 | for a l|ater 'tr|
|00001630| 61 70 27 20 6b 65 79 77 | 6f 72 64 20 2a 2f 0a 7c |ap' keyw|ord */.||
|00001640| 0a 7c 2f 2a 09 56 61 72 | 69 61 62 6c 65 73 20 53 |.|/*.Var|iables S|
|00001650| 65 63 74 69 6f 6e 20 2a | 2f 0a 7c 2f 2a 09 4d 6f |ection *|/.|/*.Mo|
|00001660| 73 74 20 6f 66 20 74 68 | 65 20 76 61 72 69 61 62 |st of th|e variab|
|00001670| 6c 65 2d 68 61 6e 64 6c | 69 6e 67 20 6c 6f 67 69 |le-handl|ing logi|
|00001680| 63 20 69 73 20 63 72 65 | 64 69 74 3a 20 53 74 65 |c is cre|dit: Ste|
|00001690| 76 65 20 4d 61 6e 65 73 | 20 31 39 38 37 20 2a 2f |ve Manes| 1987 */|
|000016a0| 0a 7c 23 64 65 66 69 6e | 65 20 53 55 43 43 45 45 |.|#defin|e SUCCEE|
|000016b0| 44 09 09 30 0a 7c 23 64 | 65 66 69 6e 65 20 46 41 |D..0.|#d|efine FA|
|000016c0| 49 4c 09 09 2d 31 0a 7c | 23 64 65 66 69 6e 65 20 |IL..-1.||#define |
|000016d0| 56 4e 41 4d 45 4c 45 4e | 09 38 09 2f 2a 20 6d 61 |VNAMELEN|.8./* ma|
|000016e0| 78 69 6d 75 6d 20 6e 61 | 6d 65 20 6c 65 6e 67 74 |ximum na|me lengt|
|000016f0| 68 20 66 6f 72 20 76 61 | 72 69 61 62 6c 65 73 20 |h for va|riables |
|00001700| 2a 2f 0a 7c 23 64 65 66 | 69 6e 65 20 56 4d 41 58 |*/.|#def|ine VMAX|
|00001710| 53 49 5a 45 09 32 35 36 | 09 2f 2a 20 6d 61 78 69 |SIZE.256|./* maxi|
|00001720| 6d 75 6d 20 6c 65 6e 67 | 74 68 20 66 6f 72 20 43 |mum leng|th for C|
|00001730| 48 41 52 20 76 61 72 69 | 61 62 6c 65 20 2a 2f 0a |HAR vari|able */.|
|00001740| 7c 23 64 65 66 69 6e 65 | 20 56 4d 41 58 56 41 52 ||#define| VMAXVAR|
|00001750| 53 09 33 30 09 2f 2a 20 | 6d 61 78 69 6d 75 6d 20 |S.30./* |maximum |
|00001760| 6e 75 6d 62 65 72 20 6f | 66 20 75 73 65 72 20 76 |number o|f user v|
|00001770| 61 72 69 61 62 6c 65 73 | 20 2a 2f 0a 7c 23 64 65 |ariables| */.|#de|
|00001780| 66 69 6e 65 20 56 43 48 | 41 52 09 09 27 43 27 09 |fine VCH|AR..'C'.|
|00001790| 2f 2a 20 43 48 41 52 41 | 43 54 45 52 20 76 61 72 |/* CHARA|CTER var|
|000017a0| 69 61 62 6c 65 20 74 79 | 70 65 20 2a 2f 0a 7c 23 |iable ty|pe */.|#|
|000017b0| 64 65 66 69 6e 65 20 56 | 4e 55 4d 09 09 27 4e 27 |define V|NUM..'N'|
|000017c0| 09 2f 2a 20 4e 55 4d 45 | 52 49 43 20 76 61 72 69 |./* NUME|RIC vari|
|000017d0| 61 62 6c 65 20 74 79 70 | 65 20 28 61 6c 77 61 79 |able typ|e (alway|
|000017e0| 73 20 27 6c 6f 6e 67 27 | 29 20 2a 2f 0a 7c 0a 7c |s 'long'|) */.|.||
|000017f0| 2f 2a 20 56 61 72 69 61 | 62 6c 65 20 73 74 72 75 |/* Varia|ble stru|
|00001800| 63 74 75 72 65 20 2a 2f | 0a 7c 74 79 70 65 64 65 |cture */|.|typede|
|00001810| 66 20 73 74 72 75 63 74 | 20 76 61 72 20 7b 0a 7c |f struct| var {.||
|00001820| 09 63 68 61 72 20 6e 61 | 6d 65 5b 56 4e 41 4d 45 |.char na|me[VNAME|
|00001830| 4c 45 4e 2b 31 5d 3b 09 | 2f 2a 20 76 61 72 69 61 |LEN+1];.|/* varia|
|00001840| 62 6c 65 20 6e 61 6d 65 | 20 2a 2f 0a 7c 09 73 74 |ble name| */.|.st|
|00001850| 72 75 63 74 20 76 61 72 | 09 2a 6e 65 78 74 3b 09 |ruct var|.*next;.|
|00001860| 09 2f 2a 20 70 74 72 20 | 74 6f 20 6e 65 78 74 20 |./* ptr |to next |
|00001870| 73 74 72 75 63 74 75 72 | 65 20 69 6e 20 76 61 72 |structur|e in var|
|00001880| 5f 6c 69 73 74 20 2a 2f | 0a 7c 09 63 68 61 72 20 |_list */|.|.char |
|00001890| 74 79 70 65 3b 09 09 09 | 09 2f 2a 20 76 61 72 69 |type;...|./* vari|
|000018a0| 61 62 6c 65 20 74 79 70 | 65 20 2a 2f 0a 7c 09 75 |able typ|e */.|.u|
|000018b0| 6e 69 6f 6e 20 7b 09 09 | 09 09 09 2f 2a 20 70 6f |nion {..|.../* po|
|000018c0| 69 6e 74 65 72 20 74 6f | 20 43 48 41 52 20 6f 72 |inter to| CHAR or|
|000018d0| 20 4e 55 4d 2f 44 41 54 | 45 20 2a 2f 0a 7c 09 09 | NUM/DAT|E */.|..|
|000018e0| 63 68 61 72 20 73 74 72 | 5b 56 4d 41 58 53 49 5a |char str|[VMAXSIZ|
|000018f0| 45 2b 31 5d 3b 0a 7c 09 | 09 6c 6f 6e 67 20 6e 75 |E+1];.|.|.long nu|
|00001900| 6d 3b 0a 7c 09 7d 20 75 | 3b 0a 7c 7d 20 56 41 52 |m;.|.} u|;.|} VAR|
|00001910| 3b 0a 7c 0a 7c 23 64 65 | 66 69 6e 65 20 4e 55 4c |;.|.|#de|fine NUL|
|00001920| 4c 56 09 28 56 41 52 20 | 2a 29 30 0a 7c 73 74 61 |LV.(VAR |*)0.|sta|
|00001930| 74 69 63 20 56 41 52 09 | 2a 56 61 72 6c 69 73 74 |tic VAR.|*Varlist|
|00001940| 20 3d 20 4e 55 4c 4c 56 | 3b 09 2f 2a 20 74 6f 70 | = NULLV|;./* top|
|00001950| 20 6f 66 20 76 61 72 69 | 61 62 6c 65 20 6c 69 73 | of vari|able lis|
|00001960| 74 20 2a 2f 0a 7c 73 74 | 61 74 69 63 20 56 41 52 |t */.|st|atic VAR|
|00001970| 09 2a 4c 61 73 74 76 61 | 72 20 3d 20 4e 55 4c 4c |.*Lastva|r = NULL|
|00001980| 56 3b 09 2f 2a 20 62 6f | 74 74 6f 6d 20 6f 66 20 |V;./* bo|ttom of |
|00001990| 76 61 72 69 61 62 6c 65 | 20 6c 69 73 74 20 2a 2f |variable| list */|
|000019a0| 0a 7c 0a 7c 2f 2a 20 56 | 61 6c 69 64 20 76 61 72 |.|.|/* V|alid var|
|000019b0| 69 61 62 6c 65 20 6e 61 | 6d 65 20 63 68 61 72 61 |iable na|me chara|
|000019c0| 63 74 65 72 73 20 2a 2f | 0a 7c 75 6e 73 69 67 6e |cters */|.|unsign|
|000019d0| 65 64 20 63 68 61 72 20 | 4f 4b 6e 61 6d 65 5b 5d |ed char |OKname[]|
|000019e0| 3d 0a 7c 7b 0a 7c 09 20 | 2f 2a 20 63 6f 6e 74 72 |=.|{.|. |/* contr|
|000019f0| 6f 6c 20 63 68 61 72 61 | 63 74 65 72 73 20 2a 2f |ol chara|cters */|
|00001a00| 0a 7c 09 20 20 30 2c 30 | 2c 30 2c 30 2c 30 2c 30 |.|. 0,0|,0,0,0,0|
|00001a10| 2c 30 2c 30 2c 30 2c 30 | 2c 30 2c 30 2c 30 2c 30 |,0,0,0,0|,0,0,0,0|
|00001a20| 2c 30 2c 30 2c 30 2c 30 | 2c 30 2c 30 2c 30 2c 30 |,0,0,0,0|,0,0,0,0|
|00001a30| 2c 30 2c 30 2c 30 2c 30 | 2c 30 2c 30 2c 30 2c 30 |,0,0,0,0|,0,0,0,0|
|00001a40| 2c 30 2c 30 2c 30 2c 0a | 7c 09 20 2f 2a 20 21 20 |,0,0,0,.||. /* ! |
|00001a50| 22 20 23 20 24 20 25 20 | 26 20 27 20 28 20 29 20 |" # $ % |& ' ( ) |
|00001a60| 2a 20 2b 20 2c 20 2d 20 | 2e 20 2f 20 30 20 31 20 |* + , - |. / 0 1 |
|00001a70| 32 20 33 20 34 20 35 20 | 36 20 37 20 38 20 39 20 |2 3 4 5 |6 7 8 9 |
|00001a80| 3a 20 3b 20 3c 20 3d 20 | 3e 20 3f 20 40 20 2a 2f |: ; < = |> ? @ */|
|00001a90| 0a 7c 09 09 31 2c 30 2c | 31 2c 30 2c 30 2c 30 2c |.|..1,0,|1,0,0,0,|
|00001aa0| 30 2c 30 2c 30 2c 31 2c | 30 2c 30 2c 30 2c 30 2c |0,0,0,1,|0,0,0,0,|
|00001ab0| 30 2c 31 2c 31 2c 31 2c | 31 2c 31 2c 31 2c 31 2c |0,1,1,1,|1,1,1,1,|
|00001ac0| 31 2c 31 2c 31 2c 31 2c | 30 2c 30 2c 30 2c 30 2c |1,1,1,1,|0,0,0,0,|
|00001ad0| 30 2c 30 2c 0a 7c 09 20 | 2f 2a 20 41 20 42 20 43 |0,0,.|. |/* A B C|
|00001ae0| 20 44 20 45 20 46 20 47 | 20 48 20 49 20 4a 20 4b | D E F G| H I J K|
|00001af0| 20 4c 20 4d 20 4e 20 4f | 20 50 20 51 20 52 20 53 | L M N O| P Q R S|
|00001b00| 20 54 20 55 20 56 20 57 | 20 58 20 59 20 5a 20 5b | T U V W| X Y Z [|
|00001b10| 20 5c 20 5d 20 5e 20 5f | 20 60 20 2a 2f 0a 7c 09 | \ ] ^ _| ` */.|.|
|00001b20| 09 31 2c 31 2c 31 2c 31 | 2c 31 2c 31 2c 31 2c 31 |.1,1,1,1|,1,1,1,1|
|00001b30| 2c 31 2c 31 2c 31 2c 31 | 2c 31 2c 31 2c 31 2c 31 |,1,1,1,1|,1,1,1,1|
|00001b40| 2c 31 2c 31 2c 31 2c 31 | 2c 31 2c 31 2c 31 2c 31 |,1,1,1,1|,1,1,1,1|
|00001b50| 2c 31 2c 31 2c 30 2c 30 | 2c 30 2c 30 2c 31 2c 31 |,1,1,0,0|,0,0,1,1|
|00001b60| 2c 0a 7c 09 20 2f 2a 20 | 61 20 62 20 63 20 64 20 |,.|. /* |a b c d |
|00001b70| 65 20 66 20 67 20 68 20 | 69 20 6a 20 6b 20 6c 20 |e f g h |i j k l |
|00001b80| 6d 20 6e 20 6f 20 70 20 | 71 20 72 20 73 20 74 20 |m n o p |q r s t |
|00001b90| 75 20 76 20 77 20 78 20 | 79 20 7a 20 7b 20 7c 20 |u v w x |y z { | |
|00001ba0| 7d 20 7e 09 20 20 20 2a | 2f 0a 7c 09 09 31 2c 31 |} ~. *|/.|..1,1|
|00001bb0| 2c 31 2c 31 2c 31 2c 31 | 2c 31 2c 31 2c 31 2c 31 |,1,1,1,1|,1,1,1,1|
|00001bc0| 2c 31 2c 31 2c 31 2c 31 | 2c 31 2c 31 2c 31 2c 31 |,1,1,1,1|,1,1,1,1|
|00001bd0| 2c 31 2c 31 2c 31 2c 31 | 2c 31 2c 31 2c 31 2c 31 |,1,1,1,1|,1,1,1,1|
|00001be0| 2c 30 2c 30 2c 30 2c 30 | 0a 7c 7d 3b 0a 7c 0a 7c |,0,0,0,0|.|};.|.||
|00001bf0| 2f 2a 20 4d 61 63 72 6f | 73 20 2a 2f 0a 7c 23 64 |/* Macro|s */.|#d|
|00001c00| 65 66 69 6e 65 20 49 53 | 4e 41 4d 45 28 63 29 09 |efine IS|NAME(c).|
|00001c10| 28 4f 4b 6e 61 6d 65 5b | 20 28 28 63 29 20 26 20 |(OKname[| ((c) & |
|00001c20| 30 78 37 46 29 20 5d 29 | 0a 7c 0a 7c 2f 2a 09 52 |0x7F) ])|.|.|/*.R|
|00001c30| 65 74 75 72 6e 20 70 6f | 69 6e 74 65 72 20 74 6f |eturn po|inter to|
|00001c40| 20 56 41 52 20 73 74 72 | 75 63 74 75 72 65 20 66 | VAR str|ucture f|
|00001c50| 6f 72 20 55 73 65 72 20 | 6f 72 20 53 79 73 74 65 |or User |or Syste|
|00001c60| 6d 20 76 61 72 69 61 62 | 6c 65 0a 7c 09 27 6e 61 |m variab|le.|.'na|
|00001c70| 6d 65 27 2c 20 6f 74 68 | 65 72 77 69 73 65 20 72 |me', oth|erwise r|
|00001c80| 65 74 75 72 6e 20 4e 55 | 4c 4c 56 2e 0a 7c 09 56 |eturn NU|LLV..|.V|
|00001c90| 61 72 69 61 62 6c 65 20 | 63 6f 6e 74 65 6e 74 73 |ariable |contents|
|00001ca0| 20 69 6e 20 76 70 2d 3e | 75 2e 5b 73 74 72 7c 6e | in vp->|u.[str|n|
|00001cb0| 75 6d 5d 0a 7c 2a 2f 0a | 7c 73 74 61 74 69 63 20 |um].|*/.||static |
|00001cc0| 56 41 52 20 2a 66 69 6e | 64 76 61 72 28 6e 61 6d |VAR *fin|dvar(nam|
|00001cd0| 65 29 0a 7c 63 68 61 72 | 20 2a 6e 61 6d 65 3b 0a |e).|char| *name;.|
|00001ce0| 7c 7b 0a 7c 09 73 74 61 | 74 69 63 09 56 41 52 20 ||{.|.sta|tic.VAR |
|00001cf0| 2a 76 70 3b 09 2f 2a 20 | 70 6f 69 6e 74 65 72 20 |*vp;./* |pointer |
|00001d00| 74 6f 20 6f 75 74 70 75 | 74 20 73 74 72 75 63 74 |to outpu|t struct|
|00001d10| 75 72 65 20 2a 2f 0a 7c | 0a 7c 09 69 66 20 28 21 |ure */.||.|.if (!|
|00001d20| 6e 61 6d 65 20 7c 7c 20 | 21 2a 6e 61 6d 65 20 7c |name || |!*name ||
|00001d30| 7c 20 21 56 61 72 6c 69 | 73 74 29 20 72 65 74 75 || !Varli|st) retu|
|00001d40| 72 6e 28 4e 55 4c 4c 56 | 29 3b 0a 7c 09 76 70 20 |rn(NULLV|);.|.vp |
|00001d50| 3d 20 56 61 72 6c 69 73 | 74 3b 0a 7c 09 77 68 69 |= Varlis|t;.|.whi|
|00001d60| 6c 65 20 28 76 70 20 21 | 3d 20 4e 55 4c 4c 56 29 |le (vp !|= NULLV)|
|00001d70| 20 7b 0a 7c 09 09 69 66 | 20 28 21 73 74 72 6e 63 | {.|..if| (!strnc|
|00001d80| 6d 70 28 6e 61 6d 65 2c | 20 76 70 2d 3e 6e 61 6d |mp(name,| vp->nam|
|00001d90| 65 2c 20 56 4e 41 4d 45 | 4c 45 4e 29 20 29 0a 7c |e, VNAME|LEN) ).||
|00001da0| 09 09 09 72 65 74 75 72 | 6e 28 76 70 29 3b 0a 7c |...retur|n(vp);.||
|00001db0| 09 09 76 70 20 3d 20 76 | 70 2d 3e 6e 65 78 74 3b |..vp = v|p->next;|
|00001dc0| 0a 7c 09 7d 0a 7c 09 72 | 65 74 75 72 6e 28 4e 55 |.|.}.|.r|eturn(NU|
|00001dd0| 4c 4c 56 29 3b 09 09 09 | 09 2f 2a 20 6e 6f 74 20 |LLV);...|./* not |
|00001de0| 66 6f 75 6e 64 20 2a 2f | 0a 7c 7d 0a 7c 0a 7c 2f |found */|.|}.|.|/|
|00001df0| 2a 09 44 65 6c 65 74 65 | 20 55 73 65 72 20 76 61 |*.Delete| User va|
|00001e00| 72 69 61 62 6c 65 20 27 | 6e 61 6d 65 27 20 66 72 |riable '|name' fr|
|00001e10| 6f 6d 20 56 41 52 20 6c | 69 73 74 2e 0a 7c 09 49 |om VAR l|ist..|.I|
|00001e20| 66 20 76 61 72 69 61 62 | 6c 65 20 64 6f 65 73 6e |f variab|le doesn|
|00001e30| 27 74 20 65 78 69 73 74 | 2c 20 6e 6f 20 65 72 72 |'t exist|, no err|
|00001e40| 6f 72 20 69 73 20 72 65 | 74 75 72 6e 65 64 0a 7c |or is re|turned.||
|00001e50| 2a 2f 0a 7c 73 74 61 74 | 69 63 20 76 6f 69 64 20 |*/.|stat|ic void |
|00001e60| 75 6e 73 65 74 76 61 72 | 28 6e 61 6d 65 29 0a 7c |unsetvar|(name).||
|00001e70| 63 68 61 72 20 2a 6e 61 | 6d 65 3b 0a 7c 7b 0a 7c |char *na|me;.|{.||
|00001e80| 09 56 41 52 20 2a 70 3b | 0a 7c 09 56 41 52 20 2a |.VAR *p;|.|.VAR *|
|00001e90| 6c 61 73 74 70 3b 0a 7c | 0a 7c 09 69 66 20 28 21 |lastp;.||.|.if (!|
|00001ea0| 6e 61 6d 65 20 7c 7c 20 | 21 2a 6e 61 6d 65 29 20 |name || |!*name) |
|00001eb0| 72 65 74 75 72 6e 3b 0a | 7c 09 66 6f 72 20 28 70 |return;.||.for (p|
|00001ec0| 3d 56 61 72 6c 69 73 74 | 3b 20 70 20 21 3d 20 28 |=Varlist|; p != (|
|00001ed0| 56 41 52 2a 29 30 3b 20 | 6c 61 73 74 70 20 3d 20 |VAR*)0; |lastp = |
|00001ee0| 70 2c 20 70 20 3d 20 70 | 2d 3e 6e 65 78 74 29 20 |p, p = p|->next) |
|00001ef0| 7b 0a 7c 09 09 69 66 20 | 28 21 73 74 72 6e 63 6d |{.|..if |(!strncm|
|00001f00| 70 28 6e 61 6d 65 2c 20 | 70 2d 3e 6e 61 6d 65 2c |p(name, |p->name,|
|00001f10| 20 56 4e 41 4d 45 4c 45 | 4e 29 20 29 20 7b 09 2f | VNAMELE|N) ) {./|
|00001f20| 2a 20 6e 61 6d 65 20 6d | 61 74 63 68 3f 20 2a 2f |* name m|atch? */|
|00001f30| 0a 7c 09 09 09 69 66 20 | 28 56 61 72 6c 69 73 74 |.|...if |(Varlist|
|00001f40| 20 3d 3d 20 4c 61 73 74 | 76 61 72 29 09 09 09 09 | == Last|var)....|
|00001f50| 09 2f 2a 20 6f 6e 6c 79 | 20 31 20 76 61 72 69 61 |./* only| 1 varia|
|00001f60| 62 6c 65 20 2a 2f 0a 7c | 09 09 09 09 56 61 72 6c |ble */.||....Varl|
|00001f70| 69 73 74 20 3d 20 4c 61 | 73 74 76 61 72 20 3d 20 |ist = La|stvar = |
|00001f80| 28 56 41 52 2a 29 30 3b | 09 09 2f 2a 20 69 6e 20 |(VAR*)0;|../* in |
|00001f90| 6c 69 73 74 20 2a 2f 0a | 7c 09 09 09 65 6c 73 65 |list */.||...else|
|00001fa0| 20 69 66 20 28 70 20 3d | 3d 20 56 61 72 6c 69 73 | if (p =|= Varlis|
|00001fb0| 74 29 09 09 09 09 09 2f | 2a 20 66 69 72 73 74 20 |t)...../|* first |
|00001fc0| 76 61 72 69 61 62 6c 65 | 20 2a 2f 0a 7c 09 09 09 |variable| */.|...|
|00001fd0| 09 56 61 72 6c 69 73 74 | 20 3d 20 70 2d 3e 6e 65 |.Varlist| = p->ne|
|00001fe0| 78 74 3b 0a 7c 09 09 09 | 65 6c 73 65 20 7b 0a 7c |xt;.|...|else {.||
|00001ff0| 09 09 09 09 6c 61 73 74 | 70 2d 3e 6e 65 78 74 20 |....last|p->next |
|00002000| 3d 20 70 2d 3e 6e 65 78 | 74 3b 09 09 09 09 2f 2a |= p->nex|t;..../*|
|00002010| 20 64 75 6d 70 20 76 61 | 72 69 61 62 6c 65 20 69 | dump va|riable i|
|00002020| 6e 20 6d 69 64 64 6c 65 | 0a 7c 09 09 09 09 09 09 |n middle|.|......|
|00002030| 09 09 09 09 09 09 09 20 | 2a 20 6f 66 20 6c 69 73 |....... |* of lis|
|00002040| 74 20 2a 2f 0a 7c 09 09 | 09 09 69 66 20 28 70 20 |t */.|..|..if (p |
|00002050| 3d 3d 20 4c 61 73 74 76 | 61 72 29 09 09 09 09 09 |== Lastv|ar).....|
|00002060| 2f 2a 20 6f 72 20 6c 61 | 73 74 20 6f 62 6a 65 63 |/* or la|st objec|
|00002070| 74 20 2a 2f 0a 7c 09 09 | 09 09 09 4c 61 73 74 76 |t */.|..|...Lastv|
|00002080| 61 72 20 3d 20 6c 61 73 | 74 70 3b 09 09 09 09 2f |ar = las|tp;..../|
|00002090| 2a 20 69 6e 20 6c 69 73 | 74 20 2a 2f 0a 7c 09 09 |* in lis|t */.|..|
|000020a0| 09 7d 0a 7c 09 09 09 66 | 72 65 65 28 70 29 3b 09 |.}.|...f|ree(p);.|
|000020b0| 09 09 2f 2a 20 72 65 63 | 6c 61 69 6d 20 6d 65 6d |../* rec|laim mem|
|000020c0| 6f 72 79 20 2a 2f 0a 7c | 09 09 09 62 72 65 61 6b |ory */.||...break|
|000020d0| 3b 0a 7c 09 09 7d 0a 7c | 09 7d 0a 7c 7d 0a 7c 0a |;.|..}.||.}.|}.|.|
|000020e0| 7c 2f 2a 09 53 65 74 20 | 74 68 65 20 76 61 6c 75 ||/*.Set |the valu|
|000020f0| 65 20 6f 66 20 55 73 65 | 72 20 76 61 72 69 61 62 |e of Use|r variab|
|00002100| 6c 65 20 27 6e 61 6d 65 | 27 20 74 6f 20 27 76 61 |le 'name|' to 'va|
|00002110| 6c 27 20 77 69 74 68 20 | 27 74 79 70 65 27 2e 0a |l' with |'type'..|
|00002120| 7c 09 49 66 20 76 61 72 | 69 61 62 6c 65 20 65 78 ||.If var|iable ex|
|00002130| 69 73 74 73 2c 20 63 68 | 61 6e 67 65 20 69 74 73 |ists, ch|ange its|
|00002140| 20 63 6f 6e 74 65 6e 74 | 73 2e 20 4f 74 68 65 72 | content|s. Other|
|00002150| 77 69 73 65 2c 20 63 72 | 65 61 74 65 20 69 74 2e |wise, cr|eate it.|
|00002160| 0a 7c 09 52 65 74 75 72 | 6e 73 3a 20 46 41 49 4c |.|.Retur|ns: FAIL|
|00002170| 20 6f 72 20 53 55 43 43 | 45 45 44 0a 7c 2a 2f 0a | or SUCC|EED.|*/.|
|00002180| 7c 73 74 61 74 69 63 20 | 73 65 74 76 61 72 28 6e ||static |setvar(n|
|00002190| 61 6d 65 2c 20 76 61 6c | 2c 20 74 79 70 65 29 0a |ame, val|, type).|
|000021a0| 7c 63 68 61 72 20 2a 6e | 61 6d 65 2c 20 2a 76 61 ||char *n|ame, *va|
|000021b0| 6c 3b 0a 7c 63 68 61 72 | 20 74 79 70 65 3b 0a 7c |l;.|char| type;.||
|000021c0| 7b 0a 7c 09 56 41 52 20 | 2a 76 70 3b 0a 7c 09 73 |{.|.VAR |*vp;.|.s|
|000021d0| 68 6f 72 74 20 69 3b 0a | 7c 0a 7c 09 69 66 20 28 |hort i;.||.|.if (|
|000021e0| 21 6e 61 6d 65 20 7c 7c | 20 21 2a 6e 61 6d 65 29 |!name ||| !*name)|
|000021f0| 0a 7c 09 09 72 65 74 75 | 72 6e 20 46 41 49 4c 3b |.|..retu|rn FAIL;|
|00002200| 0a 7c 09 69 66 20 28 28 | 76 70 20 3d 20 66 69 6e |.|.if ((|vp = fin|
|00002210| 64 76 61 72 28 6e 61 6d | 65 29 29 20 3d 3d 20 4e |dvar(nam|e)) == N|
|00002220| 55 4c 4c 56 29 20 7b 20 | 2f 2a 20 63 72 65 61 74 |ULLV) { |/* creat|
|00002230| 65 20 6e 65 77 20 76 61 | 72 69 61 62 6c 65 20 2a |e new va|riable *|
|00002240| 2f 0a 7c 09 09 66 6f 72 | 20 28 69 3d 30 3b 20 69 |/.|..for| (i=0; i|
|00002250| 20 3c 20 56 4e 41 4d 45 | 4c 45 4e 20 26 26 20 6e | < VNAME|LEN && n|
|00002260| 61 6d 65 5b 69 5d 3b 20 | 69 2b 2b 29 20 7b 0a 7c |ame[i]; |i++) {.||
|00002270| 09 09 09 69 66 20 28 20 | 21 49 53 4e 41 4d 45 28 |...if ( |!ISNAME(|
|00002280| 6e 61 6d 65 5b 69 5d 29 | 20 7c 7c 20 69 73 64 69 |name[i])| || isdi|
|00002290| 67 69 74 28 6e 61 6d 65 | 5b 30 5d 29 20 29 20 7b |git(name|[0]) ) {|
|000022a0| 0a 7c 09 09 09 09 73 70 | 72 69 6e 74 66 28 4d 73 |.|....sp|rintf(Ms|
|000022b0| 67 2c 22 49 6c 6c 65 67 | 61 6c 20 76 61 72 69 61 |g,"Illeg|al varia|
|000022c0| 62 6c 65 20 6e 61 6d 65 | 20 27 25 73 27 22 2c 6e |ble name| '%s'",n|
|000022d0| 61 6d 65 29 3b 0a 7c 09 | 09 09 09 53 5f 61 62 6f |ame);.|.|...S_abo|
|000022e0| 72 74 28 29 3b 0a 7c 09 | 09 09 7d 0a 7c 09 09 7d |rt();.|.|..}.|..}|
|000022f0| 0a 7c 09 09 69 66 20 28 | 21 28 76 70 20 3d 20 28 |.|..if (|!(vp = (|
|00002300| 56 41 52 20 2a 29 6d 61 | 6c 6c 6f 63 28 73 69 7a |VAR *)ma|lloc(siz|
|00002310| 65 6f 66 28 56 41 52 29 | 29 29 29 20 7b 0a 7c 09 |eof(VAR)|))) {.|.|
|00002320| 09 09 73 70 72 69 6e 74 | 66 28 4d 73 67 2c 22 25 |..sprint|f(Msg,"%|
|00002330| 73 3a 20 61 6c 6c 6f 63 | 61 74 69 6f 6e 20 65 72 |s: alloc|ation er|
|00002340| 72 6f 72 22 2c 6e 61 6d | 65 29 3b 0a 7c 09 09 09 |ror",nam|e);.|...|
|00002350| 53 32 3b 0a 7c 09 09 09 | 72 65 74 75 72 6e 20 46 |S2;.|...|return F|
|00002360| 41 49 4c 3b 0a 7c 09 09 | 7d 0a 7c 09 09 6c 63 5f |AIL;.|..|}.|..lc_|
|00002370| 77 6f 72 64 28 6e 61 6d | 65 29 3b 0a 7c 09 09 73 |word(nam|e);.|..s|
|00002380| 74 72 6e 63 70 79 28 76 | 70 2d 3e 6e 61 6d 65 2c |trncpy(v|p->name,|
|00002390| 20 6e 61 6d 65 2c 20 56 | 4e 41 4d 45 4c 45 4e 29 | name, V|NAMELEN)|
|000023a0| 3b 09 2f 2a 20 73 65 74 | 20 76 61 72 69 20 6e 61 |;./* set| vari na|
|000023b0| 6d 65 20 2a 2f 0a 7c 09 | 09 76 70 2d 3e 6e 65 78 |me */.|.|.vp->nex|
|000023c0| 74 20 3d 20 4e 55 4c 4c | 56 3b 09 09 09 09 09 2f |t = NULL|V;...../|
|000023d0| 2a 20 66 6c 61 67 20 27 | 6e 6f 20 6e 65 78 74 27 |* flag '|no next'|
|000023e0| 20 2a 2f 0a 7c 09 09 69 | 66 20 28 21 56 61 72 6c | */.|..i|f (!Varl|
|000023f0| 69 73 74 29 0a 7c 09 09 | 09 56 61 72 6c 69 73 74 |ist).|..|.Varlist|
|00002400| 20 3d 20 76 70 3b 09 09 | 09 09 09 2f 2a 20 66 69 | = vp;..|.../* fi|
|00002410| 72 73 74 20 76 61 72 69 | 61 62 6c 65 20 2a 2f 0a |rst vari|able */.|
|00002420| 7c 09 09 65 6c 73 65 0a | 7c 09 09 09 4c 61 73 74 ||..else.||...Last|
|00002430| 76 61 72 2d 3e 6e 65 78 | 74 20 3d 20 76 70 3b 09 |var->nex|t = vp;.|
|00002440| 09 09 09 2f 2a 20 61 64 | 64 20 74 68 69 73 20 74 |.../* ad|d this t|
|00002450| 6f 20 74 68 65 20 6c 69 | 73 74 20 2a 2f 0a 7c 09 |o the li|st */.|.|
|00002460| 09 4c 61 73 74 76 61 72 | 20 3d 20 76 70 3b 09 09 |.Lastvar| = vp;..|
|00002470| 09 09 09 09 2f 2a 20 73 | 65 74 20 27 6c 61 73 74 |..../* s|et 'last|
|00002480| 27 20 70 6f 69 6e 74 65 | 72 20 2a 2f 0a 7c 09 7d |' pointe|r */.|.}|
|00002490| 0a 7c 0a 7c 09 69 66 20 | 28 74 79 70 65 20 3d 3d |.|.|.if |(type ==|
|000024a0| 20 56 43 48 41 52 29 0a | 7c 09 09 73 74 72 6e 63 | VCHAR).||..strnc|
|000024b0| 70 79 28 76 70 2d 3e 75 | 2e 73 74 72 2c 20 76 61 |py(vp->u|.str, va|
|000024c0| 6c 2c 20 56 4d 41 58 53 | 49 5a 45 29 3b 0a 7c 09 |l, VMAXS|IZE);.|.|
|000024d0| 65 6c 73 65 0a 7c 09 09 | 76 70 2d 3e 75 2e 6e 75 |else.|..|vp->u.nu|
|000024e0| 6d 20 3d 20 2a 28 6c 6f | 6e 67 20 2a 29 28 76 61 |m = *(lo|ng *)(va|
|000024f0| 6c 29 3b 0a 7c 09 76 70 | 2d 3e 74 79 70 65 20 3d |l);.|.vp|->type =|
|00002500| 20 74 79 70 65 3b 0a 7c | 09 72 65 74 75 72 6e 20 | type;.||.return |
|00002510| 53 55 43 43 45 45 44 3b | 0a 7c 7d 0a 7c 0a 7c 2f |SUCCEED;|.|}.|.|/|
|00002520| 2a 09 55 6e 73 65 74 20 | 61 6c 6c 20 75 73 65 72 |*.Unset |all user|
|00002530| 20 76 61 72 69 61 62 6c | 65 73 2c 20 64 65 61 6c | variabl|es, deal|
|00002540| 6c 6f 63 61 74 69 6e 67 | 20 6d 65 6d 6f 72 79 2e |locating| memory.|
|00002550| 0a 7c 09 4e 6f 20 65 72 | 72 6f 72 20 72 65 74 75 |.|.No er|ror retu|
|00002560| 72 6e 65 64 0a 7c 2a 2f | 0a 7c 73 74 61 74 69 63 |rned.|*/|.|static|
|00002570| 20 76 6f 69 64 20 75 6e | 73 65 74 61 6c 6c 28 29 | void un|setall()|
|00002580| 0a 7c 7b 0a 7c 09 56 41 | 52 20 2a 70 3b 0a 7c 09 |.|{.|.VA|R *p;.|.|
|00002590| 56 41 52 20 2a 6e 65 78 | 74 70 3b 0a 7c 0a 7c 09 |VAR *nex|tp;.|.|.|
|000025a0| 69 66 20 28 56 61 72 6c | 69 73 74 3d 3d 4e 55 4c |if (Varl|ist==NUL|
|000025b0| 4c 56 29 20 72 65 74 75 | 72 6e 3b 0a 7c 09 70 20 |LV) retu|rn;.|.p |
|000025c0| 3d 20 56 61 72 6c 69 73 | 74 3b 0a 7c 09 77 68 69 |= Varlis|t;.|.whi|
|000025d0| 6c 65 20 28 70 2d 3e 6e | 65 78 74 20 21 3d 20 4e |le (p->n|ext != N|
|000025e0| 55 4c 4c 56 29 20 7b 0a | 7c 09 09 6e 65 78 74 70 |ULLV) {.||..nextp|
|000025f0| 20 3d 20 70 2d 3e 6e 65 | 78 74 3b 0a 7c 09 09 66 | = p->ne|xt;.|..f|
|00002600| 72 65 65 28 70 29 3b 0a | 7c 09 09 70 20 3d 20 6e |ree(p);.||..p = n|
|00002610| 65 78 74 70 3b 0a 7c 09 | 7d 0a 7c 09 56 61 72 6c |extp;.|.|}.|.Varl|
|00002620| 69 73 74 20 3d 20 4c 61 | 73 74 76 61 72 20 3d 20 |ist = La|stvar = |
|00002630| 4e 55 4c 4c 56 3b 0a 7c | 7d 0a 7c 2f 2a 09 65 6e |NULLV;.||}.|/*.en|
|00002640| 64 20 76 61 72 69 61 62 | 6c 65 73 20 73 65 63 74 |d variab|les sect|
|00002650| 69 6f 6e 20 2a 2f 0a 7c | 0a 7c 2f 2a 09 41 63 74 |ion */.||.|/*.Act|
|00002660| 69 6f 6e 20 50 72 69 6d | 69 74 69 76 65 73 20 2a |ion Prim|itives *|
|00002670| 2f 0a 7c 73 74 61 74 69 | 63 20 73 74 72 75 63 74 |/.|stati|c struct|
|00002680| 20 73 5f 61 63 74 73 20 | 7b 0a 7c 09 63 68 61 72 | s_acts |{.|.char|
|00002690| 20 2a 6e 61 6d 65 3b 0a | 7c 09 2f 2a 41 43 54 5f | *name;.||./*ACT_|
|000026a0| 54 59 50 45 20 74 6f 6b | 65 6e 3b 2a 2f 0a 7c 09 |TYPE tok|en;*/.|.|
|000026b0| 69 6e 74 20 28 2a 66 75 | 6e 63 70 74 72 29 28 29 |int (*fu|ncptr)()|
|000026c0| 3b 0a 7c 7d 20 73 5f 61 | 63 74 74 61 62 5b 5d 20 |;.|} s_a|cttab[] |
|000026d0| 3d 20 7b 0a 7c 09 7b 22 | 62 65 65 70 22 2c 09 09 |= {.|.{"|beep",..|
|000026e0| 62 65 65 70 7d 2c 0a 7c | 09 7b 22 63 61 70 74 75 |beep},.||.{"captu|
|000026f0| 72 65 22 2c 09 09 6b 5f | 63 61 70 74 75 72 65 7d |re",..k_|capture}|
|00002700| 2c 0a 7c 09 7b 22 64 65 | 62 75 67 22 2c 09 09 6b |,.|.{"de|bug",..k|
|00002710| 5f 65 63 68 6f 7d 2c 0a | 7c 09 7b 22 64 69 61 6c |_echo},.||.{"dial|
|00002720| 22 2c 09 09 6b 5f 64 69 | 61 6c 7d 2c 0a 7c 09 7b |",..k_di|al},.|.{|
|00002730| 22 68 61 6e 67 75 70 22 | 2c 09 09 68 61 6e 67 75 |"hangup"|,..hangu|
|00002740| 70 7d 2c 0a 7c 09 7b 22 | 6c 69 6e 6b 65 64 22 2c |p},.|.{"|linked",|
|00002750| 09 09 6b 5f 6c 69 6e 6b | 65 64 7d 2c 0a 7c 09 7b |..k_link|ed},.|.{|
|00002760| 22 70 61 75 73 65 22 2c | 09 09 6b 5f 70 61 75 73 |"pause",|..k_paus|
|00002770| 65 7d 2c 0a 7c 09 7b 22 | 71 75 69 74 22 2c 09 09 |e},.|.{"|quit",..|
|00002780| 73 5f 65 78 69 74 7d 2c | 0a 7c 09 7b 22 72 65 64 |s_exit},|.|.{"red|
|00002790| 69 61 6c 22 2c 09 09 72 | 65 64 69 61 6c 7d 2c 0a |ial",..r|edial},.|
|000027a0| 7c 09 7b 22 73 65 65 6e | 22 2c 09 09 6b 5f 73 65 ||.{"seen|",..k_se|
|000027b0| 65 6e 7d 2c 0a 7c 09 7b | 22 78 6d 69 74 62 72 6b |en},.|.{|"xmitbrk|
|000027c0| 22 2c 09 09 78 6d 69 74 | 62 72 6b 7d 2c 0a 7c 09 |",..xmit|brk},.|.|
|000027d0| 7b 22 74 72 61 6e 73 6d | 69 74 22 2c 09 6b 5f 74 |{"transm|it",.k_t|
|000027e0| 72 61 6e 73 6d 69 74 7d | 2c 0a 7c 09 7b 22 74 74 |ransmit}|,.|.{"tt|
|000027f0| 79 22 2c 09 09 09 6b 5f | 74 74 79 7d 2c 0a 7c 09 |y",...k_|tty},.|.|
|00002800| 7b 22 74 79 70 65 22 2c | 09 09 6b 5f 74 79 70 65 |{"type",|..k_type|
|00002810| 7d 2c 0a 7c 09 7b 22 77 | 61 69 74 66 6f 72 22 2c |},.|.{"w|aitfor",|
|00002820| 09 09 6b 5f 77 61 69 74 | 66 6f 72 7d 2c 0a 7c 09 |..k_wait|for},.|.|
|00002830| 7b 4e 55 4c 4c 53 2c 09 | 09 09 30 7d 0a 7c 7d 3b |{NULLS,.|..0}.|};|
|00002840| 0a 7c 2f 2a 09 65 6e 64 | 20 6f 66 20 70 72 69 6d |.|/*.end| of prim|
|00002850| 69 74 69 76 65 73 20 2a | 2f 0a 7c 0a 7c 2f 2a 09 |itives *|/.|.|/*.|
|00002860| 74 6f 6b 65 6e 20 74 79 | 70 65 73 20 2a 2f 0a 7c |token ty|pes */.||
|00002870| 23 64 65 66 69 6e 65 20 | 4e 55 4c 4c 54 4f 4b 09 |#define |NULLTOK.|
|00002880| 09 30 09 2f 2a 20 74 65 | 72 6d 69 6e 61 74 69 6e |.0./* te|rminatin|
|00002890| 67 20 27 5c 30 27 20 69 | 6e 20 73 63 72 69 70 74 |g '\0' i|n script|
|000028a0| 20 62 75 66 66 65 72 20 | 2a 2f 0a 7c 23 64 65 66 | buffer |*/.|#def|
|000028b0| 69 6e 65 20 41 43 54 49 | 4f 4e 09 09 31 09 2f 2a |ine ACTI|ON..1./*|
|000028c0| 20 61 6e 20 61 63 74 69 | 6f 6e 20 28 70 72 69 6d | an acti|on (prim|
|000028d0| 69 74 69 76 65 20 6f 72 | 20 73 63 72 69 70 74 20 |itive or| script |
|000028e0| 63 6d 64 29 20 2a 2f 0a | 7c 23 64 65 66 69 6e 65 |cmd) */.||#define|
|000028f0| 20 41 46 46 49 52 4d 09 | 09 32 09 2f 2a 20 73 63 | AFFIRM.|.2./* sc|
|00002900| 72 69 70 74 20 27 61 66 | 66 69 72 6d 27 20 2a 2f |ript 'af|firm' */|
|00002910| 0a 7c 23 64 65 66 69 6e | 65 20 42 41 43 4b 51 55 |.|#defin|e BACKQU|
|00002920| 4f 54 09 33 09 2f 2a 20 | 73 63 72 69 70 74 20 63 |OT.3./* |script c|
|00002930| 6f 6d 6d 61 6e 64 20 73 | 75 62 73 74 69 74 75 74 |ommand s|ubstitut|
|00002940| 69 6f 6e 20 2a 2f 0a 7c | 23 64 65 66 69 6e 65 20 |ion */.||#define |
|00002950| 53 42 52 45 41 4b 09 09 | 34 09 2f 2a 20 73 63 72 |SBREAK..|4./* scr|
|00002960| 69 70 74 20 27 62 72 65 | 61 6b 27 20 2a 2f 0a 7c |ipt 'bre|ak' */.||
|00002970| 23 64 65 66 69 6e 65 20 | 43 41 4c 4c 09 09 35 09 |#define |CALL..5.|
|00002980| 2f 2a 20 73 63 72 69 70 | 74 20 27 63 61 6c 6c 27 |/* scrip|t 'call'|
|00002990| 20 2a 2f 0a 7c 23 64 65 | 66 69 6e 65 20 43 4f 4d | */.|#de|fine COM|
|000029a0| 4d 45 4e 54 09 09 36 09 | 2f 2a 20 63 6f 6d 6d 65 |MENT..6.|/* comme|
|000029b0| 6e 74 20 2a 2f 0a 7c 23 | 64 65 66 69 6e 65 20 53 |nt */.|#|define S|
|000029c0| 43 4f 4e 54 4e 55 45 09 | 37 09 2f 2a 20 73 63 72 |CONTNUE.|7./* scr|
|000029d0| 69 70 74 20 27 63 6f 6e | 74 69 6e 75 65 27 20 2a |ipt 'con|tinue' *|
|000029e0| 2f 0a 7c 23 64 65 66 69 | 6e 65 20 44 45 43 52 09 |/.|#defi|ne DECR.|
|000029f0| 09 31 30 09 2f 2a 20 73 | 63 72 69 70 74 20 27 64 |.10./* s|cript 'd|
|00002a00| 65 63 72 27 20 2a 2f 0a | 7c 23 64 65 66 69 6e 65 |ecr' */.||#define|
|00002a10| 20 44 4f 09 09 09 31 31 | 09 2f 2a 20 73 63 72 69 | DO...11|./* scri|
|00002a20| 70 74 20 27 64 6f 27 20 | 2a 2f 0a 7c 23 64 65 66 |pt 'do' |*/.|#def|
|00002a30| 69 6e 65 20 44 4f 4e 45 | 09 09 31 32 09 2f 2a 20 |ine DONE|..12./* |
|00002a40| 73 63 72 69 70 74 20 27 | 64 6f 6e 65 27 20 2a 2f |script '|done' */|
|00002a50| 0a 7c 23 64 65 66 69 6e | 65 20 45 43 48 4f 53 09 |.|#defin|e ECHOS.|
|00002a60| 09 31 33 09 2f 2a 20 73 | 63 72 69 70 74 20 27 65 |.13./* s|cript 'e|
|00002a70| 63 68 6f 27 20 2a 2f 0a | 7c 23 64 65 66 69 6e 65 |cho' */.||#define|
|00002a80| 20 45 46 4c 41 47 09 09 | 31 34 09 2f 2a 20 27 2d | EFLAG..|14./* '-|
|00002a90| 6e 27 20 73 77 69 74 63 | 68 20 66 6f 72 20 73 63 |n' switc|h for sc|
|00002aa0| 72 69 70 74 20 27 65 63 | 68 6f 27 20 63 6d 64 20 |ript 'ec|ho' cmd |
|00002ab0| 2a 2f 0a 7c 23 64 65 66 | 69 6e 65 20 45 4c 53 45 |*/.|#def|ine ELSE|
|00002ac0| 09 09 31 35 09 2f 2a 20 | 73 63 72 69 70 74 20 27 |..15./* |script '|
|00002ad0| 65 6c 73 65 27 20 2a 2f | 0a 7c 23 64 65 66 69 6e |else' */|.|#defin|
|00002ae0| 65 20 45 4e 44 49 46 09 | 09 31 36 09 2f 2a 20 73 |e ENDIF.|.16./* s|
|00002af0| 63 72 69 70 74 20 27 65 | 6e 64 69 66 27 20 2a 2f |cript 'e|ndif' */|
|00002b00| 0a 7c 23 64 65 66 69 6e | 65 20 45 4e 44 54 52 41 |.|#defin|e ENDTRA|
|00002b10| 50 09 09 31 37 09 2f 2a | 20 73 63 72 69 70 74 20 |P..17./*| script |
|00002b20| 27 65 6e 64 74 72 61 70 | 27 20 2a 2f 0a 7c 23 64 |'endtrap|' */.|#d|
|00002b30| 65 66 69 6e 65 20 45 51 | 09 09 09 31 38 09 2f 2a |efine EQ|...18./*|
|00002b40| 20 6f 70 65 72 61 74 6f | 72 20 22 65 71 75 61 6c | operato|r "equal|
|00002b50| 73 22 20 2a 2f 0a 7c 23 | 64 65 66 69 6e 65 20 45 |s" */.|#|define E|
|00002b60| 58 49 54 09 09 31 39 09 | 2f 2a 20 73 63 72 69 70 |XIT..19.|/* scrip|
|00002b70| 74 20 27 65 78 69 74 27 | 20 2a 2f 0a 7c 23 64 65 |t 'exit'| */.|#de|
|00002b80| 66 69 6e 65 20 53 46 49 | 4c 45 09 09 32 30 09 2f |fine SFI|LE..20./|
|00002b90| 2a 20 73 63 72 69 70 74 | 20 27 66 69 6c 65 27 20 |* script| 'file' |
|00002ba0| 2a 2f 0a 7c 23 64 65 66 | 69 6e 65 20 53 46 41 4c |*/.|#def|ine SFAL|
|00002bb0| 53 45 09 09 32 31 09 2f | 2a 20 73 63 72 69 70 74 |SE..21./|* script|
|00002bc0| 20 27 66 61 6c 73 65 27 | 20 2a 2f 0a 7c 23 64 65 | 'false'| */.|#de|
|00002bd0| 66 69 6e 65 20 49 46 09 | 09 09 32 32 09 2f 2a 20 |fine IF.|..22./* |
|00002be0| 73 63 72 69 70 74 20 27 | 69 66 27 20 2a 2f 0a 7c |script '|if' */.||
|00002bf0| 23 64 65 66 69 6e 65 20 | 49 4e 43 52 09 09 32 33 |#define |INCR..23|
|00002c00| 09 2f 2a 20 73 63 72 69 | 70 74 20 27 69 6e 63 72 |./* scri|pt 'incr|
|00002c10| 27 20 2a 2f 0a 7c 23 64 | 65 66 69 6e 65 20 4c 45 |' */.|#d|efine LE|
|00002c20| 53 53 54 48 41 4e 09 32 | 34 09 2f 2a 20 6f 70 65 |SSTHAN.2|4./* ope|
|00002c30| 72 61 74 6f 72 20 22 6c | 65 73 73 20 74 68 61 6e |rator "l|ess than|
|00002c40| 22 20 2a 2f 0a 7c 23 64 | 65 66 69 6e 65 20 4c 49 |" */.|#d|efine LI|
|00002c50| 54 45 52 41 4c 09 09 32 | 35 09 2f 2a 20 61 20 6c |TERAL..2|5./* a l|
|00002c60| 69 74 65 72 61 6c 20 73 | 74 72 69 6e 67 20 28 65 |iteral s|tring (e|
|00002c70| 2e 67 2e 20 22 61 62 63 | 64 65 22 29 20 2a 2f 0a |.g. "abc|de") */.|
|00002c80| 7c 23 64 65 66 69 6e 65 | 20 4d 4f 52 45 54 48 41 ||#define| MORETHA|
|00002c90| 4e 09 32 36 09 2f 2a 20 | 6f 70 65 72 61 74 6f 72 |N.26./* |operator|
|00002ca0| 20 22 67 72 65 61 74 65 | 72 20 74 68 61 6e 22 20 | "greate|r than" |
|00002cb0| 2a 2f 0a 7c 23 64 65 66 | 69 6e 65 20 4e 45 47 41 |*/.|#def|ine NEGA|
|00002cc0| 54 45 09 09 32 37 09 2f | 2a 20 6e 65 67 61 74 69 |TE..27./|* negati|
|00002cd0| 6f 6e 20 6f 70 65 72 61 | 74 6f 72 20 66 6f 72 20 |on opera|tor for |
|00002ce0| 63 6f 6d 70 61 72 69 73 | 6f 6e 73 20 2a 2f 0a 7c |comparis|ons */.||
|00002cf0| 23 64 65 66 69 6e 65 20 | 4e 45 51 09 09 09 32 38 |#define |NEQ...28|
|00002d00| 09 2f 2a 20 6f 70 65 72 | 61 74 6f 72 20 22 6e 6f |./* oper|ator "no|
|00002d10| 74 20 65 71 75 61 6c 20 | 74 6f 22 20 2a 2f 0a 7c |t equal |to" */.||
|00002d20| 23 64 65 66 69 6e 65 20 | 4e 55 4d 42 45 52 09 09 |#define |NUMBER..|
|00002d30| 32 39 09 2f 2a 20 61 20 | 6e 75 6d 65 72 69 63 20 |29./* a |numeric |
|00002d40| 63 6f 6e 73 74 61 6e 74 | 20 28 65 2e 67 2e 20 31 |constant| (e.g. 1|
|00002d50| 32 33 34 35 29 20 2a 2f | 0a 7c 23 64 65 66 69 6e |2345) */|.|#defin|
|00002d60| 65 20 50 49 50 45 09 09 | 33 30 09 2f 2a 20 73 63 |e PIPE..|30./* sc|
|00002d70| 72 69 70 74 20 27 70 69 | 70 65 27 20 2a 2f 0a 7c |ript 'pi|pe' */.||
|00002d80| 23 64 65 66 69 6e 65 20 | 52 45 41 44 09 09 33 31 |#define |READ..31|
|00002d90| 09 2f 2a 20 73 63 72 69 | 70 74 20 27 72 65 61 64 |./* scri|pt 'read|
|00002da0| 27 20 2a 2f 0a 7c 23 64 | 65 66 69 6e 65 20 53 48 |' */.|#d|efine SH|
|00002db0| 45 4c 4c 09 09 33 32 09 | 2f 2a 20 73 63 72 69 70 |ELL..32.|/* scrip|
|00002dc0| 74 20 27 73 68 65 6c 6c | 27 20 2a 2f 0a 7c 23 64 |t 'shell|' */.|#d|
|00002dd0| 65 66 69 6e 65 20 53 45 | 54 09 09 09 33 33 09 2f |efine SE|T...33./|
|00002de0| 2a 20 73 63 72 69 70 74 | 20 27 61 73 73 69 67 6e |* script| 'assign|
|00002df0| 27 20 2a 2f 0a 7c 23 64 | 65 66 69 6e 65 20 53 54 |' */.|#d|efine ST|
|00002e00| 52 41 50 09 09 33 34 09 | 2f 2a 20 73 63 72 69 70 |RAP..34.|/* scrip|
|00002e10| 74 20 27 74 72 61 70 27 | 20 2a 2f 0a 7c 23 64 65 |t 'trap'| */.|#de|
|00002e20| 66 69 6e 65 20 54 45 52 | 4d 49 4e 41 54 09 33 35 |fine TER|MINAT.35|
|00002e30| 09 2f 2a 20 73 74 61 74 | 65 6d 65 6e 74 20 74 65 |./* stat|ement te|
|00002e40| 72 6d 69 6e 61 74 6f 72 | 73 20 28 27 3b 27 20 61 |rminator|s (';' a|
|00002e50| 6e 64 20 27 5c 6e 27 29 | 20 2a 2f 0a 7c 23 64 65 |nd '\n')| */.|#de|
|00002e60| 66 69 6e 65 20 54 48 45 | 4e 09 09 33 36 09 2f 2a |fine THE|N..36./*|
|00002e70| 20 73 63 72 69 70 74 20 | 27 74 68 65 6e 27 20 2a | script |'then' *|
|00002e80| 2f 0a 7c 23 64 65 66 69 | 6e 65 20 53 54 52 55 45 |/.|#defi|ne STRUE|
|00002e90| 09 09 33 37 09 2f 2a 20 | 73 63 72 69 70 74 20 27 |..37./* |script '|
|00002ea0| 74 72 75 65 27 20 2a 2f | 0a 7c 23 64 65 66 69 6e |true' */|.|#defin|
|00002eb0| 65 20 55 4e 53 45 54 09 | 09 33 38 09 2f 2a 20 73 |e UNSET.|.38./* s|
|00002ec0| 63 72 69 70 74 20 27 75 | 6e 73 65 74 27 20 2a 2f |cript 'u|nset' */|
|00002ed0| 0a 7c 23 64 65 66 69 6e | 65 20 55 4e 54 52 41 50 |.|#defin|e UNTRAP|
|00002ee0| 09 09 33 39 09 2f 2a 20 | 73 63 72 69 70 74 20 27 |..39./* |script '|
|00002ef0| 75 6e 74 72 61 70 27 20 | 2a 2f 0a 7c 23 64 65 66 |untrap' |*/.|#def|
|00002f00| 69 6e 65 20 58 43 53 45 | 54 09 09 34 30 09 2f 2a |ine XCSE|T..40./*|
|00002f10| 20 78 63 20 27 73 65 74 | 27 20 63 6f 6d 6d 61 6e | xc 'set|' comman|
|00002f20| 64 20 2a 2f 0a 7c 23 64 | 65 66 69 6e 65 20 56 41 |d */.|#d|efine VA|
|00002f30| 52 4e 41 4d 45 09 09 34 | 31 09 2f 2a 20 61 20 76 |RNAME..4|1./* a v|
|00002f40| 61 72 69 61 62 6c 65 20 | 6e 61 6d 65 20 2a 2f 0a |ariable |name */.|
|00002f50| 7c 23 64 65 66 69 6e 65 | 20 57 48 49 4c 45 09 09 ||#define| WHILE..|
|00002f60| 34 32 09 2f 2a 20 73 63 | 72 69 70 74 20 27 77 68 |42./* sc|ript 'wh|
|00002f70| 69 6c 65 27 20 2a 2f 0a | 7c 23 64 65 66 69 6e 65 |ile' */.||#define|
|00002f80| 20 54 54 45 52 52 4f 52 | 09 09 34 33 09 2f 2a 20 | TTERROR|..43./* |
|00002f90| 75 6e 72 65 63 6f 67 6e | 69 7a 61 62 6c 65 20 74 |unrecogn|izable t|
|00002fa0| 6f 6b 65 6e 20 2a 2f 0a | 7c 23 64 65 66 69 6e 65 |oken */.||#define|
|00002fb0| 20 54 49 4d 45 4f 55 54 | 09 09 34 34 09 2f 2a 20 | TIMEOUT|..44./* |
|00002fc0| 73 63 72 69 70 74 20 27 | 74 69 6d 65 6f 75 74 27 |script '|timeout'|
|00002fd0| 20 2a 2f 0a 7c 0a 7c 23 | 64 65 66 69 6e 65 20 54 | */.|.|#|define T|
|00002fe0| 4f 4b 5f 54 59 50 45 20 | 73 68 6f 72 74 0a 7c 0a |OK_TYPE |short.|.|
|00002ff0| 7c 2f 2a 09 74 6f 6b 65 | 6e 20 74 61 62 6c 65 20 ||/*.toke|n table |
|00003000| 2a 2f 0a 7c 73 74 61 74 | 69 63 20 73 74 72 75 63 |*/.|stat|ic struc|
|00003010| 74 20 73 5f 74 6f 6b 65 | 6e 20 7b 0a 7c 09 63 68 |t s_toke|n {.|.ch|
|00003020| 61 72 20 2a 6e 61 6d 65 | 3b 0a 7c 09 54 4f 4b 5f |ar *name|;.|.TOK_|
|00003030| 54 59 50 45 20 74 6f 6b | 65 6e 3b 0a 7c 7d 20 73 |TYPE tok|en;.|} s|
|00003040| 5f 74 6f 6b 74 61 62 5b | 5d 20 3d 20 7b 0a 7c 09 |_toktab[|] = {.|.|
|00003050| 7b 22 4e 55 4c 4c 54 4f | 4b 22 2c 09 09 4e 55 4c |{"NULLTO|K",..NUL|
|00003060| 4c 54 4f 4b 7d 2c 0a 7c | 09 7b 22 41 43 54 49 4f |LTOK},.||.{"ACTIO|
|00003070| 4e 22 2c 09 09 41 43 54 | 49 4f 4e 7d 2c 0a 7c 09 |N",..ACT|ION},.|.|
|00003080| 7b 22 61 66 66 69 72 6d | 22 2c 09 09 41 46 46 49 |{"affirm|",..AFFI|
|00003090| 52 4d 7d 2c 0a 7c 09 7b | 22 42 41 43 4b 51 55 4f |RM},.|.{|"BACKQUO|
|000030a0| 54 22 2c 09 42 41 43 4b | 51 55 4f 54 7d 2c 0a 7c |T",.BACK|QUOT},.||
|000030b0| 09 7b 22 62 72 65 61 6b | 22 2c 09 09 53 42 52 45 |.{"break|",..SBRE|
|000030c0| 41 4b 7d 2c 0a 7c 09 7b | 22 63 61 6c 6c 22 2c 09 |AK},.|.{|"call",.|
|000030d0| 09 43 41 4c 4c 7d 2c 0a | 7c 09 7b 22 43 4f 4d 4d |.CALL},.||.{"COMM|
|000030e0| 45 4e 54 22 2c 09 09 43 | 4f 4d 4d 45 4e 54 7d 2c |ENT",..C|OMMENT},|
|000030f0| 0a 7c 09 7b 22 63 6f 6e | 74 69 6e 75 65 22 2c 09 |.|.{"con|tinue",.|
|00003100| 53 43 4f 4e 54 4e 55 45 | 7d 2c 0a 7c 09 7b 22 64 |SCONTNUE|},.|.{"d|
|00003110| 65 63 72 22 2c 09 09 44 | 45 43 52 7d 2c 0a 7c 09 |ecr",..D|ECR},.|.|
|00003120| 7b 22 64 6f 22 2c 09 09 | 09 44 4f 7d 2c 0a 7c 09 |{"do",..|.DO},.|.|
|00003130| 7b 22 64 6f 6e 65 22 2c | 09 09 44 4f 4e 45 7d 2c |{"done",|..DONE},|
|00003140| 0a 7c 09 7b 22 65 63 68 | 6f 22 2c 09 09 45 43 48 |.|.{"ech|o",..ECH|
|00003150| 4f 53 7d 2c 0a 7c 09 7b | 22 2d 6e 22 2c 09 09 09 |OS},.|.{|"-n",...|
|00003160| 45 46 4c 41 47 7d 2c 0a | 7c 09 7b 22 65 6c 73 65 |EFLAG},.||.{"else|
|00003170| 22 2c 09 09 45 4c 53 45 | 7d 2c 0a 7c 09 7b 22 65 |",..ELSE|},.|.{"e|
|00003180| 6e 64 69 66 22 2c 09 09 | 45 4e 44 49 46 7d 2c 0a |ndif",..|ENDIF},.|
|00003190| 7c 09 7b 22 66 69 22 2c | 09 09 09 45 4e 44 49 46 ||.{"fi",|...ENDIF|
|000031a0| 7d 2c 0a 7c 09 7b 22 45 | 4e 44 54 52 41 50 22 2c |},.|.{"E|NDTRAP",|
|000031b0| 09 09 45 4e 44 54 52 41 | 50 7d 2c 0a 7c 09 7b 22 |..ENDTRA|P},.|.{"|
|000031c0| 65 71 22 2c 09 09 09 45 | 51 7d 2c 0a 7c 09 7b 22 |eq",...E|Q},.|.{"|
|000031d0| 65 78 69 74 22 2c 09 09 | 45 58 49 54 7d 2c 0a 7c |exit",..|EXIT},.||
|000031e0| 09 7b 22 66 61 6c 73 65 | 22 2c 09 09 53 46 41 4c |.{"false|",..SFAL|
|000031f0| 53 45 7d 2c 0a 7c 09 7b | 22 66 69 6c 65 22 2c 09 |SE},.|.{|"file",.|
|00003200| 09 53 46 49 4c 45 7d 2c | 0a 7c 09 7b 22 69 66 22 |.SFILE},|.|.{"if"|
|00003210| 2c 09 09 09 49 46 7d 2c | 0a 7c 09 7b 22 69 6e 63 |,...IF},|.|.{"inc|
|00003220| 72 22 2c 09 09 49 4e 43 | 52 7d 2c 0a 7c 09 7b 22 |r",..INC|R},.|.{"|
|00003230| 6c 65 73 73 74 68 61 6e | 22 2c 09 4c 45 53 53 54 |lessthan|",.LESST|
|00003240| 48 41 4e 7d 2c 0a 7c 09 | 7b 22 4c 49 54 45 52 41 |HAN},.|.|{"LITERA|
|00003250| 4c 22 2c 09 09 4c 49 54 | 45 52 41 4c 7d 2c 0a 7c |L",..LIT|ERAL},.||
|00003260| 09 7b 22 6d 6f 72 65 74 | 68 61 6e 22 2c 09 4d 4f |.{"moret|han",.MO|
|00003270| 52 45 54 48 41 4e 7d 2c | 0a 7c 09 7b 22 21 22 2c |RETHAN},|.|.{"!",|
|00003280| 09 09 09 4e 45 47 41 54 | 45 7d 2c 0a 7c 09 7b 22 |...NEGAT|E},.|.{"|
|00003290| 6e 65 71 22 2c 09 09 09 | 4e 45 51 7d 2c 0a 7c 09 |neq",...|NEQ},.|.|
|000032a0| 7b 22 4e 55 4d 42 45 52 | 22 2c 09 09 4e 55 4d 42 |{"NUMBER|",..NUMB|
|000032b0| 45 52 7d 2c 0a 7c 09 7b | 22 70 69 70 65 22 2c 09 |ER},.|.{|"pipe",.|
|000032c0| 09 50 49 50 45 7d 2c 0a | 7c 09 7b 22 72 65 61 64 |.PIPE},.||.{"read|
|000032d0| 22 2c 09 09 52 45 41 44 | 7d 2c 0a 7c 09 7b 22 61 |",..READ|},.|.{"a|
|000032e0| 73 73 69 67 6e 22 2c 09 | 09 53 45 54 7d 2c 0a 7c |ssign",.|.SET},.||
|000032f0| 09 7b 22 73 68 65 6c 6c | 22 2c 09 09 53 48 45 4c |.{"shell|",..SHEL|
|00003300| 4c 7d 2c 0a 7c 09 7b 22 | 54 52 41 50 22 2c 09 09 |L},.|.{"|TRAP",..|
|00003310| 53 54 52 41 50 7d 2c 09 | 09 2f 2a 20 27 74 72 61 |STRAP},.|./* 'tra|
|00003320| 70 27 20 6b 65 79 77 6f | 72 64 20 6c 65 66 74 20 |p' keywo|rd left |
|00003330| 66 6f 72 20 6c 61 74 65 | 72 20 64 65 76 27 74 20 |for late|r dev't |
|00003340| 2a 2f 0a 7c 09 7b 22 54 | 45 52 4d 49 4e 41 54 22 |*/.|.{"T|ERMINAT"|
|00003350| 2c 09 54 45 52 4d 49 4e | 41 54 7d 2c 0a 7c 09 7b |,.TERMIN|AT},.|.{|
|00003360| 22 74 68 65 6e 22 2c 09 | 09 54 48 45 4e 7d 2c 0a |"then",.|.THEN},.|
|00003370| 7c 09 7b 22 74 69 6d 65 | 6f 75 74 22 2c 09 09 54 ||.{"time|out",..T|
|00003380| 49 4d 45 4f 55 54 7d 2c | 0a 7c 09 7b 22 74 72 75 |IMEOUT},|.|.{"tru|
|00003390| 65 22 2c 09 09 53 54 52 | 55 45 7d 2c 0a 7c 09 7b |e",..STR|UE},.|.{|
|000033a0| 22 75 6e 61 73 73 69 67 | 6e 22 2c 09 55 4e 53 45 |"unassig|n",.UNSE|
|000033b0| 54 7d 2c 0a 7c 09 7b 22 | 55 4e 54 52 41 50 22 2c |T},.|.{"|UNTRAP",|
|000033c0| 09 09 55 4e 54 52 41 50 | 7d 2c 0a 7c 09 7b 22 73 |..UNTRAP|},.|.{"s|
|000033d0| 65 74 22 2c 09 09 09 58 | 43 53 45 54 7d 2c 0a 7c |et",...X|CSET},.||
|000033e0| 09 7b 22 56 41 52 4e 41 | 4d 45 22 2c 09 09 56 41 |.{"VARNA|ME",..VA|
|000033f0| 52 4e 41 4d 45 7d 2c 0a | 7c 09 7b 22 77 68 69 6c |RNAME},.||.{"whil|
|00003400| 65 22 2c 09 09 57 48 49 | 4c 45 7d 2c 0a 7c 09 7b |e",..WHI|LE},.|.{|
|00003410| 22 5c 30 22 2c 09 09 09 | 54 54 45 52 52 4f 52 7d |"\0",...|TTERROR}|
|00003420| 0a 7c 7d 3b 0a 7c 2f 2a | 09 65 6e 64 20 74 6f 6b |.|};.|/*|.end tok|
|00003430| 65 6e 20 74 79 70 65 73 | 20 2a 2f 0a 7c 0a 7c 2f |en types| */.|.|/|
|00003440| 2a 09 74 6f 6b 5f 76 61 | 6c 75 65 20 69 73 20 73 |*.tok_va|lue is s|
|00003450| 65 74 20 62 79 20 6c 65 | 78 61 6e 28 29 20 69 6e |et by le|xan() in|
|00003460| 20 74 68 65 20 66 6f 6c | 6c 6f 77 69 6e 67 20 69 | the fol|lowing i|
|00003470| 6e 73 74 61 6e 63 65 73 | 3a 0a 7c 09 20 54 4f 4b |nstances|:.|. TOK|
|00003480| 5f 54 59 50 45 20 4e 55 | 4d 42 45 52 3a 09 20 28 |_TYPE NU|MBER:. (|
|00003490| 6c 6f 6e 67 29 20 69 6e | 74 20 76 61 6c 75 65 20 |long) in|t value |
|000034a0| 6f 66 20 6e 75 6d 62 65 | 72 0a 7c 09 20 54 4f 4b |of numbe|r.|. TOK|
|000034b0| 5f 54 59 50 45 20 4c 49 | 54 45 52 41 4c 3a 09 20 |_TYPE LI|TERAL:. |
|000034c0| 70 6f 69 6e 74 65 72 20 | 74 6f 20 62 65 67 69 6e |pointer |to begin|
|000034d0| 6e 69 6e 67 20 6f 66 20 | 71 75 6f 74 65 64 20 73 |ning of |quoted s|
|000034e0| 74 72 69 6e 67 0a 7c 09 | 20 54 4f 4b 5f 54 59 50 |tring.|.| TOK_TYP|
|000034f0| 45 20 41 43 54 49 4f 4e | 3a 09 20 66 75 6e 63 74 |E ACTION|:. funct|
|00003500| 69 6f 6e 20 70 6f 69 6e | 74 65 72 20 74 6f 20 61 |ion poin|ter to a|
|00003510| 70 70 72 6f 70 72 69 61 | 74 65 20 76 65 63 74 6f |ppropria|te vecto|
|00003520| 72 0a 7c 09 20 54 4f 4b | 5f 54 59 50 45 20 56 41 |r.|. TOK|_TYPE VA|
|00003530| 52 4e 41 4d 45 3a 09 20 | 70 6f 69 6e 74 65 72 20 |RNAME:. |pointer |
|00003540| 74 6f 20 56 41 52 20 73 | 74 72 75 63 74 0a 7c 09 |to VAR s|truct.|.|
|00003550| 20 54 4f 4b 5f 54 59 50 | 45 20 54 54 45 52 52 4f | TOK_TYP|E TTERRO|
|00003560| 52 3a 09 20 70 6f 69 6e | 74 65 72 20 74 6f 20 73 |R:. poin|ter to s|
|00003570| 74 72 61 6e 67 65 20 63 | 6f 6e 73 74 72 75 63 74 |trange c|onstruct|
|00003580| 69 6f 6e 20 69 6e 20 73 | 63 72 69 70 74 0a 7c 09 |ion in s|cript.|.|
|00003590| 41 6c 6c 20 6f 74 68 65 | 72 20 76 61 6c 75 65 73 |All othe|r values|
|000035a0| 20 6f 66 20 54 4f 4b 5f | 54 59 50 45 20 64 6f 6e | of TOK_|TYPE don|
|000035b0| 27 74 20 72 65 71 75 69 | 72 65 20 66 75 72 74 68 |'t requi|re furth|
|000035c0| 65 72 20 69 6e 66 6f 72 | 6d 61 74 69 6f 6e 2e 0a |er infor|mation..|
|000035d0| 7c 20 2a 2f 0a 7c 73 74 | 61 74 69 63 20 75 6e 69 || */.|st|atic uni|
|000035e0| 6f 6e 20 7b 0a 7c 09 6c | 6f 6e 67 20 6e 75 6d 76 |on {.|.l|ong numv|
|000035f0| 61 6c 3b 09 09 2f 2a 20 | 6e 75 6d 62 65 72 73 20 |al;../* |numbers |
|00003600| 2a 2f 0a 7c 09 63 68 61 | 72 20 2a 73 74 72 70 74 |*/.|.cha|r *strpt|
|00003610| 72 3b 09 09 2f 2a 20 66 | 6f 72 20 6c 69 74 65 72 |r;../* f|or liter|
|00003620| 61 6c 20 73 74 72 69 6e | 67 73 20 28 70 6f 69 6e |al strin|gs (poin|
|00003630| 74 73 20 74 6f 20 69 6e | 69 74 69 61 6c 20 27 22 |ts to in|itial '"|
|00003640| 27 29 20 2a 2f 0a 7c 09 | 69 6e 74 20 28 2a 66 75 |') */.|.|int (*fu|
|00003650| 6e 63 70 74 72 29 28 29 | 3b 09 2f 2a 20 76 65 63 |ncptr)()|;./* vec|
|00003660| 74 6f 72 20 66 6f 72 20 | 70 72 69 6d 69 74 69 76 |tor for |primitiv|
|00003670| 65 73 20 2a 2f 0a 7c 09 | 56 41 52 20 2a 76 61 72 |es */.|.|VAR *var|
|00003680| 70 74 72 3b 09 09 2f 2a | 20 66 6f 72 20 76 61 72 |ptr;../*| for var|
|00003690| 69 61 62 6c 65 73 20 2a | 2f 0a 7c 7d 20 74 6f 6b |iables *|/.|} tok|
|000036a0| 5f 76 61 6c 75 65 3b 0a | 7c 0a 7c 0a 7c 2f 2a 09 |_value;.||.|.|/*.|
|000036b0| 6c 65 78 61 6e 28 29 20 | 69 73 20 74 68 65 20 6c |lexan() |is the l|
|000036c0| 65 78 69 63 61 6c 20 61 | 6e 61 6c 79 7a 65 72 2c |exical a|nalyzer,|
|000036d0| 20 77 68 69 63 68 20 74 | 72 61 6e 73 6c 61 74 65 | which t|ranslate|
|000036e0| 73 20 77 6f 72 64 73 0a | 7c 09 69 6e 74 6f 20 74 |s words.||.into t|
|000036f0| 6f 6b 65 6e 20 74 79 70 | 65 73 20 61 6e 64 20 73 |oken typ|es and s|
|00003700| 65 74 73 20 74 6f 6b 5f | 76 61 6c 75 65 20 61 70 |ets tok_|value ap|
|00003710| 70 72 6f 70 72 69 61 74 | 65 6c 79 2e 20 49 74 27 |propriat|ely. It'|
|00003720| 73 0a 7c 09 63 61 6c 6c | 65 64 20 72 65 70 65 61 |s.|.call|ed repea|
|00003730| 74 65 64 6c 79 20 62 79 | 20 74 68 65 20 6c 61 6e |tedly by| the lan|
|00003740| 67 75 61 67 65 20 70 61 | 72 73 65 72 2c 20 53 5f |guage pa|rser, S_|
|00003750| 70 61 72 73 65 28 29 2e | 0a 7c 2a 2f 0a 7c 73 74 |parse().|.|*/.|st|
|00003760| 61 74 69 63 20 54 4f 4b | 5f 54 59 50 45 20 6c 65 |atic TOK|_TYPE le|
|00003770| 78 61 6e 28 70 63 70 74 | 72 29 0a 7c 63 68 61 72 |xan(pcpt|r).|char|
|00003780| 20 2a 2a 70 63 70 74 72 | 3b 09 09 2f 2a 20 61 64 | **pcptr|;../* ad|
|00003790| 64 72 65 73 73 20 6f 66 | 20 73 63 72 69 70 74 20 |dress of| script |
|000037a0| 70 72 6f 67 72 61 6d 20 | 63 6f 75 6e 74 65 72 20 |program |counter |
|000037b0| 2a 2f 0a 7c 7b 0a 7c 09 | 6c 6f 6e 67 20 6e 76 61 |*/.|{.|.|long nva|
|000037c0| 6c 75 65 2c 20 6e 65 67 | 70 6f 73 20 3d 20 31 3b |lue, neg|pos = 1;|
|000037d0| 0a 7c 09 56 41 52 20 2a | 76 61 72 70 74 72 3b 0a |.|.VAR *|varptr;.|
|000037e0| 7c 09 46 49 4c 45 20 2a | 62 71 70 69 70 65 3b 0a ||.FILE *|bqpipe;.|
|000037f0| 7c 09 69 6e 74 20 69 2c | 20 63 3b 09 09 09 09 2f ||.int i,| c;..../|
|00003800| 2a 20 72 65 61 6c 6c 79 | 20 61 20 63 68 61 72 2c |* really| a char,|
|00003810| 20 62 75 74 20 27 69 6e | 74 27 20 74 6f 20 73 70 | but 'in|t' to sp|
|00003820| 6f 74 20 45 4f 46 20 2a | 2f 0a 7c 09 73 74 61 74 |ot EOF *|/.|.stat|
|00003830| 69 63 20 63 68 61 72 20 | 2a 63 70 74 72 2c 20 2a |ic char |*cptr, *|
|00003840| 6c 61 73 74 74 6f 6b 2c | 0a 7c 09 09 09 09 6c 61 |lasttok,|.|....la|
|00003850| 74 6f 6b 65 6e 5b 56 4e | 41 4d 45 4c 45 4e 2b 31 |token[VN|AMELEN+1|
|00003860| 5d 2c 20 74 65 6d 70 5b | 56 4d 41 58 53 49 5a 45 |], temp[|VMAXSIZE|
|00003870| 2b 31 5d 2c 20 62 71 63 | 6d 64 5b 56 4d 41 58 53 |+1], bqc|md[VMAXS|
|00003880| 49 5a 45 2b 31 5d 3b 0a | 7c 09 65 78 74 65 72 6e |IZE+1];.||.extern|
|00003890| 20 46 49 4c 45 20 2a 70 | 6f 70 65 6e 28 29 3b 0a | FILE *p|open();.|
|000038a0| 7c 0a 7c 09 2f 2a 20 69 | 66 20 69 6e 20 64 65 62 ||.|./* i|f in deb|
|000038b0| 75 67 20 6d 6f 64 65 2c | 20 65 63 68 6f 20 73 63 |ug mode,| echo sc|
|000038c0| 72 69 70 74 20 6c 69 6e | 65 20 74 6f 20 74 66 70 |ript lin|e to tfp|
|000038d0| 20 2a 2f 0a 7c 09 69 66 | 20 28 65 63 68 6f 5f 66 | */.|.if| (echo_f|
|000038e0| 6c 61 67 20 26 26 20 2a | 70 63 70 74 72 3e 6c 61 |lag && *|pcptr>la|
|000038f0| 73 74 74 6f 6b 29 20 7b | 0a 7c 09 09 63 70 74 72 |sttok) {|.|..cptr|
|00003900| 20 3d 20 2a 70 63 70 74 | 72 20 2d 20 31 3b 0a 7c | = *pcpt|r - 1;.||
|00003910| 09 09 77 68 69 6c 65 20 | 28 2a 63 70 74 72 3d 3d |..while |(*cptr==|
|00003920| 27 20 27 20 7c 7c 20 2a | 63 70 74 72 3d 3d 27 5c |' ' || *|cptr=='\|
|00003930| 74 27 29 20 2d 2d 63 70 | 74 72 3b 0a 7c 09 09 69 |t') --cp|tr;.|..i|
|00003940| 66 20 28 2a 63 70 74 72 | 3d 3d 27 5c 6e 27 29 20 |f (*cptr|=='\n') |
|00003950| 7b 0a 7c 09 09 09 66 70 | 72 69 6e 74 66 28 74 66 |{.|...fp|rintf(tf|
|00003960| 70 2c 22 2b 20 22 29 3b | 0a 7c 09 09 09 2b 2b 63 |p,"+ ");|.|...++c|
|00003970| 70 74 72 3b 0a 7c 09 09 | 09 77 68 69 6c 65 20 28 |ptr;.|..|.while (|
|00003980| 2a 63 70 74 72 21 3d 27 | 5c 6e 27 20 26 26 20 2a |*cptr!='|\n' && *|
|00003990| 63 70 74 72 29 0a 7c 09 | 09 09 09 66 70 75 74 63 |cptr).|.|...fputc|
|000039a0| 28 2a 28 63 70 74 72 2b | 2b 29 2c 74 66 70 29 3b |(*(cptr+|+),tfp);|
|000039b0| 0a 7c 09 09 09 66 70 75 | 74 63 28 27 5c 6e 27 2c |.|...fpu|tc('\n',|
|000039c0| 74 66 70 29 3b 0a 7c 09 | 09 7d 0a 7c 09 7d 0a 7c |tfp);.|.|.}.|.}.||
|000039d0| 0a 7c 09 2f 2a 20 73 6b | 69 70 20 74 6f 20 62 65 |.|./* sk|ip to be|
|000039e0| 67 69 6e 6e 69 6e 67 20 | 6f 66 20 6e 65 78 74 20 |ginning |of next |
|000039f0| 74 6f 6b 65 6e 20 2a 2f | 0a 7c 09 77 68 69 6c 65 |token */|.|.while|
|00003a00| 20 28 2a 2a 70 63 70 74 | 72 3d 3d 27 20 27 20 7c | (**pcpt|r==' ' ||
|00003a10| 7c 20 2a 2a 70 63 70 74 | 72 3d 3d 27 5c 74 27 29 || **pcpt|r=='\t')|
|00003a20| 20 2b 2b 28 2a 70 63 70 | 74 72 29 3b 0a 7c 09 74 | ++(*pcp|tr);.|.t|
|00003a30| 6f 6b 5f 76 61 6c 75 65 | 2e 73 74 72 70 74 72 20 |ok_value|.strptr |
|00003a40| 3d 20 63 70 74 72 20 3d | 20 6c 61 73 74 74 6f 6b |= cptr =| lasttok|
|00003a50| 20 3d 20 2a 70 63 70 74 | 72 3b 09 09 09 09 2f 2a | = *pcpt|r;..../*|
|00003a60| 20 73 61 76 65 20 70 6c | 61 63 65 20 2a 2f 0a 7c | save pl|ace */.||
|00003a70| 0a 7c 09 09 09 09 09 09 | 09 09 09 2f 2a 20 6e 65 |.|......|.../* ne|
|00003a80| 67 61 74 69 6f 6e 20 6f | 70 65 72 61 74 6f 72 20 |gation o|perator |
|00003a90| 66 6f 72 20 63 6f 6d 70 | 61 72 69 73 6f 6e 73 20 |for comp|arisons |
|00003aa0| 2a 2f 0a 7c 09 69 66 20 | 28 2a 63 70 74 72 3d 3d |*/.|.if |(*cptr==|
|00003ab0| 27 21 27 20 26 26 20 28 | 2a 28 63 70 74 72 2b 31 |'!' && (|*(cptr+1|
|00003ac0| 29 3d 3d 27 20 27 20 7c | 7c 20 2a 28 63 70 74 72 |)==' ' ||| *(cptr|
|00003ad0| 2b 31 29 3d 3d 27 5c 74 | 27 29 29 20 7b 0a 7c 09 |+1)=='\t|')) {.|.|
|00003ae0| 09 2b 2b 63 70 74 72 3b | 0a 7c 09 09 2a 70 63 70 |.++cptr;|.|..*pcp|
|00003af0| 74 72 20 3d 20 63 70 74 | 72 3b 0a 7c 09 09 72 65 |tr = cpt|r;.|..re|
|00003b00| 74 75 72 6e 28 4e 45 47 | 41 54 45 29 3b 0a 7c 09 |turn(NEG|ATE);.|.|
|00003b10| 7d 0a 7c 09 09 09 09 09 | 09 09 09 09 2f 2a 20 63 |}.|.....|..../* c|
|00003b20| 6f 6d 6d 65 6e 74 20 69 | 6e 20 73 63 72 69 70 74 |omment i|n script|
|00003b30| 20 2a 2f 0a 7c 09 69 66 | 20 28 2a 63 70 74 72 3d | */.|.if| (*cptr=|
|00003b40| 3d 27 23 27 29 20 7b 0a | 7c 09 09 77 68 69 6c 65 |='#') {.||..while|
|00003b50| 20 28 2a 63 70 74 72 20 | 26 26 20 2a 63 70 74 72 | (*cptr |&& *cptr|
|00003b60| 21 3d 27 5c 6e 27 29 20 | 2b 2b 63 70 74 72 3b 0a |!='\n') |++cptr;.|
|00003b70| 7c 09 09 2a 70 63 70 74 | 72 20 3d 20 63 70 74 72 ||..*pcpt|r = cptr|
|00003b80| 3b 0a 7c 09 09 72 65 74 | 75 72 6e 28 54 45 52 4d |;.|..ret|urn(TERM|
|00003b90| 49 4e 41 54 29 3b 0a 7c | 09 7d 0a 7c 09 09 09 09 |INAT);.||.}.|....|
|00003ba0| 09 09 09 09 09 2f 2a 20 | 73 74 61 74 65 6d 65 6e |...../* |statemen|
|00003bb0| 74 20 74 65 72 6d 69 6e | 61 74 6f 72 20 2a 2f 0a |t termin|ator */.|
|00003bc0| 7c 09 69 66 20 28 2a 63 | 70 74 72 3d 3d 27 3b 27 ||.if (*c|ptr==';'|
|00003bd0| 20 7c 7c 20 2a 63 70 74 | 72 3d 3d 27 5c 6e 27 29 | || *cpt|r=='\n')|
|00003be0| 20 7b 0a 7c 09 09 2b 2b | 63 70 74 72 3b 0a 7c 09 | {.|..++|cptr;.|.|
|00003bf0| 09 2a 70 63 70 74 72 20 | 3d 20 63 70 74 72 3b 0a |.*pcptr |= cptr;.|
|00003c00| 7c 09 09 72 65 74 75 72 | 6e 28 54 45 52 4d 49 4e ||..retur|n(TERMIN|
|00003c10| 41 54 29 3b 0a 7c 09 7d | 0a 7c 09 09 09 09 09 09 |AT);.|.}|.|......|
|00003c20| 09 09 09 2f 2a 20 65 6e | 64 20 6f 66 20 73 63 72 |.../* en|d of scr|
|00003c30| 69 70 74 20 2a 2f 0a 7c | 09 69 66 20 28 2a 63 70 |ipt */.||.if (*cp|
|00003c40| 74 72 3d 3d 27 5c 30 27 | 29 0a 7c 09 09 72 65 74 |tr=='\0'|).|..ret|
|00003c50| 75 72 6e 28 4e 55 4c 4c | 54 4f 4b 29 3b 0a 7c 09 |urn(NULL|TOK);.|.|
|00003c60| 09 09 09 09 09 09 09 09 | 2f 2a 20 71 75 6f 74 65 |........|/* quote|
|00003c70| 64 20 6c 69 74 65 72 61 | 6c 20 73 74 72 69 6e 67 |d litera|l string|
|00003c80| 20 2a 2f 0a 7c 09 69 66 | 20 28 2a 63 70 74 72 3d | */.|.if| (*cptr=|
|00003c90| 3d 27 22 27 29 20 7b 0a | 7c 09 09 2b 2b 63 70 74 |='"') {.||..++cpt|
|00003ca0| 72 3b 0a 7c 09 09 77 68 | 69 6c 65 20 28 2a 63 70 |r;.|..wh|ile (*cp|
|00003cb0| 74 72 20 26 26 20 2a 63 | 70 74 72 21 3d 27 5c 6e |tr && *c|ptr!='\n|
|00003cc0| 27 20 26 26 20 21 28 2a | 63 70 74 72 3d 3d 27 22 |' && !(*|cptr=='"|
|00003cd0| 27 20 26 26 20 2a 28 63 | 70 74 72 2d 31 29 21 3d |' && *(c|ptr-1)!=|
|00003ce0| 27 5c 5c 27 29 29 0a 7c | 09 09 09 2b 2b 63 70 74 |'\\')).||...++cpt|
|00003cf0| 72 3b 0a 7c 09 09 69 66 | 20 28 2a 63 70 74 72 3d |r;.|..if| (*cptr=|
|00003d00| 3d 27 22 27 29 20 7b 0a | 7c 09 09 09 2b 2b 63 70 |='"') {.||...++cp|
|00003d10| 74 72 3b 0a 7c 09 09 09 | 2a 70 63 70 74 72 20 3d |tr;.|...|*pcptr =|
|00003d20| 20 63 70 74 72 3b 0a 7c | 09 09 09 72 65 74 75 72 | cptr;.||...retur|
|00003d30| 6e 28 4c 49 54 45 52 41 | 4c 29 3b 0a 7c 09 09 7d |n(LITERA|L);.|..}|
|00003d40| 0a 7c 09 09 73 70 72 69 | 6e 74 66 28 4d 73 67 2c |.|..spri|ntf(Msg,|
|00003d50| 22 55 6e 6d 61 74 63 68 | 65 64 20 71 75 6f 74 65 |"Unmatch|ed quote|
|00003d60| 22 29 3b 0a 7c 09 09 53 | 5f 61 62 6f 72 74 28 29 |");.|..S|_abort()|
|00003d70| 3b 0a 7c 09 7d 0a 7c 09 | 09 09 09 09 09 09 2f 2a |;.|.}.|.|....../*|
|00003d80| 20 65 6e 76 69 72 6f 6e | 6d 65 6e 74 20 76 61 72 | environ|ment var|
|00003d90| 69 61 62 6c 65 20 28 74 | 72 65 61 74 20 61 73 20 |iable (t|reat as |
|00003da0| 61 20 6c 69 74 65 72 61 | 6c 29 20 2a 2f 0a 7c 09 |a litera|l) */.|.|
|00003db0| 69 66 20 28 2a 63 70 74 | 72 3d 3d 27 24 27 29 20 |if (*cpt|r=='$') |
|00003dc0| 7b 0a 7c 09 09 2b 2b 63 | 70 74 72 3b 0a 7c 09 09 |{.|..++c|ptr;.|..|
|00003dd0| 66 6f 72 20 28 69 3d 30 | 3b 20 69 3c 56 4d 41 58 |for (i=0|; i<VMAX|
|00003de0| 53 49 5a 45 3b 20 2b 2b | 69 29 20 7b 0a 7c 09 09 |SIZE; ++|i) {.|..|
|00003df0| 09 69 66 20 28 21 2a 63 | 70 74 72 20 7c 7c 20 2a |.if (!*c|ptr || *|
|00003e00| 63 70 74 72 3d 3d 27 20 | 27 20 7c 7c 20 2a 63 70 |cptr==' |' || *cp|
|00003e10| 74 72 3d 3d 27 5c 74 27 | 20 7c 7c 20 2a 63 70 74 |tr=='\t'| || *cpt|
|00003e20| 72 3d 3d 27 5c 6e 27 0a | 7c 09 09 09 09 7c 7c 20 |r=='\n'.||....|| |
|00003e30| 2a 63 70 74 72 3d 3d 27 | 5c 72 27 20 7c 7c 20 2a |*cptr=='|\r' || *|
|00003e40| 63 70 74 72 3d 3d 27 3b | 27 29 0a 7c 09 09 09 09 |cptr==';|').|....|
|00003e50| 09 62 72 65 61 6b 3b 0a | 7c 09 09 09 74 65 6d 70 |.break;.||...temp|
|00003e60| 5b 69 5d 20 3d 20 2a 28 | 63 70 74 72 2b 2b 29 3b |[i] = *(|cptr++);|
|00003e70| 0a 7c 09 09 7d 0a 7c 09 | 09 74 65 6d 70 5b 69 5d |.|..}.|.|.temp[i]|
|00003e80| 20 3d 20 27 5c 30 27 3b | 0a 7c 09 09 74 6f 6b 5f | = '\0';|.|..tok_|
|00003e90| 76 61 6c 75 65 2e 73 74 | 72 70 74 72 20 3d 20 28 |value.st|rptr = (|
|00003ea0| 63 68 61 72 2a 29 20 67 | 65 74 65 6e 76 28 74 65 |char*) g|etenv(te|
|00003eb0| 6d 70 29 3b 0a 7c 09 09 | 69 66 20 28 21 74 6f 6b |mp);.|..|if (!tok|
|00003ec0| 5f 76 61 6c 75 65 2e 73 | 74 72 70 74 72 29 20 7b |_value.s|trptr) {|
|00003ed0| 0a 7c 09 09 09 74 6f 6b | 5f 76 61 6c 75 65 2e 73 |.|...tok|_value.s|
|00003ee0| 74 72 70 74 72 20 3d 20 | 74 65 6d 70 3b 0a 7c 09 |trptr = |temp;.|.|
|00003ef0| 09 09 73 70 72 69 6e 74 | 66 28 4d 73 67 2c 22 25 |..sprint|f(Msg,"%|
|00003f00| 73 3a 20 6e 6f 20 73 75 | 63 68 20 65 6e 76 69 72 |s: no su|ch envir|
|00003f10| 6f 6e 6d 65 6e 74 20 76 | 61 72 69 61 62 6c 65 22 |onment v|ariable"|
|00003f20| 2c 74 65 6d 70 29 3b 0a | 7c 09 09 09 53 32 3b 0a |,temp);.||...S2;.|
|00003f30| 7c 09 09 09 74 6f 6b 5f | 76 61 6c 75 65 2e 73 74 ||...tok_|value.st|
|00003f40| 72 70 74 72 20 3d 20 22 | 22 3b 0a 7c 09 09 7d 0a |rptr = "|";.|..}.|
|00003f50| 7c 09 09 2a 70 63 70 74 | 72 20 3d 20 63 70 74 72 ||..*pcpt|r = cptr|
|00003f60| 3b 0a 7c 09 09 72 65 74 | 75 72 6e 28 4c 49 54 45 |;.|..ret|urn(LITE|
|00003f70| 52 41 4c 29 3b 0a 7c 09 | 7d 0a 7c 09 09 09 09 09 |RAL);.|.|}.|.....|
|00003f80| 09 2f 2a 20 62 61 63 6b | 2d 71 75 6f 74 65 64 20 |./* back|-quoted |
|00003f90| 73 68 65 6c 6c 20 63 6f | 6d 6d 61 6e 64 20 28 74 |shell co|mmand (t|
|00003fa0| 72 65 61 74 20 6c 69 6b | 65 20 65 6e 76 20 76 61 |reat lik|e env va|
|00003fb0| 72 29 20 2a 2f 0a 7c 09 | 69 66 20 28 2a 63 70 74 |r) */.|.|if (*cpt|
|00003fc0| 72 3d 3d 27 60 27 29 20 | 7b 0a 7c 09 09 2b 2b 63 |r=='`') |{.|..++c|
|00003fd0| 70 74 72 3b 0a 7c 09 09 | 69 20 3d 20 30 3b 0a 7c |ptr;.|..|i = 0;.||
|00003fe0| 09 09 77 68 69 6c 65 20 | 28 2a 63 70 74 72 20 26 |..while |(*cptr &|
|00003ff0| 26 20 2a 63 70 74 72 21 | 3d 27 5c 6e 27 20 26 26 |& *cptr!|='\n' &&|
|00004000| 20 2a 63 70 74 72 21 3d | 27 60 27 20 26 26 20 28 | *cptr!=|'`' && (|
|00004010| 2b 2b 69 29 3c 56 4d 41 | 58 53 49 5a 45 29 0a 7c |++i)<VMA|XSIZE).||
|00004020| 09 09 09 2b 2b 63 70 74 | 72 3b 0a 7c 09 09 69 66 |...++cpt|r;.|..if|
|00004030| 20 28 2a 63 70 74 72 3d | 3d 27 60 27 29 20 7b 0a | (*cptr=|='`') {.|
|00004040| 7c 09 09 09 66 6f 72 20 | 28 69 3d 30 3b 20 69 3c ||...for |(i=0; i<|
|00004050| 56 4d 41 58 53 49 5a 45 | 3b 20 2b 2b 69 29 20 7b |VMAXSIZE|; ++i) {|
|00004060| 09 09 09 2f 2a 20 74 6f | 6b 5f 76 61 6c 75 65 20 |.../* to|k_value |
|00004070| 70 74 72 20 70 6f 69 6e | 74 73 20 2a 2f 0a 7c 09 |ptr poin|ts */.|.|
|00004080| 09 09 09 62 71 63 6d 64 | 5b 69 5d 20 3d 20 74 6f |...bqcmd|[i] = to|
|00004090| 6b 5f 76 61 6c 75 65 2e | 73 74 72 70 74 72 5b 69 |k_value.|strptr[i|
|000040a0| 2b 31 5d 3b 09 2f 2a 20 | 74 6f 20 6c 65 61 64 69 |+1];./* |to leadi|
|000040b0| 6e 67 20 27 60 27 20 2a | 2f 0a 7c 09 09 09 09 69 |ng '`' *|/.|....i|
|000040c0| 66 20 28 62 71 63 6d 64 | 5b 69 5d 3d 3d 27 60 27 |f (bqcmd|[i]=='`'|
|000040d0| 29 20 7b 0a 7c 09 09 09 | 09 09 62 71 63 6d 64 5b |) {.|...|..bqcmd[|
|000040e0| 69 5d 20 3d 20 27 5c 30 | 27 3b 0a 7c 09 09 09 09 |i] = '\0|';.|....|
|000040f0| 09 62 72 65 61 6b 3b 0a | 7c 09 09 09 09 7d 0a 7c |.break;.||....}.||
|00004100| 09 09 09 7d 0a 7c 09 09 | 09 62 71 63 6d 64 5b 69 |...}.|..|.bqcmd[i|
|00004110| 5d 20 3d 20 27 5c 30 27 | 3b 0a 7c 09 09 09 73 69 |] = '\0'|;.|...si|
|00004120| 67 6e 61 6c 28 53 49 47 | 43 4c 44 2c 53 49 47 5f |gnal(SIG|CLD,SIG_|
|00004130| 44 46 4c 29 3b 0a 7c 09 | 09 09 69 66 20 28 28 62 |DFL);.|.|..if ((b|
|00004140| 71 70 69 70 65 3d 70 6f | 70 65 6e 28 62 71 63 6d |qpipe=po|pen(bqcm|
|00004150| 64 2c 22 72 22 29 29 3d | 3d 4e 55 4c 4c 46 29 20 |d,"r"))=|=NULLF) |
|00004160| 7b 0a 7c 09 09 09 09 73 | 70 72 69 6e 74 66 28 4d |{.|....s|printf(M|
|00004170| 73 67 2c 22 25 73 3a 20 | 63 61 6e 6e 6f 74 20 63 |sg,"%s: |cannot c|
|00004180| 72 65 61 74 65 20 70 69 | 70 65 22 2c 62 71 63 6d |reate pi|pe",bqcm|
|00004190| 64 29 3b 0a 7c 09 09 09 | 09 53 5f 61 62 6f 72 74 |d);.|...|.S_abort|
|000041a0| 28 29 3b 0a 7c 09 09 09 | 7d 0a 7c 09 09 09 65 6c |();.|...|}.|...el|
|000041b0| 73 65 20 7b 0a 7c 09 09 | 09 09 74 65 6d 70 5b 30 |se {.|..|..temp[0|
|000041c0| 5d 20 3d 20 27 5c 30 27 | 3b 0a 7c 09 09 09 09 69 |] = '\0'|;.|....i|
|000041d0| 20 3d 20 30 3b 0a 7c 09 | 09 09 09 77 68 69 6c 65 | = 0;.|.|...while|
|000041e0| 20 28 69 3c 3d 56 4d 41 | 58 53 49 5a 45 20 26 26 | (i<=VMA|XSIZE &&|
|000041f0| 20 28 63 3d 66 67 65 74 | 63 28 62 71 70 69 70 65 | (c=fget|c(bqpipe|
|00004200| 29 29 21 3d 45 4f 46 20 | 26 26 20 63 21 3d 27 5c |))!=EOF |&& c!='\|
|00004210| 6e 27 29 0a 7c 09 09 09 | 09 09 74 65 6d 70 5b 69 |n').|...|..temp[i|
|00004220| 2b 2b 5d 20 3d 20 63 3b | 0a 7c 09 09 09 09 66 66 |++] = c;|.|....ff|
|00004230| 6c 75 73 68 28 62 71 70 | 69 70 65 29 3b 0a 7c 09 |lush(bqp|ipe);.|.|
|00004240| 09 09 09 70 63 6c 6f 73 | 65 28 62 71 70 69 70 65 |...pclos|e(bqpipe|
|00004250| 29 3b 0a 7c 09 09 09 09 | 74 65 6d 70 5b 69 5d 20 |);.|....|temp[i] |
|00004260| 3d 20 27 5c 30 27 3b 0a | 7c 09 09 09 09 74 6f 6b |= '\0';.||....tok|
|00004270| 5f 76 61 6c 75 65 2e 73 | 74 72 70 74 72 20 3d 20 |_value.s|trptr = |
|00004280| 74 65 6d 70 3b 0a 7c 09 | 09 09 09 2a 70 63 70 74 |temp;.|.|...*pcpt|
|00004290| 72 20 3d 20 63 70 74 72 | 20 2b 20 31 3b 0a 7c 09 |r = cptr| + 1;.|.|
|000042a0| 09 09 09 72 65 74 75 72 | 6e 28 4c 49 54 45 52 41 |...retur|n(LITERA|
|000042b0| 4c 29 3b 0a 7c 09 09 09 | 7d 0a 7c 09 09 7d 0a 7c |L);.|...|}.|..}.||
|000042c0| 09 09 65 6c 73 65 20 7b | 0a 7c 09 09 09 73 70 72 |..else {|.|...spr|
|000042d0| 69 6e 74 66 28 4d 73 67 | 2c 22 55 6e 6d 61 74 63 |intf(Msg|,"Unmatc|
|000042e0| 68 65 64 20 62 61 63 6b | 2d 71 75 6f 74 65 3a 22 |hed back|-quote:"|
|000042f0| 29 3b 0a 7c 09 09 09 53 | 5f 61 62 6f 72 74 28 29 |);.|...S|_abort()|
|00004300| 3b 0a 7c 09 09 7d 0a 7c | 09 7d 0a 7c 09 09 09 09 |;.|..}.||.}.|....|
|00004310| 09 09 09 09 2f 2a 20 64 | 69 61 6c 6f 75 74 20 70 |..../* d|ialout p|
|00004320| 6f 72 74 20 6e 61 6d 65 | 20 2a 2f 0a 7c 09 69 66 |ort name| */.|.if|
|00004330| 20 28 21 73 74 72 6e 63 | 6d 70 28 63 70 74 72 2c | (!strnc|mp(cptr,|
|00004340| 22 70 6f 72 74 6e 61 6d | 65 22 2c 38 29 29 20 7b |"portnam|e",8)) {|
|00004350| 0a 7c 09 09 74 6f 6b 5f | 76 61 6c 75 65 2e 73 74 |.|..tok_|value.st|
|00004360| 72 70 74 72 20 3d 6d 70 | 6f 72 74 28 4e 55 4c 4c |rptr =mp|ort(NULL|
|00004370| 53 29 3b 0a 7c 09 09 2a | 70 63 70 74 72 20 2b 3d |S);.|..*|pcptr +=|
|00004380| 20 38 3b 0a 7c 09 09 72 | 65 74 75 72 6e 28 4c 49 | 8;.|..r|eturn(LI|
|00004390| 54 45 52 41 4c 29 3b 0a | 7c 09 7d 0a 7c 09 09 09 |TERAL);.||.}.|...|
|000043a0| 09 09 09 09 09 2f 2a 20 | 6c 65 61 64 69 6e 67 20 |...../* |leading |
|000043b0| 68 79 70 68 65 6e 2c 20 | 6d 61 79 62 65 20 61 20 |hyphen, |maybe a |
|000043c0| 6e 65 67 61 74 69 76 65 | 20 6e 75 6d 62 65 72 3f |negative| number?|
|000043d0| 20 2a 2f 0a 7c 09 69 66 | 20 28 2a 63 70 74 72 3d | */.|.if| (*cptr=|
|000043e0| 3d 27 2d 27 29 20 7b 0a | 7c 09 09 6e 65 67 70 6f |='-') {.||..negpo|
|000043f0| 73 20 3d 20 28 2d 31 29 | 3b 0a 7c 09 09 2b 2b 63 |s = (-1)|;.|..++c|
|00004400| 70 74 72 3b 0a 7c 09 7d | 0a 7c 09 09 09 09 09 09 |ptr;.|.}|.|......|
|00004410| 09 09 2f 2a 20 73 74 72 | 69 6e 67 20 62 65 67 69 |../* str|ing begi|
|00004420| 6e 6e 69 6e 67 20 77 69 | 74 68 20 61 20 64 69 67 |nning wi|th a dig|
|00004430| 69 74 20 2a 2f 0a 7c 09 | 69 66 20 28 69 73 64 69 |it */.|.|if (isdi|
|00004440| 67 69 74 28 2a 63 70 74 | 72 29 29 20 7b 0a 7c 09 |git(*cpt|r)) {.|.|
|00004450| 09 6e 76 61 6c 75 65 20 | 3d 20 28 2a 63 70 74 72 |.nvalue |= (*cptr|
|00004460| 20 2d 20 27 30 27 29 20 | 2a 20 6e 65 67 70 6f 73 | - '0') |* negpos|
|00004470| 3b 0a 7c 09 09 77 68 69 | 6c 65 20 28 2a 28 2b 2b |;.|..whi|le (*(++|
|00004480| 63 70 74 72 29 29 20 7b | 0a 7c 09 09 09 69 66 20 |cptr)) {|.|...if |
|00004490| 28 69 73 64 69 67 69 74 | 28 2a 63 70 74 72 29 29 |(isdigit|(*cptr))|
|000044a0| 20 7b 0a 7c 09 09 09 09 | 6e 76 61 6c 75 65 20 2a | {.|....|nvalue *|
|000044b0| 3d 20 31 30 3b 0a 7c 09 | 09 09 09 6e 76 61 6c 75 |= 10;.|.|...nvalu|
|000044c0| 65 20 2b 3d 20 28 2a 63 | 70 74 72 20 2d 20 27 30 |e += (*c|ptr - '0|
|000044d0| 27 29 3b 0a 7c 09 09 09 | 09 69 66 20 28 6e 76 61 |');.|...|.if (nva|
|000044e0| 6c 75 65 3e 30 29 20 6e | 76 61 6c 75 65 20 2a 3d |lue>0) n|value *=|
|000044f0| 20 6e 65 67 70 6f 73 3b | 0a 7c 09 09 09 09 63 6f | negpos;|.|....co|
|00004500| 6e 74 69 6e 75 65 3b 0a | 7c 09 09 09 7d 0a 7c 09 |ntinue;.||...}.|.|
|00004510| 09 09 65 6c 73 65 20 69 | 66 20 28 73 74 72 63 68 |..else i|f (strch|
|00004520| 72 28 22 20 5c 74 5c 6e | 3b 22 2c 2a 63 70 74 72 |r(" \t\n|;",*cptr|
|00004530| 29 29 20 7b 0a 7c 09 09 | 09 09 74 6f 6b 5f 76 61 |)) {.|..|..tok_va|
|00004540| 6c 75 65 2e 6e 75 6d 76 | 61 6c 20 3d 20 6e 76 61 |lue.numv|al = nva|
|00004550| 6c 75 65 3b 0a 7c 09 09 | 09 09 2a 70 63 70 74 72 |lue;.|..|..*pcptr|
|00004560| 20 3d 20 63 70 74 72 3b | 0a 7c 09 09 09 09 72 65 | = cptr;|.|....re|
|00004570| 74 75 72 6e 28 4e 55 4d | 42 45 52 29 3b 0a 7c 09 |turn(NUM|BER);.|.|
|00004580| 09 09 7d 0a 7c 09 09 09 | 73 70 72 69 6e 74 66 28 |..}.|...|sprintf(|
|00004590| 4d 73 67 2c 22 56 61 72 | 69 61 62 6c 65 20 6e 61 |Msg,"Var|iable na|
|000045a0| 6d 65 20 63 61 6e 6e 6f | 74 20 62 65 67 69 6e 20 |me canno|t begin |
|000045b0| 77 69 74 68 20 61 20 64 | 69 67 69 74 3a 20 22 29 |with a d|igit: ")|
|000045c0| 3b 0a 7c 09 09 09 53 5f | 61 62 6f 72 74 28 29 3b |;.|...S_|abort();|
|000045d0| 0a 7c 09 09 7d 0a 7c 09 | 09 74 6f 6b 5f 76 61 6c |.|..}.|.|.tok_val|
|000045e0| 75 65 2e 6e 75 6d 76 61 | 6c 20 3d 20 6e 76 61 6c |ue.numva|l = nval|
|000045f0| 75 65 3b 0a 7c 09 09 2a | 70 63 70 74 72 20 3d 20 |ue;.|..*|pcptr = |
|00004600| 63 70 74 72 3b 0a 7c 09 | 09 72 65 74 75 72 6e 28 |cptr;.|.|.return(|
|00004610| 4e 55 4d 42 45 52 29 3b | 0a 7c 09 7d 0a 7c 09 09 |NUMBER);|.|.}.|..|
|00004620| 09 09 09 2f 2a 20 63 68 | 65 63 6b 20 66 6f 72 20 |.../* ch|eck for |
|00004630| 27 2d 6e 27 20 73 77 69 | 74 63 68 20 66 6f 72 20 |'-n' swi|tch for |
|00004640| 65 63 68 6f 20 28 74 79 | 70 65 20 45 46 4c 41 47 |echo (ty|pe EFLAG|
|00004650| 29 20 2a 2f 0a 7c 09 69 | 66 20 28 6e 65 67 70 6f |) */.|.i|f (negpo|
|00004660| 73 3c 30 29 20 7b 0a 7c | 09 09 69 66 20 28 2a 63 |s<0) {.||..if (*c|
|00004670| 70 74 72 3d 3d 27 4e 27 | 20 7c 7c 20 2a 63 70 74 |ptr=='N'| || *cpt|
|00004680| 72 3d 3d 27 6e 27 29 20 | 7b 0a 7c 09 09 09 77 68 |r=='n') |{.|...wh|
|00004690| 69 6c 65 20 28 2a 63 70 | 74 72 20 26 26 20 21 73 |ile (*cp|tr && !s|
|000046a0| 74 72 63 68 72 28 22 20 | 5c 74 3b 5c 6e 22 2c 2a |trchr(" |\t;\n",*|
|000046b0| 63 70 74 72 29 29 20 2b | 2b 63 70 74 72 3b 0a 7c |cptr)) +|+cptr;.||
|000046c0| 09 09 09 2a 70 63 70 74 | 72 20 3d 20 63 70 74 72 |...*pcpt|r = cptr|
|000046d0| 3b 0a 7c 09 09 09 72 65 | 74 75 72 6e 28 45 46 4c |;.|...re|turn(EFL|
|000046e0| 41 47 29 3b 0a 7c 09 09 | 7d 0a 7c 09 09 73 70 72 |AG);.|..|}.|..spr|
|000046f0| 69 6e 74 66 28 4d 73 67 | 2c 22 42 61 64 20 6f 70 |intf(Msg|,"Bad op|
|00004700| 74 69 6f 6e 20 74 6f 20 | 45 43 48 4f 20 63 6f 6d |tion to |ECHO com|
|00004710| 6d 61 6e 64 22 29 3b 0a | 7c 09 09 53 5f 61 62 6f |mand");.||..S_abo|
|00004720| 72 74 28 29 3b 0a 7c 09 | 7d 0a 7c 09 09 09 09 09 |rt();.|.|}.|.....|
|00004730| 09 09 2f 2a 20 69 6d 70 | 65 72 6d 69 73 73 69 62 |../* imp|ermissib|
|00004740| 6c 65 20 69 6e 69 74 69 | 61 6c 20 63 68 61 72 61 |le initi|al chara|
|00004750| 63 74 65 72 20 2a 2f 0a | 7c 09 69 66 20 28 21 69 |cter */.||.if (!i|
|00004760| 73 61 6c 70 68 61 28 2a | 63 70 74 72 29 29 20 7b |salpha(*|cptr)) {|
|00004770| 0a 7c 09 09 73 70 72 69 | 6e 74 66 28 4d 73 67 2c |.|..spri|ntf(Msg,|
|00004780| 22 62 61 64 20 69 6e 69 | 74 69 61 6c 20 63 68 61 |"bad ini|tial cha|
|00004790| 72 61 63 74 65 72 3a 20 | 25 63 22 2c 20 2a 63 70 |racter: |%c", *cp|
|000047a0| 74 72 29 3b 0a 7c 09 09 | 53 5f 61 62 6f 72 74 28 |tr);.|..|S_abort(|
|000047b0| 29 3b 0a 7c 09 7d 0a 7c | 0a 7c 09 09 2f 2a 20 72 |);.|.}.||.|../* r|
|000047c0| 65 6d 65 6d 62 65 72 20 | 74 68 61 74 20 74 6f 6b |emember |that tok|
|000047d0| 5f 76 61 6c 75 65 2e 73 | 74 72 70 74 72 20 70 6f |_value.s|trptr po|
|000047e0| 69 6e 74 73 20 74 6f 20 | 73 74 61 72 74 20 6f 66 |ints to |start of|
|000047f0| 20 74 6f 6b 65 6e 20 2a | 2f 0a 7c 09 66 6f 72 20 | token *|/.|.for |
|00004800| 28 69 3d 31 3b 20 69 3c | 28 56 4e 41 4d 45 4c 45 |(i=1; i<|(VNAMELE|
|00004810| 4e 2b 31 29 3b 20 2b 2b | 69 29 20 7b 09 09 2f 2a |N+1); ++|i) {../*|
|00004820| 20 6a 75 6d 70 20 74 6f | 20 6e 65 78 74 20 66 69 | jump to| next fi|
|00004830| 65 6c 64 20 73 65 70 61 | 72 61 74 6f 72 20 2a 2f |eld sepa|rator */|
|00004840| 0a 7c 09 09 2b 2b 63 70 | 74 72 3b 0a 7c 09 09 69 |.|..++cp|tr;.|..i|
|00004850| 66 20 28 2a 63 70 74 72 | 3d 3d 27 5c 30 27 20 7c |f (*cptr|=='\0' ||
|00004860| 7c 20 73 74 72 63 68 72 | 28 22 20 5c 74 5c 6e 3b || strchr|(" \t\n;|
|00004870| 22 2c 2a 63 70 74 72 29 | 29 20 62 72 65 61 6b 3b |",*cptr)|) break;|
|00004880| 0a 7c 09 7d 0a 7c 09 69 | 66 20 28 69 3e 56 4e 41 |.|.}.|.i|f (i>VNA|
|00004890| 4d 45 4c 45 4e 29 20 7b | 09 09 09 09 09 09 2f 2a |MELEN) {|....../*|
|000048a0| 20 77 6f 72 64 20 74 6f | 6f 20 6c 6f 6e 67 20 2a | word to|o long *|
|000048b0| 2f 0a 7c 09 09 73 70 72 | 69 6e 74 66 28 4d 73 67 |/.|..spr|intf(Msg|
|000048c0| 2c 22 56 61 72 69 61 62 | 6c 65 20 6e 61 6d 65 20 |,"Variab|le name |
|000048d0| 74 6f 6f 20 6c 6f 6e 67 | 22 29 3b 0a 7c 09 09 53 |too long|");.|..S|
|000048e0| 5f 61 62 6f 72 74 28 29 | 3b 0a 7c 09 7d 0a 7c 09 |_abort()|;.|.}.|.|
|000048f0| 73 74 72 6e 63 70 79 28 | 6c 61 74 6f 6b 65 6e 2c |strncpy(|latoken,|
|00004900| 74 6f 6b 5f 76 61 6c 75 | 65 2e 73 74 72 70 74 72 |tok_valu|e.strptr|
|00004910| 2c 69 29 3b 20 09 2f 2a | 20 63 6f 70 79 20 77 6f |,i); ./*| copy wo|
|00004920| 72 64 20 74 6f 20 61 72 | 72 61 79 20 27 6c 61 74 |rd to ar|ray 'lat|
|00004930| 6f 6b 65 6e 27 20 2a 2f | 0a 7c 09 6c 61 74 6f 6b |oken' */|.|.latok|
|00004940| 65 6e 5b 69 5d 20 3d 20 | 27 5c 30 27 3b 0a 7c 09 |en[i] = |'\0';.|.|
|00004950| 6c 63 5f 77 6f 72 64 28 | 6c 61 74 6f 6b 65 6e 29 |lc_word(|latoken)|
|00004960| 3b 09 09 09 09 09 09 2f | 2a 20 63 76 74 20 74 6f |;....../|* cvt to|
|00004970| 20 6c 6f 77 65 72 63 61 | 73 65 20 2a 2f 0a 7c 09 | lowerca|se */.|.|
|00004980| 09 09 09 09 09 09 09 09 | 09 09 2f 2a 20 73 63 72 |........|../* scr|
|00004990| 69 70 74 20 6b 65 79 77 | 6f 72 64 73 20 2a 2f 0a |ipt keyw|ords */.|
|000049a0| 7c 09 09 09 09 09 2f 2a | 20 73 63 61 6e 20 74 61 ||...../*| scan ta|
|000049b0| 62 6c 65 20 66 6f 72 20 | 6b 65 79 77 6f 72 64 20 |ble for |keyword |
|000049c0| 6d 61 74 63 68 20 2a 2f | 0a 7c 09 66 6f 72 20 28 |match */|.|.for (|
|000049d0| 69 3d 30 3b 20 2a 28 73 | 5f 74 6f 6b 74 61 62 5b |i=0; *(s|_toktab[|
|000049e0| 69 5d 2e 6e 61 6d 65 29 | 20 26 26 20 73 74 72 63 |i].name)| && strc|
|000049f0| 6d 70 28 6c 61 74 6f 6b | 65 6e 2c 73 5f 74 6f 6b |mp(latok|en,s_tok|
|00004a00| 74 61 62 5b 69 5d 2e 6e | 61 6d 65 29 3b 20 2b 2b |tab[i].n|ame); ++|
|00004a10| 69 29 0a 7c 09 09 3b 0a | 7c 09 69 66 20 28 2a 73 |i).|..;.||.if (*s|
|00004a20| 5f 74 6f 6b 74 61 62 5b | 69 5d 2e 6e 61 6d 65 29 |_toktab[|i].name)|
|00004a30| 09 7b 09 09 09 09 2f 2a | 20 6c 63 20 6b 65 79 77 |.{..../*| lc keyw|
|00004a40| 6f 72 64 20 72 65 63 6f | 67 6e 69 7a 65 64 20 2a |ord reco|gnized *|
|00004a50| 2f 0a 7c 09 09 69 66 20 | 28 73 5f 74 6f 6b 74 61 |/.|..if |(s_tokta|
|00004a60| 62 5b 69 5d 2e 74 6f 6b | 65 6e 3d 3d 53 54 52 55 |b[i].tok|en==STRU|
|00004a70| 45 29 0a 7c 09 09 09 74 | 6f 6b 5f 76 61 6c 75 65 |E).|...t|ok_value|
|00004a80| 2e 6e 75 6d 76 61 6c 20 | 3d 20 54 52 55 45 3b 0a |.numval |= TRUE;.|
|00004a90| 7c 09 09 69 66 20 28 73 | 5f 74 6f 6b 74 61 62 5b ||..if (s|_toktab[|
|00004aa0| 69 5d 2e 74 6f 6b 65 6e | 3d 3d 53 46 41 4c 53 45 |i].token|==SFALSE|
|00004ab0| 29 0a 7c 09 09 09 74 6f | 6b 5f 76 61 6c 75 65 2e |).|...to|k_value.|
|00004ac0| 6e 75 6d 76 61 6c 20 3d | 20 46 41 4c 53 45 3b 0a |numval =| FALSE;.|
|00004ad0| 7c 09 09 2a 70 63 70 74 | 72 20 3d 20 63 70 74 72 ||..*pcpt|r = cptr|
|00004ae0| 3b 0a 7c 09 09 72 65 74 | 75 72 6e 28 73 5f 74 6f |;.|..ret|urn(s_to|
|00004af0| 6b 74 61 62 5b 69 5d 2e | 74 6f 6b 65 6e 29 3b 0a |ktab[i].|token);.|
|00004b00| 7c 09 7d 0a 7c 09 09 09 | 09 09 09 09 09 09 2f 2a ||.}.|...|....../*|
|00004b10| 20 73 79 73 74 65 6d 20 | 70 72 69 6d 69 74 69 76 | system |primitiv|
|00004b20| 65 20 28 41 43 54 49 4f | 4e 29 20 2a 2f 0a 7c 09 |e (ACTIO|N) */.|.|
|00004b30| 09 09 09 09 2f 2a 20 73 | 63 61 6e 20 74 61 62 6c |..../* s|can tabl|
|00004b40| 65 20 66 6f 72 20 6b 65 | 79 77 6f 72 64 20 6d 61 |e for ke|yword ma|
|00004b50| 74 63 68 20 2a 2f 0a 7c | 09 66 6f 72 20 28 69 3d |tch */.||.for (i=|
|00004b60| 30 3b 73 5f 61 63 74 74 | 61 62 5b 69 5d 2e 6e 61 |0;s_actt|ab[i].na|
|00004b70| 6d 65 20 21 3d 20 4e 55 | 4c 4c 53 20 26 26 20 73 |me != NU|LLS && s|
|00004b80| 74 72 63 6d 70 28 6c 61 | 74 6f 6b 65 6e 2c 73 5f |trcmp(la|token,s_|
|00004b90| 61 63 74 74 61 62 5b 69 | 5d 2e 6e 61 6d 65 29 3b |acttab[i|].name);|
|00004ba0| 2b 2b 69 29 0a 7c 09 09 | 3b 0a 7c 09 69 66 20 28 |++i).|..|;.|.if (|
|00004bb0| 73 5f 61 63 74 74 61 62 | 5b 69 5d 2e 6e 61 6d 65 |s_acttab|[i].name|
|00004bc0| 20 21 3d 20 4e 55 4c 4c | 53 29 20 7b 09 09 2f 2a | != NULL|S) {../*|
|00004bd0| 20 70 72 69 6d 69 74 69 | 76 65 20 72 65 63 6f 67 | primiti|ve recog|
|00004be0| 6e 69 7a 65 64 20 2a 2f | 0a 7c 09 09 74 6f 6b 5f |nized */|.|..tok_|
|00004bf0| 76 61 6c 75 65 2e 66 75 | 6e 63 70 74 72 20 3d 20 |value.fu|ncptr = |
|00004c00| 73 5f 61 63 74 74 61 62 | 5b 69 5d 2e 66 75 6e 63 |s_acttab|[i].func|
|00004c10| 70 74 72 3b 0a 7c 09 09 | 2a 70 63 70 74 72 20 3d |ptr;.|..|*pcptr =|
|00004c20| 20 63 70 74 72 3b 0a 7c | 09 09 72 65 74 75 72 6e | cptr;.||..return|
|00004c30| 28 41 43 54 49 4f 4e 29 | 3b 0a 7c 09 7d 0a 7c 09 |(ACTION)|;.|.}.|.|
|00004c40| 09 09 09 09 09 09 2f 2a | 20 75 73 65 72 20 76 61 |....../*| user va|
|00004c50| 72 69 61 62 6c 65 20 6e | 61 6d 65 20 2a 2f 0a 7c |riable n|ame */.||
|00004c60| 09 69 66 20 28 28 76 61 | 72 70 74 72 3d 66 69 6e |.if ((va|rptr=fin|
|00004c70| 64 76 61 72 28 6c 61 74 | 6f 6b 65 6e 29 29 21 3d |dvar(lat|oken))!=|
|00004c80| 4e 55 4c 4c 56 29 20 7b | 09 20 2f 2a 20 65 78 69 |NULLV) {|. /* exi|
|00004c90| 73 74 69 6e 67 20 75 73 | 65 72 20 76 61 72 69 61 |sting us|er varia|
|00004ca0| 62 6c 65 20 2a 2f 0a 7c | 09 09 74 6f 6b 5f 76 61 |ble */.||..tok_va|
|00004cb0| 6c 75 65 2e 76 61 72 70 | 74 72 20 3d 20 76 61 72 |lue.varp|tr = var|
|00004cc0| 70 74 72 3b 0a 7c 09 09 | 2a 70 63 70 74 72 20 3d |ptr;.|..|*pcptr =|
|00004cd0| 20 63 70 74 72 3b 0a 7c | 09 09 72 65 74 75 72 6e | cptr;.||..return|
|00004ce0| 28 56 41 52 4e 41 4d 45 | 29 3b 0a 7c 09 7d 0a 7c |(VARNAME|);.|.}.||
|00004cf0| 09 09 2f 2a 20 63 6f 75 | 6c 64 20 74 68 69 73 20 |../* cou|ld this |
|00004d00| 62 65 20 74 68 65 20 6e | 61 6d 65 20 6f 66 20 61 |be the n|ame of a|
|00004d10| 20 6e 65 77 20 76 61 72 | 69 61 62 6c 65 3f 20 2a | new var|iable? *|
|00004d20| 2f 0a 7c 09 74 6f 6b 5f | 76 61 6c 75 65 2e 73 74 |/.|.tok_|value.st|
|00004d30| 72 70 74 72 20 3d 20 6c | 61 74 6f 6b 65 6e 3b 09 |rptr = l|atoken;.|
|00004d40| 2f 2a 20 6a 75 73 74 20 | 69 6e 20 63 61 73 65 20 |/* just |in case |
|00004d50| 74 68 69 73 20 69 73 20 | 27 6f 6e 27 2c 20 27 6f |this is |'on', 'o|
|00004d60| 66 66 27 2c 20 65 74 63 | 2e 20 2a 2f 0a 7c 09 69 |ff', etc|. */.|.i|
|00004d70| 66 20 28 73 65 74 76 61 | 72 28 6c 61 74 6f 6b 65 |f (setva|r(latoke|
|00004d80| 6e 2c 22 22 2c 56 43 48 | 41 52 29 3d 3d 46 41 49 |n,"",VCH|AR)==FAI|
|00004d90| 4c 29 09 09 2f 2a 20 63 | 61 6e 27 74 20 63 72 65 |L)../* c|an't cre|
|00004da0| 61 74 65 20 69 74 20 2a | 2f 0a 7c 09 09 72 65 74 |ate it *|/.|..ret|
|00004db0| 75 72 6e 28 54 54 45 52 | 52 4f 52 29 3b 0a 7c 09 |urn(TTER|ROR);.|.|
|00004dc0| 69 66 20 28 28 76 61 72 | 70 74 72 3d 66 69 6e 64 |if ((var|ptr=find|
|00004dd0| 76 61 72 28 6c 61 74 6f | 6b 65 6e 29 29 3d 3d 4e |var(lato|ken))==N|
|00004de0| 55 4c 4c 56 29 09 2f 2a | 20 63 61 6e 27 74 20 72 |ULLV)./*| can't r|
|00004df0| 65 74 72 69 65 76 65 20 | 69 74 20 2a 2f 0a 7c 09 |etrieve |it */.|.|
|00004e00| 09 72 65 74 75 72 6e 28 | 54 54 45 52 52 4f 52 29 |.return(|TTERROR)|
|00004e10| 3b 0a 7c 09 65 6c 73 65 | 20 7b 09 09 09 09 09 09 |;.|.else| {......|
|00004e20| 09 09 09 2f 2a 20 67 6f | 74 20 69 74 20 2a 2f 0a |.../* go|t it */.|
|00004e30| 7c 09 09 74 6f 6b 5f 76 | 61 6c 75 65 2e 76 61 72 ||..tok_v|alue.var|
|00004e40| 70 74 72 20 3d 20 76 61 | 72 70 74 72 3b 0a 7c 09 |ptr = va|rptr;.|.|
|00004e50| 09 2a 70 63 70 74 72 20 | 3d 20 63 70 74 72 3b 0a |.*pcptr |= cptr;.|
|00004e60| 7c 09 09 72 65 74 75 72 | 6e 28 56 41 52 4e 41 4d ||..retur|n(VARNAM|
|00004e70| 45 29 3b 0a 7c 09 7d 0a | 7c 7d 0a 7c 0a 7c 2f 2a |E);.|.}.||}.|.|/*|
|00004e80| 09 09 75 74 69 6c 69 74 | 79 20 72 6f 75 74 69 6e |..utilit|y routin|
|00004e90| 65 73 20 63 61 6c 6c 65 | 64 20 62 79 20 53 5f 70 |es calle|d by S_p|
|00004ea0| 61 72 73 65 28 29 20 2a | 2f 0a 7c 0a 7c 2f 2a 09 |arse() *|/.|.|/*.|
|00004eb0| 53 5f 61 66 66 69 72 6d | 20 69 73 20 61 20 70 6c |S_affirm| is a pl|
|00004ec0| 61 63 65 68 6f 6c 64 65 | 72 2e 20 49 74 27 73 20 |aceholde|r. It's |
|00004ed0| 74 68 65 20 66 75 6e 63 | 74 69 6f 6e 20 74 6f 20 |the func|tion to |
|00004ee0| 67 65 74 20 61 20 79 65 | 73 20 6f 72 20 6e 6f 0a |get a ye|s or no.|
|00004ef0| 7c 09 72 65 73 70 6f 6e | 73 65 20 66 72 6f 6d 20 ||.respon|se from |
|00004f00| 74 68 65 20 75 73 65 72 | 2e 0a 7c 2a 2f 0a 7c 73 |the user|..|*/.|s|
|00004f10| 74 61 74 69 63 20 53 5f | 61 66 66 69 72 6d 28 29 |tatic S_|affirm()|
|00004f20| 0a 7c 7b 0a 7c 09 63 68 | 61 72 20 63 2c 20 6a 75 |.|{.|.ch|ar c, ju|
|00004f30| 6e 6b 3b 0a 7c 0a 7c 09 | 63 20 3d 20 67 65 74 63 |nk;.|.|.|c = getc|
|00004f40| 68 61 72 28 29 3b 0a 7c | 09 66 70 75 74 63 28 63 |har();.||.fputc(c|
|00004f50| 2c 74 66 70 29 3b 0a 7c | 09 77 68 69 6c 65 20 28 |,tfp);.||.while (|
|00004f60| 28 6a 75 6e 6b 3d 67 65 | 74 63 68 61 72 28 29 29 |(junk=ge|tchar())|
|00004f70| 21 3d 27 5c 6e 27 20 26 | 26 20 6a 75 6e 6b 21 3d |!='\n' &|& junk!=|
|00004f80| 27 5c 72 27 29 20 7b 0a | 7c 09 09 66 70 75 74 63 |'\r') {.||..fputc|
|00004f90| 28 6a 75 6e 6b 2c 74 66 | 70 29 3b 0a 7c 09 7d 0a |(junk,tf|p);.|.}.|
|00004fa0| 7c 09 66 70 75 74 63 28 | 27 5c 6e 27 2c 74 66 70 ||.fputc(|'\n',tfp|
|00004fb0| 29 3b 0a 7c 09 72 65 74 | 75 72 6e 28 63 3d 3d 27 |);.|.ret|urn(c=='|
|00004fc0| 79 27 20 7c 7c 20 63 3d | 3d 27 59 27 29 3b 0a 7c |y' || c=|='Y');.||
|00004fd0| 7d 0a 7c 0a 7c 2f 2a 09 | 53 5f 61 64 64 73 75 62 |}.|.|/*.|S_addsub|
|00004fe0| 20 69 6e 63 72 65 6d 65 | 6e 74 73 20 6f 72 20 64 | increme|nts or d|
|00004ff0| 65 63 72 65 6d 65 6e 74 | 73 20 61 20 6e 75 6d 65 |ecrement|s a nume|
|00005000| 72 69 63 20 76 61 72 69 | 61 62 6c 65 2e 0a 7c 09 |ric vari|able..|.|
|00005010| 49 74 20 61 73 73 75 6d | 65 73 20 74 68 61 74 20 |It assum|es that |
|00005020| 73 69 6e 63 65 20 74 68 | 65 20 49 4e 43 52 20 6f |since th|e INCR o|
|00005030| 72 20 44 45 43 52 20 64 | 69 72 65 63 74 69 76 65 |r DECR d|irective|
|00005040| 73 20 63 61 6c 6c 0a 7c | 09 6c 65 78 61 6e 28 29 |s call.||.lexan()|
|00005050| 20 66 6f 72 20 74 68 65 | 20 76 61 72 69 61 62 6c | for the| variabl|
|00005060| 65 20 6a 75 73 74 20 62 | 65 66 6f 72 65 20 63 6f |e just b|efore co|
|00005070| 6d 69 6e 67 20 68 65 72 | 65 2c 20 74 68 65 0a 7c |ming her|e, the.||
|00005080| 09 74 6f 6b 5f 76 61 6c | 75 65 20 73 74 72 75 63 |.tok_val|ue struc|
|00005090| 74 75 72 65 20 63 6f 6e | 74 61 69 6e 73 20 61 20 |ture con|tains a |
|000050a0| 70 6f 69 6e 74 65 72 20 | 74 6f 20 74 68 65 20 76 |pointer |to the v|
|000050b0| 61 72 69 61 62 6c 65 0a | 7c 09 77 68 6f 73 65 20 |ariable.||.whose |
|000050c0| 76 61 6c 75 65 20 69 73 | 20 74 6f 20 62 65 20 63 |value is| to be c|
|000050d0| 68 61 6e 67 65 64 2e 0a | 7c 2a 2f 0a 7c 73 74 61 |hanged..||*/.|sta|
|000050e0| 74 69 63 20 53 5f 61 64 | 64 73 75 62 28 64 69 72 |tic S_ad|dsub(dir|
|000050f0| 65 63 74 69 6f 6e 29 0a | 7c 69 6e 74 20 64 69 72 |ection).||int dir|
|00005100| 65 63 74 69 6f 6e 3b 0a | 7c 7b 0a 7c 09 6c 6f 6e |ection;.||{.|.lon|
|00005110| 67 20 6f 6c 64 76 61 6c | 20 3d 20 74 6f 6b 5f 76 |g oldval| = tok_v|
|00005120| 61 6c 75 65 2e 76 61 72 | 70 74 72 2d 3e 75 2e 6e |alue.var|ptr->u.n|
|00005130| 75 6d 3b 0a 7c 09 6f 6c | 64 76 61 6c 20 2b 3d 20 |um;.|.ol|dval += |
|00005140| 64 69 72 65 63 74 69 6f | 6e 3b 0a 7c 0a 7c 09 69 |directio|n;.|.|.i|
|00005150| 66 20 28 73 65 74 76 61 | 72 28 74 6f 6b 5f 76 61 |f (setva|r(tok_va|
|00005160| 6c 75 65 2e 76 61 72 70 | 74 72 2d 3e 6e 61 6d 65 |lue.varp|tr->name|
|00005170| 2c 26 6f 6c 64 76 61 6c | 2c 56 4e 55 4d 29 3d 3d |,&oldval|,VNUM)==|
|00005180| 46 41 49 4c 29 20 7b 0a | 7c 09 09 73 70 72 69 6e |FAIL) {.||..sprin|
|00005190| 74 66 28 4d 73 67 2c 22 | 45 72 72 6f 72 20 73 65 |tf(Msg,"|Error se|
|000051a0| 74 74 69 6e 67 20 76 61 | 72 69 61 62 6c 65 20 27 |tting va|riable '|
|000051b0| 25 73 27 22 2c 20 74 6f | 6b 5f 76 61 6c 75 65 2e |%s'", to|k_value.|
|000051c0| 76 61 72 70 74 72 2d 3e | 6e 61 6d 65 29 3b 0a 7c |varptr->|name);.||
|000051d0| 09 09 53 5f 61 62 6f 72 | 74 28 29 3b 0a 7c 09 7d |..S_abor|t();.|.}|
|000051e0| 0a 7c 09 72 65 74 75 72 | 6e 28 74 6f 6b 5f 76 61 |.|.retur|n(tok_va|
|000051f0| 6c 75 65 2e 76 61 72 70 | 74 72 2d 3e 75 2e 6e 75 |lue.varp|tr->u.nu|
|00005200| 6d 20 3f 20 54 52 55 45 | 20 3a 20 46 41 4c 53 45 |m ? TRUE| : FALSE|
|00005210| 29 3b 0a 7c 7d 0a 7c 0a | 7c 2f 2a 09 53 5f 71 73 |);.|}.|.||/*.S_qs|
|00005220| 74 72 69 70 20 72 65 74 | 75 72 6e 73 20 61 20 70 |trip ret|urns a p|
|00005230| 6f 69 6e 74 65 72 20 74 | 6f 20 61 20 28 73 74 61 |ointer t|o a (sta|
|00005240| 74 69 63 29 20 73 74 72 | 69 6e 67 20 77 69 74 68 |tic) str|ing with|
|00005250| 20 6c 65 61 64 69 6e 67 | 20 61 6e 64 0a 7c 09 74 | leading| and.|.t|
|00005260| 72 61 69 6c 69 6e 67 20 | 64 6f 75 62 6c 65 2d 71 |railing |double-q|
|00005270| 75 6f 74 65 20 6d 61 72 | 6b 73 20 72 65 6d 6f 76 |uote mar|ks remov|
|00005280| 65 64 2e 20 49 66 20 74 | 68 65 20 73 74 72 69 6e |ed. If t|he strin|
|00005290| 67 20 68 61 70 70 65 6e | 73 20 74 6f 0a 7c 09 6c |g happen|s to.|.l|
|000052a0| 61 63 6b 20 61 20 6c 65 | 61 64 69 6e 67 20 6f 72 |ack a le|ading or|
|000052b0| 20 74 72 61 69 6c 69 6e | 67 20 64 6f 75 62 6c 65 | trailin|g double|
|000052c0| 2d 71 75 6f 74 65 20 6d | 61 72 6b 2c 20 74 68 65 |-quote m|ark, the|
|000052d0| 6e 20 74 68 65 20 73 74 | 72 69 6e 67 0a 7c 09 77 |n the st|ring.|.w|
|000052e0| 69 6c 6c 20 62 65 20 72 | 65 74 75 72 6e 65 64 20 |ill be r|eturned |
|000052f0| 77 69 74 68 20 69 74 73 | 20 62 65 67 69 6e 6e 69 |with its| beginni|
|00005300| 6e 67 20 75 6e 63 68 61 | 6e 67 65 64 2c 20 61 6e |ng uncha|nged, an|
|00005310| 64 20 69 74 73 20 6c 65 | 6e 67 74 68 0a 7c 09 65 |d its le|ngth.|.e|
|00005320| 71 75 61 6c 20 74 6f 20 | 56 4d 41 58 53 49 5a 45 |qual to |VMAXSIZE|
|00005330| 20 6f 72 20 74 68 65 20 | 6c 65 6e 67 74 68 20 6f | or the |length o|
|00005340| 66 20 74 68 65 20 73 74 | 72 69 6e 67 2c 20 77 68 |f the st|ring, wh|
|00005350| 69 63 68 65 76 65 72 20 | 69 73 0a 7c 09 73 68 6f |ichever |is.|.sho|
|00005360| 72 74 65 72 2e 20 44 6f | 75 62 6c 65 2d 71 75 6f |rter. Do|uble-quo|
|00005370| 74 65 20 6d 61 72 6b 73 | 20 65 73 63 61 70 65 64 |te marks| escaped|
|00005380| 20 77 69 74 68 20 61 20 | 62 61 63 6b 73 6c 61 73 | with a |backslas|
|00005390| 68 20 61 72 65 20 69 6e | 63 6c 75 64 65 64 0a 7c |h are in|cluded.||
|000053a0| 09 69 6e 20 74 68 65 20 | 72 65 74 75 72 6e 65 64 |.in the |returned|
|000053b0| 20 73 74 72 69 6e 67 20 | 61 6e 64 20 74 68 65 20 | string |and the |
|000053c0| 62 61 63 6b 73 6c 61 73 | 68 20 69 73 20 65 78 63 |backslas|h is exc|
|000053d0| 69 73 65 64 2e 0a 7c 2a | 2f 0a 7c 73 74 61 74 69 |ised..|*|/.|stati|
|000053e0| 63 20 63 68 61 72 20 2a | 53 5f 71 73 74 72 69 70 |c char *|S_qstrip|
|000053f0| 28 73 74 72 70 74 72 29 | 0a 7c 63 68 61 72 20 2a |(strptr)|.|char *|
|00005400| 73 74 72 70 74 72 3b 0a | 7c 7b 0a 7c 09 69 6e 74 |strptr;.||{.|.int|
|00005410| 20 69 3b 0a 7c 09 73 74 | 61 74 69 63 20 63 68 61 | i;.|.st|atic cha|
|00005420| 72 20 73 74 72 62 75 66 | 5b 56 4d 41 58 53 49 5a |r strbuf|[VMAXSIZ|
|00005430| 45 2b 32 5d 3b 0a 7c 0a | 7c 09 69 66 20 28 2a 73 |E+2];.|.||.if (*s|
|00005440| 74 72 70 74 72 3d 3d 27 | 22 27 29 20 2b 2b 73 74 |trptr=='|"') ++st|
|00005450| 72 70 74 72 3b 0a 7c 09 | 66 6f 72 20 28 69 3d 30 |rptr;.|.|for (i=0|
|00005460| 3b 20 69 3c 56 4d 41 58 | 53 49 5a 45 2b 31 3b 20 |; i<VMAX|SIZE+1; |
|00005470| 2b 2b 69 29 20 7b 0a 7c | 09 09 69 66 20 28 2a 73 |++i) {.||..if (*s|
|00005480| 74 72 70 74 72 3d 3d 27 | 5c 5c 27 20 26 26 20 2a |trptr=='|\\' && *|
|00005490| 28 73 74 72 70 74 72 2b | 31 29 3d 3d 27 22 27 20 |(strptr+|1)=='"' |
|000054a0| 26 26 20 2a 28 73 74 72 | 70 74 72 2d 31 29 21 3d |&& *(str|ptr-1)!=|
|000054b0| 27 5c 5c 27 29 0a 7c 09 | 09 09 2b 2b 73 74 72 70 |'\\').|.|..++strp|
|000054c0| 74 72 3b 0a 7c 09 09 69 | 66 20 28 28 2a 73 74 72 |tr;.|..i|f ((*str|
|000054d0| 70 74 72 3d 3d 27 22 27 | 20 26 26 20 2a 28 73 74 |ptr=='"'| && *(st|
|000054e0| 72 70 74 72 2d 31 29 21 | 3d 27 5c 5c 27 29 20 7c |rptr-1)!|='\\') ||
|000054f0| 7c 20 21 2a 73 74 72 70 | 74 72 20 7c 7c 20 2a 73 || !*strp|tr || *s|
|00005500| 74 72 70 74 72 3d 3d 27 | 5c 6e 27 29 0a 7c 09 09 |trptr=='|\n').|..|
|00005510| 09 62 72 65 61 6b 3b 0a | 7c 09 09 73 74 72 62 75 |.break;.||..strbu|
|00005520| 66 5b 69 5d 20 3d 20 2a | 73 74 72 70 74 72 3b 0a |f[i] = *|strptr;.|
|00005530| 7c 09 09 2b 2b 73 74 72 | 70 74 72 3b 0a 7c 09 7d ||..++str|ptr;.|.}|
|00005540| 0a 7c 09 73 74 72 62 75 | 66 5b 69 5d 20 3d 20 27 |.|.strbu|f[i] = '|
|00005550| 5c 30 27 3b 0a 7c 09 72 | 65 74 75 72 6e 28 73 74 |\0';.|.r|eturn(st|
|00005560| 72 62 75 66 29 3b 0a 7c | 7d 0a 7c 0a 7c 2f 2a 09 |rbuf);.||}.|.|/*.|
|00005570| 53 5f 72 65 61 64 20 64 | 6f 65 73 20 74 68 65 20 |S_read d|oes the |
|00005580| 70 61 72 73 69 6e 67 20 | 67 72 75 6e 74 73 20 66 |parsing |grunts f|
|00005590| 6f 72 20 74 68 65 20 73 | 63 72 69 70 74 20 27 72 |or the s|cript 'r|
|000055a0| 65 61 64 27 20 64 69 72 | 65 63 74 69 76 65 2e 09 |ead' dir|ective..|
|000055b0| 4f 6e 0a 7c 09 65 6e 74 | 72 79 2c 20 74 68 65 20 |On.|.ent|ry, the |
|000055c0| 27 72 65 61 64 27 20 74 | 6f 6b 65 6e 20 68 61 73 |'read' t|oken has|
|000055d0| 20 62 65 65 6e 20 70 61 | 72 73 65 64 2c 20 62 75 | been pa|rsed, bu|
|000055e0| 74 20 74 68 61 74 27 73 | 20 61 6c 6c 2e 0a 7c 2a |t that's| all..|*|
|000055f0| 2f 0a 7c 73 74 61 74 69 | 63 20 53 5f 72 65 61 64 |/.|stati|c S_read|
|00005600| 28 70 63 70 74 72 29 0a | 7c 63 68 61 72 20 2a 2a |(pcptr).||char **|
|00005610| 70 63 70 74 72 3b 09 09 | 09 09 2f 2a 20 53 5f 70 |pcptr;..|../* S_p|
|00005620| 61 72 73 65 28 29 27 73 | 20 70 72 6f 67 72 61 6d |arse()'s| program|
|00005630| 20 63 6f 75 6e 74 65 72 | 20 28 70 5f 70 63 29 20 | counter| (p_pc) |
|00005640| 2a 2f 0a 7c 7b 0a 7c 09 | 69 6e 74 20 69 3b 0a 7c |*/.|{.|.|int i;.||
|00005650| 09 56 41 52 20 2a 76 61 | 72 70 74 72 31 3b 0a 7c |.VAR *va|rptr1;.||
|00005660| 09 73 74 61 74 69 63 20 | 63 68 61 72 20 73 74 72 |.static |char str|
|00005670| 62 75 66 5b 56 4d 41 58 | 53 49 5a 45 2b 32 5d 3b |buf[VMAX|SIZE+2];|
|00005680| 0a 7c 0a 7c 09 69 66 20 | 28 6c 65 78 61 6e 28 70 |.|.|.if |(lexan(p|
|00005690| 63 70 74 72 29 21 3d 56 | 41 52 4e 41 4d 45 29 0a |cptr)!=V|ARNAME).|
|000056a0| 7c 09 09 53 5f 61 62 6f | 72 74 28 29 3b 0a 7c 09 ||..S_abo|rt();.|.|
|000056b0| 76 61 72 70 74 72 31 20 | 3d 20 74 6f 6b 5f 76 61 |varptr1 |= tok_va|
|000056c0| 6c 75 65 2e 76 61 72 70 | 74 72 3b 0a 7c 09 73 74 |lue.varp|tr;.|.st|
|000056d0| 72 62 75 66 5b 30 5d 20 | 3d 20 27 5c 30 27 3b 0a |rbuf[0] |= '\0';.|
|000056e0| 7c 09 66 6f 72 20 28 69 | 3d 30 3b 20 69 3c 56 4d ||.for (i|=0; i<VM|
|000056f0| 41 58 53 49 5a 45 3b 20 | 2b 2b 69 29 20 7b 0a 7c |AXSIZE; |++i) {.||
|00005700| 09 09 73 74 72 62 75 66 | 5b 69 5d 20 3d 20 67 65 |..strbuf|[i] = ge|
|00005710| 74 63 68 61 72 28 29 3b | 0a 7c 09 09 66 70 75 74 |tchar();|.|..fput|
|00005720| 63 28 73 74 72 62 75 66 | 5b 69 5d 2c 74 66 70 29 |c(strbuf|[i],tfp)|
|00005730| 3b 0a 7c 09 09 69 66 20 | 28 73 74 72 62 75 66 5b |;.|..if |(strbuf[|
|00005740| 69 5d 3d 3d 27 5c 62 27 | 20 26 26 20 69 29 20 7b |i]=='\b'| && i) {|
|00005750| 0a 7c 09 09 09 2d 2d 69 | 3b 0a 7c 09 09 09 63 6f |.|...--i|;.|...co|
|00005760| 6e 74 69 6e 75 65 3b 0a | 7c 09 09 7d 0a 7c 09 09 |ntinue;.||..}.|..|
|00005770| 69 66 20 28 73 74 72 62 | 75 66 5b 69 5d 3d 3d 27 |if (strb|uf[i]=='|
|00005780| 5c 6e 27 20 7c 7c 20 73 | 74 72 62 75 66 5b 69 5d |\n' || s|trbuf[i]|
|00005790| 3d 3d 27 5c 72 27 29 20 | 7b 0a 7c 09 09 09 73 74 |=='\r') |{.|...st|
|000057a0| 72 62 75 66 5b 69 5d 20 | 3d 20 27 5c 30 27 3b 0a |rbuf[i] |= '\0';.|
|000057b0| 7c 09 09 09 62 72 65 61 | 6b 3b 0a 7c 09 09 7d 0a ||...brea|k;.|..}.|
|000057c0| 7c 09 7d 0a 7c 09 73 74 | 72 62 75 66 5b 56 4d 41 ||.}.|.st|rbuf[VMA|
|000057d0| 58 53 49 5a 45 5d 20 3d | 20 27 5c 30 27 3b 0a 7c |XSIZE] =| '\0';.||
|000057e0| 09 66 70 75 74 63 28 27 | 5c 6e 27 2c 74 66 70 29 |.fputc('|\n',tfp)|
|000057f0| 3b 0a 7c 09 72 65 74 75 | 72 6e 28 73 65 74 76 61 |;.|.retu|rn(setva|
|00005800| 72 28 76 61 72 70 74 72 | 31 2d 3e 6e 61 6d 65 2c |r(varptr|1->name,|
|00005810| 73 74 72 62 75 66 2c 56 | 43 48 41 52 29 2b 31 29 |strbuf,V|CHAR)+1)|
|00005820| 3b 0a 7c 7d 0a 7c 0a 7c | 2f 2a 09 53 5f 73 65 74 |;.|}.|.||/*.S_set|
|00005830| 20 64 6f 65 73 20 74 68 | 65 20 70 61 72 73 69 6e | does th|e parsin|
|00005840| 67 20 67 72 75 6e 74 73 | 20 66 6f 72 20 74 68 65 |g grunts| for the|
|00005850| 20 73 63 72 69 70 74 20 | 27 61 73 73 69 67 6e 27 | script |'assign'|
|00005860| 20 64 69 72 65 63 74 69 | 76 65 2e 20 49 74 27 73 | directi|ve. It's|
|00005870| 0a 7c 09 61 20 73 65 70 | 61 72 61 74 65 20 66 75 |.|.a sep|arate fu|
|00005880| 6e 63 74 69 6f 6e 20 6d | 6f 73 74 6c 79 20 74 6f |nction m|ostly to|
|00005890| 20 6b 65 65 70 20 66 72 | 6f 6d 20 63 6c 75 74 74 | keep fr|om clutt|
|000058a0| 65 72 69 6e 67 20 75 70 | 20 53 5f 70 61 72 73 65 |ering up| S_parse|
|000058b0| 28 29 0a 7c 09 74 6f 6f | 20 6d 75 63 68 2e 09 4f |().|.too| much..O|
|000058c0| 6e 20 65 6e 74 72 79 2c | 20 6f 6e 6c 79 20 74 68 |n entry,| only th|
|000058d0| 65 20 27 73 65 74 27 20 | 74 6f 6b 65 6e 20 68 61 |e 'set' |token ha|
|000058e0| 73 20 62 65 65 6e 20 72 | 65 63 65 69 76 65 64 20 |s been r|eceived |
|000058f0| 66 72 6f 6d 0a 7c 09 74 | 68 65 20 64 69 72 65 63 |from.|.t|he direc|
|00005900| 74 69 76 65 20 63 6f 6e | 74 61 69 6e 69 6e 67 20 |tive con|taining |
|00005910| 69 74 2e 0a 7c 2a 2f 0a | 7c 73 74 61 74 69 63 20 |it..|*/.||static |
|00005920| 53 5f 73 65 74 28 70 63 | 70 74 72 29 0a 7c 63 68 |S_set(pc|ptr).|ch|
|00005930| 61 72 20 2a 2a 70 63 70 | 74 72 3b 09 09 09 09 2f |ar **pcp|tr;..../|
|00005940| 2a 20 53 5f 70 61 72 73 | 65 28 29 27 73 20 70 72 |* S_pars|e()'s pr|
|00005950| 6f 67 72 61 6d 20 63 6f | 75 6e 74 65 72 20 28 70 |ogram co|unter (p|
|00005960| 5f 70 63 29 20 2a 2f 0a | 7c 7b 0a 7c 09 54 4f 4b |_pc) */.||{.|.TOK|
|00005970| 5f 54 59 50 45 20 6e 65 | 78 74 74 79 70 65 3b 0a |_TYPE ne|xttype;.|
|00005980| 7c 09 56 41 52 20 2a 76 | 61 72 70 74 72 31 2c 20 ||.VAR *v|arptr1, |
|00005990| 2a 76 61 72 70 74 72 32 | 3b 0a 7c 09 63 68 61 72 |*varptr2|;.|.char|
|000059a0| 20 2a 73 65 74 73 74 72 | 3b 0a 7c 0a 7c 09 69 66 | *setstr|;.|.|.if|
|000059b0| 20 28 28 6e 65 78 74 74 | 79 70 65 3d 6c 65 78 61 | ((nextt|ype=lexa|
|000059c0| 6e 28 70 63 70 74 72 29 | 29 21 3d 56 41 52 4e 41 |n(pcptr)|)!=VARNA|
|000059d0| 4d 45 29 0a 7c 09 09 53 | 5f 61 62 6f 72 74 28 29 |ME).|..S|_abort()|
|000059e0| 3b 0a 7c 09 76 61 72 70 | 74 72 31 20 3d 20 74 6f |;.|.varp|tr1 = to|
|000059f0| 6b 5f 76 61 6c 75 65 2e | 76 61 72 70 74 72 3b 0a |k_value.|varptr;.|
|00005a00| 7c 09 69 66 20 28 28 6e | 65 78 74 74 79 70 65 3d ||.if ((n|exttype=|
|00005a10| 6c 65 78 61 6e 28 70 63 | 70 74 72 29 29 21 3d 45 |lexan(pc|ptr))!=E|
|00005a20| 51 29 0a 7c 09 09 53 5f | 61 62 6f 72 74 28 29 3b |Q).|..S_|abort();|
|00005a30| 0a 7c 09 73 77 69 74 63 | 68 20 28 6e 65 78 74 74 |.|.switc|h (nextt|
|00005a40| 79 70 65 20 3d 20 6c 65 | 78 61 6e 28 70 63 70 74 |ype = le|xan(pcpt|
|00005a50| 72 29 29 20 7b 0a 7c 09 | 09 63 61 73 65 20 4c 49 |r)) {.|.|.case LI|
|00005a60| 54 45 52 41 4c 3a 0a 7c | 09 09 09 73 65 74 73 74 |TERAL:.||...setst|
|00005a70| 72 20 3d 20 53 5f 71 73 | 74 72 69 70 28 74 6f 6b |r = S_qs|trip(tok|
|00005a80| 5f 76 61 6c 75 65 2e 73 | 74 72 70 74 72 29 3b 0a |_value.s|trptr);.|
|00005a90| 7c 09 09 09 72 65 74 75 | 72 6e 28 73 65 74 76 61 ||...retu|rn(setva|
|00005aa0| 72 28 76 61 72 70 74 72 | 31 2d 3e 6e 61 6d 65 2c |r(varptr|1->name,|
|00005ab0| 73 65 74 73 74 72 2c 56 | 43 48 41 52 29 20 2b 20 |setstr,V|CHAR) + |
|00005ac0| 31 29 3b 0a 7c 09 09 63 | 61 73 65 20 41 43 54 49 |1);.|..c|ase ACTI|
|00005ad0| 4f 4e 3a 0a 7c 09 09 63 | 61 73 65 20 41 46 46 49 |ON:.|..c|ase AFFI|
|00005ae0| 52 4d 3a 0a 7c 09 09 09 | 69 66 20 28 6e 65 78 74 |RM:.|...|if (next|
|00005af0| 74 79 70 65 3d 3d 41 43 | 54 49 4f 4e 29 0a 7c 09 |type==AC|TION).|.|
|00005b00| 09 09 09 74 6f 6b 5f 76 | 61 6c 75 65 2e 6e 75 6d |...tok_v|alue.num|
|00005b10| 76 61 6c 20 3d 20 28 6c | 6f 6e 67 29 20 53 5f 70 |val = (l|ong) S_p|
|00005b20| 65 72 66 6f 72 6d 28 70 | 63 70 74 72 29 3b 0a 7c |erform(p|cptr);.||
|00005b30| 09 09 09 65 6c 73 65 0a | 7c 09 09 09 09 74 6f 6b |...else.||....tok|
|00005b40| 5f 76 61 6c 75 65 2e 6e | 75 6d 76 61 6c 20 3d 20 |_value.n|umval = |
|00005b50| 28 6c 6f 6e 67 29 20 53 | 5f 61 66 66 69 72 6d 28 |(long) S|_affirm(|
|00005b60| 29 3b 0a 7c 09 09 63 61 | 73 65 20 4e 55 4d 42 45 |);.|..ca|se NUMBE|
|00005b70| 52 3a 0a 7c 09 09 63 61 | 73 65 20 53 54 52 55 45 |R:.|..ca|se STRUE|
|00005b80| 3a 0a 7c 09 09 63 61 73 | 65 20 53 46 41 4c 53 45 |:.|..cas|e SFALSE|
|00005b90| 3a 0a 7c 09 09 09 72 65 | 74 75 72 6e 28 73 65 74 |:.|...re|turn(set|
|00005ba0| 76 61 72 28 76 61 72 70 | 74 72 31 2d 3e 6e 61 6d |var(varp|tr1->nam|
|00005bb0| 65 2c 26 74 6f 6b 5f 76 | 61 6c 75 65 2e 6e 75 6d |e,&tok_v|alue.num|
|00005bc0| 76 61 6c 2c 56 4e 55 4d | 29 20 2b 20 31 29 3b 0a |val,VNUM|) + 1);.|
|00005bd0| 7c 09 09 63 61 73 65 20 | 56 41 52 4e 41 4d 45 3a ||..case |VARNAME:|
|00005be0| 0a 7c 09 09 09 76 61 72 | 70 74 72 32 20 3d 20 74 |.|...var|ptr2 = t|
|00005bf0| 6f 6b 5f 76 61 6c 75 65 | 2e 76 61 72 70 74 72 3b |ok_value|.varptr;|
|00005c00| 0a 7c 09 09 09 73 77 69 | 74 63 68 20 28 76 61 72 |.|...swi|tch (var|
|00005c10| 70 74 72 32 2d 3e 74 79 | 70 65 29 20 7b 0a 7c 09 |ptr2->ty|pe) {.|.|
|00005c20| 09 09 09 63 61 73 65 20 | 56 43 48 41 52 3a 0a 7c |...case |VCHAR:.||
|00005c30| 09 09 09 09 09 72 65 74 | 75 72 6e 28 73 65 74 76 |.....ret|urn(setv|
|00005c40| 61 72 28 76 61 72 70 74 | 72 31 2d 3e 6e 61 6d 65 |ar(varpt|r1->name|
|00005c50| 2c 76 61 72 70 74 72 32 | 2d 3e 75 2e 73 74 72 2c |,varptr2|->u.str,|
|00005c60| 56 43 48 41 52 29 20 2b | 20 31 29 3b 0a 7c 09 09 |VCHAR) +| 1);.|..|
|00005c70| 09 09 64 65 66 61 75 6c | 74 3a 0a 7c 09 09 09 09 |..defaul|t:.|....|
|00005c80| 09 72 65 74 75 72 6e 28 | 73 65 74 76 61 72 28 76 |.return(|setvar(v|
|00005c90| 61 72 70 74 72 31 2d 3e | 6e 61 6d 65 2c 26 28 76 |arptr1->|name,&(v|
|00005ca0| 61 72 70 74 72 32 2d 3e | 75 2e 6e 75 6d 29 2c 56 |arptr2->|u.num),V|
|00005cb0| 4e 55 4d 29 20 2b 20 31 | 29 3b 0a 7c 09 09 09 7d |NUM) + 1|);.|...}|
|00005cc0| 0a 7c 09 09 64 65 66 61 | 75 6c 74 3a 0a 7c 09 09 |.|..defa|ult:.|..|
|00005cd0| 09 53 5f 61 62 6f 72 74 | 28 29 3b 0a 7c 09 7d 0a |.S_abort|();.|.}.|
|00005ce0| 7c 7d 0a 7c 0a 7c 2f 2a | 09 53 5f 76 61 72 63 6d ||}.|.|/*|.S_varcm|
|00005cf0| 70 28 29 20 63 6f 6d 70 | 61 72 65 73 20 61 20 76 |p() comp|ares a v|
|00005d00| 61 72 69 61 62 6c 65 27 | 73 20 76 61 6c 75 65 20 |ariable'|s value |
|00005d10| 77 69 74 68 20 61 20 73 | 74 72 69 6e 67 20 6f 72 |with a s|tring or|
|00005d20| 20 6e 75 6d 65 72 69 63 | 0a 7c 09 6c 69 74 65 72 | numeric|.|.liter|
|00005d30| 61 6c 2c 20 6f 72 20 77 | 69 74 68 20 74 68 65 20 |al, or w|ith the |
|00005d40| 76 61 6c 75 65 20 6f 66 | 20 61 20 73 65 63 6f 6e |value of| a secon|
|00005d50| 64 20 76 61 72 69 61 62 | 6c 65 2e 20 4f 6e 63 65 |d variab|le. Once|
|00005d60| 20 61 67 61 69 6e 2c 0a | 7c 09 74 68 69 73 20 66 | again,.||.this f|
|00005d70| 75 6e 63 74 69 6f 6e 20 | 64 6f 65 73 20 70 61 72 |unction |does par|
|00005d80| 73 69 6e 67 20 67 72 75 | 6e 74 73 20 66 6f 72 20 |sing gru|nts for |
|00005d90| 53 5f 70 61 72 73 65 28 | 29 2e 0a 7c 2a 2f 0a 7c |S_parse(|)..|*/.||
|00005da0| 73 74 61 74 69 63 20 53 | 5f 76 61 72 63 6d 70 28 |static S|_varcmp(|
|00005db0| 76 61 72 70 74 72 31 2c | 70 63 70 74 72 29 0a 7c |varptr1,|pcptr).||
|00005dc0| 56 41 52 20 2a 76 61 72 | 70 74 72 31 3b 0a 7c 63 |VAR *var|ptr1;.|c|
|00005dd0| 68 61 72 20 2a 2a 70 63 | 70 74 72 3b 09 09 09 09 |har **pc|ptr;....|
|00005de0| 09 2f 2a 20 53 5f 70 61 | 72 73 65 28 29 27 73 20 |./* S_pa|rse()'s |
|00005df0| 70 72 6f 67 72 61 6d 20 | 63 6f 75 6e 74 65 72 20 |program |counter |
|00005e00| 28 70 5f 70 63 29 20 2a | 2f 0a 7c 7b 0a 7c 09 54 |(p_pc) *|/.|{.|.T|
|00005e10| 4f 4b 5f 54 59 50 45 20 | 63 6f 6d 70 6d 6f 64 65 |OK_TYPE |compmode|
|00005e20| 3b 0a 7c 09 6c 6f 6e 67 | 20 74 65 73 74 6e 75 6d |;.|.long| testnum|
|00005e30| 3b 0a 7c 09 73 74 61 74 | 69 63 20 63 68 61 72 20 |;.|.stat|ic char |
|00005e40| 73 74 72 62 75 66 5b 56 | 4d 41 58 53 49 5a 45 2b |strbuf[V|MAXSIZE+|
|00005e50| 31 5d 3b 0a 7c 09 63 68 | 61 72 20 2a 63 6d 70 73 |1];.|.ch|ar *cmps|
|00005e60| 74 72 3b 0a 7c 09 69 6e | 74 20 73 74 61 74 75 73 |tr;.|.in|t status|
|00005e70| 2c 20 6e 75 6d 76 61 72 | 3b 0a 7c 09 56 41 52 20 |, numvar|;.|.VAR |
|00005e80| 2a 76 61 72 70 74 72 32 | 3b 0a 7c 0a 7c 09 6e 75 |*varptr2|;.|.|.nu|
|00005e90| 6d 76 61 72 20 3d 20 28 | 76 61 72 70 74 72 31 2d |mvar = (|varptr1-|
|00005ea0| 3e 74 79 70 65 21 3d 56 | 43 48 41 52 29 3b 0a 7c |>type!=V|CHAR);.||
|00005eb0| 09 63 6f 6d 70 6d 6f 64 | 65 20 3d 20 6c 65 78 61 |.compmod|e = lexa|
|00005ec0| 6e 28 70 63 70 74 72 29 | 3b 0a 7c 09 73 77 69 74 |n(pcptr)|;.|.swit|
|00005ed0| 63 68 20 28 63 6f 6d 70 | 6d 6f 64 65 29 20 7b 0a |ch (comp|mode) {.|
|00005ee0| 7c 09 09 63 61 73 65 20 | 45 51 3a 0a 7c 09 09 63 ||..case |EQ:.|..c|
|00005ef0| 61 73 65 20 4e 45 51 3a | 0a 7c 09 09 63 61 73 65 |ase NEQ:|.|..case|
|00005f00| 20 4d 4f 52 45 54 48 41 | 4e 3a 0a 7c 09 09 63 61 | MORETHA|N:.|..ca|
|00005f10| 73 65 20 4c 45 53 53 54 | 48 41 4e 3a 0a 7c 09 09 |se LESST|HAN:.|..|
|00005f20| 09 62 72 65 61 6b 3b 0a | 7c 09 09 63 61 73 65 20 |.break;.||..case |
|00005f30| 54 45 52 4d 49 4e 41 54 | 3a 0a 7c 09 09 09 69 66 |TERMINAT|:.|...if|
|00005f40| 20 28 6e 75 6d 76 61 72 | 29 0a 7c 09 09 09 09 72 | (numvar|).|....r|
|00005f50| 65 74 75 72 6e 28 76 61 | 72 70 74 72 31 2d 3e 75 |eturn(va|rptr1->u|
|00005f60| 2e 6e 75 6d 20 3f 20 54 | 52 55 45 20 3a 20 46 41 |.num ? T|RUE : FA|
|00005f70| 4c 53 45 29 3b 0a 7c 09 | 09 09 65 6c 73 65 0a 7c |LSE);.|.|..else.||
|00005f80| 09 09 09 09 72 65 74 75 | 72 6e 28 2a 76 61 72 70 |....retu|rn(*varp|
|00005f90| 74 72 31 2d 3e 75 2e 73 | 74 72 20 3f 20 54 52 55 |tr1->u.s|tr ? TRU|
|00005fa0| 45 20 3a 20 46 41 4c 53 | 45 29 3b 0a 7c 09 09 64 |E : FALS|E);.|..d|
|00005fb0| 65 66 61 75 6c 74 3a 0a | 7c 09 09 09 53 5f 61 62 |efault:.||...S_ab|
|00005fc0| 6f 72 74 28 29 3b 0a 7c | 09 7d 0a 7c 09 73 77 69 |ort();.||.}.|.swi|
|00005fd0| 74 63 68 20 28 6c 65 78 | 61 6e 28 70 63 70 74 72 |tch (lex|an(pcptr|
|00005fe0| 29 29 20 7b 0a 7c 09 09 | 63 61 73 65 20 4c 49 54 |)) {.|..|case LIT|
|00005ff0| 45 52 41 4c 3a 0a 7c 09 | 09 09 69 66 20 28 6e 75 |ERAL:.|.|..if (nu|
|00006000| 6d 76 61 72 29 20 7b 0a | 7c 09 09 09 09 73 70 72 |mvar) {.||....spr|
|00006010| 69 6e 74 66 28 4d 73 67 | 2c 22 45 72 72 6f 72 3a |intf(Msg|,"Error:|
|00006020| 20 25 73 20 69 73 20 61 | 20 6e 75 6d 65 72 69 63 | %s is a| numeric|
|00006030| 20 76 61 72 69 61 62 6c | 65 22 2c 76 61 72 70 74 | variabl|e",varpt|
|00006040| 72 31 2d 3e 6e 61 6d 65 | 29 3b 0a 7c 09 09 09 09 |r1->name|);.|....|
|00006050| 53 5f 61 62 6f 72 74 28 | 29 3b 0a 7c 09 09 09 7d |S_abort(|);.|...}|
|00006060| 0a 7c 09 09 09 2b 2b 74 | 6f 6b 5f 76 61 6c 75 65 |.|...++t|ok_value|
|00006070| 2e 73 74 72 70 74 72 3b | 0a 7c 09 09 09 73 74 72 |.strptr;|.|...str|
|00006080| 6e 63 70 79 28 73 74 72 | 62 75 66 2c 74 6f 6b 5f |ncpy(str|buf,tok_|
|00006090| 76 61 6c 75 65 2e 73 74 | 72 70 74 72 2c 56 4d 41 |value.st|rptr,VMA|
|000060a0| 58 53 49 5a 45 29 3b 0a | 7c 09 09 09 2a 28 73 74 |XSIZE);.||...*(st|
|000060b0| 72 63 68 72 28 73 74 72 | 62 75 66 2c 27 22 27 29 |rchr(str|buf,'"')|
|000060c0| 29 20 3d 20 27 5c 30 27 | 3b 0a 7c 09 09 09 63 6d |) = '\0'|;.|...cm|
|000060d0| 70 73 74 72 20 3d 20 73 | 74 72 62 75 66 3b 0a 7c |pstr = s|trbuf;.||
|000060e0| 09 09 09 62 72 65 61 6b | 3b 0a 7c 09 09 63 61 73 |...break|;.|..cas|
|000060f0| 65 20 4e 55 4d 42 45 52 | 3a 0a 7c 09 09 63 61 73 |e NUMBER|:.|..cas|
|00006100| 65 20 53 54 52 55 45 3a | 0a 7c 09 09 63 61 73 65 |e STRUE:|.|..case|
|00006110| 20 53 46 41 4c 53 45 3a | 0a 7c 09 09 09 69 66 20 | SFALSE:|.|...if |
|00006120| 28 21 6e 75 6d 76 61 72 | 29 20 7b 0a 7c 09 09 09 |(!numvar|) {.|...|
|00006130| 09 73 70 72 69 6e 74 66 | 28 4d 73 67 2c 22 45 72 |.sprintf|(Msg,"Er|
|00006140| 72 6f 72 3a 20 25 73 20 | 69 73 20 61 20 73 74 72 |ror: %s |is a str|
|00006150| 69 6e 67 20 76 61 72 69 | 61 62 6c 65 22 2c 76 61 |ing vari|able",va|
|00006160| 72 70 74 72 31 2d 3e 6e | 61 6d 65 29 3b 0a 7c 09 |rptr1->n|ame);.|.|
|00006170| 09 09 09 53 5f 61 62 6f | 72 74 28 29 3b 0a 7c 09 |...S_abo|rt();.|.|
|00006180| 09 09 7d 0a 7c 09 09 09 | 74 65 73 74 6e 75 6d 20 |..}.|...|testnum |
|00006190| 3d 20 74 6f 6b 5f 76 61 | 6c 75 65 2e 6e 75 6d 76 |= tok_va|lue.numv|
|000061a0| 61 6c 3b 0a 7c 09 09 09 | 62 72 65 61 6b 3b 0a 7c |al;.|...|break;.||
|000061b0| 09 09 63 61 73 65 20 56 | 41 52 4e 41 4d 45 3a 0a |..case V|ARNAME:.|
|000061c0| 7c 09 09 09 76 61 72 70 | 74 72 32 20 3d 20 74 6f ||...varp|tr2 = to|
|000061d0| 6b 5f 76 61 6c 75 65 2e | 76 61 72 70 74 72 3b 0a |k_value.|varptr;.|
|000061e0| 7c 09 09 09 69 66 20 28 | 6e 75 6d 76 61 72 20 26 ||...if (|numvar &|
|000061f0| 26 20 76 61 72 70 74 72 | 32 2d 3e 74 79 70 65 3d |& varptr|2->type=|
|00006200| 3d 56 43 48 41 52 29 20 | 7b 0a 7c 09 09 09 09 73 |=VCHAR) |{.|....s|
|00006210| 70 72 69 6e 74 66 28 4d | 73 67 2c 22 45 72 72 6f |printf(M|sg,"Erro|
|00006220| 72 3a 20 25 73 20 61 6e | 64 20 25 73 20 61 72 65 |r: %s an|d %s are|
|00006230| 20 6f 66 20 64 69 66 66 | 65 72 65 6e 74 20 74 79 | of diff|erent ty|
|00006240| 70 65 73 22 2c 0a 7c 09 | 09 09 09 09 76 61 72 70 |pes",.|.|....varp|
|00006250| 74 72 31 2d 3e 6e 61 6d | 65 2c 20 76 61 72 70 74 |tr1->nam|e, varpt|
|00006260| 72 32 2d 3e 6e 61 6d 65 | 29 3b 0a 7c 09 09 09 09 |r2->name|);.|....|
|00006270| 53 5f 61 62 6f 72 74 28 | 29 3b 0a 7c 09 09 09 7d |S_abort(|);.|...}|
|00006280| 0a 7c 09 09 09 69 66 20 | 28 6e 75 6d 76 61 72 29 |.|...if |(numvar)|
|00006290| 0a 7c 09 09 09 09 74 65 | 73 74 6e 75 6d 20 3d 20 |.|....te|stnum = |
|000062a0| 76 61 72 70 74 72 32 2d | 3e 75 2e 6e 75 6d 3b 0a |varptr2-|>u.num;.|
|000062b0| 7c 09 09 09 65 6c 73 65 | 0a 7c 09 09 09 09 63 6d ||...else|.|....cm|
|000062c0| 70 73 74 72 20 3d 20 76 | 61 72 70 74 72 32 2d 3e |pstr = v|arptr2->|
|000062d0| 75 2e 73 74 72 3b 0a 7c | 09 09 09 62 72 65 61 6b |u.str;.||...break|
|000062e0| 3b 0a 7c 09 09 64 65 66 | 61 75 6c 74 3a 0a 7c 09 |;.|..def|ault:.|.|
|000062f0| 09 09 53 5f 61 62 6f 72 | 74 28 29 3b 0a 7c 09 7d |..S_abor|t();.|.}|
|00006300| 0a 7c 09 69 66 20 28 6e | 75 6d 76 61 72 29 20 7b |.|.if (n|umvar) {|
|00006310| 0a 7c 09 09 73 74 61 74 | 75 73 20 3d 20 28 76 61 |.|..stat|us = (va|
|00006320| 72 70 74 72 31 2d 3e 75 | 2e 6e 75 6d 3d 3d 74 65 |rptr1->u|.num==te|
|00006330| 73 74 6e 75 6d 29 3b 0a | 7c 09 09 69 66 20 28 63 |stnum);.||..if (c|
|00006340| 6f 6d 70 6d 6f 64 65 3d | 3d 45 51 29 20 72 65 74 |ompmode=|=EQ) ret|
|00006350| 75 72 6e 28 73 74 61 74 | 75 73 29 3b 0a 7c 09 09 |urn(stat|us);.|..|
|00006360| 69 66 20 28 63 6f 6d 70 | 6d 6f 64 65 3d 3d 4e 45 |if (comp|mode==NE|
|00006370| 51 29 20 72 65 74 75 72 | 6e 28 21 73 74 61 74 75 |Q) retur|n(!statu|
|00006380| 73 29 3b 0a 7c 09 09 73 | 74 61 74 75 73 20 3d 20 |s);.|..s|tatus = |
|00006390| 28 76 61 72 70 74 72 31 | 2d 3e 75 2e 6e 75 6d 20 |(varptr1|->u.num |
|000063a0| 3e 20 74 65 73 74 6e 75 | 6d 29 3b 0a 7c 09 09 69 |> testnu|m);.|..i|
|000063b0| 66 20 28 63 6f 6d 70 6d | 6f 64 65 3d 3d 4d 4f 52 |f (compm|ode==MOR|
|000063c0| 45 54 48 41 4e 29 20 72 | 65 74 75 72 6e 28 73 74 |ETHAN) r|eturn(st|
|000063d0| 61 74 75 73 29 3b 0a 7c | 09 09 65 6c 73 65 20 72 |atus);.||..else r|
|000063e0| 65 74 75 72 6e 28 21 73 | 74 61 74 75 73 29 3b 0a |eturn(!s|tatus);.|
|000063f0| 7c 09 7d 0a 7c 09 73 74 | 61 74 75 73 20 3d 20 73 ||.}.|.st|atus = s|
+--------+-------------------------+-------------------------+--------+--------+
Only 25.0 KB of data is shown above.