Fossil SCM
When there are no command line arguments, set the argv script variable to an empty list.
Commit
b04d5ab4af33e31214f45f5cc1120196f1ef04fa
Parent
46864ac9cc3e800…
1 file changed
+12
-12
+12
-12
| --- src/th_tcl.c | ||
| +++ src/th_tcl.c | ||
| @@ -381,11 +381,11 @@ | ||
| 381 | 381 | char **argv |
| 382 | 382 | ){ |
| 383 | 383 | Tcl_Obj *objPtr; |
| 384 | 384 | Tcl_Obj *resultObjPtr; |
| 385 | 385 | Tcl_Obj *listPtr; |
| 386 | - int rc; | |
| 386 | + int rc = TCL_OK; | |
| 387 | 387 | if( argc<=0 || !argv ){ |
| 388 | 388 | return TCL_OK; |
| 389 | 389 | } |
| 390 | 390 | objPtr = Tcl_NewStringObj(argv[0], -1); |
| 391 | 391 | Tcl_IncrRefCount(objPtr); |
| @@ -401,31 +401,31 @@ | ||
| 401 | 401 | TCL_GLOBAL_ONLY|TCL_LEAVE_ERR_MSG); |
| 402 | 402 | Tcl_DecrRefCount(objPtr); |
| 403 | 403 | if( !resultObjPtr ){ |
| 404 | 404 | return TCL_ERROR; |
| 405 | 405 | } |
| 406 | + listPtr = Tcl_NewListObj(0, NULL); | |
| 407 | + Tcl_IncrRefCount(listPtr); | |
| 406 | 408 | if( argc>1 ){ |
| 407 | - listPtr = Tcl_NewListObj(0, NULL); | |
| 408 | - Tcl_IncrRefCount(listPtr); | |
| 409 | 409 | while( --argc ){ |
| 410 | 410 | objPtr = Tcl_NewStringObj(*++argv, -1); |
| 411 | 411 | Tcl_IncrRefCount(objPtr); |
| 412 | 412 | rc = Tcl_ListObjAppendElement(pInterp, listPtr, objPtr); |
| 413 | 413 | Tcl_DecrRefCount(objPtr); |
| 414 | 414 | if( rc!=TCL_OK ){ |
| 415 | 415 | break; |
| 416 | 416 | } |
| 417 | 417 | } |
| 418 | - if( rc==TCL_OK ){ | |
| 419 | - resultObjPtr = Tcl_SetVar2Ex(pInterp, "argv", NULL, listPtr, | |
| 420 | - TCL_GLOBAL_ONLY|TCL_LEAVE_ERR_MSG); | |
| 421 | - if( !resultObjPtr ){ | |
| 422 | - rc = TCL_ERROR; | |
| 423 | - } | |
| 424 | - } | |
| 425 | - Tcl_DecrRefCount(listPtr); | |
| 426 | - } | |
| 418 | + } | |
| 419 | + if( rc==TCL_OK ){ | |
| 420 | + resultObjPtr = Tcl_SetVar2Ex(pInterp, "argv", NULL, listPtr, | |
| 421 | + TCL_GLOBAL_ONLY|TCL_LEAVE_ERR_MSG); | |
| 422 | + if( !resultObjPtr ){ | |
| 423 | + rc = TCL_ERROR; | |
| 424 | + } | |
| 425 | + } | |
| 426 | + Tcl_DecrRefCount(listPtr); | |
| 427 | 427 | return rc; |
| 428 | 428 | } |
| 429 | 429 | |
| 430 | 430 | /* |
| 431 | 431 | ** Creates and initializes a Tcl interpreter for use with the specified TH1 |
| 432 | 432 |
| --- src/th_tcl.c | |
| +++ src/th_tcl.c | |
| @@ -381,11 +381,11 @@ | |
| 381 | char **argv |
| 382 | ){ |
| 383 | Tcl_Obj *objPtr; |
| 384 | Tcl_Obj *resultObjPtr; |
| 385 | Tcl_Obj *listPtr; |
| 386 | int rc; |
| 387 | if( argc<=0 || !argv ){ |
| 388 | return TCL_OK; |
| 389 | } |
| 390 | objPtr = Tcl_NewStringObj(argv[0], -1); |
| 391 | Tcl_IncrRefCount(objPtr); |
| @@ -401,31 +401,31 @@ | |
| 401 | TCL_GLOBAL_ONLY|TCL_LEAVE_ERR_MSG); |
| 402 | Tcl_DecrRefCount(objPtr); |
| 403 | if( !resultObjPtr ){ |
| 404 | return TCL_ERROR; |
| 405 | } |
| 406 | if( argc>1 ){ |
| 407 | listPtr = Tcl_NewListObj(0, NULL); |
| 408 | Tcl_IncrRefCount(listPtr); |
| 409 | while( --argc ){ |
| 410 | objPtr = Tcl_NewStringObj(*++argv, -1); |
| 411 | Tcl_IncrRefCount(objPtr); |
| 412 | rc = Tcl_ListObjAppendElement(pInterp, listPtr, objPtr); |
| 413 | Tcl_DecrRefCount(objPtr); |
| 414 | if( rc!=TCL_OK ){ |
| 415 | break; |
| 416 | } |
| 417 | } |
| 418 | if( rc==TCL_OK ){ |
| 419 | resultObjPtr = Tcl_SetVar2Ex(pInterp, "argv", NULL, listPtr, |
| 420 | TCL_GLOBAL_ONLY|TCL_LEAVE_ERR_MSG); |
| 421 | if( !resultObjPtr ){ |
| 422 | rc = TCL_ERROR; |
| 423 | } |
| 424 | } |
| 425 | Tcl_DecrRefCount(listPtr); |
| 426 | } |
| 427 | return rc; |
| 428 | } |
| 429 | |
| 430 | /* |
| 431 | ** Creates and initializes a Tcl interpreter for use with the specified TH1 |
| 432 |
| --- src/th_tcl.c | |
| +++ src/th_tcl.c | |
| @@ -381,11 +381,11 @@ | |
| 381 | char **argv |
| 382 | ){ |
| 383 | Tcl_Obj *objPtr; |
| 384 | Tcl_Obj *resultObjPtr; |
| 385 | Tcl_Obj *listPtr; |
| 386 | int rc = TCL_OK; |
| 387 | if( argc<=0 || !argv ){ |
| 388 | return TCL_OK; |
| 389 | } |
| 390 | objPtr = Tcl_NewStringObj(argv[0], -1); |
| 391 | Tcl_IncrRefCount(objPtr); |
| @@ -401,31 +401,31 @@ | |
| 401 | TCL_GLOBAL_ONLY|TCL_LEAVE_ERR_MSG); |
| 402 | Tcl_DecrRefCount(objPtr); |
| 403 | if( !resultObjPtr ){ |
| 404 | return TCL_ERROR; |
| 405 | } |
| 406 | listPtr = Tcl_NewListObj(0, NULL); |
| 407 | Tcl_IncrRefCount(listPtr); |
| 408 | if( argc>1 ){ |
| 409 | while( --argc ){ |
| 410 | objPtr = Tcl_NewStringObj(*++argv, -1); |
| 411 | Tcl_IncrRefCount(objPtr); |
| 412 | rc = Tcl_ListObjAppendElement(pInterp, listPtr, objPtr); |
| 413 | Tcl_DecrRefCount(objPtr); |
| 414 | if( rc!=TCL_OK ){ |
| 415 | break; |
| 416 | } |
| 417 | } |
| 418 | } |
| 419 | if( rc==TCL_OK ){ |
| 420 | resultObjPtr = Tcl_SetVar2Ex(pInterp, "argv", NULL, listPtr, |
| 421 | TCL_GLOBAL_ONLY|TCL_LEAVE_ERR_MSG); |
| 422 | if( !resultObjPtr ){ |
| 423 | rc = TCL_ERROR; |
| 424 | } |
| 425 | } |
| 426 | Tcl_DecrRefCount(listPtr); |
| 427 | return rc; |
| 428 | } |
| 429 | |
| 430 | /* |
| 431 | ** Creates and initializes a Tcl interpreter for use with the specified TH1 |
| 432 |