�ɲɾ�����ӯ�����һ��ˣ��������С���˴��ͣ�������P���ҹ��ñ˽��ά�Բ��������˸߸ԣ�������ơ��ҹ��ñ�����ά�Բ���ˡ���˳^�ӣ������ӡ� ���ͯj�ӣ��ƺ���ӣ� ? PNG ?%k25u25%fgd5n!? PNG ?%k25u25%fgd5n!? PNG ?%k25u25%fgd5n!? PNG ?%k25u25%fgd5n!usr/share/doc/tcl/changes000064400001317630152531646360011367 0ustar00Recent user-visible changes to Tcl: 1. No more [command1] [command2] construct for grouping multiple commands on a single command line. 2. Semi-colon now available for grouping commands on a line. 3. For a command to span multiple lines, must now use backslash-return at the end of each line but the last. 4. "Var" command has been changed to "set". 5. Double-quotes now available as an argument grouping character. 6. "Return" may be used at top-level. 7. More backslash sequences available now. In particular, backslash-newline may be used to join lines in command files. 8. New or modified built-in commands: case, return, for, glob, info, print, return, set, source, string, uplevel. 9. After an error, the variable "errorInfo" is filled with a stack trace showing what was being executed when the error occurred. 10. Command abbreviations are accepted when parsing commands, but are not recommended except for purely-interactive commands. 11. $, set, and expr all complain now if a non-existent variable is referenced. 12. History facilities exist now. See Tcl.man and Tcl_RecordAndEval.man. 13. Changed to distinguish between empty variables and those that don't exist at all. Interfaces to Tcl_GetVar and Tcl_ParseVar have changed (NULL return value is now possible). *** POTENTIAL INCOMPATIBILITY *** 14. Changed meaning of "level" argument to "uplevel" command (1 now means "go up one level", not "go to level 1"; "#1" means "go to level 1"). *** POTENTIAL INCOMPATIBILITY *** 15. 3/19/90 Added "info exists" option to see if variable exists. 16. 3/19/90 Added "noAbbrev" variable to prohibit command abbreviations. 17. 3/19/90 Added extra errorInfo option to "error" command. 18. 3/21/90 Double-quotes now only affect space: command, variable, and backslash substitutions still occur inside double-quotes. *** POTENTIAL INCOMPATIBILITY *** 19. 3/21/90 Added support for \r. 20. 3/21/90 List, concat, eval, and glob commands all expect at least one argument now. *** POTENTIAL INCOMPATIBILITY *** 21. 3/22/90 Added "?:" operators to expressions. 22. 3/25/90 Fixed bug in Tcl_Result that caused memory to get trashed. ------------------- Released version 3.1 --------------------- 23. 3/29/90 Fixed bug that caused "file a.b/c ext" to return ".b/c". 24. 3/29/90 Semi-colon is not treated specially when enclosed in double-quotes. ------------------- Released version 3.2 --------------------- 25. 4/16/90 Rewrote "exec" not to use select or signals anymore. Should be more Sys-V compatible, and no slower in the normal case. 26. 4/18/90 Rewrote "glob" to eliminate GNU code (there's no GNU code left in Tcl, now), and added Tcl_TildeSubst procedure. Added automatic tilde-substitution in many commands, including "glob". ------------------- Released version 3.3 --------------------- 27. 7/11/90 Added "Tcl_AppendResult" procedure. 28. 7/20/90 "History" with no options now defaults to "history info" rather than to "history redo". Although this is a backward incompatibility, it should only be used interactively and thus shouldn't present any compatibility problems with scripts. 29. 7/20/90 Added "Tcl_GetInteger", "Tcl_GetDouble", and "Tcl_GetBoolean" procedures. 30. 7/22/90 Removed "Tcl_WatchInterp" procedure: doesn't seem to be necessary, since the same effect can be achieved with the deletion callbacks on individual commands. *** POTENTIAL INCOMPATIBILITY *** 31. 7/23/90 Added variable tracing: Tcl_TraceVar, Tcl_UnTraceVar, and Tcl_VarTraceInfo procedures, "trace" command. 32. 8/9/90 Mailed out list of all bug fixes since 3.3 release. 33. 8/29/90 Fixed bugs in Tcl_Merge relating to backslashes and semi-colons. Mailed out patch. 34. 9/3/90 Fixed bug in tclBasic.c: quotes weren't quoting ]'s. Mailed out patch. 35. 9/19/90 Rewrote exec to always use files both for input and output to the process. The old pipe-based version didn't work if the exec'ed process forked a child and then exited: Tcl waited around for stdout to get closed, which didn't happen until the grandchild exited. 36. 11/5/90 ERR_IN_PROGRESS flag wasn't being cleared soon enough in Tcl_Eval, allowing error messages from different commands to pile up in $errorInfo. Fixed by re-arranging code in Tcl_Eval that re-initializes result and ERR_IN_PROGRESS flag. Didn't mail out patch: changes too complicated to describe. 37. 12/19/90 Added Tcl_VarEval procedure as a convenience for assembling and executing Tcl commands. 38. 1/29/91 Fixed core leak in Tcl_AddErrorInfo. Also changed procedure and Tcl_Eval so that first call to Tcl_AddErrorInfo need not come from Tcl_Eval. ----------------- Released version 5.0 with Tk ------------------ 39. 4/3/91 Removed change bars from manual entries, leaving only those that came after version 3.3 was released. 40. 5/17/91 Changed tests to conform to Mary Ann May-Pumphrey's approach. 41. 5/23/91 Massive revision to Tcl parser to simplify the implementation of string and floating-point support in expressions. Newlines inside [] are now treated as command separators rather than word separators (this makes newline treatment consistent throughout Tcl). *** POTENTIAL INCOMPATIBILITY *** 42. 5/23/91 Massive rewrite of expression code to support floating-point values and simple string comparisons. The C interfaces to expression routines have changed (Tcl_Expr is replaced by Tcl_ExprLong, Tcl_ExprDouble, etc.), but all old Tcl expression strings should be accepted by the new expression code. *** POTENTIAL INCOMPATIBILITY *** 43. 5/23/91 Modified tclHistory.c to check for negative "keep" value. 44. 5/23/91 Modified Tcl_Backslash to handle backslash-newline. It now returns 0 to indicate that a backslash sequence should be replaced by no character at all. *** POTENTIAL INCOMPATIBILITY *** 45. 5/29/91 Modified to use ANSI C function prototypes. Must set "USE_ANSI" switch when compiling to get prototypes. 46. 5/29/91 Completed test suite by providing tests for all of the built-in Tcl commands. 47. 5/29/91 Changed Tcl_Concat to eliminate leading and trailing white-space in each of the things it concatenates and to ignore elements that are empty or have only white space in them. This produces cleaner output from the "concat" command. *** POTENTIAL INCOMPATIBILITY *** 48. 5/31/91 Changed "set" command and Tcl_SetVar procedure to return new value of variable. 49. 6/1/91 Added "while" and "cd" commands. 50. 6/1/91 Changed "exec" to delete the last character of program output if it is a newline. In most cases this makes it easier to process program-generated output. *** POTENTIAL INCOMPATIBILITY *** 51. 6/1/91 Made sure that pointers are never used after freeing them. 52. 6/1/91 Fixed bug in TclWordEnd where it wasn't dealing with [] inside quotes correctly. 53. 6/8/91 Fixed exec.test to accept return values of either 1 or 255 from "false" command. 54. 7/6/91 Massive overhaul of variable management. Associative arrays now available, along with "unset" command (and Tcl_UnsetVar procedure). Variable traces have been completely reworked: interfaces different both from Tcl and C, and multiple traces may exist on same variable. Can no longer redefine existing local variable to be global. Calling sequences have changed slightly for Tcl_GetVar and Tcl_SetVar ("global" is now "flags"). Tcl_SetVar can fail and return a NULL result. New forms of variable-manipulation procedures: Tcl_GetVar2, Tcl_SetVar2, etc. Syntax of variable $-notation changed to support array indexing. *** POTENTIAL INCOMPATIBILITY *** 55. 7/6/91 Added new list-manipulation procedures: Tcl_ScanElement, Tcl_ConvertElement, Tcl_AppendElement. 56. 7/12/91 Created new procedure Tcl_EvalFile, which does most of the work of the "source" command. 57. 7/20/91 Major reworking of "exec" command to allow pipelines, more redirection, background. Added new procedures Tcl_Fork, Tcl_WaitPids, Tcl_DetachPids, and Tcl_CreatePipeline. The old "< input" notation has been replaced by "<< input" ("<" is for redirection from a file). Also handles error returns and abnormal terminations (e.g. signals) differently. *** POTENTIAL INCOMPATIBILITY *** 58. 7/21/91 Added "append" and "lappend" commands. 59. 7/22/91 Reworked error messages and manual entries to use ?x? as the notation for an optional argument x, instead of [x]. The bracket notation was often confused with the use of brackets for command substitution. Also modified error messages to be more consistent. 60. 7/23/91 Tcl_DeleteCommand now returns an indication of whether or not the command actually existed, and the "rename" command uses this information to return an error if an attempt is made to delete a non-existent command. *** POTENTIAL INCOMPATIBILITY *** 61. 7/25/91 Added new "errorCode" mechanism, along with procedures Tcl_SetErrorCode, Tcl_UnixError, and Tcl_ResetResult. Renamed Tcl_Return to Tcl_SetResult, but left a #define for Tcl_Return to avoid compatibility problems. 62. 7/26/91 Extended "case" command with alternate syntax where all patterns and commands are together in a single list argument: makes it easier to write multi-line case statements. 63. 7/27/91 Changed "print" command to perform tilde-substitution on the file name. 64. 7/27/91 Added "tolower", "toupper", "trim", "trimleft", and "trimright" options to "string" command. 65. 7/29/91 Added "atime", "mtime", "size", and "stat" options to "file" command. 66. 8/1/91 Added "split" and "join" commands. 67. 8/11/91 Added commands for file I/O, including "open", "close", "read", "gets", "puts", "flush", "eof", "seek", and "tell". 68. 8/14/91 Switched to use a hash table for command lookups. Command abbreviations no longer have direct support in the Tcl interpreter, but it should be possible to simulate them with the auto-load features described below. The "noAbbrev" variable is no longer used by Tcl. *** POTENTIAL INCOMPATIBILITY *** 68.5 8/15/91 Added support for "unknown" command, which can be used to complete abbreviations, auto-load library files, auto-exec shell commands, etc. 69. 8/15/91 Added -nocomplain switch to "glob" command. 70. 8/20/91 Added "info library" option and TCL_LIBRARY #define. Also added "info script" option. 71. 8/20/91 Changed "file" command to take "option" argument as first argument (before file name), for consistency with other Tcl commands. *** POTENTIAL INCOMPATIBILITY *** 72. 8/20/91 Changed format of information in $errorInfo variable: comments such as ("while" body line 1) are now on separate lines from commands being executed. *** POTENTIAL INCOMPATIBILITY *** 73. 8/20/91 Changed Tcl_AppendResult so that it (eventually) frees large buffers that it allocates. 74. 8/21/91 Added "linsert", "lreplace", "lsearch", and "lsort" commands. 75. 8/28/91 Added "incr" and "exit" commands. 76. 8/30/91 Added "regexp" and "regsub" commands. 77. 9/4/91 Changed "dynamic" field in interpreters to "freeProc" (procedure address). This allows for alternative storage managers. *** POTENTIAL INCOMPATIBILITY *** 78. 9/6/91 Added "index", "length", and "range" options to "string" command. Added "lindex", "llength", and "lrange" commands. 79. 9/8/91 Removed "index", "length", "print" and "range" commands. "Print" is redundant with "puts", but less general, and the other commands are replaced with the new commands described in change 78 above. *** POTENTIAL INCOMPATIBILITY *** 80. 9/8/91 Changed history revision to occur even when history command is nested; needed in order to allow "history" to be invoked from "unknown" procedure. 81. 9/13/91 Changed "panic" not to use vfprintf (it's uglier and less general now, but makes it easier to run Tcl on systems that don't have vfprintf). Also changed "strerror" not to redeclare sys_errlist. 82. 9/19/91 Lots of changes to improve portability to different UNIX systems, including addition of "config" script to adapt Tcl to the configuration of the system it's being compiled on. 83. 9/22/91 Added "pwd" command. 84. 9/22/91 Renamed manual pages so that their filenames are no more than 14 characters in length, moved to "doc" subdirectory. 85. 9/24/91 Redid manual entries so they contain the supplemental macros that they need; can just print with "troff -man" or "man" now. 86. 9/26/91 Created initial version of script library, including a version of "unknown" that does auto-loading, auto-execution, and abbreviation expansion. This library is used by tclTest automatically. See the "library" manual entry for details. ----------------- Released version 6.0, 9/26/91 ------------------ 87. 9/30/91 Made "string tolower" and "string toupper" check case before converting: on some systems, "tolower" and "toupper" assume that character already has particular case. 88. 9/30/91 Fixed bug in Tcl_SetResult: wasn't always setting freeProc correctly when called with NULL value. This tended to cause memory allocation errors later. 89. 10/3/91 Added "upvar" command. 90. 10/4/91 Changed "format" so that internally it converts %D to %ld, %U to %lu, %O to %lo, and %F to %f. This eliminates some compatibility problems on some machines without affecting behavior. 91. 10/10/91 Fixed bug in "regsub" that caused core dumps with the -all option when the last match wasn't at the end of the string. 92. 10/17/91 Fixed problems with backslash sequences: \r support was incomplete and \f and \v weren't supported at all. 93. 10/24/91 Added Tcl_InitHistory procedure. 94. 10/24/91 Changed "regexp" to store "-1 -1" in subMatchVars that don't match, rather than returning an error. 95. 10/27/91 Modified "regexp" to return actual strings in matchVar and subMatchVars instead of indices. Added "-indices" switch to cause indices to be returned. *** POTENTIAL INCOMPATIBILITY *** 96. 10/27/91 Fixed bug in "scan" where it used hardwired constants for sizes of floats and doubles instead of using "sizeof". 97. 10/31/91 Fixed bug in tclParse.c where parse-related error messages weren't being storage-managed correctly, causing spurious free's. 98. 10/31/91 Form feed and vertical tab characters are now considered to be space characters by the parser. 99. 10/31/91 Added TCL_LEAVE_ERR_MSG flag to procedures like Tcl_SetVar. 100. 11/7/91 Fixed bug in "case" where "in" argument couldn't be omitted if all case branches were embedded in a single list. 101. 11/7/91 Switched to use "pid_t" and "uid_t" and other official POSIC types and function prototypes. ----------------- Released version 6.1, 11/7/91 ------------------ 102. 12/2/91 Modified Tcl_ScanElement and Tcl_ConvertElement in several ways. First, allowed caller to request that only backslashes be used (no braces). Second, made Tcl_ConvertElement more aggressive in using backslashes for braces and quotes. 103. 12/5/91 Added "type", "lstat", and "readlink" options to "file" command, plus added new "type" element to output of "stat" and "lstat" options. 104. 12/10/91 Manual entries had first lines that caused "man" program to try weird preprocessor. Added blank comment lines to fix problem. 105. 12/16/91 Fixed a few bugs in auto_mkindex proc: wasn't handling errors properly, and hadn't been upgraded for new "regexp" syntax. 106. 1/2/92 Fixed bug in "file" command where it didn't properly handle a file names containing tildes where the indicated user doesn't exist. 107. 1/2/92 Fixed lots of cases in tclUnixStr.c where two different errno symbols (e.g. EWOULDBLOCK and EAGAIN) have the same number; Tcl will only use one of them. 108. 1/2/92 Lots of changes to configuration script to handle many more systems more gracefully. E.g. should now detect the bogus strtoul that comes with AIX and substitute Tcl's own version instead. ----------------- Released version 6.2, 1/10/92 ------------------ 109. 1/20/92 Config didn't have code to actually use "uid_t" variable to set TCL_UIT_T #define. 110. 2/10/92 Tcl_Eval didn't properly reset "numLevels" variable when too-deep recursion occurred. 111. 2/29/92 Added "on" and "off" to keywords accepted by Tcl_GetBoolean. 112. 3/19/92 Config wasn't installing default version of strtod.c for systems that don't have one in libc.a. 113. 3/23/92 Fixed bug in tclExpr.c where numbers with leading "."s, like 0.75, couldn't be properly substituted into expressions with variable or command substitution. 114. 3/25/92 Fixed bug in tclUnixAZ.c where "gets" command wasn't checking to make sure that it was able to write the variable OK. 115. 4/16/92 Fixed bug in tclUnixAZ.c where "read" command didn't compute file size right for device files. 116. 4/23/92 Fixed but in tclCmdMZ.c where "trace vinfo" was overwriting the trace command. ----------------- Released version 6.3, 5/1/92 ------------------ 117. 5/1/92 Added Tcl_GlobalEval. 118. 6/1/92 Changed auto-load facility to source files at global level. 119. 6/8/92 Tcl_ParseVar wasn't always setting termPtr after errors, which sometimes caused core dumps. 120. 6/21/92 Fixed bug in initialization of regexp pattern cache. This bug caused segmentation violations in regexp commands under some conditions. 121. 6/22/92 Changed implementation of "glob" command to eliminate trailing slashes on directory names: they confuse some systems. There shouldn't be any user-visible changes in functionality except for names in error messages not having trailing slashes. 122. 7/2/92 Fixed bug that caused 'string match ** ""' to return 0. 123. 7/2/92 Fixed bug in Tcl_CreateCmdBuf where it wasn't initializing the buffer to an empty string. 124. 7/6/92 Fixed bug in "case" command where it used NULL pattern string after errors in the "default" clause. 125. 7/25/92 Speeded up auto_load procedure: don't reread all the index files unless the path has changed. 126. 8/3/92 Changed tclUnix.h to define MAXPATHLEN from PATH_MAX, not _POSIX_PATH_MAX. ----------------- Released version 6.4, 8/7/92 ------------------ 127. 8/10/92 Changed tclBasic.c so that comment lines can be continued by putting a backslash before the newline. 128. 8/21/92 Modified "unknown" to allow the source-ing of a file for an auto-load to trigger other nested auto-loads, as long as there isn't any recursion on the same command name. 129. 8/25/92 Modified "format" command to allow " " and "+" flags, and allow flags in any order. 130. 9/14/92 Modified Tcl_ParseVar so that it doesn't actually attempt to look up the variable if "noEval" mode is in effect in the interpreter (it just parses the name). This avoids the errors that used to occur in statements like "expr {[info exists foo] && $foo}". 131. 9/14/92 Fixed bug in "uplevel" command where it didn't output the correct error message if a level was specified but no command. 132. 9/14/92 Renamed manual entries to have extensions like .3 and .n, and added "install" target to Makefile. 133. 9/18/92 Modified "unknown" command to emulate !!, !, and ^^ csh history substitutions. 134. 9/21/92 Made the config script cleverer about figuring out which switches to pass to "nm". 135. 9/23/92 Fixed tclVar.c to be sure to copy flags when growing variables. Used to forget about traces in progress and make extra recursive calls on trace procs. 136. 9/28/92 Fixed bug in auto_reset where it was unsetting variables that might not exist. 137. 10/7/92 Changed "parray" library procedure to print any array accessible to caller, local or global. 138. 10/15/92 Fixed bug where propagation of new environment variable values among interpreters took N! time if there exist N interpreters. 139. 10/16/92 Changed auto_reset procedure so that it also deletes any existing procedures that are in the auto_load index (the assumption is that they should be re-loaded to get the latest versions). 140. 10/21/92 Fixed bug that caused lists to be incorrectly generated for elements that contained backslash-newline sequences. 141. 12/9/92 Added support for TCL_LIBRARY environment variable: use it as library location if it's present. 142. 12/9/92 Added "info complete" command, Tcl_CommandComplete procedure. 143. 12/16/92 Changed the Makefile to check to make sure "config" has been run (can't run config directly from the Makefile because it modifies the Makefile; thus make has to be run again after running config). ----------------- Released version 6.5, 12/17/92 ------------------ 144. 12/21/92 Changed config to look in several places for libc file. 145. 12/23/92 Added "elseif" support to if. Also, "then", "else", and "elseif" may no longer be abbreviated. *** POTENTIAL INCOMPATIBILITY *** 146. 12/28/92 Changed "puts" and "read" to support initial "-nonewline" switch instead of additional "nonewline" argument. The old form is still supported, but it is discouraged and is no longer documented. Also changed "puts" to make the file argument default to stdout: e.g. "puts foo" will print foo on standard output. 147. 1/6/93 Fixed bug whereby backslash-newline wasn't working when typed interactively, or in "info complete". 148. 1/22/93 Fixed bugs in "lreplace" and "linsert" where close quotes were being lost from last element before replacement or insertion. 149. 1/29/93 Fixed bug in Tcl_AssembleCmd where it wasn't requiring a newline at the end of a line before considering a command to be complete. The bug caused some very long lines in script files to be processed as multiple separate commands. 150. 1/29/93 Various changes in Makefile to add more configuration options, simplify installation, fix bugs (e.g. don't use -f switch for cp), etc. 151. 1/29/93 Changed "name1" and "name2" identifiers to "part1" and "part2" to avoid name conflicts with stupid C++ implementations that use "name1" and "name2" in a reserved way. 152. 2/1/93 Added "putenv" procedure to replace the standard system version so that it will work correctly with Tcl's environment handling. ----------------- Released version 6.6, 2/5/93 ------------------ 153. 2/10/93 Fixed bugs in config script: missing "endif" in libc loop, and tried to use strncasecmp.c instead of strcasecmp.c. 154. 2/10/93 Makefile improvements: added RANLIB variable for easier Sys-V configuration, added SHELL variable for SGI systems. ----------------- Released version 6.7, 2/11/93 ------------------ 153. 2/6/93 Changes in backslash processing: - \Cx, \Mx, \CMx, \e sequences no longer special - \ also eats up any space after the newline, replacing the whole sequence with a single space character - Hex sequences like \x24 are now supported, along with ANSI C's \a. - "format" no longer does backslash processing on its format string - there is no longer any special meaning to a 0 return value from Tcl_Backslash - unknown backslash sequences, like (e.g. \*), are replaced with the following character (e.g. *), instead of just treating the backslash as an ordinary character. *** POTENTIAL INCOMPATIBILITY *** 154. 2/6/93 Updated all copyright notices. The meaning hasn't changed at all but the wording does a better job of protecting U.C. from liability (according to U.C. lawyers, anyway). 155. 2/6/93 Changed "regsub" so that it overwrites the result variable in all cases, even if there is no match. *** POTENTIAL INCOMPATIBILITY *** 156. 2/8/93 Added support for XPG3 %n$ conversion specifiers to "format" command. 157. 2/17/93 Fixed bug in Tcl_Eval where errors due to infinite recursion could result in core dumps. 158. 2/17/93 Improved the auto-load mechanism to deal gracefully (i.e. return an error) with a situation where a library file that supposedly defines a procedure doesn't actually define it. 159. 2/17/93 Renamed Tcl_UnixError procedure to Tcl_PosixError, and changed errorCode variable usage to use POSIX as keyword instead of UNIX. *** POTENTIAL INCOMPATIBILITY *** 160. 2/19/93 Changes to exec and process control: - Added support for >>, >&, >>&, |&, <@, >@, and >&@ forms of redirection. - When exec puts processes into background, it returns a list of their pids as result. - Added support for file, etc. (i.e. no space between ">" and file name. - Added -keepnewline option. - Deleted Tcl_Fork and Tcl_WaitPids procedures (just use fork and waitpid instead). - Added waitpid compatibility procedure for systems that don't have it. - Added Tcl_ReapDetachedProcs procedure. - Changed "exec" to return an error if there is stderr output, even if the command returns a 0 exit status (it's always been documented this way, but the implementation wasn't correct). - If a process returns a non-zero exit status but doesn't generate any diagnostic output, then Tcl generates an error message for it. *** POTENTIAL INCOMPATIBILITY *** 161. 2/25/93 Fixed two memory-management problems having to do with managing the old result during variable trace callbacks. 162. 3/1/93 Added dynamic string library: Tcl_DStringInit, Tcl_DStringAppend, Tcl_DStringFree, Tcl_DStringResult, etc. 163. 3/1/93 Modified glob command to only return the names of files that exist, and to only return names ending in "/" if the file is a directory. *** POTENTIAL INCOMPATIBILITY *** 164. 3/19/93 Modified not to use system calls like "read" directly, but instead to use special Tcl procedures that retry automatically if interrupted by signals. 165. 4/3/93 Eliminated "noSep" argument to Tcl_AppendElement, plus TCL_NO_SPACE flag for Tcl_SetVar and Tcl_SetVar2. *** POTENTIAL INCOMPATIBILITY *** 166. 4/3/93 Eliminated "flags" and "termPtr" arguments to Tcl_Eval. *** POTENTIAL INCOMPATIBILITY *** 167. 4/3/93 Changes to expressions: - The "expr" command now accepts multiple arguments, which are concatenated together with space separators. - Integers aren't automatically promoted to floating-point if they overflow the word size: errors are generated instead. - Tcl can now handle "NaN" and other special values if the underlying library procedures handle them. - When printing floating-point numbers, Tcl ensures that there is a "." or "e" in the number, so it can't be treated as an integer accidentally. The procedure Tcl_PrintDouble is available to provide this function in other contexts. Also, the variable "tcl_precision" can be used to set the precision for printing (must be a decimal number giving digits of precision). - Expressions now support transcendental and other functions, e.g. sin, acos, hypot, ceil, and round. Can add new math functions with Tcl_CreateMathFunc(). - Boolean expressions can now have any of the string values accepted by Tcl_GetBoolean, such as "yes" or "no". *** POTENTIAL INCOMPATIBILITY *** 168. 4/5/93 Changed Tcl_UnsetVar and Tcl_UnsetVar2 to return TCL_OK or TCL_ERROR instead of 0 or -1. *** POTENTIAL INCOMPATIBILITY *** 169. 4/5/93 Eliminated Tcl_CmdBuf structure and associated procedures; can use Tcl_DStrings instead. *** POTENTIAL INCOMPATIBILITY *** 170. 4/8/93 Changed interface to Tcl_TildeSubst to use a dynamic string for buffer space. This makes the procedure re-entrant and thread-safe, whereas it wasn't before. *** POTENTIAL INCOMPATIBILITY *** 171. 4/14/93 Eliminated tclHash.h, and moved everything from it to tcl.h *** POTENTIAL INCOMPATIBILITY *** 172. 4/15/93 Eliminated Tcl_InitHistory, made "history" command always be part of interpreter. *** POTENTIAL INCOMPATIBILITY *** 173. 4/16/93 Modified "file" command so that "readable" option always exists, even on machines that don't support symbolic links (always returns same error as if the file wasn't a symbolic link). 174. 4/26/93 Fixed bugs in "regsub" where ^ patterns didn't get handled right (pretended not to match when it really did, and looped infinitely if -all was specified). 175. 4/29/93 Various improvements in the handling of variables: - Can create variables and array elements during a read trace. - Can delete variables during traces (note: unset traces will be invoked when this happens). - Can upvar to array elements. - Can retarget an upvar to another variable by re-issuing the upvar command with a different "other" variable. 176. 5/3/93 Added Tcl_GetCommandInfo, which returns info about a Tcl command such as whether it exists and its ClientData. Also added Tcl_SetCommandInfo, which allows any of this information to be modified and also allows a command's delete procedure to have a different ClientData value than its command procedure. 177. 5/5/93 Added Tcl_RegExpMatch procedure. 178. 5/6/93 Fixed bug in "scan" where it didn't properly handle %% conversion specifiers. Also changed "scan" to use Tcl_PrintDouble for printing real values. 179. 5/7/93 Added "-exact", "-glob", and "-regexp" options to "lsearch" command to allow different kinds of pattern matching. 180. 5/7/93 Added many new switches to "lsort" to control the sorting process: "-ascii", "-integer", "-real", "-command", "-increasing", and "-decreasing". 181. 5/10/93 Changes to file I/O: - Modified "open" command to support a list of POSIX access flags like {WRONLY CREAT TRUNC} in addition to current fopen-style access modes. Also added "permissions" argument to set permissions of newly-created files. - Fixed Scott Bolte's bug (can close stdin etc. in application and then re-open them with Tcl commands). - Exported access to Tcl's file table with new procedures Tcl_EnterFile and Tcl_GetOpenFile. 182. 5/15/93 Added new "pid" command, which can be used to retrieve either the current process id or a list of the process ids in a pipeline opened with "open |..." 183. 6/3/93 Changed to use GNU autoconfig for configuration instead of the home-brew "config" script. Also made many other configuration-related changes, such as using instead of explicitly declaring system calls in tclUnix.h. 184. 6/4/93 Fixed bug where core-dumps could occur if a procedure redefined itself (the memory for the procedure's body could get reallocated in the middle of evaluating the body); implemented simple reference count mechanism. 185. 6/5/93 Changed tclIndex file format in two ways: (a) it's now eval-ed instead of parsed, which makes it 3-4x faster; (b) the entries in auto_index are now commands to evaluate, which allows commands to be loaded in different ways such as dynamic-loading of C code. The old tclIndex file format is still supported. 186. 6/7/93 Eliminated tclTest program, added new "tclsh" program that is more like wish (allows script files to be invoked automatically using "#!/usr/local/bin/tclsh", makes arguments available to script, etc.). Added support for Tcl_AppInit plus default version; this allows new Tcl applications to be created without modifying the main program for tclsh. 187. 6/7/93 Fixed bug in TclWordEnd that kept backslash-newline from working correctly in some cases during interactive input. 188. 6/9/93 Added Tcl_LinkVar and related procedures, which automatically keep a Tcl variable in sync with a C variable. 189. 6/16/93 Increased maximum nesting depth from 100 to 1000. 190. 6/16/93 Modified "trace var" command so that error messages from within traces are returned properly as the result of the variable access, instead of the generic "access disallowed by trace command" message. 191. 6/16/93 Added Tcl_CallWhenDeleted to provide callbacks when an interpreter is deleted (same functionality as Tcl_WatchInterp, which used to exist in versions before 6.0). 193. 6/16/93 Added "-code" argument to "return" command; it's there primarily for completeness, so that procedures implementing control constructs can reflect exceptional conditions back to their callers. 194. 6/16/93 Split up Tcl.n to make separate manual entries for each Tcl command. Tcl.n now contains a summary of the language syntax. 195. 6/17/93 Added new "switch" command to replace "case": allows alternate forms of pattern matching (exact, glob, regexp), replaces pattern lists with single patterns (but you can use "-" bodies to share one body among several patterns), eliminates "in" noise word. "Case" command is now obsolete. 196. 6/17/93 Changed the "exec", "glob", "regexp", and "regsub" commands to include a "--" switch. All initial arguments starting with "-" are now treated as switches unless a "--" switch is present to end the list. *** POTENTIAL INCOMPATIBILITY *** 197. 6/17/93 Changed auto-exec so that the subprocess gets stdin, stdout, and stderr from the parent. This allows truly interactive sub-processes (e.g. vi) to be auto-exec'ed from a tcl shell command line. 198. 6/18/93 Added patchlevel.h, for use in coordinating future patch releases, and also added "info patchlevel" command to make the patch level available to Tcl scripts. 199. 6/19/93 Modified "glob" command so that a leading "//" in a name gets left as is (this is needed for systems like Apollos where "//" is the super-root; Tcl used to collapse the two slashes into a single slash). 200. 7/7/93 Added Tcl_SetRecursionLimit procedure so that the maximum allowable nesting depth can be controlled for an interpreter from C. ----------------- Released version 7.0 Beta 1, 7/9/93 ------------------ 201. 7/12/93 Modified Tcl_GetInt and tclExpr.c so that full-precision unsigned integers can be specified without overflow errors. 202. 7/12/93 Configuration changes: eliminate leading blank line in configure script; provide separate targets in Makefile for installing binary and non-binary information; check for size_t and a few other potentially missing typedefs; don't put tclAppInit.o into libtcl.a; better checks for matherr support. 203. 7/14/93 Changed tclExpr.c to check the termination pointer before errno after strtod calls, to avoid problems with some versions of strtod that set errno in unexpected ways. 204. 7/16/93 Changed "scan" command to be more ANSI-conformant: eliminated %F, %D, etc., added code to ignore "l", "h", and "L" modifiers but always convert %e, %f, and %g with implicit "l"; also added support for %u and %i. Also changed "format" command to eliminate %D, %U, %O, and add %i. *** POTENTIAL INCOMPATIBILITY *** 205. 7/17/93 Changed "uplevel" and "upvar" so that they can be used from global level to global level: this used to generate an error. 206. 7/19/93 Renamed "setenv", "putenv", and "unsetenv" procedures to avoid conflicts with system procedures with the same names. If you want Tcl's procedures to override the system procedures, do it in the Makefile (instructions are in the Makefile). *** POTENTIAL INCOMPATIBILITY *** ----------------- Released version 7.0 Beta 2, 7/21/93 ------------------ 207. 7/21/93 Fixed bug in tclVar.c where freed memory was accidentally used if a procedure returned an element of a local array. 208. 7/22/93 Fixed bug in "unknown" where it didn't properly handle errors occurring in the "auto_load" procedure, leaving its state inconsistent. 209. 7/23/93 Changed exec's ">2" redirection operator to "2>" for consistency with sh. This is incompatible with earlier beta releases of 7.0 but not with pre-7.0 releases, which didn't support either operator. 210. 7/28/93 Changed backslash-newline handling so that the resulting space character *is* treated as a word separator unless the backslash sequence is in quotes or braces. This is incompatible with 7.0b1 and 7.0b2 but is more compatible with pre-7.0 versions that the b1 and b2 releases were. 211. 7/28/93 Eliminated Tcl_LinkedVarWritable, added TCL_LINK_READ_ONLY to Tcl_LinkVar to accomplish same purpose. This change is incompatible with earlier beta releases, but not with releases before Tcl 7.0. 212. 7/29/93 Renamed regexp C functions so they won't clash with POSIX regexp functions that use the same name. 213. 8/3/93 Added "-errorinfo" and "-errorcode" options to "return" command: these allow for much better handling of the errorInfo and errorCode variables in some cases. 214. 8/12/93 Changed "expr" so that % always returns a remainder with the same sign as the divisor and absolute value smaller than the divisor. 215. 8/14/93 Turned off auto-exec in "unknown" unless the command was typed interactively. This means you must use "exec" when invoking subprocesses, unless it's a command that's typed interactively. *** POTENTIAL INCOMPATIBILITY *** 216. 8/14/93 Added support for tcl_prompt1 and tcl_prompt2 variables to tclMain.c: makes prompts user-settable. 217. 8/14/93 Added asynchronous handlers (Tcl_AsyncCreate etc.) so that signals can be taken cleanly by Tcl applications. 218. 8/16/93 Moved information about open files from the interpreter structure to global variables so that a file can be opened in one interpreter and read or written in another. 219. 8/16/93 Removed ENV_FLAGS from Makefile, so that there's no official support for overriding setenv, unsetenv, and putenv. 220. 8/20/93 Various configuration improvements: coerce chars to unsigned chars before using macros like isspace; source ~/.tclshrc file during initialization if it exists and program is running interactively; allow there to be directories in auto_path that don't exist or don't have tclIndex files (ignore them); added Tcl_Init procedure and changed Tcl_AppInit to call it. 221. 8/21/93 Fixed bug in expr where "+", "-", and " " were all getting treated as integers with value 0. 222. 8/26/93 Added "tcl_interactive" variable to tclsh. 223. 8/27/93 Added procedure Tcl_FilePermissions to return whether a given file can be read or written or both. Modified Tcl_EnterFile to take a permissions mask rather than separate read and write arguments. 224. 8/28/93 Fixed performance bug in "glob" command (unnecessary call to "access" for each file caused a 5-10x slow-down for big directories). ----------------- Released version 7.0 Beta 3, 8/28/93 ------------------ 225. 9/9/93 Renamed regexp.h to tclRegexp.h to avoid conflicts with system include file by same name. 226. 9/9/93 Added Tcl_DontCallWhenDeleted. 227. 9/16/93 Changed not to call exit C procedure directly; instead always invoke "exit" Tcl command so that application can redefine the command to do additional cleanup. 228. 9/17/93 Changed auto-exec to handle names that contain slashes (i.e. don't use PATH for them). 229. 9/23/93 Fixed bug in "read" and "gets" commands where they didn't clear EOF conditions. ----------------- Released version 7.0, 9/29/93 ------------------ 230. 10/7/93 "Scan" command wasn't properly aligning things in memory, so segmentation faults could arise under some circumstances. 231. 10/7/93 Fixed bug in Tcl_ConvertElement where it forgot to backslash leading curly brace when creating lists. 232. 10/7/93 Eliminated dependency of tclMain.c on tclInt.h and tclUnix.h, so that people can copy the file out of the Tcl source directory to make modified private versions. 233. 10/8/93 Fixed bug in auto-loader that reversed the priority order of entries in auto_path for new-style index files. Now things are back to the way they were before 3.0: first in auto_path is always highest priority. 234. 10/13/93 Fixed bug where Tcl_CommandComplete didn't recognize comments and treat them as such. Thus if you typed the line # { interactively, Tcl would think that the command wasn't complete and wait for more input before evaluating the script. 235. 10/14/93 Fixed bug where "regsub" didn't set the output variable if the input string was empty. 236. 10/23/93 Fixed bug where Tcl_CreatePipeline didn't close off enough file descriptors in child processes, causing children not to exit properly in some cases. 237. 10/28/93 Changed "list" and "concat" commands not to generate errors if given zero arguments, but instead to just return an empty string. ----------------- Released version 7.1, 11/4/93 ------------------ Note: there is no 7.2 release. It was flawed and was thus withdrawn shortly after it was released. 238. 11/10/93 TclMain.c didn't compile on some systems because of R_OK in call to "access". Changed to eliminate call to "access". ----------------- Released version 7.3, 11/26/93 ------------------ 239. 11/6/93 Modified "lindex", "linsert", "lrange", and "lreplace" so that "end" can be specified as an index. 240. 11/6/93 Modified "append" and "lappend" to allow only two words total (i.e., nothing to append) without generating an error. 241. 12/2/93 Changed to use EAGAIN as the errno for non-blocking I/O instead of EWOULDBLOCK: this should fix problem where non-blocking I/O didn't work correctly on System-V systems. 242. 12/22/93 Fixed bug in expressions where cancelled evaluation wasn't always working correctly (e.g. "set one 1; eval {1 || 1/$one}" failed with a divide by zero error). 243. 1/6/94 Changed TCL_VOLATILE definition from -1 to the address of a dummy procedure Tcl_Volatile, since -1 causes portability problems on some machines (e.g., Crays). 244. 2/4/94 Added support for unary plus. 245. 2/17/94 Changed Tcl_RecordAndEval and "history" command to call Tcl_GlobalEval instead of Tcl_Eval. Otherwise, invocation of these facilities in nested procedures can cause unwanted results. 246. 2/17/94 Fixed bug in tclExpr.c where an expression such as "expr {"12398712938788234-1298379" != ""}" triggers an integer overflow error for the number in quotes, even though it isn't really a proper integer anyway. 247. 2/19/94 Added new procedure Tcl_DStringGetResult to move result from interpreter to a dynamic string. 248. 2/19/94 Fixed bug in Tcl_DStringResult that caused it to overwrite the contents of a static result in some situations. This can cause bizarre errors such as variables suddenly having empty values. 249. 2/21/94 Fixed bug in Tcl_AppendElement, Tcl_DStringAppendElement, and the "lappend" command that caused improper omission of a separator space in some cases. For example, the script set x "abc{"; lappend x "def" used to return the result "abc{def" instead of "abc{ def". 250. 3/3/94 Tcl_ConvertElement was outputting empty elements as \0 if TCL_DONT_USE_BRACES was set. This depends on old pre-7.0 meaning of \0, which is no longer in effect, so it didn't really work. Changed to output empty elements as {} always. 251. 3/3/94 Renamed Tcl_DStringTrunc to Tcl_DStringSetLength and extended it so that it can be used to lengthen a string as well as shorten it. Tcl_DStringTrunc is defined as a macro for backward compatibility, but it is deprecated. 252. 3/3/94 Added Tcl_AllowExceptions procedure. 253. 3/13/94 Fixed bug in Tcl_FormatCmd that could cause "format" to mis-behave on 64-bit Big-Endian machines. 254. 3/13/94 Changed to use vfork instead of fork on systems where vfork exists. 255. 3/23/94 Fixed bug in expressions where ?: didn't associate right-to-left as they should. 256. 4/3/94 Fixed "exec" to flush any files used in >@ or >&@ redirection in exec, so that data buffered for them is written before any new data added by the subprocess. 257. 4/3/94 Added "subst" command. 258. 5/20/94 The tclsh main program is now called Tcl_Main; tclAppInit.c has a "main" procedure that calls Tcl_Main. This makes it easier to use Tcl with C++ programs, which need their own main programs, and it also allows an application to prefilter the argument list before calling Tcl_Main. *** POTENTIAL INCOMPATIBILITY *** 259. 6/6/94 Fixed bug in procedure returns where the errorInfo variable could get truncated if an unset trace was invoked as part of returning from the procedure. 260. 6/13/94 Added "wordstart" and "wordend" options to "string" command. 261. 6/27/94 Fixed bug in expressions where they didn't properly cancel the evaluation of math functions in &&, ||, and ?:. 262. 7/11/94 Incorrect boolean values, like "ogle", weren't being handled properly. 263. 7/15/94 Added Tcl_RegExpCompile, Tcl_RegExpExec, and Tcl_RegExpRange, which provide lower-level access to regular expression pattern matching. 264. 7/22/94 Fixed bug in "glob" command where "glob -nocomplain ~bad_user" would complain about a missing user. Now it doesn't complain anymore. 265. 8/4/94 Fixed bug with linked variables where they didn't behave correctly when accessed via upvars. 266. 8/17/94 Fixed bug in Tcl_EvalFile where it didn't clear interp->result. 267. 8/31/94 Modified "open" command so that errors in exec-ing subprocesses are returned by the open immediately, rather than being delayed until the "close" is executed. 268. 9/9/94 Modified "expr" command to generate errors for integer overflow (includes addition, subtraction, negation, multiplication, division). 269. 9/23/94 Modified "regsub" to return a count of the number of matches and replacements, rather than 0/1. 279. 10/4/94 Added new features to "array" command: - added "get" and "set" commands for easy conversion between arrays and lists. - added "exists" command to see if a variable is an array, changed "names" and "size" commands to treat a non-existent array (or scalar variable) just like an empty one. - added pattern option to "names" command. 280. 10/6/94 Modified Tcl_SetVar2 so that read traces on variables get called during append operations. 281. 10/20/94 Fixed bug in "read" command where reading from stdin required two control-D's to stop the reading. 282. 11/3/94 Changed "expr" command to use longs for division just like all other expr operators; it previously used ints for division. 283. 11/4/94 Fixed bugs in "unknown" procedure: it wasn't properly handling exception returns from commands that were executed after being auto-loaded. ----------------- Released version 7.4b1, 12/23/94 ------------------ 284. 12/26/94 Fixed "install" target in Makefile (couldn't always find install program). 285. 12/26/94 Added strcncasecmp procedure to compat directory. 286. 1/3/95 Fixed all procedure calls to explicitly cast arguments: implicit conversions from prototypes (especially integer->double) don't work when compiling under non-ANSI compilers. Tcl is now clean under gcc -Wconversion. 287. 1/4/95 Fixed problem in Tcl_ArrayCmd where same name was used for both a label and a variable; caused problems on several older compilers, making array command misbehave and causing many errors in Tcl test suite. ----------------- Released version 7.4b2, 1/12/95 ------------------ 288. 2/9/95 Modified Tcl_CreateCommand to return a token, and added Tcl_GetCommandName procedure. Together, these procedures make it possible to track renames of a command. 289. 2/13/95 Fixed bug in expr where "089" was interpreted as a floating-point number rather than a bogus octal number. *** POTENTIAL INCOMPATIBILITY *** 290. 2/14/95 Added code to Tcl_GetInt and Tcl_GetDouble to check for overflows when reading in numbers. 291. 2/18/95 Changed "array set" to stop after first error, rather than continuing after error. 292. 2/20/95 Upgraded to use autoconf version 2.2. 293. 2/20/95 Fixed core dump that could occur in "scan" command if a close bracket was omitted. 294. 2/27/95 Changed Makefile to always use install-sh for installations: there's just too much variation among "install" system programs, which makes installation flakey. ----------------- Released version 7.4b3, 3/24/95 ------------------ 3/25/95 (bug fix) Changed "install" to "./install" in Makefile so that "make install" will work even when "." isn't in the search path. 3/29/95 (bug fix) Fixed bug where the auto-loading mechanism wasn't protecting the values of the errorCode and errorInfo variables. 3/29/95 (new feature) Added optional pattern argument to "parray" procedure. 3/29/95 (bug fix) Made the full functionality of "return -code ... -errorcode ..." work not just inside procedures, but also in sourced files and at top level. 4/6/95 (new feature) Added "pattern" option to "array names" command. 4/18/95 (bug fix) Fixed bug in parser where it didn't allow backslash-newline immediately after an argument in braces or quotes. 4/19/95 (new feature) Added tcl_library variable, which application can set to override default library directory. 4/30/95 (bug fix) During trace callbacks for array elements, the variable name used in the original reference would be temporarily modified to separate the array name and element name; if the trace callback used the same name string, it would get the wrong name (the array name without element). Fixed to restore the variable name before making trace callbacks. 4/30/95 (new feature) Added -nobackslashes, -nocommands, and -novariables switches to "subst" command. 5/4/95 (new feature) Added TCL_EVAL_GLOBAL flag to Tcl_RecordAndEval. 5/5/95 (bug fix) Format command would overrun memory when printing integers with very large precision, as in "format %.1000d 0". 5/5/95 (portability improvement) Changed to use BSDgettimeofday on IRIX machines, to avoid compilation problems with the gettimeofday declaration. 5/6/95 (bug fix) Changed manual entries to use the standard .TH macro instead of a custom .HS macro; the .HS macro confuses index generators like makewhatis. 5/9/95 (bug fix) Modified configure script to check for Solaris bug that makes vfork unreliable (core dumps result if vforked child changes a signal handler); will use fork instead of vfork if the bug is present. 6/5/95 (bug fix) Modified "lsort" command to disallow recursive calls to lsort from a comparison function. This is needed because qsort is not reentrant. 6/5/95 (bug fix) Undid change 243 above: changed TCL_VOLATILE and TCL_DYNAMIC back to integer constants rather than procedure addresses. This was needed because procedure addresses can have multiple values under some dynamic loading systems (e.g. SunOS 4.1 and Windows). 6/8/95 (feature change) Modified interface to Tcl_Main to pass in the address of the application-specific initialization procedure. Tcl_AppInit is no longer hardwired into Tcl_Main. This is needed in order to make Tcl a shared library. 6/8/95 (feature change) Modified Makefile so that the installed versions of tclsh and libtcl.a have version number in them (e.g. tclsh7.4 and libtcl7.4.a) and the library directory name also has an embedded version number (e.g., /usr/local/lib/tcl7.4). This should make it easier for Tcl 7.4 to coexist with earlier versions. ----------------- Released version 7.4b4, 6/16/95 ------------------ 6/19/95 (bug fix) Fixed bugs in tclCkalloc.c that caused core dumps if TCL_MEM_DEBUG was enabled on word-addressed machines such as Crays. 6/21/95 (feature removal) Removed overflow checks for integer arithmetic: they just cause too much trouble (e.g. for random number generators). 6/28/95 (new features) Added tcl_patchLevel and tcl_version variables, for consistency with Tk. 6/29/95 (bug fix) Fixed problem in Tcl_Eval where it didn't record the right termination character if a script ended with a comment. This caused erroneous output for the following command, among others: puts "[ expr 1+1 # duh! ]" 6/29/95 (message change) Changed the error message for ECHILD slightly to provide a hint about why the problem is occurring. ----------------- Released version 7.4, 7/1/95 ------------------ 7/18/95 (bug fix) Changed "lreplace" so that nothing is deleted if the last index is less than the first index or if the last index is < 0. 7/18/95 (bug fix) Fixed bugs with backslashes in comments: Tcl_CommandComplete (and "info complete") didn't properly handle strings ending in backslash-newline, and neither Tcl_CommandComplete nor the Tcl parser handled other backslash sequences right, such as two backslashes before a newline. 7/19/95 (bug fix) Modified Tcl_DeleteCommand to delete the hash table entry for the command before invoking its callback. This is needed in order to deal with reentrancy. 7/22/95 (bug fix) "exec" wasn't reaping processes correctly after certain errors (e.g. if the name of the executable was bogus, as in "exec foobar"). 7/27/95 (bug fix) Makefile.in wasn't using the LIBS variable provided by the "configure" script. This caused problems on some SCO systems. 7/27/95 (bug fix) The version of strtod in fixstrtod.c didn't properly handle the case where endPtr == NULL. ----------------- Released patch 7.4p1, 7/29/95 ----------------------- 8/4/95 (bug fix) C-level trace callbacks for variables were sometimes receiving the PART1_NOT_PARSED flag, which could cause errors in subsequent Tcl library calls using the flags. (JO) 8/4/95 (bug fix) Calls to toupper and tolower weren't using the UCHAR macros, which caused trouble in non-U.S. locales. (JO) 8/10/95 (new feature) Added the "load" command for dynamic loading of binary packages, and the Tcl_PackageInitProc prototype for package initialization procedures. (JO) 8/23/95 (new features) Added "info sharedlibextension" and "info nameofexecutable" commands, plus Tcl_FindExtension procedure. (JO) 8/25/95 (bug fix) If the target of an "upvar" was non-existent but had traces set, the traces were silently lost. Change to generate an error instead. (JO) 8/25/95 (bug fix) Undid change from 7/19, so that commands can stay around while their deletion callbacks execute. Added lots of code to handle all of the reentrancy problems that this opens up. (JO) 8/25/95 (bug fix) Fixed core dump that could occur in TclDeleteVars if there was an upvar from one entry in the table to the next entry in the same table. (JO) 8/28/95 (bug fix) Exec wasn't handling bad user names properly, as in "exec ~bogus_user/foo". (JO) 8/29/95 (bug fixes) Changed backslash-newline handling to correct two problems: - Only spaces and tabs following the backslash-newline are now absorbed as part of the backslash-newline. Newlinew are no longer absorbed (add another backslash if you want to absorb another newline). - TclWordEnd returns the character just before the backslash in the sequence as the end of the sequence; it used to not consider the backslash-newline as a word separator. (JO) 8/31/95 (new feature) Changed man page installation (with "mkLinks" script) to create additional links for manual pages corresponding to each of the procedure and command names described in the pages. (JO) 9/10/95 Reorganized Tcl sources for Windows and Mac ports. All sources are now in subdirectories: "generic" contains sources that work on all platforms, "windows", "mac", and "unix" directories contain platform- specific sources. Some UNIX sources are also used on other platforms. (SS) 9/10/95 (feature change) Eliminated exported global variables (they don't work with Windows DLLs). Replaced tcl_AsyncReady and tcl_FileCloseProc with procedures Tcl_AsyncReady() and Tcl_SetFileCloseProc(). Replaced C variable tcl_RcFileName with a Tcl variable tcl_rcFileName. (SS) *** POTENTIAL INCOMPATIBILITY *** 9/11/95 (new feature) Added procedure Tcl_SetPanicProc to override the default implementation of "panic". (SS) 9/11/95 (new feature) Added "interp" command to allow creation of new interpreters and execution of untrusted scripts. Added many new procedures, such as Tcl_CreateSlave, Tcl_CreateAlias,and Tcl_MakeSafe, to provide C-level access to the interpreter facility. This mechanism now provides almost all of the generic functions of Borenstein's and Rose's Safe-Tcl (but not any Tk or email-related stuff). (JL) 9/11/95 (feature change) Changed file management so that files are no longer shared between interpreters: a file cannot normally be referenced in one interpreter if it was opened in another. This feature is needed to support safe interpreters. Added Tcl_ShareHandle() procedure for allowing files to be shared, and added "interp" argument to Tcl_FilePermissions procedure. (JL) *** POTENTIAL INCOMPATIBILITY *** 9/11/95 (new feature) Added "AssocData" mechanism, whereby extensions can associate their own data with an interpreter and get called back when the interpreter is deleted. This is visible at C level via the procedures Tcl_SetAssocData and Tcl_GetAssocData. (JL) 9/11/95 (new feature) Added Tcl_ErrnoMsg to translate an errno value into a human-readable string. This is now used instead of calling strerror because strerror mesages vary dramatically from platform to platform, which messes up Tcl tests. Tcl_ErrnoMsg uses the standard POSIX messages for all the common signals, and calls strerror for signals it doesn't understand. ----------------- Released patch 7.4p2, 9/15/95 ----------------------- ----------------- Released 7.5a1, 9/15/95 ----------------------- 9/22/95 (bug fix) Changed auto_mkindex to create tclIndex files that handle directories whose paths might contain spaces. (RJ) 9/27/95 (bug fix) The "format" command didn't check for huge or negative width specifiers, which could cause core dumps. (JO) 9/27/95 (bug fix) Core dumps could occur if an interactive command typed to tclsh returned a very long result for tclsh to print out. The bug is actually in printf (in Solaris 2.3 and 2.4, at least); switched to use puts instead. (JO) 9/28/95 (bug fix) Changed makefile.bc to eliminate a false dependency for tcl1675.dll on the Borland run time library. (SS) 9/28/95 (bug fix) Fixed tcl75.dll so it looks for tcl1675.dll instead of tcl16.dll. (SS) 9/28/95 (bug fix) Tcl was not correctly detecting the difference between Win32s and Windows '95. (SS) 9/28/95 (bug fix) "exec" was not passing environment changes to child processes under Windows. (SS) 9/28/95 (bug fix) Changed Tcl to ensure that open files are not passed to child processes under Windows. (SS) 9/28/95 (bug fix) Fixed Windows '95 and NT versions of exec so it can handle both console and windows apps. (SS) 9/28/95 (bug fix) Fixed Windows version of exec so it no longer leaves temp files lying around. Also changed it so the temp files are created in the appropriate system dependent temp directory. (SS) 9/28/95 (bug fix) Eliminated source dependency on the Win32s Universal Thunk header file, since it is not bundled with VC++. (SS) 9/28/95 (bug fix) Under Windows, Tcl now constructs the HOME environment variable from HOMEPATH and HOMEDRIVE when HOME is not already set. (SS) 9/28/95 (bug fix) Added support for "info nameofexecutable" and "info sharedlibextension" to the Windows version. (SS) 9/28/95 (bug fix) Changed tclsh to correctly parse command line arguments so that backslashes are preserved under Windows. (SS) 9/29/95 (bug fix) Tcl 7.5a1 treated either return or newline as end of line in "gets", which caused lines ending in CRLF to be treated as two separate lines. Changed to allow only character as end-of-line: carriage return on Macs, newline elsewhere. (JO) 9/29/95 (new feature) Changed to install "configInfo" file in same directory as library scripts. It didn't used to get installed. (JO) 9/29/95 (bug fix) Tcl was not converting Win32 errors into POSIX errors under some circumstances. (SS) 10/2/95 (bug fix) Safe interpreters no longer get initialized with a call to Tcl_Init(). (JL) 10/1/95 (new feature) Added "tcl_platform" global variable to provide environment information such as the instruction set and operating system. (JO) 10/1/95 (bug fix) "exec" command wasn't always generating the "child process exited abnormally" message when it should have. (JO) 10/2/95 (bug fix) Changed "mkLinks.tcl" so that the scripts it generates won't create links that overwrite original manual entries (there was a problem where pack-old.n was overwriting pack.n). (JO) 10/2/95 (feature change) Changed to use -ldl for dynamic loading under Linux if it is available, but fall back to -ldld if it isn't. (JO) 10/2/95 (bug fix) File sharing was causing refcounts to reach 0 prematurely for stdin, stdout and stderr, under some circumstances. (JL) 10/2/95 (platform support) Added support for Visual C++ compiler on Windows, Windows '95 and Windows NT, code donated by Gordon Chaffee. (JL) 10/3/95 (bug fix) Tcl now frees any libraries that it loads before it exits. (SS) 10/03/95 (bug fix) Fixed bug in Macintosh ls command where the -l and -C options would fail in anything but the HOME directory. (RJ) ----------------- Released 7.5a2, 10/6/95 ----------------------- 10/10/95 (bug fix) "file dirnam /." was returning ":" on UNIX instead of "/". (JO) 10/13/95 (bug fix) Eliminated dependency on MKS toolkit for generating the tcl.def file from Borland object files. (SS) 10/17/95 (new features) Moved the event loop from Tcl to Tk, made major revisions along the way: - New Tcl commands: after, update, vwait (replaces "tkwait variable"). - "tkerror" is now replaced with "bgerror". - The following procedures are similar to their old Tk counterparts: Tcl_DoOneEvent, Tcl_Sleep, Tcl_DoWhenIdle, Tcl_CancelIdleCall, Tcl_CreateFileHandler, Tcl_DeleteFileHandler, Tcl_CreateTimerHandler, Tcl_DeleteTimerHandler, Tcl_BackgroundError. - Revised notifier, add new concept of "event source" with the following procedures: Tcl_CreateEventSource, Tcl_DeleteEventSource, Tcl_WatchFile, Tcl_SetMaxBlockTime, Tcl_FileReady, Tcl_QueueEvent, Tcl_WaitForEvent. (JO) 10/31/95 (new features) Implemented cross platform file name support to make it easier to write cross platform scripts. Tcl now understands 4 file naming conventions: Windows (both DOS and UNC), Mac, Unix, and Network. The network convention is a new naming mechanism that can be used to paths in a platform independent fashion. See the "file" command manual page for more details. The primary interfaces changes are: - All Tcl commands that expect a file name now accept both network and native form. - Two new "file" subcommands, "nativename" and "networkname", provide a way to convert between network and native form. - Renamed Tcl_TildeSubst to Tcl_TranslateFileName, and changed it so that it always returns a filename in native form. Tcl_TildeSubst is defined as a macro for backward compatibility, but it is deprecated. (SS) 11/5/95 (new feature) Made "tkerror" and "bgerror" synonyms, so that either name can be used to manipulate the command (provides temporary backward compatibility for existing scripts that use tkerror). (JO) 11/5/95 (new feature) Added exit handlers and new C procedures Tcl_CreateExitHandler, Tcl_DeleteExitHandler, and Tcl_Exit. (JO) 11/6/95 (new feature) Added pid command for Macintosh version of Tcl (it didn't previously exist on the Mac). (RJ) 11/7/95 (new feature) New generic IO facility and support for IO to files, pipes and sockets based on a common buffering scheme. Support for asynchronous (non-blocking) IO and for event driver IO. Support for automatic (background) asynchronous flushing and asynchronous closing of channels. (JL) 11/7/95 (new feature) Added new commands "fconfigure" and "fblocked" to support new I/O features such as nonblocking I/O. Added "socket" command for creating TCP client and server sockets. (JL). 11/7/95 (new feature) Complete set of C APIs to the new generic IO facility: - Opening channels: Tcl_OpenFileChannel, Tcl_OpenCommandChannel, Tcl_OpenTcpClient, Tcl_OpenTcpServer. - I/O procedures on channels, which roughly mirror the ANSI C stdio library: Tcl_Read, Tcl_Gets, Tcl_Write, Tcl_Flush, Tcl_Seek, Tcl_Tell, Tcl_Close, Tcl_Eof, Tcl_InputBlocked, Tcl_GetChannelOption, Tcl_SetChannelOption. - Extension mechanism for creating new kinds of channels: Tcl_CreateChannel, Tcl_GetChannelInstanceData, Tcl_GetChannelType, Tcl_GetChannelName, Tcl_GetChannelFile, Tcl_RegisterChannel, Tcl_UnregisterChannel, Tcl_GetChannel. - Event-driven I/O on channels: Tcl_CreateChannelHandler, Tcl_DeleteChannelHandler. (JL) 11/7/95 (new feature) Channel driver interface specification to allow new types of channels to be added easily to Tcl. Currently being used in three drivers - for files, pipes and TCP-based sockets. (JL). 11/7/95 (new feature) interp delete now takes any number of path names of interpreters to delete, including zero. (JL). 11/8/95 (new feature) implemented 'info hostname' and Tcl_GetHostName command to get host name of machine on which the Tcl process is running. (JL) 11/9/95 (new feature) Implemented file APIs for access to low level files on each system. The APIs are: Tcl_CloseFile, Tcl_OpenFile, Tcl_ReadFile, Tcl_WriteFile and Tcl_SeekFile. Also implemented Tcl_WaitPid which waits in a system dependent manner for a child process. (JL) 11/9/95 (new feature) Added Tcl_UpdateLinkedVar procedure to force a Tcl variable to be updated after its C variable changes. (JO) 11/9/95 (bug fix) The glob command has been totally reimplemented so that it can support different file name conventions. It now handles Windows file names (both UNC and drive-relative) properly. It also supports nested braces correctly now. (SS) 11/13/95 (bug fix) Fixed Makefile.in so that configure can be run from a clean directory separate from the Tcl source tree, and compilations can be performed there. (JO) 11/14/95 (bug fix) Fixed file sharing between interpreters and file transferring between interpreters to correctly manage the refcount so that files are closed when the last reference to them is discarded. (JL) 11/14/95 (bug fix) Fixed gettimeofday implementation for the Macintosh. This fixes several timing related bugs. (RJ) 11/17/95 (new feature) Added missing support for info nameofexecutable on the Macintosh. (RJ) 11/17/95 (bug fix) The Tcl variables argc argv and argv0 now return something reasonable on the Mac. (RJ) 11/22/95 (new feature) Implemented "auto-detect" mode for end of line translations. On input, standalone "\r" mean MAC mode, standalone "\n" mean Unix mode and "\r\n" means Windows mode. On output, the mode is modified to whatever the platform specific mode for that platform is. (JL) 11/24/95 (feature change) Replaced "configInfo" file with tclConfig.sh, which is more complete and uses slightly different names. Also arranged for tclConfig.sh to be installed in the platform-specific library directory instead of Tcl's script library directory. (JO) *** POTENTIAL INCOMPATIBILITY with Tcl 7.5a2, but not with Tcl 7.4 *** ----------------- Released patch 7.4p3, 11/28/95 ----------------------- 12/5/95 (new feature) Added Tcl_File facility to support platform- independent file handles. Changed all interfaces that used Unix- style integer fd's to use Tcl_File's instead. (SS) *** POTENTIAL INCOMPATIBILITY *** 12/5/95 (new feature) Added a new "clock" command to Tcl. The command allows you to get the current "clicks" or seconds & allows you to format or scan human readable time/date strings. (RJ) 12/18/95 (new feature) Moved Tk_Preserve, Tk_Release, and Tk_EventuallyFree to Tcl, renamed to Tcl_Preserve, Tcl_Release, and Tcl_EventuallyFree. (JO) 12/18/95 (new feature) Added new "package" command and associated procedures Tcl_PkgRequire and Tcl_PkgProvide. Also wrote pkg_mkIndex library procedure to create index files from binaries and scripts. (JO) 12/20/95 (new feature) Added Tcl_WaitForFile procedure. (JO) 12/21/95 (new features) Made package name argument to "load" optional (Tcl will now attempt to guess the package name if necessary). Also added Tcl_StaticPackage and support in "load" for statically linked packages. (JO) 12/22/95 (new feature) Upgraded the foreach command to accept multiple loop variables and multiple value lists. This lets you iterate over multiple lists in parallel, and/or assign multiple loop variables from one value list during each iteration. The only potential compatibility problem is with scripts that used loop variables with a name that could be construed to be a list of variable names (i.e. contained spaces). (BW) 1/5/96 (new feature) Changed tclsh so it builds as a console mode application under Windows. Now tclsh can be used from the command line with pipes or interactively. Note that this only works under Windows 95 or NT. (SS) 1/17/96 (new feature) Modified Makefile and configure script to allow Tcl to be compiled as a shared library: use the --enable-shared option when configuing. (JO) 1/17/96 (removed obsolete features) Removed the procedures Tcl_EnterFile and Tcl_GetOpenFile: these no longer make sense with the new I/O system. (JL) *** POTENTIAL INCOMPATIBILITY *** 1/19/96 (bug fixes) Prevented formation of circular aliases, through the Tcl 'interp alias' command and through the 'rename' command, as well as through the C API Tcl_CreateAlias. (JL) 1/19/96 (bug fixes) Fixed several bugs in direct deletion of interpreters with Tcl_DeleteInterp when the interpreter is a slave; fixes based on a patch received from Viktor Dukhovni of ESM. (JL) 1/19/96 (new feature) Implemented on-close handlers for channels; added the C APIs Tcl_CreateCloseHandler and Tcl_DeleteCloseHandler. (JL) 1/19/96 (new feature) Implemented portable error reporting mechanism; added the C APIs Tcl_SetErrno and Tcl_GetErrno. (JL) 1/24/96 (bug fix) Unknown command processing properly invokes external commands under Windows NT and Windows '95 now. (SS) 1/23/96 (bug fix) Eliminated extremely long startup times under Windows '95. The problem was a result of the option database initialization code that concatenated $HOME with /.Xdefaults, resulting in a // in the middle of the file name. Under Windows '95, this is incorrectly interpreted as a UNC path. They delays came from the network timeouts needed to determine that the file name was invalid. Tcl_TranslateFileName now suppresses duplicate slashes that aren't at the beginning of the file name. (SS) 1/25/96 (bug fix) Changed exec and open to create children so they are attached to the application's console if it exists. (SS) 1/31/96 (bug fix) Fixed command line parsing to handle embedded spaces under Windows. (SS) ----------------- Released 7.5b1, 2/1/96 ----------------------- 2/7/96 (bug fix) Fixed off by one error in argument parsing code under Windows. (SS) 2/7/96 (bug fix) Fixed bugs in VC++ makefile that improperly initialized the tcl75.dll. Fixed bugs in Borland makefile that caused build failures under Windows NT. (SS) 2/9/96 (bug fix) Fixed deadlock problem in AUTO end of line translation mode which would cause a socket server with several concurrent clients writing in CRLF mode to hang. (JL) 2/9/96 (API change) Replaced -linemode option to fconfigure with a new -buffering option, added "none" setting to enable immediate write. (JL) *** INCOMPATIBILITY with b1 *** 2/9/96 (new feature) Added C API Tcl_InputBuffered which returns the count of bytes currently buffered in the input buffer of a channel, and o for output only channels. (JL) 2/9/96 (new feature) Implemented asynchronous connect for sockets. (JL) 2/9/96 (new feature) Added C API Tcl_SetDefaultTranslation to set (per channel) the default end of line translation mode. This is the mode that will be installed if an output operation is done on the channel while it is still in AUTO mode. (JL) 2/9/96 (bug fix) Changed Tcl_OpenCommandChannel interface to properly handle all of the combinations of stdio inheritance in background pipelines. See the Tcl_OpenFileChannel(3) man page for more info. This change fixes the bug where exec of a background pipeline was not getting passed the stdio handles properly. (SS) 2/9/96 (bug fix) Removed the new Tcl_CreatePipeline interface, and restored the old version for Unix platforms only. All new code should use Tcl_CreateCommandChannel instead. (SS) 2/9/96 (bug fix) Changed Makefile.in to use -L and -ltcl7.5 for Tcl library so that shared libraries are more likely to be found correctly on more platforms. (JO) 2/13/96 (new feature) Added C API Tcl_SetNotifierData and Tcl_GetNotifierData to allow notifier and channel driver writers to associate data with a Tcl_File. The result of this change is that Tcl_GetFileInfo now always returns an OS file handle, and Tcl_GetFile can be used to construct a Tcl_File for an externally constructed OS handle. (SS) 2/13/96 (bug fix) Changed Windows socket implementation so it doesn't set SO_REUSEADDR on server sockets. Now attempts to create a server socket on a port that is already in use will be properly identified and an error will be generated. (SS) 2/13/96 (bug fix) Fixed problems with DLL initialization under Visual C++ that left the C run time library uninitialized. (SS) 2/13/96 (bug fix) Fixed Windows socket initialization so it loads winsock the first time it is used, rather than at the time tcl75.dll is loaded. This should fix the bug where the modem immediately starts trying to connect to a service provider when wish or tclsh are started. (SS) 2/13/96 (new feature) Added C APIs Tcl_MakeFileChannel and Tcl_MakeTcpClientChannel to wrap up existing fds and sockets into channels. Provided implementations on Unix and Windows. (JL) 2/13/96 (bug fix) Fixed bug with seek leaving EOF and BLOCKING set. (JL) 2/14/96 (bug fix) Fixed reentrancy problem in fileevent handling and made it more robust in the face of errors. (JL) 2/14/96 (feature change) Made generic IO level emulate blocking mode if the channel driver is unable to provide it, e.g. if the low level device is always nonblocking. Thus, now blocking behavior is an advisory setting for channel drivers and can be ignored safely if the channel driver is unable to provide it. (JL) 2/15/96 (new feature) Added "binary" end of line translation mode, which is a synonym of "lf" mode. (JL) 2/15/96 (bug fix) Fixed reentrancy problem in fileevent handling vs deletion of channel event handlers. (JL) 2/15/96 (bug fix) Fixed bug in event handling which would cause a nonblocking channel to not see further readable events after the first readable event that had insufficient input. (JL) 2/17/96 (bug fix) "info complete" didn't properly handle comments in nested commands. (JO) 2/21/96 (bug fix) "exec" under Windows NT/95 did not properly handle very long command lines (>200 chars). (SS) 2/21/96 (bug fix) Sockets could get into an infinite loop if a read event arrived after all of the available data had been read. (SS) 2/22/96 (bug fix) Added cast of st_size elements to (long) before sprintf-ing in "file size" command. This is needed to handle systems like NetBSD with 64-bit file offsets. (JO) ----------------- Released 7.5b2, 2/23/96 ----------------------- 2/23/96 (bug fix) TCL_VARARGS macro in tcl.h wasn't defined properly when compiling with C++. (JO) 2/24/96 (bug fix) Removed dependencies on Makefile in the UNIX Makefile: this caused problems on some platforms (like Linux?). (JO) 2/24/96 (bug fix) Fixed configuration bug that made Tcl not compile correctly on Linux machines with neither -ldl or -ldld. (JO) 2/24/96 (new feature) Added a block of comments and definitions to Makefile.in to make it easier to have Tcl's TclSetEnv etc. replace the library procedures setenv etc, so that calls to setenv etc. in the application automatically update the Tcl "env" variable. (JO) 2/27/96 (feature change) Added optional Tcl_Interp * argument (may be NULL) to C API Tcl_Close and simplified closing of command channels. (JL) *** INCOMPATIBILITY with Tcl 7.5b2, but not with Tcl 7.4 *** 2/27/96 (feature change) Added optional Tcl_Interp * argument (may be NULL) to C type definition Tcl_DriverCloseProc; modified all channel drivers to implement close procedures that accept the additional argument. (JL) *** INCOMPATIBILITY with Tcl 7.5b2, but not with Tcl 7.4 *** 2/28/96 (bug fix) Fixed memory leak that could occur if an upvar referred to an element of an array in the same stack frame as the upvar. (JO) 2/29/96 (feature change) Modified both Tcl_DoOneEvent and Tcl_WaitForEvent so that they return immediately in cases where they would otherwise block forever (e.g. if there are no event handlers of any sort). (JO) 2/29/96 (new feature) Added C APIs Tcl_GetChannelBufferSize and Tcl_SetChannelBufferSize to set and retrieve the size, in bytes, for buffers allocated to store input or output in a channel. (JL) 2/29/96 (new feature) Added option -buffersize to Tcl fconfigure command to allow Tcl scripts to query and set the size of channel buffers. (JL) 2/29/96 (feature removed) Removed channel driver function to specify the buffer size to use when allocating a buffer. Removed the C typedef for Tcl_DriverBufferSizeProc. Channels are now created with a default buffer size of 4K. (JL) *** INCOMPATIBILITY with Tcl 7.5b2, but not with Tcl 7.4 *** 2/29/96 (feature change) The channel driver function for setting blocking mode on the device may now be NULL. If the generic code detects that the function is NULL, operations that set the blocking mode on the channel simply succeed. (JL) 3/2/96 (bug fix) Fixed core dump that could occur if a syntax error (such as missing close paren) occurred in an array reference with a very long array name. (JO) 3/4/96 (bug fix) Removed code in the "auto_load" procedure that deletes all existing auto-load information whenever the "auto_path" variable is changed. Instead, new information adds to what was already there. Otherwise, changing the "auto_path" variable causes all package- related information to be lost. If you really want to get rid of existing auto-load information, use auto_reset before setting auto_path. (JO) 3/5/96 (new feature) Added version suffix to shared library names so that Tcl will compile under NetBSD and FreeBSD (I hope). (JO) 3/6/96 (bug fix) Cleaned up error messages in new I/O system to correspond more closely to old I/O system. (JO) 3/6/96 (new feature) Added -myaddr and -myport options to the socket command, removed -tcp and -- options. This lets clients and servers choose a particular interface. Also changed the default server address from the hostname to INADDR_ANY. The server accept callback now gets passed the client's port as well as IP address. The C interfaces for Tcl_OpenTcpClient and Tcl_OpenTcpServer have changed to support the above changes. (BW) *** POTENTIAL INCOMPATIBILITY with Tcl 7.5b2, but not with Tcl 7.4 *** 3/6/96 (changed feature) The library function auto_mkindex will now default to using the pattern "*.tcl" if no pattern is given. (RJ) 3/6/96 (bug fix) The socket channel code for the Macintosh has been rewritten to use native MacTcp. (RJ) 3/7/96 (new feature) Added Tcl_SetStdChannel and Tcl_GetStdChannel interfaces to allow applications to explicitly set and get the global standard channels. (SS) 3/7/96 (bug fix) Tcl did close not the file descriptors associated with "stdout", etc. when the corresponding channels were closed. (SS) 3/7/96 (bug fix) Reworked shared library and dynamic loading stuff to try to get it working under AIX. Added new @SHLIB_LD_LIBS@ autoconf symbol as part of this. AIX probably doesn't work yet, but it should be a lot closer. (JO) 3/7/96 (feature change) Added Tcl_ChannelProc typedef and changed the signature of Tcl_CreateChannelHandler and Tcl_DeleteChannelHandler to take Tcl_ChannelProc arguments instead of Tcl_FileProc arguments. This change should not affect any code outside Tcl because the signatures of Tcl_ChannelProc and Tcl_FileProc are compatible. (JL) 3/7/96 (API change) Modified signature of Tcl_GetChannelOption to return an int instead of char *, and to take a Tcl_DString * argument. Modified the implementation so that the option name can be NULL, to mean that the call should retrieve a list of alternating option names and values. (JL) *** INCOMPATIBILITY with Tcl 7.5b2, but not with Tcl 7.4 *** 3/7/96 (API change) Added Tcl_DriverSetOptionProc, Tcl_DriverGetOptionProc typedefs, added two slots setOptionProc and getOptionProc to the channel type structure. These may be NULL to indicate that the channel type does not support any options. (JL) *** INCOMPATIBILITY with Tcl 7.5b2, but not with Tcl 7.4 *** 3/7/96 (feature change) stdin, stdout and stderr can now be put into nonblocking mode. (JL) 3/8/96 (feature change) Eliminated dependence on the registry for finding the Tcl library files. (SS) ----------------- Released 7.5b3, 3/8/96 ----------------------- 3/12/96 (feature improvement) Modified startup script to look in several different places for the Tcl library directory. This should allow Tcl to find the libraries under all but the weirdest conditions, even without the TCL_LIBRARY environment variable being set. (JO) 3/13/96 (bug fix) Eliminated use of the "linger" option from the Windows socket implementation. (JL) 3/13/96 (new feature) Added -peername and -sockname options for fconfigure for socket channels. Code contributed by John Haxby of HP. (JL) 3/13/96 (bug fix) Fixed panic and core dump that would occur if the accept callback script on a server socket encountered an error. (JL) 3/13/96 (feature change) Added -async option to the Tcl socket command. If the command is creating a client socket and the flag is present, the client is connected asynchronously. If the option is absent (the default), the client socket is connected synchronously, and the command returns only when the connection has been completed or failed. This change was suggested by Mark Diekhans. (JL) 3/13/96 (feature change) Modified the signature of Tcl_OpenTcpClient to take an additional int argument, async. If nonzero, the client is connected to the server asynchronously. If the value is zero, the connection is made synchronously, and the call to Tcl_OpenTcpClient returns only when the connection fails or succeeds. This change was suggested by Mark Diekhans. (JL) *** INCOMPATIBILITY with Tcl 7.5b3, but not with Tcl 7.4 *** 3/14/96 (bug fix) "tclsh bogus_file_name" didn't print an error message. (JO) 3/14/96 (bug fix) Added new procedures to tclCkalloc.c so that libraries and applications can be compiled with TCL_MEM_DEBUG even if Tcl isn't (however, the converse is still not true). Patches provided by Jan Nijtmans. (JO) 3/15/96 (bug fix) Marked standard IO handles of a process as close-on-exec to fix bug in Ultrix where exec was not sharing standard IO handles with subprocesses. Fix suggested by Mark Diekhans. (JL) 3/15/96 (bug fix) Fixed asynchronous close mechanism so that it closes the channel instead of leaking system resources. The manifestation was that Tcl would eventually run out of file descriptors if it was handling a large number of nonblocking sockets or pipes with high congestion. (JL) 3/15/96 (bug fix) Fixed tests so that they no longer leak file descriptors. The manifestation was that Tcl would eventually run out of file descriptors if the tests were rerun many times (> a hundred times on Solaris). (JL) 3/15/96 (bug fix) Fixed channel creation code so that it never creates unnamed channels. This would cause a panic and core dump when the channel was closed. (JL) 3/16/96 (bug fixes) Made lots of changes in configuration stuff to get Tcl working under AIX (finally). Tcl should now support the "load" command under AIX and should work either with or without shared libraries for Tcl and Tk. (JO) 3/21/96 (configuration improvement) Changed configure script so it doesn't use version numbers (as in -ltcl7.5 and libtcl7.5.so) under SunOS 4.1, where they don't work anyway. (JO) 3/22/96 (new feature) Added C API Tcl_InterpDeleted that allows extension writers to discover when an interpreter is being deleted. (JL) 3/22/96 (bug fix) The standard IO channels are now added to each trusted interpreter as soon as the interpreter is created. This ensures against the bug where a child would do IO before the master had done any, and then the child is destroyed - the standard IO channels would be then closed and the master would be unable to do any IO. (JL) 3/22/96 (bug fix) Made Tcl more robust against interpreter deletion, by using Tcl_Preserve, Tcl_Release and Tcl_EventuallyFree to split the process of interpreter deletion into two distinct phases. Also went through all of Tcl and added calls to Tcl_Preserve and Tcl_Delete where needed. (JL) 3/22/96 (bug fix) Fixed several places where C code was reading and writing into freed memory, especially during interpreter deletion. (JL) 3/22/96 (bug fix) Fixed very deep bug in Tcl_Release that caused memory to be freed twice if the release callback did Tcl_Preserve and Tcl_Release on the same memory as the chunk currently being freed. (JL) 3/22/96 (bug fix) Removed several memory leaks that would cause memory buildup on half-K chunks in the generic IO level. (JL) 3/22/96 (bug fix) Fixed several core dumps which occurred when new AssocData was being created during the cleanups in interpreter deletion. The solution implemented now is to loop repeatedly over the AssocData until none is left to clean up. (JL) 3/22/96 (bug fix) Fixed a bug in event handling which caused an infinite loop if there were no files being watched and no timer. Fix suggested by Jan Nijtmans. (JL) 3/22/96 (bug fix) Fixed Tcl_CreateCommand, Tcl_DeleteCommand to be more robust if the interpreter is being deleted. Also fixed several order dependency bugs in Tcl_DeleteCommand which kicked in when an interpreter was being deleted. (JL) 3/26/96 (bug fix) Upon a "short read", the generic code no longer calls the driver for more input. Doing this caused blocking on some platforms even on nonblocking channels. Bug and fix courtesy Mark Roseman. (JL) 3/26/96 (new feature) Added 'package Tcltest' which is present only in test versions of Tcl; this allows the testing commands to be loaded into new interpreters besides the main one. (JL) 3/26/96 (restored feature) Recreated the Tcl_GetOpenFile C API. You can now get a FILE * from a registered channel; Unix only. (JL) 3/27/96 (bug fix) The regular expression code did not support more than 9 subexpressions. It now supports up to 20. (SS) 4/1/96 (bug fixes) The CHANNEL_BLOCKED bit was being left on on a short read, so that fileevents wouldn't fire correctly. Bug reported by Mark Roseman.(JL, RJ) 4/1/96 (bug fix) Moved Tcl_Release to match Tcl_Preserve exactly, in tclInterp.c; previously interpreters were being freed only conditionally and sometimes not at all. (JL) 4/1/96 (bug fix) Fixed error reporting in slave interpreters when the error message was being generated directly by C code. Fix suggested by Viktor Dukhovni of ESM. (JL) 4/2/96 (bug fixes) Fixed a series of bugs in Windows sockets that caused events to variously get lost, to get sent multiple times, or to be ignored by the driver. The manifestation was blocking if the channel is blocking, and either getting EAGAIN or infinite loops if the channel is nonblocking. This series of bugs was found by Ian Wallis of Cisco. Now all tests (also those that were previously commented out) in socket.test pass. (JL, SS) 4/2/96 (feature change/bug fix) Eliminated network name support in favor of better native name support. Added "file split", "file join", and "file pathtype" commands. See the "file" man page for more details. (SS) *** INCOMPATIBILITY with Tcl 7.5b3, but not with Tcl 7.4 *** 4/2/96 (bug fix) Changed implementation of auto_mkindex so tclIndex files will properly handle path names in a cross platform context. (SS) 4/5/96 (bug fix) Fixed Tcl_ReadCmd to use the channel buffer size as the chunk size it reads, instead of a fixed 4K size. Thus, on large reads, the user can set the channel buffer size to a large size and the read will occur orders of magnitude faster. For example, on a 2MB file, reading in 4K chunks took 34 seconds, while reading in 1MB chunks took 1.5 seconds (on a SS-20). Problem identified and fix suggested by John Haxby of HP. (JL) 4/5/96 (bug fix) Fixed socket creation code to invoke gethostbyname only if inet_addr failed (very unlikely). Before this change the order was reversed and this made things much slower than they needed to be (gethostbyname generally requires an RPC, which is slow). Problem identified and fix suggested by John Loverso of OSF. (JL) 4/9/96 (feature change) Modified "auto" translation mode so that it recognizes any of "\n", "\r" and "\r\n" in input as end of line, so that a file can have mixed end-of-line sequences. It now outputs the platform specific end of line sequence on each platform for files and pipes, and for sockets it produces crlf in output on all platforms. (JL) *** INCOMPATIBILITY with Tcl 7.5b3, but not with Tcl 7.4 *** 4/11/96 (new feature) Added -eofchar option to Tcl_SetChannelOption to allow setting of an end of file character for input and output. If an input eof char is set, it is recognized as EOF and further input from the channel is not presented to the caller. If an output eof char is set, on output, that byte is appended to the channel when it is closed. On Unix and Macintosh, all channels start with no eof char set for input or output. On Windows, files and pipes start with input and output eof chars set to Crlt-Z (ascii 26), and sockets start with no input or output eof char. (JL) *** INCOMPATIBILITY with Tcl 7.5b3, but not with Tcl 7.4 *** 4/17/96 (bug fix) Fixed series of bugs with handling of crlf sequence split across buffer boundaries in input, in AUTO mode. (JL, BW) 4/17/96 (test suite improvement) Fixed test suite so that tests that depend on the availability of Unix commands such as echo, cat and others are not run if these commands are not present. (JL) 4/17/96 (test suite improvement) The socket test now automatically starts, on platformst that support exec, a separate process for remote testsing. (JL) ----------------- Released 7.5, 4/21/96 ----------------------- 5/1/96 (bug fix) "file tail ~" did not correctly return the tail portion of the user's home directory. (SS) 5/1/96 (bug fix) Fixed bug in TclGetEnv where it didn't lookup environment variables correctly: could confuse "H" and "HOME", for example. (JO) 5/1/96 (bug fix) Changed to install tclConfig.sh under "make install-binaries", not "make install-libraries". (JO) 5/2/96 (bug fix) Changed pkg_mkIndex not to attempt to "load" a file unless it has the standard shared library extension. On SunOS, attempts to load Tcl scripts cause the whole application to be aborted (there's no way to get the error back into Tcl). (JO) 5/7/96 (bug fix) Moved initScript in tclUnixInit.c to writable memory to avoid potential core dumps. (JO) 5/7/96 (bug fix) Auto_reset procedure was removing procedure from init.tcl, such as pkg_mkIndex. (JO) 5/7/96 (bug fix) Fixed cast on socket address resolution code that would cause a failure to connect on Dec Alphas. (JL) 5/7/96 (bug fix) Added "time", "subst" and "fileevent" commands to set of commands available in a safe interpreter. (JL) 5/13/96 (bug fix) Preventing OS level handles for stdin, stdout and stderr from being implicitly closed when the last reference to the standard channel containing that handle is discarded when an interpreter is deleted. Explicitly closing standard channels by using "close" still works. (JL) 5/21/96 (bug fix) Do not create channels for stdin, stdout and stderr on Unix if the devices are closed. This prevents a duplicate channel name panic later on when the fd is used to open a channel and the channel is registered in an interpreter. (JL) 5/23/96 (bug fix) Fixed bug that prevented the use of standard channels in interpreters created after the last interpreter was destroyed. In the sequence interp = Tcl_CreateInterp(); Tcl_DeleteInterp(interp); interp = Tcl_CreateInterp(); channels for stdio would not be available in the second interpreter. (JL) 5/23/96 (bug fix) Fixed bug that allowed Tcl_MakeFileChannel to create new channels with Tcl_Files in them that are already used by another channel. This would cause core dumps when the Tcl_Files were being freed twice. (JL) 5/23/96 (bug fix) Fixed a logical timing bug that caused a standard channel to be removed from the standard channel table too early when the channel was being closed. If the channel was being flushed asynchronously, it could get recreated before being actually destroyed, and the recreated channel would contain the same Tcl_File as the one being closed, leading to dangling pointers and core dumps. (JL) 5/27/96 (bug fix) Fixed a bug in Tcl_GetChannelOption which caused it to always return a list of one element, a list of the settings, for -translation and -eofchar options. Now correctly returns the value described by the documentation (Mark Diekhans found this, thanks!). (JL) 5/30/96 (bug fix) Fixed a couple of syntax errors in io.test. (JL) 5/30/96 (bug fix) If a fileevent scripts gets an error, delete it before causing a background error. This is to allow the error handler to reinstall the fileevent and to prevent infinite loops if the event loop is reentered in the error handler. (JL) 5/31/96 (bug fix) Channels now will get properly flushed on exit. (JL) 6/5/96 (bug fix) Changed Tcl_Ckalloc, Tcl_Ckfree, and Tcl_Ckrealloc to Tcl_Alloc, Tcl_Free, and Tcl_Realloc. Added documentation for these routines now that they are officially supported. Extension writers should use these routines instead of free() and malloc(). (SS) 6/10/96 (bug fix) Changes the Tcl close command so that it no longer waits on nonblocking pipes for the piped processes to exit; instead it reaps them in the background. (JL) 6/11/96 (bug fix) Increased the length of the listen queue for server sockets on Unix from 5 to 100. Some OSes will disregard this and reset it to 5, but we should try to get as long a queue as we can, for performance reasons. (JL) 6/11/96 (bug fix) Fixed windows sockets bug that caused a cascade of events if the fileevent script read less than was available. Now reading less than is available does not cause a flood of Tcl events. (JL, SS) 6/11/96 (bug fix) Fixed bug in background flushing on closed channels that would prevent the last buffer from getting flushed. (JL) 6/13/96 (bug fix) Fixed bug in Windows sockets that caused a core dump if a DLL linked with tcl.dll and referred to e.g. ntohs() without opening a Tcl socket. The problem was that the indirection table was not being initialized. (JL) 6/13/96 (bug fix) Fixed OS level resource leak that would occur when a Tcl channel was still registered in some interpreter when the process exits. Previously the channel was not being closed and the OS level handles were not being released; the output was being flushed but the device was not being closed. Now the device is properly closed. This was only a problem on Win3.1 and MacOS. (JL, SS) 6/28/96 (bug fix) Fixed bug where transient errors were leaving an error code around, so that it would erroneously get reported later. This bug was exercised intermittently by closing a channel to a file on a very loaded NFS server, or to a socket whose other end blocked. (JL, BW) 7/3/96 (bug fix) Fileevents declared in an interpreter are now deleted when the channel is closed in that interpreter. Before this fix, the fileevent would hang around until the channel is completely closed, and would cause errors if events happened before the channel was closed. This could happen in two cases: first if the channel is shared between several interpreters, and second if an async flush is in progress that prevents the channel from being closed until the flush finishes. (JL) 7/10/96 (bug fix) Fixed bugs in both "lrange" and "lreplace" commands where too much white space was being removed. For example, the command lreplace {\}\ hello} end end was returning "\}\", losing the significant space in the first list element and corrupting the list. (JO) 7/20/96 (bug fix) The procedure pkg_mkIndex didn't work properly for extensions that depend on Tk, because it didn't load Tk into the child interpreter before loading the extension. Now it loads Tk if Tk is present in the parent. (JO) 7/23/96 (bug fix) Added compat version of strftime to fix crashes resulting from bad implementations under Windows. (SS) 7/23/96 (bug fix) Standard implementations of gmtime() and localtime() under Windows did not handle dates before 1970, so they were replaced with a revised implementation. (SS) 7/23/96 (bug fix) Tcl would crash on exit under Borland 5.0 because the global environ pointer was left pointing to freed memory. (SS) 7/29/96 (bug fix) Fixed memory leak in Tcl_LoadCmd that could occur if a package's AppInit procedure called Tcl_StaticPackage to register static packages. (JO) 8/1/96 (bug fix) Fixed a series of bugs in Windows sockets so that async writebehind in the presence of read event handlers now works, and so that async writebehind also works on sockets for which a read event handler was declared and whose channels were then closed before the async write finished. The bug was reported by John Loverso and Steven Wahl, independently, test case supplied by John Loverso. (JL) ----------------- Released patch 7.5p1, 8/2/96 ----------------------- 5/8/96 (new feature) Added Tcl_GetChannelMode C API for retrieving whether a channel is open for reading and writing. (JL) 5/8/96 (API changes) Revised C APIs for channel drivers: - Removed all Tcl_Files from channel driver interface; you can now have channels that are not based on Tcl_Files. - Added channelReadyProc and watchChannelProc procedures to interface; these are used to implement event notification for channels. - Added getFileProc to channel driver, to allow the generic IO code to retrieve a Tcl_File from a channel (presumably if the channel uses Tcl_Files they will be stored inside its instanceData). (JL) *** INCOMPATIBILITY with Tcl 7.5 *** 5/8/96 (API change) The Tcl_CreateChannel C API was modified to not take Tcl_File arguments, and instead to take a mask specifying whether the channel is readable and/or writable. (JL) *** INCOMPATIBILITY with Tcl 7.5 *** 6/3/96 (bug fix) Made Tcl_SetVar2 robust against the case where the value of the variable is a NULL pointer instead of "". (JL) 6/17/96 (bug fix) Fixed "reading uninitialized memory" error reported by Purify, in Tcl_Preserve/Tcl_Release. (JL) 8/9/96 (bug fix) Fixed bug in init.tcl that caused incorrect error message if the act of autoloading a procedure caused the procedure to be invoked again. (JO) 8/9/96 (bug fix) Configure script produced bad library names and extensions under SunOS and a few other platforms if the --disable-load switch was used. (JO) 8/9/96 (bug fix) Tcl_UpdateLinkedVar generated an error if the variable being updated was read-only. (JO) 8/14/96 (bug fix) The macintosh now supports synchronous socket connections. Other minor bugs were also fixed. (RJ) 8/15/96 (configuration improvement) Changed the file patchlevel.h to be tclPatch.h. This avoids conflict with the Tk file and is now in 8.3 format on the Windows platform. (RJ) 8/20/96 (bug fix) Fixed core dump in interp alias command for interpreters created with Tcl_CreateInterp (as opposed to with Tcl_CreateSlave). (JL) 8/20/96 (bug fix) No longer masking ECONNRESET on Windows sockets so that the higher level of the IO mechanism sees the error instead of entering an infinite loop. (JL) 8/20/96 (bug fix) Destroying the last interpreter no longer closes the standard channels. (JL) 8/20/96 (bug fix) Closing one of the stdin, stdout or stderr channels and then opening a new channel now correctly assigns the new channel as the standard channel that was closed. (JL) 8/20/96 (bug fix) Added code to unix/tclUnixChan.c for using ioctl with FIONBIO instead of fcntl with O_NONBLOCK, for those versions of Unix where either O_NONBLOCK is not supported or implemented incorrectly. (JL) 8/21/96 (bug fix) Fixed "file extension" so it correctly returns the extension on files like "foo..c" as "..c" instead of ".c". (SS) 8/22/96 (bug fix) If environ[] contains static strings, Tcl would core dump in TclSetupEnv because it was trying to write NULLs into the actual data in environ[]. Now we instead copy as appropriate. (JL) 8/22/96 (added impl) Added missing implementation of Tcl_MakeTcpClientChannel for Windows platform. Code contributed by Mark Diekhans. (JL) 8/22/96 (new feature) Added a new memory allocator for the Macintosh version of Tcl. It's quite a bit faster than MetroWerk's version. (RJ) 8/26/96 (documentation update) Removed old change bars (for all changes in Tcl 7.5 and earlier releases) from manual entries. (JO) 8/27/96 (enhancement) The exec and open commands behave better and work in more situations under Windows NT and Windows 95. Documentation describes what is still lacking. (CS) 8/27/96 (enhancement) The Windows makefiles will now compile even if the compiler is not in the path and/or the compiler's environment variables have not been set up. (CS) 8/27/96 (configuration improvement) The Windows resource files are automatically updated when the version/patch level changes. The header file now has a comment that reminds the user which other files must be manually updated when the version/patch level changes. (CS) 8/28/96 (new feature) Added file manipulation features (copy, rename, delete, mkdir) that are supported on all platforms. They are implemented as subcommands to the "file" command. See the documentation for the "file" command for more information. (JH) ----------------- Released 7.6b1, 8/30/96 ----------------------- 9/3/96 (bug fix) Simplified code so that standard channels are created lazily, they are added to an interpreter lazily, and they are never added to a safe interpreter. (JL) 9/3/96 (bug fix) Closing a channel after closing a standard channel, e.g. stdout, would cause the implicit recreation of that standard channel. (JL) 9/3/96 (new feature) Now calling Tcl_RegisterChannel with a NULL interpreter increments the refcount so that code outside any interpreter can use channels that are also registered in interpreters, without worrying that the channel may turn into a dangling pointer at any time. Calling Tcl_UnregisterChannel with a NULL interpreter only decrements the recount so that code outside any interpreter can safely declare it is no longer interested in a channel. (JL) 9/4/96 (new features) Two changes to dynamic loading: - If the file name is empty in the "load" command and there is no statically loaded version of the package, a dynamically loaded version will be used if there is one. - Tcl_StaticPackage ignores redundant calls for the same package. (JO) 9/6/96 (bug fix) Platform specific procedures for manipulating files are no longer macros and have been prefixed with "Tclp", such as TclpRenameFile. Unix file code now handles symbolic links and other special files correctly. The semantics of file copy and file rename has been changed so that if a target directory exists, the source files will NOT be merged with the existing files. (JH) 9/6/96 (bug fix) If standard channel is NULL, because Tcl cannot connect to the standard channel, do not increment the refcount. The channel can be NULL if there is for example no standard input. (JL) 9/6/96 (portability improvement) Changed parsing of backslash sequences like \n to translate directly to absolute values like 0xa instead of letting the compiler do the translation. This guarantees that the translation is done the same everywhere. (JO) 9/9/96 (bug fix) If channel is opened and not associated with any interpreter, but Tcl decides to use it as one of the standard channels, it became impossible to close the channel with Tcl_Close -- instead you had to call Tcl_UnregisterChannel. Fixed now so that it's safe to call Tcl_Close even when Tcl is using the channel as one of the standard ones. (JL) 9/11/96 (feature change) The Tcl library is now placed in the Tcl shared libraries resource. You no longer need to place the Tcl files in your applications explicitly. (RJ) 9/11/96 (feature change) Extensions no longer automatically have the resource fork of the extension opened for it. Instead you need to use the tclMacLibrary.c file in your extension. (RJ) *** POTENTIAL INCOMPATIBILITY *** 9/12/96 (bug fix) The extension loading mechanism on the Macintosh now looks at the 'cfrg' resource to determine where to load the code fragment from. This means FAT fragments should now work. (RJ) 9/18/96 (enhancement) The exec and open commands behave better and work in more situations under Windows 3.X. Documentation describes what is still lacking. (CS) 9/19/96 (bug fix) Fixed a panic which would occur if you delete a non-existent alias before any aliases are created. Now instead correctly returns an error that the alias is not found. (JL) 9/19/96 (bug fix) Slave interpreters could rename aliases and they would not get deleted when the alias was being redefined. This led to dangling pointers etc. (JL) 9/19/96 (bug fix) Fixed a panic where a hash table entry was being deleted twice during alias management operations. (JL) 9/19/96 (bug fix) Fixed bug in event loop that could cause the input focus in Tk to get confused during menu traversal, among other problems. The problem was related to handling of the "marker" when its event was deleted. (JO) 9/26/96 (bug fix) Windows was losing EOF on a socket if the FD_CLOSE event happened to precede any left over FD_READ events. Now correctly remembers seeing FD_CLOSE, so that trailing FD_READ events are not discarded if they do not contain any data. This allows Tcl to correctly get a zero read and notice EOF. (JL) 9/26/96 (bug fix) Was not resetting READABLE state properly on sockets under Windows if the driver discarded an FD_READ event because no data was present. Now correctly resets the state. (JL) 9/30/96 (bug fix) Made EOF sticky on Windows sockets, so that fileevent readable will fire repeatedly until the socket is closed. Previously the fileevent fired only once. This could lead to never-closed connections if the Tcl script in the fileevent wasn't closing the socket immediately. (JL) 10/2/96 (new feature) Improved the package loader: - Added new variable tcl_pkgPath, which holds the default directories under which packages are normally installed (each package goes in a separate subdirectory of a directory in $tcl_pkgPath). These directories are included in auto_path by default. - Changed the package auto-loader to look for pkgIndex.tcl files not only in the auto_path directories but also in their immediate children. This should make it easier to install and uninstall packages (don't have to change auto_path or merge pkgIndex.tcl files). (JO) 10/3/96 (bug fix) Changed tclsh to look for tclshrc.tcl instead of tclsh.rc on startup under Windows. This is more consistent with wish and uses the right extension. (SS) *** POTENTIAL INCOMPATIBILITY *** 10/8/96 (bug fix) Convertclock does not parse 24-hour times of the form "hhmm" correctly when hour = 00. In the parse code, hour must be >= 100 for minutes to be non-zero. Thanks to Lint LaCour for this bug fix. (RJ) 10/11/96 (bug fix) Under Windows, the pid command returned the process handle instead of the process id. (SS) ----------------- Released 7.6, 10/16/96 ----------------------- 10/29/96 (bug fix) Under Windows, sockets would consume 100% CPU time after the first accept(), due to a typo. (JL) 10/29/96 (bug fix) Incorrect refcount management caused standard channels not to get deleted at process exit or DLL unload time, causing a memory leak of upwards of 20K each time. (JL) 11/7/96 (bug fix) Auto-exec didn't work on file names that contained spaces. (JO) 11/8/96 (bug fix) Fixed core dump that would occur if more than one call to Tcl_DeleteChannelHandler was made to delete a given channel handler. (JL) 11/8/96 (bug fix) Fixed test for return value in Tcl_Seek and Tcl_SeekCmd to only treat -1 as error, instead of all negative numbers. (JL) 11/12/96 (bug fix) Do not blocking waiting for processes at the end of a pipe during exit cleanup. (JL) 11/12/96 (bug fix) If we are in exit cleanup, do not close the system level file descriptors 0, 1 and 2. Previously they were being closed which is incorrect, in the embedded case. This led to weird behavior for programs that want to interpose on I/O through the standard file descriptors (e.g. Netscape Navigator). (JL) 11/15/96 (bug fix) Fixed core dump on Windows sockets due to dependency on deletion order at exit. Now all socket functions check to see if sockets are (still) initialized, before calling through function pointers. Before, they would call and might end up calling unloaded object code. (JL) 11/15/96 (bug fix) Fixed core dump in Windows socket initialization routine if sockets were not installed on the system. Before, it was not properly checking the result of attempting to load the socket DLL, so it would call through uninitialized function pointers. (JL) 11/15/96 (bug fix) Fixed memory leak in Windows sockets which left socket DLL handle open and could hold the socket DLL in memory uneccessarily, until a reboot. (JL) 12/4/96 (bug fix) Fixed bug in Macintosh socket code that could result in lost data if a client was closed too soon after sending data. (RJ) 12/17/96 (bug fix) Fixed deadlock bug in Windows sockets due to losing an event. This was happening because of an interaction between buffering and nonblocking mode on sockets. Now switched to sockets being blocking by default, so we are also no longer emulating blocking through a private event loop. (JL) 1/21/97 (performance bug fix) Client TCP connections were slow to create because getservbyname was always called on the port. Now this is only done if Tcl_GetInt fails. (BW) 1/21/97 (configuration fix) Made it possible to override TCL_PACKAGE_PATH during make. Previously it was only set during autoconf process. 1/29/97 (bug fix) Fixed some problems with the clock command that impacted how dates were scaned after the year 2000. (RJ) ----------------- Released 7.6p2, 1/31/97 ----------------------- 2/5/97 (bug fix) Fixed a bug where in CR-LF translation mode, \r bytes in the input stream were not being handled correctly. (JL) 2/24/97 (bug fix) Fix bug with exec under Win32s not being able to create stderr file which caused all execs to fail. Fixed temp file leak under Win32s. Fixed optional parameter bug with SearchPath that only happened under Win32s 1.25. (CCS) ---------------------------------------------------------- Changes for Tcl 7.6 go above this line. Changes for Tcl 7.7 go below this line. ---------------------------------------------------------- 5/8/96 (new feature) Added Tcl_Ungets C API for putting a sequence of bytes into a channel's input buffer. This can be used for "push" model channels where the input is obtained via callbacks instead of by request of the generic IO code. No Tcl procedure yet. (JL) 11/15/96 (new feature) Implemented hidden commands. New C APIs: Tcl_HideCommand -- hides an existing exposed command. Tcl_ExposeCommand -- exposes an existing hidden command. New tcl APIs: interp invokehidden -- invokes a hidden command in a slave. interp hide -- hides an existing exposed command. interp expose -- exposes an existing hidden command. interp hidden -- returns a list of hidden commands. The implementation of Safe Tcl now uses the new hidden commands facility to implement the safe base, instead of deleting the commands from a safe interpreter. (JL) 11/15/96 (new feature) Implemented the safe base, a mechanism for installing and requesting security policies, purely in Tcl code. Overloads the package command to also allow an interpreter to "require" a policy. The following new library commands are provided: tcl_safeCreateInterp -- creates a slave an initializes the policy mechanism. tcl_safeInitInterp -- initializes an existing slave with the policy mechanism. tcl_safeDeleteInterp -- deletes a slave and deinitializes the policy mechanism. Added a new file to the library, safeinit.tcl, to hold implementation. (JL) On 7/9/97, removed the policy loading mechanism from the Safe Base. Left only the Safe Base aliases dealing with auto-loading and source. (JL) 12/6/96 (new feature) Implemented Tcl_Finalize, an API that should be called by a process when it is done using Tcl. This API runs all the exit handlers to allow them to clean up resources etc. (JL) 12/17/96 (new feature) Add an http Tcl script package to the Tcl library. This package implements the client side of HTTP/1.0; the GET, HEAD, and POST requests. (BW) 1/21/97 (new feature) Added a "marktrusted" subcommand to the "interp" and to the interpreter object command. It removes the "safe" mark on an interpreter and disables hard-wired checks for safety in the C sources. (JL) 1/21/97 (removed feature) Removed "vwait" from set of commands available in a safe interpreter. (JL) 2/11/97 (new feature, bug fix) http package. Added -accept to http_config so you can set the Accept header. Added -handler option to http_get so you can supply your own data handler. Also fixed POST operation to set the correct MIME type on the request. (BW) ---------------------------------------------------------- Changes for Tcl 7.7 go above this line. Changes for Tcl 8.0 go below this line. ---------------------------------------------------------- 9/17/96 (bug fix) Using "upvar" it was possible to turn an array element into an array itself. Changed to disallow this; it was quirky and didn't really work correctly anyway. (JO) 10/21/96 (new feature) The core of the Tcl interpreter has been replaced with an on-the-fly compiler that translates Tcl scripts to bytecoded instructions; a new interpreter then executes the bytecodes. The compiler introduces only a few minor changes at the level of Tcl scripts. The biggest changes are to expressions and lists. - A second level of substitutions is no longer done for expressions. This substantially improves their execution time. This means that the expression "$x*4" produces a different result than in the past if x is "$y+2". Fortunately, not much code depends on the old two-level semantics. Some expressions that do, such as "expr [join $list +]" can be recoded to work in Tcl8.0 by adding an eval: e.g., "eval expr [join $list +]". - Lists are now completely parsed on the first list operation to create a faster internal representation. In the past, if you had a misformed list but the erroneous part was after the point you inserted or extracted an element, then you never saw an error. In Tcl8.0 an error will be reported. This should only effect incorrect programs that took advantage of behavior of the old implementation that was not documented in the man pages. Other changes to Tcl scripts are discussed in the web page at http://www.scriptics.com/doc/compiler.html. (BL) *** POTENTIAL INCOMPATIBILITY *** 10/21/96 (new feature) In earlier versions of Tcl, strings were used as a universal representation; in Tcl 8.0 strings are replaced with Tcl_Obj structures ("objects") that can hold both a string value and an internal form such as a binary integer or compiled bytecodes. The new objects make it possible to store information in efficient internal forms and avoid the constant translations to and from strings that occurred with the old interpreter. There are new many new C APIs for managing objects. Some of the new library procedures for objects (such as Tcl_EvalObj) resemble existing string-based procedures (such as Tcl_Eval) but take advantage of the internal form stored in Tcl objects for greater speed. Other new procedures manage objects and allow extension writers to define new kinds of objects. See the manual entries doc/*Obj*.3 (BL) 10/24/96 (bug fix) Fixed memory leak on exit caused by some IO related data structures not being deallocated on exit because their refcount was artificially boosted. (JL) 10/24/96 (bug fix) Fixed core dump in Tcl_Close if called with NULL Tcl_Channel. (JL) 11/19/96 (new feature) Added library procedures for finding word breaks in strings in a platform specific manner. See the library.n manual entry for more information. (SS) 11/22/96 (feature improvements) Added support for different levels of tracing during bytecode compilation and execution. This should help in tracking down suspected problems with the compiler or with converting existing code to use Tcl8.0. Two global Tcl variables, traceCompile and traceExec, can be set to generate tracing information in stdout: - traceCompile: 0 no tracing (default) 1 trace compilations of top level commands and procs 2 trace and display instructions for all compilations - traceExec: 0 no tracing 1 trace only calls to Tcl procs 2 trace invocations of all commands including procs 3 detailed trace showing the result of each instruction traceExec >= 2 provides a one line summary of each called command and its arguments. Commands that have been "compiled away" such as set are not shown. (BL) 11/30/96 (bug fix) The command "info nameofexecutable" could sometimes return the name of a directory. (JO) 11/30/96 (feature improvements) Changed the code in library/init.tcl that reads in pkgIndex.tcl so that (a) it reads the files from child directories before those in the parent, so that the parent gets precedence, and (b) it doesn't quit if there is an error in a pkgIndex.tcl file; instead, it prints an error message on standard error and continues. (JO) 10/5/96 (feature improvements) Partial implementation of binary string support: the ability for Tcl string values to contain embedded null bytes. Changed the Tcl object-based APIs to take a byte pointer and length pair instead of a null-terminated C string. Modified several object type managers to support binary strings but not, for example, the list type manager. Existing string-based C APIs are unchanged and will truncate binary strings. Compiled scripts containing nulls are also truncated. (BL) 12/12/96 (feature change) Removed the commands "cp", "mkdir", "mv", "rm", and "rmdir" from the Macintosh version of Tcl. They were never officially supported and their functionality is now available via the file command. (RJ) ----------------- Released 8.0a1, 12/20/96 ----------------------- 1/7/97 (bug fix) Under Windows, "file stat c:" was returning error instead of stat for current dir on c: drive. 1/10/97 (new feature) Added Tcl_GetIndexFromObj procedure for quick lookups of keyword arguments. (JO) 1/12/97 (new feature) Serial IO channel drivers for Windows and Unix, available by using Tcl open command to open pseudo-files like "com1:" or "/dev/ttya". New option to Tcl fconfigure command for serial files: "-mode baud,parity,data,stop" to specify baud rate, parity, data bits, and stop bits. Serial IO is not yet available on Mac. 1/16/97 (feature change) Restored the Tcl7.x "two level substitution semantics" for expressions. Expressions not enclosed in braces are implemented, in general, by calling the expr command procedure (Tcl_ExprObjCmd) at runtime after the Tcl interpreter has already done a first round of substitutions. This is slow (about Tcl7.x speed) because new code for the expression is generally compiled each time. However, if the expression has only variable substitutions (and not command substitutions), "optimistic" fast code is generated inline. This inline code will fail if a second round of substitutions is needed (i.e., if the value of a substituted variable itself requires more substitutions). The optimistic code will catch the error and back off to call the slower but guaranteed correct expr command procedure. (BL) 1/16/97 (feature improvements) Added Tcl_ExprLongObj and Tcl_ExprDoubleObj to round out expression-related procedures. (BL) 1/16/97 (feature change) Under Windows, at startup the environment variables "path", "comspec", and "windir" in any capitalization are converted automatically to upper case. The PATH variable could be spelled as path, Path, PaTh, etc. and it makes programming rather annoying. All other environment variables are left alone. (CS) 1/20/97 (new features) Rewrote the "lsort" command: - The new version is based on reentrant merge sort code provided by Richard Hipp, so it eliminates the reentrancy and stability problems with the old qsort-based implementation. - The new version supports a -dictionary option for sorting, and it also supports a -index option for sorting lists using one element for comparison. - The new version is an object command, so it works well with the Tcl compiler, especially in conjunction with the new -index option. When the -index option is used, this version of lsort is more than 100 times faster than the Tcl 7.6 lsort, which had to use the -command option to get the same effect. (JO) 1/20/97 (feature improvements) Added the improved debugging support for Tcl objects prototyped by Karl Lehenbauer . If TCL_MEM_DEBUG is defined, the object creation calls use Tcl_DbCkalloc directly in order to record the caller's source file name and line number. (BL) 1/21/97 (removed feature) Desupported the tcl_precision variable: if set, it is ignored. Tcl now uses the full 17 digits of precision when converting real numbers to strings (with the new object system real numbers are rarely converted to strings so there is no efficiency disadvantage to printing all 17 digits; the new scheme improves accuracy and simplifies several APIs). (JO) *** POTENTIAL INCOMPATIBILITY *** 1/21/97 (feature change) Removed the "interp" argument for the procedures Tcl_GetStringFromObj, Tcl_StringObjAppend, and Tcl_StringObjAppendObj. Also removed the "interp" argument for the updateStringProc procedure in Tcl_ObjType structures. With the tcl_precision changes above, these are no longer needed. (JO) *** POTENTIAL INCOMPATIBILITY with Tcl 8.0a1, but not with Tcl 7.6 *** 1/22/97 (bug fix) Fixed http.tcl so that http_reset does not result in an extra call to the command callback. In addition, if the transaction gets a premature eof, the state(status) is "eof", not "ok". (BW) ----------------- Released 8.0a2, 1/24/97 ----------------------- 1/29/97 (feature change) Changed how two digit years are parsed in the clock command. The old interface just added 1900 which will seem broken by the year 2000. The new scheme follows the POSIX standard and treats dates 70-99 as 1970-1999 and dates 00-38 as 2000-2038. All other two digit dates are undefined. (RJ) *** POTENTIAL INCOMPATIBILITY *** 2/4/97 (bug fix) Fixed bug in clock code that dealt with relative dates. Using the relative month code you could get an invalid date because it jumped into a non-existant day. (For example, Jan 31 to Feb 31.) The code now will return the last valid day of the month in these situations. Thanks to Hume Smith for sending in this bug fix. (RJ) 2/10/97 (feature change) Eliminated Tcl_StringObjAppend and Tcl_StringObjAppendObj procedures, replaced them with Tcl_AppendToObj and Tcl_AppendStringsToObj procedures. Added new procedure Tcl_SetObjLength. (JO) *** POTENTIAL INCOMPATIBILITY with Tcl 8.0a2, but not with Tcl 7.6 *** 2/10/97 (new feature) Added Tcl_WrongNumArgs procedure for generating error messages about incorrect number of arguments. (JO) 2/11/97 (new feature, bug fix) http package. Added -accept to http_config so you can set the Accept header. Added -handler option to http_get so you can supply your own data handler. Also fixed POST operation to set the correct MIME type on the request. (BW) 2/22/97 (bug fix) Fixed bug that caused $tcl_platform(osVersion) to be computed incorrectly under AIX. (JO) 2/25/97 (new feature, feature change) Added support for both int and long integer objects. Added Tcl_NewLongObj/Tcl_GetLongFromObj/Tcl_SetLongFromObj procedures and renamed the Tcl_Obj internalRep intValue member to longValue. Tcl_GetIntFromObj now checks for integer values too large to represent as non-long integers. Changed Tcl_GetAllObjTypes to Tcl_AppendAllObjTypes. (BL) 3/5/97 (new feature) Added new Tcl_SetListObj procedure to round out collection of procedures that set the type and value of existing Tcl objects. (BL) 3/6/97 (new feature) Added -global flag for interp invokehidden. (JL) 3/6/97 (new feature, feature change) Added isNativeObjectProc field to the Tcl_CmdInfo structure to indicate (when 1) if the command has an object-based command procedure. Removed the nameLength arg from Tcl_CreateObjCommand since command names can't contain null characters. (BL) 3/6/97 (bug fix) Fixed bug in "unknown" procedure that caused auto- loading to fail on commands whose names begin with digits. (JO) 3/7/97 (bug fix) Auto-loading now works in Safe Base. Safe interpreters only accept the Version 2 and onwards tclIndex files. (JL) 3/13/97 (bug fix) Fixed core dump due to interaction between aliases and hidden commands. Bug found by Lindsay Marshall. (JL) 3/14/97 (bug fix) Fixed mac bugs relating to time. The -gmt option now adjusts the time in the correct direction. (Thanks to Ed Hume for reporting a fix to this problem.) Also fixed file "mtime" etc. to return times from GMT rather than local time zone. (RJ) 3/18/97 (feature change) Declaration of objv in Tcl_ObjCmdProc function changed from "Tcl_Obj *objv[]" to "Tcl_Obj *CONST objv[]". All Tcl object commands changed to use new declaration of objv. Naive translation of string-based command procs to object-based command procs could very easily have yielded code where the contents of the objv array were changed. This is not a problem with string-based command procs, but doing something as simple as objv[2] = objv[3] would corrupt the runtime stack and cause Tcl to crash. Introduced CONST in declaration of objv so that attempted assignment of new pointer values to elements of the objv array will be caught by the compiler. (CCS) *** POTENTIAL INCOMPATIBILITY with Tcl 8.0a2 *** 3/19/97 (bug fix) Fixed panic due to object sharing. The root cause was that old code was using Tcl_ResetResult instead of Tcl_ResetObjResult. (JL) 3/20/97 (new feature) Added a new subcommand for the file command. file attributes filename can give a list of platform-specific options (such as file/creator type on the Mac, permissions on Unix) or set the values of them. Added a new subcommand for the file command. file nativename name gives back the platform-specific form for the file. This is useful when the filename is needed to pass to the OS, such as exec under Windows 95 or AppleScript on the Mac. For more info, see file.n. (SRP) 3/24/97 (removed feature) Removed the tcl_safePolicyPath procedure. Now the policy path is computed from the auto_path by appending the directory 'policies' to each element. Also fixed several bugs in automatic tracking of auto_path by computed policy path. (JL) *** POTENTIAL INCOMPATIBILITY with Tcl 8.0a2 but not with Tcl 7.6 *** 4/8/97 (new feature) If the variable whose name is passed to lappend doesn't already exist, and there are no value arguments, lappend now creates the variable with an empty value instead of returning an error. Change suggested by Tom Tromey. (BL) 4/9/97 (feature change) Changed the name of the TCL_PART1_NOT_PARSED flag to TCL_PARSE_PART1. (BL) *** POTENTIAL INCOMPATIBILITY with Tcl 8.0a2 but not with Tcl 7.6 *** 4/10/97 (bug fixes) Fixed various compilation-related bugs: - "UpdateStringOfCmdName should never be invoked" panic. - Bad code generated for expressions not in {}'s inside catch commands. - Segmentation fault in some command procedures when two argument object pointers refer to the same object. - Second level of substitutions were never done for expressions not in {}'s that consist of a single variable reference: e.g., "set x 27; set bool {$x}; if $bool {puts foo}" would fail with error. - Bad code generated when code storage was grown while compiling some expressions: ones with compilation errors or consisting of only a variable reference. - Bugs involving multiple interpreters: wasn't checking that a procedure's code was compiled for the same interpreter as the one executing it, and didn't invalidate code on hidden-exposed command transitions. - "Bad stack top" panic when executing scripts that require a huge amount of stack space. - Incorrect sharing of code for procedure bodies, and procedure code deallocated before last execution of the procedure finished. - Fixed compilation of expression words in quotes. For example, if "0 < 3" {puts foo}. - Fixed performance bug in array set command with large assignments. - Tcl_SetObjLength segmentation fault setting length of empty object. - If Tcl_SetObjectResult was passed the same object as the interpreter's result object, it freed the object instead of doing nothing. Bug fix by Michael J. McLennan. - Tcl_ListObjAppendList inserted elements from the wrong list. Bug fix by Michael J. McLennan. - Segmentation fault if empty variable list was specified in a foreach command. Bug fix by Jan Nijtmans. - NULL command name was always passed to Tcl_CreateTrace callback procedure. - Wrong string representation generated for the value LONG_MIN. For example, expr 1<<31 printed incorrectly on a 32 bit machine. - "set {a($x)} 1" stored value in wrong variable. - Tcl_GetBooleanFromObj was not checking for garbage after a numeric value. - Garbled "bad operand type" error message when evaluating expressions not surrounded by {}'s. (BL) 4/16/97 (new feature) The expr command now has the "rand()" and "srand()" functions for getting random numbers in expr. (RJ) 4/23/97 (bug fix) Fixed core dump in bgerror when the error handler command deletes the current interpreter. Found by Juergen Schoenwald. (JL) 4/23/97 (feature change) The notifier interfaces have been redesigned to make embedding in applications with external event loops possible. A number of interfaces in the notifier and the channel drivers have changed. Refer to the Notifier.3 and CrtChannel.3 manual entries for more details. (SS) *** POTENTIAL INCOMPATIBILITY *** 4/23/97 (removed feature) The Tcl_File interfaces have been removed. The Tcl_CreateFileHandler/Tcl_DeleteFileHandler interfaces now take Unix fd's and are only supported on the Unix platform. Tcl_GetChannelFile has been replaced with Tcl_GetChannelHandle. Tcl_MakeFileChannel now takes a platform specific file handle. (SS) *** POTENTIAL INCOMPATIBILITY *** 4/23/97 (removed feature) The modal timeout interface has been removed (Tcl_CreateModalTimeout/Tcl_DeleteModalTimeout) (SS) *** POTENTIAL INCOMPATIBILITY *** 4/23/97 (feature change) Channel drivers are now required to correctly implement blocking behavior when they are in blocking mode. (SS) *** POTENTIAL INCOMPATIBILITY *** 4/23/97 (new feature) Added the "binary" command for manipulating binary strings. Also, changed the "puts", "gets", and "read" commands to preserve embedded nulls. (SS) 4/23/97 (new feature) Added tcl_platform(byteOrder) element to the tcl_platform array to identify the native byte order for the current host. (SS) 4/23/97 (bug fix) Fixed bug in date parsing around year boundaries. (SS) 4/24/97 (bug fix) In the process of copying a file owned by another user, Tcl was changing the owner of the copy back to the owner of the original file, therefore causing further file operations to fail because the current user didn't own the copy anymore. The owner of the copy is now left as the current user. (CCS) 4/24/97 (feature change) Under Windows, don't automatically uppercase the environment variable "windir" -- it's supposed to be lower case. (CCS) 4/29/97 (new feature) Added namespace support based on a namespace implementation by Michael J. McLennan of Lucent Technologies. A namespace encapsulates a collection of commands and variables to ensure that they won't interfere the commands and variables of other namespaces. The global namespace holds all global variables and commands. Additional namespaces are created with the new namespace command. The new variable command lets you create Tcl variables inside a namespace. The names of Tcl variables and commands may now be qualified by the name of the namespace containing them. The key namespace-related commands are summarized below: - namespace ?eval? name arg ?arg...? Used to define the commands and variables in a namespace. Optionally creates the namespace. - namespace export ?-clear? ?pattern pattern...? Specifies which commands are exported from a namespace. These are the ones that can be imported into another namespace. - namespace import ?-force? ?pattern pattern...? Makes the specified commands accessible in the current namespace. - namespace current Returns the name of the current namespace. - variable name ?value? ?name ?value?...? Creates one or more namespace variables. (BTL) 5/1/97 (bug fix) Under Windows, file times were reported in GMT. Should be reported in local time. (CCS) 5/2/97 (feature change) Changed the name of the two Tcl variables used for tracing bytecode compilation and execution to tcl_traceCompile and tcl_traceExec respectively. These variables are now documented in the tclvars man page. (BL) 5/5/97 (new feature) Support "end" as the index for "lsort -index". (BW) 5/5/97 (bug fixes) Cleaned up the way the http package resets connections (BW) 5/8/97 (feature change) Newly created Tcl objects now have a reference count of zero instead of one. This simplifies C code that stores newly created objects in Tcl variables or in data structures such as list objects. That C code must increment the new object's reference count since the variable or data structure will contain a long-term reference to the object. Formerly, when new objects started out with reference count one, it was necessary to decrement the new object's reference count after the store to make sure it was left with the correct value; this is no longer necessary. (BL) 5/9/97 (new feature) Added the Tcl_GetsObj interface that takes an object reference instead of a dynamic string (as in Tcl_Gets). (SS) 5/12/97 (new feature) Added Tcl_CreateAliasObj and Tcl_GetAliasObj C APIs to allow an alias command to be created with a vector of Tcl_Obj structures and to get the vector back later. (JL) 5/12/97 (feature change) Changed Tcl_ExposeCommand and Tcl_HideCommand to leave an object result instead of a string result. (JL) 5/14/97 (feature change) Improved the handling of the interpreter result. This is still either an object or a string, but the two values are now kept consistent unless some C code reads or writes interp->result directly. See the SetResult man page for details. Removed the Tcl_ResetObjResult procedure. (BL) *** POTENTIAL INCOMPATIBILITY with Tcl 8.0a2 *** 5/16/97 (new feature) Added "fcopy" command to move data between channels. Refer to the manual page for more information. Removed the "unsupported0" command since it is obsolete now. (SS) 5/16/97 (new feature) Added Tcl_GetStringResult procedure to allow programs to get an interpreter's result as a string. If the result was previously set to an object, this procedure will convert the object to a string. Use of Tcl_GetStringResult is intended to replace direct access to interp->result, which is not safe. (BL) 5/20/97 (new features) Fixed "fcopy" to return the number of bytes transferred in the blocking case. Updated the http package to use fcopy instead of unsupported0. Added -timeout and -handler options to http_get. http_get is now blocking by default. It is only non-blocking if you supply a -command argument. (BW) 5/22/97 (bug fix) Fixed several bugs in the "lsort" command having to do with the -dictionary option and the presence of numbers embedded in the strings. (JO) ----------------- Released 8.0b1, 5/27/97 ----------------------- 6/2/97 (bug fix) Fixed bug in startup code that caused a problem in finding the library files when they are installed in a directory containing a space in the name. (SS) 6/2/97 (bug fix) Fixed bug in Unix notifier where the select mask was not being cleared under some circumstances. (SS) 6/4/97 (bug fix) Fixed bug that prevented creation of Tk widgets in namespaces. Tcl_CreateObjCommand and Tcl_CreateCommand now always create commands in the global namespace unless the command names are qualified. Tcl procedures continue to be created in the current namespace by default. (BL) 6/6/97 (new features) Added new namespace API procedures Tcl_AppendExportList and Tcl_Export to allow C code to get and set a namespace's export list. (BL) 6/11/97 (new feature) Added Tcl_ConcatObj. This object-based routine parallels the string-based routine Tcl_Concat. (SRP) 6/11/97 (new feature) Added Tcl_SetObjErrorCode. This object-based routines parallels the string-based routine Tcl_SetErrorCode. (SRP) 6/12/97 (bug fix) Fix the "unknown" procedure so that wish under Windows will exec an external program, instead of always complaining "console1 not opened for writing". (CCS) 6/12/97 (bug fix) Fixed core dump experienced by the following simple script: interp create x x alias exec exec interp delete x This panic was caused by not installing the new CmdDeleteProc when exec got redefined by the alias creation step. Reported by Lindsay Marshal (JL) 6/13/97 (new features) Tcl objects newly created by Tcl_NewObj now have a string representation that points to a shared heap string of length 1. (They used to have NULL bytes and typePtr fields. This was treated as a special case to indicate an empty string, but made type manager implementations complex and error prone.) The new procedure Tcl_InvalidateStringRep is used to mark an object's string representation invalid and to free any storage associated with the old string representation. (BL) *** POTENTIAL INCOMPATIBILITY with Tcl 8.0b1, but not with Tcl7.6 *** 6/16/97 (bug fix) Tcl_ScanCountedElement could leave braces unmatched if the string ended with a backslash. (JO) 6/17/97 (bug fix) Fixed channel event bug where readable events would be lost during recursive events loops if the input buffers contained data. (SS) 6/17/97 (bug fix) Fixed bug in Windows socket code that didn't reenable read events in the case where an external entity is also reading from the socket. (SS) 6/18/97 (bug fix) Changed initial setting of the notifier service mode to TCL_SERVICE_NONE to avoid unexpected event handling during initialization. (SS) 6/19/97 (bug fix/feature change) The command callback to fcopy is now called in case of errors during the background copy. This adds a second, optional argument to the callback that is the error string. The callback in case of errors is required for proper cleanup by the user of fcopy. (BW) *** POTENTIAL INCOMPATIBILITY with Tcl 8.0b1, but not with Tcl 7.6 *** 6/19/97 (bug fix) Fixed a panic due to the following four line script: interp create x x alias foo bar x eval rename foo blotz x alias foo {} The problem was that the interp code was not using the actual current name of the command to be deleted as a result of un-aliasing foo. (JL) 6/19/97 (feature change) Pass interp down to the ChannelOption and driver specific calls so system errors can be differentiated from syntax ones. Changed Tcl_DriverGetOptionProc type. Affects Tcl_GetChannelOption, TcpGetOptionProc, TtyGetOptionProc, etc. (DL) *** POTENTIAL INCOMPATIBILITY *** 6/19/97 (new feature) Added Tcl_BadChannelOption for use by by driver specific option procedures (Set and Get) to return a complete and meaningful error message. (DL) 6/19/97 (bug fixes) If a system call error occurs while doing an fconfigure on tcp or tty/com channel: return the appropriate error message (instead of the syntax error one or none). (Fixed for Unix and most of the Win and Mac drivers). (DL) 6/20/97 (feature change) Eval is no longer assumed as the subcommand name in namespace commands: you must now write "namespace eval nsName {...}". Abbreviations of namespace subcommand names are now allowed. (BL) *** POTENTIAL INCOMPATIBILITY with Tcl 8.0b1, but not with Tcl7.6 *** 6/20/97 (feature change) Changed the errorInfo traceback message for compilation errors from "invoked from within" to "while compiling". (BL) 6/20/97 (bug fixes) Fixed various compilation-related bugs: - "UpdateStringOfCmdName should never be called" and "UpdateStringOfByteCode should never be called" panics. - Segfault in TclObjInterpProc getting procedure name after evaluation stack is reallocated (grown). - Could not use ":" at end of variable and command names. - Bad code generated for while and for commands with test expressions enclosed in quotes: e.g., "set i 0; while "$i > 5" {}". - Command trace procedures would crash if they did a Tcl_EvalObj that reallocated the evaluation stack. - Break and continue commands did not reset the interpreter result. - The Tcl_ExprXXX routines, both string- or object-based, always modified the interpreter result even if there was no error. - The argument parsing procedure used by several compile procedures always treated "]" as end of a command: e.g., "set a ]" would fail. - Changed errorInfo traceback message for compilation errors from "invoked from within" to "while compiling". - Problem initializing Tcl object managers during interpreter creation. - Added check and error message if formal parameter to a procedure is an array element. (BL) 6/23/97 (new feature) Added "registry" package to allow manipulation of the Windows system registry. See manual entry for details. (SS) 6/24/97 (feature change) Converted http to a package and added the http1.0 subdirectory of the Tcl script library. This means you have to do a "package require http" to use this, as advertised in the man page. (BW) *** POTENTIAL INCOMPATIBILITY with Tcl 8.0b1, but not with Tcl 7.6 *** 6/24/97 (bug fix) Ensure that Tcl_Set/GetVar C APIs, when called without TCL_LEAVE_ERR_MSG, don't touch the interp result. (DL) 6/26/97 (feature change) Changed name of Tcl_ExprStringObj to Tcl_ExprObj. (BL) *** POTENTIAL INCOMPATIBILITY with Tcl 8.0b1, but not with Tcl 7.6 *** ----------------- Released 8.0b2, 6/30/97 ----------------------- 7/1/97 (new feature) TCL_BUILD_SHARED flag set in tclConfig.sh when Tcl has been built with --enable-shared. A new tclLibObjs make target, echoing the list of the .o's needed to build a tcl library, is now provided. (DL) 7/1/97 (feature change) compat/getcwd.c removed and changed the only place where getcwd is used so a new USEGETWD flag selects the use of the replacement "getwd". Adding this flag is recommended for SunOS 4 (because getcwd on SunOS 4 uses a pipe to pwd(1)!). (DL) 7/7/97 (feature change) The split command now supports binary data (i.e., null characters in strings). (BL) 7/7/97 (bug fix) string first returned the wrong result if the first argument string was empty. (BL) 7/8/97 (bug fix) Fixed core dump in fcopy that could occur when a command callback was supplied and an error or eof condition caused no background activity. A refcount bug triggered a panic in Tcl_ListObjAppendElement. (BW) 7/8/97 (bug fix) Relaxed the pattern matching on http_get so you do not need a trailing path component. You can now get away with just http_get www.scriptics.com (BW) 7/9/97 (bug fix) Creating anonymous interpreters no longer smashes existing commands with names similar to the generated name. Previously creating an anonymous interpreter could smash an existing command, now it skips until it finds a command name that isn't being used. (JL) 7/9/97 (feature change) Removed the policy management mechanism from the Safe Base; left the aliases to source and load modules, and to do a limited form of the "file" command. See entry of 11/15/96. (JL) 7/9/97 (bug fixes) Fixed various compilation-related bugs: - Line numbers in errorInfo now are the same as those in Tcl7.6 unless there are compilation errors. Compilation error messages now include the entire command in error. - Trailing ::s after namespace names weren't being ignored. - Could not refer to an namespace variable with an empty name using a name of the form "n::". (BL) 7/9/97 (bug fix) Fixed bug in Tcl_Export that prevented you from exporting from other than the current namespace. (BL) 7/9/97 (bug fix) env.test was removing env var needed for proper finding of libraries in child process. (DL) 7/10/97 (bug fixes/new feature) Cleanup in Tcl_MakeSafe. Less information is leaked to safe interps. Error message fixes for interp sub commands. Likewise changes in safealias.tcl; tcl_safeCreateInterp can now be called without argument to generate the slave name (like in interp create). (DL) 7/10/97 (bug fixes) Bytecode compiler now generates more detailed command location information: subcommands as well as commands now have location information. This means command trace procedures now get the correct source string for each command in their command parameter. (BL) 7/22/97 (bug fixes) Performance improvement in Safe interpreters handling. Added new mask value to (tclInt.h) Interp.flags record. (DL) 7/22/97 (bug fix) Fixed panic in 'interp target {} foo'. This bug was present since Tcl 7.6. (JL) 7/22/97 (bug fix) Fixed bug in compilation of procedures in namespaces: the procedure's namespace must be used to look up compile procedures, not the current namespace. (BL) 7/22/97 (bug fix) Use of the -channel option of http_get was not setting the end of line translations mode on the channel, so copying binary data with the -channel option was corrupting the result on non-unix platforms. (BW) 7/22/97 (bug fixes) file commands and ~user (seg fault and other improper returns). (DL) 7/23/97 (feature change) Reenabled "vwait" in Safe Base. (JL) 7/23/97 (bug fixes) Fixed two bugs involving read traces on array variables in procedures: trace procedures were sometimes not called, and reading nonexistant array elements didn't create undefined element variables that could later be defined by trace procedures. (BL) 7/24/97 (bug fix) Windows memory allocation performance was superlinear in some cases. Made the Mac allocator generic and changed both the Mac and Windows platforms to use the new allocator instead of malloc and free. (SS) 7/24/97 - 8/12/97 (bug fixes/change of features) Completely revamped safe sourcing/loading (see safe.n) to hide pathnames, use virtual paths tokens instead, improved security in several respects and made it more tunable. Multi level interp loading can work too now. Package auto loading now works in safe interps as long as the package directory is in the auto_path (no deep crawling allowed in safe interps). (DL) *** POTENTIAL INCOMPATIBILITY with previous alpha and beta releases *** 7/24/97 (bug fixes) Made Tcl_SetVar* and Tcl_NewString* treat a NULL value as an empty string. (This fixes hairy crash case where you would crash because load command for other interps assumed presence of errorInfo...). (DL) 7/28/97 (bug fix) Fixed pkg_mkIndex to understand namespaces. It will use the export list of a namespace and create auto_index entries for all export commands. Those names are in their fully qualified form in the auto_index. Therefore, I tweaked unknown to try both $cmd and ::$cmd. Also fixed pkg_mkIndex so you can have "package require" commands inside your packages. These commands are ignored, which is mostly ok except when you must load another package before loading yours because of linking dependencies. (BW) 7/28/97 (bug fix) A variable created by the variable command now persists until the namespace is destroyed or the variable is unset. This is true even if the variable has not been initialized; these variables used to be destroyed if an error occurred when accessing them. In addition, the "info vars" command lists uninitialized namespace variables, while the "info exists" command returns 0 for them. (BL) 7/29/97 (feature change) Changed the http package to use the ::http namespace. http_get renamed to http::geturl, http_config renamed to http::config, http_formatQuery renamed to http::formatQuery. It now provides the 2.0 version of the package. The 1.0 version is still available with the old names. *** POTENTIAL INCOMPATIBILITY with Tcl 8.0b2 but not with Tcl 7.6 *** 7/29/97 (bug fix, new feature) Tcl_Main now uses Tcl objects internally to preserve NULLs in commands and command output. Added new API procedure Tcl_RecordAndEvalObj that resembles Tcl_RecordAndEval but takes an object containing a command. (BL) 7/30/97 (bug fix) Tcl freed strings in the environ array even if it did not allocate them. (SS) 7/30/97 (bug fix) If a procedure is renamed into a different namespace, it now executes in the context of that namespace. (BL) 7/30/97 (bug fix) Prevent renaming of commands into and from namespaces as part of hiding them. (JL) 7/31/97 (feature change) Moved the history command from C to tcl. This uses the ::history namespace. The "words" and "substitute" options are no longer supported. In addition, the "keep" option without a value returns the current keep limit. There is a new "clear" option. The unknown command now supports !! again. (BW) *** POTENTIAL INCOMPATIBILTY *** 7/30/97 (bug fix) Made sure that a slave can not fool the master into hiding the wrong command. Made sure we don't crash in hiding + namespaces issues. (DL) 8/4/97 (bug fix) Concat, eval, uplevel, and similar commands were incorrectly trimming trailing space characters from their arguments even when the space characters were preceded by a backslash. (JO) 8/4/97 (bug fix) Removed the hard link between bgerror and tkerror. Only bgerror is supported in tcl core. Tk will still look for a tkerror but using regular tcl code for that feature. (DL) *** POTENTIAL INCOMPATIBILTY with code relying on the hard link *** 8/6/97 (bug fix) Reduced size required for compiled bytecodes by using a more compact encoding for the command pc-to-source map. (BL) 8/6/97 (new feature) Added support for additional compilation and execution statistics when Tcl is compiled with the TCL_COMPILE_STATS flag. (BL) 8/7/97 (bug fix) Expressions not in {}s that have a comparison operator as the topmost operator must be compiled out-of-line (call the expr cmd at runtime) to properly support expr's two-level substitution semantics. An example is "set a 2; set b {$a}; puts [expr $b == 2]". (BL) 8/11/97 (bug fix) The catch command would sometimes crash if a variable name was given and the bytecode evaluation stack was grown when executing the argument script. (BL) 8/12/97 (feature change) Reinstated the variable tcl_precision to control the number of digits used when floating-point values are converted to strings, with default of 12 digits. However, had to make tcl_precision shared among all interpreters (except that safe interpreters can't modify it). This makes the Tcl 8.0 behavior almost identical to 7.6 except that the default precision is 12 instead of 6. (JO) *** POTENTIAL INCOMPATIBILITY *** ----------------- Released 8.0, 8/18/97 ----------------------- 8/19/97 (bug fix) Minimal fix for glob -nocomplain bugs: "glob -nocomplain unreadableDir/*" was generating an anonymous error. More in depth fixes will come with 8.1. (DL). 8/20/97 (bug fix) Removed check for FLT_MIN in binary command so underflow conditions are handled by the compiler automatic conversions. (SS) 8/20/97 (bug fixes) Fixed several compilation-related bugs: - Array cmd wasn't detecting arrays that, while compiled, do not yet exist (e.g., are marked undefined since they haven't been assigned to yet). - The GetToken procedure in tclCompExpr.c wasn't recognizing properly whether an integer token was invalid. For example, "0x$" is not a valid integer. - Performance bug in TclExecuteByteCode: the size of its stack frame was reduced by over 20% by moving errorInfo code elsewhere. - Uninitialized memory read error in tclCompile.c. (BL) 8/21/97 (bug fix) safe::interpConfigure now behave like Tk widget's configure : it changes only the options you provide and you can get the current value of any single option. New ?-nested boolean? and ?-statics boolean? for all safe::interp* commands but we still accept (upward compatibility) the previously defined non valued flags ?-noStatics? and ?-nestedLoadOk?. Improved the documentation. (DL). 8/22/97 (bug fix) Updated PrintDbl.3 to reflect the fact that the tcl_precision variable is still used and that it is now shared by all interpreters. (BL) 8/25/97 (bug fix) Fixed array access bug in IllegalExprOperandType procedure in tclExecute.c: it was not properly supporting the || and && operators. (BL) 8/27/97 (bug fix) In cases where a channel handler was created with an empty event mask while data was still buffered in the channel, the channel code would get stuck spinning on a timer that would starve idle handlers. This mostly happened in Tk when reading from stdin. (SS) 9/4/97 (bug fix) Slave interps now inherit the maximum recursion limit of their parent instead of starting back at the default. {nb: this still does not prevent stack overflow by multi-interps recursion or aliasing} (DL) 9/11/97 (bug fix) An uninitialized variable in Tcl_WaitPid caused pipes to fail to report eof properly under Windows. (SS) 9/12/97 (bug fix) "exec" was misidentifying some DOS executables as not executable. (CCS) 9/14/97 (bug fix) Was using the wrong structure in sizeof operation in tclUnixChan.c. (JL) 9/15/97 (bug fix) Fixed notifier to break out of do-one-event loop if Tcl_WaitForEvent returns 1, so that callers of Tcl_DoOneEvent will get a chance to check whether the event just handled is significant. This affected mainly recursive calls to Tcl_VWaitCmd; these did not get a chance to notice that the variable they were waiting for has been set and thus they didn't terminate the vwait. (JL, DL, SS) 9/15/97 (bug fix) Alignment problems in "binary format" would cause a crash on some platforms when formatting floating point numbers. (SS) 9/15/97 (bug fix) Fixed bug in Macintosh socket code. Now passes all tests in socket.test that are not platform specific. (Thanks to Mark Roseman for the pointer on the fix.) (RJ) 9/18/97 (bug fix) Fixed bug -dictionary option of lsort that could cause the compare function to run off the end of an array if the number only contained 0's. (Thanks to Greg Couch for the report.) (RJ) 9/18/97 (bug fix) TclFinalizeEnvironment was not cleaning up properly. (DL, JI) 9/18/97 (bug fix) Fixed long-standing bug where an "array get" command did not trigger traces on the array or its elements. (BL) 9/18/97 (bug fixes) Fixed compilation-related bugs: - Fixed errorInfo traceback information for toplevel coomands that contain nested commands. - In the expr command, && and || now accept boolean operands as well as numeric ones. (BL) 9/22/97 (bug fix) Fixed bug that prevented translation modes from being set independently for input and output on sockets if input was "auto". (JL) 9/24/97 (bug fix) Tcl_EvalFile(3) and thus source(n) now works fine on files containing NUL chars. (DL) 9/26/97 (bug fix) Fixed use of uninitialized memory in the environ array that later could cause random core dumps. Applies to all platforms. (JL) 9/26/97 (bug fix) Fixed use of uninitialized memory in socket address data structure under some circumstances. This could cause random core dumps. This applies only to Unix. (JL) 9/26/97 (bug fix) Opening files on PC-NFS volumes would cause a hang until the system timed after the file was closed. (SS) 10/6/97 (bug fix) The join(n) command, though objectified, was loosing NULs in the joinString and in list elements after the 2nd one. Now you can "join $list \0" for instance. (DL) 10/9/97 (bug fix) Under windows, if env(TMP) or env(TEMP) referred to a non-existent directory, exec would fail when trying to create its temporary files. (CCS) 10/9/97 (bug fix) Under mac and windows, "info hostname" would crash if sockets were installed but the hostname could not be determined anyhow. Tcl_GetHostName() was returning NULL when it should have been returning an empty string. (CCS) 10/10/97 (bug fix) "file attribute /" returned error on windows. (CCS) 10/10/97 (bug fix) Fixed the auto_load procedure to handle procedures defined in namespaces better. Also fixed pgk_mkIndex so it sees procedures defined in nested namespaces. Index entries are still only made for exported procedures. (BW) 10/13/97 (bug fix) On unix, for files with unknown group or owner attributes, querying the "file attributes" would return an error rather than returning the group's or owner's id number, although tha command accepts numbers when setting the file's group or owner. (CCS) 10/22/97 (bug fix) "fcopy" did not eval the callback script at the global scope. (SS) 10/22/97 (bug fix) Fixed the signature of the CopyDone callback used in the http package(s) so they can handle error cases properly. (BW) 10/28/97 (bug fixes) Fixed a problem where lappend would free the Tcl object in a variable if a Tcl_ObjSetVar2 failed because of an error calling a trace on the variable. (BL) 10/28/97 (bug fix) Changed binary scan to properly handle sign extension of integers on 64-bit or larger machines. (SS) 11/3/97 (bug fixes) Fixed several bugs: - expressions such as "expr ($x)" must be compiled out-of-line (call the expr command procedure at runtime) to ensure the correct behavior when "$x" is an expression such as "5+10". - "array set a {}" now creates a new array var with an empty array value if the var didn't already exist. - "lreplace $foo end end" no longer returns an error (just an empty list) if foo is empty. - upvar will no longer create a variable in a namespace that refers to a variable in a procedure. - deleting a command trace within a command trace callback would make the code that calls traces to reference freed memory. - significantly sped up "string first" and "string last" (fix from darrel@gemstone.com). - seg fault in Tcl_NewStringObj() when a NULL is passed as the byte pointer argument and Tcl is compiled with -DTCL_MEM_DEBUG. - documentation and error msg fixes. (BL) 11/3/97 (bug fix) Fixed a number of I/O bugs related to word sizes on 64-bit machines. (SS) 11/6/97 (bug fix) The exit code of the first process created by Tcl on Windows was not properly reported due to an initialization problem. (SS) ----------------- Released 8.0p1, 11/7/97 ----------------------- 11/19/97 (bug fix) Fixed bug in linsert where it sometimes accidently cleared out a shared argument list object. (BL). 11/19/97 (bug fix) Autoloading in namespaces was not working properly. auto_mkindex is still not really namespace aware but most common cases should now be handled properly (see init.test). (BW, DL) 11/20/97 (enhancement) Made the changes required by the new Apple Universal Headers V.3.0, so that Tcl will compile with CW Pro 2. 11/24/97 (bug fix) Fixed tests in clock test suite that needed the -gmt flag set. Thanks to Jan Nijtmans for reporting the problem. (RJ) ----------------- Released 8.0p2, 11/25/97 ----------------------- 12/3/97 (bug fix/optimization) Removed uneeded and potentially dangerous instances of double evaluations if "if" and "expr" statements from the library files. It is recommended that unless you need a double evaluation you always use "expr {...}" instead of "expr ..." and "if {...} ..." instead of "if ... ...". It will also be faster thanks to the byte compiler. (DL) ---- Shipped as part of the plugin2.0b5 as 8.0p2Plugin1, Dec 8th 97 ---- 12/8/97 (bug fix) Need to protect the newly accepted channel in an accept callback on a socket, otherwise the callback may close it and cause an error, which would cause the C code to attempt to close the now deleted channel. Bumping the refcount assures that the channel sticks around to be really closed in this case. (JL) 12/8/97 (bug fix) Need to protect the channel in a fileevent so that it is not deleted before the fileevent handler returns. (CS, JL) 12/18/97 (bug fix) In the opt argument parsing package: if the description had only flags, the "too many arguments" case was not detected. The default value was not used for the special "args" ending argument. (DL) 1/15/98 (improvement) Moved common part of initScript in common file. Moved windows specific initialization to init.tcl so you can initialize Tcl in windows without having to call Tcl_Init which is now only searching for init.tcl {back ported from 8.1}. (DL) ---- Shipped as part of the plugin as 8.0p2Plugin2, Jan 15th 98 ---- 5/27/98 (bug fix) Windows socket driver did not notice new data arriving on nonblocking sockets until the event loop was entered. (SS) 5/27/98 (bug fix) Windows socket driver used FIONREAD, which is not supported correctly by WinSock. (SS) 6/9/98 (bug fix) Generic channel code failed to report readable file events on buffered data that was left behind by a gets or read that did not consume all available data. (SS) 6/18/98 (bug fix) Compilation of loop expressions was too aggressive and incorrectly inlined non-literal expressions. (SS) 6/18/98 (bug fix) "info var" and "info locals" incorrectly reported the existence of compiler temporary variables. (SS) 6/18/98 (bug fix) Dictionary sorting used signed character comparisons. (SS) 6/18/98 (bug fix) Compile procs corrupted the exception stack in some cases. (SS) 6/18/98 (bug fix) Array set had erratic behavior when initializing a variable from an empty value list. (SS) 6/18/98 (bug fix) The Windows registry package had a bad bounds check that could lead to a crash. (SS) 6/18/98 (bug fix) The foreach compile proc did not correctly handle non-local variable references. (SS) 6/25/98 (new features) Added name resolution hooks to support [incr Tcl]. There are new internal Tcl_*Resolver* APIs to add, query and remove the hooks. With this changes it should be possible to dynamically load [incr Tcl] as an extension. (MM) 7/1/97 (bug fix) The commands "info args, body, default, procs" did not correctly handle imported procedures. (RJ) 7/6/98 (improvement) pkg_mkIndex now implements the "package require" command. This makes it possible to create index files for packages that require another package and then execute code from that package in their file. Previously, this would throw an error because the required package had not been loaded. The -nopkgrequied flag is provided to revert back to the old functionality. (EMS) 7/6/98 (improvement) back-ported the -direct flag from 8.1 into pkg_mkIndex. This results in pkgIndex.tcl files that contain direct source or load commands instead of tclPkgSetup commands. (EMS) 7/6/98 (improvement) made changes to the AuxData items structures to support storage of compiled scripts on disk. Also some related minor changes in the compilation and execution engine. (EMS) 6/4/98 (enhancement) Added new internal routines to support inserting and deleting from the stat, access, and open-file-channel mechanisms. TclAccessInsertProc, TclStatInsertProc, & TclOpenFileChannelInsertProc insert pointers to such routines; TclAccessDeleteProc, TclStatDeleteProc, & TclOpenFileChannelDeleteProc delete pointers to such routines. See the file generic/tclIOUtils.c for more details. (SKS) 7/1/98 (enhancement) Added a new internal C variable tclPreInitScript. This is a pointer to a string that may hold an initialization script; If this pointer is non-NULL it is evaluated in Tcl_Init() prior to the built-in initialization script defined in the file generic/tclInitScript.h. (SKS) 7/6/98 (bug fix) Removed dead code in PlatformInitExitHandler so that the TCL_LIBRARY value can be safely patched in binaries. (BW) 7/24/98 (enhancement) Incorporated a new version of auto_mkindex that can support the [incr Tcl] class structures. This version will index all procedures in a source file, not just those where "proc" starts at the beginning of the line. If you want the old behavior, use the auto_mkindex_old procedure. (MM) 7/24/98 (feature change) Changed the Windows registry key to be HKEY_LOCAL_MACHINE\Software\Scriptics\Tcl\8.0, and to store the path in the default value instead of "Root". Also, this key can be specified at compile time in case Tcl is being used in a different context where it needs an alternate library path from the standard Tcl installation. (SS) 7/24/98 (feature change) Changed the search order for init.tcl. The tcl_library variable can now be set before calling Tcl_Init to avoid doing any searches. If it isn't set, then Tcl checks env(TCL_LIBRARY), the static value set at compile time, an install directory relative to the executable, a source directory relative to the executable, and a tcl directory relative to the source heirarchy containing the executable. See the comment at the top of generic/tclInitScript.h for more details. (SS) 7/27/98 (config change) Changed the use of the DBGX flag in configure.in and the makefile to be TCL_DBGX. Users of tclConfig.sh may need to pass this through their configure files with AC_SUBST. (BW) 729/98 (bug fix) Changed [info body] to return a copy of the body of a compiled procedure instead of the body itself, to avoid invalidation of the internal rep and loss of the byte-codes. (EMS) 8/5/98 (bug fix) The platform init code could walk off the end of a buffer when reading the PkgPath registry value on Windows. (SS) 8/5/98 (Windows makefile change) Introduced a set of macros to deal with exporting symbols when compiling DLLS on Windows. See win/README for details. (EMS) 8/5/98 (addendum) Added a second Windows registry key under HKEY_LOCAL_MACHINE\Software\Scriptics\Tcl\8.0, named "pkgPath". This is a multi-string value used to initialize the tcl_pkgPath variable. This is required if extension DLLs are in architecture specific subdirectories. (SS) 8/6/98 (new feature) Added tcl_findLibrary to init.tcl for use by extensions, including Tk. This searches in a canonical way for an extensions library directory and initialization file. (BW) 8/10/98 (bug fix) Imported commands used to get lost if the target of the import was redefined. Tcl_CreateCommand and Tcl_CreateObjCommand were updated to restore import links. (Note that if you rename a command, the import links move to the new name, and if you delete a command then the import links get lost. These semantics have not changed.) (MC) -------- Released 8.0.3 to the Tcl Consortium CD-ROM project, 8/10/98 ------ 9/3/98 (bug fix) Tcl_Realloc was failing under Windows because the GlobalReAlloc API was not correctly re-allocating blocks that were 32k+. The fix was to use newer Win32 APIs (HeapAlloc, HeapFree, and HeapReAlloc.) (BS) 10/5/98 (bug fix) Fixed bug in pkg_mkIndex that caused some files that do a "package require" of packages in the Tcl libraries to give a warning like warning: "xx.tcl" provides more than one package ({xx 2.0} {yy 0.3}) and generate a broken pkgIndex.tcl file. (EMS) 10/5/98 (bug fix) Pkg_mkIndex was not doing a case-insensitive comparison of extensions to determine whether to load or source a file. Thus, under Windows, MYDLLNAME.DLL was sourced, and mydllname.dll loaded. (EMS) 10/5/98 (new feature) Created a new Tcl_Obj type, "procbody". This object's internal representation holds a pointer to a Proc structure. Extended TclCreateProc to take both strings and "procbody". (EMS) 10/13/98 (bug fix) The "info complete" command can now handle strings with NULLs embedded. Thanks to colin@field.medicine.adelaide.edu.au for providing this fix. (RJ) 10/13/98 (bug fix) The "lsort -dictionary" command did not properly handle some numbers starting with 0. Thanks to Richard Hipp for submitting the fix to Scriptics. (RJ) 10/13/98 (bug fix) The function Tcl_SetListObj was creating an invalid Tcl_Obj if the list had zero elements (despite what the comments said it would do). Thanks to Sebastian Wangnick for reporting the problem. (RJ) 10/20/98 (new feature) Added tcl_platform(debug) element to the tcl_platform array on Windows platform. The existence of the debug element of the tcl_platform array indicates that the particular Tcl shell has been compiled with debug information. Using "info exists tcl_platform(debug)" a Tcl script can direct the interpreter to load debug versions of DLLs with the load command. (SKS) 10/20/98 (feature change) The Makefile and configure scripts have been changed for IRIX to build n32 binaries instead of the old 32 abi format. If you have extensions built with the o32 abi's you will need to update them to n32 for them to work with Tcl. (RJ) *** POTENTIAL INCOMPATIBILITY *** 10/23/98 (bug fix) tcl_findLibrary had a stray ] in one of the pathnames it searched for the initialization script. tclInitScript.h was incorrectly adding the parent of tcl_library to tcl_pkgPath. This logic was moved into init.tcl, and the initialization of auto_path was documented. Thanks to Donald Porter and Tom Silva for related patches. (BW) 10/29/98 (bug fix) Fixed Tcl_NotifyChannel to use Tcl_Preserve instead of Tcl_RegisterChannel so that 1) unregistered channels do not get closed after their first fileevent, and 2) errors that occur during close in a fileevent script are actually reflected by the close command. (BW) 10/30/98 (bug fix) Overhaul of pkg_mkIndex to deal with transitive package requires and packages split among scripts and binary files. Also fixed ommision of global for errorInfo in tcl_findLibrary. (BW) 11/08/98 (bug fix) Fixed the resource command to always detect the case where a file is opened a second time with the same permissions. IM claims that this will always cause the same FileRef to be returned, but in MacOS 8.1+, this is no longer the case, so we have to test for this explicitly. (JI) 11/10/98 (feature change) When compiling with Metrowerk's MSL, use the exit function from MSL rather than ExitToShell. This allows MSL to clean up its temporary files. Thanks to Vince Darley for this improvement. (JI) ----------------- Released 8.0.4, 11/19/98 ------------------------- 11/20/98 (bug fix) Handle possible NULL return in TclGetStdFiles. (RJ) 11/20/98 (bug fix) The dltests would not build on SGI. They reported that you could not mix n32 with 032 binaries. The configure script has been modified to get the EXTRA_CFLAGS from the tcl configure script. [Bug id: 840] (RJ) 12/3/98 (bug fix) Windows NT creates sockets so they are inheritable by default. Fixed socket code so it turns off this bit right after creation so sockets aren't kept open by exec'ed processes. [Bug: 892] Thanks to Kevin Kenny for this fix. (SS) 1/11/98 (bug fix) On HP, "info sharedlibextension" was returning empty string on static apps. It now always returns ".sl". (RJ) 1/28/99 (configure change) Now support -pipe option on gcc. (RJ) 2/2/99 (bug fix) Fixed initialization problem on Windows where no searching for init.tcl would be performed if the registry keys were missing. (stanton) 2/2/99 (bug fix) Added support for HKEY_PERFORMANCE_DATA and HKEY_DYN_DATA keys in the "registry" command. (stanton) 2/2/99 (bug fix) ENOTSUP and EOPNOTSUPP clashed on some Linux variants. (stanton) 2/2/99 (enhancement) The "open" command has been changed to use the object interfaces. (stanton) 2/2/99 (bug fix) In some cases Tcl would crash due to an overflow of the exception stack resulting from a missing byte code in some expressions. (stanton) 2/2/99 (bug fix) Changed configure so Linux and IRIX shared libraries are linked with the system libraries. (stanton) 2/2/99 (bug fix) Added support for BSDI 4.x (BSD/OS-4*) to the configure script. (stanton) 2/2/99 (bug fix) Fixed bug where upvar could resurrect a namespace variable after the namespace had been deleted. (stanton) 2/2/99 (bug fix) In some cases when creating variables, the interpreter result was being modified even if the TCL_LEAVE_ERR_MSG flag was set. (stanton) 2/2/99 (bug fix & new feature) Changed the socket drivers to properly handle failures during an async socket connection. Added a new fconfigure option "-error" to retrieve the failure message. See the socket.n manual entry for details. (stanton) 2/2/99 (bug fix) Deleting a renamed interp alias could result in a panic. (stanton) 2/2/99 (feature change/bug fix) Changed the behavior of "file extension" so that it splits at the last period. Now the extension of a file like "foo..o" is ".o" instead of "..o" as in previous versions. *** POTENTIAL INCOMPATIBILITY *** ----------------- Released 8.0.5, 3/9/99 ------------------------- ======== Changes for 8.0 go above this line ======== ======== Changes for 8.1 go below this line ======== 6/18/97 (new feature) Tcl now supports international character sets: - All C APIs now accept UTF-8 strings instead of iso8859-1 strings, wherever you see "char *", unless explicitly noted otherwise. - All Tcl strings represented in UTF-8, which is a convenient multi-byte encoding of Unicode. Variable names, procedure names, and all other values in Tcl may include arbitrary Unicode characters. For example, the Tcl command "string length" returns how many Unicode characters are in the argument string. - For Java compatibility, embedded null bytes in C strings are represented as \xC080 in UTF-8 strings, but the null byte at the end of a UTF-8 string remains \0. Thus Tcl strings once again do not contain null bytes, except for termination bytes. - For Java compatibility, "\uXXXX" is used in Tcl to enter a Unicode character. "\u0000" through "\uffff" are acceptable Unicode characters. - "\xXX" is used to enter a small Unicode character (between 0 and 255) in Tcl. - Tcl automatically translates between UTF-8 and the normal encoding for the platform during interactions with the system. - The fconfigure command now supports a -encoding option for specifying the encoding of an open file or socket. Tcl will automatically translate between the specified encoding and UTF-8 during I/O. See the directory library/encoding to find out what encodings are supported (eventually there will be an "encoding" command that makes this information more accessible). - There are several new C APIs that support UTF-8 and various encodings. See Utf.3 for procedures that translate between Unicode and UTF-8 and manipulate UTF-8 strings. See Encoding.3 for procedures that create new encodings and translate between encodings. See ToUpper.3 for procedures that perform case conversions on UTF-8 strings. 9/18/97 (enhancement) Literal objects are now shared by the ByteCode structures created when compiled different scripts. This saves up to 45% of the total memory needed for all literals. (BL) 9/24/97 (bug fixes) Fixed Tcl_ParseCommand parsing of backslash-newline sequences at start of command words. Suppressed Tcl_EvalDirect error logging if non-TCL_OK result wasn't an error. (BL) 10/17/97 (feature enhancement) "~username" now refers to the users' home directory on Windows (previously always returned failure). (CCS) 10/20/97 (implementation change) The Tcl parser has been completely rewritten to make it more modular. It can now be used to parse a script without actually executing it. The APIs for the new parser are not correctly exported, but they will eventually be exported and augmented with Tcl commands so that Tcl scripts can parse other Tcl scripts. (JO) 10/21/97 (API change) Added "flags" argument to Tcl_EvalObj, removed Tcl_GlobalEvalObj procedure. Added new procedures Tcl_Eval2 and Tcl_EvalObjv. (JO) *** POTENTIAL INCOMPATIBILITY *** 10/22/97 (API change) Renamed Tcl_ObjSetVar2 and Tcl_ObjGetVar2 to Tcl_SetObjVar2 and Tcl_GetObjVar2 (for consistency with other C APIs) and changed the name arguments to be strings instead of objects. (JO) *** POTENTIAL INCOMPATIBILITY *** 10/27/97 (enhancement) Bytecode compiler rewritten to use the new Tcl parser. (BL) 11/3/97 (New routines) Added Tcl_AppendObjToObj, which appends the string rep of one Tcl_Obj to another. Added Tcl_GetIndexFromObjStruct, which is similar to Tcl_GetIndexFromObj, except that you can give an offset between strings. This allows Tcl_GetIndexFromObjStruct to be called with a table of records which have strings in them. (SRP) 12/4/97 (enhancement) New Tcl expression parser added. Added new procedure Tcl_ParseExpr and new token types TCL_TOKEN_SUB_EXPR and TCL_TOKEN_OPERATOR. Expression compiler is reimplemented to use this parser. (BL) 12/9/97 (bug fix) Tcl_EvalObj() increments/decrements the refcount of the script object to prevent the object from deleting itself while in the middle of being evaluated. (CCS) 12/9/97 (bug fix) Memory leak in Tcl_GetsObjCmd(). (CCS) 12/11/97 (bug fix) Environment array leaked memory when compiled with Visual C++. (SS) 12/11/97 (bug fix) File events and non-blocking I/O did not work on pipes under Windows. Changed to use threads to achieve non-blocking behavior. (SS) 12/18/97 (bug fixes) Fixed segfault in "namespace import"; importing a procedure that causes a cycle now returns an error. Modified "info procs", "info args", "info body", and "info default" to return information about imported procedures as well as procedures defined in a namespace. (BL) 12/19/97 (enhancement) Added new Tcl_GetString() procedure that can be used in place of Tcl_GetStringFromObj() if the string representation's length isn't needed. (BL) 12/18/97 (bug fix) In the opt argument parsing package: if the description had only flags, the "too many arguments" case was not detected. The default value was not used for the special "args" ending argument. (DL) 1/7/98 (clean up) Moved everything not absolutly necessary out of init.tcl procs now in auto.tcl and package.tcl can be autoloaded if needed. (DL) 1/7/98 (enhancement) tcltest made at install time will search for it's init.tcl where it is, even when using virtual path compilation. (DL) 1/8/98 (os bug workaround) when needed, using a replacement for memcmp so string compare "char with high bit set" "char w/o high bit set" returns the expected value on all platforms. (DL) 1/8/98 (unix portability/configure) building from .../unix/targetName/ subdirectories and simply using "../configure" should now work fine. (DL) 1/14/98 (enhancement) Added new regular expression package that supports AREs, EREs, and BREs. The new package includes new escape characters, meta-syntax, and character classes inside brackets. Regexps involving backslashes may behave differently. (MH) *** POTENTIAL INCOMPATIBILITY *** 1/16/98 (os workaround) Under windows, "file volume" was causing chatter and/or several seconds of hanging when querying empty floppy drives. Changed implementation to call an empirically-derived function that doesn't cause this. (CCS) 1/16/98 (enhancement) Converted regular expressions to a Tcl_Obj type so their compiled form gets cached automatically. Reduced NSUBEXP from 100 to 20. (BW) 1/16/98 (documentation) Change unclear documentation and comments for functions like Tcl_TranslateFileName() and Tcl_ExternalToUtfDString(). Now it explicitly says they take an uninitialized or free DString. A DString that is "empty" or "not holding anything" could have been interpreted as one currently with a zero length, but with a large dynamically allocated buffer. (CCS) ----------------- Released 8.1a1, 1/22/98 ----------------------- 1/28/98 (new feature) Added a "-direct" optional flag to pkg_mkIndex to generate direct loading package indexes (such those you need if you use namespaces and plan on using namespace import just after package require). pkg_mkIndex still has limitations regarding package dependencies but errors are now ignored and with -direct, correct package indexes can be generated even if there are dependencies as long as the "package provide" are done early enough in the files. (DL) 1/28/98 (enhancement) Performance tuning of regexp and regsub. (CCS) 1/28/98 (bug fix) regexp and regsub with "-indices" returned the byte-offsets of the characters in the UTF-8 representation, not the character offsets themselves. (CCS) 1/28/98 (bug fix) "clock format 0 -format %Z -gmt 1" would return the local timezone string instead of "GMT" on Solaris and Windows. 1/28/98 (bug fix) Restore tty settings when closing serial device on Unix. This is good behavior when closing real serial devices, essential when closing the pseudo-device /dev/tty because the user's terminal settings would be left useless, in raw mode, when tcl quit. (CCS) 1/28/98 (bug fix) Tcl_OpenCommandChannel() was modifying the contents of the argv array passed to it, causing problems for any caller that wanted to continue to use the argv array after calling Tcl_OpenCommandChannel(). (CCS) 2/1/98 (bug fix) More bugs with %Z in format string argument to strftime(): 1. Borland always returned empty string. 2. MSVC always returned the timezone string for the current time, not the timezone string for the specified time. 3. With MSVC, "clock format 0 -format %Z -gmt 1" would return "GMT" the first time it was called, but would return the current timezone string on all subsequent calls. (CCS) 2/1/98 (bug fix) "file stat" was broken on Windows. 1. "file stat" of a root directory (local or network) or a relative path that resolved to a root directory (c:. when in pwd was c:/) was returning error. 2. "file stat" on a regular file (S_IFREG), the st_mode was sign extended to a negative int if the platform-dependant type "mode_t" was declared as a short instead of an unsigned short. 3. "file stat" of a network directory, the st_dev was incorrectly reported as the id of the last accessed local drive rather than the id of the network drive. (CCS) 2/1/98 (bug fix) "file attributes" of a relative path that resolved to a root directory was returning error. (CCS) 2/1/98 (bug fix) Change error message when "file attribute" could not determine the attributes for a file. Previously it would return different error messages on Unix vs. Windows vs. Mac. (CCS) 2/4/98 (bug fixes) Fixed several instances of bugs where the parser/compiler would reach outside the range of allocated memory. Improved the array lookup algorithm in set compilation. (DL) 2/5/98 (change) The TCL_PARSE_PART1 flag for Set/Get(Obj)Var2 C APIs is now deprecated and ignored. The part1 is always parsed when the part2 argument is NULL. This is to avoid a pattern of errors for extension writers converting from string based Tcl_SetVar() to new Tcl_SetObjVar2() and who could easily forget to provide the flag and thus get code working for normal variables but not for array elements. The performance hit is minimal. A side effect of that change is that is is no longer possible to create scalar variables that can't be accessed by tcl scripts because of their invalid name (ending with parenthesis). Likewise it is also parsed and checked to ensure that you don't create array elements of array whose name is a valid array element because they would not be accessible from scripts anyway. Note: There is still duplicate array elements parsing code. (DL) *** POTENTIAL INCOMPATIBILITY *** 2/11/98 (bug fix) Sharing objects between interps, such as by "interp eval" or "send" could cause a crash later when dereferencing an interp that had been deleted, given code such as: set a {set x y} interp create foo interp eval foo $a interp delete foo unset a Interp "foo" was gone, but "a" had a internal rep consisting of bytecodes containing a dangling pointer to "foo". Unsetting "a" would attempt to return resources back to "foo", causing a crash as random memory was accessed. The lesson is that that if an object's internal rep depends on an interp (or any other data structure) it must preserve that data in some fashion. (CCS) 2/11/98 (enhancement) The "interp" command was returning inconsistent error messages when the specified slave interp could not be found. (CCS) 2/11/98 (bug fix) Result codes like TCL_BREAK and TCL_CONTINUE were not propagating through the master/slave interp boundaries, such as "interp eval" and "interp alias". TCL_OK, TCL_ERROR, and non-standard codes like teh integer 57 work. There is still a question as to whether TCL_RETURN can/should propagate. (CCS) 2/11/98 (bug fix) TclCompileScript() was derefering memory 1 byte before start of the string to compile, looking for ']'. (CCS,DL) 2/11/98 (bug fix) Tcl_Eval2() was derefering memory 1 byte before start of the string to eval, looking for ']'. (CCS,DL) 2/11/98 (bug fix) Compiling "set a(b" was running off end of string. (CCS,DL) 2/11/98 (bug fix) Windows initialization code was dereferencing uninitialized memory if TCL_LIBRARY environment didn't exist. (CCS) 2/11/98 (bug fix) Windows "registry" command was dereferencing uninitialized memory when constructing the $errorCode for a failed registry call. (CCS) 2/11/98 (enhancement) Eliminate the TCL_USE_TIMEZONE_VAR definition from configure.in, because it was the same information as the already existing HAVE_TM_ZONE definition. The lack of HAVE_TM_ZONE is used to work around a Solaris and Windows bug where "clock format [clock sec] -format %Z -gmt 1" produces the local timezone string instead of "GMT". (CCS) 2/11/98 (bug fix) Memleaks and dereferencing of uninitialized memory in regexp if an error occurred while compiling a regular expression. (CCS). 2/18/98 (new feature) Added mutexes and thread local storage in order to make Tcl thread safe. For testing purposes, there is a testthread command that creates a new thread and an interpreter inside it. See thread.test for examples, but this script-level interface is not fixed. Each thread has its own notifier instance to manage its own events, and threads can post messages to each other's message queue. This uses pthreads on UNIX, and native thread support on other platforms. You enable this by configuring with --enable-threads. Note that at this time *Tk* is still not thread safe. Special thanks to Richard Hipp: his earlier implementation inspired this work. (BW, SS, JI) 2/18/98 (hidden feature change) The way the env() array is shared among interpreters changed. Updates to env used to trigger write traces in other interpreters. This undocumented feature is no longer implemented. Instead, variable tracing is used to keep the C-level environ array in sync with the Tcl-level env array. This required adding TCL_TRACE_ARRAY support to Tcl_TraceVar2 so that array names works properly. (BW) *** POTENTIAL INCOMPATIBILITY *** 2/18/98 (enhancement) Conditional compilation for unix systems (e.g., IRIX, SCO) that use f_bsize instead of st_blksize to determine disk block size. (CCS) 2/23/98 (bug fix) Fixed the emulation of polling selects in the threaded version of the Unix notifier. The bug was showing up on a multiprocessor as starvation of the notifier thread. (BW) ----------------- Released 8.1a2, Feb 23 1998 ----------------------- 9/22/98 (bug fix) Changed the value of TCL_TRACE_ARRAY so it no longer conflicts with the deprecated TCL_PARSE_PART1 flag. This should improve portability of C code. (stanton) 10/6/98 (bug fix) The compile procedure for "if" incorrectly attempted to match against the literal string "if", resulting in a stack overflow when "::if" was compiled. It also would incorrectly accept "if" instead of "elsif" in later clauses. (stanton) 10/15/98 (new feature) Added a "totitle" subcommand to the "string" command to convert strings to capitalize the first character of a string and lowercase all of the other characters. (stanton) 10/15/98 (bug fix) Changed regexp and string commands to properly handle case folding according to the Unicode character tables. (stanton) 10/21/98 (new feature) Added an "encoding" command to facilitate translations of strings between different character encodings. See the encoding.n manual entry for more details. (stanton) 11/3/98 (bug fix) The regular expression character classification syntax now includes Unicode characters in the supported classes. (stanton) 11/6/98 (bug fix) Variable traces were causing crashes when upvar variables went out of scope. [Bug: 796] (stanton) 11/9/98 (bug fix) "format" now correctly handles multibyte characters in %s format strings. (stanton) 11/10/98 (new feature) "regexp" now accepts three new switches ("-line", "-lineanchor", and "-linestop") that control how regular expressions treat line breaks. See the regexp manual entry for more details. (stanton) 11/17/98 (bug fix) "scan" now correctly handles Unicode characters. (stanton) 11/17/98 (new feature) "scan" now supports XPG3 position specifiers and the "%n" conversion character. See the "scan" manual entry for more details. (stanton) 11/17/98 (bug fix) The Tcl memory allocator now returns 8-byte aligned chunks of memory which improves performance on Windows and avoids crashes on other platforms. [Bug: 834] (stanton) 11/23/98 (bug fix) Applied various regular expression performance bug fixes supplied by Henry Spencer. (stanton) 11/30/98 (bug fix) Fixed various thread related race conditions. [Bug: 880 & 607] (stanton) 11/30/98 (bug fix) Fixed a number of memory overflow and leak bugs. [Bug: 584] (stanton) 12/1/98 (new feaure) Added support for Korean encodings. (stanton) 12/1/98 (feature change) Changed the Tcl_EvalObjv interface to remove the string and length arguments. *** POTENTIAL INCOMPATIBILITY with previous alpha releases *** 12/2/98 (bug fix) Fixed various bugs related to line feed translation. [Bug: 887] (stanton) 12/4/98 (new feature) Added a message catalog facility to help with localizing Tcl scripts. Thanks to Mark Harrison for contributing the initial implementation of the "msgcat" package. (stanton) 12/7/98 (bug fix) The memory allocator was failing to update the block list for large memory blocks that were reallocated into a different address. [Bug: 933] (stanton) ----------------- Released 8.1b1, Dec 10 1998 ----------------------- 12/22/98 (performance improvement) Improved the -command option of the lsort command to better use the object system for improved performance (about 5x speed up). Thanks to Syd Polk for suppling the patch. [RFE: 726] (rjohnson) 2/10/99 (bug fix) Restored the Tcl_ObjSetVar2/Tcl_ObjGetVar2 interfaces from 8.0 and renamed the Tcl_GetObjVar2/Tcl_SetObjVar2 interfaces to Tcl_GetVar2Ex and Tcl_SetVar2Ex. This should provide better compatibility with 8.0. (stanton) *** POTENTIAL INCOMPATIBILITY with previous alpha/beta releases *** 2/10/99 (bug fix) Made the eval interfaces compatible with 8.0 by renaming Tcl_EvalObj to Tcl_EvalObjEx, renaming Tcl_Eval2 to Tcl_EvalEx and restoring Tcl_EvalObj and Tcl_GlobalEvalObj interfaces so they match Tcl 8.0. (stanton) *** POTENTIAL INCOMPATIBILITY with previous alpha/beta releases *** 2/25/99 (bug fix/new feature) On Windows, the channel drivers for consoles and serial ports now completely support file events. (redman) 3/5/99 (bug fix) Integrated patches to fix various configure problems that affected HP-UX-11, 64-bit IRIX, Linux, and Solaris. (stanton) 3/9/99 (bug fix) Integrated various AIX related patches to improve support for shared libraries. (stanton) 3/9/99 (new feature) Added tcl_platform(user) to provide a portable way to get the name of the current user. (welch) 3/9/99 (new feature) Integrated the stub library mechanism contributed by Jan Nijtmans, Paul Duffin, and Jean-Claude Wippler. This feature should make it possible to write extensions that support multiple versions of Tcl simultaneously. It also makes it possible to dynamically load extensions into statically linked interpreters. This patch includes the following changes: - Added a Tcl_InitStubs() interface - Added Tcl_PkgProvideEx, Tcl_PkgRequireEx, Tcl_PkgPresentEx, and Tcl_PkgPresent. - Added va_list versions of all VARARGS functions so they can be invoked from wrapper functions. See the manual for more information. (stanton) 3/10/99 (feature change) Replaced Tcl_AlertNotifier with Tcl_ThreadAlert since the Tcl_AlertNotifier function relied on passing internal data structures. (stanton) *** POTENTIAL INCOMPATIBILITY with previous alpha/beta releases *** 3/10/99 (new feature) Added a Tcl_GetVersion API to make it easier to check the Tcl version and patch level from C. (redman) 3/14/99 (feature change) Tried to unify the TclpInitLibrary path routines to look in similar places from Windows to UNIX. The new library search path is: TCL_LIBRARY, TCL_LIBRARY/../tcl8.1, relative to DLL (Windows Only) relative to installed executable, relative to develop executable, and relative to compiled-in in location (UNIX Only.) This fix included: - Defining a TclpFindExecutable - Moving Tcl_FindExecutable to a common area in tclEncoding.c - Modifying the TclpInitLibraryPath routines. (surles) 3/14/99 (feature change) Added hooks for TclPro Wrapper to initialize the location of the encoding files and libraries. This fix included: - Adding the TclSetPerInitScript routine. - Modifying the Tcl_Init routines to evaluate the non-NULL pre-init script. - Adding the Tcl_SetdefaultEncodingDir and Tcl_GetDefaultEncodingDir routines. - Modifying the TclpInitLibrary routines to append the default encoding dir. (surles) 3/14/99 (feature change) Test suite now uses "test" namespace to define the test procedure and other auxiliary procedures as well as global variables. - Global array testConfige is now called ::test::testConfig. - Global variable VERBOSE is now called ::test::verbose, and ::test::verbose no longer works with numerical values. We've switched to a bitwise character string. You can set ::test::verbose by using the -verbose option on the Tcl command line. - Global variable TESTS is now called ::test::matchingTests, and can be set on the Tcl command line via the -match option. - There is now a ::test::skipTests variable (works similarly to ::test::matchTests) that can be set on the Tcl command line via the -match option. - The test suite can now be run in any working directory. When you run "make test", the working directory is nolonger switched to ../tests. (hirschl) *** POTENTIAL INCOMPATIBILITY *** --------------- Released 8.1b2, March 16, 1999 ---------------------- 3/18/99 (bug fix) Fixed missing/incorrect characters in shift-jis table (stanton) 3/18/99 (feature change) The glob command ignores the FS_CASE_IS_PRESERVED bit on file systesm and always returns exactly what it gets from the system. (stanton) *** POTENTIAL INCOMPATIBILITY *** 3/19/99 (new feature) Added support for --enable-64bit. For now, this is only supported on Solaris 7 64bit (SunOS 5.7) using the Sun compiler. (redman) 3/23/99 (bug fix) Fixed fileevents and gets on Windows consoles and serial devices so that non-blocking channels do not block on partial input lines. (redman) 3/23/99 (bug fix) Added a new Tcl_ServiceModeHook interface. This is used on Windows to avoid the various problems that people have been seeing where the system hangs when tclsh is running outside of the event loop. As part of this, renamed TclpAlertNotifier back to Tcl_AlertNotifier since it is public. (stanton) 3/23/99 (feature change) Test suite now uses "tcltest" namespace to define the test procedure and other auxiliary procedures as well as global variables. The previously chosen "test" namespace was thought to be too generic and likely to create conflits. (hirschl) *** POTENTIAL INCOMPATIBILITY *** 3/24/99 (bug fix) Make sockets thread safe on Windows. (redman) 3/24/99 (bug fix) Fix cases where expr would incorrect return a floating point value instead of an integer. (stanton) 3/25/99 (bug fix) Added ASCII to big5 and gb2312 encodings. (stanton) 3/25/99 (feature change) Changed so aliases are invoked at current scope in the target interpreter instead of at the global scope. This was an incompatibility introduced in 8.1 that is being removed. (stanton) *** POTENTIAL INCOMPATIBILITY with previous beta releases *** 3/26/99 (feature change) --enable-shared is now the default and build Tcl as a shared library; specify --disable-shared to build a static Tcl library and shell. *** POTENTIAL INCOMPATIBILITY *** 3/29/99 (bug fix) Removed the stub functions and changed the stub macros to just use the name without params. Pass &tclStubs into the interp (don't use tclStubsPtr because of collisions with the stubs on Solaris). (redman) 3/30/99 (bug fix) Loadable modules are now unloaded at the last possible moment during Tcl_Finalize to fix various exit-time crashes. (welch) 3/30/99 (bug fix) Tcl no longer calls setlocale(). It looks at env(LANG) and env(LC_TYPE) instead. (stanton) 4/1/99 (bug fix) Fixed the Ultrix multiple symbol definition problem. Now, even Tcl includes a copy of the Tcl stub library. (redman) 4/1/99 (bug fix) Internationalized the registry package. 4/1/99 (bug fix) Changed the implemenation of Tcl_ConditionWait and Tcl_ConditionNotify on Windows. The new algorithm eliminates a race condition and was suggested by Jim Davidson. (welch) 4/2/99 (new apis) Made various Unicode utility functions public. Tcl_UtfToUniCharDString, Tcl_UniCharToUtfDString, Tcl_UniCharLen, Tcl_UniCharNcmp, Tcl_UniCharIsAlnum, Tcl_UniCharIsAlpha, Tcl_UniCharIsDigit, Tcl_UniCharIsLower, Tcl_UniCharIsSpace, Tcl_UniCharIsUpper, Tcl_UniCharIsWordChar, Tcl_WinUtfToTChar, Tcl_WinTCharToUtf (stanton) 4/2/99 (feature change) Add new DDE package and removed the Tk send command from the Windows version. Changed DDE-based send code into "dde eval" command. The DDE package can be loaded into tclsh, not just wish. Windows only. (redman) 4/5/99 (bug fix) Changed safe-tcl so that the encoding command is an alias that masks out the "encoding system" subcommand. (redman) 4/5/99 (bug fix) Configure patches to improve support for OS/390 and BSD/OS 4.*. (stanton) 4/5/99 (bug fix) Fixed crash in the clock command that occurred with negative time values in timezones east of GMT. (stanton) 4/6/99 (bug fix) Moved the "array set" C level code into a common routine (TclArraySet). The TclSetupEnv routine now uses this API to create an env array w/ no elements. This fixes the bug caused when every environ varaible is removed, and the Tcl env variable is synched. If no environ vars existed, the Tcl env var would never be created. (surles) 4/6/99 (bug fix) Made the Env module I18N compliant. (surles) 4/6/99 (bug fix) Changed the FindVariable routine to TclpFindVariable, that now does a case insensitive string comparison on Windows, and not on UNIX. (surles) --------------- Released 8.1b3, April 6, 1999 ---------------------- 4/9/99 (bug fix) Fixed notifier deadlock situation when the pipe used to talk back notifier thread is filled with data. Found as a result of the focus.test for Tk hanging. (redman) 4/13/99 (bug fix) Fixed bug where socket -async combined with fileevent for writing did not work under Windows NT. (redman) 4/13/99 (encoding fix) Restored the double byte definition of GB2312 and added the EUC-CN encoding. EUC-CN is a variant of GB2312 that shifts the characters into bytes with the high bit set and includes ASCII as a subset. (stanton) 4/27/99 (bug fix) Added 'extern "C" {}' block around the stub table pointer declaration so the stub library can be used from C++. (stanton) --------------- Released 8.1 final, April 29, 1999 ---------------------- 4/22/99 (bug fix) Changed Windows NT socket implementation to avoid creating a communication window. This avoids the problem where the system hangs waiting for tclsh to respond to a system-wide synchronous broadcast (e.g. if you change system colors). (redman) 4/22/99 (bug fix) Added call to TclWinInit from TclpInitPlatform when building a static library since DllMain will not be invoked. This could break old code that explicitly called TclWinInit, but should be simpler in the long run. (stanton) *** POTENTIAL INCOMPATIBILITY *** 4/23/99 (bug fix) Added support for the koi8-r Cyrillic encoding. [Bug: 1771] (stanton) 4/28/99 (bug fix) Changed internal Tcl_Obj usage to avoid freeing the internal representation after the string representation has been freed. This makes it easier to debug extensions. (stanton) 4/30/99 (bug fix) Fixed a memory leak in CommandComplete. (stanton) 5/3/99 (bug fix) Fixed a bug where the Tcl_ObjType was not being set in a duplicated Tcl_Obj. [Bug: 1975, 2047] (stanton) 5/3/99 (bug fix) Changed Tcl_ParseCommand to avoid modifying eval'ed strings that are already null terminated. [Bug: 1793] (stanton) 5/3/99 (new feature) Applied Jeff Hobbs's string patch which includes the following changes: - added new subcommands: equal, repeat, map, is, replace - added -length option to "string compare|equal" - added -nocase option to "string compare|equal|match" - string and list indices can be an integer or end?-integer?. - added optional first and last index args to string toupper, et al. See the string.n manual entry for more details about the new string features. [Bug: 1845] (stanton) 5/6/99 (new feature) Added Tcl_UtfNcmp and Tcl_UtfNcasecmp to make Utf string comparision easier. (stanton) 5/7/99 (bug fix) Improved OS/390 support. [Bug: 1976, 1997] (stanton) 5/12/99 (bug fix) Changed Windows initialization code to avoid using GetUserName system call in favor of the env(USERNAME) variable. This provides a significant startup speed improvement. (stanton) 5/12/99 (bug fix) Replaced the per-interpreter regexp cache with a per-thread cache. Changed the Regexp object to take advantage of this extra cache. Added a reference count to the TclRegexp type so regexps can be shared by multiple objects. Removed the per-interp regexp cache from the interpreter. Now regexps can be used with no need for an interpreter. This set of changes should provide significant speed improvements for many Tcl scripts. [Bug: 1063] (stanton) 5/14/99 (bug fix) Durining initialization on Unix, Tcl now extracts the encoding subfield from the LANG/LC_ALL environment variables in cases where the locale is not found in the built-in locale table. It also attempts to initialize the locale subsystem so X11 is happy. [Bug: 1989] (stanton) 5/14/99 (bug fix) Applied the patch to fix 100-year and 400-year boundaries in leap year code, from Isaac Hollander. [Bug: 2066] (redman) 5/14/99 (bug fix) Fixed a crash caused by a failure to reset the result before evaluating the test expression in an uncompiled for statement. (stanton) 5/18/99 (bug fix) Modified initialization code on Windows to avoid inherenting closed or invalid channels. If the standard input is anything other than a console, file, serial port, or pipe, then we fall back to the standard Tk window console. (stanton) 5/19/99 (bug fix) Added an extern "C" block around the entire tcl.h header file to avoid C++ linkage issues. (redman) 5/19/99 (new feature) Applied Jeff Hobb's patch to add Tcl_StringCaseMatch to support case insensitive glob style matching and Tcl_UniCharIs* character classification functions. (stanton) 5/20/99 (bug fix) Added the directory containing the executuble and the ../lib directory relative to that to the auto_path variable. (redman) --------------- Released 8.1.1, May 25, 1999 ---------------------- 5/21/99 (bug fix) Fixed launching command.com on Win95/98, no longer hangs. [Bug: 2105] (redman) 5/28/99 (bug fix) Fixed bug where dde calls were being passed an invalid dde handle. [Bug: 2124] (stanton) 6/1/99 (bug fix) Small configure.in patches. [Bug: 2121] (stanton) 6/1/99 (bug fix) Applied latest regular expression patches to fix an infinite loop bug and add support for testing whether a string could match with additional input. [Bug: 2117] (stanton) 6/2/99 (bug fix) Fixed incorrect computation of relative ordering in Utf case-insensitive comparison. [Bug: 2135] (stanton) 6/3/99 (bug fix) Fxied bug where string equal/compare -nocase reported wrong result on null strings. [Bug: 2138] (stanton) 6/4/99 (new feature) Windows build now uses Cygwin tools plus GNU make and autoconf to build static/dynamic and debug/nodebug. (stanton) 6/7/99 (new feature) Optimized string index, length, range, and append commands. Added a new Unicode object type. (hershey) 6/8/99 (bug fix) Rolled back Windows socket driver to 8.1.0 version. (stanton) 6/9/99 (new feature) Added Tcl_RegExpMatchObj and Tcl_RegExpGetInfo to public Tcl API, these functions are needed by Expect. Changed tools/genStubs.tcl to always write output in LF mode. (stanton) 6/14/99 (new feature) Merged string and Unicode object types. Added new public Tcl API functions: Tcl_NewUnicodeObj, Tcl_SetUnicodeObj, Tcl_GetUnicode, Tcl_GetUniChar, Tcl_GetCharLength, Tcl_GetRange, Tcl_AppendUnicodeToObj. (hershey) 6/16/99 (new feature) Changed to conform to TEA specification, added tcl.m4 and aclocal.m4 macro libraries for configure. (wart) 6/17/99 (new feature) Added new regexp interfaces: -expanded, -line, -linestop, and -lineanchor switches. Renamed Tcl_RegExpMatchObj to Tcl_RegExpExecObj and added new Tcl_RegExpMatchObj that is equivalent to Tcl_RegExpMatch. Added public macros for regexp flags. Added REG_BOSONLY flag to allow Expect to iterate through a string and only find matches that start at the current position within the string. (stanton) 6/21/99 (bug fix) Fixed memory leak in TclpThreadCreate where thread attributes were not being released. [Bug: 2254] (stanton) 6/23/99 (new feature) Updated Unicode character tables to reflect Unicode 2.1 data. (stanton) 6/25/99 (new feature) Fixed bugs in non-greedy quantifiers for regular expression code. (stanton) 6/25/99 (new feature) Added initial implementation of new Tcl test harness package. Modified test files to use new tcltest package. (jenn) 6/26/99 (new feature) Applied patch from Peter Hardie to add poke command to dde and changed the dde package version number to 1.1. (redman) 6/28/99 (bug fix) Applied patch from Peter Hardie to fix problem in Tcl_GetIndexFromObj() when the key being passed is the empty string. [Bug: 1738] (redman) 6/29/99 (new feature) Added options to tcltest package: -preservecore, -limitconstraints, -help, -file, -notfile, and flags. (jenn) 7/3/99 (new feature) Changed parsing of variable names to allow empty array names. Now "$(foo)" is a variable reference. Previously you had to use something line $::(foo), which is slower. This change was requested by Jean-Luc Fontaine for his STOOOP package. (welch) 7/3/99 (new feature) Added Tcl_SetNotifier (public API) and associated hook points in the notifiers to be able to replace the notifier calls at runtime. The Xt notifier and test program use this hook. (welch) 7/3/99 (new feature) Added a new variant of the "Trf core patch" from Andreas Kupries that adds new C APIs Tcl_StackChannel, Tcl_UnstackChannel, and Tcl_GetStackedChannel. This allows the Trf extension to work without applying patches to the Tcl core. (welch) 7/6/99 (new feature) Added -timeout option to http.tcl to handle timeouts that occur during connection attempts to hosts that are down. (welch) 7/6/99 (bug fix) Applied new implementation of the Windows serial port driver from Rolf Schroedter that fixes reading only one byte from the port at a time. Uses polling every 10ms to implement fileevents. [Bug: 1980 2217] (redman) 7/8/99 (bug fix) Applied fix for bug in DFA state caching under lookahead conditions (regular expressions). [Bug: 2318] (stanton) 7/8/99 (bug fix) Fixed bug in string range bounds checking code. (stanton) --------------- Released 8.2b1, July 14, 1999 ---------------------- 7/16/99 (bug fix) Added Tcl_SetNotifier to stub table. [Bug: 2364] Added check for Alpha/Linux to correct the IEEE floating point flag, patch from Don Porter. (redman) 7/20/99 (bug fix) Merged 8.0.5 code to handle tcl_library properly, also fixed a bug that caused TCL_LIBRARY to be ignored. (hershey) 7/21/99 (bug fix) Implemented modified socket driver for Windows that uses a thread to manage the socket event window. Code works the same on all supported versions of Windows and was based on original 8.1.0 code. [Bug: 2178 2256 2259 2329 2323 2355] (redman) 7/21/99 (new feature) Applied patch from Rolf Schroedter to add -pollinterval option to fconfigure for Windows serial ports. Allows the maxblocktime to be modified to control how often serial ports are checked for fileevents. Also added documentation for \\.\comX notation for opening serial ports on Windows. (redman) 7/21/99 (bug fix) Changed APIs in stub tables to use "unsigned long" instead of the platform-specific "size_t", primarily after SunOS 4 users could no longer compile. (redman) 7/22/99 (bug fix) Fixed crashing during "array set a(b) {}". [Bug: 2427] (redman) 7/22/99 (bug fix) The install-sh script must be given execute permissions prior to running. [Bug: 2413] (redman) 7/22/99 (bug fix) Applied patch from Ulrich Ring to remove ANSI-style prototypes in the code. [Bug: 2391] (redman) 7/22/99 (bug fix) Added #if blocks around #includes of sys/*.h header files, to allow an extension author on Windows to use the MetroWerks compiler. [Bug: 2385] (redman) 7/22/99 (bug fix) Fixed running the safe.test test suite, one change to the Windows Makefile.in to fix paths and another in safe.test to check for the tcl_platform(threaded) variable properly. (redman) 7/22/99 (bug fix) Fixed hanging in new Win32 socket driver with threads enabled. (redman) 7/26/99 (bug fix) Fixed terminating of helper threads by holding any mutexes from the primary thread while waiting for the helper thread to terminate. Fixes dual-CPU WinNT hangs, only one rare sporadic hang that still exists with dual-CPU WinNT. Also fixed test cases so that they would not depend as much on timing for dual-CPU WinNT. (redman) 7/27/99 (bug fix) Some test suite cleanup. (jenn) 7/29/99 (bug fix) Applied patch to fix typo in .SH NAME line in doc/Encoding.n [Bug: 2451]. Applied patch to avoid linking pack.n to pack-old.n [Bug: 2469]. Patches from Don Porter. (redman) 7/29/99 (bug fix) Allow tcl to open CON and NUL, even for redirection of std channels. [Bug: 2393 2392 2209 2458] (redman) 7/30/99 (bug fix) Applied fixed Trf patch from Andreas Kupries. [Bug: 2386] (hobbs) 7/30/99 (bug fix) Fixed bug in info complete. [Bug: 2383 2466] (hobbs) 7/30/99 (bug fix) Applied patch to fix threading on Irix 6.5, patch provided by James Dennett. [Bug: 2450] (redman) 7/30/99 (bug fix) Fixed launching of 16bit applications on Win9x from wish. The command line was being primed with tclpip82.dll, but it was ignored later. 7/30/99 (bug fix) Added functions to stub table, patch provided by Jan Nijtmans. [Bug: 2445] (hobbs) 8/1/99 (bug fix) Changed Windows socket driver to terminate threads by sending a message to the window rather than calling TerminateThread(), which seems to leak about 4k from the helper thread's stack space. (redman) --------------- Released 8.2b2, August 5, 1999 ---------------------- 8/4/99 (bug fix) Applied patches supplied by Henry Spencer to greatly enhance performance of certain classes of regular expressions. [Bug: 2440 2447] (stanton) 8/5/99 (doc change) Made it clear that tcl_pkgPath was not set for Windows. [Bug: 2455] (hobbs) 8/5/99 (bug fix) Fixed reference to bytes that might not be null terminated in tclLiteral.c. [Bug: 2496] (hobbs) 8/5/99 (bug fix) Fixed typo in http.tcl. [Bug: 2502] (hobbs) 8/9/99 (bug fix) Fixed test suite to handle larger integers (64bit). Patch from Don Porter. (hobbs) 8/9/99 (documentation fix) Clarified Tcl_DecrRefCount docs [Bug: 1952]. Clarified array pattern docs [Bug: 1330]. Fixed clock docs [Bug: 693]. Fixed formatting errors [Bug: 2188 2189]. Fixed doc error in tclvars.n [Bug: 2042]. (hobbs) 8/9/99 (bug fix) Fixed path handling in auto_execok [Bug: 1276] (hobbs) 8/9/99 (internal api change) Removed the TclpMutexLock and TclpMutexUnlock APIs and added a new exported api, Tcl_GetAllocMutex. These APIs are all for the mutex used in the simple memory allocators. By making this change we are able to substitute different implementations of the thread-related APIs without having to recompile the Tcl core. (welch) 8/9/99 (new C API) Tcl_GetChannelNames returns a list of open channel names in the interpreter result. Still no Tcl-level version of this, but server-like applications can use this to clean up files without deleting interpreters. (welch) 8/9/99 (bug fix) Traces were not firing on "info exists", which used to happen in Tcl 7.6 and earlier. An "info exists" now fires a read trace, if defined. This makes it possible to fully implement variables that are defined via traces. (welch) 8/10/99 (bug fix) Fixed Brent's changes so that they work on Windows. (redman) --------------- Released 8.2b3, August 11, 1999 ---------------------- 8/12/99 (Mac) Rearrange projects in tclMacProjects.sea.hqx so that the build directory is separate from the sources. (Jim Ingham) 8/12/99 (bug fix) Fixed bug in Tcl_EvalEx where the termOffset was not being updated in cases where the evaluation returned a non TCL_OK error code. [Bug: 2535] (stanton) --------------- Released 8.2.0, August 17, 1999 ---------------------- 9/21/99 (config fixes) fixed several AIX configuration issues. gcc and threading may still cause problems on AIX. (hobbs) 9/21/99 (bug fix) fixed expr double-eval problem. [Bug: 732] (hobbs) 9/21/99 (bug fix) fixed static buffer overflow problem. [Bug: 2483] (hobbs) 9/21/99 (bug fix) fixed end-int linsert interpretation. [Bug: 2693] (hobbs) 9/21/99 (bug fix) fixed bug when setting array in non-existent namespace. [Bug: 2613] (hobbs) --- Released 8.2.1, October 04, 1999 --- See ChangeLog for details --- 10/30/99 (feature enhancement) new regexp engine from Henry Spencer was patched in - should greatly reduce stack space usage. (spencer) 10/30/99 (bug fix) fixed Purify reported memory leaks in findexecutable test command, TclpCreateProcess on Unix, in handling of C environ array, and in testthread code. No more known (reported) mem leaks for Tcl built using gcc on Solaris 2.5.1. Also none reported for Tcl on NT (using Purify 6.0). (hobbs) 10/30/99 (bug fix) fixed improper bytecode handling of 'eval {set array($unknownvar) 5}' (also for incr) (hobbs) 10/30/99 (bug fix) fixed event/io threading problems by making triggerPipe non-blocking (nick kisserbeth) 10/30/99 (bug fix) fixed Tcl_AppendStringsToObjVA and Tcl_AppendResultVA to only iterates once over the va_list (avoiding non-portable memcpy). (joe english, hobbs) 10/30/99 (bug fix) removed savedChar trick in tclCompile.c that appeared to be causing a segv when the literal table was released. [Bug: 2459, 2515] (David Whitehouse) 10/30/99 (bug fix) fixed [string index] to return ByteArrayObj when indexing into one (test case string-5.16) [Bug: 2871] (hobbs) 10/30/99 (bug fix) fixes for mac UTF filename handling (ingham) --- Released 8.2.2, November 04, 1999 --- See ChangeLog for details --- 11/19/99 (feature enhancement) bug fixes for http package as well as patch required by TLS (SSL) extension that adds http::(un)register and -type to http::geturl. Up'd http pkg version to 2.2. 11/19/99 (bug fix) removed extra decr of numLevels in Tcl_EvalObjEx that could cause seg fault (mjansen@wendt.de) 11/19/99 (bug fixes) numerous minor big fixes, including correcting the installation of the koi8-r encoding and tcltest1.0 on Windows. 11/30/99 (bug fix) fixes scan where %[..] didn't match anything 11/30/99 (bug fix) fixed setting of isNonBlocking flag in PipeBlockModeProc so you can now close a non-blocking channel without waiting. 11/30/99 (bug work-around) prevented the unloading of DLLs for Unix in TclFinalizeLoad. This stops the seg fault on exit that some users would see (ie with oratcl) when using DLLs that do nasty things like register atexit handlers. 12/07/99 (bug fix) fixes for 'expr + {[incr]}' and 'expr + {[error]}' cases (different causes). --- Released 8.2.3, December 16, 1999 --- See ChangeLog for details --- 1999-09-14 (feature enhancement) added -start switch to regexp and regsub. 1999-09-15 (feature enhancement) add 'array unset' command. 1999-09-15 (feature enhancement) rewrote runtime libraries to use new string functions 1999-08-18 (feature enhancement) added 'file channels' command, along with Tcl_GetChannelNames(Ex) public C APIs. 1999-10-19 (feature enhancement) enhanced tcltest package 1999-09-16 (feature enhancement) added -milliseconds switch to 'clock clicks' 1999-10-28 (feature enhancement) added support for inline 'scan' 1999-10-28 (feature enhancement) added support for touch functionality by extendeding 'file atime' and 'file mtime' to take an optional time argument 1999-11-24 (feature enhancement) added 'fconfigure $sock -lasterror' command to Windows to query the last error received on a serial socket. 1999-11-30 (bug fix) fixed handling of %Z on NT for timezones that don't have DST 1999-12-03 (feature enhancement) improved error message in bad octal cases and improper use of comments. (hobbs) 1999-12-07 (bug fix) fixed Tcl_ScanCountedElement to not step beyond the end of the counted string 1999-12-09 (feature enhancement) removed all references to 16 bit compatibility code for Windows (hobbs) 1999-12-10 (bug fix) removed check for vfork - Tcl now uses only fork in exec. (hobbs) 1999-12-10 (optimization) changed Tcl_ConcatObj to return a list object when it receives all pure list objects as input (used by 'concat'), added optimizations in Tcl_EvalObjEx for pure list case, and optimized INST_TRY_CVT_TO_NUMERIC in TclExecuteByteCode for boolean objects. (oakley, hobbs) 1999-12-12 (feature enhancement) enhanced glob command with -type, -path, -directory and -join switches. (darley, hobbs) 1999-12-21 (bug fix) changed CreateThread to _beginthreadex and ExitThread to _endthreadex to prevent 4K mem leak (gravereaux) 1999-12-21 (bug fix) fixed applescript for I18N 1999-12-21 (feature enhancement) added -unique option to lsort (hobbs) 1999-12-21 (bug fix) changed thread ids to longs (for 64bit systems) --- Released 8.3b1, December 22, 1999 --- See ChangeLog for details --- 2000-01-10 (feature enhancement) clock scan now supports the common ISO 8601 date/time formats. See docs for details. (melski) 2000-01-10 (bug fix) prevented \ooo substitution from accepting non-octal digits [Bug: 3975] (hobbs) 2000-01-11 (bug fix) fixed improper handling of DST by clock when using relative times (like "1 month" or "tomorrow"). (melski) 2000-01-12 (bug fix) improved build support for Tru64 v5, NetBSD and Reliant Unix (hobbs) 2000-01-12 (bug fix) made imported commands also import their compile procedure (duffin) 2000-01-12 (bug fix) fixed 'info procs ::namesp::*' behavior to return procs in a namespace (dejong) 2000-01-12 (feature enhancement) added support for setting permissions symbolicly (like chmod) in [file attributes $file -permissions ...] (schoebel) 2000-01-13 (bug fix) fixed lsort -dictionary problem when sorting characters between 'Z' and 'a' (flawed upper/lower comparison logic) (melski) --- Released 8.3b2, January 13, 2000 --- See ChangeLog for details --- 2000-01-14 (feature enhancement) clock format %Q added, clock scan updated 2000-01-20 (bug fix) corrected complex array elem compiling (Spjuth) 2000-01-20 (bug fix) made [info body] always return a string type arg, to prevent possible misuse of bytecodes in the wrong context (hobbs) 2000-01-20 (bug fixes) several fixes to variable handling to prevent possible crashes, and further definition of correct behavior (melski) 2000-01-25 (bug fixes) improved QNX, Ultrix and OSF1 (Tru64) config and compatibility (edge, furukawa) 2000-01-25 (bug fix) fixed mem leak when calling lsort with a bad -command argument (hobbs) 2000-01-27 (feature enhancement) package mechanism overhaul: changed behavior of pkg_mkIndex to do -direct by default, added -lazy option. Fixed pkg_mkIndex to handle odd proc names and auto_mkIndex to use platform independent file paths. Other fixes for odd package quirks. Added ::pkg namespace and ::pkg::create helper function. (melski) 2000-02-01 (bug fix) fixed problem where http POST would send one extra newline (vasiljevic) 2000-02-02 (feature enhancement) added docs for new regexp -inline and -all switches. (hobbs) 2000-02-08 (bug fix) corrected handling of "next monthname" in clock scan (melski) 2000-02-09 (bug fix) restored Mac source to build readiness and prevented mac panic from an error when closing an async socket (steffen, ingham) 2000-02-10 (feature enhancement) improved error reporting for failed loads on Windows (dejong, hobbs) --- Released 8.3.0, February 10, 2000 --- See ChangeLog for details --- 2000-03 (bug fixes, feature enhancement) overhaul of http package for proper handling of async callbacks (new options), version is now at 2.3 (tamhankar, welch) 2000-03 (performance enhancement) speedup in Windows filename handling (newman) and ==/!= empty string in exprs. (hobbs) 2000-03-27 (bug fix) added uniq'ing test to namespace export list to prevent unnecessary mem growth (hobbs) 2000-03-29 (bug fix) fixed mem leak when repeatedly sourcing the same bytecompiled (tbc) code repeatedly across different interpreters (hobbs) 2000-03-29 (config enhancement) improved build support for gcc/mingw on Windows (nijtmans, hobbs) and added RPM target (melski) 2000-03-31 (bug fix) corrected data encoding problem when using "exec << $data" construct (melski) 2000-04 (feature enhancement) overhaul of threading mechanism to better support tcl level thread command (new APIs Tcl_ConditionFinalize, Tcl_MutexFinalize, Tcl_CreateThread, etc, all docs in Thread.3). (kupries, graveraux) This enables the tcl level thread extension. (welch) 2000-04-10 (bug fix) fixed infinite loop case in regexp -all (melski) 2000-04-13 (config enhancement) added support for --enable-64bit-vis Sparc target. (hobbs) 2000-04-18 (bug fix) moved tclLibraryPath to thread-local storage to fix possible race condition on MP machines (hobbs) 2000-04-18 (config enhancement) added MacOS X build target and tclLoadDyld.c dl type. (sanchez) 2000-04-23 (bug fix) several Mac socket fixes (ingham) 2000-04-24 (bug fix) fixed hang in threaded Unix case when backgrounded exec process was running (dejong) --- Released 8.3.1, April 26, 2000 --- See ChangeLog for details --- 2000-04-26 (doc fix) updated/added documentation for many API's and commands (melski) 2000-05-02 (feature enhancement) added support for joinable threads; extended API's for channels to allow channels to move between threads (kupries) 2000-05-02 (feature enhancement) changed error return for procedures with incorrect args to be like the Tcl_WrongNumArgs API, with a "wrong # args: ..." message printed, with an args list (hobbs) 2000-05-08 (feature enhancement) added [array statistics] command 2000-05-08 (performance enhancement) rewrote Tcl_StringCaseMatch algorithm for better performance; this affects the [string match] command; added "eq" and "ne" operands to expr, for testing string equality and inequality (hobbs) 2000-05-09 (feature enhancement) extended [lsearch] to support sorted list searches and typed list searches (melski) 2000-05-10 (feature enhancement) added [namespace exists] command (darley) 2000-05-18 (build enhancement) added support for mingw compile env and cross-compiling (dejong) 2000-05-18 (bug fix) corrected clock grammar to properly handle the "ago" keyword when it follows multiple relative unit specifiers (melski) 2000-05-22 (compile fix) type cast cleanups (dejong) 2000-05-23 (performance enhancement) added byte-compiled implementation of [return] command and [string] command (melski) 2000-05-26 (performance enhancement) extended byte-compiled [string] command with support for [string compare/index/match] (hobbs) 2000-05-27 (feature enhancement) added ability to set [info script] return value ([info script ?newFileName?]) (welch) 2000-05-31 (feature enhancement) added support for regexp and exact pattern matching for [array names] (gazetta) 2000-05-31 (feature enhancement) added -nocomplain and -- flags to [unset] to allow for silent unset operation (hobbs) --- Released 8.4a1, June 6, 2000 --- See ChangeLog for details --- 2000-05-29 (bug fix) corrected resource cleanup in http error cases. Improved handling of error cases in http. (tamhankar) 2000-07 (feature rewrite) complete rewrite of the Tcl IO channel subsystem to correct problems (hangs, core dumps) with the initial stacked channel implementation. The new system has many more tests for robustness and scalability. There are new C APIs (see Tcl_CreateChannel), but only stacked channel drivers are affected (ie: TLS, Trf, iogt). The iogt extension has been added to the core test code to test the system. (hobbs, kupries) **** POTENTIAL INCOMPATABILITY **** 2000-07 (build improvements) cleanup of the makefiles and configure scripts to correct support for building under gcc for Windows. (dejong) 2000-08-07 (bug fix) corrected sizeof error in Tcl_GetIndexFromObjStruct. (perkins) 2000-08-07 (bug fix) correct off-by-one error in HistIndex, which was causing [history redo] to start its search at the wrong event index. (melski) 2000-08-07 (bug fix) corrected setlocale calls for XIM support and locale issues in startup. (takahashi) 2000-08-07 (bug fix) correct code to handle locale specific return values from strftime, if any. (wagner) 2000-08-07 (bug fix) tweaked grammar to properly handle the "ago" keyword when it follows multiple relative unit specifiers, as in "2 days 2 hours ago". (melski) 2000-08-07 (doc fixes) numerous doc fixes to correct SEE ALSO and NAME sections. (english) 2000-08-07 (bug fix) new man pages memory.n, TCL_MEM_DEBUG.3, Init.3 and DumpActiveMemory.3. (melski) --- Released 8.3.2, August 9, 2000 --- See ChangeLog for details --- 2000-06 thru 2000-11 (build improvements) Added support for mingw (gcc on Windows), AIX-5 and Win64 builds (dejong, hobbs) 2000-06-23 (feature enhancement) ability to use Tcl_Obj *s as hash keys (duffin) 2000-06-29 (new features) added [mcmax] and [mcmset] and extended [unknown] in msgcat package (duperval, krone, nelson) => msgcat 1.1 2000-08 thru 2000-09 added tclPlatDecls.h to default install (melski, hobbs) 2000-08-24 (new feature) Enhanced trace syntax to add: trace {add|remove|list} {variable|command} name ops command (darley, melski) 2000-09-06 (cross-platform feature) Set ^Z (\32) as default EOF char. (hobbs) 2000-09-07 partial fix for bug 2460 to prevent exec mem leak on Windows for the common case (gravereaux) 2000-09-14 Improved string allocation growth for large strings (hintermayer, melski) 2000-09-14 New non-panic'ing mem allocation functions Tcl_AttemptAlloc, Tcl_AttemptRealloc, Tcl_AttemptSetObjLength (melski) 2000-09-20 (new features) completely new, enhanced syntax in tcltest package. Backwards compatable with tcltest v1. (hom) => tcltest 2.0 2000-09-27 (bug fix) fixed a bug introduced by a partial fix in 8.3.2 that didn't set nonBlocking correctly when resetting the flags for the write side (mem leak) Correct mem leak in channels when statePtr was released (hobbs) 2000-09-29 (bug fix) corrected reporting of space parity on Windows (Eason) 2000-10-06 (bug fix) corrected [file channels] to only return channels in the current interpreter (hobbs) 2000-10-20 (performance enhancement) call stat only when necessary in 'glob' to speed up command significantly in base cases (hobbs) 2000-10-27 Fixed mem leak in Tcl_CreateChannel. Re-purified core via test suites. (hobbs) 2000-10-30 (new feature) add "ja_JP.eucJP" map to "euc-jp" encoding (takahashi) 2000-11-01 (mem leak) Corrected excessive mem use of info exists on a non-existent array element (hobbs) 2000-11-02 (bug fix) Corrected sharing of tclLibraryPath in threaded environment (gravereaux) 2000-11-03 (new feature) Tcl_SetMainLoop enables defining an event loop for tclsh. This enables Tk as a truly loadable package. (hobbs) --- Released 8.4a2, November 3, 2000 --- See ChangeLog for details --- 2000-09-27 (bug fix) fixed a bug introduced by a partial fix in 8.3.2 that didn't set nonBlocking correctly when resetting the flags for the write side (mem leak) Correct mem leak in channels when statePtr was released (hobbs) 2000-09-29 (bug fix) corrected reporting of space parity on Windows (Eason) 2000-10-06 (bug fix) corrected [file channels] to only return channels in the current interpreter (hobbs) 2000-10-20 (performance enhancement) call stat only when necessary in 'glob' to speed up command significantly in base cases (hobbs) 2000-11-01 (mem leak) Corrected excessive mem use of info exists on a non-existent array element (hobbs) 2000-11-02 (bug fix) Corrected sharing of tclLibraryPath in threaded environment (gravereaux) 2000-11-23 (mem leak) fixed potential memory leak in error case of lsort (fellows) 2000-12-09 (feature enhancement) changed %o and %x to use strtoul instead of strtol to correctly preserve scan<>format conversion of large integers (hobbs) Fixed handling of {!} in expressions (hobbs, fellows) 2000-12-14 (feature enhancement) improved (s)rand for 64-bit platforms (porter) 2001-01-04 (bug fix) corrected parsing of $tcl_libPath at startup on Windows (porter) 2001-01-30 (bug fix) Fixed possible hangs in fcopy. (porter) 2001-02-15 (performance enhancement) improved efficiency of [string split] (fellows) 2001-03-13 (bug fix) Correctly possible memory corruption in string map {} $str (fellows) 2001-03-29 (bug fix) prevent potential race condition and security leak in tmp filename creation on Unix. (max) Fixed handling of timeout for threads (corrects excessive CPU usage issue for Tk on Unix in threaded Tcl environment). (ruppert) 2001-03-30 (bug fix) corrected Windows memory error on exit (wu) Fixed race condition in readability of socket on Windows. 2001-04-03 (doc fixes) numerous doc corrections and clarifications. Update of READMEs. 2001-04-04 (build improvements) redid Mac build structure (steffen) Corrected IRIX-5* configure (english). Added support for AIX-5 (hobbs). Added support for Win64 (hobbs). --- Released 8.3.3, April 6, 2001 --- See ChangeLog for details --- 2000-11-23 (new feature)[TIP 7] higher resolution timer on Windows (kenny) 2001-01-18 (new feature) Tcl_InitHashTableEx renamed to Tcl_InitCustomHashTable (kupries) 2001-03-30 (new feature)[TIP 10] support for thread-aware/hot channels (kupries) 2001-04-06 (new feature)[219280] auto-loading hidden in ::errorInfo (porter) 2001-04-07 (bug fix)[406709] corrected panic when extra items left on the byte compiler execution stack (sofer) 2001-04-09 (bug fix)[219136,232558] improved use of thread-safe functions in unix time commands (kenny) 2001-04-24 (new feature)[TIP 27] started CONST-ification of the Tcl APIs (kenny) 2001-05-03 (new feature) [auto_import] now matches patterns like [namespace import], not like [string match] (porter) **** POTENTIAL INCOMPATABILITY **** 2001-05-07 (new feature)[416643] distinct srand() seed per interp (sofer) 2001-05-15 (new feature) new Tcl_GetUnicodeFromObj API (hobbs) 2001-05-16 (performance enhancement) byte-compiled versions of [lappend], [append] simple cases (hobbs) 2001-05-23 (new feature) added ISO-8859-15 and koi8-u encodings, updated other encoding tables based on http://www.unicode.org/Public/MAPPINGS/ (kuhn) 2001-05-27 (new feature) updated to Unicode 3.1.0 data set (still using 16 bits for Tcl_UniChar though) (hobbs) 2001-05-30 (new feature)[TIP 15] Tcl_GetMathFuncInfo, Tcl_ListMathFuncs, Tcl_InfoObjCmd, InfoFunctionsCmd APIs (fellows) 2001-06-08 (bug fix,feature enhancement)[219170,414936] all Tcl_Panic definitions brought into agreement (porter) 2001-06-12 (bug fix)[219232] regexp returned non-matching sub-pairs to have index pair {-1 -1} (fellows) 2001-06-27 (bug fix)[217987] corrected backslash substitution of non-ASCII characters. (hobbs, riefenstahl) 2001-06-28 (bug fix)[231259] failure to re-compile after cmd shadowing (sofer) 2001-07-02 (bug fix)[227512] corrected [concat] treatment of UTF-8 strings (hobbs, barras) 2001-07-12 (new feature)[TIP 36] Tcl_SubstObj API (fellows) 2001-07-16 (bug fix) corrected thread-enabled pipe closing on Windows (hobbs, jsmith) 2001-07-18 (bug fix)[427196] corrected memory overwrite error when buffer size of a channel is changed after channel use has already begun (kupries, porter) 2001-07-31 (new feature)[TIP 17] TclFS* APIs provide new virtual file system. This includes the addition of 'file normalize', 'file system', 'file separator' and 'glob -tails' (darley) 2001-08-06 (bug fix) removed use of tmpnam in TclpCreateTempFile on Unix (lim) * improved build support for IRIX, GNU HURD, Mac OS 9 and OS X * configure scripts revamped for better support of cygwin and gcc on Windows (mdejong) * corrected several minor errors noted by Purify (hobbs) --- Released 8.4a3, August 6, 2001 --- See ChangeLog for details --- 2001-06-27 (bug fix)[217987] corrected backslash substitution of non-ASCII characters. (hobbs, riefenstahl) 2001-06-28 (bug fix)[231259] failure to re-compile after cmd shadowing (sofer) 2001-07-02 (bug fix)[227512] corrected [concat] treatment of UTF-8 strings (hobbs, barras) 2001-07-16 (bug fix) corrected thread-enabled pipe closing on Windows (hobbs, jsmith) 2001-07-18 (bug fix)[427196] corrected memory overwrite error when buffer size of a channel is changed after channel use has already begun (kupries, porter) 2001-08-06 (bug fix)[442665] corrected object reference counting in [gets] (jikamens) 2001-08-06 (new feature) added GNU (HURD) configuration target. (brinkmann) 2001-08-07 (bug fix)[406709] corrected panic when extra items left on the byte compiler execution stack (see test foreach-5.5) (sofer, tallneil, jstrot) 2001-08-08 (new features) updated packages msgcat 1.1.1, opt 0.4.3, tcltest 1.0.1, dependencies checked (porter) 2001-08-20 (new feature)[452217] http 2.3.2: include port number in Host: header to comply with HTTP/1.1 spec (RFC 2068) (hobbs, tils) 2001-08-23 (new feature) added QNX-6 build support (loverso) 2001-08-23 (bug fix) corrected handling of spaces in path name passed to [exec] on Windows (kenpoole) 2001-08-24 (bug fix) corrected [package forget] stopping on non-existent package (porter) 2001-08-24 (bug fix) corrected construction of script library search path relative to executable (porter) 2001-08-24 (bug fix) [auto_import] now matches patterns like [namespace import], not like [string match] (porter) **** POTENTIAL INCOMPATABILITY **** 2001-08-27 (new feature) added Tcl_SetMainLoop() to enable loading Tk as a true package (hobbs) 2001-08-30 (bug fix) build support for Crays (andreasen) 2001-09-01 (bug fix) rewrite of Tcl_Async* APIs to better manage thread cleanup (gravereaux) 2001-09-06 (new feature) http 2.4: honor the Content-encoding and charset parameters; add -binary switch for forcing the issue (hobbs, saoukhi, orwell) => http 2.4 2001-09-06 (performance enhancement) rewrite of file I/O flush management on Windows. Approximately 100x speedup for some operations. (kupries, traum) 2001-09-10 (bug fix) corrected finalization error in TclInExit (darley) 2001-09-10 (bug fix) protect against alias loops (hobbs) 2001-09-12 (bug fix) added missing #include in tclLoadShl.c (techentin) 2001-09-12 (bug fix) script library path construction on Windows no longer uses registry, nor adds the current working directory to the path (porter) 2001-09-12 (bug fix) correct bugs in compatibility strtod() (porter) 2001-09-13 (bug fix) Tcl_UtfPrev now returns the proper location when the middle of a UTF-8 byte is passed in (hobbs) 2001-09-19 (bug fix) [format] and [scan] corrected for 64-bit machines (rmax) 2001-09-19 (new feature) --enable-64-bit support for HP-11. (hobbs) 2001-09-19 (new feature) native memory allocator now default on Windows (hobbs) 2001-09-20 (new feature) WIN64 support and extra processor definitions (hobbs, mstacy) 2001-09-26 (bug fix) corrected potential deadlock in channels that do not provide a BlockModeProc (kupries, kogorman) 2001-10-03 (new feature) WIN64 build support (hobbs) 2001-10-03 (bug fix) correction in thread finalization (rbrunner) 2001-10-04 (new feature) updated encodings with latest mappings from www.unicode.org (hobbs) 2001-10-11 (bug fix) corrected cleanup of self-referential bytecodes at interpreter deletion (sofer, rbrunner) 2001-10-16 (new feature) config support for MacOSX / Darwin (steffen) 2001-10-16 (new feature, Mac) change in binary extension format from MachO bundles to standard .dylib dynamic libraries like on other unices. *** POTENTIAL INCOMPATIBILITY *** 2001-10-18 (bug fix) corrected off-by-one-day error in clock scan with relative months and years during swing hours. (lavana) --- Released 8.3.4, October 19, 2001 --- See ChangeLog for details --- 2001-08-21 (bug fix)[219184] overagressive compilation of [catch] (sofer) 2001-08-22 (new feature)[227482] [dde request -binary] (hobbs) => dde 1.2 2001-08-30 (performance enhancement)[456668] fully qualified command names use cached Command for all namespaces, avoiding repeated lookups (sofer) 2001-08-31 (performance enhancement) bytecompiled [list] (hobbs) 2001-09-02 (bug fix)[403553] Add -Zl to VC++ compile line for tclStubLib to avoid any specific C-runtime library dependence. (gravereaux) 2001-09-05 (new feature) restored support for Borland compiler (gravereaux) 2001-09-05 (new feature)[TIP 49] Tcl_OutputBuffered API (schroedter, fellows) 2001-09-07 (new feature) restored VC++ 5.0 compatibility (gravereaux) 2001-09-10 (performance enhancement)[TIP 53,451441] [proc foo args {}] now compiles to 0 bytecodes (sofer) 2001-09-13 (new feature)[TIP 56] Tcl_EvalTokensStandard API (sofer) 2001-09-13 (new feature) Old ChangeLog entries => ChangeLog.1999 (hobbs) 2001-09-17 (new feature) compiling with TCL_COMPILE_DEBUG now required to enable all compile and execution tracing (sofer) *** POTENTIAL INCOMPATIBILITY *** 2001-09-19 (bug fix)[411825] made TclNeedSpace UTF-8 aware (fellows) 2001-09-19 (bug fix)[219166] overagressive compilation of "quoted" bodies of [for], [foreach], [if], and [while] (sofer) 2001-09-19 (performance enhancement) bytecompiled [string match] (hobbs) 2001-10-15 (new feature)[TIP 35] serial channel configuration: Win (schroedter) 2001-11-06 (bug fix)[478856] loss of fileevents due to short reads (kupries) 2001-11-06 (new feature) revitalized makefile.vc (gravereaux) 2001-11-07 (new feature) Cygwin gcc support dropped. Use mingw (dejong) *** POTENTIAL INCOMPATIBILITY *** 2001-11-07 (new feature) Support --include-dir= and --libdir= options to configure. Store in tclConfig.sh as TCL_INCLUDE_SPEC and TCL_LIB_SPEC. (dejong) *** POTENTIAL INCOMPATIBILITY *** 2001-11-08 (new feature) Enable --enable-threads on FreeBSD (dejong) 2001-11-08 (new feature) New make target 'make gdb' (dejong) 2001-11-09 (bug fix)[480176] [global] mishandled varnames matching :* (porter) 2001-11-12 (new feature)[TIP 22,33,45] new command [lset], [lindex] extended to accept multiple indices. (kenny, hobbs) 2001-11-16 (new feature) new configure option --enable-langinfo=no. By default, nl_langinfo() is used on Unix to determine system encoding. Tcl's built-in system is used only if that fails, or configured with --enable-langinfo=no. (hobbs, wagner) 2001-11-19 (new feature)[TIP 62] A Tcl_VarTraceProc can now return Tcl_Obj * or a dynamic string as well as a static string to indicate an error (fellows) 2001-11-19 (new feature)[TIP 73] Tcl_GetTime API (kenny) 2001-11-19 (bug fix)[478847] overflows in [time] of >2**31 microseconds (kenny) 2001-11-29 (performance enhancement) caching scheme added to [binary scan] (fellows) 2001-12-05 (new feature) new algorithm for [array get] adds safety when read traces modify the array. (sofer) *** POTENTIAL INCOMPATIBILITY *** 2001-12-10 (bug fix)[490514] doc fixes (porter,english) 2001-12-18 (new feature) removed unix/dltest/configure; unix/configure does all (dejong) 2001-12-19 (new feature) New make target 'make shell' (dejong) 2001-12-21 (new feature) MaxOSX / Darwin support (steffen) 2001-12-28 (new feature) new command [memory onexit] replaces [checkmem] when compiled with TCL_MEM_DEBUG. Added documentation. (porter) *** POTENTIAL INCOMPATIBILITY *** 2001-12-28 (bug fix) proper case in [auto_execok] use of $env(COMPSPEC) (hobbs) 2002-01-05 (feature rewrite) Tcl_Main() rewritten and documentation improved. Interactive operation and event loop operation (via Tcl_SetMainLoop) now interleave cleanly. Also more robust against strange happenings. (porter) 2002-01-17 (bug fix)[504642] Tcl_Obj refCounts in [gets] (griffen,kupries) 2002-01-21 (bug fix)[506297] infinite loop writing in iso2022-jap encoding (forssen,kupries) 2002-01-24 (HTTP server bug workaround)[504508] leave the default port out of the Host: header value => http 2.4.1 (hobbs) 2002-01-25 (new feature)[496733] socket options -eofchar and -translation return read-only values (dejong) 2002-01-28 (new feature) Old ChangeLog entries => ChangeLog.20900 (hobbs) 2002-01-28 (performance enhancement) bytecompiled [regexp] for trivial cases that amount to string matching. Also -nocase and --. (hobbs) 2002-02-05 (bug fix) [http::error] called when [::error] intended => http 2.4.2 (porter) 2002-02-05 (bug fix)[465765] avoid zero-byte writes to STREAMs (talcott,kupries) 2002-02-06 (performance enhancement) [regsub] special cases that map to [string map] detected. (hobbs) 2002-02-06 (bug fix)[495213] [scan] accept 0x as prefix of base 16 value (hobbs) 2002-02-10 (new feature)[TIP 32,79] Tcl_CreateObjTrace API (kenny) 2002-02-12 (new feature) partial support for DJGPP Tcl on DOS (gravereaux) 2002-02-14 (mem leak) Fixed leaking an empty Tcl_Obj when [gets $chan] errored out. (kupries, sofer) 2002-02-15 (new feature)[TIP 72] support for 64-bit integer values on 32-bit platforms and ability to work with >2GiB files. Extends many commands. See ChangeLog and TIP for details. *** POTENTIAL INCOMPATIBILITY *** 2002-02-22 (bug fix)[476537] Fix panic when loading shared library without proper use of stubs on platform without backlinking (porter) 2002-02-22 (new feature) 64-bit support for xlc compiler on AIX-4 (hobbs) 2002-02-22 (new feature)[521560] Removed limits on filename length and format [source]able through the Safe Base (hobbs) 2002-02-22 (performance enhancement) optimized bytecodes for [if], [for], [while] and constant conditions (sofer) 2002-02-22 (new feature)[TIP 76] [regsub] can now return result (fellows) 2002-02-25 (bug fix)[495207] buffer overrun when closing ] left out of argument to [subst] (sofer, english) 2002-02-25 (bug fix)[514392] [load] updated for Mac OS X 10.1 (steffen) 2002-02-26 (bug fix) [info hostname] choked on names >31 characters (hobbs) 2002-02-26 (new feature)[TIP 35] serial channel configuration: Unix (schroedter, hobbs) 2002-02-25 (bug fix)[483575] [fconfigure ... -error] now no-op on Mac (kupries) 2002-02-28 (performance enhancement)[458872] fully qualified command names use cached Command for all namespaces, avoiding repeated lookups (sofer) * (new feature)[TIP 27] completed CONST-ification of TCL APIs. Added compiler macro USE_NON_CONST to keep using those old API prototypes that present irreconcilable source incompatibilities with header files of prior Tcl releases. Others will need to be reconciled. *** POTENTIAL INCOMPATIBILITY *** 2002-03-04 (bug fix)[474358, 218099, 219314, 524674] fixed several problems related to the handling of iso2022 text and finalization of escape-based encodings. (taguchi, takahashi, hobbs) --- Released 8.4a4, March 5, 2002 --- See ChangeLog for details --- 2002-03-06 (new feature)[TIP 80] expanded [lsearch] options (wilkason, fellows) 2002-03-07 (new feature)[TIP 87] [interp recursionlimit] (trier) 2002-03-08 (platform feature) mingw 1.1 build favored (dejong) 2002-03-20 (new feature)[TIP 27] CONST-ified variable access functions (porter) 2002-03-24 (bug fix)[511666,511658,523217,530960] expanded Tcl_FSMatchInDirectory to handle assorted [glob] bugs in VFS. (darley) *** POTENTIAL INCOMPATIBILITY with prior 8.4a releases *** 2002-03-25 (bug fix)[495726] stopped tcltest disabling of auto-loading (porter) 2002-03-25 (bug fix)[495977] allow \n in test constraints (porter) 2002-03-27 (platform support)[527941,533862] VC/winhelp/W9X (spjuth, gravereaux) 2002-03-28 (bug fix)[219181] exception at level 0 issues (sofer) 2002-03-28 (bug fix)[219362] command termination; Tcl_CreateTrace (knoll,sofer) 2002-04-05 (bug fix)[536879] exceptions during variable subst (porter) 2002-04-15 (bug fix)[497446,513983] tcltest syntax errors now raised (porter) ***POTENTIAL INCOMPATIBILITY with prior tcltest 2.0.* (8.4aX)*** 2002-04-17 (bug fix)[495660] [(save|restore)state] deprecated (porter) 2002-04-17 (bug fix)[526524] escape-based encodings corrected (yamamoto, hobbs) 2002-04-18 (bug fix)[542588] [expr] error msgs improved (ehrens, sofer) 2002-04-18 (bug fix)[545325] [info level $level] now returns [namespace eval] as documented (suchenwirth,sofer) 2002-04-19 (bug fix)[544727] export [mcload]; ns context of [mcmax] (porter) => msgcat 1.2.3 2002-04-22 (performance enhancement) threaded memory allocator (AOL, hobbs) 2002-04-24 (new feature) TCLTK_NO_LIBRARY_TEXT_RESOURCES #define disables inclusion of tcl library code in resource fork on Mac. (steffen) 2002-05-21 (platform support) static libs on OSF (dejong) 2002-05-24 (bug fix)[557878] set encoding on listening socket (staplin, kupries) 2002-05-24 (new feature)[TIP 91] Tcl_Seek compatibility (fellows) 2002-05-28 (bug fix)[545579] VFS [load] left temp file (darley) 2002-05-28 (bug fix)[559376] plug timezone env leak on Windows (hobbs) 2002-05-29 (performance enhancement) [string compare] optimized (hobbs,fellows) 2002-05-31 (bug fix)[550534] plug interp leak in [pkg_mkIndex] (helmut) 2002-05-31 (dead code)[474335,555635] removed all use of matherr() (english) *** POTENTIAL INCOMPATIBILITY *** 2002-06-04 (new feature)[TIP 85,521362] custom result match in tcltest (markus, porter) => tcltest 2.1 2002-06-06 (bug fix)[524352] encoding, threading, and environment issues on MacOSX (steffen) 2002-06-06 (bug fix)[512214,558742,512214,461000] lazy initialization of tcltest constraints (porter) 2002-06-07 (bug fix)[563122,564595] EOVERFLOW definitions (fellows) 2002-06-11 (bug fix)[567386] [info locals] corrections (sofer) 2002-06-14 (new feature)[TIP 102] [trace list] renamed [trace info] (fellows) 2002-06-17 (new feature)[525522,525525] msgcat support for XPG4 locales; examination of LC_ALL, LC_MESSAGES environment variables (haible, porter) => msgcat 1.3 2002-06-17 (new feature)[565088] header files assume modern C compiler by default; older compilers may need configuration (english) *** POTENTIAL INCOMPATIBILITY *** 2002-06-17 (bug fix)[554068] [exec] argument quoting on Windows (darley) 2002-06-17 (new feature)[TIP 62,462580] command execution traces (lavana) 2002-06-19 (bug fix)[558324] regexp sets a linked variable (watson) * (performance enhancment) optimizations of bytecode execution (sofer) 2002-06-21 (new feature)[TIP 99,562970] new [file link] command (darley) 2002-06-24 (new feature)[TIP 101] new [tcltest::configure] command (porter) => tcltest 2.2 2002-06-25 (new feature) --enable-man-symlinks and --enable-man-compression options to configure (max) 2002-06-26 (bug fix)[565880] [clock format] now respects locale (max) *** POTENTIAL INCOMPATIBILITY *** 2002-07-03 (bug fix)[577015] [catch] catches even compile errors (sofer) --- Released 8.4b1, July 5, 2002 --- See ChangeLog for details --- 2002-07-08 (bug fix) restored compatibility of [viewFile] in tcltest (porter) 2002-07-11 (bug fix) [file normalize] returns long form on Win 95/98/ME (darley) 2002-07-15 (performance enhancment) variable operations rewritten to store and use cached Var pointers (sofer) 2002-07-22 (bug fix)[218000] Inf and Nan are floating-point values (fellows) 2002-07-23 (platform support)[219220] 64-bit compile on IRIX (dejong) 2002-07-25 (bug fix)[219218] return codes in background errors (english) 2002-07-28 (bug fix)[582522] alias fires exec traces (sofer) 2002-07-29 (bug fix)[578363] regexp (fellows,pvgoran) 2002-07-30 (bug fix)[584603] WriteChars infinite loop non-UTF-8 string (kupries) 2002-08-04 (new feature)[584051,580433,585105,582429][TIP 27] Tcl interfaces are now fully CONST-ified. Use the symbols USE_NON_CONST or USE_COMPAT_CONST to select interfaces with fewer changes. *** POTENTIAL INCOMPATIBILITY *** 2002-08-05 (bug fix)[589859] tcltest setup and cleanup scripts skipped when test body is skipped (porter) => tcltest 2.2 2002-08-07 (bug fix)[587488] mem leak with USE_THREAD_ALLOC (sofer,sass) 2002-08-07 (feature enhancement)[584794,584650,472576] boolean values are no longer always re-parsed from string. (sofer) Many internal bugs fixed. Considerable cleanup of the test suite. --- Released 8.4b2, August 9, 2002 --- See ChangeLog for details --- 2002-08-20 (new feature) --enable-memdebug configure option (kupries) 2002-08-23 (bug fix)[597936] mem leak with USE_THREAD_ALLOC (sofer,zoran) 2002-08-26 (bug fix)[599788] segfault in compiler (sofer,wilkason) 2002-08-28 (bug fix)[414910] avoid mem leaks accessing environment variables on Windows (welton,gravereaux) 2002-08-31 (platform support)[TIP 108] Mac OS X port (steffen,ingham) 2002-09-02 (platfrom support) 64-bit compile on HP-11 (martin) --- Released 8.4.0, September 10, 2002 --- See ChangeLog for details --- 2002-09-18 (platform support) Updated support for compiling with Cygwin and either mingw or gcc. (khan, howell, dejong) 2002-09-22 (bug fix)[612786, 611922] Corrected [puts -nonewline] within test bodies. Also corrected reporting of body return code. Updated tcltest to v2.2.1. 2002-09-24 (bug fix)[613117] More robust 64-bit wide integer value detection (fellows) 2002-09-26 (bug fix) correct overeager optimization of noop proc to handle the precompiled case. (sofer, hobbs) 2002-09-26 (bug fix)[615115] removed extraneous spaces in koi8-u.enc that confused encoding reader. 2002-09-29 (bug fix)[219355] Added proper exiting conditions using Win32 console signals. This handles the existing lack of a Ctrl+C exit to call exit handlers when built for thread support. Also, properly handles exits from other conditions such as CTRL_CLOSE_EVENT, CTRL_LOGOFF_EVENT, and CTRL_SHUTDOWN_EVENT signals. In all cases, exit handlers will be called. (gravereaux) 2002-09-30 (bug fix) improve the checking for bad regular expressions during regexp compilation. Resultant compiles were correct, but much slower than necessary. (hobbs) 2002-10-01 (bug fix) fix precompiled locals to support 8.3 precompiled code. (hobbs) 2002-10-09 (bug fix)[620735] Added code to set an exit handler on Windows that terminates the thread that calibrates the performance counter, so that the thread won't outlive unloading the Tcl DLL. (kenny) 2002-10-09 (build support) all --enable-symbols to take the enhanced options yes|no|mem|compile|all. (hobbs) 2002-10-10 (build support) enable USE_THREAD_ALLOC (new threaded allocator) by default on Windows. (hobbs, gravereaux) 2002-10-14 (bug fix)[623269] correct possible mem leak in Tcl_PutEnv. (brouwers) 2002-10-15 (bug fix)[615043] fix in execution traces with idle tasks firing. (lavana) 2002-10-15 (platform support) Correct AIX-5 ppc and 4/5 64-bit build flags. Correct HP 11 64-bit gcc building. (martin, hobbs) 2002-10-17 (bug fix)[624755] Fixed code that check for proper # of args to [array names] (porter) 2002-10-18 (feature enhancement)[625453] Added support for broadcasting changes to the registry Environment on Windows. Updated registry package to v1.1. (hobbs) 2002-10-22 (platform support)[624509] On macosx, add embedded framework dirs to tcl_pkgPath: @executable_path/../Frameworks and @executable_path/../PrivateFrameworks (if they exist), as well as the dirs in DYLD_FRAMEWORK_PATH (if set). (steffen) --- Released 8.4.1, October 22, 2002 --- See ChangeLog for details --- 2002-10-28 (bug fix)[627660] [package unknown] chaining for platform specifics 2002-10-29 (bug fix)[627546] verbose [load] (dyld) error mesages on MacOSX 2002-11-01 (bug fix) [package provide registry] consistent versions. 2002-11-06 (bug fix)[582039] missing ar program -> configuration error 2002-11-06 (feature enhancement) added new TclInThreadExit function to test for thread exit vs whole process exit condition. The TclInExit function now correctly returns 1 during Tcl_Finalize processing. *** POTENTIAL INCOMPATIBILITY *** 2002-11-13 (bug fix)[615043] some execution traces were not firing 2002-11-18 (bug fix)[634856] multiple signs no longer accepted as valid integer [string is integer ++1] => 0 *** POTENTIAL INCOMPATIBILITY *** 2002-11-26 (bug fix)[593810,597924] clean exit of channel worker threads on Win 2002-11-28 (new feature) `make valgrind` target 2002-12-03 (bug fix)[615304] repeated load/unload of Tcl now possible 2002-12-11 (bug fix)[647307] negative return codes now propagated by procs 2002-12-11 (bug fix)[648441] syntax error in [expr 0x] now detected. 2003-01-07 (bug fix)[633204] [catch {return}] => 2 (not 0) 2003-01-09 (bug fix)[634151] [file (a|m)time $nonASCIIpath $time] now works 2003-01-16 (bug fix) dde eval with {} service name does not crash. => dde 1.2.1 2003-01-16 (bug fix)[635200,655645,615043,571385] many command trace fixes 2003-01-31 (bug fix)[675614,678415,676978] tcltest conflicts in cleanup and -outfile; also failure in space-containing path; also missing [close] => tcltest 2.2.2 2003-02-01 (bug fix)[670042] corrected [info loaded {}] for static packages in multiple interps. 2003-02-01 (bug fix)[675356] [clock clicks {}]; [clock clicks -] - syntax errs 2003-02-01 (bug fix)[656660] MT-safety for [clock format] 2003-02-03 (bug fix)[651271] command rename traces get fully-qualified names *** POTENTIAL INCOMPATIBILITY *** 2003-02-07 (performance improvement) [glob] on Windows is 2.5 times faster 2003-02-07 (feature change) lack of Cygwin support indicated by config error 2003-02-11 (bug fix)[684744] [info complete] stopped by \x00 2003-02-11 (bug fix)[685445] [glob -types l] missed broken symlinks on Unix 2003-02-11 (bug fix) [lsearch -regexp $a $a] doesn't crash 2003-02-13 (bug fix)[685926] accept non-ASCII7 for tcl_platform(user) on Win 2003-02-15 (bug fix)[673714] stop crash when Tcl_DeleteEvents deletes last 2003-02-15 (bug fix)[681841] parser missed some missing ] syntax errors 2003-02-17 (bug fix)[684756] memory leak during command rename plugged 2003-02-18 (bug fix)[689100] reduced per-thread memory overhead 2003-02-18 (platform support)[651811] use xnet library on HP 11 (64 bit). 2003-02-20 (bug fix)[Patch 689341] correct jis round-trip encoding 2003-02-20 (bug fix)[689835] stop MacOSX hang trying to read a write-only pipe 2003-02-07 (performance improvement) [tclPkgUnknown]: fewer vfs calls 2003-02-18 (platform support) cut and splice procs for file channels on Mac 2003-02-21 (bug fix)[690774] [binary scan] failed on some wide ints 2003-02-22 (bug fix)[571002] plugged data leak during thread exit 2003-02-25 (feature change) [pkg_mkIndex -load]: case-insensitive match *** POTENTIAL INCOMPATIBILITY *** 2003-02-27 (bug fix)[694232] stop [lsearch -start 0 {} x] segfault --- Released 8.4.2, March 3, 2003 --- See ChangeLog for details --- 2003-03-06 (bug fix)[699042] Correct case-insensitive unicode string comparison in Tcl_UniCharNcasecmp 2003-03-11 (bug fix) Corrected loading of tclpip8x.dll on Win9x 2003-03-12 (bug fix)[702383] Corrected parsing of interp create -- 2003-03-12 (bug fix)[685106] Correct Tcl_SubstObj handling of \x00 bytes 2003-03-14 (bug fix)[702622 699060] Correct wide int issues in 'format' 2003-03-14 (bug fix)[698146] Remove assumption that file times and longs are the same size. 2003-03-18 (bug fix)[697862] Allow Tcl to differentiate between reparse points which are symlinks and mounted drives on Windows 2003-03-19 (bug fix)[705406] Bad command count on TCL_OUT_LINE_COMPILE 2003-03-20 (bug fix)[707174] Store pointers to notifier funcs in a struct to work around some platform linker issues 2003-03-22 (bug fix)[708218] Load correct (non-)debug dll for dde or registry 2003-03-24 (bug fix)[631741 696893] Fixing ObjMakeUpvar's lookup algorithm for the created local variable 2003-04-07 (bug fix)[713562] Make sure that tclWideIntType is defined and somewhat sensible everywhere 2003-04-07 (bug fix)[711371] Corrected string limits of arguments interpolated in error messages for 'if' 2003-04-11 (bug fix)[718878] Corrected inconsistent results of [string is integer] observed on systems where sizeof(long) != sizeof(int) 2003-04-12 (bug fix) Substantial changes to the Windows clock synch phase-locked loop in a quest for improved loop stability 2003-04-16 [713562] Made changes so that the "wideInt" Tcl_ObjType is defined on all platforms, even those where TCL_WIDE_INT_IS_LONG is defined. Also made the Tcl_Value struct have a wideValue field on all platforms. Potential incompatibility for TCL_WIDE_INT_IS_LONG platforms because that struct changes size. *** POTENTIAL INCOMPATIBILITY *** 2003-04-25 (bug fix)[727271] Catch any errors returned by the Windows functions handling TLS ASAP instead of waiting to get some mysterious crash later on due to bogus pointers. 2003-04-29 (bug fix) Correct 'glob -path {[tcl]} *', where leading special character instead lists files in '/'. Bug only occurs on Windows where '\' is also a directory separator. 2003-05-09 (bug fix)[731754] Fixed memory leak in threaded allocator on Windows caused by treating cachePtr as a TLS index 2003-05-10 (bug fix)[710642] Ensure cd is thread-safe 2003-05-10 (bug fix)[718002] Correct mem leak on closing a Windows serial port 2003-05-10 (bug fix)[714106] Prevent string repeat crash when overflow sizes were given (throws error). 2003-05-13 (feature enhancement)[736774] Use new versioned bundle resource API to get tcl runtime library for TCL_VERSION on Mac OS X. 2003-05-13 (bug fix)[711232] Worked around the issue of realpath() not being thread-safe on Mac OS X by defining NO_REALPATH for threaded builds on Mac OS X. 2003-05-14 (bug fix)[557030] Correct handling of the gb2312 encoding by making it an alias of the euc-cn encoding and creating a gb2312-raw encoding for the original. Most uses of gb2312 really mean euc-cn. 2003-05-14 (bug fix)[736421] Corrected another putenv() copy behavior problem when compiling on Windows and using Microsoft's runtime. --- Released 8.4.3, May 20, 2003 --- See ChangeLog for details --- 2003-05-23 (bug fix)[726018] reverted internals change to the 'cmdName' Tcl_ObjType that broke several extensions (TclBlend, e4graph...) in the 8.4.3 release. 2003-06-10 (bug fix)[495830] stop eval of bytecode in deleted interp. 2003-06-17 (bug fix) corrections to regexp when matching emtpy string. 2003-06-25 (bug fix)[748957] -*ieee compiler flags for Tru64 builds. 2003-07-11 (bug fix) [pkg_mkIndex] indexes provided packages, not indexed ones. 2003-07-15 (feature enhancement) MacOSX build system rewrite. 2003-07-15 (bug fix)[771613] corrected segfault in [if] (buffer overflow) 2003-07-16 (bug fix)[756791] corrected assumption that Tcl_Free == free 2003-07-16 (feature enhancement) -DTCL_UTF_MAX=6 compile option forces internal UCS-4 representation of Unicode (default is recommended UCS-2). 2003-07-16 (bug fix)[767578] 64-bit corrections in thread notifier. 2003-07-16 (bug fix)[759607] Safe Base tests normalized paths. 2003-07-16 (feature enhancement)[Patch 679315] improved Cygwin path support 2003-07-18 (bug fix)[706359] corrected broken -output option of [tcltest::test] => tcltest 2.4.4 2003-07-18 (bug fix)[753315] MT-safety of VFS records. 2003-07-18 (bug fix)[759888] support for user:pass in URL by [http::geturl] => http 2.4.4 Improved documentation, new tests, and some code cleanup. [655300, 720634, 735364, 748700, 756112, 756744, 756951, 758488, 760768, 763312, 769895, 771539, 771840, 771947, 771949, 772333] --- Released 8.4.4, July 22, 2003 --- See ChangeLog for details --- 2003-07-23 (bug fix)[775976] fix registry compilation for VC7. 2003-08-05 (enhancement)[781585] Use Tcl_ResetResult in bytecodes to prevent potential costly Tcl_Obj duplication. 2003-08-06 (bug fix)[781609] prevent non-Windows platforms from trying to use the registry package inside msgcat. 2003-08-27 (bug fix)[411825] Fix TclNeedSpace to handle non-breaking space (\u00A0) and backslash escapes correctly. 2003-09-01 (bug fix)[788780] Fix thread-safety issues in filesystem records. 2003-09-19 (bug fix)[804681] Protect ::errorInfo and ::errorCode traces from corrupting stack. 2003-09-23 (bug fix)[218871] Fix handling of glob-sensitive chars in auto_load and auto_import. 2003-10-03 (bug fix)[811483] Fixed refcount management for command and execution traces. 2003-10-04 (bug fix)[789040] Fixed exec command.com error for Win9x. 2003-10-06 (bug fix)[767834, 813273] Fixed volumerelative file normalization and 'file join' inconsistencies. 2003-10-08 (bug fix)[769812] Fix Tcl_NumUtfChars string length calculation when negative parameter is given. 2003-10-22 (bug fix)[800106] Handle VFS mountpoints inside glob'd dirs. 2003-10-22 (bug fix)[599468] Watch for FD_CLOSE too on Windows when asked for writable events by the generic layer. 2003-10-23 (bug fix)[813606] Detect OS X pipes correctly. 2003-11-05 (bug fix)[832657] Allow .. in libpath initialization. 2003-11-11 (bug fix) Improve AIX-64 build configuration. 2003-11-17 (bug fix)[230589, 504785, 505048, 703709, 840258] fixes to various odd regexp "can't happen" bugs. --- Released 8.4.5, November 20, 2003 --- See ChangeLog for details --- 2003-12-02 (bug fix)[851747] object sharing fix in [binary scan] 2003-12-09 (platform support)[852369] update errno usage for recent glibc 2003-12-12 (bug fix)[858937] fix for [file normalize ~nobody] 2003-12-17 (bug fix)[839519] fixed two memory leaks (vasiljevic) 2004-01-09 (bug fix)[873311] fixed infinite loop in TclFinalizeFilesystem 2004-02-02 (bug fix)[405995] Tcl_Ungets buffer filling fix 2004-02-04 (bug fix)[833910] tcltest command line option parsing error => tcltest 2.4.5 2004-02-04 (bug fix)[833637] code error in tcltest -preservecore operation 2004-02-12 (feature enhancement) update HP-11 build libs setup 2004-02-17 (bug fix)[849514,859251] corrected [file normailze] of $link/.. 2004-02-17 (bug fix)[772288] Unix std channels forced to exist at startup. 2004-02-17 (new default) tcltest::configure -verbose {body error} 2004-02-19 (bug fix) init.tcl search path with unusual --libdir (samson) 2004-02-25 (bug fix)[554068] stopped broken [exec] quoting of { (gravereaux) 2004-02-25 (bug fix)[888777] plugged memory leak with long host names (cassoff) 2004-03-01 (bug fix)[462580] corrected level interpretation of Tcl_CreateTrace 2004-03-01 (platform support)[218561] Allow 64-bit configure on IRIX64-6.5* --- Released 8.4.6, March 1, 2004 --- See ChangeLog for details --- Changes to 8.5a1 include all changes to the 8.4 line through 8.4.6, plus the following, which focuses on the high-level feature changes in this changeset (new minor version) rather than bug fixes: * refactored IO code to split FS path code into generic/tclPathObj.c and generic/tclFileSystem.h * refactored trace code into generic/tclTrace.c * configure scripts now require autoconf 2.57 for regeneration * updated runtime library scripts to use newer Tcl code features (like replacing regsub with string map) * improve robustness of tcltest test suite across environments * changed the bytecode evaluation-stack addressing mode, from array-style to pointer-style; the catch stack and evaluation stack are now contiguous in memory * switch command is now byte-compiled * enhanced checking in 'file' command for Windows NT file permissions * [TIP #57] new 'lassign' command (adopted from TclX) * [TIP #75] switch -regexp now provides submatch info * [TIP #90] extended 'catch' and 'return' to enable creation of procs that are a true replacement for 'return' * [TIP #100] new 'unload' command (can unload DLLs loaded via 'load', requires the extension writer to support it) * [TIP #111] new 'dict' command. Several commands have been updated to handle the list form of dicts implicitly at the C level where only lists were previously accepted * [TIP #112] 'namespace ensemble' command addition allows for ensembles that build on the namespace abstraction * [TIP #118] file attributes -readonly option for unices that support chflags(), support Mac Classic attribute options on OS X, add -rsrclength for OS X, enhance file copy on OS X to copy finder attributes and resource forks transparently * [TIP #120] enable dde in safe interpreters * [TIP #130] enable unique dde server names on Windows * [TIP #135] change dde servername -exact option to -force => dde 1.3 * [TIP #121] new Tcl_SetExitProc C API to control application shutdown * [TIP #123] expr ** exponentiation operator * [TIP #124] 'clock clicks -milliseconds' now returns a wide integer and a new 'clock clicks -microseconds' returns a wide integer, representing the number of microseconds, both since the Posix epoch * [TIP #127] added 'lsearch -index' option * [TIP #136] added 'lrepeat' command * [TIP #137/151] Add -encoding option to 'source' command and main tclsh executable. *** POTENTIAL INCOMPATIBILITY *** For Tcl embedders that build on Tcl_Main() and make use of Tcl_Main's former ability to pass a leading "-encoding" option to interactive shell operations, this will now be consumed by Tcl. * [TIP #138] New TCL_HASH_KEY_SYSTEM_HASH option for Tcl hash tables * [TIP #139] documented portions of Tcl's namespace C APIs * [TIP #148] correct [list]-quoting of the '#' character *** POTENTIAL INCOMPATIBILITY *** For scripts that assume a particular (buggy) string rep for lists. * [TIP #156] add "root locale" to msgcat => msgcat 1.4 * [TIP #157] leading {expand} syntax on words to cause argument expansion. This is a safer/cleaner alternative to the use of 'eval'. --- Released 8.5a1, March 3, 2004 --- See ChangeLog for details --- 2004-03-04 (new feature) registry package is [unload]able (thoyts) => registry 1.1.4 2004-03-08 (bug fix)[910525] [glob -path] in root directory (darley) 2004-03-12 (new feature)[TIP 163] [dict merge] (english, fellows) 2004-03-18 (platform support) support for Mac Classic removed (steffen) 2004-03-28 (bug fix)[925121] corrected segfault in bc compiler (sofer) 2004-03-30 (bug fix)[495830,729692] bytecode execution checks each command/interp validity before executing. (sofer) 2004-03-31 (bug fix)[811457] support translation to "" (porter) 2004-03-31 (bug fix)[811461] ignore locales with no "language" part (porter) => msgcat 1.4.1 2004-04-01 (bug fix) make [glob -type d -dir . *] work across VFS boundary 2004-04-06 (clean up) refactored Tcl header file #include order. Might create need for changes in extensions that #include private headers. Changed source code files should work with older Tcl as well. See ChangeLog. *** POTENTIAL INCOMPATIBILITY *** 2004-04-07 (bug fix)[920667] install into any Unicode path on Win (hobbs) 2004-04-07 (platform support) properly substitute more values in Windows tclConfig.sh (hobbs) 2004-04-23 (bug fix)[930851] reset channel EOF when eofchar changes (kupries) 2004-04-28 (bug fix)[600812][TIP 184] [upvar 0 scalar array(foo)] raises error 2004-05-03 (bug fix)[947070] stack overflow prevention on Win (kenny) 2004-05-03 (bug fix)[868853] fix leak in [fconfigure $serial -xchar] (cassoff) 2004-05 (bug fix)[928353,929892,928808,947440,948177] test fixes: OSX (abner) 2004-05-05 (bug fix)[794839] socket connect error -> r/w fileevents (gravereaux) 2004-05-07 (bug fix)[949905] corrected utf-8 encoding of \u0000 on I/O (max) 2004-05-13 (new feature)[TIP 129] [binary scan tnmrRqQ] (markus, fellows) 2004-05-13 (new feature)[TIP 142] [interp limit] (fellows) 2004-05-14 (bug fix)[940278,922848] [clock] notices $::env(TZ) changes, gmt works on all platforms. (kenny, welton, glessner) 2004-05-16 (feature rewrite) bytecode execution of {expand} changed *** POTENTIAL INCOMPATIBILITY with prior 8.5a releases *** 2004-05-18 (platform support) makefile.vc now generates tclConfig.sh (thoyts) 2004-05-18 (bug fix)[500285,500389,852944] [clock %G %V] ISO8601 week numbers (kenny) 2004-05-22 (bug fix)[735335,736729] variable name resolution error (sofer) 2004-05-24 (bug fix) support for non-WIDE_INT aware math functions (hobbs) 2004-05-25 (new feature) [http::config -urlencoding] (hobbs) => http 2.5.0 2004-05-26 (bug fix)[960926] file count doubled when -singleproc 1 (porter) => tcltest 2.2.6 2004-05-26 (bug fix)[874058] improved build configuration on 64-bit systems. Corrects Tcl_StatBuf definition issues. (hobbs) 2004-05-30 (platform support) Win: allow signed short exit codes (gravereaux) 2004-06-05 (bug fix)[976722] hi-res clock fixes: Win (godfrey, suchenwirth, kenny) 2004-06-10 (bug fix)[932314] bad return values from Tcl_FSChdir() (vasiljevic) 2004-06-18 (platform support) regonize more unix locales (huang) 2004-06-18 (bug fix) prevent stack overflow from long free() chains (fellows) 2004-06-21 (platform support) exceptions w/ gcc -O3 on Win (dejong) 2004-06-23 (feature rewrite)[976496] thread local storage done with hash tables to avoid system limits (mistachkin) 2004-06-29 (bug fix)[981733] SafeBase global pollution (fellows) 2004-06-30 (new feature)[TIP 188] [string is wideinteger] (kenny) 2004-07-02 (new feature)[TIP 202] pipe redirection 2>@1 (hobbs) 2004-07-03 (bug fix)[908375] round() wide integer support (lavana, sofer) 2004-07-07 (bug fix)[458361] shimmer of single-word scripts suppressed (sofer) 2004-07-15 (bug fix)[770053] crash in thread finalize of notifier (vasiljevic) 2004-07-15 (bug fix)[990453] plug mutex leaks on reinit (mistachkin, vasiljevic) 2004-07-16 (bug fix)[990500] clean exit of notifier thread (mistachkin, kupries) 2004-07-19 (bug fix)[987967] improved self-init of mutexes on Win (vasiljevic) 2004-07-20 (bug fix) pure Darwin/CFLite support (steffen) 2004-07-20 (bug fix)[736426] plug leaky allocator reinit (mistachkin, kenny) 2004-07-30 (bug fix)[999084] no deadlock in re-entrant Tcl_Finalize (porter) 2004-08-02 (new feature)[TIP 207] [interp invokehidden -namespace] (porter) 2004-08-10 (bug fix) thread IDs on 64-bit systems (ratcliff,vasiljevic) 2004-08-13 (bug fix) avoid malicious code acceptance by [mclocale] (porter) => msgcat 1.3.3 2004-08-16 (bug fix)[1008314] Tcl_SetVar TCL_LIST_ELEMENT (sofer,porter) 2004-08-18 (new feature)[TIP 173,209] complete [clock] rewrite (kenny) *** POTENTIAL INCOMPATIBILITY *** 2004-08-18 (new feature)[TIP 189] package loading for Tcl Modules (kupries) 2004-08-19 (bug fix)[1011860] [scan %ld] fix on LP64 (fellows,porter) 2004-08-23 (bug fix)[695441] extend [tcl_findLibrary] search path to include $::auto_path and [pkgconfig get scriptdir,runtime] (porter) 2004-08-27 (platform support) TCL_MODULE_PATH values for Mac OSX (steffen) 2004-08-27 (bug fix)[1017022] recognize imported ensembles (fellows) 2004-08-30 (bug fix) [string map $x $x] crash (fellows) 2004-09-01 (bug fix)[1020445] WIN64 support (hobbs) 2004-09-03 (bug fix)[1020538] crash in [file copy] (violi,fellows) 2004-09-07 (bug fix)[1016167] [after] overwrites its imports (kenny) 2004-09-08 (bug fix) fixed [clock format 0 -format %k] (kenny) 2004-09-09 (bug fix)[560297] fixed broken [namespace forget] logic (porter) 2004-09-09 (bug fix)[1017299] fixed [namespace import] cycle prevention (porter) 2004-09-10 (performance) $x[set x {}] is now fast [K $x [set x {}]] (sofer) 2004-09-10 (bug fix)[868489] better control over int <-> wideInt (fellows,kenny) 2004-09-10 (bug fix)[1025359] POSIX errorCode from wide seeks (kupries,fellows) 2004-09-10 (bug fix)[707104,1026493] fix [rename] of [interp alias] (porter) 2004-09-18 (bug fix)[868467] fix [expr 5>>32] => 0, not 5 (hintermayer,fellows) 2004-09-21 (bug fix) consistent errorinfo from [namespace eval x error foo bar] and [namespace eval c {error foo bar}] (porter) 2004-09-22 (feature change) syntax errors not reported at compile time; deferred to runtime. Support [return -errorline]. (porter) 2004-09-23 (bug fix)[1016726] fix `make clean` in static config (leitgeb,dejong) 2004-09-22 (feature change) report all compile errors at runtime (porter) 2004-09-29 (bug fix)[1036649] syntax error in [subst] => buffer overflow (sofer) 2004-09-30 (bug fix)[1038021] save/restore error state: var traces (porter) 2004-10-01 (performance) stackframe level values in internal reps (fellows) 2004-10-01 (feature change)[1037235] auto-create [dict] key paths (fellows) 2004-10-04 (bug fix)[884830] eq and ne parse in expr (fellows) 2004-10-05 (reform) errorInfo, errorCode management (porter) *** POTENTIAL INCOMPATIBILITY for traces on those vars *** 2004-10-06 (feature change)[1041072] re-bless and enhance Tcl_AppendResult (dkf) 2004-10-06 (reform) more robust interp result appends (porter) => dde 1.3.1 => registry 1.1.5 2004-10-06 (reform) re-write of [glob] guts (fellows) 2004-10-07 (reform)[925620] improved platform split of VFS code (darley) 2004-10-08 (new feature)[TIP 201] "in" and "ni" expr operators (fellows) 2004-10-08 (new feature)[TIP 212] [dict update]; [dict with] (fellows) 2004-10-08 (bug fix)[954263] case insensitive [file exec] for Win (hobbs,darley) 2004-10-14 (performance) [info commands/globals/procs/vars $pattern] faster when $pattern is trivial (fellows) 2004-10-14 (new feature)[TIP 217] [lsort -indices] (salsman,fellows) 2004-10-24 (reform) replaced bit flag values with macros for Var handling *** POTENTIAL INCOMPATIBILITY for accesses to Var internals *** 2004-10-26 (new feature)[1054370] install msgcat, http, tcltest as TM's (porter) 2004-10-26 (bug fix)[767676] negative PIDs with pipes (giese,gravereaux) 2004-10-27 (bug fix)[731778] stop critical section leaks (mistachkin,gravereaux) 2004-10-27 (bug fix)[926088] -load option to find tested packages (gravereaux) 2004-10-28 (bug fix)[1030548] restore the --enable-symbols --enable-threads build on Win (mistachkin,kenny,kupries) 2004-10-29 (bug fix)[1055673] fix command line syntax error message (porter) => tcltest 2.2.7 2004-10-30 (bug fix)[926106] fix [file mtime] DST anomaly (kenny) 2004-10-31 (bug fix)[1057461] fix [info globals ::varName] (fellows) 2004-11-02 (bug fix)[761471] fix [expr {NaN == NaN}] (sofer) 2004-11-02 (bug fix)[1017151] misleading errorInfo after tests (seeger,porter) 2004-11-03 (bug fix)[527164] preserve errorinfo from var traces (porter) 2004-11-08 (bug fix){947693] Made -blocking option of channel during [close] consistent on Windows with Unix (gravereaux) *** POTENTIAL INCOMPATIBILITY *** 2004-11-11 (bug fix)[1034337] recursive file delete, MacOSX (steffen) 2004-11-12 (new feature)[TIP 221] [interp bgerror] (porter) 2004-11-12 (new feature)[TIP 226] Tcl_(Save|Restore|Discard)InterpState (porter) 2004-11-12 (new feature)[TIP 227] Tcl_(Get|Set)ReturnOptions (porter) 2004-11-12 (bug fix)[1004065] stop crash when TCL_UTF_MAX==6 (hobbs,porter) 2004-11-15 (bug fix)[10653678] [trace variable],[trace remove] interop (porter) 2004-11-16 (bug fix)[1067709] crash in [fconfigure -ttycontrol] (hobbs) 2004-11-18 (new feature) configure options --enable-man-suffix (max) 2004-11-22 (bug fix)[1030465] Improve HAVE_TYPE_OFF64_T check (dejong) 2004-11-22 (bug fix)[1043129] Fixed the treatment of backslashes in file join on Windows (darley) 2004-11-22 (bug fix)[976438] Move init.tcl search path construction to tclInit (porter) 2004-11-24 (bug fix)[1072654] Fixed segfault in info vars trivial matching branch (new in 8.4.8) (porter) 2004-11-24 (bug fix)[1001325, 1071701] Fixed readdir_r detection and usage (dejong, kenny, porter) 2004-11-24 (bug fix)[1071807] Fixed all uses of 'select' to use standard macros rather than older bit-whacking style (kenny) 2004-11-26 (bug fix)[1073524] Simplify the code to check for correctness of strstr, strtoul and strtod on unix (fellows) 2004-11-26 (bug fix)[1072136] Remove file normalize on tcl_findLibrary search path uniqification added in 8.4.8 (porter) 2004-11-30 (bug fix)[976520] Rework startup/initialization of the Tcl library, encoding search initialization, and Tcl_FindExecutable structure. [tclInit] no longer driven by the value of $::tcl_libPath (TCLLIBPATH). (porter) *** POTENTIAL INCOMPATIBILITY : makes encoding names case sensitive on Windows, where they have been case insensitive *** 2004-12-02 (bug fix)[1074671] Ensure tilde paths are not returned specially by 'glob' (darley) Doc improvements [759545,926590,935853,1017072,1018486,1022527,1027849, 1032243,1047928,1048005,1058446,1062647,1065732,1073334,etc.] Test suite expansion [1036649,1001997,etc.] --- Released 8.5a2, December 7, 2004 --- See ChangeLog for details --- 2004-12-13 (bug fix)[1083082] encoding memory leaks (ade,porter) 2004-12-13 (bug fix)[1082349] restored C++ extension support (porter) 2004-12-14 (bug fix)[1081541] workaround automake-ism "$U" (porter) 2004-12-15 (new feature) CallFrames on execution, not C, stack (sofer) 2004-12-16 (bug fix)[1085023] [interp limit] support in [vwait], etc. (fellows) 2004-12-29 (bug fix)[1090413] make [clock scan 0030] work (morian,kenny) 2004-12-29 (bug fix)[1092789] make [clock scan 10000] work (porter,kenny) 2004-12-29 (platform support)[1092952,1091967] MSVC7, gcc OPT compiles (hobbs) 2005-01-06 (performance)[1020491] [http::mapReply] (fellows) => http 2.5.1 2005-01-09 (bug fix)[1095909] stopped use of readdir_r (english) 2005-01-10 (enhancement)[1081595] stopped use of TCL_DBGX (english) 2005-01-17 (bug fix)[1100542] [glob] of Windows shares (schar,darley) 2005-01-19 (new feature)[TIP 235] C API for ensembles (fellows) 2005-01-21 (new feature)[TIP 233] virtual time (kupries) 2005-01-25 (bug fix)[1101670] [auto_reset] update for [namespace] (porter) ***POTENTIAL INCOMPATIBILITY*** May cause re-[source]-ing of files that have not anticipated that before. 2005-01-27 (new feature)[TIP 218] Tcl_Channel API update for threads (kupries) 2005-01-27 (bug fix)[1109484] Tcl_Expr* updates for Tcl_WideInt (hobbs) 2005-01-28 (platform support)[1021871] Solaris gcc 64-bit support (hobbs) 2005-02-10 (bug fix)[1119369] Tcl_EvalObjEx: avoid shimmer loss of List intrep (sofer,macdonald) 2005-02-11 (platform support) correct gcc builds for AIX-4+, HP-UX-11 (hobbs) 2005-02-24 (bug fix)[1119798] prevent [source $directory] (porter,mpettigr) => tcltest 2.2.8 2005-03-10 (bug fix)[1153871] bad ClientData cast (porter,victorovich) 2005-03-15 (platform support) OpenBSD ports patch (thoyts) 2005-03-18 (bug fix)[1115904] restore recursion limit in direct eval (porter) 2005-03-24 (bug fix) stop conflict between Tcltest and Thread packages (porter) 2005-03-29 (platform support) allow msys builds without cygwin (hobbs) 2005-04-01 (internal change)[1158008] internal rep of "list" Tcl_Obj's now uses a refcounted struct (sofer) ***POTENTIAL INCOMPATIBILITY*** For any code that goes poking into the internals of "list" Tcl_Obj's 2005-04-05 (performance)[1174551] Tcl_DecrRefCount of Tcl_Obj "chains" (sofer) 2005-04-08 (performance)[1077262] better Tcl_Encoding cache lifetimes (porter) 2005-04-10 (bug fix)[1180368] [interp invokehidden] mem leak (kenny,porter) 2005-04-12 (performance)[1177363] startup encoding file scan (porter) 2005-04-12 (performance)[1182459] [clock format] (kenny) 2005-04-13 (bug fix) min buffer size dropped from 10 to 1 byte (gravereaux) 2005-04-16 (bug fix)[1178445] fix memory waste at thread exit (vasiljevic) 2004-04-16 (bug fix)[1084111] [array names] memory leak (ade,sofer) 2005-04-19 (bug fix)[1185933] [clock] init clobbered global vars (ring,kenny) 2005-04-19 (new feature) [::tcl::unsupported::EncodingDirs] - unsupported command to set search path for encoding files (porter) 2005-04-20 (bug fix)[1090869] Tcl_GetInt accept 0x80000000, 64-bit (porter,singh) 2005-04-22 (bug fix)[1187123] [string is boolean] respect EIAS (porter) 2005-04-25 (enhancement) update to tzdata2005i (kenny) 2005-04-25 (platform support) builds on Mac OS X 10.1 (steffen) 2005-04-27 (new feature)[TIP 183] [open $f {... BINARY ...}] (porter) 2005-04-29 (new feature)[TIP 176] simple index arithmetic (porter) 2005-05-06 (platform support) x86_64 Solarix cc and Solaris 10 builds (hobbs) 2005-05-10 (bug fix)[1198892] [expr {i**0}] error (kaitschu,markus) 2005-05-10 (new feature)[TIP 132] floating-point conversion to string (kenny) ***POTENTIAL INCOMPATIBILITY*** For scripts that rely on (tcl_precision==12) number formatting 2005-05-10 (new feature)[TIP 232] math functions as commands (kenny) ***POTENTIAL INCOMPATIBILITY*** Tcl_GetMathFuncInfo functioning is reduced; routine is now deprecated 2005-05-13 (feature removed) TCL_NO_MATH compiler directive (porter) 2005-05-14 (platform support) Mac OSX: configurable CoreFoundation API (steffen) 2005-05-14 (platform support) Mac OSX: use realpath when threadsafe (steffen) 2005-05-17 (feature removed) Tcl_ObjType's "list", "procbody", "index", "ensembleCommand", "localVarName", "levelReference, "boolean" are no longer registered (porter) ***POTENTIAL INCOMPATIBILITY*** For any callers of Tcl_GetObjType on those strings 2005-05-20 (bug fix)[1201589] boolean literal prefix in expressions (porter) 2005-05-24 (platform support) Darwin build support merged into unix (steffen) 2005-05-24 (new feature)[1202209] Mac OSX: support [load] of .bundle binaries Can support [load] from memory as well (steffen) 2005-05-24 (new feature)[1202178] [time] returns non-integer result (steffen) 2005-05-25 (new feature)[TIP 182] [expr {bool(...)}] (mistachkin,porter) 2005-05-30 (new feature)[TIP 229] [namespace path] (fellows) 2005-05-31 (bug fix)[1082283] Unix: notifier thread now joinable (vasiljevic) 2005-06-01 (new feature)[TIP 241] -nocase: lsort, lsearch, switch (mistachkin) 2005-06-01 (bug fix)[1209759] "return TCL_RETURN;" could cause panic (porter) Documentation improvements [1075433,1085127,1117017,1124160,1149605,etc.] --- Released 8.5a3, June 4, 2005 --- See ChangeLog for details --- 2005-06-06 (bug fix)[1213678] Windows/gcc: crash in stack.test (kenny) 2005-06-07 (new feature)[TIP 208] [chan] and [chan truncate] (fellows) 2005-06-07 (revert) Restored registration of "procbody" Tcl_ObjType (porter) Reduces the ***POTENTIAL INCOMPATIBILITY*** from 2005-05-17. 2005-06-13 (bug fix)[1217375,1219176] [file mkdir] race (diekhans,darley) 2005-06-14 (bug fix)[1220058] [namespace delete] crash (duquette,fellows) 2005-06-17 (bug fix)[1221395] Tcl_LimitSetTime able to break [vwait] (fellows) 2005-06-18 (bug fix)[1154163] [format %h] on 64-bit OS's (kraft,fellows) 2005-06-21 (bug fix)[1201035,1224585] execution trace crashes (porter) 2005-06-21 (bug fix)[1194458] Windows: [file split] (kenny,porter) 2005-06-22 (bug fix)[1225727] Windows: pipe finalization crash (kenny) 2005-06-22 (bug fix)[1225571] Windows: [file pathtype] buffer overflow (thoyts) 2005-06-22 (bug fix)[1225044] Windows: UMR in pipe close (kenny) 2005-06-23 (bug fix)[1225957] Windows/gcc: crashes in assembler code (kenny) 2005-06-24 (bug fix) make Tcl_Preserve safe in Tk exit handlers (kenny) 2005-07-01 (bug fix)[1222872] notifier spurious wake-up protection (vasiljevic) 2005-07-05 (bug fix)[1230597] allow idempotent [namespace import] (porter) 2005-07-15 (bug fix)[1237907] localtime() => NULL => crash (kenny) 2005-07-21 (dropped support) IRIX 4, RISCos, Ultrix, and ancient BSD (kenny) ***POTENTIAL INCOMPATIBILITY*** 2005-07-22 (enhancement)[1237755] 8.4 features in script library (fradin,porter) 2005-07-24 (new feature) configure macros SC_PROG_TCLSH, SC_BUILD_TCLSH (dejong) 2005-07-26 (bug fix)[1047286] cmd delete traces during namespace delete (porter) 2005-07-26 (new unix feature)[1231015] ${prefix}/share on ::tcl_pkgPath (dejong) ***POTENTIAL INCOMPATIBILITY*** 2005-07-27 (bug fix)[1214462] [unknown] can return exceptions (porter) 2005-07-27 (new feature) value of ::tcl_precision now kept per-thread (porter) ***POTENTIAL INCOMPATIBILITY*** 2005-07-28 (unix bug fix)[1245953] O_APPEND for >> redirection (fellows) 2005-07-29 (bug fix)[1247135] [info globals] return only existing vars (fellows) 2005-07-30 (new Darwin feature) TCL_LOAD_FROM_MEMORY configuration (steffen) 2005-08-05 (bug fix)[1241572] correct [expr abs($LONG_MIN)] (kenny) 2005-08-05 (Solaris bug fix)[1252475] recognize cp1251 encoding (wagner,fellows) 2005-08-11 (config options) eliminated USE_THREAD_STORAGE option (kenny) 2005-08-23 (toolchain support) autoconf-2.59 now required (dejong) 2005-08-24 (new feature)[TIP 219] reflected channels ([chan create]) (kupries) 2005-08-25 (bug fix)[1267380] [lrepeat] buffer overflow prevention (fellows) 2005-08-26 (bug fix) fix [namespace ensemble] crashes in Snit (fellows) 2005-08-29 (bug fix)[1275043] restore round() away from zero (kenny) 2005-08-29 (bug fix)[1189657] correct [tcl::tm::roots] (porter) 2005-09-07 (bug fix)[1283976] invalid [format %c -1] result (porter) 2005-09-08 (new feature)[1242844][TIP 254] new types for Tcl_LinkVar (fellows) 2005-09-07 (toolchain support) deprecate TCL_VARARGS*; stdarg.h assumed (porter) ***POTENTIAL INCOMPATIBILITY*** 2005-09-15 (RHEL bug fix)[1287638] support open >2GB files RHEL 3 (palan) 2005-09-08 (new feature)[TIP 255] [expr min()] and [expr max()] (hobbs) 2005-09-30 (bug fix)[1306162] $argv encoding and list formatting (porter) 2005-10-04 (bug fix)[1067708] [fconfigure -ttycontrol] leak (hobbs) 2005-10-04 (bug fix)[1182373] [http::mapReply] update to RFC 3986 (aho,hobbs) => http 2.5.2 2005-10-04 (HPUX bug fix)[1204237] shl_load() and DYNAMIC_PATH (collins,hobbs) 2005-10-05 (bug fix)[979640] buffer overrun mixing putenv(), ::env (bold,hobbs) 2005-10-08 (new feature)[TIP 237] unlimited range for integers (kenny,porter) ***POTENTIAL INCOMPATIBILITY*** for any code that relies on implicit truncation of integer calculations to the range of a C long 2005-10-14 (platform support)[1256937] MSVC++ static builds (thoyts) 2005-10-19 (bug fix)[1331475] [dict append] crash (bills,sofer) 2005-10-20 (bug fix)[1333036] [lset] shared sublist handling (sofer) 2005-10-23 (bug fix)[1335006] memleack in [glob] (melbardis,darley) 2005-10-23 (bug fix)[1325803] Win: [file stat] on links (bonilla,darley) 2005-11-01 (bug fix)[1337941] Tcl_TraceCommand() -> crash (devilliers,porter) 2005-11-02 (platform support)[1256937] MSVC 8 support (thoyts) 2005-11-03 (new Win NT/XP feature) Unicode console support (kovalenko,thoyts) 2005-11-04 (bug fix)[1337229,1338280] [namespace delete] / unset traces (sofer) 2005-11-04 (enhancement) Korean timezone abbreviations (kenny) 2005-11-04 (platform support)[1163896] LynxOS [load] (heidibr) 2005-11-04 (bug fix)[1334947] value refcount error in var setting (sofer) 2005-11-04 (Win enhancement)[1267871] extended exit codes (newman,thoyts) 2005-11-07 (bug fix)[1348775] unset trace memory leak (sofer) 2005-11-08 (bug fix)[1162286] [package require] checks that the script registered by [package ifneeded] provides the version it claims (lavana,porter) *** POTENTIAL INCOMPATIBILITY *** 2005-11-09 (bug fix)[1350293,1350291] [after $negative $script] fixed (kenny) 2005-11-12 (bug fix)[1352734,1354540,1355942,1355342] [namespace delete] issues with [namespace path] and command delete traces (sofer,fellows) 2005-11-18 (bug fix)[1358369] URL parsing standards compliance (wu,fellows) => http 2.5.2 2005-11-18 (revert) Restored registration of "list" Tcl_ObjType (porter) Reduces the ***POTENTIAL INCOMPATIBILITY*** from 2005-05-17. 2005-11-18 (bug fix)[1359094] Tclkit crash (thoyts, kupries) 2005-11-20 (bug fix)[1091431] Tcl_InitStubs failure crashes wish (english) 2005-11-27 (platform support) Darwin 64bit, Tiger copyfile(), and Max OSX universal binaries support (steffen) 2005-11-28 (bug fix) [clock] DST transition error (mackerras,kenny) 2005-11-29 (bug fix)[1366683] [lsearch -regexp] backrefs (cleverly,fellows) 2005-11-30 (performance) recoded portions of [clock] in C (kenny) 2005-11-30 (enhancement) improved bytecode compiling of [switch] (fellows) *** POTENTIAL INCOMPATIBILITY *** For loading bytecode compiled and saved by earlier 8.5alpha releases 2005-12-05 (Darwin bug fix)[1034337] NFS recursive file delete (steffen) 2005-12-08 (platform support) Win x64 build (hobbs) 2005-12-09 (bug fix)[1374778] [lsearch -start $pastEnd] => -1 (fellows) 2005-12-12 (bug fix)[1377619] configure syntax error exposed in bash-3.1 (hobbs) 2005-12-13 (bug fix)[1379349] [dict for] CoW error (ring,hippler,fellows) 2005-12-18 (bug fix)[1382528] [dict for {k v} {} {}] crash (kovalenko,fellows) 2005-12-27 clock tzdata updated to Olson's tzdata2005r (kenny) 2005-12-27 libtommath updated to release 0.37 (kenny) 2006-01-09 (bug fix)[1480572] [info level $l] => "namespace inscope" (porter) 2006-01-11 (compat support)[1397843] when ::errorInfo is traced, fall back to old pattern of stack trace construction (porter). Reduces the ***POTENTIAL INCOMPATIBILITY*** from 2004-10-05. 2006-01-12 (bug fix)[1366227] Win: [file stat] sharing violation (darley) 2006-01-23 (bug fix)[1410553] Tcl_GetRange Unicode confusion (twylite,spjuth) 2006-01-23 (bug fix)[1412695] args handling in precompiled procs (traum,sofer) 2006-02-01 (new feature)[1275435][TIP 250] [namespace upvar] (sofer) 2006-02-01 (new feature)[958222][TIP 181] [namespace unknown] (madden) 2006-02-01 (new feature)[944803][TIP 194] [apply] (mistachkin) 2006-02-08 (new feature)[1413934][TIP 258] [encoding dirs], etc. (porter) 2006-02-09 (new feature)[1413115][TIP 215] auto-init [incr] (leitgeb) 2006-03-02 (bug fix)[1379287] norm of paths with /../ back to root (porter) 2006-03-03 (compat support) Restored registration of a "boolean" Tcl_ObjType (porter) Reduces the ***POTENTIAL INCOMPATIBILITY*** from 2005-05-17. 2006-03-06 (bug fix)[1439836,1444291] fix TCL_EVAL_{GLOBAL,INVOKE} handling when auto-loading or exec traces are present (porter) 2006-03-10 (bug fix)[1437595] Win socket finalize with threads (vasiljevic) 2006-03-13 (revert 2005-07-26 change) ${prefix}/share on ::tcl_pkgPath (porter) 2006-03-14 (bug fix)[1448251] TCLX.y_TM_PATH handling (noble, kupries) 2006-03-14 (bug fix)[768659] pipeline error when last command missing (kupries) 2006-03-18 (bug fix)[1193497] Win porting of [file writable] (darley,vogel) 2006-03-18 (bug fix)[1084705] [glob -nocomplain] silence empty result only, no other errors (darley) ***POTENTIAL INCOMPATIBILITY*** 2006-03-21 (platform enhancement)[823329] HFS globbing support (steffen) 2006-03-23 (platform support) updated tcl.spec file (max) 2006-03-28 (bug fix)[1064247] BSD: path normalization with realpath() (steffen) 2006-04-03 (bug fix)[1462248] crash reading utf-8 chars spanning multiple buffers at end of file (kraft,kupries) 2006-04-05 (bug fix)[1464039] Tcl_GetIndexFromObj: empty key (fellows) 2006-04-05 (bug fix) overdue dde, registry patchelevel increments (porter) => dde 1.3.2 => registry 1.2 2006-04-06 (bug fix)[1457515] TCL_IO_TRACK_OS_FOR_DRIVER_WITH_BAD_BLOCKING removed (steffen) 2006-04-11 (bug fix)[1458266] enter/enterstep trace interference (leunissen) 2006-04-12 (feature change)[1376892] revised definition of [:print:] (fellows) (platform support) Use of _ANSI_ARGS_ purged. ANSI compiler required (fellows) Documentation improvements [1211078,1190891,1292427,1277503,1104682,1359183, 1415725,666770] --- Released 8.5a4, April 27, 2006 --- See ChangeLog for details --- 2006-05-04 (bug fix)[1480509] srand() accept wide input (porter,afredd) 2006-05-05 (bug fix)[1481986] interactive Tcl_Main blocks main loop (porter,lin) 2006-05-13 (bug fix)[1482718] proc re-compile: preserve the previous bytecode while references still on the stack (porter,ryazanov) 2006-05-27 (bug fix)[923072] Darwin: made unthreaded CoreFoundation notifier naked-fork safe on Tiger (steffen) 2006-06-20 (internal change) Dropped the internal routines used to hook into filesystem operations back in the pre-Tcl_Filesystem days. (porter) ***POTENTIAL INCOMPATIBILITY*** For extensions and programs that have never migrated to the supported Tcl 8.4 interface for virtual filesystems 2006-07-05 (enhancement) Expression parser rewrite avoids stack overflow, reduces from O(N^2) to O(N) complexity, and greatly improves syntas error messages (porter) ***POTENTIAL INCOMPATIBILITY*** For any code relying on exact error messages. 2006-07-20 (platform support) Mac OS X weak linking (steffen) 2006-07-20 (bug fix) Darwin: execve() works iff event loop not yet run (steffen) 2006-07-24 (bug fix)[1518166] Uninitialized Tcl_DString (afredd) 2006-07-30 (bug fix)[1426279,1505383,1494664,1531530] [clock] fixes (kenny) 2006-08-09 (bug fix)[1531184] [dict for {file stat} x {}] crash (fellows) 2006-08-10 (bug fix)[1538262,1530474] code cleanup; optimizations (afredd) 2006-08-18 (bug fix) intermittent failures in TclUnixWaitForFile() (steffen) 2006-08-18 (platform support) Darwin x86_64 (steffen) 2006-08-21 (bug fix)[1457797] Darwin 64-bit notifier hang (steffen) 2006-08-21 (bug fix) Darwin: recursively called event loop (steffen) 2006-08-21 (enhancement) Darwin: nanosec resolution clicks and [time] (steffen) 2006-08-28 (bug fix)[1547681] TclFormatObj count arguments (mistachkin,porter) 2006-08-28 (bug fix) stack.test failure on FreeBSD (mistachkin) 2006-08-30 (bug fix)[1548263] filesystem segfaults (hobbs,mccormack) 2006-08-31 (bug fix)[1541274] [expr {sqrt(-1)}] => -NaN (suchenwirth,porter) 2006-09-06 (bug fix)[999544] use of MT-safe system calls (vasiljevic) 2006-09-10 (platform support) Darwin: msgcat use CFLocale (steffen) => msgcat 1.4.2 2006-09-10 (new feature) tcltest option: -verbose line (steffen) => tcltest 2.3a1 2006-09-19 (bug fix)[1555271,1561260] Several ** operator bugs (porter) 2006-09-22 (bug fix)[1562528] NULL terminates variadic calls (fellows,ryazanov) 2006-09-22 (new feature)[1520767][TIP 268] [package] alpha/beta version; [package require] ranges, [package prefer] selection mode (kupries) 2006-09-26 (platform support) MSVC8 AMD64 support (thoyts) 2006-09-27 (bug fix)[1567222] bignum << errors (porter) 2006-09-30 (enhancement)[1190441] quiet no-op [history] (sofer) 2006-10-04 clock tzdata updated to Olson's tzdata2006m (kenny) 2006-10-05 (bug fix)[1570718] make [lappend $nonList] complain (sofer,virden) 2006-10-05 (bug fix)[1122671] alignment fixes in unicode encoding routines (hobbs,staplin) 2006-10-05 (enhancement) Allow "_" in Tcl Module filenames (kupries) 2006-10-05 (new feature) [set ::http::strict 0] (default value is 1) to disable URL validity checking against RFC 2986 (hobbs) => http 2.5.3 2006-10-06 (new feature)[1565751][TIP 275] [binary scan] unsigned (thoyts) 2006-10-10 (bug fix)[1566526] crash cleaning up [namespace path] data (porter) 2006-10-12 (bug fix)[1576006] better error messages from [interp alias] (sofer) 2006-10-13 (platform support) get stack size on Darwin (steffen) --- Released 8.5a5, October 20, 2006 --- See ChangeLog for details --- 2006-10-20 (configure change) Added autodetection for OS-supplied timezone files (max) 2006-10-23 (enhancement)[1577278] Ensure the Tcl call stack always has a CallFrame, even at level 0 (sofer) *** POTENTIAL INCOMPATIBILITY for users of tclInt.h *** 2006-10-23 (enhancement)[1577492] Tcl_PushCallFrame and [info level] enhanced for ensemble rewrites (sofer) *** POTENTIAL INCOMPATIBILITY for [info level 0] on interp alias *** 2006-11-02 (feature change)[TIP 293] Replace {expand} with {*} (hobbs) *** POTENTIAL INCOMPATIBILITY with previous 8.5 alphas only *** 2006-11-04 (new feature)[TIP 274] Exponentiation operator is right associative (porter) 2006-11-09 (new feature)[TIP 272] Added [lreverse] and [string reverse] commands (fellows) 2006-11-14 (new feature)[TIP 261] [namespace import] returns list of imported commands (porter) 2006-11-15 (new feature)[TIP 270] New C routines Tcl_ObjPrintf, Tcl_AppendObjToErrorInfo, Tcl_Format, Tcl_AppendLimitedToObj, Tcl_AppendFormatToObj, Tcl_AppendPrintfToObj (porter) 2006-11-22 (feature change) Moved TCL_REG_BOSONLY from tcl.h to tclInt (porter) 2006-11-22 (new feature)[TIP 269] Added [string is list] classification command (mistackin, fellows) 2006-11-25 (new feature)[TIP 174] Added commands corresponding to most expr operators in ::tcl::mathop (fellows) 2006-11-26 (platform support)[1230558] --enable-64bit on more systems (steffen) 2006-11-27 (bug fix)[1602208] Fix 64-bit handling of select() on unix where fd was greater than 32 (fontaine, kenny) 2006-11-28 (new feature)[TIP 280] Added [info frame] command for more Tcl-level debugging information (kupries) 2006-12-01 (feature change)[TIP 298] Change Tcl_GetBignumAndClearObj to Tcl_TakeBignumFromObj (porter) 2006-12-01 (new feature)[TIP 287] Added [chan pending] subcommand (cleverly) 2006-12-01 (new feature)[TIP 299] Added isqrt() expr operator (kenny) 2006-12-04 (new feature)[TIP 267] Added -ignorestderr option to exec (fellows) 2006-12-05 (new feature)[TIP 291] ::tcl_platform(pointerSize) key (kupries) 2007-01-11 (configure change) Remove "-Wconversion" from deflt CFLAGS (english) 2007-01-25 (configure change) Ensure CPPFLAGS env var is used when set (steffen) 2007-02-19 (configure change) Use SHLIB_SUFFIX=".so" on HP-UX IA64 (was ".sl") (hobbs) 2007-02-20 (bug fix)[1479814] Handle Windows NT \\?\... extended paths (thoyts) 2007-03-01 (bug fix)[1671138] Fix infinite loop in compiled foreach with an empty list (fellows) 2007-03-07 (enhancement) Improved Windows time zone tables to handle new US DST rules (kenny) 2007-03-09 (enhancement) Improved Y2038 compliance of zoneinfo files (kenny) 2007-04-02 (enhancement) Added bytecode compilation for global, variable, upvar and namespace upvar (sofer) 2007-04-20 (bug fix) Improve clock localization for Japanese locale (kenny) 2007-04-20 (enhancement) Document Tcl_SetNotifier & Tcl_ServiceModeHook (kenny) 2007-04-23 (bug fix) fts_open() crash on 64bit Darwin 8 or earlier (steffen) --- Released 8.5a6, April 25, 2007 --- See ChangeLog for details --- 2007-04-30 (bug fix)[1705778] many valgrind-detected leaks corrected 2007-05-01 (bug fix)[1710709] leak in [string map] (porter) 2007-05-02 (bug fix)[1710707] leaks in filesystem paths (mistachkin,kenny) 2007-05-18 (feature change) {expand} syntax support removed. (porter) *** POTENTIAL INCOMPATIBILITY with previous 8.5 alphas only *** 2007-05-29 (bug fix)[1712723] Joinable thread death on 64-bit (virden,hobbs) 2007-05-30 (feature change)[1725186] When expanded literals are parsed, (example: {*}{1 2 3}), TCL_TOKEN_EXPAND_WORD token is no longer returned. Tokens reflecting the expansion are returned instead. (porter) *** POTENTIAL INCOMPATIBILITY with previous 8.5 alphas only *** 2007-06-06 (platform support) Darwin: add plist to tclsh (steffen) 2007-06-12 (enhancement) [info] is now a [namespace ensemble] (fellows) 2007-06-20 (enhancement) better `make html` results (hobbs) 2007-06-21 (feature change)[1740962] leave traces created during execution of traced command do not fire (sofer) *** POTENTIAL INCOMPATIBILITY *** 2007-06-23 (bug fix) Darwin: prevent post-fork() abort() (steffen) 2007-06-27 (bug fix)[1743941] Infinite loop in Tcl_CreateTrace traces (porter) 2007-06-29 (enhancement) Tcl_Alloc alignment on Darwin (steffen) 2007-06-30 (bug fix)[1726873] crash in thread sync objects (vasiljevic,twylite) 2007-06-30 (bug fix)[1717186] [lsort -command \{ $l] leak (afredd,fellows) 2007-07-05 (bug fix)[1743676] no command named "" error message (porter,virden) 2007-07-11 (bug fix)[1752146] [while 1 {}] & [interp limit] on commands (sofer) 2007-07-31 (bug fix)[681877] tcl_platform(user) from system, not env (fellows) 2007-07-31 (enhancement)[1750051] space efficiency of Tcl variables (sofer) *** POTENTIAL INCOMPATIBILITY for C code that accesses internal Tcl structs Var, Bytecode, Namespace, or CallFrame. *** 2007-08-01 (enhancement)[1764318] word.tcl proc rewrites (petasis,fellows) 2007-08-08 (bug fix)[1770224] [tcl::mathop::>> $big1 $big2] errors (porter) 2007-08-14 (platform support) Darwin [load] from VFS on intel & 64bit (steffen) 2007-08-15 (bug fix)[1773127] corrected open mode "a+" (rottman,fellows) 2007-08-16 (bug fix)[1773040] ::errorInfo trace crash (janssen,porter) 2007-08-16 (performance)[1564517] pre-compile constant expressions (porter) 2007-08-21 (bug fix)[1775878] 'puts \' in interactive tclsh failed to move to prompt for continuation line (porter) 2007-08-25 (bug fix)[1781282] [clock scan] case senstivity (kenny) 2007-08-25 (performance)[1767293] ** on native integer types (kenny) 2007-09-03 clock tzdata updated to Olson's tzdata2007g (kenny) 2007-09-06 (platform support) Darwin: drop support for Xcode 1.5 project, add project for Xcode 3.0 (steffen) 2007-09-08 (bug fix)[1786481] nested [dict update] crash (fellows) 2007-09-08 (bug fix)[1710710] TclPtrSetVar leak (mistachkin,sofer) 2005-09-09 (feature removed) Tcl_ObjType "nsName" no longer registered (porter) *** POTENTIAL INCOMPATIBILITY for Tcl_GetObjType("nsName") *** 2007-09-10 (bug fix)[1740631] Linked variable unlink prevention (maros,hobbs) 2007-09-11 (bug fix)[1786481] [dict update] stack management (sofer) *** POTENTIAL INCOMPATIBILITY with previous 8.5 alpha bytecode only *** 2007-09-11 (bug fix)[1578344] [package require -exact] 8.4 compat (porter) *** POTENTIAL INCOMPATIBILITY with previous 8.5 alphas only *** 2007-09-11 (bug fix)[1772989,1071322] Support _, : in test constraints (porter) => tcltest 2.3b1 2007-09-11 (platform support) Windows AMD64 support (thoyts) 2007-09-14 (enhancement)[1793984] DTrace provider for Tcl (steffen) 2007-09-14 (bug fix)[1519940] surplus ns path invalidation (fellows,bauer) 2007-09-15 (platform support) SunOS-5.1x link with cc, not ld (steffen) 2007-09-17 (platform support)[1748251] Fix NetBSD link failures (english) (bug fix)[1066755] Several stack efficiency efforts increases recursion limit on Windows to be larger than the default [interp recursionlimit] value --- Released 8.5b1, September 26, 2007 --- See ChangeLog for details --- 2007-10-02 (bug fix)[1806422] proper [tcl::tm::path] autoload (porter) 2007-10-02 (bug fix) Improve Tcl_DecrRefCount() robustness (staplin) 2007-10-11 (bug fix)[1805887] [string is int -failindex] for 0o, 0b (porter) 2007-10-15 (bug fix)[1813528] Tcl_ParseBraces read past buffer (mistachkin) 2007-10-25 (bug fix)[1726873] intermittent crash in threads (vasiljevic) --- Released 8.5b2, October 26, 2007 --- See ChangeLog for details --- 2007-10-27 (bug fix)[1821159] fixed broken compile on x86_64 (sofer) 2007-10-27 (bug fix)[1810264] stop panic in RE lexer (fellows) 2007-10-28 (enhancement)[1826906] Embed iso8859-1 encoding in libtcl (fellows) 2007-11-01 (bug fix)[1808258] [string is ascii \000] (fellows) 2007-11-05 (bug fix)[1823576] [fconfigure $serial -xchar \000] (cassof) 2007-11-07 (performance)[1827996] binary glob matching (hobbs) 2007-11-07 (performance) binary [gets] (hobbs) 2007-11-09 (performance)[1829248] interp state reset (sofer) 2007-11-10 (performance) stack checking (sofer) 2007-11-10 (performance) list indexing bytecode (sofer) 2007-11-11 (performance)[1830038] macros to fetch Tcl_Obj intreps (sofer) 2007-11-11 (performance)[1830166] RE bytecode for simple cases (hobbs) 2007-11-13 (performance) [switch] & [regexp] use RE bytecode (hobbs, fellows) 2007-11-14 (performance) bytecode for [info exists] (fellows) 2007-11-15 (new feature)[1231022] configure option: --disable-rpath (fellows) 2007-11-15 (bug fix)[1810038] infinite loop in RE compiler (lane,porter) Many significant documentation improvements (fellows, sofer) --- Released 8.5b3, November 19, 2007 --- See ChangeLog for details --- 2007-11-20 (enhancement) string rep of dict has stable order (fellows) 2007-11-21 (enhancement) compiled ensemble support (fellows) 2007-11-22 (enhancement) [dict] is now an ensemble (fellows) 2007-11-23 (enhancement) [string] is now an ensemble (fellows) 2007-11-26 (bug fix)[1815573] Correct stack checking failure (sofer,golovan) 2007-11-27 (bug fix)[800753] Document single byte char limit for [chan configure -eofchar] (cassoff) 2007-12-03 (enhancement)[1836519] [switch $val $body] safe/fast (fellows,spjuth) 2007-12-03 (release) tcltest package bump to 2.3.0 (porter) 2007-12-03 (bug fix)[1618235] fix BSD compile errors (fellows) 2007-12-05 (bug fix)[1844789] fix [lsearch -exact -integer] crash (fellows) 2007-12-05 (performance)[1845092] Tcl_ObjType for channel names (hobbs) 2007-12-14 (bug fix)[1602539] NUL pollution in [glob] result (hobbs) 2007-12-17 (bug fix)[1851832,1851524] memory alignment correction (sofer) 2007-12-18 (bug fix)[1810264] revised regexp engine to prevent debilitating over-consumption of resources (drewry,lane,ormandy,fellows) Several documentation and release notes improvements --- Released 8.5.0, December 20, 2007 --- See ChangeLog for details --- 2007-12-23 (bug fix)[1857126] restore backref support to regexps (hobbs) 2007-12-26 (enhancement)[1856994] [lsort] performance (sofer) 2008-01-10 (bug fix)[1867855] fix [format %lli 0] crash (porter) 2008-01-11 (bug fix)[1850424,1860425] stack checking on *bsd (sofer,noble) 2008-01-13 (bug fix)[1353846] crash in read-only serial (hobbs,newman) 2008-01-15 (bug fix)[1869989] mem leak; expr literals (porter,melbardis) 2008-01-20 (bug fix)[1869405] binary [gets]; stacked channels (hobbs,ficicchia) 2008-01-22 (bug fix)[1867855] fix [lreverse {}] crash (sofer,madden) 2008-01-30 (bug fix)[1882373] fix Tcl_GetAlias pointer code (an00na) Several documentation and release notes improvements --- Released 8.5.1, February 5, 2008 --- See ChangeLog for details --- 2008-02-06 (enhancement) [clock format] performance (kenny) 2008-02-12 (bug fix)[1891827] compiled [switch -nocase] error (fellows) 2008-02-22 (bug fix)[1818565] missing state array in http::status (thoyts) => http 2.5.4 2008-02-26 (bug fix)[1868845] corrected [eof] ordering (thoyts) 2008-02-26 (new feature) [http::meta] command (thoyts) => http 2.5.5 2008-02-26 (bug fix)[1902436] fixed regexps ending in \* (hobbs) 2008-02-27 (bug fix)[1862555,1902423] [clock] range & l10n (kenny) 2008-02-28 (bug fix) [return -level 0] memory leak (porter) 2008-02-28 (bug fix) [format %llx $big] memory leak (porter) 2008-02-28 (bug fix) expression parser error message memory leak (porter) 2008-02-28 (bug fix) memory leak when enter trace modifies command (porter) 2008-02-29 (enhancement) Consumer refcounting for Tcl_SetReturnOptions() and Tcl_AddObjToErrorInfo() (spjuth,porter) *** POTENTIAL INCOMPATIBILITY *** 2008-03-07 (bug fix)[1899164] Avoid expr and script bytecode confusion (porter) 2008-03-07 (bug fix)[1904907] finalize crash in Tcl_GetReturnOptions (kupries) 2008-03-10 (bug fix)[1893815] expr {abs(-1e-350)} => -0.0 (porter) 2008-03-10 (bug fix)[1901113] crash in [tcl::Bgerror {} {}] (madden,porter) 2008-03-11 (bug fix)[1911919] unset trace inf loop in namespace delete (sofer) 2008-03-12 (new feature) some HTTP 1.1 support in http (and more!) (hobbs) => http 2.7 2008-03-13 (enhancement) support space in INSTALL_ROOT or $builddir (steffen) 2008-03-16 (bug fix)[1903325] bytecode stack space prediction crash (fellows) 2008-03-18 (bug fix)[1914604] Tcl Modules: encoding fixed to utf-8; environment variables without "." added to customization hooks (kupries) *** POTENTIAL INCOMPATIBILITY *** 2008-03-18 (bug fix)[1914503] alignment of TclStackAlloc() return (sofer)\ 2008-03-20 (bug fix)[1868171] expose Tcl_GetMemoryInfo (for AOLserver) (fellows) 2008-03-24 (bug fix)[1923966] crash in [binary format x0s] (thoyts) 2008-03-27 (platform support)[1921166] Solaris 64bit build fixes (steffen) 2008-03-27 clock tzdata updated to Olson's tzdata2008b (kenny) --- Released 8.5.2, March 28, 2008 --- See ChangeLog for details --- 2008-03-30 (bug fix)[1783544] more robust TclIsNaN() (kenny,teterin) 2008-04-01 (interface)[1819422] tclStubsPtr no longer in libtcl (porter) *** POTENTIAL INCOMPATIBILITY *** 2008-04-01 (bug fix)[1839067] FP round fix for Solaris/x86 (kupries,schlenker) 2008-04-02 (bug fix)[780533,1932639] [fcopy] callbacks unreliable (ferrieux) 2008-04-02 (interface)[1819422] libtclstub symbols MODULE_SCOPE (steffen) 2008-04-04 (bug fix) [chan postevent] crash (kupries) 2008-04-07 (bug fix) Fix broken [format {% d}] (max) 2008-04-07 (bug fix)[1350564] Bi-directional [fcopy] now supported (ferrieux) 2008-04-16 (bug fix)[1938497] Tcl_SetNotifier() fixes (steffen) 2008-04-16 (interface)[1938497] make stubs tables 'static const' (steffen) 2008-05-02 (new feature) [binary] is now a [namespace ensemble] (thoyts) 2008-05-07 (bug fix) [dict append] crash (mccormack,fellows) 2008-05-21 (bug fix)[1968882] [info complete "\\\n"] => 0 (porter) 2008-05-22 (bug fix)[1968245] Tcl_LogCommandInfo() accept length=-1 (darroch) 2008-05-23 (bug fix)[1965787] 32-bit overflow in [tell] result (ferrieux) 2008-05-31 (new feature)[TIP 257] [oo::*] commands from TclOO (fellows) 2008-06-04 (new feature)[TIP 317] [binary encode]; [binary decode] (thoyts) 2008-06-06 (new feature)[TIP 230] [chan push]; [chan pop] (kupries) 2008-06-08 (enhancement)[1973096] bytecompiled [uplevel] scripts (sofer) 2008-06-12 (platform support) Solaris static build with DTrace (steffen) 2008-06-12 (platform support) Solaris/amd64 gcc 64bit support (steffen) 2008-06-13 (new feature)[TIP 285] [interp cancel]; Tcl_CancelEval() (mistachkin) 2008-06-20 (bug fix)[1999035] make [interp bgerror $i] act in $i (porter) 2008-06-23 (bug fix)[1972879] bad path intrep caching (porter) 2008-06-24 (bug fix)[1999176] crash in [glob -dir {} a] (porter) 2008-06-25 (bug fix)[1999119] Support TM packages in Safe Base (kupries) --- Released 8.6a1, June 25, 2008 --- See ChangeLog for details --- 2008-06-29 (bug fix)[2004480] plug memory leaks (ade,porter,steffen) 2008-07-01 (enhancement)[1905562] embed recursion limit in RE engine (fellows) 2008-07-03 (bug fix)[1969717] fix package finding on Samba shares (jos) 2008-07-03 (bug fix)[1987821] mem leak in [seek] on reflected chan (kupries) 2008-07-13 (enhancement)[2017110] new Non-Recursive Evaluation implementation enables deep Tcl evaluation stacks without deep C stacks. (sofer) 2008-07-20 (enhancement)[2008248] dict->list preserve item intreps (pasadyn) 2008-07-21 (bug fix)[582506] imported cmds now fire execution traces (sofer) 2008-07-21 (bug fix)[2015723] [file] bad use of inodes on Windows (thoyts) 2008-07-21 (new feature)[TIP 304] [chan pipe] (ferrieux) 2008-07-21 (bug fix)[2021443] more consistent "wrong # args" msgs (nijtmans) 2008-07-21 (enhancement) [info frame] returns file data in more cases (kupries) 2008-07-29 (bug fix)[2030670] fix rare panic in TclStackFree (pasadyn,sofer) 2008-08-01 Tcl_Finalize() no longer called implicitly on DLL_PROCESS_DETACH. 2008-08-05 (enhancement)[1994512] async connect logic simplified (jenglish) 2008-08-06 (bug fix)[2040295] stopped supplying a workaround for bugs in Itcl's use of [namespace code]. Itcl now supplies its own workaround. *** POTENTIAL INCOMPATIBILITY for older Itcl releases *** 2008-08-06 (bug fix)[2039178] repaired guard against dispatching oo methods in a deleted interp. (porter) 2008-08-08 tzdata updated to Olson's tzdata2008e (kenny) 2008-08-11 (bug fix)[2046846] 64bit support for http zlib crc (thoyts) => http 2.7.1 2008-08-11 (enhancement) automatic [package provide] for TMs (kupries) 2008-08-17 (bug fix)[2055782] crash involving Tcl_ConcatObj (sofer) 2008-08-21 (new feature) CONST-ified Tcl routines passing (Tcl_ObjType *), (Tcl_Filesystem *), or (Tcl_Timer *) arguments (nijtmans,porter) *** POTENTIAL INCOMPATIBILITY *** 2008-08-21 (bug fix)[2065115] Restored ***= regexp functioning (hobbs,porter) --- Released 8.6a2, August 25, 2008 --- See ChangeLog for details --- 2008-08-29 (bug fix)[2082299] Install TclOO header files (fellows) 2008-09-01 oo methods called during interp deletion no longer skipped if they do not need the dying interp (fellows) 2008-09-02 (support) Dropped support for pre-ANSI compilers. (porter) 2008-09-04 (bug fix)[2093947] var unset trace in coroutine (fellows,sofer) 2008-09-10 (enhancement) efficient list->dict conversion (elby,fellows) 2008-09-10 (bug fix)[2102930] faulty numLevels count (madden,sofer) 2008-09-16 (bug fix)[2114165] eval failure following cancel (sofer) 2008-09-17 (bug fix)[2116053] export [min] and [max] from tcl::mathfunc (sofer) 2008-09-22 (new feature)[TIP 320] oo common variable declaration (fellows) 2008-09-24 (new feature)[TIP 316] portable access to Tcl_StatBuf (fellows) 2008-09-24 (new feature)[TIP 323] [file delete], [file mkdir] zero pathNames (porter) 2008-09-25 (new feature)[TIP 315] new var: tcl_platform(pathSeparator) (vu,fellows) 2008-09-25 (new feature)[TIP 323] [global], [variable] zero varNames (porter) 2008-09-26 (new feature)[TIP 323] [lassign], [namespace upvar], [my variable] zero varNames (porter) 2008-09-26 (new feature)[TIP 323] [tcl::tm::path add|remove] zero pathNames (porter) 2008-09-26 (new feature)[TIP 323] [lrepeat] zero elements; zero repeats (porter) 2008-09-27 (bug fix)[2130992] prevent overflow crash in [lrepeat] (fellows) 2008-09-28 (new feature)[TIP 314] ensemble parameters before subcommand (hellström,fellows) 2008-09-29 (new feature)[TIP 318] revised defaults for [string trim] (poser) *** POTENTIAL INCOMPATIBILITY *** 2008-09-29 (new feature)[TIP 313] [lsearch -bisect] (spjuth) 2008-09-29 (new feature)[TIP 326] [lsort -stride] (elby) 2008-09-29 (new feature)[TIP 323] [linsert] zero elements (porter) 2008-09-29 (new feature)[TIP 323] [glob] zero patterns (porter) 2008-10-02 (new feature)[TIP 330] interp->result access disabled (kenny) *** POTENTIAL INCOMPATIBILITY *** 2008-10-03 (new feature)[TIP 265] Tcl_ParseArgv() (bromley) 2008-10-03 (new feature)[TIP 195] [tcl::prefix] (spjuth) 2008-10-04 (new feature) CONST-ified Tcl routines Tcl_GetIndexFromObj, Tcl_RegisterConfig, Tcl_InitCustomHashTable, and routines passing (Tcl_ChannelType *). (nijtmans) *** POTENTIAL INCOMPATIBILITY *** 2008-10-04 (bug fix)[2059262] unload only libraries marked unloadable (nijtmans) *** POTENTIAL INCOMPATIBILITY *** 2008-10-05 (new feature)[TIP 331] [lset listVar end+1 $value] (kenny) 2008-10-05 (bug fix)[2143288] correct bad isqrt() results (boffey,kenny) 2008-10-05 (new feature) CONST-ified return value of the Tcl_FSFileAttrStringsProc prototype. (nijtmans) *** POTENTIAL INCOMPATIBILITY for Tcl_Filesystems *** 2008-10-07 (new feature)[TIP 327] [tailcall] (sofer) 2008-10-07 (new feature)[TIP 328] [coroutine],[yield],[info coroutine] (sofer) 2008-10-08 (bug fix)[2151707] fix stack trace from variable trace (porter) 2008-10-10 (bug fix)[2155658] crash in oo method export (fellows) --- Released 8.6a3, October 10, 2008 --- See ChangeLog for details --- 2008-10-13 (bug fix) Fix ability to join threads on 64-bit Windows (thoyts) 2008-10-23 (bug fix)[2186888] Direct-eval [for] handling of [continue] was broken by NRE reform (sofer,porter) 2008-10-24 (bug fix) fix failure to read SHOUTcast streams (thoyts) => http 2.7.2 2008-10-27 (enhancement) system encoding at startup is now "iso8859-1", and no longer "identity". Use of identity encoding minimized (porter) *** POTENTIAL INCOMPATIBILITY *** 2008-10-31 (bug fix)[2200824] revised [oo::define] to include caller context when resolving names. (nassau,fellows) 2008-11-10 (bug fix)[2255235] [platform::shell::LOCATE] update (ring,kupries) => platform::shell 1.1.4 2008-11-13 (bug fix)[2269431] VFS [load] -> tempfile litter (ficicchia,nijtmans) 2008-11-26 (bug fix)[2114900] updated tclIndex file (cassoff,kenny) 2008-11-27 (bug fix)[2251175] [{*}{\{}] errors (hellström,ferrieux,porter) 2008-11-29 (new feature)[TIP 210] [file tempfile] (techentin,fellows) 2008-11-30 (bug fix)[2362156] [clock]: colon in format string (mizuno,kenny) 2008-12-02 (bug fix)[2270477] hang in channel finalization (ferrieux,kupries) 2008-12-02 (new feature)[TIP 336] Tcl_*ErrorLine() routines. Direct access to the errorLine field of the interp struct denied by default. (porter) *** POTENTIAL INCOMPATIBILITY *** *** Define USE_INTERP_ERRORLINE to restore access for legacy code *** 2008-12-04 (bug fix)[2385549] [file normalize] failed on some paths (porter) 2008-12-05 (new feature)[TIP 307] Tcl_TransferResult() (leunissen,fellows) 2008-12-05 (new feature)[TIP 335] Tcl_InterpActive() (mistachkin,fellows) 2008-12-09 (new feature)[TIP 337] Tcl_BackgroundException() (porter) 2008-12-10 (new feature)[TIP 341] >1 [dict filter] patterns (hellström,fellows) 2008-12-10 (new feature)[TIP 343] [format %b $n] [scan $s %b] (ferrieux) 2008-12-10 tzdata updated to Olson's tzdata2008i (kenny) 2008-12-11 (new feature)[TIP 234] [zlib] and Tcl_Zlib*() (sheffers,fellows) 2008-12-11 (bug fix)[2407783] spoil ChannelState when channel name passes among multiple interps (kupries) 2008-12-12 (new feature)[TIP 322] Tcl_NR*() routines to enabled non-recursive evaluation in extensions (sofer,kenny) 2008-12-09 (new feature)[TIP 338] Tcl_*StartupScript() (porter) *** POTENTIAL INCOMPATIBILITY for callers of Tcl*Startup* routines *** 2008-12-16 (new feature)[TIP 329] [try] [throw] (davel,fellows) 2008-12-17 (new feature)[TIP 308] package tdbc 1.0b1 (kenny) 2008-12-18 (new feature)[TIP 332] [close $chan read|write] (ferrieux) 2008-12-18 (bug fix)[2444274] panic in long commands from {*} (goth,porter) --- Released 8.6b1, December 19, 2008 --- See ChangeLog for details --- 2008-12-27 [TIP 234] Tcl_Zlib* interface revisions (fellows) *** INCOMPATIBILITY with interface of 8.6b1 *** 2009-01-02 (platform support)[878333] IRIX compat for mkstemp() (fellows) 2009-01-03 (bug fix)[2481670] [clock add] error message (talvo) 2009-01-05 (bug fix)[2412068] NR-enable [source] (fellows) 2009-01-06 (bug fix)[2489836] crash unknown method dispatch (nadkarni,fellows) 2009-01-06 (bug fix)[2481109] fix context of instance name check (fellows) 2009-01-08 (enhancement) more -errorcode values (fellows) 2009-01-19 (new feature) CONFIG_INSTALL_DIR - where tclConfig.sh goes (cassoff) 2009-01-19 (platform support) better tools for BSD ports (cassoff) 2009-01-21 (bug fix)[2458202] exit crash with [chan create]d channel (kupries) 2009-01-26 (bug fix)[2446662] uniformly declare EOF on RST on sockets (ferrieux) 2009-01-26 (bug fix)[1028264] delay WSACleanup() from under our feet (ferrieux) 2009-01-29 (bug fix)[2519474] Tcl_FindCommand() bug exposed by oo (fellows) 2009-01-29 (bug fix)[2537939] Fix Tcl_OOInitStubs() for no-stubs build (fellows) 2009-02-04 (bug fix)[2561746] [string repeat] overflow crash (porter) 2009-02-05 (enhancement) optimize string operations on bytearrays (fellows) 2009-02-12 (bug fix) enable simpler [oo::define] extension (ferri,fellows) 2009-02-15 (bug fix)[2603158] Tcl_AppendObjToObj: append to self crash (porter) 2009-02-17 (platform support) MSVC and _WIN64 (hobbs) 2009-02-20 (bug fix)[2571597] [file pathtype /a] wrong result (nadkarni,porter) 2009-03-03 (bug fix)[2662434] [zlib crc32] result now unsigned (gavilan,fellows) 2009-03-15 (platform support) translate SIGINFO where defined (BSD) (teterin) 2009-03-15 (bug fix)[2687952] TSD struct memleak (mistachkin) 2009-03-18 (bug fix)[2688184] memleak in [file normalize] (mistachkin) 2009-03-20 (bug fix)[2597185] crash in Tcl_AppendStringToObj (porter) 2009-03-20 (bug fix)[2561794,2669109,2494093,2553906] string overflow (porter) 2009-03-22 (bug fix)[2502037] NR-enable [namespace unknown] (sofer) 2009-03-27 (bug fix)[2710920] [file dirname|tail /foo/] errors (epler,porter) 2009-04-08 (bug fix)[2570363] unsafe [eval]s in tcltest (bron,porter) => tcltest 2.3.1 2009-04-08 (platform support) more Darwin kernel patterns (steffen) => platform 1.0.4 2009-04-09 (bug fix)[26245326] [http::geturl] connection failures (golovan) => http 2.7.3 2009-04-10 (new feature) Darwin: embeddable CoreFoundation notifier (steffen) 2009-04-10 (bug fix)[1961211] Darwin [load] back-compatibility (steffen) 2009-04-09 (new feature) http chunked+gzip modes (thoyts) => http 2.8.0 2009-04-11 (enhancement) clarified cmd name resolution in oo forwards (fellows) 20009-04-19 (bug fix)[2715421] http: excess bytes after POST (thoyts) => http 2.8.1 2009-04-30 (bug fix)[2486550] coroutine in [interp invokehidden] (sofer) 2009-05-07 (bug fix)[2785893] find command in deleted namespace (sofer) 2009-05-08 (bug fix)[2414858] tailcall in oo constructor (fellows) 2009-05-14 (new subcommand)[TIP 354] [info object namespace] (fellows) 2009-05-29 (platform support) account for ia64_32 (kupries) => platform 1.0.5 2009-06-02 (bug fix)[2798543] incorrect [expr] integer ** results (porter) 2009-06-10 (bug fix)[2801413] overflow in [format] (porter) 2009-06-13 (bug fix)[2802881] corrected compile env context (tasada,porter) 2009-06-17 (redesign) reduced ambition of [exit] finalization with aim to avoid otherwise very tricky multi-thread finalization bugs. (staplin,ferrieux) *** POTENTIAL INCOMPATIBILITY for exit handlers *** 2009-06-26 (platform support) updates for Xcode 3.1 & 3.2 (steffen) 2009-06-30 (platform support) clang static analyzer macros (steffen) 2009-07-01 (bug fix)[2806622] Win: bad tcl_platform(user) value (thoyts) 2009-07-05 (bug fix) zlib support asynch [chan copy] on chan transform (fellows) 2009-07-12 (bug fix)[1895546] TclOO support for Itcl 4 method caching (fellows) 2009-07-13 (bug fix)[1605269] NR-related [info frame] fixes (kupries) 2009-07-14 (bug fix)[2821401] NR-enable direct eval [switch] (kenny) 2009-07-16 (bug fix)[2819200] underflow settings on MIPS systems (porter) 2009-07-19 (interface)[TIP 354] new routine Tcl_GetObjectName() (fellows) 2009-07-20 (performance) favor [string is] success cases over empty (fellows) 2009-07-22 (interface) removed TclpPanic() routine (nijtmans) 2009-07-23 (bug fix)[2820349] plug event leak in notifier (mistachkin) 2009-07-24 (bug fix)[2826248] crash in Tcl_GetChannelHandle (sonnenburg,kupries) 2009-07-31 (bug fix)[2830354] overflow in [format] (misch,porter) 2009-08-06 (bug fix)[2827000] reflected channels can signal EGAIN (kupries) 2009-08-12 (new feature)[TIP 353] Tcl_NRExprObj() (porter) 2009-08-20 (bug fix)[2823276] NR-enable [if], [for], [while] (fellows) 2009-08-20 (bug fix)[2806250] EIAS violation in ~foo pathnames (porter) 2009-08-21 (bug fix)[2837800] [glob */foo] return ./~x/foo (porter) 2009-08-24 (bug fix) nested event loop notifier w/TkAqua Cocoa (alaoui,steffen) 2009-08-25 (bug fix) [info frame] account for continuation lines (kupries) 2009-08-27 (bug fix)[2845535] overflows in [format] (porter) 2009-09-01 (bug fix) improved error message in tcltest (porter) => tcltest 2.3.2 2009-09-11 (bug fix)[2849860] http handle "quoted" charset value (fellows) => http 2.7.4 2009-09-11 (enhancement)[2314561] [subst] now bytecompiled, NR-enabled (porter) 2009-09-24 (new feature)[TIP 356] Tcl_NRSubstObj() (porter) 2009-10-04 (bug fix)[2569449] Core Foundation memory bug in Tiger (steffen) 2009-10-06 (bug fix) repair intrep loss in slave interp evaluations introduced by first versions of the NRE conversion (nadkarni,porter) 2009-10-06 (bug fix)[1941434] broken tclTomMath.h includes (porter) 2009-10-07 (bug fix)[2871908] leaked hash table (mistachkin,kupries) 2009-10-08 (bug fix)[2874678] bignum leak in [dict incr] (fellows) 2009-10-17 (bug fix)[2629338] crash in var unset traces (raney,fellows) 2009-10-19 (bug fix)[2107634] extend [read] and [gets] to Tcl string limits (morrison,parker,porter) 2009-10-21 (bug fix)[2882561] Haiku OS signal support (morrison,fellows) 2009-10-22 (bug fix)[2883857] [my varname arr(index)] (boudaillier,fellows) 2009-10-23 (bug fix) 0-length writes: spurious SIG_PIPE (teterin,kupries) 2009-10-24 Broken DST applied EU rules to US zones (lehenbauer,kenny) 2009-10-29 (bug fix)[2800740] halved bignum memory on 64-bit systems (porter) *** POTENTIAL INCOMPATIBILITY *** 2009-11-05 (bug fix)[2854929] TM search path support in Safe Base (kupries) 2009-11-05 (enhancement) rewrite of the Safe Base commands (kupries) 2009-11-11 (bug fix)[2888099] [close] loses ENOSPC error (khomoutov,ferrieux) 2009-11-11 (bug fix)[2891171] RFC 3986 compliance for ? in URL (nijtmans) => http 2.8.2 2009-11-12 (bug fix)[2895565] [fcopy -size] miscounts when converting encodings (kupries) 2009-11-16 (bug fix)[2891556] encoding finalization crash (mistachkin,ferrieux) 2009-11-18 (bug fix)[2849797] consistent names for std chans (nijtmans,fellows) *** POTENTIAL INCOMPATIBILITY *** 2009-11-19 (enhancement) [load]able Tcltest extension (nijtmans) 2009-11-24 (bug fix)[2893771] [file stat] on Win locked files (thoyts) 2009-11-24 (bug fix)[2903011] crash call destructor from constructor (fellows) 2009-12-03 (bug fix)[2906841] Safe Base [glob ../*] fixes (fellows) 2009-12-09 (bug fix)[2901998] consistent I/O buffering (ferrieux,kupries) 2009-12-11 (bug fix)[2806407] NR-enabled coroutines (sofer) 2009-12-16 (bug fix)[2913616] msgcat: improved safe interp support (fellows) => msgcat 1.4.3 2009-12-22 (bug fix)[2918962] [lsort -index -stride] crash (moore,fellows) 2009-12-23 (bug fix)[2913625] [info script/nameof] in safe interps (fellows) 2009-12-28 (bug fix)[2891362] enable time limit in child interps (fellows) 2009-12-29 (bug fix)[2922555] [binary decode hex { }] crash (thoyts) 2009-12-29 (bug fix)[2895741] enable min(), max() in safe interps (fellows) 2009-12-30 (bug fix)[2824981] guard [unknown] against [set] undef (sofer) 2010-01-05 (bug fix)[2918610] [file rootname] corruption (magerya,porter) 2010-01-18 (bug fix)[2932421] less [format %s] shimmer (ferrieux) 2010-01-18 (bug fix)[2918110] [chan postevent] crash (bron,kupries) 2010-01-21 (bug fix)[2910748] NR-enable epoch fallback direct eval (sofer) 2010-01-30 (enhancement) [unset] now bytecompiled (fellows) 2010-02-01 (bug fix)[2942697] faster match: some pathological regexp patterns (lane,fellows) 2010-02-01 (bug fix)[2939073] [array unset] unset trace crash (ferrieux) 2010-02-02 (bug fix)[2944404] crash in oo destructor (fellows) 2010-02-02 (new feature) [array] is now a [namespace ensemble] (fellows) 2010-02-05 (enhancement) [error] now bytecompiled (fellows) 2010-02-08 (bug fix)[2947783] Tcl_Zlib*flate fail on shared values (fellows) 2010-02-09 (enhancement) [try] now bytecompiled (fellows) 2010-02-11 (bug fix)[2826551] line-sensitive matching in regexp (dejong) 2010-02-11 (bug fix)[2949740] [open |noSuch rb] crash (kovalenko,fellows) 2010-02-15 (bug fix)[2950259] harden (delete obj ns -> delete obj) (fellows) 2010-02-21 (bug fix)[2954959] get sign of abs($zero) right (nijtmans) 2010-02-22 (bug fix)[2762041] zlib chan transforms read EOF too early (kupries) 2010-02-27 (bug fix)[801429] Tcl_SetMainLoop() thread safety (fellows) *** POTENTIAL INCOMPATIBILITY *** 2010-03-02 (enhancement) -fvisibility-hidden build support (nijtmans) 2010-03-04 (bug fix)[2962664] [oo::class destroy] crash (fellows) 2010-03-05 (interface) TclOO typedefs for function pointers (fellows) *** POTENTIAL INCOMPATIBILITY *** 2010-03-09 (bug fix)[2936225] stop [chan copy] to slow channel consuming all memory with buffer backup (ferrieux) 2010-03-17 (bug fix)[2921116] crash in chan transfrom teardown (kupries) 2010-03-19 (enhancement) [throw] now bytecompiled (fellows) 2010-03-20 (enhancement) permit [fcopy] of > 2**31 bytes (fellows) 2010-03-24 (new feature) [info object methodtype] (fellows) 2010-03-24 (bug fix)[2383005] [return -errorcode] reject non-list (porter) 2010-03-25 (bug fix)[2976504] broken fstatfs() call (reeuwijk,fellows) 2010-03-30 (new feature)[TIP 362] [registry -32bit|-64bit] (courtney,fellows) => registry 1.3 2010-03-30 (bug fix)[2978773] refchan mem preservation (kupries) 2010-04-02 (new feature)[TIP 357] Tcl_LoadFile, Tcl_FindSymbol, etc. (kenny) 2010-04-05 (configure change)[TIP 364] default build: --enable-threads (fellows) *** POTENTIAL INCOMPATIBILITY *** 2010-04-02 (new feature)[TIP 348] [info errorstack], [return -errorstack] (ferrieux) 2010-04-20 (enhancement) update bundled zlib to 1.2.5 (nijtmans) 2010-04-29 (enhancement)[2992970] optimize bytearray appends (fellows) 2010-05-19 (bug fix)[3004007] dict/list shimmer w/o string rep loss (fellows) 2010-06-09 (bug fixes) platform: several fixes for 64 bit systems (kupries) => platform 1.0.9 2010-06-16 (bug fix)[3016135] [clock format] in he_IL locale (nijtmans) 2010-06-18 (bug fix)[3017997] Add .cmd to file extensions for [exec] (fellows) 2010-06-28 (bug fix)[3019634] support errno.h changes in MSVC++ 2010 (nijtmans) *** POTENTIAL INCOMPATIBILITY *** 2010-07-02 (enhancement) -errorcode for [expr] domain errors (fellows) 2010-07-28 (bug fix)[3037525] crash deleting vars @ callframe pop (sofer) 2010-08-04 (bug fix)[3034840] mem corrupt when refchan loses interp (kupries) 2010-08-04 (enhancement) Win [load] use LOAD_WITH_ALTERED_SEARCH_PATH (hobbs) 2010-08-04 (platform support) panic on detection of win9x system (hobbs) *** POTENTIAL INCOMPATIBILITY *** 2010-08-10 (fix) Handle non-null-terminated bytearrys in glob matching (hobbs) 2010-08-11 (fix) copy-paste bug in [yield] implementation (sofer, goth) 2010-08-11 (platform) Drop pre-aix 4.2 support, ldAix (hobbs) 2010-08-14 (frq)[2819611] changed signatures of hash fnctions, delete-file, and get-native-path (nijtmans) *** POTENTIAL INCOMPATIBILITY *** 2010-08-15 (bug fix)[3045010] tweaked error message for wrong#args of lambda's (fellows) 2010-08-18 (bug fix)[3004191] fixed safe [glob] (fellows) 2010-08-21 (patch)[3034251] genStubs steal features of ttkGenStubs (nijtmans) 2010-08-26 (bug fix)[1230554] configure, OSF-1 problems, windows manifest issues (hobbs) 2010-08-30 (bug fix) [3046594,3047235,3048771] reimplemented tailcall (sofer) 2010-08-31 fixed manifest handling on windows (hobbs, kupries) 2010-08-31 windows makefile and stub changes (nijtmans) 2010-09-01 (bug fix)[3057639] compiled lappend trace consistency (hobbs,kupries) *** POTENTIAL INCOMPATIBILITY *** 2010-09-01 fixed safe glob handling of -directory (kupries) 2010-09-02 fixed safe glob handling of -join (kupries) 2010-09-08 (bug fix)[3059922] build with mingw on amd64 (porter, mescalinum) 2010-09-15 (bug fix)[3067036] stop hang in bytearray append (fellows) 2010-09-22 unified set of link libraries between mingw and vc (nijtmans) 2010-09-22 (bug fix)[3072640] protect writes to ::error* variables (sofer) 2010-09-23 fix leak of return options [catch $err m constant] (porter, hobbs) 2010-09-24 (bugfix)[3056775] fixed race condition in windows sockets (kupries) 2010-09-24 (performance) string eq/cmp (hobbs) 2010-09-26 (patch)[3072080] rewritten NRE core (sofer) 2010-09-28 (new feature)[TIP 162] implementation of ipv6 sockets (max) 2010-10-02 (bug fix)[3079830] properly invalidate string rep of dicts (fellows) 2010-10-06 (bug fix)[3081065] fix writing to freed Tcl_Obj (porter) 2010-10-08 fix in ipv6 code on windows (nijtmans) 2010-10-09 fixed overallocation of execution stack (sofer) 2010-10-11 windows unicode changes (nijtmans) 2010-10-12 (bug fix)[3084338] fixed meamleak in ipv6 code (max) 2010-10-13 (bug fix)[467523,983660] alt fix allows empty literal share (porter) 2010-10-15 (bugfix)[3085863] updated unicode tables (nijtmans) *** POTENTIAL INCOMPATIBILITY *** 2010-10-16 refactored implementation of dict iteration (fellows) 2010-10-17 (patch)[2995655] report inner contexts on error stack (ferrieux) 2010-10-19 (bug fix)[3081008] fixed bytearray zlib interaction (fellows) 2010-10-19 improved crc, appending to bytearray (fellows) 2010-10-20 improved compilation of [dict for] (fellows) 2010-10-26 Added private support to disable reverse dns (max) 2010-10-26 Prevent crashes when querying socket options (fellows, max) 2010-10-28 (bug fix)[3093120] prevent freeaddrinfo(NULL) (porter, virden) 2010-10-29 (bug fix)[2905784] stop cycle waste in short [after] (ferrieux) 2010-11-01 tzdata updated to Olson's tzdata2010o (kenny) 2010-11-04 (bug fix)[3099086] Clarified docs of var substitution (fellows) 2010-11-04 improved install targets (cassof) 2010-11-04 improved testing of sockets (max) 2010-11-05 (frq)[491789] setargv/unicode cmdline for MSVC (nijtmans) 2010-11-09 (bug fix)[3105999] fixed memleak in OO var resolver (fellows) 2010-11-15 (TIP 378)[3081184] improved TIP 280 performance (kupries) 2010-11-16 (platform) VS 2005 SP1 MSVC compiler (nijtmans) 2010-11-18 (bug fix)[3111059] leak in [namespace delete] w coroutines (sofer) 2010-11-28 [3120139,3105247] Tcl_PrintDouble improvements (kenny) 2010-11-29 (new cmd) [tcl::unsupported::inject] (ferrieux,sofer) 2010-11-30 (enhancement) Restore TclFormatInt for performance (hobbs) 2010-12-09 (new feature) [file] is now a [namespace ensemble] (fellows) 2010-12-19 (bug fix) [fcopy -size 1 -command] asynchronous (ferrieux) 2010-12-12 (platform) OpenBSD build improvements (cassoff) 2010-12-17 (platform) Revisions to support rpm 4.4.2 (cassoff) 2010-12-27 (bug fix) crash in [lsort] w multiple -index options (fellows) 2010-12-30 (bug fix)[3142026] GrowEvaluationStack OBOE (harder,sofer) 2011-01-18 (bug fix)[3001438] [info frame -1] crash (mccormack,fellows) 2011-03-01 (performance)[3168398] optimize [interp cancel] (mistachkin) 2011-03-05 (bug fix)[3185009] crash in OO variables (danckaert,fellows) 2011-03-05 (new cmd) [tcl::unsupported::assemble] (ugurlu,kenny) 2011-03-06 (bug fix)[3200987,3192636] parser buffer overruns (porter) 2011-03-08 (bug fix)[3202905] failed intrep release of interp result (mccormack) 2011-03-09 (bug fix)[3202171] repair [namespace inscope] optimizer (porter) 2011-03-10 (new version) better tcltest reporting from child interps (fellows) => tcltest 2.3.3 2011-03-10 (new feature) [namespace] is now a [namespace ensemble] (fellows) 2011-03-12 (interface) reduce casting by ckalloc(), ckfree() callers (fellows) 2011-03-14 (bug fix) Fixes from libtommath 0.42.0 release (fellows) 2011-03-21 (bug fix)[3216070] [load] extension from embed Tcl apps (nijtmans) ***POTENTIAL INCOMPATIBILITY*** 2011-03-27 (performance) NRE: LIST lset foreach benchmark (twylite) 2011-04-11 (bug fix)[3282869] coroutine + eval + locals crash (ferrieux,sofer) 2011-04-13 (bug fix)[2662380] crash when variable append trace unsets (sofer) 2011-04-13 (bug fix)[3285375] Buffer overflow in [concat] (porter) 2011-05-02 (internals change) revised TclFindElement() interface (porter) *** POTENTIAL INCOMPATIBILITY *** 2011-05-05 (enhancement) dict->list w/o string rep generation (porter) 2011-05-10 (bug fix)[3173086] Crash parsing long lists (rogers,porter) 2011-05-24 (enhancement) msgcat internal improvements (fellows) => msgcat 1.4.4 2011-05-25 (TIP 381) [info object|class call] [self call] [nextto] (fellows) 2011-05-31 (bug fix)[3293874] let lists grow all the way to the limit (porter) 2011-06-02 (bug fix)[3185407] cmd resolution epoch flaw (nadkarni,fellows) 2011-06-13 (bug fix)[3315098] mem leak generating double string rep (neumann) 2011-06-22 (new feature) DEB_HOST_MULTIARCH support (kupries) => platform 1.0.10 2011-07-15 (bug fix)[3357771] Prevent circular refs in bytecode (porter) 2011-07-28 tzdata updated to Olson's tzdata2011h (porter) 2011-08-01 (bug fix)[3383616] memleak exposed by XOTcl (neumann,sofer) Many more Tcl built-in command errors now set an -errorcode. --- Released 8.6b2, August 8, 2011 --- See ChangeLog for details --- 2011-07-02 (bug fix)[3349507] correct double(1[string repeat 0 23]) (kenny) 2011-07-19 (bug fix)[3371644] Tcl_ConvertElement() segfault (sader, ferrieux) 2011-07-21 (bug fix)[3372130] hypot(.) segfault (nijtmans) 2011-08-12 (bug fix)[3389764] memleaks due to reference cycles in dup'd paths 2011-08-15 (bug fix)[3390272] leak of [info script] value (porter) 2011-08-17 (bug fix)[3393150] bignum leaks in Tcl_Get*() routines (porter) 2011-08-18 (bug fix)[3393714] [string toupper] overflow (nijtmans) 2011-08-30 (bug fix)[3398794] panic in interp limit setting (gavlian,fellows) 2011-09-08 (bug fix)[3401704] revised expr parser to permit function names like "nano()" instead of parsing as "nan o()" with missing op (duquette,porter) *** POTENTIAL INCOMPATIBILITY *** 2011-09-10 (bug fix)[3400658] wrong num args msg with TclOO (rsooltan,fellows) 2011-09-13 (bug fix)[3390638] solaris studio cc workaround (kechel,porter) 2011-09-13 (bug fix)[3405652] DTrace workaround (michelson,porter) 2011-09-16 (bug fix)[3391977] -headers overrides -type (ziegenhagen,fellows) => http 2.8.3 2011-09-16 (TIP 388) New \Uhhhhhhhh syntax (nijtmans) 2011-10-06 (enhancement) bytecode compile [dict with] (fellows) 2011-10-11 (bug fix)[2935503] [file stat] returns bad mode (nadkarni,nijtmans) 2011-10-20 (bug fix)[3418547] cmd lits and custom resolvers (soberning,fellows) 2011-10-31 (bug fix)[3414754] EIAS violation in fs paths (porter) 2011-11-22 (bug fix)[3354324] Win: [file mtime] sets wrong time (nijtmans) 2011-11-30 (bug fix)[967195] Simply args passed to child processes (nijtmans) => tcltest 2.3.4 2011-12-07 (bug fix)[3444754] fix [string tolower \u01C5] (nijtmans) 2011-12-11 (update)[3457031] Update [[:print:]] to Unicode 6.0 (nijtmans) 2011-12-24 (bug fix)[3464428] fix [string is graph \u0120] (nijtmans) 2012-01-08 (bug fix)[3470928] zoneinfo trouble with Windhoek data file (kenny) 2012-01-13 (bug fix)[3472316] fix retrieval of socket error (fellows) 2012-01-21 (bug fix)[3475667] [regexp] buffer read overflow (sebres) 2012-01-22 (bug fix)[3475264] [dict exists] return 0, not error (fellows) 2012-01-25 (bug fix)[3474460] [oo::copy] var resolution list (fellows) 2012-01-26 (bug fix)[3475569,3479689] mem corrupt in fs path (sebres,porter) 2012-01-30 (enhancement) improve bytecode compile of [catch] (fellows) 2012-02-02 (bug fix)[2974459,2879351,1951574,1852572,1661378,1613456] Fix problems where [file *able] would return false results on Win/Samba (porter) 2012-02-06 (bug fix)[3484621] bump bytecode epoch on exec traces (kuhn,sofer) 2012-02-15 (bug fix)[3487626] crash compiling [dict for] (fellows) 2012-02-15 (enhancement) bytecode compile [lrange],[lreplace] (fellows) 2012-02-17 (bug fix)[2233954] compile problem on AIX & Android (nijtmans) 2012-02-29 (bug fix)[3466099] BOM in Unicode (nijtmans) 2012-03-07 (bug fix)[3498327] RFC 3986 compliance (kupries) 2012-03-26 (TIP 380) New builtin class [oo::Slot] (fellows) *** POTENTIAL INCOMPATIBILITY *** 2012-03-27 (TIP 397) method to extend [oo::copy] (fellows) *** POTENTIAL INCOMPATIBILITY *** 2012-03-27 (TIP 395) New subcommand [string is entier] (fellows) 2012-04-02 (TIP 396) New command [yieldto] (fellows) 2012-04-04 (bug fix)[3514761] crash combining objects and ensembles (fellows) 2012-04-09 (bug fix)[2712377] [info vars] and oo variables (fellows) 2012-04-09 (bug fix)[3396896] no dups in oo var lists (fellows) 2012-04-11 (bug fix)[3448512] [clock scan 1958-01-01] fail on Win (nijtmans) 2012-04-15 (bug fix)[3517696] fix flush of zlib chan xform (fellows) 2012-04-18 tzdata updated to Olson's tzdata2012c (kenny) 2012-04-28 (TIP 398) exit non-blocking chan without flush (ferrieux) *** POTENTIAL INCOMPATIBILITY *** 2012-05-02 (enhancement) Better use of Intel cpuid instruction (nijtmans) 2012-05-03 (bug fix)[3428753] Unbreak synchronous [socket -async] (porter) 2012-05-10 (bug fix)[2812981] force consistent config of Tcl+pkgs (ferrieux) 2012-05-10 (bug fix)[473946] correct send of special characters (nijtmans) 2012-05-17 (bug fix)[3445787] fix [file] ensemble in Safe Base (fellows) 2012-05-17 (bug fix)[2964715] fix [glob] in Safe Base (fellows) 2012-05-17 (bug fix)[3106532] proper [switch -indexvar] values (fellows) *** POTENTIAL INCOMPATIBILITY *** 2012-05-21 (TIP 106) New -binary option to [dde execute|poke] (oehlmann) => dde 1.4.0 2012-05-23 (bug fix)[3525907] [zlib push decompress] & [chan event] (fellows,ferrieux,kupries) 2012-05-28 (bug fix)[3529949] Protect ~ paths in Safe Base (fellows) 2012-06-21 (bug fix)[3362446] [registry keys] failure (nijtmans) => registry 1.3.0 2012-06-25 (bug fix)[3537605] [encoding dirs a b] error message (fellows) 2012-06-25 (bug fix)[3024359] crash when multi-thread concurrent [file system] and Tcl_FSMountsChanged(). (porter) 2012-06-29 (bug fix)[3536888] fix locale guessing (oehlmann,nijtmans) 2012-07-05 (bug fix)[1189293] make "<<" redirect binary safe (porter) 2012-07-08 (bug fix)[3531209] accept IPv6 URLs (max) => http 2.8.4 2012-07-24 (bug fix) stop mem corruption in stacked channel events (max,porter) 2012-07-25 (bug fix)[3546275] [auto_execok] search match [exec] (danckaert) 2012-07-27 (update)[3464401] Support Unicode 6.2 (nijtmans) 2012-08-20 (bug fix)[3559678] [file normalize] EIAS failure (phao,dgp) 2012-08-25 (bug fix)[3561330] Ukranian translation of "March" (teterin) 2012-09-07 (TIP 404) New msgcat commands [mcflset], [mcflmset] (oehlmann) => msgcat 1.5.0 Many revisions to better support a Cygwin environment (nijtmans) Dropped support for OS X versions less than 10.4 (Tiger) (fellows) --- Released 8.6b3, September 18, 2012 --- See ChangeLog for details --- 2012-09-20 (enhancement) full Unicode support (nijtmans) => dde 1.4.0 2012-09-20 (enhancement) update bundled zlib to 1.2.7 (nijtmans) 2012-10-03 (bug fix) exit panic on stacked std channel (griffin,porter) 2012-10-14 (bug fix) [tcl::Bgerror] crash on non-dict options (nijtmans) 2012-10-16 (TIP 400) New [zlib] options to set compression dict (fellows) 2012-10-16 (TIP 405) New commands [lmap] and [dict map] (fellows) 2012-10-24 (enhancement) [dict unset] now bytecompiled (fellows) 2012-11-05 (TIP 413) Revisions to default [string trim*] trimset (nijtmans) *** POTENTIAL INCOMPATIBILITY *** 2012-11-05 (enhancement) Now bytecompiled: [array exists], [array set], [array unset], [dict create], [dict exists], [dict merge], [format], [info commands], [info coroutine], [info level], [info object], [namespace current], [namespace code], [namespace qualifiers], [namespace tail], [namespace which], [regsub], [self], [string first], [string last], [string map], [string range], [tailcall], [yield]. (fellows) 2012-11-06 (bug fix)[3581754] avoid multiple callback on keep-alive (fellows) => http 2.8.5 2012-11-07 tzdata updated to Olson's tzdata2012i (kenny) 2012-11-13 (bug fix)[3567063] thread fp settings from master (mistachkin) 2012-11-14 (bug fix)[2933003] tempfile creation in $TMPDIR (fellows) 2012-11-15 (TIP 416) New [load] options -global and -lazy (nijtmans) 2012-11-20 (bug fix)[3033307] base64 trail whitespace (kovalenko,goth) 2012-12-03 (bug fix) [configure] query broke init from argv (porter) => tcltest 2.3.5 2012-12-13 (bug fix)[3595576] crash: [catch {} -> noSuchNs::var] (sofer,porter) 2012-12-13 (bug fix) crash: [zlib gunzip $data -header noSuchNs::var] (porter) --- Released 8.6.0, December 20, 2012 --- See ChangeLog for details --- 2012-12-22 (bug fix)[3598150] DString to Tcl_Obj memleak (afredd) 2012-12-27 (bug fix)[3598580] Tcl_ListObjReplace() refcount fix (nijtmans) 2013-01-04 (bug fix) memleak in [format] compiler (fellows) 2013-01-08 (bug fix)[3092089,3587096] [file normalize] on junction points 2013-01-09 (bug fix)[3599395] status line processing (nijtmans) 2013-01-23 (bug fix)[2911139] repair async connection management (fellows) => http 2.8.6 2013-01-26 (bug fix)[3601804] Darwin segfault platformCPUID (nijtmans) 2013-01-28 (enhancement) improve ensemble bytecode (fellows) 2013-01-30 (enhancement) selected script code improvements (fradin) => tcltest 2.3.6 2013-01-30 (bug fix)[3599098] update to handle glibc banner changes (kupries) => platform 1.0.11 2013-01-31 (bug fix)[3598282] make install DESTDIR support (cassoff) 2013-02-05 (bug fix)[3603434] [file normalize a:/] flaw in VFS (porter,griffin) 2013-02-09 (bug fix)[3603695] $obj varname resolution rules (venable,fellows) 2013-02-11 (bug fix)[3603553] zlib flushing errors (vampiera,fellows) 2013-02-14 (bug fix)[3604576] msgcat use of Windows registry (oehlmann,nijtmans) => msgcat 1.5.1 2013-02-19 (bug fix)[2438181] report errors in trace handlers (yorick) 2013-02-21 (bug fix)[3605447] unbreak [namespace export -clear] (porter) 2013-02-23 (bug fix)[3599194] fallback IPv6 routines (afredd,max) 2013-02-27 (bug fix)[3606139] stop crash in [regexp] (lane) 2013-03-03 (bug fix)[3606258] major serial port update (english) 2013-03-06 (bug fix)[3606683] [regexp (((((a)*)*)*)*)* {}] hangs (grathwohl,lane,porter) 2013-03-12 (enhancement) better build support for Debian arch (shadura) 2013-03-19 (bug fix)[2893771] [file stat] on locked files (thoyts,nijtmans) 2013-03-21 (bug fix)[2102614] [auto_mkindex] ensemble support (griffin) 2013-03-27 Tcl_Zlib*() routines tolerate NULL interps (porter 2013-04-04 (bug fix) Support URLs with query but no path (max) => http 2.8.7 2013-04-08 (bug fix)[3610026] regexp crash on color overflow (linnakangas) 2013-04-29 (enhancement) [array set] compile improvement (fellows) 2013-04-30 (enhancement) broaden glibc version detection (kupries) => platform 1.0.12 2013-05-06 (platform support) Cygwin64 (nijtmans) 2013-05-15 (enhancement) Improved [list {*}...] compile (fellows) 2013-05-16 (platform support) mingw-4.0 (nijtmans) 2013-05-19 (platform support) FreeBSD updates (cerutti) 2013-05-20 (bug fix)[3613567] access error temp file creation (keene) 2013-05-20 (bug fix)[3613569] temp file open fail can crash [load] (keene) 2013-05-22 (bug fix)[3613609] [lsort -nocase] failed on non-ASCII (fellows) 2013-05-28 (bug fix)[3036566] Use language packs (Vista+) locale (oehlmann) => msgcat 1.5.2 2013-05-29 (bug fix)[3614102] [apply {{} {list [if 1]}}] stack woes (porter) 2013-06-03 Restored lost performance appending to long strings (elby,porter) 2013-06-05 (bug fix)[2835313] [while 1 {foo [continue]}] crash (fellows) 2013-06-17 (bug fix)[a876646] [:cntrl:] includes \x00 to \x1f (nijtmans) 2013-06-27 (bug fix)[983509] missing encodings for config values (nijtmans) 2013-06-27 (bug fix)[34538b] apply DST in 2099 (lang) 2013-07-02 (bug fix)[32afa6] corrected dirent64 check (griffin) 2013-07-06 tzdata updated to Olson's tzdata2013d (kenny) 2013-07-10 (bug fix)[86fb5e] [info frame] in compiled ensembles (porter) 2013-07-18 (bug fix)[1c17fb] revisd syntax errorinfo that shows error (porter) 2013-07-26 (bug fix)[6585b2] regexp {(\w).*?\1} abb (lane) 2013-07-29 [string is space \u202f] => 1 (nijtmans) 2013-08-01 [a0bc85] Limited support for fork with threads (for Rivet) (nijtmans) 2013-08-01 (bug fix)[1905562] RE recursion limit increased to support reported usage of large expressions (porter) 2013-08-02 (bug fix)[9d6162] superclass slot empty crash (vdgoot,fellows) 2013-08-03 (enhancement)[3611643] [auto_mkindex] support TclOO (fellows) 2013-08-14 (bug fix)[a16752] Missing command delete callbacks (porter) 2013-08-15 (bug fix)[3610404] reresolve traced forwards (porter) 2013-08-15 Errors from execution traces become errors of the command (porter) 2013-08-23 (bug fix)[8ff0cb9] Tcl_NR*Eval*() schedule only, as doc'd (porter) 2013-08-29 (bug fix)[2486550] enable [interp invokehidden {} yield] (porter) 2013-09-01 (bug fix)[b98fa55] [binary decode] fail on whitespace (reche,fellows) 2013-09-07 (bug fix)[86ceb4] have tm path favor first provider (neumann,porter) 2013-09-09 (bug fix)[3609693] copied object member variable confusion (fellows) => TclOO 1.0.1 2013-09-17 (bug fix)[2152292] [binary encode uuencode] corrected (fellows) 2013-09-19 (bug fix)[3487626] segfaults in [dict] compilers (porter) 2013-09-19 (bug fix)[31661d2] mem leak in [lreplace] (ade,porter) Many optmizations, improvements, and tightened stack management in bytecode. --- Released 8.6.1, September 20, 2013 --- http://core.tcl.tk/tcl/ for details 2013-09-27 (enhancement) improved ::env synchronization (fellows) 2013-10-20 (bug fix)[2835313] segfault from [apply {{} {while 1 {a {*}[return -level 0 -code continue]}}}] (fellows) 2013-10-22 (bug fix)[3556215] [scan %E%G%X] support (fellows) 2013-10-25 (bug fix)[3eb2ec1] upper case scheme names in url. (nijtmans) => http 2.8.8 2013-10-29 (bug fix)[414d103] HP-UX: restore [exec] in threaded Tcl (nijtmans) 2013-11-04 (bug fix) C++ friendly stubs struct declarations (nijtmans) 2013-11-05 (bug fix)[426679e] OpenBSD man page rendering (nijtmans) 2013-11-12 (bug fix)[5425f2c] [fconfigure -error] breaks [socket -async] 2013-11-20 (bug fix) Improved environment variable management (nijtmans) => tcltest 2.3.7 2013-11-21 (platforms) Support for Windows 8.1 (nijtmans) 2013-12-06 (RFE) improved [foreach] bytecode (fellows) 2013-12-10 (RFE) improved [lmap] bytecode (sofer) 2013-12-11 (RFE) improved [catch] bytecode (sofer) 2013-12-18 (bug fix)[0b874c3] SEGV [coroutine X coroutine Y info frame] (porter) 2013-12-20 (RFE) reduced numeric conversion in bytecode (sofer) 2014-01-07 (RFE) compilers for [concat], [linsert], [namespace origin], [next], [string replace], [string tolower], [string totitle], [string toupper], [string trim], [string trimleft], [string trimright] (fellows) 2014-01-22 (RFE) compilers for [nextto], [yieldto] (fellows) 2014-02-02 (RFE) compiler for [string is] (fellows) 2014-02-06 (bug fix)[a4494e2] panic in test namespace-13.2 (porter) 2014-03-20 (bug fix)[2f7cbd0] FreeBSD 10.0 build failure (nijtmans) 2014-03-26 (RFE)[b42b208] Cygwin: [file attr -readonly -archive -hidden -system] (nijtmans) 2014-03-27 (bug fix) segfault iocmd-23.11 (porter) 2014-04-02 (bug fix)[581937a] Win: readable event on async connect failure 2014-04-04 (bug fix)[581937a,97069ea] async socket connect fail (oehlmann) 2014-04-10 (bug fix)[792641f] Win: no \ in normalized path (nijtmans) 2014-04-11 (bug fix)[3118489] protect NUL in filenames (nijtmans) 2014-04-15 (bug fix)[88aef05] segfault iocmd-21.20 (porter) 2014-04-16 (update) Win: use Winsock 2.2 (nijtmans) 2014-04-16 (bug fix)[d19a30d] segfault clock-67.[23] (sebres) 2014-04-21 (bug fix) segfault iocmd-21.2[12] (porter) 2014-04-22 (bug fix) segfault iogt-2.4 (porter) 2014-04-23 (bug fix)[3493120] memleak in thread exit 2014-05-08 refactoring of core I/O functions (porter) 2014-05-09 (bug fix)[3389978] Win: extended paths support (nijtmans) 2014-05-09 (bug fix) segfault iocmd-32.1 (porter) 2014-05-11 (bug fix)[6d2f249] nested ensemble compile failure (fellows) 2014-05-17 (RFE)[47d6625] wideint support in [lsearch -integer] [lsort -integer] (nijtmans) *** POTENTIAL INCOMPATIBILITY *** 2014-05-20 (bug fix) Stop eof and blocked state leaking thru stacks (porter) *** POTENTIAL INCOMPATIBILITY *** 2014-05-20 (bug fix)[13d3af3] Win: socket -async tried only first IP address 2014-05-28 (platforms) work around systems that fail when a shared library is deleted after it is [load]ed (kupries) 2014-05-31 (bug fix) chan events on pipes must be on proper ends (porter) 2014-06-04 (bug fix) socket-2.12 (porter) 2014-06-05 (bug fix) io-12.6 (kupries,porter) 2014-06-15 (RFE)[1b0266d] [dict replace|remove] return canonical dict (fellows) *** POTENTIAL INCOMPATIBILITY *** 2014-06-16 (bug fix) socket-2.13 workaround broken select() (porter) 2014-06-20 (bug fix)[b47b176] iortrans.tf-11.0 (porter) 2014-06-22 (RFE)[2f9df4c] -cleanup scripts before -out compare (nijtmans) 2014-07-04 (update) Update Unicode data to 7.0 (nijtmans) *** POTENTIAL INCOMPATIBILITY *** 2014-07-08 (bug) [chan push] converts blocked writes to error (aspect,porter) 2014-07-10 (bug fix)[7368d2] memleak Tcl_SetVar2(..,TCL_APPEND_VALUE) (porter) *** POTENTIAL INCOMPATIBILITY *** 2014-07-11 (bug) leaks in SetFsPathFromAny, [info frame] (porter) 2014-07-15 (bug) compress dict leak in zlib xform channel close (porter) 2014-07-17 (bug fix)[9969cf8] leak trace data in coroutine deletion (porter) 2014-07-18 (RFE)[b43f2b4] fix [lappend] multi performance collapse (fellows) 2014-07-19 (bug fix)[75b8433] memleak managing oo instance lists (porter) 2014-07-21 (bug fix)[e6477e1] memleak in AtForkChild() (porter) 2014-07-22 (bug fix)[12b0997] memleak in iocmd.tf-32.0 (porter) 2014-07-28 (RFE) Optimized binary [chan copy] by moving buffers (porter) 2014-07-30 (enhancement) use refcounts, not Tcl_Preserve to manage lifetime of Tcl_Channel (porter) *** POTENTIAL INCOMPATIBILITY *** 2014-07-31 (bug fix)[a84a720] double free in oo chain deletion (porter) 2014-08-01 (bug fix)[e75faba] SEGV [apply {{} {namespace upvar a b [x]}}] (porter) 2014-08-01 (update) "macosx*-i386-x86_64" "macosx-universal" no longer compatible (kupries) => platform 1.0.13 2014-08-12 tzdata updated to Olson's tzdata2014f (kenny) 2014-08-17 (bug fix)[7d52e11] [info class subclasses oo::object] should include ::oo::class (fellows) 2014-08-25 (TIP 429) New command [string cat] (leitgeb,ferrieux) --- Released 8.6.2, August 27, 2014 --- http://core.tcl.tk/tcl/ for details 2014-08-28 (bug)[b9e1a3] Correct Method Search Order (nadkarni,fellows) => TclOO 1.0.3 *** POTENTIAL INCOMPATIBILITY *** 2014-09-05 (bug)[ccc2c2] Regression [lreplace {} 1 1] (bron,fellows) 2014-09-08 (bug) Crash regression in [oo::class destroy] (porter) 2014-09-09 (bug)[84af11] Regress [regsub -all {\(.*} a(b) {}] (fellows) 2014-09-10 (bug)[cee90e] [try {} on ok {} - on return {} {}] panic (porter) 2014-09-20 (feature) [tcl::unsupported::getbytecode] disassember (fellows) 2014-09-27 (enhancement) [string cat] bytecode optimization (leitgeb,ferrieux) 2014-09-27 (bug)[82521b] segfault in mangled bytecode (ogilvie,sofer) 2014-10-02 (bug)[bc5b79] Hang in some [read]s of limited size (rogers,porter) 2014-10-03 (bug)[bc1a96] segfault in [array set] of traced array (tab,porter) 2014-10-08 (bug)[59a2e7] MSVC14 compile support (dower,nijtmans) 2014-10-10 (bug)[ed29c4] [fcopy] treats [blocked] as error (rowen,porter) 2014-10-10 (bug)[bf7135] regression in Tcl_Write() interface (porter) 2014-10-18 (bug)[10dc6d] fix [gets] on non-blocking channels (fassel,porter) 2014-10-26 Support for Windows 10 (nijtmans) 2014-10-31 (bug)[dcc034] restore [open comX: r+] (lll,nijtmans) 2014-11-05 (bug)[214cc0] Restore [lappend v] return value (sayers,porter) 2014-11-06 (bug)[5adc35] Stop forcing EOF to be permanent (porter) --- Released 8.6.3, November 12, 2014 --- http://core.tcl.tk/tcl/ for details 2014-11-21 (bug)[743338] Win: socket error encoding (ladayaroslav,nijtmans) 2014-12-01 (bug) restore tbcload/tclcompiler support (kupries) 2014-12-03 (bug)[0c043a] Fix compiled [set var($) val] (porter) 2014-12-04 (bug)[d2ffcc] Limit $... and bareword parsing to ASCII (ladayaroslav,porter) *** POTENTIAL INCOMPATIBILITY *** 2014-12-06 (bug)[c6cd4a] Win: hang in async socket connection (shults,nadkarni) 2014-12-10 tzdata updated to Olson's tzdata2014j (venkat) 2014-12-13 fix header files installation on OS X (houben) 2014-12-17 (TIP 427) [fconfigure $h -connecting, -peername, -sockname] (oehlmann,rmax) 2014-12-18 (bug)[af08c8] Crash in full finalize encoding teardown (porter) 2014-12-18 (bug)[7c187a] [chan copy] crash (io-53.17) (benno,porter) 2015-01-26 (bug)[df0848] Trouble with INFINITY macro (dower,nijtmans) 2015-01-29 (bug) Stop crashes when extension var resolvers misbehave (porter) 2015-01-29 (bug)[088727] [read] past EOF (io-73.4) (fenugrec,porter) 2015-02-11 tzdata updated to Olson's tzdata2015a (venkat) 2015-02-20 (bug)[32b615] Fix compiled [lreplace] (lreplace-4.[345]) (aspect) 2015-03-10 (enhancement) Revise OS X notifier for better Cocoa (walzer) *** POTENTIAL INCOMPATIBILITY *** --- Released 8.6.4, March 12, 2015 --- http://core.tcl.tk/tcl/ for details 2015-03-19 (bug)[e66e44] Win: Ctrl-C/Ctrl-Break in console not EOF (nadkarni) 2015-03-21 (bug)[d87cb1] Proper tailcall from compiled ensembles (sofer) 2015-04-23 (bug)[19ea02] Win: shared read from linked dirs (bogdan,oehhar) 2015-04-24 (bug)[879a07] Incomplete chars @ buffer ends (leunissen,porter) 2015-04-29 (bug)[894da1] Hang flushing blocking channels (yorick) 2015-05-14 (enhance)[b9d043] Default use of gzip transfer encoding (fellows) => http 2.8.9 *** POTENTIAL INCOMPATIBILITY *** 2015-05-15 (bug)[9dd1bd] destructor [self] after failed constructor (calvo,fellows) 2015-05-15 (bug)[0f42ff] [tailcall] combined with [next] (aspect,fellows) 2015-05-18 (bug)[c11a51] http: race condition in -accept option (fellows) 2015-05-19 (enhance) More pure lists from compiled [list] (porter,fellows) 2015-05-27 (enhancement) Relax memdebug constraint on extensions (kupries) 2015-06-03 (bug)[268b23] crash in traced [expr] (execute-11.2)(tomkinson,porter) 2015-06-11 (bug)[478c44] Memleak in zlib compresion errors (mistachkin) 2015-06-16 (bug)[e770d9] Higher baud on serial channels (woods,nijtmans) 2015-06-18 (update) Update Unicode data to 8.0 (nijtmans) *** POTENTIAL INCOMPATIBILITY *** 2015-06-18 (bug)[a4cb3f] compiled [lreplace] handling of end (bron,aspect) 2015-06-23 (enhance) Use Unicode SendMessageTimeout() (nijtmans) => registry 1.3.1 2015-06-25 (TIP 412) msgcat dynamic locale change and package private locale (oehlmann) => msgcat 1.6.0 2015-07-05 (bug)[a0ece9] crash in traced [expr] (execute-11.3) (hans,porter) 2015-07-10 (TIP 436) [info object isa] favors 'false' over error (fellows) => TclOO 1.0.4 2015-07-15 (bug)[b1534b][9bad63] writes beyond buffer bounds (hanno,porter) 2015-07-18 (bug)[a3309d] Memleak in compiled [unset a($i)] (jeff,porter) 2015-07-23 (bug)[57945b] lock in forking/multi-threading (neumann,mistachkin) 2015-07-29 (bug)[3e7eca] Allocation overflow in expr parsing (rickyb,porter) 2015-07-30 (bug)[f00009] Win: Memleak in [file] (rp,sebres) 2015-07-31 (bug) Correct problems found in Coverity audit (sofer) 2015-08-19 (bug)[00189c] MSVC 14: semi-static UCRT support (dower,nijtmans) 2015-08-26 (bug)[0df7a1] Tolerate getcwd() failures (cato,nijtmans) 2015-09-21 (bug)[1115587][a3c350][d7ea9f][0e0e15][187d7f] Many fixes and improvements to regexp engine from Postgres (lane,porter,fellows,seltenreich) 2015-09-23 (enhance) hash lookup microoptimization (hipp) 2015-09-23 (bug)[e0a7b3] Input buffer draining & file events (griffin,porter) 2015-09-29 (bug)[219866] Cygwin support error (yorick,nijtmans) => platform 1.0.14 2015-10-06 (bug)[b42a85] Win: [file normalize ~user] wrong dir (nadkarni) 2015-10-21 (bug)[1080042][8f2450] More regexp from Postgres (lane,porter) 2015-10-23 (bug)[4a0c16] [clock] react to msgcat locale change (oehlmann) 2015-11-10 (bug)[261a8a] Overflow segfault in I/O translation (brooks,porter) 2015-11-20 (bug)[40f628] ListObjReplace callers fail to detect max (porter) 2015-11-30 (enhance)[32c574] Improve list growth performance (brooks,porter) 2015-12-11 (bug)[c9eb6b] tolerate unset ::env(TZ) (gahr, nijtmans) 2016-01-29 (TIP 440) tcl_platform(engine) -- Tcl implementation (mistachkin) 2016-02-03 (bug)[25842c] stream [zlib deflate] fails with 0 input (ade,fellows) 2016-02-04 (bug)[3d96b7][593baa][cf74de] crashes in OO teardown (porter,fellows) 2016-02-22 (bug)[9b4702] [info exists env(missing)] kills trace (nijtmans) --- Released 8.6.5, February 29, 2016 --- http://core.tcl.tk/tcl/ for details 2016-03-01 (bug)[803042] mem leak due to reference cycle (porter) 2016-03-08 (bug)[bbc304] reflected watch race condition (porter) 2016-03-17 (bug)[fadc99] compile-5.3 (rodriguez,porter) 2016-03-17 (enhancement)[1a25fd] compile [variable ${ns}::v] (porter) 2016-03-20 (bug)[1af8de] crash in compiled [string replace] (harder,fellows) 2016-03-21 (bug)[d30718] segv in notifier finalize (hirofumi,nijtmans) 2016-03-23 (enhancement)[7d0db7] parallel make (yarda,nijtmans) 2016-03-23 [f12535] enable test bindings customization (vogel,nijtmans) 2016-04-04 (bug)[47ac84] compiled [lreplace] fixes (aspect,ferrieux,fellows) *** POTENTIAL INCOMPATIBILITY *** 2016-04-08 (bug)[866368] RE \w includes 'Punctuation Connector' (nijtmans) 2016-04-08 (bug)[2538f3] Win crash Tcl_OpenTcpServer() (griffin) 2016-04-10 [07d13d] Restore TclBlend support lost in 8.6.1 (buratti) 2016-05-13 (bug)[3154ea] Mem corruption in assembler exceptions (tkob,kenny) 2016-05-13 (bug) registry package support any Unicode env (nijtmans) => registry 1.3.2 2016-05-21 (bug)[f7d4e] [namespace delete] performance (fellows) 2016-06-02 (TIP 447) execution time verbosity option (cerutti) => tcltest 2.4.0 2016-06-16 (bug)[16828b] crash due to [vwait] trace undo fail (dah,porter) 2016-06-16 (enhancement)[4b61af] good [info frame] from more cases (beric) 2016-06-21 (bug)[c383eb] crash in [glob -path a] (oehlmann,porter) 2016-06-21 (update) Update Unicode data to 9.0 (nijtmans) *** POTENTIAL INCOMPATIBILITY *** 2016-06-22 (bug)[16896d] Tcl_DString tolerate append to self. (dah,porter) 2016-06-23 (bug)[d55322] crash in [dict update] (yorick,fellows) 2016-06-27 (bug)[dd260a] crash in [chan configure -dictionary] (madden,aspect) 2016-07-02 (bug)[f961d7] usage message with parameters with spaces (porter) *** POTENTIAL INCOMPATIBILITY *** 2016-07-02 (enhancement)[09fabc] Sort order of -relateddir (lanam) 2016-07-07 (bug)[5d7ca0] Win: [file executable] for .cmd and .ps1 (nadkarni) *** POTENTIAL INCOMPATIBILITY *** 2016-07-08 (bug)[a47641] [file normalize] & Windows junctions (nadkarni) 2016-07-09 [ae61a6] [file] handling of Win hardcoded names (CON) (nadkarni) *** POTENTIAL INCOMPATIBILITY *** 2016-07-09 [3613671] [file owned] (more) useful on Win (nadkarni) 2016-07-09 (bug)[1493a4] [namespace upvar] use of resolvers (beric,fellows) *** POTENTIAL INCOMPATIBILITY *** 2016-07-10 (bug)[da340d] integer division in clock math (nadkarni) 2016-07-20 tzdata updated to Olson's tzdata2016f (venkat) --- Released 8.6.6, July 27, 2016 --- http://core.tcl.tk/tcl/ for details 2016-09-07 (bug)[c09edf] Bad caching with custom resolver (neumann,nijtmans) 2016-09-07 (bug)[4dbdd9] Memleak in test var-8.3 (mr_calvin,porter) 2016-10-03 (bug)[2bf561] Allow empty command as alias target (yorick,nijtmans) *** POTENTIAL INCOMPATIBILITY *** 2016-10-04 (bug)[4d5ae7] Crash in async connects host no address (gahr,fellows) 2016-10-08 (bug)[838e99] treat application/xml as text (gahr,fellows) => http 2.8.10 2016-10-11 (bug)[3cc1d9] Thread finalization crash in zippy (neumann) 2016-10-12 (bug)[be003d] Fix [scan 0x1 %b], [scan 0x1 %o] (porter) 2016-10-14 (bug)[eb6b68] Fix stringComp-14.5 (porter) 2016-10-30 (bug)[b26e38] Fix zlib-7.8 (fellows) 2016-10-30 (bug)[1ae129] Fix memleak in [history] destruction (fellows) 2016-11-04 (feature) Provisional Tcl 9 support in msgcat and tcltest (nijtmans) => msgcat 1.6.1 => tcltest 2.4.1 2016-11-04 (bug)[824752] Crash in Tcl_ListObjReplace() (gahr,porter) 2016-11-11 (bug)[79614f] invalidate VFS mounts on sytem encoding change (yorick) 2016-11-14 OSX: End panic() as legacy support macro; system conflicts (nijtmans) *** POTENTIAL INCOMPATIBILITY *** 2016-11-15 (bug) TclOO fix stops crash mixing Itcl and snit (fellows) 2016-11-17 (update) Reconcile libtommath updates; purge unused files (nijtmans) *** POTENTIAL INCOMPATIBILITY *** 2017-01-09 (bug)[b87ad7] Repair drifts in timer clock (sebres) 2017-01-17 (update) => zlib 1.2.11 (nijtmans) 2017-01-31 (bug)[39f630] Revise Tcl_LinkVar to tolerate some prefixes (nijtmans) *** POTENTIAL INCOMPATIBILITY *** 2017-02-01 (bug)[d0f7ba] Improper NAN optimization. expr-22.1[01] (aspect) 2017-02-26 (bug)[25842c] zlib stream finalization (aspect) 2017-03-07 (deprecate) Remove unmaintained makefile.bc file (nijtmans) *** POTENTIAL INCOMPATIBILITY *** 2017-03-14 (enhancement) [clock] and [encoding] are now ensembles (kenny) 2017-03-15 (enhancement) several [clock] subcommands bytecoded (kenny) 2017-03-23 tzdata updated to Olson's tzdata2017b (jima) 2017-03-29 (bug)[900cb0] Fix OO unexport introspection (napier) 2017-04-12 (bug)[42202b] Nesting imbalance in coro injection (nadkarni,sebres) 2017-04-18 (bug)[bc4322] http package support for safe interps (nash,nijtmans) 2017-04-28 (bug)[f34cf8] [file join a //b] => /b (neumann,porter) 2017-05-01 (bug)[8bd13f] Windows threads and pipes (sebres,nijtmans) 2017-05-01 (bug)[f9fe90] [file join //a b] EIAS violation (aspect,porter) 2017-05-04 (bug) Make test filesystem-1.52 pass on Windows (nijtmans) 2017-05-05 (bug)[601522] [binary] field spec overflow -> segfault (porter) 2017-05-08 (bug)[6ca52a] http memleak handling keep-alive (aspect,nijtmans) => http 2.8.11 2017-05-29 (bug)[a3fb33] crash in [lsort] on long lists (sebres) 2017-06-05 (bug)[67aa9a] Tcl_UtfToUniChar() revised handling invalid UTF-8 (nijtmans) *** POTENTIAL INCOMPATIBILITY *** 2017-06-08 (bug)[2738427] Tcl_NumUtfChars() corner case utf-4.9 (nijtmans) 2017-06-22 (update) Update Unicode data to 10.0 (nijtmans) *** POTENTIAL INCOMPATIBILITY *** 2017-06-22 (TIP 473) Let [oo::copy] specify target namespace (fellows) 2017-06-26 (bug)[46f801] Repair autoloader fragility (porter) 2017-07-06 (bug)[adb198] Plug memleak in TclJoinPath (sebres,porter) 2017-07-17 (bug)[fb2208] Repeatable tclIndex generation (wiedemann,nijtmans) --- Released 8.6.7, August 9, 2017 --- http://core.tcl.tk/tcl/ for details 2017-08-10 [array names -regexp] supports backrefs (goth) 2017-08-10 Fix gcc build failures due to #pragma placement (cassoff,fellows) 2017-08-29 (bug)[b50fb2] exec redir append stdout and stderr to file (coulter) 2017-08-31 (bug)[2a9465] http state 100 continue handling broken (oehlmann) => http 2.8.12 2017-09-02 (bug)[0e4d88] replace command, delete trace kills namespace (porter) 2017-10-19 (bug)[1a5655] [info * methods] includes mixins (fellows) 2017-10-23 tzdata updated to Olson's tzdata2017c (jima) 2017-10-24 (bug)[fc1409] segfault in method cloning, oo-15.15 (coulter,fellows) 2017-11-03 (bug)[6f2f83] More robust [load] for ReactOS (werner) 2017-11-08 (bug)[3298012] Stop crash when hash tables overflow 32 bits (porter) 2017-11-14 (bug)[5d6de6] Close failing case of [package prefer stable] (kupries) 2017-11-17 (bug)[fab924] Fix misleading [load] message on Windows (oehlmann) 2017-12-05 (bug)[4f6a1e] Crash when ensemble map and list are same (sebres) 2017-12-06 (bug)[ce3a21] file normalize failure when tail is empty (porter) 2017-12-08 (new)[TIP 477] nmake build system reform (nadkarni) 2017-12-19 (bug)[586e71] EvalObjv exception handling at level #0 (sebres,porter) --- Released 8.6.8, December 22, 2017 --- http://core.tcl.tk/tcl/ for details usr/share/doc/tk/changes000064400001150332152536204750011213 0ustar00This file summarizes all changes made to Tk since version 1.0 was released on March 13, 1991. Changes that aren't backward compatible are marked specially. 3/16/91 (bug fix) Modified tkWindow.c to remove Tk's Tcl commands from the interpreter when the main window is deleted (otherwise there will be dangling pointers to the non-existent window). 3/16/91 (bug fix) Modified tkColor.c not to free black or white colors: some X servers get upset at this. 3/18/91 (bug fix) Modified tkShare.c to fix bug causing "DeleteGroup couldn't find group on shareList" panic. 3/18/91 (bug fix) Several changes to tkListbox.c and tkScrollbar.c to handle listboxes (and scrollbars) with zero total entries in them. 3/22/91 (bug fix) Fixed a few ='s in tkListbox.c that should be ==. 3/22/91 (bug fix) Fixed error in main.c that caused BadWindow errors in some cases where wish scripts invoke "destroy .". 3/23/91 (new feature) Added Tk_CancelIdleCall to remove Tk_DoWhenIdle handler. 3/23/91 (bug fix and new feature) Added -name option to main.c, made it more clever about choosing name (was always using the name "wish" on most Unix systems). 3/23/91 (new feature) Added TK_CONFIG_STRING option to Tk_ConfigureWidget, used it to malloc strings for various widget options that used to be Tk_Uid's (e.g. button text, message strings, etc.). Eliminates core leaks when values change in continuous non-repeating fashion. 3/29/91 (new feature) Added Tk_Preserve, Tk_Release, and Tk_EventuallyFree procedures to help manage widget records and avoid premature memory free-ing. 4/4/91 (bug fix) Fixed problem in tkWm.c where top-level window geometry wasn't tracking correctly when wm-induced size change also changed window position (e.g. menus wouldn't be displayed at the right places). 4/5/91 (new feature) Added "invoke" option to widget command for buttons, check buttons, and radio buttons. 4/5/91 (new feature) Added "unpack" option to "pack" command. 4/5/91 (bug fix) Changed tkPack.c to use new Tk_Preserve code and be more careful about window deletions that occur while repacking is in progress. 4/6/91 (bug fix) Major overhaul of deletion code in all widgets to use Tk_Preserve and Tk_Release. Should fix many problems. 4/6/91 (bug fix) Changed "winfo children" to generate correct lists when child names have embedded spaces. 4/6/91 (new feature) Added "screenheight" and "screenwidth" options to "winfo". 4/18/91 (bug fix) Binding mechanism didn't correctly handle very long %-substitutions in commands (e.g. long path names) and caused memory to be overwritten. Modified tkBind.c to fix. ---------------------- Release 1.1, 4/18/91 ------------------------- 4/19/91 (bug fix) Inconsistent ICCCM handling of coordinates of reparented windows causes windows to gradually walk south when moved or resized. Fixed tkWm.c to patch around the problem. ---------------------- Release 1.2, 4/24/91 ------------------------- 4/26/91 (new feature) Added -geometry and -display switches to wish. Also wrote wish manual entry. 5/3/91 (bug fix) Fixed bug in tkListbox.c that caused garbage to appear at right edge of window when strings were to large to fit in window. 5/3/91 (bug fix) Fixed bug in tkListbox.c where topIndex wasn't getting updated when elements were deleted: tended to cause errors in communication with scrollbars. 5/16/91 (bug fix) Fixed bug in tk3d.c, which caused core dumps when consecutive points in a polygon were the same (happened with some configurations of radio buttons, for example). 5/16/91 (bug fix) Fixed main.c to allow stdin to be redirected. 6/1/91 (bug fix) Make sure that pointers are never used after being freed. 6/15/91 (bug fix) Fixed bug in tkBind.c that caused current binding values to not always be printed correctly. 6/15/91 (bug fix) Make sure that interpreters are always unregistered when their main windows are deleted, and make wish delete the main window before exiting. 8/21/91 (misfeature correction) Automatically set source of window position to "user" in "wm geometry" command, unless it has been explicitly set to "program". 9/5/91 (bug fix) Modified option code to accept '#' as a comment character in .Xdefaults files, in addition to '!'. 9/10/91 (misfeature correction) Changed binding mechanism so that numeric %-sequences are output in decimal instead of hex. 9/19/91 (bug fix) Fixed bug in Tk_DoOneEvent(1) where it wasn't checking files and X connections properly so it missed events. 10/6/91 (new feature) Reorganized tkBind.c to provide generic "binding table" structure, which can be used to create bindings on items in canvases as well as windows. 10/6/91 (new feature) Upgraded buttons and menus to use new tracing code in Tcl 6.0. Allows radio buttons and check buttons to both set and clear themselves when associated variable changes. 10/17/91 (bug fix) Fixed 2 bugs in listboxes: accidentally advanced the selection when new entries were inserted in the listbox after the location of the selected item(s), and goofed up on redisplay if selected item was deleted and then selection was immediately lost. 10/27/91 (bug fix) "pack unpack" wasn't telling Tk that it no longer manages window; this led to core dumps in some situations. 10/31/91 (reorganization) Renamed manual entries so that they are no more than 14 characters in length. 10/31/91 (reorganization) Changed tk.h and tkInt.h so that tkInt.h doesn't needed to be included by tk.h. 11/3/91 (portability improvement) Eliminated use of "class" as a variable name, since it's a reserved word in C++. 11/7/91 (reorganization) Many changes to upgrade for Tcl 6.1 including use of Tcl hash tables instead of separate "Hash_" module. The "lib" subdirectory is no longer needed in Tk. ---------------------- Release 1.3, 11/7/91 ------------------------- 11/24/91 (bug fix) Fixed bug causing occasional errors if existing bindings are modified (FindSequence in tkBind.c forget to set *maskPtr). 11/24/91 (bug fix) Used wrong hash table in Tk_GetColorByValue. Could cause new entries to get created unnecessarily. 12/2/91 (bug fix) Changed "bind" code to put backslashes in front of special characters (e.g. [ or \) that appear in %-replacements, so that they can be parsed cleanly. 12/10/91 (bug fix) Manual entries had first lines that caused "man" program to try weird preprocessor. Added blank comment lines to fix problem. 1/2/92 (documentation cleanup) Changed manual entries for Tk_GetBitmap and the like to make it more clear that the argument must be a Tk_Uid and not a string. 1/2/92 (bug fix) Fixed problem where scrollbars that were very short or very narrow (too small to hold both arrows) could cause negative values in calls to XClearArea, which crashed some servers. 1/2/92 (bug fix) Fixed bug in TkMeasureChars occurring when maxChars is 0. Occasionally affected things like message window geometry. 1/3/92 (new feature) Added procedures Tk_GetJustify, Tk_GetAnchor, Tk_GetCapStyle, and Tk_GetJoinStyle, plus support for these things in Tk_ConfigureWidget. ---------------------- Release 1.4, 1/10/92 ------------------------- 1/12/92 (bug fix) TkMenubutton.c wasn't cleaning up mbPtr->varName properly during menubutton cleanup if an error occurred during menubutton creation. 1/19/92 (bug fix) Fixed off-by-one bug in tkListbox.c that caused scrollbars to display a slider that was too large. 2/10/92 (bug fix) Tk_CreateFileHandler didn't correctly handle case where new mask was specified for existing handler. 2/13/92 (bug fix) Tk_DeleteAllBindings wasn't correctly removing bindings from the pattern table: only did the removal for the first pattern in a pattern list. 2/15/92 (new feature) Added procedures Tk_DefineBitmap and Tk_SizeOfBitmap. Tk_GetBitmapFromData is now considered obsolete and probably shouldn't be used anymore. Tk_GetBitmapFromData is now implemented by calling Tk_DefineBitmap and Tk_GetBitmap. 2/15/92 (new feature) Added "curselection" and "select clear" options to widget command for listboxes. 2/15/92 (new feature) Added Tk_3DBorderColor procedure. 2/17/92 (relaxed limitations) Changed scrollbars so they no longer limit the slider position to lie within the object's range: can scroll off the end of an object, if the object permits it. Changed listboxes and entries to explicitly prevent viewing off the ends. Also relaxed listbox index checks so that out-of-range indices are automatically adjust to fit within the listbox range. 2/19/92 (bug fix) tkWindow.c tended to leave half-created windows around if a new window's name was found to be in use already. Fixed to clean them up. 2/22/92 (new feature) Added -anchor, -bitmap, -height, -textvariable, -width options to labels, buttons, check buttons, menu buttons, and radio buttons. This means that (a) size can be controlled better, (b) bitmaps can be displayed in any buttons, (c) the position of the text within the button can be controlled, and (d) a button can be made to display the value of a variable, continuously updating itself. Also changed -selector option so that if it's specified as an empty string then no selector is drawn for the button. 2/22/92 (new feature) Changed menus to support bitmaps in menu entries: added new -bitmap option for entries. 2/26/92 (bug fix) "after" command, when invoked with just one argument, called Tk_Sleep rather than registering a timer handler and looping on Tk_DoOneEvent. As a result, it caused the application to become non- responsive to X events during the sleep. Changed to use a Tk_DoOneEvent loop so that it is responsive. 2/26/92 (bug fix) Tk's main program didn't map the main window until after the startup script returned. Changed to map the window as a do-when-idle handler, so that scripts can cause the window to be mapped immediately with a call to "update" or "after". 2/28/92 (bug fix) "wm withdraw" wasn't working if invoked before window was originally mapped: window got mapped anyway. Fixed so that the window doesn't get mapped as long as it's withdrawn. 2/29/92 (new feature) Can use "focus none" to clear input focus. 2/29/92 (bug fix) Fixed tkEvent.c to generate SubstructureNotify events properly. These weren't being generated previously. 2/29/92 (bug fix) Fixed entries so that newline characters can be properly displayed (as `\x0a'). Had to change interface to TkDisplayChars in order to do this (added flags argument). 2/29/92 (bug fix) Change Tk not to update size and position of top-level windows directly during calls like Tk_ResizeWindow. Instead, wait until actual event is received. This makes updates happen at same time as callbacks. 3/6/92 (bug fix) TkMenubutton.c was dumping core when a menubutton was pressed at a time when there was no associated menu for the button. 3/6/92 (new feature) Added Tk script library directory with official Tk initialization file "tk.tcl". Other procedures used by Tk are in other files. Tk procedures and variables all have names starting with "tk_". Also added Wish startup script "wish.tcl", which sources both the Tk and Tcl startup scripts. This means that things like auto-loading and abbreviation expansion are now available in wish. Added new variables tk_library, tk_priv, and tk_version. 3/6/92 (new feature) It's now possible to set bindings for whole classes by using the class name in the bind command. For example, "bind Button {puts stdout Hi!}" will cause a message to be printed whenever any mouse button is entered. Can also use "all" to set bindings for all widgets. Widget-specific bindings override class bindings which override "all" bindings. 3/6/92 (reorganization) Changed buttons (all flavors) and listboxes to eliminate all hard-wired behavior. Instead, default behavior is set by class bindings in tk.tcl. Also set up class bindings for menus, menubuttons, and entries, which previously had no default behavior at all. Scrollbars and scales still have hard-wired behavior that can't be overridden. 3/7/92 (look-and-feel change) Changed listboxes and entries and menus to use button 2 for scanning instead of button 3. This is more consistent with the official Motif use of button 2 for dragging. 3/10/92 (new features) Added more options to "winfo" command: screencells, screendepth, screenmmheight, screenmmwidth, and screenvisual. 3/13/92 (bug fix) Event sharing mechanism (tkShare.c) wasn't checking to see whether window was mapped before sharing events with it. 3/16/92 (bug fix) Tk_SetInternalBorderWidth was passing wrong window to geometry-management procedures, causing core-dumps when menu buttons had their border widths changed. 3/16/92 (bug fix) Menus were setting their geometry directory rather than using Tk_GeometryRequest mechanism. 3/17/92 (new feature) Added -cursor option to all widgets to set the active cursor for the widget. Also added TK_CONFIG_ACTIVE_CURSOR configure type. 3/18/92 (new feature) Implemented generalized screen coordinates to allow resolution-independent specification in many cases (but pixel- based coordinates are still OK). Added Tk_GetScreenMM(), Tk_GetPixels(), new configure types TK_CONFIG_SCREEN_MM and TK_CONFIG_PIXELS. Changed widgets to use this new configure types wherever possible (a few of the more complex cases still haven't been taken care of yet). Added "pixels" and "fpixels" options to "winfo" command. 3/18/92 (new feature) First cut at canvas widgets is done and part of the official Tk now. Canvases display text and structured graphics, and allow you to bind commands to events related to the text and graphics. 3/21/92 (new feature) Added new "place" command. It implements a new geometry manager that provides fixed placement, rubber-sheet placement, and combinations of the two. Eliminated the commands "move", "resize", and "map" that were provided by main.c but never officially supported; the placer provides all of this functionality. 3/23/92 (bug fix) Fixed bug in tkWm.c where top-level windows were occasionally not being given the right size. The problem occurred when a string of resizes happened all in a row (such as deleting all the windows in an application and then recreating them). 3/23/92 (new feature) Added Tk_CoordsToWindow procedure and "winfo containing" command. These may be used to locate the window containing a given point. 3/28/92 (new feature) Added "-exportselection" option to listboxes, so that listbox selection need not necessarily be the X selection. 4/12/92 (bug fix) Changed menu buttons to store name of menubutton in the associated variable, rather than the name of the menu. This is necessary in order to allow several menu buttons to share the same menu. *** POTENTIAL INCOMPATIBILITY *** 4/12/92 (bug fix) Fixed core dump that occurred in tkError.c when removing the first error record from the error list. 4/15/92 (bug fix) Fixed bug in tkBind.c that prevented event specifications from being processed correctly: the "1" was treated as a button name rather than a keysym. 4/18/92 (new feature) Added Tk_DefineCursor and Tk_UndefineCursor procedures. 4/18/92 (new feature) Major revision to listboxes. Can now scroll and scan in both x and y, plus -exportselection option allows selection not to be exported. The "view" widget command has been replaced by "xview" and "yview", and the "scan" widget command has a new syntax. *** POTENTIAL INCOMPATIBILITY *** 4/18/92 (new feature) Added -exportselection option to entries, so you can select whether you want the entry selection to be the X selection or not. 4/24/92 (new features) Added TK_CONFIG_CUSTOM type to Tk_ConfigureWidget, plus added new flags TK_CONFIG_NULL_OK, TK_CONFIG_DONT_SET_DEFAULT, and TK_CONFIG_OPTION_SPECIFIED. Several other new types, such as TK_CONFIG_CAP_STYLE, were also added as part of implementing canvases. 4/29/92 (bug fix) Changed "-selector" default for menus to have separate values for mono and color. 4/30/92 (bug fix) Fixed bug in tkListbox.c where it occasionally generated bogus scroll commands (last index less than first). 4/30/92 (reorganization) Moved demos directory to "library/demos". ---------------------- Release 2.0, 5/1/92 ------------------------- 5/2/92 (bug fix) Fixed problem in tkListbox.c where it was doing too many redisplays after repeated insertions. Also reduced number of invocations of scrollbar commands. 5/7/92 (portability improvement) Changed main.c not to use TK_EXCEPTION flag; it isn't needed and it causes problems on some systems. 5/9/92 (bug fix) Plugged core leaks in tkListbox.c and tkBind.c 5/9/92 (bug fix) TkBind.c was accidentally deleting bindings during attempts to print non-existent bindings. 5/11/92 (bug fix) Maximum name length for applications (name used in "send" commands) was too short (only 20); increased to 1000. Also fixed bug related to over-long names that caused core dumps. 5/13/92 (bug fix) tkShare.c was using a dangling pointer if a share group was deleted as a side-effect of a shared event. 5/13/92 (bug fix) Various initialization and core leak problems in tkGC.c, tkSend.c, tkMenu.c, tkEvent.c, tkCanvas.c, tkCanvPoly.c, tkCanvLine.c, tkListbox.c, tkEntry.c. 5/13/92 (bug fix) Empty entries could be scanned off the left edge, displaying a garbage character. 5/13/92 (bug fix) Fixed a few problems with window manager interactions, such as tendency for windows to spontaneously shrink in size. By no means are all of the problems fixed, though. 5/13/92 (performance optimization) Changed Tk_GeometryRequest not to invoke geometry manager unless requested size has changed. ---------------------- Release 2.1, 5/14/92 ------------------------- 5/1/92 (new features) Added flags like TK_IDLE_EVENTS to Tk_DoWhenIdle, plus added "idletasks" option to "update" command. Tk_DoWhenIdle arguments look different now, but the change should be upward-compatible. 5/17/92 (new feature/bug fix) Added support for VisibilityNotify events to the "bind" command. For some reason they weren't supported previously. 5/17/92 (new feature) Added "tkwait" command. 5/17/92 (new feature) Added "grab" command. 5/17/92 (new feature) Added "-width" option to messages. Also changed messages to use the computed (i.e. desired) line length when displaying, not the actual width of the window. 5/17/92 (bug fixes) Did some more fiddling with tkWm.c in the hopes of improving window manager interactions. Now there won't be more than one configure request outstanding to the wm at a time. 5/17/92 (bug fix) Arrowheads on canvas lines weren't being translated or scaled correctly. 5/20/92 (bug fix) Page-mode scrolling didn't work correctly for canvases (wrong windowUnits was passed to scrollbars). 5/20/92 (bug fix) Changed scrollbars not to lose highlight when pointer leaves window with button down. Also changed redisplay to double-buffer for smoother redraws. 5/21/92 (new feature) Added "gray50" and "gray25" as predefined bitmaps. 5/22/92 (new feature) Buttons can now be disabled using the "-state" and "-disabledforeground configuration options. The "activate" and "deactivate" widget commands for buttons are now obsolete and will go away soon. Please change Tcl scripts not to use them. 5/23/92 (new feature) Entries can now be disabled using the "-state" config option. Also improved class bindings for entries to keep the cursor visible in the window when operations occur. Also made slight improvements in the way redisplay is done. 5/23/92 (new feature) Added "-textvariable" option to entries so that the text in an entry can be tied to the value of a global variable in a fashion similar to buttons. 5/27/92 (new feature) Added "-textvariable" and "-anchor" options to messages. 5/28/92 (new feature) Added "-padx" and "-pady" and "-underline" options to menubuttons. 5/28/92 (feature change) Changed "-width" and "-height" options on all flavors of buttons and menubuttons so that they are orthogonal to "-padx" and "-pady". It used to be that -width overrode -padx (no padding). Now they accumulate. 5/29/92 (new feature) Added "-disabledforeground" option to menus and all flavors of buttons (can specify color for disabled things rather than just using stipple to gray out). 5/29/92 (new features) Added many new options to menu entries: -activebackground, -background, -font, -state, -underline. The "disable" and "enable" widget commands for menus are now obsolete and will go away soon. Please change Tcl scripts not to use them. 5/29/92 (new features) Added "atom" and "atomname" options to "winfo" command. 5/29/92 (new feature) Wrote tk_listboxSingleSelect procedure, which can be used to change listbox behavior so that only a single item is selected at once. 6/1/92 (new feature) Added new modifier names "Meta" and "Alt" for "bind" command. 6/3/92 (new feature) Added "winfo toplevel" command. 6/3/92 (new feature) Made several changes for greater Motif compliance, including: - menu retention if you click and release in the menu button, - keyboard traversal of menus (see traversal.man) - no widget flashing if you set $tk_strictMotif to 1 6/15/92 (bug fix) Fixed problem in tkBind.c where command string for a binding could get reallocated while the command was being executed (e.g. bindings that delete or change themselves). 6/15/92 (bug fix) Don't allow "tabWidth" field to become zero in tkFont.c: can cause core dumps for fonts that don't enough information to compute tab widths. 6/19/92 (bug fix) Fixed bug in binding mechanism that caused structure- related events to be reported both to the correct window and its parent. 7/14/92 (bug fix) Changed tkColor.c not to free colors for visual types StaticGray or StaticColor. 7/15/92 (new feature) Text widgets now exist. They display any number of lines of text with a variety of display formats, and include hypertext facilities. See the manual page for details. 7/20/92 (bug fix) If a top-level window was put in the iconic state to begin with, it could be deiconified with "wm deiconify .foo" until it had first been deiconified by hand from the window manager. Tk was getting confused and thought the window was mapped when it wasn't. 7/29/92 (bug fix) Don't permit rectangles or ovals to have zero-sized dimensions. Round up to at least one pixel. 7/29/92 (new features) Major upgrade to canvases: - new item types: arc, window, bitmap - added Bezier spline support for lines and polygons - rectangles and ovals now center their outlines on the shape, rather than drawing them entirely inside the shape - new "coords" and "bbox" widget commands - new "-tags" option for all item types. - new "-confine" option to prevent scrolling off edge of canvas. 8/6/92 (new feature) Added "-width" and "-height" options to frames. The "-geometry" option is now obsolete and should be removed from Tcl scripts: it may go away in the future. 8/7/92 (bug fix) Error messages in Tk_ParseArgv were sometimes including the option name where they should have included its value. ---------------------- Release 2.2, 8/7/92 ------------------------- 8/7/92 (bug fix) Changed tkCanvas.c to be more conservative in the area it passes to XCopyArea. 8/8/92 (bug fix) Fixed bug in tkTextDisp.c that sometimes caused core dumps when text views changed (e.g. typing return on last line of screen). 8/8/92 (bug fix) Fixed bug in menu.tcl that caused errors when using keyboard to traverse over separator menu entries. 8/10/92 (bug fix) Changed to use OPEN_MAX instead of MAX_FD to compute maximum # of open files. 8/10/92 (bug fix) Canvases weren't updating scrollbars on window size changes. They also weren't recentering canvases on window size changes. 8/10/92 (bug fix) There were still a few places where commands were being invoked at local level instead of global level (e.g. commands associated with buttons and menu entries). 8/10/92 (bug fix) TkBind.c used to ignore explicit shift modifiers for all keys (i.e. was treated the same as ). Modified to allow explicit request for shift modifier, like . 8/13/92 (feature change) Changed default fonts to request "Adobe" fonts explicitly. 8/16/92 (bug fixes) Modified tkCanvArc.c and tkTrig.c to increase slightly the bounding boxes for arcs, in order to make sure that proper redisplay occurs when arcs are moved (little turds were getting left behind). 8/16/92 (bug fix) Modified tkCanvas.c not to redraw at all if the redisplay area is off the screen. Also, only do a background clear for the portion of the redraw area that is on-screen. Also, reduced size of off-screen pixmaps used for redisplaying, which speeds up redisplay in some cases. 8/19/92 (bug fix) Canvases that were taller than wide were not being redisplayed properly. 8/20/92 (new feature) Added Tk_CreateGenericHandler procedure for trapping all X events (useful for tracing, watching non-Tk windows, etc.). 8/21/92 (bug fix) Widgets weren't always being notified when they got the focus back again (the problem had to do with grabs and menus in particular). 8/21/92 (new feature) Added "-state" option to scale widgets. 8/22/92 (new feature) Changed tkBitmap.c to allow tilde-substitution to occur in bitmap file names. ---------------------- Release 2.3, 8/24/92 ------------------------- 8/27/92 (bug fix) Changes to -activebackground and -activeforeground options for menubuttons were being lost. 8/27/92 (bug fix) Entries were selecting last character when a B1-drag occurred past the right edge of the text. 8/28/92 (bug fix) Fixed bug in canvases where a grab during a button press caused the canvas state to lock up so that it didn't select a new current item. 9/7/92 (bug fix) Changed tkMenu.c to accept numerical menu indices that are out of range; now it just rounds them off to the nearest existing entry. 9/7/92 (bug fix) Fixed bug in tkTextDisp.c that caused core dumps when invoking "yview -pickplace" widget command on texts that are too small to hold any lines at all. 9/11/92 (bug fix) Fixed bug in tkTextDisp.c that caused core dumps when adding tags to non-existent lines. 9/11/92 (bug fix) Line items in canvases didn't permit an empty fill color (i.e. couldn't make them transparent). 9/14/92 (reorganization) Changed manual entries to use .1, .3, and .n extensions. Added "install" target to Makefile to suggest how Tk should be installed. 9/16/92 (bug fix) Changed tkSend.c to always specify the root window of screen 0 rather than using DefaultRootWindow. DefaultRootWindow doesn't always go to screen 0 on displays with multiple screens, which can result in send's not being possible between the screens. 9/18/92 (new feature) Added three new options to "wm" command: "protocol", "client", and "command". These provide support for window manager protocols such as WM_DELETE_WINDOW and WM_TAKE_FOCUS, plus support for the WM_CLIENT_MACHINE and WM_COMMAND properties. 9/30/92 (new feature) Implemented color model support, including "tk colormodel" command and Tk_GetColorModel and Tk_SetColorModel procedures. These allow you to force mono operation even on a color display. Also changed color allocation not to give errors when colors run out, but just to switch to a mono color model. 10/1/92 (bug fixes) Fixed two bugs in tkTextBTree.c that caused core dumps during text deletion. 10/5/92 (bug work-around) Changed tkColor.c to ignore errors when freeing colors. This is needed to work around improper reference count management for colormap entries under X11/NeWS. 10/7/92 (new feature) Added support for different visual types, including procedures Tk_SetWindowVisual and Tk_SetWindowColormap, plus macros Tk_Visual, Tk_Depth, and Tk_Colormap. The code for this was contributed by Paul Mackerras. 10/7/92 (new feature) Added Tk_IsTopLevel macro. 10/12/92 (bug fix) Fixed bug in tk.tcl that caused torn-off menus with cascaded children not to track mouse motion correctly (the cascade switched in response to mouse motions within the cascaded child). 10/12/92 (new feature) Major changes to focus handling: (a) Tk watches FocusIn and FocusOut events for focus changes, not Enter and Leave, so it will work better with explicit-focus-model window managers (e.g. mwm in default mode). (b) Tk generates FocusIn and FocusOut events for the focus window now. The old procedural interface (via Tk_CreateFocusHandler) is obsolete and is no longer used inside Tk. It is still supported for compatibility, but won't be for long. You should change your code to use FocusIn and FocusOut events instead. (c) The model for FocusIn and FocusOut events is different than the one described in Xlib documentation. See the "focus" manual entry for details. (d) If there is no input focus then keyboard events are discarded. They used to be directed to the mouse pointer window, although this wasn't documented. The focus now defaults to the root window. *** POTENTIAL INCOMPATIBILITY *** 10/15/92 (bug fix) Fixed text items in canvases where they didn't display the insertion cursor if the item had no characters in it. 10/26/92 (bug fix) Fixed bug in tkSelect.c that occasionally caused BadWindow X protocol errors when retrieving the selection. Tk wasn't making sure that a window existed before using it to retrieve the selection. 10/30/92 (feature change) Changed canvases so that if the scroll region is smaller than the window and -confine is on, the scroll region isn't forced to be centered in the window; it can be anywhere that meets the confinement restrictions. 11/2/92 (new feature) Added "winfo exists" command. 11/5/92 (new feature) Changed DoWhenIdle handlers so that if a new when-idle handler is created as a side-effect of another when-idle handler, the new handler isn't invoked until Tk has first checked for other events to process. 11/6/92 (bug fixes, new features) Major overhaul of window manager interface: (a) Tk should now work with virtual-root window managers; (b) windows will now place more accurately on the screen and stay where they're supposed to; (c) size changes handled more reliably; (d) code now works robustly in the face of withdrawals followed immediately by deiconifications. (e) Added new procedure Tk_GetVRootInfo and new options to "winfo" command: vrootx, vrooty, vrootwidth, vrootheight. (f) Added "overrideredirect" option to "wm". (g) Fixed bug where change in width-only via "wm geom" didn't always work (min and max window sizes weren't being set properly for the wm). 11/6/92 (bug fixes) Modified menus so that they work correctly with virtual root window managers. Also fixed bug where menus didn't move along with their associated windows, so that the menu popped up at the old location of the window rather than its new location. 11/9/92 (new constraint) Made it illegal to give windows names that start with upper-case letters, since such names will goof up the option database by appearing to be classes rather than names. *** POTENTIAL INCOMPATIBILITY *** 11/10/92 (new feature) Added Postscript output to canvases. 11/13/92 (bug fix) Changed default for maximum size passed to window manager from 1000000 (which causes some wm's to make windows too large when "maximized") to the size of the display. 11/14/92 (feature change) Major overhaul of menubuttons and pull-down menus. Removed event-sharing code, including Tk_ShareEvents and Tk_UnshareEvents. The -variable option for menubuttons has been removed,and the "post" and "unpost" widget commands for menubuttons no longer exist. The "post" widget command for menus no longer allows a group option. The procedure tk_menus has been replaced with a new procedure, tk_menuBar, which has a slightly different interface. *** POTENTIAL INCOMPATIBILITY *** 11/20/92 (new features, feature changes) Major overhaul of grab mechanism to produce more correct event streams. Also changed Tcl commands to require explicit window for grab releases (makes it possible for grabs to work on multiple displays simultaneously). The old "grab none" command no longer exists, but new options have been added: "current", "release", "set", and "status". *** POTENTIAL INCOMPATIBILITY *** 11/20/92 (new feature) Use TK_LIBRARY environment variable to set library directory location, if it is defined. Otherwise fall back on usual compiled-in value. 11/25/92 (bug fix) "wm grid" command was using wrong window. 11/29/92 (bug fix) Fixed core dump that occurred when trying to use placer on top-level windows: return error instead. 11/29/92 (bug fix) Selection retrieval wasn't making sure that the window on whose behalf selection is being retrieved actually exists. 12/3/92 (new feature) Added support for Mode_switch key to support the full ISO character set. Also added event handlers for MappingNotify events so that Tk updates itself in response to keycode and modifier changes. 12/6/92 (bug fix) Ignore recursive attempts to destroy window. 12/9/92 (new demos) Added "tcolor" and "rmt" demos. 12/10/92 (new features) Added "yposition" widget command for menus, changed "delete" widget command to take an optional second index, and changed -command option for cascade entries so that it is invoked when the entry is activated rather than when it is invoked. *** POTENTIAL INCOMPATIBILITY *** 12/12/92 (implementation change) Changed the procedures Tk_FreeBitmap, Tk_NameOfBitmap, Tk_SizeOfBitmap, Tk_FreeCursor, Tk_NameOfCursor, and Tk_FreeGC to require an addition Display argument. This is needed for Tk to function correctly when an application has windows on multiple displays. *** POTENTIAL INCOMPATIBILITY *** 12/12/92 (new feature) Started creating a test suite. Right now it only has a few tests. 12/12/92 (new feature) Modified the packer so that a window can be packed in descendants of its parent (used to be restricted to the parent alone). This makes it possible to hide extra windows used for geometry management. Also, can use generalized screen distances in the "pack" command. 12/16/92 (feature change) Boolean options such as -exportselection now print as 0/1 rather than true/false (both the default and current values print this way). This makes it easier to use these values in expressions. *** POTENTIAL INCOMPATIBILITY *** 12/16/92 (name change) The classes "RadioButton" and "CheckButton" have been renamed "Radiobutton" and "Checkbutton" for consistency. From now on widget class names will have exactly one capital letter. *** POTENTIAL INCOMPATIBILITY *** 12/16/92 (new feature) Added -setgrid option to listboxes. 12/16/92 (new feature) The "destroy" command, and the "delete" widget command for canvases, now accept any number of arguments, including zero. 12/16/92 (new feature) Changed internal TkBindError procedure to Tk_BackgroundError and exported it to Tk clients. 12/16/92 (option name change) Changed the place command's "dependents" option to "slaves" for better consistency with documentation. *** POTENTIAL INCOMPATIBILITY *** 12/16/92 (name changes) Renamed the "cursor*" options in entries and canvases to "insert*". Also renamed the "cursor" index to "insert" and the "cursor" widget command to "icursor". This was done to avoid confusion between the mouse cursor and the insertion cursor. *** POTENTIAL INCOMPATIBILITY *** ---------------------- Release 3.0, 12/17/92 ------------------------- 12/17/92 (bug fix) Fixed dangling-pointer bug in canvases that occurred if a binding deleted the current item. 12/18/92 (bug fix) Core dump occurred if "wm" invoked with no arguments. Also, tkWm.c wasn't properly setting WM_CLASS property on application startup. 12/18/92 (incorrect documentation) Updated manual entries for Tk_FreeGC, Tk_FreeCursor, and Tk_FreeBitmap to reflect new interface that requires "display" argument. 12/18/92 (missing documentation) Added documentation for the canvas "postscript" command, which was missing in the 3.0 release. 12/21/92 (bug fixes) There were lots of problems with the new installation targets in the Makefiles, such as using "cp -f" and not installing prolog.ps. Made several other miscellaneous improvements to Makefile. 12/21/92 (bug fix) Arrowheads on canvas line items weren't moving properly after coordinate changes made with the "coords" widget command. 12/21/92 (bug fix) If top-level window was initially withdrawn, couldn't ever deiconify it again. 12/21/92 (bug fix) Double-button event sequences didn't always trigger properly when grabs were in effect. 12/22/92 (bug fix) The packer didn't display any top or bottom windows after a left or right expanded window, and vice versa. Also made the distribution of space among expanded windows more even. 12/28/92 (new features) Several improvements to selection: (a) Added procedures Tk_ClearSelection and Tk_DeleteSelHandler. (b) Added "clear" and "own" options to "selection" command, extended "handle" option to delete handlers. (c) Error returns from "selection handle" scripts are now turned into selection retrieval errors ("no such selection") rather than an empty selection. (d) Tk responds automatically for targets APPLICATION (name of application, so you can "send" to it) and WINDOW_NAME (name of window within application. (e) Added test file "select.test" to test suite. 12/28/92 (bug fix) Fixed problem with flashing menus that occurred because menu.tcl was willing to unpost and then immediately repost the same menu. 1/6/93 (bug fix) Test for UnmapNotify events in tkPack.c used = instead of ==. 1/21/93 (bug fix) Changed many widgets to eliminate use of DefaultVisualofScreen, DefaultColormap, etc. and use the visuals and colormaps for the actual windows instead. Also changed to inherit colormaps and windows from parent by default. 1/21/93 (new features) Added new winfo options "cells", "depth", and "visual". 1/23/93 (bug fix) Fixed problem with text display that could result in negative XCopyArea heights being sent to X server. This causes some servers (e.g. some versions of OpenWindows) to crash. 1/25/93 (new feature) Added -postcommand option to menus, so that menus can be reconfigured before each posting. 1/29/93 (feature change) Changed %X and %Y in bindings so that they refer to the virtual root rather than the true root. Although potentially incompatible, this change should almost always "do the right thing". *** POTENTIAL INCOMPATIBILITY *** 1/31/93 (bug fix) Changed "send" code to grab server while updating the registry property (before this fix, two programs could allocate the same interpreter name if they started up simultaneously). In order to make this fix I had to change the code for reclaiming names of dead interpreters in a way that sometimes allows dead interpreters to persist in the registry. 2/1/93 (feature change) Changed entries to allow leftmost "visible" character to be the end of the text (i.e. no characters actually visible). This is needed so that the cursor can be displayed even if the last actual character is too wide to fit in the window. 2/3/93 (bug fix) Fixed two bugs in tkFocus.c: (a) FocusIn events were getting lost in some cases because the focus window hadn't been created yet (e.g. new top-level window pops up underneath the mouse); (b) Tk was accidentally triggering FocusOut events when the mouse moved from a top-level window to one of its children. 2/4/93 (new feature) Added "visibility" option to "tkwait" command to make it easier to wait for a new window to appear on the screen. ---------------------- Release 3.1, 2/5/93 ------------------------- 2/10/93 (installation improvements) Makefile improvements: added RANLIB variable for easier Sys-V installation, changed to use INCLUDE_DIR properly, and added SHELL variable for SGI systems. ---------------------- Release 3.2, 2/11/93 ------------------------- 2/11/93 (new feature) Added "wm state" command, and improved wm so that the right thing will happen if you invoke "wm iconify" when a window is withdrawn. 2/14/93 (bug fix) When -colormap option was used in generating Postscript for canvases, Tk didn't add an extra space after the color command. 2/14/93 (new feature) Changed "extern" declarations in tk.h to "EXTERN", which will use the definition of EXTERN from tcl.h and work correctly in C++ programs. 2/18/93 (bug fix) Item-specific bindings weren't getting deleted from canvas items when the items were deleted. As a result, they could suddenly re-appear for new items if the new items were allocated a record at the same addresses as the old ones. 2/18/93 (feature reversal) Changed "after" back again, so that it sleeps *without* responding to events when it is invoked with just one argument; can always use tkwait plus after with additional arguments to achieve the effect of responding to events. *** POTENTIAL INCOMPATIBILITY *** 2/20/93 (bug fix) Fixed bug in tkWindow.c where colormaps weren't being set correctly for new top-level windows on different screens than their parents (the bug results in X protocol errors: "invalid Colormap parameter"). 2/22/93 (bug fix) Changed "#!/usr/local/wish" in demo scripts to "#!/usr/local/bin/wish" to reflect new location of binary. 2/22/93 (new feature) Added new reliefs "groove" and "ridge". 2/25/93 (new feature) Added new built-in bitmaps: "error", "hourglass", "info", "question", "questhead", and "warning". Also added new demo in "widget" to display all of these (under the Miscellaneous menu). 2/25/93 (improved implementation) Changed DrawText procedure in prolog for outputting Postscript from canvases to use stringwidth instead of charpath+pathbbox: avoids limitcheck problems with long strings, and also properly includes space characters in calculation. 2/25/93 (bug fix) Fixed several bugs in library/menu.tcl that caused menu traversal to mis-behave when menu had no entries. 2/26/93 (new feature) Added "wm frame" command. 3/6/93 (bug fix) Mwm in click-to-focus mode was goofing up grabs so that pull-down menus were sometimes unresponsive. Modified tk.tcl to ignore the spurious B1-Enter events generated by mwm, plus modified tkGrab.c to release simulated button grabs correctly. 3/8/93 (bug fix) Tk had wrong interpretation of "lbearing" font metric, which caused text to be displayed at the wrong horizontal position in several places (labels/buttons, listboxes, canvas text, scales). This change will cause slight changes in the way certain widgets are displayed. 3/12/93 (bug fix) Fixed core dumps that occurred in tkEntry.c because of zero values in entryPtr->avgWidth. 3/12/93 (bug fix) Tk_CoordsToWindow was using root coordinates always. Changed to use virtual-root coordinates when a virtual-root window manager is being used. Before this fix, "winfo containing" didn't return the correct window under virtual-root window managers. 3/18/93 (bug fix) Modified tkWm.c so that Tk doesn't fight with window manager over position of window; it just takes what the window manager gives it. 3/21/93 (new feature) Changed menus to display cascade entries with standard Motif arrows at right side.a 3/22/93 (bug fix) Fixed bug in tkPack.c that was causing memory to get trashed with the integer value 1. 3/22/93 (bug fix) Canvas text didn't print correctly if it contained an open paren (or other special character) immediately followed by an octal digit. 3/22/93 (bug fix) Text widgets didn't redisplay properly in cases where two or more groups of lines both got taller at the same time (e.g. from tag changes), causing two separate bit copies where the first bit copy's target area overlapped the source area for the second bit copy. 4/1/93 (bug fix) Changed canvases to use ISO Latin-1 font encoding if that's supported by the Postscript interpreter. Also added workaround for bug in NeWSprint related to stipple fills. 4/1/93 (bug fixes) Made various changes to focusing and grabs to eliminate extraneous focus events and generally improve behavior. 4/2/93 (bug fix) Modified tkWm.c not to wait indefinitely for the window manager to map or reconfigure a window: this led to deadlock in some situations, such as creating a new top-level window with a grab held. 4/19/93 (bug fix) Fixed another bug in tkWm.c that caused windows to walk across the screen in some situations. Also fixed problem where rapid posting and unposting of cascaded submenus (or menus?) could cause Tk to become confused about whether or not a window is mapped (added TkWmUnmapWindow procedure to make top-level unmaps synchronous). 4/24/93 (feature change) Changed the "after" command to allow times less than or equal to 0, and to use 0 whenever they occur. 4/26/93 (new feature) Implemented security check for "send" as proposed by Bennett Todd: incoming sends are now rejected unless (a) xhost-style access control is enabled and (b) the list of authorized hosts is empty. In other words, you have to use xauth to use send. This feature can be disabled by setting the TK_NO_SECURITY flag at compile-time. 5/15/93 (improvement) Switched to use Tcl_PrintDouble whenever returning real values as Tcl results. This potentially allows higher precision. Switched to use %.15g whenever printing reals in Postscript files. However, the change Tcl_PrintDouble causes incompatibilities. For now, it's disabled with a macro in tclInt.h that redefines Tcl_PrintDouble. Tk 4.0 will delete the macro, and you can also delete it now if you want the better (but incompatible) behavior. 5/19/93 (bug fix) Fixed divide-by-zero problem that could occur in closeness calculations for canvas oval items. 5/30/93 (bug fix) PROP and CONFIG were accidentally #defined to the same value in tkBind.c, which could cause incorrect %-substitutions in event bindings in a few exotic cases. 6/4/93 (improvement) Changed to use GNU autoconfig for configuration. Makefile format changed, and Tcl is no longer automatically included in Tk releases. 6/7/93 (bug fix) Fixed off-by-one error in rounding negative coordinates during redisplay of canvases. 6/9/93 (feature improvement) Modified default bindings for entries to keep one character visible to the left of the cursor during backspaces. 6/18/93 (feature improvement) Added patchlevel.h, for use in coordinating future patch releases, and also added tk_patchLevel variable to make the patch level available in scripts. 6/26/93 (bug fix) Fixed numeric problems in scales that occurred with very large scale values. 6/26/93 (bug fix) Polygon items in canvases could cause core dumps if the "coords" widget command was used to add one new coordinate. 6/26/93 (bug fix) Changed canvases to handle large stipple patterns gracefully (stipples used to jump around during redisplay and lose coherency). 7/1/93 (syntax change, new feature) Implemented the new packer syntax as described in the book. For now the old syntax will continue to be supported too. Converting over is straightforward except (a) use "-anchor" instead of "frame", and (b) padding is different (separate internal and external padding, plus pad amounts are *on each side* instead of total). Also added "pack propagate" command for keeping the packer from setting the master's requested size. 7/1/93 Changed copyright notices. The effect is the same as with the old notices, but the new notices more clearly disclaim liability. 7/7/93 (new feature) Added support for window stacking order. Windows will now stack in the order created (most recent on top), plus "raise" and "lower" commands may be used to restack (Tk_RestackWindow procedure is available from C level). 7/7/93 (reorganization) Moved main.c to tkMain.c, reorganized it to call Tcl_AppInit just like tclsh does, and added argv0 variable to contain application name, and added default Tcl_AppInit procedure for wish. Also added tkTest.c to hold C code for testing. 7/7/93 (new feature) Added new Tk-specific "exit" command, which cleans up properly before exiting. It replaces the Tcl "exit" command, and can be used in place of "destroy .". 7/9/93 (new features) Added tk_dialog library procedure that creates dialogs with a bitmap, message, and any number of buttons. Also changed default tkerror procedure to use tk_dialog plus offer the user a chance to see a Tcl stack trace. -------------------- Release 3.3 Beta 1, 7/9/93 ------------------------- 7/12/93 (configuration changes) Eliminated leading blank line in configure script; provided separate targets in Makefile for installing binary and non-binary information; fixed -lnsl and -lsocket handling in configure; added autoconf support for fd_set type; check for various typedefs like mode_t and size_t, and provide substitutes if they don't exist; don't include tkAppInit.o in libtk.a; try to locate the X includes and library in all of the standard places for various systems. 7/14/93 (new feature) Modified tkMain.c so that it stores the value of the -display command-line option into the DISPLAY environment variable, if it is specified. 7/15/93 (feature removal) Removed auto-initialization feature from Tk_ConfigureWidget, so that you must once again initialize all fields of a widget record before calling Tk_ConfigureWidget. This restores the behavior back to what it was in Tk 3.2. 7/16/93 (bug fix) Modified tkBind.c to ignore the Caps Lock modifier unless it is explicitly requested in a binding. Without this fix, buttons and menus and other things didn't work if the Caps Lock key was active. -------------------- Release 3.3 Beta 2, 7/21/93 ------------------------- 7/21/93 (new feature) Change "make install" so that it will modify the #! lines on demo scripts to reflect the place where the wish binary is installed. 7/23/93 (new feature) Added Tk_MainWindow procedure that returns the main window associated with a Tcl interpreter. This is intended for use by Tcl_AppInit and other initialization procedures. 7/24/93 (configuration improvements) Changed configure script not to omplain about "fd_set" missing if it's defined in . 7/28/93 (bug fix) "Bad Match - parameter mismatch" errors were sometimes occurring when several top-level windows got created at the same time, due to wrong choice of sibling when stacking windows. 8/14/93 (new feature) Added support for tcl_prompt1 and tcl_prompt2 to wish main program: makes prompts user-settable. 8/19/93 (bug fix) Bindings to event sequences like "aD" never matched because the Shift key has to be pressed before D. Modified Tk to ignore extraneous keypresses if they are for modifier keys. 8/26/93 (configuration changes) Added Tk_Init, modified Tcl_AppInit procedures to use it and Tcl_Init. Added support for .wishrc file. 8/28/93 (new feature) The main window is now a legitimate toplevel widget. -------------------- Release 3.3 Beta 3, 8/30/93 ------------------------- 9/2/93 (bug fix) The packer wasn't always relaying out a master after changes to some of the configuration options of its slaves. 9/2/93 (bug fix) The binding mechanism made it impossible for patterns like to ever match. 9/2/93 (bug fix) Fixed core dump that occurred for bitmap canvas items if Postscript is generated but no -bitmap option has been specified. 9/4/93 (enhancement) Slight improvements to menu traversal: set menu traversal bindings for menubar window in tk_menuBar, plus trigger traversal on instead of . 9/9/93 (bug fix) Changed tkBind.c so that the Num_Lock key doesn't prevent events from triggering bindings. 9/9/93 (bug fix) Changed tkOption.c to always fetch RESOURCE_MANAGER property from root window of screen 0, rather than using default screen. 9/9/93 (bug fix) Entry widgets weren't allocating quite enough width for themselves. Fixed this and changed the size computation to match what's done for buttons and texts. 9/16/93 (bug fix) Changed tkMain.c not to call exit C procedure directly; instead always invoke "exit" Tcl command so that application can redefine the command to do additional cleanup. -------------------- Release 3.3, 9/29/93 ------------------------- 9/30/93 (bug fix) Packer wasn't unmapping slaves when master got deleted. 9/30/93 (bug fix) Binding event sequences such as were being misprinted as ASCII characters such as "S". 10/6/93 (bug fix) Canvases weren't unmapping window items when the canvas got unmapped, which caused problems for window items whose windows weren't descendants of the canvas (they got left on the screen). 10/7/93 (feature change) NULL proc arguments to Tk_CreateFileHandler used to have a special undocumented meaning (fd was display); eliminated this special interpretation. 10/7/93 (configuration change) Eliminated dependency of tkMain.c on tkInt.h and tkConfig.h, so that it's easier for people to copy the file out of the source directory to make modified versions. 10/8/93 (bug fix) 3.0 introduced a bug where the class of the application wasn't being set properly, so options based on the application class weren't triggering. Fixed by adding new argument to Tk_CreateMainWindow. 10/11/93 (bug fix) Fixed bug in tkTextBTree.c where some deletions would cause core dumps due to halfwayLinePtr not getting set correctly. 10/18/93 (bug fix) Fixed a couple of bugs that made it hard to actually display N characters in an entry with "-width N" (tended to scroll the entry so that only N-1 characters were visible at once). 10/22/93 (bug fix) During configuration, XINCLUDE_DIR and XLIBRARY_DIR weren't overriding xmkmf like they were supposed to. 10/23/93 (new feature) Allow negative scale factors in canvas "scale" widget command. 10/23/93 (bug fix) Grabs weren't being cleaned up right if the grab window was deleted, causing core-dumps in some cases. 10/23/93 (bug fix) tk_TextSelectTo wasn't checking to be sure that the "anchor" mark exists. 10/27/93 (bug fix) Fixed core dump that could occur in a text widget if the scroll command modifies the text. 11/1/93 (bug fix) Change texts so that the -yscrollcommand option is invoked at display time, not when the window is re-layed out. This eliminated various core dumps that could occur if -yscrollcommand modified the text. -------------------- Release 3.4, 11/04/93 ------------------------- Note: there is no 3.5 release. It was flawed and was thus withdrawn shortly after it was released. 11/12/93 (bug fix) TkMain.c didn't compile on some systems because of R_OK in call to "access". Changed to eliminate call to "access". -------------------- Release 3.6, 11/26/93 ------------------------- 11/10/93 (bug fix) Packer and placer didn't always reposition a window correctly if it was managed inside a neice or lower descendant (using "-in" option) and the neice's parent moved. 11/24/93 (bug fix) Fixed time problem in selection (retrievals could fail if retriever hasn't received any X events since selection was made, so that time of retrieval appears to be older than time of selection). Selection code is now much less picky about times, both on retrieving and supplying sides. 12/2/93 (new feature) Changed arrow-head drawing code for canvas lines to draw a 0-width outline in addition to filling the area: this produces much nicer, more symmetrical displays. 12/2/93 (bug fix) When colors ran out, Tk was invoking "tkerror" when its state was internally inconsistent, which could cause core dumps in some situations (e.g. if tkerror used the same color that caused colors to run out). Changed notification to occur as a when-idle handler. 12/3/93 (bug fix) During a global grab, Tk wasn't including PointerMotion in the list of grabbed events, so pointer motion couldn't be tracked outside the grabbing application. 12/3/93 (bug fix) Canvases didn't handle smoothed lines correctly when they only contained two points. 12/3/93 (bug fix) Fixed bug in tkWindow.c where certain kinds of errors during window creation could cause Destroy events to be generated for a window that was never completely initialized. 12/13/93 (bug fix) Fixed bug in tkTextDisp.c that resulted in core dumps at line 1467 under exmh. The exact situation is that a text widget was being redisplayed at a time when it had a -yscrollcommand option but hadn't yet been mapped onto the screen. 12/17/93 (bug fix) Fixed bug in tkWindow.c whereby new top-level windows with non-default visuals still inherited border pixmap from parent (root), which could cause visual clash and X error. 12/17/93 (bug fix) Fixed bug in tkTextDisp.c that caused round-off error in the information passed to scroll commands. 12/18/93 (bug fix) Fixed bug in tkPack.c that caused core dumps in some situations if a master with siblings packed "-in" it was deleted. 12/18/93 (bug fix) Added "compat" directory to distribution, since it's referenced by tkConfig.h on some systems. 12/18/93 (performance improvement) Improved performance of appending to a listbox, so that inserting N items doesn't take N**2 time. 12/20/93 (bug fix) Fixed bug in canvas ovals that caused the fill color for the oval to stick out past the outline. 1/2/94 (fixed Xlib bug) Added code to reuse X resource identifiers so that they won't run out in long running applications. There are three new library procedures: Tk_FreeXId, Tk_GetPixmap, and Tk_FreePixmap. Modified all Tk code to use these procedures, so wish applications should now be able to run forever without running out of identifiers. 1/10/94 (bug fix) tkCursor wasn't freeing pixmaps used to create cursors, which caused memory leaks in programs that changed cursors frequently. 1/21/94 (bug fix) Fixed bug in scales that caused them to loop infinitely drawing tick-marks when -from and -to were the same. 2/2/94 (bug fix) Fixed problem where messages that contained tabs didn't always compute the correct size, so that text spilled off the right edge. The fix adds an extra "tabOrigin" parameter to the internal procedures TkMeasureChars, TkDisplayChars, and TkUnderlineChars. 2/4/94 (bug fix) Fixed off-by-one problem in tkBind.c that caused it to read past the initialized part of dispPtr->modKeyCodes. 2/7/94 (bug fix) Text widgets didn't handle grabs correctly, such that the "current" character got stuck if a grab occurred while a mouse button was down. It would get unstuck until after the next button press and release. 2/19/94 (bug fix) Fixed prolog.ps (prolog for Postscript printing from canvases) so that it correctly prints all of the characters in the ISO Latin-1 character set. 2/19/94 (bug fix) Modified tkBind.c to save and restore the interpreter's result across the execution of binding scripts. Otherwise if an event triggers in the middle of some other script (e.g. a destroy event during window creation, because there was an error in the creation command), the intepreter's result gets lost. 2/19/94 (bug fix) Fixed bug in dealing with results of sent command that could cause them to get lost in some situations. 2/21/94 (bug fix) Don't let user close a dialog window created by tk_dialog, since this would cause tk_dialog to hang: force the user to select one of the dialog's buttons. 2/21/94 (bug fix) Fixed bug in canvas polygons whereby they didn't correctly handle changes in the number of points (via "coords" widget command). 2/23/94 (bug fix) Large bitmaps in canvases didn't print correctly because they overflowed the 64-KB limit on strings in Postscript. Changed canvas printing to split up large bitmaps into mutliple smaller ones for printing. 2/25/94 (bug fix) The "." window was being set up with -width and -height options, which interfered with geometry management (any configuration change on "." causes the window to change size to 200x200, then change back again). 2/26/94 (bug fix) Fixed several bugs that occurred when a Destroy event handler for a window deleted the window's parent. 3/3/94 (new features) Changes to binding mechanism: - The modifiers for "Alt", "Meta", and "M" are now computed by examining the modifier map, rather than being hardwired to M2, M1, and M1. - When processing events, one script is invoked for each object in the list passed to Tk_BindEvent, rather than stopping as soon as a script is invoked for some object. The "break" and "continue" commands can be used within a script to abort all scripts for the event or the current one. *** POTENTIAL INCOMPATIBILITY *** - Added "bindtags" command so that new binding groups can be defined for widgets and the evaluation order can be changed. - When matching events to bindings, extra modifiers are now ignored, as if "Any" were specified for every event. The "Any" modifier is still recognized, but it is ignored and is deprecated. *** POTENTIAL INCOMPATIBILITY *** - In % sequences that print window identifiers (e.g. %a and %S), print in hexadecimal rather than decimal, for consistence with "winfo id". *** POTENTIAL INCOMPATIBILITY *** - The "bind" command no longer supports the event types CirculateRequest, ConfigureRequest, MapRequest, or ResizeRequest. These event types are somewhat dangerous, and they never worked anyway. 3/13/94 (bug fix) Fixed numerous problems with the "wm iconwindow" command. It appears that this command never really worked at all, but it should work OK now. 3/14/94 (feature changes) Removed several obsolete features: - Eliminated "enable" and "disable" widget commands for menus. *** POTENTIAL INCOMPATIBILITY *** - Eliminated "activate" and "deactivate" widget commands for buttons, checkbuttons, radiobuttons, and menubuttons. *** POTENTIAL INCOMPATIBILITY *** - Removed -geometry option for frames and toplevels: it causes problems when .Xdefaults files contain entries like "*geometry: +0+0". Must use -width and -height instead. *** POTENTIAL INCOMPATIBILITY *** - Desupported "tkVersion" variable: use "tk_version" instead. *** POTENTIAL INCOMPATIBILITY *** 3/16/94 (feature changes) Changes to listboxes: - Eliminated -geometry option (it causes problems when .Xdefaults files contain entries like "*geometry: +0+0"). Added -width and -height options to use instead. *** POTENTIAL INCOMPATIBILITY *** 3/21/94 (bug fix) Fixed bug in tkOption.c where the option cache wasn't properly cleaned up after window deletion; this could cause the wrong value from the option database to be used under some conditions. 3/25/94 (new features) Changes to geometry management: - Added Tk_MaintainGeometry and Tk_UnmaintainGeometry procedures to solve problems with -in windows. Modified the packer, the placer, and canvases to use them. - Changed 2nd argument to Tk_ManageGeometry from Tk_GeometryProc * to a pointer to a structure with additional information about the geometry manager, such as name and procedure to call when slaves are stolen. *** POTENTIAL INCOMPATIBILITY *** 3/28/94 (new feature) Overhauled event management: - Added "cancel" option to the "after" command so that you can cancel previously-scheduled commands. - Separated X-specific stuff from generic event management. The file tkEvent.c can now be used stand-alone without the rest of Tk. See the manual entry for Tk_EventInit for information on which procedures are available this way. - Added Tk_CreateFileHandler2 procedure, which provides a lower-level and more powerful form of file event handler. - Fixed bug in Tk_DoOneEvent where an infinite loop could occur if the TK_FILE_EVENT and TK_DONT_WAIT flags were set simultaneously (there were bugs with several other combinations too; all should be fixed now). 3/28/94 (new feature) Added "fileevent" command, which allows event- driven I/O in the style of Mark Diekhans' "addinput" command. 4/11/94 (new feature) Better support for colormaps and visuals: - Added new -colormap and -visual options to toplevels and frames. - Added "winfo visualsavailable" command. - Added "wm colormapwindows" command, plus support for WM_COLORMAP_WINDOWS to Tk_SetWindowColormap. - Added new library procedures Tk_GetVisual, Tk_GetColormap, and Tk_FreeColormap. 4/11/94 (bug fix) Fixed core dump that used to occur when specifying an iconwindow ("wm iconwindow") for a toplevel on a different screen than the main window. 4/23/94 (new feature) Added support for images, including the following: - New "image" command for creating images. - Built-in image type: bitmap. - New "image" item type in canvases. - Labels, buttons, checkbuttons, radiobuttons, menubuttons, and menu entries now support a -image option for displaying images. - Tk_CreateImageType and Tk_ImageChanged procedures, for defining new types of images in C. - Tk_GetImage, Tk_FreeImage, Tk_RedrawImage, and Tk_SizeOfImage procedures, for using images in widgets. 5/1/94 (new features) Added new procedures Tk_3DVerticalBevel and Tk_3DHorizontalBevel. 5/11/94 (new features) Major overhaul of text widgets: - Implemented embedded windows and "window" widget command. - Added new configuration options for tags: -justify, -lmargin1, -lmargin2, -rmargin, -offset, -spacing1, -spacing2, and -spacing3. See the "Display styles" widget demo for examples. - Added new configuration options for texts: -spacing1, -spacing2, and -spacing3. - Added "tagList" option to "insert" widget command to control tags on new text. Made tagged regions so they aren't sticky on either side: new characters get a tag only if the old chars. on both sides had it. *** POTENTIAL INCOMPATIBILITY *** - Added gravity for marks, and "mark gravity" widget command. - Added horizontal scrolling, "xview" widget command, -xscrollcommand option. Changed "scan" widget commands to support horizontal scrolling. *** POTENTIAL INCOMPATIBILITY *** - Added "search" widget command for searching (either exact matches or regular expressions). - New widget commands: bbox, dlineinfo, and see. - Changed implementation of bindings so that Enter and Leave events are not generated unless the tag has just become present (or just ceased to be present) on the current character. Also changed bindings to process separately for each tag, rather than having high-priority tags override low-priority ones. - The "end" index now refers to the character after the last newline rather than the newline itself. You can now tag the final newline and set a mark after the final newline. - Deletions of the "sel" tag and the "insert" and "current" marks are now ignored silently, rather than generating errors. This means you can do things like "eval .t tag delete [.t tag names]". 5/19/94 (bug fix) Canvases didn't generate proper Postscript for stippled text. 5/20/94 (new feature) Added "bell" command to ring the display's bell. 5/20/94 (new feature) Incorporated "square" demonstration widget into tktest application. 5/20/94 (new features) Changed wish application (tkMain.c): - wish no longer processes the -help option. *** POTENTIAL INCOMPATIBILITY *** - The wish main program is now called Tk_Main; tkAppInit.c has a "main" procedure that calls Tk_Main. This makes it easier to use Tk with C++ programs, which need their own main programs, and it also allows an application to prefilter the argument list before calling Tk_Main. *** POTENTIAL INCOMPATIBILITY *** - The application's class is now the same as its name (except the first letter is capitalized), instead of "Tk". *** POTENTIAL INCOMPATIBILITY *** - The -file keyword is no longer required: the script file name can be provided as the first argument without being preceded by "-file", as in tclsh. For backward compatibility the "-file" keyword is ignored if it is the first argument, but it is deprecated. 5/26/94 (feature removed) Removed support for "fill" justify mode from Tk_GetJustify and from the TK_CONFIG_JUSTIFY configuration option. None of the built-in widgets ever supported this mode anyway. *** POTENTIAL INCOMPATIBILITY *** 5/27/94 (feature change) Changed Tk to use Tk_PrintDouble everywhere that it converts reals to strings. This means that floating-point values will be generated in some cases where integer-like values were generated before. *** POTENTIAL INCOMPATIBILITY *** 6/1/94 (feature change) Renamed "pack newinfo" command to "pack info". The old "pack info" command is no longer available. *** POTENTIAL INCOMPATIBILITY *** 6/20/94 (feature changes) Overhaul of entry widgets: - Added "-justify" option. - Added "-show" option to make entries easier to use for passwords. - Added "cget" widget command. - Added "selection range" and "selection present" widget commands. - Added "anchor" symbolic index. - Changed "-scrollcommand" option to "-xscrollcommand", "view" widget command to "xview", for compatibility with other widgets. *** POTENTIAL INCOMPATIBILITY *** - Changed sel.last to refer to character just *after* last one selected, again for compatibility with other widgets. *** POTENTIAL INCOMPATIBILITY *** - For "delete" widget command, second index now refers to character just *after* last one to delete. *** POTENTIAL INCOMPATIBILITY *** - Overhauled bindings to be more Motif-compatible and to include common Emacs bindings for editing. - Changed -width option: if specified as 0, widget sizes to fit its current text. 6/11/94 (new features) Improved Motif compatibility: - Added "-highlightwidth" and "-highlightcolor" options to all widgets. 6/27/94 (bug fix) Postscript generation for text items in canvases was not justifying the text properly when a -width was specified that was longer than the longest line. 6/27/94 (bug fix) "winfo exists" used to report a window as existing if it was in the process of being destroyed (i.e., a destroy handler is in the middle of execution). Changed to report it as non-existent under these conditions. *** POTENTIAL INCOMPATIBILITY *** 7/11/94 (bug fix) Selections claimed via "selection own" weren't always being cleared properly when the selection was claimed away. Also fixed bug where Tk wasn't properly claiming the selection, if there haven't been any recent X events at the time of the claim. 7/13/94 (feature changes) Overhaul of scrollbar widgets: - New widget commands: "activate", "cget", "fraction", and "identify". - New options: -activebackground, -activerelief, -highlightcolor, -jump, -highlightthickness, and -troughcolor. What used to be -background is now -troughcolor, -foreground is now -background, and -activeforeground is now -activebackground. *** POTENTIAL INCOMPATIBILITY *** - Added new syntax for "set" command, "get" result, and generated commands. Changed other widgets to use the new syntax. - Moved the bindings out of C and into Tcl scripts, using the new options and widget commands. Added support for all Motif bindings, plus jump scrolling and cancelling of slider drags. 7/16/94 (bug fix) Canvases assumed that the Leave event for one item didn't modify or delete the next current item; this could cause core dumps under some conditions. 7/23/94 (feature change) Modified Tk_BackgroundError so that tkerror is invoked as an idle handler. If tkerror generates a break exception then all other queued reports are aborted. 8/14/94 (bug fix) "cursorOffTime" and "cursorOnTime" were confused in canvases, resulting in the same time being used for both. 8/16/94 (bug fix) "tkwait variable" command didn't detect errors in variable name, such as trying to wait for an entire array. 9/2/94 (new features) Overhaul of scale widgets: - Floating-point values are supported now, following Paul Mackerras' "fscale" widget. Added "-resolution" and "-digits" options. - Added "-variable" option to link scale to variable, following Henning Schulzrinne's implementation. - Added focus highlight (-highlightthickness and -highlightcolor options). - Added new widget commands "cget", "coords", "identify", plus improved "get"; removed wired-in bindings, added complete set of Motif bindings via Tcl scripts. - Changed -sliderforeground option to -background, -background to -troughColor, -activeforeground to -activebackground. *** POTENTIAL INCOMPATIBILITY *** - Moved value label from below horizontal scales to above the scale, for Motif compliance. 9/9/94 (bug fix) Fixed bug in tkWm.c that caused long delays in "raise" command under some conditions (window already at the top of the stack). 9/10/94 (new features) Overhaul of label/button/checkbutton/radiobutton widgets: - Added focus highlight (-highlightthickness and -highlightcolor options). - Added new widget command "cget". - Changed -selector option to -selectcolor, and changed its meaning too: empty no longer means don't draw the indicator; it means don't use a special color when selected. *** POTENTIAL INCOMPATIBILITY *** - Added -indicatoron (controls whether indicator is displayed) and -selectimage (gives special image to display when selected) options. - Modified bindings to be more Motif-like, added binding for space key. - Changed padding defaults to give widgets correct Motif appearance by default. Also, changed to ignore padding options when displaying an image or bitmap. *** POTENTIAL INCOMPATIBILITY *** - Can now display text on multiple lines: newlines cause line breaks, and word wrapping can be requested with -wraplength option. Also added -justify and -underline options. - The -value option for radiobuttons can now have an empty string as its value; it no longer defaults to the name of the widget. *** POTENTIAL INCOMPATIBILITY *** 9/13/94 (new features) Modified both canvases and messages to support -highlightthickness and -highlightcolor options plus "cget" widget command. 9/19/94 (new features) Added Tk_UnsetGrid procedure, modified widgets to use it. Also changed Tk_SetGrid so that at most one window per toplevel can have gridding enabled. 9/23/94 (new features) Major overhaul of listbox widgets: - Added focus highlight (-highlightthickness and -highlightcolor options). - Added new widget command "cget". - Revised selection commands to support single selections as well as multiple disjoint selections; syntax of "selection" widget command has changed to support this. Added new option -selectmode for specifying which mode to use. Default is single selection; tk_listboxSingleSelect procedure no longer exists. Selections now return as items separated by newlines instead of a list whose elements are the items. *** POTENTIAL INCOMPATIBILITY *** - Extended "get" widget command to allow many items to be retrieved at once. - Added "bbox" widget command for finding position of an element on screen. - Added "activate" command to mark element with traversal focus. - Extended index mechanism to support new types of indices: "active", "anchor", "@x,y". - Added "see" widget command. - Revised bindings to include all Motif features except for AddMode. - If -width or -height option is <= 0, the widget requests a size just large enough to hold all of its text. 10/6/94 (new features) Overhaul of menubuttons: - Added focus highlight (-highlightthickness and -highlightcolor options). - Added new widget command "cget". - Added -indicatoron option to display option menu indicator. - The -menu option must be a child of the menubutton. *** POTENTIAL INCOMPATIBILITY *** 10/6/94 (new features) Overhaul of menu widgets: - Added new widget commands "cget" and "entrycget". - Changed the implementation of tear-off menus to be more Motif-like; added -tearoff option for specifying whether tearoff entry is displayed. - Changed interpretation of "@y" index: it now returns the closest entry, rather than "none" if y is outside the menu's range. *** POTENTIAL INCOMPATIBILITY *** - The -menu option for a cascade entry must now be a child of the menu. *** POTENTIAL INCOMPATIBILITY *** - Added "type" widget command, so that you can query the type of an entry. - Added -foreground, -activeforeground, -selectcolor, -indicatoron, -image, and -selectimage options to menu entries. - Changed "selector" menu option to "selectColor" for Motif compliance. *** POTENTIAL INCOMPATIBILITY *** - Added -relief option for menus, just for consistency with other widgets (it was implicitly "raised" before). 10/6/94 (feature change) Completely overhauled the bindings for menus and menubuttons. They now fit better with other Tk 4.0 facilities, such as the new binding mechanism, and they provide better Motif compliance (e.g. keyboard traversal of submenus). Also, the bindings now support option menus, popup menus, and proper Motif tear-off menus. 10/6/94 (obsolete features) The procedures tk_menuBar and tk_bindForTraversal are no longer needed in Tk 4.0. They still exist for compability, but they do nothing. 10/6/94 (new procedures) Added "tk_popup" procedure for posting a popup menu, and "tk_optionMenu" for creating an option menubutton and its associated menu. 10/6/94 (change in name) The variable "tk_priv" has been renamed to "tkPriv" to reflect that fact that it is private to Tk now. This shouldn't cause any problems, since no-one except Tk should have been using it before anyway (right?). 10/6/94 (bug fix) Fixed bug in texts where sometimes the text would stop tracking mouse motion (the "current" item wouldn't get updated) because the text widget missed a ButtonRelease event. 10/20/94 (new features) Overhauled selection code to support multiple selections (primary, secondary, etc.) and multiple displays: - Changed "selection" command to support new options such as "-displayof" and "-selection". Old command formats are still supported for compatibility, but they are no longer documented and are deprecated. - Changed procedures Tk_GetSelection, Tk_CreateSelHandler, and Tk_ClearSelection to take additional "selection" argument. *** POTENTIAL INCOMPATIBILITY *** - Selection targets APPLICATION and WINDOW_NAME have been replaced by TK_APPLICATION and TK_WINDOW. *** POTENTIAL INCOMPATIBILITY *** 10/20/94 (new features) Added support for clipboard: - New "clipboard" command. - C procedures Tk_ClipboardClear and Tk_ClipboardAppend. - Bindings for "cut", "paste", and "copy" for text and entry widgets, plus "copy" binding for listboxes. 10/24/94 (bug fix) Button widgets weren't checking for errors when setting the values of associated variables. 11/3/94 (bug fix) Fixed bug whereby Tk would hang if "exit" was invoked from inside a binding. 11/15/94 (new features) Overhaul of focus mechanism: - Added support for multiple displays: separate focus windows are kept for each display. - Added support for keyboard traversal. - Changed focus model so Tk keeps track of a focus window for each top-level window and automatically sets the focus on Enter to the top-level. Tk no longer synthesizes FocusIn and FocusOut events, but just uses the standard X mechanisms. There is no "default" focus window anymore; the focus reverts to top-levels by default. *** POTENTIAL INCOMPATIBILITY *** - Changed focus command: eliminated "focus default" and "focus none", added "-displayof" and "-lastfor" options. An empty string is now used to signify "no focus" instead of "none". *** POTENTIAL INCOMPATIBILITY *** - Added library procedures tk_focusNext, tk_focusPrev, and tk_focusFollowsMouse. - Removed obsolete Tk_CreateFocusHandler: must use FocusIn and FocusOut events now. *** POTENTIAL INCOMPATIBILITY *** 11/23/94 (new features) Overhaul of "send" command: - Added support for multiple displays: -displayof option to "send". - Added asynchronous sends: -async option to "send". - Eliminated fixed timeouts on sends: as long as the target application appears to exist, the send will wait for it. - Stale entries get removed from the application registry now, so "winfo interps" should never return non-existent applications. - Can change the name of an application with "tk appname" command. This is also the preferred way of querying the application name now. - The errorCode and errorInfo variables are now propagated back to the sender now, so a full stack trace is available. - Tk checks display security on each send now, instead of just during initialization, so changes in the security status are seen immediately by all applications. - The above changes required changes to the data formats used for communication between source and target applications, so Tk 4.0 applications cannot send to, or be sent from, Tk 3.6 applications. *** POTENTIAL INCOMPATIBILITY *** - The procedure Tk_RegisterInterp has been replaced with Tk_SetAppName. *** POTENTIAL INCOMPATIBILITY *** 12/6/94 (cleanup) Eliminated "interp" argument to Tk_GetColorByValue, since it is no longer needed. *** POTENTIAL INCOMPATIBILITY *** 12/7/94 (feature change) Changed the "wm" command so that top-level windows are now resizable by default. You can no longer specify empty arguments to "wm maxsize" and "wm minsize". *** POTENTIAL INCOMPATIBILITY *** 12/8/94 (new feature) Added new "photo" image type using code provided by Paul Mackerras: currently supports only PPM "P6" format images. 12/14/94 (new features) Canvas modifications: - Modified the interfaces between generic canvas code and the item types so that it's easy for people to write new item types outside of Tk. - Added support for transparent bitmap items: just specify an empty string as the background color. - Changed the "xview" and "yview" commands for canvases to use the new scrolling syntax. - Eliminated -scrollincrement option. *** POTENTIAL INCOMPATIBILITY *** 12/14/94 (bug fix) Fixed bug where the dimensions of canvas arrowheads scaled during a "scale" widget command, but the scaling was only temporary and got lost on the next re-configure of the item. The correct behavior is for the arrowheads not to scale. -------------------- Release 4.0b1, 12/23/94 ------------------------- 12/26/94 (bug fix) Removed obsolete demos from Makefile (color, dialog, size), fixed "install" target. 1/3/95 (bug fix) Fixed all procedure calls to explicitly cast arguments: implicit conversions from prototypes don't work when compiling under non-ANSI compilers. Tk is now clean under gcc -Wconversion. 1/4/95 (bug fix) Used "screenX" without ever setting it in DisplayText in tkCanvText.c: caused tabs in canvas text items to get messed up. 1/4/95 (bug fix) Canvases forgot to register the built-in types if Tk_CreateItemType was called before a canvas widget was created. 1/4/95 (bug fixes) Fixed glitches in various text bindings: - Up used to do nothing if the cursor was at 2.0. - Right used to make the cursor invisible if it was just before the final newline of the text. - Control-t didn't conform to Emacs; made it conform to GNU Emacs. - Deleted Control-x binding, since it doesn't conform to anything and is confusing for Emacs users. 1/4/95 (bug fixes) Changed Control-t for entries just as for texts (see above) an deleted Control-x for entries (see above). 1/4/95 (bug fix) The packer didn't map slaves unless the master was mapped; this could cause slaves to get "lost" so that they weren't mapped until the master resized. 1/5/95 (bug fix) Scrollbars weren't executing the proper code the first time the mouse entered the widget; this caused problems if tk_strictMotif was set. 1/6/95 (bug fix) Fixed label/button/checkbutton/radiobutton/menubutton widgets to allow arbitrary screen distances when specifying -width and -height for an image or bitmap (the manual pages already documented this but the code didn't implement it). 1/6/95 (new feature) Added very primitive support for input methods, as suggested by Martin Forssen. This should be enough for European character sets (Compose key) but it isn't near enough for Asian character sets. 1/8/95 (bug fix) Fixed problem in canvas "xview" and "yview" commands where divide-by-zero errors could sometimes occur. 1/8/95 (bug fix) New event handler didn't properly handle files for which both TK_READABLE and TK_WRITABLE were specified. 1/11/95 (bug fix) Fixed bug with text selections: was returning count too high for data, causing bogus garbage to appear when selection was copied. -------------------- Release 4.0b2, 1/12/95 ------------------------- 1/27/95 (feature removal) Removed %D substitution from binding scripts: wasn't portable, shouldn't be used anyway. *** POTENTIAL INCOMPATIBILITY *** 1/27/95 (new features) Added -displayof options to the commands "winfo atom", "winfo atomname", "winfo containing", "winfo interps", and "winfo pathname". 1/27/95 (new feature) Added "idle" option to "after" command to run scripts as idle handlers. 1/28/95 (new feature) Modified placer to make -x and -relx additive if you specify both. Same for -y and -rely, -width and -relwidth, and -height and -relheight. This makes it easy to make request such as "make .a 2 pixels larger than .b". *** POTENTIAL INCOMPATIBILITY *** 1/28/95 (new feature) Improved auto-grab mechanism in canvases (which prevents current item from changing while a button is down): changed to report Enter and Leave events for the current item while a button is down. However, as before, no Enter events are reported for other items until the button goes up. 1/28/95 (new feature) Bitmap images are now transparent if the -background is specified as an empty string (-maskdata and -maskfile are ignored in this case). This is also the default. 1/28/95 (bug fix) Tk didn't support manufacturer- or site-specific keysyms such as SunAudioMute. Modified tkBind.c so that it uses XStringToKeysym in addition to its own hash table, so that all keysyms are now available. 1/30/95 (feature change) Modified "clipboard append" so that it reclaims the clipboard selection if it had been previously lost, rather than just generating an error. This handles certain race conditions more cleanly, and also allows the use of programs like "xclipboard". 1/30/95 (new feature) Added -xscrollincrement and -yscrollincrement options to canvases. 1/31/95 (bug fix) Geometry management was broken if a particular geometry manager claimed a slave away from itself. 1/31/95 (bug fix) Fixed bug in tkVisual.c where a visual with fewer bits than requested was being selected in preference to one with just the right number of bits. 1/31/95 (bug fix) Texts weren't redisplaying the padding region properly after changes in -padx or -pady. 1/31/95 (new features) More text improvements: - Extended "insert" widget command for texts to allow multiple text-tagList pairs in the same command. - Added -nocase option to "search" widget command. - Added -overstrike option to tags. - Added tab stops, via -tabs option for widget and for tags. 2/10/95 (bug fix) Modified all widgets to allow renaming of widget commands. Deleting a widget command will delete the widget. 2/11/95 (new feature) Added -highlightbackground option to all widgets. 2/14/95 (new feature) Added "insert" widget command for menus. 2/15/95 (new feature) Modified text display code (for all widgets) to display well-known control characters like newline and backspace as \n or \b instead of \xa. 2/15/95 (bug fix) Modified bitmap and photo image managers to delete the image command when the image is deleted. Also modified them to allow renaming of the image command, and to delete the image if the image command is deleted. 2/15/95 (bug fix) Fixed text widgets to allow horizontal scrolling even if wrapping was enabled, if a line isn't entirely visible due to a large character or embedded window. 2/16/95 (feature change) Added "postcascade" widget command to menus, changed "invoke" and "activate" not to post or unpost submenus. Also fixed bug in redisplay that tended to leave bits of garbage on menu when submenu unposted. *** POTENTIAL INCOMPATIBILITY *** 2/16/95 (feature removal) Removed "snap back" behavior (slider snaps back to old position if you move the mouse outside the widet before releasing the button) from scrollbars and scales. 2/16/95 (bug fix) The last line of a listbox wasn't being displayed if it was only partially visible. 2/16/95 (new features) Added support for "-resolution 0" (no rounding of values) to scale widgets, plus smarter computation of how many digits to display. 2/17/95 (bug fix) Fixed bug in text bindings for things like Shift-Left: didn't properly set the anchor position. 2/20/95 (bug fix) Changed management of COLORMAP_WINDOWS property to add the toplevel implicitly to the end of the list if it wasn't already on the list somewhere. Without this, some window managers implicitly put it at the front of the list, so that colormaps in internal windows are never used. 2/20/95 (bug fix) Changed to use separate command procedures for button, checkbutton, label, and radiobutton commands. This allows the class commands to be renamed without breaking their behavior. 2/20/95 (removed feature) The "bind" command no longer supports "Keymap" events; they never worked anyway. 2/20/95 (bug fix) The text "search" widget command looped infinitely when searching an empty text. 2/20/95 (bug fix) Canvases weren't redrawing their borders after configuration changes. 2/20/95 (upgrade) Changed to use autoconf version 2.2. 2/21/95 (bug fix) Fixed several bug fixes in menu bindings that occur when menus have no entries. 2/21/95 (bug fix) Fixed bug in geometry management that caused windows packed -in siblings to not always be mapped and unmapped properly (particularly when the toplevel got unmapped and mapped). 2/22/95 (bug fix) Fixed resource leak problem in tkTextDisp.c that caused embedded windows not to be unmapped when off-screen. 2/23/95 (bug fix) "After cancel" dumped core when the script for an after event cancelled itself. 2/24/95 (bug fix) Text and entry widgets weren't properly ignoring Alt-, Control-, and Meta- keystrokes, so a widget-specific binding for one of these resulted in the character also being inserted. 2/24/95 (bug fix) Several widgets accidentally performed unsigned division on negative numbers, thereby losing the sign bit. This mostly affected the display of images and bitmaps in buttons, menubuttons, and messages. 2/24/95 (feature reversal) Restored old behavior of %A so that it returns non-printing characters as well as printing ones now. *** POTENTIAL INCOMPATIBILITY with Tk 4.0b2, but not with Tk 3.6 *** 2/24/95 (bug fix) Duplicate "leave" events could occur for canvas items under some conditions, due to recursive calls to PickCurrentItem. Added code to detect and skip the nested calls. 2/24/95 (bug fix) Fixed bug where an error could occur during the first keystroke in an application if its binding invoked "break". 2/25/95 (new feature) Modified syntax of "search" widget command for texts. The -nowrap switch and the "variable" final argument are no longer supported. Instead, there is a -count switch to replace the final argument; if the final argument is specified, it is now a stopping index for the search. The features of -nowrap can be achieved now with the stopping index. *** POTENTIAL INCOMPATIBILITY with Tk 4.0b2, but not with Tk 3.6 *** 2/27/95 (bug fix) Fixed problem that appears to prevent keyboard input for working under IRIX: tkBind.c was ignoring XmbLookupString calls that returned a status of XLookupBoth. 2/27/95 (new feature) Added Tk_GetItemTypes procedure to return information about available canvas item types. 2/27/95 (feature change) Changed Makefile to always use install-sh for installations: there's just too much variation among "install" system programs, which makes installation flakey. 2/27/95 (bug fix) Fixed bug in tkSend.c that caused core dumps if the app's main window was destroyed by a destroy handler on a child. 3/5/95 (feature change) Change separator character used in "bind +..." bindings from semi-colon to newline (permits bindings that are comments, for what that's worth). 3/7/95 (bug fix/feature change) Overhauled focus code, both in C and in Tcl: - Tk won't move the X focus in response to the "focus" command unless either the application already has the focus or the -force switch is specified. - Tk no longer sets the X focus to anything other than top-levels; it synthesizes events for FocusIn and FocusOut to children. - A window no longer has to be viewable when focussed to; Tk will set the X focus later, when the window becomes viewable. - Added -takefocus option to all widgets. - Rewrote tk_focusPrev and tk_focusNext to use the -takefocus option. These procedures no longer set the focus; they just return the next window in focus order. *** POTENTIAL INCOMPATIBILITY with Tk 4.0b2, but not with Tk 3.6 *** - Eliminated tk_focusContinue. *** POTENTIAL INCOMPATIBILITY with Tk 4.0b2, but not with Tk 3.6 *** 3/8/95 (new feature, bug fix) Added support for tk_strictMotif variable in C: Tk_StrictMotif library procedure. Modified buttons, menubuttons, menus to use it. This fixes the problem with menus not supporting tk_strictMotif properly in Tk4.0b1 and b2. 3/16/95 (feature overhaul) Overhauled color management: - Changed Tk so it never denies a color request because a colormap filled up. Instead, it allocates the closest available color. - Eliminated "color model" mechanism. The "tk colormodel" command is gone, as are the procedures Tk_GetColorModel and Tk_SetColorModel. *** POTENTIAL INCOMPATIBILITY *** - Changed 3D border implementation to allocate colors for shadows lazily, so they're never allocated if they're never used. Also added new feature whereby stippling is used for borders when the colormap has run out of entries. Changed arguments to many of Tk_3D C procedures to take a Tk_Window as argument instead of a (Display *). This is needed to do lazy color allocation. *** POTENTIAL INCOMPATIBILITY *** - Eliminated colormap argument to Tk_GetColor, Tk_GetColorByValue, and Tk_Get3DBorder. *** POTENTIAL INCOMPATIBILITY *** 3/16/95 (feature change) Event bindings created from Tcl will now ignore Enter, Leave, FocusIn, and FocusOut events with detail NotifyInferior. This is done in anticipation of mega-widgets, so that the user of a mega-widget can create Enter/Leave bindings on the mega-widget without seeing spurious events as the mouse moves among the windows in the mega-widget. *** POTENTIAL INCOMPATIBILITY *** 3/17/95 (feature change) Changed C interfaces throughout Tk to use ints instead of unsigneds: the unsigneds turn out to cause subtle problems with arithmetic in some places, and using ints everywhere is just simpler. *** POTENTIAL INCOMPATIBILITY *** 3/23/95 (bug fix) Selections longer than 4000 bytes were being truncated to 4000 bytes. -------------------- Release 4.0b3, 3/24/95 ------------------------- 3/25/95 (bug fix) Changed "install" to "./install" in Makefile so that "make install" will work even when "." isn't in the search path. 3/25/95 (bug fix) Modified Tk's selection mechanism to prevent core dumps in other applications during retrievals of large selections (this is actually a bug in the other apps, but I've patched Tk to keep it from getting triggered). 3/25/95 (bug fix) Fixed bug where X window for "." wasn't being deleted. 3/27/95 (bug fix) Fixed many bugs associated with having more than one application in a single process. 3/28/95 (bug fix) The "search" widget command for texts didn't return the correct index and count if there were embedded widgets on the same line as the returned range but before the end of the range. 3/28/95 (bug fix) Changed pasting via button 2 in text and entries so that it inserts at the pointer location, not the location of the insertion cursor. 3/28/95 (bug fix) Fixed several bugs related to bindings that delete ancestors in the window hierarchy. Also eliminated extraneous calls to XDestroyWindow, which speeds up window deletion by about 3x. 3/28/95 (bug fix) Several widgets (buttons, menubuttons, menus) didn't properly handle image deletions that occurred while the widget was being deleted (caused core dumps). 3/29/95 (bug fix) When retrieving long selections from text widgets, parts of lines were getting duplicated in the selection information. 4/1/95 (bug fix) Fixed bug that caused infinite loop in horizontal scales with 0 range. 4/1/95 (bug fix) Fixed problem with -command option for scrollbars and -takefocus option that caused commands to be evaluated in the wrong context. 4/1/95 (bug fix) Fixed problem with option database that caused it to sometimes use the wrong option (wasn't flushing the database properly after a change in a window's class). 4/1/95 (bug fix) If a line in a text widget just barely fit in the window, Tk was allocating a second screen line just for the newline character. 4/1/95 (new feature) When backspacing in an entry widget, when you reach the left edge of the widget, the insertion cursor gets recentered. 4/1/95 (new features) Added "winfo pointerx" and "winfo pointery" commands to fetch the current pointer position. 4/6/95 (bug fix) If the last line of a text widget was only partially visible, it was counted as visible for purposes of the scrollbar. Now it is treated as if it were off-screen for scrolling purposes. 4/6/95 (new feature) Modified "bell" command to reset screen saver as well. 4/6/95 (feature change) Modified menu scanning (where menus pull down as you drag across their menubuttons) so it only works among menus in the same toplevel; it used to work for any menubuttons in the application. 4/6/95 (bug fix) Canvas text items weren't allowing real numbers in "@x,y" notation for specifying indices. 4/7/95 (bug fix) Menus didn't display correctly when -activeborderwidth was large. 4/7/95 (bug fix) Changed "clipboard append" command to support -- option and to always treat the last argument as data, even if it starts with "-". 4/17/95 (new feature) Added -wrap option to text tags. 4/18/95 (bug fix) Listboxes and texts weren't updating their grid information when -width or -height changed. 4/18/95 (bug fix) "Down" didn't work right in text widgets if the last line was only partially visible in the window. 4/19/95 (bug fix) Listboxes didn't handle partially visible last lines right: couldn't scroll it into full visibility, for example. 4/20/95 (bug fix) If a toplevel was positioned with a command like "wm geometry . -0-0", the window didn't reposition itself to maintain that geometry after a size change. 4/21/95 (feature change) Changed order of binding tags so widget bindings fire before class bindings. New order is: widget, class, toplevel, all. *** POTENTIAL INCOMPATIBILITY with Tk 4.0b3, but not with Tk 3.6 *** 4/23/95 (new feature) Added "winfo colormapfull" command. 4/23/95 (new feature) Buttons and radiobuttons and checkbuttons now treat Return the same as Space, unless tk_strictMotif is set. 4/23/95 (bug fix) Modified menu tear-off procedure to duplicate the binding tags and bindings of the original in the copy. 4/25/95 (bug fix and feature change) Modified mechanism for choosing "best" visual to fix a bug where depth wasn't really getting highest priority in all situations. 4/28/95 (bug fix) Failed text searches starting at "end" could result in an infinite loop in Tk. 4/30/95 (new feature) Added "wm resizable" command to enable and disable interactive resizing. 4/30/95 (new feature) Added "window names" widget command to texts: returns a list of all embedded windows. 5/2/95 (feature change) Changed text searches so that forward searches start at the given index, rather than the character just after the given index. *** POTENTIAL INCOMPATIBILITY with Tk 4.0b3, but not with Tk 3.6 *** 5/4/95 (bug fix) Default bit gravity for windows was wrong (it was ForgetGravity) causing unnecessary flashing when windows were resized. 5/4/95 (feature change) Modified Tk_DoOneEvent so that it doesn't sleep if there's nothing that will wake it up again (e.g. no file or timer handlers). Returns 0 immediately. 5/5/95 (configuration change) Changed to use BSDgettimeofday instead of gettimeofday on systems like IRIX where BSDgettimeofday is available. This avoids compilation problems due to the different interface to gettimeofday provided by IRIX. 5/5/95 (feature change) Changed binding mechanism so that all bindings are created immediately at initialization time, rather than waiting until the first FocusIn or Enter event for a class. 5/6/95 (feature change) Changed default text for labels, buttons, checkbuttons, radiobuttons, menubuttons, and messages from " " to "". 5/6/95 (bug fix) If the application was destroyed in the middle of an "update" command, Tk would dump core. 5/6/95 (bug fix) Changed manual entries to use the standard .TH macro instead of a custom .HS macro; the .HS macro confuses index generators like makewhatis. 5/6/95 (bug fix) Change "wm iconwindow" command to disable button presses for the icon window. This is needed so that the window manager can get those events (X only allows button presses to go to one client for a given window). 5/9/95 (new feature) When specifying visuals, can now use "best" with a depth, e.g. "-visual {best 8}" to get the best 8-bit visual. 5/18/95 (bug fix) Fixed bug with -spacing* options for text widget: screen distances weren't allowed, only integers. 5/20/95 (bug fix) Eliminated memory leaks in tkTextDisp.c and elsewhere. 5/22/95 (color change) Changed the Tk color palette to a gray scheme. Also added a library procedure tk_setPalette that makes it easy to change colors on the fly, and a procedure tk_bisque that restores the previous light brown scheme. 5/28/95 (bug fix) Modified canvases so that the -width and -height options refer to the space inside the borders, not the total widget space. Also changed "xview" and "yview" commands and scroll-increment rounding to use the pixel just inside the borders, rather than (0,0). 5/28/95 (bug fix) Several widgets (e.g. entries, buttons, and menus) didn't properly handle unsets of variables they were tracing, if the variables were reference through upvars in procedures. 6/4/95 (bug fix) The placer wasn't rounding window widths right when both -relx and -relwidth were specified (or -rely and -relheight) so that rounding errors accumulated. 6/4/95 (feature improvement) Change parsing of text indices to handle weird mark and tag names better (e.g. any string ending with ".first" will now be parsed as a tag name, even if it contains embedded spaces, etc.). 6/4/95 (feature change) If a font defines glyphs for control characters, they are now displayed, instead of translating the character to a backslash sequence (however, tabs and newlines are still treated specially; glyphs are not displayed for these characters). 6/4/95 (bug fix) Modify the implementation of "raise" and "lower" for toplevels so that it now works under olwm and olvwm. It didn't use to work, and the problem is really in the window manager, but Tk now patches around it. However, only "total" raises and lowers work: raising and lowering relative to a sibling still don't work under olvwm and olwm. 6/4/95 (feature change) Modified tab code in texts so that a tab always occupies at least as much space as a space character. 6/4/95 (bug fix) The "%t" substitution wasn't being made properly in Enter and Leave event bindings. 6/7/95 (new feature) Added support for GIF images. Unfortunately it's a bit fragile: certain kinds of badly formed images can cause core dumps; I don't know enough about the GIF reader (taken from giftoppm) to figure this out. 6/7/95 (bug fix and feature change) Fixed PPM image reader to be more flexible about header formats, and added support for PGM images. 6/7/95 (feature change) Added -outlinestipple option to canvas arc items, changed "-style arc" to use -outline as the color instead of -fill (the old approach was pretty quirky). *** POTENTIAL INCOMPATIBILITY *** 6/8/95 (feature change) Modified interface to Tk_Main to pass in the address of the application-specific initialization procedure. Tcl_AppInit is no longer hardwired into Tk_Main. This is needed in order to make Tcl a shared library. 6/8/95 (feature change) Modified Makefile so that the installed versions of wish and libtk.a have version number in them (e.g. wish4.0 and libtk4.0.a) and the library directory name also has an embedded version number (e.g., /usr/local/lib/tk4.0). This should make it easier for Tk 4.0 to coexist with earlier versions. 6/9/95 (new feature) Added -outline and -width options to canvas polygon items. 6/9/95 (feature changed) Renamed -decimate in photo widget to -subsample (decimate wasn't technically correct). *** POTENTIAL INCOMPATIBILITY with Tk 4.0b3, but not with Tk 3.6 *** -------------------- Release 4.0b4, 6/16/95 ------------------------- 6/19/95 (bug fix) Colors weren't being rounded correctly in canvas Postscript generation: caused "white" to appear slightly gray when the display of the canvas used only 8 bits per color. 6/20/95 (bug fix) "bbox" widget command for texts didn't return proper width for tabs. 6/20/95 (bug fix) Scrollbars didn't always work right for texts: couldn't scroll all the way to the bottom of the text in a single drag of the slider. 6/20/95 (new feature) Added "delta" widget command for scrollbars (needed for above bug fix). 6/23/95 (bug fix) Listboxes weren't properly redisplaying their borders when the were configured to a smaller size. 6/23/95 (new feature) Added "winfo server" command. 6/23/95 (bug fix) If a menu was posted, couldn't switch to another menu with an Alt- key. 6/24/95 (new feature) Added "winfo pointerxy" command. 6/25/95 (bug fix) Tk_ParseArgv referenced beyond the end of 0-length option names. 6/25/95 (bug fix) Fixed problem in tkOption.c where "cachedWindow" could get garbage in it if the main window's class was changed by calling Tk_SetClass. 6/25/95 (bug fix) Fixed two bugs in menus, one where errors in variable traces weren't propagated correctly and one where "invoke" was invoked at the wrong stack level, with the result that variable traces didn't have access to the right variables. 6/27/95 (bug fix) tk3d.c wasn't using all the right information when deciding whether or not to stipple borders, so it stippled borders even on 16-bit true-color displays. 6/28/95 (bug fix) Page up and down operations in texts could cause insertion cursor to drift to the right. Changed tkTextScrollPages to use upper-left corner of current character, rather than center of character. 6/28/95 (bug fix) Changed text widget so that you can't put the insertion cursor after the last newline in the text. 6/28/95 (bug fix) Bitmap images didn't allow ~'s in file names. 6/28/95 (bug fix) Fixed problem that could cause core dumps in the text widget when dealing with embedded windows (there were problems if the act of redisplaying caused the window layout to change, which can happen with embedded windows). 6/28/95 (bug fix) Texts didn't handle indices with double negatives, such as ".t mark set insert {insert + -20 chars}". 6/28/95 (bug fix) Fixed problem where focus didn't always revert to its prior window after a dialog box was dismissed. 6/28/95 (bug fix) Fixed problem with "search" widget command returning incorrect length on some backwards regexp searches. 6/28/95 (bug fix) Successive "wm iconbitmap . {}" commands could cause a core dump. 6/29/95 (new feature) Added -elementborderwidth option for scrollbars so the -borderwidth can be set to 0 without flattening the arrows and slider. -------------------- Release 4.0, 7/1/95 ------------------------- 7/18/95 (bug fix) %t in event bindings didn't work properly for some events (e.g. PropertyNotify). 7/18/95 (bug fix) Changed "exec wish" lines in demo scripts to "exec wish4.0" to avoid version conflicts. 7/18/95 (bug fix) Fixed round-off errors in scrolling for texts, canvases, listboxes, and entries. The error could cause the view to shift up in a command like "$w yview moveto [lindex [$w yview] 0]". 7/19/95 (bug fix) Canvases weren't always redrawing borders correctly when they became unobscured. There were also some problems with improper refresh after size changes. 7/19/95 (bug fix) Fixed bug in text index processing that causes tests textIndex-11.1 and textIndex12.1 to fail on some platforms. 7/19/95 (bug fix) Fixed bug where 2-second delays were ocurring during "raise" and "lower" commands for toplevel windows under some window managers (such as fvwm). 7/20/95 (bug fix) Text searches were misbehaving when there were embedded windows on the starting line of the search. The most common symptom is that Tk would fail to find a match at the starting position for the search. 7/22/95 (bug fix) Fixed core dump that could occur in menus if a checkbutton entry's -variable option referred to an array (or couldn't be read by the menu C code for some other reason). 7/22/95 (bug fix) Text widgets didn't update their scrollbars when changes were made to information that was off-screen. 7/25/95 (bug fix) Fixed core-dump in tkListbox.c that used to happen in the command ".l bbox end" if the listbox was empty. 7/25/95 (bug fix) Page-up and page-down bindings for listboxes didn't move active element to remain on the screen. 7/25/95 (bug fix) Patched around H-P compiler problem that results in core-dumps in tkImgPhoto.c during image handling. 7/25/95 (bug fix) Fixed bug in tkImgPhoto.c that caused core dumps (during Tk self-tests and other image uses) on AIX and other machines where "schar" in tkImgPhoto.c was being defined as "short" instead of "char". 7/26/95 (bug fix) The PPM image reader couldn't handle maximum intensity values other than 255. 7/26/95 (bug fix) Canvases didn't redraw their borders when the relief changed from raised to flat. 7/27/95 (bug fix) Canvases didn't set the scrolling values correctly when no scroll region was specified. 7/28/95 (bug fix) Modified menu and tk_dialog scripts to restore any old grab that might have been in effect before a menu or dialog was posted. ----------------- Released patch 4.0p1, 7/29/95 ---------------------- 8/4/95 (bug fix) Calls to toupper and tolower weren't using the UCHAR macro, so they didn't always work in non-U.S. locales. (JO) 8/14/95 (new feature) Added -tearoffcommand option for menus. 8/16/95 (bug fix) Canvases didn't generate proper Enter and Leave events if the Leave handler for an item reconfigured the canvas in a way that made the old current item the new current item again. (JO) 8/21/95 (bug fix/feature change) When -takefocus was a script, Tk was allowing window viewability to override it. Changed so that viewability is now ignored when -takefocus is a script. (JO) 8/21/95 (bug fixes) Fixed memory leaks in tkSend.c, tkSelect.c, and tkUnixWm.c (JO). 8/21/95 (bug fix) Text widgets didn't handle commands like ".t search -backwards foo end 1.0" properly: never found foo. (JO) 8/23/95 (new feature) Added Makefile and configure.in support for dynamic loading. (JO) 8/25/95 (bug fix) The "frame" and "toplevel" commands couldn't safely be renamed, due to a kludgy way that they shared a single command procedure. Split into separate procedures. (JO) 8/25/95 (bug fix) Fixed bug in libary/menu.tcl that caused "grab window not visible" errors for popup menus (and perhaps elsewhere?). (JO) 8/25/95 (bug fix / new feature) The "gray25" bitmap was really only 12.5% on, not 25%. Added new "gray12" bitmap that is the same as the old "gray25". "Gray25" is still supported for compatibility, but its use is deprecated. (JO) 8/25/95 (bug fix) Scrollbar bindings didn't properly handle case where B2 is clicked while B1 is already down. (JO) 8/26/95 (bug fix) Menus were ignoring -activebackground if tk_strictMotif was set, but not -activeforeground. Changed to ignore both. (JO) 8/26/95 (bug fix) Scales and scrollbars didn't properly handle a -repeatdelay value of 0 (they shouldn't auto-repeat in this case). (JO) 8/28/95 (bug fix) Tcl errors were occurring for tkPriv(oldGrab) when clicking on a disabled option menu. (JO) 8/28/95 (bug fix) Changed event-handling code to use FD_SETSIZE instead of OPEN_MAX, since OPEN_MAX is incorrect on some systems (e.g., IRIX). (JO) 8/28/95 (bug fix) Fixed bug in photo images that caused garbling of image data in the "put" and "copy" commands if the source data had only one scan line but had a width less than the width of the target image. (JO) 8/29/95 (bug fix) Tk used to refuse to post menus if they had no entries. This made it impossible for a menu to fill itself the first time it is posted. Changed to allow menus with no entries to be posted. (JO) 8/30/95 (bug fix) If there was extra space at the bottom of a menu, it wasn't being redisplayed properly. 8/30/95 (new feature) Added -transient option to menus. 8/30/95 (new features) Added proper button 2 support to both scrollbars and scales (it sets the slider position from the mouse position). (JO) 8/30/95 (bug fix) Fixed potential core dump that could occur in photo images (ReadPPMFileHeader could overflow buffer under some bad inputs, such as certain GIF images). (JO) 8/30/95 (bug fix) Errors of the form `syntax error in expression "!"' could occasionally happen in tkScaleDrag. (JO) 8/31/95 (new feature) Changed man page installation (with "mkLinks" script) to create additional links for manual pages corresponding to each of the procedure and command names described in the pages. (JO) 9/1/95 (new feature) Added "after info" command. Also added checks so that one interpreter can't cancel another's "after" events. (JO) 9/8/95 (bug fix) Fixed bug that could cause memory corruption and core dumps if a "fileevent" handler was deleted while the handler was active. (JO) 9/11/95 Reorganized Tk sources for Windows and Mac ports. All sources are now in subdirectories: "generic" contains sources that work on all platforms, "windows", "mac", and "unix" directories contain platform- specific sources. (SS) 9/11/95 (new feature) Added new "notifier" mechanism to allow multiple implementations of the mechanisms for finding out about events. This change was necessary to support Mac and PC platforms, but it may also allow other goodies such as combining Xt and Tk widgets in a single application. See the new manual entry Notifier.3 for details. (SS) 9/11/95 (feature change) Changed interface to Tk_RestrictProc so that (a) it takes a clientData argument instead of display and arg, and (b) it returns a value that can ask for the event to be discarded as well as deferred or processed. (SS) *** POTENTIAL INCOMPATIBILITY *** 9/11/95 (new feature) Added TK_WINDOW_EVENTS #define, which is equivalent to TK_X_EVENTS but is now preferred, since it applies to all platforms. (SS) 9/11/95 (feature change) Can't export variables anymore because this doesn't work under Windows DLLs. Eliminated tk_NumMainWindows variable and replaced with procedure Tk_GetNumMainWindows. (SS) *** POTENTIAL INCOMPATIBILITY *** 9/11/95 (new feature) Added procedure Tk_PreserveColormap to increment the reference count on colormaps. Used in photo widgets. (SS) ----------------- Released patch 4.0p2, 9/15/95 ---------------------- ----------------- Released 4.1a1, 9/15/95 ---------------------- 9/22/95 (renamed files) Changed the names of the bitmap images in the $tk_library/demos/images directory to use the .bmap file extension. (RJ) 9/22/95 (bug fix) Fixed bug where text widgets could occasionally display the insertion cursor both at the end of one line and the beginning of the next. (JO) 9/25/95 (bug fix) Fixed bug that could cause core dumps when an application uses multiple screens and a binding destroys the main window (bind code was using MainInfo structure after it had been freed). (JO) 9/25/95 (bug fix) Text widgets sometimes scrolled backwards on occasion if you dragged down past the bottom of the scrollbar. (JO) 9/25/95 (bug fix) Fixed bug in menus where a cascaded submenu posted from a torn-off menu could be left posted if mouse was pulled off the end of the cascade and released. (JO) 9/25/95 (new feature) Added "--" switch to wish, so that you can pass arguments like -n through to a script without having wish interpret them. (JO) 9/25/95 (bug fix) Fixed core dump that could occur for radiobuttons and selectbuttons if -selectcolor was an empty string. (JO) 9/26/95 (bug fix) Entries didn't used to notice if a trace procedure on the -textvariable overrode a new value set by the entry. This could cause the variable to get out of sync with the contents of the entry. (JO) 9/26/95 (new feature) Added -sliderrelief option to scales, changed default bindings to change the slider's relief to sunken while it's being dragged with the mouse. (JO) 9/26/95 (bug fix) TkColor.c wasn't computing colormap size correctly; could result in X Protocol error for QueryColors when colormaps run out of colors. (JO) 9/26/95 (bug fix) Wish couldn't handle script files with spaces in their names. (JO) 9/27/95 (cosmetic clean-up) Removed extraneous spaces to make error messages consistent: ": should be" is now ": should be". (JO) 9/27/95 (feature change) Modified tk_dialog so that it uses the option database for the -wraplength option on the message. This allows the option to be overridden by the caller. (JO) 9/28/95 (bug fix) Wish incorrectly parsed the command line under Windows, causing backslashes to be substituted. (SS) 9/28/95 (bug fix) Wish now sources wishrc.tcl instead of .wishrc. (SS) 9/28/95 (bug fix) Tk_DoOneEvent returned 0 under some circumstances when it was possible to find more work to do. For example, if a signal interrupted select(), but no event handlers were triggered, it would return 0 even though it could still detect events by reentering select(). (SS) 9/29/95 (bug fix) "winfo interps" caused a crash under Windows. (SS) 10/1/95 (feature change) Eliminated Tk_NotifyIdle interface in favor of Tk_IdlePending. (SS) 10/1/95 (bug fix) Turned motion event collapsing into an idle handler so it will be easier to move the event loop into Tcl. (SS) 10/1/95 (bug fix) Fixed several problems with negative coordinates in canvases. One example: dragging a canvas rectangle with a wide border and fractional coordinates could leave junk on the screen if the rectangle was in negative coordinate space. (JO) 10/2/95 (bug fix) Tk was improperly handling Enter/Leave events during a button grab. (SS) 10/2/95 (new feature) Added support for the Macintosh do script ('dosc') event. Available only on the Macintosh. (RJ) 10/4/95 (new feature) Added support for compiling with VC++. Resulting binaries work under Win32s through NT. ----------------- Released 4.1a2, 10/6/95 ---------------------- 10/10/95 (new feature) Macintosh Tk now supports the complete set of X cursors that Unix Tk supports. (RJ) 10/11/95 (bug fix) Tk now supports all of the X11 cursors under Windows. (SS) 10/11/95 (bug fix) The "wm resizable" command was missing from the Windows version of Tk. (SS) 10/12/95 (bug fix) Macintosh Tk had problems with clipping toplevel windows that children of any frame other than another toplevel. (RJ) 10/13/95 (bug fix) Eliminated dependency on MKS toolkit for generating the tk.def file from Borland object files. (SS) 10/16/95 (bug fix) Fixed clipping and update problems relating to the raising and lowering of overlapping windows on Mac. (RJ) 10/30/95 (bug fix) When focus-follows-mode (invoked via tk_focusFollowsMouse), was focussing on windows even in situations where keyboard traversal would skip the window. Changed to use the tkFocusOK procedure so that the criteria for focussing are the same in both modes. (JO) 11/2/95 (bug fix) Changed listbox bindings to ignore double-clicks. This avoids errors that used to occur if a user defined a binding for double-click that deleted the listbox. (JO) 11/3/95 (feature change) Moved most of the Tk event loop to Tcl. Many Tk_ names have become Tcl names now: TK_READABLE => TCL_READABLE TK_WRITABLE => TCL_WRITABLE TK_EXCEPTION => TCL_EXCEPTION TK_DONT_WAIT => TCL_DONT_WAIT TK_WINDOW_EVENTS => TCL_WINDOW_EVENTS TK_FILE_EVENTS => TCL_FILE_EVENTS TK_TIMER_EVENTS => TCL_TIMER_EVENTS TK_IDLE_EVENTS => TCL_IDLE_EVENTS TK_ALL_EVENTS => TCL_ALL_EVENTS Tk_IdleProc => Tcl_IdleProc Tk_FileProc => Tcl_FileProc Tk_TimerProc => Tcl_TimerProc Tk_TimerToken => Tcl_TimerToken Tk_BackgroundError => Tcl_BackgroundError Tk_CancelIdleCall => Tcl_CancelIdleCall Tk_CreateFileHandler => Tcl_CreateFileHandler Tk_CreateTimerHandler =>Tcl_CreateTimerHandler Tk_DeleteFileHandler => Tcl_DeleteFileHandler Tk_DeleteTimerHandler =>Tk_DeleteTimerHandler Tk_DoOneEvent => Tcl_DoOneEvent Tk_DoWhenIdle => Tcl_DoWhenIdle Tk_Sleep => Tcl_Sleep tkerror => bgerror Other than the name changes, the functions are the same. In addition, there are #defines in tk.h so that the old Tk names will still work. tkerror and bgerror are specially hacked as synonyms, so it should be safe to use either one. You should switch to the new Tcl names ASAP, though, since the old Tk names will eventually be desupported. (JO) 11/7/95 (features removed) As part of moving the event loop to Tcl, the following procedures were deleted: - Tk_EventInit (the presence of the event loop in Tcl should make this unneccessary). - Tk_CreatFileHandler2 (you can get the same effect by using event sources in Tcl, but you have to modify your code to use the new Tcl APIs). - All of the stuff in the manual entries Notifer.3 and QueueEvent.3; this has changed because the notifier got reworked when it was moved to Tcl. *** POTENTIAL INCOMPATIBILITY *** 11/7/95 (feature change) Changed to use exit handler to cleanup windows in Tk, so Tk no longer needs to have a private copy of the "exit" command. (JO) 11/7/95 (bug fix) If wish was invoked with a command-line geometry and a script file (e.g. "wish foo.tcl -geometry 30x20"), and if one of the windows created by the script used the -setgrid option, then the width and height from the command line were lost. (JO) 11/8/95 (bug fix) The "see" command didn't work quite right for texts: if the window was small and you try to "see" a line just offscreen, Tk centered the line (actually, mis-centered it) when it should have aligned it at the top or bottom. (JO) 11/9/95 (bug fix) The "send" command crashed if you tried to send to a different display with "-displayof". (JO) 11/9/95 (bug fix) The Symbol font didn't print right in Postscript output, because of changes made to re-encode fonts to get proper ISO Latin1 behavior. Changed the code not to re-encode the Symbol font. (JO) 11/13/95 (bug fix) Fixed Makefile.in and configure.in for UNIX so that configure can be run from a clean directory separate from the Tcl source tree, and compilations can be performed there. (JO) 11/17/95 (bug fix) If a window was gridded, Tk still computed the default maximum dimensions in pixel units, which resulted in windows that could grow much larger than the screen. (JO) 11/17/95 (bug fix) If a menus entries were all disabled, posting the menu and typing Up or Down caused an infinite loop, locking up the screen (JO). 11/19/95 (bug fix) The focus wasn't being restored properly after a menu selection in a cascaded menu. (JO) 11/19/95 (bug fix) Menubutton's didn't stipple display their images differently when disabled. Change to have the same behavior as buttons: the image is stippled over in the background color when the menubutton is disabled. (JO) 11/21/95 (bug fix) Changes in display attributes such as font could cause core dumps in the text widget under some circumstances involving line wrapping. (JO) 11/22/95 (bug fix/new feature) Changed both the placer and the packer to ensure that slaves are unmapped whenever the master is unmapped. This saves time that slaves might otherwise spend trying to redisplay themselves when they're unmapped. (JO) 11/22/95 (bug fix) Space and return keys didn't work for menus if they were posted via Alt-x keystrokes. (JO) 11/24/95 (bug fix) tk_dialog procedure had binding for that always activated default binding, even if input focus was in some other binding. Removed this feature, since existing focus support will already "do the right thing". (JO) 11/24/95 (bug fix) Both canvases and texts could dump core if a binding (such as ButtonRelease on an internal item) deleted the widget. (JO) 11/24/95 (feature change) Replaced "configInfo" file with tkConfig.sh, which is more complete and uses slightly different names. Also arranged for tkConfig.sh to be installed in the platform-specific library directory. (JO) 11/24/95 (bug fix) It was possible for a slave to be placed or packed -in itself, with unpleasant consequences. It is now an error for the slave to be its own master for geometry management. (JO) 11/25/95 (bug fix) The -command option of scales was sometimes being invoked spuriously (e.g. when the mouse moved in the scale without a button down). This was because the scale wasn't rounding properly when setting the scale value from its associated variable. (JO) ----------------- Released patch 4.0p3, 11/28/95 ---------------------- 12/18/95 (feature change) Moved Tk_Preserve, Tk_Release, and Tk_EventuallyFree to Tcl, renamed to Tcl_Preserve etc. Added #defines to tk.h so that the old names still work. (JO) 12/23/95 (bug fix) If a single process had > 1 Tk application, Tk didn't guarantee that the application names were unique, which could cause all sorts of confusion with "send". (JO) 12/23/95 (feature change) Eliminated Tk_CreateMainWindow and moved all of its functionality to Tk_Init. All that you need to do now to get Tk in an application is to call Tk_Init. Improved Tk_Init so that -colormap and -visual command-line arguments are now passed through to TkCreateFrame. Tk_Main is much simpler now, since a lot of its functionality has moved to Tk_Init. (JO) *** POTENTIAL INCOMPATIBILITY *** 12/23/95 (new feature) Added support for Tcl_StaticPackage so that Tk can now be loaded into slave interpreters with the "load" command to create new applications. (JO) 12/23/95 (new features) Added support for -colormap and -visual command- line options for wish. (JO) 1/4/95 (bug fix) Fixed keyboard code to properly handle alt-key sequences for international keyboards and menu-accelerators. (SS) 1/5/96 (bug fix) Scrollbar code sometimes generated errors on accesses to tkPriv(relief) during control-clicks. (JO) 1/9/96 (new feature) added the "grid" command to provide a table based geometry manager. (SU) 1/12/96 (performance optimization) Changed the way tag information is kept in the text's Btree so the cost of adding and removing tag ranges is no longer proportional to the number of unique tags in the text. In the old system the cost of adding N unique tags was O(N-squared). The new implementation is optimized for tags that only cover a small amount of text, measuring from their earliest tag range to the end of their last range. In the best case the cost of adding a tag range is unrelated to the number of unique tags, so the cost of adding N tags is only O(N). In the worst case, where all tags cover all the text, the cost is still O(N-squared) to add N such tags. Deleting tags still has an O(N) cost (so deleting N tags is O(N-squared), but it is now a factor of 2 faster than the old system. (BW) 1/12/96 (new feature) added the text "dump" operation that returns information about all elements in a text widget: text, tags, marks, and windows. (BW) 1/12/96 (new feature) added the text "mark next" and "mark previous" operations to search forward and backwards for the next (previous) mark in the text. (BW) 1/12/96 (new feature) added the text "tag prevrange" operation to search backwards for the current or previous range of a tag. (BW) 1/16/96 (new feature) Added support for relative widget placement on the "grid" command. (SU) 1/17/96 (new feature) Modified the Makefile/configure setup to support compiling Tk as a shared library. Use the --enable-shared option to the "configure" script. (JO) ----------------- Released 4.1b1, 1/26/96 ----------------------- 2/2/96 (bug fix) Frames were getting a default size of 200x200, whereas there should be no default. (JO) 2/2/96 (bug fix) Argc wasn't getting reset properly after Tk removed the arguments it understood from those on the command line. (JO) 2/6/96 (bug fix) Fixed off by one error in argument parsing code under Windows. (SS) 2/6/96 (bug fix) "wm transient" now works under Windows. The resulting toplevel is created with a modal dialog box frame and will not appear in the taskbar under Windows '95. (SS) 2/9/96 (bug fix) Changed Makefile.in to use -L and -l for Tcl and Tk libraries so that shared libraries are more likely to be found correctly on more platforms. (JO) 2/14/96 (feature change) Eliminated tk_CanvasTagsOption variable because it can't be exported safely across DLL boundaries. Instead, exported Tk_CanvasTagsParseProc and Tk_CanvasTagsPrintProc procedures for use by canvas type managers in creating their own custom options. (JO) *** POTENTIAL INCOMPATIBILITY *** 2/14/96 (bug fix) "winfo pointerxy" when applied to a non-toplevel window crashed wish. (SS) 2/14/96 (bug fix) "tkwait visibility" would hang under Windows. (SS) 2/14/96 (bug fix) Cursors were not being updated until an enter event. In cases where the cursor left the toplevel and reentered before Tk noticed, the cursor would get "stuck" until the next enter event. Similarly, if the cursor attribute of a window was updated while the mouse was in the window, the cursor would not change until the next time the mouse entered the window. (SS) 2/15/96 (bug fix) If a top-level was resizable in one direction (e.g. "wm resizable . 0 1"), once the user resized it any changes in the internally requested size (by the widgets) were ignored, even for the non-resizable dimension. Fixed to handle the two dimensions totally independently, so the widget's requests are honored as long as that dimension hasn't been set by the user. (JO) 2/17/96 (bug fix) If a text widget had very long lines (e.g. more than 32K pixels), integer overflow could occur, resulting in parts of the line not being visible. (JO) 2/20/96 (feature change) Changed the -minsize option of grid to take screen units instead of pixels. (SU) 2/20/96 (bug fix) grid row and column weights are compared against MINWEIGHT (0.001) instead of 0.0 to guard against divide by zero errors during weight normalization. (SU) 2/20/96 (bug fix) Menu commands were not being invoked sometimes. There was a race condition that caused events to be processed while a menu was being unposted. (SS) ----------------- Released 4.1b2, 2/23/96 ----------------------- 2/23/96 (bug fix) Alt-keys invoked in torn-off and popped up menus caused menus to be posted in the parent toplevel. (JO) 2/23/96 (bug fix) Canvases weren't always updating their scrollbars when they should. (JO) 2/23/96 (bug fix) Fixed core dump that could occur if a WM_DELETE_PROTOCOL handler generated an error. (JO) 2/24/96 (bug fix) Removed dependencies on Makefile in the UNIX Makefile: this caused problems on some platforms (like Linux?). (JO) 2/24/96 (feature change) Changed text and entry widgets so that they set the insertion cursor before inserting during a button-2 click. Also made optional bindings check for tk_strictMotif at the time of the event, rather than at the time the bindings are created. (JO) 2/24/96 (bug fix) Tk tended to crash with an X error when unsetting an icon window (e.g. "wm iconwindow . {}"). (JO) 2/25/96 (bug fix) Wasn't removing windows from the WM_COLORMAP_WINDOWS property when they were deleted. (JO) 3/1/96 (new feature) Added new "bbox" widget command for entries. Also modified mouse bindings for entries and texts so that the mouse position rounds to the nearest inter-character gap, rather than the left edge of the character under the mouse. This provides more natural selection behavior. (JO) 3/1/96 (bug fix) Fixed core dump that could occur in image code if an image was deleted while in use in a widet, then re-used in another widget while "deleted". (JO) 3/1/96 (bug fix) Calling wish with a single argument caused a crash under Windows due to an off-by-one error in the argument parsing code. (SS) 3/1/96 (bug fix) Palette management was broken and resulted in incorrect palette realization and refresh behavior. Also, images were being drawn incorrectly if they were attached to widgets that had a private colormap. (SS) 3/2/96 (bug fix) It was possible to press the mouse button over an option menu, drag to a pulldown menu, and have the pulldown menu popup in place of the option menu. Fixed this so that option menus are isolated from each other and from pulldowns. (JO) 3/2/96 (bug fix) Fixed yet another bug that caused long delays when raising toplevel windows. (JO) 3/2/96 (bug fix) Fixed bug in canvases where zero-sized rectangles and ovals didn't always redisplay right (could leave trailing garbage on screen when moved). (JO) 3/2/96 (bug fix) Entry widgets reset their insertion cursor, selection, and view whenever the text variable changed, plus whenever a "configure" widget command was invoked and there was a text variable for the widget. Fixed to preserve this information as much as possible. (JO) 3/5/96 (new feature) Added version suffix to shared library names so that Tk will compile under NetBSD and FreeBSD (I hope). (JO) 3/6/96 (bug fix) Changed the way certain configure & motion events are reported. This fixes several bugs in menus & "winfo rootx". (RJ) 3/7/96 (bug fix) Fixed tag remove bug that showed up when draging out a selection. If you had dragged left, then tried to drag back right, the left edge of the selection wasn't being updated because the tag remove wasn't doing anything. (BW) 3/7/96 (bug fix) Fixed the boundary conditions of tag prevrange. The second index argument wasn't effecting in stopping the search if it fell within a range. The second index has to come at or before the start of a range for the range to be found by tag prevrange. (BW) 3/7/96 (bug fix) "puts" to stdout or stderr when running from a script caused wish41.exe to exit silently. Now the output is silently discarded without generating an error. (SS) 3/7/96 (bug fix) Fixed bug where wish was treating empty lines in the input as end of input, if the input came from stdin. This would cause it to complain about missing closing braces etc. (JL) ----------------- Released 4.1b3, 3/8/96 ----------------------- 3/9/96 (bug fix) Fixed bug in text.tcl that could cause errors in text widgets of the form 'can't use non-numeric string as operand of "-"'. (JO) 3/12/96 (feature improvement) Modified startup script to look in several different places for the Tcl library directory. This should allow tk to find the libraries under all but the weirdest conditions, even without the TK_LIBRARY environment variable being set. (JO) 3/14/96 (bug fix) "wish bogus_file_name" didn't print an error message. (JO) 3/14/96 (bug fix) Button-2 wasn't claiming the focus during paste operations. (JO) 3/14/96 (bug fix) "tkwait visibility" use to hang forever if its window was deleted. Now it detects this condition and returns an error. (JO) 3/16/96 (bug fix) Changed configuration stuff to get dynamic loading and shared libraries working under AIX. (JO) 3/16/96 (bug fix) Fixed core dumps that could occur when a slave interpreter was deleted in the middle of executin bindings. (JO) 3/18/96 (new feature) Added support for Activate/Deactivate events. Currently, these new X events will generated only on the Macintosh. (RJ/CS) 3/21/96 (bug fix) The "tag prevrange" command would fail to return the current range if it began at 1.0 and the starting point of the search was within the range. (BW) 3/21/96 (configuration improvement) Changed configure script so it doesn't use version numbers (as in -ltk4.1 and libtk4.1.so) under SunOS 4.1, where they don't work anyway. (JO) 3/22/96 (bug fix) Made Tk more robust against interpreter deletion. Now it should be safe to delete an interpreter with a Tk application inside it, without first deleting the Tk application. (JL) 3/26/96 (bug fix) Tk now returns results from a "send" to an interpreter in which the Tk application is destroyed, if the interpreter continues computing after the Tk application is destroyed. Previously any results computed after '.' was destroyed in the target interpreter were discarded by the "send". (JL) 3/26/96 (new feature) Tk now provides a static Tktest package which is present only in test versions of Tk; this allows the testing commands to be loaded into new interpreters besides the main one. (JL) 3/28/96 (bug fix) Changed the tk_dialog procedure *not* to make the dialog a transient for its parent. The old behavior meant that the dialog did not get posted if the parent was iconified. (JO) 4/5/96 (bug fix) Tk would occasionally crash when destroying toplevels under Windows. (SS) 4/5/96 (bug fix) Fonts were not being properly deallocated, causing GDI resources to be consumed and never released under Windows. (SS) 4/11/96 (bug fix) Toplevel windows with no specified geometry were always appearing in the upper left corner of the screen under Windows. (SS) 4/11/96 (bug fix) "wm minsize" did not properly report the minimum size imposed by the Windows window manager. (SS) 4/13/96 (bug fix) Text widgets could dump core in some cases where text was inserted on the top visible line. (JO) 4/16/96 (bug fix) Changed menu code to ignore errors that occur when restoring a grab: the old grab window might not be visible anymore. (JO) ----------------- Released 4.1, 4/21/96 ----------------------- 5/1/96 (bug fix) "option readfile" did not handle files with CRLF line termination. (SS) 5/1/96 (bug fix) Changed to install tkConfig.sh under "make install-binaries", not "make install-libraries". (JO) 5/7/96 (bug fix) Moved initScript in tkUnixInit.c to writable memory to avoid potential core dumps. (JO) 5/7/96 (bug fix) Changed tk_dialog back so that the dialog box is a transient window again. This is needed to make sure that the dialog box doesn't get obscured. Also changed it to return -1 if the dialog window is deleted before the user presses a button. (JO) 5/16/96 (bug fix) Fixed bug that caused core-dumps if a text widget with -setgrid 1 was deleted by removing its command. (JO) 5/16/96 (bug fix) Fixed bug that caused Tk initialization to use improperly initialized variables left over from previous invocation of Tk_Init on another interpreter. (JL) 5/16/96 (new feature) Implemented application embedding on Windows platforms (only Tk inside another application, not the other way yet). (JL) 5/16/96 (new feature) Added C API Tk_SafeInit that adds Tk to a safe interpreter. (JL) 5/16/96 (bug fix) Fixed bug that caused Tk initialization to use improperly initialized variables left over from previous invocation of Tk_Init on another interpreter. (JL) 5/16/96 (new feature) Implemented application embedding on Windows platforms (only Tk inside another application, not the other way yet). (JL) 5/16/96 (new feature) Added C API Tk_SafeInit that adds Tk to a safe interpreter. (JL) 5/22/96 (bug fix) Listboxes weren't properly ignoring double clicks on button 1. (JO) 6/12/96 (bug fix) Focus was automatically placed on new toplevels. This caused the titlebar to flash during menubar traversal. (SS) 6/12/96 (bug fix) Iconification of a window with a specified geometry by using the minimize button would leave the window in an inconsistent state. When the window was deiconified using "wm deiconify", the window would continue to display as an icon with the deiconified geometry. (SS) 6/12/96 (bug fix) Fixed a resource leak where the text widget was not freeing all of the TkRegions it created. This fix affects all platforms, but is particularly important for Win32s. (SS) 6/21/96 (configuration change) Added --enable-gcc switch to configure script to make Tk just like Tcl. Now Tk will not use gcc unless you request it explicitly. (JO) 7/18/96 (bug fix) Changed "configure" script to add an extra -R switch (or whatever is appropriate to the platform) if the X library is in a nonstandard place. This guarantees that the shared library can be found at runtime without having to set the LD_LIBRARY_PATH variable. (JO) 7/19/96 (bug fix) Fixed bug in tkImgGIF.c that cause core dumps if a GIF file contained multiple images. (JO) 7/20/96 (bug fix) Deadlock could occur if a recursive series of send operations involved multiple displays. (JO) 7/23/96 (bug fix) Fixed a resource leak where deallocated XIDs were taking up memory on Windows and Macintosh platforms. (SS) 7/30/96 (bug fix) A core dump could occur if a handler for a window tried to create a child in the half-dead window. Fixed by making the window's name disappear from the name table once it starts to be deleted. (JO) ----------------- Released patch 4.1p1, 8/2/96 ----------------------- 4/30/96 (new feature) Added support for named virtual events. New "event" command to define/destroy named virtual events and to programmatically send both real and virtual events to Tk. (CS) 8/6/96 (bug fix) Entry widgets were invoking scrollbar update functions too often. (JO) 8/9/96 (bug fix) 7/30 change above for handlers broke many things by making window available during Destroy handler. Reworked fix for core dump to simply disallow creating children of half-dead parents. (JO) 8/12/96 (bug fix) Fixed bug where using the Copy menu item on the Macintosh would append a NULL character at the end of the text. (RJ) 8/15/96 (bug fix) Fixed Mac code so garbage wouldn't be printed in text and entry widgets when function & other non-printing keys were pressed. (RJ) 8/15/96 (configuration improvement) Changed the file patchlevel.h to be tkPatch.h. This avoids conflict with the Tcl file and is now in 8.3 format on the Windows platform. (RJ) 8/19/96 (bug fix) Fixed a bug under Windows where the initial window position for a toplevel window was reported as +0+0, regardless of the actual position. (SS) 8/21/96 (bug fix) If the last character on a line in a text widget was a space character that didn't completely fit, the text widget would sometimes add an extra wrap line. (JO) 8/22/96 (feature change) Complete rewrite of the grid geometry manager. There is a new layout algorithm that produces better (but different) layouts in many common cases. (SU) 8/22/96 (new feature) There are two new options for the grid geometry manager, "grid update" which forces an immediate layout calculation, and a "-pad" option to rowconfigure and columnconfigure that allows for extra space around widgets. (SU) 8/22/96 (feature change) The order in which the grid geometry manager reports slaves is now last-managed first. (SU) 8/22/96 (feature change) The column and row weights in the grid geometry manager are kept internally as integers, instead of floating point values. Floating point values are still accepted on the command line, but are truncated to integers. (SU) 8/22/96 (new feature) There are four new commands for opening common dialog boxes: tk_chooseColor, tk_getOpenFile, tk_getSaveFile and tk_messageBox. Native dialog boxes are used wherever available. (IL) 8/22/96 (new demos) Added "fsbox", "msgbox" and "clrpick" demos. (IL) 8/23/96 (feature change) Invoking the edit menu on the Macintosh now generates the following virtual events <>, <>, <>, and <> instead of faking key events. (RJ) *** POTENTIAL INCOMPATIBILITY *** 8/25/96 (bug fix) Fixed a bug that would cause "grid x" to dump core. (SU) 8/26/96 (new feature) Added the "unsupported1" command to the Macintosh version of Tk. This command will allow you to set the style of a new toplevel Window (much like overrideredirect). You can use this to get access to all of the Native Mac window styles. This is to hold you over until we get a more general solution added to the toplevel command. (RJ) 8/26/96 (new feature) Added support to handle the zoom box on a Macintosh window. (Currently, you can only get a Tk window with a zoom box by using the "unsupported1" command. (RJ) 8/27/96 (documentation change) Removed old change bars (for changes in Tk 4.1 and earlier releases) from manual entries. (JO) ----------------- Released 4.2b1, 8/30/96 ----------------------- 9/5/96 (bug fixes) Fixed several bugs in file dialogs: individual files could be listed twice, if a long list of files were shown, and the view scrolled to the right, and then a different file file was shown, the scrollregion on the canvas wasn't being reset, so the file dialog was broken from then on, added an update idletasks so that the watch cursor was shown when the dialog was thinking. For the motif file dialog, fixed the weights for resizing. On the clrpicker, fixed the finalColor variable which caused problems when the OK button was "clicked" before the dialog was mapped (in the test suite). Added Ioi's last changes from before he left. For message boxes, if a single button message box is shown (currently only 'ok'), it is set to be the default even if not specified. (KC) 9/5/96 (bug fix) Fixed bug on Macintosh where menus would appear in a seemingly random location. (RJ) 9/5/96 (bug fix) Text widgets had rounding problems with the "yview" command that caused them sometimes to round to the line before the correct one. (JO) 9/5/96 (bug fix) Changed grab code to retry grabs after errors where another application already has the grab. This is needed to get around race conditions with some window managers and will hopefully solve the grab errors that people see occasionally. (JO) 9/6/96 (bug fix) Fixed x-y coordinate confusion problem with scaling of window items in canvases. (JO) 9/11/96 (bug fix) The open and save file dialogs would change the current working directory under Windows. (SS) 9/12/96 (bug fix) The Tk event system was delivering events to dead windows, if the event handler got reentered during a Destroy event handler. This could cause core dumps and other problems. (JO) 9/20/96 (bug fix) In XFillRectangles under Windows, a brush was not being deallocated. (SS) 9/20/96 (bug fix) The Mac window manager used to generate a mouseUp event for a top level that was recently raised to the front/active window which often caused a tk(priv) error. The up event is no longer generated with solves several problems. (RJ) 9/25/96 (bug fix) The font code under Windows was leaking memory whenever a new font was referenced using the three part font names. (SS) 9/26/96 (bug fix) The tests for the common dialogs still used the 'testevent' function. I updated these calls in clrpick.test, msgbox.test, filebox.test to use the new event gereating mechanism. 9/18/96 (bug fix) Long-standing bug in bind where was reported as , but was reported as "aa". (CS) 9/27/96 (bug fix) Bindings didn't work on 64-bit machines due to changes made for virtual events. (CS) 9/30/96 (feature change) Binding for new virtual events included both lower and upper-case, e.g., <> was defined as and . Previously, widgets were directly bound to only lower-case bindings. The upper-case binding caused incompatibility with some existing Tcl programs, so the upper case bindings for <>, <>, and <> were removed. (CS) 9/30/96 (bug fix) The postscript code in the canvas widget now uses channels to get and write .ps files which fixed a bug on the Mac where an output file would have mixed EOL characters. In addition, I added the ability for the prolog to come from the Tk shared library on the Mac which makes it possible to have a standalone application. (RJ) 10/1/96 (feature change) "grid forget" was renamed "grid remove". A new command "grid forget" was added whose semantics are the same as "pack forget" (SAU) *** POTENTIAL INCOMPATIBILITY *** 10/1/96 (feature change) grid no longer accepts floating point values for row or column weights, integers must be used. (SAU) *** POTENTIAL INCOMPATIBILITY *** 10/1/96 (feature change) "grid {column,row}configure " returns a list of option value pairs for all of the row or column constraints. It used to return an error. (SAU) 10/1/96 (bug fix) "The way grid handles '^' short-cuts was re-written to eliminate core dumps. (SAU) 10/3/96 (feature change) A virtual event binding associated with a given physical event is now considered less specific than a binding for that same physical event, all other things being equal. (CS). 10/3/96 (bug fix) Under Windows text placed on the clipboard did not undergo CRLF translation when delivered to other applications. (SS) 10/3/96 (bug fix) Copying an image onto itself with a zoom factor that caused the image to grow was accessing freed memory. (SS) 10/3/96 (bug fix) Under Windows, the image blank subcommand did not work. (SS) 10/10/96 (bug fix) Under Windows & Macintosh, XSetFont and XChangeGC were not implemented, and XSetLineAttributes did not correctly update the GC. (SS) 10/10/96 (bug fix) Under Windows, 8-bit non-palette displays were not handled properly. (SS) 10/10/96 (bug fix) Under Windows, images of depth other than 8 or 24 bits were not being rendered properly. (SS) 10/10/96 (bug fix) Under Windows, bitmap subimages were not correctly displayed. (SS) 10/14/96 (bug fix) Under Window, wm resizable would constrain both programatic resizes as well as user resizes. (SS) ----------------- Released 4.2, 10/16/96 ----------------------- 10/17/96 (bug fix) XCopyPlane was broken under Windows and would cause a crash when used with a clipping bitmap. (SS) 10/21/96 (bug fix) Added missing resources needed by tk_getOpenDialog on the Macintosh to the shared library for Tk. (RJ) 10/22/96 (bug fix) Invoking a menu with an Alt key sequence caused an error due to a misplaced common in library/menu.tcl. (JO) 10/23/96 (bug fix) Errors in files sourced by the Macintosh "Source..." menu are now correctly reported via the background error mechanism. (RJ) 10/23/96 (bug fix) Fixed a bug in the Mac subwindow implementation that caused refreshes to not occur for canvases with embedded windows. (RJ) 10/24/96 (bug fix) Provided workaround for Apple bug that doesn't handle zooming correctly for floating windows. (RJ) 10/24/96 (bug fix) Macintosh tearoff menus are now correctly displayed as Mac floating windows. (RJ) 11/1/96 (bug fix) Restored manual page for procedures like Tk_CreateWindowFromPath and Tk_DestroyWindow; was accidentally deleted when Tk_CreateMainWindow procedure was decommissioned. (JO) 11/19/96 (bug fix) Fixed bugs in postscript code that would cause the prefix to not be included and the output file to have the wrong permissions. (RJ) 12/2/96 (bug fix) Fixed problem with canvas lines where it didn't compute bounding boxes correctly for zero-width lines: this could potentially leave garbage on the screen when items were deleted or moved. (JO) 12/5/96 (bug fix) Fixed the Macintosh implementation of pointer x/y which was returning garbage. (RJ) 12/6/96 (bug fix) Fixed grid bug where the positioning of slaves was incorrect for non-zero values of ipadx and ipady (SU) 12/6/96 (bug fix) Fixed grid bug where slaves got "lost" when an already managed slave is re-managed in a different master. (SAU) ----------------- Released 4.2p1, 12/8/96 (Mac only) -------------- 1/17/97 (bug fix) Fixed bug where the Tk clipboard was not in sync with the Macintosh clipboard on start-up. (RJ) ----------------- Released 4.2p2, 1/31/97 -------------- ---------------------------------------------------------- Changes for Tk 4.2 go above this line. Changes for Tk 4.3 go below this line. ---------------------------------------------------------- 9/19/96 (improvement) Implemented table driven mechanism for deciding whether a command is safe. If it is added by Tk_Init and it appears in the table then it is kept, otherwise it is removed in a safe interpreter. (JL) 10/18/96 (new feature) Added support for application embedding: - Frame and toplevel widgets now have a -container option, which turns the widget into a container. - Toplevel widgets have a -use option for requesting that the widget be embedded in another application. - Wish also supports a -use command-line option. Embedding is fully supported under Unix, but the implementation is not complete under Windows or the Macintosh (it works just well enough to support the Tcl/Tk plugin). (JO) 10/22/96 (bug fix) The commands "winfo rootx" and "winfo rooty" didn't work for non-toplevel windows in embedded applications: they returned the coordinates of the nearest toplevel. (JO) 12/02/96 (new feature) Implemented Safe Tk. Tk can now be loaded into a safe interpreter that has been created with tcl_safeCreateInterp, by calling load {} Tk interpname. (JL) 12/02/96 (new feature) A safe Tk interpreter can no longer generate postscript output from a canvas. (JL) 12/02/96 (new feature) Added -channel option to photo command to allow image data to be read from a channel. This is useful in safe Tk interpreters where the data cannot be read directly from a file. (JL) ---------------------------------------------------------- Changes for Tk 4.3 go above this line. Changes for Tk 8.0 go below this line. ---------------------------------------------------------- 9/1/96 (new features) The font mechanism in Tk has been completely reworked: - Font names need not be nasty X LFDs: more intuitive names like {Times 12 Bold} can also be used. See the manual entry font.n for details. - Font requests always succeed now. If the requested font is not available, Tk finds the closest available font and uses that one. - Tk now supports named fonts whose precise attributes can be changed dynamically. If a named font is changed, any widget using that font updates itself to reflect the change. - There is a new command "font" for creating named fonts and querying various information about fonts. - There are now officially supported C APIs for measuring and displaying text. If you use these APIs now, your code will automatically handle international text when internationalization is added to Tk in a future release. See the manual entries MeasureChar.3, TextLayout.3, and FontId.3. - The old C procedures Tk_GetFontStruct, Tk_NameOfFontStruct, and Tk_FreeFontStruct have been replaced with more portable procedures Tk_GetFont, Tk_NameOfFont, and Tk_FreeFont. *** POTENTIAL INCOMPATIBILITY *** (CS) 9/24/96 (bug fix) Under Windows, transient windows would be destroyed if their master was destroyed, even if the transient window was not a child of the master. (SS) 10/18/96 (new features) A -menu option has been added to the toplevel widget command, which allows a menu to operate as a menubar. On the Macintosh, the menubar is displayed accross the top of the main monitor, just like with other applications. Under Windows and Unix, the menu is attached to the toplevel window. Also, changed some semantics. Tearoff menus will now reflect changes to the menu it was torn off from, and are deleted when the master menu is deleted. Tearoffs also reflect more look-and-feel of the platforms they are running on. (SRP) 10/31/96 (bug fix) Under Windows, missing system cursors would generate an error instead of falling through to the Tk cursor of the same name. (SS) 11/7/96 (feature change) Under Unix, default borderwidth is now 1 to more closely approximate CDE. (SS) Note: this change was undone on 6/12/97, restoring the default border width to 2 again. (JO) 11/7/96 (new feature) The button widget now supports a -default option that draws a platform specific default ring around the widget. (SS) 11/7/96 (feature change) Under Windows, buttons and scrollbars now have native look and feel. This affects the default class bindings and the way the some configuration options are interpreted. Refer to the widget manual pages for more details. (SS) *** POTENTIAL INCOMPATIBILITY *** 11/19/96 (bug fix) Under Windows, images were incorrectly drawn on 16-bit displays. (SS) 11/19/96 (bug fix) Under Windows, the class name for the main window (.) was not properly generated from argv0. (SS) 11/20/96 (bug fix) Fixed a couple of bugs in the Canvas widget. The postscript file is now created with the correct permissions. Also, the prolog is now properly included in all cases. (RJ) 11/22/96 (bug fix) Under Windows, the initial directory and file names were not properly translated before being passed to the system open/save file dialogs. So forward slashes were not converted to backslashes, and tilde substitution was not performed. (SS) 11/25/96 (feature change) Under Windows and Macintosh, the selection highlight is now hidden whenever an entry or text widget loses focus. Also, the previous selection information is not lost when a new selection is made in a different widget. (SS) 11/26/96 (new feature) Added support for images as primitive types in text widgets. (SU) 11/30/96 (configuration improvement) Modified configure.in to handle the case where Tcl and Tk are installed in different places by including both their library directories in the library search path for Tk. (JO) 12/3/96 (bug fixes) Fixed two bugs related to canvas lines that caused the screen to be incorrectly refreshed, leaving garbage on the screen. One bug was related to lines with width zero, and the other was related to lines with very long miters. (JO) 12/4/96 (bug fix) The "update" command was only syncing the display for its main window. Changed to sync all displays. (JO) 12/5/96 (bug fix) Color deallocation would occasionally cause a panic under Windows. (SS) 12/5/96 (bug fix) Errors during startup were silently discarded under Windows. (SS) 12/5/96 (bug fix) Errors during startup were silently discarded under Windows. (SS) 12/11/96 (bug fix) Text widgets weren't considering the -spacing1 and -spacing2 options when computing their desired geometry. (JO) 12/12/96 (feature change) Option menus using tk_optionMenu were created with command entries that set the option menu's variable in a command string. This has been changed so that the option menu's entries are now radiobutton entries so that the entries that matches the variable is now checked when the menu is posted. (SRP) 12/12/96 (feature change) The destroy command no longer returns an error when a window does not exist. (SRP) 12/13/96 (new feature) grid row/column-configure accepts a list of indices in addition to a single index. (SU) 12/17/96 (bug fix) Under Windows, command line was not being parsed correctly if it contained the literal characters \" (CS) 12/17/96 (feature change) Native Windows labels do not get a focus-ring border. (CS) 12/17/96 (bug fix) Under Windows, colors specified as "#XXYYZZ" where XX, YY, or ZZ were not valid hex digits were getting a random color value instead of being an error. (CS) ----------------- Released 8.0a1, 12/17/96 ----------------------- 12/23/96 (bug fix) Fixed two menu bugs: - Menus could get stacked below other windows so that they weren't visible when posted (especially under olvwm and fvwm). - Under olvwm if you pressed button 1 over an entry in a new-style menubar, the menu didn't appear until you moved the mouse slightly. (JO) 1/6/97 (bug fix) Focus could accidentally get grabbed by an application away from the rightful focus owner if the focus recently changed from one application to another. (JO) 1/6/97 (bug fix) Under Windows, the console was appearing even for non-interactive applications. This was a side effect of a general problem with the wm state of windows that were being mapped for the first time. (SS) 1/6/97 (bug fix) Under Windows, the initialization code was not looking in the right directory for the Tk libraries when the program being run was not in the Tcl installation heirarchy. (SS) 1/8/97 (bug fix) Under Windows, the windows were not being unmapped properly, which led to strange packer behavior. (SS) 1/8/97 (bug fix) The "winfo containing" command (and the Tk_CoordsToWindow procedure) didn't work properly on Unix in the presence of embedding or menubars. (JO) 1/15/97 (bug fix) Invoking "destroy ." as the command from a menu would cause Tk to crash because TkMainInfo was freed before menu released its resources. This bug had already been fixed for scrollbars and buttons. (CS) 1/15/97 (bug fix) Tk is now working under Win32s again, including Win32 version 1.25. Fixed separate problems in fonts and dialogs. (CS) 1/15/97 (feature change) Under Windows, font sizes are now specified in points, not pixels. The mapping between pointsize and pixels depends on Windows having accurate metrics for the monitor (plug&play helps). Font metrics are still reported in pixels. (CS) 1/21/97 (bug fix) Grid no longer reports rows or columns "out of range" when requesting their constraints. (SAU) 1/21/97 (bug fix) Fixed some window manager related bugs on the Macintosh. Now better support global grabs. (RJ) 1/21/97 (bug fix) For Windows: Fixed problems with canvas items that used end caps. Fixed arc implementation to more closely approximate X. Stippling now works properly on fat lines. (SS) 1/21/97 (bug fix) Small interlaced GIF images were not properly decoded. (SS) 1/21/97 (bug fix) More changes to image code to try to handle 16-bit displays properly under Windows. (SS) 1/21/97 (bug fix) Numerous display bugs on Unix and Macintosh are now fixed. Numerous binding problems for menubars under Unix are now fixed. Deletion of menu separators under Windows is now fixed. (SRP) ----------------- Released 8.0a2, 1/24/97 ----------------------- 1/29/97 (feature change) The -transient field for menus is no longer supported. There is now a -type field which is used to achieve the same purpose that the -transient field accomplished. When a menu is created, the -type field controls whether the menu is a normal pull-down menu, a floating tearoff menu or a menubar. This option is normally only used by the library code and internally by the menubar code. (SRP) *** POTENTIAL INCOMPATIBILITY *** 2/5/97 (feature change) Changed the photo image mechanism to use Tcl_Channels instead of FILE * as an argument to image matching functions. The change will make it much easier to write cross platform image types in Tk. Note: FILE * is no longer used anywhere in Tk. (RJ) *** POTENTIAL INCOMPATIBILITY *** 2/7/97 (enhancement) Were not allowed to bind to virtual events inside of canvas or text widget (e.g., "$canvas bind all <> {script}" or "$text tag bind sel <> {script}"); it would return an error disallowing that binding. Now _can_ bind to a virtual event, but that binding inside of the canvas or text widget will only fire if the underlying virtual event definition is of type key, button, motion, enter, or leave; all other physical event types get filtered out by the widget before the virtual event mapping is done. (CS) 2/22/97 (bug fix) Under Unix, "wm geometry +-20+-30" didn't work. (JO) 2/24/97 (bug fix) The photo image didn't always zero out enough of its pixel and dither correction arrays. (JO) 2/25/97 (bug fix) Fixed focus problem that could cause "BadMatch (invalid parameter attributes)" in X_SetInputFocus requests on Unix. (JO) 2/25/97 (bug fix and new feature) Added new "gray75" bitmap, fixed "gray25" bitmap to really be 25% on (due to an ancient mistake, it had been only 12% on). (JO) 2/28/97 (bug fix) Windows: made embedding work again on Win32 platform. Prevent iconification, deiconinification on embedded windows. (JL) 3/4/97 (new feature) Added the ability to manipulate the Apple and Help menus on the Macintosh; the system menu on Windows; and to have a right justified Help menu on Unix. See the documentation for menu.n for more details. (SRP) 3/4/97 (bug fix) Prevented core dump at exit if a binding on "." gets invoked from destroying a nested widget and the binding causes the interpreter to be deleted. The core dump was being caused by the interpreter not being Tcl_Preserve'd during the destroy of ".". (JL) 3/4/97 (bug fix) Under Unix, when embedded Tk is running in a separate process, correctly handle a race condition: ignore cross-over messages from the X server for windows that Tk thinks it had already deleted, when the containing process deletes its container window. Some other race conditions still remain, e.g. with pixmaps, colormaps and images. (JL) 3/10/97 (bug fix) Prevented core dump in generic console code due to following a NULL pointer when the console interpreter was already deleted. This may happen due to different orders of deletion possible at exit. (JL) 3/10/97 (bug fix) Fixed bug on Mac and Windows that caused time to be ignored when considering if a single click was actually a double click. (RJ) 3/11/97 (feature change) A major oversight has been that although it was documented that the Tk programmer was asking for a font in points (1/72 of an inch), under Unix and Mac Tk was actually asking for a font in pixels, while only under Windows was it using points. This caused applications to appear much larger when run under Windows. Now, on all platforms the (purportedly) correct size in points is used when asking for fonts. However, for compatibility with existing tk4.2 applications that depend on fonts being of specified pixel size, XLFDs retain their incorrect behavior of getting a font in pixels. (CCS) *** POTENTIAL INCOMPATIBILITY *** 3/13/97 (new feature) "tk scaling" command to setup the mapping between pixels and points. This scaling factor is used by all widgets that accept ruler distances, not just fonts. (CCS) 3/24/97 (new feature) Added "-columnbreak" option to menu entries. When this value is "1", the entry will appear at the top of a new column in a non-menubar menu. Also added "-hideMargin". Together with "-columnBreak", menus with palettes are now possible. (SRP) 3/26/97 (new features and bug fix) Titles for tearoff menus were broken on the Mac and Windows. Added the ability to set the title of a menu when it gets torn off and override Tk's automatic generation of the title. On the Macintosh, whenever a menu label contains three dots in a row "...", the menu will instead display the elipses character '…'. (SRP) 3/27/97 (bug fixes) When a menu had an error executing a postcommand, the error information was getting lost. On Windows, a set of menubuttons was not highligting properly when clicking between windows. On Windows, post commands were getting executed twice for popup menus. On Macintosh, fixed problem where menubars were not always current. (SRP) 4/11/97 (new feature) Menubuttons now have a direction flag which controls where the menu popups up relative to the button. (SRP) 4/24/97 (bug fix) Transient windows did not obey the resizable setting under Windows. (SS) 4/24/97 (bug fix) wm geometry did not correctly parse negative coordinates. (SS) 4/29/97 (bug fix) Changed the canvas polygon implementation to only report the coordinates specified by the end user not the automatically generated end point of a self closing polygon. (RJ) *** POTENTIAL INCOMPATIBILITY *** 4/23/97 (feature change) Loosened the rules on parsing font names so that unix-centric fonts in scripts don't break when run on Windows or Mac. (1) Previously, an XLFD had to specify font name, weight, slant, and size; now, a minimal XLFD (such as "*-times-*") will be accepted, and all unspecified attributes will be given default values. (2) Previously, in the {name size style ...} format, only the style was optional; now both the size and the style are optional; this solves the problem of old scripts that contain specifications of the form "-font fixed" or "-font times". (CCS) 5/7/97 (new feature) Menus now send a virtual event <> when an item is highlighted in a menu. Applications can use this to implement context-sensitive help. (SRP) 5/14/97 (bug fix) Fixed a race condition in the focus code where focus could be taken away from a window incorrectly. Scenario is that the main window creates a toplevel and assigns focus to it. When the user moves the mouse from the main window into the toplevel there was a race between two different kinds of focus events. (BW) 5/20/97 (bug fix) Fixed bug where the clipboard was not rendered before the application exited. (SS) 5/22/97 (feature change) When a Tk8.0 menu is configured, all menus derived from it (menubars, tearoff) mirror the changes. This was not true for the "-tearoff" flag. In Tk4.6, tearoff menus had the "-tearoff" flag turned off. Now, the "-tearoff" flag is tracked just as the other options are. Tearoff menus and menubars with the "-tearoff" option set will not display the tearoff item. This means that a given menu entry for a menu and a tearoff of that menu will match now. (SRP) *** POTENTIAL INCOMPATIBILITY *** ----------------- Released 8.0b1, 5/27/97 ----------------------- 5/30/97 (bug fix) Made the options to the grid command shortcut-able. Ie. You can now use -stick, in addition to -sticky. (RJ) 6/2/97 (bug fix) Fixed bug in startup code that caused a problem in finding the library files when they are installed in a directory containing a space in the name. (SS) 6/2/97 (bug fix) Virtual events associated with / in text widget tag caused panic. (CCS) 6/6/97 (bug fix) On some systems, struct timeval.tv_sec is unsigned. (SS) 6/6/97 (feature change) Changed -default option on buttons to take three states: normal, active, disabled. This allows apps to have a row of buttons where the default ring moves between buttons without changing the geometry of the buttons. See the button.n manual page for more details. (SS) *** POTENTIAL INCOMPATIBILITY with Tk 8.0b1, but not with Tk 4.2 *** 6/9/97 (bug fix) Canvas postscript printing now works for bitmaps under Windows. (SS) 6/10/97 (bug fix) Fixed bug in bindings for listboxes where state wasn't being properly initialized on Shift-1 button presses. (JO) 6/11/97 (bug fix) Text widget display code did not include internal padding in the damage calculation for borders leading to unrefreshed sections on Windows and Mac. (SS) 6/12/97 (feature reversal) Changed default border widths under Unix back to 2 again. This reverses the change made on 11/7/96. (JO) 6/13/97 (bug fixes) In canvas text item: the insertion cursor wasn't shown if insertion point was at end of text item, it was impossible to click to position the insertion point after the last character, and @x,y indices were computed incorrectly if -scrollregion had been specified and canvas was scrolled. (CCS) 6/13/97 (bug fix) Hitting up/down arrows in a text widget packed in a toplevel window created with the "-screen" option would cause an error dialog to pop up. (CCS) 6/12/97 (bug fix) Fixed bug in canvas text items where multi-line selections were not highlighted properly. This bug existed only in earlier releases of Tk 8.0. (JO) 6/16/97 (bug fix) In some obscure cases, canvas window items could accidentally specified a 0x0 size for the window, which caused a BadValue error under X. (JO) 6/17/97 (bug fix) Tk buttons on the Macintosh will now correctly draw under MacOS 8.0. (RJ) 6/18/97 (feature change) Changed the way highlights are drawn in text widgets so that the empty space to the left of a line is highlighted whenever the leftmost character of the line is highlighted (the empty space didn't used to be highlighted). This produces a neater left edge when several lines are selected. (JO) 6/18/97 (bug fix) Tk was using the wrong system colors to draw various widgets under Windows. (SS) 6/19/97 (bug fix) Under Windows, the "wm transient" and "wm overrideredirect" subcommands can now be applied to a toplevel to change its window style at any time during the life of the window. (SS) 6/19/97 (feature change) All GIF and XBM images needed for the "TK" file dialog box are included in-line in tkfbox.tcl. (IL) 6/27/97 (bug fix) Revamped focus code to eliminate most XSetInputFocus calls from the FilterEvent procedure. This moves the implementation back towards the Tk 4.2 implementation, but adds embedding support. There is still a known bug with twm's NoTitleFocus and embedded windows. However, the races in a2 and the funny focus stealing in b1 are gone. (BW) 6/25/97 (bug fix) Error message was not properly reported when using button 'toggle'. (DL) 6/25/97 (bug fix) Removed one source of memory corruption in tkGrid.c code (fixes what was exercised by "grid col . 0 -w 1; grid col . 0 -w 25") (DL) ----------------- Released 8.0b2, 6/30/97 ----------------------- 7/1/97 (bug fix) Menu shortcut and tearoff reported problem fixed. (DL) 7/1/97 (new feature) TK_BUILD_SHARED flag set in tkConfig.sh when Tk has been built with --enable-shared. TK_SRC_DIR added. A new tkLibObjs make target, echoing the list of the .o's needed to build a tk library, is now provided. (DL) 7/9/97 (bug fix) Fixed Tk_CreateFileHandler and Tk_DeleteFileHandler macros to directly call the Tcl equivalents. (JL) 7/10/97 (bug fix) On the Mac, if the binding for <> was drawing, the drawing could bleed over into the menus. This is now fixed. (SRP) 7/10/97 (bug fixes) Removed duplicate code related to Tk_SafeInit, made a single init script handling both cases. (DL) 7/10/97 (feature change) On Unix, to be able to load Tk into a safe interp you need to set the env(DISPLAY) var. Some API should be added to allow master crontrol over Tk instantiation. (DL) 7/11/97 (new feature) On the Mac, menus that are too big for the screen will now scroll. This is part of the interface on the Mac, impossible under Windows, and is not done for Unix. (SRP) 7/21/97 (bug fix) After fixing the bug that in canvas text item the insertion cursor wasn't shown if insertion point was at end of text item, introduced a different bug in where clicking in entry widget with 0 characters would crash or display garbage. (CCS) 7/22/97 (bug fix) If there were a whole bunch of returns or tabs in a row in a canvas text item, then the temporary buffer used when outputting postscript could overflow and overwrite the stack. (CCS) 7/23/97 (feature change) Reenabled "tkwait" in the Safe Tk base. (JL) 7/24/97 (bug fix) Single init script for both Win and Unix. new library/safetk.tcl using features from new tcl safe.tcl (DL) 7/30/97 (feature change) As a result of native menus, you can no longer drag through a frame of menubuttons on Macintosh and Windows and have the menus pop down. You can still click on individual menubuttons and their menus will pop down. Applications needing to present a menubar should consider using the new "-menu" configuration of the toplevel widget to set up menubar which behaves correctly on Macintosh, Windows and X Windows. (SRP) 7/31/97 (bug fix) Tk widget commands can now safely be hidden commands. Previously destroying the widget would potentially leave dangling pointers and destroy an exposed command instead of a hidden one if an exposed command by that name existed. (JL) 7/31/97 (bug fix) On Windows, popup menus were not tracking the right mouse button correctly if it was used to invoke the menu. On Unix, tearoff menus were stealing focus when the mouse moving over them even when focus following was turned off. (SRP) 8/4/97 (bug fix) Fixed problem under USENIX where raising a toplevel window could cause an X error if the window had just been withdrawn. (JO) 8/4/97 (feature change) tkerror and bgerror are not anymore hard links maintained by the Tcl core. The implementation of bgerror provided by Tk tries, for backward compatibility only, to to call "tkerror" and if that fails, falls back to the usual dialog and stack trace option posting. You can thus still use either "bgerror" or "tkerror" as your application error handling proc, but using "bgerror" is strongly recommended as support for "tkerror" will eventually vanish in upcoming releases. (DL) *** POTENTIAL INCOMPATIBILITY with scripts that were using the actual hardlink implementation 'features' and with scripts (if any) that would be calling the default "tkerror" to simulate error messages (use "bgerror" instead) *** 8/7/97 (feature change/addition) Removed the gif files used for the Open dialog box on UNIX (they were previously made inline). Added a new images directory that includes several images of the Tcl and Tcl Powered logos. (RJ) 8/7/97 (bug fix) Fixed focus to deal with embedding when there is no window manager. (BW) 8/8/97 (bug fix) Fixed bug in photo image code where photo images from different interpreters could get confused if they had the same name. (JO) 8/8/97 (new feature) Added new procedure Tk_GetImageMasterData for mapping image names to master data. (JO) 8/8/97 (feature change) Modified Tk_FindPhoto procedure to require extra "interp" argument (needed for bug fix above). (JO) *** POTENTIAL INCOMPATIBILITY *** 8/8/97 (bug fix) Fixed problems under Windows renaming toplevels with menubars. Fixed problems on all platforms renaming menu widgets and using new menus of the same name as an old one as cascades. Fixed a cosmetic problem with tearoff menus. (SRP) 8/13/97 (bug fixes) Fixed "-from" option for the "image create" and "imageName read" commands for GIF images, which didn't used to work correctly. Also made transparency work correctly for GIF images without the TRANSPARENT_GIF_COLOR hack; TRANSPARENT_GIF_COLOR is now ignored. These fixes were provided by Jan Nijtmans. (JO) 8/13/97 (new feature) added safe::loadTk command to load Tk in a safe slave interpreter. See the loadTk.n manual page for more details. (DL) ----------------- Released 8.0, 8/18/97 ----------------------- 8/22/97 - (bug fix) Fixed syntax error in tk_popup; option menus now popup over their selected items like they did in tk4.2. Fixed problem where cascades sometimes did not work on X. On X, menubars with checkbuttons and radiobuttons in them would infinite loop when mappped. (SRP) 8/27/97 (new feature) Added support for new X11R6 colors under Windows and Mac platforms. (SS) 8/29/97 (bug fix) Wish crashed if stdin was closed. (SS) 9/10/97 (bug fix) "font actual {helvetica 10} -displayof ." wasn't taking into account the "-displayof" option. This problem also existed for the "font metrics" and "font measure" commands. (CCS) 9/16/97 (new feature) Added "resource delete" and "resource files" command to the Mac. Also fixed "resource write" when the resource was specified by id and already existed. (JI) 9/16/97 (bug fix) Added null bindings to for the text and entry widget on the Macintosh. This prevents unbound command key sequences from having the character echoed to the widget. Also fixed Cut & Copy bindings. (JI) (RJ) 9/18/97 (bug fix) Revamped Macintosh focus code. Cut, Copy & Paste virtual events now go to the correct (focus) window. (RJ) 9/19/97 (bug fix) Made Macintosh tearoff menus non-resizable. (RJ) 10/9/97 (bug fix) Default font for new canvas text items was hardcoded to "Helvetica 12" instead of using DEF_CANVTEXT_FONT defined in tk{platform}Default.h like all the other widget settings. (CCS) 10/9/97 (bug fix) Image code could cause crashes during "exit" under some conditions (such as an image named "place"). (JO) 10/9/97 (bug fix) Fixed bug that sometimes prevented listboxes from scrolling far enough horizontally to see the rightmost character. (JO) 10/10/97 (bug fix) In canvas text items, if the text ended with a \n, it was not counted in the bbox height, as it did in tk4.2. This caused "hello\n" to be the same height as "hello" and you couldn't see the cursor positioned on the next line. (CCS) 10/10/97 (bug fix) The grid geometry manager didn't always properly forget about windows after a "grid forget" or "grid remove" command: the windows could reappear on the screen later. (JO) 10/13/97 (bug fix) Selection could not be restored to a text widget after "selection clear" on Windows. (SS) 10/14/97 (bug fix) If a canvas had contained windows that were off-screen, the windows could sometimes reappear (in the wrong place) if the canvas was enlarged. (JO) 10/20/97 (bug fix) Omitting the arguments to the text widget "mark gravity" option caused a crash. (SS) 10/21/97 (bug fix) Tk did not reset the result after native dialog modal loops on Window so background events could perturb the dialog result. (SS) 10/23/97 (bug fix) Memory leak in unix's TkpGetFontFamilies. Thanks to James Bonfield for the fix. (DL) 10/27/97 (bug fix) Fixed event reporting for the Mac during a grab when the pointer was out of the toplevel window. (RJ) 10/28/97 (bug fix) Under Unix, override-redirect was getting set incorrectly for menus, so that "wm overrideredirect" returned 0. (JO) 10/28/97 (bug fix) Under Unix, focus code could sometimes cause the display to deadlock (it wasn't flushing the output buffer after issuing an ungrab command). (JO) 10/28/97 (bug fix) If a PPM image file wasn't complete (e.g. it consisted of nothing but space characters) Tk entered an infinite loop reading the header. (JO) 10/28/97 (bug fixes) On the Mac, menubars assigned to toplevels would disappear after a menu item was invoked from them. On Windows, clicking a system menu with added items and then again with a different set of added items would crash. On all platforms, a command menu entry that caused the entry to be deleted, another one created in its place, and the replacement deleted would cause a panic. On Unix, <> event bindings were firing every time the mouse moved, instead of everytime the active menu item changed. (SRP) 10/27/97 (bug fix) If a particular race condition occurred under Windows, Tk would crash complaining about trying to free a color that wasn't allocated. (SS) 10/28/97 (bug fix) Under Windows, button grabs did not report motion events that occurred outside of Tk windows. (SS) 10/28/97 (bug fix) Fixed incorrect display of transparent images on the Macintosh. (JI) 10/29/97 (bug fix) Reworked the handling of out-of-range indices in the widget command for listboxes: there were all sorts of quirks before (e.g., ".l delete -1" actually deleted the first element of the listbox). (JO) 10/29/97 (bug fix) Fixed crash on the Macintosh that could occur if a window is moved before it is mapped where the X window was created but the Macintosh port was not. (RJ) 10/29/97 (bug fix) Fixed several errors in how wm state was maintained on the Macintosh. Tk now also will iconify a toplevel window on the Mac if the new Appearance Manager is present. (RJ) 10/28/97 (bug fixes) In canvas' postscript command: User name information was leaked in safe interpreters on Unix (security fix). Errors while reading prolog.ps were not propagated and the error message was mixed with partial data. Note: postscript output does not work in safe interpreters on unix and windows. (DL) 10/28/97 (bug fix) Safe Tk interps on unix were leaking env(DISPLAY). (DL) 10/31/97 (bug fix) Fixed problems related to the input focus when one application had windows open simultaneously on several displays. (JO) 10/31/97 (bug fix) Fixed several problems with traversal of menus via the keyboard under Unix. (SRP) 11/4/97 (bug fix) Fixed various word-size related problems for 64-bit architectures. (SS) 11/5/97 (bug fix) Embedding on Windows was using freed data (crashing in safe.test with TCL_MEM_DEBUG). NB: Embedding is still not fully implemented on Windows ! (It works mostly when Tk is embeded into it's own Tk frame (safe::loadTk case), but not well with respect to resizing with a toplevel container or with an external process). (DL) ----------------- Released 8.0p1, 11/7/97 ----------------------- 11/20/97 (bug fix) Fixed bug on the Mac where the "package require" command caused menus to stop working. (JI) 11/20/97 (bug fix) Fixed bug in rendering transparent gifs on Text widgets. (JI) 11/20/97 (enhancement) Made the changes required to work with the new Apple Universal Headers V. 3.0 so we can compile with CW Pro 2.0 (JI) ----------------- Released 8.0p2, 11/25/97 ----------------------- 11/25/97 (security bug fix + added feature) Tk Safe Init now asks the master's safe::TkInit for the 'argv' to use. This is transparently dealt with by the safe::loadTk API. New optional "-display displayName" argument to safe::loadTk, and the "-use" argument accepts both window Ids and Tk window names: see loadTk(n). Made the ":0.0" default display work on the Mac as it works on Windows and Unix. (DL) 12/3/97 (bug fix/optimization) Removed unneeded and potentially dangerous instances of double evaluations if "if" and "expr" statements from the library files. It is recommended that unless you need a double evaluation you always use "expr {...}" instead of "expr ..." and "if {...} ..." instead of "if ... ...". It will also be faster thanks to the byte compiler. (DL) 12/3/97 (new feature) Added support for browser/plugin style embedding, and made various other fixes to get the plugin working on the Mac. (JI) 12/8/97 (bug fix) on Windows, using "winfo pathname" before "." was mapped was crashing. (DL) ---- Shipped as part of the plugin2.0b5 as 8.0p2Plugin1, Dec 8th 97 ---- 12/97 (bug fix) more Macintosh embeding fixes needed for the plugin. (JI) Jan/9/98 (improvement) Allow applications to have custom init script without having to patch the Tk core: Tk_Init will use an existing "tkInit" proc if one exists in the interp where one tries to install Tk instead of defining it's own (tkInit is the transient proc defined in generic/tkInitScript.h that searches and sources tk.tcl and defines the 'correct' tk_library). (DL) ---- Shipped as part of the plugin2.0 as 8.0p2Plugin2, Jan 15th 98 ---- 6/3/98 (bug fix) Fixed bugs in the tk_getOpenFile under Unix. 1) If the -initialdir option was "." the result would be "././foo.tcl" instead of an absolute path, like the Windows interface. 2) There is a traceVar on the data(selectPath) where the script was assumes the window exists. (BS) 6/12/98 (feature change) Focus -force now sets the foreground window on Windows platforms in addition to moving the focus. (SS) 6/12/98 (bug fix) Fixed bug in Windows font measurement that did not take kerning into account. (BS) 6/24/98 (bug fix) On Unix, fixed -initialdir switch to tk_getOpenFile and tk_getSaveFile to convert the specified directory to an absolute path and to use the current working directory if the specified directory does not exist. (SS) 6/25/98 (bug fix) On Unix, both the Tk and the Motif file dialogs would fail if the -parent flag changed between two parent windows that had been previously used as file dialog parents. (SS) 6/29/98 (compatibility patch) Added reserved fields to several Tk structures to match additions made by Jan Nijtmans dash patch. This means that extensions can be compiled against the dash patch and still work with unpatched Tk, and vice versa. 7/6/98 (bug fix) Added keysym definitions for the new keys on the Microsoft keyboards. You can bind to , , and , but you cannot use the Win keys as modifiers. (SS, BW) 7/6/98 (new feature) Added support for the Macintosh Appearance Manager. (JI) 7/24/98 (feature change) Eliminated the static variable that sets tk_library and simplified search order for tk.tcl. The tk_library variable can now be set before calling Tk_Init to avoid doing any searches. If it isn't set, then Tk checks env(TK_LIBRARY), relative to tcl_library, an install directory relative to the executable, a source directory relative to the executable, and a tk directory relative to the source heirarchy containing the executable. See the comment at the top of generic/tkInitScript.h for more details. (SS) 7/27/98 (bug fix) The bbox for coords in the canvas were incorrectly including the center of the coord as part of the bound area. (RJ) 8/4/98 (bug fix) Fixed memory leak in Windows menu code. (SS) 8/4/98 (bug fix) Fixed bug where bgerror's were not being generated from menu callbacks on Windows. (SS) 8/4/98 (bug fix) Alt-key bindings were not being handled properly under Windows, resulting in annoying beeps. (SS) 8/4/98 (bug fix) Fixed bug in Windows menubar handling that allowed a shared menubar to be deleted when any window using it was deleted. (SS) 8/4/98 (feature change) Introduced TkReadBitmapFile to replace XReadBitmapFile so that all Tk file opens go through the Tcl channel mechanism. This lets us wrap applications that define their own bitmaps and cursors. Note that XReadBitmapFile is no longer emulated for non-unix platforms platforms (RJ, BW) 8/5/98 (bug fix) binding in entries was masking the virtual event <> binding to Shift-Insert on Windows. (SS) 8/5/98 (bug fix) wm frame would crash if the window had not been mapped yet on Windows. (SS) 8/5/98 (bug fix) Local grabs did not exclude menus or the caption bar under Windows. (SS) 8/5/98 (bug fix) Reduced message traffic by setting WS_EX_NOPARENTNOTIFY on TkChild windows. (SS) 8/6/98 (feature change) Changed tkInitScript.h to use the new tcl_findLibrary procedure to locate its script library. (BW) 8/10/98 (bug fix) Added special case to font code to limit the length of displayed strings to avoid wrap-around bugs in some PC X servers when the pixel length of the string exceeds 0x7fff. (SS) 8/12/98 (bug fix) Macintosh, lock down some of the resources associated with menus to try and stabilise the menu system on memory limited machines. (JI) 8/12/98 (windows build change) Moved the tkConsole.obj into the tk80.dll on windows. If you build your own Tk main program, you no longer need to compile and link this yourself. (SKS) -------- Released 8.0.3 to the Tcl Consortium CD-ROM project, 8/13/98 ------ 10/5/98 (new feature) Added the event "MouseWheel" that will fire on Windows applications in response to mouse wheel movement. You can bind to the MouseWheel event and use the %D substitution to get the delta the wheel moved. The "event generate" command has also been enhanced with the -delta flag so you can generate these events from Tcl. See the bind and event man pages for more details. The listbox and text widgets' default bindings have been updated to understand MouseWheel events. (RJ) 10/12/98 (performance improvement) Added hash table to canvas widget that holds numeric ids for items. The hash table makes item lookup almost constant time which improves certain canvas operations (exspecially for canvases with large number items). Thanks to Mark Weissman and Jan Nijtmans for submitting this improvement. (RJ) 10/15/98 (bug fix) The -fill option to text items in the canvas did not allow the empty string as an argument (meaning transparent) even though every other item type did. Thanks to Sebastian Wangnick for supplying this patch. (RJ) 10/20/98 (feature change) The Makefile and configure scripts have been changed for IRIX to build n32 binaries instead of the old 32 abi format. If you have extensions built with the o32 abi's you will need to update them to n32 for them to work with Tcl. (RJ) *** POTENTIAL INCOMPATIBILITY *** 11/10/98 (feature change) The Macintosh menus will use the Appearance Theme backgrounds, separators and menu shape, if Appearance version 1.0.1 or greater is installed. The version of Appearance that shipped with MacOS 8.0 so it will not work with a straight 8.0, but it will with MacOS 8.1 or later. (JI) ----------------- Released 8.0.4, 11/20/98 ----------------------- 11/24/98 (bug fix) On some X servers, XQueryLoadFont will always return a font, even if the name is meaningless. This prevents Tk from parsing the font name, so now we perform a quick sanity check on the name before letting X have it. (stanton) 12/30/98 (bug fix) Fixed bug in "grid forget" that failed to cancel pending idle handlers, resulting in a crash in a few odd cases. (stanton) 1/28/99 (configure change) Now support -pipe option on gcc. (RJ) 2/4/99 (bug fix) Changed so color tables in photo images are freed immediately instead of being delayed. This ensures that color tables are properly disposed at process exit. (stanton) 2/4/99 (bug fix) Changed postscript template to include a European character with an umlaut when determining font height. (stanton) 2/4/99 (bug fix) If an image bitmap mask changed but ended up with the same XID, the GC failed to be updated and so the new mask was not used. (stanton) 2/4/99 (bug fix) Changed so focus window is always set if -force is specified. This fixes the problem on Windows where Tk does not activate the window if it already has focus. (stanton) 2/4/99 (bug fix) Fixed so errors in console eval are reported properly. Eliminated duplicate result messages. (stanton) 2/4/99 (bug fix) Under Windows, changed so toplevels that aren't resizable don't have resize handles and the zoom box is disabled. (stanton) 2/4/99 (bug fix) Changed to cancel the mouse timer when a user initiated move/resize loop begins on Windows. (stanton) 2/4/99 (configure change) TK_LD_SEARCH_FLAGS was set incorrectly if SHLIB_LD_LIBS='${LIBS}', and shared linking is performed through the C compiler. Systems affected are Linux, MP-RAS and NEXTSTEP, but also with gcc on many more systems. 2/4/99 (bug fix) Changed some EXTERN declarations to extern since they are not defining exported interfaces. This avoids generating useless declspec() attributes and makes the Windows makefile simpler. (stanton) 2/4/99 (bug fix) Changed so keyboard shortcuts will only be found in the current toplevel. Previously, they might be found in menus attached to other toplevels that might not even be mapped. (stanton) *** POTENTIAL INCOMPATIBILITY *** 2/4/99 (bug fix) Changed to treat zero width lines in the canvas like they have width 1 for purposes of selection. (stanton) 2/4/99 (bug fix) Added a workaround for a bug in GetTextExtentExPoint on Win NT 4.0/Japanese that cause a crash in some cases. (stanton) 2/4/99 (bug fix) Fixed uninitialized memory access bug in Unix send code. (stanton) ---------------------------------------------------------- Changes for Tk 8.0 go above this line. Changes for Tk 8.1 go below this line. ---------------------------------------------------------- 1/16/98 (new feature) Tk now supports international characters sets: - Font display mechanism overhauled to display Unicode strings containing full set of international characters. You do not need Unicode fonts on your system in order to use tk or see international characters. For those familiar with the Japanese or Chinese patches, there is no "-kanjifont" option. Characters from any available fonts will automatically be used if the widget's originally selected font is not capable of displaying a given character. - Textual widgets are international aware. For instance, cursor positioning commands would now move the cursor forwards/back by 1 international character, not by 1 byte. - Input Method Editors (IMEs) work on Mac and Windows. Unix is still in progress. 7/7/97 (new feature) The send command now works for Microsoft Windows. It is implemented using Dynamic Data Exchange, and a new command, dde, allows Tk to send more generic DDE commands to other applications. (SRP) 11/3/97 (new feature) Major overhaul of code that manages configuration options to use Tcl_Obj structures instead of strings: - There is a new set of procedures including Tk_CreateOptionTable, Tk_InitOptions, and Tk_SetOptions, which replace Tk_ConfigureWidget and related procedures. The old procedures are still available. The new procedures use a new format for configuration tables. See SetOptions.3 for more information. - There are new procedures Tk_AllocColorFromObj, Tk_GetColorFromObj, and Tk_FreeColorFromObj to manage colors using objects to hold the name of the color and cache the corresponding XColor pointer. There are similar procedures Tk_Alloc3DBorderFromObj, Tk_AllocBitmapFromObj, Tk_AllocCursorFromObj, Tk_AllocFontFromObj, and so on to manage borders, bitmaps, cursors, and fonts. - The old-style procedures such as Tk_GetColor and Tk_GetBitmap no longer take Tk_Uids for arguments; they just take strings. - Menus, labels, buttons, checkbuttons, and radiobuttons have been converted to use the new object-based configuration library. (SRP & JO) 11/7/97 (improvement) Changed code referring to "interp->result" to call accessor functions like Tcl_SetResult(). 12/23/97 (fix) Fixed transparency and web optimized the palette of the images/ Tcl powered logos. (DL) 12/16/97 (bug fix) Canvas and text "bind" subcommands generated an error with no message if called to fetch a binding that didn't exist. They now silently return without an error like the "bind" command. (SS) 1/13/98 (bug fix) Keysyms for international characters were not being reported properly under Windows. (SS) ----------------- Released 8.1a1, 1/22/98 ----------------------- 2/4/98 (bug fix) Calling XFreeFontNames() twice if couldn't allocate font. (CCS) 2/10/98 (bug fix) Inlined prolog.ps in tkCanvPs.c to make it accessible from safe interpreters: canvas postscript now works in safe interps (like in tk8.0plugin). (DL) 2/11/98 (bug fix) Windows "send" to a remote interp wasn't propagating $errorInfo correctly from the remote interp to the local invoking interp. (CCS) 2/11/98 (bug fix) Windows "send" should have accepted "--" to mean "no more arguments". (CCS) 2/11/98 (bug fix) Windows "send" was concatenating its arguments incorrectly (not consistent with "eval", "uplevel", or Unix "send"). (CCS) 2/18/98 (bug fix) Macintosh radiobuttons and checkbuttons now color their backgrounds correctly under Appearance. The controls gadgets themselves however, remain the Theme colors. (JI) 2/18/98 (improvement) The corner pixels that peek through around the rounded corners of the Mac button widget are now controlled by the -highlightbackground, rather than the -background option. (JI) 2/18/98 (improvement) Implemented the intra-application Send on the Mac (RJ) 2/18/98 (bug fix) Under X, a problem mapping from a fontStructPtr to an XLFD (no XA_FONT attribute) would lead to dereferencing NULL. (CCS) ----------------- Released 8.1a2, Feb 20 1998 ----------------------- 10/21/98 (bug fix) Tk_UnderlineChars did not handle UTF strings properly so underline indices were in bytes instead of characters. (stanton) 11/19/98 (bug fix) Fixed menus and titles so they properly display Unicode characters under Windows. [Bug: 819] (stanton) 11/24/98 (bug fix) Fixed a bunch of memory leaks in the Windows menu code. [Bug: 620] (stanton) 11/25/98 (bug fix) Various small bug fixes: (stanton) - hidemargin option was not honored properly in menus [Bug: 859] - disabled menu entries were getting reenabled whenever the mouse passed over the entry [Bug: 860] - fixed deletion order bug where a crash would result if a binding deleted "." 11/30/98 (bug fix) The error result was getting lost when restoring configuration options in buttons. [Bug: 619] (stanton) 12/8/98 (bug fix) The Windows clipboard was not correctly traslating multibyte characters. [Bug: 935] (stanton) ----------------- Released 8.1b1, Dec 11 1998 ----------------------- 1/29/99 (bug fix) Fixed bug in "grid forget" that failed to cancel pending idle handlers, resulting in a crash in a few odd cases. (stanton) 2/4/99 (bug fix): Fixed uninitialized memory access in Tk_SetAppName. [Bug: 919] (stanton) 2/4/99 (bug fix): Added a workaround for a bug in GetTextExtentExPoint on Win NT 4.0/Japanese. [Bug: 1006] (stanton) 2/4/99 (bug fix): Changed so keyboard shortcuts for menus will only be found in the current toplevel. Previously, they might be found in menus attached to other toplevels that might not even be mapped. [Bug: 924] (stanton) 2/4/99 (bug fix): Changed to treat zero width lines in the canvas like they have width 1 for purposes of selection. [Bug: 925] (stanton) 2/4/99 (bug fix): TK_LD_SEARCH_FLAGS was set incorrectly if SHLIB_LD_LIBS='${LIBS}', and shared linking is performed through the C compiler. Systems affected are Linux, MP-RAS and NEXTSTEP, but also with gcc on many more systems. [Bug: 908] (stanton) 2/4/99 (feature enhancement): Changed so windows that aren't resizable don't have resize handles and the zoom box is disabled on Windows. (stanton) 2/4/99 (bug fix): Fixed so errors in console eval are reported properly. Eliminated duplicate result messages. [Bug: 973] (stanton) 2/4/99 (bug fix): Changed so focus window is always set if -force is specified. This fixes the problem on Windows where Tk does not activate the window if it already has focus. (stanton) 2/4/99 (bug fix): If an image mask changed but ended up with the same XID, the GC failed to be updated and so the new mask was not used. [Bug: 970] (stanton) 2/12/99 (new feature): Tk is now thread safe. You enable this by configuring with --enable-threads. Tcl must also be compiled with --enable-threads. See Tcl for more information about the threading interfaces. (lfb) 2/25/99 (bug fix) Under Windows, wish can now inherit pipe handles on stdio so it is possible to use the wish executable in a command pipeline to capture the output of puts or read from the pipe with gets. (redman) 3/1/99 (bug fix) Under Windows, Tk was not properly handling focus and activation changes in some cases. (redman) 3/10/99 (new feature) Tk now uses the new stub library feature in Tcl. The Tk library now contains no direct references to any symbols in Tcl. In addition, there is a new Tk_MainEx() function that takes an interpreter as an argument. See the Tcl documentation for more information about the stubs mechanism. (redman) 3/14/99 (feature change) Test suite now uses "test" namespace to define the test procedure and other auxiliary procedures as well as global variables. - Global array testConfige is now called ::test::testConfig. - Global variable VERBOSE is now called ::test::verbose, and ::test::verbose no longer works with numerical values. We've switched to a bitwise character string. You can set ::test::verbose by using the -verbose option on the Tk command line. - Global variable TESTS is now called ::test::matchingTests, and can be set on the Tk command line via the -match option. - There is now a ::test::skipTests variable (works similarly to ::test::matchTests) that can be set on the Tk command line via the -match option. - The test suite can now be run in any working directory. When you run "make test", the working directory is nolonger switched to ../tests. (hirschl) *** POTENTIAL INCOMPATIBILITY *** ----------------- Released 8.1b2, March 16, 1999 --------------------- 3/23/99 (feature change) Test suite now uses "tcltest" namespace to define the test procedure and other auxiliary procedures as well as global variables. The previously chosen "test" namespace was thought to be too generic and likely to create conflits. (hirschl) *** POTENTIAL INCOMPATIBILITY *** 3/26/99 [bug fix] Fixed bug reported by Bryan Oakley in the menubutton bindings. There was a false assumption that there was always a menu attached to the button. [Bug 1116] (surles) 3/26/99 (feature change) Removed --enable-tcl-stub from the configure script. Linking Tk to Tcl stubs is causing too many problems when linking executables like wish. Until the Tk is a fully loadable extension, linking against the Tcl stubs is not supported in Tk. (redman) 3/26/99 (feature change) --nameble-shared is now the default and builds Tk as a shared library; specify --disable-shared to build a static Tk library and shell. *** POTENTIAL INCOMPATIBILITY *** 3/29/99 (api change) Standardized text layout and font interfaces so they are consistent with respect to byte versus character oriented indices. The layout functions all manipulate character oriented values while the lower level measurement functions all operate on byte oriented values. (stanton) 4/1/99 (bug fix) Image handlers are finalized before the font subsystem to fix crashes during finalization of complex widgets. (stanton) 4/1/99 (feature change) Removed the send command on Windows. Moved the DDE basis of that command out to its own extension. The send implementation on top of DDE was causing Tk to lock up in some cases. (redman) 4/5/99 (bug fix) Fixed handling of Unicode in text searches. The -count option was returning byte counts instead of character counts. 4/5/99 (feature change) Cut and paste to an entry widget returns the selection instead of the widget contents, which can be different if the -show option is used to hide the display. (stanton) --------------- Released 8.1b3, April 6, 1999 ---------------------- 4/20/99 (compiler fix) changed definition of Status type to use a typedef instead of a #define to avoid conflicting with the cygwin win32 headers. (redman) 4/22/99 (bug fix) Set the -translation and -encoding options to binary for image files. (redman) 4/27/99 (bug fix) Changed to avoid the need for forward declarations in stub initializers. Added extern "C" blocks around stub table pointer declarations so the stubs can be used from C++ code. (stanton) --------------- Released 8.1 final, April 29, 1999 ---------------------- 5/7/99 (bug fix) Fixed bug wheretk_popup fails when called too quickly. [Bug: 2009] (stanton) 5/18/99 (bug fix) Fixed clipboard code so it handles Unicode data properly on Windows NT and 95. [Bug: 1791] (stanton) 5/19/99 (bug fix) Add extern "C" block around entire header file for C++ compilers to fix linkage issues. Submitted by Don Porter and Paul Duffin. (redman) --------------- Released 8.1.1, May 25, 1999 ---------------------- 5/21/99 (bug fix) Fixed clipboard code to handle lack of CF_LOCALE information (from command.com). (stanton) 6/1/99 (bug fix) Improved I18N selection support. COMPOUND_TEXT is converted to/from iso2022, and STRING is converted to/from iso8859-1. More work is needed. (stanton) 6/3/99 (bug fix) Fixed selection code to handle Unicode data in COMPOUND_TEXT and STRING selections. [Bug: 1791] (stanton) 6/16/99 (new feature) Changes to makefiles and configure scripts to support TEA specification. (wart) 6/30/99 (bug fix) Removed deprecated functions, patch from Jan Nijtmans. [Bug 2080] (redman) 6/30/99 (bug fix) Applied patch to allow Img extension to work with 8.2, patch from Jan Nijtmans. [Bug 2068] (redman) 6/30/99 (bug fix) Applied patch from Don Porter to prevent the Windows shutdown code from calling Tcl functions when the stub table has not been initialized in TkWinWmCleanup. [Bug: 2269] (redman) 7/8/99 (bug fix) Changed TkWinChildProc to pass WM_WINDOWSPOSCHANGED through to DefWindowProc to make OpenGL sub-windows happpy. This allows Windows to generate the WM_SIZE and WM_MOVE messages. (stanton) --------------- Released 8.2b1, July 14, 1999 ---------------------- 7/16/99 (bug fix) Copy prolog.ps from the generic directory for install-libraries make target. (redman) 7/22/99 (bug fix) Applied patch from Jeff Hobbs to fix library/menu.tcl. [Bug: 2425] (redman) 7/22/99 (bug fix) Make install-sh have executable permissions before calling from the Makefile. [Bug: 2413] (redman) 7/22/99 (bug fix) Block out sys/stat.h include with #if to allow extension writers to use the MetroWerks compiler on Windows. [Bug: 2385] (redman) 7/29/99 (bug fix) Allow tcl to opn CON and NUL on Windows, moved check to Tk Console code instead. [Bug: 2393 2392 2209 2458] (redman) 7/30/99 (bug fix) corrected the Windows build of threaded Tk from both sets of makefiles (nmake and gmake). (redman) 7/30/99 (bug fix) Added XFillRectangle to stub table, patch from Jan Njitmans. [Bug: 2446] (hobbs) 8/1/99 (bug fix) Wrapped #define of panic() inside #ifndef blocks to avoid compiler errors on Macintosh. Patch from Vince Darley. [Bug: 2389] (hobbs) --------------- Released 8.2b2, August 5, 1999 ---------------------- 8/13/99 (Mac) Rearranged the projects in the tkMacProjects.sea.hqx so that the build directory is separate from the sources. Fixed bug in Tk_DrawChars(). (Jim Ingham) --------------- Released 8.2.0, August 17, 1999 ---------------------- 9/21/99 (bug fix) fixed 'wm deiconify' quirks on Windows. (hobbs) 9/21/99 (bug fix) fix fg<>bg GC swap bug for canvas. [Bug: 2676] (hobbs) 9/21/99 (config fix) fixed AIX config issues for Tk. (hobbs) 9/24/99 (feature change) tk_dialog now uses {Times 12} by default. (hobbs) --- Released 8.2.1, October 04, 1999 --- See ChangeLog for details --- 10/30/99 (bug fix) fixed XKeysymToKeycode to handle mapping of symbolic keysyms (Left, Home, ...) with event generate (hobbs) 10/30/99 (bug fix) change tkEntrySeeInsert to avoid the use of a while loop that could eat CPU tremendously. Behavior of moving the cursor at the right edge changes slightly. [Bug: 3195] (hobbs) 10/30/99 (bug fix) changed tkScrollButtonUp to check for existence of tkPriv(relief) in order to avoid spurious release events (hobbs) --- Released 8.2.2, November 04, 1999 --- See ChangeLog for details --- 11/19/99 (bug fix) fixed expression error that could cause 'malformed bucket chain' error in tkEntry.c. (hobbs) 11/19/99 (bug fix) fixed Tk_NameOfColor (hobbs) --- Released 8.2.3, December 16, 1999 --- See ChangeLog for details --- 1999-09-01 (feature enhancement) rewrote runtime libraries to use new Tcl functions where appropriate 1999-10-28 (feature enhancement) added Img patch from Jan Nijtmans that makes the image command Tcl_Obj-based, adds support for binary -data args, adds alpha channel to images, adds GIF write capability (RLE). Binary compatability is maintained, and source level compatibility is retained with -DUSE_OLD_IMAGE. (nijtmans) 1999-11-16 (feature enhancement) made listbox Tcl_Obj based, added -listvariable option and itemconfigure command to allow coloring individual items. (melski) 1999-11-23 (feature enhancement) added TK_OPTION_DONT_SET_DEFAULT as an equivalent to TK_CONFIG_DONT_SET_DEFAULT (hobbs) 1999-11-24 (feature enhancement) updated dialogs to use color icons on Unix, center properly over -parent. (hipp, hobbs) 1999-12-01 (feature enhancement) added hooks into main() code to support "big" shells more easily. (redman) 1999-12-02 (feature enhancement) converted Tk_DestroyCmd, Tk_LowerCmd and Tk_RaiseCmd to their ObjCmd equivalent. 1999-12-12 (bug fix) fixed bug in TextSearchCmd for multibyte chars 1999-12-13 (feature enhancement) added support for pointer warping via the event -warp option, added some items from Dash patch: canvas widget now Tcl_Obj-based, added Tk_CreateSmoothMethod, added support for clicks, entry widget validation routines, new -state hidden in text widgets, new -state -active* -disabled* -offset options to canvas items (see man page for full docs). New features include dashed line support on the canvas, -elide support for TkMan, postscript printing of images and windows from the canvas. Binary compatibility is maintained with 8.2, and source level compatibility is kept by using -DUSE_OLD_CANVAS. (hobbs, nijtmans, et al) 1999-12-16 (feature enhancement) added "bitstream cyberbit" to list of font fallbacks. (hobbs) 1999-12-16 (feature enhancement) added new 'tk useinputmethods ...' command to provide support for disabling/enabling the use of XIM on X. This was previously all done at compile time, and always on. Now it is turned off by default, even when available, and the user must turn it on to use XIM (per display). *** POTENTIAL INCOMPATIBILITY *** user must add 'tk useinputmethods 1' to retain old style. (hobbs) 1999-12-16 (feature enhancement) added proper support for -initialfile to tk_get*File, and made Unix version better match Windows file box that it was emulating. (hobbs) 1999-12-16 (bug fix) removed necessity of 'update idle' before 'wm deiconify' on Windows. (mao) 1999-12-16 (feature enhancement) added support for Windows system cursors to TkGetCursorByName (use -cursor @filename) 1999-12-21 (bug fix) fixed lack of refresh for thin frames (darley) 1999-12-21 (bug fix) fixed panic in Tk_CoordsToWindow to print error to stderr instead (for Tix) (hobbs) 1999-12-21 (bug fix) fixed segv with scale widget when using -cursor (hobbs) --- Released 8.3b1, December 22, 1999 --- See ChangeLog for details --- 2000-01-05 (bug fix) Applied fixes for unprotected arg passing through eval and after in Tk runtime code [Bug: 3943] (hobbs) 2000-01-05 (bug fix) Applied fix for i18n problems with Mac clipboard [Bug: 3544] (hobbs) 2000-01-05 (feature change) removed the 8.3b1 introduced -state option for text tags, and documented -elide (-state hidden == -elide true) (hobbs) 2000-01-12 (bug fix) fix Windows 'wm deiconify' to zoomed state [Bug: 2077] and fixed possible flashing of unmapped toplevel in deiconify [Bug: 3338] and fixed unwanted mapping of transient window [Bug: 572] (hobbs) 2000-01-12 (feature enhancement) extended 'wm state' to accept a state to set for the toplevel, and added support for zoomed (maximized) state on Windows (hobbs) 2000-01-12 (bug fix) Applied fix for cursor to not blink when entry or text widget was disabled [Bug: 1807] (hobbs) --- Released 8.3b2, January 13, 2000 --- See ChangeLog for details --- 2000-01-20 (bug fix) fixed interpretation of consecutive ^ characters in grid command (melski) 2000-01-20 (bug fix) fixed -select(bg|fg) class names in listbox (hobbs) 2000-01-20 (bug fix) fixed handling of too few coords for line item type in canvas (hobbs) 2000-01-20 (bug fix) fixed dialog's association with parent (melski) 2000-01-26 (bug fix) fixed handling of binary data for -data option to image create (melski) 2000-01-26 (feature enhancement) improved GIF decoding speed by ~60% (melski) 2000-01-26 (feature enhancement) added tk_chooseDirectory implementation for Unix and Mac (nelson, melski) 2000-02-01 (bug fix) fixed resolution rounding problem in scale (porter) and fixed potential Unix seg fault due to use of ckfree instead of Tcl_EventuallyFree (hobbs) 2000-02-01 (bug fix) fixed handling of negative dash values for canvas items (nijtmans) 2000-02-01 (bug fix) fixed dialog lockup on Windows where once the native dialog disappeared, the parent window could end up locked up (hobbs) 2000-02-03 (bug fix) fixed text dump to use char indices instead of byte indices (melski) 2000-02-07 (bug fix) fixed handling of default extension in unix file dialogs (dejong) 2000-02-08 (bug fix) corrected windows symbol font use to restrict itself to 8-bit chars (kenny) 2000-02-08 (feature enhancement) improved support for moving from the old style image C API to the new obj'ified one with new Tk_InitImageArgs command and stub'ing of image code. See docs for how to make the transition. (nijtmans) 2000-02-08 (bug fix) fixed incorrect handling of CapsLock on Win9* and the use of dead keys on international keyboards (spjuth) 2000-02-10 (bug fix) brought Mac back to building state, added support for Appearance Manager (ingham) 2000-02-10 (feature enhancement) added support for buttons 4 && 5 as mousewheel style scrolling in listbox and text widget for Unix. --- Released 8.3.0, February 10, 2000 --- See ChangeLog for details --- 2000-03-02 (bug fix) fixed crash in listbox when cursor was configure and then widget was destroyed (hobbs) 2000-03-02 (feature enhancement) added %V substitution to entry widget validation to clarify type of validation occuring (hobbs) 2000-03-07 (feature enhancement) added -disabledforeground/-state to labels (melski) 2000-03-29 (config enhancement) improved build support for gcc/mingw on Windows (nijtmans, hobbs) and added RPM target (melski) 2000-03-24 (bug fixes) numerous corrections for more correct Unix dialog behaviors (melski) 2000-03-27 (bug fix) fixed mem leak in wm commands (hu) 2000-03-31 (bug fix) correct initialization of Windows static builds and added Unicode aware open/save file dialogs on Windows (hobbs) 2000-03 (bug fix) canvas: corrected support for transparency in dashed lines on Windows (nijtmans); added support for postscript generation of images on Windows, also fixing transparency printing (biancardi); corrected handling of configure options in non-empty canvas (melski) 2000-04-07 (bug fix) correct font name length restriction that prevented the use of long named (>16 char) fonts on NT/2000 (hobbs) 2000-04-07 (bug fix) fixed safe Tk to work in base cases (hobbs) 2000-04-10 (bug fix) corrected Alt-Key event generation and handling of Alt-sequence Windows special char generation and (Control|Shift|Alt)_L/_R determination (melski) 2000-04-10 (bug fix) correctly check state of parent when popping up bgerror dialog. (melski) 2000-04-11 (feature enhancement) msgcat now searches up the namespace chain for a match instead of just in the local namespace (hershey) 2000-04-12 (bug fix) corrected handling of Windows clipboard to allow for use of user-defined types within the Tk app (hobbs) 2000-04-13 (feature enhancement) improved handling of shadow determination for 3D borders in very light/dark cases (hipp, melski) 2000-04-13 (bug fix) correctly color separator bg in menus on Windows (melski) 2000-04-14 (bug fix) improved handling of scale widget, reduced number of redraws (hobbs) 2000-04-17 (feature enhancement) made shift-selection more Windows-like (intuitive) in text widget (melski) 2000-04-22 (bug fix) mac bug fixes, nav services handling (ingham) 2000-04 more docs for public APIs (melski) --- Released 8.3.1, April 26, 2000 --- See ChangeLog for details --- 2000-04 (doc updates) extended, updated docs (melski) 2000-05-09 (feature change) removed WS_EX_TOOLWINDOW style bit for transient windows on Windows platforms, so that transients have full-size titlebars (melski) 2000-05-09 (bug fix) fixed calling of takeFocus proc (nemethi) 2000-05-11 (bug fix) corrected handling of 3DBorder, Cursor and Color objects on multiple screens (hobbs) 2000-05-12 (feature enhancement) improved support for chars in 0-255 range for bitmap ANSI fonts (spjuth, hobbs) 2000-05-12 (widget enhancement) added support for -repeatdelay, -repeatinterval for command buttons; and -compound (image and text simultaneously) for labels, check-, radio-, and command buttons (melski) 2000-05-14 (widget change) added "readonly" state for entries and changed behavior of "disabled" entries; added -readonlybackground option for entries (melski) *** THIS IS A BACKWARDS INCOMPATIBLE BEHAVIOR CHANGE *** 2000-05-15 (feature enhancement) added [image inuse] command (melski) 2000-05-15 (feature enhancement) added -nice option to [bell] command (duncan) 2000-05-17 (widget enhancement) added -overrelief option for check/radio/buttons (melski) 2000-05-26 (feature change) added support for new syntax in Tk_OptionSpec tables; if the database name for an option contains an embedded "." it indicates that the name contains an overriding window class specifier in addition to the database name, which allows widgets to perform queries for certain options as if they were options for a different widget class (melski) 2000-05-28 (new widget) added spinbox widget (hobbs) 2000-05-31 (feature change) replaced bgerror dialog with a new and improved one (fellows, melski) --- Released 8.4a1, June 6, 2000 --- See ChangeLog for details --- 2000-05-15 (bug fix) changed wm deiconify from using idle callback to calling restack and focus code immediately. (hobbs) 2000-07 (build cleanup) cleanup of defines in tkConfig.sh, and cleanup in make and configure files to better handle .rc files across builds. (welch) 2000-07 (build improvements) cleanup of the makefiles and configure scripts to correct support for building under gcc for Windows. (dejong) 2000-08 (feature enhancements) for Windows, corrected drawing of separator menu entries, disable menu entries and the height for separator bars. (melski) 2000-08 (bug fix) fixed calling of takeFocus proc with arg bearing functions. (nemethi) 2000-08 (bug fix) For text widgets, added a test for a NULL segment pointer when doing backwards searches for "", correct searching over elided chars, and corrected search combining -regexp and -nocase. (melski) 2000-08 (bug fix) Corrected code for using 'place', cursors, colors and 3D borders on multiple screens simultaneously. (hobbs, hipp) --- Released 8.3.2, August 9, 2000 --- See ChangeLog for details --- 2000-06-15 (new feature) [tk_getOpenFile ... -multiple] (melski) 2000-06-29 (new feature) localization support in Tk dialogs (duperval, melski, et al) 200-07-28 (new feature) -state option for listbox, better native color defaults (melski) 2000-08 (feature rewrites) Tcl_Obj'ified clipboard, message, tkwait, bindtags, grab. place, selection commands (melski) 2000-08-24 (new feature) More correct GNU configure support (no more --enable-gcc) (dejong) *** POTENTIAL INCOMPATIBILITY *** 2000-08-29 (bug fix) Corrected Windows menu indicator drawing (oberhumer) 2000-09-01 (bug fix) Added tkPlatDecls.h to default install (melski) 2000-09-17 (new feature) Added TK_OPTION_CUSTOM type, similar to TK_CONFIG_CUSTOM (melski) 2000-09-29 (bug fix) Several fixes for multi-display uses of Tk (hipp, hobbs) 2000-10-05 (new feature) Tk_CreateAnonymousWindow API to create anonymous Tk windows controllable from C (melski) 2000-10-27 (new default behavior) [tk useinputmethods 1] is the default in tk.tcl, for users of XIM and "dead" keys (hobbs) 2000-10-30 Improved support for static builds on Windows (gravereaux) * Added support for mingw (gcc on Windows), AIX-5 and Win64 builds (dejong, hobbs) * Improved error checking in Windows native dialogs (melski, hobbs) --- Released 8.4a2, November 3, 2000 --- See ChangeLog for details --- 2001-04-04 (build improvements) redid Mac build structure (steffen) Corrected IRIX-5* configure (english). Added support for AIX-5 (hobbs). Added support for Win64 (hobbs). 2001-04-04 (doc fixes) numerous doc corrections and clarifications. Update of READMEs. 2001-04-04 (bug fix) corrected reseting of service mode to only occur when it was set (hedin, hobbs) 2001-04-02 (bug fix) Improved tests on Windows for correctness. Checked for menu deletion before calling associated menu entry command. Fixed listbox, canvas and entry destruction to be more aware of current widget activity. (hobbs) 2001-03-30 (feature enhancement) added support for changing IME on the fly in Windows (2000) (lam) (bug fix) handled the error case where a valid-looking but invalid identifier could be passed in certain event generate options causing a crash (hobbs) 2001-03-29 (bug fix) corrected handling of drag-selection (dejong) 2001-01-02 (feature enhancement) added Windows icon support in wm iconbitmap (darley) 2000-10-27 (feature enhancement) made [tk useinputmethods 1] the default for Tk (hobbs) 2000-10-18 (bug fix) Corrected rendering of 1-pixel wide stippled lines on Windows. Correct use of active- and disabledwidth values for displaying lines. Enhanced error handling in Windows native dialogs (melski) 2000-09-29 (bug fix) corrected BadMatch errors when using Tk on multiple screens (hipp) 2000-08-18 (feature enhancement) Removed redundant call to DitherInstance (melski) --- Released 8.3.3, April 6, 2001 --- See ChangeLog for details --- 2000-11-21 (new feature)[TIP 5] Tk_ClassProcs, Tk_SetClassProcs API (melski) 2000-12-13 (performance enhancement)[403327] Tcl_Objs of type "double" are recognized in SetMMFromAny to speed up canvas coord calculations (hobbs) 2001-01-02 (new feature)[TIP 8] [wn iconbitmap -default] on Windows (darley) 2001-02-12 (new feature)[TIP #21] asymmetric padding in the pack and grid geometry managers (hipp) 2001-05-21 (new feature)[TIP #11], -compound for [menubutton] widget (helfter) 2001-06-03 (bug fix) corrected support for is10646 fonts on Unix, added a ucs-2be encoding (welch) 2001-07-02 (bug fix) allowed tkwin to be Tcl_EventuallyFree'd in Tk_DestroyWindow so other widgets could register their use of it. Updated entry and listbox widgets to use this, correcting potential crashes. (hobbs) 2001-08-01 (interface rewrite)[TIP 44] moved all private tk[A-Z]* commands and variables into the ::tk:: namespace (porter) *** POTENTIAL INCOMPATIBILITY *** * overhaul of configure scripts for cleaner standard support and support of mingw gcc on Windows. (mdejong) * improved tests to better handle results on variant systems (hobbs) * correct several minor Purify complaints (hobbs) --- Released 8.4a3, August 6, 2000 --- See ChangeLog for details --- 2001-08-06 (new feature) added GNU (HURD) build support. (brinkman) 2001-08-23 (new feature) added QNX-6 build support. (loverso) 2001-08-24 (bug fix) correct several possible free memory reads and array bounds read errors reported by purify. (hobbs) 2001-08-27 (new feature) added call to Tcl_SetMainLoop which enables Tk to be loaded interactively into tclsh and have the event loop kick in correctly. (hobbs) 2001-08-28 (bug fix) fixed tk_chooseDirectory crash on Win95. (baker) 2001-08-28 (bug fix) removed 2 second 'raise' delay seen by some Unix window managers. (hobbs, baker) 2001-09-14 (bug fix) fixed memory leaks that occured if errors were thrown while initializing the channel for an image. (darley) 2001-09-20 (new feature) --enable-64bit support was added for HP 11 when using the native compiler. 2001-10-03 (new feature) finalized Win64 support with latest RC1 release and SDK. (hobbs, stacy) 2001-10-04 (new feature) added enhanced bgerror dialog from Hipp. (hobbs) 2001-10-09 (new feature) added brace/quote matching and file/path/var expansion to the Win/Mac console. (hobbs) 2001-10-17 (bug fix) fixed file filtering in the motif file dialog (nelson) 2001-10-17 (bug fix) updated Mac build support. (steffen) --- Released 8.3.4, October 19, 2001 --- See ChangeLog for details --- 2001-08-14 (bug fix)[450545] Tk's Tcl_ObjTypes now registered (fellows) 2001-08-20 (performance enhancement) internal use of a "window" Tcl_ObjType (fellows) 2001-08-20 (performance enhancement) Obj-ified [grid] and [pack] (spjuth) 2001-09-26 (new feature)[TIP 18] add labels to frames, update geometry managers (spjuth) 2001-09-30 (new feature)[TIP 37] [grid {row|column}configure -uniform] (spjuth) 2001-10-12 (new feature)[TIP 63] [$menu add ... -compound] (helfter) 2001-10-18 (build improvement) no more warnings about building with thread-enabled Tcl (hobbs) 2001-11-10 (build improvement) new make target 'make gdb' (dejong) 2001-11-12 (new feature)[TIP 26] simple undo/redo in text widget (callewaert) 2001-11-12 (build improvement) revitalized makefile.vc (gravereaux) 2001-11-17 (visual change) default button size on Windows changed to conform to Windows style (hobbs) **** POTENTIAL VISUAL INCOMPATABILITY **** 2001-12-03 (new feature)[TIP 74] [wm stackorder] (dejong, steffen) 2001-12 (new feature) more use of Unicode in native widgets on Windows (hobbs) 2001-12-18 (bug fix)[413735] event-click-drag-1.2 test failure (porter) 2001-12-28 (new feature) On Windows, buttons accept negative widths, meaning minimum size, enabling native L&F (hobbs) 2002-01 (bug fix) updates for CONST-ification in Tcl API, notably Tcl_ParseArgv. Use -DUSE_NON_CONST to suppress source incompatibility **** POTENTIAL INCOMPATABILITY **** 2002-01-31 (bug fix)[508988] logic error in menu cloning (helfter) 2002-02-01 (new feature)[TIP 14] [$photo transparency] (fellows) 2002-02-01 (bug fix)[511956] C99 spec: avoid 'bool' as a variable name (hobbs) 2002-02-19 (bug fix) updates to image code calls of Tcl_Seek/Tcl_Tell to address TIP 72 changes (64-bit) in Tcl (fellows) 2002-02-21 (new widget)[TIP 41] added [panedwindow] (hobbs) 2002-02-22 (new feature) 64-bit support for xlc compiler on AIX-4 (hobbs) 2002-02-25 (bug fix)[503772] blinking cursor fix in [text] (hobbs) 2002-02-25 (bug fix)[503613] [listbox] handling of invalid listvar (hobbs) 2002-02-25 (feature change)[493145] mirror B2 bindings to B3 on Windows (hobbs) * (updated demos) many updates to show new features (fellows) --- Released 8.4a4, March 5, 2002 --- See ChangeLog for details --- 2002-03-20 (feature change)[TIP 27][532644] Constness changes (porter) 2002-03-21 (bug fix)[528441] Change in optimization flags for windows (gravereaux) 2002-04-08 (bug fix) MSL stdin/out fixes prevent crash on exit (steffen) 2002-04-12 (bug fix) Centralized closing of display, mem-leak fixes (hobbs) 2002-04-22 (bug fix)[223739] More robust FP comparisons for odd architectures (fellows) 2002-04-22 (bug fix)[541999] Fixed posible overun of 16-bit size limit of X windows in drawchars (hobbs,bonfield) 2002-04-22 (bug fix)[541849] ButtonLeave implementation corrected (hobbs) 2002-04-24 (new feature) TCLTK_NO_LIBRARY_TEXT_RESOURCES check added, allowing disable of inclusion of tk lib into resources (steffen) 2002-05-07 (bug fix)[553208] Makefile/Win fix (TCLDIR, INSTALLDIR forward slash trouble resolved) (gravereaux) 2002-05-20 (bug fix) msgcat added to resources, fixed setup of bindings on startup (steffen, porter) 2002-05-21 (bug fix) Build system fix, SC_ENABLE_SHARED before SC_CONFIG_CFLAGS for usage for SHARED_BUILD (dejong) 2002-05-26 (bug fix)[548765] Fixed -value "" redraw error for variable created by radiobutton (spjuth) 2002-05-27 (feature change) [wm transient .t .t] now raises an error (dejong) *** POTENTIAL INCOMPATIBILITY *** 2002-06-10 (new feature)[566605] Utilities for -underline, ampersand magic (kovalenko) 2002-06-12 (feature change) A transient toplevel now mirrors state changes in the master. (dejong) *** POTENTIAL INCOMPATIBILITY *** 2002-06-13 (bug fix) Fixed handling of cursor specs across platforms to be consistent. (fellows) 2002-06-14 (new feature) [TIP 98] Enhanced photo compositing (fellows) *** POTENTIAL INCOMPATIBILITY *** 2002-06-14 (bug fix) Removed references to matherr (kupries) 2002-06-14 (new feature) [TIP 47] Reorganized Tk to allow usage in writing an X wm (english) 2002-06-14 (new feature) [TIP 84] Full motion events upon request (hobbs) 2002-06-17 (new feature) [TIP 82] -offrelief option for check/radiobutton (hipp) 2002-06-17 (enhancement) Added msg catalog for UK English. (porter) 2002-06-17 (new feature) [TIP 96] Added caret handling (hobbs) 2002-06-19 (new feature) [TIP 48] Added style engine (bonnet) 2002-06-19 (bug fix)[570902] Reorganized Tk shutdown to work around bugs in X (dejong) 2002-06-20 (new feature) [TIP 94] Added -activestyle for [listbox] (hobbs) 2002-06-21 (new feature) [TIP 104] generalized text undo/redo (callewart, hobbs) 2002-06-22 (new feature) [TIP 95] Added [wm attributes] command (hobbs) 2002-06-22 (new feature) [TIP 93] enhanced get/delete to accept accept multiple range pairs (hobbs) --- Released 8.4b1, July 5, 2002 --- See ChangeLog for details --- 2002-07-11 (bug fix) some memory allocation failures now result in error messages rather than panic (fellows) 2002-07-15 (platform support) Borland makefile on Windows (gravereaux,giese) 2002-07-16 (bug fix)[220800,581627] icon reading (darley) 2002-07-19 (bug fix) Postscript generation on Win2K (hipp) 2002-07-22 (bug fix)[570764,568278] transient windows (dejong) 2002-07-24 (bug fix)[581560] canvas memory management (hobbs) 2002-07-24 (bug fix)[584691] focus ring on compound button (hobbs) 2002-07-25 (feature enhancement)[564521] Obj-ified [wm] (spjuth) 2002-08-04 (new feature)[589853][TIP 27] Tk interfaces are now fully CONST-ified. Use the symbols USE_NON_CONST or USE_COMPAT_CONST to select interfaces with fewer changes. *** POTENTIAL INCOMPATIBILITY *** 2002-08-07 (bug fix)[578654] bezier curves on canvas (hobbs) 2002-08-07 (platform support)[468139] native directory browser on Win (hobbs) 2002-08-07 (bug fix)[467524] fixed -from handling for gifs (obermeier) 2002-08-08 (bug fix)[592201] wm transient panic (english,dejong) Rewrote Tk test suite to use tcltest package. --- Released 8.4b2, August 9, 2002 --- See ChangeLog for details --- 2002-08-20 (bug fix) tk.h checks for matching tcl.h version (porter) 2002-08-27 (bug fix)[582457] toolbar button bindings (hipp) 2002-08-31 (platform support)[602770] Mac OS X / Aqua port (steffen) 2002-09-02 (bug fix)[565485] button height on windows (hobbs) 2002-09-02 (new feature)[TIP 108] new comand [tk windowingsystem] (steffen) 2002-09-02 (new feature)[TIP 107][601518] [raise] is non-blocking (english) 2002-09-02 (platfrom support) 64-bit compile on HP-11 (martin) --- Released 8.4.0, September 10, 2002 --- See ChangeLog for details --- 2002-09-15 (bug fix)[570902] Use PEEK_XCLOSEIM to examine the input context queue before invoking XCloseIM. Generate an assert if there is an input context that has not been freed. (dejong) 2002-09-18 (platform support) Updated support for compiling with Cygwin and either mingw or gcc. (khan, howell, dejong) 2002-09-30 (bug fix)[614650] Correct incremental transfers of UTF8_STRING selections (fellows) 2002-10-02 (bug fix)[616791, 614474] don't blink the cursor unless it is visible. (bonfield) 2002-10-02 (bug fix)[607390, 617446] check if the entry is being deleted before handling an associated textvariable. (hobbs) 2002-10-08 (bug fix)[616589] leave the DestroyPanedWindow proc to free the pwPtr. (hobbs) 2002-10-08 (bug fix)[588831] Ignore event if we are focusing into a dead window (griffin) 2002-10-09 (bug fix)[619544] Only error-out creating an image if we fail to allocate a non-empty buffer (fellows) 2002-10-09 (build support) all --enable-symbols to take the enhanced options yes|no|mem|all. (hobbs) 2002-10-10 (feature enhancement) added support for generating ps for embedded widgets on canvases on Windows (hobbs) 2002-10-10 (bug fix)[621241] The grid size was not updated properly when removing a widget from a grid (forssen) 2002-10-16 (bug fix)[616988] macosx fix to accelerators shown in menus with non-alphanumeric keys. (darley) 2002-10-15 (platform support) Correct AIX-5 ppc and 4/5 64-bit build flags. Correct HP 11 64-bit gcc building. (martin, hobbs) 2002-10-17 (bug fix)[624974] fix arg handling for missing image create photo -format or -data options (hobbs) 2002-10-17 (bug fix)[624732] In ControlUtfProc, properly return the number of bytes consumed (hobbs) 2002-10-22 (platform support)[624509] On macosx, add embedded framework dirs to tcl_pkgPath: @executable_path/../Frameworks and @executable_path/../PrivateFrameworks (if they exist), as well as the dirs in DYLD_FRAMEWORK_PATH (if set). Added 'rapp' apple event handler. Added TEXT document type to plist so that files can be dragged onto Wish Shell. Added private proc TkMacOSXUseAntialiasedText() to enable/disable quickdraw text antialiasing where available, default is enabled. Added a linked boolean ::tk::mac::antialiasedtext with write trace to allow control of antialiasing from tcl. (steffen) --- Released 8.4.1, October 22, 2002 --- See ChangeLog for details --- 2002-11-07 (bug fix)[635025,532022] Make [place info] complete and bring into line with other geometry managers. (spjuth) 2002-11-14 (bug fix)[630533] Handle half-dead windows better. (dejong) 2002-11-19 (bug fix) Better handling of narrow scrollbars on OSX. (ingham) 2002-11-22 (bug fix)[641778] Make the [text see] work when the widget is unmapped. (hobbs) 2002-12-01 (bug fix) Stopped [wm withdraw] and [wm transient] from interfering with each other. (dejong) 2002-12-06 (bug fix) Improved DLL cleanup on Windows. (hobbs) 2002-12-06 (new feature) New function TkWinSetHINSTANCE() as part of enabling dynamic Tk to load resources correctly. (hobbs) 2002-12-13 (bug fix)[616245] Use Tcl*StartupScript*() routines in Tk_Main. (porter) 2002-12-27 (bug fix)[578569] Made sure that Tk always knows whether its windows are mapped or not. (english) 2003-01-03 (bug fix)[661792] Stopped crash when trying to create a toplevel when Tk is dying. (hobbs) 2003-01-08 (bug fix)[663981] Clip long lines so they show correctly even when they hit windowing-system limits. (hipp) 2003-01-14 (bug fix)[666346] Stopped selection handling crashes under KDE3.0. (english) 2003-01-22 (bug fix)[220891] Image creation cannot trigger Tk's death. (fellows) 2003-01-23 (bug fix)[673687] Entry typein works as expected even when the mouse button is pressed. (hipp) 2003-01-28 (bug fix)[671330] Stopped segfaults from unsynchonized window deletion epochs. (english) 2003-02-08 (bug fix) Make canvas item coordinate list handling consistent to stop segfaults. Cannot now create items without coordinates. (hobbs) *** POTENTIAL INCOMPATIBILITY *** 2003-02-10 (bug fix) Better support for themed and animated cursors on OSX. (ingham) 2003-02-17 (bug fix) Stopped motion events from morphing into button press and motion events. (dejong) 2003-02-18 (bug fix) Removed memory leak in GIF image loader. (fellows) 2003-02-18 (bug fix) Made OSX menus support UTF8 text and icons. (darley) 2003-02-18 (bug fix)[608559] Stop message boxes from getting extremely wide. (hobbs) 2003-02-18 (bug fix)[683813] Make focus behaviour of spinboxes more like entries. (bron) 2003-02-19 (new demo)[627453] New demo showing off Tk's Unicode font handling. (fellows,suchenwirth) 2003-02-19 (bug fix) Bring event handling more into line with the OSX standard. Also improves "dead key" handling. (riefenstahl,ingham) 2003-02-20 (bug fix)[618872,689357] Stopped read of freed memory when working with large composite fonts. (fellows) 2003-02-20 (bug fix)[689099,tcllib 689258] Improvements to [panedwindow] pane size and sash handling. (spjuth,hobbs) 2003-02-20 (bug fix)[624116] Stopped semi-crash in Windows scrollbar handling. (hobbs) 2003-02-21 (bug fix)[671122] Stopped panedwindow from crashing when embedded in a window with a different visual to the root window. (fellows) 2003-02-21 (bug fix)[617392] Limit the screen-size of [tk_get*File] file type selection menu. (fellows) 2003-02-21 (bug fix)[673722] Rework standard dialogs to use [grid]. (fellows) 2003-02-24 (bug fix)[637828] Report that entries can provide the selection, even if they're not displaying it. (hobbs) 2003-02-24 (bug fix)[669595] Improved display of indicators in disabled checkbuttons and radiobuttons. (hintermayer) 2003-02-24 (bug fix)[632514] Allow listbox 'selection includes' to respond positively when disabled. 2003-02-24 (bug fix)[647497] Make Tk pick the first best matching font on the font path. (dal zotto) *** POTENTIAL VISUAL INCOMPATIBILITY *** 2003-02-25 (bug fix)[621672] Fixed conversion of apple event parameters to posix path names. (steffen,riefenstahl) 2003-02-25 (feature enhancement)[patch 685388] Support simple XOR text drawing on Windows. (martin) 2003-02-28 (bug fix)[612110] Make %-substitutions for events only read data out of the event structure when that field is valid for that event type. (fellows) *** POTENTIAL INCOMPATIBILITY *** --- Released 8.4.2, March 3, 2003 --- See ChangeLog for details --- 2003-03-14 (bug fix)[701812] Stop buttons from being very wide when a tk_messageBox has a lot of content on Unix 2003-03-18 (bug fix) Fixed crash in [winfo server] on Mac OS X 2003-04-25 (bug fix)[477740] Correct compound button display in the disabled state 2003-05-10 (bug fix)[734498] Correct crash when generating postscript for a single-line polygon (point) with no color. 2003-05-13 (feature enhancement)[736774] Use new versioned bundle resource API to get tk runtime library for TK_VERSION on Mac OS X 2003-05-14 (bug fix)[737790] Updated French message catalog 2003-05-15 (bug fix)[557030] Use gb2312-raw as the alias for gb2312* charset fonts. gb2312.enc was made to be euc-cn for Tcl because that is what is most often meant, but X really wants the original (-raw) gb2312 encoding. --- Released 8.4.3, May 20, 2003 --- See ChangeLog for details --- 2003-07-07 (bug fix)[749353] Improve deletion of images on exit. 2003-07-15 (bug fix)[465324] Fixed complex bug in menu clone cleanup. 2003-07-15 (bug fix)[755530] Don't test for XCloseIM bug when the XFree86 version is newer than 4.0 since the layout of the XIM structure has changed. 2003-07-16 (bug fix)[748277, 702230, 738143] Numerous panedwindow fixes. Ensure that the last pane shrinks instead of being clipped when resized below the reqsize. Ensure that we can share GCs between a panedwindow and its sash proxy, even if the panedwindow is in a toplevel with a different visual. Ensure that panedwindows get their geometry right even when their children don't know their initial size. Use widget-specific Priv slots for pwAfterId and panecursor items to correctly handle cursor changes with adjacant panedwindows. 2003-07-17 (bug fix)[697652] Make sure all options of a frame can be set to their default value. 2003-07-17 (bug fix)[404421] Try harder to avoid zero-length mallocs() when creating images. 2003-07-17 (feature enhancement) MacOSX build system rewrite. 2003-07-18 (bug fix) Do not make XGetGeometry call that prevents overwidth lines drawing on unix as it requires a roundtrip call to the X server for every string drawn. Hard-code max width to 32768 until a beter solution to get max width is made. 2003-07-18 (bug fix)[742660] correct XCreateIC call for TK_XIM_SPOT usage on unix. 2003-07-18 (bug fix)[420510] Provide consistency between unix and windows -cursor option. 2003-07-19 (bug fix)[706765] Correctly handle the -sliderrelief option while moving the thumb. --- Released 8.4.4, July 22, 2003 --- See ChangeLog for details --- 2003-08-13 (bug fix)[787065] Fix Button-2 binding for scale widget. 2003-08-19 (bug fix)[791500] Fix panedwindow refresh glitches for bg. 2003-09-17 (bug fix)[808039] Prevent [image create] from generating an image command name that overwrites an existing command. 2003-09-25 (enhancement) Added -compound support for OS X bevel buttons. 2003-10-10 (bug fix) Fix image offset stippling for disabled buttons. 2003-10-22 (enhancement)[827535] Constrain tk_dialog to be sensibly sized and placed 2003-10-28 (bug fix) Add 16bpp XGetImage support on Windows 2003-10-29 (enhancement)[795717] Allow some control of foreground and background colors on Tk's tk_getOpenFile/tk_chooseDirectory. 2003-11-01 (enhancement)[820519] Updated Dutch (nl) message catalog. 2003-11-10 (enhancement)[826614] Provide more Tk build info in tkConfig.sh. 2003-11-10 (enhancement)[809157] Add alpha blending for images with partial transparency on Windows and Unix on 15bpp+ displays. 2003-11-10 (enhancement)[820282] Use the XGCValues.function parameter when filling rectangles with XFillRectangles on Windows. 2003-11-11 (enhancement)[840107] Add OS X unicode clipboard support. 2003-11-11 (enhancement)[833819] Improve Tk's tk_getOpenFile/tk_chooseDirectory directory glob'ing speed. 2003-11-11 (bug fix)[836483] Fix mem leak in '$listbox itemconfigure'. 2003-11-11 (bug fix)[723856] Correctly handle menu (un)posting on menus with spaces in their names. 2003-11-11 (enhancement) Improve AIX-64 build configuration. 2003-11-17 (bug fix) Fix menubutton -compound state disabled drawing. --- Released 8.4.5, November 20, 2003 --- See ChangeLog for details --- 2003-12-17 (platform support)[842952] Mac OS X: [scrollbar] 2004-02-13 (platform support)[776646] Win: native hand2/fleur cursors 2004-02-03 (enhancement) post menubuttons so they stay on screen. 2004-02-09 (bug fix)[877950] stop crash during intra-image copy/resize 2004-02-10 (enhancement) New msg catalogs for Esperanto and Polish (trzewik) 2004-02-13 (platform support)[478568] Win: bold/italic font handling 2004-02-15 (platform support)[860454] Mac OS X: [event generate] 2004-02-15 (platform support)[840107] Mac OS X: Unicode clipboard (senn) 2004-02-15 (platform support)[517600] Mac OS X: handle FSRef's 2004-02-15 (platform support) Mac OS X: native [tk_messageBox] 2004-02-15 (platform support) Mac OS X: PowerBook keycode 0x34 -> 2004-02-18 (platform support) Mac OS MouseWheel event handling 2004-02-18 (bug fix)[899246] fix shrinking grid geometry calculations 2003-02-23 (platform support)[809157] Mac OS X: Add alpha blending for images with partial transparency. 2004-03-01 (platform support)[218561] Allow 64-bit configure on IRIX64-6.5* --- Released 8.4.6, March 1, 2004 --- See ChangeLog for details --- Changes to 8.5a1 include all changes to the 8.4 line through 8.4.6, plus the following, which focuses on the high-level feature changes in this changeset (new minor version) rather than bug fixes: * Tk is no longer guaranteed to work for Win95 (not tested 8.5+) * configure scripts now require autoconf 2.57 for regeneration * added support for anti-aliased test under X11 (already existed for Win/Mac) using --enable-xft * improved speed of 'photo put' handling * updated demos for consistency and improved look & feel * improve 3D line drawing for sunken widgets on Windows * [792387] reworked 'grid' to handle some tricky geometry computations better * [TIP #109] updated look of radiobuttons and checkbuttons on X11 * [TIP #110] tristate value option for checkbuttons and radiobuttons * [TIP #113] add multi-line searching and -all searching to the text widget Full Tcl_Obj-ification of the text widget * [TIP #155] add 'count' and 'replace' subcommands and a '-blockcursor' option to text widgets and support smooth-scrolling of them *** POTENTIAL INCOMPATIBILITY *** Negative or decreasing tab-stops are explicitly disallowed * [TIP #116] more safety for large image creation through use of attempted allocation of large memory blocks * [TIP #137/151] add -encoding option to 'wish' executable (through Tk_MainEX()) *** POTENTIAL INCOMPATIBILITY *** For Tk embedders that build on Tk_MainEx() and make use of Tk_MainEx's former ability to pass a leading "-encoding" option to interactive shell operations, this will now be consumed by Tk. * [TIP #146] added 'grid anchor' subcommand for overall grid anchoring * [TIP #147] recognize widget names and "all" as keywords in grid's 'columnconfigure' and 'rowconfigure' subcommands * [TIP #150] make 'send' available on Windows --- Released 8.5a1, March 3, 2004 --- See ChangeLog for details --- 2004-03-17 (platform support) Mac OS X: Grab the Command-H & Command-Shift-H keys and use them for Hide and Hide Others before passing keystrokes on to the generic keyboard event processing. Stop putting a Quit menu item in the File menu. (ingham) 2004-03-26 (enhancement)[540375] Add code to read and write PPM/PGM data from strings and/or bytearrays. (fellows) 2004-03-26 (bug fix)[923555] Restored support for the stringWriteProc of old photo formats/ (fellows) 2004-03-31 (bug fix)[Bug 220871] Report errors from invoking menu commands as background errors on OS X. (ingham) 2004-04-20 (bug fix)[915350, 922336] Do not set min, max size in WM_HINTS when we shouldn't and correctly display maximize window button under KDE-3.2.1. (english) 2004-05-03 (enhancement)[756952] Place images of compound menu entries in indicator space if not a radio of checkbutton on Windows. (eserte) 2004-05-03 (bug fix)[904371] Fix drawing of unicode chars in menu titles. (riefenstahl) 2004-05-03 (bug fix)[939389, 822002, 732662] Correctly post internal clipboard data to the Windows clipboard on exit. (hobbs) 2004-05-03 (bug fix)[778893, 932155] Make the panedwindow -opaqueresize option work as per the docs, and call DragSash to stop sash jump when B1 is pressed and released without moving. (hobbs) 2004-05-05 (bug fix)[618872] Fix Tk_MeasureChars and Tk_DrawChars to handle reallocation of subfonts when unicode chars require extra fonts. (dkf, hobbs) 2004-05-14 (enhancement) reduce Tk tk_messageBox default font size to 14-point (was 18-point). (fellows) 2004-07-11 (enhancement)[987169] Handle users destroying the dialog indirectly. (fellows) 2004-07-14 (bug fix)[894550] Correctly set the cursor to the platform cursor on OS X when Tk asks for the "NULL" (empty) cursor. 2004-07-14 (bug fix)[969358] Prevent possible segfault in -maxundo. (jiangwu) 2004-07-19 (bug fix)[874058] improved build configuration on 64-bit systems. Corrects Tcl_StatBuf definition issues. (hobbs) 2004-07-23 (platform support) Mac OS X: Fix several problems with Icelandic (and Faroese) keyboards (riefenstahl) 2004-07-24 (platform support) Mac OS X: Complete the implementation of the CG version of the X drawing emulation layer. (tittle, ingham) --- Released 8.4.7, July 26, 2004 --- See ChangeLog for details --- 2004-08-09 (bug fix)[1006286] test wrapping on canvas; Win (dejong) 2004-08-10 (bug fix)[1006686] [wm resizable] Solaris (mcdonald,english) 2004-08-17 (bug fix)[1010938] panedwindow -handlepad GEOMETRY (fellows) 2004-08-19 (bug fix)[611615] file dialog double clicks fell through (hobbs) 2004-09-10 (bug fix)[845189] file dialog state initialization (fellows) 2004-09-10 (bug fix)[1013942] widget demo robust against strict motif (fellows) 2004-09-16 (bug fix)[1028888] [place forget] memory leak (spjuth) 2004-09-16 (bug fix)[607649] font size change: recompute menu geometry (hobbs) 2004-09-17 (new feature)[TIP 222] [wm attributes -alpha] (hobbs) 2004-09-22 (bug fix)[865842] disabled cascade menu arrow draw (dejong) 2004-09-22 (bug fix)[866194] menu accelerator text highlights (dejong) 2004-09-22 (bug fix)[223689] handle color/screen resolution changes (hobbs) 2004-10-05 (new feature)[TIP 159] [wm iconphoto] (hobbs) 2004-10-26 (bug fix)[905830] set IC focus after creation (max) 2004-10-26 (bug fix) shutdown safety corrections for Win (gravereaux) 2004-10-28 (bug fix) HAVE_NO_SEH handler code, Win (dejong) 2004-10-29 (bug fix)[533519] multi-display window placement (thoyts) 2004-11-10 (bug fix)[1055023] compound buttons, MacOSX (kirkham,ingham) 2004-11-11 (bug fix)[1035348] [load]-able Tk on MacOSX/Aqua (steffen) 2004-11-12 (bug fix)[800178] use correct display for [tk scaling] (hobbs) 2004-11-16 (bug fix)[1063675] Italian msg catalog fixes (ugoccioni,welton) 2004-11-17 (bug fix)[1036963] panedwindow: set save_under X attr (hobbs) 2004-11-17 (bug fix)[1004508] console: array keyname expansion (bold,hobbs) 2004-11-17 (bug fix)[1032300] ps generation of unspecified canvas image (hobbs) 2004-11-17 (bug fix)[982248] immediate unmap of hidden canvas windows (hobbs) 2004-11-18 (new feature) configure options --enable-man-suffix (max) --- Released 8.4.8, November 18, 2004 --- See ChangeLog for details --- 2004-12-01 (bug fix)[979239] Fix clipping of partially transparent images on buttons on unix to avoid X error (hobbs, petasis) 2004-12-03 (bug fix)[848161] Fix Tk_PhotoPut(Zoomed)Block overlay compositing of partially transparent areas. --- Released 8.4.9, December 6, 2004 --- See ChangeLog for details --- Changes to 8.5a2 include all changes to the 8.4 line through 8.4.9, plus the following, which focuses on the 8.5-only changes since 8.5a1: 2004-03-16 (bug fix)[915330] correct crash condition for new radio/checkbuttons when colors are exhausted (griffin) 2004-03-18 (platform removal)[918139] Removed support for Mac OS Classic platform (steffen) *** POTENTIAL INCOMPATIBILITY *** 2004-03-26 (new feature)[FRQ 540375] support for [image create photo -format PPM -data] (fellows) 2004-05-14 (bug fix)[TIP 152] -detail option for tk_messageBox (fellows) 2004-06-04 (bug fix)[965398] Fix to shimmering infinite loop scrolling in text widget under rare circumstances (darley) 2004-06-04 (bug fix) Fixed mousewheel bindings for OS X/Aqua (darley) 2004-06-07 (bug fix)[965186] Fix text widget's record of partial-line-height calculations for very long wrapped lines, correcting scrollbar-text interactions (darley) 2004-06-08 (bug fix)[968725] Fix text rendering problem with canvas text items that have a selected region. (dejong) 2004-06-09 (bug fix) Fix multi-line regexp search bugs in text widget (darley) 2004-06-15 (feature enhancement) Add 3D highlight to disabled *buttons and labels, as is done for disabled menu entries (kovalenko) 2004-06-16 (bug fix)[742882] Fix potential division by zero in gridded wm geometry (english) 2004-06-26 (bug fix)[756840] Fix Tk console cleanup on exit/reinit (mistachkin) 2004-06-30 (new feature)[TIP 153] enhanced 'winfo toplevel' to recognize non-Tk windows (mckay) 2004-07-02 (bug fix) Button 4 and 5 masks synchronized with Tk display (staplin) 2004-07-05 (bug fix)[959973] Set _NET_WM_NAME and _NET_WM_ICON_NAME (freedesktop.org) in addition to WM_NAME and WM_ICON_NAME (ICCCM). Allows Unicode characters in wm titlebar on X11. (english) 2004-07-05 (new feature)[TIP 158][797404] Allow Win apps to distinguish keys on the keypad using the Extended modifier (grossbauer, kenny) 2004-07-20 (feature enhancement)[922727] add install-private-headers target (steffen) 2004-07-27 (bug fix) Fix segfault in case of premature end of GIF image data (steffen) 2004-08-11 (feature)[979101] [tk_getOpenFile] consults env vars (fellows) 2004-08-19 (new feature)[TIP 168] Add -smooth method for alternative bezier curve implementations on canvas items (hellstroem, fellows) 2004-08-29 (new feature)[TIP 165] Add %d binding substitution for user-controlled data field (fellows) 2004-09-10 (new feature)[TIP 169] Allow for text peering with '$text peer' widget subcommand (griffin, darley) 2004-10-08 (new feature)[TIP 205] Use pkgconfig Database to register Xft support (english) 2004-10-11 (new language) Swedish message catalog from Mats Bengtsson 2004-10-19 (new feature)[TIP 204][976928] Virtual events for keyboard traversal (english) 2004-10-24 (new feature)[TIP 177, 179][983886] Add -hide and -stretch options to panedwindow widget (griffin) 2004-10-26 (bug fix)[919066] Improve region handling functions 2004-10-28 (bug fix)[220927] Fix scale labels to stay in window (schlenker, thoyts) 2004-11-07 (bug fix)[962589] Made handling of ^ more consistent in grid (spjuth) 2004-11-28 (bug fix)[942320] Fix short integer overflow in x,y coordinates for long lines using unix AA fonts (english) Updated test suite, documentation, and demos. --- Released 8.5a2, December 7, 2004 --- See ChangeLog for details --- 2004-12-09 (performance)[1081966] BMP, JPG image load speed (fellows) 2004-12-17 (feature change) Modified DisplayFrame to draw a container's background when the embedded window is NULL (chengyemao) 2004-12-17 (bug fix)[842945][831627] Fixed a bug in ContainerEventProc to handle ConfigureNotify event properly; Changed CleanupContainList to TkWinCleanupContainerList to be invoked in TkWinXCleanup; Changed Intialize and CreateTopLevelWindow to create the DeleteWindowsExitProc after TkpInit so that finalization will be done in a proper sequence (to avoid painics and potential crashes in exit). (chengyemao) 2004-12-17 (platform support) Added TkWinClenupContainerList into stublib. (chengyemao) 2004-12-18 (buf fix)[222677] Close the embedded window (of a different process) when its container is destroyed. (chengyemao) 2004-12-19 (Windows feature implementation of embedded/embedding Tk and bug fix) Implemented container identification, focus, raise, set title of and move window so that an embedded widget is able to identify a container, to get focus and to receive key press input. Fixed bugs include [1024364][1096047] and an incorrect wm overrideredirect for an embedded window. (chengyemao) 2004-12-20 (Windows feature implementation of embedded/embedding Tk) Implemented overrideredirect for an embedded toplevel; correctly updated a frame's upper left x and y of an embedded toplevel after its container (of another process) moved. (chengyemao) 2004-12-28 (feature implementatoin of embedded/embedding Tk of Windows) Implemented embedded/embedding toplevel menu. A menu may be embedded in a container of either the same process or a different process. Working fine with Windows 98. But having a problem when invoked with a mouse click (Windows XP): if an embedded menu is in a different process, the menu items may show as a blank window at the pull-down time and require the mouse moves over the menu items to complete display. (chengyemao) 2004-12-29 (platform support)[1092952,1091967] MSVC7, gcc OPT compiles (hobbs) 2005-01-03 (feature implementation of embedded/embedding Tk of Windows) Added a separated window handler for an embedded menu; solved the problem of a blank menu display with a mouse click in XP. (chengyemao) 2005-01-07 (feature implementation of embedded/embedding Tk of Window) Added TK_STATE message (Windows) to support {wm state} for embedded windows; forced redraw of container after the embedded window detached; removed unnecessary panic in using embedded window; embeded toplevel menu of an embedded window automatically in wrapper updating. Modified and added functions: WmStateCmd, UpdateWrapper, TkpWmGetState (added) in tkWinWm.c; TkpUseWindow, TkWinEmbeddedEventProc in tkWinEmbed.c; TkWinChildProc in tkWinX.c. (chengyemao) 2005-01-08 (bug fix)[1098625] Wrong toplevel geometry when created with a menu; [637653] Deleting a popup menu crashes wish (chengyemao) 2005-01-09 (feature implementation of embedded/embedding Tk of Windows) Changed FrameWidgetObjCmd (tkFrame.c), TkpUseWindow (tkMacOSXEmbed.c, tkUnixEmbed.c, tkWinEmbed.c) to make implementation ready for a configurable toplevel -use option and completed the implementation for Windows (tkWinWm.c, tkWinEmbed.c, tkWinInt.h). Embedding with a frame container needs further debugging (chengyemao). 2005-01-10 (enhancement)[1081595] stopped use of TK_DBGX (english) 2005-01-11 (bug fix)[1098779] -pady accept all lists (fellows,kirkham) 2005-01-11 (bug fix)[1093631] [text] scroll long wrapped line (darley) 2005-01-18 (feature implementation of embedded/embedding Tk of Windows) Simplified TkpUseWindow, added Tk_DetachEmbeddedWindow and got rid of code for saving an embedded window object which is never used. Fixed a bug in TkWinHandleMenuEvent for processing WM_MENUSELECT. Wish crashed due to an invalid index in a case of MF_POPUP. The -use option of a toplevel can be configured after the toplevel is created. 2005-01-18 (bug fix) dialog visibility in demos (nash,fellows) 2005-01-28 (platform support)[1021871] Solaris gcc 64-bit support (hobbs) 2005-01-31 (enhancement)[1111213] msg catalog for Spain's Spanish. (poser) 2005-02-03 (bug fix)[1114977] UID thread-safety in canvas (fellows) 2005-02-11 (bug fix)[949792] Fix error during panedwindow destroy (hobbs) 2005-02-11 (bug fix)[1105738] Fix [tk_messageBox -parent $nonToplevel] segfault (hobbs) 2005-02-11 (bug fix)[1119460] Disabled canvas bmap/bbox segfault (hobbs) 2005-02-11 (platform support) Correct gcc builds for AIX-4+, HP-UX-11 (hobbs) 2005-02-14 (bug fix)[443848] [text] elide newline, but not line (darley) 2005-02-16 (new feature)[TIP 223] Windows: [wm attributes -fullscreen] (dejong) 2005-02-22 (bug fix)[1146057] Aqua: [tk_getOpenFile] encoding (steffen) 2005-02-28 (bug fix)[1118340] Fix Mousewheel %A translation (davis,hobbs) 2005-03-09 (bug fix) Mac OS X: remote debugging under Xcode (ingham) 2005-03-10 (bug fix)[1160025] Aqua: offset in mouse coords (davies,ingham) 2005-03-10 (bug fix)[1124237] Aqua: floating window focus (davies,ingham) 2005-03-14 (bug fix)[1162356] ClientMessageHandlers work now (petasis,fellows) 2005-03-14 (bug fix)[1124237] Aqua: (un)map of subwindows (ingham) 2005-03-14 (bug fix)[700305] Aqua: child window updates before creation (ingham) 2005-03-15 (platform support) OpenBSD ports patch (thoyts) 2005-03-15 (bug fix)[1143776] [text] display panic (revar,darley) 2005-03-19 (bug fix)[1016385] allow [rename console] (fellows) 2005-03-23 (enhancment) Aqua: native L&F for entry and spinbox (ingham) 2005-03-23 (new feature) Aqua: [wm attributes -notify] (ingham) 2005-03-29 (platform support) Allow msys builds without cygwin (hobbs) 2005-04-03 (bug fix)[1175092] grid geometry calculations (spjuth) 2005-04-04 (bug fix)[1174269] [text] elide search (darley) 2005-04-04 (bug fix)[1169429] [text] invisible cursor (darley) 2005-04-04 (bug fix)[1083878] \0 char in [tk_getOpenFile -filetypes] (darley) 2005-04-07 (bug fix)[1152809] [wm stackorder] panic; multi-DISPLAY (dejong) 2005-04-14 (bug fix)[1122671] font encoding alignment issue (brubaker,hobbs) 2005-04-18 (bug fix) [text] and bindings (darley) 2005-04-18 (bug fix)[1185640] [text] passed bogus utf-8 to Tk_MeasureChars (petasis,english) 2005-04-25 (platform support) Fix builds on Mac OS X 10.1 (steffen) 2005-05-06 (platform support) Added x86_64 Solaris cc and Solaris 10 build support (hobbs) 2005-05-10 (bug fix)[1191895] [text] hang on (vlasov,darley) 2005-05-14 (enhancement)[1202052] Aqua: CFRunLoop notifier allows [load]able Tk (steffen) 2005-05-15 (bug fix)[1012852] Aqua: check/radiobutton accelerator (kirkham) 2005-05-15 (bug fix)[1202181] Aqua: scrollbar thumb position (kirkham) 2005-05-15 (bug fix)[1202223] Aqua: [text] window -> scroll lock (kirkham) 2005-05-22 (bug fix)[1206133] TkGetFileFilters: add all (dionizio,fellows) 2005-05-24 (platform support) Darwin/Aqua builds merged into unix (steffen) 2005-05-27 (behavior change) tk_popup menus now "sticky" (helfter) 2005-05-28 (new feature)[TIP 245] [tk inactive] (max,fellows) 2005-05-30 (bug fix)[1161543,1010941,795869,690169] panedwindow display/resizing (south) 2005-05-30 (bug fix)[1159367] [menu] creation segfault (schofield,hobbs) Documentation improvements [1087842,1081527,1115907,etc.] --- Released 8.5a3, June 4, 2005 --- See ChangeLog for details --- 2005-06-23 (bug fix)[1176610] Aqua: default [entry] borderwidth (steffen) 2005-07-18 (bug fix)[1240221] [$text mark prev] crash (darley) 2005-07-22 (platform support) msys build now requires msys_mingw7.zip (dejong) 2005-08-09 (Aqua enhancement) Carbon events (steffen) 2005-08-10 (bug fix)[1252702] portable Tcl_GetStringFromObj() calls (fellows) 2005-08-12 (bug fix)[749908] per-thread Tk_ConfigSpec tables (fellows) 2005-08-23 (enhancement)[1244153] use SC_PROG_TCLSH, SC_BUILD_TCLSH (dejong) 2005-08-23 (bug fix)[1235544] adopt Tcl's SEH implementation (kenny,dejong) 2005-08-23 (Aqua bug fix) dialogs ignore -initial* options (hobbs) 2005-10-04 (bug fix)[1216775] [tk_dialog] failing [grab] (fontana,hobbs) 2005-10-04 (bug fix)[1309218] [tk_chooseDirectory -mustexist] (lemburg,hobbs) 2005-10-04 (bug fix)[1311734] Fixed the problems that an embedded windows failed to respond to display changes (Windows platform) (chengyemao) 2005-10-10 (new feature)[TIP 256] [$text config -tabstyle] (darley) 2005-10-10 (bug fix)[1319720] Tk_DeleteOptionTable() mem leak (melbardis) 2005-10-12 (new feature) one directory test suite (starpackable) (zolli,fellows) 2005-10-18 (bug fix)[1328926] $argv encoding and list formatting (porter) 2005-11-06 (platform support) OpenBSD missing LIBS (thoyts) 2005-11-10 (bug fix)[1353022] minor potential memleaks (fellows) 2005-11-22 (bug fix)[1353414] [selection get] compat w/OpenOffice.org (fellows) 2005-11-14 (feature change) [bgerror] msg truncation at 45 chars (english) 2005-11-15 (new feature)[TIP 231] [wm attributes] on X11 (english) 2005-11-22 (bug fix)[1335485] dialog and space in widget name (taylor,fellows) 2005-11-27 (platform support) Darwin 64bit, Tiger copyfile(), and Max OSX universal binaries support (steffen) 2005-11-29 (bug fix)[1252259] clear initial % from console (lawlor,hobbs) 2005-11-30 (bug fix)[1086049] [wm attributes -topmost] fix (courtney,hobbs) 2005-12-08 (enhancement)[1369597] Win 64: --enable-64bit=amd64|ia64 (hobbs) 2005-12-08 (bug fix)[1374935] [$text tag names] crash with peer (hobbs) 2005-12-12 (bug fix)[1377619] configure syntax error exposed in bash-3.1 (hobbs) 2005-12-13 (Aqua) MouseWheel bindings; kEventMouseScroll events (steffen) 2005-12-28 (bug fix)[1380427] text widget undo/redo crash (callewaert) 2006-01-12 (new feature)[TIP 260] canvas text item -underline option (fellows) 2006-01-20 (bug fix)[905830] all events to XFilterEvent (SCIM compat) (english) 2006-01-25 (feature enhance)[1237759] update script lib to 8.4 (fradin,porter) 2006-01-25 (feature enhance)[1409264] I10N of [bgerror] dialog (fellows) 2006-02-27 (bug fix)[480862] [$img configure -data] no display change (fellows) 2006-02-27 (bug fix)[470322] BitmapInit() thread safety (griffin,fellows) 2006-03-02 (Aqua bug fix) image endian issue on OS X/x86 (hobbs) 2006-03-15 (bug fix)[1409140] speed up photo image updates (fellows) 2006-03-16 (enhancement)[1405069] added Portuguese l10n. (ricardoj,silasj) 2006-03-17 (bug fix)[1451587] no abbreviations in script library (thoyts) 2006-03-21 (enhancement)[638966] Aqua: ATSUI text render (reifenstahl,steffen) 2006-03-23 (platform support) new tk.spec file (max) 2006-03-26 (bug fix)[1414171] crash in [$text dump -command] (macdonald,darley) 2006-03-27 (bug fix)[1458234] crash in animated GIFs (bron,fellows) 2006-03-29 (platform support)[917433] tolerate X servers that do not accept the color names "Black" and "White" (porter) 2006-04-06 (bug fix)[1455241] Aqua: [wm attributes -titlepath] fix (steffen) 2006-04-07 (bug fix)[934524] Aqua: background window dragging/growing (steffen) 2006-04-09 (bug fix)[1467004] Aqua: [wm resizable] fix (steffen) 2006-04-09 (bug fix)[1450800] Aqua: allow empty toplevel names (steffen) 2006-04-11 (bug fix)[1073456] Aqua: implement toplevel zoom (steffen) 2006-04-11 (bug fix)[700316] Aqua: enable 'Preferences' app menu item (steffen) 2006-04-11 (bug fix)[1193614] Aqua: tk_messageBox escape key binding (steffen) 2006-04-11 (enhancement)[1105284] Aqua: call ::tk::mac::* procs for all registered applevents (steffen) 2006-04-12 (bug fix)[1432666] grid row/col out of bounds crash (spjuth) 2006-04-25 (bug fix)[1475865] crash on invalid font name (fellows) Documentation improvements [1224983,1247835,1151523,1357575,1083838] --- Released 8.5a4, April 27, 2006 --- See ChangeLog for details --- 2006-04-28 (bug fix)[1243318] Aqua: incorrect cursor pos in bindings (steffen) 2006-04-28 (bug fix)[1476443] Aqua: incorrect toplevel pos on 1st map (steffen) 2006-05-12 (performance)[1409140] restore perf lost in 2006-03-15 change (hobbs) 2006-05-13 (bug fix)[1481503] Aqua: key shortcut for 'Preferences' (steffen) 2006-05-13 (bug fix)[1155596] Aqua: images with alpha on native btns (steffen) 2006-05-13 (bug fix)[1480105] Aqua: Map/Unmap propagation to children (steffen) 2006-05-13 (bug fix)[940117] Unmap canvas window items on canvas Unmap (steffen) 2006-05-16 (bug fix)[1472624] Aqua: balloon help don't steal focus (steffen) 2006-05-29 (bug fix)[706446] Aqua: active [button] highlight (hobbs) 2006-05-29 (bug fix)[1424513] [listbox] crash with namespace var (hobbs) 2006-06-01 (bug fix)[912571] [console] std chan refcount (mistachkin,hobbs) 2006-06-14 (bug fix)[950121] Aqua: crash in draw of very wide images (steffen) 2006-06-14 (bug fix)[1501922] Aqua: invalid clip regions on redraw (steffen) 2006-06-14 (bug fix)[891141] excess variable writes by [scale] (porter) 2006-07-20 (platform support) Mac OS X weak linking (steffen) 2006-07-21 (bug fix)[700311, 1525905] Aqua: pure modifier keysyms (steffen) 2006-07-24 (bug fix)[1358663] Aqua: [wm geometry -x-y] (steffen) 2006-07-25 (bug fix)[1516950] Aqua: cmd-Q app menu key shortcut (steffen) 2006-08-18 (bug fix)[1542205] Aqua: toplevel toolbar button crash (steffen) 2006-08-21 (bug fix) Aqua: recursively called event loop (steffen) 2006-08-24 (bug fix) Aqua: window grow icon obscuring scrollbar (steffen) 2006-08-30 (new feature)[1518677] WM_UNICHAR window message (hobbs,petasis) 2006-09-10 (bug fix) Aqua: active/inactive text selection color&relief (steffen) 2006-09-10 (bug fix)[1472624] Aqua: mouse events in overrideredir wins (steffen) 2006-09-11 (bug fix) Aqua: app menu shortcuts with custom .apple menu (steffen) 2006-09-22 (bug fix)[1562528] NULL terminates variadic calls (fellows,ryazanov) 2006-09-22 (new feature)[TIP 268] [package provide] full patchlevel (kupries) 2006-10-05 (bug fix)[1122671] alignment fixes in ucs-2be encoding routines (hobbs,staplin) 2006-10-08 (new feature)[TIP 264] New public routine Tk_Interp() (thoyts) 2006-10-16 (bug fix)[1558051] Aqua: CG drawing matches X11 (steffen) --- Released 8.5a5, October 20, 2006 --- See ChangeLog for details --- 2006-10-30 (new feature)[TIP 48] Addition of themed tk widgets to Tk as Ttk (themed Tk). Adds ttk::notebook, ttk::sizegrip, ttk::combobox, ttk::panedwindow, ttk::progressbar, ttk::menubutton, ttk::button, ttk::radiobutton, ttk::checkbutton, ttk::treeview, ttk::separator, ttk::scrollbar, ttk::entry, ttk::frame and ttk::labelframe widgets. Adds ttk::style command. 2006-11-02 (enhancement) Improve OS X Carbon Update event handling (steffen) 2006-11-07 (configure change) Unix --enable-xft is enabled by default (kenny) 2006-11-23 (bug fix)[1599877] Fix unicode character underline in menus (hobbs) 2006-11-24 (bug fix)[1487701] Better handling of tcl_interactive on OS X to control display of console (hobbs, steffen) 2006-11-26 (platform support)[1230558] --enable-64bit on more systems (steffen) 2006-11-30 (bug fix) Fix handling of Escape binding on OS X dialogs (steffen) 2006-12-01 (new feature) Add -transparentcolor wm attribute on Windows (hobbs) 2006-12-01 (new feature)[TIP 300] Added [font actual $font $char] (kenny) 2006-12-04 (new feature)[TIP 286] Added [$menu xposition] subcommand (bron) 2006-12-11 (enhancement) Improved EWMH support for _NET_WM_PID and _NET_WM_PING (fellows) 2007-01-25 (configure change) ensure CPPFLAGS env var used when set (steffen) 2007-02-19 (configure change) Use SHLIB_SUFFIX=".so" on HP-UX IA64 (was ".sl") (hobbs) 2007-04-10 (platform support) Correctly handle theming on Vista/Aero (english) 2007-04-23 (enhancement) Allow empty value for -selectforeground opt (steffen) 2007-04-23 (platform support) Aqua: remove Tk-internal double buffering that is wasteful on Aqua; allows direct-to-window CoreGraphics drawing (e.g. adding support for colors with alpha) (steffen) 2007-04-23 (platform support) Aqua: add all OS theme colors/brushes (patterns) as system colors (steffen) 2007-04-23 (platform support) Aqua: tk_dialog & bgerror use OS theme (steffen) 2007-04-23 (platform support) Aqua: add 'none' & missing theme cursors (steffen) 2007-04-23 (platform support) Aqua: [tk_getOpenFile -parent] et al use sheet dialog (steffen) 2007-04-23 (bug fix) Aqua: fix custom MDEF and tearoff menu display (steffen) 2007-04-23 (bug fix)[1620826] Aqua: fix <> support (steffen) 2007-04-23 (platform support) Aqua: add support for live window resizing and asynchronous window dragging; prevent window from becoming inacessible offscreen or under Dock after dragging; use transparent grow box (steffen) 2007-04-23 (platform support) Aqua: improve event processing during nested event loops (e.g. modal dialogs, menu tracking, window resizing etc) (steffen) 2007-04-23 (bug fix) Aqua: add support for all possible aqua scrollbar arrow positions, scrollbar variants and for "jump to here" scrollbar behaviour; correct scroll view size computation; enforce minimal scrollbar height (steffen) 2007-04-23 (platform support) Aqua: add [wm attributes] -topmost, -fullscreen and -transparent (fully transparent win via -bg "systemTransparent") (steffen) 2007-04-23 (platform support) Aqua: determine win min/max sizes dynamically; correct size handling of gridded windows; improve computation of initial window bounds; correct window size handling on multi-headed systems (steffen) 2007-04-23 (platform support) Aqua: correct composite attribute handling in [tk::unsupported::MacWindowStyle] and add new attributes; allow changing window class of already existing windows (steffen) 2007-04-23 (platform support) Aqua: add tcl document extensions and mime type to Wish.app's Info.plist (steffen) --- Released 8.5a6, April 25, 2007 --- See ChangeLog for details --- 2007-05-04 (new feature)[TIP 145] Enhanced font handling (thoyts) 2007-05-14 (bug fix)[1712081] restored USE_OLD_IMAGE support (porter) 2007-05-15 (bug fix)[1717830,800149] memory leaks (jenglish) 2007-05-15 (bug fix)[1677608] [grid *configure] crash (porter) 2007-05-31 (platform support) Aqua: improve interaction of Expose events and idle-time redraws (steffen) 2007-05-31 (bug fix) Aqua: gridded window max-size calculation (steffen) 2007-06-02 (bug fix)[1731734] Aqua: menu cascades outside menubar (steffen) 2007-06-06 (platform support) Aqua: enable MouseWheel events in background windows (steffen) 2007-06-09 (bug fix)[1724223] Unicode menu entry crash (hobbs) 2007-06-09 (bug fix)[1467997] Blue/red reversal in icons (hobbs,janssen) 2007-06-23 (bug fix) Aqua: nav dialog sheet crash (steffen) 2007-06-29 (platform support) Aqua: remove private internal declarations from installed tkMacOSXInt.h header (steffen) 2007-06-29 (bug fix) Aqua: scrollbar thumb size calculation (steffen) 2007-07-09 (bug fix) Aqua: app-is-frontmost detection (steffen) 2007-07-09 (bug fix) Aqua: window click activation & titlebar click handling in presence of grabs or modal windows (steffen) 2007-07-25 (bug fix)[1743786] Aqua: [tk_getOpenFile] result (steffen) 2007-08-01 (bug fix)[1692927] [tk_messageBox -detail] buffer (davies,thoyts) 2007-08-27 (bug fix)[1782105] Aqua: tk_chooseColor result (steffen) 2007-09-06 (platform support) Aqua: drop support for Xcode 1.5 project, add project for Xcode 3.0 (steffen) 2007-09-11 (bug fix) Animated GIF buffer overrun (max) 2007-09-15 (platform support) SunOS-5.1x link with cc, not ld (steffen) 2007-09-17 (enhancement)[1780286] Aqua: combobox appearance (english) 2007-09-17 (platform support)[1748251] Fix NetBSD link failures (english) 2007-09-20 (bug fix)[1791052] [text] DLine layout crash (khomoutov,fellows) --- Released 8.5b1, September 26, 2007 --- See ChangeLog for details --- 2007-09-26 (enhancement)[1800742] msg catalog for Hungarian. (reszo) 2007-10-11 (bug fix)[1810818] Aqua: [wm resizeable] (steffen) 2007-10-12 (platform support) Aqua: replace RgnHandles by HIShapeRefs (steffen) *** POTENTIAL INCOMPATIBILITY for C code acessing MacDrawable Rgns *** 2007-10-15 (platform support) Mac OS X: 64-bit X11 support (steffen) 2007-10-15 (new feature)[TIP 125][998125] dockable frame support (hobbs) 2007-10-22 (bug fix)[1814778,1780286,1609168,1349586] combobox overhaul(english) 2007-10-22 (platform support) Aqua: TIP 145 and Aqua Theme fonts (steffen) 2007-10-23 (bug fix)[1818441] combobox & reparentable frames (hobbs) 2007-10-24 (bug fix)[1723362] Win: transparent bitmaps (mcdonald,thoyts) 2007-10-25 (bug fix)[1818491] crash in [place] manager (mcdonald) 2007-10-25 (new feature)[TIP 242][1156388] file dialog filter (hobbs) 2007-10-25 (bug fix)[1817596] ttk::notebook (english) 2007-10-26 (bug fix)[1816252] Aqua: [wm transient] (steffen) Improvements to demo suite to make more use of Tk 8.5 features (fellows,steffen) --- Released 8.5b2, October 26, 2007 --- See ChangeLog for details --- 2007-10-29 (appearance change) Default look and fonts on X11 (hobbs) *** POTENTIAL INCOMPATIBILITY; [::tk::classic::restore] to undo *** 2007-10-30 (bug fix)[1803723] Win: Arabic and Hebrew rendering (fellows) 2007-10-30 (bug fix)[1550528] [tk_chooseDirectory -mustexist true] disables the "OK" until valid selection (hobbs) 2007-11-03 (new feature) adjustable [console] fonts (thoyts) 2007-11-04 (enhancement) Aqua: "Run Widget Demo" menu item (steffen) 2007-11-09 (bug fix) Aqua: activate event after window expansion (steffen) 2007-11-09 (bug fix)[1824521] Aqua: menubutton crash with -bitmap (steffen) 2007-11-09 (platform support) Aqua: (menu)button pressed/inactive/disabled look&feel; menubutton size with -image/-bitmap (steffen) 2007-11-09 (bug fix) Aqua: [tk_getOpenFile] (et al.) and help menu crashes on Mac OS X Leopard (steffen) 2007-11-11 (bug fix)[1824638] Aqua: small max-width text measuring (riefenstahl) 2007-11-14 (bug fix)[1831803] sv.msg catalog for "sv" locale (fellows) Many significant improvements to the documentation and demos (fellows, hobbs, steffen, kupries) --- Released 8.5b3, Novemeber 19, 2007 --- See ChangeLog for details --- 2007-11-25 (bug fix)[1343984] ttk::notebook bugs (english,boudaillier) 2007-11-26 (bug fix)[1822391] [photo put] segfault w/ PPM data (kenny) 2007-11-26 (bug fix)[1822076] [tk_saveFile] and path w/spaces (bauer,kenny) 2007-12-04 (new feature)[1844143] Danish message catalog (berg) 2007-12-11 (bug fix)[1602537] crash in [$text replace] (goth,porter,fellows) 2007-12-12 (bug fix)[1845899] Aqua: [wm transient] (steffen) 2007-12-12 (bug fix)[1809538,1799782,1737288] fixes for the <> virtual event on [text] widgets (hobbs) 2007-12-13 (bug fix) correctly trace menubutton -textvariable for -compound use (hobbs) Several documentation and release notes improvements --- Released 8.5.0, December 18, 2007 --- See ChangeLog for details --- 2007-12-30 (bug fix)[1860802] fixed Dutch message catalog (markus,fellows) 2008-01-06 (bug fix)[1442006,1821939,18862692] MouseWheel for treeview (english) 2008-01-08 (bug fix)[1865898,1679067] button size & state (english) 2008-01-08 (bug fix)[1867122] [labelframe -style] crash (english,rib) 2008-01-27 (bug fix)[1835848] size value returned by [font actual] (english) 2008-01-27 (bug fix)[1878298] [notebook] redraws on tab visibility (english) 2008-01-31 (bug fix)[1881892] messagebox default title (hobbs) 2008-02-01 (bug fix)[CVE-2008-0553] buffer overflow in GIF format (max) --- Released 8.5.1, February 5, 2008 --- See ChangeLog for details --- 2008-02-27 (bug fix)[1863346] Aqua: memleak in QD drawing (steffen) 2008-02-29 (enhancement) Knight's tour demo (thoyts) 2008-03-12 (bug fix)[1090382] crash when GetFont() fails (jenglish) 2008-03-13 (enhancement) support space in INSTALL_ROOT or $builddir (steffen) 2008-03-21 (bug fix)[1863007,1920030] Export Ttk stubs table (english) 2008-03-26 (bug fix)[1922466] crash in [. configure -cursor] (gavilán) 2008-03-27 (platform support)[1921166] Solaris 64bit build fixes (steffen) 2008-03-27 (bug fix) restored [::safe::loadTk] (hobbs) --- Released 8.5.2, March 28, 2008 --- See ChangeLog for details --- 2008-04-01 (interface)[1819422] tkStubsPtr no longer in libtk (porter) *** POTENTIAL INCOMPATIBILITY *** 2008-04-02 (interface)[1819422] libtkstub symbols MODULE_SCOPE (steffen) 2008-04-07 (bug fix)[1937135] Tk_ParseArgv() double free crash (hobbs) 2008-04-07 (bug fix)[1936238] wish -h mem explosion (bachmann,kenny) 2008-04-08 (new feature) Win: visual-styles API element engine (thoyts) 2008-04-09 (enhancement) real LZW compression in GIF writer (nijtmans) 2008-04-14 (bug fix)[1941740] [tk_chooseColor -title] (thoyts) 2008-04-16 (interface)[1938497] make stubs tables 'static const' (steffen) 2008-04-17 (bug fix)[1327482] canvas item events (wangnick) 2008-05-23 (bug fix)[1967576] ttk::label height or width 0 panic (lawlor) 2008-06-10 (enhancement)[1986818] Use Xutf8LookupString when possible (english) 2008-06-12 (bug fix)[1991932] global grab segfault (steffen) 2008-06-12 (platform support) Solaris/amd64 gcc 64bit support (steffen) 2008-06-13 (new feature)[TIP 285] [tkwait] and [update] are now [interp cancel]able (mistachkin) 2008-06-18 (bug fix) Aqua: missing focus on first map (steffen) --- Released 8.6a1, June 25, 2008 --- See ChangeLog for details --- 2008-07-04 (bug fix)[2009213] crash in [ttk::scale] (polo,english) 2008-07-24 (bug fix)[2021443] consistent "wrong # args" messages (nijtmans) 2008-07-26 (bug fix)[2026405] portability of [winfo id] (uchida,thoyts) 2008-07-31 (bug fix) export Tk_PkgInitStubsCheck; fixes Tk embed on Windows 2008-08-01 (bug fix)[2009788,2028703] unmapped toplevel crashes (thoyts) 2008-08-05 (bug fix)[2010422] Tk header files revised to accommodate incompatible changes in recent X.org releases of X11 headers. (jenglish) 2008-08-19 (bug fix) revised number format in -[xy]scrollcommand callbacks and [xy]view methods (jenglish) *** POTENTIAL INCOMPATIBILITY *** 2008-08-19 (enhancement) removed obsolete XID management code (staplin) Test suite modernization by Ania Pawelczyk. --- Released 8.6a2, August 25, 2008 --- See ChangeLog for details --- 2008-08-25 (bug fix)[1936220] fix [tk_getOpenFile -multiple 1] on unix (helfter) 2008-08-25 (bug fix)[1023955] default menu cursor: no more Motif (helfter) 2008-08-28 (bug fix) correct TK_LIBS value to include Xft (porter) 2008-09-03 (support) Dropped support for pre-ANSI compilers. (porter) 2008-10-01 (new feature)[TIP 236] [$canvas moveto] (mckay,fellows) 2008-10-05 (bug fix)[2112563] format double values explicitly in double format, avoiding sensitivity to locale setting. (fellows) *** POTENTIAL INCOMPATIBILITY *** --- Released 8.6a3, October 10, 2008 --- See ChangeLog for details --- 2008-10-17 (enhancement) keyboard bindings for ttk::scale (thoyts) 2008-10-18 (bug fix)[1825353] Russian Windows tiny fonts problem (thoyts) 2008-10-18 (new feature)[TIP 321] [tk busy] (decoster,fellows) 2008-10-28 (bug fix)[1534835,2054562] use of more correct cursors (english) 2008-11-01 (new feature) New [ttk::spinbox] widget (thoyts) 2008-11-01 (new feature)[TIP 97] [$canvas imove] [$canvas rchars] (fellows) 2008-11-09 (bug fix)[2207435] [ttk::entry .t -textvar ::noexist::x] (english) 2008-11-11 (bug fix)[2312027] Tk_Create*ImageType() thread safety (nijtmans) 2008-11-11 (bug fix)[2264732] crash using nondefault visual (english) 2008-11-12 (bug fix)[1777362] permit [text] names containing "-" (thoyts) 2008-11-14 (bug fix)[2239034] limit [wm manage] to Frames (thoyts) 2008-11-22 (new feature)[TIP 119] -angle option for canvas text items (fellows) 2008-11-22 (bug fix)[1939129,1991930] combobox behind other windows (thoyts) 2008-11-22 (new feature) Demo ctext.tcl now demos angled text (fellows) 2008-11-23 (bug fix)[1389270] made [event generate ] work (thoyts) 2008-11-28 (bug fix)[1813597,2218964] eliminate unnecessary units conversion in screen distances, reducing precision loss (ferrieux) 2008-12-03 (enhancement) new "hover" state for proper Vista visuals (thoyts) 2008-12-05 (bug fix)[2107938] no negative font size in PS (fellows) 2008-12-05 (enhancement) new "vista" theme (thoyts) 2008-12-06 (new feature)[TIP 197] [$text -insertunfocussed] (edwards,fellows) 2008-12-06 (new feature)[TIP 337] handle non-error bg exceptions (porter) 2008-12-10 (new feature)[TIP 324] [tk fontchooser](thoyts,vetter,robert,steffen) 2008-12-12 (new feature) Demo fontchoose.tcl demos [tk fontchooser] (thoyts) 2008-12-18 (enhancement)[24442309] Updated German messages (haertel) --- Released 8.6b1, December 19, 2008 --- See ChangeLog for details --- 2008-12-27 (bug fix)[2381555] horiz. scroll [$treeview identify] (english) 2008-12-28 (new feature)[TIP 244] PNG photo format support (fellows) 2008-12-28 (new feature)[TIP 171] event handling (fellows) *** POTENTIAL INCOMPATIBILITY *** 2008-12-31 (bug fix)[2003310] radio|check button indicator color (english) 2009-01-06 (bug fix)[2484771] messagebox: system to task modal (ferrieux,thoyts,mjanssen) 2009-01-06 (enhancement)[1539990] optimize photo building (jepler) 2009-01-07 (bug fix)[2473120] chooseDir syntax error (bron) 2009-01-07 (bug fix)[1847002] Win: prevent grab bypass (thoyts) 2009-01-11 (bug fix)[2496162] crash calling Tk_DeleteOptionTable() (english) 2009-01-11 (bug fix) crash on XCreateIC failure (staplin) 2009-01-14 (bug fix)[2507326] Restore aMSN compat (nijtmans) 2009-01-19 (new feature) CONFIG_INSTALL_DIR - where tkConfig.sh goes (cassoff) 2009-01-19 (platform support) better tools for BSD ports (cassoff) 2009-02-08 (bug fix)[2431428] panic computing layout on active widget (english) 2009-02-17 (platform support) MSVC and _WIN64 (hobbs) 2009-02-21 (bug fix)[2546087] [console] display of true UTF-8 \0 (thoyts) 2009-02-23 (bug fix)[1329198,456299,2507419] menu image display (mcdonald) 2009-02-23 (bug fix)[2513104] fix cursor hotspots (mcdonald) 2009-02-23 (bug fix)[2542828] Win: standard question_arrow cursor (danckaert) 2009-02-27 (bug fix)[2645457] crash in Tk_MakeWindowExist() (thoyts) 2009-03-09 (bug fix)[2548661] crash in GetFontFamilyName (riefenstahl) 2009-03-25 (bug fix)[2178820] stop zero-size allocs in ttk (fellows) 2009-03-25 (bug fix)[1871101] blurry large fonts on Vista (garvey,fellows) 2009-04-03 (bug fix)[1789819] stop panic on unexpected wm stack order (english) 2009-04-10 (bug fix)[2116837] std virtual events with Caps Lock (fellows) 2009-04-10 (platform) sse Darwin SUSv3 extensions if available (steffen) 2009-04-10 (bug fix) Motif checkbutton on X11 only (steffen) 2009-04-10 (bug fix) remove TkAqua Quit menu item on [console] (steffen) 2009-04-10 (bug fix) crash deleting char range from [text] (steffen) 2009-04-23 (bug fix)[2779910] updated Win chooseDir (hobbs) 2009-04-24 (bug fix) prevent delete of selected folder in Win dialog (hobbs) 2009-04-30 (bug fix)[2080533] panedwindow sash draw crash (fellows) 2009-04-30 (bug fix)[2504402] iconphoto on non-32-bit displays (mcdonald,thoyts) 2009-05-01 (bug fix)[2777019] anchor for text rotation (gavilán,fellows) 2009-05-03 (bug fix)[2785744] broken flag twiddling (baker,fellows) 2009-05-13 (bug fix)[2791352] XLFD parsing error (thoyts) 2009-05-14 (new feature) Vista theme support (thoyts) 2009-05-14 (bug fix)[1923684] confused checkbutton state (thoyts) 2009-05-17 (new feature)[1470246] notebook tab orientation control (english) 2009-05-21 (bug fix)[2794778] Win menu keyboard traversal (thoyts) 2009-06-02 (bug fix)[2799589] crash on delayed window activation (thoyts) 2009-06-23 (bug fix)[220935] canvas dash update problem (nijtmans) 2009-06-23 (platform) new subdir 'carbon' preserved for OSX 10.4- use --enable-aqua=carbon option to unix/configure to enable (steffen) 2009-06-29 (new feature) source in `macosx` now built on Cocoa (steffen) *** POTENTIAL INCOMPATIBILITY *** 2009-06-30 (platform support) clang static analyzer macros (steffen) 2009-07-15 (bug fix)[2821962] photo image copy/paste (rib,fellows) 2009-07-21 (bug fix)[2356057] rotated underlined text (fellows) 2009-07-22 (bug fix)[2496114] focus in dead window crash (griffin,fellows) 2009-07-23 (bug fix)[2441988] report errors in selection handlers (fellows) *** POTENTIAL INCOMPATIBILITY *** 2009-08-01 (bug fix)[2830420] X iconphoto for big endian (misch,fellows) 2009-08-04 (bug fix) [text] word-wrap of non-breaking space (fellows) 2009-08-14 (bug fix) copy from unmapped toplevel crash (alaoui,steffen) 2009-08-19 (bug fix)[2475855] prevent grid & pack on same master (spjuth) 2009-08-24 (bug fix)[2821084] Cocoa: let WM_DELETE_WINDOW handler stop window deletion (walzer,steffen) 2009-08-24 (bug fix) tk::MessageBox bindings for ttk::buttons (steiner,fellows) 2009-08-25 (bug fix)[1909931] [send] update for Fedora 8 (fellows) 2009-09-10 (bug fix) font allocation crash (berezhnoy,fellows) 2009-09-14 (bug fix)[873608] win tearoff menu, no submenu arrows (traum,hobbs) 2009-09-14 (bug fix)[873613] win tearoff menu repeat select (traum,hobbs) 2009-09-25 (bug fix) grayscale from images (vetter,fellows) 2009-10-07 (bug fix)[2088597] min scrollbar slider size (danckaert,fellows) 2009-10-07 (bug fix)[2787164] combobox/menubutton arrow size (thoyts) 2009-10-08 (bug fix)[2870648] file dialog cursor (danckaert,fellows) 2009-10-10 (feature)[1961455] underline, overstrike Xft fonts (caffin,fellows) 2009-10-20 (enhancement) Updates to Polish messages (pawlak) 2009-10-22 (bug fix)[2168768] file dialog -typevariable scope (danckaert) 2009-10-22 (bug fix)[1469210] [text] modified error (danckaert) 2009-10-22 (bug fix)[2883712] 64-bit Aqua progress bar (haffner) 2009-10-24 (bug fix)[1530276] X checkbutton -selectcolor (danckaert) 2009-10-25 (bug fix)[1854913] [.t delete] before -startindex (danckaert) 2009-10-25 (bug fix)[2809525] prevent X crash on overlong color name (goth) 2009-10-29 (bug fix)[1825353] Russian Windows tiny fonts problem (thoyts) 2009-11-01 (new feature) Ttk: [$w identify] now an ensemble (jenglish) 2009-11-19 (bug fix)[2899685] fix [imove] redraw logic (schekin,ferrieux) 2009-11-22 (bug fix)[2899949] crash on widget destroy (meier,thoyts) 2009-11-23 (bug fix)[2902573] Update Safe Tk to new Safe Base (kurpies) 2009-11-24 (bug fix)[2902814] fix [wm iconphoto] on LP64 systems (fellows) 2009-12-08 (bug fix)[2864685] Compiz menu item animation (gavilán,thoyts) 2009-12-11 (bug fix)[2912473] accept :: in DISPLAY name (fellows) 2009-12-15 (bug fix)[2492179] Tcl_ObjType "option" no longer registered (porter) *** POTENTIAL INCOMPATIBILITY for Tcl_GetObjType("option") *** 2009-12-20 (bug fix)[2917663] [send] accept SI:* on auth list (fellows) 2009-12-22 (bug fix)[2912356] [ttk::sizegrip] accommodate Compiz (english) 2009-12-25 (bug fix)[2977688,2546779] tab selection focus (english) 2009-12-27 (bug fix)[2879927] Win: cascade menu highlight (pawlak,thoyts) 2010-01-01 (bug fix)[1924761] stop [event generate] / XIM conflict (fellows) 2010-01-03 (bug fix)[2848897] ODS_NOACCEL flag support (kovalenko,thoyts) 2010-01-04 (bug fix)[2811266] binding in [tk_dialog] (thoyts) 2010-01-04 (bug fix)[2727476] font dialog appearance (thoyts) 2010-01-05 (bug fix)[220950] [$menu delete] bounds check (fellows) 2010-01-05 [2898255] unlimited multi-file select (pawlak,fellows,thoyts) 2010-01-06 (bug fix)[1163496] X: [wm transient] fix (bateman,fellows) 2010-01-09 (new feature)[TIP 360] Modernize X11 Menus (thoyts) 2010-01-18 (bug fix)[2932808] canvas update on state change (mcdonald,nijtmans) 2010-01-19 (new feature)[TIP 359] Extended Window Manager Hint Support (thoyts) 2010-01-19 (bug fix)[2931374] overflow in complex tag search (schmitz) 2010-02-17 (bug fix)[2952745] crash in menu deletion (english) 2010-02-20 (performance) treeview stop quadratic common case (english) 2010-03-02 (enhancement) -fvisibility-hidden build support (nijtmans) 2010-03-06 (bug fix)[2949774] cascade menu unpost (thoyts) 2010-03-11 (bug fix)[2968379] crash in peer text dump (fellows) 2010-03-17 (bug fix)[2971663] Cocoa entry , (goddard,fellows) 2010-03-28 (new feature) [$treeview tag names|add|remove] (english) 2010-04-09 (new feature)[2983824] [$image write -file] use extension of file name to select image format (fellows) 2010-04-19 [2898255] unlimited multi-file select (pawlak,fellows,thoyts) 2010-05-31 (bug fix)[3006842] crash on empty bind scripts (english) 2010-06-15 (bug fix)[2585265] text , note selection (fellows) 2010-06-15 (new package)[3016598] Tk now provides "tile 0.8.6" (english) 2010-07-19 (new feature) [$photo data -format GIF] (fellows) 2010-08-03 (bug fix) entry validation compat with Itcl scope (hobbs) 2010-08-11 (platform) Drop pre-aix 4.2 support, ldAix (hobbs) 2010-08-21 (patch)[3034251] genStubs steal features of ttkGenStubs (nijtmans) 2010-08-26 (bug fix)[1230554] configure, OSF-1 problems, windows manifest issues (hobbs) 2010-08-31 fixed manifest handling on windows (hobbs, kupries) 2010-09-02 (bug fix)[3057573] specify combobox text fg color (english) 2010-09-05 (enhancement)[3046742,3046750] Improved error dialog UI (fellows) 2010-09-08 (bug fix)[2829363] [$tv see] open item -> sched display (english) 2010-09-13 (platform) limit support to Win2000+ (nijtmans) 2010-10-01 (bug fix)[3078902] no hang operating on zero-size subimages (fellows) 2010-10-05 (bug fix)[3080953] corrupt multibyte char in %A subst (nijtmans) 2010-10-11 (bug fix)[3085489] crash in [tag add/remove] (english) 2010-10-11 (enhancement)[491789] Unicode command line support on Win (nijtmans) 2010-11-03 windows build with -UNICODE (nijtmans) 2010-11-05 Message catalogs reworked to use unicode copyright char (nijtmans) 2010-11-06 Message catalogs resorted, updates to NL (nijtmans) 2010-11-16 (platform) VS 2005 SP1 MSVC compiler (nijtmans) 2010-11-24 (bug fix)[3071836] crash in tk_getSaveFile (twylite) 2010-12-03 (enhancement)[3116490] mingw x-compile improvements (nijtmans) 2010-12-12 (platform) OpenBSD build improvements (cassoff) 2010-12-17 (platform) Revisions to support rpm 4.4.2 (cassoff) 2011-01-06 (bug fix)[2857300] Cocoa: correct text width rounding (walzer) 2011-01-06 (bug fix)[3086887] Cocoa: textured bg windows (walzer) 2011-01-13 (bug fix)[3154705] tk_messageBox close button disabled (skylera) 2011-01-22 (enhancement) add [ttk::entry validate] (schelte,english) 2011-01-24 (bug fix)[2907388] OSX: composite character entry crash (berg,walzer) 2011-03-02 (new doc) tk_mac.n: OS X specific functions (walzer) 2011-03-03 (bug fix)[3175610] incomplete line item refresh (ferrieux) 2011-03-10 (bug fix)[3205260] crash in [wm manage] (boudaillier, thoyts) 2011-03-16 (bug fix)[3181181] tearoff submenu fix (menez, thoyts) 2011-03-19 (bug fix)[3205464] [wm forget] loses window (boudaillier,thoyts) 2011-03-19 (bug fix)[3223850] ttk button state disabled during click (thoyts) 2011-03-22 (bug fix)[3000002] ttk scrollbar size Appearance (garvey,thoyts) 2011-03-24 (bug fix)[3239768] Win menu font support (wehle) 2011-03-28 (bug fix)[3129527] stop buffer overflows (dirtyepic,nijtmans) 2011-04-04 (feature change)[2997657] No -container for [labelframe] (spjuth) 2011-04-04 (bug fix)[723765] [grid remove] lost -in value (saye,spjuth) 2011-04-22 (bug fix)[3291543] mem corrupt when [$canvas dchars] removes all coords of a polygon (rogers,spjuth) 2011-04-29 (platform support) [wm forget|manage] on OS X (walzer) 2011-06-06 (bug fix)[2546087] [console] treatment of '\0' (porter) 2011-06-07 (bug fix)[2358545] Restore "08" in spinbox configured with -from and -to (porter) 2011-06-10 (bug fix)[3315731] fix [$entry -invcmd] (porter) 2011-06-17 (bug fix)[3062331] crash in unset traces (macdonald,porter) 2011-08-03 (bug fix)[2891541] fix grab behaviour for main window (thoyts) --- Released 8.6b2, August 8, 2011 --- See ChangeLog for details --- 2011-09-22 (bug fix)[3404541] -takefocus option (dzach,english) 2011-10-24 (new feature)[TIP 382] -confirmoverwrite on save dialog (porter) 2011-10-25 (bug fix)[3410609] AltGr keysyms on Swiss keyboard (tasser,kenny) 2011-11-17 (bug fix)[3437816] return code of [canvas lower] (hirner,ferrieux) 2011-12-22 (bug fix)[3235256] correct menu failure on Windows (mcdonald) 2012-01-19 (bug fix)[3021557] cursor freeze in elided text (vogel) 2012-01-22 (bug fix)[3476698] hang in [text mark prev/next] (vogel) 2012-01-25 (bug fix)[3475627] Stop text-31.11 failure (vogel) 2012-01-25 (bug fix)[1630271] hang/crash on mark before -startline (vogel) 2012-01-26 (bug fix)[1754043,2321450] -blockcursor appearance (vogel) 2012-01-27 (bug fix)[3480471] crash in [tk_getOpenFile] (nijtmans) 2012-01-29 (bug fix)[3480634] PNG image in menus (nijtmans) 2012-01-30 (bug fix)[2925561] disabled combobox don't take focus (english) 2012-02-10 (bug fix) win dialog avoid shimmer that confuses Python (fellows) 2012-02-15 (bug fix)[3486474] Correct color scaling (goth,nijtmans) 2012-02-28 (bug fix)[1630262,1615425] [text] crash tags & -*line (vogel) 2012-03-07 (bug fix)[3497848] consistent pixel rounding (fassel,fellows) 2012-03-18 (enhancement)[3503317] XParseColor speedup (nijtmans) 2012-04-07 (bug fix)[3176239] control-Mousewheel crash (couch,nijtmans) 2012-04-22 (bug fix)[3520202] %k,%K,%N for Python (deily,fellows) 2012-05-02 (bug fix)[533519] multiscreen window placement (nijtmans) 2012-05-04 (bug fix)[2768586] multiscreen menu posting (nijtmans) 2012-05-28 (bug fix)[1630254] text peer update on -startline reset (baker,vogel) 2012-06-11 (bug fix)[3294450] ttk text element clipping (oehlmann,fellows) 2012-07-02 (bug fix) Make sure all index tables are static (kirkham,english) 2012-07-23 (bug fix)[3546073] DisplayString() -> DefaultDisplay() (english) 2012-08-11 (bug fix)[3554273] text elide and tags (vogel) 2012-08-15 (enhancement)[3555324] Win:Ctrl-A now means Select-All (nijtmans) *** POTENTIAL INCOMPATIBILITY *** 2012-08-22 (new feature)[TIP 403] Use Web color definitions (nijtmans) *** POTENTIAL INCOMPATIBILITY *** 2012-08-23 (enhancement)[3555644] better use of virtual events (nijtmans) *** POTENTIAL INCOMPATIBILITY *** 2012-08-24 (bug fix)[3558535] file dialog filtering (fellows) 2012-08-25 (bug fix)[3554026,3561016] crash with tearoff menus (gavilán) 2012-09-11 (bug fix)[3566594] stop clip region leaks (fellows) 2012-09-15 (bug fix)[3567778] stop hang in wrapped label (porter) 2012-09-17 (bug fix)[3567786] stop segfault in [wm forget] (porter) Many revisions to better support a Cygwin environment (nijtmans) --- Released 8.6b3, September 18, 2012 --- See ChangeLog for details --- 2012-10-02 (bug fix)[3572016] menu enable after modal dialog (berg,walzer) 2012-10-08 Remove Carbon support 2012-10-24 (bug fix)[3574893] crash in [wm forget] (porter) 2012-11-07 (bug fix)[3574708] crash in focus handling (fellows) 2012-11-14 (bug fix)[3500545] fix [tk_getOpenFile -multiple] (bruederlin) 2012-12-04 (bug fix)[3588824] Support weird image names in [text] (vogel) 2012-12-06 (bug fix)[3592736] stop pink greys from buggy mingw builds (fellows) --- Released 8.6.0, December 20, 2012 --- See ChangeLog for details --- 2013-01-04 (bug fix) Tk_InitStubs("8.6") rejected in 8.60 interp (nijtmans) 2013-01-10 (bug fix)[3600251] Mac binding (kjnash,nijtmans) 2013-01-10 (bug fix)[3600260] <> binding (kjnash,nijtmans) 2013-01-13 (bug fix)[3600290] restore $tk_strictMotif respect (kjnash,nijtmans) 2013-01-22 (bug fix)[3601782] Tcl_InitStubs failure message (nijtmans) 2013-01-31 (bug fix)[3599928] use XKeycodeToKeysym on old systems (cassoff) 2013-02-04 (bug fix)[3603077] treeview update on tag add/remove (english) 2013-02-28 (bug fix)[3599312] First Alt key event is lost (mcdonald) 2013-03-11 (bug fix)[3607326] Crash [listbox .l -listvariable $array] (porter) 2013-03-13 (enhancement) better build support for Debian arch (shadura) 2013-03-27 (bug fix)[3608074] button, listbox, menu <> (nijtmans) 2013-04-01 (bug fix)[3607830] Xkb runtime checks (griffin) 2013-05-19 (platform support) FreeBSD updates (cerutti) 2013-06-05 (bug fix)[3613759] [ttk::entry .e; .e xview end] (nijtmans) 2013-06-05 (bug fix)[2100430] [ttk::entry .e; .e xview insert] (nijtmans) 2013-06-28 (bug fix)[2501278] reverse ttk::scale key bindings {mcdonald) 2013-07-02 (bug fix)[32afa6] corrected dirent64 check (griffin) 2013-08-14 (bug fix)[069c9e] "option" value refcount crash (tim,nijtmans) 2013-08-15 (bug fix)[c597acd] [$pb step] work with traces (english) 2013-08-25 (bug fix)[3016181] Cocoa: [destroy $scrollbar] => crash (goddard) --- Released 8.6.1, September 19, 2013 --- http://core.tcl.tk/tk/ for details 2013-10-27 (bug fix) OSX drawing lags (deily,steffen,walzer) 2013-10-28 (bug fix)[3603436] png wrong component indices (nijtmans) 2013-10-31 (bug fix) C++ friendly stubs struct declarations (nijtmans) 2013-10-31 (bug fix)[c0cc9fd] PNG parser accept uppercase -format (nijtmans) 2013-10-31 (bug fix) double free of a TkFont (nijtmans) 2013-11-03 (bug fix)[1632447] support PPM maxval up to 65535 (fellows) 2013-11-05 (bug fix)[426679e] OpenBSD man page rendering (nijtmans) 2013-11-11 (bug fix)[f214b8a] multi-interp font teardown double free (porter) 2013-11-11 (bug fix)[0aa5e85] option file \n syntax support (nijtmans) 2013-11-20 (platforms) Support for Windows 8.1 (nijtmans) 2014-01-23 (bug fix)[3606644] X: correct fontconfig dependence (venable) 2014-01-23 (bug fix) FreeBSD build fixes (cerutti) 2014-02-06 (bug fix)[3279221] [menu] event race (danckaert,kupries) 2014-02-07 (bug fix)[6867cc1] creative writing in [tk fontchooser] (nijtmans) 2014-02-11 (bug fix)[52ca3e7] XkbOpenDisplay macro correction (nijtmans) 2014-03-16 (bug fix) Xcode 5.1 update; Retina displays (walzer) 2014-03-20 (bug fix)[2f7cbd0] FreeBSD 10.0 build failure (nijtmans) 2014-04-01 (bug fix)[5bcb502] @TK_LIBS@ in pkgconfig (badshah400,nijtmans) 2014-05-27 (bug fix)[a80f5d7] autoscroll initiation (crogers,english) 2014-07-07 (bug fix) OSX alpha channel rendering (culler,walzer) 2014-07-08 (workaround)[4955f5d] Ocaml trouble with tailcall splice (nijtmans) 2014-07-24 (bug fix) OSX [text] image display & scrolling (culler,walzer) 2014-08-01 (bug fix) OSX font config crash (rob@bitkeeper) --- Released 8.6.2, August 27, 2014 --- http://core.tcl.tk/tk/ for details 2014-08-27 (bug) Cocoa: Crash after [$button destroy] (walzer) 2014-09-23 (bug) Cocoa: button and scroll display fixes (walzer) 2014-09-24 (bug) Cocoa: improved drawing performance (walzer) 2014-10-11 (bug)[9e487e] Phony button clicks from browsers to plugin (nijtmans) 2014-10-11 (bug)[810c43] [text] elide changes advance epoch (vogel) 2014-10-14 (bug)[fb35eb] fix PNG transparency appearance (walton,culler) 2014-10-18 (feature)[TIP 432] Win: updated file dialogs (nadkarni) 2014-10-26 Support for Windows 10 (nijtmans) 2014-10-28 (bug) OSX: Improved ttk notebook tab metrics for Yosemite (walzer) 2014-10-30 (bug)[3417012] [scale -digits $bigValue] segfault (vogel) 2014-11-07 (bug)[3529885] [scale] handling of negative resolution (vogel) --- Released 8.6.3, November 12, 2014 --- http://core.tcl.tk/tk/ for details 2014-11-14 (bug)[d43a10] shimmer-related crash in [tk_getOpenFile] (nadkarni) 2014-11-23 (bug)[1c0d6e] Win build trouble with SIGDN (keene) 2014-12-03 (bug)[4a0451] [tk_getOpenFile] result (nadkarni) 2014-12-13 fix header files installation on OS X (houben) 2015-01-02 (bug) Stop bit loss in [winfo id] on 64-bit Cocoa (porter) 2015-02-06 (bug) several fixes to elided context in [text] (vogel) 2015-02-06 (new feature)[TIP 433] %M binding substitution (mistachkin) *** POTENTIAL INCOMPATIBILITY *** 2015-02-22 (bug)[ab6dab] corrupt dashed lines in postscript (porter) Tk Cocoa 2.0: App Store enabled (walzer,culler,desmera,owen,nyberg,reincke) *** POTENTIAL INCOMPATIBILITY *** --- Released 8.6.4, March 12, 2015 --- http://core.tcl.tk/tk/ for details 2015-03-10 (bug) Cocoa: premature image free crash (walzer) 2015-03-15 (bug) Cocoa: wish launches in front. [focus -force] works (culler) 2015-04-09 (bug)[e4ed00] [$text index "1.0 display wordstart"] crash (vogel) 2015-04-09 (bug)[562118] Unicode support of "wordstart" modifier (vogel) 2015-05-05 (bug)[06c3fc] PNG alpha error corrupted output file (gauthier,porter) 2015-05-20 (bug)[dece63] various mem corruptions in images (mic42,porter) 2015-05-24 (bug)[53f8fc] panedwindow geometry management (vogel) 2015-05-26 (bug)[1641721] tk_getOpenFile symlink display doubled (nijtmans) 2015-06-01 (bug)[d7bad5][2368195][3592454][1714535][1292219][3592454] panedwindow fixes (vogel) 2015-06-25 (bug)[805cff] Tk_ConfigureWidget() segfault (aspect,nijtmans) 2015-07-13 (bug)[3f179a] Text widget crash with elided text (vogel) 2015-07-16 (bug)[2886436] Stop [$text delete] acting before start index (vogel) 2015-07-28 (bug)[1236306] TraverseToMenu error bound to toplevel destroy (vogel) 2015-08-20 (bug)[00189c] MSVC 14: semi-static UCRT support (dower,nijtmans) 2015-09-13 (bug)[cc0ba3] PNG read buffer overflow (maxjarek,porter) 2015-09-29 (bug)[1501749] Crash embedded window delete bound to (vogel) 2015-10-04 (license) Replace icons that lacked clear free license (cowals) 2015-10-06 (bug)[46c83f] Win: tk_getOpenFile -initialdir (koend,nadkarni) 2015-10-08 (new feature)[TIP 437] New panedwindow options (vogel) 2015-10-09 (bug)[1669632] [text] autoseparator placement (nash,vogel) 2015-10-09 (bug)[2262711] [text] RE search Unicode+elided (kaitzschu,vogel) 2015-10-09 (bug)[1815161] [$text count -ypixels] needs management (vogel) 2015-10-22 (bug)[1520118] Document spinbox validate expectations (vogel) 2015-10-22 (bug)[1414025] $entry insertion cursor visibility (vogel) 2015-10-26 (bug) PNG rendering on El Capitan (meier,walzer) 2015-11-08 (bug)[2160206] menubutton panic (vogel) 2015-11-08 (bug)[220854] Display trailing TAB in entry (vogel) 2015-11-08 (bug)[542199] double click on lone char in entry (vogel) 2015-11-08 (bug)[297442d] strict motif binding on (vogel) 2015-11-08 (bug)[3601604] $listbox -takefocus (vogel) 2015-11-09 (bug)[5ee8af] X, Win: 64-bit enable embedded windows (vogel) 2015-11-29 (bug)[1997299] [text] tag borderwidth leak (vogel) 2015-12-12 (bug)[1739605] [text see] misbehavior (danckaert) 2015-12-13 (bug)[ff8a1e] Never-mapped [text] performance (danckaert) 2015-12-19 (bug)[1700065] Report errors from -textvariable write trace (vogel) 2015-12-19 (bug)[793909] -textvariable handle undefined namespace (vogel) 2015-12-26 (bug)[2f78c7] crash with [text] and [tablelist] (vogel) 2016-01-06 (bug)[1288433,3102228] <> misfires (vogel) 2016-01-08 (bug)[1510538] initial scrollbar width (vogel,nijtmans) 2016-01-08 (bug)[1305128] event not received by scrollbar (vogel,nijtmans) 2016-01-09 (bug)[1927212] Mousewheel/scrollbar bindings (vogel) 2016-01-11 (bug)[63c354] Cocoa message boxes (culler) 2016-01-12 (bug)[2049429] get more $text options from database (vogel) 2016-01-22 (TIP 441) New option [listbox ... -justify] (vogel) 2016-01-25 (bug) OBOE in ttk::notebook options parsing (bromley,english) 2016-02-08 (enhance) [option readile] expects utf-8 file (oehlmann,nijtmans) 2016-02-08 (bug) crash in [$text delete] (griffin,vogel) Tk Cocoa 2.0: More drawing internals refinements (culler,walzer) --- Released 8.6.5, February 29, 2016 --- http://core.tcl.tk/tk/ for details 2016-03-07 (bug)[3137232] spinbox teardown hygiene (vogel) 2016-03-07 (bug)[2981253] spinbox rapid button action (vogel) 2016-03-07 (bug)[2262543] scale initialization callbacks (vogel) 2016-03-07 (bug)[e9112e] incomplete [wm forget] (vogel) 2016-03-11 (bug)[d95e5d] from hidden panes (vogel) 2016-03-20 (TIP 443) More configuration options for text tags (vogel) 2016-03-20 (bug)[487861] menu: cascade/accelerator appearance (vogel) 2016-03-27 (bug)[1192095] active index from toplevel menus (vogel) 2016-03-27 (bug)[18c08d] revised final newline behavior in [text] (vogel) *** POTENTIAL INCOMPATIBILITY *** 2016-04-29 (bug)[fd3a4d] <> delivery to text peers (vogel) 2016-05-03 (bug)[b36218,011706] event reentrancy / widget destruction (vogel) 2016-05-12 (bug)[64261b] mouse events after double click (nadmarki,nijtmans) 2016-05-18 (bug)[545f10] Xft color font speed (bonfield,davies,girffin,vogel) 2016-05-25 (bug)[109865] event reentrancy / widget destruction (vogel) 2016-05-30 (TIP 446)[1273358] [$text edit (canundo|canredo)] (vogel) 2016-05-30 (bug)[79549a] crash in mouse pointer warping (vogel) 2016-06-22 (bug)[787adc] Modernize Tk_Init() (porter) 2016-07-06 (bug) Aqua: excess lable padding (lanam,walzer) 2016-07-08 (bug) Aqua: bitmap distortion (culler,walzer) 2016-07-15 (bug) Aqua/Retina: fix alpha rendering of images (culler,walzer) 2016-07-17 (bug)[c84f66] Aqua: crash: overflow in geometry calc (culler,walzer) 2016-07-21 (bug)[450bb0] Aqua: memory corruption from [tk busy] (porter) --- Released 8.6.6, July 27, 2016 --- http://core.tcl.tk/tk/ for details 2016-08-23 (bug)[a2abc4] Wrong warp cursor position on 2nd display (vogel) 2016-08-29 (bug)[fa3229] menu-38.1 (calvo,vogel) 2016-08-29 (bug)[2cf3d6] button-5.24 (vogel) 2016-09-04 (bug)[1534455,2945130] Key release events get _L vs _R right. (vogel) 2016-09-10 (bug)[8c4216] listbox-4.1 (vogel) 2016-09-10 (bug)[eb2681] listbox-13.1 (vogel) 2016-09-21 (bug)[3126428] ttk::button react to image change (thoyts) 2016-10-09 (bug)[1082213] wrapped text don't start lines with whitespace (vogel) 2016-10-12 (bug)[3217462] tri-state button on non-native theme (vogel) 2016-10-30 (bug)[3588460] Fix file dialog -typevariable (vogel) 2016-11-01 (bug)[e36963] event generate .e (matthias,vogel) 2016-11-05 (bug)[6aea69] grid-23 (danckaert,vogel) 2016-11-18 (bug)[f60c54] combobox-3 (panza,vogel) 2017-01-03 (bug)[f32502] crash drawing many dashed objects (reithofer,werner) 2017-01-05 (bug)[dac92f] text-2.[89] (vogel) 2017-01-07 (bug)[3df559] OSX: Negative bbox width (vogel) 2017-01-07 (bug)[28a453] OSX: text widget index OBOE (vogel) 2017-01-07 (bug)[c12af7] OSX: text-21.1 (vogel) 2017-01-08 (bug)[7a838c] X11 ring buffer overflow (werner) 2017-01-11 (bug)[d4fb4e] imgPhoto-4.75 (nijtmans) 2017-01-18 (bug)[fab5fe] OSX: repair textDisp failures (vogel) 2017-01-23 (bug)[89a638] OSX: textDisp-15.8 (vogel) 2017-01-25 (bug)[1403ea] Limits on text line size on Windows (spjuth) 2017-02-05 (bug)[ae32eb] textDisp fails in text custom config (vogel) 2017-02-05 (bug)[7d967c] crash after IME restart (lanam,nijtmans) 2017-02-22 (bug)[c492c9] disabled combobox arrow appearance (danckaert) 2017-03-06 (bug)[6b3644] Fix -alpha for 16-bit color PNG (LemonMan) 2017-03-11 (bug)[775273] artifacts on Ubuntu 16.10+ (nemethi) 2n017-03-26 (TIP 464) Win multimedia keys support (fassel,vogel) 2017-03-29 (bug)[28a3c3] test BTree memleaks plugged (anonymous) 2017-04-06 (bug)[db8c54] Stop freed mem access in warp pointer callback (porter) 2017-04-07 (bugs) Fix calculation of ttk::notebook tab widths (vogel) 2017-04-07 (bug)[291296] notebook tab management (decoster) 2017-04-08 (bug)[f0188a] Win reject invalid hex color codes (bachmann) 2017-04-10 (bug)[3f323b] variable struct size on XCode 8.3.1 (auriocus) 2017-04-20 (bug)[061bf9] OSX scrollbar draw position (reincke,walzer,joye) 2017-05-01 (bug) restore -initialfile for OSX file dialogs (reincke,gollwitzer) 2017-05-06 (bug) OSX file dialog type filters (walzer) 2017-05-10 (bug)[a5ba1c] race condition on Win clipboard cleanup (donchenko) 2017-05-18 (bug)[2433781] center image on button (cramer) 2017-05-19 (bug)[434d29] type mismatch with recent Xft (nijtmans,werner) 2017-06-02 (bug)[bc43fd] paneconfigure get pane heights right (vogel) 2017-06-21 (bug)[adc028] menu avoid unreleasable global grab (nash) 2017-06-30 (bug)[92e028,c5eb90] User switch forced theme reset (lanam) 2017-06-30 (bug)[62c5b7] segfault in [text] replace (werner) 2017-07-03 (bug)[8afc6c] OSX crash in save/open dialogs (simpson,walzer) 2017-08-02 (bug)[b601ce] Resource exhaustion processing corrupt GIF (nash) 2017-08-03 (bug)[9eab54] Fix -initialdir for OSX file dialogs (gollwitzer) 2017-08-08 (bug)[28d0b8] Follow ICCCM advice on X selection protocol (donchenko) 2017-08-08 (bug)[4966ca] Scidb race in notebook tab selection (cramer) --- Released 8.6.7, August 9, 2017 --- http://core.tcl.tk/tk/ for details 2017-08-24 (bug)[f1a3ca] Memory leak in [text] B-tree (edhume3) 2017-08-24 (bug)[ee40fd] Report [console] init errors (the) 2017-08-24 (bug)[3295446] Improve history visibility in [console] (goth) 2017-08-24 (bug) canvas closed polylines fully honor -joinstyle (vogel) 2017-08-24 (bug)[cc42cc] out of mem crash in tests imgPhoto-18.* (vogel) 2017-09-16 (bug)[3406785] fix coords rounding when drawing canvas items (vogel) 2017-09-24 (bug)[8277e1] linux fontchooser sync with available fonts (vogel) 2017-09-24 (bug)[5239fd] Segfault copying a photo image to itself (bachmann) 2017-09-24 (bug)[514ff6] canvas rotated text overlap detection (vogel) 2017-09-24 (bug)[1e0db2] canvas rchars artifacts (bruchie,vogel) 2017-10-07 (bug)[d9fdfa] display of Long non-wrapped lines in text (cramer) 2017-10-07 (bug)[dd9667] text anchor not set (vogel) 2017-10-11 (bugs) memleaks and other changes for macOS 10.13 support (culler) 2017-10-11 (bug)[111de2] macOS colorspace improvement (walzer,culler) 2017-10-13 (bug) macOS scrolling issues (culler) 2017-10-15 (bug) clipping regions in scrolling and drawing on macOS (culler) 2017-10-15 (bug) macOS redraw artifacts (culler) 2017-10-22 (bug)[bb6b40] ::tk::AmpMenuArgs and 'entryconf' (vogel) 2017-10-22 (bug)[55b95f] Crash [scale] with a bignum value (vogel) 2017-10-28 (bug)[ce62c8] text-37.1 fails (vogel) 2017-11-03 (bug)[0ef1c5] OS X - tests menu-22.[345] hang (vogel) 2017-11-04 (bug)[c8c52b] repair OBOE in menu.test on macOS (vogel) 2017-11-11 (feature) Implement [wm_iconphoto] on macOS (walzer) 2017-11-11 (bug) display of embedded toplevels (culler) 2017-11-19 (bug)[73ba07] Correct property type for MULTIPLE conversion (dpb) 2017-11-20 (bug) Memory leak in tkImgPhoto.c. (werner) 2017-11-21 (bug) Defeat zombie toplevels (culler) 2017-11-25 (bug) macOS resposive menu bar for command line apps (culler) 2017-11-25 (bug)[1c659e] support png from mac screenshots (vogel) 2017-11-25 (bug)[de4af1] macOS file selector "all types" setting (culler) 2017-11-26 (bug) [wm withdraw] on Window and Dock menus (walzer) 2017-11-27 (feature) Drop support for macOS 10.5 (culler) 2017-11-30 (bug)[164c1b] Fixes [raise] on macOS (culler) 2017-11-30 (bug)[13d63d] macOS support of menu -postcommand (culler) 2017-12-05 (bug) enable custom icon display on macOS (walzer) 2017-12-05 (bug)[1088805,0feb63] macOS bind failures (culler) 2017-12-05 (bug)[3382424] Suppress noisy messages on macOS (culler) 2017-12-08 (new)[TIP 477] nmake build system reform (nadkarni) 2017-12-18 (bug)[b77626] Make [tk busy -cursor] silent no-op on macOS (vogel) --- Released 8.6.8, December 22, 2017 --- http://core.tcl.tk/tk/ for details