VERSION 0.79

- The expire program now handles a corrupted spool file by skipping to the
  next valid article in the file.

- Try an updated version of the PMODE/W DOS extender for the yarnx.exe
  program.  This version doesn't seem to have memory corruption problems.

- Fix: The OS/2 version of the import program assigned incorrect article
  expiry dates.

VERSION 0.78

- The newgroup program adds new newsgroups to the user's newsrc file.

- Fix: The OS/2 version of the import program incorrectly calculated the
  available disk space.

- Fix: Saving to the printer device with the OS/2 version resulted in a
  write error.

- Fix: The reader violated the "Good Net Keeping Seal" by not requiring a
  Subject for posts.

VERSION 0.77

- The expire program now must be run with the -o command line option
  to expire old articles.

- Added -q quiet mode option to expire program.

- Changed the DOS extender for the yarnx.exe program back to DOS4/GW.
  PMODE/W corrupted memory after spawning external programs.

VERSION 0.76

- The LOGDIR environment variable sets the home directory.  If LOGDIR is
  not defined, the HOME environment variable sets the home directory.

- Instead of the recipient's email address, the recipient's full name is
  now passed as the public key ID to PGP.

- The yarnx.exe program now uses a different DOS extender that does not
  require the DOS4GW.EXE file.

- Fix: The import program still corrupted the history file after running
  the "expire -r" command.

VERSION 0.75

- The expire program requires less free disk space for its temporary
  working files.

- Fix: The import program corrupted the history file after running the
  "expire -r" command.

VERSION 0.74

- The mail filter can only search any header or the message body.

- Folder files are now rewritten only if any message in the folder is
  marked for deletion, otherwise the message status flags are updated
  in place.

- Added configuration file settings for followup and reply attributions.

- When posting a followup article, wrap lines of References: header at
  80 columns.

- Added Ctrl-G command at article reading level to search the article
  for the next line beginning with "Subject:".

- Now process Supersedes: header in USENET articles.  The reader program
  does not list superseded articles and the expire program deletes
  superseded articles.

- Fix: The expire -r command caused a memory access violation when
  expiring articles that don't have a Newsgroups: header in
  pseudo-newsgroups.

VERSION 0.73

- Fix: The expire -r command corrupted the news base.

- Fix: Memorized keyword search truncated the search expression to the
  keyword file name length.

- Fix: If an article's References: header was continued over more than
  one line, only the first line was read.

- Fix: Save thread to file function did not write user defined header at
  beginning of each article.

VERSION 0.72

- Pressing the Esc key at the article reading level now returns you to
  the article selection level.  The 'q' key now returns you to the
  newsgroup selection level.

- Added memorized keyword search.  In the search functions, enter
  @filename for the search text to match any of the keywords listed
  in the file.  The file should list one keyword per line.

- The import program now returns errorlevel 1 if the SOUP file could not
  be unpacked.

- Fix: The import program inserted an extraneous / path separator if the
  TMP environment setting ended with a \.

- Fix: After the expire program deleted all the articles in a newsgroup,
  the reader program reported 1 unread article in the newsgroup.

VERSION 0.71

- When sending a USENET post containing a Cc: header, a copy of the
  message with the Cc: replaced with To: is also sent as mail.

- Fix: The import program inserted an extraneous \ path separator if the
  TMP environment variable was set to the root directory.

- Fix: The yarn program corrupted the user's newsrc file if it contained
  a newsgroup not in the active newsgroup list.

- Fix: The yarnx.exe program did no daylight saving time adjustment on
  the time zone part of the Date: header in outgoing messages.

VERSION 0.70

- Added 'B' command to resend a message.  This command works only in the
  MAILED and POSTED folders.

- The import program uses the directory specified by the environment
  setting TMP to hold temporary working files.

- Fix: The expire command with no arguments did not remove old entries
  from the history file.

- Fix: The rmgroup command corrupted the active file.

- Fix: The join truncated subject code did not include white space or
  punctuation in the count of matching characters.

VERSION 0.69

- Now look at Message-ID: and References: headers to order the articles
  in a thread.

- Added CONFIG setting to allow you to join truncated subjects into a
  common thread.  For example, use the setting

      join-truncated-subjects = 21

  to join articles with subjects truncated by a QWK reader into the
  proper thread.  The setting specifies the number of characters to
  match in the subject, not counting the Re: portion.

- Yarn used the date in the Expires: header only if it was further in
  the future than the normal article expiry date.

- Removed "Abort" selection from menus.  With the 'A' and 'S' keys
  adjacent to each other, users might accidently select "Abort" when
  they intended to select "Send".  To abort now, press the Esc key.

- At start up, now estimate the number of unread articles in each
  newsgroup instead of loading the newsgroups and actually counting
  unread articles.

VERSION 0.68

- If mail filtering was enabled, the import program repeatedly displayed
  the error message "Cannot create INBOX" when reading a download packet
  containing many mail messages.

- Fixed wrapping of long address lists in To:, Cc: and Bcc: headers of
  outgoing messages.

VERSION 0.67

- Added mail filter to import program.

- Added commands to newsgroup selection level
    Key  Command
     O   Save articles in newsgroup to folder
     S   Save articles in newsgroup to file
     W   Write articles in newsgroup to file without headers

- The yarnx.exe program did not output articles using BIOS when the
  "speech=on" option was set.

- Include the original author's mail address in the attribution when
  posting a follow-up.

- Check for write error when saving to file.

- Save to file command asks to append to or overwrite the file if it
  already exists.

- Fixed memory fault when you type a key after selecting an item from
  an F2 pick list.

VERSION 0.66

- The F3 command refused to add an entry to the address book if the alias
  field matched the beginning of the address field.

- If the address book contained a very long address list, yarn overflowed
  a memory buffer when you tried mailing to that list.  If the address
  list is longer than 80 characters, the F2 pick list inserts the alias
  instead of the address.

- Increased address field maximum length in an address book entry to 32000
  characters.

- Now avoid writing long lines to the address book file by writing each
  address in an address list on a separate line followed by the \ line
  continuation character.

- Added CONFIG settings for save to file command:

  The save to file command writes this line at the start of each saved
  message.  The default is to write no line at the beginning of the message.

      save-mail-header = Message %a of %C:

  The save to file command writes this line at the start of each saved
  article.  The default is to write no line at the beginning of the article.

      save-news-header = Article %a of %C:

- To enable support for the ISO-8859/8 (Hebrew) character set, put the line

      charset = iso-8859-8

  in the CONFIG file and set the code page to 862.

- Added CONFIG option for visually impaired users.  Set

      speech = on

  to enable a speech friendly user interface.

- To show only certain message headers, put

      show = <header list>

  in the CONFIG file, where <header list> is a list of headers separated
  by spaces.  If both "hide" and "show" settings are in the file, the
  last one takes effect.

VERSION 0.65

- The "expire -r" command also deleted old articles from the history file.

- When sending a message, insert the configured From: header and discard
  any changes made to the header while in the editor.

- The left and right arrow keys now move between the newsgroup selection
  level, article selection level and article reading level.  Pressing
  the right arrow key at the article reading level moves to the next
  unread article.

VERSION 0.64

- The "expire -r" program corrupted the history file.

- Added PGP hooks.

- The timezone in the Date: header now accounts for daylight savings time.

- While entering a form field that asks for a mail address, the
  selection of an entry from the address book using the F2 key now
  inserts the address instead of the alias.

- By default, comments (parentheses and the text between them) are now
  stripped from the To:, Cc: and Bcc:  headers of outgoing messages. To
  leave the comments in, put this line in the CONFIG file:

      address-comments=on

VERSION 0.63

- The "expire -r" command hung if all articles in the news base were
  marked as read.

- Catch up command at newsgroup selection level did not clear count
  of unread articles.

- When saving to a folder, pressing the F2 key while entering the
  folder name pops up a list of existing folders you can select from.

- Enable high intensity background colors.

VERSION 0.62

- Changed the command key mapping to eliminate Alt- keys.

  Newsgroup selection level
    Old Key  New Key  Command
     Alt-C      C     Mark all articles in newsgroup as read
     Alt-F      F     List folders
     Alt-M      M     Read/send mail
     Alt-N      N     Next newsgroup containing unread articles
     Alt-P      P     Previous newsgroup containing unread articles
     Alt-R      R     List replies
     Alt-S      +     Subscribe to newsgroup
     Alt-U      -     Unsubscribe from newsgroup

  Article selection level
    Old Key  New Key  Command
     Alt-A      A     Post original article
     Alt-C      C     Mark all articles in newsgroup as read
     Alt-K      K     Mark articles in thread as read
     Alt-O      O     Save articles in thread to folder
     Alt-S      S     Save thread to file
     Alt-U      U     Mark articles in thread as unread
     Alt-W      W     Write thread to file

  Article reading level
    Old Key  New Key  Command
     Alt-C      C     Mark all articles in newsgroup as read
       C        c     Cancel article
       S        z     Supersede article

- When replying to a message, don't prompt the user for a destination
  if the Reply-To: header is the same as the From: header.

- The reader program opens news base files in shared reading mode.

- The reader crashed when adding or modifying an address book entry
  in 132 column display mode.

- Fixed the expire program which may go into an infinite loop when run
  with no arguments to expire all newsgroups,

VERSION 0.61

- Leaving the replies list in yarnx resulted in a memory fault.  The
  Watcom C++ compiler generated code that called destructors more
  than once.

- A memory leak caused the cvt06 program to run out of memory when
  converting a large news base.

- The expire program corrupted the history file when run with no
  arguments to expire all newsgroups,

- When replying to a message, ask the user to select from a list of
  destinations if the message has a Reply-To: header or was sent to
  multiple recipients.

- While entering a form field that asks for a mail address, the
  selection of an entry from the address book using the F2 key now
  inserts the alias instead of the address.

- When adding an address book entry, truncate the alias at the first
  word.

- Disable Ctrl-C from terminating the reader program.

- Added -s option to reader program to disable '!' shell command.

- Improved support for 132 column display modes.

VERSION 0.60

- The news base is incompatible with older versions of Yarn.  Run the cvt06
  program to convert an existing old format news base to the new format.

- The expire program can delete articles from specific newsgroups.  It can
  also delete read articles.

- The DOS protected mode version of the reader uses a different DOS
  extender and has the new name yarnx.  The program requires the file
  DOS4GW.EXE to be in a directory in the PATH.

- If the import program finds a newsgroup in the AREAS file of a SOUP packet
  that is not in the active newsgroup list, it adds the newsgroup to the
  user's subscription list.

VERSION 0.59

- The aliases file is now called the address book in the user manual.
  The "aliases" configuration setting is renamed "address-book".
  The default address book file is <home>\yarn\addrbook.

- Press the F2 key to edit the address book.  While entering a form
  field that asks for a mail address, press F2 to pick a mail address
  from the address book.  Press the F3 key to add the author of the
  current message to the address book.

- Increased the speed of the import program by opening and closing the
  new base files only as required.

- Do not quote forwarded messages.

- Delete reply packet file if the user deletes all messages from reply
  packet.

VERSION 0.58

- Several users reported that when they try to send mail or news, the
  DOS extender reader replaced the entire message with a single "Lines: "
  header.  This problem does not happen with the real mode version. 
  Until this problem is resolved, the real mode reader is should be
  used by default and is named yarn.exe.  The DOS extender reader is
  named yarn-x.exe.

- Changed the command key mapping.

  Newsgroup selection level
             New Key  Command
              Alt-C   Mark all articles in newsgroup as read

  Article selection level
             New Key  Command
              Alt-U   Mark articles in thread as unread

  Article reading level
    Old Key  New Key  Command
                b     Scroll backward one page
       j        k     Mark article as read
       k        K     Mark articles in thread as read
                m     Mail article to someone
       m        u     Mark article as unread
                U     Mark articles in thread as unread
       z        S     Supersede article

  Mail reading level
    Old Key  New Key  Command
                f     Post followup article
       f        m     Forward message to someone
       m        u     Mark message as unread

- The package now includes a batch file to install Yarn.  Also
  introduced an adduser program to set up a user.

- Added yarn option -r to edit the reply packet.

- When the user replies to a mail message, it is flagged with the status
  'A' in the message selection list.

- Fix: When importing messages that were read online with Pine, the
  empty line that separates the header from the body was deleted.

- Fix: Yarn redirected the standard output of the spell program to
  the null device.  Output from the ispell program was not visible.

VERSION 0.57

- The subscribe to newsgroup command (Ins) caused a memory fault in the
  DOS extender version.

- Fixed To: header in outgoing mail messages to be compatible with uqwk
  version 1.7.

- Removed X-Status: header from outgoing messages.

- If the body of an outgoing message contains non-ASCII characters, assume
  the character set is ISO-8859/1 and add MIME headers.

VERSION 0.56

- The yarn program in the MS-DOS version now runs under a DOS extender.
  Included yarn-rm, which is the reader program running in real mode.

- Also map ISO-8859/1 character set in article selection list and
  editor.

- Display destination address/newsgroup in sent mail/news folder list.

- When replying to a mail message, copy the Cc: header from the
  original message to the outgoing message.

- Set the Bcc: header in outgoing messages by putting the line

      Bcc=<addresses>

  in the configuration file, where <addresses> is a list of mail
  addresses.

- Should only expand aliases in To:, Cc:, and Bcc; headers.

- Time zone field in Date: header of outgoing messages was incorrect
  if the time zone was more than 9 hours from GMT.

- Do not load and save the newsrc file when yarn is run with the -f or
  -m option.

- News format field in REPLIES file should be 'B'.

- To specify the maximum keep days for newsgroups added by the import
  program, put the line

      max-keep=<n>

  in the configuration file, where <n> is the number of days.

- To specify a spell check program, put the line

      spell=<program> %f

  in the configuration file, where <program> is the program name.

VERSION 0.55

- The rmgroup command corrupted the active newsgroup file.

- For the MS-DOS version, fixed the overlay thrashing while scrolling
  in the mail message selection level.

VERSION 0.54

- Added search commands to newsgroup selection level.  The '/', '?',
  ';' and ':' commands search for a newsgroup name containing a
  matching regular expression.

- Added search commands to article selection and article reading
  level.  The '/', '?', ';' and ':' commands search for an article
  containing a matching regular expression.  The 'g' and 'G' commands
  search for a regular expression within an article.

- If the reader selects a newsgroup containing a huge number of articles
  and there is insufficient memory to list every article, it displays
  an error message and list a subset of the articles.

- Added 'q' command to go from article reading level to article
  selection level (same as '=' command).

- Put the line

        next-screen-context-lines=<n>

  in the configuration file to redisplay the last <n> lines of the
  previous screen when paging through an article.

- When displaying articles, the reader maps the ISO-8859-1 (ISO Latin 1)
  character set to IBM code page 850 if the configuration file contains
  the line

        charset=iso-8859-1

- The reader program displays "You have new mail" if the user has new
  mail in the incoming message folder.

- The newgroup program accepts an optional third parameter, the
  maximum number of days to keep an article.  If this is specified,
  articles that have an Expires: header are kept only for this number
  of days, instead of until the date specified in the header.

VERSION 0.53

- Added '!' command to run command shell.

- Mail aliases now stored in a separate file <user>\YARN\ALIASES.
  To specify another aliases file, use the statement

        aliases=<file>

  in the CONFIG file, where <file> is the full path of the aliases file.

- Added -r option to import program, to import rnews batches.

- If you unsubscribed from the last newsgroup in the newsgroup selection
  list, the highlight bar was positioned after the last newsgroup.

- Check return status from zip/unzip program when packing/unpacking
  reply packet.

- The OS/2 import program changed the current working directory before
  running unzip, which made unzip unable to find the packet file.

- If the import program read an article header exactly 511 characters
  long, it incorrectly saw the end of the headers when it read the next
  line.

VERSION 0.52

- Messages in reply packet can be modified.  Added the following commands:
    Newsgroup selection level and folder selection level
      Alt-R    List replies

- Changed keywords accepted by color statement in CONFIG file.
      menu-short-cut         changed to  menu-hotkey
      menu-select-short-cut  changed to  menu-select-hotkey

VERSION 0.51

- Display message count in folder selection list.

- The color statement in the CONFIG file accepts these additional keywords:
      menu-border
      menu-text
      menu-select
      menu-short-cut
      menu-select-short-cut

VERSION 0.50

- Fix: The 'd' command to mark a mail message for deletion also tried to
  post a followup to the message.

VERSION 0.49

- Added mail commands:
    Message selection level
      Alt-O    Save message to folder
    Message reading level
      F        Post followup, quoting original article

- Mark mail message for deletion after saving it to another folder.

- Save copy of sent articles in a folder by putting the line

      sent-news=POSTED

  in configuration file.

VERSION 0.48

- Can save messages to mail folders.
  Added folder commands:
    Newsgroup selection level
      Alt-F    List folders
    Article selection level
      Alt-O    Save thread to folder
    Article reading level
      o        Save article to folder

- Moved incoming mail folder from <home>\YARN\INBOX to <home>\MAIL\INBOX.

- Save copy of outgoing mail messages in a folder by putting the line

      sent-mail=SENT

  in configuration file.

- Set the Cc: header in outgoing messages by putting the line

      Cc=<addresses>

  in configuration file, where <addresses> is a list of mail addresses.

- Added forward mail command ('f') to mail reading level.

- Added -q option to import program to disable article number output.

- Added rmgroup program to remove newsgroup from active newsgroup list.

- Fix: The reader did not allow the external editor to be run with any
  command line options.

VERSION 0.47

- Fix: The file path passed to the editor should use \ as path separators.

- Disabled settings from environment variables USER and NAME.

- If set, the YARNRC environment variable specifies the configuration file
  to read instead of the default <home>\YARN\CONFIG.

VERSION 0.46

- The import program now handles the SOUP message formats 'm', 'M' and 'B'.

- Reader displays a message line at the bottom of the screen showing
  frequently used commands.  To turn off the message line, put

      message=off

  in the configuration file.

VERSION 0.45

- The Newsgroups: header is normally hidden unless the article is crossposted.

- Reader correctly displays headers that span multiple lines.

VERSION 0.44

- In the CONFIG file, colors for specific USENET headers are set using the
  statement

        color header-<name> <fg> <bg>

  The color statement can also set window colors.

- The MS-DOS version is compiled for the 8086/8088 instruction set.

VERSION 0.43

- Specify mail address aliases in the CONFIG file using the alias statement.

- If the import program finds a newsgroup in the AREAS file of a SOUP packet
  that is not in the active newsgroup list, it adds the newsgroup to the
  active list.  The keep days for the added newsgroup is specified by the
  "keep" setting in the CONFIG file.

- If free disk space runs lows while importing messages, the import program
  aborts.

- Message headers containing tab characters where parsed incorrectly.

VERSION 0.42

- Reader subscribes to all active newsgroups if newsrc does not exist.

- Reader hides headers beginning with '\t' by default.

VERSION 0.41

- Fixed bug in the subject truncation routine that caused reader to hang on
  subjects containing long words.

- At the end of the article, the reader shows the number of articles
  remaining in the thread.

- Increased maximum subject length stored in index files to 127 characters.
