Changes in v4.5a ================ - Adding the first entry to an empty phonebook did not make the list available, it would stay ghosted. - The transfer window accidentally did not receive any window refresh events, causing it to stay more or less blank when zooming/unzooming it. - Removing phonebook entries from existing groups through the "Group" feature did not move them, it merely changed the name of the group. - Ghosting colours as used by the gtlayout.library created tapedeck and default buttons were "wrong" in a sort of way; the UI style guide suggests to use the shadow pen to draw the ghosting patterns, but there was still some experimental code in the library to use the background pen, really "ghosting" the gadgets. - Finally got the font style rendering bits right with gtlayout.library (and also saved a few bytes on the way). - A few changes in the font size setup code used by gtlayout.library and the status line box layout process now allow fonts with broken kerning and width table data to be used, such as the Scala FuturaB font which has trash in place of the \ and | glyphs. Caution please, although the layout routines now allow the screen layout to proceed in an orderly fashion, Intuition may fail to render pull-down menus correctly. - Horizontal sliders (LEVEL_KIND) as used by `term' now render much smoother and faster. - Stripped grouping frames from windows in which only one single group was displayed. Changes in v4.5b ================ - Changed the 16 colour window backfill code back to use RectFill() rather than the Saturday Night Special BitMap. No longer crashes CPUBlit or gets into trouble with CyberGraphX. - Stripped some more old and dead code from the phone panel. - Tagging entries in the phonepanel moved the list display around, which was both nasty and not necessarily a good thing to do [Andreas Kirchwitz]. - Fixed the "Copy" crash & burn bug in the phone panel (how comes I'm feeling so stupid?). - Adding a new phonebook entry did not update all the gadgets that should get updated. - All-new notification requester, smaller & more powerful. It's a shame it only pops up when running `term' for the first time or when upgrading from an older release. - Removed all "Default" button code from the settings editors, the new phonebook editing scheme made these buttons redundant anyway. - In the phonebook edit window, the edit buttons are no longer ghosted if the checkboxes next to them are disabled. This is to allow for browsing the settings without having to enable the checkboxes. The functionality of the checkboxes however is still the same. Please note that selecting "Use" will keep the settings displayed and cause the checkbox to get enabled. Selecting "Cancel" will leave the checkbox state untouched. - Shortened some more tab labels, although it didn't really improve things much. - Changing the settings of any XPR protocol through the transfer protocol editor could get you into real trouble, code was commented out that should have been there but wasn't. - The XEM interface was still using the `new' code that eventually was replaced by the v4.3 xpr_sread code. - In the phonebook, if no entry is selected hitting "Toggle" or "All" will make the first list entry displayed the selected entry [Russell LeBar]. - The phonebook "Toggle" button never got enabled when the window was opened. - Moved up to the v4.4 style xpr_sread code, also caught one case in which XProtocolHostMon() may have trashed its buffer. Changes in v4.5.2 ================= - In groups, the phonebook sort function did not really sort the contents, it just mucked with the visible list; essentially, when closing the phonebook after a sort operation and reopening it again the list order would not appear to have changed. There also was a nasty side effect in that after performing a sort operation the list nodes would point to the wrong phonebook entries ("Your guide to trashing the phonebook in 3 ez pieces") [Marius Sundbakken]. - The size of vertical separator bars as used by gtlayout.library is now adapted to the display aspect ratio [Marius Sundbakken]. - Misc housekeeping changes. - The rates/date/time/etc. editors which get opened by the phonebook settings editor now come up properly centered over the window that brought them up. - Massive space optimizations in gtlayout.library, the 68k version is once again smaller than 100K, actually it's even smaller than the optimized 030 library that should have shipped with `term' v4.5. - The asl requester centering code was getting into trouble as the tag array holding the position data was not terminated. - First attempt at getting rid of unused program text. I do not know exactly if I managed to zap them all, but I caught most of them. If you spot a label/text that consists of a single dot only (".") please let me know and tell me where you found it. - Moved the "Text buffer services" page contents in the capture panel to the third page [Russell LeBar]. - If the speech synthesizer is not available, the speech settings menu item is no longer appears. - Unified the screen mode selection code used by the screen and capture settings editors. - Small fixes to the custom requester code, it no longer uses hardcoded system gadget sizes. - The rates editor could come up with an empty list if the checkbox next to the rates button was not ticked. - gtlayout.library font fallback didn't fall for default and multiline buttons. - The tab gadget tags now have rounded caps. I finally settled with the first two octants of the Bresenham circle drawing algorithm. Essentially, this makes it difficult to create a resolution-adaptive arc. The `shoulders' of each tab are too small, especially in low resolutions, to create edges that look sufficiently rounded. Consequently, the arc rendered is always based upon a square aspect ratio, but beefed up a bit to look good with an 1:2 aspect ratio. - Replaced the last remaining hardware dependant code with different stuff: the status display code could drop into creating a user copper list and attaching it to the screen for the purposes of the providing a visual bell signal. It now simply loads and restores the colour palette. - The single character entry was using the wrong colour when doing the first text rendering pass [Göran Åberg]. - The transfer upload queue now uses the default binary upload path as its home directory [Göran Åberg]. - The area code panel was not allowing you to save the list after loading a new list [Göran Åberg]. - The area code panel, fast! macro panel and the trap panel would get into big trouble when removing the last entry from the list. [Göran Åberg]. - For similar reasons the phonebook "Remove" function was broken. - Shortened the labels in the upload/download window [Bob Maple]. - The same bug that used to wreck the phonebook "Copy" code was having a good time in the "Remove" code. It no longer does. - Shortened the labels in the upload/download window some more [Bob Maple]. - Moved the columns/lines settings from the terminal settings page #2 to page #3. - The hair lines between single tabs in tab gadgets are now resolution adaptive. - The terminal settings editor now also sports an "BBS ANSI compliant" button. - Moved the pages with the "BBS ANSI compliant" buttons as featured in the emulation and terminal settings to the first pages. - The "Toggle" button could get the highlighting order of phonebook entries dead wrong [Russell Woodford]. - Part of the colour palette loading code was so screwed you could have hung several chandeliers to it. - The fix I put in to avoid having XProtocolHostMon trash its buffer turned out to be doing not much (read: nada). Fixed. - Rewrote all the code that used the one single open timer, including all instances in which TR_GETSYSTIME was invoked rather than calling GetSysTime() directly. - Finally (!) arrived at a safe, slick, transparent and crystal clear xpr_read() implementation. If this one still breaks serial.device and friends I'm really going to cry... - Cleared out more old and dead code. - Changed the order of pages in the path and protocol settings editors, they now read binary, text, ascii. In the serial settings editor, moved the device driver page to #2. - Checked all the places in which file requesters were opened and made sure that whenever they are associated with actions which will cause files to be written to, they will come up with the "Save" mode set. - No longer limits font sizes to 24 points. - The picker glyph size is now adapted to the screen resolution. Changes in v4.5.3 ================= - Finally went through the great renaming, none of the program source modules bears the name "term" in its name any more. I also went through the prototypes and all the header files with a fine tooth comb. `term' now compiles much faster, and it is using regargs parameters throughout the program. - The next step in trying to fix the "stuck download" problem; the file transfer window is now opened on the schedule of another process, so it doesn't block the file transfer progress. - The cursor key settings editor consistently looked at the wrong buffer. "Use" never really worked. - Cleared out even more dead and unused code & data. - The "stuck download" problem appears to be caused by gtlayout.library v24. The only big difference between v24 and older releases was that v24 was built with the size optimizer enabled. I reversed this and rebuilt v25 with the time optimizer enabled, just like it used to be in pre-v24 days. - Corrected a bunch of callback-routines which needed their data on the stack rather than in registers. - Reduced stack size requirements for subprocess creation to reasonable amounts, which in this case means a maximum of 8000 bytes per process. - Unified the most frequently used process creation procedures, the whole creation business now runs through one single routine. - Now properly remembers the position of the review buffer window instead of always using default values. - Now properly sets its own program name when getting run from Workbench [Petri Nordlund]. - No longer tries to pull input from the transfer window MsgPort until the window is ready and open. This avoids responses to refresh events until the window is ready for them. - Put in some experimental code to delay trap scanning until after control sequences and such have been filtered out. I'm not sure if I should make this a configurable feature. - The serial settings editor was not allowing you to change the buffer size or the quantum value [Peter Popanda]. - Similar effects could cause trouble with the modem settings. - Big phonebook code cleanup, things should still work, though. - The experimental trap filter code was not doing things right, it did whatever it wanted to do, but could end up rolling the marbles on the schedule of the emulation task which was not allowed to play with the serial port and his friends... - The XPR code could miss single xpr_update() events, simply because the display window was not yet open. It now tries to buffer the data it displays until the window is open and ready. The next following call to xpr_update() will then do the work necessary to get the cached data displayed. - Simplified the final program cleanup code a lot, after all there is memory tracking built into the pools. Also, a lot was gained by taking advantage of the fact that many operating system routines are tolerant to NULL parameters. - Cleaned up the header files a bit. - The incrementer arrows are now resolution adaptive. I also polished the picker images a bit. - Removed all absolute address references to data items. As the data hunk size revealed, the amount of static and bss data compiled with the program is well below the magic 64K boundary (24K so far). This brought the total gain in program size compared to v4.5 to a stunning 36K... - Removed the silly "locale library not installed correctly" requester, as well as the busy mouse pointer code which was easily replaced with gtlayout.library/LT_Lock/UnlockWindow. - More space optimizations in gtlayout.library, which is now more than 4K smaller than the release that shipped with v4.5 - Recompiled `term' and gtlayout.library with SAS/C 6.56. - A variable was being shadowed in the text buffer screen creation code which could lead to all kinds of funny effects, including the window opening being 0 pixels tall. I guess that this finally fixes the last possible buffer crash problem. Changes in v4.5.4 ================= - When clearing the text/review buffer, the buffer percent displays are also updated. - Fixed a very nasty bug in the user interface library code that would draw the text boxes in the about window and frequently crash the machine with an invalid RectFill() call. I also managed to save even more space on the way. - `term' now requires gtlayout.library v26 to run. - On a heavily loaded system (speaking of DMA), the blitter could run wild, trashing the display while the phonebook was being displayed. I came up with a workaround which involves making the phonebook window simple refresh [Russell LeBar]. - Ran another test on the A500+, `term' now even fits into 1.5 MBytes of memory and will do file transfers at 19,200 baud without complaining. - On very slow computers it can take several ten seconds for the transfer window to open. If a transfer error occured while the window was still closed `term' would crash, it no longer does. - More fixes for very slow computers. Still, in very unlucky cases a download can come to a grinding halt and tilt itself along with the operating system over the edge. I have no solution for this stuff right now, I guess it's just a bad habit to keep such an utterly slow computer around (tested with the A500+ in 16 colours, non-interlaced; don't do it). - Fixed an Enforcer hit in the gtlayout.library menu creation code I had overlooked. Feeling adventurous, I optimized the object layout code and ran it through the optimizer. - Made the phonebook use a simple refresh window to avoid weird blitter effects [Russell LeBar]. - Small fixes to the gtlayout.library keyboard shortcut picking code [Kai Iske]. - The phonebook could present you the hardcoded settings defaults rather than copies of the global configuration [Martin Steigerwald]. - More fun with gtlayout.library, aligned most variables to long word addresses, optimized bits & pieces and replaced the horizontal and vertical line drawing code with calls to RectFill(). Lots of changes here, have fun. - The listview ghosting code was rendering into the main terminal window, not into the listview, oops. - No longer displays the OwnDevUnit settings page if OwnDevUnit.library is not around. - The new gtlayout.library had *some* rendering problems when running under Kickstart 2.04, or should I say that Kickstart 2.04 had some rendering problems with gtlayout.library? Area fill patterns did not get cleared for RastPorts passed to the rendering code, ghosting did make a bit hit. - I guess nobody noticed this yet, but the popup gadget could lose refresh events after cleaning up the popup menu. - The string/command `term' sends to the remote after invoking the "Wait..." command is now configurable in the misc settings [Russell LeBar]. - Just found out that the popup gadget doesn't work so well under Kickstart v2.04, so it's back to cycle gadgets then... - Threw in some binary search code for the locale string lookup procedure. Changes in v4.5.5 ================= - Some of the user interface layout fallback routines could kick in too late, i.e. after the window was already open. - The transfer performance window now opens on the same screen the transfer window opens. - The "Duplex" switch in the serial settings now reads "Local echo". - `term' could still crash upon exit, this should be fixed now. - Had to return to using a smart refresh phonebook window due to massive window refresh problems. - `term' should now be more robust when getting run from Workbench. It properly cleans up after itself when exiting and before the big initialization is done makes sure that enough stack space is around. - Some settings editors were using vars of the wrong size, this has been fixed. - After the startup changes I made `term' could rerun the initial setup procedure, causing the usual kind of nuisance. Also, very rarely it could call the wrong cleanup procedure when run from Shell.