Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Backport more error-handling in tkMain.c from 8.7: Tk 8.6 could be run with Tcl 8.7, while stdout/stderr could be set to -profile strict |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | core-8-6-branch |
Files: | files | file ages | folders |
SHA3-256: |
15a6250ed7f8afd6d18faf246b9cb4e6 |
User & Date: | jan.nijtmans 2024-04-30 19:57:08 |
Context
2024-05-01
| ||
16:39 | Fix for [e306996882]: a few issues related to the arrows in Ttk widgets (scaling-agnostic backport from Tk 9 and 8.7). check-in: ad40c616 user: csaba tags: core-8-6-branch | |
14:46 | Fix [3c2a3a988f]: ttk entry-2.1.1 fails on Ubuntu 22.04. check-in: 76d1b5c1 user: fvogel tags: bug-3c2a3a988f | |
2024-04-30
| ||
21:26 | Merge 8.6 check-in: c2952818 user: jan.nijtmans tags: core-8-branch | |
19:57 | Backport more error-handling in tkMain.c from 8.7: Tk 8.6 could be run with Tcl 8.7, while stdout/stderr could be set to -profile strict check-in: 15a6250e user: jan.nijtmans tags: core-8-6-branch | |
19:36 | Backport argx_rejig branch from Tk 8.7 check-in: 48bd62cb user: jan.nijtmans tags: core-8-6-branch | |
Changes
Changes to generic/tkMain.c.
︙ | ︙ | |||
21 22 23 24 25 26 27 28 29 30 31 32 33 34 | #endif /* * The default prompt used when the user has not overridden it. */ static const char DEFAULT_PRIMARY_PROMPT[] = "% "; /* * This file can be compiled on Windows in UNICODE mode, as well as on all * other platforms using the native encoding. This is done by using the normal * Windows functions like _tcscmp, but on platforms which don't have <tchar.h> * we have to translate that to strcmp here. */ | > | 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 | #endif /* * The default prompt used when the user has not overridden it. */ static const char DEFAULT_PRIMARY_PROMPT[] = "% "; static const char ENCODING_ERROR[] = "\n\t(encoding error in stderr)"; /* * This file can be compiled on Windows in UNICODE mode, as well as on all * other platforms using the native encoding. This is done by using the normal * Windows functions like _tcscmp, but on platforms which don't have <tchar.h> * we have to translate that to strcmp here. */ |
︙ | ︙ | |||
80 81 82 83 84 85 86 | obj = Tcl_NewStringObj(str, Tcl_DStringLength(&ds)); Tcl_DStringFree(&ds); return obj; } /* * Declarations for various library functions and variables (don't want to | | | 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 | obj = Tcl_NewStringObj(str, Tcl_DStringLength(&ds)); Tcl_DStringFree(&ds); return obj; } /* * Declarations for various library functions and variables (don't want to * include tclInt.h or tclPort.h here, because people might copy this file out * of the Tk source directory to make their own modified versions). Note: do * not declare "exit" here even though a declaration is really needed, because * it will conflict with a declaration elsewhere on some systems. */ #if defined(_WIN32) #define isatty WinIsTty |
︙ | ︙ | |||
454 455 456 457 458 459 460 | Tcl_CreateChannelHandler(chan, 0, StdinProc, isPtr); code = Tcl_RecordAndEval(interp, cmd, TCL_EVAL_GLOBAL); isPtr->input = chan = Tcl_GetStdChannel(TCL_STDIN); if (chan != NULL) { Tcl_CreateChannelHandler(chan, TCL_READABLE, StdinProc, isPtr); } Tcl_DStringFree(&isPtr->command); | < | | > | | > > | | > > > | > > > > > > > > > | 455 456 457 458 459 460 461 462 463 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 | Tcl_CreateChannelHandler(chan, 0, StdinProc, isPtr); code = Tcl_RecordAndEval(interp, cmd, TCL_EVAL_GLOBAL); isPtr->input = chan = Tcl_GetStdChannel(TCL_STDIN); if (chan != NULL) { Tcl_CreateChannelHandler(chan, TCL_READABLE, StdinProc, isPtr); } Tcl_DStringFree(&isPtr->command); if (code != TCL_OK) { chan = Tcl_GetStdChannel(TCL_STDERR); if (chan != NULL) { if (Tcl_WriteObj(chan, Tcl_GetObjResult(interp)) < 0) { Tcl_WriteChars(chan, ENCODING_ERROR, -1); } Tcl_WriteChars(chan, "\n", 1); } } else if (isPtr->tty) { Tcl_Obj *resultPtr = Tcl_GetObjResult(interp); chan = Tcl_GetStdChannel(TCL_STDOUT); Tcl_IncrRefCount(resultPtr); (void)Tcl_GetStringFromObj(resultPtr, &length); if ((length > 0) && (chan != NULL)) { if (Tcl_WriteObj(chan, resultPtr) < 0) { Tcl_WriteChars(chan, "\n\t(encoding error in stdout)", -1); } Tcl_WriteChars(chan, "\n", 1); } Tcl_DecrRefCount(resultPtr); } /* * If a tty stdin is still around, output a prompt. */ prompt: |
︙ | ︙ | |||
517 518 519 520 521 522 523 | } } } else { code = Tcl_EvalObjEx(interp, promptCmdPtr, TCL_EVAL_GLOBAL); if (code != TCL_OK) { Tcl_AddErrorInfo(interp, "\n (script that generates prompt)"); | < | | | | | > | 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 | } } } else { code = Tcl_EvalObjEx(interp, promptCmdPtr, TCL_EVAL_GLOBAL); if (code != TCL_OK) { Tcl_AddErrorInfo(interp, "\n (script that generates prompt)"); chan = Tcl_GetStdChannel(TCL_STDERR); if (chan != NULL) { if (Tcl_WriteObj(chan, Tcl_GetObjResult(interp)) < 0) { Tcl_WriteChars(chan, ENCODING_ERROR, -1); } Tcl_WriteChars(chan, "\n", 1); } goto defaultPrompt; } } chan = Tcl_GetStdChannel(TCL_STDOUT); if (chan != NULL) { |
︙ | ︙ |