home *** CD-ROM | disk | FTP | other *** search
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: part01
Confidence | Program | Detection | Match Type | Support
|
---|
100%
| dexvert
| SHell self-extracting ARchive (archive/shar)
| magic
| Supported |
1%
| dexvert
| Text File (text/txt)
| fallback
| Supported |
100%
| file
| ASCII text
| default
| |
100%
| checkBytes
| Printable ASCII
| default
| |
100%
| perlTextCheck
| Likely Text (Perl)
| default
| |
100%
| siegfried
| fmt/329 Shell Archive Format
| default
| |
100%
| detectItEasy
| Format: plain text[LF]
| default (weak)
|
|
hex view+--------+-------------------------+-------------------------+--------+--------+
|00000000| 4e 65 77 73 67 72 6f 75 | 70 73 3a 20 63 6f 6d 70 |Newsgrou|ps: comp|
|00000010| 2e 73 6f 75 72 63 65 73 | 2e 6d 69 73 63 0a 73 75 |.sources|.misc.su|
|00000020| 62 6a 65 63 74 3a 20 76 | 31 31 69 30 32 34 3a 20 |bject: v|11i024: |
|00000030| 61 6e 6f 74 68 65 72 20 | 6d 65 6e 75 20 70 72 6f |another |menu pro|
|00000040| 67 0a 46 72 6f 6d 3a 20 | 6d 69 6b 65 40 6d 69 6c |g.From: |mike@mil|
|00000050| 68 6f 77 32 2e 55 55 43 | 50 20 28 4d 69 6b 65 20 |how2.UUC|P (Mike |
|00000060| 48 6f 77 61 72 64 29 0a | 53 65 6e 64 65 72 3a 20 |Howard).|Sender: |
|00000070| 61 6c 6c 62 65 72 79 40 | 75 75 6e 65 74 2e 55 55 |allbery@|uunet.UU|
|00000080| 2e 4e 45 54 20 28 42 72 | 61 6e 64 6f 6e 20 53 2e |.NET (Br|andon S.|
|00000090| 20 41 6c 6c 62 65 72 79 | 20 2d 20 63 6f 6d 70 2e | Allbery| - comp.|
|000000a0| 73 6f 75 72 63 65 73 2e | 6d 69 73 63 29 0a 0a 50 |sources.|misc)..P|
|000000b0| 6f 73 74 69 6e 67 2d 6e | 75 6d 62 65 72 3a 20 56 |osting-n|umber: V|
|000000c0| 6f 6c 75 6d 65 20 31 31 | 2c 20 49 73 73 75 65 20 |olume 11|, Issue |
|000000d0| 32 34 0a 53 75 62 6d 69 | 74 74 65 64 2d 62 79 3a |24.Submi|tted-by:|
|000000e0| 20 6d 69 6b 65 40 6d 69 | 6c 68 6f 77 32 2e 55 55 | mike@mi|lhow2.UU|
|000000f0| 43 50 20 28 4d 69 6b 65 | 20 48 6f 77 61 72 64 29 |CP (Mike| Howard)|
|00000100| 0a 41 72 63 68 69 76 65 | 2d 6e 61 6d 65 3a 20 6d |.Archive|-name: m|
|00000110| 65 6e 75 5f 6d 68 2f 70 | 61 72 74 30 31 0a 0a 20 |enu_mh/p|art01.. |
|00000120| 20 64 75 6d 62 5f 6d 65 | 6e 75 20 2d 20 65 78 65 | dumb_me|nu - exe|
|00000130| 63 75 74 65 73 20 61 20 | 73 69 6d 70 6c 65 20 6d |cutes a |simple m|
|00000140| 69 6e 64 65 64 20 6d 65 | 6e 75 0a 0a 20 20 54 68 |inded me|nu.. Th|
|00000150| 65 6f 72 79 20 6f 66 20 | 6f 70 65 72 61 74 69 6f |eory of |operatio|
|00000160| 6e 3a 20 54 68 65 20 70 | 72 6f 67 72 61 6d 20 72 |n: The p|rogram r|
|00000170| 65 61 64 73 20 61 6e 64 | 20 70 61 72 73 65 73 20 |eads and| parses |
|00000180| 61 20 6d 65 6e 75 0a 20 | 20 64 65 66 69 6e 69 74 |a menu. | definit|
|00000190| 69 6f 6e 20 66 69 6c 65 | 20 61 6e 64 20 74 68 65 |ion file| and the|
|000001a0| 6e 20 6c 6f 6f 70 73 20 | 75 6e 74 69 6c 20 74 68 |n loops |until th|
|000001b0| 65 20 75 73 65 72 20 71 | 75 69 74 73 2e 20 20 4d |e user q|uits. M|
|000001c0| 65 6e 75 73 0a 20 20 61 | 72 65 20 6e 6f 74 20 70 |enus. a|re not p|
|000001d0| 72 65 74 74 79 20 2d 20 | 73 69 6d 70 6c 79 20 6e |retty - |simply n|
|000001e0| 75 6d 62 65 72 65 64 20 | 6f 70 74 69 6f 6e 73 20 |umbered |options |
|000001f0| 77 69 74 68 20 51 20 66 | 6f 72 20 71 75 69 74 20 |with Q f|or quit |
|00000200| 74 6f 0a 20 20 65 78 69 | 74 2e 0a 0a 20 20 54 68 |to. exi|t... Th|
|00000210| 65 20 6d 65 6e 75 20 64 | 65 66 69 6e 69 74 69 6f |e menu d|efinitio|
|00000220| 6e 20 66 69 6c 65 20 63 | 6f 6e 73 69 73 74 73 20 |n file c|onsists |
|00000230| 6f 66 20 61 20 74 69 74 | 6c 65 20 73 74 61 74 65 |of a tit|le state|
|00000240| 6d 65 6e 74 0a 20 20 66 | 6f 6c 6c 6f 77 65 64 20 |ment. f|ollowed |
|00000250| 62 79 20 7a 65 72 6f 20 | 6f 72 20 6d 6f 72 65 20 |by zero |or more |
|00000260| 6f 70 74 69 6f 6e 73 20 | 66 6f 6c 6c 6f 77 65 64 |options |followed|
|00000270| 20 62 79 20 6f 6e 65 20 | 6f 72 20 69 74 65 6d 0a | by one |or item.|
|00000280| 20 20 64 65 66 69 6e 69 | 74 69 6f 6e 73 2e 0a 0a | defini|tions...|
|00000290| 0a 20 20 20 20 20 20 20 | 74 69 74 6c 65 20 7b 20 |. |title { |
|000002a0| 74 68 69 73 20 69 73 20 | 61 20 54 69 74 6c 65 20 |this is |a Title |
|000002b0| 7d 0a 0a 20 20 20 20 20 | 20 20 62 6f 6c 64 20 63 |}.. | bold c|
|000002c0| 6c 65 61 72 20 61 6c 77 | 61 79 73 2d 73 68 6f 77 |lear alw|ays-show|
|000002d0| 0a 0a 20 20 20 20 20 20 | 20 69 74 65 6d 20 7b 20 |.. | item { |
|000002e0| 74 68 69 73 20 69 73 20 | 61 20 70 72 6f 6d 70 74 |this is |a prompt|
|000002f0| 20 7d 20 7b 20 65 63 68 | 6f 20 22 24 46 4f 4f 20 | } { ech|o "$FOO |
|00000300| 24 42 41 52 22 20 7d 0a | 20 20 20 20 20 20 20 70 |$BAR" }.| p|
|00000310| 61 72 6d 20 22 46 4f 4f | 22 20 7b 20 70 72 6f 6d |arm "FOO|" { prom|
|00000320| 70 74 20 66 6f 72 20 46 | 4f 4f 20 7d 0a 20 20 20 |pt for F|OO }. |
|00000330| 20 20 20 20 70 61 72 6d | 20 22 42 41 52 22 20 7b | parm| "BAR" {|
|00000340| 20 70 72 6f 6d 70 74 20 | 66 6f 72 20 42 41 52 20 | prompt |for BAR |
|00000350| 7d 0a 20 20 20 20 20 20 | 20 3b 0a 0a 4d 69 6b 65 |}. | ;..Mike|
|00000360| 20 48 6f 77 61 72 64 0a | 68 6f 77 40 6d 69 6c 68 | Howard.|how@milh|
|00000370| 6f 77 31 2e 75 75 6e 65 | 74 2e 75 75 2e 6e 65 74 |ow1.uune|t.uu.net|
|00000380| 0a 0a 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |..------|--------|
|00000390| 2d 2d 2d 2d 2d 2d 2d 63 | 75 74 20 68 65 72 65 20 |-------c|ut here |
|000003a0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000003b0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000003c0| 0a 23 21 20 2f 62 69 6e | 2f 73 68 0a 23 20 54 68 |.#! /bin|/sh.# Th|
|000003d0| 69 73 20 69 73 20 61 20 | 73 68 65 6c 6c 20 61 72 |is is a |shell ar|
|000003e0| 63 68 69 76 65 2e 20 20 | 52 65 6d 6f 76 65 20 61 |chive. |Remove a|
|000003f0| 6e 79 74 68 69 6e 67 20 | 62 65 66 6f 72 65 20 74 |nything |before t|
|00000400| 68 69 73 20 6c 69 6e 65 | 2c 20 74 68 65 6e 20 75 |his line|, then u|
|00000410| 6e 70 61 63 6b 0a 23 20 | 69 74 20 62 79 20 73 61 |npack.# |it by sa|
|00000420| 76 69 6e 67 20 69 74 20 | 69 6e 74 6f 20 61 20 66 |ving it |into a f|
|00000430| 69 6c 65 20 61 6e 64 20 | 74 79 70 69 6e 67 20 22 |ile and |typing "|
|00000440| 73 68 20 66 69 6c 65 22 | 2e 20 20 54 6f 20 6f 76 |sh file"|. To ov|
|00000450| 65 72 77 72 69 74 65 20 | 65 78 69 73 74 69 6e 67 |erwrite |existing|
|00000460| 0a 23 20 66 69 6c 65 73 | 2c 20 74 79 70 65 20 22 |.# files|, type "|
|00000470| 73 68 20 66 69 6c 65 20 | 2d 63 22 2e 20 20 59 6f |sh file |-c". Yo|
|00000480| 75 20 63 61 6e 20 61 6c | 73 6f 20 66 65 65 64 20 |u can al|so feed |
|00000490| 74 68 69 73 20 61 73 20 | 73 74 61 6e 64 61 72 64 |this as |standard|
|000004a0| 20 69 6e 70 75 74 20 76 | 69 61 0a 23 20 75 6e 73 | input v|ia.# uns|
|000004b0| 68 61 72 2c 20 6f 72 20 | 62 79 20 74 79 70 69 6e |har, or |by typin|
|000004c0| 67 20 22 73 68 20 3c 66 | 69 6c 65 22 2c 20 65 2e |g "sh <f|ile", e.|
|000004d0| 67 2e 2e 20 20 49 66 20 | 74 68 69 73 20 61 72 63 |g.. If |this arc|
|000004e0| 68 69 76 65 20 69 73 20 | 63 6f 6d 70 6c 65 74 65 |hive is |complete|
|000004f0| 2c 20 79 6f 75 0a 23 20 | 77 69 6c 6c 20 73 65 65 |, you.# |will see|
|00000500| 20 74 68 65 20 66 6f 6c | 6c 6f 77 69 6e 67 20 6d | the fol|lowing m|
|00000510| 65 73 73 61 67 65 20 61 | 74 20 74 68 65 20 65 6e |essage a|t the en|
|00000520| 64 3a 0a 23 09 09 22 45 | 6e 64 20 6f 66 20 61 72 |d:.#.."E|nd of ar|
|00000530| 63 68 69 76 65 20 31 20 | 28 6f 66 20 31 29 2e 22 |chive 1 |(of 1)."|
|00000540| 0a 23 20 43 6f 6e 74 65 | 6e 74 73 3a 20 20 4d 41 |.# Conte|nts: MA|
|00000550| 4e 49 46 45 53 54 20 4d | 61 6b 65 66 69 6c 65 20 |NIFEST M|akefile |
|00000560| 52 45 41 44 4d 45 20 64 | 69 72 65 63 74 6f 72 79 |README d|irectory|
|00000570| 20 64 75 6d 62 5f 6d 65 | 6e 75 2e 31 20 64 75 6d | dumb_me|nu.1 dum|
|00000580| 62 5f 6d 65 6e 75 2e 6c | 0a 23 20 20 20 64 75 6d |b_menu.l|.# dum|
|00000590| 62 5f 6d 65 6e 75 2e 79 | 20 6d 65 6e 75 2e 64 65 |b_menu.y| menu.de|
|000005a0| 66 20 73 75 62 2e 6d 65 | 6e 75 0a 23 20 57 72 61 |f sub.me|nu.# Wra|
|000005b0| 70 70 65 64 20 62 79 20 | 6d 69 6b 65 40 6d 69 6c |pped by |mike@mil|
|000005c0| 68 6f 77 32 20 6f 6e 20 | 54 68 75 20 4d 61 72 20 |how2 on |Thu Mar |
|000005d0| 20 38 20 31 36 3a 30 30 | 3a 33 36 20 31 39 39 30 | 8 16:00|:36 1990|
|000005e0| 0a 50 41 54 48 3d 2f 62 | 69 6e 3a 2f 75 73 72 2f |.PATH=/b|in:/usr/|
|000005f0| 62 69 6e 3a 2f 75 73 72 | 2f 75 63 62 20 3b 20 65 |bin:/usr|/ucb ; e|
|00000600| 78 70 6f 72 74 20 50 41 | 54 48 0a 69 66 20 74 65 |xport PA|TH.if te|
|00000610| 73 74 20 2d 66 20 27 4d | 41 4e 49 46 45 53 54 27 |st -f 'M|ANIFEST'|
|00000620| 20 2d 61 20 22 24 7b 31 | 7d 22 20 21 3d 20 22 2d | -a "${1|}" != "-|
|00000630| 63 22 20 3b 20 74 68 65 | 6e 20 0a 20 20 65 63 68 |c" ; the|n . ech|
|00000640| 6f 20 73 68 61 72 3a 20 | 57 69 6c 6c 20 6e 6f 74 |o shar: |Will not|
|00000650| 20 63 6c 6f 62 62 65 72 | 20 65 78 69 73 74 69 6e | clobber| existin|
|00000660| 67 20 66 69 6c 65 20 5c | 22 27 4d 41 4e 49 46 45 |g file \|"'MANIFE|
|00000670| 53 54 27 5c 22 0a 65 6c | 73 65 0a 65 63 68 6f 20 |ST'\".el|se.echo |
|00000680| 73 68 61 72 3a 20 45 78 | 74 72 61 63 74 69 6e 67 |shar: Ex|tracting|
|00000690| 20 5c 22 27 4d 41 4e 49 | 46 45 53 54 27 5c 22 20 | \"'MANI|FEST'\" |
|000006a0| 5c 28 33 39 33 20 63 68 | 61 72 61 63 74 65 72 73 |\(393 ch|aracters|
|000006b0| 5c 29 0a 73 65 64 20 22 | 73 2f 5e 58 2f 2f 22 20 |\).sed "|s/^X//" |
|000006c0| 3e 27 4d 41 4e 49 46 45 | 53 54 27 20 3c 3c 27 45 |>'MANIFE|ST' <<'E|
|000006d0| 4e 44 5f 4f 46 5f 46 49 | 4c 45 27 0a 58 20 20 20 |ND_OF_FI|LE'.X |
|000006e0| 46 69 6c 65 20 4e 61 6d | 65 09 09 41 72 63 68 69 |File Nam|e..Archi|
|000006f0| 76 65 20 23 09 44 65 73 | 63 72 69 70 74 69 6f 6e |ve #.Des|cription|
|00000700| 0a 58 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |.X------|--------|
|00000710| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000720| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000730| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 0a 58 20 |--------|-----.X |
|00000740| 4d 41 4e 49 46 45 53 54 | 20 20 20 20 20 20 20 20 |MANIFEST| |
|00000750| 20 20 20 20 20 20 20 20 | 20 20 20 31 09 54 68 69 | | 1.Thi|
|00000760| 73 20 73 68 69 70 70 69 | 6e 67 20 6c 69 73 74 0a |s shippi|ng list.|
|00000770| 58 20 4d 61 6b 65 66 69 | 6c 65 20 20 20 20 20 20 |X Makefi|le |
|00000780| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 31 09 0a | | 1..|
|00000790| 58 20 52 45 41 44 4d 45 | 20 20 20 20 20 20 20 20 |X README| |
|000007a0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 31 09 0a | | 1..|
|000007b0| 58 20 64 69 72 65 63 74 | 6f 72 79 20 20 20 20 20 |X direct|ory |
|000007c0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 31 09 0a | | 1..|
|000007d0| 58 20 64 75 6d 62 5f 6d | 65 6e 75 2e 31 20 20 20 |X dumb_m|enu.1 |
|000007e0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 31 09 0a | | 1..|
|000007f0| 58 20 64 75 6d 62 5f 6d | 65 6e 75 2e 6c 20 20 20 |X dumb_m|enu.l |
|00000800| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 31 09 0a | | 1..|
|00000810| 58 20 64 75 6d 62 5f 6d | 65 6e 75 2e 79 20 20 20 |X dumb_m|enu.y |
|00000820| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 31 09 0a | | 1..|
|00000830| 58 20 6d 65 6e 75 2e 64 | 65 66 20 20 20 20 20 20 |X menu.d|ef |
|00000840| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 31 09 0a | | 1..|
|00000850| 58 20 73 75 62 2e 6d 65 | 6e 75 20 20 20 20 20 20 |X sub.me|nu |
|00000860| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 31 09 0a | | 1..|
|00000870| 45 4e 44 5f 4f 46 5f 46 | 49 4c 45 0a 69 66 20 74 |END_OF_F|ILE.if t|
|00000880| 65 73 74 20 33 39 33 20 | 2d 6e 65 20 60 77 63 20 |est 393 |-ne `wc |
|00000890| 2d 63 20 3c 27 4d 41 4e | 49 46 45 53 54 27 60 3b |-c <'MAN|IFEST'`;|
|000008a0| 20 74 68 65 6e 0a 20 20 | 20 20 65 63 68 6f 20 73 | then. | echo s|
|000008b0| 68 61 72 3a 20 5c 22 27 | 4d 41 4e 49 46 45 53 54 |har: \"'|MANIFEST|
|000008c0| 27 5c 22 20 75 6e 70 61 | 63 6b 65 64 20 77 69 74 |'\" unpa|cked wit|
|000008d0| 68 20 77 72 6f 6e 67 20 | 73 69 7a 65 21 0a 66 69 |h wrong |size!.fi|
|000008e0| 0a 23 20 65 6e 64 20 6f | 66 20 27 4d 41 4e 49 46 |.# end o|f 'MANIF|
|000008f0| 45 53 54 27 0a 66 69 0a | 69 66 20 74 65 73 74 20 |EST'.fi.|if test |
|00000900| 2d 66 20 27 4d 61 6b 65 | 66 69 6c 65 27 20 2d 61 |-f 'Make|file' -a|
|00000910| 20 22 24 7b 31 7d 22 20 | 21 3d 20 22 2d 63 22 20 | "${1}" |!= "-c" |
|00000920| 3b 20 74 68 65 6e 20 0a | 20 20 65 63 68 6f 20 73 |; then .| echo s|
|00000930| 68 61 72 3a 20 57 69 6c | 6c 20 6e 6f 74 20 63 6c |har: Wil|l not cl|
|00000940| 6f 62 62 65 72 20 65 78 | 69 73 74 69 6e 67 20 66 |obber ex|isting f|
|00000950| 69 6c 65 20 5c 22 27 4d | 61 6b 65 66 69 6c 65 27 |ile \"'M|akefile'|
|00000960| 5c 22 0a 65 6c 73 65 0a | 65 63 68 6f 20 73 68 61 |\".else.|echo sha|
|00000970| 72 3a 20 45 78 74 72 61 | 63 74 69 6e 67 20 5c 22 |r: Extra|cting \"|
|00000980| 27 4d 61 6b 65 66 69 6c | 65 27 5c 22 20 5c 28 39 |'Makefil|e'\" \(9|
|00000990| 33 39 20 63 68 61 72 61 | 63 74 65 72 73 5c 29 0a |39 chara|cters\).|
|000009a0| 73 65 64 20 22 73 2f 5e | 58 2f 2f 22 20 3e 27 4d |sed "s/^|X//" >'M|
|000009b0| 61 6b 65 66 69 6c 65 27 | 20 3c 3c 27 45 4e 44 5f |akefile'| <<'END_|
|000009c0| 4f 46 5f 46 49 4c 45 27 | 0a 58 23 09 43 46 4c 41 |OF_FILE'|.X#.CFLA|
|000009d0| 47 53 09 3d 09 2d 67 20 | 2d 44 46 4c 45 58 5f 44 |GS.=.-g |-DFLEX_D|
|000009e0| 45 42 55 47 0a 58 23 09 | 43 46 4c 41 47 53 09 3d |EBUG.X#.|CFLAGS.=|
|000009f0| 09 2d 67 0a 58 23 09 43 | 46 4c 41 47 53 09 3d 09 |.-g.X#.C|FLAGS.=.|
|00000a00| 2d 67 20 2d 44 59 59 44 | 45 42 55 47 0a 58 43 46 |-g -DYYD|EBUG.XCF|
|00000a10| 4c 41 47 53 09 3d 09 2d | 4f 20 2d 44 54 45 52 4d |LAGS.=.-|O -DTERM|
|00000a20| 49 4f 20 2d 44 54 45 52 | 4d 43 41 50 0a 58 4c 44 |IO -DTER|MCAP.XLD|
|00000a30| 46 4c 41 47 53 09 3d 09 | 2d 6c 79 20 2d 6c 74 65 |FLAGS.=.|-ly -lte|
|00000a40| 72 6d 63 61 70 0a 58 0a | 58 23 20 43 20 73 6f 75 |rmcap.X.|X# C sou|
|00000a50| 72 63 65 20 66 69 6c 65 | 73 0a 58 23 20 59 61 63 |rce file|s.X# Yac|
|00000a60| 63 20 73 6f 75 72 63 65 | 20 66 69 6c 65 73 0a 58 |c source| files.X|
|00000a70| 59 53 52 43 09 3d 09 64 | 75 6d 62 5f 6d 65 6e 75 |YSRC.=.d|umb_menu|
|00000a80| 2e 79 0a 58 59 43 43 43 | 09 3d 09 24 28 59 53 52 |.y.XYCCC|.=.$(YSR|
|00000a90| 43 3a 2e 79 3d 2e 63 29 | 0a 58 59 4f 42 4a 09 3d |C:.y=.c)|.XYOBJ.=|
|00000aa0| 09 24 28 59 53 52 43 3a | 2e 79 3d 2e 6f 29 0a 58 |.$(YSRC:|.y=.o).X|
|00000ab0| 0a 58 4c 53 52 43 09 3d | 09 64 75 6d 62 5f 6d 65 |.XLSRC.=|.dumb_me|
|00000ac0| 6e 75 2e 6c 0a 58 4c 45 | 58 09 3d 09 66 6c 65 78 |nu.l.XLE|X.=.flex|
|00000ad0| 0a 58 4c 46 4c 41 47 53 | 09 3d 0a 58 0a 58 64 75 |.XLFLAGS|.=.X.Xdu|
|00000ae0| 6d 62 5f 6d 65 6e 75 20 | 3a 20 20 24 28 59 43 43 |mb_menu |: $(YCC|
|00000af0| 43 29 20 6c 65 78 2e 79 | 79 2e 63 0a 58 09 24 28 |C) lex.y|y.c.X.$(|
|00000b00| 43 43 29 20 24 28 43 46 | 4c 41 47 53 29 20 24 28 |CC) $(CF|LAGS) $(|
|00000b10| 59 43 43 43 29 20 24 28 | 4c 44 46 4c 41 47 53 29 |YCCC) $(|LDFLAGS)|
|00000b20| 20 2d 6f 20 64 75 6d 62 | 5f 6d 65 6e 75 0a 58 0a | -o dumb|_menu.X.|
|00000b30| 58 64 75 6d 62 5f 6d 65 | 6e 75 2e 30 73 20 3a 20 |Xdumb_me|nu.0s : |
|00000b40| 20 64 75 6d 62 5f 6d 65 | 6e 75 2e 63 20 6c 65 78 | dumb_me|nu.c lex|
|00000b50| 2e 79 79 2e 63 0a 58 09 | 24 28 43 43 29 20 24 28 |.yy.c.X.|$(CC) $(|
|00000b60| 43 46 4c 41 47 53 29 20 | 2d 4d 30 73 20 64 75 6d |CFLAGS) |-M0s dum|
|00000b70| 62 5f 6d 65 6e 75 2e 63 | 20 24 28 4c 44 46 4c 41 |b_menu.c| $(LDFLA|
|00000b80| 47 53 29 20 2d 6f 20 64 | 75 6d 62 5f 6d 65 6e 75 |GS) -o d|umb_menu|
|00000b90| 2e 30 73 0a 58 0a 58 6c | 65 78 2e 79 79 2e 63 20 |.0s.X.Xl|ex.yy.c |
|00000ba0| 3a 20 64 75 6d 62 5f 6d | 65 6e 75 2e 6c 0a 58 09 |: dumb_m|enu.l.X.|
|00000bb0| 24 28 4c 45 58 29 20 24 | 28 4c 46 4c 41 47 53 29 |$(LEX) $|(LFLAGS)|
|00000bc0| 20 64 75 6d 62 5f 6d 65 | 6e 75 2e 6c 0a 58 0a 58 | dumb_me|nu.l.X.X|
|00000bd0| 70 72 74 20 3a 20 24 28 | 59 53 52 43 29 20 24 28 |prt : $(|YSRC) $(|
|00000be0| 4c 53 52 43 29 0a 58 09 | 66 6f 72 20 78 20 69 6e |LSRC).X.|for x in|
|00000bf0| 20 24 3f 20 3b 20 64 6f | 20 5c 0a 58 09 70 72 20 | $? ; do| \.X.pr |
|00000c00| 2d 66 20 2d 6c 36 30 20 | 2d 65 38 20 2d 6f 32 20 |-f -l60 |-e8 -o2 |
|00000c10| 24 24 78 20 7c 20 6c 70 | 20 2d 64 6c 61 73 65 72 |$$x | lp| -dlaser|
|00000c20| 20 3b 5c 0a 58 09 64 6f | 6e 65 0a 58 09 74 6f 75 | ;\.X.do|ne.X.tou|
|00000c30| 63 68 20 70 72 74 0a 58 | 0a 58 74 61 72 20 3a 0a |ch prt.X|.Xtar :.|
|00000c40| 58 09 66 6f 72 6d 61 74 | 20 2f 64 65 76 2f 72 66 |X.format| /dev/rf|
|00000c50| 64 30 39 36 64 73 39 0a | 58 09 74 61 72 20 63 76 |d096ds9.|X.tar cv|
|00000c60| 66 20 2f 64 65 76 2f 66 | 64 30 39 36 64 73 39 20 |f /dev/f|d096ds9 |
|00000c70| 24 28 59 53 52 43 29 20 | 24 28 4c 53 52 43 29 20 |$(YSRC) |$(LSRC) |
|00000c80| 2a 2e 31 20 4d 61 6b 65 | 66 69 6c 65 20 73 2e 2a |*.1 Make|file s.*|
|00000c90| 20 2a 2e 64 6f 63 20 6d | 65 6e 75 2e 64 65 66 20 | *.doc m|enu.def |
|00000ca0| 5c 0a 58 09 09 2a 2e 6d | 65 6e 75 20 64 75 6d 62 |\.X..*.m|enu dumb|
|00000cb0| 5f 6d 65 6e 75 20 64 75 | 6d 62 5f 6d 65 6e 75 2e |_menu du|mb_menu.|
|00000cc0| 30 73 0a 58 0a 58 63 6c | 65 61 6e 20 3a 0a 58 09 |0s.X.Xcl|ean :.X.|
|00000cd0| 72 6d 20 2d 66 20 24 28 | 4f 42 4a 53 29 20 24 28 |rm -f $(|OBJS) $(|
|00000ce0| 59 43 43 43 29 20 6c 65 | 78 2e 79 79 2e 63 0a 58 |YCCC) le|x.yy.c.X|
|00000cf0| 0a 58 6b 69 74 20 3a 20 | 24 28 59 53 52 43 29 20 |.Xkit : |$(YSRC) |
|00000d00| 24 28 4c 53 52 43 29 20 | 64 75 6d 62 5f 6d 65 6e |$(LSRC) |dumb_men|
|00000d10| 75 2e 31 20 4d 61 6b 65 | 66 69 6c 65 20 6d 65 6e |u.1 Make|file men|
|00000d20| 75 2e 64 65 66 20 73 75 | 62 2e 6d 65 6e 75 20 64 |u.def su|b.menu d|
|00000d30| 69 72 65 63 74 6f 72 79 | 0a 58 09 6d 61 6b 65 6b |irectory|.X.makek|
|00000d40| 69 74 20 2d 6d 20 24 28 | 59 53 52 43 29 20 24 28 |it -m $(|YSRC) $(|
|00000d50| 4c 53 52 43 29 20 64 75 | 6d 62 5f 6d 65 6e 75 2e |LSRC) du|mb_menu.|
|00000d60| 31 20 4d 61 6b 65 66 69 | 6c 65 20 6d 65 6e 75 2e |1 Makefi|le menu.|
|00000d70| 64 65 66 20 73 75 62 2e | 6d 65 6e 75 20 5c 0a 58 |def sub.|menu \.X|
|00000d80| 09 09 64 69 72 65 63 74 | 6f 72 79 20 52 45 41 44 |..direct|ory READ|
|00000d90| 4d 45 0a 58 09 74 6f 75 | 63 68 20 6b 69 74 0a 45 |ME.X.tou|ch kit.E|
|00000da0| 4e 44 5f 4f 46 5f 46 49 | 4c 45 0a 69 66 20 74 65 |ND_OF_FI|LE.if te|
|00000db0| 73 74 20 39 33 39 20 2d | 6e 65 20 60 77 63 20 2d |st 939 -|ne `wc -|
|00000dc0| 63 20 3c 27 4d 61 6b 65 | 66 69 6c 65 27 60 3b 20 |c <'Make|file'`; |
|00000dd0| 74 68 65 6e 0a 20 20 20 | 20 65 63 68 6f 20 73 68 |then. | echo sh|
|00000de0| 61 72 3a 20 5c 22 27 4d | 61 6b 65 66 69 6c 65 27 |ar: \"'M|akefile'|
|00000df0| 5c 22 20 75 6e 70 61 63 | 6b 65 64 20 77 69 74 68 |\" unpac|ked with|
|00000e00| 20 77 72 6f 6e 67 20 73 | 69 7a 65 21 0a 66 69 0a | wrong s|ize!.fi.|
|00000e10| 23 20 65 6e 64 20 6f 66 | 20 27 4d 61 6b 65 66 69 |# end of| 'Makefi|
|00000e20| 6c 65 27 0a 66 69 0a 69 | 66 20 74 65 73 74 20 2d |le'.fi.i|f test -|
|00000e30| 66 20 27 52 45 41 44 4d | 45 27 20 2d 61 20 22 24 |f 'READM|E' -a "$|
|00000e40| 7b 31 7d 22 20 21 3d 20 | 22 2d 63 22 20 3b 20 74 |{1}" != |"-c" ; t|
|00000e50| 68 65 6e 20 0a 20 20 65 | 63 68 6f 20 73 68 61 72 |hen . e|cho shar|
|00000e60| 3a 20 57 69 6c 6c 20 6e | 6f 74 20 63 6c 6f 62 62 |: Will n|ot clobb|
|00000e70| 65 72 20 65 78 69 73 74 | 69 6e 67 20 66 69 6c 65 |er exist|ing file|
|00000e80| 20 5c 22 27 52 45 41 44 | 4d 45 27 5c 22 0a 65 6c | \"'READ|ME'\".el|
|00000e90| 73 65 0a 65 63 68 6f 20 | 73 68 61 72 3a 20 45 78 |se.echo |shar: Ex|
|00000ea0| 74 72 61 63 74 69 6e 67 | 20 5c 22 27 52 45 41 44 |tracting| \"'READ|
|00000eb0| 4d 45 27 5c 22 20 5c 28 | 36 31 30 20 63 68 61 72 |ME'\" \(|610 char|
|00000ec0| 61 63 74 65 72 73 5c 29 | 0a 73 65 64 20 22 73 2f |acters\)|.sed "s/|
|00000ed0| 5e 58 2f 2f 22 20 3e 27 | 52 45 41 44 4d 45 27 20 |^X//" >'|README' |
|00000ee0| 3c 3c 27 45 4e 44 5f 4f | 46 5f 46 49 4c 45 27 0a |<<'END_O|F_FILE'.|
|00000ef0| 58 20 20 64 75 6d 62 5f | 6d 65 6e 75 20 2d 20 65 |X dumb_|menu - e|
|00000f00| 78 65 63 75 74 65 73 20 | 61 20 73 69 6d 70 6c 65 |xecutes |a simple|
|00000f10| 20 6d 69 6e 64 65 64 20 | 6d 65 6e 75 0a 58 0a 58 | minded |menu.X.X|
|00000f20| 20 20 54 68 65 6f 72 79 | 20 6f 66 20 6f 70 65 72 | Theory| of oper|
|00000f30| 61 74 69 6f 6e 3a 20 54 | 68 65 20 70 72 6f 67 72 |ation: T|he progr|
|00000f40| 61 6d 20 72 65 61 64 73 | 20 61 6e 64 20 70 61 72 |am reads| and par|
|00000f50| 73 65 73 20 61 20 6d 65 | 6e 75 0a 58 20 20 64 65 |ses a me|nu.X de|
|00000f60| 66 69 6e 69 74 69 6f 6e | 20 66 69 6c 65 20 61 6e |finition| file an|
|00000f70| 64 20 74 68 65 6e 20 6c | 6f 6f 70 73 20 75 6e 74 |d then l|oops unt|
|00000f80| 69 6c 20 74 68 65 20 75 | 73 65 72 20 71 75 69 74 |il the u|ser quit|
|00000f90| 73 2e 20 20 4d 65 6e 75 | 73 0a 58 20 20 61 72 65 |s. Menu|s.X are|
|00000fa0| 20 6e 6f 74 20 70 72 65 | 74 74 79 20 2d 20 73 69 | not pre|tty - si|
|00000fb0| 6d 70 6c 79 20 6e 75 6d | 62 65 72 65 64 20 6f 70 |mply num|bered op|
|00000fc0| 74 69 6f 6e 73 20 77 69 | 74 68 20 51 20 66 6f 72 |tions wi|th Q for|
|00000fd0| 20 71 75 69 74 20 74 6f | 0a 58 20 20 65 78 69 74 | quit to|.X exit|
|00000fe0| 2e 0a 58 0a 58 20 20 54 | 68 65 20 6d 65 6e 75 20 |..X.X T|he menu |
|00000ff0| 64 65 66 69 6e 69 74 69 | 6f 6e 20 66 69 6c 65 20 |definiti|on file |
|00001000| 63 6f 6e 73 69 73 74 73 | 20 6f 66 20 61 20 74 69 |consists| of a ti|
|00001010| 74 6c 65 20 73 74 61 74 | 65 6d 65 6e 74 0a 58 20 |tle stat|ement.X |
|00001020| 20 66 6f 6c 6c 6f 77 65 | 64 20 62 79 20 7a 65 72 | followe|d by zer|
|00001030| 6f 20 6f 72 20 6d 6f 72 | 65 20 6f 70 74 69 6f 6e |o or mor|e option|
|00001040| 73 20 66 6f 6c 6c 6f 77 | 65 64 20 62 79 20 6f 6e |s follow|ed by on|
|00001050| 65 20 6f 72 20 69 74 65 | 6d 0a 58 20 20 64 65 66 |e or ite|m.X def|
|00001060| 69 6e 69 74 69 6f 6e 73 | 2e 0a 58 0a 58 0a 58 20 |initions|..X.X.X |
|00001070| 20 20 20 20 20 20 74 69 | 74 6c 65 20 7b 20 74 68 | ti|tle { th|
|00001080| 69 73 20 69 73 20 61 20 | 54 69 74 6c 65 20 7d 0a |is is a |Title }.|
|00001090| 58 0a 58 20 20 20 20 20 | 20 20 62 6f 6c 64 20 63 |X.X | bold c|
|000010a0| 6c 65 61 72 20 61 6c 77 | 61 79 73 2d 73 68 6f 77 |lear alw|ays-show|
|000010b0| 0a 58 0a 58 20 20 20 20 | 20 20 20 69 74 65 6d 20 |.X.X | item |
|000010c0| 7b 20 74 68 69 73 20 69 | 73 20 61 20 70 72 6f 6d |{ this i|s a prom|
|000010d0| 70 74 20 7d 20 7b 20 65 | 63 68 6f 20 22 24 46 4f |pt } { e|cho "$FO|
|000010e0| 4f 20 24 42 41 52 22 20 | 7d 0a 58 20 20 20 20 20 |O $BAR" |}.X |
|000010f0| 20 20 70 61 72 6d 20 22 | 46 4f 4f 22 20 7b 20 70 | parm "|FOO" { p|
|00001100| 72 6f 6d 70 74 20 66 6f | 72 20 46 4f 4f 20 7d 0a |rompt fo|r FOO }.|
|00001110| 58 20 20 20 20 20 20 20 | 70 61 72 6d 20 22 42 41 |X |parm "BA|
|00001120| 52 22 20 7b 20 70 72 6f | 6d 70 74 20 66 6f 72 20 |R" { pro|mpt for |
|00001130| 42 41 52 20 7d 0a 58 20 | 20 20 20 20 20 20 3b 0a |BAR }.X | ;.|
|00001140| 58 0a 58 4d 69 6b 65 20 | 48 6f 77 61 72 64 0a 58 |X.XMike |Howard.X|
|00001150| 68 6f 77 40 6d 69 6c 68 | 6f 77 31 2e 75 75 6e 65 |how@milh|ow1.uune|
|00001160| 74 2e 75 75 2e 6e 65 74 | 0a 45 4e 44 5f 4f 46 5f |t.uu.net|.END_OF_|
|00001170| 46 49 4c 45 0a 69 66 20 | 74 65 73 74 20 36 31 30 |FILE.if |test 610|
|00001180| 20 2d 6e 65 20 60 77 63 | 20 2d 63 20 3c 27 52 45 | -ne `wc| -c <'RE|
|00001190| 41 44 4d 45 27 60 3b 20 | 74 68 65 6e 0a 20 20 20 |ADME'`; |then. |
|000011a0| 20 65 63 68 6f 20 73 68 | 61 72 3a 20 5c 22 27 52 | echo sh|ar: \"'R|
|000011b0| 45 41 44 4d 45 27 5c 22 | 20 75 6e 70 61 63 6b 65 |EADME'\"| unpacke|
|000011c0| 64 20 77 69 74 68 20 77 | 72 6f 6e 67 20 73 69 7a |d with w|rong siz|
|000011d0| 65 21 0a 66 69 0a 23 20 | 65 6e 64 20 6f 66 20 27 |e!.fi.# |end of '|
|000011e0| 52 45 41 44 4d 45 27 0a | 66 69 0a 69 66 20 74 65 |README'.|fi.if te|
|000011f0| 73 74 20 2d 66 20 27 64 | 69 72 65 63 74 6f 72 79 |st -f 'd|irectory|
|00001200| 27 20 2d 61 20 22 24 7b | 31 7d 22 20 21 3d 20 22 |' -a "${|1}" != "|
|00001210| 2d 63 22 20 3b 20 74 68 | 65 6e 20 0a 20 20 65 63 |-c" ; th|en . ec|
|00001220| 68 6f 20 73 68 61 72 3a | 20 57 69 6c 6c 20 6e 6f |ho shar:| Will no|
|00001230| 74 20 63 6c 6f 62 62 65 | 72 20 65 78 69 73 74 69 |t clobbe|r existi|
|00001240| 6e 67 20 66 69 6c 65 20 | 5c 22 27 64 69 72 65 63 |ng file |\"'direc|
|00001250| 74 6f 72 79 27 5c 22 0a | 65 6c 73 65 0a 65 63 68 |tory'\".|else.ech|
|00001260| 6f 20 73 68 61 72 3a 20 | 45 78 74 72 61 63 74 69 |o shar: |Extracti|
|00001270| 6e 67 20 5c 22 27 64 69 | 72 65 63 74 6f 72 79 27 |ng \"'di|rectory'|
|00001280| 5c 22 20 5c 28 39 39 20 | 63 68 61 72 61 63 74 65 |\" \(99 |characte|
|00001290| 72 73 5c 29 0a 73 65 64 | 20 22 73 2f 5e 58 2f 2f |rs\).sed| "s/^X//|
|000012a0| 22 20 3e 27 64 69 72 65 | 63 74 6f 72 79 27 20 3c |" >'dire|ctory' <|
|000012b0| 3c 27 45 4e 44 5f 4f 46 | 5f 46 49 4c 45 27 0a 58 |<'END_OF|_FILE'.X|
|000012c0| 64 75 6d 62 5f 6d 65 6e | 75 2e 31 3a 54 68 65 20 |dumb_men|u.1:The |
|000012d0| 4d 61 6e 75 61 6c 20 50 | 61 67 65 0a 58 64 75 6d |Manual P|age.Xdum|
|000012e0| 62 5f 6d 65 6e 75 2e 6c | 3a 54 68 65 20 4c 65 78 |b_menu.l|:The Lex|
|000012f0| 69 63 61 6c 20 41 6e 61 | 6c 79 7a 65 72 0a 58 64 |ical Ana|lyzer.Xd|
|00001300| 75 6d 62 5f 6d 65 6e 75 | 2e 79 3a 54 68 65 20 70 |umb_menu|.y:The p|
|00001310| 61 72 73 65 72 20 26 20 | 4d 61 69 6e 20 50 72 6f |arser & |Main Pro|
|00001320| 67 72 61 6d 0a 45 4e 44 | 5f 4f 46 5f 46 49 4c 45 |gram.END|_OF_FILE|
|00001330| 0a 69 66 20 74 65 73 74 | 20 39 39 20 2d 6e 65 20 |.if test| 99 -ne |
|00001340| 60 77 63 20 2d 63 20 3c | 27 64 69 72 65 63 74 6f |`wc -c <|'directo|
|00001350| 72 79 27 60 3b 20 74 68 | 65 6e 0a 20 20 20 20 65 |ry'`; th|en. e|
|00001360| 63 68 6f 20 73 68 61 72 | 3a 20 5c 22 27 64 69 72 |cho shar|: \"'dir|
|00001370| 65 63 74 6f 72 79 27 5c | 22 20 75 6e 70 61 63 6b |ectory'\|" unpack|
|00001380| 65 64 20 77 69 74 68 20 | 77 72 6f 6e 67 20 73 69 |ed with |wrong si|
|00001390| 7a 65 21 0a 66 69 0a 23 | 20 65 6e 64 20 6f 66 20 |ze!.fi.#| end of |
|000013a0| 27 64 69 72 65 63 74 6f | 72 79 27 0a 66 69 0a 69 |'directo|ry'.fi.i|
|000013b0| 66 20 74 65 73 74 20 2d | 66 20 27 64 75 6d 62 5f |f test -|f 'dumb_|
|000013c0| 6d 65 6e 75 2e 31 27 20 | 2d 61 20 22 24 7b 31 7d |menu.1' |-a "${1}|
|000013d0| 22 20 21 3d 20 22 2d 63 | 22 20 3b 20 74 68 65 6e |" != "-c|" ; then|
|000013e0| 20 0a 20 20 65 63 68 6f | 20 73 68 61 72 3a 20 57 | . echo| shar: W|
|000013f0| 69 6c 6c 20 6e 6f 74 20 | 63 6c 6f 62 62 65 72 20 |ill not |clobber |
|00001400| 65 78 69 73 74 69 6e 67 | 20 66 69 6c 65 20 5c 22 |existing| file \"|
|00001410| 27 64 75 6d 62 5f 6d 65 | 6e 75 2e 31 27 5c 22 0a |'dumb_me|nu.1'\".|
|00001420| 65 6c 73 65 0a 65 63 68 | 6f 20 73 68 61 72 3a 20 |else.ech|o shar: |
|00001430| 45 78 74 72 61 63 74 69 | 6e 67 20 5c 22 27 64 75 |Extracti|ng \"'du|
|00001440| 6d 62 5f 6d 65 6e 75 2e | 31 27 5c 22 20 5c 28 33 |mb_menu.|1'\" \(3|
|00001450| 34 33 36 20 63 68 61 72 | 61 63 74 65 72 73 5c 29 |436 char|acters\)|
|00001460| 0a 73 65 64 20 22 73 2f | 5e 58 2f 2f 22 20 3e 27 |.sed "s/|^X//" >'|
|00001470| 64 75 6d 62 5f 6d 65 6e | 75 2e 31 27 20 3c 3c 27 |dumb_men|u.1' <<'|
|00001480| 45 4e 44 5f 4f 46 5f 46 | 49 4c 45 27 0a 58 2e 09 |END_OF_F|ILE'.X..|
|00001490| 5c 22 09 2d 2a 2d 20 6e | 72 6f 66 66 20 2d 2a 2d |\".-*- n|roff -*-|
|000014a0| 0a 58 2e 09 5c 22 09 40 | 28 23 29 64 75 6d 62 5f |.X..\".@|(#)dumb_|
|000014b0| 6d 65 6e 75 2e 31 09 31 | 2e 32 20 39 30 2f 30 33 |menu.1.1|.2 90/03|
|000014c0| 2f 30 38 0a 58 2e 44 41 | 20 4d 61 72 63 68 20 38 |/08.X.DA| March 8|
|000014d0| 2c 20 31 39 39 30 0a 58 | 2e 54 48 20 44 55 4d 42 |, 1990.X|.TH DUMB|
|000014e0| 5f 4d 45 4e 55 20 31 20 | 22 6c 6f 63 61 6c 22 0a |_MENU 1 |"local".|
|000014f0| 58 2e 53 48 20 4e 41 4d | 45 0a 58 64 75 6d 62 5f |X.SH NAM|E.Xdumb_|
|00001500| 6d 65 6e 75 20 5c 2d 20 | 65 78 65 63 75 74 65 73 |menu \- |executes|
|00001510| 20 61 20 73 69 6d 70 6c | 65 20 6d 69 6e 64 65 64 | a simpl|e minded|
|00001520| 20 6d 65 6e 75 0a 58 2e | 53 48 20 53 59 4e 4f 50 | menu.X.|SH SYNOP|
|00001530| 53 49 53 0a 58 2e 42 20 | 64 75 6d 62 5f 6d 65 6e |SIS.X.B |dumb_men|
|00001540| 75 0a 58 5b 20 2d 68 20 | 7c 20 6f 70 74 69 6f 6e |u.X[ -h || option|
|00001550| 73 20 5d 0a 58 2e 53 48 | 20 44 45 53 43 52 49 50 |s ].X.SH| DESCRIP|
|00001560| 54 49 4f 4e 0a 58 2e 50 | 50 0a 58 2e 42 20 2d 6d |TION.X.P|P.X.B -m|
|00001570| 20 70 61 74 68 0a 58 73 | 65 74 73 20 74 68 65 20 | path.Xs|ets the |
|00001580| 70 61 74 68 20 74 6f 20 | 74 68 65 20 6d 65 6e 75 |path to |the menu|
|00001590| 20 64 65 66 69 6e 69 74 | 69 6f 6e 20 66 69 6c 65 | definit|ion file|
|000015a0| 2e 20 20 44 65 66 61 75 | 6c 74 20 69 73 0a 58 2e |. Defau|lt is.X.|
|000015b0| 49 20 2e 2f 6d 65 6e 75 | 2e 64 65 66 2e 0a 58 2e |I ./menu|.def..X.|
|000015c0| 50 50 0a 58 2e 42 20 2d | 73 20 70 61 74 68 0a 58 |PP.X.B -|s path.X|
|000015d0| 73 65 74 73 20 70 61 74 | 68 20 66 6f 72 20 74 68 |sets pat|h for th|
|000015e0| 65 20 73 68 65 6c 6c 20 | 77 68 69 63 68 20 77 69 |e shell |which wi|
|000015f0| 6c 6c 20 65 78 65 63 75 | 74 65 20 74 68 65 20 73 |ll execu|te the s|
|00001600| 65 6c 65 63 74 65 64 20 | 6d 65 6e 75 20 63 6f 6d |elected |menu com|
|00001610| 6d 61 6e 64 2e 0a 58 44 | 65 66 61 75 6c 74 20 69 |mand..XD|efault i|
|00001620| 73 0a 58 2e 49 20 2f 62 | 69 6e 2f 73 68 0a 58 2e |s.X.I /b|in/sh.X.|
|00001630| 50 50 0a 58 2e 42 20 2d | 63 20 70 61 74 68 0a 58 |PP.X.B -|c path.X|
|00001640| 73 65 74 73 20 74 68 65 | 20 70 61 74 68 20 74 6f |sets the| path to|
|00001650| 0a 58 2e 42 20 63 61 74 | 0a 58 77 68 69 63 68 20 |.X.B cat|.Xwhich |
|00001660| 69 73 20 75 73 65 64 20 | 74 6f 20 64 69 73 70 6c |is used |to displ|
|00001670| 61 79 20 74 68 65 20 63 | 6f 6d 6d 61 6e 64 20 73 |ay the c|ommand s|
|00001680| 65 6c 65 63 74 65 64 20 | 69 6e 20 64 65 62 75 67 |elected |in debug|
|00001690| 20 6d 6f 64 65 2e 0a 58 | 2e 50 50 0a 58 2e 42 20 | mode..X|.PP.X.B |
|000016a0| 2d 44 0a 58 69 6e 63 72 | 65 6d 65 6e 74 73 20 64 |-D.Xincr|ements d|
|000016b0| 65 62 75 67 20 6d 6f 64 | 65 2e 20 20 54 68 65 72 |ebug mod|e. Ther|
|000016c0| 65 20 61 72 65 20 74 77 | 6f 20 6d 6f 64 65 73 20 |e are tw|o modes |
|000016d0| 2d 20 6f 6e 65 20 73 69 | 6d 70 6c 79 20 6c 69 73 |- one si|mply lis|
|000016e0| 74 73 20 74 68 65 0a 58 | 66 69 6c 65 20 61 6e 64 |ts the.X|file and|
|000016f0| 20 63 61 74 27 73 20 74 | 68 65 20 73 65 6c 65 63 | cat's t|he selec|
|00001700| 74 65 64 20 6f 70 74 69 | 6f 6e 73 20 72 61 74 68 |ted opti|ons rath|
|00001710| 65 72 20 74 68 61 6e 20 | 65 78 65 63 75 74 69 6e |er than |executin|
|00001720| 67 20 74 68 65 6d 2e 0a | 58 54 68 65 20 6f 74 68 |g them..|XThe oth|
|00001730| 65 72 20 64 69 73 70 6c | 61 79 73 20 74 68 65 20 |er displ|ays the |
|00001740| 73 74 61 74 65 6d 65 6e | 74 73 20 77 68 69 63 68 |statemen|ts which|
|00001750| 20 61 72 65 20 64 69 73 | 63 6f 76 65 72 65 64 20 | are dis|covered |
|00001760| 64 75 72 69 6e 67 20 74 | 68 65 0a 58 70 61 72 73 |during t|he.Xpars|
|00001770| 69 6e 67 20 70 68 61 73 | 65 2e 0a 58 2e 42 20 2d |ing phas|e..X.B -|
|00001780| 76 0a 58 69 6d 70 6c 65 | 6d 65 6e 74 73 20 61 20 |v.Ximple|ments a |
|00001790| 71 75 61 73 69 2d 76 65 | 72 62 6f 73 65 20 6d 6f |quasi-ve|rbose mo|
|000017a0| 64 65 2e 20 20 54 68 69 | 73 20 69 73 20 64 6f 6e |de. Thi|s is don|
|000017b0| 65 20 62 79 20 70 72 65 | 70 65 6e 64 69 6e 67 20 |e by pre|pending |
|000017c0| 74 68 65 0a 58 63 6f 6d | 6d 61 6e 64 0a 58 2e 49 |the.Xcom|mand.X.I|
|000017d0| 20 73 65 74 20 2d 78 0a | 58 74 6f 20 74 68 65 20 | set -x.|Xto the |
|000017e0| 66 72 6f 6e 74 20 6f 66 | 20 74 68 65 20 73 68 65 |front of| the she|
|000017f0| 6c 6c 20 73 63 72 69 70 | 74 20 70 72 69 6f 72 20 |ll scrip|t prior |
|00001800| 74 6f 20 66 65 65 64 69 | 6e 67 20 69 74 20 74 6f |to feedi|ng it to|
|00001810| 20 61 20 73 68 65 6c 6c | 2e 0a 58 2e 50 50 0a 58 | a shell|..X.PP.X|
|00001820| 54 68 65 6f 72 79 20 6f | 66 20 6f 70 65 72 61 74 |Theory o|f operat|
|00001830| 69 6f 6e 3a 20 54 68 65 | 20 70 72 6f 67 72 61 6d |ion: The| program|
|00001840| 20 72 65 61 64 73 20 61 | 6e 64 20 70 61 72 73 65 | reads a|nd parse|
|00001850| 73 20 61 20 6d 65 6e 75 | 20 64 65 66 69 6e 69 74 |s a menu| definit|
|00001860| 69 6f 6e 0a 58 66 69 6c | 65 20 61 6e 64 20 74 68 |ion.Xfil|e and th|
|00001870| 65 6e 20 6c 6f 6f 70 73 | 20 75 6e 74 69 6c 20 74 |en loops| until t|
|00001880| 68 65 20 75 73 65 72 20 | 71 75 69 74 73 2e 20 20 |he user |quits. |
|00001890| 4d 65 6e 75 73 20 61 72 | 65 20 6e 6f 74 20 70 72 |Menus ar|e not pr|
|000018a0| 65 74 74 79 20 2d 0a 58 | 73 69 6d 70 6c 79 20 6e |etty -.X|simply n|
|000018b0| 75 6d 62 65 72 65 64 20 | 6f 70 74 69 6f 6e 73 20 |umbered |options |
|000018c0| 77 69 74 68 20 51 20 66 | 6f 72 20 71 75 69 74 20 |with Q f|or quit |
|000018d0| 74 6f 20 65 78 69 74 2e | 0a 58 2e 50 50 0a 58 54 |to exit.|.X.PP.XT|
|000018e0| 68 65 20 6d 65 6e 75 20 | 64 65 66 69 6e 69 74 69 |he menu |definiti|
|000018f0| 6f 6e 20 66 69 6c 65 20 | 63 6f 6e 73 69 73 74 73 |on file |consists|
|00001900| 20 6f 66 20 61 20 0a 58 | 2e 42 20 74 69 74 6c 65 | of a .X|.B title|
|00001910| 0a 58 73 74 61 74 65 6d | 65 6e 74 20 66 6f 6c 6c |.Xstatem|ent foll|
|00001920| 6f 77 65 64 20 62 79 20 | 7a 65 72 6f 20 6f 72 20 |owed by |zero or |
|00001930| 6d 6f 72 65 0a 58 2e 42 | 20 6f 70 74 69 6f 6e 73 |more.X.B| options|
|00001940| 0a 58 66 6f 6c 6c 6f 77 | 65 64 20 62 79 20 6f 6e |.Xfollow|ed by on|
|00001950| 65 20 6f 72 0a 58 2e 42 | 20 69 74 65 6d 0a 58 64 |e or.X.B| item.Xd|
|00001960| 65 66 69 6e 69 74 69 6f | 6e 73 2e 0a 58 2e 50 50 |efinitio|ns..X.PP|
|00001970| 0a 58 54 68 65 0a 58 2e | 42 20 74 69 74 6c 65 0a |.XThe.X.|B title.|
|00001980| 58 73 74 61 74 65 6d 65 | 6e 74 20 63 6f 6e 74 61 |Xstateme|nt conta|
|00001990| 69 6e 73 20 74 68 65 20 | 6d 65 6e 75 20 74 69 74 |ins the |menu tit|
|000019a0| 6c 65 20 65 6e 63 6c 6f | 73 65 64 20 69 6e 20 62 |le enclo|sed in b|
|000019b0| 72 61 63 65 73 20 28 7b | 20 66 6f 6f 20 7d 29 2e |races ({| foo }).|
|000019c0| 0a 58 2e 49 50 0a 58 74 | 69 74 6c 65 20 7b 20 73 |.X.IP.Xt|itle { s|
|000019d0| 6f 6d 65 20 74 65 78 74 | 20 7d 0a 58 2e 50 50 0a |ome text| }.X.PP.|
|000019e0| 58 54 69 74 6c 65 73 20 | 74 68 65 20 6d 65 6e 75 |XTitles |the menu|
|000019f0| 20 77 69 74 68 20 74 68 | 65 20 74 69 74 6c 65 20 | with th|e title |
|00001a00| 60 60 73 6f 6d 65 20 74 | 65 78 74 27 27 2e 0a 58 |``some t|ext''..X|
|00001a10| 2e 50 50 0a 58 4c 65 67 | 61 6c 20 6d 65 6e 75 20 |.PP.XLeg|al menu |
|00001a20| 6f 70 74 69 6f 6e 73 20 | 61 72 65 0a 58 2e 42 20 |options |are.X.B |
|00001a30| 63 6c 65 61 72 2c 20 62 | 6f 6c 64 2c 0a 58 61 6e |clear, b|old,.Xan|
|00001a40| 64 0a 58 2e 42 20 61 6c | 77 61 79 73 2d 73 68 6f |d.X.B al|ways-sho|
|00001a50| 77 2e 0a 58 2e 48 50 0a | 58 2e 42 20 63 6c 65 61 |w..X.HP.|X.B clea|
|00001a60| 72 0a 58 63 61 75 73 65 | 73 20 74 68 65 20 73 63 |r.Xcause|s the sc|
|00001a70| 72 65 65 6e 20 74 6f 20 | 62 65 20 63 6c 65 61 72 |reen to |be clear|
|00001a80| 65 64 20 70 72 69 6f 72 | 20 74 6f 20 64 69 73 70 |ed prior| to disp|
|00001a90| 6c 61 79 69 6e 67 20 74 | 68 65 20 6d 65 6e 75 2e |laying t|he menu.|
|00001aa0| 20 20 49 74 20 61 6c 73 | 6f 0a 58 63 61 75 73 65 | It als|o.Xcause|
|00001ab0| 73 20 61 0a 58 2e 49 20 | 5b 20 48 69 74 20 52 65 |s a.X.I |[ Hit Re|
|00001ac0| 74 75 72 6e 20 74 6f 20 | 43 6f 6e 74 69 6e 75 65 |turn to |Continue|
|00001ad0| 20 5d 0a 58 6d 65 73 73 | 61 67 65 20 74 6f 20 62 | ].Xmess|age to b|
|00001ae0| 65 20 64 69 73 70 6c 61 | 79 65 64 20 75 70 6f 6e |e displa|yed upon|
|00001af0| 20 74 68 65 20 63 6f 6d | 70 6c 65 74 69 6f 6e 20 | the com|pletion |
|00001b00| 6f 66 20 70 72 6f 63 65 | 73 73 69 6e 67 20 61 20 |of proce|ssing a |
|00001b10| 73 65 6c 65 63 74 69 6f | 6e 2e 0a 58 2e 48 50 0a |selectio|n..X.HP.|
|00001b20| 58 2e 42 20 62 6f 6c 64 | 0a 58 63 61 75 73 65 73 |X.B bold|.Xcauses|
|00001b30| 20 74 68 65 20 6d 65 6e | 75 20 74 69 74 6c 65 20 | the men|u title |
|00001b40| 74 6f 20 62 65 20 64 69 | 73 70 6c 61 79 65 64 20 |to be di|splayed |
|00001b50| 69 6e 0a 58 2e 49 20 73 | 74 61 6e 64 6f 75 74 20 |in.X.I s|tandout |
|00001b60| 6d 6f 64 65 2c 0a 58 69 | 66 20 74 68 65 20 74 65 |mode,.Xi|f the te|
|00001b70| 72 6d 69 6e 61 6c 20 74 | 79 70 65 20 69 73 20 64 |rminal t|ype is d|
|00001b80| 65 66 69 6e 65 64 20 61 | 6e 64 20 73 75 70 70 6f |efined a|nd suppo|
|00001b90| 72 74 73 20 69 74 2e 0a | 58 2e 48 50 0a 58 2e 42 |rts it..|X.HP.X.B|
|00001ba0| 20 61 6c 77 61 79 73 2d | 73 68 6f 77 0a 58 63 61 | always-|show.Xca|
|00001bb0| 75 73 65 73 20 74 68 65 | 20 6d 65 6e 75 20 73 65 |uses the| menu se|
|00001bc0| 6c 65 63 74 69 6f 6e 73 | 20 74 6f 20 61 6c 77 61 |lections| to alwa|
|00001bd0| 79 73 20 62 65 20 72 65 | 2d 64 69 73 70 6c 61 79 |ys be re|-display|
|00001be0| 65 64 20 61 66 74 65 72 | 20 61 20 6d 65 6e 75 0a |ed after| a menu.|
|00001bf0| 58 73 65 6c 65 63 74 69 | 6f 6e 20 69 73 20 63 6f |Xselecti|on is co|
|00001c00| 6d 70 6c 65 74 65 64 2e | 20 20 4f 74 68 65 72 77 |mpleted.| Otherw|
|00001c10| 69 73 65 2c 20 6f 6e 6c | 79 20 74 68 65 20 74 69 |ise, onl|y the ti|
|00001c20| 74 6c 65 20 61 6e 64 20 | 74 68 65 20 60 60 51 29 |tle and |the ``Q)|
|00001c30| 20 74 6f 0a 58 51 75 69 | 74 2c 20 3f 20 66 6f 72 | to.XQui|t, ? for|
|00001c40| 20 6d 65 6e 75 27 27 20 | 6d 65 73 73 61 67 65 20 | menu'' |message |
|00001c50| 69 73 20 64 69 73 70 6c | 61 79 65 64 2e 0a 58 2e |is displ|ayed..X.|
|00001c60| 50 50 0a 58 49 74 65 6d | 20 64 65 66 69 6e 69 74 |PP.XItem| definit|
|00001c70| 69 6f 6e 73 20 62 65 67 | 69 6e 20 77 69 74 68 20 |ions beg|in with |
|00001c80| 74 68 65 20 6b 65 79 20 | 77 6f 72 64 0a 58 2e 42 |the key |word.X.B|
|00001c90| 20 69 74 65 6d 0a 58 61 | 6e 64 20 61 72 65 20 74 | item.Xa|nd are t|
|00001ca0| 65 72 6d 69 6e 61 74 65 | 64 20 62 79 20 61 20 73 |erminate|d by a s|
|00001cb0| 65 6d 69 2d 63 6f 6c 6f | 6e 20 28 3b 29 2e 0a 58 |emi-colo|n (;)..X|
|00001cc0| 54 68 65 20 77 6f 72 64 | 0a 58 2e 42 20 69 74 65 |The word|.X.B ite|
|00001cd0| 6d 20 0a 58 69 73 20 66 | 6f 6c 6c 6f 77 65 64 20 |m .Xis f|ollowed |
|00001ce0| 62 79 20 74 68 65 20 70 | 72 6f 6d 70 74 20 73 74 |by the p|rompt st|
|00001cf0| 72 69 6e 67 20 65 6e 63 | 6c 6f 73 65 64 20 69 6e |ring enc|losed in|
|00001d00| 20 62 72 61 63 65 73 2c | 20 77 68 69 63 68 20 69 | braces,| which i|
|00001d10| 73 0a 58 66 6f 6c 6c 6f | 77 65 64 20 62 79 20 74 |s.Xfollo|wed by t|
|00001d20| 68 65 20 73 68 65 6c 6c | 20 73 63 72 69 70 74 20 |he shell| script |
|00001d30| 74 6f 20 72 75 6e 2c 20 | 65 6e 63 6c 6f 73 65 64 |to run, |enclosed|
|00001d40| 20 69 6e 20 62 72 61 63 | 65 73 2e 0a 58 54 68 65 | in brac|es..XThe|
|00001d50| 20 73 68 65 6c 6c 20 73 | 63 72 69 70 74 20 69 73 | shell s|cript is|
|00001d60| 20 66 6f 6c 6c 6f 77 65 | 64 20 62 79 20 7a 65 72 | followe|d by zer|
|00001d70| 6f 20 6f 72 20 6d 6f 72 | 65 20 70 61 72 61 6d 65 |o or mor|e parame|
|00001d80| 74 65 72 20 64 65 66 69 | 6e 69 74 69 6f 6e 73 2e |ter defi|nitions.|
|00001d90| 0a 58 2e 50 50 0a 58 50 | 61 72 61 6d 65 74 65 72 |.X.PP.XP|arameter|
|00001da0| 20 64 65 66 69 6e 69 74 | 69 6f 6e 73 20 62 65 67 | definit|ions beg|
|00001db0| 69 6e 20 77 69 74 68 20 | 74 68 65 20 6b 65 79 20 |in with |the key |
|00001dc0| 77 6f 72 64 0a 58 2e 42 | 20 70 61 72 6d 2c 0a 58 |word.X.B| parm,.X|
|00001dd0| 61 72 65 20 66 6f 6c 6c | 6f 77 65 64 20 62 79 20 |are foll|owed by |
|00001de0| 74 68 65 20 70 61 72 61 | 6d 65 74 65 72 20 69 64 |the para|meter id|
|00001df0| 65 6e 74 69 66 69 65 72 | 20 65 6e 63 6c 6f 73 65 |entifier| enclose|
|00001e00| 64 20 69 6e 20 64 6f 75 | 62 6c 65 0a 58 71 75 6f |d in dou|ble.Xquo|
|00001e10| 74 65 20 6d 61 72 6b 73 | 20 28 22 29 2c 20 77 68 |te marks| ("), wh|
|00001e20| 69 63 68 20 69 73 0a 58 | 66 6f 6c 6c 6f 77 65 64 |ich is.X|followed|
|00001e30| 20 62 79 20 74 68 65 20 | 70 72 6f 6d 70 74 20 66 | by the |prompt f|
|00001e40| 6f 72 20 74 68 65 20 70 | 61 72 61 6d 65 74 65 72 |or the p|arameter|
|00001e50| 20 65 6e 63 6c 6f 73 65 | 64 20 69 6e 20 62 72 61 | enclose|d in bra|
|00001e60| 63 65 73 2e 0a 58 50 61 | 72 61 6d 65 74 65 72 20 |ces..XPa|rameter |
|00001e70| 69 64 65 6e 74 69 66 69 | 65 72 73 20 6d 61 79 20 |identifi|ers may |
|00001e80| 6f 6e 6c 79 20 63 6f 6e | 74 61 69 6e 20 61 6c 70 |only con|tain alp|
|00001e90| 68 61 6e 75 6d 65 72 69 | 63 0a 58 63 68 61 72 61 |hanumeri|c.Xchara|
|00001ea0| 63 74 65 72 73 20 20 28 | 41 2d 5a 2c 61 2d 7a 2c |cters (|A-Z,a-z,|
|00001eb0| 20 30 2d 39 2c 20 61 6e | 64 20 5f 29 2c 20 61 73 | 0-9, an|d _), as|
|00001ec0| 20 61 20 63 72 75 64 65 | 20 66 6f 72 6d 20 6f 66 | a crude| form of|
|00001ed0| 20 65 72 72 6f 72 20 63 | 68 65 63 6b 69 6e 67 2e | error c|hecking.|
|00001ee0| 0a 58 2e 50 50 0a 58 2e | 42 20 4e 4f 54 45 3a 0a |.X.PP.X.|B NOTE:.|
|00001ef0| 58 74 65 78 74 20 62 6f | 75 6e 64 65 64 20 62 79 |Xtext bo|unded by|
|00001f00| 20 62 72 61 63 65 73 20 | 28 5c 20 7b 5c 20 7d 5c | braces |(\ {\ }\|
|00001f10| 20 29 20 69 6e 0a 58 2e | 42 20 74 69 74 6c 65 2c | ) in.X.|B title,|
|00001f20| 20 69 74 65 6d 2c 0a 58 | 61 6e 64 0a 58 2e 42 20 | item,.X|and.X.B |
|00001f30| 70 61 72 6d 0a 58 73 74 | 61 74 65 6d 65 6e 74 73 |parm.Xst|atements|
|00001f40| 20 6d 61 79 20 63 6f 6e | 74 61 69 6e 20 61 6e 79 | may con|tain any|
|00001f50| 20 63 68 61 72 61 63 74 | 65 72 20 65 78 63 65 70 | charact|er excep|
|00001f60| 74 20 6e 75 6c 6c 73 20 | 28 27 5c 5c 30 27 29 20 |t nulls |('\\0') |
|00001f70| 61 6e 64 0a 58 6e 6f 6e | 2d 65 73 63 61 70 65 64 |and.Xnon|-escaped|
|00001f80| 20 62 61 63 6b 2d 73 6c | 61 73 68 65 73 20 28 5c | back-sl|ashes (\|
|00001f90| 5c 29 20 61 6e 64 20 72 | 69 67 68 74 20 62 72 61 |\) and r|ight bra|
|00001fa0| 63 65 73 20 28 7d 29 2e | 20 20 4e 75 6c 6c 73 20 |ces (}).| Nulls |
|00001fb0| 61 72 65 0a 58 69 6c 6c | 65 67 61 6c 2c 20 62 65 |are.Xill|egal, be|
|00001fc0| 63 61 75 73 65 20 74 68 | 65 20 6c 65 78 69 63 61 |cause th|e lexica|
|00001fd0| 6c 20 61 6e 61 6c 79 7a | 65 72 20 77 6f 6e 27 74 |l analyz|er won't|
|00001fe0| 20 64 65 61 6c 20 77 69 | 74 68 20 74 68 65 6d 2e | deal wi|th them.|
|00001ff0| 0a 58 53 69 6e 67 6c 65 | 20 62 61 63 6b 2d 73 6c |.XSingle| back-sl|
|00002000| 61 73 68 65 73 20 61 6e | 64 20 72 69 67 68 74 20 |ashes an|d right |
|00002010| 62 72 61 63 65 73 20 61 | 72 65 20 77 72 69 74 74 |braces a|re writt|
|00002020| 65 6e 20 61 73 20 5c 5c | 5c 5c 20 61 6e 64 20 5c |en as \\|\\ and \|
|00002030| 5c 7d 2c 0a 58 72 65 73 | 70 65 63 74 69 76 65 6c |\},.Xres|pectivel|
|00002040| 79 2e 20 20 4f 74 68 65 | 72 20 62 61 63 6b 2d 73 |y. Othe|r back-s|
|00002050| 6c 61 73 68 20 65 73 63 | 61 70 65 20 73 65 71 75 |lash esc|ape sequ|
|00002060| 65 6e 63 65 73 20 6e 65 | 65 64 65 64 20 69 6e 20 |ences ne|eded in |
|00002070| 73 63 72 69 70 74 73 20 | 66 6f 72 0a 58 6f 74 68 |scripts |for.Xoth|
|00002080| 65 72 20 72 65 61 73 6f | 6e 73 20 64 6f 20 6e 6f |er reaso|ns do no|
|00002090| 74 20 6e 65 65 64 20 74 | 6f 20 62 65 20 65 73 63 |t need t|o be esc|
|000020a0| 61 70 65 64 20 5c 2d 20 | 69 2e 65 2e 20 65 63 68 |aped \- |i.e. ech|
|000020b0| 6f 20 22 5c 5c 6e 66 6f | 6f 22 20 69 6e 20 61 0a |o "\\nfo|o" in a.|
|000020c0| 58 73 68 65 6c 6c 20 73 | 63 72 69 70 74 20 64 6f |Xshell s|cript do|
|000020d0| 65 73 0a 58 2e 49 20 6e | 6f 74 0a 58 6e 65 65 64 |es.X.I n|ot.Xneed|
|000020e0| 20 74 6f 20 62 65 20 77 | 72 69 74 74 65 6e 20 65 | to be w|ritten e|
|000020f0| 63 68 6f 20 22 5c 5c 5c | 5c 6e 66 6f 6f 22 2e 0a |cho "\\\|\nfoo"..|
|00002100| 58 2e 49 50 0a 58 74 69 | 74 6c 65 20 7b 20 74 68 |X.IP.Xti|tle { th|
|00002110| 69 73 20 69 73 20 61 20 | 54 69 74 6c 65 20 7d 0a |is is a |Title }.|
|00002120| 58 2e 49 50 0a 58 62 6f | 6c 64 20 63 6c 65 61 72 |X.IP.Xbo|ld clear|
|00002130| 20 61 6c 77 61 79 73 2d | 73 68 6f 77 0a 58 2e 49 | always-|show.X.I|
|00002140| 50 0a 58 69 74 65 6d 20 | 7b 20 74 68 69 73 20 69 |P.Xitem |{ this i|
|00002150| 73 20 61 20 70 72 6f 6d | 70 74 20 7d 20 7b 20 65 |s a prom|pt } { e|
|00002160| 63 68 6f 20 22 24 46 4f | 4f 20 24 42 41 52 22 20 |cho "$FO|O $BAR" |
|00002170| 7d 0a 58 2e 49 50 0a 58 | 70 61 72 6d 20 22 46 4f |}.X.IP.X|parm "FO|
|00002180| 4f 22 20 7b 20 70 72 6f | 6d 70 74 20 66 6f 72 20 |O" { pro|mpt for |
|00002190| 46 4f 4f 20 7d 0a 58 2e | 49 50 0a 58 70 61 72 6d |FOO }.X.|IP.Xparm|
|000021a0| 20 22 42 41 52 22 20 7b | 20 70 72 6f 6d 70 74 20 | "BAR" {| prompt |
|000021b0| 66 6f 72 20 42 41 52 20 | 7d 0a 58 2e 49 50 0a 58 |for BAR |}.X.IP.X|
|000021c0| 3b 0a 58 2e 53 48 20 44 | 49 41 47 4e 4f 53 54 49 |;.X.SH D|IAGNOSTI|
|000021d0| 43 53 0a 58 2e 50 50 0a | 58 54 68 65 20 64 69 61 |CS.X.PP.|XThe dia|
|000021e0| 67 6e 6f 73 74 69 63 73 | 20 64 75 72 69 6e 67 20 |gnostics| during |
|000021f0| 74 68 65 20 70 61 72 73 | 65 20 6f 66 20 74 68 65 |the pars|e of the|
|00002200| 20 6d 65 6e 75 20 64 65 | 66 69 6e 69 74 69 6f 6e | menu de|finition|
|00002210| 20 61 72 65 20 61 6c 6c | 20 62 75 74 0a 58 6e 6f | are all| but.Xno|
|00002220| 6e 2d 65 78 69 73 74 65 | 6e 74 2e 0a 58 2e 53 48 |n-existe|nt..X.SH|
|00002230| 20 42 55 47 53 0a 58 2e | 50 50 0a 58 48 61 73 20 | BUGS.X.|PP.XHas |
|00002240| 6e 6f 20 70 72 6f 76 69 | 73 69 6f 6e 20 66 6f 72 |no provi|sion for|
|00002250| 20 6d 65 6e 75 73 20 77 | 68 69 63 68 20 65 78 63 | menus w|hich exc|
|00002260| 65 65 64 20 6f 6e 65 20 | 73 63 72 65 65 6e 20 69 |eed one |screen i|
|00002270| 6e 20 73 69 7a 65 2e 0a | 45 4e 44 5f 4f 46 5f 46 |n size..|END_OF_F|
|00002280| 49 4c 45 0a 69 66 20 74 | 65 73 74 20 33 34 33 36 |ILE.if t|est 3436|
|00002290| 20 2d 6e 65 20 60 77 63 | 20 2d 63 20 3c 27 64 75 | -ne `wc| -c <'du|
|000022a0| 6d 62 5f 6d 65 6e 75 2e | 31 27 60 3b 20 74 68 65 |mb_menu.|1'`; the|
|000022b0| 6e 0a 20 20 20 20 65 63 | 68 6f 20 73 68 61 72 3a |n. ec|ho shar:|
|000022c0| 20 5c 22 27 64 75 6d 62 | 5f 6d 65 6e 75 2e 31 27 | \"'dumb|_menu.1'|
|000022d0| 5c 22 20 75 6e 70 61 63 | 6b 65 64 20 77 69 74 68 |\" unpac|ked with|
|000022e0| 20 77 72 6f 6e 67 20 73 | 69 7a 65 21 0a 66 69 0a | wrong s|ize!.fi.|
|000022f0| 23 20 65 6e 64 20 6f 66 | 20 27 64 75 6d 62 5f 6d |# end of| 'dumb_m|
|00002300| 65 6e 75 2e 31 27 0a 66 | 69 0a 69 66 20 74 65 73 |enu.1'.f|i.if tes|
|00002310| 74 20 2d 66 20 27 64 75 | 6d 62 5f 6d 65 6e 75 2e |t -f 'du|mb_menu.|
|00002320| 6c 27 20 2d 61 20 22 24 | 7b 31 7d 22 20 21 3d 20 |l' -a "$|{1}" != |
|00002330| 22 2d 63 22 20 3b 20 74 | 68 65 6e 20 0a 20 20 65 |"-c" ; t|hen . e|
|00002340| 63 68 6f 20 73 68 61 72 | 3a 20 57 69 6c 6c 20 6e |cho shar|: Will n|
|00002350| 6f 74 20 63 6c 6f 62 62 | 65 72 20 65 78 69 73 74 |ot clobb|er exist|
|00002360| 69 6e 67 20 66 69 6c 65 | 20 5c 22 27 64 75 6d 62 |ing file| \"'dumb|
|00002370| 5f 6d 65 6e 75 2e 6c 27 | 5c 22 0a 65 6c 73 65 0a |_menu.l'|\".else.|
|00002380| 65 63 68 6f 20 73 68 61 | 72 3a 20 45 78 74 72 61 |echo sha|r: Extra|
|00002390| 63 74 69 6e 67 20 5c 22 | 27 64 75 6d 62 5f 6d 65 |cting \"|'dumb_me|
|000023a0| 6e 75 2e 6c 27 5c 22 20 | 5c 28 32 35 38 34 20 63 |nu.l'\" |\(2584 c|
|000023b0| 68 61 72 61 63 74 65 72 | 73 5c 29 0a 73 65 64 20 |haracter|s\).sed |
|000023c0| 22 73 2f 5e 58 2f 2f 22 | 20 3e 27 64 75 6d 62 5f |"s/^X//"| >'dumb_|
|000023d0| 6d 65 6e 75 2e 6c 27 20 | 3c 3c 27 45 4e 44 5f 4f |menu.l' |<<'END_O|
|000023e0| 46 5f 46 49 4c 45 27 0a | 58 09 2f 2a 20 40 28 23 |F_FILE'.|X./* @(#|
|000023f0| 29 64 75 6d 62 5f 6d 65 | 6e 75 2e 6c 09 31 2e 32 |)dumb_me|nu.l.1.2|
|00002400| 20 39 30 2f 30 33 2f 30 | 38 20 2a 2f 0a 58 09 2f | 90/03/0|8 */.X./|
|00002410| 2a 20 63 6f 70 79 72 69 | 74 65 20 28 63 29 20 4d |* copyri|te (c) M|
|00002420| 69 6c 6c 65 72 2f 48 6f | 77 61 72 64 20 49 6e 76 |iller/Ho|ward Inv|
|00002430| 65 73 74 6d 65 6e 74 73 | 2c 20 31 39 39 30 20 2a |estments|, 1990 *|
|00002440| 2f 0a 58 0a 58 25 7b 0a | 58 2f 2a 20 74 68 69 73 |/.X.X%{.|X/* this|
|00002450| 20 74 68 69 6e 67 20 69 | 73 20 64 65 73 69 67 6e | thing i|s design|
|00002460| 65 64 20 74 6f 20 75 73 | 65 20 66 6c 65 78 2c 20 |ed to us|e flex, |
|00002470| 6e 6f 74 20 6c 65 78 2e | 20 20 49 66 20 79 6f 75 |not lex.| If you|
|00002480| 20 64 6f 6e 27 74 20 68 | 61 76 65 0a 58 20 20 20 | don't h|ave.X |
|00002490| 69 74 2c 20 74 68 65 6e | 20 79 6f 75 27 6c 6c 20 |it, then| you'll |
|000024a0| 68 61 76 65 20 74 6f 20 | 72 65 2d 77 72 69 74 65 |have to |re-write|
|000024b0| 20 74 68 65 20 6c 65 78 | 69 63 61 6c 20 61 6e 61 | the lex|ical ana|
|000024c0| 6c 79 73 65 72 20 2a 2f | 0a 58 0a 58 23 69 6e 63 |lyser */|.X.X#inc|
|000024d0| 6c 75 64 65 20 3c 63 74 | 79 70 65 2e 68 3e 0a 58 |lude <ct|ype.h>.X|
|000024e0| 0a 58 20 20 63 68 61 72 | 20 2a 73 61 76 65 64 5f |.X char| *saved_|
|000024f0| 74 65 78 74 3b 0a 58 25 | 7d 0a 58 0a 58 09 2f 2a |text;.X%|}.X.X./*|
|00002500| 20 67 6c 6f 62 61 6c 20 | 64 65 66 69 6e 69 74 69 | global |definiti|
|00002510| 6f 6e 73 20 2a 2f 0a 58 | 0a 58 25 78 20 50 5f 53 |ons */.X|.X%x P_S|
|00002520| 54 41 54 45 20 54 5f 53 | 54 41 54 45 0a 58 0a 58 |TATE T_S|TATE.X.X|
|00002530| 25 25 0a 58 0a 58 69 74 | 65 6d 09 72 65 74 75 72 |%%.X.Xit|em.retur|
|00002540| 6e 20 49 54 45 4d 3b 0a | 58 70 61 72 6d 09 72 65 |n ITEM;.|Xparm.re|
|00002550| 74 75 72 6e 20 50 41 52 | 4d 3b 0a 58 74 69 74 6c |turn PAR|M;.Xtitl|
|00002560| 65 09 72 65 74 75 72 6e | 20 54 49 54 4c 45 3b 0a |e.return| TITLE;.|
|00002570| 58 63 6c 65 61 72 09 72 | 65 74 75 72 6e 20 43 4c |Xclear.r|eturn CL|
|00002580| 45 41 52 3b 0a 58 62 6f | 6c 64 09 72 65 74 75 72 |EAR;.Xbo|ld.retur|
|00002590| 6e 20 42 4f 4c 44 3b 0a | 58 22 61 6c 77 61 79 73 |n BOLD;.|X"always|
|000025a0| 2d 73 68 6f 77 22 09 72 | 65 74 75 72 6e 20 41 4c |-show".r|eturn AL|
|000025b0| 57 41 59 53 5f 53 48 4f | 57 3b 0a 58 22 7b 22 09 |WAYS_SHO|W;.X"{".|
|000025c0| 7b 20 42 45 47 49 4e 20 | 54 5f 53 54 41 54 45 20 |{ BEGIN |T_STATE |
|000025d0| 3b 20 7d 0a 58 5c 22 09 | 7b 20 42 45 47 49 4e 20 |; }.X\".|{ BEGIN |
|000025e0| 50 5f 53 54 41 54 45 3b | 20 7d 0a 58 22 3b 22 09 |P_STATE;| }.X";".|
|000025f0| 72 65 74 75 72 6e 20 27 | 3b 27 3b 0a 58 5b 20 5c |return '|;';.X[ \|
|00002600| 74 5d 2b 09 3b 0a 58 5c | 6e 09 6c 69 6e 65 5f 6e |t]+.;.X\|n.line_n|
|00002610| 75 6d 62 65 72 2b 2b 3b | 0a 58 2e 09 72 65 74 75 |umber++;|.X..retu|
|00002620| 72 6e 20 45 52 52 4f 52 | 3b 0a 58 0a 58 3c 54 5f |rn ERROR|;.X.X<T_|
|00002630| 53 54 41 54 45 3e 22 5c | 5c 7d 22 09 61 64 64 5f |STATE>"\|\}".add_|
|00002640| 74 65 78 74 28 22 7d 22 | 29 3b 0a 58 3c 54 5f 53 |text("}"|);.X<T_S|
|00002650| 54 41 54 45 3e 22 7d 22 | 09 7b 0a 58 09 73 74 72 |TATE>"}"|.{.X.str|
|00002660| 69 70 5f 77 68 69 74 65 | 5f 73 70 61 63 65 28 29 |ip_white|_space()|
|00002670| 3b 0a 58 20 20 09 79 79 | 6c 76 61 6c 2e 74 78 74 |;.X .yy|lval.txt|
|00002680| 20 3d 20 73 61 76 65 64 | 5f 74 65 78 74 3b 0a 58 | = saved|_text;.X|
|00002690| 09 73 61 76 65 64 5f 74 | 65 78 74 20 3d 20 28 63 |.saved_t|ext = (c|
|000026a0| 68 61 72 20 2a 29 30 3b | 0a 58 09 42 45 47 49 4e |har *)0;|.X.BEGIN|
|000026b0| 20 30 3b 0a 58 09 72 65 | 74 75 72 6e 20 54 45 58 | 0;.X.re|turn TEX|
|000026c0| 54 3b 20 7d 0a 58 3c 54 | 5f 53 54 41 54 45 3e 22 |T; }.X<T|_STATE>"|
|000026d0| 5c 5c 5c 6e 22 09 7b 0a | 58 09 6c 69 6e 65 5f 6e |\\\n".{.|X.line_n|
|000026e0| 75 6d 62 65 72 2b 2b 3b | 0a 58 09 61 64 64 5f 74 |umber++;|.X.add_t|
|000026f0| 65 78 74 28 79 79 74 65 | 78 74 29 3b 0a 58 09 7d |ext(yyte|xt);.X.}|
|00002700| 0a 58 3c 54 5f 53 54 41 | 54 45 3e 5c 5c 2e 09 61 |.X<T_STA|TE>\\..a|
|00002710| 64 64 5f 74 65 78 74 28 | 79 79 74 65 78 74 29 3b |dd_text(|yytext);|
|00002720| 0a 58 3c 54 5f 53 54 41 | 54 45 3e 5b 5e 5c 5c 7d |.X<T_STA|TE>[^\\}|
|00002730| 5c 6e 5d 2b 09 61 64 64 | 5f 74 65 78 74 28 79 79 |\n]+.add|_text(yy|
|00002740| 74 65 78 74 29 3b 0a 58 | 3c 54 5f 53 54 41 54 45 |text);.X|<T_STATE|
|00002750| 3e 22 5c 6e 22 09 7b 0a | 58 09 6c 69 6e 65 5f 6e |>"\n".{.|X.line_n|
|00002760| 75 6d 62 65 72 2b 2b 3b | 0a 58 09 61 64 64 5f 74 |umber++;|.X.add_t|
|00002770| 65 78 74 28 22 5c 6e 22 | 29 3b 0a 58 09 7d 0a 58 |ext("\n"|);.X.}.X|
|00002780| 0a 58 3c 50 5f 53 54 41 | 54 45 3e 5b 41 2d 5a 61 |.X<P_STA|TE>[A-Za|
|00002790| 2d 7a 30 2d 39 5f 5d 2b | 09 61 64 64 5f 74 65 78 |-z0-9_]+|.add_tex|
|000027a0| 74 28 79 79 74 65 78 74 | 29 3b 0a 58 3c 50 5f 53 |t(yytext|);.X<P_S|
|000027b0| 54 41 54 45 3e 5c 22 09 | 7b 0a 58 09 69 66 20 28 |TATE>\".|{.X.if (|
|000027c0| 73 61 76 65 64 5f 74 65 | 78 74 29 20 7b 0a 58 09 |saved_te|xt) {.X.|
|000027d0| 20 20 73 74 72 69 70 5f | 77 68 69 74 65 5f 73 70 | strip_|white_sp|
|000027e0| 61 63 65 28 29 3b 0a 58 | 09 20 20 79 79 6c 76 61 |ace();.X|. yylva|
|000027f0| 6c 2e 74 78 74 20 3d 20 | 73 61 76 65 64 5f 74 65 |l.txt = |saved_te|
|00002800| 78 74 3b 0a 58 09 20 20 | 73 61 76 65 64 5f 74 65 |xt;.X. |saved_te|
|00002810| 78 74 20 3d 20 28 63 68 | 61 72 20 2a 29 30 3b 0a |xt = (ch|ar *)0;.|
|00002820| 58 09 20 20 42 45 47 49 | 4e 20 30 3b 0a 58 09 20 |X. BEGI|N 0;.X. |
|00002830| 20 72 65 74 75 72 6e 20 | 50 41 52 4d 5f 4e 41 4d | return |PARM_NAM|
|00002840| 45 3b 0a 58 09 7d 0a 58 | 09 66 70 72 69 6e 74 66 |E;.X.}.X|.fprintf|
|00002850| 28 73 74 64 65 72 72 2c | 20 22 6c 65 78 20 65 72 |(stderr,| "lex er|
|00002860| 72 6f 72 5c 6e 22 29 3b | 0a 58 09 6c 65 78 5f 65 |ror\n");|.X.lex_e|
|00002870| 72 72 6f 72 73 2b 2b 3b | 0a 58 09 72 65 74 75 72 |rrors++;|.X.retur|
|00002880| 6e 20 45 52 52 4f 52 3b | 0a 58 09 7d 0a 58 25 25 |n ERROR;|.X.}.X%%|
|00002890| 0a 58 0a 58 2f 2a 20 63 | 20 70 72 6f 67 72 61 6d |.X.X/* c| program|
|000028a0| 20 74 65 78 74 20 2a 2f | 0a 58 0a 58 23 64 65 66 | text */|.X.X#def|
|000028b0| 69 6e 65 20 49 4e 49 54 | 5f 53 49 5a 45 09 32 35 |ine INIT|_SIZE.25|
|000028c0| 36 0a 58 23 64 65 66 69 | 6e 65 20 49 4e 43 5f 53 |6.X#defi|ne INC_S|
|000028d0| 49 5a 45 09 36 34 0a 58 | 0a 58 61 64 64 5f 74 65 |IZE.64.X|.Xadd_te|
|000028e0| 78 74 28 73 29 0a 58 63 | 68 61 72 20 2a 73 3b 0a |xt(s).Xc|har *s;.|
|000028f0| 58 7b 0a 58 20 20 73 74 | 61 74 69 63 20 69 6e 74 |X{.X st|atic int|
|00002900| 20 73 61 76 65 64 5f 6c | 65 6e 67 74 68 3b 0a 58 | saved_l|ength;.X|
|00002910| 20 20 73 74 61 74 69 63 | 20 69 6e 74 20 72 6f 6f | static| int roo|
|00002920| 6d 5f 6c 65 66 74 3b 0a | 58 20 20 69 6e 74 20 6c |m_left;.|X int l|
|00002930| 65 6e 20 3d 20 73 74 72 | 6c 65 6e 28 73 29 3b 0a |en = str|len(s);.|
|00002940| 58 20 20 73 74 61 74 69 | 63 20 69 6e 74 20 73 61 |X stati|c int sa|
|00002950| 76 65 64 5f 73 69 7a 65 | 3b 0a 58 0a 58 20 20 69 |ved_size|;.X.X i|
|00002960| 66 20 28 21 73 61 76 65 | 64 5f 74 65 78 74 29 20 |f (!save|d_text) |
|00002970| 7b 0a 58 20 20 20 20 6d | 65 6d 73 65 74 28 73 61 |{.X m|emset(sa|
|00002980| 76 65 64 5f 74 65 78 74 | 20 3d 20 6d 61 6c 6c 6f |ved_text| = mallo|
|00002990| 63 28 49 4e 49 54 5f 53 | 49 5a 45 29 2c 20 27 5c |c(INIT_S|IZE), '\|
|000029a0| 30 27 2c 20 49 4e 49 54 | 5f 53 49 5a 45 29 3b 0a |0', INIT|_SIZE);.|
|000029b0| 58 20 20 20 20 72 6f 6f | 6d 5f 6c 65 66 74 20 3d |X roo|m_left =|
|000029c0| 20 49 4e 49 54 5f 53 49 | 5a 45 3b 0a 58 20 20 20 | INIT_SI|ZE;.X |
|000029d0| 20 73 61 76 65 64 5f 73 | 69 7a 65 20 3d 20 49 4e | saved_s|ize = IN|
|000029e0| 49 54 5f 53 49 5a 45 3b | 0a 58 20 20 20 20 73 61 |IT_SIZE;|.X sa|
|000029f0| 76 65 64 5f 6c 65 6e 67 | 74 68 20 3d 20 30 3b 0a |ved_leng|th = 0;.|
|00002a00| 58 20 20 7d 0a 58 0a 58 | 20 20 6c 65 6e 2b 2b 3b |X }.X.X| len++;|
|00002a10| 09 09 09 2f 2a 20 69 6e | 63 20 6c 65 6e 20 74 6f |.../* in|c len to|
|00002a20| 20 61 63 63 6f 75 6e 74 | 20 66 6f 72 20 74 65 72 | account| for ter|
|00002a30| 6d 69 6e 61 74 69 6e 67 | 20 6e 75 6c 6c 20 2a 2f |minating| null */|
|00002a40| 0a 58 20 20 77 68 69 6c | 65 20 28 6c 65 6e 20 3e |.X whil|e (len >|
|00002a50| 3d 20 72 6f 6f 6d 5f 6c | 65 66 74 29 20 7b 0a 58 |= room_l|eft) {.X|
|00002a60| 20 20 20 20 73 61 76 65 | 64 5f 74 65 78 74 20 3d | save|d_text =|
|00002a70| 20 72 65 61 6c 6c 6f 63 | 28 73 61 76 65 64 5f 74 | realloc|(saved_t|
|00002a80| 65 78 74 2c 20 73 61 76 | 65 64 5f 73 69 7a 65 20 |ext, sav|ed_size |
|00002a90| 2b 3d 20 49 4e 43 5f 53 | 49 5a 45 29 3b 0a 58 20 |+= INC_S|IZE);.X |
|00002aa0| 20 20 20 72 6f 6f 6d 5f | 6c 65 66 74 20 2b 3d 20 | room_|left += |
|00002ab0| 49 4e 43 5f 53 49 5a 45 | 3b 0a 58 20 20 7d 0a 58 |INC_SIZE|;.X }.X|
|00002ac0| 0a 58 20 20 6d 65 6d 63 | 70 79 28 73 61 76 65 64 |.X memc|py(saved|
|00002ad0| 5f 74 65 78 74 20 2b 20 | 73 61 76 65 64 5f 6c 65 |_text + |saved_le|
|00002ae0| 6e 67 74 68 2c 20 73 2c | 20 6c 65 6e 29 3b 0a 58 |ngth, s,| len);.X|
|00002af0| 20 20 2f 2a 20 74 68 65 | 20 74 72 61 69 6c 69 6e | /* the| trailin|
|00002b00| 67 20 6e 75 6c 6c 20 77 | 69 6c 6c 20 62 65 20 6f |g null w|ill be o|
|00002b10| 76 65 72 77 72 69 74 74 | 65 6e 20 6e 65 78 74 20 |verwritt|en next |
|00002b20| 74 69 6d 65 0a 58 20 20 | 20 20 20 73 6f 20 69 74 |time.X | so it|
|00002b30| 20 64 6f 65 73 6e 27 74 | 20 63 6f 75 6e 74 20 69 | doesn't| count i|
|00002b40| 6e 20 63 6f 6d 70 75 74 | 69 6e 67 20 72 6f 6f 6d |n comput|ing room|
|00002b50| 20 6c 65 66 74 20 2a 2f | 0a 58 20 20 72 6f 6f 6d | left */|.X room|
|00002b60| 5f 6c 65 66 74 20 2d 3d | 20 2d 2d 6c 65 6e 3b 0a |_left -=| --len;.|
|00002b70| 58 20 20 73 61 76 65 64 | 5f 6c 65 6e 67 74 68 20 |X saved|_length |
|00002b80| 2b 3d 20 6c 65 6e 3b 0a | 58 7d 0a 58 0a 58 73 74 |+= len;.|X}.X.Xst|
|00002b90| 72 69 70 5f 77 68 69 74 | 65 5f 73 70 61 63 65 28 |rip_whit|e_space(|
|00002ba0| 29 0a 58 7b 0a 58 20 20 | 63 68 61 72 20 2a 63 70 |).X{.X |char *cp|
|00002bb0| 3b 0a 58 20 20 63 68 61 | 72 20 2a 73 70 3b 0a 58 |;.X cha|r *sp;.X|
|00002bc0| 0a 58 20 20 69 66 20 28 | 21 73 61 76 65 64 5f 74 |.X if (|!saved_t|
|00002bd0| 65 78 74 29 0a 58 20 20 | 20 20 72 65 74 75 72 6e |ext).X | return|
|00002be0| 3b 0a 58 0a 58 20 20 66 | 6f 72 20 28 63 70 20 3d |;.X.X f|or (cp =|
|00002bf0| 20 73 61 76 65 64 5f 74 | 65 78 74 20 2b 20 73 74 | saved_t|ext + st|
|00002c00| 72 6c 65 6e 28 73 61 76 | 65 64 5f 74 65 78 74 29 |rlen(sav|ed_text)|
|00002c10| 20 2d 20 31 3b 63 70 20 | 3e 20 73 61 76 65 64 5f | - 1;cp |> saved_|
|00002c20| 74 65 78 74 3b 63 70 2d | 2d 29 20 7b 0a 58 20 20 |text;cp-|-) {.X |
|00002c30| 20 20 69 66 20 28 21 69 | 73 73 70 61 63 65 28 2a | if (!i|sspace(*|
|00002c40| 63 70 29 29 0a 58 20 20 | 20 20 20 20 62 72 65 61 |cp)).X | brea|
|00002c50| 6b 3b 0a 58 20 20 7d 0a | 58 20 20 2a 2b 2b 63 70 |k;.X }.|X *++cp|
|00002c60| 20 3d 20 27 5c 30 27 3b | 0a 58 0a 58 20 20 66 6f | = '\0';|.X.X fo|
|00002c70| 72 20 28 63 70 3d 73 61 | 76 65 64 5f 74 65 78 74 |r (cp=sa|ved_text|
|00002c80| 3b 2a 63 70 20 26 26 20 | 69 73 73 70 61 63 65 28 |;*cp && |isspace(|
|00002c90| 2a 63 70 29 3b 63 70 2b | 2b 29 0a 58 20 20 20 20 |*cp);cp+|+).X |
|00002ca0| 3b 0a 58 0a 58 20 20 2f | 2a 20 69 73 20 69 74 20 |;.X.X /|* is it |
|00002cb0| 61 6c 6c 20 77 68 69 74 | 65 3f 20 2a 2f 0a 58 20 |all whit|e? */.X |
|00002cc0| 20 69 66 20 28 21 2a 63 | 70 20 26 26 20 63 70 20 | if (!*c|p && cp |
|00002cd0| 3e 20 73 61 76 65 64 5f | 74 65 78 74 29 20 7b 0a |> saved_|text) {.|
|00002ce0| 58 20 20 20 20 73 61 76 | 65 64 5f 74 65 78 74 20 |X sav|ed_text |
|00002cf0| 3d 20 72 65 61 6c 6c 6f | 63 28 73 61 76 65 64 5f |= reallo|c(saved_|
|00002d00| 74 65 78 74 2c 20 31 29 | 3b 0a 58 20 20 20 20 2a |text, 1)|;.X *|
|00002d10| 73 61 76 65 64 5f 74 65 | 78 74 20 3d 20 27 5c 30 |saved_te|xt = '\0|
|00002d20| 27 3b 0a 58 20 20 20 20 | 72 65 74 75 72 6e 3b 0a |';.X |return;.|
|00002d30| 58 20 20 7d 0a 58 0a 58 | 20 20 2f 2a 20 69 73 20 |X }.X.X| /* is |
|00002d40| 74 68 65 72 65 20 61 6e | 79 20 6c 65 61 64 69 6e |there an|y leadin|
|00002d50| 67 20 77 68 69 74 65 20 | 73 70 61 63 65 3f 20 2a |g white |space? *|
|00002d60| 2f 0a 58 20 20 69 66 20 | 28 63 70 20 3e 20 73 61 |/.X if |(cp > sa|
|00002d70| 76 65 64 5f 74 65 78 74 | 29 20 7b 0a 58 20 20 20 |ved_text|) {.X |
|00002d80| 20 63 68 61 72 20 2a 74 | 6d 70 3b 0a 58 20 20 20 | char *t|mp;.X |
|00002d90| 20 69 6e 74 20 6c 65 6e | 3b 0a 58 0a 58 20 20 20 | int len|;.X.X |
|00002da0| 20 74 6d 70 20 3d 20 6d | 61 6c 6c 6f 63 28 6c 65 | tmp = m|alloc(le|
|00002db0| 6e 20 3d 20 73 74 72 6c | 65 6e 28 63 70 29 20 2b |n = strl|en(cp) +|
|00002dc0| 20 31 29 3b 0a 58 20 20 | 20 20 6d 65 6d 63 70 79 | 1);.X | memcpy|
|00002dd0| 28 74 6d 70 2c 20 63 70 | 2c 20 6c 65 6e 29 3b 0a |(tmp, cp|, len);.|
|00002de0| 58 20 20 20 20 66 72 65 | 65 28 73 61 76 65 64 5f |X fre|e(saved_|
|00002df0| 74 65 78 74 29 3b 0a 58 | 20 20 20 20 73 61 76 65 |text);.X| save|
|00002e00| 64 5f 74 65 78 74 20 3d | 20 74 6d 70 3b 0a 58 0a |d_text =| tmp;.X.|
|00002e10| 58 20 20 20 20 72 65 74 | 75 72 6e 3b 0a 58 20 20 |X ret|urn;.X |
|00002e20| 7d 0a 58 0a 58 20 20 73 | 61 76 65 64 5f 74 65 78 |}.X.X s|aved_tex|
|00002e30| 74 20 3d 20 72 65 61 6c | 6c 6f 63 28 73 61 76 65 |t = real|loc(save|
|00002e40| 64 5f 74 65 78 74 2c 20 | 73 74 72 6c 65 6e 28 73 |d_text, |strlen(s|
|00002e50| 61 76 65 64 5f 74 65 78 | 74 29 20 2b 20 31 29 3b |aved_tex|t) + 1);|
|00002e60| 0a 58 7d 0a 58 0a 58 23 | 69 66 64 65 66 20 79 79 |.X}.X.X#|ifdef yy|
|00002e70| 77 72 61 70 0a 58 23 75 | 6e 64 65 66 20 79 79 77 |wrap.X#u|ndef yyw|
|00002e80| 72 61 70 0a 58 23 65 6e | 64 69 66 0a 45 4e 44 5f |rap.X#en|dif.END_|
|00002e90| 4f 46 5f 46 49 4c 45 0a | 69 66 20 74 65 73 74 20 |OF_FILE.|if test |
|00002ea0| 32 35 38 34 20 2d 6e 65 | 20 60 77 63 20 2d 63 20 |2584 -ne| `wc -c |
|00002eb0| 3c 27 64 75 6d 62 5f 6d | 65 6e 75 2e 6c 27 60 3b |<'dumb_m|enu.l'`;|
|00002ec0| 20 74 68 65 6e 0a 20 20 | 20 20 65 63 68 6f 20 73 | then. | echo s|
|00002ed0| 68 61 72 3a 20 5c 22 27 | 64 75 6d 62 5f 6d 65 6e |har: \"'|dumb_men|
|00002ee0| 75 2e 6c 27 5c 22 20 75 | 6e 70 61 63 6b 65 64 20 |u.l'\" u|npacked |
|00002ef0| 77 69 74 68 20 77 72 6f | 6e 67 20 73 69 7a 65 21 |with wro|ng size!|
|00002f00| 0a 66 69 0a 23 20 65 6e | 64 20 6f 66 20 27 64 75 |.fi.# en|d of 'du|
|00002f10| 6d 62 5f 6d 65 6e 75 2e | 6c 27 0a 66 69 0a 69 66 |mb_menu.|l'.fi.if|
|00002f20| 20 74 65 73 74 20 2d 66 | 20 27 64 75 6d 62 5f 6d | test -f| 'dumb_m|
|00002f30| 65 6e 75 2e 79 27 20 2d | 61 20 22 24 7b 31 7d 22 |enu.y' -|a "${1}"|
|00002f40| 20 21 3d 20 22 2d 63 22 | 20 3b 20 74 68 65 6e 20 | != "-c"| ; then |
|00002f50| 0a 20 20 65 63 68 6f 20 | 73 68 61 72 3a 20 57 69 |. echo |shar: Wi|
|00002f60| 6c 6c 20 6e 6f 74 20 63 | 6c 6f 62 62 65 72 20 65 |ll not c|lobber e|
|00002f70| 78 69 73 74 69 6e 67 20 | 66 69 6c 65 20 5c 22 27 |xisting |file \"'|
|00002f80| 64 75 6d 62 5f 6d 65 6e | 75 2e 79 27 5c 22 0a 65 |dumb_men|u.y'\".e|
|00002f90| 6c 73 65 0a 65 63 68 6f | 20 73 68 61 72 3a 20 45 |lse.echo| shar: E|
|00002fa0| 78 74 72 61 63 74 69 6e | 67 20 5c 22 27 64 75 6d |xtractin|g \"'dum|
|00002fb0| 62 5f 6d 65 6e 75 2e 79 | 27 5c 22 20 5c 28 31 31 |b_menu.y|'\" \(11|
|00002fc0| 38 38 33 20 63 68 61 72 | 61 63 74 65 72 73 5c 29 |883 char|acters\)|
|00002fd0| 0a 73 65 64 20 22 73 2f | 5e 58 2f 2f 22 20 3e 27 |.sed "s/|^X//" >'|
|00002fe0| 64 75 6d 62 5f 6d 65 6e | 75 2e 79 27 20 3c 3c 27 |dumb_men|u.y' <<'|
|00002ff0| 45 4e 44 5f 4f 46 5f 46 | 49 4c 45 27 0a 58 25 7b |END_OF_F|ILE'.X%{|
|00003000| 0a 58 2f 2a 20 40 28 23 | 29 64 75 6d 62 5f 6d 65 |.X/* @(#|)dumb_me|
|00003010| 6e 75 2e 79 09 31 2e 33 | 20 39 30 2f 30 33 2f 30 |nu.y.1.3| 90/03/0|
|00003020| 38 20 2a 2f 0a 58 0a 58 | 73 74 61 74 69 63 20 63 |8 */.X.X|static c|
|00003030| 68 61 72 20 2a 63 70 79 | 5f 73 74 72 20 3d 0a 58 |har *cpy|_str =.X|
|00003040| 20 20 22 43 6f 70 79 72 | 69 67 68 74 20 28 63 29 | "Copyr|ight (c)|
|00003050| 2c 20 4d 69 6b 65 20 48 | 6f 77 61 72 64 2c 20 31 |, Mike H|oward, 1|
|00003060| 39 39 30 2c 20 61 6c 6c | 20 72 69 67 68 74 73 20 |990, all| rights |
|00003070| 72 65 73 65 72 76 65 64 | 22 3b 0a 58 0a 58 2f 2a |reserved|";.X.X/*|
|00003080| 20 43 6f 6e 64 69 74 69 | 6f 6e 73 20 6f 66 20 75 | Conditi|ons of u|
|00003090| 73 65 3a 0a 58 0a 58 20 | 20 20 54 68 69 73 20 73 |se:.X.X | This s|
|000030a0| 6f 66 74 77 61 72 65 20 | 69 73 20 6e 6f 74 20 66 |oftware |is not f|
|000030b0| 6f 72 20 73 61 6c 65 20 | 61 6e 64 20 69 73 20 6e |or sale |and is n|
|000030c0| 6f 74 20 74 6f 20 62 65 | 20 73 6f 6c 64 20 62 79 |ot to be| sold by|
|000030d0| 20 6f 72 0a 58 20 20 20 | 74 6f 20 61 6e 79 6f 6e | or.X |to anyon|
|000030e0| 65 2e 0a 58 0a 58 20 20 | 20 59 6f 75 20 6d 61 79 |e..X.X | You may|
|000030f0| 20 75 73 65 20 74 68 69 | 73 20 73 6f 66 74 77 61 | use thi|s softwa|
|00003100| 72 65 20 61 6e 64 20 6d | 61 79 20 64 69 73 74 72 |re and m|ay distr|
|00003110| 69 62 75 74 65 20 69 74 | 20 74 6f 20 61 6e 79 6f |ibute it| to anyo|
|00003120| 6e 65 0a 58 20 20 20 79 | 6f 75 20 77 69 73 68 20 |ne.X y|ou wish |
|00003130| 74 6f 20 70 72 6f 76 69 | 64 65 64 20 79 6f 75 20 |to provi|ded you |
|00003140| 64 69 73 74 72 69 62 75 | 74 65 20 74 68 65 20 65 |distribu|te the e|
|00003150| 6e 74 69 72 65 20 64 69 | 73 74 72 69 62 75 74 69 |ntire di|stributi|
|00003160| 6f 6e 0a 58 20 20 20 70 | 61 63 6b 61 67 65 20 77 |on.X p|ackage w|
|00003170| 2f 6f 20 61 6e 79 20 64 | 65 6c 65 74 69 6f 6e 73 |/o any d|eletions|
|00003180| 20 28 69 2e 65 2e 20 69 | 6e 63 6c 75 64 65 20 61 | (i.e. i|nclude a|
|00003190| 6c 6c 20 74 68 65 20 73 | 6f 75 72 63 65 20 63 6f |ll the s|ource co|
|000031a0| 64 65 29 2e 0a 58 0a 58 | 20 20 20 49 20 64 6f 20 |de)..X.X| I do |
|000031b0| 6e 6f 74 20 77 61 72 72 | 65 6e 74 20 74 68 69 73 |not warr|ent this|
|000031c0| 20 73 6f 66 74 77 61 72 | 65 20 74 6f 20 64 6f 20 | softwar|e to do |
|000031d0| 61 6e 79 74 68 69 6e 67 | 20 61 74 20 61 6c 6c 20 |anything| at all |
|000031e0| 61 6e 64 0a 58 20 20 20 | 61 6d 20 6e 6f 74 20 72 |and.X |am not r|
|000031f0| 65 73 70 6f 6e 73 69 62 | 6c 65 20 66 6f 72 20 61 |esponsib|le for a|
|00003200| 6e 79 74 68 69 6e 67 20 | 77 68 69 63 68 20 68 61 |nything |which ha|
|00003210| 70 70 65 6e 73 20 61 73 | 20 61 20 72 65 73 75 6c |ppens as| a resul|
|00003220| 74 20 6f 66 0a 58 20 20 | 20 69 74 73 20 75 73 65 |t of.X | its use|
|00003230| 2e 0a 58 2a 2f 0a 58 0a | 58 23 69 6e 63 6c 75 64 |..X*/.X.|X#includ|
|00003240| 65 20 3c 73 74 64 69 6f | 2e 68 3e 0a 58 23 69 6e |e <stdio|.h>.X#in|
|00003250| 63 6c 75 64 65 20 3c 66 | 63 6e 74 6c 2e 68 3e 0a |clude <f|cntl.h>.|
|00003260| 58 23 69 6e 63 6c 75 64 | 65 20 3c 73 74 72 69 6e |X#includ|e <strin|
|00003270| 67 2e 68 3e 0a 58 23 69 | 6e 63 6c 75 64 65 20 3c |g.h>.X#i|nclude <|
|00003280| 73 69 67 6e 61 6c 2e 68 | 3e 0a 58 23 69 6e 63 6c |signal.h|>.X#incl|
|00003290| 75 64 65 20 3c 73 65 74 | 6a 6d 70 2e 68 3e 0a 58 |ude <set|jmp.h>.X|
|000032a0| 0a 58 73 74 72 75 63 74 | 20 70 61 72 6d 20 7b 0a |.Xstruct| parm {.|
|000032b0| 58 20 20 73 74 72 75 63 | 74 20 70 61 72 6d 20 2a |X struc|t parm *|
|000032c0| 6e 65 78 74 3b 0a 58 20 | 20 63 68 61 72 20 2a 70 |next;.X | char *p|
|000032d0| 72 6f 6d 70 74 3b 0a 58 | 20 20 63 68 61 72 20 2a |rompt;.X| char *|
|000032e0| 69 64 65 6e 74 69 66 69 | 65 72 3b 0a 58 20 20 63 |identifi|er;.X c|
|000032f0| 68 61 72 20 2a 76 61 6c | 75 65 3b 0a 58 7d 3b 0a |har *val|ue;.X};.|
|00003300| 58 0a 58 73 74 72 75 63 | 74 20 69 74 65 6d 20 7b |X.Xstruc|t item {|
|00003310| 0a 58 20 20 73 74 72 75 | 63 74 20 69 74 65 6d 20 |.X stru|ct item |
|00003320| 2a 6e 65 78 74 3b 0a 58 | 20 20 63 68 61 72 20 2a |*next;.X| char *|
|00003330| 70 72 6f 6d 70 74 3b 0a | 58 20 20 63 68 61 72 20 |prompt;.|X char |
|00003340| 2a 63 6f 6d 6d 61 6e 64 | 3b 0a 58 20 20 73 74 72 |*command|;.X str|
|00003350| 75 63 74 20 70 61 72 6d | 20 2a 70 61 72 6d 73 3b |uct parm| *parms;|
|00003360| 0a 58 7d 3b 0a 58 0a 58 | 73 74 72 75 63 74 20 69 |.X};.X.X|struct i|
|00003370| 74 65 6d 20 2a 6d 65 6e | 75 5f 68 65 61 64 3b 0a |tem *men|u_head;.|
|00003380| 58 73 74 72 75 63 74 20 | 69 74 65 6d 20 2a 6d 65 |Xstruct |item *me|
|00003390| 6e 75 5f 74 61 69 6c 3b | 0a 58 0a 58 69 6e 74 20 |nu_tail;|.X.Xint |
|000033a0| 6d 61 78 5f 69 74 65 6d | 3b 0a 58 0a 58 73 74 72 |max_item|;.X.Xstr|
|000033b0| 75 63 74 20 70 61 72 6d | 20 2a 70 61 72 6d 5f 6c |uct parm| *parm_l|
|000033c0| 69 73 74 3b 0a 58 0a 58 | 63 68 61 72 20 2a 6d 65 |ist;.X.X|char *me|
|000033d0| 6e 75 5f 74 69 74 6c 65 | 3b 0a 58 0a 58 63 68 61 |nu_title|;.X.Xcha|
|000033e0| 72 20 2a 6d 61 6c 6c 6f | 63 28 29 3b 0a 58 63 68 |r *mallo|c();.Xch|
|000033f0| 61 72 20 2a 72 65 61 6c | 6c 6f 63 28 29 3b 0a 58 |ar *real|loc();.X|
|00003400| 0a 58 69 6e 74 20 6c 65 | 78 5f 65 72 72 6f 72 73 |.Xint le|x_errors|
|00003410| 3b 0a 58 69 6e 74 20 79 | 61 63 63 5f 65 72 72 6f |;.Xint y|acc_erro|
|00003420| 72 73 3b 0a 58 69 6e 74 | 20 6c 69 6e 65 5f 6e 75 |rs;.Xint| line_nu|
|00003430| 6d 62 65 72 3b 0a 58 0a | 58 2f 2a 20 66 6c 61 67 |mber;.X.|X/* flag|
|00003440| 73 20 2a 2f 0a 58 69 6e | 74 20 63 6c 65 61 72 5f |s */.Xin|t clear_|
|00003450| 66 6c 61 67 3b 0a 58 69 | 6e 74 20 62 6f 6c 64 5f |flag;.Xi|nt bold_|
|00003460| 66 6c 61 67 3b 0a 58 69 | 6e 74 20 61 6c 77 61 79 |flag;.Xi|nt alway|
|00003470| 73 5f 64 69 73 70 6c 61 | 79 5f 6d 65 6e 75 5f 66 |s_displa|y_menu_f|
|00003480| 6c 61 67 3b 0a 58 0a 58 | 2f 2a 20 4d 65 6e 75 73 |lag;.X.X|/* Menus|
|00003490| 20 62 65 67 69 6e 20 77 | 69 74 68 20 61 20 74 69 | begin w|ith a ti|
|000034a0| 74 6c 65 20 64 65 66 69 | 6e 69 74 69 6f 6e 0a 58 |tle defi|nition.X|
|000034b0| 20 20 20 74 69 74 6c 65 | 20 7b 20 74 65 78 74 20 | title| { text |
|000034c0| 66 6f 72 20 74 68 65 20 | 74 69 74 6c 65 20 7d 0a |for the |title }.|
|000034d0| 58 0a 58 20 20 20 54 68 | 69 73 20 69 73 20 66 6f |X.X Th|is is fo|
|000034e0| 6c 6c 6f 77 65 64 20 62 | 79 20 6f 6e 65 20 6f 72 |llowed b|y one or|
|000034f0| 20 6d 6f 72 65 20 6d 65 | 6e 75 2d 69 74 65 6d 20 | more me|nu-item |
|00003500| 64 65 66 69 6e 69 74 69 | 6f 6e 73 20 6f 66 20 74 |definiti|ons of t|
|00003510| 68 65 20 66 6f 72 6d 3a | 0a 58 0a 58 20 20 20 69 |he form:|.X.X i|
|00003520| 74 65 6d 20 7b 20 70 72 | 6f 6d 70 74 20 7d 20 7b |tem { pr|ompt } {|
|00003530| 20 73 68 65 6c 6c 20 63 | 6f 6d 6d 61 6e 64 20 7d | shell c|ommand }|
|00003540| 0a 58 20 20 20 70 61 72 | 6d 20 22 6e 61 6d 65 22 |.X par|m "name"|
|00003550| 20 7b 20 70 72 6f 6d 70 | 74 20 7d 0a 58 20 20 20 | { promp|t }.X |
|00003560| 70 61 72 6d 20 22 6e 61 | 6d 65 22 20 7b 20 70 72 |parm "na|me" { pr|
|00003570| 6f 6d 70 74 20 7d 0a 58 | 20 20 20 3b 0a 58 0a 58 |ompt }.X| ;.X.X|
|00003580| 20 20 20 74 68 65 20 63 | 72 75 64 20 69 6e 20 62 | the c|rud in b|
|00003590| 65 74 77 65 65 6e 20 62 | 72 61 63 65 73 20 6d 61 |etween b|races ma|
|000035a0| 79 20 63 6f 6e 74 61 69 | 6e 20 61 6e 79 20 63 68 |y contai|n any ch|
|000035b0| 61 72 61 63 74 65 72 2c | 20 69 6e 63 6c 75 64 69 |aracter,| includi|
|000035c0| 6e 67 0a 58 20 20 20 65 | 73 63 61 70 70 65 64 20 |ng.X e|scapped |
|000035d0| 62 72 61 63 65 73 20 61 | 6e 64 20 62 61 63 6b 2d |braces a|nd back-|
|000035e0| 73 6c 61 73 68 20 28 5c | 29 2e 0a 58 20 20 20 54 |slash (\|)..X T|
|000035f0| 68 65 20 63 72 75 64 20 | 69 6e 20 62 65 74 77 65 |he crud |in betwe|
|00003600| 65 6e 20 74 68 65 20 64 | 6f 75 62 6c 65 20 71 75 |en the d|ouble qu|
|00003610| 6f 74 65 73 20 6d 61 79 | 20 4f 4e 4c 59 20 63 6f |otes may| ONLY co|
|00003620| 6e 74 61 69 6e 20 6c 65 | 74 74 65 72 73 2c 20 64 |ntain le|tters, d|
|00003630| 69 67 69 74 73 2c 0a 58 | 20 20 20 61 6e 64 20 75 |igits,.X| and u|
|00003640| 6e 64 65 72 73 63 6f 72 | 65 73 3b 0a 58 0a 58 20 |nderscor|es;.X.X |
|00003650| 20 20 53 75 62 2d 6d 65 | 6e 75 73 20 61 72 65 20 | Sub-me|nus are |
|00003660| 66 6f 72 6d 65 64 20 62 | 79 20 72 75 6e 6e 69 6e |formed b|y runnin|
|00003670| 67 20 64 75 6d 62 5f 6d | 65 6e 75 20 61 73 20 74 |g dumb_m|enu as t|
|00003680| 68 65 20 73 68 65 6c 6c | 20 70 72 6f 63 65 73 73 |he shell| process|
|00003690| 2c 20 70 6f 69 6e 74 65 | 64 0a 58 20 20 20 74 6f |, pointe|d.X to|
|000036a0| 20 61 6e 20 61 70 70 72 | 6f 70 72 69 61 74 65 20 | an appr|opriate |
|000036b0| 73 75 62 2d 6d 65 6e 75 | 20 64 65 66 69 6e 69 74 |sub-menu| definit|
|000036c0| 69 6f 6e 20 66 69 6c 65 | 2e 0a 58 0a 58 20 20 20 |ion file|..X.X |
|000036d0| 54 68 65 72 65 20 69 73 | 20 6e 6f 20 70 72 6f 76 |There is| no prov|
|000036e0| 69 73 69 6f 6e 20 66 6f | 72 20 6d 65 6e 75 73 20 |ision fo|r menus |
|000036f0| 77 68 69 63 68 20 72 65 | 71 75 69 72 65 20 6d 6f |which re|quire mo|
|00003700| 72 65 20 74 68 61 6e 20 | 6f 6e 65 20 73 63 72 65 |re than |one scre|
|00003710| 65 6e 20 0a 58 20 20 20 | 74 6f 20 64 69 73 70 6c |en .X |to displ|
|00003720| 61 79 2e 0a 58 2a 2f 0a | 58 0a 58 23 64 65 66 69 |ay..X*/.|X.X#defi|
|00003730| 6e 65 20 44 45 42 55 47 | 30 28 66 6d 74 29 09 69 |ne DEBUG|0(fmt).i|
|00003740| 66 28 64 65 62 75 67 5f | 6d 6f 64 65 3e 31 29 70 |f(debug_|mode>1)p|
|00003750| 72 69 6e 74 66 28 66 6d | 74 29 3b 0a 58 23 64 65 |rintf(fm|t);.X#de|
|00003760| 66 69 6e 65 20 44 45 42 | 55 47 31 28 66 6d 74 2c |fine DEB|UG1(fmt,|
|00003770| 61 61 29 09 69 66 28 64 | 65 62 75 67 5f 6d 6f 64 |aa).if(d|ebug_mod|
|00003780| 65 3e 31 29 70 72 69 6e | 74 66 28 66 6d 74 2c 61 |e>1)prin|tf(fmt,a|
|00003790| 61 29 3b 0a 58 23 64 65 | 66 69 6e 65 20 44 45 42 |a);.X#de|fine DEB|
|000037a0| 55 47 32 28 66 6d 74 2c | 61 61 2c 62 62 29 09 69 |UG2(fmt,|aa,bb).i|
|000037b0| 66 28 64 65 62 75 67 5f | 6d 6f 64 65 3e 31 29 70 |f(debug_|mode>1)p|
|000037c0| 72 69 6e 74 66 28 66 6d | 74 2c 61 61 2c 62 62 29 |rintf(fm|t,aa,bb)|
|000037d0| 3b 0a 58 23 64 65 66 69 | 6e 65 20 44 45 42 55 47 |;.X#defi|ne DEBUG|
|000037e0| 33 28 66 6d 74 2c 61 61 | 2c 62 62 2c 63 63 29 09 |3(fmt,aa|,bb,cc).|
|000037f0| 69 66 28 64 65 62 75 67 | 5f 6d 6f 64 65 3e 31 29 |if(debug|_mode>1)|
|00003800| 70 72 69 6e 74 66 28 66 | 6d 74 2c 61 61 2c 62 62 |printf(f|mt,aa,bb|
|00003810| 2c 63 63 29 3b 0a 58 0a | 58 25 7d 0a 58 0a 58 25 |,cc);.X.|X%}.X.X%|
|00003820| 75 6e 69 6f 6e 20 7b 0a | 58 20 20 69 6e 74 20 69 |union {.|X int i|
|00003830| 76 61 6c 3b 0a 58 20 20 | 63 68 61 72 20 2a 74 78 |val;.X |char *tx|
|00003840| 74 3b 0a 58 20 20 63 68 | 61 72 20 63 68 72 3b 0a |t;.X ch|ar chr;.|
|00003850| 58 20 20 64 6f 75 62 6c | 65 20 64 62 6c 3b 0a 58 |X doubl|e dbl;.X|
|00003860| 20 20 73 74 72 75 63 74 | 20 69 74 65 6d 20 2a 69 | struct| item *i|
|00003870| 74 6d 3b 0a 58 20 20 73 | 74 72 75 63 74 20 70 61 |tm;.X s|truct pa|
|00003880| 72 6d 20 2a 70 72 6d 3b | 0a 58 7d 0a 58 0a 58 25 |rm *prm;|.X}.X.X%|
|00003890| 74 6f 6b 65 6e 20 3c 69 | 76 61 6c 3e 20 4e 55 4d |token <i|val> NUM|
|000038a0| 42 45 52 0a 58 25 74 6f | 6b 65 6e 20 3c 64 62 6c |BER.X%to|ken <dbl|
|000038b0| 3e 20 46 4c 4f 41 54 0a | 58 25 74 6f 6b 65 6e 20 |> FLOAT.|X%token |
|000038c0| 3c 74 78 74 3e 20 54 45 | 58 54 20 50 41 52 4d 5f |<txt> TE|XT PARM_|
|000038d0| 4e 41 4d 45 0a 58 25 74 | 6f 6b 65 6e 20 50 41 52 |NAME.X%t|oken PAR|
|000038e0| 4d 20 49 54 45 4d 20 54 | 49 54 4c 45 20 45 52 52 |M ITEM T|ITLE ERR|
|000038f0| 4f 52 0a 58 25 74 6f 6b | 65 6e 20 43 4c 45 41 52 |OR.X%tok|en CLEAR|
|00003900| 20 42 4f 4c 44 20 41 4c | 57 41 59 53 5f 53 48 4f | BOLD AL|WAYS_SHO|
|00003910| 57 0a 58 0a 58 25 74 79 | 70 65 20 3c 69 74 6d 3e |W.X.X%ty|pe <itm>|
|00003920| 20 6d 65 6e 75 20 69 74 | 65 6d 0a 58 25 74 79 70 | menu it|em.X%typ|
|00003930| 65 20 3c 70 72 6d 3e 20 | 70 61 72 6d 0a 58 0a 58 |e <prm> |parm.X.X|
|00003940| 25 25 0a 58 0a 58 6d 65 | 6e 75 20 3a 20 74 69 74 |%%.X.Xme|nu : tit|
|00003950| 6c 65 20 6d 65 6e 75 5f | 66 6c 61 67 73 20 69 74 |le menu_|flags it|
|00003960| 65 6d 0a 58 09 7b 0a 58 | 09 20 20 6d 65 6e 75 5f |em.X.{.X|. menu_|
|00003970| 68 65 61 64 20 3d 0a 58 | 09 20 20 20 20 6d 65 6e |head =.X|. men|
|00003980| 75 5f 74 61 69 6c 20 3d | 20 24 33 3b 0a 58 09 20 |u_tail =| $3;.X. |
|00003990| 20 44 45 42 55 47 31 28 | 22 49 6e 69 74 69 61 6c | DEBUG1(|"Initial|
|000039a0| 20 4d 65 6e 75 20 49 74 | 65 6d 3a 5c 6e 20 25 73 | Menu It|em:\n %s|
|000039b0| 5c 6e 22 2c 20 24 33 2d | 3e 70 72 6f 6d 70 74 29 |\n", $3-|>prompt)|
|000039c0| 3b 0a 58 09 7d 0a 58 09 | 7c 20 6d 65 6e 75 20 69 |;.X.}.X.|| menu i|
|000039d0| 74 65 6d 0a 58 09 7b 0a | 58 09 20 20 6d 65 6e 75 |tem.X.{.|X. menu|
|000039e0| 5f 74 61 69 6c 2d 3e 6e | 65 78 74 20 3d 20 24 32 |_tail->n|ext = $2|
|000039f0| 3b 0a 58 09 20 20 6d 65 | 6e 75 5f 74 61 69 6c 20 |;.X. me|nu_tail |
|00003a00| 3d 20 24 32 3b 0a 58 09 | 20 20 44 45 42 55 47 31 |= $2;.X.| DEBUG1|
|00003a10| 28 22 41 64 64 69 74 69 | 6f 6e 61 6c 20 4d 65 6e |("Additi|onal Men|
|00003a20| 75 20 49 74 65 6d 3a 5c | 6e 20 25 73 5c 6e 22 2c |u Item:\|n %s\n",|
|00003a30| 20 24 32 2d 3e 70 72 6f | 6d 70 74 29 3b 0a 58 09 | $2->pro|mpt);.X.|
|00003a40| 7d 0a 58 09 3b 0a 58 0a | 58 74 69 74 6c 65 20 3a |}.X.;.X.|Xtitle :|
|00003a50| 20 54 49 54 4c 45 20 54 | 45 58 54 0a 58 09 7b 0a | TITLE T|EXT.X.{.|
|00003a60| 58 09 20 20 6d 65 6e 75 | 5f 74 69 74 6c 65 20 3d |X. menu|_title =|
|00003a70| 20 24 32 3b 0a 58 09 20 | 20 44 45 42 55 47 31 28 | $2;.X. | DEBUG1(|
|00003a80| 22 6d 65 6e 75 20 74 69 | 74 6c 65 20 27 25 73 27 |"menu ti|tle '%s'|
|00003a90| 5c 6e 22 2c 20 24 32 29 | 3b 0a 58 09 7d 0a 58 09 |\n", $2)|;.X.}.X.|
|00003aa0| 3b 0a 58 0a 58 6d 65 6e | 75 5f 66 6c 61 67 73 20 |;.X.Xmen|u_flags |
|00003ab0| 3a 0a 58 09 7c 20 6d 65 | 6e 75 5f 66 6c 61 67 73 |:.X.| me|nu_flags|
|00003ac0| 20 6d 65 6e 75 5f 66 6c | 61 67 0a 58 09 3b 0a 58 | menu_fl|ag.X.;.X|
|00003ad0| 0a 58 6d 65 6e 75 5f 66 | 6c 61 67 20 3a 20 43 4c |.Xmenu_f|lag : CL|
|00003ae0| 45 41 52 0a 58 09 7b 0a | 58 09 20 20 63 6c 65 61 |EAR.X.{.|X. clea|
|00003af0| 72 5f 66 6c 61 67 2b 2b | 3b 0a 58 09 7d 0a 58 09 |r_flag++|;.X.}.X.|
|00003b00| 7c 20 42 4f 4c 44 0a 58 | 09 7b 0a 58 09 20 20 62 || BOLD.X|.{.X. b|
|00003b10| 6f 6c 64 5f 66 6c 61 67 | 2b 2b 3b 0a 58 09 7d 0a |old_flag|++;.X.}.|
|00003b20| 58 09 7c 20 41 4c 57 41 | 59 53 5f 53 48 4f 57 0a |X.| ALWA|YS_SHOW.|
|00003b30| 58 09 7b 0a 58 09 20 20 | 61 6c 77 61 79 73 5f 64 |X.{.X. |always_d|
|00003b40| 69 73 70 6c 61 79 5f 6d | 65 6e 75 5f 66 6c 61 67 |isplay_m|enu_flag|
|00003b50| 2b 2b 3b 0a 58 09 7d 0a | 58 09 3b 0a 58 0a 58 69 |++;.X.}.|X.;.X.Xi|
|00003b60| 74 65 6d 20 3a 20 49 54 | 45 4d 20 20 54 45 58 54 |tem : IT|EM TEXT|
|00003b70| 20 20 54 45 58 54 20 20 | 70 61 72 6d 73 20 27 3b | TEXT |parms ';|
|00003b80| 27 0a 58 09 7b 0a 58 09 | 20 20 24 24 20 3d 20 6d |'.X.{.X.| $$ = m|
|00003b90| 61 6b 65 5f 6e 65 77 5f | 69 74 65 6d 28 24 32 2c |ake_new_|item($2,|
|00003ba0| 20 24 33 2c 20 70 61 72 | 6d 5f 6c 69 73 74 29 3b | $3, par|m_list);|
|00003bb0| 0a 58 09 20 20 70 61 72 | 6d 5f 6c 69 73 74 20 3d |.X. par|m_list =|
|00003bc0| 20 28 73 74 72 75 63 74 | 20 70 61 72 6d 20 2a 29 | (struct| parm *)|
|00003bd0| 30 3b 0a 58 09 7d 0a 58 | 09 3b 0a 58 0a 58 70 61 |0;.X.}.X|.;.X.Xpa|
|00003be0| 72 6d 73 20 3a 20 2f 2a | 20 65 6d 70 74 79 20 2a |rms : /*| empty *|
|00003bf0| 2f 0a 58 09 7c 20 70 61 | 72 6d 73 20 70 61 72 6d |/.X.| pa|rms parm|
|00003c00| 0a 58 09 3b 0a 58 0a 58 | 70 61 72 6d 20 3a 20 50 |.X.;.X.X|parm : P|
|00003c10| 41 52 4d 20 50 41 52 4d | 5f 4e 41 4d 45 20 54 45 |ARM PARM|_NAME TE|
|00003c20| 58 54 0a 58 09 7b 0a 58 | 09 20 20 24 24 20 3d 20 |XT.X.{.X|. $$ = |
|00003c30| 6d 61 6b 65 5f 6e 65 77 | 5f 70 61 72 6d 28 24 32 |make_new|_parm($2|
|00003c40| 2c 20 24 33 29 3b 0a 58 | 09 20 20 24 24 2d 3e 6e |, $3);.X|. $$->n|
|00003c50| 65 78 74 20 3d 20 70 61 | 72 6d 5f 6c 69 73 74 3b |ext = pa|rm_list;|
|00003c60| 0a 58 09 20 20 70 61 72 | 6d 5f 6c 69 73 74 20 3d |.X. par|m_list =|
|00003c70| 20 24 24 3b 0a 58 09 20 | 20 44 45 42 55 47 32 28 | $$;.X. | DEBUG2(|
|00003c80| 22 70 61 72 6d 3a 20 25 | 73 5c 6e 27 25 73 27 5c |"parm: %|s\n'%s'\|
|00003c90| 6e 22 2c 20 24 32 2c 20 | 24 33 29 3b 0a 58 09 7d |n", $2, |$3);.X.}|
|00003ca0| 0a 58 09 3b 0a 58 0a 58 | 25 25 0a 58 0a 58 63 68 |.X.;.X.X|%%.X.Xch|
|00003cb0| 61 72 20 2a 75 73 65 5f | 6d 73 67 20 3d 20 22 75 |ar *use_|msg = "u|
|00003cc0| 73 61 67 65 3a 20 25 73 | 20 5b 2d 68 20 7c 20 6f |sage: %s| [-h | o|
|00003cd0| 70 74 69 6f 6e 28 73 29 | 20 5d 5c 6e 22 3b 0a 58 |ption(s)| ]\n";.X|
|00003ce0| 0a 58 65 78 74 65 72 6e | 20 63 68 61 72 20 2a 6f |.Xextern| char *o|
|00003cf0| 70 74 61 72 67 3b 0a 58 | 65 78 74 65 72 6e 20 69 |ptarg;.X|extern i|
|00003d00| 6e 74 20 6f 70 74 69 6e | 64 2c 20 6f 70 74 65 72 |nt optin|d, opter|
|00003d10| 72 3b 0a 58 69 6e 74 20 | 74 74 79 5f 69 6e 3b 0a |r;.Xint |tty_in;.|
|00003d20| 58 46 49 4c 45 20 2a 74 | 74 79 5f 66 69 6c 65 3b |XFILE *t|ty_file;|
|00003d30| 0a 58 69 6e 74 20 61 72 | 67 63 63 3b 0a 58 63 68 |.Xint ar|gcc;.Xch|
|00003d40| 61 72 20 2a 2a 61 72 67 | 76 76 3b 0a 58 63 68 61 |ar **arg|vv;.Xcha|
|00003d50| 72 20 2a 70 72 6f 67 6e | 61 6d 65 3b 0a 58 63 68 |r *progn|ame;.Xch|
|00003d60| 61 72 20 2a 69 6e 5f 66 | 6e 61 6d 65 20 3d 20 22 |ar *in_f|name = "|
|00003d70| 73 74 64 69 6e 22 3b 0a | 58 63 68 61 72 20 2a 6d |stdin";.|Xchar *m|
|00003d80| 65 6e 75 5f 66 6e 61 6d | 65 20 3d 20 22 2e 2f 6d |enu_fnam|e = "./m|
|00003d90| 65 6e 75 2e 64 65 66 22 | 3b 0a 58 63 68 61 72 20 |enu.def"|;.Xchar |
|00003da0| 2a 73 68 65 6c 6c 5f 70 | 61 74 68 20 3d 20 22 2f |*shell_p|ath = "/|
|00003db0| 62 69 6e 2f 73 68 22 3b | 0a 58 63 68 61 72 20 2a |bin/sh";|.Xchar *|
|00003dc0| 63 61 74 5f 70 61 74 68 | 20 3d 20 22 2f 62 69 6e |cat_path| = "/bin|
|00003dd0| 2f 63 61 74 22 3b 0a 58 | 63 68 61 72 20 2a 63 6d |/cat";.X|char *cm|
|00003de0| 64 5f 70 61 74 68 3b 0a | 58 63 68 61 72 20 2a 63 |d_path;.|Xchar *c|
|00003df0| 6d 64 5f 6e 61 6d 65 3b | 0a 58 0a 58 73 74 72 75 |md_name;|.X.Xstru|
|00003e00| 63 74 20 69 74 65 6d 20 | 2a 73 65 6c 65 63 74 65 |ct item |*selecte|
|00003e10| 64 5f 69 74 65 6d 3b 0a | 58 73 74 72 75 63 74 20 |d_item;.|Xstruct |
|00003e20| 70 61 72 6d 20 2a 73 65 | 6c 65 63 74 65 64 5f 70 |parm *se|lected_p|
|00003e30| 61 72 6d 73 3b 0a 58 46 | 49 4c 45 20 2a 74 6d 70 |arms;.XF|ILE *tmp|
|00003e40| 5f 66 69 6c 65 3b 0a 58 | 63 68 61 72 20 2a 74 6d |_file;.X|char *tm|
|00003e50| 70 5f 66 6e 61 6d 65 3b | 0a 58 0a 58 69 6e 74 20 |p_fname;|.X.Xint |
|00003e60| 76 65 72 62 6f 73 65 3b | 0a 58 69 6e 74 20 64 65 |verbose;|.Xint de|
|00003e70| 62 75 67 5f 6d 6f 64 65 | 3b 0a 58 0a 58 63 68 61 |bug_mode|;.X.Xcha|
|00003e80| 72 20 2a 68 6c 70 5b 5d | 20 3d 20 7b 0a 58 22 4f |r *hlp[]| = {.X"O|
|00003e90| 70 74 69 6f 6e 20 20 20 | 20 20 46 75 6e 63 74 69 |ption | Functi|
|00003ea0| 6f 6e 22 2c 0a 58 22 2d | 6d 20 66 69 6c 65 20 20 |on",.X"-|m file |
|00003eb0| 20 20 73 65 74 20 6d 65 | 6e 75 2d 64 65 66 69 6e | set me|nu-defin|
|00003ec0| 69 74 69 6f 6e 20 66 69 | 6c 65 20 6e 61 6d 65 20 |ition fi|le name |
|00003ed0| 74 6f 20 27 66 69 6c 65 | 27 20 28 6d 65 6e 75 2e |to 'file|' (menu.|
|00003ee0| 64 65 66 29 22 2c 0a 58 | 22 2d 73 20 70 61 74 68 |def)",.X|"-s path|
|00003ef0| 20 20 20 20 70 61 74 68 | 20 74 6f 20 73 68 65 6c | path| to shel|
|00003f00| 6c 20 74 6f 20 65 78 65 | 63 75 74 65 20 73 63 72 |l to exe|cute scr|
|00003f10| 69 70 74 73 22 2c 0a 58 | 22 2d 63 20 70 61 74 68 |ipts",.X|"-c path|
|00003f20| 20 20 20 20 70 61 74 68 | 20 74 6f 20 27 63 61 74 | path| to 'cat|
|00003f30| 27 20 66 6f 72 20 73 69 | 6d 70 6c 65 20 64 65 62 |' for si|mple deb|
|00003f40| 75 67 20 6d 6f 64 65 22 | 2c 0a 58 22 2d 76 20 20 |ug mode"|,.X"-v |
|00003f50| 20 20 20 20 20 20 20 6d | 61 6b 65 20 63 6f 6d 6d | m|ake comm|
|00003f60| 61 6e 64 20 65 78 65 63 | 75 74 69 6f 6e 20 76 65 |and exec|ution ve|
|00003f70| 72 62 6f 73 65 20 28 76 | 69 61 20 73 65 74 20 2d |rbose (v|ia set -|
|00003f80| 78 76 29 22 2c 0a 58 22 | 2d 44 20 20 20 20 20 20 |xv)",.X"|-D |
|00003f90| 20 20 20 69 6e 63 72 65 | 6d 65 6e 74 20 64 65 62 | incre|ment deb|
|00003fa0| 75 67 20 6d 6f 64 65 22 | 2c 0a 58 28 63 68 61 72 |ug mode"|,.X(char|
|00003fb0| 20 2a 29 30 7d 3b 0a 58 | 0a 58 69 6e 74 20 64 69 | *)0};.X|.Xint di|
|00003fc0| 73 70 6c 61 79 5f 6d 65 | 6e 75 5f 66 6c 61 67 20 |splay_me|nu_flag |
|00003fd0| 3d 20 31 3b 0a 58 6a 6d | 70 5f 62 75 66 20 65 6e |= 1;.Xjm|p_buf en|
|00003fe0| 76 3b 0a 58 23 64 65 66 | 69 6e 65 20 53 49 47 53 |v;.X#def|ine SIGS|
|00003ff0| 5f 46 4f 52 5f 4a 4d 50 | 20 20 20 31 0a 58 23 64 |_FOR_JMP| 1.X#d|
|00004000| 65 66 69 6e 65 20 53 49 | 47 53 5f 46 4f 52 5f 43 |efine SI|GS_FOR_C|
|00004010| 48 49 4c 44 20 32 0a 58 | 0a 58 6d 61 69 6e 28 61 |HILD 2.X|.Xmain(a|
|00004020| 72 67 63 2c 20 61 72 67 | 76 29 0a 58 69 6e 74 20 |rgc, arg|v).Xint |
|00004030| 61 72 67 63 3b 0a 58 63 | 68 61 72 20 2a 2a 61 72 |argc;.Xc|har **ar|
|00004040| 67 76 3b 0a 58 7b 0a 58 | 20 20 69 6e 74 20 69 74 |gv;.X{.X| int it|
|00004050| 65 6d 5f 69 64 78 3b 0a | 58 0a 58 20 20 69 6e 69 |em_idx;.|X.X ini|
|00004060| 74 28 61 72 67 63 2c 20 | 61 72 67 76 29 3b 0a 58 |t(argc, |argv);.X|
|00004070| 0a 58 20 20 69 66 20 28 | 79 79 70 61 72 73 65 28 |.X if (|yyparse(|
|00004080| 29 29 0a 58 20 20 20 20 | 66 61 74 61 6c 28 22 50 |)).X |fatal("P|
|00004090| 61 72 73 65 20 45 72 72 | 6f 72 22 29 3b 0a 58 0a |arse Err|or");.X.|
|000040a0| 58 20 20 69 66 20 28 6c | 65 78 5f 65 72 72 6f 72 |X if (l|ex_error|
|000040b0| 73 20 7c 7c 20 79 61 63 | 63 5f 65 72 72 6f 72 73 |s || yac|c_errors|
|000040c0| 29 0a 58 20 20 20 20 66 | 61 74 61 6c 28 22 63 6f |).X f|atal("co|
|000040d0| 72 72 75 70 74 20 6d 65 | 6e 75 20 64 65 66 69 6e |rrupt me|nu defin|
|000040e0| 69 74 69 6f 6e 22 29 3b | 0a 58 0a 58 20 20 69 66 |ition");|.X.X if|
|000040f0| 20 28 64 65 62 75 67 5f | 6d 6f 64 65 29 20 7b 0a | (debug_|mode) {.|
|00004100| 58 20 20 20 20 69 74 65 | 6d 5f 69 64 78 20 3d 20 |X ite|m_idx = |
|00004110| 31 3b 0a 58 20 20 20 20 | 66 6f 72 20 28 73 65 6c |1;.X |for (sel|
|00004120| 65 63 74 65 64 5f 69 74 | 65 6d 3d 6d 65 6e 75 5f |ected_it|em=menu_|
|00004130| 68 65 61 64 3b 73 65 6c | 65 63 74 65 64 5f 69 74 |head;sel|ected_it|
|00004140| 65 6d 3b 0a 58 09 20 73 | 65 6c 65 63 74 65 64 5f |em;.X. s|elected_|
|00004150| 69 74 65 6d 20 3d 20 73 | 65 6c 65 63 74 65 64 5f |item = s|elected_|
|00004160| 69 74 65 6d 2d 3e 6e 65 | 78 74 29 20 7b 0a 58 20 |item->ne|xt) {.X |
|00004170| 20 20 20 20 20 70 72 69 | 6e 74 66 28 22 25 32 64 | pri|ntf("%2d|
|00004180| 2e 20 25 73 5c 6e 22 2c | 20 69 74 65 6d 5f 69 64 |. %s\n",| item_id|
|00004190| 78 2b 2b 2c 20 73 65 6c | 65 63 74 65 64 5f 69 74 |x++, sel|ected_it|
|000041a0| 65 6d 2d 3e 70 72 6f 6d | 70 74 29 3b 0a 58 20 20 |em->prom|pt);.X |
|000041b0| 20 20 20 20 70 72 69 6e | 74 66 28 22 25 73 5c 6e | prin|tf("%s\n|
|000041c0| 22 2c 20 73 65 6c 65 63 | 74 65 64 5f 69 74 65 6d |", selec|ted_item|
|000041d0| 2d 3e 63 6f 6d 6d 61 6e | 64 29 3b 0a 58 20 20 20 |->comman|d);.X |
|000041e0| 20 20 20 66 6f 72 20 28 | 73 65 6c 65 63 74 65 64 | for (|selected|
|000041f0| 5f 70 61 72 6d 73 3d 73 | 65 6c 65 63 74 65 64 5f |_parms=s|elected_|
|00004200| 69 74 65 6d 2d 3e 70 61 | 72 6d 73 3b 73 65 6c 65 |item->pa|rms;sele|
|00004210| 63 74 65 64 5f 70 61 72 | 6d 73 3b 0a 58 09 20 20 |cted_par|ms;.X. |
|00004220| 20 73 65 6c 65 63 74 65 | 64 5f 70 61 72 6d 73 20 | selecte|d_parms |
|00004230| 3d 20 73 65 6c 65 63 74 | 65 64 5f 70 61 72 6d 73 |= select|ed_parms|
|00004240| 2d 3e 6e 65 78 74 29 0a | 58 09 70 72 69 6e 74 66 |->next).|X.printf|
|00004250| 28 22 25 73 3a 20 27 25 | 73 27 5c 6e 22 2c 20 73 |("%s: '%|s'\n", s|
|00004260| 65 6c 65 63 74 65 64 5f | 70 61 72 6d 73 2d 3e 70 |elected_|parms->p|
|00004270| 72 6f 6d 70 74 2c 0a 58 | 09 20 20 20 20 20 20 20 |rompt,.X|. |
|00004280| 73 65 6c 65 63 74 65 64 | 5f 70 61 72 6d 73 2d 3e |selected|_parms->|
|00004290| 69 64 65 6e 74 69 66 69 | 65 72 29 3b 0a 58 20 20 |identifi|er);.X |
|000042a0| 20 20 7d 0a 58 20 20 7d | 0a 58 0a 58 20 20 69 6e | }.X }|.X.X in|
|000042b0| 69 74 5f 74 65 72 6d 69 | 6e 61 6c 28 29 3b 0a 58 |it_termi|nal();.X|
|000042c0| 0a 58 20 20 64 6f 5f 6d | 65 6e 75 28 29 3b 0a 58 |.X do_m|enu();.X|
|000042d0| 7d 0a 58 0a 58 69 6e 69 | 74 28 61 72 67 63 2c 20 |}.X.Xini|t(argc, |
|000042e0| 61 72 67 76 29 0a 58 69 | 6e 74 20 61 72 67 63 3b |argv).Xi|nt argc;|
|000042f0| 0a 58 63 68 61 72 20 2a | 2a 61 72 67 76 3b 0a 58 |.Xchar *|*argv;.X|
|00004300| 7b 0a 58 20 20 69 6e 74 | 20 69 3b 0a 58 20 20 69 |{.X int| i;.X i|
|00004310| 6e 74 20 63 3b 0a 58 20 | 20 65 78 74 65 72 6e 20 |nt c;.X | extern |
|00004320| 63 68 61 72 20 2a 6f 70 | 74 61 72 67 3b 0a 58 20 |char *op|targ;.X |
|00004330| 20 65 78 74 65 72 6e 20 | 69 6e 74 20 6f 70 74 69 | extern |int opti|
|00004340| 6e 64 2c 20 6f 70 74 65 | 72 72 3b 0a 58 0a 58 20 |nd, opte|rr;.X.X |
|00004350| 20 77 68 69 6c 65 20 28 | 28 63 20 3d 20 67 65 74 | while (|(c = get|
|00004360| 6f 70 74 28 61 72 67 63 | 2c 20 61 72 67 76 2c 20 |opt(argc|, argv, |
|00004370| 22 68 63 73 6d 3a 76 44 | 22 29 29 20 21 3d 20 45 |"hcsm:vD|")) != E|
|00004380| 4f 46 29 20 7b 0a 58 20 | 20 20 20 73 77 69 74 63 |OF) {.X | switc|
|00004390| 68 20 28 63 29 20 7b 0a | 58 20 20 20 20 63 61 73 |h (c) {.|X cas|
|000043a0| 65 20 27 68 27 3a 0a 58 | 20 20 20 20 20 20 66 6f |e 'h':.X| fo|
|000043b0| 72 20 28 69 3d 30 3b 68 | 6c 70 5b 69 5d 3b 69 2b |r (i=0;h|lp[i];i+|
|000043c0| 2b 29 0a 58 09 70 72 69 | 6e 74 66 28 22 25 73 5c |+).X.pri|ntf("%s\|
|000043d0| 6e 22 2c 20 68 6c 70 5b | 69 5d 29 3b 0a 58 20 20 |n", hlp[|i]);.X |
|000043e0| 20 20 20 20 66 61 74 61 | 6c 28 28 63 68 61 72 20 | fata|l((char |
|000043f0| 2a 29 30 29 3b 0a 58 20 | 20 20 20 63 61 73 65 20 |*)0);.X | case |
|00004400| 27 73 27 3a 0a 58 20 20 | 20 20 20 20 73 68 65 6c |'s':.X | shel|
|00004410| 6c 5f 70 61 74 68 20 3d | 20 6f 70 74 61 72 67 3b |l_path =| optarg;|
|00004420| 0a 58 20 20 20 20 20 20 | 62 72 65 61 6b 3b 0a 58 |.X |break;.X|
|00004430| 20 20 20 20 63 61 73 65 | 20 27 63 27 3a 0a 58 20 | case| 'c':.X |
|00004440| 20 20 20 20 20 63 61 74 | 5f 70 61 74 68 20 3d 20 | cat|_path = |
|00004450| 6f 70 74 61 72 67 3b 0a | 58 20 20 20 20 20 20 62 |optarg;.|X b|
|00004460| 72 65 61 6b 3b 0a 58 20 | 20 20 20 63 61 73 65 20 |reak;.X | case |
|00004470| 27 6d 27 3a 0a 58 20 20 | 20 20 20 20 6d 65 6e 75 |'m':.X | menu|
|00004480| 5f 66 6e 61 6d 65 20 3d | 20 6f 70 74 61 72 67 3b |_fname =| optarg;|
|00004490| 0a 58 20 20 20 20 20 20 | 62 72 65 61 6b 3b 0a 58 |.X |break;.X|
|000044a0| 20 20 20 20 63 61 73 65 | 20 27 76 27 3a 0a 58 20 | case| 'v':.X |
|000044b0| 20 20 20 20 20 76 65 72 | 62 6f 73 65 2b 2b 3b 0a | ver|bose++;.|
|000044c0| 58 20 20 20 20 20 20 62 | 72 65 61 6b 3b 0a 58 20 |X b|reak;.X |
|000044d0| 20 20 20 63 61 73 65 20 | 27 44 27 3a 0a 58 20 20 | case |'D':.X |
|000044e0| 20 20 20 20 64 65 62 75 | 67 5f 6d 6f 64 65 2b 2b | debu|g_mode++|
|000044f0| 3b 0a 58 20 20 20 20 20 | 20 62 72 65 61 6b 3b 0a |;.X | break;.|
|00004500| 58 20 20 20 20 63 61 73 | 65 20 27 3f 27 3a 0a 58 |X cas|e '?':.X|
|00004510| 20 20 20 20 20 20 66 61 | 74 61 6c 28 28 63 68 61 | fa|tal((cha|
|00004520| 72 20 2a 29 30 29 3b 0a | 58 20 20 20 20 7d 0a 58 |r *)0);.|X }.X|
|00004530| 20 20 7d 0a 58 0a 58 20 | 20 61 72 67 63 63 20 3d | }.X.X | argcc =|
|00004540| 20 61 72 67 63 3b 0a 58 | 20 20 61 72 67 76 76 20 | argc;.X| argvv |
|00004550| 3d 20 61 72 67 76 3b 0a | 58 20 20 70 72 6f 67 6e |= argv;.|X progn|
|00004560| 61 6d 65 20 3d 20 61 72 | 67 76 5b 30 5d 3b 0a 58 |ame = ar|gv[0];.X|
|00004570| 20 20 69 66 20 28 73 74 | 72 63 6d 70 28 6d 65 6e | if (st|rcmp(men|
|00004580| 75 5f 66 6e 61 6d 65 2c | 20 22 2d 22 29 29 20 7b |u_fname,| "-")) {|
|00004590| 0a 58 20 20 20 20 63 6c | 6f 73 65 28 30 29 3b 0a |.X cl|ose(0);.|
|000045a0| 58 0a 58 20 20 20 20 69 | 66 20 28 6f 70 65 6e 28 |X.X i|f (open(|
|000045b0| 6d 65 6e 75 5f 66 6e 61 | 6d 65 2c 20 4f 5f 52 44 |menu_fna|me, O_RD|
|000045c0| 4f 4e 4c 59 29 20 3c 20 | 30 29 20 7b 0a 58 20 20 |ONLY) < |0) {.X |
|000045d0| 20 20 20 20 63 68 61 72 | 20 62 75 66 5b 38 30 5d | char| buf[80]|
|000045e0| 3b 0a 58 0a 58 20 20 20 | 20 20 20 73 70 72 69 6e |;.X.X | sprin|
|000045f0| 74 66 28 62 75 66 2c 20 | 22 63 61 6e 6e 6f 74 20 |tf(buf, |"cannot |
|00004600| 6f 70 65 6e 20 6d 65 6e | 75 20 64 65 66 69 6e 69 |open men|u defini|
|00004610| 74 69 6f 6e 3a 20 25 73 | 22 2c 20 6d 65 6e 75 5f |tion: %s|", menu_|
|00004620| 66 6e 61 6d 65 29 3b 0a | 58 20 20 20 20 20 20 66 |fname);.|X f|
|00004630| 61 74 61 6c 28 62 75 66 | 29 3b 0a 58 20 20 20 20 |atal(buf|);.X |
|00004640| 7d 0a 58 20 20 7d 0a 58 | 0a 58 20 20 69 66 20 28 |}.X }.X|.X if (|
|00004650| 28 74 74 79 5f 69 6e 20 | 3d 20 6f 70 65 6e 28 22 |(tty_in |= open("|
|00004660| 2f 64 65 76 2f 74 74 79 | 22 2c 20 4f 5f 52 44 4f |/dev/tty|", O_RDO|
|00004670| 4e 4c 59 29 29 20 3c 20 | 30 29 0a 58 20 20 20 20 |NLY)) < |0).X |
|00004680| 66 61 74 61 6c 28 22 63 | 61 6e 6e 6f 74 20 6f 70 |fatal("c|annot op|
|00004690| 65 6e 20 74 74 79 20 2d | 20 6d 75 73 74 20 62 65 |en tty -| must be|
|000046a0| 20 72 75 6e 20 69 6e 74 | 65 72 61 63 74 69 76 65 | run int|eractive|
|000046b0| 6c 79 22 29 3b 0a 58 20 | 20 74 74 79 5f 66 69 6c |ly");.X | tty_fil|
|000046c0| 65 20 3d 20 66 64 6f 70 | 65 6e 28 74 74 79 5f 69 |e = fdop|en(tty_i|
|000046d0| 6e 2c 20 22 72 22 29 3b | 0a 58 0a 58 20 20 63 6d |n, "r");|.X.X cm|
|000046e0| 64 5f 70 61 74 68 20 3d | 20 64 65 62 75 67 5f 6d |d_path =| debug_m|
|000046f0| 6f 64 65 20 3f 20 63 61 | 74 5f 70 61 74 68 20 3a |ode ? ca|t_path :|
|00004700| 20 73 68 65 6c 6c 5f 70 | 61 74 68 3b 0a 58 20 20 | shell_p|ath;.X |
|00004710| 69 66 20 28 63 6d 64 5f | 6e 61 6d 65 20 3d 20 73 |if (cmd_|name = s|
|00004720| 74 72 72 63 68 72 28 63 | 6d 64 5f 70 61 74 68 2c |trrchr(c|md_path,|
|00004730| 20 27 2f 27 29 29 0a 58 | 20 20 20 20 63 6d 64 5f | '/')).X| cmd_|
|00004740| 6e 61 6d 65 2b 2b 3b 0a | 58 20 20 65 6c 73 65 0a |name++;.|X else.|
|00004750| 58 20 20 20 20 63 6d 64 | 5f 6e 61 6d 65 20 3d 20 |X cmd|_name = |
|00004760| 63 6d 64 5f 70 61 74 68 | 3b 0a 58 7d 0a 58 0a 58 |cmd_path|;.X}.X.X|
|00004770| 73 74 72 75 63 74 20 70 | 61 72 6d 20 2a 6d 61 6b |struct p|arm *mak|
|00004780| 65 5f 6e 65 77 5f 70 61 | 72 6d 28 69 64 65 6e 74 |e_new_pa|rm(ident|
|00004790| 69 66 69 65 72 2c 20 70 | 72 6f 6d 70 74 29 0a 58 |ifier, p|rompt).X|
|000047a0| 63 68 61 72 20 2a 69 64 | 65 6e 74 69 66 69 65 72 |char *id|entifier|
|000047b0| 3b 0a 58 63 68 61 72 20 | 2a 70 72 6f 6d 70 74 3b |;.Xchar |*prompt;|
|000047c0| 0a 58 7b 0a 58 20 20 73 | 74 72 75 63 74 20 70 61 |.X{.X s|truct pa|
|000047d0| 72 6d 20 2a 70 61 72 6d | 5f 70 74 72 20 3d 20 28 |rm *parm|_ptr = (|
|000047e0| 73 74 72 75 63 74 20 70 | 61 72 6d 20 2a 29 6d 61 |struct p|arm *)ma|
|000047f0| 6c 6c 6f 63 28 73 69 7a | 65 6f 66 28 73 74 72 75 |lloc(siz|eof(stru|
|00004800| 63 74 20 70 61 72 6d 29 | 29 3b 0a 58 0a 58 20 20 |ct parm)|);.X.X |
|00004810| 69 66 20 28 21 70 61 72 | 6d 5f 70 74 72 29 0a 58 |if (!par|m_ptr).X|
|00004820| 20 20 20 20 66 61 74 61 | 6c 28 22 6d 61 6c 6c 6f | fata|l("mallo|
|00004830| 63 28 29 20 65 72 72 6f | 72 22 29 3b 0a 58 0a 58 |c() erro|r");.X.X|
|00004840| 20 20 70 61 72 6d 5f 70 | 74 72 2d 3e 6e 65 78 74 | parm_p|tr->next|
|00004850| 20 3d 20 28 73 74 72 75 | 63 74 20 70 61 72 6d 20 | = (stru|ct parm |
|00004860| 2a 29 30 3b 0a 58 20 20 | 70 61 72 6d 5f 70 74 72 |*)0;.X |parm_ptr|
|00004870| 2d 3e 70 72 6f 6d 70 74 | 20 3d 20 70 72 6f 6d 70 |->prompt| = promp|
|00004880| 74 3b 0a 58 20 20 70 61 | 72 6d 5f 70 74 72 2d 3e |t;.X pa|rm_ptr->|
|00004890| 69 64 65 6e 74 69 66 69 | 65 72 20 3d 20 69 64 65 |identifi|er = ide|
|000048a0| 6e 74 69 66 69 65 72 3b | 0a 58 20 20 70 61 72 6d |ntifier;|.X parm|
|000048b0| 5f 70 74 72 2d 3e 76 61 | 6c 75 65 20 3d 20 22 22 |_ptr->va|lue = ""|
|000048c0| 3b 0a 58 0a 58 20 20 72 | 65 74 75 72 6e 20 70 61 |;.X.X r|eturn pa|
|000048d0| 72 6d 5f 70 74 72 3b 0a | 58 7d 0a 58 0a 58 73 74 |rm_ptr;.|X}.X.Xst|
|000048e0| 72 75 63 74 20 69 74 65 | 6d 20 2a 6d 61 6b 65 5f |ruct ite|m *make_|
|000048f0| 6e 65 77 5f 69 74 65 6d | 28 70 72 6f 6d 70 74 2c |new_item|(prompt,|
|00004900| 20 63 6f 6d 6d 61 6e 64 | 2c 20 70 61 72 6d 73 29 | command|, parms)|
|00004910| 0a 58 63 68 61 72 20 2a | 70 72 6f 6d 70 74 3b 0a |.Xchar *|prompt;.|
|00004920| 58 63 68 61 72 20 2a 63 | 6f 6d 6d 61 6e 64 3b 0a |Xchar *c|ommand;.|
|00004930| 58 73 74 72 75 63 74 20 | 70 61 72 6d 20 2a 70 61 |Xstruct |parm *pa|
|00004940| 72 6d 73 3b 0a 58 7b 0a | 58 20 20 73 74 72 75 63 |rms;.X{.|X struc|
|00004950| 74 20 69 74 65 6d 20 2a | 69 74 65 6d 5f 70 74 72 |t item *|item_ptr|
|00004960| 20 3d 20 28 73 74 72 75 | 63 74 20 69 74 65 6d 20 | = (stru|ct item |
|00004970| 2a 29 6d 61 6c 6c 6f 63 | 28 73 69 7a 65 6f 66 28 |*)malloc|(sizeof(|
|00004980| 73 74 72 75 63 74 20 69 | 74 65 6d 29 29 3b 0a 58 |struct i|tem));.X|
|00004990| 0a 58 20 20 69 66 20 28 | 21 69 74 65 6d 5f 70 74 |.X if (|!item_pt|
|000049a0| 72 29 0a 58 20 20 20 20 | 66 61 74 61 6c 28 22 6d |r).X |fatal("m|
|000049b0| 61 6c 6c 6f 63 28 29 20 | 65 72 72 6f 72 22 29 3b |alloc() |error");|
|000049c0| 0a 58 0a 58 20 20 69 74 | 65 6d 5f 70 74 72 2d 3e |.X.X it|em_ptr->|
|000049d0| 6e 65 78 74 20 3d 20 28 | 73 74 72 75 63 74 20 69 |next = (|struct i|
|000049e0| 74 65 6d 20 2a 29 30 3b | 0a 58 20 20 69 74 65 6d |tem *)0;|.X item|
|000049f0| 5f 70 74 72 2d 3e 70 72 | 6f 6d 70 74 20 3d 20 70 |_ptr->pr|ompt = p|
|00004a00| 72 6f 6d 70 74 3b 0a 58 | 20 20 69 74 65 6d 5f 70 |rompt;.X| item_p|
|00004a10| 74 72 2d 3e 63 6f 6d 6d | 61 6e 64 20 3d 20 63 6f |tr->comm|and = co|
|00004a20| 6d 6d 61 6e 64 3b 0a 58 | 20 20 69 74 65 6d 5f 70 |mmand;.X| item_p|
|00004a30| 74 72 2d 3e 70 61 72 6d | 73 20 3d 20 70 61 72 6d |tr->parm|s = parm|
|00004a40| 73 3b 0a 58 0a 58 20 20 | 72 65 74 75 72 6e 20 69 |s;.X.X |return i|
|00004a50| 74 65 6d 5f 70 74 72 3b | 0a 58 7d 0a 58 0a 58 63 |tem_ptr;|.X}.X.Xc|
|00004a60| 68 61 72 20 74 74 79 5f | 62 70 5b 31 30 32 34 5d |har tty_|bp[1024]|
|00004a70| 3b 0a 58 63 68 61 72 20 | 74 74 79 5f 63 61 70 73 |;.Xchar |tty_caps|
|00004a80| 5b 31 30 32 34 5d 3b 0a | 58 63 68 61 72 20 2a 74 |[1024];.|Xchar *t|
|00004a90| 65 72 6d 5f 63 6d 3b 0a | 58 63 68 61 72 20 2a 74 |erm_cm;.|Xchar *t|
|00004aa0| 65 72 6d 5f 73 6f 3b 0a | 58 63 68 61 72 20 2a 74 |erm_so;.|Xchar *t|
|00004ab0| 65 72 6d 5f 73 65 3b 0a | 58 69 6e 74 20 74 65 72 |erm_se;.|Xint ter|
|00004ac0| 6d 5f 73 67 3b 0a 58 63 | 68 61 72 20 2a 74 65 72 |m_sg;.Xc|har *ter|
|00004ad0| 6d 5f 63 6c 3b 0a 58 69 | 6e 74 20 74 65 72 6d 5f |m_cl;.Xi|nt term_|
|00004ae0| 6c 69 6e 65 73 3b 0a 58 | 63 68 61 72 20 50 43 3b |lines;.X|char PC;|
|00004af0| 0a 58 63 68 61 72 20 2a | 42 43 3b 0a 58 63 68 61 |.Xchar *|BC;.Xcha|
|00004b00| 72 20 2a 55 50 3b 0a 58 | 73 68 6f 72 74 20 6f 73 |r *UP;.X|short os|
|00004b10| 70 65 65 64 3b 0a 58 0a | 58 69 6e 74 20 6f 75 74 |peed;.X.|Xint out|
|00004b20| 63 28 63 29 0a 58 69 6e | 74 20 63 3b 0a 58 7b 0a |c(c).Xin|t c;.X{.|
|00004b30| 58 20 20 70 75 74 63 28 | 63 2c 20 73 74 64 6f 75 |X putc(|c, stdou|
|00004b40| 74 29 3b 0a 58 7d 0a 58 | 0a 58 69 6e 69 74 5f 74 |t);.X}.X|.Xinit_t|
|00004b50| 65 72 6d 69 6e 61 6c 28 | 29 0a 58 7b 0a 58 20 20 |erminal(|).X{.X |
|00004b60| 63 68 61 72 20 2a 67 65 | 74 65 6e 76 28 29 3b 0a |char *ge|tenv();.|
|00004b70| 58 20 20 63 68 61 72 20 | 2a 74 74 79 5f 74 79 70 |X char |*tty_typ|
|00004b80| 65 20 3d 20 67 65 74 65 | 6e 76 28 22 54 45 52 4d |e = gete|nv("TERM|
|00004b90| 22 29 3b 0a 58 20 20 63 | 68 61 72 20 2a 63 70 20 |");.X c|har *cp |
|00004ba0| 3d 20 74 74 79 5f 63 61 | 70 73 3b 0a 58 20 20 63 |= tty_ca|ps;.X c|
|00004bb0| 68 61 72 20 2a 74 67 65 | 74 73 74 72 28 29 3b 0a |har *tge|tstr();.|
|00004bc0| 58 0a 58 20 20 69 66 20 | 28 21 74 74 79 5f 74 79 |X.X if |(!tty_ty|
|00004bd0| 70 65 20 7c 7c 20 74 67 | 65 74 65 6e 74 28 74 74 |pe || tg|etent(tt|
|00004be0| 79 5f 62 70 2c 20 74 74 | 79 5f 74 79 70 65 29 20 |y_bp, tt|y_type) |
|00004bf0| 3c 3d 20 30 29 20 7b 0a | 58 20 20 20 20 63 6c 65 |<= 0) {.|X cle|
|00004c00| 61 72 5f 66 6c 61 67 20 | 3d 0a 58 20 20 20 20 20 |ar_flag |=.X |
|00004c10| 20 62 6f 6c 64 5f 66 6c | 61 67 20 3d 20 30 3b 0a | bold_fl|ag = 0;.|
|00004c20| 58 20 20 20 20 72 65 74 | 75 72 6e 3b 0a 58 20 20 |X ret|urn;.X |
|00004c30| 7d 0a 58 0a 58 20 20 50 | 43 20 3d 20 2a 74 67 65 |}.X.X P|C = *tge|
|00004c40| 74 73 74 72 28 22 70 63 | 22 2c 20 26 63 70 29 3b |tstr("pc|", &cp);|
|00004c50| 0a 58 20 20 42 43 20 3d | 20 74 67 65 74 73 74 72 |.X BC =| tgetstr|
|00004c60| 28 22 62 63 22 2c 20 26 | 63 70 29 3b 0a 58 20 20 |("bc", &|cp);.X |
|00004c70| 55 50 20 3d 20 74 67 65 | 74 73 74 72 28 22 75 70 |UP = tge|tstr("up|
|00004c80| 22 2c 20 26 63 70 29 3b | 0a 58 23 69 66 64 65 66 |", &cp);|.X#ifdef|
|00004c90| 20 54 45 52 4d 49 4f 0a | 58 20 20 7b 0a 58 23 69 | TERMIO.|X {.X#i|
|00004ca0| 6e 63 6c 75 64 65 20 3c | 73 79 73 2f 74 65 72 6d |nclude <|sys/term|
|00004cb0| 69 6f 2e 68 3e 0a 58 0a | 58 20 20 20 20 73 74 72 |io.h>.X.|X str|
|00004cc0| 75 63 74 20 74 65 72 6d | 69 6f 20 74 65 72 6d 69 |uct term|io termi|
|00004cd0| 6f 3b 0a 58 0a 58 20 20 | 20 20 69 6f 63 74 6c 28 |o;.X.X | ioctl(|
|00004ce0| 30 2c 20 54 43 47 45 54 | 41 2c 20 26 74 65 72 6d |0, TCGET|A, &term|
|00004cf0| 69 6f 29 3b 0a 58 20 20 | 20 20 6f 73 70 65 65 64 |io);.X | ospeed|
|00004d00| 20 3d 20 74 65 72 6d 69 | 6f 2e 63 5f 63 66 6c 61 | = termi|o.c_cfla|
|00004d10| 67 20 26 20 43 42 41 55 | 44 3b 0a 58 20 20 7d 0a |g & CBAU|D;.X }.|
|00004d20| 58 23 75 6e 64 65 66 20 | 45 43 48 4f 20 2f 2a 20 |X#undef |ECHO /* |
|00004d30| 63 6f 6e 66 6c 69 63 74 | 73 20 77 69 74 68 20 6c |conflict|s with l|
|00004d40| 65 78 20 63 6f 64 65 20 | 2a 2f 0a 58 23 65 6e 64 |ex code |*/.X#end|
|00004d50| 69 66 20 2f 2a 20 54 45 | 52 4d 49 4f 20 2a 2f 0a |if /* TE|RMIO */.|
|00004d60| 58 20 20 74 65 72 6d 5f | 63 6d 20 3d 20 74 67 65 |X term_|cm = tge|
|00004d70| 74 73 74 72 28 22 63 6d | 22 2c 20 26 63 70 29 3b |tstr("cm|", &cp);|
|00004d80| 0a 58 20 20 69 66 20 28 | 62 6f 6c 64 5f 66 6c 61 |.X if (|bold_fla|
|00004d90| 67 29 20 7b 0a 58 20 20 | 20 20 74 65 72 6d 5f 73 |g) {.X | term_s|
|00004da0| 6f 20 3d 20 74 67 65 74 | 73 74 72 28 22 73 6f 22 |o = tget|str("so"|
|00004db0| 2c 20 26 63 70 29 3b 0a | 58 20 20 20 20 74 65 72 |, &cp);.|X ter|
|00004dc0| 6d 5f 73 65 20 3d 20 74 | 67 65 74 73 74 72 28 22 |m_se = t|getstr("|
|00004dd0| 73 65 22 2c 20 26 63 70 | 29 3b 0a 58 20 20 20 20 |se", &cp|);.X |
|00004de0| 74 65 72 6d 5f 73 67 20 | 3d 20 74 67 65 74 6e 75 |term_sg |= tgetnu|
|00004df0| 6d 28 22 73 67 22 29 3b | 0a 58 20 20 20 20 69 66 |m("sg");|.X if|
|00004e00| 20 28 21 74 65 72 6d 5f | 73 6f 29 0a 58 20 20 20 | (!term_|so).X |
|00004e10| 20 20 20 62 6f 6c 64 5f | 66 6c 61 67 20 3d 20 30 | bold_|flag = 0|
|00004e20| 3b 0a 58 20 20 7d 0a 58 | 20 20 69 66 20 28 63 6c |;.X }.X| if (cl|
|00004e30| 65 61 72 5f 66 6c 61 67 | 29 20 7b 0a 58 20 20 20 |ear_flag|) {.X |
|00004e40| 20 74 65 72 6d 5f 63 6c | 20 3d 20 74 67 65 74 73 | term_cl| = tgets|
|00004e50| 74 72 28 22 63 6c 22 2c | 20 26 63 70 29 3b 0a 58 |tr("cl",| &cp);.X|
|00004e60| 20 20 20 20 74 65 72 6d | 5f 6c 69 6e 65 73 20 3d | term|_lines =|
|00004e70| 20 74 67 65 74 6e 75 6d | 28 22 6c 69 22 29 3b 0a | tgetnum|("li");.|
|00004e80| 58 20 20 20 20 69 66 20 | 28 21 74 65 72 6d 5f 63 |X if |(!term_c|
|00004e90| 6c 29 0a 58 20 20 20 20 | 20 20 63 6c 65 61 72 5f |l).X | clear_|
|00004ea0| 66 6c 61 67 20 3d 20 30 | 3b 0a 58 20 20 7d 0a 58 |flag = 0|;.X }.X|
|00004eb0| 7d 0a 58 0a 58 64 6f 5f | 6d 65 6e 75 28 29 0a 58 |}.X.Xdo_|menu().X|
|00004ec0| 7b 0a 58 20 20 69 6e 74 | 20 69 74 65 6d 5f 69 64 |{.X int| item_id|
|00004ed0| 78 3b 0a 58 20 20 69 6e | 74 20 70 69 64 3b 0a 58 |x;.X in|t pid;.X|
|00004ee0| 0a 58 20 20 77 68 69 6c | 65 20 28 31 29 20 7b 0a |.X whil|e (1) {.|
|00004ef0| 58 20 20 61 67 61 69 6e | 3a 0a 58 20 20 20 20 73 |X again|:.X s|
|00004f00| 65 74 6a 6d 70 28 65 6e | 76 29 3b 0a 58 20 20 20 |etjmp(en|v);.X |
|00004f10| 20 73 65 74 5f 73 69 67 | 6e 61 6c 73 28 53 49 47 | set_sig|nals(SIG|
|00004f20| 53 5f 46 4f 52 5f 4a 4d | 50 29 3b 0a 58 0a 58 20 |S_FOR_JM|P);.X.X |
|00004f30| 20 20 20 77 68 69 6c 65 | 20 28 31 29 20 7b 0a 58 | while| (1) {.X|
|00004f40| 20 20 20 20 20 20 63 68 | 61 72 20 62 75 66 5b 38 | ch|ar buf[8|
|00004f50| 30 5d 3b 0a 58 20 20 20 | 20 20 20 63 68 61 72 20 |0];.X | char |
|00004f60| 2a 63 70 3b 0a 58 20 20 | 20 20 20 20 69 6e 74 20 |*cp;.X | int |
|00004f70| 72 73 70 3b 0a 58 0a 58 | 20 20 20 20 20 20 64 69 |rsp;.X.X| di|
|00004f80| 73 70 6c 61 79 5f 6d 65 | 6e 75 28 29 3b 0a 58 20 |splay_me|nu();.X |
|00004f90| 20 20 20 20 20 66 67 65 | 74 73 28 62 75 66 2c 20 | fge|ts(buf, |
|00004fa0| 38 30 2c 20 74 74 79 5f | 66 69 6c 65 29 3b 0a 58 |80, tty_|file);.X|
|00004fb0| 20 20 20 20 20 20 69 66 | 20 28 63 70 20 3d 20 73 | if| (cp = s|
|00004fc0| 74 72 63 68 72 28 62 75 | 66 2c 20 27 5c 6e 27 29 |trchr(bu|f, '\n')|
|00004fd0| 29 0a 58 09 2a 63 70 20 | 3d 20 27 5c 30 27 3b 0a |).X.*cp |= '\0';.|
|00004fe0| 58 0a 58 20 20 20 20 20 | 20 69 66 20 28 73 74 72 |X.X | if (str|
|00004ff0| 63 68 72 28 62 75 66 2c | 20 27 51 27 29 20 7c 7c |chr(buf,| 'Q') |||
|00005000| 20 73 74 72 63 68 72 28 | 62 75 66 2c 20 27 71 27 | strchr(|buf, 'q'|
|00005010| 29 29 0a 58 09 65 78 69 | 74 28 30 29 3b 0a 58 0a |)).X.exi|t(0);.X.|
|00005020| 58 20 20 20 20 20 20 69 | 66 20 28 73 74 72 63 68 |X i|f (strch|
|00005030| 72 28 62 75 66 2c 20 27 | 3f 27 29 29 20 7b 0a 58 |r(buf, '|?')) {.X|
|00005040| 09 64 69 73 70 6c 61 79 | 5f 6d 65 6e 75 5f 66 6c |.display|_menu_fl|
|00005050| 61 67 20 3d 20 31 3b 0a | 58 09 67 6f 74 6f 20 61 |ag = 1;.|X.goto a|
|00005060| 67 61 69 6e 3b 0a 58 20 | 20 20 20 20 20 7d 0a 58 |gain;.X | }.X|
|00005070| 0a 58 20 20 20 20 20 20 | 69 66 20 28 73 73 63 61 |.X |if (ssca|
|00005080| 6e 66 28 62 75 66 2c 20 | 22 25 64 22 2c 20 26 69 |nf(buf, |"%d", &i|
|00005090| 74 65 6d 5f 69 64 78 29 | 20 21 3d 20 31 29 20 7b |tem_idx)| != 1) {|
|000050a0| 0a 58 09 70 72 69 6e 74 | 66 28 22 27 25 73 27 20 |.X.print|f("'%s' |
|000050b0| 69 73 20 6e 6f 74 20 61 | 20 6c 65 67 61 6c 20 72 |is not a| legal r|
|000050c0| 65 73 70 6f 6e 73 65 5c | 6e 22 2c 20 62 75 66 29 |esponse\|n", buf)|
|000050d0| 3b 0a 58 09 67 6f 74 6f | 20 61 67 61 69 6e 3b 0a |;.X.goto| again;.|
|000050e0| 58 20 20 20 20 20 20 7d | 0a 58 0a 58 20 20 20 20 |X }|.X.X |
|000050f0| 20 20 69 66 20 28 2d 2d | 69 74 65 6d 5f 69 64 78 | if (--|item_idx|
|00005100| 20 3c 20 30 20 7c 7c 20 | 69 74 65 6d 5f 69 64 78 | < 0 || |item_idx|
|00005110| 20 3e 3d 20 6d 61 78 5f | 69 74 65 6d 29 20 7b 0a | >= max_|item) {.|
|00005120| 58 09 70 72 69 6e 74 66 | 28 22 27 25 73 27 20 69 |X.printf|("'%s' i|
|00005130| 73 20 6e 6f 74 20 61 20 | 6c 65 67 61 6c 20 72 65 |s not a |legal re|
|00005140| 73 70 6f 6e 73 65 5c 6e | 22 2c 20 62 75 66 29 3b |sponse\n|", buf);|
|00005150| 0a 58 09 67 6f 74 6f 20 | 61 67 61 69 6e 3b 0a 58 |.X.goto |again;.X|
|00005160| 20 20 20 20 20 20 7d 0a | 58 20 20 20 20 20 20 65 | }.|X e|
|00005170| 6c 73 65 0a 58 09 62 72 | 65 61 6b 3b 0a 58 20 20 |lse.X.br|eak;.X |
|00005180| 20 20 7d 0a 58 0a 58 20 | 20 20 20 73 65 6c 65 63 | }.X.X | selec|
|00005190| 74 65 64 5f 69 74 65 6d | 20 3d 20 6d 65 6e 75 5f |ted_item| = menu_|
|000051a0| 68 65 61 64 3b 0a 58 20 | 20 20 20 77 68 69 6c 65 |head;.X | while|
|000051b0| 20 28 69 74 65 6d 5f 69 | 64 78 2d 2d 20 3e 20 30 | (item_i|dx-- > 0|
|000051c0| 29 0a 58 20 20 20 20 20 | 20 73 65 6c 65 63 74 65 |).X | selecte|
|000051d0| 64 5f 69 74 65 6d 20 3d | 20 73 65 6c 65 63 74 65 |d_item =| selecte|
|000051e0| 64 5f 69 74 65 6d 2d 3e | 6e 65 78 74 3b 0a 58 0a |d_item->|next;.X.|
|000051f0| 58 20 20 20 20 73 65 6c | 65 63 74 65 64 5f 70 61 |X sel|ected_pa|
|00005200| 72 6d 73 20 3d 20 73 65 | 6c 65 63 74 65 64 5f 69 |rms = se|lected_i|
|00005210| 74 65 6d 2d 3e 70 61 72 | 6d 73 3b 0a 58 0a 58 20 |tem->par|ms;.X.X |
|00005220| 20 20 20 77 68 69 6c 65 | 20 28 73 65 6c 65 63 74 | while| (select|
|00005230| 65 64 5f 70 61 72 6d 73 | 29 20 7b 0a 58 20 20 20 |ed_parms|) {.X |
|00005240| 20 20 20 63 68 61 72 20 | 62 75 66 5b 32 35 36 5d | char |buf[256]|
|00005250| 3b 0a 58 20 20 20 20 20 | 20 63 68 61 72 20 2a 63 |;.X | char *c|
|00005260| 70 3b 0a 58 0a 58 20 20 | 20 20 20 20 70 72 69 6e |p;.X.X | prin|
|00005270| 74 66 28 22 25 73 3a 20 | 22 2c 20 73 65 6c 65 63 |tf("%s: |", selec|
|00005280| 74 65 64 5f 70 61 72 6d | 73 2d 3e 70 72 6f 6d 70 |ted_parm|s->promp|
|00005290| 74 29 3b 0a 58 20 20 20 | 20 20 20 66 66 6c 75 73 |t);.X | fflus|
|000052a0| 68 28 73 74 64 6f 75 74 | 29 3b 0a 58 20 20 20 20 |h(stdout|);.X |
|000052b0| 20 20 66 67 65 74 73 28 | 62 75 66 2c 20 32 35 35 | fgets(|buf, 255|
|000052c0| 2c 20 74 74 79 5f 66 69 | 6c 65 29 3b 0a 58 20 20 |, tty_fi|le);.X |
|000052d0| 20 20 20 20 69 66 20 28 | 63 70 20 3d 20 73 74 72 | if (|cp = str|
|000052e0| 63 68 72 28 62 75 66 2c | 20 27 5c 6e 27 29 29 0a |chr(buf,| '\n')).|
|000052f0| 58 09 2a 63 70 20 3d 20 | 27 5c 30 27 3b 0a 58 0a |X.*cp = |'\0';.X.|
|00005300| 58 20 20 20 20 20 20 73 | 74 72 63 70 79 28 73 65 |X s|trcpy(se|
|00005310| 6c 65 63 74 65 64 5f 70 | 61 72 6d 73 2d 3e 76 61 |lected_p|arms->va|
|00005320| 6c 75 65 20 3d 20 6d 61 | 6c 6c 6f 63 28 73 74 72 |lue = ma|lloc(str|
|00005330| 6c 65 6e 28 62 75 66 29 | 20 2b 20 31 29 2c 20 62 |len(buf)| + 1), b|
|00005340| 75 66 29 3b 0a 58 20 20 | 20 20 20 20 73 65 6c 65 |uf);.X | sele|
|00005350| 63 74 65 64 5f 70 61 72 | 6d 73 20 3d 20 73 65 6c |cted_par|ms = sel|
|00005360| 65 63 74 65 64 5f 70 61 | 72 6d 73 2d 3e 6e 65 78 |ected_pa|rms->nex|
|00005370| 74 3b 0a 58 20 20 20 20 | 7d 0a 58 0a 58 20 20 20 |t;.X |}.X.X |
|00005380| 20 74 6d 70 5f 66 6e 61 | 6d 65 20 3d 20 74 6d 70 | tmp_fna|me = tmp|
|00005390| 6e 61 6d 28 28 63 68 61 | 72 20 2a 29 30 29 3b 0a |nam((cha|r *)0);.|
|000053a0| 58 20 20 20 20 73 65 74 | 5f 73 69 67 6e 61 6c 73 |X set|_signals|
|000053b0| 28 53 49 47 53 5f 46 4f | 52 5f 43 48 49 4c 44 29 |(SIGS_FO|R_CHILD)|
|000053c0| 3b 0a 58 20 20 20 20 69 | 66 20 28 28 74 6d 70 5f |;.X i|f ((tmp_|
|000053d0| 66 69 6c 65 20 3d 20 66 | 6f 70 65 6e 28 74 6d 70 |file = f|open(tmp|
|000053e0| 5f 66 6e 61 6d 65 2c 20 | 22 77 22 29 29 20 3d 3d |_fname, |"w")) ==|
|000053f0| 20 4e 55 4c 4c 29 0a 58 | 20 20 20 20 20 20 66 61 | NULL).X| fa|
|00005400| 74 61 6c 28 22 63 61 6e | 6e 6f 74 20 63 72 65 61 |tal("can|not crea|
|00005410| 74 65 20 74 65 6d 70 20 | 66 69 6c 65 20 66 6f 72 |te temp |file for|
|00005420| 20 73 68 65 6c 6c 22 29 | 3b 0a 58 20 20 20 20 69 | shell")|;.X i|
|00005430| 66 20 28 76 65 72 62 6f | 73 65 29 0a 58 20 20 20 |f (verbo|se).X |
|00005440| 20 20 20 66 70 72 69 6e | 74 66 28 74 6d 70 5f 66 | fprin|tf(tmp_f|
|00005450| 69 6c 65 2c 20 22 73 65 | 74 20 2d 78 76 5c 6e 22 |ile, "se|t -xv\n"|
|00005460| 29 3b 0a 58 20 20 20 20 | 66 6f 72 20 28 73 65 6c |);.X |for (sel|
|00005470| 65 63 74 65 64 5f 70 61 | 72 6d 73 3d 73 65 6c 65 |ected_pa|rms=sele|
|00005480| 63 74 65 64 5f 69 74 65 | 6d 2d 3e 70 61 72 6d 73 |cted_ite|m->parms|
|00005490| 3b 73 65 6c 65 63 74 65 | 64 5f 70 61 72 6d 73 3b |;selecte|d_parms;|
|000054a0| 0a 58 09 20 73 65 6c 65 | 63 74 65 64 5f 70 61 72 |.X. sele|cted_par|
|000054b0| 6d 73 3d 73 65 6c 65 63 | 74 65 64 5f 70 61 72 6d |ms=selec|ted_parm|
|000054c0| 73 2d 3e 6e 65 78 74 29 | 20 7b 0a 58 20 20 20 20 |s->next)| {.X |
|000054d0| 20 20 66 70 72 69 6e 74 | 66 28 74 6d 70 5f 66 69 | fprint|f(tmp_fi|
|000054e0| 6c 65 2c 20 22 25 73 3d | 5c 22 25 73 5c 22 5c 6e |le, "%s=|\"%s\"\n|
|000054f0| 22 2c 20 73 65 6c 65 63 | 74 65 64 5f 70 61 72 6d |", selec|ted_parm|
|00005500| 73 2d 3e 69 64 65 6e 74 | 69 66 69 65 72 2c 0a 58 |s->ident|ifier,.X|
|00005510| 09 20 20 20 20 20 20 73 | 65 6c 65 63 74 65 64 5f |. s|elected_|
|00005520| 70 61 72 6d 73 2d 3e 76 | 61 6c 75 65 29 3b 0a 58 |parms->v|alue);.X|
|00005530| 20 20 20 20 20 20 66 72 | 65 65 28 73 65 6c 65 63 | fr|ee(selec|
|00005540| 74 65 64 5f 70 61 72 6d | 73 2d 3e 76 61 6c 75 65 |ted_parm|s->value|
|00005550| 29 3b 0a 58 20 20 20 20 | 20 20 73 65 6c 65 63 74 |);.X | select|
|00005560| 65 64 5f 70 61 72 6d 73 | 2d 3e 76 61 6c 75 65 20 |ed_parms|->value |
|00005570| 3d 20 22 22 3b 0a 58 20 | 20 20 20 7d 0a 58 20 20 |= "";.X | }.X |
|00005580| 20 20 66 70 72 69 6e 74 | 66 28 74 6d 70 5f 66 69 | fprint|f(tmp_fi|
|00005590| 6c 65 2c 20 22 25 73 5c | 6e 22 2c 20 73 65 6c 65 |le, "%s\|n", sele|
|000055a0| 63 74 65 64 5f 69 74 65 | 6d 2d 3e 63 6f 6d 6d 61 |cted_ite|m->comma|
|000055b0| 6e 64 29 3b 0a 58 20 20 | 20 20 66 63 6c 6f 73 65 |nd);.X | fclose|
|000055c0| 28 74 6d 70 5f 66 69 6c | 65 29 3b 0a 58 0a 58 20 |(tmp_fil|e);.X.X |
|000055d0| 20 20 20 69 66 20 28 20 | 21 28 70 69 64 20 3d 20 | if ( |!(pid = |
|000055e0| 66 6f 72 6b 28 29 29 20 | 29 20 7b 0a 58 20 20 20 |fork()) |) {.X |
|000055f0| 20 20 20 2f 2a 20 72 65 | 73 65 74 20 73 69 67 6e | /* re|set sign|
|00005600| 61 6c 73 20 73 6f 20 74 | 68 61 74 20 44 45 4c 2c |als so t|hat DEL,|
|00005610| 2e 2e 2e 20 77 6f 72 6b | 20 63 6f 72 72 65 63 74 |... work| correct|
|00005620| 6c 79 20 2a 2f 0a 58 20 | 20 20 20 20 20 72 65 73 |ly */.X | res|
|00005630| 65 74 5f 73 69 67 6e 61 | 6c 73 28 29 3b 0a 58 20 |et_signa|ls();.X |
|00005640| 20 20 20 20 20 63 6c 6f | 73 65 28 30 29 3b 0a 58 | clo|se(0);.X|
|00005650| 20 20 20 20 20 20 64 75 | 70 28 74 74 79 5f 69 6e | du|p(tty_in|
|00005660| 29 3b 0a 58 20 20 20 20 | 20 20 63 6c 6f 73 65 28 |);.X | close(|
|00005670| 74 74 79 5f 69 6e 29 3b | 0a 58 20 20 20 20 20 20 |tty_in);|.X |
|00005680| 66 63 6c 6f 73 65 28 74 | 74 79 5f 66 69 6c 65 29 |fclose(t|ty_file)|
|00005690| 3b 0a 58 20 20 20 20 20 | 20 65 78 65 63 6c 28 63 |;.X | execl(c|
|000056a0| 6d 64 5f 70 61 74 68 2c | 20 63 6d 64 5f 6e 61 6d |md_path,| cmd_nam|
|000056b0| 65 2c 20 74 6d 70 5f 66 | 6e 61 6d 65 2c 20 28 63 |e, tmp_f|name, (c|
|000056c0| 68 61 72 20 2a 29 30 29 | 3b 0a 58 20 20 20 20 20 |har *)0)|;.X |
|000056d0| 20 66 61 74 61 6c 28 22 | 65 78 65 63 20 6f 66 20 | fatal("|exec of |
|000056e0| 63 6f 6d 6d 61 6e 64 20 | 66 61 69 6c 65 64 22 29 |command |failed")|
|000056f0| 3b 0a 58 20 20 20 20 7d | 0a 58 0a 58 20 20 20 20 |;.X }|.X.X |
|00005700| 77 61 69 74 5f 66 6f 72 | 5f 63 68 69 6c 64 28 70 |wait_for|_child(p|
|00005710| 69 64 29 3b 0a 58 20 20 | 20 20 75 6e 6c 69 6e 6b |id);.X | unlink|
|00005720| 28 74 6d 70 5f 66 6e 61 | 6d 65 29 3b 0a 58 20 20 |(tmp_fna|me);.X |
|00005730| 20 20 74 6d 70 5f 66 6e | 61 6d 65 20 3d 20 28 63 | tmp_fn|ame = (c|
|00005740| 68 61 72 20 2a 29 30 3b | 0a 58 20 20 20 20 69 66 |har *)0;|.X if|
|00005750| 20 28 63 6c 65 61 72 5f | 66 6c 61 67 29 20 7b 0a | (clear_|flag) {.|
|00005760| 58 20 20 20 20 20 20 63 | 68 61 72 20 62 75 66 5b |X c|har buf[|
|00005770| 38 30 5d 3b 0a 58 0a 58 | 20 20 20 20 20 20 70 72 |80];.X.X| pr|
|00005780| 69 6e 74 66 28 22 5b 50 | 72 65 73 73 20 52 65 74 |intf("[P|ress Ret|
|00005790| 75 72 6e 20 74 6f 20 43 | 6f 6e 74 69 6e 75 65 5d |urn to C|ontinue]|
|000057a0| 22 29 3b 0a 58 20 20 20 | 20 20 20 66 66 6c 75 73 |");.X | fflus|
|000057b0| 68 28 73 74 64 6f 75 74 | 29 3b 0a 58 20 20 20 20 |h(stdout|);.X |
|000057c0| 20 20 66 67 65 74 73 28 | 62 75 66 2c 20 38 30 2c | fgets(|buf, 80,|
|000057d0| 20 74 74 79 5f 66 69 6c | 65 29 3b 0a 58 20 20 20 | tty_fil|e);.X |
|000057e0| 20 7d 0a 58 20 20 7d 0a | 58 20 20 72 65 73 65 74 | }.X }.|X reset|
|000057f0| 5f 73 69 67 6e 61 6c 73 | 28 29 3b 0a 58 7d 0a 58 |_signals|();.X}.X|
|00005800| 0a 58 64 69 73 70 6c 61 | 79 5f 6d 65 6e 75 28 29 |.Xdispla|y_menu()|
|00005810| 0a 58 7b 0a 58 20 20 73 | 74 72 75 63 74 20 69 74 |.X{.X s|truct it|
|00005820| 65 6d 20 2a 70 74 72 20 | 3d 20 6d 65 6e 75 5f 68 |em *ptr |= menu_h|
|00005830| 65 61 64 3b 0a 58 20 20 | 69 6e 74 20 69 3b 0a 58 |ead;.X |int i;.X|
|00005840| 0a 58 20 20 2f 2a 20 69 | 66 20 77 65 20 63 6c 65 |.X /* i|f we cle|
|00005850| 61 72 20 74 68 65 20 73 | 63 72 65 65 6e 2c 20 74 |ar the s|creen, t|
|00005860| 68 65 6e 20 64 6f 20 69 | 74 2c 20 6f 74 68 65 72 |hen do i|t, other|
|00005870| 77 69 73 65 20 73 6b 69 | 70 20 61 20 6c 69 6e 65 |wise ski|p a line|
|00005880| 20 2a 2f 0a 58 20 20 69 | 66 20 28 63 6c 65 61 72 | */.X i|f (clear|
|00005890| 5f 66 6c 61 67 29 0a 58 | 20 20 20 20 74 70 75 74 |_flag).X| tput|
|000058a0| 73 28 74 65 72 6d 5f 63 | 6c 2c 20 74 65 72 6d 5f |s(term_c|l, term_|
|000058b0| 6c 69 6e 65 73 2c 20 6f | 75 74 63 29 3b 0a 58 20 |lines, o|utc);.X |
|000058c0| 20 65 6c 73 65 0a 58 20 | 20 20 20 70 75 74 63 28 | else.X | putc(|
|000058d0| 27 5c 6e 27 2c 20 73 74 | 64 6f 75 74 29 3b 0a 58 |'\n', st|dout);.X|
|000058e0| 0a 58 20 20 2f 2a 20 74 | 68 69 73 20 69 73 20 6e |.X /* t|his is n|
|000058f0| 6f 74 20 63 6f 72 72 65 | 63 74 20 66 6f 72 20 6d |ot corre|ct for m|
|00005900| 61 67 69 63 20 63 6f 6f | 6b 69 65 20 74 75 62 65 |agic coo|kie tube|
|00005910| 73 20 2d 20 62 75 74 20 | 49 20 64 6f 6e 27 74 20 |s - but |I don't |
|00005920| 66 65 65 6c 0a 58 20 20 | 20 20 20 6c 69 6b 65 20 |feel.X | like |
|00005930| 63 6f 75 6e 74 69 6e 67 | 20 6c 69 6e 65 73 20 69 |counting| lines i|
|00005940| 6e 20 6d 65 6e 75 5f 74 | 69 74 6c 65 2c 20 6d 61 |n menu_t|itle, ma|
|00005950| 69 6e 74 61 69 6e 69 6e | 67 20 6c 69 6e 65 20 63 |intainin|g line c|
|00005960| 6f 75 6e 74 73 20 69 6e | 20 74 68 65 0a 58 20 20 |ounts in| the.X |
|00005970| 20 20 20 63 61 73 65 20 | 77 65 20 64 6f 6e 27 74 | case |we don't|
|00005980| 20 63 6c 65 61 72 2d 73 | 63 72 65 65 6e 2d 62 65 | clear-s|creen-be|
|00005990| 66 6f 72 65 2d 64 69 73 | 70 6c 61 79 69 6e 67 2c |fore-dis|playing,|
|000059a0| 20 2e 2e 2e 0a 58 20 20 | 20 20 20 53 6f 20 69 66 | ....X | So if|
|000059b0| 20 79 6f 75 20 68 61 76 | 65 20 61 20 73 74 75 70 | you hav|e a stup|
|000059c0| 69 64 20 74 75 62 65 20 | 2d 20 69 74 20 69 73 20 |id tube |- it is |
|000059d0| 67 6f 69 6e 67 20 74 6f | 20 66 6c 61 73 68 20 2a |going to| flash *|
|000059e0| 2f 0a 58 20 20 69 66 20 | 28 62 6f 6c 64 5f 66 6c |/.X if |(bold_fl|
|000059f0| 61 67 29 20 7b 0a 58 20 | 20 20 20 74 70 75 74 73 |ag) {.X | tputs|
|00005a00| 28 74 65 72 6d 5f 73 6f | 2c 20 31 2c 20 6f 75 74 |(term_so|, 1, out|
|00005a10| 63 29 3b 0a 58 20 20 20 | 20 70 72 69 6e 74 66 28 |c);.X | printf(|
|00005a20| 22 25 73 22 2c 20 6d 65 | 6e 75 5f 74 69 74 6c 65 |"%s", me|nu_title|
|00005a30| 29 3b 0a 58 20 20 20 20 | 74 70 75 74 73 28 74 65 |);.X |tputs(te|
|00005a40| 72 6d 5f 73 65 2c 20 31 | 2c 20 6f 75 74 63 29 3b |rm_se, 1|, outc);|
|00005a50| 0a 58 20 20 20 20 70 75 | 74 63 28 27 5c 6e 27 2c |.X pu|tc('\n',|
|00005a60| 20 73 74 64 6f 75 74 29 | 3b 0a 58 20 20 7d 0a 58 | stdout)|;.X }.X|
|00005a70| 20 20 65 6c 73 65 0a 58 | 20 20 20 20 70 72 69 6e | else.X| prin|
|00005a80| 74 66 28 22 25 73 5c 6e | 22 2c 20 6d 65 6e 75 5f |tf("%s\n|", menu_|
|00005a90| 74 69 74 6c 65 29 3b 0a | 58 0a 58 20 20 69 66 20 |title);.|X.X if |
|00005aa0| 28 64 69 73 70 6c 61 79 | 5f 6d 65 6e 75 5f 66 6c |(display|_menu_fl|
|00005ab0| 61 67 29 20 7b 0a 58 20 | 20 20 20 66 6f 72 20 28 |ag) {.X | for (|
|00005ac0| 69 3d 30 3b 70 74 72 3b | 69 2b 2b 2c 70 74 72 20 |i=0;ptr;|i++,ptr |
|00005ad0| 3d 20 70 74 72 2d 3e 6e | 65 78 74 29 0a 58 20 20 |= ptr->n|ext).X |
|00005ae0| 20 20 20 20 70 72 69 6e | 74 66 28 22 25 32 64 2e | prin|tf("%2d.|
|00005af0| 20 25 73 5c 6e 22 2c 20 | 69 20 2b 20 31 2c 20 70 | %s\n", |i + 1, p|
|00005b00| 74 72 2d 3e 70 72 6f 6d | 70 74 29 3b 0a 58 20 20 |tr->prom|pt);.X |
|00005b10| 20 20 6d 61 78 5f 69 74 | 65 6d 20 3d 20 69 3b 0a | max_it|em = i;.|
|00005b20| 58 20 20 7d 0a 58 0a 58 | 20 20 70 72 69 6e 74 66 |X }.X.X| printf|
|00005b30| 28 20 61 6c 77 61 79 73 | 5f 64 69 73 70 6c 61 79 |( always|_display|
|00005b40| 5f 6d 65 6e 75 5f 66 6c | 61 67 20 3f 20 22 51 29 |_menu_fl|ag ? "Q)|
|00005b50| 20 74 6f 20 45 6e 64 20 | 2d 20 63 68 6f 69 63 65 | to End |- choice|
|00005b60| 3f 20 22 20 3a 0a 58 09 | 20 22 51 29 20 74 6f 20 |? " :.X.| "Q) to |
|00005b70| 45 6e 64 2c 20 3f 29 20 | 66 6f 72 20 4d 65 6e 75 |End, ?) |for Menu|
|00005b80| 20 2d 20 63 68 6f 69 63 | 65 3f 20 22 29 3b 0a 58 | - choic|e? ");.X|
|00005b90| 20 20 66 66 6c 75 73 68 | 28 73 74 64 6f 75 74 29 | fflush|(stdout)|
|00005ba0| 3b 0a 58 0a 58 20 20 64 | 69 73 70 6c 61 79 5f 6d |;.X.X d|isplay_m|
|00005bb0| 65 6e 75 5f 66 6c 61 67 | 20 3d 20 61 6c 77 61 79 |enu_flag| = alway|
|00005bc0| 73 5f 64 69 73 70 6c 61 | 79 5f 6d 65 6e 75 5f 66 |s_displa|y_menu_f|
|00005bd0| 6c 61 67 3b 0a 58 7d 0a | 58 0a 58 23 69 6e 63 6c |lag;.X}.|X.X#incl|
|00005be0| 75 64 65 20 22 6c 65 78 | 2e 79 79 2e 63 22 0a 58 |ude "lex|.yy.c".X|
|00005bf0| 0a 58 0a 58 66 61 74 61 | 6c 28 73 29 0a 58 63 68 |.X.Xfata|l(s).Xch|
|00005c00| 61 72 20 2a 73 3b 0a 58 | 7b 0a 58 20 20 65 78 74 |ar *s;.X|{.X ext|
|00005c10| 65 72 6e 20 69 6e 74 20 | 65 72 72 6e 6f 3b 0a 58 |ern int |errno;.X|
|00005c20| 20 20 63 68 61 72 20 6d | 73 67 5f 62 75 66 5b 38 | char m|sg_buf[8|
|00005c30| 30 5d 3b 0a 58 0a 58 20 | 20 66 70 72 69 6e 74 66 |0];.X.X | fprintf|
|00005c40| 28 73 74 64 65 72 72 2c | 20 75 73 65 5f 6d 73 67 |(stderr,| use_msg|
|00005c50| 2c 20 70 72 6f 67 6e 61 | 6d 65 29 3b 0a 58 20 20 |, progna|me);.X |
|00005c60| 69 66 20 28 73 29 0a 58 | 20 20 20 20 66 70 72 69 |if (s).X| fpri|
|00005c70| 6e 74 66 28 73 74 64 65 | 72 72 2c 20 22 25 73 5c |ntf(stde|rr, "%s\|
|00005c80| 6e 22 2c 20 73 29 3b 0a | 58 0a 58 20 20 69 66 20 |n", s);.|X.X if |
|00005c90| 28 65 72 72 6e 6f 29 20 | 7b 0a 58 20 20 20 20 73 |(errno) |{.X s|
|00005ca0| 70 72 69 6e 74 66 28 6d | 73 67 5f 62 75 66 2c 20 |printf(m|sg_buf, |
|00005cb0| 22 66 61 74 61 6c 20 65 | 72 72 6f 72 20 27 25 73 |"fatal e|rror '%s|
|00005cc0| 27 3a 20 6c 69 6e 65 20 | 25 64 22 2c 20 6d 65 6e |': line |%d", men|
|00005cd0| 75 5f 66 6e 61 6d 65 2c | 20 6c 69 6e 65 5f 6e 75 |u_fname,| line_nu|
|00005ce0| 6d 62 65 72 29 3b 0a 58 | 20 20 20 20 70 65 72 72 |mber);.X| perr|
|00005cf0| 6f 72 28 6d 73 67 5f 62 | 75 66 29 3b 0a 58 20 20 |or(msg_b|uf);.X |
|00005d00| 7d 0a 58 20 20 65 78 69 | 74 28 31 29 3b 0a 58 7d |}.X exi|t(1);.X}|
|00005d10| 0a 58 0a 58 76 6f 69 64 | 20 74 72 61 70 6f 69 64 |.X.Xvoid| trapoid|
|00005d20| 28 73 69 67 29 0a 58 69 | 6e 74 20 73 69 67 3b 0a |(sig).Xi|nt sig;.|
|00005d30| 58 7b 0a 58 20 20 69 66 | 20 28 74 6d 70 5f 66 6e |X{.X if| (tmp_fn|
|00005d40| 61 6d 65 29 0a 58 20 20 | 20 20 75 6e 6c 69 6e 6b |ame).X | unlink|
|00005d50| 28 74 6d 70 5f 66 6e 61 | 6d 65 29 3b 0a 58 0a 58 |(tmp_fna|me);.X.X|
|00005d60| 20 20 65 78 69 74 28 73 | 69 67 29 3b 0a 58 7d 0a | exit(s|ig);.X}.|
|00005d70| 58 0a 58 64 6f 5f 6c 6f | 6e 67 6a 6d 70 28 73 69 |X.Xdo_lo|ngjmp(si|
|00005d80| 67 29 0a 58 69 6e 74 20 | 73 69 67 3b 0a 58 7b 0a |g).Xint |sig;.X{.|
|00005d90| 58 20 20 6c 6f 6e 67 6a | 6d 70 28 65 6e 76 2c 20 |X longj|mp(env, |
|00005da0| 30 29 3b 0a 58 7d 0a 58 | 0a 58 77 61 69 74 5f 66 |0);.X}.X|.Xwait_f|
|00005db0| 6f 72 5f 63 68 69 6c 64 | 28 70 69 64 29 0a 58 69 |or_child|(pid).Xi|
|00005dc0| 6e 74 20 70 69 64 3b 0a | 58 7b 0a 58 20 20 69 6e |nt pid;.|X{.X in|
|00005dd0| 74 20 77 61 69 74 5f 72 | 65 74 3b 0a 58 20 20 69 |t wait_r|et;.X i|
|00005de0| 6e 74 20 73 74 61 74 75 | 73 3b 0a 58 20 20 65 78 |nt statu|s;.X ex|
|00005df0| 74 65 72 6e 20 69 6e 74 | 20 65 72 72 6e 6f 3b 0a |tern int| errno;.|
|00005e00| 58 0a 58 20 20 77 68 69 | 6c 65 20 28 28 77 61 69 |X.X whi|le ((wai|
|00005e10| 74 5f 72 65 74 20 3d 20 | 77 61 69 74 28 26 73 74 |t_ret = |wait(&st|
|00005e20| 61 74 75 73 29 29 20 21 | 3d 20 70 69 64 29 20 7b |atus)) !|= pid) {|
|00005e30| 0a 58 20 20 20 20 2f 2a | 20 74 65 73 74 20 74 6f |.X /*| test to|
|00005e40| 20 73 65 65 20 69 66 20 | 63 68 69 6c 64 20 69 73 | see if |child is|
|00005e50| 20 73 74 69 6c 6c 20 74 | 68 65 72 65 20 2d 20 69 | still t|here - i|
|00005e60| 66 20 6e 6f 74 2c 20 74 | 68 65 6e 20 72 65 74 75 |f not, t|hen retu|
|00005e70| 72 6e 20 2a 2f 0a 58 20 | 20 20 20 69 66 20 28 6b |rn */.X | if (k|
|00005e80| 69 6c 6c 28 70 69 64 2c | 20 30 29 20 3c 20 30 29 |ill(pid,| 0) < 0)|
|00005e90| 0a 58 20 20 20 20 20 20 | 72 65 74 75 72 6e 3b 0a |.X |return;.|
|00005ea0| 58 20 20 7d 0a 58 7d 0a | 58 0a 58 73 65 74 5f 73 |X }.X}.|X.Xset_s|
|00005eb0| 69 67 6e 61 6c 73 28 66 | 6c 61 67 29 0a 58 69 6e |ignals(f|lag).Xin|
|00005ec0| 74 20 66 6c 61 67 3b 0a | 58 7b 0a 58 20 20 73 77 |t flag;.|X{.X sw|
|00005ed0| 69 74 63 68 20 28 66 6c | 61 67 29 20 7b 0a 58 20 |itch (fl|ag) {.X |
|00005ee0| 20 63 61 73 65 20 53 49 | 47 53 5f 46 4f 52 5f 4a | case SI|GS_FOR_J|
|00005ef0| 4d 50 3a 0a 58 20 20 20 | 20 73 69 67 6e 61 6c 28 |MP:.X | signal(|
|00005f00| 53 49 47 48 55 50 2c 20 | 74 72 61 70 6f 69 64 29 |SIGHUP, |trapoid)|
|00005f10| 3b 0a 58 20 20 20 20 73 | 69 67 6e 61 6c 28 53 49 |;.X s|ignal(SI|
|00005f20| 47 49 4e 54 2c 20 64 6f | 5f 6c 6f 6e 67 6a 6d 70 |GINT, do|_longjmp|
|00005f30| 29 3b 0a 58 20 20 20 20 | 73 69 67 6e 61 6c 28 53 |);.X |signal(S|
|00005f40| 49 47 51 55 49 54 2c 20 | 64 6f 5f 6c 6f 6e 67 6a |IGQUIT, |do_longj|
|00005f50| 6d 70 29 3b 0a 58 20 20 | 20 20 73 69 67 6e 61 6c |mp);.X | signal|
|00005f60| 28 53 49 47 54 45 52 4d | 2c 20 74 72 61 70 6f 69 |(SIGTERM|, trapoi|
|00005f70| 64 29 3b 0a 58 20 20 20 | 20 62 72 65 61 6b 3b 0a |d);.X | break;.|
|00005f80| 58 20 20 63 61 73 65 20 | 53 49 47 53 5f 46 4f 52 |X case |SIGS_FOR|
|00005f90| 5f 43 48 49 4c 44 3a 0a | 58 20 20 20 20 73 69 67 |_CHILD:.|X sig|
|00005fa0| 6e 61 6c 28 53 49 47 48 | 55 50 2c 20 74 72 61 70 |nal(SIGH|UP, trap|
|00005fb0| 6f 69 64 29 3b 0a 58 20 | 20 20 20 73 69 67 6e 61 |oid);.X | signa|
|00005fc0| 6c 28 53 49 47 49 4e 54 | 2c 20 53 49 47 5f 49 47 |l(SIGINT|, SIG_IG|
|00005fd0| 4e 29 3b 0a 58 20 20 20 | 20 73 69 67 6e 61 6c 28 |N);.X | signal(|
|00005fe0| 53 49 47 51 55 49 54 2c | 20 53 49 47 5f 49 47 4e |SIGQUIT,| SIG_IGN|
|00005ff0| 29 3b 0a 58 20 20 20 20 | 73 69 67 6e 61 6c 28 53 |);.X |signal(S|
|00006000| 49 47 54 45 52 4d 2c 20 | 74 72 61 70 6f 69 64 29 |IGTERM, |trapoid)|
|00006010| 3b 0a 58 20 20 20 20 62 | 72 65 61 6b 3b 0a 58 20 |;.X b|reak;.X |
|00006020| 20 7d 0a 58 7d 0a 58 0a | 58 72 65 73 65 74 5f 73 | }.X}.X.|Xreset_s|
|00006030| 69 67 6e 61 6c 73 28 29 | 0a 58 7b 0a 58 20 20 73 |ignals()|.X{.X s|
|00006040| 69 67 6e 61 6c 28 53 49 | 47 48 55 50 2c 20 53 49 |ignal(SI|GHUP, SI|
|00006050| 47 5f 44 46 4c 29 3b 0a | 58 20 20 73 69 67 6e 61 |G_DFL);.|X signa|
|00006060| 6c 28 53 49 47 49 4e 54 | 2c 20 53 49 47 5f 44 46 |l(SIGINT|, SIG_DF|
|00006070| 4c 29 3b 0a 58 20 20 73 | 69 67 6e 61 6c 28 53 49 |L);.X s|ignal(SI|
|00006080| 47 51 55 49 54 2c 20 53 | 49 47 5f 44 46 4c 29 3b |GQUIT, S|IG_DFL);|
|00006090| 0a 58 20 20 73 69 67 6e | 61 6c 28 53 49 47 54 45 |.X sign|al(SIGTE|
|000060a0| 52 4d 2c 20 53 49 47 5f | 44 46 4c 29 3b 0a 58 20 |RM, SIG_|DFL);.X |
|000060b0| 20 73 69 67 6e 61 6c 28 | 53 49 47 43 4c 44 2c 20 | signal(|SIGCLD, |
|000060c0| 53 49 47 5f 44 46 4c 29 | 3b 0a 58 7d 0a 45 4e 44 |SIG_DFL)|;.X}.END|
|000060d0| 5f 4f 46 5f 46 49 4c 45 | 0a 69 66 20 74 65 73 74 |_OF_FILE|.if test|
|000060e0| 20 31 31 38 38 33 20 2d | 6e 65 20 60 77 63 20 2d | 11883 -|ne `wc -|
|000060f0| 63 20 3c 27 64 75 6d 62 | 5f 6d 65 6e 75 2e 79 27 |c <'dumb|_menu.y'|
|00006100| 60 3b 20 74 68 65 6e 0a | 20 20 20 20 65 63 68 6f |`; then.| echo|
|00006110| 20 73 68 61 72 3a 20 5c | 22 27 64 75 6d 62 5f 6d | shar: \|"'dumb_m|
|00006120| 65 6e 75 2e 79 27 5c 22 | 20 75 6e 70 61 63 6b 65 |enu.y'\"| unpacke|
|00006130| 64 20 77 69 74 68 20 77 | 72 6f 6e 67 20 73 69 7a |d with w|rong siz|
|00006140| 65 21 0a 66 69 0a 23 20 | 65 6e 64 20 6f 66 20 27 |e!.fi.# |end of '|
|00006150| 64 75 6d 62 5f 6d 65 6e | 75 2e 79 27 0a 66 69 0a |dumb_men|u.y'.fi.|
|00006160| 69 66 20 74 65 73 74 20 | 2d 66 20 27 6d 65 6e 75 |if test |-f 'menu|
|00006170| 2e 64 65 66 27 20 2d 61 | 20 22 24 7b 31 7d 22 20 |.def' -a| "${1}" |
|00006180| 21 3d 20 22 2d 63 22 20 | 3b 20 74 68 65 6e 20 0a |!= "-c" |; then .|
|00006190| 20 20 65 63 68 6f 20 73 | 68 61 72 3a 20 57 69 6c | echo s|har: Wil|
|000061a0| 6c 20 6e 6f 74 20 63 6c | 6f 62 62 65 72 20 65 78 |l not cl|obber ex|
|000061b0| 69 73 74 69 6e 67 20 66 | 69 6c 65 20 5c 22 27 6d |isting f|ile \"'m|
|000061c0| 65 6e 75 2e 64 65 66 27 | 5c 22 0a 65 6c 73 65 0a |enu.def'|\".else.|
|000061d0| 65 63 68 6f 20 73 68 61 | 72 3a 20 45 78 74 72 61 |echo sha|r: Extra|
|000061e0| 63 74 69 6e 67 20 5c 22 | 27 6d 65 6e 75 2e 64 65 |cting \"|'menu.de|
|000061f0| 66 27 5c 22 20 5c 28 35 | 37 36 20 63 68 61 72 61 |f'\" \(5|76 chara|
|00006200| 63 74 65 72 73 5c 29 0a | 73 65 64 20 22 73 2f 5e |cters\).|sed "s/^|
|00006210| 58 2f 2f 22 20 3e 27 6d | 65 6e 75 2e 64 65 66 27 |X//" >'m|enu.def'|
|00006220| 20 3c 3c 27 45 4e 44 5f | 4f 46 5f 46 49 4c 45 27 | <<'END_|OF_FILE'|
|00006230| 0a 58 74 69 74 6c 65 20 | 7b 20 54 65 73 74 20 4d |.Xtitle |{ Test M|
|00006240| 65 6e 75 20 7d 0a 58 0a | 58 63 6c 65 61 72 20 62 |enu }.X.|Xclear b|
|00006250| 6f 6c 64 20 61 6c 77 61 | 79 73 2d 73 68 6f 77 0a |old alwa|ys-show.|
|00006260| 58 0a 58 69 74 65 6d 20 | 7b 20 46 69 72 73 74 20 |X.Xitem |{ First |
|00006270| 49 74 65 6d 20 7d 0a 58 | 7b 20 65 63 68 6f 20 24 |Item }.X|{ echo $|
|00006280| 50 41 52 4d 31 20 7d 0a | 58 70 61 72 6d 20 22 50 |PARM1 }.|Xparm "P|
|00006290| 41 52 4d 31 22 20 7b 20 | 49 6e 70 75 74 20 50 61 |ARM1" { |Input Pa|
|000062a0| 72 6d 20 31 20 7d 0a 58 | 3b 0a 58 0a 58 69 74 65 |rm 1 }.X|;.X.Xite|
|000062b0| 6d 20 7b 20 53 65 63 6f | 6e 64 20 49 74 65 6d 20 |m { Seco|nd Item |
|000062c0| 7d 0a 58 7b 20 65 63 68 | 6f 20 22 54 68 69 73 20 |}.X{ ech|o "This |
|000062d0| 69 73 20 24 50 41 52 4d | 20 61 6e 64 20 24 46 4f |is $PARM| and $FO|
|000062e0| 4f 22 20 7d 0a 58 70 61 | 72 6d 20 22 50 41 52 4d |O" }.Xpa|rm "PARM|
|000062f0| 22 20 7b 20 69 6e 70 75 | 74 20 76 61 6c 75 65 20 |" { inpu|t value |
|00006300| 66 6f 72 20 50 41 52 4d | 20 7d 0a 58 70 61 72 6d |for PARM| }.Xparm|
|00006310| 20 22 46 4f 4f 22 20 7b | 69 6e 70 75 74 20 76 61 | "FOO" {|input va|
|00006320| 6c 75 65 20 66 6f 72 20 | 46 4f 4f 20 7d 0a 58 3b |lue for |FOO }.X;|
|00006330| 0a 58 0a 58 69 74 65 6d | 20 7b 20 53 75 62 6d 65 |.X.Xitem| { Subme|
|00006340| 6e 75 20 7d 0a 58 7b 20 | 61 77 6b 20 2d 46 3a 20 |nu }.X{ |awk -F: |
|00006350| 27 0a 58 42 45 47 49 4e | 20 7b 0a 58 20 20 70 72 |'.XBEGIN| {.X pr|
|00006360| 69 6e 74 20 22 74 69 74 | 6c 65 20 7b 20 41 20 64 |int "tit|le { A d|
|00006370| 79 6e 61 6d 69 63 61 6c | 6c 79 20 63 6f 6e 73 74 |ynamical|ly const|
|00006380| 72 75 63 74 65 64 20 73 | 75 62 6d 65 6e 75 20 5c |ructed s|ubmenu \|
|00006390| 7d 22 0a 58 20 20 70 72 | 69 6e 74 20 22 63 6c 65 |}".X pr|int "cle|
|000063a0| 61 72 20 62 6f 6c 64 22 | 0a 58 5c 7d 0a 58 7b 0a |ar bold"|.X\}.X{.|
|000063b0| 58 20 20 70 72 69 6e 74 | 20 22 69 74 65 6d 20 7b |X print| "item {|
|000063c0| 20 42 72 6f 77 73 65 20 | 22 20 24 32 20 22 20 5c | Browse |" $2 " \|
|000063d0| 7d 20 7b 20 6c 65 73 73 | 20 2d 63 4d 20 22 20 24 |} { less| -cM " $|
|000063e0| 31 20 22 20 5c 7d 20 3b | 22 0a 58 5c 7d 0a 58 27 |1 " \} ;|".X\}.X'|
|000063f0| 20 64 69 72 65 63 74 6f | 72 79 20 7c 20 64 75 6d | directo|ry | dum|
+--------+-------------------------+-------------------------+--------+--------+
Only 25.0 KB of data is shown above.