Fossil SCM

When there are no command line arguments, set the argv script variable to an empty list.

mistachkin 2012-08-22 11:33 UTC tcl-argv-handling-v2
Commit b04d5ab4af33e31214f45f5cc1120196f1ef04fa
1 file changed +12 -12
+12 -12
--- src/th_tcl.c
+++ src/th_tcl.c
@@ -381,11 +381,11 @@
381381
char **argv
382382
){
383383
Tcl_Obj *objPtr;
384384
Tcl_Obj *resultObjPtr;
385385
Tcl_Obj *listPtr;
386
- int rc;
386
+ int rc = TCL_OK;
387387
if( argc<=0 || !argv ){
388388
return TCL_OK;
389389
}
390390
objPtr = Tcl_NewStringObj(argv[0], -1);
391391
Tcl_IncrRefCount(objPtr);
@@ -401,31 +401,31 @@
401401
TCL_GLOBAL_ONLY|TCL_LEAVE_ERR_MSG);
402402
Tcl_DecrRefCount(objPtr);
403403
if( !resultObjPtr ){
404404
return TCL_ERROR;
405405
}
406
+ listPtr = Tcl_NewListObj(0, NULL);
407
+ Tcl_IncrRefCount(listPtr);
406408
if( argc>1 ){
407
- listPtr = Tcl_NewListObj(0, NULL);
408
- Tcl_IncrRefCount(listPtr);
409409
while( --argc ){
410410
objPtr = Tcl_NewStringObj(*++argv, -1);
411411
Tcl_IncrRefCount(objPtr);
412412
rc = Tcl_ListObjAppendElement(pInterp, listPtr, objPtr);
413413
Tcl_DecrRefCount(objPtr);
414414
if( rc!=TCL_OK ){
415415
break;
416416
}
417417
}
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);
427427
return rc;
428428
}
429429
430430
/*
431431
** Creates and initializes a Tcl interpreter for use with the specified TH1
432432
--- 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

Keyboard Shortcuts

Open search /
Next entry (timeline) j
Previous entry (timeline) k
Open focused entry Enter
Show this help ?
Toggle theme Top nav button