Cdk Bugs Guide Copyright Mike Glover, 1995, 1996, 1997, 1998, 1999 ------------------------------------------------------------------------------- If you find a bug, and want me to fix it, you will need to do a few things for me. * Give me a copy or part of the code which demonstrates this bug. If you can't do this, then replicate the bug in a piece of test code and send me that. * Make sure you can replicate the bug. Then send me the of instructions on how to replicate the noted bug. If you do this, I will mail you back telling you if the information was sufficient or not. If it is, I will tell you when I hope to have this bug licked by. If you need an urgent update (i.e., your boss is crawling down your throat for your program to work) tell me, I'll get to it ASAP. If you find a bug and fixed it yourself, I will need the same as above with a few extras. * I will need a patch of any piece of code you made so I can apply it to what I have. * Tar this up and send it to me. If you have found and fixed a valid bug, you will be noted in the next distribution of this bugs file, and my warmest thanks for reducing my ever growing workload. :) Here is the noted list of outstanding bugs and bugs of the past... ------------------------------------------------------------------------------ Release Widget Problem Fixed ------- ------ ------- ----- 4.6.0 Label Label widget would not map itself to the screen Jan/96 via refreshCDKScreen. 4.6.0 Mentry When inserting into the middle of a string, the Jan/96 cursor would not move to the right. 4.6.0 Scroll When scrolling the list to the right, the Jan/96 window border would not get refreshed. 4.6.0 Scale The scale window was always too large. Jan/96 4.6.0 Matrix Fixed cleanCDKMatrix function. (FATAL) Jan/96 4.6.0 Viewer Changed activate->set, manage->activate, and Jan/96 removed set. Cleaned the function setCDKViewer. 4.6.0 Viewer When loading up a small file, garbage would Jan/96 appear under the last line to the bottom of the viewer. 4.6.0 Graph When drawing the graph in line mode, the lines Jan/96 would be too far off the x axis. 4.6.0 Template When calling mixCDKTemplate, the widget would Jan/96 core out. (FATAL) 4.6.0 Swindow Fixed leak in trimCDKSwindow, cleanCDKSwindow. Jan/96 4.6.0 Selection Fixed scrolling bug. Jan/96 ------------------------------------------------------------------------------ 4.6.1 Fselect The entry field would never get mapped on Mar/96 the first instantiation. 4.6.1 Viewer Centered text did not scroll correctly. Mar/96 4.6.1 Radio Centered text did not scroll correctly. Mar/96 4.6.1 Scroll Centered text did not scroll correctly. Mar/96 4.6.1 Selection Centered text did not scroll correctly. Mar/96 4.6.1 All Widgets Fixed the function char2Chtype to expand Mar/96 tab characters into 8 spaces. 4.6.1 Template Fixed problem with cursor not being adjusted Mar/96 correctly if the plate started with a 'drawing' character. ------------------------------------------------------------------------------ 4.7.0 Fselect Fixed the function mode2Char. Used in the Jun/96 File Selector widget for providing file permissions. 4.7.0 Entry The display attribute vHINT displayed the Jun/96 characters when they were typed in. 4.7.0 Mentry The display attribute vHINT displayed the Jun/96 characters when they were typed in. 4.7.0 Scroll The function addCDKScrollItem got very confused Jun/96 when called and the highlight bar was not at the top of the list. 4.7.0 Scale The widget does not map correctly when the Jun/96 function refreshCDKScreen is called. 4.7.0 Scale The widget did not completely erase itself Jun/96 when it was destroyed. 4.7.0 Slider The widget does not map correctly when the Jun/96 function refreshCDKScreen is called. 4.7.0 Template The widget didn't draw the complete field. Jun/96 4.7.0 Histogram The label in the widget seemed to extend into Jun/96 the drawing field. 4.7.0 Matrix Cleaned up some minor display bugs. Jun/96 4.7.0 Fselect When the destroyCDKFselect function is called Jul/96 the windows were destroyed in the wrong order sometimes causing a seg-fault. 4.7.0 Entry When the destroyCDKEntry function is called Jul/96 the windows were destroyed in the wrong order sometimes causing a seg-fault. 4.7.0 Swindow When calling the setCDKSwindow function, some Jul/96 of the members of the strcuture did not get set correctly. 4.7.0 Mentry Scrolling down past the end of the input was Jul/96 possible. This can cause may weird results. ------------------------------------------------------------------------------ 4.8.0 Template Fixed the behavior displayed when deleting a Jul/96 character. (the cursor always seemed to be a character to the right.) ------------------------------------------------------------------------------ 4.8.2 Entry Irrational behavior when the entry field is Jan/97 shorter than the text which occupies it. Bug found and fixed by Guy Finney 4.8.2 All Widgets Didn't check if the shadow window was NULL Jan/97 or not when performing operations on the WINDOW pointer. 4.8.2 All Widgets Registration/unregistration of widgets did Jan/97 not work correctly. Caused SEGV when alot were killed and a refresh was called. Did not adjust the screenIndex value of the widget if a widget before it was killed. 4.8.2 Histogram Fixed memory leak when windows were being Jan/97 destroyed. 4.8.2 Alphalist Fixed uninitialized memory reads and leaks. Jan/97 4.8.2 Calendar Fixed uninitialized memory reads and leaks. Jan/97 4.8.2 All Widgets Re-purified all widgets and fixed all Jan/97 problems found. 4.8.2 All Widgets Found a problem when putting a CDK widget in Jan/97 a curses window. When an absolute x/y coordinate was provided, the x/y position it was assigned was based on the main window and not the window it was being attached into. This problem only occurs when a window other than the one one created via initscr was being used. 4.8.2 Template When setting the value of the template widget, Mar/97 the cursor usually got mixed up as to where it should be compared to where it has to be. 4.8.2 Swindow The scrolling window would core out if too many Mar/97 lines were added. This was because I never checked the maximum lines value supplied when the widget was created. ------------------------------------------------------------------------------ 4.9.0 Dialog The separation line on the widget was being April/97 drawn too far if the curses breed was not ncurses. 4.9.0 Viewer The separation line on the widget was being April/97 drawn too far if the curses breed was not ncurses. 4.9.0 Matrix The boxwidth would not get calculated correctly April/97 when a weird mixture of rows/columns and spacing was used. 4.9.0 Swindow Centered text did not scroll correctly. May/97 4.9.0 Fselect Fixed cut and paste typo in the May/97 setCDKFselectXXXAttribute functions. Thanks to andrze@tor.supercomputing.com for pointing this out. ------------------------------------------------------------------------------ 4.9.1 Scroll Fixed the scrollbar height. The bar was always July/97 being made to the height of the list and not the height of the window. 4.9.1 Selection Fixed the scrollbar height. The bar was always July/97 being made to the height of the list and not the height of the window. 4.9.1 Radio Fixed the scrollbar height. The bar was always July/97 being made to the height of the list and not the height of the window. 4.9.1 All When a signal was set the signal would return July/97 and end up in the character binding routines and pass in a bogus value for the key. This would cause the index to be set to some wild value and cause a bus error. 4.9.1 Scroll When drawing the scroll bar, I never checked if July/97 the scroll bar window was NULL. 4.9.1 Selection When drawing the scroll bar, I never checked if July/97 the scroll bar window was NULL. 4.9.1 Radio When drawing the scroll bar, I never checked if July/97 the scroll bar window was NULL. 4.9.1 Label Added the functions activateCDKLabel for the July/97 builder. The function calls drawCDKLabel 4.9.1 Graph Added the functions activateCDKGraph for the July/97 builder. The function calls drawCDKGraph 4.9.1 Graph Modified the draw function, so if setCDKGraph July/97 has not been called, it doesn't core dump. 4.9.1 Alphalist When the user hit tab after entering a simple July/97 string in the entry field, the widget would core out because I didn't check for an upper bound on the array inside the while loop. 4.9.1 Slider When the user asked for a full width slider by July/97 passing in FULL or 0, it cored out. 4.9.1 All Found a major bug in alignxy (which all Sept/97 widgets called). This affected a widgets alignment when a widget was created in a window that was not the full screen. ------------------------------------------------------------------------------ 4.9.2 Template Fixed a small bug in which internal variables Jan/98 of the template widget were reading past their array bounds. (Array Bounds Read with purify) Possible source of SEGV or core dumps. ------------------------------------------------------------------------------ 4.9.3 Button Box Fixed an oversight with the buttonbox key Apr/98 key bindings. Bug and patch fix/found by Mark Buckaway . (thanks :) ) ------------------------------------------------------------------------------ 4.9.4 Complete mystery as to what happened these April months. Must have been kidnapped by aliens. to Several individuals did send in patches to July make this 8-bit clean. If the sysadmin at of the office didn't nuke everyones mailbox, I 1998 could give them credit. If you know who you are, please mail me, I'll give you credit. ------------------------------------------------------------------------------ 4.9.5 Template The Pre-Process function would never get July/98 called becuase of cut-and-paste problems during development. ------------------------------------------------------------------------------ 4.9.6 None reported. Yeaahhhhhhhh!!!!!!!!!!!!!!! Whoo hooooo!!!! 4.9.7 ------------------------------------------------------------------------------ 4.9.8 Entry field. Incorrect return code. Found by both July/99 Daniel Novy (dnovy@rbeep.com.br) and Jorgen Granstam (Jorgen.Granstam@abc.se)