nzbget-0.7.0-testing:
  - please see subversion log at
    http://nzbget.svn.sourceforge.net/viewvc/nzbget/?view=log
nzbget-0.6.0:
  - added scheduler; new options <TaskX.Time>, <TaskX.WeekDays>,
    <TaskX.Command>, <TaskX.DownloadRate> and <TaskX.Process>;
  - added support for postprocess-parameters; new subcommand <O> of remote
    command <E> to add/modify pp-parameter for group (nzb-file); new
    XML-/JSON-RPC-subcommand <GroupSetParameter> of method <editqueue> for
    the same purpose; updated example configuration file and example
    postprocess-script to indicate new method of passing arguments via
    environment variables;
  - added subcommands <F>, <G> and <S> to command line switch <-L/--list>,
    which prints list of files, groups or only status info respectively;
    extended binary communication protocol to transfer nzb-infos in addition
    to file-infos;
  - added new subcommand <M> to edit-command <E> for merging of two (or more)
    groups (useful after adding pars from a separate nzb-file);
  - added option <MergeNzb> to automatically merge nzb-files with the same
    filename (useful by adding pars from a different source);
  - added script-processing of files in incoming directory to allow automatic
    unpacking and queueing of compressed nzb-files; new option <NzbProcess>;
  - added the printing of post-process-parameters for groups in command
    <--list G>;
  - added the printing of nzbget version into the log-file on start;
  - added option <DeleteCleanupDisk> to automatically delete already downloaded
    files from disk if nzb-file was deleted from queue (the download was
    cancelled);
  - added option <ParTimeLimit> to define the max time allowed for par-repair;
  - added command <--scan/-S> to execute the scan of nzb-directory on remote
    server;
  - changed the method to pass arguments to postprocess/nzbprocess: now using
    environment variables (old method is still supported for compatibility with
    existing scripts);
  - added the passing of nzbget-options to postprocess/nzbprocess scripts as
    environment variables;
  - extended the communication between nzbget and post-process-script: 
    collections are now detected even if parcheck is disabled;
  - added support for delayed par-check/repair: post-process-script can request
    par-check/repair using special exit codes to repair current collection or
    all collections;
  - implemented the normalizing of option names and values in option list; the
    command <-p> also prints normalized names and values now; that makes the
    parsing of output of command <-p> for external scripts easier;
  - replaced option <PostLogKind> with new option <ProcessLogKind> which is now
    used by all scripts (PostProcess, NzbProcess, TaskX.Process);
  - improved entering to paused state on connection errors (do not retry failed
    downloads if pause was activated);
  - improved error reporting on decoding failures;
  - improved compatibility of yenc-decoder;
  - improved the speed of deleting of groups from download queue (by avoiding
    the saving of queue after the deleting of each individual file);
  - updated configure-script for better compatibility with FreeBSD;
  - cleaning up of download queue (option <ParCleanupQueue>) and deletion of
    source nzb-file (option <NzbCleanupDisk>) after par-repair now works also
    if par-repair was cancelled (option <ParTimeLimit>); since required
    par-files were already downloaded the repair in an external tool is
    possible;
  - added workaround to avoid hangs in child processes (by starting of
    postprocess or nzbprocess), observed on uClibC based systems;
  - fixed: TLS/SSL didn't work in standalone mode;
  - fixed compatibility issues with Mac OS X;
  - fixed: not all necessary par2-files were unpaused on first request for
    par-blocks (although harmless, because additional files were unpaused
    later anyway);
  - fixed small memory leak appeared if process-script could not be started;
  - fixed: configure-script could not detect the right syntax for function
    <ctime_r> on OpenSolaris.
  - fixed: files downloaded with disabled decoder (option decode=no) sometimes
    were malformed and could not be decoded;
  - fixed: empty string parameters did not always work in XML-RPC.

nzbget-0.5.1:
  - improved the check of server responses to prevent unnecessary retrying
    if the article does not exist on server;
  - fixed: seg.fault in standalone mode if used without specifying the
    category (e.g. without switch <-K>);
  - fixed: download speed indicator could report not-null values in
    standby-mode (when paused);
  - fixed: parameter <category> in JSON/XML-RPC was not properly decoded by
    server, making the setting of a nested category (containing slash or
    backslash character) via nzbgetweb not possible;
    
nzbget-0.5.0:
  - added TLS/SSL-support for encrypted communication with news-servers;
  - added IPv6-support for communication with news-servers as well as for
    communication between nzbget-server and nzbget-client;
  - added support for categories to organize downloaded files;
  - new option <AppendCategoryDir> to create the subdirectory for each category;
  - new switch <-K> for usage with switch <-A> to define a category during
    the adding a file to download queue;
  - new command <K> in switch <-E> to change the category of nzb-file in
    download queue; the already downloaded files are automatically moved to new
    directory if the option <AppendCategoryDir> is active;
  - new parameter <Category> in XML-/JSON-RPC-command <editqueue> to allow the
    changing of category via those protocols;
  - new parameter in a call to post-process-script with category name; 
  - scanning of subdirectories inside incoming nzb-directory to automatically 
    assign category names; nested categories are supported;
  - added option <ServerX.JoinGroup> to connect to servers, that do not accept
    <GROUP>-command;
  - added example post-process script for unraring of downloaded files
    (POSIX only);
  - added options <ParPauseQueue> and <PostPauseQueue> useful on slow CPUs;
  - added option <NzbCleanupDisk> to delete source nzb-file after successful 
    download and parcheck;
  - switch <-P> can now be used together with switches <-s> and <-D> to start
    server/daemon in paused state;
  - changed the type of messages logged in a case of connection errors from
    <DEBUG> to <ERROR> to provide better error reporting;
  - now using OS-specific line-endings in log-file and brokenlog-file: LF on 
    Posix and CRLF on Windows;
  - added detection of adjusting of system clock to correct uptime/download 
    time (for NAS-devices, that do not have internal clock and set time from
    internet after booting, while nzbget may be already running);
  - added the printing of stack on segmentation faults (if configured with 
    <--enable-debug>, POSIX only);
  - added option <DumpCore> for better debugging on Linux in a case of abnormal
    program termination;
  - fixed: configure-script could not automatically find libsigc++ on 64-bit
    systems;
  - few other small fixes; 
 
nzbget-0.4.1:
  - to avoid accidental deletion of file in curses-frontend the key <D>
    now must be pressed in uppercase;
  - options <username> and <password> in news-server's configuration are now 
    optional;
  - added the server's name to the detail-log-message, displayed on the start 
    of article's download;
  - added the option <AllowReProcess> to help to post-process-scripts, which 
    make par-check/-repair on it's own;
  - improved download-speed-meter: it uses now a little bit less cpu and
    calculates the speed for the last 30 seconds (instead of 5 seconds),
    providing better accuracy; Thanks to ydrol <ydrol@users.sourceforge.net>
    for the patch;
  - reduced CPU-usage in curses-outputmode; Thanks to ydrol for the patch 
    <ydrol@users.sourceforge.net>;
  - fixed: line-endings in windows-style (CR-LF) in config-file were not 
    read properly;
  - fixed: trailing spaces in nzb-filenames (before the file's extension) 
    caused errors on windows. Now they will be trimmed;
  - fixed: XML-RPC and JSON-RPC did not work on Big-Endian-CPUs (ARM, PPC, etc), 
    preventing the using of web-interface;
  - fixed: umask-option did not allow to enable write-permissions for <group> 
    and <others>;
  - fixed: in curses-outputmode the remote-client showed on first screen-update 
    only one item of queue;
  - fixed: edit-commands with negative offset did not work via XML-RPC 
    (but worked via JSON-RPC);
  - fixed incompatibility issues with gcc 4.3; Thanks to Paul Bredbury 
    <brebs@users.sourceforge.net> for the patch;
  - fixed: segmentation fault if a file listed in nzb-file does not have any 
    segments (articles);

nzbget-0.4.0:
  - added the support for XML-RPC and JSON-RPC to easier control the server 
    from other applications; 
  - added web-interface - it is available for download from NZBGet-project's 
    home page as a separate package "web-interface";
  - added the automatic cleaning up of the download queue (deletion of unneeded 
    paused par-files) after successful par-check/repair - new 
    option <ParCleanupQueue>;
  - added option <DetailTarget> to allow to filter the (not so important) 
    log-messages from articles' downloads (they have now the type <detail> 
    instead of <info>);
  - added the gathering of progress-information during par-check; it is 
    available via XML-RPC or JSON-RPC; it is also showed in web-interface;
  - improvements in internal decoder: added support for yEnc-files without 
    ypart-statement (sometimes used for small files); added support for 
    UU-format;
  - removed support for uulib-decoder (it did not work well anyway); 
  - replaced the option <decoder (yenc, uulib, none)> with the option 
    <decode (yes, no)>;
  - added detection of errors <server busy> and <remote server not available> 
    (special case for NNTPCache-server) to consider them as connect-errors 
    (and therefore not count as retries); 
  - added check for incomplete articles (also mostly for NNTPCache-server) to 
    differ such errors from CrcErrors (better error reporting);
  - improved error-reporting on moving of completed files from tmp- to 
    dst-directory and added code to move files across drives if renaming fails;
  - improved handling of nzb-files with multiple collections in par-checker;
  - improved the parchecker: added the detection and processing of files 
    splitted after parring;
  - added the queueing of post-process-scripts and waiting for script's 
    completion before starting of a next job in postprocessor (par-job or 
    script) to provide more balanced cpu utilization;
  - added the redirecting of post-process-script's output to log; new option 
    <PostLogKind> to specify the default message-kind for unformatted 
    log-messages;
  - added the returning of script-output by command <postqueue> via XML-RPC 
    and JSON-RPC; the script-output is also showed in web-interface;
  - added the saving and restoring of the post-processor-queue (if server was 
    stopped before all items were processed); new option <ReloadPostQueue>;
  - added new parameter to postprocess-script to indicate if any of par-jobs 
    for the same nzb-file failed;
  - added remote command (switch O/--post) to request the post-processor-queue 
    from server;
  - added remote command (switch -W/--write) to write messages to server's log;
  - added option <DiskSpace> to automatically pause the download on low disk 
    space;
  - fixed few incompatibility-issues with unslung-platform on nslu2 (ARM);
  - fixed: articles with trailing text after binary data caused the decode 
    failures and the reporting of CRC-errors;
  - fixed: dupecheck could cause seg.faults when all articles for a file failed;
  - fixed: by dupe-checking of files contained in nzb-file the files with the 
    same size were ignored (not deleted from queue);
  - updated libpar2-patch for msvc to fix a segfault in libpar2 (windows only);
  - fixed: by registering the service on windows the fullpath to nzbget.exe 
    was not always added to service's exename, making the registered service 
    unusable;
  - fixed: the pausing of a group could cause the start of post-processing for 
    that group;
  - fixed: too many info-messages <Need more N blocks> could be printed during 
    par-check (appeared on posix only);
  
nzbget-0.3.1:
  - Greatly reduced the memory consumption by keeping articles' info on disk 
    until the file download starts;
  - Implemented decode-on-the-fly-technique to reduce disk-io; downloaded
    and decoded data can also be saved directly to the destination file 
    (without any intermediate files at all); this eliminates the necessity
    of joining of articles later (option "DirectWrite");
  - Improved communication with news-servers: connections are now keeped open 
    until all files are downloaded (or server paused); this eliminates the 
    need for establishing of connections and authorizations for each 
    article and improves overal download speed;
  - Significantly better download speed is now possible on fast connection; 
    it was limited by delays on starting of new articles' downloads; 
    the synchronisation mechanism was reworked to fix this issue;
  - Download speed meter is much more accurate, especially on fast connections;
    this also means better speed throttling;
  - Speed optimisations in internal decoder (up to 25% faster);
  - CRC-calculation can be bypassed to increase performance on slow CPUs
    (option "CrcCheck");
  - Improved parsing of artcile's subject for better extracting of filename 
    part from it and implemented a fallback-option if the parsing was incorrect; 
  - Improved dupe check for files from the same nzb-request to detect reposted 
    files and download only the best from them (if option "DupeCheck" is on); 
  - Articles with incorrect CRC can be treated as "possibly recoverable errors"
    and relaunched for download (option "RetryOnCrcError"), it is useful if 
    multiple servers are available;
  - Improved error-check for downloaded articles (crc-check and check for
    received message-id) decreases the number of broken files;
  - Extensions in curses-outputmode: added group-view-mode (key "G") to show
    items in download queue as groups, where one group represents all files 
    from the same nzb-file; the editing of queue works also in group-mode 
    (for all files in this group): pause/unpause/delete/move of groups; 
  - Other extensions in curses-outputmode: key "T" toggles timestamps in log;
    added output of statistical data: uptime, download-time, average session 
    download speed;
  - Edit-command accepts more than one ID or range of IDs.
    E.g: "nzbget -E P 2,6-10,33-39"; The switch "-I" is not used anymore;
  - Move-actions in Edit-command affect files in a smart order to guarantee 
    that the relative order of files in queue is not changed after the moving;
  - Extended syntax of edit-command to edit groups (pause/unpause/delete/move 
    of groups). E.g: "nzbget -E G P 2";
  - Added option "DaemonUserName" to set the user that the daemon (POSIX only) 
    normally runs at. This allows nzbget daemon to be launched in rc.local 
    (at boot), and download items as a specific user id; Thanks to Thierry 
    MERLE <merlum@users.sourceforge.net> for the patch;
  - Added option "UMask" to specify permissions for newly created files and dirs 
    (POSIX only);
  - Communication protocol used between server and client was revised to define 
    the byte order for transferred data. This allows hosts with different 
    endianness to communicate with each other;
  - Added options "CursesNzbName", "CursesGroup" and "CursesTime" to define
    initial state of curses-outputmode;
  - Added option "UpdateInterval" to adjust update interval for Frontend-output
    (useful in remote-mode to reduce network usage);
  - Added option "WriteBufferSize" to reduce disk-io (but it could slightly 
    increase memory usage and therefore disabled by default);
  - List-command prints additional statistical info: uptime, download-time,
    total amount of downloaded data and average session download speed;
  - The creation of necessary directories on program's start was extended 
    with automatic creation of all parent directories or error reporting 
    if it was not possible;
  - Printed messages are now translated to oem-codepage to correctly print 
    filenames with non-english characters (windows only);
  - Added remote-command "-V (--serverversion)" to print the server's version;
  - Added option "ThreadLimit" to prevent program from crash if it wants to 
    create too many threads (sometimes could occur in special cases);
  - Added options "NzbDirInterval" and "NzbDirFileAge" to adjust interval and
    delay by monitoring of incoming-directory for new nzb-files;
  - Fixed error on parsing of nzb-files containing percent and other special 
    characters in their names (bug appeared on windows only);
  - Reformated sample configuration file and changed default optionnames 
    from lowercase to MixedCase for better readability; 
  - Few bugs (seg faults) were fixed.

nzbget-0.3.0:
  - The download queue now contains newsgroup-files to be downloaded instead of 
    nzb-jobs. By adding a new job, the nzb-file is immediately parsed and each 
    newsgroup-file is added to download queue. Each file can therefore be 
    managed separately (paused, deleted or moved);
  - Current queue state is saved after every change (file is completed or the 
    queue is changed - entries paused, deleted or moved). The state is saved on
    disk using internal format, which allows fast loading on next program start
    (no need to parse xml-files again);
  - The remaining download-size is updated after every article is completed to
    indicate the correct remaining size and time for total files in queue;
  - Downloaded articles, which are saved in temp-directory, can be reused on
    next program start, if the file was not completed (option "continuepartial"
    in config-file); 
  - Along with uulib the program has internal decoder for yEnc-format. This
    decoder was necessary, because uulib is so slow, that it prevents using of
    the program on not so powerful systems like linux-routers (MIPSEL CPU 200
    MHz). The new decoder is very fast. It is controlled over option "decoder" 
    in config-file;
  - The decoder can be completely disabled. In this case all downloaded articles
    are saved in unaltered form and can be joined with an external program;
    UUDeview is one of them;
  - If download of article fails, the program attempts to download it again so
    many times, what the option "retries" in config-file says. This works even
    if no servers with level higher than "0" defined. After each retry the next
    server-level is used, if there are no more levels, the program switches to
    level "0" again. The pause between retries can be set with config-option
    "retryinterval";
  - If despite of a stated connection-timeout (it can be changed via
    config-option "connectiontimeout") connection hangs, the program tries to
    cancel the connection (after "terminatetimeout" seconds). If it doesn't
    work the download thread is killed and the article will be redownloaded in
    a new thread. This ensures, that there are no long-time hanging connections
    and all articles are downloaded, when a time to rejoin file comes;
  - Automatic par-checking and repairing. Only reuired par-files are downloaded.
    The program uses libpar2 and does not require any external tools. The big
    advantage of library is, that it allows to continue par-check after new
    par-blocks were downloaded. This were not possible with external 
    par2cmdline-tool;
  - There is a daemon-mode now (command-line switch "-D" (--daemon)). In this
    mode a lock-file (default location "/tmp/nzbget.lock", can be changed via
    option "lockfile") contains PID of daemon;
  - The format of configuration-file was changed from xml to more common
    text-format. It allows also using of variables like 
    "tempdir=${MAINDIR}/tmp";
  - Any option of config-file can be overwritten via command-line switch
    "-o" (--option). This includes also the definition of servers. 
    This means that the program can now be started without a configuration-file 
    at all (all required options must be passed via command-line);
  - The command-line switches were revised. The dedicated switches to change
    options in config-file were eliminated, since any option can now be changed
    via switch "-o" (--option);
  - If the name of configuration-file was not passed via command-line the
    program search it  in following locations: "~/.nzbget", "/etc/nzbget.conf", 
    "/usr/etc/nzbget.conf", "/usr/local/etc/nzbget.conf", 
    "/opt/etc/nzbget.conf";
  - The new command-line switch "-n" (--noconfigfile) prevents the loading of
    a config-file. All required config-options must be passed via command-line
    (switch "-o" (--option));
  - To start the program in server mode either "-s" (--server) or 
    "-D" (--daemon) switch must be used. If the program started without any
    parameters it prints help-screen. There is no a dedicated switch to start
    in a standalone mode. If switches "-s" and "-D" are omitted and none of
    client-request-switches used the standalone mode is default. This usage
    of switches is more common to programs like "wget". To add a file to 
    server's download queue use switch "-A" (--append) and a name of nzb-file
    as last command-line parameter;
  - There is a new switch "-Q" (--quit) to gracefully stop server. BTW the
    SIGKIL-signal is now handled appropriately, so "killall nzbget" is also OK,
    where "killall -9 nzbget" terminates server immediately (helpful if it
    hangs, but it shouldn't);
  - With new switch "-T" (--top) the file will be added to the top of download
    queue. Use it with switch "-A" (--append);
  - The download queue can be edited via switch "-E" (--edit). It is possible
    to pause, unpause, delete and move files in queue. The IDs of file(s)
    to be affected are passed via switch "-I" (fileid), either one ID or a 
    range in a form "IDForm-IDTo". This also means, that every file in queue
    have ID now;
  - The switch "-L" (--list) prints IDs of files consequently. It prints also
    name, size, percentage of completing and state (paused or not) of each file. 
    Plus summary info: number of files, total remaining size and size of
    paused files, server state (paused or running), number of threads on 
    server, current speed limit;
  - With new switch "-G" (--log) the last N lines printed to server's 
    screen-log, can be printed on client. The max number of lines which can
    be returned from servers depends on option "logbuffersize";
  - The redesigned Frontends (known as outputmodes "loggable", "colored" and
    "curses") can connect to (remote) server and behave as if you were running
    server-instance of program itself (command-line switch "-C" (--connect)). 
    The log-output updates constantly and even all control-functions in 
    ncurses-mode works: pause/unpause server, set download rate limit, edit of
    queue (pause/unpause, delete, move entries). The number of connected 
    clients is not limited. The "outputmode" on a client can be set
    independently from server. The client-mode is especially useful if the
    server runs as a daemon;
  - The writing to log-file can be disabled via option "createlog". 
    The location of log-file controls the option "log-file";
  - Switch "-p" (--printconfig) prints the name of configuration file being
    used and all option/value-pairs, taking into account all used 
    "-o" (--option) - switches;
  - The communication protocol between server and client was optimized to
    minimize the size of transferred data. Instead of fixing the size for
    Filenames in data-structures to 512 bytes only in fact used data
    are transferred;
  - Extensions in ncurses-outputmode: scrolling in queue-list works better, 
    navigation in queue with keys Up, Down, PgUp, PgDn, Home, End. 
    Keys to move entries are "U" (move up), "N" (move down), "T" (move to top),
    "B" (move to bottom). "P" to pause/unpause file. The size, percentage 
    of completing and state (paused or not) for every file is printed. 
    The header of queue shows number of total files, number of unpaused 
    files and size for all and unpaused files. Better using of screen estate
    space � no more empty lines and separate header for status (total seven
    lines gain). The messages are printed on several lines (if they not fill
    in one line) without trimming now;
  - configure.ac-file updated to work with recent versions of autoconf/automake. 
    There are new configure-options now: "--disable-uulib" to compile the 
    program without uulib; "--disable-ncurses" to disable ncurses-support 
    (eliminates necessity of ncurses-libs), useful on embedded systems with 
    little resources; "--disable-parcheck" to compile without par-check;
  - The algorithm for parsing of nzb-files now uses XMLReader instead of 
    DOM-Parser to minimize memory usage (no mor needs to build complete DOM-tree
    in memory). Thanks to Thierry MERLE <merlum@users.sourceforge.net> for 
    the patch;
  - The log-file contains now thread-ID for all entry-types and additionally 
    for debug-entries: filename, line number and function's name of source
    code, where the message was printed. Debug-messages can be disabled in 
    config-file (option "debugtarget") like other messages;
  - The program is now compatible with windows. Project file for MS Visual 
    C++ 2005 is included. Use "nzbget -install" and "nzbget -remove" to
    install/remove NZBGet-Service. Servers and clients can run on diferrent
    operating systems;
  - Improved compatibility with POSIX systems; Tested on:
	  - Linux Debian 3.1 on x86;
	  - Linux BusyBox with uClibc on MIPSEL;
	  - PC-BSD 1.4 (based on FreeBSD 6.2) on x86;
	  - Solaris 10 on x86;
  - Many memory-leaks and thread issues were fixed;
  - The program was thoroughly worked over. Almost every line of code was
    revised.

nzbget-0.2.3
  - Fixed problem with losing connection to newsserver after too long idle time
  - Added functionality for dumping lots of debug info

nzbget-0.2.2
  - Added Florian Penzkofers fix for FreeBSD, exchanging base functionality in 
    SingleServerPool.cpp with a more elegant solution
  - Added functionality for forcing answer to reloading queue upon startup of 
    server
    + use -y option to force from command-line
	+ use "reloadqueue" option in nzbget.cfg to control behavior
  - Added nzbget.cfg options to control where info, warnings and errors get 
    directed to (either screen, log or both)
  - Added option "createbrokenfilelog" in nzbget.cfg
  
nzbget-0.2.1
  - Changed and extended the TCP client/server interface
  - Added timeout on sockets which prevents certain types of nzbget hanging
  - Added Kristian Hermansen's patch for renaming broken files

nzbget-0.2.0
  - Moved 0.1.2-alt4 to a official release as 0.2.0
  - Small fixes

nzbget-0.1.2-alt4
  - implemented tcp/ip communication between client & server (removing the 
    rather defunct System V IPC)
  - added queue editing functionality in server-mode

nzbget-0.1.2-alt1
  - added new ncurses frontend
  - added server/client-mode (using System V IPC)
  - added functionality for queueing download requests 

nzbget-0.1.2
  - performance-improvements
  - commandline-options
  - fixes

nzbget-0.1.1
  - new output
  - fixes

nzbget-0.1.0a
  - compiling-fixes

nzbget-0.1.0
  - initial release
