home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 January / usenetsourcesnewsgroupsinfomagicjanuary1994.iso / sources / unix / volume10 / logo / part03 < prev    next >
SHell self-extracting ARchive  |  1987-06-23  |  47.4 KB

view JSON data     |     view as text     |     open on a Mac     |     open on a PC

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

You can browse this item here: part03

ConfidenceProgramDetectionMatch TypeSupport
100% dexvert Newsgroup Content (archive/news) magic Supported
100% dexvert SHell self-extracting ARchive (archive/shar) magic Supported
100% dexvert Internet Message Format (text/imf) magic Supported
1% dexvert Text File (text/txt) fallback Supported
100% file news, ASCII text default
100% checkBytes Printable ASCII default
100% dexmagic PrintFox/Pagefox WEAK default
100% perlTextCheck Likely Text (Perl) default
100% siegfried fmt/329 Shell Archive Format default
100% detectItEasy Format: plain text[LF] default (weak)
100% xdgMime message/news default



hex view
+--------+-------------------------+-------------------------+--------+--------+
|00000000| 50 61 74 68 3a 20 75 75 | 6e 65 74 21 72 73 0a 46 |Path: uu|net!rs.F|
|00000010| 72 6f 6d 3a 20 72 73 40 | 75 75 6e 65 74 2e 55 55 |rom: rs@|uunet.UU|
|00000020| 2e 4e 45 54 20 28 52 69 | 63 68 20 53 61 6c 7a 29 |.NET (Ri|ch Salz)|
|00000030| 0a 4e 65 77 73 67 72 6f | 75 70 73 3a 20 63 6f 6d |.Newsgro|ups: com|
|00000040| 70 2e 73 6f 75 72 63 65 | 73 2e 75 6e 69 78 0a 53 |p.source|s.unix.S|
|00000050| 75 62 6a 65 63 74 3a 20 | 76 31 30 69 30 32 33 3a |ubject: |v10i023:|
|00000060| 20 4c 6f 67 6f 20 69 6e | 74 65 72 70 72 65 74 65 | Logo in|terprete|
|00000070| 72 20 66 6f 72 20 55 6e | 69 78 2c 20 50 61 72 74 |r for Un|ix, Part|
|00000080| 30 33 2f 30 36 0a 4d 65 | 73 73 61 67 65 2d 49 44 |03/06.Me|ssage-ID|
|00000090| 3a 20 3c 34 34 39 40 75 | 75 6e 65 74 2e 55 55 2e |: <449@u|unet.UU.|
|000000a0| 4e 45 54 3e 0a 44 61 74 | 65 3a 20 32 34 20 4a 75 |NET>.Dat|e: 24 Ju|
|000000b0| 6e 20 38 37 20 32 30 3a | 32 31 3a 34 36 20 47 4d |n 87 20:|21:46 GM|
|000000c0| 54 0a 4f 72 67 61 6e 69 | 7a 61 74 69 6f 6e 3a 20 |T.Organi|zation: |
|000000d0| 55 55 4e 45 54 20 43 6f | 6d 6d 75 6e 69 63 61 74 |UUNET Co|mmunicat|
|000000e0| 69 6f 6e 73 20 53 65 72 | 76 69 63 65 73 2c 20 41 |ions Ser|vices, A|
|000000f0| 72 6c 69 6e 67 74 6f 6e | 2c 20 56 41 0a 4c 69 6e |rlington|, VA.Lin|
|00000100| 65 73 3a 20 32 35 33 37 | 0a 41 70 70 72 6f 76 65 |es: 2537|.Approve|
|00000110| 64 3a 20 72 73 40 75 75 | 6e 65 74 2e 75 75 2e 6e |d: rs@uu|net.uu.n|
|00000120| 65 74 0a 0a 53 75 62 6d | 69 74 74 65 64 20 62 79 |et..Subm|itted by|
|00000130| 3a 20 42 72 69 61 6e 20 | 48 61 72 76 65 79 20 3c |: Brian |Harvey <|
|00000140| 62 68 40 6d 69 74 2d 61 | 6d 74 3e 0a 4d 6f 64 2e |bh@mit-a|mt>.Mod.|
|00000150| 53 6f 75 72 63 65 73 3a | 20 56 6f 6c 75 6d 65 20 |Sources:| Volume |
|00000160| 31 30 2c 20 4e 75 6d 62 | 65 72 20 32 33 0a 41 72 |10, Numb|er 23.Ar|
|00000170| 63 68 69 76 65 2d 4e 61 | 6d 65 3a 20 6c 6f 67 6f |chive-Na|me: logo|
|00000180| 2f 50 61 72 74 30 33 0a | 0a 23 21 20 2f 62 69 6e |/Part03.|.#! /bin|
|00000190| 2f 73 68 0a 23 20 54 68 | 69 73 20 69 73 20 61 20 |/sh.# Th|is is a |
|000001a0| 73 68 65 6c 6c 20 61 72 | 63 68 69 76 65 2e 20 20 |shell ar|chive. |
|000001b0| 52 65 6d 6f 76 65 20 61 | 6e 79 74 68 69 6e 67 20 |Remove a|nything |
|000001c0| 62 65 66 6f 72 65 20 74 | 68 69 73 20 6c 69 6e 65 |before t|his line|
|000001d0| 2c 20 74 68 65 6e 20 75 | 6e 70 61 63 6b 0a 23 20 |, then u|npack.# |
|000001e0| 69 74 20 62 79 20 73 61 | 76 69 6e 67 20 69 74 20 |it by sa|ving it |
|000001f0| 69 6e 74 6f 20 61 20 66 | 69 6c 65 20 61 6e 64 20 |into a f|ile and |
|00000200| 74 79 70 69 6e 67 20 22 | 73 68 20 66 69 6c 65 22 |typing "|sh file"|
|00000210| 2e 20 20 54 6f 20 6f 76 | 65 72 77 72 69 74 65 20 |. To ov|erwrite |
|00000220| 65 78 69 73 74 69 6e 67 | 0a 23 20 66 69 6c 65 73 |existing|.# files|
|00000230| 2c 20 74 79 70 65 20 22 | 73 68 20 66 69 6c 65 20 |, type "|sh file |
|00000240| 2d 63 22 2e 20 20 59 6f | 75 20 63 61 6e 20 61 6c |-c". Yo|u can al|
|00000250| 73 6f 20 66 65 65 64 20 | 74 68 69 73 20 61 73 20 |so feed |this as |
|00000260| 73 74 61 6e 64 61 72 64 | 20 69 6e 70 75 74 20 76 |standard| input v|
|00000270| 69 61 0a 23 20 75 6e 73 | 68 61 72 2c 20 6f 72 20 |ia.# uns|har, or |
|00000280| 62 79 20 74 79 70 69 6e | 67 20 22 73 68 20 3c 66 |by typin|g "sh <f|
|00000290| 69 6c 65 22 2c 20 65 2e | 67 2e 2e 20 20 49 66 20 |ile", e.|g.. If |
|000002a0| 74 68 69 73 20 61 72 63 | 68 69 76 65 20 69 73 20 |this arc|hive is |
|000002b0| 63 6f 6d 70 6c 65 74 65 | 2c 20 79 6f 75 0a 23 20 |complete|, you.# |
|000002c0| 77 69 6c 6c 20 73 65 65 | 20 74 68 65 20 66 6f 6c |will see| the fol|
|000002d0| 6c 6f 77 69 6e 67 20 6d | 65 73 73 61 67 65 20 61 |lowing m|essage a|
|000002e0| 74 20 74 68 65 20 65 6e | 64 3a 0a 23 09 09 22 45 |t the en|d:.#.."E|
|000002f0| 6e 64 20 6f 66 20 61 72 | 63 68 69 76 65 20 33 20 |nd of ar|chive 3 |
|00000300| 28 6f 66 20 36 29 2e 22 | 0a 23 20 43 6f 6e 74 65 |(of 6)."|.# Conte|
|00000310| 6e 74 73 3a 20 20 6c 6f | 67 6f 61 75 78 2e 63 20 |nts: lo|goaux.c |
|00000320| 6c 6f 67 6f 6f 70 2e 63 | 20 6c 6f 67 6f 70 72 6f |logoop.c| logopro|
|00000330| 63 2e 63 20 74 75 72 74 | 6c 65 2e 63 0a 23 20 57 |c.c turt|le.c.# W|
|00000340| 72 61 70 70 65 64 20 62 | 79 20 72 73 61 6c 7a 40 |rapped b|y rsalz@|
|00000350| 70 69 6e 65 61 70 70 6c | 65 2e 62 62 6e 2e 63 6f |pineappl|e.bbn.co|
|00000360| 6d 20 6f 6e 20 57 65 64 | 20 4a 75 6e 20 32 34 20 |m on Wed| Jun 24 |
|00000370| 31 34 3a 32 36 3a 35 37 | 20 31 39 38 37 0a 50 41 |14:26:57| 1987.PA|
|00000380| 54 48 3d 2f 62 69 6e 3a | 2f 75 73 72 2f 62 69 6e |TH=/bin:|/usr/bin|
|00000390| 3a 2f 75 73 72 2f 75 63 | 62 20 3b 20 65 78 70 6f |:/usr/uc|b ; expo|
|000003a0| 72 74 20 50 41 54 48 0a | 69 66 20 74 65 73 74 20 |rt PATH.|if test |
|000003b0| 2d 66 20 6c 6f 67 6f 61 | 75 78 2e 63 20 2d 61 20 |-f logoa|ux.c -a |
|000003c0| 22 24 7b 31 7d 22 20 21 | 3d 20 22 2d 63 22 20 3b |"${1}" !|= "-c" ;|
|000003d0| 20 74 68 65 6e 20 0a 20 | 20 65 63 68 6f 20 73 68 | then . | echo sh|
|000003e0| 61 72 3a 20 57 69 6c 6c | 20 6e 6f 74 20 6f 76 65 |ar: Will| not ove|
|000003f0| 72 2d 77 72 69 74 65 20 | 65 78 69 73 74 69 6e 67 |r-write |existing|
|00000400| 20 66 69 6c 65 20 5c 22 | 6c 6f 67 6f 61 75 78 2e | file \"|logoaux.|
|00000410| 63 5c 22 0a 65 6c 73 65 | 0a 65 63 68 6f 20 73 68 |c\".else|.echo sh|
|00000420| 61 72 3a 20 45 78 74 72 | 61 63 74 69 6e 67 20 5c |ar: Extr|acting \|
|00000430| 22 6c 6f 67 6f 61 75 78 | 2e 63 5c 22 20 5c 28 31 |"logoaux|.c\" \(1|
|00000440| 31 31 33 38 20 63 68 61 | 72 61 63 74 65 72 73 5c |1138 cha|racters\|
|00000450| 29 0a 73 65 64 20 22 73 | 2f 5e 58 2f 2f 22 20 3e |).sed "s|/^X//" >|
|00000460| 6c 6f 67 6f 61 75 78 2e | 63 20 3c 3c 27 45 4e 44 |logoaux.|c <<'END|
|00000470| 5f 4f 46 5f 6c 6f 67 6f | 61 75 78 2e 63 27 0a 58 |_OF_logo|aux.c'.X|
|00000480| 0a 58 2f 2a 09 54 68 69 | 73 20 66 69 6c 65 20 63 |.X/*.Thi|s file c|
|00000490| 6f 6e 74 61 69 6e 73 20 | 61 20 6d 69 73 63 65 6c |ontains |a miscel|
|000004a0| 6c 61 6e 79 20 6f 66 20 | 66 75 6e 63 74 69 6f 6e |lany of |function|
|000004b0| 73 20 66 6f 72 20 4c 4f | 47 4f 2c 20 62 6f 74 68 |s for LO|GO, both|
|000004c0| 0a 58 20 2a 20 70 72 69 | 6d 61 72 79 20 69 6d 70 |.X * pri|mary imp|
|000004d0| 6c 65 6d 65 6e 74 61 74 | 69 6f 6e 20 6f 66 20 4c |lementat|ion of L|
|000004e0| 4f 47 4f 20 6f 70 65 72 | 61 74 69 6f 6e 73 20 61 |OGO oper|ations a|
|000004f0| 6e 64 20 63 6f 6d 6d 61 | 6e 64 73 2c 20 61 6e 64 |nd comma|nds, and|
|00000500| 20 61 6c 73 6f 20 76 61 | 72 69 6f 75 73 0a 58 20 | also va|rious.X |
|00000510| 2a 20 6f 74 68 65 72 20 | 66 75 6e 63 74 69 6f 6e |* other |function|
|00000520| 73 20 66 6f 72 20 6d 61 | 69 6e 74 61 69 6e 69 6e |s for ma|intainin|
|00000530| 67 20 74 68 65 20 6f 76 | 65 72 68 65 61 64 20 6f |g the ov|erhead o|
|00000540| 66 20 74 68 65 20 69 6e | 74 65 72 70 72 65 74 65 |f the in|terprete|
|00000550| 72 20 28 76 61 72 69 61 | 62 6c 65 0a 58 20 2a 20 |r (varia|ble.X * |
|00000560| 73 74 6f 72 61 67 65 2c | 20 66 75 6e 63 74 69 6f |storage,| functio|
|00000570| 6e 20 63 61 6c 6c 73 2c | 20 65 74 63 2e 29 0a 58 |n calls,| etc.).X|
|00000580| 20 2a 0a 58 20 2a 09 43 | 6f 70 79 72 69 67 68 74 | *.X *.C|opyright|
|00000590| 20 28 43 29 20 31 39 37 | 39 2c 20 54 68 65 20 43 | (C) 197|9, The C|
|000005a0| 68 69 6c 64 72 65 6e 27 | 73 20 4d 75 73 65 75 6d |hildren'|s Museum|
|000005b0| 2c 20 42 6f 73 74 6f 6e | 2c 20 4d 61 73 73 2e 0a |, Boston|, Mass..|
|000005c0| 58 20 2a 09 57 72 69 74 | 74 65 6e 20 62 79 20 44 |X *.Writ|ten by D|
|000005d0| 6f 75 67 6c 61 73 20 42 | 2e 20 4b 6c 75 6e 64 65 |ouglas B|. Klunde|
|000005e0| 72 0a 58 20 2a 2f 0a 58 | 0a 58 23 69 6e 63 6c 75 |r.X */.X|.X#inclu|
|000005f0| 64 65 20 22 6c 6f 67 6f | 2e 68 22 0a 58 23 69 6e |de "logo|.h".X#in|
|00000600| 63 6c 75 64 65 20 3c 73 | 67 74 74 79 2e 68 3e 0a |clude <s|gtty.h>.|
|00000610| 58 23 69 6e 63 6c 75 64 | 65 20 3c 73 65 74 6a 6d |X#includ|e <setjm|
|00000620| 70 2e 68 3e 0a 58 65 78 | 74 65 72 6e 20 6a 6d 70 |p.h>.Xex|tern jmp|
|00000630| 5f 62 75 66 20 79 65 72 | 72 62 75 66 3b 0a 58 69 |_buf yer|rbuf;.Xi|
|00000640| 6e 74 20 74 76 65 63 5b | 32 5d 20 3d 7b 30 2c 30 |nt tvec[|2] ={0,0|
|00000650| 7d 3b 0a 58 65 78 74 65 | 72 6e 20 69 6e 74 20 79 |};.Xexte|rn int y|
|00000660| 79 63 68 61 72 2c 79 79 | 6c 76 61 6c 2c 79 79 6c |ychar,yy|lval,yyl|
|00000670| 69 6e 65 3b 0a 58 65 78 | 74 65 72 6e 20 69 6e 74 |ine;.Xex|tern int|
|00000680| 20 74 6f 70 66 2c 65 72 | 72 74 6f 6c 64 2c 66 6c | topf,er|rtold,fl|
|00000690| 61 67 71 75 69 74 3b 0a | 58 65 78 74 65 72 6e 20 |agquit;.|Xextern |
|000006a0| 46 49 4c 45 20 2a 6f 66 | 69 6c 65 3b 0a 58 65 78 |FILE *of|ile;.Xex|
|000006b0| 74 65 72 6e 20 63 68 61 | 72 20 2a 6f 73 74 72 69 |tern cha|r *ostri|
|000006c0| 6e 67 3b 0a 58 65 78 74 | 65 72 6e 20 63 68 61 72 |ng;.Xext|ern char|
|000006d0| 20 2a 67 65 74 62 70 74 | 3b 0a 58 65 78 74 65 72 | *getbpt|;.Xexter|
|000006e0| 6e 20 63 68 61 72 20 63 | 68 61 72 69 62 3b 0a 58 |n char c|harib;.X|
|000006f0| 65 78 74 65 72 6e 20 69 | 6e 74 20 70 66 6c 61 67 |extern i|nt pflag|
|00000700| 2c 6c 65 74 66 6c 61 67 | 3b 0a 58 65 78 74 65 72 |,letflag|;.Xexter|
|00000710| 6e 20 69 6e 74 20 63 75 | 72 72 74 65 73 74 3b 0a |n int cu|rrtest;.|
|00000720| 58 73 74 72 75 63 74 20 | 72 75 6e 62 6c 6f 63 6b |Xstruct |runblock|
|00000730| 20 2a 74 68 69 73 72 75 | 6e 20 3d 20 4e 55 4c 4c | *thisru|n = NULL|
|00000740| 3b 0a 58 65 78 74 65 72 | 6e 20 73 74 72 75 63 74 |;.Xexter|n struct|
|00000750| 20 70 6c 69 73 74 20 2a | 70 63 65 6c 6c 3b 09 2f | plist *|pcell;./|
|00000760| 2a 20 66 6f 72 20 50 41 | 55 53 45 20 2a 2f 0a 58 |* for PA|USE */.X|
|00000770| 65 78 74 65 72 6e 20 73 | 74 72 75 63 74 20 73 74 |extern s|truct st|
|00000780| 6b 66 72 61 6d 65 20 2a | 66 62 72 3b 0a 58 23 69 |kframe *|fbr;.X#i|
|00000790| 66 64 65 66 20 50 41 55 | 53 45 0a 58 65 78 74 65 |fdef PAU|SE.Xexte|
|000007a0| 72 6e 20 69 6e 74 20 70 | 61 75 73 65 6c 65 76 2c |rn int p|auselev,|
|000007b0| 70 73 69 67 66 6c 61 67 | 3b 0a 58 23 65 6e 64 69 |psigflag|;.X#endi|
|000007c0| 66 0a 58 0a 58 74 79 6f | 62 6a 28 74 65 78 74 29 |f.X.Xtyo|bj(text)|
|000007d0| 0a 58 72 65 67 69 73 74 | 65 72 20 73 74 72 75 63 |.Xregist|er struc|
|000007e0| 74 20 6f 62 6a 65 63 74 | 20 2a 74 65 78 74 3b 0a |t object| *text;.|
|000007f0| 58 7b 0a 58 09 72 65 67 | 69 73 74 65 72 20 73 74 |X{.X.reg|ister st|
|00000800| 72 75 63 74 20 6f 62 6a | 65 63 74 20 2a 74 65 6d |ruct obj|ect *tem|
|00000810| 70 3b 0a 58 09 63 68 61 | 72 20 73 74 72 5b 33 30 |p;.X.cha|r str[30|
|00000820| 5d 3b 0a 58 0a 58 09 69 | 66 20 28 74 65 78 74 3d |];.X.X.i|f (text=|
|00000830| 3d 30 29 20 72 65 74 75 | 72 6e 3b 0a 58 09 73 77 |=0) retu|rn;.X.sw|
|00000840| 69 74 63 68 20 28 74 65 | 78 74 2d 3e 6f 62 74 79 |itch (te|xt->obty|
|00000850| 70 65 29 20 7b 0a 58 09 | 09 63 61 73 65 20 43 4f |pe) {.X.|.case CO|
|00000860| 4e 53 3a 0a 58 09 09 09 | 66 6f 72 20 28 74 65 6d |NS:.X...|for (tem|
|00000870| 70 20 3d 20 74 65 78 74 | 3b 20 74 65 6d 70 3b 20 |p = text|; temp; |
|00000880| 74 65 6d 70 20 3d 20 74 | 65 6d 70 2d 3e 6f 62 63 |temp = t|emp->obc|
|00000890| 64 72 29 20 7b 0a 58 09 | 09 09 09 66 74 79 31 28 |dr) {.X.|...fty1(|
|000008a0| 74 65 6d 70 2d 3e 6f 62 | 63 61 72 29 3b 0a 58 09 |temp->ob|car);.X.|
|000008b0| 09 09 09 69 66 28 74 65 | 6d 70 2d 3e 6f 62 63 64 |...if(te|mp->obcd|
|000008c0| 72 29 20 70 75 74 63 31 | 28 27 20 27 29 3b 0a 58 |r) putc1|(' ');.X|
|000008d0| 09 09 09 7d 0a 58 09 09 | 09 62 72 65 61 6b 3b 0a |...}.X..|.break;.|
|000008e0| 58 09 09 63 61 73 65 20 | 53 54 52 49 4e 47 3a 0a |X..case |STRING:.|
|000008f0| 58 09 09 09 73 70 75 74 | 73 28 74 65 78 74 2d 3e |X...sput|s(text->|
|00000900| 6f 62 73 74 72 29 3b 0a | 58 09 09 09 62 72 65 61 |obstr);.|X...brea|
|00000910| 6b 3b 0a 58 09 09 63 61 | 73 65 20 49 4e 54 3a 0a |k;.X..ca|se INT:.|
|00000920| 58 09 09 09 73 70 72 69 | 6e 74 66 28 73 74 72 2c |X...spri|ntf(str,|
|00000930| 46 49 58 46 4d 54 2c 74 | 65 78 74 2d 3e 6f 62 69 |FIXFMT,t|ext->obi|
|00000940| 6e 74 29 3b 0a 58 09 09 | 09 73 70 75 74 73 28 73 |nt);.X..|.sputs(s|
|00000950| 74 72 29 3b 0a 58 09 09 | 09 62 72 65 61 6b 3b 0a |tr);.X..|.break;.|
|00000960| 58 09 09 63 61 73 65 20 | 44 55 42 3a 0a 58 09 09 |X..case |DUB:.X..|
|00000970| 09 73 70 72 69 6e 74 66 | 28 73 74 72 2c 22 25 67 |.sprintf|(str,"%g|
|00000980| 22 2c 74 65 78 74 2d 3e | 6f 62 64 75 62 29 3b 0a |",text->|obdub);.|
|00000990| 58 09 09 09 69 66 20 28 | 21 69 6e 64 65 78 28 73 |X...if (|!index(s|
|000009a0| 74 72 2c 27 2e 27 29 29 | 20 73 74 72 63 61 74 28 |tr,'.'))| strcat(|
|000009b0| 73 74 72 2c 22 2e 30 22 | 29 3b 0a 58 09 09 09 73 |str,".0"|);.X...s|
|000009c0| 70 75 74 73 28 73 74 72 | 29 3b 0a 58 09 09 09 62 |puts(str|);.X...b|
|000009d0| 72 65 61 6b 3b 0a 58 09 | 7d 0a 58 7d 0a 58 0a 58 |reak;.X.|}.X}.X.X|
|000009e0| 66 74 79 31 28 74 65 78 | 74 29 0a 58 72 65 67 69 |fty1(tex|t).Xregi|
|000009f0| 73 74 65 72 20 73 74 72 | 75 63 74 20 6f 62 6a 65 |ster str|uct obje|
|00000a00| 63 74 20 2a 74 65 78 74 | 3b 0a 58 7b 0a 58 09 69 |ct *text|;.X{.X.i|
|00000a10| 66 20 28 6c 69 73 74 70 | 28 74 65 78 74 29 29 20 |f (listp|(text)) |
|00000a20| 7b 0a 58 09 09 70 75 74 | 63 31 28 27 5b 27 29 3b |{.X..put|c1('[');|
|00000a30| 0a 58 09 09 74 79 6f 62 | 6a 28 74 65 78 74 29 3b |.X..tyob|j(text);|
|00000a40| 0a 58 09 09 70 75 74 63 | 31 28 27 5d 27 29 3b 0a |.X..putc|1(']');.|
|00000a50| 58 09 7d 20 65 6c 73 65 | 20 74 79 6f 62 6a 28 74 |X.} else| tyobj(t|
|00000a60| 65 78 74 29 3b 0a 58 7d | 0a 58 0a 58 66 69 6c 6c |ext);.X}|.X.Xfill|
|00000a70| 62 75 66 28 74 65 78 74 | 29 09 2f 2a 20 4c 6f 67 |buf(text|)./* Log|
|00000a80| 6f 20 54 59 50 45 20 2a | 2f 0a 58 72 65 67 69 73 |o TYPE *|/.Xregis|
|00000a90| 74 65 72 20 73 74 72 75 | 63 74 20 6f 62 6a 65 63 |ter stru|ct objec|
|00000aa0| 74 20 2a 74 65 78 74 3b | 0a 58 7b 0a 58 09 74 79 |t *text;|.X{.X.ty|
|00000ab0| 6f 62 6a 28 74 65 78 74 | 29 3b 0a 58 09 6d 66 72 |obj(text|);.X.mfr|
|00000ac0| 65 65 28 74 65 78 74 29 | 3b 0a 58 7d 0a 58 0a 58 |ee(text)|;.X}.X.X|
|00000ad0| 73 74 72 75 63 74 20 6f | 62 6a 65 63 74 20 2a 63 |struct o|bject *c|
|00000ae0| 6d 70 72 69 6e 74 28 61 | 72 67 29 0a 58 73 74 72 |mprint(a|rg).Xstr|
|00000af0| 75 63 74 20 6f 62 6a 65 | 63 74 20 2a 61 72 67 3b |uct obje|ct *arg;|
|00000b00| 0a 58 7b 0a 58 09 66 69 | 6c 6c 62 75 66 28 61 72 |.X{.X.fi|llbuf(ar|
|00000b10| 67 29 3b 0a 58 09 70 75 | 74 63 68 61 72 28 27 5c |g);.X.pu|tchar('\|
|00000b20| 6e 27 29 3b 0a 58 09 72 | 65 74 75 72 6e 20 28 28 |n');.X.r|eturn ((|
|00000b30| 73 74 72 75 63 74 20 6f | 62 6a 65 63 74 20 2a 29 |struct o|bject *)|
|00000b40| 28 2d 31 29 29 3b 0a 58 | 7d 0a 58 0a 58 73 74 72 |(-1));.X|}.X.Xstr|
|00000b50| 75 63 74 20 6f 62 6a 65 | 63 74 20 2a 63 6d 74 79 |uct obje|ct *cmty|
|00000b60| 70 65 28 61 72 67 29 0a | 58 73 74 72 75 63 74 20 |pe(arg).|Xstruct |
|00000b70| 6f 62 6a 65 63 74 20 2a | 61 72 67 3b 0a 58 7b 0a |object *|arg;.X{.|
|00000b80| 58 09 66 69 6c 6c 62 75 | 66 28 61 72 67 29 3b 0a |X.fillbu|f(arg);.|
|00000b90| 58 09 72 65 74 75 72 6e | 20 28 28 73 74 72 75 63 |X.return| ((struc|
|00000ba0| 74 20 6f 62 6a 65 63 74 | 20 2a 29 28 2d 31 29 29 |t object| *)(-1))|
|00000bb0| 3b 0a 58 7d 0a 58 0a 58 | 73 74 72 75 63 74 20 6f |;.X}.X.X|struct o|
|00000bc0| 62 6a 65 63 74 20 2a 63 | 6d 66 70 72 69 6e 74 28 |bject *c|mfprint(|
|00000bd0| 61 72 67 29 0a 58 73 74 | 72 75 63 74 20 6f 62 6a |arg).Xst|ruct obj|
|00000be0| 65 63 74 20 2a 61 72 67 | 3b 0a 58 7b 0a 58 09 66 |ect *arg|;.X{.X.f|
|00000bf0| 74 79 31 28 61 72 67 29 | 3b 0a 58 09 70 75 74 63 |ty1(arg)|;.X.putc|
|00000c00| 68 61 72 28 27 5c 6e 27 | 29 3b 0a 58 09 6d 66 72 |har('\n'|);.X.mfr|
|00000c10| 65 65 28 61 72 67 29 3b | 0a 58 09 72 65 74 75 72 |ee(arg);|.X.retur|
|00000c20| 6e 20 28 28 73 74 72 75 | 63 74 20 6f 62 6a 65 63 |n ((stru|ct objec|
|00000c30| 74 20 2a 29 28 2d 31 29 | 29 3b 0a 58 7d 0a 58 0a |t *)(-1)|);.X}.X.|
|00000c40| 58 73 74 72 75 63 74 20 | 6f 62 6a 65 63 74 20 2a |Xstruct |object *|
|00000c50| 63 6d 66 74 79 70 65 28 | 61 72 67 29 0a 58 73 74 |cmftype(|arg).Xst|
|00000c60| 72 75 63 74 20 6f 62 6a | 65 63 74 20 2a 61 72 67 |ruct obj|ect *arg|
|00000c70| 3b 0a 58 7b 0a 58 09 66 | 74 79 31 28 61 72 67 29 |;.X{.X.f|ty1(arg)|
|00000c80| 3b 0a 58 09 6d 66 72 65 | 65 28 61 72 67 29 3b 0a |;.X.mfre|e(arg);.|
|00000c90| 58 09 72 65 74 75 72 6e | 20 28 28 73 74 72 75 63 |X.return| ((struc|
|00000ca0| 74 20 6f 62 6a 65 63 74 | 20 2a 29 28 2d 31 29 29 |t object| *)(-1))|
|00000cb0| 3b 0a 58 7d 0a 58 0a 58 | 73 65 74 66 69 6c 65 28 |;.X}.X.X|setfile(|
|00000cc0| 66 69 6c 65 29 0a 58 72 | 65 67 69 73 74 65 72 20 |file).Xr|egister |
|00000cd0| 73 74 72 75 63 74 20 6f | 62 6a 65 63 74 20 2a 66 |struct o|bject *f|
|00000ce0| 69 6c 65 3b 0a 58 7b 0a | 58 09 66 69 6c 65 20 3d |ile;.X{.|X.file =|
|00000cf0| 20 6e 75 6d 63 6f 6e 76 | 28 66 69 6c 65 2c 22 46 | numconv|(file,"F|
|00000d00| 69 6c 65 20 63 6f 6d 6d | 61 6e 64 22 29 3b 0a 58 |ile comm|and");.X|
|00000d10| 09 69 66 20 28 21 69 6e | 74 70 28 66 69 6c 65 29 |.if (!in|tp(file)|
|00000d20| 29 20 75 6e 67 6f 6f 64 | 28 22 46 69 6c 65 20 63 |) ungood|("File c|
|00000d30| 6f 6d 6d 61 6e 64 22 2c | 66 69 6c 65 29 3b 0a 58 |ommand",|file);.X|
|00000d40| 09 6f 66 69 6c 65 20 3d | 20 28 46 49 4c 45 20 2a |.ofile =| (FILE *|
|00000d50| 29 28 28 69 6e 74 29 28 | 66 69 6c 65 2d 3e 6f 62 |)((int)(|file->ob|
|00000d60| 69 6e 74 29 29 3b 0a 58 | 09 6d 66 72 65 65 28 66 |int));.X|.mfree(f|
|00000d70| 69 6c 65 29 3b 0a 58 7d | 0a 58 0a 58 66 69 6c 65 |ile);.X}|.X.Xfile|
|00000d80| 70 72 69 6e 74 28 66 69 | 6c 65 2c 74 65 78 74 29 |print(fi|le,text)|
|00000d90| 0a 58 72 65 67 69 73 74 | 65 72 20 73 74 72 75 63 |.Xregist|er struc|
|00000da0| 74 20 6f 62 6a 65 63 74 | 20 2a 66 69 6c 65 2c 2a |t object| *file,*|
|00000db0| 74 65 78 74 3b 0a 58 7b | 0a 58 09 73 65 74 66 69 |text;.X{|.X.setfi|
|00000dc0| 6c 65 28 66 69 6c 65 29 | 3b 0a 58 09 66 69 6c 6c |le(file)|;.X.fill|
|00000dd0| 62 75 66 28 74 65 78 74 | 29 3b 0a 58 09 66 70 75 |buf(text|);.X.fpu|
|00000de0| 74 63 28 27 5c 6e 27 2c | 6f 66 69 6c 65 29 3b 0a |tc('\n',|ofile);.|
|00000df0| 58 09 6f 66 69 6c 65 20 | 3d 20 4e 55 4c 4c 3b 0a |X.ofile |= NULL;.|
|00000e00| 58 7d 0a 58 0a 58 66 69 | 6c 65 66 70 72 69 6e 74 |X}.X.Xfi|lefprint|
|00000e10| 28 66 69 6c 65 2c 74 65 | 78 74 29 0a 58 72 65 67 |(file,te|xt).Xreg|
|00000e20| 69 73 74 65 72 20 73 74 | 72 75 63 74 20 6f 62 6a |ister st|ruct obj|
|00000e30| 65 63 74 20 2a 66 69 6c | 65 2c 2a 74 65 78 74 3b |ect *fil|e,*text;|
|00000e40| 0a 58 7b 0a 58 09 73 65 | 74 66 69 6c 65 28 66 69 |.X{.X.se|tfile(fi|
|00000e50| 6c 65 29 3b 0a 58 09 66 | 74 79 31 28 74 65 78 74 |le);.X.f|ty1(text|
|00000e60| 29 3b 0a 58 09 6d 66 72 | 65 65 28 74 65 78 74 29 |);.X.mfr|ee(text)|
|00000e70| 3b 0a 58 09 66 70 75 74 | 63 28 27 5c 6e 27 2c 6f |;.X.fput|c('\n',o|
|00000e80| 66 69 6c 65 29 3b 0a 58 | 09 6f 66 69 6c 65 20 3d |file);.X|.ofile =|
|00000e90| 20 4e 55 4c 4c 3b 0a 58 | 7d 0a 58 0a 58 66 69 6c | NULL;.X|}.X.Xfil|
|00000ea0| 65 74 79 70 65 28 66 69 | 6c 65 2c 74 65 78 74 29 |etype(fi|le,text)|
|00000eb0| 0a 58 72 65 67 69 73 74 | 65 72 20 73 74 72 75 63 |.Xregist|er struc|
|00000ec0| 74 20 6f 62 6a 65 63 74 | 20 2a 66 69 6c 65 2c 2a |t object| *file,*|
|00000ed0| 74 65 78 74 3b 0a 58 7b | 0a 58 09 73 65 74 66 69 |text;.X{|.X.setfi|
|00000ee0| 6c 65 28 66 69 6c 65 29 | 3b 0a 58 09 66 69 6c 6c |le(file)|;.X.fill|
|00000ef0| 62 75 66 28 74 65 78 74 | 29 3b 0a 58 09 6f 66 69 |buf(text|);.X.ofi|
|00000f00| 6c 65 20 3d 20 4e 55 4c | 4c 3b 0a 58 7d 0a 58 0a |le = NUL|L;.X}.X.|
|00000f10| 58 66 69 6c 65 66 74 79 | 70 65 28 66 69 6c 65 2c |Xfilefty|pe(file,|
|00000f20| 74 65 78 74 29 0a 58 73 | 74 72 75 63 74 20 6f 62 |text).Xs|truct ob|
|00000f30| 6a 65 63 74 20 2a 66 69 | 6c 65 2c 2a 74 65 78 74 |ject *fi|le,*text|
|00000f40| 3b 0a 58 7b 0a 58 09 73 | 65 74 66 69 6c 65 28 66 |;.X{.X.s|etfile(f|
|00000f50| 69 6c 65 29 3b 0a 58 09 | 66 74 79 31 28 74 65 78 |ile);.X.|fty1(tex|
|00000f60| 74 29 3b 0a 58 09 6d 66 | 72 65 65 28 74 65 78 74 |t);.X.mf|ree(text|
|00000f70| 29 3b 0a 58 09 6f 66 69 | 6c 65 20 3d 20 4e 55 4c |);.X.ofi|le = NUL|
|00000f80| 4c 3b 0a 58 7d 0a 58 0a | 58 73 74 72 75 63 74 20 |L;.X}.X.|Xstruct |
|00000f90| 6f 62 6a 65 63 74 20 2a | 6f 70 65 6e 66 69 6c 65 |object *|openfile|
|00000fa0| 28 6e 61 6d 65 2c 74 79 | 70 65 29 0a 58 72 65 67 |(name,ty|pe).Xreg|
|00000fb0| 69 73 74 65 72 20 73 74 | 72 75 63 74 20 6f 62 6a |ister st|ruct obj|
|00000fc0| 65 63 74 20 2a 6e 61 6d | 65 3b 0a 58 72 65 67 69 |ect *nam|e;.Xregi|
|00000fd0| 73 74 65 72 20 63 68 61 | 72 20 2a 74 79 70 65 3b |ster cha|r *type;|
|00000fe0| 0a 58 7b 0a 58 09 46 49 | 4c 45 20 2a 66 69 6c 64 |.X{.X.FI|LE *fild|
|00000ff0| 65 73 3b 0a 58 0a 58 09 | 69 66 20 28 21 73 74 72 |es;.X.X.|if (!str|
|00001000| 69 6e 67 70 28 6e 61 6d | 65 29 29 20 75 6e 67 6f |ingp(nam|e)) ungo|
|00001010| 6f 64 28 22 4f 70 65 6e | 20 66 69 6c 65 22 2c 6e |od("Open| file",n|
|00001020| 61 6d 65 29 3b 0a 58 09 | 66 69 6c 64 65 73 20 3d |ame);.X.|fildes =|
|00001030| 20 66 6f 70 65 6e 28 6e | 61 6d 65 2d 3e 6f 62 73 | fopen(n|ame->obs|
|00001040| 74 72 2c 74 79 70 65 29 | 3b 0a 58 09 69 66 20 28 |tr,type)|;.X.if (|
|00001050| 21 66 69 6c 64 65 73 29 | 20 7b 0a 58 09 09 70 66 |!fildes)| {.X..pf|
|00001060| 31 28 22 43 61 6e 27 74 | 20 6f 70 65 6e 20 66 69 |1("Can't| open fi|
|00001070| 6c 65 20 25 6c 2e 5c 6e | 22 2c 6e 61 6d 65 29 3b |le %l.\n|",name);|
|00001080| 0a 58 09 09 65 72 72 68 | 61 6e 64 28 29 3b 0a 58 |.X..errh|and();.X|
|00001090| 09 7d 0a 58 09 6d 66 72 | 65 65 28 6e 61 6d 65 29 |.}.X.mfr|ee(name)|
|000010a0| 3b 0a 58 09 72 65 74 75 | 72 6e 28 6c 6f 63 61 6c |;.X.retu|rn(local|
|000010b0| 69 7a 65 28 6f 62 6a 69 | 6e 74 28 28 46 49 58 4e |ize(obji|nt((FIXN|
|000010c0| 55 4d 29 28 28 69 6e 74 | 29 66 69 6c 64 65 73 29 |UM)((int|)fildes)|
|000010d0| 29 29 29 3b 0a 58 7d 0a | 58 0a 58 73 74 72 75 63 |)));.X}.|X.Xstruc|
|000010e0| 74 20 6f 62 6a 65 63 74 | 20 2a 6c 6f 72 65 61 64 |t object| *loread|
|000010f0| 28 61 72 67 29 0a 58 73 | 74 72 75 63 74 20 6f 62 |(arg).Xs|truct ob|
|00001100| 6a 65 63 74 20 2a 61 72 | 67 3b 0a 58 7b 0a 58 09 |ject *ar|g;.X{.X.|
|00001110| 72 65 74 75 72 6e 28 6f | 70 65 6e 66 69 6c 65 28 |return(o|penfile(|
|00001120| 61 72 67 2c 22 72 22 29 | 29 3b 0a 58 7d 0a 58 0a |arg,"r")|);.X}.X.|
|00001130| 58 73 74 72 75 63 74 20 | 6f 62 6a 65 63 74 20 2a |Xstruct |object *|
|00001140| 6c 6f 77 72 69 74 65 28 | 61 72 67 29 0a 58 73 74 |lowrite(|arg).Xst|
|00001150| 72 75 63 74 20 6f 62 6a | 65 63 74 20 2a 61 72 67 |ruct obj|ect *arg|
|00001160| 3b 0a 58 7b 0a 58 09 72 | 65 74 75 72 6e 28 6f 70 |;.X{.X.r|eturn(op|
|00001170| 65 6e 66 69 6c 65 28 61 | 72 67 2c 22 77 22 29 29 |enfile(a|rg,"w"))|
|00001180| 3b 0a 58 7d 0a 58 0a 58 | 73 74 72 75 63 74 20 6f |;.X}.X.X|struct o|
|00001190| 62 6a 65 63 74 20 2a 63 | 61 6c 6c 75 6e 69 78 28 |bject *c|allunix(|
|000011a0| 63 6d 64 29 0a 58 72 65 | 67 69 73 74 65 72 20 73 |cmd).Xre|gister s|
|000011b0| 74 72 75 63 74 20 6f 62 | 6a 65 63 74 20 2a 63 6d |truct ob|ject *cm|
|000011c0| 64 3b 0a 58 7b 0a 58 09 | 72 65 67 69 73 74 65 72 |d;.X{.X.|register|
|000011d0| 20 73 74 72 75 63 74 20 | 6f 62 6a 65 63 74 20 2a | struct |object *|
|000011e0| 73 74 72 3b 0a 58 0a 58 | 09 73 74 72 20 3d 20 73 |str;.X.X|.str = s|
|000011f0| 74 72 69 6e 67 66 6f 72 | 6d 28 63 6d 64 29 3b 0a |tringfor|m(cmd);.|
|00001200| 58 09 73 79 73 74 65 6d | 28 73 74 72 2d 3e 6f 62 |X.system|(str->ob|
|00001210| 73 74 72 29 3b 0a 58 09 | 6d 66 72 65 65 28 73 74 |str);.X.|mfree(st|
|00001220| 72 29 3b 0a 58 09 6d 66 | 72 65 65 28 63 6d 64 29 |r);.X.mf|ree(cmd)|
|00001230| 3b 0a 58 09 72 65 74 75 | 72 6e 20 28 28 73 74 72 |;.X.retu|rn ((str|
|00001240| 75 63 74 20 6f 62 6a 65 | 63 74 20 2a 29 28 2d 31 |uct obje|ct *)(-1|
|00001250| 29 29 3b 0a 58 7d 0a 58 | 0a 58 73 74 72 75 63 74 |));.X}.X|.Xstruct|
|00001260| 20 6f 62 6a 65 63 74 20 | 2a 66 69 6c 65 63 6c 6f | object |*fileclo|
|00001270| 73 65 28 66 69 6c 65 29 | 0a 58 72 65 67 69 73 74 |se(file)|.Xregist|
|00001280| 65 72 20 73 74 72 75 63 | 74 20 6f 62 6a 65 63 74 |er struc|t object|
|00001290| 20 2a 66 69 6c 65 3b 0a | 58 7b 0a 58 09 73 65 74 | *file;.|X{.X.set|
|000012a0| 66 69 6c 65 28 66 69 6c | 65 29 3b 0a 58 09 66 63 |file(fil|e);.X.fc|
|000012b0| 6c 6f 73 65 28 6f 66 69 | 6c 65 29 3b 0a 58 09 6f |lose(ofi|le);.X.o|
|000012c0| 66 69 6c 65 20 3d 20 4e | 55 4c 4c 3b 0a 58 09 72 |file = N|ULL;.X.r|
|000012d0| 65 74 75 72 6e 20 28 28 | 73 74 72 75 63 74 20 6f |eturn ((|struct o|
|000012e0| 62 6a 65 63 74 20 2a 29 | 28 2d 31 29 29 3b 0a 58 |bject *)|(-1));.X|
|000012f0| 7d 0a 58 0a 58 73 74 72 | 75 63 74 20 6f 62 6a 65 |}.X.Xstr|uct obje|
|00001300| 63 74 20 2a 66 69 6c 65 | 72 65 61 64 28 66 69 6c |ct *file|read(fil|
|00001310| 65 2c 68 6f 77 29 0a 58 | 72 65 67 69 73 74 65 72 |e,how).X|register|
|00001320| 20 73 74 72 75 63 74 20 | 6f 62 6a 65 63 74 20 2a | struct |object *|
|00001330| 66 69 6c 65 3b 0a 58 69 | 6e 74 20 68 6f 77 3b 20 |file;.Xi|nt how; |
|00001340| 2f 2a 20 30 20 66 6f 72 | 20 66 69 6c 65 72 65 61 |/* 0 for| filerea|
|00001350| 64 20 28 72 65 74 75 72 | 6e 73 20 6c 69 73 74 29 |d (retur|ns list)|
|00001360| 2c 20 31 20 66 6f 72 20 | 66 69 6c 65 77 6f 72 64 |, 1 for |fileword|
|00001370| 20 28 72 65 74 75 72 6e | 73 20 73 74 72 29 20 2a | (return|s str) *|
|00001380| 2f 0a 58 7b 0a 58 09 63 | 68 61 72 20 73 74 72 5b |/.X{.X.c|har str[|
|00001390| 32 30 30 5d 3b 0a 58 09 | 72 65 67 69 73 74 65 72 |200];.X.|register|
|000013a0| 20 73 74 72 75 63 74 20 | 6f 62 6a 65 63 74 20 2a | struct |object *|
|000013b0| 78 3b 0a 58 09 63 68 61 | 72 20 2a 73 76 67 62 70 |x;.X.cha|r *svgbp|
|000013c0| 74 3b 0a 58 09 63 68 61 | 72 20 63 3b 0a 58 0a 58 |t;.X.cha|r c;.X.X|
|000013d0| 09 73 65 74 66 69 6c 65 | 28 66 69 6c 65 29 3b 0a |.setfile|(file);.|
|000013e0| 58 09 66 67 65 74 73 28 | 73 74 72 2c 32 30 30 2c |X.fgets(|str,200,|
|000013f0| 6f 66 69 6c 65 29 3b 0a | 58 09 69 66 20 28 66 65 |ofile);.|X.if (fe|
|00001400| 6f 66 28 6f 66 69 6c 65 | 29 29 20 7b 0a 58 09 09 |of(ofile|)) {.X..|
|00001410| 6f 66 69 6c 65 20 3d 20 | 4e 55 4c 4c 3b 0a 58 09 |ofile = |NULL;.X.|
|00001420| 09 69 66 20 28 68 6f 77 | 29 20 72 65 74 75 72 6e |.if (how|) return|
|00001430| 28 28 73 74 72 75 63 74 | 20 6f 62 6a 65 63 74 20 |((struct| object |
|00001440| 2a 29 30 29 3b 0a 58 09 | 09 72 65 74 75 72 6e 28 |*)0);.X.|.return(|
|00001450| 6c 6f 63 61 6c 69 7a 65 | 28 6f 62 6a 63 70 73 74 |localize|(objcpst|
|00001460| 72 28 22 22 29 29 29 3b | 0a 58 09 7d 0a 58 09 6f |r("")));|.X.}.X.o|
|00001470| 66 69 6c 65 20 3d 20 4e | 55 4c 4c 3b 0a 58 09 69 |file = N|ULL;.X.i|
|00001480| 66 20 28 68 6f 77 29 20 | 7b 0a 58 09 09 73 74 72 |f (how) |{.X..str|
|00001490| 5b 73 74 72 6c 65 6e 28 | 73 74 72 29 2d 31 5d 20 |[strlen(|str)-1] |
|000014a0| 3d 20 27 5c 30 27 3b 0a | 58 09 09 72 65 74 75 72 |= '\0';.|X..retur|
|000014b0| 6e 28 6c 6f 63 61 6c 69 | 7a 65 28 6f 62 6a 63 70 |n(locali|ze(objcp|
|000014c0| 73 74 72 28 73 74 72 29 | 29 29 3b 0a 58 09 7d 0a |str(str)|));.X.}.|
|000014d0| 58 09 73 74 72 5b 73 74 | 72 6c 65 6e 28 73 74 72 |X.str[st|rlen(str|
|000014e0| 29 2d 31 5d 20 3d 20 27 | 5d 27 3b 0a 58 09 63 20 |)-1] = '|]';.X.c |
|000014f0| 3d 20 63 68 61 72 69 62 | 3b 0a 58 09 63 68 61 72 |= charib|;.X.char|
|00001500| 69 62 20 3d 20 30 3b 0a | 58 09 73 76 67 62 70 74 |ib = 0;.|X.svgbpt|
|00001510| 20 3d 20 67 65 74 62 70 | 74 3b 0a 58 09 67 65 74 | = getbp|t;.X.get|
|00001520| 62 70 74 20 3d 20 73 74 | 72 3b 0a 58 09 78 20 3d |bpt = st|r;.X.x =|
|00001530| 20 6d 61 6b 65 6c 69 73 | 74 28 29 3b 0a 58 09 67 | makelis|t();.X.g|
|00001540| 65 74 62 70 74 20 3d 20 | 73 76 67 62 70 74 3b 0a |etbpt = |svgbpt;.|
|00001550| 58 09 63 68 61 72 69 62 | 20 3d 20 63 3b 0a 58 09 |X.charib| = c;.X.|
|00001560| 72 65 74 75 72 6e 28 78 | 29 3b 0a 58 7d 0a 58 0a |return(x|);.X}.X.|
|00001570| 58 73 74 72 75 63 74 20 | 6f 62 6a 65 63 74 20 2a |Xstruct |object *|
|00001580| 6c 66 72 65 61 64 28 61 | 72 67 29 0a 58 73 74 72 |lfread(a|rg).Xstr|
|00001590| 75 63 74 20 6f 62 6a 65 | 63 74 20 2a 61 72 67 3b |uct obje|ct *arg;|
|000015a0| 0a 58 7b 0a 58 09 72 65 | 74 75 72 6e 28 66 69 6c |.X{.X.re|turn(fil|
|000015b0| 65 72 65 61 64 28 61 72 | 67 2c 30 29 29 3b 0a 58 |eread(ar|g,0));.X|
|000015c0| 7d 0a 58 0a 58 73 74 72 | 75 63 74 20 6f 62 6a 65 |}.X.Xstr|uct obje|
|000015d0| 63 74 20 2a 6c 66 77 6f | 72 64 28 61 72 67 29 0a |ct *lfwo|rd(arg).|
|000015e0| 58 73 74 72 75 63 74 20 | 6f 62 6a 65 63 74 20 2a |Xstruct |object *|
|000015f0| 61 72 67 3b 0a 58 7b 0a | 58 09 72 65 74 75 72 6e |arg;.X{.|X.return|
|00001600| 28 66 69 6c 65 72 65 61 | 64 28 61 72 67 2c 31 29 |(filerea|d(arg,1)|
|00001610| 29 3b 0a 58 7d 0a 58 0a | 58 73 74 72 75 63 74 20 |);.X}.X.|Xstruct |
|00001620| 6f 62 6a 65 63 74 20 2a | 6c 73 6c 65 65 70 28 74 |object *|lsleep(t|
|00001630| 69 6d 29 09 2f 2a 20 77 | 61 69 74 20 2a 2f 0a 58 |im)./* w|ait */.X|
|00001640| 72 65 67 69 73 74 65 72 | 20 73 74 72 75 63 74 20 |register| struct |
|00001650| 6f 62 6a 65 63 74 20 2a | 74 69 6d 3b 0a 58 7b 0a |object *|tim;.X{.|
|00001660| 58 09 69 6e 74 20 69 74 | 69 6d 3b 0a 58 0a 58 09 |X.int it|im;.X.X.|
|00001670| 74 69 6d 20 3d 20 6e 75 | 6d 63 6f 6e 76 28 74 69 |tim = nu|mconv(ti|
|00001680| 6d 2c 22 57 61 69 74 22 | 29 3b 0a 58 09 69 66 20 |m,"Wait"|);.X.if |
|00001690| 28 69 6e 74 70 28 74 69 | 6d 29 29 20 69 74 69 6d |(intp(ti|m)) itim|
|000016a0| 20 3d 20 74 69 6d 2d 3e | 6f 62 69 6e 74 3b 0a 58 | = tim->|obint;.X|
|000016b0| 09 65 6c 73 65 20 69 74 | 69 6d 20 3d 20 74 69 6d |.else it|im = tim|
|000016c0| 2d 3e 6f 62 64 75 62 3b | 0a 58 09 6d 66 72 65 65 |->obdub;|.X.mfree|
|000016d0| 28 74 69 6d 29 3b 0a 58 | 09 73 6c 65 65 70 28 69 |(tim);.X|.sleep(i|
|000016e0| 74 69 6d 29 3b 0a 58 09 | 72 65 74 75 72 6e 20 28 |tim);.X.|return (|
|000016f0| 28 73 74 72 75 63 74 20 | 6f 62 6a 65 63 74 20 2a |(struct |object *|
|00001700| 29 28 2d 31 29 29 3b 0a | 58 7d 0a 58 0a 58 73 74 |)(-1));.|X}.X.Xst|
|00001710| 72 75 63 74 20 6f 62 6a | 65 63 74 20 2a 69 6e 70 |ruct obj|ect *inp|
|00001720| 75 74 28 66 6c 61 67 29 | 0a 58 69 6e 74 20 66 6c |ut(flag)|.Xint fl|
|00001730| 61 67 3b 09 2f 2a 20 30 | 20 66 6f 72 20 72 65 61 |ag;./* 0| for rea|
|00001740| 64 6c 69 73 74 2c 20 31 | 20 66 6f 72 20 72 65 71 |dlist, 1| for req|
|00001750| 75 65 73 74 20 2a 2f 0a | 58 7b 0a 58 09 69 6e 74 |uest */.|X{.X.int|
|00001760| 20 6c 65 6e 3b 0a 58 09 | 63 68 61 72 20 73 5b 35 | len;.X.|char s[5|
|00001770| 31 32 5d 3b 0a 58 09 72 | 65 67 69 73 74 65 72 20 |12];.X.r|egister |
|00001780| 73 74 72 75 63 74 20 6f | 62 6a 65 63 74 20 2a 78 |struct o|bject *x|
|00001790| 3b 0a 58 09 63 68 61 72 | 20 2a 73 76 67 62 70 74 |;.X.char| *svgbpt|
|000017a0| 3b 0a 58 09 63 68 61 72 | 20 63 3b 0a 58 0a 58 09 |;.X.char| c;.X.X.|
|000017b0| 69 66 20 28 66 6c 61 67 | 29 20 70 75 74 63 68 61 |if (flag|) putcha|
|000017c0| 72 28 27 3f 27 29 3b 0a | 58 09 66 66 6c 75 73 68 |r('?');.|X.fflush|
|000017d0| 28 73 74 64 6f 75 74 29 | 3b 0a 58 09 6c 65 6e 20 |(stdout)|;.X.len |
|000017e0| 3d 20 72 65 61 64 28 30 | 2c 73 2c 35 31 32 29 3b |= read(0|,s,512);|
|000017f0| 0a 58 09 69 66 20 28 6c | 65 6e 20 3c 3d 20 30 29 |.X.if (l|en <= 0)|
|00001800| 20 6c 65 6e 20 3d 20 31 | 3b 0a 58 09 73 5b 6c 65 | len = 1|;.X.s[le|
|00001810| 6e 2d 31 5d 3d 27 5d 27 | 3b 0a 58 09 63 20 3d 20 |n-1]=']'|;.X.c = |
|00001820| 63 68 61 72 69 62 3b 0a | 58 09 63 68 61 72 69 62 |charib;.|X.charib|
|00001830| 20 3d 20 30 3b 0a 58 09 | 73 76 67 62 70 74 20 3d | = 0;.X.|svgbpt =|
|00001840| 20 67 65 74 62 70 74 3b | 0a 58 09 67 65 74 62 70 | getbpt;|.X.getbp|
|00001850| 74 20 3d 20 73 3b 0a 58 | 09 78 20 3d 20 6d 61 6b |t = s;.X|.x = mak|
|00001860| 65 6c 69 73 74 28 29 3b | 0a 58 09 67 65 74 62 70 |elist();|.X.getbp|
|00001870| 74 20 3d 20 73 76 67 62 | 70 74 3b 0a 58 09 63 68 |t = svgb|pt;.X.ch|
|00001880| 61 72 69 62 20 3d 20 63 | 3b 0a 58 09 72 65 74 75 |arib = c|;.X.retu|
|00001890| 72 6e 20 28 78 29 3b 0a | 58 7d 0a 58 0a 58 73 74 |rn (x);.|X}.X.Xst|
|000018a0| 72 75 63 74 20 6f 62 6a | 65 63 74 20 2a 72 65 61 |ruct obj|ect *rea|
|000018b0| 64 6c 69 73 74 28 29 20 | 7b 0a 58 09 72 65 74 75 |dlist() |{.X.retu|
|000018c0| 72 6e 28 69 6e 70 75 74 | 28 30 29 29 3b 0a 58 7d |rn(input|(0));.X}|
|000018d0| 0a 58 0a 58 73 74 72 75 | 63 74 20 6f 62 6a 65 63 |.X.Xstru|ct objec|
|000018e0| 74 20 2a 72 65 71 75 65 | 73 74 28 29 20 7b 0a 58 |t *reque|st() {.X|
|000018f0| 09 72 65 74 75 72 6e 28 | 69 6e 70 75 74 28 31 29 |.return(|input(1)|
|00001900| 29 3b 0a 58 7d 0a 58 0a | 58 73 74 72 75 63 74 20 |);.X}.X.|Xstruct |
|00001910| 6f 62 6a 65 63 74 20 2a | 6c 74 69 6d 65 28 29 09 |object *|ltime().|
|00001920| 09 2f 2a 20 4c 4f 47 4f | 20 74 69 6d 65 20 2a 2f |./* LOGO| time */|
|00001930| 0a 58 7b 0a 58 09 63 68 | 61 72 20 63 74 69 6d 5b |.X{.X.ch|ar ctim[|
|00001940| 35 30 5d 3b 0a 58 09 72 | 65 67 69 73 74 65 72 20 |50];.X.r|egister |
|00001950| 73 74 72 75 63 74 20 6f | 62 6a 65 63 74 20 2a 78 |struct o|bject *x|
|00001960| 3b 0a 58 09 63 68 61 72 | 20 2a 73 76 67 62 70 74 |;.X.char| *svgbpt|
|00001970| 3b 0a 58 09 63 68 61 72 | 20 63 3b 0a 58 0a 58 09 |;.X.char| c;.X.X.|
|00001980| 74 69 6d 65 28 74 76 65 | 63 29 3b 0a 58 09 73 74 |time(tve|c);.X.st|
|00001990| 72 63 70 79 28 63 74 69 | 6d 2c 63 74 69 6d 65 28 |rcpy(cti|m,ctime(|
|000019a0| 74 76 65 63 29 29 3b 0a | 58 09 63 74 69 6d 5b 73 |tvec));.|X.ctim[s|
|000019b0| 74 72 6c 65 6e 28 63 74 | 69 6d 29 2d 31 5d 3d 27 |trlen(ct|im)-1]='|
|000019c0| 5d 27 3b 0a 58 09 63 20 | 3d 20 63 68 61 72 69 62 |]';.X.c |= charib|
|000019d0| 3b 0a 58 09 63 68 61 72 | 69 62 20 3d 20 30 3b 0a |;.X.char|ib = 0;.|
|000019e0| 58 09 73 76 67 62 70 74 | 20 3d 20 67 65 74 62 70 |X.svgbpt| = getbp|
|000019f0| 74 3b 0a 58 09 67 65 74 | 62 70 74 20 3d 20 63 74 |t;.X.get|bpt = ct|
|00001a00| 69 6d 3b 0a 58 09 78 20 | 3d 20 6d 61 6b 65 6c 69 |im;.X.x |= makeli|
|00001a10| 73 74 28 29 3b 0a 58 09 | 67 65 74 62 70 74 20 3d |st();.X.|getbpt =|
|00001a20| 20 73 76 67 62 70 74 3b | 0a 58 09 63 68 61 72 69 | svgbpt;|.X.chari|
|00001a30| 62 20 3d 20 63 3b 0a 58 | 09 72 65 74 75 72 6e 28 |b = c;.X|.return(|
|00001a40| 78 29 3b 0a 58 7d 0a 58 | 0a 58 64 6f 72 75 6e 28 |x);.X}.X|.Xdorun(|
|00001a50| 61 72 67 2c 6e 75 6d 29 | 0a 58 73 74 72 75 63 74 |arg,num)|.Xstruct|
|00001a60| 20 6f 62 6a 65 63 74 20 | 2a 61 72 67 3b 0a 58 46 | object |*arg;.XF|
|00001a70| 49 58 4e 55 4d 20 6e 75 | 6d 3b 0a 58 7b 0a 58 09 |IXNUM nu|m;.X{.X.|
|00001a80| 72 65 67 69 73 74 65 72 | 20 73 74 72 75 63 74 20 |register| struct |
|00001a90| 6f 62 6a 65 63 74 20 2a | 73 74 72 3b 0a 58 09 72 |object *|str;.X.r|
|00001aa0| 65 67 69 73 74 65 72 20 | 73 74 72 75 63 74 20 72 |egister |struct r|
|00001ab0| 75 6e 62 6c 6f 63 6b 20 | 2a 72 74 65 6d 70 3b 0a |unblock |*rtemp;.|
|00001ac0| 58 0a 58 09 72 74 65 6d | 70 20 3d 20 28 73 74 72 |X.X.rtem|p = (str|
|00001ad0| 75 63 74 20 72 75 6e 62 | 6c 6f 63 6b 20 2a 29 63 |uct runb|lock *)c|
|00001ae0| 6b 6d 61 6c 6c 6f 63 28 | 73 69 7a 65 6f 66 28 73 |kmalloc(|sizeof(s|
|00001af0| 74 72 75 63 74 20 72 75 | 6e 62 6c 6f 63 6b 29 29 |truct ru|nblock))|
|00001b00| 3b 0a 58 09 69 66 20 28 | 6e 75 6d 20 21 3d 20 30 |;.X.if (|num != 0|
|00001b10| 29 20 7b 0a 58 09 09 72 | 74 65 6d 70 2d 3e 72 63 |) {.X..r|temp->rc|
|00001b20| 6f 75 6e 74 20 3d 20 6e | 75 6d 3b 0a 58 09 09 72 |ount = n|um;.X..r|
|00001b30| 74 65 6d 70 2d 3e 72 75 | 70 63 6f 75 6e 74 20 3d |temp->ru|pcount =|
|00001b40| 20 30 3b 0a 58 09 7d 20 | 65 6c 73 65 20 7b 0a 58 | 0;.X.} |else {.X|
|00001b50| 09 09 72 74 65 6d 70 2d | 3e 72 63 6f 75 6e 74 20 |..rtemp-|>rcount |
|00001b60| 3d 20 31 3b 09 2f 2a 20 | 72 75 6e 20 6f 72 20 69 |= 1;./* |run or i|
|00001b70| 66 2c 20 6e 6f 74 20 72 | 65 70 65 61 74 20 2a 2f |f, not r|epeat */|
|00001b80| 0a 58 20 09 09 69 66 20 | 28 74 68 69 73 72 75 6e |.X ..if |(thisrun|
|00001b90| 29 0a 58 20 09 09 09 72 | 74 65 6d 70 2d 3e 72 75 |).X ...r|temp->ru|
|00001ba0| 70 63 6f 75 6e 74 20 3d | 20 74 68 69 73 72 75 6e |pcount =| thisrun|
|00001bb0| 2d 3e 72 75 70 63 6f 75 | 6e 74 20 2d 20 31 3b 0a |->rupcou|nt - 1;.|
|00001bc0| 58 20 09 09 65 6c 73 65 | 0a 58 20 09 09 09 72 74 |X ..else|.X ...rt|
|00001bd0| 65 6d 70 2d 3e 72 75 70 | 63 6f 75 6e 74 20 3d 20 |emp->rup|count = |
|00001be0| 30 3b 0a 58 09 7d 0a 58 | 09 72 74 65 6d 70 2d 3e |0;.X.}.X|.rtemp->|
|00001bf0| 72 6f 6c 64 79 79 63 20 | 3d 20 79 79 63 68 61 72 |roldyyc |= yychar|
|00001c00| 3b 0a 58 09 72 74 65 6d | 70 2d 3e 72 6f 6c 64 79 |;.X.rtem|p->roldy|
|00001c10| 79 6c 20 3d 20 79 79 6c | 76 61 6c 3b 0a 58 09 72 |yl = yyl|val;.X.r|
|00001c20| 74 65 6d 70 2d 3e 72 6f | 6c 64 6c 69 6e 65 20 3d |temp->ro|ldline =|
|00001c30| 20 79 79 6c 69 6e 65 3b | 0a 58 09 72 74 65 6d 70 | yyline;|.X.rtemp|
|00001c40| 2d 3e 73 76 62 70 74 20 | 3d 20 67 65 74 62 70 74 |->svbpt |= getbpt|
|00001c50| 3b 0a 58 09 72 74 65 6d | 70 2d 3e 73 76 70 66 6c |;.X.rtem|p->svpfl|
|00001c60| 61 67 20 3d 20 70 66 6c | 61 67 3b 0a 58 09 72 74 |ag = pfl|ag;.X.rt|
|00001c70| 65 6d 70 2d 3e 73 76 6c | 65 74 66 6c 61 67 20 3d |emp->svl|etflag =|
|00001c80| 20 6c 65 74 66 6c 61 67 | 3b 0a 58 09 72 74 65 6d | letflag|;.X.rtem|
|00001c90| 70 2d 3e 73 76 63 68 20 | 3d 20 63 68 61 72 69 62 |p->svch |= charib|
|00001ca0| 3b 0a 58 09 69 66 20 28 | 61 72 67 20 3d 3d 20 28 |;.X.if (|arg == (|
|00001cb0| 73 74 72 75 63 74 20 6f | 62 6a 65 63 74 20 2a 29 |struct o|bject *)|
|00001cc0| 28 2d 31 29 29 20 7b 09 | 2f 2a 20 50 41 55 53 45 |(-1)) {.|/* PAUSE|
|00001cd0| 20 2a 2f 0a 58 09 09 72 | 74 65 6d 70 2d 3e 73 74 | */.X..r|temp->st|
|00001ce0| 72 20 3d 20 28 73 74 72 | 75 63 74 20 6f 62 6a 65 |r = (str|uct obje|
|00001cf0| 63 74 20 2a 29 28 2d 31 | 29 3b 0a 58 09 7d 20 65 |ct *)(-1|);.X.} e|
|00001d00| 6c 73 65 20 7b 0a 58 09 | 09 73 74 72 20 3d 20 73 |lse {.X.|.str = s|
|00001d10| 74 72 69 6e 67 66 6f 72 | 6d 28 61 72 67 29 3b 0a |tringfor|m(arg);.|
|00001d20| 58 09 09 6d 66 72 65 65 | 28 61 72 67 29 3b 0a 58 |X..mfree|(arg);.X|
|00001d30| 09 09 73 74 72 63 61 74 | 28 73 74 72 2d 3e 6f 62 |..strcat|(str->ob|
|00001d40| 73 74 72 2c 22 5c 6e 22 | 29 3b 0a 58 09 09 72 74 |str,"\n"|);.X..rt|
|00001d50| 65 6d 70 2d 3e 73 74 72 | 20 3d 20 67 6c 6f 62 63 |emp->str| = globc|
|00001d60| 6f 70 79 28 73 74 72 29 | 3b 0a 58 09 09 6d 66 72 |opy(str)|;.X..mfr|
|00001d70| 65 65 28 73 74 72 29 3b | 0a 58 09 7d 0a 58 09 72 |ee(str);|.X.}.X.r|
|00001d80| 74 65 6d 70 2d 3e 72 70 | 72 65 76 20 3d 20 74 68 |temp->rp|rev = th|
|00001d90| 69 73 72 75 6e 3b 0a 58 | 09 74 68 69 73 72 75 6e |isrun;.X|.thisrun|
|00001da0| 20 3d 20 72 74 65 6d 70 | 3b 0a 58 09 72 65 72 75 | = rtemp|;.X.reru|
|00001db0| 6e 28 29 3b 0a 58 7d 0a | 58 0a 58 72 65 72 75 6e |n();.X}.|X.Xrerun|
|00001dc0| 28 29 20 7b 0a 58 09 79 | 79 63 68 61 72 20 3d 20 |() {.X.y|ychar = |
|00001dd0| 2d 31 3b 0a 58 09 70 66 | 6c 61 67 20 3d 20 30 3b |-1;.X.pf|lag = 0;|
|00001de0| 0a 58 09 6c 65 74 66 6c | 61 67 20 3d 20 30 3b 0a |.X.letfl|ag = 0;.|
|00001df0| 58 09 63 68 61 72 69 62 | 20 3d 20 27 5c 30 27 3b |X.charib| = '\0';|
|00001e00| 0a 58 09 74 68 69 73 72 | 75 6e 2d 3e 72 75 70 63 |.X.thisr|un->rupc|
|00001e10| 6f 75 6e 74 2b 2b 3b 0a | 58 09 69 66 20 28 74 68 |ount++;.|X.if (th|
|00001e20| 69 73 72 75 6e 2d 3e 73 | 74 72 20 3d 3d 20 28 73 |isrun->s|tr == (s|
|00001e30| 74 72 75 63 74 20 6f 62 | 6a 65 63 74 20 2a 29 28 |truct ob|ject *)(|
|00001e40| 2d 31 29 29 09 2f 2a 20 | 50 41 55 53 45 20 2a 2f |-1))./* |PAUSE */|
|00001e50| 0a 58 09 09 67 65 74 62 | 70 74 20 3d 20 30 3b 0a |.X..getb|pt = 0;.|
|00001e60| 58 09 65 6c 73 65 0a 58 | 09 09 67 65 74 62 70 74 |X.else.X|..getbpt|
|00001e70| 20 3d 20 74 68 69 73 72 | 75 6e 2d 3e 73 74 72 2d | = thisr|un->str-|
|00001e80| 3e 6f 62 73 74 72 3b 0a | 58 7d 0a 58 0a 58 75 6e |>obstr;.|X}.X.Xun|
|00001e90| 72 75 6e 28 29 20 7b 0a | 58 09 72 65 67 69 73 74 |run() {.|X.regist|
|00001ea0| 65 72 20 73 74 72 75 63 | 74 20 72 75 6e 62 6c 6f |er struc|t runblo|
|00001eb0| 63 6b 20 2a 72 74 65 6d | 70 3b 0a 58 0a 58 09 79 |ck *rtem|p;.X.X.y|
|00001ec0| 79 63 68 61 72 20 3d 20 | 74 68 69 73 72 75 6e 2d |ychar = |thisrun-|
|00001ed0| 3e 72 6f 6c 64 79 79 63 | 3b 0a 58 09 79 79 6c 76 |>roldyyc|;.X.yylv|
|00001ee0| 61 6c 20 3d 20 74 68 69 | 73 72 75 6e 2d 3e 72 6f |al = thi|srun->ro|
|00001ef0| 6c 64 79 79 6c 3b 0a 58 | 09 79 79 6c 69 6e 65 20 |ldyyl;.X|.yyline |
|00001f00| 3d 20 74 68 69 73 72 75 | 6e 2d 3e 72 6f 6c 64 6c |= thisru|n->roldl|
|00001f10| 69 6e 65 3b 0a 58 09 67 | 65 74 62 70 74 20 3d 20 |ine;.X.g|etbpt = |
|00001f20| 74 68 69 73 72 75 6e 2d | 3e 73 76 62 70 74 3b 0a |thisrun-|>svbpt;.|
|00001f30| 58 09 70 66 6c 61 67 20 | 3d 20 74 68 69 73 72 75 |X.pflag |= thisru|
|00001f40| 6e 2d 3e 73 76 70 66 6c | 61 67 3b 0a 58 09 6c 65 |n->svpfl|ag;.X.le|
|00001f50| 74 66 6c 61 67 20 3d 20 | 74 68 69 73 72 75 6e 2d |tflag = |thisrun-|
|00001f60| 3e 73 76 6c 65 74 66 6c | 61 67 3b 0a 58 09 63 68 |>svletfl|ag;.X.ch|
|00001f70| 61 72 69 62 20 3d 20 74 | 68 69 73 72 75 6e 2d 3e |arib = t|hisrun->|
|00001f80| 73 76 63 68 3b 0a 58 09 | 69 66 20 28 74 68 69 73 |svch;.X.|if (this|
|00001f90| 72 75 6e 2d 3e 73 74 72 | 20 21 3d 20 28 73 74 72 |run->str| != (str|
|00001fa0| 75 63 74 20 6f 62 6a 65 | 63 74 20 2a 29 28 2d 31 |uct obje|ct *)(-1|
|00001fb0| 29 29 09 2f 2a 20 50 41 | 55 53 45 20 2a 2f 0a 58 |))./* PA|USE */.X|
|00001fc0| 09 09 6c 66 72 65 65 28 | 74 68 69 73 72 75 6e 2d |..lfree(|thisrun-|
|00001fd0| 3e 73 74 72 29 3b 0a 58 | 09 72 74 65 6d 70 20 3d |>str);.X|.rtemp =|
|00001fe0| 20 74 68 69 73 72 75 6e | 3b 0a 58 09 74 68 69 73 | thisrun|;.X.this|
|00001ff0| 72 75 6e 20 3d 20 74 68 | 69 73 72 75 6e 2d 3e 72 |run = th|isrun->r|
|00002000| 70 72 65 76 3b 0a 58 09 | 4a 46 52 45 45 28 72 74 |prev;.X.|JFREE(rt|
|00002010| 65 6d 70 29 3b 0a 58 7d | 0a 58 0a 58 64 6f 72 65 |emp);.X}|.X.Xdore|
|00002020| 70 28 63 6f 75 6e 74 2c | 63 6d 64 29 0a 58 73 74 |p(count,|cmd).Xst|
|00002030| 72 75 63 74 20 6f 62 6a | 65 63 74 20 2a 63 6f 75 |ruct obj|ect *cou|
|00002040| 6e 74 2c 2a 63 6d 64 3b | 0a 58 7b 0a 58 09 46 49 |nt,*cmd;|.X{.X.FI|
|00002050| 58 4e 55 4d 20 69 63 6f | 75 6e 74 3b 0a 58 0a 58 |XNUM ico|unt;.X.X|
|00002060| 09 63 6f 75 6e 74 20 3d | 20 6e 75 6d 63 6f 6e 76 |.count =| numconv|
|00002070| 28 63 6f 75 6e 74 2c 22 | 52 65 70 65 61 74 22 29 |(count,"|Repeat")|
|00002080| 3b 0a 58 09 69 66 20 28 | 69 6e 74 70 28 63 6f 75 |;.X.if (|intp(cou|
|00002090| 6e 74 29 29 20 69 63 6f | 75 6e 74 20 3d 20 63 6f |nt)) ico|unt = co|
|000020a0| 75 6e 74 2d 3e 6f 62 69 | 6e 74 3b 0a 58 09 65 6c |unt->obi|nt;.X.el|
|000020b0| 73 65 20 69 63 6f 75 6e | 74 20 3d 20 63 6f 75 6e |se icoun|t = coun|
|000020c0| 74 2d 3e 6f 62 64 75 62 | 3b 0a 58 09 69 66 20 28 |t->obdub|;.X.if (|
|000020d0| 69 63 6f 75 6e 74 20 3c | 20 28 46 49 58 4e 55 4d |icount <| (FIXNUM|
|000020e0| 29 30 29 20 75 6e 67 6f | 6f 64 28 22 52 65 70 65 |)0) ungo|od("Repe|
|000020f0| 61 74 22 2c 63 6f 75 6e | 74 29 3b 0a 58 09 69 66 |at",coun|t);.X.if|
|00002100| 20 28 69 63 6f 75 6e 74 | 20 3d 3d 20 28 46 49 58 | (icount| == (FIX|
|00002110| 4e 55 4d 29 30 29 20 7b | 0a 58 09 09 6d 66 72 65 |NUM)0) {|.X..mfre|
|00002120| 65 28 63 6d 64 29 3b 0a | 58 09 09 63 6d 64 20 3d |e(cmd);.|X..cmd =|
|00002130| 20 30 3b 0a 58 09 09 69 | 63 6f 75 6e 74 2b 2b 3b | 0;.X..i|count++;|
|00002140| 0a 58 09 7d 0a 58 09 64 | 6f 72 75 6e 28 63 6d 64 |.X.}.X.d|orun(cmd|
|00002150| 2c 69 63 6f 75 6e 74 29 | 3b 0a 58 09 6d 66 72 65 |,icount)|;.X.mfre|
|00002160| 65 28 63 6f 75 6e 74 29 | 3b 0a 58 7d 0a 58 0a 58 |e(count)|;.X}.X.X|
|00002170| 73 74 72 75 63 74 20 6f | 62 6a 65 63 74 20 2a 72 |struct o|bject *r|
|00002180| 65 70 63 6f 75 6e 74 28 | 29 20 7b 0a 58 09 69 66 |epcount(|) {.X.if|
|00002190| 20 28 21 74 68 69 73 72 | 75 6e 29 20 7b 0a 58 09 | (!thisr|un) {.X.|
|000021a0| 09 70 75 74 73 28 22 52 | 65 70 63 6f 75 6e 74 20 |.puts("R|epcount |
|000021b0| 6f 75 74 73 69 64 65 20 | 72 65 70 65 61 74 2e 22 |outside |repeat."|
|000021c0| 29 3b 0a 58 09 09 65 72 | 72 68 61 6e 64 28 29 3b |);.X..er|rhand();|
|000021d0| 0a 58 09 7d 0a 58 09 72 | 65 74 75 72 6e 28 6c 6f |.X.}.X.r|eturn(lo|
|000021e0| 63 61 6c 69 7a 65 28 6f | 62 6a 69 6e 74 28 74 68 |calize(o|bjint(th|
|000021f0| 69 73 72 75 6e 2d 3e 72 | 75 70 63 6f 75 6e 74 29 |isrun->r|upcount)|
|00002200| 29 29 3b 0a 58 7d 0a 58 | 0a 58 23 69 66 64 65 66 |));.X}.X|.X#ifdef|
|00002210| 20 50 41 55 53 45 0a 58 | 64 6f 70 61 75 73 65 28 | PAUSE.X|dopause(|
|00002220| 29 20 7b 0a 58 09 72 65 | 67 69 73 74 65 72 20 73 |) {.X.re|gister s|
|00002230| 74 72 75 63 74 20 70 6c | 69 73 74 20 2a 6f 70 63 |truct pl|ist *opc|
|00002240| 3b 0a 58 0a 58 09 69 66 | 20 28 70 66 6c 61 67 20 |;.X.X.if| (pflag |
|00002250| 7c 7c 20 67 65 74 62 70 | 74 29 20 7b 0a 58 09 09 ||| getbp|t) {.X..|
|00002260| 70 72 69 6e 74 66 28 22 | 50 61 75 73 69 6e 67 22 |printf("|Pausing"|
|00002270| 29 3b 0a 58 09 09 6f 70 | 63 20 3d 20 70 63 65 6c |);.X..op|c = pcel|
|00002280| 6c 3b 0a 58 09 09 69 66 | 20 28 66 62 72 20 26 26 |l;.X..if| (fbr &&|
|00002290| 20 66 62 72 2d 3e 6f 6c | 64 6c 69 6e 65 3d 3d 2d | fbr->ol|dline==-|
|000022a0| 31 29 20 7b 0a 58 09 09 | 09 6f 70 63 3d 66 62 72 |1) {.X..|.opc=fbr|
|000022b0| 2d 3e 70 72 65 76 70 63 | 65 6c 6c 3b 0a 58 09 09 |->prevpc|ell;.X..|
|000022c0| 7d 0a 58 09 09 69 66 20 | 28 6f 70 63 26 26 21 74 |}.X..if |(opc&&!t|
|000022d0| 6f 70 66 29 20 70 72 69 | 6e 74 66 28 22 20 61 74 |opf) pri|ntf(" at|
|000022e0| 20 6c 69 6e 65 20 25 64 | 20 69 6e 20 70 72 6f 63 | line %d| in proc|
|000022f0| 65 64 75 72 65 20 25 73 | 22 2c 79 79 6c 69 6e 65 |edure %s|",yyline|
|00002300| 2c 0a 58 09 09 09 09 6f | 70 63 2d 3e 70 72 6f 63 |,.X....o|pc->proc|
|00002310| 6e 61 6d 65 2d 3e 6f 62 | 73 74 72 29 3b 0a 58 09 |name->ob|str);.X.|
|00002320| 09 70 72 69 6e 74 66 28 | 22 5c 6e 22 29 3b 0a 58 |.printf(|"\n");.X|
|00002330| 09 09 70 61 75 73 65 6c | 65 76 2b 2b 3b 0a 58 09 |..pausel|ev++;.X.|
|00002340| 7d 0a 58 09 69 66 20 28 | 70 73 69 67 66 6c 61 67 |}.X.if (|psigflag|
|00002350| 29 20 7b 0a 58 09 09 70 | 73 69 67 66 6c 61 67 20 |) {.X..p|sigflag |
|00002360| 3d 20 30 3b 0a 58 23 69 | 66 64 65 66 20 45 55 4e |= 0;.X#i|fdef EUN|
|00002370| 49 43 45 0a 58 09 09 79 | 79 70 72 6f 6d 70 74 28 |ICE.X..y|yprompt(|
|00002380| 29 3b 0a 58 23 65 6e 64 | 69 66 0a 58 09 7d 0a 58 |);.X#end|if.X.}.X|
|00002390| 09 69 66 20 28 70 66 6c | 61 67 20 7c 7c 20 67 65 |.if (pfl|ag || ge|
|000023a0| 74 62 70 74 29 0a 58 09 | 09 64 6f 72 75 6e 28 28 |tbpt).X.|.dorun((|
|000023b0| 73 74 72 75 63 74 20 6f | 62 6a 65 63 74 20 2a 29 |struct o|bject *)|
|000023c0| 28 2d 31 29 2c 28 46 49 | 58 4e 55 4d 29 30 29 3b |(-1),(FI|XNUM)0);|
|000023d0| 0a 58 7d 0a 58 0a 58 75 | 6e 70 61 75 73 65 28 29 |.X}.X.Xu|npause()|
|000023e0| 20 7b 0a 58 09 69 66 20 | 28 70 61 75 73 65 6c 65 | {.X.if |(pausele|
|000023f0| 76 20 3e 20 30 29 20 7b | 0a 58 09 09 70 61 75 73 |v > 0) {|.X..paus|
|00002400| 65 6c 65 76 2d 2d 3b 0a | 58 09 09 75 6e 72 75 6e |elev--;.|X..unrun|
|00002410| 28 29 3b 0a 58 09 7d 0a | 58 7d 0a 58 23 65 6e 64 |();.X.}.|X}.X#end|
|00002420| 69 66 0a 58 0a 58 65 72 | 72 68 61 6e 64 28 29 09 |if.X.Xer|rhand().|
|00002430| 2f 2a 20 64 6f 20 65 72 | 72 6f 72 20 72 65 63 6f |/* do er|ror reco|
|00002440| 76 65 72 79 2c 20 74 68 | 65 6e 20 70 6f 70 20 6f |very, th|en pop o|
|00002450| 75 74 20 74 6f 20 6f 75 | 74 65 72 20 6c 65 76 65 |ut to ou|ter leve|
|00002460| 6c 20 2a 2f 0a 58 7b 0a | 58 09 65 72 72 74 6f 6c |l */.X{.|X.errtol|
|00002470| 64 2b 2b 3b 0a 58 09 66 | 6c 61 67 71 75 69 74 20 |d++;.X.f|lagquit |
|00002480| 3d 20 30 3b 0a 58 09 6f | 6e 69 6e 74 72 28 65 72 |= 0;.X.o|nintr(er|
|00002490| 72 72 65 63 2c 31 29 3b | 0a 58 23 69 66 64 65 66 |rrec,1);|.X#ifdef|
|000024a0| 20 50 41 55 53 45 0a 58 | 09 6c 6f 6e 67 6a 6d 70 | PAUSE.X|.longjmp|
|000024b0| 28 79 65 72 72 62 75 66 | 2c 39 29 3b 0a 58 23 65 |(yerrbuf|,9);.X#e|
|000024c0| 6c 73 65 0a 58 09 6c 74 | 6f 70 6c 28 29 3b 0a 58 |lse.X.lt|opl();.X|
|000024d0| 23 65 6e 64 69 66 0a 58 | 7d 0a 58 0a 58 6e 75 6c |#endif.X|}.X.Xnul|
|000024e0| 6c 66 6e 28 29 0a 58 7b | 0a 58 7d 0a 58 0a 58 72 |lfn().X{|.X}.X.Xr|
|000024f0| 65 61 64 6c 69 6e 28 66 | 64 2c 62 75 66 29 09 09 |eadlin(f|d,buf)..|
|00002500| 2f 2a 20 72 65 61 64 20 | 61 20 6c 69 6e 65 20 66 |/* read |a line f|
|00002510| 72 6f 6d 20 66 69 6c 65 | 20 2a 2f 0a 58 72 65 67 |rom file| */.Xreg|
|00002520| 69 73 74 65 72 20 46 49 | 4c 44 45 53 20 66 64 3b |ister FI|LDES fd;|
|00002530| 0a 58 72 65 67 69 73 74 | 65 72 20 63 68 61 72 20 |.Xregist|er char |
|00002540| 2a 62 75 66 3b 0a 58 7b | 0a 58 09 72 65 67 69 73 |*buf;.X{|.X.regis|
|00002550| 74 65 72 20 63 68 61 72 | 20 2a 69 3b 0a 58 0a 58 |ter char| *i;.X.X|
|00002560| 09 66 6f 72 20 28 69 20 | 3d 20 62 75 66 3b 20 2a |.for (i |= buf; *|
|00002570| 28 69 2d 31 29 20 21 3d | 20 27 5c 6e 27 3b 20 69 |(i-1) !=| '\n'; i|
|00002580| 2b 2b 29 20 72 65 61 64 | 28 66 64 2c 69 2c 31 29 |++) read|(fd,i,1)|
|00002590| 3b 0a 58 7d 0a 58 0a 58 | 6d 61 6b 65 75 70 28 73 |;.X}.X.X|makeup(s|
|000025a0| 74 72 29 0a 58 72 65 67 | 69 73 74 65 72 20 63 68 |tr).Xreg|ister ch|
|000025b0| 61 72 20 2a 73 74 72 3b | 0a 58 7b 0a 58 09 72 65 |ar *str;|.X{.X.re|
|000025c0| 67 69 73 74 65 72 20 63 | 68 61 72 20 63 68 3b 0a |gister c|har ch;.|
|000025d0| 58 0a 58 09 77 68 69 6c | 65 20 28 63 68 20 3d 20 |X.X.whil|e (ch = |
|000025e0| 2a 73 74 72 29 20 7b 0a | 58 09 09 69 66 20 28 63 |*str) {.|X..if (c|
|000025f0| 68 20 3e 3d 20 27 61 27 | 20 26 26 20 63 68 20 3c |h >= 'a'| && ch <|
|00002600| 3d 20 27 7a 27 29 20 2a | 73 74 72 20 3d 20 63 68 |= 'z') *|str = ch|
|00002610| 2d 30 34 30 3b 0a 58 09 | 09 73 74 72 2b 2b 3b 0a |-040;.X.|.str++;.|
|00002620| 58 09 7d 0a 58 7d 0a 58 | 0a 58 73 74 72 75 63 74 |X.}.X}.X|.Xstruct|
|00002630| 20 6f 62 6a 65 63 74 20 | 2a 63 62 72 65 61 6b 28 | object |*cbreak(|
|00002640| 6f 73 74 72 29 0a 58 72 | 65 67 69 73 74 65 72 20 |ostr).Xr|egister |
|00002650| 73 74 72 75 63 74 20 6f | 62 6a 65 63 74 20 2a 6f |struct o|bject *o|
|00002660| 73 74 72 3b 0a 58 7b 0a | 58 09 73 74 72 75 63 74 |str;.X{.|X.struct|
|00002670| 20 73 67 74 74 79 62 20 | 73 67 74 3b 0a 58 09 72 | sgttyb |sgt;.X.r|
|00002680| 65 67 69 73 74 65 72 20 | 63 68 61 72 20 2a 73 74 |egister |char *st|
|00002690| 72 3b 0a 58 0a 58 23 69 | 66 64 65 66 20 43 42 52 |r;.X.X#i|fdef CBR|
|000026a0| 45 41 4b 0a 58 09 69 66 | 20 28 21 73 74 72 69 6e |EAK.X.if| (!strin|
|000026b0| 67 70 28 6f 73 74 72 29 | 29 20 75 6e 67 6f 6f 64 |gp(ostr)|) ungood|
|000026c0| 28 22 43 62 72 65 61 6b | 22 2c 6f 73 74 72 29 3b |("Cbreak|",ostr);|
|000026d0| 0a 58 09 73 74 72 20 3d | 20 6f 73 74 72 2d 3e 6f |.X.str =| ostr->o|
|000026e0| 62 73 74 72 3b 0a 58 09 | 6d 61 6b 65 75 70 28 73 |bstr;.X.|makeup(s|
|000026f0| 74 72 29 3b 0a 58 09 69 | 66 20 28 73 74 72 63 6d |tr);.X.i|f (strcm|
|00002700| 70 28 73 74 72 2c 22 4f | 4e 22 29 20 26 26 20 73 |p(str,"O|N") && s|
|00002710| 74 72 63 6d 70 28 73 74 | 72 2c 22 4f 46 46 22 29 |trcmp(st|r,"OFF")|
|00002720| 29 20 7b 0a 58 09 09 70 | 75 74 73 28 22 63 62 72 |) {.X..p|uts("cbr|
|00002730| 65 61 6b 20 69 6e 70 75 | 74 20 6d 75 73 74 20 62 |eak inpu|t must b|
|00002740| 65 20 5c 22 6f 6e 20 6f | 72 20 5c 22 6f 66 66 22 |e \"on o|r \"off"|
|00002750| 29 3b 0a 58 09 09 65 72 | 72 68 61 6e 64 28 29 3b |);.X..er|rhand();|
|00002760| 0a 58 09 7d 0a 58 09 67 | 74 74 79 28 30 2c 26 73 |.X.}.X.g|tty(0,&s|
|00002770| 67 74 29 3b 0a 58 09 69 | 66 20 28 21 73 74 72 63 |gt);.X.i|f (!strc|
|00002780| 6d 70 28 73 74 72 2c 22 | 4f 4e 22 29 29 20 7b 0a |mp(str,"|ON")) {.|
|00002790| 58 09 09 73 67 74 2e 73 | 67 5f 66 6c 61 67 73 20 |X..sgt.s|g_flags |
|000027a0| 7c 3d 20 43 42 52 45 41 | 4b 3b 0a 58 09 09 73 67 ||= CBREA|K;.X..sg|
|000027b0| 74 2e 73 67 5f 66 6c 61 | 67 73 20 26 3d 20 7e 45 |t.sg_fla|gs &= ~E|
|000027c0| 43 48 4f 3b 0a 58 09 7d | 20 65 6c 73 65 20 7b 0a |CHO;.X.}| else {.|
|000027d0| 58 09 09 73 67 74 2e 73 | 67 5f 66 6c 61 67 73 20 |X..sgt.s|g_flags |
|000027e0| 26 3d 20 7e 43 42 52 45 | 41 4b 3b 0a 58 09 09 73 |&= ~CBRE|AK;.X..s|
|000027f0| 67 74 2e 73 67 5f 66 6c | 61 67 73 20 7c 3d 20 45 |gt.sg_fl|ags |= E|
|00002800| 43 48 4f 3b 0a 58 09 7d | 0a 58 09 73 74 74 79 28 |CHO;.X.}|.X.stty(|
|00002810| 30 2c 26 73 67 74 29 3b | 0a 58 09 6d 66 72 65 65 |0,&sgt);|.X.mfree|
|00002820| 28 6f 73 74 72 29 3b 0a | 58 09 72 65 74 75 72 6e |(ostr);.|X.return|
|00002830| 20 28 28 73 74 72 75 63 | 74 20 6f 62 6a 65 63 74 | ((struc|t object|
|00002840| 20 2a 29 28 2d 31 29 29 | 3b 0a 58 23 65 6c 73 65 | *)(-1))|;.X#else|
|00002850| 0a 58 09 70 72 69 6e 74 | 66 28 22 4e 6f 20 43 42 |.X.print|f("No CB|
|00002860| 52 45 41 4b 20 6f 6e 20 | 74 68 69 73 20 73 79 73 |REAK on |this sys|
|00002870| 74 65 6d 2e 5c 6e 22 29 | 3b 0a 58 09 65 72 72 68 |tem.\n")|;.X.errh|
|00002880| 61 6e 64 28 29 3b 09 2f | 2a 20 53 75 63 68 20 61 |and();./|* Such a|
|00002890| 73 20 56 36 20 6f 72 20 | 49 64 72 69 73 20 2a 2f |s V6 or |Idris */|
|000028a0| 0a 58 23 65 6e 64 69 66 | 0a 58 7d 0a 58 0a 58 63 |.X#endif|.X}.X.Xc|
|000028b0| 62 6f 66 66 28 29 0a 58 | 7b 0a 58 09 73 74 72 75 |boff().X|{.X.stru|
|000028c0| 63 74 20 73 67 74 74 79 | 62 20 73 67 74 3b 0a 58 |ct sgtty|b sgt;.X|
|000028d0| 0a 58 23 69 66 64 65 66 | 20 43 42 52 45 41 4b 0a |.X#ifdef| CBREAK.|
|000028e0| 58 09 67 74 74 79 28 30 | 2c 26 73 67 74 29 3b 0a |X.gtty(0|,&sgt);.|
|000028f0| 58 09 73 67 74 2e 73 67 | 5f 66 6c 61 67 73 20 26 |X.sgt.sg|_flags &|
|00002900| 3d 20 7e 43 42 52 45 41 | 4b 3b 0a 58 09 73 67 74 |= ~CBREA|K;.X.sgt|
|00002910| 2e 73 67 5f 66 6c 61 67 | 73 20 7c 3d 20 45 43 48 |.sg_flag|s |= ECH|
|00002920| 4f 3b 0a 58 09 73 74 74 | 79 28 30 2c 26 73 67 74 |O;.X.stt|y(0,&sgt|
|00002930| 29 3b 0a 58 23 65 6e 64 | 69 66 0a 58 7d 0a 58 0a |);.X#end|if.X}.X.|
|00002940| 58 73 74 72 75 63 74 20 | 6f 62 6a 65 63 74 20 2a |Xstruct |object *|
|00002950| 72 65 61 64 63 68 61 72 | 28 29 0a 58 7b 0a 58 09 |readchar|().X{.X.|
|00002960| 63 68 61 72 20 73 5b 32 | 5d 3b 0a 58 0a 58 09 66 |char s[2|];.X.X.f|
|00002970| 66 6c 75 73 68 28 73 74 | 64 6f 75 74 29 3b 0a 58 |flush(st|dout);.X|
|00002980| 09 72 65 61 64 28 30 2c | 73 2c 31 29 3b 0a 58 09 |.read(0,|s,1);.X.|
|00002990| 73 5b 31 5d 20 3d 20 27 | 5c 30 27 3b 0a 58 09 72 |s[1] = '|\0';.X.r|
|000029a0| 65 74 75 72 6e 28 6c 6f | 63 61 6c 69 7a 65 28 6f |eturn(lo|calize(o|
|000029b0| 62 6a 63 70 73 74 72 28 | 73 29 29 29 3b 0a 58 7d |bjcpstr(|s)));.X}|
|000029c0| 0a 58 0a 58 73 74 72 75 | 63 74 20 6f 62 6a 65 63 |.X.Xstru|ct objec|
|000029d0| 74 20 2a 6b 65 79 70 28 | 29 0a 58 7b 0a 58 23 69 |t *keyp(|).X{.X#i|
|000029e0| 66 64 65 66 20 54 49 4f | 43 45 4d 50 54 59 0a 58 |fdef TIO|CEMPTY.X|
|000029f0| 09 69 6e 74 20 69 3b 0a | 58 0a 58 09 66 66 6c 75 |.int i;.|X.X.fflu|
|00002a00| 73 68 28 73 74 64 6f 75 | 74 29 3b 0a 58 09 69 6f |sh(stdou|t);.X.io|
|00002a10| 63 74 6c 28 30 2c 54 49 | 4f 43 45 4d 50 54 59 2c |ctl(0,TI|OCEMPTY,|
|00002a20| 26 69 29 3b 0a 58 09 69 | 66 20 28 69 29 0a 58 09 |&i);.X.i|f (i).X.|
|00002a30| 09 72 65 74 75 72 6e 28 | 74 72 75 65 28 29 29 3b |.return(|true());|
|00002a40| 0a 58 09 65 6c 73 65 0a | 58 23 65 6c 73 65 20 0a |.X.else.|X#else .|
|00002a50| 58 23 69 66 64 65 66 20 | 46 49 4f 4e 52 45 41 44 |X#ifdef |FIONREAD|
|00002a60| 0a 58 09 6c 6f 6e 67 20 | 69 3b 0a 58 0a 58 09 66 |.X.long |i;.X.X.f|
|00002a70| 66 6c 75 73 68 28 73 74 | 64 6f 75 74 29 3b 0a 58 |flush(st|dout);.X|
|00002a80| 09 69 6f 63 74 6c 28 30 | 2c 46 49 4f 4e 52 45 41 |.ioctl(0|,FIONREA|
|00002a90| 44 2c 26 69 29 3b 0a 58 | 09 69 66 20 28 69 29 0a |D,&i);.X|.if (i).|
|00002aa0| 58 09 09 72 65 74 75 72 | 6e 28 74 72 75 65 28 29 |X..retur|n(true()|
|00002ab0| 29 3b 0a 58 09 65 6c 73 | 65 0a 58 23 65 6e 64 69 |);.X.els|e.X#endi|
|00002ac0| 66 0a 58 23 65 6e 64 69 | 66 0a 58 09 09 72 65 74 |f.X#endi|f.X..ret|
|00002ad0| 75 72 6e 28 66 61 6c 73 | 65 28 29 29 3b 0a 58 7d |urn(fals|e());.X}|
|00002ae0| 0a 58 0a 58 73 74 72 75 | 63 74 20 6f 62 6a 65 63 |.X.Xstru|ct objec|
|00002af0| 74 20 2a 73 65 74 74 65 | 73 74 28 76 61 6c 29 0a |t *sette|st(val).|
|00002b00| 58 73 74 72 75 63 74 20 | 6f 62 6a 65 63 74 20 2a |Xstruct |object *|
|00002b10| 76 61 6c 3b 0a 58 7b 0a | 58 09 69 66 20 28 6f 62 |val;.X{.|X.if (ob|
|00002b20| 73 74 72 63 6d 70 28 76 | 61 6c 2c 22 74 72 75 65 |strcmp(v|al,"true|
|00002b30| 22 29 20 26 26 20 6f 62 | 73 74 72 63 6d 70 28 76 |") && ob|strcmp(v|
|00002b40| 61 6c 2c 22 66 61 6c 73 | 65 22 29 29 20 75 6e 67 |al,"fals|e")) ung|
|00002b50| 6f 6f 64 28 22 54 65 73 | 74 22 2c 76 61 6c 29 3b |ood("Tes|t",val);|
|00002b60| 0a 58 09 63 75 72 72 74 | 65 73 74 20 3d 20 21 6f |.X.currt|est = !o|
|00002b70| 62 73 74 72 63 6d 70 28 | 76 61 6c 2c 22 74 72 75 |bstrcmp(|val,"tru|
|00002b80| 65 22 29 3b 0a 58 09 6d | 66 72 65 65 28 76 61 6c |e");.X.m|free(val|
|00002b90| 29 3b 0a 58 09 72 65 74 | 75 72 6e 20 28 28 73 74 |);.X.ret|urn ((st|
|00002ba0| 72 75 63 74 20 6f 62 6a | 65 63 74 20 2a 29 28 2d |ruct obj|ect *)(-|
|00002bb0| 31 29 29 3b 0a 58 7d 0a | 58 0a 58 6c 6f 66 6c 75 |1));.X}.|X.Xloflu|
|00002bc0| 73 68 28 29 20 7b 0a 58 | 09 66 66 6c 75 73 68 28 |sh() {.X|.fflush(|
|00002bd0| 73 74 64 6f 75 74 29 3b | 0a 58 7d 0a 58 0a 58 73 |stdout);|.X}.X.Xs|
|00002be0| 74 72 75 63 74 20 6f 62 | 6a 65 63 74 20 2a 63 6d |truct ob|ject *cm|
|00002bf0| 6f 75 74 70 75 74 28 61 | 72 67 29 0a 58 73 74 72 |output(a|rg).Xstr|
|00002c00| 75 63 74 20 6f 62 6a 65 | 63 74 20 2a 61 72 67 3b |uct obje|ct *arg;|
|00002c10| 0a 58 7b 0a 58 09 65 78 | 74 65 72 6e 20 69 6e 74 |.X{.X.ex|tern int|
|00002c20| 20 65 6e 64 66 6c 61 67 | 3b 0a 58 0a 58 23 69 66 | endflag|;.X.X#if|
|00002c30| 64 65 66 20 50 41 55 53 | 45 0a 58 09 69 66 20 28 |def PAUS|E.X.if (|
|00002c40| 21 70 66 6c 61 67 20 26 | 26 20 74 68 69 73 72 75 |!pflag &|& thisru|
|00002c50| 6e 20 26 26 20 74 68 69 | 73 72 75 6e 2d 3e 73 74 |n && thi|srun->st|
|00002c60| 72 3d 3d 28 73 74 72 75 | 63 74 20 6f 62 6a 65 63 |r==(stru|ct objec|
|00002c70| 74 20 2a 29 28 2d 31 29 | 29 0a 58 09 09 75 6e 70 |t *)(-1)|).X..unp|
|00002c80| 61 75 73 65 28 29 3b 0a | 58 23 65 6e 64 69 66 0a |ause();.|X#endif.|
|00002c90| 58 09 65 6e 64 66 6c 61 | 67 20 3d 20 31 3b 0a 58 |X.endfla|g = 1;.X|
|00002ca0| 09 72 65 74 75 72 6e 28 | 61 72 67 29 3b 0a 58 7d |.return(|arg);.X}|
|00002cb0| 0a 58 0a 58 23 69 66 64 | 65 66 20 53 45 54 43 55 |.X.X#ifd|ef SETCU|
|00002cc0| 52 53 4f 52 0a 58 0a 58 | 69 6e 74 20 67 6f 74 74 |RSOR.X.X|int gott|
|00002cd0| 65 72 6d 20 3d 20 30 3b | 0a 58 0a 58 2f 2a 20 54 |erm = 0;|.X.X/* T|
|00002ce0| 65 72 6d 63 61 70 20 64 | 65 66 69 6e 69 74 69 6f |ermcap d|efinitio|
|00002cf0| 6e 73 20 2a 2f 0a 58 0a | 58 63 68 61 72 09 2a 55 |ns */.X.|Xchar.*U|
|00002d00| 50 2c 0a 58 09 2a 43 53 | 2c 0a 58 09 2a 43 4d 2c |P,.X.*CS|,.X.*CM,|
|00002d10| 0a 58 09 2a 43 4c 2c 0a | 58 09 2a 42 43 2c 0a 58 |.X.*CL,.|X.*BC,.X|
|00002d20| 09 2a 70 61 64 63 68 61 | 72 3b 0a 58 0a 58 63 68 |.*padcha|r;.X.Xch|
|00002d30| 61 72 09 50 43 20 3d 20 | 27 5c 30 27 3b 0a 58 0a |ar.PC = |'\0';.X.|
|00002d40| 58 73 68 6f 72 74 20 6f | 73 70 65 65 64 3b 0a 58 |Xshort o|speed;.X|
|00002d50| 0a 58 63 68 61 72 09 74 | 73 70 61 63 65 5b 31 32 |.Xchar.t|space[12|
|00002d60| 38 5d 3b 0a 58 0a 58 63 | 68 61 72 20 2a 2a 6d 65 |8];.X.Xc|har **me|
|00002d70| 61 73 5b 5d 20 3d 20 7b | 0a 58 09 26 43 53 2c 20 |as[] = {|.X.&CS, |
|00002d80| 26 43 4d 2c 20 26 43 4c | 2c 20 26 55 50 2c 20 26 |&CM, &CL|, &UP, &|
|00002d90| 42 43 2c 20 26 70 61 64 | 63 68 61 72 2c 20 30 0a |BC, &pad|char, 0.|
|00002da0| 58 7d 3b 0a 58 0a 58 63 | 68 61 72 09 74 62 75 66 |X};.X.Xc|har.tbuf|
|00002db0| 66 5b 31 30 32 34 5d 3b | 0a 58 0a 58 67 65 74 54 |f[1024];|.X.XgetT|
|00002dc0| 45 52 4d 28 29 0a 58 7b | 0a 58 09 63 68 61 72 09 |ERM().X{|.X.char.|
|00002dd0| 2a 67 65 74 65 6e 76 28 | 29 3b 0a 58 09 73 74 72 |*getenv(|);.X.str|
|00002de0| 75 63 74 20 73 67 74 74 | 79 62 20 74 74 79 3b 0a |uct sgtt|yb tty;.|
|00002df0| 58 09 63 68 61 72 09 2a | 74 73 3d 22 63 73 63 6d |X.char.*|ts="cscm|
|00002e00| 63 6c 75 70 62 63 70 63 | 22 3b 0a 58 09 63 68 61 |clupbcpc|";.X.cha|
|00002e10| 72 09 2a 74 65 72 6d 6e | 61 6d 65 20 3d 20 30 2c |r.*termn|ame = 0,|
|00002e20| 0a 58 09 09 2a 74 65 72 | 6d 70 20 3d 20 74 73 70 |.X..*ter|mp = tsp|
|00002e30| 61 63 65 3b 0a 58 09 69 | 6e 74 09 69 3b 0a 58 0a |ace;.X.i|nt.i;.X.|
|00002e40| 58 09 69 66 20 28 67 6f | 74 74 65 72 6d 29 20 72 |X.if (go|tterm) r|
|00002e50| 65 74 75 72 6e 28 67 6f | 74 74 65 72 6d 29 3b 0a |eturn(go|tterm);.|
|00002e60| 58 0a 58 09 69 66 20 28 | 67 74 74 79 28 31 2c 20 |X.X.if (|gtty(1, |
|00002e70| 26 74 74 79 29 29 20 7b | 0a 58 09 09 6f 73 70 65 |&tty)) {|.X..ospe|
|00002e80| 65 64 20 3d 20 42 31 32 | 30 30 3b 0a 58 09 7d 20 |ed = B12|00;.X.} |
|00002e90| 65 6c 73 65 20 7b 0a 58 | 09 09 74 74 79 2e 73 67 |else {.X|..tty.sg|
|00002ea0| 5f 66 6c 61 67 73 20 26 | 3d 20 7e 20 58 54 41 42 |_flags &|= ~ XTAB|
|00002eb0| 53 3b 0a 58 09 09 6f 73 | 70 65 65 64 20 3d 20 74 |S;.X..os|peed = t|
|00002ec0| 74 79 2e 73 67 5f 6f 73 | 70 65 65 64 3b 0a 58 09 |ty.sg_os|peed;.X.|
|00002ed0| 09 73 74 74 79 28 31 2c | 26 74 74 79 29 3b 0a 58 |.stty(1,|&tty);.X|
|00002ee0| 09 7d 0a 58 0a 58 09 74 | 65 72 6d 6e 61 6d 65 20 |.}.X.X.t|ermname |
|00002ef0| 3d 20 67 65 74 65 6e 76 | 28 22 54 45 52 4d 22 29 |= getenv|("TERM")|
|00002f00| 3b 0a 58 09 69 66 20 28 | 74 65 72 6d 6e 61 6d 65 |;.X.if (|termname|
|00002f10| 20 3d 3d 20 30 29 20 7b | 0a 58 09 09 70 75 74 73 | == 0) {|.X..puts|
|00002f20| 28 22 4e 6f 20 74 65 72 | 6d 69 6e 61 6c 20 69 6e |("No ter|minal in|
|00002f30| 20 65 6e 76 69 72 6f 6e | 6d 65 6e 74 2e 22 29 3b | environ|ment.");|
|00002f40| 0a 58 09 09 67 6f 74 74 | 65 72 6d 20 3d 20 2d 31 |.X..gott|erm = -1|
|00002f50| 3b 0a 58 09 09 72 65 74 | 75 72 6e 28 67 6f 74 74 |;.X..ret|urn(gott|
|00002f60| 65 72 6d 29 3b 0a 58 09 | 7d 0a 58 0a 58 09 69 66 |erm);.X.|}.X.X.if|
|00002f70| 20 28 74 67 65 74 65 6e | 74 28 74 62 75 66 66 2c | (tgeten|t(tbuff,|
|00002f80| 20 74 65 72 6d 6e 61 6d | 65 29 20 3c 20 31 29 20 | termnam|e) < 1) |
|00002f90| 7b 0a 58 09 09 70 66 31 | 28 22 4e 6f 20 74 65 72 |{.X..pf1|("No ter|
|00002fa0| 6d 63 61 70 20 65 6e 74 | 72 79 20 66 6f 72 20 25 |mcap ent|ry for %|
|00002fb0| 73 5c 6e 22 2c 74 65 72 | 6d 6e 61 6d 65 29 3b 0a |s\n",ter|mname);.|
|00002fc0| 58 09 09 67 6f 74 74 65 | 72 6d 20 3d 20 2d 31 3b |X..gotte|rm = -1;|
|00002fd0| 0a 58 09 09 72 65 74 75 | 72 6e 28 67 6f 74 74 65 |.X..retu|rn(gotte|
|00002fe0| 72 6d 29 3b 0a 58 09 7d | 0a 58 0a 58 09 66 6f 72 |rm);.X.}|.X.X.for|
|00002ff0| 20 28 69 20 3d 20 30 3b | 20 6d 65 61 73 5b 69 5d | (i = 0;| meas[i]|
|00003000| 3b 20 69 2b 2b 29 20 7b | 0a 58 09 09 2a 28 6d 65 |; i++) {|.X..*(me|
|00003010| 61 73 5b 69 5d 29 20 3d | 20 28 63 68 61 72 20 2a |as[i]) =| (char *|
|00003020| 29 20 74 67 65 74 73 74 | 72 28 74 73 2c 20 26 74 |) tgetst|r(ts, &t|
|00003030| 65 72 6d 70 29 3b 0a 58 | 09 09 74 73 20 2b 3d 20 |ermp);.X|..ts += |
|00003040| 32 3b 0a 58 09 7d 0a 58 | 0a 58 09 69 66 20 28 70 |2;.X.}.X|.X.if (p|
|00003050| 61 64 63 68 61 72 29 20 | 50 43 20 3d 20 2a 70 61 |adchar) |PC = *pa|
|00003060| 64 63 68 61 72 3b 0a 58 | 0a 58 09 67 6f 74 74 65 |dchar;.X|.X.gotte|
|00003070| 72 6d 20 3d 20 31 3b 0a | 58 09 72 65 74 75 72 6e |rm = 1;.|X.return|
|00003080| 28 67 6f 74 74 65 72 6d | 29 3b 0a 58 7d 0a 58 0a |(gotterm|);.X}.X.|
|00003090| 58 65 78 74 65 72 6e 20 | 69 6e 74 20 70 75 74 63 |Xextern |int putc|
|000030a0| 68 28 29 3b 0a 58 0a 58 | 73 74 72 75 63 74 20 6f |h();.X.X|struct o|
|000030b0| 62 6a 65 63 74 20 2a 63 | 6c 72 74 78 74 28 29 0a |bject *c|lrtxt().|
|000030c0| 58 7b 0a 58 09 69 66 20 | 28 67 65 74 54 45 52 4d |X{.X.if |(getTERM|
|000030d0| 28 29 20 3c 20 30 29 20 | 72 65 74 75 72 6e 3b 0a |() < 0) |return;.|
|000030e0| 58 09 74 70 75 74 73 28 | 43 4c 2c 32 34 2c 70 75 |X.tputs(|CL,24,pu|
|000030f0| 74 63 68 29 3b 0a 58 09 | 72 65 74 75 72 6e 20 28 |tch);.X.|return (|
|00003100| 28 73 74 72 75 63 74 20 | 6f 62 6a 65 63 74 20 2a |(struct |object *|
|00003110| 29 28 2d 31 29 29 3b 0a | 58 7d 0a 58 0a 58 73 74 |)(-1));.|X}.X.Xst|
|00003120| 72 75 63 74 20 6f 62 6a | 65 63 74 20 2a 73 65 74 |ruct obj|ect *set|
|00003130| 63 75 72 28 78 2c 79 29 | 0a 58 73 74 72 75 63 74 |cur(x,y)|.Xstruct|
|00003140| 20 6f 62 6a 65 63 74 20 | 2a 78 2c 2a 79 3b 0a 58 | object |*x,*y;.X|
|00003150| 7b 0a 58 09 69 6e 74 20 | 69 78 2c 69 79 3b 0a 58 |{.X.int |ix,iy;.X|
|00003160| 0a 58 09 78 3d 6e 75 6d | 63 6f 6e 76 28 78 2c 22 |.X.x=num|conv(x,"|
|00003170| 53 65 74 63 75 72 73 6f | 72 78 79 22 29 3b 0a 58 |Setcurso|rxy");.X|
|00003180| 09 79 3d 6e 75 6d 63 6f | 6e 76 28 79 2c 22 53 65 |.y=numco|nv(y,"Se|
|00003190| 74 63 75 72 73 6f 72 78 | 79 22 29 3b 0a 58 09 69 |tcursorx|y");.X.i|
|000031a0| 66 20 28 21 69 6e 74 70 | 28 78 29 29 20 75 6e 67 |f (!intp|(x)) ung|
|000031b0| 6f 6f 64 28 22 53 65 74 | 63 75 72 73 6f 72 78 79 |ood("Set|cursorxy|
|000031c0| 22 2c 78 29 3b 0a 58 09 | 69 66 20 28 21 69 6e 74 |",x);.X.|if (!int|
|000031d0| 70 28 79 29 29 20 75 6e | 67 6f 6f 64 28 22 53 65 |p(y)) un|good("Se|
|000031e0| 74 63 75 72 73 6f 72 78 | 79 22 2c 79 29 3b 0a 58 |tcursorx|y",y);.X|
|000031f0| 09 69 66 20 28 67 65 74 | 54 45 52 4d 28 29 20 3e |.if (get|TERM() >|
|00003200| 20 30 29 20 7b 0a 58 09 | 09 69 78 20 3d 20 78 2d | 0) {.X.|.ix = x-|
|00003210| 3e 6f 62 69 6e 74 3b 0a | 58 09 09 69 79 20 3d 20 |>obint;.|X..iy = |
|00003220| 79 2d 3e 6f 62 69 6e 74 | 3b 0a 58 09 09 74 70 75 |y->obint|;.X..tpu|
|00003230| 74 73 28 74 67 6f 74 6f | 28 43 4d 2c 69 78 2c 69 |ts(tgoto|(CM,ix,i|
|00003240| 79 29 2c 31 2c 70 75 74 | 63 68 29 3b 0a 58 09 7d |y),1,put|ch);.X.}|
|00003250| 0a 58 09 6d 66 72 65 65 | 28 78 29 3b 0a 58 09 6d |.X.mfree|(x);.X.m|
|00003260| 66 72 65 65 28 79 29 3b | 0a 58 09 72 65 74 75 72 |free(y);|.X.retur|
|00003270| 6e 20 28 28 73 74 72 75 | 63 74 20 6f 62 6a 65 63 |n ((stru|ct objec|
|00003280| 74 20 2a 29 28 2d 31 29 | 29 3b 0a 58 7d 0a 58 0a |t *)(-1)|);.X}.X.|
|00003290| 58 23 65 6e 64 69 66 20 | 53 45 54 43 55 52 53 4f |X#endif |SETCURSO|
|000032a0| 52 0a 58 0a 45 4e 44 5f | 4f 46 5f 6c 6f 67 6f 61 |R.X.END_|OF_logoa|
|000032b0| 75 78 2e 63 0a 69 66 20 | 74 65 73 74 20 31 31 31 |ux.c.if |test 111|
|000032c0| 33 38 20 2d 6e 65 20 60 | 77 63 20 2d 63 20 3c 6c |38 -ne `|wc -c <l|
|000032d0| 6f 67 6f 61 75 78 2e 63 | 60 3b 20 74 68 65 6e 0a |ogoaux.c|`; then.|
|000032e0| 20 20 20 20 65 63 68 6f | 20 73 68 61 72 3a 20 5c | echo| shar: \|
|000032f0| 22 6c 6f 67 6f 61 75 78 | 2e 63 5c 22 20 75 6e 70 |"logoaux|.c\" unp|
|00003300| 61 63 6b 65 64 20 77 69 | 74 68 20 77 72 6f 6e 67 |acked wi|th wrong|
|00003310| 20 73 69 7a 65 21 0a 66 | 69 0a 23 20 65 6e 64 20 | size!.f|i.# end |
|00003320| 6f 66 20 6f 76 65 72 77 | 72 69 74 69 6e 67 20 63 |of overw|riting c|
|00003330| 68 65 63 6b 0a 66 69 0a | 69 66 20 74 65 73 74 20 |heck.fi.|if test |
|00003340| 2d 66 20 6c 6f 67 6f 6f | 70 2e 63 20 2d 61 20 22 |-f logoo|p.c -a "|
|00003350| 24 7b 31 7d 22 20 21 3d | 20 22 2d 63 22 20 3b 20 |${1}" !=| "-c" ; |
|00003360| 74 68 65 6e 20 0a 20 20 | 65 63 68 6f 20 73 68 61 |then . |echo sha|
|00003370| 72 3a 20 57 69 6c 6c 20 | 6e 6f 74 20 6f 76 65 72 |r: Will |not over|
|00003380| 2d 77 72 69 74 65 20 65 | 78 69 73 74 69 6e 67 20 |-write e|xisting |
|00003390| 66 69 6c 65 20 5c 22 6c | 6f 67 6f 6f 70 2e 63 5c |file \"l|ogoop.c\|
|000033a0| 22 0a 65 6c 73 65 0a 65 | 63 68 6f 20 73 68 61 72 |".else.e|cho shar|
|000033b0| 3a 20 45 78 74 72 61 63 | 74 69 6e 67 20 5c 22 6c |: Extrac|ting \"l|
|000033c0| 6f 67 6f 6f 70 2e 63 5c | 22 20 5c 28 31 30 36 38 |ogoop.c\|" \(1068|
|000033d0| 35 20 63 68 61 72 61 63 | 74 65 72 73 5c 29 0a 73 |5 charac|ters\).s|
|000033e0| 65 64 20 22 73 2f 5e 58 | 2f 2f 22 20 3e 6c 6f 67 |ed "s/^X|//" >log|
|000033f0| 6f 6f 70 2e 63 20 3c 3c | 27 45 4e 44 5f 4f 46 5f |oop.c <<|'END_OF_|
|00003400| 6c 6f 67 6f 6f 70 2e 63 | 27 0a 58 0a 58 2f 2a 09 |logoop.c|'.X.X/*.|
|00003410| 4d 69 73 63 65 6c 6c 61 | 6e 65 6f 75 73 20 6f 70 |Miscella|neous op|
|00003420| 65 72 61 74 69 6f 6e 73 | 20 69 6e 20 4c 4f 47 4f |erations| in LOGO|
|00003430| 2e 0a 58 20 2a 09 43 6f | 70 79 72 69 67 68 74 20 |..X *.Co|pyright |
|00003440| 28 43 29 20 31 39 37 39 | 2c 20 54 68 65 20 43 68 |(C) 1979|, The Ch|
|00003450| 69 6c 64 72 65 6e 27 73 | 20 4d 75 73 65 75 6d 2c |ildren's| Museum,|
|00003460| 20 42 6f 73 74 6f 6e 2c | 20 4d 61 73 73 2e 0a 58 | Boston,| Mass..X|
|00003470| 20 2a 09 57 72 69 74 74 | 65 6e 20 62 79 20 44 6f | *.Writt|en by Do|
|00003480| 75 67 6c 61 73 20 42 2e | 20 4b 6c 75 6e 64 65 72 |uglas B.| Klunder|
|00003490| 2e 0a 58 20 2a 2f 0a 58 | 0a 58 23 69 6e 63 6c 75 |..X */.X|.X#inclu|
|000034a0| 64 65 20 22 6c 6f 67 6f | 2e 68 22 0a 58 0a 58 73 |de "logo|.h".X.Xs|
|000034b0| 74 72 75 63 74 20 6f 62 | 6a 65 63 74 20 2a 74 72 |truct ob|ject *tr|
|000034c0| 75 65 28 29 0a 58 7b 0a | 58 09 72 65 74 75 72 6e |ue().X{.|X.return|
|000034d0| 28 6c 6f 63 61 6c 69 7a | 65 28 6f 62 6a 63 70 73 |(localiz|e(objcps|
|000034e0| 74 72 28 22 74 72 75 65 | 22 29 29 29 3b 0a 58 7d |tr("true|")));.X}|
|000034f0| 0a 58 0a 58 73 74 72 75 | 63 74 20 6f 62 6a 65 63 |.X.Xstru|ct objec|
|00003500| 74 20 2a 66 61 6c 73 65 | 28 29 0a 58 7b 0a 58 09 |t *false|().X{.X.|
|00003510| 72 65 74 75 72 6e 28 6c | 6f 63 61 6c 69 7a 65 28 |return(l|ocalize(|
|00003520| 6f 62 6a 63 70 73 74 72 | 28 22 66 61 6c 73 65 22 |objcpstr|("false"|
|00003530| 29 29 29 3b 0a 58 7d 0a | 58 0a 58 6f 62 73 74 72 |)));.X}.|X.Xobstr|
|00003540| 63 6d 70 28 6f 62 6a 2c | 73 74 72 29 0a 58 72 65 |cmp(obj,|str).Xre|
|00003550| 67 69 73 74 65 72 20 73 | 74 72 75 63 74 20 6f 62 |gister s|truct ob|
|00003560| 6a 65 63 74 20 2a 6f 62 | 6a 3b 0a 58 63 68 61 72 |ject *ob|j;.Xchar|
|00003570| 20 2a 73 74 72 3b 0a 58 | 7b 0a 58 09 69 66 20 28 | *str;.X|{.X.if (|
|00003580| 21 73 74 72 69 6e 67 70 | 28 6f 62 6a 29 29 20 72 |!stringp|(obj)) r|
|00003590| 65 74 75 72 6e 28 31 29 | 3b 0a 58 09 72 65 74 75 |eturn(1)|;.X.retu|
|000035a0| 72 6e 28 73 74 72 63 6d | 70 28 6f 62 6a 2d 3e 6f |rn(strcm|p(obj->o|
|000035b0| 62 73 74 72 2c 73 74 72 | 29 29 3b 0a 58 7d 0a 58 |bstr,str|));.X}.X|
|000035c0| 0a 58 69 6e 74 20 74 72 | 75 74 68 28 78 29 09 2f |.Xint tr|uth(x)./|
|000035d0| 2a 20 75 73 65 64 20 62 | 79 20 69 66 20 68 61 6e |* used b|y if han|
|000035e0| 64 6c 65 72 20 69 6e 20 | 6c 6f 67 6f 2e 79 20 2a |dler in |logo.y *|
|000035f0| 2f 0a 58 72 65 67 69 73 | 74 65 72 20 73 74 72 75 |/.Xregis|ter stru|
|00003600| 63 74 20 6f 62 6a 65 63 | 74 20 2a 78 3b 0a 58 7b |ct objec|t *x;.X{|
|00003610| 0a 58 09 69 66 20 28 6f | 62 73 74 72 63 6d 70 28 |.X.if (o|bstrcmp(|
|00003620| 78 2c 22 74 72 75 65 22 | 29 20 26 26 20 6f 62 73 |x,"true"|) && obs|
|00003630| 74 72 63 6d 70 28 78 2c | 22 66 61 6c 73 65 22 29 |trcmp(x,|"false")|
|00003640| 29 20 75 6e 67 6f 6f 64 | 28 22 49 66 22 2c 78 29 |) ungood|("If",x)|
|00003650| 3b 0a 58 09 69 66 20 28 | 21 6f 62 73 74 72 63 6d |;.X.if (|!obstrcm|
|00003660| 70 28 78 2c 22 74 72 75 | 65 22 29 29 20 7b 0a 58 |p(x,"tru|e")) {.X|
|00003670| 09 09 6d 66 72 65 65 28 | 78 29 3b 0a 58 09 09 72 |..mfree(|x);.X..r|
|00003680| 65 74 75 72 6e 28 31 29 | 3b 0a 58 09 7d 20 65 6c |eturn(1)|;.X.} el|
|00003690| 73 65 20 7b 0a 58 09 09 | 6d 66 72 65 65 28 78 29 |se {.X..|mfree(x)|
|000036a0| 3b 0a 58 09 09 72 65 74 | 75 72 6e 28 30 29 3b 0a |;.X..ret|urn(0);.|
|000036b0| 58 09 7d 0a 58 7d 0a 58 | 0a 58 63 68 61 72 20 2a |X.}.X}.X|.Xchar *|
|000036c0| 6d 6b 73 74 72 69 6e 67 | 28 6f 62 6a 29 0a 58 72 |mkstring|(obj).Xr|
|000036d0| 65 67 69 73 74 65 72 20 | 73 74 72 75 63 74 20 6f |egister |struct o|
|000036e0| 62 6a 65 63 74 20 2a 6f | 62 6a 3b 0a 58 7b 0a 58 |bject *o|bj;.X{.X|
|000036f0| 09 2f 2a 20 73 75 62 72 | 6f 75 74 69 6e 65 20 66 |./* subr|outine f|
|00003700| 6f 72 20 73 65 76 65 72 | 61 6c 20 6f 70 65 72 61 |or sever|al opera|
|00003710| 74 69 6f 6e 73 20 77 68 | 69 63 68 20 74 72 65 61 |tions wh|ich trea|
|00003720| 74 20 6e 75 6d 62 65 72 | 73 20 61 73 20 77 6f 72 |t number|s as wor|
|00003730| 64 73 2c 0a 58 09 20 2a | 20 74 75 72 6e 20 6e 75 |ds,.X. *| turn nu|
|00003740| 6d 62 65 72 20 69 6e 74 | 6f 20 63 68 61 72 61 63 |mber int|o charac|
|00003750| 74 65 72 20 73 74 72 69 | 6e 67 2e 0a 58 09 20 2a |ter stri|ng..X. *|
|00003760| 20 4e 6f 74 65 3a 20 6f | 62 6a 20 6d 75 73 74 20 | Note: o|bj must |
|00003770| 62 65 20 6b 6e 6f 77 6e | 20 74 6f 20 62 65 20 6e |be known| to be n|
|00003780| 6f 6e 65 6d 70 74 79 3b | 20 72 65 73 75 6c 74 20 |onempty;| result |
|00003790| 69 73 20 70 74 72 20 74 | 6f 20 73 74 61 74 69 63 |is ptr t|o static|
|000037a0| 2e 0a 58 09 20 2a 2f 0a | 58 0a 58 09 72 65 67 69 |..X. */.|X.X.regi|
|000037b0| 73 74 65 72 20 63 68 61 | 72 20 2a 63 70 3b 0a 58 |ster cha|r *cp;.X|
|000037c0| 09 73 74 61 74 69 63 20 | 63 68 61 72 20 73 74 72 |.static |char str|
|000037d0| 5b 33 30 5d 3b 0a 58 0a | 58 09 73 77 69 74 63 68 |[30];.X.|X.switch|
|000037e0| 28 6f 62 6a 2d 3e 6f 62 | 74 79 70 65 29 20 7b 0a |(obj->ob|type) {.|
|000037f0| 58 09 09 63 61 73 65 20 | 53 54 52 49 4e 47 3a 0a |X..case |STRING:.|
|00003800| 58 09 09 09 63 70 20 3d | 20 6f 62 6a 2d 3e 6f 62 |X...cp =| obj->ob|
|00003810| 73 74 72 3b 0a 58 09 09 | 09 62 72 65 61 6b 3b 0a |str;.X..|.break;.|
|00003820| 58 09 09 63 61 73 65 20 | 49 4e 54 3a 0a 58 09 09 |X..case |INT:.X..|
|00003830| 09 73 70 72 69 6e 74 66 | 28 73 74 72 2c 46 49 58 |.sprintf|(str,FIX|
|00003840| 46 4d 54 2c 6f 62 6a 2d | 3e 6f 62 69 6e 74 29 3b |FMT,obj-|>obint);|
|00003850| 0a 58 09 09 09 63 70 20 | 3d 20 73 74 72 3b 0a 58 |.X...cp |= str;.X|
|00003860| 09 09 09 62 72 65 61 6b | 3b 0a 58 09 09 63 61 73 |...break|;.X..cas|
|00003870| 65 20 44 55 42 3a 0a 58 | 09 09 09 73 70 72 69 6e |e DUB:.X|...sprin|
|00003880| 74 66 28 73 74 72 2c 22 | 25 67 22 2c 6f 62 6a 2d |tf(str,"|%g",obj-|
|00003890| 3e 6f 62 64 75 62 29 3b | 0a 58 09 09 09 69 66 20 |>obdub);|.X...if |
|000038a0| 28 21 69 6e 64 65 78 28 | 73 74 72 2c 27 2e 27 29 |(!index(|str,'.')|
|000038b0| 29 20 73 74 72 63 61 74 | 28 73 74 72 2c 22 2e 30 |) strcat|(str,".0|
|000038c0| 22 29 3b 0a 58 09 09 09 | 63 70 20 3d 20 73 74 72 |");.X...|cp = str|
|000038d0| 3b 0a 58 09 09 09 62 72 | 65 61 6b 3b 0a 58 09 09 |;.X...br|eak;.X..|
|000038e0| 64 65 66 61 75 6c 74 3a | 09 2f 2a 20 63 61 73 65 |default:|./* case|
|000038f0| 20 43 4f 4e 53 20 2a 2f | 0a 58 09 09 09 72 65 74 | CONS */|.X...ret|
|00003900| 75 72 6e 28 30 29 3b 09 | 2f 2a 20 6e 6f 74 20 61 |urn(0);.|/* not a|
|00003910| 20 73 74 72 69 6e 67 2c | 20 68 61 6e 64 6c 65 20 | string,| handle |
|00003920| 75 70 6c 65 76 65 6c 20 | 2a 2f 0a 58 09 7d 0a 58 |uplevel |*/.X.}.X|
|00003930| 09 72 65 74 75 72 6e 28 | 63 70 29 3b 0a 58 7d 0a |.return(|cp);.X}.|
|00003940| 58 0a 58 73 74 72 75 63 | 74 20 6f 62 6a 65 63 74 |X.Xstruc|t object|
|00003950| 20 2a 61 6e 64 28 78 2c | 79 29 09 09 2f 2a 20 62 | *and(x,|y)../* b|
|00003960| 6f 74 68 20 2a 2f 0a 58 | 72 65 67 69 73 74 65 72 |oth */.X|register|
|00003970| 20 73 74 72 75 63 74 20 | 6f 62 6a 65 63 74 20 2a | struct |object *|
|00003980| 78 2c 2a 79 3b 0a 58 7b | 0a 58 09 69 66 20 28 6f |x,*y;.X{|.X.if (o|
|00003990| 62 73 74 72 63 6d 70 28 | 78 2c 22 74 72 75 65 22 |bstrcmp(|x,"true"|
|000039a0| 29 20 26 26 20 6f 62 73 | 74 72 63 6d 70 28 78 2c |) && obs|trcmp(x,|
|000039b0| 22 66 61 6c 73 65 22 29 | 29 20 75 6e 67 6f 6f 64 |"false")|) ungood|
|000039c0| 28 22 42 6f 74 68 22 2c | 78 29 3b 0a 58 09 69 66 |("Both",|x);.X.if|
|000039d0| 20 28 6f 62 73 74 72 63 | 6d 70 28 79 2c 22 74 72 | (obstrc|mp(y,"tr|
|000039e0| 75 65 22 29 20 26 26 20 | 6f 62 73 74 72 63 6d 70 |ue") && |obstrcmp|
|000039f0| 28 79 2c 22 66 61 6c 73 | 65 22 29 29 20 75 6e 67 |(y,"fals|e")) ung|
|00003a00| 6f 6f 64 28 22 42 6f 74 | 68 22 2c 79 29 3b 0a 58 |ood("Bot|h",y);.X|
|00003a10| 09 69 66 20 28 21 6f 62 | 73 74 72 63 6d 70 28 78 |.if (!ob|strcmp(x|
|00003a20| 2c 22 74 72 75 65 22 29 | 29 20 7b 0a 58 09 09 6d |,"true")|) {.X..m|
|00003a30| 66 72 65 65 28 78 29 3b | 0a 58 09 09 72 65 74 75 |free(x);|.X..retu|
|00003a40| 72 6e 28 79 29 3b 0a 58 | 09 7d 20 65 6c 73 65 20 |rn(y);.X|.} else |
|00003a50| 7b 0a 58 09 09 6d 66 72 | 65 65 28 79 29 3b 0a 58 |{.X..mfr|ee(y);.X|
|00003a60| 09 09 72 65 74 75 72 6e | 28 78 29 3b 0a 58 09 7d |..return|(x);.X.}|
|00003a70| 0a 58 7d 0a 58 0a 58 73 | 74 72 75 63 74 20 6f 62 |.X}.X.Xs|truct ob|
|00003a80| 6a 65 63 74 20 2a 6f 72 | 28 78 2c 79 29 09 09 2f |ject *or|(x,y)../|
|00003a90| 2a 20 65 69 74 68 65 72 | 20 2a 2f 0a 58 72 65 67 |* either| */.Xreg|
|00003aa0| 69 73 74 65 72 20 73 74 | 72 75 63 74 20 6f 62 6a |ister st|ruct obj|
|00003ab0| 65 63 74 20 2a 78 2c 2a | 79 3b 0a 58 7b 0a 58 09 |ect *x,*|y;.X{.X.|
|00003ac0| 69 66 20 28 6f 62 73 74 | 72 63 6d 70 28 78 2c 22 |if (obst|rcmp(x,"|
|00003ad0| 74 72 75 65 22 29 20 26 | 26 20 6f 62 73 74 72 63 |true") &|& obstrc|
|00003ae0| 6d 70 28 78 2c 22 66 61 | 6c 73 65 22 29 29 20 75 |mp(x,"fa|lse")) u|
|00003af0| 6e 67 6f 6f 64 28 22 45 | 69 74 68 65 72 22 2c 78 |ngood("E|ither",x|
|00003b00| 29 3b 0a 58 09 69 66 20 | 28 6f 62 73 74 72 63 6d |);.X.if |(obstrcm|
|00003b10| 70 28 79 2c 22 74 72 75 | 65 22 29 20 26 26 20 6f |p(y,"tru|e") && o|
|00003b20| 62 73 74 72 63 6d 70 28 | 79 2c 22 66 61 6c 73 65 |bstrcmp(|y,"false|
|00003b30| 22 29 29 20 75 6e 67 6f | 6f 64 28 22 45 69 74 68 |")) ungo|od("Eith|
|00003b40| 65 72 22 2c 79 29 3b 0a | 58 09 69 66 20 28 21 6f |er",y);.|X.if (!o|
|00003b50| 62 73 74 72 63 6d 70 28 | 78 2c 22 74 72 75 65 22 |bstrcmp(|x,"true"|
|00003b60| 29 29 20 7b 0a 58 09 09 | 6d 66 72 65 65 28 79 29 |)) {.X..|mfree(y)|
|00003b70| 3b 0a 58 09 09 72 65 74 | 75 72 6e 28 78 29 3b 0a |;.X..ret|urn(x);.|
|00003b80| 58 09 7d 20 65 6c 73 65 | 20 7b 0a 58 09 09 6d 66 |X.} else| {.X..mf|
|00003b90| 72 65 65 28 78 29 3b 0a | 58 09 09 72 65 74 75 72 |ree(x);.|X..retur|
|00003ba0| 6e 28 79 29 3b 0a 58 09 | 7d 0a 58 7d 0a 58 0a 58 |n(y);.X.|}.X}.X.X|
|00003bb0| 65 6d 70 74 79 70 28 78 | 29 09 2f 2a 20 6e 6f 6e |emptyp(x|)./* non|
|00003bc0| 2d 4c 4f 47 4f 20 65 6d | 70 74 79 70 2c 20 72 65 |-LOGO em|ptyp, re|
|00003bd0| 74 75 72 6e 69 6e 67 20 | 31 20 69 66 20 65 6d 70 |turning |1 if emp|
|00003be0| 74 79 2c 20 30 20 69 66 | 20 6e 6f 74 2e 20 2a 2f |ty, 0 if| not. */|
|00003bf0| 0a 58 72 65 67 69 73 74 | 65 72 20 73 74 72 75 63 |.Xregist|er struc|
|00003c00| 74 20 6f 62 6a 65 63 74 | 20 2a 78 3b 0a 58 7b 0a |t object| *x;.X{.|
|00003c10| 58 09 69 66 20 28 78 3d | 3d 30 29 20 72 65 74 75 |X.if (x=|=0) retu|
|00003c20| 72 6e 28 31 29 3b 0a 58 | 09 73 77 69 74 63 68 20 |rn(1);.X|.switch |
|00003c30| 28 78 2d 3e 6f 62 74 79 | 70 65 29 20 7b 0a 58 09 |(x->obty|pe) {.X.|
|00003c40| 09 63 61 73 65 20 53 54 | 52 49 4e 47 3a 0a 58 09 |.case ST|RING:.X.|
|00003c50| 09 09 69 66 20 28 2a 28 | 78 2d 3e 6f 62 73 74 72 |..if (*(|x->obstr|
|00003c60| 29 3d 3d 27 5c 30 27 29 | 09 2f 2a 20 63 68 65 63 |)=='\0')|./* chec|
|00003c70| 6b 20 66 6f 72 20 63 68 | 61 72 61 63 74 65 72 20 |k for ch|aracter |
|00003c80| 2a 2f 0a 58 09 09 09 09 | 72 65 74 75 72 6e 28 31 |*/.X....|return(1|
|00003c90| 29 3b 0a 58 09 09 64 65 | 66 61 75 6c 74 3a 0a 58 |);.X..de|fault:.X|
|00003ca0| 09 09 09 72 65 74 75 72 | 6e 28 30 29 3b 0a 58 09 |...retur|n(0);.X.|
|00003cb0| 7d 0a 58 7d 0a 58 0a 58 | 73 74 72 75 63 74 20 6f |}.X}.X.X|struct o|
|00003cc0| 62 6a 65 63 74 20 2a 6c | 65 6d 70 28 78 29 09 09 |bject *l|emp(x)..|
|00003cd0| 2f 2a 20 4c 4f 47 4f 20 | 65 6d 70 74 79 70 20 2a |/* LOGO |emptyp *|
|00003ce0| 2f 0a 58 72 65 67 69 73 | 74 65 72 20 73 74 72 75 |/.Xregis|ter stru|
|00003cf0| 63 74 20 6f 62 6a 65 63 | 74 20 2a 78 3b 0a 58 7b |ct objec|t *x;.X{|
|00003d00| 0a 58 09 69 66 20 28 65 | 6d 70 74 79 70 28 78 29 |.X.if (e|mptyp(x)|
|00003d10| 29 20 7b 0a 58 09 09 6d | 66 72 65 65 28 78 29 3b |) {.X..m|free(x);|
|00003d20| 0a 58 09 09 72 65 74 75 | 72 6e 28 74 72 75 65 28 |.X..retu|rn(true(|
|00003d30| 29 29 3b 0a 58 09 7d 20 | 65 6c 73 65 20 7b 0a 58 |));.X.} |else {.X|
|00003d40| 09 09 6d 66 72 65 65 28 | 78 29 3b 0a 58 09 09 72 |..mfree(|x);.X..r|
|00003d50| 65 74 75 72 6e 28 66 61 | 6c 73 65 28 29 29 3b 0a |eturn(fa|lse());.|
|00003d60| 58 09 7d 0a 58 7d 0a 58 | 0a 58 73 74 72 75 63 74 |X.}.X}.X|.Xstruct|
|00003d70| 20 6f 62 6a 65 63 74 20 | 2a 63 6f 6d 70 28 78 29 | object |*comp(x)|
|00003d80| 09 09 2f 2a 20 6e 6f 74 | 20 2a 2f 0a 58 72 65 67 |../* not| */.Xreg|
|00003d90| 69 73 74 65 72 20 73 74 | 72 75 63 74 20 6f 62 6a |ister st|ruct obj|
|00003da0| 65 63 74 20 2a 78 3b 0a | 58 7b 0a 58 09 69 66 20 |ect *x;.|X{.X.if |
|00003db0| 28 21 6f 62 73 74 72 63 | 6d 70 28 78 2c 22 74 72 |(!obstrc|mp(x,"tr|
|00003dc0| 75 65 22 29 29 20 7b 0a | 58 09 09 6d 66 72 65 65 |ue")) {.|X..mfree|
|00003dd0| 28 78 29 3b 0a 58 09 09 | 72 65 74 75 72 6e 28 66 |(x);.X..|return(f|
|00003de0| 61 6c 73 65 28 29 29 3b | 0a 58 09 7d 20 65 6c 73 |alse());|.X.} els|
|00003df0| 65 20 69 66 20 28 21 6f | 62 73 74 72 63 6d 70 28 |e if (!o|bstrcmp(|
|00003e00| 78 2c 22 66 61 6c 73 65 | 22 29 29 20 7b 0a 58 09 |x,"false|")) {.X.|
|00003e10| 09 6d 66 72 65 65 28 78 | 29 3b 0a 58 09 09 72 65 |.mfree(x|);.X..re|
|00003e20| 74 75 72 6e 28 74 72 75 | 65 28 29 29 3b 0a 58 09 |turn(tru|e());.X.|
|00003e30| 7d 20 65 6c 73 65 20 75 | 6e 67 6f 6f 64 28 22 4e |} else u|ngood("N|
|00003e40| 6f 74 22 2c 78 29 3b 0a | 58 7d 0a 58 0a 58 73 74 |ot",x);.|X}.X.Xst|
|00003e50| 72 75 63 74 20 6f 62 6a | 65 63 74 20 2a 6c 73 65 |ruct obj|ect *lse|
|00003e60| 6e 74 70 28 78 29 09 2f | 2a 20 4c 4f 47 4f 20 73 |ntp(x)./|* LOGO s|
|00003e70| 65 6e 74 65 6e 63 65 70 | 20 2a 2f 0a 58 72 65 67 |entencep| */.Xreg|
|00003e80| 69 73 74 65 72 20 73 74 | 72 75 63 74 20 6f 62 6a |ister st|ruct obj|
|00003e90| 65 63 74 20 2a 78 3b 0a | 58 7b 0a 58 09 72 65 67 |ect *x;.|X{.X.reg|
|00003ea0| 69 73 74 65 72 20 73 74 | 72 75 63 74 20 6f 62 6a |ister st|ruct obj|
|00003eb0| 65 63 74 20 2a 79 3b 0a | 58 0a 58 09 69 66 20 28 |ect *y;.|X.X.if (|
|00003ec0| 78 3d 3d 30 29 20 72 65 | 74 75 72 6e 28 74 72 75 |x==0) re|turn(tru|
|00003ed0| 65 28 29 29 3b 0a 58 09 | 69 66 20 28 6c 69 73 74 |e());.X.|if (list|
|00003ee0| 70 28 78 29 29 20 7b 0a | 58 09 09 2f 2a 20 42 48 |p(x)) {.|X../* BH|
|00003ef0| 20 34 2f 33 30 2f 38 31 | 20 74 72 75 65 20 6f 6e | 4/30/81| true on|
|00003f00| 6c 79 20 66 6f 72 20 61 | 20 66 6c 61 74 20 73 65 |ly for a| flat se|
|00003f10| 6e 74 65 6e 63 65 2c 0a | 58 09 09 20 20 20 6e 6f |ntence,.|X.. no|
|00003f20| 74 20 61 20 6c 69 73 74 | 20 6f 66 20 6c 69 73 74 |t a list| of list|
|00003f30| 73 20 2a 2f 0a 58 09 09 | 66 6f 72 20 28 79 20 3d |s */.X..|for (y =|
|00003f40| 20 78 3b 20 79 3b 20 79 | 20 3d 20 79 2d 3e 6f 62 | x; y; y| = y->ob|
|00003f50| 63 64 72 29 0a 58 09 09 | 09 69 66 20 28 6c 69 73 |cdr).X..|.if (lis|
|00003f60| 74 70 28 79 2d 3e 6f 62 | 63 61 72 29 29 20 7b 0a |tp(y->ob|car)) {.|
|00003f70| 58 09 09 09 09 6d 66 72 | 65 65 28 78 29 3b 0a 58 |X....mfr|ee(x);.X|
|00003f80| 09 09 09 09 72 65 74 75 | 72 6e 28 66 61 6c 73 65 |....retu|rn(false|
|00003f90| 28 29 29 3b 0a 58 09 09 | 09 7d 0a 58 09 09 6d 66 |());.X..|.}.X..mf|
|00003fa0| 72 65 65 28 78 29 3b 0a | 58 09 09 72 65 74 75 72 |ree(x);.|X..retur|
|00003fb0| 6e 28 74 72 75 65 28 29 | 29 3b 0a 58 09 7d 20 65 |n(true()|);.X.} e|
|00003fc0| 6c 73 65 20 7b 0a 58 09 | 09 6d 66 72 65 65 28 78 |lse {.X.|.mfree(x|
|00003fd0| 29 3b 0a 58 09 09 72 65 | 74 75 72 6e 28 66 61 6c |);.X..re|turn(fal|
|00003fe0| 73 65 28 29 29 3b 0a 58 | 09 7d 0a 58 7d 0a 58 0a |se());.X|.}.X}.X.|
|00003ff0| 58 73 74 72 75 63 74 20 | 6f 62 6a 65 63 74 20 2a |Xstruct |object *|
|00004000| 6c 77 6f 72 64 70 28 78 | 29 09 2f 2a 20 4c 4f 47 |lwordp(x|)./* LOG|
|00004010| 4f 20 77 6f 72 64 70 20 | 2a 2f 0a 58 72 65 67 69 |O wordp |*/.Xregi|
|00004020| 73 74 65 72 20 73 74 72 | 75 63 74 20 6f 62 6a 65 |ster str|uct obje|
|00004030| 63 74 20 2a 78 3b 0a 58 | 7b 0a 58 09 69 66 20 28 |ct *x;.X|{.X.if (|
|00004040| 21 6c 69 73 74 70 28 78 | 29 29 20 7b 0a 58 09 09 |!listp(x|)) {.X..|
|00004050| 6d 66 72 65 65 28 78 29 | 3b 0a 58 09 09 72 65 74 |mfree(x)|;.X..ret|
|00004060| 75 72 6e 28 74 72 75 65 | 28 29 29 3b 0a 58 09 7d |urn(true|());.X.}|
|00004070| 20 65 6c 73 65 20 7b 0a | 58 09 09 6d 66 72 65 65 | else {.|X..mfree|
|00004080| 28 78 29 3b 0a 58 09 09 | 72 65 74 75 72 6e 28 66 |(x);.X..|return(f|
|00004090| 61 6c 73 65 28 29 29 3b | 0a 58 09 7d 0a 58 7d 0a |alse());|.X.}.X}.|
|000040a0| 58 0a 58 73 74 72 75 63 | 74 20 6f 62 6a 65 63 74 |X.Xstruc|t object|
|000040b0| 20 2a 66 69 72 73 74 28 | 78 29 09 09 2f 2a 20 66 | *first(|x)../* f|
|000040c0| 69 72 73 74 20 2a 2f 0a | 58 72 65 67 69 73 74 65 |irst */.|Xregiste|
|000040d0| 72 20 73 74 72 75 63 74 | 20 6f 62 6a 65 63 74 20 |r struct| object |
|000040e0| 2a 78 3b 0a 58 7b 0a 58 | 09 72 65 67 69 73 74 65 |*x;.X{.X|.registe|
|000040f0| 72 20 73 74 72 75 63 74 | 20 6f 62 6a 65 63 74 20 |r struct| object |
|00004100| 2a 74 65 6d 70 3b 0a 58 | 09 72 65 67 69 73 74 65 |*temp;.X|.registe|
|00004110| 72 20 63 68 61 72 20 2a | 63 70 3b 0a 58 09 63 68 |r char *|cp;.X.ch|
|00004120| 61 72 20 73 74 72 5b 32 | 5d 3b 0a 58 0a 58 09 69 |ar str[2|];.X.X.i|
|00004130| 66 20 28 65 6d 70 74 79 | 70 28 78 29 29 20 75 6e |f (empty|p(x)) un|
|00004140| 67 6f 6f 64 28 22 46 69 | 72 73 74 22 2c 78 29 3b |good("Fi|rst",x);|
|00004150| 0a 58 09 69 66 20 28 63 | 70 20 3d 20 6d 6b 73 74 |.X.if (c|p = mkst|
|00004160| 72 69 6e 67 28 78 29 29 | 20 7b 0a 58 09 09 73 74 |ring(x))| {.X..st|
|00004170| 72 5b 30 5d 20 3d 20 2a | 63 70 3b 0a 58 09 09 73 |r[0] = *|cp;.X..s|
|00004180| 74 72 5b 31 5d 20 3d 20 | 27 5c 30 27 3b 0a 58 09 |tr[1] = |'\0';.X.|
|00004190| 09 6d 66 72 65 65 28 78 | 29 3b 0a 58 09 09 72 65 |.mfree(x|);.X..re|
|000041a0| 74 75 72 6e 28 6c 6f 63 | 61 6c 69 7a 65 28 6f 62 |turn(loc|alize(ob|
|000041b0| 6a 63 70 73 74 72 28 73 | 74 72 29 29 29 3b 0a 58 |jcpstr(s|tr)));.X|
|000041c0| 09 7d 20 65 6c 73 65 20 | 7b 0a 58 09 09 74 65 6d |.} else |{.X..tem|
|000041d0| 70 20 3d 20 78 2d 3e 6f | 62 63 61 72 3b 0a 58 09 |p = x->o|bcar;.X.|
|000041e0| 09 6c 6f 63 61 6c 69 7a | 65 28 74 65 6d 70 29 3b |.localiz|e(temp);|
|000041f0| 0a 58 09 09 6d 66 72 65 | 65 28 78 29 3b 0a 58 09 |.X..mfre|e(x);.X.|
|00004200| 09 72 65 74 75 72 6e 28 | 74 65 6d 70 29 3b 0a 58 |.return(|temp);.X|
|00004210| 09 7d 0a 58 7d 0a 58 0a | 58 73 74 72 75 63 74 20 |.}.X}.X.|Xstruct |
|00004220| 6f 62 6a 65 63 74 20 2a | 62 75 74 66 69 72 28 78 |object *|butfir(x|
|00004230| 29 09 09 2f 2a 20 62 75 | 74 66 69 72 73 74 20 2a |)../* bu|tfirst *|
|00004240| 2f 0a 58 72 65 67 69 73 | 74 65 72 20 73 74 72 75 |/.Xregis|ter stru|
|00004250| 63 74 20 6f 62 6a 65 63 | 74 20 2a 78 3b 0a 58 7b |ct objec|t *x;.X{|
|00004260| 0a 58 09 72 65 67 69 73 | 74 65 72 20 73 74 72 75 |.X.regis|ter stru|
|00004270| 63 74 20 6f 62 6a 65 63 | 74 20 2a 74 65 6d 70 3b |ct objec|t *temp;|
|00004280| 0a 58 09 72 65 67 69 73 | 74 65 72 20 63 68 61 72 |.X.regis|ter char|
|00004290| 20 2a 63 70 3b 0a 58 0a | 58 09 69 66 20 28 65 6d | *cp;.X.|X.if (em|
|000042a0| 70 74 79 70 28 78 29 29 | 20 75 6e 67 6f 6f 64 28 |ptyp(x))| ungood(|
|000042b0| 22 42 75 74 66 69 72 73 | 74 22 2c 78 29 3b 0a 58 |"Butfirs|t",x);.X|
|000042c0| 09 69 66 20 28 63 70 20 | 3d 20 6d 6b 73 74 72 69 |.if (cp |= mkstri|
|000042d0| 6e 67 28 78 29 29 20 7b | 0a 58 09 09 63 70 2b 2b |ng(x)) {|.X..cp++|
|000042e0| 3b 09 2f 2a 20 73 6b 69 | 70 20 66 69 72 73 74 20 |;./* ski|p first |
|000042f0| 63 68 61 72 20 2a 2f 0a | 58 09 09 6d 66 72 65 65 |char */.|X..mfree|
|00004300| 28 78 29 3b 0a 58 09 09 | 72 65 74 75 72 6e 28 6c |(x);.X..|return(l|
|00004310| 6f 63 61 6c 69 7a 65 28 | 6f 62 6a 63 70 73 74 72 |ocalize(|objcpstr|
|00004320| 28 63 70 29 29 29 3b 0a | 58 09 7d 20 65 6c 73 65 |(cp)));.|X.} else|
|00004330| 20 7b 0a 58 09 09 74 65 | 6d 70 20 3d 20 78 2d 3e | {.X..te|mp = x->|
|00004340| 6f 62 63 64 72 3b 0a 58 | 09 09 6c 6f 63 61 6c 69 |obcdr;.X|..locali|
|00004350| 7a 65 28 74 65 6d 70 29 | 3b 0a 58 09 09 6d 66 72 |ze(temp)|;.X..mfr|
|00004360| 65 65 28 78 29 3b 0a 58 | 09 09 72 65 74 75 72 6e |ee(x);.X|..return|
|00004370| 28 74 65 6d 70 29 3b 0a | 58 09 7d 0a 58 7d 0a 58 |(temp);.|X.}.X}.X|
|00004380| 0a 58 73 74 72 75 63 74 | 20 6f 62 6a 65 63 74 20 |.Xstruct| object |
|00004390| 2a 6c 61 73 74 28 78 29 | 09 09 2f 2a 20 6c 61 73 |*last(x)|../* las|
|000043a0| 74 20 2a 2f 0a 58 72 65 | 67 69 73 74 65 72 20 73 |t */.Xre|gister s|
|000043b0| 74 72 75 63 74 20 6f 62 | 6a 65 63 74 20 2a 78 3b |truct ob|ject *x;|
|000043c0| 0a 58 7b 0a 58 09 72 65 | 67 69 73 74 65 72 20 73 |.X{.X.re|gister s|
|000043d0| 74 72 75 63 74 20 6f 62 | 6a 65 63 74 20 2a 74 65 |truct ob|ject *te|
|000043e0| 6d 70 3b 0a 58 09 72 65 | 67 69 73 74 65 72 20 63 |mp;.X.re|gister c|
|000043f0| 68 61 72 20 2a 63 70 3b | 0a 58 0a 58 09 69 66 20 |har *cp;|.X.X.if |
|00004400| 28 65 6d 70 74 79 70 28 | 78 29 29 20 75 6e 67 6f |(emptyp(|x)) ungo|
|00004410| 6f 64 28 22 4c 61 73 74 | 22 2c 78 29 3b 0a 58 09 |od("Last|",x);.X.|
|00004420| 69 66 20 28 63 70 20 3d | 20 6d 6b 73 74 72 69 6e |if (cp =| mkstrin|
|00004430| 67 28 78 29 29 20 7b 0a | 58 09 09 6d 66 72 65 65 |g(x)) {.|X..mfree|
|00004440| 28 78 29 3b 0a 58 09 09 | 72 65 74 75 72 6e 28 6c |(x);.X..|return(l|
|00004450| 6f 63 61 6c 69 7a 65 28 | 6f 62 6a 63 70 73 74 72 |ocalize(|objcpstr|
|00004460| 28 26 63 70 5b 73 74 72 | 6c 65 6e 28 63 70 29 2d |(&cp[str|len(cp)-|
|00004470| 31 5d 29 29 29 3b 0a 58 | 09 7d 20 65 6c 73 65 20 |1])));.X|.} else |
|00004480| 7b 0a 58 09 09 66 6f 72 | 28 74 65 6d 70 3d 78 3b |{.X..for|(temp=x;|
|00004490| 20 74 65 6d 70 2d 3e 6f | 62 63 64 72 3b 20 74 65 | temp->o|bcdr; te|
|000044a0| 6d 70 3d 74 65 6d 70 2d | 3e 6f 62 63 64 72 29 20 |mp=temp-|>obcdr) |
|000044b0| 3b 0a 58 09 09 74 65 6d | 70 20 3d 20 74 65 6d 70 |;.X..tem|p = temp|
|000044c0| 2d 3e 6f 62 63 61 72 3b | 0a 58 09 09 6c 6f 63 61 |->obcar;|.X..loca|
|000044d0| 6c 69 7a 65 28 74 65 6d | 70 29 3b 0a 58 09 09 6d |lize(tem|p);.X..m|
|000044e0| 66 72 65 65 28 78 29 3b | 0a 58 09 09 72 65 74 75 |free(x);|.X..retu|
|000044f0| 72 6e 28 74 65 6d 70 29 | 3b 0a 58 09 7d 0a 58 7d |rn(temp)|;.X.}.X}|
|00004500| 0a 58 0a 58 73 74 72 75 | 63 74 20 6f 62 6a 65 63 |.X.Xstru|ct objec|
|00004510| 74 20 2a 62 75 74 6c 61 | 73 28 78 29 09 09 2f 2a |t *butla|s(x)../*|
|00004520| 20 62 75 74 6c 61 73 74 | 20 2a 2f 0a 58 72 65 67 | butlast| */.Xreg|
|00004530| 69 73 74 65 72 20 73 74 | 72 75 63 74 20 6f 62 6a |ister st|ruct obj|
|00004540| 65 63 74 20 2a 78 3b 0a | 58 7b 0a 58 09 72 65 67 |ect *x;.|X{.X.reg|
|00004550| 69 73 74 65 72 20 73 74 | 72 75 63 74 20 6f 62 6a |ister st|ruct obj|
|00004560| 65 63 74 20 2a 74 65 6d | 70 2c 2a 74 65 6d 70 32 |ect *tem|p,*temp2|
|00004570| 2c 2a 61 6e 73 3b 0a 58 | 09 72 65 67 69 73 74 65 |,*ans;.X|.registe|
|00004580| 72 20 63 68 61 72 20 2a | 63 70 3b 0a 58 0a 58 09 |r char *|cp;.X.X.|
|00004590| 69 66 20 28 65 6d 70 74 | 79 70 28 78 29 29 20 75 |if (empt|yp(x)) u|
|000045a0| 6e 67 6f 6f 64 28 22 42 | 75 74 6c 61 73 74 22 2c |ngood("B|utlast",|
|000045b0| 78 29 3b 0a 58 09 69 66 | 20 28 63 70 20 3d 20 6d |x);.X.if| (cp = m|
|000045c0| 6b 73 74 72 69 6e 67 28 | 78 29 29 20 7b 0a 58 09 |kstring(|x)) {.X.|
|000045d0| 09 6d 66 72 65 65 28 78 | 29 3b 0a 58 09 09 74 65 |.mfree(x|);.X..te|
|000045e0| 6d 70 20 3d 20 6f 62 6a | 73 74 72 28 63 6b 6d 61 |mp = obj|str(ckma|
|000045f0| 6c 6c 6f 63 28 73 74 72 | 6c 65 6e 28 63 70 29 29 |lloc(str|len(cp))|
|00004600| 29 3b 0a 58 09 09 73 74 | 72 6e 63 70 79 28 74 65 |);.X..st|rncpy(te|
|00004610| 6d 70 2d 3e 6f 62 73 74 | 72 2c 63 70 2c 73 74 72 |mp->obst|r,cp,str|
|00004620| 6c 65 6e 28 63 70 29 2d | 31 29 3b 0a 58 09 09 28 |len(cp)-|1);.X..(|
|00004630| 74 65 6d 70 2d 3e 6f 62 | 73 74 72 29 5b 73 74 72 |temp->ob|str)[str|
|00004640| 6c 65 6e 28 63 70 29 2d | 31 5d 20 3d 20 27 5c 30 |len(cp)-|1] = '\0|
|00004650| 27 3b 0a 58 09 09 72 65 | 74 75 72 6e 28 6c 6f 63 |';.X..re|turn(loc|
|00004660| 61 6c 69 7a 65 28 74 65 | 6d 70 29 29 3b 0a 58 09 |alize(te|mp));.X.|
|00004670| 7d 20 65 6c 73 65 20 7b | 0a 58 09 09 69 66 20 28 |} else {|.X..if (|
|00004680| 28 78 2d 3e 6f 62 63 64 | 72 29 3d 3d 30 29 20 7b |(x->obcd|r)==0) {|
|00004690| 0a 58 09 09 09 6d 66 72 | 65 65 28 78 29 3b 0a 58 |.X...mfr|ee(x);.X|
|000046a0| 09 09 09 72 65 74 75 72 | 6e 28 30 29 3b 0a 58 09 |...retur|n(0);.X.|
|000046b0| 09 7d 0a 58 09 09 74 65 | 6d 70 32 20 3d 20 61 6e |.}.X..te|mp2 = an|
|000046c0| 73 20 3d 20 67 6c 6f 62 | 63 6f 6e 73 28 30 2c 30 |s = glob|cons(0,0|
|000046d0| 29 3b 0a 58 09 09 66 6f | 72 28 74 65 6d 70 3d 78 |);.X..fo|r(temp=x|
|000046e0| 3b 20 74 65 6d 70 2d 3e | 6f 62 63 64 72 2d 3e 6f |; temp->|obcdr->o|
|000046f0| 62 63 64 72 3b 20 74 65 | 6d 70 3d 74 65 6d 70 2d |bcdr; te|mp=temp-|
|00004700| 3e 6f 62 63 64 72 29 20 | 7b 0a 58 09 09 09 74 65 |>obcdr) |{.X...te|
|00004710| 6d 70 32 2d 3e 6f 62 63 | 61 72 20 3d 20 67 6c 6f |mp2->obc|ar = glo|
|00004720| 62 63 6f 70 79 28 74 65 | 6d 70 2d 3e 6f 62 63 61 |bcopy(te|mp->obca|
|00004730| 72 29 3b 0a 58 09 09 09 | 74 65 6d 70 32 2d 3e 6f |r);.X...|temp2->o|
|00004740| 62 63 64 72 20 3d 20 67 | 6c 6f 62 63 6f 70 79 28 |bcdr = g|lobcopy(|
|00004750| 67 6c 6f 62 63 6f 6e 73 | 28 30 2c 30 29 29 3b 0a |globcons|(0,0));.|
|00004760| 58 09 09 09 74 65 6d 70 | 32 20 3d 20 74 65 6d 70 |X...temp|2 = temp|
|00004770| 32 2d 3e 6f 62 63 64 72 | 3b 0a 58 09 09 7d 0a 58 |2->obcdr|;.X..}.X|
|00004780| 09 09 74 65 6d 70 32 2d | 3e 6f 62 63 61 72 20 3d |..temp2-|>obcar =|
|00004790| 20 67 6c 6f 62 63 6f 70 | 79 28 74 65 6d 70 2d 3e | globcop|y(temp->|
|000047a0| 6f 62 63 61 72 29 3b 0a | 58 09 09 6c 6f 63 61 6c |obcar);.|X..local|
|000047b0| 69 7a 65 28 61 6e 73 29 | 3b 0a 58 09 09 6d 66 72 |ize(ans)|;.X..mfr|
|000047c0| 65 65 28 78 29 3b 0a 58 | 09 09 72 65 74 75 72 6e |ee(x);.X|..return|
|000047d0| 28 61 6e 73 29 3b 0a 58 | 09 7d 0a 58 7d 0a 58 0a |(ans);.X|.}.X}.X.|
|000047e0| 58 73 74 72 75 63 74 20 | 6f 62 6a 65 63 74 20 2a |Xstruct |object *|
|000047f0| 66 70 75 74 28 78 2c 79 | 29 0a 58 72 65 67 69 73 |fput(x,y|).Xregis|
|00004800| 74 65 72 20 73 74 72 75 | 63 74 20 6f 62 6a 65 63 |ter stru|ct objec|
|00004810| 74 20 2a 78 2c 2a 79 3b | 0a 58 7b 0a 58 09 72 65 |t *x,*y;|.X{.X.re|
|00004820| 67 69 73 74 65 72 20 73 | 74 72 75 63 74 20 6f 62 |gister s|truct ob|
|00004830| 6a 65 63 74 20 2a 7a 3b | 0a 58 0a 58 09 69 66 28 |ject *z;|.X.X.if(|
|00004840| 21 6c 69 73 74 70 28 79 | 29 29 20 7b 0a 58 09 09 |!listp(y|)) {.X..|
|00004850| 70 72 69 6e 74 66 28 22 | 53 65 63 6f 6e 64 20 69 |printf("|Second i|
|00004860| 6e 70 75 74 20 6f 66 20 | 66 70 75 74 20 6d 75 73 |nput of |fput mus|
|00004870| 74 20 62 65 20 61 20 6c | 69 73 74 2e 5c 6e 22 29 |t be a l|ist.\n")|
|00004880| 3b 0a 58 09 09 65 72 72 | 68 61 6e 64 28 29 3b 0a |;.X..err|hand();.|
|00004890| 58 09 7d 0a 58 09 7a 20 | 3d 20 6c 6f 63 63 6f 6e |X.}.X.z |= loccon|
|000048a0| 73 28 78 2c 79 29 3b 0a | 58 09 6d 66 72 65 65 28 |s(x,y);.|X.mfree(|
|000048b0| 78 29 3b 0a 58 09 6d 66 | 72 65 65 28 79 29 3b 0a |x);.X.mf|ree(y);.|
|000048c0| 58 09 72 65 74 75 72 6e | 28 7a 29 3b 0a 58 7d 0a |X.return|(z);.X}.|
|000048d0| 58 0a 58 73 74 72 75 63 | 74 20 6f 62 6a 65 63 74 |X.Xstruc|t object|
|000048e0| 20 2a 6c 70 75 74 28 78 | 2c 79 29 0a 58 73 74 72 | *lput(x|,y).Xstr|
|000048f0| 75 63 74 20 6f 62 6a 65 | 63 74 20 2a 78 2c 2a 79 |uct obje|ct *x,*y|
|00004900| 3b 0a 58 7b 0a 58 09 72 | 65 67 69 73 74 65 72 20 |;.X{.X.r|egister |
|00004910| 73 74 72 75 63 74 20 6f | 62 6a 65 63 74 20 2a 61 |struct o|bject *a|
|00004920| 2c 2a 62 2c 2a 61 6e 73 | 3b 0a 58 0a 58 09 69 66 |,*b,*ans|;.X.X.if|
|00004930| 20 28 21 6c 69 73 74 70 | 28 79 29 29 20 7b 0a 58 | (!listp|(y)) {.X|
|00004940| 09 09 70 72 69 6e 74 66 | 28 22 53 65 63 6f 6e 64 |..printf|("Second|
|00004950| 20 69 6e 70 75 74 20 6f | 66 20 6c 70 75 74 20 6d | input o|f lput m|
|00004960| 75 73 74 20 62 65 20 61 | 20 6c 69 73 74 2e 5c 6e |ust be a| list.\n|
|00004970| 22 29 3b 0a 58 09 09 65 | 72 72 68 61 6e 64 28 29 |");.X..e|rrhand()|
|00004980| 3b 0a 58 09 7d 0a 58 09 | 69 66 20 28 79 20 3d 3d |;.X.}.X.|if (y ==|
|00004990| 20 30 29 20 7b 09 2f 2a | 20 32 6e 64 20 69 6e 70 | 0) {./*| 2nd inp|
|000049a0| 75 74 20 69 73 20 65 6d | 70 74 79 20 6c 69 73 74 |ut is em|pty list|
|000049b0| 20 2a 2f 0a 58 09 09 62 | 20 3d 20 6c 6f 63 63 6f | */.X..b| = locco|
|000049c0| 6e 73 28 78 2c 30 29 3b | 0a 58 09 09 6d 66 72 65 |ns(x,0);|.X..mfre|
|000049d0| 65 28 78 29 3b 0a 58 09 | 09 72 65 74 75 72 6e 28 |e(x);.X.|.return(|
|000049e0| 62 29 3b 0a 58 09 7d 0a | 58 09 61 6e 73 20 3d 20 |b);.X.}.|X.ans = |
|000049f0| 61 20 3d 20 6c 6f 63 63 | 6f 6e 73 28 30 2c 30 29 |a = locc|ons(0,0)|
|00004a00| 3b 0a 58 09 66 6f 72 20 | 28 62 3d 79 3b 20 62 3b |;.X.for |(b=y; b;|
|00004a10| 20 62 3d 62 2d 3e 6f 62 | 63 64 72 29 20 7b 0a 58 | b=b->ob|cdr) {.X|
|00004a20| 09 09 61 2d 3e 6f 62 63 | 61 72 20 3d 20 67 6c 6f |..a->obc|ar = glo|
|00004a30| 62 63 6f 70 79 28 62 2d | 3e 6f 62 63 61 72 29 3b |bcopy(b-|>obcar);|
|00004a40| 0a 58 09 09 61 2d 3e 6f | 62 63 64 72 20 3d 20 67 |.X..a->o|bcdr = g|
|00004a50| 6c 6f 62 63 6f 70 79 28 | 67 6c 6f 62 63 6f 6e 73 |lobcopy(|globcons|
|00004a60| 28 30 2c 30 29 29 3b 0a | 58 09 09 61 20 3d 20 61 |(0,0));.|X..a = a|
|00004a70| 2d 3e 6f 62 63 64 72 3b | 0a 58 09 7d 0a 58 09 61 |->obcdr;|.X.}.X.a|
|00004a80| 2d 3e 6f 62 63 61 72 20 | 3d 20 67 6c 6f 62 63 6f |->obcar |= globco|
|00004a90| 70 79 28 78 29 3b 0a 58 | 09 6d 66 72 65 65 28 78 |py(x);.X|.mfree(x|
|00004aa0| 29 3b 0a 58 09 6d 66 72 | 65 65 28 79 29 3b 0a 58 |);.X.mfr|ee(y);.X|
|00004ab0| 09 72 65 74 75 72 6e 28 | 61 6e 73 29 3b 0a 58 7d |.return(|ans);.X}|
|00004ac0| 0a 58 0a 58 73 74 72 75 | 63 74 20 6f 62 6a 65 63 |.X.Xstru|ct objec|
|00004ad0| 74 20 2a 6c 69 73 74 28 | 78 2c 79 29 0a 58 73 74 |t *list(|x,y).Xst|
|00004ae0| 72 75 63 74 20 6f 62 6a | 65 63 74 20 2a 78 2c 2a |ruct obj|ect *x,*|
|00004af0| 79 3b 0a 58 7b 0a 58 09 | 72 65 67 69 73 74 65 72 |y;.X{.X.|register|
|00004b00| 20 73 74 72 75 63 74 20 | 6f 62 6a 65 63 74 20 2a | struct |object *|
|00004b10| 61 2c 2a 62 3b 0a 58 0a | 58 09 62 20 3d 20 67 6c |a,*b;.X.|X.b = gl|
|00004b20| 6f 62 63 6f 6e 73 28 79 | 2c 30 29 3b 0a 58 09 61 |obcons(y|,0);.X.a|
|00004b30| 20 3d 20 6c 6f 63 63 6f | 6e 73 28 78 2c 62 29 3b | = locco|ns(x,b);|
|00004b40| 0a 58 09 6d 66 72 65 65 | 28 78 29 3b 0a 58 09 6d |.X.mfree|(x);.X.m|
|00004b50| 66 72 65 65 28 79 29 3b | 0a 58 09 72 65 74 75 72 |free(y);|.X.retur|
|00004b60| 6e 28 61 29 3b 0a 58 7d | 0a 58 0a 58 73 74 72 75 |n(a);.X}|.X.Xstru|
|00004b70| 63 74 20 6f 62 6a 65 63 | 74 20 2a 6c 65 6e 67 74 |ct objec|t *lengt|
|00004b80| 68 28 78 29 09 09 2f 2a | 20 63 6f 75 6e 74 20 2a |h(x)../*| count *|
|00004b90| 2f 0a 58 72 65 67 69 73 | 74 65 72 20 73 74 72 75 |/.Xregis|ter stru|
|00004ba0| 63 74 20 6f 62 6a 65 63 | 74 20 2a 78 3b 0a 58 7b |ct objec|t *x;.X{|
|00004bb0| 0a 58 09 72 65 67 69 73 | 74 65 72 20 73 74 72 75 |.X.regis|ter stru|
|00004bc0| 63 74 20 6f 62 6a 65 63 | 74 20 2a 74 65 6d 70 3b |ct objec|t *temp;|
|00004bd0| 0a 58 09 72 65 67 69 73 | 74 65 72 20 63 68 61 72 |.X.regis|ter char|
|00004be0| 20 2a 63 70 3b 0a 58 09 | 72 65 67 69 73 74 65 72 | *cp;.X.|register|
|00004bf0| 20 69 6e 74 20 69 3b 0a | 58 0a 58 09 69 66 20 28 | int i;.|X.X.if (|
|00004c00| 78 3d 3d 30 29 20 72 65 | 74 75 72 6e 28 6c 6f 63 |x==0) re|turn(loc|
|00004c10| 61 6c 69 7a 65 28 6f 62 | 6a 69 6e 74 28 28 46 49 |alize(ob|jint((FI|
|00004c20| 58 4e 55 4d 29 30 29 29 | 29 3b 0a 58 09 69 66 20 |XNUM)0))|);.X.if |
|00004c30| 28 63 70 20 3d 20 6d 6b | 73 74 72 69 6e 67 28 78 |(cp = mk|string(x|
|00004c40| 29 29 20 7b 0a 58 09 09 | 69 20 3d 20 73 74 72 6c |)) {.X..|i = strl|
|00004c50| 65 6e 28 63 70 29 3b 0a | 58 09 09 6d 66 72 65 65 |en(cp);.|X..mfree|
|00004c60| 28 78 29 3b 0a 58 09 09 | 72 65 74 75 72 6e 28 6c |(x);.X..|return(l|
|00004c70| 6f 63 61 6c 69 7a 65 28 | 6f 62 6a 69 6e 74 28 28 |ocalize(|objint((|
|00004c80| 46 49 58 4e 55 4d 29 69 | 29 29 29 3b 0a 58 09 7d |FIXNUM)i|)));.X.}|
|00004c90| 20 65 6c 73 65 20 7b 0a | 58 09 09 69 20 3d 20 30 | else {.|X..i = 0|
|00004ca0| 3b 0a 58 09 09 66 6f 72 | 20 28 74 65 6d 70 3d 78 |;.X..for| (temp=x|
|00004cb0| 3b 20 74 65 6d 70 3b 20 | 74 65 6d 70 20 3d 20 74 |; temp; |temp = t|
|00004cc0| 65 6d 70 2d 3e 6f 62 63 | 64 72 29 0a 58 09 09 09 |emp->obc|dr).X...|
|00004cd0| 69 2b 2b 3b 0a 58 09 09 | 6d 66 72 65 65 28 78 29 |i++;.X..|mfree(x)|
|00004ce0| 3b 0a 58 09 09 72 65 74 | 75 72 6e 28 6c 6f 63 61 |;.X..ret|urn(loca|
|00004cf0| 6c 69 7a 65 28 6f 62 6a | 69 6e 74 28 28 46 49 58 |lize(obj|int((FIX|
|00004d00| 4e 55 4d 29 69 29 29 29 | 3b 0a 58 09 7d 0a 58 7d |NUM)i)))|;.X.}.X}|
|00004d10| 0a 58 0a 58 6c 6f 67 6f | 69 73 28 78 2c 79 29 09 |.X.Xlogo|is(x,y).|
|00004d20| 09 2f 2a 20 6e 6f 6e 2d | 4c 6f 67 6f 20 69 73 2c |./* non-|Logo is,|
|00004d30| 20 64 65 73 70 69 74 65 | 20 74 68 65 20 6e 61 6d | despite| the nam|
|00004d40| 65 20 2a 2f 0a 58 72 65 | 67 69 73 74 65 72 20 73 |e */.Xre|gister s|
|00004d50| 74 72 75 63 74 20 6f 62 | 6a 65 63 74 20 2a 78 2c |truct ob|ject *x,|
|00004d60| 2a 79 3b 0a 58 7b 0a 58 | 09 69 66 20 28 6c 69 73 |*y;.X{.X|.if (lis|
|00004d70| 74 70 28 78 29 29 20 7b | 0a 58 09 09 69 66 20 28 |tp(x)) {|.X..if (|
|00004d80| 6c 69 73 74 70 28 79 29 | 29 20 7b 0a 58 09 09 09 |listp(y)|) {.X...|
|00004d90| 69 66 20 28 78 3d 3d 30 | 29 20 72 65 74 75 72 6e |if (x==0|) return|
|00004da0| 28 79 3d 3d 30 29 3b 0a | 58 09 09 09 69 66 20 28 |(y==0);.|X...if (|
|00004db0| 79 3d 3d 30 29 20 72 65 | 74 75 72 6e 28 30 29 3b |y==0) re|turn(0);|
|00004dc0| 0a 58 09 09 09 72 65 74 | 75 72 6e 28 6c 6f 67 6f |.X...ret|urn(logo|
|00004dd0| 69 73 28 78 2d 3e 6f 62 | 63 61 72 2c 79 2d 3e 6f |is(x->ob|car,y->o|
|00004de0| 62 63 61 72 29 20 26 26 | 0a 58 09 09 09 09 6c 6f |bcar) &&|.X....lo|
|00004df0| 67 6f 69 73 28 78 2d 3e | 6f 62 63 64 72 2c 79 2d |gois(x->|obcdr,y-|
|00004e00| 3e 6f 62 63 64 72 29 20 | 29 3b 0a 58 09 09 7d 0a |>obcdr) |);.X..}.|
|00004e10| 58 09 09 72 65 74 75 72 | 6e 28 30 29 3b 0a 58 09 |X..retur|n(0);.X.|
|00004e20| 7d 0a 58 09 69 66 20 28 | 6c 69 73 74 70 28 79 29 |}.X.if (|listp(y)|
|00004e30| 29 20 72 65 74 75 72 6e | 28 30 29 3b 0a 58 09 69 |) return|(0);.X.i|
|00004e40| 66 20 28 78 2d 3e 6f 62 | 74 79 70 65 20 21 3d 20 |f (x->ob|type != |
|00004e50| 79 2d 3e 6f 62 74 79 70 | 65 29 20 72 65 74 75 72 |y->obtyp|e) retur|
|00004e60| 6e 28 30 29 3b 0a 58 09 | 73 77 69 74 63 68 20 28 |n(0);.X.|switch (|
|00004e70| 78 2d 3e 6f 62 74 79 70 | 65 29 20 7b 0a 58 09 09 |x->obtyp|e) {.X..|
|00004e80| 63 61 73 65 20 49 4e 54 | 3a 0a 58 09 09 09 72 65 |case INT|:.X...re|
|00004e90| 74 75 72 6e 28 78 2d 3e | 6f 62 69 6e 74 20 3d 3d |turn(x->|obint ==|
|00004ea0| 20 79 2d 3e 6f 62 69 6e | 74 29 3b 0a 58 09 09 63 | y->obin|t);.X..c|
|00004eb0| 61 73 65 20 44 55 42 3a | 0a 58 09 09 09 72 65 74 |ase DUB:|.X...ret|
|00004ec0| 75 72 6e 28 78 2d 3e 6f | 62 64 75 62 20 3d 3d 20 |urn(x->o|bdub == |
|00004ed0| 79 2d 3e 6f 62 64 75 62 | 29 3b 0a 58 09 09 64 65 |y->obdub|);.X..de|
|00004ee0| 66 61 75 6c 74 3a 09 2f | 2a 20 63 61 73 65 20 53 |fault:./|* case S|
|00004ef0| 54 52 49 4e 47 20 2a 2f | 0a 58 09 09 09 72 65 74 |TRING */|.X...ret|
|00004f00| 75 72 6e 28 21 73 74 72 | 63 6d 70 28 78 2d 3e 6f |urn(!str|cmp(x->o|
|00004f10| 62 73 74 72 2c 79 2d 3e | 6f 62 73 74 72 29 29 3b |bstr,y->|obstr));|
|00004f20| 0a 58 09 7d 0a 58 7d 0a | 58 0a 58 73 74 72 75 63 |.X.}.X}.|X.Xstruc|
|00004f30| 74 20 6f 62 6a 65 63 74 | 20 2a 6c 69 73 28 78 2c |t object| *lis(x,|
|00004f40| 79 29 0a 58 72 65 67 69 | 73 74 65 72 20 73 74 72 |y).Xregi|ster str|
|00004f50| 75 63 74 20 6f 62 6a 65 | 63 74 20 2a 78 2c 2a 79 |uct obje|ct *x,*y|
|00004f60| 3b 0a 58 7b 0a 58 09 72 | 65 67 69 73 74 65 72 20 |;.X{.X.r|egister |
|00004f70| 7a 3b 0a 58 0a 58 09 7a | 20 3d 20 6c 6f 67 6f 69 |z;.X.X.z| = logoi|
|00004f80| 73 28 78 2c 79 29 3b 0a | 58 09 6d 66 72 65 65 28 |s(x,y);.|X.mfree(|
|00004f90| 78 29 3b 0a 58 09 6d 66 | 72 65 65 28 79 29 3b 0a |x);.X.mf|ree(y);.|
|00004fa0| 58 09 72 65 74 75 72 6e | 28 7a 20 3f 20 74 72 75 |X.return|(z ? tru|
|00004fb0| 65 28 29 20 3a 20 66 61 | 6c 73 65 28 29 29 3b 0a |e() : fa|lse());.|
|00004fc0| 58 7d 0a 58 0a 58 6c 65 | 71 28 78 2c 79 29 09 2f |X}.X.Xle|q(x,y)./|
|00004fd0| 2a 20 6e 6f 6e 2d 4c 6f | 67 6f 20 6e 75 6d 65 72 |* non-Lo|go numer|
|00004fe0| 69 63 20 65 71 75 61 6c | 20 2a 2f 0a 58 72 65 67 |ic equal| */.Xreg|
|00004ff0| 69 73 74 65 72 20 73 74 | 72 75 63 74 20 6f 62 6a |ister st|ruct obj|
|00005000| 65 63 74 20 2a 78 2c 2a | 79 3b 0a 58 7b 0a 58 09 |ect *x,*|y;.X{.X.|
|00005010| 4e 55 4d 42 45 52 20 64 | 78 2c 64 79 3b 0a 58 09 |NUMBER d|x,dy;.X.|
|00005020| 46 49 58 4e 55 4d 20 69 | 78 2c 69 79 3b 0a 58 09 |FIXNUM i|x,iy;.X.|
|00005030| 69 6e 74 20 78 69 6e 74 | 2c 79 69 6e 74 3b 0a 58 |int xint|,yint;.X|
|00005040| 0a 58 09 69 66 20 28 6c | 69 73 74 70 28 78 29 20 |.X.if (l|istp(x) |
|00005050| 7c 7c 20 6c 69 73 74 70 | 28 79 29 29 20 72 65 74 ||| listp|(y)) ret|
|00005060| 75 72 6e 28 6c 6f 67 6f | 69 73 28 78 2c 79 29 29 |urn(logo|is(x,y))|
|00005070| 3b 0a 58 09 69 66 20 28 | 73 74 72 69 6e 67 70 28 |;.X.if (|stringp(|
|00005080| 78 29 20 26 26 20 21 6e | 75 6d 70 28 78 29 29 20 |x) && !n|ump(x)) |
|00005090| 72 65 74 75 72 6e 28 6c | 6f 67 6f 69 73 28 78 2c |return(l|ogois(x,|
|000050a0| 79 29 29 3b 0a 58 09 69 | 66 20 28 73 74 72 69 6e |y));.X.i|f (strin|
|000050b0| 67 70 28 79 29 20 26 26 | 20 21 6e 75 6d 70 28 79 |gp(y) &&| !nump(y|
|000050c0| 29 29 20 72 65 74 75 72 | 6e 28 6c 6f 67 6f 69 73 |)) retur|n(logois|
|000050d0| 28 78 2c 79 29 29 3b 0a | 58 09 78 69 6e 74 20 3d |(x,y));.|X.xint =|
|000050e0| 20 79 69 6e 74 20 3d 20 | 30 3b 0a 58 09 69 66 20 | yint = |0;.X.if |
|000050f0| 28 73 74 72 69 6e 67 70 | 28 78 29 29 20 7b 0a 58 |(stringp|(x)) {.X|
|00005100| 09 09 69 66 20 28 69 73 | 69 6e 74 28 78 29 29 20 |..if (is|int(x)) |
|00005110| 7b 0a 58 09 09 09 78 69 | 6e 74 2b 2b 3b 0a 58 09 |{.X...xi|nt++;.X.|
|00005120| 09 09 73 73 63 61 6e 66 | 28 78 2d 3e 6f 62 73 74 |..sscanf|(x->obst|
|00005130| 72 2c 46 49 58 46 4d 54 | 2c 26 69 78 29 3b 0a 58 |r,FIXFMT|,&ix);.X|
|00005140| 09 09 7d 20 65 6c 73 65 | 20 7b 0a 58 09 09 09 73 |..} else| {.X...s|
|00005150| 73 63 61 6e 66 28 78 2d | 3e 6f 62 73 74 72 2c 45 |scanf(x-|>obstr,E|
|00005160| 46 4d 54 2c 26 64 78 29 | 3b 0a 58 09 09 7d 0a 58 |FMT,&dx)|;.X..}.X|
|00005170| 09 7d 20 65 6c 73 65 20 | 7b 0a 58 09 09 69 66 20 |.} else |{.X..if |
|00005180| 28 69 6e 74 70 28 78 29 | 29 20 7b 0a 58 09 09 09 |(intp(x)|) {.X...|
|00005190| 78 69 6e 74 2b 2b 3b 0a | 58 09 09 09 69 78 20 3d |xint++;.|X...ix =|
|000051a0| 20 78 2d 3e 6f 62 69 6e | 74 3b 0a 58 09 09 7d 20 | x->obin|t;.X..} |
|000051b0| 65 6c 73 65 20 7b 0a 58 | 09 09 09 64 78 20 3d 20 |else {.X|...dx = |
|000051c0| 78 2d 3e 6f 62 64 75 62 | 3b 0a 58 09 09 7d 0a 58 |x->obdub|;.X..}.X|
|000051d0| 09 7d 0a 58 09 69 66 20 | 28 73 74 72 69 6e 67 70 |.}.X.if |(stringp|
|000051e0| 28 79 29 29 20 7b 0a 58 | 09 09 69 66 20 28 69 73 |(y)) {.X|..if (is|
|000051f0| 69 6e 74 28 79 29 29 20 | 7b 0a 58 09 09 09 79 69 |int(y)) |{.X...yi|
|00005200| 6e 74 2b 2b 3b 0a 58 09 | 09 09 73 73 63 61 6e 66 |nt++;.X.|..sscanf|
|00005210| 28 79 2d 3e 6f 62 73 74 | 72 2c 46 49 58 46 4d 54 |(y->obst|r,FIXFMT|
|00005220| 2c 26 69 79 29 3b 0a 58 | 09 09 7d 20 65 6c 73 65 |,&iy);.X|..} else|
|00005230| 20 7b 0a 58 09 09 09 73 | 73 63 61 6e 66 28 79 2d | {.X...s|scanf(y-|
|00005240| 3e 6f 62 73 74 72 2c 45 | 46 4d 54 2c 26 64 79 29 |>obstr,E|FMT,&dy)|
|00005250| 3b 0a 58 09 09 7d 0a 58 | 09 7d 20 65 6c 73 65 20 |;.X..}.X|.} else |
|00005260| 7b 0a 58 09 09 69 66 20 | 28 69 6e 74 70 28 79 29 |{.X..if |(intp(y)|
|00005270| 29 20 7b 0a 58 09 09 09 | 79 69 6e 74 2b 2b 3b 0a |) {.X...|yint++;.|
|00005280| 58 09 09 09 69 79 20 3d | 20 79 2d 3e 6f 62 69 6e |X...iy =| y->obin|
|00005290| 74 3b 0a 58 09 09 7d 20 | 65 6c 73 65 20 7b 0a 58 |t;.X..} |else {.X|
|000052a0| 09 09 09 64 79 20 3d 20 | 79 2d 3e 6f 62 64 75 62 |...dy = |y->obdub|
|000052b0| 3b 0a 58 09 09 7d 0a 58 | 09 7d 0a 58 09 69 66 20 |;.X..}.X|.}.X.if |
|000052c0| 28 78 69 6e 74 20 21 3d | 20 79 69 6e 74 29 20 7b |(xint !=| yint) {|
|000052d0| 0a 58 09 09 69 66 20 28 | 78 69 6e 74 29 20 64 78 |.X..if (|xint) dx|
|000052e0| 20 3d 20 69 78 3b 0a 58 | 09 09 65 6c 73 65 20 64 | = ix;.X|..else d|
|000052f0| 79 20 3d 20 69 79 3b 0a | 58 09 09 78 69 6e 74 20 |y = iy;.|X..xint |
|00005300| 3d 20 30 3b 0a 58 09 7d | 0a 58 09 69 66 20 28 78 |= 0;.X.}|.X.if (x|
|00005310| 69 6e 74 29 0a 58 09 09 | 72 65 74 75 72 6e 20 28 |int).X..|return (|
|00005320| 69 78 20 3d 3d 20 69 79 | 29 3b 0a 58 09 65 6c 73 |ix == iy|);.X.els|
|00005330| 65 0a 58 09 09 72 65 74 | 75 72 6e 20 28 64 78 20 |e.X..ret|urn (dx |
|00005340| 3d 3d 20 64 79 29 3b 0a | 58 7d 0a 58 0a 58 73 74 |== dy);.|X}.X.Xst|
|00005350| 72 75 63 74 20 6f 62 6a | 65 63 74 20 2a 65 71 75 |ruct obj|ect *equ|
|00005360| 61 6c 28 78 2c 79 29 09 | 2f 2a 20 4c 6f 67 6f 20 |al(x,y).|/* Logo |
|00005370| 65 71 75 61 6c 70 20 2a | 2f 0a 58 72 65 67 69 73 |equalp *|/.Xregis|
|00005380| 74 65 72 20 73 74 72 75 | 63 74 20 6f 62 6a 65 63 |ter stru|ct objec|
|00005390| 74 20 2a 78 2c 2a 79 3b | 0a 58 7b 0a 58 09 72 65 |t *x,*y;|.X{.X.re|
|000053a0| 67 69 73 74 65 72 20 7a | 3b 0a 58 0a 58 09 7a 20 |gister z|;.X.X.z |
|000053b0| 3d 20 6c 65 71 28 78 2c | 79 29 3b 0a 58 09 6d 66 |= leq(x,|y);.X.mf|
|000053c0| 72 65 65 28 78 29 3b 0a | 58 09 6d 66 72 65 65 28 |ree(x);.|X.mfree(|
|000053d0| 79 29 3b 0a 58 09 72 65 | 74 75 72 6e 28 7a 20 3f |y);.X.re|turn(z ?|
|000053e0| 20 74 72 75 65 28 29 20 | 3a 20 66 61 6c 73 65 28 | true() |: false(|
|000053f0| 29 29 3b 0a 58 7d 0a 58 | 0a 58 73 74 72 75 63 74 |));.X}.X|.Xstruct|
|00005400| 20 6f 62 6a 65 63 74 20 | 2a 77 6f 72 63 61 74 28 | object |*worcat(|
|00005410| 78 2c 79 29 09 2f 2a 20 | 77 6f 72 64 20 2a 2f 0a |x,y)./* |word */.|
|00005420| 58 72 65 67 69 73 74 65 | 72 20 73 74 72 75 63 74 |Xregiste|r struct|
|00005430| 20 6f 62 6a 65 63 74 20 | 2a 78 2c 2a 79 3b 0a 58 | object |*x,*y;.X|
|00005440| 7b 0a 58 09 63 68 61 72 | 20 2a 76 61 6c 2c 2a 78 |{.X.char| *val,*x|
|00005450| 70 2c 2a 79 70 3b 0a 58 | 09 63 68 61 72 20 78 73 |p,*yp;.X|.char xs|
|00005460| 74 72 5b 33 30 5d 2c 79 | 73 74 72 5b 33 30 5d 3b |tr[30],y|str[30];|
|00005470| 0a 58 0a 58 09 69 66 20 | 28 6c 69 73 74 70 28 78 |.X.X.if |(listp(x|
|00005480| 29 29 20 75 6e 67 6f 6f | 64 28 22 57 6f 72 64 22 |)) ungoo|d("Word"|
|00005490| 2c 78 29 3b 0a 58 09 69 | 66 20 28 6c 69 73 74 70 |,x);.X.i|f (listp|
|000054a0| 28 79 29 29 20 75 6e 67 | 6f 6f 64 28 22 57 6f 72 |(y)) ung|ood("Wor|
|000054b0| 64 22 2c 79 29 3b 0a 58 | 09 73 77 69 74 63 68 28 |d",y);.X|.switch(|
|000054c0| 78 2d 3e 6f 62 74 79 70 | 65 29 20 7b 0a 58 09 09 |x->obtyp|e) {.X..|
|000054d0| 63 61 73 65 20 49 4e 54 | 3a 0a 58 09 09 09 73 70 |case INT|:.X...sp|
|000054e0| 72 69 6e 74 66 28 78 73 | 74 72 2c 46 49 58 46 4d |rintf(xs|tr,FIXFM|
|000054f0| 54 2c 78 2d 3e 6f 62 69 | 6e 74 29 3b 0a 58 09 09 |T,x->obi|nt);.X..|
|00005500| 09 78 70 20 3d 20 78 73 | 74 72 3b 0a 58 09 09 09 |.xp = xs|tr;.X...|
|00005510| 62 72 65 61 6b 3b 0a 58 | 09 09 63 61 73 65 20 44 |break;.X|..case D|
|00005520| 55 42 3a 0a 58 09 09 09 | 73 70 72 69 6e 74 66 28 |UB:.X...|sprintf(|
|00005530| 78 73 74 72 2c 22 25 67 | 22 2c 78 2d 3e 6f 62 64 |xstr,"%g|",x->obd|
|00005540| 75 62 29 3b 0a 58 09 09 | 09 69 66 20 28 21 69 6e |ub);.X..|.if (!in|
|00005550| 64 65 78 28 78 73 74 72 | 2c 27 2e 27 29 29 20 73 |dex(xstr|,'.')) s|
|00005560| 74 72 63 61 74 28 78 73 | 74 72 2c 22 2e 30 22 29 |trcat(xs|tr,".0")|
|00005570| 3b 0a 58 09 09 09 78 70 | 20 3d 20 78 73 74 72 3b |;.X...xp| = xstr;|
|00005580| 0a 58 09 09 09 62 72 65 | 61 6b 3b 0a 58 09 09 64 |.X...bre|ak;.X..d|
|00005590| 65 66 61 75 6c 74 3a 09 | 2f 2a 20 63 61 73 65 20 |efault:.|/* case |
|000055a0| 53 54 52 49 4e 47 20 2a | 2f 0a 58 09 09 09 78 70 |STRING *|/.X...xp|
|000055b0| 20 3d 20 78 2d 3e 6f 62 | 73 74 72 3b 0a 58 09 7d | = x->ob|str;.X.}|
|000055c0| 0a 58 09 73 77 69 74 63 | 68 28 79 2d 3e 6f 62 74 |.X.switc|h(y->obt|
|000055d0| 79 70 65 29 20 7b 0a 58 | 09 09 63 61 73 65 20 49 |ype) {.X|..case I|
|000055e0| 4e 54 3a 0a 58 09 09 09 | 73 70 72 69 6e 74 66 28 |NT:.X...|sprintf(|
|000055f0| 79 73 74 72 2c 46 49 58 | 46 4d 54 2c 79 2d 3e 6f |ystr,FIX|FMT,y->o|
|00005600| 62 69 6e 74 29 3b 0a 58 | 09 09 09 79 70 20 3d 20 |bint);.X|...yp = |
|00005610| 79 73 74 72 3b 0a 58 09 | 09 09 62 72 65 61 6b 3b |ystr;.X.|..break;|
|00005620| 0a 58 09 09 63 61 73 65 | 20 44 55 42 3a 0a 58 09 |.X..case| DUB:.X.|
|00005630| 09 09 73 70 72 69 6e 74 | 66 28 79 73 74 72 2c 22 |..sprint|f(ystr,"|
|00005640| 25 67 22 2c 79 2d 3e 6f | 62 64 75 62 29 3b 0a 58 |%g",y->o|bdub);.X|
|00005650| 09 09 09 69 66 20 28 21 | 69 6e 64 65 78 28 79 73 |...if (!|index(ys|
|00005660| 74 72 2c 27 2e 27 29 29 | 20 73 74 72 63 61 74 28 |tr,'.'))| strcat(|
|00005670| 79 73 74 72 2c 22 2e 30 | 22 29 3b 0a 58 09 09 09 |ystr,".0|");.X...|
|00005680| 79 70 20 3d 20 79 73 74 | 72 3b 0a 58 09 09 09 62 |yp = yst|r;.X...b|
|00005690| 72 65 61 6b 3b 0a 58 09 | 09 64 65 66 61 75 6c 74 |reak;.X.|.default|
|000056a0| 3a 09 2f 2a 20 63 61 73 | 65 20 53 54 52 49 4e 47 |:./* cas|e STRING|
|000056b0| 20 2a 2f 0a 58 09 09 09 | 79 70 20 3d 20 79 2d 3e | */.X...|yp = y->|
|000056c0| 6f 62 73 74 72 3b 0a 58 | 09 7d 0a 58 09 76 61 6c |obstr;.X|.}.X.val|
|000056d0| 3d 63 6b 6d 61 6c 6c 6f | 63 28 73 74 72 6c 65 6e |=ckmallo|c(strlen|
|000056e0| 28 78 70 29 2b 73 74 72 | 6c 65 6e 28 79 70 29 2b |(xp)+str|len(yp)+|
|000056f0| 31 29 3b 0a 58 09 63 70 | 79 73 74 72 28 76 61 6c |1);.X.cp|ystr(val|
|00005700| 2c 78 70 2c 79 70 2c 4e | 55 4c 4c 29 3b 0a 58 09 |,xp,yp,N|ULL);.X.|
|00005710| 6d 66 72 65 65 28 78 29 | 3b 0a 58 09 6d 66 72 65 |mfree(x)|;.X.mfre|
|00005720| 65 28 79 29 3b 0a 58 09 | 72 65 74 75 72 6e 28 6c |e(y);.X.|return(l|
|00005730| 6f 63 61 6c 69 7a 65 28 | 6f 62 6a 73 74 72 28 76 |ocalize(|objstr(v|
|00005740| 61 6c 29 29 29 3b 0a 58 | 7d 0a 58 0a 58 73 74 72 |al)));.X|}.X.Xstr|
|00005750| 75 63 74 20 6f 62 6a 65 | 63 74 20 2a 73 65 6e 63 |uct obje|ct *senc|
|00005760| 61 74 28 78 2c 79 29 09 | 2f 2a 20 73 65 6e 74 65 |at(x,y).|/* sente|
|00005770| 6e 63 65 20 2a 2f 0a 58 | 73 74 72 75 63 74 20 6f |nce */.X|struct o|
|00005780| 62 6a 65 63 74 20 2a 78 | 2c 2a 79 3b 0a 58 7b 0a |bject *x|,*y;.X{.|
|00005790| 58 09 72 65 67 69 73 74 | 65 72 20 73 74 72 75 63 |X.regist|er struc|
|000057a0| 74 20 6f 62 6a 65 63 74 | 20 2a 61 2c 2a 62 2c 2a |t object| *a,*b,*|
|000057b0| 63 3b 0a 58 0a 58 09 69 | 66 20 28 78 3d 3d 30 29 |c;.X.X.i|f (x==0)|
|000057c0| 20 7b 0a 58 09 09 69 66 | 20 28 6c 69 73 74 70 28 | {.X..if| (listp(|
|000057d0| 79 29 29 20 72 65 74 75 | 72 6e 28 79 29 3b 0a 58 |y)) retu|rn(y);.X|
|000057e0| 09 09 61 20 3d 20 6c 6f | 63 63 6f 6e 73 28 79 2c |..a = lo|ccons(y,|
|000057f0| 30 29 3b 0a 58 09 09 6d | 66 72 65 65 28 79 29 3b |0);.X..m|free(y);|
|00005800| 0a 58 09 09 72 65 74 75 | 72 6e 28 61 29 3b 0a 58 |.X..retu|rn(a);.X|
|00005810| 09 7d 0a 58 09 69 66 20 | 28 6c 69 73 74 70 28 78 |.}.X.if |(listp(x|
|00005820| 29 29 20 7b 0a 58 09 09 | 63 20 3d 20 61 20 3d 20 |)) {.X..|c = a = |
|00005830| 67 6c 6f 62 63 6f 6e 73 | 28 30 2c 30 29 3b 0a 58 |globcons|(0,0);.X|
|00005840| 09 09 66 6f 72 20 28 62 | 3d 78 3b 20 62 2d 3e 6f |..for (b|=x; b->o|
|00005850| 62 63 64 72 3b 20 62 20 | 3d 20 62 2d 3e 6f 62 63 |bcdr; b |= b->obc|
|00005860| 64 72 29 20 7b 0a 58 09 | 09 09 61 2d 3e 6f 62 63 |dr) {.X.|..a->obc|
|00005870| 61 72 20 3d 20 67 6c 6f | 62 63 6f 70 79 28 62 2d |ar = glo|bcopy(b-|
|00005880| 3e 6f 62 63 61 72 29 3b | 0a 58 09 09 09 61 2d 3e |>obcar);|.X...a->|
|00005890| 6f 62 63 64 72 20 3d 20 | 67 6c 6f 62 63 6f 70 79 |obcdr = |globcopy|
|000058a0| 28 67 6c 6f 62 63 6f 6e | 73 28 30 2c 30 29 29 3b |(globcon|s(0,0));|
|000058b0| 0a 58 09 09 09 61 20 3d | 20 61 2d 3e 6f 62 63 64 |.X...a =| a->obcd|
|000058c0| 72 3b 0a 58 09 09 7d 0a | 58 09 09 61 2d 3e 6f 62 |r;.X..}.|X..a->ob|
|000058d0| 63 61 72 20 3d 20 67 6c | 6f 62 63 6f 70 79 28 62 |car = gl|obcopy(b|
|000058e0| 2d 3e 6f 62 63 61 72 29 | 3b 0a 58 09 7d 0a 58 09 |->obcar)|;.X.}.X.|
|000058f0| 65 6c 73 65 20 63 20 3d | 20 61 20 3d 20 67 6c 6f |else c =| a = glo|
|00005900| 62 63 6f 6e 73 28 78 2c | 30 29 3b 0a 58 0a 58 09 |bcons(x,|0);.X.X.|
|00005910| 69 66 20 28 6c 69 73 74 | 70 28 79 29 29 20 62 20 |if (list|p(y)) b |
|00005920| 3d 20 79 3b 0a 58 09 65 | 6c 73 65 20 62 20 3d 20 |= y;.X.e|lse b = |
|00005930| 67 6c 6f 62 63 6f 6e 73 | 28 79 2c 30 29 3b 0a 58 |globcons|(y,0);.X|
|00005940| 0a 58 09 61 2d 3e 6f 62 | 63 64 72 20 3d 20 67 6c |.X.a->ob|cdr = gl|
|00005950| 6f 62 63 6f 70 79 28 62 | 29 3b 0a 58 09 6d 66 72 |obcopy(b|);.X.mfr|
|00005960| 65 65 28 78 29 3b 0a 58 | 09 6d 66 72 65 65 28 79 |ee(x);.X|.mfree(y|
|00005970| 29 3b 0a 58 09 72 65 74 | 75 72 6e 28 6c 6f 63 61 |);.X.ret|urn(loca|
|00005980| 6c 69 7a 65 28 63 29 29 | 3b 0a 58 7d 0a 58 0a 58 |lize(c))|;.X}.X.X|
|00005990| 73 74 72 75 63 74 20 6f | 62 6a 65 63 74 20 2a 6d |struct o|bject *m|
|000059a0| 65 6d 62 65 72 70 28 74 | 68 69 6e 67 2c 67 72 6f |emberp(t|hing,gro|
|000059b0| 75 70 29 0a 58 73 74 72 | 75 63 74 20 6f 62 6a 65 |up).Xstr|uct obje|
|000059c0| 63 74 20 2a 74 68 69 6e | 67 2c 2a 67 72 6f 75 70 |ct *thin|g,*group|
|000059d0| 3b 0a 58 7b 0a 58 09 72 | 65 67 69 73 74 65 72 20 |;.X{.X.r|egister |
|000059e0| 63 68 61 72 20 2a 63 70 | 3b 0a 58 09 72 65 67 69 |char *cp|;.X.regi|
|000059f0| 73 74 65 72 20 73 74 72 | 75 63 74 20 6f 62 6a 65 |ster str|uct obje|
|00005a00| 63 74 20 2a 72 65 73 74 | 3b 0a 58 09 69 6e 74 20 |ct *rest|;.X.int |
|00005a10| 69 3b 0a 58 0a 58 09 69 | 66 20 28 67 72 6f 75 70 |i;.X.X.i|f (group|
|00005a20| 3d 3d 30 29 20 7b 0a 58 | 09 09 6d 66 72 65 65 28 |==0) {.X|..mfree(|
|00005a30| 74 68 69 6e 67 29 3b 0a | 58 09 09 72 65 74 75 72 |thing);.|X..retur|
|00005a40| 6e 28 66 61 6c 73 65 28 | 29 29 3b 0a 58 09 7d 0a |n(false(|));.X.}.|
|00005a50| 58 09 69 66 20 28 63 70 | 20 3d 20 6d 6b 73 74 72 |X.if (cp| = mkstr|
|00005a60| 69 6e 67 28 67 72 6f 75 | 70 29 29 20 7b 0a 58 09 |ing(grou|p)) {.X.|
|00005a70| 09 69 66 20 28 74 68 69 | 6e 67 3d 3d 30 29 20 7b |.if (thi|ng==0) {|
|00005a80| 0a 58 09 09 09 6d 66 72 | 65 65 28 67 72 6f 75 70 |.X...mfr|ee(group|
|00005a90| 29 3b 0a 58 09 09 09 72 | 65 74 75 72 6e 28 66 61 |);.X...r|eturn(fa|
|00005aa0| 6c 73 65 28 29 29 3b 0a | 58 09 09 7d 0a 58 09 09 |lse());.|X..}.X..|
|00005ab0| 73 77 69 74 63 68 20 28 | 74 68 69 6e 67 2d 3e 6f |switch (|thing->o|
|00005ac0| 62 74 79 70 65 29 20 7b | 0a 58 09 09 09 63 61 73 |btype) {|.X...cas|
|00005ad0| 65 20 49 4e 54 3a 0a 58 | 09 09 09 09 69 66 28 28 |e INT:.X|....if((|
|00005ae0| 74 68 69 6e 67 2d 3e 6f | 62 69 6e 74 20 3e 3d 20 |thing->o|bint >= |
|00005af0| 30 29 26 26 28 74 68 69 | 6e 67 2d 3e 6f 62 69 6e |0)&&(thi|ng->obin|
|00005b00| 74 20 3c 20 31 30 29 29 | 20 7b 0a 58 09 09 09 09 |t < 10))| {.X....|
|00005b10| 09 69 20 3d 20 6d 65 6d | 62 28 27 30 27 2b 74 68 |.i = mem|b('0'+th|
|00005b20| 69 6e 67 2d 3e 6f 62 69 | 6e 74 2c 63 70 29 3b 0a |ing->obi|nt,cp);.|
|00005b30| 58 09 09 09 09 09 62 72 | 65 61 6b 3b 0a 58 09 09 |X.....br|eak;.X..|
|00005b40| 09 09 7d 0a 58 09 09 09 | 63 61 73 65 20 43 4f 4e |..}.X...|case CON|
|00005b50| 53 3a 0a 58 09 09 09 63 | 61 73 65 20 44 55 42 3a |S:.X...c|ase DUB:|
|00005b60| 0a 58 09 09 09 09 69 20 | 3d 20 30 3b 0a 58 09 09 |.X....i |= 0;.X..|
|00005b70| 09 09 62 72 65 61 6b 3b | 0a 58 09 09 09 64 65 66 |..break;|.X...def|
|00005b80| 61 75 6c 74 3a 09 2f 2a | 20 53 54 52 49 4e 47 20 |ault:./*| STRING |
|00005b90| 2a 2f 0a 58 09 09 09 09 | 69 66 20 28 73 74 72 6c |*/.X....|if (strl|
|00005ba0| 65 6e 28 74 68 69 6e 67 | 2d 3e 6f 62 73 74 72 29 |en(thing|->obstr)|
|00005bb0| 20 3d 3d 20 31 29 20 7b | 0a 58 09 09 09 09 09 69 | == 1) {|.X.....i|
|00005bc0| 20 3d 20 6d 65 6d 62 28 | 2a 28 74 68 69 6e 67 2d | = memb(|*(thing-|
|00005bd0| 3e 6f 62 73 74 72 29 2c | 63 70 29 3b 0a 58 09 09 |>obstr),|cp);.X..|
|00005be0| 09 09 7d 20 65 6c 73 65 | 20 69 20 3d 20 30 3b 0a |..} else| i = 0;.|
|00005bf0| 58 09 09 7d 0a 58 09 7d | 20 65 6c 73 65 20 7b 0a |X..}.X.}| else {.|
|00005c00| 58 09 09 69 20 3d 20 30 | 3b 0a 58 09 09 66 6f 72 |X..i = 0|;.X..for|
|00005c10| 20 28 72 65 73 74 3d 67 | 72 6f 75 70 3b 20 72 65 | (rest=g|roup; re|
|00005c20| 73 74 3b 20 72 65 73 74 | 3d 72 65 73 74 2d 3e 6f |st; rest|=rest->o|
|00005c30| 62 63 64 72 29 20 7b 0a | 58 09 09 09 69 66 20 28 |bcdr) {.|X...if (|
|00005c40| 6c 65 71 28 72 65 73 74 | 2d 3e 6f 62 63 61 72 2c |leq(rest|->obcar,|
|00005c50| 74 68 69 6e 67 29 29 20 | 7b 0a 58 09 09 09 09 69 |thing)) |{.X....i|
|00005c60| 2b 2b 3b 0a 58 09 09 09 | 09 62 72 65 61 6b 3b 0a |++;.X...|.break;.|
|00005c70| 58 09 09 09 7d 0a 58 09 | 09 7d 0a 58 09 7d 0a 58 |X...}.X.|.}.X.}.X|
|00005c80| 09 6d 66 72 65 65 28 74 | 68 69 6e 67 29 3b 0a 58 |.mfree(t|hing);.X|
|00005c90| 09 6d 66 72 65 65 28 67 | 72 6f 75 70 29 3b 0a 58 |.mfree(g|roup);.X|
|00005ca0| 09 72 65 74 75 72 6e 28 | 74 6f 72 66 28 69 29 29 |.return(|torf(i))|
|00005cb0| 3b 0a 58 7d 0a 58 0a 58 | 73 74 72 75 63 74 20 6f |;.X}.X.X|struct o|
|00005cc0| 62 6a 65 63 74 20 2a 69 | 74 65 6d 28 6e 75 6d 2c |bject *i|tem(num,|
|00005cd0| 67 72 6f 75 70 29 0a 58 | 73 74 72 75 63 74 20 6f |group).X|struct o|
|00005ce0| 62 6a 65 63 74 20 2a 6e | 75 6d 2c 2a 67 72 6f 75 |bject *n|um,*grou|
|00005cf0| 70 3b 0a 58 7b 0a 58 09 | 69 6e 74 20 69 6e 75 6d |p;.X{.X.|int inum|
|00005d00| 2c 65 72 6e 75 6d 3b 0a | 58 09 72 65 67 69 73 74 |,ernum;.|X.regist|
|00005d10| 65 72 20 63 68 61 72 20 | 2a 63 70 3b 0a 58 09 72 |er char |*cp;.X.r|
|00005d20| 65 67 69 73 74 65 72 20 | 73 74 72 75 63 74 20 6f |egister |struct o|
|00005d30| 62 6a 65 63 74 20 2a 72 | 65 73 74 3b 0a 58 09 63 |bject *r|est;.X.c|
|00005d40| 68 61 72 20 73 74 72 5b | 32 5d 3b 0a 58 0a 58 09 |har str[|2];.X.X.|
|00005d50| 6e 75 6d 20 3d 20 6e 75 | 6d 63 6f 6e 76 28 6e 75 |num = nu|mconv(nu|
|00005d60| 6d 2c 22 49 74 65 6d 22 | 29 3b 0a 58 09 69 66 20 |m,"Item"|);.X.if |
|00005d70| 28 69 6e 74 70 28 6e 75 | 6d 29 29 20 69 6e 75 6d |(intp(nu|m)) inum|
|00005d80| 20 3d 20 6e 75 6d 2d 3e | 6f 62 69 6e 74 3b 0a 58 | = num->|obint;.X|
|00005d90| 09 65 6c 73 65 20 69 6e | 75 6d 20 3d 20 6e 75 6d |.else in|um = num|
|00005da0| 2d 3e 6f 62 64 75 62 3b | 0a 58 09 69 66 20 28 69 |->obdub;|.X.if (i|
|00005db0| 6e 75 6d 20 3c 3d 20 30 | 29 20 75 6e 67 6f 6f 64 |num <= 0|) ungood|
|00005dc0| 28 22 49 74 65 6d 22 2c | 6e 75 6d 29 3b 0a 58 09 |("Item",|num);.X.|
|00005dd0| 69 66 20 28 67 72 6f 75 | 70 20 3d 3d 20 30 29 20 |if (grou|p == 0) |
|00005de0| 75 6e 67 6f 6f 64 28 22 | 49 74 65 6d 22 2c 67 72 |ungood("|Item",gr|
|00005df0| 6f 75 70 29 3b 0a 58 09 | 69 66 20 28 63 70 20 3d |oup);.X.|if (cp =|
|00005e00| 20 6d 6b 73 74 72 69 6e | 67 28 67 72 6f 75 70 29 | mkstrin|g(group)|
|00005e10| 29 20 7b 0a 58 09 09 69 | 66 20 28 69 6e 75 6d 20 |) {.X..i|f (inum |
|00005e20| 3e 20 73 74 72 6c 65 6e | 28 63 70 29 29 20 7b 0a |> strlen|(cp)) {.|
|00005e30| 58 09 09 09 70 66 31 28 | 22 25 70 20 68 61 73 20 |X...pf1(|"%p has |
|00005e40| 66 65 77 65 72 20 74 68 | 61 6e 20 25 64 20 69 74 |fewer th|an %d it|
|00005e50| 65 6d 73 2e 5c 6e 22 2c | 67 72 6f 75 70 2c 69 6e |ems.\n",|group,in|
|00005e60| 75 6d 29 3b 0a 58 09 09 | 09 65 72 72 68 61 6e 64 |um);.X..|.errhand|
|00005e70| 28 29 3b 0a 58 09 09 7d | 0a 58 09 09 73 74 72 5b |();.X..}|.X..str[|
|00005e80| 30 5d 20 3d 20 63 70 5b | 69 6e 75 6d 2d 31 5d 3b |0] = cp[|inum-1];|
|00005e90| 0a 58 09 09 73 74 72 5b | 31 5d 20 3d 20 27 5c 30 |.X..str[|1] = '\0|
|00005ea0| 27 3b 0a 58 09 09 6d 66 | 72 65 65 28 6e 75 6d 29 |';.X..mf|ree(num)|
|00005eb0| 3b 0a 58 09 09 6d 66 72 | 65 65 28 67 72 6f 75 70 |;.X..mfr|ee(group|
|00005ec0| 29 3b 0a 58 09 09 72 65 | 74 75 72 6e 28 6c 6f 63 |);.X..re|turn(loc|
|00005ed0| 61 6c 69 7a 65 28 6f 62 | 6a 63 70 73 74 72 28 73 |alize(ob|jcpstr(s|
|00005ee0| 74 72 29 29 29 3b 0a 58 | 09 7d 20 65 6c 73 65 20 |tr)));.X|.} else |
|00005ef0| 7b 0a 58 09 09 65 72 6e | 75 6d 20 3d 20 69 6e 75 |{.X..ern|um = inu|
|00005f00| 6d 3b 0a 58 09 09 66 6f | 72 20 28 72 65 73 74 20 |m;.X..fo|r (rest |
|00005f10| 3d 20 67 72 6f 75 70 3b | 20 2d 2d 69 6e 75 6d 3b |= group;| --inum;|
|00005f20| 20 72 65 73 74 20 3d 20 | 72 65 73 74 2d 3e 6f 62 | rest = |rest->ob|
|00005f30| 63 64 72 29 20 7b 0a 58 | 09 09 09 69 66 20 28 72 |cdr) {.X|...if (r|
|00005f40| 65 73 74 3d 3d 30 29 20 | 62 72 65 61 6b 3b 0a 58 |est==0) |break;.X|
|00005f50| 09 09 7d 0a 58 09 09 69 | 66 20 28 72 65 73 74 3d |..}.X..i|f (rest=|
|00005f60| 3d 30 29 20 7b 0a 58 09 | 09 09 70 66 31 28 22 25 |=0) {.X.|..pf1("%|
|00005f70| 70 20 68 61 73 20 66 65 | 77 65 72 20 74 68 61 6e |p has fe|wer than|
|00005f80| 20 25 64 20 69 74 65 6d | 73 2e 5c 6e 22 2c 0a 58 | %d item|s.\n",.X|
|00005f90| 09 09 09 09 09 67 72 6f | 75 70 2c 65 72 6e 75 6d |.....gro|up,ernum|
|00005fa0| 29 3b 0a 58 09 09 09 65 | 72 72 68 61 6e 64 28 29 |);.X...e|rrhand()|
|00005fb0| 3b 0a 58 09 09 7d 0a 58 | 09 09 6d 66 72 65 65 28 |;.X..}.X|..mfree(|
|00005fc0| 6e 75 6d 29 3b 0a 58 09 | 09 72 65 73 74 20 3d 20 |num);.X.|.rest = |
|00005fd0| 6c 6f 63 61 6c 69 7a 65 | 28 72 65 73 74 2d 3e 6f |localize|(rest->o|
|00005fe0| 62 63 61 72 29 3b 0a 58 | 09 09 6d 66 72 65 65 28 |bcar);.X|..mfree(|
|00005ff0| 67 72 6f 75 70 29 3b 0a | 58 09 09 72 65 74 75 72 |group);.|X..retur|
|00006000| 6e 28 72 65 73 74 29 3b | 0a 58 09 7d 0a 58 7d 0a |n(rest);|.X.}.X}.|
|00006010| 58 0a 45 4e 44 5f 4f 46 | 5f 6c 6f 67 6f 6f 70 2e |X.END_OF|_logoop.|
|00006020| 63 0a 69 66 20 74 65 73 | 74 20 31 30 36 38 35 20 |c.if tes|t 10685 |
|00006030| 2d 6e 65 20 60 77 63 20 | 2d 63 20 3c 6c 6f 67 6f |-ne `wc |-c <logo|
|00006040| 6f 70 2e 63 60 3b 20 74 | 68 65 6e 0a 20 20 20 20 |op.c`; t|hen. |
|00006050| 65 63 68 6f 20 73 68 61 | 72 3a 20 5c 22 6c 6f 67 |echo sha|r: \"log|
|00006060| 6f 6f 70 2e 63 5c 22 20 | 75 6e 70 61 63 6b 65 64 |oop.c\" |unpacked|
|00006070| 20 77 69 74 68 20 77 72 | 6f 6e 67 20 73 69 7a 65 | with wr|ong size|
|00006080| 21 0a 66 69 0a 23 20 65 | 6e 64 20 6f 66 20 6f 76 |!.fi.# e|nd of ov|
|00006090| 65 72 77 72 69 74 69 6e | 67 20 63 68 65 63 6b 0a |erwritin|g check.|
|000060a0| 66 69 0a 69 66 20 74 65 | 73 74 20 2d 66 20 6c 6f |fi.if te|st -f lo|
|000060b0| 67 6f 70 72 6f 63 2e 63 | 20 2d 61 20 22 24 7b 31 |goproc.c| -a "${1|
|000060c0| 7d 22 20 21 3d 20 22 2d | 63 22 20 3b 20 74 68 65 |}" != "-|c" ; the|
|000060d0| 6e 20 0a 20 20 65 63 68 | 6f 20 73 68 61 72 3a 20 |n . ech|o shar: |
|000060e0| 57 69 6c 6c 20 6e 6f 74 | 20 6f 76 65 72 2d 77 72 |Will not| over-wr|
|000060f0| 69 74 65 20 65 78 69 73 | 74 69 6e 67 20 66 69 6c |ite exis|ting fil|
|00006100| 65 20 5c 22 6c 6f 67 6f | 70 72 6f 63 2e 63 5c 22 |e \"logo|proc.c\"|
|00006110| 0a 65 6c 73 65 0a 65 63 | 68 6f 20 73 68 61 72 3a |.else.ec|ho shar:|
|00006120| 20 45 78 74 72 61 63 74 | 69 6e 67 20 5c 22 6c 6f | Extract|ing \"lo|
|00006130| 67 6f 70 72 6f 63 2e 63 | 5c 22 20 5c 28 31 31 35 |goproc.c|\" \(115|
|00006140| 31 37 20 63 68 61 72 61 | 63 74 65 72 73 5c 29 0a |17 chara|cters\).|
|00006150| 73 65 64 20 22 73 2f 5e | 58 2f 2f 22 20 3e 6c 6f |sed "s/^|X//" >lo|
|00006160| 67 6f 70 72 6f 63 2e 63 | 20 3c 3c 27 45 4e 44 5f |goproc.c| <<'END_|
|00006170| 4f 46 5f 6c 6f 67 6f 70 | 72 6f 63 2e 63 27 0a 58 |OF_logop|roc.c'.X|
|00006180| 0a 58 23 69 6e 63 6c 75 | 64 65 20 3c 73 74 64 69 |.X#inclu|de <stdi|
|00006190| 6f 2e 68 3e 0a 58 23 69 | 6e 63 6c 75 64 65 20 22 |o.h>.X#i|nclude "|
|000061a0| 6c 6f 67 6f 2e 68 22 0a | 58 0a 58 69 6e 74 20 65 |logo.h".|X.Xint e|
|000061b0| 72 72 72 65 63 28 29 3b | 0a 58 69 6e 74 20 65 68 |rrrec();|.Xint eh|
|000061c0| 61 6e 64 32 28 29 3b 0a | 58 69 6e 74 20 65 68 61 |and2();.|Xint eha|
|000061d0| 6e 64 33 28 29 3b 0a 58 | 69 6e 74 20 6c 65 61 76 |nd3();.X|int leav|
|000061e0| 65 28 29 3b 0a 58 0a 58 | 65 78 74 65 72 6e 20 63 |e();.X.X|extern c|
|000061f0| 68 61 72 20 70 6f 70 6e | 61 6d 65 5b 5d 3b 0a 58 |har popn|ame[];.X|
|00006200| 65 78 74 65 72 6e 20 69 | 6e 74 20 6c 65 74 66 6c |extern i|nt letfl|
|00006210| 61 67 2c 20 70 66 6c 61 | 67 2c 20 61 72 67 6e 6f |ag, pfla|g, argno|
|00006220| 2c 20 79 79 6c 69 6e 65 | 2c 20 72 65 6e 64 66 6c |, yyline|, rendfl|
|00006230| 61 67 2c 20 63 75 72 72 | 74 65 73 74 3b 0a 58 65 |ag, curr|test;.Xe|
|00006240| 78 74 65 72 6e 20 69 6e | 74 20 74 72 61 63 65 66 |xtern in|t tracef|
|00006250| 6c 61 67 2c 20 2a 73 74 | 6b 62 61 73 65 2c 20 73 |lag, *st|kbase, s|
|00006260| 74 6b 62 69 2c 20 79 79 | 63 68 61 72 2c 20 65 6e |tkbi, yy|char, en|
|00006270| 64 66 6c 61 67 2c 20 74 | 6f 70 66 3b 0a 58 23 69 |dflag, t|opf;.X#i|
|00006280| 66 64 65 66 20 50 41 55 | 53 45 0a 58 65 78 74 65 |fdef PAU|SE.Xexte|
|00006290| 72 6e 20 69 6e 74 20 70 | 61 75 73 65 6c 65 76 2c |rn int p|auselev,|
|000062a0| 20 65 72 72 70 61 75 73 | 65 2c 20 63 61 74 63 68 | errpaus|e, catch|
|000062b0| 69 6e 67 2c 20 66 6c 61 | 67 71 75 69 74 3b 0a 58 |ing, fla|gquit;.X|
|000062c0| 23 65 6e 64 69 66 0a 58 | 23 69 66 6e 64 65 66 20 |#endif.X|#ifndef |
|000062d0| 4e 4f 54 55 52 54 4c 45 | 0a 58 65 78 74 65 72 6e |NOTURTLE|.Xextern|
|000062e0| 20 69 6e 74 20 74 75 72 | 74 64 65 73 3b 0a 58 23 | int tur|tdes;.X#|
|000062f0| 65 6e 64 69 66 0a 58 65 | 78 74 65 72 6e 20 63 68 |endif.Xe|xtern ch|
|00006300| 61 72 20 63 68 61 72 69 | 62 2c 20 2a 67 65 74 62 |ar chari|b, *getb|
|00006310| 70 74 2c 20 2a 69 62 75 | 66 70 74 72 3b 0a 58 65 |pt, *ibu|fptr;.Xe|
|00006320| 78 74 65 72 6e 20 63 68 | 61 72 20 74 69 74 6c 65 |xtern ch|ar title|
|00006330| 62 75 66 5b 5d 3b 0a 58 | 65 78 74 65 72 6e 20 73 |buf[];.X|extern s|
|00006340| 74 72 75 63 74 20 6c 65 | 78 73 74 72 75 63 74 20 |truct le|xstruct |
|00006350| 6b 65 79 77 6f 72 64 73 | 5b 5d 3b 0a 58 65 78 74 |keywords|[];.Xext|
|00006360| 65 72 6e 20 73 74 72 75 | 63 74 20 73 74 6b 66 72 |ern stru|ct stkfr|
|00006370| 61 6d 65 20 2a 66 62 72 | 3b 0a 58 65 78 74 65 72 |ame *fbr|;.Xexter|
|00006380| 6e 20 73 74 72 75 63 74 | 20 70 6c 69 73 74 20 2a |n struct| plist *|
|00006390| 70 72 6f 63 6c 69 73 74 | 3b 0a 58 65 78 74 65 72 |proclist|;.Xexter|
|000063a0| 6e 20 73 74 72 75 63 74 | 20 6f 62 6a 65 63 74 20 |n struct| object |
|000063b0| 2a 6d 75 6c 74 61 72 67 | 3b 0a 58 65 78 74 65 72 |*multarg|;.Xexter|
|000063c0| 6e 20 73 74 72 75 63 74 | 20 72 75 6e 62 6c 6f 63 |n struct| runbloc|
|000063d0| 6b 20 2a 74 68 69 73 72 | 75 6e 3b 0a 58 23 69 66 |k *thisr|un;.X#if|
|000063e0| 6e 64 65 66 20 59 59 53 | 54 59 50 45 0a 58 23 64 |ndef YYS|TYPE.X#d|
|000063f0| 65 66 69 6e 65 20 59 59 | 53 54 59 50 45 20 69 6e |efine YY|STYPE in|
+--------+-------------------------+-------------------------+--------+--------+
Only 25.0 KB of data is shown above.