- Feb 25, 2022
-
- Nov 22, 2021
-
-
Tony Farrell authored
Add .gitignore Fix various compiler warnings.
-
- Oct 05, 2021
-
-
Tony Farrell authored
Use of strncpy() in dtclcommmand.c not always dealing with excess string length correctly. Resolved and now gives error messages if a user supplied string is too long. ACMM Version 3.70
-
- Sep 04, 2020
-
-
afarrell authored
The GNUmakefile.am was trying to use .mid files in distribution, which has now been removed.
-
- Aug 21, 2020
-
-
libgitlogger.so must link in the DITS library as well as GIT.
-
SdsArrayGet Handling of SDS_INT/SDS_UINT was wrong when a long is 64 bits. Switched to using UNT32. Also added support for SDS_I64/SDS_UI64.
-
SdsArrayCell() was not working for integer arrays due to failing to use Tcl_SetResult(), probably a bug from version 3.61. Resolved.
-
Version 3.64 changes were crashing 2dFdr when loading a gif image. Turned out to be the handling of a null format string - the Tcl_Obj pointer is null and was causing a crash when getting the string. Fixed. Added test_imagedisplay.tcl to test this, and files it uses - home_blue.gif and image_0_0.sds.
-
Previous fix did not work with Tk 8.6 - fixed.
-
dulsdsimg.c modified to presume Tk 8.4 or later only. Removes dependencies on older Tk photo format calls which I think are removed from about 8.6 NOTE - should revamp the rest of the code to remove any ability to build with Tcl older then 8.4.
-
-
Starting to get into lots of trouble due to ERS_M_NOFMT flag and checks in modern complers which complain if you don't have a format string. Use new ErsRepNF() function as an alternative.
-
Modified to build under Yosemite using Clang 6.0 and TclTk 8.6, which has deprecated direct use of the Tcl interpreter result field This version was modified to build on Yosemite using the latest Clang compiler (6.0) and the latest Tcl/Tk (8.6). This needed a very large number of changes, mostly to code that made use of the - now deprecated - 'result' flag of the tcl interpreter. All of these cases needed to be changed to use Tcl_SetResult() and Tcl_GetStringResult() in one way or another. At the same time, any other code that was generating warnings with this recent (and quite fussy) compiler was also modified. This version built on my laptop with no warnings at all. The files changed were: dtclbackgnd.c dtclbshareinit.c dtclcmderror.c dtclcommand.c dtcldits.c dtclersrep.c dtclload.c dtclmodule.c dtclreqnot.c dtclrunning.c dtclsds.c dtclsdsimg.c dtclshareinit.c dtclstdin.c dtcltk.c dtcltkscreeninfo.c gitloggerinit.C The file fix.py has been added to the sub-system, just for historical interest. It was used to replace as many references to "interp->result" in the code as was practical, and the remaining warnings from the compiler were fixed by hand. (Note that there were over 350 lines of code that contained "interp->result". About 80% (at a rough guess) were handled automatically. The rest were harder.
-
GNUmakefile.am must include $(X_CFLAGS) in AM_CPPFLAGS to ensure X11 include files are picked up from non-standard locations, e.g. on MacOsX mavericks.
-
Invoke DitsLogMsg() before each exit.
-
Ensure we use Tcl_Free() rather then free() for the results of Tcl_Merge() - except where ckfree is used.
-
Remove GNUmakefile which had sneaked in in the last version.
-
-
dtcltk.c/DtclTk___XError() no longer causes the task to exit. It is unclear if this was necessary. We have no way of testing it.
-
Fix bug in DtclSdsCell() - it had never apparently worked before.
-
In DtclGetSds(), use Tcl_PrintDouble() rather then accessing tcl_precision ourselves. Handle tcl_precision == 0 in Translate command.
-
dmakefile modified to ensure all tests use a IMP_SCRATCH set to the local directory and to run cleanup before/after the set of tests.
-
Add extra logging around DTCL_COMMAND invocation etc. Fix memory overrun error in DtclSdsArrayGet()
-
Rename Makefile.am to GNUmakefile.am, since 2dfdr_ac is moving to using this name all the time. Add the various include files and .msg files to the lists to be distrubted..
-
Don't run shared library tests on Solaris - they don't work.
-
Modified -error handler code (dtclcommand.c ErrorHandler) to pick up timeout case and set DTCL__TIMEOUT error code, rather then using STATUS__OK. Also had to modify -wait completion handler to deal with this. GetPath timeout now defaults to main timeout on obey/kick etc. commands. (Both the above may cause compatilbity problems - but they were bugs)
-
Ensure everything needed for tests is built correctly.
-
Enusre DTCL_DIR is set for tests
-
Problems with the sharable library picked up - due to wish not having Xinerama linked in. This exposed that 1. The libdtcl sharable only works from wish, not tclsh (except on machines that don't complain until routines are called) 2. That we are not testing the basic sharable library stuff in any way. So - we not create two new sharable libraries - libdtk, which is meant for loading into wish, and libdtclb, for loading into dtcl. The idea is that libdtclb won't link in any X11 stuff but must run in tclsh based shells, whilst libdtk does use the X11 code, but must run in wish shells. For compatiblity, still create libdtcl, which dtkshareinit.c which implements Dtk_Init(), for libdtk shareable, and Dtcl_Init() for libdtcl sharable. The only difference is that Dtk_Init() also loads GitLogger, if C++ is avialable. dtclshareinit.c modfied to rename Dtcl_Init() to Dtclb_Init(), and to extract most of its code into the new Dtcl___ShareInit(), which does the common initialisation. Added test scripts TestGitLogger.tcl, TestOrigShared.tcl, TestTclShared.tcl, TestTkShared.tcl which load the relevant sharables. Added TestDtcl.tcl, a test script meant to be more general, which is sourced by each of these. currently all it does is send a message to TICKER. Added test target to dmakefile, runs the test scripts. Added the new sharbles, and link the libdtk and libdtcl against all the X11 libaries, including Xinerama. CURRENT ISSUES 1. libdtclb is currently failing on mac due to linking in DUL Fits image code. NEed to work out how to handle this. Test is running but is not causing release to fail.
-
Bug in dmakefile - was using #ifdef HasCPlusPlus instead of #if. Enusre success when we don't have C++
-
Fix SRC<n> macro definitions in dmakefile.
-
Fix doc error for DitsGetTaskDescr.
-
Fix doc error for DitsSetFixFlags - was named wrong in html pages.
-
Add Makefile.am - used by 2dFdr to autoconfigure DramaDits.
-
A bug in TCS caused the GUI to crash if too long a string was set in an entry widget that was tested by 'Translate'. (Too long here means over 240 characters, so it's not surprising this has passed unnoticed so long.) Basically, DtclTranslate was overflowing the result buffer if passed an invalid string that was too long. Added code to trap this, and also in DtclTrnName which was vulnerable if the symbol was too long. There are other cases where sprintf %s codes are used to set the result string, but in most of these it is option flags that are the problem and these are going to be picked up quickly in testing. I tried to spot the cases that were vulnerable to variable run-time data and fix them. A real fix would be to replace all code that sprintf()s to the result string by calls to Tcl_AppendResult(), but that's quite a bit of work.
-
Improve const correctnees.
-
Fixt error in build for 2dFdr due to the Event trace functions used not existing in older version of Tcl.
-
Use Tcl trace events to implement SDS leak checking around top-level Tcl commands. As part of this - Create DtclTk___EventLoop() and added extra argument to DtclInputFromDits(). Replace use of Tcl_GlobalEval by Dtcl___GlobalEval in all sensible cases to expand SDS leak checking around all DRAMA event triggered tcl commands.
-
Fix SDS ID leak in pget command. Don't document -deletearg etc. for pget. Ensure pset long argument version handles -deletearg etc correctly.
-
Ensure when positioning window under mouse on Xinerma screen we don't get too close to the bottom of right of screen.
-