Change log for Licq.

New in 1.3.9
o Various bugs in both Licq and plugins that caused crashes and hangings have been fixed 
o Hebrew support was broken and could cause crashes 
o Licq will automatically switch to qt4-gui if qt-gui fails to load on startup 
o Sockets would become IPv6 only if system default was to not allow IPv4 
o Build: --disable-hebrew caused hebrew support to be enabled 
o Build: Wrong header files were included on FreeBSD 
o Build: Various fixes to remove build warnings 
o Console: Command to add contact was not working 
o Console: Backspace across multiple lines wasn't handled correct 
o ICQ: Deleting a contact would not update the server side list 
o ICQ: Failed log on did not report it was ICQ protocol that failed
o ICQ: Removing a user from the server ignore list was not possible 
o MSN: Contacts with status Occupied were handled as Away 
o MSN: Own status for Occupied was reported as Do Not Disturb 
o MSN: Failed log on due to wrong password was not signaled to GUI
o LicqWeb: Added option to set status Free For Chat 
o Qt-Gui: Confirmation to ignore user never appeared 
o Qt4-Gui: Added option to permanently add "Not in list" users 
o Qt4-Gui: Adding user from search dialog did not pass on user id to add dialog 
o Qt4-Gui: Confirmation to ignore user appeared when removing instead of adding 
o Qt4-Gui: User count in group header was wrong if group contained ignored users 
o Qt4-Gui: Added confirmation dialog when removing an account 
o Qt4-Gui: Shift+Return can be used to make new line in single line chat mode 
o Qt4-Gui: Added shortcut to chat dialog for opening next unread message
o Qt4-Gui: Renaming groups from contact list did not save the new group name


New in 1.3.8
o Plugin API: Added GPG functions so plugins don't need to depend on gpgme anymore 
o Qt4-Gui: Fixed a bug that could cause GUI to crash on startup 
o Qt4-Gui: Fixed a bug causing the same image to be loaded for all icons 
o Qt4-Gui: Dragging a file to chat dialog will open send dialog 
o Qt4-Gui: Tray icon will show status from another protocol if ICQ is offline 
o RMS: Fixed a bug causing LIST command to always return an empty list 
o RMS: Added HISTORY command for fetching user history 
o Web-Gui: Corrected various syntax errors in scripts 
o Web-Gui: Updated html to conform with xhtml 1.1 standard 
o Web-Gui: Added option to set status offline 
o Web-Gui: Made windows resizable 
o Web-Gui: Show messages from history when opening chat window 
o Web-Gui: Highlight timestamp and user alias in chat history


New in 1.3.7
o Various bugs in both Licq and plugins that caused crashes and hangings have been fixed. 
o Build: Various fixes to make Licq and plugins compile cleaner. 
o ICQ: Line breaks in received messages from some clients were lost. 
o ICQ: Manually set aliases were sometimes lost during logon. 
o ICQ: Files were left open after canceled transfers. 
o MSN: Sometimes sockets were getting associated with the wrong conversation. 
o Plugin API: Renamed ICQUser class to LicqUser. 
o Plugin API: Introduced a user id data type to replace account+ppid. 
o Plugin API: Introduced mutex guard classes for user and group objects. 
o Plugin API: Added IPv6 support to socket class (currently not used by ICQ or MSN plugin). 
o Plugin API: Various other changes and improvements. 
o Qt4-Gui: Deleting a user caused the contact list to behave strange or even crash. 
o Qt4-Gui: Moved Qt style setting from command line to settings dialog. 
o Qt4-Gui: Moved skin and icon set selections to settings dialog. 
o Qt4-Gui: Alt+1, Alt+2, etc in message dialog can be used to switch between tabs. 
o Qt4-Gui: Made keyboard shortcuts configurable. 
o Qt4-Gui: Several additional functions can be configured to have keyboard shortcuts. 
o Qt4-Gui: Added option to disable sound for active message window. 
o Qt4-Gui: Size of view event and send event dialogs are remembered. 
o Qt4-Gui: Current group in contact list can be changed using scroll wheel on message field. 
o Qt4-Gui: Shift+PgUp/PgDn in message input can be used to scroll history area. 
o Qt4-Gui: Added spell checking support (using Hunspell) for message dialog. 
o Qt4-Gui: Thread contact list can be split in online and offline parts (group mode 2). 

Note: Hunspell is required to get spell checking support in Qt4-Gui.


New in 1.3.6
o Various bugs in both Licq and plugins that caused crashes have been fixed. 
o Prevent DoS attack by adding limit to number of incoming connections accepted. 
o Properly handle backslashes in auto responses. 
o ICQ: Updated client id sent to server to enable login after 2008-07-01. 
o ICQ: Use MD5 based authentication for login instead of sending plain text password. 
o ICQ: Support for downloading contact pictures from server. 
o MSN: Fixed a problem with contact pictures sometimes failing to download. 
o Plugin API: Functions using Uin parameter have been deprecated. 
o Plugin API: Improved group handling. 
o Qt/KDE: Qt-Gui ported to Qt4, more info below. 
o Qt/KDE: Show contact registration date in user info dialog. 
o Qt/KDE: GUI will now update if group data changes. 
o Qt/KDE: Startup group setting moved from daemon to GUI. 
o Qt/KDE: Automatically switch message dialog to text message after sending file, contact, url, etc. 
o Qt/KDE: Birthday icon was not removed at the end of the day. 
o Qt/KDE: Main window position/size is now saved on exit. 
o Qt/KDE: User info can be opened from authorization request window. 
o Qt/KDE: ICQ server port would be reset to default when opening options dialog. 
o Qt/KDE: Establishing a secure connection now unchecks "Send through server". 
o Qt/KDE: User info dialog now includes year in all dates.

Note: As of 1.3.6, Licq requires Boost libraries to build. Boost is also
   required when building any plugin as it is used in the header files.

Licq 1.3.6 includes the Qt4-Gui with is a new version of the Qt-Gui plugin.
The following major changes can be seen in Qt4-Gui compared to Qt-Gui:
o New tray icon handling that will work on any desktop with a standard tray area.
o Buttons for most dialogs are ordered to match the local environment.
o Message dialog has new layout which uses less space for the controls. 
o Settings dialog pages has been reorganized with fewer options per page for easier navigation. 
o User info dialog has been extended to also include pages with user settings. 
o Settings dialog and user info dialog now uses a navigation-tree pane instead of tabs. 
o A completely new history dialog with easier navigation and search functionality. 
o Message dialog remember its position and size (tabbed mode only). 
o Option to display user image in message dialog. 
o Contact list shows contacts awaiting authorization in different colour. 

Note: The Qt4-Gui requires cmake to build it, see plugin/qt4-gui/doc/INSTALL
   for further information. 


New in 1.3.5
o Save the "Send through server" option to disk. 
o Fixed bugs that caused Licq to leak memory. 
o Fixed a bug where Licq would crash on authorization requests from new users. 
o Added code (disabled by default) to help find locking issues that could cause Licq to hang and fixed the bugs that were discovered. 
o Made Licq buildable with GCC 4.3. 
o Updated autotools and friends. 
o Use gdb if it's installed to generate a better backtrace if Licq crashes. 
o Display a dialog informing the user how to report the bug in case Licq crashes. 
o ICQ: Fixed sending capabilities. 
o ICQ: Fixed setting security settings (Require authorization, Show web presence). 
o Qt/KDE: New emoticons theme FeltTip4. 
o Qt/KDE: New "Date format" option for customizing date and time in message and history windows. 
o Qt/KDE: The local time of contacts can be displayed in contact list and popup information. 
o Qt/KDE: Made the history layout configurable. 
o Qt/KDE: New option to use double return instead of Ctrl+Return for sending and in input dialogs. 
o Qt/KDE: Skins can now set a separate background color for group headings in the contact list (parameter colors.groupBack). 
o Qt/KDE: Tabs in chatdialog can be closed by middle clicking on them. 
o Qt/KDE: Removed all Qt2 support. 
o Qt/KDE: Open links in a new tab when using Opera. 
o Qt/KDE: Made the standard group names translatable. 
o Qt/KDE: Added %M modifier to print number of pending messages (if any). 
o Qt/KDE: Popup information shows if contact is not authorized yet. 
o Qt/KDE: Floaties are now saved properly for non-ICQ contacts.


New in 1.3.4
o Fix a few bugs where users would falsely go offline 
o Make sending typing notifications optional 
o Fixes for newly registered users 
o Fix the handling of pidfiles so that Licq always starts unless there actually is an other instance of Licq running. 
o 64-bit compatibility changes 
o Compilation fixes 
o Fixes for Licq on Mac OS X (with Fink) 
o Iconv fixes 
o ICQ: Fix a bug where contacts would receive empty messages 
o ICQ: Update the protocol to properly set info 
o ICQ: Show more version information of remote clients 
o ICQ: Fix SSL issue
o MSN: Fix a race error in MSN packet parsing 
o MSN: Fix socket handling 
o KDE: Addressbook fix 
o KDE: Add spell checking to the kde-gui (Using KSpell) 
o Qt/KDE: Show user's pictures as a tooltip or status icon 
o Qt/KDE: Optional "Send with Enter" 
o Qt/KDE: Improve hyperlink detection 
o Qt/KDE: Improve emoticon detection and processing 
o Qt/KDE: Add a custom message box handler 
o Qt/KDE: New KDE iconset to better integrate with the KDE desktop 
Many various minor bugs and crashes fixed... See http://tinyurl.com/ygdrfo for details.


New in 1.2.0
o  Lots and lots of bug fixes
o  Memory management fixes
o  Per user encoding in QT plugin
o  Initial server side list support
o  Sending SMS
o  Improved buffer overflow prevention
o  ICQ CLB file converter
o  So many other things


New in 1.0.4
o  Bug fixes
o  workarounds for reoccuring offline messages
   and direct-sending problems with ICQ2001 clients added
o  Primary maintainer changed to Dirk Mueller <dirk@licq.org>

Note: This is the very last release that uses the old, not well
   working ICQv5 protocol (which was used by ICQ99a and ICQ99b). 
   There will be a new alpha release shortly that uses the new,
   more reliable protocol, that is also used by ICQ2001 clients. 

Note: This is the very last release of an outdated code base. 
   If it doesn't work for you, please help with the development
   of the new, ICQ2001 based protocol. 


New in 1.0.3
o  Bug fixes


New in 1.0.2
o  Save colors
o  Install fix for BSD
o  File transfer fix for icq2000


New in 1.0.1
o  Various small bug fixes
o  Support for sending messages in color
o  Auto-response scripting
o  % expansion security fix
o  licq2mutt script
o  icq2000 converter
o  Fixed problems with kernel 2.4.x in socket class


New in 1.0
o  Fix for problems reverse connecting to users
o  Whitepages searching added


New in 0.85
o  Support for ICQ TCP protocols v4,5,6,7
o  Chat improvements
o  Code cleanups and bug fixes
o  Multiple recipient option
o  Update all users
o  Removed spoof option as it no longer works


New in 0.81
o  Chat thread segfault handler
o  Use first name if no alias present
o  Fix no-rtti problem


New in 0.80
o  Multiparty chat
o  Chat integrated into the daemon
o  Renamed all header files to start with "licq_"
o  Send to contact list option
o  Always use correct ip and don't fail if hostname not set properly
o  Correctly retrieve occupied/dnd/ffc messages
o  Use status to user when communicating to a user directly
o  Hopefully fix problems with receiving chats/files about bad version
   when sending from icq99b
o  Accept modes for when to use OnEvents
o  Segfault trapping with backtrace output (on glibc systems)


New in 0.76
o  Random Chat (set group and search)
o  Major history speedups 
o  Bug fixes
o  New fifo commands (adduser, metauserinfo)
o  Uses libtool for better cross-platform support
o  64-bit machine support
o  Auto-accept and status-to-user features per-user
o  No online notifies during logon


New in 0.75
o  Whitepages information support
o  Lots of bug fixes
o  Firewall support
o  Attempt to use real ip if local ip fails to connect
o  Last seen online
o  Local time for each user
o  Load up any saved messages from the history


New in 0.71
o  New history format allowing easier parsing and much more informative
   display
o  Some bugs fixed including losing personal info every startup and segfault
   on certain system messages
o  Ignore user list added
o  User list format totally changed (affects developers only)
o  Ignore messages from users not on contact list, mass messages, web panel
   messages and email pager messages options added
o  Added two new options to the fifo, "message" and "url".  See the
   FAQ for more info
o  Added log.rejects for events which get rejected (ignored...)
o  Support for encrypted ICQ protocol version 4
o  Thread optimizations improving speed, especially on single CPU systems
o  Zipcode support


New in 0.70.1
o  Changed CICQSignal class to be much more informative and logical
o  Minor bug fixes
o  Improved unknown system message support


New in 0.70 final
o  Various bug fixes including segfault on exit and segfault on empty urls
o  Slight portability improvements


New in 0.70h
o  Fixed some small bugs with sending empty messages
o  Better cross-platform support
o  New users checking your away message are no longer added to your list


New in 0.70g
o  Added new user registration
o  Fixed file transfer and chat
o  Able to correctly receive sent contact lists
o  Fixed segfault if sending a file with no description
o  SOCKS5 support works again


New in 0.70f
o  Added USE_FIFO option to config.h to disable the licq fifo if it's causing
   problems


New in 0.70e
o  Redirection option on the command line or using the fifo to redirect
   stdout and stderr dynamically (usefull for running licq from the dock)
o  Fixed file sending


New in 0.70d
o  A few small fixes
o  Added "Web Presence" and "Hide IP" options.
o  Added a fifo in the base directory which accepts certain commands,
   see the FAQ, section 3.10 for more details
o  Licq now saves the last known ip/port for each user, allowing potential
   offline tcp use
o  Added Free For Chat, Url, Invisible, and File icons to the icon pack.
o  Added utility support, see UTILITIES.HOWTO
o  Improved the dock icon to provide more information


New in 0.70c
o  Many fixes
o  Added -s option to save the current plugins to be automatically loaded
   at each startup (see HINTS)


New in 0.70b
o  Major bugs fixed, including segmentation fault on sending direct
   messages
o  Minor fix to the viewurl-netscape script replacing ~ with $HOME
o  Updated the PLUGINS-HOWTO file


New in 0.70a
o  Lots of rewritten changes, code should be considered alpha quality
o  Plugin system implemented, now instead of having the gui a permanent
   attachment, it is merely another plugin
o  Command line options now needed to start up the gui properly (ie to load
   the plugin)
o  Few small fixes
o  Line added between online and offline users as a demo of what might be 
   coming, it looks terrible but eventually will be nice
o  A number of minor gui improvements in layout and functionality
o  Poorly implemented history fixed to no longer hold every history file
   open all the time


New in 0.61
o  Lots of compiling fixes for gcc 2.7 and other unixes
o  Added support for HTML panel and web pager messages
o  Various bugs fixes
o  Double clicking on the message label brings up the oldest user message


New in 0.60
o  File transfer
o  Various fixes for file problems and saving options
o  Multiple recipient messages are correctly handled
o  Message structure redone to look nicer in history and overall
o  Socket subsystem totally rewritten to be less prone to blocking,
   now much stabler
o  File code totally rewritten to be much faster, now colors specified
   starting with a hash (#) work properly
o  New skin revision, includes label.margin setting to specify a left
   margin for a label, proper color setting of the user group combo box, and
   transparent label backgrounds
o  Option to go to received URLs using a specified viewer (comes with a
   number of examples)
o  Away messages are displayed in their own window, and can be set to stop
   appearing until they change
o  More options added to the options dialog
o  Option to show only online users added


New in 0.51
o  Imlib is no longer used for skins.  Transparencies are
   done using a mask (see the SKINS.HOWTO for more info)
o  Pixmaps in labels now stretch properly instead of just
   being tiled
o  Setting the grid lines color is now an option
o  Added ability to alert users you added them
o  Now chat request refusals can be accompanied by a message
o  Update personal basic and detailed info works
o  Button properly goes up after being clicked on
o  Problems with chat requests and hostnames have been resolved
o  You can be invisible at startup again, just edit licq.conf


New in 0.50 alpha 3
o  A lot of fixed in the chat and network stuff, hopefully
   chat works properly now
o  Added run-time setting of maximum users per packet, as
   Mirabilis seems to be changing this number wildly and
   randomly.  For now, try 100 if you have problems
o  Now sex is properly saved in the user file


New in 0.50 alpha 2
o  Made the install actually work, it was so broken I can't
   even believe it
o  Fixed inability for Licq to receive chats
o  Possibly fixed inability to receive extended characters in
   chat
o  Made -i option work
o  Fixed bug in display of age
o  Made minimode work (still has problems with transparent skins)
o  Re-added double click on msg label to get personal function
   window
o  Added support for > 125 users
o  Double clicking on status label now brings up set away message
   dialog box


New in 0.50 alpha 1
o  Way too much to list...here are the main things:
o  Skin support
o  Icon pack support
o  Check away message now retrieves the NA, Occupied or whatever
   message as well.
0  Docking support for WindowMaker/AfterStep/Enlightenment 0.15
o  User Groups are now supported (although editing of them is not 
   gui-fied yet).
o  Invisible list.
o  Visible list.
o  Online notification.
o  Extended user info (age, sex, country...).
o  New messages are added to an open function window instead
   of having to close and reopen it.
o  Invisible is now a toggle, so that you can be invisible
   while in any status.
o  Fixed chat so that windows clients can connect.
o  Fixed chat so that it should (hopefully) display ascii-8 characters.


New in v0.43
o  Offline URL support.  No more unknown system message 0x0004.
o  Chat now supports remote end setting the background and foreground
   colors.
o  Options can almost all be set using a gui dialog.
o  Status is now changed by right clicking on the status bar at the 
   bottom (lets the main window be narrower).
o  Chat requests are properly cancelled when you close an unaccepted
   chat request dialog.
o  Translation fixed for urls.
o  About box added.
o  Added to contact list system message now shows the info on the user
   who added you.


New in v0.42
o  Added option to remove the header from the user list.
o  Added more translation stuff.
o  Fixed chat so that it works again.


New in v0.41
o  Redone send tab to include all options on one tab.
o  Added support for "invalid uin" return on an update user info.
o  Hopefully fixed flaw that made non alphabetic characters dissappear.
o  Added patch for character translations.
o  Auto away and NA after a given amount of time.


New in v0.40 final
o  Now you can select which columns are shown and the order in which they 
   appear and their width using the licq.conf file.
o  Font propagates properly throughout the entire program.
o  Support for other character sets.
o  No more licq.inst file, now when you run licq for the first time it
   will automatically install what it needs.
o  Set the background color for each type of user.  Basically you can set
   the background color of the main window now.
o  Fixed the bug that made licq crash if it was unable to connect to a
   user.
o  Events now appear in the correct order in the view event tab.
o  Fixed the bug that segfaulted Licq on URLs sent without a description.
o  Network window now scrolls properly downwards.


New in v0.40pr4
o  Chat!  Barely works.  Very iffy, but test it out.
o  Grid lines can be turned off using the menu.
o  Multiple function windows can now be opened at once.  Leaks a little 
   though.
o  Auto update all users function added.
o  Added support for PC Speaker for sound.  Just put in [sound], Enabled = 2
   or select it using the sound menu under options.
o  Set the background color for online, away, and offline users.  Edit the
   licq.conf file to select the colors.


New in v0.40pr3

o  Fixed the URL and description being reversed
o  Changed how reading events works.  Redid the Read Msg tab.
o  Added more error checking to the socket code.
o  Platform indepedence in the socket code hopefully.  Removed the problem
   with big-endian / little-endian numbers.
o  Fixed the names appearing halfway up the line in the main window.
o  Added lines to the main window.


New in v0.40pr2

o  Hopefully the double message thing and the various problems with the newest
   version of ICQ for windows are fixed.
o  Added server busy awareness.
o  Ability to go to the next server if the current one isn't working.
o  New messages are saved so that next time you start you will still
   see them (sort of).  Now if Licq crashes while you have new messages
   you won't lose them.
o  Started distributing Jeff's status icons as the default ones.  You can
   always use the other ones if you prefer.
o  Segfault which occured on a line larger than 57 characters fixed.
o  Pending events handled properly when you log off.  Basically Licq handles
   timeouts much better.
o  Send Through Server is sticky, so it remembers it's position for each user
   between calls.
o  Unaligned byte reading bug fixed so that Licq will run under Solaris and 
   other OS's...Unfortunately, there are still problems with endianess so
   Licq still requires an i386 processor to work.


New in v0.40pr1

o  Total restructuring of gui.  Uses Qt 1.4 ListView instead of list
   boxes.  Shows more information on each user in the window now.
   Status bar added, showing on/offline status, number of system 
   messages, and number of new messages.
o  Mini mode where Licq takes up much less screen real-estate.
o  Search User function added.  Search by first name, last name
   email address, or alias.
o  Send URL works.


New in v0.34

o  Word wrap works in read messages properly (wraps words instead of
   cutting them off)
o  Authorization has been added.  Now when users ask for authorization
   you see more of their information and the request.  And you can
   authorize users to add you with "Users" "Authorize User" menu
   option.
o  Fixed the vertical bars error in windows boxes.  Now Licq sends
   messages in DOS style (carriage return / newline) instead of UNIX
   style (newline only).
o  Icon added, thanks to Dave and the Gimp.
o  Docking now supported in WindowMaker, BlackBox...
o  Sound support added.  Currently only one sound which plays on
   incoming messages.


New in v0.33

o  Command-line options now work.  Try -d to dump some status debugging
   info and -b to set base directory (defaults to ~/.licq) and -h for
   help.
o  Word wrap works in the send message dialog!   Borrowed some code from
   KEdit and now it works.  Wrote some code to get it to work in other
   dialogs (such as read msg).  It's not perfect, but a patch will be
   released soon to fix it.
o  Licq no longer crashes if you aren't connected.  It runs fine and will
   simply give an error when you try and connect.
o  Major memory leak fixed, should make Licq more stable.
o  Foundation for multiple server support added.  
o  Licq now retries a set number of times before giving up on mirabilis 
   instead of stopping right away.
o  Fixed the annoying "Hide" button on the wrong side problem.  Now 
   everything is more standard and the window won't dissappear when you
   hit "enter".
o  Autoconf configuration thanks to Nic Bellamy.  Now you can just
   type configure to get everything working.
o  Rewrite of javaToLicq, making it much much better.  Thanks again
   to Nic Bellamy.
o  Restructure of directory structure again.  Now licq is installed
   in /usr/local/share/licq, but each user *has* to install it into
   their own ~/.licq directory.  Licq.inst has been rewriten to better
   accomodate this.


New in v0.32

o  Option to dump the network window output to a file to aid in deubugging.  
   Check box on the window itself toggles writting to BASE_DIR/netwin.debug
o  The network window now adds lines at the top instead of at the bottom, 
   making it much easier to keep track of what's going on.  No more jumping 
   all over the place to keep track of the most recent event. 
o  Licq now saves the size of the window and its position when it exits, and 
   restores it when you restart.  The information is stored in 
   conf/geometry.conf
o  Added users are automatically saved to disk.
o  New users (either added manually or automatically) are automatically updated 
   if you are online and their info saved.
o  Double clicking on a user with no new message now brings up the send message 
   tab instead of the read message one.
o  History is now editable and you can save changes to disk.
o  Remove user now works, including removing the config and history files.
o  Selecting a function for a user when the function window is already open now 
   updates the function window instead of doing nothing.
o  javaToLicq and micqToLicq scripts have been updated to actually work.
o  Major reimplementation of the directory code.  Now Licq installs to 
   /usr/local/licq (you can change this, but I don't recommend it) and will 
   default read the config data from here.  But you can specify a different 
   BASE_DIR on the command line to give each user a seperate configuration.
   For example, running "licq" will start up licq using /usr/local/licq as the 
   BASE_DIR and running "licq ~/.licq" will start licq using ~/.licq as the 
   BASE_DIR.  I recommend putting the later as an alias and using it.
o  New users are now marked in a different color until you open the function window
   for them.  This allows you to tell how is new and who isn't.  
o  Licq can now detect if a packet has come from another Licq client and will
   indicate this and the version number on the network window for each incoming tcp 
   packet.
