-------------------- AmigaOS 3.5/3.9 project ------------------------- amigaguide 44.1 (14.3.1999) - A DTM_REMOVEDTOBJECT message now clears cached rendering data. Otherwise, amigaguide.datatype would crash on the next rendering call. - The printing command now translates foreground colour #1 to ANSI colour #9 and background colour #0 to ANSI colour #9. This selects default rendering colours instead of mapping black text to red. - Masked rendering operations no longer directly fiddle with the RastPort mask. - The routine that tries to find a named node in a list by means of a case-insensitive comparison now uses utility.library/Stricmp rather than a `roll your own' comparison routine. - Fixed a bug in the library init code. - In word wrap mode, AmigaGuide could reference memory after freeing it. This would happen after merging several lines into one. Fixed. - If the window was too small for the complete row of controller buttons to fit, AmigaGuide would attempt to wrap the buttons around and end up getting the actual size of the visible text area wrong. Fixed. - Updated header files and autodocs. - Reimplemented the AGA_Secure feature introduced with AmigaGuide V41 back in 1996. - Replaced the old asyncio code with a bug-fixed and shorter version. - Replaced too many Seek(..,OFFSET_END)..Seek(..,OFFSET_BEGINNING) calls with ExamineFH() calls. - Fixed a bug in the node reader which would open the file a node was stored in, then continue to read exactly as many bytes as there were in that file from the regular database file and finally close the node file again. It was consistently reading from the wrong file. Fixed. I'm curious to see what differences this bug fix will bring. - Removed all dead and unused code. - AmigaGuide now rebuilds its rendering masks whenever this is necessary. This should help to improve rendering speed. - Switched over all file I/O done on the database to use async I/O calls. - When triggered by MultiView a DTM_COPY action followed by DTM_CLEARSELECT no longer leaves trash in the top left corner of the display. I have removed the effect, but not the root of the problem. This still remains to be done... - When loading cross reference files, the loader would always forget to add the last database entry in a section. Fixed. - The cross reference database expunge code would not release any locks it had allocated. This only worked because the way the library code was called no locks were ever allocated and the expunge code was never called. - Completely redid the cross reference manager code which used to be terribly inefficient. For every entry to go into the database, it would check for duplicates by doing a linear search. As the database would increase, the search times would double, then quadruple, etc. The new code uses the tree lists that worked so well for asl.library; this also has the effect of greatly increasing database search speed. - The cross reference database now allocates all its entries using memory pools. amigaguide 44.2 (15.3.1999) - Moved over all cross reference database access routines from amigaguide.library. The database now uses "black box" access methods, at least as far as amigaguide.library is concerned. - Changed the way the cross reference database is maintained. Tree nodes are no longer removed, but updated if possible. This removes the need to rebuild the entire tree after a remove operation. However, because the new code may fail to update an existing node due to memory shortage, the database may (in case of error) not be in the expected state. - When expunging all cross reference databases, DeletePool() is now preferred over freeing the individual database entries. If this doesn't work because an empty replacement pool is not available, the code still frees the individual database entries. amigaguide 44.3 (15.3.1999) - Fixed a race condition in database access. - Reduced the use of the data cached from the initial layout call. Whenever necessary, the code now uses data from the GadgetInfo passed to it. - Finally found out what the "reading from the wrong file" bug fix did: dynamic hosts will now properly tell the node loader which file to read. - The layout code could end up leaving MultiView in an intermediate state if allocating and sending of the layout message to the node host went wrong. Fixed. amigaguide 44.4 (19.3.1999) - The tree node search had a comparison wired the wrong way round. Fixed. amigaguide 44.5 (13.4.1999) - Added more sanity checks to avoid rendering into stale RastPorts. amigaguide 44.6 (13.4.1999) - Fixed yet another Enforcer hit in the layout code. Will this never end? amigaguide 44.7 (10.5.1999) - Changed all __aligned attributes to a different method of guaranteeing long word alignment. amigaguide 44.8 (8.6.1999) - When trying to locate a file a link was pointing to, the code now, as a last resort, looks into the drawer the database is stored in the link came from. - No longer attempts to optimize the rendering masks for clearing the display with. This fixes a bug where a previously displayed picture would not get erased from the display. amigaguide 44.9 (17.7.1999) - Control buttons are now rendered without presetting the button label background colour. amigaguide 44.10 (1.8.1999) - When locating a node, the library now tries to find the file in question both relative to the file the link command originated from and in the current directory of the calling process. amigaguide 44.11 (3.8.1999) - Tweaked the node location code even further. The library now looks into 1) the calling process' current directory, 2) the parent directory of the AmigaGuide file the first link came from, 3) the parent directory of the AmigaGuide file the previous link came from. I found that these three cases manage to cover all link scenarios we had trouble with. Now that this is done, I really don't want to touch this code ever, ever again. - Changed altogether too many "pr_Result2 = .." references to call SetIoErr() instead. amigaguide 44.12 (14.8.1999) - Dumped all the CurrentDir(currentDir = CurrentDir(ZERO)) tricks and switched them over to plain Lock("",SHARED_LOCK) calls. amigaguide 44.13 (7.11.1999) - The "SYSTEM" command, as used in hyperlinks, now launches the respective programs with the current directory set to the drawer in which the root document resides. The same is attempted for the "RX" and "RXS" commands, but due to their asynchronous nature, it may not work reliably. amigaguide 44.14 (22.6.2000) - The scanner did not recognize an '@endnode' command or any other command like it, unless it was terminated with a line feed. The line feed is no longer necessary, the end of the file will be sufficient. amigaguide 44.15 (17.9.2000) - Worked around another bug in the scanner, fixing an Enforcer hit. The scanner bug essentially stays the same though: link commands cannot be broken into several lines. amigaguide 45.1 (23.11.2000) - Found and fixed the bug that could cause the scanner to forget about certain nodes. amigaguide 45.2 (15.2.2001) - The mechanism that allowed quote characters to be escaped in AmigaGuide command strings worked to a certain extent only. It allowed for the quotes to be escaped but failed to strip the escape characters from the resulting strings. Fixed. - Fixed altogether far too many potential buffer overruns, including some extremely weird cases of strings not getting terminated properly resulting in really deadly and confusing buffer overruns. - The recursive page layout code only worked because of an astonishing number of random events not happening most of the time. Basically, it shouldn't have worked in the first place. - Removed the calls to 'stcgfn()', 'stcgfp()' and 'stci_d()' which were absolutely redundant. amigaguide 45.3 (17.2.2001) - The new code to parse path and file names didn't work that well after all. Fixed. amigaguide 45.4 (21.2.2001) - The code to render the currently active button could leave a variable uninitialized, which would lateron cause the button rendering code to crash violently. amigaguide 45.5 (22.2.2001) - Modified the code that renders links again not to assume that after running off the end of the link list means that the currently active line needs updating. This avoids lines being printed twice during scrolling. Neat bug, eh?. -------------------- AmigaOS 3.1.4.(1) project ----------------------- amigaguide 45.6 (8.3.2018) - In case a requested node cannot be found, AmigaGuide delivers now at least an error code instead of just staying silent. amigaguide 45.7 (1.9.2018) - Amigaguide uses now the RVI from rexxsyslib.library V45 and no longer the static version from amiga.lib. amigaguide 45.8 (10.9.2018) - Fixes more race conditions on LibOpen. Forgot also to release libraries if LibOpen failed. amigaguide 45.9 (16.9.2018) - Forgot to accquire a semaphore on LibClose() and hence still had a race here. ------------------------ AmigaOS 3.2 project ------------------------- amigaguide 45.10 (4.8.2019) - No longer uses CheckRexxMsg from amiga.lib which is clumsy. amigaguide 45.11 (15.9.2019) - Unused SNPrintf proto conflicted with utility.library V47's version. amigaguide 45.12 (04.11.2019) - Added one pixel to the height of navigation buttons so the text fits nicely amigaguide 45.13 (20.2.2020) - Removed dependency on #include . No functional changes otherwise, but then you may never know... amigaguide 47.14 (07.4.2020) - Implement support for new text command @{IMG } It put the image on a line of it's own. It is paramount that the 3 arguments are given. - Rearrange the controls on top to be more intuitive - Add a "Forward" button so we can go forward in history too amigaguide 47.15 (13.4.2020) - Fix smartwrap layout of images - Fix small visual glitches - Change images tag to @{IMG } as width and height is now fetched from image amigaguide 47.16 (22.4.2020) - Fix a bug in the history system, where we would end up with broken links to the pages we visited - Fix a bug that could cause endless looping if the assign/volume of an image is unavailable. Now we just fail silently to load the image amigaguide 47.17 (7.5.2020) - For links and images "guidedir:" is now a fake assign usable when specifying paths - Fix clearing of window with images and >= windowfull of scrolling - Make clearing more efficient generally so we don't clear more than once and not until needed amigaguide 47.18 (13.5.2020) - change the size of if "not found" image to be 8 x8 pixels (height will actually be one textline high) - Fix a bug if openeing images lower in height than lineheight amigaguide 47.19 (13.6.2020) - Oops I accidentially shared a dynamic string between all instances - Never let the denominator in the page counter be 0 amigaguide 47.20 (17.6.2020) - The path to the "amigaguide.h" catalog string descriptor header file in "amigaguidebase.h" should have been "///locale/catalogs/amigaguide.h", not "//locale/catalogs/amigaguide.h". - Updated "asyncio.c" to use dos.library/SendPkt() in its local SendPacket() function instead of using PutMsg() instead. amigaguide 47.21 (30.7.2020) - Fixed: it was failing to open guides containing lines >= 4096 characters. amigaguide 47.22 (17.8.2020) - Add support for scrollwheel scrolling - this effectively adds it to all of help amigaguide 47.23 (13.11.2020) - Fix a layout issue where links could disappear in combination with wrapping amigaguide 47.24 (31.1.2021) - When navigating back and forth through the history, the active (i.e. most recently selected) hyperlink of previously visited nodes would be forgotten. This caused retraced nodes to always have their first hyperlink shown highlighted, in place of the active one. Now fixed. - The current horizontal and vertical view offsets would be forgotten as well, if the user had changed them while visiting a node already present in the history. Now fixed. - Reworked the rendering of button bevels; it now always makes use of frameiclass for visual consistency, instead of drawing 3D frames by hand in some special cases. Also, button labels are no longer drawn in JAM2 mode, as that's not needed anymore and could disrupt future (or third-party) "theming" of system bevels. - DTM_REMOVEDTOBJECT will now free any loaded pictures (but not their cache entries) to avoid getting into trouble later in OM_DISPOSE by trying to release pens of a screen that may no longer exist. Also, this ensures the pictures are properly remapped again in case the object is re-added to a window belonging to a different screen. amigaguide 47.25 (3.4.2021) - Active hyperlinks could have their background filled with the wrong color if it was not BACKGROUNDPEN when drawn inactive. Now fixed. Not really an issue on a clean system, but potentially so for users of third-party GUI enhancing patches (tsk, tsk).