Check-in [ab2836e6c1]
Not logged in

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Overview
Comment:improve fix from [d74c9c42c0]
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA1: ab2836e6c1dc53b8004b8f9d02bc673fb125f2c6
User & Date: chw 2019-07-07 05:18:14.472
Context
2019-07-07
08:21
cleanup missing pieces in tbcload and tclcompiler check-in: 7a110bb514 user: chw tags: trunk
05:18
improve fix from [d74c9c42c0] check-in: ab2836e6c1 user: chw tags: trunk
04:51
use curl option -sslverifypeer 0 in TSB's Northwind example check-in: 39ee1aca6e user: chw tags: trunk
Changes
Unified Diff Ignore Whitespace Patch
Changes to undroid/tclcompiler/cmpWrite.c.
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
    Interp *iPtr = (Interp *) interp;
    Tcl_DString inBuffer, outBuffer;
    char *nativeInName;
    char *nativeOutName;
    Tcl_Channel chan;
    int result;
    struct stat statBuf;
	unsigned short fileMode;
    Tcl_Obj *cmdObjPtr;
    LiteralTable glt; /* Save buffer for global literals */

    Tcl_ResetResult(interp);

    Tcl_DStringInit(&inBuffer);
    Tcl_DStringInit(&outBuffer);







|







631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
    Interp *iPtr = (Interp *) interp;
    Tcl_DString inBuffer, outBuffer;
    char *nativeInName;
    char *nativeOutName;
    Tcl_Channel chan;
    int result;
    struct stat statBuf;
    unsigned short fileMode;
    Tcl_Obj *cmdObjPtr;
    LiteralTable glt; /* Save buffer for global literals */

    Tcl_ResetResult(interp);

    Tcl_DStringInit(&inBuffer);
    Tcl_DStringInit(&outBuffer);
3141
3142
3143
3144
3145
3146
3147
3148
3149
3150
3151
3152
3153
3154
3155
            if (numChars > 50) {
                numChars = 50;
                ellipsis = "...";
            }
            sprintf(buf, "\n    (compiling body of proc \"%.*s%s\", line %d)",
                    numChars, fullName, ellipsis, ERRORLINE(interp));
            Tcl_AddObjErrorInfo(interp, buf, -1);
	    }
        goto cleanAndReturn;
    }

    ctxPtr->numCompiledBodies += 1;

    /*
     * Now that we have compiled the procedure, create a new TCL object







|







3141
3142
3143
3144
3145
3146
3147
3148
3149
3150
3151
3152
3153
3154
3155
            if (numChars > 50) {
                numChars = 50;
                ellipsis = "...";
            }
            sprintf(buf, "\n    (compiling body of proc \"%.*s%s\", line %d)",
                    numChars, fullName, ellipsis, ERRORLINE(interp));
            Tcl_AddObjErrorInfo(interp, buf, -1);
        }
        goto cleanAndReturn;
    }

    ctxPtr->numCompiledBodies += 1;

    /*
     * Now that we have compiled the procedure, create a new TCL object
4550
4551
4552
4553
4554
4555
4556
4557
4558
4559
4560
4561
4562
4563
4564
4565

4566
4567
4568
4569
4570
4571
4572

        /*
         * We emit from least significant to most significant char, so that
         * the 0 chars from an incomplete 4-tuple are the last ones in the
         * sequence and can be omitted (for the last 4-tuple in the array).
         */

        toEmit[4] = EN(word / (85UL * 85 * 85 * 85));
        word %= (85UL * 85 * 85 * 85);
        toEmit[3] = EN(word / (85UL * 85 * 85));
        word %= (85UL * 85 * 85);
        toEmit[2] = EN(word / (85UL * 85));
        word %= (85UL * 85);
        toEmit[1] = EN(word / 85UL);
        word %= 85UL;
        toEmit[0] = EN(word);


        /*
         * Emit only 'numBytes+1' chars, since the extra ones are all '!'
         * and can therefore be reconstructed by the decoder (if we know the
         * number of bytes that were encoded).
         */








|
<
<
<
<
<
|
|
<
>







4550
4551
4552
4553
4554
4555
4556
4557





4558
4559

4560
4561
4562
4563
4564
4565
4566
4567

        /*
         * We emit from least significant to most significant char, so that
         * the 0 chars from an incomplete 4-tuple are the last ones in the
         * sequence and can be omitted (for the last 4-tuple in the array).
         */

        for (i=0 ; i < 5 ; i++) {





            toEmit[i] = EN(word % 85UL);
            word /= 85UL;

        }

        /*
         * Emit only 'numBytes+1' chars, since the extra ones are all '!'
         * and can therefore be reconstructed by the decoder (if we know the
         * number of bytes that were encoded).
         */