Please read the IMPORTANT NOTE on xMule's versioning system below!

Version 1.9.5
-------------
2005/01/06

HopeSeekr's contributions:
    * FIXED: Internationalization works again, yay (01-05).
    * FIXED: Huge increase in CPartFile::Process(): used to use 44% of total xMule
      CPU usage, now requires ~1% (01-01).
    * FIXED: Major residual memory leak in the credits system (12-23).
    * FIXED: xMule should now compile on RedHat boxes without modification.
    * FIXED: Properly delete socket handlers (11-04).
    * FIXED: Command-line interface is now functional again (11-04).
    * FIXED: Removed a memory leak when canceling/stopping downloads (01-05).
    * FIXED: *MAJOR* CPU leak after 24 hours that occurred in the SysTray;
      see ChangeLog-UNSTABLE entry for 02-08-03 (01-05).

    * IMPROVED: Source code dependency tracking (11-04).
    * IMPROVED: Source code coupling - 59 files optimal (11-04, 5, 6, 7).
    * IMPROVED: Credits system is now dynamically sized and freed (01-04).
    * IMPROVED: Re-implemented Download List's event handling routines (01-04).
    * IMPROVED: Re-implemented Category's event handling routines (01-05).
    * IMPROVED: Almost totally re-implemented ed2k external helper; now supports
      all types of ed2k links, including those with sources.  On installation, it
      is installed as both "ed2k" (deprecated) and "ed2k.xmule-2.0" (01-06).
    * IMPROVED: Re-arranged the Preferences toolbar for greater clarity (01-06).

    * ADDED: External libcrypto++ support (01-03).

    * Misc:
        * Now xMule uses the ISO-C++ standard number types instead of a mix of
do you notice problem with finishing?
          its own and wxWidget's (11-04).
        * Refactored and unicoded Categories (11-07).
        * Upgraded wxWidget's animate.cpp from v2.3.2 to 2.5.3 (11-08).
        * Refactored many maps to std::maps for large performance gangs (01-01)

DavidW's contributions:
    * Provided the new configure.ac configuration (10-21).
    * Added routines for detecting libcrypto++ (01-05).

pbrook's contributions:
    * FIXED: Three crashes on shutdown (01-03).
    * FIXED: Several post-increment discrepancies (01-03).
    * FIXED: Floating-point Error found in 1.9.5pre2 and above (01-03).
    * FIXED: 1.9.5pre3 bug that hindered secure ident (01-03).

Debian Team's contributions:
    * FIXED: Some crashes due to big endian routines of embedded Crypto++ (11-06).

Xaignar's contributions:
    * Pointed out a small bug at BaseClient.cpp:264 (11-03).

Version 1.9.4b
--------------
2004/11/02

HopeSeekr's contributions:
    * FIXED: Sockets no longer crash when deleted (partfile completion).
    * FIXED: Crash when a client seemed to be disconnected but sent data regardless.
    * IMPROVED: CPU performance when connecting to > 1000 sources.
    * ADDED: Automatic support for the command-line control mode.

Anonymous' contributions:
    * FIXED: Insight and fixes for POSIX systems regarding uint32_t.

Version 1.9.4
-------------
2004/10/30

HopeSeekr's contributions:
    * FIXED: Internationalisation now works appropriately.
    * FIXED: Removed all deprecated wxWidgets mannerisms.
    * FIXED: Added headers for support of wxWidgets CVS.
    * FIXED: A minor bug in client version displays.
    * FIXED: Crypto++ ASM that broke on non-i686. (Recommend using stand-alone
      crypto++ for all non-i686 systems).
    * FIXED: New malloc ncompatibilities with newly-authorized (29-08-2004)
      POSIX 1003.4 (Mandrake 10.1 especially).
    * IMPROVED: Drammatically re-implemented CArray for a large performance
      increase.
    * IMPROVED: Re-implemented downloading sources handling mechanism for a
      massive performance increase (2 to 20x less CPU over time).
    * Removed Shared Directories selector to prepare for re-implementation.
    * Removed excessively-verbose 1.9.3 "misconfigured client" warning.
    * ADDED: More robust sourcecode dependency tracking.
    * ADDED: Support for custom $CXXFLAGS from the command-line.

Version 1.9.3
-------------
2004/10/27

HopeSeekr's contributions:
    * FIXED: Now works with wxWidgets 2.5.3 and higher.
    * FIXED: Removed *major* CPU leak.
    * FIXED: Removed a *lot* of compiler warnings (-Wall), for more stable code.
    * FIXED: 1.9.2-specific bugs:
      - Category-switching now works,
      - Download bar curvature is now configurable,
      - Taskbar setting now saves.
    * IMPROVED: Refactored CTag, PartFile, and Packet for more efficient
      network code.
    * IMPROVED: Now uses DynamicPreferences 1.2.
    * IMPROVED: The internal mechanisms of FlowChart have been refactored.
    * IMPROVED: The internal mechanisms of Transfer Window have been refactored.
    * Use pre-built XRC, zlib, and/or libCrypto++ instead of bundled versions.

Gentoo's contributions:
    * ADDED: Full 64-bit support.

Debian's contributions:
-- Frank Lichtenheld <djpig@debian.org>
    * FIXED: Some 64-bit datatype problems in CryptoXMpp.h.
    * ADDED: Full PowerPC/BigEndian support.

DavidW2's contributions:
    * FIXED: Numerous ./configure issues.
    * ADDED: --with-cryptopp-prefix for standalone crypto.

Version 1.9.2
-------------
2004/09/30

HopeSeekr's contributions:
    * FIXED: Removed *all* known memleaks (15).
    * FIXED: Removed four CPU leaks.
    * FIXED: Reverted to most stable code from 1.8.4.
    * Started using DynPrefs instead of CPrefs for more efficiency.
    * Heavily re-implemented integral CPacket and CTag classes.
    * Heavily re-implemented internal preferences...new functionality is now
      far easier to integrate into xMule...Get the Feature Requests posted!

Version 1.9.1b
--------------
2004/09/09

HopeSeekr's contributions:
    * FIXED: Resources now load on startup. So sorry!! :-/
    * FIXED: Fixed layout of Comment Dialog.
    * FIXED: xMule now sends out a proper version tag.
    * FIXED: A few wxWidgets 2.5.x issues.
    * Completely re-implemented client version and display.
    * Decoupled Crypto++ some more: modest compilation speedup.
    * Removed a *lot* of dead code.
    * Removed the need for libXRC in a great many files, though it can
      still be used with special ./configure flags and an existing
      libXRC.

alus' contributions:
    * Added full wxWidgets 2.5.x compliance.

Version 1.9.0
-------------
2004/08/13

HopeSeekr's contributions:
    * FIXED: Invalid memory free on xMule termination.
    * FIXED: Numerous Search Dialog memleaks.
    * FIXED: Reverted to old search dialog update behavior.
    * FIXED: Made CryptoXMpp compatible with RedHat 7.1.
    * FIXED: All startup memleaks.
    * FIXED: Removed all compiler warnings.
    * FIXED: Made xMule 100% ISO-C++ compliant.
    * FIXED: Made xMule 100% ANSI-C++ compliant.
    * FIXED: Invalid OP_REQUESTFILENAME packet.

    * Removed some unnecessary code.
    * Totally refactored headers. Faster compile time.
    * Added gcc 3.4.0 compatibility.
    * Fully documented header files in h files.
    * Started documenting headers in cpp files.
    * Removed eMule and aMule bans made by fsch2010.
    * Re-instated the Premake build system.

    * Drammatically reduced CPU when canceling searches.
    * Drammatically re-implemented CString.  Much better memory management now.
    * Totally reimplemented GetResString. Decent CPU and memory improvements.

    * ADDED: Initial support for command-line client.
    * ADDED: A greatly improved backtrace function.
    * ADDED: Totally re-implemented Preferences.
    * ADDED: support for the Dynamic Preferences Library.


Version 1.7.3
-------------
2004/02/08

HopeSeekr's contributions:
    * FIXED: Dependency issue in ini2.cpp that started in 1.7.2.
    * Added Obone's zlib patch for v1.7.2, provided by nillekind.
    * Added Hetfield's SysTray for Gnome and KDE, provided by m_abs.
    * Statistics colors are now saved at program close.
    * Added a check for gthread, requested by the ROCKS Linux Team.
    * Refactored every header, cpp file.  Much less interdependent files.
    * Re-instated LOWID hack that Malware had temporarily disabled.

Version 1.7.2
-------------
2004/01/25

HopeSeekr's contributions:
    * Updated build system to autoconf-2.58.
    * Added Verbose mode to build system.  Activate using $ make VERBOSE=1.
    * Added Precompiled Header for G++ 3.4 (I used g++ v3.4-20040114).
    * Increased support for wxWindows 2.5.x, though it still doesn't compile.
    * Removed several unnecessary files, generally cleaned source tree.
    * Removed old MD4 implemenation and replaced with existing MD5 impl.
    * Optimized protocol handling, esp. in connections and download requests.
    * Optimized certain default parameters for performance reasons.
    * Removed most compiler warnings.
    * Updated INSTALL file with important information about configure changes.

Version 1.7.1
-------------
2003/11/21

Un-Thesis' contributions:
    * FIXED: A bug that would cause approx 5% download sources to be deleted
     unnecessarily.
    * FIXED: aMule 1.1.2 bug in their ZLib implementation (look for "FIXME" in
     their code heh).
    * FIXED: Removed the undefined VoidList warning in mfc.cpp.
    * Added ZLIB support to xMule, based on aMule 1.1.1, which is based on eMule
     0.30c.
    * Changed target minimum speed for each upload from 3000 bytes/sec to
     2KB/sec.
    * Implemented nearly 100% of aMule-1,1,2's network modifications that worked.
    * Client now masquerades as eMule v0.34 heh.
    * Download list now refreshes in *real* time.  No more seconds delay.
    * Less waiting for downloads!  Fixed a broken if statement that was tossing
     out some of the early download connections.

DongCheon Park's contributions:
    * Updated the Korean translation files for new features in 1.7.x.

Version 1.7.0
-------------
2003/11/11

Special note:  Due to the chaos surrounding the 1.6.1 release (Un-Thesis being
DMCAd), we delayed releasing 1.7.0.  Sorry for the confusion.

Highlights:
    * There are no known exploits in this version.
    * Lots of fixed memleaks and cpuleaks.
    * Extended support for more eMule v3x protocol changes.
    * Enhanced transfer controls.
    * Supports every eDonkey server.

malware's contributions:
    * FIXED: endless loop in sending UDP packets.
    * FIXED: a possibly exploitable bug as noticed by S. Esser from e-matters
     (#3 "Servername Format String Vulnerabilities").
    * FIXED: new downloads assigned to random category.
    * FIXED: Bug rehashing a part file.
    * FIXED: Various minor problems found by malloc debuggers.
    * FIXED: Bug using MFC CMap.
    * Speed up the initial sharing by making KnowFileList a hash map.
    * Remove the assign to category context menu entry only if it was
     already there.
    * Reimplemented hashing thread.
    * Removed unused locks. As the NetBSD team pointed out they are
     causing problems on their system because it does core dump on
     unlocking a mutex that was not locked.
    * Made the title for systray the same as for the main dialog.
    * Never share a file twice.
    * Check size of OP_SERVERSTATUS packet more strictly.
    * Do not display the unit for file size twice in shared file list web page.
    * Make xmule not to send the MOD_VERSION information. This does avoid a
     problem with the LSD mod and other xmules.
    * Added check for libm to configure.in.
    * Avoid accepting an unrequested hashset.
    * Removed memory leak from hashing thread.
    * Implemented rescaling of the graph of currently active connections.
    * Remove invalid gap information entries which might be caused by
     incomplete part.met files.
    * Removed all font specifications from the XML resources.
    * Do not start a search after adding an ED2K-Link.
    * Enable clipping in download list control.
    * Possible fix for some problems while ending the program.
    * Keep the requested file in sync with the part status in CUpDownClient.
    * Imported from eMule:
       - Source exchange v2
       - Do not swap a source to a stopped file.
       - Up-/download auto-priority
       - Request of shared files by directory.
       - "Obtained Parts" bar in the shared files list

Un-Thesis' contributions:
    * FIXED: Bug that kept auto-backtrace from occuring in Linux.
    * FIXED: Rare crash occuring in Preferences->Directories.
    * FIXED: Optimization and compilation warnings using -O2 with GCC 3.3.x.
    * FIXED: Two memleaks in ClientCreditList.cpp.
    * FIXED: Several GCC 3.4 problems.
    * FIXED: Several Intel C++ problems.
    * Added more support for Solaris, thanks to wimms.
    * Corrected various Linux-specific #ifdefs.
    * Now masquerades as eMule v0.31 in order to use hostile eMule servers.
    * Added initial support for GCC 3.2+ AthlonXP optimizations.
    * Added initial support for wxGTK 2.5.1.
    * Two tweaks to make SuSE builds less CPU-intensive.
    * New build system, easier to maintain and automake free. Yay!
    * Streamlined included images: now only necessary ones are there.
    * Added initial support for JusSx's ed2k+ daemon.
    * Added initial support for Hetfield's systray daemon.
    * Added initial support for my telnet/ssh/www daemon.

NetBSD team's contributions:
    * FIXED: bug with the mutex protecting calls to gethostbyname.
    * Try to increase some resource limitation to the permitted maximum.

sepahewe's contributions:
    * Fix images in transfer list web page.

Justinas' contributions:
    * Fixed the mfc.h warnings at lines 418, 423,

Version 1.5.6
-------------
2003/08/01

Highlights:
    * Fixes for a great many bugs that cropped up from 1.5.2 to 1.5.5.

malware's contributions:
    * Added simple workaround in case CClientUDPSocket::OnSend is called
     recursivly.
    * Do not share the global incoming directory twice.
    * Fixed wrong tag count written to part.met files.
    * Various xmule signature changes as requested by BigBob.
    * Fixed statistics color saving/loading.
    * Decode %-escaped characters in URL within the ed2k application as
     suggested by __JusSx__.
    * Removed two trouble-maker member variables used in the search.
    * Catch invalid/strange packets before they can cause harm. This
     does also affect parts of network packets stored in *.met files.
    * No longer throw out clients sending packets larger than needed.
    * Fixed invalid messages "You already have...", caused by comparing
     a hash over the File-ID rather than the ID itself.
    * Cleaned up the nstrdup() mess.
    * When finishing download share the file in the incoming directory
     of the category it does belong to.
    * Removed various possible format string exploits.
    * Make it possible to delete the last user-defined category.

MikaelB's contributions:
    * Optimized anti-hash thief.
    * Test for invalide eMule clients and irregular eDonkey clients.
    * Anti-leechers test - Mison-like clients are automatically detected.
    * Special icon in Upload List/Queue for invalid clients.
    * Ban spammer clients ( Mison and others ).

Un-Thesis' contributions:
    * Upgraded XRC library to latest wx release.
    * Converted internal XPMs to PNGs and JPEGs.
    * Fixed a few Intel C++ compiler warnings.
    * Re-organized the ChangeLog system.
    * Made sure Italian and Korean translations were included in release.

Madcat's contributions:
    * Fixed crash in ClientDetailDialog.
    * Fixed Directory Tree displaying.
    * Fixed crash when attempting to delete noexistent TreeCtrl items.

BigBob's contributions:
    * Cosemtic GUI change - the IRC button is gone
    * Make the status line resizing the areas to fit the text into.

bothie's contributions:
    * Actually send the MOD info with the MuleInfo packet.

FooMan's contributions:
    * Fix for failing file access during download completion.

DongCheon Park's contributions:
    * Updated the Korean translation files for new features.

Version 1.5.5
-------------
2003/07/11

Madcat's contributions:
    * Column widths are now saved (got broken in 1.5.4).
    * Possible fix for column hiding in Transfer tab (got broken in 1.5.3).
    * Abort flushing and pause file if less than 9.28MB free disk space left.
    * Abort part.met file writing if less than 5000 bytes free disk space.
    * Code cleanup: Removed large amount of unused variables, #if 0'ed blocks,
     indented several files and changed EOL to UNIX style in most.
    * Online signature is now cleared on shutdown.
    * Category incoming directories are now automatically shared.
    * Automatic sources dropping at user-defined interval.

MikaelB's contributions:
    * Fixed a window increasing size problem at startup
    * Fixed the '$' appearing in Cancel button in Categorie dialog
    * Added timer in Sources Dropping tab

plobb's contributions:
    * Hotranking: Sources with QR: <5 ignore MaxNewConPer5Sec value.

Version 1.5.4
-------------
2003/07/05

Madcat's contributions:
    * Lists are no longer redrawn when they are not shown.
     NOTE: This reduces CPU usage SIGNIFICENTLY (for better effect,
     stay off Transfer tab when running on background.
    * Possible fix for gcc 2.95 compliation problems (DownloadListCtrl.cpp)
    * Possible fix for BSD compatibility problems with configure.
    * Possible fix for eMule 29a compatibility problems in met files.
    * Reverted to old sources handling. New engine was way too aggressive.

MikaelB's contributions:
    * Possible fix for main toolbar display bug.
    * Possible fix for sash position loading problems after new compilation.

Version 1.5.3
-------------
2003/07/02

Highlights:
    * Categories implemented
    * Much better No Needed/High Queue Ranking sources handling
    * Shared files loading made 30x faster.

Madcat's contributions:
    * Possible fix for AppVersion value in .eMule file.
    * Possible fix for statistics colours saving problems.
    * Possible fix for shared files loading. Loading is MUCH faster now.
    * Possible fix for crash if Hello Packet had tagcount 0. Strangely,
     this only happened randomly after closing movie preview.
    * Possible fix for endless loop when UDP packet sending fails.
    * Imported categories from LMule CVS (written by Tiku).
    * Category functions now apply to selected category only.
    * Added confirmation message when cancelling all files in a category.
    * Category setting is now saved.
    * Much better HQR/NNS handling. Those two are now dropped automatically as  they connect.
    * Fixed New MLDonkey compatibility (Been broken since 1.4.1)

MikaelB's contributions:
    * Fixed bug in File Comments dialog ( nothing displayed )
    * Save sash position of splitter in transfer window at exit
    * Fixed a bug in Sources Dropping Preferences window
    * HQR Value is know set between 300 and 3000
    * Fixed Dropping Sources Preferences saving bug (there were saved into
     WebServer section in .eMule file)
    * Changed Dropping Sources tab in Preferences window
    * Better handling for NNS
     User can now choose to:
       * Automatically drop file
       * Try to send it to an other file
    * Default HQR value changed to 1200

Kry's contributions:
    * First Main category filters attempt to work.
     * Downloads are now filtered from or added to shown list if status changes
       after filter apply.
     * Main category tab should be showing Filter name as tab name. Fixed.
     * Added several more filters: Video, Audio, Image, Text, CDImage, Archive.
     * Filters Apply now to all categories.
    * Stopped files now have Stopped status instead of Paused.
    * Colors for categories on download list were reversed from those the user
     selected. Fixed.
    * Added xMule Uptime to statistics tree.
    * Possible fix for multiple PopUp menus on categories tab right-click.
        * Shared files should be reloaded when closing preferences only if
          folders changed.

Tiku's contributions:
    * Implemented Download list Categories.

Malware's contributions:
    * Possible fix for various exception handling bugs.
    * Possible fix for the remaining of search page crashes.

Balu's contributions:
    * Updated spanish translation.

Version 1.5.2
-------------
2003-06-22

Madcat's contributions:
    * Imported all features in Razor 1a Beta 1 mod.
    * Imported most of the features in Lagloose mod v0.1a

MikaelB's contributions: ( thanks to eMule Sivka mod )
    * Added support for 'Swap every A4AF to this file now'.
    * Added support for 'Swap every A4AF to this file AUTO'.
    * Added support for 'Swap every A4AF to any other file now'.
    * Added support for 'Drop No Needed Sources now'.
    * Added support for 'Drop Full Queue Sources now'.
    * Added support for 'Drop High Queue Rating Sources now'.
    * Added support for 'Clean Up Sources now ( Drop NNS, FQS and HQRS now)'.
    * Added Sources Dropping Preferences Tab (not functional yet).
    * Possible fix for saving main window position and size.
    * Initial support for Auto Drop NNS, FQS and HQRS (not functional yet).
    * Initial support for Dynamic Upload (not functional yet).

Lagloose's contributions:
    * Shift+Doubleclick in downloadlist only shows transferring sources.
    * Increased font size for the axis in statistics.
    * More Information on uploading clients in upload window.


Version 1.5.1
-------------
2003-06-11

Un-Thesis' contributions:
    * Possible fix for bad return statements in ClientUDPSocket and BaseClient.
    * Reverted to old code for several bad fixes in 1.5.0.

Kry's contributions:
    * Made ./xmule statistics more readable.
    * Possible fix for download limit being higher than capacity.
    * Added a notification message in case second xMule is started.
    * Possible fix for --version commandline argument.

Version 1.5.0
-------------
2003-06-08

Madcat's contributions:
    * Sockets are also closed on crash now.
    * Revised Search Result packet handling, shouldn't crash/memleak there
     anymore.
    * Removed annoying MAX_RESULTS check from search tab.
    * Added log line when ipfilter is loaded.
    * Possible fix for various crashes regarding Shared Files Reloading.
    * Possible fix for several Search Tab Closing/Global Search related crashes.
    * Possible fix for several eMule/xMule typos.
    * Possible fix for potential endless loop if UDP packet sending failed.
    * Possible fix for potential endless loop/memleak at ProcessMuleInfoPacket().
    * Possible fix for CPU leak in ProcessHelloPacket().
    * Possible fix for endless loop at CPartFile::FlushBuffer().
    * Possible fix for gsocket.c compilation problems with older compilers.

Un-Thesis' contributions:
    * Possible fix for GTK-only XPM compatibillity problems.
    * Possible fix for GetTickCount compilation errors.
    * Possible fix for LOWID problems (AGAIN!).
    * Removed pure GTK code from GetColour.

MikaelB's contributions:
    * Possible fix for toolbar sizing with i18n

Version 1.3.1
-------------
2003-05-16

Madcat's contributions:
    * FIXED: 'All Columns Hidden on First Start-Up' bug.
    * FIXED: Systray integration setting saving.
    * FIXED: Start webserver only if it's enabled in preferences.
    * FIXED: Shared files Re-Loading.
    * FIXED: Shutdown seg-fault.

ArCePi's contributions:
    * Updated spanish translation.

Shuttle's contributions:
    * Added Italian translation

Version 1.3.0
-------------
2003-05-15

* Changed the release organization of xmule
  * Stable releases have even middle numbers (ex: 1.2.1 is stable)
  * Unstable releases have odd middle numbers (ex: 1.3.0 is unstable)

Pure_Ascii's contributions:
    * FIXED: Last part always being corrupt problems.
    * FIXED: FreeBSD 5.x compatibility problems.
    * Started port to MacOS X.

Un-Thesis' contributions:
    * FIXED: Implemented McCabe's and arkanses' LOWID on restart fix.
    * FIXED: Several major Mem and CPU leaks
    * FIXED: Application termination improved.
    * FIXED: Removed & symbols from the main toolbar.
    * Added new MakeNG system, see README.makeng.
    * Added --version command line option.
    * Ported xMule 28b Partfile.
    * Added framework for more robust command line control.

Madcat's contributions:
    * FIXED: Major Memory leak caused by NOT flushing files.
    * FIXED: Toolbar sizing if texts are too long.
    * All lists are now sorted on startup.
    * Preview now defaults to mplayer if none set.

Tiku's contributions:
    * Added initial code for Webserver, not currently functional.
    * Further synchronized statistics windows with xmule.

Gib[S]On's contributions:
    * Added list counters for Servers, Transfer and SharedFiles windows.

Ender's contributions:
    * Opera 7.1 info to ED2K-Links.HOWTO

-------------
For previous release, see ChangeLog.

-----------------------------------

IMPORTANT NOTE:
The xMule release system works as follows:
*  Program_Era.Major_Version.Minor_Version.
*  We are in Program_Era 1
*  Major_Versions work as follow:
    *  Odd numbered Major_Versions represent uniquely new code, such as new
      features or complex bug fixes/
    *  Even numbered Major_versions represent code that has been tested, USUALLY
      in an odd Major_Version release.
    *  Once *new features* in odd Major_Versions have been tested, they go into
      the next *even* Major_Version.
    *  Once *bug fixes* in odd Major_Versions have been tested, they go into the
      next *odd* Major_Version.

What this means is that a great many (hopefully EVERY!) feature mentioned in
ChangeLog will ALSO be mentioned in a PREVIOUSLY RELEASED ChangeLog-UNSTABLE.
