Check-in [1426863e72]
Not logged in

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

Overview
Comment:merge with trunk
Timelines: family | ancestors | descendants | both | wtf-8-experiment
Files: files | file ages | folders
SHA1: 1426863e728055c4b45ccab4e057045f56a0f80e
User & Date: chw 2019-09-12 10:09:45
Context
2019-09-13
11:58
merge with trunk check-in: f658d4913c user: chw tags: wtf-8-experiment
2019-09-12
10:09
merge with trunk check-in: 1426863e72 user: chw tags: wtf-8-experiment
10:08
now build haiku undroidwish with jsmpeg and imgjp2 check-in: e956c9bbda user: chw tags: trunk
2019-09-11
16:15
merge with trunk check-in: 8c494d215a user: chw tags: wtf-8-experiment
Changes

Changes to jni/SDL2/configure.

24294
24295
24296
24297
24298
24299
24300

24301
24302
24303
24304
24305
24306
24307
        ac_default_prefix=/boot/system
        CheckDummyVideo
        CheckDiskAudio
        CheckDummyAudio
        CheckDLOPEN
        CheckHaikuVideo
        CheckHaikuGL

        CheckPTHREAD

        # Set up files for the audio library
        if test x$enable_audio = xyes; then

$as_echo "#define SDL_AUDIO_DRIVER_HAIKU 1" >>confdefs.h








>







24294
24295
24296
24297
24298
24299
24300
24301
24302
24303
24304
24305
24306
24307
24308
        ac_default_prefix=/boot/system
        CheckDummyVideo
        CheckDiskAudio
        CheckDummyAudio
        CheckDLOPEN
        CheckHaikuVideo
        CheckHaikuGL
        CheckJSMPEGVideo
        CheckPTHREAD

        # Set up files for the audio library
        if test x$enable_audio = xyes; then

$as_echo "#define SDL_AUDIO_DRIVER_HAIKU 1" >>confdefs.h

Changes to jni/SDL2/configure.in.

3629
3630
3631
3632
3633
3634
3635

3636
3637
3638
3639
3640
3641
3642
        ac_default_prefix=/boot/system
        CheckDummyVideo
        CheckDiskAudio
        CheckDummyAudio
        CheckDLOPEN
        CheckHaikuVideo
        CheckHaikuGL

        CheckPTHREAD

        # Set up files for the audio library
        if test x$enable_audio = xyes; then
            AC_DEFINE(SDL_AUDIO_DRIVER_HAIKU, 1, [ ])
            SOURCES="$SOURCES $srcdir/src/audio/haiku/*.cc"
            SUMMARY_audio="${SUMMARY_audio} haiku"







>







3629
3630
3631
3632
3633
3634
3635
3636
3637
3638
3639
3640
3641
3642
3643
        ac_default_prefix=/boot/system
        CheckDummyVideo
        CheckDiskAudio
        CheckDummyAudio
        CheckDLOPEN
        CheckHaikuVideo
        CheckHaikuGL
        CheckJSMPEGVideo
        CheckPTHREAD

        # Set up files for the audio library
        if test x$enable_audio = xyes; then
            AC_DEFINE(SDL_AUDIO_DRIVER_HAIKU, 1, [ ])
            SOURCES="$SOURCES $srcdir/src/audio/haiku/*.cc"
            SUMMARY_audio="${SUMMARY_audio} haiku"

Changes to jni/sdl2tk/sdl/SdlTkInt.c.

5286
5287
5288
5289
5290
5291
5292
5293
5294
5295
5296
5297
5298
5299
5300
....
5318
5319
5320
5321
5322
5323
5324
5325
5326
5327
5328
5329
5330
5331
5332
	    last_sc = (void *) new_sc;
	    SdlTkSetSWCursor(new_sc);
	}
	return;
    }
    hPtr = Tcl_FindHashEntry(&SdlTkX.sdlcursors, INT2PTR(shape));
    if (hPtr == NULL) {
#ifndef __HAIKU__
	if (SdlTkX.is_framebuffer) {
	    const unsigned char *data, *mask;
	    int x, y;

	    data = SdlTkGetSystemCursorData(shape);
	    if (data != NULL) {
		/* Hot spot */
................................................................................
		}
		sc = SDL_CreateCursor(d, m, 64, 64, x, y);
		if (sc != NULL) {
		    goto madeCursor;
		}
	    }
	}
#endif
	sc = SDL_CreateSystemCursor(shape);
madeCursor:
	if (sc != NULL) {
	    int isNew;

	    hPtr = Tcl_CreateHashEntry(&SdlTkX.sdlcursors,
				       INT2PTR(shape), &isNew);







<







 







<







5286
5287
5288
5289
5290
5291
5292

5293
5294
5295
5296
5297
5298
5299
....
5317
5318
5319
5320
5321
5322
5323

5324
5325
5326
5327
5328
5329
5330
	    last_sc = (void *) new_sc;
	    SdlTkSetSWCursor(new_sc);
	}
	return;
    }
    hPtr = Tcl_FindHashEntry(&SdlTkX.sdlcursors, INT2PTR(shape));
    if (hPtr == NULL) {

	if (SdlTkX.is_framebuffer) {
	    const unsigned char *data, *mask;
	    int x, y;

	    data = SdlTkGetSystemCursorData(shape);
	    if (data != NULL) {
		/* Hot spot */
................................................................................
		}
		sc = SDL_CreateCursor(d, m, 64, 64, x, y);
		if (sc != NULL) {
		    goto madeCursor;
		}
	    }
	}

	sc = SDL_CreateSystemCursor(shape);
madeCursor:
	if (sc != NULL) {
	    int isNew;

	    hPtr = Tcl_CreateHashEntry(&SdlTkX.sdlcursors,
				       INT2PTR(shape), &isNew);

Changes to jni/sdl2tk/sdl/SdlTkX.c.

6093
6094
6095
6096
6097
6098
6099






6100
6101
6102
6103
6104
6105
6106
	}
    }
#endif

#ifdef __HAIKU__
    if (!SdlTkX.arg_nogl) {
	SdlTkX.arg_swcursor = 1;






    }
#endif
    if (SdlTkX.arg_swcursor) {
	SDL_ShowCursor(0);
    }

    memset(&rendinfo, 0, sizeof (rendinfo));







>
>
>
>
>
>







6093
6094
6095
6096
6097
6098
6099
6100
6101
6102
6103
6104
6105
6106
6107
6108
6109
6110
6111
6112
	}
    }
#endif

#ifdef __HAIKU__
    if (!SdlTkX.arg_nogl) {
	SdlTkX.arg_swcursor = 1;
    } else {
	char *p = getenv("SDL_VIDEODRIVER");

	if ((p != NULL) && (strcmp(p, "jsmpeg") == 0)) {
	    SdlTkX.arg_swcursor = 1;
	}
    }
#endif
    if (SdlTkX.arg_swcursor) {
	SDL_ShowCursor(0);
    }

    memset(&rendinfo, 0, sizeof (rendinfo));

Changes to jni/tcl/generic/tclCompile.c.

2117
2118
2119
2120
2121
2122
2123

2124
2125
2126
2127














2128
2129
2130
2131
2132
2133
2134
....
2199
2200
2201
2202
2203
2204
2205






2206


2207
2208
2209
2210
2211
2212
2213
{
    int lastCmdIdx = -1;	/* Index into envPtr->cmdMapPtr of the last
				 * command this routine compiles into bytecode.
				 * Initial value of -1 indicates this routine
				 * has not yet generated any bytecode. */
    const char *p = script;	/* Where we are in our compile. */
    int depth = TclGetStackDepth(envPtr);


    if (envPtr->iPtr == NULL) {
	Tcl_Panic("TclCompileScript() called on uninitialized CompileEnv");
    }















    /* Each iteration compiles one command from the script. */

    if (numBytes > 0) {
      /*
       * Don't use system stack (size of Tcl_Parse is ca. 400 bytes), so
       * many nested compilations (body enclosed in body) can cause abnormal
................................................................................
	     * The advantage of this shortcut is that CompileCommandTokens()
	     * can be written with an assumption that parsePtr->numWords > 0, with
	     * the implication the CCT() always generates bytecode.
	     */
	    continue;
	}







	lastCmdIdx = CompileCommandTokens(interp, parsePtr, envPtr);



	/*
	 * TIP #280: Track lines in the just compiled command.
	 */

	TclAdvanceLines(&envPtr->line, parsePtr->commandStart, p);
	TclAdvanceContinuations(&envPtr->line, &envPtr->clNext,







>




>
>
>
>
>
>
>
>
>
>
>
>
>
>







 







>
>
>
>
>
>

>
>







2117
2118
2119
2120
2121
2122
2123
2124
2125
2126
2127
2128
2129
2130
2131
2132
2133
2134
2135
2136
2137
2138
2139
2140
2141
2142
2143
2144
2145
2146
2147
2148
2149
....
2214
2215
2216
2217
2218
2219
2220
2221
2222
2223
2224
2225
2226
2227
2228
2229
2230
2231
2232
2233
2234
2235
2236
{
    int lastCmdIdx = -1;	/* Index into envPtr->cmdMapPtr of the last
				 * command this routine compiles into bytecode.
				 * Initial value of -1 indicates this routine
				 * has not yet generated any bytecode. */
    const char *p = script;	/* Where we are in our compile. */
    int depth = TclGetStackDepth(envPtr);
    Interp *iPtr = (Interp *) interp;

    if (envPtr->iPtr == NULL) {
	Tcl_Panic("TclCompileScript() called on uninitialized CompileEnv");
    }
    /* 
     * Check depth to avoid overflow of the C execution stack by too many
     * nested calls of TclCompileScript (considering interp recursionlimit).
     * Factor 5/4 (1.25) is used to avoid too mistaken limit recognition
     * during "mixed" evaluation and compilation process (nested eval+compile)
     * and is good enough for default recursionlimit (1000).
     */
    if (iPtr->numLevels / 5 > iPtr->maxNestingDepth / 4) {
	Tcl_SetObjResult(interp, Tcl_NewStringObj(
	    "too many nested compilations (infinite loop?)", -1));
	Tcl_SetErrorCode(interp, "TCL", "LIMIT", "STACK", NULL);
	TclCompileSyntaxError(interp, envPtr);
	return;
    }

    /* Each iteration compiles one command from the script. */

    if (numBytes > 0) {
      /*
       * Don't use system stack (size of Tcl_Parse is ca. 400 bytes), so
       * many nested compilations (body enclosed in body) can cause abnormal
................................................................................
	     * The advantage of this shortcut is that CompileCommandTokens()
	     * can be written with an assumption that parsePtr->numWords > 0, with
	     * the implication the CCT() always generates bytecode.
	     */
	    continue;
	}

	/* 
	 * Avoid stack exhaustion by too many nested calls of TclCompileScript
	 * (considering interp recursionlimit).
	 */
	iPtr->numLevels++;

	lastCmdIdx = CompileCommandTokens(interp, parsePtr, envPtr);

	iPtr->numLevels--;

	/*
	 * TIP #280: Track lines in the just compiled command.
	 */

	TclAdvanceLines(&envPtr->line, parsePtr->commandStart, p);
	TclAdvanceContinuations(&envPtr->line, &envPtr->clNext,

Changes to jni/tcl/library/tzdata/America/Detroit.

7
8
9
10
11
12
13





14
15
16
17
18
19
20
    {-883594800 -18000 0 EST}
    {-880218000 -14400 1 EWT}
    {-769395600 -14400 1 EPT}
    {-765396000 -18000 0 EST}
    {-757364400 -18000 0 EST}
    {-684349200 -14400 1 EDT}
    {-671047200 -18000 0 EST}





    {94712400 -18000 0 EST}
    {104914800 -14400 1 EDT}
    {120636000 -18000 0 EST}
    {126687600 -14400 1 EDT}
    {152085600 -18000 0 EST}
    {157784400 -18000 0 EST}
    {167814000 -14400 0 EDT}







>
>
>
>
>







7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
    {-883594800 -18000 0 EST}
    {-880218000 -14400 1 EWT}
    {-769395600 -14400 1 EPT}
    {-765396000 -18000 0 EST}
    {-757364400 -18000 0 EST}
    {-684349200 -14400 1 EDT}
    {-671047200 -18000 0 EST}
    {-80506740 -14400 0 EDT}
    {-68666400 -18000 0 EST}
    {-52938000 -14400 1 EDT}
    {-37216800 -18000 0 EST}
    {-31518000 -18000 0 EST}
    {94712400 -18000 0 EST}
    {104914800 -14400 1 EDT}
    {120636000 -18000 0 EST}
    {126687600 -14400 1 EDT}
    {152085600 -18000 0 EST}
    {157784400 -18000 0 EST}
    {167814000 -14400 0 EDT}

Changes to jni/tcl/library/tzdata/America/Edmonton.

16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
    {-1473001200 -21600 1 MDT}
    {-1459699200 -25200 0 MST}
    {-880210800 -21600 1 MWT}
    {-769395600 -21600 1 MPT}
    {-765388800 -25200 0 MST}
    {-715791600 -21600 1 MDT}
    {-702489600 -25200 0 MST}
    {-84380400 -21600 1 MDT}
    {-68659200 -25200 0 MST}
    {-21481200 -21600 1 MDT}
    {-5760000 -25200 0 MST}
    {73472400 -21600 1 MDT}
    {89193600 -25200 0 MST}
    {104922000 -21600 1 MDT}
    {120643200 -25200 0 MST}
    {136371600 -21600 1 MDT}
    {152092800 -25200 0 MST}
    {167821200 -21600 1 MDT}







<
<
<
<







16
17
18
19
20
21
22




23
24
25
26
27
28
29
    {-1473001200 -21600 1 MDT}
    {-1459699200 -25200 0 MST}
    {-880210800 -21600 1 MWT}
    {-769395600 -21600 1 MPT}
    {-765388800 -25200 0 MST}
    {-715791600 -21600 1 MDT}
    {-702489600 -25200 0 MST}




    {73472400 -21600 1 MDT}
    {89193600 -25200 0 MST}
    {104922000 -21600 1 MDT}
    {120643200 -25200 0 MST}
    {136371600 -21600 1 MDT}
    {152092800 -25200 0 MST}
    {167821200 -21600 1 MDT}

Changes to jni/tcl/library/tzdata/America/Indiana/Tell_City.

7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38

39

40
41
42
43
44
45
46
47
    {-1615136400 -21600 0 CST}
    {-1601827200 -18000 1 CDT}
    {-1583686800 -21600 0 CST}
    {-880214400 -18000 1 CWT}
    {-769395600 -18000 1 CPT}
    {-765392400 -21600 0 CST}
    {-757360800 -21600 0 CST}
    {-747244800 -18000 1 CDT}
    {-733942800 -21600 0 CST}
    {-526492800 -18000 1 CDT}
    {-513190800 -21600 0 CST}
    {-495043200 -18000 1 CDT}
    {-481741200 -21600 0 CST}
    {-462996000 -18000 1 CDT}
    {-450291600 -21600 0 CST}
    {-431539200 -18000 1 CDT}
    {-418237200 -21600 0 CST}
    {-400089600 -18000 1 CDT}
    {-386787600 -21600 0 CST}
    {-368640000 -18000 1 CDT}
    {-355338000 -21600 0 CST}
    {-337190400 -18000 1 CDT}
    {-323888400 -21600 0 CST}
    {-305740800 -18000 1 CDT}
    {-289414800 -21600 0 CST}
    {-273686400 -18000 1 CDT}
    {-260989200 -21600 0 CST}
    {-242236800 -18000 1 CDT}
    {-226515600 -21600 0 CST}
    {-210787200 -18000 1 CDT}
    {-195066000 -21600 0 CST}
    {-179337600 -18000 0 EST}

    {-31518000 -18000 0 EST}

    {-21488400 -14400 1 EDT}
    {-5767200 -18000 0 EST}
    {9961200 -14400 1 EDT}
    {25682400 -18000 0 EST}
    {31554000 -18000 0 EST}
    {1143961200 -21600 0 CST}
    {1143964800 -18000 1 CDT}
    {1162105200 -21600 0 CST}







<
<
<
<
<
<











|

|





>
|
>
|







7
8
9
10
11
12
13






14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
    {-1615136400 -21600 0 CST}
    {-1601827200 -18000 1 CDT}
    {-1583686800 -21600 0 CST}
    {-880214400 -18000 1 CWT}
    {-769395600 -18000 1 CPT}
    {-765392400 -21600 0 CST}
    {-757360800 -21600 0 CST}






    {-462996000 -18000 1 CDT}
    {-450291600 -21600 0 CST}
    {-431539200 -18000 1 CDT}
    {-418237200 -21600 0 CST}
    {-400089600 -18000 1 CDT}
    {-386787600 -21600 0 CST}
    {-368640000 -18000 1 CDT}
    {-355338000 -21600 0 CST}
    {-337190400 -18000 1 CDT}
    {-323888400 -21600 0 CST}
    {-305740800 -18000 1 CDT}
    {-292438800 -21600 0 CST}
    {-273686400 -18000 1 CDT}
    {-257965200 -21600 0 CST}
    {-242236800 -18000 1 CDT}
    {-226515600 -21600 0 CST}
    {-210787200 -18000 1 CDT}
    {-195066000 -21600 0 CST}
    {-179337600 -18000 0 EST}
    {-68662800 -21600 0 CST}
    {-52934400 -18000 1 CDT}
    {-37213200 -21600 0 CST}
    {-21484800 -14400 0 EDT}
    {-5767200 -18000 0 EST}
    {9961200 -14400 1 EDT}
    {25682400 -18000 0 EST}
    {31554000 -18000 0 EST}
    {1143961200 -21600 0 CST}
    {1143964800 -18000 1 CDT}
    {1162105200 -21600 0 CST}

Changes to jni/tcl/library/tzdata/America/Kentucky/Louisville.

13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
..
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
    {-905097600 -18000 1 CDT}
    {-891795600 -21600 0 CST}
    {-883591200 -21600 0 CST}
    {-880214400 -18000 1 CWT}
    {-769395600 -18000 1 CPT}
    {-765392400 -21600 0 CST}
    {-757360800 -21600 0 CST}
    {-747244800 -18000 1 CDT}
    {-744224400 -21600 0 CST}
    {-715795200 -18000 1 CDT}
    {-684349200 -18000 1 CDT}
    {-652899600 -18000 1 CDT}
    {-620845200 -18000 1 CDT}
    {-608144400 -21600 0 CST}
    {-589392000 -18000 1 CDT}
    {-576090000 -21600 0 CST}
    {-557942400 -18000 1 CDT}
    {-544640400 -21600 0 CST}
    {-526492800 -18000 1 CDT}
    {-513190800 -21600 0 CST}
................................................................................
    {-368640000 -18000 1 CDT}
    {-352918800 -21600 0 CST}
    {-337190400 -18000 1 CDT}
    {-321469200 -21600 0 CST}
    {-305740800 -18000 1 CDT}
    {-289414800 -21600 0 CST}
    {-273686400 -18000 1 CDT}
    {-266432400 -18000 0 EST}
    {-63140400 -18000 0 EST}
    {-52938000 -14400 1 EDT}
    {-37216800 -18000 0 EST}
    {-21488400 -14400 1 EDT}
    {-5767200 -18000 0 EST}
    {9961200 -14400 1 EDT}
    {25682400 -18000 0 EST}







|

|
<
<
<







 







|







13
14
15
16
17
18
19
20
21
22



23
24
25
26
27
28
29
..
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
    {-905097600 -18000 1 CDT}
    {-891795600 -21600 0 CST}
    {-883591200 -21600 0 CST}
    {-880214400 -18000 1 CWT}
    {-769395600 -18000 1 CPT}
    {-765392400 -21600 0 CST}
    {-757360800 -21600 0 CST}
    {-747251940 -18000 1 CDT}
    {-744224400 -21600 0 CST}
    {-620841600 -18000 1 CDT}



    {-608144400 -21600 0 CST}
    {-589392000 -18000 1 CDT}
    {-576090000 -21600 0 CST}
    {-557942400 -18000 1 CDT}
    {-544640400 -21600 0 CST}
    {-526492800 -18000 1 CDT}
    {-513190800 -21600 0 CST}
................................................................................
    {-368640000 -18000 1 CDT}
    {-352918800 -21600 0 CST}
    {-337190400 -18000 1 CDT}
    {-321469200 -21600 0 CST}
    {-305740800 -18000 1 CDT}
    {-289414800 -21600 0 CST}
    {-273686400 -18000 1 CDT}
    {-266428800 -18000 0 EST}
    {-63140400 -18000 0 EST}
    {-52938000 -14400 1 EDT}
    {-37216800 -18000 0 EST}
    {-21488400 -14400 1 EDT}
    {-5767200 -18000 0 EST}
    {9961200 -14400 1 EDT}
    {25682400 -18000 0 EST}

Changes to jni/tcl/library/tzdata/America/Vancouver.

5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
    {-2713880852 -28800 0 PST}
    {-1632060000 -25200 1 PDT}
    {-1615129200 -28800 0 PST}
    {-880207200 -25200 1 PWT}
    {-769395600 -25200 1 PPT}
    {-765385200 -28800 0 PST}
    {-747237600 -25200 1 PDT}
    {-732726000 -28800 0 PST}
    {-715788000 -25200 1 PDT}
    {-702486000 -28800 0 PST}
    {-684338400 -25200 1 PDT}
    {-671036400 -28800 0 PST}
    {-652888800 -25200 1 PDT}
    {-639586800 -28800 0 PST}
    {-620834400 -25200 1 PDT}







|







5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
    {-2713880852 -28800 0 PST}
    {-1632060000 -25200 1 PDT}
    {-1615129200 -28800 0 PST}
    {-880207200 -25200 1 PWT}
    {-769395600 -25200 1 PPT}
    {-765385200 -28800 0 PST}
    {-747237600 -25200 1 PDT}
    {-733935600 -28800 0 PST}
    {-715788000 -25200 1 PDT}
    {-702486000 -28800 0 PST}
    {-684338400 -25200 1 PDT}
    {-671036400 -28800 0 PST}
    {-652888800 -25200 1 PDT}
    {-639586800 -28800 0 PST}
    {-620834400 -25200 1 PDT}

Changes to jni/tcl/library/tzdata/Asia/Hong_Kong.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# created by tools/tclZIC.tcl - do not edit

set TZData(:Asia/Hong_Kong) {
    {-9223372036854775808 27402 0 LMT}
    {-2056690800 28800 0 HKT}
    {-900910800 32400 1 HKST}
    {-891579600 30600 0 HKT}
    {-884248200 32400 0 JST}
    {-761209200 28800 0 HKT}
    {-747907200 32400 1 HKST}
    {-728541000 28800 0 HKT}
    {-717049800 32400 1 HKST}
    {-697091400 28800 0 HKT}
    {-683785800 32400 1 HKST}






|







1
2
3
4
5
6
7
8
9
10
11
12
13
14
# created by tools/tclZIC.tcl - do not edit

set TZData(:Asia/Hong_Kong) {
    {-9223372036854775808 27402 0 LMT}
    {-2056690800 28800 0 HKT}
    {-900910800 32400 1 HKST}
    {-891579600 30600 1 HKWT}
    {-884248200 32400 0 JST}
    {-761209200 28800 0 HKT}
    {-747907200 32400 1 HKST}
    {-728541000 28800 0 HKT}
    {-717049800 32400 1 HKST}
    {-697091400 28800 0 HKT}
    {-683785800 32400 1 HKST}

Changes to jni/tcl/library/tzdata/Asia/Seoul.

1
2
3
4
5
6
7








8
9
10
11
12
13
14
# created by tools/tclZIC.tcl - do not edit

set TZData(:Asia/Seoul) {
    {-9223372036854775808 30472 0 LMT}
    {-1948782472 30600 0 KST}
    {-1830414600 32400 0 JST}
    {-767350800 32400 0 KST}








    {-498128400 30600 0 KST}
    {-462702600 34200 1 KDT}
    {-451733400 30600 0 KST}
    {-429784200 34200 1 KDT}
    {-418296600 30600 0 KST}
    {-399544200 34200 1 KDT}
    {-387451800 30600 0 KST}







>
>
>
>
>
>
>
>







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# created by tools/tclZIC.tcl - do not edit

set TZData(:Asia/Seoul) {
    {-9223372036854775808 30472 0 LMT}
    {-1948782472 30600 0 KST}
    {-1830414600 32400 0 JST}
    {-767350800 32400 0 KST}
    {-681210000 36000 1 KDT}
    {-672228000 32400 0 KST}
    {-654771600 36000 1 KDT}
    {-640864800 32400 0 KST}
    {-623408400 36000 1 KDT}
    {-609415200 32400 0 KST}
    {-588848400 36000 1 KDT}
    {-577965600 32400 0 KST}
    {-498128400 30600 0 KST}
    {-462702600 34200 1 KDT}
    {-451733400 30600 0 KST}
    {-429784200 34200 1 KDT}
    {-418296600 30600 0 KST}
    {-399544200 34200 1 KDT}
    {-387451800 30600 0 KST}

Changes to jni/tcl/library/tzdata/Europe/Brussels.

1
2
3
4
5
6
7
8
9
10
11
12
13
# created by tools/tclZIC.tcl - do not edit

set TZData(:Europe/Brussels) {
    {-9223372036854775808 1050 0 LMT}
    {-2840141850 1050 0 BMT}
    {-2450953050 0 0 WET}
    {-1740355200 3600 0 CET}
    {-1693702800 7200 0 CEST}
    {-1680483600 3600 0 CET}
    {-1663455600 7200 1 CEST}
    {-1650150000 3600 0 CET}
    {-1632006000 7200 1 CEST}
    {-1618700400 3600 0 CET}





|







1
2
3
4
5
6
7
8
9
10
11
12
13
# created by tools/tclZIC.tcl - do not edit

set TZData(:Europe/Brussels) {
    {-9223372036854775808 1050 0 LMT}
    {-2840141850 1050 0 BMT}
    {-2450995200 0 0 WET}
    {-1740355200 3600 0 CET}
    {-1693702800 7200 0 CEST}
    {-1680483600 3600 0 CET}
    {-1663455600 7200 1 CEST}
    {-1650150000 3600 0 CET}
    {-1632006000 7200 1 CEST}
    {-1618700400 3600 0 CET}

Changes to jni/tcl/library/tzdata/Europe/Istanbul.

12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
    {-1522551600 7200 0 EET}
    {-1507514400 10800 1 EEST}
    {-1490583600 7200 0 EET}
    {-1440208800 10800 1 EEST}
    {-1428030000 7200 0 EET}
    {-1409709600 10800 1 EEST}
    {-1396494000 7200 0 EET}
    {-931140000 10800 1 EEST}
    {-922762800 7200 0 EET}
    {-917834400 10800 1 EEST}
    {-892436400 7200 0 EET}
    {-875844000 10800 1 EEST}
    {-857358000 7200 0 EET}
    {-781063200 10800 1 EEST}
    {-764737200 7200 0 EET}
    {-744343200 10800 1 EEST}
    {-733806000 7200 0 EET}
    {-716436000 10800 1 EEST}
    {-701924400 7200 0 EET}
    {-684986400 10800 1 EEST}
    {-670474800 7200 0 EET}
    {-654141600 10800 1 EEST}
    {-639025200 7200 0 EET}
    {-621828000 10800 1 EEST}
    {-606970800 7200 0 EET}
    {-590032800 10800 1 EEST}
    {-575434800 7200 0 EET}
    {-235620000 10800 1 EEST}
    {-228279600 7200 0 EET}
    {-177732000 10800 1 EEST}
    {-165726000 7200 0 EET}
    {10533600 10800 1 EEST}
    {23835600 7200 0 EET}
    {41983200 10800 1 EEST}
    {55285200 7200 0 EET}
    {74037600 10800 1 EEST}
    {87339600 7200 0 EET}
    {107910000 10800 1 EEST}
    {121219200 7200 0 EET}
    {133920000 10800 1 EEST}
    {152676000 7200 0 EET}
    {165362400 10800 1 EEST}
    {183502800 7200 0 EET}
    {202428000 10800 1 EEST}
    {215557200 7200 0 EET}
    {228866400 10800 1 EEST}
    {245797200 7200 0 EET}
    {260316000 10800 1 EEST}
    {277246800 14400 0 +04}
    {291769200 14400 1 +04}
    {308779200 10800 0 +03}
    {323827200 14400 1 +04}
    {340228800 10800 0 +03}
    {354672000 14400 1 +04}
    {371678400 10800 0 +03}
    {386121600 14400 1 +04}
    {403128000 10800 0 +03}
    {428446800 14400 1 +04}
    {433886400 10800 0 +03}
    {482792400 7200 0 EET}
    {482796000 10800 1 EEST}
    {496702800 7200 0 EET}
    {512521200 10800 1 EEST}
    {528246000 7200 0 EET}
    {543970800 10800 1 EEST}
    {559695600 7200 0 EET}
    {575420400 10800 1 EEST}
    {591145200 7200 0 EET}
    {606870000 10800 1 EEST}







|
|



<
<









|


|

|


<
<
<
<
<
<

|

|
|
|
|
|
|
|
|
<
<
|
<
|
|
|
<
<
<
<
|
|
|







12
13
14
15
16
17
18
19
20
21
22
23


24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40






41
42
43
44
45
46
47
48
49
50
51


52

53
54
55




56
57
58
59
60
61
62
63
64
65
    {-1522551600 7200 0 EET}
    {-1507514400 10800 1 EEST}
    {-1490583600 7200 0 EET}
    {-1440208800 10800 1 EEST}
    {-1428030000 7200 0 EET}
    {-1409709600 10800 1 EEST}
    {-1396494000 7200 0 EET}
    {-931053600 10800 1 EEST}
    {-922676400 7200 0 EET}
    {-917834400 10800 1 EEST}
    {-892436400 7200 0 EET}
    {-875844000 10800 1 EEST}


    {-764737200 7200 0 EET}
    {-744343200 10800 1 EEST}
    {-733806000 7200 0 EET}
    {-716436000 10800 1 EEST}
    {-701924400 7200 0 EET}
    {-684986400 10800 1 EEST}
    {-670474800 7200 0 EET}
    {-654141600 10800 1 EEST}
    {-639025200 7200 0 EET}
    {-622087200 10800 1 EEST}
    {-606970800 7200 0 EET}
    {-590032800 10800 1 EEST}
    {-575521200 7200 0 EET}
    {-235620000 10800 1 EEST}
    {-194842800 7200 0 EET}
    {-177732000 10800 1 EEST}
    {-165726000 7200 0 EET}






    {107910000 10800 1 EEST}
    {121215600 7200 0 EET}
    {133920000 10800 1 EEST}
    {152665200 7200 0 EET}
    {164678400 10800 1 EEST}
    {184114800 7200 0 EET}
    {196214400 10800 1 EEST}
    {215564400 7200 0 EET}
    {228873600 10800 1 EEST}
    {245804400 7200 0 EET}
    {260323200 10800 1 EEST}


    {267919200 10800 0 +03}

    {277254000 10800 0 +03}
    {428454000 14400 1 +04}
    {433893600 10800 0 +03}




    {468111600 7200 0 EET}
    {482799600 10800 1 EEST}
    {496710000 7200 0 EET}
    {512521200 10800 1 EEST}
    {528246000 7200 0 EET}
    {543970800 10800 1 EEST}
    {559695600 7200 0 EET}
    {575420400 10800 1 EEST}
    {591145200 7200 0 EET}
    {606870000 10800 1 EEST}

Changes to jni/tcl/library/tzdata/Europe/Kaliningrad.

11
12
13
14
15
16
17
18

19
20
21
22
23
24
25
26
27
28
    {-1618700400 3600 0 CET}
    {-938905200 7200 1 CEST}
    {-857257200 3600 0 CET}
    {-844556400 7200 1 CEST}
    {-828226800 3600 0 CET}
    {-812502000 7200 1 CEST}
    {-796777200 3600 0 CET}
    {-788922000 7200 0 CET}

    {-778730400 10800 1 CEST}
    {-762663600 7200 0 CET}
    {-757389600 10800 0 MSD}
    {354920400 14400 1 MSD}
    {370728000 10800 0 MSK}
    {386456400 14400 1 MSD}
    {402264000 10800 0 MSK}
    {417992400 14400 1 MSD}
    {433800000 10800 0 MSK}
    {449614800 14400 1 MSD}







|
>
|
|
|







11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
    {-1618700400 3600 0 CET}
    {-938905200 7200 1 CEST}
    {-857257200 3600 0 CET}
    {-844556400 7200 1 CEST}
    {-828226800 3600 0 CET}
    {-812502000 7200 1 CEST}
    {-796777200 3600 0 CET}
    {-781052400 7200 1 CEST}
    {-780368400 7200 0 EET}
    {-778730400 10800 1 EEST}
    {-762663600 7200 0 EET}
    {-749095200 10800 0 MSD}
    {354920400 14400 1 MSD}
    {370728000 10800 0 MSK}
    {386456400 14400 1 MSD}
    {402264000 10800 0 MSK}
    {417992400 14400 1 MSD}
    {433800000 10800 0 MSK}
    {449614800 14400 1 MSD}

Changes to jni/tcl/library/tzdata/Europe/Vienna.

18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
    {-828226800 3600 0 CET}
    {-812502000 7200 1 CEST}
    {-796777200 3600 0 CET}
    {-781052400 7200 1 CEST}
    {-780188400 3600 0 CET}
    {-757386000 3600 0 CET}
    {-748479600 7200 1 CEST}
    {-733359600 3600 0 CET}
    {-717634800 7200 1 CEST}
    {-701910000 3600 0 CET}
    {-684975600 7200 1 CEST}
    {-670460400 3600 0 CET}
    {323823600 7200 1 CEST}
    {338940000 3600 0 CET}
    {347151600 3600 0 CET}







|







18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
    {-828226800 3600 0 CET}
    {-812502000 7200 1 CEST}
    {-796777200 3600 0 CET}
    {-781052400 7200 1 CEST}
    {-780188400 3600 0 CET}
    {-757386000 3600 0 CET}
    {-748479600 7200 1 CEST}
    {-733273200 3600 0 CET}
    {-717634800 7200 1 CEST}
    {-701910000 3600 0 CET}
    {-684975600 7200 1 CEST}
    {-670460400 3600 0 CET}
    {323823600 7200 1 CEST}
    {338940000 3600 0 CET}
    {347151600 3600 0 CET}

Changes to jni/tcl/library/tzdata/Pacific/Fiji.

23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
    {1452952800 43200 0 +12}
    {1478354400 46800 1 +12}
    {1484402400 43200 0 +12}
    {1509804000 46800 1 +12}
    {1515852000 43200 0 +12}
    {1541253600 46800 1 +12}
    {1547301600 43200 0 +12}
    {1572703200 46800 1 +12}
    {1579356000 43200 0 +12}
    {1604152800 46800 1 +12}
    {1610805600 43200 0 +12}
    {1636207200 46800 1 +12}
    {1642255200 43200 0 +12}
    {1667656800 46800 1 +12}
    {1673704800 43200 0 +12}
    {1699106400 46800 1 +12}
    {1705154400 43200 0 +12}
    {1730556000 46800 1 +12}
    {1737208800 43200 0 +12}
    {1762005600 46800 1 +12}
    {1768658400 43200 0 +12}
    {1793455200 46800 1 +12}
    {1800108000 43200 0 +12}
    {1825509600 46800 1 +12}
    {1831557600 43200 0 +12}
    {1856959200 46800 1 +12}
    {1863007200 43200 0 +12}
    {1888408800 46800 1 +12}
    {1894456800 43200 0 +12}
    {1919858400 46800 1 +12}
    {1926511200 43200 0 +12}
    {1951308000 46800 1 +12}
    {1957960800 43200 0 +12}
    {1983362400 46800 1 +12}
    {1989410400 43200 0 +12}
    {2014812000 46800 1 +12}
    {2020860000 43200 0 +12}
    {2046261600 46800 1 +12}
    {2052309600 43200 0 +12}
    {2077711200 46800 1 +12}
    {2083759200 43200 0 +12}
    {2109160800 46800 1 +12}
    {2115813600 43200 0 +12}
    {2140610400 46800 1 +12}
    {2147263200 43200 0 +12}
    {2172664800 46800 1 +12}
    {2178712800 43200 0 +12}
    {2204114400 46800 1 +12}
    {2210162400 43200 0 +12}
    {2235564000 46800 1 +12}
    {2241612000 43200 0 +12}
    {2267013600 46800 1 +12}
    {2273666400 43200 0 +12}
    {2298463200 46800 1 +12}
    {2305116000 43200 0 +12}
    {2329912800 46800 1 +12}
    {2336565600 43200 0 +12}
    {2361967200 46800 1 +12}
    {2368015200 43200 0 +12}
    {2393416800 46800 1 +12}
    {2399464800 43200 0 +12}
    {2424866400 46800 1 +12}
    {2430914400 43200 0 +12}
    {2456316000 46800 1 +12}
    {2462968800 43200 0 +12}
    {2487765600 46800 1 +12}
    {2494418400 43200 0 +12}
    {2519820000 46800 1 +12}
    {2525868000 43200 0 +12}
    {2551269600 46800 1 +12}
    {2557317600 43200 0 +12}
    {2582719200 46800 1 +12}
    {2588767200 43200 0 +12}
    {2614168800 46800 1 +12}
    {2620821600 43200 0 +12}
    {2645618400 46800 1 +12}
    {2652271200 43200 0 +12}
    {2677068000 46800 1 +12}
    {2683720800 43200 0 +12}
    {2709122400 46800 1 +12}
    {2715170400 43200 0 +12}
    {2740572000 46800 1 +12}
    {2746620000 43200 0 +12}
    {2772021600 46800 1 +12}
    {2778069600 43200 0 +12}
    {2803471200 46800 1 +12}
    {2810124000 43200 0 +12}
    {2834920800 46800 1 +12}
    {2841573600 43200 0 +12}
    {2866975200 46800 1 +12}
    {2873023200 43200 0 +12}
    {2898424800 46800 1 +12}
    {2904472800 43200 0 +12}
    {2929874400 46800 1 +12}
    {2935922400 43200 0 +12}
    {2961324000 46800 1 +12}
    {2967372000 43200 0 +12}
    {2992773600 46800 1 +12}
    {2999426400 43200 0 +12}
    {3024223200 46800 1 +12}
    {3030876000 43200 0 +12}
    {3056277600 46800 1 +12}
    {3062325600 43200 0 +12}
    {3087727200 46800 1 +12}
    {3093775200 43200 0 +12}
    {3119176800 46800 1 +12}
    {3125224800 43200 0 +12}
    {3150626400 46800 1 +12}
    {3157279200 43200 0 +12}
    {3182076000 46800 1 +12}
    {3188728800 43200 0 +12}
    {3213525600 46800 1 +12}
    {3220178400 43200 0 +12}
    {3245580000 46800 1 +12}
    {3251628000 43200 0 +12}
    {3277029600 46800 1 +12}
    {3283077600 43200 0 +12}
    {3308479200 46800 1 +12}
    {3314527200 43200 0 +12}
    {3339928800 46800 1 +12}
    {3346581600 43200 0 +12}
    {3371378400 46800 1 +12}
    {3378031200 43200 0 +12}
    {3403432800 46800 1 +12}
    {3409480800 43200 0 +12}
    {3434882400 46800 1 +12}
    {3440930400 43200 0 +12}
    {3466332000 46800 1 +12}
    {3472380000 43200 0 +12}
    {3497781600 46800 1 +12}
    {3504434400 43200 0 +12}
    {3529231200 46800 1 +12}
    {3535884000 43200 0 +12}
    {3560680800 46800 1 +12}
    {3567333600 43200 0 +12}
    {3592735200 46800 1 +12}
    {3598783200 43200 0 +12}
    {3624184800 46800 1 +12}
    {3630232800 43200 0 +12}
    {3655634400 46800 1 +12}
    {3661682400 43200 0 +12}
    {3687084000 46800 1 +12}
    {3693736800 43200 0 +12}
    {3718533600 46800 1 +12}
    {3725186400 43200 0 +12}
    {3750588000 46800 1 +12}
    {3756636000 43200 0 +12}
    {3782037600 46800 1 +12}
    {3788085600 43200 0 +12}
    {3813487200 46800 1 +12}
    {3819535200 43200 0 +12}
    {3844936800 46800 1 +12}
    {3850984800 43200 0 +12}
    {3876386400 46800 1 +12}
    {3883039200 43200 0 +12}
    {3907836000 46800 1 +12}
    {3914488800 43200 0 +12}
    {3939890400 46800 1 +12}
    {3945938400 43200 0 +12}
    {3971340000 46800 1 +12}
    {3977388000 43200 0 +12}
    {4002789600 46800 1 +12}
    {4008837600 43200 0 +12}
    {4034239200 46800 1 +12}
    {4040892000 43200 0 +12}
    {4065688800 46800 1 +12}
    {4072341600 43200 0 +12}
    {4097138400 46800 1 +12}
}







|
|
|

|

|

|

|
|
|

|

|

|

|

|
|
|

|

|

|

|

|

|

|

|

|

|
|
|

|

|

|

|

|
|
|

|

|

|

|
|
|

|

|

|

|

|
|
|

|

|

|

|

|

|

|

|

|

|
|
|

|

|

|

|

|
|
|

|

|

|

|
|
|

|

|

|

|

|
|
|

|

|

|

|

|

|

|

|

|

|
|
|

|

23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
    {1452952800 43200 0 +12}
    {1478354400 46800 1 +12}
    {1484402400 43200 0 +12}
    {1509804000 46800 1 +12}
    {1515852000 43200 0 +12}
    {1541253600 46800 1 +12}
    {1547301600 43200 0 +12}
    {1573308000 46800 1 +12}
    {1578751200 43200 0 +12}
    {1604757600 46800 1 +12}
    {1610805600 43200 0 +12}
    {1636812000 46800 1 +12}
    {1642255200 43200 0 +12}
    {1668261600 46800 1 +12}
    {1673704800 43200 0 +12}
    {1699711200 46800 1 +12}
    {1705154400 43200 0 +12}
    {1731160800 46800 1 +12}
    {1736604000 43200 0 +12}
    {1762610400 46800 1 +12}
    {1768658400 43200 0 +12}
    {1794060000 46800 1 +12}
    {1800108000 43200 0 +12}
    {1826114400 46800 1 +12}
    {1831557600 43200 0 +12}
    {1857564000 46800 1 +12}
    {1863007200 43200 0 +12}
    {1889013600 46800 1 +12}
    {1894456800 43200 0 +12}
    {1920463200 46800 1 +12}
    {1925906400 43200 0 +12}
    {1951912800 46800 1 +12}
    {1957960800 43200 0 +12}
    {1983967200 46800 1 +12}
    {1989410400 43200 0 +12}
    {2015416800 46800 1 +12}
    {2020860000 43200 0 +12}
    {2046866400 46800 1 +12}
    {2052309600 43200 0 +12}
    {2078316000 46800 1 +12}
    {2083759200 43200 0 +12}
    {2109765600 46800 1 +12}
    {2115813600 43200 0 +12}
    {2141215200 46800 1 +12}
    {2147263200 43200 0 +12}
    {2173269600 46800 1 +12}
    {2178712800 43200 0 +12}
    {2204719200 46800 1 +12}
    {2210162400 43200 0 +12}
    {2236168800 46800 1 +12}
    {2241612000 43200 0 +12}
    {2267618400 46800 1 +12}
    {2273061600 43200 0 +12}
    {2299068000 46800 1 +12}
    {2305116000 43200 0 +12}
    {2330517600 46800 1 +12}
    {2336565600 43200 0 +12}
    {2362572000 46800 1 +12}
    {2368015200 43200 0 +12}
    {2394021600 46800 1 +12}
    {2399464800 43200 0 +12}
    {2425471200 46800 1 +12}
    {2430914400 43200 0 +12}
    {2456920800 46800 1 +12}
    {2462364000 43200 0 +12}
    {2488370400 46800 1 +12}
    {2494418400 43200 0 +12}
    {2520424800 46800 1 +12}
    {2525868000 43200 0 +12}
    {2551874400 46800 1 +12}
    {2557317600 43200 0 +12}
    {2583324000 46800 1 +12}
    {2588767200 43200 0 +12}
    {2614773600 46800 1 +12}
    {2620216800 43200 0 +12}
    {2646223200 46800 1 +12}
    {2652271200 43200 0 +12}
    {2677672800 46800 1 +12}
    {2683720800 43200 0 +12}
    {2709727200 46800 1 +12}
    {2715170400 43200 0 +12}
    {2741176800 46800 1 +12}
    {2746620000 43200 0 +12}
    {2772626400 46800 1 +12}
    {2778069600 43200 0 +12}
    {2804076000 46800 1 +12}
    {2809519200 43200 0 +12}
    {2835525600 46800 1 +12}
    {2841573600 43200 0 +12}
    {2867580000 46800 1 +12}
    {2873023200 43200 0 +12}
    {2899029600 46800 1 +12}
    {2904472800 43200 0 +12}
    {2930479200 46800 1 +12}
    {2935922400 43200 0 +12}
    {2961928800 46800 1 +12}
    {2967372000 43200 0 +12}
    {2993378400 46800 1 +12}
    {2999426400 43200 0 +12}
    {3024828000 46800 1 +12}
    {3030876000 43200 0 +12}
    {3056882400 46800 1 +12}
    {3062325600 43200 0 +12}
    {3088332000 46800 1 +12}
    {3093775200 43200 0 +12}
    {3119781600 46800 1 +12}
    {3125224800 43200 0 +12}
    {3151231200 46800 1 +12}
    {3156674400 43200 0 +12}
    {3182680800 46800 1 +12}
    {3188728800 43200 0 +12}
    {3214130400 46800 1 +12}
    {3220178400 43200 0 +12}
    {3246184800 46800 1 +12}
    {3251628000 43200 0 +12}
    {3277634400 46800 1 +12}
    {3283077600 43200 0 +12}
    {3309084000 46800 1 +12}
    {3314527200 43200 0 +12}
    {3340533600 46800 1 +12}
    {3345976800 43200 0 +12}
    {3371983200 46800 1 +12}
    {3378031200 43200 0 +12}
    {3404037600 46800 1 +12}
    {3409480800 43200 0 +12}
    {3435487200 46800 1 +12}
    {3440930400 43200 0 +12}
    {3466936800 46800 1 +12}
    {3472380000 43200 0 +12}
    {3498386400 46800 1 +12}
    {3503829600 43200 0 +12}
    {3529836000 46800 1 +12}
    {3535884000 43200 0 +12}
    {3561285600 46800 1 +12}
    {3567333600 43200 0 +12}
    {3593340000 46800 1 +12}
    {3598783200 43200 0 +12}
    {3624789600 46800 1 +12}
    {3630232800 43200 0 +12}
    {3656239200 46800 1 +12}
    {3661682400 43200 0 +12}
    {3687688800 46800 1 +12}
    {3693132000 43200 0 +12}
    {3719138400 46800 1 +12}
    {3725186400 43200 0 +12}
    {3751192800 46800 1 +12}
    {3756636000 43200 0 +12}
    {3782642400 46800 1 +12}
    {3788085600 43200 0 +12}
    {3814092000 46800 1 +12}
    {3819535200 43200 0 +12}
    {3845541600 46800 1 +12}
    {3850984800 43200 0 +12}
    {3876991200 46800 1 +12}
    {3883039200 43200 0 +12}
    {3908440800 46800 1 +12}
    {3914488800 43200 0 +12}
    {3940495200 46800 1 +12}
    {3945938400 43200 0 +12}
    {3971944800 46800 1 +12}
    {3977388000 43200 0 +12}
    {4003394400 46800 1 +12}
    {4008837600 43200 0 +12}
    {4034844000 46800 1 +12}
    {4040287200 43200 0 +12}
    {4066293600 46800 1 +12}
    {4072341600 43200 0 +12}
    {4097743200 46800 1 +12}
}

Changes to jni/tcl/library/tzdata/Pacific/Norfolk.

1
2
3
4
5
6
7
8
9


































































































































































10
# created by tools/tclZIC.tcl - do not edit

set TZData(:Pacific/Norfolk) {
    {-9223372036854775808 40312 0 LMT}
    {-2177493112 40320 0 +1112}
    {-599656320 41400 0 +1130}
    {152029800 45000 1 +1230}
    {162912600 41400 0 +1130}
    {1443882600 39600 0 +11}


































































































































































}







|

>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
# created by tools/tclZIC.tcl - do not edit

set TZData(:Pacific/Norfolk) {
    {-9223372036854775808 40312 0 LMT}
    {-2177493112 40320 0 +1112}
    {-599656320 41400 0 +1130}
    {152029800 45000 1 +1230}
    {162916200 41400 0 +1130}
    {1443882600 39600 0 +11}
    {1561899600 39600 0 +12}
    {1570287600 43200 1 +12}
    {1586012400 39600 0 +12}
    {1601737200 43200 1 +12}
    {1617462000 39600 0 +12}
    {1633186800 43200 1 +12}
    {1648911600 39600 0 +12}
    {1664636400 43200 1 +12}
    {1680361200 39600 0 +12}
    {1696086000 43200 1 +12}
    {1712415600 39600 0 +12}
    {1728140400 43200 1 +12}
    {1743865200 39600 0 +12}
    {1759590000 43200 1 +12}
    {1775314800 39600 0 +12}
    {1791039600 43200 1 +12}
    {1806764400 39600 0 +12}
    {1822489200 43200 1 +12}
    {1838214000 39600 0 +12}
    {1853938800 43200 1 +12}
    {1869663600 39600 0 +12}
    {1885993200 43200 1 +12}
    {1901718000 39600 0 +12}
    {1917442800 43200 1 +12}
    {1933167600 39600 0 +12}
    {1948892400 43200 1 +12}
    {1964617200 39600 0 +12}
    {1980342000 43200 1 +12}
    {1996066800 39600 0 +12}
    {2011791600 43200 1 +12}
    {2027516400 39600 0 +12}
    {2043241200 43200 1 +12}
    {2058966000 39600 0 +12}
    {2075295600 43200 1 +12}
    {2091020400 39600 0 +12}
    {2106745200 43200 1 +12}
    {2122470000 39600 0 +12}
    {2138194800 43200 1 +12}
    {2153919600 39600 0 +12}
    {2169644400 43200 1 +12}
    {2185369200 39600 0 +12}
    {2201094000 43200 1 +12}
    {2216818800 39600 0 +12}
    {2233148400 43200 1 +12}
    {2248873200 39600 0 +12}
    {2264598000 43200 1 +12}
    {2280322800 39600 0 +12}
    {2296047600 43200 1 +12}
    {2311772400 39600 0 +12}
    {2327497200 43200 1 +12}
    {2343222000 39600 0 +12}
    {2358946800 43200 1 +12}
    {2374671600 39600 0 +12}
    {2390396400 43200 1 +12}
    {2406121200 39600 0 +12}
    {2422450800 43200 1 +12}
    {2438175600 39600 0 +12}
    {2453900400 43200 1 +12}
    {2469625200 39600 0 +12}
    {2485350000 43200 1 +12}
    {2501074800 39600 0 +12}
    {2516799600 43200 1 +12}
    {2532524400 39600 0 +12}
    {2548249200 43200 1 +12}
    {2563974000 39600 0 +12}
    {2579698800 43200 1 +12}
    {2596028400 39600 0 +12}
    {2611753200 43200 1 +12}
    {2627478000 39600 0 +12}
    {2643202800 43200 1 +12}
    {2658927600 39600 0 +12}
    {2674652400 43200 1 +12}
    {2690377200 39600 0 +12}
    {2706102000 43200 1 +12}
    {2721826800 39600 0 +12}
    {2737551600 43200 1 +12}
    {2753276400 39600 0 +12}
    {2769606000 43200 1 +12}
    {2785330800 39600 0 +12}
    {2801055600 43200 1 +12}
    {2816780400 39600 0 +12}
    {2832505200 43200 1 +12}
    {2848230000 39600 0 +12}
    {2863954800 43200 1 +12}
    {2879679600 39600 0 +12}
    {2895404400 43200 1 +12}
    {2911129200 39600 0 +12}
    {2926854000 43200 1 +12}
    {2942578800 39600 0 +12}
    {2958908400 43200 1 +12}
    {2974633200 39600 0 +12}
    {2990358000 43200 1 +12}
    {3006082800 39600 0 +12}
    {3021807600 43200 1 +12}
    {3037532400 39600 0 +12}
    {3053257200 43200 1 +12}
    {3068982000 39600 0 +12}
    {3084706800 43200 1 +12}
    {3100431600 39600 0 +12}
    {3116761200 43200 1 +12}
    {3132486000 39600 0 +12}
    {3148210800 43200 1 +12}
    {3163935600 39600 0 +12}
    {3179660400 43200 1 +12}
    {3195385200 39600 0 +12}
    {3211110000 43200 1 +12}
    {3226834800 39600 0 +12}
    {3242559600 43200 1 +12}
    {3258284400 39600 0 +12}
    {3274009200 43200 1 +12}
    {3289734000 39600 0 +12}
    {3306063600 43200 1 +12}
    {3321788400 39600 0 +12}
    {3337513200 43200 1 +12}
    {3353238000 39600 0 +12}
    {3368962800 43200 1 +12}
    {3384687600 39600 0 +12}
    {3400412400 43200 1 +12}
    {3416137200 39600 0 +12}
    {3431862000 43200 1 +12}
    {3447586800 39600 0 +12}
    {3463311600 43200 1 +12}
    {3479641200 39600 0 +12}
    {3495366000 43200 1 +12}
    {3511090800 39600 0 +12}
    {3526815600 43200 1 +12}
    {3542540400 39600 0 +12}
    {3558265200 43200 1 +12}
    {3573990000 39600 0 +12}
    {3589714800 43200 1 +12}
    {3605439600 39600 0 +12}
    {3621164400 43200 1 +12}
    {3636889200 39600 0 +12}
    {3653218800 43200 1 +12}
    {3668943600 39600 0 +12}
    {3684668400 43200 1 +12}
    {3700393200 39600 0 +12}
    {3716118000 43200 1 +12}
    {3731842800 39600 0 +12}
    {3747567600 43200 1 +12}
    {3763292400 39600 0 +12}
    {3779017200 43200 1 +12}
    {3794742000 39600 0 +12}
    {3810466800 43200 1 +12}
    {3826191600 39600 0 +12}
    {3842521200 43200 1 +12}
    {3858246000 39600 0 +12}
    {3873970800 43200 1 +12}
    {3889695600 39600 0 +12}
    {3905420400 43200 1 +12}
    {3921145200 39600 0 +12}
    {3936870000 43200 1 +12}
    {3952594800 39600 0 +12}
    {3968319600 43200 1 +12}
    {3984044400 39600 0 +12}
    {4000374000 43200 1 +12}
    {4016098800 39600 0 +12}
    {4031823600 43200 1 +12}
    {4047548400 39600 0 +12}
    {4063273200 43200 1 +12}
    {4078998000 39600 0 +12}
    {4094722800 43200 1 +12}
}

Changes to jni/tcl/tests/compile.test.

464
465
466
467
468
469
470
471




472
473
474
475
476
477
478
479
480
481
482
483
484
485
486





487
488
489
490
491
492
493
494
495
496





















497
498

499
500
501
502
503
504
505
    append body {]; puts OK}
    regsub BODY {proc crash {} {BODY}; crash} $body script
    list [catch {exec [interpreter] << $script} msg] $msg
} {0 OK}

# Tests of nested compile (body in body compilation), should not generate stack overflow
# (with abnormal program termination), bug [fec0c17d39]:
test compile-13.2 {TclCompileScript: testing nested scripts compilation} -setup {




    set i [interp create]
    interp recursionlimit $i [expr {10000+50}]
    $i eval {proc gencode {nr {cmd eval} {nl 0}} {
	set code ""
	set e ""; if {$nl} {set e "\n"}
	for {set i 0} {$i < $nr} {incr i} {
	    append code "$cmd \{$e"
	}
	append code "lappend result 1$e"
	for {set i 0} {$i < $nr} {incr i} {
	    append code "\}$e"
	}
	#puts [format "%% %.40s ... %d bytes" $code [string length $code]]
	return $code
    }}





} -body {
    # Test different compilation variants (instructions evalStk, invokeStk, etc),
    # with 2000 (1000 in debug) nested scripts (bodies). If you get SO/SF exceptions on some low-stack
    # boxes or systems, please don't decrease it (either provide a constraint)
    $i eval {foreach cmd {eval "if 1" try catch} {
	set c [gencode [expr {![::tcl::pkgconfig get debug] ? 2000 : 1000}] $cmd]
	if 1 $c
    }}
    $i eval {set result}
} -result {1 1 1 1} -cleanup {





















    interp delete $i
}


# Tests compile-14.* for [Bug 599788] [Bug 0c043a175a47da8c2342]
test compile-14.1 {testing errors in element name; segfault?} {} {
     catch {set a([error])} msg1
     catch {set bubba([join $abba $jubba]) $vol} msg2
     list $msg1 $msg2
} {{wrong # args: should be "error message ?errorInfo? ?errorCode?"} {can't read "abba": no such variable}}







|
>
>
>
>
|
<
|












>
>
>
>
>




|



|
|
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
|

>







464
465
466
467
468
469
470
471
472
473
474
475
476

477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
    append body {]; puts OK}
    regsub BODY {proc crash {} {BODY}; crash} $body script
    list [catch {exec [interpreter] << $script} msg] $msg
} {0 OK}

# Tests of nested compile (body in body compilation), should not generate stack overflow
# (with abnormal program termination), bug [fec0c17d39]:
proc _ti_gencode {} {
    # creates test interpreter on demand with [gencode] generator:
    if {[interp exists ti]} {
	return
    }
    interp create ti

    ti eval {proc gencode {nr {cmd eval} {nl 0}} {
	set code ""
	set e ""; if {$nl} {set e "\n"}
	for {set i 0} {$i < $nr} {incr i} {
	    append code "$cmd \{$e"
	}
	append code "lappend result 1$e"
	for {set i 0} {$i < $nr} {incr i} {
	    append code "\}$e"
	}
	#puts [format "%% %.40s ... %d bytes" $code [string length $code]]
	return $code
    }}
}
test compile-13.2 {TclCompileScript: testing expected nested scripts compilation} -setup {
    _ti_gencode
    interp recursionlimit ti [expr {10000+50}]
    ti eval {set result {}}
} -body {
    # Test different compilation variants (instructions evalStk, invokeStk, etc),
    # with 2000 (1000 in debug) nested scripts (bodies). If you get SO/SF exceptions on some low-stack
    # boxes or systems, please don't decrease it (either provide a constraint)
    ti eval {foreach cmd {eval "if 1" try catch} {
	set c [gencode [expr {![::tcl::pkgconfig get debug] ? 2000 : 1000}] $cmd]
	if 1 $c
    }}
    ti eval {set result}
} -result {1 1 1 1}
test compile-13.3 {TclCompileScript: testing check of max depth by nested scripts compilation} -setup {
    _ti_gencode
    interp recursionlimit ti 100
    ti eval {set result {}}
} -body {
    # Test different compilation variants (instructions evalStk, invokeStk, etc),
    # with 500 nested scripts (bodies). It must generate "too many nested compilations" 
    # error for any variant we're testing here:
    ti eval {foreach cmd {eval "if 1" try catch} {
	set c [gencode [expr {![info exists ::tcl_platform(debug)] ? 2000 : 1000}] $cmd]
	lappend errors [catch $c e] $e
    }}
    #puts $errors
    # all of nested calls exceed the limit, so must end with "too many nested compilations"
    # (or evaluations, depending on compile method/instruction and "mixed" compile within 
    # evaliation), so no one succeeds, the result must be empty:
    ti eval {set result}
} -result {}
#
# clean up:
if {[interp exists ti]} {
    interp delete ti
}
rename _ti_gencode {}

# Tests compile-14.* for [Bug 599788] [Bug 0c043a175a47da8c2342]
test compile-14.1 {testing errors in element name; segfault?} {} {
     catch {set a([error])} msg1
     catch {set bubba([join $abba $jubba]) $vol} msg2
     list $msg1 $msg2
} {{wrong # args: should be "error message ?errorInfo? ?errorCode?"} {can't read "abba": no such variable}}

Changes to jni/tcl/unix/tclUnixNotfy.c.

1589
1590
1591
1592
1593
1594
1595

1596

1597
1598
1599
1600
1601
1602
1603

    Tcl_InitNotifier();

    /*
     * Restart the notifier thread for signal handling.
     */


    StartNotifierThread("AtForkChild");

}
#endif /* HAVE_PTHREAD_ATFORK */

#endif /* TCL_THREADS */

#endif /* !HAVE_COREFOUNDATION */
 







>

>







1589
1590
1591
1592
1593
1594
1595
1596
1597
1598
1599
1600
1601
1602
1603
1604
1605

    Tcl_InitNotifier();

    /*
     * Restart the notifier thread for signal handling.
     */

#if !defined(__HAIKU__)
    StartNotifierThread("AtForkChild");
#endif
}
#endif /* HAVE_PTHREAD_ATFORK */

#endif /* TCL_THREADS */

#endif /* !HAVE_COREFOUNDATION */
 

Changes to jni/tclx/unix/tclXunixOS.c.

833
834
835
836
837
838
839








840
841
842
843
844
845
846

    pid = fork ();
    if (pid < 0) {
        TclX_AppendObjResult (interp, "fork failed: ",
                              Tcl_PosixError (interp), (char *) NULL);
        return TCL_ERROR;
    }









    Tcl_SetIntObj (Tcl_GetObjResult (interp), (int)pid);
    return TCL_OK;
#endif
}
 
/*-----------------------------------------------------------------------------







>
>
>
>
>
>
>
>







833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854

    pid = fork ();
    if (pid < 0) {
        TclX_AppendObjResult (interp, "fork failed: ",
                              Tcl_PosixError (interp), (char *) NULL);
        return TCL_ERROR;
    }

#ifdef __HAIKU__
    /*
     * Restart Tcl notifier thread.
     */

    Tcl_ServiceModeHook(TCL_SERVICE_ALL);
#endif

    Tcl_SetIntObj (Tcl_GetObjResult (interp), (int)pid);
    return TCL_OK;
#endif
}
 
/*-----------------------------------------------------------------------------

Changes to undroid/build-undroidwish-haiku.sh.

90
91
92
93
94
95
96
97

98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
...
143
144
145
146
147
148
149






150
151
152
153
154
155
156
...
255
256
257
258
259
260
261




















262
263
264
265
266
267
268
...
534
535
536
537
538
539
540









































541
542
543
544
545
546
547
548
549

550
551
552
553
554
555
556
557
....
1251
1252
1253
1254
1255
1256
1257


































1258
1259
1260
1261
1262
1263
1264

1265
1266
1267
1268
1269
1270
1271
....
1382
1383
1384
1385
1386
1387
1388

1389
1390
1391
1392
1393
1394
1395
else
  CC="$CC -DTCL_UTF_MAX=3"
  CXX="$CXX -fno-exceptions -fno-rtti -DTCL_UTF_MAX=3"
fi
NM=nm
export STRIP AR RANLIB CC CXX NM

SUBDIRS="tcl zlib curl tcludp tdom tclvfs tclkit trofs tbcload tls"

SUBDIRS="${SUBDIRS} Memchan TclCurl freetype SDL2 sdl2tk blt jpeg-turbo"
SUBDIRS="${SUBDIRS} 3dcanvas tkimg trf tktable tktreectrl tkpath itk tkhtml"
SUBDIRS="${SUBDIRS} tclx libdmtx ZBar zint"
SUBDIRS="${SUBDIRS} tkvnc tksvg VecTcl tclral tclepeg"
# libusb+tcluvc have stability problems
# SUBDIRS="${SUBDIRS} tcluvc"
SUBDIRS="${SUBDIRS} xotcl nsf vu rl_json mpexpr tclcsv tkzinc"
SUBDIRS="${SUBDIRS} libffi ffidl tcl-lmdb DiffUtilTcl"
SUBDIRS="${SUBDIRS} tclparser tclcompiler snap7 libmodbus topcua parse_args"
SUBDIRS="${SUBDIRS} tcl-fuse Tix"

ACTION="$1"
if test -z "$ACTION" ; then
  ACTION=build
fi

clean_build_stamps() {
................................................................................
        ;;
      mpexpr)
        rm -f ${i}/unix/build-stamp
        ;;
      snap7)
        rm -f ${i}/build/haiku/build-stamp
        ;;






      *)
        rm -f ${i}/build-stamp
        ;;
     esac
  done
}

................................................................................
        ) || true
        ;;
      snap7)
        (
          exec >> build.log 2>&1
          make -C snap7/build/haiku -f haiku.mk clean || true
        ) || true




















        ;;
      *)
        (
          exec >> build.log 2>&1
          make -C $i ${ACTION} || true
        ) || true
        ;;
................................................................................
  perl -ni -e 'print unless /t42_driver/' objs/ftmodule.h
  perl -ni -e 'print unless /winfnt_driver/' objs/ftmodule.h
  make || exit 1
  make install || exit 1
  touch build-stamp
  echo >&3 "done"
) || fail










































echo -n "build SDL2 (static, pic) ... "
(
  exec 3>&1
  exec >> build.log 2>&1
  CC="$CC -fPIC -DSDL_BAPP_MIMETYPE=\\\"application/x-vnd.undroidwish\\\""
  CXX="$CXX -fPIC -DSDL_BAPP_MIMETYPE=\\\"application/x-vnd.undroidwish\\\""
  cd SDL2
  test -e build-stamp && echo >&3 "already done" && exit 0

  ./configure --prefix=${PFX_HERE} --enable-video-opengl \
    --disable-video-vulkan --disable-shared --disable-rpath || exit 1
  make || exit 1
  make install || exit 1
  touch build-stamp
  echo >&3 "done"
) || fail

................................................................................
  rm ${HERE}/sdl2tk/sdl/tkConfig.sh
  make || exit 1
  make install-binaries install-libraries DESTDIR=${HERE} || exit 1
  cp -rp demos ${PFX_HERE}/lib/Tix*
  touch build-stamp
  echo >&3 "done"
) || fail



































echo -n "strip binaries ... "
(
  exec 3>&1
  exec >> build.log 2>&1
  set -x
  $STRIP ${PFX_HERE}/bin/tclsh* ${PFX_HERE}/bin/sdl2wish* ${PFX_HERE}/lib/*/*.so

  # fixup paths in installation tree
  perl -pi -e "s@${PFX_HERE}@${PFX}@g" ${PFX_HERE}/bin/*-config
  perl -pi -e "s@${HERE}/tcl/unix@${PFX}/lib@g" ${PFX_HERE}/bin/*-config
  perl -pi -e "s@${PFX_HERE}@${PFX}@g" ${PFX_HERE}/lib/*.sh
  set +x
  touch .fixup-stamp
  echo >&3 "done"
................................................................................
  cp -rp ${PFX_HERE}/lib/DiffUtil* assets
  cp -rp ${PFX_HERE}/lib/parser* assets
  cp -rp ${PFX_HERE}/lib/tclcompiler* assets
  cp -rp ${PFX_HERE}/lib/topcua* assets
  cp -rp ${PFX_HERE}/lib/parse_args* assets
  cp -rp ${PFX_HERE}/lib/fuse* assets
  cp -rp ${PFX_HERE}/lib/Tix* assets

  # add shortcuts providing builtin:widget, builtin:tksqlite, etc.
  (
    cd assets
    echo > widget \
      'source [file dirname [info script]]/'$(echo sdl2tk*)'/demos/widget'
    echo > tksqlite \
      'source [file dirname [info script]]/'$(echo tksqlite*)'/tksqlite.tcl'







|
>









|







 







>
>
>
>
>
>







 







>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>







 







>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>









>
|







 







>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>






|
>







 







>







90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
...
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
...
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
...
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
....
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
....
1486
1487
1488
1489
1490
1491
1492
1493
1494
1495
1496
1497
1498
1499
1500
else
  CC="$CC -DTCL_UTF_MAX=3"
  CXX="$CXX -fno-exceptions -fno-rtti -DTCL_UTF_MAX=3"
fi
NM=nm
export STRIP AR RANLIB CC CXX NM

SUBDIRS="tcl zlib curl tcludp tdom tclvfs tclkit trofs tbcload"
SUBDIRS="${SUBDIRS} tls libwebsockets"
SUBDIRS="${SUBDIRS} Memchan TclCurl freetype SDL2 sdl2tk blt jpeg-turbo"
SUBDIRS="${SUBDIRS} 3dcanvas tkimg trf tktable tktreectrl tkpath itk tkhtml"
SUBDIRS="${SUBDIRS} tclx libdmtx ZBar zint"
SUBDIRS="${SUBDIRS} tkvnc tksvg VecTcl tclral tclepeg"
# libusb+tcluvc have stability problems
# SUBDIRS="${SUBDIRS} tcluvc"
SUBDIRS="${SUBDIRS} xotcl nsf vu rl_json mpexpr tclcsv tkzinc"
SUBDIRS="${SUBDIRS} libffi ffidl tcl-lmdb DiffUtilTcl"
SUBDIRS="${SUBDIRS} tclparser tclcompiler snap7 libmodbus topcua parse_args"
SUBDIRS="${SUBDIRS} tcl-fuse Tix openjpeg imgjp2"

ACTION="$1"
if test -z "$ACTION" ; then
  ACTION=build
fi

clean_build_stamps() {
................................................................................
        ;;
      mpexpr)
        rm -f ${i}/unix/build-stamp
        ;;
      snap7)
        rm -f ${i}/build/haiku/build-stamp
        ;;
      libwebsockets)
        rm -f ${i}/build/build-stamp
	;;
      openjpeg)
        rm -f ${i}/build/build-stamp
	;;
      *)
        rm -f ${i}/build-stamp
        ;;
     esac
  done
}

................................................................................
        ) || true
        ;;
      snap7)
        (
          exec >> build.log 2>&1
          make -C snap7/build/haiku -f haiku.mk clean || true
        ) || true
        ;;
      libwebsockets)
        (
          exec >> build.log 2>&1
          if test "$ACTION" = "distclean" ; then
            rm -rf libwebsockets/build
          else
            make -C libwebsockets/build ${ACTION} || true
          fi
        ) || true
        ;;
      openjpeg)
        (
          exec >> build.log 2>&1
          if test "$ACTION" = "distclean" ; then
            rm -rf openjpeg/build
          else
            make -C openjpeg/build ${ACTION} || true
          fi
        ) || true
        ;;
      *)
        (
          exec >> build.log 2>&1
          make -C $i ${ACTION} || true
        ) || true
        ;;
................................................................................
  perl -ni -e 'print unless /t42_driver/' objs/ftmodule.h
  perl -ni -e 'print unless /winfnt_driver/' objs/ftmodule.h
  make || exit 1
  make install || exit 1
  touch build-stamp
  echo >&3 "done"
) || fail

echo -n "build libwebsockets (static, pic) ... "
(
  exec 3>&1
  exec >> build.log 2>&1
  CC="$CC -fPIC"
  CXX="$CXX -fPIC"
  mkdir -p libwebsockets/build
  cd libwebsockets/build
  test -e build-stamp && echo >&3 "already done" && exit 0
  cmake .. -DCMAKE_INSTALL_PREFIX=${PFX_HERE}/extra -DLWS_WITHOUT_TESTAPPS=ON \
    -DLWS_IPV6=OFF -DLWS_WITH_SHARED=OFF -DLWS_WITH_SSL=OFF || exit 1
  make VERBOSE=1 COLOR=0 || exit 1
  make VERBOSE=1 COLOR=0 install || exit 1
  touch build-stamp
  echo >&3 "done"
) || fail

echo -n "prep ffmpeg compat headers ... "
(
  exec 3>&1
  exec >> build.log 2>&1
  test -r ${PFX_HERE}/extra/lib/pkgconfig/libavutil.pc && \
    echo >&3 "already done" && exit 0
  mkdir -p ${PFX_HERE}/extra/include
  mkdir -p ${PFX_HERE}/extra/lib/pkgconfig
  cp -rp ${AWDIR}/undroid/compat/ffmpeg/libavutil ${PFX_HERE}/extra/include
  cp -rp ${AWDIR}/undroid/compat/ffmpeg/libavcodec ${PFX_HERE}/extra/include
  cp -rp ${AWDIR}/undroid/compat/ffmpeg/libswscale ${PFX_HERE}/extra/include
  sed -e 's!@INCLUDE@!'"${PFX_HERE}/extra/include"'!g' \
    < ${AWDIR}/undroid/compat/ffmpeg/pkgconfig/libavutil.pc.in \
    > ${PFX_HERE}/extra/lib/pkgconfig/libavutil.pc
  sed -e 's!@INCLUDE@!'"${PFX_HERE}/extra/include"'!g' \
    < ${AWDIR}/undroid/compat/ffmpeg/pkgconfig/libavcodec.pc.in \
    > ${PFX_HERE}/extra/lib/pkgconfig/libavcodec.pc
  sed -e 's!@INCLUDE@!'"${PFX_HERE}/extra/include"'!g' \
    < ${AWDIR}/undroid/compat/ffmpeg/pkgconfig/libswscale.pc.in \
    > ${PFX_HERE}/extra/lib/pkgconfig/libswscale.pc
  touch .prep-ffmpeg
  echo >&3 "done"
)

echo -n "build SDL2 (static, pic) ... "
(
  exec 3>&1
  exec >> build.log 2>&1
  CC="$CC -fPIC -DSDL_BAPP_MIMETYPE=\\\"application/x-vnd.undroidwish\\\""
  CXX="$CXX -fPIC -DSDL_BAPP_MIMETYPE=\\\"application/x-vnd.undroidwish\\\""
  cd SDL2
  test -e build-stamp && echo >&3 "already done" && exit 0
  PKG_CONFIG_PATH="${PFX_HERE}/extra/lib/pkgconfig" ./configure \
    --prefix=${PFX_HERE} --enable-video-opengl --enable-video-jsmpeg \
    --disable-video-vulkan --disable-shared --disable-rpath || exit 1
  make || exit 1
  make install || exit 1
  touch build-stamp
  echo >&3 "done"
) || fail

................................................................................
  rm ${HERE}/sdl2tk/sdl/tkConfig.sh
  make || exit 1
  make install-binaries install-libraries DESTDIR=${HERE} || exit 1
  cp -rp demos ${PFX_HERE}/lib/Tix*
  touch build-stamp
  echo >&3 "done"
) || fail

echo -n "build openjpeg (static, pic) ... "
(
  exec 3>&1
  exec >> build.log 2>&1
  mkdir -p openjpeg/build
  cd openjpeg/build
  test -e build-stamp && echo >&3 "already done" && exit 0
  cmake .. -DCMAKE_BUILD_TYPE=Release -DCMAKE_POSITION_INDEPENDENT_CODE=ON \
    -DCMAKE_INSTALL_PREFIX=${PFX_HERE}/extra -DBUILD_SHARED_LIBS:bool=off \
    -DBUILD_PKGCONFIG_FILES=on -DOPJ_USE_THREAD:bool=off || exit 1
  make VERBOSE=1 COLOR=0 openjp2/fast || exit 1
  make VERBOSE=1 COLOR=0 opj_compress/fast || exit 1
  make VERBOSE=1 COLOR=0 opj_decompress/fast || exit 1
  make VERBOSE=1 COLOR=0 opj_dump/fast || exit 1
  make VERBOSE=1 COLOR=0 install/fast || exit 1
  touch build-stamp
  echo >&3 "done"
) || fail

echo -n "build imgjp2 ... "
(
  exec 3>&1
  exec >> build.log 2>&1
  cd imgjp2
  test -e build-stamp && echo >&3 "already done" && exit 0
  PKG_CONFIG_PATH=${PFX_HERE}/extra/lib/pkgconfig DESTDIR=${HERE} \
    ./configure --prefix=${PFX} --with-tcl=${HERE}/tcl/unix \
      --with-tk=${HERE}/sdl2tk/sdl --enable-threads || exit 1
  make || exit 1
  make install-binaries install-libraries DESTDIR=${HERE} || exit 1
  touch build-stamp
  echo >&3 "done"
) || fail

echo -n "strip binaries ... "
(
  exec 3>&1
  exec >> build.log 2>&1
  set -x
  $STRIP ${PFX_HERE}/bin/tclsh* ${PFX_HERE}/bin/sdl2wish* \
    ${PFX_HERE}/lib/*/*.so
  # fixup paths in installation tree
  perl -pi -e "s@${PFX_HERE}@${PFX}@g" ${PFX_HERE}/bin/*-config
  perl -pi -e "s@${HERE}/tcl/unix@${PFX}/lib@g" ${PFX_HERE}/bin/*-config
  perl -pi -e "s@${PFX_HERE}@${PFX}@g" ${PFX_HERE}/lib/*.sh
  set +x
  touch .fixup-stamp
  echo >&3 "done"
................................................................................
  cp -rp ${PFX_HERE}/lib/DiffUtil* assets
  cp -rp ${PFX_HERE}/lib/parser* assets
  cp -rp ${PFX_HERE}/lib/tclcompiler* assets
  cp -rp ${PFX_HERE}/lib/topcua* assets
  cp -rp ${PFX_HERE}/lib/parse_args* assets
  cp -rp ${PFX_HERE}/lib/fuse* assets
  cp -rp ${PFX_HERE}/lib/Tix* assets
  cp -rp ${PFX_HERE}/lib/imgjp2* assets
  # add shortcuts providing builtin:widget, builtin:tksqlite, etc.
  (
    cd assets
    echo > widget \
      'source [file dirname [info script]]/'$(echo sdl2tk*)'/demos/widget'
    echo > tksqlite \
      'source [file dirname [info script]]/'$(echo tksqlite*)'/tksqlite.tcl'

Changes to undroid/libwebsockets/lib/getifaddrs.c.

56
57
58
59
60
61
62



63
64
65
66
67
68
69
...
106
107
108
109
110
111
112

113

114
115
116
117
118
119
120
...
175
176
177
178
179
180
181


182
183
184
185
186
187
188
...
255
256
257
258
259
260
261


262

263
264
265
266

267
268
269
270
271
272

#ifndef max
#define max(a, b) ((a) > (b) ? (a) : (b))
#endif

#include "getifaddrs.h"




static int
getifaddrs2(struct ifaddrs **ifap, int af, int siocgifconf, int siocgifflags,
	    size_t ifreq_sz)
{
	int ret;
	int fd;
	size_t buf_size;
................................................................................

		if (ifconf.ifc_len < (int)buf_size)
			break;
		lws_free(buf);
		buf_size *= 2;
	}


	for (p = ifconf.ifc_buf; p < ifconf.ifc_buf + ifconf.ifc_len; p += sz) {

		struct ifreq ifreq;
		struct sockaddr *sa;
		size_t salen;

		ifr = (struct ifreq *)p;
		sa  = &ifr->ifr_addr;

................................................................................
error_out:
	close(fd);
	lws_free(buf);
	errno = ret;

	return -1;
}



int
getifaddrs(struct ifaddrs **ifap)
{
	int ret = -1;
	errno = ENXIO;
#if defined(AF_INET6) && defined(SIOCGIF6CONF) && defined(SIOCGIF6FLAGS)
................................................................................
		printf("  %p\n", p->ifa_data);
	}
}

int
main()
{


	struct ifaddrs *a = NULL, *b;

	getifaddrs2(&a, AF_INET, SIOCGIFCONF, SIOCGIFFLAGS,
		    sizeof(struct ifreq));
	print_ifaddrs(a);
	printf("---\n");

	getifaddrs(&b);
	print_ifaddrs(b);
	return 0;
}
#endif
#endif







>
>
>







 







>
|
>







 







>
>







 







>
>
|
>




>






56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
...
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
...
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
...
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283

#ifndef max
#define max(a, b) ((a) > (b) ? (a) : (b))
#endif

#include "getifaddrs.h"

#if (defined(AF_INET6) && defined(SIOCGIF6CONF) && defined(SIOCGIF6FLAGS)) || \
    (defined(AF_INET) && defined(SIOCGIFCONF) && defined(SIOCGIFFLAGS))

static int
getifaddrs2(struct ifaddrs **ifap, int af, int siocgifconf, int siocgifflags,
	    size_t ifreq_sz)
{
	int ret;
	int fd;
	size_t buf_size;
................................................................................

		if (ifconf.ifc_len < (int)buf_size)
			break;
		lws_free(buf);
		buf_size *= 2;
	}

	for (p = ifconf.ifc_buf;
	     p < (char *) ifconf.ifc_buf + ifconf.ifc_len;
	     p += sz) {
		struct ifreq ifreq;
		struct sockaddr *sa;
		size_t salen;

		ifr = (struct ifreq *)p;
		sa  = &ifr->ifr_addr;

................................................................................
error_out:
	close(fd);
	lws_free(buf);
	errno = ret;

	return -1;
}

#endif

int
getifaddrs(struct ifaddrs **ifap)
{
	int ret = -1;
	errno = ENXIO;
#if defined(AF_INET6) && defined(SIOCGIF6CONF) && defined(SIOCGIF6FLAGS)
................................................................................
		printf("  %p\n", p->ifa_data);
	}
}

int
main()
{
	struct *b;
#if defined(AF_INET) && defined(SIOCGIFCONF) && defined(SIOCGIFFLAGS)
	struct ifaddrs *a = NULL;

	getifaddrs2(&a, AF_INET, SIOCGIFCONF, SIOCGIFFLAGS,
		    sizeof(struct ifreq));
	print_ifaddrs(a);
	printf("---\n");
#endif
	getifaddrs(&b);
	print_ifaddrs(b);
	return 0;
}
#endif
#endif

Changes to undroid/libwebsockets/lib/lws-plat-unix.c.

225
226
227
228
229
230
231

232
233
234
235
236
237

238
239
240
241
242

243
244
245
246

247
248
249
250
251
252
253
254
255



256
257
258
259
260
261
262
        defined(__CYGWIN__) || defined(__OpenBSD__)

		/*
		 * didn't find a way to set these per-socket, need to
		 * tune kernel systemwide values
		 */
#else

		/* set the keepalive conditions we want on it too */
		optval = vhost->ka_time;
		if (setsockopt(fd, IPPROTO_TCP, TCP_KEEPIDLE,
			       (const void *)&optval, optlen) < 0)
			return 1;


		optval = vhost->ka_interval;
		if (setsockopt(fd, IPPROTO_TCP, TCP_KEEPINTVL,
			       (const void *)&optval, optlen) < 0)
			return 1;


		optval = vhost->ka_probes;
		if (setsockopt(fd, IPPROTO_TCP, TCP_KEEPCNT,
			       (const void *)&optval, optlen) < 0)
			return 1;

#endif
	}

	/* Disable Nagle */
	optval = 1;
#if !defined(__APPLE__) && \
    !defined(__FreeBSD__) && !defined(__FreeBSD_kernel__) && \
    !defined(__NetBSD__) && \
    !defined(__OpenBSD__)



	if (setsockopt(fd, SOL_TCP, TCP_NODELAY, (const void *)&optval, optlen) < 0)
		return 1;
#else
	tcp_proto = getprotobyname("TCP");
	if (setsockopt(fd, tcp_proto->p_proto, TCP_NODELAY, &optval, optlen) < 0)
		return 1;
#endif







>





|
>




|
>




>









>
>
>







225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
        defined(__CYGWIN__) || defined(__OpenBSD__)

		/*
		 * didn't find a way to set these per-socket, need to
		 * tune kernel systemwide values
		 */
#else
#ifdef TCP_KEEPIDLE
		/* set the keepalive conditions we want on it too */
		optval = vhost->ka_time;
		if (setsockopt(fd, IPPROTO_TCP, TCP_KEEPIDLE,
			       (const void *)&optval, optlen) < 0)
			return 1;
#endif
#ifdef TCP_KEEPINTVL
		optval = vhost->ka_interval;
		if (setsockopt(fd, IPPROTO_TCP, TCP_KEEPINTVL,
			       (const void *)&optval, optlen) < 0)
			return 1;
#endif
#ifdef TCP_KEEPCNT
		optval = vhost->ka_probes;
		if (setsockopt(fd, IPPROTO_TCP, TCP_KEEPCNT,
			       (const void *)&optval, optlen) < 0)
			return 1;
#endif
#endif
	}

	/* Disable Nagle */
	optval = 1;
#if !defined(__APPLE__) && \
    !defined(__FreeBSD__) && !defined(__FreeBSD_kernel__) && \
    !defined(__NetBSD__) && \
    !defined(__OpenBSD__)
#ifndef SOL_TCP
#define SOL_TCP IPPROTO_TCP
#endif
	if (setsockopt(fd, SOL_TCP, TCP_NODELAY, (const void *)&optval, optlen) < 0)
		return 1;
#else
	tcp_proto = getprotobyname("TCP");
	if (setsockopt(fd, tcp_proto->p_proto, TCP_NODELAY, &optval, optlen) < 0)
		return 1;
#endif

Changes to undroid/libwebsockets/lib/private-libwebsockets.h.

123
124
125
126
127
128
129
130



131

132
133
134
135
136
137
138
 #include <getifaddrs.h>
#else
 #include <ifaddrs.h>
#endif
#if defined (__ANDROID__)
#include <syslog.h>
#include <sys/resource.h>
#else



#include <sys/syslog.h>

#endif
#include <sys/un.h>
#include <sys/socket.h>
#include <netdb.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <arpa/inet.h>








>
>
>

>







123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
 #include <getifaddrs.h>
#else
 #include <ifaddrs.h>
#endif
#if defined (__ANDROID__)
#include <syslog.h>
#include <sys/resource.h>
#else
#if defined (__HAIKU__)
#include <syslog.h>
#else
#include <sys/syslog.h>
#endif
#endif
#include <sys/un.h>
#include <sys/socket.h>
#include <netdb.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <arpa/inet.h>