home *** CD-ROM | disk | FTP | other *** search
open in:
MacOS 8.1
|
Win98
|
DOS
browse contents |
view JSON data
|
view as text
This file was processed as: SHell self-extracting ARchive
(archive/shar).
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 46 72 |.sources|.misc.Fr|
|00000020| 6f 6d 3a 20 62 72 61 64 | 40 68 63 78 31 2e 73 73 |om: brad|@hcx1.ss|
|00000030| 64 2e 63 73 64 2e 68 61 | 72 72 69 73 2e 63 6f 6d |d.csd.ha|rris.com|
|00000040| 20 28 42 72 61 64 20 41 | 70 70 6c 65 74 6f 6e 29 | (Brad A|ppleton)|
|00000050| 0a 53 75 62 6a 65 63 74 | 3a 20 20 76 32 39 69 31 |.Subject|: v29i1|
|00000060| 32 31 3a 20 20 70 61 72 | 73 65 61 72 67 73 20 2d |21: par|seargs -|
|00000070| 20 66 75 6e 63 74 69 6f | 6e 73 20 74 6f 20 70 61 | functio|ns to pa|
|00000080| 72 73 65 20 63 6f 6d 6d | 61 6e 64 20 6c 69 6e 65 |rse comm|and line|
|00000090| 20 61 72 67 75 6d 65 6e | 74 73 2c 20 50 61 72 74 | argumen|ts, Part|
|000000a0| 30 36 2f 31 30 0a 4d 65 | 73 73 61 67 65 2d 49 44 |06/10.Me|ssage-ID|
|000000b0| 3a 20 3c 31 39 39 32 4d | 61 79 31 37 2e 31 38 32 |: <1992M|ay17.182|
|000000c0| 34 32 39 2e 32 38 38 36 | 37 40 73 70 61 72 6b 79 |429.2886|7@sparky|
|000000d0| 2e 69 6d 64 2e 73 74 65 | 72 6c 69 6e 67 2e 63 6f |.imd.ste|rling.co|
|000000e0| 6d 3e 0a 58 2d 4d 64 34 | 2d 53 69 67 6e 61 74 75 |m>.X-Md4|-Signatu|
|000000f0| 72 65 3a 20 33 64 31 32 | 39 31 32 62 66 61 31 31 |re: 3d12|912bfa11|
|00000100| 36 34 64 35 33 31 64 38 | 61 64 38 33 36 65 36 37 |64d531d8|ad836e67|
|00000110| 32 35 63 65 0a 44 61 74 | 65 3a 20 53 75 6e 2c 20 |25ce.Dat|e: Sun, |
|00000120| 31 37 20 4d 61 79 20 31 | 39 39 32 20 31 38 3a 32 |17 May 1|992 18:2|
|00000130| 34 3a 32 39 20 47 4d 54 | 0a 41 70 70 72 6f 76 65 |4:29 GMT|.Approve|
|00000140| 64 3a 20 6b 65 6e 74 40 | 73 70 61 72 6b 79 2e 69 |d: kent@|sparky.i|
|00000150| 6d 64 2e 73 74 65 72 6c | 69 6e 67 2e 63 6f 6d 0a |md.sterl|ing.com.|
|00000160| 0a 53 75 62 6d 69 74 74 | 65 64 2d 62 79 3a 20 62 |.Submitt|ed-by: b|
|00000170| 72 61 64 40 68 63 78 31 | 2e 73 73 64 2e 63 73 64 |rad@hcx1|.ssd.csd|
|00000180| 2e 68 61 72 72 69 73 2e | 63 6f 6d 20 28 42 72 61 |.harris.|com (Bra|
|00000190| 64 20 41 70 70 6c 65 74 | 6f 6e 29 0a 50 6f 73 74 |d Applet|on).Post|
|000001a0| 69 6e 67 2d 6e 75 6d 62 | 65 72 3a 20 56 6f 6c 75 |ing-numb|er: Volu|
|000001b0| 6d 65 20 32 39 2c 20 49 | 73 73 75 65 20 31 32 31 |me 29, I|ssue 121|
|000001c0| 0a 41 72 63 68 69 76 65 | 2d 6e 61 6d 65 3a 20 70 |.Archive|-name: p|
|000001d0| 61 72 73 65 61 72 67 73 | 2f 70 61 72 74 30 36 0a |arseargs|/part06.|
|000001e0| 45 6e 76 69 72 6f 6e 6d | 65 6e 74 3a 20 55 4e 49 |Environm|ent: UNI|
|000001f0| 58 2c 20 56 4d 53 2c 20 | 4d 53 2d 44 4f 53 2c 20 |X, VMS, |MS-DOS, |
|00000200| 4f 53 2f 32 2c 20 41 6d | 69 67 61 0a 53 75 70 65 |OS/2, Am|iga.Supe|
|00000210| 72 73 65 64 65 73 3a 20 | 70 61 72 73 65 61 72 67 |rsedes: |parsearg|
|00000220| 73 3a 20 56 6f 6c 75 6d | 65 20 31 37 2c 20 49 73 |s: Volum|e 17, Is|
|00000230| 73 75 65 20 34 36 2d 35 | 37 0a 0a 23 21 20 2f 62 |sue 46-5|7..#! /b|
|00000240| 69 6e 2f 73 68 0a 23 20 | 54 68 69 73 20 69 73 20 |in/sh.# |This is |
|00000250| 61 20 73 68 65 6c 6c 20 | 61 72 63 68 69 76 65 2e |a shell |archive.|
|00000260| 20 20 52 65 6d 6f 76 65 | 20 61 6e 79 74 68 69 6e | Remove| anythin|
|00000270| 67 20 62 65 66 6f 72 65 | 20 74 68 69 73 20 6c 69 |g before| this li|
|00000280| 6e 65 2c 20 74 68 65 6e | 20 75 6e 70 61 63 6b 0a |ne, then| unpack.|
|00000290| 23 20 69 74 20 62 79 20 | 73 61 76 69 6e 67 20 69 |# it by |saving i|
|000002a0| 74 20 69 6e 74 6f 20 61 | 20 66 69 6c 65 20 61 6e |t into a| file an|
|000002b0| 64 20 74 79 70 69 6e 67 | 20 22 73 68 20 66 69 6c |d typing| "sh fil|
|000002c0| 65 22 2e 20 20 54 6f 20 | 6f 76 65 72 77 72 69 74 |e". To |overwrit|
|000002d0| 65 20 65 78 69 73 74 69 | 6e 67 0a 23 20 66 69 6c |e existi|ng.# fil|
|000002e0| 65 73 2c 20 74 79 70 65 | 20 22 73 68 20 66 69 6c |es, type| "sh fil|
|000002f0| 65 20 2d 63 22 2e 20 20 | 59 6f 75 20 63 61 6e 20 |e -c". |You can |
|00000300| 61 6c 73 6f 20 66 65 65 | 64 20 74 68 69 73 20 61 |also fee|d this a|
|00000310| 73 20 73 74 61 6e 64 61 | 72 64 20 69 6e 70 75 74 |s standa|rd input|
|00000320| 20 76 69 61 0a 23 20 75 | 6e 73 68 61 72 2c 20 6f | via.# u|nshar, o|
|00000330| 72 20 62 79 20 74 79 70 | 69 6e 67 20 22 73 68 20 |r by typ|ing "sh |
|00000340| 3c 66 69 6c 65 22 2c 20 | 65 2e 67 2e 2e 20 20 49 |<file", |e.g.. I|
|00000350| 66 20 74 68 69 73 20 61 | 72 63 68 69 76 65 20 69 |f this a|rchive i|
|00000360| 73 20 63 6f 6d 70 6c 65 | 74 65 2c 20 79 6f 75 0a |s comple|te, you.|
|00000370| 23 20 77 69 6c 6c 20 73 | 65 65 20 74 68 65 20 66 |# will s|ee the f|
|00000380| 6f 6c 6c 6f 77 69 6e 67 | 20 6d 65 73 73 61 67 65 |ollowing| message|
|00000390| 20 61 74 20 74 68 65 20 | 65 6e 64 3a 0a 23 09 09 | at the |end:.#..|
|000003a0| 22 45 6e 64 20 6f 66 20 | 61 72 63 68 69 76 65 20 |"End of |archive |
|000003b0| 36 20 28 6f 66 20 31 30 | 29 2e 22 0a 23 20 43 6f |6 (of 10|).".# Co|
|000003c0| 6e 74 65 6e 74 73 3a 20 | 20 69 62 6d 5f 61 72 67 |ntents: | ibm_arg|
|000003d0| 73 2e 63 20 76 6d 73 5f | 61 72 67 73 2e 63 0a 23 |s.c vms_|args.c.#|
|000003e0| 20 57 72 61 70 70 65 64 | 20 62 79 20 62 72 61 64 | Wrapped| by brad|
|000003f0| 40 68 63 78 31 20 6f 6e | 20 54 68 75 20 4d 61 79 |@hcx1 on| Thu May|
|00000400| 20 20 37 20 31 32 3a 31 | 32 3a 32 35 20 31 39 39 | 7 12:1|2:25 199|
|00000410| 32 0a 50 41 54 48 3d 2f | 62 69 6e 3a 2f 75 73 72 |2.PATH=/|bin:/usr|
|00000420| 2f 62 69 6e 3a 2f 75 73 | 72 2f 75 63 62 20 3b 20 |/bin:/us|r/ucb ; |
|00000430| 65 78 70 6f 72 74 20 50 | 41 54 48 0a 69 66 20 74 |export P|ATH.if t|
|00000440| 65 73 74 20 2d 66 20 27 | 69 62 6d 5f 61 72 67 73 |est -f '|ibm_args|
|00000450| 2e 63 27 20 2d 61 20 22 | 24 7b 31 7d 22 20 21 3d |.c' -a "|${1}" !=|
|00000460| 20 22 2d 63 22 20 3b 20 | 74 68 65 6e 20 0a 20 20 | "-c" ; |then . |
|00000470| 65 63 68 6f 20 73 68 61 | 72 3a 20 57 69 6c 6c 20 |echo sha|r: Will |
|00000480| 6e 6f 74 20 63 6c 6f 62 | 62 65 72 20 65 78 69 73 |not clob|ber exis|
|00000490| 74 69 6e 67 20 66 69 6c | 65 20 5c 22 27 69 62 6d |ting fil|e \"'ibm|
|000004a0| 5f 61 72 67 73 2e 63 27 | 5c 22 0a 65 6c 73 65 0a |_args.c'|\".else.|
|000004b0| 65 63 68 6f 20 73 68 61 | 72 3a 20 45 78 74 72 61 |echo sha|r: Extra|
|000004c0| 63 74 69 6e 67 20 5c 22 | 27 69 62 6d 5f 61 72 67 |cting \"|'ibm_arg|
|000004d0| 73 2e 63 27 5c 22 20 5c | 28 32 35 36 31 38 20 63 |s.c'\" \|(25618 c|
|000004e0| 68 61 72 61 63 74 65 72 | 73 5c 29 0a 73 65 64 20 |haracter|s\).sed |
|000004f0| 22 73 2f 5e 58 2f 2f 22 | 20 3e 27 69 62 6d 5f 61 |"s/^X//"| >'ibm_a|
|00000500| 72 67 73 2e 63 27 20 3c | 3c 27 45 4e 44 5f 4f 46 |rgs.c' <|<'END_OF|
|00000510| 5f 46 49 4c 45 27 0a 58 | 2f 2a 2a 2a 2a 2a 2a 2a |_FILE'.X|/*******|
|00000520| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00000530| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00000540| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00000550| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00000560| 2a 2a 0a 58 2a 2a 20 5e | 46 49 4c 45 3a 20 69 62 |**.X** ^|FILE: ib|
|00000570| 6d 5f 61 72 67 73 2e 63 | 20 2d 20 70 61 72 73 65 |m_args.c| - parse|
|00000580| 20 4d 53 2d 44 4f 53 20 | 61 6e 64 20 4f 53 2f 32 | MS-DOS |and OS/2|
|00000590| 20 61 72 67 75 6d 65 6e | 74 20 76 65 63 74 6f 72 | argumen|t vector|
|000005a0| 73 0a 58 2a 2a 0a 58 2a | 2a 20 5e 44 45 53 43 52 |s.X**.X*|* ^DESCR|
|000005b0| 49 50 54 49 4f 4e 3a 0a | 58 2a 2a 20 20 20 20 54 |IPTION:.|X** T|
|000005c0| 68 69 73 20 66 69 6c 65 | 20 63 6f 6e 74 61 69 6e |his file| contain|
|000005d0| 73 20 74 68 65 20 72 6f | 75 74 69 6e 65 73 20 75 |s the ro|utines u|
|000005e0| 73 65 64 20 74 6f 20 70 | 61 72 73 65 20 4d 53 2d |sed to p|arse MS-|
|000005f0| 44 4f 53 20 61 6e 64 20 | 4f 53 2f 32 0a 58 2a 2a |DOS and |OS/2.X**|
|00000600| 20 20 20 20 61 72 67 75 | 6d 65 6e 74 20 76 65 63 | argu|ment vec|
|00000610| 74 6f 72 73 20 61 6e 64 | 20 74 6f 20 70 72 69 6e |tors and| to prin|
|00000620| 74 20 4d 53 2d 44 4f 53 | 20 61 6e 64 20 4f 53 2f |t MS-DOS| and OS/|
|00000630| 32 20 75 73 61 67 65 20 | 6d 65 73 73 61 67 65 73 |2 usage |messages|
|00000640| 2e 0a 58 2a 2a 0a 58 2a | 2a 20 5e 48 49 53 54 4f |..X**.X*|* ^HISTO|
|00000650| 52 59 3a 0a 58 2a 2a 20 | 20 20 20 32 37 2f 30 38 |RY:.X** | 27/08|
|00000660| 2f 39 31 20 09 45 61 72 | 6c 20 43 68 65 77 20 09 |/91 .Ear|l Chew .|
|00000670| 3c 63 65 63 68 65 77 40 | 62 72 75 63 65 2e 63 73 |<cechew@|bruce.cs|
|00000680| 2e 6d 6f 6e 61 73 68 2e | 65 64 75 2e 61 75 3e 0a |.monash.|edu.au>.|
|00000690| 58 2a 2a 20 20 20 20 2d | 20 55 73 65 20 50 72 6f |X** -| Use Pro|
|000006a0| 67 4e 61 6d 65 4c 65 6e | 20 77 68 65 6e 20 61 63 |gNameLen| when ac|
|000006b0| 63 65 73 73 69 6e 67 20 | 50 72 6f 67 4e 61 6d 65 |cessing |ProgName|
|000006c0| 0a 58 2a 2a 20 20 20 20 | 2d 20 55 73 65 20 67 65 |.X** |- Use ge|
|000006d0| 74 5f 61 72 67 64 65 73 | 63 28 29 20 74 6f 20 61 |t_argdes|c() to a|
|000006e0| 63 63 65 73 73 20 64 65 | 73 63 72 69 70 74 69 6f |ccess de|scriptio|
|000006f0| 6e 0a 58 2a 2a 0a 58 2a | 2a 20 20 20 20 30 31 2f |n.X**.X*|* 01/|
|00000700| 30 32 2f 39 31 20 09 42 | 72 61 64 20 41 70 70 6c |02/91 .B|rad Appl|
|00000710| 65 74 6f 6e 20 09 3c 62 | 72 61 64 40 73 73 64 2e |eton .<b|rad@ssd.|
|00000720| 63 73 64 2e 68 61 72 72 | 69 73 2e 63 6f 6d 3e 09 |csd.harr|is.com>.|
|00000730| 43 72 65 61 74 65 64 0a | 58 2a 2a 2a 5e 5e 2a 2a |Created.|X***^^**|
|00000740| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00000750| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00000760| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00000770| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00000780| 2a 2a 2a 2a 2f 0a 58 0a | 58 23 69 6e 63 6c 75 64 |****/.X.|X#includ|
|00000790| 65 20 3c 63 74 79 70 65 | 2e 68 3e 0a 58 23 69 6e |e <ctype|.h>.X#in|
|000007a0| 63 6c 75 64 65 20 3c 75 | 73 65 66 75 6c 2e 68 3e |clude <u|seful.h>|
|000007b0| 0a 58 23 69 6e 63 6c 75 | 64 65 20 22 73 74 72 66 |.X#inclu|de "strf|
|000007c0| 75 6e 63 73 2e 68 22 0a | 58 23 69 6e 63 6c 75 64 |uncs.h".|X#includ|
|000007d0| 65 20 22 70 67 6f 70 65 | 6e 2e 68 22 0a 58 23 69 |e "pgope|n.h".X#i|
|000007e0| 6e 63 6c 75 64 65 20 22 | 65 78 69 74 5f 63 6f 64 |nclude "|exit_cod|
|000007f0| 65 73 2e 68 22 0a 58 0a | 58 23 64 65 66 69 6e 65 |es.h".X.|X#define|
|00000800| 20 50 41 52 53 45 41 52 | 47 53 5f 50 52 49 56 41 | PARSEAR|GS_PRIVA|
|00000810| 54 45 20 20 20 2f 2a 20 | 69 6e 63 6c 75 64 65 20 |TE /* |include |
|00000820| 70 72 69 76 61 74 65 20 | 64 65 66 69 6e 69 74 69 |private |definiti|
|00000830| 6f 6e 73 20 2a 2f 0a 58 | 23 69 6e 63 6c 75 64 65 |ons */.X|#include|
|00000840| 20 22 70 61 72 73 65 61 | 72 67 73 2e 68 22 0a 58 | "parsea|rgs.h".X|
|00000850| 0a 58 45 58 54 45 52 4e | 20 20 56 4f 49 44 20 20 |.XEXTERN| VOID |
|00000860| 73 79 73 65 72 72 20 20 | 20 20 20 20 20 41 52 47 |syserr | ARG|
|00000870| 53 28 28 63 6f 6e 73 74 | 20 63 68 61 72 20 2a 2c |S((const| char *,|
|00000880| 20 2e 2e 2e 29 29 3b 0a | 58 45 58 54 45 52 4e 20 | ...));.|XEXTERN |
|00000890| 20 56 4f 49 44 20 20 75 | 73 72 65 72 72 20 20 20 | VOID u|srerr |
|000008a0| 20 20 20 20 41 52 47 53 | 28 28 63 6f 6e 73 74 20 | ARGS|((const |
|000008b0| 63 68 61 72 20 2a 2c 20 | 2e 2e 2e 29 29 3b 0a 58 |char *, |...));.X|
|000008c0| 45 58 54 45 52 4e 20 20 | 63 68 61 72 20 2a 67 65 |EXTERN |char *ge|
|000008d0| 74 65 6e 76 20 20 20 20 | 20 20 20 41 52 47 53 28 |tenv | ARGS(|
|000008e0| 28 63 6f 6e 73 74 20 63 | 68 61 72 20 2a 29 29 3b |(const c|har *));|
|000008f0| 0a 58 45 58 54 45 52 4e | 20 20 56 4f 49 44 20 20 |.XEXTERN| VOID |
|00000900| 67 65 74 5f 77 69 6e 73 | 69 7a 65 20 20 41 52 47 |get_wins|ize ARG|
|00000910| 53 28 28 69 6e 74 2c 20 | 69 6e 74 20 2a 2c 20 69 |S((int, |int *, i|
|00000920| 6e 74 20 2a 29 29 3b 0a | 58 0a 58 56 45 52 53 49 |nt *));.|X.XVERSI|
|00000930| 4f 4e 49 44 28 22 24 48 | 65 61 64 65 72 3a 20 70 |ONID("$H|eader: p|
|00000940| 61 72 73 65 61 72 67 73 | 2e 63 2c 76 20 32 2e 31 |arseargs|.c,v 2.1|
|00000950| 20 38 39 2f 31 32 2f 33 | 30 20 32 30 3a 35 39 3a | 89/12/3|0 20:59:|
|00000960| 34 38 20 65 72 69 63 20 | 45 78 70 20 24 22 29 3b |48 eric |Exp $");|
|00000970| 0a 58 0a 58 2f 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |.X.X/***|********|
|00000980| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00000990| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|000009a0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|000009b0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|000009c0| 0a 58 2a 2a 20 5e 47 4c | 4f 42 41 4c 2d 56 41 52 |.X** ^GL|OBAL-VAR|
|000009d0| 49 41 42 4c 45 3a 20 4f | 70 74 50 72 65 66 69 78 |IABLE: O|ptPrefix|
|000009e0| 2c 20 4b 77 64 50 72 65 | 66 69 78 0a 58 2a 2a 0a |, KwdPre|fix.X**.|
|000009f0| 58 2a 2a 20 5e 56 49 53 | 49 42 49 4c 49 54 59 3a |X** ^VIS|IBILITY:|
|00000a00| 0a 58 2a 2a 20 20 20 20 | 73 74 61 74 69 63 2d 67 |.X** |static-g|
|00000a10| 6c 6f 62 61 6c 20 28 76 | 69 73 69 62 6c 65 20 74 |lobal (v|isible t|
|00000a20| 6f 20 61 6c 6c 20 66 75 | 6e 63 74 69 6f 6e 73 20 |o all fu|nctions |
|00000a30| 69 6e 20 74 68 69 73 20 | 66 69 6c 65 29 2e 0a 58 |in this |file)..X|
|00000a40| 2a 2a 0a 58 2a 2a 20 5e | 44 45 53 43 52 49 50 54 |**.X** ^|DESCRIPT|
|00000a50| 49 4f 4e 3a 0a 58 2a 2a | 20 20 20 20 4f 70 74 50 |ION:.X**| OptP|
|00000a60| 72 65 66 69 78 20 63 6f | 6e 74 61 69 6e 73 20 74 |refix co|ntains t|
|00000a70| 68 65 20 73 69 6e 67 6c | 65 20 63 68 61 72 61 63 |he singl|e charac|
|00000a80| 74 65 72 20 70 72 65 66 | 69 78 20 75 73 65 64 20 |ter pref|ix used |
|00000a90| 74 6f 20 70 72 65 63 65 | 64 65 0a 58 2a 2a 20 20 |to prece|de.X** |
|00000aa0| 20 20 61 6e 20 6f 70 74 | 69 6f 6e 20 73 77 69 74 | an opt|ion swit|
|00000ab0| 63 68 20 6f 6e 20 74 68 | 65 20 63 6f 6d 6d 61 6e |ch on th|e comman|
|00000ac0| 64 2d 6c 69 6e 65 2e 0a | 58 2a 2a 0a 58 2a 2a 20 |d-line..|X**.X** |
|00000ad0| 20 20 20 4b 77 64 50 72 | 65 66 69 78 20 63 6f 6e | KwdPr|efix con|
|00000ae0| 74 61 69 6e 73 20 74 68 | 65 20 73 69 6e 67 6c 65 |tains th|e single|
|00000af0| 20 63 68 61 72 61 63 74 | 65 72 20 70 72 65 66 69 | charact|er prefi|
|00000b00| 78 20 75 73 65 64 20 74 | 6f 20 70 72 65 63 65 64 |x used t|o preced|
|00000b10| 65 0a 58 2a 2a 20 20 20 | 20 61 20 6b 65 79 77 6f |e.X** | a keywo|
|00000b20| 72 64 20 73 77 69 74 63 | 68 20 6f 6e 20 74 68 65 |rd switc|h on the|
|00000b30| 20 63 6f 6d 6d 61 6e 64 | 2d 6c 69 6e 65 2e 0a 58 | command|-line..X|
|00000b40| 2a 2a 2a 5e 5e 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |***^^***|********|
|00000b50| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00000b60| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00000b70| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00000b80| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2f 0a 58 73 74 |********|***/.Xst|
|00000b90| 61 74 69 63 20 20 63 68 | 61 72 20 20 4f 70 74 50 |atic ch|ar OptP|
|00000ba0| 72 65 66 69 78 3d 27 2f | 27 3b 0a 58 73 74 61 74 |refix='/|';.Xstat|
|00000bb0| 69 63 20 20 63 68 61 72 | 20 20 4b 77 64 50 72 65 |ic char| KwdPre|
|00000bc0| 66 69 78 3d 27 2f 27 3b | 0a 58 0a 58 23 64 65 66 |fix='/';|.X.X#def|
|00000bd0| 69 6e 65 20 20 69 73 55 | 4e 49 58 49 53 48 20 20 |ine isU|NIXISH |
|00000be0| 28 20 4f 70 74 50 72 65 | 66 69 78 20 3d 3d 20 27 |( OptPre|fix == '|
|00000bf0| 2d 27 20 29 0a 58 0a 58 | 0a 58 2f 2a 2a 2a 2a 2a |-' ).X.X|.X/*****|
|00000c00| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00000c10| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00000c20| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00000c30| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00000c40| 2a 2a 2a 2a 2a 2a 0a 58 | 2a 2a 20 5e 47 4c 4f 42 |******.X|** ^GLOB|
|00000c50| 41 4c 2d 56 41 52 49 41 | 42 4c 45 3a 20 55 73 61 |AL-VARIA|BLE: Usa|
|00000c60| 67 65 5f 52 65 71 75 65 | 73 74 65 64 0a 58 2a 2a |ge_Reque|sted.X**|
|00000c70| 0a 58 2a 2a 20 5e 56 49 | 53 49 42 49 4c 49 54 59 |.X** ^VI|SIBILITY|
|00000c80| 3a 0a 58 2a 2a 20 20 20 | 20 73 74 61 74 69 63 2d |:.X** | static-|
|00000c90| 67 6c 6f 62 61 6c 20 28 | 76 69 73 69 62 6c 65 20 |global (|visible |
|00000ca0| 74 6f 20 61 6c 6c 20 66 | 75 6e 63 74 69 6f 6e 73 |to all f|unctions|
|00000cb0| 20 69 6e 20 74 68 69 73 | 20 66 69 6c 65 29 2e 0a | in this| file)..|
|00000cc0| 58 2a 2a 0a 58 2a 2a 20 | 5e 44 45 53 43 52 49 50 |X**.X** |^DESCRIP|
|00000cd0| 54 49 4f 4e 3a 0a 58 2a | 2a 20 20 20 20 49 6e 64 |TION:.X*|* Ind|
|00000ce0| 69 63 61 74 65 73 20 77 | 68 65 74 68 65 72 20 61 |icates w|hether a|
|00000cf0| 20 75 73 61 67 65 20 6d | 65 73 73 61 67 65 20 77 | usage m|essage w|
|00000d00| 61 73 20 72 65 71 75 65 | 73 74 65 64 20 62 79 20 |as reque|sted by |
|00000d10| 74 68 65 20 75 73 65 72 | 0a 58 2a 2a 20 20 20 20 |the user|.X** |
|00000d20| 28 61 73 20 6f 70 70 6f | 73 65 64 20 74 6f 20 74 |(as oppo|sed to t|
|00000d30| 72 69 67 67 65 72 72 65 | 64 20 62 79 20 61 20 73 |riggerre|d by a s|
|00000d40| 79 6e 74 61 78 20 65 72 | 72 6f 72 29 2e 20 20 49 |yntax er|ror). I|
|00000d50| 66 20 74 68 65 20 6d 65 | 73 73 61 67 65 0a 58 2a |f the me|ssage.X*|
|00000d60| 2a 20 20 20 20 69 73 20 | 72 65 71 75 65 73 74 65 |* is |requeste|
|00000d70| 64 20 62 79 20 74 68 65 | 20 75 73 65 72 20 74 68 |d by the| user th|
|00000d80| 65 6e 20 69 74 20 69 73 | 20 61 6c 77 61 79 73 20 |en it is| always |
|00000d90| 70 72 69 6e 74 65 64 20 | 69 6e 20 76 65 72 62 6f |printed |in verbo|
|00000da0| 73 65 0a 58 2a 2a 20 20 | 20 20 6d 6f 64 65 20 61 |se.X** | mode a|
|00000db0| 6e 64 20 64 6f 65 73 20 | 6e 6f 74 20 72 65 74 75 |nd does |not retu|
|00000dc0| 72 6e 20 61 6e 20 65 72 | 72 6f 72 2d 73 74 61 74 |rn an er|ror-stat|
|00000dd0| 75 73 2d 63 6f 64 65 2e | 0a 58 2a 2a 2a 5e 5e 2a |us-code.|.X***^^*|
|00000de0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00000df0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00000e00| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00000e10| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00000e20| 2a 2a 2a 2a 2a 2f 0a 58 | 73 74 61 74 69 63 20 20 |*****/.X|static |
|00000e30| 42 4f 4f 4c 20 20 55 73 | 61 67 65 5f 52 65 71 75 |BOOL Us|age_Requ|
|00000e40| 65 73 74 65 64 20 3d 20 | 46 41 4c 53 45 3b 0a 58 |ested = |FALSE;.X|
|00000e50| 0a 58 0a 58 20 20 20 2f | 2a 20 6d 61 63 72 6f 73 |.X.X /|* macros|
|00000e60| 20 74 6f 20 64 65 74 65 | 63 74 20 61 6e 20 6f 70 | to dete|ct an op|
|00000e70| 74 69 6f 6e 2f 6b 65 79 | 77 6f 72 64 20 2d 2d 20 |tion/key|word -- |
|00000e80| 77 61 74 63 68 20 6f 75 | 74 20 66 6f 72 20 73 69 |watch ou|t for si|
|00000e90| 64 65 20 65 66 66 65 63 | 74 73 21 21 20 2a 2f 0a |de effec|ts!! */.|
|00000ea0| 58 23 64 65 66 69 6e 65 | 20 69 73 4f 50 54 28 73 |X#define| isOPT(s|
|00000eb0| 29 20 20 5c 0a 58 20 20 | 20 28 20 21 42 54 45 53 |) \.X | ( !BTES|
|00000ec0| 54 28 63 6d 64 5f 66 6c | 61 67 73 28 63 6d 64 29 |T(cmd_fl|ags(cmd)|
|00000ed0| 2c 20 70 61 5f 4b 57 44 | 53 4f 4e 4c 59 29 20 20 |, pa_KWD|SONLY) |
|00000ee0| 26 26 20 5c 0a 58 20 20 | 20 20 20 21 42 54 45 53 |&& \.X | !BTES|
|00000ef0| 54 28 63 6d 64 5f 73 74 | 61 74 65 28 63 6d 64 29 |T(cmd_st|ate(cmd)|
|00000f00| 2c 20 70 73 5f 4e 4f 46 | 4c 41 47 53 29 20 20 26 |, ps_NOF|LAGS) &|
|00000f10| 26 20 5c 0a 58 20 20 20 | 20 20 2a 73 20 3d 3d 20 |& \.X | *s == |
|00000f20| 4f 70 74 50 72 65 66 69 | 78 20 20 26 26 20 20 2a |OptPrefi|x && *|
|00000f30| 28 73 2b 31 29 20 5c 0a | 58 20 20 20 29 0a 58 0a |(s+1) \.|X ).X.|
|00000f40| 58 23 64 65 66 69 6e 65 | 20 69 73 4b 57 44 28 73 |X#define| isKWD(s|
|00000f50| 29 20 20 5c 0a 58 20 20 | 20 28 20 21 42 54 45 53 |) \.X | ( !BTES|
|00000f60| 54 28 63 6d 64 5f 66 6c | 61 67 73 28 63 6d 64 29 |T(cmd_fl|ags(cmd)|
|00000f70| 2c 20 70 61 5f 4f 50 54 | 53 4f 4e 4c 59 29 20 20 |, pa_OPT|SONLY) |
|00000f80| 26 26 20 5c 0a 58 20 20 | 20 20 20 21 42 54 45 53 |&& \.X | !BTES|
|00000f90| 54 28 63 6d 64 5f 73 74 | 61 74 65 28 63 6d 64 29 |T(cmd_st|ate(cmd)|
|00000fa0| 2c 20 70 73 5f 4e 4f 46 | 4c 41 47 53 29 20 20 26 |, ps_NOF|LAGS) &|
|00000fb0| 26 20 5c 0a 58 20 20 20 | 20 20 2a 73 20 3d 3d 20 |& \.X | *s == |
|00000fc0| 4b 77 64 50 72 65 66 69 | 78 20 20 26 26 20 20 2a |KwdPrefi|x && *|
|00000fd0| 28 73 2b 31 29 20 5c 0a | 58 20 20 20 29 0a 58 0a |(s+1) \.|X ).X.|
|00000fe0| 58 0a 58 2f 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |X.X/****|********|
|00000ff0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00001000| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00001010| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00001020| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 0a |********|*******.|
|00001030| 58 2a 2a 20 5e 46 55 4e | 43 54 49 4f 4e 3a 20 67 |X** ^FUN|CTION: g|
|00001040| 65 74 5f 70 72 65 66 69 | 78 65 73 20 2d 20 64 65 |et_prefi|xes - de|
|00001050| 74 65 72 6d 69 6e 65 20 | 73 68 6f 72 74 20 61 6e |termine |short an|
|00001060| 64 20 6c 6f 6e 67 20 6b | 65 79 77 6f 72 64 20 70 |d long k|eyword p|
|00001070| 72 65 66 69 78 65 73 0a | 58 2a 2a 0a 58 2a 2a 20 |refixes.|X**.X** |
|00001080| 5e 53 59 4e 4f 50 53 49 | 53 3a 0a 58 2a 2f 0a 58 |^SYNOPSI|S:.X*/.X|
|00001090| 23 69 66 6e 64 65 66 20 | 5f 5f 41 4e 53 49 5f 43 |#ifndef |__ANSI_C|
|000010a0| 5f 5f 0a 58 20 20 20 73 | 74 61 74 69 63 20 56 4f |__.X s|tatic VO|
|000010b0| 49 44 20 67 65 74 5f 70 | 72 65 66 69 78 65 73 28 |ID get_p|refixes(|
|000010c0| 29 0a 58 23 65 6e 64 69 | 66 0a 58 2f 2a 20 20 0a |).X#endi|f.X/* .|
|000010d0| 58 2a 2a 20 5e 50 41 52 | 41 4d 45 54 45 52 53 3a |X** ^PAR|AMETERS:|
|000010e0| 0a 58 2a 2a 20 20 20 20 | 4e 6f 6e 65 2e 0a 58 2a |.X** |None..X*|
|000010f0| 2a 0a 58 2a 2a 20 5e 44 | 45 53 43 52 49 50 54 49 |*.X** ^D|ESCRIPTI|
|00001100| 4f 4e 3a 0a 58 2a 2a 20 | 20 20 20 47 65 74 5f 70 |ON:.X** | Get_p|
|00001110| 72 65 66 69 78 65 73 20 | 77 69 6c 6c 20 64 65 74 |refixes |will det|
|00001120| 65 72 6d 69 6e 65 20 74 | 68 65 20 70 72 65 66 69 |ermine t|he prefi|
|00001130| 78 65 73 20 74 6f 20 75 | 73 65 64 20 74 6f 20 64 |xes to u|sed to d|
|00001140| 65 6e 6f 74 65 20 6f 70 | 74 69 6f 6e 0a 58 2a 2a |enote op|tion.X**|
|00001150| 20 20 20 20 73 77 69 74 | 63 68 65 73 20 61 6e 64 | swit|ches and|
|00001160| 20 6b 65 79 77 6f 72 64 | 20 73 77 69 74 63 68 65 | keyword| switche|
|00001170| 73 20 6f 6e 20 74 68 65 | 20 63 6f 6d 6d 61 6e 64 |s on the| command|
|00001180| 2d 6c 69 6e 65 2e 20 20 | 54 68 65 20 70 72 65 66 |-line. |The pref|
|00001190| 69 78 65 73 0a 58 2a 2a | 20 20 20 20 61 72 65 20 |ixes.X**| are |
|000011a0| 64 65 74 65 72 6d 69 6e | 65 64 20 62 79 20 74 68 |determin|ed by th|
|000011b0| 65 20 24 53 57 49 54 43 | 48 41 52 20 65 6e 76 69 |e $SWITC|HAR envi|
|000011c0| 72 6f 6e 6d 65 6e 74 20 | 76 61 72 61 69 62 6c 65 |ronment |varaible|
|000011d0| 2e 20 54 68 65 20 66 69 | 72 73 74 0a 58 2a 2a 20 |. The fi|rst.X** |
|000011e0| 20 20 20 63 68 61 72 61 | 63 74 65 72 20 6f 66 20 | chara|cter of |
|000011f0| 74 68 65 20 76 61 72 69 | 61 62 6c 65 20 69 73 20 |the vari|able is |
|00001200| 74 68 65 20 6f 70 74 69 | 6f 6e 2d 73 77 69 74 63 |the opti|on-switc|
|00001210| 68 20 70 72 65 66 69 78 | 20 61 6e 64 20 74 68 65 |h prefix| and the|
|00001220| 20 73 65 63 6f 6e 64 0a | 58 2a 2a 20 20 20 20 63 | second.|X** c|
|00001230| 68 61 72 61 63 74 65 72 | 20 69 73 20 74 68 65 20 |haracter| is the |
|00001240| 6b 65 79 77 6f 72 64 2d | 73 77 69 74 63 68 20 70 |keyword-|switch p|
|00001250| 72 65 66 69 78 2e 0a 58 | 2a 2a 0a 58 2a 2a 20 20 |refix..X|**.X** |
|00001260| 20 20 49 66 20 54 68 65 | 20 6f 70 74 69 6f 6e 2d | If The| option-|
|00001270| 73 77 69 74 63 68 20 70 | 72 65 66 69 78 20 69 73 |switch p|refix is|
|00001280| 20 27 2d 27 20 74 68 65 | 6e 20 55 6e 69 78 2d 73 | '-' the|n Unix-s|
|00001290| 74 79 6c 65 20 63 6f 6d | 6d 61 6e 64 2d 6c 69 6e |tyle com|mand-lin|
|000012a0| 65 20 70 61 72 73 69 6e | 67 0a 58 2a 2a 20 20 20 |e parsin|g.X** |
|000012b0| 20 69 73 20 70 65 72 66 | 6f 72 6d 65 64 2c 20 6f | is perf|ormed, o|
|000012c0| 74 68 65 72 77 69 73 65 | 20 4d 53 2d 44 4f 53 20 |therwise| MS-DOS |
|000012d0| 73 74 79 6c 65 20 63 6f | 6d 6d 61 6e 64 2d 6c 69 |style co|mmand-li|
|000012e0| 6e 65 20 70 61 72 73 69 | 6e 67 20 69 73 20 75 73 |ne parsi|ng is us|
|000012f0| 65 64 2e 0a 58 2a 2a 0a | 58 2a 2a 20 5e 52 45 51 |ed..X**.|X** ^REQ|
|00001300| 55 49 52 45 4d 45 4e 54 | 53 3a 0a 58 2a 2a 20 20 |UIREMENT|S:.X** |
|00001310| 20 20 4e 6f 6e 65 2e 0a | 58 2a 2a 0a 58 2a 2a 20 | None..|X**.X** |
|00001320| 5e 53 49 44 45 2d 45 46 | 46 45 43 54 53 3a 0a 58 |^SIDE-EF|FECTS:.X|
|00001330| 2a 2a 20 20 20 20 53 65 | 74 73 20 74 68 65 20 67 |** Se|ts the g|
|00001340| 6c 6f 62 61 6c 20 76 61 | 72 69 61 62 6c 65 73 20 |lobal va|riables |
|00001350| 22 4f 70 74 50 72 65 66 | 69 78 22 20 61 6e 64 20 |"OptPref|ix" and |
|00001360| 22 4b 77 64 50 72 65 66 | 69 78 27 2e 0a 58 2a 2a |"KwdPref|ix'..X**|
|00001370| 0a 58 2a 2a 20 5e 52 45 | 54 55 52 4e 2d 56 41 4c |.X** ^RE|TURN-VAL|
|00001380| 55 45 3a 0a 58 2a 2a 20 | 20 20 20 4e 6f 6e 65 2e |UE:.X** | None.|
|00001390| 0a 58 2a 2a 0a 58 2a 2a | 20 5e 41 4c 47 4f 52 49 |.X**.X**| ^ALGORI|
|000013a0| 54 48 4d 3a 0a 58 2a 2a | 20 20 20 20 2d 20 49 66 |THM:.X**| - If|
|000013b0| 20 24 53 57 49 54 43 48 | 41 52 20 69 73 20 4e 55 | $SWITCH|AR is NU|
|000013c0| 4c 4c 20 6f 72 20 65 6d | 70 74 79 0a 58 2a 2a 20 |LL or em|pty.X** |
|000013d0| 20 20 20 20 20 2d 20 75 | 73 65 20 74 68 65 20 64 | - u|se the d|
|000013e0| 65 66 61 75 6c 74 73 20 | 28 27 2f 27 20 61 6e 64 |efaults |('/' and|
|000013f0| 20 27 2f 27 29 2e 0a 58 | 2a 2a 20 20 20 20 2d 20 | '/')..X|** - |
|00001400| 45 6c 73 65 0a 58 2a 2a | 20 20 20 20 20 20 2d 20 |Else.X**| - |
|00001410| 73 65 74 20 74 68 65 20 | 4f 70 74 50 72 65 66 69 |set the |OptPrefi|
|00001420| 78 20 74 6f 20 74 68 65 | 20 66 69 72 73 74 20 63 |x to the| first c|
|00001430| 68 61 72 61 63 74 65 72 | 20 69 6e 20 53 57 49 54 |haracter| in SWIT|
|00001440| 43 48 41 52 0a 58 2a 2a | 20 20 20 20 20 20 45 6e |CHAR.X**| En|
|00001450| 64 2d 69 66 0a 58 2a 2a | 0a 58 2a 2a 20 20 20 20 |d-if.X**|.X** |
|00001460| 2d 20 49 66 20 74 68 65 | 72 65 20 69 73 20 61 20 |- If the|re is a |
|00001470| 73 65 63 6f 6e 64 20 63 | 68 61 72 61 63 74 65 72 |second c|haracter|
|00001480| 20 69 6e 20 53 57 49 54 | 43 48 41 52 0a 58 2a 2a | in SWIT|CHAR.X**|
|00001490| 20 20 20 20 20 20 2d 20 | 61 73 73 69 67 6e 20 69 | - |assign i|
|000014a0| 74 20 74 6f 20 4b 77 64 | 50 72 65 66 69 78 0a 58 |t to Kwd|Prefix.X|
|000014b0| 2a 2a 20 20 20 20 2d 20 | 45 6c 73 65 20 69 66 20 |** - |Else if |
|000014c0| 4f 70 74 50 72 65 66 69 | 78 20 69 73 20 27 2d 27 |OptPrefi|x is '-'|
|000014d0| 0a 58 2a 2a 20 20 20 20 | 20 20 2d 20 74 68 65 6e |.X** | - then|
|000014e0| 20 75 73 65 20 27 2b 27 | 20 61 73 20 74 68 65 20 | use '+'| as the |
|000014f0| 64 65 66 61 75 6c 74 20 | 4b 77 64 50 72 65 66 69 |default |KwdPrefi|
|00001500| 78 0a 58 2a 2a 20 20 20 | 20 2d 20 45 6c 73 65 0a |x.X** | - Else.|
|00001510| 58 2a 2a 20 20 20 20 20 | 20 2d 20 75 73 65 20 27 |X** | - use '|
|00001520| 2f 27 20 61 73 20 74 68 | 65 20 64 65 66 61 75 6c |/' as th|e defaul|
|00001530| 74 20 4b 77 64 50 72 65 | 66 69 78 0a 58 2a 2a 20 |t KwdPre|fix.X** |
|00001540| 20 20 20 20 20 45 6e 64 | 2d 69 66 0a 58 2a 2a 2a | End|-if.X***|
|00001550| 5e 5e 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |^^******|********|
|00001560| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00001570| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00001580| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00001590| 2a 2a 2a 2a 2a 2a 2a 2a | 2f 0a 58 23 69 66 64 65 |********|/.X#ifde|
|000015a0| 66 20 5f 5f 41 4e 53 49 | 5f 43 5f 5f 0a 58 20 20 |f __ANSI|_C__.X |
|000015b0| 20 73 74 61 74 69 63 20 | 56 4f 49 44 20 20 67 65 | static |VOID ge|
|000015c0| 74 5f 70 72 65 66 69 78 | 65 73 28 20 76 6f 69 64 |t_prefix|es( void|
|000015d0| 20 29 0a 58 23 65 6e 64 | 69 66 0a 58 7b 0a 58 20 | ).X#end|if.X{.X |
|000015e0| 20 20 63 68 61 72 20 2a | 70 72 65 66 69 78 65 73 | char *|prefixes|
|000015f0| 20 3d 20 67 65 74 65 6e | 76 28 20 22 53 57 49 54 | = geten|v( "SWIT|
|00001600| 43 48 41 52 22 20 29 3b | 0a 58 0a 58 20 20 20 69 |CHAR" );|.X.X i|
|00001610| 66 20 28 20 70 72 65 66 | 69 78 65 73 20 26 26 20 |f ( pref|ixes && |
|00001620| 20 2a 70 72 65 66 69 78 | 65 73 20 29 20 7b 0a 58 | *prefix|es ) {.X|
|00001630| 20 20 20 20 20 20 4f 70 | 74 50 72 65 66 69 78 20 | Op|tPrefix |
|00001640| 3d 20 2a 70 72 65 66 69 | 78 65 73 3b 0a 58 20 20 |= *prefi|xes;.X |
|00001650| 20 20 20 20 4b 77 64 50 | 72 65 66 69 78 20 3d 20 | KwdP|refix = |
|00001660| 2a 28 70 72 65 66 69 78 | 65 73 20 2b 20 31 29 3b |*(prefix|es + 1);|
|00001670| 0a 58 20 20 20 20 20 20 | 69 66 20 28 20 21 4b 77 |.X |if ( !Kw|
|00001680| 64 50 72 65 66 69 78 20 | 29 20 20 4b 77 64 50 72 |dPrefix |) KwdPr|
|00001690| 65 66 69 78 20 3d 20 28 | 28 20 4f 70 74 50 72 65 |efix = (|( OptPre|
|000016a0| 66 69 78 20 3d 3d 20 27 | 2d 27 20 29 20 3f 20 27 |fix == '|-' ) ? '|
|000016b0| 2b 27 20 3a 20 27 2f 27 | 29 3b 0a 58 20 20 20 7d |+' : '/'|);.X }|
|000016c0| 0a 58 20 20 20 65 6c 73 | 65 20 7b 0a 58 20 20 20 |.X els|e {.X |
|000016d0| 20 20 20 4f 70 74 50 72 | 65 66 69 78 20 3d 20 27 | OptPr|efix = '|
|000016e0| 2f 27 3b 0a 58 20 20 20 | 20 20 20 4b 77 64 50 72 |/';.X | KwdPr|
|000016f0| 65 66 69 78 20 3d 20 27 | 2f 27 3b 0a 58 20 20 20 |efix = '|/';.X |
|00001700| 7d 0a 58 7d 0a 58 0a 58 | 0a 58 2f 2a 2a 2a 2a 2a |}.X}.X.X|.X/*****|
|00001710| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00001720| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00001730| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00001740| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00001750| 2a 2a 2a 2a 2a 2a 0a 58 | 2a 2a 20 5e 46 55 4e 43 |******.X|** ^FUNC|
|00001760| 54 49 4f 4e 3a 20 69 62 | 6d 5f 70 61 72 73 65 20 |TION: ib|m_parse |
|00001770| 2d 20 70 61 72 73 65 20 | 4d 53 2d 44 4f 53 20 61 |- parse |MS-DOS a|
|00001780| 6e 64 20 4f 53 2f 32 20 | 61 72 67 2d 76 65 63 74 |nd OS/2 |arg-vect|
|00001790| 6f 72 73 0a 58 2a 2a 0a | 58 2a 2a 20 5e 53 59 4e |ors.X**.|X** ^SYN|
|000017a0| 4f 50 53 49 53 3a 0a 58 | 2a 2f 0a 58 23 69 66 6e |OPSIS:.X|*/.X#ifn|
|000017b0| 64 65 66 20 5f 5f 41 4e | 53 49 5f 43 5f 5f 0a 58 |def __AN|SI_C__.X|
|000017c0| 20 20 20 69 6e 74 20 69 | 62 6d 5f 70 61 72 73 65 | int i|bm_parse|
|000017d0| 28 20 61 72 67 76 2c 20 | 61 72 67 64 20 29 0a 58 |( argv, |argd ).X|
|000017e0| 2f 2a 0a 58 2a 2a 20 5e | 50 41 52 41 4d 45 54 45 |/*.X** ^|PARAMETE|
|000017f0| 52 53 3a 0a 58 2a 2f 0a | 58 20 20 20 63 68 61 72 |RS:.X*/.|X char|
|00001800| 20 2a 61 72 67 76 5b 5d | 3b 0a 58 2f 2a 20 20 20 | *argv[]|;.X/* |
|00001810| 20 2d 2d 20 74 68 65 20 | 76 65 63 74 6f 72 20 6f | -- the |vector o|
|00001820| 66 20 73 74 72 69 6e 67 | 20 61 72 67 75 6d 65 6e |f string| argumen|
|00001830| 74 73 20 66 72 6f 6d 20 | 74 68 65 20 63 6f 6d 6d |ts from |the comm|
|00001840| 61 6e 64 2d 6c 69 6e 65 | 0a 58 2a 2f 0a 58 20 20 |and-line|.X*/.X |
|00001850| 20 41 52 47 44 45 53 43 | 20 61 72 67 64 5b 5d 3b | ARGDESC| argd[];|
|00001860| 0a 58 2f 2a 20 20 20 20 | 2d 2d 20 74 68 65 20 70 |.X/* |-- the p|
|00001870| 72 6f 67 72 61 6d 6d 65 | 72 20 64 65 73 63 72 69 |rogramme|r descri|
|00001880| 70 74 69 6f 6e 20 6f 66 | 20 74 68 65 20 63 6f 6d |ption of| the com|
|00001890| 6d 61 6e 64 20 61 6e 64 | 20 69 74 73 20 61 72 67 |mand and| its arg|
|000018a0| 73 0a 58 2a 2f 0a 58 23 | 65 6e 64 69 66 20 20 2f |s.X*/.X#|endif /|
|000018b0| 2a 20 21 5f 5f 41 4e 53 | 49 5f 43 5f 5f 20 2a 2f |* !__ANS|I_C__ */|
|000018c0| 0a 58 20 20 0a 58 2f 2a | 20 5e 44 45 53 43 52 49 |.X .X/*| ^DESCRI|
|000018d0| 50 54 49 4f 4e 3a 0a 58 | 2a 2a 20 20 20 20 49 62 |PTION:.X|** Ib|
|000018e0| 6d 5f 70 61 72 73 65 20 | 77 69 6c 6c 20 70 61 72 |m_parse |will par|
|000018f0| 73 65 20 74 68 65 20 61 | 72 67 75 6d 65 6e 74 73 |se the a|rguments|
|00001900| 20 69 6e 20 74 68 65 20 | 67 69 76 65 6e 20 76 65 | in the |given ve|
|00001910| 63 74 6f 72 20 6f 66 20 | 73 74 72 69 6e 67 73 2c |ctor of |strings,|
|00001920| 0a 58 2a 2a 20 20 20 20 | 61 73 73 69 67 6e 20 74 |.X** |assign t|
|00001930| 68 65 20 63 6f 72 72 65 | 73 70 6f 6e 64 69 6e 67 |he corre|sponding|
|00001940| 20 76 61 6c 75 65 73 20 | 74 6f 20 74 68 65 20 63 | values |to the c|
|00001950| 6f 6d 6d 61 6e 64 2d 6c | 69 6e 65 20 61 72 67 75 |ommand-l|ine argu|
|00001960| 6d 65 6e 74 73 20 73 70 | 65 63 69 66 69 65 64 0a |ments sp|ecified.|
|00001970| 58 2a 2a 20 20 20 20 69 | 6e 20 61 72 67 64 2c 20 |X** i|n argd, |
|00001980| 61 6e 64 20 63 68 65 63 | 6b 20 74 68 65 20 73 79 |and chec|k the sy|
|00001990| 6e 74 61 78 20 6f 66 20 | 74 68 65 20 63 6f 6d 6d |ntax of |the comm|
|000019a0| 61 6e 64 2d 6c 69 6e 65 | 2e 0a 58 2a 2a 0a 58 2a |and-line|..X**.X*|
|000019b0| 2a 20 5e 52 45 51 55 49 | 52 45 4d 45 4e 54 53 3a |* ^REQUI|REMENTS:|
|000019c0| 0a 58 2a 2a 20 20 20 20 | 54 68 65 20 66 69 6e 61 |.X** |The fina|
|000019d0| 6c 20 65 6c 65 6d 65 6e | 74 20 69 6e 20 61 72 67 |l elemen|t in arg|
|000019e0| 76 20 6d 75 73 74 20 62 | 65 20 61 20 4e 55 4c 4c |v must b|e a NULL|
|000019f0| 20 70 6f 69 6e 74 65 72 | 2e 0a 58 2a 2a 0a 58 2a | pointer|..X**.X*|
|00001a00| 2a 20 5e 53 49 44 45 2d | 45 46 46 45 43 54 53 3a |* ^SIDE-|EFFECTS:|
|00001a10| 0a 58 2a 2a 20 20 20 20 | 61 72 67 64 20 69 73 20 |.X** |argd is |
|00001a20| 6d 6f 64 69 66 69 65 64 | 20 61 63 63 6f 72 64 69 |modified| accordi|
|00001a30| 6e 67 20 74 6f 20 74 68 | 65 20 63 6f 6d 6d 61 6e |ng to th|e comman|
|00001a40| 64 2d 6c 69 6e 65 20 64 | 65 73 63 72 69 70 74 69 |d-line d|escripti|
|00001a50| 6f 6e 20 61 6e 64 20 70 | 61 72 61 6d 65 74 65 72 |on and p|arameter|
|00001a60| 73 0a 58 2a 2a 0a 58 2a | 2a 20 5e 52 45 54 55 52 |s.X**.X*|* ^RETUR|
|00001a70| 4e 2d 56 41 4c 55 45 3a | 0a 58 2a 2a 20 20 20 20 |N-VALUE:|.X** |
|00001a80| 70 65 5f 53 55 43 43 45 | 53 53 20 28 30 29 20 69 |pe_SUCCE|SS (0) i|
|00001a90| 66 20 6e 6f 20 65 72 72 | 6f 72 73 20 61 72 65 20 |f no err|ors are |
|00001aa0| 65 6e 63 6f 75 6e 74 65 | 72 65 64 0a 58 2a 2a 20 |encounte|red.X** |
|00001ab0| 20 20 20 70 65 5f 53 59 | 53 54 45 4d 20 28 2d 31 | pe_SY|STEM (-1|
|00001ac0| 29 20 69 66 20 61 20 73 | 79 73 74 65 6d 20 65 72 |) if a s|ystem er|
|00001ad0| 72 6f 72 20 69 73 20 65 | 6e 63 6f 75 6e 74 65 72 |ror is e|ncounter|
|00001ae0| 65 64 0a 58 2a 2a 20 20 | 20 20 70 65 5f 53 59 4e |ed.X** | pe_SYN|
|00001af0| 54 41 58 20 69 66 20 61 | 20 73 79 6e 74 61 78 20 |TAX if a| syntax |
|00001b00| 65 72 72 6f 72 20 69 73 | 20 65 6e 63 6f 75 6e 74 |error is| encount|
|00001b10| 65 72 65 64 0a 58 2a 2a | 0a 58 2a 2a 20 5e 41 4c |ered.X**|.X** ^AL|
|00001b20| 47 4f 52 49 54 48 4d 3a | 0a 58 2a 2a 20 20 20 20 |GORITHM:|.X** |
|00001b30| 2d 20 67 65 74 20 74 68 | 65 20 61 63 74 69 76 65 |- get th|e active|
|00001b40| 20 6f 70 74 69 6f 6e 20 | 61 6e 64 20 6b 65 79 77 | option |and keyw|
|00001b50| 6f 72 64 20 70 72 65 66 | 69 78 65 73 0a 58 2a 2a |ord pref|ixes.X**|
|00001b60| 20 20 20 20 2d 20 64 65 | 74 65 72 6d 69 6e 65 20 | - de|termine |
|00001b70| 77 68 65 74 68 65 72 20 | 74 6f 20 75 73 65 20 55 |whether |to use U|
|00001b80| 6e 69 78 20 73 74 79 6c | 65 20 6f 72 20 6e 6f 74 |nix styl|e or not|
|00001b90| 20 28 62 61 73 65 64 20 | 6f 6e 20 74 68 65 20 70 | (based |on the p|
|00001ba0| 72 65 66 69 78 65 73 29 | 0a 58 2a 2a 20 20 20 20 |refixes)|.X** |
|00001bb0| 2d 20 66 6f 72 20 65 61 | 63 68 20 63 6f 6d 6d 61 |- for ea|ch comma|
|00001bc0| 6e 64 2d 6c 69 6e 65 20 | 61 72 67 75 6d 65 6e 74 |nd-line |argument|
|00001bd0| 0a 58 2a 2a 20 20 20 20 | 20 20 20 2d 20 61 74 74 |.X** | - att|
|00001be0| 65 6d 70 74 20 74 6f 20 | 6d 61 74 63 68 20 74 68 |empt to |match th|
|00001bf0| 65 20 61 72 67 75 6d 65 | 6e 74 20 61 73 20 61 20 |e argume|nt as a |
|00001c00| 6b 65 79 77 6f 72 64 0a | 58 2a 2a 20 20 20 20 20 |keyword.|X** |
|00001c10| 20 20 2d 20 69 66 20 69 | 74 20 69 73 20 61 20 6b | - if i|t is a k|
|00001c20| 65 79 77 6f 72 64 20 61 | 72 67 75 6d 65 6e 74 0a |eyword a|rgument.|
|00001c30| 58 2a 2a 20 20 20 20 20 | 20 20 20 20 20 2d 20 72 |X** | - r|
|00001c40| 65 63 6f 72 64 20 61 6e | 64 20 63 6f 6e 76 65 72 |ecord an|d conver|
|00001c50| 74 20 69 74 73 20 76 61 | 6c 75 65 20 28 69 66 20 |t its va|lue (if |
|00001c60| 61 6e 79 29 0a 58 2a 2a | 20 20 20 20 20 20 20 20 |any).X**| |
|00001c70| 20 65 6c 73 65 20 61 74 | 74 65 6d 70 74 20 74 6f | else at|tempt to|
|00001c80| 20 6d 61 74 63 68 20 74 | 68 65 20 61 72 67 75 6d | match t|he argum|
|00001c90| 65 6e 74 20 61 73 20 61 | 6e 20 6f 70 74 69 6f 6e |ent as a|n option|
|00001ca0| 0a 58 2a 2a 20 20 20 20 | 20 20 20 20 20 69 66 20 |.X** | if |
|00001cb0| 69 74 20 69 73 20 61 6e | 20 6f 70 74 69 6f 6e 0a |it is an| option.|
|00001cc0| 58 2a 2a 20 20 20 20 20 | 20 20 20 20 20 2d 20 72 |X** | - r|
|00001cd0| 65 63 6f 72 64 20 61 6e | 64 20 63 6f 6e 76 65 72 |ecord an|d conver|
|00001ce0| 74 20 69 74 73 20 76 61 | 6c 75 65 20 28 69 66 20 |t its va|lue (if |
|00001cf0| 61 6e 79 29 0a 58 2a 2a | 20 20 20 20 20 20 20 20 |any).X**| |
|00001d00| 20 65 6c 73 65 20 69 74 | 20 69 73 20 61 20 70 6f | else it| is a po|
|00001d10| 73 69 74 69 6f 6e 61 6c | 20 70 61 72 61 6d 65 74 |sitional| paramet|
|00001d20| 65 72 0a 58 2a 2a 20 20 | 20 20 20 20 20 20 20 20 |er.X** | |
|00001d30| 2d 20 72 65 63 6f 72 64 | 20 61 6e 64 20 63 6f 6e |- record| and con|
|00001d40| 76 65 72 74 20 69 74 73 | 20 76 61 6c 75 65 20 28 |vert its| value (|
|00001d50| 69 66 20 61 6e 79 29 0a | 58 2a 2a 20 20 20 20 20 |if any).|X** |
|00001d60| 20 20 20 20 65 6c 73 65 | 20 74 68 65 72 65 20 61 | else| there a|
|00001d70| 72 65 20 74 6f 6f 20 6d | 61 6e 79 20 61 72 67 75 |re too m|any argu|
|00001d80| 6d 65 6e 74 73 0a 58 2a | 2a 20 20 20 20 20 20 20 |ments.X*|* |
|00001d90| 20 20 20 2d 20 72 65 74 | 75 72 6e 20 70 65 5f 53 | - ret|urn pe_S|
|00001da0| 59 4e 54 41 58 0a 58 2a | 2a 20 20 20 20 20 20 20 |YNTAX.X*|* |
|00001db0| 20 20 65 6e 64 2d 69 66 | 0a 58 2a 2a 20 20 20 20 | end-if|.X** |
|00001dc0| 20 20 20 65 6e 64 2d 66 | 6f 72 0a 58 2a 2a 2a 5e | end-f|or.X***^|
|00001dd0| 5e 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |^*******|********|
|00001de0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00001df0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00001e00| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00001e10| 2a 2a 2a 2a 2a 2a 2a 2f | 0a 58 23 69 66 64 65 66 |*******/|.X#ifdef|
|00001e20| 20 5f 5f 41 4e 53 49 5f | 43 5f 5f 0a 58 20 20 20 | __ANSI_|C__.X |
|00001e30| 69 6e 74 20 69 62 6d 5f | 70 61 72 73 65 28 20 63 |int ibm_|parse( c|
|00001e40| 68 61 72 20 2a 61 72 67 | 76 5b 5d 2c 20 41 52 47 |har *arg|v[], ARG|
|00001e50| 44 45 53 43 20 61 72 67 | 64 5b 5d 20 29 0a 58 23 |DESC arg|d[] ).X#|
|00001e60| 65 6e 64 69 66 0a 58 7b | 0a 58 20 20 20 72 65 67 |endif.X{|.X reg|
|00001e70| 69 73 74 65 72 20 41 52 | 47 44 45 53 43 20 2a 61 |ister AR|GDESC *a|
|00001e80| 64 2c 20 2a 61 72 67 73 | 2c 20 2a 63 6d 64 3b 0a |d, *args|, *cmd;.|
|00001e90| 58 20 20 20 72 65 67 69 | 73 74 65 72 20 63 68 61 |X regi|ster cha|
|00001ea0| 72 20 2a 2a 61 76 20 3d | 20 61 72 67 76 3b 0a 58 |r **av =| argv;.X|
|00001eb0| 20 20 20 72 65 67 69 73 | 74 65 72 20 63 68 61 72 | regis|ter char|
|00001ec0| 20 2a 70 3b 0a 58 20 20 | 20 61 72 67 4e 61 6d 65 | *p;.X | argName|
|00001ed0| 5f 74 20 20 6e 61 6d 65 | 3b 0a 58 20 20 20 61 72 |_t name|;.X ar|
|00001ee0| 67 4d 61 73 6b 5f 74 20 | 20 66 6c 61 67 73 3b 0a |gMask_t | flags;.|
|00001ef0| 58 20 20 20 69 6e 74 20 | 20 70 61 72 73 65 5f 65 |X int | parse_e|
|00001f00| 72 72 6f 72 20 3d 20 70 | 65 5f 53 55 43 43 45 53 |rror = p|e_SUCCES|
|00001f10| 53 3b 0a 58 20 20 20 42 | 4f 4f 4c 20 20 61 64 5f |S;.X B|OOL ad_|
|00001f20| 6f 6b 61 79 2c 20 69 73 | 5f 6d 61 74 63 68 20 3d |okay, is|_match =|
|00001f30| 20 46 41 4c 53 45 3b 0a | 58 0a 58 20 20 20 69 66 | FALSE;.|X.X if|
|00001f40| 20 28 20 21 61 72 67 64 | 20 29 20 20 72 65 74 75 | ( !argd| ) retu|
|00001f50| 72 6e 20 20 70 61 72 73 | 65 5f 65 72 72 6f 72 3b |rn pars|e_error;|
|00001f60| 0a 58 0a 58 20 20 20 20 | 20 20 2f 2a 20 69 6e 69 |.X.X | /* ini|
|00001f70| 74 69 61 6c 69 7a 65 20 | 63 6f 6d 6d 61 6e 64 2d |tialize |command-|
|00001f80| 73 74 72 75 63 74 75 72 | 65 20 2a 2f 0a 58 20 20 |structur|e */.X |
|00001f90| 20 69 66 20 28 20 21 43 | 4d 44 5f 69 73 49 4e 49 | if ( !C|MD_isINI|
|00001fa0| 54 28 61 72 67 64 29 20 | 29 20 20 69 6e 69 74 5f |T(argd) |) init_|
|00001fb0| 61 72 67 73 28 20 61 72 | 67 64 20 29 3b 0a 58 20 |args( ar|gd );.X |
|00001fc0| 20 20 63 6d 64 20 3d 20 | 61 72 67 64 3b 0a 58 0a | cmd = |argd;.X.|
|00001fd0| 58 20 20 20 67 65 74 5f | 70 72 65 66 69 78 65 73 |X get_|prefixes|
|00001fe0| 28 29 3b 0a 58 0a 58 20 | 20 20 77 68 69 6c 65 20 |();.X.X | while |
|00001ff0| 28 20 61 76 20 20 26 26 | 20 20 28 70 20 3d 20 2a |( av &&| (p = *|
|00002000| 61 76 2b 2b 29 20 29 20 | 7b 0a 58 20 20 20 20 20 |av++) ) |{.X |
|00002010| 20 2f 2a 20 69 73 20 74 | 68 69 73 20 61 20 6b 65 | /* is t|his a ke|
|00002020| 79 77 6f 72 64 20 2a 2f | 0a 58 20 20 20 20 20 20 |yword */|.X |
|00002030| 69 66 20 28 20 69 73 4b | 57 44 28 70 29 20 26 26 |if ( isK|WD(p) &&|
|00002040| 0a 58 20 20 20 20 20 20 | 20 20 20 20 28 20 28 4f |.X | ( (O|
|00002050| 70 74 50 72 65 66 69 78 | 20 21 3d 20 4b 77 64 50 |ptPrefix| != KwdP|
|00002060| 72 65 66 69 78 29 20 7c | 7c 20 2a 28 70 2b 32 29 |refix) ||| *(p+2)|
|00002070| 20 26 26 20 21 73 74 72 | 63 68 72 28 73 5f 41 52 | && !str|chr(s_AR|
|00002080| 47 5f 53 45 50 2c 20 2a | 28 70 2b 32 29 29 20 29 |G_SEP, *|(p+2)) )|
|00002090| 0a 58 20 20 20 20 20 20 | 20 20 20 29 20 7b 0a 58 |.X | ) {.X|
|000020a0| 20 20 20 20 20 20 20 20 | 20 63 68 61 72 20 2a 73 | | char *s|
|000020b0| 2c 20 63 20 3d 20 27 5c | 30 27 3b 0a 58 0a 58 20 |, c = '\|0';.X.X |
|000020c0| 20 20 20 20 20 20 20 20 | 2f 2a 20 63 68 65 63 6b | |/* check|
|000020d0| 20 66 6f 72 20 60 2b 2b | 27 20 74 6f 20 65 6e 64 | for `++|' to end|
|000020e0| 20 66 6c 61 67 73 20 2a | 2f 0a 58 20 20 20 20 20 | flags *|/.X |
|000020f0| 20 20 20 20 69 66 20 28 | 20 2a 28 70 2b 31 29 20 | if (| *(p+1) |
|00002100| 3d 3d 20 4b 77 64 50 72 | 65 66 69 78 20 20 26 26 |== KwdPr|efix &&|
|00002110| 20 20 21 2a 28 70 2b 32 | 29 20 29 20 7b 0a 58 20 | !*(p+2|) ) {.X |
|00002120| 20 20 20 20 20 20 20 20 | 20 20 20 42 53 45 54 28 | | BSET(|
|00002130| 20 63 6d 64 5f 73 74 61 | 74 65 28 63 6d 64 29 2c | cmd_sta|te(cmd),|
|00002140| 20 70 73 5f 4e 4f 46 4c | 41 47 53 20 29 3b 0a 58 | ps_NOFL|AGS );.X|
|00002150| 20 20 20 20 20 20 20 20 | 20 20 20 20 63 6d 64 5f | | cmd_|
|00002160| 6c 69 73 74 28 63 6d 64 | 29 20 3d 20 41 52 47 44 |list(cmd|) = ARGD|
|00002170| 45 53 43 4e 55 4c 4c 3b | 0a 58 20 20 20 20 20 20 |ESCNULL;|.X |
|00002180| 20 20 20 20 20 20 63 6f | 6e 74 69 6e 75 65 3b 0a | co|ntinue;.|
|00002190| 58 20 20 20 20 20 20 20 | 20 20 7d 0a 58 0a 58 20 |X | }.X.X |
|000021a0| 20 20 20 20 20 20 20 20 | 20 20 20 2f 2a 20 67 65 | | /* ge|
|000021b0| 74 20 70 61 73 74 20 70 | 72 65 66 69 78 20 61 6e |t past p|refix an|
|000021c0| 64 20 6c 6f 6f 6b 20 66 | 6f 72 20 70 6f 73 73 69 |d look f|or possi|
|000021d0| 62 6c 65 20 61 72 67 75 | 6d 65 6e 74 20 2a 2f 0a |ble argu|ment */.|
|000021e0| 58 20 20 20 20 20 20 20 | 20 20 73 20 3d 20 73 74 |X | s = st|
|000021f0| 72 70 62 72 6b 28 2b 2b | 70 2c 20 73 5f 41 52 47 |rpbrk(++|p, s_ARG|
|00002200| 5f 53 45 50 29 3b 0a 58 | 20 20 20 20 20 20 20 20 |_SEP);.X| |
|00002210| 20 69 66 28 73 29 20 7b | 0a 58 20 20 20 20 20 20 | if(s) {|.X |
|00002220| 20 20 20 20 20 20 63 20 | 3d 20 2a 73 3b 0a 58 20 | c |= *s;.X |
|00002230| 20 20 20 20 20 20 20 20 | 20 20 20 2a 73 2b 2b 20 | | *s++ |
|00002240| 3d 20 27 5c 30 27 3b 0a | 58 20 20 20 20 20 20 20 |= '\0';.|X |
|00002250| 20 20 7d 0a 58 0a 58 20 | 20 20 20 20 20 20 20 20 | }.X.X | |
|00002260| 69 73 5f 6d 61 74 63 68 | 20 3d 20 46 41 4c 53 45 |is_match| = FALSE|
|00002270| 3b 0a 58 20 20 20 20 20 | 20 20 20 20 66 6f 72 20 |;.X | for |
|00002280| 28 20 61 72 67 73 20 3d | 20 61 72 67 64 20 3b 20 |( args =| argd ; |
|00002290| 61 72 67 73 20 20 26 26 | 20 20 21 69 73 5f 6d 61 |args &&| !is_ma|
|000022a0| 74 63 68 20 3b 20 61 72 | 67 73 20 3d 20 63 6d 64 |tch ; ar|gs = cmd|
|000022b0| 5f 64 65 66 61 72 67 73 | 28 61 72 67 73 29 20 29 |_defargs|(args) )|
|000022c0| 20 7b 0a 58 20 20 20 20 | 20 20 20 20 20 20 20 20 | {.X | |
|000022d0| 66 6f 72 20 28 20 61 64 | 20 3d 20 41 52 47 5f 46 |for ( ad| = ARG_F|
|000022e0| 49 52 53 54 28 61 72 67 | 73 29 20 3b 20 21 41 52 |IRST(arg|s) ; !AR|
|000022f0| 47 5f 69 73 45 4e 44 28 | 61 64 29 20 3b 20 41 52 |G_isEND(|ad) ; AR|
|00002300| 47 5f 41 44 56 41 4e 43 | 45 28 61 64 29 20 29 20 |G_ADVANC|E(ad) ) |
|00002310| 7b 0a 58 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |{.X | |
|00002320| 20 20 69 66 20 28 20 61 | 72 67 5f 74 79 70 65 28 | if ( a|rg_type(|
|00002330| 61 64 29 20 3d 3d 20 61 | 72 67 44 75 6d 6d 79 20 |ad) == a|rgDummy |
|00002340| 29 20 20 63 6f 6e 74 69 | 6e 75 65 3b 0a 58 0a 58 |) conti|nue;.X.X|
|00002350| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 69 | | i|
|00002360| 66 20 28 20 21 41 52 47 | 5f 69 73 50 4f 53 4f 4e |f ( !ARG|_isPOSON|
|00002370| 4c 59 28 61 64 29 20 20 | 26 26 20 20 6d 61 74 63 |LY(ad) |&& matc|
|00002380| 68 28 70 2c 20 61 72 67 | 5f 73 6e 61 6d 65 28 61 |h(p, arg|_sname(a|
|00002390| 64 29 29 20 3d 3d 20 30 | 20 29 20 7b 0a 58 20 20 |d)) == 0| ) {.X |
|000023a0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|000023b0| 69 73 5f 6d 61 74 63 68 | 20 3d 20 54 52 55 45 3b |is_match| = TRUE;|
|000023c0| 0a 58 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |.X | |
|000023d0| 20 20 20 20 62 72 65 61 | 6b 3b 0a 58 20 20 20 20 | brea|k;.X |
|000023e0| 20 20 20 20 20 20 20 20 | 20 20 20 7d 2f 2a 69 66 | | }/*if|
|000023f0| 2a 2f 0a 58 20 20 20 20 | 20 20 20 20 20 20 20 20 |*/.X | |
|00002400| 7d 0a 58 20 20 20 20 20 | 20 20 20 20 7d 0a 58 0a |}.X | }.X.|
|00002410| 58 20 20 20 20 20 20 20 | 20 20 69 66 20 28 20 63 |X | if ( c|
|00002420| 20 29 20 20 2a 28 73 2d | 31 29 20 3d 20 63 3b 20 | ) *(s-|1) = c; |
|00002430| 20 2f 2a 20 72 65 73 74 | 6f 72 65 20 74 68 65 20 | /* rest|ore the |
|00002440| 65 71 75 61 6c 20 73 69 | 67 6e 20 2a 2f 0a 58 0a |equal si|gn */.X.|
|00002450| 58 20 20 20 20 20 20 20 | 20 20 69 66 20 28 20 21 |X | if ( !|
|00002460| 69 73 5f 6d 61 74 63 68 | 20 29 20 7b 0a 58 20 20 |is_match| ) {.X |
|00002470| 20 20 20 20 20 20 20 20 | 20 20 69 66 20 28 20 4f | | if ( O|
|00002480| 70 74 50 72 65 66 69 78 | 20 3d 3d 20 4b 77 64 50 |ptPrefix| == KwdP|
|00002490| 72 65 66 69 78 20 29 20 | 7b 0a 58 20 20 20 20 20 |refix ) |{.X |
|000024a0| 20 20 20 20 20 20 20 20 | 20 20 67 6f 74 6f 20 20 | | goto |
|000024b0| 4d 41 54 43 48 4f 50 54 | 3b 20 20 2f 2a 20 6d 61 |MATCHOPT|; /* ma|
|000024c0| 79 62 65 20 69 74 73 20 | 61 6e 20 6f 70 74 69 6f |ybe its |an optio|
|000024d0| 6e 20 28 61 6e 64 20 4e | 4f 54 20 61 20 6b 65 79 |n (and N|OT a key|
|000024e0| 77 6f 72 64 29 20 2a 2f | 0a 58 20 20 20 20 20 20 |word) */|.X |
|000024f0| 20 20 20 20 20 20 7d 0a | 58 20 20 20 20 20 20 20 | }.|X |
|00002500| 20 20 20 20 20 75 73 72 | 65 72 72 28 22 25 63 25 | usr|err("%c%|
|00002510| 73 20 73 77 69 74 63 68 | 20 75 6e 6b 6e 6f 77 6e |s switch| unknown|
|00002520| 22 2c 20 4b 77 64 50 72 | 65 66 69 78 2c 20 70 29 |", KwdPr|efix, p)|
|00002530| 3b 0a 58 20 20 20 20 20 | 20 20 20 20 20 20 20 70 |;.X | p|
|00002540| 61 72 73 65 5f 65 72 72 | 6f 72 20 3d 20 70 65 5f |arse_err|or = pe_|
|00002550| 53 59 4e 54 41 58 3b 0a | 58 20 20 20 20 20 20 20 |SYNTAX;.|X |
|00002560| 20 20 20 20 20 63 6d 64 | 5f 6c 69 73 74 28 63 6d | cmd|_list(cm|
|00002570| 64 29 20 3d 20 41 52 47 | 44 45 53 43 4e 55 4c 4c |d) = ARG|DESCNULL|
|00002580| 3b 0a 58 20 20 20 20 20 | 20 20 20 20 20 20 20 63 |;.X | c|
|00002590| 6f 6e 74 69 6e 75 65 3b | 0a 58 20 20 20 20 20 20 |ontinue;|.X |
|000025a0| 20 20 20 7d 0a 58 0a 58 | 20 20 20 20 20 20 20 20 | }.X.X| |
|000025b0| 20 2f 2a 20 72 65 73 65 | 74 20 74 68 65 20 61 72 | /* rese|t the ar|
|000025c0| 67 75 6d 65 6e 74 20 66 | 6c 61 67 73 20 2d 20 69 |gument f|lags - i|
|000025d0| 66 20 74 68 69 73 20 61 | 72 67 20 77 61 73 20 61 |f this a|rg was a|
|000025e0| 6c 72 65 61 64 79 20 67 | 69 76 65 6e 2c 20 73 6f |lready g|iven, so|
|000025f0| 6d 65 0a 58 20 20 20 20 | 20 20 20 20 20 2a 2a 20 |me.X | ** |
|00002600| 6f 66 20 69 74 73 20 66 | 6c 61 67 73 20 6d 61 79 |of its f|lags may|
|00002610| 20 62 65 20 73 65 74 20 | 74 6f 20 69 6e 64 69 63 | be set |to indic|
|00002620| 61 74 65 20 68 6f 77 20 | 69 74 20 77 61 73 20 67 |ate how |it was g|
|00002630| 69 76 65 6e 20 62 65 66 | 6f 72 65 2e 0a 58 20 20 |iven bef|ore..X |
|00002640| 20 20 20 20 20 20 20 2a | 2a 20 77 65 20 6e 65 65 | *|* we nee|
|00002650| 64 20 74 6f 20 6b 6e 6f | 77 20 68 6f 77 20 69 74 |d to kno|w how it|
|00002660| 20 77 61 73 20 67 69 76 | 65 6e 20 6e 6f 77 20 28 | was giv|en now (|
|00002670| 62 75 74 20 73 61 76 65 | 20 74 68 65 20 6f 6c 64 |but save| the old|
|00002680| 20 6f 6e 65 73 0a 58 20 | 20 20 20 20 20 20 20 20 | ones.X | |
|00002690| 2a 2a 20 6a 75 73 74 20 | 69 6e 20 63 61 73 65 20 |** just |in case |
|000026a0| 74 68 65 20 6e 65 77 20 | 6f 6e 65 20 66 61 69 6c |the new |one fail|
|000026b0| 73 29 2e 0a 58 20 20 20 | 20 20 20 20 20 20 2a 2f |s)..X | */|
|000026c0| 0a 58 20 20 20 20 20 20 | 20 20 20 66 6c 61 67 73 |.X | flags|
|000026d0| 20 3d 20 61 72 67 5f 66 | 6c 61 67 73 28 61 64 29 | = arg_f|lags(ad)|
|000026e0| 3b 0a 58 20 20 20 20 20 | 20 20 20 20 69 66 20 28 |;.X | if (|
|000026f0| 20 41 52 47 5f 69 73 47 | 49 56 45 4e 28 61 64 29 | ARG_isG|IVEN(ad)|
|00002700| 20 29 20 7b 0a 58 20 20 | 20 20 20 20 20 20 20 20 | ) {.X | |
|00002710| 20 20 42 43 4c 45 41 52 | 28 20 61 72 67 5f 66 6c | BCLEAR|( arg_fl|
|00002720| 61 67 73 28 61 64 29 2c | 20 41 52 47 56 41 4c 53 |ags(ad),| ARGVALS|
|00002730| 45 50 20 7c 20 41 52 47 | 4b 45 59 57 4f 52 44 20 |EP | ARG|KEYWORD |
|00002740| 29 3b 0a 58 20 20 20 20 | 20 20 20 20 20 20 20 20 |);.X | |
|00002750| 69 66 20 28 20 21 41 52 | 47 5f 69 73 4d 55 4c 54 |if ( !AR|G_isMULT|
|00002760| 49 56 41 4c 28 61 64 29 | 20 29 20 20 42 43 4c 45 |IVAL(ad)| ) BCLE|
|00002770| 41 52 28 20 61 72 67 5f | 66 6c 61 67 73 28 61 64 |AR( arg_|flags(ad|
|00002780| 29 2c 20 41 52 47 56 41 | 4c 47 49 56 45 4e 20 29 |), ARGVA|LGIVEN )|
|00002790| 3b 0a 58 20 20 20 20 20 | 20 20 20 20 7d 0a 58 0a |;.X | }.X.|
|000027a0| 58 20 20 20 20 20 20 20 | 20 20 42 53 45 54 28 20 |X | BSET( |
|000027b0| 61 72 67 5f 66 6c 61 67 | 73 28 61 64 29 2c 20 41 |arg_flag|s(ad), A|
|000027c0| 52 47 4b 45 59 57 4f 52 | 44 20 29 3b 0a 58 0a 58 |RGKEYWOR|D );.X.X|
|000027d0| 20 20 20 20 20 20 20 20 | 20 69 66 28 20 41 52 47 | | if( ARG|
|000027e0| 5f 69 73 4d 55 4c 54 49 | 56 41 4c 28 61 64 29 20 |_isMULTI|VAL(ad) |
|000027f0| 29 20 7b 0a 58 20 20 20 | 20 20 20 20 20 20 20 20 |) {.X | |
|00002800| 20 63 6d 64 5f 6c 69 73 | 74 28 63 6d 64 29 20 3d | cmd_lis|t(cmd) =|
|00002810| 20 61 64 3b 20 20 2f 2a | 20 77 65 20 6d 61 74 63 | ad; /*| we matc|
|00002820| 68 65 64 20 61 20 6c 73 | 74 20 6f 72 20 61 20 76 |hed a ls|t or a v|
|00002830| 65 63 74 6f 72 20 2a 2f | 0a 58 20 20 20 20 20 20 |ector */|.X |
|00002840| 20 20 20 7d 0a 58 20 20 | 20 20 20 20 20 20 20 65 | }.X | e|
|00002850| 6c 73 65 20 7b 0a 58 20 | 20 20 20 20 20 20 20 20 |lse {.X | |
|00002860| 20 20 20 63 6d 64 5f 6c | 69 73 74 28 63 6d 64 29 | cmd_l|ist(cmd)|
|00002870| 20 3d 20 41 52 47 44 45 | 53 43 4e 55 4c 4c 3b 0a | = ARGDE|SCNULL;.|
|00002880| 58 20 20 20 20 20 20 20 | 20 20 7d 0a 58 0a 58 20 |X | }.X.X |
|00002890| 20 20 20 20 20 20 20 20 | 20 20 20 2f 2a 20 69 66 | | /* if|
|000028a0| 20 75 73 61 67 65 20 2d | 20 6a 75 73 74 20 70 72 | usage -| just pr|
|000028b0| 69 6e 74 20 75 73 61 67 | 65 20 61 6e 64 20 65 78 |int usag|e and ex|
|000028c0| 69 74 20 2a 2f 0a 58 20 | 20 20 20 20 20 20 20 20 |it */.X | |
|000028d0| 69 66 20 28 20 61 72 67 | 5f 74 79 70 65 28 61 64 |if ( arg|_type(ad|
|000028e0| 29 20 3d 3d 20 61 72 67 | 55 73 61 67 65 20 29 20 |) == arg|Usage ) |
|000028f0| 7b 0a 58 20 20 20 20 20 | 20 20 20 20 20 20 20 55 |{.X | U|
|00002900| 73 61 67 65 5f 52 65 71 | 75 65 73 74 65 64 20 3d |sage_Req|uested =|
|00002910| 20 54 52 55 45 3b 0a 58 | 20 20 20 20 20 20 20 20 | TRUE;.X| |
|00002920| 20 20 20 20 75 73 61 67 | 65 28 61 72 67 64 29 3b | usag|e(argd);|
|00002930| 0a 58 20 20 20 20 20 20 | 20 20 20 20 20 20 65 78 |.X | ex|
|00002940| 69 74 28 65 78 69 74 5f | 55 53 41 47 45 29 3b 0a |it(exit_|USAGE);.|
|00002950| 58 20 20 20 20 20 20 20 | 20 20 7d 0a 58 0a 58 20 |X | }.X.X |
|00002960| 20 20 20 20 20 20 20 20 | 20 20 20 2f 2a 20 41 52 | | /* AR|
|00002970| 47 4e 4f 56 41 4c 73 20 | 61 72 65 20 73 70 65 63 |GNOVALs |are spec|
|00002980| 69 61 6c 2c 20 68 61 76 | 69 6e 67 20 6e 6f 20 76 |ial, hav|ing no v|
|00002990| 61 6c 75 65 20 2a 2f 0a | 58 20 20 20 20 20 20 20 |alue */.|X |
|000029a0| 20 20 69 66 20 28 20 21 | 20 41 52 47 5f 69 73 56 | if ( !| ARG_isV|
|000029b0| 41 4c 54 41 4b 45 4e 28 | 61 64 29 20 29 20 7b 0a |ALTAKEN(|ad) ) {.|
|000029c0| 58 20 20 20 20 20 20 20 | 20 20 20 20 20 61 64 5f |X | ad_|
|000029d0| 6f 6b 61 79 20 3d 20 48 | 41 4e 44 4c 45 28 61 64 |okay = H|ANDLE(ad|
|000029e0| 2c 20 73 2c 20 63 6d 64 | 5f 66 6c 61 67 73 28 63 |, s, cmd|_flags(c|
|000029f0| 6d 64 29 29 3b 0a 58 20 | 20 20 20 20 20 20 20 20 |md));.X | |
|00002a00| 20 20 20 69 66 20 28 20 | 21 61 64 5f 6f 6b 61 79 | if ( |!ad_okay|
|00002a10| 20 29 20 7b 0a 58 20 20 | 20 20 20 20 20 20 20 20 | ) {.X | |
|00002a20| 20 20 20 20 20 61 72 67 | 5f 66 6c 61 67 73 28 61 | arg|_flags(a|
|00002a30| 64 29 20 3d 20 66 6c 61 | 67 73 3b 0a 58 20 20 20 |d) = fla|gs;.X |
|00002a40| 20 20 20 20 20 20 20 20 | 20 20 20 20 70 61 72 73 | | pars|
|00002a50| 65 5f 65 72 72 6f 72 20 | 3d 20 70 65 5f 53 59 4e |e_error |= pe_SYN|
|00002a60| 54 41 58 3b 0a 58 20 20 | 20 20 20 20 20 20 20 20 |TAX;.X | |
|00002a70| 20 20 7d 0a 58 20 20 20 | 20 20 20 20 20 20 20 20 | }.X | |
|00002a80| 20 65 6c 73 65 20 7b 0a | 58 20 20 20 20 20 20 20 | else {.|X |
|00002a90| 20 20 20 20 20 20 20 20 | 42 53 45 54 28 20 61 72 | |BSET( ar|
|00002aa0| 67 5f 66 6c 61 67 73 28 | 61 64 29 2c 20 41 52 47 |g_flags(|ad), ARG|
|00002ab0| 47 49 56 45 4e 20 29 3b | 0a 58 20 20 20 20 20 20 |GIVEN );|.X |
|00002ac0| 20 20 20 20 20 20 20 20 | 20 61 64 20 3d 20 41 52 | | ad = AR|
|00002ad0| 47 44 45 53 43 4e 55 4c | 4c 3b 0a 58 20 20 20 20 |GDESCNUL|L;.X |
|00002ae0| 20 20 20 20 20 20 20 20 | 7d 0a 58 20 20 20 20 20 | |}.X |
|00002af0| 20 20 20 20 20 20 20 63 | 6f 6e 74 69 6e 75 65 3b | c|ontinue;|
|00002b00| 0a 58 20 20 20 20 20 20 | 20 20 20 7d 2f 2a 69 66 |.X | }/*if|
|00002b10| 20 41 52 47 4e 4f 56 41 | 4c 2a 2f 0a 58 0a 58 20 | ARGNOVA|L*/.X.X |
|00002b20| 20 20 20 20 20 20 20 20 | 20 20 20 2f 2a 20 6e 6f | | /* no|
|00002b30| 77 20 67 65 74 20 74 68 | 65 20 72 65 61 6c 20 76 |w get th|e real v|
|00002b40| 61 6c 75 65 20 2a 2f 0a | 58 20 20 20 20 20 20 20 |alue */.|X |
|00002b50| 20 20 69 66 20 28 21 73 | 29 20 7b 0a 58 20 20 20 | if (!s|) {.X |
|00002b60| 20 20 20 20 20 20 20 20 | 20 69 66 20 28 20 69 73 | | if ( is|
|00002b70| 55 4e 49 58 49 53 48 20 | 29 20 20 73 20 3d 20 2a |UNIXISH |) s = *|
|00002b80| 61 76 2b 2b 3b 0a 58 20 | 20 20 20 20 20 20 20 20 |av++;.X | |
|00002b90| 20 20 20 69 66 20 28 20 | 21 69 73 55 4e 49 58 49 | if ( |!isUNIXI|
|00002ba0| 53 48 20 20 7c 7c 20 20 | 21 73 20 20 7c 7c 20 20 |SH || |!s || |
|00002bb0| 69 73 4f 50 54 28 73 29 | 20 20 7c 7c 20 20 69 73 |isOPT(s)| || is|
|00002bc0| 4b 57 44 28 73 29 20 29 | 20 7b 0a 58 20 20 20 20 |KWD(s) )| {.X |
|00002bd0| 20 20 20 20 20 20 20 20 | 20 20 20 69 66 20 28 20 | | if ( |
|00002be0| 41 52 47 5f 69 73 56 41 | 4c 4f 50 54 49 4f 4e 41 |ARG_isVA|LOPTIONA|
|00002bf0| 4c 28 61 64 29 20 29 20 | 7b 0a 58 20 20 20 20 20 |L(ad) ) |{.X |
|00002c00| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 42 53 45 | | BSE|
|00002c10| 54 28 20 61 72 67 5f 66 | 6c 61 67 73 28 61 64 29 |T( arg_f|lags(ad)|
|00002c20| 2c 20 41 52 47 47 49 56 | 45 4e 20 29 3b 0a 58 20 |, ARGGIV|EN );.X |
|00002c30| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 7d 0a | | }.|
|00002c40| 58 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |X | |
|00002c50| 65 6c 73 65 20 7b 0a 58 | 20 20 20 20 20 20 20 20 |else {.X| |
|00002c60| 20 20 20 20 20 20 20 20 | 20 20 28 56 4f 49 44 29 | | (VOID)|
|00002c70| 20 67 65 74 5f 6b 77 64 | 6e 61 6d 65 28 20 61 72 | get_kwd|name( ar|
|00002c80| 67 5f 73 6e 61 6d 65 28 | 61 64 29 2c 20 6e 61 6d |g_sname(|ad), nam|
|00002c90| 65 20 29 3b 0a 58 20 20 | 20 20 20 20 20 20 20 20 |e );.X | |
|00002ca0| 20 20 20 20 20 20 20 20 | 75 73 72 65 72 72 28 22 | |usrerr("|
|00002cb0| 25 63 25 73 20 73 77 69 | 74 63 68 20 72 65 71 75 |%c%s swi|tch requ|
|00002cc0| 69 72 65 73 20 61 6e 20 | 61 72 67 75 6d 65 6e 74 |ires an |argument|
|00002cd0| 22 2c 20 4b 77 64 50 72 | 65 66 69 78 2c 20 6e 61 |", KwdPr|efix, na|
|00002ce0| 6d 65 29 3b 0a 58 20 20 | 20 20 20 20 20 20 20 20 |me);.X | |
|00002cf0| 20 20 20 20 20 20 20 20 | 61 72 67 5f 66 6c 61 67 | |arg_flag|
|00002d00| 73 28 61 64 29 20 3d 20 | 66 6c 61 67 73 3b 0a 58 |s(ad) = |flags;.X|
|00002d10| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00002d20| 20 20 70 61 72 73 65 5f | 65 72 72 6f 72 20 3d 20 | parse_|error = |
|00002d30| 70 65 5f 53 59 4e 54 41 | 58 3b 0a 58 20 20 20 20 |pe_SYNTA|X;.X |
|00002d40| 20 20 20 20 20 20 20 20 | 20 20 20 7d 0a 58 0a 58 | | }.X.X|
|00002d50| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 69 | | i|
|00002d60| 66 20 28 20 69 73 55 4e | 49 58 49 53 48 20 29 20 |f ( isUN|IXISH ) |
|00002d70| 20 61 76 2d 2d 3b 0a 58 | 20 20 20 20 20 20 20 20 | av--;.X| |
|00002d80| 20 20 20 20 20 20 20 63 | 6f 6e 74 69 6e 75 65 3b | c|ontinue;|
|00002d90| 0a 58 20 20 20 20 20 20 | 20 20 20 20 20 20 7d 2f |.X | }/|
|00002da0| 2a 69 66 20 61 72 67 2a | 2f 0a 58 20 20 20 20 20 |*if arg*|/.X |
|00002db0| 20 20 20 20 20 20 20 69 | 66 20 28 20 69 73 55 4e | i|f ( isUN|
|00002dc0| 49 58 49 53 48 20 29 20 | 20 42 53 45 54 28 20 61 |IXISH ) | BSET( a|
|00002dd0| 72 67 5f 66 6c 61 67 73 | 28 61 64 29 2c 20 41 52 |rg_flags|(ad), AR|
|00002de0| 47 56 41 4c 53 45 50 20 | 29 3b 0a 58 20 20 20 20 |GVALSEP |);.X |
|00002df0| 20 20 20 20 20 7d 2f 2a | 69 66 20 65 6d 70 74 79 | }/*|if empty|
|00002e00| 2a 2f 0a 58 0a 58 20 20 | 20 20 20 20 20 20 20 20 |*/.X.X | |
|00002e10| 20 20 2f 2a 20 74 72 79 | 20 74 6f 20 63 6f 6e 76 | /* try| to conv|
|00002e20| 65 72 74 20 74 68 65 20 | 74 79 70 65 20 2a 2f 0a |ert the |type */.|
|00002e30| 58 20 20 20 20 20 20 20 | 20 20 61 64 5f 6f 6b 61 |X | ad_oka|
|00002e40| 79 20 3d 20 48 41 4e 44 | 4c 45 28 61 64 2c 20 73 |y = HAND|LE(ad, s|
|00002e50| 2c 20 63 6d 64 5f 66 6c | 61 67 73 28 63 6d 64 29 |, cmd_fl|ags(cmd)|
|00002e60| 29 3b 0a 58 20 20 20 20 | 20 20 20 20 20 69 66 20 |);.X | if |
|00002e70| 28 20 21 61 64 5f 6f 6b | 61 79 20 29 20 7b 0a 58 |( !ad_ok|ay ) {.X|
|00002e80| 20 20 20 20 20 20 20 20 | 20 20 20 20 61 72 67 5f | | arg_|
|00002e90| 66 6c 61 67 73 28 61 64 | 29 20 3d 20 66 6c 61 67 |flags(ad|) = flag|
|00002ea0| 73 3b 0a 58 20 20 20 20 | 20 20 20 20 20 20 20 20 |s;.X | |
|00002eb0| 70 61 72 73 65 5f 65 72 | 72 6f 72 20 3d 20 70 65 |parse_er|ror = pe|
|00002ec0| 5f 53 59 4e 54 41 58 3b | 0a 58 20 20 20 20 20 20 |_SYNTAX;|.X |
|00002ed0| 20 20 20 7d 0a 58 20 20 | 20 20 20 20 20 20 20 65 | }.X | e|
|00002ee0| 6c 73 65 20 7b 0a 58 20 | 20 20 20 20 20 20 20 20 |lse {.X | |
|00002ef0| 20 20 20 42 53 45 54 28 | 20 61 72 67 5f 66 6c 61 | BSET(| arg_fla|
|00002f00| 67 73 28 61 64 29 2c 20 | 41 52 47 47 49 56 45 4e |gs(ad), |ARGGIVEN|
|00002f10| 20 7c 20 41 52 47 56 41 | 4c 47 49 56 45 4e 20 29 | | ARGVA|LGIVEN )|
|00002f20| 3b 0a 58 20 20 20 20 20 | 20 20 20 20 7d 0a 58 0a |;.X | }.X.|
|00002f30| 58 20 20 20 20 20 20 20 | 20 20 63 6f 6e 74 69 6e |X | contin|
|00002f40| 75 65 3b 0a 58 20 20 20 | 20 20 20 7d 2f 2a 69 66 |ue;.X | }/*if|
|00002f50| 20 6b 65 79 77 6f 72 64 | 2a 2f 0a 58 20 20 20 20 | keyword|*/.X |
|00002f60| 20 20 65 6c 73 65 20 69 | 66 20 28 20 69 73 4f 50 | else i|f ( isOP|
|00002f70| 54 28 70 29 20 29 20 7b | 0a 58 20 20 20 20 20 20 |T(p) ) {|.X |
|00002f80| 20 20 20 70 2b 2b 3b 20 | 20 2f 2a 20 73 6b 69 70 | p++; | /* skip|
|00002f90| 20 6f 76 65 72 20 6f 70 | 74 69 6f 6e 20 70 72 65 | over op|tion pre|
|00002fa0| 66 69 78 20 2a 2f 0a 58 | 0a 58 4d 41 54 43 48 4f |fix */.X|.XMATCHO|
|00002fb0| 50 54 3a 0a 58 20 20 20 | 20 20 20 20 20 20 20 20 |PT:.X | |
|00002fc0| 20 2f 2a 20 63 68 65 63 | 6b 20 66 6f 72 20 60 2d | /* chec|k for `-|
|00002fd0| 2d 27 20 74 6f 20 65 6e | 64 20 66 6c 61 67 73 20 |-' to en|d flags |
|00002fe0| 2a 2f 0a 58 20 20 20 20 | 20 20 20 20 20 69 66 20 |*/.X | if |
|00002ff0| 28 20 2a 70 20 3d 3d 20 | 4f 70 74 50 72 65 66 69 |( *p == |OptPrefi|
|00003000| 78 20 20 26 26 20 20 21 | 2a 28 70 2b 31 29 20 29 |x && !|*(p+1) )|
|00003010| 20 7b 0a 58 20 20 20 20 | 20 20 20 20 20 20 20 20 | {.X | |
|00003020| 42 53 45 54 28 20 63 6d | 64 5f 73 74 61 74 65 28 |BSET( cm|d_state(|
|00003030| 63 6d 64 29 2c 20 70 73 | 5f 4e 4f 46 4c 41 47 53 |cmd), ps|_NOFLAGS|
|00003040| 20 29 3b 0a 58 20 20 20 | 20 20 20 20 20 20 20 20 | );.X | |
|00003050| 20 63 6d 64 5f 6c 69 73 | 74 28 63 6d 64 29 20 3d | cmd_lis|t(cmd) =|
|00003060| 20 41 52 47 44 45 53 43 | 4e 55 4c 4c 3b 0a 58 20 | ARGDESC|NULL;.X |
|00003070| 20 20 20 20 20 20 20 20 | 20 20 20 63 6f 6e 74 69 | | conti|
|00003080| 6e 75 65 3b 0a 58 20 20 | 20 20 20 20 20 20 20 7d |nue;.X | }|
|00003090| 0a 58 0a 58 20 20 20 20 | 20 20 20 20 20 2f 2a 20 |.X.X | /* |
|000030a0| 57 65 20 68 61 76 65 20 | 61 20 66 6c 61 67 20 61 |We have |a flag a|
|000030b0| 72 67 75 6d 65 6e 74 3b | 0a 58 20 20 20 20 20 20 |rgument;|.X |
|000030c0| 20 20 20 2a 2a 20 72 65 | 6d 65 6d 62 65 72 20 74 | ** re|member t|
|000030d0| 68 61 74 20 69 6e 20 74 | 68 65 20 63 61 73 65 20 |hat in t|he case |
|000030e0| 6f 66 20 73 69 6e 67 6c | 65 20 63 68 61 72 61 63 |of singl|e charac|
|000030f0| 74 65 72 20 6b 65 79 77 | 6f 72 64 73 2c 0a 58 20 |ter keyw|ords,.X |
|00003100| 20 20 20 20 20 20 20 20 | 2a 2a 20 74 68 65 20 63 | |** the c|
|00003110| 6f 6e 76 65 72 73 69 6f | 6e 20 66 75 6e 63 74 69 |onversio|n functi|
|00003120| 6f 6e 20 28 61 64 5f 74 | 79 70 65 29 20 74 65 6c |on (ad_t|ype) tel|
|00003130| 6c 73 20 75 73 20 68 6f | 77 20 6d 61 6e 79 20 63 |ls us ho|w many c|
|00003140| 68 61 72 61 63 74 65 72 | 73 0a 58 20 20 20 20 20 |haracter|s.X |
|00003150| 20 20 20 20 2a 2a 20 77 | 65 72 65 20 75 73 65 64 | ** w|ere used|
|00003160| 2e 20 57 65 20 6e 65 65 | 64 20 74 68 61 74 20 69 |. We nee|d that i|
|00003170| 6e 66 6f 72 6d 61 74 69 | 6f 6e 20 74 6f 20 64 65 |nformati|on to de|
|00003180| 63 69 64 65 20 68 6f 77 | 20 6d 61 6e 79 20 0a 58 |cide how| many .X|
|00003190| 20 20 20 20 20 20 20 20 | 20 2a 2a 20 63 68 61 72 | | ** char|
|000031a0| 61 63 74 65 72 73 20 74 | 6f 20 73 6b 69 70 20 62 |acters t|o skip b|
|000031b0| 65 66 6f 72 65 20 74 68 | 65 20 6e 65 78 74 20 69 |efore th|e next i|
|000031c0| 74 65 72 61 74 69 6f 6e | 20 6f 66 20 74 68 65 20 |teration| of the |
|000031d0| 77 68 69 6c 65 20 6c 6f | 6f 70 2e 0a 58 20 20 20 |while lo|op..X |
|000031e0| 20 20 20 20 20 20 2a 2f | 0a 58 20 20 20 20 20 20 | */|.X |
|000031f0| 20 20 20 77 68 69 6c 65 | 20 28 2a 70 29 20 7b 20 | while| (*p) { |
|00003200| 20 2f 2a 20 77 68 69 6c | 65 20 6e 6f 74 20 65 6e | /* whil|e not en|
|00003210| 64 20 6f 66 20 73 77 69 | 74 63 68 2d 63 68 61 72 |d of swi|tch-char|
|00003220| 73 20 2a 2f 0a 58 0a 58 | 20 20 20 20 20 20 20 20 |s */.X.X| |
|00003230| 20 20 20 20 20 20 20 2f | 2a 20 66 69 6e 64 20 74 | /|* find t|
|00003240| 68 65 20 66 6c 61 67 20 | 69 6e 20 74 68 65 20 6c |he flag |in the l|
|00003250| 69 73 74 20 2a 2f 0a 58 | 20 20 20 20 20 20 20 20 |ist */.X| |
|00003260| 20 20 20 20 69 73 5f 6d | 61 74 63 68 20 3d 20 46 | is_m|atch = F|
|00003270| 41 4c 53 45 3b 0a 58 20 | 20 20 20 20 20 20 20 20 |ALSE;.X | |
|00003280| 20 20 20 66 6f 72 20 28 | 61 72 67 73 20 3d 20 61 | for (|args = a|
|00003290| 72 67 64 3b 20 61 72 67 | 73 20 20 26 26 20 20 21 |rgd; arg|s && !|
|000032a0| 69 73 5f 6d 61 74 63 68 | 20 3b 20 61 72 67 73 20 |is_match| ; args |
|000032b0| 3d 20 63 6d 64 5f 64 65 | 66 61 72 67 73 28 61 72 |= cmd_de|fargs(ar|
|000032c0| 67 73 29 29 20 7b 0a 58 | 20 20 20 20 20 20 20 20 |gs)) {.X| |
|000032d0| 20 20 20 20 20 20 20 66 | 6f 72 20 28 20 61 64 20 | f|or ( ad |
|000032e0| 3d 20 41 52 47 5f 46 49 | 52 53 54 28 61 72 67 73 |= ARG_FI|RST(args|
|000032f0| 29 20 3b 20 21 41 52 47 | 5f 69 73 45 4e 44 28 61 |) ; !ARG|_isEND(a|
|00003300| 64 29 20 3b 20 41 52 47 | 5f 41 44 56 41 4e 43 45 |d) ; ARG|_ADVANCE|
|00003310| 28 61 64 29 20 29 20 7b | 0a 58 20 20 20 20 20 20 |(ad) ) {|.X |
|00003320| 20 20 20 20 20 20 20 20 | 20 20 20 20 72 65 67 69 | | regi|
|00003330| 73 74 65 72 20 63 68 61 | 72 20 63 31 20 3d 20 61 |ster cha|r c1 = a|
|00003340| 72 67 5f 63 6e 61 6d 65 | 28 61 64 29 3b 0a 58 20 |rg_cname|(ad);.X |
|00003350| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00003360| 20 72 65 67 69 73 74 65 | 72 20 63 68 61 72 20 63 | registe|r char c|
|00003370| 32 20 3d 20 2a 70 3b 0a | 58 0a 58 20 20 20 20 20 |2 = *p;.|X.X |
|00003380| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 69 66 20 | | if |
|00003390| 28 20 61 72 67 5f 74 79 | 70 65 28 61 64 29 20 3d |( arg_ty|pe(ad) =|
|000033a0| 3d 20 61 72 67 44 75 6d | 6d 79 20 29 20 20 20 63 |= argDum|my ) c|
|000033b0| 6f 6e 74 69 6e 75 65 3b | 0a 58 20 20 20 20 20 20 |ontinue;|.X |
|000033c0| 20 20 20 20 20 20 20 20 | 20 20 20 20 69 66 20 28 | | if (|
|000033d0| 20 41 52 47 5f 69 73 50 | 4f 53 4f 4e 4c 59 28 61 | ARG_isP|OSONLY(a|
|000033e0| 64 29 20 29 20 20 20 63 | 6f 6e 74 69 6e 75 65 3b |d) ) c|ontinue;|
|000033f0| 0a 58 0a 58 20 20 20 20 | 20 20 20 20 20 20 20 20 |.X.X | |
|00003400| 20 20 20 20 20 20 69 66 | 20 28 20 42 54 45 53 54 | if| ( BTEST|
|00003410| 28 63 6d 64 5f 66 6c 61 | 67 73 28 63 6d 64 29 2c |(cmd_fla|gs(cmd),|
|00003420| 20 70 61 5f 41 4e 59 43 | 41 53 45 29 20 29 20 7b | pa_ANYC|ASE) ) {|
|00003430| 0a 58 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |.X | |
|00003440| 20 20 20 20 20 20 20 63 | 31 20 3d 20 54 4f 55 50 | c|1 = TOUP|
|00003450| 50 45 52 28 20 63 31 20 | 29 3b 0a 58 20 20 20 20 |PER( c1 |);.X |
|00003460| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00003470| 20 63 32 20 3d 20 54 4f | 55 50 50 45 52 28 20 63 | c2 = TO|UPPER( c|
|00003480| 32 20 29 3b 0a 58 20 20 | 20 20 20 20 20 20 20 20 |2 );.X | |
|00003490| 20 20 20 20 20 20 20 20 | 7d 2f 2a 69 66 2a 2f 0a | |}/*if*/.|
|000034a0| 58 0a 58 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |X.X | |
|000034b0| 20 20 20 20 20 69 66 20 | 28 20 63 31 20 3d 3d 20 | if |( c1 == |
|000034c0| 63 32 20 29 20 7b 0a 58 | 20 20 20 20 20 20 20 20 |c2 ) {.X| |
|000034d0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 69 73 5f | | is_|
|000034e0| 6d 61 74 63 68 20 3d 20 | 54 52 55 45 3b 0a 58 20 |match = |TRUE;.X |
|000034f0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00003500| 20 20 20 20 62 72 65 61 | 6b 3b 0a 58 20 20 20 20 | brea|k;.X |
|00003510| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 7d 2f | | }/|
|00003520| 2a 69 66 2a 2f 0a 58 20 | 20 20 20 20 20 20 20 20 |*if*/.X | |
|00003530| 20 20 20 20 20 20 7d 0a | 58 20 20 20 20 20 20 20 | }.|X |
|00003540| 20 20 20 20 20 7d 0a 58 | 20 20 20 20 20 20 20 20 | }.X| |
|00003550| 20 20 20 20 69 66 20 28 | 20 21 69 73 5f 6d 61 74 | if (| !is_mat|
|00003560| 63 68 20 29 20 7b 0a 58 | 20 20 20 20 20 20 20 20 |ch ) {.X| |
|00003570| 20 20 20 20 20 20 20 20 | 20 20 75 73 72 65 72 72 | | usrerr|
|00003580| 28 22 25 63 25 63 20 73 | 77 69 74 63 68 20 75 6e |("%c%c s|witch un|
|00003590| 6b 6e 6f 77 6e 22 2c 20 | 4f 70 74 50 72 65 66 69 |known", |OptPrefi|
|000035a0| 78 2c 20 2a 70 2b 2b 29 | 3b 0a 58 20 20 20 20 20 |x, *p++)|;.X |
|000035b0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 70 61 72 | | par|
|000035c0| 73 65 5f 65 72 72 6f 72 | 20 3d 20 70 65 5f 53 59 |se_error| = pe_SY|
|000035d0| 4e 54 41 58 3b 0a 58 20 | 20 20 20 20 20 20 20 20 |NTAX;.X | |
|000035e0| 20 20 20 20 20 20 20 20 | 20 63 6d 64 5f 6c 69 73 | | cmd_lis|
|000035f0| 74 28 63 6d 64 29 20 3d | 20 41 52 47 44 45 53 43 |t(cmd) =| ARGDESC|
|00003600| 4e 55 4c 4c 3b 0a 58 20 | 20 20 20 20 20 20 20 20 |NULL;.X | |
|00003610| 20 20 20 20 20 20 20 20 | 20 69 66 20 28 20 21 69 | | if ( !i|
|00003620| 73 55 4e 49 58 49 53 48 | 20 20 26 26 20 20 2a 70 |sUNIXISH| && *p|
|00003630| 20 3d 3d 20 2a 73 5f 41 | 52 47 5f 53 45 50 20 29 | == *s_A|RG_SEP )|
|00003640| 20 20 70 20 2b 3d 20 73 | 74 72 6c 65 6e 28 70 29 | p += s|trlen(p)|
|00003650| 3b 0a 58 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |;.X | |
|00003660| 20 20 20 20 20 69 66 20 | 28 20 21 69 73 55 4e 49 | if |( !isUNI|
|00003670| 58 49 53 48 20 20 26 26 | 20 20 2a 70 20 3d 3d 20 |XISH &&| *p == |
|00003680| 4f 70 74 50 72 65 66 69 | 78 20 29 20 20 2b 2b 70 |OptPrefi|x ) ++p|
|00003690| 3b 0a 58 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |;.X | |
|000036a0| 20 20 20 20 20 63 6f 6e | 74 69 6e 75 65 3b 0a 58 | con|tinue;.X|
|000036b0| 20 20 20 20 20 20 20 20 | 20 20 20 20 7d 2f 2a 20 | | }/* |
|000036c0| 69 66 20 75 6e 6b 6e 6f | 77 6e 2d 6f 70 74 69 6f |if unkno|wn-optio|
|000036d0| 6e 20 2a 2f 0a 58 0a 58 | 20 20 20 20 20 20 20 20 |n */.X.X| |
|000036e0| 20 20 20 20 2f 2a 20 72 | 65 73 65 74 20 74 68 65 | /* r|eset the|
|000036f0| 20 61 72 67 75 6d 65 6e | 74 20 66 6c 61 67 73 20 | argumen|t flags |
|00003700| 2d 20 69 66 20 74 68 69 | 73 20 61 72 67 20 77 61 |- if thi|s arg wa|
|00003710| 73 20 61 6c 72 65 61 64 | 79 20 67 69 76 65 6e 2c |s alread|y given,|
|00003720| 20 73 6f 6d 65 0a 58 20 | 20 20 20 20 20 20 20 20 | some.X | |
|00003730| 20 20 20 2a 2a 20 6f 66 | 20 69 74 73 20 66 6c 61 | ** of| its fla|
|00003740| 67 73 20 6d 61 79 20 62 | 65 20 73 65 74 20 74 6f |gs may b|e set to|
|00003750| 20 69 6e 64 69 63 61 74 | 65 20 68 6f 77 20 69 74 | indicat|e how it|
|00003760| 20 77 61 73 20 67 69 76 | 65 6e 20 62 65 66 6f 72 | was giv|en befor|
|00003770| 65 2e 0a 58 20 20 20 20 | 20 20 20 20 20 20 20 20 |e..X | |
|00003780| 2a 2a 20 77 65 20 6e 65 | 65 64 20 74 6f 20 6b 6e |** we ne|ed to kn|
|00003790| 6f 77 20 68 6f 77 20 69 | 74 20 77 61 73 20 67 69 |ow how i|t was gi|
|000037a0| 76 65 6e 20 6e 6f 77 20 | 28 62 75 74 20 73 61 76 |ven now |(but sav|
|000037b0| 65 20 74 68 65 20 6f 6c | 64 20 6f 6e 65 73 0a 58 |e the ol|d ones.X|
|000037c0| 20 20 20 20 20 20 20 20 | 20 20 20 20 2a 2a 20 6a | | ** j|
|000037d0| 75 73 74 20 69 6e 20 63 | 61 73 65 20 74 68 65 20 |ust in c|ase the |
|000037e0| 6e 65 77 20 6f 6e 65 20 | 66 61 69 6c 73 29 2e 0a |new one |fails)..|
|000037f0| 58 20 20 20 20 20 20 20 | 20 20 20 20 20 2a 2f 0a |X | */.|
|00003800| 58 20 20 20 20 20 20 20 | 20 20 20 20 20 66 6c 61 |X | fla|
|00003810| 67 73 20 3d 20 61 72 67 | 5f 66 6c 61 67 73 28 61 |gs = arg|_flags(a|
|00003820| 64 29 3b 0a 58 20 20 20 | 20 20 20 20 20 20 20 20 |d);.X | |
|00003830| 20 69 66 20 28 20 41 52 | 47 5f 69 73 47 49 56 45 | if ( AR|G_isGIVE|
|00003840| 4e 28 61 64 29 20 29 20 | 7b 0a 58 20 20 20 20 20 |N(ad) ) |{.X |
|00003850| 20 20 20 20 20 20 20 20 | 20 20 42 43 4c 45 41 52 | | BCLEAR|
|00003860| 28 20 61 72 67 5f 66 6c | 61 67 73 28 61 64 29 2c |( arg_fl|ags(ad),|
|00003870| 20 41 52 47 56 41 4c 53 | 45 50 20 7c 20 41 52 47 | ARGVALS|EP | ARG|
|00003880| 4b 45 59 57 4f 52 44 20 | 29 3b 0a 58 20 20 20 20 |KEYWORD |);.X |
|00003890| 20 20 20 20 20 20 20 20 | 20 20 20 69 66 20 28 20 | | if ( |
|000038a0| 21 41 52 47 5f 69 73 4d | 55 4c 54 49 56 41 4c 28 |!ARG_isM|ULTIVAL(|
|000038b0| 61 64 29 20 29 20 20 42 | 43 4c 45 41 52 28 20 61 |ad) ) B|CLEAR( a|
|000038c0| 72 67 5f 66 6c 61 67 73 | 28 61 64 29 2c 20 41 52 |rg_flags|(ad), AR|
|000038d0| 47 56 41 4c 47 49 56 45 | 4e 20 29 3b 0a 58 20 20 |GVALGIVE|N );.X |
|000038e0| 20 20 20 20 20 20 20 20 | 20 20 7d 0a 58 0a 58 20 | | }.X.X |
|000038f0| 20 20 20 20 20 20 20 20 | 20 20 20 69 66 20 28 20 | | if ( |
|00003900| 41 52 47 5f 69 73 4d 55 | 4c 54 49 56 41 4c 28 61 |ARG_isMU|LTIVAL(a|
|00003910| 64 29 20 29 20 7b 0a 58 | 20 20 20 20 20 20 20 20 |d) ) {.X| |
|00003920| 20 20 20 20 20 20 20 63 | 6d 64 5f 6c 69 73 74 28 | c|md_list(|
|00003930| 63 6d 64 29 20 3d 20 61 | 64 3b 20 20 2f 2a 20 77 |cmd) = a|d; /* w|
|00003940| 65 20 6d 61 74 63 68 65 | 64 20 61 20 6c 69 73 74 |e matche|d a list|
|00003950| 20 28 6f 72 20 61 20 76 | 65 63 74 6f 72 29 20 2a | (or a v|ector) *|
|00003960| 2f 0a 58 20 20 20 20 20 | 20 20 20 20 20 20 20 7d |/.X | }|
|00003970| 0a 58 20 20 20 20 20 20 | 20 20 20 20 20 20 65 6c |.X | el|
|00003980| 73 65 20 7b 0a 58 20 20 | 20 20 20 20 20 20 20 20 |se {.X | |
|00003990| 20 20 20 20 20 63 6d 64 | 5f 6c 69 73 74 28 63 6d | cmd|_list(cm|
|000039a0| 64 29 20 3d 20 41 52 47 | 44 45 53 43 4e 55 4c 4c |d) = ARG|DESCNULL|
|000039b0| 3b 0a 58 20 20 20 20 20 | 20 20 20 20 20 20 20 7d |;.X | }|
|000039c0| 0a 58 0a 58 20 20 20 20 | 20 20 20 20 20 20 20 20 |.X.X | |
|000039d0| 20 20 20 2f 2a 20 6d 6f | 76 65 20 70 20 75 70 20 | /* mo|ve p up |
|000039e0| 74 6f 20 70 6f 69 6e 74 | 20 74 6f 20 74 68 65 20 |to point| to the |
|000039f0| 28 70 6f 73 73 69 62 6c | 65 29 20 76 61 6c 75 65 |(possibl|e) value|
|00003a00| 20 2a 2f 0a 58 20 20 20 | 20 20 20 20 20 20 20 20 | */.X | |
|00003a10| 20 70 2b 2b 3b 0a 58 20 | 20 20 20 20 20 20 20 20 | p++;.X | |
|00003a20| 20 20 20 69 66 20 28 20 | 21 69 73 55 4e 49 58 49 | if ( |!isUNIXI|
|00003a30| 53 48 20 20 26 26 20 20 | 2a 70 20 20 26 26 20 20 |SH && |*p && |
|00003a40| 73 74 72 63 68 72 28 73 | 5f 41 52 47 5f 53 45 50 |strchr(s|_ARG_SEP|
|00003a50| 2c 20 2a 70 29 20 29 20 | 20 2b 2b 70 3b 0a 58 0a |, *p) ) | ++p;.X.|
|00003a60| 58 20 20 20 20 20 20 20 | 20 20 20 20 20 2f 2a 20 |X | /* |
|00003a70| 69 66 20 75 73 61 67 65 | 20 2d 20 6a 75 73 74 20 |if usage| - just |
|00003a80| 70 72 69 6e 74 20 75 73 | 61 67 65 20 61 6e 64 20 |print us|age and |
|00003a90| 65 78 69 74 20 2a 2f 0a | 58 20 20 20 20 20 20 20 |exit */.|X |
|00003aa0| 20 20 20 20 20 69 66 20 | 28 61 72 67 5f 74 79 70 | if |(arg_typ|
|00003ab0| 65 28 61 64 29 20 3d 3d | 20 61 72 67 55 73 61 67 |e(ad) ==| argUsag|
|00003ac0| 65 29 20 7b 0a 58 20 20 | 20 20 20 20 20 20 20 20 |e) {.X | |
|00003ad0| 20 20 20 20 20 55 73 61 | 67 65 5f 52 65 71 75 65 | Usa|ge_Reque|
|00003ae0| 73 74 65 64 20 3d 20 54 | 52 55 45 3b 0a 58 20 20 |sted = T|RUE;.X |
|00003af0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 75 73 61 | | usa|
|00003b00| 67 65 28 61 72 67 64 29 | 3b 0a 58 20 20 20 20 20 |ge(argd)|;.X |
|00003b10| 20 20 20 20 20 20 20 20 | 20 20 65 78 69 74 28 65 | | exit(e|
|00003b20| 78 69 74 5f 55 53 41 47 | 45 29 3b 0a 58 20 20 20 |xit_USAG|E);.X |
|00003b30| 20 20 20 20 20 20 20 20 | 20 7d 0a 58 0a 58 20 20 | | }.X.X |
|00003b40| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 2f 2a 20 | | /* |
|00003b50| 41 52 47 4e 4f 56 41 4c | 73 20 61 72 65 20 73 70 |ARGNOVAL|s are sp|
|00003b60| 65 63 69 61 6c 2c 20 68 | 61 76 69 6e 67 20 6e 6f |ecial, h|aving no|
|00003b70| 20 76 61 6c 75 65 20 2a | 2f 0a 58 20 20 20 20 20 | value *|/.X |
|00003b80| 20 20 20 20 20 20 20 69 | 66 20 28 21 20 41 52 47 | i|f (! ARG|
|00003b90| 5f 69 73 56 41 4c 54 41 | 4b 45 4e 28 61 64 29 29 |_isVALTA|KEN(ad))|
|00003ba0| 20 7b 0a 58 20 20 20 20 | 20 20 20 20 20 20 20 20 | {.X | |
|00003bb0| 20 20 20 61 64 5f 6f 6b | 61 79 20 3d 20 48 41 4e | ad_ok|ay = HAN|
|00003bc0| 44 4c 45 28 61 64 2c 20 | 70 2c 20 63 6d 64 5f 66 |DLE(ad, |p, cmd_f|
|00003bd0| 6c 61 67 73 28 63 6d 64 | 29 29 3b 0a 58 0a 58 20 |lags(cmd|));.X.X |
|00003be0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 69 66 | | if|
|00003bf0| 20 28 20 21 61 64 5f 6f | 6b 61 79 20 29 20 7b 0a | ( !ad_o|kay ) {.|
|00003c00| 58 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |X | |
|00003c10| 20 20 20 61 72 67 5f 66 | 6c 61 67 73 28 61 64 29 | arg_f|lags(ad)|
|00003c20| 20 3d 20 66 6c 61 67 73 | 3b 0a 58 20 20 20 20 20 | = flags|;.X |
|00003c30| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 70 61 72 | | par|
|00003c40| 73 65 5f 65 72 72 6f 72 | 20 3d 20 70 65 5f 53 59 |se_error| = pe_SY|
|00003c50| 4e 54 41 58 3b 0a 58 20 | 20 20 20 20 20 20 20 20 |NTAX;.X | |
|00003c60| 20 20 20 20 20 20 7d 2f | 2a 69 66 2a 2f 0a 58 20 | }/|*if*/.X |
|00003c70| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 65 6c | | el|
|00003c80| 73 65 20 7b 0a 58 20 20 | 20 20 20 20 20 20 20 20 |se {.X | |
|00003c90| 20 20 20 20 20 20 20 20 | 42 53 45 54 28 20 61 72 | |BSET( ar|
|00003ca0| 67 5f 66 6c 61 67 73 28 | 61 64 29 2c 20 41 52 47 |g_flags(|ad), ARG|
|00003cb0| 47 49 56 45 4e 20 29 3b | 0a 58 20 20 20 20 20 20 |GIVEN );|.X |
|00003cc0| 20 20 20 20 20 20 20 20 | 20 20 20 20 61 64 20 3d | | ad =|
|00003cd0| 20 41 52 47 44 45 53 43 | 4e 55 4c 4c 3b 0a 58 20 | ARGDESC|NULL;.X |
|00003ce0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00003cf0| 20 69 66 20 28 20 61 64 | 5f 6f 6b 61 79 20 3c 20 | if ( ad|_okay < |
|00003d00| 30 20 29 20 20 70 20 2d | 3d 20 61 64 5f 6f 6b 61 |0 ) p -|= ad_oka|
|00003d10| 79 3b 0a 58 20 20 20 20 | 20 20 20 20 20 20 20 20 |y;.X | |
|00003d20| 20 20 20 7d 2f 2a 65 6c | 73 65 2a 2f 0a 58 0a 58 | }/*el|se*/.X.X|
|00003d30| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 69 | | i|
|00003d40| 66 20 28 20 21 69 73 55 | 4e 49 58 49 53 48 20 20 |f ( !isU|NIXISH |
|00003d50| 26 26 20 20 2a 70 20 3d | 3d 20 4f 70 74 50 72 65 |&& *p =|= OptPre|
|00003d60| 66 69 78 20 29 20 20 2b | 2b 70 3b 0a 58 20 20 20 |fix ) +|+p;.X |
|00003d70| 20 20 20 20 20 20 20 20 | 20 20 20 20 63 6f 6e 74 | | cont|
|00003d80| 69 6e 75 65 3b 0a 58 20 | 20 20 20 20 20 20 20 20 |inue;.X | |
|00003d90| 20 20 20 7d 2f 2a 69 66 | 2a 2f 0a 58 0a 58 20 20 | }/*if|*/.X.X |
|00003da0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 2f 2a 20 | | /* |
|00003db0| 6e 6f 77 20 67 65 74 20 | 74 68 65 20 72 65 61 6c |now get |the real|
|00003dc0| 20 76 61 6c 75 65 20 2a | 2f 0a 58 20 20 20 20 20 | value *|/.X |
|00003dd0| 20 20 20 20 20 20 20 69 | 66 20 28 20 21 28 2a 70 | i|f ( !(*p|
|00003de0| 29 20 29 20 7b 0a 58 20 | 20 20 20 20 20 20 20 20 |) ) {.X | |
|00003df0| 20 20 20 20 20 20 69 66 | 20 28 20 69 73 55 4e 49 | if| ( isUNI|
|00003e00| 58 49 53 48 20 29 20 20 | 70 20 3d 20 2a 61 76 2b |XISH ) |p = *av+|
|00003e10| 2b 3b 0a 58 20 20 20 20 | 20 20 20 20 20 20 20 20 |+;.X | |
|00003e20| 20 20 20 69 66 20 28 20 | 21 69 73 55 4e 49 58 49 | if ( |!isUNIXI|
|00003e30| 53 48 20 20 7c 7c 20 20 | 21 70 20 20 7c 7c 20 20 |SH || |!p || |
|00003e40| 69 73 4f 50 54 28 70 29 | 20 20 7c 7c 20 20 69 73 |isOPT(p)| || is|
|00003e50| 4b 57 44 28 70 29 20 29 | 20 7b 0a 58 20 20 20 20 |KWD(p) )| {.X |
|00003e60| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 69 66 | | if|
|00003e70| 20 28 20 41 52 47 5f 69 | 73 56 41 4c 4f 50 54 49 | ( ARG_i|sVALOPTI|
|00003e80| 4f 4e 41 4c 28 61 64 29 | 20 29 20 7b 0a 58 20 20 |ONAL(ad)| ) {.X |
|00003e90| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00003ea0| 20 20 20 42 53 45 54 28 | 20 61 72 67 5f 66 6c 61 | BSET(| arg_fla|
|00003eb0| 67 73 28 61 64 29 2c 20 | 41 52 47 47 49 56 45 4e |gs(ad), |ARGGIVEN|
|00003ec0| 20 29 3b 0a 58 20 20 20 | 20 20 20 20 20 20 20 20 | );.X | |
|00003ed0| 20 20 20 20 20 20 20 7d | 0a 58 20 20 20 20 20 20 | }|.X |
|00003ee0| 20 20 20 20 20 20 20 20 | 20 20 20 20 65 6c 73 65 | | else|
|00003ef0| 20 7b 0a 58 20 20 20 20 | 20 20 20 20 20 20 20 20 | {.X | |
|00003f00| 20 20 20 20 20 20 20 20 | 20 28 56 4f 49 44 29 20 | | (VOID) |
|00003f10| 67 65 74 5f 61 72 67 6e | 61 6d 65 28 61 72 67 5f |get_argn|ame(arg_|
|00003f20| 73 6e 61 6d 65 28 61 64 | 29 2c 20 6e 61 6d 65 29 |sname(ad|), name)|
|00003f30| 3b 0a 58 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |;.X | |
|00003f40| 20 20 20 20 20 20 20 20 | 75 73 72 65 72 72 28 20 | |usrerr( |
|00003f50| 22 25 73 20 72 65 71 75 | 69 72 65 64 20 66 6f 72 |"%s requ|ired for|
|00003f60| 20 25 63 25 63 20 66 6c | 61 67 22 2c 0a 58 20 20 | %c%c fl|ag",.X |
|00003f70| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00003f80| 20 20 20 20 20 20 20 20 | 20 20 20 6e 61 6d 65 2c | | name,|
|00003f90| 20 4f 70 74 50 72 65 66 | 69 78 2c 20 61 72 67 5f | OptPref|ix, arg_|
|00003fa0| 63 6e 61 6d 65 28 61 64 | 29 20 29 3b 0a 58 20 20 |cname(ad|) );.X |
|00003fb0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00003fc0| 20 20 20 61 72 67 5f 66 | 6c 61 67 73 28 61 64 29 | arg_f|lags(ad)|
|00003fd0| 20 3d 20 66 6c 61 67 73 | 3b 0a 58 20 20 20 20 20 | = flags|;.X |
|00003fe0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00003ff0| 70 61 72 73 65 5f 65 72 | 72 6f 72 20 3d 20 70 65 |parse_er|ror = pe|
|00004000| 5f 53 59 4e 54 41 58 3b | 0a 58 20 20 20 20 20 20 |_SYNTAX;|.X |
|00004010| 20 20 20 20 20 20 20 20 | 20 20 20 20 7d 2f 2a 65 | | }/*e|
|00004020| 6c 73 65 2a 2f 0a 58 0a | 58 20 20 20 20 20 20 20 |lse*/.X.|X |
|00004030| 20 20 20 20 20 20 20 20 | 20 20 20 69 66 20 28 20 | | if ( |
|00004040| 69 73 55 4e 49 58 49 53 | 48 20 29 20 20 61 76 2d |isUNIXIS|H ) av-|
|00004050| 2d 3b 0a 58 20 20 20 20 | 20 20 20 20 20 20 20 20 |-;.X | |
|00004060| 20 20 20 20 20 20 62 72 | 65 61 6b 3b 0a 58 20 20 | br|eak;.X |
|00004070| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 7d 2f 2a | | }/*|
|00004080| 69 66 20 61 72 67 2a 2f | 0a 58 20 20 20 20 20 20 |if arg*/|.X |
|00004090| 20 20 20 20 20 20 20 20 | 20 69 66 20 28 20 69 73 | | if ( is|
|000040a0| 55 4e 49 58 49 53 48 20 | 29 20 20 42 53 45 54 28 |UNIXISH |) BSET(|
|000040b0| 20 61 72 67 5f 66 6c 61 | 67 73 28 61 64 29 2c 20 | arg_fla|gs(ad), |
|000040c0| 41 52 47 56 41 4c 53 45 | 50 20 29 3b 0a 58 20 20 |ARGVALSE|P );.X |
|000040d0| 20 20 20 20 20 20 20 20 | 20 20 7d 2f 2a 69 66 20 | | }/*if |
|000040e0| 65 6d 70 74 79 2a 2f 0a | 58 0a 58 20 20 20 20 20 |empty*/.|X.X |
|000040f0| 20 20 20 20 20 20 20 20 | 20 20 2f 2a 20 74 72 79 | | /* try|
|00004100| 20 74 6f 20 63 6f 6e 76 | 65 72 74 20 74 68 65 20 | to conv|ert the |
|00004110| 74 79 70 65 20 2a 2f 0a | 58 20 20 20 20 20 20 20 |type */.|X |
|00004120| 20 20 20 20 20 61 64 5f | 6f 6b 61 79 20 3d 20 48 | ad_|okay = H|
|00004130| 41 4e 44 4c 45 28 61 64 | 2c 20 70 2c 20 63 6d 64 |ANDLE(ad|, p, cmd|
|00004140| 5f 66 6c 61 67 73 28 63 | 6d 64 29 29 3b 0a 58 20 |_flags(c|md));.X |
|00004150| 20 20 20 20 20 20 20 20 | 20 20 20 69 66 20 28 20 | | if ( |
|00004160| 21 61 64 5f 6f 6b 61 79 | 20 29 20 7b 0a 58 20 20 |!ad_okay| ) {.X |
|00004170| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 61 72 67 | | arg|
|00004180| 5f 66 6c 61 67 73 28 61 | 64 29 20 3d 20 66 6c 61 |_flags(a|d) = fla|
|00004190| 67 73 3b 0a 58 20 20 20 | 20 20 20 20 20 20 20 20 |gs;.X | |
|000041a0| 20 20 20 20 70 61 72 73 | 65 5f 65 72 72 6f 72 20 | pars|e_error |
|000041b0| 3d 20 70 65 5f 53 59 4e | 54 41 58 3b 0a 58 20 20 |= pe_SYN|TAX;.X |
|000041c0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 70 20 2b | | p +|
|000041d0| 3d 20 73 74 72 6c 65 6e | 28 70 29 3b 0a 58 20 20 |= strlen|(p);.X |
|000041e0| 20 20 20 20 20 20 20 20 | 20 20 7d 2f 2a 69 66 2a | | }/*if*|
|000041f0| 2f 0a 58 20 20 20 20 20 | 20 20 20 20 20 20 20 65 |/.X | e|
|00004200| 6c 73 65 20 7b 0a 58 20 | 20 20 20 20 20 20 20 20 |lse {.X | |
|00004210| 20 20 20 20 20 20 42 53 | 45 54 28 20 61 72 67 5f | BS|ET( arg_|
|00004220| 66 6c 61 67 73 28 61 64 | 29 2c 20 41 52 47 47 49 |flags(ad|), ARGGI|
|00004230| 56 45 4e 20 7c 20 41 52 | 47 56 41 4c 47 49 56 45 |VEN | AR|GVALGIVE|
|00004240| 4e 20 29 3b 0a 58 20 20 | 20 20 20 20 20 20 20 20 |N );.X | |
|00004250| 20 20 20 20 20 69 66 20 | 28 20 69 73 55 4e 49 58 | if |( isUNIX|
|00004260| 49 53 48 20 20 26 26 20 | 20 61 64 5f 6f 6b 61 79 |ISH && | ad_okay|
|00004270| 20 3c 20 30 20 20 26 26 | 20 20 21 41 52 47 5f 69 | < 0 &&| !ARG_i|
|00004280| 73 56 41 4c 53 45 50 41 | 52 41 54 45 28 61 64 29 |sVALSEPA|RATE(ad)|
|00004290| 20 29 20 7b 0a 58 20 20 | 20 20 20 20 20 20 20 20 | ) {.X | |
|000042a0| 20 20 20 20 20 20 20 20 | 70 20 2d 3d 20 61 64 5f | |p -= ad_|
|000042b0| 6f 6b 61 79 3b 0a 58 20 | 20 20 20 20 20 20 20 20 |okay;.X | |
|000042c0| 20 20 20 20 20 20 7d 0a | 58 20 20 20 20 20 20 20 | }.|X |
|000042d0| 20 20 20 20 20 20 20 20 | 65 6c 73 65 20 7b 0a 58 | |else {.X|
|000042e0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|000042f0| 20 20 70 20 2b 3d 20 73 | 74 72 6c 65 6e 28 70 29 | p += s|trlen(p)|
|00004300| 3b 0a 58 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |;.X | |
|00004310| 20 20 7d 0a 58 20 20 20 | 20 20 20 20 20 20 20 20 | }.X | |
|00004320| 20 7d 2f 2a 65 6c 73 65 | 2a 2f 0a 58 0a 58 20 20 | }/*else|*/.X.X |
|00004330| 20 20 20 20 20 20 20 20 | 20 20 69 66 20 28 20 21 | | if ( !|
|00004340| 69 73 55 4e 49 58 49 53 | 48 20 20 26 26 20 20 2a |isUNIXIS|H && *|
|00004350| 70 20 3d 3d 20 4f 70 74 | 50 72 65 66 69 78 20 29 |p == Opt|Prefix )|
|00004360| 20 20 2b 2b 70 3b 0a 58 | 20 20 20 20 20 20 20 20 | ++p;.X| |
|00004370| 20 7d 2f 2a 77 68 69 6c | 65 2a 2f 0a 58 20 20 20 | }/*whil|e*/.X |
|00004380| 20 20 20 7d 2f 2a 65 6c | 69 66 20 6f 70 74 69 6f | }/*el|if optio|
|00004390| 6e 2a 2f 0a 58 20 20 20 | 20 20 20 65 6c 73 65 20 |n*/.X | else |
|000043a0| 7b 0a 58 20 20 20 20 20 | 20 20 20 20 20 20 20 2f |{.X | /|
|000043b0| 2a 20 70 61 72 73 69 6e | 67 20 61 20 6c 69 73 74 |* parsin|g a list|
|000043c0| 20 6f 66 20 61 72 67 75 | 6d 65 6e 74 73 20 2a 2f | of argu|ments */|
|000043d0| 0a 58 20 20 20 20 20 20 | 20 20 20 69 66 20 28 20 |.X | if ( |
|000043e0| 63 6d 64 5f 6c 69 73 74 | 28 63 6d 64 29 20 29 20 |cmd_list|(cmd) ) |
|000043f0| 7b 20 20 2f 2a 20 77 65 | 27 72 65 20 69 6e 20 74 |{ /* we|'re in t|
|00004400| 68 65 20 6d 69 64 64 6c | 65 20 6f 66 20 61 20 6c |he middl|e of a l|
|00004410| 69 73 74 2f 76 65 63 74 | 6f 72 20 2a 2f 0a 58 20 |ist/vect|or */.X |
|00004420| 20 20 20 20 20 20 20 20 | 20 20 20 61 64 20 3d 20 | | ad = |
|00004430| 63 6d 64 5f 6c 69 73 74 | 28 63 6d 64 29 3b 0a 58 |cmd_list|(cmd);.X|
|00004440| 20 20 20 20 20 20 20 20 | 20 20 20 20 66 6c 61 67 | | flag|
|00004450| 73 20 3d 20 61 72 67 5f | 66 6c 61 67 73 28 61 64 |s = arg_|flags(ad|
|00004460| 29 3b 20 20 2f 2a 20 72 | 65 73 65 74 20 66 6c 61 |); /* r|eset fla|
|00004470| 67 73 20 66 6f 72 20 74 | 68 69 73 20 61 72 67 76 |gs for t|his argv|
|00004480| 2d 69 74 65 6d 20 2a 2f | 0a 58 20 20 20 20 20 20 |-item */|.X |
|00004490| 20 20 20 20 20 20 69 66 | 20 28 20 41 52 47 5f 69 | if| ( ARG_i|
|000044a0| 73 47 49 56 45 4e 28 61 | 64 29 20 29 20 7b 0a 58 |sGIVEN(a|d) ) {.X|
|000044b0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 42 | | B|
|000044c0| 43 4c 45 41 52 28 20 61 | 72 67 5f 66 6c 61 67 73 |CLEAR( a|rg_flags|
|000044d0| 28 61 64 29 2c 20 41 52 | 47 56 41 4c 53 45 50 20 |(ad), AR|GVALSEP |
|000044e0| 7c 20 41 52 47 4b 45 59 | 57 4f 52 44 20 29 3b 0a || ARGKEY|WORD );.|
|000044f0| 58 20 20 20 20 20 20 20 | 20 20 20 20 20 7d 0a 58 |X | }.X|
|00004500| 0a 58 20 20 20 20 20 20 | 20 20 20 20 20 20 42 53 |.X | BS|
|00004510| 45 54 28 20 61 72 67 5f | 66 6c 61 67 73 28 61 64 |ET( arg_|flags(ad|
|00004520| 29 2c 20 41 52 47 56 41 | 4c 53 45 50 20 29 3b 0a |), ARGVA|LSEP );.|
|00004530| 58 0a 58 20 20 20 20 20 | 20 20 20 20 20 20 20 61 |X.X | a|
|00004540| 64 5f 6f 6b 61 79 20 3d | 20 48 41 4e 44 4c 45 28 |d_okay =| HANDLE(|
|00004550| 61 64 2c 20 70 2c 20 63 | 6d 64 5f 66 6c 61 67 73 |ad, p, c|md_flags|
|00004560| 28 63 6d 64 29 29 3b 0a | 58 20 20 20 20 20 20 20 |(cmd));.|X |
|00004570| 20 20 20 20 20 69 66 20 | 28 20 21 61 64 5f 6f 6b | if |( !ad_ok|
|00004580| 61 79 20 29 20 7b 0a 58 | 20 20 20 20 20 20 20 20 |ay ) {.X| |
|00004590| 20 20 20 20 20 20 20 61 | 72 67 5f 66 6c 61 67 73 | a|rg_flags|
|000045a0| 28 61 64 29 20 3d 20 66 | 6c 61 67 73 3b 0a 58 20 |(ad) = f|lags;.X |
|000045b0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 70 61 | | pa|
|000045c0| 72 73 65 5f 65 72 72 6f | 72 20 3d 20 70 65 5f 53 |rse_erro|r = pe_S|
|000045d0| 59 4e 54 41 58 3b 0a 58 | 20 20 20 20 20 20 20 20 |YNTAX;.X| |
|000045e0| 20 20 20 20 7d 0a 58 0a | 58 20 20 20 20 20 20 20 | }.X.|X |
|000045f0| 20 20 20 20 20 63 6f 6e | 74 69 6e 75 65 3b 0a 58 | con|tinue;.X|
|00004600| 20 20 20 20 20 20 20 20 | 20 7d 0a 58 20 20 20 20 | | }.X |
|00004610| 20 20 20 20 20 20 20 20 | 2f 2a 20 70 6f 73 69 74 | |/* posit|
|00004620| 69 6f 6e 61 6c 20 61 72 | 67 75 6d 65 6e 74 20 2a |ional ar|gument *|
|00004630| 2f 0a 58 20 20 20 20 20 | 20 20 20 20 69 73 5f 6d |/.X | is_m|
|00004640| 61 74 63 68 20 3d 20 46 | 41 4c 53 45 3b 0a 58 20 |atch = F|ALSE;.X |
|00004650| 20 20 20 20 20 20 20 20 | 66 6f 72 20 28 61 72 67 | |for (arg|
|00004660| 73 20 3d 20 61 72 67 64 | 3b 20 61 72 67 73 20 20 |s = argd|; args |
|00004670| 26 26 20 20 21 69 73 5f | 6d 61 74 63 68 20 3b 20 |&& !is_|match ; |
|00004680| 61 72 67 73 20 3d 20 63 | 6d 64 5f 64 65 66 61 72 |args = c|md_defar|
|00004690| 67 73 28 61 72 67 73 29 | 29 20 7b 0a 58 20 20 20 |gs(args)|) {.X |
|000046a0| 20 20 20 20 20 20 20 20 | 20 66 6f 72 20 28 20 61 | | for ( a|
|000046b0| 64 20 3d 20 41 52 47 5f | 46 49 52 53 54 28 61 72 |d = ARG_|FIRST(ar|
|000046c0| 67 73 29 20 3b 20 21 41 | 52 47 5f 69 73 45 4e 44 |gs) ; !A|RG_isEND|
|000046d0| 28 61 64 29 20 3b 20 41 | 52 47 5f 41 44 56 41 4e |(ad) ; A|RG_ADVAN|
|000046e0| 43 45 28 61 64 29 20 29 | 20 7b 0a 58 20 20 20 20 |CE(ad) )| {.X |
|000046f0| 20 20 20 20 20 20 20 20 | 20 20 20 69 66 20 28 61 | | if (a|
|00004700| 72 67 5f 74 79 70 65 28 | 61 64 29 20 3d 3d 20 61 |rg_type(|ad) == a|
|00004710| 72 67 44 75 6d 6d 79 29 | 20 20 63 6f 6e 74 69 6e |rgDummy)| contin|
|00004720| 75 65 3b 0a 58 0a 58 20 | 20 20 20 20 20 20 20 20 |ue;.X.X | |
|00004730| 20 20 20 20 20 20 69 66 | 20 28 20 41 52 47 5f 69 | if| ( ARG_i|
|00004740| 73 50 4f 53 49 54 49 4f | 4e 41 4c 28 61 64 29 20 |sPOSITIO|NAL(ad) |
|00004750| 20 26 26 0a 58 20 20 20 | 20 20 20 20 20 20 20 20 | &&.X | |
|00004760| 20 20 20 20 20 20 20 20 | 20 28 21 41 52 47 5f 69 | | (!ARG_i|
|00004770| 73 47 49 56 45 4e 28 61 | 64 29 20 7c 7c 20 20 41 |sGIVEN(a|d) || A|
|00004780| 52 47 5f 69 73 4d 55 4c | 54 49 56 41 4c 28 61 64 |RG_isMUL|TIVAL(ad|
|00004790| 29 29 20 29 20 7b 0a 58 | 20 20 20 20 20 20 20 20 |)) ) {.X| |
|000047a0| 20 20 20 20 20 20 20 20 | 20 20 69 73 5f 6d 61 74 | | is_mat|
|000047b0| 63 68 20 3d 20 54 52 55 | 45 3b 0a 58 20 20 20 20 |ch = TRU|E;.X |
|000047c0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 62 72 | | br|
|000047d0| 65 61 6b 3b 0a 58 20 20 | 20 20 20 20 20 20 20 20 |eak;.X | |
|000047e0| 20 20 20 20 20 7d 2f 2a | 69 66 2a 2f 0a 58 20 20 | }/*|if*/.X |
|000047f0| 20 20 20 20 20 20 20 20 | 20 20 7d 0a 58 20 20 20 | | }.X |
|00004800| 20 20 20 20 20 20 7d 0a | 58 0a 58 20 20 20 20 20 | }.|X.X |
|00004810| 20 20 20 20 69 66 20 28 | 20 21 69 73 5f 6d 61 74 | if (| !is_mat|
|00004820| 63 68 20 29 20 7b 0a 58 | 20 20 20 20 20 20 20 20 |ch ) {.X| |
|00004830| 20 20 20 20 75 73 72 65 | 72 72 28 22 74 6f 6f 20 | usre|rr("too |
|00004840| 6d 61 6e 79 20 61 72 67 | 75 6d 65 6e 74 73 22 29 |many arg|uments")|
|00004850| 3b 0a 58 20 20 20 20 20 | 20 20 20 20 20 20 20 70 |;.X | p|
|00004860| 61 72 73 65 5f 65 72 72 | 6f 72 20 3d 20 70 65 5f |arse_err|or = pe_|
|00004870| 53 59 4e 54 41 58 3b 0a | 58 20 20 20 20 20 20 20 |SYNTAX;.|X |
|00004880| 20 20 20 20 20 63 6f 6e | 74 69 6e 75 65 3b 0a 58 | con|tinue;.X|
|00004890| 20 20 20 20 20 20 20 20 | 20 7d 0a 58 0a 58 20 20 | | }.X.X |
|000048a0| 20 20 20 20 20 20 20 66 | 6c 61 67 73 20 3d 20 61 | f|lags = a|
|000048b0| 72 67 5f 66 6c 61 67 73 | 28 61 64 29 3b 0a 58 20 |rg_flags|(ad);.X |
|000048c0| 20 20 20 20 20 20 20 20 | 69 66 20 28 20 41 52 47 | |if ( ARG|
|000048d0| 5f 69 73 47 49 56 45 4e | 28 61 64 29 20 29 20 7b |_isGIVEN|(ad) ) {|
|000048e0| 0a 58 20 20 20 20 20 20 | 20 20 20 20 20 20 42 43 |.X | BC|
|000048f0| 4c 45 41 52 28 20 61 72 | 67 5f 66 6c 61 67 73 28 |LEAR( ar|g_flags(|
|00004900| 61 64 29 2c 20 41 52 47 | 56 41 4c 53 45 50 20 7c |ad), ARG|VALSEP ||
|00004910| 20 41 52 47 4b 45 59 57 | 4f 52 44 20 29 3b 0a 58 | ARGKEYW|ORD );.X|
|00004920| 20 20 20 20 20 20 20 20 | 20 20 20 20 69 66 20 28 | | if (|
|00004930| 20 21 41 52 47 5f 69 73 | 4d 55 4c 54 49 56 41 4c | !ARG_is|MULTIVAL|
|00004940| 28 61 64 29 20 29 20 20 | 42 43 4c 45 41 52 28 20 |(ad) ) |BCLEAR( |
|00004950| 61 72 67 5f 66 6c 61 67 | 73 28 61 64 29 2c 20 41 |arg_flag|s(ad), A|
|00004960| 52 47 56 41 4c 47 49 56 | 45 4e 20 29 3b 0a 58 20 |RGVALGIV|EN );.X |
|00004970| 20 20 20 20 20 20 20 20 | 7d 0a 58 0a 58 20 20 20 | |}.X.X |
|00004980| 20 20 20 20 20 20 69 66 | 20 28 20 41 52 47 5f 69 | if| ( ARG_i|
|00004990| 73 4d 55 4c 54 49 56 41 | 4c 28 61 64 29 20 29 20 |sMULTIVA|L(ad) ) |
|000049a0| 7b 0a 58 20 20 20 20 20 | 20 20 20 20 20 20 20 63 |{.X | c|
|000049b0| 6d 64 5f 6c 69 73 74 28 | 63 6d 64 29 20 3d 20 61 |md_list(|cmd) = a|
|000049c0| 64 3b 0a 58 20 20 20 20 | 20 20 20 20 20 7d 0a 58 |d;.X | }.X|
|000049d0| 0a 58 20 20 20 20 20 20 | 20 20 20 2f 2a 20 69 66 |.X | /* if|
|000049e0| 20 46 4c 41 47 53 31 53 | 54 20 69 73 20 73 65 74 | FLAGS1S|T is set|
|000049f0| 20 74 68 65 6e 20 66 69 | 72 73 74 20 70 6f 73 69 | then fi|rst posi|
|00004a00| 74 69 6f 6e 61 6c 20 6d | 61 72 6b 73 20 65 6e 64 |tional m|arks end|
|00004a10| 2d 6f 66 2d 66 6c 61 67 | 73 20 2a 2f 0a 58 20 20 |-of-flag|s */.X |
|00004a20| 20 20 20 20 20 20 20 69 | 66 20 28 20 42 54 45 53 | i|f ( BTES|
|00004a30| 54 28 63 6d 64 5f 66 6c | 61 67 73 28 63 6d 64 29 |T(cmd_fl|ags(cmd)|
|00004a40| 2c 20 70 61 5f 46 4c 41 | 47 53 31 53 54 29 20 29 |, pa_FLA|GS1ST) )|
|00004a50| 20 7b 0a 58 20 20 20 20 | 20 20 20 20 20 20 20 20 | {.X | |
|00004a60| 42 53 45 54 28 20 63 6d | 64 5f 73 74 61 74 65 28 |BSET( cm|d_state(|
|00004a70| 63 6d 64 29 2c 20 70 73 | 5f 4e 4f 46 4c 41 47 53 |cmd), ps|_NOFLAGS|
|00004a80| 20 29 3b 0a 58 20 20 20 | 20 20 20 20 20 20 7d 0a | );.X | }.|
|00004a90| 58 0a 58 20 20 20 20 20 | 20 20 20 20 42 53 45 54 |X.X | BSET|
|00004aa0| 28 20 61 72 67 5f 66 6c | 61 67 73 28 61 64 29 2c |( arg_fl|ags(ad),|
|00004ab0| 20 41 52 47 56 41 4c 53 | 45 50 20 29 3b 0a 58 0a | ARGVALS|EP );.X.|
|00004ac0| 58 20 20 20 20 20 20 20 | 20 20 20 20 20 2f 2a 20 |X | /* |
|00004ad0| 74 72 79 20 74 6f 20 63 | 6f 6e 76 65 72 74 20 2a |try to c|onvert *|
|00004ae0| 2f 0a 58 20 20 20 20 20 | 20 20 20 20 61 64 5f 6f |/.X | ad_o|
|00004af0| 6b 61 79 20 3d 20 48 41 | 4e 44 4c 45 28 61 64 2c |kay = HA|NDLE(ad,|
|00004b00| 20 70 2c 20 63 6d 64 5f | 66 6c 61 67 73 28 63 6d | p, cmd_|flags(cm|
|00004b10| 64 29 29 3b 0a 58 20 20 | 20 20 20 20 20 20 20 69 |d));.X | i|
|00004b20| 66 20 28 20 21 61 64 5f | 6f 6b 61 79 20 29 20 7b |f ( !ad_|okay ) {|
|00004b30| 0a 58 20 20 20 20 20 20 | 20 20 20 20 20 20 61 72 |.X | ar|
|00004b40| 67 5f 66 6c 61 67 73 28 | 61 64 29 20 3d 20 66 6c |g_flags(|ad) = fl|
|00004b50| 61 67 73 3b 0a 58 20 20 | 20 20 20 20 20 20 20 20 |ags;.X | |
|00004b60| 20 20 70 61 72 73 65 5f | 65 72 72 6f 72 20 3d 20 | parse_|error = |
|00004b70| 70 65 5f 53 59 4e 54 41 | 58 3b 0a 58 20 20 20 20 |pe_SYNTA|X;.X |
|00004b80| 20 20 20 20 20 7d 0a 58 | 20 20 20 20 20 20 20 20 | }.X| |
|00004b90| 20 65 6c 73 65 20 7b 0a | 58 20 20 20 20 20 20 20 | else {.|X |
|00004ba0| 20 20 20 20 20 42 53 45 | 54 28 20 61 72 67 5f 66 | BSE|T( arg_f|
|00004bb0| 6c 61 67 73 28 61 64 29 | 2c 20 41 52 47 47 49 56 |lags(ad)|, ARGGIV|
|00004bc0| 45 4e 20 7c 20 41 52 47 | 56 41 4c 47 49 56 45 4e |EN | ARG|VALGIVEN|
|00004bd0| 20 29 3b 0a 58 20 20 20 | 20 20 20 20 20 20 7d 0a | );.X | }.|
|00004be0| 58 20 20 20 20 20 20 7d | 2f 2a 65 6c 73 65 2a 2f |X }|/*else*/|
|00004bf0| 0a 58 20 20 20 7d 2f 2a | 77 68 69 6c 65 2a 2f 0a |.X }/*|while*/.|
|00004c00| 58 0a 58 20 20 20 72 65 | 74 75 72 6e 20 20 70 61 |X.X re|turn pa|
|00004c10| 72 73 65 5f 65 72 72 6f | 72 3b 0a 58 7d 0a 58 0a |rse_erro|r;.X}.X.|
|00004c20| 58 0a 58 2f 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |X.X/****|********|
|00004c30| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00004c40| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00004c50| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00004c60| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 0a |********|*******.|
|00004c70| 58 2a 2a 20 5e 46 55 4e | 43 54 49 4f 4e 3a 20 66 |X** ^FUN|CTION: f|
|00004c80| 6d 74 61 72 67 20 2d 20 | 66 6f 72 6d 61 74 20 63 |mtarg - |format c|
|00004c90| 6f 6d 6d 61 6e 64 2d 61 | 72 67 75 6d 65 6e 74 20 |ommand-a|rgument |
|00004ca0| 73 79 6e 74 61 78 0a 58 | 2a 2a 0a 58 2a 2a 20 5e |syntax.X|**.X** ^|
|00004cb0| 53 59 4e 4f 50 53 49 53 | 3a 0a 58 2a 2f 0a 58 23 |SYNOPSIS|:.X*/.X#|
|00004cc0| 69 66 6e 64 65 66 20 5f | 5f 41 4e 53 49 5f 43 5f |ifndef _|_ANSI_C_|
|00004cd0| 5f 0a 58 20 20 20 73 74 | 61 74 69 63 20 69 6e 74 |_.X st|atic int|
|00004ce0| 20 66 6d 74 61 72 67 28 | 20 61 64 2c 20 62 75 66 | fmtarg(| ad, buf|
|00004cf0| 2c 20 75 73 67 66 6c 61 | 67 73 20 29 0a 58 2f 2a |, usgfla|gs ).X/*|
|00004d00| 0a 58 2a 2a 20 5e 50 41 | 52 41 4d 45 54 45 52 53 |.X** ^PA|RAMETERS|
|00004d10| 3a 0a 58 2a 2f 0a 58 20 | 20 20 41 52 47 44 45 53 |:.X*/.X | ARGDES|
|00004d20| 43 20 2a 61 64 3b 0a 58 | 2f 2a 20 20 20 20 2d 2d |C *ad;.X|/* --|
|00004d30| 20 70 6f 69 6e 74 65 72 | 20 74 6f 20 74 68 65 20 | pointer| to the |
|00004d40| 61 72 67 75 6d 65 6e 74 | 20 74 6f 20 66 6f 72 6d |argument| to form|
|00004d50| 61 74 0a 58 2a 2f 0a 58 | 20 20 20 63 68 61 72 20 |at.X*/.X| char |
|00004d60| 2a 62 75 66 3b 0a 58 2f | 2a 20 20 20 20 2d 2d 20 |*buf;.X/|* -- |
|00004d70| 63 68 61 72 61 63 74 65 | 72 20 62 75 66 66 65 72 |characte|r buffer|
|00004d80| 20 74 6f 20 68 6f 6c 64 | 20 74 68 65 20 66 6f 72 | to hold| the for|
|00004d90| 6d 61 74 74 65 64 20 72 | 65 73 75 6c 74 0a 58 2a |matted r|esult.X*|
|00004da0| 2f 0a 58 20 20 20 61 72 | 67 4d 61 73 6b 5f 74 20 |/.X ar|gMask_t |
|00004db0| 75 73 67 66 6c 61 67 73 | 3b 0a 58 2f 2a 20 20 20 |usgflags|;.X/* |
|00004dc0| 20 2d 2d 20 73 65 74 20 | 6f 66 20 62 69 74 6d 61 | -- set |of bitma|
|00004dd0| 73 6b 73 20 63 6f 72 72 | 65 73 70 6f 6e 64 69 6e |sks corr|espondin|
|00004de0| 67 20 74 6f 20 74 68 65 | 20 76 61 6c 75 65 20 6f |g to the| value o|
|00004df0| 66 20 74 68 65 20 75 73 | 65 72 27 73 20 55 53 41 |f the us|er's USA|
|00004e00| 47 45 43 4e 54 4c 0a 58 | 2a 2a 20 20 20 20 20 20 |GECNTL.X|** |
|00004e10| 20 65 6e 76 69 72 6f 6e | 6d 65 6e 74 20 76 61 72 | environ|ment var|
|00004e20| 69 61 62 6c 65 0a 58 2a | 2f 0a 58 23 65 6e 64 69 |iable.X*|/.X#endi|
|00004e30| 66 20 20 2f 2a 20 21 5f | 5f 41 4e 53 49 5f 43 5f |f /* !_|_ANSI_C_|
|00004e40| 5f 20 2a 2f 0a 58 0a 58 | 2f 2a 20 5e 44 45 53 43 |_ */.X.X|/* ^DESC|
|00004e50| 52 49 50 54 49 4f 4e 3a | 0a 58 2a 2a 20 20 20 20 |RIPTION:|.X** |
|00004e60| 46 6d 74 61 72 67 20 77 | 69 6c 6c 20 64 65 74 65 |Fmtarg w|ill dete|
|00004e70| 72 6d 69 6e 65 20 74 68 | 65 20 70 72 6f 70 65 72 |rmine th|e proper|
|00004e80| 20 63 6f 6d 6d 61 6e 64 | 2d 6c 69 6e 65 20 73 79 | command|-line sy|
|00004e90| 6e 74 61 78 20 66 6f 72 | 20 74 68 65 0a 58 2a 2a |ntax for| the.X**|
|00004ea0| 20 20 20 20 67 69 76 65 | 6e 20 61 72 67 75 6d 65 | give|n argume|
|00004eb0| 6e 74 20 61 6e 64 20 77 | 72 69 74 65 20 74 68 65 |nt and w|rite the|
|00004ec0| 20 72 65 73 75 6c 74 20 | 74 6f 20 74 68 65 20 67 | result |to the g|
|00004ed0| 69 76 65 6e 20 62 75 66 | 66 65 72 2e 0a 58 2a 2a |iven buf|fer..X**|
|00004ee0| 0a 58 2a 2a 20 5e 52 45 | 51 55 49 52 45 4d 45 4e |.X** ^RE|QUIREMEN|
|00004ef0| 54 53 3a 0a 58 2a 2a 20 | 20 20 20 62 75 66 20 6d |TS:.X** | buf m|
|00004f00| 75 73 74 20 62 65 20 6c | 61 72 67 65 20 65 6e 6f |ust be l|arge eno|
|00004f10| 75 67 68 20 74 6f 20 68 | 6f 6c 64 20 74 68 65 20 |ugh to h|old the |
|00004f20| 66 6f 72 6d 61 74 74 65 | 64 20 72 65 73 75 6c 74 |formatte|d result|
|00004f30| 20 28 31 30 30 20 63 68 | 61 72 61 63 74 65 72 73 | (100 ch|aracters|
|00004f40| 0a 58 2a 2a 20 20 20 20 | 73 68 6f 75 6c 64 20 64 |.X** |should d|
|00004f50| 6f 20 74 68 65 20 74 72 | 69 63 6b 29 2e 0a 58 2a |o the tr|ick)..X*|
|00004f60| 2a 0a 58 2a 2a 20 5e 53 | 49 44 45 2d 45 46 46 45 |*.X** ^S|IDE-EFFE|
|00004f70| 43 54 53 3a 0a 58 2a 2a | 20 20 20 20 62 75 66 20 |CTS:.X**| buf |
|00004f80| 69 73 20 6f 76 65 72 77 | 72 69 74 74 65 6e 2e 0a |is overw|ritten..|
|00004f90| 58 2a 2a 0a 58 2a 2a 20 | 5e 52 45 54 55 52 4e 2d |X**.X** |^RETURN-|
|00004fa0| 56 41 4c 55 45 3a 0a 58 | 2a 2a 20 20 20 20 54 68 |VALUE:.X|** Th|
|00004fb0| 65 20 6e 75 6d 62 65 72 | 20 6f 66 20 70 72 69 6e |e number| of prin|
|00004fc0| 74 61 62 6c 65 20 63 68 | 61 72 61 63 74 65 72 73 |table ch|aracters|
|00004fd0| 20 69 6e 20 74 68 65 20 | 61 72 67 75 6d 65 6e 74 | in the |argument|
|00004fe0| 2d 73 79 6e 74 61 78 2d | 73 74 72 69 6e 67 0a 58 |-syntax-|string.X|
|00004ff0| 2a 2a 0a 58 2a 2a 20 5e | 41 4c 47 4f 52 49 54 48 |**.X** ^|ALGORITH|
|00005000| 4d 3a 0a 58 2a 2a 20 20 | 20 20 50 72 69 6e 74 20 |M:.X** | Print |
|00005010| 61 72 67 75 6d 65 6e 74 | 20 75 73 61 67 65 20 62 |argument| usage b|
|00005020| 61 73 65 64 20 6f 6e 20 | 77 68 65 74 68 65 72 20 |ased on |whether |
|00005030| 6f 72 20 6e 6f 74 20 74 | 68 65 20 61 72 67 75 6d |or not t|he argum|
|00005040| 65 6e 74 20 69 73 0a 58 | 2a 2a 20 20 20 20 70 6f |ent is.X|** po|
|00005050| 73 69 74 69 6f 6e 61 6c | 2c 20 68 69 64 64 65 6e |sitional|, hidden|
|00005060| 2c 20 6d 75 6c 74 69 2d | 76 61 6c 75 65 64 20 28 |, multi-|valued (|
|00005070| 6c 69 73 74 20 6f 72 20 | 76 65 63 74 6f 72 29 2c |list or |vector),|
|00005080| 20 65 74 63 20 2e 2e 2e | 2e 0a 58 2a 2a 20 20 20 | etc ...|..X** |
|00005090| 20 4f 70 74 69 6f 6e 61 | 6c 20 61 72 67 75 6d 65 | Optiona|l argume|
|000050a0| 6e 74 73 20 61 6e 64 20 | 76 61 6c 75 65 73 20 61 |nts and |values a|
|000050b0| 72 65 20 65 6e 63 6c 6f | 73 65 64 20 69 6e 20 73 |re enclo|sed in s|
|000050c0| 71 75 61 72 65 20 62 72 | 61 63 65 73 2e 0a 58 2a |quare br|aces..X*|
|000050d0| 2a 0a 58 2a 2a 20 20 20 | 20 41 6e 79 20 73 79 6e |*.X** | Any syn|
|000050e0| 74 61 78 20 62 69 61 73 | 65 73 20 72 65 66 6c 65 |tax bias|es refle|
|000050f0| 63 74 65 64 20 69 6e 20 | 75 73 67 66 6c 61 67 73 |cted in |usgflags|
|00005100| 20 77 69 6c 6c 20 62 65 | 20 75 73 65 64 2e 0a 58 | will be| used..X|
|00005110| 2a 2a 2a 5e 5e 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |***^^***|********|
|00005120| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00005130| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00005140| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00005150| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2f 0a 58 23 69 |********|***/.X#i|
|00005160| 66 64 65 66 20 5f 5f 41 | 4e 53 49 5f 43 5f 5f 0a |fdef __A|NSI_C__.|
|00005170| 58 20 20 20 73 74 61 74 | 69 63 20 69 6e 74 20 66 |X stat|ic int f|
|00005180| 6d 74 61 72 67 28 20 63 | 6f 6e 73 74 20 41 52 47 |mtarg( c|onst ARG|
|00005190| 44 45 53 43 20 2a 61 64 | 2c 20 63 68 61 72 20 2a |DESC *ad|, char *|
|000051a0| 62 75 66 2c 20 61 72 67 | 4d 61 73 6b 5f 74 20 75 |buf, arg|Mask_t u|
|000051b0| 73 67 66 6c 61 67 73 20 | 29 0a 58 23 65 6e 64 69 |sgflags |).X#endi|
|000051c0| 66 0a 58 7b 0a 58 20 20 | 20 2f 2a 20 62 75 66 20 |f.X{.X | /* buf |
|000051d0| 6d 75 73 74 20 61 6c 72 | 65 61 64 79 20 62 65 20 |must alr|eady be |
|000051e0| 6c 61 72 67 65 20 65 6e | 6f 75 67 68 20 2a 2f 0a |large en|ough */.|
|000051f0| 58 20 20 20 63 68 61 72 | 20 2a 70 6f 73 3b 0a 58 |X char| *pos;.X|
|00005200| 20 20 20 61 72 67 4e 61 | 6d 65 5f 74 20 20 20 6e | argNa|me_t n|
|00005210| 61 6d 65 2c 20 6b 65 79 | 77 6f 72 64 3b 0a 58 0a |ame, key|word;.X.|
|00005220| 58 20 20 20 28 56 4f 49 | 44 29 20 67 65 74 5f 61 |X (VOI|D) get_a|
|00005230| 72 67 6e 61 6d 65 28 20 | 61 72 67 5f 73 6e 61 6d |rgname( |arg_snam|
|00005240| 65 28 61 64 29 2c 20 6e | 61 6d 65 20 29 3b 0a 58 |e(ad), n|ame );.X|
|00005250| 0a 58 20 20 20 69 66 20 | 28 41 52 47 5f 69 73 50 |.X if |(ARG_isP|
|00005260| 4f 53 49 54 49 4f 4e 41 | 4c 28 61 64 29 29 20 7b |OSITIONA|L(ad)) {|
|00005270| 0a 58 20 20 20 20 20 20 | 73 70 72 69 6e 74 66 28 |.X |sprintf(|
|00005280| 20 62 75 66 2c 20 22 3c | 25 73 3e 22 2c 20 6e 61 | buf, "<|%s>", na|
|00005290| 6d 65 20 29 3b 0a 58 20 | 20 20 7d 0a 58 20 20 20 |me );.X | }.X |
|000052a0| 65 6c 73 65 20 7b 0a 58 | 20 20 20 20 20 20 28 56 |else {.X| (V|
|000052b0| 4f 49 44 29 20 67 65 74 | 5f 6b 77 64 6e 61 6d 65 |OID) get|_kwdname|
|000052c0| 28 20 61 72 67 5f 73 6e | 61 6d 65 28 61 64 29 2c |( arg_sn|ame(ad),|
|000052d0| 20 6b 65 79 77 6f 72 64 | 20 29 3b 0a 58 0a 58 20 | keyword| );.X.X |
|000052e0| 20 20 20 20 20 69 66 20 | 28 20 69 73 75 70 70 65 | if |( isuppe|
|000052f0| 72 28 61 72 67 5f 63 6e | 61 6d 65 28 61 64 29 29 |r(arg_cn|ame(ad))|
|00005300| 20 20 26 26 20 20 74 6f | 75 70 70 65 72 28 2a 6b | && to|upper(*k|
|00005310| 65 79 77 6f 72 64 29 20 | 3d 3d 20 61 72 67 5f 63 |eyword) |== arg_c|
|00005320| 6e 61 6d 65 28 61 64 29 | 20 29 20 7b 0a 58 20 20 |name(ad)| ) {.X |
|00005330| 20 20 20 20 20 20 20 2a | 6b 65 79 77 6f 72 64 20 | *|keyword |
|00005340| 3d 20 74 6f 75 70 70 65 | 72 28 2a 6b 65 79 77 6f |= touppe|r(*keywo|
|00005350| 72 64 29 3b 0a 58 20 20 | 20 20 20 20 7d 0a 58 0a |rd);.X | }.X.|
|00005360| 58 20 20 20 20 20 20 69 | 66 20 28 20 21 28 75 73 |X i|f ( !(us|
|00005370| 67 66 6c 61 67 73 20 26 | 20 75 73 67 5f 4c 4f 4e |gflags &| usg_LON|
|00005380| 47 4f 50 54 53 29 20 29 | 20 7b 0a 58 20 20 20 20 |GOPTS) )| {.X |
|00005390| 20 20 20 20 20 73 70 72 | 69 6e 74 66 28 20 62 75 | spr|intf( bu|
|000053a0| 66 2c 20 22 25 63 25 63 | 22 2c 20 4f 70 74 50 72 |f, "%c%c|", OptPr|
|000053b0| 65 66 69 78 2c 20 61 72 | 67 5f 63 6e 61 6d 65 28 |efix, ar|g_cname(|
|000053c0| 61 64 29 20 29 3b 0a 58 | 20 20 20 20 20 20 7d 0a |ad) );.X| }.|
|000053d0| 58 20 20 20 20 20 20 65 | 6c 73 65 20 69 66 20 28 |X e|lse if (|
|000053e0| 20 21 28 75 73 67 66 6c | 61 67 73 20 26 20 75 73 | !(usgfl|ags & us|
|000053f0| 67 5f 4f 50 54 53 29 20 | 29 20 7b 0a 58 20 20 20 |g_OPTS) |) {.X |
|00005400| 20 20 20 20 20 20 73 70 | 72 69 6e 74 66 28 20 62 | sp|rintf( b|
|00005410| 75 66 2c 20 22 25 63 25 | 73 22 2c 20 4b 77 64 50 |uf, "%c%|s", KwdP|
|00005420| 72 65 66 69 78 2c 20 6b | 65 79 77 6f 72 64 20 29 |refix, k|eyword )|
|00005430| 3b 0a 58 20 20 20 20 20 | 20 7d 0a 58 20 20 20 20 |;.X | }.X |
|00005440| 20 20 65 6c 73 65 20 20 | 7b 20 20 2f 2a 20 75 73 | else |{ /* us|
|00005450| 65 20 62 6f 74 68 20 2a | 2f 0a 58 20 20 20 20 20 |e both *|/.X |
|00005460| 20 20 20 20 69 66 20 28 | 20 4f 70 74 50 72 65 66 | if (| OptPref|
|00005470| 69 78 20 3d 3d 20 4b 77 | 64 50 72 65 66 69 78 20 |ix == Kw|dPrefix |
|00005480| 20 26 26 20 20 2a 6b 65 | 79 77 6f 72 64 20 3d 3d | && *ke|yword ==|
|00005490| 20 61 72 67 5f 63 6e 61 | 6d 65 28 61 64 29 20 29 | arg_cna|me(ad) )|
|000054a0| 20 7b 0a 58 20 20 20 20 | 20 20 20 20 20 20 20 20 | {.X | |
|000054b0| 69 66 20 28 20 21 2a 28 | 6b 65 79 77 6f 72 64 2b |if ( !*(|keyword+|
|000054c0| 31 29 20 29 0a 58 20 20 | 20 20 20 20 20 20 20 20 |1) ).X | |
|000054d0| 20 20 20 20 20 73 70 72 | 69 6e 74 66 28 20 62 75 | spr|intf( bu|
|000054e0| 66 2c 20 22 25 63 25 63 | 22 2c 20 4f 70 74 50 72 |f, "%c%c|", OptPr|
|000054f0| 65 66 69 78 2c 20 61 72 | 67 5f 63 6e 61 6d 65 28 |efix, ar|g_cname(|
|00005500| 61 64 29 20 29 3b 0a 58 | 20 20 20 20 20 20 20 20 |ad) );.X| |
|00005510| 20 20 20 20 65 6c 73 65 | 0a 58 20 20 20 20 20 20 | else|.X |
|00005520| 20 20 20 20 20 20 20 20 | 20 73 70 72 69 6e 74 66 | | sprintf|
|00005530| 28 20 62 75 66 2c 20 22 | 25 63 25 63 5b 25 73 5d |( buf, "|%c%c[%s]|
|00005540| 22 2c 20 4f 70 74 50 72 | 65 66 69 78 2c 20 61 72 |", OptPr|efix, ar|
|00005550| 67 5f 63 6e 61 6d 65 28 | 61 64 29 2c 20 6b 65 79 |g_cname(|ad), key|
|00005560| 77 6f 72 64 2b 31 20 29 | 3b 0a 58 20 20 20 20 20 |word+1 )|;.X |
|00005570| 20 20 20 20 7d 0a 58 20 | 20 20 20 20 20 20 20 20 | }.X | |
|00005580| 65 6c 73 65 20 7b 0a 58 | 20 20 20 20 20 20 20 20 |else {.X| |
|00005590| 20 20 20 20 73 70 72 69 | 6e 74 66 28 20 62 75 66 | spri|ntf( buf|
|000055a0| 2c 20 22 25 63 25 63 7c | 25 63 25 73 22 2c 20 4f |, "%c%c||%c%s", O|
|000055b0| 70 74 50 72 65 66 69 78 | 2c 20 61 72 67 5f 63 6e |ptPrefix|, arg_cn|
|000055c0| 61 6d 65 28 61 64 29 2c | 0a 58 20 20 20 20 20 20 |ame(ad),|.X |
|000055d0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|000055e0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|000055f0| 20 4b 77 64 50 72 65 66 | 69 78 2c 20 6b 65 79 77 | KwdPref|ix, keyw|
|00005600| 6f 72 64 20 29 3b 0a 58 | 20 20 20 20 20 20 20 20 |ord );.X| |
|00005610| 20 7d 0a 58 20 20 20 20 | 20 20 7d 0a 58 0a 58 20 | }.X | }.X.X |
|00005620| 20 20 20 20 20 70 6f 73 | 20 3d 20 62 75 66 20 2b | pos| = buf +|
|00005630| 20 73 74 72 6c 65 6e 28 | 62 75 66 29 3b 0a 58 0a | strlen(|buf);.X.|
|00005640| 58 20 20 20 20 20 20 69 | 66 20 28 20 41 52 47 5f |X i|f ( ARG_|
|00005650| 69 73 56 41 4c 54 41 4b | 45 4e 28 61 64 29 20 20 |isVALTAK|EN(ad) |
|00005660| 26 26 20 20 21 41 52 47 | 5f 69 73 42 4f 4f 4c 45 |&& !ARG|_isBOOLE|
|00005670| 41 4e 28 61 64 29 20 20 | 26 26 20 20 21 41 52 47 |AN(ad) |&& !ARG|
|00005680| 5f 69 73 50 53 45 55 44 | 4f 41 52 47 28 61 64 29 |_isPSEUD|OARG(ad)|
|00005690| 20 29 20 7b 0a 58 20 20 | 20 20 20 20 20 20 20 69 | ) {.X | i|
|000056a0| 66 20 28 20 69 73 55 4e | 49 58 49 53 48 20 29 20 |f ( isUN|IXISH ) |
|000056b0| 20 2a 28 70 6f 73 2b 2b | 29 20 3d 20 27 20 27 3b | *(pos++|) = ' ';|
|000056c0| 0a 58 20 20 20 20 20 20 | 20 20 20 69 66 20 28 20 |.X | if ( |
|000056d0| 41 52 47 5f 69 73 56 41 | 4c 4f 50 54 49 4f 4e 41 |ARG_isVA|LOPTIONA|
|000056e0| 4c 28 61 64 29 20 29 20 | 20 2a 28 70 6f 73 2b 2b |L(ad) ) | *(pos++|
|000056f0| 29 20 3d 20 27 5b 27 3b | 0a 58 20 20 20 20 20 20 |) = '[';|.X |
|00005700| 20 20 20 69 66 20 28 20 | 21 69 73 55 4e 49 58 49 | if ( |!isUNIXI|
|00005710| 53 48 20 29 20 20 2a 28 | 70 6f 73 2b 2b 29 20 3d |SH ) *(|pos++) =|
|00005720| 20 2a 73 5f 41 52 47 5f | 53 45 50 3b 0a 58 20 20 | *s_ARG_|SEP;.X |
|00005730| 20 20 20 20 20 20 20 73 | 70 72 69 6e 74 66 28 20 | s|printf( |
|00005740| 70 6f 73 2c 20 22 3c 25 | 73 3e 22 2c 20 6e 61 6d |pos, "<%|s>", nam|
|00005750| 65 20 29 3b 0a 58 20 20 | 20 20 20 20 20 20 20 69 |e );.X | i|
|00005760| 66 20 28 20 41 52 47 5f | 69 73 56 41 4c 4f 50 54 |f ( ARG_|isVALOPT|
|00005770| 49 4f 4e 41 4c 28 61 64 | 29 20 29 20 20 73 74 72 |IONAL(ad|) ) str|
|00005780| 63 61 74 28 70 6f 73 2c | 20 22 5d 22 29 3b 0a 58 |cat(pos,| "]");.X|
|00005790| 20 20 20 20 20 20 7d 2f | 2a 69 66 2a 2f 0a 58 20 | }/|*if*/.X |
|000057a0| 20 20 7d 2f 2a 65 6c 73 | 65 2a 2f 0a 58 0a 58 20 | }/*els|e*/.X.X |
|000057b0| 20 20 72 65 74 75 72 6e | 20 20 73 74 72 6c 65 6e | return| strlen|
|000057c0| 28 62 75 66 29 3b 0a 58 | 7d 0a 58 0a 58 0a 58 2f |(buf);.X|}.X.X.X/|
|000057d0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|000057e0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|000057f0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00005800| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00005810| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 0a 58 2a 2a 20 |********|***.X** |
|00005820| 5e 46 55 4e 43 54 49 4f | 4e 3a 20 69 62 6d 5f 75 |^FUNCTIO|N: ibm_u|
|00005830| 73 61 67 65 20 2d 20 70 | 72 69 6e 74 20 61 20 75 |sage - p|rint a u|
|00005840| 73 61 67 65 20 6d 65 73 | 73 61 67 65 0a 58 2a 2a |sage mes|sage.X**|
|00005850| 0a 58 2a 2a 20 5e 53 59 | 4e 4f 50 53 49 53 3a 0a |.X** ^SY|NOPSIS:.|
|00005860| 58 2a 2f 0a 58 23 69 66 | 6e 64 65 66 20 5f 5f 41 |X*/.X#if|ndef __A|
|00005870| 4e 53 49 5f 43 5f 5f 0a | 58 20 20 20 56 4f 49 44 |NSI_C__.|X VOID|
|00005880| 20 69 62 6d 5f 75 73 61 | 67 65 28 20 61 72 67 64 | ibm_usa|ge( argd|
|00005890| 2c 20 75 73 61 67 65 5f | 66 6c 61 67 73 20 29 0a |, usage_|flags ).|
|000058a0| 58 2f 2a 0a 58 2a 2a 20 | 5e 50 41 52 41 4d 45 54 |X/*.X** |^PARAMET|
|000058b0| 45 52 53 3a 0a 58 2a 2f | 0a 58 20 20 20 41 52 47 |ERS:.X*/|.X ARG|
|000058c0| 44 45 53 43 20 2a 61 72 | 67 64 3b 0a 58 2f 2a 20 |DESC *ar|gd;.X/* |
|000058d0| 20 20 20 2d 2d 20 74 68 | 65 20 63 6f 6d 6d 61 6e | -- th|e comman|
|000058e0| 64 2d 64 65 73 63 72 69 | 70 74 6f 72 20 61 72 72 |d-descri|ptor arr|
|000058f0| 61 79 0a 58 2a 2f 0a 58 | 20 20 20 61 72 67 4d 61 |ay.X*/.X| argMa|
|00005900| 73 6b 5f 74 20 75 73 61 | 67 65 5f 66 6c 61 67 73 |sk_t usa|ge_flags|
|00005910| 3b 0a 58 2f 2a 20 20 20 | 20 2d 2d 20 66 6c 61 67 |;.X/* | -- flag|
|00005920| 73 20 73 65 74 20 62 79 | 20 24 55 53 41 47 45 43 |s set by| $USAGEC|
|00005930| 4e 54 4c 0a 58 2a 2f 0a | 58 23 65 6e 64 69 66 20 |NTL.X*/.|X#endif |
|00005940| 20 2f 2a 20 21 5f 5f 41 | 4e 53 49 5f 43 5f 5f 20 | /* !__A|NSI_C__ |
|00005950| 2a 2f 0a 58 0a 58 2f 2a | 20 5e 44 45 53 43 52 49 |*/.X.X/*| ^DESCRI|
|00005960| 50 54 49 4f 4e 3a 0a 58 | 2a 2a 20 20 20 20 49 62 |PTION:.X|** Ib|
|00005970| 6d 5f 75 73 61 67 65 20 | 77 69 6c 6c 20 70 72 69 |m_usage |will pri|
|00005980| 6e 74 20 74 68 65 20 55 | 6e 69 78 20 63 6f 6d 6d |nt the U|nix comm|
|00005990| 61 6e 64 2d 6c 69 6e 65 | 20 75 73 61 67 65 20 6f |and-line| usage o|
|000059a0| 66 20 74 68 65 20 67 69 | 76 65 6e 0a 58 2a 2a 20 |f the gi|ven.X** |
|000059b0| 20 20 20 63 6f 6d 6d 61 | 6e 64 20 6f 6e 20 73 74 | comma|nd on st|
|000059c0| 61 6e 64 61 72 64 20 64 | 69 61 67 6e 6f 73 74 69 |andard d|iagnosti|
|000059d0| 63 20 6f 75 74 70 75 74 | 20 28 73 74 64 65 72 72 |c output| (stderr|
|000059e0| 29 2e 20 54 68 65 20 63 | 6f 6e 74 65 6e 74 20 6f |). The c|ontent o|
|000059f0| 66 20 74 68 65 0a 58 2a | 2a 20 20 20 20 75 73 61 |f the.X*|* usa|
|00005a00| 67 65 20 6d 65 73 73 61 | 67 65 20 69 73 20 63 6f |ge messa|ge is co|
|00005a10| 6e 74 72 6f 6c 6c 65 64 | 20 62 79 20 74 68 65 20 |ntrolled| by the |
|00005a20| 62 69 74 6d 61 73 6b 73 | 20 69 6e 20 75 73 61 67 |bitmasks| in usag|
|00005a30| 65 5f 66 6c 61 67 73 20 | 77 68 69 63 68 0a 58 2a |e_flags |which.X*|
|00005a40| 2a 20 20 20 20 63 6f 72 | 72 65 73 70 6f 6e 64 20 |* cor|respond |
|00005a50| 74 6f 20 74 68 65 20 73 | 65 74 74 69 6e 67 73 20 |to the s|ettings |
|00005a60| 69 6e 20 74 68 65 20 75 | 73 65 72 27 73 20 55 53 |in the u|ser's US|
|00005a70| 41 47 45 43 4e 54 4c 20 | 76 61 72 69 61 62 6c 65 |AGECNTL |variable|
|00005a80| 2e 0a 58 2a 2a 0a 58 2a | 2a 20 5e 52 45 51 55 49 |..X**.X*|* ^REQUI|
|00005a90| 52 45 4d 45 4e 54 53 3a | 0a 58 2a 2a 20 20 20 20 |REMENTS:|.X** |
|00005aa0| 61 72 67 64 20 73 68 6f | 75 6c 64 20 62 65 20 61 |argd sho|uld be a|
|00005ab0| 20 6e 6f 6e 2d 6e 75 6c | 6c 20 63 6f 6d 6d 61 6e | non-nul|l comman|
|00005ac0| 64 2d 6c 69 6e 65 20 61 | 72 67 75 6d 65 6e 74 2d |d-line a|rgument-|
|00005ad0| 64 65 73 63 72 69 70 74 | 6f 72 20 61 72 72 61 79 |descript|or array|
|00005ae0| 0a 58 2a 2a 0a 58 2a 2a | 20 5e 53 49 44 45 2d 45 |.X**.X**| ^SIDE-E|
|00005af0| 46 46 45 43 54 53 3a 0a | 58 2a 2a 20 20 20 20 50 |FFECTS:.|X** P|
|00005b00| 72 69 6e 74 73 20 6f 6e | 20 73 74 64 65 72 72 2e |rints on| stderr.|
|00005b10| 0a 58 2a 2a 0a 58 2a 2a | 20 5e 52 45 54 55 52 4e |.X**.X**| ^RETURN|
|00005b20| 2d 56 41 4c 55 45 3a 0a | 58 2a 2a 20 20 20 20 4e |-VALUE:.|X** N|
|00005b30| 6f 6e 65 2e 0a 58 2a 2a | 0a 58 2a 2a 20 5e 41 4c |one..X**|.X** ^AL|
|00005b40| 47 4f 52 49 54 48 4d 3a | 0a 58 2a 2a 20 20 20 20 |GORITHM:|.X** |
|00005b50| 2d 20 69 66 20 6e 6f 20 | 75 73 61 67 65 20 69 73 |- if no |usage is|
|00005b60| 20 64 65 73 69 72 65 64 | 20 74 68 65 6e 20 65 78 | desired| then ex|
|00005b70| 69 74 0a 58 2a 2a 20 20 | 20 20 2d 20 69 66 20 70 |it.X** | - if p|
|00005b80| 61 67 69 6e 67 20 69 73 | 20 72 65 71 75 65 73 74 |aging is| request|
|00005b90| 65 64 20 70 72 69 6e 74 | 20 74 6f 20 74 68 65 20 |ed print| to the |
|00005ba0| 70 61 67 65 72 20 69 6e | 73 74 65 61 64 20 6f 66 |pager in|stead of|
|00005bb0| 20 73 74 64 65 72 72 0a | 58 2a 2a 20 20 20 20 2d | stderr.|X** -|
|00005bc0| 20 70 72 69 6e 74 20 74 | 68 65 20 63 6f 6d 6d 61 | print t|he comma|
|00005bd0| 6e 64 2d 6c 69 6e 65 20 | 73 79 6e 74 61 78 0a 58 |nd-line |syntax.X|
|00005be0| 2a 2a 20 20 20 20 2d 20 | 69 66 20 74 68 65 20 64 |** - |if the d|
|00005bf0| 65 73 63 72 69 70 74 69 | 6f 6e 20 69 73 20 72 65 |escripti|on is re|
|00005c00| 71 75 65 73 74 65 64 20 | 70 72 69 6e 74 20 69 74 |quested |print it|
|00005c10| 0a 58 2a 2a 20 20 20 20 | 2d 20 69 66 20 76 65 72 |.X** |- if ver|
|00005c20| 62 6f 73 65 20 6d 6f 64 | 65 20 69 73 20 72 65 71 |bose mod|e is req|
|00005c30| 75 65 73 74 65 64 2c 20 | 70 72 69 6e 74 20 74 68 |uested, |print th|
|00005c40| 65 20 64 65 73 63 72 69 | 70 74 69 6f 6e 20 6f 66 |e descri|ption of|
|00005c50| 20 65 61 63 68 20 61 72 | 67 75 6d 65 6e 74 0a 58 | each ar|gument.X|
|00005c60| 2a 2a 2a 5e 5e 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |***^^***|********|
|00005c70| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00005c80| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00005c90| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00005ca0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2f 0a 58 23 69 |********|***/.X#i|
|00005cb0| 66 64 65 66 20 5f 5f 41 | 4e 53 49 5f 43 5f 5f 0a |fdef __A|NSI_C__.|
|00005cc0| 58 20 20 20 76 6f 69 64 | 20 69 62 6d 5f 75 73 61 |X void| ibm_usa|
|00005cd0| 67 65 28 20 63 6f 6e 73 | 74 20 41 52 47 44 45 53 |ge( cons|t ARGDES|
|00005ce0| 43 20 2a 61 72 67 64 2c | 20 61 72 67 4d 61 73 6b |C *argd,| argMask|
|00005cf0| 5f 74 20 75 73 61 67 65 | 5f 66 6c 61 67 73 20 29 |_t usage|_flags )|
|00005d00| 0a 58 23 65 6e 64 69 66 | 0a 58 7b 0a 58 20 20 20 |.X#endif|.X{.X |
|00005d10| 72 65 67 69 73 74 65 72 | 20 43 4f 4e 53 54 20 41 |register| CONST A|
|00005d20| 52 47 44 45 53 43 20 20 | 2a 61 64 2c 20 2a 61 72 |RGDESC |*ad, *ar|
|00005d30| 67 73 2c 20 2a 63 6d 64 | 3b 0a 58 20 20 20 69 6e |gs, *cmd|;.X in|
|00005d40| 74 20 20 6d 61 78 5f 63 | 6f 6c 73 20 3d 20 38 30 |t max_c|ols = 80|
|00005d50| 2c 20 6d 61 78 5f 6c 69 | 6e 65 73 20 20 3d 20 32 |, max_li|nes = 2|
|00005d60| 34 3b 0a 58 20 20 20 69 | 6e 74 20 20 6c 6c 2c 20 |4;.X i|nt ll, |
|00005d70| 6d 61 72 67 69 6e 2c 20 | 6f 70 74 69 6f 6e 73 2c |margin, |options,|
|00005d80| 20 6c 6f 6e 67 65 73 74 | 2c 20 70 6f 73 69 74 69 | longest|, positi|
|00005d90| 6f 6e 61 6c 73 3b 0a 58 | 20 20 20 42 4f 4f 4c 20 |onals;.X| BOOL |
|00005da0| 66 69 72 73 74 20 3d 20 | 54 52 55 45 3b 0a 58 20 |first = |TRUE;.X |
|00005db0| 20 20 46 49 4c 45 20 2a | 66 70 3b 0a 58 0a 58 20 | FILE *|fp;.X.X |
|00005dc0| 20 20 69 66 20 28 20 21 | 61 72 67 64 20 29 20 20 | if ( !|argd ) |
|00005dd0| 72 65 74 75 72 6e 3b 0a | 58 0a 58 20 20 20 20 20 |return;.|X.X |
|00005de0| 20 2f 2a 20 69 6e 69 74 | 69 61 6c 69 7a 65 20 63 | /* init|ialize c|
|00005df0| 6f 6d 6d 61 6e 64 2d 73 | 74 72 75 63 74 75 72 65 |ommand-s|tructure|
|00005e00| 20 2a 2f 0a 58 20 20 20 | 69 66 20 28 20 21 43 4d | */.X |if ( !CM|
|00005e10| 44 5f 69 73 49 4e 49 54 | 28 61 72 67 64 29 20 29 |D_isINIT|(argd) )|
|00005e20| 20 20 69 6e 69 74 5f 61 | 72 67 73 28 20 28 41 52 | init_a|rgs( (AR|
|00005e30| 47 44 45 53 43 20 2a 29 | 61 72 67 64 20 29 3b 0a |GDESC *)|argd );.|
|00005e40| 58 20 20 20 63 6d 64 20 | 3d 20 61 72 67 64 3b 0a |X cmd |= argd;.|
|00005e50| 58 0a 58 20 20 20 20 20 | 20 2f 2a 20 66 6f 72 63 |X.X | /* forc|
|00005e60| 65 20 76 65 72 62 6f 73 | 65 2d 6d 6f 64 65 20 69 |e verbos|e-mode i|
|00005e70| 66 20 72 65 71 75 65 73 | 74 65 64 20 2a 2f 0a 58 |f reques|ted */.X|
|00005e80| 20 20 20 69 66 20 28 20 | 55 73 61 67 65 5f 52 65 | if ( |Usage_Re|
|00005e90| 71 75 65 73 74 65 64 20 | 29 20 20 20 42 53 45 54 |quested |) BSET|
|00005ea0| 28 20 75 73 61 67 65 5f | 66 6c 61 67 73 2c 20 75 |( usage_|flags, u|
|00005eb0| 73 67 5f 56 45 52 42 4f | 53 45 20 29 3b 0a 58 0a |sg_VERBO|SE );.X.|
|00005ec0| 58 20 20 20 69 66 20 28 | 20 42 54 45 53 54 28 75 |X if (| BTEST(u|
|00005ed0| 73 61 67 65 5f 66 6c 61 | 67 73 2c 20 75 73 67 5f |sage_fla|gs, usg_|
|00005ee0| 4e 4f 4e 45 29 20 29 20 | 20 72 65 74 75 72 6e 3b |NONE) ) | return;|
|00005ef0| 0a 58 0a 58 20 20 20 66 | 70 20 3d 20 28 20 42 54 |.X.X f|p = ( BT|
|00005f00| 45 53 54 28 75 73 61 67 | 65 5f 66 6c 61 67 73 2c |EST(usag|e_flags,|
|00005f10| 20 75 73 67 5f 50 41 47 | 45 44 29 20 29 0a 58 20 | usg_PAG|ED) ).X |
|00005f20| 20 20 20 20 20 3f 20 70 | 67 6f 70 65 6e 28 20 73 | ? p|gopen( s|
|00005f30| 74 64 65 72 72 2c 20 67 | 65 74 65 6e 76 28 22 55 |tderr, g|etenv("U|
|00005f40| 53 41 47 45 5f 50 41 47 | 45 52 22 29 20 29 0a 58 |SAGE_PAG|ER") ).X|
|00005f50| 20 20 20 20 20 20 3a 20 | 73 74 64 65 72 72 3b 0a | : |stderr;.|
|00005f60| 58 0a 58 20 20 20 20 20 | 20 2f 2a 20 67 65 74 20 |X.X | /* get |
|00005f70| 73 63 72 65 65 6e 20 73 | 69 7a 65 20 2a 2f 0a 58 |screen s|ize */.X|
|00005f80| 20 20 20 67 65 74 5f 77 | 69 6e 73 69 7a 65 28 20 | get_w|insize( |
|00005f90| 66 69 6c 65 6e 6f 28 66 | 70 29 2c 20 26 6d 61 78 |fileno(f|p), &max|
|00005fa0| 5f 6c 69 6e 65 73 2c 20 | 26 6d 61 78 5f 63 6f 6c |_lines, |&max_col|
|00005fb0| 73 20 29 3b 0a 58 0a 58 | 20 20 20 66 70 72 69 6e |s );.X.X| fprin|
|00005fc0| 74 66 28 66 70 2c 20 22 | 55 73 61 67 65 3a 20 25 |tf(fp, "|Usage: %|
|00005fd0| 2e 2a 73 22 2c 20 50 72 | 6f 67 4e 61 6d 65 4c 65 |.*s", Pr|ogNameLe|
|00005fe0| 6e 2c 20 28 50 72 6f 67 | 4e 61 6d 65 29 20 3f 20 |n, (Prog|Name) ? |
|00005ff0| 50 72 6f 67 4e 61 6d 65 | 20 3a 20 22 22 29 3b 0a |ProgName| : "");.|
|00006000| 58 0a 58 20 20 20 6c 6c | 20 3d 20 50 72 6f 67 4e |X.X ll| = ProgN|
|00006010| 61 6d 65 4c 65 6e 20 2b | 20 37 3b 0a 58 20 20 20 |ameLen +| 7;.X |
|00006020| 6d 61 72 67 69 6e 20 3d | 20 6c 6c 20 2b 20 31 3b |margin =| ll + 1;|
|00006030| 0a 58 20 20 20 6c 6f 6e | 67 65 73 74 20 3d 20 30 |.X lon|gest = 0|
|00006040| 3b 0a 58 0a 58 20 20 20 | 20 20 20 2f 2a 20 70 72 |;.X.X | /* pr|
|00006050| 69 6e 74 20 53 79 6e 6f | 70 73 69 73 20 2a 2f 0a |int Syno|psis */.|
|00006060| 58 20 20 20 66 6f 72 20 | 28 20 70 6f 73 69 74 69 |X for |( positi|
|00006070| 6f 6e 61 6c 73 20 3d 20 | 30 20 3b 20 70 6f 73 69 |onals = |0 ; posi|
|00006080| 74 69 6f 6e 61 6c 73 20 | 3c 20 32 20 3b 20 70 6f |tionals |< 2 ; po|
|00006090| 73 69 74 69 6f 6e 61 6c | 73 2b 2b 20 29 20 7b 0a |sitional|s++ ) {.|
|000060a0| 58 20 20 20 20 20 20 66 | 6f 72 20 28 20 61 72 67 |X f|or ( arg|
|000060b0| 73 20 3d 20 61 72 67 64 | 20 3b 20 61 72 67 73 20 |s = argd| ; args |
|000060c0| 3b 20 61 72 67 73 20 3d | 20 63 6d 64 5f 64 65 66 |; args =| cmd_def|
|000060d0| 61 72 67 73 28 61 72 67 | 73 29 20 29 20 7b 0a 58 |args(arg|s) ) {.X|
|000060e0| 20 20 20 20 20 20 20 20 | 20 66 6f 72 20 28 20 61 | | for ( a|
|000060f0| 64 20 3d 20 41 52 47 5f | 46 49 52 53 54 28 61 72 |d = ARG_|FIRST(ar|
|00006100| 67 73 29 20 3b 20 21 41 | 52 47 5f 69 73 45 4e 44 |gs) ; !A|RG_isEND|
|00006110| 28 61 64 29 20 3b 20 41 | 52 47 5f 41 44 56 41 4e |(ad) ; A|RG_ADVAN|
|00006120| 43 45 28 61 64 29 20 29 | 20 7b 0a 58 20 20 20 20 |CE(ad) )| {.X |
|00006130| 20 20 20 20 20 20 20 20 | 61 72 67 4e 61 6d 65 5f | |argName_|
|00006140| 74 20 20 62 75 66 3b 0a | 58 20 20 20 20 20 20 20 |t buf;.|X |
|00006150| 20 20 20 20 20 69 6e 74 | 20 70 6c 3b 0a 58 0a 58 | int| pl;.X.X|
|00006160| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 2f | | /|
|00006170| 2a 20 64 6f 6e 27 74 20 | 64 69 73 70 6c 61 79 20 |* don't |display |
|00006180| 68 69 64 64 65 6e 20 61 | 72 67 75 6d 65 6e 74 73 |hidden a|rguments|
|00006190| 20 2a 2f 0a 58 20 20 20 | 20 20 20 20 20 20 20 20 | */.X | |
|000061a0| 20 69 66 20 28 20 41 52 | 47 5f 69 73 48 49 44 44 | if ( AR|G_isHIDD|
|000061b0| 45 4e 28 61 64 29 20 29 | 20 20 63 6f 6e 74 69 6e |EN(ad) )| contin|
|000061c0| 75 65 3b 0a 58 20 20 20 | 20 20 20 20 20 20 20 20 |ue;.X | |
|000061d0| 20 69 66 20 28 20 21 70 | 6f 73 69 74 69 6f 6e 61 | if ( !p|ositiona|
|000061e0| 6c 73 20 20 26 26 20 20 | 41 52 47 5f 69 73 50 4f |ls && |ARG_isPO|
|000061f0| 53 49 54 49 4f 4e 41 4c | 28 61 64 29 20 29 20 20 |SITIONAL|(ad) ) |
|00006200| 63 6f 6e 74 69 6e 75 65 | 3b 0a 58 20 20 20 20 20 |continue|;.X |
|00006210| 20 20 20 20 20 20 20 69 | 66 20 28 20 70 6f 73 69 | i|f ( posi|
|00006220| 74 69 6f 6e 61 6c 73 20 | 20 26 26 20 20 21 41 52 |tionals | && !AR|
|00006230| 47 5f 69 73 50 4f 53 49 | 54 49 4f 4e 41 4c 28 61 |G_isPOSI|TIONAL(a|
|00006240| 64 29 20 29 20 20 63 6f | 6e 74 69 6e 75 65 3b 0a |d) ) co|ntinue;.|
|00006250| 58 0a 58 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |X.X | |
|00006260| 20 20 2f 2a 20 66 69 67 | 75 72 65 20 6f 75 74 20 | /* fig|ure out |
|00006270| 68 6f 77 20 77 69 64 65 | 20 74 68 69 73 20 70 61 |how wide| this pa|
|00006280| 72 61 6d 65 74 65 72 20 | 69 73 20 28 66 6f 72 20 |rameter |is (for |
|00006290| 70 72 69 6e 74 69 6e 67 | 29 20 2a 2f 0a 58 20 20 |printing|) */.X |
|000062a0| 20 20 20 20 20 20 20 20 | 20 20 70 6c 20 3d 20 66 | | pl = f|
|000062b0| 6d 74 61 72 67 28 61 64 | 2c 20 62 75 66 2c 20 75 |mtarg(ad|, buf, u|
|000062c0| 73 61 67 65 5f 66 6c 61 | 67 73 29 3b 0a 58 0a 58 |sage_fla|gs);.X.X|
|000062d0| 20 20 20 20 20 20 20 20 | 20 20 20 20 69 66 20 28 | | if (|
|000062e0| 20 70 6c 20 3e 20 6c 6f | 6e 67 65 73 74 29 20 20 | pl > lo|ngest) |
|000062f0| 6c 6f 6e 67 65 73 74 20 | 3d 20 70 6c 3b 0a 58 0a |longest |= pl;.X.|
|00006300| 58 20 20 20 20 20 20 20 | 20 20 20 20 20 69 66 20 |X | if |
|00006310| 20 28 20 41 52 47 5f 69 | 73 4d 55 4c 54 49 56 41 | ( ARG_i|sMULTIVA|
|00006320| 4c 28 61 64 29 20 29 20 | 7b 0a 58 20 20 20 20 20 |L(ad) ) |{.X |
|00006330| 20 20 20 20 20 20 20 20 | 20 20 73 74 72 63 61 74 | | strcat|
|00006340| 28 20 62 75 66 2c 20 22 | 2e 2e 2e 22 20 29 3b 0a |( buf, "|..." );.|
|00006350| 58 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |X | |
|00006360| 70 6c 20 2b 3d 20 33 3b | 0a 58 20 20 20 20 20 20 |pl += 3;|.X |
|00006370| 20 20 20 20 20 20 7d 0a | 58 20 20 20 20 20 20 20 | }.|X |
|00006380| 20 20 20 20 20 69 66 20 | 28 20 21 41 52 47 5f 69 | if |( !ARG_i|
|00006390| 73 52 45 51 55 49 52 45 | 44 28 61 64 29 20 29 20 |sREQUIRE|D(ad) ) |
|000063a0| 7b 0a 58 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |{.X | |
|000063b0| 20 20 70 6c 20 2b 3d 20 | 32 3b 0a 58 20 20 20 20 | pl += |2;.X |
|000063c0| 20 20 20 20 20 20 20 20 | 7d 0a 58 0a 58 20 20 20 | |}.X.X |
|000063d0| 20 20 20 20 20 20 20 20 | 20 2f 2a 20 73 65 65 20 | | /* see |
|000063e0| 69 66 20 74 68 69 73 20 | 77 69 6c 6c 20 66 69 74 |if this |will fit|
|000063f0| 20 2a 2f 0a 58 20 20 20 | 20 20 20 20 20 20 20 20 | */.X | |
+--------+-------------------------+-------------------------+--------+--------+
Only 25.0 KB of data is shown above.