Revision History ================ WinVN release .99.9 (Released Version): Updated the Winvnfaq.txt file so that it is more recent and includes features up to version WinVN .99-9. Increased the maximum size of a group name from 80 characters to 120 and the maximum size of a timezone string from 20 to 60. A few other constants were boosted in size as well. Undid a patch that broke the get refrences function in WVUTIL.CPP. This breaks the article action (kill file) code for the last reference. WinVN release .99.9 (Beta 4): Added support to the DDE to call additional WWW browsers and added a user interface to set the server ID string to a user specified ID. Added code to check that the Users E-mail address is a valid address. Also checks to make sure people can't insert Unix "pipe" characters into their addresses and exploit some sendmail bugs on Unix. Moved the location of header call to make all winvn source files identical up to the #pragma so that the precompiled header PCH option will work. Changed some initialization code to initialize the string class with "" instead of a null character. and printf statements don't fail when uint32 calls become long in the 16 bit compiler. Disabled the counting of groups on loading in increments of 1 after 32K groups. Was debug code to test failure with large groups that is slowing down people on slow machines. Fixed the GPF on exit for 16bit systems by relocating the definition of the LATEST structure so that it gets defined after the WVString memory pool gets allocated. Fixed a problem in validation of who is allowed to cancel an article. Canceling of articles broke in Beta 2 Fixed a problem in GenerateMIMEBoundaryString that would overflow and cause random bad bad things to happen and not conform to RFC1521 Changed a loop in the Filters code to use a global MAXFILTERS define in wvglob.h instead of hardcoding the maximum number of filters to 1000. Allowed the Reset Protocol Menu Button (the red recycle button) to be active more often during network connections. This is an extreemly crude way to abort connections and a start at allowing an abort capability. Since WinVN isn't multi-threaded, if the other end is still spitting out massive info, there is a good chance this will GPF. Fixed a problem that could cause WinVN to access uninitialized memory if certain header fields such as Organization were included but were of zero length. Merged in all changes for Dec Alpha platform and updated make files so that DEC Axp binaries can be compiled. Created a conditional compile option to support Non Tool-Tips version of WinVN for Windows NT 3.50. WinVN release .99.9 (Beta 3): Fixed another problem where bogus information in headers would cause the string class to release more memory than it allocated and thus GPF. Conditionalized all the C++ Exception handling try and catches to only work with Win32 since the Microsoft Win16 compiler didn't implement it. Fixed the 16bit WVTB Tool Bar DLL code. Beta 2 added tooltips to WinVN32 but at the same time broke the Toolbar for WinVN 16. Fixed a typo in the writing/reading of the WinVN.ini setting that enables/disables sorting the group list. Fixed a mispelling in the NewsRC file. Changed some longs to uint32's. This should keep the 16bit version of WinVN working without forcing the 32bit version to use 64bit sizes when 32 will do. Initialized a structure (sInfo.cb = sizeof(sInfo)) in the DDE code that wasn't getting initialized. Fixed problems with the resource compiler when using the MSVC 1.52 16bit Windows Compiler by conditionalizing some MSVC4.2 AppStudio statements. Fixed the DDE ini code so that it saves and restores the DDE options. Added an option for a user specified DDE ID String. Currently this is in the INI but have not added the ability to edit the ID String from a dialog Box. WinVN release .99.9 (Beta 2): Fix Horizontal scrolling problem in Article Window Partially Fix a problem with new String class from releasing large blocks of memory that were never allocated. Fixed a problem with WinVN GPFing upon Exiting. However, there are a few more places that haven't been fixed. Fixed a problem with the new String class that would cause the Group window to GPF if if someone posted an article with a reference header of just plain <>. Fix to track newly arrived cross posted article. Fixed "Get Latest Unread" if the article threshold was set to 1 and the minimum set to 0, memory would be allocated for only the 1st header. Fixed a problem if the group had more articles than unread, memory was allocated for all the headers rather than what is being read. Also fixed the status bar to update the number being read. Fixed the About box. It was inadvertently left off during the 1st cut of Beta 1. Fixed line below tool bar that was disappeared when new ToolTips code was added. WinVN release .99.9 (Beta-1): Additions: Support for DDE to load up a URL in a WWW Browsers without needing to start a new browser. Added an option in the config menu that allows a user to disable the automatic sorting of newgroups. This can allow people on older/slower/memory poor machines to grab a full list of groups from their server. Option to Catchup all Groups Added support for tooltips on 32Bit version. Needs to be compiled in by setting the /D "COMMCTRL flag in the compiler options. Fixes: Changed many data structures to use long or unsigned integers instead of normal "ints". On 16bit system this caused many bugs when the number of newsgroups or size of an article exceeded 32,000. Fixed a problem in printing if printed article contained more than 32,000 lines. Changed all the WinVN scrolling code to convert ranges from the raw number in a window to a "relative" range position. This fixes a number of WinVN scrolling bugs. Fix "heckler" posts with really long subject lines. Allow cancel article even if FullNameFrom is checked off Fix "off by one" counting problem with marking expired articles 'seen. Fixed a problem when requesting xxx number of articles from the server. WinVN was returning (1st article + xxx) instead of (last article - xxx). This causes real problem when first few articles in a group are set to stay around for a long time and then there is a big gap in article numbers till the recent articles. Fixed a problem where a "<" in an article message-id in the references header (which is illegal syntax) would cause an overrun on the stack. Improved handling of partial reads of large newsgroups. Two added integers in group structure to keep track of range of articles downloaded. Catch up and exit" marks articles loaded as read (ie. instead of entire group, including articles not yet read). Identify expired articles when we try to read them and mark 'seen' (instead of 'unseen'). Fixed parsedate routines to support using WinVN after the year 2000. Rewrote part of the "article threshold" code. Fixed a longstanding problem where no more than 657 articles could be loaded. Conditional compile changes to support port to OS/2 Check against data structure overrun if news server lies about # of estimated articles. This happened with a 'caching server' seen in a few locations in Europe. Fix uninitialized data structure problem with printing. Updated dialog so it says "All" instead of 65535 pages. Fixed the "catch up and exit" code so it marks expired articles as 'seen' instead of 'unseen'. Wrote performant string class. Replaced fixed size article header information with strings. This allows any captured article header to be arbitrary size. Less memory consumption than with fixed size header char arrays, while hopefully retaining performance. Made an optimization to the string class that hopefully makes it slightly quicker - don't delete/reallocate storage if it's already big enough (for assignments). Rewrote Range code as a dynamically allocated bitmap. Eliminates the TypRange shell game when modifying the list of seen articles in a group. Wrote OO/C++ variable size memory pool class for string, bitmap and other memory management. Memory can be allocated/released. Lines in the newsrc file can be any length (?) without GPF problems. Invalid information in the newsrc file is accepted and cleaned up. If the server has renumbered articles, we can handle it gracefully. Proper handling of empty newsgroups. Proper handling of rmgroup'd newsgroups. Add Filter/killfile item for 'number of newsgroups'. Fixed a logic error in determining if newsgroup header needs to be read, made it a little more performant. Fix problem with URL info being improperly parsed, made URL execute buffer larger, removed an extraneous 'strcpy'. URL info with uppercase letters in the "http:" title now handled properly. It was being incorrectly mangled. "Http://www..." previously became "ttp://www...". [There are still problems to be fixed if we encounter "FTP://..." instead of "ftp:://..." etc.] Fixed problem that prevented newsrc error codes from being reported Fixed a problem with crossposting articles