home *** CD-ROM | disk | FTP | other *** search
MacBinary | 1992-09-27 | 10.0 KB | [TEXT/MPS ] |
open in:
MacOS 8.1
|
Win98
|
DOS
browse contents |
view JSON data
|
view as text
This file was processed as: MacBinary
(archive/macBinary).
id metadata |
---|
key | value |
---|
macFileType | [TEXT] |
macFileCreator | [MPS ] |
hex view+--------+-------------------------+-------------------------+--------+--------+
|00000000| 00 06 66 6f 72 6d 2e 63 | 00 00 00 00 00 00 00 00 |..form.c|........|
|00000010| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000020| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000030| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000040| 00 54 45 58 54 4d 50 53 | 20 00 00 00 00 00 00 00 |.TEXTMPS| .......|
|00000050| 00 00 00 00 00 25 0d 00 | 00 01 ac a6 ea fe 5d a6 |.....%..|......].|
|00000060| ea fe 5d 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |..].....|........|
|00000070| 00 00 00 00 00 00 00 00 | 00 00 81 81 4a bb 00 00 |........|....J...|
|00000080| 2f 2a 20 24 52 43 53 66 | 69 6c 65 3a 20 66 6f 72 |/* $RCSf|ile: for|
|00000090| 6d 2e 63 2c 76 20 24 24 | 52 65 76 69 73 69 6f 6e |m.c,v $$|Revision|
|000000a0| 3a 20 34 2e 30 2e 31 2e | 33 20 24 24 44 61 74 65 |: 4.0.1.|3 $$Date|
|000000b0| 3a 20 39 32 2f 30 36 2f | 30 38 20 31 33 3a 32 31 |: 92/06/|08 13:21|
|000000c0| 3a 34 32 20 24 0d 20 2a | 0d 20 2a 20 20 20 20 43 |:42 $. *|. * C|
|000000d0| 6f 70 79 72 69 67 68 74 | 20 28 63 29 20 31 39 39 |opyright| (c) 199|
|000000e0| 31 2c 20 4c 61 72 72 79 | 20 57 61 6c 6c 0d 20 2a |1, Larry| Wall. *|
|000000f0| 0d 20 2a 20 20 20 20 59 | 6f 75 20 6d 61 79 20 64 |. * Y|ou may d|
|00000100| 69 73 74 72 69 62 75 74 | 65 20 75 6e 64 65 72 20 |istribut|e under |
|00000110| 74 68 65 20 74 65 72 6d | 73 20 6f 66 20 65 69 74 |the term|s of eit|
|00000120| 68 65 72 20 74 68 65 20 | 47 4e 55 20 47 65 6e 65 |her the |GNU Gene|
|00000130| 72 61 6c 20 50 75 62 6c | 69 63 0d 20 2a 20 20 20 |ral Publ|ic. * |
|00000140| 20 4c 69 63 65 6e 73 65 | 20 6f 72 20 74 68 65 20 | License| or the |
|00000150| 41 72 74 69 73 74 69 63 | 20 4c 69 63 65 6e 73 65 |Artistic| License|
|00000160| 2c 20 61 73 20 73 70 65 | 63 69 66 69 65 64 20 69 |, as spe|cified i|
|00000170| 6e 20 74 68 65 20 52 45 | 41 44 4d 45 20 66 69 6c |n the RE|ADME fil|
|00000180| 65 2e 0d 20 2a 0d 20 2a | 20 24 4c 6f 67 3a 09 66 |e.. *. *| $Log:.f|
|00000190| 6f 72 6d 2e 63 2c 76 20 | 24 0d 20 2a 20 52 65 76 |orm.c,v |$. * Rev|
|000001a0| 69 73 69 6f 6e 20 34 2e | 30 2e 31 2e 33 20 20 39 |ision 4.|0.1.3 9|
|000001b0| 32 2f 30 36 2f 30 38 20 | 20 31 33 3a 32 31 3a 34 |2/06/08 | 13:21:4|
|000001c0| 32 20 20 6c 77 61 6c 6c | 0d 20 2a 20 70 61 74 63 |2 lwall|. * patc|
|000001d0| 68 32 30 3a 20 72 65 6d | 6f 76 65 64 20 69 6d 70 |h20: rem|oved imp|
|000001e0| 6c 69 63 69 74 20 69 6e | 74 20 64 65 63 6c 61 72 |licit in|t declar|
|000001f0| 61 74 69 6f 6e 73 20 6f | 6e 20 66 75 6e 63 69 6f |ations o|n funcio|
|00000200| 6e 73 0d 20 2a 20 70 61 | 74 63 68 32 30 3a 20 66 |ns. * pa|tch20: f|
|00000210| 6f 72 6d 20 66 65 65 64 | 20 66 6f 72 20 66 6f 72 |orm feed| for for|
|00000220| 6d 61 74 73 20 69 73 20 | 6e 6f 77 20 73 70 65 63 |mats is |now spec|
|00000230| 69 66 69 61 62 6c 65 20 | 76 69 61 20 24 5e 4c 0d |ifiable |via $^L.|
|00000240| 20 2a 20 70 61 74 63 68 | 32 30 3a 20 50 65 72 6c | * patch|20: Perl|
|00000250| 20 6e 6f 77 20 64 69 73 | 74 69 6e 67 75 69 73 68 | now dis|tinguish|
|00000260| 65 73 20 6f 76 65 72 6c | 61 70 70 65 64 20 63 6f |es overl|apped co|
|00000270| 70 69 65 73 20 66 72 6f | 6d 20 6e 6f 6e 2d 6f 76 |pies fro|m non-ov|
|00000280| 65 72 6c 61 70 70 65 64 | 0d 20 2a 20 0d 20 2a 20 |erlapped|. * . * |
|00000290| 52 65 76 69 73 69 6f 6e | 20 34 2e 30 2e 31 2e 32 |Revision| 4.0.1.2|
|000002a0| 20 20 39 31 2f 31 31 2f | 30 35 20 20 31 37 3a 31 | 91/11/|05 17:1|
|000002b0| 38 3a 34 33 20 20 6c 77 | 61 6c 6c 0d 20 2a 20 70 |8:43 lw|all. * p|
|000002c0| 61 74 63 68 31 31 3a 20 | 66 6f 72 6d 61 74 73 20 |atch11: |formats |
|000002d0| 64 69 64 6e 27 74 20 66 | 69 6c 6c 20 74 68 65 69 |didn't f|ill thei|
|000002e0| 72 20 66 69 65 6c 64 73 | 20 61 73 20 77 65 6c 6c |r fields| as well|
|000002f0| 20 61 73 20 74 68 65 79 | 20 63 6f 75 6c 64 0d 20 | as they| could. |
|00000300| 2a 20 70 61 74 63 68 31 | 31 3a 20 5e 20 66 69 65 |* patch1|1: ^ fie|
|00000310| 6c 64 73 20 63 68 6f 70 | 70 65 64 20 68 79 70 68 |lds chop|ped hyph|
|00000320| 65 6e 73 20 6f 6e 20 6c | 69 6e 65 20 62 72 65 61 |ens on l|ine brea|
|00000330| 6b 0d 20 2a 20 70 61 74 | 63 68 31 31 3a 20 23 20 |k. * pat|ch11: # |
|00000340| 66 69 65 6c 64 73 20 63 | 6f 75 6c 64 20 77 72 69 |fields c|ould wri|
|00000350| 74 65 20 6f 75 74 73 69 | 64 65 20 61 6c 6c 6f 63 |te outsi|de alloc|
|00000360| 61 74 65 64 20 6d 65 6d | 6f 72 79 0d 20 2a 20 0d |ated mem|ory. * .|
|00000370| 20 2a 20 52 65 76 69 73 | 69 6f 6e 20 34 2e 30 2e | * Revis|ion 4.0.|
|00000380| 31 2e 31 20 20 39 31 2f | 30 36 2f 30 37 20 20 31 |1.1 91/|06/07 1|
|00000390| 31 3a 30 37 3a 35 39 20 | 20 6c 77 61 6c 6c 0d 20 |1:07:59 | lwall. |
|000003a0| 2a 20 70 61 74 63 68 34 | 3a 20 6e 65 77 20 63 6f |* patch4|: new co|
|000003b0| 70 79 72 69 67 68 74 20 | 6e 6f 74 69 63 65 0d 20 |pyright |notice. |
|000003c0| 2a 20 70 61 74 63 68 34 | 3a 20 64 65 66 61 75 6c |* patch4|: defaul|
|000003d0| 74 20 74 6f 70 2d 6f 66 | 2d 66 6f 72 6d 20 66 6f |t top-of|-form fo|
|000003e0| 72 6d 61 74 20 69 73 20 | 6e 6f 77 20 46 49 4c 45 |rmat is |now FILE|
|000003f0| 48 41 4e 44 4c 45 5f 54 | 4f 50 0d 20 2a 20 0d 20 |HANDLE_T|OP. * . |
|00000400| 2a 20 52 65 76 69 73 69 | 6f 6e 20 34 2e 30 20 20 |* Revisi|on 4.0 |
|00000410| 39 31 2f 30 33 2f 32 30 | 20 20 30 31 3a 31 39 3a |91/03/20| 01:19:|
|00000420| 32 33 20 20 6c 77 61 6c | 6c 0d 20 2a 20 34 2e 30 |23 lwal|l. * 4.0|
|00000430| 20 62 61 73 65 6c 69 6e | 65 2e 0d 20 2a 20 0d 20 | baselin|e.. * . |
|00000440| 2a 2f 0d 0d 23 69 6e 63 | 6c 75 64 65 20 22 45 58 |*/..#inc|lude "EX|
|00000450| 54 45 52 4e 2e 68 22 0d | 23 69 6e 63 6c 75 64 65 |TERN.h".|#include|
|00000460| 20 22 70 65 72 6c 2e 68 | 22 0d 0d 2f 2a 20 46 6f | "perl.h|"../* Fo|
|00000470| 72 6d 73 20 73 74 75 66 | 66 20 2a 2f 0d 0d 73 74 |rms stuf|f */..st|
|00000480| 61 74 69 63 20 69 6e 74 | 20 63 6f 75 6e 74 6c 69 |atic int| countli|
|00000490| 6e 65 73 28 29 3b 0d 0d | 76 6f 69 64 0d 66 6f 72 |nes();..|void.for|
|000004a0| 6d 5f 70 61 72 73 65 61 | 72 67 73 28 66 63 6d 64 |m_parsea|rgs(fcmd|
|000004b0| 29 0d 72 65 67 69 73 74 | 65 72 20 46 43 4d 44 20 |).regist|er FCMD |
|000004c0| 2a 66 63 6d 64 3b 0d 7b | 0d 20 20 20 20 72 65 67 |*fcmd;.{|. reg|
|000004d0| 69 73 74 65 72 20 69 6e | 74 20 69 3b 0d 20 20 20 |ister in|t i;. |
|000004e0| 20 72 65 67 69 73 74 65 | 72 20 41 52 47 20 2a 61 | registe|r ARG *a|
|000004f0| 72 67 3b 0d 20 20 20 20 | 72 65 67 69 73 74 65 72 |rg;. |register|
|00000500| 20 69 6e 74 20 69 74 65 | 6d 73 3b 0d 20 20 20 20 | int ite|ms;. |
|00000510| 53 54 52 20 2a 73 74 72 | 3b 0d 20 20 20 20 41 52 |STR *str|;. AR|
|00000520| 47 20 2a 70 61 72 73 65 | 6c 69 73 74 28 29 3b 0d |G *parse|list();.|
|00000530| 20 20 20 20 6c 69 6e 65 | 5f 74 20 6f 6c 64 6c 69 | line|_t oldli|
|00000540| 6e 65 20 3d 20 63 75 72 | 63 6d 64 2d 3e 63 5f 6c |ne = cur|cmd->c_l|
|00000550| 69 6e 65 3b 0d 20 20 20 | 20 69 6e 74 20 6f 6c 64 |ine;. | int old|
|00000560| 73 61 76 65 20 3d 20 73 | 61 76 65 73 74 61 63 6b |save = s|avestack|
|00000570| 2d 3e 61 72 79 5f 66 69 | 6c 6c 3b 0d 0d 20 20 20 |->ary_fi|ll;.. |
|00000580| 20 73 74 72 20 3d 20 66 | 63 6d 64 2d 3e 66 5f 75 | str = f|cmd->f_u|
|00000590| 6e 70 61 72 73 65 64 3b | 0d 20 20 20 20 63 75 72 |nparsed;|. cur|
|000005a0| 63 6d 64 2d 3e 63 5f 6c | 69 6e 65 20 3d 20 66 63 |cmd->c_l|ine = fc|
|000005b0| 6d 64 2d 3e 66 5f 6c 69 | 6e 65 3b 0d 20 20 20 20 |md->f_li|ne;. |
|000005c0| 66 63 6d 64 2d 3e 66 5f | 75 6e 70 61 72 73 65 64 |fcmd->f_|unparsed|
|000005d0| 20 3d 20 4e 75 6c 6c 73 | 74 72 3b 0d 23 69 66 6e | = Nulls|tr;.#ifn|
|000005e0| 64 65 66 20 6d 61 63 69 | 6e 74 6f 73 68 0d 20 20 |def maci|ntosh. |
|000005f0| 20 20 28 76 6f 69 64 29 | 73 61 76 65 68 70 74 72 | (void)|savehptr|
|00000600| 28 26 63 75 72 73 74 61 | 73 68 29 3b 0d 23 65 6c |(&cursta|sh);.#el|
|00000610| 73 65 0d 20 20 20 20 73 | 61 76 65 68 70 74 72 28 |se. s|avehptr(|
|00000620| 26 63 75 72 73 74 61 73 | 68 29 3b 0d 23 65 6e 64 |&curstas|h);.#end|
|00000630| 69 66 0d 20 20 20 20 63 | 75 72 73 74 61 73 68 20 |if. c|urstash |
|00000640| 3d 20 73 74 72 2d 3e 73 | 74 72 5f 75 2e 73 74 72 |= str->s|tr_u.str|
|00000650| 5f 68 61 73 68 3b 0d 20 | 20 20 20 61 72 67 20 3d |_hash;. | arg =|
|00000660| 20 70 61 72 73 65 6c 69 | 73 74 28 73 74 72 29 3b | parseli|st(str);|
|00000670| 0d 20 20 20 20 72 65 73 | 74 6f 72 65 6c 69 73 74 |. res|torelist|
|00000680| 28 6f 6c 64 73 61 76 65 | 29 3b 0d 0d 20 20 20 20 |(oldsave|);.. |
|00000690| 69 74 65 6d 73 20 3d 20 | 61 72 67 2d 3e 61 72 67 |items = |arg->arg|
|000006a0| 5f 6c 65 6e 20 2d 20 31 | 3b 09 2f 2a 20 69 67 6e |_len - 1|;./* ign|
|000006b0| 6f 72 65 20 24 24 20 6f | 6e 20 65 6e 64 20 2a 2f |ore $$ o|n end */|
|000006c0| 0d 20 20 20 20 66 6f 72 | 20 28 69 20 3d 20 31 3b |. for| (i = 1;|
|000006d0| 20 69 20 3c 3d 20 69 74 | 65 6d 73 3b 20 69 2b 2b | i <= it|ems; i++|
|000006e0| 29 20 7b 0d 09 69 66 20 | 28 21 66 63 6d 64 20 7c |) {..if |(!fcmd ||
|000006f0| 7c 20 66 63 6d 64 2d 3e | 66 5f 74 79 70 65 20 3d || fcmd->|f_type =|
|00000700| 3d 20 46 5f 4e 55 4c 4c | 29 0d 09 20 20 20 20 66 |= F_NULL|).. f|
|00000710| 61 74 61 6c 28 22 54 6f | 6f 20 6d 61 6e 79 20 66 |atal("To|o many f|
|00000720| 69 65 6c 64 20 76 61 6c | 75 65 73 22 29 3b 0d 09 |ield val|ues");..|
|00000730| 64 65 68 6f 69 73 74 28 | 61 72 67 2c 69 29 3b 0d |dehoist(|arg,i);.|
|00000740| 09 66 63 6d 64 2d 3e 66 | 5f 65 78 70 72 20 3d 20 |.fcmd->f|_expr = |
|00000750| 6d 61 6b 65 5f 6f 70 28 | 4f 5f 49 54 45 4d 2c 31 |make_op(|O_ITEM,1|
|00000760| 2c 0d 09 20 20 61 72 67 | 5b 69 5d 2e 61 72 67 5f |,.. arg|[i].arg_|
|00000770| 70 74 72 2e 61 72 67 5f | 61 72 67 2c 4e 75 6c 6c |ptr.arg_|arg,Null|
|00000780| 61 72 67 2c 4e 75 6c 6c | 61 72 67 29 3b 0d 09 69 |arg,Null|arg);..i|
|00000790| 66 20 28 66 63 6d 64 2d | 3e 66 5f 66 6c 61 67 73 |f (fcmd-|>f_flags|
|000007a0| 20 26 20 46 43 5f 43 48 | 4f 50 29 20 7b 0d 09 20 | & FC_CH|OP) {.. |
|000007b0| 20 20 20 69 66 20 28 28 | 66 63 6d 64 2d 3e 66 5f | if ((|fcmd->f_|
|000007c0| 65 78 70 72 5b 31 5d 2e | 61 72 67 5f 74 79 70 65 |expr[1].|arg_type|
|000007d0| 20 26 20 41 5f 4d 41 53 | 4b 29 20 3d 3d 20 41 5f | & A_MAS|K) == A_|
|000007e0| 53 54 41 42 29 0d 09 09 | 66 63 6d 64 2d 3e 66 5f |STAB)...|fcmd->f_|
|000007f0| 65 78 70 72 5b 31 5d 2e | 61 72 67 5f 74 79 70 65 |expr[1].|arg_type|
|00000800| 20 3d 20 41 5f 4c 56 41 | 4c 3b 0d 09 20 20 20 20 | = A_LVA|L;.. |
|00000810| 65 6c 73 65 20 69 66 20 | 28 28 66 63 6d 64 2d 3e |else if |((fcmd->|
|00000820| 66 5f 65 78 70 72 5b 31 | 5d 2e 61 72 67 5f 74 79 |f_expr[1|].arg_ty|
|00000830| 70 65 20 26 20 41 5f 4d | 41 53 4b 29 20 3d 3d 20 |pe & A_M|ASK) == |
|00000840| 41 5f 45 58 50 52 29 0d | 09 09 66 63 6d 64 2d 3e |A_EXPR).|..fcmd->|
|00000850| 66 5f 65 78 70 72 5b 31 | 5d 2e 61 72 67 5f 74 79 |f_expr[1|].arg_ty|
|00000860| 70 65 20 3d 20 41 5f 4c | 45 58 50 52 3b 0d 09 20 |pe = A_L|EXPR;.. |
|00000870| 20 20 20 65 6c 73 65 0d | 09 09 66 61 74 61 6c 28 | else.|..fatal(|
|00000880| 22 5e 20 66 69 65 6c 64 | 20 72 65 71 75 69 72 65 |"^ field| require|
|00000890| 73 20 73 63 61 6c 61 72 | 20 6c 76 61 6c 75 65 22 |s scalar| lvalue"|
|000008a0| 29 3b 0d 09 7d 0d 09 66 | 63 6d 64 20 3d 20 66 63 |);..}..f|cmd = fc|
|000008b0| 6d 64 2d 3e 66 5f 6e 65 | 78 74 3b 0d 20 20 20 20 |md->f_ne|xt;. |
|000008c0| 7d 0d 20 20 20 20 69 66 | 20 28 66 63 6d 64 20 26 |}. if| (fcmd &|
|000008d0| 26 20 66 63 6d 64 2d 3e | 66 5f 74 79 70 65 29 0d |& fcmd->|f_type).|
|000008e0| 09 66 61 74 61 6c 28 22 | 4e 6f 74 20 65 6e 6f 75 |.fatal("|Not enou|
|000008f0| 67 68 20 66 69 65 6c 64 | 20 76 61 6c 75 65 73 22 |gh field| values"|
|00000900| 29 3b 0d 20 20 20 20 63 | 75 72 63 6d 64 2d 3e 63 |);. c|urcmd->c|
|00000910| 5f 6c 69 6e 65 20 3d 20 | 6f 6c 64 6c 69 6e 65 3b |_line = |oldline;|
|00000920| 0d 20 20 20 20 53 61 66 | 65 66 72 65 65 28 61 72 |. Saf|efree(ar|
|00000930| 67 29 3b 0d 20 20 20 20 | 73 74 72 5f 66 72 65 65 |g);. |str_free|
|00000940| 28 73 74 72 29 3b 0d 7d | 0d 0d 69 6e 74 20 6e 65 |(str);.}|..int ne|
|00000950| 77 73 69 7a 65 3b 0d 0d | 23 64 65 66 69 6e 65 20 |wsize;..|#define |
|00000960| 43 48 4b 4c 45 4e 28 61 | 6c 6c 6f 77 29 20 5c 0d |CHKLEN(a|llow) \.|
|00000970| 6e 65 77 73 69 7a 65 20 | 3d 20 28 64 20 2d 20 6f |newsize |= (d - o|
|00000980| 72 65 63 2d 3e 6f 5f 73 | 74 72 29 20 2b 20 28 61 |rec->o_s|tr) + (a|
|00000990| 6c 6c 6f 77 29 3b 20 5c | 0d 69 66 20 28 6e 65 77 |llow); \|.if (new|
|000009a0| 73 69 7a 65 20 3e 3d 20 | 63 75 72 6c 65 6e 29 20 |size >= |curlen) |
|000009b0| 7b 20 5c 0d 20 20 20 20 | 63 75 72 6c 65 6e 20 3d |{ \. |curlen =|
|000009c0| 20 64 20 2d 20 6f 72 65 | 63 2d 3e 6f 5f 73 74 72 | d - ore|c->o_str|
|000009d0| 3b 20 5c 0d 20 20 20 20 | 47 52 4f 57 53 54 52 28 |; \. |GROWSTR(|
|000009e0| 26 6f 72 65 63 2d 3e 6f | 5f 73 74 72 2c 26 6f 72 |&orec->o|_str,&or|
|000009f0| 65 63 2d 3e 6f 5f 6c 65 | 6e 2c 6f 72 65 63 2d 3e |ec->o_le|n,orec->|
|00000a00| 6f 5f 6c 65 6e 20 2b 20 | 28 61 6c 6c 6f 77 29 29 |o_len + |(allow))|
|00000a10| 3b 20 5c 0d 20 20 20 20 | 64 20 3d 20 6f 72 65 63 |; \. |d = orec|
|00000a20| 2d 3e 6f 5f 73 74 72 20 | 2b 20 63 75 72 6c 65 6e |->o_str |+ curlen|
|00000a30| 3b 09 2f 2a 20 69 6e 20 | 63 61 73 65 20 69 74 20 |;./* in |case it |
|00000a40| 6d 6f 76 65 73 20 2a 2f | 20 5c 0d 20 20 20 20 63 |moves */| \. c|
|00000a50| 75 72 6c 65 6e 20 3d 20 | 6f 72 65 63 2d 3e 6f 5f |urlen = |orec->o_|
|00000a60| 6c 65 6e 20 2d 20 32 3b | 20 5c 0d 7d 0d 0d 76 6f |len - 2;| \.}..vo|
|00000a70| 69 64 0d 66 6f 72 6d 61 | 74 28 6f 72 65 63 2c 66 |id.forma|t(orec,f|
|00000a80| 63 6d 64 2c 73 70 29 0d | 72 65 67 69 73 74 65 72 |cmd,sp).|register|
|00000a90| 20 73 74 72 75 63 74 20 | 6f 75 74 72 65 63 20 2a | struct |outrec *|
|00000aa0| 6f 72 65 63 3b 0d 72 65 | 67 69 73 74 65 72 20 46 |orec;.re|gister F|
|00000ab0| 43 4d 44 20 2a 66 63 6d | 64 3b 0d 69 6e 74 20 73 |CMD *fcm|d;.int s|
|00000ac0| 70 3b 0d 7b 0d 20 20 20 | 20 72 65 67 69 73 74 65 |p;.{. | registe|
|00000ad0| 72 20 63 68 61 72 20 2a | 64 20 3d 20 6f 72 65 63 |r char *|d = orec|
|00000ae0| 2d 3e 6f 5f 73 74 72 3b | 0d 20 20 20 20 72 65 67 |->o_str;|. reg|
|00000af0| 69 73 74 65 72 20 63 68 | 61 72 20 2a 73 3b 0d 20 |ister ch|ar *s;. |
|00000b00| 20 20 20 72 65 67 69 73 | 74 65 72 20 69 6e 74 20 | regis|ter int |
|00000b10| 63 75 72 6c 65 6e 20 3d | 20 6f 72 65 63 2d 3e 6f |curlen =| orec->o|
|00000b20| 5f 6c 65 6e 20 2d 20 32 | 3b 0d 20 20 20 20 72 65 |_len - 2|;. re|
|00000b30| 67 69 73 74 65 72 20 69 | 6e 74 20 73 69 7a 65 3b |gister i|nt size;|
|00000b40| 0d 20 20 20 20 46 43 4d | 44 20 2a 6e 65 78 74 66 |. FCM|D *nextf|
|00000b50| 63 6d 64 3b 0d 20 20 20 | 20 46 43 4d 44 20 2a 6c |cmd;. | FCMD *l|
|00000b60| 69 6e 65 62 65 67 20 3d | 20 66 63 6d 64 3b 0d 20 |inebeg =| fcmd;. |
|00000b70| 20 20 20 63 68 61 72 20 | 74 6d 70 63 68 61 72 3b | char |tmpchar;|
|00000b80| 0d 20 20 20 20 63 68 61 | 72 20 2a 74 3b 0d 20 20 |. cha|r *t;. |
|00000b90| 20 20 43 4d 44 20 6d 79 | 63 6d 64 3b 0d 20 20 20 | CMD my|cmd;. |
|00000ba0| 20 53 54 52 20 2a 73 74 | 72 3b 0d 20 20 20 20 63 | STR *st|r;. c|
|00000bb0| 68 61 72 20 2a 63 68 6f | 70 68 65 72 65 3b 0d 0d |har *cho|phere;..|
|00000bc0| 20 20 20 20 6d 79 63 6d | 64 2e 63 5f 74 79 70 65 | mycm|d.c_type|
|00000bd0| 20 3d 20 43 5f 4e 55 4c | 4c 3b 0d 20 20 20 20 6f | = C_NUL|L;. o|
|00000be0| 72 65 63 2d 3e 6f 5f 6c | 69 6e 65 73 20 3d 20 30 |rec->o_l|ines = 0|
|00000bf0| 3b 0d 20 20 20 20 66 6f | 72 20 28 3b 20 66 63 6d |;. fo|r (; fcm|
|00000c00| 64 3b 20 66 63 6d 64 20 | 3d 20 6e 65 78 74 66 63 |d; fcmd |= nextfc|
|00000c10| 6d 64 29 20 7b 0d 09 6e | 65 78 74 66 63 6d 64 20 |md) {..n|extfcmd |
|00000c20| 3d 20 66 63 6d 64 2d 3e | 66 5f 6e 65 78 74 3b 0d |= fcmd->|f_next;.|
|00000c30| 09 43 48 4b 4c 45 4e 28 | 66 63 6d 64 2d 3e 66 5f |.CHKLEN(|fcmd->f_|
|00000c40| 70 72 65 73 69 7a 65 29 | 3b 0d 09 2f 2a 53 55 50 |presize)|;../*SUP|
|00000c50| 50 52 45 53 53 20 35 36 | 30 2a 2f 0d 09 69 66 20 |PRESS 56|0*/..if |
|00000c60| 28 73 20 3d 20 66 63 6d | 64 2d 3e 66 5f 70 72 65 |(s = fcm|d->f_pre|
|00000c70| 29 20 7b 0d 09 20 20 20 | 20 77 68 69 6c 65 20 28 |) {.. | while (|
|00000c80| 2a 73 29 20 7b 0d 09 09 | 69 66 20 28 2a 73 20 3d |*s) {...|if (*s =|
|00000c90| 3d 20 27 5c 6e 27 29 20 | 7b 0d 09 09 20 20 20 20 |= '\n') |{... |
|00000ca0| 77 68 69 6c 65 20 28 64 | 20 3e 20 6f 72 65 63 2d |while (d| > orec-|
|00000cb0| 3e 6f 5f 73 74 72 20 26 | 26 20 28 64 5b 2d 31 5d |>o_str &|& (d[-1]|
|00000cc0| 20 3d 3d 20 27 20 27 20 | 7c 7c 20 64 5b 2d 31 5d | == ' ' ||| d[-1]|
|00000cd0| 20 3d 3d 20 27 5c 74 27 | 29 29 0d 09 09 09 64 2d | == '\t'|))....d-|
|00000ce0| 2d 3b 0d 09 09 20 20 20 | 20 69 66 20 28 66 63 6d |-;... | if (fcm|
|00000cf0| 64 2d 3e 66 5f 66 6c 61 | 67 73 20 26 20 46 43 5f |d->f_fla|gs & FC_|
|00000d00| 4e 4f 42 4c 41 4e 4b 29 | 20 7b 0d 09 09 09 69 66 |NOBLANK)| {....if|
|00000d10| 20 28 64 20 3d 3d 20 6f | 72 65 63 2d 3e 6f 5f 73 | (d == o|rec->o_s|
|00000d20| 74 72 20 7c 7c 20 64 5b | 2d 31 5d 20 3d 3d 20 27 |tr || d[|-1] == '|
|00000d30| 5c 6e 27 29 20 7b 0d 09 | 09 09 20 20 20 20 6f 72 |\n') {..|.. or|
|00000d40| 65 63 2d 3e 6f 5f 6c 69 | 6e 65 73 2d 2d 3b 09 2f |ec->o_li|nes--;./|
|00000d50| 2a 20 64 6f 6e 27 74 20 | 70 72 69 6e 74 20 62 6c |* don't |print bl|
|00000d60| 61 6e 6b 20 6c 69 6e 65 | 20 2a 2f 0d 09 09 09 20 |ank line| */.... |
|00000d70| 20 20 20 6c 69 6e 65 62 | 65 67 20 3d 20 66 63 6d | lineb|eg = fcm|
|00000d80| 64 2d 3e 66 5f 6e 65 78 | 74 3b 0d 09 09 09 20 20 |d->f_nex|t;.... |
|00000d90| 20 20 62 72 65 61 6b 3b | 0d 09 09 09 7d 0d 09 09 | break;|....}...|
|00000da0| 09 65 6c 73 65 20 69 66 | 20 28 66 63 6d 64 2d 3e |.else if| (fcmd->|
|00000db0| 66 5f 66 6c 61 67 73 20 | 26 20 46 43 5f 52 45 50 |f_flags |& FC_REP|
|00000dc0| 45 41 54 29 0d 09 09 09 | 20 20 20 20 6e 65 78 74 |EAT)....| next|
|00000dd0| 66 63 6d 64 20 3d 20 6c | 69 6e 65 62 65 67 3b 0d |fcmd = l|inebeg;.|
|00000de0| 09 09 09 65 6c 73 65 0d | 09 09 09 20 20 20 20 6c |...else.|... l|
|00000df0| 69 6e 65 62 65 67 20 3d | 20 66 63 6d 64 2d 3e 66 |inebeg =| fcmd->f|
|00000e00| 5f 6e 65 78 74 3b 0d 09 | 09 20 20 20 20 7d 0d 09 |_next;..|. }..|
|00000e10| 09 20 20 20 20 65 6c 73 | 65 0d 09 09 09 6c 69 6e |. els|e....lin|
|00000e20| 65 62 65 67 20 3d 20 66 | 63 6d 64 2d 3e 66 5f 6e |ebeg = f|cmd->f_n|
|00000e30| 65 78 74 3b 0d 09 09 7d | 0d 09 09 2a 64 2b 2b 20 |ext;...}|...*d++ |
|00000e40| 3d 20 2a 73 2b 2b 3b 0d | 09 20 20 20 20 7d 0d 09 |= *s++;.|. }..|
|00000e50| 7d 0d 09 69 66 20 28 66 | 63 6d 64 2d 3e 66 5f 75 |}..if (f|cmd->f_u|
|00000e60| 6e 70 61 72 73 65 64 29 | 0d 09 20 20 20 20 66 6f |nparsed)|.. fo|
|00000e70| 72 6d 5f 70 61 72 73 65 | 61 72 67 73 28 66 63 6d |rm_parse|args(fcm|
|00000e80| 64 29 3b 0d 09 73 77 69 | 74 63 68 20 28 66 63 6d |d);..swi|tch (fcm|
|00000e90| 64 2d 3e 66 5f 74 79 70 | 65 29 20 7b 0d 09 63 61 |d->f_typ|e) {..ca|
|00000ea0| 73 65 20 46 5f 4e 55 4c | 4c 3a 0d 09 20 20 20 20 |se F_NUL|L:.. |
|00000eb0| 6f 72 65 63 2d 3e 6f 5f | 6c 69 6e 65 73 2b 2b 3b |orec->o_|lines++;|
|00000ec0| 0d 09 20 20 20 20 62 72 | 65 61 6b 3b 0d 09 63 61 |.. br|eak;..ca|
|00000ed0| 73 65 20 46 5f 4c 45 46 | 54 3a 0d 09 20 20 20 20 |se F_LEF|T:.. |
|00000ee0| 28 76 6f 69 64 29 65 76 | 61 6c 28 66 63 6d 64 2d |(void)ev|al(fcmd-|
|00000ef0| 3e 66 5f 65 78 70 72 2c | 47 5f 53 43 41 4c 41 52 |>f_expr,|G_SCALAR|
|00000f00| 2c 73 70 29 3b 0d 09 20 | 20 20 20 73 74 72 20 3d |,sp);.. | str =|
|00000f10| 20 73 74 61 63 6b 2d 3e | 61 72 79 5f 61 72 72 61 | stack->|ary_arra|
|00000f20| 79 5b 73 70 2b 31 5d 3b | 0d 09 20 20 20 20 73 20 |y[sp+1];|.. s |
|00000f30| 3d 20 73 74 72 5f 67 65 | 74 28 73 74 72 29 3b 0d |= str_ge|t(str);.|
|00000f40| 09 20 20 20 20 73 69 7a | 65 20 3d 20 66 63 6d 64 |. siz|e = fcmd|
|00000f50| 2d 3e 66 5f 73 69 7a 65 | 3b 0d 09 20 20 20 20 43 |->f_size|;.. C|
|00000f60| 48 4b 4c 45 4e 28 73 69 | 7a 65 29 3b 0d 09 20 20 |HKLEN(si|ze);.. |
|00000f70| 20 20 63 68 6f 70 68 65 | 72 65 20 3d 20 4e 75 6c | chophe|re = Nul|
|00000f80| 6c 63 68 3b 0d 09 20 20 | 20 20 77 68 69 6c 65 20 |lch;.. | while |
|00000f90| 28 73 69 7a 65 20 26 26 | 20 2a 73 20 26 26 20 2a |(size &&| *s && *|
|00000fa0| 73 20 21 3d 20 27 5c 6e | 27 29 20 7b 0d 09 09 69 |s != '\n|') {...i|
|00000fb0| 66 20 28 2a 73 20 3d 3d | 20 27 5c 74 27 29 0d 09 |f (*s ==| '\t')..|
|00000fc0| 09 20 20 20 20 2a 73 20 | 3d 20 27 20 27 3b 0d 09 |. *s |= ' ';..|
|00000fd0| 09 73 69 7a 65 2d 2d 3b | 0d 09 09 69 66 20 28 2a |.size--;|...if (*|
|00000fe0| 73 20 26 26 20 69 6e 64 | 65 78 28 63 68 6f 70 73 |s && ind|ex(chops|
|00000ff0| 65 74 2c 28 2a 64 2b 2b | 20 3d 20 2a 73 2b 2b 29 |et,(*d++| = *s++)|
|00001000| 29 29 0d 09 09 20 20 20 | 20 63 68 6f 70 68 65 72 |))... | chopher|
|00001010| 65 20 3d 20 73 3b 0d 09 | 09 69 66 20 28 2a 73 20 |e = s;..|.if (*s |
|00001020| 3d 3d 20 27 5c 6e 27 20 | 26 26 20 28 66 63 6d 64 |== '\n' |&& (fcmd|
|00001030| 2d 3e 66 5f 66 6c 61 67 | 73 20 26 20 46 43 5f 43 |->f_flag|s & FC_C|
|00001040| 48 4f 50 29 29 0d 09 09 | 20 20 20 20 2a 73 20 3d |HOP))...| *s =|
|00001050| 20 27 20 27 3b 0d 09 20 | 20 20 20 7d 0d 09 20 20 | ' ';.. | }.. |
|00001060| 20 20 69 66 20 28 73 69 | 7a 65 20 7c 7c 20 21 2a | if (si|ze || !*|
|00001070| 73 29 0d 09 09 63 68 6f | 70 68 65 72 65 20 3d 20 |s)...cho|phere = |
|00001080| 73 3b 0d 09 20 20 20 20 | 65 6c 73 65 20 69 66 20 |s;.. |else if |
|00001090| 28 63 68 6f 70 68 65 72 | 65 20 26 26 20 63 68 6f |(chopher|e && cho|
|000010a0| 70 68 65 72 65 20 3c 20 | 73 20 26 26 20 2a 73 20 |phere < |s && *s |
|000010b0| 26 26 20 69 6e 64 65 78 | 28 63 68 6f 70 73 65 74 |&& index|(chopset|
|000010c0| 2c 2a 73 29 29 0d 09 09 | 63 68 6f 70 68 65 72 65 |,*s))...|chophere|
|000010d0| 20 3d 20 73 3b 0d 09 20 | 20 20 20 69 66 20 28 66 | = s;.. | if (f|
|000010e0| 63 6d 64 2d 3e 66 5f 66 | 6c 61 67 73 20 26 20 46 |cmd->f_f|lags & F|
|000010f0| 43 5f 43 48 4f 50 29 20 | 7b 0d 09 09 69 66 20 28 |C_CHOP) |{...if (|
|00001100| 21 63 68 6f 70 68 65 72 | 65 29 0d 09 09 20 20 20 |!chopher|e)... |
|00001110| 20 63 68 6f 70 68 65 72 | 65 20 3d 20 73 3b 0d 09 | chopher|e = s;..|
|00001120| 09 73 69 7a 65 20 2b 3d | 20 28 73 20 2d 20 63 68 |.size +=| (s - ch|
|00001130| 6f 70 68 65 72 65 29 3b | 0d 09 09 64 20 2d 3d 20 |ophere);|...d -= |
|00001140| 28 73 20 2d 20 63 68 6f | 70 68 65 72 65 29 3b 0d |(s - cho|phere);.|
|00001150| 09 09 69 66 20 28 66 63 | 6d 64 2d 3e 66 5f 66 6c |..if (fc|md->f_fl|
|00001160| 61 67 73 20 26 20 46 43 | 5f 4d 4f 52 45 20 26 26 |ags & FC|_MORE &&|
|00001170| 0d 09 09 20 20 2a 63 68 | 6f 70 68 65 72 65 20 26 |... *ch|ophere &|
|00001180| 26 20 73 74 72 4e 45 28 | 63 68 6f 70 68 65 72 65 |& strNE(|chophere|
|00001190| 2c 22 5c 6e 22 29 29 20 | 7b 0d 09 09 20 20 20 20 |,"\n")) |{... |
|000011a0| 77 68 69 6c 65 20 28 73 | 69 7a 65 20 3c 20 33 29 |while (s|ize < 3)|
|000011b0| 20 7b 0d 09 09 09 64 2d | 2d 3b 0d 09 09 09 73 69 | {....d-|-;....si|
|000011c0| 7a 65 2b 2b 3b 0d 09 09 | 20 20 20 20 7d 0d 09 09 |ze++;...| }...|
|000011d0| 20 20 20 20 77 68 69 6c | 65 20 28 64 5b 2d 31 5d | whil|e (d[-1]|
|000011e0| 20 3d 3d 20 27 20 27 20 | 26 26 20 73 69 7a 65 20 | == ' ' |&& size |
|000011f0| 3c 20 66 63 6d 64 2d 3e | 66 5f 73 69 7a 65 29 20 |< fcmd->|f_size) |
|00001200| 7b 0d 09 09 09 64 2d 2d | 3b 0d 09 09 09 73 69 7a |{....d--|;....siz|
|00001210| 65 2b 2b 3b 0d 09 09 20 | 20 20 20 7d 0d 09 09 20 |e++;... | }... |
|00001220| 20 20 20 2a 64 2b 2b 20 | 3d 20 27 2e 27 3b 0d 09 | *d++ |= '.';..|
|00001230| 09 20 20 20 20 2a 64 2b | 2b 20 3d 20 27 2e 27 3b |. *d+|+ = '.';|
|00001240| 0d 09 09 20 20 20 20 2a | 64 2b 2b 20 3d 20 27 2e |... *|d++ = '.|
|00001250| 27 3b 0d 09 09 20 20 20 | 20 73 69 7a 65 20 2d 3d |';... | size -=|
|00001260| 20 33 3b 0d 09 09 7d 0d | 09 09 77 68 69 6c 65 20 | 3;...}.|..while |
|00001270| 28 2a 63 68 6f 70 68 65 | 72 65 20 26 26 20 69 6e |(*chophe|re && in|
|00001280| 64 65 78 28 63 68 6f 70 | 73 65 74 2c 2a 63 68 6f |dex(chop|set,*cho|
|00001290| 70 68 65 72 65 29 0d 09 | 09 20 20 26 26 20 69 73 |phere)..|. && is|
|000012a0| 53 50 41 43 45 28 2a 63 | 68 6f 70 68 65 72 65 29 |SPACE(*c|hophere)|
|000012b0| 29 0d 09 09 20 20 20 20 | 63 68 6f 70 68 65 72 65 |)... |chophere|
|000012c0| 2b 2b 3b 0d 09 09 73 74 | 72 5f 63 68 6f 70 28 73 |++;...st|r_chop(s|
|000012d0| 74 72 2c 63 68 6f 70 68 | 65 72 65 29 3b 0d 09 20 |tr,choph|ere);.. |
|000012e0| 20 20 20 7d 0d 09 20 20 | 20 20 69 66 20 28 66 63 | }.. | if (fc|
|000012f0| 6d 64 2d 3e 66 5f 6e 65 | 78 74 20 26 26 20 66 63 |md->f_ne|xt && fc|
|00001300| 6d 64 2d 3e 66 5f 6e 65 | 78 74 2d 3e 66 5f 70 72 |md->f_ne|xt->f_pr|
|00001310| 65 5b 30 5d 20 3d 3d 20 | 27 5c 6e 27 29 0d 09 09 |e[0] == |'\n')...|
|00001320| 73 69 7a 65 20 3d 20 30 | 3b 09 09 09 2f 2a 20 6e |size = 0|;.../* n|
|00001330| 6f 20 73 70 61 63 65 73 | 20 62 65 66 6f 72 65 20 |o spaces| before |
|00001340| 6e 65 77 6c 69 6e 65 20 | 2a 2f 0d 09 20 20 20 20 |newline |*/.. |
|00001350| 77 68 69 6c 65 20 28 73 | 69 7a 65 29 20 7b 0d 09 |while (s|ize) {..|
|00001360| 09 73 69 7a 65 2d 2d 3b | 0d 09 09 2a 64 2b 2b 20 |.size--;|...*d++ |
|00001370| 3d 20 27 20 27 3b 0d 09 | 20 20 20 20 7d 0d 09 20 |= ' ';..| }.. |
|00001380| 20 20 20 62 72 65 61 6b | 3b 0d 09 63 61 73 65 20 | break|;..case |
|00001390| 46 5f 52 49 47 48 54 3a | 0d 09 20 20 20 20 28 76 |F_RIGHT:|.. (v|
|000013a0| 6f 69 64 29 65 76 61 6c | 28 66 63 6d 64 2d 3e 66 |oid)eval|(fcmd->f|
|000013b0| 5f 65 78 70 72 2c 47 5f | 53 43 41 4c 41 52 2c 73 |_expr,G_|SCALAR,s|
|000013c0| 70 29 3b 0d 09 20 20 20 | 20 73 74 72 20 3d 20 73 |p);.. | str = s|
|000013d0| 74 61 63 6b 2d 3e 61 72 | 79 5f 61 72 72 61 79 5b |tack->ar|y_array[|
|000013e0| 73 70 2b 31 5d 3b 0d 09 | 20 20 20 20 74 20 3d 20 |sp+1];..| t = |
|000013f0| 73 20 3d 20 73 74 72 5f | 67 65 74 28 73 74 72 29 |s = str_|get(str)|
|00001400| 3b 0d 09 20 20 20 20 73 | 69 7a 65 20 3d 20 66 63 |;.. s|ize = fc|
|00001410| 6d 64 2d 3e 66 5f 73 69 | 7a 65 3b 0d 09 20 20 20 |md->f_si|ze;.. |
|00001420| 20 43 48 4b 4c 45 4e 28 | 73 69 7a 65 29 3b 0d 09 | CHKLEN(|size);..|
|00001430| 20 20 20 20 63 68 6f 70 | 68 65 72 65 20 3d 20 4e | chop|here = N|
|00001440| 75 6c 6c 63 68 3b 0d 09 | 20 20 20 20 77 68 69 6c |ullch;..| whil|
|00001450| 65 20 28 73 69 7a 65 20 | 26 26 20 2a 73 20 26 26 |e (size |&& *s &&|
|00001460| 20 2a 73 20 21 3d 20 27 | 5c 6e 27 29 20 7b 0d 09 | *s != '|\n') {..|
|00001470| 09 69 66 20 28 2a 73 20 | 3d 3d 20 27 5c 74 27 29 |.if (*s |== '\t')|
|00001480| 0d 09 09 20 20 20 20 2a | 73 20 3d 20 27 20 27 3b |... *|s = ' ';|
|00001490| 0d 09 09 73 69 7a 65 2d | 2d 3b 0d 09 09 69 66 20 |...size-|-;...if |
|000014a0| 28 2a 73 20 26 26 20 69 | 6e 64 65 78 28 63 68 6f |(*s && i|ndex(cho|
|000014b0| 70 73 65 74 2c 2a 73 2b | 2b 29 29 0d 09 09 20 20 |pset,*s+|+))... |
|000014c0| 20 20 63 68 6f 70 68 65 | 72 65 20 3d 20 73 3b 0d | chophe|re = s;.|
|000014d0| 09 09 69 66 20 28 2a 73 | 20 3d 3d 20 27 5c 6e 27 |..if (*s| == '\n'|
|000014e0| 20 26 26 20 28 66 63 6d | 64 2d 3e 66 5f 66 6c 61 | && (fcm|d->f_fla|
|000014f0| 67 73 20 26 20 46 43 5f | 43 48 4f 50 29 29 0d 09 |gs & FC_|CHOP))..|
|00001500| 09 20 20 20 20 2a 73 20 | 3d 20 27 20 27 3b 0d 09 |. *s |= ' ';..|
|00001510| 20 20 20 20 7d 0d 09 20 | 20 20 20 69 66 20 28 73 | }.. | if (s|
|00001520| 69 7a 65 20 7c 7c 20 21 | 2a 73 29 0d 09 09 63 68 |ize || !|*s)...ch|
|00001530| 6f 70 68 65 72 65 20 3d | 20 73 3b 0d 09 20 20 20 |ophere =| s;.. |
|00001540| 20 65 6c 73 65 20 69 66 | 20 28 63 68 6f 70 68 65 | else if| (chophe|
|00001550| 72 65 20 26 26 20 63 68 | 6f 70 68 65 72 65 20 3c |re && ch|ophere <|
|00001560| 20 73 20 26 26 20 2a 73 | 20 26 26 20 69 6e 64 65 | s && *s| && inde|
|00001570| 78 28 63 68 6f 70 73 65 | 74 2c 2a 73 29 29 0d 09 |x(chopse|t,*s))..|
|00001580| 09 63 68 6f 70 68 65 72 | 65 20 3d 20 73 3b 0d 09 |.chopher|e = s;..|
|00001590| 20 20 20 20 69 66 20 28 | 66 63 6d 64 2d 3e 66 5f | if (|fcmd->f_|
|000015a0| 66 6c 61 67 73 20 26 20 | 46 43 5f 43 48 4f 50 29 |flags & |FC_CHOP)|
|000015b0| 20 7b 0d 09 09 69 66 20 | 28 21 63 68 6f 70 68 65 | {...if |(!chophe|
|000015c0| 72 65 29 0d 09 09 20 20 | 20 20 63 68 6f 70 68 65 |re)... | chophe|
|000015d0| 72 65 20 3d 20 73 3b 0d | 09 09 73 69 7a 65 20 2b |re = s;.|..size +|
|000015e0| 3d 20 28 73 20 2d 20 63 | 68 6f 70 68 65 72 65 29 |= (s - c|hophere)|
|000015f0| 3b 0d 09 09 73 20 3d 20 | 63 68 6f 70 68 65 72 65 |;...s = |chophere|
|00001600| 3b 0d 09 09 77 68 69 6c | 65 20 28 2a 63 68 6f 70 |;...whil|e (*chop|
|00001610| 68 65 72 65 20 26 26 20 | 69 6e 64 65 78 28 63 68 |here && |index(ch|
|00001620| 6f 70 73 65 74 2c 2a 63 | 68 6f 70 68 65 72 65 29 |opset,*c|hophere)|
|00001630| 0d 09 09 20 20 26 26 20 | 69 73 53 50 41 43 45 28 |... && |isSPACE(|
|00001640| 2a 63 68 6f 70 68 65 72 | 65 29 29 0d 09 09 20 20 |*chopher|e))... |
|00001650| 20 20 63 68 6f 70 68 65 | 72 65 2b 2b 3b 0d 09 20 | chophe|re++;.. |
|00001660| 20 20 20 7d 0d 09 20 20 | 20 20 74 6d 70 63 68 61 | }.. | tmpcha|
|00001670| 72 20 3d 20 2a 73 3b 0d | 09 20 20 20 20 2a 73 20 |r = *s;.|. *s |
|00001680| 3d 20 27 5c 30 27 3b 0d | 09 20 20 20 20 77 68 69 |= '\0';.|. whi|
|00001690| 6c 65 20 28 73 69 7a 65 | 29 20 7b 0d 09 09 73 69 |le (size|) {...si|
|000016a0| 7a 65 2d 2d 3b 0d 09 09 | 2a 64 2b 2b 20 3d 20 27 |ze--;...|*d++ = '|
|000016b0| 20 27 3b 0d 09 20 20 20 | 20 7d 0d 09 20 20 20 20 | ';.. | }.. |
|000016c0| 73 69 7a 65 20 3d 20 73 | 20 2d 20 74 3b 0d 09 20 |size = s| - t;.. |
|000016d0| 20 20 20 43 6f 70 79 28 | 74 2c 64 2c 73 69 7a 65 | Copy(|t,d,size|
|000016e0| 2c 63 68 61 72 29 3b 0d | 09 20 20 20 20 64 20 2b |,char);.|. d +|
|000016f0| 3d 20 73 69 7a 65 3b 0d | 09 20 20 20 20 2a 73 20 |= size;.|. *s |
|00001700| 3d 20 74 6d 70 63 68 61 | 72 3b 0d 09 20 20 20 20 |= tmpcha|r;.. |
|00001710| 69 66 20 28 66 63 6d 64 | 2d 3e 66 5f 66 6c 61 67 |if (fcmd|->f_flag|
|00001720| 73 20 26 20 46 43 5f 43 | 48 4f 50 29 0d 09 09 73 |s & FC_C|HOP)...s|
|00001730| 74 72 5f 63 68 6f 70 28 | 73 74 72 2c 63 68 6f 70 |tr_chop(|str,chop|
|00001740| 68 65 72 65 29 3b 0d 09 | 20 20 20 20 62 72 65 61 |here);..| brea|
|00001750| 6b 3b 0d 09 63 61 73 65 | 20 46 5f 43 45 4e 54 45 |k;..case| F_CENTE|
|00001760| 52 3a 20 7b 0d 09 20 20 | 20 20 69 6e 74 20 68 61 |R: {.. | int ha|
|00001770| 6c 66 73 69 7a 65 3b 0d | 0d 09 20 20 20 20 28 76 |lfsize;.|.. (v|
|00001780| 6f 69 64 29 65 76 61 6c | 28 66 63 6d 64 2d 3e 66 |oid)eval|(fcmd->f|
|00001790| 5f 65 78 70 72 2c 47 5f | 53 43 41 4c 41 52 2c 73 |_expr,G_|SCALAR,s|
|000017a0| 70 29 3b 0d 09 20 20 20 | 20 73 74 72 20 3d 20 73 |p);.. | str = s|
|000017b0| 74 61 63 6b 2d 3e 61 72 | 79 5f 61 72 72 61 79 5b |tack->ar|y_array[|
|000017c0| 73 70 2b 31 5d 3b 0d 09 | 20 20 20 20 74 20 3d 20 |sp+1];..| t = |
|000017d0| 73 20 3d 20 73 74 72 5f | 67 65 74 28 73 74 72 29 |s = str_|get(str)|
|000017e0| 3b 0d 09 20 20 20 20 73 | 69 7a 65 20 3d 20 66 63 |;.. s|ize = fc|
|000017f0| 6d 64 2d 3e 66 5f 73 69 | 7a 65 3b 0d 09 20 20 20 |md->f_si|ze;.. |
|00001800| 20 43 48 4b 4c 45 4e 28 | 73 69 7a 65 29 3b 0d 09 | CHKLEN(|size);..|
|00001810| 20 20 20 20 63 68 6f 70 | 68 65 72 65 20 3d 20 4e | chop|here = N|
|00001820| 75 6c 6c 63 68 3b 0d 09 | 20 20 20 20 77 68 69 6c |ullch;..| whil|
|00001830| 65 20 28 73 69 7a 65 20 | 26 26 20 2a 73 20 26 26 |e (size |&& *s &&|
|00001840| 20 2a 73 20 21 3d 20 27 | 5c 6e 27 29 20 7b 0d 09 | *s != '|\n') {..|
|00001850| 09 69 66 20 28 2a 73 20 | 3d 3d 20 27 5c 74 27 29 |.if (*s |== '\t')|
|00001860| 0d 09 09 20 20 20 20 2a | 73 20 3d 20 27 20 27 3b |... *|s = ' ';|
|00001870| 0d 09 09 73 69 7a 65 2d | 2d 3b 0d 09 09 69 66 20 |...size-|-;...if |
|00001880| 28 2a 73 20 26 26 20 69 | 6e 64 65 78 28 63 68 6f |(*s && i|ndex(cho|
|00001890| 70 73 65 74 2c 2a 73 2b | 2b 29 29 0d 09 09 20 20 |pset,*s+|+))... |
|000018a0| 20 20 63 68 6f 70 68 65 | 72 65 20 3d 20 73 3b 0d | chophe|re = s;.|
|000018b0| 09 09 69 66 20 28 2a 73 | 20 3d 3d 20 27 5c 6e 27 |..if (*s| == '\n'|
|000018c0| 20 26 26 20 28 66 63 6d | 64 2d 3e 66 5f 66 6c 61 | && (fcm|d->f_fla|
|000018d0| 67 73 20 26 20 46 43 5f | 43 48 4f 50 29 29 0d 09 |gs & FC_|CHOP))..|
|000018e0| 09 20 20 20 20 2a 73 20 | 3d 20 27 20 27 3b 0d 09 |. *s |= ' ';..|
|000018f0| 20 20 20 20 7d 0d 09 20 | 20 20 20 69 66 20 28 73 | }.. | if (s|
|00001900| 69 7a 65 20 7c 7c 20 21 | 2a 73 29 0d 09 09 63 68 |ize || !|*s)...ch|
|00001910| 6f 70 68 65 72 65 20 3d | 20 73 3b 0d 09 20 20 20 |ophere =| s;.. |
|00001920| 20 65 6c 73 65 20 69 66 | 20 28 63 68 6f 70 68 65 | else if| (chophe|
|00001930| 72 65 20 26 26 20 63 68 | 6f 70 68 65 72 65 20 3c |re && ch|ophere <|
|00001940| 20 73 20 26 26 20 2a 73 | 20 26 26 20 69 6e 64 65 | s && *s| && inde|
|00001950| 78 28 63 68 6f 70 73 65 | 74 2c 2a 73 29 29 0d 09 |x(chopse|t,*s))..|
|00001960| 09 63 68 6f 70 68 65 72 | 65 20 3d 20 73 3b 0d 09 |.chopher|e = s;..|
|00001970| 20 20 20 20 69 66 20 28 | 66 63 6d 64 2d 3e 66 5f | if (|fcmd->f_|
|00001980| 66 6c 61 67 73 20 26 20 | 46 43 5f 43 48 4f 50 29 |flags & |FC_CHOP)|
|00001990| 20 7b 0d 09 09 69 66 20 | 28 21 63 68 6f 70 68 65 | {...if |(!chophe|
|000019a0| 72 65 29 0d 09 09 20 20 | 20 20 63 68 6f 70 68 65 |re)... | chophe|
|000019b0| 72 65 20 3d 20 73 3b 0d | 09 09 73 69 7a 65 20 2b |re = s;.|..size +|
|000019c0| 3d 20 28 73 20 2d 20 63 | 68 6f 70 68 65 72 65 29 |= (s - c|hophere)|
|000019d0| 3b 0d 09 09 73 20 3d 20 | 63 68 6f 70 68 65 72 65 |;...s = |chophere|
|000019e0| 3b 0d 09 09 77 68 69 6c | 65 20 28 2a 63 68 6f 70 |;...whil|e (*chop|
|000019f0| 68 65 72 65 20 26 26 20 | 69 6e 64 65 78 28 63 68 |here && |index(ch|
|00001a00| 6f 70 73 65 74 2c 2a 63 | 68 6f 70 68 65 72 65 29 |opset,*c|hophere)|
|00001a10| 0d 09 09 20 20 26 26 20 | 69 73 53 50 41 43 45 28 |... && |isSPACE(|
|00001a20| 2a 63 68 6f 70 68 65 72 | 65 29 29 0d 09 09 20 20 |*chopher|e))... |
|00001a30| 20 20 63 68 6f 70 68 65 | 72 65 2b 2b 3b 0d 09 20 | chophe|re++;.. |
|00001a40| 20 20 20 7d 0d 09 20 20 | 20 20 74 6d 70 63 68 61 | }.. | tmpcha|
|00001a50| 72 20 3d 20 2a 73 3b 0d | 09 20 20 20 20 2a 73 20 |r = *s;.|. *s |
|00001a60| 3d 20 27 5c 30 27 3b 0d | 09 20 20 20 20 68 61 6c |= '\0';.|. hal|
|00001a70| 66 73 69 7a 65 20 3d 20 | 73 69 7a 65 20 2f 20 32 |fsize = |size / 2|
|00001a80| 3b 0d 09 20 20 20 20 77 | 68 69 6c 65 20 28 73 69 |;.. w|hile (si|
|00001a90| 7a 65 20 3e 20 68 61 6c | 66 73 69 7a 65 29 20 7b |ze > hal|fsize) {|
|00001aa0| 0d 09 09 73 69 7a 65 2d | 2d 3b 0d 09 09 2a 64 2b |...size-|-;...*d+|
|00001ab0| 2b 20 3d 20 27 20 27 3b | 0d 09 20 20 20 20 7d 0d |+ = ' ';|.. }.|
|00001ac0| 09 20 20 20 20 73 69 7a | 65 20 3d 20 73 20 2d 20 |. siz|e = s - |
|00001ad0| 74 3b 0d 09 20 20 20 20 | 43 6f 70 79 28 74 2c 64 |t;.. |Copy(t,d|
|00001ae0| 2c 73 69 7a 65 2c 63 68 | 61 72 29 3b 0d 09 20 20 |,size,ch|ar);.. |
|00001af0| 20 20 64 20 2b 3d 20 73 | 69 7a 65 3b 0d 09 20 20 | d += s|ize;.. |
|00001b00| 20 20 2a 73 20 3d 20 74 | 6d 70 63 68 61 72 3b 0d | *s = t|mpchar;.|
|00001b10| 09 20 20 20 20 69 66 20 | 28 66 63 6d 64 2d 3e 66 |. if |(fcmd->f|
|00001b20| 5f 6e 65 78 74 20 26 26 | 20 66 63 6d 64 2d 3e 66 |_next &&| fcmd->f|
|00001b30| 5f 6e 65 78 74 2d 3e 66 | 5f 70 72 65 5b 30 5d 20 |_next->f|_pre[0] |
|00001b40| 3d 3d 20 27 5c 6e 27 29 | 0d 09 09 73 69 7a 65 20 |== '\n')|...size |
|00001b50| 3d 20 30 3b 09 09 09 2f | 2a 20 6e 6f 20 73 70 61 |= 0;.../|* no spa|
|00001b60| 63 65 73 20 62 65 66 6f | 72 65 20 6e 65 77 6c 69 |ces befo|re newli|
|00001b70| 6e 65 20 2a 2f 0d 09 20 | 20 20 20 65 6c 73 65 0d |ne */.. | else.|
|00001b80| 09 09 73 69 7a 65 20 3d | 20 68 61 6c 66 73 69 7a |..size =| halfsiz|
|00001b90| 65 3b 0d 09 20 20 20 20 | 77 68 69 6c 65 20 28 73 |e;.. |while (s|
|00001ba0| 69 7a 65 29 20 7b 0d 09 | 09 73 69 7a 65 2d 2d 3b |ize) {..|.size--;|
|00001bb0| 0d 09 09 2a 64 2b 2b 20 | 3d 20 27 20 27 3b 0d 09 |...*d++ |= ' ';..|
|00001bc0| 20 20 20 20 7d 0d 09 20 | 20 20 20 69 66 20 28 66 | }.. | if (f|
|00001bd0| 63 6d 64 2d 3e 66 5f 66 | 6c 61 67 73 20 26 20 46 |cmd->f_f|lags & F|
|00001be0| 43 5f 43 48 4f 50 29 0d | 09 09 73 74 72 5f 63 68 |C_CHOP).|..str_ch|
|00001bf0| 6f 70 28 73 74 72 2c 63 | 68 6f 70 68 65 72 65 29 |op(str,c|hophere)|
|00001c00| 3b 0d 09 20 20 20 20 62 | 72 65 61 6b 3b 0d 09 7d |;.. b|reak;..}|
|00001c10| 0d 09 63 61 73 65 20 46 | 5f 4c 49 4e 45 53 3a 0d |..case F|_LINES:.|
|00001c20| 09 20 20 20 20 28 76 6f | 69 64 29 65 76 61 6c 28 |. (vo|id)eval(|
|00001c30| 66 63 6d 64 2d 3e 66 5f | 65 78 70 72 2c 47 5f 53 |fcmd->f_|expr,G_S|
|00001c40| 43 41 4c 41 52 2c 73 70 | 29 3b 0d 09 20 20 20 20 |CALAR,sp|);.. |
|00001c50| 73 74 72 20 3d 20 73 74 | 61 63 6b 2d 3e 61 72 79 |str = st|ack->ary|
|00001c60| 5f 61 72 72 61 79 5b 73 | 70 2b 31 5d 3b 0d 09 20 |_array[s|p+1];.. |
|00001c70| 20 20 20 73 20 3d 20 73 | 74 72 5f 67 65 74 28 73 | s = s|tr_get(s|
|00001c80| 74 72 29 3b 0d 09 20 20 | 20 20 73 69 7a 65 20 3d |tr);.. | size =|
|00001c90| 20 73 74 72 5f 6c 65 6e | 28 73 74 72 29 3b 0d 09 | str_len|(str);..|
|00001ca0| 20 20 20 20 43 48 4b 4c | 45 4e 28 73 69 7a 65 2b | CHKL|EN(size+|
|00001cb0| 31 29 3b 0d 09 20 20 20 | 20 6f 72 65 63 2d 3e 6f |1);.. | orec->o|
|00001cc0| 5f 6c 69 6e 65 73 20 2b | 3d 20 63 6f 75 6e 74 6c |_lines +|= countl|
|00001cd0| 69 6e 65 73 28 73 2c 73 | 69 7a 65 29 20 2d 20 31 |ines(s,s|ize) - 1|
|00001ce0| 3b 0d 09 20 20 20 20 43 | 6f 70 79 28 73 2c 64 2c |;.. C|opy(s,d,|
|00001cf0| 73 69 7a 65 2c 63 68 61 | 72 29 3b 0d 09 20 20 20 |size,cha|r);.. |
|00001d00| 20 64 20 2b 3d 20 73 69 | 7a 65 3b 0d 09 20 20 20 | d += si|ze;.. |
|00001d10| 20 69 66 20 28 73 69 7a | 65 20 26 26 20 73 5b 73 | if (siz|e && s[s|
|00001d20| 69 7a 65 2d 31 5d 20 21 | 3d 20 27 5c 6e 27 29 20 |ize-1] !|= '\n') |
|00001d30| 7b 0d 09 09 2a 64 2b 2b | 20 3d 20 27 5c 6e 27 3b |{...*d++| = '\n';|
|00001d40| 0d 09 09 6f 72 65 63 2d | 3e 6f 5f 6c 69 6e 65 73 |...orec-|>o_lines|
|00001d50| 2b 2b 3b 0d 09 20 20 20 | 20 7d 0d 09 20 20 20 20 |++;.. | }.. |
|00001d60| 6c 69 6e 65 62 65 67 20 | 3d 20 66 63 6d 64 2d 3e |linebeg |= fcmd->|
|00001d70| 66 5f 6e 65 78 74 3b 0d | 09 20 20 20 20 62 72 65 |f_next;.|. bre|
|00001d80| 61 6b 3b 0d 09 63 61 73 | 65 20 46 5f 44 45 43 49 |ak;..cas|e F_DECI|
|00001d90| 4d 41 4c 3a 20 7b 0d 09 | 20 20 20 20 64 6f 75 62 |MAL: {..| doub|
|00001da0| 6c 65 20 76 61 6c 75 65 | 3b 0d 0d 09 20 20 20 20 |le value|;... |
|00001db0| 28 76 6f 69 64 29 65 76 | 61 6c 28 66 63 6d 64 2d |(void)ev|al(fcmd-|
|00001dc0| 3e 66 5f 65 78 70 72 2c | 47 5f 53 43 41 4c 41 52 |>f_expr,|G_SCALAR|
|00001dd0| 2c 73 70 29 3b 0d 09 20 | 20 20 20 73 74 72 20 3d |,sp);.. | str =|
|00001de0| 20 73 74 61 63 6b 2d 3e | 61 72 79 5f 61 72 72 61 | stack->|ary_arra|
|00001df0| 79 5b 73 70 2b 31 5d 3b | 0d 09 20 20 20 20 73 69 |y[sp+1];|.. si|
|00001e00| 7a 65 20 3d 20 66 63 6d | 64 2d 3e 66 5f 73 69 7a |ze = fcm|d->f_siz|
|00001e10| 65 3b 0d 09 20 20 20 20 | 43 48 4b 4c 45 4e 28 73 |e;.. |CHKLEN(s|
|00001e20| 69 7a 65 2b 31 29 3b 0d | 09 20 20 20 20 2f 2a 20 |ize+1);.|. /* |
|00001e30| 49 66 20 74 68 65 20 66 | 69 65 6c 64 20 69 73 20 |If the f|ield is |
|00001e40| 6d 61 72 6b 65 64 20 77 | 69 74 68 20 5e 20 61 6e |marked w|ith ^ an|
|00001e50| 64 20 74 68 65 20 76 61 | 6c 75 65 20 69 73 20 75 |d the va|lue is u|
|00001e60| 6e 64 65 66 69 6e 65 64 | 2c 0d 09 20 20 20 20 20 |ndefined|,.. |
|00001e70| 20 20 62 6c 61 6e 6b 20 | 69 74 20 6f 75 74 2e 20 | blank |it out. |
|00001e80| 2a 2f 0d 09 20 20 20 20 | 69 66 20 28 28 66 63 6d |*/.. |if ((fcm|
|00001e90| 64 2d 3e 66 5f 66 6c 61 | 67 73 20 26 20 46 43 5f |d->f_fla|gs & FC_|
|00001ea0| 43 48 4f 50 29 20 26 26 | 20 21 73 74 72 2d 3e 73 |CHOP) &&| !str->s|
|00001eb0| 74 72 5f 70 6f 6b 20 26 | 26 20 21 73 74 72 2d 3e |tr_pok &|& !str->|
|00001ec0| 73 74 72 5f 6e 6f 6b 29 | 20 7b 0d 09 09 77 68 69 |str_nok)| {...whi|
|00001ed0| 6c 65 20 28 73 69 7a 65 | 29 20 7b 0d 09 09 20 20 |le (size|) {... |
|00001ee0| 20 20 73 69 7a 65 2d 2d | 3b 0d 09 09 20 20 20 20 | size--|;... |
|00001ef0| 2a 64 2b 2b 20 3d 20 27 | 20 27 3b 0d 09 09 7d 0d |*d++ = '| ';...}.|
|00001f00| 09 09 62 72 65 61 6b 3b | 0d 09 20 20 20 20 7d 0d |..break;|.. }.|
|00001f10| 09 20 20 20 20 76 61 6c | 75 65 20 3d 20 73 74 72 |. val|ue = str|
|00001f20| 5f 67 6e 75 6d 28 73 74 | 72 29 3b 0d 09 20 20 20 |_gnum(st|r);.. |
|00001f30| 20 69 66 20 28 66 63 6d | 64 2d 3e 66 5f 66 6c 61 | if (fcm|d->f_fla|
|00001f40| 67 73 20 26 20 46 43 5f | 44 50 29 20 7b 0d 09 09 |gs & FC_|DP) {...|
|00001f50| 73 70 72 69 6e 74 66 28 | 64 2c 20 22 25 23 2a 2e |sprintf(|d, "%#*.|
|00001f60| 2a 66 22 2c 20 73 69 7a | 65 2c 20 66 63 6d 64 2d |*f", siz|e, fcmd-|
|00001f70| 3e 66 5f 64 65 63 69 6d | 61 6c 73 2c 20 76 61 6c |>f_decim|als, val|
|00001f80| 75 65 29 3b 0d 09 20 20 | 20 20 7d 20 65 6c 73 65 |ue);.. | } else|
|00001f90| 20 7b 0d 09 09 73 70 72 | 69 6e 74 66 28 64 2c 20 | {...spr|intf(d, |
|00001fa0| 22 25 2a 2e 30 66 22 2c | 20 73 69 7a 65 2c 20 76 |"%*.0f",| size, v|
|00001fb0| 61 6c 75 65 29 3b 0d 09 | 20 20 20 20 7d 0d 09 20 |alue);..| }.. |
|00001fc0| 20 20 20 64 20 2b 3d 20 | 73 69 7a 65 3b 0d 09 20 | d += |size;.. |
|00001fd0| 20 20 20 62 72 65 61 6b | 3b 0d 09 7d 0d 09 7d 0d | break|;..}..}.|
|00001fe0| 20 20 20 20 7d 0d 20 20 | 20 20 43 48 4b 4c 45 4e | }. | CHKLEN|
|00001ff0| 28 31 29 3b 0d 20 20 20 | 20 2a 64 2b 2b 20 3d 20 |(1);. | *d++ = |
|00002000| 27 5c 30 27 3b 0d 7d 0d | 0d 73 74 61 74 69 63 20 |'\0';.}.|.static |
|00002010| 69 6e 74 0d 63 6f 75 6e | 74 6c 69 6e 65 73 28 73 |int.coun|tlines(s|
|00002020| 2c 73 69 7a 65 29 0d 72 | 65 67 69 73 74 65 72 20 |,size).r|egister |
|00002030| 63 68 61 72 20 2a 73 3b | 0d 72 65 67 69 73 74 65 |char *s;|.registe|
|00002040| 72 20 69 6e 74 20 73 69 | 7a 65 3b 0d 7b 0d 20 20 |r int si|ze;.{. |
|00002050| 20 20 72 65 67 69 73 74 | 65 72 20 69 6e 74 20 63 | regist|er int c|
|00002060| 6f 75 6e 74 20 3d 20 30 | 3b 0d 0d 20 20 20 20 77 |ount = 0|;.. w|
|00002070| 68 69 6c 65 20 28 73 69 | 7a 65 2d 2d 29 20 7b 0d |hile (si|ze--) {.|
|00002080| 09 69 66 20 28 2a 73 2b | 2b 20 3d 3d 20 27 5c 6e |.if (*s+|+ == '\n|
|00002090| 27 29 0d 09 20 20 20 20 | 63 6f 75 6e 74 2b 2b 3b |').. |count++;|
|000020a0| 0d 20 20 20 20 7d 0d 20 | 20 20 20 72 65 74 75 72 |. }. | retur|
|000020b0| 6e 20 63 6f 75 6e 74 3b | 0d 7d 0d 0d 76 6f 69 64 |n count;|.}..void|
|000020c0| 0d 64 6f 5f 77 72 69 74 | 65 28 6f 72 65 63 2c 73 |.do_writ|e(orec,s|
|000020d0| 74 61 62 2c 73 70 29 0d | 73 74 72 75 63 74 20 6f |tab,sp).|struct o|
|000020e0| 75 74 72 65 63 20 2a 6f | 72 65 63 3b 0d 53 54 41 |utrec *o|rec;.STA|
|000020f0| 42 20 2a 73 74 61 62 3b | 0d 69 6e 74 20 73 70 3b |B *stab;|.int sp;|
|00002100| 0d 7b 0d 20 20 20 20 72 | 65 67 69 73 74 65 72 20 |.{. r|egister |
|00002110| 53 54 49 4f 20 2a 73 74 | 69 6f 20 3d 20 73 74 61 |STIO *st|io = sta|
|00002120| 62 5f 69 6f 28 73 74 61 | 62 29 3b 0d 20 20 20 20 |b_io(sta|b);. |
|00002130| 46 49 4c 45 20 2a 6f 66 | 70 20 3d 20 73 74 69 6f |FILE *of|p = stio|
|00002140| 2d 3e 6f 66 70 3b 0d 0d | 23 69 66 64 65 66 20 44 |->ofp;..|#ifdef D|
|00002150| 45 42 55 47 47 49 4e 47 | 0d 20 20 20 20 69 66 20 |EBUGGING|. if |
|00002160| 28 64 65 62 75 67 20 26 | 20 32 35 36 29 0d 09 66 |(debug &| 256)..f|
|00002170| 70 72 69 6e 74 66 28 73 | 74 64 65 72 72 2c 22 6c |printf(s|tderr,"l|
|00002180| 65 66 74 3d 25 6c 64 2c | 20 74 6f 64 6f 3d 25 6c |eft=%ld,| todo=%l|
|00002190| 64 5c 6e 22 2c 0d 09 20 | 20 28 6c 6f 6e 67 29 73 |d\n",.. | (long)s|
|000021a0| 74 69 6f 2d 3e 6c 69 6e | 65 73 5f 6c 65 66 74 2c |tio->lin|es_left,|
|000021b0| 20 28 6c 6f 6e 67 29 6f | 72 65 63 2d 3e 6f 5f 6c | (long)o|rec->o_l|
|000021c0| 69 6e 65 73 29 3b 0d 23 | 65 6e 64 69 66 0d 20 20 |ines);.#|endif. |
|000021d0| 20 20 69 66 20 28 73 74 | 69 6f 2d 3e 6c 69 6e 65 | if (st|io->line|
|000021e0| 73 5f 6c 65 66 74 20 3c | 20 6f 72 65 63 2d 3e 6f |s_left <| orec->o|
|000021f0| 5f 6c 69 6e 65 73 29 20 | 7b 0d 09 69 66 20 28 21 |_lines) |{..if (!|
|00002200| 73 74 69 6f 2d 3e 74 6f | 70 5f 73 74 61 62 29 20 |stio->to|p_stab) |
|00002210| 7b 0d 09 20 20 20 20 53 | 54 41 42 20 2a 74 6f 70 |{.. S|TAB *top|
|00002220| 73 74 61 62 3b 0d 09 20 | 20 20 20 63 68 61 72 20 |stab;.. | char |
|00002230| 74 6d 70 62 75 66 5b 32 | 35 36 5d 3b 0d 0d 09 20 |tmpbuf[2|56];... |
|00002240| 20 20 20 69 66 20 28 21 | 73 74 69 6f 2d 3e 74 6f | if (!|stio->to|
|00002250| 70 5f 6e 61 6d 65 29 20 | 7b 0d 09 09 69 66 20 28 |p_name) |{...if (|
|00002260| 21 73 74 69 6f 2d 3e 66 | 6d 74 5f 6e 61 6d 65 29 |!stio->f|mt_name)|
|00002270| 0d 09 09 20 20 20 20 73 | 74 69 6f 2d 3e 66 6d 74 |... s|tio->fmt|
|00002280| 5f 6e 61 6d 65 20 3d 20 | 73 61 76 65 73 74 72 28 |_name = |savestr(|
|00002290| 73 74 61 62 5f 6e 61 6d | 65 28 73 74 61 62 29 29 |stab_nam|e(stab))|
|000022a0| 3b 0d 09 09 73 70 72 69 | 6e 74 66 28 74 6d 70 62 |;...spri|ntf(tmpb|
|000022b0| 75 66 2c 20 22 25 73 5f | 54 4f 50 22 2c 20 73 74 |uf, "%s_|TOP", st|
|000022c0| 69 6f 2d 3e 66 6d 74 5f | 6e 61 6d 65 29 3b 0d 09 |io->fmt_|name);..|
|000022d0| 09 74 6f 70 73 74 61 62 | 20 3d 20 73 74 61 62 65 |.topstab| = stabe|
|000022e0| 6e 74 28 74 6d 70 62 75 | 66 2c 46 41 4c 53 45 29 |nt(tmpbu|f,FALSE)|
|000022f0| 3b 0d 09 09 69 66 20 28 | 74 6f 70 73 74 61 62 20 |;...if (|topstab |
|00002300| 26 26 20 73 74 61 62 5f | 66 6f 72 6d 28 74 6f 70 |&& stab_|form(top|
|00002310| 73 74 61 62 29 29 0d 09 | 09 20 20 20 20 73 74 69 |stab))..|. sti|
|00002320| 6f 2d 3e 74 6f 70 5f 6e | 61 6d 65 20 3d 20 73 61 |o->top_n|ame = sa|
|00002330| 76 65 73 74 72 28 74 6d | 70 62 75 66 29 3b 0d 09 |vestr(tm|pbuf);..|
|00002340| 09 65 6c 73 65 0d 09 09 | 20 20 20 20 73 74 69 6f |.else...| stio|
|00002350| 2d 3e 74 6f 70 5f 6e 61 | 6d 65 20 3d 20 73 61 76 |->top_na|me = sav|
|00002360| 65 73 74 72 28 22 74 6f | 70 22 29 3b 0d 09 20 20 |estr("to|p");.. |
|00002370| 20 20 7d 0d 09 20 20 20 | 20 74 6f 70 73 74 61 62 | }.. | topstab|
|00002380| 20 3d 20 73 74 61 62 65 | 6e 74 28 73 74 69 6f 2d | = stabe|nt(stio-|
|00002390| 3e 74 6f 70 5f 6e 61 6d | 65 2c 46 41 4c 53 45 29 |>top_nam|e,FALSE)|
|000023a0| 3b 0d 09 20 20 20 20 69 | 66 20 28 21 74 6f 70 73 |;.. i|f (!tops|
|000023b0| 74 61 62 20 7c 7c 20 21 | 73 74 61 62 5f 66 6f 72 |tab || !|stab_for|
|000023c0| 6d 28 74 6f 70 73 74 61 | 62 29 29 20 7b 0d 09 09 |m(topsta|b)) {...|
|000023d0| 73 74 69 6f 2d 3e 6c 69 | 6e 65 73 5f 6c 65 66 74 |stio->li|nes_left|
|000023e0| 20 3d 20 31 30 30 30 30 | 30 30 30 30 3b 0d 09 09 | = 10000|0000;...|
|000023f0| 67 6f 74 6f 20 66 6f 72 | 67 65 74 5f 74 6f 70 3b |goto for|get_top;|
|00002400| 0d 09 20 20 20 20 7d 0d | 09 20 20 20 20 73 74 69 |.. }.|. sti|
|00002410| 6f 2d 3e 74 6f 70 5f 73 | 74 61 62 20 3d 20 74 6f |o->top_s|tab = to|
|00002420| 70 73 74 61 62 3b 0d 09 | 7d 0d 09 69 66 20 28 73 |pstab;..|}..if (s|
|00002430| 74 69 6f 2d 3e 6c 69 6e | 65 73 5f 6c 65 66 74 20 |tio->lin|es_left |
|00002440| 3e 3d 20 30 20 26 26 20 | 73 74 69 6f 2d 3e 70 61 |>= 0 && |stio->pa|
|00002450| 67 65 20 3e 20 30 29 0d | 09 20 20 20 20 66 77 72 |ge > 0).|. fwr|
|00002460| 69 74 65 28 66 6f 72 6d | 66 65 65 64 2d 3e 73 74 |ite(form|feed->st|
|00002470| 72 5f 70 74 72 2c 20 66 | 6f 72 6d 66 65 65 64 2d |r_ptr, f|ormfeed-|
|00002480| 3e 73 74 72 5f 63 75 72 | 2c 20 31 2c 20 6f 66 70 |>str_cur|, 1, ofp|
|00002490| 29 3b 0d 09 73 74 69 6f | 2d 3e 6c 69 6e 65 73 5f |);..stio|->lines_|
|000024a0| 6c 65 66 74 20 3d 20 73 | 74 69 6f 2d 3e 70 61 67 |left = s|tio->pag|
|000024b0| 65 5f 6c 65 6e 3b 0d 09 | 73 74 69 6f 2d 3e 70 61 |e_len;..|stio->pa|
|000024c0| 67 65 2b 2b 3b 0d 09 66 | 6f 72 6d 61 74 28 26 74 |ge++;..f|ormat(&t|
|000024d0| 6f 70 72 65 63 2c 73 74 | 61 62 5f 66 6f 72 6d 28 |oprec,st|ab_form(|
|000024e0| 73 74 69 6f 2d 3e 74 6f | 70 5f 73 74 61 62 29 2c |stio->to|p_stab),|
|000024f0| 73 70 29 3b 0d 09 66 70 | 75 74 73 28 74 6f 70 72 |sp);..fp|uts(topr|
|00002500| 65 63 2e 6f 5f 73 74 72 | 2c 6f 66 70 29 3b 0d 09 |ec.o_str|,ofp);..|
|00002510| 73 74 69 6f 2d 3e 6c 69 | 6e 65 73 5f 6c 65 66 74 |stio->li|nes_left|
|00002520| 20 2d 3d 20 74 6f 70 72 | 65 63 2e 6f 5f 6c 69 6e | -= topr|ec.o_lin|
|00002530| 65 73 3b 0d 20 20 20 20 | 7d 0d 20 20 66 6f 72 67 |es;. |}. forg|
|00002540| 65 74 5f 74 6f 70 3a 0d | 20 20 20 20 66 70 75 74 |et_top:.| fput|
|00002550| 73 28 6f 72 65 63 2d 3e | 6f 5f 73 74 72 2c 6f 66 |s(orec->|o_str,of|
|00002560| 70 29 3b 0d 20 20 20 20 | 73 74 69 6f 2d 3e 6c 69 |p);. |stio->li|
|00002570| 6e 65 73 5f 6c 65 66 74 | 20 2d 3d 20 6f 72 65 63 |nes_left| -= orec|
|00002580| 2d 3e 6f 5f 6c 69 6e 65 | 73 3b 0d 7d 0d 00 00 00 |->o_line|s;.}....|
|00002590| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000025a0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000025b0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000025c0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000025d0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000025e0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000025f0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00002600| 00 00 01 00 00 00 01 6e | 00 00 00 6e 00 00 00 3e |.......n|...n...>|
|00002610| 6d 65 20 3d 3d 20 47 5f | 41 52 52 41 59 29 20 7b |me == G_|ARRAY) {|
|00002620| 09 09 2f 2a 20 69 74 27 | 73 20 61 20 72 61 6e 67 |../* it'|s a rang|
|00002630| 06 66 6f 72 6d 2e 63 da | 02 00 00 00 54 45 58 54 |.form.c.|....TEXT|
|00002640| 4d 50 53 20 00 00 00 d0 | 00 40 00 00 00 00 75 0d |MPS ....|.@....u.|
|00002650| 00 00 54 45 58 54 4d 50 | 53 20 00 00 00 d0 00 40 |..TEXTMP|S .....@|
|00002660| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00002670| 00 00 a6 ea b2 92 00 00 | 25 0d 00 00 01 ac 5f 4d |........|%....._M|
|00002680| 41 53 4b 29 20 3d 3d 20 | 41 5f 53 49 4e 47 4c 45 |ASK) == |A_SINGLE|
|00002690| 20 26 26 0d 09 09 20 20 | 28 65 64 2d 3e 61 72 67 | &&... |(ed->arg|
|000026a0| 5b 32 5d 2e 61 72 67 5f | 74 79 70 65 20 26 20 41 |[2].arg_|type & A|
|000026b0| 5f 4d 41 53 4b 29 20 3d | 3d 20 41 5f 53 49 4e 47 |_MASK) =|= A_SING|
|000026c0| 4c 45 29 20 7b 0d 09 09 | 65 64 2d 3e 73 74 5b 32 |LE) {...|ed->st[2|
|000026d0| 5d 20 3d 20 65 64 2d 3e | 61 72 67 5b 32 5d 2e 61 |] = ed->|arg[2].a|
|000026e0| 72 67 5f 70 74 72 2e 61 | 72 67 5f 73 74 72 3b 0d |rg_ptr.a|rg_str;.|
|000026f0| 09 09 65 64 2d 3e 73 70 | 20 3d 20 64 6f 5f 72 61 |..ed->sp| = do_ra|
|00002700| 00 00 00 48 00 09 4d 6f | 6e 61 63 6f 00 30 36 2f |...H..Mo|naco.06/|
|00002710| 30 38 20 31 33 3a 32 31 | 3a 34 32 20 24 0d 20 2a |08 13:21|:42 $. *|
|00002720| 0d 20 2a 20 20 20 00 06 | 00 08 00 64 00 1c 01 dd |. * ..|...d....|
|00002730| 02 3d 00 64 00 1c 01 dd | 02 3d a6 ea c6 1d 00 00 |.=.d....|.=......|
|00002740| 24 13 00 00 24 13 00 00 | 22 4f 01 00 00 00 00 1e |$...$...|"O......|
|00002750| 00 64 00 1c 01 dd 02 3d | 00 64 00 1c 01 dd 02 3d |.d.....=|.d.....=|
|00002760| 00 00 22 4f 00 00 00 00 | 00 00 00 00 00 00 00 00 |.."O....|........|
|00002770| 01 00 00 00 01 6e 00 00 | 00 6e 00 00 00 3e 00 51 |.....n..|.n...>.Q|
|00002780| 62 20 09 8e 00 00 00 1c | 00 3e 00 00 4d 50 53 52 |b ......|.>..MPSR|
|00002790| 00 01 00 0a 03 ed ff ff | 00 00 00 00 00 00 00 00 |........|........|
|000027a0| 03 f0 ff ff 00 00 00 4c | 00 57 95 1c 00 00 00 00 |.......L|.W......|
|000027b0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000027c0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000027d0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000027e0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000027f0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
+--------+-------------------------+-------------------------+--------+--------+