|
Version
|
Date
|
Features/changes
|
|
0.14.7
|
Aug. 30th, 2005
|
Changes:
- Fixed rare problem of some articles causing Access Violation and failing when trying to perform any commands on them when the hierarchy view is disabled.
- [Linux] Parsing of command-line parameters now treats forward slashes at start of a path correctly instead of treating as start of a parameter.
|
|
0.14.6
|
Dec. 25th, 2004
|
Changes:
- The logging flag no longer gets reset to match parent server folder when server is set to use parent settings.
- Fixed broken exit/shutdown when idle features.
- Response handler now accepts all 2xx responses to the MODE READER, AUTHINFO PASS and NEWSGROUPS commands instead of only accepting the expected response codes.
- Minimized status caption/hint now shows condensed ETA information.
- [Linux] Fixed problem with decoder not being able to find and merge multipart articles due to unescaped wildcard characters such as [.
- [Linux] Implemented TDirScan.GetFiles.
|
|
0.14.5
|
Dec. 18th, 2004
|
Changes:
- Fixed problem with applying default values for Delete selected file(s) and Delete selected read-only file(s) queries.
- Added support for sorting by shortened author field values instead of always doing Author sort based on the full author field values.
- Fixed problem with the Mark as Read when closing group value displaying as Ask Me in the Group Properties form and getting reset to that value when accepting changes to the group's properties without remembering to set it back to the desired value.
- Setting Primary and Secondary sorts to the same column no longer causes additional reversals of the sort order and the Secondary sort column now reverts to Filename, or Offset when Filename is the Primary sort column.
- Fixed AV error when attempting to sort Queue by Group column when one or more queued articles is assigned a NULL primary group.
- Connections now changes to Error state and output a warning message when DNS Lookup fails instead of silently aborting the connection attempt.
- Fixed bug in NZB import causing resizing of segment list on each segment processed instead of every 128 segments processed.
- Fixed infinite looping bug in XML parser when parsing files containing 2 or more <!DOCTYPE ...> tags.
- Relaxed rules for NZB file parsing to attempt to handle more data from corrupt NZB files.
- Increasing number of connections to a server now checks the labels of existing connections and fills in any gaps instead of adding all the new connections to the end of the list with possible duplicate labels, which would result in multiple connections writing to the same log file.
- Reducing number of connections to a server now delays removal of busy connections until they finish their current item instead of dropping the connections immediately.
- Double-Clicking a group name on Newsgroups page now properly updates the display to reflect the new subscription status.
- Unsubscribing from an open group now attempts to close the tab for that group before removing it instead of opening an error box and aborting.
- Added popup hints to the Newsgroups and Queue grids.
- Fixed problem with order of subscribed groups and group folders getting mixed up on Groups page after user manually rearranges them.
- Fixed problem with AV's during shutdown when using server folders.
- Rewrote code for saving servers list to avoid potential infinite loops.
- Clicking inside the About box credits area now restores focus to the OK button and only attempts to launch real URL and email links.
- System Tray icon now shows the specified title string in the tooltip box instead of nothing at all when the "Info to show on the caption and in the taskbar button" setting is set to "Always show title" in Options | Appearance | Caption & Statusbar.
- Changed server-group code to switch from a read lock to a write lock when creating new server-group objects during a lookup.
- Adjustment to HandleGROUP to try to detect lost connections and exit out without sending another command to the server.
- Modified XOVER exception handlers to attempt to continue to next article when a bad article is encountered instead of aborting the rest of the header download and stalling the server.
- Added queue size in bytes, ETA and download rate information to stutus information that appears on both the statusbar hint and the title bar (when configured to show the status information instead of the title string).
- Eliminated unnecessary white space padding between ETA and download rate on toolbar for the queue.
- Changed lower limit for number of items to keep in search history to 0, so that user can disable search histories.
- The selection info panel on the statusbar now shows accurate part, file and size data when selecting multiple expanded hierarchy rows.
- Added exception handlers around calls to dump raw header data when using the -dump command-line parameter to prevent BNR from not storing the new article data when a problem occurs trying to write to the dump file such as dump file target HD full, or dump file is locked by another process.
- Fixed a bug in date/time stamp parsing causing seconds to be ignored and its value being combined with +/- time zone adjustment value leading to potential integer overflows and invalid times.
- Added exception handler inside date/time stamp parser to quietly ignore invalid integer values instead of throwing a Range Check exception and failing to store article data.
- Fixed problem with connections stalling after the server disconnects the connection and BNR reestablishes the connection. This problem may have also been part of the cause of the initial disconnect by the server as well.
- Fixed problem with inflated values for selected article, file and size statistics in status bar in certain situations when selecting multiple rows in the Hierarchy view.
- Numerous minor optimizations, such as adding the const directive to string and array parameters passed into various functions that do not modify those values.
|
|
0.14.4
|
Oct. 6th, 2004
|
Changes:
- Fixed problem with loading Default value for Delete selected file(s) and Delete selected read-only file(s) queries. Was overwriting the regular regular version's value with the read-only version's value and resetting the read-only version's value to "No".
- [Windows] Fixed problem with random garbage returned by browsing for a directory.
- [BNR3] Now displays correct icon on main form.
|
|
0.14.3
|
Oct. 3rd, 2004
|
Changes:
- Modification to yEnc decoding routines to make them more robust against mangling by ZoneAlarm.
- Fixed problem with refreshing headers by XHDR stopping after downloading Message-ID's without downloading the other fields causing those articles to only appear in the group when also available on a server that uses the XOVER command.
- Fixed problem with freeing the server-group offset maps too frequently causing them to be reloaded more than necessary. This should help with delay the heap fragmentation problem when downloading headers with the XHDR command.
- Reduced chance of duplicate refreshes when using chunks. Should also prevent some other phantom refreshes.
- Toggling the Hierarchy view for a Message-List, now turns off the Use Parent Settings option for the group so that this setting will be remembered between sessions.
- Altered download manager to download first match instead of last match when several queued articles are equivalent (same date, same score, unknown Article-ID, downloaded by Message-ID)
- Fixed problem with "Use Parent Settings" option being toggled on when a group's default primary sort options are set to sort in reverse on the Group Properties | Sorting tab.
- The default Primary & Secondary sort options for root group folder are now initialized to Subject & Filename instead of Offset and Offset when launching BNR without an existing configuration file.
- Secondary sort column header now displays "(2r)" instead of "(2)" when sorting in reverse order.
- Default secondary sort column now honors its own reverse option instead of reverting to match primary sort column's reverse option.
- The "Offset" option for the default primary/secondary sort column is now replaced with "(default)", which more accurately describes how it is handled by the sort algorithm. This value corresponds to "Subject" for the primary sort column, or "Filename" for the secondary sort column.
- Setting the default primary sort column to "(default)" ("Offset") no longer resets default secondary sort column to "Filename" unless the default secondary sort column is set to "Filename" or "Offset".
- Setting the default secondary sort column to "(default") ("Offset") is now honored when default primary sort column is not also set to "(default)" ("Offset").
- Settings on Options | Confirmations page now applied when user clicks on the OK or Apply buttons and discarded when clicking Cancel button rather than applying them immediately.
- Added settings to confirm removal of servers, groups, folders & files on Options | Confirmations page instead and removed general confirmations setting from Options | General.
- Added setting to Options | Appearance | General for displaying only the author names when FROM headers contain both author names and email addresses. Works when FROM header matches one of several commonly used methods of including both a display name and email address in the FROM header. Displays the full FROM line when no display name detected or a null display name detected.
- Queue.xml file not remembers current state of partial header refreshes instead of converting all header refresh items to GROUP commands.
- Fixed problem with connections stalling under certain circumstances such as trying to handle chunks.
- Implemented sorting of sub-nodes by current sort columns when expanding a hierarchy node instead of leaving them in a random order.
- Closing a hierarchy node now automatically scrolls up to fill any empty space at bottom of screen with hidden rows.
- Modified NZB Import form to show "Download Directory" instead of just "Directory" to clarify the purpose of the Download Directory field.
- [BNR3] Optimization to SQLite version of GetMap2 suggested by Slain.
- [Linux] Changed code to use QTrayIcon component for minimization to the system tray.
- [Linux] Added Simon Kissel's runtime fix for the Kernel 2.6.8 Fedora Core 2 Exec-Shield.
|
|
0.14.2
|
Aug. 16th, 2004
|
Changes:
- Fixed problem with scrollbars not updating properly after resizing the columns in a Message-List page.
- Fixed some problems with selected articles resetting to null under certain circumstances immediately after opening a Message-List page.
- Fixed potential problem with secondary sort by Author or Filename when using the new sort method.
- Fixed several problems with auto-downloading articles that match Want Filters.
- Added support for using Article-Only servers to download articles that were queued by the Auto-Download option on Want Filters.
- BNR now only defaults to the Servers page on startup when there are no servers currently defined. It defaults to the Groups page at startup when at least one server is already defined.
- Fixed closing of Message-List, Image Viewer & Text Viewer so that they switch tabs prior to closing instead of after closing.
- Fixed CLX bug causing current page to change whenever a page is removed even when the page being removed is not the current page.
- [BNR3] Attempting to open 2nd instance using same DB will fail with more gracefully with a message on splash screen like BNR2 instead of with a popup error box.
|
|
0.14.1
|
Aug. 9th, 2004
|
Changes:
- Fixed problem with marking articles as read on closing group not working when hierarchy view turned off.
- Fixed problem with messed up filters on Open & Save dialog boxes.
- Fixed problem with Open & Save dialog boxes not returning the selected filename.
- Fixed problem with auto-shutdown only working when BNR is the currently focused application.
- Modified new sort method (-test1 command-line parameter) to compare the actual strings for all columns, not just the subject column, to ensure accurate sorting of all text columns.
- Applied new patch to fix form z-ordering problems.
- [Linux] Modified splash screen to prevent it from becoming a stay on top form in some Windows Managers.
|
|
0.14.0
|
Aug. 7th, 2004
|
Changes:
- Fixed a bug in IPv6 API detection code that prevents BNR2 from taking advantage of third-party IPv6 packages when Microsoft's version is not present.
- Added chunk size option to server properties (Advanced Tab) for breaking up large header requests into multiple smaller refreshes.
- Many formatting adjustments to forms to better support localized text.
- Added key to abort support to several forms that did not already have allow it.
- Internal Text viewer now allows advancing to prev/next file of same extension just like Internal Image viewer instead of only doing so for .TXT files.
- Added some additional file extensions to the default executable file types list.
- Fixed broken deletion of entries in Optons | Execute | Executable file types list & made it restore focus to Options form after the query.
- Slight modification to queue.xml file specs to make it well-formed.
- Fixed problem with header refresh lower Article ID bounds sometimes being changed to an invalid value higher than upper bounds when the connection handling that item times out.
- Creating Queue.xml & NZB files now encodes special characters that might be present in all string fields (i.e. ampersands in Message-ID's) rather than only in the strings most likely to need them.
- Patched XML parser to preserve unescaped ampersands and undefined entities instead of removing the & character and matching ; character to help support importing improperly coded NZB files as well as Queue.xml files generated by old versions of BNR2.
- "Mark want filter matches for download even when file is incomplete" option added to Options | Download page.
- Fixed a UUE decoding bug where special text denoting end of an multipart segment was being misinterpreted as part of the encoded data stream resulting in corrupted files.
- Double-clicking on subject line of a file, excluding fileset header rows in the hierarchy view, now attempts to execute the file.
- The auto-shutdown when finished feature now only considers BNR to be idle when there are no dialog boxes currently open, so it doesn't keep trying to shutdown while user is viewing an options form.
- Fixed problem with the Remember option to mark or not mark all articles as read when closing a group reverting back to Ask due to the Use Parent Settings option being turned on.
- Changed Connection Manager to perform checks much less frequently to try to improve performance with large queues and full HD.
- Added history to search filter on Newsgroups page.
- Setting the "Expired in ___ days" value to any non-zero value will now automatically check the "Filter is Active" option on Kill/Want Filter Properties form.
- Score field on Kill/Want Filter Properties form now allows full range of -128 to 127 instead of only -50 to 50.
- The "Expires in ___ days" field on Kill/Want Filter Properties form now allows up to 999 days before expiration instead of only 100 days.
- Added automatic enabling/disabling of Apply button on several forms.
- Added ability to resize some forms that were previously a fixed size.
- Rearranged some items in main menu & context menus to match.
- Added Reset command to Groups context menu and changed accelerator from Alt-E to Alt-S to eliminate conflict with the Remove menu item.
- Fixed a duplicate accelerator conflict in Column Configuration Windows.
- Patched yDecoding routines to attempt to correctly decode articles when attachment header is mangled by ZoneAlarm.
- [Windows XP & Linux Only] Added themes support.
|
|
0.13.3
|
Apr. 14th, 2004
|
Changes:
- Fixed bug in offset map code causing all headers for a group to be redownloaded on each refresh, instead of only the new headers.
- [Linux] No longer requires script to bind QT libraries.
|
|
0.13.2
|
Apr. 12th, 2004
|
Changes:
- The server directory naming function now pays attention to the invalid characters list to ensure that a valid name is created.
- Modifications to code for saving multipart article parts:
- Preserves old file when it fails to append the old file to end of new part.
- Deletes new partial file when it fails to write the new data prior to appending the old file.
- No longer saves duplicate copy of a part in partial file claiming to be multiple parts after failing to append old file to end of new part.
- More accurately detects partial files for appending/merging.
- Fixed integer underflow / AV problem with enumerating RAS connections on systems that have no RAS connections (no dial-up connections).
- Fixed download stats to use 64-bit integers to prevent overflowing the downloaded byte values after downloading 4 GB during a single session.
- Fixed cell color caching anomalies when first redrawn cell is one of the special columns (Filename, Size or Parts).
- Changed Connection Manager thread from idle priority to lower priority.
- Fixed NewsRC export function to not output lines with blank group names.
- Modifications to B+Tree scattering code to eliminate allocation of an extra buffer, which eliminates a potential deadlocking problem with corrupt databases, and other corrections to B+Tree code submitted by Peter B. Clements.
- Changed confirmations options to allow defining a default response with or without auto-apply applying the response.
- Article decoder now retries up to 5 times over a 0.5 sec period when it attempts to rename or delete a partial file locked by Windows as in use.
- [Linux] Added support for sending files to Trash.
|
|
0.13.1
|
Mar. 13th, 2004
|
Changes:
- Fixed query box so that it doesn't immediately code when pressing <Esc> to close an open Message List page.
- Changed default button to the Mark All Read query box from Yes to No to reduce chances of accidentally marking all articles as read by mistake.
- Added code to fix some form scaling problems on certain resolutions and DPI settings in Query, Progress & Shutdown forms.
- Removed border icons from Shutdown form.
- Fixed a key deadlocking bug in key lookup function when attempting to lookup an invalid offset.
- Fixed 2 type conversion problems with updating of next free sector offset, which could lead to invalid value and "No free space left to insert key" errors.
- NZB Import form now loads initial NZB directory, download directory, score, and other options from the NZB section of the BNR2.ini file and writes the new values back to that file when the form is closed using the OK button.
- Modification to header refreshing code that should prevent BNR2 from redownloading the same block of headers repeatedly during a single refresh cycle, without preventing those articles from being rechecked in another refresh cycle at a later time.
- Added flushing of Article, Subject & Filename table buffers whenever the subject mask & guessed filename fields are updated when downloading articles to reduce chances of corrupted Subject & Filename data in the event of a program crash.
- Fixed Validator & XHDR Parser to recover when an invalid Article-ID is encountered instead of skipping all remaining articles in the current buffer.
- Want & Kill Counters now get reset to 0 when database is reset.
- Modified connection code to cycle through all IP addresses returned by the DNS lookup when unable to connect to the first result.
- Modification to 4xx handling code to check if article still queued by at least one other server-group before trying to remove item from queue and clear handler regardless. This should help then using article-only servers without the Ignore 423 option.
- Other miscellaneous minor adjustments.
- [Linux] Fixed problem with FreeSpaceCheck always checking root.
|
|
0.13.0
|
Feb. 29th, 2004
|
Changes:
- Added support for importing/exporting NZB files.
- Implemented IPv6 support for Linux and IPv6-enabled versions of Windows.
- Added exception handler to execute handler for the server connections to prevent entire program from crashing due to exception errors occurring in this handler.
- Added exception handler around Message-List KeyUp handler to try to catch exception errors attempting to process commands instead of closing down BNR2.
- Modified code for refreshing Message-list rows to use last part of multipart article set instead of the part that finished downloading last when viewing the Message-List in combined mode so it will match the row containing that set and redraw that row when the parts download out of order.
- Modified Message-List code to recompute Wanted and Killed article counts at the same time it computes New article count.
- Fixed a problem with linking queued multipart items during loading of queue.xml file at startup.
- Eliminated special article offset codes for currently downloading Article-ID's, which are no longer needed since connections no longer try to help each other. This should allow servers to resume where they left off in the event of a lost connection while in refreshing headers.
- Added "Don't check for new/expired articles within range" option to Server Properties | Commands tab to skip LISTGROUP or XHDR Lines commands to look for new and expired articles within the Article-ID range.
- Fixed an Integer Overflow problem in FileCheck code when checking for size differences for name/exact matches.
- Fixed an Integer Overflow problem adjusting article and file sizes of yEncoded articles when parsing subject lines.
- Replaced Yes/No & Retry/Ignore message boxes with a custom message box with keyboard shortcuts for the buttons.
- Some Yes/No queries now have option to remember the answer and stop asking.
- Added Confirmations tab to Options for changing the Yes/No/Ask state of new memorizable query answers.
- Increased upper limit for Max Headers to Download options on Server and Group Properties window from 100,000 to 2,147,483,647 (max signed integer).
- Fixed several type conversion problems with article data.
- Fixed AV problem attempting to display active file/group name when lookup of current JPEG/TXT/group page returns null result.
- Modifications to startup functions to improved the performance of the splash screen so that it can redraw itself when necessary.
- Moved Connection Manager code out of main thread into its own background thread for much better performance with large queues.
- Modified header refreshing code to force flushing of MsgLst.bnr buffers. Should help reduce amount of lost data due to abnormal program terminations.
- Adding flushing of MsgLst.bnr buffers after resetting a group.
- Fixed problem with B+Tree code using 0 (zero) in some calculations that should use the size of the table due to variable scoping issues.
- Fixed problem with expiration code preventing article keys from being removed leading to TArticle.Write...RefCount=0 errors and corrupted data.
- Fixed an index range problem with loading Expired.bnr file into buffer to delete expired articles.
- Modified article decoding routines to be able to recognize variable white space when searching for encoding method used.
- Added names for extra columns in Group Properties | Sorting tab options so the column names show up by name instead of by number.
|
|
0.12.7
|
Jan. 25th, 2004
|
Changes:
- Added exception handlers around article header update code to issue warnings about database corruption and then attempt to recover instead of failing.
- Modification to LISTGROUP command to not mark the command as completed until after the last buffer has finished downloading to prevent some AV's resulting in lost headers.
- Modification to header handling routines to use the Group object present in the queue items instead of the connection's active group string to fix problems when skipping GROUP commands such as connections constantly redownloading the same bad article.
- Optimized out some other local Group object & Group name string variables in favor of using the queue item's Group object instead.
- Further optimization of Message-List DrawCell code to cache previously computed color type values when refreshing an entire row at a time (scrolling).
- Fixed bug on Newsgroups tab causing excessive rows when filtering the newsgroups list.
- Modified Connection handler to accept non-standard 202-299 responses as successful connections. Will issue an informational warning if warning level is set to all.
- Modified Connection handler to not abort with an error in the event the NEWGROUPS command returns a 5xx (unsupported) response.
|
|
0.12.6
|
Jan. 18th, 2004
|
Changes:
- Implemented Killed column for Groups page.
- Added storing of Wanted and Killed article counts in BNR2.ini file.
- Implemented adjustment of New/Wanted/Killed article counts when toggling flags on the Article Properties page.
- Fixed AV problem in Connection Manager, which also prevents resetting of target server to "any" when the chosen server does not have the article.
- Added Suspend & Hibernate methods to the Shutdown tab in Options.
- Fixed failure to copy parent settings and remember the "Use parent settings" options in newsgroups.
- Added null pointer check after all GetBuffer calls to ensure that the function succeded.
- Articles bodies saved as text now excludes duplicate period in lines that begin with a period.
- Modification to unique filename generator to force it to find the next lowest unused "filename(#).ext" name instead of appending "(2)" multiple times.
- Hack to prevent resorting rows in Newsgroups, Queue & Message-List grids when resizing the column widths or even just clicking in the resize region.
- Modified Newsgroups page to stop constantly resizing the column widths every time the user switches back to that page or resizes the main window.
- Queue.xml file structure modified to include Server-Group-ArticleID information for all queued articles to eliminate scanning server-group maps at startup.
- Increased average download rate history data from 5 seconds to 15 seconds.
- Added server option to skip GROUP commands when downloading articles. Only available when downloading by Message-ID.
- The FreeSpaceCheck now checks the size of the closest existing directories for queued files when the full target directories do not exist yet instead of going ahead and creating them before any parts have been downloaded.
- Deleting text in the default download directory field on the Server Properties window now reverts to the parent folder's default download directory field.
- Added new setting on Options | General tab to choose method use for Quick Filtering: case insensitive, case sensitive, or RegEx.
- Optimization to Message-List grid's DrawCell handler to speed up redraws.
|
|
0.12.5
|
Dec. 6th, 2003
|
Changes:
- Added check for underflow when adjusting Wanted counts when manually toggling the Wanted flag.
- Fixed problems with adding to Wanted counts every time the Killed flag is manually toggled on or off.
- Fixed problem with queue grid moving up too far while at the end of the queue when it refreshes.
- Added option to Options | Download page to allow using lower priority servers while higher priority servers are currently either stuck in a retry loop or offline (error or user disconnected).
- Fixed some range check errors in map lookup and sorting functions used by PartCheck and elsewhere.
- [Linux] Modified tray applet code to skip creating the tray applet when there is no tray to receive it, and to free the tray applet in the event that it encounters a serious exception trying to initialize the tray applet.
|
|
0.12.4
|
Nov. 30th, 2003
|
Changes:
- Fixed problem with Download option on Want Filters not always queueing up the Article-ID's.
- Modified code for loading queue.xml to ensure that the default flags set are included in header and body items just in case.
- Added exception handler around the queue.xml loading code to catch errors some may be receiving trying to load the queue, and try to recover instead of causing the program to terminate.
- Added a catch all exception handler around all code that executes after creation of the main form to log proper error information in the log instead of having the OS report the exception in a message box with nothing written to the log.
- Modified code for computing Ready percentage for group refreshes to only compute based on the number of Normal and Header servers instead of all servers.
- Added new queue color type for items currently being downloaded.
- Fixed problem with editing Kill/Want filter RegEx string that would move cursor to the end of the string when trying to delete part of the string.
- Modified code for reloading queue from queue.xml to not enqueue the Article-ID's from Header-only and Dormant servers that still have an old server-group file in the server directory.
- Modified Download Scheduler to never try to download articles from the Header-only and Dormant servers.
- Fixed NewsRC Export code to be able to export the full list of newsgroups instead of just the filtered list.
- Fixed problem when using the old sort function (default) and the user tries to sort by the Score, Date, Time, Download Directory, or Lines fields, which are not supported by the old function.
- Modified Queue grid refresh method to reduce chance of hidden queue items when the grid is nearly empty.
- Modified Message List score editor to match the height of the cell with a minimum height of 18 pixels.
- Modified Options dialog to do better job repositioning the OK, Cancel & Apply buttons based on font scaling and resizing of the form.
- Fixed problem with Newsgroups tab loosing current sort order when subscribing or unsubscribing from a group while sorted by one of the server columns.
- Added thousands separator to article counts in the Marked, Wanted & New columns on the Groups page.
- Added thousands separator to existance counts and total number of newsgroups count on the Newsgroups page.
- Made Newsgroups columns resizable and moved all of the server columns to the left 2 pixels to keep the rightmost digits of the last server's counts from being covered up by vertical scrollbar.
- [Windows] Modified hints to use the user's defined ToolTip color scheme from Control Panel | Display | Appearance | Advanced instead of the default color scheme.
|
|
0.12.3
|
Nov. 17th, 2003
|
Changes:
- Fixed bug in directory validation code to recognize drive names when the path is less than 6 characters long.
- Fixed bug in directory validation code to recognize UNC paths (again) and expanded UNC support to also recognize paths to any domain instead of just local drive letters.
- Modified behavior of the max headers settings for both servers and groups to not only download up to x headers but also expire all articles older than the most recent x headers instead of adding up to x additional headers on each refresh.
- Fixed an AV condition in TViewList.InvalidateArticle.
- Fixed a problem with TSrvGrp.AdjustServerFile that could result in corrupted article offsets whenever it expands the offset map to insert new headers at the beginning.
- Modification to XOVER handler to check for other blocks of missing data, just like XHDR commands instead of just assuming that it was done after the first XOVER command.
- Added new Ignore 423 (No Such Article) option to the Options | Advanced page. With this option set, articles will not expire due receiving this error attempting to download articles.
- Modification to code for handling finished queue items to make header refresh items automatically refresh the screen to show they are handled.
- Added exception handler around LoadRASConnections code to only report these error when showing all warnings and also to give back more information about where in the function the error occurred.
- Added exception handler around code for initializing use of the system tray to allow program to continue working without this ability. If the program fails to initialize access to the system tray, it will disable the Hide feature.
- [Linux] Added support for tabbing backwards in various page controls.
- [Linux] Added check for failed attempt to lookup Atom in code for system tray icon, which should fix the BadAtom errors.
|
|
0.12.2
|
Nov. 13th, 2003
|
Changes:
- Fixed problem with hiding/showing/disabling/enabling of Newsgroups menu.
- Changed Force Non-Exist command shortcut from <Alt><N> to <Alt><X> to remove conflict with <Alt><N> shortcut for the Newsgroups menu item on the main menu.
- Modified some key handlers to pay attention to modifier keys (Shift, Ctrl, and Alt).
- Fixed bug in 0.12.0 & 0.12.1 that caused false assertions failures leading to dumping sectors to DB log files.
- Fixed bug in 0.12.1 that caused infinite loop in the event that one of the above mentioned assertions was triggered.
- Modified server status messages to include a thousands separator in header download progress information.
|
|
0.12.1
|
Nov. 12th, 2003
|
Changes:
- Modified code for reading download directories from the BNR2.ini file to add the trailing path delimiter whenever it is missing.
- Modified code for validating directories so that if the path delimiter is included in the trim character list, it will be ignored at the very beginning or end of the path.
- Fixed bug in 0.12.0 where the < and > surrounding the Message-ID's of queued articles were being written to the queue.xml file, causing all queued articles to be skipped when reloading the queue after a restart.
- Fixed selected articles size on status bar to display the size of only the selected parts instead of the size of the full file times the number of selected parts when viewing a group in non-combined mode.
- Fixed selected articles count on status bar to display the correct number of selected articles when viewing a group in non-combined mode.
- Fixed scoring of selected articles to only consider the selected parts instead of also repeatedly adjusting all previous parts to each selected parts when viewing a group in non-combined mode.
- Fixed bug in filtering articles to hide those that have a file size between a specified range.
- Fixed bug in code that saves download directories for groups and group folders so that it no longer omits the field when it matches the DataStore path (the pre-0.12.0 default path), which causes it to revert to the new default path on the next launch.
- Modified code for dumping database sectors to log files to include an indentifier to show which functions caused those sectors to be logged.
- Modified code for dumping database sectors, so that logging of errors after startup is complete only occurs when the warning mode is set to Verbose.
- Modified code for determining when to do a group validation so that it does not waste time performing a validation when the entire new range of articles is after the old range without any overlapping articles.
- Fixed handler for 423 error to not attempt expiring any articles off of article-only servers, which would mess up the reference counts.
- Added an option on Options | Advanced for turning off the very slow scan for possible articles from article-only servers when loading the queue.xml file. This option will probably be temporary until the queue.xml file is modified to include the additional information necessary to load all items without scanning the database.
- [Windows] Replaced code for determining user's My Documents folder with a version that should work on Win95 and NT 4.0 systems without IE4.0 installed so that users with one of those OS's can still use BNR2 without installing IE4.0. This path also now defaults to "C:\My BNR2 Downloads\" in the event the code returns an empty path.
|
|
0.12.0
|
Nov. 9th, 2003
|
Changes:
- Optimized FreeSpaceCheck to hold the article lock as briefly as possible so that other threads can use it.
- Modification to FindKeysByOffs code to prevent infinite loop in the event that the offset is never found.
- Added stack dump to all generic exception handlers to help in tracking down causes of exception errors.
- Added new server mode setting to Server Properties | Advanced page. The available modes are: "Normal" (use this server as normal to get headers and articles), "Headers" (only use this server only to download headers), "Articles" (use this server only to attempt to download articles based on Message-ID's downloaded by other servers), "Dormant" (don't use this server at all).
- Fixed bug in Download Scheduler that caused invalid server targets to loop infinitely. Invalid server targets now revert to any target. Those using this "feature" to download articles from servers without downloading headers must now use the new "Articles" server mode for this.
- Added Newsgroups menu to main menu containing all of the same commands that appear on the toolbar of the Newsgroups page.
- Changed default root Newsgroups folder download directory from the DataStore path to a sub-directory under the user's My Documents folder [Windows] or the $HOME directory [Linux].
- If any other subscribed newsgroup or newsgroup folder fails to load its DecodeDir field from BNR2.ini, it now defaults to the download directory for its parent folder instead of the DataStore path.
- Added check for need to flush previous article data to disk before resetting to a new blank article. Failure to do so could lead to forgotten changes to articles being modified by other threads during header refresh.
- Added check for need to flush previous article data to disk before expiring another article.
- Optimizations to lazy writing to eliminate some excessive writes during expiration of articles.
- Completely rewrote -ini parameter handling code. The code now confirms creation of paths that do not exist instead of silently reverting to the default path and filename. If the last part of the path after the final path delimiter is not an existing directory, is not an existing file, and does not end in the expected .ini extension, then assume this is part of the path, not the filename.
- Fixed file/directory validation code to check for invalid characters when validating a full path, which only applies to manually entered directory names. Previously only checked for them when validating a single individual file or directory name, which includes auto-appended sub-directories and all names of downloaded articles.
- Added directory validation to download directories entered in the group properties window.
- Added directory validation to download directories loaded from the INI file just in case user has altered this file.
- Modified Connection Manager to only start one auto-connect attempt at a time instead of ending up with the max number of connections all ending up in a retry loop even when there is only one item that the server could handle.
- Added "Initiate parallel auto-connect attempts" option to the Server Properties | Connections tab for reverting to the old method of starting multiple parallel auto-connect attempts to a single server.
- Fixed phantom refreshes of groups immediately after resetting a group.
- Added ability to use <Ctrl><Tab> and <Shift><Ctrl><Tab> to tab forward and backward through tabbed page controls that did not support it before, and fixed problem with failing to wrap around to the other end.
- Added <Ctrl><P> as a global keyboard shortcut for pausing and unpausing the queue.
- Optimized code for marking articles as read/new to update the visible articles list, including removal of expired articles without needing to resort to a full resort for better performance.
- Selected the options for Connect-On-Demand, Auto-retry, and download articles using the ARTICLE command by default for the root Servers folder.
- Changed default shutdown computer when finished option from Exit to Shutdown.
- Added a query to open a connection for downloading the list of available newsgroups immediately after adding a new server.
- Fixed function for toggling flags (such as the Save As Text flag) on selected articles while in uncombined mode only affects specific parts that are selected instead of all of the previous parts in any selected multipart article parts.
- Fixed a problem with detection of encoding method that would sometimes misidentify part of a yEncoded article as being UUEncoded resulting in that part being saved as 45 bytes of garbage.
- Modified NewsRC export function to default to exporting only the subscribed groups.
- Added options to include Lines & Files columns on Message-List pages.
- Added ability to sort the master newsgroups list by the article counts by clicking on the column heading of any server. Clicking on the column heading for newsgroup name sorts by the newsgroup name.
- Added "Number of past quick filter searches to keep in history" setting to Options | General. Saved under the new MaxHistory field in the config section in BNR2.ini file.
- Added flags field to queue items in queue.xml for storing the internal flags related to queue items.
- The article decoding routines now uses the Save as Text flag in the queue item instead of the flag in the article record, so they will still save as text even if this flag was toggled off for the article itself.
- Fixed code for choosing color to display article in Message List pages based on the Marked, Killed, Wanted & Read flags so that all parts of a multipart article set are tested for these flags instead of just testing all parts for a Marked flag and then testing only the first or last part for the remaining flags.
- Fixed inversed secondary sort by Date or Time column.
- Fixed new sorting code to use part size instead of file size when sorting by the Size column while in non-combined mode.
- Optimization to new sorting routine to reduce memory usage slightly.
- Added server name to some yEncode decoding error messages where the error could have been caused by a bad download.
- Optimization to file/directory name validation function to store length of string instead of constantly recomputing.
- Fixed bug in network path portion of the file/directory validation function that could try to look at characters beyond the end of the string.
- Modified file/directory name validator to wait until it is almost finished before truncating the path to the max path length limit since removal of any invalid characters from the name will help shorted the name. It now does this just before applying trim characters to the end of the name and the check for changing blank name to "noname".
- Altered handling of -quick parameter to still try to load the queue.xml file, if it exists.
- Optimized code for linking new multipart queue items to other queued parts from the same set to only use the article class once per part instead of once per part per each item in the queue. Should reduce bottlenecking with connection threads trying to access the article class when the queue is not paused.
- Modified code for marking articles for download to skip the mark incomplete article sets query when viewing the Message List page in non-combined mode.
- Optimized Queue-Connection interface to allow connections to rember which item it is currently handling instead of having to look through the entire queue to find it.
- Fixed bug in Server-Group class that would give an AV in the event the program tries to lookup an offset in a server-group pair without first loading the server-group table into memory.
- Modified code for adjusting server-group file to ensure that the Server-Group class is always released when it is finished so that header refreshes no longer leave the server-group tables loaded when they are finished and leaving the memory allocated.
- Added some additional validity checking and numerous other changes for simplicity, performance boosts, etc.
- Modified handling of response to GROUP command to send a new validation command (XHDR Message-ID) to confirm that the most recent overlapping Article-ID still points to the same article when the new min/max Article-ID's are less than the old min/max Article-ID's to decide whether or not it needs to expire all articles and download them again.
- Modified code for opening group to not perform the auto. FileCheck when header commands are still being processed by any connection at that moment.
- Removed forced listgroup on manual refreshes.
- Added new color codes to the Queue page and made the colors user configurable from the Options | Appearance | Colors & Fonts page.
- [Windows] When attempting to open a file that does not have a file association type assigned, the Windows OpenAs dialog box will be triggered to allow creating a file association.
|
|
0.11.7
|
Oct. 5th, 2003
|
Changes:
- Fixed problem with Select All command on Message-List page.
- Fixed problem with free space optimization that could lead to underflows in count of marked articles on statusbar.
- Fixed a couple deadlocking conditions in manual and automatic mark-for-download functions.
- Added an exception handler around code for optimized free space checking code to prevent connections becoming blocked for the rest of the session due to any exception errors that may occur inside the new code.
- Added an exception handler around TPartCheck.CheckItem method, which should catch some errors previously caught in the XOVERHandler code. This should allow the remainder of the buffered headers to be processed instead of being lost.
- Added an exception handler around TArticle.Expire method, which should catch some errors previously caught in the XOVERHandler code. This should allow the server to complete the article expiration step and continue refreshing a group instead of getting stuck in "Selecting Newsgroup".
|
|
0.11.6
|
Sept. 21st, 2003
|
Changes:
- Added some more error checking to break out of an infinite loop condition in key lookup by offset code and not try to search for a null key.
- Modified INI file writing routines to only store the DataStore path in the INI file when it is different than the location of the INI file to simplify moving the database.
- Added ColumnID to error messages generated by exception errors in the Queue and Message List cell drawing code to help pinpoint which part of the function is causing the error.
- Added check for null group pointer in Queue cell drawing code and attempt to recover instead of throwing an exception.
- Added ability to change default sort order on Message List pages on a group-by-group basis.
- Added Articles | Combine Parts command to toggle whether or not articles in multipart article sets are combined into a single row on the Message List page.
- Modifications to article class to help ensure that changes to certain properties are saved before switching articles.
- Fixed queue loading function to use the same size value as the article marking code, so that queue size should remain the same after restarting.
- Modified queue and FreeSpaceCheck to use a new structure that allows quick access to information about multipart articles to eliminate most database accesses in the FreeSpaceCheck function for significant reduction in CPU usage and sluggishness system performance when a target drive is nearing the free space limit or when checking a multipart set containing a very large number of parts.
- Modified cursor switching code to be multithread aware. Should eliminate problem of cursor getting stuck in hourglass mode.
- Added additional validation and error messages to decoder code, which should reduce corrupted partial files due to failures.
- Fixed bug in code for looking up Message-ID's.
- Added new "Message-ID" column to list of available columns on Message List pages.
- Changed "Date" column on Message List pages to "Date/Time" and added new "Date" and "Time" columns to display only the date or time portion instead of both the date and the time.
- New -auto command-line parameter to turns on the shutdown BNR2 when finished option so that the program will finish off any items in the queue and any auto refreshes and automatically exit.
- Added ability to turn off grid lines on the queue grid.
- Modified Column Configuration window so that the Auto Size flag is not turned on by default when adding a new column to the Queue or Message List column lists.
- Added Shutdown tab to Options form allowing user to choose the shutdown method to use: exit BNR, logout current user, shutdown computer, reboot computer, or poweroff computer. [Linux] Options to shutdown computer, poweroff and logoff only work when user is a superuser. Only closes BNR2 when user is a normal user.
- Added ShutdownMethod field to BNR2.ini file for storing the user defined shutdown method.
- Added Cancel button to query for whether or not to wait for all connections to finish their current downloads.
- Added ability to sort by Score, Download Directory, Date, and Time columns.
- [Linux] Fixed bug in FileCheck delete existing file command to make it case sensitive.
- [Linux] Added Hide tray applet for KDE.
|
|
0.11.5
|
Aug. 3rd, 2003
|
Changes:
- Fixed modifications to row marking code that prevented marking previously downloaded articles.
- Replaced the one period advanced option with an option to perform the free space checks on the root directory of the target drive instead of the actual download directory to get around bugs in the GetDiskFreeSpaceEx function in Windows 95, 98, 98SE and ME. This option is on by default when creating a new install under an older Win9x-class version of Windows (95, 98, 98SE, ME), and off by default in an NT-class version of Windows (NT, 2000, XP).
- Removed extra characters from default invalid characters list since they are no longer needed with the above root directory free space check option.
- Added Article Properties command to Articles menu on main menu and Message List grid context menu.
- Changed default position of NewsRC Import window to center on the main window.
- Changed Queue page ETA to consider only current download rate instead of averaging the current and average download rates.
- Changed default error and dump log file paths from the program directory to the database directory.
- Added -error command-line parameter to allow specifying the location and/or filename for the error log file and changed the default filename from "errlog.log" to "error.log".
- Made queue.xml loading code more robust to help prevent loosing the entire queue whenever a bad item is encountered.
- Modification to directory/file name fixer function to allow specifying network paths in \\?\:\ format without the colon in the drive letter being removed as an invalid character.
- Fixed a bug in yEncode handling code that prevents detection of multiple files encoded in a single article.
- Fixed yEncode handling code to handle articles encoded by buggy yEncoders that report a single part article as multipart or report the wrong value for the end size for a single part article but report the correct size at the beginning. And added warning messages for when these situations occur.
- Added support for decoding yEncoded articles encapsulated inside multipart MIME articles as "Content-Type-Encoding: x-yenc". Should now combine the parts into a single yEncoded file instead of issuing an "unexpected end of encoded data" error for first part and messing up all of the remaining parts due to assuming them to be encoded with Base64.
- Fixed problem with header refresh code that causes certain groups from redownloading the entire range of articles on every refresh instead of just downloading the range of new articles since the last refresh.
- Hack to prevent some perfectly valid downloads from erroneously being discarded as Message-ID Mismatches.
- Hack to cut off buffered error messages when exceeds 64 kB limit instead of attempting to write them to the error log every 32 kB due to lack of thread safety & added lock around main thread code for accessing the buffered errors. All errors are still written to the error log file regardless of this limit.
- [Linux] Modifications to Options, Column Configuration, NewsRC Import, and NewsRC Export windows for better scaling under varying screen resolutions.
|
|
0.11.4
|
July 18th, 2003
|
Changes:
- Added <Ctrl>-<A> keyboard shortcut to Queue page for selecting all articles in the grid.
- Removed redundant <A> keyboard shortcut for selecting all visible articles in the Message-List page grid as <Ctrl>-<A> does the same thing and is the standard shortcut for the Select All command.
- Removed prompt for removal of selected server item when the <Delete> key is pressed while editing the server name.
- Modified error logging code to send buffered errors to errors page every 32 kB and reset it to prevent running out of memory due to cascading errors.
- Trying new method of trimming the error log when it has exceeded 150% of its line limit to see if it clears the excess lines any faster than the old method.
- Fixed some possible memory/resource leaks.
- Slight optimization to some helper functions to use less memory.
- Fixed problem saving invalid/trim character lists to INI file where space character as first or last character in the list of invalid characters was being removed. Now encoded space and # characters using #nn codes, where nn is the hexidecimal value for those characters. Other #nn codes encountered during import of the INI file will be converted to their ANSI character equivalents. This in conjunction with using the default trim characters list eliminates an infinite loop bug where servers connect/disconnect rapidly without downloading anything due to some invalid characters in the filename not being removed.
- Added warning message when switching to the Advanced tab.
- Modified connection class to reset cached IP address whenever the host name is changed so user does not have to restart for the new host to take effect.
- Added code to adjust the queue's total size when adjusting the size of individual queued articles.
- Encapsulated code for accessing the Expired.bnr file into a class structure keeping the file open during the entire session, instead of constantly opening and closing it and gave it a 16 kB buffer for both reading and writing for better performance.
- Changed accelerator key for Shutdown Computer When Finished command from <S> to <H> to eliminate conflict with Servers Columns command.
- Added <Alt>-<C> (from the Queue tab) to restore the default mouse cursor when it gets stuck in hourglass mode.
- Fixed timing on auto close/shutdown routines.
- Added Default buttons to invalid/trim character list fields to restore the default list of characters to those fields.
- [Windows] Added additional characters to default invalid character list for older versions of Windows.
- Advanced option to only allow 1 period in filenames and none in directory names [may be needed in some older versions of Windows]
- Added scroll wheel support to Newsgroups, Queue and Message List pages.
- [Linux] Improved scaling of Options dialog for varying screen resolutions.
- Added new "Do not hide unavailable submenus" option to Options | Appearance | Caption & Statusbar page to prevent automatic hiding of disabled submenus on the main menu.
- Modification to row marking code to prevent adding duplicate articles to the queue in certain situations such as when selection contains a partially downloaded multipart article set.
|
|
0.11.3
|
June 20th, 2003
|
Changes:
- Fixed Server-Group load/release bugs in NewsRC export and import functions.
- Hacked popup hints to display | (pipe) characters instead of using them as special character and truncating the hint at the first occurance.
- Added -scan command-line option to force a scan for expired articles on this startup.
- Optimized NewsRC import for significantly faster check for new groups and additional minor optimization when not adding new groups to master newsgroups list.
- Fixed a couple typos.
- DataStore field now adds missing trailing path delimiter.
- LINUX: Fixed scroll to last row redraw bug.
- LINUX: Popup hints now update text when moving mouse from one cell to another in the grids.
|
|
0.11.2
|
June 10th, 2003
|
Changes:
- Modifications to free space check to work better and throw exception when fails to get free space value.
- Added option to Options | Advanced tab for turning off free space check in case of additional problems.
- Moved location of queue saving function so that items downloading at moment of shutdown have a longer change to finish up, so they don't remain in the queue and end up getting redownloaded.
- Disabled phantom refreshing of groups after deleting header refresh items from the queue.
- Modification to Download Scheduler to eliminate one potential cause of connections swapping back and forth between groups without ever downloading any articles.
- Changed default NewsRC path to DataStore directory instead of BNR2 executable directory.
- Added *.newsrc filter to the default "NewsRC files" file type and altered the default filename under Windows to .newsrc instead of newsrc-.
- Added requirement that BNR2 must be idle to perform a NewsRC import or export and auto-pause queue until finished to prevent database from being modified by connection threads during the process of exporting/importing the file.
- Modification to queue.xml saving function that should fix failure to save article items problem some users were experiencing.
- Added new Advanced option to alter list of invalid characters that will be replaced with underscore characters in filenames and directory names. Stored under InvalidCharList in BNR2.ini.
- Added new Advanced option to alter list of characters to trim from the beginning or end of filenames and directory names. Stored under TrimCharList in BNR2.ini.
- Added the {} and space characters to the default invalid character list in the Linux version.
|
|
0.11.1
|
June 4th, 2003
|
Changes:
- The new Server/Group column order feature wasn't quite working, only moved the title, now moves whole column.
- Enabled Default popup menu item on Column Configuration dialog.
- Fixed broken code for updating Message-List columns when exiting the Column Configuration dialog.
- The new Queue saving code was skipping header refresh entries on restart due to mixture of final field name with earlier draft names.
- LINUX: Fixed typo in script.
|
|
0.11.0
|
June 4th, 2003
|
Changes:
- Added check for null result in call to FindGroupByName function from SendHeaderCmnd function.
- Fixed OnKeyUp handlers for Groups & Servers Pages to disregard all keys while renaming a node.
- Fixed broken UnSubscribe command on Newsgroups page due to the Groups page Remove action being disabled when the Groups page is not the current page.
- Added trimming of Host string value when saving changes to Server Properties and when loading server from INI file.
- Added code to dump queue items into queue.xml file on shutdown and rebuild the queue from this file, if present, instead of much slower scan of the entire database.
- Added code to build a list of article offsets in Expired.bnr whenever the reference count for an article reaches zero, and modified the scan for expired articles to only scan a subset of the database from this list instead of scanning the entire database for somewhat faster startup.
- Added an exception handler to the BTree FindKey function to prevent some crashes on startup due to a corrupted database.
- Modified Article class to force lazy writing of article records modified by internal error recovery code and also in string and flag changing code.
- Added routine to check for enough free space before attempting to download articles. Uses combined size of all marked segments in each multipart article set. [Still need to consider sizes of articles with the same target drive that are actually downloading from other connections at that time.]
- New Reserve Disk Space setting to Options | General tab allows specifying the amount of excess disk space to leave on all target drives to prevent filling up the entire drive. [Give it at least 512 kB per connection, or it may still fill up the drive and loose articles due to articles already downloading when the limit is reached.]
- Some minor text formatting adjustments.
- Added ability to choose columns for Servers and Groups pages and also modify the order, width and alignment of the columns. These settings are saved in the BNR2.ini file under ServersColumns and GroupsColumns.
- Modified header queueing code so that it won't forget the group it was working on whenever a server times out during a header refresh.
- Queue now pauses during startup scans to prevent connections from starting too early.
- Now clears group article count/refresh info whenever an auto-expire occurs.
- Modified download scheduler to consider actual article dates when comparing across different groups for more accurate downloading by expiration order.
- Added support for exporting/importing .NewsRC files.
- Put deletion of Server-Group files on group/server reset inside a try/finally block to ensure the file is still deleted in the event an exception error occurs trying to expire the articles from that file.
- Added new default style setting to Options | Appearance | Caption & Statusbar page for altering the look of the program a bit. This setting is stored in the BNR2.ini file under DefaultStyle.
- Modified group refresh code to not enter a new header refresh item for groups that are already in the process of refreshing headers, not just when a GROUP command for that group is in the queue.
- Modified connection thread code to abort pending auto-connections stuck in a retry loop when there is no longer anything in the queue for them to do.
- <Shift> Clicking on the Group Open command while a group folder is selected now opens all groups in that folder in separate Message List Pages instead of as a single meta group. [Only works with the Open button on the toolbar in the Linux version.]
- Added clipping of First Part Score boost to prevent wrap around.
- Linux: Now saves view filters created inside the program.
- Linux: Now displays information in main form title bar and on the taskbar.
- Linux: Now shows BNR2 icon on taskbar.
|
|
0.10.4
|
March 7th, 2003
|
Changes:
- Fix infinite loop bug when marking selection for download contains multipart article set with some already downloaded parts.
- Added adjustments to Marked Article counters switching the newsgroup for a queued item from the one on which it was originally queued to another newsgroup to which the article was crossposted.
- Added check to abort PartCheck.CheckItem function in the event that the offset passed to that function is null to prevent some "Attempted to write an uninitialized article!" errors.
|
|
0.10.3
|
March 1st, 2003
|
Changes:
- Modified connection threads to clear active group field upon connection to prevent the queue from trying to download an article without first switching to the proper group after a timeout.
- Modified code for marking articles for download to eliminate an unnecessary duplicate database access.
- Fixed a possible deadlocking problem when marking articles for download.
- Included server node expanded flag in list of flags not copied from parent node to prevent loss of expanded/collapsed state of servers/folders on restart.
- Added flag for remembering group node expanded/collapsed state after restart.
- Implemented downloading articles by Message-ID.
|
|
0.10.2
|
February 9th, 2003
|
Changes:
- Fixed bug from 0.10.0 & 0.10.1 where the start minimized to system tray option failed to hide the main form.
- Fixed bug preventing DBScanDate from being updated after each DB scan, which in turn caused the DB scan to reoccur on every launch instead of once per number of days specified in the Deletex Expired Article every ___ days setting.
- Made change to TArticle class to break potential infinite loop problems when encountering bad previous/next article part offsets in code that needs to access all parts in multipart article sets.
- Modified error report on attempt to read invalid article offset to give a stack trace and the offset that was attempted.
- Doubled maximum part size difference in PartCheck to reduce chances of some parts of a multipart article sets from being excluded due to variances in the sizes of the parts.
- Finished implementing new Group | Reset command on the main menu to wipe out all articles on the selected group/folder so that the next refresh will redownload all available articles.
|
|
0.10.1
|
February 1st, 2003
|
Changes:
- Fixed Access Violation and program crash from attempts to access null pointer when restoring main form after minimizing to the Taskbar while on the Newsgroups page.
- Added some Application.ProcessMessages calls to database scanning functions during startup so that the Splash screen will now redraw itself when the user returns to BNR2 after switching to another program.
- Removed displaying of remaining input row in Missing Number error and warning messages in XOVER parser.
- Fixed two cases where an bogus Invalid Next Free Slot error would be issued when Next = Pos + Size.
- More modifications to subject line mask update function to keep the subject line from changing when article is downloaded due to misidentified mask fields.
|
|
0.10.0
|
January 27th, 2003
|
Changes:
|
|
0.9.6
|
January 7th, 2003
|
Changes:
- Fixed the "Cannot focus a disabled or invisible window" exception when using Enter key to select choice for Mark All as Read Query Window while closing a Message List page.
- Added automatic updating of quick filter when selecting an entry in the history box.
- Fixed view filter updating function to stop it from scrolling the entire grid up when marking selected articles as read/unread causes them to no longer be visible.
- Fixed view filter updating function to scroll up when hiding articles near the bottom of the list so that it does not leave unused space at the bottom of the grid.
- Fixed "Auto expire articles not refreshed in -1 days" option to never expire articles instead of always expiring articles.
- Added option to Options|Appearance|Colors & Fonts to hide the gridlines on the Message List pages.
- Added Select All command to Queue context menu.
- Added Delete key shortcut for removing items from Servers and Groups pages.
- Added option to Options|Appearance|Caption & Statusbar to toggle all toolbars between 3D style (default) and flat style.
- Fixed bug in download stats reset date computations for monthly reset that failed to reset month for next reset to January at the end of the year, causing the reset period to become once per year in December.
- Fixed bug in Download Scheduler causing wrong articles to be downloaded when targetting a specific server.
- Updated About Box.
|
|
0.9.5
|
December 25th, 2002
|
Changes:
- Fixed typo in retry message.
- Made a change to database code that should use less memory when deleting keys.
- Fixed types in many functions in article list code to ensure proper handling of articles with extremely large Article ID's.
- Modified article score adjustment functions to prevent rollover at upper and lower limits.
- Modified Group Properties form to allow full range of default header refresh score values.
- Made optimization to Queue OnKeyUp handler to not refresh the grid when unassigned key received and to only refresh the selected score cells when adjusting score values to eliminate flickering of the grid when using keyboard commands.
- Made optimization to Article List OnKeyUp handler to only refresh the effected cells/rows score/mark/unmark commands to reduce flickering when using keyboard commands.
- Added missing line to delete old DirLst.log file when using the -debug command-line option.
- Modified startup code so that -debug command-line option forces a DB scan to occur (otherwise -debug would do nothing when a DB scan is not needed) and overrides the -quick command-line option, which otherwise would prevent a DB scan even when it is needed.
- Fixed bug in buffer logging causing garbage to be displayed instead of keys.
- Disabled Host & Port fields for server folders on Server Properties window.
- Changed base sequential number for renaming duplicate filenames to 2.
- Added code to attempt to save newly downloaded part to a separate new partial file when unable to open existing partial file instead of throwing it away.
- Fixed bug in TArtList.ExpireArticle function that was changing the current article without acquiring the article lock.
- Modified filename/path fixup function to remove multiple path delimiters in a row except at the beginning of UNC paths.
- Added code to restore the BNR2 icon in the event that Windows Explorer crashes while BNR2 is minimized to the system tray. [May not work on Win95 or NT4 without the Windows Desktop Update]
- Modified quick filter boxes on Newsgroups and Message List pages to make automatic updating of the filter an option. Now, the default is to wait until user presses enter after editing the value.
- Modified quick filter boxes to use the Escape key for aborting changes to the value.
- Added option for including subject line as the comment when logging downloaded flags to BNR.csv.
- Added -pause command-line option for starting up BNR2 with the queue paused.
|
|
0.9.4
|
November 20th, 2002
|
Changes:
- Removed hotkey assignment on Kill/Want filter edit window Cancel button to allow Ctrl-C to perform standard copy text to clipboard operation.
- Changed a few other menu item entries to be more standardized.
- Fixed some possible integer overflow problems in FileCheck & Map code.
- Fixed some possible range check problems in FileCheck code.
- Added bounds checking to parsing of part and file numbers in subject lines. Upper limit of 65535 parts per article & 65535 files per set.
- Optimization of CSV line parsing function (twice as fast as previous version, but still only a quarter of the speed of the original specialized version).
- Converted many signed 32-bit integers to unsigned 32-bit integers to support twice as many items and modified code manipulating those numbers to handle the unsigned integers.
- Optimized reverse sort function to simply flip the array of visible rows instead of doing full resorting of the rows. VERY fast.
- Fixed bug in Connection Manager that would not consider connecting any equal or lower priority connections below a connection with a red error.
- Fixed bug in Connection Manager that would disconnect and immediately reconnect to last connection to a server whenever the server using the maximum allowable number of connections for both that server and for the parent folder.
- Fixed some range check problems in Presort function that could cause group to open improperly.
- Added a missing check for invalid offset value in Presort function that could cause read attempt from invalid position errors add garbage rows in Message List.
- Minor optimization to Presort function.
- Added 10,000 line limit to Errors Tab to prevent infinite errors from consuming too much memory and crashing the program.
- Modified download logging function to retry 3 times before giving up on exception errors attempting to log a downloaded file and added logging of the exception error received instead of just silently skipping the entry (not supposed to happen at all).
|
|
0.9.3
|
October 26th, 2002
|
Changes:
- Fixed potential buffer overflow vulnerability in FileCheck code from combined length of path and CSV file strings exceeding 512 bytes.
- Fixed bug in Connection Manager that would sometimes allow closing connections to abort their pending disconnection and continue to downloading files.
- Fixed bug in Connection Manager that could sometimes consider paused connections for the best waiting connection.
- Fixed ForceExist & ForceNonExist button to automatically update their enabled/disabled states when used.
- Reversed score comparison function so that sorting Queue by Score column shows higher scored items at the top.
- Fixed bug in on-the-fly FileCheck to prevent attempting to read from null directory values read from CSV files.
- Updated About page to show new address of the BNR2 web site.
- Fixed Range Check error in AdjustServerFile method.
- Improved Connection Manager's ability to close excessive auto-initiated connections when user-initiated connections exceed folder limits.
- Modified Message List closing code to clear new counts on all groups within a group folder when marking all as read on close.
- Modified Message List closing code to not bother asking about marking all as read when there are no unread messages to mark as read.
- Reverted Message List view Servers list from TThreadList back to TList to avoid Access Violation and crash when program receives a "No Such Article In Group" error attempting to download an article that has expired since the last refresh.
- Modified filtering by RegEx to consider matching to any of the selected header fields instead of requiring matching to all of the selected header fields.
- Restored missing icons on tabs for Message List, Text Viewer, and JPEG Viewer pages.
|
|
0.9.2
|
October 20th, 2002
|
Changes:
- Fixed another possible integer overflow condition in FileCheck size comparison functions.
- Modified FileCheck path/filename comparison functions to use case-insensitive comparison when scanning CSV files in Windows.
- Modified FileCheck path/filename comparison functions to use case-sensitive comparisons when compiled for Linux.
- Fixed code for deleting server-group files to not delete server GrpLst.bnr file by mistake.
- Rearranged program initalization and shutdown code to shutdown the WinSock class before shutting down the configuration and INI classes to prevent getting exception errors from attempts to write the server disconnect messages to server log files on shutdown when some connections were still open and logging of server activity is turned on for those servers.
- Changed File|Exit hotkey from 'E' to the standard 'x'.
- Fixed bug in Server Connect function preventing all unconnected servers in a server folder from attempting to connect.
|
|
0.9.1
|
October 19th, 2002
|
Changes:
- Modified INI code to restore preference value from old preference flags if no Preference field present.
- Modified INI code to store server download limits in kB instead of bytes to allow for higher periodic limits up to 2 TB.
- Fixed several formatted string errors in Options window related to the Memory page.
- Fixed formatted string error in Options window related to Kill/Want filter with expiration date.
- Fixed error in recalculation of total cache size in Options window under the Memory page when manually adjusting values.
- Fixed broken RegEx Flags in View Filters.
- Fixed broken "Activate by default when opening a newsgroup" option in View Filters.
- Added code to reset new counts to 0 for all groups when resetting the database.
- Fixed restoration of normal cursor after removing group/server.
- Added code to delete server GrpLst.bnr files when master GrpLst.bnr file is missing.
- Added code to also delete server-group files when main database is reset.
- Removed defunct Show Hint debugging command.
- Modified Server CopyFromParent function to copy the server's preference value.
- Yet another attempt to fix the non-zero new count bug after closing group and marking all as read.
- Eliminated integer overflow conditions from comparison functions used in new accurate sort functions.
- Eliminated integer overflow conditions from FileCheck size comparison functions.
- Eliminated integer overflow condition from article reference count code.
- Fixed bug causing changes to server name in Server Properties window to not update the name displayed on the Server grid when the "Use settings from parent level" option was set.
- Modified code for saving view filters into BNR2.ini file to write the Name field even when still at default value to get around problem with Delphi INI routines failing to write the section heading line without at least one field appearing under that section.
- Fixed bug in Download Manager preventing servers with download limits from downloading anything.
- Fixed bug in Download Manager that caused servers to continue to show previous status instead of Ready when it has reached its download limit.
- Fixed possible exception error on shutdown due to attempt to write to a server log file after the configuration class containing the path to the server log file has been freed.
|
|
0.9.0
|
October 16th, 2002
|
Changes:
- Replaced old server connect/disconnect code with new smarter connection manager that observes folder connection limits and chooses servers to connect to based on both preference and availability of appropriate items in the queue.
- Expanded server preference values from range of 3 values to 256 values: -128..-1 (Low), 0 (Normal), 1..127 (High). Preserves old preference flags for backward compatibility.
- Moved "Has detected filename" View Filter option to new FileCheck page and added CSV/Disk match filtering options to this page.
- Added server daily/monthly download limits.
- Fixed buffer overrun vulnerabilities in code for updating the Subject, Author, Filename and Download Directory fields.
- Fixed buffer overrun vulnerability in updating of popup hint for Windows system tray icon. [Fixes the serious host of problems appearing in the last few versions.]
- Added several additional time zones to article date parser.
- Using the Shutdown BNR/Computer When Idle options now close program with exit code 64 & 65, respectively.
- Replaced several object lists with thread-safe versions in: KillWant, JPEGView, TXTView, ArtListView units.
- Fixed handling of GROUP command to not allow article counts to drop to 0, so dormant groups are not considered non-existing.
- Fixed new article count routines to remember value between sessions even when the group has not been opened.
- Fixed bug causing authorization fields to be lost on reload from INI file when server is using Parent Settings.
- Added hourglass cursor when sorting Message Lists.
- Added hourglass cursor when removing groups/servers.
- Added exception handling around functions for reading Subject, Filename, Download Directory strings from tables to prevent repeat exceptions.
- Renamed Server/Group "Configure" command to "Properties".
- Changed bytes symbol from "b" to "B"
- Extended server disconnect on idle and disconnect on no response limits to 999 seconds.
- Fixed logging to BNR2.csv file to enclose filenames and directories that contain commas in quotes (previously filenames with commas were not logged at all).
- Rewrote CSV parsing function to support quotation marks and internal commas. Also, made more robust to not use invalid characters when converting size field from text to integer.
- Downloaded updated version of TMultireadExclusiveWriteSynchronizer class from Borland Developer Network website (fixes possible deadlock issue)
- Fixed bug in auto-abort of pending shutdown after unpausing queue.
- Added code to detect and repair circular references in multipart articles to prevent infinite loops.
- Added code to repair missing next part pointers in multipart articles when blank to recover from rare problem where article appears to be complete on the Message List pages, but refuses to even queue some parts.
|
|
0.8.5
|
September 12th, 2002
|
Changes:
- Fixed serious bug in GroupList causing Access Violations and lockups.
|
|
0.8.4
|
September 11th, 2002
|
Changes:
- Replaced spinlocks in FileCheck, GroupList, KillWant & Server classes.
- Fixed Filter-By-Server feature to work with newsgroup folders.
- Optimized for faster filtering by server.
- Fixed Articles Menu to allow showing Servers sub-menu immediately after a Message List is opened.
- Added code to append the name of the currently selected Message List, JPEG Viewer or Text Viewer tab to the title bar.
|
|
0.8.3
|
September 7th, 2002
|
Changes:
- Added ability to filter Message List pages to show only articles that are available on specific servers.
- Added ability to pause individual servers.
- Improved server loading function to try to convert invalid parent indices to new method instead of erroneously attaching as child of another server and omitting from the new INI file.
- Implemented option to shutdown BNR2/computer when not busy. If any Message List pages are open and BNR is configured to ask about marking all files as read, then it will assume the user wants to answer no to this query, instead of holding up the shutdown waiting for a response.
- Converted Article, Server Group & part of Buffer classes to use blocking locks instead of spinlocks. [Faster header download rates and less CPU usage?]
- Made server authorization fields available only for actual servers as they have no meaning for folders.
- Added filename & part number to yDecode error messages.
- Fixed code for interpreting server stat reset times to prevent time entered from sometimes being changed to previous second.
- Expanded dropdown lists for time of day for server stat reset times to include all hours of the day.
- Started converting strings in BNR to string resources to support possible future multi-lingual support.
|
|
0.8.2e (Build 393)
|
August 27th, 2002
|
Changes:
- Increased max. auto-expire & delete expired articles limits to 999 and added -1 for never.
- Fixed INI read/write functions to always load/save the server authorization fields.
- Added temporary -test1 command-line switch for using new more accurate sorting function.
- Added temporary -test2 command-line switch for using old (100% CPU usage) sleep delay while waiting for a lock, instead of new (0% CPU usage) delay.
- Converted all remaining lock functions to use the new sleep delay, except for when the above switch is used to override the new value.
- Fixed several CLX memory leaks on program termination found online.
- Added code to server loading code to attempt to convert old indices to new indices before resorting to appending the item to the root folder.
- Added advanced option to disable delayed disconnect.
|
|
0.8.2d (Build 392)
|
August 24th, 2002
|
Changes:
- Fixed bug in popup for disconnecting connections on exit appearing when connections are active but not busy.
- Fixed bug preventing red Error connections from changing to User Disconnect status when user chooses the Disconnect command.
- Removed authorization fields from group of server settings that get copied from parent level when the that option is used.
- Added code to recurse through child nodes propogating parent settings to any child nodes that have Use Settings From Parent Level set.
- Extended -ini command-line switch to allow specifying a filename without requiring a path name.
- Fixed CLX linked list bug causing scrambling of Server/Group items in certain situations.
- Fixed limitation in Server/Group item lookup code causing items from multiple folders with the same name to all be moved to first instance after shutdown.
- Modified directory browsing dialog to default to My Computer instead of the Desktop for invalid default directories.
|
|
0.8.2c (Build 391)
|
August 20th, 2002
|
Changes:
- Fixed a bug in delayed disconnect feature causing user-disconnected servers to continue trying to connect and preventing server from changing their icon to show as user-disconnected.
- Added popup allowing user to force disconnection of busy connections that are currently waiting to disconnect.
- Added popup allowing user to choose whether or not to wait for busy connections to finish downloading their current items before shutting down.
|
|
0.8.2b (Build 390)
|
August 19th, 2002
|
Changes:
- Fixed a bug in server index values stored in INI file to prevent scrambling of server items.
|
|
0.8.2a (Build 389)
|
August 18th, 2002
|
Changes:
- Fixed bug causing Access Violations when using Exit button from System Tray menu.
- Added code to auto update System Tray tooltip.
- Adjusted Options form default position to center of Desktop.
- Changed web site address on About Box and added credit to myself.
- Added Pause & Options commands to System Tray Popup Menu.
- Added ability to click on System Tray icon to restore BNR.
- Added name of group to the unsubscribe failure due to group currently being open message.
- Added name of group folder to delete confirmation message.
- Fixed handling of Cancel button when removing multiple groups/folders to abort attempt to remove remaining items in selection.
- Fixed master newsgroups view filter button toggling bug allowing both buttons to be toggled on/off at same time.
- Fixed bug causing main form's last normal position and size info to be replaced with maximized position and size on shutdown.
- Added an entry on Options | General for option to start with BNR minimized to Windows System Tray & put both of the Windows-only options into a new group labelled "Platform-specific settings".
- Fixed popup menu code to adjust position of popup menus to prevent them from extending beyond the bottom of the screen.
- Fixed Text Viewer to automatically close page after deleting last text file.
- Removed display of Today download amounts under individual connections.
- Added check for missing tab after article number when downloading XOVER data.
- Made loading of servers and groups from BNR2.ini more robust to handle potential reordering of items due to new requirement that folders appear in alphabetical order at the top of the list.
- Fixed CLX bug that failed to link tree nodes properly that could cause items on the Servers and Groups pages to be get scrambled.
- Current download rate indicator should be more accurate.
- Added a few miscellaneous CLX bug fixes found online.
- Fixed a multi-part article expiration bug that could cause expiration of a part to split the article stack into 2 incomplete stacks.
- Optimized expiration fo multi-part article parts to use fewer database accesses.
- Added command-line option: "-ini <path>[<filename>]" to specify an alternate main INI file instead of BNR2.ini in the main program directory.
- Added command-line option: "-dump" to force BNR2 to dump the data stream retrieved from XHDR & XOVER commands to help diagnose any parser problems.
- Removed inefficient copying of data stream inside inner loop of XOVER parser, replaced by -dump command-line option.
- Added DataStore field to BNR2.ini file to set directory to use for storing database files. The default value is the same directory as the BNR2.ini file itself.
- Implemented the "Use settings from parent level" option for Servers.
- Modified FileCheck existing files table to support larger file sizes.
- Fixed bug preventing items from being downloaded when they were targetted for one server but were also available on another higher priority server.
- Modified download scheduler to first download all targetted items from a given server before downloading non-targetted items to prevent slow servers from wasting time downloading non-targetted items that are also available on faster servers while they still have targetted items remaining in the queue.
- Modified refresh time string function to report "err!" for invalid values and "now" for values less than 2 seconds from current time.
- Made a change to the sleep delay in database locking routines that should reduce CPU usage while waiting for a lock from 100% to 0%.
- Modified code for waking servers upon unpausing to only wake those servers that actually have items waiting in the queue.
- Modified directory selection dialog windos to default to currently selected directory, if it is a valid existing directory, instead of defaulting to the Desktop.
- Modified code for removing excess server connections after changing the max. number of connection to favor connections that are idle or have an error over those that are busy downloading.
- Creating a new Want filter from a Message List page now sets the default download directory to the assigned directory for the first article in the selection, or the default for the group, if the first tiem does not have an assigned directory, instead of starting out blank.
- Modified server disconnection coe to delay disconnecting until the current item completes. While waiting to disconnect, the connection will flash. Selecting the connection and pressing the Connect button before the connection has disconnected, will cancel the pending disconnect. This also affect closing down the connections upon program termination, so it may take a very long time for BNR2 to shutdown because it must wait for the connections to finish.
- Disabled the Remove button for servers that have any active connections.
- Fixed bug in download scheduler causing same-score download by queued order to ignore score values and only download from the first server that has the article leaving other servers with the same priority sitting idle.
- Changed auto header refresh every day setting to every 24 hours.
- Fixed refresh time bug that caused auto-refresh to refresh all groups at midnight and when BNR was launched.
- Added some error checking to parsing of XHDR blocks and modified error messages to report the type of header block that was being processed when the error occurred.
- Fixed server and group removal functions to remove the relevant Server-Group entries from memory.
|
|
0.8.1
|
June 30th, 2002
|
Changes:
- Added ability to minimize to System Tray (Windows only)
- Fixed file delete command to remove non-existing files from
Existing files list (for real this time).
- Fixed broken Pause command on Queue popup menu.
- Converted Config Page to separate Options Window.
- Altered page component to change pages immediately when mouse
button is pressed instead of waiting until mouse button is released.
- Fix bug causing OK buttons to be greyed out when editing properties
of a server folder.
- Server Configuration disabled "Use settings from parent level"
checkbox pending implementation of this feature.
- Server Page New Folder command now triggers Server Folder
Configuration Window just like New Server command and removes the new
folder if user cancels.
- Server Page New Server command no longer gives Invalid Host
exception when removing a cancelled new server entry that has no host
value.
- New Server and New Folder both revert to old selection after cancel.
- Groups Page New Folder command automatically enters edit mode so
user can enter name for the new folder.
- Added code to automatically adjust INI file settings from previous
versions of BNR2 to be best match with v8.x updates (default to Mark
on Score & View Filter Regex default to test both Subject and Author
fields).
|
|
0.8.0
|
June 27th, 2002
|
Changes:
- New Lead Programmer: Jeff Snavely.
- Configuration / General added option to toggle whether or not to
automatically mark articles for download on score change.
- Queue automatically cleans up list when user changes to Queue page.
- Queue allows manually deleting finished items from queue.
- Server / New Server cancel button removes the blank new server
entry.
- Server / New Server OK button only enabled when Host & Port both
not blank.
- Server properties on all tabs except Configuration enbable/disabled
based on status of Use parent settings option.
- New article counts for groups stored in INI file instead of
resetting to 0.
NOTE: Still need to implement code to adjust the counts based on
articles that expire. Values should automatically correct themselves
when group is opened and then closed.
- Message List now inserts correct max part values for multi-part
articles with 256+ parts.
- Added/improved code to disable various buttons and popup menu
commands throughout BNR when not that command is not available for
the current selection.
- Assigned default current page on the various page controls to
ensure proper page is displayed first.
- Downloaded files now fix the subject line masks when true filename
does not match guessed filename to prevent corruption of the subject
line after the new filename is stored.
- Decoder changed unique filename routine to use more common (#)
suffix to filename instead of unusual _# suffix.
- Queue page added a popup menu.
- FilterCfg / Sizes tab added Show/Hide articles with filenames
option.
- Message List pages added server-specific existing/missing parts
lists to the popup hint.
- Queue & Message List pages fixed bug causing sort order to change
when mouse is over a column heading upon releasing mouse button after
selecting rows.
- Statusbar fixed to hide part counts panel when a Message List page
is not currently being displayed.
- Newsgroups page minimized the selection resets to only when the
user changes the filter to be less annoying to users trying to
subscribe to several related groups at once.
- Newsgroups page enhanced behavior of double-clicking an item to
either subscribe or unsubscribe the selected item based on its
current state.
- Groups page added informative message box for failure to remove a
group due to it currently being open instead of just silently failing.
- Added Advanced options page to configuration page control with new
option to ignore 411 (No Such Group) errors to prevent a group from
being removed automatically when this error occurs.
- Groups page modified behavior of double clicking a row to only open
leaf nodes. Folder nodes now only toggle the expanded/collapsed
status as they should. In order to open a folder, the user must use
the Open button or the Open command on the popup menu.
- Decoder fixed code to add .nws/.txt extensions only when not
already there (case insensitive) to prevent bug causing multiple
copies of the extension when several text articles have the same
subject line, and hence the same guessed filename. Duplicate
occurances of the same subject line should now use the same duplicate
name resolution as binary files.
- Message List page added code to file deletion command to to send
the deleted files to the Recycle Bin in the Windows version of BNR
when the Send deleted files to Recycle Bin option is selected in
Configuration / General.
- View Filters extended regular expression matching to allow user to
choose what column(s) (Subject, Filename, and/or Author) to apply the
regular expression for more flexibility.
- Message List page fixed file deletion function to remove entry from
the existing files cache in the event that the file has already been
deleted from the HD outside of BNR and to skip removing from the
existing file cache if BNR could not remove the file for some reason
such as being locked by another program.
|
|
0.7.3
|
May 5th, 2002
|
Changes:
- Added (finally) the article list color and font style setup
(Config / Appearance / Fonts & Colors).
- Added option to limit the info shown on the statusbar for
servers (useful if you command BNR2 via a VNC connection,
for example).
- Fixed Want filter download directory handling.
- If a file already exists in the decoding directory, it will
not be automatically marked for download any more.
- Added an experimental "Append part of article subject to
decoding directory" setting to Group Config / Decoding.
This will append the beginning of the subject to the
decoding directory of each of the articles. This setting
still needs some tuning, though.
- Some other minor bugfixes.
|
|
0.7.2
|
April 21st, 2002
|
Changes:
- Reduced system resource consumption (on Win9X/ME systems).
- Still more improvements to the MIME article decoding.
- When you turn Pause off for the queue, all Connect-On-Demand
servers are now properly reconnected.
|
|
0.7.1
|
April 8th, 2002
|
Changes:
- Fixed the "Execute" problem caused by my reusing shortcut
key "E" for Refresh. Now "F" or "F5" does the refresh.
- Added a "Pause" button on the Queue page, to pause the
downloads (after the currently downloading article/header
data has been received).
- A small change in the header download routine, now BNR2
should not request all MessageID/XOVER headers unnecessarily.
- Multi-part MIME-encoded article download improved.
|
|
0.7.0
|
April 1st, 2002
|
Changes:
- New configuration settings on the Config / General page.
You can now have BNR2 mark the article as read automatically
after download. Also, you can configure how BNR2 should show
multi-part articles that were incomplete when you last marked
the thread as read, and have since become complete (with
parts that are new).
- You can now decide whether you want BNR2 to show statistics
for bodies, headers, or both on the Server treeview. See the
Server Configuration / Statistics page.
- New PartCheck system, now the multipart article threads are
combined while downloading headers (instead of while opening
a newsgroup as in prior versions). This makes it possible to
auto-mark for download (using Want filters) also multi-part
articles. Drawbacks of this new system are a slower header
download and an increased memory consumption.
- Want filters have the ability to select a download directory for
all the articles matching this want filter.
- Kill / Want Filters now have a working Expire feature.
- You can now refresh an open ArticleList with a new Refresh button
on the toolbar. The button animates if there are new articles
(headers received since the last refresh/open of this article
list) in the database.
- Right-clicking (to bring up the right-click menu) in the Article
List now selects the current row under mouse cursor, unless you
have selected several rows prior to right-clicking.
- There is a new item "Save as Text (*.nws)" on the Article List
right-click menu. This toggles the "save as text" mode on/off
for the selected article(s). In this mode BNR2 does not attempt
to decode the article, instead it saves it as a text *.nws file.
- Some bugfixes and other minor changes.
|
|
0.6.5
|
March 18th, 2002
|
Changes:
- BNR2 now allows up to 100 simultaenous connections to servers
that require a login. Other servers are still limited to 4
simultaneous connections maximum from the GUI.
- The number and size of currently selected articles is now shown
on the statusbar.
- BNR2 now keeps track of your Daily and Monthly downloads. You can
configure the periodic resets on the Server Configuration / Statistics
page.
- MouseWheel now works properly. Keep the Shift or Ctrl keys pressed
to scroll by page, else the mouse wheel scrolls by rows.
- You can skip the on-the-fly FileCheck (if this causes a slow refresh
in the ArticleList, for example) by turning on the corresponding
setting from the Config / FileCheck page.
- The Queue page can now be sorted by clicking on the column headers.
Note that sorting by Data or ArticleID columns can take a while if
you have a lot of articles queued.
- Some cosmetic changes, new icons, and other minor fixes.
|
|
0.6.4
|
March 6th, 2002
|
Changes:
- Newsgroup list download is now much faster
- Fixed a bug causing errors "Attempted to write an uninitialized article!"
and "Call of TArticle.Write to Offs=2, MsgID="", RefCount=3506816256!"
when refreshing headers.
- Fixed an erroneous popup message saying a file already exists when
you mark an article with no filename for download.
|
|
0.6.3
|
March 3rd, 2002
|
New features:
- LISTGROUP handling. BNR2 now sends a LISTGROUP (or XHDR Lines for all
articles, if thus configured) during the first refresh of a group
in a session, and always when you manually refresh a group. This
command gets a list of all articles in a group, to doublecheck for
new articles that have arrived out-of-sequence.
- Bandwidth limiter (on ServerCfg window under Advanced settings). This works
as follows:
- Every connection is guaranteed 256 bytes/sec (even if you set the
total bandwidth to 1 kb/sec) to avoid "no response" timeouts.
- The connections only follow the lowest-level bandwidth limit in
the Servers treeview hierarchy they find. That way you can set a
total bandwidth limit, yet quarantee a certain bandwidth
for a lower-level server node.
- You can use the top-level bandwidth limit as a simple bandwidth-balancing
feature, as BNR2 tries to allocate an equal share of
the available bandwidth to each active connection.
- You can now assign articles in the Queue to get downloaded from a certain
server. Use the new "Target..." button on the Queue page to assign a
server to the selected body commands.
- The Queue page has an ETA (Estimated Time of Arrival, i.e. the time
remaining until all articles have been downloaded) indicator. This works
by dividing the total size of the queued articles by the average download
speed (that is, it can at times be quite inaccurate).
- The server password can now be stored encrypted into BNR2.INI.
- You can now change the caption of the BNR2 window, as well as select
when you want to see the caption and when the short status info, from
the Appearance tab sheet under the Config page.
- Keyboard shortcuts for changing the score have a new modifer key, Ctrl.
If you keep Ctrl pressed and hit 0..9, the article score will be 0..-9.
If you keep Ctrl pressed and hit +, the score will increase by 10, and
when you hit - the score will decrease by 10 (the latter might only
work from the numeric keypad, depending on your keyboard configuration).
- BNR2 will now detect already downloaded (or existing) files (or parts
of multi-part files) in the download directory when you mark articles
for download, and ask you whether you want to download these again, or
skip these and download only the missing files (or parts).
- As a byproduct of the above, BNR2 will now show the existing file
matches in the download directory even if you haven't run FileCheck
yet. However, to let BNR2 know of the existing file matches in other
directories and in CSV files, you need to run the FileCheck as before.
Bug fixes:
- The queue page column widths are now stored into BNR2.INI, so the widths
will stay the way you set them.
- Multi-part article temporary files do not have a blank in the trailing
part numbers any more. NOTE! Because of this DO NOT SWITCH TO THIS
VERSION UNTIL YOU HAVE NO MULTI-PART ARTICLES IN THE QUEUE!
- Adjusting score for articles that have not been marked for download
now automatically marks the articles for download as well.
- A few dozen other minor fixes.
|
|
0.6.2
|
February 15th, 2002
|
New features:
-
Experimental! There is a new [Colors] section in the BNR2.ini file (make sure
you start BNR2 0.6.2 and exit it at least once before you edit the values!) that
can be used to customize the colors used in the article list. A later version will
add a GUI for the color changing, but you can experiment with this feature if you
wish. The color values are in hexadecimal notation, in the order RGB, with the
last byte reserved (should be set to zero).
Bug fixes:
-
Fixed the one-extra-byte yDecoding problem.
-
Fixed the problem where article sometimes vanish from the download queue without getting downloaded.
-
Fixed the problem where the download directory was forced to the default directory when you mark
articles for download.
-
Fixed the problem where the Linux version was unable to combine multipart article parts that
had '[' or ']' in their filename.
-
Fixed the decoding directory change not getting stored problem in group config window when
exiting with Enter.
-
Some other minor fixes.
|
|
0.6.1
|
February 10th, 2002
|
Behaviour changes and new features:
-
Experimental! You can select some articles and hit 'P' to show the experimental
"Properties" window for the articles. This allows you to "Swap file set / part numbers",
for example. Most of the features of the Properties window are still missing, the only
things that should work are this file/part swapping and the article flag changing.
This is intended for experimenting and evaluation only, I'll hope to have this fully
working in the next version.
-
You can now select the warning level (Config/General page) between "None", "Normal" and "Verbose".
Normal level shows only potentially hazardous warnigs, while the Verbose level shows also
informational warnings.
-
Now the internal JPG/PNG viewer does not loop over the top/bottom of the article list
when you go to Next or Prev image.
-
The article decoding directory is now fixed into the article when you mark it for download,
so after closing down and restarting BNR2 the articles will get downloaded to the correct
directory even if they get downloaded from a different newsgroup.
-
BNR2 now warns you when you mark incomplete multipart articles for download, with the option
to skip these but mark the other (complete) selected files.
Bug fixes:
-
Server reconnect problem fixed.
-
Multipart file renaming to the final name now correctly handles the situation where a file
with the same name already exists (and does not leave files like "sample.avi" and "sample.avi.1-9"
in the decoding directory).
-
Kill/Want filter deletion now works properly (the items are removed from the ini files as well).
-
Duplicate group refresh commands are not queued any more.
-
Article list now handles the situation where there are fewer lines to show than fits the screen
better (no more hidden items above the topmost row).
-
When you remove a server also the server-specific directory is now removed.
-
Various fixes to yEncode decoding and file saving.
-
Some other minor fixes.
|
|
0.6.0
|
January 27th, 2002
|
-
Automatic reconnect after most temporary errors (like WSAECONNRESET).
-
A new setting on the ServerCfg / Advanced page to retry connection
after any kind of an error. Use with caution, as this can potentially
cause problems in WinSock (if Winsock error) or get you banned from
the server (if you use this to hammer the server after '502' errors).
-
Automatic cache size management (the sizes depend on the amount of physical
memory and the size of the database), with optional manual settings.
-
Kill/Want filter configuration changed, now they both have a separate
"Configure" window like Servers and Groups.
-
You can now Kill and Want based on the current article in the Article List
(use right-click menu or press 'K' or 'W') and from the JPEG viewer (use
the toolbar 'Kill' button or press 'K').
-
Groups treeview has counters for New and Wanted articles.
-
New = New headers downloaded during this session since the last open
-
Wanted = Headers matching a Want filter downloaded during this session
-
"Connection X" -> "#X" in Server and Queue pages.
-
Fixed a crash (stream read error) at startup if some cache sizes were too small.
-
Fixed an Access Violation in ArtList.TArtList.ExpireOneArticle in response to
"423 No Such Article In Group".
-
Some other minor fixes.
|
|
0.5.2
|
January 12th, 2002
|
-
EasyNews looping problem should now be fixed (now you only get a warning).
|
|
0.5.1
|
January 7th, 2002
|
-
Still more changes to the database flushing and locking system.
-
You can now log (debug) the database contents (while BNR2 is deleting
expired articles) by giving a command line parameter "-debug", as in
"c:\bnr2\bnr2.exe -debug". This will result in several BIG .log files
in the BNR2 directory. Use this if you experience database corruption
problems when starting BNR2. BNR2 also automatically writes such log
files if it detects a database corruption itself.
-
New "Download at most xxxx newest headers" option on both Group
Configuration and on Server Configuration.
-
New "Add Disk/Dir to a CSV file" button on the FileCheck page.
This replaces the "RemDrvDb editor" in BNR1.
-
Some other minor changes.
|
|
Items below are for BNR1
|
|
1.4.4
|
July 9th, 2001
|
Bug fixes
-
Note!
This version has been compiled with Borland Delphi 6, so there may be some
minor differences between this and the previous versions. Also, errlog.log does
not contain
source code info if BNR crashes, unlike in previous versions.
-
Fixed a bug that caused corrupted multipart files (second part was often
corrupted)
if the article did not show a filename when the download was started.
-
Fixed an access violation in DirectoryScanner when parsing CSV file rows
|
|
1.4.3
|
June 22nd, 2001
|
New Features
-
Cache file format has changed
to allow the per-article download directories to get saved into cache. Also,
the cache file header now contains information about the last time the headers
were downloaded and the number of
marked and new articles. This info is shown on the treeview when the group is
not open. The display format is:
"newsgroup_name marked/new/all [time_of_last_header_refresh]". For cache files
that are of the older format
only the number of all articles is shown, together with the last file access
time.
Note!
Older versions
of BNR can not use the cache files saved by this version!
-
New item "Show subscribed groups" on the newsgroup page, so you can easily see
the availability of your
subscribed newsgroups on your servers.
Bug fixes
-
Fixed a CSV file parsing problem that sometimes caused the CSV file handling to
get terminated prematurely.
-
Fixed an Access Violation in gFixName routine for certain types of subjects
when changing Download directory.
-
Some minor adjustments to the article download priority code.
-
Some fixes to the auto-download marking code.
|
|
1.4.2
|
June 10th, 2001
|
New Features
-
There are now confirmation popups for various "dangerous" operations, like
marking all articles as read or
deleting files. These popups can optionally be removed using a setting on a
Configuration / General page.
-
Right-Click menu has three new items: "Swap file set / part", "Edit Subject
..." and "Download Directory ...".
The first two are meant for fixing problems with BNR parsing multi-part article
indicators from the article
subject, with the third one you can manually select a download directory for
selected articles. See the help file
for more info.
NOTE!
This version does not (yet) save the user-selected download directory into
cache!
-
Article list statusbar now also shows the number and size of currently selected
files.
-
New FileCheck advanced option: "Use a directory in a CSV file as a download
subdirectory". If this setting is
on, BNR will scan all CSV files it finds during FileCheck and set the directory
in the CSV file to the matching
articles. The "BNR.csv" file is ignored, though.
Bug fixes
-
ESC now closes the article window.
-
Fixed an occasional Access Violation or "Invalid pointer operation" error in
FileCheck
if a CSV file did not have a directory column.
-
Some other minor fixes.
|
|
1.4.1
|
May 27th, 2001
|
Bug fixes
-
FileCheck was buggy and did not always find all files. Fixed.
-
Now PartCheck only handles multi-part articles that have not already been
marked complete earlier.
Runs much faster and should not break threads marked for download any more.
-
Fixed a potential thread deadlock in the GetHighestPriority routine. Hopefully
this helps with the lockups...
-
The "auto-mark for download" setting in the Wanted CSV files page was always on
even if the box was not checked.
Fixed.
-
Fixed news.buzzard.com login proble
|