Calctool change history. ------------------------ v2.4 - patchlevel 4. - Released to comp.sources.misc (January 1990). v2.4 - patchlevel 5. - Posted to comp.sources.bugs (January 1990). Changes: * From Keith McNeill The functions isinf and isnan are not present on all machines. These have been removed and different sanity checks are applied to the number to be converted, based on the contents of these two functions. * From Keith McNeill With the X11 driver, there is an enumerated type DISPLAYITEM used in the drawtext routine. With SunOS v3.5, this needs to be typecast to an integer. * From Keith McNeill In the function get_rcfile() in get.c, there is a variable with the name 'const'. This is a reserved word in ANSI C. This has been changed to cval. * From Jeff Donsbach The calctool helpfile was not being found if the helpfile was in the last directory on your search path. Fix to get_helpfile in get.c. * The README file specifically said that calctool was for Sun workstations. With the X11 and tty drivers, this is no longer true. * From Mel Melchner The last character of function definitions in the .calctoolrc files was being dropped. This accidentally worked if the function definition was followed by an optional comment which was used in the popup menu. * From Mel Melchner With the X11 driver, the function XIconifyWindow is missing when compiled under X11R3. This is an R4 function; I've recoded the close_frame routine in the X11 driver. * From Skip Gilbrech The TODO file mentioned that with the SunView version and a Sun4 keyboard, the ENTER key on the right function keyboard was not recognised. This is now fixed. The TODO file has been adjusted accordingly. * The TODO file explicitly mentions that the right mouse button does not currently bring up a popup menu. * From Peter Allott Typing ctrl-n (to change from fixed point notation to scientific notation) causes a segmentation fault. * From Peter Allott Constants can appear a bit confusing initially. The sample .calctoolrc file is given which has three constants predefined. The calctool help mentions the default values for the constants, but didn't say that you could change them. The help message now mentions this. * From dunc@Sun.COM If you are entering a scientific number, and the first thing you do is press the EXP key, you do not get a chance to enter the exponent; it clears the display. This is now fixed. * From dunc@Sun.COM Pressing EXP several times in a row used to generate a row of plus signs in the display. * The Makefile has been adjusted to include the new library -lolgx, which needs to be used with XView links under X11R4 and OpenWindows v1.0.1 (and beyond). * The XView driver has been changed to xv_find the fonts it needs. This means that the normal font is now 12pt normal not 12pt bold. * The XView driver handles the right function keypad much better now, but the DEL (.) key is still a problem because it generates ASCII 127, which is the same as the Delete key. * Not all machines have the index() string library function. If you don't have index, then you should uncomment the NOINDEX definition in the Makefile. New files: * CHANGES - documented history of the changes made with each new calctool patch. v2.4 - patchlevel 6. - Posted to comp.sources.bugs (January 1990). Changes: * The Makefile did not include the CHANGES file in the OTHERS macro definition. * If you are not using IEEE floating point format, and you need to use some of the routines from the portable maths library which is now included with this distribution, then you need to uncomment the new NOTIEEE definition in the Makefile. * From Tom Friedel In the tty driver, in the drawtext routine, there is a character array of five elements. There was an invalid assignment to key[5]. * From Stephen Frede The definitions in the Makefile for HELPNAME, NEWSFILE and RCNAME do not need extra ...GIVEN definitions. * Calctool.h defined NEWSNAME, when it should have defined NEWSFILE. * With the X11 driver, the function XIconifyWindow is new to R4. If you are running an X11 release which is not R4, then you need to uncomment the new definition in the Makefile called NOT_R4. This nullifys the function of the calctool OFF key, but hey, you can also you the window manager to iconify calctool (assuming your window manager can do that!). * The factorial function has been adjusted to only work with positive integers. I couldn't find a public domain or freely distributable lgamma function written in C. * fillbox in graphics.c no longer needs to be passed a window parameter * From Stephen Frede Not all linkers have the -L option. The CALCLIB definition in the Makefile has been adjusted, and moved to the section where LIBNAME is defined. By default, you shouldn't have to do anything, but if you are on a Sun and want to use the shared library facility, then you need to uncomment three definitions. * From Stephen Frede getcwd is not present on all systems. I've replaced it with getwd. New files: * mathlib.h mathlib.c - These are an attempt to provide a portable maths library for those systems that don't have all the functions that calctool needs. You should look near the end of mathlib.h for a set of definitions, then set appropriately. v2.4 - patchlevel 7. - Posted to comp.sources.bugs (February 1990). Changes: * From Johan Vromans There is no need to have a special definition NOT_R4 in the Makefile for people running the X11 driver on R[23]. The close_frame routine in x11.c has been rewritten to use the code supplied by Johan. This code will work with ICCCM compliant window managers. It also works nicely with OpenWindows, so I've removed the call to XIconifyWindow and used this code instead. * From Johan Vromans The Makefile now uses $(CC) to specify the C compiler of choice. * From Johan Vromans With the X11 driver, displaying new values in the memory register window overwrote the previous contents without first clearing them. In x11.c, the clear_canvas routine has been rewritten to use XGetGeometry instead of XGetSizeHints. * From Johan Vromans Calctool on a Vax running Ultrix dumps core when you divide by zero. This is handled on a Sun, by jumping to the matherr routine, and causing an error. A test has now been added to the do_calculation routine in functions.c, to check if the divisor is zero, and call doerr if it is. * From Stephen Frede There is no need for the tty version to use select to determine if there is input waiting to read. The top bit of the characters read, is also removed. v2.4 - patchlevel 8. - Posted to comp.sources.bugs (February 1990). Changes: * From Didier Poirot Two Imakefiles (Imakefile.main and Imakefile.lib) have been provided. To use these properly, read the comments at the beginning of these files. * From Sisira Jayasinghe Have included better error detecting routines for addition, subtraction, multiplication and division supplied by Sisira. v2.4 - patchlevel 9. - Posted to comp.sources.bugs (March 1990). Changes: * From David M. Karr Calctool hangs if the sto function is used with one of +,-,x or / operators before giving the register number. v2.4 - patchlevel 10. - Posted to comp.sources.bugs (March 1990). Changes: * From Steve Alexander The X11 version always set the icon position to (0,0) on the display. * From Gary Bartlett One of the sets of patches (to supply better error checking for + - x and /) introduced quite a serious error. Namely you can't multiply or divide negative numbers (or zero) as the respective routines try to take their log without checking BOTH parameters. * Storing values using the popup-menu (SunView and XView versions only) did not work. This was caused by an incorrect patch from last time. * From Gary Bartlett With the X11 version, pressing the SHIFT key to access some of the keyboard equivalents repeated the last command. It didn't wait for the key you're shifting to be pressed. v2.4 - patchlevel 11. - Posted to comp.sources.bugs (August 1990). * From Steve Nahm The XView version didn't correctly run under Open Windows v2.0(FCS). v2.4 - patchlevel 12. - Posted to comp.sources.bugs (August 1990). * Removed the XSynchronize() call from xview.c. This was only needed for debugging. * From Daniel Yang According to the helpfile, the operators CON, EXCH, FUN, STO, RCL, <, and > all require a digit between 0 and 9, but when any of these are selected, the HEX digits are displayed as well. Since these aren't legal parameters, these should not be displayed. * From Daniel Yang The initial base for calctool is DEC, but the HEX digits are incorrectly displayed. * From Daniel Yang Fixup typos in the helpfile text.a * From Rick Stevenson x11.c: Pyramid's cc warns about illegal operation on geometry. if (!geometry) should be if (geometry[0] != '\0') * From Rick Stevenson Overflow with the factorial function was incorrect. * The position of the numeric output in the display item with the XView version has been corrected. * The memory register window is now coming up correctly (positioned to the right of the main calctool frame). v2.4 - patchlevel 13. * Fixed SCI/FIX button unwritable string core. * Changed mathlib calls to dabs() and abs() to fabs(). Changed incorrect NEED_EXP define around dabs() to NEED_FABS. * Added STUPID_FPE setting. A STUPID_FPE sends a SIGFPE on any math error, despite the presense of the handler routine in calctool.c. * Changed multiple-symbol #ifdefs in mathlib.c, changing them from "#ifdef sym1 || sym2" to "#if defined(sym1) || defined(sym2)".