Artifact
8840d4b3138789b749307c303157043650f77d92469ba6b38bc18d59341cb639:
Attachment "parseargs.diff" to
ticket [beecfca5fd]
added by
emiliano
2025-04-21 13:12:54.
0000: 49 6e 64 65 78 3a 20 67 65 6e 65 72 69 63 2f 74 Index: generic/t
0010: 63 6c 49 6e 64 65 78 4f 62 6a 2e 63 0a 3d 3d 3d clIndexObj.c.===
0020: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
0030: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
0040: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================
0050: 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 0a ===============.
0060: 2d 2d 2d 20 67 65 6e 65 72 69 63 2f 74 63 6c 49 --- generic/tclI
0070: 6e 64 65 78 4f 62 6a 2e 63 0a 2b 2b 2b 20 67 65 ndexObj.c.+++ ge
0080: 6e 65 72 69 63 2f 74 63 6c 49 6e 64 65 78 4f 62 neric/tclIndexOb
0090: 6a 2e 63 0a 40 40 20 2d 31 30 38 38 2c 31 31 20 j.c.@@ -1088,11
00a0: 2b 31 30 38 38 2c 31 32 20 40 40 0a 20 09 20 20 +1088,12 @@. .
00b0: 20 20 20 2a 20 70 72 65 66 65 72 73 20 61 6e 20 * prefers an
00c0: 65 72 72 6f 72 20 74 6f 20 62 65 20 72 65 67 69 error to be regi
00d0: 73 74 65 72 65 64 2e 0a 20 09 20 20 20 20 20 2a stered.. . *
00e0: 2f 0a 20 0a 20 09 20 20 20 20 69 66 20 28 72 65 /. . . if (re
00f0: 6d 4f 62 6a 76 20 3d 3d 20 4e 55 4c 4c 29 20 7b mObjv == NULL) {
0100: 0a 20 09 09 54 63 6c 5f 53 65 74 4f 62 6a 52 65 . ..Tcl_SetObjRe
0110: 73 75 6c 74 28 69 6e 74 65 72 70 2c 20 54 63 6c sult(interp, Tcl
0120: 5f 4f 62 6a 50 72 69 6e 74 66 28 0a 2d 09 09 09 _ObjPrintf(.-...
0130: 22 75 6e 72 65 63 6f 67 6e 69 7a 65 64 20 61 72 "unrecognized ar
0140: 67 75 6d 65 6e 74 20 5c 22 25 73 5c 22 22 2c 20 gument \"%s\"",
0150: 73 74 72 29 29 3b 0a 2b 09 09 09 22 75 6e 72 65 str));.+..."unre
0160: 63 6f 67 6e 69 7a 65 64 20 61 72 67 75 6d 65 6e cognized argumen
0170: 74 20 5c 22 25 73 5c 22 5c 6e 22 2c 20 73 74 72 t \"%s\"\n", str
0180: 29 29 3b 0a 2b 09 09 50 72 69 6e 74 55 73 61 67 ));.+..PrintUsag
0190: 65 28 69 6e 74 65 72 70 2c 20 61 72 67 54 61 62 e(interp, argTab
01a0: 6c 65 29 3b 0a 20 09 09 67 6f 74 6f 20 65 72 72 le);. ..goto err
01b0: 6f 72 3b 0a 20 09 20 20 20 20 7d 0a 20 0a 20 09 or;. . }. . .
01c0: 20 20 20 20 64 73 74 49 6e 64 65 78 2b 2b 3b 09 dstIndex++;.
01d0: 09 2f 2a 20 54 68 69 73 20 61 72 67 75 6d 65 6e ./* This argumen
01e0: 74 20 69 73 20 6e 6f 77 20 68 61 6e 64 6c 65 64 t is now handled
01f0: 20 2a 2f 0a 20 09 20 20 20 20 6c 65 66 74 6f 76 */. . leftov
0200: 65 72 73 5b 6e 72 65 6d 2b 2b 5d 20 3d 20 63 75 ers[nrem++] = cu
0210: 72 41 72 67 3b 0a 40 40 20 2d 31 32 39 33 2c 31 rArg;.@@ -1293,1
0220: 31 20 2b 31 32 39 34 2c 31 32 20 40 40 0a 20 0a 1 +1294,12 @@. .
0230: 20 20 20 20 20 2f 2a 0a 20 20 20 20 20 20 2a 20 /*. *
0240: 4e 6f 77 20 61 64 64 20 74 68 65 20 6f 70 74 69 Now add the opti
0250: 6f 6e 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 2c 20 on information,
0260: 77 69 74 68 20 70 72 65 74 74 79 2d 70 72 69 6e with pretty-prin
0270: 74 69 6e 67 2e 0a 20 20 20 20 20 20 2a 2f 0a 20 ting.. */.
0280: 0a 2d 20 20 20 20 6d 73 67 20 3d 20 54 63 6c 5f .- msg = Tcl_
0290: 4e 65 77 53 74 72 69 6e 67 4f 62 6a 28 22 43 6f NewStringObj("Co
02a0: 6d 6d 61 6e 64 2d 73 70 65 63 69 66 69 63 20 6f mmand-specific o
02b0: 70 74 69 6f 6e 73 3a 22 2c 20 54 43 4c 5f 49 4e ptions:", TCL_IN
02c0: 44 45 58 5f 4e 4f 4e 45 29 3b 0a 2b 20 20 20 20 DEX_NONE);.+
02d0: 6d 73 67 20 3d 20 54 63 6c 5f 47 65 74 4f 62 6a msg = Tcl_GetObj
02e0: 52 65 73 75 6c 74 28 69 6e 74 65 72 70 29 3b 0a Result(interp);.
02f0: 2b 20 20 20 20 54 63 6c 5f 41 70 70 65 6e 64 54 + Tcl_AppendT
0300: 6f 4f 62 6a 28 6d 73 67 2c 20 22 43 6f 6d 6d 61 oObj(msg, "Comma
0310: 6e 64 2d 73 70 65 63 69 66 69 63 20 6f 70 74 69 nd-specific opti
0320: 6f 6e 73 3a 22 2c 20 54 43 4c 5f 49 4e 44 45 58 ons:", TCL_INDEX
0330: 5f 4e 4f 4e 45 29 3b 0a 20 20 20 20 20 66 6f 72 _NONE);. for
0340: 20 28 69 6e 66 6f 50 74 72 20 3d 20 61 72 67 54 (infoPtr = argT
0350: 61 62 6c 65 3b 20 69 6e 66 6f 50 74 72 2d 3e 74 able; infoPtr->t
0360: 79 70 65 20 21 3d 20 54 43 4c 5f 41 52 47 56 5f ype != TCL_ARGV_
0370: 45 4e 44 3b 20 69 6e 66 6f 50 74 72 2b 2b 29 20 END; infoPtr++)
0380: 7b 0a 20 09 69 66 20 28 28 69 6e 66 6f 50 74 72 {. .if ((infoPtr
0390: 2d 3e 74 79 70 65 20 3d 3d 20 54 43 4c 5f 41 52 ->type == TCL_AR
03a0: 47 56 5f 48 45 4c 50 29 20 26 26 20 28 69 6e 66 GV_HELP) && (inf
03b0: 6f 50 74 72 2d 3e 6b 65 79 53 74 72 20 3d 3d 20 oPtr->keyStr ==
03c0: 4e 55 4c 4c 29 29 20 7b 0a 20 09 20 20 20 20 54 NULL)) {. . T
03d0: 63 6c 5f 41 70 70 65 6e 64 50 72 69 6e 74 66 54 cl_AppendPrintfT
03e0: 6f 4f 62 6a 28 6d 73 67 2c 20 22 5c 6e 25 73 22 oObj(msg, "\n%s"
03f0: 2c 20 69 6e 66 6f 50 74 72 2d 3e 68 65 6c 70 53 , infoPtr->helpS
0400: 74 72 29 3b 0a 20 09 20 20 20 20 63 6f 6e 74 69 tr);. . conti
0410: 6e 75 65 3b 0a 20 09 7d 0a 40 40 20 2d 31 33 33 nue;. .}.@@ -133
0420: 32 2c 31 31 20 2b 31 33 33 34 2c 31 30 20 40 40 2,11 +1334,10 @@
0430: 0a 20 09 7d 0a 20 09 64 65 66 61 75 6c 74 3a 0a . .}. .default:.
0440: 20 09 20 20 20 20 62 72 65 61 6b 3b 0a 20 09 7d . break;. .}
0450: 0a 20 20 20 20 20 7d 0a 2d 20 20 20 20 54 63 6c . }.- Tcl
0460: 5f 53 65 74 4f 62 6a 52 65 73 75 6c 74 28 69 6e _SetObjResult(in
0470: 74 65 72 70 2c 20 6d 73 67 29 3b 0a 20 7d 0a 20 terp, msg);. }.
0480: 0c 0a 20 2f 2a 0a 20 20 2a 2d 2d 2d 2d 2d 2d 2d .. /*. *-------
0490: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
04a0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
04b0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
04c0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a ---------------.
04d0: 20 20 2a 0a 0a *..