Multithreaded newsreader for OS/2. Latest version includes, among other things, support for ISO-8859-15 and Windows-1252 codepages and high memory use: see README.TXT for more!
Program is distributed as ZIP package: download to temporary directory and run INSTALL.EXE. See README.TXT for upgrading (backup your existing ProNews installation!). See below for download link(s).
Following ones are the download links for manual installation:
ProNews/2 v. 1.60 (19/7/2008, Panacea Software) | Readme/What's new |
Though this document contains mostly descriptions of bugfixes and
behaviour/performance improvements, at several points code
improvements worth mentioning have been made, that don't have a
direct effect on the program's behaviour.
Fixes up to 1.60 cp125
======================
1) Subject lines split with a continuation containing only a
trailing blank would fool PN/2 into thinking it had an end
of headers line
2) New Groups command on queue would stop offline.dat loading
3) Increase max overall connections to 100 from 50
4) Added PNUCONVSMPSAFE=1 parameter to make working on eCS with
their uconv-smp fix installed quicker. Without this parm, pronews
plays safe and locks access to the uniuconv* functions.
5) Sod the GNKSA, increased max connections of each type to 20.
Since many dedicated news providers allow you to use as many
as 20 connections simultaneously, the GNKSA is obviously out
of date in only allowing 4.
6) PNIGNORESERVERERRORS can be set to ignore server reported
errors and stay online despite them. Use with caution, only
lightly tested!
Fixes up to 1.59 cp120
======================
1) toolbar.ini format change required to allow for fonts with
names > 32 chars
2) uconv.dll appears not to be re-entrant so serialise on
a mutex prior to calling it from now on
3) Use high memory if available for codepage translation
4) Minor logging change when run in -4 loglevel
5) Crash when downloading and the from charset name was shorter
than the "to" charset name for translation
6) Give option to retry if directory for download was not
accessible. Allows for downloading to network drives
that have been disconnected.
7) Filtering did not work if lines= or xrefs= was specified
8) Block up headers better when saving header data to speed up i/o
9) Subject and author blanked out if translation failed due to
bug in uconv.dll. Now uses untranslated text instead.
Fixes up to 1.58 cp116
======================
1) Crash fetching new headers where subject or sender contained
non-asci chars that needed translation and the translated
string was longer than the original.
2) Crash when toggling server online/offline status trying to
set bitmap to be displayed
3) Subject and Composer strings in editable filters didn't
match if the string contained % signs
4) Crash in codepage.cpp trying to decode broken unicode &#nnn
sequences.
5) Posts contained left over garbage when posting with autowrap
off.
6) Add bldlevel strings to exe and dll files (Thanks Bob!)
7) Potential 'fix' for the crash when a group's idx file is
corrupted. Check servernum < 255 and use defaults instead.
8) SMTP AUTH code - initial code drop
9) SMTP AUTH code - tidy up and comment
10) Now logs outbound data stream when using SET PNDEBUG=1
to file debug.log in current directory
11) SMTP AUTH code - two CRLF pairs sent if encrypted response
was exactly 79 chars in length.
Fixes up to 1.57 cp107
======================
1) Postings made in US-ASCII were missing the charset name from
the Content-Type... charset= line
Fixes up to 1.56 cp106
======================
0) After group reload, some article entries could end up pointing
to wrong displacement in article data file resulting in random
garbage being displayed.
1) Upgrading from 1.55 and previous, wrong charsets selected
in menus and in postings.
2) Crash blinking the arrows in the article window again
3) Crash in ProcessMgrLoad() if offline.dat is corrupt.
4) Memory leaks after ULS errors
5) ULS error messages now include plain text version of errorcode
6) Add recovery from 'buffer full' ULS errors, now reallocates
buffer and retries.
7) Subject and From fields are now encoded using base64 or
Quoted-Printable depending on settings for group. Old
code always QP encoded them.
8) Crash opening group with corrupted index or data files Now checks
that article numbers match and gives error if not.
9) PNLOGDIR points to place to store logs - default ".\"
10) Crash opening group containing more than MAXHEADERS articles
11) Crash when saving articles to file or copying them
12) Potential fix for crash while closing a group if any subject and
composer lengths combined exceeded 255 chars.
13) Postings containing base64 encoded attachments were missing quotes
from the filename
14) Speed up multipart article decode selection
15) Crash if an article body was larger than 1.5MB
16) Charset shortcut keys did not work
17) Crash when posting in UTF-8 via email
18) Articles posted in charsets that are not in charsets.pn will now
be translated if the charset is listed in cpalias.pn and has an
alias of the IBM codepage name corresponding to that charset.
E.G. iso-8859-16 is ibm912 in cpalias.pn but does not appear
on the charset menus as it isn't listed in charsets.pn
19) Pronews now exits immediately if any of the *.pn files are missing.
20) Headers would always be translated from their charset to us-ascii.
Now uses the codepage for the group or global settings.
21) Missing trailing characters on some base64 decoded strings
22) UniConv functions failed with 0x2040d error due to missing UniFreeUConvObjects
23) Charset settings in global notebook not remembered
24) ULS support (UTF-8)
25) Added: support for pronews.env environment variable file
Fixes up to 1.55 cp097
======================
1) Divide by zero error in ResizeScrollBar. Added extra
logging and checking.
2) Crash in ActivateGroupArticles()
3) Posting multipart articles, part numbers are now
zero padded.
4) Allocate a larger buffer to read from disk when posting
5) DosAllocMem(OBJ_ANY) doesn't work for TCP/IP < 4.1
and made posting fail with 10014 error. Move posting
buffer < 512MB.
6) Remove panaceasoft email address
7) Missing to-be-downloaded arrows in the article window.
8) Code to auto-recognize "Re: " and "Re:" and adjust
the subject accordingly was broken.
9) If NNTP server timed out 10 times in a row then it
would try to connect to SMTP instead.
10) Resources belonging to processes could be referenced
after being freed.
11) Only copy 255 characters of any status messages.
12) Crash updating task list
13) Add locking around critical control block updates and
references.
14) NEW: environment variable PNALTDATE changes the display
of the date/time in the article window index so that it
includes the year of the post. This is likely to become
a notebook setting at some future time.
15) Memory leak when closing a window with toggle filters
16) Fix crash when deleting last toggle filter
Fixes up to 1.54 cp091
======================
1) Print dialog didn't display Sample text and used 100% cpu
2) Change text in caption on Server settings (page 2 of 3) to
Connection Settings for Selected Server. Update Help file.
3) From address was blank if real name was omitted from setup
4) Add "Stop nicely" menu item to connection popup. Stops
processing and terminates this connection on completion
of current article/decode.
5) Add "Body" to Alt-F search dialog. Brute force search of
article bodies done with no wildcarding.
6) Divide by 0 error calculating article percent complete
7) ISO-8859-15 (Latin 9) support
8) Posting character set ignored in subject field etc
9) Added log message for reason why sig file could not be opened
10) Semicolon not stripped from charset name in headers meant
that some posts were decoded wrongly.
11) Sucessfully is not spelt that way
12) Quoted printable encoding should do spaces and tabs
13) Fix the magic disappearing "Waiting for header data" dialog
14) Sockets not closed when error on connect happened
15) Crash processing xrefs
16) Crash trying to update traffic statistics on newly started
connection thread.
17) Crash processing xrefs somewhere else!
18) Retrieve All Headers got existing bodies confused.
19) Added Reset statistics menu item to connections entry
20) Changes made in server settings are no longer discarded
without warning when you OK without hitting 'change'
21) Evironment variables added:
SET PNXREFLOG=1 - log lines about which articles are being
marked (un)read
SET PNCKPTQUEUE=1 - save queue of outstanding tasks each time
it's updated. May negatively affect performance
22) XRef entries were not written back correctly after an
article was deleted. Could cause wrong articles to be marked
as read or deleted.
23) Added: pronews.log file rotation. SET PNMAXLOGSIZE=100
to get pn/2 to rename the log(s) when they reach 100KB.
Choose your own size. Keeps pronews.log & pronews[1-9].log
24) Active arrows in group window oscillated in wrong direction
25) Environment variable added:
SET PNNOTTOLERANT=1 makes PN/2 expect correct CRLF pairs in the
article data as the RFC specifies. Without this, it will
now tolerate plain LF characters and that will let PN/2
decode articles posted by broken user agents that post
LF not CRLF. Only specify this if you have problems decoding
articles.
26) Messages that name Netscape now say "Browser" instead.
27) Reworked browser invocation code. If browser path is left
blank then we now search PATH for mozilla.exe first then
if mozilla.exe is not found we search PATH for netscape.exe
The first one we find, we SET BEGINLIBPATH for the base
directory that we found the executable in. If the browser
path is filled in, then we attempt to use it so it must
point to the right place. We'll then SET BEGINLIBPATH
for the base directory that was given. This avoids having
to specify the Mozilla directories in config.sys.
Similarly, if the browser parameters field is left blank
we default it to "-url %U" if Mozilla is in use or to "%U"
if it's another browser.
DDE now works with both Mozilla and with Netscape. Netscape
works without any additional information but Mozilla must
be enabled. To enable DDE for mozilla, you must specify
"/dde -url %U" in the browser parameters. It appears that
/dde must be given in lower case for it to be acceptable
to Mozilla as a parameter!
Pronews must start the copy of Mozilla to be used for
DDE purposes, it will not reuse one that's already running.
It will however use a running copy of Netscape and it will
use it in preference to starting its own copy of Mozilla.
28) Article Window now shows XRef info from the XRF file when
you use the new X command
29) Fix crash caused by off-by-one error when closing group
30) Speed up marking as (un)read by checking current status
first - i.e. don't mark things already marked
31) Environment variable added:
SET PNXREFFILTER=1 makes PN/2 pass the list of crossposted
newsgroups and article numbers to the filtering code
for the GROUP= keyword. Default is to pass current groupname
only.
32) Home and End keys didn't scroll the article index correctly
when there were more than 65,000 articles in the group.
33) Philosophy change: 'filter when needed' not 'filter often'!
34) Memory allocation fixes
35) Rewrite filter file loading, saving, creating etc
36) Crash in about 6 different places when posting or loading
a post from the queue with a 255 byte subject.
37) Filter dialogs should now prompt prior to exiting without
saving filters you have changed.
38) Convert filter files even if they contain no filters
39) Be safer about writing to subs.dat
40) HotFilter entry field now allows 255 characters instead of 102.
41) Alt-O didn't go online when in article window
42) Now possible to change 'skip to unquoted' setting in global
settings notebook
43) Crash manipulating selected expanded articles
44) Added two new filter bitmaps and also two new buttons in
toolbar of newly subscribed groups. HotFilter by subject
and by composer, both prompt for parameters.
45) Be more strict about allowable uuencode begin lines
46) Tokenise filters on first use, run tokenised version after
47) New environment variable: SET PNFILTERNOOPT=1 disables filter
tokenisation
48) Tabbing now goes through options on settings->confirmation
page in right order not random as before
49) More URL buffer length problems
50) Memory was limited even after highmem in use. Now has a
theoretical limit of approx 1860MB (~3.7million articles)
though much lower in practice :-(
51) Locate turbo switch for marking articles (un)read
52) Be safer about writing back filter files, rename them around
53) Manual decode dialog box is now resizeable
54) Manual decode dialog box now attempts to size itself to
handle long subject lines
55) Delete Thread included other articles too.
56) Mark (un)read status messages now updated more often
57) Move more memory allocation above 512MB if allowed
58) Adjust default column positions in article window
59) Fix stupid bug selecting more than 1024 articles
60) Speed up 'delete article' processing in same way as 'mark read'
61) Environment variable: SET PNBULKUPDATES=1 has database updates
batched up and done in one pass. Speed!
62) Block up more headers per disk write when saving headers
63) Add -noua parameter to stop Pronews from adding a User-Agent
header. Also -noid omits unique message-id from articles.
64) Attempt to kick connection into life every 3 seconds to stop
connection hangs. Appears not to make any difference but doesn't
hurt!
65) Log message when reset statistics is done
66) Stop strange faces (non-asci chars) in messages and dialogs
67) Detect posts made with Outbreak Express and set default
charset=windows-1252 for these if no other given first
68) Do not detect stray Content-* lines in article bodies
69) Cap max log size at ~2GB then autorotate even if not
specified. Untested ;-)
70) Add compiler version to About dialog
71) Change maximum number of multipart decode parts to 4096 then
abolish limit altogether. Limit of 2048 still applies to
posts that we make but the limit on download is gone.
72) If you set a viewing default charset then this overrode
anything that was specified in the article. Now does the
opposite.
73) Multiline RFC2047 subject fields had extra spaces between
words where each line began. This fix ended up rewriting the
entire RFC2047 decoding routine to eliminate the enormous
pile of spaghetti code that was there.
74) yEnc binary downloads would ignore all parts after one with
a CRC error. With PAR2 files, it's better to have it all.
75) Add SET PNMIMEDEBUG=1 environment variable. Set this if MIME
decodes of headers gives weird results. Very very verbose!
76) Articles that were being watched by filter took precedence
over articles that were replies to own posts when it came
to colouration of the subject lines in the article index.
If an article is a reply to one of your own posts, it is
now the right colour.
77) Fix single window mode - remove it!! Unfortunately original
code was so badly broken that I am amazed it worked at all.
To fix this correctly would have made it so much like using
multi-window mode that it seemed pointless to have both.
78) Filter strings with escaped special characters did not
match if they were exact matches for the string being
searched.
79) Broken multipart decode parts were not coloured (red) correctly
80) Subscribe dialog did not allow the groupname to be scrolled
81) Status bar on "All groups" and "New groups" tabs was overwritten
by status messages from article retrieval.
82) Deadlock between threads switching groups
83) Filter->[...]->Globally is now disabled if "Use Global" is
unchecked in this group settings.
84) Firefox.exe and Thunderbird.exe added to list of 'Mozilla'
programs.
85) Environment variable: PNWAITINTERVAL. Value must be numeric
and is the number of milliseconds to wait before the "Wait for
header data" dialog window appears.
86) Crash attempting to reference memory freed by another thread
87) Crash when 'D'ownloading more than 1 article when they're not
multipart articles
88) Fix ridiculous multiplying menu items on the popup server menus.
89) Add per server statistics about the amount of data downloaded.
90) In the event of deadlock for resources, one thread would loop
until the other released the resource thus slowing down the
thread it was waiting for.
91) Toggle filters were broken
92) Disable pirated registration key. All monies received for Pronews
are donated to charity.
93) Lines starting BEGIN were not displayed correctly when viewing
posts in the post queue
94) Improve standard C library default buffer size (4K) to a larger
value to improve file i/o.
95) Thread deadlock when switching between group windows quickly.
96) Correctly zero pointers to thread data areas that are freed
97) Expand the 'too many headers' dialog window so more of the
groupname is visible.
98) Crash when Ctrl-K cancelling an article from within the article
window
99) Improve recovery when a connect thread get a 'too many connections'
error. If it's the only thread of its type then it will now wait
30 seconds and retry.
100) Correctly zero pointers to thread data areas that are freed -
didn't get them all the first time!
Fixes up to 1.53 cp050 (Release)
================================
1) Status bars could contain residual data after malloc and before
first use.
2) The resources owned by a task were freed before it was stopped
causing crashes when stopping downloads etc.
Fixes up to 1.53 cp048 (Release candidate 1)
============================================
1) Servers wouldn't go offline on a time delay.
2) Start Netscape/Mozilla with our environment not shell's to
allow SET BEGINLIBPATH to work.
3) Make all threads report DNS error to log even if another one
has the error dialog window up.
4) Followup-To code didn't cater for multiple groups in the
Followup-To: line in the headers.
5) Control Panel status line wasn't updated regularly enough after
the previous SIQ fix.
6) Stop hogging the SIQ when doing lots of downloading.
7) Rename source variable DefaultOnline to CurrentlyOnline to more
accurately reflect its function in life.
8) Online servers didn't stay online when tasks completed.
9) Speed up article window closing by tuning CompactXRefs() a bit.
10) Add %G to reply/forward heading to allow group to be given in
the "On Sun 1st Jan 2003, Mickey Mouse wrote in group %G" blah.
11) Google menu alterations - Deja URLs stopped working.
12) Add h_errno to DNS error log message to give more info about
reasons for DNS lookup failures.
13) Amend MAXHEADERS processing in retrieve (new) articles to use
the 'AutoLimit to' as its limit not MAXHEADERS.
14) External editor got confused if OS/2 reused child session IDs.
Fixes up to 1.53 cp041
======================
1) AutoLimitTo entry field was not enabled when UseDefault was
unchecked. Checkbox next to it was but not entry field.
2) $ signs not allowed in URLs or filenames
3) Decode gave malloc error message when hitting D with part (0/1)
selected.
4) Sort threads after threading code so that subject compare works
correctly. Should then thread orphaned articles.
5) Fix GROUPS.DAT properly (i.e. rewrite it) if any entries are
flagged as invalid during load. Stop all groups on servers 5 - 14
from being flagged as invalid!
6) Stop a crash if a window has been destroyed while we are using
it.
7) Remove TOOLBAR.INI entries when unsubscribing a group.
8) Fix toolbar memory leak - one per article window.
9) Wrong window had focus when replying to an existing post.
10) Fix crash with yEnc encoded articles when decoding is
turned off.
11) Allocate memory for NumAutoLimitHeaders in several other
places in the code too to make sure we don't overrun arrays.
12) Correct focus when hitting OK on global settings notebook
13) Add basic validity check of GROUPS.DAT entries as loaded.
Rewrite number of groups at start of file if incorrect. Add
checking for EOF when reading it!
14) Add check for number of headers in group already exceeding
NumAutoLimitHeaders when a group is loaded. Stop overlays.
15) Fix GNKSA signature message focus problem.
16) Memory fix, allocate only NumAutoLimit pointers for all.
17) Only the first 99 newsgroups could be selected from the pop
up menu. Now allows 1000.
18) Add number of groups per server to tabs at top of window. New
groups were already counted but displayed the global total not the
per server total.
19) Wrong number of groups could be written to start of GROUPS.DAT
causing overflow of group listing and garbage on subsequent
display.
20) Correct case sensitiveness of sort of groups tree.
21) When marking articles as read, make sure we have enough memory
for the current article beforehand. Stop crash.
22) Few code tidy ups. Rename MISC to MISC_ACTIVITIES to fit in
with all the other #defines. Include an indication of debug build
vs not in Help/About.
23) Only try to mark an article as read once - not because the
xref list says it exists in the local group and then because it's
in the local group.
24) Comparing 0 and -1 in an unsigned integer doesn't give the
expected results - and crashes.
25) External editor couldn't be started more than once.
26) Restructure popup menus listing available groups.
27) Two semaphores per article window weren't closed off.
28) Memory again... sigh!
29) Trailing blank caused the Followup-To code to be invoked even
when it was the same newsgroup. Additionally made it depend on the
GNKSA switch in the settings notebook.
30) Problem with ridiculous message ids generated by Mozilla
causes messages in response to them to not be part of that thread.
Not related to new threading code and requires a Retrieve all
Headers to correct as it needs the "bad" message to be refetched
and the idx file updated.
31) External editor! Use DosStartSession instead of WinStartApp
except for Windows sessions. Pass it shell env not ours.
32) Selected article now placed on second line of article index if
appropriate when group initially opened. Article scrolling altered
to match.
33) URL's starting file:// didn't launch your browser when clicked
34) Articles in Saved Messages & Sent Messages & would have wrong
timestamps - incorrectly adjusted by TZ offset from GMT.
35) Issue warning message if Followup-To is set to a group other
than the one you are replying from.
36) Change text of Use No-spam-address in Reply-to checkbox
(Settings->Group Defaults, page 3) in settings to better reflect
actual behaviour of Pronews.
37) Change format of From address to "Real Name" <email@address>
to be in line with current standards.
38) References: line incorrect in posts we made in response to
articles with a multiline References: line
39) Rewrite CompactBodies and PurgeBodies and amalgamate the two
to perform both jobs. PurgeBodies was doing half the things
that CompactBodies had already done about 0.0001 seconds earlier
40) Reduce size of allocated storage to amount required rather
as much as we can get away with.
41) Remove all memory freeing related fixes. It can't be done like
that!
42) Rip out and recode the multipart article selection code.
Should now be quicker to select multipart downloads.
43) Added comments about making Mozilla work to Helpers page in
settings dialog - i.e. -url %U vs %U for Netscape.
44) ROT13 had different shortcut keys in post and article windows.
Now both are Ctrl-T.
45) Some yEncoded multipart articles were not decoded correctly.
All parts were treated as separate single part decodes.
46) Add # of posts to status bar on both builds.
47) Special-case the code for selecting binary articles with only
one part.
48) Change shortcut key for Save Article in post window from
Shift-S to Alt-Shift-S so you can type "S" again. Menu too.
49) Make shortcut keys work even when Caps Lock is on.
50) Free off allocated memory when clearing a heap. Same fix that
was in cp023 that I removed in cp025. Add bugfix that stops crash!
51) Oscillate status bar from #connections to memory stats in
debug version.
52) Change article scrolling behaviour. If it needs to move the
article list up to see the next article to be selected, it now
scrolls the newly selected article to the top of the list.
53) Allocate and free memory using consistent API calls across all
source, not a mix'n'match of methods.
54) Report server error message when we get a 502 during authinfo
exchange.
55) Add error number to NNTP bad article message in log.
56) Problem when one article has a reference to one that is
in the group twice (i.e. cater for duplicate message ids).
57) Reduce ridiculous 43MB dll data segment by reducing static
structs in global code. Also helps with memory use and with
SYS008 'out of memory' errors experienced by Polarbar mailer
users.
58) Fix inability to allocate more than half available memory!
59) More work on memory related stuff (no difference).
60) Fix 4 byte overlay in new threading code.
61) Fix memory leak and SYS3175 when "Do Not Thread Article Tree"
is set.
62) Remove memory freeing added in cp024 and cp023.
63) Rudimentary error checking for malloc() errors in dynalloc.
It's still creamcrackered though.
64) Threading problems. Some things not visible. Some not
threaded correctly.
65) Add status numbers to "Retrieving all articles for ..."
tasks. Now says "Queuing article 20 of 948" etc.
66) WinWaitMutexSem() was called with wrong parameters (twice).
67) Clear per group heaps on window close to free memory.
68) SMTP RFC violation - we sent "HELO ." instead of a valid
hostname.
69) Error message about corrupt filter file issued when a new
group is subscribed to.
70) Fix weird hang when attempting to start more than about 25
article threads. Things would just go to sleep...
71) Free off allocated memory when closing a group window.
72) Crash when processing a uuencoded attachment and "Do Not
Decode" is set!
73) Stop crash opening newsgroup when lowest reference message-id
is lower than lowest message-id in group..
74) Reduce memory usage when threading the article tree.
75) Reformat missing parts log messages to have 10 per line.
76) Reformat missing parts messages to better fit in window.
77) Added KB/sec and stats data to log messages when connections
terminate.
78) Twiddled a few status bar messages to get more info in.
79) yDecode support.
80) Move MIME structure off stack onto heap in several areas of
code. Reduce stack usage...
81) Added KB/sec counter to connection entry on Connections tab.
82) Fix crash when saving queue if server online.
83) Add elementary validity checking for local group filter files.
84) Fix the memory hoggishness introduced in cp018 and also try to
reduce the overall allocation in earlier builds.
85) URL's containing an @ sign were broken in the EMLS editor.
Should now work in http, https and ftp.
86) Email address used on cancel commands was taken from the
article and this could be truncated. Use settings version
instead.
87) Only 49 characters of a message id was being stored in the
headers files. This caused cancels to fail if the message id was
longer than this. Now store 89 characters.
88) Fix bug in the new code that didn't handle duplicate message
ids properly.
89) Rip out and recode the article threading algorithm which did
not scale well to large numbers of posts. Time to thread a 40,000
article group down from 4.5 minutes to 2.5 seconds.
90) Change NNTP recv() routine to use select() instead of spinning
wildly wasting cpu time doing nothing waiting for data to arrive.
91) Remove OFFLINE.DAT when no tasks in queue but prompt for save
is not "never".
92) Articles dragged/saved were not correct.
93) More tuning: eliminated redundant calls to unneeded routines.
94) Articles saved to files or dragged to the desktop did not have
codepage translation run against them. From and Subject fields
were still MIMEd and body contained weird characters!
95) Dot stuffing rewrite. Fixes corrupt attachments. Fixes display
in article window, fixes posting.
96) Added PNDEBUG environment variable. Set to anything it writes
data received from server, after de-dot-stuffing, to debug.log.
And some general code fixes:
97) Corrected(?) random weird data in dll\ctrlhelp.h that was
present in all copies of the source from day 1.
98) Changed makefile for CPP365 ifdef to allow use of the 3.65
compiler for builds. Changed the pronews.def file remove WINDOWAPI
in name statement, added /pmtype:pm to link flags.
99) Fix a couple of compiler warnings about redefinition of some
macros like min() and free().
Release of 1.52 build cp012
Fixes in cp012 over cp011
-------------------------
1) Attempt to load an URL that spanned multiple lines would fail
due to only partial URL being passed to Netscape. Also change max
URL length to 512.
2) We'd attempt to retrieve 'autolimit' headers rather than the
number of messages in the group when "prompt over" was set.
3) Back out previous "headers containing tab characters" fix and
recode it in a different place.
4) CR not added to lines ending in LF when autowrap is OFF !!!
5) "Use Group Defaults" ignored on Posting page of settings note
book for each group.
Fixes in cp011 over cp005
-------------------------
1) Add groupname to a couple of messages in the log.
2) Add Cancel and Catchup to commands saved at shutdown.
3) Minor tweaks to retrieval of headers in or around MAXHEADERS.
4) Modify check for "group rebuilt on server" to only spring into
action if new "highnum" is less than old "lownum" to stop false
detection and retrieval of all articles.
5) Handle headers containing only tab characters correctly when
emls formatting is requested. Stops following header lines from
appearing as part of the body of the article.
6) Amend Save Queue to save only specific commands not everything
except posts.
7) Correct complete cockup in cp007 with article purge.
8) Fix crash when attempting to spellcheck a message.
9) Attempt to invoke various dialogs would loop :-(
10) Handle "Prompt if over" and "Automatically limit to" and upper
limit of maxheaders in prompt dialogs.
11) "Append to file" dialog box was incorrectly titled "Save
as..."
12) Fixed bug that stopped cancel posts being issued from any
group other than "Sent Messages".
Fixes in cp005 over ib121
-------------------------
1) Added PNMAXHEADERS support to "Retrieve all headers" code
section. Previously only worked for "Get new headers".
2) Fixed erroneous popup about number of messages in group
exceeding threshold when there are no articles at all.
3) Article paths and decode paths truncated in CPP version of
settings notebooks.
4) Filter pages did not display in CPP versions of settings
notebooks. Nor did the external editor page.
5) Semicolon added to list of allowable characters in http[s]
URLs.
6) QP encoded articles received from connection now correctly
have trailing = signs on lines removed before article is
written to disk.
7) QP encoded articles read from disk are now not translated.
(again!).
8) Translated all C source files to CPP for better typing and
casting support. Version number bumped to 1.52 cp001.
Fixes in ib121 over ib110
-------------------------
1) Subject field is now always QP encoded if it contains 8BIT
characters. Ignores the newsgroup posting settings.
2) Sender email address was in MIME when quoted in the "On such
and such, so and so wrote:" line in replies. Now decoded.
3) Corrected "Not enough space" popup error message to include
amount of space required correctly (not 0 any more!).
4) Allowed posting and decoding of multipart articles in up to
2048 parts now.
5) Removed previous double-decode quoted printable fix and fixed
in a different manner as other things broke like charset
translation.
6) Added debug code to let me trace what gets called most often
and then tuned the top 10 or so callees.
7) Fixed an error that occurred when the server high message
number was lower than the local high message number for a group.
Ths happens when a newsgroup is rebuilt on the server and before,
it would not be noticeable, just no new messages would show up.
Now Pronews will automatically adjust the local high message
number to the server h.m.n. and subsequent fetches will pick up
new articles.
8) Added % character as a valid URL character.
9) Added support for https:// links.
10) Email address local parts containing the / and + character
incorrectly mangled even though it's a valid RFC822 char.
11) Servers incorrectly go offline even with tasks still queued
when "Go offline when queue is empty" is set on.
12) Incomplete data displayed when editing an article in
the post queue. Data after the first blank line was omitted
from the editor window previously.
13) Double-decode of quoted printable articles that lost
characters from them. Decode only once on receipt of article from
server, not again when displaying it locally.
14) Correct crash when retrieving headers that contain a malformed
date.
15) Two too many articles being retrieved when max headers was
being reached. Only in build ib114.
16) Speeded up various functions by eliminating a call to put
offline servers that were already offline!
17) Changed log functions to add fractions of a second to log
output to aid in performance debugging.
18) Correct a problem with groups containing over 32767 headers
where the scrollbar behaved weirdly. Scrolling was erratic to say
the least! Aha! This will be the "Scrolling bug when more than 32k
articles in a group" listed as fixed in ia119 by Panacea.
19) Add log debug message when maximum headers dialog window is
issued. Groupname can be too long to be seen so this at least lets
you find out what group it is.
20) Enhancement: if an environment variable PNMAXHEADERS is set to
a number then that will become the largest number of headers
allowed in a newsgroup. Default: 100000.
21) Enhancement: if an environment variable PNNOOFASFILEPART is
set to any value then PN2 will not treat "x of y" as file part
numbers in multipart decodes, only (x/y) will work.
22) Enhancement to display missing article part numbers when a
multipart decode is requested. Makes requesting reposts easier.
23) Check for dates with year > 2037 and set to 2001 to stop crash
in strftime(). Validity check all date fields!
Fixes in ib110 over ib109
-------------------------
1) Tighten locking procedures in LockGroupData() and LockSubGroupData()
to serialise access.
2) Changed order of some nested for() loops to obtain better cache
coherency. Dummy tests of the code executed 5m times shows a drop
in execution time from 4 secs to 2 secs.
3) Moved some nested for() loops out of the outer loop because
they made no reference to the thing the outer loop was changing!
4) Rewrote LockFilter to eliminate timing windows that would allow
lockups.
5) Add check for errors given by DosCreateEventSem in LockFilter
code.
6) Change max active groups to a #define and reduce from 500 to
150 initially. Does anyone have more than 150 subscribed groups
anyway? Trying to speed things up a bit...
7) Eliminate "duplicate lock" messages from multi-crossposted
articles.
8) Change code that uses LockFilter to not clobber someone else's
mutex semaphore by mistake!
Fixes in ib109 over ib108
-------------------------
9) Check results of gmtime for null to stop crash formatting
date/time in article window.
10) Set number of parts allowed to be posted equal to number that
can be decoded. Else we end up not being able to decode our own
posts!
Fixes in ib108 over ib107
-------------------------
11) Add about 200 checks for invalid hwnds to cater for broken
kernels (14.072+). Still not working!
12) Maybe fix random crash in SaveHeaderData() caused by overlay
in nntp.c when references too large. Not completely fixed but much
better now thanks!
13) Add checks for number of posts being created more than max.
allowed. Issue message box and log message when it happens.
Fixes in ib107 over ib104
-------------------------
14) Fix crash when starting Pronews on kernels 14.072+. Still
busted, kernels are rubbish!
15) Throughput increase when multiple crossposted newsgroups are
indexed simultaneously.
16) Corrected number of lines per part in multipart posts which
caused part numbers to become [402/400].
17) Changed maximum outbound posts from 255 to 1024 and added
checks to make sure it's not exceeded.
18) Changed max number of auto-decode parts again from 512 to
1023.
19) Changed display of date/time in article index to take account
of TZ setting. Also add leading zero to day and "UTC" to quoted
date/time
20) "Find" matched any string with articles with null subject.
21) Checked maximum headers in a single group doesn't exceed
allowed (currently 100000). Incomplete fix and still does not
work.
22) Added an "are you sure" prompt to the unsubscribe process.
23) Changed rename of duplicate decoded files to use non 8.3
filenames if on an HPFS or JFS partition.
24) Fixed runaway decode problem - and probably other stuff too
like mixed up body parts from other posts. We'd loop through a
buffer when the last byte of a rolling window fell on the last
byte of the buffer itself.
25) Changed maximum number of parts in a multipart decode from 255
to 512. Multipart articles with more parts used to bomb out with
an error about missing part 0.
26) Added log message when multipart decodes are missing parts.
27) Fixed speeling error in prompt dialog. "from" should be "to"
in page range (not really a speeling error but...)
28) Correct XOVER processing when no messages in group.
29) Correct Euro representation in iso8859-1 (cp 850&857).
30) References line truncated to 255 when editing post in postq.
What's fixed in version ib104
=======================
Increased maximum filehandles to stop open errors.
Hopefully fixed the random "wandering server" problems.
Fix ugly dashes in 640x480 mode for selected article.
Release newsgroup semaphore occasionally to stop lockouts.
Whats fixed in version ib102
==========================
Added disk space checking before attempting to write/rename files
around.
Tried to reduce the cpu load introduced by the fix for the
deadlock in ib101.
Whats fixed in version ib101
==========================
Entries would be left in HEADERS.IDX when unsubscribing from
newsgroups.
Articles would go "missing" if the response from the server was
wrong because it was in the process of updating its counters. Most
commonly this would mean you wouldn't see your own posts but it
could affect others too.
Filenames will now be only 8.3 compatible for use on FAT.
Refixed the "dot stuffing" code.
"socket operation on non-socket" messages would appear due to
thread serialisation problems. Other tcpip errors could also be
(mis)reported.
Random crashes would occur, more frequently if the option "Close
connections on task completion" was used.
Fixed a deadlock that would cause complete cessation of activity
and leave tasks in "Waiting for header data to unlock" status.
Build number and release number incremented to 1.51/ib101.
Whats new in version ib099
==========================
+ Changed the maximum articles handled per news group from 50,000
to 100,000. Corrected the 30,000 limit in the Group Defaults page
9/9 to use the defined maximum articles as a maximum.
+ Fixed the "dot stuffing" so it works properly.
Whats fixed in versions up to ib098
===================================
+ Change Posting routines to enable "dot stuffing" to avoid
problems if an article line contains a single period.
+ Huge numbers of threads started! >1024. ProNews should now not
allow any more than approximately 100 threads to be started at any
one time
+ More than one server with large numbers of groups crashes. The
limit for the maximum number of groups for all servers combined
has been increased to 300,000
+ Delay no longer greyed out when queue operation not selected in
Settings notebook "Queue Options" page.
+ Trailing blanks were accepted on email addresses and cause
an SMTP server 553 error.
+ Replies to posts made in Y2K appeared as in Y3900. Also all
posts in Y2K were incorrectly aged from database.
+ Fixed blank outgoing address when cc: self on outgoing mail was
on but Reply To was blank.
+ Fixed problem will all servers going offline when a single queue
was empty.
+ Quoted text routines now properly decode 7bit mime encoded
subjects.
+ Fixed a bug in the wait for header db function causing unending
semaphore waits.
+ Posting font will not show up correctly. (it will use a
different font than the one specified).
+ Color palette open problem (rc = 00041001)
+ Fixed trap when resorting was in progress and an article was
selected.
+ Headers retrieved before Y2K fixes have invalid dates.
+ Weird highlighting happened when distances were given in inches
in article bodies (5.25" would treat rest of article as
quotation).
+ LMB - swipe - RMB would not copy to the clipboard from the
article window.
+ Sunday is Everyday for Saved Messages quoting.
+ Prevent Get all headers from purging old messages.
+ Maximum tasks in the queues should now not exceed 1,000 at any
one time.
+ Tweaked thread priorities to allow real work to be done while
the threads that add tasks to the queue are running.
+ Corrected the routine CreateUniqueFileName() to actually create
an unique filename! Missing article bodies/headers and random
crashes are the symptom of this problem when multiple threads
tried to use the same TMP file.
+ Should shutdown in some cases where it would have hung before.
+ Fixed the crashes that occurred when a Retrieve All Article
Bodies was done from a server with a large number of articles.
Tested on news server with 56,000+ messages with the largest
single group being 35,000+ |
ecsoft2.org/system/files/repository/pn2v160.zip | local copy | |
ProNews/2 v. 1.57 (12/7/2005) | Readme/What's new |
Fixes up to 1.56 cp106
======================
0) After group reload, some article entries could end up pointing
to wrong displacement in article data file resulting in random
garbage being displayed.
1) Upgrading from 1.55 and previous, wrong charsets selected
in menus and in postings.
2) Crash blinking the arrows in the article window again
3) Crash in ProcessMgrLoad() if offline.dat is corrupt.
4) Memory leaks after ULS errors
5) ULS error messages now include plain text version of errorcode
6) Add recovery from 'buffer full' ULS errors, now reallocates
buffer and retries.
7) Subject and From fields are now encoded using base64 or
Quoted-Printable depending on settings for group. Old
code always QP encoded them.
8) Crash opening group with corrupted index or data files Now checks
that article numbers match and gives error if not.
9) PNLOGDIR points to place to store logs - default ".\"
10) Crash opening group containing more than MAXHEADERS articles
11) Crash when saving articles to file or copying them
12) Potential fix for crash while closing a group if any subject and
composer lengths combined exceeded 255 chars.
13) Postings containing base64 encoded attachments were missing quotes
from the filename
14) Speed up multipart article decode selection
15) Crash if an article body was larger than 1.5MB
16) Charset shortcut keys did not work
17) Crash when posting in UTF-8 via email
18) Articles posted in charsets that are not in charsets.pn will now
be translated if the charset is listed in cpalias.pn and has an
alias of the IBM codepage name corresponding to that charset.
E.G. iso-8859-16 is ibm912 in cpalias.pn but does not appear
on the charset menus as it isn't listed in charsets.pn
19) Pronews now exits immediately if any of the *.pn files are missing.
20) Headers would always be translated from their charset to us-ascii.
Now uses the codepage for the group or global settings.
21) Missing trailing characters on some base64 decoded strings
22) UniConv functions failed with 0x2040d error due to missing UniFreeUConvObjects
23) Charset settings in global notebook not remembered
24) ULS support (UTF-8)
25) Added: support for pronews.env environment variable file |
ftp2.bmtmicro.com/pn2v157.zip |
This work is licensed under a Creative Commons Attribution 4.0 International License.
Add new comment