| | @@ -43,13 +43,12 @@ |
| 43 | 43 | nOutstandingMalloc--; |
| 44 | 44 | } |
| 45 | 45 | free(p); |
| 46 | 46 | } |
| 47 | 47 | |
| 48 | | - |
| 49 | 48 | static Th_Vtab vtab = { xMalloc, xFree, { |
| 50 | | - Th_output_f_FILE, |
| 49 | + NULL, |
| 51 | 50 | NULL, |
| 52 | 51 | 1 |
| 53 | 52 | } |
| 54 | 53 | }; |
| 55 | 54 | |
| | @@ -80,11 +79,13 @@ |
| 80 | 79 | int argc, |
| 81 | 80 | const char **argv, |
| 82 | 81 | int *argl |
| 83 | 82 | ){ |
| 84 | 83 | if( argc!=2 ){ |
| 85 | | - return Th_WrongNumArgs(interp, "enable_output BOOLEAN"); |
| 84 | + return Th_WrongNumArgs2(interp, |
| 85 | + argv[0], argl[0], |
| 86 | + "BOOLEAN"); |
| 86 | 87 | }else{ |
| 87 | 88 | int rc = Th_ToInt(interp, argv[1], argl[1], &enableOutput); |
| 88 | 89 | vtab.out.enabled = enableOutput; |
| 89 | 90 | return rc; |
| 90 | 91 | } |
| | @@ -138,11 +139,13 @@ |
| 138 | 139 | ){ |
| 139 | 140 | PutsCmdData const * fmt = (PutsCmdData const *)pConvert; |
| 140 | 141 | const int sepLen = fmt->sep ? strlen(fmt->sep) : 0; |
| 141 | 142 | int i; |
| 142 | 143 | if( argc<2 ){ |
| 143 | | - return Th_WrongNumArgs(interp, "puts STRING ...STRING_N"); |
| 144 | + return Th_WrongNumArgs2(interp, |
| 145 | + argv[0], argl[0], |
| 146 | + "STRING ...STRING_N"); |
| 144 | 147 | } |
| 145 | 148 | for( i = 1; i < argc; ++i ){ |
| 146 | 149 | if(sepLen && (i>1)){ |
| 147 | 150 | sendText(interp, fmt->sep, sepLen, 0); |
| 148 | 151 | } |
| | @@ -165,11 +168,13 @@ |
| 165 | 168 | int argc, |
| 166 | 169 | const char **argv, |
| 167 | 170 | int *argl |
| 168 | 171 | ){ |
| 169 | 172 | if( argc!=2 ){ |
| 170 | | - return Th_WrongNumArgs(interp, "wiki STRING"); |
| 173 | + return Th_WrongNumArgs2(interp, |
| 174 | + argv[0], argl[0], |
| 175 | + "STRING"); |
| 171 | 176 | } |
| 172 | 177 | if( enableOutput ){ |
| 173 | 178 | Blob src; |
| 174 | 179 | blob_init(&src, (char*)argv[1], argl[1]); |
| 175 | 180 | wiki_convert(&src, 0, WIKI_INLINE); |
| | @@ -191,11 +196,13 @@ |
| 191 | 196 | const char **argv, |
| 192 | 197 | int *argl |
| 193 | 198 | ){ |
| 194 | 199 | char *zOut; |
| 195 | 200 | if( argc!=2 ){ |
| 196 | | - return Th_WrongNumArgs(interp, "htmlize STRING"); |
| 201 | + return Th_WrongNumArgs2(interp, |
| 202 | + argv[0], argl[0], |
| 203 | + "STRING"); |
| 197 | 204 | } |
| 198 | 205 | zOut = htmlize((char*)argv[1], argl[1]); |
| 199 | 206 | Th_SetResult(interp, zOut, -1); |
| 200 | 207 | free(zOut); |
| 201 | 208 | return TH_OK; |
| | @@ -238,11 +245,13 @@ |
| 238 | 245 | const char **argv, |
| 239 | 246 | int *argl |
| 240 | 247 | ){ |
| 241 | 248 | int rc; |
| 242 | 249 | if( argc!=2 ){ |
| 243 | | - return Th_WrongNumArgs(interp, "hascap STRING"); |
| 250 | + return Th_WrongNumArgs2(interp, |
| 251 | + argv[0], argl[0], |
| 252 | + "STRING"); |
| 244 | 253 | } |
| 245 | 254 | rc = login_has_capability((char*)argv[1],argl[1]); |
| 246 | 255 | if( g.thTrace ){ |
| 247 | 256 | Th_Trace("[hascap %#h] => %d<br />\n", argl[1], argv[1], rc); |
| 248 | 257 | } |
| | @@ -269,11 +278,13 @@ |
| 269 | 278 | int *argl |
| 270 | 279 | ){ |
| 271 | 280 | int rc = 0; |
| 272 | 281 | char const * zArg; |
| 273 | 282 | if( argc!=2 ){ |
| 274 | | - return Th_WrongNumArgs(interp, "hasfeature STRING"); |
| 283 | + return Th_WrongNumArgs2(interp, |
| 284 | + argv[0], argl[0], |
| 285 | + "STRING"); |
| 275 | 286 | } |
| 276 | 287 | zArg = (char const*)argv[1]; |
| 277 | 288 | if(NULL==zArg){ |
| 278 | 289 | /* placeholder for following ifdefs... */ |
| 279 | 290 | } |
| | @@ -313,11 +324,13 @@ |
| 313 | 324 | int *argl |
| 314 | 325 | ){ |
| 315 | 326 | int rc = 0; |
| 316 | 327 | int i; |
| 317 | 328 | if( argc!=2 ){ |
| 318 | | - return Th_WrongNumArgs(interp, "anycap STRING"); |
| 329 | + return Th_WrongNumArgs2(interp, |
| 330 | + argv[0], argl[0], |
| 331 | + "STRING"); |
| 319 | 332 | } |
| 320 | 333 | for(i=0; rc==0 && i<argl[1]; i++){ |
| 321 | 334 | rc = login_has_capability((char*)&argv[1][i],1); |
| 322 | 335 | } |
| 323 | 336 | if( g.thTrace ){ |
| | @@ -343,11 +356,13 @@ |
| 343 | 356 | int argc, |
| 344 | 357 | const char **argv, |
| 345 | 358 | int *argl |
| 346 | 359 | ){ |
| 347 | 360 | if( argc!=4 ){ |
| 348 | | - return Th_WrongNumArgs(interp, "combobox NAME TEXT-LIST NUMLINES"); |
| 361 | + return Th_WrongNumArgs2(interp, |
| 362 | + argv[0], argl[0], |
| 363 | + "NAME TEXT-LIST NUMLINES"); |
| 349 | 364 | } |
| 350 | 365 | if( enableOutput ){ |
| 351 | 366 | int height; |
| 352 | 367 | Blob name; |
| 353 | 368 | int nValue; |
| | @@ -401,11 +416,13 @@ |
| 401 | 416 | ){ |
| 402 | 417 | const char *z; |
| 403 | 418 | int size, n, i; |
| 404 | 419 | int iMin, iMax; |
| 405 | 420 | if( argc!=4 ){ |
| 406 | | - return Th_WrongNumArgs(interp, "linecount STRING MAX MIN"); |
| 421 | + return Th_WrongNumArgs2(interp, |
| 422 | + argv[0], argl[0], |
| 423 | + "STRING MAX MIN"); |
| 407 | 424 | } |
| 408 | 425 | if( Th_ToInt(interp, argv[2], argl[2], &iMax) ) return TH_ERROR; |
| 409 | 426 | if( Th_ToInt(interp, argv[3], argl[3], &iMin) ) return TH_ERROR; |
| 410 | 427 | z = argv[1]; |
| 411 | 428 | size = argl[1]; |
| | @@ -436,11 +453,13 @@ |
| 436 | 453 | int *argl |
| 437 | 454 | ){ |
| 438 | 455 | int openRepository; |
| 439 | 456 | |
| 440 | 457 | if( argc!=1 && argc!=2 ){ |
| 441 | | - return Th_WrongNumArgs(interp, "repository ?BOOLEAN?"); |
| 458 | + return Th_WrongNumArgs2(interp, |
| 459 | + argv[0], argl[0], |
| 460 | + "?BOOLEAN?"); |
| 442 | 461 | } |
| 443 | 462 | if( argc==2 ){ |
| 444 | 463 | if( Th_ToInt(interp, argv[1], argl[1], &openRepository) ){ |
| 445 | 464 | return TH_ERROR; |
| 446 | 465 | } |
| | @@ -489,11 +508,13 @@ |
| 489 | 508 | int *argl |
| 490 | 509 | ){ |
| 491 | 510 | char const * zVal; |
| 492 | 511 | int pos = 0; |
| 493 | 512 | if( argc != 2 ){ |
| 494 | | - return Th_WrongNumArgs(interp, "argv_get Index"); |
| 513 | + return Th_WrongNumArgs2(interp, |
| 514 | + argv[0], argl[0], |
| 515 | + "Index"); |
| 495 | 516 | } |
| 496 | 517 | if( TH_OK != Th_ToInt(interp, argv[1], argl[1], &pos) ){ |
| 497 | 518 | return TH_ERROR; |
| 498 | 519 | } |
| 499 | 520 | if( pos < 0 || pos >= g.argc ){ |
| | @@ -540,24 +561,29 @@ |
| 540 | 561 | char zShort[BufLen] = {0}; |
| 541 | 562 | char aBuf[BufLen] = {0}; |
| 542 | 563 | int hasArg; |
| 543 | 564 | char const * zVal = NULL; |
| 544 | 565 | char const * zDefault = NULL; |
| 566 | + int check; |
| 545 | 567 | if( 1 < argc ){ |
| 546 | 568 | assert( argl[1] < BufLen ); |
| 547 | | - snprintf( zLong, BufLen, "%s", argv[1] ); |
| 569 | + check = snprintf( zLong, BufLen, "%s", argv[1] ); |
| 570 | + assert( check <= BufLen ); |
| 548 | 571 | } |
| 549 | 572 | if( (2 < argc) && (0 < argl[2]) ){ |
| 550 | 573 | assert( argl[2] < BufLen ); |
| 551 | | - snprintf( zShort, BufLen, "%s", argv[2] ); |
| 574 | + check = snprintf( zShort, BufLen, "%s", argv[2] ); |
| 575 | + assert( check <= BufLen ); |
| 552 | 576 | } |
| 553 | 577 | if( 3 < argc){ |
| 554 | 578 | zDefault = argv[3]; |
| 555 | 579 | } |
| 556 | 580 | |
| 557 | 581 | if(0 == zLong[0]){ |
| 558 | | - return Th_WrongNumArgs(interp, "argv_getstr longName ?shortName? ?defaultVal?"); |
| 582 | + return Th_WrongNumArgs2(interp, |
| 583 | + argv[0], argl[0], |
| 584 | + "longName ?shortName? ?defaultVal?"); |
| 559 | 585 | } |
| 560 | 586 | zVal = find_option( zLong, zShort[0] ? zShort : NULL, 1 ); |
| 561 | 587 | if(!zVal){ |
| 562 | 588 | zVal = zDefault; |
| 563 | 589 | if(!zVal){ |
| | @@ -593,24 +619,29 @@ |
| 593 | 619 | int hasArg; |
| 594 | 620 | char const * zVal = NULL; |
| 595 | 621 | char const * zDefault = NULL; |
| 596 | 622 | int val; |
| 597 | 623 | int rc; |
| 624 | + int check; |
| 598 | 625 | if( 1 < argc ){ |
| 599 | 626 | assert( argl[1] < BufLen ); |
| 600 | | - snprintf( zLong, BufLen, "%s", argv[1] ); |
| 627 | + check = snprintf( zLong, BufLen, "%s", argv[1] ); |
| 628 | + assert( check <= BufLen ); |
| 601 | 629 | } |
| 602 | 630 | if( (2 < argc) && (0 < argl[2]) ){ |
| 603 | 631 | assert( argl[2] < BufLen ); |
| 604 | | - snprintf( zShort, BufLen, "%s", argv[2] ); |
| 632 | + check = snprintf( zShort, BufLen, "%s", argv[2] ); |
| 633 | + assert( check <= BufLen ); |
| 605 | 634 | } |
| 606 | 635 | if( 3 < argc){ |
| 607 | 636 | zDefault = argv[3]; |
| 608 | 637 | } |
| 609 | 638 | |
| 610 | 639 | if(0 == zLong[0]){ |
| 611 | | - return Th_WrongNumArgs(interp, "argv_getbool longName ?shortName? ?defaultVal?"); |
| 640 | + return Th_WrongNumArgs2(interp, |
| 641 | + argv[0], argl[0], |
| 642 | + "longName ?shortName? ?defaultVal?"); |
| 612 | 643 | } |
| 613 | 644 | zVal = find_option( zLong, zShort[0] ? zShort : NULL, 0 ); |
| 614 | 645 | if(zVal && !*zVal){ |
| 615 | 646 | zVal = "1"; |
| 616 | 647 | } |
| | @@ -647,24 +678,29 @@ |
| 647 | 678 | char aBuf[BufLen] = {0}; |
| 648 | 679 | int hasArg; |
| 649 | 680 | char const * zVal = NULL; |
| 650 | 681 | char const * zDefault = NULL; |
| 651 | 682 | int val = 0; |
| 683 | + int check; |
| 652 | 684 | if( 1 < argc ){ |
| 653 | 685 | assert( argl[1] < BufLen ); |
| 654 | | - snprintf( zLong, BufLen, "%s", argv[1] ); |
| 686 | + check = snprintf( zLong, BufLen, "%s", argv[1] ); |
| 687 | + assert( check <= BufLen ); |
| 655 | 688 | } |
| 656 | 689 | if( (2 < argc) && (0 < argl[2]) ){ |
| 657 | 690 | assert( argl[2] < BufLen ); |
| 658 | | - snprintf( zShort, BufLen, "%s", argv[2] ); |
| 691 | + check = snprintf( zShort, BufLen, "%s", argv[2] ); |
| 692 | + assert( check <= BufLen ); |
| 659 | 693 | } |
| 660 | 694 | if( 3 < argc){ |
| 661 | 695 | zDefault = argv[3]; |
| 662 | 696 | } |
| 663 | 697 | |
| 664 | 698 | if(0 == zLong[0]){ |
| 665 | | - return Th_WrongNumArgs(interp, "argv_getint longName ?shortName? ?defaultVal?"); |
| 699 | + return Th_WrongNumArgs2(interp, |
| 700 | + argv[0], argl[0], |
| 701 | + "longName ?shortName? ?defaultVal?"); |
| 666 | 702 | } |
| 667 | 703 | zVal = find_option( zLong, zShort[0] ? zShort : NULL, 0 ); |
| 668 | 704 | if(!zVal){ |
| 669 | 705 | zVal = zDefault; |
| 670 | 706 | if(!zVal){ |
| | @@ -697,11 +733,13 @@ |
| 697 | 733 | char const * zSql; |
| 698 | 734 | sqlite3_stmt * pStmt = NULL; |
| 699 | 735 | int rc; |
| 700 | 736 | char const * errMsg = NULL; |
| 701 | 737 | if( argc!=2 ){ |
| 702 | | - return Th_WrongNumArgs(interp, "query_prepare STRING"); |
| 738 | + return Th_WrongNumArgs2(interp, |
| 739 | + argv[0], argl[0], |
| 740 | + "STRING"); |
| 703 | 741 | } |
| 704 | 742 | zSql = argv[1]; |
| 705 | 743 | rc = sqlite3_prepare( g.db, zSql, strlen(zSql), &pStmt, NULL ); |
| 706 | 744 | if(SQLITE_OK==rc){ |
| 707 | 745 | if(sqlite3_column_count( pStmt ) < 1){ |
| | @@ -768,11 +806,13 @@ |
| 768 | 806 | char * zSql; |
| 769 | 807 | sqlite3_stmt * pStmt = NULL; |
| 770 | 808 | int rc = 0; |
| 771 | 809 | char const * arg; |
| 772 | 810 | if( argc!=2 ){ |
| 773 | | - return Th_WrongNumArgs(interp, "query_finalize StmtHandle"); |
| 811 | + return Th_WrongNumArgs2(interp, |
| 812 | + argv[0], argl[0], |
| 813 | + "StmtHandle"); |
| 774 | 814 | } |
| 775 | 815 | arg = argv[1]; |
| 776 | 816 | pStmt = queryStmtHandle(interp, arg, argl[1], &rc); |
| 777 | 817 | if( rc < 1 ){ |
| 778 | 818 | return TH_ERROR; |
| | @@ -814,15 +854,19 @@ |
| 814 | 854 | int * pIndex ){ |
| 815 | 855 | int index = 0; |
| 816 | 856 | sqlite3_stmt * stmt; |
| 817 | 857 | if( !pIndex ){ |
| 818 | 858 | if(argc<2){ |
| 819 | | - return Th_WrongNumArgs(interp, "StmtHandle"); |
| 859 | + return Th_WrongNumArgs2(interp, |
| 860 | + argv[0], argl[0], |
| 861 | + "StmtHandle"); |
| 820 | 862 | } |
| 821 | 863 | }else{ |
| 822 | 864 | if( argc<3 ){ |
| 823 | | - return Th_WrongNumArgs(interp, "StmtHandle, Index"); |
| 865 | + return Th_WrongNumArgs2(interp, |
| 866 | + argv[0], argl[0], |
| 867 | + "StmtHandle Index"); |
| 824 | 868 | } |
| 825 | 869 | if( 0 != Th_ToInt( interp, argv[2], argl[2], &index ) ){ |
| 826 | 870 | return TH_ERROR; |
| 827 | 871 | } |
| 828 | 872 | } |
| | @@ -854,11 +898,13 @@ |
| 854 | 898 | int *argl |
| 855 | 899 | ){ |
| 856 | 900 | sqlite3_stmt * pStmt = NULL; |
| 857 | 901 | int rc = 0; |
| 858 | 902 | if( argc!=2 ){ |
| 859 | | - return Th_WrongNumArgs(interp, "query_step StmtHandle"); |
| 903 | + return Th_WrongNumArgs2(interp, |
| 904 | + argv[0], argl[0], |
| 905 | + "StmtHandle"); |
| 860 | 906 | } |
| 861 | 907 | if(0 != queryStmtIndexArgs(interp, argc, argv, argl, &pStmt, NULL)){ |
| 862 | 908 | return TH_ERROR; |
| 863 | 909 | } |
| 864 | 910 | assert(NULL != pStmt); |
| | @@ -894,11 +940,13 @@ |
| 894 | 940 | sqlite3_stmt * pStmt = NULL; |
| 895 | 941 | char const * val; |
| 896 | 942 | int index = -1; |
| 897 | 943 | int valLen; |
| 898 | 944 | if( argc!=3 ){ |
| 899 | | - return Th_WrongNumArgs(interp, "query_col_string StmtHandle Index"); |
| 945 | + return Th_WrongNumArgs2(interp, |
| 946 | + argv[0], argl[0], |
| 947 | + "StmtHandle Index"); |
| 900 | 948 | } |
| 901 | 949 | queryStmtIndexArgs(interp, argc, argv, argl, &pStmt, &index); |
| 902 | 950 | if(index < 0){ |
| 903 | 951 | return TH_ERROR; |
| 904 | 952 | } |
| | @@ -924,11 +972,13 @@ |
| 924 | 972 | ){ |
| 925 | 973 | sqlite3_stmt * pStmt = NULL; |
| 926 | 974 | int rc = 0; |
| 927 | 975 | int index = -1; |
| 928 | 976 | if( argc!=3 ){ |
| 929 | | - return Th_WrongNumArgs(interp, "query_col_int StmtHandle Index"); |
| 977 | + return Th_WrongNumArgs2(interp, |
| 978 | + argv[0], argl[0], |
| 979 | + "StmtHandle Index"); |
| 930 | 980 | } |
| 931 | 981 | queryStmtIndexArgs(interp, argc, argv, argl, &pStmt, &index); |
| 932 | 982 | if(index < 0){ |
| 933 | 983 | return TH_ERROR; |
| 934 | 984 | } |
| | @@ -952,11 +1002,13 @@ |
| 952 | 1002 | ){ |
| 953 | 1003 | sqlite3_stmt * pStmt = NULL; |
| 954 | 1004 | double rc = 0; |
| 955 | 1005 | int index = -1; |
| 956 | 1006 | if( argc!=3 ){ |
| 957 | | - return Th_WrongNumArgs(interp, "query_col_double StmtHandle Index"); |
| 1007 | + return Th_WrongNumArgs2(interp, |
| 1008 | + argv[0], argl[0], |
| 1009 | + "StmtHandle Index"); |
| 958 | 1010 | } |
| 959 | 1011 | queryStmtIndexArgs(interp, argc, argv, argl, &pStmt, &index); |
| 960 | 1012 | if(index < 0){ |
| 961 | 1013 | return TH_ERROR; |
| 962 | 1014 | } |
| | @@ -981,11 +1033,13 @@ |
| 981 | 1033 | ){ |
| 982 | 1034 | sqlite3_stmt * pStmt = NULL; |
| 983 | 1035 | double rc = 0; |
| 984 | 1036 | int index = -1; |
| 985 | 1037 | if( argc!=3 ){ |
| 986 | | - return Th_WrongNumArgs(interp, "query_col_is_null StmtHandle Index"); |
| 1038 | + return Th_WrongNumArgs2(interp, |
| 1039 | + argv[0], argl[0], |
| 1040 | + "StmtHandle Index"); |
| 987 | 1041 | } |
| 988 | 1042 | queryStmtIndexArgs(interp, argc, argv, argl, &pStmt, &index); |
| 989 | 1043 | if(index < 0){ |
| 990 | 1044 | return TH_ERROR; |
| 991 | 1045 | } |
| | @@ -1013,11 +1067,13 @@ |
| 1013 | 1067 | ){ |
| 1014 | 1068 | sqlite3_stmt * pStmt = NULL; |
| 1015 | 1069 | double rc = 0; |
| 1016 | 1070 | int index = -1; |
| 1017 | 1071 | if( argc!=3 ){ |
| 1018 | | - return Th_WrongNumArgs(interp, "query_col_type StmtHandle Index"); |
| 1072 | + return Th_WrongNumArgs2(interp, |
| 1073 | + argv[0], argl[0], |
| 1074 | + "StmtHandle Index"); |
| 1019 | 1075 | } |
| 1020 | 1076 | queryStmtIndexArgs(interp, argc, argv, argl, &pStmt, &index); |
| 1021 | 1077 | if(index < 0){ |
| 1022 | 1078 | return TH_ERROR; |
| 1023 | 1079 | } |
| | @@ -1040,11 +1096,13 @@ |
| 1040 | 1096 | int *argl |
| 1041 | 1097 | ){ |
| 1042 | 1098 | int rc; |
| 1043 | 1099 | sqlite3_stmt * pStmt = NULL; |
| 1044 | 1100 | if( argc!=2 ){ |
| 1045 | | - return Th_WrongNumArgs(interp, "query_col_count StmtHandle"); |
| 1101 | + return Th_WrongNumArgs2(interp, |
| 1102 | + argv[0], argl[0], |
| 1103 | + "StmtHandle"); |
| 1046 | 1104 | } |
| 1047 | 1105 | pStmt = queryStmtHandle(interp, argv[1], argl[1], NULL); |
| 1048 | 1106 | if( NULL == pStmt ){ |
| 1049 | 1107 | return TH_ERROR; |
| 1050 | 1108 | } |
| | @@ -1071,11 +1129,13 @@ |
| 1071 | 1129 | char const * val; |
| 1072 | 1130 | int index; |
| 1073 | 1131 | int rc = 0; |
| 1074 | 1132 | int valLen; |
| 1075 | 1133 | if( argc!=3 ){ |
| 1076 | | - return Th_WrongNumArgs(interp, "query_col_name StmtHandle Index"); |
| 1134 | + return Th_WrongNumArgs2(interp, |
| 1135 | + argv[0], argl[0], |
| 1136 | + "StmtHandle Index"); |
| 1077 | 1137 | } |
| 1078 | 1138 | pStmt = queryStmtHandle(interp, argv[1], argl[1], &rc); |
| 1079 | 1139 | if( rc < 1 ){ |
| 1080 | 1140 | return TH_ERROR; |
| 1081 | 1141 | } |
| | @@ -1108,11 +1168,13 @@ |
| 1108 | 1168 | ){ |
| 1109 | 1169 | sqlite3_stmt * pStmt = NULL; |
| 1110 | 1170 | int rc; |
| 1111 | 1171 | int index = 0; |
| 1112 | 1172 | if( argc!=3 ){ |
| 1113 | | - return Th_WrongNumArgs(interp, "query_bind_null StmtHandle Index"); |
| 1173 | + return Th_WrongNumArgs2(interp, |
| 1174 | + argv[0], argl[0], |
| 1175 | + "StmtHandle Index"); |
| 1114 | 1176 | } |
| 1115 | 1177 | queryStmtIndexArgs(interp, argc, argv, argl, &pStmt, &index); |
| 1116 | 1178 | if(index < 1){ |
| 1117 | 1179 | return TH_ERROR; |
| 1118 | 1180 | } |
| | @@ -1141,11 +1203,13 @@ |
| 1141 | 1203 | ){ |
| 1142 | 1204 | sqlite3_stmt * pStmt = NULL; |
| 1143 | 1205 | int rc; |
| 1144 | 1206 | int index = 0; |
| 1145 | 1207 | if( argc!=4 ){ |
| 1146 | | - return Th_WrongNumArgs(interp, "query_bind_string StmtHandle Index val"); |
| 1208 | + return Th_WrongNumArgs2(interp, |
| 1209 | + argv[0], argl[0], |
| 1210 | + "StmtHandle Index Value"); |
| 1147 | 1211 | } |
| 1148 | 1212 | queryStmtIndexArgs(interp, argc, argv, argl, &pStmt, &index); |
| 1149 | 1213 | if(index < 1){ |
| 1150 | 1214 | return TH_ERROR; |
| 1151 | 1215 | } |
| | @@ -1174,11 +1238,13 @@ |
| 1174 | 1238 | sqlite3_stmt * pStmt = NULL; |
| 1175 | 1239 | int rc; |
| 1176 | 1240 | int val; |
| 1177 | 1241 | int index = 0; |
| 1178 | 1242 | if( argc!=4 ){ |
| 1179 | | - return Th_WrongNumArgs(interp, "query_bind_int StmtHandle Index val"); |
| 1243 | + return Th_WrongNumArgs2(interp, |
| 1244 | + argv[0], argl[0], |
| 1245 | + "StmtHandle Index Value"); |
| 1180 | 1246 | } |
| 1181 | 1247 | queryStmtIndexArgs(interp, argc, argv, argl, &pStmt, &index); |
| 1182 | 1248 | if(index < 1){ |
| 1183 | 1249 | return TH_ERROR; |
| 1184 | 1250 | } |
| | @@ -1211,11 +1277,13 @@ |
| 1211 | 1277 | sqlite3_stmt * pStmt = NULL; |
| 1212 | 1278 | int rc; |
| 1213 | 1279 | double val; |
| 1214 | 1280 | int index = 0; |
| 1215 | 1281 | if( argc!=4 ){ |
| 1216 | | - return Th_WrongNumArgs(interp, "query_bind_double StmtHandle Index val"); |
| 1282 | + return Th_WrongNumArgs2(interp, |
| 1283 | + argv[0], argl[0], |
| 1284 | + "StmtHandle Index Value"); |
| 1217 | 1285 | } |
| 1218 | 1286 | queryStmtIndexArgs(interp, argc, argv, argl, &pStmt, &index); |
| 1219 | 1287 | if(index < 1){ |
| 1220 | 1288 | return TH_ERROR; |
| 1221 | 1289 | } |
| | @@ -1231,10 +1299,12 @@ |
| 1231 | 1299 | return TH_OK; |
| 1232 | 1300 | } |
| 1233 | 1301 | |
| 1234 | 1302 | #endif |
| 1235 | 1303 | /* end TH_USE_SQLITE */ |
| 1304 | + |
| 1305 | + |
| 1236 | 1306 | |
| 1237 | 1307 | /* |
| 1238 | 1308 | ** Make sure the interpreter has been initialized. Initialize it if |
| 1239 | 1309 | ** it has not been already. |
| 1240 | 1310 | ** |
| 1241 | 1311 | |