Merge Irssi 0.8.16-rc1
authorPekka Riikonen <priikone@silcnet.org>
Sat, 10 May 2014 10:48:33 +0000 (13:48 +0300)
committerPekka Riikonen <priikone@silcnet.org>
Sat, 10 May 2014 10:48:33 +0000 (13:48 +0300)
240 files changed:
.gitignore
README.CVS [deleted file]
apps/irssi/.cvsignore [deleted file]
apps/irssi/AUTHORS
apps/irssi/COPYING [new file with mode: 0644]
apps/irssi/ChangeLog
apps/irssi/Makefile.am
apps/irssi/NEWS
apps/irssi/README
apps/irssi/TODO
apps/irssi/acconfig.h
apps/irssi/autogen.sh
apps/irssi/build-aux/depcomp [new file with mode: 0755]
apps/irssi/build-aux/install-sh [new file with mode: 0755]
apps/irssi/build-aux/missing [new file with mode: 0755]
apps/irssi/configure.in
apps/irssi/curses.m4
apps/irssi/default.theme
apps/irssi/docs/Makefile.am
apps/irssi/docs/design.txt
apps/irssi/docs/faq.html
apps/irssi/docs/help/in/Makefile.am.gen
apps/irssi/docs/help/in/admin.in
apps/irssi/docs/help/in/bind.in
apps/irssi/docs/help/in/cat.in
apps/irssi/docs/help/in/cd.in
apps/irssi/docs/help/in/clear.in
apps/irssi/docs/help/in/cycle.in
apps/irssi/docs/help/in/dehilight.in
apps/irssi/docs/help/in/exec.in
apps/irssi/docs/help/in/hilight.in
apps/irssi/docs/help/in/ignore.in
apps/irssi/docs/help/in/invitelist.in
apps/irssi/docs/help/in/lastlog.in
apps/irssi/docs/help/in/layout.in
apps/irssi/docs/help/in/part.in
apps/irssi/docs/help/in/query.in
apps/irssi/docs/help/in/reload.in
apps/irssi/docs/help/in/save.in
apps/irssi/docs/help/in/script.in
apps/irssi/docs/help/in/scrollback.in
apps/irssi/docs/help/in/statusbar.in
apps/irssi/docs/help/in/unignore.in
apps/irssi/docs/help/in/unload.in
apps/irssi/docs/help/in/window.in
apps/irssi/docs/manual.txt
apps/irssi/docs/perl.txt
apps/irssi/docs/signals.txt
apps/irssi/docs/startup-HOWTO.html
apps/irssi/glib-2.0.m4 [new file with mode: 0644]
apps/irssi/glib.m4 [new file with mode: 0644]
apps/irssi/install-sh [new file with mode: 0755]
apps/irssi/irssi-config.in
apps/irssi/libtool.m4 [new file with mode: 0644]
apps/irssi/ltoptions.m4 [new file with mode: 0644]
apps/irssi/ltsugar.m4 [new file with mode: 0644]
apps/irssi/ltversion.m4 [new file with mode: 0644]
apps/irssi/lt~obsolete.m4 [new file with mode: 0644]
apps/irssi/silc.conf
apps/irssi/src/Makefile.am
apps/irssi/src/common.h
apps/irssi/src/core/args.c
apps/irssi/src/core/args.h
apps/irssi/src/core/channels-setup.c
apps/irssi/src/core/channels.c
apps/irssi/src/core/chat-commands.c
apps/irssi/src/core/chat-protocols.c
apps/irssi/src/core/chatnets.c
apps/irssi/src/core/commands.c
apps/irssi/src/core/core.c
apps/irssi/src/core/core.h
apps/irssi/src/core/expandos.c
apps/irssi/src/core/ignore.c
apps/irssi/src/core/levels.c
apps/irssi/src/core/levels.h
apps/irssi/src/core/line-split.c
apps/irssi/src/core/log-away.c
apps/irssi/src/core/log.c
apps/irssi/src/core/masks.c
apps/irssi/src/core/misc.c
apps/irssi/src/core/misc.h
apps/irssi/src/core/modules-load.c
apps/irssi/src/core/modules.c
apps/irssi/src/core/net-disconnect.c
apps/irssi/src/core/net-disconnect.h
apps/irssi/src/core/net-nonblock.c
apps/irssi/src/core/net-sendbuffer.c
apps/irssi/src/core/net-sendbuffer.h
apps/irssi/src/core/network-openssl.c
apps/irssi/src/core/network.c
apps/irssi/src/core/network.h
apps/irssi/src/core/nick-rec.h
apps/irssi/src/core/nicklist.c
apps/irssi/src/core/nicklist.h
apps/irssi/src/core/nickmatch-cache.c
apps/irssi/src/core/pidwait.c
apps/irssi/src/core/queries.c
apps/irssi/src/core/rawlog.c
apps/irssi/src/core/recode.c
apps/irssi/src/core/recode.h
apps/irssi/src/core/server-connect-rec.h
apps/irssi/src/core/server-rec.h
apps/irssi/src/core/servers-reconnect.c
apps/irssi/src/core/servers-setup.c
apps/irssi/src/core/servers-setup.h
apps/irssi/src/core/servers.c
apps/irssi/src/core/session.c
apps/irssi/src/core/session.h
apps/irssi/src/core/settings.c
apps/irssi/src/core/settings.h
apps/irssi/src/core/signals.c
apps/irssi/src/core/special-vars.c
apps/irssi/src/core/write-buffer.c
apps/irssi/src/fe-common/core/Makefile.am
apps/irssi/src/fe-common/core/autorun.c [deleted file]
apps/irssi/src/fe-common/core/autorun.h [deleted file]
apps/irssi/src/fe-common/core/chat-completion.c
apps/irssi/src/fe-common/core/command-history.c
apps/irssi/src/fe-common/core/command-history.h
apps/irssi/src/fe-common/core/completion.c
apps/irssi/src/fe-common/core/completion.h
apps/irssi/src/fe-common/core/fe-channels.c
apps/irssi/src/fe-common/core/fe-common-core.c
apps/irssi/src/fe-common/core/fe-common-core.h
apps/irssi/src/fe-common/core/fe-core-commands.c
apps/irssi/src/fe-common/core/fe-exec.c
apps/irssi/src/fe-common/core/fe-expandos.c
apps/irssi/src/fe-common/core/fe-help.c
apps/irssi/src/fe-common/core/fe-ignore-messages.c
apps/irssi/src/fe-common/core/fe-ignore.c
apps/irssi/src/fe-common/core/fe-log.c
apps/irssi/src/fe-common/core/fe-messages.c
apps/irssi/src/fe-common/core/fe-modules.c
apps/irssi/src/fe-common/core/fe-queries.c
apps/irssi/src/fe-common/core/fe-recode.c
apps/irssi/src/fe-common/core/fe-server.c
apps/irssi/src/fe-common/core/fe-settings.c
apps/irssi/src/fe-common/core/fe-windows.c
apps/irssi/src/fe-common/core/formats.c
apps/irssi/src/fe-common/core/formats.h
apps/irssi/src/fe-common/core/hilight-text.c
apps/irssi/src/fe-common/core/keyboard.c
apps/irssi/src/fe-common/core/module-formats.c
apps/irssi/src/fe-common/core/module-formats.h
apps/irssi/src/fe-common/core/printtext.c
apps/irssi/src/fe-common/core/printtext.h
apps/irssi/src/fe-common/core/themes.c
apps/irssi/src/fe-common/core/translation.c [deleted file]
apps/irssi/src/fe-common/core/translation.h [deleted file]
apps/irssi/src/fe-common/core/utf8.c
apps/irssi/src/fe-common/core/utf8.h
apps/irssi/src/fe-common/core/wcwidth.c [new file with mode: 0644]
apps/irssi/src/fe-common/core/window-activity.c
apps/irssi/src/fe-common/core/window-commands.c
apps/irssi/src/fe-common/core/window-items.c
apps/irssi/src/fe-common/core/windows-layout.c
apps/irssi/src/fe-text/Makefile.am
apps/irssi/src/fe-text/cuix-api.c [deleted file]
apps/irssi/src/fe-text/cuix-api.h [deleted file]
apps/irssi/src/fe-text/cuix-lib.c [deleted file]
apps/irssi/src/fe-text/cuix-lib.h [deleted file]
apps/irssi/src/fe-text/cuix.c [deleted file]
apps/irssi/src/fe-text/cuix.h [deleted file]
apps/irssi/src/fe-text/gui-entry.c
apps/irssi/src/fe-text/gui-entry.h
apps/irssi/src/fe-text/gui-expandos.c
apps/irssi/src/fe-text/gui-printtext.c
apps/irssi/src/fe-text/gui-readline.c
apps/irssi/src/fe-text/gui-windows.c
apps/irssi/src/fe-text/lastlog.c
apps/irssi/src/fe-text/mainwindow-activity.c
apps/irssi/src/fe-text/mainwindows-layout.c
apps/irssi/src/fe-text/mainwindows.c
apps/irssi/src/fe-text/module-formats.c
apps/irssi/src/fe-text/silc.c
apps/irssi/src/fe-text/statusbar-config.c
apps/irssi/src/fe-text/statusbar-item.h [new file with mode: 0644]
apps/irssi/src/fe-text/statusbar-items.c
apps/irssi/src/fe-text/statusbar.c
apps/irssi/src/fe-text/statusbar.h
apps/irssi/src/fe-text/term-curses.c
apps/irssi/src/fe-text/term-dummy.c
apps/irssi/src/fe-text/term-terminfo.c
apps/irssi/src/fe-text/term.c
apps/irssi/src/fe-text/term.h
apps/irssi/src/fe-text/terminfo-core.c
apps/irssi/src/fe-text/terminfo-core.h
apps/irssi/src/fe-text/textbuffer-commands.c
apps/irssi/src/fe-text/textbuffer-reformat.c [deleted file]
apps/irssi/src/fe-text/textbuffer-reformat.h [deleted file]
apps/irssi/src/fe-text/textbuffer-view.c
apps/irssi/src/fe-text/textbuffer-view.h
apps/irssi/src/fe-text/textbuffer.c
apps/irssi/src/fe-text/textbuffer.h
apps/irssi/src/lib-config/Makefile.am
apps/irssi/src/lib-config/get.c
apps/irssi/src/lib-config/iconfig.h
apps/irssi/src/lib-config/parse.c
apps/irssi/src/lib-config/set.c
apps/irssi/src/lib-config/write.c
apps/irssi/src/lib-popt/.cvsignore [deleted file]
apps/irssi/src/lib-popt/Makefile.am [deleted file]
apps/irssi/src/lib-popt/findme.c [deleted file]
apps/irssi/src/lib-popt/findme.h [deleted file]
apps/irssi/src/lib-popt/popt.c [deleted file]
apps/irssi/src/lib-popt/popt.h [deleted file]
apps/irssi/src/lib-popt/poptconfig.c [deleted file]
apps/irssi/src/lib-popt/popthelp.c [deleted file]
apps/irssi/src/lib-popt/poptint.h [deleted file]
apps/irssi/src/lib-popt/poptparse.c [deleted file]
apps/irssi/src/perl/Makefile.am
apps/irssi/src/perl/common/Core.xs
apps/irssi/src/perl/common/Expando.xs
apps/irssi/src/perl/common/Settings.xs
apps/irssi/src/perl/get-signals.pl
apps/irssi/src/perl/irssi-core.pl
apps/irssi/src/perl/irssi-core.pl.h
apps/irssi/src/perl/module-formats.c
apps/irssi/src/perl/module.h
apps/irssi/src/perl/perl-common.c
apps/irssi/src/perl/perl-common.h
apps/irssi/src/perl/perl-core.c
apps/irssi/src/perl/perl-fe.c
apps/irssi/src/perl/perl-signals.c
apps/irssi/src/perl/perl-signals.h
apps/irssi/src/perl/perl-sources.c
apps/irssi/src/perl/textui/TextBuffer.xs
apps/irssi/src/perl/textui/TextBufferView.xs
apps/irssi/src/perl/textui/TextUI.xs
apps/irssi/src/perl/textui/module.h
apps/irssi/src/perl/ui/Themes.xs
apps/irssi/src/perl/ui/Window.xs
apps/irssi/src/silc/core/client_ops.c
apps/irssi/src/silc/core/silc-core.c
apps/irssi/src/silc/core/silc-core.h
apps/irssi/src/silc/core/silc-expandos.c
apps/irssi/src/silc/core/silc-servers.c
apps/irssi/syntax.pl
distdir/pre-run
doc/Makefile.ad

index 681191bc11e3e647aa8c45f4839b3080445bbbbb..c6a535aa2d5c33111542b9c10206884429cbd45e 100644 (file)
@@ -11,8 +11,6 @@ autom4te.cache
 autom4te-*.cache
 config.cache
 config.guess
-config.h
-config.h.in
 config.log
 config.status
 config.sub
diff --git a/README.CVS b/README.CVS
deleted file mode 100644 (file)
index c50be0b..0000000
+++ /dev/null
@@ -1,233 +0,0 @@
-Anonymous CVS Access
-====================
-
-Anonymous CVS access is now available to SILC CVS repository. The
-repository includes everything related to SILC project; source codes,
-documentation and web pages.
-
-Also note that this is the closest to real time development you can get
-thus you cannot expect that the source tree would work or even compile.
-While it is our intention that the trunk would always at least compile
-there might be situations when it will not.
-
-
-Howto Checkout The Source Tree
-==============================
-
-The repository can be checked out by using anonymous pserver with CVS.
-There are no password restrictions in the SILC anonymous CVS repository.
-
-For those who are using sh/ksh/bash the check out is done as follows:
-
-export CVSROOT=:pserver:cvs@cvs.silcnet.org:/cvs/silc
-cvs login
-cvs co silc
-
-For those who are using csh/tcsh the check out is done as follows:
-
-setenv CVSROOT :pserver:cvs@cvs.silcnet.org:/cvs/silc
-cvs login
-cvs co silc
-
-If you don't want to set $CVSROOT environment variable you can set the
-path to the cvs as command line options:
-
-cvs -d:pserver:cvs@cvs.silcnet.org:/cvs/silc login
-cvs -d:pserver:cvs@cvs.silcnet.org:/cvs/silc co silc
-
-What ever method you decide to use, after you have done cvs login you will
-be prompted for password:
-
-       CVS password: silc
-
-Type the password "silc" and press Enter.
-
-The actual SILC source tree is checked out using the cvs co silc command,
-described above. This command will fetch the source tree and save it into
-directory named silc. SILC CVS repository currently does not have any
-branches thus this will check out the trunk. The size of the trunk is
-currently about 8 Mb but will grow in the future.
-
-
-What SILC Source Tree Includes
-==============================
-
-SILC Source tree includes a lot more stuff that appears in public
-distribution.  The source tree includes, for example, internal scripts,
-configuration files, SILC webpages etc.  These never appear on a public
-distribution.
-
-Following directories currently exist in SILC source tree.
-
-  apps/
-
-       All applications.
-
-  doc/
-
-        Includes all the SILC documentation.  Some of the documentation
-        are generated when distribution is generated.  The automatically
-        generated files must never be commited to CVS.
-
-  includes/
-
-        Includes SILC include files.
-
-  apps/irssi/
-
-       Includes the Irssi SILC Client.
-
-  lib/
-
-        Includes SILC libraries.  There maybe libraries on the CVS that
-        does not appear on public distribution.
-
-  lib/contrib/
-
-        Contrib directory for routines that some of the platforms might
-        not have.  In that case these routines are provided by the SILC.
-
-  lib/silcclient/
-
-        The SILC Client library. Implementation of the SILC Client without
-        the user interface.  The library provides an interface for user
-        interface designers.
-
-  lib/silccore/
-
-        The SILC Protocol Core library.  Implementation of all the core
-        components of the SILC Protocol.  This is used by all the SILC
-        applications.
-
-  lib/silccrypt/
-
-        The SILC Crypto library. Provides all cryptographic algorithms
-        used in the SILC.  Provides also the Cryptographically strong
-        random number generator.
-
-  lib/silcmath/
-
-        The SILC Math library. Provides the Math and MP routines for
-        SILC applications.  The MP library is actually the GMP.
-
-  lib/silsim/
-
-        The SILC Modules library.  Provides the dynamically loadable
-        modules.
-
-  lib/silcske/
-
-        The SILC Key Exchange (SKE) library.  Implementation of the
-        SKE protocol.  This is used by all SILC applications.
-
-  lib/silcutil/
-
-        The SILC Utility library.  Provides various utility functions
-        for the applications.
-
-  lib/silcutil/unix/
-
-        The SILC Utility library.  Provides various Unix specific utility
-        functions for the applications.
-
-  lib/silcutil/win32/
-
-        The SILC Utility library.  Provides various WIN32 specific utility
-        functions for the applications.
-
-  public_html/
-
-        Includes the official SILC web pages and everything that relates
-        to them.  This directory never appears on public distribution.
-
-  apps/silc/
-
-       Includes an example implementation of ncurses based SILC client.
-       It won't compile with current Toolkit since it is not being 
-       updated.  It is still good example for Toolkit programmer to 
-       figure out how to use SILC Toolkit.
-
-  apps/silcer/
-
-       Includes an example implementation of GUI (Gnome) base SILC
-       client.  Please read silcer/README for more information.
-
-  apps/silcd/
-
-        Includes SILC server.  There can be some extra files that will
-        never appear in public distribution, such as, configuration files.
-
-  win32/
-
-       Includes win32 Toolkit specific files.  It includes MSVC++
-       Workspace files.  The win32/tests includes example code for
-       use of SILC Toolkit and SILC Client Library on Win32 GUI 
-       application.
-
-
-Howto Compile SILC Source Tree
-==============================
-
-To be able to prepare the CVS tree for configuration and compilation
-Autodist must be installed into the system.  You can download the latest
-version of Autodist from: 
-
-       http://silcnet.org/software/download/autodist/
-
-To prepare the CVS source tree for configuration and compilation, give:
-
-       autodist
-       ./configure --enable-debug
-       make
-
-The autodist must be run every time you make some changes to configuration 
-scripts.
-
-As a developer you should read the ./configure script's help by
-giving ./configure --help and study all of its different options.  Also,
-you should configure the script with --enable-debug option as it
-compiles SILC with -g (debugging) option and it enables the 
-SILC_LOG_DEBUG* scripts.  Warning is due here:  The debugging produced
-by both cilent and server is very heavy, thus it is common to test
-the programs as follows:
-
-       ./silc -d "*" -f configfile 2>log
-       ./silcd -d "*" -f configfile 2>log
-
-The -d option enables the debug printing.  The argument for the -d option
-is a string that is used to match the output debug.  The example "*" will
-match for everything, and all debugs will be printed.  If you want to
-limit the debugs you want to printout you can give for example a string
-like "*server*,*rng*" to match all functions, and filenames that has
-"server" or "rng" string in them.  Others will not be printed out.  You   
-can freely define regural expressions as debug string.
-
-
-Makefiles and configuration files
-=================================
-
-Developers should never directly write a Makefile.  All Makefiles are 
-always automatically generated by autodist and later by ./configure 
-scripts.  Instead, developers must write Makefile.ad files or Makefile.am 
-files.  If the Makefile needs to include any distdefs (SILC_DIST_XXX), 
-then Makefile.ad (.ad stands for autodist) must be written.  If the 
-Makefile is generic (common to all distributions) then Makefile.am may be 
-written.  Note that distdefs MUST NOT be used in Makefile.am files, as the 
-autodist will modify them.  See the source tree for examples.  If you 
-change Makefile.ad files, the autodist must be rerun.
-
-The autodist also creates the configure.ac script from which the autoconf 
-then creates the ./configure script.  All changes to configure must 
-always be done into the configure.ad scripts.  All changes made to 
-configure.ac will be lost.  The autodist distdefs may also be used in 
-configure.ad files.  It is also possible to write more than one 
-configure.ad in the source tree.  All configure.ad fragments will be 
-collected from the source tree by autodist and combined into one 
-configure.ac scripts.  After making changes to configure.ad files the 
-autodist must be rerun.
-
-The distdefs are defined in the corresponding distributions.  All 
-distributions live in distdir/ directory.  The distdefs can be used in any 
-file in the source tree, but mainly they are used in Makefile.ad, 
-configure.ad and source and headers files.  See autodist documentation for 
-more information how to use distdefs.
diff --git a/apps/irssi/.cvsignore b/apps/irssi/.cvsignore
deleted file mode 100644 (file)
index 6b0f2e0..0000000
+++ /dev/null
@@ -1,38 +0,0 @@
-Makefile
-Makefile.in
-aclocal.m4
-config.cache
-config.guess
-config.h
-config.log
-config.status
-config.sub
-configure
-configure.scan
-libtool
-libtool-shared
-ltconfig
-ltmain.sh
-stamp-h
-stamp-h.in
-stamp.h
-stamp-h1
-version.h
-config.h.in
-.exrc
-install-sh
-missing
-mkinstalldirs
-INSTALL
-intl
-ABOUT-NLS
-COPYING
-irssi.spec
-default-config.h
-default-theme.h
-irssi-version.h
-irssi-config
-build-stamp
-configure-stamp
-glib.m4
-glib-2.0.m4
index 62388307d8bbcf8341a0ddc4af0c24b3df032f3c..50f24ac41335d32c90e522e1d54bf16437612229 100644 (file)
@@ -7,7 +7,13 @@ Irssi staff (current maintainers) <staff@irssi.org>:
   Valentin Batz (senneth, vb)
   Wouter Coekaerts (coekie)
   Jochen Eisinger (c0ffee)
-  Geert Hauwaerts
+  Geert Hauwaerts (Geert)
+  Jilles Tjoelker (jilles)
+  Alexander Færøy (ahf)
+  Jase Thew (bazerka)
+
+Former developers:
+
   Emanuele Giaquinta (exg)
 
 Large feature patches by:
@@ -37,7 +43,7 @@ Other patches (grep for "patch" in ChangeLog) by:
   Marcin Kowalczyk (Qrczak)
   Petr Baudis
   Bjoern Krombholz (fuchs)
-  aldem-irssi@aldem.net,
+  aldem-irssi@aldem.net
   BC-bd
   Juerd
   Han
@@ -56,12 +62,19 @@ Other patches (grep for "patch" in ChangeLog) by:
   vanilla@freebsd.org
   Tinuk
   Mark Glines
-  Kjetil Ã˜degaard
+  Kjetil Ã˜degaard
   Chris Moore
   ComradeP
-  Jilles Tjoelker
   Lauri Nurmi
   Mikko Rauhala
   loafier
   Nicolas Collignon
   Daniel Koning
+  Yi-Hsuan Hsin
+  Jon Mayo
+  Johan Kiviniemi
+  JasonX
+  Lukas Mai
+  Ismael Luceno
+  Thomas Karpiniec
+  Svante Kvarnström
diff --git a/apps/irssi/COPYING b/apps/irssi/COPYING
new file mode 100644 (file)
index 0000000..0b3d8b0
--- /dev/null
@@ -0,0 +1,344 @@
+Specific permission is granted for the GPLed code in this distribution to
+be linked to OpenSSL without invoking GPL clause 2(b).
+
+------------------------------------------------------------------------------
+
+                   GNU GENERAL PUBLIC LICENSE
+                      Version 2, June 1991
+
+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+                           Preamble
+
+  The licenses for most software are designed to take away your
+freedom to share and change it.  By contrast, the GNU General Public
+License is intended to guarantee your freedom to share and change free
+software--to make sure the software is free for all its users.  This
+General Public License applies to most of the Free Software
+Foundation's software and to any other program whose authors commit to
+using it.  (Some other Free Software Foundation software is covered by
+the GNU Lesser General Public License instead.)  You can apply it to
+your programs, too.
+
+  When we speak of free software, we are referring to freedom, not
+price.  Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+this service if you wish), that you receive source code or can get it
+if you want it, that you can change the software or use pieces of it
+in new free programs; and that you know you can do these things.
+
+  To protect your rights, we need to make restrictions that forbid
+anyone to deny you these rights or to ask you to surrender the rights.
+These restrictions translate to certain responsibilities for you if you
+distribute copies of the software, or if you modify it.
+
+  For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must give the recipients all the rights that
+you have.  You must make sure that they, too, receive or can get the
+source code.  And you must show them these terms so they know their
+rights.
+
+  We protect your rights with two steps: (1) copyright the software, and
+(2) offer you this license which gives you legal permission to copy,
+distribute and/or modify the software.
+
+  Also, for each author's protection and ours, we want to make certain
+that everyone understands that there is no warranty for this free
+software.  If the software is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original, so
+that any problems introduced by others will not reflect on the original
+authors' reputations.
+
+  Finally, any free program is threatened constantly by software
+patents.  We wish to avoid the danger that redistributors of a free
+program will individually obtain patent licenses, in effect making the
+program proprietary.  To prevent this, we have made it clear that any
+patent must be licensed for everyone's free use or not licensed at all.
+
+  The precise terms and conditions for copying, distribution and
+modification follow.
+
+                   GNU GENERAL PUBLIC LICENSE
+   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+  0. This License applies to any program or other work which contains
+a notice placed by the copyright holder saying it may be distributed
+under the terms of this General Public License.  The "Program", below,
+refers to any such program or work, and a "work based on the Program"
+means either the Program or any derivative work under copyright law:
+that is to say, a work containing the Program or a portion of it,
+either verbatim or with modifications and/or translated into another
+language.  (Hereinafter, translation is included without limitation in
+the term "modification".)  Each licensee is addressed as "you".
+
+Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope.  The act of
+running the Program is not restricted, and the output from the Program
+is covered only if its contents constitute a work based on the
+Program (independent of having been made by running the Program).
+Whether that is true depends on what the Program does.
+
+  1. You may copy and distribute verbatim copies of the Program's
+source code as you receive it, in any medium, provided that you
+conspicuously and appropriately publish on each copy an appropriate
+copyright notice and disclaimer of warranty; keep intact all the
+notices that refer to this License and to the absence of any warranty;
+and give any other recipients of the Program a copy of this License
+along with the Program.
+
+You may charge a fee for the physical act of transferring a copy, and
+you may at your option offer warranty protection in exchange for a fee.
+
+  2. You may modify your copy or copies of the Program or any portion
+of it, thus forming a work based on the Program, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+    a) You must cause the modified files to carry prominent notices
+    stating that you changed the files and the date of any change.
+
+    b) You must cause any work that you distribute or publish, that in
+    whole or in part contains or is derived from the Program or any
+    part thereof, to be licensed as a whole at no charge to all third
+    parties under the terms of this License.
+
+    c) If the modified program normally reads commands interactively
+    when run, you must cause it, when started running for such
+    interactive use in the most ordinary way, to print or display an
+    announcement including an appropriate copyright notice and a
+    notice that there is no warranty (or else, saying that you provide
+    a warranty) and that users may redistribute the program under
+    these conditions, and telling the user how to view a copy of this
+    License.  (Exception: if the Program itself is interactive but
+    does not normally print such an announcement, your work based on
+    the Program is not required to print an announcement.)
+
+These requirements apply to the modified work as a whole.  If
+identifiable sections of that work are not derived from the Program,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works.  But when you
+distribute the same sections as part of a whole which is a work based
+on the Program, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Program.
+
+In addition, mere aggregation of another work not based on the Program
+with the Program (or with a work based on the Program) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+  3. You may copy and distribute the Program (or a work based on it,
+under Section 2) in object code or executable form under the terms of
+Sections 1 and 2 above provided that you also do one of the following:
+
+    a) Accompany it with the complete corresponding machine-readable
+    source code, which must be distributed under the terms of Sections
+    1 and 2 above on a medium customarily used for software interchange; or,
+
+    b) Accompany it with a written offer, valid for at least three
+    years, to give any third party, for a charge no more than your
+    cost of physically performing source distribution, a complete
+    machine-readable copy of the corresponding source code, to be
+    distributed under the terms of Sections 1 and 2 above on a medium
+    customarily used for software interchange; or,
+
+    c) Accompany it with the information you received as to the offer
+    to distribute corresponding source code.  (This alternative is
+    allowed only for noncommercial distribution and only if you
+    received the program in object code or executable form with such
+    an offer, in accord with Subsection b above.)
+
+The source code for a work means the preferred form of the work for
+making modifications to it.  For an executable work, complete source
+code means all the source code for all modules it contains, plus any
+associated interface definition files, plus the scripts used to
+control compilation and installation of the executable.  However, as a
+special exception, the source code distributed need not include
+anything that is normally distributed (in either source or binary
+form) with the major components (compiler, kernel, and so on) of the
+operating system on which the executable runs, unless that component
+itself accompanies the executable.
+
+If distribution of executable or object code is made by offering
+access to copy from a designated place, then offering equivalent
+access to copy the source code from the same place counts as
+distribution of the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+  4. You may not copy, modify, sublicense, or distribute the Program
+except as expressly provided under this License.  Any attempt
+otherwise to copy, modify, sublicense or distribute the Program is
+void, and will automatically terminate your rights under this License.
+However, parties who have received copies, or rights, from you under
+this License will not have their licenses terminated so long as such
+parties remain in full compliance.
+
+  5. You are not required to accept this License, since you have not
+signed it.  However, nothing else grants you permission to modify or
+distribute the Program or its derivative works.  These actions are
+prohibited by law if you do not accept this License.  Therefore, by
+modifying or distributing the Program (or any work based on the
+Program), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Program or works based on it.
+
+  6. Each time you redistribute the Program (or any work based on the
+Program), the recipient automatically receives a license from the
+original licensor to copy, distribute or modify the Program subject to
+these terms and conditions.  You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties to
+this License.
+
+  7. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License.  If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Program at all.  For example, if a patent
+license would not permit royalty-free redistribution of the Program by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Program.
+
+If any portion of this section is held invalid or unenforceable under
+any particular circumstance, the balance of the section is intended to
+apply and the section as a whole is intended to apply in other
+circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system, which is
+implemented by public license practices.  Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+  8. If the distribution and/or use of the Program is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Program under this License
+may add an explicit geographical distribution limitation excluding
+those countries, so that distribution is permitted only in or among
+countries not thus excluded.  In such case, this License incorporates
+the limitation as if written in the body of this License.
+
+  9. The Free Software Foundation may publish revised and/or new versions
+of the General Public License from time to time.  Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+Each version is given a distinguishing version number.  If the Program
+specifies a version number of this License which applies to it and "any
+later version", you have the option of following the terms and conditions
+either of that version or of any later version published by the Free
+Software Foundation.  If the Program does not specify a version number of
+this License, you may choose any version ever published by the Free Software
+Foundation.
+
+  10. If you wish to incorporate parts of the Program into other free
+programs whose distribution conditions are different, write to the author
+to ask for permission.  For software which is copyrighted by the Free
+Software Foundation, write to the Free Software Foundation; we sometimes
+make exceptions for this.  Our decision will be guided by the two goals
+of preserving the free status of all derivatives of our free software and
+of promoting the sharing and reuse of software generally.
+
+                           NO WARRANTY
+
+  11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
+FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN
+OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
+PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
+OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS
+TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE
+PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
+REPAIR OR CORRECTION.
+
+  12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
+REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
+INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
+OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
+TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
+YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
+PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGES.
+
+                    END OF TERMS AND CONDITIONS
+
+           How to Apply These Terms to Your New Programs
+
+  If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+  To do so, attach the following notices to the program.  It is safest
+to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+    <one line to give the program's name and a brief idea of what it does.>
+    Copyright (C) <year>  <name of author>
+
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License along
+    with this program; if not, write to the Free Software Foundation, Inc.,
+    51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+Also add information on how to contact you by electronic and paper mail.
+
+If the program is interactive, make it output a short notice like this
+when it starts in an interactive mode:
+
+    Gnomovision version 69, Copyright (C) year name of author
+    Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+    This is free software, and you are welcome to redistribute it
+    under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License.  Of course, the commands you use may
+be called something other than `show w' and `show c'; they could even be
+mouse-clicks or menu items--whatever suits your program.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the program, if
+necessary.  Here is a sample; alter the names:
+
+  Yoyodyne, Inc., hereby disclaims all copyright interest in the program
+  `Gnomovision' (which makes passes at compilers) written by James Hacker.
+
+  <signature of Ty Coon>, 1 April 1989
+  Ty Coon, President of Vice
+
+This General Public License does not permit incorporating your program into
+proprietary programs.  If your program is a subroutine library, you may
+consider it more useful to permit linking proprietary applications with the
+library.  If this is what you want to do, use the GNU Lesser General
+Public License instead of this License.
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..5162801b4519d8b92eb52c6a98320781a0ad9efd 100644 (file)
+------------------------------------------------------------------------
+r5227 | ahf | 2013-09-15 16:49:11 +0000 (Sun, 15 Sep 2013) | 2 lines
+Changed paths:
+   M /irssi/trunk/NEWS
+
+Fix wording before release
+
+------------------------------------------------------------------------
+r5226 | ahf | 2013-09-14 12:54:34 +0000 (Sat, 14 Sep 2013) | 1 line
+Changed paths:
+   M /irssi/trunk/configure.in
+
+Link DANE configure check with libpthread
+------------------------------------------------------------------------
+r5225 | ahf | 2013-09-14 12:54:25 +0000 (Sat, 14 Sep 2013) | 1 line
+Changed paths:
+   M /irssi/trunk/NEWS
+   M /irssi/trunk/configure.in
+
+Version is now 0.8.16-rc1
+------------------------------------------------------------------------
+r5224 | ahf | 2013-06-25 21:35:19 +0000 (Tue, 25 Jun 2013) | 1 line
+Changed paths:
+   M /irssi/trunk/NEWS
+
+Prepare for 0.8.16rc1
+------------------------------------------------------------------------
+r5223 | ahf | 2013-06-25 21:35:13 +0000 (Tue, 25 Jun 2013) | 1 line
+Changed paths:
+   M /irssi/trunk/src/core/network-openssl.c
+
+Clean-up after ourselves
+------------------------------------------------------------------------
+r5222 | ahf | 2013-06-23 23:50:43 +0000 (Sun, 23 Jun 2013) | 6 lines
+Changed paths:
+   M /irssi/trunk/configure.in
+
+Check for OpenSSL support for --enable-dane
+
+It doesn't make any sense to build Irssi without SSL support, but with
+DANE support. This patch adds an extra check in the configure script
+that will make the script bail out if someone tries to build Irssi with
+DANE support, but without OpenSSL support.
+------------------------------------------------------------------------
+r5221 | ahf | 2013-06-23 23:50:38 +0000 (Sun, 23 Jun 2013) | 1 line
+Changed paths:
+   M /irssi/trunk/configure.in
+
+Fix build for FreeBSD
+------------------------------------------------------------------------
+r5220 | ahf | 2013-06-23 23:50:32 +0000 (Sun, 23 Jun 2013) | 7 lines
+Changed paths:
+   M /irssi/trunk/docs/signals.txt
+   M /irssi/trunk/src/core/network-openssl.c
+
+Add TLSA related signals
+
+This patch adds 3 new signals:
+
+  * tlsa avalable: emitted if TLSA is available for a given domain.
+  * tlsa verification success: emitted if the TLSA check was successful.
+  * tlsa verification failed: emitted if the TLSA check was unsuccessful.
+------------------------------------------------------------------------
+r5219 | ahf | 2013-06-23 23:50:26 +0000 (Sun, 23 Jun 2013) | 5 lines
+Changed paths:
+   M /irssi/trunk/src/core/network-openssl.c
+   M /irssi/trunk/src/core/network.h
+   M /irssi/trunk/src/core/servers.c
+
+Pass SERVER_REC directly to net_connect_ip_ssl
+
+This patch refactors how we are passing connection information for SSL
+connections. This will allow us to emit signals with a SERVER_REC as
+parameter during SSL handshake.
+------------------------------------------------------------------------
+r5218 | ahf | 2013-06-23 23:50:14 +0000 (Sun, 23 Jun 2013) | 7 lines
+Changed paths:
+   M /irssi/trunk/configure.in
+   M /irssi/trunk/src/core/network-openssl.c
+
+Implement experimental DNSSEC DANE support
+
+This patch adds experimental support for the DNSSEC DANE verification
+protocol using the libval library from the DNSSEC-Tools package.
+
+Thanks to Thomas Steen Ramussen for creating a test setup and suggesting
+the idea of experimenting with DANE support in Irssi :-)
+------------------------------------------------------------------------
+r5217 | exg | 2012-06-24 14:33:54 +0000 (Sun, 24 Jun 2012) | 5 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/mainwindows.c
+
+Fix crash in mainwindows_resize_smaller when the 'mainwindows' list is empty.
+
+The crash can happen if the terminal height decreases before the first window
+is created. Based on a patch by Jaroslav Å karvada (red hat bug #796457).
+
+------------------------------------------------------------------------
+r5216 | exg | 2012-06-24 09:50:08 +0000 (Sun, 24 Jun 2012) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/core/network-openssl.c
+
+Do not set SSL_OP_ALL, it is not needed to disable SSLv2 and it can prevent
+connections to TLSv1.1 servers from working. Patch by pi-rho.
+
+------------------------------------------------------------------------
+r5215 | exg | 2012-06-24 09:35:55 +0000 (Sun, 24 Jun 2012) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/module-formats.c
+
+Fix grammar of no_completions format, patch by Matt Lewandowsky.
+
+------------------------------------------------------------------------
+r5214 | exg | 2012-06-24 09:33:28 +0000 (Sun, 24 Jun 2012) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/perl/ui/Themes.xs
+
+Properly validate the argument of Irssi::theme_register as an array reference,
+patch by Olof Johansson.
+
+------------------------------------------------------------------------
+r5211 | bazerka | 2012-01-10 21:36:07 +0000 (Tue, 10 Jan 2012) | 3 lines
+Changed paths:
+   M /irssi/trunk/docs/help/in/log.in
+
+Update help for /log - change default for log_create_mode to 0600
+(Bug #830).
+
+------------------------------------------------------------------------
+r5210 | ahf | 2011-11-21 21:28:28 +0000 (Mon, 21 Nov 2011) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/irc-nicklist.c
+   M /irssi/trunk/src/irc/core/irc-nicklist.h
+
+Fix warning.
+
+------------------------------------------------------------------------
+r5209 | ahf | 2011-11-21 21:27:58 +0000 (Mon, 21 Nov 2011) | 7 lines
+Changed paths:
+   M /irssi/trunk/docs/help/in/connect.in
+   M /irssi/trunk/docs/help/in/server.in
+   M /irssi/trunk/src/core/chat-commands.c
+   M /irssi/trunk/src/core/chatnets.c
+   M /irssi/trunk/src/core/server-connect-rec.h
+   M /irssi/trunk/src/core/servers-reconnect.c
+   M /irssi/trunk/src/perl/perl-common.c
+
+Add -noautosendcmd to /SERVER and /CONNECT.
+
+Passing this option will force Irssi to not execute the content of the
+autosendcmd chatnet-setting upon connect.
+
+Fixes: #738
+
+------------------------------------------------------------------------
+r5208 | bazerka | 2011-10-30 15:57:42 +0000 (Sun, 30 Oct 2011) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/chat-completion.c
+   M /irssi/trunk/src/fe-common/core/fe-log.c
+
+Replace remaining usage of deprecated g_strdown(). Follow-up to r5138.
+
+------------------------------------------------------------------------
+r5207 | bazerka | 2011-07-31 16:25:33 +0000 (Sun, 31 Jul 2011) | 2 lines
+Changed paths:
+   M /irssi/trunk/docs/help/in/join.in
+
+Document available options for /JOIN command.
+
+------------------------------------------------------------------------
+r5206 | bazerka | 2011-07-30 23:24:06 +0000 (Sat, 30 Jul 2011) | 2 lines
+Changed paths:
+   M /irssi/trunk/docs/help/in/hilight.in
+   M /irssi/trunk/docs/help/in/ignore.in
+
+Clarify delimiter needed for -channels option of /HILIGHT and /IGNORE commands. 
+
+------------------------------------------------------------------------
+r5205 | jilles | 2011-05-15 21:13:12 +0000 (Sun, 15 May 2011) | 5 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/irc-nicklist.c
+
+Accept names replies with nick!user@host instead of nick
+if they are somehow enabled (UHNAMES/userhost-in-names).
+
+bug #805
+
+------------------------------------------------------------------------
+r5204 | bazerka | 2011-05-04 20:10:48 +0000 (Wed, 04 May 2011) | 2 lines
+Changed paths:
+   M /irssi/trunk/docs/help/in/ignore.in
+
+Add a reference to /help levels for IGNORE help entry.
+
+------------------------------------------------------------------------
+r5203 | bazerka | 2011-02-10 06:45:51 +0000 (Thu, 10 Feb 2011) | 4 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/irc-expandos.c
+
+Ensure that expando_cumode_space() doesn't free unallocated memory when no
+prefix exists by conditionally allocating and marking to-be-freed the cumode
+string inside of expando_cumode(). (Bug #669)
+
+------------------------------------------------------------------------
+r5197 | bazerka | 2010-12-09 09:51:58 +0000 (Thu, 09 Dec 2010) | 5 lines
+Changed paths:
+   M /irssi/trunk/src/perl/perl-common.c
+
+Add the path contained in the perl_use_lib setting to the search list
+when attempting to automatically use chat_protocol perl modules. This
+fixes the automatic calling of "use Irssi::Irc" when the Irssi perl modules
+have been installed in a location outside of perl's site/vendor hierarchy.
+
+------------------------------------------------------------------------
+r5195 | jilles | 2010-11-17 20:41:14 +0000 (Wed, 17 Nov 2010) | 8 lines
+Changed paths:
+   M /irssi/trunk/src/core/misc.c
+
+Do not go beyond the end of the string when processing an octal escape.
+
+This code is used, for example, when /set expand_escapes on.
+
+I can't reproduce crashes but I can reproduce garbage if I type a\1.
+
+bug #775
+
+------------------------------------------------------------------------
+r5194 | bazerka | 2010-10-31 19:40:03 +0000 (Sun, 31 Oct 2010) | 5 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/windows-layout.c
+
+Set window binds for channel items as sticky when re-creating window 
+binds as part of /layout save. This addresses the problem of previously 
+saved channel window items forgetting their windows upon reconnection, 
+which resulted in them being opened in new windows. 
+
+------------------------------------------------------------------------
+r5191 | ahf | 2010-10-02 21:52:35 +0000 (Sat, 02 Oct 2010) | 1 line
+Changed paths:
+   M /irssi/trunk/AUTHORS
+   M /irssi/trunk/src/fe-common/core/fe-settings.c
+
+Strip the argument for boolean options. Patch by Svante Kvarnström. Fixes: #769
+------------------------------------------------------------------------
+r5190 | ahf | 2010-08-14 21:28:42 +0000 (Sat, 14 Aug 2010) | 1 line
+Changed paths:
+   M /irssi/trunk/irssi.conf
+
+Readd Freenode to the list of IRC networks in the default configuration file.
+------------------------------------------------------------------------
+r5186 | ahf | 2010-07-28 16:15:02 +0000 (Wed, 28 Jul 2010) | 1 line
+Changed paths:
+   M /irssi/trunk/src/core/network-openssl.c
+
+Fix indention.
+------------------------------------------------------------------------
+r5184 | coekie | 2010-07-24 14:36:55 +0000 (Sat, 24 Jul 2010) | 7 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/irc-nicklist.c
+   M /irssi/trunk/src/irc/core/irc-nicklist.h
+   M /irssi/trunk/src/irc/core/irc-session.c
+   M /irssi/trunk/src/irc/core/massjoin.c
+   M /irssi/trunk/src/perl/irc/Channel.xs
+
+Add prefixes to irc_nicklist_insert() so that nickrec.prefixes is accurate in the
+"nicklist new" signal.
+
+Fixes the nicklist sorting on xirssi.
+
+Patch by nenolod.
+
+------------------------------------------------------------------------
+r5175 | coekie | 2010-07-13 17:56:02 +0000 (Tue, 13 Jul 2010) | 1 line
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-ignore.c
+
+Bug #748: Fix /ignore -network. Patch by pyropeter
+------------------------------------------------------------------------
+r5174 | bazerka | 2010-05-20 19:00:12 +0000 (Thu, 20 May 2010) | 8 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-exec.c
+
+When sending a signal to an /exec'd command, send it to the process 
+group id instead of the process id. (This covers the case of /bin/sh
+instances which fork/exec commands passed via -c. In such cases,
+sending a signal to the stored process id would sent it to the /bin/sh
+process itself, not the forked child.)
+
+Add error reporting to sending signals.
+
+------------------------------------------------------------------------
+r5173 | bazerka | 2010-05-19 21:21:17 +0000 (Wed, 19 May 2010) | 1 line
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-exec.c
+
+Update help for /exec - clarify use of % prefix for id in command syntax.
+------------------------------------------------------------------------
+r5172 | bazerka | 2010-05-19 19:44:39 +0000 (Wed, 19 May 2010) | 1 line
+Changed paths:
+   M /irssi/trunk/docs/help/in/exec.in
+
+Correct typo (it's -> its) - spotted by coekie.
+------------------------------------------------------------------------
+r5171 | bazerka | 2010-05-16 17:54:30 +0000 (Sun, 16 May 2010) | 1 line
+Changed paths:
+   M /irssi/trunk/AUTHORS
+
+Add myself to AUTHORS.
+------------------------------------------------------------------------
+r5170 | bazerka | 2010-05-16 17:50:31 +0000 (Sun, 16 May 2010) | 1 line
+Changed paths:
+   M /irssi/trunk/src/core/network-openssl.c
+   M /irssi/trunk/src/core/network.c
+
+Fix segfault generated by SSL disconnections. (Bug #752)
+------------------------------------------------------------------------
+r5140 | ahf | 2010-04-04 12:19:54 +0000 (Sun, 04 Apr 2010) | 1 line
+Changed paths:
+   M /irssi/trunk/src/core/settings.c
+   M /irssi/trunk/src/core/special-vars.c
+   M /irssi/trunk/src/irc/core/servers-redirect.c
+
+Remove warnings about uninitialized variables.
+------------------------------------------------------------------------
+r5139 | ahf | 2010-04-04 12:07:26 +0000 (Sun, 04 Apr 2010) | 1 line
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/dcc/fe-dcc-chat.c
+   M /irssi/trunk/src/fe-text/statusbar-config.c
+
+Add missing includes to shut the compiler up.
+------------------------------------------------------------------------
+r5138 | ahf | 2010-04-03 20:09:37 +0000 (Sat, 03 Apr 2010) | 1 line
+Changed paths:
+   M /irssi/trunk/src/core/commands.c
+   M /irssi/trunk/src/core/misc.c
+   M /irssi/trunk/src/core/misc.h
+   M /irssi/trunk/src/fe-common/core/completion.c
+   M /irssi/trunk/src/fe-common/irc/dcc/fe-dcc-chat.c
+   M /irssi/trunk/src/fe-common/irc/fe-irc-commands.c
+   M /irssi/trunk/src/fe-text/statusbar-config.c
+   M /irssi/trunk/src/irc/core/ctcp.c
+   M /irssi/trunk/src/irc/core/irc-commands.c
+   M /irssi/trunk/src/irc/core/irc.c
+   M /irssi/trunk/src/irc/dcc/dcc-chat.c
+   M /irssi/trunk/src/irc/dcc/dcc.c
+   M /irssi/trunk/src/irc/proxy/listen.c
+
+deprecated glib strup/down fixes from exg.
+------------------------------------------------------------------------
+r5137 | ahf | 2010-04-03 20:04:15 +0000 (Sat, 03 Apr 2010) | 1 line
+Changed paths:
+   M /irssi/trunk/src/core/net-nonblock.c
+   M /irssi/trunk/src/core/network.c
+   M /irssi/trunk/src/core/network.h
+   M /irssi/trunk/src/core/servers.c
+   M /irssi/trunk/src/core/session.c
+   M /irssi/trunk/src/fe-common/core/fe-exec.c
+
+glib iochannel fixes from exg.
+------------------------------------------------------------------------
+r5136 | ahf | 2010-04-03 19:09:11 +0000 (Sat, 03 Apr 2010) | 1 line
+Changed paths:
+   M /irssi/trunk/src/core/network-openssl.c
+
+Do not use SSLv2 protocol. From Bazerka.
+------------------------------------------------------------------------
+r5135 | ahf | 2010-04-03 18:17:28 +0000 (Sat, 03 Apr 2010) | 1 line
+Changed paths:
+   M /irssi/trunk/configure.in
+
+trunk is now 0.8.15-svn
+------------------------------------------------------------------------
+r5133 | ahf | 2010-04-03 16:17:30 +0000 (Sat, 03 Apr 2010) | 1 line
+Changed paths:
+   M /irssi/trunk/NEWS
+
+Preparation for 0.8.15, take two.
+------------------------------------------------------------------------
+r5132 | ahf | 2010-04-03 16:02:41 +0000 (Sat, 03 Apr 2010) | 1 line
+Changed paths:
+   M /irssi/trunk/configure.in
+
+Remove dodgy check from configure.in. Thanks to exg.
+------------------------------------------------------------------------
+r5131 | ahf | 2010-04-02 19:39:54 +0000 (Fri, 02 Apr 2010) | 1 line
+Changed paths:
+   M /irssi/trunk/NEWS
+   M /irssi/trunk/configure.in
+
+Preparation for 0.8.15
+------------------------------------------------------------------------
+r5130 | ahf | 2010-03-25 22:15:15 +0000 (Thu, 25 Mar 2010) | 1 line
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/window-commands.c
+
+Minor documentation tweak. Thanks to suom1 and mofo.
+------------------------------------------------------------------------
+r5128 | coekie | 2010-03-21 20:54:04 +0000 (Sun, 21 Mar 2010) | 1 line
+Changed paths:
+   M /irssi/trunk/NEWS
+
+complete NEWS
+------------------------------------------------------------------------
+r5127 | ahf | 2010-03-21 20:25:44 +0000 (Sun, 21 Mar 2010) | 1 line
+Changed paths:
+   M /irssi/trunk/NEWS
+   M /irssi/trunk/configure.in
+
+Slowly prepare for 0.8.15-rc1.
+------------------------------------------------------------------------
+r5126 | coekie | 2010-03-21 20:23:34 +0000 (Sun, 21 Mar 2010) | 1 line
+Changed paths:
+   M /irssi/trunk/src/core/nicklist.c
+
+Fix crash when checking for fuzzy nick match when not on the channel. Reported by Aurelien Delaitre (SATE 2009)
+------------------------------------------------------------------------
+r5125 | ahf | 2010-03-21 20:06:10 +0000 (Sun, 21 Mar 2010) | 1 line
+Changed paths:
+   M /irssi/trunk/docs/help/in/server.in
+   M /irssi/trunk/src/core/servers-setup.c
+   M /irssi/trunk/src/core/servers-setup.h
+   M /irssi/trunk/src/fe-common/core/fe-common-core.c
+   M /irssi/trunk/src/fe-common/core/fe-server.c
+
+Allow servers with the same server and port to be part of multiple networks. This should make life much easier for znc users. Thanks to Tykling, Bazerka and znx.
+------------------------------------------------------------------------
+r5124 | jilles | 2010-03-18 00:16:18 +0000 (Thu, 18 Mar 2010) | 6 lines
+Changed paths:
+   M /irssi/trunk/irssi.conf
+
+irssi.conf: Improve /CALC alias:
+
+* get rid of bashism
+* use command -v instead of which
+* use bc -l option which allows non-integer division results
+
+------------------------------------------------------------------------
+r5123 | jilles | 2010-02-27 22:45:27 +0000 (Sat, 27 Feb 2010) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/fe-events-numeric.c
+
+Show new charybdis +q list in channel window (numerics 728 and 729).
+
+------------------------------------------------------------------------
+r5122 | coekie | 2010-02-27 18:52:41 +0000 (Sat, 27 Feb 2010) | 1 line
+Changed paths:
+   M /irssi/trunk/src/irc/dcc/dcc-send.c
+
+Use servertag from the active DCC chat when not connected anymore to the IRC server that started it. This fixes a crash with handling the DCC queue. Reported by Aurelien Delaitre (SATE 2009)
+------------------------------------------------------------------------
+r5121 | ahf | 2010-02-27 14:57:16 +0000 (Sat, 27 Feb 2010) | 10 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/gui-readline.c
+   M /irssi/trunk/src/fe-text/term-curses.c
+   M /irssi/trunk/src/fe-text/term-terminfo.c
+   M /irssi/trunk/src/fe-text/term.h
+
+Irssi now detects a paste if it reads at least three bytes in a single read;
+subsequent reads are associated to the same paste if they happen before
+'paste_detect_time' time since the last read. If no read occurs after
+'paste_detect_time' time the paste buffer is flushed; if there is at least one
+complete line its content is sent as a paste, otherwise it is processed
+normally.
+
+Thanks to Emanuele Giaquinta.
+
+
+------------------------------------------------------------------------
+r5120 | jilles | 2010-02-26 21:01:39 +0000 (Fri, 26 Feb 2010) | 9 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/fe-events-numeric.c
+
+Show "target changing too fast" messages in the channel/query window.
+
+This is about numerics 707 (ratbox and derivatives) and
+439 (most other ircds that implement target change
+limitations).
+
+If the channel is not yet joined, the message is still
+shown in the status window.
+
+------------------------------------------------------------------------
+r5119 | coekie | 2010-02-25 19:42:58 +0000 (Thu, 25 Feb 2010) | 1 line
+Changed paths:
+   M /irssi/trunk/src/perl/perl-sources.c
+
+Add missing include of misc.h for g_input_add_poll (Bug #740)
+------------------------------------------------------------------------
+r5118 | coekie | 2010-02-22 19:50:54 +0000 (Mon, 22 Feb 2010) | 1 line
+Changed paths:
+   M /irssi/trunk/autogen.sh
+
+Make autogen fail if there is no lynx or links installed
+------------------------------------------------------------------------
+r5117 | coekie | 2010-02-22 19:37:18 +0000 (Mon, 22 Feb 2010) | 1 line
+Changed paths:
+   M /irssi/trunk/src/core/network-openssl.c
+
+Fix compiling without ssl
+------------------------------------------------------------------------
+r5116 | jilles | 2010-02-19 17:29:10 +0000 (Fri, 19 Feb 2010) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/network-openssl.c
+
+network-openssl: Show why a certificate failed validation.
+
+------------------------------------------------------------------------
+r5115 | coekie | 2010-02-15 18:41:50 +0000 (Mon, 15 Feb 2010) | 1 line
+Changed paths:
+   M /irssi/trunk/irssi.conf
+
+Change IRCnet server to open.ircnet.net
+------------------------------------------------------------------------
+r5112 | ahf | 2010-02-10 22:02:45 +0000 (Wed, 10 Feb 2010) | 1 line
+Changed paths:
+   M /irssi/trunk/default.theme
+
+Make own nick and actions use default colour instead of white. Fixing ticket:729. Patch by: Tim Retout
+------------------------------------------------------------------------
+r5111 | ahf | 2010-02-09 20:15:08 +0000 (Tue, 09 Feb 2010) | 1 line
+Changed paths:
+   M /irssi/trunk/AUTHORS
+   M /irssi/trunk/docs/help/in/who.in
+
+Add NAMES to the WHO help entry. Patch by Thomas Karpiniec. Fixes ticket:728
+------------------------------------------------------------------------
+r5110 | ahf | 2010-02-09 20:11:08 +0000 (Tue, 09 Feb 2010) | 1 line
+Changed paths:
+   M /irssi/trunk/AUTHORS
+   M /irssi/trunk/docs/perl.txt
+
+Suffix != prefix. Patch by Ismael Luceno. Closes ticket:730
+------------------------------------------------------------------------
+r5109 | ahf | 2010-01-31 12:22:46 +0000 (Sun, 31 Jan 2010) | 1 line
+Changed paths:
+   M /irssi/trunk/autogen.sh
+
+Use elinks if lynx is not present. From Ingmar Vanhassel of Exherbo fame.
+------------------------------------------------------------------------
+r5108 | jilles | 2010-01-31 00:15:25 +0000 (Sun, 31 Jan 2010) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/network-openssl.c
+
+Call OpenSSL_add_all_algorithms(), may be needed to verify SHA256 certs with certain versions of OpenSSL.
+
+------------------------------------------------------------------------
+r5107 | jilles | 2010-01-31 00:13:05 +0000 (Sun, 31 Jan 2010) | 5 lines
+Changed paths:
+   M /irssi/trunk/src/core/network-openssl.c
+
+Use one SSL_CTX per connection, use default trusted CAs if nothing specified.
+
+This allows useful use of -ssl_verify without
+-ssl_cafile/-ssl_capath, using OpenSSL's default trusted CAs.
+
+------------------------------------------------------------------------
+r5106 | coekie | 2009-12-28 18:07:14 +0000 (Mon, 28 Dec 2009) | 1 line
+Changed paths:
+   M /irssi/trunk/NEWS
+
+Fix active_window_ignore_refnum description
+------------------------------------------------------------------------
+r5105 | coekie | 2009-12-28 12:26:34 +0000 (Mon, 28 Dec 2009) | 1 line
+Changed paths:
+   M /irssi/trunk/NEWS
+
+Update NEWS
+------------------------------------------------------------------------
+r5104 | coekie | 2009-12-28 12:15:18 +0000 (Mon, 28 Dec 2009) | 1 line
+Changed paths:
+   M /irssi/trunk/src/core/network-openssl.c
+   M /irssi/trunk/src/core/network.h
+   M /irssi/trunk/src/core/servers.c
+
+Check if an SSL certificate matches the hostname of the server we are connecting to
+------------------------------------------------------------------------
+r5102 | exg | 2009-10-23 22:24:10 +0000 (Fri, 23 Oct 2009) | 2 lines
+Changed paths:
+   M /irssi/trunk/AUTHORS
+
+Move myself to former developers.
+
+------------------------------------------------------------------------
+r5101 | exg | 2009-10-23 21:17:03 +0000 (Fri, 23 Oct 2009) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/lib-config/write.c
+
+Add forgotten g_io_channel_set_close_on_unref call to close the config file fd
+after saving, patch by Sven Wegener.
+
+------------------------------------------------------------------------
+r5100 | jilles | 2009-09-06 21:27:38 +0000 (Sun, 06 Sep 2009) | 6 lines
+Changed paths:
+   M /irssi/trunk/src/perl/get-signals.pl
+
+Make several signals without parameters available to perl again.
+In particular, this includes the "beep" signal.
+
+Submitted by Matt Sparks
+Bug #674
+
+------------------------------------------------------------------------
+r5099 | jilles | 2009-09-06 20:47:18 +0000 (Sun, 06 Sep 2009) | 4 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/fe-events-numeric.c
+
+Show all nicks instead of just the first in an /accept * listing.
+
+Bug #704
+
+------------------------------------------------------------------------
+r5098 | ahf | 2009-09-05 13:18:10 +0000 (Sat, 05 Sep 2009) | 1 line
+Changed paths:
+   M /irssi/trunk/docs/help/in/ban.in
+   M /irssi/trunk/docs/help/in/exec.in
+
+Documentation cleanup. Thanks to Remco Lanting.
+------------------------------------------------------------------------
+r5097 | jilles | 2009-09-02 21:46:57 +0000 (Wed, 02 Sep 2009) | 2 lines
+Changed paths:
+   M /irssi/trunk/docs/help/in/ban.in
+   M /irssi/trunk/docs/help/in/exec.in
+   M /irssi/trunk/docs/help/in/hilight.in
+   M /irssi/trunk/docs/help/in/ignore.in
+   M /irssi/trunk/docs/help/in/join.in
+   M /irssi/trunk/docs/help/in/kick.in
+   M /irssi/trunk/docs/help/in/load.in
+   M /irssi/trunk/docs/help/in/oper.in
+   M /irssi/trunk/docs/help/in/quit.in
+   M /irssi/trunk/docs/help/in/statusbar.in
+
+Helpfile improvements from "rudi_s".
+
+------------------------------------------------------------------------
+r5096 | jilles | 2009-09-02 21:22:37 +0000 (Wed, 02 Sep 2009) | 16 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/window-commands.c
+
+Add active_window_ignore_refnum option
+
+With active_window_ignore_refnum = ON, the current behavior
+for the active_window key (meta-a by default) is preserved:
+windows are cycled in the order of most recent activity,
+highest activity first.
+
+With active_window_ignore_refnum = OFF, the old behavior is
+used: windows are cycled in the order of most recent
+activity, where ties of equally high activity are broken by
+refnums. Windows with lower refnums and equal activity will
+be chosen first.
+
+Submitted by Matt Sparks
+Bug #667
+
+------------------------------------------------------------------------
+r5095 | jilles | 2009-09-02 20:55:13 +0000 (Wed, 02 Sep 2009) | 7 lines
+Changed paths:
+   M /irssi/trunk/src/core/network-openssl.c
+
+Tell OpenSSL that our write buffer may move (although the content remains the same).
+This fixes disconnects when sending large amounts of data
+to the server.
+Note that it assumes that write retries will retry the same
+data; a reasonable assumption, but it is not necessary for
+any normal write().
+
+------------------------------------------------------------------------
+r5085 | jilles | 2009-08-13 21:16:22 +0000 (Thu, 13 Aug 2009) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-log.c
+
+autolog: change some characters illegal in Windows filenames to underscores
+
+------------------------------------------------------------------------
+r5084 | ahf | 2009-07-29 11:59:23 +0000 (Wed, 29 Jul 2009) | 1 line
+Changed paths:
+   M /irssi/trunk/configure.in
+
+Trunk is now 0.8.14-svn.
+------------------------------------------------------------------------
+r5083 | ahf | 2009-07-29 11:48:08 +0000 (Wed, 29 Jul 2009) | 1 line
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/module-formats.c
+
+s/Splitted/Split/. Typo spotted by Gerfried Fuchs (Rhonda at IRCnet)
+------------------------------------------------------------------------
+r5081 | ahf | 2009-07-28 19:38:36 +0000 (Tue, 28 Jul 2009) | 1 line
+Changed paths:
+   M /irssi/trunk/NEWS
+   M /irssi/trunk/configure.in
+
+Release: 0.8.14
+------------------------------------------------------------------------
+r5080 | ahf | 2009-07-22 19:45:51 +0000 (Wed, 22 Jul 2009) | 1 line
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-log.c
+
+Move the autolog_ignore_targets logic a bit around; fixes #673.
+------------------------------------------------------------------------
+r5079 | ahf | 2009-06-07 11:50:55 +0000 (Sun, 07 Jun 2009) | 1 line
+Changed paths:
+   M /irssi/trunk/NEWS
+
+Typo spotted by RichiH.
+------------------------------------------------------------------------
+r5078 | ahf | 2009-06-04 21:04:59 +0000 (Thu, 04 Jun 2009) | 1 line
+Changed paths:
+   M /irssi/trunk/irssi.conf
+
+Make /reset an alias for /set -default and /unset an alias for /set -clear.
+------------------------------------------------------------------------
+r5076 | ahf | 2009-05-24 15:51:49 +0000 (Sun, 24 May 2009) | 1 line
+Changed paths:
+   M /irssi/trunk/irssi.conf
+
+We got #irssi on IRCnet back. Fix irssi.conf to reflect this.
+------------------------------------------------------------------------
+r5075 | jilles | 2009-05-22 12:48:02 +0000 (Fri, 22 May 2009) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/gui-readline.c
+
+Allow ctrl+home/ctrl+end to go to the beginning/end of scrollback.
+
+------------------------------------------------------------------------
+r5068 | jilles | 2009-05-15 11:54:33 +0000 (Fri, 15 May 2009) | 5 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/fe-events.c
+
+Fix out of bounds access in event_wallops().
+
+bug #662
+Submitted by: nemo
+
+------------------------------------------------------------------------
+r5065 | jilles | 2009-05-13 21:01:55 +0000 (Wed, 13 May 2009) | 4 lines
+Changed paths:
+   M /irssi/trunk/irssi-version.sh
+
+Do not put a space between awk's -F and its argument.
+Solaris's /usr/bin/awk chokes on the space.
+Bug #672
+
+------------------------------------------------------------------------
+r5064 | jilles | 2009-05-13 19:27:20 +0000 (Wed, 13 May 2009) | 11 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/servers-redirect.c
+
+Accept 354 (WHOX reply) as a /who reply too (for redirection).
+
+Ignore the parameters for matching because 354 does
+not have a fixed format.
+
+This helps irssi-proxy with clients that use WHOX,
+such as xchat (away checking). WHOX works on ircu
+and charybdis 3.1 servers.
+
+Bug #671
+
+------------------------------------------------------------------------
+r5063 | Geert | 2009-04-27 19:00:48 +0000 (Mon, 27 Apr 2009) | 2 lines
+Changed paths:
+   M /irssi/trunk/irssi.conf
+
+Renamed IRCnet #irssi to #irssi.org
+
+------------------------------------------------------------------------
+r5062 | jilles | 2009-04-26 20:54:49 +0000 (Sun, 26 Apr 2009) | 5 lines
+Changed paths:
+   M /irssi/trunk/Makefile.am
+
+Fix make install without write privilege to the source directory
+by not using a temp file in there for irssi-version.h.
+Note that this will still not work if the source has changed
+since it was compiled, but that is to be expected.
+
+------------------------------------------------------------------------
+r5060 | jilles | 2009-04-17 12:42:41 +0000 (Fri, 17 Apr 2009) | 4 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-core-commands.c
+
+Ensure type matches format string in /uptime.
+Garbled output could happen if time_t was a different size from long.
+bug #665
+
+------------------------------------------------------------------------
+r5059 | exg | 2009-04-05 19:04:25 +0000 (Sun, 05 Apr 2009) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/notifylist/notify-ison.c
+
+Remove leftover.
+
+------------------------------------------------------------------------
+r5058 | exg | 2009-04-05 18:04:59 +0000 (Sun, 05 Apr 2009) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/perl/perl-core.c
+
+Fix r4998 change, declare 'environ'.
+
+------------------------------------------------------------------------
+r5057 | jilles | 2009-04-03 22:09:17 +0000 (Fri, 03 Apr 2009) | 4 lines
+Changed paths:
+   M /irssi/trunk/src/core/misc.c
+
+Make the time duration parser stricter.
+This makes  /set server_reconnect_time = 10min  fail
+instead of setting the time to 0.
+
+------------------------------------------------------------------------
+r5056 | jilles | 2009-04-03 17:49:58 +0000 (Fri, 03 Apr 2009) | 7 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/fe-events-numeric.c
+
+Show numerics directed at channels in the channel window.
+This is about numerics where the target parameter is
+a channel, i.e.  ":<server> <numeric> <#channel> ..."
+Usually, this parameter is the user's nick or an asterisk.
+An example is the numeric ircd-ratbox and charybdis send
+to channel operators on a successful /knock.
+
+------------------------------------------------------------------------
+r5054 | coekie | 2009-03-31 21:01:42 +0000 (Tue, 31 Mar 2009) | 1 line
+Changed paths:
+   M /irssi/trunk/NEWS
+   M /irssi/trunk/configure.in
+
+Release 0.8.13
+------------------------------------------------------------------------
+r5041 | coekie | 2009-03-18 19:16:34 +0000 (Wed, 18 Mar 2009) | 1 line
+Changed paths:
+   M /irssi/trunk/configure.in
+
+Release 0.8.13-rc1
+------------------------------------------------------------------------
+r5040 | coekie | 2009-03-15 16:25:42 +0000 (Sun, 15 Mar 2009) | 1 line
+Changed paths:
+   M /irssi/trunk/src/irc/notifylist/notifylist.c
+
+Correct previous commit: fix away checking
+------------------------------------------------------------------------
+r5039 | coekie | 2009-03-10 22:18:01 +0000 (Tue, 10 Mar 2009) | 1 line
+Changed paths:
+   M /irssi/trunk/NEWS
+   M /irssi/trunk/src/irc/notifylist/notifylist.c
+
+Fix /NOTIFY list when nick is seen joining (bug #642)
+------------------------------------------------------------------------
+r5038 | coekie | 2009-03-10 21:36:35 +0000 (Tue, 10 Mar 2009) | 1 line
+Changed paths:
+   M /irssi/trunk/NEWS
+   M /irssi/trunk/src/irc/proxy/dump.c
+
+Include hostmask in 001 event sent by proxy (bug #650)
+------------------------------------------------------------------------
+r5037 | coekie | 2009-03-10 21:16:16 +0000 (Tue, 10 Mar 2009) | 1 line
+Changed paths:
+   M /irssi/trunk/docs/signals.txt
+
+Add "window item moved" (added in r5012) to signals.txt
+------------------------------------------------------------------------
+r5036 | coekie | 2009-03-10 20:38:53 +0000 (Tue, 10 Mar 2009) | 1 line
+Changed paths:
+   M /irssi/trunk/AUTHORS
+   M /irssi/trunk/NEWS
+
+Update AUTHORS and NEWS
+------------------------------------------------------------------------
+r5035 | jilles | 2009-03-10 18:12:04 +0000 (Tue, 10 Mar 2009) | 2 lines
+Changed paths:
+   M /irssi/trunk/docs/signals.txt
+
+Add "default event numeric" to signals.txt.
+
+------------------------------------------------------------------------
+r5034 | ahf | 2009-03-04 18:09:52 +0000 (Wed, 04 Mar 2009) | 1 line
+Changed paths:
+   M /irssi/trunk/README
+
+Remove authors info from README
+------------------------------------------------------------------------
+r5033 | ahf | 2009-03-01 22:05:42 +0000 (Sun, 01 Mar 2009) | 1 line
+Changed paths:
+   M /irssi/trunk/NEWS
+
+Add autolog_ignore_targets entry to the NEWS file.
+------------------------------------------------------------------------
+r5032 | jilles | 2009-03-01 00:22:29 +0000 (Sun, 01 Mar 2009) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/gui-windows.c
+   M /irssi/trunk/src/irc/core/netsplit.c
+
+Remove unused variables.
+
+------------------------------------------------------------------------
+r5031 | jilles | 2009-02-28 23:09:33 +0000 (Sat, 28 Feb 2009) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/network-openssl.c
+
+Remove unused variable.
+
+------------------------------------------------------------------------
+r5030 | jilles | 2009-02-28 22:48:41 +0000 (Sat, 28 Feb 2009) | 4 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/irc.c
+
+Ensure variable is initialized.
+Make sure not to set connection_lost if the server was
+already disconnected.
+
+------------------------------------------------------------------------
+r5029 | exg | 2009-02-28 21:51:53 +0000 (Sat, 28 Feb 2009) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/window-items.c
+
+Remove unused variable.
+
+------------------------------------------------------------------------
+r5028 | exg | 2009-02-28 21:41:47 +0000 (Sat, 28 Feb 2009) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/network.c
+
+Remove unused variable.
+
+------------------------------------------------------------------------
+r5027 | jilles | 2009-02-28 20:51:22 +0000 (Sat, 28 Feb 2009) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/core/expandos.c
+
+Correct assertions.
+Found using llvm static analyzer.
+
+------------------------------------------------------------------------
+r5026 | jilles | 2009-02-28 18:15:14 +0000 (Sat, 28 Feb 2009) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/irc-servers.c
+   M /irssi/trunk/src/irc/core/irc-servers.h
+   M /irssi/trunk/src/irc/core/irc.c
+
+Add the command send/expire timeout only when needed.
+This was the last always-on <1s timer.
+
+------------------------------------------------------------------------
+r5025 | jilles | 2009-02-28 18:02:48 +0000 (Sat, 28 Feb 2009) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/core/expandos.c
+
+Once a second seems sufficient for the expando timer.
+These seem to change once a second at most, typically.
+
+------------------------------------------------------------------------
+r5024 | jilles | 2009-02-28 12:43:00 +0000 (Sat, 28 Feb 2009) | 4 lines
+Changed paths:
+   M /irssi/trunk/src/irc/flood/flood.c
+
+Check for stale flood entries when lines come in, avoiding a 0.5 second timeout.
+The timeout is now every 5 seconds and serves to
+remove entries that do not send messages anymore.
+
+------------------------------------------------------------------------
+r5023 | jilles | 2009-02-27 14:32:33 +0000 (Fri, 27 Feb 2009) | 4 lines
+Changed paths:
+   M /irssi/trunk/src/core/chat-commands.c
+   M /irssi/trunk/src/fe-common/core/fe-channels.c
+   M /irssi/trunk/src/fe-common/core/fe-core-commands.c
+
+Move to a single /join function, avoiding confusion on "/join -window".
+patch by exg
+bug #644, thanks for the useful bug report
+
+------------------------------------------------------------------------
+r5022 | jilles | 2009-02-27 14:20:35 +0000 (Fri, 27 Feb 2009) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/term-terminfo.c
+
+Check for SIGCONT using a custom GSource instead of every 0.5 second.
+
+------------------------------------------------------------------------
+r5021 | jilles | 2009-02-21 21:17:51 +0000 (Sat, 21 Feb 2009) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/core/ignore.c
+   M /irssi/trunk/src/core/levels.c
+   M /irssi/trunk/src/core/levels.h
+   M /irssi/trunk/src/core/log.c
+   M /irssi/trunk/src/core/settings.c
+   M /irssi/trunk/src/fe-common/core/fe-core-commands.c
+   M /irssi/trunk/src/fe-common/core/fe-exec.c
+   M /irssi/trunk/src/fe-common/core/fe-log.c
+   M /irssi/trunk/src/fe-common/core/hilight-text.c
+   M /irssi/trunk/src/fe-common/core/windows-layout.c
+   M /irssi/trunk/src/fe-text/textbuffer-commands.c
+   M /irssi/trunk/src/perl/common/Core.xs
+
+Reject invalid level specifications in /set.
+Most of these have names that end in "_level".
+
+------------------------------------------------------------------------
+r5020 | jilles | 2009-02-21 17:55:12 +0000 (Sat, 21 Feb 2009) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/modes.c
+   M /irssi/trunk/src/irc/core/modes.h
+
+Make explicit how long the arrays for prefix_add and prefix_del are.
+
+------------------------------------------------------------------------
+r5019 | jilles | 2009-02-21 17:34:13 +0000 (Sat, 21 Feb 2009) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-settings.c
+
+Use i_isspace to make this clearer.
+
+------------------------------------------------------------------------
+r5018 | jilles | 2009-02-21 17:22:32 +0000 (Sat, 21 Feb 2009) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-settings.c
+
+Make an invalid boolean /set a CLIENTERROR instead of CLIENTCRAP.
+
+------------------------------------------------------------------------
+r5017 | jilles | 2009-02-21 17:20:13 +0000 (Sat, 21 Feb 2009) | 5 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-settings.c
+   M /irssi/trunk/src/fe-common/core/module-formats.c
+   M /irssi/trunk/src/fe-common/core/module-formats.h
+
+Reject obviously invalid numbers in /set.
+A limitation of the settings model is that any value
+that fits in an int is accepted, e.g. negative port
+numbers.
+
+------------------------------------------------------------------------
+r5012 | coekie | 2009-02-13 18:57:55 +0000 (Fri, 13 Feb 2009) | 1 line
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/window-items.c
+
+emit "window item moved" instead of "window item remove" and "window item new" when a window item is moved to another window
+------------------------------------------------------------------------
+r5010 | ahf | 2009-02-10 20:45:27 +0000 (Tue, 10 Feb 2009) | 1 line
+Changed paths:
+   M /irssi/trunk/src/core/log.c
+   M /irssi/trunk/src/fe-common/core/completion.c
+   M /irssi/trunk/src/fe-common/core/fe-log.c
+
+Prefer g_path_get_dirname() over g_dirname().
+------------------------------------------------------------------------
+r5009 | ahf | 2009-02-10 12:59:49 +0000 (Tue, 10 Feb 2009) | 1 line
+Changed paths:
+   M /irssi/trunk/docs/signals.txt
+
+Add "window dehilight" to signals.txt
+------------------------------------------------------------------------
+r5008 | ahf | 2009-02-09 20:11:27 +0000 (Mon, 09 Feb 2009) | 2 lines
+Changed paths:
+   M /irssi/trunk/AUTHORS
+
+Convert AUTHORS to UTF-8.
+
+------------------------------------------------------------------------
+r5007 | ahf | 2009-02-09 20:01:49 +0000 (Mon, 09 Feb 2009) | 2 lines
+Changed paths:
+   M /irssi/trunk/AUTHORS
+
+Add myself to AUTHORS.
+
+------------------------------------------------------------------------
+r5006 | ahf | 2009-02-09 20:00:17 +0000 (Mon, 09 Feb 2009) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-log.c
+
+Add /set autolog_ignore_targets.
+Allows you to avoid specific targets from being logged via autolog.
+
+------------------------------------------------------------------------
+r5005 | ahf | 2009-02-09 17:51:24 +0000 (Mon, 09 Feb 2009) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-log.c
+
+Don't tokenizee target since it wont contain more than one entry anyway.
+Poke me if this breaks for you.
+
+------------------------------------------------------------------------
+r5004 | ahf | 2009-02-08 17:57:19 +0000 (Sun, 08 Feb 2009) | 4 lines
+Changed paths:
+   M /irssi/trunk/src/core/servers.c
+   M /irssi/trunk/src/core/settings.c
+   M /irssi/trunk/src/fe-common/core/fe-messages.c
+   M /irssi/trunk/src/fe-common/irc/fe-irc-commands.c
+   M /irssi/trunk/src/irc/core/ctcp.c
+   M /irssi/trunk/src/irc/core/irc-commands.c
+   M /irssi/trunk/src/irc/core/modes.c
+   M /irssi/trunk/src/irc/dcc/dcc-get.c
+   M /irssi/trunk/src/irc/proxy/dump.c
+   M /irssi/trunk/src/irc/proxy/listen.c
+   M /irssi/trunk/src/perl/perl-common.c
+   M /irssi/trunk/src/perl/perl-core.c
+
+Code Cleanup:
+Use g_string_printf() instead of g_string_sprintf() (which is considered deprecated.)
+
+
+------------------------------------------------------------------------
+r5003 | ahf | 2009-02-08 17:22:42 +0000 (Sun, 08 Feb 2009) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/core/channels.c
+   M /irssi/trunk/src/core/levels.c
+   M /irssi/trunk/src/core/session.c
+   M /irssi/trunk/src/core/settings.c
+   M /irssi/trunk/src/fe-common/core/fe-channels.c
+   M /irssi/trunk/src/fe-common/core/fe-core-commands.c
+   M /irssi/trunk/src/fe-common/core/fe-ignore.c
+   M /irssi/trunk/src/fe-common/core/fe-log.c
+   M /irssi/trunk/src/fe-common/core/fe-messages.c
+   M /irssi/trunk/src/fe-common/core/hilight-text.c
+   M /irssi/trunk/src/fe-common/core/printtext.c
+   M /irssi/trunk/src/fe-common/irc/fe-irc-server.c
+   M /irssi/trunk/src/fe-common/irc/fe-ircnet.c
+   M /irssi/trunk/src/fe-common/irc/fe-netjoin.c
+   M /irssi/trunk/src/fe-common/irc/fe-netsplit.c
+   M /irssi/trunk/src/fe-common/irc/notifylist/fe-notifylist.c
+   M /irssi/trunk/src/fe-text/mainwindows.c
+   M /irssi/trunk/src/fe-text/statusbar.c
+   M /irssi/trunk/src/fe-text/textbuffer.c
+   M /irssi/trunk/src/irc/core/bans.c
+   M /irssi/trunk/src/irc/core/channel-rejoin.c
+   M /irssi/trunk/src/irc/core/irc-channels.c
+   M /irssi/trunk/src/irc/core/irc-servers.c
+   M /irssi/trunk/src/irc/core/irc.c
+   M /irssi/trunk/src/irc/core/modes.c
+   M /irssi/trunk/src/irc/notifylist/notify-ison.c
+   M /irssi/trunk/src/irc/proxy/dump.c
+   M /irssi/trunk/src/lib-config/get.c
+   M /irssi/trunk/src/lib-config/write.c
+   M /irssi/trunk/src/perl/perl-common.c
+
+Code Cleanup:
+Use g_string_append_printf() instead of g_string_sprintfa() (which is considered deprecated.)
+
+------------------------------------------------------------------------
+r5002 | ahf | 2009-02-07 23:03:24 +0000 (Sat, 07 Feb 2009) | 1 line
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-common-core.c
+   M /irssi/trunk/src/fe-common/core/fe-common-core.h
+   M /irssi/trunk/src/fe-common/core/window-activity.c
+
+Add strarray_find_dest(). Useful for checking whether a server_tag/target or target is found in a vector of strings.
+------------------------------------------------------------------------
+r4998 | exg | 2009-01-23 17:57:49 +0000 (Fri, 23 Jan 2009) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/perl/perl-core.c
+
+Call PERL_SYS_INIT3() and PERL_SYS_TERM() as documented in perlembed(1).
+
+------------------------------------------------------------------------
+r4997 | exg | 2009-01-23 17:48:32 +0000 (Fri, 23 Jan 2009) | 2 lines
+Changed paths:
+   M /irssi/trunk/docs/crash.txt
+
+Suggest a better method to provide a backtrace with gdb.
+
+------------------------------------------------------------------------
+r4996 | exg | 2009-01-20 14:15:01 +0000 (Tue, 20 Jan 2009) | 2 lines
+Changed paths:
+   M /irssi/trunk/docs/design.txt
+   M /irssi/trunk/src/core/commands.c
+
+Fix 'defination' typo.
+
+------------------------------------------------------------------------
+r4995 | exg | 2009-01-18 12:46:57 +0000 (Sun, 18 Jan 2009) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/textbuffer-view.c
+
+Replace invalid utf-8 bytes with U+FFFD when drawing a line.
+
+------------------------------------------------------------------------
+r4994 | exg | 2009-01-18 11:55:27 +0000 (Sun, 18 Jan 2009) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/printtext.c
+
+Emit 'print starting' with the correct argument in printtext_string{,window}.
+
+------------------------------------------------------------------------
+r4993 | exg | 2009-01-17 22:33:29 +0000 (Sat, 17 Jan 2009) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/perl/ui/Window.xs
+
+Add Irssi::UI::Window::get_history_lines to get the content of a window's
+history.
+
+------------------------------------------------------------------------
+r4992 | exg | 2009-01-17 22:28:47 +0000 (Sat, 17 Jan 2009) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/perl/perl-core.c
+
+Revert r4871, it breaks /script reset.
+
+------------------------------------------------------------------------
+r4991 | exg | 2009-01-16 22:02:02 +0000 (Fri, 16 Jan 2009) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/perl/perl-core.c
+
+Properly unload the original script when using /script load to reload it.
+bug #525, patch by Lukas Mai.
+
+------------------------------------------------------------------------
+r4990 | exg | 2009-01-16 17:12:27 +0000 (Fri, 16 Jan 2009) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/lib-config/iconfig.h
+   M /irssi/trunk/src/lib-config/parse.c
+   M /irssi/trunk/src/lib-config/write.c
+
+Use an io channel to write the config file.
+
+------------------------------------------------------------------------
+r4989 | jilles | 2009-01-15 22:21:31 +0000 (Thu, 15 Jan 2009) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/perl/perl-core.c
+
+Use PERL_SYS_INIT3 with the correct pointer type for argv.
+This fixes perl crashes on startup on some machines.
+
+------------------------------------------------------------------------
+r4988 | exg | 2009-01-15 11:14:51 +0000 (Thu, 15 Jan 2009) | 2 lines
+Changed paths:
+   M /irssi/trunk/docs/help/in/dcc.in
+
+Doc fix.
+
+------------------------------------------------------------------------
+r4987 | exg | 2009-01-15 11:02:23 +0000 (Thu, 15 Jan 2009) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/perl/perl-fe.c
+
+Fix minor leak.
+
+------------------------------------------------------------------------
+r4986 | exg | 2009-01-15 10:34:46 +0000 (Thu, 15 Jan 2009) | 2 lines
+Changed paths:
+   M /irssi/trunk/INSTALL
+
+We require perl-5.6.
+
+------------------------------------------------------------------------
+r4985 | exg | 2009-01-14 17:53:57 +0000 (Wed, 14 Jan 2009) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/lib-config/get.c
+   M /irssi/trunk/src/lib-config/iconfig.h
+
+Remove unused and odd function.
+
+------------------------------------------------------------------------
+r4984 | exg | 2009-01-14 17:19:42 +0000 (Wed, 14 Jan 2009) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/lib-config/iconfig.h
+
+Fix typos.
+
+------------------------------------------------------------------------
+r4983 | exg | 2009-01-13 18:51:25 +0000 (Tue, 13 Jan 2009) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/gui-printtext.c
+
+Fix last change.
+
+------------------------------------------------------------------------
+r4982 | exg | 2009-01-13 18:31:31 +0000 (Tue, 13 Jan 2009) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/formats.c
+   M /irssi/trunk/src/fe-common/core/formats.h
+   M /irssi/trunk/src/fe-text/textbuffer-view.c
+   M /irssi/trunk/src/fe-text/textbuffer.c
+   M /irssi/trunk/src/fe-text/textbuffer.h
+
+Remove broken and unused format to add an indent function to a line.
+
+------------------------------------------------------------------------
+r4981 | exg | 2009-01-10 18:38:08 +0000 (Sat, 10 Jan 2009) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/Makefile.am
+   M /irssi/trunk/src/fe-text/irssi.c
+   M /irssi/trunk/src/fe-text/textbuffer-commands.c
+   D /irssi/trunk/src/fe-text/textbuffer-reformat.c
+   D /irssi/trunk/src/fe-text/textbuffer-reformat.h
+   M /irssi/trunk/src/fe-text/textbuffer-view.c
+   M /irssi/trunk/src/fe-text/textbuffer.c
+   M /irssi/trunk/src/fe-text/textbuffer.h
+
+Remove buggy /scrollback redraw - scrollback_save_formats.
+
+------------------------------------------------------------------------
+r4980 | exg | 2009-01-10 17:57:38 +0000 (Sat, 10 Jan 2009) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/formats.c
+
+Use window_get_theme.
+
+------------------------------------------------------------------------
+r4979 | exg | 2009-01-10 15:00:06 +0000 (Sat, 10 Jan 2009) | 4 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/printtext.c
+   M /irssi/trunk/src/fe-common/core/printtext.h
+   M /irssi/trunk/src/perl/ui/Themes.xs
+
+Factor out printformat_module_dest_charargs function from
+printformat_module_dest_args and use it in printformat_perl to remove code
+duplication.
+
+------------------------------------------------------------------------
+r4978 | exg | 2009-01-08 12:39:11 +0000 (Thu, 08 Jan 2009) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/textbuffer.c
+
+Remove memory chunks in favour of memory slices.
+
+------------------------------------------------------------------------
+r4977 | exg | 2009-01-08 11:39:27 +0000 (Thu, 08 Jan 2009) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/common.h
+
+Add defines for memory slices functions for compatibility with glib
+versions older than 2.10.
+
+------------------------------------------------------------------------
+r4976 | exg | 2009-01-04 15:56:54 +0000 (Sun, 04 Jan 2009) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/textbuffer.c
+
+Remove useless code, cur_line is always the last line of the textbuffer.
+
+------------------------------------------------------------------------
+r4975 | exg | 2008-12-30 11:51:27 +0000 (Tue, 30 Dec 2008) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/pidwait.c
+
+Rewrite pidwait using g_child_watch_add.
+
+------------------------------------------------------------------------
+r4974 | exg | 2008-12-30 10:39:21 +0000 (Tue, 30 Dec 2008) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-exec.c
+
+recvlen must be signed.
+
+------------------------------------------------------------------------
+r4973 | exg | 2008-12-30 01:20:09 +0000 (Tue, 30 Dec 2008) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-exec.c
+
+Use net_receive in sig_exec_input_reader.
+
+------------------------------------------------------------------------
+r4972 | exg | 2008-12-22 01:07:11 +0000 (Mon, 22 Dec 2008) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/irc-servers.c
+
+Check server's connected flag rather than net-sendbuffer pointers in
+sig_server_quit.
+
+------------------------------------------------------------------------
+r4971 | exg | 2008-12-22 00:11:33 +0000 (Mon, 22 Dec 2008) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/core.c
+   M /irssi/trunk/src/core/net-sendbuffer.c
+   M /irssi/trunk/src/core/net-sendbuffer.h
+
+Remove useless net-sendbuffer init/deinit functions.
+
+------------------------------------------------------------------------
+r4970 | exg | 2008-12-22 00:06:49 +0000 (Mon, 22 Dec 2008) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/net-sendbuffer.c
+
+Remove buffers GSList, it is unused since r1023.
+
+------------------------------------------------------------------------
+r4969 | exg | 2008-12-17 18:56:56 +0000 (Wed, 17 Dec 2008) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/perl/irssi-core.pl
+
+Fix r4961 change, irssi-core.pl is transformed in a format string so literals
+% must be escaped. Patch by Lukas Mai.
+
+------------------------------------------------------------------------
+r4968 | jilles | 2008-12-13 21:42:42 +0000 (Sat, 13 Dec 2008) | 6 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/irc-session.c
+
+Preserve op/halfop/voice when /upgrading from before the prefixes change
+(r4922). This also restores them when /upgrading from
+a revision between r4922 and this one.
+Note that other prefixes are still lost when /upgrading
+from pre-r4922 irssi.
+
+------------------------------------------------------------------------
+r4967 | jilles | 2008-12-12 22:04:37 +0000 (Fri, 12 Dec 2008) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/modes.c
+
+prefix_add(): copy correct number of bytes
+
+------------------------------------------------------------------------
+r4966 | jilles | 2008-12-12 21:01:48 +0000 (Fri, 12 Dec 2008) | 3 lines
+Changed paths:
+   M /irssi/trunk/docs/perl.txt
+
+Document Irssi::signal_continue() and clarify new signal registration requirements
+(r4953).
+
+------------------------------------------------------------------------
+r4965 | exg | 2008-12-12 10:42:14 +0000 (Fri, 12 Dec 2008) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/textbuffer-view.c
+   M /irssi/trunk/src/fe-text/textbuffer-view.h
+   M /irssi/trunk/src/perl/textui/TextUI.xs
+
+Revert r4964, at least one script uses ypos.
+
+------------------------------------------------------------------------
+r4964 | exg | 2008-12-11 20:59:21 +0000 (Thu, 11 Dec 2008) | 5 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/textbuffer-view.c
+   M /irssi/trunk/src/fe-text/textbuffer-view.h
+   M /irssi/trunk/src/perl/textui/TextUI.xs
+
+Remove ypos field of TEXT_BUFFER_VIEW_REC, it is used to compute the row
+position where to draw a new line and if the view is at the bottom of the
+textbuffer, but the same information can be computed more easily by other
+means.
+
+------------------------------------------------------------------------
+r4963 | exg | 2008-12-10 10:21:04 +0000 (Wed, 10 Dec 2008) | 4 lines
+Changed paths:
+   M /irssi/trunk/src/perl/textui/TextBuffer.xs
+   M /irssi/trunk/src/perl/textui/TextBufferView.xs
+
+Remove methods to create/destroy TextBuffer and TextBufferView and low level
+api to add/remove lines, scripts should be fine using Window::print_after and
+TextBufferView::remove_line.
+
+------------------------------------------------------------------------
+r4962 | exg | 2008-12-10 09:35:25 +0000 (Wed, 10 Dec 2008) | 4 lines
+Changed paths:
+   M /irssi/trunk/src/perl/textui/TextUI.xs
+
+Add print_after method to Window perl object analogous to
+gui_printtext_after but which also expands formats and forces a full
+line.
+
+------------------------------------------------------------------------
+r4961 | exg | 2008-12-09 21:42:51 +0000 (Tue, 09 Dec 2008) | 9 lines
+Changed paths:
+   M /irssi/trunk/src/perl/irssi-core.pl
+
+Clean up script loading in general.
+Don't leak local variables to eval'd code.
+Set filename/line number to get better error messages from perl.
+Use three-arg open and lexical filehandles to avoid surprises.
+Include error reason in message for unopenable scripts.
+Don't wrap script code in sub handler { } - this avoids spurious warnings and
+should at least allow __END__ to work properly.
+Patch by Lukas Mai.
+
+------------------------------------------------------------------------
+r4960 | exg | 2008-12-09 18:16:49 +0000 (Tue, 09 Dec 2008) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/perl/perl-signals.c
+
+Fix undefined behavior due to modifying PL_na twice between sequence points.
+Patch by Lukas Mai.
+
+------------------------------------------------------------------------
+r4959 | exg | 2008-12-09 18:02:53 +0000 (Tue, 09 Dec 2008) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/perl/textui/TextBufferView.xs
+
+Remove resize method of TextBufferView perl object, it is not useful
+and dangerous.
+
+------------------------------------------------------------------------
+r4958 | exg | 2008-12-09 11:59:16 +0000 (Tue, 09 Dec 2008) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/utf8.c
+   M /irssi/trunk/src/fe-common/core/utf8.h
+   M /irssi/trunk/src/fe-text/gui-entry.c
+
+Remove internal utf8 functions in favour of glib ones.
+
+------------------------------------------------------------------------
+r4957 | exg | 2008-12-09 11:45:23 +0000 (Tue, 09 Dec 2008) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/gui-entry.c
+
+Cosmetic.
+
+------------------------------------------------------------------------
+r4956 | exg | 2008-12-08 17:11:00 +0000 (Mon, 08 Dec 2008) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/mainwindows.c
+   M /irssi/trunk/src/fe-text/statusbar.c
+   M /irssi/trunk/src/perl/common/Core.xs
+   M /irssi/trunk/src/perl/common/Expando.xs
+   M /irssi/trunk/src/perl/ui/Themes.xs
+
+Make some functions static.
+
+------------------------------------------------------------------------
+r4955 | exg | 2008-12-08 16:55:29 +0000 (Mon, 08 Dec 2008) | 2 lines
+Changed paths:
+   M /irssi/trunk/docs/manual.txt
+
+Document command syntax.
+
+------------------------------------------------------------------------
+r4954 | exg | 2008-12-08 16:32:56 +0000 (Mon, 08 Dec 2008) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/mainwindows.c
+
+Simplify.
+
+------------------------------------------------------------------------
+r4953 | exg | 2008-12-08 16:06:11 +0000 (Mon, 08 Dec 2008) | 6 lines
+Changed paths:
+   M /irssi/trunk/src/perl/common/Core.xs
+   M /irssi/trunk/src/perl/perl-signals.c
+   M /irssi/trunk/src/perl/perl-signals.h
+
+Add perl_signal_args_to_c() to convert signal parameters from Perl to C values,
+and make Irssi::signal_emit/Irssi::signal_continue use it. Also make
+perl_call_signal() turn NULLs into undef, so we can recover them in
+perl_signal_args_to_c(), which is its inverse operation.
+Patch by Lukas Mai.
+
+------------------------------------------------------------------------
+r4952 | exg | 2008-12-08 15:45:49 +0000 (Mon, 08 Dec 2008) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/perl/get-signals.pl
+
+Fix NETSPLIT_SERVER_REC substitution in get-signals.pl, reported by Lukas Mai.
+
+------------------------------------------------------------------------
+r4951 | exg | 2008-12-08 15:39:12 +0000 (Mon, 08 Dec 2008) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/perl/get-signals.pl
+
+Change get-signals.pl mime type to text/x-perl.
+
+------------------------------------------------------------------------
+r4950 | exg | 2008-12-07 23:30:00 +0000 (Sun, 07 Dec 2008) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/keyboard.c
+
+Simplify, isalnum && !isdigit == isalpha.
+
+------------------------------------------------------------------------
+r4949 | exg | 2008-12-07 15:49:04 +0000 (Sun, 07 Dec 2008) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/mainwindows.c
+
+Simplify and remove dead code.
+
+------------------------------------------------------------------------
+r4948 | exg | 2008-12-06 17:02:27 +0000 (Sat, 06 Dec 2008) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/mainwindows.c
+
+Simplify and remove dead code, MAIN_WINDOW_TEXT_HEIGHT(rec) >= WINDOW_MIN_SIZE
+always holds.
+
+------------------------------------------------------------------------
+r4947 | exg | 2008-12-06 12:36:41 +0000 (Sat, 06 Dec 2008) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/mainwindows.c
+
+Always preserve the active mainwindow in mainwindows_resize_smaller,
+prompted by report by Henri Kemppainen.
+
+------------------------------------------------------------------------
+r4946 | exg | 2008-12-06 12:29:51 +0000 (Sat, 06 Dec 2008) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/mainwindows.c
+
+Fix leak introduced in r1855.
+
+------------------------------------------------------------------------
+r4945 | jilles | 2008-12-06 00:14:19 +0000 (Sat, 06 Dec 2008) | 2 lines
+Changed paths:
+   M /irssi/trunk/docs/perl.txt
+
+Add brief documentation for Irssi::signal_register() perl function.
+
+------------------------------------------------------------------------
+r4944 | jilles | 2008-12-05 23:59:49 +0000 (Fri, 05 Dec 2008) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/perl/get-signals.pl
+
+Add a notice to src/perl/perl-signals-list.h that it is autogenerated.
+
+------------------------------------------------------------------------
+r4943 | exg | 2008-12-05 13:55:23 +0000 (Fri, 05 Dec 2008) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/term-terminfo.c
+
+Factor computation of fg/bg.
+
+------------------------------------------------------------------------
+r4942 | exg | 2008-12-03 20:14:58 +0000 (Wed, 03 Dec 2008) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/gui-entry.c
+
+Manually inline cell_width.
+
+------------------------------------------------------------------------
+r4941 | exg | 2008-12-03 19:09:54 +0000 (Wed, 03 Dec 2008) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/gui-entry.c
+
+Simplify.
+
+------------------------------------------------------------------------
+r4940 | exg | 2008-12-02 16:13:15 +0000 (Tue, 02 Dec 2008) | 2 lines
+Changed paths:
+   M /irssi/trunk/NEWS
+   M /irssi/trunk/src/irc/core/irc-servers.c
+
+Recode outgoing irc quit messages.
+
+------------------------------------------------------------------------
+r4939 | exg | 2008-12-02 13:14:09 +0000 (Tue, 02 Dec 2008) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/formats.h
+
+Fix r1569, assign a proper mask to PRINT_FLAG_UNSET_LINE_START.
+
+------------------------------------------------------------------------
+r4938 | exg | 2008-12-01 19:29:41 +0000 (Mon, 01 Dec 2008) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/settings.c
+
+Aux-sort settings by key in settings_get_sorted.
+
+------------------------------------------------------------------------
+r4937 | exg | 2008-12-01 18:35:10 +0000 (Mon, 01 Dec 2008) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/fe-irc-commands.c
+   M /irssi/trunk/src/irc/core/irc-servers.c
+   M /irssi/trunk/src/irc/core/irc-servers.h
+
+Factor the code to send an irc action into a function.
+
+------------------------------------------------------------------------
+r4936 | exg | 2008-12-01 18:18:59 +0000 (Mon, 01 Dec 2008) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/statusbar-item.h
+   M /irssi/trunk/src/fe-text/statusbar.c
+
+Add function to set minimum/maximum size for a statusbar item.
+
+------------------------------------------------------------------------
+r4935 | exg | 2008-12-01 18:12:52 +0000 (Mon, 01 Dec 2008) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/Makefile.am
+   A /irssi/trunk/src/fe-text/statusbar-item.h
+   M /irssi/trunk/src/fe-text/statusbar.h
+
+Add public header with interfaces to manage statusbar items, bug #535.
+
+------------------------------------------------------------------------
+r4934 | exg | 2008-11-30 23:14:43 +0000 (Sun, 30 Nov 2008) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/statusbar.c
+
+Simplify statusbar_item_default_handler by merging update_statusbar_bg and
+reverse_controls and by using a GString.
+
+------------------------------------------------------------------------
+r4933 | jilles | 2008-11-30 22:48:39 +0000 (Sun, 30 Nov 2008) | 5 lines
+Changed paths:
+   M /irssi/trunk/src/core/network-openssl.c
+
+Improve SSL error display.
+
+Display more detailed error messages about SSL and
+fix assertion failure warnings on some SSL errors.
+
+------------------------------------------------------------------------
+r4932 | exg | 2008-11-30 14:48:54 +0000 (Sun, 30 Nov 2008) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/log.c
+
+Make needlessly global variable local where used.
+
+------------------------------------------------------------------------
+r4931 | exg | 2008-11-30 14:33:14 +0000 (Sun, 30 Nov 2008) | 2 lines
+Changed paths:
+   M /irssi/trunk/configure.in
+   M /irssi/trunk/src/core/log.c
+
+Do not check for fcntl.
+
+------------------------------------------------------------------------
+r4930 | jilles | 2008-11-29 19:38:00 +0000 (Sat, 29 Nov 2008) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/irc-servers.h
+
+Revert r4924, the comment is correct after all.
+
+------------------------------------------------------------------------
+r4929 | exg | 2008-11-29 18:01:04 +0000 (Sat, 29 Nov 2008) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/irc-servers.c
+
+Remove obsolete part of comment.
+
+------------------------------------------------------------------------
+r4928 | exg | 2008-11-29 10:45:58 +0000 (Sat, 29 Nov 2008) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/core/recode.c
+
+Amend fix for bug #392, assume utf-8 encoding for an ascii string in
+which no escape character occurs.
+
+------------------------------------------------------------------------
+r4927 | exg | 2008-11-29 08:31:42 +0000 (Sat, 29 Nov 2008) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/formats.c
+
+Fix r4920 change.
+
+------------------------------------------------------------------------
+r4926 | exg | 2008-11-28 23:01:45 +0000 (Fri, 28 Nov 2008) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/recode.c
+
+Factor code to check if a string is ascii only into a function.
+
+------------------------------------------------------------------------
+r4925 | jilles | 2008-11-28 20:43:59 +0000 (Fri, 28 Nov 2008) | 7 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/fe-irc-commands.c
+   M /irssi/trunk/src/irc/core/bans.c
+   M /irssi/trunk/src/irc/core/irc-commands.c
+
+Allow /ban, /unban, /kickban, /knockout if channel is not synced.
+
+Requesting ban lists from an unsynced channel will ask
+them from the server, banning a user whose u@h irssi
+does not know will ban nick!*@* and only bans irssi
+knows about can be removed.
+
+------------------------------------------------------------------------
+r4924 | jilles | 2008-11-28 18:49:31 +0000 (Fri, 28 Nov 2008) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/irc-servers.h
+
+Remove obsolete/wrong part of comment (irc server cmdcount).
+
+------------------------------------------------------------------------
+r4923 | exg | 2008-11-28 09:54:23 +0000 (Fri, 28 Nov 2008) | 2 lines
+Changed paths:
+   M /irssi/trunk/NEWS
+
+Update NEWS.
+
+------------------------------------------------------------------------
+r4922 | jilles | 2008-11-28 00:16:51 +0000 (Fri, 28 Nov 2008) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/core/nick-rec.h
+   M /irssi/trunk/src/core/nicklist.c
+   M /irssi/trunk/src/core/nicklist.h
+   M /irssi/trunk/src/core/session.c
+   M /irssi/trunk/src/fe-common/core/fe-channels.c
+   M /irssi/trunk/src/fe-common/core/fe-messages.c
+   M /irssi/trunk/src/irc/core/irc-expandos.c
+   M /irssi/trunk/src/irc/core/irc-nicklist.c
+   M /irssi/trunk/src/irc/core/irc-session.c
+   M /irssi/trunk/src/irc/core/modes.c
+   M /irssi/trunk/src/irc/core/modes.h
+   M /irssi/trunk/src/irc/core/netsplit.c
+   M /irssi/trunk/src/irc/core/netsplit.h
+   M /irssi/trunk/src/irc/proxy/dump.c
+   M /irssi/trunk/src/perl/perl-common.c
+
+Allow storing multiple "other" prefixes such as +q and +a.
+Original patch by JasonX, somewhat changed by exg and me.
+
+------------------------------------------------------------------------
+r4921 | exg | 2008-11-24 23:44:50 +0000 (Mon, 24 Nov 2008) | 2 lines
+Changed paths:
+   M /irssi/trunk/configure.in
+
+Add foreign to automake options.
+
+------------------------------------------------------------------------
+r4920 | exg | 2008-11-24 23:22:44 +0000 (Mon, 24 Nov 2008) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/formats.c
+
+Do not strip the comma in a mirc color if it is not followed by a digit, bug
+#250.
+
+------------------------------------------------------------------------
+r4919 | exg | 2008-11-23 09:48:48 +0000 (Sun, 23 Nov 2008) | 4 lines
+Changed paths:
+   M /irssi/trunk/configure.in
+   M /irssi/trunk/src/perl/Makefile.am
+   D /irssi/trunk/src/perl/libperl_dynaloader.la
+   D /irssi/trunk/src/perl/libperl_orig.la
+
+Remove apparently useless indirection through stub libtool library
+files for libperl.a and DynaLoader.a when building perl support as
+module.
+
+------------------------------------------------------------------------
+r4918 | Geert | 2008-11-22 12:43:39 +0000 (Sat, 22 Nov 2008) | 2 lines
+Changed paths:
+   M /irssi/trunk/docs/help/in/lastlog.in
+
+Typo fix by Richard Hartmann (RichiH)
+
+------------------------------------------------------------------------
+r4917 | exg | 2008-11-18 09:59:54 +0000 (Tue, 18 Nov 2008) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/gui-entry.c
+
+Move check on term_type outside of strlen_big5.
+
+------------------------------------------------------------------------
+r4916 | exg | 2008-11-18 09:21:36 +0000 (Tue, 18 Nov 2008) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/gui-readline.c
+
+Revert r4912.
+
+------------------------------------------------------------------------
+r4915 | exg | 2008-11-16 16:28:09 +0000 (Sun, 16 Nov 2008) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/fe-irc-messages.c
+
+Do not call skip_target on a non irc server in irc 'own_public'
+handler, based on a patch by Gabor Adam Toth.
+
+------------------------------------------------------------------------
+r4914 | exg | 2008-11-16 16:09:44 +0000 (Sun, 16 Nov 2008) | 6 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/irc-commands.c
+
+Do not check in irc cmd_away that the active item server is an irc
+server, it prevents /away from working when the active item server is
+not an irc one. The check is already performed in
+irc_server_send_away, so /away -one is unchanged. Patch by Gabor Adam
+Toth.
+
+------------------------------------------------------------------------
+r4913 | exg | 2008-11-16 15:38:33 +0000 (Sun, 16 Nov 2008) | 3 lines
+Changed paths:
+   M /irssi/trunk/irssi-version.sh
+
+Fix regression introduced in r4906, remove leading zeros from
+IRSSI_VERSION_TIME value.
+
+------------------------------------------------------------------------
+r4912 | exg | 2008-11-16 09:19:27 +0000 (Sun, 16 Nov 2008) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/gui-readline.c
+
+Simplify sending of the first pasted line.
+
+------------------------------------------------------------------------
+r4911 | coekie | 2008-11-15 22:07:31 +0000 (Sat, 15 Nov 2008) | 1 line
+Changed paths:
+   M /irssi/trunk/NEWS
+
+Update NEWS
+------------------------------------------------------------------------
+r4910 | coekie | 2008-11-15 22:04:57 +0000 (Sat, 15 Nov 2008) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/textbuffer.c
+
+Handle indent in textbuffer_line2text. This fixes indentation in /lastlog and buf.pl.
+
+------------------------------------------------------------------------
+r4909 | exg | 2008-11-15 21:51:07 +0000 (Sat, 15 Nov 2008) | 5 lines
+Changed paths:
+   M /irssi/trunk/NEWS
+   M /irssi/trunk/src/fe-common/core/formats.c
+   M /irssi/trunk/src/fe-text/term-terminfo.c
+   M /irssi/trunk/src/fe-text/term.h
+   M /irssi/trunk/src/fe-text/textbuffer-view.c
+   M /irssi/trunk/src/fe-text/textbuffer.c
+   M /irssi/trunk/src/fe-text/textbuffer.h
+
+Handle bold/blink attributes like other attributes rather than mapping them to
+the eighth bit of the color. The formats KBGCRMYW and the mirc colors are now
+mapped to colors 8-15. fe-text translates colors 8-15 to bold/blink+0-7 if the
+terminal supports only 8 colors.
+
+------------------------------------------------------------------------
+r4908 | exg | 2008-11-15 16:47:31 +0000 (Sat, 15 Nov 2008) | 2 lines
+Changed paths:
+   M /irssi/trunk/Makefile.am
+
+Do not update the version file if it is unchanged.
+
+------------------------------------------------------------------------
+r4907 | coekie | 2008-11-15 16:44:20 +0000 (Sat, 15 Nov 2008) | 1 line
+Changed paths:
+   M /irssi/trunk/scripts/Makefile.am
+
+Add sb_search.pl in Makefile.am
+------------------------------------------------------------------------
+r4906 | exg | 2008-11-13 23:35:48 +0000 (Thu, 13 Nov 2008) | 3 lines
+Changed paths:
+   M /irssi/trunk/Makefile.am
+   M /irssi/trunk/autogen.sh
+   M /irssi/trunk/configure.in
+   D /irssi/trunk/irssi-version.h.in
+   A /irssi/trunk/irssi-version.sh
+
+Move irssi-version.h generation out of configure and add suport for getting the
+date of the last change with svn info/git log.
+
+------------------------------------------------------------------------
+r4905 | exg | 2008-11-13 10:22:35 +0000 (Thu, 13 Nov 2008) | 2 lines
+Changed paths:
+   M /irssi/trunk/Makefile.am
+   D /irssi/trunk/findsyntax.pl
+   M /irssi/trunk/syntax.pl
+
+Merge findsyntax.pl in syntax.pl.
+
+------------------------------------------------------------------------
+r4904 | exg | 2008-11-12 23:13:57 +0000 (Wed, 12 Nov 2008) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/lib-config/write.c
+
+Simplify, use 'o' printf conversion specifier to print number in octal.
+
+------------------------------------------------------------------------
+r4903 | jilles | 2008-11-12 21:47:21 +0000 (Wed, 12 Nov 2008) | 2 lines
+Changed paths:
+   M /irssi/trunk/docs/help/in/wall.in
+
+Remove reference to wallchops.
+
+------------------------------------------------------------------------
+r4902 | jilles | 2008-11-12 21:00:05 +0000 (Wed, 12 Nov 2008) | 9 lines
+Changed paths:
+   M /irssi/trunk/docs/help/in/wall.in
+   D /irssi/trunk/docs/help/in/wallchops.in
+   M /irssi/trunk/src/fe-common/irc/fe-irc-commands.c
+   M /irssi/trunk/src/irc/core/irc-commands.c
+
+Remove /wallchops, do not suggest other commands in /help wall.
+
+The only major ircd supporting /wallchops also supports
+/notice @#channel.
+
+The /wall command has used /notice @#channel (if it is
+supported which is pretty much everywhere) for a while
+and so it can be used without problems on large channels.
+
+------------------------------------------------------------------------
+r4901 | exg | 2008-11-12 20:49:48 +0000 (Wed, 12 Nov 2008) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/irc-servers.c
+
+Recode outgoing irc away messages, bug #412.
+
+------------------------------------------------------------------------
+r4900 | exg | 2008-11-12 20:31:41 +0000 (Wed, 12 Nov 2008) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/irc-commands.c
+   M /irssi/trunk/src/irc/core/irc-servers-reconnect.c
+   M /irssi/trunk/src/irc/core/irc-servers.c
+   M /irssi/trunk/src/irc/core/irc-servers.h
+
+Export server_send_away and use it in irc-servers-reconnect.c:sig_connected
+instead of duplicating the code.
+
+------------------------------------------------------------------------
+r4899 | coekie | 2008-11-12 19:04:17 +0000 (Wed, 12 Nov 2008) | 2 lines
+Changed paths:
+   A /irssi/trunk/scripts/sb_search.pl
+
+Add script for /scrollback search
+
+------------------------------------------------------------------------
+r4898 | exg | 2008-11-12 18:04:39 +0000 (Wed, 12 Nov 2008) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/perl/irssi-core.pl
+
+Add perl __WARN__ handler for scripts, bug #427.
+
+------------------------------------------------------------------------
+r4897 | exg | 2008-11-11 23:49:59 +0000 (Tue, 11 Nov 2008) | 2 lines
+Changed paths:
+   M /irssi/trunk/docs/perl.txt
+
+Fix punctuation.
+
+------------------------------------------------------------------------
+r4896 | exg | 2008-11-11 23:33:47 +0000 (Tue, 11 Nov 2008) | 3 lines
+Changed paths:
+   M /irssi/trunk/docs/perl.txt
+   M /irssi/trunk/src/perl/common/Core.xs
+
+Add Irssi::command_parse_options function to parse options for a command which
+have been set with Irssi::command_set_options.
+
+------------------------------------------------------------------------
+r4895 | exg | 2008-11-11 18:16:24 +0000 (Tue, 11 Nov 2008) | 2 lines
+Changed paths:
+   M /irssi/trunk/docs/perl.txt
+
+Fix broken url.
+
+------------------------------------------------------------------------
+r4894 | exg | 2008-11-11 14:28:55 +0000 (Tue, 11 Nov 2008) | 2 lines
+Changed paths:
+   M /irssi/trunk/docs/perl.txt
+
+Fix typo.
+
+------------------------------------------------------------------------
+r4893 | exg | 2008-11-10 11:59:31 +0000 (Mon, 10 Nov 2008) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/utf8.c
+   M /irssi/trunk/src/fe-common/core/utf8.h
+   M /irssi/trunk/src/fe-text/gui-readline.c
+   M /irssi/trunk/src/fe-text/term-terminfo.c
+
+Remove get_utf8_char/utf16_char_to_utf8 in favour of glib
+g_utf8_get_char_validated/g_unichar_to_utf8.
+
+------------------------------------------------------------------------
+r4892 | exg | 2008-11-10 00:31:00 +0000 (Mon, 10 Nov 2008) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/chat-commands.c
+   M /irssi/trunk/src/fe-common/core/fe-messages.c
+   M /irssi/trunk/src/irc/core/irc-servers.c
+
+recode.h include fixup.
+
+------------------------------------------------------------------------
+r4891 | exg | 2008-11-09 23:53:40 +0000 (Sun, 09 Nov 2008) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/dcc/fe-dcc-chat-messages.c
+   M /irssi/trunk/src/fe-common/irc/fe-irc-commands.c
+   M /irssi/trunk/src/fe-common/irc/fe-irc-messages.c
+
+Emit message irc own_{action,notice,wall} and message dcc own{,_action} with
+message in client encoding.
+
+------------------------------------------------------------------------
+r4890 | exg | 2008-11-09 23:33:24 +0000 (Sun, 09 Nov 2008) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/core/chat-commands.c
+   M /irssi/trunk/src/fe-common/core/fe-messages.c
+   M /irssi/trunk/src/fe-common/irc/fe-irc-messages.c
+   M /irssi/trunk/src/irc/core/irc-servers.c
+
+Move recoding of outgoing messages into irc send_message routine. Handlers for
+message own_{private,public} now receive the message in the client encoding.
+
+------------------------------------------------------------------------
+r4889 | exg | 2008-11-09 23:06:37 +0000 (Sun, 09 Nov 2008) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-messages.c
+   M /irssi/trunk/src/fe-common/irc/fe-events.c
+
+Move recoding of incoming quit messages to irc 'event quit' handler.
+
+------------------------------------------------------------------------
+r4888 | exg | 2008-11-09 19:37:25 +0000 (Sun, 09 Nov 2008) | 4 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/fe-irc-messages.c
+
+Revert part of r4041. It is not clear which bug it is supposed to fix, and the
+change seems wrong anyway because notice/action message is already recoded in
+fe-events.c:event_notice/ctcp_action.
+
+------------------------------------------------------------------------
+r4887 | exg | 2008-11-08 22:09:20 +0000 (Sat, 08 Nov 2008) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/irc-commands.c
+
+Recode a WALL message also when sending a notice to @#channel.
+
+------------------------------------------------------------------------
+r4886 | exg | 2008-11-04 23:04:41 +0000 (Tue, 04 Nov 2008) | 2 lines
+Changed paths:
+   M /irssi/trunk/autogen.sh
+
+Fix r4880 change.
+
+------------------------------------------------------------------------
+r4885 | exg | 2008-11-04 14:05:57 +0000 (Tue, 04 Nov 2008) | 4 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-messages.c
+
+Recode an incoming quit message once with a nick charset preference rather than
+doing it for every joined channel the user was in with a channel charset
+preference.
+
+------------------------------------------------------------------------
+r4884 | exg | 2008-11-02 14:49:48 +0000 (Sun, 02 Nov 2008) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/core/network-openssl.c
+
+When returning G_IO_STATUS_ERROR in irssi_ssl_{read,write} create a GError with
+the openssl error string.
+
+------------------------------------------------------------------------
+r4883 | exg | 2008-11-02 14:02:00 +0000 (Sun, 02 Nov 2008) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/core/network-openssl.c
+
+Cleanup error handling in irssi_ssl_{read,write}. Return G_IO_STATUS_AGAIN if
+openssl error is SSL_WANT_{READ,WRITE}, G_IO_STATUS_ERROR otherwise.
+
+------------------------------------------------------------------------
+r4882 | c0ffee | 2008-11-02 12:13:36 +0000 (Sun, 02 Nov 2008) | 4 lines
+Changed paths:
+   M /irssi/trunk/NEWS
+   M /irssi/trunk/docs/perl.txt
+   M /irssi/trunk/docs/signals.txt
+   M /irssi/trunk/src/irc/proxy/Makefile.am
+   M /irssi/trunk/src/irc/proxy/listen.c
+   M /irssi/trunk/src/irc/proxy/module.h
+   A /irssi/trunk/src/irc/proxy/proxy.h
+   M /irssi/trunk/src/perl/Makefile.am
+   M /irssi/trunk/src/perl/get-signals.pl
+   A /irssi/trunk/src/perl/irc/Client.xs
+   M /irssi/trunk/src/perl/irc/Irc.xs
+   M /irssi/trunk/src/perl/irc/module.h
+   M /irssi/trunk/src/perl/irc/typemap
+
+introduce the type Irssi::Irc::Client and signals to communicate with proxy 
+clients to allow for scripting parts of the irssi-proxy.
+
+
+------------------------------------------------------------------------
+r4881 | exg | 2008-11-02 07:34:35 +0000 (Sun, 02 Nov 2008) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/perl/textui/TextUI.xs
+
+Fix r4879 change.
+
+------------------------------------------------------------------------
+r4880 | exg | 2008-11-01 23:50:58 +0000 (Sat, 01 Nov 2008) | 2 lines
+Changed paths:
+   M /irssi/trunk/autogen.sh
+   A /irssi/trunk/update-changelog.sh
+
+Factor the code to update svn changelog into a script.
+
+------------------------------------------------------------------------
+r4879 | jilles | 2008-11-01 17:56:56 +0000 (Sat, 01 Nov 2008) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/lastlog.c
+   M /irssi/trunk/src/fe-text/textbuffer.c
+   M /irssi/trunk/src/fe-text/textbuffer.h
+   M /irssi/trunk/src/perl/textui/TextBuffer.xs
+
+Remove the refcount on LINE_REC.
+It seems to have no clear purpose.
+
+------------------------------------------------------------------------
+r4878 | jilles | 2008-10-31 10:57:32 +0000 (Fri, 31 Oct 2008) | 4 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/lastlog.c
+
+Fix a memory leak with /lastlog -count and rejected (too much) /lastlog.
+The matched lines would not be freed when they expired
+from the buffer.
+
+------------------------------------------------------------------------
+r4877 | jilles | 2008-10-28 17:29:49 +0000 (Tue, 28 Oct 2008) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/fe-events-numeric.c
+
+Also display 407 numerics that are not "duplicate channel".
+
+------------------------------------------------------------------------
+r4876 | exg | 2008-10-21 11:09:51 +0000 (Tue, 21 Oct 2008) | 3 lines
+Changed paths:
+   M /irssi/trunk/docs/help/in/scrollback.in
+   M /irssi/trunk/src/fe-text/textbuffer-commands.c
+
+Remove scrollback_levelclear_levels setting and add a 'level' option to
+'sb levelclear' to specify a comma separated list of levels.
+
+------------------------------------------------------------------------
+r4875 | exg | 2008-10-08 22:58:27 +0000 (Wed, 08 Oct 2008) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/textbuffer-view.c
+
+Fix r4743 change, avoid sign extension.
+
+------------------------------------------------------------------------
+r4874 | jilles | 2008-08-30 23:55:04 +0000 (Sat, 30 Aug 2008) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/irc-commands.c
+
+Fix display of ratbox-style operspy whois (/whois !nick).
+
+------------------------------------------------------------------------
+r4873 | jilles | 2008-08-25 16:34:02 +0000 (Mon, 25 Aug 2008) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/core/servers-reconnect.c
+
+Ignore DNS not found errors when considering reconnect.
+Contrary to the standards, these are often transient.
+
+------------------------------------------------------------------------
+r4872 | jilles | 2008-08-23 16:05:47 +0000 (Sat, 23 Aug 2008) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/perl/perl-core.c
+
+Fix crash on startup if perl is compiled in.
+bug #618
+
+------------------------------------------------------------------------
+r4871 | exg | 2008-08-22 11:54:32 +0000 (Fri, 22 Aug 2008) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/perl/perl-core.c
+
+Call PERL_SYS_INIT3() and PERL_SYS_TERM() as documented in perlembed(1), patch
+by Gerfried Fuchs (debian bug #495059).
+
+------------------------------------------------------------------------
+r4870 | exg | 2008-08-22 11:47:21 +0000 (Fri, 22 Aug 2008) | 2 lines
+Changed paths:
+   D /irssi/trunk/docs/help/in/date.in
+
+Remove duplicated help file.
+
+------------------------------------------------------------------------
+r4869 | exg | 2008-08-06 09:43:40 +0000 (Wed, 06 Aug 2008) | 2 lines
+Changed paths:
+   M /irssi/trunk/NEWS
+
+Update NEWS.
+
+------------------------------------------------------------------------
+r4868 | jilles | 2008-08-06 00:47:59 +0000 (Wed, 06 Aug 2008) | 2 lines
+Changed paths:
+   M /irssi/trunk/NEWS
+
+Add some changes of mine to NEWS.
+
+------------------------------------------------------------------------
+r4867 | exg | 2008-08-02 13:15:38 +0000 (Sat, 02 Aug 2008) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/chat-commands.c
+   M /irssi/trunk/src/fe-common/core/fe-messages.c
+   M /irssi/trunk/src/fe-common/irc/fe-events-numeric.c
+   M /irssi/trunk/src/fe-common/irc/fe-events.c
+   M /irssi/trunk/src/fe-common/irc/fe-irc-commands.c
+   M /irssi/trunk/src/fe-common/irc/fe-irc-messages.c
+   M /irssi/trunk/src/fe-common/irc/fe-whois.c
+   M /irssi/trunk/src/irc/core/channel-events.c
+   M /irssi/trunk/src/irc/core/irc-commands.c
+   M /irssi/trunk/src/irc/core/irc.c
+
+Revert recode changes r4483 and r4715.
+
+------------------------------------------------------------------------
+r4866 | exg | 2008-08-01 12:38:58 +0000 (Fri, 01 Aug 2008) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-common-core.c
+   M /irssi/trunk/src/fe-common/core/fe-core-commands.c
+   M /irssi/trunk/src/fe-common/core/fe-help.c
+
+Set null encoding for file channels.
+
+------------------------------------------------------------------------
+r4865 | exg | 2008-08-01 12:27:37 +0000 (Fri, 01 Aug 2008) | 2 lines
+Changed paths:
+   M /irssi/trunk/docs/help/in/network.in
+   M /irssi/trunk/docs/help/in/server.in
+   M /irssi/trunk/docs/manual.txt
+
+Fix typos.
+
+------------------------------------------------------------------------
+r4864 | jilles | 2008-06-19 21:57:52 +0000 (Thu, 19 Jun 2008) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/textbuffer-commands.c
+
+Include various overheads in /sb status memory count.
+Overheads caused by the "view" cache are not included.
+
+------------------------------------------------------------------------
+r4863 | Geert | 2008-06-18 21:52:36 +0000 (Wed, 18 Jun 2008) | 4 lines
+Changed paths:
+   M /irssi/trunk/irssi.conf
+
+Updated irssi.conf
+- Added new networks: Rizon, GameSurge, LinkNet, WebChat, OFTC
+- Changed the default IPv6 and IPv4 IRCnet servers
+
+------------------------------------------------------------------------
+r4862 | exg | 2008-06-10 22:49:00 +0000 (Tue, 10 Jun 2008) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/core/recode.c
+   M /irssi/trunk/src/core/recode.h
+   M /irssi/trunk/src/fe-common/core/fe-recode.c
+
+Cache charset related data rather than computing it everytime recode_{in,out}
+is called.
+
+------------------------------------------------------------------------
+r4861 | exg | 2008-06-10 10:49:25 +0000 (Tue, 10 Jun 2008) | 2 lines
+Changed paths:
+   M /irssi/trunk/docs/startup-HOWTO-rus.html
+   M /irssi/trunk/docs/startup-HOWTO.html
+
+s/nickserv ident/nickserv identify/
+
+------------------------------------------------------------------------
+r4860 | exg | 2008-06-10 10:21:00 +0000 (Tue, 10 Jun 2008) | 2 lines
+Changed paths:
+   M /irssi/trunk/NEWS
+   M /irssi/trunk/src/fe-text/statusbar-items.c
+
+Add 'actlist_names' option to add active items names in 'act' statusbar item.
+
+------------------------------------------------------------------------
+r4859 | exg | 2008-06-06 22:19:57 +0000 (Fri, 06 Jun 2008) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-recode.c
+
+Pass NULL to settings_set_str to reset term_charset to its default
+value rather than hardcoding the string.
+
+------------------------------------------------------------------------
+r4858 | exg | 2008-06-06 22:07:56 +0000 (Fri, 06 Jun 2008) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-recode.c
+
+Remove kludge and add the 'setup changed' handler with higher priority
+so that term_charset validation is performed before any use.
+
+------------------------------------------------------------------------
+r4857 | coekie | 2008-06-04 19:33:00 +0000 (Wed, 04 Jun 2008) | 2 lines
+Changed paths:
+   M /irssi/trunk/NEWS
+   M /irssi/trunk/src/fe-common/core/hilight-text.c
+
+Fix /set hilight_level not taking effect immediately (bug #598). Patch by exg.
+
+------------------------------------------------------------------------
+r4854 | exg | 2008-05-31 13:18:43 +0000 (Sat, 31 May 2008) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/hilight-text.c
+
+Simplify, append directly to GString rather than allocating a
+temporary string.
+
+------------------------------------------------------------------------
+r4853 | jilles | 2008-05-30 23:17:37 +0000 (Fri, 30 May 2008) | 7 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/textbuffer.h
+
+Reduce some memory waste in the scrollback buffer.
+Formerly, TEXT_CHUNK_REC was slightly more than a page.
+Due to glib changes (GMemChunk -> GSlice), this is now
+malloced directly, and many mallocs round up allocations
+larger than a page to page boundaries.
+On a whole this seems to save about 10%.
+
+------------------------------------------------------------------------
+r4852 | exg | 2008-05-27 18:20:23 +0000 (Tue, 27 May 2008) | 2 lines
+Changed paths:
+   M /irssi/trunk/docs/signals.txt
+
+Fix typo.
+
+------------------------------------------------------------------------
+r4851 | exg | 2008-05-27 18:19:34 +0000 (Tue, 27 May 2008) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/mainwindow-activity.c
+
+Fix leak.
+
+------------------------------------------------------------------------
+r4849 | jilles | 2008-05-24 20:55:27 +0000 (Sat, 24 May 2008) | 4 lines
+Changed paths:
+   M /irssi/trunk/src/core/net-sendbuffer.c
+
+Read more bytes at a time from servers.
+(at most 2048 instead of 512)
+This should reduce syscalls and TCP packets.
+
+------------------------------------------------------------------------
+r4848 | exg | 2008-05-24 15:43:12 +0000 (Sat, 24 May 2008) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/channel-events.c
+
+Cosmetic.
+
+------------------------------------------------------------------------
+r4847 | exg | 2008-05-23 11:19:43 +0000 (Fri, 23 May 2008) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/themes.c
+
+Fix minor leak.
+
+------------------------------------------------------------------------
+r4846 | exg | 2008-05-23 10:05:44 +0000 (Fri, 23 May 2008) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/irc.c
+
+Reindent.
+
+------------------------------------------------------------------------
+r4845 | exg | 2008-05-23 09:59:59 +0000 (Fri, 23 May 2008) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/completion.c
+   M /irssi/trunk/src/fe-common/core/fe-messages.c
+   M /irssi/trunk/src/fe-common/core/keyboard.c
+   M /irssi/trunk/src/irc/core/irc.c
+
+Fix leaks.
+
+------------------------------------------------------------------------
+r4844 | exg | 2008-05-23 09:47:40 +0000 (Fri, 23 May 2008) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/completion.c
+
+Do nothing in word_complete if erase is true and we are not continuing
+a completion.
+
+------------------------------------------------------------------------
+r4843 | exg | 2008-05-23 07:51:10 +0000 (Fri, 23 May 2008) | 2 lines
+Changed paths:
+   M /irssi/trunk/NEWS
+
+Update NEWS.
+
+------------------------------------------------------------------------
+r4842 | exg | 2008-05-23 07:44:16 +0000 (Fri, 23 May 2008) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/keyboard.c
+
+Fix command description.
+
+------------------------------------------------------------------------
+r4841 | exg | 2008-05-22 22:38:29 +0000 (Thu, 22 May 2008) | 4 lines
+Changed paths:
+   M /irssi/trunk/src/core/net-sendbuffer.c
+   M /irssi/trunk/src/core/net-sendbuffer.h
+   M /irssi/trunk/src/core/server-rec.h
+   M /irssi/trunk/src/core/servers.c
+   M /irssi/trunk/src/irc/core/irc-servers.c
+   M /irssi/trunk/src/irc/core/irc.c
+   M /irssi/trunk/src/irc/dcc/dcc-chat.c
+   M /irssi/trunk/src/irc/dcc/dcc-chat.h
+   M /irssi/trunk/src/irc/dcc/dcc-server.c
+   M /irssi/trunk/src/irc/dcc/dcc-server.h
+   M /irssi/trunk/src/irc/proxy/listen.c
+   M /irssi/trunk/src/irc/proxy/module.h
+
+Extend net_sendbuffer by adding a LINEBUF_REC member and a net_sendbuffer_receive_line
+function to read linewise from the associated io channel.
+Rewrite irc/dcc/proxy read logic on top of it.
+
+------------------------------------------------------------------------
+r4840 | jilles | 2008-05-22 21:42:29 +0000 (Thu, 22 May 2008) | 4 lines
+Changed paths:
+   M /irssi/trunk/src/core/net-sendbuffer.c
+   M /irssi/trunk/src/core/net-sendbuffer.h
+
+Allow increasing the send buffer to 1MB/connection, and warn if that is exceeded.
+It should really close connections that exceed the
+limit, but does not do that yet.
+
+------------------------------------------------------------------------
+r4836 | exg | 2008-05-19 21:55:04 +0000 (Mon, 19 May 2008) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/dcc/fe-dcc-chat.c
+   M /irssi/trunk/src/irc/dcc/dcc-get.c
+
+Remove some global variables used to store settings values, instead get the
+values when needed.
+
+------------------------------------------------------------------------
+r4835 | exg | 2008-05-19 11:25:14 +0000 (Mon, 19 May 2008) | 3 lines
+Changed paths:
+   M /irssi/trunk/docs/help/in/bind.in
+   M /irssi/trunk/src/fe-common/core/keyboard.c
+   M /irssi/trunk/src/fe-common/core/module-formats.c
+   M /irssi/trunk/src/fe-common/core/module-formats.h
+
+Add 'list' option to bind command to list all the available commands and remove
+hardcoded list in bind help.
+
+------------------------------------------------------------------------
+r4834 | coekie | 2008-05-18 20:49:20 +0000 (Sun, 18 May 2008) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/gui-readline.c
+
+Improve descriptions of key bind items
+
+------------------------------------------------------------------------
+r4833 | exg | 2008-05-18 14:47:01 +0000 (Sun, 18 May 2008) | 2 lines
+Changed paths:
+   M /irssi/trunk/docs/help/in/flushbuffer.in
+
+Update option names after r3080.
+
+------------------------------------------------------------------------
+r4832 | exg | 2008-05-18 14:31:03 +0000 (Sun, 18 May 2008) | 2 lines
+Changed paths:
+   D /irssi/trunk/docs/help/in/flushbuffers.in
+
+Remove duplicated help file.
+
+------------------------------------------------------------------------
+r4831 | exg | 2008-05-18 14:03:35 +0000 (Sun, 18 May 2008) | 2 lines
+Changed paths:
+   M /irssi/trunk/docs/help/in/server.in
+
+Clarify the meaning of 'port' option for 'server add', patch by Dyana Wu.
+
+------------------------------------------------------------------------
+r4830 | exg | 2008-05-17 13:12:21 +0000 (Sat, 17 May 2008) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/completion.c
+   M /irssi/trunk/src/fe-common/core/completion.h
+   M /irssi/trunk/src/fe-text/gui-readline.c
+
+Add 'word_completion_backward' command to scroll backwards in the completion
+list, bug #313.
+
+------------------------------------------------------------------------
+r4829 | exg | 2008-05-17 09:42:23 +0000 (Sat, 17 May 2008) | 4 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-recode.c
+
+Pass NULL to settings_set_str to reset recode_fallback to its default
+value rather than hardcoding the string, fixes also a possible invalid
+g_free reported by Sven Wegener.
+
+------------------------------------------------------------------------
+r4828 | exg | 2008-05-16 12:46:09 +0000 (Fri, 16 May 2008) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/chat-completion.c
+
+Stop the 'complete word' signal in the default completer when the
+channel name completion list is non empty, bug #316.
+
+------------------------------------------------------------------------
+r4827 | exg | 2008-05-15 17:17:53 +0000 (Thu, 15 May 2008) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/chat-completion.c
+
+Complete server tags for /window server.
+
+------------------------------------------------------------------------
+r4826 | exg | 2008-05-15 16:54:01 +0000 (Thu, 15 May 2008) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/statusbar-items.c
+
+Use a GString rather than g_strdup_printf to build the format string.
+
+------------------------------------------------------------------------
+r4825 | exg | 2008-05-15 12:53:49 +0000 (Thu, 15 May 2008) | 2 lines
+Changed paths:
+   M /irssi/trunk/configure.in
+
+Do not check for mkfifo, it is not used.
+
+------------------------------------------------------------------------
+r4824 | exg | 2008-05-15 10:54:03 +0000 (Thu, 15 May 2008) | 4 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/statusbar-items.c
+
+Re-add sort by level / aux-sort by refnum and re-map actlist_sort
+'level' value to it. Add 'level,recent' value for sort by level /
+aux-sort by most recent activity. Requested by tomaw.
+
+------------------------------------------------------------------------
+r4823 | exg | 2008-05-14 09:13:04 +0000 (Wed, 14 May 2008) | 2 lines
+Changed paths:
+   M /irssi/trunk/configure.in
+
+Remove check for nl_langinfo, we do not use it anymore.
+
+------------------------------------------------------------------------
+r4822 | exg | 2008-05-14 09:11:31 +0000 (Wed, 14 May 2008) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/term.c
+
+Use g_get_charset to check if the locale codeset is UTF-8.
+
+------------------------------------------------------------------------
+r4821 | exg | 2008-05-14 08:58:04 +0000 (Wed, 14 May 2008) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-common-core.c
+   M /irssi/trunk/src/fe-common/core/fe-recode.c
+
+Use g_get_charset to retrieve the locale codeset.
+
+------------------------------------------------------------------------
+r4820 | exg | 2008-05-14 08:29:33 +0000 (Wed, 14 May 2008) | 2 lines
+Changed paths:
+   M /irssi/trunk/docs/signals.txt
+   M /irssi/trunk/src/fe-common/irc/notifylist/module-formats.c
+   M /irssi/trunk/src/fe-common/irc/notifylist/module-formats.h
+
+Remove theme format and signal doc for no more notify idle code.
+
+------------------------------------------------------------------------
+r4819 | exg | 2008-05-13 14:43:33 +0000 (Tue, 13 May 2008) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/perl/perl-sources.c
+
+Use g_input_add_poll to create a watcher for an fd.
+
+------------------------------------------------------------------------
+r4818 | exg | 2008-05-13 14:35:02 +0000 (Tue, 13 May 2008) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/module-formats.c
+
+Remove note about the need to restart irssi in windows_layout_saved
+theme format, bindings are instantly effective now.
+
+------------------------------------------------------------------------
+r4817 | exg | 2008-05-13 14:27:03 +0000 (Tue, 13 May 2008) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/perl/perl-core.c
+
+Set PL_perl_destruct_level to 1 before calling perl_destruct, without
+it /script reset may cause irssi to crash.
+
+------------------------------------------------------------------------
+r4816 | exg | 2008-05-12 23:46:33 +0000 (Mon, 12 May 2008) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/notifylist/module-formats.c
+
+Update notify_list theme format for idle option removal.
+
+------------------------------------------------------------------------
+r4815 | exg | 2008-04-28 22:35:31 +0000 (Mon, 28 Apr 2008) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/completion.c
+
+Make some functions static.
+
+------------------------------------------------------------------------
+r4814 | exg | 2008-04-28 09:27:13 +0000 (Mon, 28 Apr 2008) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/core.c
+   M /irssi/trunk/src/core/servers-setup.c
+   M /irssi/trunk/src/fe-common/core/fe-recode.c
+
+Make some variables static.
+
+------------------------------------------------------------------------
+r4813 | exg | 2008-04-25 08:42:47 +0000 (Fri, 25 Apr 2008) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/misc.c
+   M /irssi/trunk/src/core/misc.h
+   M /irssi/trunk/src/fe-text/gui-readline.c
+
+Refactor code to create a watcher for an fd into a function.
+
+------------------------------------------------------------------------
+r4812 | exg | 2008-04-21 20:44:04 +0000 (Mon, 21 Apr 2008) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/textbuffer-view.c
+
+Use term_add_unichar to print ucs-4 chars.
+
+------------------------------------------------------------------------
+r4811 | exg | 2008-04-21 20:23:17 +0000 (Mon, 21 Apr 2008) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/term-terminfo.c
+
+Reindent.
+
+------------------------------------------------------------------------
+r4810 | exg | 2008-04-21 17:32:55 +0000 (Mon, 21 Apr 2008) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/term-terminfo.c
+
+Remove no longer needed kludge to inhibit writing in the last cell.
+
+------------------------------------------------------------------------
+r4809 | exg | 2008-04-21 14:00:02 +0000 (Mon, 21 Apr 2008) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/gui-expandos.c
+
+Fix leak with $L expando.
+
+------------------------------------------------------------------------
+r4808 | exg | 2008-04-20 10:27:32 +0000 (Sun, 20 Apr 2008) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/term-terminfo.c
+
+Simplify.
+
+------------------------------------------------------------------------
+r4807 | exg | 2008-04-20 09:24:12 +0000 (Sun, 20 Apr 2008) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/terminfo-core.c
+
+Simplify computation of TERM_REC fields offsets using G_STRUCT_OFFSET/G_STRUCT_MEMBER_P.
+
+------------------------------------------------------------------------
+r4806 | exg | 2008-04-19 15:01:16 +0000 (Sat, 19 Apr 2008) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/term-curses.c
+   M /irssi/trunk/src/fe-text/term-terminfo.c
+   M /irssi/trunk/src/fe-text/term.c
+   M /irssi/trunk/src/fe-text/term.h
+
+Remove non-working detach/attach code.
+
+------------------------------------------------------------------------
+r4805 | exg | 2008-04-16 21:14:05 +0000 (Wed, 16 Apr 2008) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/gui-readline.c
+   M /irssi/trunk/src/fe-text/term-curses.c
+   M /irssi/trunk/src/fe-text/term-terminfo.c
+   M /irssi/trunk/src/fe-text/term.h
+
+Remove the need to buffer input by moving the 'gui key pressed' events
+generation into term_gets.
+
+------------------------------------------------------------------------
+r4804 | exg | 2008-04-16 20:32:36 +0000 (Wed, 16 Apr 2008) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/textbuffer.c
+   M /irssi/trunk/src/fe-text/textbuffer.h
+
+Make last_{fg,bg,flags} members of TEXT_BUFFER_REC.
+
+------------------------------------------------------------------------
+r4803 | exg | 2008-04-11 21:27:12 +0000 (Fri, 11 Apr 2008) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/modes.c
+
+Remove workaround no longer needed.
+
+------------------------------------------------------------------------
+r4802 | exg | 2008-04-08 13:02:56 +0000 (Tue, 08 Apr 2008) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/expandos.c
+
+Factor strchr call.
+
+------------------------------------------------------------------------
+r4801 | exg | 2008-04-06 19:19:46 +0000 (Sun, 06 Apr 2008) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/statusbar-items.c
+
+Slightly optimize update of activity list when a window is destroyed.
+
+------------------------------------------------------------------------
+r4800 | exg | 2008-04-06 19:07:38 +0000 (Sun, 06 Apr 2008) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/statusbar-items.c
+
+Really make actlist_sort = level match active_window ordering.
+
+------------------------------------------------------------------------
+r4799 | exg | 2008-04-05 17:07:37 +0000 (Sat, 05 Apr 2008) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/core/recode.c
+
+Partly revert r4796, it is not a bug but by design that
+recode_fallback is honored only when the terminal encoding is utf-8.
+
+------------------------------------------------------------------------
+r4798 | exg | 2008-04-05 14:09:01 +0000 (Sat, 05 Apr 2008) | 4 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/window-commands.c
+   M /irssi/trunk/src/fe-text/statusbar-items.c
+
+Restore the behaviour of active_window to go to the window with most recent activity 
+between the ones with highest data level, and make actlist_sort = level match this 
+ordering.
+
+------------------------------------------------------------------------
+r4797 | exg | 2008-04-05 13:11:22 +0000 (Sat, 05 Apr 2008) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/recode.c
+
+Cosmetics.
+
+------------------------------------------------------------------------
+r4796 | exg | 2008-04-05 13:07:26 +0000 (Sat, 05 Apr 2008) | 6 lines
+Changed paths:
+   M /irssi/trunk/src/core/recode.c
+
+Fix logic in recode_in:
+Honour recode_fallback also when the terminal encoding is not utf-8.
+Return the string as it is when the terminal encoding is utf-8, the
+string is valid utf-8, and the first conversion failed, rather than
+trying again the same conversion.
+
+------------------------------------------------------------------------
+r4795 | exg | 2008-04-04 08:41:44 +0000 (Fri, 04 Apr 2008) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/term-curses.c
+   M /irssi/trunk/src/fe-text/term-terminfo.c
+   M /irssi/trunk/src/fe-text/term.h
+   M /irssi/trunk/src/fe-text/terminfo-core.c
+   M /irssi/trunk/src/fe-text/terminfo-core.h
+
+Change type of 'chr' argument in terminfo_repeat/term_addch to 'char'.
+
+------------------------------------------------------------------------
+r4794 | exg | 2008-04-02 11:07:03 +0000 (Wed, 02 Apr 2008) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/core/line-split.c
+
+Always use g_realloc rather than using g_malloc when the pointer
+is NULL.
+
+------------------------------------------------------------------------
+r4793 | exg | 2008-03-31 21:55:12 +0000 (Mon, 31 Mar 2008) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/terminfo-core.c
+
+Print warning messages to stderr rather than to stdout.
+
+------------------------------------------------------------------------
+r4792 | exg | 2008-03-30 14:13:52 +0000 (Sun, 30 Mar 2008) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/network-openssl.c
+
+Set is_readable/is_writeable/use_buffer flags.
+
+------------------------------------------------------------------------
+r4791 | exg | 2008-03-30 14:05:39 +0000 (Sun, 30 Mar 2008) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/core/network-openssl.c
+
+Make irssi_ssl_{seek,close} call giochan->funcs->io_{seek,close}
+rather than g_io_channel_{seek,close}.
+
+------------------------------------------------------------------------
+r4790 | exg | 2008-03-30 13:53:33 +0000 (Sun, 30 Mar 2008) | 2 lines
+Changed paths:
+   M /irssi/trunk/TODO
+
+Add todo for gnutls.
+
+------------------------------------------------------------------------
+r4789 | exg | 2008-03-30 13:30:52 +0000 (Sun, 30 Mar 2008) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-common-core.c
+   M /irssi/trunk/src/fe-common/core/fe-core-commands.c
+   M /irssi/trunk/src/fe-common/core/fe-help.c
+
+Use g_io_channel_unref rather than g_io_channel_close for file
+channels.
+
+------------------------------------------------------------------------
+r4788 | exg | 2008-03-30 13:23:12 +0000 (Sun, 30 Mar 2008) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/line-split.c
+
+Implement linebuf_find using memchr.
+
+------------------------------------------------------------------------
+r4787 | exg | 2008-03-30 09:54:53 +0000 (Sun, 30 Mar 2008) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/line-split.c
+
+Remove useless assignment.
+
+------------------------------------------------------------------------
+r4786 | exg | 2008-03-30 09:42:24 +0000 (Sun, 30 Mar 2008) | 2 lines
+Changed paths:
+   M /irssi/trunk/servertest/Makefile.am
+
+Fix test server linking.
+
+------------------------------------------------------------------------
+r4785 | exg | 2008-03-29 18:15:34 +0000 (Sat, 29 Mar 2008) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/Makefile.am
+   D /irssi/trunk/src/fe-common/core/autorun.c
+   D /irssi/trunk/src/fe-common/core/autorun.h
+   M /irssi/trunk/src/fe-common/core/fe-common-core.c
+
+Move autorun_startup in fe-common-core.c and remove autorun.{c,h}.
+
+------------------------------------------------------------------------
+r4784 | exg | 2008-03-29 10:26:05 +0000 (Sat, 29 Mar 2008) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/misc.c
+
+Remove unneeded includes.
+
+------------------------------------------------------------------------
+r4783 | exg | 2008-03-29 10:25:15 +0000 (Sat, 29 Mar 2008) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/net-disconnect.h
+   M /irssi/trunk/src/core/network.h
+   M /irssi/trunk/src/core/servers.c
+
+Move net_disconnect_later declaration from network.h to net-disconnect.h.
+
+------------------------------------------------------------------------
+r4782 | exg | 2008-03-28 23:03:17 +0000 (Fri, 28 Mar 2008) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/network-openssl.c
+
+Use g_io_channel_seek_position in irssi_ssl_seek.
+
+------------------------------------------------------------------------
+r4781 | exg | 2008-03-28 18:30:26 +0000 (Fri, 28 Mar 2008) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-ignore.c
+   M /irssi/trunk/src/fe-common/core/hilight-text.c
+
+Remove useless uses of replace_chars.
+
+------------------------------------------------------------------------
+r4780 | exg | 2008-03-28 17:26:30 +0000 (Fri, 28 Mar 2008) | 2 lines
+Changed paths:
+   M /irssi/trunk/configure.in
+
+Do not abort if libtool static libraries are disabled.
+
+------------------------------------------------------------------------
+r4779 | exg | 2008-03-28 17:15:39 +0000 (Fri, 28 Mar 2008) | 2 lines
+Changed paths:
+   M /irssi/trunk/configure.in
+
+Simplify libtool/gmodule test.
+
+------------------------------------------------------------------------
+r4778 | exg | 2008-03-28 12:59:26 +0000 (Fri, 28 Mar 2008) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/misc.c
+   M /irssi/trunk/src/core/misc.h
+
+Make strstr_full_case internal.
+
+------------------------------------------------------------------------
+r4777 | exg | 2008-03-28 12:42:27 +0000 (Fri, 28 Mar 2008) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/textbuffer.c
+
+Move selection of string searching function out of the loop by using a
+function pointer.
+
+------------------------------------------------------------------------
+r4776 | exg | 2008-03-15 19:13:38 +0000 (Sat, 15 Mar 2008) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/servers-setup.c
+
+Remove unused global use_ssl and ssl_* settings.
+
+------------------------------------------------------------------------
+r4775 | exg | 2008-03-15 19:10:26 +0000 (Sat, 15 Mar 2008) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/commands.c
+
+Revert unrelated changes slipped in r4774.
+
+------------------------------------------------------------------------
+r4774 | exg | 2008-03-15 18:40:37 +0000 (Sat, 15 Mar 2008) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/commands.c
+
+Fix typo.
+
+------------------------------------------------------------------------
+r4773 | exg | 2008-03-15 14:51:06 +0000 (Sat, 15 Mar 2008) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/irc.c
+
+Simplify recode target computation.
+
+------------------------------------------------------------------------
+r4772 | exg | 2008-03-15 13:27:17 +0000 (Sat, 15 Mar 2008) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/core/levels.c
+   M /irssi/trunk/src/core/log.c
+
+Use g_ascii_str{,n}casecmp for case insensitive comparison with
+ascii only strings.
+
+------------------------------------------------------------------------
+r4771 | exg | 2008-03-15 13:19:41 +0000 (Sat, 15 Mar 2008) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-recode.c
+
+Replace tab between else and opening brace with space.
+
+------------------------------------------------------------------------
+r4770 | exg | 2008-03-15 13:02:55 +0000 (Sat, 15 Mar 2008) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-recode.c
+
+Remove silly macro.
+
+------------------------------------------------------------------------
+r4769 | exg | 2008-03-15 12:58:20 +0000 (Sat, 15 Mar 2008) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-recode.c
+
+Remove trailing whitespace.
+
+------------------------------------------------------------------------
+r4768 | exg | 2008-03-15 10:19:23 +0000 (Sat, 15 Mar 2008) | 2 lines
+Changed paths:
+   M /irssi/trunk/TODO
+
+Update.
+
+------------------------------------------------------------------------
+r4767 | exg | 2008-03-14 19:06:32 +0000 (Fri, 14 Mar 2008) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/irc-servers.c
+
+Replace missed strncasecmp calls with g_ascii_strncasecmp.
+
+------------------------------------------------------------------------
+r4766 | exg | 2008-03-14 18:57:58 +0000 (Fri, 14 Mar 2008) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/ignore.c
+
+Honour -channels preference for ignore -replies, fix bug #227.
+
+------------------------------------------------------------------------
+r4765 | exg | 2008-03-14 12:39:35 +0000 (Fri, 14 Mar 2008) | 2 lines
+Changed paths:
+   M /irssi/trunk/TODO
+   M /irssi/trunk/src/fe-common/core/windows-layout.c
+
+Make /layout reset take effect immediately.
+
+------------------------------------------------------------------------
+r4764 | exg | 2008-03-14 12:25:01 +0000 (Fri, 14 Mar 2008) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/ignore.c
+
+Make ignore exceptions take precedence over ignores in all cases, as documented.
+
+------------------------------------------------------------------------
+r4763 | exg | 2008-03-14 11:54:43 +0000 (Fri, 14 Mar 2008) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/ignore.c
+
+Remove code duplication in ignore_check.
+
+------------------------------------------------------------------------
+r4762 | exg | 2008-03-14 11:33:18 +0000 (Fri, 14 Mar 2008) | 2 lines
+Changed paths:
+   M /irssi/trunk/TODO
+
+Update.
+
+------------------------------------------------------------------------
+r4761 | exg | 2008-03-14 10:34:34 +0000 (Fri, 14 Mar 2008) | 2 lines
+Changed paths:
+   M /irssi/trunk/configure.in
+   M /irssi/trunk/src/common.h
+
+Do not check for standard C headers.
+
+------------------------------------------------------------------------
+r4760 | exg | 2008-03-12 09:59:35 +0000 (Wed, 12 Mar 2008) | 4 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/gui-readline.c
+
+After last change paste_entry includes the key before the one
+that begins the pasting, so do not add the same key to paste_buffer,
+otherwise it will show up twice.
+
+------------------------------------------------------------------------
+r4759 | exg | 2008-03-11 14:55:46 +0000 (Tue, 11 Mar 2008) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/common.h
+   M /irssi/trunk/src/lib-config/iconfig.h
+
+Move lib-config typedefs in iconfig.h.
+
+------------------------------------------------------------------------
+r4758 | exg | 2008-03-11 14:52:56 +0000 (Tue, 11 Mar 2008) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/settings.h
+
+Use struct name rather than typedef name in pointer declaration.
+
+------------------------------------------------------------------------
+r4757 | exg | 2008-03-11 14:32:04 +0000 (Tue, 11 Mar 2008) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/lib-config/iconfig.h
+
+Document config_node_set_str.
+
+------------------------------------------------------------------------
+r4756 | exg | 2008-03-11 13:26:33 +0000 (Tue, 11 Mar 2008) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/lib-config/iconfig.h
+
+Fix typos.
+
+------------------------------------------------------------------------
+r4755 | exg | 2008-03-11 13:25:33 +0000 (Tue, 11 Mar 2008) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/lib-config/get.c
+   M /irssi/trunk/src/lib-config/parse.c
+   M /irssi/trunk/src/lib-config/set.c
+   M /irssi/trunk/src/lib-config/write.c
+
+Keep documentation for public api only in headers to avoid duplication.
+
+------------------------------------------------------------------------
+r4754 | exg | 2008-03-10 23:40:58 +0000 (Mon, 10 Mar 2008) | 2 lines
+Changed paths:
+   M /irssi/trunk/TODO
+
+Update.
+
+------------------------------------------------------------------------
+r4753 | exg | 2008-03-10 21:31:35 +0000 (Mon, 10 Mar 2008) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/common.h
+
+Remove unused macros.
+
+------------------------------------------------------------------------
+r4752 | exg | 2008-03-10 20:17:42 +0000 (Mon, 10 Mar 2008) | 2 lines
+Changed paths:
+   M /irssi/trunk/TODO
+
+Update, translations are courtesy of Tomi Nygren.
+
+------------------------------------------------------------------------
+r4751 | Geert | 2008-03-10 19:20:01 +0000 (Mon, 10 Mar 2008) | 2 lines
+Changed paths:
+   M /irssi/trunk/README
+
+- Updated the content.
+
+------------------------------------------------------------------------
+r4750 | exg | 2008-03-10 15:21:45 +0000 (Mon, 10 Mar 2008) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/proxy/Makefile.am
+
+Disable versioning for the proxy module, patch by darix.
+
+------------------------------------------------------------------------
+r4749 | exg | 2008-03-10 14:45:14 +0000 (Mon, 10 Mar 2008) | 2 lines
+Changed paths:
+   M /irssi/trunk/TODO
+
+Update.
+
+------------------------------------------------------------------------
+r4748 | exg | 2008-03-10 12:05:43 +0000 (Mon, 10 Mar 2008) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/gui-printtext.c
+   M /irssi/trunk/src/fe-text/textbuffer.c
+   M /irssi/trunk/src/fe-text/textbuffer.h
+
+Make line_add_colors part of the textbuffer api.
+
+------------------------------------------------------------------------
+r4747 | exg | 2008-03-10 09:48:02 +0000 (Mon, 10 Mar 2008) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/gui-readline.c
+
+Make a copy of the entry buffer only when a paste begins rather than
+everytime a key is pressed.
+
+------------------------------------------------------------------------
+r4746 | exg | 2008-03-09 23:57:28 +0000 (Sun, 09 Mar 2008) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/gui-readline.c
+
+Do not buffer keys when waiting for paste confirmation.
+
+------------------------------------------------------------------------
+r4745 | exg | 2008-03-09 23:03:45 +0000 (Sun, 09 Mar 2008) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/gui-readline.c
+
+Simplify history handling in key_send_line.
+
+------------------------------------------------------------------------
+r4744 | exg | 2008-03-09 18:16:50 +0000 (Sun, 09 Mar 2008) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/textbuffer-view.c
+
+Rename variable.
+
+------------------------------------------------------------------------
+r4743 | exg | 2008-03-09 18:08:40 +0000 (Sun, 09 Mar 2008) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/textbuffer-view.c
+
+Replace usage of get_utf8_char with g_utf8_get_char_validated and
+factor the corresponding code into a function.
+
+------------------------------------------------------------------------
+r4742 | exg | 2008-03-09 16:41:20 +0000 (Sun, 09 Mar 2008) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/term-terminfo.c
+
+Replace usage of get_utf8_char with g_utf8_get_char_validated.
+
+------------------------------------------------------------------------
+r4739 | exg | 2008-03-09 12:17:55 +0000 (Sun, 09 Mar 2008) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/core/misc.c
+   M /irssi/trunk/src/core/servers-reconnect.c
+   M /irssi/trunk/src/core/servers.c
+   M /irssi/trunk/src/fe-common/irc/fe-events.c
+   M /irssi/trunk/src/fe-common/irc/notifylist/fe-notifylist.c
+   M /irssi/trunk/src/fe-text/mainwindows.c
+   M /irssi/trunk/src/irc/core/ctcp.c
+   M /irssi/trunk/src/irc/core/irc-servers.c
+   M /irssi/trunk/src/irc/dcc/dcc-chat.c
+   M /irssi/trunk/src/irc/dcc/dcc-server.c
+   M /irssi/trunk/src/irc/dcc/dcc.c
+   M /irssi/trunk/src/irc/flood/flood.c
+
+Use g_ascii_str{,n}casecmp for case insensitive comparison with
+ascii only strings.
+
+------------------------------------------------------------------------
+r4738 | exg | 2008-03-09 12:01:16 +0000 (Sun, 09 Mar 2008) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/core/levels.c
+   M /irssi/trunk/src/core/recode.c
+   M /irssi/trunk/src/core/servers-reconnect.c
+   M /irssi/trunk/src/core/servers-setup.c
+   M /irssi/trunk/src/core/settings.c
+   M /irssi/trunk/src/fe-common/core/fe-exec.c
+   M /irssi/trunk/src/fe-common/core/fe-log.c
+   M /irssi/trunk/src/fe-common/core/fe-settings.c
+   M /irssi/trunk/src/fe-common/core/printtext.c
+   M /irssi/trunk/src/fe-common/core/themes.c
+   M /irssi/trunk/src/fe-common/core/window-commands.c
+   M /irssi/trunk/src/fe-common/core/windows-layout.c
+   M /irssi/trunk/src/fe-common/irc/dcc/fe-dcc-chat.c
+   M /irssi/trunk/src/fe-common/irc/dcc/fe-dcc-get.c
+   M /irssi/trunk/src/fe-common/irc/dcc/fe-dcc-send.c
+   M /irssi/trunk/src/fe-text/statusbar-config.c
+   M /irssi/trunk/src/fe-text/statusbar-items.c
+   M /irssi/trunk/src/fe-text/term.c
+   M /irssi/trunk/src/fe-text/textbuffer-commands.c
+   M /irssi/trunk/src/irc/core/lag.c
+   M /irssi/trunk/src/irc/proxy/listen.c
+   M /irssi/trunk/src/perl/common/Expando.xs
+
+Use g_ascii_str{,n}casecmp for case insensitive comparison with
+ascii only strings.
+
+------------------------------------------------------------------------
+r4737 | exg | 2008-03-09 11:13:09 +0000 (Sun, 09 Mar 2008) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-core-commands.c
+   M /irssi/trunk/src/fe-common/core/fe-help.c
+
+Fix indentation.
+
+------------------------------------------------------------------------
+r4736 | exg | 2008-03-09 11:08:44 +0000 (Sun, 09 Mar 2008) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/autorun.c
+   M /irssi/trunk/src/fe-common/core/fe-core-commands.c
+   M /irssi/trunk/src/fe-common/core/fe-help.c
+
+Use GIOChannel API to read a file linewise.
+
+------------------------------------------------------------------------
+r4735 | exg | 2008-03-07 19:33:23 +0000 (Fri, 07 Mar 2008) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/irc-servers.c
+   M /irssi/trunk/src/irc/dcc/dcc.c
+
+Remove unneeded includes.
+
+------------------------------------------------------------------------
+r4734 | exg | 2008-03-07 15:11:24 +0000 (Fri, 07 Mar 2008) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/irssi.c
+
+g_mem_set_vtable must be called before using any other GLib functions.
+
+------------------------------------------------------------------------
+r4732 | exg | 2008-03-07 11:21:30 +0000 (Fri, 07 Mar 2008) | 2 lines
+Changed paths:
+   M /irssi/trunk/configure.in
+
+Remove unused variable HAVE_STATIC_PERL.
+
+------------------------------------------------------------------------
+r4731 | exg | 2008-03-07 10:56:38 +0000 (Fri, 07 Mar 2008) | 2 lines
+Changed paths:
+   M /irssi/trunk/configure.in
+   M /irssi/trunk/src/perl/Makefile.am
+
+Remove useless PERL_LIBTOOL indirection.
+
+------------------------------------------------------------------------
+r4730 | exg | 2008-03-05 10:41:22 +0000 (Wed, 05 Mar 2008) | 2 lines
+Changed paths:
+   M /irssi/trunk/docs/manual.txt
+
+Add recode documentation.
+
+------------------------------------------------------------------------
+r4729 | exg | 2008-03-05 09:48:32 +0000 (Wed, 05 Mar 2008) | 2 lines
+Changed paths:
+   M /irssi/trunk/INSTALL
+   M /irssi/trunk/Makefile.am
+   D /irssi/trunk/README.cygwin
+
+Merge README.cygwin in INSTALL.
+
+------------------------------------------------------------------------
+r4728 | exg | 2008-03-05 09:38:15 +0000 (Wed, 05 Mar 2008) | 2 lines
+Changed paths:
+   M /irssi/trunk/INSTALL
+
+Improve descriptions of configure options.
+
+------------------------------------------------------------------------
+r4727 | exg | 2008-03-04 23:06:39 +0000 (Tue, 04 Mar 2008) | 2 lines
+Changed paths:
+   M /irssi/trunk/INSTALL
+   M /irssi/trunk/docs/manual.txt
+
+Move description of resolve_prefer_ipv6 in the manual.
+
+------------------------------------------------------------------------
+r4726 | exg | 2008-03-04 22:57:01 +0000 (Tue, 04 Mar 2008) | 2 lines
+Changed paths:
+   M /irssi/trunk/configure.in
+
+Reflect the actual default value in descriptions of configure options.
+
+------------------------------------------------------------------------
+r4725 | exg | 2008-03-04 20:09:13 +0000 (Tue, 04 Mar 2008) | 2 lines
+Changed paths:
+   M /irssi/trunk/INSTALL
+   M /irssi/trunk/docs/manual.txt
+
+Move documentation of configure options in INSTALL.
+
+------------------------------------------------------------------------
+r4724 | exg | 2008-03-04 19:11:45 +0000 (Tue, 04 Mar 2008) | 2 lines
+Changed paths:
+   M /irssi/trunk/INSTALL
+
+Reformat.
+
+------------------------------------------------------------------------
+r4723 | exg | 2008-03-04 18:15:51 +0000 (Tue, 04 Mar 2008) | 2 lines
+Changed paths:
+   M /irssi/trunk/docs/Makefile.am
+   D /irssi/trunk/docs/botnet.txt
+   D /irssi/trunk/src/irc/bot
+
+Remove long unmaintained botnet module.
+
+------------------------------------------------------------------------
+r4722 | exg | 2008-03-04 17:46:11 +0000 (Tue, 04 Mar 2008) | 2 lines
+Changed paths:
+   M /irssi/trunk/irssi-icon.png
+
+New icon by ditCh.
+
+------------------------------------------------------------------------
+r4721 | exg | 2008-03-04 10:42:23 +0000 (Tue, 04 Mar 2008) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-help.c
+   M /irssi/trunk/src/fe-common/core/fe-modules.c
+   M /irssi/trunk/src/irc/core/ctcp.c
+   M /irssi/trunk/src/irc/dcc/dcc-chat.c
+
+Replace g_strdup+g_str{up,down} with g_ascii_str{up,down}.
+
+------------------------------------------------------------------------
+r4720 | exg | 2008-03-04 09:48:49 +0000 (Tue, 04 Mar 2008) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/levels.c
+
+Remove unneeded upcasing (level_get matching is case-insensitive).
+
+------------------------------------------------------------------------
+r4719 | exg | 2008-03-03 12:33:17 +0000 (Mon, 03 Mar 2008) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/misc.h
+
+Group together declarations for string functions.
+
+------------------------------------------------------------------------
+r4718 | exg | 2008-03-03 01:57:50 +0000 (Mon, 03 Mar 2008) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/misc.c
+   M /irssi/trunk/src/core/misc.h
+
+Rename some variables.
+
+------------------------------------------------------------------------
+r4717 | exg | 2008-03-02 19:54:34 +0000 (Sun, 02 Mar 2008) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-help.c
+
+Use g_strchomp to remove trailing whitespace.
+This fixes an invalid read, when the string is empty, reported by Enrico Scholz.
+
+------------------------------------------------------------------------
+r4716 | jilles | 2008-02-20 20:28:07 +0000 (Wed, 20 Feb 2008) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/fe-events-numeric.c
+   M /irssi/trunk/src/fe-common/irc/module-formats.c
+   M /irssi/trunk/src/fe-common/irc/module-formats.h
+
+Show setter/time in +I lists, if sent by the server.
+Code mostly copied from +e.
+
+------------------------------------------------------------------------
+r4715 | exg | 2008-02-16 23:28:53 +0000 (Sat, 16 Feb 2008) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/chat-commands.c
+   M /irssi/trunk/src/fe-common/core/fe-common-core.c
+   M /irssi/trunk/src/fe-common/core/fe-messages.c
+   M /irssi/trunk/src/fe-common/irc/fe-irc-commands.c
+   M /irssi/trunk/src/fe-common/irc/fe-irc-messages.c
+   M /irssi/trunk/src/irc/core/channel-events.c
+   M /irssi/trunk/src/irc/core/irc-commands.c
+   M /irssi/trunk/src/irc/core/irc.c
+
+Move output recoding in irc_send_cmd_full.
+
+------------------------------------------------------------------------
+r4714 | exg | 2008-02-16 11:13:45 +0000 (Sat, 16 Feb 2008) | 2 lines
+Changed paths:
+   M /irssi/trunk/Makefile.am
+   M /irssi/trunk/configure.in
+   M /irssi/trunk/src/common.h
+
+Rename config.h to irssi-config.h to avoid collisions.
+
+------------------------------------------------------------------------
+r4713 | exg | 2008-02-16 00:02:28 +0000 (Sat, 16 Feb 2008) | 2 lines
+Changed paths:
+   M /irssi/trunk/Makefile.am
+   M /irssi/trunk/configure.in
+   D /irssi/trunk/irssi.spec.in
+
+Remove outdated and broken rpm stuff.
+
+------------------------------------------------------------------------
+r4712 | exg | 2008-02-15 23:44:46 +0000 (Fri, 15 Feb 2008) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/command-history.h
+
+Fix argument name in declaration.
+
+------------------------------------------------------------------------
+r4711 | exg | 2008-02-15 23:31:02 +0000 (Fri, 15 Feb 2008) | 2 lines
+Changed paths:
+   M /irssi/trunk/Makefile.am
+
+Add built headers to BUILT_SOURCES rather than making config.h depend on them.
+
+------------------------------------------------------------------------
+r4710 | exg | 2008-02-14 13:34:47 +0000 (Thu, 14 Feb 2008) | 2 lines
+Changed paths:
+   M /irssi/trunk/docs/irssi.1
+
+Fix spelling error.
+
+------------------------------------------------------------------------
+r4709 | exg | 2008-02-05 15:03:33 +0000 (Tue, 05 Feb 2008) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/irc-servers.c
+   M /irssi/trunk/src/irc/dcc/dcc-chat.c
+
+Remove unneeded includes.
+
+------------------------------------------------------------------------
+r4708 | exg | 2008-02-05 12:19:08 +0000 (Tue, 05 Feb 2008) | 2 lines
+Changed paths:
+   M /irssi/trunk/INSTALL
+
+Document packages needed to build/run irssi.
+
+------------------------------------------------------------------------
+r4707 | exg | 2008-02-05 01:15:38 +0000 (Tue, 05 Feb 2008) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/irssi.c
+
+Remove check for ancient default.theme.
+
+------------------------------------------------------------------------
+r4706 | exg | 2008-02-05 01:01:06 +0000 (Tue, 05 Feb 2008) | 2 lines
+Changed paths:
+   M /irssi/trunk/INSTALL
+   M /irssi/trunk/TODO
+   M /irssi/trunk/acconfig.h
+   M /irssi/trunk/configure.in
+   M /irssi/trunk/src/perl/module.h
+   M /irssi/trunk/src/perl/perl-common.c
+   M /irssi/trunk/src/perl/perl-common.h
+   M /irssi/trunk/src/perl/perl-core.c
+
+Remove support for perl 5.004 and older.
+
+------------------------------------------------------------------------
+r4705 | exg | 2008-02-04 15:30:38 +0000 (Mon, 04 Feb 2008) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/chat-commands.c
+   M /irssi/trunk/src/core/commands.c
+   M /irssi/trunk/src/core/expandos.c
+   M /irssi/trunk/src/core/net-disconnect.c
+   M /irssi/trunk/src/core/net-nonblock.c
+   M /irssi/trunk/src/core/network-openssl.c
+   M /irssi/trunk/src/core/nicklist.c
+   M /irssi/trunk/src/core/recode.c
+   M /irssi/trunk/src/core/session.c
+   M /irssi/trunk/src/core/special-vars.c
+
+Remove trailing whitespace.
+
+------------------------------------------------------------------------
+r4704 | exg | 2008-02-04 11:55:22 +0000 (Mon, 04 Feb 2008) | 2 lines
+Changed paths:
+   M /irssi/trunk/TODO
+
+Update.
+
+------------------------------------------------------------------------
+r4703 | exg | 2008-02-04 00:39:32 +0000 (Mon, 04 Feb 2008) | 2 lines
+Changed paths:
+   M /irssi/trunk/configure.in
+
+Do not create unnecessary symlinks in builddir.
+
+------------------------------------------------------------------------
+r4702 | exg | 2008-02-04 00:30:38 +0000 (Mon, 04 Feb 2008) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/perl/Makefile.am
+
+Fix deps.
+
+------------------------------------------------------------------------
+r4701 | exg | 2008-02-03 18:23:43 +0000 (Sun, 03 Feb 2008) | 2 lines
+Changed paths:
+   M /irssi/trunk/TODO
+
+Update.
+
+------------------------------------------------------------------------
+r4700 | exg | 2008-02-03 16:48:02 +0000 (Sun, 03 Feb 2008) | 3 lines
+Changed paths:
+   M /irssi/trunk/TODO
+   M /irssi/trunk/configure.in
+   M /irssi/trunk/docs/design.txt
+   M /irssi/trunk/src/Makefile.am
+   M /irssi/trunk/src/core/args.c
+   M /irssi/trunk/src/core/args.h
+   M /irssi/trunk/src/core/core.c
+   M /irssi/trunk/src/core/session.c
+   M /irssi/trunk/src/fe-common/core/fe-common-core.c
+   M /irssi/trunk/src/fe-none/irssi.c
+   M /irssi/trunk/src/fe-text/irssi.c
+   D /irssi/trunk/src/lib-popt
+
+Remove popt and use glib GOption commandline option parser
+(glib-2.6 is now the minimum required version).
+
+------------------------------------------------------------------------
+r4698 | exg | 2008-02-02 18:36:57 +0000 (Sat, 02 Feb 2008) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/Makefile.am
+   M /irssi/trunk/src/fe-common/core/fe-common-core.c
+   M /irssi/trunk/src/fe-common/core/formats.c
+   M /irssi/trunk/src/fe-common/core/module-formats.c
+   M /irssi/trunk/src/fe-common/core/module-formats.h
+   D /irssi/trunk/src/fe-common/core/translation.c
+   D /irssi/trunk/src/fe-common/core/translation.h
+   M /irssi/trunk/src/fe-text/gui-readline.c
+
+Remove broken by design /set translation.
+
+------------------------------------------------------------------------
+r4697 | exg | 2008-02-02 18:05:05 +0000 (Sat, 02 Feb 2008) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/perl/perl-core.c
+
+Remove unneeded include.
+
+------------------------------------------------------------------------
+r4696 | exg | 2008-02-02 17:54:51 +0000 (Sat, 02 Feb 2008) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/common.h
+
+Fix indentation.
+
+------------------------------------------------------------------------
+r4695 | exg | 2008-02-02 10:13:42 +0000 (Sat, 02 Feb 2008) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/term-curses.c
+   D /irssi/trunk/src/fe-text/term-curses.h
+
+Remove term-curses.h (was added for cuix).
+
+------------------------------------------------------------------------
+r4694 | exg | 2008-02-01 16:02:56 +0000 (Fri, 01 Feb 2008) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/formats.c
+   M /irssi/trunk/src/fe-text/gui-printtext.c
+
+Reset colors and attributes on newline.
+
+------------------------------------------------------------------------
+r4693 | exg | 2008-01-28 11:07:11 +0000 (Mon, 28 Jan 2008) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/gui-printtext.c
+
+Properly initialize and reset last_{fg,bg}.
+
+------------------------------------------------------------------------
+r4690 | exg | 2008-01-25 12:43:16 +0000 (Fri, 25 Jan 2008) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/args.c
+   M /irssi/trunk/src/core/args.h
+
+Do not export iopt_tables pointer.
+
+------------------------------------------------------------------------
+r4689 | exg | 2008-01-25 12:13:53 +0000 (Fri, 25 Jan 2008) | 2 lines
+Changed paths:
+   D /irssi/trunk/debian
+
+Remove debian directory, acked by debian maintainers.
+
+------------------------------------------------------------------------
+r4688 | exg | 2008-01-25 12:06:42 +0000 (Fri, 25 Jan 2008) | 2 lines
+Changed paths:
+   M /irssi/trunk/docs/help/in/cycle.in
+   M /irssi/trunk/docs/help/in/join.in
+   M /irssi/trunk/docs/help/in/part.in
+
+Remove references to LEAVE alias.
+
+------------------------------------------------------------------------
+r4687 | exg | 2008-01-25 11:20:40 +0000 (Fri, 25 Jan 2008) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/term-terminfo.c
+   M /irssi/trunk/src/fe-text/terminfo-core.c
+   M /irssi/trunk/src/fe-text/terminfo-core.h
+
+Update the terminfo backend to query the 'colors' capability and support more
+than 16 colors (sync from icecap).
+
+------------------------------------------------------------------------
+r4686 | exg | 2008-01-24 13:39:17 +0000 (Thu, 24 Jan 2008) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/term-terminfo.c
+
+Do not assume that bit 0x80 enables blink, rather call set_blink when
+blink is requested.
+
+------------------------------------------------------------------------
+r4685 | exg | 2008-01-24 09:47:08 +0000 (Thu, 24 Jan 2008) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/terminfo-core.c
+   M /irssi/trunk/src/fe-text/terminfo-core.h
+
+Add function to set blink to the terminfo backend.
+
+------------------------------------------------------------------------
+r4684 | exg | 2008-01-24 09:40:10 +0000 (Thu, 24 Jan 2008) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/term-terminfo.c
+   M /irssi/trunk/src/fe-text/terminfo-core.c
+   M /irssi/trunk/src/fe-text/terminfo-core.h
+
+Remove empty function.
+
+------------------------------------------------------------------------
+r4676 | exg | 2008-01-21 17:30:14 +0000 (Mon, 21 Jan 2008) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/irc-commands.c
+
+Remove undocumented /RAWQUOTE command.
+
+------------------------------------------------------------------------
+r4675 | exg | 2008-01-21 15:44:05 +0000 (Mon, 21 Jan 2008) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/gui-readline.c
+
+Reindent.
+
+------------------------------------------------------------------------
+r4674 | exg | 2008-01-21 15:41:12 +0000 (Mon, 21 Jan 2008) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/gui-readline.c
+
+Simplify.
+
+------------------------------------------------------------------------
+r4673 | exg | 2008-01-21 12:10:08 +0000 (Mon, 21 Jan 2008) | 2 lines
+Changed paths:
+   M /irssi/trunk
+
+Update svn:ignore.
+
+------------------------------------------------------------------------
+r4672 | exg | 2008-01-21 11:49:10 +0000 (Mon, 21 Jan 2008) | 2 lines
+Changed paths:
+   D /irssi/trunk/.cvsignore
+   D /irssi/trunk/docs/.cvsignore
+   D /irssi/trunk/docs/help/.cvsignore
+   D /irssi/trunk/docs/help/in/.cvsignore
+   D /irssi/trunk/scripts/.cvsignore
+   D /irssi/trunk/scripts/examples/.cvsignore
+   D /irssi/trunk/servertest/.cvsignore
+   D /irssi/trunk/src/.cvsignore
+   D /irssi/trunk/src/core/.cvsignore
+   D /irssi/trunk/src/fe-common/.cvsignore
+   D /irssi/trunk/src/fe-common/core/.cvsignore
+   D /irssi/trunk/src/fe-common/irc/.cvsignore
+   D /irssi/trunk/src/fe-common/irc/dcc/.cvsignore
+   D /irssi/trunk/src/fe-common/irc/notifylist/.cvsignore
+   D /irssi/trunk/src/fe-none/.cvsignore
+   D /irssi/trunk/src/fe-text/.cvsignore
+   D /irssi/trunk/src/irc/.cvsignore
+   D /irssi/trunk/src/irc/bot/.cvsignore
+   D /irssi/trunk/src/irc/core/.cvsignore
+   D /irssi/trunk/src/irc/dcc/.cvsignore
+   D /irssi/trunk/src/irc/flood/.cvsignore
+   D /irssi/trunk/src/irc/notifylist/.cvsignore
+   D /irssi/trunk/src/irc/proxy/.cvsignore
+   D /irssi/trunk/src/lib-config/.cvsignore
+   D /irssi/trunk/src/lib-popt/.cvsignore
+   D /irssi/trunk/src/perl/.cvsignore
+   D /irssi/trunk/src/perl/common/.cvsignore
+   D /irssi/trunk/src/perl/irc/.cvsignore
+   D /irssi/trunk/src/perl/textui/.cvsignore
+   D /irssi/trunk/src/perl/ui/.cvsignore
+
+Remove .cvsignore files.
+
+------------------------------------------------------------------------
+r4671 | exg | 2008-01-21 11:30:58 +0000 (Mon, 21 Jan 2008) | 2 lines
+Changed paths:
+   M /irssi/trunk/configure.in
+
+Put auxiliary files in build-aux directory.
+
+------------------------------------------------------------------------
+r4670 | exg | 2008-01-21 11:06:46 +0000 (Mon, 21 Jan 2008) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/gui-readline.c
+
+Remove unneeded resets of paste_keycount (check_pasting will reset it
+at the next call).
+
+------------------------------------------------------------------------
+r4669 | exg | 2008-01-21 10:50:50 +0000 (Mon, 21 Jan 2008) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/gui-readline.c
+
+Move code to insert paste prompt into its own function.
+
+------------------------------------------------------------------------
+r4668 | jilles | 2007-12-23 16:48:24 +0000 (Sun, 23 Dec 2007) | 10 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/irc-servers.c
+
+Apply -usermode before -autosendcmd.
+The -usermode is now implicitly treated as a requested
+usermode change; the MODE command setting it is not
+redirected.  This is good because user MODE may or may
+not give a reply and this could be confused with the MODE
+message indicating the initial usermode.
+Possible issue here: '-' modes in -usermode persist only
+until you change your umode via /mode.
+Bug #548
+
+------------------------------------------------------------------------
+r4667 | exg | 2007-12-12 12:35:14 +0000 (Wed, 12 Dec 2007) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/gui-entry.c
+
+Revert r2471, having the erase commands clear the cutbuffer when the
+line is empty is annoying and not useful.
+
+------------------------------------------------------------------------
+r4666 | exg | 2007-12-10 12:07:10 +0000 (Mon, 10 Dec 2007) | 2 lines
+Changed paths:
+   M /irssi/trunk/autogen.sh
+
+Force C locale for svn info.
+
+------------------------------------------------------------------------
+r4665 | exg | 2007-12-09 16:10:07 +0000 (Sun, 09 Dec 2007) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/core/recode.c
+
+Simplify is_valid_charset by just checking with g_iconv_open that the
+conversion is supported.
+
+------------------------------------------------------------------------
+r4664 | exg | 2007-12-09 14:39:06 +0000 (Sun, 09 Dec 2007) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-log.c
+   M /irssi/trunk/src/fe-common/core/module-formats.c
+
+Add 'active' tag for active logs in /log output.
+
+------------------------------------------------------------------------
+r4663 | exg | 2007-12-09 14:06:55 +0000 (Sun, 09 Dec 2007) | 2 lines
+Changed paths:
+   M /irssi/trunk/docs/irssi.1
+
+Document 'startup' file.
+
+------------------------------------------------------------------------
+r4662 | jilles | 2007-12-06 23:37:37 +0000 (Thu, 06 Dec 2007) | 2 lines
+Changed paths:
+   M /irssi/trunk/NEWS
+
+Add entry about /userhost * and copying oper status flag on new join.
+
+------------------------------------------------------------------------
+r4661 | exg | 2007-12-06 10:16:02 +0000 (Thu, 06 Dec 2007) | 2 lines
+Changed paths:
+   M /irssi/trunk/configure.in
+
+Simplify options tests.
+
+------------------------------------------------------------------------
+r4660 | exg | 2007-12-06 09:50:55 +0000 (Thu, 06 Dec 2007) | 2 lines
+Changed paths:
+   M /irssi/trunk/configure.in
+
+Indent.
+
+------------------------------------------------------------------------
+r4659 | exg | 2007-12-06 00:06:11 +0000 (Thu, 06 Dec 2007) | 2 lines
+Changed paths:
+   M /irssi/trunk/configure.in
+
+Revert r4654.
+
+------------------------------------------------------------------------
+r4658 | exg | 2007-12-05 23:51:06 +0000 (Wed, 05 Dec 2007) | 2 lines
+Changed paths:
+   M /irssi/trunk/NEWS
+
+Remove trailing whitespace.
+
+------------------------------------------------------------------------
+r4657 | exg | 2007-12-05 23:49:37 +0000 (Wed, 05 Dec 2007) | 2 lines
+Changed paths:
+   M /irssi/trunk/AUTHORS
+
+Fix typo.
+
+------------------------------------------------------------------------
+r4656 | exg | 2007-12-05 23:36:33 +0000 (Wed, 05 Dec 2007) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/log.c
+
+Simplify itemcmp.
+
+------------------------------------------------------------------------
+r4655 | exg | 2007-12-05 23:13:53 +0000 (Wed, 05 Dec 2007) | 2 lines
+Changed paths:
+   M /irssi/trunk/configure.in
+
+Tabify.
+
+------------------------------------------------------------------------
+r4654 | exg | 2007-12-05 14:58:47 +0000 (Wed, 05 Dec 2007) | 3 lines
+Changed paths:
+   M /irssi/trunk/configure.in
+
+Rename enable_ssl variable to want_ssl for consistency with other options
+variables.
+
+------------------------------------------------------------------------
+r4653 | exg | 2007-12-05 14:53:52 +0000 (Wed, 05 Dec 2007) | 2 lines
+Changed paths:
+   M /irssi/trunk/configure.in
+
+Remove unneeded AC_SUBST for SSL_LIBS.
+
+------------------------------------------------------------------------
+r4652 | exg | 2007-12-05 14:29:08 +0000 (Wed, 05 Dec 2007) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/Makefile.am
+
+Remove gettext leftover.
+
+------------------------------------------------------------------------
+r4651 | exg | 2007-12-05 13:06:55 +0000 (Wed, 05 Dec 2007) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/statusbar.c
+
+Reindent.
+
+------------------------------------------------------------------------
+r4650 | exg | 2007-12-05 13:04:48 +0000 (Wed, 05 Dec 2007) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/dcc/fe-dcc-chat-messages.c
+
+Fix typo.
+
+------------------------------------------------------------------------
+r4649 | exg | 2007-12-05 13:00:04 +0000 (Wed, 05 Dec 2007) | 2 lines
+Changed paths:
+   M /irssi/trunk/autogen.sh
+
+Remove leftover.
+
+------------------------------------------------------------------------
+r4647 | exg | 2007-11-20 13:34:45 +0000 (Tue, 20 Nov 2007) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/network.c
+
+Remove unneeded casts.
+
+------------------------------------------------------------------------
+r4646 | exg | 2007-11-19 10:34:40 +0000 (Mon, 19 Nov 2007) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-log.c
+
+Fix last change.
+
+------------------------------------------------------------------------
+r4645 | jilles | 2007-11-18 21:33:11 +0000 (Sun, 18 Nov 2007) | 7 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-log.c
+
+autolog: do not create *.log, send it to <your nick>.log instead
+*.log resulted from server notices to * (as sent by
+ratbox) for example, and was subsequently interpreted
+as a wildcard (note that only * alone is a wildcard for
+log targets).
+Bug #533
+
+------------------------------------------------------------------------
+r4644 | jilles | 2007-11-18 21:21:51 +0000 (Sun, 18 Nov 2007) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/irc/proxy/listen.c
+
+Pass through (redirect) WHOWAS reply to proxy clients.
+Bug #490 (patch from Alex Schumann)
+
+------------------------------------------------------------------------
+r4643 | exg | 2007-11-18 10:30:44 +0000 (Sun, 18 Nov 2007) | 2 lines
+Changed paths:
+   M /irssi/trunk/NEWS
+
+Update.
+
+------------------------------------------------------------------------
+r4642 | exg | 2007-11-17 21:50:31 +0000 (Sat, 17 Nov 2007) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/windows-layout.c
+
+Saner fix for bug #35.
+
+------------------------------------------------------------------------
+r4641 | exg | 2007-11-17 16:42:21 +0000 (Sat, 17 Nov 2007) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/windows-layout.c
+
+Reload the layout after saving it, fix bug #35.
+
+------------------------------------------------------------------------
+r4640 | jilles | 2007-11-17 16:35:47 +0000 (Sat, 17 Nov 2007) | 4 lines
+Changed paths:
+   M /irssi/trunk/docs/help/in/ping.in
+   M /irssi/trunk/docs/help/in/ver.in
+   M /irssi/trunk/src/fe-common/irc/fe-irc-commands.c
+   M /irssi/trunk/src/irc/core/irc-commands.c
+
+Do not allow /ping by itself to ctcp ping a channel.
+This is like the new /ver behaviour.
+Bug #542, patch by Geert with tweaks by exg
+
+------------------------------------------------------------------------
+r4639 | exg | 2007-11-16 11:30:37 +0000 (Fri, 16 Nov 2007) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/module-formats.c
+
+Fix grammar errors, patch by Mikael Magnusson.
+
+------------------------------------------------------------------------
+r4638 | jilles | 2007-11-14 23:02:40 +0000 (Wed, 14 Nov 2007) | 6 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/irc-servers.h
+   M /irssi/trunk/src/irc/core/irc.c
+   M /irssi/trunk/src/irc/core/servers-redirect.c
+   M /irssi/trunk/src/irc/core/servers-redirect.h
+   M /irssi/trunk/src/irc/proxy/listen.c
+   M /irssi/trunk/src/perl/irc/Server.xs
+
+Rework redirections to deal with multiple concurrent redirects better.
+These mostly happen when doing remote whois and the
+target server is slow.
+The code uses the source server but will try to do what it
+can if servers think they need to mask it.
+
+------------------------------------------------------------------------
+r4637 | jilles | 2007-11-03 00:24:55 +0000 (Sat, 03 Nov 2007) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/fe-whois.c
+
+Fix mode display in whois with unreal (379 numeric).
+Bug #479
+
+------------------------------------------------------------------------
+r4636 | jilles | 2007-11-03 00:06:47 +0000 (Sat, 03 Nov 2007) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/module-formats.c
+
+Remove a space that messed up alignment in whois mode replies.
+
+------------------------------------------------------------------------
+r4635 | jilles | 2007-11-02 22:41:24 +0000 (Fri, 02 Nov 2007) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/fe-whois.c
+
+Fix RPL_WHOISHOST (378) code and strip off the "*@" from the hostname.
+
+------------------------------------------------------------------------
+r4634 | jilles | 2007-11-02 22:40:36 +0000 (Fri, 02 Nov 2007) | 6 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/fe-whois.c
+
+Add support for RPL_WHOISACTUALLY (338), both ratbox and ircu style.
+Note that the ratbox style only shows ip, this appears as
+hostname: <ip> which is slightly different from the other
+real host numerics.
+Bug #428
+
+------------------------------------------------------------------------
+r4633 | jilles | 2007-11-02 12:02:45 +0000 (Fri, 02 Nov 2007) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/perl/irc/Irc.xs
+
+Unbreak the build by removing idle_check_time from Irssi::Irc::Notifylist.
+
+------------------------------------------------------------------------
+r4632 | jilles | 2007-10-31 22:58:44 +0000 (Wed, 31 Oct 2007) | 4 lines
+Changed paths:
+   M /irssi/trunk/docs/help/in/notify.in
+   M /irssi/trunk/docs/manual.txt
+   M /irssi/trunk/src/fe-common/irc/notifylist/fe-notifylist.c
+   M /irssi/trunk/src/irc/notifylist/module.h
+   M /irssi/trunk/src/irc/notifylist/notify-commands.c
+   M /irssi/trunk/src/irc/notifylist/notify-ison.c
+   M /irssi/trunk/src/irc/notifylist/notify-setup.c
+   M /irssi/trunk/src/irc/notifylist/notify-whois.c
+   M /irssi/trunk/src/irc/notifylist/notifylist.c
+   M /irssi/trunk/src/irc/notifylist/notifylist.h
+   M /irssi/trunk/src/perl/irc/Notifylist.xs
+
+Remove /notify -idle, it can only work with not-nice automated remote whois.
+(causes infrequent "server load too heavy" etc)
+If people really want this, they should write a script.
+
+------------------------------------------------------------------------
+r4631 | exg | 2007-10-29 15:37:31 +0000 (Mon, 29 Oct 2007) | 4 lines
+Changed paths:
+   M /irssi/trunk/src/irc/dcc/dcc-get.c
+
+Fallback on rename also when errno is ENOSYS/EOPNOTSUPP because
+FUSE/BSD sets this value when link is not available.
+Based on a patch by Juuso Tähkäpää, bug 536.
+
+------------------------------------------------------------------------
+r4629 | exg | 2007-10-25 09:07:44 +0000 (Thu, 25 Oct 2007) | 2 lines
+Changed paths:
+   M /irssi/trunk/acconfig.h
+
+Remove unneeded templates.
+
+------------------------------------------------------------------------
+r4628 | coekie | 2007-10-22 16:45:48 +0000 (Mon, 22 Oct 2007) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/hilight-text.c
+
+Same for s/-fullword/-full/
+
+------------------------------------------------------------------------
+r4627 | exg | 2007-10-22 13:27:56 +0000 (Mon, 22 Oct 2007) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/fe-irc-messages.c
+
+Handle server == NULL case in skip_target, fix regression with irssi-icb.
+Patch by Stuart Henderson, bug #539.
+
+------------------------------------------------------------------------
+r4626 | jilles | 2007-10-18 20:47:44 +0000 (Thu, 18 Oct 2007) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/servers-redirect.c
+
+Recognize 431/461 (not enough parameters) as end of whois reply.
+
+------------------------------------------------------------------------
+r4625 | coekie | 2007-10-18 18:35:12 +0000 (Thu, 18 Oct 2007) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/hilight-text.c
+
+Make /hilight output -mask instead of -nickmask, consistent with the parameter it expects.
+
+------------------------------------------------------------------------
+r4624 | coekie | 2007-10-18 16:54:59 +0000 (Thu, 18 Oct 2007) | 2 lines
+Changed paths:
+   M /irssi/trunk/configure.in
+
+Set version to 0.8.13-svn
+
+------------------------------------------------------------------------
+r4623 | jilles | 2007-10-16 17:26:59 +0000 (Tue, 16 Oct 2007) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/massjoin.c
+
+Also copy oper status when an already known user joins another channel.
+(Realname and away status were already copied.)
+
+------------------------------------------------------------------------
+r4622 | jilles | 2007-10-16 17:20:12 +0000 (Tue, 16 Oct 2007) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/irc-nicklist.c
+
+Update oper status from userhost reply.
+
+------------------------------------------------------------------------
+r4619 | exg | 2007-10-15 09:34:57 +0000 (Mon, 15 Oct 2007) | 2 lines
+Changed paths:
+   M /irssi/trunk/Makefile.am
+   M /irssi/trunk/configure.in
+   A /irssi/trunk/irssi-config.in
+
+Restore irssi-config, bug #537.
+
+------------------------------------------------------------------------
+r4617 | jilles | 2007-10-12 15:09:12 +0000 (Fri, 12 Oct 2007) | 4 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/irc-servers.c
+
+Get -kicks and -msgs from TARGMAX and MAXTARGETS 005 tokens.
+We do not do this for WHOIS because the resulting replies
+tend to be buggy and inconsistent.
+
+------------------------------------------------------------------------
+r4613 | Geert | 2007-10-11 16:08:19 +0000 (Thu, 11 Oct 2007) | 2 lines
+Changed paths:
+   M /irssi/trunk/debian/patches/07gnutls-support-automakery.dpatch
+   M /irssi/trunk/docs/faq.html
+   M /irssi/trunk/docs/help/in/load.in
+   M /irssi/trunk/docs/manual.txt
+
+More URL fixes.
+
+------------------------------------------------------------------------
+r4612 | Geert | 2007-10-11 16:02:27 +0000 (Thu, 11 Oct 2007) | 2 lines
+Changed paths:
+   M /irssi/trunk/irssi.conf
+   M /irssi/trunk/src/fe-text/irssi.c
+
+Fix broken URI.
+
+------------------------------------------------------------------------
+r4611 | Geert | 2007-10-11 14:46:18 +0000 (Thu, 11 Oct 2007) | 2 lines
+Changed paths:
+   M /irssi/trunk/docs/formats.txt
+
+See previous commit.
+
+------------------------------------------------------------------------
+r4608 | Geert | 2007-10-11 14:33:14 +0000 (Thu, 11 Oct 2007) | 4 lines
+Changed paths:
+   M /irssi/trunk/docs/formats.txt
+
+I was using %K trying to figure out why it wasnt dark grey @ http://irssi.org/documentation/formats
+then i found this, http://svn.irssi.org/repos/irssi/tags/r_0_7_91/docs/formats.txt, which explained it. 
+    Joshua Baillie <baillie.joshua@gmail.com>
+
+------------------------------------------------------------------------
+r4606 | coekie | 2007-10-06 09:39:55 +0000 (Sat, 06 Oct 2007) | 2 lines
+Changed paths:
+   M /irssi/trunk/NEWS
+   M /irssi/trunk/configure.in
+
+Release 0.8.12
+
+------------------------------------------------------------------------
+r4604 | coekie | 2007-08-26 20:02:10 +0000 (Sun, 26 Aug 2007) | 2 lines
+Changed paths:
+   M /irssi/trunk/NEWS
+   M /irssi/trunk/configure.in
+
+Release 0.8.12-rc1
+
+------------------------------------------------------------------------
+r4603 | jilles | 2007-08-24 17:13:21 +0000 (Fri, 24 Aug 2007) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/gui-readline.c
+
+Make alt/meta+arrow keys work in recent versions of xterm.
+Bug #496
+
+------------------------------------------------------------------------
+r4602 | coekie | 2007-08-22 19:47:28 +0000 (Wed, 22 Aug 2007) | 1 line
+Changed paths:
+   M /irssi/trunk/NEWS
+
+Sort NEWS by features and fixed like previous released, and update
+------------------------------------------------------------------------
+r4601 | coekie | 2007-08-22 19:31:47 +0000 (Wed, 22 Aug 2007) | 1 line
+Changed paths:
+   M /irssi/trunk/src/fe-text/textbuffer.c
+
+Make /LASTLOG -after/-before work without text to match
+------------------------------------------------------------------------
+r4600 | jilles | 2007-08-19 13:09:10 +0000 (Sun, 19 Aug 2007) | 5 lines
+Changed paths:
+   M /irssi/trunk/docs/manual.txt
+
+Update docs/manual.txt some more:
+- Channel sync does not get +eI lists.
+- Merge in /help mode changes.
+- Ban type is set using /set ban_type.
+
+------------------------------------------------------------------------
+r4599 | jilles | 2007-08-19 12:19:10 +0000 (Sun, 19 Aug 2007) | 2 lines
+Changed paths:
+   M /irssi/trunk/docs/manual.txt
+
+Update section 5.9 (lag checking) to reality.
+
+------------------------------------------------------------------------
+r4598 | exg | 2007-08-07 14:59:25 +0000 (Tue, 07 Aug 2007) | 3 lines
+Changed paths:
+   M /irssi/trunk/configure.in
+
+Use automake no-define option rather than config.h.in mangling to inhibit
+VERSION definition.
+
+------------------------------------------------------------------------
+r4597 | exg | 2007-08-07 14:55:14 +0000 (Tue, 07 Aug 2007) | 3 lines
+Changed paths:
+   M /irssi/trunk/irssi-version.h.in
+   M /irssi/trunk/src/core/args.c
+   M /irssi/trunk/src/core/expandos.c
+   M /irssi/trunk/src/fe-common/core/fe-core-commands.c
+   M /irssi/trunk/src/fe-text/irssi.c
+   M /irssi/trunk/src/irc/core/ctcp.c
+   M /irssi/trunk/src/irc/proxy/dump.c
+
+Use autoconf PACKAGE_TARNAME/PACKAGE_VERSION macros rather than automake
+PACKAGE/VERSION ones.
+
+------------------------------------------------------------------------
+r4596 | exg | 2007-08-07 13:06:32 +0000 (Tue, 07 Aug 2007) | 2 lines
+Changed paths:
+   M /irssi/trunk/Makefile.am
+   M /irssi/trunk/configure.in
+
+Remove unused variable BUILD_PLUGINS.
+
+------------------------------------------------------------------------
+r4595 | exg | 2007-08-04 16:38:01 +0000 (Sat, 04 Aug 2007) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/window-commands.c
+
+Fix /window goto to reach all the items with the same name when there
+are more than two.
+
+------------------------------------------------------------------------
+r4594 | jilles | 2007-08-04 14:57:30 +0000 (Sat, 04 Aug 2007) | 2 lines
+Changed paths:
+   M /irssi/trunk/docs/perl.txt
+
+Document pidwait_add() and pidwait_remove() perl functions.
+
+------------------------------------------------------------------------
+r4593 | jilles | 2007-08-04 14:42:22 +0000 (Sat, 04 Aug 2007) | 2 lines
+Changed paths:
+   M /irssi/trunk/docs/perl.txt
+
+Move docs for /exec processes out of the IRC-specific section.
+
+------------------------------------------------------------------------
+r4592 | exg | 2007-08-04 14:32:28 +0000 (Sat, 04 Aug 2007) | 2 lines
+Changed paths:
+   M /irssi/trunk/Makefile.am
+   M /irssi/trunk/configure.in
+   D /irssi/trunk/irssi-config.in
+   D /irssi/trunk/stamp.h.in
+
+Remove unused files.
+
+------------------------------------------------------------------------
+r4591 | exg | 2007-08-04 12:49:57 +0000 (Sat, 04 Aug 2007) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-windows.c
+
+Replace 0 with NULL.
+
+------------------------------------------------------------------------
+r4590 | coekie | 2007-08-04 08:35:59 +0000 (Sat, 04 Aug 2007) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/perl/textui/TextUI.xs
+   M /irssi/trunk/src/perl/textui/module.h
+
+Add Perl bindings for some gui_entry methods.
+
+------------------------------------------------------------------------
+r4589 | jilles | 2007-08-03 17:24:25 +0000 (Fri, 03 Aug 2007) | 8 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/fe-irc-commands.c
+   M /irssi/trunk/src/fe-common/irc/fe-irc-messages.c
+
+- Make notices to +#channel (and all other STATUSMSG=)
+  appear in the channel window.
+- Make actions and ctcp to @#channel etc appear in the
+  channel window.
+- Clean up the code a little.
+
+This fixes bug #46 apart from incoming msg to +#channel.
+
+------------------------------------------------------------------------
+r4587 | jilles | 2007-07-26 14:41:35 +0000 (Thu, 26 Jul 2007) | 3 lines
+Changed paths:
+   M /irssi/trunk/docs/manual.txt
+
+Add Command/Server redirections section, mostly a
+reference to perl.txt's description.
+
+------------------------------------------------------------------------
+r4586 | exg | 2007-07-26 14:27:18 +0000 (Thu, 26 Jul 2007) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/windows-layout.c
+
+Sort the layout to save by refnum.
+
+------------------------------------------------------------------------
+r4585 | exg | 2007-07-26 14:15:12 +0000 (Thu, 26 Jul 2007) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/dcc/dcc-send.c
+
+Fix typo.
+
+------------------------------------------------------------------------
+r4584 | exg | 2007-07-26 14:06:38 +0000 (Thu, 26 Jul 2007) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/settings.c
+
+Remove backward compatibility for very old options.
+
+------------------------------------------------------------------------
+r4583 | exg | 2007-07-26 13:53:22 +0000 (Thu, 26 Jul 2007) | 6 lines
+Changed paths:
+   M /irssi/trunk/src/core/settings.c
+   M /irssi/trunk/src/fe-text/statusbar-items.c
+
+Change 'actlist_moves' boolean to 'actlist_sort' string which specifies the
+sorting type to use for the activity bar:
+- refnum (default)
+- recent (same as actlist_moves on)
+- level (sort by window level, same ordering used by active_window command)
+
+------------------------------------------------------------------------
+r4582 | exg | 2007-07-26 13:34:32 +0000 (Thu, 26 Jul 2007) | 2 lines
+Changed paths:
+   M /irssi/trunk/docs/help/in/window.in
+
+s/HELP LEVELS/LEVELS/
+
+------------------------------------------------------------------------
+r4581 | jilles | 2007-07-26 13:32:24 +0000 (Thu, 26 Jul 2007) | 2 lines
+Changed paths:
+   M /irssi/trunk/docs/manual.txt
+
+Correct description of masked channels (#channel:mask, IRCnet only).
+
+------------------------------------------------------------------------
+r4580 | jilles | 2007-07-26 13:24:11 +0000 (Thu, 26 Jul 2007) | 8 lines
+Changed paths:
+   M /irssi/trunk/docs/help/in/mode.in
+
+- Remove ircnet-specific +arO cmodes from /help mode.
+- Keep non-rfc1459 +eI as they are very common.
+- Change heading to "common channel modes" and add a remark
+  below referring the user to network-specific documentation;
+  because we use 005 CHANMODES it is less important which
+  cmodes irssi knows internally.
+- Some minor tweaking.
+
+------------------------------------------------------------------------
+r4579 | Geert | 2007-07-12 15:04:18 +0000 (Thu, 12 Jul 2007) | 3 lines
+Changed paths:
+   M /irssi/trunk/docs/help/in/window.in
+
+[17:00:34] :@tomaw: Geert: Fancy doing me a very simple favour? :)
+[17:01:09] :@tomaw: Add HELP LEVELS to see also in /HELP WINDOW :)
+
+------------------------------------------------------------------------
+r4578 | jilles | 2007-07-11 21:00:37 +0000 (Wed, 11 Jul 2007) | 2 lines
+Changed paths:
+   M /irssi/trunk/NEWS
+
+Update NEWS file, always mentioning the bug number if any.
+
+------------------------------------------------------------------------
+r4577 | jilles | 2007-07-08 19:00:42 +0000 (Sun, 08 Jul 2007) | 4 lines
+Changed paths:
+   M /irssi/trunk/src/core/network-openssl.c
+
+SSL: Fix assertion failures when net_connect_ip() detects
+an error, e.g. bad bind address, localhost connection
+refused.
+
+------------------------------------------------------------------------
+r4576 | jilles | 2007-07-08 18:39:32 +0000 (Sun, 08 Jul 2007) | 5 lines
+Changed paths:
+   M /irssi/trunk/src/core/network-openssl.c
+
+Fix crash when SSL-connecting to something which closes
+the connection immediately. Also clarify the error message
+when the SSL handshake fails.
+This bug was introduced after 0.8.11.
+
+------------------------------------------------------------------------
+r4575 | jilles | 2007-07-08 16:44:35 +0000 (Sun, 08 Jul 2007) | 6 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/fe-events-numeric.c
+   M /irssi/trunk/src/fe-common/irc/fe-irc-channels.c
+
+Update channel forwarding code.
+This is now on numeric 470 instead of 379.
+It works with hyperion and charybdis, and puts the
+channel you were forwarded to in the window the original
+channel would be in.
+
+------------------------------------------------------------------------
+r4574 | jilles | 2007-07-07 10:49:19 +0000 (Sat, 07 Jul 2007) | 4 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/fe-events-numeric.c
+
+Fix 477 numeric broken by r4572
+(should be displayed in status if it's a join failure,
+channel window otherwise)
+
+------------------------------------------------------------------------
+r4573 | jilles | 2007-07-06 21:54:32 +0000 (Fri, 06 Jul 2007) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/lastlog.c
+
+/lastlog -file: use stdio instead of two write(2) calls per line
+
+------------------------------------------------------------------------
+r4572 | jilles | 2007-07-06 21:43:23 +0000 (Fri, 06 Jul 2007) | 6 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/channel-events.c
+
+Move the check for 4xx numeric for join failures last, so
+that the CHANNEL_REC is still around when handlers for
+specific numerics are executed. This allows removing the
+ugly special case for 437; I will also use this for 470
+(channel forwarding).
+
+------------------------------------------------------------------------
+r4571 | jilles | 2007-06-29 18:45:14 +0000 (Fri, 29 Jun 2007) | 4 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/irc-servers.c
+
+If 001 has not been received yet, also treat "Banned" or
+"Bad user info" (case insensitive) in an ERROR message as
+an indication of a server ban.
+
+------------------------------------------------------------------------
+r4570 | exg | 2007-06-28 22:50:58 +0000 (Thu, 28 Jun 2007) | 4 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/textbuffer.c
+
+Do not require that a line matches the input level to add it to the
+'after' context, so that '/lastlog -hilight -after 10 foo' has the same
+semantic as '/lastlog -hilight -before 10 foo'.
+
+------------------------------------------------------------------------
+r4569 | exg | 2007-06-28 18:29:03 +0000 (Thu, 28 Jun 2007) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/textbuffer.c
+
+Do not compile the regexp if the input string is empty.
+
+------------------------------------------------------------------------
+r4568 | jilles | 2007-06-20 21:35:23 +0000 (Wed, 20 Jun 2007) | 2 lines
+Changed paths:
+   M /irssi/trunk/NEWS
+
+NEWS: describe my changes (not others') since 0.8.11.
+
+------------------------------------------------------------------------
+r4567 | exg | 2007-06-17 22:54:00 +0000 (Sun, 17 Jun 2007) | 3 lines
+Changed paths:
+   M /irssi/trunk/configure.in
+
+Do not invoke pkg-config to check that openssl is present,
+PKG_CHECK_MODULES does it for us.
+
+------------------------------------------------------------------------
+r4566 | exg | 2007-06-17 22:13:24 +0000 (Sun, 17 Jun 2007) | 2 lines
+Changed paths:
+   M /irssi/trunk/configure.in
+
+More accurate reporting of enabled/disabled features.
+
+------------------------------------------------------------------------
+r4565 | exg | 2007-06-17 21:55:10 +0000 (Sun, 17 Jun 2007) | 2 lines
+Changed paths:
+   M /irssi/trunk/autogen.sh
+   A /irssi/trunk/glib-2.0.m4 (from /irssi/trunk/glib-2.0.m4_:4564)
+   D /irssi/trunk/glib-2.0.m4_
+
+mv glib-2.0.m4{_,}
+
+------------------------------------------------------------------------
+r4564 | exg | 2007-06-17 21:44:42 +0000 (Sun, 17 Jun 2007) | 2 lines
+Changed paths:
+   M /irssi/trunk/glib-2.0.m4_
+
+Update to latest revision.
+
+------------------------------------------------------------------------
+r4563 | exg | 2007-06-17 21:29:34 +0000 (Sun, 17 Jun 2007) | 3 lines
+Changed paths:
+   M /irssi/trunk/autogen.sh
+
+Do not print the no arguments warning message if NOCONFIGURE is set,
+reported by znx.
+
+------------------------------------------------------------------------
+r4562 | exg | 2007-06-17 18:36:33 +0000 (Sun, 17 Jun 2007) | 2 lines
+Changed paths:
+   M /irssi/trunk/configure.in
+
+Remove leftover.
+
+------------------------------------------------------------------------
+r4561 | exg | 2007-06-17 18:36:02 +0000 (Sun, 17 Jun 2007) | 2 lines
+Changed paths:
+   M /irssi/trunk/configure.in
+
+Reindent.
+
+------------------------------------------------------------------------
+r4560 | exg | 2007-06-17 14:40:13 +0000 (Sun, 17 Jun 2007) | 2 lines
+Changed paths:
+   M /irssi/trunk/configure.in
+   M /irssi/trunk/src/fe-text/Makefile.am
+   D /irssi/trunk/src/fe-text/cuix-api.c
+   D /irssi/trunk/src/fe-text/cuix-api.h
+   D /irssi/trunk/src/fe-text/cuix-lib.c
+   D /irssi/trunk/src/fe-text/cuix-lib.h
+   D /irssi/trunk/src/fe-text/cuix.c
+   D /irssi/trunk/src/fe-text/cuix.h
+   M /irssi/trunk/src/fe-text/gui-printtext.c
+   M /irssi/trunk/src/fe-text/term-curses.c
+   M /irssi/trunk/src/fe-text/term-curses.h
+   M /irssi/trunk/src/fe-text/textbuffer-commands.c
+   M /irssi/trunk/src/fe-text/textbuffer-view.c
+
+Remove cuix from trunk.
+
+------------------------------------------------------------------------
+r4559 | jilles | 2007-06-17 13:22:36 +0000 (Sun, 17 Jun 2007) | 6 lines
+Changed paths:
+   M /irssi/trunk/src/perl/Makefile.am
+
+Use $(mkdir_p) instead of if [ ! -d X ]; then mkdir X; fi,
+fixing a race condition with parallel builds.
+
+Submitted by mandriva
+Slightly simplified by me
+
+------------------------------------------------------------------------
+r4557 | exg | 2007-06-16 15:11:42 +0000 (Sat, 16 Jun 2007) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/chat-commands.c
+
+Document -window option of join command.
+
+------------------------------------------------------------------------
+r4556 | exg | 2007-06-16 15:02:17 +0000 (Sat, 16 Jun 2007) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-queries.c
+
+Use again MSGLEVEL_NICKS for printing a nick change in queries, broken in
+r2389.
+
+------------------------------------------------------------------------
+r4555 | exg | 2007-06-16 14:58:13 +0000 (Sat, 16 Jun 2007) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-channels.c
+   M /irssi/trunk/src/fe-common/core/fe-queries.c
+
+Revert r4549.
+
+------------------------------------------------------------------------
+r4554 | exg | 2007-06-16 14:50:05 +0000 (Sat, 16 Jun 2007) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-messages.c
+
+Fix comment.
+
+------------------------------------------------------------------------
+r4553 | c0ffee | 2007-06-14 19:12:10 +0000 (Thu, 14 Jun 2007) | 1 line
+Changed paths:
+   M /irssi/trunk/src/core/modules-load.c
+
+fix off by one error when extracting e.g. fe from fe_silc
+------------------------------------------------------------------------
+r4552 | jilles | 2007-06-13 16:16:44 +0000 (Wed, 13 Jun 2007) | 3 lines
+Changed paths:
+   M /irssi/trunk/docs/help/in/ban.in
+
+Change 'looser' to 'loser' in help file.
+Bug #512
+
+------------------------------------------------------------------------
+r4551 | cras | 2007-06-10 19:37:06 +0000 (Sun, 10 Jun 2007) | 4 lines
+Changed paths:
+   M /irssi/trunk/src/core/network.c
+
+Removed special error==1 handling from net_gethosterror(). It wasn't used
+anymore, and even when it originally was used it was wrong.
+
+
+------------------------------------------------------------------------
+r4550 | exg | 2007-06-10 18:00:26 +0000 (Sun, 10 Jun 2007) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/window-commands.c
+
+Make /window goto start searching at the window after the active one and stop
+at the one before, bug #332.
+
+------------------------------------------------------------------------
+r4549 | exg | 2007-06-10 17:15:14 +0000 (Sun, 10 Jun 2007) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-channels.c
+   M /irssi/trunk/src/fe-common/core/fe-queries.c
+
+Make -window option of /join and /query accept an optional numeric argument
+that specifies the refnum of the window to create the item in, bug #203.
+
+------------------------------------------------------------------------
+r4548 | exg | 2007-06-10 17:07:31 +0000 (Sun, 10 Jun 2007) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/core/commands.c
+
+When parsing a '@' option verify that the whole argument, rather than only the
+first character, is numeric.
+
+------------------------------------------------------------------------
+r4547 | jilles | 2007-06-09 20:22:28 +0000 (Sat, 09 Jun 2007) | 2 lines
+Changed paths:
+   M /irssi/trunk/AUTHORS
+
+AUTHORS: move myself from contributors to staff
+
+------------------------------------------------------------------------
+r4546 | jilles | 2007-06-08 18:49:24 +0000 (Fri, 08 Jun 2007) | 4 lines
+Changed paths:
+   A /irssi/trunk/docs/help/in/accept.in
+   M /irssi/trunk/docs/help/in/ignore.in
+   M /irssi/trunk/docs/help/in/silence.in
+   M /irssi/trunk/src/fe-common/irc/fe-events-numeric.c
+   M /irssi/trunk/src/fe-common/irc/module-formats.c
+   M /irssi/trunk/src/fe-common/irc/module-formats.h
+   M /irssi/trunk/src/irc/core/irc-commands.c
+
+Add support for the ACCEPT command, which is part of the
+CALLERID server side ignore system in hybrid7 and derived
+ircds.
+
+------------------------------------------------------------------------
+r4545 | jilles | 2007-06-08 15:59:02 +0000 (Fri, 08 Jun 2007) | 2 lines
+Changed paths:
+   M /irssi/trunk/docs/help/in/connect.in
+   M /irssi/trunk/docs/help/in/ctcp.in
+   M /irssi/trunk/docs/help/in/die.in
+   M /irssi/trunk/docs/help/in/info.in
+   M /irssi/trunk/docs/help/in/invitelist.in
+   M /irssi/trunk/docs/help/in/ison.in
+   M /irssi/trunk/docs/help/in/kick.in
+   M /irssi/trunk/docs/help/in/knock.in
+   M /irssi/trunk/docs/help/in/links.in
+   M /irssi/trunk/docs/help/in/map.in
+   M /irssi/trunk/docs/help/in/motd.in
+   M /irssi/trunk/docs/help/in/op.in
+   M /irssi/trunk/docs/help/in/ping.in
+   M /irssi/trunk/docs/help/in/rehash.in
+   M /irssi/trunk/docs/help/in/reload.in
+   M /irssi/trunk/docs/help/in/restart.in
+   M /irssi/trunk/docs/help/in/rping.in
+   M /irssi/trunk/docs/help/in/sconnect.in
+   M /irssi/trunk/docs/help/in/servlist.in
+   M /irssi/trunk/docs/help/in/silence.in
+   M /irssi/trunk/docs/help/in/squery.in
+   M /irssi/trunk/docs/help/in/squit.in
+   M /irssi/trunk/docs/help/in/stats.in
+   M /irssi/trunk/docs/help/in/trace.in
+   M /irssi/trunk/docs/help/in/unsilence.in
+   M /irssi/trunk/docs/help/in/userhost.in
+   M /irssi/trunk/docs/help/in/wait.in
+   M /irssi/trunk/docs/help/in/wall.in
+   M /irssi/trunk/docs/help/in/wallops.in
+   M /irssi/trunk/docs/help/in/who.in
+   M /irssi/trunk/docs/help/in/whois.in
+   M /irssi/trunk/src/irc/core/irc-commands.c
+
+Various updates/enhancements/fixes to the help files.
+
+------------------------------------------------------------------------
+r4544 | jilles | 2007-06-06 17:57:28 +0000 (Wed, 06 Jun 2007) | 5 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/irc-commands.c
+
+Don't add the same mask to the knockout list multiple times.
+This fixes bug #510. Note that #510 only happened if multiple
+bans were sent before the MODE came back and multiple unbans
+were sent before the MODE came back.
+
+------------------------------------------------------------------------
+r4543 | exg | 2007-06-06 17:49:10 +0000 (Wed, 06 Jun 2007) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/completion.c
+
+Enhance /set completer to complete option names also when a command option
+is present and to complete option values.
+
+------------------------------------------------------------------------
+r4542 | exg | 2007-06-06 16:55:48 +0000 (Wed, 06 Jun 2007) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-messages.c
+
+Add g_strdup forgotten in r4471.
+
+------------------------------------------------------------------------
+r4541 | jilles | 2007-06-05 20:24:33 +0000 (Tue, 05 Jun 2007) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/module-formats.c
+
+Put "account" before services login name (330 numeric, whois_extra).
+
+------------------------------------------------------------------------
+r4540 | exg | 2007-06-05 12:03:18 +0000 (Tue, 05 Jun 2007) | 4 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-settings.c
+
+Cleanup cmd_set by moving the code to print the settings matching a
+pattern in its own function and using settings_get_record for exact
+matching.
+
+------------------------------------------------------------------------
+r4539 | exg | 2007-06-05 11:27:58 +0000 (Tue, 05 Jun 2007) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/completion.c
+
+Remove code duplication.
+
+------------------------------------------------------------------------
+r4538 | exg | 2007-06-04 09:59:03 +0000 (Mon, 04 Jun 2007) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/window-commands.c
+
+Change active_window to select, when there is more than one window
+with the highest data level, the window with the lowest refnum.
+
+------------------------------------------------------------------------
+r4537 | jilles | 2007-06-03 13:08:47 +0000 (Sun, 03 Jun 2007) | 11 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/channel-events.c
+   M /irssi/trunk/src/irc/core/channel-rejoin.c
+
+- Repair channels_rejoin_unavailable. Enabled by default,
+  this retries joins that failed because of netsplits
+  (channel temporarily unavailable (437), duplicate channel)
+  A few servers abuse 437 for juped channels which should
+  not be retried, you should disable channels_rejoin_unavailable
+  if this is a problem.
+- Display 437 and 407 numerics if channels_rejoin_unavailable
+  is not enabled.
+
+Bug #495
+
+------------------------------------------------------------------------
+r4536 | exg | 2007-05-31 23:56:51 +0000 (Thu, 31 May 2007) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/network-openssl.c
+   M /irssi/trunk/src/core/network.h
+   M /irssi/trunk/src/core/servers.c
+
+Rewrite SSL connection/handshake code.
+
+------------------------------------------------------------------------
+r4535 | exg | 2007-05-31 13:56:35 +0000 (Thu, 31 May 2007) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/formats.c
+   M /irssi/trunk/src/fe-text/gui-entry.c
+   M /irssi/trunk/src/fe-text/term-terminfo.c
+   M /irssi/trunk/src/fe-text/textbuffer-view.c
+
+Assume width 1 for control characters in places where a non-negative width is
+expected.
+
+------------------------------------------------------------------------
+r4534 | exg | 2007-05-31 13:19:05 +0000 (Thu, 31 May 2007) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/utf8.h
+   M /irssi/trunk/src/fe-text/gui-entry.c
+   M /irssi/trunk/src/fe-text/term.h
+   M /irssi/trunk/src/fe-text/textbuffer-view.c
+
+Rename IS_PRINTABLE macro to unichar_isprint and move it to utf8.h.
+
+------------------------------------------------------------------------
+r4533 | c0ffee | 2007-05-31 06:37:13 +0000 (Thu, 31 May 2007) | 1 line
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-modules.c
+
+skip fe_common prefix when freeing prefix list
+------------------------------------------------------------------------
+r4532 | jilles | 2007-05-30 21:18:22 +0000 (Wed, 30 May 2007) | 8 lines
+Changed paths:
+   M /irssi/trunk/src/core/servers-reconnect.c
+
+Apply patch from bug #202 (from "Irssi Fan"); when calling
+reconnect_save_status() for a server that has not sent 001
+yet, do not free and reallocate conn->channels twice, and do
+not copy the channels if server->connrec->no_autojoin_channels
+is set. It seems a special case because reconnect_save_status()
+is not usually called for servers that have not sent 001
+yet, but it can't really hurt.
+
+------------------------------------------------------------------------
+r4531 | exg | 2007-05-30 21:17:59 +0000 (Wed, 30 May 2007) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/statusbar-items.c
+
+Cleanup and optimize a bit sig_statusbar_activity_hilight.
+
+------------------------------------------------------------------------
+r4530 | exg | 2007-05-30 17:30:35 +0000 (Wed, 30 May 2007) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/Makefile.am
+
+Do not install utf8.h, it is a private header.
+
+------------------------------------------------------------------------
+r4529 | exg | 2007-05-29 08:19:24 +0000 (Tue, 29 May 2007) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-none/irssi.c
+
+Fix build after last change to option processing.
+
+------------------------------------------------------------------------
+r4528 | exg | 2007-05-29 07:52:32 +0000 (Tue, 29 May 2007) | 2 lines
+Changed paths:
+   M /irssi/trunk/autogen.sh
+
+Add missing quote.
+
+------------------------------------------------------------------------
+r4526 | jilles | 2007-05-28 13:59:05 +0000 (Mon, 28 May 2007) | 7 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/fe-events-numeric.c
+
+- Display more numerics (such as cannot send to channel,
+  cannot /msg, user is +g) in the channel or query window,
+  if any.
+- Put the target name in front of "generic" numerics
+  printed to the channel/query window (useful if there are
+  multiple in one window, or if there is no such window).
+
+------------------------------------------------------------------------
+r4525 | exg | 2007-05-26 12:19:08 +0000 (Sat, 26 May 2007) | 3 lines
+Changed paths:
+   M /irssi/trunk/docs/irssi.1
+   M /irssi/trunk/src/core/session.c
+
+Hide --session from --help output and remove its mention from the manual,
+internal use only.
+
+------------------------------------------------------------------------
+r4524 | exg | 2007-05-26 12:00:15 +0000 (Sat, 26 May 2007) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/core.c
+
+Oops.
+
+------------------------------------------------------------------------
+r4523 | jilles | 2007-05-25 23:27:27 +0000 (Fri, 25 May 2007) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/fe-events-numeric.c
+   M /irssi/trunk/src/irc/core/irc-servers.c
+
+Pick up host changes on charybdis and ircu servers (396 numeric).
+
+------------------------------------------------------------------------
+r4522 | exg | 2007-05-25 23:21:38 +0000 (Fri, 25 May 2007) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/gui-entry.c
+
+Make word commands unicode friendly.
+
+------------------------------------------------------------------------
+r4521 | exg | 2007-05-25 22:21:39 +0000 (Fri, 25 May 2007) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/gui-entry.c
+   M /irssi/trunk/src/fe-text/gui-entry.h
+   M /irssi/trunk/src/fe-text/gui-readline.c
+
+Add function to delete the whole cell under the cursor and use it for
+delete_character.
+
+------------------------------------------------------------------------
+r4520 | exg | 2007-05-25 22:13:24 +0000 (Fri, 25 May 2007) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/gui-entry.c
+
+Move the cursor cell-wise in utf8.
+
+------------------------------------------------------------------------
+r4519 | exg | 2007-05-25 22:06:32 +0000 (Fri, 25 May 2007) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/gui-entry.c
+
+Forbid insertion of a character with width 0 as the first character in
+the prompt.
+
+------------------------------------------------------------------------
+r4518 | exg | 2007-05-25 21:56:30 +0000 (Fri, 25 May 2007) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/Makefile.am
+   M /irssi/trunk/src/fe-common/core/formats.c
+   M /irssi/trunk/src/fe-common/core/utf8.c
+   M /irssi/trunk/src/fe-common/core/utf8.h
+   A /irssi/trunk/src/fe-common/core/wcwidth.c
+   M /irssi/trunk/src/fe-text/gui-entry.c
+   M /irssi/trunk/src/fe-text/term-terminfo.c
+   M /irssi/trunk/src/fe-text/textbuffer-view.c
+
+Replace utf8_width with Markus Kuhn's wcwidth.
+
+------------------------------------------------------------------------
+r4511 | exg | 2007-05-24 00:44:29 +0000 (Thu, 24 May 2007) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-common-core.c
+   M /irssi/trunk/src/fe-text/irssi.c
+
+Move 'version' option in main.
+
+------------------------------------------------------------------------
+r4510 | exg | 2007-05-24 00:25:36 +0000 (Thu, 24 May 2007) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/core.c
+   M /irssi/trunk/src/core/core.h
+   M /irssi/trunk/src/core/session.c
+   M /irssi/trunk/src/core/session.h
+   M /irssi/trunk/src/fe-common/core/fe-common-core.c
+   M /irssi/trunk/src/fe-common/core/fe-common-core.h
+   M /irssi/trunk/src/fe-text/irssi.c
+
+Cleanup option handling.
+
+------------------------------------------------------------------------
+r4509 | exg | 2007-05-20 23:13:29 +0000 (Sun, 20 May 2007) | 2 lines
+Changed paths:
+   M /irssi/trunk/autogen.sh
+   M /irssi/trunk/configure.in
+   D /irssi/trunk/glib.m4_
+   M /irssi/trunk/src/core/network-openssl.c
+   M /irssi/trunk/src/core/nicklist.c
+   M /irssi/trunk/src/core/nicklist.h
+   M /irssi/trunk/src/core/recode.c
+   M /irssi/trunk/src/core/session.c
+   M /irssi/trunk/src/fe-common/core/fe-channels.c
+   M /irssi/trunk/src/fe-common/core/fe-recode.c
+   M /irssi/trunk/src/fe-common/core/formats.c
+   M /irssi/trunk/src/fe-common/core/keyboard.c
+   M /irssi/trunk/src/perl/perl-common.c
+
+Farewell glib-1.
+
+------------------------------------------------------------------------
+r4508 | jilles | 2007-05-20 20:07:12 +0000 (Sun, 20 May 2007) | 6 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/fe-events-numeric.c
+
+If we get a ERR_NOSUCHNICK for the nick "*", display
+the text in the numeric rather than a fixed "no such
+nick/channel". This often contains more information for
+at least ircu/ratbox/charybdis (Target left IRC with
+failed text when /msg crosses quit/split).
+
+------------------------------------------------------------------------
+r4507 | jilles | 2007-05-20 19:29:38 +0000 (Sun, 20 May 2007) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/fe-events-numeric.c
+   M /irssi/trunk/src/irc/core/irc-nicklist.c
+
+Fix recognition of realnames starting with spaces in /who replies.
+
+------------------------------------------------------------------------
+r4503 | c0ffee | 2007-05-20 16:38:28 +0000 (Sun, 20 May 2007) | 1 line
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-modules.c
+
+add fe_common to the list of possible submodules
+------------------------------------------------------------------------
+r4499 | exg | 2007-05-18 14:41:44 +0000 (Fri, 18 May 2007) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/recode.c
+
+Factor common code in recode_{in,out}.
+
+------------------------------------------------------------------------
+r4498 | exg | 2007-05-18 10:15:17 +0000 (Fri, 18 May 2007) | 3 lines
+Changed paths:
+   M /irssi/trunk/curses.m4
+
+Quote macro name in AC_DEFUN calls.
+Patch by znx, bug #499.
+
+------------------------------------------------------------------------
+r4497 | exg | 2007-05-18 09:56:08 +0000 (Fri, 18 May 2007) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/irc-channels.c
+
+Use CASEMAPPING dependent comparison to match channel names.
+Patch by Jon Mayo, bug #436.
+
+------------------------------------------------------------------------
+r4496 | exg | 2007-05-18 09:51:30 +0000 (Fri, 18 May 2007) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/irc-nicklist.h
+
+Fix irc_nickcmp_ascii by mapping only ASCII 65-90 to the corresponding
+lowercase counterparts.
+
+------------------------------------------------------------------------
+r4495 | exg | 2007-05-18 09:49:11 +0000 (Fri, 18 May 2007) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/irc-servers.c
+
+Use rfc1459 comparison for nicks by default (it is not a functional change
+because irc_nickcmp_ascii is bogusly the same as irc_nickcmp_rfc1459).
+
+------------------------------------------------------------------------
+r4494 | exg | 2007-05-16 17:02:46 +0000 (Wed, 16 May 2007) | 2 lines
+Changed paths:
+   M /irssi/trunk/irssi.conf
+
+Add $tag to 'window' item in default configuration.
+
+------------------------------------------------------------------------
+r4493 | exg | 2007-05-14 21:22:41 +0000 (Mon, 14 May 2007) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/special-vars.c
+
+Remove code duplication.
+
+------------------------------------------------------------------------
+r4492 | coekie | 2007-05-12 13:19:35 +0000 (Sat, 12 May 2007) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/modes.c
+
+Update chanop flag before emitting nick mode changed signal (patch by Johan Kiviniemi)
+
+------------------------------------------------------------------------
+r4491 | exg | 2007-05-10 20:33:02 +0000 (Thu, 10 May 2007) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/core/log.c
+
+Allow logging of lines with no target only to logs with no items or with a
+wildcard item.
+
+------------------------------------------------------------------------
+r4490 | coekie | 2007-05-08 18:41:10 +0000 (Tue, 08 May 2007) | 1 line
+Changed paths:
+   M /irssi/trunk/src/core/args.c
+   M /irssi/trunk/src/core/channels-setup.c
+   M /irssi/trunk/src/core/channels.c
+   M /irssi/trunk/src/core/chat-commands.c
+   M /irssi/trunk/src/core/chat-protocols.c
+   M /irssi/trunk/src/core/chatnets.c
+   M /irssi/trunk/src/core/commands.c
+   M /irssi/trunk/src/core/core.c
+   M /irssi/trunk/src/core/expandos.c
+   M /irssi/trunk/src/core/ignore.c
+   M /irssi/trunk/src/core/levels.c
+   M /irssi/trunk/src/core/line-split.c
+   M /irssi/trunk/src/core/log-away.c
+   M /irssi/trunk/src/core/log.c
+   M /irssi/trunk/src/core/masks.c
+   M /irssi/trunk/src/core/misc.c
+   M /irssi/trunk/src/core/modules-load.c
+   M /irssi/trunk/src/core/modules.c
+   M /irssi/trunk/src/core/net-disconnect.c
+   M /irssi/trunk/src/core/net-nonblock.c
+   M /irssi/trunk/src/core/net-sendbuffer.c
+   M /irssi/trunk/src/core/network-openssl.c
+   M /irssi/trunk/src/core/network.c
+   M /irssi/trunk/src/core/nicklist.c
+   M /irssi/trunk/src/core/nickmatch-cache.c
+   M /irssi/trunk/src/core/pidwait.c
+   M /irssi/trunk/src/core/queries.c
+   M /irssi/trunk/src/core/rawlog.c
+   M /irssi/trunk/src/core/recode.c
+   M /irssi/trunk/src/core/servers-reconnect.c
+   M /irssi/trunk/src/core/servers-setup.c
+   M /irssi/trunk/src/core/servers.c
+   M /irssi/trunk/src/core/session.c
+   M /irssi/trunk/src/core/settings.c
+   M /irssi/trunk/src/core/signals.c
+   M /irssi/trunk/src/core/special-vars.c
+   M /irssi/trunk/src/core/write-buffer.c
+   M /irssi/trunk/src/fe-common/core/autorun.c
+   M /irssi/trunk/src/fe-common/core/chat-completion.c
+   M /irssi/trunk/src/fe-common/core/command-history.c
+   M /irssi/trunk/src/fe-common/core/completion.c
+   M /irssi/trunk/src/fe-common/core/fe-channels.c
+   M /irssi/trunk/src/fe-common/core/fe-common-core.c
+   M /irssi/trunk/src/fe-common/core/fe-core-commands.c
+   M /irssi/trunk/src/fe-common/core/fe-exec.c
+   M /irssi/trunk/src/fe-common/core/fe-expandos.c
+   M /irssi/trunk/src/fe-common/core/fe-help.c
+   M /irssi/trunk/src/fe-common/core/fe-ignore-messages.c
+   M /irssi/trunk/src/fe-common/core/fe-ignore.c
+   M /irssi/trunk/src/fe-common/core/fe-log.c
+   M /irssi/trunk/src/fe-common/core/fe-messages.c
+   M /irssi/trunk/src/fe-common/core/fe-modules.c
+   M /irssi/trunk/src/fe-common/core/fe-queries.c
+   M /irssi/trunk/src/fe-common/core/fe-recode.c
+   M /irssi/trunk/src/fe-common/core/fe-server.c
+   M /irssi/trunk/src/fe-common/core/fe-settings.c
+   M /irssi/trunk/src/fe-common/core/fe-windows.c
+   M /irssi/trunk/src/fe-common/core/formats.c
+   M /irssi/trunk/src/fe-common/core/hilight-text.c
+   M /irssi/trunk/src/fe-common/core/keyboard.c
+   M /irssi/trunk/src/fe-common/core/module-formats.c
+   M /irssi/trunk/src/fe-common/core/printtext.c
+   M /irssi/trunk/src/fe-common/core/themes.c
+   M /irssi/trunk/src/fe-common/core/translation.c
+   M /irssi/trunk/src/fe-common/core/utf8.c
+   M /irssi/trunk/src/fe-common/core/window-activity.c
+   M /irssi/trunk/src/fe-common/core/window-commands.c
+   M /irssi/trunk/src/fe-common/core/window-items.c
+   M /irssi/trunk/src/fe-common/core/windows-layout.c
+   M /irssi/trunk/src/fe-common/irc/dcc/fe-dcc-chat-messages.c
+   M /irssi/trunk/src/fe-common/irc/dcc/fe-dcc-chat.c
+   M /irssi/trunk/src/fe-common/irc/dcc/fe-dcc-get.c
+   M /irssi/trunk/src/fe-common/irc/dcc/fe-dcc-send.c
+   M /irssi/trunk/src/fe-common/irc/dcc/fe-dcc-server.c
+   M /irssi/trunk/src/fe-common/irc/dcc/fe-dcc.c
+   M /irssi/trunk/src/fe-common/irc/dcc/module-formats.c
+   M /irssi/trunk/src/fe-common/irc/fe-common-irc.c
+   M /irssi/trunk/src/fe-common/irc/fe-ctcp.c
+   M /irssi/trunk/src/fe-common/irc/fe-events-numeric.c
+   M /irssi/trunk/src/fe-common/irc/fe-events.c
+   M /irssi/trunk/src/fe-common/irc/fe-irc-channels.c
+   M /irssi/trunk/src/fe-common/irc/fe-irc-commands.c
+   M /irssi/trunk/src/fe-common/irc/fe-irc-messages.c
+   M /irssi/trunk/src/fe-common/irc/fe-irc-queries.c
+   M /irssi/trunk/src/fe-common/irc/fe-irc-server.c
+   M /irssi/trunk/src/fe-common/irc/fe-ircnet.c
+   M /irssi/trunk/src/fe-common/irc/fe-modes.c
+   M /irssi/trunk/src/fe-common/irc/fe-netjoin.c
+   M /irssi/trunk/src/fe-common/irc/fe-netsplit.c
+   M /irssi/trunk/src/fe-common/irc/irc-completion.c
+   M /irssi/trunk/src/fe-common/irc/module-formats.c
+   M /irssi/trunk/src/fe-common/irc/notifylist/fe-notifylist.c
+   M /irssi/trunk/src/fe-common/irc/notifylist/module-formats.c
+   M /irssi/trunk/src/fe-none/irssi.c
+   M /irssi/trunk/src/fe-text/gui-entry.c
+   M /irssi/trunk/src/fe-text/gui-expandos.c
+   M /irssi/trunk/src/fe-text/gui-printtext.c
+   M /irssi/trunk/src/fe-text/gui-readline.c
+   M /irssi/trunk/src/fe-text/gui-windows.c
+   M /irssi/trunk/src/fe-text/irssi.c
+   M /irssi/trunk/src/fe-text/lastlog.c
+   M /irssi/trunk/src/fe-text/mainwindow-activity.c
+   M /irssi/trunk/src/fe-text/mainwindows-layout.c
+   M /irssi/trunk/src/fe-text/mainwindows.c
+   M /irssi/trunk/src/fe-text/module-formats.c
+   M /irssi/trunk/src/fe-text/statusbar-config.c
+   M /irssi/trunk/src/fe-text/statusbar-items.c
+   M /irssi/trunk/src/fe-text/statusbar.c
+   M /irssi/trunk/src/fe-text/term-curses.c
+   M /irssi/trunk/src/fe-text/term-dummy.c
+   M /irssi/trunk/src/fe-text/term-terminfo.c
+   M /irssi/trunk/src/fe-text/term.c
+   M /irssi/trunk/src/fe-text/textbuffer-commands.c
+   M /irssi/trunk/src/fe-text/textbuffer-reformat.c
+   M /irssi/trunk/src/fe-text/textbuffer-view.c
+   M /irssi/trunk/src/fe-text/textbuffer.c
+   M /irssi/trunk/src/irc/bot/bot-events.c
+   M /irssi/trunk/src/irc/bot/bot-irc-commands.c
+   M /irssi/trunk/src/irc/bot/bot-users.c
+   M /irssi/trunk/src/irc/bot/bot.c
+   M /irssi/trunk/src/irc/bot/botnet-connection.c
+   M /irssi/trunk/src/irc/bot/botnet-users.c
+   M /irssi/trunk/src/irc/bot/botnet.c
+   M /irssi/trunk/src/irc/core/bans.c
+   M /irssi/trunk/src/irc/core/channel-events.c
+   M /irssi/trunk/src/irc/core/channel-rejoin.c
+   M /irssi/trunk/src/irc/core/channels-query.c
+   M /irssi/trunk/src/irc/core/ctcp.c
+   M /irssi/trunk/src/irc/core/irc-channels-setup.c
+   M /irssi/trunk/src/irc/core/irc-channels.c
+   M /irssi/trunk/src/irc/core/irc-chatnets.c
+   M /irssi/trunk/src/irc/core/irc-commands.c
+   M /irssi/trunk/src/irc/core/irc-core.c
+   M /irssi/trunk/src/irc/core/irc-expandos.c
+   M /irssi/trunk/src/irc/core/irc-masks.c
+   M /irssi/trunk/src/irc/core/irc-nicklist.c
+   M /irssi/trunk/src/irc/core/irc-queries.c
+   M /irssi/trunk/src/irc/core/irc-servers-reconnect.c
+   M /irssi/trunk/src/irc/core/irc-servers-setup.c
+   M /irssi/trunk/src/irc/core/irc-servers.c
+   M /irssi/trunk/src/irc/core/irc-session.c
+   M /irssi/trunk/src/irc/core/irc.c
+   M /irssi/trunk/src/irc/core/lag.c
+   M /irssi/trunk/src/irc/core/massjoin.c
+   M /irssi/trunk/src/irc/core/mode-lists.c
+   M /irssi/trunk/src/irc/core/modes.c
+   M /irssi/trunk/src/irc/core/netsplit.c
+   M /irssi/trunk/src/irc/core/servers-idle.c
+   M /irssi/trunk/src/irc/core/servers-redirect.c
+   M /irssi/trunk/src/irc/dcc/dcc-autoget.c
+   M /irssi/trunk/src/irc/dcc/dcc-chat.c
+   M /irssi/trunk/src/irc/dcc/dcc-get.c
+   M /irssi/trunk/src/irc/dcc/dcc-queue.c
+   M /irssi/trunk/src/irc/dcc/dcc-resume.c
+   M /irssi/trunk/src/irc/dcc/dcc-send.c
+   M /irssi/trunk/src/irc/dcc/dcc-server.c
+   M /irssi/trunk/src/irc/dcc/dcc.c
+   M /irssi/trunk/src/irc/flood/autoignore.c
+   M /irssi/trunk/src/irc/flood/flood.c
+   M /irssi/trunk/src/irc/notifylist/notify-commands.c
+   M /irssi/trunk/src/irc/notifylist/notify-ison.c
+   M /irssi/trunk/src/irc/notifylist/notify-setup.c
+   M /irssi/trunk/src/irc/notifylist/notify-whois.c
+   M /irssi/trunk/src/irc/notifylist/notifylist.c
+   M /irssi/trunk/src/irc/proxy/dump.c
+   M /irssi/trunk/src/irc/proxy/listen.c
+   M /irssi/trunk/src/irc/proxy/proxy.c
+   M /irssi/trunk/src/lib-config/get.c
+   M /irssi/trunk/src/lib-config/parse.c
+   M /irssi/trunk/src/lib-config/set.c
+   M /irssi/trunk/src/lib-config/write.c
+   M /irssi/trunk/src/perl/module-formats.c
+   M /irssi/trunk/src/perl/perl-common.c
+   M /irssi/trunk/src/perl/perl-core.c
+   M /irssi/trunk/src/perl/perl-fe.c
+   M /irssi/trunk/src/perl/perl-signals.c
+   M /irssi/trunk/src/perl/perl-sources.c
+
+Oops. Update address correctly now.
+------------------------------------------------------------------------
+r4489 | coekie | 2007-05-08 18:16:58 +0000 (Tue, 08 May 2007) | 1 line
+Changed paths:
+   M /irssi/trunk/src/core/args.c
+   M /irssi/trunk/src/core/channels-setup.c
+   M /irssi/trunk/src/core/channels.c
+   M /irssi/trunk/src/core/chat-commands.c
+   M /irssi/trunk/src/core/chat-protocols.c
+   M /irssi/trunk/src/core/chatnets.c
+   M /irssi/trunk/src/core/commands.c
+   M /irssi/trunk/src/core/core.c
+   M /irssi/trunk/src/core/expandos.c
+   M /irssi/trunk/src/core/ignore.c
+   M /irssi/trunk/src/core/levels.c
+   M /irssi/trunk/src/core/line-split.c
+   M /irssi/trunk/src/core/log-away.c
+   M /irssi/trunk/src/core/log.c
+   M /irssi/trunk/src/core/masks.c
+   M /irssi/trunk/src/core/misc.c
+   M /irssi/trunk/src/core/modules-load.c
+   M /irssi/trunk/src/core/modules.c
+   M /irssi/trunk/src/core/net-disconnect.c
+   M /irssi/trunk/src/core/net-nonblock.c
+   M /irssi/trunk/src/core/net-sendbuffer.c
+   M /irssi/trunk/src/core/network-openssl.c
+   M /irssi/trunk/src/core/network.c
+   M /irssi/trunk/src/core/nicklist.c
+   M /irssi/trunk/src/core/nickmatch-cache.c
+   M /irssi/trunk/src/core/pidwait.c
+   M /irssi/trunk/src/core/queries.c
+   M /irssi/trunk/src/core/rawlog.c
+   M /irssi/trunk/src/core/recode.c
+   M /irssi/trunk/src/core/servers-reconnect.c
+   M /irssi/trunk/src/core/servers-setup.c
+   M /irssi/trunk/src/core/servers.c
+   M /irssi/trunk/src/core/session.c
+   M /irssi/trunk/src/core/settings.c
+   M /irssi/trunk/src/core/signals.c
+   M /irssi/trunk/src/core/special-vars.c
+   M /irssi/trunk/src/core/write-buffer.c
+   M /irssi/trunk/src/fe-common/core/autorun.c
+   M /irssi/trunk/src/fe-common/core/chat-completion.c
+   M /irssi/trunk/src/fe-common/core/command-history.c
+   M /irssi/trunk/src/fe-common/core/completion.c
+   M /irssi/trunk/src/fe-common/core/fe-channels.c
+   M /irssi/trunk/src/fe-common/core/fe-common-core.c
+   M /irssi/trunk/src/fe-common/core/fe-core-commands.c
+   M /irssi/trunk/src/fe-common/core/fe-exec.c
+   M /irssi/trunk/src/fe-common/core/fe-expandos.c
+   M /irssi/trunk/src/fe-common/core/fe-help.c
+   M /irssi/trunk/src/fe-common/core/fe-ignore-messages.c
+   M /irssi/trunk/src/fe-common/core/fe-ignore.c
+   M /irssi/trunk/src/fe-common/core/fe-log.c
+   M /irssi/trunk/src/fe-common/core/fe-messages.c
+   M /irssi/trunk/src/fe-common/core/fe-modules.c
+   M /irssi/trunk/src/fe-common/core/fe-queries.c
+   M /irssi/trunk/src/fe-common/core/fe-recode.c
+   M /irssi/trunk/src/fe-common/core/fe-server.c
+   M /irssi/trunk/src/fe-common/core/fe-settings.c
+   M /irssi/trunk/src/fe-common/core/fe-windows.c
+   M /irssi/trunk/src/fe-common/core/formats.c
+   M /irssi/trunk/src/fe-common/core/hilight-text.c
+   M /irssi/trunk/src/fe-common/core/keyboard.c
+   M /irssi/trunk/src/fe-common/core/module-formats.c
+   M /irssi/trunk/src/fe-common/core/printtext.c
+   M /irssi/trunk/src/fe-common/core/themes.c
+   M /irssi/trunk/src/fe-common/core/translation.c
+   M /irssi/trunk/src/fe-common/core/utf8.c
+   M /irssi/trunk/src/fe-common/core/window-activity.c
+   M /irssi/trunk/src/fe-common/core/window-commands.c
+   M /irssi/trunk/src/fe-common/core/window-items.c
+   M /irssi/trunk/src/fe-common/core/windows-layout.c
+   M /irssi/trunk/src/fe-common/irc/dcc/fe-dcc-chat-messages.c
+   M /irssi/trunk/src/fe-common/irc/dcc/fe-dcc-chat.c
+   M /irssi/trunk/src/fe-common/irc/dcc/fe-dcc-get.c
+   M /irssi/trunk/src/fe-common/irc/dcc/fe-dcc-send.c
+   M /irssi/trunk/src/fe-common/irc/dcc/fe-dcc-server.c
+   M /irssi/trunk/src/fe-common/irc/dcc/fe-dcc.c
+   M /irssi/trunk/src/fe-common/irc/dcc/module-formats.c
+   M /irssi/trunk/src/fe-common/irc/fe-common-irc.c
+   M /irssi/trunk/src/fe-common/irc/fe-ctcp.c
+   M /irssi/trunk/src/fe-common/irc/fe-events-numeric.c
+   M /irssi/trunk/src/fe-common/irc/fe-events.c
+   M /irssi/trunk/src/fe-common/irc/fe-irc-channels.c
+   M /irssi/trunk/src/fe-common/irc/fe-irc-commands.c
+   M /irssi/trunk/src/fe-common/irc/fe-irc-messages.c
+   M /irssi/trunk/src/fe-common/irc/fe-irc-queries.c
+   M /irssi/trunk/src/fe-common/irc/fe-irc-server.c
+   M /irssi/trunk/src/fe-common/irc/fe-ircnet.c
+   M /irssi/trunk/src/fe-common/irc/fe-modes.c
+   M /irssi/trunk/src/fe-common/irc/fe-netjoin.c
+   M /irssi/trunk/src/fe-common/irc/fe-netsplit.c
+   M /irssi/trunk/src/fe-common/irc/irc-completion.c
+   M /irssi/trunk/src/fe-common/irc/module-formats.c
+   M /irssi/trunk/src/fe-common/irc/notifylist/fe-notifylist.c
+   M /irssi/trunk/src/fe-common/irc/notifylist/module-formats.c
+   M /irssi/trunk/src/fe-none/irssi.c
+   M /irssi/trunk/src/fe-text/gui-entry.c
+   M /irssi/trunk/src/fe-text/gui-expandos.c
+   M /irssi/trunk/src/fe-text/gui-printtext.c
+   M /irssi/trunk/src/fe-text/gui-readline.c
+   M /irssi/trunk/src/fe-text/gui-windows.c
+   M /irssi/trunk/src/fe-text/irssi.c
+   M /irssi/trunk/src/fe-text/lastlog.c
+   M /irssi/trunk/src/fe-text/mainwindow-activity.c
+   M /irssi/trunk/src/fe-text/mainwindows-layout.c
+   M /irssi/trunk/src/fe-text/mainwindows.c
+   M /irssi/trunk/src/fe-text/module-formats.c
+   M /irssi/trunk/src/fe-text/statusbar-config.c
+   M /irssi/trunk/src/fe-text/statusbar-items.c
+   M /irssi/trunk/src/fe-text/statusbar.c
+   M /irssi/trunk/src/fe-text/term-curses.c
+   M /irssi/trunk/src/fe-text/term-dummy.c
+   M /irssi/trunk/src/fe-text/term-terminfo.c
+   M /irssi/trunk/src/fe-text/term.c
+   M /irssi/trunk/src/fe-text/textbuffer-commands.c
+   M /irssi/trunk/src/fe-text/textbuffer-reformat.c
+   M /irssi/trunk/src/fe-text/textbuffer-view.c
+   M /irssi/trunk/src/fe-text/textbuffer.c
+   M /irssi/trunk/src/irc/bot/bot-events.c
+   M /irssi/trunk/src/irc/bot/bot-irc-commands.c
+   M /irssi/trunk/src/irc/bot/bot-users.c
+   M /irssi/trunk/src/irc/bot/bot.c
+   M /irssi/trunk/src/irc/bot/botnet-connection.c
+   M /irssi/trunk/src/irc/bot/botnet-users.c
+   M /irssi/trunk/src/irc/bot/botnet.c
+   M /irssi/trunk/src/irc/core/bans.c
+   M /irssi/trunk/src/irc/core/channel-events.c
+   M /irssi/trunk/src/irc/core/channel-rejoin.c
+   M /irssi/trunk/src/irc/core/channels-query.c
+   M /irssi/trunk/src/irc/core/ctcp.c
+   M /irssi/trunk/src/irc/core/irc-channels-setup.c
+   M /irssi/trunk/src/irc/core/irc-channels.c
+   M /irssi/trunk/src/irc/core/irc-chatnets.c
+   M /irssi/trunk/src/irc/core/irc-commands.c
+   M /irssi/trunk/src/irc/core/irc-core.c
+   M /irssi/trunk/src/irc/core/irc-expandos.c
+   M /irssi/trunk/src/irc/core/irc-masks.c
+   M /irssi/trunk/src/irc/core/irc-nicklist.c
+   M /irssi/trunk/src/irc/core/irc-queries.c
+   M /irssi/trunk/src/irc/core/irc-servers-reconnect.c
+   M /irssi/trunk/src/irc/core/irc-servers-setup.c
+   M /irssi/trunk/src/irc/core/irc-servers.c
+   M /irssi/trunk/src/irc/core/irc-session.c
+   M /irssi/trunk/src/irc/core/irc.c
+   M /irssi/trunk/src/irc/core/lag.c
+   M /irssi/trunk/src/irc/core/massjoin.c
+   M /irssi/trunk/src/irc/core/mode-lists.c
+   M /irssi/trunk/src/irc/core/modes.c
+   M /irssi/trunk/src/irc/core/netsplit.c
+   M /irssi/trunk/src/irc/core/servers-idle.c
+   M /irssi/trunk/src/irc/core/servers-redirect.c
+   M /irssi/trunk/src/irc/dcc/dcc-autoget.c
+   M /irssi/trunk/src/irc/dcc/dcc-chat.c
+   M /irssi/trunk/src/irc/dcc/dcc-get.c
+   M /irssi/trunk/src/irc/dcc/dcc-queue.c
+   M /irssi/trunk/src/irc/dcc/dcc-resume.c
+   M /irssi/trunk/src/irc/dcc/dcc-send.c
+   M /irssi/trunk/src/irc/dcc/dcc-server.c
+   M /irssi/trunk/src/irc/dcc/dcc.c
+   M /irssi/trunk/src/irc/flood/autoignore.c
+   M /irssi/trunk/src/irc/flood/flood.c
+   M /irssi/trunk/src/irc/notifylist/notify-commands.c
+   M /irssi/trunk/src/irc/notifylist/notify-ison.c
+   M /irssi/trunk/src/irc/notifylist/notify-setup.c
+   M /irssi/trunk/src/irc/notifylist/notify-whois.c
+   M /irssi/trunk/src/irc/notifylist/notifylist.c
+   M /irssi/trunk/src/irc/proxy/dump.c
+   M /irssi/trunk/src/irc/proxy/listen.c
+   M /irssi/trunk/src/irc/proxy/proxy.c
+   M /irssi/trunk/src/lib-config/get.c
+   M /irssi/trunk/src/lib-config/parse.c
+   M /irssi/trunk/src/lib-config/set.c
+   M /irssi/trunk/src/lib-config/write.c
+   M /irssi/trunk/src/perl/module-formats.c
+   M /irssi/trunk/src/perl/perl-common.c
+   M /irssi/trunk/src/perl/perl-core.c
+   M /irssi/trunk/src/perl/perl-fe.c
+   M /irssi/trunk/src/perl/perl-signals.c
+   M /irssi/trunk/src/perl/perl-sources.c
+
+Update FSF address
+------------------------------------------------------------------------
+r4488 | exg | 2007-05-08 17:51:51 +0000 (Tue, 08 May 2007) | 2 lines
+Changed paths:
+   M /irssi/trunk/COPYING
+
+Update FSF address.
+
+------------------------------------------------------------------------
+r4487 | exg | 2007-05-06 16:22:09 +0000 (Sun, 06 May 2007) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/recode.c
+
+Do not call iconfig_get_str when target is NULL.
+
+------------------------------------------------------------------------
+r4486 | exg | 2007-05-06 16:15:31 +0000 (Sun, 06 May 2007) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/irc.c
+
+Do not recode the channel name used as target for the recoding of
+input line.
+
+------------------------------------------------------------------------
+r4485 | exg | 2007-05-06 15:13:30 +0000 (Sun, 06 May 2007) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/irc.c
+
+Off-by-one in parsing the channel name.
+
+------------------------------------------------------------------------
+r4484 | coekie | 2007-05-05 19:59:07 +0000 (Sat, 05 May 2007) | 1 line
+Changed paths:
+   M /irssi/trunk/configure.in
+
+Bump version to 0.8.12-svn
+------------------------------------------------------------------------
+r4483 | exg | 2007-05-05 15:37:58 +0000 (Sat, 05 May 2007) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-messages.c
+   M /irssi/trunk/src/fe-common/irc/fe-events-numeric.c
+   M /irssi/trunk/src/fe-common/irc/fe-events.c
+   M /irssi/trunk/src/fe-common/irc/fe-irc-messages.c
+   M /irssi/trunk/src/fe-common/irc/fe-whois.c
+   M /irssi/trunk/src/irc/core/irc.c
+
+Move input recoding in irc_server_event.
+
+------------------------------------------------------------------------
+r4482 | exg | 2007-05-05 14:45:38 +0000 (Sat, 05 May 2007) | 2 lines
+Changed paths:
+   M /irssi/trunk/autogen.sh
+
+Use autoreconf to bootstrap.
+
+------------------------------------------------------------------------
+r4481 | exg | 2007-05-05 14:29:25 +0000 (Sat, 05 May 2007) | 3 lines
+Changed paths:
+   M /irssi/trunk/configure.in
+
+Replace obsolete autoconf/automake macros with their current equivalent.
+Require automake-1.9.
+
+------------------------------------------------------------------------
+r4479 | exg | 2007-05-05 12:01:39 +0000 (Sat, 05 May 2007) | 2 lines
+Changed paths:
+   M /irssi/trunk/Makefile.am
+
+Add ACLOCAL_AMFLAGS definition.
+
+------------------------------------------------------------------------
+r4475 | exg | 2007-05-03 21:37:43 +0000 (Thu, 03 May 2007) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/statusbar.c
+
+Revert, do not use IS_PRINTABLE in reverse_controls.
+
+------------------------------------------------------------------------
+r4474 | exg | 2007-05-03 15:49:19 +0000 (Thu, 03 May 2007) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/gui-entry.c
+   M /irssi/trunk/src/fe-text/statusbar.c
+   M /irssi/trunk/src/fe-text/term.h
+   M /irssi/trunk/src/fe-text/textbuffer-view.c
+
+Add common IS_PRINTABLE macro.
+
+------------------------------------------------------------------------
+r4473 | exg | 2007-05-03 08:42:33 +0000 (Thu, 03 May 2007) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/perl/perl-core.c
+
+Remove broken code that prevents unloading of a script in some cases.
+
+------------------------------------------------------------------------
+r4472 | exg | 2007-04-29 23:43:17 +0000 (Sun, 29 Apr 2007) | 3 lines
+Changed paths:
+   M /irssi/trunk/configure.in
+
+Enable large file support using AC_SYS_LARGEFILE to get the correct
+options on AIX, bug #404.
+
+------------------------------------------------------------------------
+r4471 | exg | 2007-04-29 12:26:02 +0000 (Sun, 29 Apr 2007) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-messages.c
+   M /irssi/trunk/src/fe-common/irc/fe-irc-messages.c
+
+Use dynamic storage for return value of channel_get_nickmode.
+
+------------------------------------------------------------------------
+r4470 | exg | 2007-04-29 11:20:36 +0000 (Sun, 29 Apr 2007) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/core/settings.c
+   M /irssi/trunk/src/core/settings.h
+   M /irssi/trunk/src/fe-common/core/fe-settings.c
+
+Factor out code from set_print into a function to get a printable
+representation of a setting.
+
+------------------------------------------------------------------------
+r4469 | exg | 2007-04-29 09:15:36 +0000 (Sun, 29 Apr 2007) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/window-activity.c
+
+Slightly optimize activity_hide_targets matching.
+
+------------------------------------------------------------------------
+r4468 | exg | 2007-04-28 14:11:02 +0000 (Sat, 28 Apr 2007) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/irc-servers.c
+
+Do not send hostname to server, rather use username as the second
+argument to USER, patch by Alex Tarkovsky (bug #488).
+
+------------------------------------------------------------------------
+r4467 | exg | 2007-04-28 11:45:34 +0000 (Sat, 28 Apr 2007) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/gui-readline.c
+
+Increment paste_keycount when the key before the one that starts a
+possible pasting is not a '\r' or '\n'.
+
+------------------------------------------------------------------------
+r4466 | exg | 2007-04-28 10:55:57 +0000 (Sat, 28 Apr 2007) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/gui-readline.c
+
+Ignore empty lines when pasting.
+
+------------------------------------------------------------------------
+r4465 | exg | 2007-04-28 10:52:11 +0000 (Sat, 28 Apr 2007) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/gui-readline.c
+
+When sending a line as non-pasted reset also paste_entry, bug #405.
+
+------------------------------------------------------------------------
+r4463 | exg | 2007-04-25 20:37:21 +0000 (Wed, 25 Apr 2007) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/settings.c
+
+Remove useless function.
+
+------------------------------------------------------------------------
+r4462 | exg | 2007-04-25 19:22:39 +0000 (Wed, 25 Apr 2007) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/dcc/dcc-get.c
+
+Fix DCC get when file size is 0, bug #494.
+
+------------------------------------------------------------------------
+r4460 | coekie | 2007-04-25 18:13:08 +0000 (Wed, 25 Apr 2007) | 2 lines
+Changed paths:
+   M /irssi/trunk/NEWS
+
+Put release date in NEWS file
+
+------------------------------------------------------------------------
+r4459 | coekie | 2007-04-25 17:59:20 +0000 (Wed, 25 Apr 2007) | 2 lines
+Changed paths:
+   M /irssi/trunk/configure.in
+
+Release 0.8.11
+
+------------------------------------------------------------------------
+r4458 | exg | 2007-04-23 08:30:36 +0000 (Mon, 23 Apr 2007) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/perl/module.h
+
+Add workaround for gcc 4.0.0/4.0.1, bug #219.
+
+------------------------------------------------------------------------
+r4457 | exg | 2007-04-19 08:21:51 +0000 (Thu, 19 Apr 2007) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/nicklist.h
+   M /irssi/trunk/src/fe-text/irssi.c
+
+Fix typos.
+
+------------------------------------------------------------------------
+r4456 | coekie | 2007-04-18 20:00:10 +0000 (Wed, 18 Apr 2007) | 1 line
+Changed paths:
+   M /irssi/trunk/NEWS
+   M /irssi/trunk/configure.in
+
+Release 0.8.11-rc2
+------------------------------------------------------------------------
+r4455 | coekie | 2007-04-18 17:48:55 +0000 (Wed, 18 Apr 2007) | 1 line
+Changed paths:
+   M /irssi/trunk/NEWS
+
+update NEWS
+------------------------------------------------------------------------
+r4454 | coekie | 2007-04-16 19:10:46 +0000 (Mon, 16 Apr 2007) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-common-core.c
+   M /irssi/trunk/src/fe-common/core/fe-windows.c
+
+revert last change. Already possible with /format -delete daychange (fixed in r4428)
+
+------------------------------------------------------------------------
+r4453 | Geert | 2007-04-16 18:55:15 +0000 (Mon, 16 Apr 2007) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-common-core.c
+   M /irssi/trunk/src/fe-common/core/fe-windows.c
+
+Hide daychange.
+
+------------------------------------------------------------------------
+r4452 | exg | 2007-04-16 00:27:43 +0000 (Mon, 16 Apr 2007) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/settings.c
+
+Properly initialize reference count for a new setting, bug #235.
+
+------------------------------------------------------------------------
+r4451 | exg | 2007-04-14 20:45:04 +0000 (Sat, 14 Apr 2007) | 2 lines
+Changed paths:
+   M /irssi/trunk/docs/help/in/scrollback.in
+
+Document time format for /scrollback goto.
+
+------------------------------------------------------------------------
+r4450 | exg | 2007-04-14 20:26:22 +0000 (Sat, 14 Apr 2007) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/gui-entry.c
+
+Reindent.
+
+------------------------------------------------------------------------
+r4449 | exg | 2007-04-14 20:20:37 +0000 (Sat, 14 Apr 2007) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/gui-entry.c
+
+Modify gui_entry_draw_from to clear to end of line only if it has not
+written till the last column.
+
+------------------------------------------------------------------------
+r4448 | exg | 2007-04-14 18:11:31 +0000 (Sat, 14 Apr 2007) | 2 lines
+Changed paths:
+   M /irssi/trunk/autogen.sh
+
+Remove non-existent options for configure.
+
+------------------------------------------------------------------------
+r4447 | Geert | 2007-04-14 16:07:10 +0000 (Sat, 14 Apr 2007) | 2 lines
+Changed paths:
+   D /irssi/trunk/xx
+
+Works :)
+
+------------------------------------------------------------------------
+r4446 | Geert | 2007-04-14 16:06:50 +0000 (Sat, 14 Apr 2007) | 2 lines
+Changed paths:
+   A /irssi/trunk/xx
+
+Dummy post-commit test
+
+------------------------------------------------------------------------
+r4445 | coekie | 2007-04-14 15:17:19 +0000 (Sat, 14 Apr 2007) | 2 lines
+Changed paths:
+   M /irssi/trunk/NEWS
+   M /irssi/trunk/configure.in
+
+Removed automatic glib downloading and compiling.
+
+------------------------------------------------------------------------
+r4444 | exg | 2007-04-14 11:09:37 +0000 (Sat, 14 Apr 2007) | 2 lines
+Changed paths:
+   M /irssi/trunk/NEWS
+   M /irssi/trunk/src/fe-text/gui-entry.c
+
+Revert r4352.
+
+------------------------------------------------------------------------
+r4443 | exg | 2007-04-14 11:01:56 +0000 (Sat, 14 Apr 2007) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/chat-completion.c
+
+Make completer for action/msg/query more self-contained by completing nicks in
+the active channel.
+
+------------------------------------------------------------------------
+r4442 | Geert | 2007-04-09 14:55:42 +0000 (Mon, 09 Apr 2007) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/modes.c
+
+Local opers on IRCnet (umode +O) get the server->server_operator flag.
+
+------------------------------------------------------------------------
+r4441 | exg | 2007-04-07 15:00:25 +0000 (Sat, 07 Apr 2007) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-log.c
+
+Only consider autolog logs when looking for an open log in autolog_open.
+
+------------------------------------------------------------------------
+r4440 | exg | 2007-04-07 14:57:58 +0000 (Sat, 07 Apr 2007) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/gui-readline.c
+
+Bind also CSI 1 ; 5 D to key cleft and CSI 1 ; 5 C to key cright.
+
+------------------------------------------------------------------------
+r4439 | exg | 2007-04-07 14:38:53 +0000 (Sat, 07 Apr 2007) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/log.c
+
+Allow logging of lines with no target to matching non autolog logs.
+
+------------------------------------------------------------------------
+r4438 | exg | 2007-04-07 14:33:45 +0000 (Sat, 07 Apr 2007) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/irssi.c
+
+Remove unused gettext code.
+
+------------------------------------------------------------------------
+r4437 | exg | 2007-04-07 14:20:00 +0000 (Sat, 07 Apr 2007) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/core.c
+
+Fix core_init definition.
+
+------------------------------------------------------------------------
+r4436 | exg | 2007-04-05 18:25:29 +0000 (Thu, 05 Apr 2007) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/mainwindows.c
+
+Forbid "window show" when the target window is sticky rather than when there is
+at least one window bound to the container of the target window.
+
+------------------------------------------------------------------------
+r4435 | Geert | 2007-04-05 18:07:41 +0000 (Thu, 05 Apr 2007) | 2 lines
+Changed paths:
+   D /irssi/trunk/x
+
+Deleting the CIA test file
+
+------------------------------------------------------------------------
+r4434 | Geert | 2007-04-05 18:04:38 +0000 (Thu, 05 Apr 2007) | 2 lines
+Changed paths:
+   A /irssi/trunk/x
+
+CIA test
+
+------------------------------------------------------------------------
+r4433 | exg | 2007-03-12 22:54:45 +0000 (Mon, 12 Mar 2007) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/textbuffer-view.c
+
+When removing a line from the view also unconditionally remove any bookmark for
+that line rather than moving it to the next/previous line, if any.
+
+------------------------------------------------------------------------
+r4432 | exg | 2007-03-12 00:12:17 +0000 (Mon, 12 Mar 2007) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/completion.c
+
+Remove superflous empty lines.
+
+------------------------------------------------------------------------
+r4431 | exg | 2007-03-12 00:08:58 +0000 (Mon, 12 Mar 2007) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/completion.c
+
+Call signal_stop also when the completion list for the command options/parameters is not empty.
+
+------------------------------------------------------------------------
+r4429 | exg | 2007-02-25 18:05:53 +0000 (Sun, 25 Feb 2007) | 2 lines
+Changed paths:
+   M /irssi/trunk/NEWS
+   M /irssi/trunk/src/fe-common/core/chat-completion.c
+
+Add completion for /window goto.
+
+------------------------------------------------------------------------
+r4428 | exg | 2007-02-25 17:42:54 +0000 (Sun, 25 Feb 2007) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-windows.c
+
+Do not print an empty line for "daychange" if the formatted string is empty.
+
+------------------------------------------------------------------------
+r4427 | exg | 2007-02-24 16:33:59 +0000 (Sat, 24 Feb 2007) | 2 lines
+Changed paths:
+   M /irssi/trunk/docs/help/in/window.in
+
+Document /window item move.
+
+------------------------------------------------------------------------
+r4425 | cras | 2007-02-20 12:39:17 +0000 (Tue, 20 Feb 2007) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/textbuffer-view.c
+
+UTF-8 0x80-0x9f characters weren't treated as control chars as they should have
+
+
+------------------------------------------------------------------------
+r4424 | coekie | 2007-02-19 19:35:52 +0000 (Mon, 19 Feb 2007) | 1 line
+Changed paths:
+   M /irssi/trunk/AUTHORS
+   M /irssi/trunk/configure.in
+
+Release 0.8.11-rc1
+------------------------------------------------------------------------
+r4422 | exg | 2007-02-19 11:39:36 +0000 (Mon, 19 Feb 2007) | 2 lines
+Changed paths:
+   M /irssi/trunk/NEWS
+
+Update.
+
+------------------------------------------------------------------------
+r4421 | exg | 2007-02-19 09:49:41 +0000 (Mon, 19 Feb 2007) | 1 line
+Changed paths:
+   D /irssi/trunk/po
+
+
+------------------------------------------------------------------------
+r4420 | exg | 2007-02-18 14:59:54 +0000 (Sun, 18 Feb 2007) | 2 lines
+Changed paths:
+   M /irssi/trunk/docs/help/in/scrollback.in
+   M /irssi/trunk/src/fe-text/textbuffer-commands.c
+
+Add crapbuster-like "scrollback levelclear" command.
+
+------------------------------------------------------------------------
+r4419 | exg | 2007-02-17 15:31:10 +0000 (Sat, 17 Feb 2007) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/lastlog.c
+   M /irssi/trunk/src/fe-text/textbuffer-view.c
+   M /irssi/trunk/src/fe-text/textbuffer-view.h
+
+Generalize window_lastlog_clear in textbuffer_view_remove_lines_by_level.
+
+------------------------------------------------------------------------
+r4418 | Geert | 2007-02-17 12:12:47 +0000 (Sat, 17 Feb 2007) | 2 lines
+Changed paths:
+   D /irssi/trunk/x
+
+And they did
+
+------------------------------------------------------------------------
+r4417 | Geert | 2007-02-17 12:11:45 +0000 (Sat, 17 Feb 2007) | 2 lines
+Changed paths:
+   A /irssi/trunk/x
+
+Checking if commit mails still work.
+
+------------------------------------------------------------------------
+r4416 | exg | 2007-02-14 10:59:27 +0000 (Wed, 14 Feb 2007) | 6 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/formats.c
+   M /irssi/trunk/src/fe-text/statusbar.c
+
+Fix format_real_length to return the correct length when the input string
+includes a trailing wide char.
+Change statusbar_item_default_handler to compute padding also when
+item->size < item->min_size, needed after the fix to format_real_length.
+Patch by Yi-Hsuan Hsin, bug #452.
+
+------------------------------------------------------------------------
+r4415 | exg | 2007-02-14 10:43:34 +0000 (Wed, 14 Feb 2007) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/common.h
+   M /irssi/trunk/src/fe-text/irssi.c
+
+Replace last occurrence of IRSSI_DIR_SHORT with get_irssi_dir() and remove it.
+
+------------------------------------------------------------------------
+r4414 | exg | 2007-02-07 18:20:49 +0000 (Wed, 07 Feb 2007) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/gui-entry.c
+
+Redraw input line correctly in an utf8 locale when deleting a
+nonspacing char by taking in account the cell width, bug #459.
+
+------------------------------------------------------------------------
+r4413 | exg | 2007-02-06 23:25:17 +0000 (Tue, 06 Feb 2007) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/gui-entry.c
+
+Amend check for non printable chars to filter control chars 80-9F in an utf8 locale, bug #460.
+Note: this was and is still broken with koi8-r.
+
+------------------------------------------------------------------------
+r4412 | exg | 2007-02-06 23:06:14 +0000 (Tue, 06 Feb 2007) | 2 lines
+Changed paths:
+   M /irssi/trunk/NEWS
+   M /irssi/trunk/src/perl/common/Settings.xs
+   M /irssi/trunk/src/perl/textui/TextBuffer.xs
+
+Revert perl utf8 stuff for now.
+
+------------------------------------------------------------------------
+r4411 | exg | 2007-01-17 15:07:14 +0000 (Wed, 17 Jan 2007) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/irc-nicklist.c
+
+When connecting and the nick is invalid, abort the connection instead of looping indefinitely in event_nick_in_use.
+
+------------------------------------------------------------------------
+r4410 | Geert | 2007-01-13 22:50:34 +0000 (Sat, 13 Jan 2007) | 1 line
+Changed paths:
+   M /irssi/trunk/src/perl/irssi-core.pl
+
+
+------------------------------------------------------------------------
+r4409 | exg | 2007-01-11 23:11:30 +0000 (Thu, 11 Jan 2007) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/lib-config/parse.c
+
+Allow identifiers to start with a digit, bug #177.
+
+------------------------------------------------------------------------
+r4408 | exg | 2007-01-11 22:51:02 +0000 (Thu, 11 Jan 2007) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/perl/ui/Window.xs
+
+Modify Irssi::UI::Window::command to restore the original active window only if the command executed has not made another one active, bug #403.
+
+------------------------------------------------------------------------
+r4407 | exg | 2007-01-08 19:02:20 +0000 (Mon, 08 Jan 2007) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/dcc/dcc-queue.c
+   M /irssi/trunk/src/irc/dcc/dcc-queue.h
+   M /irssi/trunk/src/irc/dcc/dcc-send.c
+
+Remove dcc_queue_add_passive, use instead another argument in dcc_queue_add to initialize rec->passive.
+
+------------------------------------------------------------------------
+r4406 | exg | 2007-01-07 19:16:59 +0000 (Sun, 07 Jan 2007) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/log-away.c
+
+Make awaylog_file respect --home, bug #304.
+
+------------------------------------------------------------------------
+r4405 | exg | 2007-01-06 16:08:29 +0000 (Sat, 06 Jan 2007) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/recode.c
+
+Reindent.
+
+------------------------------------------------------------------------
+r4404 | exg | 2007-01-06 16:00:45 +0000 (Sat, 06 Jan 2007) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/recode.c
+
+Remove the target != NULL constraint in recode_out.
+
+------------------------------------------------------------------------
+r4403 | exg | 2007-01-06 15:52:22 +0000 (Sat, 06 Jan 2007) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/recode.c
+
+Simplify.
+
+------------------------------------------------------------------------
+r4402 | exg | 2007-01-06 15:49:07 +0000 (Sat, 06 Jan 2007) | 2 lines
+Changed paths:
+   M /irssi/trunk/COPYING
+
+Fix typo.
+
+------------------------------------------------------------------------
+r4401 | exg | 2006-12-10 16:11:19 +0000 (Sun, 10 Dec 2006) | 2 lines
+Changed paths:
+   M /irssi/trunk/NEWS
+
+Corrections.
+
+------------------------------------------------------------------------
+r4400 | exg | 2006-12-10 15:53:19 +0000 (Sun, 10 Dec 2006) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/perl/common/Settings.xs
+
+Declare str in PREINIT section.
+
+------------------------------------------------------------------------
+r4399 | exg | 2006-12-10 15:49:06 +0000 (Sun, 10 Dec 2006) | 2 lines
+Changed paths:
+   M /irssi/trunk/NEWS
+
+Clarifications and corrections.
+
+------------------------------------------------------------------------
+r4398 | coekie | 2006-12-08 22:28:25 +0000 (Fri, 08 Dec 2006) | 1 line
+Changed paths:
+   M /irssi/trunk/AUTHORS
+   M /irssi/trunk/NEWS
+
+Oh, that patch came from exg
+------------------------------------------------------------------------
+r4397 | coekie | 2006-12-08 21:43:01 +0000 (Fri, 08 Dec 2006) | 1 line
+Changed paths:
+   M /irssi/trunk/AUTHORS
+   M /irssi/trunk/NEWS
+
+Update NEWS and AUTHORS
+------------------------------------------------------------------------
+r4396 | coekie | 2006-12-08 21:38:55 +0000 (Fri, 08 Dec 2006) | 1 line
+Changed paths:
+   M /irssi/trunk/src/perl/perl-common.c
+
+Remove CR and LF from Perl commands, to make it harder to introduce a security bug
+------------------------------------------------------------------------
+r4395 | Geert | 2006-11-02 09:09:34 +0000 (Thu, 02 Nov 2006) | 5 lines
+Changed paths:
+   M /irssi/trunk/src/core/settings.c
+
+The attached patch fixes bug #164, which triggers a failed assertion
+message when the config file is unreadable to irssi.
+
+By Daniel Koning <dkoning@seas.smu.edu>
+
+------------------------------------------------------------------------
+r4394 | vb | 2006-10-30 20:23:39 +0000 (Mon, 30 Oct 2006) | 1 line
+Changed paths:
+   M /irssi/trunk/docs/help/in/server.in
+
+documentation: added the explanation of the -noproxy option of in the server command
+------------------------------------------------------------------------
+r4393 | exg | 2006-10-27 18:11:19 +0000 (Fri, 27 Oct 2006) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/core.h
+
+Include common.h rather than time.h directly to honour config.h.
+
+------------------------------------------------------------------------
+r4392 | exg | 2006-10-27 17:14:57 +0000 (Fri, 27 Oct 2006) | 2 lines
+Changed paths:
+   M /irssi/trunk/configure.in
+
+Detect off_t size using AC_CHECK_SIZEOF because it works also when cross-compiling in autoconf-2.50 and higher.
+
+------------------------------------------------------------------------
+r4391 | exg | 2006-10-27 16:48:03 +0000 (Fri, 27 Oct 2006) | 2 lines
+Changed paths:
+   M /irssi/trunk/curses.m4
+
+Add missing quote.
+
+------------------------------------------------------------------------
+r4390 | exg | 2006-10-23 10:36:47 +0000 (Mon, 23 Oct 2006) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/expandos.c
+
+Fix memory leaks in expandos_deinit by Nicolas Collignon, bug #419.
+
+------------------------------------------------------------------------
+r4389 | exg | 2006-10-20 12:50:08 +0000 (Fri, 20 Oct 2006) | 2 lines
+Changed paths:
+   M /irssi/trunk/irssi.conf
+   M /irssi/trunk/src/core/core.c
+   M /irssi/trunk/src/core/core.h
+   M /irssi/trunk/src/core/expandos.c
+   M /irssi/trunk/src/fe-common/core/fe-core-commands.c
+
+uptime command by Lauri Nurmi with some modifications by me, bug #458.
+
+------------------------------------------------------------------------
+r4388 | exg | 2006-10-20 12:14:06 +0000 (Fri, 20 Oct 2006) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/core.c
+
+Change default value of override_coredump_limit to FALSE.
+
+------------------------------------------------------------------------
+r4387 | Geert | 2006-10-19 20:15:13 +0000 (Thu, 19 Oct 2006) | 2 lines
+Changed paths:
+   M /irssi/trunk/docs/perl.txt
+
+Fixed documentation error.
+
+------------------------------------------------------------------------
+r4386 | exg | 2006-10-18 11:53:42 +0000 (Wed, 18 Oct 2006) | 2 lines
+Changed paths:
+   M /irssi/trunk/docs/help/in/bind.in
+
+Remove duplicate entry.
+
+------------------------------------------------------------------------
+r4385 | vb | 2006-10-07 18:46:09 +0000 (Sat, 07 Oct 2006) | 1 line
+Changed paths:
+   M /irssi/trunk/docs/help/in/exec.in
+
+documentation: updated help for exec, EXEC without any arguments displays the list of started processes
+------------------------------------------------------------------------
+r4384 | exg | 2006-10-01 10:21:15 +0000 (Sun, 01 Oct 2006) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/perl/ui/Formats.xs
+
+Add missing format string argument in printtext_dest call, patch by loafier.
+
+------------------------------------------------------------------------
+r4383 | exg | 2006-09-29 15:05:20 +0000 (Fri, 29 Sep 2006) | 2 lines
+Changed paths:
+   M /irssi/trunk/configure.in
+
+Set --tag on libtool invocation.
+
+------------------------------------------------------------------------
+r4382 | exg | 2006-09-24 22:41:01 +0000 (Sun, 24 Sep 2006) | 2 lines
+Changed paths:
+   M /irssi/trunk/curses.m4
+
+Minor cleanup.
+
+------------------------------------------------------------------------
+r4381 | exg | 2006-09-24 21:43:12 +0000 (Sun, 24 Sep 2006) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/core/line-split.c
+
+In line_split set *output _after_ calling remove_newline because it
+could reallocate rec->str, fixes bug #439.
+
+------------------------------------------------------------------------
+r4380 | exg | 2006-09-24 21:06:46 +0000 (Sun, 24 Sep 2006) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/term-terminfo.c
+
+Modify term_move to accept only non negative coordinates.
+
+------------------------------------------------------------------------
+r4379 | exg | 2006-09-22 16:05:55 +0000 (Fri, 22 Sep 2006) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/core/session.c
+
+Revert second hunk of the previous patch, we want to check existence and
+execute permission for irssi_binary when upgrading.
+
+------------------------------------------------------------------------
+r4378 | exg | 2006-09-22 14:46:05 +0000 (Fri, 22 Sep 2006) | 2 lines
+Changed paths:
+   M /irssi/trunk/configure.in
+
+Simplify.
+
+------------------------------------------------------------------------
+r4377 | exg | 2006-09-22 14:04:53 +0000 (Fri, 22 Sep 2006) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/core/session.c
+
+Compute absolute path name of argv[0] at startup to make Irssi::get_irssi_binary
+useful again.
+
+------------------------------------------------------------------------
+r4376 | coekie | 2006-09-22 08:49:10 +0000 (Fri, 22 Sep 2006) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/fe-netjoin.c
+
+This patch fixes the problem that irssi keeps saying Netsplit over for joins from a certain user, if that user split and then rejoined some but not all channels they used to be in. (by Jilles Tjoelker)
+
+------------------------------------------------------------------------
+r4375 | exg | 2006-09-21 23:43:09 +0000 (Thu, 21 Sep 2006) | 2 lines
+Changed paths:
+   M /irssi/trunk/configure.in
+   M /irssi/trunk/src/common.h
+
+Fixes for srcdir != builddir.
+
+------------------------------------------------------------------------
+r4374 | exg | 2006-09-21 13:53:56 +0000 (Thu, 21 Sep 2006) | 2 lines
+Changed paths:
+   M /irssi/trunk/configure.in
+
+Fix for srcdir != builddir.
+
+------------------------------------------------------------------------
+r4373 | exg | 2006-09-20 23:56:59 +0000 (Wed, 20 Sep 2006) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/term-terminfo.c
+
+Fix bold on monochrome terminals.
+
+------------------------------------------------------------------------
+r4372 | exg | 2006-09-20 23:47:20 +0000 (Wed, 20 Sep 2006) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/recode.c
+
+Cosmetic.
+
+------------------------------------------------------------------------
+r4371 | exg | 2006-09-20 23:29:41 +0000 (Wed, 20 Sep 2006) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/perl/textui/TextBuffer.xs
+
+Add support for utf8 to Irssi::TextUI::Line::get_text.
+
+------------------------------------------------------------------------
+r4370 | exg | 2006-09-20 23:21:44 +0000 (Wed, 20 Sep 2006) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/perl/common/Settings.xs
+
+Turn on the utf8 status only if the charset is utf8.
+
+------------------------------------------------------------------------
+r4369 | exg | 2006-09-20 23:11:17 +0000 (Wed, 20 Sep 2006) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/recode.c
+
+Make compilation of is_translit conditional on glib-2.
+
+------------------------------------------------------------------------
+r4368 | exg | 2006-09-20 23:04:40 +0000 (Wed, 20 Sep 2006) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/recode.c
+   M /irssi/trunk/src/core/recode.h
+   M /irssi/trunk/src/fe-common/core/formats.c
+
+Add public is_utf8 function by refactoring existing code.
+
+------------------------------------------------------------------------
+r4367 | exg | 2006-09-19 13:15:48 +0000 (Tue, 19 Sep 2006) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/perl/common/Settings.xs
+
+Simplify using new_pv.
+
+------------------------------------------------------------------------
+r4366 | exg | 2006-09-18 22:32:33 +0000 (Mon, 18 Sep 2006) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/commands.h
+   M /irssi/trunk/src/core/session.c
+   M /irssi/trunk/src/fe-common/core/fe-core-commands.c
+   M /irssi/trunk/src/fe-common/core/module-formats.c
+   M /irssi/trunk/src/fe-common/core/module-formats.h
+
+Apply 05upgrade-check-binary.dpatch with some modifications.
+
+------------------------------------------------------------------------
+r4365 | exg | 2006-09-18 21:56:18 +0000 (Mon, 18 Sep 2006) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/session.c
+
+Add missing free.
+
+------------------------------------------------------------------------
+r4364 | Geert | 2006-09-18 11:53:21 +0000 (Mon, 18 Sep 2006) | 2 lines
+Changed paths:
+   D /irssi/trunk/xx
+
+SVN hook test
+
+------------------------------------------------------------------------
+r4363 | Geert | 2006-09-18 11:47:46 +0000 (Mon, 18 Sep 2006) | 2 lines
+Changed paths:
+   A /irssi/trunk/xx
+
+SVN hook test
+
+------------------------------------------------------------------------
+r4362 | Geert | 2006-09-18 11:43:57 +0000 (Mon, 18 Sep 2006) | 2 lines
+Changed paths:
+   D /irssi/trunk/xx
+
+SVN hook test
+
+------------------------------------------------------------------------
+r4361 | Geert | 2006-09-18 11:40:31 +0000 (Mon, 18 Sep 2006) | 2 lines
+Changed paths:
+   A /irssi/trunk/xx
+
+SVN hook test
+
+------------------------------------------------------------------------
+r4360 | Geert | 2006-09-18 11:38:03 +0000 (Mon, 18 Sep 2006) | 2 lines
+Changed paths:
+   D /irssi/trunk/xx
+
+SVN hook test
+
+------------------------------------------------------------------------
+r4359 | Geert | 2006-09-18 11:34:16 +0000 (Mon, 18 Sep 2006) | 2 lines
+Changed paths:
+   A /irssi/trunk/xx
+
+SVN hook test
+
+------------------------------------------------------------------------
+r4358 | Geert | 2006-09-18 11:33:40 +0000 (Mon, 18 Sep 2006) | 2 lines
+Changed paths:
+   D /irssi/trunk/xx
+
+Svn hook test
+
+------------------------------------------------------------------------
+r4357 | Geert | 2006-09-18 11:27:38 +0000 (Mon, 18 Sep 2006) | 2 lines
+Changed paths:
+   A /irssi/trunk/xx
+
+SVN hook test
+
+------------------------------------------------------------------------
+r4355 | exg | 2006-09-17 19:06:54 +0000 (Sun, 17 Sep 2006) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/term-curses.c
+
+Fix %k and %K mappings.
+
+------------------------------------------------------------------------
+r4354 | exg | 2006-09-17 12:39:37 +0000 (Sun, 17 Sep 2006) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/session.c
+
+Remove useless check.
+
+------------------------------------------------------------------------
+r4353 | exg | 2006-09-17 12:32:40 +0000 (Sun, 17 Sep 2006) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/term-curses.c
+
+Simplify.
+
+------------------------------------------------------------------------
+r4352 | exg | 2006-09-17 12:26:04 +0000 (Sun, 17 Sep 2006) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/gui-entry.c
+
+Fix off-by-one error.
+
+------------------------------------------------------------------------
+r4351 | exg | 2006-09-15 18:22:18 +0000 (Fri, 15 Sep 2006) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/perl/common/Settings.xs
+
+Fix Irssi::settings_get_str to return Nullsv when settings_get_str returns NULL.
+
+------------------------------------------------------------------------
+r4350 | exg | 2006-09-14 22:11:19 +0000 (Thu, 14 Sep 2006) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/textbuffer-view.c
+
+Set view->startline to NULL when the line to delete is the first of the view
+buffer and there are no more lines in the view.
+
+------------------------------------------------------------------------
+r4349 | exg | 2006-09-14 20:57:22 +0000 (Thu, 14 Sep 2006) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/textbuffer-view.c
+
+Revert r4343.
+
+------------------------------------------------------------------------
+r4348 | exg | 2006-09-13 22:54:38 +0000 (Wed, 13 Sep 2006) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/textbuffer-commands.c
+
+Modify scrollback clear to accept the same arguments as clear.
+
+------------------------------------------------------------------------
+r4347 | exg | 2006-09-13 22:42:39 +0000 (Wed, 13 Sep 2006) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/textbuffer-commands.c
+
+Make indentation of cmd_clear consistent.
+
+------------------------------------------------------------------------
+r4346 | exg | 2006-09-13 17:11:36 +0000 (Wed, 13 Sep 2006) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/textbuffer-commands.c
+
+Remove redundant variable.
+
+------------------------------------------------------------------------
+r4345 | exg | 2006-09-12 22:33:14 +0000 (Tue, 12 Sep 2006) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/textbuffer-view.c
+
+Revert r4342.
+
+------------------------------------------------------------------------
+r4344 | exg | 2006-09-12 17:23:46 +0000 (Tue, 12 Sep 2006) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/cuix-api.h
+   M /irssi/trunk/src/fe-text/cuix-lib.h
+   M /irssi/trunk/src/fe-text/term-curses.c
+   A /irssi/trunk/src/fe-text/term-curses.h
+
+Refactoring to avoid code duplication.
+
+------------------------------------------------------------------------
+r4343 | exg | 2006-09-12 17:19:47 +0000 (Tue, 12 Sep 2006) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/textbuffer-view.c
+
+Missing update of view->startline when the line to delete is the first of the
+view and the first of the view buffer.
+
+------------------------------------------------------------------------
+r4342 | exg | 2006-09-12 16:06:14 +0000 (Tue, 12 Sep 2006) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/textbuffer-view.c
+
+Do not restore the previous view when deleting the first line of the current one.
+
+------------------------------------------------------------------------
+r4341 | exg | 2006-09-12 15:52:04 +0000 (Tue, 12 Sep 2006) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/perl/common/Settings.xs
+
+Do not crash when settings_get_str returns NULL.
+
+------------------------------------------------------------------------
+r4340 | coekie | 2006-09-12 09:37:18 +0000 (Tue, 12 Sep 2006) | 1 line
+Changed paths:
+   M /irssi/trunk/src/perl/perl-core.c
+
+Don't crash on /quit with scripts causing and catching signals during UNLOAD (thanks senneth)
+------------------------------------------------------------------------
+r4339 | exg | 2006-09-11 09:29:58 +0000 (Mon, 11 Sep 2006) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/perl/common/Settings.xs
+
+Add support for utf8 to Irssi::settings_get_str.
+
+------------------------------------------------------------------------
+r4338 | exg | 2006-09-11 09:03:06 +0000 (Mon, 11 Sep 2006) | 2 lines
+Changed paths:
+   M /irssi/trunk/configure.in
+   M /irssi/trunk/curses.m4
+
+Remove trailing whitespace.
+
+------------------------------------------------------------------------
+r4337 | exg | 2006-09-11 09:00:59 +0000 (Mon, 11 Sep 2006) | 2 lines
+Changed paths:
+   M /irssi/trunk/configure.in
+
+Make tests specific to the curses interface conditional to $want_terminfo = no.
+
+------------------------------------------------------------------------
+r4336 | exg | 2006-09-11 08:56:34 +0000 (Mon, 11 Sep 2006) | 2 lines
+Changed paths:
+   M /irssi/trunk/curses.m4
+
+Fix typo.
+
+------------------------------------------------------------------------
+r4335 | exg | 2006-09-11 08:50:20 +0000 (Mon, 11 Sep 2006) | 2 lines
+Changed paths:
+   M /irssi/trunk/curses.m4
+
+Quote more where necessary.
+
+------------------------------------------------------------------------
+r4334 | exg | 2006-09-10 17:39:00 +0000 (Sun, 10 Sep 2006) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/cuix-lib.c
+
+Fix compilation with glib-1.
+
+------------------------------------------------------------------------
+r4333 | exg | 2006-09-09 16:54:26 +0000 (Sat, 09 Sep 2006) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/Makefile.am
+
+Add extra libs to irssi_LDADD, not to irssi_LDFLAGS.
+
+------------------------------------------------------------------------
+r4332 | exg | 2006-09-09 14:01:21 +0000 (Sat, 09 Sep 2006) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/term-curses.c
+
+Cosmetic, merge two statements and reindent with tabs.
+
+------------------------------------------------------------------------
+r4331 | exg | 2006-09-09 13:56:00 +0000 (Sat, 09 Sep 2006) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/term-curses.c
+
+Add support for wide curses.
+
+------------------------------------------------------------------------
+r4330 | exg | 2006-09-09 13:49:10 +0000 (Sat, 09 Sep 2006) | 2 lines
+Changed paths:
+   M /irssi/trunk/configure.in
+
+Adjust alignment of --with-cuix help string.
+
+------------------------------------------------------------------------
+r4329 | Geert | 2006-09-09 10:19:05 +0000 (Sat, 09 Sep 2006) | 2 lines
+Changed paths:
+   M /irssi/trunk/irssi.conf
+
+Renamed irc.efnet.net to irc.efnet.org
+
+------------------------------------------------------------------------
+r4328 | exg | 2006-09-08 19:02:50 +0000 (Fri, 08 Sep 2006) | 2 lines
+Changed paths:
+   M /irssi/trunk/glib-2.0.m4_
+
+Update to latest revision.
+
+------------------------------------------------------------------------
+r4327 | exg | 2006-09-08 19:00:01 +0000 (Fri, 08 Sep 2006) | 2 lines
+Changed paths:
+   M /irssi/trunk/acconfig.h
+
+Remove unneeded templates.
+
+------------------------------------------------------------------------
+r4326 | exg | 2006-09-08 18:58:04 +0000 (Fri, 08 Sep 2006) | 2 lines
+Changed paths:
+   M /irssi/trunk/configure.in
+
+Remove call to AC_ARG_PROGRAM, AM_INIT_AUTOMAKE calls it for us.
+
+------------------------------------------------------------------------
+r4325 | exg | 2006-09-08 16:42:44 +0000 (Fri, 08 Sep 2006) | 2 lines
+Changed paths:
+   M /irssi/trunk/configure.in
+
+Remove --with-ncurses option, it collides with the one from curses.m4.
+
+------------------------------------------------------------------------
+r4322 | coekie | 2006-08-20 17:56:06 +0000 (Sun, 20 Aug 2006) | 1 line
+Changed paths:
+   M /irssi/trunk/src/irc/core/irc-channels.c
+
+Don't get confused by a join command with too many arguments; keys can't have spaces in them. (Bug 437)
+------------------------------------------------------------------------
+r4321 | coekie | 2006-08-20 13:40:03 +0000 (Sun, 20 Aug 2006) | 1 line
+Changed paths:
+   M /irssi/trunk/src/irc/core/channels-query.c
+
+don't wait for all /names replies before syncing if we can't combine queries anyways. Patch by jilles
+------------------------------------------------------------------------
+r4320 | coekie | 2006-08-20 13:07:54 +0000 (Sun, 20 Aug 2006) | 1 line
+Changed paths:
+   M /irssi/trunk/src/core/nicklist.c
+   M /irssi/trunk/src/core/nicklist.h
+   M /irssi/trunk/src/fe-common/core/fe-channels.c
+
+compile with glib1 again
+------------------------------------------------------------------------
+r4309 | nattfodd | 2006-08-08 21:11:20 +0000 (Tue, 08 Aug 2006) | 1 line
+Changed paths:
+   M /irssi/trunk/configure.in
+   M /irssi/trunk/src/fe-text/Makefile.am
+   A /irssi/trunk/src/fe-text/cuix-api.c (from /cuix/fe-text/cuix-api.c:4308)
+   A /irssi/trunk/src/fe-text/cuix-api.h (from /cuix/fe-text/cuix-api.h:4308)
+   A /irssi/trunk/src/fe-text/cuix-lib.c (from /cuix/fe-text/cuix-lib.c:4308)
+   A /irssi/trunk/src/fe-text/cuix-lib.h (from /cuix/fe-text/cuix-lib.h:4308)
+   A /irssi/trunk/src/fe-text/cuix.c (from /cuix/fe-text/cuix.c:4308)
+   A /irssi/trunk/src/fe-text/cuix.h (from /cuix/fe-text/cuix.h:4308)
+   M /irssi/trunk/src/fe-text/gui-printtext.c
+   M /irssi/trunk/src/fe-text/term-curses.c
+   M /irssi/trunk/src/fe-text/textbuffer-commands.c
+   M /irssi/trunk/src/fe-text/textbuffer-view.c
+
+Merge of cuix back in trunk
+------------------------------------------------------------------------
+r4304 | c0ffee | 2006-08-01 20:31:38 +0000 (Tue, 01 Aug 2006) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/core/net-nonblock.c
+
+reset the PRNG, because a some OSs clear the seed when forking
+
+
+------------------------------------------------------------------------
+r4300 | vb | 2006-07-25 11:02:10 +0000 (Tue, 25 Jul 2006) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/recode.c
+
+Don't assume that 7bit ascii strings are encoded in UTF-8, only validate the strings when they contain octest with highest bit set. (patch by Mikko Rauhala)
+fixes http://bugs.irssi.org/index.php?do=details&id=392
+------------------------------------------------------------------------
+r4298 | c0ffee | 2006-07-18 20:07:16 +0000 (Tue, 18 Jul 2006) | 4 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-modules.c
+
+Since the fe-common modules are named fe_common_$protocol, the module loader
+should also check for these files.
+
+
+------------------------------------------------------------------------
+r4268 | coekie | 2006-05-18 12:33:07 +0000 (Thu, 18 May 2006) | 1 line
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/fe-whois.c
+
+Fix whois_hide_safe_channel_id: only look at the beginning of a channel name, not in the middle
+------------------------------------------------------------------------
+r4266 | Geert | 2006-05-05 13:13:46 +0000 (Fri, 05 May 2006) | 4 lines
+Changed paths:
+   M /irssi/trunk/configure.in
+
+Typo fix.
+
+Reported by <fatal.serpent@gmail.com>
+
+------------------------------------------------------------------------
+r4265 | coekie | 2006-05-04 10:07:23 +0000 (Thu, 04 May 2006) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/irc.c
+   M /irssi/trunk/src/irc/core/irc.h
+   M /irssi/trunk/src/perl/irc/Server.xs
+
+New perl command send_raw_first, patch by ComradeP (Bug 413)
+
+------------------------------------------------------------------------
+r4264 | c0ffee | 2006-03-26 08:42:34 +0000 (Sun, 26 Mar 2006) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/network.c
+   M /irssi/trunk/src/fe-none/irssi.c
+   M /irssi/trunk/src/fe-text/irssi.c
+   M /irssi/trunk/src/irc/bot/bot-users.c
+   M /irssi/trunk/src/irc/dcc/dcc-chat.c
+   M /irssi/trunk/src/irc/dcc/dcc-send.c
+
+Removed all srand calls and added a single srand invokation in at startup
+
+------------------------------------------------------------------------
+r4263 | c0ffee | 2006-03-25 21:59:57 +0000 (Sat, 25 Mar 2006) | 4 lines
+Changed paths:
+   M /irssi/trunk/src/core/network.c
+   M /irssi/trunk/src/irc/bot/bot-users.c
+
+prefixed all calls to rand() with a call to srand(time(NULL)), so we get
+halfway random behaviour.
+
+
+------------------------------------------------------------------------
+r4248 | coekie | 2006-03-01 00:02:48 +0000 (Wed, 01 Mar 2006) | 1 line
+Changed paths:
+   M /irssi/trunk/src/irc/core/netsplit.c
+   M /irssi/trunk/src/irc/notifylist/notifylist.c
+
+Ignore joins without a nick from broken servers
+------------------------------------------------------------------------
+r4247 | coekie | 2006-02-20 11:20:57 +0000 (Mon, 20 Feb 2006) | 1 line
+Changed paths:
+   M /irssi/trunk/src/core/nicklist.c
+   M /irssi/trunk/src/core/nicklist.h
+   M /irssi/trunk/src/fe-common/core/fe-channels.c
+
+sort nicks with custom prefix by the order defined in isupport in /NAMES
+------------------------------------------------------------------------
+r4245 | vb | 2006-02-17 23:18:34 +0000 (Fri, 17 Feb 2006) | 1 line
+Changed paths:
+   M /irssi/trunk/src/irc/dcc/dcc-resume.c
+
+leave parameter count check as it was before
+------------------------------------------------------------------------
+r4244 | vb | 2006-02-17 23:07:02 +0000 (Fri, 17 Feb 2006) | 1 line
+Changed paths:
+   M /irssi/trunk/src/irc/dcc/dcc-resume.c
+
+check the paramcount for DCC RESUME more strictly
+------------------------------------------------------------------------
+r4232 | coekie | 2006-02-01 09:56:42 +0000 (Wed, 01 Feb 2006) | 1 line
+Changed paths:
+   M /irssi/trunk/src/fe-text/gui-readline.c
+
+make negative scroll_page_count scroll screensize-n lines (Patch by Chris Moore)
+------------------------------------------------------------------------
+r4231 | vb | 2006-01-31 19:06:20 +0000 (Tue, 31 Jan 2006) | 1 line
+Changed paths:
+   M /irssi/trunk/src/fe-text/terminfo-core.c
+
+Fix colors with TERM=xterm-{88,256}color, patch by Emanuele Giaquinta
+------------------------------------------------------------------------
+r4230 | vb | 2006-01-30 18:48:44 +0000 (Mon, 30 Jan 2006) | 1 line
+Changed paths:
+   M /irssi/trunk/src/irc/core/irc-commands.c
+
+Only send QUOTE immediately when server didn't yet sent the 001 event
+------------------------------------------------------------------------
+r4229 | vb | 2006-01-29 22:37:24 +0000 (Sun, 29 Jan 2006) | 1 line
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/utf8.c
+   M /irssi/trunk/src/fe-common/core/utf8.h
+   M /irssi/trunk/src/fe-text/gui-entry.c
+   M /irssi/trunk/src/fe-text/gui-entry.h
+   M /irssi/trunk/src/fe-text/gui-readline.c
+
+Fixed a bug where tab-complete didn't worked with utf8/big5 multibyte characters properly
+------------------------------------------------------------------------
+r4228 | cras | 2006-01-28 16:04:44 +0000 (Sat, 28 Jan 2006) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/irc/dcc/dcc.c
+
+If dcc_own_ip contains IPv4 address, listen only in IPv4.
+
+
+------------------------------------------------------------------------
+r4225 | vb | 2006-01-26 21:54:02 +0000 (Thu, 26 Jan 2006) | 1 line
+Changed paths:
+   M /irssi/trunk/src/irc/core/irc-commands.c
+
+changed /QUOTE to be sent immediately, since the queueing was changed, it's not possible to do things like /quote PONG :cookie before event 001 has been received (required on some EFNet servers when you haven't got an identd)
+------------------------------------------------------------------------
+r4202 | coekie | 2006-01-17 20:20:28 +0000 (Tue, 17 Jan 2006) | 1 line
+Changed paths:
+   M /irssi/trunk/src/irc/dcc/dcc.c
+
+fix segfault on /quit by using a linked list node after freeing it (by  Chris Moore)
+------------------------------------------------------------------------
+r4164 | dpash | 2005-12-14 08:38:42 +0000 (Wed, 14 Dec 2005) | 4 lines
+Changed paths:
+   M /irssi/trunk/debian/changelog
+   M /irssi/trunk/debian/control
+
+Fix the Conflicts and Replaces line for sarge backporting
+Remove the irssi-snapshot dummy packages as they weren't needed for
+Sid.
+
+------------------------------------------------------------------------
+r4156 | dpash | 2005-12-11 10:15:04 +0000 (Sun, 11 Dec 2005) | 1 line
+Changed paths:
+   M /irssi/trunk/debian/changelog
+
+0.8.10 release
+------------------------------------------------------------------------
+r4154 | coekie | 2005-12-11 09:41:15 +0000 (Sun, 11 Dec 2005) | 1 line
+Changed paths:
+   M /irssi/trunk/NEWS
+   M /irssi/trunk/configure.in
+
+Release 0.8.10
+------------------------------------------------------------------------
+r4114 | dpash | 2005-12-01 09:22:57 +0000 (Thu, 01 Dec 2005) | 2 lines
+Changed paths:
+   M /irssi/trunk/debian/changelog
+   M /irssi/trunk/debian/control
+
+Update for 0.8.10rc8
+
+------------------------------------------------------------------------
+r4106 | coekie | 2005-11-30 13:49:01 +0000 (Wed, 30 Nov 2005) | 4 lines
+Changed paths:
+   M /irssi/trunk/NEWS
+   M /irssi/trunk/configure.in
+   M /irssi/trunk/docs/manual.txt
+
+- s/IRCNET/NETWORK/ in manual.txt
+- update NEWS
+- Release 0.8.10-rc8
+
+------------------------------------------------------------------------
+r4096 | vb | 2005-11-24 18:17:57 +0000 (Thu, 24 Nov 2005) | 1 line
+Changed paths:
+   M /irssi/trunk/src/irc/core/irc-servers.c
+   M /irssi/trunk/src/irc/core/irc-servers.h
+   M /irssi/trunk/src/irc/core/irc-session.c
+
+Initialize the isupport functions on /upgrade aswell
+------------------------------------------------------------------------
+r4091 | vb | 2005-11-23 18:30:22 +0000 (Wed, 23 Nov 2005) | 8 lines
+Changed paths:
+   M /irssi/trunk/src/core/network-openssl.c
+   A /irssi/trunk/src/fe-common/core/utf8.c (from /irssi/trunk/src/fe-text/utf8.c:4089)
+   A /irssi/trunk/src/fe-common/core/utf8.h (from /irssi/trunk/src/fe-text/utf8.h:4089)
+   M /irssi/trunk/src/fe-text/term-terminfo.c
+   M /irssi/trunk/src/fe-text/textbuffer-view.c
+   D /irssi/trunk/src/fe-text/utf8.c
+   D /irssi/trunk/src/fe-text/utf8.h
+
+
+replace guint by gsize for the glib2 version of irssi_ssl_read
+like it's defined in GIOFuncs for glib2
+moved src/fe-text/utf8.* to src/fe-common/core
+changed get_utf8_char so it returns a status code and the unichar argument pointer
+to the value that it returned before if there were no errors,
+so you can check for a negative value an handle the error
+
+------------------------------------------------------------------------
+r4090 | vb | 2005-11-23 18:17:11 +0000 (Wed, 23 Nov 2005) | 1 line
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-log.c
+   D /irssi/trunk/src/fe-common/core/utf8.c
+   D /irssi/trunk/src/fe-common/core/utf8.h
+
+removed utf8.c utf8.h, going to move them from src/fe-text to here
+------------------------------------------------------------------------
+r4083 | cras | 2005-11-20 14:33:32 +0000 (Sun, 20 Nov 2005) | 4 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-common-core.c
+
+g_log_set_default_handler() came only in glib 2.6.0. Don't use it for older
+glibs.
+
+
+------------------------------------------------------------------------
+r4082 | cras | 2005-11-19 18:13:18 +0000 (Sat, 19 Nov 2005) | 4 lines
+Changed paths:
+   M /irssi/trunk/src/core/recode.c
+   M /irssi/trunk/src/fe-common/core/fe-recode.c
+   M /irssi/trunk/src/fe-common/core/module-formats.c
+   M /irssi/trunk/src/fe-common/core/module-formats.h
+
+If transliterations don't work in the system (eg. Solaris), don't allow
+recode_transliterate setting to be enabled.
+
+
+------------------------------------------------------------------------
+r4081 | cras | 2005-11-19 17:28:50 +0000 (Sat, 19 Nov 2005) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-common-core.c
+
+With GLIB2 hook all glib logging functions no matter what the domains are.
+
+
+------------------------------------------------------------------------
+r4080 | cras | 2005-11-19 16:44:28 +0000 (Sat, 19 Nov 2005) | 5 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/fe-irc-commands.c
+
+Using "/VER" in channel now doesn't directly ask CTCP VERSION from it.
+Channel name or "*" is required as parameter. It still works in query
+though.
+
+
+------------------------------------------------------------------------
+r4079 | cras | 2005-11-19 16:15:55 +0000 (Sat, 19 Nov 2005) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/core/recode.c
+
+Default recode_transliterate to yes
+
+------------------------------------------------------------------------
+r4078 | cras | 2005-11-19 16:14:37 +0000 (Sat, 19 Nov 2005) | 3 lines
+Changed paths:
+   M /irssi/trunk/configure.in
+
+Default to IPv6 enabled
+
+
+------------------------------------------------------------------------
+r4077 | cras | 2005-11-19 16:12:40 +0000 (Sat, 19 Nov 2005) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/core/network.c
+
+When looking up IP addresses, return random IP instead of the first one.
+
+
+------------------------------------------------------------------------
+r4076 | c0ffee | 2005-11-15 23:38:01 +0000 (Tue, 15 Nov 2005) | 4 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/terminfo-core.c
+
+Fixed return code of term_init (resulted in segfault with invalid TERM and
+termcap)
+
+
+------------------------------------------------------------------------
+r4072 | coekie | 2005-11-09 15:16:43 +0000 (Wed, 09 Nov 2005) | 1 line
+Changed paths:
+   M /irssi/trunk/NEWS
+   M /irssi/trunk/configure.in
+
+Time for 0.8.10-rc7
+------------------------------------------------------------------------
+r4067 | vb | 2005-11-07 19:06:42 +0000 (Mon, 07 Nov 2005) | 4 lines
+Changed paths:
+   M /irssi/trunk/docs/help/in/recode.in
+   M /irssi/trunk/src/core/recode.c
+
+changed recode_fallback to CP1252
+added recode_autodetect_utf8, it's on by default
+removed settings_remove calls from recode_deinit since I don't see any other internal module doing it
+
+------------------------------------------------------------------------
+r4066 | coekie | 2005-11-06 22:05:28 +0000 (Sun, 06 Nov 2005) | 1 line
+Changed paths:
+   M /irssi/trunk/configure.in
+
+Ahem. And now really fix it.
+------------------------------------------------------------------------
+r4065 | coekie | 2005-11-06 21:19:14 +0000 (Sun, 06 Nov 2005) | 1 line
+Changed paths:
+   M /irssi/trunk/configure.in
+
+Put irc/irc.c and fe-common/irc/irc-modules.c (generated by configure) in builddir instead of source dir (Bug 293)
+------------------------------------------------------------------------
+r4064 | coekie | 2005-11-03 21:33:32 +0000 (Thu, 03 Nov 2005) | 1 line
+Changed paths:
+   M /irssi/trunk/configure.in
+
+When glib isn't found, download recent glib version (2.8.3) instead of the old 1.2.10
+------------------------------------------------------------------------
+r4063 | coekie | 2005-11-02 21:05:24 +0000 (Wed, 02 Nov 2005) | 1 line
+Changed paths:
+   M /irssi/trunk/src/fe-text/gui-entry.c
+
+Compile with glib1 again (part of patch from peder). g_unichar_*-ifying (making more things unicode aware) will probably have to wait till .11
+------------------------------------------------------------------------
+r4062 | coekie | 2005-11-02 20:40:21 +0000 (Wed, 02 Nov 2005) | 1 line
+Changed paths:
+   M /irssi/trunk/src/irc/core/irc-queries.c
+
+Don't crash if receiving broken privmsg without source (which bitlbee can send if you msg yourself)
+------------------------------------------------------------------------
+r4061 | coekie | 2005-10-30 20:04:12 +0000 (Sun, 30 Oct 2005) | 2 lines
+Changed paths:
+   M /irssi/trunk/irssi.conf
+
+Clean up default network list: removed smaller networks, added QuakeNet. Removed max_modes because it's sent in isupport, and fix max_kicks for Undernet.
+
+------------------------------------------------------------------------
+r4054 | coekie | 2005-10-21 12:48:07 +0000 (Fri, 21 Oct 2005) | 1 line
+Changed paths:
+   M /irssi/trunk/acconfig.h
+   M /irssi/trunk/configure.in
+
+Fix configure.in from previous commit, by Emanuele Giaquinta
+------------------------------------------------------------------------
+r4052 | vb | 2005-10-19 17:24:19 +0000 (Wed, 19 Oct 2005) | 1 line
+Changed paths:
+   M /irssi/trunk/configure.in
+
+Add AC_DEFINE(HAVE_SOCKS), fixes SOCKSinit in irssi.c, patch by Emanuele Giaquinta
+------------------------------------------------------------------------
+r4047 | coekie | 2005-10-18 19:50:09 +0000 (Tue, 18 Oct 2005) | 1 line
+Changed paths:
+   M /irssi/trunk/src/irc/core/irc-nicklist.c
+
+Fix crash on netsplit+join after /upgrade from 0.8.9
+------------------------------------------------------------------------
+r4046 | coekie | 2005-10-18 17:43:48 +0000 (Tue, 18 Oct 2005) | 1 line
+Changed paths:
+   M /irssi/trunk/src/fe-text/gui-readline.c
+
+Fix warnings caused by r4043
+------------------------------------------------------------------------
+r4045 | coekie | 2005-10-18 16:20:08 +0000 (Tue, 18 Oct 2005) | 1 line
+Changed paths:
+   M /irssi/trunk/configure.in
+
+s/with_glib1/want_glib1/ in configure.in, by Emanuele Giaquinta
+------------------------------------------------------------------------
+r4043 | coekie | 2005-10-18 11:59:26 +0000 (Tue, 18 Oct 2005) | 1 line
+Changed paths:
+   M /irssi/trunk/src/fe-text/gui-readline.c
+
+Fix delete_{next,previous}_word bindings, patch by Emanuele Giaquinta
+------------------------------------------------------------------------
+r4042 | vb | 2005-10-16 11:16:33 +0000 (Sun, 16 Oct 2005) | 1 line
+Changed paths:
+   M /irssi/trunk/src/core/recode.c
+   M /irssi/trunk/src/fe-common/irc/fe-irc-messages.c
+
+fixed a bug in recode when target is NULL and really use the recoded string for printing
+------------------------------------------------------------------------
+r4041 | vb | 2005-10-15 18:45:25 +0000 (Sat, 15 Oct 2005) | 1 line
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/fe-events-numeric.c
+   M /irssi/trunk/src/fe-common/irc/fe-irc-messages.c
+
+fixed recode for actions and added recode for numeric events
+------------------------------------------------------------------------
+r4040 | vb | 2005-10-15 08:46:35 +0000 (Sat, 15 Oct 2005) | 1 line
+Changed paths:
+   M /irssi/trunk/src/core/network-openssl.c
+   M /irssi/trunk/src/core/network.c
+
+Remove the inline declarations, patch by nailbiter
+------------------------------------------------------------------------
+r4039 | dpash | 2005-10-13 23:37:36 +0000 (Thu, 13 Oct 2005) | 5 lines
+Changed paths:
+   M /irssi/trunk/debian/changelog
+   M /irssi/trunk/debian/control
+   M /irssi/trunk/debian/patches/00list
+
+  * New upstream version
+  * Disable the GnuTLS patch for now.
+  * Added Provides, Replaces and Conflicts for irssi-text and irssi-snapshot
+
+
+------------------------------------------------------------------------
+r4038 | vb | 2005-10-12 18:22:14 +0000 (Wed, 12 Oct 2005) | 4 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-messages.c
+   M /irssi/trunk/src/fe-common/irc/fe-irc-messages.c
+   M /irssi/trunk/src/fe-text/irssi.c
+
+fixed recoding of own messages.
+recode after expand_emphasis
+remove the redundant call to setlocale(LC_CTYPE, )
+
+------------------------------------------------------------------------
+r4034 | vb | 2005-10-10 18:32:32 +0000 (Mon, 10 Oct 2005) | 4 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-messages.c
+   M /irssi/trunk/src/fe-common/core/fe-recode.c
+   M /irssi/trunk/src/fe-common/irc/dcc/fe-dcc-chat-messages.c
+   M /irssi/trunk/src/fe-common/irc/fe-irc-messages.c
+   M /irssi/trunk/src/irc/dcc/dcc-chat.c
+   M /irssi/trunk/src/irc/dcc/dcc-get.c
+
+Make the compiler happy by replacing 'const char *' by 'char *'.
+Pass the pointer to the SERVER_REC to dcc_ctcp_message.
+Recode 'own' messages back for printing just before they actually get printed. (ugly but more effective than adding all the signals in fe-recode and doing it there)
+Replaced SERVER_REC by IRC_SERVER_REC in dcc-chat.c since it's belongs to IRC(makes the compiler happy again).
+------------------------------------------------------------------------
+r4033 | coekie | 2005-10-10 10:04:51 +0000 (Mon, 10 Oct 2005) | 1 line
+Changed paths:
+   M /irssi/trunk/src/core/recode.c
+
+Don't crash with /me in dcc, or dcc message on disconnected server, with recode (Bug 330)
+------------------------------------------------------------------------
+r4013 | coekie | 2005-09-29 21:02:31 +0000 (Thu, 29 Sep 2005) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/perl/ui/Formats.xs
+
+Fix compilation with gcc4 and --with-gc, Patch by Michael Poole
+
+------------------------------------------------------------------------
+r3997 | coekie | 2005-09-25 13:36:09 +0000 (Sun, 25 Sep 2005) | 4 lines
+Changed paths:
+   M /irssi/trunk/NEWS
+   M /irssi/trunk/configure.in
+   M /irssi/trunk/debian/patches/00list
+
+- Disable commited patches in debian/patches
+- update NEWS
+- Bump version to 0.8.10-rc6
+
+------------------------------------------------------------------------
+r3992 | coekie | 2005-09-10 13:30:23 +0000 (Sat, 10 Sep 2005) | 1 line
+Changed paths:
+   M /irssi/trunk/src/irc/core/irc-nicklist.c
+   M /irssi/trunk/src/irc/dcc/dcc-chat.c
+
+don't crash if server sends weird NICK line, patch by Jarno Honkanen (Bug 216)
+------------------------------------------------------------------------
+r3991 | coekie | 2005-09-10 13:19:20 +0000 (Sat, 10 Sep 2005) | 1 line
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/themes.c
+
+fix completion for /format (Bug 143)
+------------------------------------------------------------------------
+r3990 | coekie | 2005-09-10 12:51:43 +0000 (Sat, 10 Sep 2005) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/misc.c
+
+Make parse_time_interval recognize negative times. Patch by Danijel Tasov and Elmar Hoffmann (Bug 23)
+
+------------------------------------------------------------------------
+r3989 | coekie | 2005-09-10 03:23:27 +0000 (Sat, 10 Sep 2005) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/fe-whois.c
+
+with unknown (special) lines in whois, display the full content, not just the first parameter
+(this may include "real content" as well as the description of what that field means)
+
+------------------------------------------------------------------------
+r3988 | coekie | 2005-09-10 01:36:06 +0000 (Sat, 10 Sep 2005) | 8 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/fe-events.c
+   M /irssi/trunk/src/irc/core/irc-commands.c
+
+- rename "whois not found" to "whois try whowas", because that's what needs to be done when the signal is sent (and it doesn't mean whois_not_found should be printed)
+- rename "whois event noserver" to "whois event not found", because the signal means the nickname wasn't found (but it comes as a "no such server" because it was a /whois nick nick), whois_not_found should be printed, and so it makes sense to also use it for the next fix:
+- send "whois event not found" for 401, when auto_whowas is off, so the message is displayed correctly (Bug 295)
+- handle 402 the same with auto_whowas off as with on, (fixes /whois with not existing server specified, with auto_whowas off).
+- and since the auto_whowas on and off cases are similar now, merge them together, so they stay consistent.
+
+- pass every argument given to /whowas to the server, not just the first (count). Fixes remote whowas (Bug 256)
+
+------------------------------------------------------------------------
+r3987 | coekie | 2005-09-08 13:09:23 +0000 (Thu, 08 Sep 2005) | 3 lines
+Changed paths:
+   M /irssi/trunk/autogen.sh
+
+type -p seems to be a bashism. doing svn --version instead
+/me blames darix :)
+
+------------------------------------------------------------------------
+r3986 | coekie | 2005-09-08 11:01:21 +0000 (Thu, 08 Sep 2005) | 4 lines
+Changed paths:
+   M /irssi/trunk/autogen.sh
+
+Handle missing svn, and running autogen from the tarball better
+Use svn from SVN env var if given
+Revert quotes in messages getting broken from r3709
+
+------------------------------------------------------------------------
+r3963 | vb | 2005-08-27 22:06:34 +0000 (Sat, 27 Aug 2005) | 1 line
+Changed paths:
+   M /irssi/trunk/TODO
+   M /irssi/trunk/docs/help/in/bind.in
+   M /irssi/trunk/src/fe-text/gui-entry.c
+   M /irssi/trunk/src/fe-text/gui-entry.h
+   M /irssi/trunk/src/fe-text/gui-readline.c
+
+Implementation of the meta-[cult] (capitalize words, upcase word, downcase word, transpose words) key-bindings from the TODO by Peder Stray
+------------------------------------------------------------------------
+r3948 | vb | 2005-08-24 19:42:17 +0000 (Wed, 24 Aug 2005) | 1 line
+Changed paths:
+   M /irssi/trunk/src/core/net-sendbuffer.c
+   M /irssi/trunk/src/core/net-sendbuffer.h
+   M /irssi/trunk/src/irc/proxy/listen.c
+
+moved the _NET_SENDBUF_REC definition out of core/net-sendbuffer.c and irc/proxy/listen.c into core/net-sendbuffer.h
+------------------------------------------------------------------------
+r3947 | vb | 2005-08-24 19:25:47 +0000 (Wed, 24 Aug 2005) | 1 line
+Changed paths:
+   M /irssi/trunk/src/irc/proxy/dump.c
+   M /irssi/trunk/src/irc/proxy/listen.c
+   M /irssi/trunk/src/irc/proxy/module.h
+
+replaced net_transmit by net_sendbuffer_send in the irssi-proxy module, there were no checks if the buffer was sent completely with net_transmit
+------------------------------------------------------------------------
+r3935 | coekie | 2005-08-18 12:14:49 +0000 (Thu, 18 Aug 2005) | 1 line
+Changed paths:
+   M /irssi/trunk/docs/perl.txt
+
+Document that you have to send a "setup changed" signal after using settings_set_* for someone elses settings
+------------------------------------------------------------------------
+r3932 | coekie | 2005-08-15 23:04:06 +0000 (Mon, 15 Aug 2005) | 1 line
+Changed paths:
+   M /irssi/trunk/src/irc/notifylist/notify-ison.c
+
+Fix notify with more nicks than max_whois_in_cmd (Bug 257), based on patch by Krzysztof Kowalik (Borys)
+------------------------------------------------------------------------
+r3931 | coekie | 2005-08-15 22:32:26 +0000 (Mon, 15 Aug 2005) | 1 line
+Changed paths:
+   M /irssi/trunk/scripts/buf.pl
+   M /irssi/trunk/scripts/mail.pl
+   M /irssi/trunk/scripts/splitlong.pl
+
+Update scripts to most recent version from scripts.irssi.org
+------------------------------------------------------------------------
+r3930 | coekie | 2005-08-15 22:18:49 +0000 (Mon, 15 Aug 2005) | 1 line
+Changed paths:
+   M /irssi/trunk/docs/faq.html
+
+more faq fixes: s/it's/its/, s/i/I/, and there is away_verbose on scripts.irssi.org, so let's not claim there is no such script public
+------------------------------------------------------------------------
+r3929 | coekie | 2005-08-15 22:03:52 +0000 (Mon, 15 Aug 2005) | 1 line
+Changed paths:
+   M /irssi/trunk/docs/faq.html
+
+Update faq: s/term_type/term_charset/ and a bit more verbose
+------------------------------------------------------------------------
+r3920 | vb | 2005-08-11 13:07:17 +0000 (Thu, 11 Aug 2005) | 1 line
+Changed paths:
+   M /irssi/trunk/NEWS
+   M /irssi/trunk/docs/help/in/recode.in
+
+updated /help recode and NEWS
+------------------------------------------------------------------------
+r3917 | coekie | 2005-08-09 21:23:52 +0000 (Tue, 09 Aug 2005) | 3 lines
+Changed paths:
+   M /irssi/trunk/docs/startup-HOWTO-rus.html
+   M /irssi/trunk/docs/startup-HOWTO.html
+
+s/freenode/OFTC/ in the examples
+(as you might have noticed, we don't really like freenode)
+
+------------------------------------------------------------------------
+r3916 | coekie | 2005-08-09 20:29:45 +0000 (Tue, 09 Aug 2005) | 1 line
+Changed paths:
+   M /irssi/trunk/AUTHORS
+   M /irssi/trunk/NEWS
+
+update NEWS and AUTHORS
+------------------------------------------------------------------------
+r3915 | coekie | 2005-08-09 19:41:06 +0000 (Tue, 09 Aug 2005) | 1 line
+Changed paths:
+   M /irssi/trunk/irssi.conf
+
+remove TAG alias because it doesn't work with quotes in the command, and make ATAG alias simpler
+------------------------------------------------------------------------
+r3897 | coekie | 2005-08-05 02:24:29 +0000 (Fri, 05 Aug 2005) | 1 line
+Changed paths:
+   M /irssi/trunk/src/fe-text/textbuffer-view.c
+
+fix minor textbuffer leak, Bug 288 by Toby
+------------------------------------------------------------------------
+r3896 | vb | 2005-08-04 08:41:33 +0000 (Thu, 04 Aug 2005) | 1 line
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/fe-events.c
+
+Fixed recode for incoming messages, private messages didn't work properly. (Bug http://bugs.irssi.org/?do=details&id=286)
+------------------------------------------------------------------------
+r3895 | coekie | 2005-08-01 16:07:22 +0000 (Mon, 01 Aug 2005) | 1 line
+Changed paths:
+   M /irssi/trunk/src/irc/dcc/dcc-resume.c
+
+Fix dcc resume crash (only in the rc's and svn) (Bug 287)
+------------------------------------------------------------------------
+r3882 | vb | 2005-07-24 20:01:06 +0000 (Sun, 24 Jul 2005) | 1 line
+Changed paths:
+   M /irssi/trunk/src/core/recode.c
+
+Forgot to add the additional parameter to g_convert_with_fallback (This always happens when I'm applying patches manually :( )
+------------------------------------------------------------------------
+r3881 | vb | 2005-07-24 19:16:14 +0000 (Sun, 24 Jul 2005) | 1 line
+Changed paths:
+   M /irssi/trunk/docs/help/in/recode.in
+   M /irssi/trunk/src/core/recode.c
+
+Added an option to specify a charset for a whole network. For example /recode add IRCnet iso-8859-1 (http://bugs.irssi.org/index.php?do=details&id=284) Patch by Sergey Safonov. Replaced g_convert by g_convert_with_fallback in recode_in (http://bugs.irssi.org/index.php?do=details&id=241) Patch by Kuang-che Wu.
+------------------------------------------------------------------------
+r3865 | coekie | 2005-07-17 16:43:18 +0000 (Sun, 17 Jul 2005) | 1 line
+Changed paths:
+   M /irssi/trunk/src/core/commands.c
+   M /irssi/trunk/src/core/commands.h
+   M /irssi/trunk/src/fe-common/core/fe-core-commands.c
+   M /irssi/trunk/src/fe-common/core/module-formats.c
+   M /irssi/trunk/src/fe-common/core/module-formats.h
+
+Fix /eval recursion crashing (debian/patches/04eval_recurse.dpatch by David Pashley)
+------------------------------------------------------------------------
+r3864 | coekie | 2005-07-17 16:41:23 +0000 (Sun, 17 Jul 2005) | 1 line
+Changed paths:
+   M /irssi/trunk/src/fe-text/term-curses.c
+   M /irssi/trunk/src/fe-text/term-terminfo.c
+
+Handle ^Z better (debian/patches/03sigtstp.dpatch by David Pashley, http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=177108)
+------------------------------------------------------------------------
+r3863 | dpash | 2005-07-17 16:40:28 +0000 (Sun, 17 Jul 2005) | 3 lines
+Changed paths:
+   A /irssi/trunk/debian/NEWS.Debian
+
+Warn people about the lack of certificate verification in the gnutls
+code.
+
+------------------------------------------------------------------------
+r3862 | coekie | 2005-07-17 16:40:06 +0000 (Sun, 17 Jul 2005) | 1 line
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-common-core.c
+
+Print glib errors nicely (debian/patches/01glib-errors.dpatch by David Pashley)
+------------------------------------------------------------------------
+r3861 | dpash | 2005-07-17 14:07:20 +0000 (Sun, 17 Jul 2005) | 2 lines
+Changed paths:
+   M /irssi/trunk/debian/patches/00list
+   A /irssi/trunk/debian/patches/06gnutls-support.dpatch
+   A /irssi/trunk/debian/patches/07gnutls-support-automakery.dpatch
+
+Add inital gnutls support
+
+------------------------------------------------------------------------
+r3860 | dpash | 2005-07-17 12:23:37 +0000 (Sun, 17 Jul 2005) | 2 lines
+Changed paths:
+   M /irssi/trunk/debian/changelog
+   M /irssi/trunk/debian/patches/00list
+
+The tr_TR patch has been committed upstream. Don't apply it.
+
+------------------------------------------------------------------------
+r3859 | dpash | 2005-07-17 12:23:05 +0000 (Sun, 17 Jul 2005) | 3 lines
+Changed paths:
+   M /irssi/trunk/debian/patches/01glib-errors.dpatch
+
+Add a comment so it doesn't get confused and shift the patch down if it
+failed to unpatch the previous time
+
+------------------------------------------------------------------------
+r3858 | dpash | 2005-07-17 11:42:18 +0000 (Sun, 17 Jul 2005) | 3 lines
+Changed paths:
+   M /irssi/trunk/debian/changelog
+   M /irssi/trunk/debian/control
+
+Update the changelog and dependancies to include information from the
+old packaging of irssi-text
+
+------------------------------------------------------------------------
+r3857 | dpash | 2005-07-17 11:40:58 +0000 (Sun, 17 Jul 2005) | 3 lines
+Changed paths:
+   M /irssi/trunk/debian/patches/00list
+   M /irssi/trunk/debian/patches/03sigtstp.dpatch
+   A /irssi/trunk/debian/patches/04eval_recurse.dpatch
+   A /irssi/trunk/debian/patches/05upgrade-check-binary.dpatch
+
+Add patches to check the binary exists before doing an /upgrade and to
+stop eval recursive loops
+
+------------------------------------------------------------------------
+r3855 | dpash | 2005-07-15 21:54:15 +0000 (Fri, 15 Jul 2005) | 2 lines
+Changed paths:
+   A /irssi/trunk/debian/botti.1
+   M /irssi/trunk/debian/changelog
+   A /irssi/trunk/debian/compat
+   D /irssi/trunk/debian/conffiles
+   M /irssi/trunk/debian/control
+   M /irssi/trunk/debian/copyright
+   D /irssi/trunk/debian/dirs
+   A /irssi/trunk/debian/irssi-dev.install
+   A /irssi/trunk/debian/irssi.docs
+   A /irssi/trunk/debian/irssi.install
+   A /irssi/trunk/debian/irssi.manpages
+   A /irssi/trunk/debian/irssi.menu
+   A /irssi/trunk/debian/irssi.postinst
+   A /irssi/trunk/debian/irssi.prerm
+   D /irssi/trunk/debian/menu
+   A /irssi/trunk/debian/patches
+   A /irssi/trunk/debian/patches/00list
+   A /irssi/trunk/debian/patches/01glib-errors.dpatch
+   A /irssi/trunk/debian/patches/02tr_TR.dpatch
+   A /irssi/trunk/debian/patches/03sigtstp.dpatch
+   D /irssi/trunk/debian/postinst
+   D /irssi/trunk/debian/prerm
+   M /irssi/trunk/debian/rules
+   D /irssi/trunk/debian/undocumented
+
+Massively overhaul the debian packaging to bring it up to 0.8.10rc5
+
+------------------------------------------------------------------------
+r3827 | vb | 2005-07-07 18:17:29 +0000 (Thu, 07 Jul 2005) | 1 line
+Changed paths:
+   M /irssi/trunk/docs/help/in/query.in
+
+Updated the help file for QUERY, added a Note about using /query without parameters is working like /unquery:
+------------------------------------------------------------------------
+r3826 | vb | 2005-07-07 17:56:51 +0000 (Thu, 07 Jul 2005) | 1 line
+Changed paths:
+   M /irssi/trunk/docs/help/in/query.in
+
+Updated the help file for QUERY, added UNQUERY to See also:
+------------------------------------------------------------------------
+r3805 | vb | 2005-06-29 07:47:45 +0000 (Wed, 29 Jun 2005) | 1 line
+Changed paths:
+   M /irssi/trunk/docs/help/in/recode.in
+   M /irssi/trunk/src/core/recode.c
+
+Added a new boolean setting 'recode' to provide an opportunity to turn off recode completely
+------------------------------------------------------------------------
+r3794 | coekie | 2005-06-24 16:43:18 +0000 (Fri, 24 Jun 2005) | 1 line
+Changed paths:
+   M /irssi/trunk/src/irc/core/irc-commands.c
+
+Fix server->last_nick leak by Toby (Bug 267)
+------------------------------------------------------------------------
+r3755 | vb | 2005-05-14 18:01:07 +0000 (Sat, 14 May 2005) | 1 line
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/chat-completion.c
+
+Fixed a bug where the completion history can grow without bound, patch by Toby Peterson
+------------------------------------------------------------------------
+r3754 | vb | 2005-05-14 17:53:49 +0000 (Sat, 14 May 2005) | 1 line
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/chat-completion.c
+
+Fixed leaking in chat-completion (http://bugs.irssi.org/?do=details&id=249), patch by Toby Peterson
+------------------------------------------------------------------------
+r3750 | vb | 2005-05-14 12:32:03 +0000 (Sat, 14 May 2005) | 1 line
+Changed paths:
+   M /irssi/trunk/src/irc/core/modes.c
+
+Fixed a bug with isupport, after an upgrade from 0.8.9 prefix very well can be NULL, so check for it
+------------------------------------------------------------------------
+r3746 | vb | 2005-05-11 18:52:12 +0000 (Wed, 11 May 2005) | 1 line
+Changed paths:
+   M /irssi/trunk/src/irc/core/irc-channels.c
+
+Fixed a bug where the channel list to join/rejoin on reconnect gets too long, not all channels will be joined. The channel list is splitted into multiple lines right now when it's too long. (http://bugs.irssi.org/index.php?id=108&do=details)
+------------------------------------------------------------------------
+r3740 | vb | 2005-05-09 21:31:47 +0000 (Mon, 09 May 2005) | 1 line
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-recode.c
+
+Updated the syntax definition for /recode add in fe-recode.c
+------------------------------------------------------------------------
+r3738 | vb | 2005-05-09 15:30:59 +0000 (Mon, 09 May 2005) | 1 line
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/fe-events-numeric.c
+
+Fixed a leak in fe-events-numeric.c, patch by Toby Peterson
+------------------------------------------------------------------------
+r3737 | vb | 2005-05-09 15:18:24 +0000 (Mon, 09 May 2005) | 3 lines
+Changed paths:
+   M /irssi/trunk/autogen.sh
+   M /irssi/trunk/file2header.sh
+   M /irssi/trunk/findsyntax.pl
+   M /irssi/trunk/scripts/autoop.pl
+   M /irssi/trunk/scripts/autorejoin.pl
+   M /irssi/trunk/scripts/buf.pl
+   M /irssi/trunk/scripts/dns.pl
+   M /irssi/trunk/scripts/kills.pl
+   M /irssi/trunk/scripts/mail.pl
+   M /irssi/trunk/scripts/mlock.pl
+   M /irssi/trunk/scripts/quitmsg.pl
+   M /irssi/trunk/scripts/scriptassist.pl
+   M /irssi/trunk/scripts/splitlong.pl
+   M /irssi/trunk/scripts/usercount.pl
+   M /irssi/trunk/src/fe-text/gui-readline.c
+   M /irssi/trunk/syntax.pl
+
+Fixed bug where pasting is not using the character translation (http://bugs.irssi.org/index.php?id=151) patch by Unknown
+Fixed a bug in scripts/autorejoin.pl so you can really use a space or a comma for separating the channels in /set autorejoin_channels
+Changed svn:mime-type of .pl and .sh files into the text/x- version, so you can diff them
+------------------------------------------------------------------------
+r3728 | coekie | 2005-04-26 12:25:19 +0000 (Tue, 26 Apr 2005) | 1 line
+Changed paths:
+   M /irssi/trunk/src/perl/perl-common.c
+
+Fix tr_TR locale problem for glib2 (still a bug with glib1.2) by David Pashley
+------------------------------------------------------------------------
+r3727 | coekie | 2005-04-26 11:51:40 +0000 (Tue, 26 Apr 2005) | 1 line
+Changed paths:
+   M /irssi/trunk/src/irc/core/irc-servers-reconnect.c
+
+Remember alternate_nick and max_whois on reconnect (Bug 181)
+------------------------------------------------------------------------
+r3726 | coekie | 2005-04-25 22:21:19 +0000 (Mon, 25 Apr 2005) | 1 line
+Changed paths:
+   M /irssi/trunk/src/common.h
+
+Compile fix for gcc 4 (Bug 219)
+------------------------------------------------------------------------
+r3725 | coekie | 2005-04-25 20:31:12 +0000 (Mon, 25 Apr 2005) | 1 line
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/fe-ctcp.c
+
+Fix displaying of ctcp userinfo and clientinfo (Bug 222)
+------------------------------------------------------------------------
+r3724 | Geert | 2005-03-30 23:56:08 +0000 (Wed, 30 Mar 2005) | 7 lines
+Changed paths:
+   M /irssi/trunk/irssi.conf
+
+Added three new default aliases.
+
+  EXEMPTLIST: Show the exemptlist of the current channel.
+  TAG:        Execute the folowing command on a specific network.
+              For example: /TAG Freenode /msg #irssi Hi!
+  ATAG:       Changed the active window tag to the specified network.
+
+------------------------------------------------------------------------
+r3723 | vb | 2005-03-07 17:10:45 +0000 (Mon, 07 Mar 2005) | 1 line
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-recode.c
+
+Use char* instead of const char* in read_settings, so memory can be freed without compiler warnings, by Toby Peterson (related to bug 210)
+------------------------------------------------------------------------
+r3722 | coekie | 2005-03-07 16:02:06 +0000 (Mon, 07 Mar 2005) | 1 line
+Changed paths:
+   M /irssi/trunk/src/irc/dcc/dcc-chat.c
+   M /irssi/trunk/src/irc/dcc/dcc-send.c
+
+Don't use a retarted ip for passive DCC
+------------------------------------------------------------------------
+r3721 | coekie | 2005-03-07 15:37:31 +0000 (Mon, 07 Mar 2005) | 1 line
+Changed paths:
+   M /irssi/trunk/src/perl/common/Irssi.xs
+   M /irssi/trunk/src/perl/irc/Irc.xs
+   M /irssi/trunk/src/perl/textui/TextUI.xs
+   M /irssi/trunk/src/perl/ui/UI.xs
+
+Fix /script reset, which caused crashes (Bug 48)
+------------------------------------------------------------------------
+r3720 | coekie | 2005-03-07 14:17:07 +0000 (Mon, 07 Mar 2005) | 1 line
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-messages.c
+
+Don't apply emphasis on _foo_^ if it's a nick (Bug 52)
+------------------------------------------------------------------------
+r3719 | vb | 2005-03-07 06:20:55 +0000 (Mon, 07 Mar 2005) | 1 line
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-recode.c
+
+Free the right memory in fe-recode.c (related to bug 210)
+------------------------------------------------------------------------
+r3718 | vb | 2005-03-06 21:49:57 +0000 (Sun, 06 Mar 2005) | 1 line
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-recode.c
+
+Fixed memleak when preserving valid charsets in read_settings in fe-recode.c (Bug 210)
+------------------------------------------------------------------------
+r3717 | coekie | 2005-03-06 19:30:08 +0000 (Sun, 06 Mar 2005) | 1 line
+Changed paths:
+   M /irssi/trunk/src/irc/core/bans.c
+
+Fix memleak in /UNBAN, by Toby Peterson (Bug 215)
+------------------------------------------------------------------------
+r3716 | coekie | 2005-03-06 18:47:05 +0000 (Sun, 06 Mar 2005) | 1 line
+Changed paths:
+   M /irssi/trunk/src/irc/dcc/dcc-get.c
+
+Fix memleak in dcc get, by Toby Peterson (Bug 214)
+------------------------------------------------------------------------
+r3715 | coekie | 2005-03-06 18:45:47 +0000 (Sun, 06 Mar 2005) | 1 line
+Changed paths:
+   M /irssi/trunk/src/core/servers-reconnect.c
+   M /irssi/trunk/src/fe-common/core/fe-ignore.c
+   M /irssi/trunk/src/fe-common/core/fe-recode.c
+   M /irssi/trunk/src/irc/notifylist/notify-commands.c
+
+Fix memleak in several commands that used cmd_return_error when they should be using cmd_param_error, by Toby Peterson (Bug 213)
+------------------------------------------------------------------------
+r3714 | coekie | 2005-03-06 18:43:39 +0000 (Sun, 06 Mar 2005) | 1 line
+Changed paths:
+   M /irssi/trunk/src/irc/proxy/Makefile.am
+   M /irssi/trunk/src/perl/Makefile.am
+
+Add libtool's -module flag to get built properly on all platforms, by Toby Peterson (Bug 212)
+------------------------------------------------------------------------
+r3713 | coekie | 2005-03-06 18:42:10 +0000 (Sun, 06 Mar 2005) | 1 line
+Changed paths:
+   M /irssi/trunk/src/core/commands.c
+
+Fix command_unbind memleak by Toby Peterson (Bug 211)
+------------------------------------------------------------------------
+r3712 | Geert | 2005-03-04 21:07:51 +0000 (Fri, 04 Mar 2005) | 25 lines
+Changed paths:
+   M /irssi/trunk/irssi.conf
+
+It has been brought to our attention that freenode staff management are
+concerned that bot owners might be using the mIRC server lists in order
+to target irc networks for spam, this we do not find any proof of. mIRC
+might be the most used Windows Client, and  possibly also the "ultimate
+kiddie" client. This does not  mean that  we should flame mIRC  or mIRC
+users through wallops.
+
+The Irssi development team does not support flaming or in any way attacking
+other IRC clients and their users (nor do  we support flaming of other OS's
+or personal attacks on people for their choice of OS, application etc.),
+whether their inbuildt lists *could* be used by drone writers or not. Every
+IRC client holds 'default servers'. Xchat and Gaim for example  have nearly
+the exact same list as mIRC.
+
+Regards,
+
+- Geert Hauwaerts     <geert@irssi.org>
+- Christel Dahlskjaer <christel@irssi.org>
+- Valentin Batz       <senneth@irssi.org> 
+
+Changes:
+--------
+
+- Removed 'freenode' from the ircnet list.
+
+------------------------------------------------------------------------
+r3711 | coekie | 2005-02-22 00:05:06 +0000 (Tue, 22 Feb 2005) | 1 line
+Changed paths:
+   M /irssi/trunk/autogen.sh
+   M /irssi/trunk/configure.in
+
+Byebye stupid tail problems on Solaris. Hi, Mr. grep
+------------------------------------------------------------------------
+r3710 | coekie | 2005-02-16 17:23:19 +0000 (Wed, 16 Feb 2005) | 1 line
+Changed paths:
+   M /irssi/trunk/autogen.sh
+
+One more autogen fix by Janne Kujanpaa
+------------------------------------------------------------------------
+r3709 | coekie | 2005-02-16 16:33:51 +0000 (Wed, 16 Feb 2005) | 1 line
+Changed paths:
+   M /irssi/trunk/autogen.sh
+   M /irssi/trunk/configure.in
+
+autogen and configure fixes by Janne Kujanpaa (Bug 192)
+------------------------------------------------------------------------
+r3708 | vb | 2005-02-11 17:27:09 +0000 (Fri, 11 Feb 2005) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/hilight-text.c
+   M /irssi/trunk/src/irc/dcc/dcc-chat.c
+
+Fixed output of /hilight (add a space after -levels if any).
+Added recode to dcc-chat, patch by Jean-Yves Lefort
+------------------------------------------------------------------------
+r3707 | vb | 2005-02-06 21:31:58 +0000 (Sun, 06 Feb 2005) | 1 line
+Changed paths:
+   M /irssi/trunk/src/core/channels.c
+   M /irssi/trunk/src/irc/core/channel-events.c
+   M /irssi/trunk/src/perl/perl-core.c
+
+Fixed memory leaks when destroying a channel, when loading nonexisten scripts and in topics, patch by Toby Peterson
+------------------------------------------------------------------------
+r3706 | coekie | 2005-02-05 13:20:16 +0000 (Sat, 05 Feb 2005) | 1 line
+Changed paths:
+   M /irssi/trunk/autogen.sh
+
+Update ChangeLog incremental. Dropped ChangeLog.xml (for now?)
+------------------------------------------------------------------------
+r3705 | coekie | 2005-02-04 22:28:08 +0000 (Fri, 04 Feb 2005) | 1 line
+Changed paths:
+   M /irssi/trunk/src/irc/core/irc-servers.c
+
+Compile fix: make it c99 again, by Timothy Hatcher (Bug 184)
+------------------------------------------------------------------------
+r3704 | vb | 2005-02-03 15:51:03 +0000 (Thu, 03 Feb 2005) | 1 line
+Changed paths:
+   M /irssi/trunk/src/irc/core/irc-nicklist.c
+
+Update our own nickrec->gone flag on /away <reason> or on /away
+------------------------------------------------------------------------
+r3703 | vb | 2005-01-12 16:40:44 +0000 (Wed, 12 Jan 2005) | 1 line
+Changed paths:
+   M /irssi/trunk/src/core/recode.c
+   M /irssi/trunk/src/fe-text/irssi.c
+
+call setlocale(LC_ALL, ) once in fe-text/irssi.c and not everytime recode_get_charset() is called in recode.c
+------------------------------------------------------------------------
+r3702 | vb | 2005-01-12 12:10:48 +0000 (Wed, 12 Jan 2005) | 1 line
+Changed paths:
+   M /irssi/trunk/src/core/recode.c
+
+call setlocale(LC_ALL, ) before g_get_charset to properly return the user's charset
+------------------------------------------------------------------------
+r3701 | coekie | 2005-01-12 02:09:07 +0000 (Wed, 12 Jan 2005) | 2 lines
+Changed paths:
+   A /irssi/trunk/docs/help/in/ircnet.in
+   M /irssi/trunk/src/fe-common/irc/fe-ircnet.c
+
+Added IRCNET command again, as a deprecated alias for NETWORK
+
+------------------------------------------------------------------------
+r3700 | vb | 2005-01-04 12:13:47 +0000 (Tue, 04 Jan 2005) | 1 line
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-recode.c
+
+Fixed a bug with /me, use the right arguments for "message irc own_action"
+------------------------------------------------------------------------
+r3699 | vb | 2005-01-04 10:30:53 +0000 (Tue, 04 Jan 2005) | 1 line
+Changed paths:
+   M /irssi/trunk/src/perl/irc/Modes.xs
+
+Updated the changed arguments for ban_remove
+------------------------------------------------------------------------
+r3698 | coekie | 2005-01-03 19:22:53 +0000 (Mon, 03 Jan 2005) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/irc-nicklist.c
+   M /irssi/trunk/src/irc/core/irc-servers.c
+
+improve queuing commands, patch by Timothy Hatcher (Bug 168)
+(patch changed so it doesn't wait one second after the 001 event)
+------------------------------------------------------------------------
+r3697 | coekie | 2005-01-03 18:57:08 +0000 (Mon, 03 Jan 2005) | 1 line
+Changed paths:
+   M /irssi/trunk/src/irc/core/irc-servers.c
+
+Fix multiple entries for local IP in /etc/hosts prevents connecting, patch by eridius (Bug 167)
+------------------------------------------------------------------------
+r3696 | coekie | 2005-01-03 18:54:39 +0000 (Mon, 03 Jan 2005) | 3 lines
+Changed paths:
+   M /irssi/trunk/docs/signals.txt
+   M /irssi/trunk/src/irc/core/mode-lists.c
+   M /irssi/trunk/src/irc/core/mode-lists.h
+   M /irssi/trunk/src/irc/core/modes.c
+
+"ban remove" signal should pass who removed it, patch by Timothy Hatcher (Bug 166)
+added it to docs/signals.txt too
+
+------------------------------------------------------------------------
+r3695 | coekie | 2005-01-03 18:09:45 +0000 (Mon, 03 Jan 2005) | 1 line
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-core-commands.c
+
+Fix recursive ^ prefixed commands blocking all output (Bug 159)
+------------------------------------------------------------------------
+r3694 | vb | 2004-12-22 18:47:38 +0000 (Wed, 22 Dec 2004) | 1 line
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-common-core.c
+
+Don't crash with an empty nick argument from the command line.
+------------------------------------------------------------------------
+r3693 | vb | 2004-12-20 15:06:29 +0000 (Mon, 20 Dec 2004) | 1 line
+Changed paths:
+   M /irssi/trunk/src/core/recode.c
+
+Fixed target handling in recode_out
+------------------------------------------------------------------------
+r3692 | vb | 2004-12-20 13:59:15 +0000 (Mon, 20 Dec 2004) | 2 lines
+Changed paths:
+   M /irssi/trunk/docs/help/in/recode.in
+   M /irssi/trunk/src/core/chat-commands.c
+   M /irssi/trunk/src/core/recode.c
+   M /irssi/trunk/src/core/recode.h
+   M /irssi/trunk/src/fe-common/core/fe-messages.c
+   M /irssi/trunk/src/fe-common/core/fe-recode.c
+   M /irssi/trunk/src/fe-common/irc/fe-events-numeric.c
+   M /irssi/trunk/src/fe-common/irc/fe-events.c
+   M /irssi/trunk/src/fe-common/irc/fe-irc-commands.c
+   M /irssi/trunk/src/fe-common/irc/fe-whois.c
+   M /irssi/trunk/src/irc/core/channel-events.c
+   M /irssi/trunk/src/irc/core/irc-commands.c
+   M /irssi/trunk/src/irc/proxy/dump.c
+
+Added <tag>/<target> support for recode.
+
+------------------------------------------------------------------------
+r3691 | vb | 2004-12-07 17:48:21 +0000 (Tue, 07 Dec 2004) | 1 line
+Changed paths:
+   M /irssi/trunk/src/irc/proxy/dump.c
+
+Fixed a memleak, when using recode_out you have too free the memory it allocates for you.
+------------------------------------------------------------------------
+r3690 | coekie | 2004-12-07 17:02:40 +0000 (Tue, 07 Dec 2004) | 1 line
+Changed paths:
+   M /irssi/trunk/src/irc/proxy/dump.c
+
+If available, send who set topic and when to irssi-proxy clients
+------------------------------------------------------------------------
+r3689 | Geert | 2004-12-05 23:48:36 +0000 (Sun, 05 Dec 2004) | 2 lines
+Changed paths:
+   M /irssi/trunk/docs/help/in/disconnect.in
+
+/SERVER LIST doesn't output the current ones, /SERVER does
+
+------------------------------------------------------------------------
+r3688 | vb | 2004-11-30 07:59:10 +0000 (Tue, 30 Nov 2004) | 1 line
+Changed paths:
+   M /irssi/trunk/configure.in
+
+Forgot the comma for printf in the previous patch
+------------------------------------------------------------------------
+r3687 | vb | 2004-11-29 16:19:43 +0000 (Mon, 29 Nov 2004) | 1 line
+Changed paths:
+   M /irssi/trunk/configure.in
+
+Fixed bug in configure.in, if release timestamp is before 10:00 and contains 8's or 9's it causes problems because it's not an octal number, patch by Peder Stray
+------------------------------------------------------------------------
+r3686 | vb | 2004-11-29 15:59:21 +0000 (Mon, 29 Nov 2004) | 1 line
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/fe-whois.c
+
+Fixed printing of the recoded realname in whowas
+------------------------------------------------------------------------
+r3685 | vb | 2004-11-28 08:23:21 +0000 (Sun, 28 Nov 2004) | 1 line
+Changed paths:
+   M /irssi/trunk/docs/help/in/completion.in
+
+Added a note about quotes for /COMPLETION -delete when -auto is specified for the completion you try to remove
+------------------------------------------------------------------------
+r3684 | vb | 2004-11-23 17:06:06 +0000 (Tue, 23 Nov 2004) | 1 line
+Changed paths:
+   M /irssi/trunk/src/irc/core/irc-servers.c
+
+Reverting bugfix for 'usermode activates after autosendcmd' because it breaks usermode for reconnections
+------------------------------------------------------------------------
+r3683 | coekie | 2004-11-22 18:25:03 +0000 (Mon, 22 Nov 2004) | 1 line
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/window-commands.c
+
+Fix typo in help for window close
+------------------------------------------------------------------------
+r3681 | vb | 2004-11-19 17:25:18 +0000 (Fri, 19 Nov 2004) | 1 line
+Changed paths:
+   M /irssi/trunk/src/irc/core/irc-servers.c
+
+Fixed bug where usermode was not sent correctly
+------------------------------------------------------------------------
+r3680 | vb | 2004-11-04 15:53:22 +0000 (Thu, 04 Nov 2004) | 1 line
+Changed paths:
+   M /irssi/trunk/autogen.sh
+   M /irssi/trunk/configure.in
+
+Changed autogen.sh and configure.in, so compiling works with svn, darix will make the svn path configureable
+------------------------------------------------------------------------
+r3679 | vb | 2004-11-04 15:08:57 +0000 (Thu, 04 Nov 2004) | 1 line
+Changed paths:
+   M /irssi/trunk/src/core/misc.c
+
+Fixed bug with time settings where hours actually returned 60*hours
+------------------------------------------------------------------------
+r3324 | senneth | 2004-10-18 14:40:33 +0000 (Mon, 18 Oct 2004) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/session.c
+
+/UPGRADE saves now server->version
+
+------------------------------------------------------------------------
+r3323 | coekie | 2004-10-18 14:19:07 +0000 (Mon, 18 Oct 2004) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/window-commands.c
+
+Make cmd_window_item_goto use cmd_get_params, so "/WINDOW ITEM GOTO item<space>" (for example) works
+
+------------------------------------------------------------------------
+r3322 | coekie | 2004-10-17 19:23:10 +0000 (Sun, 17 Oct 2004) | 2 lines
+Changed paths:
+   M /irssi/trunk/docs/help/in/server.in
+
+Fix /help server: -noauto is the default
+
+------------------------------------------------------------------------
+r3321 | senneth | 2004-10-16 02:10:47 +0000 (Sat, 16 Oct 2004) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/fe-events-numeric.c
+   M /irssi/trunk/src/fe-common/irc/fe-whois.c
+
+Added recode for the away-messages
+
+------------------------------------------------------------------------
+r3320 | senneth | 2004-10-16 00:08:21 +0000 (Sat, 16 Oct 2004) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-channels.c
+
+Fixed /join -invite -window bug if there is no invite
+
+------------------------------------------------------------------------
+r3319 | senneth | 2004-10-14 16:41:02 +0000 (Thu, 14 Oct 2004) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/proxy/listen.c
+
+Fixed bug 120 where proxy doesn't set the server_rec->away_reason
+
+------------------------------------------------------------------------
+r3318 | coekie | 2004-10-12 17:06:11 +0000 (Tue, 12 Oct 2004) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/irc-servers.c
+
+Fix crash with non-irc servers
+
+------------------------------------------------------------------------
+r3317 | senneth | 2004-10-10 23:04:04 +0000 (Sun, 10 Oct 2004) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/fe-whois.c
+
+Added recode to whois_channels event
+
+------------------------------------------------------------------------
+r3316 | coekie | 2004-10-10 21:23:38 +0000 (Sun, 10 Oct 2004) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/modes.c
+
+Also remember other (not k or l) modes with arguments
+
+------------------------------------------------------------------------
+r3315 | coekie | 2004-10-10 21:09:02 +0000 (Sun, 10 Oct 2004) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/modes.c
+
+Remember key not only with channel->key, but also in channel->mode (in the statusbar) on key-hiding-servers, like before isupport
+
+------------------------------------------------------------------------
+r3314 | senneth | 2004-10-10 18:10:30 +0000 (Sun, 10 Oct 2004) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/log.c
+
+Fixed bug with logging where item names starting with the same string were not logged properly.
+
+------------------------------------------------------------------------
+r3313 | coekie | 2004-10-08 11:58:06 +0000 (Fri, 08 Oct 2004) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/irc-servers.c
+
+add d,q,f and J to CHANMODES default, to work a bit better with dancer and possibly others
+(Dear irc server coder, please send isupport with CHANMODES, thank you)
+
+------------------------------------------------------------------------
+r3312 | coekie | 2004-10-06 20:48:25 +0000 (Wed, 06 Oct 2004) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/perl/common/Core.xs
+
+And the same for signal_continue
+
+------------------------------------------------------------------------
+r3311 | coekie | 2004-10-06 20:11:26 +0000 (Wed, 06 Oct 2004) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/perl/common/Core.xs
+
+Recognise a param of signal_emit from perl if it's an int
+
+------------------------------------------------------------------------
+r3310 | senneth | 2004-10-06 16:48:59 +0000 (Wed, 06 Oct 2004) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-messages.c
+
+Fixed possible printing bug with quit messages when the message is printed in the statuswindow
+
+------------------------------------------------------------------------
+r3309 | coekie | 2004-10-06 16:25:34 +0000 (Wed, 06 Oct 2004) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-messages.c
+   M /irssi/trunk/src/fe-common/core/hilight-text.c
+   M /irssi/trunk/src/fe-common/core/hilight-text.h
+
+Fix HILIGHT -actcolor -mask (Bug 131)
+
+------------------------------------------------------------------------
+r3308 | coekie | 2004-10-05 12:36:57 +0000 (Tue, 05 Oct 2004) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/proxy/listen.c
+
+Fix own nick changes in irssi-proxy
+
+------------------------------------------------------------------------
+r3307 | senneth | 2004-09-23 14:12:08 +0000 (Thu, 23 Sep 2004) | 2 lines
+Changed paths:
+   M /irssi/trunk/docs/perl.txt
+
+Added timeout_add_once function to docs
+
+------------------------------------------------------------------------
+r3306 | senneth | 2004-09-20 12:45:49 +0000 (Mon, 20 Sep 2004) | 2 lines
+Changed paths:
+   M /irssi/trunk/docs/help/in/recode.in
+   M /irssi/trunk/src/core/recode.c
+   M /irssi/trunk/src/fe-common/core/fe-common-core.c
+   M /irssi/trunk/src/fe-common/core/fe-recode.c
+
+Changed the order of recode_out_default_charset, it doesn't override /recode add anymore. The string returned by nl_langinfo(CODESET) may be empty, use ISO8859-1 in this case
+
+------------------------------------------------------------------------
+r3305 | geert | 2004-09-18 20:56:33 +0000 (Sat, 18 Sep 2004) | 2 lines
+Changed paths:
+   M /irssi/trunk/docs/help/in/knock.in
+   M /irssi/trunk/src/irc/core/irc-commands.c
+
+Fixed /KNOCK support.
+
+------------------------------------------------------------------------
+r3304 | senneth | 2004-09-18 03:42:59 +0000 (Sat, 18 Sep 2004) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/recode.c
+
+Forgot g_free(translit_to); in recode_in
+
+------------------------------------------------------------------------
+r3303 | senneth | 2004-09-17 15:55:34 +0000 (Fri, 17 Sep 2004) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/fe-whois.c
+
+Added event 317, 319, 313, 330, 377, 378, 379, 327, 326 to src/fe-common/irc/fe-whois.c, fixes the printing of /whois -yes * (Bug 123)
+
+------------------------------------------------------------------------
+r3302 | senneth | 2004-09-16 11:46:33 +0000 (Thu, 16 Sep 2004) | 2 lines
+Changed paths:
+   M /irssi/trunk/docs/help/in/recode.in
+
+Updated help for recode
+
+------------------------------------------------------------------------
+r3301 | senneth | 2004-09-16 09:00:42 +0000 (Thu, 16 Sep 2004) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/fe-whois.c
+
+Fixed /WHOWAS bug, where "event 312" was not printed right, Recent WHOIS changes broke it.
+
+------------------------------------------------------------------------
+r3300 | senneth | 2004-09-16 08:31:59 +0000 (Thu, 16 Sep 2004) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/fe-events-numeric.c
+   M /irssi/trunk/src/fe-common/irc/fe-whois.c
+
+Added recoding of realname to who and whois replies
+
+------------------------------------------------------------------------
+r3299 | geert | 2004-09-15 21:27:22 +0000 (Wed, 15 Sep 2004) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/irc-servers.c
+
+Bugfix: http://bugs.irssi.org/?do=details&id=121
+
+------------------------------------------------------------------------
+r3298 | geert | 2004-09-15 19:29:55 +0000 (Wed, 15 Sep 2004) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/fe-whois.c
+
+Bugfix: http://bugs.irssi.org/?do=details&id=99
+
+------------------------------------------------------------------------
+r3297 | coekie | 2004-09-15 13:06:16 +0000 (Wed, 15 Sep 2004) | 2 lines
+Changed paths:
+   M /irssi/trunk/docs/perl.txt
+
+forgot argument 'value' for settings_set_*
+
+------------------------------------------------------------------------
+r3296 | coekie | 2004-09-15 12:49:36 +0000 (Wed, 15 Sep 2004) | 2 lines
+Changed paths:
+   M /irssi/trunk/docs/perl.txt
+
+Updated settings_* functions docs
+
+------------------------------------------------------------------------
+r3295 | senneth | 2004-09-15 12:11:43 +0000 (Wed, 15 Sep 2004) | 2 lines
+Changed paths:
+   M /irssi/trunk/TODO
+   M /irssi/trunk/configure.in
+   M /irssi/trunk/docs/help/in/network.in
+   M /irssi/trunk/docs/help/in/recode.in
+   M /irssi/trunk/docs/special_vars.txt
+   M /irssi/trunk/src/core/commands.h
+   M /irssi/trunk/src/core/recode.c
+   M /irssi/trunk/src/core/recode.h
+   M /irssi/trunk/src/core/settings.c
+   M /irssi/trunk/src/fe-common/core/Makefile.am
+   M /irssi/trunk/src/fe-common/core/fe-common-core.c
+   M /irssi/trunk/src/fe-common/core/fe-core-commands.c
+   M /irssi/trunk/src/fe-common/core/fe-messages.c
+   M /irssi/trunk/src/fe-common/core/fe-recode.c
+   M /irssi/trunk/src/fe-common/core/formats.c
+   M /irssi/trunk/src/fe-common/core/module-formats.c
+   M /irssi/trunk/src/fe-common/core/module-formats.h
+   M /irssi/trunk/src/fe-common/core/module.h
+   M /irssi/trunk/src/fe-common/core/printtext.c
+   A /irssi/trunk/src/fe-common/core/utf8.c
+   A /irssi/trunk/src/fe-common/core/utf8.h
+   M /irssi/trunk/src/fe-common/irc/fe-events-numeric.c
+   M /irssi/trunk/src/fe-common/irc/fe-events.c
+   M /irssi/trunk/src/fe-text/Makefile.am
+   M /irssi/trunk/src/fe-text/statusbar.c
+   M /irssi/trunk/src/fe-text/term.c
+
+Fixed memleak in recode.c, fixed typo in special_vars.txt, fixed bug 105, fixed bug 106
+
+------------------------------------------------------------------------
+r3294 | coekie | 2004-09-13 22:09:54 +0000 (Mon, 13 Sep 2004) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/fe-irc-messages.c
+
+Fix messages to @#channel showed *your* nickmode, not the one of the sender (part of Bug 80)
+
+------------------------------------------------------------------------
+r3293 | coekie | 2004-09-13 19:02:02 +0000 (Mon, 13 Sep 2004) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/hilight-text.c
+
+Fix readded (changed) hilights being in config twice, resulted in duplicate hilights or removed hilights coming back (Bug 39)
+
+------------------------------------------------------------------------
+r3292 | coekie | 2004-09-13 16:54:28 +0000 (Mon, 13 Sep 2004) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-channels.c
+
+Make /JOIN -tag #channel and /JOIN #channel<space> switch to that channel (Bugs 13 and 93)
+
+------------------------------------------------------------------------
+r3291 | coekie | 2004-09-12 22:45:36 +0000 (Sun, 12 Sep 2004) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/irc-commands.c
+
+Fix /WHOIS -yes (Bug 67)
+
+------------------------------------------------------------------------
+r3290 | cras | 2004-09-12 13:12:34 +0000 (Sun, 12 Sep 2004) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/fe-whois.c
+   M /irssi/trunk/src/irc/core/irc-commands.c
+   M /irssi/trunk/src/irc/core/irc-nicklist.c
+
+Recent WHOIS changes broke nick's gone/oper flags. Patch by Valentin Batz
+
+------------------------------------------------------------------------
+r3289 | cras | 2004-09-01 17:19:23 +0000 (Wed, 01 Sep 2004) | 2 lines
+Changed paths:
+   M /irssi/trunk/docs/signals.txt
+
+Added "whois default event"
+
+------------------------------------------------------------------------
+r3288 | cras | 2004-08-31 22:32:58 +0000 (Tue, 31 Aug 2004) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/proxy/dump.c
+
+send max 15 005 parameters at once. Patch by Valentin Batz
+
+------------------------------------------------------------------------
+r3287 | cras | 2004-08-24 06:31:08 +0000 (Tue, 24 Aug 2004) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/irc.c
+
+Allow '@' characters in nick.
+
+------------------------------------------------------------------------
+r3286 | geert | 2004-08-21 14:31:34 +0000 (Sat, 21 Aug 2004) | 2 lines
+Changed paths:
+   A /irssi/trunk/docs/help/in/flushbuffer.in
+
+Changed the built-in documentation to fit current CVS.
+
+------------------------------------------------------------------------
+r3285 | cras | 2004-08-21 07:05:16 +0000 (Sat, 21 Aug 2004) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/core/recode.c
+
+Bug #104  recode treats multibyte jp characters as utf8. Patch by Valentin
+Batz
+
+------------------------------------------------------------------------
+r3284 | cras | 2004-08-20 00:27:05 +0000 (Fri, 20 Aug 2004) | 2 lines
+Changed paths:
+   A /irssi/trunk/docs/help/in/recode.in
+   A /irssi/trunk/src/core/recode.c
+   A /irssi/trunk/src/core/recode.h
+   A /irssi/trunk/src/fe-common/core/fe-recode.c
+   A /irssi/trunk/src/fe-common/core/fe-recode.h
+
+forgot to add
+
+------------------------------------------------------------------------
+r3283 | cras | 2004-08-20 00:03:40 +0000 (Fri, 20 Aug 2004) | 2 lines
+Changed paths:
+   M /irssi/trunk/acconfig.h
+   M /irssi/trunk/configure.in
+   M /irssi/trunk/src/core/Makefile.am
+   M /irssi/trunk/src/core/chat-commands.c
+   M /irssi/trunk/src/core/core.c
+   M /irssi/trunk/src/fe-common/core/Makefile.am
+   M /irssi/trunk/src/fe-common/core/chat-completion.c
+   M /irssi/trunk/src/fe-common/core/fe-common-core.c
+   M /irssi/trunk/src/fe-common/core/fe-queries.c
+   M /irssi/trunk/src/fe-common/core/formats.c
+   M /irssi/trunk/src/fe-common/core/module-formats.c
+   M /irssi/trunk/src/fe-common/core/module-formats.h
+   M /irssi/trunk/src/fe-common/core/printtext.c
+   M /irssi/trunk/src/fe-common/irc/fe-irc-commands.c
+   M /irssi/trunk/src/fe-text/statusbar.c
+   M /irssi/trunk/src/fe-text/term.c
+   M /irssi/trunk/src/irc/core/channel-events.c
+   M /irssi/trunk/src/irc/core/irc-commands.c
+   M /irssi/trunk/src/irc/proxy/dump.c
+   M /irssi/trunk/src/irc/proxy/listen.c
+
+Recode patch by decadix/senneth
+
+------------------------------------------------------------------------
+r3282 | cras | 2004-08-19 23:34:00 +0000 (Thu, 19 Aug 2004) | 5 lines
+Changed paths:
+   M /irssi/trunk/src/core/log.c
+   M /irssi/trunk/src/fe-common/core/fe-log.c
+
+Patch by jimmy: Details In 0.8.9 it is not possible to log all activity on a given
+server; you must confine the logging to a window or a set of targets. This
+patch adds a default "*" target which matches everything on the server,
+including NULL items associated with it:
+
+------------------------------------------------------------------------
+r3281 | cras | 2004-08-19 23:24:24 +0000 (Thu, 19 Aug 2004) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/proxy/dump.c
+
+005 fix. Patch by Valentin Batz
+
+------------------------------------------------------------------------
+r3280 | cras | 2004-08-19 23:22:34 +0000 (Thu, 19 Aug 2004) | 2 lines
+Changed paths:
+   D /irssi/trunk/docs/help/in/ircnet.in
+   A /irssi/trunk/docs/help/in/network.in
+
+s/ircnet/network/
+
+------------------------------------------------------------------------
+r3279 | cras | 2004-08-19 20:41:47 +0000 (Thu, 19 Aug 2004) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/dcc/dcc-send.c
+
+/DCC SEND didn't actually use /SET dcc_upload_path
+
+------------------------------------------------------------------------
+r3278 | cras | 2004-08-19 18:58:17 +0000 (Thu, 19 Aug 2004) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/chat-commands.c
+
+/SERVER, /CONNECT -network wasn't working
+
+------------------------------------------------------------------------
+r3277 | cras | 2004-08-19 18:55:15 +0000 (Thu, 19 Aug 2004) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-settings.c
+
+/SET -default fix
+
+------------------------------------------------------------------------
+r3276 | cras | 2004-08-19 18:53:23 +0000 (Thu, 19 Aug 2004) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-common-core.c
+
+After /LAYOUT SAVE changing settings created new windows.
+
+------------------------------------------------------------------------
+r3275 | cras | 2004-08-19 18:47:41 +0000 (Thu, 19 Aug 2004) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/fe-ircnet.c
+
+/network fixes
+
+------------------------------------------------------------------------
+r3274 | cras | 2004-07-14 12:12:10 +0000 (Wed, 14 Jul 2004) | 4 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/irc-nicklist.c
+
+Handle 432 numeric (errorneus nickname) as "nick in use". Fixes problems
+with ircnet 2.11 ircd when irssi tries to reconnect using UID as nick. Patch
+by Petr Baudis
+
+------------------------------------------------------------------------
+r3273 | cras | 2004-07-14 12:08:53 +0000 (Wed, 14 Jul 2004) | 2 lines
+Changed paths:
+   M /irssi/trunk/docs/startup-HOWTO.html
+
+notes about using /IRCNET with 0.8.9 and older
+
+------------------------------------------------------------------------
+r3272 | cras | 2004-07-14 12:04:47 +0000 (Wed, 14 Jul 2004) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-exec.c
+
+/EXEC crashed with 64bit systems. Patch by Soren Jacobsen
+
+------------------------------------------------------------------------
+r3271 | cras | 2004-07-11 21:56:52 +0000 (Sun, 11 Jul 2004) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/dcc/dcc-autoget.c
+
+Don't autoget files sent to channels, unless dcc_autoget_masks is set.
+
+------------------------------------------------------------------------
+r3270 | cras | 2004-07-11 21:31:49 +0000 (Sun, 11 Jul 2004) | 2 lines
+Changed paths:
+   M /irssi/trunk/AUTHORS
+   M /irssi/trunk/docs/help/in/channel.in
+   M /irssi/trunk/docs/help/in/connect.in
+   M /irssi/trunk/docs/help/in/ignore.in
+   M /irssi/trunk/docs/help/in/server.in
+   M /irssi/trunk/docs/manual.txt
+   M /irssi/trunk/docs/startup-HOWTO.html
+   M /irssi/trunk/src/core/chat-commands.c
+   M /irssi/trunk/src/fe-common/core/fe-channels.c
+   M /irssi/trunk/src/fe-common/core/fe-common-core.c
+   M /irssi/trunk/src/fe-common/core/fe-ignore.c
+   M /irssi/trunk/src/fe-common/irc/fe-irc-server.c
+   M /irssi/trunk/src/fe-common/irc/fe-ircnet.c
+   M /irssi/trunk/src/fe-common/irc/module-formats.c
+   M /irssi/trunk/src/fe-common/irc/module-formats.h
+
+s/ircnet/network/ - patch by Joost Vunderink
+
+------------------------------------------------------------------------
+r3269 | cras | 2004-07-11 21:12:58 +0000 (Sun, 11 Jul 2004) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-help.c
+
+Help files are always lowercased. Make sure /HELP COMMAND works too.
+
+------------------------------------------------------------------------
+r3268 | cras | 2004-07-11 17:01:04 +0000 (Sun, 11 Jul 2004) | 2 lines
+Changed paths:
+   M /irssi/trunk/TODO
+
+updated
+
+------------------------------------------------------------------------
+r3267 | cras | 2004-07-11 16:54:11 +0000 (Sun, 11 Jul 2004) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-exec.c
+   M /irssi/trunk/src/fe-common/core/fe-exec.h
+
+Remember server for /EXEC targets.
+
+------------------------------------------------------------------------
+r3266 | cras | 2004-07-11 16:07:40 +0000 (Sun, 11 Jul 2004) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/dcc/dcc-server.c
+   M /irssi/trunk/src/irc/dcc/dcc.c
+
+Some DCC SERVER fixes.
+
+------------------------------------------------------------------------
+r3265 | cras | 2004-07-11 15:55:27 +0000 (Sun, 11 Jul 2004) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/dcc/dcc-chat.c
+
+Don't crash if dcc chated user changes nick
+
+------------------------------------------------------------------------
+r3264 | cras | 2004-07-11 15:52:04 +0000 (Sun, 11 Jul 2004) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/dcc/dcc.c
+
+Fix.
+
+------------------------------------------------------------------------
+r3263 | cras | 2004-07-11 15:42:21 +0000 (Sun, 11 Jul 2004) | 5 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/Makefile.am
+   M /irssi/trunk/src/fe-common/irc/fe-common-irc.c
+   M /irssi/trunk/src/fe-common/irc/fe-events-numeric.c
+   A /irssi/trunk/src/fe-common/irc/fe-whois.c
+   M /irssi/trunk/src/fe-common/irc/module-formats.c
+   M /irssi/trunk/src/fe-common/irc/module-formats.h
+   M /irssi/trunk/src/irc/core/irc-commands.c
+
+Fixed handling WHOIS printing once and for all. Everything unknown between
+"beginning of whois" and "end of whois" events is now printed as
+whois_special. Removed whois_registered and whois_help, they're printed with
+whois_special as well.
+
+------------------------------------------------------------------------
+r3262 | cras | 2004-07-11 14:50:47 +0000 (Sun, 11 Jul 2004) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/modes.c
+
+Don't replace channel key when receiving channel mode numeric. It could be a
+fake key there.
+
+------------------------------------------------------------------------
+r3261 | cras | 2004-07-11 14:41:46 +0000 (Sun, 11 Jul 2004) | 3 lines
+Changed paths:
+   M /irssi/trunk/irssi.conf
+   M /irssi/trunk/src/fe-text/irssi.c
+
+Added /MANUAL-WINDOWS alias which removes all automated windowing stuff.
+Startup message also mentions it.
+
+------------------------------------------------------------------------
+r3260 | cras | 2004-07-11 14:40:31 +0000 (Sun, 11 Jul 2004) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-common-core.c
+
+/SET use_status_window and /SET use_msgs_window make the effects immediately
+
+------------------------------------------------------------------------
+r3259 | cras | 2004-07-08 23:31:31 +0000 (Thu, 08 Jul 2004) | 2 lines
+Changed paths:
+   M /irssi/trunk/docs/help/in/ignore.in
+   M /irssi/trunk/src/fe-common/core/fe-ignore.c
+
+Added -ircnet option to /IGNORE. Patch by Valentin Batz
+
+------------------------------------------------------------------------
+r3258 | cras | 2004-07-06 20:33:28 +0000 (Tue, 06 Jul 2004) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/irc-servers.c
+
+Changed default SSL port to 6697
+
+------------------------------------------------------------------------
+r3257 | cras | 2004-07-04 02:10:05 +0000 (Sun, 04 Jul 2004) | 2 lines
+Changed paths:
+   M /irssi/trunk/docs/startup-HOWTO.html
+
+Note about esc = meta
+
+------------------------------------------------------------------------
+r3256 | cras | 2004-06-29 10:07:03 +0000 (Tue, 29 Jun 2004) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/perl/perl-fe.c
+
+Make /LOAD script.pl load it.
+
+------------------------------------------------------------------------
+r3255 | cras | 2004-06-01 19:14:06 +0000 (Tue, 01 Jun 2004) | 2 lines
+Changed paths:
+   M /irssi/trunk/docs/help/in/mode.in
+
+don't use tabs
+
+------------------------------------------------------------------------
+r3254 | cras | 2004-05-20 12:16:19 +0000 (Thu, 20 May 2004) | 2 lines
+Changed paths:
+   M /irssi/trunk/docs/startup-HOWTO-rus.html
+
+to xhtml
+
+------------------------------------------------------------------------
+r3253 | cras | 2004-05-20 11:56:28 +0000 (Thu, 20 May 2004) | 2 lines
+Changed paths:
+   A /irssi/trunk/docs/startup-HOWTO-rus.html
+
+translation by NixoiD
+
+------------------------------------------------------------------------
+r3252 | cras | 2004-05-14 12:28:29 +0000 (Fri, 14 May 2004) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/dcc/dcc-resume.c
+
+Crashed with spaces in filenames, patch by Francesco Fracassi
+
+------------------------------------------------------------------------
+r3251 | cras | 2004-05-14 12:25:49 +0000 (Fri, 14 May 2004) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/term-terminfo.c
+
+Pasting multibyte chars was buggy, patch by Kuang-che Wu
+
+------------------------------------------------------------------------
+r3250 | cras | 2004-05-10 20:30:57 +0000 (Mon, 10 May 2004) | 2 lines
+Changed paths:
+   M /irssi/trunk/Makefile.am
+   M /irssi/trunk/src/Makefile.am
+   M /irssi/trunk/src/core/Makefile.am
+   M /irssi/trunk/src/fe-common/core/Makefile.am
+   M /irssi/trunk/src/fe-common/irc/Makefile.am
+   M /irssi/trunk/src/fe-common/irc/dcc/Makefile.am
+   M /irssi/trunk/src/fe-common/irc/notifylist/Makefile.am
+   M /irssi/trunk/src/irc/core/Makefile.am
+   M /irssi/trunk/src/irc/dcc/Makefile.am
+   M /irssi/trunk/src/irc/flood/Makefile.am
+   M /irssi/trunk/src/irc/notifylist/Makefile.am
+   M /irssi/trunk/src/lib-config/Makefile.am
+   M /irssi/trunk/src/lib-popt/Makefile.am
+
+noinst_HEADERS -> pkginc_HEADERS
+
+------------------------------------------------------------------------
+r3249 | cras | 2004-05-10 13:45:27 +0000 (Mon, 10 May 2004) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/irc-servers.c
+
+Never send hostname beginning with /+-[0-9]/ in USER command, that could
+be interpreted as mode change with ircnet ircd.
+
+------------------------------------------------------------------------
+r3248 | cras | 2004-03-26 10:14:32 +0000 (Fri, 26 Mar 2004) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/irc-session.c
+
+Remember isupport_sent flag correctly.
+
+------------------------------------------------------------------------
+r3247 | cras | 2004-03-24 17:35:17 +0000 (Wed, 24 Mar 2004) | 2 lines
+Changed paths:
+   M /irssi/trunk/AUTHORS
+
+update
+
+------------------------------------------------------------------------
+r3246 | cras | 2004-03-24 17:31:26 +0000 (Wed, 24 Mar 2004) | 2 lines
+Changed paths:
+   M /irssi/trunk/configure.in
+
+rc4
+
+------------------------------------------------------------------------
+r3245 | cras | 2004-03-24 17:29:28 +0000 (Wed, 24 Mar 2004) | 2 lines
+Changed paths:
+   M /irssi/trunk/AUTHORS
+
+updated
+
+------------------------------------------------------------------------
+r3244 | cras | 2004-03-24 17:28:55 +0000 (Wed, 24 Mar 2004) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/gui-entry.c
+   M /irssi/trunk/src/fe-text/gui-printtext.c
+   M /irssi/trunk/src/fe-text/gui-readline.c
+   M /irssi/trunk/src/fe-text/term-terminfo.c
+   M /irssi/trunk/src/fe-text/textbuffer-view.c
+
+Fixes for Chinese multibyte characters handling and cursor movement, patch
+by Wang WenRui
+
+------------------------------------------------------------------------
+r3243 | cras | 2004-03-24 17:15:16 +0000 (Wed, 24 Mar 2004) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-common-core.c
+
+/set -default timestamp_timeout crashed, patch by Wouter Coekaerts
+
+------------------------------------------------------------------------
+r3242 | cras | 2004-03-24 17:09:55 +0000 (Wed, 24 Mar 2004) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/modes.c
+
+mode changes got irssi stuck
+
+------------------------------------------------------------------------
+r3241 | cras | 2004-03-23 22:57:09 +0000 (Tue, 23 Mar 2004) | 2 lines
+Changed paths:
+   M /irssi/trunk/docs/help/in/dcc.in
+
+use less wide lines to avoid ugly wrapping
+
+------------------------------------------------------------------------
+r3240 | cras | 2004-03-23 22:47:25 +0000 (Tue, 23 Mar 2004) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/proxy/listen.c
+
+crashfix by Valentin Batz
+
+------------------------------------------------------------------------
+r3239 | cras | 2004-03-23 22:14:59 +0000 (Tue, 23 Mar 2004) | 2 lines
+Changed paths:
+   M /irssi/trunk/NEWS
+   M /irssi/trunk/TODO
+   M /irssi/trunk/configure.in
+
+updates
+
+------------------------------------------------------------------------
+r3238 | cras | 2004-03-23 22:07:55 +0000 (Tue, 23 Mar 2004) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/misc.c
+   M /irssi/trunk/src/core/misc.h
+
+added strocpy()
+
+------------------------------------------------------------------------
+r3237 | cras | 2004-03-23 22:07:13 +0000 (Tue, 23 Mar 2004) | 2 lines
+Changed paths:
+   M /irssi/trunk/AUTHORS
+
+added people who have submitted patches
+
+------------------------------------------------------------------------
+r3236 | cras | 2004-03-23 22:06:41 +0000 (Tue, 23 Mar 2004) | 2 lines
+Changed paths:
+   M /irssi/trunk/docs/help/in/dcc.in
+   M /irssi/trunk/src/irc/dcc/dcc-chat.c
+   M /irssi/trunk/src/irc/dcc/dcc-get.c
+   M /irssi/trunk/src/irc/dcc/dcc-get.h
+   M /irssi/trunk/src/irc/dcc/dcc-queue.c
+   M /irssi/trunk/src/irc/dcc/dcc-queue.h
+   M /irssi/trunk/src/irc/dcc/dcc-rec.h
+   M /irssi/trunk/src/irc/dcc/dcc-resume.c
+   M /irssi/trunk/src/irc/dcc/dcc-send.c
+   M /irssi/trunk/src/irc/dcc/dcc.c
+   M /irssi/trunk/src/irc/dcc/dcc.h
+
+Passive DCC support by Francesco Fracassi (francesco.f at openssl.it)
+
+------------------------------------------------------------------------
+r3235 | cras | 2004-03-23 21:17:40 +0000 (Tue, 23 Mar 2004) | 4 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/gui-readline.c
+
+Added /SET paste_detect_keycount back. Pasting isn't detected until so
+many keypresses have been detected as pasting. Also we don't anymore count
+repeated keypresses more than once.
+
+------------------------------------------------------------------------
+r3234 | cras | 2004-03-23 20:52:33 +0000 (Tue, 23 Mar 2004) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/gui-readline.c
+
+fixed /BIND escape_char
+
+------------------------------------------------------------------------
+r3233 | cras | 2004-03-23 20:47:51 +0000 (Tue, 23 Mar 2004) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/irc-commands.c
+
+/WHOIS -<server tag> is supported now.
+
+------------------------------------------------------------------------
+r3232 | cras | 2004-03-23 19:44:06 +0000 (Tue, 23 Mar 2004) | 2 lines
+Changed paths:
+   M /irssi/trunk/docs/crash.txt
+
+changed bugs@irssi.org to http://bugs.irssi.org/
+
+------------------------------------------------------------------------
+r3231 | cras | 2004-03-23 19:20:45 +0000 (Tue, 23 Mar 2004) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-settings.c
+
+/SET without parameters didn't print all settings
+
+------------------------------------------------------------------------
+r3230 | cras | 2004-03-23 19:14:49 +0000 (Tue, 23 Mar 2004) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/modes.c
+
+fixed channel->chanop
+
+------------------------------------------------------------------------
+r3229 | cras | 2004-03-10 19:36:01 +0000 (Wed, 10 Mar 2004) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/channels-query.c
+
+If channel has more nicks than /SET channel_max_who_sync, don't ask /WHO
+list to avoid getting kicked out of server (Max SendQ exceeded).
+
+------------------------------------------------------------------------
+r3228 | cras | 2004-03-03 16:57:53 +0000 (Wed, 03 Mar 2004) | 4 lines
+Changed paths:
+   M /irssi/trunk/src/core/servers-reconnect.c
+
+reverted the username/realname keeping with /reconnect. it was broken.
+fixing it properly would need to keep track of if the username/realname
+came from /ircnet -username or /server add -username or what..
+
+------------------------------------------------------------------------
+r3227 | cras | 2004-03-03 00:26:30 +0000 (Wed, 03 Mar 2004) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/proxy/dump.c
+
+fix
+
+------------------------------------------------------------------------
+r3226 | cras | 2004-02-18 15:07:44 +0000 (Wed, 18 Feb 2004) | 2 lines
+Changed paths:
+   M /irssi/trunk/docs/perl.txt
+   M /irssi/trunk/docs/signals.txt
+   M /irssi/trunk/src/core/chat-commands.c
+
+Added "server sendmsg" signal to replace server->send_message().
+
+------------------------------------------------------------------------
+r3225 | cras | 2004-02-07 00:03:56 +0000 (Sat, 07 Feb 2004) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/irc-servers.c
+
+remove stuff from isupport always before inserting.
+
+------------------------------------------------------------------------
+r3224 | cras | 2004-01-28 14:27:24 +0000 (Wed, 28 Jan 2004) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/network.c
+
+EAI_NODATA is depricated and doesn't exist everywhere anymore
+
+------------------------------------------------------------------------
+r3223 | cras | 2004-01-27 21:39:27 +0000 (Tue, 27 Jan 2004) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/irc-servers.c
+
+fixes for isupport-draft-incompatible servers sending 005 events..
+
+------------------------------------------------------------------------
+r3222 | cras | 2004-01-25 19:42:04 +0000 (Sun, 25 Jan 2004) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/modes.c
+
+crashfix when setting mode to channel you haven't joined
+
+------------------------------------------------------------------------
+r3221 | cras | 2004-01-25 18:23:38 +0000 (Sun, 25 Jan 2004) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/irc-servers.c
+
+update
+
+------------------------------------------------------------------------
+r3220 | cras | 2004-01-25 18:23:12 +0000 (Sun, 25 Jan 2004) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/modes.c
+
+isupport fixes
+
+------------------------------------------------------------------------
+r3219 | cras | 2004-01-25 18:18:18 +0000 (Sun, 25 Jan 2004) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/fe-netjoin.c
+   M /irssi/trunk/src/irc/core/irc-nicklist.c
+   M /irssi/trunk/src/irc/core/irc-servers.c
+   M /irssi/trunk/src/irc/core/modes.c
+   M /irssi/trunk/src/irc/core/modes.h
+
+isupport updates
+
+------------------------------------------------------------------------
+r3218 | cras | 2004-01-25 17:32:50 +0000 (Sun, 25 Jan 2004) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/fe-events-numeric.c
+
+/SET whois_hide_safe_channel_id - removes the ugly IDs for !channels in
+/WHOIS (default)
+
+------------------------------------------------------------------------
+r3217 | cras | 2004-01-24 22:08:56 +0000 (Sat, 24 Jan 2004) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/gui-readline.c
+
+add space between merged lines
+
+------------------------------------------------------------------------
+r3216 | cras | 2004-01-24 22:05:51 +0000 (Sat, 24 Jan 2004) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/formats.c
+
+reversed utf8 change, it's glib2 specific and I don't yet want to drop support for 1.x
+
+------------------------------------------------------------------------
+r3215 | cras | 2004-01-24 21:59:10 +0000 (Sat, 24 Jan 2004) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/proxy/dump.c
+
+compiler warning fix
+
+------------------------------------------------------------------------
+r3214 | cras | 2004-01-22 14:06:35 +0000 (Thu, 22 Jan 2004) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/irc-session.c
+
+fix
+
+------------------------------------------------------------------------
+r3213 | cras | 2004-01-22 13:14:37 +0000 (Thu, 22 Jan 2004) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/nick-rec.h
+   M /irssi/trunk/src/irc/core/irc-session.c
+
+other fixes
+
+------------------------------------------------------------------------
+r3212 | cras | 2004-01-20 22:21:02 +0000 (Tue, 20 Jan 2004) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-settings.c
+
+Don't die with "/SET -default"
+
+------------------------------------------------------------------------
+r3211 | cras | 2004-01-20 10:57:57 +0000 (Tue, 20 Jan 2004) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/channels.c
+   M /irssi/trunk/src/core/chat-commands.c
+   M /irssi/trunk/src/core/nick-rec.h
+   M /irssi/trunk/src/core/nicklist.c
+   M /irssi/trunk/src/core/server-rec.h
+   M /irssi/trunk/src/core/session.c
+   M /irssi/trunk/src/fe-common/core/fe-channels.c
+   M /irssi/trunk/src/fe-common/core/fe-messages.c
+   M /irssi/trunk/src/fe-common/irc/fe-events-numeric.c
+   M /irssi/trunk/src/fe-common/irc/fe-netjoin.c
+   M /irssi/trunk/src/irc/core/irc-commands.c
+   M /irssi/trunk/src/irc/core/irc-expandos.c
+   M /irssi/trunk/src/irc/core/irc-nicklist.c
+   M /irssi/trunk/src/irc/core/irc-nicklist.h
+   M /irssi/trunk/src/irc/core/irc-queries.c
+   M /irssi/trunk/src/irc/core/irc-queries.h
+   M /irssi/trunk/src/irc/core/irc-servers.c
+   M /irssi/trunk/src/irc/core/irc-servers.h
+   M /irssi/trunk/src/irc/core/irc-session.c
+   M /irssi/trunk/src/irc/core/irc.h
+   M /irssi/trunk/src/irc/core/modes.c
+   M /irssi/trunk/src/irc/core/modes.h
+   M /irssi/trunk/src/irc/core/netsplit.c
+   M /irssi/trunk/src/irc/core/netsplit.h
+   M /irssi/trunk/src/irc/proxy/dump.c
+   M /irssi/trunk/src/perl/common/Server.xs
+   M /irssi/trunk/src/perl/irc/Irc.xs
+   M /irssi/trunk/src/perl/irc/Modes.xs
+   M /irssi/trunk/src/perl/irc/Server.xs
+   M /irssi/trunk/src/perl/perl-common.c
+
+isupport patch by David Leadbeater
+
+------------------------------------------------------------------------
+r3210 | cras | 2004-01-19 19:28:15 +0000 (Mon, 19 Jan 2004) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/gui-readline.c
+
+fix
+
+------------------------------------------------------------------------
+r3209 | cras | 2004-01-19 19:13:15 +0000 (Mon, 19 Jan 2004) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/formats.c
+
+UTF-8 support to format_get_length() and format_real_length(). patch by
+Jean-Yves Lefort
+
+------------------------------------------------------------------------
+r3208 | cras | 2004-01-19 19:09:56 +0000 (Mon, 19 Jan 2004) | 2 lines
+Changed paths:
+   M /irssi/trunk/configure.in
+
+glib fetching updates by Rafael Kitover
+
+------------------------------------------------------------------------
+r3207 | cras | 2004-01-19 19:00:25 +0000 (Mon, 19 Jan 2004) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/gui-readline.c
+
+fix
+
+------------------------------------------------------------------------
+r3206 | cras | 2004-01-19 18:59:17 +0000 (Mon, 19 Jan 2004) | 4 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/gui-readline.c
+
+Added /SET paste_join_multiline - it attempts to be smart and detect when
+you're copy&pasting indented lines, and merge them together to one long
+line, but splits them to max. 400 chars per line.
+
+------------------------------------------------------------------------
+r3205 | cras | 2004-01-19 17:59:42 +0000 (Mon, 19 Jan 2004) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/gui-readline.c
+
+add pasted lines to command history
+
+------------------------------------------------------------------------
+r3204 | cras | 2004-01-19 17:52:08 +0000 (Mon, 19 Jan 2004) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/server-connect-rec.h
+   M /irssi/trunk/src/core/servers-reconnect.c
+   M /irssi/trunk/src/fe-common/core/fe-server.c
+   M /irssi/trunk/src/fe-common/core/module-formats.c
+   M /irssi/trunk/src/fe-common/core/module-formats.h
+
+Say when we're reconnecting, and mention it can be aborted with /RMRECONNS
+
+------------------------------------------------------------------------
+r3203 | cras | 2004-01-19 17:40:58 +0000 (Mon, 19 Jan 2004) | 4 lines
+Changed paths:
+   M /irssi/trunk/src/core/servers-reconnect.c
+
+Don't try to keep user_name/real_name with /reconnect. They couldn't have
+been overridden with /server command anyway, so we most likely never want to
+keep it.
+
+------------------------------------------------------------------------
+r3202 | cras | 2004-01-19 17:13:40 +0000 (Mon, 19 Jan 2004) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/dcc/dcc-autoget.c
+
+/set -default dcc_autoget_max_size crashed
+
+------------------------------------------------------------------------
+r3201 | cras | 2004-01-11 07:58:08 +0000 (Sun, 11 Jan 2004) | 2 lines
+Changed paths:
+   M /irssi/trunk/docs/startup-HOWTO.html
+
+Use HTTP/1.0 for HTTP proxy example (by dgl)
+
+------------------------------------------------------------------------
+r3200 | cras | 2004-01-10 16:33:48 +0000 (Sat, 10 Jan 2004) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/chat-completion.c
+
+fix
+
+------------------------------------------------------------------------
+r3199 | cras | 2004-01-10 16:30:31 +0000 (Sat, 10 Jan 2004) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/chat-commands.c
+
+/msg , fix again by c0ffee
+
+------------------------------------------------------------------------
+r3198 | cras | 2004-01-09 05:50:23 +0000 (Fri, 09 Jan 2004) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/proxy/listen.c
+
+bugfix
+
+------------------------------------------------------------------------
+r3197 | cras | 2004-01-07 07:54:38 +0000 (Wed, 07 Jan 2004) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/core/servers.c
+
+If we can't connect to server using given IP, show the IP to user in the
+error message.
+
+------------------------------------------------------------------------
+r3196 | cras | 2004-01-07 04:26:16 +0000 (Wed, 07 Jan 2004) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/chat-commands.c
+
+/msg , crashfix by c0ffee
+
+------------------------------------------------------------------------
+r3195 | cras | 2003-12-10 23:16:38 +0000 (Wed, 10 Dec 2003) | 2 lines
+Changed paths:
+   M /irssi/trunk/NEWS
+   M /irssi/trunk/configure.in
+
+0.8.9 release
+
+------------------------------------------------------------------------
+r3194 | cras | 2003-12-10 23:04:00 +0000 (Wed, 10 Dec 2003) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/windows-layout.c
+
+Window layout restoring queries didn't check if the chat protocol was yet
+loaded and crashed. Patch by c0ffee
+
+------------------------------------------------------------------------
+r3193 | cras | 2003-12-10 22:59:45 +0000 (Wed, 10 Dec 2003) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/perl/irc/Irc.xs
+
+Added Irssi::Irc::Dcc::Server support
+
+------------------------------------------------------------------------
+r3192 | cras | 2003-12-10 22:57:51 +0000 (Wed, 10 Dec 2003) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/irc-commands.c
+
+/SET auto_whowas OFF allows now disabling automatic /whowas when /whois
+doesn't find a nick
+
+------------------------------------------------------------------------
+r3191 | cras | 2003-12-10 22:51:28 +0000 (Wed, 10 Dec 2003) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/expandos.c
+
+chanmode_expando_strip setting was reversed - patch by c0ffee
+
+------------------------------------------------------------------------
+r3190 | cras | 2003-12-10 22:47:35 +0000 (Wed, 10 Dec 2003) | 4 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/formats.c
+
+Wrong parameters given to "gui print text" signal with indent function
+processing: remote crash for architechtures which require memory
+alignmentation (non-x86)
+
+------------------------------------------------------------------------
+r3189 | cras | 2003-11-26 17:26:47 +0000 (Wed, 26 Nov 2003) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/gui-readline.c
+
+If pasted line starts with command char, treat it as command always. Paste
+detection can go on too easily with lagged connections.
+
+------------------------------------------------------------------------
+r3188 | cras | 2003-11-24 15:22:18 +0000 (Mon, 24 Nov 2003) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/fe-events.c
+
+removed //#include
+
+------------------------------------------------------------------------
+r3187 | cras | 2003-11-23 14:25:34 +0000 (Sun, 23 Nov 2003) | 2 lines
+Changed paths:
+   M /irssi/trunk/NEWS
+   M /irssi/trunk/configure.in
+   M /irssi/trunk/src/fe-common/irc/dcc/fe-dcc.c
+   M /irssi/trunk/src/fe-common/irc/notifylist/fe-notifylist.c
+   M /irssi/trunk/src/irc/core/irc-core.c
+   M /irssi/trunk/src/irc/dcc/dcc.c
+   M /irssi/trunk/src/irc/flood/flood.c
+   M /irssi/trunk/src/irc/notifylist/notifylist.c
+   M /irssi/trunk/src/irc/proxy/proxy.c
+
+0.8.8 with a few backwards compatibility fixes
+
+------------------------------------------------------------------------
+r3186 | cras | 2003-11-23 13:08:53 +0000 (Sun, 23 Nov 2003) | 2 lines
+Changed paths:
+   M /irssi/trunk/NEWS
+
+still updates for 0.8.7..
+
+------------------------------------------------------------------------
+r3184 | cras | 2003-11-23 12:42:43 +0000 (Sun, 23 Nov 2003) | 2 lines
+Changed paths:
+   M /irssi/trunk/TODO
+   M /irssi/trunk/configure.in
+
+0.8.7..?
+
+------------------------------------------------------------------------
+r3183 | cras | 2003-11-23 12:39:08 +0000 (Sun, 23 Nov 2003) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/fe-netjoin.c
+
+netjoin mode fixes
+
+------------------------------------------------------------------------
+r3182 | cras | 2003-11-23 12:17:16 +0000 (Sun, 23 Nov 2003) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/gui-readline.c
+
+Don't count linefeeds in paste detection to avoid it going on when holding
+enter key down
+
+------------------------------------------------------------------------
+r3181 | cras | 2003-11-21 20:52:13 +0000 (Fri, 21 Nov 2003) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/gui-readline.c
+
+Removed /SET paste_detect_keycount - don't really need it anymore.
+
+------------------------------------------------------------------------
+r3180 | cras | 2003-11-21 18:15:11 +0000 (Fri, 21 Nov 2003) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/gui-readline.c
+   M /irssi/trunk/src/fe-text/module-formats.c
+
+pasting fixes. changed key to ^K from ^O since ^O is working strangely in
+some systems..
+
+------------------------------------------------------------------------
+r3179 | cras | 2003-11-20 16:53:10 +0000 (Thu, 20 Nov 2003) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/expandos.c
+
+/SET chanmode_verbose -> chanmode_expando_strip
+
+------------------------------------------------------------------------
+r3178 | cras | 2003-11-17 20:43:05 +0000 (Mon, 17 Nov 2003) | 2 lines
+Changed paths:
+   M /irssi/trunk/irssi.spec.in
+
+updated by Robert Scheck
+
+------------------------------------------------------------------------
+r3177 | cras | 2003-11-17 19:35:29 +0000 (Mon, 17 Nov 2003) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/module-formats.c
+
+Fixed paste_warning format
+
+------------------------------------------------------------------------
+r3176 | cras | 2003-11-17 18:36:56 +0000 (Mon, 17 Nov 2003) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/gui-readline.c
+
+disabling paste detection works again
+
+------------------------------------------------------------------------
+r3175 | cras | 2003-11-17 18:22:07 +0000 (Mon, 17 Nov 2003) | 2 lines
+Changed paths:
+   M /irssi/trunk/NEWS
+
+updated
+
+------------------------------------------------------------------------
+r3174 | cras | 2003-11-17 18:20:35 +0000 (Mon, 17 Nov 2003) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/gui-readline.c
+
+again changed the paste_detect defaults.
+
+------------------------------------------------------------------------
+r3173 | cras | 2003-11-17 18:13:17 +0000 (Mon, 17 Nov 2003) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/mainwindows.c
+
+potential crashfix
+
+------------------------------------------------------------------------
+r3172 | cras | 2003-11-17 18:10:00 +0000 (Mon, 17 Nov 2003) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/keyboard.c
+
+fix
+
+------------------------------------------------------------------------
+r3171 | cras | 2003-11-17 14:09:15 +0000 (Mon, 17 Nov 2003) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/gui-readline.c
+   M /irssi/trunk/src/fe-text/module-formats.c
+   M /irssi/trunk/src/fe-text/module-formats.h
+
+paste texts are themeable now.
+
+------------------------------------------------------------------------
+r3170 | cras | 2003-11-17 13:23:22 +0000 (Mon, 17 Nov 2003) | 4 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/gui-readline.c
+
+When pasting to empty window, don't ask about if pasting was wanted or not.
+Also paste them as commands, not as text to active (non-existing)
+channel/query.
+
+------------------------------------------------------------------------
+r3169 | cras | 2003-11-17 12:17:57 +0000 (Mon, 17 Nov 2003) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/keyboard.c
+   M /irssi/trunk/src/fe-common/core/keyboard.h
+   M /irssi/trunk/src/fe-text/gui-readline.c
+
+paste detection fixes
+
+------------------------------------------------------------------------
+r3168 | cras | 2003-11-17 11:50:06 +0000 (Mon, 17 Nov 2003) | 2 lines
+Changed paths:
+   M /irssi/trunk/configure.in
+
+put SSL_LIBS to LIBS..
+
+------------------------------------------------------------------------
+r3167 | cras | 2003-11-17 11:42:43 +0000 (Mon, 17 Nov 2003) | 2 lines
+Changed paths:
+   M /irssi/trunk/configure.in
+
+#define HAVE_OPENSSL wasn't done.
+
+------------------------------------------------------------------------
+r3166 | cras | 2003-11-17 00:29:11 +0000 (Mon, 17 Nov 2003) | 4 lines
+Changed paths:
+   M /irssi/trunk/INSTALL
+   M /irssi/trunk/configure.in
+
+SSL detection changed to use pkg-config, fixed Redhat 9. Removed
+--with-ssl-include etc. options, you can just CPPFLAGS/LIBS just fine for
+that.
+
+------------------------------------------------------------------------
+r3165 | cras | 2003-11-17 00:18:40 +0000 (Mon, 17 Nov 2003) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/mainwindows.c
+
+crashfix when quitting
+
+------------------------------------------------------------------------
+r3164 | cras | 2003-11-17 00:02:51 +0000 (Mon, 17 Nov 2003) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/gui-readline.c
+
+more initializing..
+
+------------------------------------------------------------------------
+r3163 | cras | 2003-11-17 00:01:17 +0000 (Mon, 17 Nov 2003) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/gui-readline.c
+
+initialize prev_entry
+
+------------------------------------------------------------------------
+r3162 | cras | 2003-11-16 23:54:52 +0000 (Sun, 16 Nov 2003) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/network-openssl.c
+
+Fixed some memory leaks.
+
+------------------------------------------------------------------------
+r3161 | cras | 2003-11-16 23:33:01 +0000 (Sun, 16 Nov 2003) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/gui-readline.c
+
+paste detection growed.
+
+------------------------------------------------------------------------
+r3160 | cras | 2003-11-16 23:23:29 +0000 (Sun, 16 Nov 2003) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/window-activity.c
+
+fix, try #2
+
+------------------------------------------------------------------------
+r3159 | cras | 2003-11-16 23:21:10 +0000 (Sun, 16 Nov 2003) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/window-activity.c
+
+crashfix for some systems
+
+------------------------------------------------------------------------
+r3158 | cras | 2003-11-16 22:56:26 +0000 (Sun, 16 Nov 2003) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/gui-readline.c
+
+pasting fixes
+
+------------------------------------------------------------------------
+r3157 | cras | 2003-11-16 21:49:15 +0000 (Sun, 16 Nov 2003) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/gui-readline.c
+
+If pasting more lines than /SET paste_verify_line_count, ask before doing
+it.
+
+------------------------------------------------------------------------
+r3156 | cras | 2003-11-16 20:33:17 +0000 (Sun, 16 Nov 2003) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/gui-readline.c
+
+changed /set pster_detect_keycount 5 -> 6 to fix function keys
+
+------------------------------------------------------------------------
+r3155 | cras | 2003-11-16 19:48:09 +0000 (Sun, 16 Nov 2003) | 2 lines
+Changed paths:
+   M /irssi/trunk/NEWS
+   M /irssi/trunk/TODO
+
+getting ready for 0.8.7 ..
+
+------------------------------------------------------------------------
+r3154 | cras | 2003-11-16 19:40:04 +0000 (Sun, 16 Nov 2003) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/network-openssl.c
+
+compile fix if there's no openssl
+
+------------------------------------------------------------------------
+r3153 | cras | 2003-11-16 19:37:31 +0000 (Sun, 16 Nov 2003) | 16 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/gui-readline.c
+
+Added pasting detection. All keys except CR and LF are pasted as-is into
+prompt in pasting mode.
+
+/SET paste_detect_time controls how closely each others characters must
+occur for it to be considered pasting. Pasting mode goes on after /SET
+paste_detect_keycount characters have been received and detected as pasting.
+
+The first paste_detect_keycount characters can also contain some command
+characters. They are executed, but their action in entry line is reverted
+once pasting is detected. Of course, if any such character was followed by
+CR/LF, it was already sent to channel/query and is unreversable.
+
+What this means in practise is that even if you have TABs (assuming TAB is
+completion key) in the first few pasted characters, they get pasted as TABs
+as long as they weren't immediately followed by CR/LF.
+
+------------------------------------------------------------------------
+r3152 | cras | 2003-11-16 18:44:36 +0000 (Sun, 16 Nov 2003) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/channel-events.c
+
+Assume JOIN failed if we get any 4xx numeric back with channel name in it
+before JOIN reply.
+
+------------------------------------------------------------------------
+r3151 | cras | 2003-11-16 18:31:42 +0000 (Sun, 16 Nov 2003) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/fe-events-numeric.c
+   M /irssi/trunk/src/irc/core/channel-events.c
+
+Support 479 illegal channel name numeric
+
+------------------------------------------------------------------------
+r3150 | cras | 2003-11-16 18:19:03 +0000 (Sun, 16 Nov 2003) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/perl/Makefile.am
+
+remove Makefile with make distclean
+
+------------------------------------------------------------------------
+r3149 | cras | 2003-11-16 18:03:17 +0000 (Sun, 16 Nov 2003) | 2 lines
+Changed paths:
+   M /irssi/trunk/docs/help/in/connect.in
+   M /irssi/trunk/docs/help/in/server.in
+
+ssl changes
+
+------------------------------------------------------------------------
+r3148 | cras | 2003-11-16 18:00:23 +0000 (Sun, 16 Nov 2003) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/network-openssl.c
+
+compile fix for glib2
+
+------------------------------------------------------------------------
+r3147 | cras | 2003-11-16 17:57:44 +0000 (Sun, 16 Nov 2003) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/expandos.c
+   M /irssi/trunk/src/core/modules-load.c
+   M /irssi/trunk/src/core/modules.c
+
+Fixed some gcc aliasing warnings
+
+------------------------------------------------------------------------
+r3146 | cras | 2003-11-16 17:53:55 +0000 (Sun, 16 Nov 2003) | 4 lines
+Changed paths:
+   M /irssi/trunk/src/core/chat-commands.c
+   M /irssi/trunk/src/core/network-openssl.c
+   M /irssi/trunk/src/core/network.h
+   M /irssi/trunk/src/core/server-connect-rec.h
+   M /irssi/trunk/src/core/server-setup-rec.h
+   M /irssi/trunk/src/core/servers-reconnect.c
+   M /irssi/trunk/src/core/servers-setup.c
+   M /irssi/trunk/src/core/servers.c
+   M /irssi/trunk/src/core/session.c
+   M /irssi/trunk/src/fe-common/core/fe-server.c
+   M /irssi/trunk/src/fe-common/irc/fe-irc-server.c
+
+Support for sending SSL certificate to server and optionally verify server's
+certificate. See the -ssl_* options for /SERVER and /SERVER ADD. Patch by
+Joel Eriksson <je-irssi@bitnux.com>.
+
+------------------------------------------------------------------------
+r3145 | cras | 2003-11-16 17:29:30 +0000 (Sun, 16 Nov 2003) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/settings.c
+
+lag_min_show change wrong
+
+------------------------------------------------------------------------
+r3144 | cras | 2003-11-16 17:27:09 +0000 (Sun, 16 Nov 2003) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/settings.c
+
+Automatic backwards compatibility transitions.
+
+------------------------------------------------------------------------
+r3143 | cras | 2003-11-16 17:26:43 +0000 (Sun, 16 Nov 2003) | 5 lines
+Changed paths:
+   M /irssi/trunk/src/core/misc.c
+
+parse_time_interval: x days were actually returned as hours. weeks were
+returned as hours*7.. which also means I calculated the max. return value of
+over 1 year wrong. It's actually 24 days, but it's hopefully enough. Removed
+"weeks" unit to discourage usage of large values..
+
+------------------------------------------------------------------------
+r3142 | cras | 2003-11-16 16:49:51 +0000 (Sun, 16 Nov 2003) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/dcc/dcc-send.c
+
+Don't crash with /DCC SEND nick ""
+
+------------------------------------------------------------------------
+r3141 | cras | 2003-11-16 16:33:53 +0000 (Sun, 16 Nov 2003) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/servers.c
+
+Don't reconnect with invalid own hostname.
+
+------------------------------------------------------------------------
+r3140 | cras | 2003-11-16 16:33:25 +0000 (Sun, 16 Nov 2003) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/dcc/dcc.c
+
+Allow /SET dcc_own_ip to be non-local address.
+
+------------------------------------------------------------------------
+r3139 | cras | 2003-11-16 16:22:07 +0000 (Sun, 16 Nov 2003) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/core/misc.c
+
+Time parsing: allow omitting time unit without warning for backwards
+compatibility.
+
+------------------------------------------------------------------------
+r3138 | cras | 2003-11-16 16:14:25 +0000 (Sun, 16 Nov 2003) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/settings.c
+   M /irssi/trunk/src/core/settings.h
+
+cleanup
+
+------------------------------------------------------------------------
+r3137 | cras | 2003-10-31 15:05:52 +0000 (Fri, 31 Oct 2003) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/expandos.c
+
+Added /set chanmode_verbose. patch by c0ffee.
+
+------------------------------------------------------------------------
+r3136 | cras | 2003-10-31 07:32:59 +0000 (Fri, 31 Oct 2003) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-core-commands.c
+
+Invalid time error message was wrong. Patch by c0ffee.
+
+------------------------------------------------------------------------
+r3135 | cras | 2003-10-26 05:31:19 +0000 (Sun, 26 Oct 2003) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/gui-entry.c
+   M /irssi/trunk/src/fe-text/gui-readline.c
+   M /irssi/trunk/src/fe-text/textbuffer-view.c
+
+BIG5 stuff is used only if term_type is big5
+
+------------------------------------------------------------------------
+r3134 | cras | 2003-10-19 19:09:51 +0000 (Sun, 19 Oct 2003) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/gui-entry.c
+   M /irssi/trunk/src/fe-text/gui-entry.h
+   M /irssi/trunk/src/fe-text/gui-readline.c
+   M /irssi/trunk/src/fe-text/term-terminfo.c
+   M /irssi/trunk/src/fe-text/textbuffer-view.c
+   M /irssi/trunk/src/fe-text/utf8.h
+
+BIG5 fixes by vanilla@FreeBSD.org(?)
+
+------------------------------------------------------------------------
+r3133 | cras | 2003-10-19 18:56:58 +0000 (Sun, 19 Oct 2003) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/proxy/listen.c
+   M /irssi/trunk/src/irc/proxy/module.h
+
+CTCP forwarding fixes by Valentin Batz
+
+------------------------------------------------------------------------
+r3132 | cras | 2003-10-11 01:59:31 +0000 (Sat, 11 Oct 2003) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/net-nonblock.c
+
+unsigned long -> gsize
+
+------------------------------------------------------------------------
+r3131 | cras | 2003-10-11 01:53:51 +0000 (Sat, 11 Oct 2003) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/network.c
+
+unsigned long -> gsize
+
+------------------------------------------------------------------------
+r3130 | cras | 2003-10-11 00:19:34 +0000 (Sat, 11 Oct 2003) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/commands.c
+   M /irssi/trunk/src/fe-common/core/completion.c
+   M /irssi/trunk/src/fe-common/core/fe-messages.c
+   M /irssi/trunk/src/irc/core/irc.c
+
+Changed some checks i_isspace() -> ' ' so that TAB isn't included in checks.
+
+------------------------------------------------------------------------
+r3129 | cras | 2003-10-06 23:53:51 +0000 (Mon, 06 Oct 2003) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/net-nonblock.c
+   M /irssi/trunk/src/core/network.c
+
+64bit fixes by Stefan Fent
+
+------------------------------------------------------------------------
+r3128 | cras | 2003-10-01 19:13:38 +0000 (Wed, 01 Oct 2003) | 2 lines
+Changed paths:
+   A /irssi/trunk/src/fe-common/irc/dcc/fe-dcc-server.c
+
+missed
+
+------------------------------------------------------------------------
+r3127 | cras | 2003-10-01 16:02:43 +0000 (Wed, 01 Oct 2003) | 2 lines
+Changed paths:
+   M /irssi/trunk/docs/help/in/dcc.in
+   M /irssi/trunk/src/fe-common/irc/dcc/Makefile.am
+   M /irssi/trunk/src/fe-common/irc/dcc/fe-dcc.c
+   M /irssi/trunk/src/fe-common/irc/dcc/module-formats.c
+   M /irssi/trunk/src/fe-common/irc/dcc/module-formats.h
+   M /irssi/trunk/src/irc/dcc/Makefile.am
+   M /irssi/trunk/src/irc/dcc/dcc-chat.c
+   M /irssi/trunk/src/irc/dcc/dcc-get.c
+   M /irssi/trunk/src/irc/dcc/dcc-get.h
+   A /irssi/trunk/src/irc/dcc/dcc-server.c
+   A /irssi/trunk/src/irc/dcc/dcc-server.h
+   M /irssi/trunk/src/irc/dcc/dcc.c
+
+Added DCC SERVER support by Mark Trumbull
+
+------------------------------------------------------------------------
+r3126 | cras | 2003-08-29 23:41:08 +0000 (Fri, 29 Aug 2003) | 2 lines
+Changed paths:
+   M /irssi/trunk/docs/startup-HOWTO.html
+
+A few openprojects -> freenode changes
+
+------------------------------------------------------------------------
+r3125 | cras | 2003-07-09 23:36:05 +0000 (Wed, 09 Jul 2003) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/fe-netjoin.c
+   M /irssi/trunk/src/fe-common/irc/fe-netsplit.c
+
+Show voices in netsplits. Fix voices breaking netjoins. Patch by Maarten van
+der Zwaart.
+
+------------------------------------------------------------------------
+r3124 | cras | 2003-07-09 23:34:41 +0000 (Wed, 09 Jul 2003) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/network.c
+   M /irssi/trunk/src/core/network.h
+   M /irssi/trunk/src/irc/dcc/dcc.c
+
+Network fixes. DCC fixes for IPv6 + BSDs.
+
+------------------------------------------------------------------------
+r3123 | cras | 2003-07-09 21:46:08 +0000 (Wed, 09 Jul 2003) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/mainwindows.c
+
+Crashfix when sometimes closing a split window.
+
+------------------------------------------------------------------------
+r3122 | cras | 2003-07-06 14:10:42 +0000 (Sun, 06 Jul 2003) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/perl/irc/Irc.xs
+
+NOTIFYLIST_REC usage crashfix
+
+------------------------------------------------------------------------
+r3121 | cras | 2003-07-01 17:06:06 +0000 (Tue, 01 Jul 2003) | 2 lines
+Changed paths:
+   A /irssi/trunk/docs/help/in/knock.in
+
+Added, by six
+
+------------------------------------------------------------------------
+r3120 | cras | 2003-07-01 17:02:25 +0000 (Tue, 01 Jul 2003) | 2 lines
+Changed paths:
+   M /irssi/trunk/docs/faq.html
+
+updated
+
+------------------------------------------------------------------------
+r3119 | cras | 2003-07-01 16:58:30 +0000 (Tue, 01 Jul 2003) | 2 lines
+Changed paths:
+   M /irssi/trunk/docs/signals.txt
+
+Removed "signal" and "last signal", they don't exist anymore.
+
+------------------------------------------------------------------------
+r3118 | cras | 2003-06-30 19:25:40 +0000 (Mon, 30 Jun 2003) | 2 lines
+Changed paths:
+   M /irssi/trunk/TODO
+
+updated
+
+------------------------------------------------------------------------
+r3117 | cras | 2003-06-27 10:53:32 +0000 (Fri, 27 Jun 2003) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/perl/perl-core.c
+
+don't unload libraries when deinitializing. leaks some more memory, but fixes some crashes.
+
+------------------------------------------------------------------------
+r3116 | cras | 2003-06-25 19:30:19 +0000 (Wed, 25 Jun 2003) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/irc-servers.c
+
+Disable extra ircnet flood protection if cmd_queue_speed <= 10
+
+------------------------------------------------------------------------
+r3115 | cras | 2003-06-04 23:24:12 +0000 (Wed, 04 Jun 2003) | 2 lines
+Changed paths:
+   A /irssi/trunk/docs/help/in/flushbuffers.in
+   M /irssi/trunk/docs/help/in/server.in
+
+updates, by six
+
+------------------------------------------------------------------------
+r3114 | cras | 2003-06-03 21:40:02 +0000 (Tue, 03 Jun 2003) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/netsplit.c
+
+Don't require hostmasks to be different with netsplits. Fixes dalnet
+netsplit detection. Patch by coekie
+
+------------------------------------------------------------------------
+r3113 | cras | 2003-05-25 09:49:32 +0000 (Sun, 25 May 2003) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/irc-servers.c
+
+Connecting to IPv6 servers in short form as 1:2:: didn't work.
+
+------------------------------------------------------------------------
+r3112 | cras | 2003-05-13 17:57:48 +0000 (Tue, 13 May 2003) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/settings.c
+
+Fix crash with unloading module, by c0ffee
+
+------------------------------------------------------------------------
+r3111 | cras | 2003-04-07 19:59:51 +0000 (Mon, 07 Apr 2003) | 2 lines
+Changed paths:
+   M /irssi/trunk/configure.in
+
+head -1 -> head -n 1 which is more standard
+
+------------------------------------------------------------------------
+r3110 | cras | 2003-03-04 22:51:50 +0000 (Tue, 04 Mar 2003) | 2 lines
+Changed paths:
+   M /irssi/trunk/docs/startup-HOWTO.html
+
+typofix
+
+------------------------------------------------------------------------
+r3109 | cras | 2003-02-08 23:50:14 +0000 (Sat, 08 Feb 2003) | 2 lines
+Changed paths:
+   M /irssi/trunk/scripts/scriptassist.pl
+
+Updated from scripts.irssi.org
+
+------------------------------------------------------------------------
+r3108 | cras | 2003-01-31 13:49:02 +0000 (Fri, 31 Jan 2003) | 2 lines
+Changed paths:
+   M /irssi/trunk/docs/help/in/mode.in
+
++r description was twice .. also reindented a bit
+
+------------------------------------------------------------------------
+r3107 | cras | 2003-01-31 04:03:06 +0000 (Fri, 31 Jan 2003) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/misc.c
+   M /irssi/trunk/src/core/misc.h
+
+Removed execute(), not used.
+
+------------------------------------------------------------------------
+r3106 | cras | 2003-01-30 16:30:02 +0000 (Thu, 30 Jan 2003) | 2 lines
+Changed paths:
+   M /irssi/trunk/docs/help/in/mode.in
+
++r mode update by Borys
+
+------------------------------------------------------------------------
+r3105 | cras | 2003-01-30 16:28:31 +0000 (Thu, 30 Jan 2003) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-windows.c
+
+Fix for !channel matching, patch by Borys
+
+------------------------------------------------------------------------
+r3104 | cras | 2003-01-26 00:33:29 +0000 (Sun, 26 Jan 2003) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/fe-netjoin.c
+
+Netjoin should now work properly with +channels and !channels.
+
+------------------------------------------------------------------------
+r3103 | cras | 2003-01-25 21:19:41 +0000 (Sat, 25 Jan 2003) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/irssi.c
+
+didn't compile without gc
+
+------------------------------------------------------------------------
+r3102 | cras | 2003-01-25 03:31:19 +0000 (Sat, 25 Jan 2003) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/settings.c
+
+GC fix
+
+------------------------------------------------------------------------
+r3101 | cras | 2003-01-25 03:19:40 +0000 (Sat, 25 Jan 2003) | 4 lines
+Changed paths:
+   M /irssi/trunk/acconfig.h
+   M /irssi/trunk/configure.in
+   M /irssi/trunk/src/fe-text/irssi.c
+   M /irssi/trunk/src/perl/perl-common.c
+   M /irssi/trunk/src/perl/ui/Formats.xs
+
+Lets see if GC happens to work now without explicit free() calls. Perl
+objects now set the C pointer to NULL once they're done with it, so this
+might just work without leaking..
+
+------------------------------------------------------------------------
+r3100 | cras | 2003-01-22 23:47:38 +0000 (Wed, 22 Jan 2003) | 2 lines
+Changed paths:
+   M /irssi/trunk/scripts/scriptassist.pl
+
+Updated from scripts.irssi.org
+
+------------------------------------------------------------------------
+r3099 | cras | 2003-01-21 08:15:33 +0000 (Tue, 21 Jan 2003) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/channel-events.c
+
+If JOIN is sent to channel you've already joined, assume a missing PART and
+resync the channel (instead of just ignoring as before). Patch by dg.
+
+------------------------------------------------------------------------
+r3098 | cras | 2003-01-21 07:01:44 +0000 (Tue, 21 Jan 2003) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/irc.h
+
+Added '!' into nick flags, used by some ircd
+
+------------------------------------------------------------------------
+r3097 | cras | 2003-01-21 06:56:48 +0000 (Tue, 21 Jan 2003) | 2 lines
+Changed paths:
+   M /irssi/trunk/docs/faq.html
+
+Updated /DETACH
+
+------------------------------------------------------------------------
+r3096 | cras | 2003-01-14 20:12:38 +0000 (Tue, 14 Jan 2003) | 2 lines
+Changed paths:
+   M /irssi/trunk/configure.in
+
+Added --with-glib1
+
+------------------------------------------------------------------------
+r3095 | cras | 2003-01-11 00:24:30 +0000 (Sat, 11 Jan 2003) | 2 lines
+Changed paths:
+   M /irssi/trunk/acconfig.h
+   M /irssi/trunk/configure.in
+   M /irssi/trunk/src/fe-text/irssi.c
+   M /irssi/trunk/src/perl/perl-common.c
+
+Check for gc.h too
+
+------------------------------------------------------------------------
+r3094 | cras | 2003-01-08 20:54:36 +0000 (Wed, 08 Jan 2003) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/core/misc.c
+   M /irssi/trunk/src/core/settings.c
+
+parse_time_interval() fallbacked to milliseconds, not seconds. some code
+cleanups. patch by Peder
+
+------------------------------------------------------------------------
+r3093 | cras | 2003-01-07 17:18:00 +0000 (Tue, 07 Jan 2003) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/perl/ui/Themes.xs
+
+didn't compile with older perls.
+
+------------------------------------------------------------------------
+r3092 | cras | 2003-01-06 19:20:24 +0000 (Mon, 06 Jan 2003) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/hilight-text.c
+
+/HILIGHT listing was missing space sometimes
+
+------------------------------------------------------------------------
+r3091 | cras | 2003-01-06 19:14:17 +0000 (Mon, 06 Jan 2003) | 2 lines
+Changed paths:
+   M /irssi/trunk/docs/help/in/hilight.in
+
+added -priority
+
+------------------------------------------------------------------------
+r3090 | cras | 2002-12-31 16:06:47 +0000 (Tue, 31 Dec 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/chat-completion.c
+
+don't crash with /set completion_keep_privates 0
+
+------------------------------------------------------------------------
+r3089 | cras | 2002-12-31 12:36:56 +0000 (Tue, 31 Dec 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/statusbar-items.c
+
+lag_min_show should default to 1 sec, not 0.1sec
+
+------------------------------------------------------------------------
+r3088 | cras | 2002-12-31 10:40:40 +0000 (Tue, 31 Dec 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/scripts/scriptassist.pl
+
+Updated from scripts.irssi.org
+
+------------------------------------------------------------------------
+r3087 | cras | 2002-12-30 23:10:57 +0000 (Mon, 30 Dec 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/textbuffer.c
+
+Don't access free'd memory.
+
+------------------------------------------------------------------------
+r3086 | cras | 2002-12-30 11:17:57 +0000 (Mon, 30 Dec 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/perl/common/Settings.xs
+
+Added missing settings_get_*(), patch by peder
+
+------------------------------------------------------------------------
+r3085 | cras | 2002-12-29 16:11:16 +0000 (Sun, 29 Dec 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/themes.c
+
+typo: themes weren't defaulting their abstracts to internal theme
+
+------------------------------------------------------------------------
+r3084 | cras | 2002-12-29 16:02:49 +0000 (Sun, 29 Dec 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/gui-printtext.c
+   M /irssi/trunk/src/irc/notifylist/notify-commands.c
+
+day -> 1day, hour -> 1hour
+
+------------------------------------------------------------------------
+r3083 | cras | 2002-12-29 07:58:30 +0000 (Sun, 29 Dec 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/settings.c
+
+s/size/time/ in warning message
+
+------------------------------------------------------------------------
+r3082 | cras | 2002-12-28 18:21:05 +0000 (Sat, 28 Dec 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/configure.in
+
+Default to no GC.
+
+------------------------------------------------------------------------
+r3081 | cras | 2002-12-28 18:19:34 +0000 (Sat, 28 Dec 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/term.c
+
+Added /REDRAW command that does the same as ^L.
+
+------------------------------------------------------------------------
+r3080 | cras | 2002-12-28 17:54:13 +0000 (Sat, 28 Dec 2002) | 13 lines
+Changed paths:
+   M /irssi/trunk/src/core/commands.h
+   M /irssi/trunk/src/core/log-away.c
+   M /irssi/trunk/src/core/misc.c
+   M /irssi/trunk/src/core/misc.h
+   M /irssi/trunk/src/core/servers-reconnect.c
+   M /irssi/trunk/src/core/settings.c
+   M /irssi/trunk/src/core/settings.h
+   M /irssi/trunk/src/core/write-buffer.c
+   M /irssi/trunk/src/fe-common/core/fe-common-core.c
+   M /irssi/trunk/src/fe-common/core/fe-core-commands.c
+   M /irssi/trunk/src/fe-common/core/fe-ignore.c
+   M /irssi/trunk/src/fe-common/core/fe-log.c
+   M /irssi/trunk/src/fe-common/core/fe-queries.c
+   M /irssi/trunk/src/fe-common/core/fe-settings.c
+   M /irssi/trunk/src/fe-common/core/fe-windows.c
+   M /irssi/trunk/src/fe-common/core/formats.c
+   M /irssi/trunk/src/fe-common/core/hilight-text.c
+   M /irssi/trunk/src/fe-common/core/module-formats.c
+   M /irssi/trunk/src/fe-common/core/module-formats.h
+   M /irssi/trunk/src/fe-common/core/printtext.c
+   M /irssi/trunk/src/fe-common/core/window-activity.c
+   M /irssi/trunk/src/fe-common/irc/dcc/fe-dcc-chat.c
+   M /irssi/trunk/src/fe-text/gui-printtext.c
+   M /irssi/trunk/src/fe-text/statusbar-items.c
+   M /irssi/trunk/src/fe-text/textbuffer.c
+   M /irssi/trunk/src/irc/core/irc-commands.c
+   M /irssi/trunk/src/irc/core/irc-servers-reconnect.c
+   M /irssi/trunk/src/irc/core/irc-servers.c
+   M /irssi/trunk/src/irc/core/lag.c
+   M /irssi/trunk/src/irc/dcc/dcc-autoget.c
+   M /irssi/trunk/src/irc/dcc/dcc.c
+   M /irssi/trunk/src/irc/flood/autoignore.c
+   M /irssi/trunk/src/irc/notifylist/notify-commands.c
+   M /irssi/trunk/src/irc/notifylist/notify-ison.c
+   M /irssi/trunk/src/perl/common/Settings.xs
+
+Added time, size and level setting types. Breaks some settings - I'll add
+automatic converter to these settings later. Meanwhile you CVS users can
+fix your config files yourself :)
+
+Time settings allow using "days", "hours", "minutes", "seconds" and
+"milliseconds" or several of their abbreviations. For example "5d 4h
+5msecs".
+
+Size settings allow using "gbytes", "mbytes", "kbytes" and "bytes" or their
+abbrevations. For example "5MB".
+
+Level settings are currently handled pretty much the way they were before.
+
+------------------------------------------------------------------------
+r3079 | cras | 2002-12-28 15:25:10 +0000 (Sat, 28 Dec 2002) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/themes.c
+   M /irssi/trunk/src/fe-common/core/themes.h
+   M /irssi/trunk/src/perl/ui/Themes.xs
+
+Added support to define new default abstracts at runtime.
+Irssi::abstracts_register([key => value, ...]);
+
+------------------------------------------------------------------------
+r3078 | cras | 2002-12-28 14:59:29 +0000 (Sat, 28 Dec 2002) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/core/misc.h
+
+don't bother with inlining at all, it doesn't help that much and I'm not
+sure how to do it properly without warnings :)
+
+------------------------------------------------------------------------
+r3077 | cras | 2002-12-28 14:20:24 +0000 (Sat, 28 Dec 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/misc.c
+   M /irssi/trunk/src/core/misc.h
+
+fix compiler warnings
+
+------------------------------------------------------------------------
+r3076 | cras | 2002-12-28 14:20:08 +0000 (Sat, 28 Dec 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/window-activity.c
+
+/set ignore_hide_targets supports now also checking for servertag/target
+
+------------------------------------------------------------------------
+r3075 | cras | 2002-12-27 08:33:41 +0000 (Fri, 27 Dec 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/fe-events-numeric.c
+
+Added 308 whois numeric
+
+------------------------------------------------------------------------
+r3074 | cras | 2002-12-23 10:08:10 +0000 (Mon, 23 Dec 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/default.theme
+   M /irssi/trunk/irssi.conf
+
+Added sbnickmode around $cumode in statusbar.
+
+------------------------------------------------------------------------
+r3073 | cras | 2002-12-23 08:36:25 +0000 (Mon, 23 Dec 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/themes.c
+
+Make sure we aren't using a destroyed theme
+
+------------------------------------------------------------------------
+r3072 | cras | 2002-12-23 07:22:20 +0000 (Mon, 23 Dec 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/perl/perl-common.c
+
+actually no, it doesn't work ;)
+
+------------------------------------------------------------------------
+r3071 | cras | 2002-12-23 07:19:03 +0000 (Mon, 23 Dec 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/perl/perl-common.c
+
+a bit better checking for free'd variables.
+
+------------------------------------------------------------------------
+r3070 | cras | 2002-12-23 06:44:58 +0000 (Mon, 23 Dec 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/configure.in
+
+Check for gc/gc.h too
+
+------------------------------------------------------------------------
+r3069 | cras | 2002-12-23 06:39:26 +0000 (Mon, 23 Dec 2002) | 4 lines
+Changed paths:
+   M /irssi/trunk/configure.in
+
+If ignore_perl_errors environment is set, we don't check if we could
+actually compile perl test program at runtime. Kludge to fix some broken
+perl installations..
+
+------------------------------------------------------------------------
+r3068 | cras | 2002-12-23 06:33:58 +0000 (Mon, 23 Dec 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/configure.in
+
+Prefer glib2 to 1.2 always now
+
+------------------------------------------------------------------------
+r3067 | cras | 2002-12-23 06:31:38 +0000 (Mon, 23 Dec 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/acconfig.h
+
+Forgot to commit
+
+------------------------------------------------------------------------
+r3066 | cras | 2002-12-23 06:27:25 +0000 (Mon, 23 Dec 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/configure.in
+
+Use GC by default, if possible.
+
+------------------------------------------------------------------------
+r3065 | cras | 2002-12-23 06:24:54 +0000 (Mon, 23 Dec 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/configure.in
+
+some weird changes reverted
+
+------------------------------------------------------------------------
+r3064 | cras | 2002-12-23 06:16:30 +0000 (Mon, 23 Dec 2002) | 5 lines
+Changed paths:
+   M /irssi/trunk/src/perl/perl-common.c
+
+Added /SET perl_memory_check_level which works with only GC enabled. 0
+doesn't do any checks, 1 checks for memory to be valid (default) at the
+time, 2 runs GC and then checks if memory valid (slower, but detects errors
+much better).
+
+------------------------------------------------------------------------
+r3063 | cras | 2002-12-23 06:06:14 +0000 (Mon, 23 Dec 2002) | 5 lines
+Changed paths:
+   M /irssi/trunk/configure.in
+   M /irssi/trunk/src/fe-text/irssi.c
+   M /irssi/trunk/src/perl/perl-common.c
+
+--with-gc enables now support for Boehm's GC, if it's found and glib2 is
+used. This also enables an extra check for perl library to verify scripts
+aren't using objects that have already been free'd - while not a fully safe
+solution it's much better than before :)
+
+------------------------------------------------------------------------
+r3062 | cras | 2002-12-20 14:37:56 +0000 (Fri, 20 Dec 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/channel-rejoin.c
+
+Added /SET channels_rejoin_unavailable to disable automatic rejoining when channel is unavailable. Efnet is stupid and uses the same numeric for joining juped channels and k-lines you after trying to constantly join it.
+
+------------------------------------------------------------------------
+r3061 | cras | 2002-12-18 08:52:00 +0000 (Wed, 18 Dec 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/docs/faq.html
+
+use $tag, not $chatnet
+
+------------------------------------------------------------------------
+r3060 | cras | 2002-12-18 06:00:45 +0000 (Wed, 18 Dec 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/docs/faq.html
+
+Added "How do i add the active network to the statusbar", by coekie.
+
+------------------------------------------------------------------------
+r3059 | cras | 2002-12-11 20:40:48 +0000 (Wed, 11 Dec 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/scripts/scriptassist.pl
+
+Updated from scripts.irssi.org
+
+------------------------------------------------------------------------
+r3058 | cras | 2002-12-11 10:00:51 +0000 (Wed, 11 Dec 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/themes.c
+
+Previous theme patch fixes by c0ffee
+
+------------------------------------------------------------------------
+r3057 | cras | 2002-12-11 09:40:47 +0000 (Wed, 11 Dec 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/scripts/scriptassist.pl
+
+Updated from scripts.irssi.org
+
+------------------------------------------------------------------------
+r3056 | cras | 2002-12-10 20:30:03 +0000 (Tue, 10 Dec 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/fe-netjoin.c
+   M /irssi/trunk/src/fe-text/textbuffer-view.c
+   M /irssi/trunk/src/irc/core/mode-lists.c
+   M /irssi/trunk/src/irc/dcc/dcc.c
+   M /irssi/trunk/src/irc/flood/flood.c
+   M /irssi/trunk/src/perl/perl-common.c
+
+GC fixes.
+
+------------------------------------------------------------------------
+r3055 | cras | 2002-12-10 17:31:26 +0000 (Tue, 10 Dec 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/common.h
+   M /irssi/trunk/src/fe-common/core/fe-common-core.c
+   M /irssi/trunk/src/fe-text/textbuffer-reformat.c
+   M /irssi/trunk/src/irc/core/irc-servers.c
+
+A few fixes to make irssi work with garbage collected GLIB.
+
+------------------------------------------------------------------------
+r3054 | cras | 2002-12-10 16:36:26 +0000 (Tue, 10 Dec 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/network.c
+
+Compiler warning fix
+
+------------------------------------------------------------------------
+r3053 | cras | 2002-12-10 11:40:52 +0000 (Tue, 10 Dec 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/scripts/scriptassist.pl
+
+Updated from scripts.irssi.org
+
+------------------------------------------------------------------------
+r3052 | cras | 2002-12-09 21:54:03 +0000 (Mon, 09 Dec 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/modes.c
+
+mode +o nick -o nick2 did +o for the nick2 too
+
+------------------------------------------------------------------------
+r3051 | cras | 2002-12-09 19:40:50 +0000 (Mon, 09 Dec 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/scripts/scriptassist.pl
+
+Updated from scripts.irssi.org
+
+------------------------------------------------------------------------
+r3050 | cras | 2002-12-08 17:43:57 +0000 (Sun, 08 Dec 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/docs/signals.txt
+   M /irssi/trunk/src/perl/get-signals.pl
+   M /irssi/trunk/src/perl/perl-common.c
+
+Added Irssi::Script object and "script error" signal.
+
+------------------------------------------------------------------------
+r3049 | cras | 2002-12-08 16:40:42 +0000 (Sun, 08 Dec 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/scripts/scriptassist.pl
+
+Updated from scripts.irssi.org
+
+------------------------------------------------------------------------
+r3048 | cras | 2002-12-08 13:40:42 +0000 (Sun, 08 Dec 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/scripts/scriptassist.pl
+
+Updated from scripts.irssi.org
+
+------------------------------------------------------------------------
+r3047 | cras | 2002-12-07 20:53:50 +0000 (Sat, 07 Dec 2002) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/irc-nicklist.c
+
+Don't break if nick is twice in names list (never is with non-broken
+servers).
+
+------------------------------------------------------------------------
+r3046 | cras | 2002-12-06 17:41:46 +0000 (Fri, 06 Dec 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/scripts/scriptassist.pl
+
+Updated from scripts.irssi.org
+
+------------------------------------------------------------------------
+r3045 | cras | 2002-12-04 22:17:07 +0000 (Wed, 04 Dec 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/perl/common/Core.xs
+   M /irssi/trunk/src/perl/perl-signals.c
+   M /irssi/trunk/src/perl/perl-signals.h
+
+Added Irssi::signal_register() to dynamically register new signals.
+
+------------------------------------------------------------------------
+r3044 | cras | 2002-12-04 20:52:33 +0000 (Wed, 04 Dec 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-messages.c
+   M /irssi/trunk/src/fe-common/core/fe-messages.h
+
+make printnicks global
+
+------------------------------------------------------------------------
+r3043 | cras | 2002-12-04 20:51:51 +0000 (Wed, 04 Dec 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/themes.c
+
+Better support %n in theme abstracts. Patch by c0ffee.
+
+------------------------------------------------------------------------
+r3042 | cras | 2002-12-04 11:39:31 +0000 (Wed, 04 Dec 2002) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/core/server-connect-rec.h
+   M /irssi/trunk/src/core/servers.c
+   M /irssi/trunk/src/perl/perl-common.c
+
+Added no_connect to SERVER_CONNECT_REC, also exported a few other variables
+to perl.
+
+------------------------------------------------------------------------
+r3041 | cras | 2002-12-04 11:23:28 +0000 (Wed, 04 Dec 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/session.c
+
+Broke irssi_binary path.
+
+------------------------------------------------------------------------
+r3040 | cras | 2002-12-03 22:54:44 +0000 (Tue, 03 Dec 2002) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/irc-servers-reconnect.c
+
+Irssi didn't set the internal away reason when reconnecting to server while
+being away. Patch by c0ffee.
+
+------------------------------------------------------------------------
+r3039 | cras | 2002-12-03 22:37:02 +0000 (Tue, 03 Dec 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/session.c
+   M /irssi/trunk/src/core/session.h
+   M /irssi/trunk/src/perl/common/Core.xs
+
+Made irssi_binary global and exported to perl as get_irssi_binary().
+
+------------------------------------------------------------------------
+r3038 | cras | 2002-12-02 19:40:48 +0000 (Mon, 02 Dec 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/scripts/scriptassist.pl
+
+Updated from scripts.irssi.org
+
+------------------------------------------------------------------------
+r3037 | cras | 2002-12-01 22:40:44 +0000 (Sun, 01 Dec 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/scripts/scriptassist.pl
+
+Updated from scripts.irssi.org
+
+------------------------------------------------------------------------
+r3036 | cras | 2002-12-01 16:28:12 +0000 (Sun, 01 Dec 2002) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/core/channels.c
+   M /irssi/trunk/src/core/chatnets.c
+
+no, /connect -! shouldn't send the /ircnet -autosendcmd, channel's botcmd
+should still be sent..
+
+------------------------------------------------------------------------
+r3035 | cras | 2002-12-01 16:08:23 +0000 (Sun, 01 Dec 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/channels.c
+
+/CONNECT -! shouldn't send autosendcmds when joining channels.
+
+------------------------------------------------------------------------
+r3034 | cras | 2002-11-29 13:53:44 +0000 (Fri, 29 Nov 2002) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/lastlog.c
+
+/last -clear removes now the "lastlog would print x lines, ... use -force"
+complain.
+
+------------------------------------------------------------------------
+r3033 | cras | 2002-11-29 13:38:48 +0000 (Fri, 29 Nov 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/network.c
+
+and remove outdated comment :)
+
+------------------------------------------------------------------------
+r3032 | cras | 2002-11-29 13:38:21 +0000 (Fri, 29 Nov 2002) | 4 lines
+Changed paths:
+   M /irssi/trunk/src/core/network.c
+
+If bind() fails when connecting, don't fallback to default address. Should
+make it easier to notice invalid settings or figure out why it's not
+working..
+
+------------------------------------------------------------------------
+r3031 | cras | 2002-11-28 23:43:42 +0000 (Thu, 28 Nov 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/network.c
+
+net_gethostbyaddr() was pretty much broken.
+
+------------------------------------------------------------------------
+r3030 | cras | 2002-11-28 23:19:03 +0000 (Thu, 28 Nov 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/fe-netsplit.c
+
+/NETSPLIT now prints the server tag as well.
+
+------------------------------------------------------------------------
+r3029 | cras | 2002-11-28 19:15:03 +0000 (Thu, 28 Nov 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk
+   M /irssi/trunk/.cvsignore
+
+updated
+
+------------------------------------------------------------------------
+r3028 | cras | 2002-11-28 15:40:47 +0000 (Thu, 28 Nov 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/irssi.conf
+
+silc fixes
+
+------------------------------------------------------------------------
+r3027 | cras | 2002-11-28 15:39:39 +0000 (Thu, 28 Nov 2002) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/core/net-nonblock.c
+   M /irssi/trunk/src/core/net-nonblock.h
+   M /irssi/trunk/src/core/servers.c
+
+/SET resolve_reverse_lookup to do reverse lookups for server when
+/connecting. Patch by c0ffee.
+
+------------------------------------------------------------------------
+r3026 | cras | 2002-11-25 00:40:42 +0000 (Mon, 25 Nov 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/scripts/scriptassist.pl
+
+Updated from scripts.irssi.org
+
+------------------------------------------------------------------------
+r3025 | cras | 2002-11-23 16:40:45 +0000 (Sat, 23 Nov 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/scripts/scriptassist.pl
+
+Updated from scripts.irssi.org
+
+------------------------------------------------------------------------
+r3024 | cras | 2002-11-23 12:56:47 +0000 (Sat, 23 Nov 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk
+   M /irssi/trunk/.cvsignore
+   A /irssi/trunk/COPYING
+
+Added exception to linking against OpenSSL
+
+------------------------------------------------------------------------
+r3023 | cras | 2002-11-22 20:41:00 +0000 (Fri, 22 Nov 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/scripts/scriptassist.pl
+
+Updated from scripts.irssi.org
+
+------------------------------------------------------------------------
+r3022 | cras | 2002-11-21 20:18:24 +0000 (Thu, 21 Nov 2002) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/core/log.c
+   M /irssi/trunk/src/core/log.h
+   M /irssi/trunk/src/fe-common/core/fe-log.c
+
+Create log file directories using /set log_create_file_mode + exec-bit.
+Patch by Noah Levitt <nlevitt at columbia.edu>
+
+------------------------------------------------------------------------
+r3021 | cras | 2002-11-21 18:48:03 +0000 (Thu, 21 Nov 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/dcc/fe-dcc-get.c
+   M /irssi/trunk/src/fe-common/irc/dcc/fe-dcc-send.c
+   M /irssi/trunk/src/fe-common/irc/dcc/fe-dcc.c
+   M /irssi/trunk/src/fe-common/irc/dcc/fe-dcc.h
+   M /irssi/trunk/src/fe-common/irc/dcc/module-formats.c
+
+Prettier displaying of DCC transfers, including adding ETA.
+
+------------------------------------------------------------------------
+r3020 | cras | 2002-11-21 18:34:54 +0000 (Thu, 21 Nov 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/docs/help/in/connect.in
+   M /irssi/trunk/docs/help/in/dcc.in
+   M /irssi/trunk/src/core/chat-commands.c
+
+doc/syntax updates
+
+------------------------------------------------------------------------
+r3019 | cras | 2002-11-21 18:24:51 +0000 (Thu, 21 Nov 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/chat-completion.c
+   M /irssi/trunk/src/fe-common/core/chat-completion.h
+
+completion_msg() is now public
+
+------------------------------------------------------------------------
+r3018 | cras | 2002-11-21 17:48:40 +0000 (Thu, 21 Nov 2002) | 11 lines
+Changed paths:
+   M /irssi/trunk/acconfig.h
+   M /irssi/trunk/configure.in
+   M /irssi/trunk/src/common.h
+   M /irssi/trunk/src/core/misc.c
+   M /irssi/trunk/src/core/misc.h
+   M /irssi/trunk/src/irc/dcc/dcc-autoget.c
+   M /irssi/trunk/src/irc/dcc/dcc-file-rec.h
+   M /irssi/trunk/src/irc/dcc/dcc-get.c
+   M /irssi/trunk/src/irc/dcc/dcc-rec.h
+   M /irssi/trunk/src/irc/dcc/dcc-resume.c
+   M /irssi/trunk/src/irc/dcc/dcc-send.c
+
+Irssi now uses 64bit file offets if it's only supported by system. Also did
+a few changes to DCC so that it should be possible to send >4GB files.
+
+DCC protocol uses 32bit "n bytes transferred" notifications, so I had to
+bend the protocol a bit to allow 64bit files by truncating the value to
+lowest 32bits. I'm not sure how other clients handle those notifications,
+but irssi uses it only to figure out when the DCC SEND transfer is complete,
+so it's quite safe to assume that if we've managed to write() all the bytes
+and we receive the last 32bit of file size, it means the total file size
+instead of the total - (n+1)*4GB.
+
+------------------------------------------------------------------------
+r3017 | cras | 2002-11-20 08:34:23 +0000 (Wed, 20 Nov 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/docs/special_vars.txt
+
+added $itemname
+
+------------------------------------------------------------------------
+r3016 | cras | 2002-11-20 08:04:56 +0000 (Wed, 20 Nov 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/configure.in
+
+updated version to 0.8.6.CVS
+
+------------------------------------------------------------------------
+r3015 | cras | 2002-11-19 12:18:11 +0000 (Tue, 19 Nov 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/dcc/dcc-send.c
+
+/SET dcc_send_replace_space_with_underscore ON was buggy.
+
+------------------------------------------------------------------------
+r3014 | cras | 2002-11-19 12:02:56 +0000 (Tue, 19 Nov 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/textbuffer-commands.c
+
+/SB END: if we're already at the end of buffer don't redraw it.
+
+------------------------------------------------------------------------
+r3013 | cras | 2002-11-19 11:55:36 +0000 (Tue, 19 Nov 2002) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/core/servers-reconnect.c
+
+Timeout server connections if they're not in fully connected stage in /SET
+server_connect_timeout seconds.
+
+------------------------------------------------------------------------
+r3011 | cras | 2002-11-19 10:13:45 +0000 (Tue, 19 Nov 2002) | 3 lines
+Changed paths:
+   M /irssi/trunk/configure.in
+
+curses detection code was buggy and resulted using termcap instead of
+terminfo.
+
+------------------------------------------------------------------------
+r3010 | cras | 2002-11-17 16:11:54 +0000 (Sun, 17 Nov 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/NEWS
+   M /irssi/trunk/configure.in
+
+Lets see if we're ready for 0.8.6 ..
+
+------------------------------------------------------------------------
+r3009 | cras | 2002-11-17 16:11:22 +0000 (Sun, 17 Nov 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/docs/signals.txt
+
+"mail counter" signal hasn't existed for ages
+
+------------------------------------------------------------------------
+r3008 | cras | 2002-11-17 16:05:32 +0000 (Sun, 17 Nov 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/perl/Makefile.am
+
+forgot to commit with previous perl changes
+
+------------------------------------------------------------------------
+r3007 | cras | 2002-11-17 15:51:04 +0000 (Sun, 17 Nov 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/dcc/dcc-send.c
+
+Less strict error checking, and notify about every error we do see.
+
+------------------------------------------------------------------------
+r3006 | cras | 2002-11-17 15:31:10 +0000 (Sun, 17 Nov 2002) | 3 lines
+Changed paths:
+   M /irssi/trunk/docs/help/in/dehilight.in
+
+Updated, previous one was a bit ambiguous (/dehilight mask isn't an
+exception)
+
+------------------------------------------------------------------------
+r3005 | cras | 2002-11-17 15:28:40 +0000 (Sun, 17 Nov 2002) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/core/commands.c
+
+cmd_get_quoted_param() didn't work properly if it was used with last word
+(ie. like ended with '"', which broke eg. /dcc send "file")
+
+------------------------------------------------------------------------
+r3004 | cras | 2002-11-17 15:27:55 +0000 (Sun, 17 Nov 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/dcc/dcc-send.c
+
+If /DCC SEND file isn't found, complain about it
+
+------------------------------------------------------------------------
+r3003 | cras | 2002-11-17 14:18:11 +0000 (Sun, 17 Nov 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/configure.in
+
+A bit more playing with perl cflags.
+
+------------------------------------------------------------------------
+r3002 | cras | 2002-11-15 09:04:47 +0000 (Fri, 15 Nov 2002) | 4 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-windows.c
+
+Try to choose better the window where we print when matching by level and
+multiple windows have a match. Should fix problems with query windows with a
+default msgs window + /SET window_check_level_first ON.
+
+------------------------------------------------------------------------
+r3001 | cras | 2002-11-15 09:03:35 +0000 (Fri, 15 Nov 2002) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/window-commands.c
+
+/WINDOW NAME x, /WINDOW NAME X shouldn't complain about existing window
+having same name.
+
+------------------------------------------------------------------------
+r3000 | cras | 2002-11-13 13:02:29 +0000 (Wed, 13 Nov 2002) | 4 lines
+Changed paths:
+   M /irssi/trunk/src/irc/dcc/dcc.c
+
+Don't rename our nick in DCC chats when connecting to server before we know
+what nick the server gave to us (ie. may not be the same as the nick we
+requested).
+
+------------------------------------------------------------------------
+r2999 | cras | 2002-11-13 09:40:49 +0000 (Wed, 13 Nov 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/scripts/scriptassist.pl
+
+Updated from scripts.irssi.org
+
+------------------------------------------------------------------------
+r2998 | cras | 2002-11-13 09:24:25 +0000 (Wed, 13 Nov 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/module-formats.c
+
+Don't highlight whois_extra and whois_special lines.
+
+------------------------------------------------------------------------
+r2997 | cras | 2002-11-11 08:01:22 +0000 (Mon, 11 Nov 2002) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/irc/dcc/dcc-queue.c
+   M /irssi/trunk/src/irc/dcc/dcc-send.c
+
+Fixes to allow -append and -prepend work when there's only one file being
+sent to wanted nick + typo bugfix.
+
+------------------------------------------------------------------------
+r2996 | cras | 2002-11-11 07:35:44 +0000 (Mon, 11 Nov 2002) | 2 lines
+Changed paths:
+   A /irssi/trunk/src/irc/dcc/dcc-queue.c
+   A /irssi/trunk/src/irc/dcc/dcc-queue.h
+
+whops, forgot to add
+
+------------------------------------------------------------------------
+r2995 | cras | 2002-11-11 06:54:32 +0000 (Mon, 11 Nov 2002) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/gui-readline.c
+
+fixes to allow you to register a new keyboard redirection inside a
+redirection handler. patch by c0ffee.
+
+------------------------------------------------------------------------
+r2994 | cras | 2002-11-11 06:35:12 +0000 (Mon, 11 Nov 2002) | 7 lines
+Changed paths:
+   M /irssi/trunk/docs/help/in/dcc.in
+   M /irssi/trunk/src/core/commands.c
+   M /irssi/trunk/src/core/commands.h
+   M /irssi/trunk/src/fe-common/irc/dcc/fe-dcc-send.c
+   M /irssi/trunk/src/fe-common/irc/dcc/module-formats.c
+   M /irssi/trunk/src/fe-common/irc/dcc/module-formats.h
+   M /irssi/trunk/src/irc/dcc/Makefile.am
+   M /irssi/trunk/src/irc/dcc/dcc-file-rec.h
+   M /irssi/trunk/src/irc/dcc/dcc-send.c
+
+DCC send supports now queueing. Patch by Heikki Orsila <heikki@ee.tut.fi>,
+although I did pretty heavy changes which hopefully didn't break it too
+badly :)
+
+New syntax: DCC SEND [-append | -prepend | flush | -rmtail | -rmhead] <nick>
+-<file> [<file> ...]
+
+------------------------------------------------------------------------
+r2993 | cras | 2002-11-10 15:40:47 +0000 (Sun, 10 Nov 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/scripts/scriptassist.pl
+
+Updated from scripts.irssi.org
+
+------------------------------------------------------------------------
+r2992 | cras | 2002-11-10 10:14:18 +0000 (Sun, 10 Nov 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/perl/common/Core.xs
+   M /irssi/trunk/src/perl/perl-sources.c
+   M /irssi/trunk/src/perl/perl-sources.h
+
+Irssi::timeout_add(), timeout_add_once() and input_add() were buggy.
+
+------------------------------------------------------------------------
+r2991 | cras | 2002-11-09 23:05:22 +0000 (Sat, 09 Nov 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/irssi.c
+
+grammatical fix
+
+------------------------------------------------------------------------
+r2990 | cras | 2002-11-07 17:40:05 +0000 (Thu, 07 Nov 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/ctcp.c
+   M /irssi/trunk/src/irc/core/ctcp.h
+   M /irssi/trunk/src/perl/common/Core.xs
+   M /irssi/trunk/src/perl/common/Expando.xs
+   M /irssi/trunk/src/perl/common/Irssi.xs
+   M /irssi/trunk/src/perl/common/module.h
+   M /irssi/trunk/src/perl/irc/Ctcp.xs
+   M /irssi/trunk/src/perl/irc/Irc.xs
+   M /irssi/trunk/src/perl/perl-common.h
+   M /irssi/trunk/src/perl/perl-signals.h
+   M /irssi/trunk/src/perl/textui/TextUI.xs
+   M /irssi/trunk/src/perl/ui/UI.xs
+   M /irssi/trunk/src/perl/ui/Window.xs
+
+Some compiling fixes found by -Wall in perl dirs..
+
+------------------------------------------------------------------------
+r2989 | cras | 2002-11-07 17:38:26 +0000 (Thu, 07 Nov 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/perl/Makefile.am
+
+Use the modified PERL_CFLAGS + CFLAGS to compile .xs files.
+
+------------------------------------------------------------------------
+r2988 | cras | 2002-11-07 08:41:20 +0000 (Thu, 07 Nov 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/docs/signals.txt
+
+updated "nick mode changed" signal
+
+------------------------------------------------------------------------
+r2987 | cras | 2002-11-06 21:40:44 +0000 (Wed, 06 Nov 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/scripts/scriptassist.pl
+
+Updated from scripts.irssi.org
+
+------------------------------------------------------------------------
+r2986 | cras | 2002-11-06 11:45:10 +0000 (Wed, 06 Nov 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/docs/Makefile.am
+
+man page wasn't included to "make dist" tarball
+
+------------------------------------------------------------------------
+r2985 | cras | 2002-11-05 13:34:31 +0000 (Tue, 05 Nov 2002) | 4 lines
+Changed paths:
+   M /irssi/trunk/docs/signals.txt
+   M /irssi/trunk/src/fe-text/gui-readline.c
+
+Added "gui key pressed" signal which is sent every time a key is pressed.
+The parameter is non-translated key received from terminal, so control keys
+may create multiple keypress signals (eg. home == ESC, [, H).
+
+------------------------------------------------------------------------
+r2984 | cras | 2002-11-05 13:10:58 +0000 (Tue, 05 Nov 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/special-vars.c
+
+Fixed some "buffer overflow" alerts when playing with buggy /EVAL values.
+
+------------------------------------------------------------------------
+r2983 | cras | 2002-11-03 09:06:29 +0000 (Sun, 03 Nov 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/perl/Makefile.am
+
+added quotes to make CC="$(CC)"
+
+------------------------------------------------------------------------
+r2982 | cras | 2002-11-02 23:20:50 +0000 (Sat, 02 Nov 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/configure.in
+
+perl checking bugfix
+
+------------------------------------------------------------------------
+r2981 | cras | 2002-10-31 17:24:49 +0000 (Thu, 31 Oct 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/modes.c
+
+Support for /MODE #chan +o nick1 +o nick2 style grouping.
+
+------------------------------------------------------------------------
+r2980 | cras | 2002-10-29 17:46:57 +0000 (Tue, 29 Oct 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/perl/Makefile.am
+
+typofix
+
+------------------------------------------------------------------------
+r2979 | cras | 2002-10-28 01:50:55 +0000 (Mon, 28 Oct 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/perl/ui/Formats.xs
+
+fix for new perls
+
+------------------------------------------------------------------------
+r2978 | cras | 2002-10-28 01:49:14 +0000 (Mon, 28 Oct 2002) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/perl/perl-common.c
+   M /irssi/trunk/src/perl/perl-signals.c
+
+Cast pointers to IVs instead of using GPOINTER_TO_INT() which casts them to
+ints. Hopefully fixes 64bit architectures.
+
+------------------------------------------------------------------------
+r2977 | cras | 2002-10-28 01:12:09 +0000 (Mon, 28 Oct 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/network-openssl.c
+
+compiling fix
+
+------------------------------------------------------------------------
+r2976 | cras | 2002-10-28 00:12:42 +0000 (Mon, 28 Oct 2002) | 3 lines
+Changed paths:
+   M /irssi/trunk/configure.in
+   M /irssi/trunk/src/perl/Makefile.am
+
+Try to fix perl compilation for people whose perl has been compiled with
+non-GCC but are trying to compile irssi with GCC.
+
+------------------------------------------------------------------------
+r2975 | cras | 2002-10-27 22:30:41 +0000 (Sun, 27 Oct 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/expandos.c
+   M /irssi/trunk/src/core/expandos.h
+   M /irssi/trunk/src/core/special-vars.c
+   M /irssi/trunk/src/perl/Makefile.am
+   A /irssi/trunk/src/perl/common/Expando.xs
+   M /irssi/trunk/src/perl/common/Irssi.xs
+   M /irssi/trunk/src/perl/common/Server.xs
+   M /irssi/trunk/src/perl/textui/Statusbar.xs
+
+Exported expando interface to perl. Fix for statusbar deinit.
+
+------------------------------------------------------------------------
+r2974 | cras | 2002-10-27 21:33:43 +0000 (Sun, 27 Oct 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/docs/Makefile.am
+   A /irssi/trunk/docs/irssi.1
+
+manual file, by stevee@alphanet.ch and stefan@pico.ruhr.de
+
+------------------------------------------------------------------------
+r2973 | cras | 2002-10-26 18:56:35 +0000 (Sat, 26 Oct 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/configure.in
+   M /irssi/trunk/src/core/network-openssl.c
+
+GLIB2 support for SSL code. Patch by vjt@users.sf.net
+
+------------------------------------------------------------------------
+r2972 | cras | 2002-10-26 18:52:45 +0000 (Sat, 26 Oct 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/modes.c
+
+"nick mode changed" now gives changed mode/type as parameters.
+
+------------------------------------------------------------------------
+r2971 | cras | 2002-10-25 13:57:16 +0000 (Fri, 25 Oct 2002) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/lib-config/get.c
+
+config_node_nth() and config_node_index() don't count comments in config
+anymore. fixes problems having comments in channels and servers block.
+
+------------------------------------------------------------------------
+r2970 | cras | 2002-10-21 19:05:44 +0000 (Mon, 21 Oct 2002) | 4 lines
+Changed paths:
+   M /irssi/trunk/src/common.h
+   M /irssi/trunk/src/fe-common/core/fe-common-core.c
+   M /irssi/trunk/src/fe-common/core/fe-server.c
+
+Added #define DEFAULT_SERVER_ADD_PORT to common.h which /SERVER ADD uses as
+default port. Fixed autoconnecting to use port 0 (default) instead of forced
+6667.
+
+------------------------------------------------------------------------
+r2969 | cras | 2002-10-21 19:03:47 +0000 (Mon, 21 Oct 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-server.c
+   M /irssi/trunk/src/fe-common/irc/fe-irc-server.c
+
+/SERVER and /DISCONNECT handlers moved from irc to core.
+
+------------------------------------------------------------------------
+r2968 | cras | 2002-10-19 17:48:10 +0000 (Sat, 19 Oct 2002) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/core/core.c
+   M /irssi/trunk/src/core/misc.c
+
+Handle correctly g_get_home_dir() returning NULL, assume it's the current
+directory then.
+
+------------------------------------------------------------------------
+r2967 | cras | 2002-10-19 17:40:43 +0000 (Sat, 19 Oct 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/scripts/scriptassist.pl
+
+Updated from scripts.irssi.org
+
+------------------------------------------------------------------------
+r2966 | cras | 2002-10-19 12:40:44 +0000 (Sat, 19 Oct 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/scripts/scriptassist.pl
+
+Updated from scripts.irssi.org
+
+------------------------------------------------------------------------
+r2965 | cras | 2002-10-18 13:19:45 +0000 (Fri, 18 Oct 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/printtext.c
+
+don't crash when trying to print with non-existent module in theme..
+
+------------------------------------------------------------------------
+r2964 | cras | 2002-10-16 19:35:09 +0000 (Wed, 16 Oct 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-ignore.c
+   M /irssi/trunk/src/fe-common/core/module-formats.c
+   M /irssi/trunk/src/fe-common/core/module-formats.h
+
+When ignoring without any options, don't print the []
+
+------------------------------------------------------------------------
+r2963 | cras | 2002-10-16 19:13:46 +0000 (Wed, 16 Oct 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/chat-completion.c
+
+Adde -servertag to /MSG completion always with >1 connected servers.
+
+------------------------------------------------------------------------
+r2962 | cras | 2002-10-16 08:40:52 +0000 (Wed, 16 Oct 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/scripts/scriptassist.pl
+
+Updated from scripts.irssi.org
+
+------------------------------------------------------------------------
+r2961 | cras | 2002-10-15 22:15:42 +0000 (Tue, 15 Oct 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/docs/manual.txt
+
+Fixed /HILIGHT description
+
+------------------------------------------------------------------------
+r2960 | cras | 2002-10-15 22:11:26 +0000 (Tue, 15 Oct 2002) | 4 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/modes.c
+
+Don't bother aborting /OP, /VOICE, etc. just because we're not chanop/ircop.
+That check was just broken with some servers where opping would be possible
+without either.
+
+------------------------------------------------------------------------
+r2959 | cras | 2002-10-15 07:40:47 +0000 (Tue, 15 Oct 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/scripts/scriptassist.pl
+
+Updated from scripts.irssi.org
+
+------------------------------------------------------------------------
+r2958 | cras | 2002-10-14 18:35:59 +0000 (Mon, 14 Oct 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/expandos.c
+
+The setting is of course "cmdchars", not "cmdchar"
+
+------------------------------------------------------------------------
+r2957 | cras | 2002-10-14 18:34:11 +0000 (Mon, 14 Oct 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/chat-completion.c
+
+Complete tags to /RECONNECT too
+
+------------------------------------------------------------------------
+r2956 | cras | 2002-10-14 18:33:29 +0000 (Mon, 14 Oct 2002) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/gui-entry.c
+   M /irssi/trunk/src/fe-text/textbuffer-view.c
+   M /irssi/trunk/src/fe-text/utf8.c
+   M /irssi/trunk/src/fe-text/utf8.h
+
+Some changes to make doublewidth chars possibly work (or possibly horribly
+break whole utf8 support :)
+
+------------------------------------------------------------------------
+r2955 | cras | 2002-10-14 18:24:22 +0000 (Mon, 14 Oct 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/docs/special_vars.txt
+   M /irssi/trunk/src/core/expandos.c
+
+$k - first character in CMDCHARS
+
+------------------------------------------------------------------------
+r2954 | cras | 2002-10-14 16:12:01 +0000 (Mon, 14 Oct 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/chat-completion.c
+   M /irssi/trunk/src/fe-common/core/chat-completion.h
+   M /irssi/trunk/src/fe-common/irc/Makefile.am
+   M /irssi/trunk/src/fe-common/irc/fe-common-irc.c
+   A /irssi/trunk/src/fe-common/irc/irc-completion.c
+
+More tab completion: /DISCONNECT, /SERVER ADD|REMOVE, /STATS
+
+------------------------------------------------------------------------
+r2953 | cras | 2002-10-14 15:58:47 +0000 (Mon, 14 Oct 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/servers-reconnect.c
+
+updated /reconnect syntax.
+
+------------------------------------------------------------------------
+r2952 | cras | 2002-10-14 15:58:22 +0000 (Mon, 14 Oct 2002) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/core/servers-reconnect.c
+
+/RECONNECT <tag>|* [<quit message>] - if tag is a connected server tag that
+server is reconnected with specified quit message.
+
+------------------------------------------------------------------------
+r2951 | cras | 2002-10-14 15:40:50 +0000 (Mon, 14 Oct 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/scripts/scriptassist.pl
+
+Updated from scripts.irssi.org
+
+------------------------------------------------------------------------
+r2950 | cras | 2002-10-14 15:33:55 +0000 (Mon, 14 Oct 2002) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-log.c
+
+Autolog shouldn't crash when lines are written without destination window
+(can happen at /upgrade)
+
+------------------------------------------------------------------------
+r2949 | cras | 2002-10-14 15:26:26 +0000 (Mon, 14 Oct 2002) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/dcc/fe-dcc-get.c
+   M /irssi/trunk/src/fe-common/irc/dcc/module-formats.c
+   M /irssi/trunk/src/irc/dcc/dcc-get.c
+
+/SET dcc_file_create_mode wasn't used. Also print strerror() message if
+creation fails.
+
+------------------------------------------------------------------------
+r2948 | cras | 2002-10-14 15:18:32 +0000 (Mon, 14 Oct 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/fe-irc-commands.c
+   M /irssi/trunk/src/fe-common/irc/fe-irc-messages.c
+
+Correct handling of /NOTICE @#channel, patch by dg
+
+------------------------------------------------------------------------
+r2947 | cras | 2002-10-14 12:03:37 +0000 (Mon, 14 Oct 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-ignore.c
+   M /irssi/trunk/src/fe-common/core/hilight-text.c
+   M /irssi/trunk/src/fe-common/core/module-formats.c
+
+Better print /HILIGHT lines. Also cleanup for /IGNORE lines.
+
+------------------------------------------------------------------------
+r2946 | cras | 2002-10-14 11:57:01 +0000 (Mon, 14 Oct 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-ignore.c
+   M /irssi/trunk/src/fe-common/core/module-formats.c
+
+Better message for /IGNORE
+
+------------------------------------------------------------------------
+r2945 | cras | 2002-10-14 11:52:13 +0000 (Mon, 14 Oct 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/windows-layout.c
+
+/LAYOUT SAVE doesn't crash anymore with /EXEC -interactives
+
+------------------------------------------------------------------------
+r2944 | cras | 2002-10-14 11:47:10 +0000 (Mon, 14 Oct 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/irc-servers.c
+
+/MSG !channel is now expanded to full !12345channel
+
+------------------------------------------------------------------------
+r2943 | cras | 2002-10-14 11:43:18 +0000 (Mon, 14 Oct 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/netsplit.c
+
+Make sure two urls aren't thought of as netsplit
+
+------------------------------------------------------------------------
+r2942 | cras | 2002-10-14 11:39:36 +0000 (Mon, 14 Oct 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-queries.c
+   M /irssi/trunk/src/fe-common/core/window-commands.c
+
+/UNQUERY and /WINDOW GOTO now ignores trailing whitespace
+
+------------------------------------------------------------------------
+r2941 | cras | 2002-10-14 11:36:49 +0000 (Mon, 14 Oct 2002) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/core/expandos.c
+
+$chatnet, $tag, $Y and $N expandos' change signals were incorrectly set,
+resulting non-updating statusbar
+
+------------------------------------------------------------------------
+r2940 | cras | 2002-10-14 11:05:40 +0000 (Mon, 14 Oct 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/scripts/Makefile.am
+
+Added scriptassist.pl
+
+------------------------------------------------------------------------
+r2939 | cras | 2002-10-13 16:09:51 +0000 (Sun, 13 Oct 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/scripts/usercount.pl
+
+Updated from scripts.irssi.org
+
+------------------------------------------------------------------------
+r2938 | cras | 2002-10-13 16:07:31 +0000 (Sun, 13 Oct 2002) | 2 lines
+Changed paths:
+   A /irssi/trunk/scripts/scriptassist.pl
+
+added
+
+------------------------------------------------------------------------
+r2937 | cras | 2002-10-10 01:55:24 +0000 (Thu, 10 Oct 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/fe-events-numeric.c
+   M /irssi/trunk/src/irc/core/irc-servers.c
+   M /irssi/trunk/src/irc/core/irc-servers.h
+
+Less kludgy way to handle /SET skip_motd. Works now with laggy servers.
+
+------------------------------------------------------------------------
+r2936 | cras | 2002-10-06 16:20:42 +0000 (Sun, 06 Oct 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-queries.c
+
+/QUERY reverted back.
+
+------------------------------------------------------------------------
+r2935 | cras | 2002-10-03 22:21:32 +0000 (Thu, 03 Oct 2002) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-common-core.c
+
+msgs window didn't include ACTIONS but status did, so private actions went
+always to status window if both status+msgs existed.
+
+------------------------------------------------------------------------
+r2934 | cras | 2002-09-30 21:43:46 +0000 (Mon, 30 Sep 2002) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/core/servers-reconnect.c
+   M /irssi/trunk/src/irc/core/irc-servers-reconnect.c
+
+If reconnection was aborted by trying to reconnect to another server, the
+channels and usermode wasn't restored.
+
+------------------------------------------------------------------------
+r2933 | cras | 2002-09-30 00:40:08 +0000 (Mon, 30 Sep 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/modules-load.c
+
+irssi stuck to infinite loop if it wasn't compiled with gmodule.
+
+------------------------------------------------------------------------
+r2932 | cras | 2002-09-22 15:53:39 +0000 (Sun, 22 Sep 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/perl/perl-common.h
+
+define empty aTHX_ too if it's not defined
+
+------------------------------------------------------------------------
+r2931 | cras | 2002-09-19 15:07:57 +0000 (Thu, 19 Sep 2002) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-queries.c
+
+"/QUERY" no longer unqueries, but just complains about not getting enough
+parameters. Lets see how many people dislike this change...
+
+------------------------------------------------------------------------
+r2930 | cras | 2002-09-19 14:30:10 +0000 (Thu, 19 Sep 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/perl/perl-common.c
+   M /irssi/trunk/src/perl/perl-common.h
+   M /irssi/trunk/src/perl/perl-core.c
+
+support for threaded perl. patch by mls@suse.de
+
+------------------------------------------------------------------------
+r2929 | cras | 2002-09-18 17:44:04 +0000 (Wed, 18 Sep 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-channels.c
+
+/CYCLE !channel works now properly too
+
+------------------------------------------------------------------------
+r2928 | cras | 2002-09-18 17:02:58 +0000 (Wed, 18 Sep 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-channels.c
+
+!channels weren't rejoined to correct window after reconnect/cycle.
+
+------------------------------------------------------------------------
+r2927 | cras | 2002-09-17 01:56:01 +0000 (Tue, 17 Sep 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/configure.in
+
+reversed the ld changes, not a good idea after all.
+
+------------------------------------------------------------------------
+r2926 | cras | 2002-09-16 15:56:26 +0000 (Mon, 16 Sep 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/configure.in
+
+stupid linefeed error
+
+------------------------------------------------------------------------
+r2925 | cras | 2002-09-16 15:34:04 +0000 (Mon, 16 Sep 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/configure.in
+
+linker usage fixes
+
+------------------------------------------------------------------------
+r2924 | cras | 2002-09-15 01:04:40 +0000 (Sun, 15 Sep 2002) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-windows.c
+
+when server connection was finished, it didn't move from connect_server to
+active_server
+
+------------------------------------------------------------------------
+r2923 | cras | 2002-09-14 23:30:05 +0000 (Sat, 14 Sep 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/window-commands.c
+
+added /WINDOW MOVE FIRST and /WINDOW MOVE LAST.
+
+------------------------------------------------------------------------
+r2922 | cras | 2002-09-14 23:23:57 +0000 (Sat, 14 Sep 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/expandos.c
+   M /irssi/trunk/src/fe-common/core/themes.c
+   M /irssi/trunk/src/fe-text/statusbar.c
+
+statusbar is now also updated for connecting-servers.
+
+------------------------------------------------------------------------
+r2921 | cras | 2002-09-14 23:14:04 +0000 (Sat, 14 Sep 2002) | 10 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-windows.c
+   M /irssi/trunk/src/fe-common/core/fe-windows.h
+   M /irssi/trunk/src/fe-common/core/window-commands.c
+   M /irssi/trunk/src/fe-common/irc/fe-irc-server.c
+   M /irssi/trunk/src/fe-text/gui-readline.c
+
+window->active_server used to hold non-connected servers, but that was
+removed before because it created several problems, especially with scripts.
+however that change made /server and /disconnect annoying to use with
+non-connected servers.
+
+so, now we have window->connect_server as well. either active_server or
+connect_server is set, but never both. commands that can deal properly with
+non-connected servers can now use the connect_server, while everyone else
+happily thinks that no server is active.
+
+------------------------------------------------------------------------
+r2920 | cras | 2002-09-14 22:55:25 +0000 (Sat, 14 Sep 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/servers.c
+
+no, didn't work, again :)
+
+------------------------------------------------------------------------
+r2919 | cras | 2002-09-14 22:46:18 +0000 (Sat, 14 Sep 2002) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/core/servers.c
+
+tag generation didn't check the tags from connecting servers, so same tag
+could have been duplicated
+
+------------------------------------------------------------------------
+r2918 | cras | 2002-09-14 07:29:48 +0000 (Sat, 14 Sep 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/dcc/dcc.c
+
+in_addr_t wasn't too standard, so use guint32 after all.
+
+------------------------------------------------------------------------
+r2917 | cras | 2002-09-14 00:42:37 +0000 (Sat, 14 Sep 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/dcc/dcc.c
+
+s/guint32/in_addr_t/ actually.
+
+------------------------------------------------------------------------
+r2916 | cras | 2002-09-14 00:36:20 +0000 (Sat, 14 Sep 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/dcc/dcc.c
+
+DCC was broken with some 64bit systems (64bit unsigned long)
+
+------------------------------------------------------------------------
+r2915 | cras | 2002-09-11 23:26:46 +0000 (Wed, 11 Sep 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/scripts/autoop.pl
+   M /irssi/trunk/scripts/mlock.pl
+   M /irssi/trunk/scripts/quitmsg.pl
+
+removed the '/' in command()
+
+------------------------------------------------------------------------
+r2914 | cras | 2002-09-11 22:58:55 +0000 (Wed, 11 Sep 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/docs/manual.txt
+   M /irssi/trunk/docs/proxy.txt
+   M /irssi/trunk/docs/startup-HOWTO.html
+
+more s/opn/freenode/
+
+------------------------------------------------------------------------
+r2913 | cras | 2002-09-11 22:57:12 +0000 (Wed, 11 Sep 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/irssi.conf
+
+s/OPN/freenode/
+
+------------------------------------------------------------------------
+r2912 | cras | 2002-09-08 15:49:32 +0000 (Sun, 08 Sep 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/docs/startup-HOWTO.html
+
+we're under GNU FDL license now
+
+------------------------------------------------------------------------
+r2911 | cras | 2002-09-07 18:16:59 +0000 (Sat, 07 Sep 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-log.c
+
+autologs weren't closed when channel was left, or query was destroyed
+
+------------------------------------------------------------------------
+r2910 | cras | 2002-09-07 17:13:00 +0000 (Sat, 07 Sep 2002) | 4 lines
+Changed paths:
+   M /irssi/trunk/src/core/servers-reconnect.c
+
+banned/dns_error state was set to servers in setup, but never reset, which
+means irssi stopped reconnecting to those servers forever if they occured
+once.
+
+------------------------------------------------------------------------
+r2909 | cras | 2002-08-31 16:13:18 +0000 (Sat, 31 Aug 2002) | 5 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/fe-events-numeric.c
+   M /irssi/trunk/src/fe-common/irc/module-formats.c
+   M /irssi/trunk/src/fe-common/irc/module-formats.h
+
+changed /FORMAT default_event -> default_event_server (sorry for breaking
+some themes, this is just so much better name for it :) and added a new
+default_event, which is the format for default numeric events from your
+current server.
+
+------------------------------------------------------------------------
+r2908 | cras | 2002-08-29 19:59:13 +0000 (Thu, 29 Aug 2002) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/irc/proxy/listen.c
+   M /irssi/trunk/src/irc/proxy/module.h
+
+Don't crash if /SET irssiproxy_ports is changed while having connected
+clients
+
+------------------------------------------------------------------------
+r2907 | cras | 2002-08-29 19:45:43 +0000 (Thu, 29 Aug 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/window-commands.c
+
+/FOREACH WINDOW /WINDOW CLOSE could crash irssi.
+
+------------------------------------------------------------------------
+r2906 | cras | 2002-08-27 19:46:48 +0000 (Tue, 27 Aug 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/modes.c
+
+a bit more fixes for +k updating
+
+------------------------------------------------------------------------
+r2905 | cras | 2002-08-27 19:42:23 +0000 (Tue, 27 Aug 2002) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/channels-query.c
+   M /irssi/trunk/src/irc/core/irc-nicklist.c
+   M /irssi/trunk/src/irc/core/modes.c
+   M /irssi/trunk/src/irc/core/modes.h
+
+Don't update channel key from 324 numeric, some servers send channel key as
+"*" in it which breaks irssi.
+
+------------------------------------------------------------------------
+r2904 | cras | 2002-08-27 12:45:09 +0000 (Tue, 27 Aug 2002) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/massjoin.c
+
+wait a bit longer before sending massjoin signal. also added a comment how
+it's supposed to work.
+
+------------------------------------------------------------------------
+r2903 | cras | 2002-08-27 12:21:26 +0000 (Tue, 27 Aug 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/configure.in
+
+Don't consider missing SSL/crypto libs fatal, simply disable SSL support.
+
+------------------------------------------------------------------------
+r2902 | cras | 2002-08-27 12:05:42 +0000 (Tue, 27 Aug 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/irssi.conf
+
+Added AzzurraNET.
+
+------------------------------------------------------------------------
+r2901 | cras | 2002-08-27 01:16:53 +0000 (Tue, 27 Aug 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/configure.in
+
+better fix for disabling ssl with glib2
+
+------------------------------------------------------------------------
+r2900 | cras | 2002-08-27 00:27:43 +0000 (Tue, 27 Aug 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/configure.in
+
+disable glib2 + ssl
+
+------------------------------------------------------------------------
+r2899 | cras | 2002-08-26 23:58:59 +0000 (Mon, 26 Aug 2002) | 3 lines
+Changed paths:
+   M /irssi/trunk/configure.in
+   M /irssi/trunk/src/fe-text/Makefile.am
+
+moved ncurses/terminfo/etc. libs away from PROG_LIBS which should be list of
+common libraries for all ui frontends..
+
+------------------------------------------------------------------------
+r2898 | cras | 2002-08-26 23:37:49 +0000 (Mon, 26 Aug 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/network-openssl.c
+
+right. maybe now builds with glib2 right?
+
+------------------------------------------------------------------------
+r2897 | cras | 2002-08-26 23:34:55 +0000 (Mon, 26 Aug 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/network-openssl.c
+
+fixes to work with glib2 (untested...)
+
+------------------------------------------------------------------------
+r2896 | cras | 2002-08-26 23:16:33 +0000 (Mon, 26 Aug 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/TODO
+
+todo with lots of finnish text, just to make sure i don't lose it :)
+
+------------------------------------------------------------------------
+r2895 | cras | 2002-08-26 22:55:36 +0000 (Mon, 26 Aug 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/configure.in
+
+fixed --disable-ssl description
+
+------------------------------------------------------------------------
+r2894 | cras | 2002-08-26 22:53:55 +0000 (Mon, 26 Aug 2002) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/core/servers-setup.c
+
+/SERVER -ssl option was lost while reconnecting if server existed in /SERVER
+LIST without SSL.
+
+------------------------------------------------------------------------
+r2893 | cras | 2002-08-26 22:06:53 +0000 (Mon, 26 Aug 2002) | 2 lines
+Changed paths:
+   A /irssi/trunk/docs/help/in/completion.in
+
+added, by pasky
+
+------------------------------------------------------------------------
+r2892 | cras | 2002-08-26 22:06:37 +0000 (Mon, 26 Aug 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/docs/help/in/connect.in
+   M /irssi/trunk/docs/help/in/server.in
+
+SSL updates
+
+------------------------------------------------------------------------
+r2891 | cras | 2002-08-26 19:40:04 +0000 (Mon, 26 Aug 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/fe-irc-server.c
+   M /irssi/trunk/src/irc/core/irc-servers.c
+
+A few missing parts from SSL patch.
+
+------------------------------------------------------------------------
+r2890 | cras | 2002-08-26 19:32:15 +0000 (Mon, 26 Aug 2002) | 3 lines
+Changed paths:
+   M /irssi/trunk/acconfig.h
+   M /irssi/trunk/configure.in
+   M /irssi/trunk/src/core/Makefile.am
+   M /irssi/trunk/src/core/chat-commands.c
+   A /irssi/trunk/src/core/network-openssl.c
+   M /irssi/trunk/src/core/network.h
+   M /irssi/trunk/src/core/server-connect-rec.h
+   M /irssi/trunk/src/core/server-setup-rec.h
+   M /irssi/trunk/src/core/servers-reconnect.c
+   M /irssi/trunk/src/core/servers-setup.c
+   M /irssi/trunk/src/core/servers.c
+   M /irssi/trunk/src/core/session.c
+   M /irssi/trunk/src/fe-common/core/fe-server.c
+   M /irssi/trunk/src/fe-common/irc/fe-events-numeric.c
+
+Added OpenSSL support by vjt@users.sf.net. Also fixes a possible crash after
+using /SERVER ADD -ircnet.
+
+------------------------------------------------------------------------
+r2889 | cras | 2002-08-26 19:05:14 +0000 (Mon, 26 Aug 2002) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/core/net-nonblock.c
+   M /irssi/trunk/src/core/network.c
+   M /irssi/trunk/src/core/network.h
+   M /irssi/trunk/src/core/servers.c
+   M /irssi/trunk/src/irc/dcc/dcc.c
+
+removed the stupid error-parameters from net_connect*() calls. errno can be
+used just fine.
+
+------------------------------------------------------------------------
+r2888 | cras | 2002-08-26 18:53:08 +0000 (Mon, 26 Aug 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/configure.in
+
+small fix for -lnsl check
+
+------------------------------------------------------------------------
+r2887 | cras | 2002-08-26 18:52:46 +0000 (Mon, 26 Aug 2002) | 3 lines
+Changed paths:
+   M /irssi/trunk/default.theme
+
+added topicsbstart and topicsbend which had been added to irssi.conf
+sometimes earlier..
+
+------------------------------------------------------------------------
+r2886 | cras | 2002-08-26 15:12:32 +0000 (Mon, 26 Aug 2002) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/irc-queries.c
+
+Don't crash if someone msgs you without host address (eg. dircproxy). Fix by
+Antti.Siiskonen@tut.fi
+
+------------------------------------------------------------------------
+r2885 | cras | 2002-08-25 16:04:11 +0000 (Sun, 25 Aug 2002) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/perl/irssi-core.pl
+   M /irssi/trunk/src/perl/perl-core.c
+
+If script returns 0 while it's being loaded, it's terminated without any
+error message.
+
+------------------------------------------------------------------------
+r2884 | cras | 2002-08-25 15:52:31 +0000 (Sun, 25 Aug 2002) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/perl/irssi-core.pl
+
+actually, eval {} it anyway so the script can be unloaded even if UNLOAD
+fails..
+
+------------------------------------------------------------------------
+r2883 | cras | 2002-08-25 15:49:12 +0000 (Sun, 25 Aug 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/perl/irssi-core.pl
+
+better way to check if UNLOAD exists
+
+------------------------------------------------------------------------
+r2882 | cras | 2002-08-25 15:44:48 +0000 (Sun, 25 Aug 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/perl/irssi-core.pl
+
+UNLOAD method is called now for all scripts before they're destroyed.
+
+------------------------------------------------------------------------
+r2881 | cras | 2002-08-22 21:10:40 +0000 (Thu, 22 Aug 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/fe-events-numeric.c
+   M /irssi/trunk/src/fe-common/irc/module-formats.c
+
+Added $2 = numeric to /FORMAT default_event
+
+------------------------------------------------------------------------
+r2880 | cras | 2002-08-22 20:49:07 +0000 (Thu, 22 Aug 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/themes.c
+   M /irssi/trunk/src/fe-common/core/themes.h
+
+/RELOADing broken theme file doesn't crash irssi anymore.
+
+------------------------------------------------------------------------
+r2879 | cras | 2002-08-22 20:35:43 +0000 (Thu, 22 Aug 2002) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/channel-events.c
+
+When checking for autojoin-on-invite channels, also check the short !channel
+names.
+
+------------------------------------------------------------------------
+r2878 | cras | 2002-08-21 17:26:40 +0000 (Wed, 21 Aug 2002) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/fe-events-numeric.c
+   M /irssi/trunk/src/irc/core/channel-events.c
+
+Added support for 439 numeric ("Target change too fast") which may tell that
+join was aborted.
+
+------------------------------------------------------------------------
+r2877 | cras | 2002-08-14 19:09:36 +0000 (Wed, 14 Aug 2002) | 3 lines
+Changed paths:
+   M /irssi/trunk/autogen.sh
+   M /irssi/trunk/docs/Makefile.am
+
+Removed generation of startup-HOWTO.txt, people should be able to read the
+.html just fine, and the .txt is getting ugly.
+
+------------------------------------------------------------------------
+r2876 | cras | 2002-08-14 19:05:21 +0000 (Wed, 14 Aug 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/docs/startup-HOWTO.html
+
+removed spaces inside <pre> tags.
+
+------------------------------------------------------------------------
+r2875 | cras | 2002-08-09 15:49:40 +0000 (Fri, 09 Aug 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/irssi.conf
+
+s/IRCNet/IRCnet/
+
+------------------------------------------------------------------------
+r2874 | cras | 2002-08-09 11:17:31 +0000 (Fri, 09 Aug 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/chat-commands.c
+   M /irssi/trunk/src/core/servers.c
+   M /irssi/trunk/src/core/servers.h
+
+/DISCONNECT <tag> works again for not-yet-connected servers.
+
+------------------------------------------------------------------------
+r2873 | cras | 2002-08-08 15:12:34 +0000 (Thu, 08 Aug 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/perl/textui/TextUI.xs
+
+another crashfix
+
+------------------------------------------------------------------------
+r2872 | cras | 2002-08-08 14:40:23 +0000 (Thu, 08 Aug 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/perl/textui/TextUI.xs
+
+crashfix for sbitem->{window}
+
+------------------------------------------------------------------------
+r2871 | cras | 2002-08-08 13:56:00 +0000 (Thu, 08 Aug 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/perl/textui/TextUI.xs
+
+Added window variable to Irssi::TextUI::StatusbarItem
+
+------------------------------------------------------------------------
+r2870 | cras | 2002-08-05 01:38:49 +0000 (Mon, 05 Aug 2002) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/ctcp.c
+
+Changed CTCP handler to remove the later \001 only if it was at the end of
+the line, so you couldn't hide text by typing eg. \001foo\001hidden text.
+
+------------------------------------------------------------------------
+r2869 | cras | 2002-07-16 20:46:14 +0000 (Tue, 16 Jul 2002) | 4 lines
+Changed paths:
+   M /irssi/trunk/src/core/log.c
+
+If log file path contains any $variables or %time codes, create the
+whole directory structure to the log file. This way log files created with
+/LOG OPEN properly create the directories at startup.
+
+------------------------------------------------------------------------
+r2868 | cras | 2002-07-16 16:20:49 +0000 (Tue, 16 Jul 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/chat-completion.c
+
+comment update
+
+------------------------------------------------------------------------
+r2867 | cras | 2002-07-16 16:20:10 +0000 (Tue, 16 Jul 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/misc.c
+   M /irssi/trunk/src/core/misc.h
+   M /irssi/trunk/src/fe-common/core/chat-completion.c
+
+'\' characters in nicks were skipped when sending messages in queries.
+
+------------------------------------------------------------------------
+r2866 | cras | 2002-07-16 16:12:16 +0000 (Tue, 16 Jul 2002) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/core/servers.c
+
+since some servers nowadays don't like having "-" as user/realname, changed
+the username default to "unknown" and realname default to username.
+
+------------------------------------------------------------------------
+r2865 | cras | 2002-07-04 13:18:17 +0000 (Thu, 04 Jul 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/perl/perl-common.c
+
+Using Irssi::Ignore crashed
+
+------------------------------------------------------------------------
+r2864 | cras | 2002-07-01 21:45:16 +0000 (Mon, 01 Jul 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/chat-completion.c
+
+comment update
+
+------------------------------------------------------------------------
+r2863 | cras | 2002-07-01 21:39:07 +0000 (Mon, 01 Jul 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/chat-completion.c
+
+the -nick fix broke things :) now a proper fix
+
+------------------------------------------------------------------------
+r2862 | cras | 2002-07-01 21:38:48 +0000 (Mon, 01 Jul 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/commands.c
+
+cmd_get_quoted_params() fixes
+
+------------------------------------------------------------------------
+r2861 | cras | 2002-07-01 21:13:33 +0000 (Mon, 01 Jul 2002) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/fe-irc-queries.c
+
+nick tracking change: now it renames the query only if the old nick doesn't
+exist in any channel with you
+
+------------------------------------------------------------------------
+r2860 | cras | 2002-07-01 20:48:03 +0000 (Mon, 01 Jul 2002) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/fe-irc-queries.c
+
+Query nick tracking: don't change query's nick if both the old and new nicks
+exist in one channel.
+
+------------------------------------------------------------------------
+r2859 | cras | 2002-07-01 18:03:40 +0000 (Mon, 01 Jul 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/chat-completion.c
+
+fixed query to work with nicks beginning with '-' char
+
+------------------------------------------------------------------------
+r2858 | cras | 2002-07-01 17:32:05 +0000 (Mon, 01 Jul 2002) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/irssi.c
+   M /irssi/trunk/src/fe-text/term.c
+
+Moved setlocale() at the beginning of initialization, should fix regexp
+crashes with non-C locale.
+
+------------------------------------------------------------------------
+r2857 | cras | 2002-06-19 17:48:10 +0000 (Wed, 19 Jun 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/configure.in
+
+Updated version number.
+
+------------------------------------------------------------------------
+r2856 | cras | 2002-06-19 03:06:05 +0000 (Wed, 19 Jun 2002) | 4 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/formats.c
+
+strip_codes() didn't handle ANSI colors properly, and if used at the end of
+line it might have crashed irssi (especially with topics). yeah, remote
+crash. great.
+
+------------------------------------------------------------------------
+r2855 | cras | 2002-06-15 19:39:40 +0000 (Sat, 15 Jun 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/docs/perl.txt
+
+'/' char shouldn't be used in command() examples.
+
+------------------------------------------------------------------------
+r2854 | cras | 2002-06-13 21:59:25 +0000 (Thu, 13 Jun 2002) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/fe-events-numeric.c
+   M /irssi/trunk/src/irc/core/modes.h
+
+updated dancer's channel forwarding support - using +f channel mode now, and
+we won't print whois_modes anymore after forwarding.
+
+------------------------------------------------------------------------
+r2853 | cras | 2002-06-13 21:52:04 +0000 (Thu, 13 Jun 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/docs/help/in/save.in
+
+added -formats
+
+------------------------------------------------------------------------
+r2852 | cras | 2002-06-13 21:47:40 +0000 (Thu, 13 Jun 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/fe-events.c
+
+Wallop actions fixed
+
+------------------------------------------------------------------------
+r2851 | cras | 2002-06-10 20:56:24 +0000 (Mon, 10 Jun 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/irc-expandos.c
+
+$X expando didn't check if server type was irc properly, and crashed.
+
+------------------------------------------------------------------------
+r2850 | cras | 2002-06-07 15:52:16 +0000 (Fri, 07 Jun 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/irssi.c
+
+irsis --dummy fixed.
+
+------------------------------------------------------------------------
+r2849 | cras | 2002-06-07 15:32:17 +0000 (Fri, 07 Jun 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/commands.c
+   M /irssi/trunk/src/fe-common/core/chat-completion.c
+   M /irssi/trunk/src/fe-common/core/fe-core-commands.c
+   M /irssi/trunk/src/fe-common/core/fe-exec.c
+   M /irssi/trunk/src/fe-text/gui-readline.c
+
+Empty lines can be now sent to /EXEC -interactive windows.
+
+------------------------------------------------------------------------
+r2848 | cras | 2002-06-06 23:40:37 +0000 (Thu, 06 Jun 2002) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-channels.c
+
+/NAMES list isn't displayed on join when channel is joined because of
+/UPGRADE.
+
+------------------------------------------------------------------------
+r2847 | cras | 2002-06-06 23:36:07 +0000 (Thu, 06 Jun 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-channels.c
+
+use signal_add_last("channel joined") for printing /NAMES list
+
+------------------------------------------------------------------------
+r2846 | cras | 2002-06-06 20:43:57 +0000 (Thu, 06 Jun 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/levels.h
+
+Levels are now defined as enums, not #defines.
+
+------------------------------------------------------------------------
+r2845 | cras | 2002-06-06 20:41:38 +0000 (Thu, 06 Jun 2002) | 4 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-channels.c
+   M /irssi/trunk/src/fe-common/irc/fe-events-numeric.c
+
+Added /SET show_names_on_join, /QUOTE NAMES #channel now prints the names
+list in raw format rather than just ignoring the reply and printing the
+nicks from cache.
+
+------------------------------------------------------------------------
+r2844 | cras | 2002-06-06 20:22:38 +0000 (Thu, 06 Jun 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-settings.c
+
+/SET -default changes setting to it's default value.
+
+------------------------------------------------------------------------
+r2843 | cras | 2002-06-06 20:14:31 +0000 (Thu, 06 Jun 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/proxy/listen.c
+   M /irssi/trunk/src/irc/proxy/proxy.c
+
+/SET irssiproxy_bind specifies the IP where to listen in, patch by BC-bd
+
+------------------------------------------------------------------------
+r2842 | cras | 2002-06-06 19:23:13 +0000 (Thu, 06 Jun 2002) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/autorun.c
+
+Lines beginning with '#' in ~/.irssi/startup file are now treated as
+comments
+
+------------------------------------------------------------------------
+r2841 | cras | 2002-06-06 19:22:16 +0000 (Thu, 06 Jun 2002) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/completion.c
+
+When completing words beginning with '/' or '~' chars, treat them as
+filenames.
+
+------------------------------------------------------------------------
+r2840 | cras | 2002-06-06 19:15:43 +0000 (Thu, 06 Jun 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/gui-readline.c
+
+Added default meta-d = delete_next_word
+
+------------------------------------------------------------------------
+r2839 | cras | 2002-06-05 20:11:10 +0000 (Wed, 05 Jun 2002) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/Makefile.am
+   M /irssi/trunk/src/fe-common/core/fe-common-core.c
+   M /irssi/trunk/src/fe-common/core/fe-core-commands.c
+   A /irssi/trunk/src/fe-common/core/fe-core-commands.h
+   M /irssi/trunk/src/fe-common/core/fe-queries.c
+
+Finally - /^msg nick never autocreates an empty window anymore. Added new
+extern int command_hide_output which can be used to check if /^ was used.
+
+------------------------------------------------------------------------
+r2838 | cras | 2002-06-05 12:20:46 +0000 (Wed, 05 Jun 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/modes.c
+
+"/MODE !channel" should send the full name to server
+
+------------------------------------------------------------------------
+r2837 | cras | 2002-06-04 21:23:34 +0000 (Tue, 04 Jun 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-settings.c
+
+/UNALIAS didn't work if it had space at the end.
+
+------------------------------------------------------------------------
+r2836 | cras | 2002-06-04 21:23:17 +0000 (Tue, 04 Jun 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/chat-completion.c
+
+/AWAY reason tab completion shouldn't append space at the end.
+
+------------------------------------------------------------------------
+r2835 | cras | 2002-06-04 21:18:32 +0000 (Tue, 04 Jun 2002) | 6 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-windows.c
+
+Don't set window's server yet at "server looking" stage, as everything isn't
+initialized yet and some things could crash irssi. But this is rather nice
+feature actually, /disconnect and /server would work nicely before server is
+even being connected to .. i guess i should figure out a better way to do
+this, "server init" signal or something.
+
+------------------------------------------------------------------------
+r2834 | cras | 2002-06-04 20:47:36 +0000 (Tue, 04 Jun 2002) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-exec.c
+
+/exec -interactive window items didn't have get_target() which crashed
+irssi at some point if they were used. patch by peder.
+
+------------------------------------------------------------------------
+r2833 | cras | 2002-06-04 20:04:46 +0000 (Tue, 04 Jun 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/fe-events-numeric.c
+   M /irssi/trunk/src/fe-common/irc/module-formats.c
+   M /irssi/trunk/src/fe-common/irc/module-formats.h
+
+Support for 330 whois event (auth) in qnet
+
+------------------------------------------------------------------------
+r2832 | cras | 2002-05-31 17:02:28 +0000 (Fri, 31 May 2002) | 4 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/fe-events.c
+
+Don't show the full channel name with own joins, because it's logged into
+different file than everything else. You can still see the full name with
+/WHOIS.
+
+------------------------------------------------------------------------
+r2831 | cras | 2002-05-31 16:47:08 +0000 (Fri, 31 May 2002) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-messages.c
+
+"message own_public" should be printed with channel's visible_name, not
+name.
+
+------------------------------------------------------------------------
+r2830 | cras | 2002-05-30 18:06:08 +0000 (Thu, 30 May 2002) | 4 lines
+Changed paths:
+   M /irssi/trunk/src/core/servers.c
+
+server_find_tag() shouldn't return servers in lookup_servers list,
+especially now that they're not fully initialized in their lookup-state
+yet..
+
+------------------------------------------------------------------------
+r2829 | cras | 2002-05-28 20:36:42 +0000 (Tue, 28 May 2002) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/core/channels.c
+   M /irssi/trunk/src/core/servers.c
+
+when destroying channel, it really should be removed also from
+server->channels list.
+
+------------------------------------------------------------------------
+r2828 | cras | 2002-05-26 17:58:38 +0000 (Sun, 26 May 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/chat-completion.c
+
+/ALIAS and /UNALIAS completion, patch by c0ffee.
+
+------------------------------------------------------------------------
+r2827 | cras | 2002-05-26 17:50:55 +0000 (Sun, 26 May 2002) | 4 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/channel-events.c
+
+event_cannot_join() - changed check from NAMES got -> JOIN got, so the
+channel isn't destroyed if join is received. dircproxy sent us 477 with
++channels before names list, and irssi aborted the join.
+
+------------------------------------------------------------------------
+r2826 | cras | 2002-05-26 17:39:35 +0000 (Sun, 26 May 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/dcc/fe-dcc-chat.c
+   M /irssi/trunk/src/irc/dcc/dcc-chat.c
+
+"/MSG *" works now properly with dcc chat queries.
+
+------------------------------------------------------------------------
+r2825 | cras | 2002-05-26 16:52:36 +0000 (Sun, 26 May 2002) | 4 lines
+Changed paths:
+   M /irssi/trunk/src/core/network.c
+   M /irssi/trunk/src/irc/dcc/dcc-get.c
+
+net_ip2host() and net_host2ip() now treat any IPv6 IPs as 0.0.0.0, if IPv6
+support isn't enabled in irssi. Also DCC's human readable IP address is
+taken from DCC SEND request directly with IPv6.
+
+------------------------------------------------------------------------
+r2824 | cras | 2002-05-26 16:30:19 +0000 (Sun, 26 May 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/chat-completion.c
+
+/AWAY reason tab completion, patch by c0ffee.
+
+------------------------------------------------------------------------
+r2823 | cras | 2002-05-26 14:36:44 +0000 (Sun, 26 May 2002) | 4 lines
+Changed paths:
+   M /irssi/trunk/src/perl/irssi-core.pl
+
+use Symbol qw(delete_packge) -> use Symbol; Symbol::delete_package(). Maybe
+this helps with perl 5.004 not to crash at beginning, or maybe not :) Can't
+test myself.
+
+------------------------------------------------------------------------
+r2822 | cras | 2002-05-21 07:33:23 +0000 (Tue, 21 May 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/perl/common/Core.xs
+
+bugfix
+
+------------------------------------------------------------------------
+r2821 | cras | 2002-05-20 04:12:12 +0000 (Mon, 20 May 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/chat-commands.c
+   M /irssi/trunk/src/core/chat-protocols.h
+   M /irssi/trunk/src/core/server-connect-rec.h
+   M /irssi/trunk/src/core/servers-reconnect.c
+   M /irssi/trunk/src/core/servers.c
+   M /irssi/trunk/src/core/servers.h
+   M /irssi/trunk/src/core/session.c
+   M /irssi/trunk/src/irc/core/irc-core.c
+   M /irssi/trunk/src/irc/core/irc-servers.c
+   M /irssi/trunk/src/irc/core/irc-servers.h
+   M /irssi/trunk/src/perl/irc/Server.xs
+
+/UPGRADE was broken, changed again the server connection code.
+
+------------------------------------------------------------------------
+r2820 | cras | 2002-05-20 03:25:48 +0000 (Mon, 20 May 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/perl/common/Core.xs
+
+Irssi::get_gui() now returns IRSSI_GUI_xxx which is in use.
+
+------------------------------------------------------------------------
+r2819 | cras | 2002-05-19 14:43:16 +0000 (Sun, 19 May 2002) | 6 lines
+Changed paths:
+   M /irssi/trunk/src/core/chat-commands.c
+   M /irssi/trunk/src/core/chatnets.c
+   M /irssi/trunk/src/core/net-nonblock.c
+   M /irssi/trunk/src/core/network.c
+   M /irssi/trunk/src/core/network.h
+   M /irssi/trunk/src/core/server-connect-rec.h
+   M /irssi/trunk/src/core/servers.c
+   M /irssi/trunk/src/core/session.c
+   M /irssi/trunk/src/fe-common/core/fe-server.c
+   M /irssi/trunk/src/fe-common/core/fe-windows.c
+   M /irssi/trunk/src/irc/core/irc-channels.c
+   M /irssi/trunk/src/irc/core/irc-servers.c
+   M /irssi/trunk/src/irc/dcc/dcc.c
+
+net_connect*() contains now error parameter, so it can be used to properly
+check the errno if connect() fails.
+
+Added support for connecting to named UNIX sockets. Some cleanups with
+session handling / server connecting as well.
+
+------------------------------------------------------------------------
+r2818 | cras | 2002-05-19 12:59:59 +0000 (Sun, 19 May 2002) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/irc-servers-reconnect.c
+
+When reconnected to server, send the away message directly to server instead
+of calling /AWAY, so the away is set only to that one server..
+
+------------------------------------------------------------------------
+r2817 | cras | 2002-05-19 08:18:09 +0000 (Sun, 19 May 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/channel-events.c
+
+don't crash if server sends us !channel name less than 6 chars.
+
+------------------------------------------------------------------------
+r2816 | cras | 2002-05-19 06:50:50 +0000 (Sun, 19 May 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/hilight-text.c
+   M /irssi/trunk/src/fe-common/core/hilight-text.h
+   M /irssi/trunk/src/fe-common/core/keyboard.c
+   M /irssi/trunk/src/fe-common/core/keyboard.h
+
+hilight + keyboard fixes so it's possible for xirssi to modify them.
+
+------------------------------------------------------------------------
+r2815 | cras | 2002-05-18 11:51:04 +0000 (Sat, 18 May 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/textbuffer-view.c
+
+External indent functions (theme_indent module) weren't working properly.
+
+------------------------------------------------------------------------
+r2814 | cras | 2002-05-18 07:48:23 +0000 (Sat, 18 May 2002) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-ignore.c
+
+/IGNORE -pattern now always assumes you want to create a new ignore. If you
+wish to update existing, /UNIGNORE it first.
+
+------------------------------------------------------------------------
+r2813 | cras | 2002-05-18 05:59:13 +0000 (Sat, 18 May 2002) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/irc-servers-reconnect.c
+
+Stop reconnecting on kills only if the kill was done by operator, not
+server.
+
+------------------------------------------------------------------------
+r2812 | cras | 2002-05-18 05:05:20 +0000 (Sat, 18 May 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/ignore.c
+
+Updating existing ignore didn't recompile the regexp.
+
+------------------------------------------------------------------------
+r2811 | cras | 2002-05-18 04:36:06 +0000 (Sat, 18 May 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/ignore.c
+
+still fixing
+
+------------------------------------------------------------------------
+r2810 | cras | 2002-05-18 04:18:52 +0000 (Sat, 18 May 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/ignore.c
+
+servertag needs to be saved too ..
+
+------------------------------------------------------------------------
+r2809 | cras | 2002-05-18 04:16:51 +0000 (Sat, 18 May 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/ignore.c
+
+save temporary ignores to config file with timestamp when to unignore.
+
+------------------------------------------------------------------------
+r2808 | cras | 2002-05-18 03:26:04 +0000 (Sat, 18 May 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/channels-setup.c
+
+channel_setup_create() didn't set record type.
+
+------------------------------------------------------------------------
+r2807 | cras | 2002-05-18 03:07:57 +0000 (Sat, 18 May 2002) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/fe-events-numeric.c
+   M /irssi/trunk/src/irc/core/mode-lists.c
+   M /irssi/trunk/src/irc/core/mode-lists.h
+
+banlist_find() is now public. "event 367" (banlist) shows now ban number in
+our list, if it's known.
+
+------------------------------------------------------------------------
+r2806 | cras | 2002-05-17 21:43:01 +0000 (Fri, 17 May 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/irssi.conf
+
+removed accidental extra settings.
+
+------------------------------------------------------------------------
+r2805 | cras | 2002-05-17 21:01:06 +0000 (Fri, 17 May 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/ignore.h
+   M /irssi/trunk/src/core/log.h
+   M /irssi/trunk/src/fe-common/core/hilight-text.h
+
+more typedef struct separations.
+
+------------------------------------------------------------------------
+r2804 | cras | 2002-05-17 21:00:38 +0000 (Fri, 17 May 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/lib-config/get.c
+   M /irssi/trunk/src/lib-config/iconfig.h
+
+removed useless functions
+
+------------------------------------------------------------------------
+r2803 | cras | 2002-05-17 15:22:05 +0000 (Fri, 17 May 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/channels.c
+   M /irssi/trunk/src/core/channels.h
+   M /irssi/trunk/src/core/expandos.c
+   M /irssi/trunk/src/core/settings.h
+   M /irssi/trunk/src/irc/core/channel-events.c
+   M /irssi/trunk/src/irc/core/irc-channels.c
+
+!channel fixes.
+
+------------------------------------------------------------------------
+r2802 | cras | 2002-05-17 14:49:15 +0000 (Fri, 17 May 2002) | 4 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/channel-events.c
+   M /irssi/trunk/src/irc/core/irc-channels.c
+
+new !channel support was buggy, as I tried it only with channel names having
+less than 5 chars :) Now it works so that if you join !channel, you see it
+as !channel. If you join !ABCDEchannel, you'll again see that.
+
+------------------------------------------------------------------------
+r2801 | cras | 2002-05-17 12:59:39 +0000 (Fri, 17 May 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/dcc/dcc-autoget.c
+
+crashfix for previous ~/. kludge
+
+------------------------------------------------------------------------
+r2800 | cras | 2002-05-16 18:00:47 +0000 (Thu, 16 May 2002) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/irc/dcc/dcc-autoget.c
+
+kludgeing: don't autoget files beginning with '.' if dcc_download_path is
+home dir.
+
+------------------------------------------------------------------------
+r2799 | cras | 2002-05-16 06:21:21 +0000 (Thu, 16 May 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/completion.c
+   M /irssi/trunk/src/fe-common/core/module-formats.c
+   M /irssi/trunk/src/fe-common/core/module-formats.h
+
+Added /COMPLETION -delete and some fixes.
+
+------------------------------------------------------------------------
+r2798 | cras | 2002-05-16 01:42:15 +0000 (Thu, 16 May 2002) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/completion.c
+   M /irssi/trunk/src/fe-common/core/module-formats.c
+   M /irssi/trunk/src/fe-common/core/module-formats.h
+
+Added /COMPLETION command for tab + auto-completion. Config file format
+changed for both as well, so you need to re-add them.
+
+------------------------------------------------------------------------
+r2797 | cras | 2002-05-16 00:34:37 +0000 (Thu, 16 May 2002) | 11 lines
+Changed paths:
+   M /irssi/trunk/docs/perl.txt
+   M /irssi/trunk/irssi.conf
+   M /irssi/trunk/src/core/channel-rec.h
+   M /irssi/trunk/src/core/channels.c
+   M /irssi/trunk/src/core/channels.h
+   M /irssi/trunk/src/core/chat-commands.c
+   M /irssi/trunk/src/core/chat-protocols.h
+   M /irssi/trunk/src/core/commands.c
+   M /irssi/trunk/src/core/expandos.c
+   M /irssi/trunk/src/core/queries.c
+   M /irssi/trunk/src/core/query-rec.h
+   M /irssi/trunk/src/core/session.c
+   M /irssi/trunk/src/core/window-item-rec.h
+   M /irssi/trunk/src/fe-common/core/chat-completion.c
+   M /irssi/trunk/src/fe-common/core/fe-channels.c
+   M /irssi/trunk/src/fe-common/core/fe-exec.c
+   M /irssi/trunk/src/fe-common/core/fe-log.c
+   M /irssi/trunk/src/fe-common/core/fe-messages.c
+   M /irssi/trunk/src/fe-common/core/fe-windows.c
+   M /irssi/trunk/src/fe-common/core/fe-windows.h
+   M /irssi/trunk/src/fe-common/core/window-commands.c
+   M /irssi/trunk/src/fe-common/core/window-items.c
+   M /irssi/trunk/src/fe-common/core/windows-layout.c
+   M /irssi/trunk/src/fe-common/irc/Makefile.am
+   M /irssi/trunk/src/fe-common/irc/fe-common-irc.c
+   M /irssi/trunk/src/fe-common/irc/fe-events-numeric.c
+   M /irssi/trunk/src/fe-common/irc/fe-events.c
+   M /irssi/trunk/src/fe-common/irc/fe-irc-commands.c
+   D /irssi/trunk/src/fe-common/irc/fe-irc-layout.c
+   M /irssi/trunk/src/fe-common/irc/fe-irc-server.c
+   A /irssi/trunk/src/fe-common/irc/fe-irc-server.h
+   M /irssi/trunk/src/fe-common/irc/fe-modes.c
+   M /irssi/trunk/src/irc/core/channel-events.c
+   M /irssi/trunk/src/irc/core/irc-channels.c
+   M /irssi/trunk/src/irc/core/irc-channels.h
+   M /irssi/trunk/src/irc/core/irc-commands.c
+   M /irssi/trunk/src/irc/core/irc-core.c
+   M /irssi/trunk/src/irc/core/modes.c
+   M /irssi/trunk/src/irc/core/netsplit.c
+   M /irssi/trunk/src/perl/common/Channel.xs
+   M /irssi/trunk/src/perl/irc/Channel.xs
+   M /irssi/trunk/src/perl/perl-common.c
+   M /irssi/trunk/src/perl/ui/Themes.xs
+   M /irssi/trunk/src/perl/ui/Window.xs
+
+Better !channel support - window items now have "visual_name" and channels
+and queries also have "name". Normally they're identical but with !channels
+the visible_name contains the short !channel name, while name contains
+full !ABCDEchannel name.
+
+The visible_name should be used whenever displaying the channel name, or as
+printtext()'s target. So, this breaks a few scripts in !channels, they need
+to be modified to use $channel->{visible_name} instead.
+
+Also /LAYOUT SAVE should finally work properly with !channels.
+
+------------------------------------------------------------------------
+r2796 | cras | 2002-05-15 23:20:19 +0000 (Wed, 15 May 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/gui-readline.c
+
+^ key couldn't be used with /BIND
+
+------------------------------------------------------------------------
+r2795 | cras | 2002-05-15 23:09:17 +0000 (Wed, 15 May 2002) | 3 lines
+Changed paths:
+   M /irssi/trunk/docs/faq.html
+
+"How do I easily edit existing topic?", "How can I have /WHOIS replies to
+active window?"
+
+------------------------------------------------------------------------
+r2794 | cras | 2002-05-15 21:57:51 +0000 (Wed, 15 May 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/docs/formats.txt
+
+removed accidental extra crap
+
+------------------------------------------------------------------------
+r2793 | cras | 2002-05-15 21:56:23 +0000 (Wed, 15 May 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/docs/formats.txt
+
+updated %n description
+
+------------------------------------------------------------------------
+r2792 | cras | 2002-05-13 19:26:25 +0000 (Mon, 13 May 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-help.c
+
+/SET help_path now supports multiple paths separated with ':' - patch by c0ffee
+
+------------------------------------------------------------------------
+r2791 | cras | 2002-05-13 18:25:21 +0000 (Mon, 13 May 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/perl/common/Core.xs
+   M /irssi/trunk/src/perl/irc/Dcc.xs
+   M /irssi/trunk/src/perl/irc/Modes.xs
+   M /irssi/trunk/src/perl/irc/Server.xs
+   M /irssi/trunk/src/perl/ui/Formats.xs
+   M /irssi/trunk/src/perl/ui/Themes.xs
+
+fixes
+
+------------------------------------------------------------------------
+r2790 | cras | 2002-05-13 18:16:17 +0000 (Mon, 13 May 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/mode-lists.c
+
+don't add same ban more than once to banlist.
+
+------------------------------------------------------------------------
+r2789 | cras | 2002-05-13 17:57:19 +0000 (Mon, 13 May 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/perl/common/Core.xs
+   M /irssi/trunk/src/perl/irc/Dcc.xs
+   M /irssi/trunk/src/perl/irc/Modes.xs
+   M /irssi/trunk/src/perl/irc/Server.xs
+   M /irssi/trunk/src/perl/ui/Formats.xs
+
+fixed memory leaks with several functions.
+
+------------------------------------------------------------------------
+r2788 | cras | 2002-05-13 17:11:04 +0000 (Mon, 13 May 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/term.c
+
+don't use TIOCGWINSZ terminal size if it returns only 0x0.
+
+------------------------------------------------------------------------
+r2787 | cras | 2002-05-13 17:07:37 +0000 (Mon, 13 May 2002) | 7 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/textbuffer-view.c
+   M /irssi/trunk/src/fe-text/textbuffer.c
+
+changed log domain and changed few g_return_if_fails to g_asserts. the
+domain change makes all glib warnings be printed into stderr instead of
+trying to print them into irssi window which most probably would just
+mysteriously crash.
+
+also irssi doesn't now crash if it thinks screen height is 0 :)
+
+------------------------------------------------------------------------
+r2786 | cras | 2002-05-13 16:05:30 +0000 (Mon, 13 May 2002) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/statusbar.c
+
+make sure the statusbar item fills the space it's given, so it won't corrupt
+the statusbar.
+
+------------------------------------------------------------------------
+r2785 | cras | 2002-05-13 15:30:23 +0000 (Mon, 13 May 2002) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/module-formats.c
+
+/FORMAT whowas change: ircname -> was, maybe this will make automatic
+whowas-on-whois replies a bit more noticeable.
+
+------------------------------------------------------------------------
+r2784 | cras | 2002-05-13 14:45:54 +0000 (Mon, 13 May 2002) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/perl/ui/Formats.xs
+
+Added format_create_dest() + $dest->print() functions. here's also our first
+magic perl variable - many thanks to Qrczak for helping with it :)
+
+------------------------------------------------------------------------
+r2783 | cras | 2002-05-13 13:50:45 +0000 (Mon, 13 May 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/perl/perl-sources.c
+
+timeout_add_once() didn't work.
+
+------------------------------------------------------------------------
+r2782 | cras | 2002-05-12 15:18:10 +0000 (Sun, 12 May 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/fe-events-numeric.c
+   M /irssi/trunk/src/fe-common/irc/fe-irc-commands.c
+   M /irssi/trunk/src/fe-common/irc/module-formats.c
+
+Split nick and host for topic info format.
+
+------------------------------------------------------------------------
+r2781 | cras | 2002-05-12 14:48:11 +0000 (Sun, 12 May 2002) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/term-terminfo.c
+
+some optimizations to not uselessly hide/show/move cursor - hope i didn't
+break anything :)
+
+------------------------------------------------------------------------
+r2780 | cras | 2002-05-12 14:23:05 +0000 (Sun, 12 May 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-settings.c
+
+"alias xx", not "aliases xx"..
+
+------------------------------------------------------------------------
+r2779 | cras | 2002-05-12 14:06:08 +0000 (Sun, 12 May 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-settings.c
+
+added "alias added" and "alias removed" signals.
+
+------------------------------------------------------------------------
+r2778 | cras | 2002-05-12 11:20:02 +0000 (Sun, 12 May 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/dcc/dcc.c
+
+dcc reject bugfix went wrong, fixed.
+
+------------------------------------------------------------------------
+r2777 | cras | 2002-05-12 11:19:13 +0000 (Sun, 12 May 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/dcc/dcc-send.c
+
+irssi didn't notice if DCC send connection died.
+
+------------------------------------------------------------------------
+r2776 | cras | 2002-05-12 00:51:07 +0000 (Sun, 12 May 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-common-core.c
+   M /irssi/trunk/src/fe-common/core/formats.c
+
+/set hide_mirc_colors -> /set hide_colors, which also hides ANSI colors.
+
+------------------------------------------------------------------------
+r2775 | cras | 2002-05-11 22:53:16 +0000 (Sat, 11 May 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/expandos.c
+
+moved timestamp_format into lookandfeel category
+
+------------------------------------------------------------------------
+r2774 | cras | 2002-05-11 22:17:16 +0000 (Sat, 11 May 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/perl/ui/Formats.xs
+
+added format_get_length(), format_real_length() and strip_codes()
+
+------------------------------------------------------------------------
+r2773 | cras | 2002-05-11 21:57:51 +0000 (Sat, 11 May 2002) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/formats.c
+
+removed the complaining about NULLs in string formats, they're more trouble
+than worth I think.
+
+------------------------------------------------------------------------
+r2772 | cras | 2002-05-11 01:35:37 +0000 (Sat, 11 May 2002) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/irssi.c
+
+freeze/thaw before/after running glib main loop, so the cursor isn't moved
+uselessly around.
+
+------------------------------------------------------------------------
+r2771 | cras | 2002-05-11 00:37:48 +0000 (Sat, 11 May 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/servers-setup.c
+
+server_setup_add() now emits signal "server setup updated"
+
+------------------------------------------------------------------------
+r2770 | cras | 2002-05-10 22:41:22 +0000 (Fri, 10 May 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/common.h
+   M /irssi/trunk/src/core/chat-protocols.h
+
+broke CHAT_PROTOCOL_REC into struct + typedef.
+
+------------------------------------------------------------------------
+r2769 | cras | 2002-05-10 20:40:36 +0000 (Fri, 10 May 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/irssi.c
+
+typofix.
+
+------------------------------------------------------------------------
+r2768 | cras | 2002-05-10 19:00:38 +0000 (Fri, 10 May 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-exec.c
+
+closing /EXEC -interactive window may have crashed irssi.
+
+------------------------------------------------------------------------
+r2767 | cras | 2002-05-10 18:47:49 +0000 (Fri, 10 May 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/dcc/dcc.c
+
+don't send DCC REJECT when closing a connected DCC connection.
+
+------------------------------------------------------------------------
+r2766 | cras | 2002-05-10 18:32:50 +0000 (Fri, 10 May 2002) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-queries.c
+
+window_bind_add() the query->server_tag, not server->tag as server can be
+null and crash.
+
+------------------------------------------------------------------------
+r2765 | cras | 2002-05-10 13:13:06 +0000 (Fri, 10 May 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/term-terminfo.c
+
+more fixes
+
+------------------------------------------------------------------------
+r2764 | cras | 2002-05-10 12:35:05 +0000 (Fri, 10 May 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/term-terminfo.c
+
+another terminfo fix
+
+------------------------------------------------------------------------
+r2763 | cras | 2002-05-09 13:08:04 +0000 (Thu, 09 May 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/common.h
+
+separated author email
+
+------------------------------------------------------------------------
+r2762 | cras | 2002-05-09 03:01:40 +0000 (Thu, 09 May 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/proxy/listen.c
+
+fixed /WHO handling
+
+------------------------------------------------------------------------
+r2761 | cras | 2002-05-09 02:48:22 +0000 (Thu, 09 May 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/Makefile.am
+   M /irssi/trunk/configure.in
+
+Removed servertest - it's really not needed and doesn't even work probably.
+
+------------------------------------------------------------------------
+r2760 | cras | 2002-05-08 10:59:47 +0000 (Wed, 08 May 2002) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-messages.c
+
+/SET hilight_nick_matches - NO disables hilighting your own nick at
+beginning of line.
+
+------------------------------------------------------------------------
+r2759 | cras | 2002-05-08 00:27:46 +0000 (Wed, 08 May 2002) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/Makefile.am
+
+link with -export-dynamic. normally glib includes the dynamic linking info,
+but not in all systems.
+
+------------------------------------------------------------------------
+r2758 | cras | 2002-05-07 23:40:21 +0000 (Tue, 07 May 2002) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/perl/common/Core.xs
+   M /irssi/trunk/src/perl/perl-sources.c
+
+return value wasn't a good idea after all - added Irssi::timeout_add_once()
+instead.
+
+------------------------------------------------------------------------
+r2757 | cras | 2002-05-07 23:03:30 +0000 (Tue, 07 May 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/perl/perl-sources.c
+
+non-zero return value in timeout and input handlers now stops it.
+
+------------------------------------------------------------------------
+r2756 | cras | 2002-05-07 16:10:00 +0000 (Tue, 07 May 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/irssi.conf
+
+/alias q query
+
+------------------------------------------------------------------------
+r2755 | cras | 2002-05-06 04:58:47 +0000 (Mon, 06 May 2002) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/term-terminfo.c
+
+fixed buffer overflow - happened at least when hitting ^A after writing
+enough text to input line. usually didn't crash..
+
+------------------------------------------------------------------------
+r2754 | cras | 2002-05-05 15:39:40 +0000 (Sun, 05 May 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/signals.c
+
+removed unused #defines.
+
+------------------------------------------------------------------------
+r2753 | cras | 2002-05-05 15:33:00 +0000 (Sun, 05 May 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk
+   M /irssi/trunk/.cvsignore
+
+removed colorless.theme since it's not autogenerated
+
+------------------------------------------------------------------------
+r2752 | cras | 2002-05-04 23:07:43 +0000 (Sat, 04 May 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-windows.c
+
+window_set_name() - when setting it to "", set it NULL instead.
+
+------------------------------------------------------------------------
+r2751 | cras | 2002-05-04 19:44:25 +0000 (Sat, 04 May 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-windows.c
+
+don't leave active_win corrupted if last window is killed.
+
+------------------------------------------------------------------------
+r2750 | cras | 2002-05-04 17:18:34 +0000 (Sat, 04 May 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/colorless.theme
+
+updated
+
+------------------------------------------------------------------------
+r2749 | cras | 2002-05-02 22:39:06 +0000 (Thu, 02 May 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/chat-completion.c
+   M /irssi/trunk/src/fe-common/core/completion.c
+
+Added completion for /LOAD and /WINDOW ITEM MOVE.
+
+------------------------------------------------------------------------
+r2748 | cras | 2002-05-02 22:35:01 +0000 (Thu, 02 May 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/window-items.c
+
+reversed the window->items change, it broke ^X
+
+------------------------------------------------------------------------
+r2747 | cras | 2002-05-02 15:55:26 +0000 (Thu, 02 May 2002) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/formats.c
+
+format_read_arglist() now prints the format name also when complaining about
+parameters.
+
+------------------------------------------------------------------------
+r2746 | cras | 2002-05-01 22:52:51 +0000 (Wed, 01 May 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/AUTHORS
+   M /irssi/trunk/README
+   M /irssi/trunk/docs/crash.txt
+   M /irssi/trunk/docs/faq.html
+   M /irssi/trunk/docs/formats.txt
+   M /irssi/trunk/docs/manual.txt
+   M /irssi/trunk/irssi.spec.in
+   M /irssi/trunk/src/common.h
+
+tss@iki.fi -> cras@irssi.org
+
+------------------------------------------------------------------------
+r2745 | cras | 2002-05-01 22:52:31 +0000 (Wed, 01 May 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/default.theme
+
+%# to whois format
+
+------------------------------------------------------------------------
+r2744 | cras | 2002-05-01 18:30:45 +0000 (Wed, 01 May 2002) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/module-formats.c
+
+Removed the "GLib" text from glib_error format, to stop people thinking they
+have something to do with glib itself.
+
+------------------------------------------------------------------------
+r2743 | cras | 2002-04-30 22:39:13 +0000 (Tue, 30 Apr 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/fe-irc-commands.c
+
+/notice *, /ctcp * and /nctcp * crashed if there wasn't active window item.
+
+------------------------------------------------------------------------
+r2742 | cras | 2002-04-30 11:05:29 +0000 (Tue, 30 Apr 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/docs/help/in/hilight.in
+
+added -actcolor
+
+------------------------------------------------------------------------
+r2741 | cras | 2002-04-30 00:30:53 +0000 (Tue, 30 Apr 2002) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/window-items.c
+
+keep the window items sorted in window->items list, based on when they were
+last active (just like windows list)
+
+------------------------------------------------------------------------
+r2740 | cras | 2002-04-29 19:39:57 +0000 (Mon, 29 Apr 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/irc.c
+
+irc_send_cmd_split() printed glib warning if nick parameter didn't exist.
+
+------------------------------------------------------------------------
+r2739 | cras | 2002-04-29 17:17:17 +0000 (Mon, 29 Apr 2002) | 5 lines
+Changed paths:
+   M /irssi/trunk/configure.in
+
+Removed caching of libperl-check, so many people have that problem and it's
+easier to fix if you don't need to remember to remove config.cache too.
+Also, now if perl fails it suggests apt-get installing libperl-dev with
+debian systems.
+
+------------------------------------------------------------------------
+r2738 | cras | 2002-04-29 00:11:18 +0000 (Mon, 29 Apr 2002) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-queries.c
+
+make sure nick changes in query don't print warning if query->address is
+null
+
+------------------------------------------------------------------------
+r2737 | cras | 2002-04-28 14:08:20 +0000 (Sun, 28 Apr 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/queries.c
+
+query->createtime wasn't set
+
+------------------------------------------------------------------------
+r2736 | cras | 2002-04-28 13:24:27 +0000 (Sun, 28 Apr 2002) | 3 lines
+Changed paths:
+   M /irssi/trunk/autogen.sh
+   M /irssi/trunk/src/perl/irc/Irc.xs
+   M /irssi/trunk/src/perl/perl-common.c
+
+perl hash length fixes, they're also automatically checked now in
+autogen.sh (by peder)
+
+------------------------------------------------------------------------
+r2735 | cras | 2002-04-28 11:30:49 +0000 (Sun, 28 Apr 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/perl/perl-common.c
+
+$witem->{data_level} didn't work
+
+------------------------------------------------------------------------
+r2734 | cras | 2002-04-28 11:30:31 +0000 (Sun, 28 Apr 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/module-formats.c
+
+added %# to a few "/window" lines.
+
+------------------------------------------------------------------------
+r2733 | cras | 2002-04-28 11:30:09 +0000 (Sun, 28 Apr 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/gui-printtext.c
+
+minor fix
+
+------------------------------------------------------------------------
+r2732 | cras | 2002-04-28 11:29:49 +0000 (Sun, 28 Apr 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/module-formats.c
+
+added host param to your_nick_changed format too
+
+------------------------------------------------------------------------
+r2731 | cras | 2002-04-28 11:28:21 +0000 (Sun, 28 Apr 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/fe-modes.c
+
+mode change printing fixes, forgot to commit :)
+
+------------------------------------------------------------------------
+r2730 | cras | 2002-04-27 21:53:25 +0000 (Sat, 27 Apr 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/signals.c
+   M /irssi/trunk/src/core/signals.h
+   M /irssi/trunk/src/perl/common/Core.xs
+
+added signal_continue() for continuing signal emission with new parameters.
+
+------------------------------------------------------------------------
+r2729 | cras | 2002-04-27 21:09:39 +0000 (Sat, 27 Apr 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-queries.c
+
+add temporary window bind if connection is lost with dcc chat.
+
+------------------------------------------------------------------------
+r2728 | cras | 2002-04-27 20:13:27 +0000 (Sat, 27 Apr 2002) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/windows-layout.c
+   M /irssi/trunk/src/fe-common/irc/Makefile.am
+   M /irssi/trunk/src/fe-common/irc/fe-common-irc.c
+   A /irssi/trunk/src/fe-common/irc/fe-irc-layout.c
+
+/layout save saves !channels using the short name now, so they work properly
+again
+
+------------------------------------------------------------------------
+r2727 | cras | 2002-04-27 19:42:15 +0000 (Sat, 27 Apr 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/perl/ui/Themes.xs
+
+Irssi::Theme::get_format() now uses format tag instead of number.
+
+------------------------------------------------------------------------
+r2726 | cras | 2002-04-27 19:35:17 +0000 (Sat, 27 Apr 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/perl/ui/Themes.xs
+
+added Irssi::Theme::get_format()
+
+------------------------------------------------------------------------
+r2725 | cras | 2002-04-27 18:41:59 +0000 (Sat, 27 Apr 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/perl/ui/Formats.xs
+
+Irssi::format_get_text() didn't work
+
+------------------------------------------------------------------------
+r2724 | cras | 2002-04-27 18:34:40 +0000 (Sat, 27 Apr 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-exec.c
+   M /irssi/trunk/src/fe-common/core/fe-exec.h
+
+/EXEC -quiet now hides the output entirely.
+
+------------------------------------------------------------------------
+r2723 | cras | 2002-04-27 17:57:29 +0000 (Sat, 27 Apr 2002) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/perl/common/Core.xs
+
+Irssi::command_bind*() commands were still using broken old signal
+priorities
+
+------------------------------------------------------------------------
+r2722 | cras | 2002-04-27 02:07:18 +0000 (Sat, 27 Apr 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/keyboard.c
+   M /irssi/trunk/src/fe-common/core/module-formats.c
+   M /irssi/trunk/src/fe-common/core/module-formats.h
+
+/BIND list changes: added header/footer, added %#, bind_key -> bind_list
+
+------------------------------------------------------------------------
+r2721 | cras | 2002-04-27 01:44:56 +0000 (Sat, 27 Apr 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/TODO
+
+more updates
+
+------------------------------------------------------------------------
+r2720 | cras | 2002-04-27 01:38:30 +0000 (Sat, 27 Apr 2002) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/massjoin.c
+
+signal_add_first("event join".. so normal join handlers can know about the
+nick.
+
+------------------------------------------------------------------------
+r2719 | cras | 2002-04-26 20:02:52 +0000 (Fri, 26 Apr 2002) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/fe-events-numeric.c
+   M /irssi/trunk/src/fe-common/irc/module-formats.c
+   M /irssi/trunk/src/fe-common/irc/module-formats.h
+
+removed handling of "you're not chanop" event so that the default handler
+may print the server which sends it (useful with desyncs)
+
+------------------------------------------------------------------------
+r2718 | cras | 2002-04-26 15:43:09 +0000 (Fri, 26 Apr 2002) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/formats.c
+   M /irssi/trunk/src/fe-common/core/formats.h
+   M /irssi/trunk/src/fe-common/core/module-formats.c
+   M /irssi/trunk/src/fe-common/irc/module-formats.c
+   M /irssi/trunk/src/fe-text/module-formats.c
+   M /irssi/trunk/src/perl/module-formats.c
+
+%# now toggles monospace font on/off. fe-text doesn't care about it, but
+gtk/kde UI does. By default, all lists are printed using monospace fonts.
+
+------------------------------------------------------------------------
+r2717 | cras | 2002-04-26 13:04:16 +0000 (Fri, 26 Apr 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/modes.c
+
+Don't treat +d as regular channel mode.
+
+------------------------------------------------------------------------
+r2716 | cras | 2002-04-26 13:01:06 +0000 (Fri, 26 Apr 2002) | 4 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-windows.c
+
+/WINDOW GOTO channel|query didn't work if their server was different from
+the one in active window. Also removed a kludge of automatically trying to
+find #-prefixed channels if it wasn't given.
+
+------------------------------------------------------------------------
+r2715 | cras | 2002-04-25 17:25:01 +0000 (Thu, 25 Apr 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk
+   M /irssi/trunk/.cvsignore
+
+added stamp-h1
+
+------------------------------------------------------------------------
+r2714 | cras | 2002-04-25 15:47:06 +0000 (Thu, 25 Apr 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-messages.c
+   M /irssi/trunk/src/fe-common/core/fe-queries.c
+
+some nick change events didn't print the address parameter.
+
+------------------------------------------------------------------------
+r2713 | cras | 2002-04-24 12:38:27 +0000 (Wed, 24 Apr 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/channel-events.c
+
+channel->topic_by now always contains the host info too (nick!user@host).
+
+------------------------------------------------------------------------
+r2712 | cras | 2002-04-24 08:52:33 +0000 (Wed, 24 Apr 2002) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/fe-modes.c
+   M /irssi/trunk/src/fe-common/irc/module-formats.c
+
+added host parameter to /format nick_changed, own_nick_changed and
+chanmode_change
+
+------------------------------------------------------------------------
+r2711 | cras | 2002-04-23 19:47:24 +0000 (Tue, 23 Apr 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/autogen.sh
+
+more fixes, should finally work everywhere now :)
+
+------------------------------------------------------------------------
+r2710 | cras | 2002-04-23 17:31:50 +0000 (Tue, 23 Apr 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/perl/perl-common.c
+
+added $query->{last_unread_msg}
+
+------------------------------------------------------------------------
+r2709 | cras | 2002-04-23 08:57:38 +0000 (Tue, 23 Apr 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/masks.c
+
+check_address() didn't initialize *wildcards variable properly.
+
+------------------------------------------------------------------------
+r2708 | cras | 2002-04-23 08:53:23 +0000 (Tue, 23 Apr 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/dcc/dcc-send.c
+
+warning fix
+
+------------------------------------------------------------------------
+r2707 | cras | 2002-04-23 08:50:24 +0000 (Tue, 23 Apr 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/autogen.sh
+
+yet another fix
+
+------------------------------------------------------------------------
+r2706 | cras | 2002-04-22 10:16:58 +0000 (Mon, 22 Apr 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/autogen.sh
+
+more and more glib*.m4 kludges, maybe it finally works? :)
+
+------------------------------------------------------------------------
+r2705 | cras | 2002-04-22 10:08:07 +0000 (Mon, 22 Apr 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/autogen.sh
+
+another try with glib*.m4
+
+------------------------------------------------------------------------
+r2704 | cras | 2002-04-22 09:47:13 +0000 (Mon, 22 Apr 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/docs/signals.txt
+   M /irssi/trunk/src/irc/core/modes.c
+
+Added setby-parameter to "nick mode changed" and "channel mode changed"
+
+------------------------------------------------------------------------
+r2703 | cras | 2002-04-22 09:40:43 +0000 (Mon, 22 Apr 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk
+   M /irssi/trunk/.cvsignore
+
+updated for the glib*.m4 files
+
+------------------------------------------------------------------------
+r2702 | cras | 2002-04-22 09:40:29 +0000 (Mon, 22 Apr 2002) | 3 lines
+Changed paths:
+   M /irssi/trunk/autogen.sh
+   A /irssi/trunk/glib-2.0.m4_
+   A /irssi/trunk/glib.m4_
+
+Trying again to add glib.m4 files so you don't need them. autogen.sh kludges
+around the duplicates.
+
+------------------------------------------------------------------------
+r2701 | cras | 2002-04-22 09:12:41 +0000 (Mon, 22 Apr 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/docs/signals.txt
+   M /irssi/trunk/src/fe-common/irc/fe-events.c
+   M /irssi/trunk/src/fe-common/irc/fe-modes.c
+   M /irssi/trunk/src/fe-common/irc/fe-netjoin.c
+
+"message mode" -> "message irc mode", also added in signals.txt
+
+------------------------------------------------------------------------
+r2700 | cras | 2002-04-21 17:31:23 +0000 (Sun, 21 Apr 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/formats.h
+   M /irssi/trunk/src/fe-common/core/keyboard.c
+   M /irssi/trunk/src/fe-common/core/keyboard.h
+
+struct naming changes
+
+------------------------------------------------------------------------
+r2699 | cras | 2002-04-19 08:32:46 +0000 (Fri, 19 Apr 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/fe-modes.c
+
+signal leak fix
+
+------------------------------------------------------------------------
+r2698 | cras | 2002-04-18 15:25:00 +0000 (Thu, 18 Apr 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/dcc/dcc-send.c
+
+/SET dcc_send_replace_space_with_underscore - patch by nix@suhs.nu
+
+------------------------------------------------------------------------
+r2697 | cras | 2002-04-18 07:47:27 +0000 (Thu, 18 Apr 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/gui-printtext.c
+
+sig_gui_print_text: don't crash if dest is NULL.
+
+------------------------------------------------------------------------
+r2696 | cras | 2002-04-17 21:04:25 +0000 (Wed, 17 Apr 2002) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-queries.c
+   M /irssi/trunk/src/fe-common/core/module-formats.c
+   M /irssi/trunk/src/fe-common/core/module-formats.h
+
+/QUERY existing_nick now switches to the window where it exists, instead of
+complaining about /window item move (same fix as to /join recently).
+
+------------------------------------------------------------------------
+r2695 | cras | 2002-04-17 21:03:04 +0000 (Wed, 17 Apr 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/queries.c
+
+when queried nick changes, "window item name changed" signal is sent too.
+
+------------------------------------------------------------------------
+r2694 | cras | 2002-04-17 21:02:41 +0000 (Wed, 17 Apr 2002) | 3 lines
+Changed paths:
+   M /irssi/trunk/docs/signals.txt
+   M /irssi/trunk/src/fe-common/core/formats.c
+   M /irssi/trunk/src/fe-text/gui-printtext.c
+
+"gui print text" signal changed, last parameter is now TEXT_DEST_REC, not
+level.
+
+------------------------------------------------------------------------
+r2693 | cras | 2002-04-17 15:30:26 +0000 (Wed, 17 Apr 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/window-commands.c
+
+/WINDOW ITEM GOTO now accepts a number too, to jump to nth window item.
+
+------------------------------------------------------------------------
+r2692 | cras | 2002-04-16 19:51:44 +0000 (Tue, 16 Apr 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/perl/common/Core.xs
+
+fix
+
+------------------------------------------------------------------------
+r2691 | cras | 2002-04-16 18:11:06 +0000 (Tue, 16 Apr 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/commands.c
+   M /irssi/trunk/src/core/commands.h
+   M /irssi/trunk/src/core/expandos.c
+   M /irssi/trunk/src/fe-text/statusbar.c
+   M /irssi/trunk/src/perl/common/Core.xs
+   M /irssi/trunk/src/perl/perl-signals.c
+   M /irssi/trunk/src/perl/perl-signals.h
+
+fixes for new signaling code.
+
+------------------------------------------------------------------------
+r2690 | cras | 2002-04-16 17:26:33 +0000 (Tue, 16 Apr 2002) | 3 lines
+Changed paths:
+   M /irssi/trunk/configure.in
+
+If terminfo/termcap isn't found, and --without-textui isn't given, abort the
+configure
+
+------------------------------------------------------------------------
+r2689 | cras | 2002-04-16 06:51:45 +0000 (Tue, 16 Apr 2002) | 2 lines
+Changed paths:
+   D /irssi/trunk/glib-2.0.m4
+   D /irssi/trunk/glib.m4
+
+Oh well, couldn't keep these anyway because aclocal doesn't like duplicates.
+
+------------------------------------------------------------------------
+r2688 | cras | 2002-04-15 21:24:02 +0000 (Mon, 15 Apr 2002) | 3 lines
+Changed paths:
+   A /irssi/trunk/glib-2.0.m4
+   A /irssi/trunk/glib.m4
+
+glib.m4 stuff - so people using cvs don't need both glib 1.2 and 2.0
+installed - either one will be enough.
+
+------------------------------------------------------------------------
+r2687 | cras | 2002-04-15 15:48:04 +0000 (Mon, 15 Apr 2002) | 5 lines
+Changed paths:
+   M /irssi/trunk/configure.in
+
+Added --with-glib2 option which can be used to build irssi with GLIB 2.0
+instead of 1.2. It autodetects first 1.2 and if not found, tries 2.0. NOTE:
+if you're building from CVS, you MUST have both glib 1.2 and 2.0 devel.
+packages installed.
+
+------------------------------------------------------------------------
+r2686 | cras | 2002-04-15 15:10:18 +0000 (Mon, 15 Apr 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/docs/perl.txt
+
+removed a few functions that don't exist anymore
+
+------------------------------------------------------------------------
+r2685 | cras | 2002-04-15 14:33:47 +0000 (Mon, 15 Apr 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/fe-modes.c
+
+signal leak fix
+
+------------------------------------------------------------------------
+r2684 | cras | 2002-04-15 14:10:26 +0000 (Mon, 15 Apr 2002) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/core/signals.c
+
+display the refcount properly when complaining that signal is still
+referenced
+
+------------------------------------------------------------------------
+r2683 | cras | 2002-04-15 14:06:57 +0000 (Mon, 15 Apr 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-common-core.c
+   M /irssi/trunk/src/fe-common/core/keyboard.c
+   M /irssi/trunk/src/fe-common/irc/fe-netjoin.c
+   M /irssi/trunk/src/fe-text/gui-readline.c
+   M /irssi/trunk/src/fe-text/textbuffer-reformat.c
+
+fixed several signal leaks
+
+------------------------------------------------------------------------
+r2682 | cras | 2002-04-15 13:59:09 +0000 (Mon, 15 Apr 2002) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/core/commands.c
+   M /irssi/trunk/src/core/expandos.c
+   M /irssi/trunk/src/core/signals.c
+   M /irssi/trunk/src/core/signals.h
+   M /irssi/trunk/src/fe-text/statusbar.c
+   M /irssi/trunk/src/perl/perl-signals.c
+
+Rewritten signal handling code - it wasn't supposed to come before 0.9 irssi
+but it doesn't break much things and is needed for Qt port :)
+
+------------------------------------------------------------------------
+r2681 | cras | 2002-04-15 13:52:23 +0000 (Mon, 15 Apr 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-common-core.c
+
+GLib errors printed to stderr didn't contain \n
+
+------------------------------------------------------------------------
+r2680 | cras | 2002-04-14 16:30:13 +0000 (Sun, 14 Apr 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-exec.c
+
+/EXEC -interactive : only numbered /execs should have the % prefix.
+
+------------------------------------------------------------------------
+r2679 | cras | 2002-04-14 16:26:08 +0000 (Sun, 14 Apr 2002) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/window-commands.c
+
+/WINDOW NAME now ignores if you're setting same name to it without
+complaining.
+
+------------------------------------------------------------------------
+r2678 | cras | 2002-04-14 15:43:17 +0000 (Sun, 14 Apr 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/docs/help/in/connect.in
+
+updated see also
+
+------------------------------------------------------------------------
+r2677 | cras | 2002-04-14 13:16:50 +0000 (Sun, 14 Apr 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/docs/formats.txt
+
+"bold black" -> "dark grey"
+
+------------------------------------------------------------------------
+r2676 | cras | 2002-04-14 10:10:43 +0000 (Sun, 14 Apr 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/docs/startup-HOWTO.html
+
+typofix
+
+------------------------------------------------------------------------
+r2675 | cras | 2002-04-14 10:09:55 +0000 (Sun, 14 Apr 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/docs/faq.html
+
+added code tags
+
+------------------------------------------------------------------------
+r2674 | cras | 2002-04-14 10:06:46 +0000 (Sun, 14 Apr 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/docs/startup-HOWTO.html
+
+statusbar section uses now <pre>, not <ul>
+
+------------------------------------------------------------------------
+r2673 | cras | 2002-04-14 10:03:42 +0000 (Sun, 14 Apr 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/docs/startup-HOWTO.html
+
+even more code tags
+
+------------------------------------------------------------------------
+r2672 | cras | 2002-04-14 09:56:55 +0000 (Sun, 14 Apr 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/docs/startup-HOWTO.html
+
+added code-tags and some other updates.
+
+------------------------------------------------------------------------
+r2671 | cras | 2002-04-13 12:28:01 +0000 (Sat, 13 Apr 2002) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/keyboard.c
+
+If some keycombo can't be expanded, add it to state list as-is so it can use
+existing combos given by GUI.
+
+------------------------------------------------------------------------
+r2670 | cras | 2002-04-12 22:58:26 +0000 (Fri, 12 Apr 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/keyboard.c
+
+Wrong casting with glib2 fix - GSearchFunc, not GCompareFunc :)
+
+------------------------------------------------------------------------
+r2669 | cras | 2002-04-12 22:55:10 +0000 (Fri, 12 Apr 2002) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-messages.c
+   M /irssi/trunk/src/fe-common/core/module-formats.c
+
+address parameter was missing from /FORMAT invite, nick_changed, kick and
+topic.
+
+------------------------------------------------------------------------
+r2668 | cras | 2002-04-12 19:45:59 +0000 (Fri, 12 Apr 2002) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-exec.c
+   M /irssi/trunk/src/fe-common/core/fe-exec.h
+
+/EXEC -out now sends /msg -nick | -channel so it works properly with silc
+channels.
+
+------------------------------------------------------------------------
+r2667 | cras | 2002-04-12 19:41:51 +0000 (Fri, 12 Apr 2002) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-windows.c
+
+window_change_server() : don't change server if it's being disconnected.
+fixes a crash with multiple channels being in one windows.
+
+------------------------------------------------------------------------
+r2666 | cras | 2002-04-12 19:06:18 +0000 (Fri, 12 Apr 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/docs/faq.html
+
+added "how do i autorun scripts"
+
+------------------------------------------------------------------------
+r2665 | cras | 2002-04-11 13:54:23 +0000 (Thu, 11 Apr 2002) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/irc/dcc/dcc-autoget.c
+
+/SET dcc_autoget_max_size default changed to 0 (disabled) - it's pretty
+stupid default since no-one wants it anyway
+
+------------------------------------------------------------------------
+r2664 | cras | 2002-04-10 02:56:53 +0000 (Wed, 10 Apr 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/irssi-config.in
+
+PERL_LDFLAGS isn't used anymore, replaced with other PERL_*
+
+------------------------------------------------------------------------
+r2663 | cras | 2002-04-10 02:53:06 +0000 (Wed, 10 Apr 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/servers.c
+   M /irssi/trunk/src/core/session.c
+   M /irssi/trunk/src/core/special-vars.c
+   M /irssi/trunk/src/fe-common/core/completion.c
+   M /irssi/trunk/src/fe-common/core/keyboard.c
+   M /irssi/trunk/src/irc/core/irc-servers-setup.c
+   M /irssi/trunk/src/irc/dcc/dcc-send.c
+
+Fixed one error and several warnings with GLIB 2.0
+
+------------------------------------------------------------------------
+r2662 | cras | 2002-04-09 21:25:34 +0000 (Tue, 09 Apr 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/docs/help/in/server.in
+
+Added CONNECT to "see also" list
+
+------------------------------------------------------------------------
+r2661 | cras | 2002-04-09 19:06:20 +0000 (Tue, 09 Apr 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/module-formats.c
+   M /irssi/trunk/src/fe-common/core/module-formats.h
+
+Removed the now useless "/window item move" help with /join
+
+------------------------------------------------------------------------
+r2660 | cras | 2002-04-09 19:05:44 +0000 (Tue, 09 Apr 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-channels.c
+
+/JOIN #existing_channel jumps to the window where it's joined.
+
+------------------------------------------------------------------------
+r2659 | cras | 2002-04-09 05:27:31 +0000 (Tue, 09 Apr 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/scripts/kills.pl
+
+updated comments
+
+------------------------------------------------------------------------
+r2658 | cras | 2002-04-09 05:18:11 +0000 (Tue, 09 Apr 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/perl/common/Core.xs
+
+Irssi::timeout_add() - don't allow smaller values than 10
+
+------------------------------------------------------------------------
+r2657 | cras | 2002-04-06 16:34:21 +0000 (Sat, 06 Apr 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/irssi.conf
+
+DALnet, not DALNet
+
+------------------------------------------------------------------------
+r2656 | cras | 2002-04-05 09:09:30 +0000 (Fri, 05 Apr 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/irc-servers.c
+
+workaround for some server that doesn't reply anything to pings.
+
+------------------------------------------------------------------------
+r2655 | cras | 2002-04-05 02:43:48 +0000 (Fri, 05 Apr 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/irssi.conf
+
+updated max_whois properly, changed some values from 100 to 30.
+
+------------------------------------------------------------------------
+r2654 | cras | 2002-04-05 01:21:08 +0000 (Fri, 05 Apr 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/irssi.conf
+
+added PTnet
+
+------------------------------------------------------------------------
+r2653 | cras | 2002-04-03 14:08:52 +0000 (Wed, 03 Apr 2002) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/core/servers-reconnect.c
+
+if /CONNECT -! ircnet couldn't connect to first server, next was tried but
+-! was forgotten.
+
+------------------------------------------------------------------------
+r2652 | cras | 2002-04-01 23:06:54 +0000 (Mon, 01 Apr 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/docs/help/in/levels.in
+
+CLIENTNOTICE and CLIENTERROR shouldn't have been in plural
+
+------------------------------------------------------------------------
+r2651 | cras | 2002-04-01 18:57:40 +0000 (Mon, 01 Apr 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/perl/common/Irssi.pm
+
+print() fix
+
+------------------------------------------------------------------------
+r2650 | cras | 2002-03-31 19:51:58 +0000 (Sun, 31 Mar 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/configure.in
+
+added note about INSTALL file.
+
+------------------------------------------------------------------------
+r2649 | cras | 2002-03-31 19:40:40 +0000 (Sun, 31 Mar 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/dcc/dcc.c
+
+Listen for DCC connections in all interfaces
+
+------------------------------------------------------------------------
+r2648 | cras | 2002-03-31 19:07:23 +0000 (Sun, 31 Mar 2002) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/core/channels.c
+   M /irssi/trunk/src/core/servers.c
+   M /irssi/trunk/src/fe-common/core/fe-channels.c
+   M /irssi/trunk/src/irc/core/channel-rejoin.c
+   M /irssi/trunk/src/irc/core/channels-query.c
+   M /irssi/trunk/src/irc/core/irc-channels.c
+
+Don't set channel->server = NULL when disconnecting, so scripts can still
+use it in eg. "channel destroyed". Patch by Qrczak
+
+------------------------------------------------------------------------
+r2647 | cras | 2002-03-31 12:04:57 +0000 (Sun, 31 Mar 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/bans.c
+
+with 10 char usernames, ban "*234567890" instead of "*12345678*"
+
+------------------------------------------------------------------------
+r2646 | cras | 2002-03-24 20:59:37 +0000 (Sun, 24 Mar 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/perl/common/Irssi.pm
+
+bugfix
+
+------------------------------------------------------------------------
+r2645 | cras | 2002-03-24 20:41:07 +0000 (Sun, 24 Mar 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/docs/help/in/bind.in
+   M /irssi/trunk/src/fe-common/core/keyboard.c
+
+Added "nothing" action to /BIND.
+
+------------------------------------------------------------------------
+r2644 | cras | 2002-03-24 19:37:12 +0000 (Sun, 24 Mar 2002) | 5 lines
+Changed paths:
+   M /irssi/trunk/src/perl/common/Irssi.pm
+   M /irssi/trunk/src/perl/ui/UI.pm
+
+Perl's print and printf calls now write the text to irssi's window. You
+can give the level like a file handle, eg. "print CRAP 'text';". You can
+also give the window/server/target with $fh = $window->create_handle([level])
+and $server->create_handle(target, [level]). Patch by juerd@juerd.nl
+
+------------------------------------------------------------------------
+r2643 | cras | 2002-03-24 19:06:47 +0000 (Sun, 24 Mar 2002) | 4 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/statusbar-items.c
+
+Input lines are now never destroyed and they're associated to statusbar
+name, so scripts can now do any statusbar changes without input line being
+cleared.
+
+------------------------------------------------------------------------
+r2642 | cras | 2002-03-24 16:47:47 +0000 (Sun, 24 Mar 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/docs/help/in/list.in
+   M /irssi/trunk/docs/help/in/note.in
+   M /irssi/trunk/docs/help/in/squery.in
+
+alis/noteserv help by pasky
+
+------------------------------------------------------------------------
+r2641 | cras | 2002-03-24 16:35:20 +0000 (Sun, 24 Mar 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/perl/perl-core.c
+
+destruct level isn't touched anymore, it crashes irssi with a few people..
+
+------------------------------------------------------------------------
+r2640 | cras | 2002-03-24 08:02:50 +0000 (Sun, 24 Mar 2002) | 2 lines
+Changed paths:
+   A /irssi/trunk/docs/help/in/script.in
+
+added, patch by pasky
+
+------------------------------------------------------------------------
+r2639 | cras | 2002-03-23 17:42:48 +0000 (Sat, 23 Mar 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/expandos.c
+
+$topic shouldn't crash if query doesn't have a valid address set yet.
+
+------------------------------------------------------------------------
+r2638 | cras | 2002-03-22 22:30:45 +0000 (Fri, 22 Mar 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/expandos.c
+
+Add server tag as well to topicbar with queries
+
+------------------------------------------------------------------------
+r2637 | cras | 2002-03-22 21:29:28 +0000 (Fri, 22 Mar 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/irssi.conf
+
+Added Hashmark network
+
+------------------------------------------------------------------------
+r2636 | cras | 2002-03-22 21:25:35 +0000 (Fri, 22 Mar 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/irssi.conf
+
+s/Sorcery/SorceryNet/
+
+------------------------------------------------------------------------
+r2635 | cras | 2002-03-22 21:15:45 +0000 (Fri, 22 Mar 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/irssi.conf
+
+Added Sorcery network.
+
+------------------------------------------------------------------------
+r2634 | cras | 2002-03-19 17:34:32 +0000 (Tue, 19 Mar 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/docs/startup-HOWTO.html
+
+buggy xhtml
+
+------------------------------------------------------------------------
+r2633 | cras | 2002-03-19 17:24:28 +0000 (Tue, 19 Mar 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/textbuffer-commands.c
+
+/CLEAR <refnum> now clears specified window.
+
+------------------------------------------------------------------------
+r2632 | cras | 2002-03-19 12:28:55 +0000 (Tue, 19 Mar 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-help.c
+
+Sort /HELP output better when using multiple categories. Patch by c0ffee.
+
+------------------------------------------------------------------------
+r2631 | cras | 2002-03-18 15:47:19 +0000 (Mon, 18 Mar 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/docs/faq.html
+
+AGAIN forgot Q/A.
+
+------------------------------------------------------------------------
+r2630 | cras | 2002-03-18 15:46:40 +0000 (Mon, 18 Mar 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/docs/faq.html
+
+"Will there be /DETACH-like feature?"
+
+------------------------------------------------------------------------
+r2629 | cras | 2002-03-18 15:25:08 +0000 (Mon, 18 Mar 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/configure.in
+
+src/irc/bot is removed
+
+------------------------------------------------------------------------
+r2628 | cras | 2002-03-17 09:13:18 +0000 (Sun, 17 Mar 2002) | 4 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/modes.c
+
+Allow /OP, etc. commands for server operators as well. They may not work
+everywhere, but the whole point of the check was to avoid accidental /OP *
+or something while not opped in some huge channel.
+
+------------------------------------------------------------------------
+r2627 | cras | 2002-03-17 02:50:12 +0000 (Sun, 17 Mar 2002) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/channel-events.c
+
+If autojoining to !channel failed because it didn't exist, create it by
+joining to !!channel
+
+------------------------------------------------------------------------
+r2626 | cras | 2002-03-17 02:14:56 +0000 (Sun, 17 Mar 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/docs/faq.html
+
+show how to change TERM
+
+------------------------------------------------------------------------
+r2625 | cras | 2002-03-17 00:59:46 +0000 (Sun, 17 Mar 2002) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/irc/dcc/dcc-get.c
+
+fallback to rename() if link() isn't supported on the filesystem, so people
+can still download files to such FSes..
+
+------------------------------------------------------------------------
+r2624 | cras | 2002-03-16 23:21:19 +0000 (Sat, 16 Mar 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/docs/crash.txt
+
+added email address
+
+------------------------------------------------------------------------
+r2623 | cras | 2002-03-16 23:17:33 +0000 (Sat, 16 Mar 2002) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/term-terminfo.c
+
+term_deinit() should set SIGCONT back to default, so if it's sent after that
+it won't crash (gnome-terminal does that for some reason)
+
+------------------------------------------------------------------------
+r2622 | cras | 2002-03-16 13:28:20 +0000 (Sat, 16 Mar 2002) | 5 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-log.c
+
+$1 can now be used as server tag in /SET autolog_path. This is useful when
+you want to log for specified tag before the server exists yet so $tag
+wouldn't work. This happens at least when queries print the "querying nick"
+text at startup.
+
+------------------------------------------------------------------------
+r2621 | cras | 2002-03-16 11:14:35 +0000 (Sat, 16 Mar 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/perl/Makefile.am
+
+"make clean" now cleans all perl subdirs properly too.
+
+------------------------------------------------------------------------
+r2620 | cras | 2002-03-15 21:32:22 +0000 (Fri, 15 Mar 2002) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-channels.c
+
+/PART in SILC destroys the channel immediately, so we'll need to check
+that it's not destroyed when doing it in /CYCLE..
+
+------------------------------------------------------------------------
+r2619 | cras | 2002-03-15 21:07:19 +0000 (Fri, 15 Mar 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/Makefile.am
+
+Dropped the bot-plugin. It's not useful to anyone really.
+
+------------------------------------------------------------------------
+r2618 | cras | 2002-03-15 20:59:00 +0000 (Fri, 15 Mar 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/module-formats.c
+
+updated not_good_idea text
+
+------------------------------------------------------------------------
+r2617 | cras | 2002-03-15 00:05:55 +0000 (Fri, 15 Mar 2002) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/fe-irc-server.c
+
+/SERVER ADD -ircnet value wasn't strdup()ed so it might have done something
+nasty, at least during quit might have crashed.
+
+------------------------------------------------------------------------
+r2616 | cras | 2002-03-14 23:46:48 +0000 (Thu, 14 Mar 2002) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/term-terminfo.c
+   M /irssi/trunk/src/fe-text/term.c
+   M /irssi/trunk/src/fe-text/term.h
+
+Get the terminal size at startup with ioctl() and use it. Fixes at least
+NetBSD.
+
+------------------------------------------------------------------------
+r2615 | cras | 2002-03-14 23:33:33 +0000 (Thu, 14 Mar 2002) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/terminfo-core.c
+
+Scrolling was buggy with "ri" method, it tried to used "rin" as well
+which crashed irssi.. Happened at least with NetBSD/sparc.
+
+------------------------------------------------------------------------
+r2614 | cras | 2002-03-14 23:01:57 +0000 (Thu, 14 Mar 2002) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/netsplit.c
+
+Fixed that "nick already in split list, how?" bug with a patch from fuchs.
+I didn't realize someone else could change nick to one in the split list. :)
+
+------------------------------------------------------------------------
+r2613 | cras | 2002-03-14 21:59:16 +0000 (Thu, 14 Mar 2002) | 4 lines
+Changed paths:
+   M /irssi/trunk/src/perl/ui/Window.xs
+
+$window->command() changed active window temporarily to wanted one and then
+back to old one. This wasn't very good idea if the old window was destroyed
+by the command..
+
+------------------------------------------------------------------------
+r2612 | cras | 2002-03-14 20:47:41 +0000 (Thu, 14 Mar 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/docs/faq.html
+
+Lost in html conversion: Q: Why does irssi autojoin on invite by default?
+
+------------------------------------------------------------------------
+r2611 | cras | 2002-03-14 11:36:31 +0000 (Thu, 14 Mar 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/irc-expandos.c
+
+$cumode and $cumode_space should do stuff only to IRC servers.
+
+------------------------------------------------------------------------
+r2610 | cras | 2002-03-14 06:44:06 +0000 (Thu, 14 Mar 2002) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-windows.c
+   M /irssi/trunk/src/fe-common/core/printtext.c
+
+Don't crash when trying to print text when there's no windows yet. Also
+print the text to stdout.
+
+------------------------------------------------------------------------
+r2609 | cras | 2002-03-14 04:51:10 +0000 (Thu, 14 Mar 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/docs/startup-HOWTO.html
+
+updated index
+
+------------------------------------------------------------------------
+r2608 | cras | 2002-03-14 04:49:43 +0000 (Thu, 14 Mar 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/docs/startup-HOWTO.html
+
+updated irssi-proxy description
+
+------------------------------------------------------------------------
+r2607 | cras | 2002-03-14 01:54:05 +0000 (Thu, 14 Mar 2002) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/core/modules-load.c
+
+Don't crash if there's no prefixes (botti doesn't) when loading module.
+Patch by aldem-irssi@aldem.net
+
+------------------------------------------------------------------------
+r2606 | cras | 2002-03-14 00:10:14 +0000 (Thu, 14 Mar 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/configure.in
+
+0.8.4.CVS version..
+
+------------------------------------------------------------------------
+r2604 | cras | 2002-03-13 04:37:37 +0000 (Wed, 13 Mar 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/NEWS
+   M /irssi/trunk/configure.in
+
+0.8.4 released
+
+------------------------------------------------------------------------
+r2603 | cras | 2002-03-13 03:30:07 +0000 (Wed, 13 Mar 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/Makefile.am
+   M /irssi/trunk/src/irc/Makefile.am
+
+"make dist" now doesn't add irc.c / irc-modules.c
+
+------------------------------------------------------------------------
+r2602 | cras | 2002-03-13 03:23:38 +0000 (Wed, 13 Mar 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/statusbar.h
+
+bit fields should be unsigned type always (unsigned int dirty:1).
+
+------------------------------------------------------------------------
+r2601 | cras | 2002-03-13 03:19:04 +0000 (Wed, 13 Mar 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/dcc/dcc-resume.c
+
+proper checking for lseek() failure
+
+------------------------------------------------------------------------
+r2600 | cras | 2002-03-13 03:15:39 +0000 (Wed, 13 Mar 2002) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-queries.c
+
+when autochanging query's nick to be correct case, don't print the
+"nick changed" message
+
+------------------------------------------------------------------------
+r2599 | cras | 2002-03-13 03:06:31 +0000 (Wed, 13 Mar 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/irc-queries.c
+
+If queried nick did a nick change, it might have crashed irssi.
+
+------------------------------------------------------------------------
+r2598 | cras | 2002-03-13 03:02:55 +0000 (Wed, 13 Mar 2002) | 9 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/Makefile.am
+
+ARGH! I hate this new behaviour of CVS not asking if I want to abort
+the message - have to RTFM to see if I can get old behaviour back :)
+
+So, this+previous commit: "make distclean" should remove irc.c and
+irc-modules.c since they're generated by configure.
+
+!user part is optional in IRC prefix, so nick@server is now handled
+correctly.
+
+------------------------------------------------------------------------
+r2597 | cras | 2002-03-13 02:59:01 +0000 (Wed, 13 Mar 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/Makefile.am
+   M /irssi/trunk/src/irc/core/irc.c
+
+*** empty log message ***
+
+------------------------------------------------------------------------
+r2596 | cras | 2002-03-13 01:57:05 +0000 (Wed, 13 Mar 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/configure.in
+
+0.8.3.CVS version now
+
+------------------------------------------------------------------------
+r2594 | cras | 2002-03-13 01:36:39 +0000 (Wed, 13 Mar 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/NEWS
+   M /irssi/trunk/configure.in
+
+0.8.3 released
+
+------------------------------------------------------------------------
+r2593 | cras | 2002-03-13 01:33:30 +0000 (Wed, 13 Mar 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/perl/perl-common.c
+
+removed the debugging code..
+
+------------------------------------------------------------------------
+r2592 | cras | 2002-03-13 01:30:20 +0000 (Wed, 13 Mar 2002) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/core/nicklist.c
+
+Set ownnick to channel->NULL when the nick record is destroyed. Should fix
+some perl script errors.
+
+------------------------------------------------------------------------
+r2591 | cras | 2002-03-13 01:21:11 +0000 (Wed, 13 Mar 2002) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/core/servers.c
+
+When IPv4 or v6 wasn't forced, irssi picked improperly IPv4 even if there
+was only v6 address.
+
+------------------------------------------------------------------------
+r2590 | cras | 2002-03-13 00:40:12 +0000 (Wed, 13 Mar 2002) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/perl/perl-common.c
+
+added some debugging code to irssi_bless_iobject() - can it really be an
+overflow? :)
+
+------------------------------------------------------------------------
+r2589 | cras | 2002-03-12 20:51:03 +0000 (Tue, 12 Mar 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/irc-servers.c
+
+fix to some broken "ircds"
+
+------------------------------------------------------------------------
+r2588 | cras | 2002-03-11 18:20:42 +0000 (Mon, 11 Mar 2002) | 4 lines
+Changed paths:
+   M /irssi/trunk/src/core/queries.c
+
+New queries should begin with last_unread_msg timestamp set to now. This
+fixes /SET autoclose_query >0 + /SET autocreate_own_query ON closing queries
+created by your /MSG almost immediately.
+
+------------------------------------------------------------------------
+r2587 | cras | 2002-03-11 18:14:29 +0000 (Mon, 11 Mar 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/proxy/Makefile.am
+
+make clean should remove libirc_proxy.a symlink
+
+------------------------------------------------------------------------
+r2586 | cras | 2002-03-11 17:14:30 +0000 (Mon, 11 Mar 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/configure.in
+
+Back .CVS versioning..
+
+------------------------------------------------------------------------
+r2584 | cras | 2002-03-11 16:46:14 +0000 (Mon, 11 Mar 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/TODO
+   M /irssi/trunk/configure.in
+
+updated for 0.8.2 release
+
+------------------------------------------------------------------------
+r2583 | cras | 2002-03-11 16:44:42 +0000 (Mon, 11 Mar 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/perl/perl-common.c
+
+added ownnick to Irssi::Channel
+
+------------------------------------------------------------------------
+r2582 | cras | 2002-03-11 05:31:00 +0000 (Mon, 11 Mar 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/docs/startup-HOWTO.html
+
+added ircii-like window settings
+
+------------------------------------------------------------------------
+r2581 | cras | 2002-03-11 05:19:25 +0000 (Mon, 11 Mar 2002) | 3 lines
+Changed paths:
+   M /irssi/trunk/docs/startup-HOWTO.html
+
+"I don't want any windows, I want it just like in ircII!" + /SET
+print_active_channel.
+
+------------------------------------------------------------------------
+r2580 | cras | 2002-03-11 04:54:57 +0000 (Mon, 11 Mar 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/autogen.sh
+   A /irssi/trunk/irssi.cvs
+
+autogen.sh complains now if it's run outside cvs.
+
+------------------------------------------------------------------------
+r2579 | cras | 2002-03-11 04:44:29 +0000 (Mon, 11 Mar 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/NEWS
+
+Updated for 0.8.2
+
+------------------------------------------------------------------------
+r2578 | cras | 2002-03-11 04:30:13 +0000 (Mon, 11 Mar 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/modes.c
+
+/SET max_wildcard_modes 0 should disable the checking
+
+------------------------------------------------------------------------
+r2577 | cras | 2002-03-11 04:21:01 +0000 (Mon, 11 Mar 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/scripts/splitlong.pl
+
+updated
+
+------------------------------------------------------------------------
+r2576 | cras | 2002-03-11 03:45:57 +0000 (Mon, 11 Mar 2002) | 4 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/formats.c
+   M /irssi/trunk/src/fe-text/gui-printtext.c
+
+default_color checks moved from fe-text to fe-common, so they work properly
+with window-specific themes. also should fix some weird problems related to
+them and gui_printtext_after().
+
+------------------------------------------------------------------------
+r2575 | cras | 2002-03-11 03:11:18 +0000 (Mon, 11 Mar 2002) | 4 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/irc-servers.c
+   M /irssi/trunk/src/irc/core/irc-servers.h
+   M /irssi/trunk/src/irc/core/irc.c
+
+Safer flood protection for lines longer than 100 chars. Maybe even a bit too
+safe but generally you write lines less than 100 chars so it shouldn't
+really matter. Calculated (2 + line_length/100) in seconds.
+
+------------------------------------------------------------------------
+r2574 | cras | 2002-03-11 02:07:05 +0000 (Mon, 11 Mar 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/statusbar.c
+
+All control chars in statusbar items are now displayed reversed.
+
+------------------------------------------------------------------------
+r2573 | cras | 2002-03-11 00:18:33 +0000 (Mon, 11 Mar 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/docs
+   M /irssi/trunk/docs/.cvsignore
+   M /irssi/trunk/scripts/examples
+   A /irssi/trunk/scripts/examples/.cvsignore
+
+updated
+
+------------------------------------------------------------------------
+r2572 | cras | 2002-03-10 21:38:10 +0000 (Sun, 10 Mar 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/fe-irc-server.c
+
+Added -4 | -6 to /SERVER ADD syntax.
+
+------------------------------------------------------------------------
+r2571 | cras | 2002-03-10 21:33:46 +0000 (Sun, 10 Mar 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/scripts/Makefile.am
+   A /irssi/trunk/scripts/mail.pl
+   A /irssi/trunk/scripts/usercount.pl
+
+new scripts
+
+------------------------------------------------------------------------
+r2570 | cras | 2002-03-10 21:30:45 +0000 (Sun, 10 Mar 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/configure.in
+   M /irssi/trunk/scripts/Makefile.am
+   A /irssi/trunk/scripts/examples/Makefile.am
+
+script updates..
+
+------------------------------------------------------------------------
+r2569 | cras | 2002-03-10 21:28:38 +0000 (Sun, 10 Mar 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/scripts/autoop.pl
+   M /irssi/trunk/scripts/autorejoin.pl
+   A /irssi/trunk/scripts/buf.pl
+   D /irssi/trunk/scripts/clones.pl
+   A /irssi/trunk/scripts/dns.pl
+   A /irssi/trunk/scripts/examples
+   A /irssi/trunk/scripts/examples/command.pl
+   A /irssi/trunk/scripts/examples/msg-event.pl
+   A /irssi/trunk/scripts/examples/redirect.pl
+   D /irssi/trunk/scripts/hello.pl
+   A /irssi/trunk/scripts/kills.pl
+   M /irssi/trunk/scripts/mlock.pl
+   D /irssi/trunk/scripts/privmsg.pl
+   M /irssi/trunk/scripts/quitmsg.pl
+   D /irssi/trunk/scripts/realname.pl
+   A /irssi/trunk/scripts/splitlong.pl
+
+added/removed some default scripts
+
+------------------------------------------------------------------------
+r2568 | cras | 2002-03-10 19:58:16 +0000 (Sun, 10 Mar 2002) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/fe-irc-server.c
+
+/SERVER ADD -ircnet should add the network to config with the same case as
+in /IRCNET list.
+
+------------------------------------------------------------------------
+r2567 | cras | 2002-03-10 19:43:35 +0000 (Sun, 10 Mar 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/term-terminfo.c
+
+whops, stupid utf-8 bug :)
+
+------------------------------------------------------------------------
+r2566 | cras | 2002-03-10 19:40:06 +0000 (Sun, 10 Mar 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-queries.c
+
+crashfix
+
+------------------------------------------------------------------------
+r2565 | cras | 2002-03-10 19:23:22 +0000 (Sun, 10 Mar 2002) | 4 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/irc-queries.c
+
+Automatically change the nick to correct case in queries (eg. you did
+/QUERY nick, and the nick really was Nick, irssi would change the query to
+Nick as well)
+
+------------------------------------------------------------------------
+r2564 | cras | 2002-03-10 19:14:04 +0000 (Sun, 10 Mar 2002) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/core/servers.c
+
+If -4 or -6 option is used with /SERVER, force the correct protocol match.
+eg. /SERVER -6 host either connects to IPv6 host or fails.
+
+------------------------------------------------------------------------
+r2563 | cras | 2002-03-10 19:03:27 +0000 (Sun, 10 Mar 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/term-terminfo.c
+
+term_addch() : utf-8 fixes for cursor positioning.
+
+------------------------------------------------------------------------
+r2562 | cras | 2002-03-10 16:36:35 +0000 (Sun, 10 Mar 2002) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/gui-readline.c
+
+When input line is in redirection mode, allow empty lines (eg. enter after
+/OPER now aborts it)
+
+------------------------------------------------------------------------
+r2561 | cras | 2002-03-10 16:23:37 +0000 (Sun, 10 Mar 2002) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/irc-queries.c
+
+If you had query with "X" but the nick really was "x", and after nick change
+to "X" you saw "X changed nick to X"
+
+------------------------------------------------------------------------
+r2560 | cras | 2002-03-10 16:15:03 +0000 (Sun, 10 Mar 2002) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/modes.c
+
+Added /SET max_wildcard_modes (default 6) - if a wildcard to /OP, /DEOP,
+/VOICE or /DEVOICE matches more nicks than this, -yes option is required.
+
+------------------------------------------------------------------------
+r2559 | cras | 2002-03-10 16:00:38 +0000 (Sun, 10 Mar 2002) | 4 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/irc-nicklist.c
+   M /irssi/trunk/src/irc/core/irc.h
+
+Added '.' to known nick flag characters. Also supports having multiple flag
+chars in /NAMES list, so eg. "@+nick" works or ".@nick" which is already
+used by some servers.
+
+------------------------------------------------------------------------
+r2558 | cras | 2002-03-10 15:46:22 +0000 (Sun, 10 Mar 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-ignore-messages.c
+
+Never ignore kick msg if you get kicked from channel.
+
+------------------------------------------------------------------------
+r2557 | cras | 2002-03-10 15:42:52 +0000 (Sun, 10 Mar 2002) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/fe-netjoin.c
+
+Netjoins in +channels were printed as if users joined to "channel" and all
+of them had ops, so the message always went to status/active window.
+
+------------------------------------------------------------------------
+r2556 | cras | 2002-03-10 15:20:44 +0000 (Sun, 10 Mar 2002) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/core/core.c
+   M /irssi/trunk/src/core/core.h
+   M /irssi/trunk/src/fe-text/irssi.c
+
+SIGHUP now does /RELOAD - useful with for example /SBAR prompt DISABLE when
+you don't have an input line to recover :)
+
+------------------------------------------------------------------------
+r2555 | cras | 2002-03-10 15:12:13 +0000 (Sun, 10 Mar 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-channels.c
+
+/CYCLE tried to do /PART twice.
+
+------------------------------------------------------------------------
+r2554 | cras | 2002-03-10 15:07:57 +0000 (Sun, 10 Mar 2002) | 4 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-core-commands.c
+
+/CAT prints files now with CLIENTCRAP + NEVER level, so timestamps aren't
+printed. Also since /AWAY prints the awaylog using /CAT, we don't get
+timestamps there either now.
+
+------------------------------------------------------------------------
+r2553 | cras | 2002-03-10 14:55:46 +0000 (Sun, 10 Mar 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/default.theme
+   M /irssi/trunk/src/fe-common/core/formats.c
+   M /irssi/trunk/src/fe-common/core/formats.h
+   M /irssi/trunk/src/fe-common/core/keyboard.c
+   M /irssi/trunk/src/fe-common/core/printtext.c
+   M /irssi/trunk/src/fe-common/core/themes.c
+   M /irssi/trunk/src/fe-common/core/themes.h
+
+*** empty log message ***
+
+------------------------------------------------------------------------
+r2552 | cras | 2002-03-10 14:46:40 +0000 (Sun, 10 Mar 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-channels.c
+
+/CYCLE reason didn't work
+
+------------------------------------------------------------------------
+r2551 | cras | 2002-03-10 14:31:07 +0000 (Sun, 10 Mar 2002) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/irc-commands.c
+   M /irssi/trunk/src/irc/core/irc-servers.h
+
+/KNOCKOUT code was a bit stupid, and the timeout checking wasn't very
+/accurate.
+
+------------------------------------------------------------------------
+r2550 | cras | 2002-03-10 14:28:08 +0000 (Sun, 10 Mar 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/chatnets.c
+
+Don't send -autosendcmd after /UPGRADE.
+
+------------------------------------------------------------------------
+r2549 | cras | 2002-03-10 14:24:08 +0000 (Sun, 10 Mar 2002) | 4 lines
+Changed paths:
+   M /irssi/trunk/src/core/query-rec.h
+   M /irssi/trunk/src/fe-common/core/fe-queries.c
+
+/SET autoclose_query - now only last received private message affects when
+the query is closed, ie. /WHOIS requests or nick changes don't reset the
+counter.
+
+------------------------------------------------------------------------
+r2548 | cras | 2002-03-10 14:22:59 +0000 (Sun, 10 Mar 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/formats.c
+
+Foreground ANSI colors weren't working
+
+------------------------------------------------------------------------
+r2547 | cras | 2002-03-10 14:02:33 +0000 (Sun, 10 Mar 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/irssi.conf
+   M /irssi/trunk/src/fe-text/statusbar-items.c
+
+No more infobar, but in empty windows topicbar contains the URL.
+
+------------------------------------------------------------------------
+r2546 | cras | 2002-03-09 18:57:35 +0000 (Sat, 09 Mar 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/docs/faq.html
+
+Added missing Q/A :)
+
+------------------------------------------------------------------------
+r2545 | cras | 2002-03-09 18:56:57 +0000 (Sat, 09 Mar 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/docs/faq.html
+
+added utf8 help
+
+------------------------------------------------------------------------
+r2544 | cras | 2002-03-09 17:54:38 +0000 (Sat, 09 Mar 2002) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/term-terminfo.c
+
+Irssi didn't work properly if read() returned only partial utf8 character
+string.
+
+------------------------------------------------------------------------
+r2543 | cras | 2002-03-09 12:17:32 +0000 (Sat, 09 Mar 2002) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/perl/common/Irssi.pm
+
+"use Irssi" now prints a warning if it's used outside irssi, but doesn't
+die.
+
+------------------------------------------------------------------------
+r2542 | cras | 2002-03-09 10:09:37 +0000 (Sat, 09 Mar 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/docs/faq.html
+
+added title
+
+------------------------------------------------------------------------
+r2541 | cras | 2002-03-09 10:06:42 +0000 (Sat, 09 Mar 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/autogen.sh
+   M /irssi/trunk/docs/Makefile.am
+   A /irssi/trunk/docs/faq.html
+   D /irssi/trunk/docs/faq.txt
+
+FAQ is now in HTML format. Patch by Han.
+
+------------------------------------------------------------------------
+r2540 | cras | 2002-03-09 09:25:06 +0000 (Sat, 09 Mar 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/gui-readline.c
+
+Fixed a memory leak with ^Y
+
+------------------------------------------------------------------------
+r2539 | cras | 2002-03-08 21:04:59 +0000 (Fri, 08 Mar 2002) | 4 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/gui-printtext.c
+   M /irssi/trunk/src/fe-text/term.c
+
+/SET mirc_blink_fix - if ON, the bright/blink bit is stripped from MIRC
+colors. Set this to ON, if your terminal shows bright background colors
+as blinking. Patch by pv2b
+
+------------------------------------------------------------------------
+r2538 | cras | 2002-03-08 18:40:43 +0000 (Fri, 08 Mar 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/modes.c
+
+/OP etc. shouldn't crash if channel hadn't received /NAMES list yet.
+
+------------------------------------------------------------------------
+r2537 | cras | 2002-03-06 23:49:16 +0000 (Wed, 06 Mar 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/docs/faq.txt
+
+"Why does irssi autojoin on invite by default?"
+
+------------------------------------------------------------------------
+r2536 | cras | 2002-03-06 14:43:42 +0000 (Wed, 06 Mar 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/docs/help/in/connect.in
+   M /irssi/trunk/docs/help/in/server.in
+
+added -! option help, by c0ffee
+
+------------------------------------------------------------------------
+r2535 | cras | 2002-03-04 21:49:08 +0000 (Mon, 04 Mar 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/docs/startup-HOWTO.html
+
+added info about /set term_force_colors to lazy people section
+
+------------------------------------------------------------------------
+r2534 | cras | 2002-03-01 19:56:50 +0000 (Fri, 01 Mar 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/perl/Makefile.am
+
+scripts should be looked from share dir, not lib dir.
+
+------------------------------------------------------------------------
+r2533 | cras | 2002-03-01 19:33:45 +0000 (Fri, 01 Mar 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/docs/help/in/ignore.in
+
+added notice of man 7 regex
+
+------------------------------------------------------------------------
+r2532 | cras | 2002-02-28 14:26:02 +0000 (Thu, 28 Feb 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/docs/startup-HOWTO.html
+
+added psybnc section
+
+------------------------------------------------------------------------
+r2531 | cras | 2002-02-25 20:25:08 +0000 (Mon, 25 Feb 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/README.cygwin
+
+updated
+
+------------------------------------------------------------------------
+r2530 | cras | 2002-02-25 17:48:08 +0000 (Mon, 25 Feb 2002) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/themes.c
+
+/FORMAT tab completion went to infinite loop if there was more spaces than
+one in the line..
+
+------------------------------------------------------------------------
+r2529 | cras | 2002-02-25 17:28:55 +0000 (Mon, 25 Feb 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/gui-entry.c
+
+^Y shouldn't crash with empty cutbuffer
+
+------------------------------------------------------------------------
+r2528 | cras | 2002-02-25 14:50:49 +0000 (Mon, 25 Feb 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/docs/perl.txt
+
+command() fixes
+
+------------------------------------------------------------------------
+r2527 | cras | 2002-02-23 23:08:36 +0000 (Sat, 23 Feb 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/docs/perl.txt
+
+updated nick_find(), added nick_find_mask()
+
+------------------------------------------------------------------------
+r2526 | cras | 2002-02-22 13:12:33 +0000 (Fri, 22 Feb 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/mainwindows.c
+   M /irssi/trunk/src/fe-text/module-formats.c
+   M /irssi/trunk/src/fe-text/module-formats.h
+
+Show window's scroll state with /WINDOW.
+
+------------------------------------------------------------------------
+r2525 | cras | 2002-02-22 13:04:07 +0000 (Fri, 22 Feb 2002) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-windows.c
+
+Window level matching code was a bit messy. Also, now the active window is
+preferred if there's multiple matches by the same level.
+
+------------------------------------------------------------------------
+r2524 | cras | 2002-02-22 12:56:24 +0000 (Fri, 22 Feb 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/themes.c
+
+Highascii chars in replaces block in theme files could have crashed irssi.
+
+------------------------------------------------------------------------
+r2523 | cras | 2002-02-20 18:12:45 +0000 (Wed, 20 Feb 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/session.c
+
+/UPGRADE saves now topic_time and topic_by.
+
+------------------------------------------------------------------------
+r2522 | cras | 2002-02-20 15:21:50 +0000 (Wed, 20 Feb 2002) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/irc/proxy/listen.c
+
+PROXY CTCP ON|OFF - proxy clients can send this command to specify that they
+want to handle the received CTCP requests.
+
+------------------------------------------------------------------------
+r2521 | cras | 2002-02-20 15:03:53 +0000 (Wed, 20 Feb 2002) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/irc-expandos.c
+
+$cumode wasn't updated after receiving nick list, so with empty channels it
+didn't contain @ immediately.
+
+------------------------------------------------------------------------
+r2520 | cras | 2002-02-20 12:46:45 +0000 (Wed, 20 Feb 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/gui-entry.c
+   M /irssi/trunk/src/fe-text/gui-entry.h
+   M /irssi/trunk/src/fe-text/gui-readline.c
+
+Backspace/delete shouldn't modify cutbuffer.
+
+------------------------------------------------------------------------
+r2519 | cras | 2002-02-20 12:44:23 +0000 (Wed, 20 Feb 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/gui-entry.c
+
+stupid bug :) lines longer than 1024 chars made irssi crash.
+
+------------------------------------------------------------------------
+r2518 | cras | 2002-02-18 21:12:55 +0000 (Mon, 18 Feb 2002) | 3 lines
+Changed paths:
+   D /irssi/trunk/docs/help/in/perlflush.in
+   D /irssi/trunk/docs/help/in/run.in
+
+there's no /RUN or /PERLFLUSH commands anymore. someone could write /HELP
+script ;)
+
+------------------------------------------------------------------------
+r2517 | cras | 2002-02-18 20:59:40 +0000 (Mon, 18 Feb 2002) | 3 lines
+Changed paths:
+   M /irssi/trunk/docs/help/in/bind.in
+   M /irssi/trunk/src/fe-text/gui-readline.c
+
+Added escape_char /BIND command for inserting the next keypress to input
+line.
+
+------------------------------------------------------------------------
+r2516 | cras | 2002-02-18 19:48:35 +0000 (Mon, 18 Feb 2002) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/core/network.c
+
+if gethostbyname() failed, the return value was returned incorrectly
+(accidentally cvs committed it after some of my test)
+
+------------------------------------------------------------------------
+r2515 | cras | 2002-02-18 10:29:53 +0000 (Mon, 18 Feb 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/docs/startup-HOWTO.html
+
+updated proxy docs
+
+------------------------------------------------------------------------
+r2514 | cras | 2002-02-18 09:08:12 +0000 (Mon, 18 Feb 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/docs/startup-HOWTO.html
+
+missing </dl>
+
+------------------------------------------------------------------------
+r2513 | cras | 2002-02-18 09:07:09 +0000 (Mon, 18 Feb 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/docs/startup-HOWTO.html
+
+minor updates
+
+------------------------------------------------------------------------
+r2512 | cras | 2002-02-18 09:00:26 +0000 (Mon, 18 Feb 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/docs/startup-HOWTO.html
+
+added statusbar help
+
+------------------------------------------------------------------------
+r2511 | cras | 2002-02-17 20:20:52 +0000 (Sun, 17 Feb 2002) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/fe-events-numeric.c
+
+Some events that contained target parameter weren't printed to correct
+window (eg. end of bans).
+
+------------------------------------------------------------------------
+r2510 | cras | 2002-02-17 19:41:34 +0000 (Sun, 17 Feb 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/network.c
+
+still one isxdigit() -> i_isxdigit()
+
+------------------------------------------------------------------------
+r2509 | cras | 2002-02-17 18:05:25 +0000 (Sun, 17 Feb 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/term-terminfo.c
+
+compiler warning fix
+
+------------------------------------------------------------------------
+r2508 | cras | 2002-02-17 17:53:11 +0000 (Sun, 17 Feb 2002) | 4 lines
+Changed paths:
+   M /irssi/trunk/configure.in
+
+COMMON_NOUI_LIBS shouldn't include $INTLLIBS, it's not needed anymore and
+it's not even set anywhere, except in local environemnt where it may break
+make..
+
+------------------------------------------------------------------------
+r2507 | cras | 2002-02-17 17:19:56 +0000 (Sun, 17 Feb 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/Makefile.am
+
+findsyntax.pl should be in dist as well..
+
+------------------------------------------------------------------------
+r2506 | cras | 2002-02-17 17:12:56 +0000 (Sun, 17 Feb 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/configure.in
+
+version number update to 0.8.1.CVS
+
+------------------------------------------------------------------------
+r2505 | cras | 2002-02-17 17:03:24 +0000 (Sun, 17 Feb 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/INSTALL
+
+added some information about ipv6 resolving
+
+------------------------------------------------------------------------
+r2503 | cras | 2002-02-17 15:47:04 +0000 (Sun, 17 Feb 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/NEWS
+   M /irssi/trunk/configure.in
+
+0.8.1 release :)
+
+------------------------------------------------------------------------
+r2502 | cras | 2002-02-17 15:42:07 +0000 (Sun, 17 Feb 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/term-curses.c
+   M /irssi/trunk/src/fe-text/term-terminfo.c
+   M /irssi/trunk/src/fe-text/term.c
+
+--disable-terminfo didn't work
+
+------------------------------------------------------------------------
+r2501 | cras | 2002-02-17 15:37:41 +0000 (Sun, 17 Feb 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/formats.c
+
+Another crashfix
+
+------------------------------------------------------------------------
+r2500 | cras | 2002-02-17 14:42:53 +0000 (Sun, 17 Feb 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/gui-printtext.c
+
+fixed a compiler warning
+
+------------------------------------------------------------------------
+r2499 | cras | 2002-02-17 14:41:38 +0000 (Sun, 17 Feb 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/log.c
+
+Log writing sometimes might have produced some glib errors.
+
+------------------------------------------------------------------------
+r2498 | cras | 2002-02-17 14:25:10 +0000 (Sun, 17 Feb 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/gui-readline.c
+   M /irssi/trunk/src/fe-text/utf8.c
+   M /irssi/trunk/src/fe-text/utf8.h
+
+compiler warning fixes
+
+------------------------------------------------------------------------
+r2497 | cras | 2002-02-17 14:00:34 +0000 (Sun, 17 Feb 2002) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/formats.c
+
+"whops" :) ^D<char> as last chars in line made some screen corruption and
+maybe even could have crashed
+
+------------------------------------------------------------------------
+r2496 | cras | 2002-02-17 12:51:56 +0000 (Sun, 17 Feb 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/configure.in
+
+updated version number to 0.8.0.CVS again
+
+------------------------------------------------------------------------
+r2495 | cras | 2002-02-17 12:43:39 +0000 (Sun, 17 Feb 2002) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/lib-popt/popthelp.c
+
+--help printed part of the path for irssi which looked stupid, now it prints
+only the binary name. patch by tommik.
+
+------------------------------------------------------------------------
+r2494 | cras | 2002-02-17 11:58:41 +0000 (Sun, 17 Feb 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/configure.in
+
+-lcurses was added twice when linking (or worse, -lncurses and -lcurses)
+
+------------------------------------------------------------------------
+r2493 | cras | 2002-02-17 11:30:50 +0000 (Sun, 17 Feb 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/Makefile.am
+
+syntax.pl should be included with release
+
+------------------------------------------------------------------------
+r2492 | cras | 2002-02-17 10:45:25 +0000 (Sun, 17 Feb 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/TODO
+   A /irssi/trunk/docs/help/in/upgrade.in
+
+Added /HELP upgrade
+
+------------------------------------------------------------------------
+r2491 | cras | 2002-02-17 10:41:22 +0000 (Sun, 17 Feb 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/TODO
+
+updated
+
+------------------------------------------------------------------------
+r2490 | cras | 2002-02-17 10:09:04 +0000 (Sun, 17 Feb 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/gui-readline.c
+
+Added ^I = "tab" key.
+
+------------------------------------------------------------------------
+r2489 | cras | 2002-02-17 09:47:51 +0000 (Sun, 17 Feb 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/irssi.conf
+
+Added GIMPNet, reformatted to look exactly the same as it gets when /SAVEd.
+
+------------------------------------------------------------------------
+r2488 | cras | 2002-02-17 09:37:23 +0000 (Sun, 17 Feb 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/special-vars.c
+   M /irssi/trunk/src/fe-common/core/themes.c
+
+Don't crash if special vars line ends with '$'.
+
+------------------------------------------------------------------------
+r2487 | cras | 2002-02-16 15:10:27 +0000 (Sat, 16 Feb 2002) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/statusbar-config.c
+
+Added /STATUSBAR # RESET command for removing the whole statusbar block from
+config file.
+
+------------------------------------------------------------------------
+r2486 | cras | 2002-02-16 14:10:54 +0000 (Sat, 16 Feb 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/NEWS
+   M /irssi/trunk/configure.in
+
+getting ready for v0.8.0 release
+
+------------------------------------------------------------------------
+r2485 | cras | 2002-02-16 14:10:08 +0000 (Sat, 16 Feb 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/TODO
+
+updated
+
+------------------------------------------------------------------------
+r2484 | cras | 2002-02-16 13:33:17 +0000 (Sat, 16 Feb 2002) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/chat-completion.c
+   M /irssi/trunk/src/fe-common/irc/fe-irc-commands.c
+
+/ACTION supports -servertag now and tab completion works with it like with
+/MSG.
+
+------------------------------------------------------------------------
+r2483 | cras | 2002-02-16 13:32:53 +0000 (Sat, 16 Feb 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/chat-commands.c
+
+Removed useless casting.
+
+------------------------------------------------------------------------
+r2482 | cras | 2002-02-16 13:19:05 +0000 (Sat, 16 Feb 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/docs/faq.txt
+
+Added Q/A for autorejoin + public aways
+
+------------------------------------------------------------------------
+r2481 | cras | 2002-02-16 13:06:57 +0000 (Sat, 16 Feb 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/scripts/autorejoin.pl
+
+added /SET autorejoin_channels
+
+------------------------------------------------------------------------
+r2480 | cras | 2002-02-16 12:52:19 +0000 (Sat, 16 Feb 2002) | 2 lines
+Changed paths:
+   A /irssi/trunk/INSTALL
+   M /irssi/trunk/README
+   M /irssi/trunk/docs/perl.txt
+
+Added real installation instructions to INSTALL file.
+
+------------------------------------------------------------------------
+r2479 | cras | 2002-02-16 12:27:57 +0000 (Sat, 16 Feb 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/docs/faq.txt
+   M /irssi/trunk/docs/startup-HOWTO.html
+
+updates
+
+------------------------------------------------------------------------
+r2478 | cras | 2002-02-16 12:08:58 +0000 (Sat, 16 Feb 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/docs/startup-HOWTO.html
+
+added /bind section.
+
+------------------------------------------------------------------------
+r2477 | cras | 2002-02-16 12:08:45 +0000 (Sat, 16 Feb 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/docs/help/in/bind.in
+
+updated
+
+------------------------------------------------------------------------
+r2476 | cras | 2002-02-16 11:30:32 +0000 (Sat, 16 Feb 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/docs/startup-HOWTO.html
+
+a bit more proxy updates
+
+------------------------------------------------------------------------
+r2475 | cras | 2002-02-16 11:24:50 +0000 (Sat, 16 Feb 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/docs/startup-HOWTO.html
+
+added bnc and dircproxy settings
+
+------------------------------------------------------------------------
+r2474 | cras | 2002-02-16 10:46:35 +0000 (Sat, 16 Feb 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/irssi.conf
+
+added INVITELIST alias.
+
+------------------------------------------------------------------------
+r2473 | cras | 2002-02-16 10:41:32 +0000 (Sat, 16 Feb 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/irc-session.c
+
+server->emode_known wasn't saved during /UPGRADE.
+
+------------------------------------------------------------------------
+r2472 | cras | 2002-02-16 10:39:20 +0000 (Sat, 16 Feb 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/docs/perl.txt
+
+updated
+
+------------------------------------------------------------------------
+r2471 | cras | 2002-02-16 10:11:00 +0000 (Sat, 16 Feb 2002) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/gui-entry.c
+
+Cutbuffer should be cleared when ^U is used in empty line (or in general, 0
+chars is erased)
+
+------------------------------------------------------------------------
+r2470 | cras | 2002-02-16 09:26:05 +0000 (Sat, 16 Feb 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/docs/faq.txt
+
+updated
+
+------------------------------------------------------------------------
+r2469 | cras | 2002-02-16 07:37:31 +0000 (Sat, 16 Feb 2002) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/gui-readline.c
+
+Don't crash when handling input line if the input line doesn't exist (huh?
+how? no idea :)
+
+------------------------------------------------------------------------
+r2468 | cras | 2002-02-16 07:30:57 +0000 (Sat, 16 Feb 2002) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/module-formats.c
+   M /irssi/trunk/src/fe-text/module-formats.h
+   M /irssi/trunk/src/fe-text/statusbar-config.c
+
+/STATUSBAR now prints a list of statusbars, /STATUSBAR <name> prints
+statusbar info.
+
+------------------------------------------------------------------------
+r2467 | cras | 2002-02-16 06:56:31 +0000 (Sat, 16 Feb 2002) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/bans.c
+
+There was the check for max. 10 chars/ban, but for some reason it was 11 in
+code :)
+
+------------------------------------------------------------------------
+r2466 | cras | 2002-02-16 06:48:35 +0000 (Sat, 16 Feb 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/statusbar-config.c
+
+/STATUSBAR # VISIBLE command didn't work properly
+
+------------------------------------------------------------------------
+r2465 | cras | 2002-02-16 00:08:47 +0000 (Sat, 16 Feb 2002) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/themes.c
+   M /irssi/trunk/src/fe-text/statusbar-config.c
+
+/RELOAD didn't update the statusbar colors the first time. /SET theme never
+changed the statusbar colors.
+
+------------------------------------------------------------------------
+r2464 | cras | 2002-02-15 23:15:25 +0000 (Fri, 15 Feb 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/statusbar-config.c
+
+command_unbind("statusbar add") was called with wrong function parameter.
+
+------------------------------------------------------------------------
+r2463 | cras | 2002-02-15 22:42:09 +0000 (Fri, 15 Feb 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/statusbar-config.c
+
+case-insensitivity for /STATUSBAR command
+
+------------------------------------------------------------------------
+r2462 | cras | 2002-02-15 22:22:46 +0000 (Fri, 15 Feb 2002) | 2 lines
+Changed paths:
+   A /irssi/trunk/docs/help/in/statusbar.in
+   M /irssi/trunk/src/fe-text/statusbar-config.c
+
+Added _very_ small help for /statusbar + their SYNTAXes.
+
+------------------------------------------------------------------------
+r2461 | cras | 2002-02-15 22:18:48 +0000 (Fri, 15 Feb 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/module-formats.c
+   M /irssi/trunk/src/fe-text/module-formats.h
+   M /irssi/trunk/src/fe-text/statusbar-config.c
+
+More statusbar commands.
+
+------------------------------------------------------------------------
+r2460 | cras | 2002-02-15 22:18:35 +0000 (Fri, 15 Feb 2002) | 4 lines
+Changed paths:
+   M /irssi/trunk/src/core/channels-setup.c
+   M /irssi/trunk/src/core/servers-setup.c
+   M /irssi/trunk/src/lib-config/get.c
+   M /irssi/trunk/src/lib-config/iconfig.h
+   M /irssi/trunk/src/lib-config/set.c
+
+renamed old config_node_index() to config_node_nth(). added new
+config_node_index() function. added config_node_section_index() for
+adding/moving node to specified position in list.
+
+------------------------------------------------------------------------
+r2459 | cras | 2002-02-15 21:42:31 +0000 (Fri, 15 Feb 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/module-formats.c
+   M /irssi/trunk/src/fe-text/module-formats.h
+   M /irssi/trunk/src/fe-text/statusbar-config.c
+   M /irssi/trunk/src/fe-text/statusbar.c
+   M /irssi/trunk/src/fe-text/statusbar.h
+
+Added /STATUSBAR commands for most commonly used tasks.
+
+------------------------------------------------------------------------
+r2458 | cras | 2002-02-15 19:33:05 +0000 (Fri, 15 Feb 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/term.c
+
+Disable the nl_langinfo() if CODESET isn't defined (openbsd).
+
+------------------------------------------------------------------------
+r2457 | cras | 2002-02-15 18:39:32 +0000 (Fri, 15 Feb 2002) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/statusbar-items.c
+
+/SET term_type didn't take effect on entry until the second time it was
+changed.
+
+------------------------------------------------------------------------
+r2456 | cras | 2002-02-15 18:20:03 +0000 (Fri, 15 Feb 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/gui-entry.c
+
+don't crash if trying to erase 0 chars and there's no cutbuffer.
+
+------------------------------------------------------------------------
+r2455 | cras | 2002-02-15 16:24:53 +0000 (Fri, 15 Feb 2002) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/fe-ctcp.c
+
+Allow still showing ping time even if client replied with only one ping
+parameter.
+
+------------------------------------------------------------------------
+r2454 | cras | 2002-02-15 16:02:14 +0000 (Fri, 15 Feb 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/gui-entry.c
+   M /irssi/trunk/src/fe-text/gui-entry.h
+   M /irssi/trunk/src/fe-text/gui-readline.c
+
+transpose_characters was broken
+
+------------------------------------------------------------------------
+r2453 | cras | 2002-02-15 15:54:59 +0000 (Fri, 15 Feb 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/gui-readline.c
+
+added meta-f and meta-b for forward/backward word
+
+------------------------------------------------------------------------
+r2452 | cras | 2002-02-15 14:54:00 +0000 (Fri, 15 Feb 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-windows.c
+
+Added /SET window_check_level_first and /SET window_default_level. This allows you to keep all messages with specific level in it's own window, even if it was supposed to be printed in channel window. patch by mike@po.cs.msu.su
+
+------------------------------------------------------------------------
+r2451 | cras | 2002-02-15 14:42:14 +0000 (Fri, 15 Feb 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/configure.in
+   M /irssi/trunk/src/fe-text/term.c
+
+UTF-8 is now automatically used if locale is set properly.
+
+------------------------------------------------------------------------
+r2450 | cras | 2002-02-15 14:09:10 +0000 (Fri, 15 Feb 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/utf8.c
+
+get_utf8_char() was buggy
+
+------------------------------------------------------------------------
+r2449 | cras | 2002-02-15 14:04:10 +0000 (Fri, 15 Feb 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/statusbar.c
+
+Statusbar wasn't always properly cleared when there was right-aligned items.
+
+------------------------------------------------------------------------
+r2448 | cras | 2002-02-15 13:38:24 +0000 (Fri, 15 Feb 2002) | 6 lines
+Changed paths:
+   M /irssi/trunk/configure.in
+   M /irssi/trunk/src/fe-text/gui-entry.c
+   M /irssi/trunk/src/fe-text/gui-entry.h
+   M /irssi/trunk/src/fe-text/gui-expandos.c
+   M /irssi/trunk/src/fe-text/gui-readline.c
+   M /irssi/trunk/src/fe-text/gui-windows.c
+   M /irssi/trunk/src/fe-text/module.h
+   M /irssi/trunk/src/fe-text/statusbar-items.c
+   M /irssi/trunk/src/fe-text/term-terminfo.c
+   M /irssi/trunk/src/fe-text/term.c
+   M /irssi/trunk/src/fe-text/term.h
+   M /irssi/trunk/src/fe-text/textbuffer-view.c
+   M /irssi/trunk/src/fe-text/utf8.c
+   M /irssi/trunk/src/fe-text/utf8.h
+
+/SET term_type 8bit|utf8|big5 - Removed --with-big5 configure option, it's
+now included the same way as utf8, though i'm not sure if it really works
+but at least it should partially :) Input line is now internally using 32bit
+chars but it's converted to 8bit chars for external use. Text buffer
+supports only 8bit + utf8 for now.
+
+------------------------------------------------------------------------
+r2447 | cras | 2002-02-15 09:31:25 +0000 (Fri, 15 Feb 2002) | 4 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/statusbar-items.c
+
+A bit kludge fix for perl statusbar items breaking prompt changes at
+startup. Now the entry isn't destroyed until the statusbar is, and there can
+be only one entry per statusbar (well, who would want more anyway :)
+
+------------------------------------------------------------------------
+r2446 | cras | 2002-02-15 09:22:35 +0000 (Fri, 15 Feb 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/textbuffer.c
+
+/LAST -before didn't print the separators.
+
+------------------------------------------------------------------------
+r2445 | cras | 2002-02-15 09:05:45 +0000 (Fri, 15 Feb 2002) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/Makefile.am
+   M /irssi/trunk/src/fe-common/core/fe-common-core.c
+   M /irssi/trunk/src/fe-common/core/window-activity.c
+   A /irssi/trunk/src/fe-common/core/window-activity.h
+   M /irssi/trunk/src/perl/ui/Window.xs
+
+window_activity() and window_item_activity() are now public. Added them to
+perl as well.
+
+------------------------------------------------------------------------
+r2444 | cras | 2002-02-15 08:37:06 +0000 (Fri, 15 Feb 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/channels.c
+   M /irssi/trunk/src/core/core.c
+   M /irssi/trunk/src/core/queries.c
+
+fixed module_uniq_destroy() calls
+
+------------------------------------------------------------------------
+r2443 | cras | 2002-02-15 08:31:35 +0000 (Fri, 15 Feb 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/configure.in
+
+Yell if gmodule doesn't work
+
+------------------------------------------------------------------------
+r2442 | cras | 2002-02-15 08:26:12 +0000 (Fri, 15 Feb 2002) | 4 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/irc-session.c
+
+server->real_address wasn't restored properly after /UPGRADE and that
+started to raise lag (or maybe crash). Also removed some backwards
+compatibility code.
+
+------------------------------------------------------------------------
+r2441 | cras | 2002-02-15 07:31:25 +0000 (Fri, 15 Feb 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-channels.c
+   M /irssi/trunk/src/fe-common/core/module-formats.c
+   M /irssi/trunk/src/fe-common/irc/fe-events-numeric.c
+
+Some /NAMES fixes
+
+------------------------------------------------------------------------
+r2440 | cras | 2002-02-13 16:05:47 +0000 (Wed, 13 Feb 2002) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/irc-servers.c
+
+the last 001 fix was useless, removed the if() part so now the real_address
+is changed every time 001 is received :)
+
+------------------------------------------------------------------------
+r2439 | cras | 2002-02-13 15:36:40 +0000 (Wed, 13 Feb 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-channels.c
+   M /irssi/trunk/src/fe-common/core/module-formats.c
+
+added user counts parameters to /NAMES header (not used by default), header/footer is printed with CLIENTCRAP, not CRAP level. patch by zinx@magenet.net
+
+------------------------------------------------------------------------
+r2438 | cras | 2002-02-13 15:31:57 +0000 (Wed, 13 Feb 2002) | 3 lines
+Changed paths:
+   M /irssi/trunk/docs/signals.txt
+   M /irssi/trunk/src/fe-common/irc/fe-ctcp.c
+   M /irssi/trunk/src/fe-common/irc/fe-irc-messages.c
+   M /irssi/trunk/src/fe-common/irc/module-formats.c
+   M /irssi/trunk/src/fe-common/irc/module-formats.h
+
+Separated ctcp command/data in "message irc ctcp" signal and format. Added
+/FORMAT ctcp_requestd_unknown.
+
+------------------------------------------------------------------------
+r2437 | cras | 2002-02-13 15:11:47 +0000 (Wed, 13 Feb 2002) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/irc-servers.c
+
+001 event should free real_address if it already existed. this might happen
+with for example irc bouncers.
+
+------------------------------------------------------------------------
+r2436 | cras | 2002-02-13 15:08:28 +0000 (Wed, 13 Feb 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/netsplit.c
+
+updated the glib error message with netsplits
+
+------------------------------------------------------------------------
+r2435 | cras | 2002-02-13 14:09:21 +0000 (Wed, 13 Feb 2002) | 4 lines
+Changed paths:
+   M /irssi/trunk/src/core/commands.c
+   M /irssi/trunk/src/core/commands.h
+
+PARAM_FLAG_OPTCHAN_NAME check didn't work properly and it was always
+assumed, so * didn't work as channel parameter. also changed the how
+PARAM_FLAG_OPTCHAN_NAME was defined.
+
+------------------------------------------------------------------------
+r2434 | cras | 2002-02-13 10:09:05 +0000 (Wed, 13 Feb 2002) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/chat-completion.c
+
+That msg completion nick thing broke some other completions in msgs window,
+like /SET.
+
+------------------------------------------------------------------------
+r2433 | cras | 2002-02-13 07:16:02 +0000 (Wed, 13 Feb 2002) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/printtext.c
+
+don't update window->last_line timestamp with MSGLEVEL_NEVER text, so >1d
+/SET autoclose_query setting works with "day changed" messagse.
+
+------------------------------------------------------------------------
+r2432 | cras | 2002-02-12 03:04:34 +0000 (Tue, 12 Feb 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/misc.c
+
+missed isxdigit() -> i_isxdigit() change
+
+------------------------------------------------------------------------
+r2431 | cras | 2002-02-11 16:19:00 +0000 (Mon, 11 Feb 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/fe-events-numeric.c
+
+stupid format string bugs. wasn't there long though :)
+
+------------------------------------------------------------------------
+r2430 | cras | 2002-02-11 09:13:17 +0000 (Mon, 11 Feb 2002) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/chat-completion.c
+
+In msgs window, you can now complete anywhere /MSG completion nicks (eg.
+/ignore nick<tab>)
+
+------------------------------------------------------------------------
+r2429 | cras | 2002-02-11 08:23:02 +0000 (Mon, 11 Feb 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/hilight-text.c
+
+-actcolor %n now means that the activity isn't changed.
+
+------------------------------------------------------------------------
+r2428 | cras | 2002-02-11 07:58:24 +0000 (Mon, 11 Feb 2002) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/window-commands.c
+
+"/WINDOW IMMORTAL" shows the mortal-state. Error messages are printed in
+active window.
+
+------------------------------------------------------------------------
+r2427 | cras | 2002-02-10 18:42:23 +0000 (Sun, 10 Feb 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/dcc/fe-dcc-get.c
+   M /irssi/trunk/src/fe-common/irc/dcc/module-formats.c
+   M /irssi/trunk/src/fe-common/irc/dcc/module-formats.h
+   M /irssi/trunk/src/irc/dcc/dcc-get.c
+
+Correctly handle DCC GET write() failures.
+
+------------------------------------------------------------------------
+r2426 | cras | 2002-02-10 15:10:24 +0000 (Sun, 10 Feb 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/default.theme
+
+Default background color for prompt statusbar should be %n, not %0.
+
+------------------------------------------------------------------------
+r2425 | cras | 2002-02-10 15:09:58 +0000 (Sun, 10 Feb 2002) | 4 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/themes.c
+
+theme_format_compress_colors() doesn't assume the default color as %n
+anymore. This is useful at least when you want to set statusbar background
+color to %n so it won't be compressed to ""..
+
+------------------------------------------------------------------------
+r2424 | cras | 2002-02-10 15:01:00 +0000 (Sun, 10 Feb 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/term-terminfo.c
+
+atexit(term_deinit)
+
+------------------------------------------------------------------------
+r2423 | cras | 2002-02-10 15:00:15 +0000 (Sun, 10 Feb 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/windows-layout.c
+
+Layout save support for immortality..
+
+------------------------------------------------------------------------
+r2422 | cras | 2002-02-10 14:59:36 +0000 (Sun, 10 Feb 2002) | 4 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-common-core.c
+   M /irssi/trunk/src/fe-common/core/fe-windows.c
+   M /irssi/trunk/src/fe-common/core/fe-windows.h
+   M /irssi/trunk/src/fe-common/core/module-formats.c
+   M /irssi/trunk/src/fe-common/core/module-formats.h
+   M /irssi/trunk/src/fe-common/core/window-commands.c
+   M /irssi/trunk/src/perl/ui/UI.xs
+
+Support for "immortal" windows, that can't be closed until explicitly set to
+mortal with /WINDOW IMMORTAL OFF. Status and msgs windows are immortal by
+default.
+
+------------------------------------------------------------------------
+r2421 | cras | 2002-02-10 14:53:55 +0000 (Sun, 10 Feb 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-log.c
+
+Changed some clientnotices to clienterrors
+
+------------------------------------------------------------------------
+r2420 | cras | 2002-02-10 14:35:21 +0000 (Sun, 10 Feb 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/common.h
+   M /irssi/trunk/src/core/settings.c
+
+Added IRSSI_GLOBAL_CONFIG as well
+
+------------------------------------------------------------------------
+r2419 | cras | 2002-02-10 14:33:42 +0000 (Sun, 10 Feb 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/common.h
+   M /irssi/trunk/src/core/core.c
+
+added #define IRSSI_HOME_CONFIG
+
+------------------------------------------------------------------------
+r2418 | cras | 2002-02-10 14:21:29 +0000 (Sun, 10 Feb 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/gui-printtext.c
+   M /irssi/trunk/src/fe-text/textbuffer-view.c
+
+It's possible to use black foreground color now.
+
+------------------------------------------------------------------------
+r2417 | cras | 2002-02-10 14:10:09 +0000 (Sun, 10 Feb 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/term-terminfo.c
+
+term_clear() should set the background color to RESET, not to 0 (black).
+
+------------------------------------------------------------------------
+r2416 | cras | 2002-02-10 14:01:25 +0000 (Sun, 10 Feb 2002) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/perl/Makefile.am
+
+all subdirs are now specified in "perl_dirs" so it's easier to add/remove
+directories.
+
+------------------------------------------------------------------------
+r2415 | cras | 2002-02-10 12:53:10 +0000 (Sun, 10 Feb 2002) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/irc/proxy/listen.c
+
+If *=port was used with /SET irssiproxy_ports, connections to server weren't
+sent to already connected clients.
+
+------------------------------------------------------------------------
+r2414 | cras | 2002-02-10 12:13:00 +0000 (Sun, 10 Feb 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/fe-events-numeric.c
+   M /irssi/trunk/src/irc/core/channel-events.c
+
+support for event 477 which aborts joins to +R channels in dalnet.
+
+------------------------------------------------------------------------
+r2413 | cras | 2002-02-10 11:24:51 +0000 (Sun, 10 Feb 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/chat-completion.c
+
+/MSG completion should work with /QUERY as well
+
+------------------------------------------------------------------------
+r2412 | cras | 2002-02-10 11:12:05 +0000 (Sun, 10 Feb 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/scripts/realname.pl
+
+updated redirection code
+
+------------------------------------------------------------------------
+r2411 | cras | 2002-02-10 11:04:08 +0000 (Sun, 10 Feb 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/channels-setup.c
+   M /irssi/trunk/src/core/chatnets.c
+   M /irssi/trunk/src/core/ignore.c
+   M /irssi/trunk/src/core/network.c
+   M /irssi/trunk/src/core/servers-setup.c
+
+Removed some old backwards compatibility code.
+
+------------------------------------------------------------------------
+r2410 | cras | 2002-02-10 11:01:56 +0000 (Sun, 10 Feb 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/gui-readline.c
+
+meta-backspace is now bound to delete_previous_word by default.
+
+------------------------------------------------------------------------
+r2409 | cras | 2002-02-10 10:51:14 +0000 (Sun, 10 Feb 2002) | 4 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/fe-events-numeric.c
+   M /irssi/trunk/src/fe-common/irc/module-formats.c
+   M /irssi/trunk/src/fe-common/irc/module-formats.h
+
+Default event handler now prints the server name where it received the
+event, unless it's the server we're connected to. /FORMAT default_event can
+be used to modify where/if the server name is printed.
+
+------------------------------------------------------------------------
+r2408 | cras | 2002-02-10 10:21:46 +0000 (Sun, 10 Feb 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/irc-servers-reconnect.c
+   M /irssi/trunk/src/irc/core/irc-servers.h
+
+Don't stop reconnecting to server if we get nick collided
+
+------------------------------------------------------------------------
+r2407 | cras | 2002-02-10 10:07:12 +0000 (Sun, 10 Feb 2002) | 4 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/chat-completion.c
+   M /irssi/trunk/src/fe-common/core/completion.c
+   M /irssi/trunk/src/fe-common/core/completion.h
+   M /irssi/trunk/src/fe-text/gui-readline.c
+
+/BIND meta-k erase_completion - support for removing completion data.
+Currently this works only with /MSG completion, so eg. /MSG nick <meta-k>
+removes nick from completion list and jumps to next completion.
+
+------------------------------------------------------------------------
+r2406 | cras | 2002-02-10 09:35:38 +0000 (Sun, 10 Feb 2002) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/dcc/fe-dcc-chat-messages.c
+
+Level for own dcc chat messages should contain NO_ACT too (which also
+disables beeping).
+
+------------------------------------------------------------------------
+r2405 | cras | 2002-02-08 22:09:39 +0000 (Fri, 08 Feb 2002) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/tparm.c
+
+since common.h wasn't included in this, changed i_isdigit() -> isdigit()
+back with some casting.
+
+------------------------------------------------------------------------
+r2404 | cras | 2002-02-08 07:25:51 +0000 (Fri, 08 Feb 2002) | 3 lines
+Changed paths:
+   M /irssi/trunk/docs/signals.txt
+   M /irssi/trunk/src/irc/proxy/listen.c
+   M /irssi/trunk/src/irc/proxy/module.h
+
+Proxy is now emitting "proxy client connected" and "proxy client
+disconnected" signals.
+
+------------------------------------------------------------------------
+r2403 | cras | 2002-02-08 02:57:02 +0000 (Fri, 08 Feb 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/irssi.conf
+
+updated OPN's config
+
+------------------------------------------------------------------------
+r2402 | cras | 2002-02-07 23:58:51 +0000 (Thu, 07 Feb 2002) | 4 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/fe-events-numeric.c
+   M /irssi/trunk/src/fe-common/irc/fe-events.c
+
+"default event" now resends "default event numeric" which gets handled by
+the event_received() function.. I think now all those extra spaces showing
+up in places should be fixed :)
+
+------------------------------------------------------------------------
+r2401 | cras | 2002-02-07 19:30:58 +0000 (Thu, 07 Feb 2002) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/core/core.c
+
+only the first of --home / --config parameters were parsed, which broke eg.
+irssi which was started with --config and /UPGRADEd.
+
+------------------------------------------------------------------------
+r2400 | cras | 2002-02-07 19:27:47 +0000 (Thu, 07 Feb 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/commands.c
+
+'-' option as last parameter didn't work (eg. /LAST -)
+
+------------------------------------------------------------------------
+r2399 | cras | 2002-02-07 19:17:36 +0000 (Thu, 07 Feb 2002) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/core/channels.c
+   M /irssi/trunk/src/core/queries.c
+   M /irssi/trunk/src/core/servers.c
+
+Set objects ->type = 0 when freeing to make sure we notice immediately if
+they're being used after freed.
+
+------------------------------------------------------------------------
+r2398 | cras | 2002-02-07 00:34:43 +0000 (Thu, 07 Feb 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-channels.c
+
+Don't crash in /NAMES list if /SET names_max_width was too small
+
+------------------------------------------------------------------------
+r2397 | cras | 2002-02-06 23:37:03 +0000 (Wed, 06 Feb 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/fe-events-numeric.c
+
+Still some event_received() fixes.
+
+------------------------------------------------------------------------
+r2396 | cras | 2002-02-06 18:07:55 +0000 (Wed, 06 Feb 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/dcc/fe-dcc-chat.c
+   M /irssi/trunk/src/irc/dcc/dcc-chat.c
+
+DCC /MSG handlers broke /MSG -ircnet
+
+------------------------------------------------------------------------
+r2395 | cras | 2002-02-06 18:03:58 +0000 (Wed, 06 Feb 2002) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-exec.c
+
+/EXEC's last output line wasn't printed if it didn't contain newline at end
+of line.
+
+------------------------------------------------------------------------
+r2394 | cras | 2002-02-06 04:20:34 +0000 (Wed, 06 Feb 2002) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/fe-events-numeric.c
+
+Fixed the generic event_received() hadler not to remove ':' char twice in
+some situations..
+
+------------------------------------------------------------------------
+r2393 | cras | 2002-02-05 04:36:07 +0000 (Tue, 05 Feb 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/perl/common/Server.xs
+
+bugfix
+
+------------------------------------------------------------------------
+r2392 | cras | 2002-02-04 21:26:03 +0000 (Mon, 04 Feb 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/lib-popt/popt.c
+
+Ahem.. my little kludge had a buffer overflow :)
+
+------------------------------------------------------------------------
+r2391 | cras | 2002-02-04 21:20:05 +0000 (Mon, 04 Feb 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/dcc/fe-dcc-chat.c
+   M /irssi/trunk/src/irc/dcc/dcc-chat.c
+
+Broke DCC CHAT queries.
+
+------------------------------------------------------------------------
+r2390 | cras | 2002-02-04 06:38:27 +0000 (Mon, 04 Feb 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/TODO
+
+Reorganized & updated.
+
+------------------------------------------------------------------------
+r2389 | cras | 2002-02-04 04:35:11 +0000 (Mon, 04 Feb 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-queries.c
+
+Use the server tag printing with queries now too.
+
+------------------------------------------------------------------------
+r2388 | cras | 2002-02-04 04:27:45 +0000 (Mon, 04 Feb 2002) | 7 lines
+Changed paths:
+   M /irssi/trunk/src/core/log.c
+   M /irssi/trunk/src/core/log.h
+   M /irssi/trunk/src/fe-common/core/fe-log.c
+   M /irssi/trunk/src/fe-common/core/formats.c
+   M /irssi/trunk/src/fe-common/core/formats.h
+   M /irssi/trunk/src/fe-common/core/printtext.c
+   M /irssi/trunk/src/fe-common/core/printtext.h
+   M /irssi/trunk/src/fe-common/irc/dcc/fe-dcc-chat-messages.c
+
+printtext(): you can now specify server target with tag name instead of
+record. This is useful with DCC chats when you know the initial server tag
+but the server might be already disconnected.
+
+So what this means is that you now get ~/irclogs/ircnet/=nick.log instead of
+~/irclogs/=nick.log :)
+
+------------------------------------------------------------------------
+r2387 | cras | 2002-02-03 23:14:22 +0000 (Sun, 03 Feb 2002) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/core/special-vars.c
+
+Server referencing in /EVAL really should have checked if the server wasn't
+NULL :)
+
+------------------------------------------------------------------------
+r2386 | cras | 2002-02-03 23:06:36 +0000 (Sun, 03 Feb 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/perl/common/Server.xs
+
+broke $server->send_message()..
+
+------------------------------------------------------------------------
+r2385 | cras | 2002-02-03 22:28:09 +0000 (Sun, 03 Feb 2002) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/servers-redirect.c
+
+make sure redirect_continue is set to NULL if it contains the redirection
+that is being destroyed.
+
+------------------------------------------------------------------------
+r2384 | cras | 2002-02-03 21:58:14 +0000 (Sun, 03 Feb 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/chat-commands.c
+
+target_type for "/MSG *" wasn't set properly.
+
+------------------------------------------------------------------------
+r2383 | cras | 2002-02-03 21:53:37 +0000 (Sun, 03 Feb 2002) | 6 lines
+Changed paths:
+   M /irssi/trunk/src/core/chat-commands.c
+   M /irssi/trunk/src/core/ignore.c
+   M /irssi/trunk/src/core/server-rec.h
+   M /irssi/trunk/src/core/servers.h
+   M /irssi/trunk/src/fe-common/core/chat-completion.c
+   M /irssi/trunk/src/fe-common/core/fe-queries.c
+   M /irssi/trunk/src/irc/core/irc-servers.c
+
+Added target_type to send_message(), -channel and -nick parameters to /MSG
+to specify if it's supposed to be to channel/nick. /MSG -channel is used
+automatically by irssi when sending messages to channel (the "normal" way
+without /msg). This should help with protocols that don't have any channel
+name prefixes.
+
+------------------------------------------------------------------------
+r2382 | cras | 2002-02-03 19:24:51 +0000 (Sun, 03 Feb 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/special-vars.c
+
+Added missing #include
+
+------------------------------------------------------------------------
+r2381 | cras | 2002-02-03 18:32:46 +0000 (Sun, 03 Feb 2002) | 5 lines
+Changed paths:
+   M /irssi/trunk/src/core/special-vars.c
+
+A bit more safer now to use /EVAL with a command that disconnects from
+server.. Also added a FIXME: window item would need reference counting as
+well, eg. "/EVAL win close;say hello" wouldn't work now.. But that's probably
+job for the rewrite irssi. don't go use things like that :)
+
+------------------------------------------------------------------------
+r2380 | cras | 2002-02-03 18:24:22 +0000 (Sun, 03 Feb 2002) | 4 lines
+Changed paths:
+   M /irssi/trunk/src/core/commands.c
+   M /irssi/trunk/src/core/commands.h
+   M /irssi/trunk/src/irc/core/modes.c
+
+Added PARAM_FLAG_OPTCHAN_NAME which is like PARAM_FLAG_OPTCHAN, but doesn't
+allow using "*" to specify active channel. Used with /OP, /DEOP, /VOICE and
+/DEVOICE so you can do /OP * again :)
+
+------------------------------------------------------------------------
+r2379 | cras | 2002-02-03 18:07:12 +0000 (Sun, 03 Feb 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/docs/help/in/watch.in
+
+updated
+
+------------------------------------------------------------------------
+r2378 | cras | 2002-02-02 22:46:28 +0000 (Sat, 02 Feb 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/fe-irc-queries.c
+
+s/query_trace_nick_changes/query_track_nick_changes/ :)
+
+------------------------------------------------------------------------
+r2377 | cras | 2002-02-02 22:34:06 +0000 (Sat, 02 Feb 2002) | 5 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/fe-irc-queries.c
+
+Added /SET query_trace_nick_changes, which tells if irssi should track nick
+changes in queries (eg. you get a msg from nick who's user@host is the same
+as you already have query with). This feature has existed before, but now
+you can turn if OFF if you want :)
+
+------------------------------------------------------------------------
+r2376 | cras | 2002-02-02 20:45:22 +0000 (Sat, 02 Feb 2002) | 2 lines
+Changed paths:
+   A /irssi/trunk/docs/help/in/watch.in
+
+Added help for WATCH, by six
+
+------------------------------------------------------------------------
+r2375 | cras | 2002-02-02 19:55:33 +0000 (Sat, 02 Feb 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/irssi.c
+
+Ignoring SIGTRAP signal which is sent at /UPGRADE time.
+
+------------------------------------------------------------------------
+r2374 | cras | 2002-02-02 17:37:44 +0000 (Sat, 02 Feb 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/channels-setup.c
+   M /irssi/trunk/src/core/chatnets.c
+   M /irssi/trunk/src/core/ignore.c
+   M /irssi/trunk/src/core/log.c
+   M /irssi/trunk/src/core/servers-setup.c
+   M /irssi/trunk/src/core/session.c
+   M /irssi/trunk/src/core/settings.c
+   M /irssi/trunk/src/fe-common/core/completion.c
+   M /irssi/trunk/src/fe-common/core/fe-settings.c
+   M /irssi/trunk/src/fe-common/core/hilight-text.c
+   M /irssi/trunk/src/fe-common/core/keyboard.c
+   M /irssi/trunk/src/fe-common/core/windows-layout.c
+   M /irssi/trunk/src/fe-text/mainwindows-layout.c
+   M /irssi/trunk/src/irc/notifylist/notify-setup.c
+
+Comments are now allowed everywhere in config files.
+
+------------------------------------------------------------------------
+r2373 | cras | 2002-02-02 17:27:20 +0000 (Sat, 02 Feb 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/irc-servers-setup.c
+
+Also, if alternate_nick is "", don't go set it to connection record..
+
+------------------------------------------------------------------------
+r2372 | cras | 2002-02-02 17:26:11 +0000 (Sat, 02 Feb 2002) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/irc-servers-setup.c
+
+/SET alternate_nick should default to "", not NULL which would cause
+problems.
+
+------------------------------------------------------------------------
+r2371 | cras | 2002-02-02 17:23:56 +0000 (Sat, 02 Feb 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/dcc/dcc-autoget.c
+
+Ignore /SET dcc_autoresume if /SET dcc_autoget is OFF.
+
+------------------------------------------------------------------------
+r2370 | cras | 2002-02-02 02:22:29 +0000 (Sat, 02 Feb 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/gui-readline.c
+
+Add ^H and ^? as "backspace" key, so you can use meta-backspace etc.
+
+------------------------------------------------------------------------
+r2369 | cras | 2002-02-02 01:38:58 +0000 (Sat, 02 Feb 2002) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-common-core.c
+   M /irssi/trunk/src/fe-common/core/formats.c
+
+Replaced /SET msgs_timestamps with /SET timestamp_level, defaults to ALL.
+/SET timestamps must be ON for timestamp_level to have any effect.
+
+------------------------------------------------------------------------
+r2368 | cras | 2002-02-01 23:32:21 +0000 (Fri, 01 Feb 2002) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/irc-nicklist.c
+
+The "check if nick change was done with our /NICK" didn't work if this was
+our first nick change..
+
+------------------------------------------------------------------------
+r2367 | cras | 2002-02-01 23:14:00 +0000 (Fri, 01 Feb 2002) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/perl/perl-core.c
+
+Removed some backwards compatibility code between CVS versions that broke
+/SET use_perl_lib
+
+------------------------------------------------------------------------
+r2366 | cras | 2002-02-01 23:01:58 +0000 (Fri, 01 Feb 2002) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/modes.c
+
+Added optional channel parameter to /OP, /DEOP, /VOICE and /DEVOICE
+commands.
+
+------------------------------------------------------------------------
+r2365 | cras | 2002-02-01 20:14:30 +0000 (Fri, 01 Feb 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/commands.c
+   M /irssi/trunk/src/fe-text/gui-printtext.c
+   M /irssi/trunk/src/fe-text/statusbar.c
+   M /irssi/trunk/src/fe-text/textbuffer-reformat.c
+   M /irssi/trunk/src/fe-text/textbuffer-view.c
+   M /irssi/trunk/src/fe-text/textbuffer.c
+
+added some pointer casting to get rid of warnings with some compilers.
+
+------------------------------------------------------------------------
+r2364 | cras | 2002-02-01 19:26:58 +0000 (Fri, 01 Feb 2002) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/mainwindows.c
+
+When resizing terminal, width of all split windows weren't always updated
+properly.
+
+------------------------------------------------------------------------
+r2363 | cras | 2002-02-01 13:56:50 +0000 (Fri, 01 Feb 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/keyboard.c
+
+Don't eat unknown keys that aren't combinations
+
+------------------------------------------------------------------------
+r2362 | cras | 2002-01-31 03:15:03 +0000 (Thu, 31 Jan 2002) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/keyboard.c
+
+Unknown key bindings don't print the last invalid key anymore to input line.
+Also, removed some debugging code which was accidentally there :)
+
+------------------------------------------------------------------------
+r2361 | cras | 2002-01-30 22:00:06 +0000 (Wed, 30 Jan 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/chat-commands.c
+
+/CONNECT and /SERVER crashed without parameters
+
+------------------------------------------------------------------------
+r2360 | cras | 2002-01-30 01:57:34 +0000 (Wed, 30 Jan 2002) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/modes.c
+
+"/MODE #channel -k" automatically appends the channel key if it wasn't
+given.
+
+------------------------------------------------------------------------
+r2359 | cras | 2002-01-29 23:11:22 +0000 (Tue, 29 Jan 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/network.c
+
+..and of course I broke IPv4 net_gethostbyname() with it :)
+
+------------------------------------------------------------------------
+r2358 | cras | 2002-01-29 22:16:40 +0000 (Tue, 29 Jan 2002) | 6 lines
+Changed paths:
+   M /irssi/trunk/src/core/network.c
+
+OK, looks like I was doing stupid things with IPv6 hostname lookups :) Back
+when I originally wrote that code, there wasn't any man pages for them and I
+couldn't really find any good docs either, so I just copy&pasted some code
+from somewhere and it seemed to work. Anyway, it was doing reverse name
+lookup for uninitialized host name which really wasn't a good idea :)
+
+------------------------------------------------------------------------
+r2357 | cras | 2002-01-29 21:26:41 +0000 (Tue, 29 Jan 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/network.c
+
+net_gethostbyname() fix for ipv6.
+
+------------------------------------------------------------------------
+r2356 | cras | 2002-01-29 03:35:18 +0000 (Tue, 29 Jan 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/perl/textui/TextBufferView.xs
+
+Forgot to commit utf8 change here.
+
+------------------------------------------------------------------------
+r2355 | cras | 2002-01-29 03:13:06 +0000 (Tue, 29 Jan 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/gui-entry.c
+   M /irssi/trunk/src/fe-text/gui-entry.h
+   M /irssi/trunk/src/fe-text/statusbar-items.c
+   M /irssi/trunk/src/fe-text/textbuffer-view.c
+
+A bit more better utf8 support, still not a good input line.
+
+------------------------------------------------------------------------
+r2354 | cras | 2002-01-29 01:33:41 +0000 (Tue, 29 Jan 2002) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/Makefile.am
+   M /irssi/trunk/src/fe-text/gui-windows.c
+   M /irssi/trunk/src/fe-text/term.c
+   M /irssi/trunk/src/fe-text/textbuffer-view.c
+   M /irssi/trunk/src/fe-text/textbuffer-view.h
+   A /irssi/trunk/src/fe-text/utf8.c
+   A /irssi/trunk/src/fe-text/utf8.h
+
+Preliminary support for UTF8 with /SET term_utf8 ON. Input line is still
+messed up, but lines should wrap properly in text buffer.
+
+------------------------------------------------------------------------
+r2353 | cras | 2002-01-28 23:31:36 +0000 (Mon, 28 Jan 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/irc-chatnets.c
+
+Whops, crasfix for last "fix". :)
+
+------------------------------------------------------------------------
+r2352 | cras | 2002-01-28 15:20:57 +0000 (Mon, 28 Jan 2002) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/core/chatnets.c
+   M /irssi/trunk/src/irc/core/irc-chatnets.c
+   M /irssi/trunk/src/irc/core/irc-servers.c
+   M /irssi/trunk/src/irc/core/servers-redirect.c
+   M /irssi/trunk/src/lib-popt/popt.c
+
+Fixed a few minor memleaks. Don't use g_strdup() in lib-popt because it may
+be freed with a real free() call instead of g_free().
+
+------------------------------------------------------------------------
+r2351 | cras | 2002-01-28 05:28:25 +0000 (Mon, 28 Jan 2002) | 5 lines
+Changed paths:
+   M /irssi/trunk/src/core/servers.c
+   M /irssi/trunk/src/irc/core/irc-commands.c
+   M /irssi/trunk/src/irc/core/irc-nicklist.c
+   M /irssi/trunk/src/irc/core/irc-servers.h
+
+Don't change the "wanted nick" when receiving NICK event from server, unless
+we did the /NICK change. This is useful with the new irc servers changing
+your nick to your UID instead of killing you, at reconnect time you'd get
+"invalid nick" when irssi would try setting the UID as your nick..
+
+------------------------------------------------------------------------
+r2350 | cras | 2002-01-28 02:37:54 +0000 (Mon, 28 Jan 2002) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/fe-events.c
+
+"Your nick is owned by .." message was checked always with default nick.
+This wasn't wanted with eg. /IRCNET ADD -nick.
+
+------------------------------------------------------------------------
+r2349 | cras | 2002-01-27 22:15:37 +0000 (Sun, 27 Jan 2002) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/perl/ui/Themes.xs
+
+Scripts using Irssi::printformat() might have crashed irssi, especially if
+they cought in autolog.
+
+------------------------------------------------------------------------
+r2348 | cras | 2002-01-27 20:45:59 +0000 (Sun, 27 Jan 2002) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/common.h
+   M /irssi/trunk/src/core/commands.c
+   M /irssi/trunk/src/core/misc.c
+   M /irssi/trunk/src/core/network.c
+   M /irssi/trunk/src/core/nicklist.c
+   M /irssi/trunk/src/core/special-vars.c
+   M /irssi/trunk/src/fe-common/core/chat-completion.c
+   M /irssi/trunk/src/fe-common/core/completion.c
+   M /irssi/trunk/src/fe-common/core/fe-messages.c
+   M /irssi/trunk/src/fe-common/core/fe-settings.c
+   M /irssi/trunk/src/fe-common/core/formats.c
+   M /irssi/trunk/src/fe-common/core/keyboard.c
+   M /irssi/trunk/src/fe-common/core/themes.c
+   M /irssi/trunk/src/fe-common/core/translation.c
+   M /irssi/trunk/src/fe-common/irc/fe-events.c
+   M /irssi/trunk/src/fe-text/gui-entry.c
+   M /irssi/trunk/src/fe-text/irssi.c
+   M /irssi/trunk/src/fe-text/mainwindows.c
+   M /irssi/trunk/src/fe-text/tparm.c
+   M /irssi/trunk/src/irc/bot/botnet-connection.c
+   M /irssi/trunk/src/irc/bot/botnet.c
+   M /irssi/trunk/src/irc/core/bans.c
+   M /irssi/trunk/src/irc/core/irc-masks.c
+   M /irssi/trunk/src/irc/core/irc-nicklist.c
+   M /irssi/trunk/src/irc/core/irc.c
+   M /irssi/trunk/src/irc/core/netsplit.c
+   M /irssi/trunk/src/irc/core/servers-redirect.c
+   M /irssi/trunk/src/irc/dcc/dcc-chat.c
+   M /irssi/trunk/src/lib-config/get.c
+   M /irssi/trunk/src/lib-config/parse.c
+   M /irssi/trunk/src/lib-config/write.c
+   M /irssi/trunk/src/lib-popt/poptconfig.c
+   M /irssi/trunk/src/lib-popt/popthelp.c
+   M /irssi/trunk/src/lib-popt/poptparse.c
+   M /irssi/trunk/src/perl/perl-core.c
+
+toupper(), tolower(), isspace(), is..etc..() aren't safe with chars in some
+systems, use our own is_...() functions now instead.
+
+------------------------------------------------------------------------
+r2347 | cras | 2002-01-27 20:42:45 +0000 (Sun, 27 Jan 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/textbuffer.h
+
+Comment changes
+
+------------------------------------------------------------------------
+r2346 | cras | 2002-01-26 12:43:47 +0000 (Sat, 26 Jan 2002) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/core/chat-commands.c
+   M /irssi/trunk/src/core/servers.c
+
+Added -rawlog <file> option to /CONNECT and /SERVER, so you can get the
+rawlog from servers that disconnect you too fast.
+
+------------------------------------------------------------------------
+r2345 | cras | 2002-01-25 02:28:42 +0000 (Fri, 25 Jan 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/servers-setup.c
+
+/SERVER ADD -noproxy wasn't saved to config
+
+------------------------------------------------------------------------
+r2344 | cras | 2002-01-24 20:57:16 +0000 (Thu, 24 Jan 2002) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/core/server-setup-rec.h
+   M /irssi/trunk/src/core/servers-setup.c
+   M /irssi/trunk/src/fe-common/core/fe-server.c
+   M /irssi/trunk/src/fe-common/irc/fe-irc-server.c
+
+/SERVER ADD: added -noproxy option and -proxy which just removes the
+-noproxy.
+
+------------------------------------------------------------------------
+r2343 | cras | 2002-01-24 01:19:52 +0000 (Thu, 24 Jan 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/channels.c
+
+Fixed a small memory leak when connected to same network twice.
+
+------------------------------------------------------------------------
+r2342 | cras | 2002-01-23 20:36:52 +0000 (Wed, 23 Jan 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/perl/perl-fe.c
+
+Tab-completion for /SCRIPT UNLOAD crashed irssi soon after
+
+------------------------------------------------------------------------
+r2341 | cras | 2002-01-23 00:23:31 +0000 (Wed, 23 Jan 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/irc-servers.c
+
+Don't send proxy commands to server if -noproxy option was used.
+
+------------------------------------------------------------------------
+r2340 | cras | 2002-01-22 21:04:39 +0000 (Tue, 22 Jan 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/servers.c
+   M /irssi/trunk/src/core/servers.h
+
+last commit was only partial :)
+
+------------------------------------------------------------------------
+r2339 | cras | 2002-01-22 21:04:04 +0000 (Tue, 22 Jan 2002) | 6 lines
+Changed paths:
+   M /irssi/trunk/src/core/servers-reconnect.c
+
+Never reconnect immediately to server when server is being disconnected -
+this could lead scripts (or maybe even irssi itself) handle the partially
+disconnected server wrong. Also moved the server->disconnected = TRUE before
+the "server disconnected" signal is sent, this makes sure the
+server_disconnect() is never called twice.
+
+------------------------------------------------------------------------
+r2338 | cras | 2002-01-22 20:29:45 +0000 (Tue, 22 Jan 2002) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/core/server-connect-rec.h
+   M /irssi/trunk/src/core/servers-reconnect.c
+   M /irssi/trunk/src/core/servers-setup.c
+   M /irssi/trunk/src/core/servers.c
+   M /irssi/trunk/src/irc/core/irc-servers.c
+
+Added /SET proxy_string_after setting which gets sent after NICK/USER, bnc
+wants this.
+
+------------------------------------------------------------------------
+r2337 | cras | 2002-01-22 19:52:17 +0000 (Tue, 22 Jan 2002) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/perl/Makefile.am
+
+distclean -> distclean-generic so it'll be executed before clean-am which
+removes */Makefiles.
+
+------------------------------------------------------------------------
+r2336 | cras | 2002-01-22 18:25:39 +0000 (Tue, 22 Jan 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/perl/common/Core.xs
+
+Irssi::command_bind*() allows using hash.
+
+------------------------------------------------------------------------
+r2335 | cras | 2002-01-22 15:56:29 +0000 (Tue, 22 Jan 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/chat-completion.c
+
+removed some unused code.
+
+------------------------------------------------------------------------
+r2334 | cras | 2002-01-21 19:20:08 +0000 (Mon, 21 Jan 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/perl/common/Core.xs
+
+Irssi::signal_add_first() and .._last() allows hashes now.
+
+------------------------------------------------------------------------
+r2333 | cras | 2002-01-21 18:20:44 +0000 (Mon, 21 Jan 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/perl/textui/TextUI.xs
+
+Added Irssi::term_refresh_freeze() and ..thaw()
+
+------------------------------------------------------------------------
+r2332 | cras | 2002-01-21 16:57:44 +0000 (Mon, 21 Jan 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/irc-nicklist.c
+
+Using signal_add_first() for a few more signals now, so they can be stopped by scripts.
+
+------------------------------------------------------------------------
+r2331 | cras | 2002-01-20 16:57:06 +0000 (Sun, 20 Jan 2002) | 6 lines
+Changed paths:
+   M /irssi/trunk/src/core/commands.c
+   M /irssi/trunk/src/fe-text/lastlog.c
+   M /irssi/trunk/src/fe-text/module-formats.c
+   M /irssi/trunk/src/fe-text/module-formats.h
+   M /irssi/trunk/src/fe-text/textbuffer.c
+   M /irssi/trunk/src/fe-text/textbuffer.h
+
+Added -before and -after options to /LASTLOG. You can also use
+-<number> to specify both before and after values.
+
+Added special "#" option name to commands which specifies that
+-<number> parameter is allowed.
+
+------------------------------------------------------------------------
+r2330 | cras | 2002-01-20 14:03:14 +0000 (Sun, 20 Jan 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/irc-servers.c
+
+Handle PING requests now properly.
+
+------------------------------------------------------------------------
+r2329 | cras | 2002-01-20 12:50:10 +0000 (Sun, 20 Jan 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/textbuffer-view.c
+
+Fixed a memory leak.
+
+------------------------------------------------------------------------
+r2328 | cras | 2002-01-20 12:21:18 +0000 (Sun, 20 Jan 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/proxy/listen.c
+
+We now handle PINGs from client properly.
+
+------------------------------------------------------------------------
+r2327 | cras | 2002-01-20 11:47:04 +0000 (Sun, 20 Jan 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/flood/flood.c
+
+whops, still wasn't fixed :)
+
+------------------------------------------------------------------------
+r2326 | cras | 2002-01-20 11:37:21 +0000 (Sun, 20 Jan 2002) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/irc/flood/flood.c
+
+Every time a /SET was changed, it leaked a signal_add() which would cause
+very buggy behaviour at least related to flood checking.
+
+------------------------------------------------------------------------
+r2325 | cras | 2002-01-20 03:30:28 +0000 (Sun, 20 Jan 2002) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/core/settings.c
+   M /irssi/trunk/src/core/write-buffer.c
+
+Autosaving settings and autoflushing write buffer might have stopped from
+working sometimes because of missing "return 1".
+
+------------------------------------------------------------------------
+r2324 | cras | 2002-01-20 02:18:37 +0000 (Sun, 20 Jan 2002) | 5 lines
+Changed paths:
+   M /irssi/trunk/src/irc/dcc/dcc-chat.c
+   M /irssi/trunk/src/irc/dcc/dcc-get.c
+   M /irssi/trunk/src/irc/dcc/dcc-send.c
+
+Connection tag variable wasn't deinitialized, so when destroying a DCC
+record it might have stopped a wrong timeout/io func (or probably not,
+because new source func was allocated soon after, and it'd have the same tag
+which would just be free'd twice).
+
+------------------------------------------------------------------------
+r2323 | cras | 2002-01-19 23:36:11 +0000 (Sat, 19 Jan 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/configure.in
+
+Don't use -lnsl or -lsocket if it's not needed.
+
+------------------------------------------------------------------------
+r2322 | cras | 2002-01-19 23:21:24 +0000 (Sat, 19 Jan 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/chat-commands.c
+
+Added -noproxy option to /CONNECT and /SERVER.
+
+------------------------------------------------------------------------
+r2321 | cras | 2002-01-19 18:49:35 +0000 (Sat, 19 Jan 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/default.theme
+   M /irssi/trunk/src/fe-common/irc/dcc/module-formats.c
+
+Added "dccownquerynick" which /FORMAT own_dcc_query uses.
+
+------------------------------------------------------------------------
+r2320 | cras | 2002-01-19 18:46:23 +0000 (Sat, 19 Jan 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/docs/formats.txt
+   M /irssi/trunk/src/fe-text/gui-printtext.c
+
+Some MIRC color changes, patch by qrczak@knm.org.pl
+
+------------------------------------------------------------------------
+r2319 | cras | 2002-01-18 16:23:57 +0000 (Fri, 18 Jan 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-settings.c
+   M /irssi/trunk/src/fe-common/core/themes.c
+
+/SAVE -formats saves all the /formats to theme file.
+
+------------------------------------------------------------------------
+r2318 | cras | 2002-01-17 22:51:28 +0000 (Thu, 17 Jan 2002) | 5 lines
+Changed paths:
+   M /irssi/trunk/src/irc/dcc/dcc-get.c
+
+When creating a file for DCC download, make sure we won't run into any race
+conditions if /SET dcc_download_path was set to some directory where other
+users could write files as well. Also, the created file mode is always 0600
+now.
+
+------------------------------------------------------------------------
+r2317 | cras | 2002-01-15 14:07:19 +0000 (Tue, 15 Jan 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/nick-rec.h
+   M /irssi/trunk/src/core/nicklist.c
+
+Removed module_data from NICK_REC. It's not used for anything and just takes memory.
+
+------------------------------------------------------------------------
+r2316 | cras | 2002-01-14 17:01:30 +0000 (Mon, 14 Jan 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/configure.in
+
+that irix fix broke configure..
+
+------------------------------------------------------------------------
+r2315 | cras | 2002-01-14 13:30:21 +0000 (Mon, 14 Jan 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/configure.in
+
+Don't use -lnsl or -lsocket with irix.
+
+------------------------------------------------------------------------
+r2314 | cras | 2002-01-12 14:32:28 +0000 (Sat, 12 Jan 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/settings.c
+
+Settings names are now case-insensitive.
+
+------------------------------------------------------------------------
+r2313 | cras | 2002-01-12 13:00:57 +0000 (Sat, 12 Jan 2002) | 3 lines
+Changed paths:
+   M /irssi/trunk/default.theme
+
+< and > removed from replaces block. added %K code to msgnick so <> would
+still be grey in nick.
+
+------------------------------------------------------------------------
+r2312 | cras | 2002-01-12 12:47:12 +0000 (Sat, 12 Jan 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/fe-netsplit.c
+
+Add commas between splitted nicks. patch by Qrczak
+
+------------------------------------------------------------------------
+r2311 | cras | 2002-01-12 12:03:00 +0000 (Sat, 12 Jan 2002) | 5 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/irc-nicklist.c
+   M /irssi/trunk/src/irc/core/irc-servers-setup.c
+
+Don't try to set alternate_nick to any default value, it's not very useful
+and it didn't work properly if nick was 9 chars with last char being '_'
+(not very likely though :). Also handle properly the situation where nick
+and alternate_nick are the same.
+
+------------------------------------------------------------------------
+r2310 | cras | 2002-01-12 11:11:09 +0000 (Sat, 12 Jan 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/module-formats.c
+
+Using "server1 <-> server2, server3" format for netsplit messages now.
+
+------------------------------------------------------------------------
+r2309 | cras | 2002-01-11 12:19:47 +0000 (Fri, 11 Jan 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/dcc/fe-dcc-chat-messages.c
+
+dcc chat actions didn't work properly
+
+------------------------------------------------------------------------
+r2308 | cras | 2002-01-11 05:48:37 +0000 (Fri, 11 Jan 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/commands.c
+
+Whops, didn't actually fix the connection_lost :)
+
+------------------------------------------------------------------------
+r2307 | cras | 2002-01-11 05:47:52 +0000 (Fri, 11 Jan 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/commands.c
+
+When commands were being parsed, the currectly active server should have been referenced, but the code was accidentally in subcommand parser not in the main one.. Also, the connection_lost wasn't checked after parsing the command and might have caused a glib error.
+
+------------------------------------------------------------------------
+r2306 | cras | 2002-01-10 18:55:24 +0000 (Thu, 10 Jan 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/gui-printtext.c
+
+swapped dark/bright reds.
+
+------------------------------------------------------------------------
+r2305 | cras | 2002-01-10 18:39:02 +0000 (Thu, 10 Jan 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/channel-events.c
+
+Purge the commands in queue for channel if you get kicked from there.
+
+------------------------------------------------------------------------
+r2304 | cras | 2002-01-10 18:36:27 +0000 (Thu, 10 Jan 2002) | 5 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/irc-servers.c
+
+Changed again behaviour of resetting user modes when reconnecting to server,
+it was also buggy and didn't work.. Anyway, now we don't anymore even try to
+remove "non-wanted" modes set by server when reconnecting, if you really
+don't want to have some mode, set it with -x in /set usermode.
+
+------------------------------------------------------------------------
+r2303 | cras | 2002-01-10 18:02:22 +0000 (Thu, 10 Jan 2002) | 3 lines
+Changed paths:
+   M /irssi/trunk/docs/signals.txt
+   M /irssi/trunk/src/fe-common/irc/fe-events.c
+   M /irssi/trunk/src/irc/core/ctcp.c
+   M /irssi/trunk/src/irc/core/irc-queries.c
+
+Actions are now sent in "ctcp action" signal which is never ignored. "ctcp
+msg action" doesn't work anymore nor does it show in "ctcp msg"s.
+
+------------------------------------------------------------------------
+r2302 | cras | 2002-01-10 17:36:41 +0000 (Thu, 10 Jan 2002) | 4 lines
+Changed paths:
+   M /irssi/trunk/src/perl/perl-core.c
+   M /irssi/trunk/src/perl/perl-signals.c
+   M /irssi/trunk/src/perl/perl-sources.c
+
+g_strdup() the error message before emitting "script error" signal, since
+perl scripting might be executed during that signal and it clears the error
+message.
+
+------------------------------------------------------------------------
+r2301 | cras | 2002-01-10 04:03:34 +0000 (Thu, 10 Jan 2002) | 4 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/chat-completion.c
+
+When /SET expand_escapes was ON, \012 and \015 should be treated as newlines
+so that text after them is sent as privmsgs, not as direct commands to
+server.
+
+------------------------------------------------------------------------
+r2300 | cras | 2002-01-09 17:10:46 +0000 (Wed, 09 Jan 2002) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/formats.c
+
+small bugfix, mirc color flag was set on unless both /set hide_mirc_colors
+and /set hide_text_style was on.
+
+------------------------------------------------------------------------
+r2299 | cras | 2002-01-09 17:00:45 +0000 (Wed, 09 Jan 2002) | 7 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/irc.c
+
+irc_send_cmd() now doesn't call server_disconnect(), but rather just mark
+the connection_lost to TRUE, the disconnection is after the "server
+incoming" signal is finished.
+
+Changed irc_parse_incoming() back to not handling any commands in server's
+input buffer after server_disconnect() is called, it's not safe enough.
+
+------------------------------------------------------------------------
+r2298 | cras | 2002-01-09 16:04:53 +0000 (Wed, 09 Jan 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/docs/signals.txt
+   M /irssi/trunk/src/fe-common/irc/dcc/Makefile.am
+   A /irssi/trunk/src/fe-common/irc/dcc/fe-dcc-chat-messages.c
+   M /irssi/trunk/src/fe-common/irc/dcc/fe-dcc-chat.c
+   M /irssi/trunk/src/fe-common/irc/dcc/module-formats.c
+   M /irssi/trunk/src/fe-common/irc/dcc/module-formats.h
+   M /irssi/trunk/src/irc/dcc/dcc-chat.c
+
+Added "message dcc xxx" signals for printing DCC messages.
+
+------------------------------------------------------------------------
+r2297 | cras | 2002-01-08 07:36:40 +0000 (Tue, 08 Jan 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/levels.c
+
+Changed level HILIGHT -> HILIGHTS.
+
+------------------------------------------------------------------------
+r2296 | cras | 2002-01-04 21:28:26 +0000 (Fri, 04 Jan 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/network.c
+
+the same #ifdef { parsing problem..
+
+------------------------------------------------------------------------
+r2295 | cras | 2002-01-04 21:27:28 +0000 (Fri, 04 Jan 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/misc.c
+
+moved the two { chars inside #ifdef #else #endif to one { outside it, so it won't confuse some parsers.
+
+------------------------------------------------------------------------
+r2294 | cras | 2002-01-04 21:20:32 +0000 (Fri, 04 Jan 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/core.c
+
+Use static arrays, so it works with non-ansi C compilers.
+
+------------------------------------------------------------------------
+r2293 | cras | 2002-01-04 21:12:12 +0000 (Fri, 04 Jan 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/configure.in
+
+removed (void) definition from libtool test, so it passes with non-ansi C compilers.
+
+------------------------------------------------------------------------
+r2292 | cras | 2002-01-03 23:25:18 +0000 (Thu, 03 Jan 2002) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/perl/perl-signals.c
+
+command_bind_first() and command_bind_last() didn't work properly.
+
+------------------------------------------------------------------------
+r2291 | cras | 2002-01-03 21:19:16 +0000 (Thu, 03 Jan 2002) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/perl/common/Core.xs
+
+Irssi::signal_emit() - make sure the parameter is a reference before trying
+to unreference it.
+
+------------------------------------------------------------------------
+r2290 | cras | 2002-01-02 21:21:49 +0000 (Wed, 02 Jan 2002) | 5 lines
+Changed paths:
+   M /irssi/trunk/src/core/servers.c
+   M /irssi/trunk/src/irc/core/irc.c
+
+server_disconnect() should do nothing if you call it twice, especially it
+shouldn't emit the "server disconnected" again.
+
+We'll now handle the remaining data coming from server after disconnection.
+
+------------------------------------------------------------------------
+r2289 | cras | 2001-12-31 16:31:08 +0000 (Mon, 31 Dec 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/nicklist.c
+
+Accidentally had committed a debug thing.
+
+------------------------------------------------------------------------
+r2288 | cras | 2001-12-31 16:30:32 +0000 (Mon, 31 Dec 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/fe-events-numeric.c
+   M /irssi/trunk/src/irc/core/channel-events.c
+
+Abort joins on 442-numeric that dalnet sends when you can't join to channel
+because you've not registered your nick.
+
+------------------------------------------------------------------------
+r2287 | cras | 2001-12-30 21:27:34 +0000 (Sun, 30 Dec 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/docs/perl.txt
+
+s/redirection_register/redirect_register/ in example.
+
+------------------------------------------------------------------------
+r2286 | cras | 2001-12-30 20:20:17 +0000 (Sun, 30 Dec 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/docs/signals.txt
+
+"nicklist ..." signals were missing channel parameter.
+
+------------------------------------------------------------------------
+r2285 | cras | 2001-12-27 22:35:16 +0000 (Thu, 27 Dec 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/perl/common/Core.xs
+
+Irssi::version() should return the time always with 4 digits, padded with
+zeros if needed.
+
+------------------------------------------------------------------------
+r2284 | cras | 2001-12-27 12:40:31 +0000 (Thu, 27 Dec 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/netsplit.c
+
+argh, typofix :)
+
+------------------------------------------------------------------------
+r2283 | cras | 2001-12-27 12:40:09 +0000 (Thu, 27 Dec 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/netsplit.c
+
+Added an extra check to make sure nothing bad happens..
+
+------------------------------------------------------------------------
+r2282 | cras | 2001-12-27 11:38:46 +0000 (Thu, 27 Dec 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/fe-events-numeric.c
+   M /irssi/trunk/src/fe-common/irc/module-formats.c
+
+Server parameter is sent now too with /WHO, though the format itself wasn't changed. patch by peder.
+
+------------------------------------------------------------------------
+r2281 | cras | 2001-12-27 11:37:31 +0000 (Thu, 27 Dec 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/command-history.c
+
+Don't add command to history if it's already in there as last entry. patch by peder.
+
+------------------------------------------------------------------------
+r2280 | cras | 2001-12-22 02:28:22 +0000 (Sat, 22 Dec 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/massjoin.c
+
+Check that the nick doesn't get added twice to nicklist, seems to happen sometimes.
+
+------------------------------------------------------------------------
+r2279 | cras | 2001-12-21 15:13:05 +0000 (Fri, 21 Dec 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/docs/help/in/log.in
+   M /irssi/trunk/src/fe-common/core/fe-log.c
+
+/LOG OPEN -window accepts now -targets too to specify the refnum
+
+------------------------------------------------------------------------
+r2278 | cras | 2001-12-21 11:57:01 +0000 (Fri, 21 Dec 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/docs/special_vars.txt
+
+added $versiontime
+
+------------------------------------------------------------------------
+r2277 | cras | 2001-12-20 21:52:16 +0000 (Thu, 20 Dec 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/command-history.c
+   M /irssi/trunk/src/fe-common/core/fe-windows.c
+
+Some crashfixes with command history.
+
+------------------------------------------------------------------------
+r2276 | cras | 2001-12-20 13:29:20 +0000 (Thu, 20 Dec 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/docs/perl.txt
+   M /irssi/trunk/docs/signals.txt
+   M /irssi/trunk/src/fe-common/core/command-history.c
+   M /irssi/trunk/src/fe-common/core/command-history.h
+   M /irssi/trunk/src/fe-common/core/fe-windows.c
+   M /irssi/trunk/src/fe-common/core/fe-windows.h
+   M /irssi/trunk/src/fe-common/core/module-formats.c
+   M /irssi/trunk/src/fe-common/core/module-formats.h
+   M /irssi/trunk/src/fe-common/core/window-commands.c
+   M /irssi/trunk/src/fe-common/core/windows-layout.c
+   M /irssi/trunk/src/fe-text/gui-readline.c
+   M /irssi/trunk/src/perl/ui/UI.xs
+   M /irssi/trunk/src/perl/ui/Window.xs
+
+Added command history groups, set them with /WINDOW HISTORY. Patch by peder@ifi.uio.no
+
+------------------------------------------------------------------------
+r2275 | cras | 2001-12-20 12:46:34 +0000 (Thu, 20 Dec 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/docs/signals.txt
+
+"nick mode changed" signal was missing channel parameter
+
+------------------------------------------------------------------------
+r2274 | cras | 2001-12-20 02:18:35 +0000 (Thu, 20 Dec 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/fe-common-irc.c
+
+And the final #include :)
+
+------------------------------------------------------------------------
+r2273 | cras | 2001-12-20 02:17:35 +0000 (Thu, 20 Dec 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/gui-readline.c
+   M /irssi/trunk/src/fe-text/statusbar-items.c
+   M /irssi/trunk/src/fe-text/textbuffer-commands.c
+
+Still some #include "servers.h"s ..
+
+------------------------------------------------------------------------
+r2272 | cras | 2001-12-20 02:14:49 +0000 (Thu, 20 Dec 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/common.h
+   M /irssi/trunk/src/core/nicklist.c
+   M /irssi/trunk/src/fe-common/core/chat-completion.c
+   M /irssi/trunk/src/fe-common/core/fe-channels.c
+   M /irssi/trunk/src/fe-common/core/fe-common-core.c
+   M /irssi/trunk/src/fe-common/core/fe-core-commands.c
+   M /irssi/trunk/src/fe-common/core/fe-exec.c
+   M /irssi/trunk/src/fe-common/core/fe-messages.c
+   M /irssi/trunk/src/fe-common/core/fe-queries.c
+   M /irssi/trunk/src/fe-common/core/fe-windows.h
+   M /irssi/trunk/src/fe-common/core/formats.c
+   M /irssi/trunk/src/fe-common/irc/dcc/fe-dcc-chat.c
+   M /irssi/trunk/src/fe-common/irc/fe-irc-channels.c
+
+Added WINDOW_REC declaration to common.h, removed unneeded #include "servers.h" from fe-windows.h which broke several files, added the #include in them.
+
+------------------------------------------------------------------------
+r2271 | cras | 2001-12-19 15:58:23 +0000 (Wed, 19 Dec 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/irssi.conf
+
+Changed ircnet's max_query_chans to 5 from 10, so that it wouldn't take forever to receive WHO replies if you join to 10 channels..
+
+------------------------------------------------------------------------
+r2270 | cras | 2001-12-19 15:25:16 +0000 (Wed, 19 Dec 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/gui-entry.c
+
+Never allow adding CR or LF characters to input line, they could mess up everything.
+
+------------------------------------------------------------------------
+r2269 | cras | 2001-12-19 00:42:22 +0000 (Wed, 19 Dec 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/gui-readline.c
+
+Hidden entry texts shouldn't have gone to command history..
+
+------------------------------------------------------------------------
+r2268 | cras | 2001-12-17 23:01:12 +0000 (Mon, 17 Dec 2001) | 4 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/gui-readline.c
+   M /irssi/trunk/src/fe-text/gui-readline.h
+   M /irssi/trunk/src/fe-text/irssi.c
+   M /irssi/trunk/src/fe-text/term-terminfo.c
+   M /irssi/trunk/src/fe-text/term.c
+   M /irssi/trunk/src/fe-text/term.h
+
+Since I accidentally already committed some of the detach-code, here's the
+rest of it. It doesn't really work, you can make irssi detached but you
+can't attach to it anymore :)
+
+------------------------------------------------------------------------
+r2267 | cras | 2001-12-17 22:13:18 +0000 (Mon, 17 Dec 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/gui-readline.c
+
+if window-specific history is off, the command that closed the window should
+go in the command history.
+
+------------------------------------------------------------------------
+r2266 | cras | 2001-12-17 19:47:23 +0000 (Mon, 17 Dec 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/modes.h
+
+mode +d is now also treated as having argument (hybrid 7 / dancer realname ban)
+
+------------------------------------------------------------------------
+r2265 | cras | 2001-12-17 19:41:18 +0000 (Mon, 17 Dec 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/Makefile.am
+
+irssi-dummy was still in Makefile
+
+------------------------------------------------------------------------
+r2264 | cras | 2001-12-17 18:41:06 +0000 (Mon, 17 Dec 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/Makefile.am
+   D /irssi/trunk/src/fe-text/irssi-dummy.c
+   M /irssi/trunk/src/fe-text/irssi.c
+   A /irssi/trunk/src/fe-text/term-dummy.c
+
+Separate irssi-dummy binary was a bit stupid idea, now it can be started with -d command line parameter.
+
+------------------------------------------------------------------------
+r2263 | cras | 2001-12-17 16:27:20 +0000 (Mon, 17 Dec 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/Makefile.am
+   A /irssi/trunk/src/fe-text/irssi-dummy.c
+
+Added irssi-dummy binary which works like ircii's dummy mode.
+
+------------------------------------------------------------------------
+r2262 | cras | 2001-12-16 02:21:27 +0000 (Sun, 16 Dec 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-core-commands.c
+
+/VERSION printed time wrong, hopefully the last version fix..
+
+------------------------------------------------------------------------
+r2261 | cras | 2001-12-16 01:41:29 +0000 (Sun, 16 Dec 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/configure.in
+   M /irssi/trunk/src/core/expandos.c
+   M /irssi/trunk/src/fe-common/core/fe-common-core.c
+   M /irssi/trunk/src/fe-common/core/fe-core-commands.c
+
+Leading zeros didn't work well in IRSSI_VERSION_TIME.
+
+------------------------------------------------------------------------
+r2260 | cras | 2001-12-15 23:49:35 +0000 (Sat, 15 Dec 2001) | 5 lines
+Changed paths:
+   M /irssi/trunk/src/perl/common/Core.xs
+
+Still more version changes .. Irssi::version() now returns the version in
+"date.time" format, so now it's also possible to "use Irssi 20011216.0149;".
+
+Also fixed a memory leak for Irssi::parse_special().
+
+------------------------------------------------------------------------
+r2259 | cras | 2001-12-15 23:39:24 +0000 (Sat, 15 Dec 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-core-commands.c
+
+Print IRSSI_VERSION_TIME in /VERSION too.
+
+------------------------------------------------------------------------
+r2258 | cras | 2001-12-15 23:33:44 +0000 (Sat, 15 Dec 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-common-core.c
+
+irssi --version now prints the IRSSI_VERSION_TIME as well
+
+------------------------------------------------------------------------
+r2257 | cras | 2001-12-15 23:26:09 +0000 (Sat, 15 Dec 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/expandos.c
+   M /irssi/trunk/src/perl/common/Core.xs
+
+Added $versiontime and Irssi::version_time()
+
+------------------------------------------------------------------------
+r2256 | cras | 2001-12-15 23:15:05 +0000 (Sat, 15 Dec 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/Makefile.am
+   M /irssi/trunk/configure.in
+   D /irssi/trunk/irssi-version.h
+   A /irssi/trunk/irssi-version.h.in
+
+IRSSI_VERSION_DATE is now parsed from ChangeLog by configure. Also added
+IRSSI_VERSION_TIME.
+
+------------------------------------------------------------------------
+r2255 | cras | 2001-12-15 21:22:48 +0000 (Sat, 15 Dec 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/docs/signals.txt
+
+Removed "gui window goto" signal, it hasn't been used for ages.
+
+------------------------------------------------------------------------
+r2254 | cras | 2001-12-15 20:37:50 +0000 (Sat, 15 Dec 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/perl/common/Ignore.xs
+
+Irssi::ignores() wasn't working, it looked at the server list..
+
+------------------------------------------------------------------------
+r2253 | cras | 2001-12-15 19:37:36 +0000 (Sat, 15 Dec 2001) | 3 lines
+Changed paths:
+   A /irssi/trunk/irssi-version.h
+
+Removed this accidentally, you'll need to rm irssi-version.h;cvs update
+irssi-version.h manually..
+
+------------------------------------------------------------------------
+r2252 | cras | 2001-12-15 19:28:44 +0000 (Sat, 15 Dec 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/expandos.c
+   M /irssi/trunk/src/fe-common/core/fe-common-core.c
+   M /irssi/trunk/src/fe-common/core/fe-core-commands.c
+   M /irssi/trunk/src/perl/common/Core.xs
+
+IRSSI_VERSION_DATE is now a number, so you can do #iffing with it
+
+------------------------------------------------------------------------
+r2251 | cras | 2001-12-15 18:24:21 +0000 (Sat, 15 Dec 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/irssi.conf
+
+max_query_chans = "10" removed from all networks except ircnet. Looks like
+it's the only network where it works..
+
+------------------------------------------------------------------------
+r2250 | cras | 2001-12-15 13:22:38 +0000 (Sat, 15 Dec 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/scripts/clones.pl
+
+Updated to ignore the ident, and added optional parameter to specify the
+minimum number of clones to show from host.
+
+------------------------------------------------------------------------
+r2249 | cras | 2001-12-15 13:10:51 +0000 (Sat, 15 Dec 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/proxy/listen.c
+
+Better support for actions and CTCPs.
+
+------------------------------------------------------------------------
+r2248 | cras | 2001-12-14 22:19:54 +0000 (Fri, 14 Dec 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/core/network.c
+
+net_listen(): when socket() failed because we tried to use IPv6, we should
+have falled back to IPv4, but wrong errno was checked.
+
+------------------------------------------------------------------------
+r2247 | cras | 2001-12-14 22:04:28 +0000 (Fri, 14 Dec 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/hilight-text.c
+
+warning fixed
+
+------------------------------------------------------------------------
+r2246 | cras | 2001-12-14 16:11:13 +0000 (Fri, 14 Dec 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/servers-redirect.c
+
+Redirections were broken if server_redirect_event() didn't list the stop
+event.
+
+------------------------------------------------------------------------
+r2245 | cras | 2001-12-14 15:59:35 +0000 (Fri, 14 Dec 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/perl/perl-sources.c
+
+perl_timeout_add() didn't add the script pointer to the source record, so
+unloading scripts didn't remove the timeouts.
+
+------------------------------------------------------------------------
+r2244 | cras | 2001-12-14 02:02:08 +0000 (Fri, 14 Dec 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/irc.c
+
+Fixed some asserts.
+
+------------------------------------------------------------------------
+r2243 | cras | 2001-12-14 01:54:12 +0000 (Fri, 14 Dec 2001) | 6 lines
+Changed paths:
+   M /irssi/trunk/src/core/commands.c
+   M /irssi/trunk/src/core/server-rec.h
+   M /irssi/trunk/src/core/servers.c
+   M /irssi/trunk/src/core/servers.h
+   M /irssi/trunk/src/irc/core/irc.c
+   M /irssi/trunk/src/perl/common/Server.xs
+   M /irssi/trunk/src/perl/module.h
+
+Added reference counting to server record. At least now we don't accidentally
+use a destroyed server record when some /command disconnects the server
+(shouldn't happen really) or when irc_send_cmd() fails sending data to server
+and disconnects the server (I don't know if this ever happens, but if it does,
+it very well could have caused crashes)
+
+------------------------------------------------------------------------
+r2242 | cras | 2001-12-14 01:43:41 +0000 (Fri, 14 Dec 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/modes.c
+
+bugfix for previous fix :)
+
+------------------------------------------------------------------------
+r2241 | cras | 2001-12-14 00:42:25 +0000 (Fri, 14 Dec 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/modes.c
+
+e/I/O/q mode changes shouldn't change the visible channel mode.
+
+------------------------------------------------------------------------
+r2240 | cras | 2001-12-13 19:15:00 +0000 (Thu, 13 Dec 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/docs/signals.txt
+
+Added "setup saved" signal, updated "setup reread" to contain file name
+
+------------------------------------------------------------------------
+r2239 | cras | 2001-12-11 20:31:45 +0000 (Tue, 11 Dec 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/gui-readline.c
+
+If window specific history was on and command changed a window, the command
+was saved in wrong window's buffer.
+
+------------------------------------------------------------------------
+r2238 | cras | 2001-12-11 16:44:53 +0000 (Tue, 11 Dec 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/perl/common/Core.xs
+   M /irssi/trunk/src/perl/irc/Server.xs
+   M /irssi/trunk/src/perl/perl-common.c
+   M /irssi/trunk/src/perl/perl-common.h
+   M /irssi/trunk/src/perl/perl-core.c
+   M /irssi/trunk/src/perl/perl-signals.c
+   M /irssi/trunk/src/perl/perl-sources.c
+   M /irssi/trunk/src/perl/textui/Statusbar.xs
+   M /irssi/trunk/src/perl/ui/Formats.xs
+   M /irssi/trunk/src/perl/ui/Themes.xs
+
+I always forget Perl 5.004 doesn't have PL_na .. so, now I've declared for
+5.004, and changed all STRLEN n_a code to use PL_na instead.
+
+------------------------------------------------------------------------
+r2237 | cras | 2001-12-11 15:15:38 +0000 (Tue, 11 Dec 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/modes.c
+
+User mode changes weren't visible.
+
+------------------------------------------------------------------------
+r2236 | cras | 2001-12-11 02:02:47 +0000 (Tue, 11 Dec 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/netsplit.c
+
+Fixed a memory leak + some cleanups
+
+------------------------------------------------------------------------
+r2235 | cras | 2001-12-11 00:07:18 +0000 (Tue, 11 Dec 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/perl/common/Settings.xs
+
+Added Irssi::settings_add_...(), patch by peder@ifi.uio.no
+
+------------------------------------------------------------------------
+r2234 | cras | 2001-12-10 23:32:46 +0000 (Mon, 10 Dec 2001) | 4 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/fe-netsplit.c
+   M /irssi/trunk/src/irc/bot/bot-events.c
+   M /irssi/trunk/src/irc/core/netsplit.c
+   M /irssi/trunk/src/irc/core/netsplit.h
+   M /irssi/trunk/src/perl/irc/Irc.xs
+   M /irssi/trunk/src/perl/irc/Netsplit.xs
+
+Netsplit saved the NICK_REC, but didn't save the dynamically allocated strings
+which were part of it. Removed it now and replaced it with saving only
+op/halfop/voice status. Might have caused some crashes? (hopefully did :)
+
+------------------------------------------------------------------------
+r2233 | cras | 2001-12-10 20:23:50 +0000 (Mon, 10 Dec 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/perl/common/Irssi.pm
+   M /irssi/trunk/src/perl/irc/Irc.pm
+   M /irssi/trunk/src/perl/textui/TextUI.pm
+   M /irssi/trunk/src/perl/ui/UI.pm
+
+Allow exporting symbols, patch by juerd@juerd.nl
+
+------------------------------------------------------------------------
+r2232 | cras | 2001-12-10 17:37:51 +0000 (Mon, 10 Dec 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/perl/common/Core.xs
+   M /irssi/trunk/src/perl/ui/Window.xs
+
+Moved Irssi::command(), Irssi::Server::command() and Irssi::Windowitem::command() from ui to core. Also, Irssi::command() now doesn't default to active server/window item, if this breaks any scripts change them use Irssi::active_win()->command() instead.
+
+------------------------------------------------------------------------
+r2231 | cras | 2001-12-10 13:20:20 +0000 (Mon, 10 Dec 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/docs/proxy.txt
+
+/SET irssiproxy_ports example had ircnet/ports swapped.
+
+------------------------------------------------------------------------
+r2230 | cras | 2001-12-10 00:38:12 +0000 (Mon, 10 Dec 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/fe-events-numeric.c
+
+307 line is used for /USERIP in undernet. Also changed some other alternative
+reply handlers to call event_received() instead of print it itself.
+
+------------------------------------------------------------------------
+r2229 | cras | 2001-12-09 21:55:06 +0000 (Sun, 09 Dec 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/perl/common/Core.xs
+
+Added Irssi::command_set_options()
+
+------------------------------------------------------------------------
+r2228 | cras | 2001-12-09 17:13:48 +0000 (Sun, 09 Dec 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/nicklist.c
+   M /irssi/trunk/src/fe-common/core/fe-channels.c
+   M /irssi/trunk/src/fe-common/core/module-formats.c
+   M /irssi/trunk/src/irc/core/irc-nicklist.c
+   M /irssi/trunk/src/irc/core/irc-nicklist.h
+   M /irssi/trunk/src/irc/core/irc-session.c
+   M /irssi/trunk/src/irc/core/massjoin.c
+   M /irssi/trunk/src/perl/irc/Channel.xs
+
+Better support for halfops, patch by yathen@web.de
+
+------------------------------------------------------------------------
+r2227 | cras | 2001-12-09 17:13:10 +0000 (Sun, 09 Dec 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/fe-irc-channels.c
+
+Support for OPN's channel forwarding.
+
+------------------------------------------------------------------------
+r2226 | cras | 2001-12-09 16:06:52 +0000 (Sun, 09 Dec 2001) | 4 lines
+Changed paths:
+   M /irssi/trunk/src/core/ignore.c
+
+Regexp-ignores weren't compiled at startup - thanks to Manoj Kasichainula
+for noticing this, I never tried restarting when trying to reproduce the
+regexp problems :)
+
+------------------------------------------------------------------------
+r2225 | cras | 2001-12-09 14:03:44 +0000 (Sun, 09 Dec 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/mainwindows.c
+
+Still some window closing bugs/crashes.
+
+------------------------------------------------------------------------
+r2224 | cras | 2001-12-09 00:41:33 +0000 (Sun, 09 Dec 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/perl/irc/Irc.xs
+
+fixed wrong hash key lengths, patch by peder@ifi.uio.no
+
+------------------------------------------------------------------------
+r2223 | cras | 2001-12-08 14:41:57 +0000 (Sat, 08 Dec 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-ignore.c
+
+/IGNORE list: Show the -pattern and also show if the regexp is invalid.
+
+------------------------------------------------------------------------
+r2222 | cras | 2001-12-08 02:03:25 +0000 (Sat, 08 Dec 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/perl/irc/Server.xs
+
+Fixed server_redirect_peek_signal() to compile again.
+
+------------------------------------------------------------------------
+r2221 | cras | 2001-12-07 23:41:45 +0000 (Fri, 07 Dec 2001) | 6 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/servers-redirect.c
+   M /irssi/trunk/src/irc/core/servers-redirect.h
+   M /irssi/trunk/src/irc/proxy/listen.c
+
+server_redirect_peek_signal() now contains int *redirected parameter which
+indicates if event belongs to redirection even while it didn't have any
+redirection signal. Proxy uses this to figure out if the event should be
+sent to clients or not (/WHOIS in proxy sent 3 middle lines to all clients
+before this).
+
+------------------------------------------------------------------------
+r2220 | cras | 2001-12-07 23:26:46 +0000 (Fri, 07 Dec 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/mainwindows.c
+
+Small focus bugfix when closing a split window.
+
+------------------------------------------------------------------------
+r2219 | cras | 2001-12-07 23:20:23 +0000 (Fri, 07 Dec 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/mainwindows.c
+
+Fixed some problems with mainwindow resizing not affecting the subwindows.
+
+------------------------------------------------------------------------
+r2218 | cras | 2001-12-07 22:46:09 +0000 (Fri, 07 Dec 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-common-core.c
+   M /irssi/trunk/src/fe-common/core/formats.c
+
+/SET hide_mirc_colors - patch by paul@raade.org
+
+------------------------------------------------------------------------
+r2217 | cras | 2001-12-07 22:18:39 +0000 (Fri, 07 Dec 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/perl/common/Core.xs
+   M /irssi/trunk/src/perl/common/Irssi.pm
+
+Removed Irssi::require_version(), we'll use "use Irssi 20011207;" style now.
+
+------------------------------------------------------------------------
+r2216 | cras | 2001-12-07 21:52:41 +0000 (Fri, 07 Dec 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/perl/common/Core.xs
+
+Added Irssi::require_version()
+
+------------------------------------------------------------------------
+r2215 | cras | 2001-12-07 21:41:46 +0000 (Fri, 07 Dec 2001) | 4 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/servers-redirect.c
+
+"redirect first" and "redirect last" events can be used with
+server_redirect_event() to get a signal emitted when redirection begins /
+ends.
+
+------------------------------------------------------------------------
+r2214 | cras | 2001-12-07 21:39:53 +0000 (Fri, 07 Dec 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/channels-query.c
+
+Still ban exception / invite list removes.
+
+------------------------------------------------------------------------
+r2213 | cras | 2001-12-07 19:45:47 +0000 (Fri, 07 Dec 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/core/special-vars.c
+
+$!xx! history search didn't work because history_func() got also the
+trailing '!' character.
+
+------------------------------------------------------------------------
+r2212 | cras | 2001-12-07 19:40:37 +0000 (Fri, 07 Dec 2001) | 4 lines
+Changed paths:
+   M /irssi/trunk/docs/signals.txt
+   M /irssi/trunk/src/fe-common/irc/fe-events-numeric.c
+   M /irssi/trunk/src/fe-common/irc/fe-irc-commands.c
+   M /irssi/trunk/src/fe-common/irc/module-formats.c
+   M /irssi/trunk/src/irc/core/channels-query.c
+   M /irssi/trunk/src/irc/core/irc-channels.h
+   M /irssi/trunk/src/irc/core/mode-lists.c
+   M /irssi/trunk/src/irc/core/modes.c
+   M /irssi/trunk/src/perl/irc/Channel.xs
+   M /irssi/trunk/src/perl/irc/Modes.xs
+
+Added support for 326 and 327 whois numerics in OPN.
+
+Removed keeping track of ban exceptions and invite list.
+
+------------------------------------------------------------------------
+r2211 | cras | 2001-12-07 15:58:58 +0000 (Fri, 07 Dec 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/proxy/dump.c
+   M /irssi/trunk/src/irc/proxy/listen.c
+   M /irssi/trunk/src/irc/proxy/module.h
+
+Send NICK change before 001 request so that ircII also knows our real nick.
+
+------------------------------------------------------------------------
+r2210 | cras | 2001-12-07 15:39:30 +0000 (Fri, 07 Dec 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/irc/proxy/dump.c
+   M /irssi/trunk/src/irc/proxy/listen.c
+   M /irssi/trunk/src/irc/proxy/module.h
+   M /irssi/trunk/src/irc/proxy/proxy.c
+
+Several fixes to work better with non-irssi clients, also fixed a potential
+crash if sending a wrong PASS.
+
+------------------------------------------------------------------------
+r2209 | cras | 2001-12-07 04:27:32 +0000 (Fri, 07 Dec 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/statusbar.c
+   M /irssi/trunk/src/irc/core/channels-query.c
+
+Fixed 2 small memory leaks.
+
+------------------------------------------------------------------------
+r2208 | cras | 2001-12-07 02:55:15 +0000 (Fri, 07 Dec 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/perl/common/Core.xs
+
+parameters types for timeout_add() and input_add() changed from void* to SV*
+
+------------------------------------------------------------------------
+r2207 | cras | 2001-12-07 02:40:30 +0000 (Fri, 07 Dec 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/perl/perl-sources.c
+
+Removed g_free(package) that wasn't supposed to be there.
+
+------------------------------------------------------------------------
+r2206 | cras | 2001-12-06 23:29:48 +0000 (Thu, 06 Dec 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/servers-setup.c
+   M /irssi/trunk/src/fe-common/irc/fe-ircnet.c
+   M /irssi/trunk/src/irc/core/irc-chatnets.c
+   M /irssi/trunk/src/irc/core/irc-chatnets.h
+   M /irssi/trunk/src/irc/core/irc-servers-reconnect.c
+   M /irssi/trunk/src/irc/core/irc-servers-setup.c
+   M /irssi/trunk/src/irc/core/irc-servers.c
+
+/IRCNET ADD -usermode option added.
+
+------------------------------------------------------------------------
+r2205 | cras | 2001-12-06 23:10:41 +0000 (Thu, 06 Dec 2001) | 7 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/fe-events-numeric.c
+   M /irssi/trunk/src/irc/core/irc-servers-reconnect.c
+   M /irssi/trunk/src/irc/core/irc-servers.h
+   M /irssi/trunk/src/irc/core/modes.c
+   M /irssi/trunk/src/irc/core/servers-redirect.c
+
+On nick collision kills, reconnect back immediately. On any other type of
+kills, stop reconnecting to the server entirely.
+
+When reconnecting to server and setting back the old user mode, only use the
+modes that we actually wanted to change with /MODE commands, don't try to
+set back modes given to us by server (eg. +r).
+
+------------------------------------------------------------------------
+r2204 | cras | 2001-12-06 23:05:54 +0000 (Thu, 06 Dec 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/server-rec.h
+   M /irssi/trunk/src/core/servers-reconnect.c
+   M /irssi/trunk/src/core/session.c
+   M /irssi/trunk/src/perl/module.h
+
+/UPGRADE broke reconnections to server.
+
+------------------------------------------------------------------------
+r2203 | cras | 2001-12-06 23:05:08 +0000 (Thu, 06 Dec 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/proxy/listen.c
+
+Treat all WHOIS requests as remote.
+
+------------------------------------------------------------------------
+r2202 | cras | 2001-12-06 21:14:06 +0000 (Thu, 06 Dec 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/perl/irc/Irc.xs
+
+Added some max_*_in_cmd + some more stuff to Irssi::Irc::Server record.
+
+------------------------------------------------------------------------
+r2201 | cras | 2001-12-06 20:57:28 +0000 (Thu, 06 Dec 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-expandos.c
+
+$winref and $winname shouldn't crash if there's no active window.
+
+------------------------------------------------------------------------
+r2200 | cras | 2001-12-06 20:46:31 +0000 (Thu, 06 Dec 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/perl/common/Core.xs
+
+Irssi::signal_add() accepts now a hash, so you can do eg. signal_add('sig1'
+=> 'func1', 'sig2' => 'func2');
+
+------------------------------------------------------------------------
+r2199 | cras | 2001-12-06 17:17:40 +0000 (Thu, 06 Dec 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/perl/common/Core.xs
+   M /irssi/trunk/src/perl/perl-common.c
+   M /irssi/trunk/src/perl/perl-common.h
+   M /irssi/trunk/src/perl/perl-core.c
+   M /irssi/trunk/src/perl/perl-signals.c
+   M /irssi/trunk/src/perl/perl-signals.h
+   M /irssi/trunk/src/perl/perl-sources.c
+   M /irssi/trunk/src/perl/perl-sources.h
+
+Irssi::signal_add(), Irssi::timeout_add(), Irssi::input_add() and their
+variants now also allow use of code references.
+
+------------------------------------------------------------------------
+r2198 | cras | 2001-12-06 15:11:08 +0000 (Thu, 06 Dec 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/proxy/listen.c
+   M /irssi/trunk/src/irc/proxy/module.h
+
+Allow sending USER before NICK when logging in.
+
+------------------------------------------------------------------------
+r2197 | cras | 2001-12-04 16:41:49 +0000 (Tue, 04 Dec 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/perl/common/Core.xs
+
+added signal_get_emitted() and signal_get_emitted_id()
+
+------------------------------------------------------------------------
+r2196 | cras | 2001-12-04 15:15:14 +0000 (Tue, 04 Dec 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/autogen.sh
+   M /irssi/trunk/configure.in
+
+Moved the VERSION-removal of config.h.in to configure from autogen because
+"make dist" ran autoheader again and the VERSION wasn't removed.
+
+------------------------------------------------------------------------
+r2195 | cras | 2001-12-04 15:07:27 +0000 (Tue, 04 Dec 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/Makefile.am
+
+Added README.cygwin.
+
+------------------------------------------------------------------------
+r2194 | cras | 2001-12-04 14:56:28 +0000 (Tue, 04 Dec 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/default.theme
+
+Use white foreground color for blue-bg'd statusbars instead of "default color" which doesn't work well if it's not white.
+
+------------------------------------------------------------------------
+r2193 | cras | 2001-12-04 14:43:52 +0000 (Tue, 04 Dec 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/default.theme
+
+Added text "You can also give the default foreground color for statusbar items." to sb_background setting.
+
+------------------------------------------------------------------------
+r2192 | cras | 2001-12-04 14:40:37 +0000 (Tue, 04 Dec 2001) | 4 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/term-curses.c
+   M /irssi/trunk/src/fe-text/term-terminfo.c
+   M /irssi/trunk/src/fe-text/term.h
+
+Never print the last character in screen, this may break some terminals (cygwin at least).
+
+term_addstr() now uses const char * instead of char * parameter.
+
+------------------------------------------------------------------------
+r2191 | cras | 2001-12-04 14:08:34 +0000 (Tue, 04 Dec 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/hilight-text.c
+
+Don't match nicks in -nick hilights.
+
+------------------------------------------------------------------------
+r2190 | cras | 2001-12-03 23:46:12 +0000 (Mon, 03 Dec 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/servers-redirect.c
+
+MAX_FAILURE_COUNT was used off-by-one (ie. 1 meant actually 0..)
+
+------------------------------------------------------------------------
+r2189 | cras | 2001-12-03 23:18:31 +0000 (Mon, 03 Dec 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/perl/ui/UI.xs
+
+Irssi::UI::Window's data_level and hilight_color contained wrong hash
+length arguments.
+
+------------------------------------------------------------------------
+r2188 | cras | 2001-12-03 20:39:14 +0000 (Mon, 03 Dec 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/channels-query.c
+
+"channel wholist" still wasn't sent at proper times.
+
+------------------------------------------------------------------------
+r2187 | cras | 2001-12-03 20:09:17 +0000 (Mon, 03 Dec 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/channels-query.c
+
+"channel wholist" was sent to channels that hadn't received /WHO list yet.
+
+------------------------------------------------------------------------
+r2186 | cras | 2001-12-03 19:56:09 +0000 (Mon, 03 Dec 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/configure.in
+
+added "Press ENTER to continue" text after the "want to download glib?" text.
+
+------------------------------------------------------------------------
+r2185 | cras | 2001-12-03 19:51:00 +0000 (Mon, 03 Dec 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/notifylist/notify-ison.c
+   M /irssi/trunk/src/irc/notifylist/notifylist.c
+
+Fixed a memory leak and a crash when notifylist_check_join() was called with NULL realname.
+
+------------------------------------------------------------------------
+r2184 | cras | 2001-12-03 19:50:21 +0000 (Mon, 03 Dec 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/fe-events.c
+   M /irssi/trunk/src/fe-common/irc/fe-irc-messages.c
+
+Show @#channel notices as regular notices again. Don't hilight it or @#channel msgs.
+
+------------------------------------------------------------------------
+r2183 | cras | 2001-12-03 17:45:34 +0000 (Mon, 03 Dec 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/perl/perl-common.c
+
+added a few asserts to make sure we don't mess up if IDs go above 16bit
+
+------------------------------------------------------------------------
+r2182 | cras | 2001-12-03 17:05:09 +0000 (Mon, 03 Dec 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-exec.c
+   M /irssi/trunk/src/fe-common/core/fe-exec.h
+   M /irssi/trunk/src/perl/ui/UI.xs
+
+Added processes to be extern instead of static. Also added Irssi::processes()
+
+------------------------------------------------------------------------
+r2181 | cras | 2001-12-03 16:04:10 +0000 (Mon, 03 Dec 2001) | 2 lines
+Changed paths:
+   A /irssi/trunk/README.cygwin
+
+Added some cygwin help.
+
+------------------------------------------------------------------------
+r2180 | cras | 2001-12-03 14:40:54 +0000 (Mon, 03 Dec 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/perl/perl-core.c
+
+a bit more proper initializing of Irssi package..
+
+------------------------------------------------------------------------
+r2179 | cras | 2001-12-03 13:06:31 +0000 (Mon, 03 Dec 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/irssi.c
+
+add the "gui exit" with signal_add_last() so it can be aborted while still running the other "gui exit" hooks.
+
+------------------------------------------------------------------------
+r2178 | cras | 2001-12-03 13:05:46 +0000 (Mon, 03 Dec 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/perl/perl-core.c
+
+removed unused variable
+
+------------------------------------------------------------------------
+r2177 | cras | 2001-12-01 20:36:44 +0000 (Sat, 01 Dec 2001) | 4 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/servers-redirect.c
+
+Don't fail the remote redirections either until MAX_FAILURE_COUNT
+redirections have gone without reply to our redirection. This is because
+the timeout itself may fail if lag to the server is too high.
+
+------------------------------------------------------------------------
+r2176 | cras | 2001-12-01 20:23:48 +0000 (Sat, 01 Dec 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/servers-reconnect.c
+   M /irssi/trunk/src/core/session.c
+
+/UPGRADE shouldn't begin server reconnections in old client.
+
+------------------------------------------------------------------------
+r2175 | cras | 2001-12-01 20:17:57 +0000 (Sat, 01 Dec 2001) | 5 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/servers-redirect.c
+
+Only use registered start events to begin a server redirection - not those
+that are just given in server_redirect() (fixes a small problem of /MSG nick
+who is away + /WHOIS nick, then receiving the first away reply from server
+to /MSG command irssi thinks it's a reply to /WHOIS)
+
+------------------------------------------------------------------------
+r2174 | cras | 2001-12-01 19:44:54 +0000 (Sat, 01 Dec 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/fe-events-numeric.c
+   M /irssi/trunk/src/irc/core/irc-servers.h
+   M /irssi/trunk/src/irc/core/lag.c
+
+Disable lag detection in servers that don't understand PING command (yes,
+there was at least one..)
+
+------------------------------------------------------------------------
+r2173 | cras | 2001-12-01 18:34:01 +0000 (Sat, 01 Dec 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/perl/perl-common.c
+
+Added ~/.irssi/scripts and PREFIX/lib/irssi/scripts to default @INC path
+
+------------------------------------------------------------------------
+r2172 | cras | 2001-12-01 15:22:52 +0000 (Sat, 01 Dec 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/statusbar-items.c
+
+snprintf() -> g_snprintf()
+
+------------------------------------------------------------------------
+r2171 | cras | 2001-11-30 00:31:47 +0000 (Fri, 30 Nov 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/irc-commands.c
+
+Removed settings_add_bool(.., "join_auto_chans_on_invite", ..) here, it's
+already done in channel-events.c and causes glib error.
+
+------------------------------------------------------------------------
+r2170 | cras | 2001-11-29 23:50:47 +0000 (Thu, 29 Nov 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/statusbar-items.c
+
+Make sure the more-statusbar item doesn't crash if there's no active window.
+
+------------------------------------------------------------------------
+r2169 | cras | 2001-11-29 23:31:16 +0000 (Thu, 29 Nov 2001) | 4 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/fe-events.c
+   M /irssi/trunk/src/fe-common/irc/fe-irc-commands.c
+   M /irssi/trunk/src/irc/core/irc-commands.c
+
+/WALLCHOPS are now printed to screen. Receiving notices for @#channel
+are printed like receiving wall messages. /ACTION @#channel didn't work
+properly.
+
+------------------------------------------------------------------------
+r2168 | cras | 2001-11-29 22:58:42 +0000 (Thu, 29 Nov 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-common-core.c
+
+irssi --help printed --password=SERVER option, changed to
+--password=PASSWORD :)
+
+------------------------------------------------------------------------
+r2167 | cras | 2001-11-29 22:12:28 +0000 (Thu, 29 Nov 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/perl/perl-signals.c
+
+Allow using Irssi::signal_add('command ...', ..) so irssi won't crash when
+the script is unloaded.
+
+------------------------------------------------------------------------
+r2166 | cras | 2001-11-29 22:05:24 +0000 (Thu, 29 Nov 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/core/commands.c
+
+command_unbind() - don't crash if trying to unbind a command not registered
+in given module.
+
+------------------------------------------------------------------------
+r2165 | cras | 2001-11-29 19:19:29 +0000 (Thu, 29 Nov 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/irc-commands.c
+
+/QUOTE and /RAWQUOTE shouldn't work until connect() to server is finished.
+
+------------------------------------------------------------------------
+r2164 | cras | 2001-11-29 12:09:31 +0000 (Thu, 29 Nov 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/term-terminfo.c
+
+When /SET colors is OFF, irssi displays all non-default background colors as reversed.
+
+------------------------------------------------------------------------
+r2163 | cras | 2001-11-28 21:49:39 +0000 (Wed, 28 Nov 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/perl/irc/Channel.xs
+   M /irssi/trunk/src/perl/irc/module.h
+
+Added Irssi::Irc::get_mask() and Irssi::Irc::MASK_*
+
+------------------------------------------------------------------------
+r2162 | cras | 2001-11-28 21:38:35 +0000 (Wed, 28 Nov 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-queries.c
+
+/QUERY without a parameter but with options (eg. /alias query query -window)
+now does the same /UNQUERY properly.
+
+------------------------------------------------------------------------
+r2161 | cras | 2001-11-28 20:49:10 +0000 (Wed, 28 Nov 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-exec.c
+
+/EXEC -interactive was broken.
+
+------------------------------------------------------------------------
+r2160 | cras | 2001-11-28 01:43:21 +0000 (Wed, 28 Nov 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/fe-events-numeric.c
+
+"event 378" is also used to end /MAP in OPN.
+
+------------------------------------------------------------------------
+r2159 | cras | 2001-11-28 00:54:49 +0000 (Wed, 28 Nov 2001) | 4 lines
+Changed paths:
+   M /irssi/trunk/src/common.h
+
+g_free_not_null() is now equal to g_free() - didn't notice before this was
+allowed.. :) I'll remove this macro entirely when I get around rewriting
+irssi..
+
+------------------------------------------------------------------------
+r2158 | cras | 2001-11-27 20:29:56 +0000 (Tue, 27 Nov 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/perl/ui/Themes.xs
+
+max number of parameters for printformat() was calculated wrong.
+
+------------------------------------------------------------------------
+r2157 | cras | 2001-11-27 20:21:56 +0000 (Tue, 27 Nov 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/textbuffer-reformat.c
+
+didn't work properly with scripts calling Irssi::printformat()
+
+------------------------------------------------------------------------
+r2156 | cras | 2001-11-27 18:12:30 +0000 (Tue, 27 Nov 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/servertest/Makefile.am
+
+removed memdebug support
+
+------------------------------------------------------------------------
+r2155 | cras | 2001-11-27 13:56:00 +0000 (Tue, 27 Nov 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-exec.c
+
+default level for /EXEC should be CLIENTCRAP, not CLIENTNOTICE.
+
+------------------------------------------------------------------------
+r2154 | cras | 2001-11-27 13:05:16 +0000 (Tue, 27 Nov 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/term.c
+
+/SET term_force_colors was broken.
+
+------------------------------------------------------------------------
+r2153 | cras | 2001-11-25 21:59:49 +0000 (Sun, 25 Nov 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/channels-query.c
+
+added support for servers where /WHO only gives "end of who" message.
+
+------------------------------------------------------------------------
+r2152 | cras | 2001-11-25 20:55:45 +0000 (Sun, 25 Nov 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/servers-redirect.c
+
+Irssi didn't properly abort a redirection of which end event it missed.
+
+------------------------------------------------------------------------
+r2151 | cras | 2001-11-25 18:34:20 +0000 (Sun, 25 Nov 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/perl/ui/Themes.xs
+
+printformat_perl() crashfix was buggy :)
+
+------------------------------------------------------------------------
+r2150 | cras | 2001-11-25 17:35:47 +0000 (Sun, 25 Nov 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/irc/dcc/dcc-chat.c
+   M /irssi/trunk/src/irc/dcc/dcc-get.c
+   M /irssi/trunk/src/irc/dcc/dcc.c
+   M /irssi/trunk/src/irc/dcc/dcc.h
+
+/SET dcc_own_ip now affects also which interface irssi uses to connect to
+outgoing DCC connections.
+
+------------------------------------------------------------------------
+r2149 | cras | 2001-11-25 17:06:11 +0000 (Sun, 25 Nov 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/irc-session.c
+
+Added backwards compatibility for /UPGRADE for transferring nick list..
+
+------------------------------------------------------------------------
+r2148 | cras | 2001-11-25 17:03:00 +0000 (Sun, 25 Nov 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/core/session.c
+
+/UPGRADE: when trying to restore connection to server of which chat
+protocol is unknown, close the specified handle.
+
+------------------------------------------------------------------------
+r2147 | cras | 2001-11-25 16:35:11 +0000 (Sun, 25 Nov 2001) | 4 lines
+Changed paths:
+   M /irssi/trunk/irssi.conf
+   M /irssi/trunk/src/fe-text/statusbar-items.c
+
+--more-- statusbar item didn't work properly with split windows. Also
+changed it's settings in non-active window to be the same as in active
+window (right aligned)
+
+------------------------------------------------------------------------
+r2146 | cras | 2001-11-25 16:31:24 +0000 (Sun, 25 Nov 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/formats.h
+
+window_get_theme() now checks that window isn't NULL, so we don't crash if
+something tries to print to screen when there's no windows yet.
+
+------------------------------------------------------------------------
+r2145 | cras | 2001-11-25 16:17:44 +0000 (Sun, 25 Nov 2001) | 5 lines
+Changed paths:
+   M /irssi/trunk/src/perl/perl-core.c
+   M /irssi/trunk/src/perl/perl-core.h
+   M /irssi/trunk/src/perl/perl-fe.c
+
+/SCRIPT LOAD modifies the script name so that all non-alphanumeric
+characters are translated to '_' char .. now this behaviour is done also
+when /SCRIPT UNLOAD is done, so people don't get confused why their "test-1"
+script can't be unloaded.
+
+------------------------------------------------------------------------
+r2144 | cras | 2001-11-25 16:13:12 +0000 (Sun, 25 Nov 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/core/session.c
+   M /irssi/trunk/src/irc/core/irc-session.c
+
+/UPGRADE: Irssi no longer asks for /NAMES list from server when
+rejoining channels, but the nick list is transferred in session file.
+
+------------------------------------------------------------------------
+r2143 | cras | 2001-11-25 15:43:08 +0000 (Sun, 25 Nov 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/perl/ui/Themes.xs
+
+Irssi::printformat() doesn't crash anymore if you try to use unregistered
+format.
+
+------------------------------------------------------------------------
+r2142 | cras | 2001-11-25 15:41:37 +0000 (Sun, 25 Nov 2001) | 5 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-windows.c
+   M /irssi/trunk/src/fe-common/core/formats.c
+   M /irssi/trunk/src/fe-common/core/module-formats.c
+
+/FORMAT timestamp and /FORMAT day_changed use now strftime()-style
+formats for specifying time. %x is still treated as color format, so
+you'll need to escape them with another % (%%H:%%S). The $ parameters
+don't work anymore.
+
+------------------------------------------------------------------------
+r2141 | cras | 2001-11-25 15:27:47 +0000 (Sun, 25 Nov 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/printtext.c
+   M /irssi/trunk/src/fe-common/core/printtext.h
+   M /irssi/trunk/src/perl/ui/Window.xs
+
+Added printtext_string_window(), Irssi::UI::Window::print() uses it also
+now.
+
+------------------------------------------------------------------------
+r2140 | cras | 2001-11-25 15:16:28 +0000 (Sun, 25 Nov 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/module-formats.c
+   M /irssi/trunk/src/fe-common/core/module-formats.h
+   M /irssi/trunk/src/fe-common/core/window-commands.c
+
+/WINDOW NAME now complains if you try to change the window's name to
+something that's already in use.
+
+------------------------------------------------------------------------
+r2139 | cras | 2001-11-25 15:05:38 +0000 (Sun, 25 Nov 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/core/servers-reconnect.c
+
+Doing /RECONNECT while server was still being connected to, irssi
+didn't disconnect the server so you ended up having two connections.
+
+------------------------------------------------------------------------
+r2138 | cras | 2001-11-25 15:01:39 +0000 (Sun, 25 Nov 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/perl/ui/Window.xs
+
+Irssi::Window::command() should make the specified window active_win
+temporarily.
+
+------------------------------------------------------------------------
+r2137 | cras | 2001-11-24 01:31:49 +0000 (Sat, 24 Nov 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/perl/ui/Themes.xs
+
+Irssi::printformat() crashed if the registered format contained $0- etc.
+
+------------------------------------------------------------------------
+r2136 | cras | 2001-11-21 17:50:58 +0000 (Wed, 21 Nov 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/chat-commands.c
+
+/FOREACH QUERY did actually same as /FOREACH CHANNEL :)
+
+------------------------------------------------------------------------
+r2135 | cras | 2001-11-20 21:42:56 +0000 (Tue, 20 Nov 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/gui-windows.c
+
+set only non-automatic windows sticky so that the windows irssi creates at
+startup wont get sticky. also the check if split window was empty was wrong.
+
+------------------------------------------------------------------------
+r2134 | cras | 2001-11-20 21:19:35 +0000 (Tue, 20 Nov 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/fe-events-numeric.c
+
+377 numeric seems to be used as motd by some servers..
+
+------------------------------------------------------------------------
+r2133 | cras | 2001-11-20 20:54:21 +0000 (Tue, 20 Nov 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/pidwait.h
+
+Still forgot to add pidwait_get_pids() here.
+
+------------------------------------------------------------------------
+r2132 | cras | 2001-11-20 20:48:43 +0000 (Tue, 20 Nov 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/core/pidwait.c
+
+added function pidwait_get_pids() which session.c uses - forgot to commit
+last time :)
+
+------------------------------------------------------------------------
+r2131 | cras | 2001-11-20 20:44:17 +0000 (Tue, 20 Nov 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/term.c
+
+/SET colors OFF should work even if /SET term_force_colors is ON
+
+------------------------------------------------------------------------
+r2130 | cras | 2001-11-20 20:36:12 +0000 (Tue, 20 Nov 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/session.c
+
+--session broke --help output
+
+------------------------------------------------------------------------
+r2129 | cras | 2001-11-20 20:29:45 +0000 (Tue, 20 Nov 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/core/session.c
+
+/UPGRADE: waited pids are now transferred to new client so we don't leave
+zombie processes.
+
+------------------------------------------------------------------------
+r2128 | cras | 2001-11-20 12:51:28 +0000 (Tue, 20 Nov 2001) | 6 lines
+Changed paths:
+   M /irssi/trunk/src/core/commands.c
+   M /irssi/trunk/src/fe-common/core/fe-core-commands.c
+
+using signal_add() instead of signal_add_first() again. the ..first() wasn't
+really needed and it broke autoaway.pl script .. which is because
+/DISCONNECT and /UPGRADE commands destroy the server record, but it's still
+left in the signal's parameter. Guess I'll need to add reference counting to
+server record as well..
+
+------------------------------------------------------------------------
+r2127 | cras | 2001-11-20 12:38:03 +0000 (Tue, 20 Nov 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/themes.c
+
+data_is_empty() might have crashed when it was called at the startup when
+there was no active window.
+
+------------------------------------------------------------------------
+r2126 | cras | 2001-11-20 03:38:53 +0000 (Tue, 20 Nov 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/mainwindows.c
+
+/WINDOW STICK <ref#> OFF didn't work.
+
+------------------------------------------------------------------------
+r2125 | cras | 2001-11-20 03:35:23 +0000 (Tue, 20 Nov 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/gui-windows.c
+
+When creating hidden windows in sticky split windows, they should go to the
+active split window, not to some other non-sticky window..
+
+------------------------------------------------------------------------
+r2124 | cras | 2001-11-20 03:28:31 +0000 (Tue, 20 Nov 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/docs/perl.txt
+
+send_raw_split() example's nickarg was wrong (2 -> 3).
+
+------------------------------------------------------------------------
+r2123 | cras | 2001-11-20 03:26:36 +0000 (Tue, 20 Nov 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/irc.c
+
+irc_send_cmd_split() - don't crash if there was no nicks given (probably
+called improperly from script)..
+
+------------------------------------------------------------------------
+r2122 | cras | 2001-11-20 03:19:02 +0000 (Tue, 20 Nov 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/session.c
+
+/UPGRADE: --home and --config parameters weren't passed to new irssi.
+
+------------------------------------------------------------------------
+r2121 | cras | 2001-11-20 03:11:02 +0000 (Tue, 20 Nov 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/default.theme
+   M /irssi/trunk/src/fe-common/core/fe-channels.c
+   M /irssi/trunk/src/fe-common/core/module-formats.c
+   M /irssi/trunk/src/fe-common/core/module-formats.h
+
+Added /FORMAT names_prefix to print prefix at the beginning of each /NAMES
+list line.
+
+------------------------------------------------------------------------
+r2120 | cras | 2001-11-20 02:48:53 +0000 (Tue, 20 Nov 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/session.c
+
+Typobugfix.
+
+------------------------------------------------------------------------
+r2119 | cras | 2001-11-20 02:43:43 +0000 (Tue, 20 Nov 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/gui-windows.c
+   M /irssi/trunk/src/fe-text/mainwindows.c
+   M /irssi/trunk/src/fe-text/statusbar.c
+
+Irssi didn't redraw the screen properly when split windows were created but
+were never set active.
+
+------------------------------------------------------------------------
+r2118 | cras | 2001-11-20 02:25:38 +0000 (Tue, 20 Nov 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/window-items.c
+
+/SET autocreate_split_windows - If autocreated windows should be split
+windows instead of hidden.
+
+------------------------------------------------------------------------
+r2117 | cras | 2001-11-20 02:22:12 +0000 (Tue, 20 Nov 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-messages.c
+
+Added halfop support for nick modes.
+
+------------------------------------------------------------------------
+r2116 | cras | 2001-11-20 02:08:37 +0000 (Tue, 20 Nov 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-core-commands.c
+
+Previous commit in core/commands.c broke /^cmd (command output hiding).
+
+------------------------------------------------------------------------
+r2115 | cras | 2001-11-20 02:04:44 +0000 (Tue, 20 Nov 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/channel-events.c
+
+/SET join_auto_chans_on_invite setting wasn't registered so it didn't work..
+
+------------------------------------------------------------------------
+r2114 | cras | 2001-11-20 01:47:29 +0000 (Tue, 20 Nov 2001) | 5 lines
+Changed paths:
+   M /irssi/trunk/src/core/session.c
+   M /irssi/trunk/src/core/session.h
+   M /irssi/trunk/src/fe-text/irssi.c
+
+/UPGRADE now saves the session, disconnects the servers so that the socket
+isn't closed but irssi thinks its disconnected, then it quits irssi, and as
+the last command executes the new irssi. This way we get clean
+deinitialization so irssi can close log files, destroy scripts, etc.
+
+------------------------------------------------------------------------
+r2113 | cras | 2001-11-20 01:29:23 +0000 (Tue, 20 Nov 2001) | 5 lines
+Changed paths:
+   M /irssi/trunk/src/core/session.c
+   M /irssi/trunk/src/irc/core/irc-session.c
+
+/UPGRADE: server command queue is now flushed to make sure everything
+gets sent to server. Channels are now stored in in config blocks
+instead of just in one string, this way we can restore the topic and
+key. Away status in server is also restored.
+
+------------------------------------------------------------------------
+r2112 | cras | 2001-11-20 00:54:51 +0000 (Tue, 20 Nov 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/net-sendbuffer.c
+   M /irssi/trunk/src/core/net-sendbuffer.h
+
+Added net_sendbuffer_flush() for flushing the buffer.
+
+------------------------------------------------------------------------
+r2111 | cras | 2001-11-19 23:57:29 +0000 (Mon, 19 Nov 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/gui-readline.c
+
+Specified "cleft" and "cright" for ctrl-left/right keys. Added xterm's
+keycodes for them.
+
+------------------------------------------------------------------------
+r2110 | cras | 2001-11-19 23:56:00 +0000 (Mon, 19 Nov 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/keyboard.c
+
+/BIND works a bit better again when parsing the given key.
+
+------------------------------------------------------------------------
+r2109 | cras | 2001-11-19 23:12:00 +0000 (Mon, 19 Nov 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/core/channels.c
+
+Don't break if /CHANNEL ADD -bots list has bots separated with more than
+one space.
+
+------------------------------------------------------------------------
+r2108 | cras | 2001-11-19 23:09:29 +0000 (Mon, 19 Nov 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/commands.c
+
+grab the "send command" event with signal_add_first().
+
+------------------------------------------------------------------------
+r2107 | cras | 2001-11-19 23:04:58 +0000 (Mon, 19 Nov 2001) | 4 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/fe-events-numeric.c
+   M /irssi/trunk/src/fe-common/irc/module-formats.c
+   M /irssi/trunk/src/fe-common/irc/module-formats.h
+
+378 event (whois realhost) data is different between irc servers, so added
+support for another server. Also added support for 377 event (whois
+usermode).
+
+------------------------------------------------------------------------
+r2106 | cras | 2001-11-19 22:47:32 +0000 (Mon, 19 Nov 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/perl/perl-common.c
+
+perl_command() - just a small sanity check that we're not sending empty
+command.
+
+------------------------------------------------------------------------
+r2105 | cras | 2001-11-19 22:44:04 +0000 (Mon, 19 Nov 2001) | 4 lines
+Changed paths:
+   M /irssi/trunk/src/core/special-vars.c
+
+eval_special_string() : spaces are now ignored after ';' separator (so
+/alias echo foo; echo bar works properly). Also if there was any empty
+commands they're now ignored.
+
+------------------------------------------------------------------------
+r2104 | cras | 2001-11-19 22:34:50 +0000 (Mon, 19 Nov 2001) | 5 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/fe-events-numeric.c
+   M /irssi/trunk/src/irc/core/irc-commands.c
+   M /irssi/trunk/src/irc/core/irc-nicklist.c
+   M /irssi/trunk/src/irc/core/irc-servers.h
+
+Removed whois_coming-flag which was used to figure out if 301 event
+should be printed as whois-message or normal "nick is away" message.
+Server redirections are used for that now. Some servers also send 301
+event in /WHOWAS reply, this works now as well.
+
+------------------------------------------------------------------------
+r2103 | cras | 2001-11-19 22:22:30 +0000 (Mon, 19 Nov 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/lag.c
+
+Changed default of /SET lag_check_time from 30 to 60.
+
+------------------------------------------------------------------------
+r2102 | cras | 2001-11-19 22:21:57 +0000 (Mon, 19 Nov 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/irssi.conf
+   M /irssi/trunk/src/fe-text/statusbar-items.c
+
+Rewrote lag statusbar item. It's now updated properly.
+
+------------------------------------------------------------------------
+r2101 | cras | 2001-11-19 21:26:30 +0000 (Mon, 19 Nov 2001) | 4 lines
+Changed paths:
+   M /irssi/trunk/src/perl/common/Settings.xs
+   M /irssi/trunk/src/perl/perl-core.c
+
+Settings of perl scripts are now stored in "perl/core/scripts" instead of
+old "perl/core". The settings are automatically moved to the
+perl/core/scripts for now - this will be removed before 0.7.99 comes out.
+
+------------------------------------------------------------------------
+r2100 | cras | 2001-11-19 21:10:39 +0000 (Mon, 19 Nov 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/hilight-text.c
+
+/HILIGHT -actcolor didn't work with -nick (which was default)
+
+------------------------------------------------------------------------
+r2099 | cras | 2001-11-19 20:47:36 +0000 (Mon, 19 Nov 2001) | 4 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-messages.c
+
+Actually :) The /SET show_own_nick_change_once is still there, but it's OFF
+by default now, and printing the own nick changes just don't trigger window
+activity.
+
+------------------------------------------------------------------------
+r2098 | cras | 2001-11-19 20:42:36 +0000 (Mon, 19 Nov 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-messages.c
+
+/SET show_own_nickchange_once ON - show own nick changes only in active
+window instead of every channel you've joined. This is the default now.
+
+------------------------------------------------------------------------
+r2097 | cras | 2001-11-19 20:41:30 +0000 (Mon, 19 Nov 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/Makefile.am
+
+Removed memdebug stuff.
+
+------------------------------------------------------------------------
+r2096 | cras | 2001-11-19 20:37:55 +0000 (Mon, 19 Nov 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-exec.c
+   M /irssi/trunk/src/fe-common/core/fe-exec.h
+
+Added /EXEC -level option.
+
+------------------------------------------------------------------------
+r2095 | cras | 2001-11-19 20:30:19 +0000 (Mon, 19 Nov 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/acconfig.h
+   M /irssi/trunk/configure.in
+   M /irssi/trunk/src/common.h
+   D /irssi/trunk/src/core/memdebug.c
+   D /irssi/trunk/src/core/memdebug.h
+   M /irssi/trunk/src/fe-text/irssi.c
+   M /irssi/trunk/src/lib-config/parse.c
+
+Removed memory debugging code. It's a lot easier to check for buffer
+overflows with electric fence and memory leaks with memprof.
+
+------------------------------------------------------------------------
+r2094 | cras | 2001-11-19 20:16:24 +0000 (Mon, 19 Nov 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/irc/dcc/dcc.c
+
+Ignoring CTCPs shouldn't ignore DCC CTCPs, we're checking DCC level for
+ignoring them now.
+
+------------------------------------------------------------------------
+r2093 | cras | 2001-11-19 20:06:57 +0000 (Mon, 19 Nov 2001) | 4 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/chat-completion.c
+
+Actually, we do want to have the space after nick completion.. :) It's much
+more often wanted than not, and I can't really think of any way to figure
+out if we want space or not.
+
+------------------------------------------------------------------------
+r2092 | cras | 2001-11-19 19:36:21 +0000 (Mon, 19 Nov 2001) | 4 lines
+Changed paths:
+   M /irssi/trunk/src/perl/common/Channel.xs
+   M /irssi/trunk/src/perl/common/Query.xs
+   M /irssi/trunk/src/perl/common/Server.xs
+   M /irssi/trunk/src/perl/common/typemap
+   M /irssi/trunk/src/perl/get-signals.pl
+   M /irssi/trunk/src/perl/irc/Dcc.xs
+   M /irssi/trunk/src/perl/irc/Irc.xs
+   M /irssi/trunk/src/perl/irc/module.h
+   M /irssi/trunk/src/perl/irc/typemap
+   M /irssi/trunk/src/perl/perl-common.c
+   M /irssi/trunk/src/perl/perl-common.h
+   M /irssi/trunk/src/perl/perl-signals.c
+   M /irssi/trunk/src/perl/ui/UI.xs
+   M /irssi/trunk/src/perl/ui/Window.xs
+
+Irssi::Irc::Dcc::* is now correctly blessed instead of using Irssi::Irc::Dcc
+always. did s/irssi_bless/iobject_bless/, added simple_iobject_bless which
+DCC uses.
+
+------------------------------------------------------------------------
+r2091 | cras | 2001-11-19 18:46:40 +0000 (Mon, 19 Nov 2001) | 6 lines
+Changed paths:
+   M /irssi/trunk/src/perl/perl-common.c
+
+Chat protocol ID was assumed to be 8bit or less, this may not be so since
+the ID is taken from generic unique ID-pool which grows fast.. Now the we'll
+divide the 32bit number to 16bit chat protocol ID and 16bit object ID. They
+might not fit either, so I think I'll need to rewrite this part of code some
+day :)
+
+------------------------------------------------------------------------
+r2090 | cras | 2001-11-19 18:06:15 +0000 (Mon, 19 Nov 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/chat-completion.c
+
+Don't add space after tab-completed nicks.
+
+------------------------------------------------------------------------
+r2089 | cras | 2001-11-19 17:31:33 +0000 (Mon, 19 Nov 2001) | 4 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/irssi.c
+
+moved the dirty_check() before fe_common_core_finish_init() so that if
+~/.irssi/startup file does something that wants to change the prompt it
+would work..
+
+------------------------------------------------------------------------
+r2088 | cras | 2001-11-19 17:21:11 +0000 (Mon, 19 Nov 2001) | 4 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/fe-irc-messages.c
+
+"message irc notice" - when figuring out if it's server notice or not,
+check also if address == "" instead of just == NULL. At least if perl script
+emits the signal it gets "".
+
+------------------------------------------------------------------------
+r2087 | cras | 2001-11-19 16:57:19 +0000 (Mon, 19 Nov 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/irssi.c
+
+Redraw the screen before emitting "irssi init finished" signal, so we have
+input entry created if someone wants to change prompt.
+
+------------------------------------------------------------------------
+r2086 | cras | 2001-11-19 16:38:00 +0000 (Mon, 19 Nov 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/themes.c
+
+data_is_empty() didn't check properly for $0-$9 variables and broke
+statusbar.
+
+------------------------------------------------------------------------
+r2085 | cras | 2001-11-19 15:59:55 +0000 (Mon, 19 Nov 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/gui-readline.c
+
+With /SET window_auto_change ON, irssi might have crashed if input entry was
+not visible at that time.
+
+------------------------------------------------------------------------
+r2084 | cras | 2001-11-19 15:45:40 +0000 (Mon, 19 Nov 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/irc-session.c
+
+/UPGRADE now remembers user mode, patch by lam@e-gate.pl
+
+------------------------------------------------------------------------
+r2083 | cras | 2001-11-19 14:17:16 +0000 (Mon, 19 Nov 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/core/special-vars.c
+
+get_argument() - allow arglist to be NULL, just assume that there's no
+arguments then.
+
+------------------------------------------------------------------------
+r2082 | cras | 2001-11-19 14:02:27 +0000 (Mon, 19 Nov 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/channels.c
+   M /irssi/trunk/src/core/chat-commands.c
+   M /irssi/trunk/src/core/server-connect-rec.h
+
+/CONNECT -! doesn't autojoin to channels.
+
+------------------------------------------------------------------------
+r2081 | cras | 2001-11-19 13:55:28 +0000 (Mon, 19 Nov 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/session.c
+
+Irssi printed GLib error if no PATH was set..
+
+------------------------------------------------------------------------
+r2080 | cras | 2001-11-19 13:52:10 +0000 (Mon, 19 Nov 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/servers.c
+   M /irssi/trunk/src/core/session.c
+
+/UPGRADE didn't work properly when you were connected to multiple servers.
+
+------------------------------------------------------------------------
+r2079 | cras | 2001-11-19 13:33:28 +0000 (Mon, 19 Nov 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/core/session.c
+
+session_set_binary() - we can't get the full path to irssi binary from
+argv[0] and we need it, so its searched now.
+
+------------------------------------------------------------------------
+r2078 | cras | 2001-11-19 13:14:37 +0000 (Mon, 19 Nov 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/channel-rec.h
+   M /irssi/trunk/src/core/channels.c
+   M /irssi/trunk/src/irc/core/irc-session.c
+
+-botcmd isn't now sent to channels when /UPGRADEing.
+
+------------------------------------------------------------------------
+r2077 | cras | 2001-11-19 13:02:39 +0000 (Mon, 19 Nov 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/channel-events.c
+
+/SET join_auto_chans_on_invite - patch by tygrys@moo.pl
+
+------------------------------------------------------------------------
+r2076 | cras | 2001-11-19 12:46:15 +0000 (Mon, 19 Nov 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/gui-readline.c
+
+Removed GLib error when doing /RELOAD.
+
+------------------------------------------------------------------------
+r2075 | cras | 2001-11-19 12:42:48 +0000 (Mon, 19 Nov 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/irc-session.c
+
+Topics weren't restored on /UPGRADE.
+
+------------------------------------------------------------------------
+r2074 | cras | 2001-11-19 02:46:26 +0000 (Mon, 19 Nov 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/dcc/fe-dcc-send.c
+   M /irssi/trunk/src/irc/dcc/dcc-send.c
+
+If /SET dcc_upload_path is empty, we should use the current directory, not
+root directory.
+
+------------------------------------------------------------------------
+r2073 | cras | 2001-11-19 02:25:42 +0000 (Mon, 19 Nov 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/dcc/fe-dcc-send.c
+
+Filename completion for /DCC SEND looked files from wrong default directory.
+
+------------------------------------------------------------------------
+r2072 | cras | 2001-11-19 02:00:18 +0000 (Mon, 19 Nov 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/session.c
+
+Added syntax comment for /UPGRADE
+
+------------------------------------------------------------------------
+r2071 | cras | 2001-11-19 01:54:02 +0000 (Mon, 19 Nov 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/session.c
+
+A few more updates.
+
+------------------------------------------------------------------------
+r2070 | cras | 2001-11-19 01:48:58 +0000 (Mon, 19 Nov 2001) | 4 lines
+Changed paths:
+   M /irssi/trunk/src/core/Makefile.am
+   M /irssi/trunk/src/core/core.c
+   M /irssi/trunk/src/core/server-rec.h
+   M /irssi/trunk/src/core/servers.c
+   A /irssi/trunk/src/core/session.c
+   A /irssi/trunk/src/core/session.h
+   M /irssi/trunk/src/fe-text/irssi.c
+   M /irssi/trunk/src/irc/core/Makefile.am
+   M /irssi/trunk/src/irc/core/irc-core.c
+   M /irssi/trunk/src/irc/core/irc-servers.c
+   A /irssi/trunk/src/irc/core/irc-session.c
+
+/UPGRADE - upgrade-on-the-fly feature. Currently only moves the active
+server connections to the new irssi process, but that should be enough to
+never quit from IRC again :)
+
+------------------------------------------------------------------------
+r2069 | cras | 2001-11-19 01:30:13 +0000 (Mon, 19 Nov 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/fe-events-numeric.c
+
+Event 001 wasn't printed to screen.
+
+------------------------------------------------------------------------
+r2068 | cras | 2001-11-18 23:29:18 +0000 (Sun, 18 Nov 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/irc-servers.c
+
+Data sent to server with /RAWQUOTE didn't show up properly in rawlog unless
+it ended with \r\n.
+
+------------------------------------------------------------------------
+r2067 | cras | 2001-11-18 22:27:58 +0000 (Sun, 18 Nov 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/default.theme
+   M /irssi/trunk/src/fe-common/core/fe-channels.c
+   M /irssi/trunk/src/fe-common/core/module-formats.c
+   M /irssi/trunk/src/fe-common/core/module-formats.h
+
+Added new formats for ops/halfops/voices in /NAMES list.
+
+------------------------------------------------------------------------
+r2066 | cras | 2001-11-18 22:17:31 +0000 (Sun, 18 Nov 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/statusbar-items.c
+   M /irssi/trunk/src/fe-text/textbuffer-view.c
+   M /irssi/trunk/src/fe-text/textbuffer-view.h
+
+--more-- works again, better than ever :)
+
+------------------------------------------------------------------------
+r2065 | cras | 2001-11-18 22:15:56 +0000 (Sun, 18 Nov 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/statusbar.c
+
+back to "Irssi didn't always remove the statusbar item from screen when it
+should have." bug - this time with right-aligned items :)
+
+------------------------------------------------------------------------
+r2064 | cras | 2001-11-18 22:09:02 +0000 (Sun, 18 Nov 2001) | 4 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/term-terminfo.c
+
+term_refresh(): Change the color to black after everything is done. It's
+annoying when the color usually was left to the statusbar's color and when
+ssh connection to irssi dropped, the terminal's background changed to blue..
+
+------------------------------------------------------------------------
+r2063 | cras | 2001-11-18 21:36:11 +0000 (Sun, 18 Nov 2001) | 4 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/ctcp.c
+   M /irssi/trunk/src/irc/core/ctcp.h
+   M /irssi/trunk/src/perl/Makefile.am
+   A /irssi/trunk/src/perl/irc/Ctcp.xs
+   M /irssi/trunk/src/perl/irc/Irc.xs
+   M /irssi/trunk/src/perl/irc/Server.xs
+
+Added ctcp_register() and ctcp_unregister() for registering CTCP commands.
+It's used by CTCP CLIENTINFO to print list of known CTCP commands. Also
+added CTCP USERINFO command + /SET ctcp_userinfo_reply.
+
+------------------------------------------------------------------------
+r2062 | cras | 2001-11-18 19:37:18 +0000 (Sun, 18 Nov 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/Makefile.am
+   M /irssi/trunk/src/fe-common/core/autorun.c
+   A /irssi/trunk/src/fe-common/core/autorun.h
+   M /irssi/trunk/src/fe-common/core/fe-common-core.c
+
+Execute ~/.irssi/startup before autoconnecting to servers. This way you can
+get autoconnecting work with dynamically loaded chat protocols.
+
+------------------------------------------------------------------------
+r2061 | cras | 2001-11-18 19:01:47 +0000 (Sun, 18 Nov 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/perl/ui/Window.xs
+
+Irssi::Server::print()'s level parameter wasn't optional like in other
+print()s.
+
+------------------------------------------------------------------------
+r2060 | cras | 2001-11-18 18:16:14 +0000 (Sun, 18 Nov 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/statusbar.c
+
+typobugfix for previous commit.
+
+------------------------------------------------------------------------
+r2059 | cras | 2001-11-18 18:12:28 +0000 (Sun, 18 Nov 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/gui-readline.c
+
+Don't handle keypresses when there's no active entry in screen.
+
+------------------------------------------------------------------------
+r2058 | cras | 2001-11-18 18:06:51 +0000 (Sun, 18 Nov 2001) | 4 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/statusbar.c
+
+After calls to statusbar_item_register() and statusbar_item_unregister(),
+the statusbars should be redrawn. This also fixes the crash at quit when
+using statusbar perl scripts.
+
+------------------------------------------------------------------------
+r2057 | cras | 2001-11-18 17:41:10 +0000 (Sun, 18 Nov 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/irc-commands.c
+
+If you did quickly /WHOIS existing_nick, /WHOIS not_existing_nick, irssi
+printed one extra "End of WHOIS" message in screen.
+
+------------------------------------------------------------------------
+r2056 | cras | 2001-11-18 17:13:24 +0000 (Sun, 18 Nov 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/docs/perl.txt
+
+Added Chatnet, Process and updated redirection text.
+
+------------------------------------------------------------------------
+r2055 | cras | 2001-11-18 16:36:31 +0000 (Sun, 18 Nov 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/perl/perl-common.c
+
+Irssi::Chatnet can now be accessed from perl.
+
+------------------------------------------------------------------------
+r2054 | cras | 2001-11-18 16:27:49 +0000 (Sun, 18 Nov 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/perl/common/Server.xs
+
+Added Irssi::chatnets() and chatnet_find()
+
+------------------------------------------------------------------------
+r2053 | cras | 2001-11-18 16:16:13 +0000 (Sun, 18 Nov 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/perl/irssi-core.pl
+   M /irssi/trunk/src/perl/perl-core.c
+
+/SCRIPT UNLOAD didn't destroy the perl package from memory. Also the scripts
+weren't destroyed when error occured in them.
+
+------------------------------------------------------------------------
+r2052 | cras | 2001-11-18 15:07:03 +0000 (Sun, 18 Nov 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/servers-redirect.c
+
+Stop the redirection if we receive unknown event and it's not numeric.
+
+------------------------------------------------------------------------
+r2051 | cras | 2001-11-18 14:28:04 +0000 (Sun, 18 Nov 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/textbuffer-view.c
+
+Fixed the "multiple space split" fix :) It was causing crashes, strange that
+it worked in my tests..
+
+------------------------------------------------------------------------
+r2050 | cras | 2001-11-18 13:43:05 +0000 (Sun, 18 Nov 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/fe-irc-messages.c
+
+Even if notice is from server, print it to given target, since it could be
+meant for some channel.
+
+------------------------------------------------------------------------
+r2049 | cras | 2001-11-18 13:40:51 +0000 (Sun, 18 Nov 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-ignore.c
+
+When printing /IGNORE list, if there's no ignores print the
+IGNORE_NO_IGNORES format which wasn't used before for anything..
+
+------------------------------------------------------------------------
+r2048 | cras | 2001-11-18 12:35:19 +0000 (Sun, 18 Nov 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/irc/proxy/listen.c
+
+Reply to PINGs ourself if destination was proxy's address, our own nick or
+no destination at all.
+
+------------------------------------------------------------------------
+r2047 | cras | 2001-11-18 11:56:41 +0000 (Sun, 18 Nov 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/gui-windows.c
+
+Sometimes when changing from split window to another, irssi crashed/messed
+up the screen. Happened mostly if the window layout was saved.
+
+------------------------------------------------------------------------
+r2046 | cras | 2001-11-18 10:55:14 +0000 (Sun, 18 Nov 2001) | 5 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/channels-query.c
+   M /irssi/trunk/src/irc/core/ctcp.c
+   M /irssi/trunk/src/irc/core/irc-servers.c
+   M /irssi/trunk/src/irc/core/netsplit.c
+   M /irssi/trunk/src/irc/core/servers-redirect.c
+
+When destroying data used from server in "server disconnected" signal, set
+the data to NULL as well, the server record is still used after the signal
+is finished (the channels it uses are destroyed, which may trigger scripts
+etc.)
+
+------------------------------------------------------------------------
+r2045 | cras | 2001-11-17 17:15:55 +0000 (Sat, 17 Nov 2001) | 4 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/textbuffer-view.c
+
+If line was split from multiple spaces, irssi printed the spaces in the
+beginning of the next line - which wasn't good if the next line was
+statusbar..
+
+------------------------------------------------------------------------
+r2044 | cras | 2001-11-17 16:39:23 +0000 (Sat, 17 Nov 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/statusbar.c
+
+Irssi didn't always remove the statusbar item from screen when it should
+have.
+
+------------------------------------------------------------------------
+r2043 | cras | 2001-11-17 15:59:33 +0000 (Sat, 17 Nov 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/modes.h
+
+added +q channel mode to HAS_MODE_ARG_ALWAYS() list.
+
+------------------------------------------------------------------------
+r2042 | cras | 2001-11-17 14:20:17 +0000 (Sat, 17 Nov 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/channels-query.c
+
+329 event reply for MODE #channel shouldn't go to "chanquery abort", but
+we'd rather just want to print it.
+
+------------------------------------------------------------------------
+r2041 | cras | 2001-11-17 12:02:28 +0000 (Sat, 17 Nov 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/perl/module-formats.c
+
+"error loading script" -> "error in script" because it can be printed at any
+time.
+
+------------------------------------------------------------------------
+r2040 | cras | 2001-11-17 00:25:20 +0000 (Sat, 17 Nov 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/perl/textui/TextUI.xs
+   A /irssi/trunk/src/perl/ui/Formats.xs
+   M /irssi/trunk/src/perl/ui/Themes.xs
+   M /irssi/trunk/src/perl/ui/UI.xs
+
+Didn't I already commit these? .. added format_get_text(),
+gui_printtext_after(), last_line_insert() and fixed a few memleaks.
+
+------------------------------------------------------------------------
+r2039 | cras | 2001-11-17 00:23:21 +0000 (Sat, 17 Nov 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/servers-redirect.h
+
+Forgot to update this for server_redirect_register()
+
+------------------------------------------------------------------------
+r2038 | cras | 2001-11-17 00:12:04 +0000 (Sat, 17 Nov 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/perl/Makefile.am
+
+added ui/Formats.xs to EXTRA_DIST
+
+------------------------------------------------------------------------
+r2037 | cras | 2001-11-17 00:07:24 +0000 (Sat, 17 Nov 2001) | 5 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/servers-redirect.c
+   M /irssi/trunk/src/perl/irc/Server.xs
+
+Added support for "optional events" in redirection. They're checked right
+after stop-signal is received. This fixes /WHOIS non_existing_nick in OPN,
+and also hides the Channel created-event when joining to channel that's
+received in several networks after /MODE #channel.
+
+------------------------------------------------------------------------
+r2036 | cras | 2001-11-16 23:42:09 +0000 (Fri, 16 Nov 2001) | 5 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/servers-redirect.c
+
+Allow replies to redirections come in a bit different order than expected -
+default is if 3 replies to other redirections are received, abort the
+expected one. This is because some IRC bouncers reply to some of the
+commands (PING) themself immediately.
+
+------------------------------------------------------------------------
+r2035 | cras | 2001-11-16 21:35:18 +0000 (Fri, 16 Nov 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/perl/common/Core.xs
+
+Fixed a few memory leaks
+
+------------------------------------------------------------------------
+r2034 | cras | 2001-11-16 16:51:56 +0000 (Fri, 16 Nov 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/window-items.c
+
+added assert to window_item_add().
+
+------------------------------------------------------------------------
+r2033 | cras | 2001-11-16 16:17:16 +0000 (Fri, 16 Nov 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/perl/common/Core.xs
+
+Added Irssi::version() for returning the IRSSI_VERSION_DATE, fixed get_irssi_dir() and get_irssi_config() not to complain about const char*.
+
+------------------------------------------------------------------------
+r2032 | cras | 2001-11-16 14:49:17 +0000 (Fri, 16 Nov 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/servers-redirect.c
+
+Added "your not chanop" failure to I-mode as well.
+
+------------------------------------------------------------------------
+r2031 | cras | 2001-11-16 14:39:33 +0000 (Fri, 16 Nov 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/channels-query.c
+
+If the last query fails we should make the channel synced.
+
+------------------------------------------------------------------------
+r2030 | cras | 2001-11-16 14:18:26 +0000 (Fri, 16 Nov 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/servers-redirect.c
+
+ISON and USERHOST redirections were registered wrong.
+
+------------------------------------------------------------------------
+r2029 | cras | 2001-11-16 11:50:14 +0000 (Fri, 16 Nov 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/core/settings.c
+   M /irssi/trunk/src/perl/common/Core.xs
+
+"setup reread" signal now sends the config file as parameter. Added
+Irssi::get_irssi_dir() and Irssi::get_irssi_config(). Patch by peder@linpro.no
+
+------------------------------------------------------------------------
+r2028 | cras | 2001-11-16 10:05:21 +0000 (Fri, 16 Nov 2001) | 4 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/term-curses.c
+   M /irssi/trunk/src/fe-text/term-terminfo.c
+   M /irssi/trunk/src/fe-text/term.c
+   M /irssi/trunk/src/fe-text/term.h
+   M /irssi/trunk/src/fe-text/terminfo-core.c
+   M /irssi/trunk/src/fe-text/terminfo-core.h
+
+Removed /SET term_scroll_fast - looks like il/dl commands work fine with
+scrolling region at least in xterm and linux console, so it looks nice and
+is fast.
+
+------------------------------------------------------------------------
+r2027 | cras | 2001-11-15 22:51:50 +0000 (Thu, 15 Nov 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/notifylist/fe-notifylist.c
+
+When printing notify joins/leaves, don't print them with hilight color after
+all.. they're annoying when they create autolog files.
+
+------------------------------------------------------------------------
+r2026 | cras | 2001-11-15 22:36:12 +0000 (Thu, 15 Nov 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/textbuffer.c
+
+textbuffer_insert() didn't work properly when trying to add empty string.
+
+------------------------------------------------------------------------
+r2025 | cras | 2001-11-15 21:01:38 +0000 (Thu, 15 Nov 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/textbuffer-view.c
+
+The default color for line should be ATTR_RESET, not 0 (black).
+
+------------------------------------------------------------------------
+r2024 | cras | 2001-11-15 20:49:12 +0000 (Thu, 15 Nov 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/mainwindows.c
+
+/WINDOW DOWN and /WINDOW UP now cycle to highest/lowest window.
+
+------------------------------------------------------------------------
+r2023 | cras | 2001-11-15 20:02:15 +0000 (Thu, 15 Nov 2001) | 6 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/themes.c
+   M /irssi/trunk/src/fe-common/core/themes.h
+   M /irssi/trunk/src/fe-text/statusbar.c
+
+Changed the escaping system - theme_format_expand_data()'s
+EXPAND_FLAG_IGNORE_EMPTY now also checks if the argument is a $variable that
+is empty. Statusbar now first expands the formats and after then expands
+$variables. Should fix at least when trying to print #$$$ channel in
+statusbar.
+
+------------------------------------------------------------------------
+r2022 | cras | 2001-11-15 18:57:31 +0000 (Thu, 15 Nov 2001) | 4 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/statusbar-config.c
+
+When overriding default statusbars, don't forget the
+type/placement/position/visible settings if they're not specified in new
+statusbar config.
+
+------------------------------------------------------------------------
+r2021 | cras | 2001-11-15 18:44:58 +0000 (Thu, 15 Nov 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/statusbar.c
+
+Right-aligned statusbar items weren't positioned correctly.
+
+------------------------------------------------------------------------
+r2020 | cras | 2001-11-15 18:37:33 +0000 (Thu, 15 Nov 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/irc-commands.c
+
+/QUOTE and /RAWQUOTE should work as soon as the socket is connected.
+
+------------------------------------------------------------------------
+r2019 | cras | 2001-11-15 16:29:25 +0000 (Thu, 15 Nov 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/servers-redirect.c
+
+print failed redirections to rawlog even if there's no failure signal.
+
+------------------------------------------------------------------------
+r2018 | cras | 2001-11-15 16:18:11 +0000 (Thu, 15 Nov 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/irc-commands.c
+
+/WHOIS nick_who_was_in_irc showed only the first and last lines of /WHOWAS.
+
+------------------------------------------------------------------------
+r2017 | cras | 2001-11-15 16:11:57 +0000 (Thu, 15 Nov 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/irssi.conf
+
+changed the infobar text - "read it to get rid of this"
+
+------------------------------------------------------------------------
+r2016 | cras | 2001-11-15 13:47:51 +0000 (Thu, 15 Nov 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/server-rec.h
+   M /irssi/trunk/src/fe-common/core/fe-server.c
+   M /irssi/trunk/src/fe-text/statusbar-items.c
+   M /irssi/trunk/src/irc/core/lag.c
+
+Lag checking fixes - should work fine again.
+
+------------------------------------------------------------------------
+r2015 | cras | 2001-11-15 00:52:35 +0000 (Thu, 15 Nov 2001) | 6 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/term-curses.c
+   M /irssi/trunk/src/fe-text/term-terminfo.c
+   M /irssi/trunk/src/fe-text/term.c
+   M /irssi/trunk/src/fe-text/term.h
+   M /irssi/trunk/src/fe-text/terminfo-core.c
+   M /irssi/trunk/src/fe-text/terminfo-core.h
+
+/SET force_colors -> /SET term_force_colors. Added /SET term_scroll_fast
+option to specify if we want to scroll with fastest method, or the cleanest
+method. The default is cleanest and it looks best with xterm, with some
+other terminals where line-by-line scroll is slow, you might want to use the
+fast scrolling.
+
+------------------------------------------------------------------------
+r2014 | cras | 2001-11-15 00:32:30 +0000 (Thu, 15 Nov 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/term-terminfo.c
+
+Scrolling should dirty the whole scrolling area, not just the new lines.
+
+------------------------------------------------------------------------
+r2013 | cras | 2001-11-15 00:21:24 +0000 (Thu, 15 Nov 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/core/chat-protocols.c
+
+Don't crash when connecting to server with unknown chat protocol (eg.
+specified in config file but module not loaded yet).
+
+------------------------------------------------------------------------
+r2012 | cras | 2001-11-15 00:08:26 +0000 (Thu, 15 Nov 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/notifylist/notify-ison.c
+
+Small optimization for whois-redirecting.
+
+------------------------------------------------------------------------
+r2011 | cras | 2001-11-15 00:04:16 +0000 (Thu, 15 Nov 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/perl/irc/Server.xs
+
+redirect_event() didn't give the correct parameter to event_hash2list().
+Changed void* parameters -> SV* and using them directly instead of ST(x).
+
+------------------------------------------------------------------------
+r2010 | cras | 2001-11-14 23:37:39 +0000 (Wed, 14 Nov 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/notifylist/notify-ison.c
+
+WHOIS command should be sent after redirecting, not before..
+
+------------------------------------------------------------------------
+r2009 | cras | 2001-11-14 23:30:21 +0000 (Wed, 14 Nov 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/channels-query.c
+
+Still some syncing fixes. Don't loop forever now if we don't find the reply
+to mode/who.
+
+------------------------------------------------------------------------
+r2008 | cras | 2001-11-14 23:23:00 +0000 (Wed, 14 Nov 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/servers-redirect.c
+
+Report failed redirections in rawlog.
+
+------------------------------------------------------------------------
+r2007 | cras | 2001-11-14 22:43:48 +0000 (Wed, 14 Nov 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/servers-redirect.c
+
+Redirect parameters should be matched case-insensitively
+
+------------------------------------------------------------------------
+r2006 | cras | 2001-11-14 21:56:09 +0000 (Wed, 14 Nov 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/channels-query.c
+
+Yet another bugfix for channel sync.
+
+------------------------------------------------------------------------
+r2005 | cras | 2001-11-14 21:48:24 +0000 (Wed, 14 Nov 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/channels-query.c
+
+Channel syncing rewrites.
+
+------------------------------------------------------------------------
+r2004 | cras | 2001-11-14 16:31:09 +0000 (Wed, 14 Nov 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/settings.c
+
+typofix
+
+------------------------------------------------------------------------
+r2003 | cras | 2001-11-14 16:28:56 +0000 (Wed, 14 Nov 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/settings.c
+   M /irssi/trunk/src/core/settings.h
+   M /irssi/trunk/src/fe-common/core/fe-settings.c
+
+settings_save() now sends "setup saved" signal - patch by peder@ifi.uio.no
+
+------------------------------------------------------------------------
+r2002 | cras | 2001-11-14 15:31:11 +0000 (Wed, 14 Nov 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/irssi.conf
+
+OPN's max_modes changed 6 -> 4
+
+------------------------------------------------------------------------
+r2001 | cras | 2001-11-14 12:33:45 +0000 (Wed, 14 Nov 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/perl/ui/Themes.xs
+
+typofix
+
+------------------------------------------------------------------------
+r2000 | cras | 2001-11-13 13:01:09 +0000 (Tue, 13 Nov 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/textbuffer-view.c
+
+Reset the terminal color before scrolling, so the scrolled area's background doesn't get non-black..
+
+------------------------------------------------------------------------
+r1999 | cras | 2001-11-12 22:15:04 +0000 (Mon, 12 Nov 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/fe-events.c
+   M /irssi/trunk/src/irc/core/channels-query.c
+   M /irssi/trunk/src/irc/core/irc-commands.c
+   M /irssi/trunk/src/irc/core/lag.c
+   M /irssi/trunk/src/irc/core/servers-idle.c
+   M /irssi/trunk/src/irc/core/servers-idle.h
+   M /irssi/trunk/src/irc/core/servers-redirect.c
+   M /irssi/trunk/src/irc/core/servers-redirect.h
+   M /irssi/trunk/src/irc/notifylist/notify-ison.c
+   M /irssi/trunk/src/irc/proxy/listen.c
+   M /irssi/trunk/src/perl/irc/Server.xs
+
+Redirection fixes - added count parameter.
+
+------------------------------------------------------------------------
+r1998 | cras | 2001-11-12 22:03:07 +0000 (Mon, 12 Nov 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/expandos.c
+
+%X should generate "time changed" every second too.
+
+------------------------------------------------------------------------
+r1997 | cras | 2001-11-12 21:33:12 +0000 (Mon, 12 Nov 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/docs/help/in/nick.in
+
+Updated
+
+------------------------------------------------------------------------
+r1996 | cras | 2001-11-12 19:17:04 +0000 (Mon, 12 Nov 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/docs/startup-HOWTO.html
+
+Typofixes to -bots commands - *!*@bot@.. -> *!*bot@...
+
+------------------------------------------------------------------------
+r1995 | cras | 2001-11-12 17:39:01 +0000 (Mon, 12 Nov 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/mainwindows.c
+
+Closing last non-sticky window didn't destroy the split window.
+
+------------------------------------------------------------------------
+r1994 | cras | 2001-11-12 14:49:21 +0000 (Mon, 12 Nov 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/perl/irc/Server.xs
+
+redirect_event() fixed to change empty arg/failure_signal to NULL
+
+------------------------------------------------------------------------
+r1993 | cras | 2001-11-12 14:17:23 +0000 (Mon, 12 Nov 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/expandos.c
+
+extra check to make sure the "timer changed" signal is sent at startup.
+
+------------------------------------------------------------------------
+r1992 | cras | 2001-11-12 13:53:58 +0000 (Mon, 12 Nov 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/mainwindows.c
+
+/WINDOW BALANCE was buggy sometimes - thanks to poptix for finding it :)
+
+------------------------------------------------------------------------
+r1991 | cras | 2001-11-12 09:32:11 +0000 (Mon, 12 Nov 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/terminfo-core.c
+
+Prefer scrolling with n lines insert/remove to 1 line at a time scrolling
+region.
+
+------------------------------------------------------------------------
+r1990 | cras | 2001-11-12 09:15:39 +0000 (Mon, 12 Nov 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/Makefile.am
+   D /irssi/trunk/src/fe-text/statusbar-items.h
+   M /irssi/trunk/src/fe-text/statusbar.c
+
+Removed statusbar-items.h
+
+------------------------------------------------------------------------
+r1989 | cras | 2001-11-12 09:13:12 +0000 (Mon, 12 Nov 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/perl/irc/Server.xs
+
+Added Irssi::redirect_get_signal() and Irssi::redirect_peek_signal().
+Changed syntax of Irssi::redirect_register() and Irssi::redirect_event().
+
+------------------------------------------------------------------------
+r1988 | cras | 2001-11-11 22:44:47 +0000 (Sun, 11 Nov 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/servers-redirect.c
+   M /irssi/trunk/src/irc/core/servers-redirect.h
+
+added server_redirect_peek_signal() function.
+
+------------------------------------------------------------------------
+r1987 | cras | 2001-11-11 22:42:26 +0000 (Sun, 11 Nov 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-common-core.c
+
+--version now shows the date version too.
+
+------------------------------------------------------------------------
+r1986 | cras | 2001-11-11 22:41:03 +0000 (Sun, 11 Nov 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/irc/proxy/dump.c
+   M /irssi/trunk/src/irc/proxy/listen.c
+
+Fixed to work with new redirection code. Also don't set the mode to +(null)
+if there's no server mode.
+
+------------------------------------------------------------------------
+r1985 | cras | 2001-11-11 22:39:56 +0000 (Sun, 11 Nov 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/perl/common/Irssi.xs
+   M /irssi/trunk/src/perl/module.h
+   M /irssi/trunk/src/perl/perl-core.c
+   M /irssi/trunk/src/perl/perl-core.h
+   M /irssi/trunk/src/perl/textui/TextUI.xs
+   M /irssi/trunk/src/perl/ui/UI.xs
+
+Updated perl API version. Fixed irssi to behave better if the API doesn't
+match (doesn't crash).
+
+------------------------------------------------------------------------
+r1984 | cras | 2001-11-11 20:27:46 +0000 (Sun, 11 Nov 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/servers-redirect.c
+
+"mode e" was registered twice - the second one should have been "mode I".
+
+------------------------------------------------------------------------
+r1983 | cras | 2001-11-11 20:20:43 +0000 (Sun, 11 Nov 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/channels-query.c
+   M /irssi/trunk/src/irc/core/irc-commands.c
+   M /irssi/trunk/src/irc/core/irc-servers.c
+   M /irssi/trunk/src/irc/core/irc-servers.h
+   M /irssi/trunk/src/irc/core/irc.c
+   M /irssi/trunk/src/irc/core/irc.h
+   M /irssi/trunk/src/irc/core/servers-redirect.c
+   M /irssi/trunk/src/irc/core/servers-redirect.h
+
+Redirection fixes.
+
+------------------------------------------------------------------------
+r1982 | cras | 2001-11-11 20:05:10 +0000 (Sun, 11 Nov 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/core/rawlog.c
+
+/RAWLOG commands should work immediately after connection to server was
+accepted (ie. don't wait for 001 event from server).
+
+------------------------------------------------------------------------
+r1981 | cras | 2001-11-11 19:02:32 +0000 (Sun, 11 Nov 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/irc-commands.c
+
+/WHOIS unknown_nick printed the "there was no such nickname" message
+as well as the "there is no such nick" message.
+
+------------------------------------------------------------------------
+r1980 | cras | 2001-11-11 18:59:19 +0000 (Sun, 11 Nov 2001) | 5 lines
+Changed paths:
+   M /irssi/trunk/src/core/Makefile.am
+   M /irssi/trunk/src/core/commands.c
+   M /irssi/trunk/src/core/server-rec.h
+   D /irssi/trunk/src/core/servers-redirect.c
+   D /irssi/trunk/src/core/servers-redirect.h
+   M /irssi/trunk/src/core/servers.c
+   M /irssi/trunk/src/fe-common/irc/fe-events.c
+   M /irssi/trunk/src/irc/core/Makefile.am
+   M /irssi/trunk/src/irc/core/channels-query.c
+   M /irssi/trunk/src/irc/core/ctcp.c
+   M /irssi/trunk/src/irc/core/irc-commands.c
+   M /irssi/trunk/src/irc/core/irc-servers.c
+   M /irssi/trunk/src/irc/core/irc-servers.h
+   M /irssi/trunk/src/irc/core/irc.c
+   M /irssi/trunk/src/irc/core/lag.c
+   D /irssi/trunk/src/irc/core/server-idle.c
+   D /irssi/trunk/src/irc/core/server-idle.h
+   A /irssi/trunk/src/irc/core/servers-idle.c
+   A /irssi/trunk/src/irc/core/servers-idle.h
+   A /irssi/trunk/src/irc/core/servers-redirect.c
+   A /irssi/trunk/src/irc/core/servers-redirect.h
+   M /irssi/trunk/src/irc/notifylist/module.h
+   M /irssi/trunk/src/irc/notifylist/notify-ison.c
+   M /irssi/trunk/src/irc/notifylist/notify-whois.c
+   M /irssi/trunk/src/irc/notifylist/notifylist.c
+   M /irssi/trunk/src/perl/common/Server.xs
+   M /irssi/trunk/src/perl/common/module.h
+   M /irssi/trunk/src/perl/irc/Server.xs
+   M /irssi/trunk/src/perl/irc/module.h
+
+Moved rewritten server redirection code from core to irc. This new code
+should be able to do the redirecting a lot more error-proof. Changed
+lag-checking to use PINGs instead of NOTIFYs. This breaks scripts using
+redirection. Hopefully this doesn't break too much things in irssi :)
+
+------------------------------------------------------------------------
+r1979 | cras | 2001-11-10 20:15:24 +0000 (Sat, 10 Nov 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/core/network.c
+
+net_listen(): if creating IPv6 socket fails because of EPROTONOSUPPORT, try
+without IPv6.
+
+------------------------------------------------------------------------
+r1978 | cras | 2001-11-07 14:35:00 +0000 (Wed, 07 Nov 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/network.c
+
+net_connect(): if bind() fails, set the address back to INADDR_ANY to make sure it doesn't leave the socket in buggy state.
+
+------------------------------------------------------------------------
+r1977 | cras | 2001-11-07 14:10:13 +0000 (Wed, 07 Nov 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/docs/help/in/rawlog.in
+
+separated the different /RAWLOG commands with empty lines - otherwise irssi would join those lines into one when printing it..
+
+------------------------------------------------------------------------
+r1976 | cras | 2001-11-07 11:54:44 +0000 (Wed, 07 Nov 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/docs/startup-HOWTO.html
+
+Removed " = " in /SET autolog_path example - it really shouldn't be there :)
+
+------------------------------------------------------------------------
+r1975 | cras | 2001-11-05 14:48:03 +0000 (Mon, 05 Nov 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/Makefile.am
+   M /irssi/trunk/src/fe-common/core/Makefile.am
+   M /irssi/trunk/src/fe-common/irc/Makefile.am
+   M /irssi/trunk/src/fe-common/irc/dcc/Makefile.am
+   M /irssi/trunk/src/fe-common/irc/notifylist/Makefile.am
+   M /irssi/trunk/src/fe-none/Makefile.am
+   M /irssi/trunk/src/fe-text/Makefile.am
+   M /irssi/trunk/src/irc/bot/Makefile.am
+   M /irssi/trunk/src/irc/core/Makefile.am
+   M /irssi/trunk/src/irc/dcc/Makefile.am
+   M /irssi/trunk/src/irc/flood/Makefile.am
+   M /irssi/trunk/src/irc/notifylist/Makefile.am
+   M /irssi/trunk/src/irc/proxy/Makefile.am
+   M /irssi/trunk/src/lib-config/Makefile.am
+   M /irssi/trunk/src/lib-popt/Makefile.am
+   M /irssi/trunk/src/perl/Makefile.am
+
+Moved $(GLIB_CFLAGS) after -I includes, to make sure our own .h files get before possibly identically named headers in the glib's include directory.
+
+------------------------------------------------------------------------
+r1974 | cras | 2001-11-05 14:13:52 +0000 (Mon, 05 Nov 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/configure.in
+
+Terminfo is now the default, always.
+
+------------------------------------------------------------------------
+r1973 | cras | 2001-11-05 11:47:52 +0000 (Mon, 05 Nov 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-channels.c
+
+/CHANNEL xxx - don't crash if not connected to server.
+
+------------------------------------------------------------------------
+r1972 | cras | 2001-11-04 21:47:37 +0000 (Sun, 04 Nov 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/textbuffer-view.c
+
+Still messing up with colors.
+
+------------------------------------------------------------------------
+r1971 | cras | 2001-11-04 20:13:24 +0000 (Sun, 04 Nov 2001) | 2 lines
+Changed paths:
+   D /irssi/trunk/src/fe-common/irc/fe-common-irc.h
+
+removed, not needed.
+
+------------------------------------------------------------------------
+r1970 | cras | 2001-11-04 18:11:59 +0000 (Sun, 04 Nov 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/irc-commands.c
+
+Looks like I went and broke /PART accidentally..
+
+------------------------------------------------------------------------
+r1969 | cras | 2001-11-04 14:36:51 +0000 (Sun, 04 Nov 2001) | 4 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/fe-irc-commands.c
+   M /irssi/trunk/src/irc/core/irc-commands.c
+
+Stupid me, remembered wrong how PARAM_FLAG_OPTCHAN worked. This broke /CTCP,
+/NCTCP and /NOTICE for non-channel targets. Back to old code, except "*" is
+now treated as active target.
+
+------------------------------------------------------------------------
+r1968 | cras | 2001-11-03 22:52:49 +0000 (Sat, 03 Nov 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/Makefile.am
+
+Added missing irc-commands.h
+
+------------------------------------------------------------------------
+r1967 | cras | 2001-11-03 18:36:40 +0000 (Sat, 03 Nov 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/fe-irc-commands.c
+   M /irssi/trunk/src/irc/core/irc-commands.c
+
+* works now as active channel with /NOTICE, /CTCP and /NCTCP.
+
+------------------------------------------------------------------------
+r1966 | cras | 2001-11-03 15:31:13 +0000 (Sat, 03 Nov 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/term-terminfo.c
+
+Virtualized cursor movement and clearing to end of line. Now neither is done
+unless really needed.
+
+------------------------------------------------------------------------
+r1965 | cras | 2001-11-03 14:50:43 +0000 (Sat, 03 Nov 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/textbuffer-view.c
+
+Don't clear the window before redrawing, it's faster to do it at the same
+time window is being redrawn.
+
+------------------------------------------------------------------------
+r1964 | cras | 2001-11-03 14:42:28 +0000 (Sat, 03 Nov 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/term-terminfo.c
+   M /irssi/trunk/src/fe-text/terminfo-core.c
+   M /irssi/trunk/src/fe-text/terminfo-core.h
+
+Reset the color before clearing screen. Set the cursor invisible when moving
+around in screen and set it visible again when it's in wanted position.
+
+------------------------------------------------------------------------
+r1963 | cras | 2001-11-03 13:31:33 +0000 (Sat, 03 Nov 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/modes.c
+
+/OP, /DEOP, /VOICE and /DEVOICE fixed not to print glib error if used in
+non-channel window.
+
+------------------------------------------------------------------------
+r1962 | cras | 2001-11-03 13:28:06 +0000 (Sat, 03 Nov 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/textbuffer-view.c
+
+update_cmd_color() updated colors wrong.
+
+------------------------------------------------------------------------
+r1961 | cras | 2001-11-03 13:16:36 +0000 (Sat, 03 Nov 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/core/commands.c
+
+Commands that accepeted * parameter as active channel didn't work properly -
+active channel was used but the * wasn't removed from parameters.
+
+------------------------------------------------------------------------
+r1960 | cras | 2001-11-03 13:12:15 +0000 (Sat, 03 Nov 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/gui-readline.c
+   M /irssi/trunk/src/fe-text/term-terminfo.c
+
+Quit if terminal gets lost.
+
+------------------------------------------------------------------------
+r1959 | cras | 2001-11-03 12:58:36 +0000 (Sat, 03 Nov 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/servers-reconnect.c
+
+/RECONNECT ALL crashed irssi (typofix - s/unref/ref/ :)
+
+------------------------------------------------------------------------
+r1958 | cras | 2001-11-03 12:54:29 +0000 (Sat, 03 Nov 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/textbuffer-view.c
+
+Some fixes to drawing lines & handling long lines.
+
+------------------------------------------------------------------------
+r1957 | cras | 2001-11-03 10:54:04 +0000 (Sat, 03 Nov 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/irssi.conf
+
+Yet another fix of /UPTIME alias - maybe it finally works now :)
+
+------------------------------------------------------------------------
+r1956 | cras | 2001-11-02 14:53:39 +0000 (Fri, 02 Nov 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/bot/bot-events.c
+   M /irssi/trunk/src/irc/bot/bot-users.c
+   M /irssi/trunk/src/irc/proxy/module.h
+
+compile fix - patch by manoj@io.com
+
+------------------------------------------------------------------------
+r1955 | cras | 2001-11-02 01:05:14 +0000 (Fri, 02 Nov 2001) | 6 lines
+Changed paths:
+   M /irssi/trunk/src/core/chat-commands.c
+   M /irssi/trunk/src/core/commands.c
+   M /irssi/trunk/src/core/commands.h
+   M /irssi/trunk/src/core/rawlog.c
+   M /irssi/trunk/src/fe-common/core/fe-channels.c
+   M /irssi/trunk/src/fe-common/core/fe-core-commands.c
+   M /irssi/trunk/src/fe-common/core/module-formats.c
+   M /irssi/trunk/src/fe-common/core/module-formats.h
+   M /irssi/trunk/src/fe-common/irc/Makefile.am
+   M /irssi/trunk/src/fe-common/irc/dcc/module.h
+   M /irssi/trunk/src/fe-common/irc/fe-ctcp.c
+   M /irssi/trunk/src/fe-common/irc/fe-events-numeric.c
+   M /irssi/trunk/src/fe-common/irc/fe-events.c
+   M /irssi/trunk/src/fe-common/irc/fe-irc-channels.c
+   M /irssi/trunk/src/fe-common/irc/fe-irc-commands.c
+   M /irssi/trunk/src/fe-common/irc/fe-irc-messages.c
+   M /irssi/trunk/src/fe-common/irc/fe-irc-queries.c
+   M /irssi/trunk/src/fe-common/irc/fe-ircnet.c
+   M /irssi/trunk/src/fe-common/irc/fe-modes.c
+   M /irssi/trunk/src/fe-common/irc/fe-netjoin.c
+   M /irssi/trunk/src/fe-common/irc/fe-netsplit.c
+   M /irssi/trunk/src/fe-common/irc/module-formats.c
+   M /irssi/trunk/src/fe-common/irc/module-formats.h
+   M /irssi/trunk/src/fe-common/irc/module.h
+   M /irssi/trunk/src/fe-common/irc/notifylist/module.h
+   M /irssi/trunk/src/fe-text/Makefile.am
+   M /irssi/trunk/src/fe-text/irssi.c
+   M /irssi/trunk/src/irc/core/Makefile.am
+   M /irssi/trunk/src/irc/core/bans.c
+   M /irssi/trunk/src/irc/core/bans.h
+   M /irssi/trunk/src/irc/core/channel-events.c
+   M /irssi/trunk/src/irc/core/channel-rejoin.c
+   M /irssi/trunk/src/irc/core/channels-query.c
+   M /irssi/trunk/src/irc/core/ctcp.c
+   M /irssi/trunk/src/irc/core/irc-channels.c
+   M /irssi/trunk/src/irc/core/irc-channels.h
+   M /irssi/trunk/src/irc/core/irc-chatnets.h
+   M /irssi/trunk/src/irc/core/irc-commands.c
+   A /irssi/trunk/src/irc/core/irc-commands.h
+   M /irssi/trunk/src/irc/core/irc-core.c
+   M /irssi/trunk/src/irc/core/irc-expandos.c
+   M /irssi/trunk/src/irc/core/irc-masks.c
+   M /irssi/trunk/src/irc/core/irc-nicklist.c
+   M /irssi/trunk/src/irc/core/irc-nicklist.h
+   M /irssi/trunk/src/irc/core/irc-queries.c
+   M /irssi/trunk/src/irc/core/irc-queries.h
+   D /irssi/trunk/src/irc/core/irc-rawlog.c
+   M /irssi/trunk/src/irc/core/irc-servers-reconnect.c
+   M /irssi/trunk/src/irc/core/irc-servers.c
+   M /irssi/trunk/src/irc/core/irc-servers.h
+   M /irssi/trunk/src/irc/core/irc.c
+   M /irssi/trunk/src/irc/core/irc.h
+   M /irssi/trunk/src/irc/core/lag.c
+   M /irssi/trunk/src/irc/core/massjoin.c
+   M /irssi/trunk/src/irc/core/mode-lists.c
+   M /irssi/trunk/src/irc/core/mode-lists.h
+   M /irssi/trunk/src/irc/core/modes.c
+   M /irssi/trunk/src/irc/core/modes.h
+   M /irssi/trunk/src/irc/core/module.h
+   M /irssi/trunk/src/irc/core/server-idle.c
+   M /irssi/trunk/src/irc/core/server-idle.h
+   M /irssi/trunk/src/irc/dcc/dcc-autoget.c
+   M /irssi/trunk/src/irc/dcc/dcc-chat.c
+   M /irssi/trunk/src/irc/dcc/dcc-get.c
+   M /irssi/trunk/src/irc/dcc/dcc-send.c
+   M /irssi/trunk/src/irc/dcc/dcc.c
+   M /irssi/trunk/src/irc/dcc/dcc.h
+   M /irssi/trunk/src/irc/dcc/module.h
+   M /irssi/trunk/src/irc/flood/module.h
+   M /irssi/trunk/src/irc/notifylist/module.h
+
+Moved some stuff from irc to core. Added command_bind_proto() function to
+bind protocol-specific commands. Added #define command_bind_irc() for easier
+access. CMD_IRC_SERVER(server) check should be done at the beginning of each
+command requiring IRC server as active server, it handles it correctly the
+cases when it is not. Did some other cleanups as well.
+
+------------------------------------------------------------------------
+r1954 | cras | 2001-11-01 22:52:23 +0000 (Thu, 01 Nov 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/core/chat-commands.c
+   M /irssi/trunk/src/core/commands.c
+   M /irssi/trunk/src/core/ignore.c
+   M /irssi/trunk/src/core/server-rec.h
+   M /irssi/trunk/src/core/servers.h
+   M /irssi/trunk/src/fe-common/core/chat-completion.c
+   M /irssi/trunk/src/fe-common/core/fe-ignore.c
+   M /irssi/trunk/src/fe-common/core/fe-log.c
+   M /irssi/trunk/src/irc/core/irc-servers.c
+   M /irssi/trunk/src/perl/common/Server.xs
+
+server->ischannel(char *) -> server->ischannel(SERVER_REC *, char *). Added
+#define server_ischannel(server, data) and it's now used everywhere..
+
+------------------------------------------------------------------------
+r1953 | cras | 2001-11-01 22:30:45 +0000 (Thu, 01 Nov 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/textbuffer-view.c
+
+
+Buffer overflow fix (read-only, might have caused some crashes).
+
+------------------------------------------------------------------------
+r1952 | cras | 2001-11-01 21:04:26 +0000 (Thu, 01 Nov 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/mode-lists.c
+
+Check that it's IRC-channel we're destroying before doing any IRC-specific
+deinitialization.
+
+------------------------------------------------------------------------
+r1951 | cras | 2001-11-01 17:55:49 +0000 (Thu, 01 Nov 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/gui-windows.c
+
+indent_always setting was wrongly set when configuration was changed.
+
+------------------------------------------------------------------------
+r1950 | cras | 2001-10-31 23:30:34 +0000 (Wed, 31 Oct 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/modules-load.c
+
+Crashfix when module didn't contain deinit() function.
+
+------------------------------------------------------------------------
+r1949 | cras | 2001-10-31 15:18:18 +0000 (Wed, 31 Oct 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/log.c
+   M /irssi/trunk/src/core/log.h
+
+changed default log directory mode to 0700 and file mode to 0600.
+
+------------------------------------------------------------------------
+r1948 | cras | 2001-10-30 12:14:01 +0000 (Tue, 30 Oct 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/docs/special_vars.txt
+
+updated for $cumode_space
+
+------------------------------------------------------------------------
+r1947 | cras | 2001-10-30 12:12:25 +0000 (Tue, 30 Oct 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/irc-expandos.c
+
+added $cumode_space expando. Like $cumode, but gives " " if there's no mode.
+
+------------------------------------------------------------------------
+r1946 | cras | 2001-10-29 21:46:46 +0000 (Mon, 29 Oct 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-none/Makefile.am
+
+typofix :)
+
+------------------------------------------------------------------------
+r1945 | cras | 2001-10-29 21:32:32 +0000 (Mon, 29 Oct 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/configure.in
+
+Link with $LDFLAGS when trying to compile one of the test programs..
+
+------------------------------------------------------------------------
+r1944 | cras | 2001-10-29 20:44:45 +0000 (Mon, 29 Oct 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/terminfo-core.c
+
+forgot to define TI_rep for repeat() command.
+
+------------------------------------------------------------------------
+r1943 | cras | 2001-10-29 19:17:54 +0000 (Mon, 29 Oct 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/term-terminfo.c
+
+bug in last commit :) background color was broken
+
+------------------------------------------------------------------------
+r1942 | cras | 2001-10-29 19:16:14 +0000 (Mon, 29 Oct 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/term-terminfo.c
+
+when colors aren't used, don't save last_fg and last_bg. This helps at least clrtoeol().
+
+------------------------------------------------------------------------
+r1941 | cras | 2001-10-29 19:13:52 +0000 (Mon, 29 Oct 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/term-terminfo.c
+   M /irssi/trunk/src/fe-text/terminfo-core.c
+   M /irssi/trunk/src/fe-text/terminfo-core.h
+
+terminfo's term_clrtoeol() uses the clrtoeol() command only when using the default colors. otherwise it just goes and fills the line with spaces.
+
+------------------------------------------------------------------------
+r1940 | cras | 2001-10-29 18:42:42 +0000 (Mon, 29 Oct 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/mainwindows.c
+
+Windows weren't created with correct size. When setting statusbar lines for
+windows, irssi didn't resize the window properly.
+
+------------------------------------------------------------------------
+r1939 | cras | 2001-10-29 16:15:47 +0000 (Mon, 29 Oct 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/module-formats.c
+   M /irssi/trunk/src/fe-common/core/window-commands.c
+
+/WINDOW SERVER -unsticky crashed irssi if it was used when you weren't connected to server.
+
+------------------------------------------------------------------------
+r1938 | cras | 2001-10-29 13:43:46 +0000 (Mon, 29 Oct 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/configure.in
+   M /irssi/trunk/src/fe-none/Makefile.am
+   M /irssi/trunk/src/fe-text/Makefile.am
+
+stuff in LIBS moved to PROG_LIBS again. Otherwise linking perl module (and maybe some other stuff as well) tries to link all that with the module.
+
+------------------------------------------------------------------------
+r1937 | cras | 2001-10-29 13:04:15 +0000 (Mon, 29 Oct 2001) | 2 lines
+Changed paths:
+   D /irssi/trunk/src/fe-text/screen.c
+   D /irssi/trunk/src/fe-text/screen.h
+
+not needed anymore, code is in term*.[ch] now.
+
+------------------------------------------------------------------------
+r1936 | cras | 2001-10-28 23:52:36 +0000 (Sun, 28 Oct 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/textbuffer-view.c
+
+clrtoeol() wasn't called always when drawing buffer, so some garbage could
+have been left to screen.
+
+------------------------------------------------------------------------
+r1935 | cras | 2001-10-28 23:47:47 +0000 (Sun, 28 Oct 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/gui-readline.c
+   M /irssi/trunk/src/fe-text/term-curses.c
+   M /irssi/trunk/src/fe-text/term-terminfo.c
+   M /irssi/trunk/src/fe-text/term.h
+   M /irssi/trunk/src/fe-text/terminfo-core.c
+
+term_getch() -> term_gets() which can be used to read multiple keypresses at
+once. Also fixes keyboard not working with netbsd.
+
+------------------------------------------------------------------------
+r1934 | cras | 2001-10-28 23:17:38 +0000 (Sun, 28 Oct 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/default.theme
+
+Removed unused default_real_color, updated default_color's value to "-1"
+(didn't work without quotes)
+
+------------------------------------------------------------------------
+r1933 | cras | 2001-10-28 23:08:40 +0000 (Sun, 28 Oct 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/tparm.c
+
+added a "const" to cvtchar() to get rid of compiler warnings
+
+------------------------------------------------------------------------
+r1932 | cras | 2001-10-28 23:01:22 +0000 (Sun, 28 Oct 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/configure.in
+
+Even if curses was found, we still need to check if it has terminfo code or
+just termcap..
+
+------------------------------------------------------------------------
+r1931 | cras | 2001-10-28 22:06:07 +0000 (Sun, 28 Oct 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/terminfo-core.h
+
+Change that should have been committed already
+
+------------------------------------------------------------------------
+r1930 | cras | 2001-10-28 21:49:35 +0000 (Sun, 28 Oct 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/terminfo-core.c
+
+terminfo_resize() updated - new terminal width can't be taken by reading it
+from capabilities. Have to figure out something else (setupterm()?)
+
+------------------------------------------------------------------------
+r1929 | cras | 2001-10-28 21:17:34 +0000 (Sun, 28 Oct 2001) | 4 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/gui-windows.c
+   M /irssi/trunk/src/fe-text/irssi.c
+   M /irssi/trunk/src/fe-text/term-curses.c
+   M /irssi/trunk/src/fe-text/term-terminfo.c
+   M /irssi/trunk/src/fe-text/term.c
+   M /irssi/trunk/src/fe-text/term.h
+   M /irssi/trunk/src/fe-text/textbuffer-view.c
+
+Some resize fixes. With terminfo + /SET indent_always OFF, doubleclicking
+long words (URLs mostly) that get split into two lines, selects the word
+fully.
+
+------------------------------------------------------------------------
+r1928 | cras | 2001-10-28 19:20:59 +0000 (Sun, 28 Oct 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/term-curses.c
+   M /irssi/trunk/src/fe-text/terminfo-core.c
+
+Use TCSADRAIN option when changing terminfo settings.
+
+------------------------------------------------------------------------
+r1927 | cras | 2001-10-28 18:51:00 +0000 (Sun, 28 Oct 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/term.c
+
+color forcing stuff left from previous commit
+
+------------------------------------------------------------------------
+r1926 | cras | 2001-10-28 18:40:12 +0000 (Sun, 28 Oct 2001) | 4 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/gui-entry.c
+   M /irssi/trunk/src/fe-text/gui-entry.h
+   M /irssi/trunk/src/fe-text/gui-windows.c
+   M /irssi/trunk/src/fe-text/irssi.c
+   M /irssi/trunk/src/fe-text/mainwindows.c
+   M /irssi/trunk/src/fe-text/mainwindows.h
+   M /irssi/trunk/src/fe-text/module.h
+   M /irssi/trunk/src/fe-text/statusbar-config.c
+   M /irssi/trunk/src/fe-text/statusbar-items.c
+   M /irssi/trunk/src/fe-text/statusbar.c
+   M /irssi/trunk/src/fe-text/statusbar.h
+   M /irssi/trunk/src/fe-text/term-terminfo.c
+   M /irssi/trunk/src/fe-text/terminfo-core.c
+   M /irssi/trunk/src/fe-text/terminfo-core.h
+   M /irssi/trunk/src/fe-text/textbuffer-view.c
+   M /irssi/trunk/src/fe-text/textbuffer-view.h
+
+Redrawing fixes - irssi should now rarely redraw stuff uselessly in screen.
+Most of the code now just marks the window/statusbar/etc. as dirty, and lets
+the dirty-checker handle it later.
+
+------------------------------------------------------------------------
+r1925 | cras | 2001-10-28 18:30:17 +0000 (Sun, 28 Oct 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-none/Makefile.am
+
+Fixes for the updated configure.
+
+------------------------------------------------------------------------
+r1924 | cras | 2001-10-28 11:30:26 +0000 (Sun, 28 Oct 2001) | 5 lines
+Changed paths:
+   M /irssi/trunk/acconfig.h
+   M /irssi/trunk/configure.in
+   M /irssi/trunk/default.theme
+   M /irssi/trunk/src/fe-common/core/formats.c
+   M /irssi/trunk/src/fe-common/core/themes.c
+   M /irssi/trunk/src/fe-common/core/themes.h
+   M /irssi/trunk/src/fe-text/Makefile.am
+   M /irssi/trunk/src/fe-text/gui-entry.c
+   M /irssi/trunk/src/fe-text/gui-printtext.c
+   M /irssi/trunk/src/fe-text/gui-readline.c
+   M /irssi/trunk/src/fe-text/gui-windows.c
+   M /irssi/trunk/src/fe-text/irssi.c
+   M /irssi/trunk/src/fe-text/lastlog.c
+   M /irssi/trunk/src/fe-text/mainwindows-layout.c
+   M /irssi/trunk/src/fe-text/mainwindows.c
+   M /irssi/trunk/src/fe-text/mainwindows.h
+   M /irssi/trunk/src/fe-text/statusbar-items.c
+   M /irssi/trunk/src/fe-text/statusbar.c
+   A /irssi/trunk/src/fe-text/term-curses.c
+   A /irssi/trunk/src/fe-text/term-terminfo.c
+   A /irssi/trunk/src/fe-text/term.c
+   A /irssi/trunk/src/fe-text/term.h
+   A /irssi/trunk/src/fe-text/terminfo-core.c
+   A /irssi/trunk/src/fe-text/terminfo-core.h
+   M /irssi/trunk/src/fe-text/textbuffer-commands.c
+   M /irssi/trunk/src/fe-text/textbuffer-view.c
+   M /irssi/trunk/src/fe-text/textbuffer-view.h
+   M /irssi/trunk/src/fe-text/textbuffer.c
+   M /irssi/trunk/src/fe-text/textbuffer.h
+   A /irssi/trunk/src/fe-text/tparm.c
+
+Added support for using terminfo/termcap instead of curses. By default,
+configure chooses to use ncurses if found, of terminfo if only curses was
+found. --with-terminfo parameter can be used to specify if you want it or
+not.
+
+------------------------------------------------------------------------
+r1923 | cras | 2001-10-27 11:47:59 +0000 (Sat, 27 Oct 2001) | 4 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/gui-readline.c
+
+When scrolling window with eg. scroll_page_count /2, irssi didn't
+remove window's statusbars lines when calculating number of lines to
+scroll.
+
+------------------------------------------------------------------------
+r1922 | cras | 2001-10-25 19:45:29 +0000 (Thu, 25 Oct 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/perl/textui/Statusbar.xs
+
+Irssi crashed if script died in statusbar handler.
+
+------------------------------------------------------------------------
+r1921 | cras | 2001-10-25 18:17:21 +0000 (Thu, 25 Oct 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/perl/ui/Themes.xs
+
+Added flags option for Irssi::UI::Theme::format_expand().
+
+------------------------------------------------------------------------
+r1920 | cras | 2001-10-25 14:39:36 +0000 (Thu, 25 Oct 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/gui-entry.c
+   M /irssi/trunk/src/fe-text/gui-entry.h
+   M /irssi/trunk/src/fe-text/gui-readline.c
+
+forward_word and backward_word now move only to next/prev non-alphanumeric character. added forward_to_space and backward_to_space. transpose_characters moves the cursor to right. patch by peder@linpro.no.
+
+------------------------------------------------------------------------
+r1919 | cras | 2001-10-25 12:02:10 +0000 (Thu, 25 Oct 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/fe-events-numeric.c
+   M /irssi/trunk/src/fe-common/irc/module-formats.c
+   M /irssi/trunk/src/fe-common/irc/module-formats.h
+
+Renamed /FORMAT whois_oper_type to whois_oper which is now removed.
+whois_oper wasn't really used anywhere AFAIK.
+
+------------------------------------------------------------------------
+r1918 | cras | 2001-10-25 11:21:18 +0000 (Thu, 25 Oct 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/perl/ui/Themes.xs
+   M /irssi/trunk/src/perl/ui/UI.xs
+
+Added Irssi::current_theme() and Irssi::Theme::format_expand()
+
+------------------------------------------------------------------------
+r1917 | cras | 2001-10-25 10:00:33 +0000 (Thu, 25 Oct 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/perl/Makefile.am
+   M /irssi/trunk/src/perl/perl-core.c
+   D /irssi/trunk/src/perl/xsinit.c
+
+Boot dynaloader too even if perl libraries are compiled statically in irssi.
+
+------------------------------------------------------------------------
+r1916 | cras | 2001-10-24 23:36:06 +0000 (Wed, 24 Oct 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/perl/perl-core.c
+
+typofix - s/per/perl/
+
+------------------------------------------------------------------------
+r1915 | cras | 2001-10-24 23:29:48 +0000 (Wed, 24 Oct 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/perl/perl-core.c
+
+bugfix
+
+------------------------------------------------------------------------
+r1914 | cras | 2001-10-24 23:17:27 +0000 (Wed, 24 Oct 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/configure.in
+   M /irssi/trunk/src/perl/Makefile.am
+   M /irssi/trunk/src/perl/common/Irssi.pm
+   M /irssi/trunk/src/perl/irc/Irc.pm
+   M /irssi/trunk/src/perl/irssi-core.pl
+   M /irssi/trunk/src/perl/perl-core.c
+   M /irssi/trunk/src/perl/textui/TextUI.pm
+   M /irssi/trunk/src/perl/ui/UI.pm
+
+Added --with-perl-staticlib option to configure. If used, irssi's perl
+libraries are compiled statically into irssi binary.
+
+------------------------------------------------------------------------
+r1913 | cras | 2001-10-24 23:12:55 +0000 (Wed, 24 Oct 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/perl/textui/TextBufferView.xs
+   M /irssi/trunk/src/perl/textui/TextUI.xs
+
+Removed unfinished code that was not supposed to go to cvs..
+
+------------------------------------------------------------------------
+r1912 | cras | 2001-10-24 22:52:15 +0000 (Wed, 24 Oct 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/formats.c
+   M /irssi/trunk/src/fe-common/core/formats.h
+   M /irssi/trunk/src/fe-text/gui-printtext.c
+   M /irssi/trunk/src/fe-text/gui-printtext.h
+   M /irssi/trunk/src/fe-text/gui-windows.c
+   M /irssi/trunk/src/fe-text/gui-windows.h
+   M /irssi/trunk/src/fe-text/textbuffer-view.c
+   M /irssi/trunk/src/fe-text/textbuffer-view.h
+   M /irssi/trunk/src/fe-text/textbuffer.c
+   M /irssi/trunk/src/fe-text/textbuffer.h
+   M /irssi/trunk/src/perl/textui/TextBufferView.xs
+   M /irssi/trunk/src/perl/textui/TextUI.xs
+
+Added support for changing indentation behaviour with modules.
+
+------------------------------------------------------------------------
+r1911 | cras | 2001-10-24 22:24:14 +0000 (Wed, 24 Oct 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/modules-load.c
+
+Added a bit better error reporting.
+
+------------------------------------------------------------------------
+r1910 | cras | 2001-10-24 22:18:39 +0000 (Wed, 24 Oct 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/perl/perl-signals.c
+   M /irssi/trunk/src/perl/perl-sources.c
+
+Removed some unused code.
+
+------------------------------------------------------------------------
+r1909 | cras | 2001-10-24 21:19:54 +0000 (Wed, 24 Oct 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/screen.c
+
+Reset QUIT and INTR keys at quit.
+
+------------------------------------------------------------------------
+r1908 | cras | 2001-10-24 14:13:42 +0000 (Wed, 24 Oct 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/gui-entry.c
+
+Redraw was buggy if entry line didn't continue to end of line.
+
+------------------------------------------------------------------------
+r1907 | cras | 2001-10-24 13:57:54 +0000 (Wed, 24 Oct 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/mainwindows.c
+
+window-top-statusbars weren't working properly.
+
+------------------------------------------------------------------------
+r1906 | cras | 2001-10-24 13:47:13 +0000 (Wed, 24 Oct 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/statusbar-items.c
+
+Always set the newly created entry active. Currently we don't support multiple, but if the entry moves between statusbars sometimes we first create new one then destroy the old one and there's no active then..
+
+------------------------------------------------------------------------
+r1905 | cras | 2001-10-24 13:20:26 +0000 (Wed, 24 Oct 2001) | 4 lines
+Changed paths:
+   M /irssi/trunk/src/perl/perl-common.c
+   M /irssi/trunk/src/perl/perl-core.c
+
+/SET perl_use_lib setting to specify the path for irssi's perl libraries.
+Default should work usually, but if you for some reason want to use different
+then change this. May contain multiple paths separated with space.
+
+------------------------------------------------------------------------
+r1904 | cras | 2001-10-23 21:28:16 +0000 (Tue, 23 Oct 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/channels-query.c
+
+Don't print glib errors when parting a channel which isn't synced yet.
+
+------------------------------------------------------------------------
+r1903 | cras | 2001-10-23 21:26:03 +0000 (Tue, 23 Oct 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/default.theme
+   M /irssi/trunk/src/fe-text/statusbar-items.c
+
+Activity list colors are now configurable.
+
+------------------------------------------------------------------------
+r1902 | cras | 2001-10-23 20:55:22 +0000 (Tue, 23 Oct 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/screen.c
+
+Using cbreak() mode again, but disable QUIT and INTR keys.
+
+------------------------------------------------------------------------
+r1901 | cras | 2001-10-23 20:49:17 +0000 (Tue, 23 Oct 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/perl/perl-fe.c
+
+/SCRIPT without parameters now prints list of loaded scripts.
+
+------------------------------------------------------------------------
+r1900 | cras | 2001-10-23 20:37:53 +0000 (Tue, 23 Oct 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/perl/perl-core.c
+
+Added eval { } around the DynaLoader::dl_unload_file() calls to get rid of
+the errors it's printing with perl < 5.6.
+
+------------------------------------------------------------------------
+r1899 | cras | 2001-10-23 20:30:01 +0000 (Tue, 23 Oct 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/configure.in
+
+If perl linking failed, print the error message too.
+
+------------------------------------------------------------------------
+r1898 | cras | 2001-10-23 16:01:53 +0000 (Tue, 23 Oct 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/docs/help/in/unban.in
+   M /irssi/trunk/src/irc/core/bans.c
+
+/UNBAN -first | -last options added. Patch by fuchs.
+
+------------------------------------------------------------------------
+r1897 | cras | 2001-10-22 21:26:58 +0000 (Mon, 22 Oct 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/core/log.c
+   M /irssi/trunk/src/core/log.h
+   M /irssi/trunk/src/fe-common/core/fe-log.c
+
+When logs are rotated, automatically create the new directory where to open
+the log if it has changed.
+
+------------------------------------------------------------------------
+r1896 | cras | 2001-10-22 21:19:14 +0000 (Mon, 22 Oct 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/colorless.theme
+   M /irssi/trunk/default.theme
+
+updated colorless.theme, replaced all $0- to $* in default.theme
+
+------------------------------------------------------------------------
+r1895 | cras | 2001-10-22 20:34:05 +0000 (Mon, 22 Oct 2001) | 4 lines
+Changed paths:
+   M /irssi/trunk/configure.in
+
+Yet another objdir fix. Changed the way how irssi figures out where irssi's
+perl libraries are installed - maybe this will finally stop those @INC
+problems.
+
+------------------------------------------------------------------------
+r1894 | cras | 2001-10-22 20:00:15 +0000 (Mon, 22 Oct 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/configure.in
+
+Fixed building from objdir (symlinks irssi-version.h and in ui/textui perl
+stuff)
+
+------------------------------------------------------------------------
+r1893 | cras | 2001-10-22 13:47:02 +0000 (Mon, 22 Oct 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/configure.in
+
+with --prefix, use INSTALLDIRS=site, not perl. hopefully fixes some @INC problems
+
+------------------------------------------------------------------------
+r1892 | cras | 2001-10-22 12:19:27 +0000 (Mon, 22 Oct 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/notifylist/notifylist.c
+
+just some extra check - might fix some crash..
+
+------------------------------------------------------------------------
+r1891 | cras | 2001-10-22 11:57:23 +0000 (Mon, 22 Oct 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/irssi.conf
+
+fixed server list - added a ',' ..
+
+------------------------------------------------------------------------
+r1890 | cras | 2001-10-22 09:33:32 +0000 (Mon, 22 Oct 2001) | 4 lines
+Changed paths:
+   M /irssi/trunk/src/core/channels.c
+
+Checking that autojoined channels weren't already joined in same chatnet had
+a typo so it checked all servers that the channel wasn't joined.
+s/servers/chatnet_servers/
+
+------------------------------------------------------------------------
+r1889 | cras | 2001-10-21 20:11:18 +0000 (Sun, 21 Oct 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/fe-irc-commands.c
+
+Remove SYNTAX: OPER from here - it's already in core (and syntax.pl gets
+twice the same syntaxes currently..)
+
+------------------------------------------------------------------------
+r1888 | cras | 2001-10-21 19:23:11 +0000 (Sun, 21 Oct 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-none/Makefile.am
+
+Static perl didn't work with botti.
+
+------------------------------------------------------------------------
+r1887 | cras | 2001-10-21 18:58:09 +0000 (Sun, 21 Oct 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/special-vars.c
+
+if \x isn't a known escape sequence, it should print just x, not \x.
+
+------------------------------------------------------------------------
+r1886 | cras | 2001-10-21 18:28:42 +0000 (Sun, 21 Oct 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/perl/ui/Themes.xs
+   M /irssi/trunk/src/perl/ui/UI.xs
+
+Moved theme registering stuff to Themes.xs. Corrected signal "script
+destroy" -> "script destroyed" - unregistering themes works now properly.
+
+------------------------------------------------------------------------
+r1885 | cras | 2001-10-21 17:56:42 +0000 (Sun, 21 Oct 2001) | 4 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/formats.c
+   M /irssi/trunk/src/fe-common/core/themes.c
+
+Don't expand %{ and %} in themes to { and } - they could be treated as
+abstracts again. Printing %{ and %} now prints just { and }. This fixes
+printing {stuff} in statusbar (eg. {nick}).
+
+------------------------------------------------------------------------
+r1884 | cras | 2001-10-21 17:27:43 +0000 (Sun, 21 Oct 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/default.theme
+   M /irssi/trunk/irssi.conf
+
+added prompt, barstart and barend to theme. Removed mail stuff from config,
+it's only a script now.
+
+------------------------------------------------------------------------
+r1883 | cras | 2001-10-21 16:52:36 +0000 (Sun, 21 Oct 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/perl/common/Irssi.xs
+   M /irssi/trunk/src/perl/common/Settings.xs
+
+Settings registered with Irssi::settings_add_xx() are now correctly removed
+after script is unloaded.
+
+------------------------------------------------------------------------
+r1882 | cras | 2001-10-21 16:23:43 +0000 (Sun, 21 Oct 2001) | 5 lines
+Changed paths:
+   M /irssi/trunk/src/core/modules-load.c
+   M /irssi/trunk/src/core/modules.h
+
+deinit() function is now checked and saved when loading module. Unloading
+modules that had module_deinit() function (not module_core_deinit()) wasn't
+called before. Also, error message wasn't printed if module didn't have the
+_core part and wasn't really irssi module.
+
+------------------------------------------------------------------------
+r1881 | cras | 2001-10-21 15:22:22 +0000 (Sun, 21 Oct 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/default.theme
+
+commented out sb_default_bg and added sb_background - now old themes that
+change statusbar background should work again properly.
+
+------------------------------------------------------------------------
+r1880 | cras | 2001-10-21 13:59:07 +0000 (Sun, 21 Oct 2001) | 5 lines
+Changed paths:
+   M /irssi/trunk/src/core/chat-commands.c
+   M /irssi/trunk/src/core/chat-protocols.h
+   M /irssi/trunk/src/core/server-connect-rec.h
+   M /irssi/trunk/src/core/servers-reconnect.c
+   M /irssi/trunk/src/core/servers-reconnect.h
+   M /irssi/trunk/src/core/servers-setup.c
+   M /irssi/trunk/src/core/servers.c
+   M /irssi/trunk/src/core/servers.h
+   M /irssi/trunk/src/irc/core/irc-core.c
+   M /irssi/trunk/src/irc/core/irc-servers.c
+
+Added reference counter to SERVER_CONNECT_REC. Since it's being moved around
+a lot in reconnects etc. this should make it easier to track when it's
+supposed to be destroyed. Hopefully fixes a crash I assume is related to
+this but couldn't find..
+
+------------------------------------------------------------------------
+r1879 | cras | 2001-10-21 13:22:28 +0000 (Sun, 21 Oct 2001) | 6 lines
+Changed paths:
+   M /irssi/trunk/src/core/core.c
+   M /irssi/trunk/src/core/core.h
+   M /irssi/trunk/src/perl/perl-core.c
+
+added irssi_init_finished variable to core.h which is TRUE after "irssi init
+finished" signal is sent.
+
+Perl scripts aren't now autoloaded until irssi_init_finished is TRUE (fixes
+the crash at startup).
+
+------------------------------------------------------------------------
+r1878 | cras | 2001-10-21 11:49:17 +0000 (Sun, 21 Oct 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/netsplit.c
+
+quitmsg_is_split() updated to check that top-level domains must be 2+ chars
+and contain only alphabets.
+
+------------------------------------------------------------------------
+r1877 | cras | 2001-10-21 11:24:24 +0000 (Sun, 21 Oct 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/channels-query.c
+
+Channels weren't synced if you joined multiple channels at once and one of
+the chennels couldn't be joined for some reason.
+
+------------------------------------------------------------------------
+r1876 | cras | 2001-10-21 11:22:06 +0000 (Sun, 21 Oct 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/chat-completion.c
+
+/TOPIC <tab> inserts the topic in active channel.
+
+------------------------------------------------------------------------
+r1875 | cras | 2001-10-21 11:08:49 +0000 (Sun, 21 Oct 2001) | 8 lines
+Changed paths:
+   M /irssi/trunk/src/core/channels.c
+
+Don't autojoin channels that have already been joined in some other server
+connection in same chat network. This has mostly been just annoying, and
+this enables us to add eg. 20 channels autojoinable, then create 2 server
+connections and irssi will automatically join the first 10 in first
+connection and 10 other in the later (well, or at least if the 10 later
+channels get "not enough channels" message from server before the connection
+is finished, which well might not happen .. problem :)
+
+------------------------------------------------------------------------
+r1874 | cras | 2001-10-21 11:06:58 +0000 (Sun, 21 Oct 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/expandos.c
+
+Check time changes every half a second instead of every second.
+
+------------------------------------------------------------------------
+r1873 | cras | 2001-10-21 10:31:03 +0000 (Sun, 21 Oct 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/irssi.c
+
+Deinitialize perl before textui stuff.
+
+------------------------------------------------------------------------
+r1872 | cras | 2001-10-21 10:25:37 +0000 (Sun, 21 Oct 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/statusbar-items.c
+
+Lag statusbar item isn't anymore displayed always
+
+------------------------------------------------------------------------
+r1871 | cras | 2001-10-21 10:22:55 +0000 (Sun, 21 Oct 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/perl/textui/Statusbar.xs
+
+Statusbar items weren't unregistered correctly when script was unloaded.
+
+------------------------------------------------------------------------
+r1870 | cras | 2001-10-21 09:25:29 +0000 (Sun, 21 Oct 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-none/irssi.c
+   M /irssi/trunk/src/fe-text/irssi.c
+
+Initialize perl before fe_common_core_finish_init() or sending "irssi init
+finished". This way if /LOAD perl is in startup-file we don't load it twice.
+
+------------------------------------------------------------------------
+r1869 | cras | 2001-10-20 22:02:55 +0000 (Sat, 20 Oct 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/servers-setup.c
+
+fix a fix
+
+------------------------------------------------------------------------
+r1868 | cras | 2001-10-20 21:39:01 +0000 (Sat, 20 Oct 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/core/servers-setup.c
+
+When assiging chatnet to server connect record, always try to get the name
+from chatnets list so the case will be correct.
+
+------------------------------------------------------------------------
+r1867 | cras | 2001-10-20 21:38:40 +0000 (Sat, 20 Oct 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/scripts/quitmsg.pl
+
+typofix - quit msg should be randomized if the msg isn't given (not if it is
+given..)
+
+------------------------------------------------------------------------
+r1866 | cras | 2001-10-20 21:32:22 +0000 (Sat, 20 Oct 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/configure.in
+
+Perl defaults now to static. Having it in module had too many problems.
+
+------------------------------------------------------------------------
+r1865 | cras | 2001-10-20 21:09:17 +0000 (Sat, 20 Oct 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-server.c
+
+When printing server disconnection texts, use the server parameter for
+printformat() so the texts go to correct windows.
+
+------------------------------------------------------------------------
+r1864 | cras | 2001-10-20 20:23:07 +0000 (Sat, 20 Oct 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/perl/Makefile.am
+
+forgot one core_sources -> common_sources change
+
+------------------------------------------------------------------------
+r1863 | cras | 2001-10-20 20:14:00 +0000 (Sat, 20 Oct 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/perl/Makefile.am
+
+renamed XXX_SOURCES -> xxx_sources so automake 1.5 won't complain about it
+
+------------------------------------------------------------------------
+r1862 | cras | 2001-10-20 20:07:33 +0000 (Sat, 20 Oct 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-none/Makefile.am
+
+Removed unwanted extra INCLUDES.
+
+------------------------------------------------------------------------
+r1861 | cras | 2001-10-20 19:52:07 +0000 (Sat, 20 Oct 2001) | 9 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/statusbar-items.c
+   M /irssi/trunk/src/fe-text/statusbar.c
+   M /irssi/trunk/src/fe-text/statusbar.h
+   M /irssi/trunk/src/perl/Makefile.am
+   M /irssi/trunk/src/perl/common
+   M /irssi/trunk/src/perl/common/.cvsignore
+   M /irssi/trunk/src/perl/common/Channel.xs
+   M /irssi/trunk/src/perl/common/Core.xs
+   M /irssi/trunk/src/perl/common/Ignore.xs
+   M /irssi/trunk/src/perl/common/Irssi.pm
+   M /irssi/trunk/src/perl/common/Irssi.xs
+   M /irssi/trunk/src/perl/common/Log.xs
+   M /irssi/trunk/src/perl/common/Makefile.PL.in
+   M /irssi/trunk/src/perl/common/Masks.xs
+   M /irssi/trunk/src/perl/common/Query.xs
+   M /irssi/trunk/src/perl/common/Rawlog.xs
+   M /irssi/trunk/src/perl/common/Server.xs
+   M /irssi/trunk/src/perl/common/Settings.xs
+   M /irssi/trunk/src/perl/irc
+   M /irssi/trunk/src/perl/irc/.cvsignore
+   A /irssi/trunk/src/perl/irc/Channel.xs
+   M /irssi/trunk/src/perl/irc/Dcc.xs
+   M /irssi/trunk/src/perl/irc/Irc.pm
+   M /irssi/trunk/src/perl/irc/Irc.xs
+   D /irssi/trunk/src/perl/irc/IrcChannel.xs
+   D /irssi/trunk/src/perl/irc/IrcQuery.xs
+   D /irssi/trunk/src/perl/irc/IrcServer.xs
+   M /irssi/trunk/src/perl/irc/Makefile.PL.in
+   M /irssi/trunk/src/perl/irc/Modes.xs
+   M /irssi/trunk/src/perl/irc/Netsplit.xs
+   M /irssi/trunk/src/perl/irc/Notifylist.xs
+   A /irssi/trunk/src/perl/irc/Query.xs
+   A /irssi/trunk/src/perl/irc/Server.xs
+   M /irssi/trunk/src/perl/module.h
+   M /irssi/trunk/src/perl/perl-common.c
+   M /irssi/trunk/src/perl/perl-common.h
+   M /irssi/trunk/src/perl/perl-core.c
+   M /irssi/trunk/src/perl/textui
+   M /irssi/trunk/src/perl/textui/.cvsignore
+   M /irssi/trunk/src/perl/textui/Makefile.PL.in
+   A /irssi/trunk/src/perl/textui/Statusbar.xs
+   M /irssi/trunk/src/perl/textui/TextBuffer.xs
+   M /irssi/trunk/src/perl/textui/TextBufferView.xs
+   M /irssi/trunk/src/perl/textui/TextUI.pm
+   M /irssi/trunk/src/perl/textui/TextUI.xs
+   M /irssi/trunk/src/perl/textui/module.h
+   M /irssi/trunk/src/perl/textui/typemap
+   M /irssi/trunk/src/perl/ui
+   M /irssi/trunk/src/perl/ui/.cvsignore
+   M /irssi/trunk/src/perl/ui/Makefile.PL.in
+   M /irssi/trunk/src/perl/ui/Themes.xs
+   M /irssi/trunk/src/perl/ui/UI.pm
+   M /irssi/trunk/src/perl/ui/UI.xs
+   M /irssi/trunk/src/perl/ui/Window.xs
+
+Dependencies finally work correctly in perl libraries (they're each compiled
+separately now). Added statusbar code to available to perl, it's now
+possible to create new statusbar items with perl scripts.
+
+statusbar_items_redraw(char *name) can now be used to easily redraw all
+named statusbar items in screen.
+
+Probably several other changes I've already forgotten :)
+
+------------------------------------------------------------------------
+r1860 | cras | 2001-10-20 14:30:20 +0000 (Sat, 20 Oct 2001) | 4 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/mainwindows.c
+   M /irssi/trunk/src/fe-text/mainwindows.h
+   M /irssi/trunk/src/fe-text/statusbar.c
+
+added mainwindow_resize_freeze() and .._thaw() functions to temporarily
+freeze all window resizes. It's now being used with statusbar code so
+changing between split windows don't make the screen jump around.
+
+------------------------------------------------------------------------
+r1859 | cras | 2001-10-20 13:19:25 +0000 (Sat, 20 Oct 2001) | 5 lines
+Changed paths:
+   M /irssi/trunk/src/perl/common/Irssi.pm
+   M /irssi/trunk/src/perl/common/Irssi.xs
+   M /irssi/trunk/src/perl/irc/Irc.pm
+   M /irssi/trunk/src/perl/irc/Irc.xs
+   M /irssi/trunk/src/perl/module.h
+   M /irssi/trunk/src/perl/perl-core.c
+   M /irssi/trunk/src/perl/perl-core.h
+   M /irssi/trunk/src/perl/perl-fe.c
+   M /irssi/trunk/src/perl/textui/TextUI.pm
+   M /irssi/trunk/src/perl/textui/TextUI.xs
+   M /irssi/trunk/src/perl/ui/UI.pm
+   M /irssi/trunk/src/perl/ui/UI.xs
+
+Added API version check between perl module and perl libs.
+perl_scripts_deinit() now destroys all dynamically loaded libraries (Irssi,
+Irssi::Irc, Irssi::UI too) so /UNLOAD perl should now release more memory,
+this also makes /unload perl, /load perl work again.
+
+------------------------------------------------------------------------
+r1858 | cras | 2001-10-20 11:30:24 +0000 (Sat, 20 Oct 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/special-vars.c
+
+$~ crashed if arglist was empty
+
+------------------------------------------------------------------------
+r1857 | cras | 2001-10-20 11:26:40 +0000 (Sat, 20 Oct 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/dcc/fe-dcc-chat.c
+
+Get the server tag to query from dcc->servertag, not dcc->server->tag, to
+make it work correctly when accepting dcc chat when not connected to server.
+
+------------------------------------------------------------------------
+r1856 | cras | 2001-10-20 11:20:37 +0000 (Sat, 20 Oct 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/keyboard.c
+
+/BIND -delete doesn't anymore leave empty {} blocks in configuration file.
+
+------------------------------------------------------------------------
+r1855 | cras | 2001-10-20 10:35:42 +0000 (Sat, 20 Oct 2001) | 5 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/mainwindows.c
+   M /irssi/trunk/src/fe-text/screen.c
+   M /irssi/trunk/src/fe-text/textbuffer-view.c
+
+When resizing terminal smaller, destroy some split windows if they don't fit
+into screen otherwise. Also, irssi doesn't crash anymore or mess up the
+screen even if terminal is resized to 1x1 size (not sure of 0x0, my terminal
+doesn't resize that small, and maybe I shouldn't bother with it anyway :)
+
+------------------------------------------------------------------------
+r1854 | cras | 2001-10-20 10:01:29 +0000 (Sat, 20 Oct 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/mainwindows-layout.c
+   M /irssi/trunk/src/fe-text/mainwindows.c
+   M /irssi/trunk/src/fe-text/mainwindows.h
+
+Fixed restoring split windows layout. Some other split window resizing fixes
+
+------------------------------------------------------------------------
+r1853 | cras | 2001-10-19 17:28:34 +0000 (Fri, 19 Oct 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/scripts/quitmsg.pl
+
+Randomizes the quit msg only if it wasn't given.
+
+------------------------------------------------------------------------
+r1852 | cras | 2001-10-19 12:35:03 +0000 (Fri, 19 Oct 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/irssi.conf
+
+Leave one space before topic in topicbar.
+
+------------------------------------------------------------------------
+r1851 | cras | 2001-10-19 12:13:59 +0000 (Fri, 19 Oct 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/irssi.conf
+
+updated infobar text
+
+------------------------------------------------------------------------
+r1850 | cras | 2001-10-19 11:59:27 +0000 (Fri, 19 Oct 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/lastlog.c
+   M /irssi/trunk/src/fe-text/module-formats.c
+   M /irssi/trunk/src/fe-text/module-formats.h
+
+/LASTLOG -count option added. patch by dgl@dgl.cx
+
+------------------------------------------------------------------------
+r1849 | cras | 2001-10-19 11:37:13 +0000 (Fri, 19 Oct 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/proxy/dump.c
+
+format string exploit found & patch by cph@cph.demon.co.uk
+
+------------------------------------------------------------------------
+r1848 | cras | 2001-10-19 11:28:56 +0000 (Fri, 19 Oct 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/irc/proxy/dump.c
+   M /irssi/trunk/src/irc/proxy/listen.c
+   M /irssi/trunk/src/irc/proxy/module.h
+
+Actions are now transferred correctly, own messages in main irssi are
+transferred now to clients. Patch by ganesh@earth.li.
+
+------------------------------------------------------------------------
+r1847 | cras | 2001-10-19 10:02:38 +0000 (Fri, 19 Oct 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/docs/signals.txt
+
+added "ctcp msg" and "ctcp reply" signals.
+
+------------------------------------------------------------------------
+r1846 | cras | 2001-10-18 10:30:03 +0000 (Thu, 18 Oct 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/docs/help/in/hilight.in
+
+escape % with % so /HELP hilight won't treat them as colors
+
+------------------------------------------------------------------------
+r1845 | cras | 2001-10-17 14:59:02 +0000 (Wed, 17 Oct 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/default.theme
+
+added sb_topic_bg
+
+------------------------------------------------------------------------
+r1844 | cras | 2001-10-15 20:18:34 +0000 (Mon, 15 Oct 2001) | 4 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/mainwindows.c
+
+mainwindow_set_statusbar_lines() resized only active window - not all
+windows in that main window.. This made screen mess up for example with
+/RELOAD.
+
+------------------------------------------------------------------------
+r1843 | cras | 2001-10-15 18:37:13 +0000 (Mon, 15 Oct 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/modules-load.c
+
+fixed a small memleak when unloading module
+
+------------------------------------------------------------------------
+r1842 | cras | 2001-10-15 18:30:33 +0000 (Mon, 15 Oct 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/perl/perl-sources.c
+
+refcount for timeouts/inputs wasn't 0 initially so it caused some memleaks.
+
+------------------------------------------------------------------------
+r1841 | cras | 2001-10-15 15:31:40 +0000 (Mon, 15 Oct 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-log.c
+
+-ansicolors -mirccolors => -colors in /LOG OPEN syntax, since there's only -colors currently..
+
+------------------------------------------------------------------------
+r1840 | cras | 2001-10-15 12:53:20 +0000 (Mon, 15 Oct 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/modes.c
+
+/DEVOICE * should devoice operators having voices too.
+
+------------------------------------------------------------------------
+r1839 | cras | 2001-10-14 15:19:57 +0000 (Sun, 14 Oct 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/configure.in
+
+perl_prefix_note shouldn't be printed if --enable-perl-path was given.
+
+------------------------------------------------------------------------
+r1838 | cras | 2001-10-14 14:56:49 +0000 (Sun, 14 Oct 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/configure.in
+
+--with-perl-lib=site didn't work if --prefix was given
+
+------------------------------------------------------------------------
+r1837 | cras | 2001-10-14 14:14:54 +0000 (Sun, 14 Oct 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/args.c
+   M /irssi/trunk/src/core/net-disconnect.c
+   M /irssi/trunk/src/core/nicklist.c
+   M /irssi/trunk/src/core/servers.c
+   M /irssi/trunk/src/fe-text/gui-readline.c
+
+Fixed some memory leaks.
+
+------------------------------------------------------------------------
+r1836 | cras | 2001-10-14 13:45:27 +0000 (Sun, 14 Oct 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/gui-readline.c
+
+fixed a minor memleak
+
+------------------------------------------------------------------------
+r1835 | cras | 2001-10-14 13:33:22 +0000 (Sun, 14 Oct 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/channels-query.c
+   M /irssi/trunk/src/irc/core/irc-nicklist.c
+
+Irssi lost channel key for secret/private channels after join.
+
+------------------------------------------------------------------------
+r1834 | cras | 2001-10-14 11:33:13 +0000 (Sun, 14 Oct 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/docs/help/in/bind.in
+
+added delete_to_next_space command
+
+------------------------------------------------------------------------
+r1833 | cras | 2001-10-14 11:32:06 +0000 (Sun, 14 Oct 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/gui-entry.c
+   M /irssi/trunk/src/fe-text/gui-entry.h
+   M /irssi/trunk/src/fe-text/gui-readline.c
+
+delete_previous_word and delete_next_word now deletes only until
+non-alphanumeric character is found. added delete_to_next_space command.
+
+------------------------------------------------------------------------
+r1832 | cras | 2001-10-14 11:25:26 +0000 (Sun, 14 Oct 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-expandos.c
+
+$winname expando didn't change on "window changed" signal.
+
+------------------------------------------------------------------------
+r1831 | cras | 2001-10-14 11:17:13 +0000 (Sun, 14 Oct 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/gui-readline.c
+   M /irssi/trunk/src/fe-text/statusbar-config.c
+   M /irssi/trunk/src/fe-text/statusbar-items.c
+   M /irssi/trunk/src/fe-text/statusbar.c
+
+Window-statusbars are created correctly with /RELOAD, some input line
+fixes related to /RELOAD.
+
+------------------------------------------------------------------------
+r1830 | cras | 2001-10-14 10:45:00 +0000 (Sun, 14 Oct 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/mainwindows.c
+   M /irssi/trunk/src/fe-text/statusbar.c
+
+Resizing terminal works now properly, also sends "terminal resized" signal
+now.
+
+------------------------------------------------------------------------
+r1829 | cras | 2001-10-14 10:15:27 +0000 (Sun, 14 Oct 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/irssi.conf
+
+Removed hilighting from info-bar. Looks horrible with reversed text in
+terminal with white background.
+
+------------------------------------------------------------------------
+r1828 | cras | 2001-10-14 10:14:32 +0000 (Sun, 14 Oct 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/gui-printtext.c
+   M /irssi/trunk/src/fe-text/screen.h
+   M /irssi/trunk/src/fe-text/textbuffer-view.c
+   M /irssi/trunk/src/fe-text/textbuffer.c
+   M /irssi/trunk/src/fe-text/textbuffer.h
+
+Reversed text (^V) works again.
+
+------------------------------------------------------------------------
+r1827 | cras | 2001-10-14 09:54:52 +0000 (Sun, 14 Oct 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/statusbar.c
+
+fallback to sb_background in theme if no other statusbar background settings
+were found.
+
+------------------------------------------------------------------------
+r1826 | cras | 2001-10-14 09:48:30 +0000 (Sun, 14 Oct 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/irc-expandos.c
+
+$usermode's "user mode changed" signal had wrong argument check (server vs.
+window) so it didn't really detect mode changes.
+
+------------------------------------------------------------------------
+r1825 | cras | 2001-10-14 09:07:26 +0000 (Sun, 14 Oct 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/perl/common/Core.xs
+   M /irssi/trunk/src/perl/perl-sources.c
+   M /irssi/trunk/src/perl/perl-sources.h
+
+Irssi::timeout_add() and Irssi::input_add() now accepts any type of variable
+as data instead of just string.
+
+------------------------------------------------------------------------
+r1824 | cras | 2001-10-13 21:23:35 +0000 (Sat, 13 Oct 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/default.theme
+
+updated for the statusbar
+
+------------------------------------------------------------------------
+r1823 | cras | 2001-10-13 16:59:03 +0000 (Sat, 13 Oct 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/gui-entry.c
+
+When active input line was destroyed, irssi didn't set active_entry to NULL.
+
+------------------------------------------------------------------------
+r1822 | cras | 2001-10-13 16:22:11 +0000 (Sat, 13 Oct 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/configure.in
+
+expand ~ in --prefix. should fix at least some perl problems with
+configuring with --prefix=~/
+
+------------------------------------------------------------------------
+r1821 | cras | 2001-10-13 16:11:13 +0000 (Sat, 13 Oct 2001) | 5 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/formats.c
+   M /irssi/trunk/src/fe-common/core/formats.h
+   M /irssi/trunk/src/fe-text/Makefile.am
+   M /irssi/trunk/src/fe-text/gui-entry.c
+   M /irssi/trunk/src/fe-text/gui-entry.h
+   M /irssi/trunk/src/fe-text/gui-expandos.c
+   M /irssi/trunk/src/fe-text/gui-printtext.c
+   M /irssi/trunk/src/fe-text/gui-readline.c
+   M /irssi/trunk/src/fe-text/gui-windows.c
+   M /irssi/trunk/src/fe-text/gui-windows.h
+   M /irssi/trunk/src/fe-text/irssi.c
+   M /irssi/trunk/src/fe-text/mainwindows.c
+   M /irssi/trunk/src/fe-text/mainwindows.h
+   M /irssi/trunk/src/fe-text/screen.c
+   A /irssi/trunk/src/fe-text/statusbar-config.c
+   A /irssi/trunk/src/fe-text/statusbar-config.h
+   M /irssi/trunk/src/fe-text/statusbar-items.c
+   A /irssi/trunk/src/fe-text/statusbar-items.h
+   M /irssi/trunk/src/fe-text/statusbar.c
+   M /irssi/trunk/src/fe-text/statusbar.h
+
+Configurable statusbar - see default config file (irssi.conf) for example
+how to configure it. Added %> format which clears to end of line using the
+current bg color. Added support for multiple input lines (just the core, not
+used anywhere yet).
+
+------------------------------------------------------------------------
+r1820 | cras | 2001-10-13 16:10:19 +0000 (Sat, 13 Oct 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/irssi.conf
+
+added statusbar configuration
+
+------------------------------------------------------------------------
+r1819 | cras | 2001-10-13 15:17:54 +0000 (Sat, 13 Oct 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/core/settings.h
+
+"extern const char *default_config;" - some other parts of irssi might want
+to use the default config also.
+
+------------------------------------------------------------------------
+r1818 | cras | 2001-10-02 07:55:51 +0000 (Tue, 02 Oct 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/core/modules.h
+   M /irssi/trunk/src/fe-common/core/fe-common-core.c
+   M /irssi/trunk/src/irc/flood/flood.c
+   M /irssi/trunk/src/irc/notifylist/notifylist.c
+
+Added MODULE_DATA_UNSET() macro and started using it. Just to make sure we
+don't try to access free'd data.
+
+------------------------------------------------------------------------
+r1817 | cras | 2001-10-01 12:05:50 +0000 (Mon, 01 Oct 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/notifylist/fe-notifylist.c
+
+Use the nick as target when printing notify messages, so they go to query windows.
+
+------------------------------------------------------------------------
+r1816 | cras | 2001-10-01 08:20:38 +0000 (Mon, 01 Oct 2001) | 2 lines
+Changed paths:
+   A /irssi/trunk/docs/help/in/say.in
+
+/HELP say by peter@catslair.demon.nl
+
+------------------------------------------------------------------------
+r1815 | cras | 2001-10-01 07:04:11 +0000 (Mon, 01 Oct 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/translation.c
+
+/SET translation was broken - fixed by lam@e-gate.pl.
+
+------------------------------------------------------------------------
+r1814 | cras | 2001-09-23 17:32:05 +0000 (Sun, 23 Sep 2001) | 4 lines
+Changed paths:
+   M /irssi/trunk/src/core/expandos.c
+   M /irssi/trunk/src/core/expandos.h
+   M /irssi/trunk/src/core/special-vars.c
+   M /irssi/trunk/src/core/special-vars.h
+
+added expando_get_signals() and special_vars_get_signals() to return list
+of signals the expandos use. Also added "time changed" signal which gets
+emitted when $Z changes.
+
+------------------------------------------------------------------------
+r1813 | cras | 2001-09-22 16:06:15 +0000 (Sat, 22 Sep 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/perl/common/Channel.xs
+   M /irssi/trunk/src/perl/common/module.h
+
+channel_create() wasn't called properly
+
+------------------------------------------------------------------------
+r1812 | cras | 2001-09-22 15:24:40 +0000 (Sat, 22 Sep 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/lib-config/get.c
+   M /irssi/trunk/src/lib-config/iconfig.h
+
+added config_node_first() function to get the first non-comment node.
+
+------------------------------------------------------------------------
+r1811 | cras | 2001-09-22 14:53:54 +0000 (Sat, 22 Sep 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/lib-config/get.c
+   M /irssi/trunk/src/lib-config/iconfig.h
+
+config_node_next() - Returns the next non-comment node in list. Use this
+function when reading blocks/lists in config file.
+
+------------------------------------------------------------------------
+r1810 | cras | 2001-09-22 11:25:08 +0000 (Sat, 22 Sep 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/module-formats.c
+   M /irssi/trunk/src/fe-common/core/module-formats.h
+   M /irssi/trunk/src/fe-common/core/translation.c
+
+/SET translation now says if there were any errors
+
+------------------------------------------------------------------------
+r1809 | cras | 2001-09-22 08:15:30 +0000 (Sat, 22 Sep 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/docs/perl.txt
+
+/COMMAND creation example fixed/updated.
+
+------------------------------------------------------------------------
+r1808 | cras | 2001-09-21 14:57:29 +0000 (Fri, 21 Sep 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/irssi.spec.in
+
+updated
+
+------------------------------------------------------------------------
+r1807 | cras | 2001-09-21 14:09:44 +0000 (Fri, 21 Sep 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/module-formats.c
+
+bind_key format updated. Doesn't truncate the key now.
+
+------------------------------------------------------------------------
+r1806 | cras | 2001-09-20 17:56:33 +0000 (Thu, 20 Sep 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/irc-servers.c
+
+When using /SET hostname ipv6:address, replace the ':' char with '_' so it
+won't break the USER command which is sent to server at connect.
+
+------------------------------------------------------------------------
+r1805 | cras | 2001-09-20 16:50:27 +0000 (Thu, 20 Sep 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/themes.c
+
+PARAMS -> ARGS fix again..
+
+------------------------------------------------------------------------
+r1804 | cras | 2001-09-20 16:44:22 +0000 (Thu, 20 Sep 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/core/special-vars.c
+   M /irssi/trunk/src/core/special-vars.h
+
+s/PARAM_FLAGS_ONLY_PARAMS/PARAM_FLAG_ONLY_ARGS/ since they're called
+arguments everywhere :)
+
+------------------------------------------------------------------------
+r1803 | cras | 2001-09-20 16:43:24 +0000 (Thu, 20 Sep 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/special-vars.c
+
+$*, $~ and $-n should still work with PARAM_FLAG_ONLY_PARAMS.
+
+------------------------------------------------------------------------
+r1802 | cras | 2001-09-20 15:58:14 +0000 (Thu, 20 Sep 2001) | 5 lines
+Changed paths:
+   M /irssi/trunk/src/core/special-vars.c
+   M /irssi/trunk/src/core/special-vars.h
+   M /irssi/trunk/src/fe-common/core/formats.c
+   M /irssi/trunk/src/fe-common/core/themes.c
+
+special vars: added PARSE_FLAG_ONLY_PARAMS. Theme loading now uses it so
+you can use $C etc. in themes to print the active channel. printformat()
+also expands it now correctly to the server/target where the message was
+printed, not to the active window's server/target.
+
+------------------------------------------------------------------------
+r1801 | cras | 2001-09-20 14:21:46 +0000 (Thu, 20 Sep 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/perl/perl-signals.c
+
+perl_signal_remove() didn't work.
+
+------------------------------------------------------------------------
+r1800 | cras | 2001-09-19 09:15:44 +0000 (Wed, 19 Sep 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/docs/help/in/ignore.in
+   M /irssi/trunk/docs/help/in/unignore.in
+
+updated
+
+------------------------------------------------------------------------
+r1799 | cras | 2001-09-18 15:37:07 +0000 (Tue, 18 Sep 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/module-formats.c
+
+"Unknown chat network" error now tells to create it with /IRCNET ADD
+(..which is a bit wrong with non-IRC..)
+
+------------------------------------------------------------------------
+r1798 | cras | 2001-09-17 13:04:23 +0000 (Mon, 17 Sep 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-log.c
+
+Print the log's expanded file name when complaining about not being able to
+create log file.
+
+------------------------------------------------------------------------
+r1797 | cras | 2001-09-13 13:08:25 +0000 (Thu, 13 Sep 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/irc-nicklist.c
+
+..the same fix..
+
+------------------------------------------------------------------------
+r1796 | cras | 2001-09-13 13:06:19 +0000 (Thu, 13 Sep 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/irc-nicklist.c
+
+Don't crash if the IRC server doesn't print your nick in /NAMES list after
+join.
+
+------------------------------------------------------------------------
+r1795 | cras | 2001-09-12 12:19:59 +0000 (Wed, 12 Sep 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/dcc/dcc.c
+
+The new /SET dcc_port range didn't work properly..
+
+------------------------------------------------------------------------
+r1794 | cras | 2001-09-11 18:32:43 +0000 (Tue, 11 Sep 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/keyboard.c
+
+/BIND ^W-1 was treated as ^W + '-' + '1', not as ^W + '1'..
+
+------------------------------------------------------------------------
+r1793 | cras | 2001-09-11 18:20:10 +0000 (Tue, 11 Sep 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-log.c
+
+escape_target() didn't escape / chars properly, it just crashed irssi..
+
+------------------------------------------------------------------------
+r1792 | cras | 2001-09-11 18:15:17 +0000 (Tue, 11 Sep 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/keyboard.c
+   M /irssi/trunk/src/fe-text/gui-readline.c
+
+It's now possible to stop single character /BINDs from printing to input
+line. Hiascii characters didn't work properly with /BIND.
+
+------------------------------------------------------------------------
+r1791 | cras | 2001-09-11 18:04:57 +0000 (Tue, 11 Sep 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/docs/signals.txt
+
+Updated "module xxx" signals.
+
+------------------------------------------------------------------------
+r1790 | cras | 2001-09-11 18:02:17 +0000 (Tue, 11 Sep 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/fe-irc-messages.c
+
+Server notices shouldn't contain target field when printing it, it's always
+you anyway.
+
+------------------------------------------------------------------------
+r1789 | cras | 2001-09-11 17:47:31 +0000 (Tue, 11 Sep 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/chat-protocols.h
+   M /irssi/trunk/src/fe-common/core/fe-log.c
+   M /irssi/trunk/src/irc/core/irc-core.c
+
+autolog: target name is now always lowercased with irc protocol.
+
+------------------------------------------------------------------------
+r1788 | cras | 2001-09-11 17:38:47 +0000 (Tue, 11 Sep 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/modules-load.c
+
+/LOAD fixes for modules with no core part, and /LOAD ~/...
+
+------------------------------------------------------------------------
+r1787 | cras | 2001-09-11 17:32:29 +0000 (Tue, 11 Sep 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/configure.in
+
+sys/resource.h check - needed for the ulimit change.. removed libintl.h
+check since it's not used anymore.
+
+------------------------------------------------------------------------
+r1786 | cras | 2001-09-11 15:45:42 +0000 (Tue, 11 Sep 2001) | 5 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/channels-query.c
+
+Added option /SET channel_sync - if disabled irssi disables the channel
+syncing entirely. This breaks /BAN and probably something else too. Just a
+temporarily kludge until I fix this properly (on demand /USERHOST at /BAN
+time, etc.).
+
+------------------------------------------------------------------------
+r1785 | cras | 2001-09-11 12:46:26 +0000 (Tue, 11 Sep 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/docs/help/in/log.in
+
+-targets accepts space separated list..
+
+------------------------------------------------------------------------
+r1784 | cras | 2001-09-10 20:21:05 +0000 (Mon, 10 Sep 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/dcc/dcc.c
+
+/SET dcc_port accepts now port range (eg. "10000 20000")
+
+------------------------------------------------------------------------
+r1783 | cras | 2001-09-10 19:50:53 +0000 (Mon, 10 Sep 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/core/core.c
+
+/SET override_coredump_limit - sets core file size to unlimited if set ON
+(default).
+
+------------------------------------------------------------------------
+r1782 | cras | 2001-09-10 15:34:49 +0000 (Mon, 10 Sep 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/screen.c
+
+Disabled using idcok() which caused redrawing problems with netbsd.
+
+------------------------------------------------------------------------
+r1781 | cras | 2001-09-09 12:20:17 +0000 (Sun, 09 Sep 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/mainwindows-layout.c
+
+Restoring split windows layout didn't work properly (didn't I already commit
+this days ago?)
+
+------------------------------------------------------------------------
+r1780 | cras | 2001-09-09 12:12:28 +0000 (Sun, 09 Sep 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/mainwindows.c
+
+/WINDOW MOVE UP|DOWN might have crashed.
+
+------------------------------------------------------------------------
+r1779 | cras | 2001-09-08 18:57:09 +0000 (Sat, 08 Sep 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/window-commands.c
+
+/WINDOW ITEM MOVE didn't work properly if there was space after parameter
+(..which tab-completion added..)
+
+------------------------------------------------------------------------
+r1778 | cras | 2001-09-08 18:02:49 +0000 (Sat, 08 Sep 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/modules-load.c
+
+Loading modules that didn't have "core" part didn't work (eg. irc_proxy).
+
+------------------------------------------------------------------------
+r1777 | cras | 2001-09-06 14:44:40 +0000 (Thu, 06 Sep 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/docs/crash.txt
+
+upated
+
+------------------------------------------------------------------------
+r1776 | cras | 2001-09-06 13:12:52 +0000 (Thu, 06 Sep 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/irc-servers.c
+
+Use only the first word from username when sending it to server.
+
+------------------------------------------------------------------------
+r1775 | cras | 2001-08-31 20:27:43 +0000 (Fri, 31 Aug 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/mainwindows.c
+
+mainwindow_set_size() called mainwindow_shrink() improperly.
+
+------------------------------------------------------------------------
+r1774 | cras | 2001-08-31 16:47:14 +0000 (Fri, 31 Aug 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/expandos.c
+
+Expando lookup crashed with hi-ascii chars.
+
+------------------------------------------------------------------------
+r1773 | cras | 2001-08-31 16:32:35 +0000 (Fri, 31 Aug 2001) | 4 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-queries.c
+
+Print the server tag in "query started" messages with query->server_tag, not
+query->server->tag since query->server can be NULL when restoring window
+layout.
+
+------------------------------------------------------------------------
+r1772 | cras | 2001-08-28 12:24:46 +0000 (Tue, 28 Aug 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/screen.c
+
+Added command /RESIZE for resizing the terminal when SIGWINCH isn't supported.
+
+------------------------------------------------------------------------
+r1771 | cras | 2001-08-28 11:12:03 +0000 (Tue, 28 Aug 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/completion.c
+
+Check that word isn't empty instead of just assuming it isn't. This one
+probably caused several completion problems.
+
+------------------------------------------------------------------------
+r1770 | cras | 2001-08-24 13:46:35 +0000 (Fri, 24 Aug 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/irssi.conf
+
+/CALC alias fixed
+
+------------------------------------------------------------------------
+r1769 | cras | 2001-08-24 13:34:35 +0000 (Fri, 24 Aug 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/irssi.conf
+
+/UPTIME alias was _still_ broken.
+
+------------------------------------------------------------------------
+r1768 | cras | 2001-08-23 10:54:54 +0000 (Thu, 23 Aug 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-queries.c
+
+removed accidental 'i' :)
+
+------------------------------------------------------------------------
+r1767 | cras | 2001-08-23 10:32:32 +0000 (Thu, 23 Aug 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-queries.c
+   M /irssi/trunk/src/fe-common/core/module-formats.c
+
+Added server tag to query_start format.
+
+------------------------------------------------------------------------
+r1766 | cras | 2001-08-22 14:51:12 +0000 (Wed, 22 Aug 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/irssi.conf
+
+/UPTIME alias fixed
+
+------------------------------------------------------------------------
+r1765 | cras | 2001-08-22 14:21:15 +0000 (Wed, 22 Aug 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/irssi.conf
+
+typofix
+
+------------------------------------------------------------------------
+r1764 | cras | 2001-08-20 12:01:01 +0000 (Mon, 20 Aug 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-log.c
+
+Added option /SET autolog_colors. Colors are now off by default for /WINDOW
+LOGs too.
+
+------------------------------------------------------------------------
+r1763 | cras | 2001-08-17 14:08:35 +0000 (Fri, 17 Aug 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/lastlog.c
+
+/LASTLOG: start parameter wasn't handled correctly
+
+------------------------------------------------------------------------
+r1762 | cras | 2001-08-17 13:52:14 +0000 (Fri, 17 Aug 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/modules-load.c
+
+Module loading fixes.
+
+------------------------------------------------------------------------
+r1761 | cras | 2001-08-17 11:55:08 +0000 (Fri, 17 Aug 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/perl/Makefile.am
+
+typofix
+
+------------------------------------------------------------------------
+r1760 | cras | 2001-08-17 11:51:21 +0000 (Fri, 17 Aug 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/perl/Makefile.am
+
+added textui
+
+------------------------------------------------------------------------
+r1759 | cras | 2001-08-14 13:19:06 +0000 (Tue, 14 Aug 2001) | 4 lines
+Changed paths:
+   M /irssi/trunk/src/core/chat-commands.c
+   M /irssi/trunk/src/fe-common/core/fe-server.c
+   M /irssi/trunk/src/fe-text/gui-printtext.c
+   M /irssi/trunk/src/fe-text/gui-printtext.h
+   M /irssi/trunk/src/fe-text/textbuffer-reformat.c
+   M /irssi/trunk/src/irc/core/irc-commands.c
+   M /irssi/trunk/src/irc/core/irc-servers.c
+   M /irssi/trunk/src/irc/core/irc-servers.h
+
+Some internal changes how /SERVER command works. Added /SERVER PURGE
+[<target>] command. The channel output is purged at /PART if the output
+queue is larger than 10.
+
+------------------------------------------------------------------------
+r1758 | cras | 2001-08-14 13:17:11 +0000 (Tue, 14 Aug 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/netsplit.c
+
+quitmsg_is_split() fix - the hosts must contain the domain part now (ie.
+"word1 word2" isn't a netsplit)
+
+------------------------------------------------------------------------
+r1757 | cras | 2001-08-14 12:33:29 +0000 (Tue, 14 Aug 2001) | 4 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/fe-irc-commands.c
+
+Some support for lain ircd's /SETHOST - It /PART + /JOINs all channels, so
+add all the joined channels to window binds temporarily so /PART doesn't
+close the windows if /SET autoclose_windows is ON.
+
+------------------------------------------------------------------------
+r1756 | cras | 2001-08-14 11:53:08 +0000 (Tue, 14 Aug 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/netsplit.c
+   M /irssi/trunk/src/irc/core/netsplit.h
+
+Rewrote quitmsg_is_split(). A bit faster now and doesn't match to quit
+messages like "foo. bar."
+
+------------------------------------------------------------------------
+r1755 | cras | 2001-08-14 11:24:11 +0000 (Tue, 14 Aug 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/perl/textui/TextUI.xs
+
+Irssi::TextUI::TextBufferVew should also contain the scroll..
+
+------------------------------------------------------------------------
+r1754 | cras | 2001-08-14 11:23:22 +0000 (Tue, 14 Aug 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/perl/textui/TextBufferView.xs
+
+Updated for view->scroll.
+
+------------------------------------------------------------------------
+r1753 | cras | 2001-08-14 11:22:19 +0000 (Tue, 14 Aug 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/chat-completion.c
+
+Typofix - might have caused a crash if channel was destroyed with /WINDOW
+CLOSE.
+
+------------------------------------------------------------------------
+r1752 | cras | 2001-08-14 01:19:34 +0000 (Tue, 14 Aug 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/gui-printtext.c
+   M /irssi/trunk/src/fe-text/statusbar-items.c
+
+--more-- checker uses now "gui print text finished" signal. "gui " part was
+missing from signal_remove("gui print text finished") in gui-printtext.c..
+
+------------------------------------------------------------------------
+r1751 | cras | 2001-08-14 01:14:26 +0000 (Tue, 14 Aug 2001) | 4 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/gui-windows.c
+   M /irssi/trunk/src/fe-text/gui-windows.h
+   M /irssi/trunk/src/fe-text/mainwindows-layout.c
+   M /irssi/trunk/src/fe-text/module-formats.c
+   M /irssi/trunk/src/fe-text/module-formats.h
+   M /irssi/trunk/src/fe-text/textbuffer-commands.c
+   M /irssi/trunk/src/fe-text/textbuffer-view.c
+   M /irssi/trunk/src/fe-text/textbuffer-view.h
+
+/SET scroll ON - should the windows be scrolled by default when you're at
+bottom. /WINDOW SCROLL ON|OFF|DEFAULT - Window specific scrolling behaviour,
+also saved in windows layout.
+
+------------------------------------------------------------------------
+r1750 | cras | 2001-08-14 00:53:56 +0000 (Tue, 14 Aug 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/statusbar-items.c
+
+Removed trigraphs by adding "" in the middle.
+
+------------------------------------------------------------------------
+r1749 | cras | 2001-08-14 00:43:50 +0000 (Tue, 14 Aug 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-none/irssi.c
+   M /irssi/trunk/src/irc/bot/bot.c
+   M /irssi/trunk/src/irc/proxy/proxy.c
+
+Added missing module_register() calls.
+
+------------------------------------------------------------------------
+r1748 | cras | 2001-08-14 00:41:59 +0000 (Tue, 14 Aug 2001) | 7 lines
+Changed paths:
+   M /irssi/trunk/src/core/Makefile.am
+   M /irssi/trunk/src/core/core.c
+   A /irssi/trunk/src/core/modules-load.c
+   A /irssi/trunk/src/core/modules-load.h
+   M /irssi/trunk/src/core/modules.c
+   M /irssi/trunk/src/core/modules.h
+   M /irssi/trunk/src/fe-common/core/fe-common-core.c
+   M /irssi/trunk/src/fe-common/core/fe-modules.c
+   M /irssi/trunk/src/fe-common/core/module-formats.c
+   M /irssi/trunk/src/fe-common/core/module-formats.h
+   M /irssi/trunk/src/fe-common/irc/dcc/fe-dcc.c
+   M /irssi/trunk/src/fe-common/irc/fe-common-irc.c
+   M /irssi/trunk/src/fe-common/irc/notifylist/fe-notifylist.c
+   M /irssi/trunk/src/fe-text/irssi.c
+   M /irssi/trunk/src/irc/core/irc-core.c
+   M /irssi/trunk/src/irc/dcc/dcc.c
+   M /irssi/trunk/src/irc/flood/flood.c
+   M /irssi/trunk/src/irc/notifylist/notifylist.c
+   M /irssi/trunk/src/perl/Makefile.am
+   A /irssi/trunk/src/perl/module-fe.h
+   M /irssi/trunk/src/perl/module.h
+   M /irssi/trunk/src/perl/perl-core.c
+   M /irssi/trunk/src/perl/perl-fe.c
+
+Module loading updates - /LOAD shows now also the statically loaded modules.
+You can't /LOAD the same module twice. Syntax changed to /LOAD <module>
+[<submodule>], /UNLOAD <module> [<submodule>].
+
+NOTE: all modules now need to call register_module() in their init()
+function.
+
+------------------------------------------------------------------------
+r1747 | cras | 2001-08-14 00:03:02 +0000 (Tue, 14 Aug 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/signals.c
+
+minor speedups and signal removing fixes
+
+------------------------------------------------------------------------
+r1746 | cras | 2001-08-13 22:01:38 +0000 (Mon, 13 Aug 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/module-formats.c
+   M /irssi/trunk/src/fe-common/irc/module-formats.c
+
+"IRC Net" -> "Network" in /SERVER LIST and /CHANNEL LIST
+
+------------------------------------------------------------------------
+r1745 | cras | 2001-08-13 14:14:09 +0000 (Mon, 13 Aug 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/irssi.conf
+   M /irssi/trunk/src/irc/core/irc-servers.c
+
+max_query_chans set to 1 by default. Set to 10 in networks where it's known
+to work.
+
+------------------------------------------------------------------------
+r1744 | cras | 2001-08-13 14:00:57 +0000 (Mon, 13 Aug 2001) | 4 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/fe-irc-commands.c
+   M /irssi/trunk/src/fe-common/irc/module-formats.c
+   M /irssi/trunk/src/fe-common/irc/module-formats.h
+
+/INVITELIST prints "Invite list is empty" message and complains about not
+being synced. Changed level to CLIENTNOTICE when printing the "no bans"
+message.
+
+------------------------------------------------------------------------
+r1743 | cras | 2001-08-13 13:55:34 +0000 (Mon, 13 Aug 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/docs/signals.txt
+
+Added "message irc ..." signals
+
+------------------------------------------------------------------------
+r1742 | cras | 2001-08-13 13:51:49 +0000 (Mon, 13 Aug 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/core/log.c
+   M /irssi/trunk/src/core/log.h
+   M /irssi/trunk/src/fe-common/core/fe-log.c
+   M /irssi/trunk/src/fe-common/core/formats.c
+
+/LOG OPEN -color, /SET awaylog_colors - specifies that the color codes
+should be written to log file.
+
+------------------------------------------------------------------------
+r1741 | cras | 2001-08-12 18:25:43 +0000 (Sun, 12 Aug 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/textbuffer-view.c
+   M /irssi/trunk/src/fe-text/textbuffer.c
+
+textbuffer_view_remove_line() fixes (with a small kludge..)
+
+------------------------------------------------------------------------
+r1740 | cras | 2001-08-12 17:05:36 +0000 (Sun, 12 Aug 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/keyboard.c
+
+One more limit to "key" names - it can't start with a digit. This allows us
+to use /BIND foo meta2-18~ etc. more easily.
+
+------------------------------------------------------------------------
+r1739 | cras | 2001-08-12 17:02:06 +0000 (Sun, 12 Aug 2001) | 4 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/keyboard.c
+
+Bugfix to keyb. code :) And now the "key" names can contain only
+alphanumeric + '_' characters, which makes /BIND foo meta-5~ work again
+because 5~ are treated separately, not as one "key" name.
+
+------------------------------------------------------------------------
+r1738 | cras | 2001-08-12 16:48:34 +0000 (Sun, 12 Aug 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/keyboard.c
+
+Keyboard code fixes - meta-arrows etc. should work now correctly.
+
+------------------------------------------------------------------------
+r1737 | cras | 2001-08-12 13:05:57 +0000 (Sun, 12 Aug 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/window-commands.c
+
+/WINDOW CLOSE <first> didn't work if <last> too wasn't specified..
+
+------------------------------------------------------------------------
+r1736 | cras | 2001-08-09 11:08:24 +0000 (Thu, 09 Aug 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/debian/rules
+
+updates
+
+------------------------------------------------------------------------
+r1735 | cras | 2001-08-09 11:03:14 +0000 (Thu, 09 Aug 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/configure.in
+
+Check that IPv6 structures are found if --enable-ipv6 is given.
+
+------------------------------------------------------------------------
+r1734 | cras | 2001-08-09 10:26:02 +0000 (Thu, 09 Aug 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/perl/textui/TextBufferView.xs
+
+Removed some extra ';' chars which made it not compile with perl 5.00x.
+textbuffer_get_lines() now actually returns the value.
+
+------------------------------------------------------------------------
+r1733 | cras | 2001-08-09 01:59:36 +0000 (Thu, 09 Aug 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/perl/Makefile.am
+   A /irssi/trunk/src/perl/textui
+   A /irssi/trunk/src/perl/textui/.cvsignore
+   A /irssi/trunk/src/perl/textui/Makefile.PL.in
+   A /irssi/trunk/src/perl/textui/TextBuffer.xs
+   A /irssi/trunk/src/perl/textui/TextBufferView.xs
+   A /irssi/trunk/src/perl/textui/TextUI.pm
+   A /irssi/trunk/src/perl/textui/TextUI.xs
+   A /irssi/trunk/src/perl/textui/module.h
+   A /irssi/trunk/src/perl/textui/typemap
+
+Added Irssi::TextUI.
+
+------------------------------------------------------------------------
+r1732 | cras | 2001-08-09 00:50:22 +0000 (Thu, 09 Aug 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/irssi.conf
+   M /irssi/trunk/src/fe-common/core/fe-core-commands.c
+
+/VERSION command and /SV alias now print the version date too.
+
+------------------------------------------------------------------------
+r1731 | cras | 2001-08-09 00:08:31 +0000 (Thu, 09 Aug 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk
+   M /irssi/trunk/.cvsignore
+   M /irssi/trunk/autogen.sh
+   M /irssi/trunk/configure.in
+
+irssi-version.h is now updated by CVS daily instead of being generated by
+configure. The main version string is set to 0.7.98.CVS.
+
+------------------------------------------------------------------------
+r1730 | cras | 2001-08-08 22:43:00 +0000 (Wed, 08 Aug 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/perl/perl-signals.c
+
+Irssi crashed if script died in a signal handler.
+
+------------------------------------------------------------------------
+r1729 | cras | 2001-08-08 22:42:14 +0000 (Wed, 08 Aug 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/scripts/clones.pl
+
+Some cleanups, complains if not run in channel.
+
+------------------------------------------------------------------------
+r1728 | cras | 2001-08-08 20:12:38 +0000 (Wed, 08 Aug 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/docs/signals.txt
+   M /irssi/trunk/src/fe-text/statusbar-items.c
+
+"mail counter" signal is now sent when mail counter is updated in statusbar.
+
+------------------------------------------------------------------------
+r1727 | cras | 2001-08-08 20:00:25 +0000 (Wed, 08 Aug 2001) | 4 lines
+Changed paths:
+   M /irssi/trunk/src/core/misc.c
+   M /irssi/trunk/src/core/misc.h
+   M /irssi/trunk/src/core/special-vars.c
+   M /irssi/trunk/src/fe-common/core/chat-completion.c
+
+Added function expand_escapes() which handles now escaping /EVAL and input
+line if /SET expand_escapes is set. Supported escapes are \t, \r, \n, \e
+(ESC), \x (HEX, \x1b), \c (CTRL char, \cA), \000 (octal, \033)
+
+------------------------------------------------------------------------
+r1726 | cras | 2001-08-08 18:23:25 +0000 (Wed, 08 Aug 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/windows-layout.c
+
+Restoring window layout shouldn't make the queries active.
+
+------------------------------------------------------------------------
+r1725 | cras | 2001-08-08 18:05:50 +0000 (Wed, 08 Aug 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/windows-layout.c
+   M /irssi/trunk/src/fe-text/mainwindows-layout.c
+
+Changed signal / function names for /LAYOUT stuff. /LAYOUT RESET now resets
+the split windows too.
+
+------------------------------------------------------------------------
+r1724 | cras | 2001-08-08 17:47:54 +0000 (Wed, 08 Aug 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/core/chatnets.c
+   M /irssi/trunk/src/irc/core/channel-events.c
+
+If we receive INVITE for a channel that is added with /CHANNEL ADD -auto,
+join it immediately.
+
+------------------------------------------------------------------------
+r1723 | cras | 2001-08-08 16:39:27 +0000 (Wed, 08 Aug 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/gui-entry.c
+
+Never insert NUL characters to entry line (Ctrl-Space)
+
+------------------------------------------------------------------------
+r1722 | cras | 2001-08-08 16:22:01 +0000 (Wed, 08 Aug 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/docs/help/in/ban.in
+   M /irssi/trunk/src/irc/core/bans.c
+
+/BAN [-type] -> /BAN [-normal | -user | -host | -domain | -custom <type>].
+Added ban type "User"
+
+------------------------------------------------------------------------
+r1721 | cras | 2001-08-08 16:08:47 +0000 (Wed, 08 Aug 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-windows.c
+   M /irssi/trunk/src/fe-common/core/fe-windows.h
+   M /irssi/trunk/src/fe-common/core/window-items.c
+
+Fixed leaking window binds. They were added but rarely removed.
+
+------------------------------------------------------------------------
+r1720 | cras | 2001-08-08 15:48:54 +0000 (Wed, 08 Aug 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/textbuffer.c
+
+one more extra cleanup for textbuffer_remove_all_lines()
+
+------------------------------------------------------------------------
+r1719 | cras | 2001-08-08 15:43:07 +0000 (Wed, 08 Aug 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/textbuffer-view.c
+   M /irssi/trunk/src/fe-text/textbuffer.c
+
+Some extra cleanups for /SB CLEAR.
+
+------------------------------------------------------------------------
+r1718 | cras | 2001-08-08 15:29:56 +0000 (Wed, 08 Aug 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/window-items.c
+
+/SET autofocus_new_items ON - if newly created window items should be set
+active automatically.
+
+------------------------------------------------------------------------
+r1717 | cras | 2001-08-08 15:01:07 +0000 (Wed, 08 Aug 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/irssi.conf
+
+Added CALC alias had broken the config.
+
+------------------------------------------------------------------------
+r1716 | cras | 2001-08-08 14:43:14 +0000 (Wed, 08 Aug 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/mainwindows.c
+   M /irssi/trunk/src/fe-text/mainwindows.h
+
+/WINDOW BALANCE didn't work properly when topicbar was off. Added a few
+comments to mainwindows.h
+
+------------------------------------------------------------------------
+r1715 | cras | 2001-08-08 12:50:49 +0000 (Wed, 08 Aug 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/notifylist/fe-notifylist.c
+
+/NOTIFY printed '!' character after nick if mask was given.
+
+------------------------------------------------------------------------
+r1714 | cras | 2001-08-08 04:00:23 +0000 (Wed, 08 Aug 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/configure.in
+
+Version number update
+
+------------------------------------------------------------------------
+r1713 | cras | 2001-08-07 21:03:26 +0000 (Tue, 07 Aug 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/perl/perl-core.c
+
+Irssi crashed if loading script failed.
+
+------------------------------------------------------------------------
+r1712 | cras | 2001-08-07 15:25:41 +0000 (Tue, 07 Aug 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/perl/perl-common.c
+   M /irssi/trunk/src/perl/perl-core.c
+   M /irssi/trunk/src/perl/perl-signals.c
+
+/SCRIPT RESET didn't work properly (start/stop functions were called in
+wrong order). Added a few extra deinits.
+
+------------------------------------------------------------------------
+r1711 | cras | 2001-08-07 15:16:26 +0000 (Tue, 07 Aug 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/mainwindows-layout.c
+
+Windows' parent weren't saved (but was restored..)
+
+------------------------------------------------------------------------
+r1710 | cras | 2001-08-07 12:41:10 +0000 (Tue, 07 Aug 2001) | 5 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/window-commands.c
+   M /irssi/trunk/src/fe-common/core/windows-layout.c
+   M /irssi/trunk/src/fe-text/Makefile.am
+   M /irssi/trunk/src/fe-text/gui-windows.c
+   M /irssi/trunk/src/fe-text/gui-windows.h
+   M /irssi/trunk/src/fe-text/irssi.c
+   A /irssi/trunk/src/fe-text/mainwindows-layout.c
+   D /irssi/trunk/src/fe-text/mainwindows-save.c
+   M /irssi/trunk/src/fe-text/mainwindows.c
+   M /irssi/trunk/src/fe-text/mainwindows.h
+   M /irssi/trunk/src/fe-text/statusbar-items.c
+
+Restoring layout for split windows works betters now. Some sticky window
+changes/fixes. Renamed /WINDOW MOVE LEFT|RIGHT -> PREV|NEXT, added commands
+/WINDOW MOVE UP|DOWN|LEFT|RIGHT. The new LEFT|RIGHT now moves the window
+only inside split windows. mainwindows-save.c -> mainwindows-layout.c
+
+------------------------------------------------------------------------
+r1709 | cras | 2001-08-07 04:00:27 +0000 (Tue, 07 Aug 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/configure.in
+
+Version number update
+
+------------------------------------------------------------------------
+r1708 | cras | 2001-08-06 04:00:13 +0000 (Mon, 06 Aug 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/configure.in
+
+Version number update
+
+------------------------------------------------------------------------
+r1707 | cras | 2001-08-05 06:45:29 +0000 (Sun, 05 Aug 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/chat-commands.c
+
+/MSG * in empty window now prints "not joined" error
+
+------------------------------------------------------------------------
+r1706 | cras | 2001-08-05 04:00:17 +0000 (Sun, 05 Aug 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/configure.in
+
+Version number update
+
+------------------------------------------------------------------------
+r1705 | cras | 2001-08-04 04:00:18 +0000 (Sat, 04 Aug 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/configure.in
+
+Version number update
+
+------------------------------------------------------------------------
+r1704 | cras | 2001-08-04 02:31:36 +0000 (Sat, 04 Aug 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/statusbar.c
+
+statusbar_item_redraw() didn't work properly with multiple split windows.
+
+------------------------------------------------------------------------
+r1703 | cras | 2001-08-04 01:36:39 +0000 (Sat, 04 Aug 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-ignore.c
+
+/UNIGNORE - skip spaces at end of line.
+
+------------------------------------------------------------------------
+r1702 | cras | 2001-08-03 23:39:35 +0000 (Fri, 03 Aug 2001) | 4 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/gui-windows.c
+   M /irssi/trunk/src/fe-text/mainwindows.c
+   M /irssi/trunk/src/fe-text/mainwindows.h
+
+/WINDOW STICK changes - If ref# is given and it's in another split window,
+it's moved to the active split window - even if the window was already
+sticky in the other one.
+
+------------------------------------------------------------------------
+r1701 | cras | 2001-08-03 22:54:08 +0000 (Fri, 03 Aug 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-windows.c
+   M /irssi/trunk/src/fe-common/core/fe-windows.h
+   M /irssi/trunk/src/fe-common/core/window-commands.c
+   M /irssi/trunk/src/fe-text/mainwindows.c
+   M /irssi/trunk/src/fe-text/module-formats.c
+   M /irssi/trunk/src/fe-text/module-formats.h
+
+Added sticky window information to /WINDOW.
+
+------------------------------------------------------------------------
+r1700 | cras | 2001-08-03 20:50:34 +0000 (Fri, 03 Aug 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/window-commands.c
+
+Minor cleanup.
+
+------------------------------------------------------------------------
+r1699 | cras | 2001-08-03 20:04:39 +0000 (Fri, 03 Aug 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/module-formats.c
+   M /irssi/trunk/src/fe-common/core/module-formats.h
+   M /irssi/trunk/src/fe-common/core/window-commands.c
+
+/WINDOW command now prints all information related to window.
+
+------------------------------------------------------------------------
+r1698 | cras | 2001-08-03 04:00:18 +0000 (Fri, 03 Aug 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/configure.in
+
+Version number update
+
+------------------------------------------------------------------------
+r1697 | cras | 2001-08-02 04:00:48 +0000 (Thu, 02 Aug 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/configure.in
+
+Version number update
+
+------------------------------------------------------------------------
+r1696 | cras | 2001-08-01 04:00:15 +0000 (Wed, 01 Aug 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/configure.in
+
+Version number update
+
+------------------------------------------------------------------------
+r1695 | cras | 2001-07-31 04:00:17 +0000 (Tue, 31 Jul 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/configure.in
+
+Version number update
+
+------------------------------------------------------------------------
+r1694 | cras | 2001-07-31 01:22:32 +0000 (Tue, 31 Jul 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/perl/perl-core.c
+
+Stop scripts when there's error in signal/timeout/input handler.
+
+------------------------------------------------------------------------
+r1693 | cras | 2001-07-30 22:10:11 +0000 (Mon, 30 Jul 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/configure.in
+   M /irssi/trunk/docs/manual.txt
+   M /irssi/trunk/src/perl/Makefile.am
+   M /irssi/trunk/src/perl/perl-common.c
+
+--with-perl-path -> --with-perl-lib=[site|vendor|DIR] with some fixes to
+make it work better.
+
+------------------------------------------------------------------------
+r1692 | cras | 2001-07-30 20:42:27 +0000 (Mon, 30 Jul 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/irssi.conf
+
+A bit more portable calc - use awk instead of echo -n
+
+------------------------------------------------------------------------
+r1691 | cras | 2001-07-30 20:08:34 +0000 (Mon, 30 Jul 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/irssi.conf
+
+added /CALC alias
+
+------------------------------------------------------------------------
+r1690 | cras | 2001-07-30 13:07:26 +0000 (Mon, 30 Jul 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/perl/perl-fe.c
+
+bugfix for parameter handling...
+
+------------------------------------------------------------------------
+r1689 | cras | 2001-07-30 13:06:21 +0000 (Mon, 30 Jul 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/perl/perl-fe.c
+
+/SCRIPT FLUSH -> /SCRIPT RESET. Fixed parameter handling for /SCRIPT
+LOAD & UNLOAD.
+
+------------------------------------------------------------------------
+r1688 | cras | 2001-07-30 12:56:57 +0000 (Mon, 30 Jul 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/perl/perl-common.c
+   M /irssi/trunk/src/perl/perl-common.h
+   M /irssi/trunk/src/perl/perl-core.c
+   M /irssi/trunk/src/perl/perl-signals.c
+   M /irssi/trunk/src/perl/perl-sources.c
+
+Script name is printed now correctly if there's an error in
+timeouts/signals.
+
+------------------------------------------------------------------------
+r1687 | cras | 2001-07-30 12:24:24 +0000 (Mon, 30 Jul 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-settings.c
+
+/TOGGLE didn't send "setup changed" signal
+
+------------------------------------------------------------------------
+r1686 | cras | 2001-07-30 04:00:14 +0000 (Mon, 30 Jul 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/configure.in
+
+Version number update
+
+------------------------------------------------------------------------
+r1685 | cras | 2001-07-29 13:14:32 +0000 (Sun, 29 Jul 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/perl/irssi-core.pl
+
+"\n", not '\n'..
+
+------------------------------------------------------------------------
+r1684 | cras | 2001-07-29 13:13:16 +0000 (Sun, 29 Jul 2001) | 4 lines
+Changed paths:
+   M /irssi/trunk/src/perl/irssi-core.pl
+   M /irssi/trunk/src/perl/perl-fe.c
+
+/SCRIPT EXEC took only one argument. /SCRIPT LIST is now printed with
+CLIENTCRAP level. maybe local($/) = '\n' in irssi-core.pl now resets it
+correctly? ..
+
+------------------------------------------------------------------------
+r1683 | cras | 2001-07-29 12:56:37 +0000 (Sun, 29 Jul 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/signals.c
+
+Signals weren't removed correctly.
+
+------------------------------------------------------------------------
+r1682 | cras | 2001-07-29 12:18:58 +0000 (Sun, 29 Jul 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/perl/irssi-core.pl
+
+don't use strict since it was forced to scripts too. added a missing $.
+
+------------------------------------------------------------------------
+r1681 | cras | 2001-07-29 12:14:08 +0000 (Sun, 29 Jul 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/perl/Makefile.am
+
+forgot module-formats.h
+
+------------------------------------------------------------------------
+r1680 | cras | 2001-07-29 09:17:53 +0000 (Sun, 29 Jul 2001) | 7 lines
+Changed paths:
+   M /irssi/trunk/configure.in
+   M /irssi/trunk/docs/manual.txt
+   M /irssi/trunk/irssi.conf
+   M /irssi/trunk/src/fe-common/core/completion.c
+   M /irssi/trunk/src/fe-common/core/completion.h
+   M /irssi/trunk/src/fe-common/irc/dcc/fe-dcc-send.c
+   M /irssi/trunk/src/fe-text/Makefile.am
+   M /irssi/trunk/src/fe-text/irssi.c
+   M /irssi/trunk/src/perl
+   M /irssi/trunk/src/perl/.cvsignore
+   M /irssi/trunk/src/perl/Makefile.am
+   M /irssi/trunk/src/perl/common/module.h
+   A /irssi/trunk/src/perl/irssi-core.pl
+   A /irssi/trunk/src/perl/module-formats.c
+   A /irssi/trunk/src/perl/module-formats.h
+   M /irssi/trunk/src/perl/module.h
+   M /irssi/trunk/src/perl/perl-common.c
+   M /irssi/trunk/src/perl/perl-common.h
+   A /irssi/trunk/src/perl/perl-core.c
+   A /irssi/trunk/src/perl/perl-core.h
+   A /irssi/trunk/src/perl/perl-fe.c
+   M /irssi/trunk/src/perl/perl-signals.c
+   M /irssi/trunk/src/perl/perl-signals.h
+   A /irssi/trunk/src/perl/perl-sources.c
+   A /irssi/trunk/src/perl/perl-sources.h
+   D /irssi/trunk/src/perl/perl.c
+   M /irssi/trunk/src/perl/ui/UI.xs
+
+--enable-perl* -> --with-perl*. Added a new libfe_perl which handles /SCRIPT
+commands. /RUN -> /SCRIPT LOAD, /PERLFLUSH -> /SCRIPT FLUSH, /PERL ->
+/SCRIPT EXEC. Added /SCRIPT UNLOAD, /SCRIPT LIST. Lots of cleanups.
+
+filename_complete() has extra argument for "default directory" which is
+searched if no path is given when completing.
+
+------------------------------------------------------------------------
+r1679 | cras | 2001-07-29 05:32:38 +0000 (Sun, 29 Jul 2001) | 4 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/fe-events-numeric.c
+
+/NAMES #channel_you're_not_joined doesn't print the "total of xx nick" line
+anymore - it was always just full of 0 and people thought it was a bug (it's
+a missing feature :).
+
+------------------------------------------------------------------------
+r1678 | cras | 2001-07-29 04:51:29 +0000 (Sun, 29 Jul 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/perl/Makefile.am
+
+fix
+
+------------------------------------------------------------------------
+r1677 | cras | 2001-07-29 04:38:31 +0000 (Sun, 29 Jul 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/completion.c
+
+" <tab>" in query printed glib warnings.
+
+------------------------------------------------------------------------
+r1676 | cras | 2001-07-29 04:03:58 +0000 (Sun, 29 Jul 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/perl/perl-signals.c
+
+bugfix
+
+------------------------------------------------------------------------
+r1675 | cras | 2001-07-29 04:00:15 +0000 (Sun, 29 Jul 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/configure.in
+
+Version number update
+
+------------------------------------------------------------------------
+r1674 | cras | 2001-07-29 03:56:46 +0000 (Sun, 29 Jul 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/perl/Makefile.am
+
+Use INSTALLDIRS=perl option with MakeMaker if perl install directory is
+specified.
+
+------------------------------------------------------------------------
+r1673 | cras | 2001-07-29 03:55:03 +0000 (Sun, 29 Jul 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk
+   M /irssi/trunk/.cvsignore
+
+added a few debian-specific files.
+
+------------------------------------------------------------------------
+r1672 | cras | 2001-07-29 03:54:39 +0000 (Sun, 29 Jul 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/autogen.sh
+
+Remove VERSION from config.h.in so you don't need to rebuild the whole irssi
+because of it.
+
+------------------------------------------------------------------------
+r1671 | cras | 2001-07-29 02:25:55 +0000 (Sun, 29 Jul 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/screen.c
+
+Resize fixes. Now SIGWINCH only sets a flag that a resize check is needed.
+Resizes are checked/done 2 times a second.
+
+------------------------------------------------------------------------
+r1670 | cras | 2001-07-29 01:48:42 +0000 (Sun, 29 Jul 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/irssi.conf
+
+typofix
+
+------------------------------------------------------------------------
+r1669 | cras | 2001-07-29 01:46:34 +0000 (Sun, 29 Jul 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/notifylist/fe-notifylist.c
+   M /irssi/trunk/src/fe-common/irc/notifylist/module-formats.c
+   M /irssi/trunk/src/fe-common/irc/notifylist/module-formats.h
+
+/NOTIFY, /NOTIFY -list: Added "The notify list is empty" message
+
+------------------------------------------------------------------------
+r1668 | cras | 2001-07-29 01:41:01 +0000 (Sun, 29 Jul 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-queries.c
+   M /irssi/trunk/src/fe-common/core/module-formats.c
+   M /irssi/trunk/src/fe-common/core/module-formats.h
+
+Added "Closed query with nick" message.
+
+------------------------------------------------------------------------
+r1667 | cras | 2001-07-29 01:35:10 +0000 (Sun, 29 Jul 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-log.c
+
+Escape % chars in logs so strftime() won't mess with them.
+
+------------------------------------------------------------------------
+r1666 | cras | 2001-07-29 01:16:27 +0000 (Sun, 29 Jul 2001) | 4 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/printtext.c
+
+Removed unused signal_gui_print_text, added a g_return_if_fail(dest->window
+!= NULL) to "print text" signal - window should be set or it is treated as
+GUI print event.
+
+------------------------------------------------------------------------
+r1665 | cras | 2001-07-29 01:14:25 +0000 (Sun, 29 Jul 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/textbuffer.c
+
+Added a small sanity check - the condition should never happen, but it seems
+to have happened with one guy.. perhaps something else had corrupted memory.
+
+------------------------------------------------------------------------
+r1664 | cras | 2001-07-29 00:27:23 +0000 (Sun, 29 Jul 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/settings.c
+   M /irssi/trunk/src/fe-common/core/fe-settings.c
+
+Fixed /RELOAD crashing without parameters.
+
+------------------------------------------------------------------------
+r1663 | cras | 2001-07-28 23:40:00 +0000 (Sat, 28 Jul 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/window-items.c
+
+OK, no more forcing the reuse_unused_windows. It's up to the user to set it.
+
+------------------------------------------------------------------------
+r1662 | cras | 2001-07-28 23:28:46 +0000 (Sat, 28 Jul 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/window-items.c
+
+/SET reuse_unused_windows is now forced ON only if /SET autocreate_windows
+is ON and autoclose_windows is OFF.
+
+------------------------------------------------------------------------
+r1661 | cras | 2001-07-28 23:24:45 +0000 (Sat, 28 Jul 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-common-core.c
+
+--hostname and --nick options didn't have effect for autoconnected servers.
+
+------------------------------------------------------------------------
+r1660 | cras | 2001-07-28 22:59:59 +0000 (Sat, 28 Jul 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/debian/rules
+
+check if we're running perl 5.00x - if so, don't define the INSTALLDIRS
+since it breaks make install.
+
+------------------------------------------------------------------------
+r1659 | cras | 2001-07-28 22:41:14 +0000 (Sat, 28 Jul 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/curses.m4
+
+Fix to make it work with autoconf 2.50
+
+------------------------------------------------------------------------
+r1658 | cras | 2001-07-28 04:00:31 +0000 (Sat, 28 Jul 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/configure.in
+
+Version number update
+
+------------------------------------------------------------------------
+r1657 | cras | 2001-07-27 04:00:22 +0000 (Fri, 27 Jul 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/configure.in
+
+Version number update
+
+------------------------------------------------------------------------
+r1656 | cras | 2001-07-26 04:01:19 +0000 (Thu, 26 Jul 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/configure.in
+
+Version number update
+
+------------------------------------------------------------------------
+r1655 | cras | 2001-07-26 01:49:08 +0000 (Thu, 26 Jul 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/core/channels.c
+   M /irssi/trunk/src/core/queries.c
+   M /irssi/trunk/src/core/window-item-rec.h
+   M /irssi/trunk/src/fe-common/core/fe-channels.c
+   M /irssi/trunk/src/fe-common/core/fe-exec.c
+   M /irssi/trunk/src/fe-common/core/fe-queries.c
+   M /irssi/trunk/src/fe-common/core/window-items.c
+
+added destroy() function to WI_ITEM_REC. This fixes a potential crash when
+"window item destroy" signal was being used.
+
+------------------------------------------------------------------------
+r1654 | cras | 2001-07-26 01:38:46 +0000 (Thu, 26 Jul 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/completion.c
+
+bugfix
+
+------------------------------------------------------------------------
+r1653 | cras | 2001-07-25 20:59:32 +0000 (Wed, 25 Jul 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/configure.in
+
+Version number update
+
+------------------------------------------------------------------------
+r1652 | cras | 2001-07-25 20:50:07 +0000 (Wed, 25 Jul 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/configure.in
+
+Version number update
+
+------------------------------------------------------------------------
+r1651 | cras | 2001-07-25 20:20:27 +0000 (Wed, 25 Jul 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/configure.in
+
+Version number update
+
+------------------------------------------------------------------------
+r1650 | cras | 2001-07-25 20:15:23 +0000 (Wed, 25 Jul 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/configure.in
+
+Version number update
+
+------------------------------------------------------------------------
+r1649 | cras | 2001-07-25 20:07:10 +0000 (Wed, 25 Jul 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/irc/proxy/dump.c
+   M /irssi/trunk/src/irc/proxy/proxy.c
+
+get the version from IRSSI_VERSION, not VERSION. #include "signals.h" was
+missing from proxy.c
+
+------------------------------------------------------------------------
+r1648 | cras | 2001-07-25 19:29:50 +0000 (Wed, 25 Jul 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/expandos.c
+   M /irssi/trunk/src/core/modules.c
+
+fixed using already free'd memory.
+
+------------------------------------------------------------------------
+r1647 | cras | 2001-07-25 19:16:21 +0000 (Wed, 25 Jul 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/themes.c
+
+buffer overflow fix
+
+------------------------------------------------------------------------
+r1646 | cras | 2001-07-25 17:40:56 +0000 (Wed, 25 Jul 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/fe-irc-commands.c
+
+SYNTAX: ACTION updated - target is required
+
+------------------------------------------------------------------------
+r1645 | cras | 2001-07-24 22:21:48 +0000 (Tue, 24 Jul 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/perl/common/typemap
+   M /irssi/trunk/src/perl/irc/typemap
+   M /irssi/trunk/src/perl/perl-signals.c
+   M /irssi/trunk/src/perl/ui/typemap
+
+Don't crash when trying to bless NULLs
+
+------------------------------------------------------------------------
+r1644 | cras | 2001-07-24 17:49:24 +0000 (Tue, 24 Jul 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/docs/startup-HOWTO.html
+
+Added proxy section
+
+------------------------------------------------------------------------
+r1643 | cras | 2001-07-22 12:08:36 +0000 (Sun, 22 Jul 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/hilight-text.c
+
+fixed a small memory leak
+
+------------------------------------------------------------------------
+r1642 | cras | 2001-07-18 19:03:07 +0000 (Wed, 18 Jul 2001) | 4 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/printtext.c
+   M /irssi/trunk/src/fe-common/core/printtext.h
+   M /irssi/trunk/src/perl/ui/UI.xs
+
+Irssi::printformat() called printformat_window() to print the text which
+lost server/target information. Added printtext_dest() function which it
+uses now.
+
+------------------------------------------------------------------------
+r1641 | cras | 2001-07-17 18:22:24 +0000 (Tue, 17 Jul 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-channels.c
+
+/NAMES -count now prints only the "total" line, not "users(#channel)" anymore
+
+------------------------------------------------------------------------
+r1640 | cras | 2001-07-16 20:23:59 +0000 (Mon, 16 Jul 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/commands.c
+
+command_runsub() - ignore multiple spaces between /COMMAND  SUBCOMMAND
+
+------------------------------------------------------------------------
+r1639 | cras | 2001-07-16 20:22:45 +0000 (Mon, 16 Jul 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/scripts/autoop.pl
+   M /irssi/trunk/scripts/autorejoin.pl
+   M /irssi/trunk/scripts/clones.pl
+   M /irssi/trunk/scripts/hello.pl
+   M /irssi/trunk/scripts/mlock.pl
+   M /irssi/trunk/scripts/privmsg.pl
+   M /irssi/trunk/scripts/quitmsg.pl
+   M /irssi/trunk/scripts/realname.pl
+
+added "use strict" for all scripts, made some small changes.
+
+------------------------------------------------------------------------
+r1638 | cras | 2001-07-16 20:03:36 +0000 (Mon, 16 Jul 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/perl/common/Core.xs
+   M /irssi/trunk/src/perl/perl-signals.c
+   M /irssi/trunk/src/perl/perl-signals.h
+
+Added Irssi::command_bind_first() and Irssi::command_bind_last()
+
+------------------------------------------------------------------------
+r1637 | cras | 2001-07-16 19:49:07 +0000 (Mon, 16 Jul 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/docs/help/in/window.in
+
+/WINDOW MOVE: prev/next -> left/right
+
+------------------------------------------------------------------------
+r1636 | cras | 2001-07-16 17:20:23 +0000 (Mon, 16 Jul 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/hilight-text.c
+
+added another hilight kludge
+
+------------------------------------------------------------------------
+r1635 | cras | 2001-07-16 16:56:52 +0000 (Mon, 16 Jul 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/core.c
+
+--home, --config parameters now expand relative paths to absolute at startup.
+
+------------------------------------------------------------------------
+r1634 | cras | 2001-07-16 16:10:12 +0000 (Mon, 16 Jul 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/Makefile.am
+
+forgot to add textbuffer-reformat.h
+
+------------------------------------------------------------------------
+r1633 | cras | 2001-07-15 19:03:27 +0000 (Sun, 15 Jul 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-messages.c
+   M /irssi/trunk/src/fe-common/core/hilight-text.c
+   M /irssi/trunk/src/fe-common/core/printtext.c
+
+Hilight fixes - mode lines shouldn't be hilighted accidentally anymore.
+
+------------------------------------------------------------------------
+r1632 | cras | 2001-07-15 18:21:44 +0000 (Sun, 15 Jul 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/window-commands.c
+
+Previous foreach fixes to /FOREACH WINDOW too.
+
+------------------------------------------------------------------------
+r1631 | cras | 2001-07-15 15:16:38 +0000 (Sun, 15 Jul 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/perl/Makefile.am
+
+textui isn't done yet.
+
+------------------------------------------------------------------------
+r1630 | cras | 2001-07-15 14:50:26 +0000 (Sun, 15 Jul 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/core/ignore.c
+   M /irssi/trunk/src/fe-common/core/fe-ignore.c
+
+New /IGNOREs weren't immediately effective for nicks in channel. Some small
+fixes for unignoring levels with /IGNORE.
+
+------------------------------------------------------------------------
+r1629 | cras | 2001-07-15 14:07:48 +0000 (Sun, 15 Jul 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/Makefile.am
+   M /irssi/trunk/src/core/core.c
+   A /irssi/trunk/src/core/log-away.c
+   M /irssi/trunk/src/irc/core/Makefile.am
+   M /irssi/trunk/src/irc/core/irc-core.c
+   D /irssi/trunk/src/irc/core/irc-log.c
+   M /irssi/trunk/src/perl/Makefile.am
+
+Moved awaylog to core.
+
+------------------------------------------------------------------------
+r1628 | cras | 2001-07-15 13:49:57 +0000 (Sun, 15 Jul 2001) | 4 lines
+Changed paths:
+   M /irssi/trunk/src/core/chat-commands.c
+
+Another /FOREACH update - it only goes through the current
+servers/channels/queries, if the command creates new ones it skips them (ie.
+/FOREACH CHANNEL /CYCLE works now).
+
+------------------------------------------------------------------------
+r1627 | cras | 2001-07-15 13:13:46 +0000 (Sun, 15 Jul 2001) | 2 lines
+Changed paths:
+   A /irssi/trunk/src/fe-text/textbuffer-reformat.c
+   A /irssi/trunk/src/fe-text/textbuffer-reformat.h
+
+/SB REDRAW functionality - not fully working yet.
+
+------------------------------------------------------------------------
+r1626 | cras | 2001-07-15 00:39:48 +0000 (Sun, 15 Jul 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/common.h
+   M /irssi/trunk/src/core/core.c
+   M /irssi/trunk/src/core/core.h
+   M /irssi/trunk/src/core/modules.c
+   M /irssi/trunk/src/core/settings.c
+   M /irssi/trunk/src/fe-common/core/autorun.c
+   M /irssi/trunk/src/fe-common/core/fe-settings.c
+   M /irssi/trunk/src/fe-common/core/themes.c
+   M /irssi/trunk/src/fe-none/irssi.c
+   M /irssi/trunk/src/fe-text/Makefile.am
+   M /irssi/trunk/src/fe-text/gui-printtext.c
+   M /irssi/trunk/src/fe-text/irssi.c
+   M /irssi/trunk/src/fe-text/textbuffer-commands.c
+   M /irssi/trunk/src/fe-text/textbuffer.c
+   M /irssi/trunk/src/irc/bot/bot-users.c
+   M /irssi/trunk/src/irc/bot/botnet-connection.c
+   M /irssi/trunk/src/irc/bot/botnet.c
+   M /irssi/trunk/src/irc/core/irc-log.c
+   M /irssi/trunk/src/perl/perl.c
+
+Added --home and --config command line parameters to irssi to specify
+locations for ~/.irssi and ~/.irssi/config
+
+------------------------------------------------------------------------
+r1625 | cras | 2001-07-14 23:24:05 +0000 (Sat, 14 Jul 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/core/chat-commands.c
+
+/FOREACH won't crash now if the command removes the item being accessed
+(ie. /foreach server disconnect should work)
+
+------------------------------------------------------------------------
+r1624 | cras | 2001-07-14 20:06:00 +0000 (Sat, 14 Jul 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/completion.c
+
+command option/parameter completion was case sensitive (ie. /MSG <tab>
+didn't, work, /msg <tab> did)
+
+------------------------------------------------------------------------
+r1623 | cras | 2001-07-14 19:34:28 +0000 (Sat, 14 Jul 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/configure.in
+
+yet another typo, "-z -> -z "
+
+------------------------------------------------------------------------
+r1622 | cras | 2001-07-14 19:20:20 +0000 (Sat, 14 Jul 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/debian/control
+
+gettext isn't needed anymore
+
+------------------------------------------------------------------------
+r1621 | cras | 2001-07-14 19:16:53 +0000 (Sat, 14 Jul 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/proxy/Makefile.am
+
+rm -f the libirc_proxy.a before ln -s.
+
+------------------------------------------------------------------------
+r1620 | cras | 2001-07-14 19:16:34 +0000 (Sat, 14 Jul 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/configure.in
+
+if -z -> if test -z ..
+
+------------------------------------------------------------------------
+r1619 | cras | 2001-07-14 19:13:07 +0000 (Sat, 14 Jul 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/configure.in
+
+if -n -> if test -n
+
+------------------------------------------------------------------------
+r1618 | cras | 2001-07-14 19:10:17 +0000 (Sat, 14 Jul 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/core/core.c
+   M /irssi/trunk/src/core/settings.c
+
+"gui dialog" signals can now be safely emitted before the GUI is initialized
+- the texts are queued until the GUI initialization is done and re-emitted.
+
+------------------------------------------------------------------------
+r1617 | cras | 2001-07-14 18:52:53 +0000 (Sat, 14 Jul 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/irc.c
+
+Cut the messages sent to rawlog to 510 chars too.
+
+------------------------------------------------------------------------
+r1616 | cras | 2001-07-14 18:46:19 +0000 (Sat, 14 Jul 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/configure.in
+
+If perl binary wasn't found, give a correct error message. Changed all
+test "xYY" != "x" to test -n "YY"
+
+------------------------------------------------------------------------
+r1615 | cras | 2001-07-14 18:19:22 +0000 (Sat, 14 Jul 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-channels.c
+   M /irssi/trunk/src/fe-common/core/fe-channels.h
+
+/NAMES -count: print only the Total xxx nicks line
+
+------------------------------------------------------------------------
+r1614 | cras | 2001-07-14 18:19:08 +0000 (Sat, 14 Jul 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/completion.c
+
+removed a useless "fix"
+
+------------------------------------------------------------------------
+r1613 | cras | 2001-07-13 19:17:43 +0000 (Fri, 13 Jul 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/expandos.c
+
+uname() returns non-negative if successful, not necessarily 0.
+
+------------------------------------------------------------------------
+r1612 | cras | 2001-07-13 13:09:58 +0000 (Fri, 13 Jul 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/proxy/Makefile.am
+   M /irssi/trunk/src/irc/proxy/proxy.c
+
+Compiles now statically to irssi with --with-modules=proxy
+
+------------------------------------------------------------------------
+r1611 | cras | 2001-07-12 21:44:01 +0000 (Thu, 12 Jul 2001) | 4 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/gui-printtext.c
+   M /irssi/trunk/src/fe-text/lastlog.c
+   M /irssi/trunk/src/fe-text/textbuffer-commands.c
+   M /irssi/trunk/src/fe-text/textbuffer-view.c
+   M /irssi/trunk/src/fe-text/textbuffer-view.h
+   M /irssi/trunk/src/fe-text/textbuffer.c
+   M /irssi/trunk/src/fe-text/textbuffer.h
+
+Replaced GList by adding prev/next pointers to LINE_REC. This should make
+some things faster and take a bit less memory. Also fixed an evil memory
+leak.
+
+------------------------------------------------------------------------
+r1610 | cras | 2001-07-12 19:51:33 +0000 (Thu, 12 Jul 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/perl/ui/UI.pm
+
+Removed everything from @EXPORT - they weren't supposed to be there.
+
+------------------------------------------------------------------------
+r1609 | cras | 2001-07-12 19:44:54 +0000 (Thu, 12 Jul 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/perl/ui/Window.xs
+
+Irssi::Server::command() - window item parameter should be NULL
+
+------------------------------------------------------------------------
+r1608 | cras | 2001-07-10 19:10:37 +0000 (Tue, 10 Jul 2001) | 5 lines
+Changed paths:
+   M /irssi/trunk/src/irc/proxy/Makefile.am
+   M /irssi/trunk/src/irc/proxy/listen.c
+
+Makefile fixed to use module directory again. If /SET irssiproxy_ports has
+'*' as server tag, it will match for any of the servers (useful if you're
+only using one). Fixed a crash if client sent a request to server and quit
+before the reply was received.
+
+------------------------------------------------------------------------
+r1607 | cras | 2001-07-05 23:16:18 +0000 (Thu, 05 Jul 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/Makefile.am
+   D /irssi/trunk/config
+   A /irssi/trunk/debian
+   A /irssi/trunk/debian/changelog
+   A /irssi/trunk/debian/conffiles
+   A /irssi/trunk/debian/control
+   A /irssi/trunk/debian/copyright
+   A /irssi/trunk/debian/dirs
+   A /irssi/trunk/debian/menu
+   A /irssi/trunk/debian/postinst
+   A /irssi/trunk/debian/prerm
+   A /irssi/trunk/debian/rules
+   A /irssi/trunk/debian/undocumented
+   M /irssi/trunk/docs/Makefile.am
+   A /irssi/trunk/irssi.conf
+   M /irssi/trunk/scripts/Makefile.am
+   M /irssi/trunk/src/core/settings.c
+   M /irssi/trunk/src/fe-common/core/Makefile.am
+   M /irssi/trunk/src/fe-common/core/themes.c
+
+Moved location of config, theme and doc files. Added debian dir for building a .deb easily.
+
+------------------------------------------------------------------------
+r1606 | cras | 2001-07-03 22:21:40 +0000 (Tue, 03 Jul 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/completion.c
+
+Removed GLIB warning at certain condition with tab completion.
+
+------------------------------------------------------------------------
+r1605 | cras | 2001-07-02 13:10:57 +0000 (Mon, 02 Jul 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/docs/signals.txt
+
+"query nick changed" was missing a parameter
+
+------------------------------------------------------------------------
+r1604 | cras | 2001-07-01 10:53:35 +0000 (Sun, 01 Jul 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/perl/common/Rawlog.xs
+
+void should be in separate line
+
+------------------------------------------------------------------------
+r1603 | cras | 2001-06-30 11:53:03 +0000 (Sat, 30 Jun 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/perl/perl-common.c
+   M /irssi/trunk/src/perl/perl.c
+
+use Irssi; use Irssi::Irc and use Irssi::UI are now automatically called so
+you won't need to add those to scripts.
+
+------------------------------------------------------------------------
+r1602 | cras | 2001-06-30 10:11:33 +0000 (Sat, 30 Jun 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/dcc/dcc.c
+
+DCC_REC was missing MODULE_DATA_INIT() / .._DEINIT()
+
+------------------------------------------------------------------------
+r1601 | cras | 2001-06-30 09:49:59 +0000 (Sat, 30 Jun 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/docs/perl.txt
+   M /irssi/trunk/src/perl/common/Rawlog.xs
+   M /irssi/trunk/src/perl/perl-common.c
+
+Updates to perl documentation. Moved Rawlog->{lines} to Rawlog::get_lines()
+instead.
+
+------------------------------------------------------------------------
+r1600 | cras | 2001-06-29 23:52:00 +0000 (Fri, 29 Jun 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/docs/startup-HOWTO.html
+
+Added info how to use xmodmap to set alt as meta key
+
+------------------------------------------------------------------------
+r1599 | cras | 2001-06-29 23:24:52 +0000 (Fri, 29 Jun 2001) | 6 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/irssi.c
+
+Moved screen_refresh_thaw() in initialization before the
+fe_common_core_finish_init() so that if it prints something it gets printed
+to screen immediately. Also doing it afterwards triggered some screen
+updating bug and the printed lines were left blank until screen was
+refreshed..
+
+------------------------------------------------------------------------
+r1598 | cras | 2001-06-29 23:14:44 +0000 (Fri, 29 Jun 2001) | 4 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/netsplit.c
+
+Removed the "domain is 2 or 3 chars" check from quitmsg_is_split() since
+Undernet nowadays prints "*.net *.split" quit message for netsplits and
+the netsplit quit message can't be faked anyway with current IRC servers.
+
+------------------------------------------------------------------------
+r1597 | cras | 2001-06-29 23:11:43 +0000 (Fri, 29 Jun 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/fe-netsplit.c
+
+/SET netsplit_nicks_hide_threshold must not be smaller than /SET
+netsplit_max_nicks or no nicks were printed with netsplits.
+
+------------------------------------------------------------------------
+r1596 | cras | 2001-06-29 23:10:48 +0000 (Fri, 29 Jun 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/themes.c
+
+If .theme suffix was given for /SET theme, irssi printed "theme changed to
+xxx" message every time any setting was changed.
+
+------------------------------------------------------------------------
+r1595 | cras | 2001-06-29 22:57:03 +0000 (Fri, 29 Jun 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/perl/perl-common.c
+
+Windowitem->{type} wasn't set properly
+
+------------------------------------------------------------------------
+r1594 | cras | 2001-06-29 22:51:37 +0000 (Fri, 29 Jun 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/docs/perl.txt
+   M /irssi/trunk/src/perl/ui/UI.xs
+
+Added some new variables for UI::Window
+
+------------------------------------------------------------------------
+r1593 | cras | 2001-06-29 22:43:19 +0000 (Fri, 29 Jun 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/docs/perl.txt
+
+Added Window->{}, updated Dcc->{}, added Dcc::Chat+Get+Send->{}, removed
+Autoignore
+
+------------------------------------------------------------------------
+r1592 | cras | 2001-06-29 22:27:02 +0000 (Fri, 29 Jun 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/Makefile.am
+   M /irssi/trunk/src/fe-text/irssi.c
+
+removed fe-perl
+
+------------------------------------------------------------------------
+r1591 | cras | 2001-06-29 22:18:27 +0000 (Fri, 29 Jun 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/configure.in
+
+removed fe-perl lib
+
+------------------------------------------------------------------------
+r1590 | cras | 2001-06-29 21:14:10 +0000 (Fri, 29 Jun 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/perl/Makefile.am
+
+UI fixes
+
+------------------------------------------------------------------------
+r1589 | cras | 2001-06-29 21:11:29 +0000 (Fri, 29 Jun 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/perl/get-signals.pl
+
+Irssi::xx -> Irssi::UI::xx
+
+------------------------------------------------------------------------
+r1588 | cras | 2001-06-29 20:41:35 +0000 (Fri, 29 Jun 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/perl/irc/Irc.xs
+   M /irssi/trunk/src/perl/irc/module.h
+
+Added size/skipped to Dcc::Send / Get records
+
+------------------------------------------------------------------------
+r1587 | cras | 2001-06-29 19:03:55 +0000 (Fri, 29 Jun 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/module-formats.c
+
+whois_away had one extra space at the beginning.
+
+------------------------------------------------------------------------
+r1586 | cras | 2001-06-28 22:40:24 +0000 (Thu, 28 Jun 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-messages.c
+
+Nick changes were printed twice in queries.
+
+------------------------------------------------------------------------
+r1585 | cras | 2001-06-28 17:43:53 +0000 (Thu, 28 Jun 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/themes.c
+
+when theme is changed, it should print the message to status window, not to active window..
+
+------------------------------------------------------------------------
+r1584 | cras | 2001-06-28 11:01:24 +0000 (Thu, 28 Jun 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/configure.in
+
+perl/fe -> perl/ui
+
+------------------------------------------------------------------------
+r1583 | cras | 2001-06-27 23:05:20 +0000 (Wed, 27 Jun 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/perl/perl-common.c
+
+Don't print GLIB critical when trying to bless unknown iobject - this could
+well happen with some unknown objects like /EXEC -interactive's WI_ITEM_REC.
+
+------------------------------------------------------------------------
+r1582 | cras | 2001-06-27 22:56:17 +0000 (Wed, 27 Jun 2001) | 6 lines
+Changed paths:
+   M /irssi/trunk/configure.in
+   M /irssi/trunk/src/perl/Makefile.am
+   M /irssi/trunk/src/perl/common/Irssi.xs
+   D /irssi/trunk/src/perl/common/Themes.xs
+   D /irssi/trunk/src/perl/common/Window.xs
+   M /irssi/trunk/src/perl/common/module.h
+   M /irssi/trunk/src/perl/common/typemap
+   M /irssi/trunk/src/perl/irc/Makefile.PL.in
+   M /irssi/trunk/src/perl/irc/typemap
+   D /irssi/trunk/src/perl/perl-fe.c
+   A /irssi/trunk/src/perl/ui
+   A /irssi/trunk/src/perl/ui/.cvsignore
+   A /irssi/trunk/src/perl/ui/Makefile.PL.in
+   A /irssi/trunk/src/perl/ui/Themes.xs
+   A /irssi/trunk/src/perl/ui/UI.pm
+   A /irssi/trunk/src/perl/ui/UI.xs
+   A /irssi/trunk/src/perl/ui/Window.xs
+   A /irssi/trunk/src/perl/ui/module.h
+   A /irssi/trunk/src/perl/ui/typemap
+
+Moved fe_perl module to use Irssi::UI .. this breaks several scripts that
+use UI-specific code, but simply adding the "use Irssi::UI;" after use
+Irssi; should work. make install now removes libfe_perl.* files from global
+module directory, but if you have it somewhere else you should manually
+remove it.
+
+------------------------------------------------------------------------
+r1581 | cras | 2001-06-27 22:54:51 +0000 (Wed, 27 Jun 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-windows.h
+
+removed useless #define
+
+------------------------------------------------------------------------
+r1580 | cras | 2001-06-27 21:47:31 +0000 (Wed, 27 Jun 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/core/servers-reconnect.c
+   M /irssi/trunk/src/core/servers-setup.c
+   M /irssi/trunk/src/core/servers-setup.h
+   M /irssi/trunk/src/fe-common/core/fe-server.c
+
+Using different ports in one server for different chat networks didn't work
+properly.
+
+------------------------------------------------------------------------
+r1579 | cras | 2001-06-27 21:31:26 +0000 (Wed, 27 Jun 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-windows.c
+
+Don't autoclose windows with bound items.
+
+------------------------------------------------------------------------
+r1578 | cras | 2001-06-27 21:26:33 +0000 (Wed, 27 Jun 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/ctcp.c
+
+Don't reply to CTCP PINGs longer than 100 bytes (see the comment).
+
+------------------------------------------------------------------------
+r1577 | cras | 2001-06-27 21:20:26 +0000 (Wed, 27 Jun 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/irc-commands.c
+
+/NICK: don't bother trying to change the nick to the one you already have
+
+------------------------------------------------------------------------
+r1576 | cras | 2001-06-27 21:16:43 +0000 (Wed, 27 Jun 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/module-formats.c
+   M /irssi/trunk/src/fe-common/core/module-formats.h
+   M /irssi/trunk/src/fe-common/core/window-commands.c
+
+Added -delete option to /WINDOW THEME. /WINDOW THEME without parameters
+prints the active theme.
+
+------------------------------------------------------------------------
+r1575 | cras | 2001-06-27 21:05:04 +0000 (Wed, 27 Jun 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/formats.c
+   M /irssi/trunk/src/fe-common/core/formats.h
+   M /irssi/trunk/src/fe-common/core/printtext.c
+
+Fixed window specific themes
+
+------------------------------------------------------------------------
+r1574 | cras | 2001-06-27 20:22:43 +0000 (Wed, 27 Jun 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-common-core.c
+   M /irssi/trunk/src/fe-text/irssi.c
+
+Added -v / --version command line option. Moved POPT_AUTOHELP option to
+fe-common from fe-text.
+
+------------------------------------------------------------------------
+r1573 | cras | 2001-06-27 16:39:03 +0000 (Wed, 27 Jun 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/config
+
+Added /UPTIME alias
+
+------------------------------------------------------------------------
+r1572 | cras | 2001-06-26 22:33:43 +0000 (Tue, 26 Jun 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/irc-commands.c
+
+Don't send unaway to server if we're not away.
+
+------------------------------------------------------------------------
+r1571 | cras | 2001-06-26 22:29:16 +0000 (Tue, 26 Jun 2001) | 4 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-messages.c
+   M /irssi/trunk/src/fe-common/irc/fe-irc-messages.c
+
+use signal_add_last() to bind the "message xxx" signals when printing them,
+so that scripts/modules can stop the signal without affecting the rest of
+the functionality.
+
+------------------------------------------------------------------------
+r1570 | cras | 2001-06-26 22:04:54 +0000 (Tue, 26 Jun 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/default.theme
+   M /irssi/trunk/src/fe-common/irc/module-formats.c
+
+added whois abstract to themes. should make it easier to change whois output
+in theme
+
+------------------------------------------------------------------------
+r1569 | cras | 2001-06-26 21:28:00 +0000 (Tue, 26 Jun 2001) | 7 lines
+Changed paths:
+   M /irssi/trunk/docs/signals.txt
+   M /irssi/trunk/src/fe-common/core/formats.c
+   M /irssi/trunk/src/fe-common/core/formats.h
+   M /irssi/trunk/src/fe-common/core/hilight-text.c
+   M /irssi/trunk/src/fe-common/core/printtext.c
+   M /irssi/trunk/src/fe-text/gui-printtext.c
+
+"print text finished" -> "gui print text finished". Added %[options] format
+for printing text. The syntax for options is [+-]<option>[+-]<option>...
+Currently supports options 't' = timestamp, 'T' = server tag, 's' =
+line_start, 'S' = line_start_irssi. -s or -S means don't print the
+line_start. For example %[-st+T] would never print line_start or timestamp
+to line, but would always print server tag to line.
+
+------------------------------------------------------------------------
+r1568 | cras | 2001-06-26 21:24:56 +0000 (Tue, 26 Jun 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/docs/help/in/mode.in
+
++I doesn't work in efnet like the help said
+
+------------------------------------------------------------------------
+r1567 | cras | 2001-06-26 19:27:26 +0000 (Tue, 26 Jun 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/docs/special_vars.txt
+   M /irssi/trunk/src/fe-text/statusbar-items.c
+   M /irssi/trunk/src/irc/core/irc-expandos.c
+
+Added $cumode expando which works like $P, but prints voices/halfops also.
+Changed statusbar to use $cumode. Patch by fuchs.
+
+------------------------------------------------------------------------
+r1566 | cras | 2001-06-26 17:01:42 +0000 (Tue, 26 Jun 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/perl/irc/Irc.xs
+   M /irssi/trunk/src/perl/perl-common.c
+   M /irssi/trunk/src/perl/perl-common.h
+   M /irssi/trunk/src/perl/perl-fe.c
+
+Perl blessing fixes.
+
+------------------------------------------------------------------------
+r1565 | cras | 2001-06-26 16:47:56 +0000 (Tue, 26 Jun 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/docs/signals.txt
+   M /irssi/trunk/src/core/log.c
+
+"log rotate" -> "log rotated"
+
+------------------------------------------------------------------------
+r1564 | cras | 2001-06-26 15:33:07 +0000 (Tue, 26 Jun 2001) | 4 lines
+Changed paths:
+   M /irssi/trunk/src/core/special-vars.c
+   M /irssi/trunk/src/core/special-vars.h
+   M /irssi/trunk/src/fe-text/statusbar-items.c
+
+special-vars: added flag PARSE_FLAG_ESCAPE_THEME to escape { and } chars
+with % char. Used this with statusbar items - now for example "{error xxx}"
+topic won't print it with error color.
+
+------------------------------------------------------------------------
+r1563 | cras | 2001-06-26 14:51:41 +0000 (Tue, 26 Jun 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/docs/startup-HOWTO.html
+
+/SET show_nickmode_empty ON
+
+------------------------------------------------------------------------
+r1562 | cras | 2001-06-26 14:48:11 +0000 (Tue, 26 Jun 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/docs/startup-HOWTO.html
+
+added hilight + window scrolling
+
+------------------------------------------------------------------------
+r1561 | cras | 2001-06-26 13:55:50 +0000 (Tue, 26 Jun 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/log.c
+
+moved "log rotate" after the logging was stopped.
+
+------------------------------------------------------------------------
+r1560 | cras | 2001-06-26 13:49:51 +0000 (Tue, 26 Jun 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/docs/signals.txt
+   M /irssi/trunk/src/core/log.c
+
+"log rotate" signal added
+
+------------------------------------------------------------------------
+r1559 | cras | 2001-06-26 13:47:38 +0000 (Tue, 26 Jun 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/perl/perl-common.c
+
+added real_fname to log record.
+
+------------------------------------------------------------------------
+r1558 | cras | 2001-06-21 07:13:09 +0000 (Thu, 21 Jun 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-none/irssi.c
+
+The same "irssi init finished" / perl init fix for fe-none
+
+------------------------------------------------------------------------
+r1557 | cras | 2001-06-21 07:10:25 +0000 (Thu, 21 Jun 2001) | 4 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/irssi.c
+
+if perl is compiled statically, initialize it after the "irssi init
+finished" signal so for example ~/.irssi/startup is run before the perl
+autorun scripts
+
+------------------------------------------------------------------------
+r1556 | cras | 2001-06-18 15:32:05 +0000 (Mon, 18 Jun 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/gui-printtext.c
+
+/SET scrollback_lines 0 now means unlimited.
+
+------------------------------------------------------------------------
+r1555 | cras | 2001-06-12 00:08:14 +0000 (Tue, 12 Jun 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/bans.c
+   M /irssi/trunk/src/irc/core/modes.c
+   M /irssi/trunk/src/irc/core/modes.h
+
+channel_set_singlemode() : don't do anything if you're not channel op/halfop
+
+------------------------------------------------------------------------
+r1554 | cras | 2001-06-11 23:54:50 +0000 (Mon, 11 Jun 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/perl/common/Core.xs
+   M /irssi/trunk/src/perl/common/Ignore.xs
+   M /irssi/trunk/src/perl/common/Log.xs
+   M /irssi/trunk/src/perl/common/Server.xs
+   M /irssi/trunk/src/perl/common/Window.xs
+   M /irssi/trunk/src/perl/irc/IrcChannel.xs
+   M /irssi/trunk/src/perl/irc/Notifylist.xs
+   M /irssi/trunk/src/perl/perl-common.h
+
+plain objects weren't blessed correctly in lists
+
+------------------------------------------------------------------------
+r1553 | cras | 2001-06-11 23:12:43 +0000 (Mon, 11 Jun 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/window-commands.c
+
+/WINDOW SERVER -sticky / -unsticky crashed if the tag wasn't given and
+there was no active server in window
+
+------------------------------------------------------------------------
+r1552 | cras | 2001-06-11 22:39:32 +0000 (Mon, 11 Jun 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/perl/perl.c
+
+$/ was set to undef for perl scripts. removed unused variable.
+
+------------------------------------------------------------------------
+r1551 | cras | 2001-06-11 15:05:08 +0000 (Mon, 11 Jun 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/core/misc.c
+
+get_max_column_count() didn't work properly if items had wider items than
+max_width.
+
+------------------------------------------------------------------------
+r1550 | cras | 2001-06-11 00:15:38 +0000 (Mon, 11 Jun 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/windows-layout.c
+
+Multiple /LAYOUT SAVEd queries in same window didn't get restored to the
+same window.
+
+------------------------------------------------------------------------
+r1549 | cras | 2001-06-11 00:14:48 +0000 (Mon, 11 Jun 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-log.c
+
+When disconnecting from server when you had queries without active server
+irssi printed some glib errors.
+
+------------------------------------------------------------------------
+r1548 | cras | 2001-06-10 23:45:47 +0000 (Sun, 10 Jun 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/chat-completion.c
+
+Joins to channel now adds the nick to completion list.
+
+------------------------------------------------------------------------
+r1547 | cras | 2001-06-10 23:38:36 +0000 (Sun, 10 Jun 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/fe-events.c
+
+own nick changed were printed as if it was done by someone else
+
+------------------------------------------------------------------------
+r1546 | cras | 2001-06-10 23:31:15 +0000 (Sun, 10 Jun 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-queries.c
+   M /irssi/trunk/src/fe-common/irc/fe-irc-queries.c
+
+The automatic query rename wrote the "nick changed" messages to channels
+windows too. Now it's done only in the query window.
+
+------------------------------------------------------------------------
+r1545 | cras | 2001-06-10 22:52:54 +0000 (Sun, 10 Jun 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/irc-servers-reconnect.c
+
+max_cmds_at_once and max_query_chans weren't saved between reconnects to
+server.
+
+------------------------------------------------------------------------
+r1544 | cras | 2001-06-10 22:19:15 +0000 (Sun, 10 Jun 2001) | 5 lines
+Changed paths:
+   M /irssi/trunk/src/core/commands.c
+
+Getting optional channel parameter was buggy - it used already free'd memory
+and assumed the command handler was given CHANNEL_REC even while it could
+have been any other WI_ITEM_REC ..though it used only the WI_ITEM_REC parts
+so it didn't really matter..
+
+------------------------------------------------------------------------
+r1543 | cras | 2001-06-10 20:21:03 +0000 (Sun, 10 Jun 2001) | 4 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/printtext.c
+
+beep check: don't beep with NO_ACT message level rather than NOHILIGHT since
+NOHILIGHT is sent with public messages and someone may want to beep when
+they're received.
+
+------------------------------------------------------------------------
+r1542 | cras | 2001-06-08 22:27:06 +0000 (Fri, 08 Jun 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/docs/signals.txt
+   M /irssi/trunk/src/perl/get-signals.pl
+   M /irssi/trunk/src/perl/perl-signals.c
+
+"complete word" signal works now with perl and it's possible to manipulate
+the completion list.
+
+------------------------------------------------------------------------
+r1541 | cras | 2001-06-08 21:20:15 +0000 (Fri, 08 Jun 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/perl/perl-common.c
+
+added topic_by, topic_time
+
+------------------------------------------------------------------------
+r1540 | cras | 2001-06-08 21:19:08 +0000 (Fri, 08 Jun 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/core/server-connect-rec.h
+   M /irssi/trunk/src/core/servers-reconnect.c
+   M /irssi/trunk/src/core/servers-reconnect.h
+   M /irssi/trunk/src/core/servers.c
+
+Try to keep the number after server tag always the same when there's
+multiple connections to the same server.
+
+------------------------------------------------------------------------
+r1539 | cras | 2001-06-04 21:58:47 +0000 (Mon, 04 Jun 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/textbuffer-view.c
+
+resizing empty windows didn't work properly
+
+------------------------------------------------------------------------
+r1538 | cras | 2001-06-04 19:50:16 +0000 (Mon, 04 Jun 2001) | 4 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/fe-irc-commands.c
+   M /irssi/trunk/src/fe-common/irc/fe-irc-messages.c
+   M /irssi/trunk/src/fe-common/irc/module-formats.c
+   M /irssi/trunk/src/fe-common/irc/module-formats.h
+   M /irssi/trunk/src/irc/core/irc-servers.c
+   M /irssi/trunk/src/irc/core/irc.h
+
+Added support for bahamut @+#channel notices. Removed notice_public_ops
+format, notice_public is just fine if the channel just contains @ or @+
+at the beginning.
+
+------------------------------------------------------------------------
+r1537 | cras | 2001-06-04 18:40:50 +0000 (Mon, 04 Jun 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/modules.c
+
+/LOAD: when using '.' character in module name irssi printed glib error
+
+------------------------------------------------------------------------
+r1536 | cras | 2001-06-02 12:35:25 +0000 (Sat, 02 Jun 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/textbuffer-view.c
+
+bugfix
+
+------------------------------------------------------------------------
+r1535 | cras | 2001-06-01 21:49:07 +0000 (Fri, 01 Jun 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/gui-entry.c
+   M /irssi/trunk/src/fe-text/gui-printtext.c
+   M /irssi/trunk/src/fe-text/gui-readline.c
+   M /irssi/trunk/src/fe-text/gui-windows.c
+   M /irssi/trunk/src/fe-text/irssi.c
+   M /irssi/trunk/src/fe-text/mainwindows.c
+   M /irssi/trunk/src/fe-text/mainwindows.h
+   M /irssi/trunk/src/fe-text/screen.c
+   M /irssi/trunk/src/fe-text/screen.h
+   M /irssi/trunk/src/fe-text/statusbar-items.c
+   M /irssi/trunk/src/fe-text/statusbar.c
+   M /irssi/trunk/src/fe-text/textbuffer-view.c
+   M /irssi/trunk/src/fe-text/textbuffer-view.h
+
+Replaced all direct curses calls with screen_xx() wrappers. This should
+enable us to optionally use termcap directly.
+
+------------------------------------------------------------------------
+r1534 | cras | 2001-06-01 20:21:07 +0000 (Fri, 01 Jun 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/core.c
+   M /irssi/trunk/src/fe-text/screen.c
+
+moved /SET ignore_signals to core.
+
+------------------------------------------------------------------------
+r1533 | cras | 2001-06-01 20:20:22 +0000 (Fri, 01 Jun 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-settings.c
+
+'Y' answer shouldn't be case-sensitive
+
+------------------------------------------------------------------------
+r1532 | cras | 2001-06-01 19:12:07 +0000 (Fri, 01 Jun 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/mainwindows.c
+
+Resizing window destroyed curses window, but didn't update the view's curses
+window which kept using the old one, and probably crashed soon.
+
+------------------------------------------------------------------------
+r1531 | cras | 2001-06-01 18:49:32 +0000 (Fri, 01 Jun 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/gui-entry.c
+
+more #endif WANT_BIG5 -> #endif changes
+
+------------------------------------------------------------------------
+r1530 | cras | 2001-06-01 18:39:45 +0000 (Fri, 01 Jun 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/configure.in
+   M /irssi/trunk/src/fe-common/irc/dcc/Makefile.am
+   M /irssi/trunk/src/fe-common/irc/notifylist/Makefile.am
+   M /irssi/trunk/src/irc/dcc/Makefile.am
+   M /irssi/trunk/src/irc/flood/Makefile.am
+   M /irssi/trunk/src/irc/notifylist/Makefile.am
+   M /irssi/trunk/src/irc/proxy/Makefile.am
+
+dcc, flood and notifylist aren't compiled as loadable modules anymore,
+no-one wants that and irssi crashes in AIX because of it.
+
+------------------------------------------------------------------------
+r1529 | cras | 2001-06-01 17:53:14 +0000 (Fri, 01 Jun 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/perl/common/Core.xs
+   M /irssi/trunk/src/perl/common/module.h
+
+added Irssi::parse_special()
+
+------------------------------------------------------------------------
+r1528 | cras | 2001-06-01 17:48:41 +0000 (Fri, 01 Jun 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/textbuffer-view.c
+
+s/newline/new_line/ - AIX curses (or something) seems to use #define
+newline for something
+
+------------------------------------------------------------------------
+r1527 | cras | 2001-06-01 17:45:36 +0000 (Fri, 01 Jun 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/screen.h
+
+Removed gccism: #endif WANT_BIG5 -> #endif
+
+------------------------------------------------------------------------
+r1526 | cras | 2001-05-31 22:35:49 +0000 (Thu, 31 May 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/docs/signals.txt
+   M /irssi/trunk/src/fe-common/core/fe-core-commands.c
+   M /irssi/trunk/src/fe-common/core/fe-log.c
+   M /irssi/trunk/src/fe-common/core/hilight-text.c
+   M /irssi/trunk/src/fe-common/core/printtext.c
+
+removed "print text stripped" signal, the stripped text is now sent in
+"print text" signal's third parameter
+
+------------------------------------------------------------------------
+r1525 | cras | 2001-05-31 21:19:29 +0000 (Thu, 31 May 2001) | 4 lines
+Changed paths:
+   M /irssi/trunk/configure.in
+
+new libtool version doesn't have ltconfig anymore, and our libtool-shared
+kludge got broken. it's now removed until I can figure out if it's possible
+to kludge it again :)
+
+------------------------------------------------------------------------
+r1524 | cras | 2001-05-31 20:41:27 +0000 (Thu, 31 May 2001) | 2 lines
+Changed paths:
+   A /irssi/trunk/docs/crash.txt
+
+Information how to write good bug reports
+
+------------------------------------------------------------------------
+r1523 | cras | 2001-05-31 10:51:21 +0000 (Thu, 31 May 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/gui-windows.c
+
+Split window fixes
+
+------------------------------------------------------------------------
+r1522 | cras | 2001-05-30 14:45:31 +0000 (Wed, 30 May 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/lastlog.c
+
+added missing ')' from last patch :) and now /last 0<number> (eg. /last 050)
+also isn't treated as counter.
+
+------------------------------------------------------------------------
+r1521 | cras | 2001-05-30 14:41:01 +0000 (Wed, 30 May 2001) | 4 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/lastlog.c
+
+/LAST <number> <non-number> (eg. /last 5 -) should treat the number as text,
+not as count parameter. This way you don't have to type "/last 5 - -" if you
+want to search for string "5" from lastlog.
+
+------------------------------------------------------------------------
+r1520 | cras | 2001-05-30 14:16:06 +0000 (Wed, 30 May 2001) | 2 lines
+Changed paths:
+   A /irssi/trunk/docs/proxy.txt
+
+Added proxy documentation
+
+------------------------------------------------------------------------
+r1519 | cras | 2001-05-30 08:58:48 +0000 (Wed, 30 May 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/docs/perl.txt
+   M /irssi/trunk/src/perl/common/Core.xs
+   M /irssi/trunk/src/perl/perl-signals.c
+
+Irssi::command_runsub() - patch by fuchs
+
+------------------------------------------------------------------------
+r1518 | cras | 2001-05-30 08:58:19 +0000 (Wed, 30 May 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/docs/help/in/ignore.in
+
+-word -> -full
+
+------------------------------------------------------------------------
+r1517 | cras | 2001-05-26 19:20:45 +0000 (Sat, 26 May 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-settings.c
+   M /irssi/trunk/src/fe-common/core/module-formats.c
+   M /irssi/trunk/src/fe-common/core/module-formats.h
+
+Added formats to /SET texts.
+
+------------------------------------------------------------------------
+r1516 | cras | 2001-05-23 14:52:46 +0000 (Wed, 23 May 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/docs/faq.txt
+
+added text about syncing problem
+
+------------------------------------------------------------------------
+r1515 | cras | 2001-05-22 00:38:07 +0000 (Tue, 22 May 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/chat-completion.c
+
+nick completion: don't add the same nick to completion list twice.
+
+------------------------------------------------------------------------
+r1514 | cras | 2001-05-22 00:33:35 +0000 (Tue, 22 May 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/chat-completion.c
+
+nonstrict completion bugfixes, my mistakes :)
+
+------------------------------------------------------------------------
+r1513 | cras | 2001-05-22 00:29:31 +0000 (Tue, 22 May 2001) | 4 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/chat-completion.c
+   M /irssi/trunk/src/fe-common/core/completion.c
+
+/SET completion_strict OFF - specifies if the tab nick completion should
+ignore non-alphanumeric characters. Alieases are now completed in command
+completion. Patch by fuchs.
+
+------------------------------------------------------------------------
+r1512 | cras | 2001-05-22 00:16:38 +0000 (Tue, 22 May 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/dcc/dcc.c
+   M /irssi/trunk/src/irc/dcc/dcc.h
+
+/SET dcc_own_ip for specifying own IP to use in DCC requests
+
+------------------------------------------------------------------------
+r1511 | cras | 2001-05-21 23:50:13 +0000 (Mon, 21 May 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/textbuffer-view.c
+
+scrolling in empty windows crashed
+
+------------------------------------------------------------------------
+r1510 | cras | 2001-05-21 23:46:48 +0000 (Mon, 21 May 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/core/misc.c
+
+get_max_column_count() didn't return correct value in save_column_widths
+when it returned only one column.
+
+------------------------------------------------------------------------
+r1509 | cras | 2001-05-21 23:14:04 +0000 (Mon, 21 May 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/irc.c
+
+irc_parse_prefix() didn't work properly if user name had ! characters.
+
+------------------------------------------------------------------------
+r1508 | cras | 2001-05-21 23:03:18 +0000 (Mon, 21 May 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/configure.in
+
+don't use if [ since it doesn't work, use if test..
+
+------------------------------------------------------------------------
+r1507 | cras | 2001-05-21 22:45:49 +0000 (Mon, 21 May 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/textbuffer-view.c
+
+removing line from the top of the screen crashed irssi
+
+------------------------------------------------------------------------
+r1506 | cras | 2001-05-18 14:54:02 +0000 (Fri, 18 May 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/mainwindows.c
+
+Split windows created with /WINDOW SHOW are now sticky if
+/SET autostick_split_windows is ON.
+
+------------------------------------------------------------------------
+r1505 | cras | 2001-05-17 21:01:00 +0000 (Thu, 17 May 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/textbuffer-view.c
+
+textbuffer_view_redraw() - call werase() before drawing anything, this
+hopefully helps with some buggy curseses.
+
+------------------------------------------------------------------------
+r1504 | cras | 2001-05-17 20:52:43 +0000 (Thu, 17 May 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/gui-windows.c
+
+don't crash with /WINDOW HIDE
+
+------------------------------------------------------------------------
+r1503 | cras | 2001-05-17 20:13:59 +0000 (Thu, 17 May 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/Makefile.am
+   M /irssi/trunk/autogen.sh
+   M /irssi/trunk/configure.in
+   D /irssi/trunk/po/.cvsignore
+   D /irssi/trunk/po/ChangeLog
+   D /irssi/trunk/po/de.po
+   D /irssi/trunk/po/fr.po
+   D /irssi/trunk/po/pl.po
+   D /irssi/trunk/po/pt_BR.po
+   D /irssi/trunk/po/sv.po
+   M /irssi/trunk/src/Makefile.am
+   M /irssi/trunk/src/common.h
+   M /irssi/trunk/src/core/args.c
+   M /irssi/trunk/src/core/net-disconnect.c
+   M /irssi/trunk/src/core/network.c
+   M /irssi/trunk/src/core/settings.c
+   M /irssi/trunk/src/fe-common/core/fe-common-core.c
+   M /irssi/trunk/src/fe-common/core/fe-settings.c
+   M /irssi/trunk/src/fe-common/core/module-formats.c
+   M /irssi/trunk/src/fe-common/core/module-formats.h
+   M /irssi/trunk/src/fe-common/core/printtext.c
+   M /irssi/trunk/src/fe-common/core/themes.c
+   M /irssi/trunk/src/fe-common/irc/fe-irc-commands.c
+   M /irssi/trunk/src/fe-common/irc/module-formats.c
+   M /irssi/trunk/src/fe-common/irc/module-formats.h
+   M /irssi/trunk/src/fe-text/irssi.c
+   M /irssi/trunk/src/lib-popt/popthelp.c
+   D /irssi/trunk/src/nls.h
+
+Getting rid of gettext, moved some _(..) texts to themes and left some error
+messages hard coded.
+
+------------------------------------------------------------------------
+r1502 | cras | 2001-05-17 17:07:40 +0000 (Thu, 17 May 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/keyboard.c
+
+Small speedup when pressing unbound keys.
+
+------------------------------------------------------------------------
+r1501 | cras | 2001-05-17 16:50:52 +0000 (Thu, 17 May 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/args.c
+   M /irssi/trunk/src/core/line-split.c
+   M /irssi/trunk/src/core/misc.h
+
+some comment changes, moved nearest_power() to misc.h
+
+------------------------------------------------------------------------
+r1500 | cras | 2001-05-17 11:47:21 +0000 (Thu, 17 May 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/gui-readline.c
+   M /irssi/trunk/src/fe-text/screen.c
+
+raw() mode also disabled SIGINT == ^C, so remove the 5x^C = SIGTERM.
+Also use sigaction() instead of signal() with /SET ignore_signals.
+
+------------------------------------------------------------------------
+r1499 | cras | 2001-05-17 11:24:33 +0000 (Thu, 17 May 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/screen.c
+
+cbreak() -> raw() - this fixes at least the Ctrl-4 abort.
+
+------------------------------------------------------------------------
+r1498 | cras | 2001-05-17 11:13:06 +0000 (Thu, 17 May 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/gui-readline.c
+
+KEY_RESIZE isn't defined in all curseses, #ifdef it
+
+------------------------------------------------------------------------
+r1497 | cras | 2001-05-14 22:23:51 +0000 (Mon, 14 May 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/irc-commands.c
+
+new /KICKBAN code crashed
+
+------------------------------------------------------------------------
+r1496 | cras | 2001-05-14 17:35:24 +0000 (Mon, 14 May 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/bans.c
+
+/UNBAN now supports unbanning multiple bans with ban# (/unban 1 4 6)
+
+------------------------------------------------------------------------
+r1495 | cras | 2001-05-14 15:35:43 +0000 (Mon, 14 May 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-ignore.c
+
+/IGNORE: -word -> -full, like it's with /HILIGHT.
+
+------------------------------------------------------------------------
+r1494 | cras | 2001-05-14 15:25:24 +0000 (Mon, 14 May 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/configure.in
+
+HAVE_GMODULE wasn't defined when using unpacked glib
+
+------------------------------------------------------------------------
+r1493 | cras | 2001-05-14 15:20:15 +0000 (Mon, 14 May 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-modules.c
+
+/LOAD notifies that dynamic modules aren't supported instead of being quiet
+
+------------------------------------------------------------------------
+r1492 | cras | 2001-05-14 14:07:10 +0000 (Mon, 14 May 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/config
+
+Removed $C from /W and /N aliases, it's not needed anymore.
+
+------------------------------------------------------------------------
+r1491 | cras | 2001-05-11 19:53:56 +0000 (Fri, 11 May 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/keyboard.c
+
+Don't crash if config file had keyboard = { .. } in it
+
+------------------------------------------------------------------------
+r1490 | cras | 2001-05-11 19:53:39 +0000 (Fri, 11 May 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/lib-config/set.c
+
+config_node_remove() - NULL parent is treated as root node
+
+------------------------------------------------------------------------
+r1489 | cras | 2001-05-11 18:44:51 +0000 (Fri, 11 May 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/commands.c
+
+cmd_get_params() crashed in some conditions
+
+------------------------------------------------------------------------
+r1488 | cras | 2001-05-11 17:42:05 +0000 (Fri, 11 May 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/fe-netjoin.c
+
+netjoins should display the @, + etc. before the nick again.
+
+------------------------------------------------------------------------
+r1487 | cras | 2001-05-11 17:35:38 +0000 (Fri, 11 May 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/statusbar-items.c
+   M /irssi/trunk/src/fe-text/statusbar.c
+   M /irssi/trunk/src/fe-text/statusbar.h
+
+statusbar was a bit broken when using split windows
+
+------------------------------------------------------------------------
+r1486 | cras | 2001-05-11 17:23:58 +0000 (Fri, 11 May 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/keyboard.c
+
+more config file handling fixes
+
+------------------------------------------------------------------------
+r1485 | cras | 2001-05-11 17:04:14 +0000 (Fri, 11 May 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/keyboard.c
+
+fixed config file handling
+
+------------------------------------------------------------------------
+r1484 | cras | 2001-05-11 16:08:48 +0000 (Fri, 11 May 2001) | 11 lines
+Changed paths:
+   M /irssi/trunk/src/core/channel-rec.h
+   M /irssi/trunk/src/core/channels.c
+   M /irssi/trunk/src/fe-common/core/fe-channels.c
+   M /irssi/trunk/src/fe-common/irc/module-formats.c
+   M /irssi/trunk/src/irc/core/channel-events.c
+   M /irssi/trunk/src/irc/core/irc-channels.c
+   M /irssi/trunk/src/irc/core/irc-commands.c
+
+CHANNEL_REC->get_join_data() - Returns the information needed to call
+SERVER_REC->channels_join() for this channel. Usually just the channel name,
+but may contain also the channel key.
+
+If we receive PART-message to channel that hasn't received a JOIN yet,
+don't destroy the channel. It's probably because we did quickly /PART +
+/JOIN.
+
+Moved /CYCLE to fe-common/core, it doesn't close the window for the cycled
+channel anymore if you had autoclosing on.
+
+------------------------------------------------------------------------
+r1483 | cras | 2001-05-11 16:06:45 +0000 (Fri, 11 May 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/modes.c
+
+MODE +k handler was buggy
+
+------------------------------------------------------------------------
+r1482 | cras | 2001-05-11 15:48:09 +0000 (Fri, 11 May 2001) | 4 lines
+Changed paths:
+   M /irssi/trunk/src/core/commands.c
+   M /irssi/trunk/src/core/commands.h
+   M /irssi/trunk/src/irc/core/irc.c
+   M /irssi/trunk/src/irc/core/irc.h
+
+Moved PARAM_FLAG_OPTCHAN handling to core. Removed support for adding own
+command parameter parsers, it's probably useless now that opt.channels are
+in core.
+
+------------------------------------------------------------------------
+r1481 | cras | 2001-05-11 14:32:57 +0000 (Fri, 11 May 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/window-items.c
+
+Don't place any window items to windows which have name. Window level
+doesn't have any effect to it anymore.
+
+------------------------------------------------------------------------
+r1480 | cras | 2001-05-11 14:26:22 +0000 (Fri, 11 May 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-log.c
+
+/LOG OPEN: it was checking /JOIN's options and printed errors if any /LOG
+OPEN -option was used..
+
+------------------------------------------------------------------------
+r1479 | cras | 2001-05-11 14:23:09 +0000 (Fri, 11 May 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/perl/common/Themes.xs
+
+PL_na doesn't exist in Perl 5.004, don't use it.
+
+------------------------------------------------------------------------
+r1478 | cras | 2001-05-11 14:18:18 +0000 (Fri, 11 May 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-channels.c
+
+/NAMES needs only one argument, fixes "/NAMES -ops #a " where irssi thought
+the channel was "#a " and instead of "#a"..
+
+------------------------------------------------------------------------
+r1477 | cras | 2001-05-11 14:12:21 +0000 (Fri, 11 May 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/lastlog.c
+   M /irssi/trunk/src/fe-text/textbuffer-view.c
+
+Line removing fixes, /LAST -clear fixed
+
+------------------------------------------------------------------------
+r1476 | cras | 2001-05-11 13:44:23 +0000 (Fri, 11 May 2001) | 4 lines
+Changed paths:
+   M /irssi/trunk/docs/help/in/bind.in
+   M /irssi/trunk/src/fe-text/gui-readline.c
+
+updated /BIND help, removed special_char bind command and added insert_text.
+It can be used to add text to entry line, $variables also works with it (eg.
+/BIND ^T /TOPIC $topic)
+
+------------------------------------------------------------------------
+r1475 | cras | 2001-05-11 13:19:16 +0000 (Fri, 11 May 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-ignore.c
+
+/IGNORE now defaults to ALL level
+
+------------------------------------------------------------------------
+r1474 | cras | 2001-05-11 13:08:47 +0000 (Fri, 11 May 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/textbuffer-view.c
+
+resizing terminal with /CLEARed empty windows scrolled those windows so that
+the last screenful of text was visible again.
+
+------------------------------------------------------------------------
+r1473 | cras | 2001-05-11 13:01:46 +0000 (Fri, 11 May 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/gui-readline.c
+
+KEY_RESIZE is sent when screen is resized, ignore it.
+
+------------------------------------------------------------------------
+r1472 | cras | 2001-05-11 12:55:18 +0000 (Fri, 11 May 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/docs/signals.txt
+   M /irssi/trunk/src/fe-common/irc/dcc/fe-dcc.c
+   M /irssi/trunk/src/fe-common/irc/dcc/module-formats.c
+   M /irssi/trunk/src/fe-common/irc/dcc/module-formats.h
+   M /irssi/trunk/src/irc/dcc/dcc-chat.c
+   M /irssi/trunk/src/irc/dcc/dcc-send.c
+
+added "dcc request send" signal - irssi now prints "DCC CHAT/SEND request
+sent to nick".
+
+------------------------------------------------------------------------
+r1471 | cras | 2001-05-11 12:43:59 +0000 (Fri, 11 May 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/docs/signals.txt
+   M /irssi/trunk/src/fe-common/irc/dcc/fe-dcc-send.c
+   M /irssi/trunk/src/fe-common/irc/dcc/module-formats.c
+   M /irssi/trunk/src/fe-common/irc/dcc/module-formats.h
+   M /irssi/trunk/src/irc/dcc/dcc-resume.c
+   M /irssi/trunk/src/irc/dcc/dcc-send.c
+
+"dcc error file not found" -> "dcc error file open". Print the actual error
+message based on errno, don't just assume the file wasn't found.
+
+------------------------------------------------------------------------
+r1470 | cras | 2001-05-11 12:37:40 +0000 (Fri, 11 May 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/docs/perl.txt
+
+added chapters for /COMMANDS and window items. some other minor fixes too.
+
+------------------------------------------------------------------------
+r1469 | cras | 2001-05-11 12:00:23 +0000 (Fri, 11 May 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/irc-commands.c
+
+/SET kick_first_on_kickban for /KICKBAN and /KNOCKOUT - patch by
+Jakub Jankowski <shasta@irc.pl>
+
+------------------------------------------------------------------------
+r1468 | cras | 2001-05-11 11:52:32 +0000 (Fri, 11 May 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/dcc/fe-dcc-get.c
+   M /irssi/trunk/src/fe-common/irc/dcc/fe-dcc-send.c
+   M /irssi/trunk/src/fe-common/irc/dcc/fe-dcc.c
+
+always round up the kB value so we won't have 0kB file sizes..
+
+------------------------------------------------------------------------
+r1467 | cras | 2001-05-10 19:54:48 +0000 (Thu, 10 May 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-common-core.c
+   M /irssi/trunk/src/fe-common/core/formats.c
+
+/SET hide_server_tags
+
+------------------------------------------------------------------------
+r1466 | cras | 2001-05-09 19:40:25 +0000 (Wed, 09 May 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/docs/help/in/mode.in
+
+bugfix: nick1,nick2,nick3 -> nick1 nick2 nick3
+
+------------------------------------------------------------------------
+r1465 | cras | 2001-05-09 14:37:48 +0000 (Wed, 09 May 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/modes.c
+   M /irssi/trunk/src/irc/core/modes.h
+
+support for +O mode
+
+------------------------------------------------------------------------
+r1464 | cras | 2001-05-08 18:05:53 +0000 (Tue, 08 May 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/keyboard.c
+
+some fixes, saving is still broken
+
+------------------------------------------------------------------------
+r1463 | cras | 2001-05-07 15:19:15 +0000 (Mon, 07 May 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/config
+
+Default alias /CHAT -> /DCC CHAT
+
+------------------------------------------------------------------------
+r1462 | cras | 2001-05-06 19:28:15 +0000 (Sun, 06 May 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/keyboard.c
+   M /irssi/trunk/src/fe-common/core/keyboard.h
+   M /irssi/trunk/src/fe-text/gui-readline.c
+   M /irssi/trunk/src/fe-text/screen.c
+
+keyboard handling rewrite
+
+------------------------------------------------------------------------
+r1461 | cras | 2001-05-05 18:45:01 +0000 (Sat, 05 May 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/autogen.sh
+
+'\!' -> '!' - hope this doesn't break anything :) at least it should fix some shell
+
+------------------------------------------------------------------------
+r1460 | cras | 2001-05-05 18:01:35 +0000 (Sat, 05 May 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/acconfig.h
+
+forgot big5 define
+
+------------------------------------------------------------------------
+r1459 | cras | 2001-05-01 11:37:50 +0000 (Tue, 01 May 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/flood/flood.c
+
+fixed potential crash
+
+------------------------------------------------------------------------
+r1458 | cras | 2001-05-01 09:38:06 +0000 (Tue, 01 May 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/configure.in
+   M /irssi/trunk/src/fe-text/gui-entry.c
+   M /irssi/trunk/src/fe-text/screen.h
+
+--with-big5 enables Chinese Big5 charset support. Patch by vanilla@freebsd.org
+
+------------------------------------------------------------------------
+r1457 | cras | 2001-04-25 04:10:19 +0000 (Wed, 25 Apr 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/docs/signals.txt
+   M /irssi/trunk/src/irc/core/mode-lists.c
+
+"ban ..." signals didn't send channel info
+
+------------------------------------------------------------------------
+r1456 | cras | 2001-04-22 23:20:42 +0000 (Sun, 22 Apr 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/gui-windows.c
+   M /irssi/trunk/src/fe-text/textbuffer-view.c
+   M /irssi/trunk/src/fe-text/textbuffer-view.h
+
+/SET indent_always - should we indent the long words that are forcibly
+wrapped to next line. Default is ON.
+
+------------------------------------------------------------------------
+r1455 | cras | 2001-04-20 20:02:29 +0000 (Fri, 20 Apr 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/ctcp.c
+
+CTCP version reply has now $sysarch by default
+
+------------------------------------------------------------------------
+r1454 | cras | 2001-04-20 20:00:23 +0000 (Fri, 20 Apr 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/docs/special_vars.txt
+   M /irssi/trunk/src/core/expandos.c
+
+added $sysarch
+
+------------------------------------------------------------------------
+r1453 | cras | 2001-04-20 19:24:20 +0000 (Fri, 20 Apr 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/docs/signals.txt
+   M /irssi/trunk/src/perl/common/module.h
+   M /irssi/trunk/src/perl/common/typemap
+   M /irssi/trunk/src/perl/get-signals.pl
+   M /irssi/trunk/src/perl/perl-fe.c
+
+Added TEXT_DEST_REC to perl, fixed "print text..." signal declarations.
+
+------------------------------------------------------------------------
+r1452 | cras | 2001-04-20 19:08:21 +0000 (Fri, 20 Apr 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/perl/common/Themes.xs
+
+Irssi::printformat() didn't work
+
+------------------------------------------------------------------------
+r1451 | cras | 2001-04-20 17:35:29 +0000 (Fri, 20 Apr 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/textbuffer-view.c
+
+potential crash fix..
+
+------------------------------------------------------------------------
+r1450 | cras | 2001-04-16 16:46:34 +0000 (Mon, 16 Apr 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/textbuffer.c
+
+added/removed some checks
+
+------------------------------------------------------------------------
+r1449 | cras | 2001-04-16 16:44:10 +0000 (Mon, 16 Apr 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/mainwindows.c
+   M /irssi/trunk/src/fe-text/textbuffer-view.c
+
+split windows were broken. added some checks to textbuffer.
+
+------------------------------------------------------------------------
+r1448 | cras | 2001-04-16 12:46:57 +0000 (Mon, 16 Apr 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/configure.in
+
+don't simply check for module directory, check for dir/module.h file.
+
+------------------------------------------------------------------------
+r1447 | cras | 2001-04-15 01:15:27 +0000 (Sun, 15 Apr 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/configure.in
+
+lib/ shouldn't be there yet
+
+------------------------------------------------------------------------
+r1446 | cras | 2001-04-14 23:44:31 +0000 (Sat, 14 Apr 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/textbuffer-view.c
+
+resize fixes
+
+------------------------------------------------------------------------
+r1445 | cras | 2001-04-14 23:24:19 +0000 (Sat, 14 Apr 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/mainwindows.c
+
+some resize problems fixed
+
+------------------------------------------------------------------------
+r1444 | cras | 2001-04-14 22:54:06 +0000 (Sat, 14 Apr 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-windows.h
+   M /irssi/trunk/src/fe-common/core/formats.c
+   M /irssi/trunk/src/fe-common/core/printtext.c
+   M /irssi/trunk/src/perl/perl-fe.c
+
+related changes to textbuffer update..
+
+------------------------------------------------------------------------
+r1443 | cras | 2001-04-14 22:40:45 +0000 (Sat, 14 Apr 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/textbuffer-view.c
+
+bugfixes for multiple windows support :)
+
+------------------------------------------------------------------------
+r1442 | cras | 2001-04-14 22:24:56 +0000 (Sat, 14 Apr 2001) | 18 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/Makefile.am
+   M /irssi/trunk/src/fe-text/gui-printtext.c
+   M /irssi/trunk/src/fe-text/gui-printtext.h
+   M /irssi/trunk/src/fe-text/gui-readline.c
+   D /irssi/trunk/src/fe-text/gui-textwidget.c
+   M /irssi/trunk/src/fe-text/gui-windows.c
+   M /irssi/trunk/src/fe-text/gui-windows.h
+   M /irssi/trunk/src/fe-text/irssi.c
+   M /irssi/trunk/src/fe-text/lastlog.c
+   M /irssi/trunk/src/fe-text/mainwindows-save.c
+   M /irssi/trunk/src/fe-text/mainwindows.c
+   M /irssi/trunk/src/fe-text/mainwindows.h
+   M /irssi/trunk/src/fe-text/screen.c
+   M /irssi/trunk/src/fe-text/statusbar-items.c
+   M /irssi/trunk/src/fe-text/statusbar.c
+   A /irssi/trunk/src/fe-text/textbuffer-commands.c
+   A /irssi/trunk/src/fe-text/textbuffer-view.c
+   A /irssi/trunk/src/fe-text/textbuffer-view.h
+   A /irssi/trunk/src/fe-text/textbuffer.c
+   A /irssi/trunk/src/fe-text/textbuffer.h
+
+Rewrote text buffer handling in windows - try #3.
+/SET scrollback_save_formats + /SB REDRAW is broken currently. There's some
+other minor things that might need to be changed.
+
+This time it allows the same window to be visible multiple times in screen,
+like you could make a new split window where to scroll back and find
+something while still seeing the new messages at the other window, this
+however doesn't work yet but it should be quite easy to make it :)
+
+I've tested that pretty much everything should work with this, new lines can
+be added at any position and lines can be removed from any position and
+screen should be updated properly. Screen resizing should also work
+perfectly now (maybe it did previously too, not sure) and hopefully now we
+won't see any of those ugly strange bugs some people were having. Also this
+time the same code isn't written 2-3 times to do some specific thing, like
+scrolling has now only one view_scroll() function instead of the 3 separate
+functions it used to have :)
+
+------------------------------------------------------------------------
+r1441 | cras | 2001-04-10 14:07:24 +0000 (Tue, 10 Apr 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/config
+
+DALNet -> DALnet
+
+------------------------------------------------------------------------
+r1440 | cras | 2001-04-09 16:39:30 +0000 (Mon, 09 Apr 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/configure.in
+
+small bugfix
+
+------------------------------------------------------------------------
+r1439 | cras | 2001-04-09 16:36:28 +0000 (Mon, 09 Apr 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/configure.in
+
+don't strip -lnsl from perl's ldflags, it might be needed..
+
+------------------------------------------------------------------------
+r1438 | cras | 2001-04-09 16:16:09 +0000 (Mon, 09 Apr 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-settings.c
+
+']' missing from /SET syntax
+
+------------------------------------------------------------------------
+r1437 | cras | 2001-04-06 21:05:05 +0000 (Fri, 06 Apr 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/docs/startup-HOWTO.html
+
+typofix
+
+------------------------------------------------------------------------
+r1436 | cras | 2001-04-01 01:39:28 +0000 (Sun, 01 Apr 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/gui-printtext.h
+
+removed unused colors
+
+------------------------------------------------------------------------
+r1435 | cras | 2001-04-01 00:31:02 +0000 (Sun, 01 Apr 2001) | 4 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/gui-windows.c
+
+gui_window_line2text(): don't keep track of colors - if fg or bg doesn't
+change, just use FORMAT_COLOR_NOCHANGE instead of figuring out what it
+should be.
+
+------------------------------------------------------------------------
+r1434 | cras | 2001-04-01 00:25:47 +0000 (Sun, 01 Apr 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/gui-printtext.c
+   M /irssi/trunk/src/fe-text/gui-readline.c
+   M /irssi/trunk/src/fe-text/gui-textwidget.c
+   M /irssi/trunk/src/fe-text/gui-windows.c
+   M /irssi/trunk/src/fe-text/mainwindow-activity.c
+   M /irssi/trunk/src/fe-text/statusbar.c
+
+removed some unused includes
+
+------------------------------------------------------------------------
+r1433 | cras | 2001-03-31 01:54:53 +0000 (Sat, 31 Mar 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-none/irssi.c
+
+fixed commented out module_load()
+
+------------------------------------------------------------------------
+r1432 | cras | 2001-03-31 00:57:18 +0000 (Sat, 31 Mar 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/docs/faq.txt
+
+added "why don't colors work"
+
+------------------------------------------------------------------------
+r1431 | cras | 2001-03-29 14:38:29 +0000 (Thu, 29 Mar 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/config
+   M /irssi/trunk/docs/help/in/load.in
+   M /irssi/trunk/docs/manual.txt
+   M /irssi/trunk/irssi.spec.in
+   M /irssi/trunk/src/common.h
+
+http://irssi.org -> http://irssi.org/
+
+------------------------------------------------------------------------
+r1430 | cras | 2001-03-28 22:38:52 +0000 (Wed, 28 Mar 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-log.c
+
+log->temp -> !log->temp .. closed non-autologs instead of autologs..
+
+------------------------------------------------------------------------
+r1429 | cras | 2001-03-28 21:32:10 +0000 (Wed, 28 Mar 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/modules.c
+
+module_get_name() should be inside #ifdef HAVE_GMODULE
+
+------------------------------------------------------------------------
+r1428 | cras | 2001-03-28 21:23:13 +0000 (Wed, 28 Mar 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/configure.in
+
+don't use which - cygwin doesn't have it
+
+------------------------------------------------------------------------
+r1427 | cras | 2001-03-26 15:30:36 +0000 (Mon, 26 Mar 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/docs/help/in/wall.in
+
+added note about /wallchops
+
+------------------------------------------------------------------------
+r1426 | cras | 2001-03-26 15:29:21 +0000 (Mon, 26 Mar 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/docs/help/in/wall.in
+   M /irssi/trunk/docs/help/in/wallops.in
+
+fixed descriptions
+
+------------------------------------------------------------------------
+r1425 | cras | 2001-03-26 15:21:49 +0000 (Mon, 26 Mar 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/docs/help/in/silence.in
+   M /irssi/trunk/docs/help/in/unsilence.in
+   M /irssi/trunk/docs/help/in/uping.in
+   M /irssi/trunk/docs/help/in/wallchops.in
+
+wallchops: works only with ircu. updated ircu notes.
+
+------------------------------------------------------------------------
+r1424 | cras | 2001-03-26 02:02:50 +0000 (Mon, 26 Mar 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-log.c
+
+When closing autologs, don't crash if some other temporary log is open, like
+awaylog.
+
+------------------------------------------------------------------------
+r1423 | cras | 2001-03-24 21:47:36 +0000 (Sat, 24 Mar 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/configure.in
+
+s/enable-perl=/enable-perl-path=/ in the warning message
+
+------------------------------------------------------------------------
+r1422 | cras | 2001-03-24 16:03:05 +0000 (Sat, 24 Mar 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/themes.c
+
+don't crash with themes without replaces block. don't crash with themes with
+highascii characters.
+
+------------------------------------------------------------------------
+r1421 | cras | 2001-03-24 15:16:49 +0000 (Sat, 24 Mar 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/default.theme
+
+added default_color and default_real_color
+
+------------------------------------------------------------------------
+r1420 | cras | 2001-03-24 12:45:04 +0000 (Sat, 24 Mar 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/flood/flood.c
+
+fixes, hopefully works correctly finally :) patch by fuchs.
+
+------------------------------------------------------------------------
+r1419 | cras | 2001-03-24 12:41:43 +0000 (Sat, 24 Mar 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/ignore.c
+
+ignore_check(): don't crash if nick is NULL - shouldn't really ever happen?
+
+------------------------------------------------------------------------
+r1418 | cras | 2001-03-23 01:07:33 +0000 (Fri, 23 Mar 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/docs/perl.txt
+
+notice of ~/.irssi/startup
+
+------------------------------------------------------------------------
+r1417 | cras | 2001-03-22 19:14:23 +0000 (Thu, 22 Mar 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/docs/startup-HOWTO.html
+
+Removed /SET statusbar_xxx
+
+------------------------------------------------------------------------
+r1416 | cras | 2001-03-22 18:43:07 +0000 (Thu, 22 Mar 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/docs/Makefile.am
+
+added faq.txt
+
+------------------------------------------------------------------------
+r1415 | cras | 2001-03-21 00:21:45 +0000 (Wed, 21 Mar 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-log.c
+
+Parting channels and disconnecting from servers didn't close the autologs.
+
+------------------------------------------------------------------------
+r1414 | cras | 2001-03-20 23:24:45 +0000 (Tue, 20 Mar 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/server-connect-rec.h
+   M /irssi/trunk/src/core/servers-reconnect.c
+   M /irssi/trunk/src/core/servers-setup.c
+   M /irssi/trunk/src/core/servers.c
+   M /irssi/trunk/src/irc/core/irc-servers.c
+
+added /SET proxy_password
+
+------------------------------------------------------------------------
+r1413 | cras | 2001-03-20 17:46:18 +0000 (Tue, 20 Mar 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/servertest/server.c
+
+quick hacks to make it compile again
+
+------------------------------------------------------------------------
+r1412 | cras | 2001-03-20 16:35:00 +0000 (Tue, 20 Mar 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/dcc/dcc-autoget.c
+   M /irssi/trunk/src/irc/dcc/dcc-chat.c
+
+dcc_autoget_lowports -> dcc_autoaccept_lowports since dcc chat uses it too
+
+------------------------------------------------------------------------
+r1411 | cras | 2001-03-20 02:00:17 +0000 (Tue, 20 Mar 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/notifylist/fe-notifylist.c
+
+Send notify out messages with HILIGHT level too.
+
+------------------------------------------------------------------------
+r1410 | cras | 2001-03-18 23:00:53 +0000 (Sun, 18 Mar 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/irc-commands.c
+   M /irssi/trunk/src/irc/core/irc.c
+   M /irssi/trunk/src/irc/core/irc.h
+
+/RAWQUOTE: like /QUOTE, but don't add line feed after the command, and don't
+truncate line to 512 bytes.
+
+------------------------------------------------------------------------
+r1409 | cras | 2001-03-18 21:39:24 +0000 (Sun, 18 Mar 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/core/Makefile.am
+   D /irssi/trunk/src/core/net-internal.h
+   M /irssi/trunk/src/core/network.c
+   M /irssi/trunk/src/core/network.h
+
+moved stuff from net-internal.h to network.h. HPUX needed one of the
+#includes in there to work.
+
+------------------------------------------------------------------------
+r1408 | cras | 2001-03-17 06:58:13 +0000 (Sat, 17 Mar 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/docs/help/in/hilight.in
+   M /irssi/trunk/src/fe-common/core/hilight-text.c
+
+/HILIGHT -full didn't work, and -word was treated as -word + -full. Updated
+/HELP hilight.
+
+------------------------------------------------------------------------
+r1407 | cras | 2001-03-17 05:12:52 +0000 (Sat, 17 Mar 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/NEWS
+
+updated for .98.3
+
+------------------------------------------------------------------------
+r1406 | cras | 2001-03-17 03:29:55 +0000 (Sat, 17 Mar 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/TODO
+
+updated for .98.3
+
+------------------------------------------------------------------------
+r1405 | cras | 2001-03-17 03:29:31 +0000 (Sat, 17 Mar 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/default.theme
+
+pubmsghinick - add %n after nick so underlines/blinks get disabled..
+
+------------------------------------------------------------------------
+r1404 | cras | 2001-03-17 02:34:42 +0000 (Sat, 17 Mar 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-windows.c
+
+fixed small hilight memory leak
+
+------------------------------------------------------------------------
+r1403 | cras | 2001-03-17 02:32:32 +0000 (Sat, 17 Mar 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/docs/formats.txt
+   M /irssi/trunk/src/core/channels.c
+   M /irssi/trunk/src/core/queries.c
+   M /irssi/trunk/src/fe-common/core/formats.c
+   M /irssi/trunk/src/fe-common/core/formats.h
+   M /irssi/trunk/src/fe-common/core/themes.c
+   M /irssi/trunk/src/fe-text/gui-printtext.c
+
+%F = blinking on/off. several fixes to make blinking work better. some
+hilight fixes.
+
+------------------------------------------------------------------------
+r1402 | cras | 2001-03-17 01:52:43 +0000 (Sat, 17 Mar 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/docs/formats.txt
+   M /irssi/trunk/docs/help/in/hilight.in
+   M /irssi/trunk/src/core/window-item-rec.h
+   M /irssi/trunk/src/fe-common/core/fe-windows.h
+   M /irssi/trunk/src/fe-common/core/formats.c
+   M /irssi/trunk/src/fe-common/core/formats.h
+   M /irssi/trunk/src/fe-common/core/hilight-text.c
+   M /irssi/trunk/src/fe-common/core/hilight-text.h
+   M /irssi/trunk/src/fe-common/core/printtext.c
+   M /irssi/trunk/src/fe-common/core/window-activity.c
+   M /irssi/trunk/src/fe-text/statusbar-items.c
+   M /irssi/trunk/src/perl/perl-common.c
+   M /irssi/trunk/src/perl/perl-fe.c
+
+Hilighting updates. /HILIGHT -color, /SET hilight_color and /SET
+hilight_act_color now use %codes for specifying color.
+
+------------------------------------------------------------------------
+r1401 | cras | 2001-03-17 00:55:47 +0000 (Sat, 17 Mar 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/gui-windows.c
+
+Added some debug messages..
+
+------------------------------------------------------------------------
+r1400 | cras | 2001-03-16 23:57:24 +0000 (Fri, 16 Mar 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/core/settings.c
+   M /irssi/trunk/src/core/settings.h
+   M /irssi/trunk/src/fe-common/core/fe-settings.c
+
+Irssi now asks if you want to remove unknown settings from configuration
+file.
+
+------------------------------------------------------------------------
+r1399 | cras | 2001-03-16 22:14:50 +0000 (Fri, 16 Mar 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/fe-irc-messages.c
+
+emphasis works with actions now
+
+------------------------------------------------------------------------
+r1398 | cras | 2001-03-16 22:14:21 +0000 (Fri, 16 Mar 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/chat-commands.c
+   M /irssi/trunk/src/irc/core/irc-commands.c
+
+quit_message setting moved from irc to core
+
+------------------------------------------------------------------------
+r1397 | cras | 2001-03-15 22:33:58 +0000 (Thu, 15 Mar 2001) | 5 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/gui-printtext.c
+
+Text buffer: Saving pointer to char[] didn't work correctly with
+netbsd/alpha which caused crash soon after startup. Changed the code a bit,
+I'm not sure if it's still correct ANSI C but at least it seems to work fine
+with netbsd/alpha now :)
+
+------------------------------------------------------------------------
+r1396 | cras | 2001-03-15 21:05:40 +0000 (Thu, 15 Mar 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/window-commands.c
+
+/WINDOW CLOSE [<first> [<last>] - you can close multiple windows once now.
+
+------------------------------------------------------------------------
+r1395 | cras | 2001-03-15 20:48:57 +0000 (Thu, 15 Mar 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/core/servers.c
+
+server_connect_own_ip_save(): fixed some nasty typos that could have
+crashed irssi when using vhosts
+
+------------------------------------------------------------------------
+r1394 | cras | 2001-03-15 17:39:23 +0000 (Thu, 15 Mar 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/irc-commands.c
+
+/NICK could have changed nick to some other nick than we specified
+(/NICK nick!blah -> nick)
+
+------------------------------------------------------------------------
+r1393 | cras | 2001-03-15 17:34:28 +0000 (Thu, 15 Mar 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/formats.c
+
+^O reset only colors, not underlines etc.
+
+------------------------------------------------------------------------
+r1392 | cras | 2001-03-15 16:11:09 +0000 (Thu, 15 Mar 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/proxy/listen.c
+
+bugfix
+
+------------------------------------------------------------------------
+r1391 | cras | 2001-03-15 15:42:11 +0000 (Thu, 15 Mar 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/perl/Makefile.am
+
+if $(MAKE) crap -> ($(MAKE) || $(MAKE)), a lot better :)
+
+------------------------------------------------------------------------
+r1390 | cras | 2001-03-15 15:23:00 +0000 (Thu, 15 Mar 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/perl/Makefile.am
+
+if ! $(MAKE) -> if $(MAKE); then echo; else
+
+------------------------------------------------------------------------
+r1389 | cras | 2001-03-15 03:01:04 +0000 (Thu, 15 Mar 2001) | 5 lines
+Changed paths:
+   M /irssi/trunk/src/core/expandos.c
+
+signal_add_first("setup changed", .. so if some other "setup changed"
+handler wants to ask $Z it works properly. This fix is kind of a kludge,
+some better way should be found to fix these kind of problems (just
+g_strdup() them?)
+
+------------------------------------------------------------------------
+r1388 | cras | 2001-03-15 02:48:04 +0000 (Thu, 15 Mar 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/statusbar-items.c
+
+minor cleanup
+
+------------------------------------------------------------------------
+r1387 | cras | 2001-03-15 02:31:36 +0000 (Thu, 15 Mar 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/statusbar.c
+
+when some statusbar item was forced to be removed because of lack of space,
+it still used 2 chars.
+
+------------------------------------------------------------------------
+r1386 | cras | 2001-03-15 02:26:12 +0000 (Thu, 15 Mar 2001) | 7 lines
+Changed paths:
+   M /irssi/trunk/default.theme
+   M /irssi/trunk/src/fe-common/core/themes.c
+   M /irssi/trunk/src/fe-common/core/themes.h
+   M /irssi/trunk/src/fe-text/mainwindows.h
+   M /irssi/trunk/src/fe-text/screen.c
+   M /irssi/trunk/src/fe-text/statusbar-items.c
+   M /irssi/trunk/src/fe-text/statusbar.c
+   M /irssi/trunk/src/fe-text/statusbar.h
+
+Beginnings of configurable statusbar. The existing items can be configured
+in default.theme.
+
+If some abstract isn't set in theme, it fallbacks to the one in
+default.theme now. This should help with old themes, and maybe themes
+that don't change something should just keep those parts commented out..
+
+------------------------------------------------------------------------
+r1385 | cras | 2001-03-15 02:23:43 +0000 (Thu, 15 Mar 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/configure.in
+
+Upgraded to glib 1.2.9
+
+------------------------------------------------------------------------
+r1384 | cras | 2001-03-15 02:22:44 +0000 (Thu, 15 Mar 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/levels.c
+
+* level is now same as ALL
+
+------------------------------------------------------------------------
+r1383 | cras | 2001-03-14 22:36:04 +0000 (Wed, 14 Mar 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/servers-reconnect.c
+
+Reconnecting shouldn't lose the address family.
+
+------------------------------------------------------------------------
+r1382 | cras | 2001-03-14 22:26:00 +0000 (Wed, 14 Mar 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/core/network.c
+
+net_listen() works now properly with --enable-ipv6 and a system that doesn't
+have a working IPv6 support
+
+------------------------------------------------------------------------
+r1381 | cras | 2001-03-12 19:43:32 +0000 (Mon, 12 Mar 2001) | 6 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/themes.c
+   M /irssi/trunk/src/fe-common/core/themes.h
+   M /irssi/trunk/src/fe-text/gui-printtext.c
+   M /irssi/trunk/src/fe-text/statusbar-items.c
+
+%n+bg color change doesn't anymore set foreground black. changed theme's
+default_bold_color to default_real_color.
+
+Activity list printed first item with white always. Color redrawed itself
+every second.
+
+------------------------------------------------------------------------
+r1380 | cras | 2001-03-12 10:34:04 +0000 (Mon, 12 Mar 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/formats.c
+   M /irssi/trunk/src/fe-common/core/formats.h
+
+added format_real_length()
+
+------------------------------------------------------------------------
+r1379 | cras | 2001-03-12 10:33:13 +0000 (Mon, 12 Mar 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/statusbar-items.c
+   M /irssi/trunk/src/fe-text/statusbar.c
+   M /irssi/trunk/src/fe-text/statusbar.h
+
+Statusbar rewrites. Colors are currently not configurable at all, but other
+than that, it should work better.
+
+------------------------------------------------------------------------
+r1378 | cras | 2001-03-11 02:33:00 +0000 (Sun, 11 Mar 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/perl/Makefile.am
+
+make distclean works now properly for common/ and irc/ directories (by tko)
+
+------------------------------------------------------------------------
+r1377 | cras | 2001-03-10 23:33:56 +0000 (Sat, 10 Mar 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/nicklist.c
+
+buggy fix, fixed :)
+
+------------------------------------------------------------------------
+r1376 | cras | 2001-03-10 23:23:32 +0000 (Sat, 10 Mar 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/core/nicklist.c
+
+nick_hash_remove(): GLIB didn't change the hash table key like I thought, so
+we need to first remove it from the hash, then insert again..
+
+------------------------------------------------------------------------
+r1375 | cras | 2001-03-10 18:49:00 +0000 (Sat, 10 Mar 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/README
+
+updated
+
+------------------------------------------------------------------------
+r1374 | cras | 2001-03-10 18:22:58 +0000 (Sat, 10 Mar 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/irc/flood/flood.c
+
+Don't cast time_t to int. Don't go playing with memory you just free'd. Some
+other cleanups
+
+------------------------------------------------------------------------
+r1373 | cras | 2001-03-10 16:54:22 +0000 (Sat, 10 Mar 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/docs/startup-HOWTO.html
+
+more Meta key updates
+
+------------------------------------------------------------------------
+r1372 | cras | 2001-03-10 16:51:08 +0000 (Sat, 10 Mar 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/docs/startup-HOWTO.html
+
+updated
+
+------------------------------------------------------------------------
+r1371 | cras | 2001-03-10 16:40:37 +0000 (Sat, 10 Mar 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/docs
+   M /irssi/trunk/docs/.cvsignore
+
+added startup-HOWTO.txt
+
+------------------------------------------------------------------------
+r1370 | cras | 2001-03-10 02:30:11 +0000 (Sat, 10 Mar 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/perl/common/Server.xs
+
+typofix
+
+------------------------------------------------------------------------
+r1369 | cras | 2001-03-08 16:49:52 +0000 (Thu, 08 Mar 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/configure.in
+
+getting ready for .98.3..
+
+------------------------------------------------------------------------
+r1368 | cras | 2001-03-08 14:54:23 +0000 (Thu, 08 Mar 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/perl/common/Server.xs
+
+updated
+
+------------------------------------------------------------------------
+r1367 | cras | 2001-03-08 00:48:41 +0000 (Thu, 08 Mar 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/dcc/fe-dcc-chat.c
+
+/DCC CLOSE CHAT <unknown> signal: we were checking for "GET" here, not
+"CHAT"..
+
+------------------------------------------------------------------------
+r1366 | cras | 2001-03-08 00:47:09 +0000 (Thu, 08 Mar 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/docs/help/in/lastlog.in
+
+updated
+
+------------------------------------------------------------------------
+r1365 | cras | 2001-03-08 00:45:56 +0000 (Thu, 08 Mar 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/command-history.c
+   M /irssi/trunk/src/fe-common/core/fe-queries.c
+   M /irssi/trunk/src/fe-common/core/fe-windows.h
+
+Command history: allow "next history" to jump back to last msg in
+history if we already went over it with "prev history" once.
+
+------------------------------------------------------------------------
+r1364 | cras | 2001-03-08 00:27:40 +0000 (Thu, 08 Mar 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/gui-readline.c
+
+/SET scroll_page_count - don't crash if /0 is given. Works now properly
+if /0.xx is given.
+
+------------------------------------------------------------------------
+r1363 | cras | 2001-03-08 00:24:27 +0000 (Thu, 08 Mar 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/chat-commands.c
+   M /irssi/trunk/src/core/servers-setup.c
+   M /irssi/trunk/src/core/servers-setup.h
+
+/CONNECT -ircnet didn't load ircnet specific settings correctly
+
+------------------------------------------------------------------------
+r1362 | cras | 2001-03-08 00:11:38 +0000 (Thu, 08 Mar 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/config
+
+undernet's stupid servers don't want to handle more than one query per
+channel at a time and they won't send any kind of notice of it.
+
+------------------------------------------------------------------------
+r1361 | cras | 2001-03-07 23:57:19 +0000 (Wed, 07 Mar 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/core/server-rec.h
+   M /irssi/trunk/src/core/server-setup-rec.h
+   M /irssi/trunk/src/core/servers-reconnect.c
+   M /irssi/trunk/src/core/servers.c
+
+If one server fails because of DNS error, don't stop reconnecting to
+entire chatnet.
+
+------------------------------------------------------------------------
+r1360 | cras | 2001-03-07 23:55:54 +0000 (Wed, 07 Mar 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/lastlog.c
+
+/LASTLOG -window unknown crashed irssi
+
+------------------------------------------------------------------------
+r1359 | cras | 2001-03-07 23:55:33 +0000 (Wed, 07 Mar 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/nicklist.c
+
+removing second last unique nick didn't work properly
+
+------------------------------------------------------------------------
+r1358 | cras | 2001-03-07 12:09:38 +0000 (Wed, 07 Mar 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/perl/get-signals.pl
+   M /irssi/trunk/src/perl/perl-signals.c
+
+some perl fixes. NICK_REC is also now "iobject"..
+
+------------------------------------------------------------------------
+r1357 | cras | 2001-03-05 16:11:53 +0000 (Mon, 05 Mar 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/core/chat-commands.c
+
+/SERVER: don't set reconnection to TRUE if we're not disconnecting from
+any server
+
+------------------------------------------------------------------------
+r1356 | cras | 2001-03-04 16:22:00 +0000 (Sun, 04 Mar 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/perl/Makefile.am
+
+removed Flood.xs
+
+------------------------------------------------------------------------
+r1355 | cras | 2001-03-04 16:20:26 +0000 (Sun, 04 Mar 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/NEWS
+   M /irssi/trunk/TODO
+
+updated for .98.2
+
+------------------------------------------------------------------------
+r1354 | cras | 2001-03-04 12:24:17 +0000 (Sun, 04 Mar 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/docs/startup-HOWTO.html
+
+small updates
+
+------------------------------------------------------------------------
+r1353 | cras | 2001-03-04 10:42:56 +0000 (Sun, 04 Mar 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/autogen.sh
+   M /irssi/trunk/docs/Makefile.am
+   A /irssi/trunk/docs/startup-HOWTO.html
+   D /irssi/trunk/docs/startup-HOWTO.txt
+
+keep startup-HOWTO in a .html file, use lynx -dump to create the .txt
+version :)
+
+------------------------------------------------------------------------
+r1352 | cras | 2001-03-04 10:38:06 +0000 (Sun, 04 Mar 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/autogen.sh
+
+added some status information what's it doing at the beginning
+
+------------------------------------------------------------------------
+r1351 | cras | 2001-03-04 10:30:41 +0000 (Sun, 04 Mar 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/core/nicklist.c
+   M /irssi/trunk/src/core/nicklist.h
+   M /irssi/trunk/src/core/servers.c
+   M /irssi/trunk/src/core/servers.h
+   M /irssi/trunk/src/fe-common/core/fe-messages.c
+   M /irssi/trunk/src/irc/core/irc-nicklist.c
+
+added server_change_nick() function for servers.[ch]. Lots of fixes for
+support to multiple identical nicks. Should work now properly :)
+
+------------------------------------------------------------------------
+r1350 | cras | 2001-03-04 09:09:59 +0000 (Sun, 04 Mar 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/modules.c
+
+fixed minor memory leak
+
+------------------------------------------------------------------------
+r1349 | cras | 2001-03-04 09:04:53 +0000 (Sun, 04 Mar 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-channels.c
+
+/SET names_max_width - buffer overflowed if it was too small..
+
+------------------------------------------------------------------------
+r1348 | cras | 2001-03-04 08:10:45 +0000 (Sun, 04 Mar 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/gui-readline.c
+
+"command window prev" -> "command window previous"
+
+------------------------------------------------------------------------
+r1347 | cras | 2001-03-04 08:10:01 +0000 (Sun, 04 Mar 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-channels.c
+
+/NAMES didn't stop the signal properly so /NAMES list was printed twice
+
+------------------------------------------------------------------------
+r1346 | cras | 2001-03-04 06:53:26 +0000 (Sun, 04 Mar 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/docs/startup-HOWTO.txt
+
+updated
+
+------------------------------------------------------------------------
+r1345 | cras | 2001-03-04 06:50:47 +0000 (Sun, 04 Mar 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/docs/help/in/exec.in
+   M /irssi/trunk/docs/help/in/log.in
+
+% -> %% so irssi won't treat them as color codes
+
+------------------------------------------------------------------------
+r1344 | cras | 2001-03-04 05:46:09 +0000 (Sun, 04 Mar 2001) | 4 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/gui-windows.c
+
+/SET autostick_split_windows (default ON) - should we do /WINDOW STICK
+ON to all new split windows and hidden windows that are created inside
+it. This hopefully makes it easier to use split windows.
+
+------------------------------------------------------------------------
+r1343 | cras | 2001-03-04 03:52:17 +0000 (Sun, 04 Mar 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/statusbar-items.c
+   M /irssi/trunk/src/fe-text/statusbar.c
+   M /irssi/trunk/src/fe-text/statusbar.h
+
+More statusbar size fixes. Shouldn't corrupt entry line anymore.
+
+------------------------------------------------------------------------
+r1342 | cras | 2001-03-04 03:35:12 +0000 (Sun, 04 Mar 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/statusbar.c
+
+Statusbar could have gotten to endless loop trying to grow size of some
+item when there was no space left.
+
+------------------------------------------------------------------------
+r1341 | cras | 2001-03-04 03:25:21 +0000 (Sun, 04 Mar 2001) | 4 lines
+Changed paths:
+   M /irssi/trunk/src/core/servers-reconnect.c
+   M /irssi/trunk/src/core/servers.c
+   M /irssi/trunk/src/irc/core/irc-core.c
+   M /irssi/trunk/src/irc/core/irc-servers.c
+
+Send "chat protocol deinit" signal when protocol is being
+deinitialized. Servers and reconnections are automatically disconnected
+for the protocol when it's being deinitialized.
+
+------------------------------------------------------------------------
+r1340 | cras | 2001-03-04 03:05:16 +0000 (Sun, 04 Mar 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/core/servers.c
+
+Forced IPv4 connection to host with only IPv6 address should use the
+IPv6 address..
+
+------------------------------------------------------------------------
+r1339 | cras | 2001-03-04 03:00:35 +0000 (Sun, 04 Mar 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/core/network.c
+   M /irssi/trunk/src/core/network.h
+   M /irssi/trunk/src/irc/dcc/dcc.c
+
+union { .. } addr removed from IPADDR - it hasn't been actually used
+for a long time..
+
+------------------------------------------------------------------------
+r1338 | cras | 2001-03-04 02:58:26 +0000 (Sun, 04 Mar 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/servers-setup.c
+
+save_ips() wasn't working properly..
+
+------------------------------------------------------------------------
+r1337 | cras | 2001-03-04 02:49:01 +0000 (Sun, 04 Mar 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/ignore.c
+
+Ignores without -time were unignored immediately..
+
+------------------------------------------------------------------------
+r1336 | cras | 2001-03-04 02:30:55 +0000 (Sun, 04 Mar 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/configure.in
+
+version = .98.2 actually :)
+
+------------------------------------------------------------------------
+r1335 | cras | 2001-03-04 02:26:35 +0000 (Sun, 04 Mar 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/mainwindows.c
+
+/WINDOW SHOW didn't work properly
+
+------------------------------------------------------------------------
+r1334 | cras | 2001-03-04 01:47:13 +0000 (Sun, 04 Mar 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/docs/help/in/connect.in
+   M /irssi/trunk/docs/help/in/server.in
+   M /irssi/trunk/src/common.h
+   M /irssi/trunk/src/core/chat-commands.c
+   M /irssi/trunk/src/core/chatnet-rec.h
+   M /irssi/trunk/src/core/net-nonblock.c
+   M /irssi/trunk/src/core/net-nonblock.h
+   M /irssi/trunk/src/core/network.c
+   M /irssi/trunk/src/core/network.h
+   M /irssi/trunk/src/core/server-connect-rec.h
+   M /irssi/trunk/src/core/server-setup-rec.h
+   M /irssi/trunk/src/core/servers-reconnect.c
+   M /irssi/trunk/src/core/servers-setup.c
+   M /irssi/trunk/src/core/servers-setup.h
+   M /irssi/trunk/src/core/servers.c
+   M /irssi/trunk/src/core/servers.h
+   M /irssi/trunk/src/fe-common/core/fe-server.c
+   M /irssi/trunk/src/fe-common/irc/fe-ircnet.c
+   M /irssi/trunk/src/irc/dcc/dcc-chat.c
+   M /irssi/trunk/src/irc/dcc/dcc-get.c
+   M /irssi/trunk/src/irc/dcc/dcc.c
+
+IPv6 fixes. Everything now keeps both v4 and v6 addresses in memory and
+at connect() time it's decided which one should be used.
+
+------------------------------------------------------------------------
+r1333 | cras | 2001-03-04 01:35:29 +0000 (Sun, 04 Mar 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/Makefile.am
+   M /irssi/trunk/configure.in
+
+removed GLIB_DIR from Makefile, configure compiles it and "make
+install" breaks since it tried to install glib too which wasn't needed.
+
+------------------------------------------------------------------------
+r1332 | cras | 2001-03-04 00:14:00 +0000 (Sun, 04 Mar 2001) | 4 lines
+Changed paths:
+   M /irssi/trunk/docs/help/in/names.in
+   M /irssi/trunk/src/fe-common/core/fe-channels.c
+   M /irssi/trunk/src/fe-common/core/fe-channels.h
+   M /irssi/trunk/src/fe-common/irc/fe-events-numeric.c
+   M /irssi/trunk/src/irc/core/irc-commands.c
+
+/NAMES: -ops -halfops -voices -normal options added. /NAMES without
+parameters now prints nicklist in active channel, /NAMES ** shows all
+nicks in all channels.
+
+------------------------------------------------------------------------
+r1331 | cras | 2001-03-04 00:13:06 +0000 (Sun, 04 Mar 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/syntax.pl
+
+when joining lines together, put space between them..
+
+------------------------------------------------------------------------
+r1330 | cras | 2001-03-03 23:27:07 +0000 (Sat, 03 Mar 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/configure.in
+   M /irssi/trunk/src/core/ignore.c
+   M /irssi/trunk/src/core/ignore.h
+   M /irssi/trunk/src/fe-common/core/fe-ignore.c
+   M /irssi/trunk/src/fe-common/irc/Makefile.am
+   M /irssi/trunk/src/irc/flood/Makefile.am
+   M /irssi/trunk/src/irc/flood/autoignore.c
+   M /irssi/trunk/src/irc/flood/flood.c
+   D /irssi/trunk/src/perl/irc/Flood.xs
+   M /irssi/trunk/src/perl/irc/Irc.xs
+   M /irssi/trunk/src/perl/irc/module.h
+
+fe-common/irc/flood removed. Some autoignore / ignore -time updates.
+
+------------------------------------------------------------------------
+r1329 | cras | 2001-03-03 23:20:26 +0000 (Sat, 03 Mar 2001) | 2 lines
+Changed paths:
+   D /irssi/trunk/src/fe-common/irc/flood
+
+not needed anymore.
+
+------------------------------------------------------------------------
+r1328 | cras | 2001-03-03 22:06:45 +0000 (Sat, 03 Mar 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/core/servers.c
+
+/CONNECT -ircnet "" - even if someone does this don't make the server
+tag empty :)
+
+------------------------------------------------------------------------
+r1327 | cras | 2001-03-03 22:03:00 +0000 (Sat, 03 Mar 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-channels.c
+   M /irssi/trunk/src/fe-common/core/fe-queries.c
+   M /irssi/trunk/src/fe-common/core/fe-windows.c
+   M /irssi/trunk/src/fe-common/core/fe-windows.h
+
+When /SET autoclose_windows is ON, don't destroy windows if they have
+some level set (like /join -w + /part in status window)
+
+------------------------------------------------------------------------
+r1326 | cras | 2001-03-03 21:57:31 +0000 (Sat, 03 Mar 2001) | 5 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-channels.c
+   M /irssi/trunk/src/fe-common/core/fe-queries.c
+
+I knew removing those checks from "channel created" and "query created"
+signals broke something :) -window option to /JOIN and /QUERY. This
+time don't check for any item with same server/name, but check that the
+item itself doesn't have window set yet.
+
+------------------------------------------------------------------------
+r1325 | cras | 2001-03-03 21:51:57 +0000 (Sat, 03 Mar 2001) | 4 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-channels.c
+   M /irssi/trunk/src/fe-common/core/fe-queries.c
+   M /irssi/trunk/src/fe-common/core/module-formats.c
+   M /irssi/trunk/src/fe-common/core/module-formats.h
+
+/JOIN #channel and /QUERY nick won't anymore automatically move
+channel/query to active window but send a notice to user how to move
+it.
+
+------------------------------------------------------------------------
+r1324 | cras | 2001-03-03 21:34:06 +0000 (Sat, 03 Mar 2001) | 4 lines
+Changed paths:
+   M /irssi/trunk/src/core/special-vars.c
+   M /irssi/trunk/src/core/special-vars.h
+   M /irssi/trunk/src/fe-text/gui-windows.c
+
+/SET prompt - if target had %c or something in it, it shouldn't be
+treated as color code. So color codes can now be used in /SET prompt
+string itself, but in none of the $variables it uses.
+
+------------------------------------------------------------------------
+r1323 | cras | 2001-03-03 21:16:40 +0000 (Sat, 03 Mar 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/themes.c
+
+Always save theme to ~/.irssi/ no matter where it was read from.
+
+------------------------------------------------------------------------
+r1322 | cras | 2001-03-03 21:11:43 +0000 (Sat, 03 Mar 2001) | 7 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-windows.c
+
+window_set_active() doesn't anymore send "window changed" signal if
+window is being set to NULL.
+
+Restoring /LAYOUT SAVEd split windows crashed at startup because of
+this. Maybe it shouldn't change the window to NULL? Well, at least I
+got it to work at all... :)
+
+------------------------------------------------------------------------
+r1321 | cras | 2001-03-03 21:01:36 +0000 (Sat, 03 Mar 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/configure.in
+
+HPUX 10.20 needs -D_XOPEN_SOURCE_EXTENDED
+
+------------------------------------------------------------------------
+r1320 | cras | 2001-03-03 21:01:18 +0000 (Sat, 03 Mar 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/core/misc.c
+
+Make sure there's always at least one column even if there's items
+wider than max. width allows.
+
+------------------------------------------------------------------------
+r1319 | cras | 2001-03-03 20:55:06 +0000 (Sat, 03 Mar 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/core/ignore.c
+   M /irssi/trunk/src/core/ignore.h
+   M /irssi/trunk/src/fe-common/core/fe-ignore.c
+
+ignore_get_key() moved to fe-common, fixed printing "*" ignore key.
+Doesn't print unignore messages when /RELOADing config.
+
+------------------------------------------------------------------------
+r1318 | cras | 2001-03-03 20:48:23 +0000 (Sat, 03 Mar 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/docs/help/in/ban.in
+   D /irssi/trunk/docs/help/in/bantype.in
+   M /irssi/trunk/docs/help/in/knockout.in
+   M /irssi/trunk/src/fe-common/irc/fe-events.c
+   M /irssi/trunk/src/irc/core/bans.c
+   M /irssi/trunk/src/irc/core/bans.h
+   M /irssi/trunk/src/irc/core/irc-commands.c
+   M /irssi/trunk/src/irc/core/irc-masks.c
+   M /irssi/trunk/src/perl/irc/Modes.xs
+
+/BANTYPE -> /SET ban_type. /BAN: -type option added to override default
+ban type.
+
+------------------------------------------------------------------------
+r1317 | cras | 2001-03-03 19:56:11 +0000 (Sat, 03 Mar 2001) | 7 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-channels.c
+   M /irssi/trunk/src/fe-common/core/fe-queries.c
+
+"channel created", "query created" .. don't abort adding window item
+even if there already exists another with same name. not sure if this
+breaks something but at least doing that breaks some things, like
+/join #a and /query #a after that :)
+
+}CVS: ----------------------------------------------------------------------
+
+------------------------------------------------------------------------
+r1316 | cras | 2001-03-03 19:48:28 +0000 (Sat, 03 Mar 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/docs/help/in/alias.in
+
+updated
+
+------------------------------------------------------------------------
+r1315 | cras | 2001-03-03 18:40:50 +0000 (Sat, 03 Mar 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/dcc/fe-dcc-chat.c
+
+DCC actions have now ACTIONS level as well as the DCCMSGS.
+
+------------------------------------------------------------------------
+r1314 | cras | 2001-03-03 18:40:25 +0000 (Sat, 03 Mar 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-common-core.c
+
+HILIGHT level didn't work with logs.
+
+------------------------------------------------------------------------
+r1313 | cras | 2001-03-03 18:30:21 +0000 (Sat, 03 Mar 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-common-core.c
+   M /irssi/trunk/src/fe-common/core/formats.h
+   M /irssi/trunk/src/fe-common/core/printtext.c
+
+/SET beep_when_window_active + some cleanups
+
+------------------------------------------------------------------------
+r1312 | cras | 2001-03-03 18:22:09 +0000 (Sat, 03 Mar 2001) | 6 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-core-commands.c
+   M /irssi/trunk/src/fe-common/core/formats.c
+   M /irssi/trunk/src/fe-common/core/formats.h
+   M /irssi/trunk/src/fe-common/core/printtext.c
+   M /irssi/trunk/src/fe-common/core/printtext.h
+   M /irssi/trunk/src/fe-text/gui-printtext.c
+   M /irssi/trunk/src/fe-text/gui-windows.c
+
+Removed all beep handling from text printing. If you want to beep just
+send "beep" signal.
+
+/LAST -clear crashed if window contained only lastlog lines. Some other
+minor cleanups.
+
+------------------------------------------------------------------------
+r1311 | cras | 2001-03-03 18:04:10 +0000 (Sat, 03 Mar 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/gui-entry.c
+   M /irssi/trunk/src/fe-text/gui-entry.h
+   M /irssi/trunk/src/fe-text/gui-readline.c
+
+delete_next_word key implemented, patch by Tinuk
+
+------------------------------------------------------------------------
+r1310 | cras | 2001-03-03 17:45:35 +0000 (Sat, 03 Mar 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/gui-windows.c
+   M /irssi/trunk/src/fe-text/gui-windows.h
+   M /irssi/trunk/src/fe-text/lastlog.c
+   M /irssi/trunk/src/fe-text/module-formats.c
+   M /irssi/trunk/src/fe-text/module-formats.h
+
+/LASTLOG: -case option for case-sensitive matches. -force option is now
+required to print lastlogs longer than 1000 lines.
+
+------------------------------------------------------------------------
+r1309 | cras | 2001-03-03 17:34:35 +0000 (Sat, 03 Mar 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/misc.c
+   M /irssi/trunk/src/core/misc.h
+
+Added strstr_full() and strstr_full_case()
+
+------------------------------------------------------------------------
+r1308 | cras | 2001-03-03 17:18:17 +0000 (Sat, 03 Mar 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/perl/Makefile.am
+
+make -> $(MAKE)
+
+------------------------------------------------------------------------
+r1307 | cras | 2001-03-03 16:14:28 +0000 (Sat, 03 Mar 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-settings.c
+
+/SET -clear didn't work with booleans
+
+------------------------------------------------------------------------
+r1306 | cras | 2001-03-03 15:19:33 +0000 (Sat, 03 Mar 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/configure.in
+
+cvs version = .99pre
+
+------------------------------------------------------------------------
+r1305 | cras | 2001-03-02 18:20:54 +0000 (Fri, 02 Mar 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/dcc/module-formats.c
+
+kb -> kB
+
+------------------------------------------------------------------------
+r1304 | cras | 2001-02-28 19:26:21 +0000 (Wed, 28 Feb 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/dcc/dcc-autoget.c
+   M /irssi/trunk/src/irc/dcc/dcc-resume.c
+   M /irssi/trunk/src/irc/dcc/dcc-send.c
+   M /irssi/trunk/src/irc/dcc/dcc.c
+   M /irssi/trunk/src/irc/dcc/dcc.h
+
+fixed some signed/unsigned issues
+
+------------------------------------------------------------------------
+r1303 | cras | 2001-02-28 18:48:23 +0000 (Wed, 28 Feb 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/nicklist.c
+
+functions returning void shouldn't do return xx
+
+------------------------------------------------------------------------
+r1302 | cras | 2001-02-28 11:24:45 +0000 (Wed, 28 Feb 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/autogen.sh
+
+gettext -> gettextize check
+
+------------------------------------------------------------------------
+r1301 | cras | 2001-02-27 08:39:04 +0000 (Tue, 27 Feb 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/window-commands.c
+
+/WINDOW PREV -> /WINDOW PREVIOUS
+
+------------------------------------------------------------------------
+r1300 | cras | 2001-02-27 08:00:45 +0000 (Tue, 27 Feb 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/module-formats.c
+
+/WINDOW STICKY -> /WINDOW STICK
+
+------------------------------------------------------------------------
+r1299 | cras | 2001-02-23 12:08:53 +0000 (Fri, 23 Feb 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/core/nicklist.c
+
+nick_nfind(): gets stuck to endless loop if there's multiple identical
+nicks in channel.. Luckily this is no problem with IRC.
+
+------------------------------------------------------------------------
+r1298 | cras | 2001-02-23 11:37:12 +0000 (Fri, 23 Feb 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/nicklist.c
+
+crashfix
+
+------------------------------------------------------------------------
+r1297 | cras | 2001-02-23 10:46:39 +0000 (Fri, 23 Feb 2001) | 2 lines
+Changed paths:
+   A /irssi/trunk/docs/help/in/layout.in
+   D /irssi/trunk/docs/help/in/savewindows.in
+
+savewindows -> layout
+
+------------------------------------------------------------------------
+r1296 | cras | 2001-02-23 10:44:09 +0000 (Fri, 23 Feb 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/docs/startup-HOWTO.txt
+
+updated
+
+------------------------------------------------------------------------
+r1294 | cras | 2001-02-23 08:07:10 +0000 (Fri, 23 Feb 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/TODO
+   M /irssi/trunk/configure.in
+
+.98 final out
+
+------------------------------------------------------------------------
+r1293 | cras | 2001-02-23 05:55:51 +0000 (Fri, 23 Feb 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/network.h
+
+We should define AF_INET6, not PF_INET6..
+
+------------------------------------------------------------------------
+r1292 | cras | 2001-02-23 05:12:04 +0000 (Fri, 23 Feb 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/perl/common/Makefile.PL.in
+   M /irssi/trunk/src/perl/irc/Makefile.PL.in
+
+Fixed for building from objdir
+
+------------------------------------------------------------------------
+r1291 | cras | 2001-02-23 05:02:33 +0000 (Fri, 23 Feb 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/common.h
+
+#include "config.h", not "../config.h" so building from objdir works
+
+------------------------------------------------------------------------
+r1290 | cras | 2001-02-22 21:29:42 +0000 (Thu, 22 Feb 2001) | 4 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/fe-events-numeric.c
+
+Printing channel bans print them now with target parameter set, so with
+status window they get printed to channel window instead of status window.
+Same for End of b/e/I lists. A few other cleanups.
+
+------------------------------------------------------------------------
+r1289 | cras | 2001-02-22 20:51:26 +0000 (Thu, 22 Feb 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-help.c
+
+/HELP can now display help of non-commands if the file just exists in
+help directory
+
+------------------------------------------------------------------------
+r1288 | cras | 2001-02-22 20:49:57 +0000 (Thu, 22 Feb 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/docs/help/in/levels.in
+
+removed tabs
+
+------------------------------------------------------------------------
+r1287 | cras | 2001-02-22 20:39:35 +0000 (Thu, 22 Feb 2001) | 4 lines
+Changed paths:
+   M /irssi/trunk/configure.in
+   M /irssi/trunk/src/perl/Makefile.am
+   M /irssi/trunk/src/perl/perl.c
+
+Verify in configure that linking with perl's LDFLAGS actually works. If
+perl lib dir is set, add 'use lib "/perl/lib/dir"' before each script
+automatically.
+
+------------------------------------------------------------------------
+r1286 | cras | 2001-02-22 10:52:29 +0000 (Thu, 22 Feb 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/hilight-text.c
+
+Word highlighting was buggy
+
+------------------------------------------------------------------------
+r1285 | cras | 2001-02-22 10:52:01 +0000 (Thu, 22 Feb 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/flood/autoignore.c
+
+/SET autoignore_levels -> autoignore_level. Fixed a memory leak.
+
+------------------------------------------------------------------------
+r1284 | cras | 2001-02-22 09:03:30 +0000 (Thu, 22 Feb 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/perl/irc/Irc.xs
+   M /irssi/trunk/src/perl/irc/module.h
+   M /irssi/trunk/src/perl/irc/typemap
+
+Removed AUTOIGNORE_REC since it doesn't exist anyremo
+
+------------------------------------------------------------------------
+r1283 | cras | 2001-02-22 08:54:36 +0000 (Thu, 22 Feb 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/NEWS
+   M /irssi/trunk/TODO
+   M /irssi/trunk/configure.in
+   M /irssi/trunk/po/de.po
+   M /irssi/trunk/po/fr.po
+   M /irssi/trunk/po/pl.po
+   M /irssi/trunk/po/pt_BR.po
+   M /irssi/trunk/po/sv.po
+
+Getting ready for 0.7.98
+
+------------------------------------------------------------------------
+r1282 | cras | 2001-02-22 08:35:53 +0000 (Thu, 22 Feb 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/formats.c
+   M /irssi/trunk/src/fe-common/core/hilight-text.c
+
+strip_real_length(): initialize last_color_pos and last_color_len to
+-1. Word hilighting crashed if there was no colors set in the line..
+
+------------------------------------------------------------------------
+r1281 | cras | 2001-02-22 06:09:48 +0000 (Thu, 22 Feb 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/ignore.c
+   M /irssi/trunk/src/core/ignore.h
+   M /irssi/trunk/src/fe-common/core/fe-ignore.c
+   M /irssi/trunk/src/fe-common/irc/flood/fe-flood.c
+   M /irssi/trunk/src/fe-common/irc/flood/module-formats.c
+   M /irssi/trunk/src/irc/flood/autoignore.c
+   M /irssi/trunk/src/irc/flood/autoignore.h
+   M /irssi/trunk/src/irc/flood/flood.c
+
+Autoignore fixes by fuchs (not tested, hope it works ;)
+
+------------------------------------------------------------------------
+r1280 | cras | 2001-02-22 05:49:30 +0000 (Thu, 22 Feb 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-channels.c
+   M /irssi/trunk/src/fe-common/core/window-items.c
+
+Make a temporary window bind if you get kicked from channel. Never
+allow any window items to go to windows with sticky binds.
+
+------------------------------------------------------------------------
+r1279 | cras | 2001-02-22 05:19:11 +0000 (Thu, 22 Feb 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/irc-chatnets.c
+
+/IRCNET ADD didn't work
+
+------------------------------------------------------------------------
+r1278 | cras | 2001-02-21 19:19:24 +0000 (Wed, 21 Feb 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/Makefile.am
+   M /irssi/trunk/src/fe-common/core/fe-common-core.c
+   M /irssi/trunk/src/fe-common/core/formats.c
+   M /irssi/trunk/src/fe-common/core/module-formats.c
+   M /irssi/trunk/src/fe-common/core/module-formats.h
+   M /irssi/trunk/src/fe-common/core/window-commands.c
+   D /irssi/trunk/src/fe-common/core/window-save.c
+   D /irssi/trunk/src/fe-common/core/window-save.h
+   A /irssi/trunk/src/fe-common/core/windows-layout.c
+   A /irssi/trunk/src/fe-common/core/windows-layout.h
+
+/SAVEWINDOWS -> /LAYOUT SAVE. Added /LAYOUT RESET. Initialize GLib log
+-> Irssi windows _after_ windows are created..
+
+------------------------------------------------------------------------
+r1277 | cras | 2001-02-21 19:00:07 +0000 (Wed, 21 Feb 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/gui-entry.c
+
+Entry line works now properly with very long prompts
+
+------------------------------------------------------------------------
+r1276 | cras | 2001-02-21 18:41:45 +0000 (Wed, 21 Feb 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/chat-commands.c
+   M /irssi/trunk/src/fe-common/core/window-commands.c
+
+/FOREACH server|channel|query|window <command>
+
+------------------------------------------------------------------------
+r1275 | cras | 2001-02-21 18:32:15 +0000 (Wed, 21 Feb 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/fe-events-numeric.c
+   M /irssi/trunk/src/fe-common/irc/module-formats.c
+   M /irssi/trunk/src/fe-common/irc/module-formats.h
+
+Support for several unrealircd WHOIS replies, patch by Mark Glines
+<paranoid@deathsdoor.com>
+
+------------------------------------------------------------------------
+r1274 | cras | 2001-02-21 05:11:26 +0000 (Wed, 21 Feb 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/dcc/dcc-chat.c
+
+DCC CTCP replies weren't handled properly
+
+------------------------------------------------------------------------
+r1273 | cras | 2001-02-21 04:21:15 +0000 (Wed, 21 Feb 2001) | 4 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/formats.c
+   M /irssi/trunk/src/fe-common/core/formats.h
+   M /irssi/trunk/src/fe-common/core/printtext.c
+   M /irssi/trunk/src/fe-common/core/printtext.h
+   M /irssi/trunk/src/fe-text/gui-entry.c
+   M /irssi/trunk/src/fe-text/gui-printtext.c
+   M /irssi/trunk/src/fe-text/gui-printtext.h
+   M /irssi/trunk/src/fe-text/statusbar-items.c
+
+added format_get_length() for getting length of text part in a format
+string. gui_printtext() now works like printtext_string() so %s won't
+accidentally crash it. /SET prompt can now have %formats.
+
+------------------------------------------------------------------------
+r1272 | cras | 2001-02-21 04:00:25 +0000 (Wed, 21 Feb 2001) | 2 lines
+Changed paths:
+   A /irssi/trunk/docs/help/in/levels.in
+   M /irssi/trunk/docs/help/in/mode.in
+
+updated
+
+------------------------------------------------------------------------
+r1271 | cras | 2001-02-21 03:52:05 +0000 (Wed, 21 Feb 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/docs/help/in/log.in
+
+added -<server tag> description
+
+------------------------------------------------------------------------
+r1270 | cras | 2001-02-21 03:46:27 +0000 (Wed, 21 Feb 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/network.h
+
+Define AF_INET6 if it isn't already defined
+
+------------------------------------------------------------------------
+r1269 | cras | 2001-02-21 03:43:31 +0000 (Wed, 21 Feb 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/configure.in
+
+Changed some s/// to use perl instead of sed since they didn't work
+with all seds.
+
+------------------------------------------------------------------------
+r1268 | cras | 2001-02-20 16:23:28 +0000 (Tue, 20 Feb 2001) | 6 lines
+Changed paths:
+   M /irssi/trunk/src/core/network.c
+   M /irssi/trunk/src/core/network.h
+   M /irssi/trunk/src/core/server-setup-rec.h
+   M /irssi/trunk/src/core/servers-setup.c
+   M /irssi/trunk/src/core/servers.c
+   M /irssi/trunk/src/fe-common/core/fe-server.c
+
+/SET resolve_prefer_ipv6 - should we prefer IPv6 or IPv4 addresses in
+host name resolving. /SERVER ADD: added options -4 and -6. Fixed crash
+at startup if server didn't have chat network set. "Connecting to xxx
+[ip]" is now displayed before calling connect(), so if it fails we'll
+still get the IP it's trying to connect to.
+
+------------------------------------------------------------------------
+r1267 | cras | 2001-02-20 02:37:01 +0000 (Tue, 20 Feb 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/perl/irc/Dcc.xs
+   M /irssi/trunk/src/perl/irc/Irc.xs
+   M /irssi/trunk/src/perl/irc/module.h
+   M /irssi/trunk/src/perl/irc/typemap
+   M /irssi/trunk/src/perl/perl-common.c
+
+DCC updates
+
+------------------------------------------------------------------------
+r1266 | cras | 2001-02-20 01:54:14 +0000 (Tue, 20 Feb 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/core/settings.c
+   M /irssi/trunk/src/fe-common/core/fe-log.c
+   M /irssi/trunk/src/fe-common/core/themes.c
+
+Errors reading/writing config and theme files are now handled properly
+and printed to screen
+
+------------------------------------------------------------------------
+r1265 | cras | 2001-02-20 01:12:47 +0000 (Tue, 20 Feb 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/module-formats.c
+   M /irssi/trunk/src/fe-common/core/module-formats.h
+   M /irssi/trunk/src/fe-common/core/themes.c
+   M /irssi/trunk/src/fe-common/core/themes.h
+   M /irssi/trunk/src/fe-common/core/window-commands.c
+
+Reload theme after /SET theme if it was modified.
+
+------------------------------------------------------------------------
+r1264 | cras | 2001-02-20 00:48:30 +0000 (Tue, 20 Feb 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/perl/xsinit.c
+
+my_perl fix
+
+------------------------------------------------------------------------
+r1263 | cras | 2001-02-20 00:33:51 +0000 (Tue, 20 Feb 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-messages.c
+
+multi identical nick fixes
+
+------------------------------------------------------------------------
+r1262 | cras | 2001-02-19 14:55:42 +0000 (Mon, 19 Feb 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/docs/signals.txt
+   M /irssi/trunk/src/fe-text/gui-printtext.c
+
+Instead of directly calling beep(), send "beep" signal which default
+behaviour is to call beep()
+
+------------------------------------------------------------------------
+r1261 | cras | 2001-02-19 14:50:53 +0000 (Mon, 19 Feb 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-server.c
+   M /irssi/trunk/src/fe-common/core/module-formats.c
+   M /irssi/trunk/src/fe-common/core/module-formats.h
+
+/SERVER: if there's no servers, print "Not connected to any servers"
+instead of just being quiet.
+
+------------------------------------------------------------------------
+r1260 | cras | 2001-02-19 12:10:36 +0000 (Mon, 19 Feb 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/levels.c
+
+level_get() check wasn't case-insensitive
+
+------------------------------------------------------------------------
+r1259 | cras | 2001-02-19 07:16:32 +0000 (Mon, 19 Feb 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-settings.c
+
+/TOGGLE without parameters now complains not having enough parameters..
+
+------------------------------------------------------------------------
+r1258 | cras | 2001-02-19 06:37:44 +0000 (Mon, 19 Feb 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/perl/common/Server.xs
+
+updated
+
+------------------------------------------------------------------------
+r1257 | cras | 2001-02-19 06:28:02 +0000 (Mon, 19 Feb 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/docs/signals.txt
+
+added "chat protocol xxx" signals
+
+------------------------------------------------------------------------
+r1256 | cras | 2001-02-19 06:27:24 +0000 (Mon, 19 Feb 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/docs/help/in/lastlog.in
+   M /irssi/trunk/src/fe-text/lastlog.c
+
+/LASTLOG syntax updated
+
+------------------------------------------------------------------------
+r1255 | cras | 2001-02-19 06:23:04 +0000 (Mon, 19 Feb 2001) | 5 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/Makefile.am
+   M /irssi/trunk/src/fe-text/gui-printtext.c
+   M /irssi/trunk/src/fe-text/gui-printtext.h
+   M /irssi/trunk/src/fe-text/gui-textwidget.c
+   M /irssi/trunk/src/fe-text/gui-windows.c
+   M /irssi/trunk/src/fe-text/gui-windows.h
+   M /irssi/trunk/src/fe-text/irssi.c
+   A /irssi/trunk/src/fe-text/lastlog.c
+
+Moved /LASTLOG handling to lastlog.c. Added options -file <filename>
+for writing lastlog to file, -window <ref#|name> for specifying which
+window's lastlog to print (output is always to active window) and
+-clear option to remove all lastlog lines from window.
+
+------------------------------------------------------------------------
+r1254 | cras | 2001-02-19 05:03:42 +0000 (Mon, 19 Feb 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/levels.h
+
+level_get() prototype was missing.
+
+------------------------------------------------------------------------
+r1253 | cras | 2001-02-19 04:50:58 +0000 (Mon, 19 Feb 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/servers-reconnect.c
+
+/RECONNECT ALL - reconnects to all servers in reconnection queue
+
+------------------------------------------------------------------------
+r1252 | cras | 2001-02-19 04:44:15 +0000 (Mon, 19 Feb 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/Makefile.am
+   M /irssi/trunk/src/fe-common/core/fe-common-core.c
+   M /irssi/trunk/src/fe-common/core/fe-core-commands.c
+   A /irssi/trunk/src/fe-common/core/fe-help.c
+
+Moved /HELP to fe-help.c
+
+------------------------------------------------------------------------
+r1251 | cras | 2001-02-19 04:33:39 +0000 (Mon, 19 Feb 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/fe-netsplit.c
+   M /irssi/trunk/src/fe-text/gui-windows.c
+
+/NETSPLIT prints nicks now sorted and prints @ or + before channel if
+user was opped/voiced before split.
+
+------------------------------------------------------------------------
+r1250 | cras | 2001-02-19 03:40:06 +0000 (Mon, 19 Feb 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/irc/dcc/dcc-chat.c
+   M /irssi/trunk/src/irc/dcc/dcc-chat.h
+   M /irssi/trunk/src/irc/dcc/dcc-get.c
+   M /irssi/trunk/src/irc/dcc/dcc-rec.h
+   M /irssi/trunk/src/irc/dcc/dcc-send.c
+   M /irssi/trunk/src/irc/dcc/dcc-send.h
+   M /irssi/trunk/src/irc/dcc/dcc.c
+
+Removed /SET dcc_block_size and /SET dcc_fast_send - fast send is now
+always used and dcc_block_size is useless with it.
+
+------------------------------------------------------------------------
+r1249 | cras | 2001-02-19 03:25:24 +0000 (Mon, 19 Feb 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/core/window-item-rec.h
+   M /irssi/trunk/src/fe-common/core/fe-windows.h
+   M /irssi/trunk/src/fe-common/core/formats.c
+   M /irssi/trunk/src/fe-common/core/formats.h
+   M /irssi/trunk/src/fe-common/core/hilight-text.c
+   M /irssi/trunk/src/fe-common/core/window-activity.c
+   M /irssi/trunk/src/fe-text/statusbar-items.c
+
+Highlight colors can now have background color set with fg,bg. Works
+with activity list too, useful for example blinking.
+
+------------------------------------------------------------------------
+r1248 | cras | 2001-02-19 02:50:08 +0000 (Mon, 19 Feb 2001) | 6 lines
+Changed paths:
+   M /irssi/trunk/src/core/chat-commands.c
+   M /irssi/trunk/src/core/chat-protocols.c
+   M /irssi/trunk/src/core/chat-protocols.h
+   M /irssi/trunk/src/fe-common/core/fe-common-core.c
+   M /irssi/trunk/src/fe-common/core/fe-server.c
+   M /irssi/trunk/src/fe-common/core/module-formats.c
+   M /irssi/trunk/src/fe-common/core/module-formats.h
+   M /irssi/trunk/src/fe-common/irc/fe-common-irc.c
+   M /irssi/trunk/src/fe-common/irc/fe-common-irc.h
+   M /irssi/trunk/src/fe-text/irssi.c
+
+Moved autoconnects and command line parameter parsing from irc to core.
+
+Added not_initialized parameter to chat protocols that are created
+using chat_protocol_get_unknown(). /CONNECT doesn't crash now with
+non-initialized protocols but instead complains about them.
+
+------------------------------------------------------------------------
+r1247 | cras | 2001-02-19 02:27:10 +0000 (Mon, 19 Feb 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/servers-reconnect.c
+
+/RECONNECT reconnects now to server with identical settings.
+
+------------------------------------------------------------------------
+r1246 | cras | 2001-02-19 02:26:32 +0000 (Mon, 19 Feb 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-windows.c
+
+window_bind_remove_unsticky(): crashfix
+
+------------------------------------------------------------------------
+r1245 | cras | 2001-02-19 02:15:15 +0000 (Mon, 19 Feb 2001) | 6 lines
+Changed paths:
+   M /irssi/trunk/src/core/chat-commands.c
+   M /irssi/trunk/src/core/chat-protocols.c
+   M /irssi/trunk/src/core/server-connect-rec.h
+   M /irssi/trunk/src/core/servers-reconnect.c
+   M /irssi/trunk/src/core/servers-reconnect.h
+   M /irssi/trunk/src/core/servers-setup.c
+   M /irssi/trunk/src/core/servers.c
+   M /irssi/trunk/src/core/servers.h
+   M /irssi/trunk/src/irc/core/irc-commands.c
+   M /irssi/trunk/src/irc/core/irc-servers-reconnect.c
+   M /irssi/trunk/src/irc/core/irc-servers.c
+   M /irssi/trunk/src/irc/core/irc-servers.h
+
+Connection updates: moved /SERVER and /CONNECT to core from irc.
+Several other related multiprotocol updates.
+
+Removed /SILCSERVER from SILC, /CONNECT and /SERVER should work
+properly now. Rejoining channels after reconnection works.
+
+------------------------------------------------------------------------
+r1244 | cras | 2001-02-19 02:13:02 +0000 (Mon, 19 Feb 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/core/net-nonblock.c
+
+If reading host answer from pipe failed, set the error message to
+"Host name lookup: g_strerror(errno)"
+
+------------------------------------------------------------------------
+r1243 | cras | 2001-02-19 02:12:06 +0000 (Mon, 19 Feb 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/core/net-disconnect.c
+
+When reading data from socket, read max. 5kB at a time so we won't get
+stuck if socket just keeps sending more and more data.
+
+------------------------------------------------------------------------
+r1242 | cras | 2001-02-18 23:40:18 +0000 (Sun, 18 Feb 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/core/chat-protocols.c
+
+chat_protocol_register() didn't work properly when the chat protocol
+was already registered.
+
+------------------------------------------------------------------------
+r1241 | cras | 2001-02-18 22:46:25 +0000 (Sun, 18 Feb 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/nicklist.c
+   M /irssi/trunk/src/core/nicklist.h
+   M /irssi/trunk/src/fe-common/core/fe-messages.c
+   M /irssi/trunk/src/irc/core/irc-nicklist.c
+
+Support for multiple identical nicknames.
+
+------------------------------------------------------------------------
+r1240 | cras | 2001-02-18 20:32:22 +0000 (Sun, 18 Feb 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/perl/common/Channel.xs
+   M /irssi/trunk/src/perl/common/Log.xs
+   M /irssi/trunk/src/perl/common/Query.xs
+   M /irssi/trunk/src/perl/common/Server.xs
+
+updates for latest changes
+
+------------------------------------------------------------------------
+r1239 | cras | 2001-02-18 00:11:23 +0000 (Sun, 18 Feb 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/log.c
+
+crashfix
+
+------------------------------------------------------------------------
+r1238 | cras | 2001-02-17 21:46:35 +0000 (Sat, 17 Feb 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/nick-rec.h
+   M /irssi/trunk/src/core/nicklist.c
+   M /irssi/trunk/src/core/nicklist.h
+
+Support for multiple identically named nicks.
+
+------------------------------------------------------------------------
+r1237 | cras | 2001-02-17 19:44:22 +0000 (Sat, 17 Feb 2001) | 4 lines
+Changed paths:
+   M /irssi/trunk/config
+   M /irssi/trunk/src/core/Makefile.am
+   A /irssi/trunk/src/core/channel-setup-rec.h
+   M /irssi/trunk/src/core/channels-setup.c
+   M /irssi/trunk/src/core/channels-setup.h
+   M /irssi/trunk/src/core/channels.c
+   M /irssi/trunk/src/core/channels.h
+   M /irssi/trunk/src/core/chat-protocols.c
+   M /irssi/trunk/src/core/chat-protocols.h
+   M /irssi/trunk/src/core/chatnets.c
+   M /irssi/trunk/src/core/chatnets.h
+   M /irssi/trunk/src/core/log.c
+   M /irssi/trunk/src/core/log.h
+   M /irssi/trunk/src/core/queries.c
+   M /irssi/trunk/src/core/queries.h
+   M /irssi/trunk/src/core/servers-setup.c
+   M /irssi/trunk/src/core/servers-setup.h
+   M /irssi/trunk/src/core/servers.c
+   M /irssi/trunk/src/fe-common/core/fe-channels.c
+   M /irssi/trunk/src/fe-common/core/fe-common-core.c
+   M /irssi/trunk/src/fe-common/core/fe-log.c
+   M /irssi/trunk/src/fe-common/core/fe-queries.c
+   M /irssi/trunk/src/fe-common/core/fe-server.c
+   M /irssi/trunk/src/fe-common/core/module-formats.c
+   M /irssi/trunk/src/fe-common/core/module-formats.h
+   M /irssi/trunk/src/fe-common/core/window-save.c
+   M /irssi/trunk/src/fe-common/irc/fe-irc-server.c
+   M /irssi/trunk/src/fe-common/irc/fe-ircnet.c
+   M /irssi/trunk/src/irc/core/irc-channels.c
+   M /irssi/trunk/src/irc/core/irc-chatnets.c
+   M /irssi/trunk/src/irc/core/irc-commands.c
+   M /irssi/trunk/src/irc/core/irc-core.c
+   M /irssi/trunk/src/irc/core/irc-queries.c
+   M /irssi/trunk/src/irc/core/irc-servers-setup.c
+   M /irssi/trunk/src/irc/core/irc-servers.c
+
+Config file: ircnets -> chatnets, added type = "chat protocol" to
+chatnet config. Moved reading chatnets to core. Lots of other
+multiprotocol updates.
+
+------------------------------------------------------------------------
+r1236 | cras | 2001-02-17 12:23:18 +0000 (Sat, 17 Feb 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/perl/common/Log.xs
+   M /irssi/trunk/src/perl/perl-signals.c
+
+Irssi::command_bind(): Don't run the command twice. Log updated for
+log_write_rec()
+
+------------------------------------------------------------------------
+r1235 | cras | 2001-02-17 12:08:31 +0000 (Sat, 17 Feb 2001) | 4 lines
+Changed paths:
+   M /irssi/trunk/src/core/log.c
+   M /irssi/trunk/src/core/log.h
+   M /irssi/trunk/src/fe-common/core/fe-log.c
+
+log_write_rec(): added level parameter. writing /LASTLOG to log files
+doesn't anymore print the current timestamp at the start of line since
+/LASTLOG messages have their original timestamp already.
+
+------------------------------------------------------------------------
+r1234 | cras | 2001-02-17 11:33:12 +0000 (Sat, 17 Feb 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/perl/perl-common.c
+   M /irssi/trunk/src/perl/perl-fe.c
+
+Moved fe stuff from perl-common to perl-fe.
+
+------------------------------------------------------------------------
+r1233 | cras | 2001-02-17 11:09:14 +0000 (Sat, 17 Feb 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/configure.in
+
+Yet another perl fix
+
+------------------------------------------------------------------------
+r1232 | cras | 2001-02-17 11:05:29 +0000 (Sat, 17 Feb 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/configure.in
+   M /irssi/trunk/src/fe-none/Makefile.am
+   M /irssi/trunk/src/fe-text/Makefile.am
+
+more static perl fixes
+
+------------------------------------------------------------------------
+r1231 | cras | 2001-02-17 10:58:53 +0000 (Sat, 17 Feb 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/configure.in
+
+"conftest" binary wasn't removed
+
+------------------------------------------------------------------------
+r1230 | cras | 2001-02-17 10:56:29 +0000 (Sat, 17 Feb 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/configure.in
+
+static perl fixes
+
+------------------------------------------------------------------------
+r1229 | cras | 2001-02-17 10:44:06 +0000 (Sat, 17 Feb 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/configure.in
+
+Removed .libs/ dir check, it should always be there anyway.
+
+------------------------------------------------------------------------
+r1228 | cras | 2001-02-17 10:35:35 +0000 (Sat, 17 Feb 2001) | 7 lines
+Changed paths:
+   M /irssi/trunk/configure.in
+   M /irssi/trunk/src/core/modules.c
+   M /irssi/trunk/src/core/modules.h
+   M /irssi/trunk/src/fe-common/core/fe-modules.c
+   M /irssi/trunk/src/fe-common/irc/dcc/Makefile.am
+   M /irssi/trunk/src/fe-common/irc/flood/Makefile.am
+   M /irssi/trunk/src/fe-common/irc/notifylist/Makefile.am
+   M /irssi/trunk/src/fe-none/irssi.c
+   M /irssi/trunk/src/fe-text/irssi.c
+   M /irssi/trunk/src/perl/Makefile.am
+   M /irssi/trunk/src/perl/module.h
+   M /irssi/trunk/src/perl/perl-common.c
+   M /irssi/trunk/src/perl/perl-common.h
+   A /irssi/trunk/src/perl/perl-fe.c
+   M /irssi/trunk/src/perl/perl.c
+
+/LOAD module tries to load "module_core" instead. If it wasn't found,
+it fallbacks to "module" again. If it is found, it tries to load several
+other modules too, like irc_module, fe_module and fe_irc_module.
+
+Split perl module to perl_core and fe_perl. Removed "_common" from some
+fe_common modules.
+
+------------------------------------------------------------------------
+r1227 | cras | 2001-02-17 10:31:26 +0000 (Sat, 17 Feb 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/docs/signals.txt
+
+exec signals updated
+
+------------------------------------------------------------------------
+r1226 | cras | 2001-02-17 10:31:01 +0000 (Sat, 17 Feb 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/default.theme
+
+typo fix
+
+------------------------------------------------------------------------
+r1225 | cras | 2001-02-17 10:30:39 +0000 (Sat, 17 Feb 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/po
+   M /irssi/trunk/po/.cvsignore
+
+added POTFILES.in
+
+------------------------------------------------------------------------
+r1224 | cras | 2001-02-17 10:30:06 +0000 (Sat, 17 Feb 2001) | 2 lines
+Changed paths:
+   A /irssi/trunk/docs/help/in/bind.in
+
+added
+
+------------------------------------------------------------------------
+r1223 | cras | 2001-02-17 10:26:59 +0000 (Sat, 17 Feb 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/memdebug.h
+
+ig_module_build_path() prototype was missing..
+
+------------------------------------------------------------------------
+r1222 | cras | 2001-02-17 10:09:49 +0000 (Sat, 17 Feb 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/memdebug.c
+   M /irssi/trunk/src/core/memdebug.h
+
+added g_module_build_path()
+
+------------------------------------------------------------------------
+r1221 | cras | 2001-02-17 07:16:58 +0000 (Sat, 17 Feb 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/configure.in
+
+Dynamic module check: don't use -module option with libtool.
+
+------------------------------------------------------------------------
+r1220 | cras | 2001-02-16 20:49:45 +0000 (Fri, 16 Feb 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/dcc/Makefile.am
+
+added fe-dcc.h
+
+------------------------------------------------------------------------
+r1219 | cras | 2001-02-16 20:21:18 +0000 (Fri, 16 Feb 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/core/log.c
+
+If log file locking fails, check that it failed because file was
+locked, not because filesystem doesn't know locks or some other reason.
+
+------------------------------------------------------------------------
+r1218 | cras | 2001-02-16 16:07:35 +0000 (Fri, 16 Feb 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/Makefile.am
+
+added fe-exec.h
+
+------------------------------------------------------------------------
+r1217 | cras | 2001-02-15 01:46:47 +0000 (Thu, 15 Feb 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/docs/formats.txt
+
+specify that ctrl-c uses _mirc_ color codes
+
+------------------------------------------------------------------------
+r1216 | cras | 2001-02-15 00:05:22 +0000 (Thu, 15 Feb 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/perl/Makefile.am
+
+Perl 5.6 wants PREFIX=xx, not LIB=xx when default isn't used
+
+------------------------------------------------------------------------
+r1215 | cras | 2001-02-14 23:44:34 +0000 (Wed, 14 Feb 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/perl/xsinit.c
+
+#include "perl-common.h" to define my_perl
+
+------------------------------------------------------------------------
+r1214 | cras | 2001-02-14 23:28:43 +0000 (Wed, 14 Feb 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/docs/help/in/exec.in
+
+-interactive help
+
+------------------------------------------------------------------------
+r1213 | cras | 2001-02-14 22:06:47 +0000 (Wed, 14 Feb 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/perl/perl-common.h
+   M /irssi/trunk/src/perl/perl.c
+
+irssi_perl_interp -> my_perl and made it non-static. should help compiling
+with some weird perl implementations.
+
+------------------------------------------------------------------------
+r1212 | cras | 2001-02-13 19:26:43 +0000 (Tue, 13 Feb 2001) | 4 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-exec.c
+   A /irssi/trunk/src/fe-common/core/fe-exec.h
+   M /irssi/trunk/src/perl/get-signals.pl
+   M /irssi/trunk/src/perl/perl-common.c
+
+Added PROCESS_REC to fe-exec.h and perl support for it. "exec new" and
+"exec remove" sends PROCESS_REC as first argument. Added "exec input"
+signal to perl.
+
+------------------------------------------------------------------------
+r1211 | cras | 2001-02-13 18:19:59 +0000 (Tue, 13 Feb 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/scripts/autoop.pl
+   M /irssi/trunk/scripts/clones.pl
+   M /irssi/trunk/scripts/hello.pl
+   M /irssi/trunk/scripts/mlock.pl
+   M /irssi/trunk/scripts/quitmsg.pl
+   M /irssi/trunk/scripts/realname.pl
+
+updated
+
+------------------------------------------------------------------------
+r1210 | cras | 2001-02-12 20:05:49 +0000 (Mon, 12 Feb 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/docs/startup-HOWTO.txt
+
++/SET autoclose_windows _OFF_, not ON.
+
+------------------------------------------------------------------------
+r1209 | cras | 2001-02-12 19:48:51 +0000 (Mon, 12 Feb 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/autogen.sh
+
+small updates
+
+------------------------------------------------------------------------
+r1208 | cras | 2001-02-12 16:31:33 +0000 (Mon, 12 Feb 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/perl/irc/Dcc.xs
+   M /irssi/trunk/src/perl/irc/Irc.xs
+
+Updates so that DCC stuff compiles again. Still missing DCC chat/get/send
+specific stuff.
+
+------------------------------------------------------------------------
+r1207 | cras | 2001-02-11 00:15:32 +0000 (Sun, 11 Feb 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-log.c
+
+Removed SYNTAX: LOG LIST - the commands is /LOG
+
+------------------------------------------------------------------------
+r1206 | cras | 2001-02-10 10:19:47 +0000 (Sat, 10 Feb 2001) | 4 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/themes.c
+   M /irssi/trunk/src/fe-common/core/themes.h
+   M /irssi/trunk/src/fe-text/gui-printtext.c
+   M /irssi/trunk/src/fe-text/screen.c
+
+theme->default_color is now used again, added default_bold_color which
+is used with default bolds since A_NORMAL|A_BOLD doesn't seem to do
+anything with curses..
+
+------------------------------------------------------------------------
+r1205 | cras | 2001-02-10 09:54:51 +0000 (Sat, 10 Feb 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-exec.c
+
+/EXEC -interactive: Creates a query-like window item. Text written to
+it is sent to executed process, like /EXEC -in.
+
+------------------------------------------------------------------------
+r1204 | cras | 2001-02-10 09:12:53 +0000 (Sat, 10 Feb 2001) | 5 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-channels.c
+   M /irssi/trunk/src/fe-common/core/fe-windows.c
+   M /irssi/trunk/src/fe-common/core/fe-windows.h
+   M /irssi/trunk/src/fe-common/core/window-items.c
+   M /irssi/trunk/src/fe-common/core/window-save.c
+
+Changed window->waiting_channels ("servertag name" format) to
+bound_items containing WINDOW_BIND_REC structures. If you now use
+/SAVEWINDOWS, the item will _always_ be restored to saved window even
+if there was already some other item.
+
+------------------------------------------------------------------------
+r1203 | cras | 2001-02-10 08:44:19 +0000 (Sat, 10 Feb 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/hilight-text.c
+
+/SET hilight_act_color - default color to use for highlighting in
+activity line
+
+------------------------------------------------------------------------
+r1202 | cras | 2001-02-10 07:26:54 +0000 (Sat, 10 Feb 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/Makefile.am
+   M /irssi/trunk/src/fe-text/irssi.c
+   A /irssi/trunk/src/fe-text/mainwindows-save.c
+   M /irssi/trunk/src/fe-text/mainwindows.c
+   M /irssi/trunk/src/fe-text/mainwindows.h
+
+/SAVEWINDOWS saves now split windows
+
+------------------------------------------------------------------------
+r1201 | cras | 2001-02-10 05:54:35 +0000 (Sat, 10 Feb 2001) | 9 lines
+Changed paths:
+   M /irssi/trunk/src/core/Makefile.am
+   M /irssi/trunk/src/core/core.c
+   M /irssi/trunk/src/core/log.c
+   M /irssi/trunk/src/core/rawlog.c
+   A /irssi/trunk/src/core/write-buffer.c
+   A /irssi/trunk/src/core/write-buffer.h
+
+Write buffer - logs and rawlogs write to files through this. By default
+everything gets written immediately, but you can make it wait until
+there's specified amount of data in buffer or write once in a hour or
+so. Useful for people who want to keep hard disk at sleep at nights but
+still want to log.
+
+/SET write_buffer_mins, /SET write_buffer_kb: When to flush buffer.
+/FLUSHBUFFER: Flush the buffer immediately
+
+------------------------------------------------------------------------
+r1200 | cras | 2001-02-10 05:34:46 +0000 (Sat, 10 Feb 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/gui-readline.c
+
+added descriptions for left_window and right_window
+
+------------------------------------------------------------------------
+r1199 | cras | 2001-02-10 04:54:09 +0000 (Sat, 10 Feb 2001) | 4 lines
+Changed paths:
+   M /irssi/trunk/src/core/misc.c
+   M /irssi/trunk/src/core/misc.h
+   M /irssi/trunk/src/fe-common/core/fe-channels.c
+   M /irssi/trunk/src/fe-common/core/fe-core-commands.c
+
+/SET names_max_columns, /SET names_max_width: Limit width of /NAMES list.
+
+Forced max. 6 columns limit to /HELP
+
+------------------------------------------------------------------------
+r1198 | cras | 2001-02-10 04:43:21 +0000 (Sat, 10 Feb 2001) | 10 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/gui-readline.c
+   M /irssi/trunk/src/fe-text/gui-windows.c
+   M /irssi/trunk/src/fe-text/mainwindows.c
+   M /irssi/trunk/src/fe-text/mainwindows.h
+   M /irssi/trunk/src/fe-text/module-formats.c
+   M /irssi/trunk/src/fe-text/module-formats.h
+
+/WINDOW STICK [ON|OFF|<ref#>] - stick window to specified main window.
+After setting window to sticky non-sticky windows can't replace the
+active sticky one. Each main window can have it's own sticky window
+group.
+
+/WINDOW LEFT, /WINDOW RIGHT - Go to previous/next window in the current
+sticky window group, or if there's no sticky windows go to
+previous/next non-sticky window. Alt-Left/Right keys default to these
+commands now.
+
+------------------------------------------------------------------------
+r1197 | cras | 2001-02-10 03:12:22 +0000 (Sat, 10 Feb 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/window-save.c
+
+sticky_refnum is now saved and restored
+
+------------------------------------------------------------------------
+r1196 | cras | 2001-02-10 03:10:30 +0000 (Sat, 10 Feb 2001) | 5 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-windows.c
+   M /irssi/trunk/src/fe-common/core/fe-windows.h
+   M /irssi/trunk/src/fe-common/core/module-formats.c
+   M /irssi/trunk/src/fe-common/core/module-formats.h
+   M /irssi/trunk/src/fe-common/core/window-commands.c
+   M /irssi/trunk/src/fe-common/core/window-save.c
+
+/WINDOW SERVER: added -sticky and -unsticky options. If window server
+is sticky, it will never be automatically changed, and it cannot be
+changed to anything else without -unsticky option. Should be useful for
+people who want status or msgs windows for each server.
+
+------------------------------------------------------------------------
+r1195 | cras | 2001-02-10 02:13:13 +0000 (Sat, 10 Feb 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/window-items.c
+
+window_item_set_active(): window->active_server was set wrong if there
+was multiple items in window from different servers.
+
+------------------------------------------------------------------------
+r1194 | cras | 2001-02-10 02:02:26 +0000 (Sat, 10 Feb 2001) | 6 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/dcc/Makefile.am
+   A /irssi/trunk/src/fe-common/irc/dcc/fe-dcc-chat.c
+   A /irssi/trunk/src/fe-common/irc/dcc/fe-dcc-get.c
+   A /irssi/trunk/src/fe-common/irc/dcc/fe-dcc-send.c
+   M /irssi/trunk/src/fe-common/irc/dcc/fe-dcc.c
+   A /irssi/trunk/src/fe-common/irc/dcc/fe-dcc.h
+   M /irssi/trunk/src/irc/dcc/Makefile.am
+   M /irssi/trunk/src/irc/dcc/dcc-autoget.c
+   M /irssi/trunk/src/irc/dcc/dcc-chat.c
+   M /irssi/trunk/src/irc/dcc/dcc-chat.h
+   A /irssi/trunk/src/irc/dcc/dcc-file-rec.h
+   A /irssi/trunk/src/irc/dcc/dcc-file.h
+   M /irssi/trunk/src/irc/dcc/dcc-get.c
+   M /irssi/trunk/src/irc/dcc/dcc-get.h
+   A /irssi/trunk/src/irc/dcc/dcc-rec.h
+   M /irssi/trunk/src/irc/dcc/dcc-resume.c
+   M /irssi/trunk/src/irc/dcc/dcc-send.c
+   A /irssi/trunk/src/irc/dcc/dcc-send.h
+   M /irssi/trunk/src/irc/dcc/dcc.c
+   M /irssi/trunk/src/irc/dcc/dcc.h
+
+DCC cleanups - split DCC_REC to CHAT|GET|SEND_DCC_RECs. Plugins should
+now be able to add whatever new DCC types.
+
+Nick changes affect DCC chats. /WHOIS without parameters works properly
+in DCC CHAT queries.
+
+------------------------------------------------------------------------
+r1193 | cras | 2001-02-09 22:00:51 +0000 (Fri, 09 Feb 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/default.theme
+   M /irssi/trunk/src/fe-common/core/Makefile.am
+   M /irssi/trunk/src/fe-common/core/chat-completion.c
+   A /irssi/trunk/src/fe-common/core/chat-completion.h
+   M /irssi/trunk/src/fe-common/irc/dcc/fe-dcc.c
+   M /irssi/trunk/src/fe-common/irc/dcc/module-formats.c
+   M /irssi/trunk/src/fe-common/irc/dcc/module-formats.h
+
+DCC chat nicks are in /MSG completion list now if chat isn't in query.
+Sending actions to non-query DCC chats now display the target.
+
+------------------------------------------------------------------------
+r1192 | cras | 2001-02-09 21:26:50 +0000 (Fri, 09 Feb 2001) | 4 lines
+Changed paths:
+   M /irssi/trunk/src/core/net-nonblock.c
+   M /irssi/trunk/src/core/net-nonblock.h
+   M /irssi/trunk/src/core/network.c
+   M /irssi/trunk/src/core/network.h
+   M /irssi/trunk/src/core/server-connect-rec.h
+   M /irssi/trunk/src/core/servers-setup.c
+   M /irssi/trunk/src/core/servers.c
+   M /irssi/trunk/src/irc/core/irc-commands.c
+
+/CONNECT, /SERVER: added -4 and -6 options for specifying if we should
+connect to IPv4 or IPv6 address of the server. If -host or /SET
+hostname is set irssi determines from it if it should use IPv4 or v6.
+
+------------------------------------------------------------------------
+r1191 | cras | 2001-02-08 16:54:52 +0000 (Thu, 08 Feb 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/irc-nicklist.h
+
+#include "irc-channels.h"
+
+------------------------------------------------------------------------
+r1190 | cras | 2001-02-08 09:24:25 +0000 (Thu, 08 Feb 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/fe-events-numeric.c
+   M /irssi/trunk/src/irc/core/modes.c
+
+/SET opermode - set this mode when you get ircop status.
+
+------------------------------------------------------------------------
+r1189 | cras | 2001-02-07 19:36:45 +0000 (Wed, 07 Feb 2001) | 4 lines
+Changed paths:
+   M /irssi/trunk/src/core/modules.c
+
+/LOAD ./path/module - loads module from path relative to current
+directory instea of trying to find it from ~/.irssi/modules or
+$PREFIX/lib/modules
+
+------------------------------------------------------------------------
+r1188 | cras | 2001-02-06 22:10:57 +0000 (Tue, 06 Feb 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/default.theme
+   M /irssi/trunk/src/fe-common/irc/fe-irc-messages.c
+   M /irssi/trunk/src/fe-common/irc/module-formats.c
+   M /irssi/trunk/src/fe-common/irc/module-formats.h
+
+/ACTION didn't print the target when there was no query/channel where
+to print the action
+
+------------------------------------------------------------------------
+r1187 | cras | 2001-02-06 21:56:51 +0000 (Tue, 06 Feb 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-log.c
+
+Don't autolog CTCPs by default (so CTCP floods don't create lots of
+useless files)
+
+------------------------------------------------------------------------
+r1186 | cras | 2001-02-06 21:49:57 +0000 (Tue, 06 Feb 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/core/ignore.c
+
+check_ignore() didn't check correctly if everything in specified level
+was ignored
+
+------------------------------------------------------------------------
+r1185 | cras | 2001-02-06 21:42:58 +0000 (Tue, 06 Feb 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/lib-config/parse.c
+
+'=' isn't really necessary, warn if it's missing but don't fail without
+
+------------------------------------------------------------------------
+r1184 | cras | 2001-02-05 01:06:42 +0000 (Mon, 05 Feb 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/irssi.c
+
+make deinitialization between screen_refresh_freeze() and
+screen_refresh_thaw() so screen won't get redrawn needlessly
+
+------------------------------------------------------------------------
+r1183 | cras | 2001-02-03 23:29:39 +0000 (Sat, 03 Feb 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/Makefile.am
+
+added fe-channels.h
+
+------------------------------------------------------------------------
+r1182 | cras | 2001-02-03 19:29:38 +0000 (Sat, 03 Feb 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/formats.c
+   M /irssi/trunk/src/fe-common/core/formats.h
+   M /irssi/trunk/src/fe-common/core/printtext.c
+   M /irssi/trunk/src/fe-common/core/printtext.h
+   M /irssi/trunk/src/fe-text/gui-printtext.c
+   M /irssi/trunk/src/fe-text/gui-printtext.h
+
+Added gui_printtext() function for printing text in printtext() format
+to screen in specified position.
+
+------------------------------------------------------------------------
+r1181 | cras | 2001-02-03 18:14:20 +0000 (Sat, 03 Feb 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/perl/irc/IrcChannel.xs
+
+irc_nick_insert(): Irssi::Nick, Irssi::Channel -> Irssi::Irc::...
+
+------------------------------------------------------------------------
+r1180 | cras | 2001-02-03 18:12:41 +0000 (Sat, 03 Feb 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/Makefile.am
+   M /irssi/trunk/configure.in
+
+gettext fixes
+
+------------------------------------------------------------------------
+r1179 | cras | 2001-02-03 17:52:32 +0000 (Sat, 03 Feb 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/configure.in
+
+msgfmt check was wrong
+
+------------------------------------------------------------------------
+r1178 | cras | 2001-02-03 17:38:01 +0000 (Sat, 03 Feb 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/irc/dcc/dcc-get.c
+   M /irssi/trunk/src/irc/dcc/dcc-resume.c
+
+DCC RESUME, DCC ACCEPT: we might have crashed with invalid parameters.
+Some other "cleanups".
+
+------------------------------------------------------------------------
+r1177 | cras | 2001-02-02 22:10:20 +0000 (Fri, 02 Feb 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/nicklist.c
+   M /irssi/trunk/src/core/nicklist.h
+   M /irssi/trunk/src/irc/core/irc-nicklist.c
+   M /irssi/trunk/src/irc/core/irc-nicklist.h
+   M /irssi/trunk/src/irc/core/massjoin.c
+   M /irssi/trunk/src/perl/common/Channel.xs
+   M /irssi/trunk/src/perl/irc/IrcChannel.xs
+   M /irssi/trunk/src/perl/irc/module.h
+
+Nicklist updates so that protocol specific xxx_NICK_REC can be used
+
+------------------------------------------------------------------------
+r1176 | cras | 2001-02-02 22:09:11 +0000 (Fri, 02 Feb 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/core/misc.c
+
+get_max_column_count(), columns_sort_list(): fixed to work properly
+with empty list
+
+------------------------------------------------------------------------
+r1175 | cras | 2001-01-31 21:21:19 +0000 (Wed, 31 Jan 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/fe-modes.c
+
+Print own mode changes immediately to screen without the 2sec wait.
+
+------------------------------------------------------------------------
+r1174 | cras | 2001-01-31 20:53:09 +0000 (Wed, 31 Jan 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/hilight-text.c
+
+Print the color hilight with two digits so it won't accidentally use the
+next char if it's numeric.
+
+------------------------------------------------------------------------
+r1173 | cras | 2001-01-31 20:11:47 +0000 (Wed, 31 Jan 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/gui-textwidget.c
+
+/SB STATUS: for debugging mostly, displays number of lines and used kBs
+of memory per window and totally
+
+------------------------------------------------------------------------
+r1172 | cras | 2001-01-31 11:23:29 +0000 (Wed, 31 Jan 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/statusbar-items.c
+   M /irssi/trunk/src/fe-text/statusbar.c
+   M /irssi/trunk/src/fe-text/statusbar.h
+
+Ugly quick hack to make act: never disappear but print as much activity
+to statusbar as fits.
+
+------------------------------------------------------------------------
+r1171 | cras | 2001-01-29 12:39:13 +0000 (Mon, 29 Jan 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/fe-irc-commands.c
+
+/nctcp crashed
+
+------------------------------------------------------------------------
+r1170 | cras | 2001-01-28 19:31:45 +0000 (Sun, 28 Jan 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/window-activity.c
+
+/SET activity_hide_targets now hides them even if level is MSGS. Only
+activity of highlighted text is not hidden.
+
+------------------------------------------------------------------------
+r1169 | cras | 2001-01-28 19:11:34 +0000 (Sun, 28 Jan 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/hilight-text.c
+
+/SET hilight_levels -> hilight_level
+
+------------------------------------------------------------------------
+r1168 | cras | 2001-01-28 16:54:25 +0000 (Sun, 28 Jan 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/ignore.c
+
+Ignores without nick masks didn't work
+
+------------------------------------------------------------------------
+r1167 | cras | 2001-01-28 16:43:13 +0000 (Sun, 28 Jan 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/core/ignore.c
+
+Ignore didn't check properly nick masks that contained only nick
+without mask part (!*).
+
+------------------------------------------------------------------------
+r1166 | cras | 2001-01-28 16:37:13 +0000 (Sun, 28 Jan 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/misc.c
+
+get_max_column_count() didn't work properly when there was only one item
+
+------------------------------------------------------------------------
+r1165 | cras | 2001-01-28 16:27:09 +0000 (Sun, 28 Jan 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/core/misc.c
+
+get_max_column_count(): we didn't handle correctly a situation where
+last column of the list was empty
+
+------------------------------------------------------------------------
+r1164 | cras | 2001-01-28 16:17:53 +0000 (Sun, 28 Jan 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/ignore.c
+
+bugfix
+
+------------------------------------------------------------------------
+r1163 | cras | 2001-01-28 16:15:55 +0000 (Sun, 28 Jan 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/perl/irc/Dcc.xs
+   M /irssi/trunk/src/perl/irc/module.h
+
+DCC updated
+
+------------------------------------------------------------------------
+r1162 | cras | 2001-01-28 15:46:00 +0000 (Sun, 28 Jan 2001) | 4 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-channels.c
+   A /irssi/trunk/src/fe-common/core/fe-channels.h
+   M /irssi/trunk/src/fe-common/core/fe-common-core.c
+   M /irssi/trunk/src/fe-common/core/fe-core-commands.c
+   M /irssi/trunk/src/fe-common/core/module-formats.c
+   M /irssi/trunk/src/fe-common/core/module-formats.h
+   M /irssi/trunk/src/fe-common/irc/fe-events-numeric.c
+   M /irssi/trunk/src/fe-common/irc/module-formats.c
+   M /irssi/trunk/src/fe-common/irc/module-formats.h
+
+/HELP, /NAMES: using now the column helper function in misc.c. /NAMES
+moved to core and is printed immediately instead of sending /NAMES
+request to server.
+
+------------------------------------------------------------------------
+r1161 | cras | 2001-01-28 15:44:29 +0000 (Sun, 28 Jan 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-windows.h
+   M /irssi/trunk/src/fe-text/gui-windows.c
+
+WINDOW_REC: added width and height variables
+
+------------------------------------------------------------------------
+r1160 | cras | 2001-01-28 15:43:38 +0000 (Sun, 28 Jan 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/core/misc.c
+   M /irssi/trunk/src/core/misc.h
+
+get_max_column_count(), columns_sort_list(): helper functions for
+printing column lists
+
+------------------------------------------------------------------------
+r1159 | cras | 2001-01-28 10:19:53 +0000 (Sun, 28 Jan 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/core/servers-setup.c
+
+backwards compatibility fix: when changing ircnet -> chatnet, the
+chatnet name in memory was corrupted
+
+------------------------------------------------------------------------
+r1158 | cras | 2001-01-28 10:16:43 +0000 (Sun, 28 Jan 2001) | 4 lines
+Changed paths:
+   M /irssi/trunk/default.theme
+   M /irssi/trunk/src/fe-common/irc/fe-events.c
+   M /irssi/trunk/src/fe-common/irc/fe-irc-commands.c
+   M /irssi/trunk/src/fe-common/irc/fe-irc-messages.c
+   M /irssi/trunk/src/fe-common/irc/module-formats.c
+   M /irssi/trunk/src/fe-common/irc/module-formats.h
+
+Removed own_wall msg format, using now the same as @#channel messages.
+Added printing of ctcps, notices, actions and /WALLs to
+fe-irc-messages.c
+
+------------------------------------------------------------------------
+r1157 | cras | 2001-01-28 09:31:45 +0000 (Sun, 28 Jan 2001) | 4 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-messages.c
+
+Emphasis are now expanded with own public/private messages. Added some
+checks when not to expand: before _word_ must be space or beginning of
+the line, next char after _word_ must not be '_' or '*'.
+
+------------------------------------------------------------------------
+r1156 | cras | 2001-01-28 09:16:22 +0000 (Sun, 28 Jan 2001) | 6 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/gui-textwidget.c
+   M /irssi/trunk/src/fe-text/gui-windows.c
+
+/SB END: Don't do anything when already at the bottom (it was broken if
+there was empty space at bottom)
+
+Horizontal resizing now keeps window position. Also some fixes to
+vertical resizing.
+
+------------------------------------------------------------------------
+r1155 | cras | 2001-01-28 07:22:22 +0000 (Sun, 28 Jan 2001) | 4 lines
+Changed paths:
+   M /irssi/trunk/src/core/core.c
+   M /irssi/trunk/src/core/ignore.c
+   M /irssi/trunk/src/core/ignore.h
+   M /irssi/trunk/src/fe-common/core/fe-ignore-messages.c
+   M /irssi/trunk/src/fe-common/core/fe-ignore.c
+   M /irssi/trunk/src/fe-common/core/fe-messages.c
+   M /irssi/trunk/src/irc/core/irc-nicklist.c
+   M /irssi/trunk/src/perl/perl-common.c
+
+Ignoring updates. Added support for nickmatch cache. One ignore can't
+have both except and normal levels. Nick ignoring checks now with both
+old and new nicks.
+
+------------------------------------------------------------------------
+r1154 | cras | 2001-01-28 04:07:52 +0000 (Sun, 28 Jan 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/notifylist/fe-notifylist.c
+
+Print notify joins, unaways and unidles with HILIGHT level.
+
+------------------------------------------------------------------------
+r1153 | cras | 2001-01-28 04:03:56 +0000 (Sun, 28 Jan 2001) | 4 lines
+Changed paths:
+   M /irssi/trunk/docs/special_vars.txt
+   M /irssi/trunk/src/core/expandos.c
+   M /irssi/trunk/src/fe-common/core/module-formats.c
+
+/SET timestamp_format now specifies format of $Z. timestamp msg format
+now uses $Z instead of that horrible $[-2.0]3:$[-2.0]4 that no-one
+understood :) It's still possible to use the old method too.
+
+------------------------------------------------------------------------
+r1152 | cras | 2001-01-28 03:52:29 +0000 (Sun, 28 Jan 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/module-formats.c
+   M /irssi/trunk/src/fe-common/core/module-formats.h
+   M /irssi/trunk/src/fe-common/core/window-commands.c
+
+Added TXT_WINDOW_LEVEL, changed most of the /WINDOW commands to print
+output to active window, not status window.
+
+------------------------------------------------------------------------
+r1151 | cras | 2001-01-28 03:48:18 +0000 (Sun, 28 Jan 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/docs/special_vars.txt
+
+Added long $variables + some updates
+
+------------------------------------------------------------------------
+r1150 | cras | 2001-01-28 03:41:17 +0000 (Sun, 28 Jan 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/default.theme
+   M /irssi/trunk/docs/formats.txt
+   M /irssi/trunk/src/fe-common/core/formats.c
+
+%N does now same as %n, except in .theme files it always does the
+terminal default color while %n sets the "previous color".
+
+------------------------------------------------------------------------
+r1149 | cras | 2001-01-28 03:29:25 +0000 (Sun, 28 Jan 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/docs/signals.txt
+
+updated
+
+------------------------------------------------------------------------
+r1148 | cras | 2001-01-28 03:29:09 +0000 (Sun, 28 Jan 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/Makefile.am
+   M /irssi/trunk/configure.in
+
+If msgfmt isn't found, don't go to "po" dir.
+
+------------------------------------------------------------------------
+r1147 | cras | 2001-01-28 03:19:19 +0000 (Sun, 28 Jan 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-common-core.c
+
+/SET beep_on_msg -> /SET beep_msg_level
+
+------------------------------------------------------------------------
+r1146 | cras | 2001-01-28 03:19:06 +0000 (Sun, 28 Jan 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/printtext.c
+
+/SET beep_on_msg -> beep_msg_level
+
+------------------------------------------------------------------------
+r1145 | cras | 2001-01-28 03:17:55 +0000 (Sun, 28 Jan 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/fe-netjoin.c
+
+Netjoin mode printing: handle +v and +h like +o was handled (joins:
+@opnick +voicenick %halfopick)
+
+------------------------------------------------------------------------
+r1144 | cras | 2001-01-28 03:04:44 +0000 (Sun, 28 Jan 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/completion.c
+
+Spaces at the start of line confused the completion some.
+
+------------------------------------------------------------------------
+r1143 | cras | 2001-01-28 01:45:31 +0000 (Sun, 28 Jan 2001) | 7 lines
+Changed paths:
+   M /irssi/trunk/src/core/channels.c
+   M /irssi/trunk/src/core/nicklist.c
+   M /irssi/trunk/src/core/nicklist.h
+   M /irssi/trunk/src/fe-common/core/fe-messages.c
+   M /irssi/trunk/src/perl/common/Channel.xs
+
+nicklist_find() now finds only full nicks, nicklist_find_mask() finds
+nick masks. This fixes *a* and similiar emphasis where irssi tried to
+find nick mask *a* instead of nick *a*.
+
+Also, emphasis with highascii didn't work unless emphasis_multiword was
+set ON.
+
+------------------------------------------------------------------------
+r1142 | cras | 2001-01-26 18:52:01 +0000 (Fri, 26 Jan 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/hilight-text.c
+
+nickmatch-cache wasn't initialized if there wasn't hilights = { ... }
+block in config file
+
+------------------------------------------------------------------------
+r1141 | cras | 2001-01-22 20:17:25 +0000 (Mon, 22 Jan 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/hilight-text.c
+
+Removed MSGS from hilight_level, not very useful IMHO
+
+------------------------------------------------------------------------
+r1140 | cras | 2001-01-22 19:35:07 +0000 (Mon, 22 Jan 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/formats.c
+
+strip_real_length() : bolds, underlines, etc. one character styling
+left it to infinite loop
+
+------------------------------------------------------------------------
+r1139 | cras | 2001-01-21 04:14:24 +0000 (Sun, 21 Jan 2001) | 6 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-messages.c
+   M /irssi/trunk/src/fe-common/core/formats.c
+   M /irssi/trunk/src/fe-common/core/formats.h
+   M /irssi/trunk/src/fe-common/core/hilight-text.c
+   M /irssi/trunk/src/fe-common/core/hilight-text.h
+   M /irssi/trunk/src/fe-common/core/window-activity.c
+
+Highlighting updates. -word renamed to -full. Added new -word option
+meaning to highlight only the found word in line. Removed -nonick
+option but added -line which means pretty much the same. -actcolor
+specifies what color to show in activity list, default is the same as
+-color. Also uses the nick cache to match nickmasks faster.
+
+------------------------------------------------------------------------
+r1138 | cras | 2001-01-21 04:09:48 +0000 (Sun, 21 Jan 2001) | 4 lines
+Changed paths:
+   M /irssi/trunk/src/core/Makefile.am
+   M /irssi/trunk/src/core/core.c
+   A /irssi/trunk/src/core/nickmatch-cache.c
+   A /irssi/trunk/src/core/nickmatch-cache.h
+
+Nickmatch cache. A couple of helper functions to check if channel nicks
+belong to something. Used for checking nickmasks in highlighting and
+ignores (well, ignore isn't done yet).
+
+------------------------------------------------------------------------
+r1137 | cras | 2001-01-21 00:49:52 +0000 (Sun, 21 Jan 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/core/nicklist.c
+   M /irssi/trunk/src/core/nicklist.h
+   M /irssi/trunk/src/irc/core/irc-nicklist.c
+   M /irssi/trunk/src/irc/core/massjoin.c
+
+nickliset_set_host() for setting host, sends signal "nicklist host changed".
+Changed "nick gone|serverop" -> "nicklist gone|serverop changed"
+
+------------------------------------------------------------------------
+r1136 | cras | 2001-01-18 02:58:16 +0000 (Thu, 18 Jan 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/mainwindows.h
+
+mainwindows_recreate() should be declared always
+
+------------------------------------------------------------------------
+r1135 | cras | 2001-01-18 02:30:59 +0000 (Thu, 18 Jan 2001) | 9 lines
+Changed paths:
+   M /irssi/trunk/docs/help/in/dcc.in
+   M /irssi/trunk/src/fe-common/irc/dcc/fe-dcc.c
+   M /irssi/trunk/src/fe-common/irc/dcc/module-formats.c
+   M /irssi/trunk/src/fe-common/irc/dcc/module-formats.h
+   M /irssi/trunk/src/irc/dcc/Makefile.am
+   A /irssi/trunk/src/irc/dcc/dcc-autoget.c
+   M /irssi/trunk/src/irc/dcc/dcc-chat.c
+   A /irssi/trunk/src/irc/dcc/dcc-chat.h
+   D /irssi/trunk/src/irc/dcc/dcc-files.c
+   A /irssi/trunk/src/irc/dcc/dcc-get.c
+   A /irssi/trunk/src/irc/dcc/dcc-get.h
+   A /irssi/trunk/src/irc/dcc/dcc-resume.c
+   A /irssi/trunk/src/irc/dcc/dcc-send.c
+   M /irssi/trunk/src/irc/dcc/dcc.c
+   M /irssi/trunk/src/irc/dcc/dcc.h
+
+DCC cleanups - half rewrite. New features: file names with spaces work
+properly, you can have multiple dcc chats with same people (or more
+useful, same nick in different ircnets), /DCC CHAT|GET|RESUME with no
+arguments accepts the last request, notifies if dcc request was sent to
+channel, warns about connecting to lowports, /SET dcc_autoget_lowports
+specifies if autogetting should work with lowports, complains of
+invalid dcc ctcps instead of ignoring. And fixed /SET dcc_autorename
+OFF which didn't work before.
+
+------------------------------------------------------------------------
+r1134 | cras | 2001-01-18 02:23:35 +0000 (Thu, 18 Jan 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/network.c
+   M /irssi/trunk/src/core/network.h
+
+net_getservbyport() - Get name of TCP service
+
+------------------------------------------------------------------------
+r1133 | cras | 2001-01-18 02:23:11 +0000 (Thu, 18 Jan 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/masks.c
+
+Minor speedup, return immediately if masks == ""
+
+------------------------------------------------------------------------
+r1132 | cras | 2001-01-18 02:01:59 +0000 (Thu, 18 Jan 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/core/signals.c
+
+signal_emit() - one parameter after last one wasn't NULL but was taken
+from va_list
+
+------------------------------------------------------------------------
+r1131 | cras | 2001-01-18 01:03:18 +0000 (Thu, 18 Jan 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/net-sendbuffer.c
+   M /irssi/trunk/src/fe-common/irc/fe-events-numeric.c
+
+memmove() -> g_memmove()
+
+------------------------------------------------------------------------
+r1130 | cras | 2001-01-17 20:28:42 +0000 (Wed, 17 Jan 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/irc-commands.c
+
+/WHOIS without parameters in query does now same as /WII <queried nick>
+
+------------------------------------------------------------------------
+r1129 | cras | 2001-01-17 19:00:30 +0000 (Wed, 17 Jan 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/syntax.pl
+
+call findsyntax.pl with "perl findsyntax.pl" instead of ./findsyntax.pl,
+Perl isn't always in /usr/bin/perl
+
+------------------------------------------------------------------------
+r1128 | cras | 2001-01-17 16:28:36 +0000 (Wed, 17 Jan 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/docs/faq.txt
+
+updated
+
+------------------------------------------------------------------------
+r1127 | cras | 2001-01-16 19:18:39 +0000 (Tue, 16 Jan 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-messages.c
+   M /irssi/trunk/src/fe-common/core/module-formats.c
+
+added channel parameter to quit/nick messages
+
+------------------------------------------------------------------------
+r1126 | cras | 2001-01-16 00:19:45 +0000 (Tue, 16 Jan 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/Makefile.am
+
+nickmatch-cache.[ch] wasn't supposed to be included yet..
+
+------------------------------------------------------------------------
+r1125 | cras | 2001-01-16 00:14:14 +0000 (Tue, 16 Jan 2001) | 4 lines
+Changed paths:
+   M /irssi/trunk/acconfig.h
+   M /irssi/trunk/configure.in
+   M /irssi/trunk/src/common.h
+   M /irssi/trunk/src/core/modules.c
+   M /irssi/trunk/src/core/modules.h
+
+Check if libtool creates libraries in .libs dir. Check if -lgmodule
+doesn't work. #include "../config.h" instead of <config.h>, this should
+fix problems when config.h is found in some -I dir.
+
+------------------------------------------------------------------------
+r1124 | cras | 2001-01-15 23:36:11 +0000 (Mon, 15 Jan 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/core/Makefile.am
+   M /irssi/trunk/src/core/expandos.c
+   M /irssi/trunk/src/core/memdebug.h
+   M /irssi/trunk/src/core/net-nonblock.c
+   M /irssi/trunk/src/core/net-sendbuffer.c
+   M /irssi/trunk/src/core/network.c
+   M /irssi/trunk/src/fe-common/core/fe-exec.c
+
+Fixed some signedness warnings and memdebug.h should compile now fine
+with -ansi.
+
+------------------------------------------------------------------------
+r1123 | cras | 2001-01-15 22:47:51 +0000 (Mon, 15 Jan 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/mainwindows.c
+   M /irssi/trunk/src/fe-text/screen.c
+
+screen resizing fixes when resizeterm() isn't supported
+
+------------------------------------------------------------------------
+r1122 | cras | 2001-01-15 22:25:49 +0000 (Mon, 15 Jan 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/mainwindows.c
+
+no, bugfix done wrong :) reversed.
+
+------------------------------------------------------------------------
+r1121 | cras | 2001-01-15 22:20:30 +0000 (Mon, 15 Jan 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/mainwindows.c
+   M /irssi/trunk/src/fe-text/mainwindows.h
+
+Compiling with --disable-curses-windows was broken
+
+------------------------------------------------------------------------
+r1120 | cras | 2001-01-15 22:18:09 +0000 (Mon, 15 Jan 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/screen.h
+
+#undef some things term.h #defines that break irssi
+
+------------------------------------------------------------------------
+r1119 | cras | 2001-01-15 01:04:30 +0000 (Mon, 15 Jan 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/perl/perl-common.h
+
+Added #define PL_sv_undef sv_undef for 5.004 compatibility
+
+------------------------------------------------------------------------
+r1118 | cras | 2001-01-14 18:57:39 +0000 (Sun, 14 Jan 2001) | 4 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/formats.c
+
+Use | instead of + when playing with ansi colors. Doesn't change
+anything really, except if someone now wants to change ansi colors to
+some bright colors it's easier..
+
+------------------------------------------------------------------------
+r1117 | cras | 2001-01-14 18:33:30 +0000 (Sun, 14 Jan 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-core-commands.c
+
+/HELP without any parameters read data outside it's buffer
+
+------------------------------------------------------------------------
+r1116 | cras | 2001-01-14 18:31:53 +0000 (Sun, 14 Jan 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/chat-completion.c
+
+Minor speed enhancement
+
+------------------------------------------------------------------------
+r1115 | cras | 2001-01-14 18:30:02 +0000 (Sun, 14 Jan 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/nicklist.c
+   M /irssi/trunk/src/core/nicklist.h
+
+Added nicklist_rename()
+
+------------------------------------------------------------------------
+r1114 | cras | 2001-01-14 18:16:39 +0000 (Sun, 14 Jan 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/misc.c
+   M /irssi/trunk/src/core/misc.h
+   M /irssi/trunk/src/fe-common/irc/fe-events-numeric.c
+   M /irssi/trunk/src/fe-common/irc/fe-irc-commands.c
+   M /irssi/trunk/src/irc/core/ctcp.c
+   M /irssi/trunk/src/irc/core/irc-nicklist.c
+
+Added my_asctime()
+
+------------------------------------------------------------------------
+r1113 | cras | 2001-01-14 18:02:03 +0000 (Sun, 14 Jan 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/log.c
+   M /irssi/trunk/src/fe-common/core/fe-windows.c
+
+Check the return value of strftime() properly
+
+------------------------------------------------------------------------
+r1112 | cras | 2001-01-14 01:04:49 +0000 (Sun, 14 Jan 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/perl/perl-common.c
+
+use_protocols variable wasn't initialized
+
+------------------------------------------------------------------------
+r1111 | cras | 2001-01-13 23:35:32 +0000 (Sat, 13 Jan 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/perl/common/Channel.xs
+
+Removed Channel::command(), Windowitem::command() is already there
+
+------------------------------------------------------------------------
+r1110 | cras | 2001-01-13 23:28:05 +0000 (Sat, 13 Jan 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/docs/signals.txt
+   M /irssi/trunk/src/fe-common/core/fe-exec.c
+
+Added "exec new" and "exec remove" signals.
+
+------------------------------------------------------------------------
+r1109 | cras | 2001-01-13 14:04:11 +0000 (Sat, 13 Jan 2001) | 4 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/hilight-text.c
+   M /irssi/trunk/src/fe-common/core/window-activity.c
+
+/SET activity_levels, hilight_levels, noact_channels ->
+activity_msg_levels, activity_hilight_levels, activity_hide_targets.
+Added /SET hilight_levels to specify the default level for /HILIGHTs
+
+------------------------------------------------------------------------
+r1108 | cras | 2001-01-13 13:54:17 +0000 (Sat, 13 Jan 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/configure.in
+
+Use test -f instead of -e for portability
+
+------------------------------------------------------------------------
+r1107 | cras | 2001-01-13 02:25:36 +0000 (Sat, 13 Jan 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/docs/signals.txt
+
+pidwait signal updated
+
+------------------------------------------------------------------------
+r1106 | cras | 2001-01-13 02:23:24 +0000 (Sat, 13 Jan 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/perl/common/Core.xs
+
+Added pidwait_add() and pidwait_remove()
+
+------------------------------------------------------------------------
+r1105 | cras | 2001-01-12 17:05:05 +0000 (Fri, 12 Jan 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/docs/special_vars.txt
+   M /irssi/trunk/src/core/special-vars.c
+   M /irssi/trunk/src/fe-text/gui-windows.c
+
+$[.10]var truncates the var to 10 chars, but doesn't pad if var is
+shorter than 10 chars
+
+------------------------------------------------------------------------
+r1104 | cras | 2001-01-11 10:15:34 +0000 (Thu, 11 Jan 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/network.c
+   M /irssi/trunk/src/core/nicklist.c
+   M /irssi/trunk/src/core/settings.c
+   M /irssi/trunk/src/fe-common/core/chat-completion.c
+   M /irssi/trunk/src/fe-common/core/fe-common-core.c
+   M /irssi/trunk/src/fe-text/gui-readline.c
+   M /irssi/trunk/src/irc/core/channels-query.c
+
+Some signed/unsigned warnings removed. Don't call fe_exec_init/deinit in win32
+
+------------------------------------------------------------------------
+r1103 | cras | 2001-01-11 09:25:16 +0000 (Thu, 11 Jan 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/irc-commands.c
+
+cmd_param_error -> cmd_return_error
+
+------------------------------------------------------------------------
+r1102 | cras | 2001-01-11 09:14:21 +0000 (Thu, 11 Jan 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/themes.c
+
+/SET theme - complains if theme isn't found. Setting theme's name to
+"xxx.theme" now works, too many people tried it with the .theme suffix :)
+
+------------------------------------------------------------------------
+r1101 | cras | 2001-01-10 21:12:39 +0000 (Wed, 10 Jan 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/perl/common/Core.xs
+   M /irssi/trunk/src/perl/get-signals.pl
+   M /irssi/trunk/src/perl/perl-common.c
+   M /irssi/trunk/src/perl/perl-signals.c
+
+bugfixes
+
+------------------------------------------------------------------------
+r1100 | cras | 2001-01-10 13:59:47 +0000 (Wed, 10 Jan 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/docs/signals.txt
+
+added "message own_public" and "message own_private"
+
+------------------------------------------------------------------------
+r1099 | cras | 2001-01-09 21:29:00 +0000 (Tue, 09 Jan 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/mainwindow-activity.c
+
+Fixed, added comment what it does so I wouldn't forget again :)
+
+------------------------------------------------------------------------
+r1098 | cras | 2001-01-09 21:06:45 +0000 (Tue, 09 Jan 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/docs/signals.txt
+   M /irssi/trunk/src/core/window-item-rec.h
+   M /irssi/trunk/src/fe-common/core/fe-messages.c
+   M /irssi/trunk/src/fe-common/core/fe-queries.c
+   M /irssi/trunk/src/fe-common/core/fe-windows.h
+   M /irssi/trunk/src/fe-common/core/formats.c
+   M /irssi/trunk/src/fe-common/core/formats.h
+   M /irssi/trunk/src/fe-common/core/hilight-text.c
+   M /irssi/trunk/src/fe-common/core/hilight-text.h
+   M /irssi/trunk/src/fe-common/core/window-activity.c
+   M /irssi/trunk/src/fe-common/core/window-commands.c
+   M /irssi/trunk/src/fe-text/mainwindow-activity.c
+   M /irssi/trunk/src/fe-text/statusbar-items.c
+   M /irssi/trunk/src/perl/perl-common.c
+
+Highlighting cleanups. Added /HILIGHT -priority option.
+
+------------------------------------------------------------------------
+r1097 | cras | 2001-01-09 18:56:56 +0000 (Tue, 09 Jan 2001) | 4 lines
+Changed paths:
+   M /irssi/trunk/default.theme
+   M /irssi/trunk/src/core/queries.c
+   M /irssi/trunk/src/fe-common/irc/dcc/module-formats.c
+
+query_find() didn't check for queries with no active server
+
+Some DCC CHAT format fixes
+
+------------------------------------------------------------------------
+r1096 | cras | 2001-01-09 17:25:21 +0000 (Tue, 09 Jan 2001) | 5 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-common-core.c
+   M /irssi/trunk/src/fe-common/core/fe-modules.c
+   M /irssi/trunk/src/fe-common/core/module-formats.c
+   M /irssi/trunk/src/fe-common/core/module-formats.h
+
+/LOAD without parameters prints loaded modules
+
+GLib warnings/criticals are now printed with printformat(), not into
+standard output messing up the screen.
+
+------------------------------------------------------------------------
+r1095 | cras | 2001-01-08 20:14:28 +0000 (Mon, 08 Jan 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/default.theme
+
+more comments
+
+------------------------------------------------------------------------
+r1094 | cras | 2001-01-07 19:42:59 +0000 (Sun, 07 Jan 2001) | 4 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-channels.c
+   M /irssi/trunk/src/fe-common/core/fe-core-commands.c
+   M /irssi/trunk/src/fe-common/core/fe-ignore.c
+   M /irssi/trunk/src/fe-common/core/fe-log.c
+   M /irssi/trunk/src/fe-common/core/fe-messages.c
+   M /irssi/trunk/src/fe-common/core/fe-modules.c
+   M /irssi/trunk/src/fe-common/core/fe-queries.c
+   M /irssi/trunk/src/fe-common/core/fe-server.c
+   M /irssi/trunk/src/fe-common/core/fe-settings.c
+   M /irssi/trunk/src/fe-common/core/fe-windows.c
+   M /irssi/trunk/src/fe-common/core/formats.c
+   M /irssi/trunk/src/fe-common/core/hilight-text.c
+   M /irssi/trunk/src/fe-common/core/keyboard.c
+   M /irssi/trunk/src/fe-common/core/module-formats.h
+   M /irssi/trunk/src/fe-common/core/themes.c
+   M /irssi/trunk/src/fe-common/core/window-commands.c
+   M /irssi/trunk/src/fe-common/core/window-items.c
+   M /irssi/trunk/src/fe-common/irc/fe-ctcp.c
+   M /irssi/trunk/src/fe-common/irc/fe-irc-messages.c
+   M /irssi/trunk/src/fe-text/gui-textwidget.c
+   M /irssi/trunk/src/fe-text/mainwindows.c
+   M /irssi/trunk/src/fe-text/module-formats.h
+
+In core/module-formats.h: IRCTXT_ -> TXT_
+
+Added "message irc ctcp" signal to print CTCPs
+
+------------------------------------------------------------------------
+r1093 | cras | 2001-01-07 13:53:58 +0000 (Sun, 07 Jan 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/core/commands.c
+   M /irssi/trunk/src/fe-common/core/fe-core-commands.c
+
+When using a /command that has only subcommands, print the list of the
+subcommands instead of just "unknown command" text.
+
+------------------------------------------------------------------------
+r1092 | cras | 2001-01-07 10:18:39 +0000 (Sun, 07 Jan 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/docs/manual.txt
+   M /irssi/trunk/docs/perl.txt
+
+updated
+
+------------------------------------------------------------------------
+r1091 | cras | 2001-01-07 10:11:29 +0000 (Sun, 07 Jan 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/fe-events-numeric.c
+
+"MODE #channel b" list wasn't printed correctly
+
+------------------------------------------------------------------------
+r1090 | cras | 2001-01-07 09:59:21 +0000 (Sun, 07 Jan 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/perl/irc/Irc.xs
+   M /irssi/trunk/src/perl/irc/module.h
+   M /irssi/trunk/src/perl/irc/typemap
+
+updated
+
+------------------------------------------------------------------------
+r1089 | cras | 2001-01-07 09:54:21 +0000 (Sun, 07 Jan 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/docs/perl.txt
+   M /irssi/trunk/src/perl/Makefile.am
+   D /irssi/trunk/src/perl/irc/Bans.xs
+   M /irssi/trunk/src/perl/irc/Dcc.xs
+   M /irssi/trunk/src/perl/irc/Irc.xs
+   M /irssi/trunk/src/perl/irc/IrcServer.xs
+   M /irssi/trunk/src/perl/irc/Modes.xs
+   M /irssi/trunk/src/perl/irc/typemap
+
+perl updates
+
+------------------------------------------------------------------------
+r1088 | cras | 2001-01-07 09:26:45 +0000 (Sun, 07 Jan 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/dcc/dcc-chat.c
+   M /irssi/trunk/src/irc/dcc/dcc-files.c
+   M /irssi/trunk/src/irc/dcc/dcc.h
+
+item_get_dcc(void *item) -> WI_ITEM_REC *item
+
+------------------------------------------------------------------------
+r1087 | cras | 2001-01-07 08:44:02 +0000 (Sun, 07 Jan 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/bans.h
+
+ban -> bans, just like in .c file :)
+
+------------------------------------------------------------------------
+r1086 | cras | 2001-01-07 08:23:06 +0000 (Sun, 07 Jan 2001) | 4 lines
+Changed paths:
+   M /irssi/trunk/src/core/signals.c
+   M /irssi/trunk/src/core/signals.h
+   M /irssi/trunk/src/perl/perl-signals.c
+   M /irssi/trunk/src/perl/perl.c
+
+"return 1" doesn't anymore stop signals in perl scripts. Fixed
+Irssi::signal_stop() to properly stop the signal from going to other
+perl scripts.
+
+------------------------------------------------------------------------
+r1085 | cras | 2001-01-07 08:05:14 +0000 (Sun, 07 Jan 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/lib-config/write.c
+
+Don't write indent spaces to empty lines
+
+------------------------------------------------------------------------
+r1084 | cras | 2001-01-07 07:58:15 +0000 (Sun, 07 Jan 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/themes.c
+
+Fixes for printing errors in themes
+
+------------------------------------------------------------------------
+r1083 | cras | 2001-01-07 07:48:56 +0000 (Sun, 07 Jan 2001) | 5 lines
+Changed paths:
+   M /irssi/trunk/default.theme
+   M /irssi/trunk/src/fe-common/core/module-formats.c
+   M /irssi/trunk/src/fe-common/core/themes.c
+
+Template packing: After $variables the color could be anything, don't
+even try to guess it.
+
+Some changes to templates in theme. Nick mode is now separate argument.
+
+------------------------------------------------------------------------
+r1082 | cras | 2001-01-06 23:49:19 +0000 (Sat, 06 Jan 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/nicklist.c
+
+nick_match_msg() : check was case sensitive
+
+------------------------------------------------------------------------
+r1081 | cras | 2001-01-06 21:59:28 +0000 (Sat, 06 Jan 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/docs/perl.txt
+   M /irssi/trunk/src/perl/common/Channel.xs
+   M /irssi/trunk/src/perl/common/Core.xs
+   M /irssi/trunk/src/perl/common/Irssi.pm
+   M /irssi/trunk/src/perl/common/Log.xs
+   M /irssi/trunk/src/perl/common/Query.xs
+   M /irssi/trunk/src/perl/common/Rawlog.xs
+   M /irssi/trunk/src/perl/common/Server.xs
+   M /irssi/trunk/src/perl/common/Themes.xs
+   M /irssi/trunk/src/perl/common/Window.xs
+   M /irssi/trunk/src/perl/common/module.h
+   M /irssi/trunk/src/perl/common/typemap
+   M /irssi/trunk/src/perl/perl-common.c
+
+Perl updates. Lots of updates to perl documentation :)
+
+------------------------------------------------------------------------
+r1080 | cras | 2001-01-06 21:58:43 +0000 (Sat, 06 Jan 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/docs/faq.txt
+
+updated
+
+------------------------------------------------------------------------
+r1079 | cras | 2001-01-06 21:58:28 +0000 (Sat, 06 Jan 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-channels.c
+   M /irssi/trunk/src/fe-common/core/fe-queries.c
+   M /irssi/trunk/src/fe-common/core/fe-windows.c
+   M /irssi/trunk/src/fe-common/core/window-items.c
+   M /irssi/trunk/src/fe-common/core/window-items.h
+
+Removed window parameter from window_item_remove() and
+window_item_destroy()
+
+------------------------------------------------------------------------
+r1078 | cras | 2001-01-06 21:57:06 +0000 (Sat, 06 Jan 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/default.theme
+   M /irssi/trunk/src/fe-common/core/module-formats.c
+   M /irssi/trunk/src/fe-common/core/themes.c
+
+theme updates
+
+------------------------------------------------------------------------
+r1077 | cras | 2001-01-06 15:39:36 +0000 (Sat, 06 Jan 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/chat-completion.c
+
+When msg list is full, remove old messages, not new messages..
+
+------------------------------------------------------------------------
+r1076 | cras | 2001-01-06 09:15:36 +0000 (Sat, 06 Jan 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/default.theme
+
+"# information about the %format is found from docs/formats.txt"
+
+------------------------------------------------------------------------
+r1075 | cras | 2001-01-05 09:43:38 +0000 (Fri, 05 Jan 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-core-commands.c
+   M /irssi/trunk/syntax.pl
+
+/HELP: Set indent to 0 when printing text. syntax.pl now changes tabs
+to 9 spaces at the start of lines in help files.
+
+------------------------------------------------------------------------
+r1074 | cras | 2001-01-05 09:38:08 +0000 (Fri, 05 Jan 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/autogen.sh
+   M /irssi/trunk/docs/help/Makefile.am.gen
+   M /irssi/trunk/docs/help/in/Makefile.am.gen
+   M /irssi/trunk/docs/signals.txt
+   M /irssi/trunk/findsyntax.pl
+   M /irssi/trunk/syntax.pl
+
+docs generator updates
+
+------------------------------------------------------------------------
+r1073 | cras | 2001-01-05 08:34:39 +0000 (Fri, 05 Jan 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/printtext.c
+
+printtext_string() fix, should actually work now :)
+
+------------------------------------------------------------------------
+r1072 | cras | 2001-01-05 08:30:01 +0000 (Fri, 05 Jan 2001) | 4 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-core-commands.c
+   M /irssi/trunk/src/fe-common/core/printtext.c
+   M /irssi/trunk/src/fe-common/core/printtext.h
+   M /irssi/trunk/src/perl/common/Window.xs
+   M /irssi/trunk/src/perl/perl-common.c
+   M /irssi/trunk/src/perl/perl-common.h
+
+Added printtext_string() which works like printtext(), except it prints
+text from a string, so that %s, %d, etc. don't work. Changed perl's
+Irssi::print() use this instead as well as /HELP printer.
+
+------------------------------------------------------------------------
+r1071 | cras | 2001-01-05 08:21:07 +0000 (Fri, 05 Jan 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/docs/help/in/action.in
+   A /irssi/trunk/docs/help/in/exec.in
+   M /irssi/trunk/docs/help/in/lastlog.in
+   A /irssi/trunk/docs/help/in/load.in
+   A /irssi/trunk/docs/help/in/rehash.in
+   M /irssi/trunk/docs/help/in/restart.in
+   A /irssi/trunk/docs/help/in/rmrejoins.in
+   A /irssi/trunk/docs/help/in/savewindows.in
+   M /irssi/trunk/docs/help/in/server.in
+   A /irssi/trunk/docs/help/in/unload.in
+   A /irssi/trunk/docs/help/in/wait.in
+
+updated docs
+
+------------------------------------------------------------------------
+r1070 | cras | 2001-01-05 07:26:06 +0000 (Fri, 05 Jan 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/fe-irc-commands.c
+
+Removed wrong SYNTAX: NOTICE, it's already correctly in irc/core
+
+------------------------------------------------------------------------
+r1069 | cras | 2001-01-05 07:22:58 +0000 (Fri, 05 Jan 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/keyboard.c
+   M /irssi/trunk/src/fe-text/gui-readline.c
+
+/BIND comment updates
+
+------------------------------------------------------------------------
+r1068 | cras | 2001-01-05 06:49:47 +0000 (Fri, 05 Jan 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/core/settings.c
+
+In "Configuration file was modified ..." text, added "Use /SAVE or
+/RELOAD to get rid of this message."
+
+------------------------------------------------------------------------
+r1067 | cras | 2001-01-05 06:47:06 +0000 (Fri, 05 Jan 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/default.theme
+
+added some comments
+
+------------------------------------------------------------------------
+r1066 | cras | 2001-01-04 19:20:09 +0000 (Thu, 04 Jan 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/gui-printtext.c
+
+MIRC colors >=16 changed to work as in MIRC (color %= 16)
+
+------------------------------------------------------------------------
+r1065 | cras | 2001-01-04 19:01:01 +0000 (Thu, 04 Jan 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/themes.c
+
+Complain about errors in theme file
+
+------------------------------------------------------------------------
+r1064 | cras | 2001-01-04 18:35:26 +0000 (Thu, 04 Jan 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk
+   M /irssi/trunk/.cvsignore
+   M /irssi/trunk/configure.in
+   M /irssi/trunk/src/perl/Makefile.am
+
+Renamed libtool-static to libtool-shared. Generating it should now also
+work properly with older libtool versions than 1.3.5.
+
+------------------------------------------------------------------------
+r1063 | cras | 2001-01-04 18:01:51 +0000 (Thu, 04 Jan 2001) | 7 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-settings.c
+   M /irssi/trunk/src/fe-common/core/keyboard.c
+   M /irssi/trunk/src/fe-common/core/keyboard.h
+   M /irssi/trunk/src/fe-common/irc/fe-irc-commands.c
+   M /irssi/trunk/src/fe-text/gui-entry.c
+   M /irssi/trunk/src/fe-text/gui-entry.h
+   M /irssi/trunk/src/fe-text/gui-readline.c
+   M /irssi/trunk/src/irc/core/irc-commands.c
+
+Added keyboard_entry_redirect() function to keyboard.[ch] which sends
+the signal "gui entry redirect" signal. Added possibility to keep the
+entry hidden.
+
+/OPER [<nick> [<password>]] - syntax changed. If password isn't given,
+it's asked.
+
+------------------------------------------------------------------------
+r1062 | cras | 2001-01-04 17:28:26 +0000 (Thu, 04 Jan 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/fe-irc-commands.c
+   M /irssi/trunk/src/fe-common/irc/module-formats.c
+   M /irssi/trunk/src/irc/core/bans.c
+
+/UNBAN <ref#> works. /BAN list shows reference numbers.
+
+------------------------------------------------------------------------
+r1061 | cras | 2001-01-04 17:27:21 +0000 (Thu, 04 Jan 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/signals.c
+
+Allow stopping signal more than once without sending GLib warning
+
+------------------------------------------------------------------------
+r1060 | cras | 2001-01-04 17:13:29 +0000 (Thu, 04 Jan 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/chat-completion.c
+
+fixed minor memory leak
+
+------------------------------------------------------------------------
+r1059 | cras | 2001-01-04 13:56:54 +0000 (Thu, 04 Jan 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/docs/help/in/hilight.in
+
+updated
+
+------------------------------------------------------------------------
+r1058 | cras | 2001-01-04 09:45:46 +0000 (Thu, 04 Jan 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/perl/common/Core.xs
+   M /irssi/trunk/src/perl/perl-signals.c
+   M /irssi/trunk/src/perl/perl-signals.h
+
+Unbinding commands didn't work properly
+
+------------------------------------------------------------------------
+r1057 | cras | 2001-01-04 08:49:48 +0000 (Thu, 04 Jan 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/fe-events-numeric.c
+   M /irssi/trunk/src/irc/core/irc-commands.c
+   M /irssi/trunk/src/irc/core/irc-servers.c
+   M /irssi/trunk/src/irc/core/irc-servers.h
+
+/LIST: don't require -yes option if there's 1000 channels or less.
+
+------------------------------------------------------------------------
+r1056 | cras | 2001-01-04 08:35:33 +0000 (Thu, 04 Jan 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/window-commands.c
+
+/WINDOW NUMBER: fixed small memory leak
+
+------------------------------------------------------------------------
+r1055 | cras | 2001-01-03 15:54:21 +0000 (Wed, 03 Jan 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/docs/manual.txt
+
+updated
+
+------------------------------------------------------------------------
+r1054 | cras | 2001-01-03 07:37:15 +0000 (Wed, 03 Jan 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk
+   M /irssi/trunk/.cvsignore
+
+added default-theme.h
+
+------------------------------------------------------------------------
+r1053 | cras | 2001-01-03 07:34:12 +0000 (Wed, 03 Jan 2001) | 4 lines
+Changed paths:
+   M /irssi/trunk/src/core/signals.c
+   M /irssi/trunk/src/core/signals.h
+   M /irssi/trunk/src/perl
+   M /irssi/trunk/src/perl/.cvsignore
+   M /irssi/trunk/src/perl/Makefile.am
+   M /irssi/trunk/src/perl/common/Core.xs
+   M /irssi/trunk/src/perl/common/module.h
+   M /irssi/trunk/src/perl/module.h
+   M /irssi/trunk/src/perl/perl-common.c
+   A /irssi/trunk/src/perl/perl-signals.c
+   A /irssi/trunk/src/perl/perl-signals.h
+   M /irssi/trunk/src/perl/perl.c
+
+Removed the "signal" and "last signal" signals. Changed perl's
+signaling system to work without them, it should now work faster and
+better.
+
+------------------------------------------------------------------------
+r1052 | cras | 2001-01-02 19:15:24 +0000 (Tue, 02 Jan 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/fe-events.c
+
+"No such nick xx" is printed now with nick argument so it could get
+printed to query window with xx
+
+------------------------------------------------------------------------
+r1051 | cras | 2001-01-02 16:14:19 +0000 (Tue, 02 Jan 2001) | 5 lines
+Changed paths:
+   M /irssi/trunk/src/irc/dcc/dcc-files.c
+   M /irssi/trunk/src/irc/dcc/dcc.c
+   M /irssi/trunk/src/irc/dcc/dcc.h
+
+/SET dcc_autoresume - like /SET dcc_autoget, but resume the files if
+they're already found. Also fixed file transfer being stuck when
+resuming file that was already fully sent (happened with both send and
+get). /dcc close was also broken.
+
+------------------------------------------------------------------------
+r1050 | cras | 2001-01-02 07:05:07 +0000 (Tue, 02 Jan 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/network.c
+
+net_accept(), net_getsockname() IPv6 fixes pointed out by pv2b :)
+
+------------------------------------------------------------------------
+r1049 | cras | 2001-01-02 05:55:36 +0000 (Tue, 02 Jan 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/network.c
+
+removed the win32 EINPROGRESS define, that wouldn't work anyway
+
+------------------------------------------------------------------------
+r1048 | cras | 2001-01-01 19:29:05 +0000 (Mon, 01 Jan 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/queries.c
+   M /irssi/trunk/src/core/servers.c
+
+Query bugfixes
+
+------------------------------------------------------------------------
+r1047 | cras | 2001-01-01 18:32:48 +0000 (Mon, 01 Jan 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-windows.c
+
+/SET windows_auto_renumber - should window refnums be packed when some
+window is destroyed
+
+------------------------------------------------------------------------
+r1046 | cras | 2001-01-01 18:30:23 +0000 (Mon, 01 Jan 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-windows.c
+   M /irssi/trunk/src/fe-common/core/fe-windows.h
+   M /irssi/trunk/src/fe-common/core/window-commands.c
+
+/WINDOW NUMBER: -sticky option added. Closing windows before a sticky
+window won't change refnum of the sticky window and windows after it
+
+------------------------------------------------------------------------
+r1045 | cras | 2001-01-01 18:13:54 +0000 (Mon, 01 Jan 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-exec.c
+
+int:1 -> unsigned int:1
+
+------------------------------------------------------------------------
+r1044 | cras | 2001-01-01 17:34:03 +0000 (Mon, 01 Jan 2001) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/perl/common/Query.xs
+   M /irssi/trunk/src/perl/common/Server.xs
+   M /irssi/trunk/src/perl/irc/IrcQuery.xs
+
+ischannel()'s parameter updated from char -> char* as done in C API.
+[irc_]query_create()'s SERVER_REC* parameter -> char *server_tag
+
+------------------------------------------------------------------------
+r1043 | cras | 2001-01-01 17:13:55 +0000 (Mon, 01 Jan 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/queries.c
+   M /irssi/trunk/src/core/queries.h
+   M /irssi/trunk/src/fe-common/core/fe-queries.c
+   M /irssi/trunk/src/fe-common/core/window-save.c
+   M /irssi/trunk/src/fe-common/irc/dcc/fe-dcc.c
+   M /irssi/trunk/src/irc/core/irc-queries.c
+   M /irssi/trunk/src/irc/core/irc-queries.h
+
+Some query changes. They should now work properly with /SAVEWINDOWS
+
+------------------------------------------------------------------------
+r1042 | cras | 2001-01-01 17:07:08 +0000 (Mon, 01 Jan 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-windows.c
+   M /irssi/trunk/src/fe-common/core/window-items.c
+
+MODULE_DATA(item) -> window_item_window(item) - forgot to change these
+
+------------------------------------------------------------------------
+r1041 | cras | 2001-01-01 16:57:25 +0000 (Mon, 01 Jan 2001) | 4 lines
+Changed paths:
+   M /irssi/trunk/src/core/chat-commands.c
+   M /irssi/trunk/src/core/expandos.c
+   M /irssi/trunk/src/core/ignore.c
+   M /irssi/trunk/src/core/server-rec.h
+   M /irssi/trunk/src/fe-common/core/chat-completion.c
+   M /irssi/trunk/src/fe-common/core/fe-ignore.c
+   M /irssi/trunk/src/fe-common/core/fe-log.c
+   M /irssi/trunk/src/fe-common/core/fe-messages.c
+   M /irssi/trunk/src/fe-common/core/fe-messages.h
+   M /irssi/trunk/src/fe-common/irc/Makefile.am
+   M /irssi/trunk/src/fe-common/irc/fe-common-irc.c
+   M /irssi/trunk/src/fe-common/irc/fe-events.c
+   A /irssi/trunk/src/fe-common/irc/fe-irc-messages.c
+   M /irssi/trunk/src/irc/core/irc-servers.c
+   M /irssi/trunk/src/irc/core/irc.h
+
+added "message own_public" and "message own_private" events that are
+sent when /msg command is used. this way we don't need to parse the
+/msg's options everywhere. also efnet @#channels support works now better.
+
+------------------------------------------------------------------------
+r1040 | cras | 2001-01-01 14:57:55 +0000 (Mon, 01 Jan 2001) | 5 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-windows.c
+   M /irssi/trunk/src/fe-common/core/fe-windows.h
+   M /irssi/trunk/src/fe-common/core/window-commands.c
+   M /irssi/trunk/src/fe-common/core/window-items.c
+
+window_item_create(): when there's multiple choices where the window
+item could be placed, the first window is now selected instead of the
+last accessed one of them (which most people think of as a random
+window).
+
+------------------------------------------------------------------------
+r1039 | cras | 2001-01-01 14:42:22 +0000 (Mon, 01 Jan 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/irc-commands.c
+   M /irssi/trunk/src/irc/notifylist/notify-ison.c
+
+small extra checks to /whois redirect checking
+
+------------------------------------------------------------------------
+r1038 | cras | 2001-01-01 13:20:43 +0000 (Mon, 01 Jan 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/docs/faq.txt
+
+updated :)
+
+------------------------------------------------------------------------
+r1037 | cras | 2001-01-01 13:20:29 +0000 (Mon, 01 Jan 2001) | 2 lines
+Changed paths:
+   A /irssi/trunk/docs/faq.txt
+
+first new version of faq
+
+------------------------------------------------------------------------
+r1036 | cras | 2001-01-01 10:43:04 +0000 (Mon, 01 Jan 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/default.theme
+
+missing ';'
+
+------------------------------------------------------------------------
+r1035 | cras | 2001-01-01 10:42:15 +0000 (Mon, 01 Jan 2001) | 9 lines
+Changed paths:
+   M /irssi/trunk/configure.in
+   M /irssi/trunk/src/perl/Makefile.am
+
+Perl's ldflags usually include at least -lm and maybe some others too.
+But in some OSes adding shared library dependencies to other shared
+libs don't work (or maybe I'd need to do something differently :), so
+check in configure that if it doesn't work, perl is never even tried to
+be built as module.
+
+On the other hand, if it does work irssi now links with libperl.so if
+it's found instead of libperl.a which was always used before.
+
+------------------------------------------------------------------------
+r1034 | cras | 2001-01-01 07:45:54 +0000 (Mon, 01 Jan 2001) | 15 lines
+Changed paths:
+   M /irssi/trunk/src/common.h
+   M /irssi/trunk/src/core/channel-rec.h
+   M /irssi/trunk/src/core/channels-setup.h
+   M /irssi/trunk/src/core/channels.h
+   M /irssi/trunk/src/core/chatnets.c
+   M /irssi/trunk/src/core/chatnets.h
+   M /irssi/trunk/src/core/expandos.c
+   M /irssi/trunk/src/core/expandos.h
+   M /irssi/trunk/src/core/ignore.h
+   M /irssi/trunk/src/core/line-split.c
+   M /irssi/trunk/src/core/line-split.h
+   M /irssi/trunk/src/core/log.h
+   M /irssi/trunk/src/core/masks.h
+   M /irssi/trunk/src/core/net-sendbuffer.h
+   M /irssi/trunk/src/core/network.h
+   M /irssi/trunk/src/core/nicklist.c
+   M /irssi/trunk/src/core/nicklist.h
+   M /irssi/trunk/src/core/queries.c
+   M /irssi/trunk/src/core/queries.h
+   M /irssi/trunk/src/core/rawlog.h
+   M /irssi/trunk/src/core/server-rec.h
+   M /irssi/trunk/src/core/servers-reconnect.c
+   M /irssi/trunk/src/core/servers-redirect.h
+   M /irssi/trunk/src/core/servers-setup.h
+   M /irssi/trunk/src/core/servers.h
+   M /irssi/trunk/src/core/settings.h
+   M /irssi/trunk/src/core/special-vars.h
+   M /irssi/trunk/src/core/window-item-def.h
+   M /irssi/trunk/src/core/window-item-rec.h
+   M /irssi/trunk/src/fe-common/core/chat-completion.c
+   M /irssi/trunk/src/fe-common/core/fe-channels.c
+   M /irssi/trunk/src/fe-common/core/fe-common-core.c
+   M /irssi/trunk/src/fe-common/core/fe-exec.c
+   M /irssi/trunk/src/fe-common/core/module.h
+   M /irssi/trunk/src/fe-common/core/window-activity.c
+   M /irssi/trunk/src/fe-common/core/window-items.c
+   M /irssi/trunk/src/fe-common/core/window-items.h
+   M /irssi/trunk/src/fe-text/statusbar-items.c
+   M /irssi/trunk/src/irc/bot/botnet-connection.c
+   M /irssi/trunk/src/irc/bot/botnet.h
+   M /irssi/trunk/src/irc/core/channel-rejoin.c
+   M /irssi/trunk/src/irc/core/channels-query.c
+   M /irssi/trunk/src/irc/core/irc-channels.c
+   M /irssi/trunk/src/irc/core/irc-commands.c
+   M /irssi/trunk/src/irc/core/irc-nicklist.c
+   M /irssi/trunk/src/irc/core/irc-servers.c
+   M /irssi/trunk/src/irc/core/irc.c
+   M /irssi/trunk/src/irc/core/netsplit.c
+   M /irssi/trunk/src/irc/dcc/dcc.h
+   M /irssi/trunk/src/lib-config/iconfig.h
+
+Added/moved several "typedef struct _XXX XXX;" to common.h so that
+they're known to all files and I don't need those stupid "void *xxx"
+anymore just to avoid useless #include. Header files themselves don't
+either include others as often anymore.
+
+Added channel->ownnick to point to our NICK_REC in channel's nicks.
+Gives a minor speedup in few places :)
+
+Moved completion specific lastmsgs from channel/server core records to
+fe-common/core specific records. Also changed the nick completion logic
+a bit so it should work better now. Removed
+completion_keep_publics_count setting, but changed the meaning of
+completion_keep_publics to same as _count was before. Nick completion
+doesn't have any time specific code anymore.
+
+------------------------------------------------------------------------
+r1033 | cras | 2001-01-01 04:33:27 +0000 (Mon, 01 Jan 2001) | 4 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/channel-rejoin.c
+
+When joining to !channel because of "407 duplicate channel", it just
+means that there's some server sync problems. rejoining after a while
+should work again.
+
+------------------------------------------------------------------------
+r1032 | cras | 2001-01-01 04:22:31 +0000 (Mon, 01 Jan 2001) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-messages.c
+   M /irssi/trunk/src/fe-common/core/fe-messages.h
+   M /irssi/trunk/src/fe-common/irc/dcc/fe-dcc.c
+
+don't do emphasis on nicks in channel (<nick1> _nick2_: hello won't underline)
+
+------------------------------------------------------------------------
+r1031 | cras | 2000-12-30 00:43:11 +0000 (Sat, 30 Dec 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-exec.c
+
+removed FIXME text :)
+
+------------------------------------------------------------------------
+r1030 | cras | 2000-12-30 00:42:47 +0000 (Sat, 30 Dec 2000) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/core/pidwait.c
+   M /irssi/trunk/src/fe-common/core/Makefile.am
+   M /irssi/trunk/src/fe-common/core/fe-common-core.c
+   M /irssi/trunk/src/fe-common/core/fe-core-commands.c
+   A /irssi/trunk/src/fe-common/core/fe-exec.c
+
+pidwait: send status as second agument.
+Implemented EPIC-compatible /EXEC
+
+------------------------------------------------------------------------
+r1029 | cras | 2000-12-29 21:56:25 +0000 (Fri, 29 Dec 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/servers.c
+   M /irssi/trunk/src/core/servers.h
+
+comment update :)
+
+------------------------------------------------------------------------
+r1028 | cras | 2000-12-29 19:48:02 +0000 (Fri, 29 Dec 2000) | 5 lines
+Changed paths:
+   M /irssi/trunk/src/perl/common/Window.xs
+   M /irssi/trunk/src/perl/common/module.h
+   M /irssi/trunk/src/perl/perl-common.c
+   M /irssi/trunk/src/perl/perl-common.h
+
+Irssi::print() doesn't call printtext() with args (.., "%s", text)
+since it broke %_ etc. formats. But instead of crashing every time
+someone prints %s with Irssi::print(), irssi now checks all those
+formats and prints them as-is.
+
+------------------------------------------------------------------------
+r1027 | cras | 2000-12-29 19:22:00 +0000 (Fri, 29 Dec 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/perl/common/Core.xs
+   M /irssi/trunk/src/perl/perl-common.c
+   M /irssi/trunk/src/perl/perl-common.h
+
+Irssi::signal_emit() was broken.
+
+------------------------------------------------------------------------
+r1026 | cras | 2000-12-29 00:11:24 +0000 (Fri, 29 Dec 2000) | 4 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-messages.c
+
+If msg comes from unknown channel (like when you just closed some
+channel window and server sends the last msg to the channel) irssi now
+prints the msg to active window instead of sending glib warning.
+
+------------------------------------------------------------------------
+r1025 | cras | 2000-12-28 17:42:17 +0000 (Thu, 28 Dec 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/perl/perl-common.c
+
+removed warning
+
+------------------------------------------------------------------------
+r1024 | cras | 2000-12-28 17:23:06 +0000 (Thu, 28 Dec 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/irc-servers.c
+   M /irssi/trunk/src/irc/core/irc-servers.h
+   M /irssi/trunk/src/irc/core/irc.c
+
+server->cmd_last_split wasn't used anymore, removed code related to it.
+
+------------------------------------------------------------------------
+r1023 | cras | 2000-12-28 17:22:35 +0000 (Thu, 28 Dec 2000) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/core/net-sendbuffer.c
+
+Instead of trying to send data to server every 1/10th of second, send
+it whenever there's space in buffer using g_input_add() with G_IO_WRITE
+
+------------------------------------------------------------------------
+r1022 | cras | 2000-12-28 17:04:33 +0000 (Thu, 28 Dec 2000) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/Makefile.am
+   M /irssi/trunk/src/fe-common/core/fe-messages.c
+   A /irssi/trunk/src/fe-common/core/fe-messages.h
+   M /irssi/trunk/src/fe-common/core/printtext.c
+   M /irssi/trunk/src/fe-common/irc/dcc/fe-dcc.c
+
+emphasis moved to fe-messages. added a few checks so that non-words
+aren't treated as emphasis
+
+------------------------------------------------------------------------
+r1021 | cras | 2000-12-28 13:53:19 +0000 (Thu, 28 Dec 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/configure.in
+
+-q option for grep isn't known everywhere, use > /dev/null instead
+
+------------------------------------------------------------------------
+r1020 | cras | 2000-12-27 16:27:46 +0000 (Wed, 27 Dec 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/configure.in
+
+"glib in irssi dir" fixes
+
+------------------------------------------------------------------------
+r1019 | cras | 2000-12-27 01:20:58 +0000 (Wed, 27 Dec 2000) | 3 lines
+Changed paths:
+   M /irssi/trunk/configure.in
+
+when using glib built in irssi dir, add glib_dir/gmodule to include
+path so #include <gmodule.h> doesn't fail
+
+------------------------------------------------------------------------
+r1018 | cras | 2000-12-22 13:02:33 +0000 (Fri, 22 Dec 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/channel-events.c
+
+Fix for handling duplicate channels
+
+------------------------------------------------------------------------
+r1017 | cras | 2000-12-19 17:48:42 +0000 (Tue, 19 Dec 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/network.c
+   M /irssi/trunk/src/core/network.h
+   M /irssi/trunk/src/fe-common/core/fe-core-commands.c
+   M /irssi/trunk/src/fe-common/irc/fe-events-numeric.c
+   M /irssi/trunk/src/irc/dcc/dcc.c
+   M /irssi/trunk/src/perl/common/Window.xs
+
+security fixes from 0.7.97.2
+
+------------------------------------------------------------------------
+r1016 | cras | 2000-12-19 17:47:33 +0000 (Tue, 19 Dec 2000) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/core/channels-setup.c
+   M /irssi/trunk/src/core/servers-setup.c
+
+put back ircnet -> chatnet backwards compatibility, this time modify
+the config file to use chatnet so after .98 we could remove this
+
+------------------------------------------------------------------------
+r1015 | cras | 2000-12-19 17:42:56 +0000 (Tue, 19 Dec 2000) | 4 lines
+Changed paths:
+   M /irssi/trunk/src/core/settings.c
+
+when changing config file to new format send "setup changed" signal at
+startup so that some settings that were tried to be used before
+settings_check() was called would be properly loaded.
+
+------------------------------------------------------------------------
+r1014 | cras | 2000-12-19 17:36:00 +0000 (Tue, 19 Dec 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-server.c
+
+/SERVER REMOVE: port parameter should be optional
+
+------------------------------------------------------------------------
+r1013 | cras | 2000-12-19 17:27:23 +0000 (Tue, 19 Dec 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/fe-irc-queries.c
+
+Don't check queries whose address isn't known yet.
+
+------------------------------------------------------------------------
+r1012 | cras | 2000-12-19 11:12:52 +0000 (Tue, 19 Dec 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-messages.c
+
+don't display ignored quit messages..
+
+------------------------------------------------------------------------
+r1011 | cras | 2000-12-19 10:40:41 +0000 (Tue, 19 Dec 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/fe-irc-queries.c
+
+don't autochange nicks from dcc connections.
+
+------------------------------------------------------------------------
+r1010 | cras | 2000-12-18 19:24:21 +0000 (Mon, 18 Dec 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/gui-windows.c
+
+bugfix for displaying 128-160 ascii chars.
+
+------------------------------------------------------------------------
+r1009 | cras | 2000-12-18 17:15:14 +0000 (Mon, 18 Dec 2000) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-log.c
+
+Autologging: '/' -> '_' - don't even accidentally try to log to
+#../../../file if you happen to join to such channel..
+
+------------------------------------------------------------------------
+r1008 | cras | 2000-12-18 14:00:26 +0000 (Mon, 18 Dec 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-messages.c
+
+quit messages shouldn't crash :)
+
+------------------------------------------------------------------------
+r1007 | cras | 2000-12-17 08:28:33 +0000 (Sun, 17 Dec 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/perl/common/Core.xs
+
+Irssi::signal_emit(): changed max. parameter count from 6 to 7
+
+------------------------------------------------------------------------
+r1006 | cras | 2000-12-17 07:40:59 +0000 (Sun, 17 Dec 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/channels-setup.c
+   M /irssi/trunk/src/core/servers-setup.c
+
+removed backwards compatibility from ircnet -> chatnet change
+
+------------------------------------------------------------------------
+r1005 | cras | 2000-12-17 07:39:22 +0000 (Sun, 17 Dec 2000) | 4 lines
+Changed paths:
+   M /irssi/trunk/src/core/chat-commands.c
+   M /irssi/trunk/src/core/expandos.c
+   M /irssi/trunk/src/core/expandos.h
+   M /irssi/trunk/src/core/signals.c
+   M /irssi/trunk/src/core/signals.h
+   M /irssi/trunk/src/core/special-vars.c
+   M /irssi/trunk/src/core/special-vars.h
+   M /irssi/trunk/src/fe-common/core/fe-expandos.c
+   M /irssi/trunk/src/fe-common/core/fe-log.c
+   M /irssi/trunk/src/fe-common/core/fe-messages.c
+   M /irssi/trunk/src/fe-common/core/formats.c
+   M /irssi/trunk/src/fe-common/core/themes.c
+   M /irssi/trunk/src/fe-text/gui-readline.c
+   M /irssi/trunk/src/fe-text/gui-windows.c
+   M /irssi/trunk/src/fe-text/gui-windows.h
+   M /irssi/trunk/src/irc/core/ctcp.c
+   M /irssi/trunk/src/irc/core/irc-commands.c
+
+/SET prompt, /SET prompt_window - Specifies the text in prompt.
+'prompt' is used when channel or query is active in window and
+'prompt_window' is used with empty windows.
+
+------------------------------------------------------------------------
+r1004 | cras | 2000-12-17 05:44:45 +0000 (Sun, 17 Dec 2000) | 5 lines
+Changed paths:
+   M /irssi/trunk/src/core/core.c
+   M /irssi/trunk/src/core/modules.c
+   M /irssi/trunk/src/core/settings.c
+   M /irssi/trunk/src/core/settings.h
+   M /irssi/trunk/src/fe-common/core/fe-common-core.c
+   M /irssi/trunk/src/fe-common/core/fe-settings.c
+   M /irssi/trunk/src/fe-common/irc/fe-common-irc.c
+   M /irssi/trunk/src/fe-text/irssi.c
+   M /irssi/trunk/src/irc/core/irc-servers-setup.c
+
+Settings are now stored in module-specific blocks. Irssi complains
+about all unknown settings that are found inside those blocks.
+
+Left backwards compatibility kludge which should be removed in 0.7.98.
+
+------------------------------------------------------------------------
+r1003 | cras | 2000-12-17 04:36:14 +0000 (Sun, 17 Dec 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/autogen.sh
+   D /irssi/trunk/po/POTFILES.in
+
+Create POTFILES.in automatically in autogen
+
+------------------------------------------------------------------------
+r1002 | cras | 2000-12-17 04:20:31 +0000 (Sun, 17 Dec 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/configure.in
+
+Complain if --disable-static was tried to be used
+
+------------------------------------------------------------------------
+r1001 | cras | 2000-12-17 04:14:47 +0000 (Sun, 17 Dec 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/commands.c
+   M /irssi/trunk/src/core/commands.h
+   M /irssi/trunk/src/core/modules.c
+   M /irssi/trunk/src/core/settings.c
+   M /irssi/trunk/src/core/settings.h
+
+Destroy all settings and commands used by modules when they're unloaded.
+
+------------------------------------------------------------------------
+r1000 | cras | 2000-12-17 02:59:16 +0000 (Sun, 17 Dec 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/bans.c
+   M /irssi/trunk/src/irc/core/bans.h
+   M /irssi/trunk/src/irc/core/irc-commands.c
+
+/kickban and /knockout now accepts multiple nicks separated with commas.
+
+------------------------------------------------------------------------
+r999 | cras | 2000-12-17 02:20:22 +0000 (Sun, 17 Dec 2000) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/core/queries.c
+   M /irssi/trunk/src/core/queries.h
+   M /irssi/trunk/src/fe-common/core/fe-queries.c
+   M /irssi/trunk/src/fe-common/core/module-formats.c
+   M /irssi/trunk/src/fe-common/irc/Makefile.am
+   M /irssi/trunk/src/fe-common/irc/fe-common-irc.c
+   A /irssi/trunk/src/fe-common/irc/fe-irc-queries.c
+   M /irssi/trunk/src/fe-text/gui-windows.c
+   M /irssi/trunk/src/fe-text/statusbar-items.c
+   M /irssi/trunk/src/irc/core/irc-queries.c
+
+Some minor query fixes. Nick changes are also detected by checking if
+query with another nick from same address if found.
+
+------------------------------------------------------------------------
+r998 | cras | 2000-12-17 01:37:12 +0000 (Sun, 17 Dec 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/channels.c
+   M /irssi/trunk/src/core/queries.c
+
+removed useless chat_type checks
+
+------------------------------------------------------------------------
+r997 | cras | 2000-12-17 01:29:07 +0000 (Sun, 17 Dec 2000) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/perl/common/Themes.xs
+
+Irssi::printformat() syntax changed: removed server and target, use
+$server->printformat() or $target->printformat() if needed..
+
+------------------------------------------------------------------------
+r996 | cras | 2000-12-17 01:20:21 +0000 (Sun, 17 Dec 2000) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/core/ignore.c
+   M /irssi/trunk/src/core/nicklist.c
+   M /irssi/trunk/src/core/nicklist.h
+   M /irssi/trunk/src/fe-common/core/chat-completion.c
+   M /irssi/trunk/src/fe-common/core/fe-messages.c
+   M /irssi/trunk/src/fe-common/core/window-activity.c
+
+Improved nick_match_msg() - it shouldn't give wrong matches as easily
+anymore. Also supports multiple targets in one line (nick1,nick2: hello)
+
+------------------------------------------------------------------------
+r995 | cras | 2000-12-17 00:26:21 +0000 (Sun, 17 Dec 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-messages.c
+
+Print quit messages from nick in query windows also
+
+------------------------------------------------------------------------
+r994 | cras | 2000-12-17 00:04:51 +0000 (Sun, 17 Dec 2000) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/themes.c
+
+Theme saving to home dir didn't work correctly if globaldir already had
+the same theme.
+
+------------------------------------------------------------------------
+r993 | cras | 2000-12-16 23:38:12 +0000 (Sat, 16 Dec 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/lib-config/write.c
+
+Config file handle wasn't closed if config_write_block() failed
+
+------------------------------------------------------------------------
+r992 | cras | 2000-12-16 23:36:42 +0000 (Sat, 16 Dec 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/module-formats.c
+
+Error message was missing from theme_save_failed
+
+------------------------------------------------------------------------
+r991 | cras | 2000-12-15 19:44:27 +0000 (Fri, 15 Dec 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/irc.c
+
+Blocking sockets (win32) shouldn't block irssi entirely now.
+
+------------------------------------------------------------------------
+r990 | cras | 2000-12-10 05:55:15 +0000 (Sun, 10 Dec 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/irc-expandos.c
+
+added $usermode expando
+
+------------------------------------------------------------------------
+r989 | cras | 2000-12-10 05:51:52 +0000 (Sun, 10 Dec 2000) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/core/expandos.c
+   M /irssi/trunk/src/fe-common/core/Makefile.am
+   M /irssi/trunk/src/fe-common/core/fe-common-core.c
+   A /irssi/trunk/src/fe-common/core/fe-expandos.c
+
+fixed $topic uninit
+added $winref
+
+------------------------------------------------------------------------
+r988 | cras | 2000-12-10 05:41:01 +0000 (Sun, 10 Dec 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/expandos.c
+
+added $topic expando
+
+------------------------------------------------------------------------
+r987 | cras | 2000-12-10 05:15:57 +0000 (Sun, 10 Dec 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/expandos.c
+
+$T in empty window crashed
+
+------------------------------------------------------------------------
+r986 | cras | 2000-12-10 05:11:36 +0000 (Sun, 10 Dec 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/special-vars.c
+
+'_' character wasn't treated as acceptable $variable_name character.
+
+------------------------------------------------------------------------
+r985 | cras | 2000-12-09 23:04:35 +0000 (Sat, 09 Dec 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/po/de.po
+   M /irssi/trunk/po/pl.po
+
+removed all the now useless gnome translations
+
+------------------------------------------------------------------------
+r984 | cras | 2000-12-09 22:58:59 +0000 (Sat, 09 Dec 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/servers-reconnect.c
+
+Don't crash with /reconnect <unknown tag>
+
+------------------------------------------------------------------------
+r983 | cras | 2000-12-09 21:58:53 +0000 (Sat, 09 Dec 2000) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/perl/perl-common.c
+   M /irssi/trunk/src/perl/perl-common.h
+   M /irssi/trunk/src/perl/perl.c
+
+/perl command does now "use Irssi::Proto" for all chat protocols that
+have .pm file in @INC
+
+------------------------------------------------------------------------
+r982 | cras | 2000-12-09 20:54:47 +0000 (Sat, 09 Dec 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/perl/common/Channel.xs
+   M /irssi/trunk/src/perl/common/Core.xs
+   M /irssi/trunk/src/perl/common/Ignore.xs
+   M /irssi/trunk/src/perl/common/Log.xs
+   M /irssi/trunk/src/perl/common/Query.xs
+   M /irssi/trunk/src/perl/common/Rawlog.xs
+   M /irssi/trunk/src/perl/common/Server.xs
+   M /irssi/trunk/src/perl/common/Window.xs
+   M /irssi/trunk/src/perl/common/typemap
+   M /irssi/trunk/src/perl/get-signals.pl
+   M /irssi/trunk/src/perl/irc/Bans.xs
+   M /irssi/trunk/src/perl/irc/Dcc.xs
+   M /irssi/trunk/src/perl/irc/Flood.xs
+   M /irssi/trunk/src/perl/irc/Irc.pm
+   M /irssi/trunk/src/perl/irc/Irc.xs
+   M /irssi/trunk/src/perl/irc/IrcServer.xs
+   M /irssi/trunk/src/perl/irc/Netsplit.xs
+   M /irssi/trunk/src/perl/irc/Notifylist.xs
+   M /irssi/trunk/src/perl/irc/typemap
+   M /irssi/trunk/src/perl/perl-common.c
+   M /irssi/trunk/src/perl/perl-common.h
+   M /irssi/trunk/src/perl/perl.c
+
+fixes, perl should work correctly now :)
+
+------------------------------------------------------------------------
+r981 | cras | 2000-12-09 19:12:49 +0000 (Sat, 09 Dec 2000) | 5 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-server.c
+   M /irssi/trunk/src/fe-common/irc/fe-irc-server.c
+   M /irssi/trunk/src/fe-common/irc/fe-ircnet.c
+   M /irssi/trunk/src/irc/core/channels-query.c
+   M /irssi/trunk/src/irc/core/irc-chatnets.c
+   M /irssi/trunk/src/irc/core/irc-chatnets.h
+   M /irssi/trunk/src/irc/core/irc-servers-setup.c
+   M /irssi/trunk/src/irc/core/irc-servers-setup.h
+   M /irssi/trunk/src/irc/core/irc-servers.c
+   M /irssi/trunk/src/irc/core/irc-servers.h
+
+-querychans option for servers and ircnets which specifies how many
+channels to query in one line with MODE/WHO commands after joined to a
+number of channels. Default is 10 which works usually, with some very
+stupid servers (just found one) this has to be set to 1 however.
+
+------------------------------------------------------------------------
+r980 | cras | 2000-12-08 20:13:21 +0000 (Fri, 08 Dec 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/network.c
+
+net_receive(), net_transmit(): error handling was buggy
+
+------------------------------------------------------------------------
+r979 | cras | 2000-12-08 15:47:18 +0000 (Fri, 08 Dec 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/net-nonblock.c
+
+bugfix
+
+------------------------------------------------------------------------
+r978 | cras | 2000-12-07 19:14:27 +0000 (Thu, 07 Dec 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/irc-commands.c
+
+automatic /whowas in /whois crashed (after server <-> data change)
+
+------------------------------------------------------------------------
+r977 | cras | 2000-12-06 05:51:31 +0000 (Wed, 06 Dec 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/modes.c
+
+sometimes channel key wasn't saved.
+
+------------------------------------------------------------------------
+r976 | cras | 2000-12-06 05:42:13 +0000 (Wed, 06 Dec 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/scripts/autoop.pl
+   M /irssi/trunk/scripts/autorejoin.pl
+   M /irssi/trunk/scripts/clones.pl
+   M /irssi/trunk/scripts/hello.pl
+   M /irssi/trunk/scripts/mlock.pl
+   M /irssi/trunk/scripts/privmsg.pl
+   M /irssi/trunk/scripts/quitmsg.pl
+   M /irssi/trunk/scripts/realname.pl
+
+updated
+
+------------------------------------------------------------------------
+r975 | cras | 2000-12-06 05:35:34 +0000 (Wed, 06 Dec 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/perl/perl-common.c
+
+bugfix in handling command(), cmdchar at start of command was still required..
+
+------------------------------------------------------------------------
+r974 | cras | 2000-12-06 05:25:08 +0000 (Wed, 06 Dec 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/docs/signals.txt
+
+updated event/ctcp signals
+
+------------------------------------------------------------------------
+r973 | cras | 2000-12-06 05:22:47 +0000 (Wed, 06 Dec 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/perl/perl-common.h
+
+irssi_bless() crashed with NULL parameter
+
+------------------------------------------------------------------------
+r972 | cras | 2000-12-06 05:03:11 +0000 (Wed, 06 Dec 2000) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/perl/common/Channel.xs
+   M /irssi/trunk/src/perl/common/Core.xs
+   M /irssi/trunk/src/perl/common/Ignore.xs
+   M /irssi/trunk/src/perl/common/Log.xs
+   M /irssi/trunk/src/perl/common/Query.xs
+   M /irssi/trunk/src/perl/common/Rawlog.xs
+   M /irssi/trunk/src/perl/common/Server.xs
+   M /irssi/trunk/src/perl/common/Themes.xs
+   M /irssi/trunk/src/perl/common/Window.xs
+   M /irssi/trunk/src/perl/common/typemap
+   M /irssi/trunk/src/perl/irc/Bans.xs
+   M /irssi/trunk/src/perl/irc/Dcc.xs
+   M /irssi/trunk/src/perl/irc/Flood.xs
+   M /irssi/trunk/src/perl/irc/IrcChannel.xs
+   M /irssi/trunk/src/perl/irc/IrcServer.xs
+   M /irssi/trunk/src/perl/irc/Netsplit.xs
+   M /irssi/trunk/src/perl/irc/Notifylist.xs
+   M /irssi/trunk/src/perl/irc/module.h
+   M /irssi/trunk/src/perl/irc/typemap
+   M /irssi/trunk/src/perl/perl-common.c
+   M /irssi/trunk/src/perl/perl-common.h
+   M /irssi/trunk/src/perl/perl.c
+
+perl changes - values() method doesn't exist anymore, instead of
+$server->values()->{...} you now use directly $server->{...}
+
+------------------------------------------------------------------------
+r971 | cras | 2000-12-06 01:07:21 +0000 (Wed, 06 Dec 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/Makefile.am
+   A /irssi/trunk/src/core/nick-rec.h
+   M /irssi/trunk/src/core/nicklist.c
+   M /irssi/trunk/src/core/nicklist.h
+
+NICK_REC can be now inherited
+
+------------------------------------------------------------------------
+r970 | cras | 2000-12-06 01:06:35 +0000 (Wed, 06 Dec 2000) | 4 lines
+Changed paths:
+   M /irssi/trunk/src/core/expandos.c
+
+Use hardcoded array for signals instead of dynamic (pretty useless, "10
+is enough for everybody" :). Check sysname/sysrelease only once at
+beginning and use those values rest of the time.
+
+------------------------------------------------------------------------
+r969 | cras | 2000-12-05 21:28:42 +0000 (Tue, 05 Dec 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/po/POTFILES.in
+
+updated
+
+------------------------------------------------------------------------
+r968 | cras | 2000-12-05 21:15:57 +0000 (Tue, 05 Dec 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/po/fr.po
+   M /irssi/trunk/po/pt_BR.po
+
+updated
+
+------------------------------------------------------------------------
+r967 | cras | 2000-12-05 21:12:52 +0000 (Tue, 05 Dec 2000) | 4 lines
+Changed paths:
+   M /irssi/trunk/src/core/expandos.h
+   M /irssi/trunk/src/fe-common/irc/fe-ctcp.c
+   M /irssi/trunk/src/fe-common/irc/fe-events-numeric.c
+   M /irssi/trunk/src/fe-common/irc/fe-events.c
+   M /irssi/trunk/src/irc/bot/bot-events.c
+   M /irssi/trunk/src/irc/bot/bot-irc-commands.c
+   M /irssi/trunk/src/irc/core/channel-events.c
+   M /irssi/trunk/src/irc/core/channel-rejoin.c
+   M /irssi/trunk/src/irc/core/channels-query.c
+   M /irssi/trunk/src/irc/core/ctcp.c
+   M /irssi/trunk/src/irc/core/irc-commands.c
+   M /irssi/trunk/src/irc/core/irc-expandos.c
+   M /irssi/trunk/src/irc/core/irc-log.c
+   M /irssi/trunk/src/irc/core/irc-nicklist.c
+   M /irssi/trunk/src/irc/core/irc-queries.c
+   M /irssi/trunk/src/irc/core/irc-servers-reconnect.c
+   M /irssi/trunk/src/irc/core/irc-servers.c
+   M /irssi/trunk/src/irc/core/irc.c
+   M /irssi/trunk/src/irc/core/lag.c
+   M /irssi/trunk/src/irc/core/massjoin.c
+   M /irssi/trunk/src/irc/core/mode-lists.c
+   M /irssi/trunk/src/irc/core/modes.c
+   M /irssi/trunk/src/irc/core/netsplit.c
+   M /irssi/trunk/src/irc/dcc/dcc-chat.c
+   M /irssi/trunk/src/irc/dcc/dcc-files.c
+   M /irssi/trunk/src/irc/dcc/dcc.c
+   M /irssi/trunk/src/irc/dcc/dcc.h
+   M /irssi/trunk/src/irc/flood/flood.c
+   M /irssi/trunk/src/irc/notifylist/notify-ison.c
+   M /irssi/trunk/src/irc/notifylist/notify-whois.c
+   M /irssi/trunk/src/irc/notifylist/notifylist.c
+   M /irssi/trunk/src/irc/proxy/listen.c
+
+Server events: switched order of data and server parameters. it's now
+SERVER_REC *server, const char *data, .. hope this doesn't cause too
+many problems :)
+
+------------------------------------------------------------------------
+r966 | cras | 2000-12-05 19:43:12 +0000 (Tue, 05 Dec 2000) | 5 lines
+Changed paths:
+   M /irssi/trunk/src/core/net-nonblock.c
+   M /irssi/trunk/src/fe-text/irssi.c
+
+net_gethostbyname_nonblock(): don't crash if net_gethosterror() returns
+error message as NULL.
+
+Initialize winsock with win32.
+
+------------------------------------------------------------------------
+r965 | cras | 2000-12-05 01:01:53 +0000 (Tue, 05 Dec 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/bot/bot-users.c
+   M /irssi/trunk/src/irc/bot/botnet-connection.c
+   M /irssi/trunk/src/irc/bot/botnet.c
+   M /irssi/trunk/src/irc/bot/botnet.h
+   M /irssi/trunk/src/irc/proxy/listen.c
+   M /irssi/trunk/src/irc/proxy/module.h
+
+bot & proxy plugins fixed for GIOChannel changes
+
+------------------------------------------------------------------------
+r964 | cras | 2000-12-05 00:53:04 +0000 (Tue, 05 Dec 2000) | 3 lines
+Changed paths:
+   M /irssi/trunk/docs/signals.txt
+   M /irssi/trunk/src/core/Makefile.am
+   M /irssi/trunk/src/core/core.c
+   A /irssi/trunk/src/core/expandos.c
+   A /irssi/trunk/src/core/expandos.h
+   M /irssi/trunk/src/core/special-vars.c
+   M /irssi/trunk/src/core/special-vars.h
+   M /irssi/trunk/src/fe-text/Makefile.am
+   A /irssi/trunk/src/fe-text/gui-expandos.c
+   D /irssi/trunk/src/fe-text/gui-special-vars.c
+   D /irssi/trunk/src/fe-text/gui-special-vars.h
+   D /irssi/trunk/src/fe-text/gui-textwidget.h
+   M /irssi/trunk/src/fe-text/irssi.c
+   M /irssi/trunk/src/irc/core/Makefile.am
+   M /irssi/trunk/src/irc/core/irc-core.c
+   A /irssi/trunk/src/irc/core/irc-expandos.c
+   D /irssi/trunk/src/irc/core/irc-special-vars.c
+   M /irssi/trunk/src/irc/core/irc.c
+   M /irssi/trunk/src/irc/notifylist/notify-whois.c
+   M /irssi/trunk/src/irc/proxy/listen.c
+
+Split expandos from special-vars.c to expandos.c. Added list of signals
+to each expando that can might change it's value.
+
+------------------------------------------------------------------------
+r963 | cras | 2000-12-04 23:53:28 +0000 (Mon, 04 Dec 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/signals.c
+   M /irssi/trunk/src/core/signals.h
+
+added signal_add_to_id()
+
+------------------------------------------------------------------------
+r962 | cras | 2000-12-04 22:57:18 +0000 (Mon, 04 Dec 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/common.h
+   M /irssi/trunk/src/core/misc.c
+   M /irssi/trunk/src/core/net-disconnect.c
+   M /irssi/trunk/src/core/net-nonblock.c
+   M /irssi/trunk/src/core/net-nonblock.h
+   M /irssi/trunk/src/core/net-sendbuffer.c
+   M /irssi/trunk/src/core/net-sendbuffer.h
+   M /irssi/trunk/src/core/network.c
+   M /irssi/trunk/src/core/network.h
+   M /irssi/trunk/src/core/server-rec.h
+   M /irssi/trunk/src/core/servers.c
+   M /irssi/trunk/src/fe-text/gui-readline.c
+   M /irssi/trunk/src/irc/dcc/dcc-chat.c
+   M /irssi/trunk/src/irc/dcc/dcc-files.c
+   M /irssi/trunk/src/irc/dcc/dcc.c
+   M /irssi/trunk/src/irc/dcc/dcc.h
+
+Use GIOChannel instead of sockets directly. Helps porting to win32 :)
+
+------------------------------------------------------------------------
+r961 | cras | 2000-12-04 20:36:00 +0000 (Mon, 04 Dec 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/gui-printtext.c
+
+/CLEAR -all - clear all windows.
+
+------------------------------------------------------------------------
+r960 | cras | 2000-12-04 20:35:44 +0000 (Mon, 04 Dec 2000) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/core/commands.c
+
+cmd_get_params() didn't work correctly if we didn't want any paramers
+but only options.
+
+------------------------------------------------------------------------
+r959 | cras | 2000-12-04 15:15:03 +0000 (Mon, 04 Dec 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/gui-windows.c
+
+don't allow printing iso8859-1 nonprintable highascii chars.
+
+------------------------------------------------------------------------
+r958 | cras | 2000-12-04 13:11:44 +0000 (Mon, 04 Dec 2000) | 4 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/gui-readline.c
+
+/SET scroll_page_count - how many lines to scroll with pgup/pgdn. either
+an absolute value, or if the count starts with '/', it's calculated as
+lines_in_screen/count, default is /2.
+
+------------------------------------------------------------------------
+r957 | cras | 2000-12-04 11:01:37 +0000 (Mon, 04 Dec 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-core-commands.c
+
+/^command should stop also "print starting" and "print format" signals.
+
+------------------------------------------------------------------------
+r956 | cras | 2000-12-04 09:18:58 +0000 (Mon, 04 Dec 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/default.theme
+
+privmsg had extra '-'
+
+------------------------------------------------------------------------
+r955 | cras | 2000-12-04 04:07:19 +0000 (Mon, 04 Dec 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/po/pt_BR.po
+
+updated
+
+------------------------------------------------------------------------
+r954 | cras | 2000-12-04 03:56:32 +0000 (Mon, 04 Dec 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/formats.c
+
+removed useless if condition
+
+------------------------------------------------------------------------
+r953 | cras | 2000-12-04 03:37:22 +0000 (Mon, 04 Dec 2000) | 4 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/printtext.c
+
+use format_get_text_theme_charargs() instead of ..._args() in
+printformat_module_dest() since we already have arguments in char **
+table.
+
+------------------------------------------------------------------------
+r952 | cras | 2000-12-04 02:45:34 +0000 (Mon, 04 Dec 2000) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/chat-completion.c
+
+In queries the queried nick was always added to completion list even if
+the word to be completed didn't start with the same characters
+
+------------------------------------------------------------------------
+r951 | cras | 2000-12-04 02:26:33 +0000 (Mon, 04 Dec 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/dcc/fe-dcc.c
+
+own dcc messages weren't displayed in right window.
+
+------------------------------------------------------------------------
+r949 | cras | 2000-12-03 07:27:39 +0000 (Sun, 03 Dec 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/configure.in
+
+perl ldflags parsing fixes
+
+------------------------------------------------------------------------
+r948 | cras | 2000-12-03 06:39:28 +0000 (Sun, 03 Dec 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/configure.in
+   M /irssi/trunk/po/de.po
+   M /irssi/trunk/po/fr.po
+   M /irssi/trunk/po/pl.po
+   M /irssi/trunk/po/pt_BR.po
+   M /irssi/trunk/po/sv.po
+   M /irssi/trunk/src/fe-common/core/fe-settings.c
+   M /irssi/trunk/src/nls.h
+   M /irssi/trunk/src/perl/Makefile.am
+
+nl_langinfo() was a bad idea, don't use it.
+
+------------------------------------------------------------------------
+r947 | cras | 2000-12-03 06:36:19 +0000 (Sun, 03 Dec 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/colorless.theme
+   M /irssi/trunk/default.theme
+
+updates
+
+------------------------------------------------------------------------
+r946 | cras | 2000-12-03 06:22:35 +0000 (Sun, 03 Dec 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/printtext.c
+
+printtext_multiline(): use the specified level, not MSGLEVEL_NEVER always.
+
+------------------------------------------------------------------------
+r945 | cras | 2000-12-03 06:21:26 +0000 (Sun, 03 Dec 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/Makefile.am
+   D /irssi/trunk/split.theme
+
+updates
+
+------------------------------------------------------------------------
+r944 | cras | 2000-12-03 06:15:58 +0000 (Sun, 03 Dec 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/docs/startup-HOWTO.txt
+
+updated
+
+------------------------------------------------------------------------
+r943 | cras | 2000-12-03 06:07:33 +0000 (Sun, 03 Dec 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/gui-printtext.c
+
+Don't crash if first line in window is just a newline
+
+------------------------------------------------------------------------
+r942 | cras | 2000-12-03 05:47:50 +0000 (Sun, 03 Dec 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/irssi.c
+
+print the firsttimer info to irssi's window instead of stdout.
+
+------------------------------------------------------------------------
+r941 | cras | 2000-12-03 05:34:41 +0000 (Sun, 03 Dec 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/NEWS
+   M /irssi/trunk/TODO
+   M /irssi/trunk/configure.in
+   M /irssi/trunk/docs/signals.txt
+   M /irssi/trunk/po/de.po
+   M /irssi/trunk/po/fr.po
+   M /irssi/trunk/po/pl.po
+   M /irssi/trunk/po/pt_BR.po
+   M /irssi/trunk/po/sv.po
+
+Getting ready for 0.7.97..
+
+------------------------------------------------------------------------
+r940 | cras | 2000-12-03 05:23:26 +0000 (Sun, 03 Dec 2000) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/irssi.c
+
+complain about old default.themes
+notify new irssi users about startup-HOWTO
+
+------------------------------------------------------------------------
+r939 | cras | 2000-12-03 04:48:01 +0000 (Sun, 03 Dec 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/fe-netsplit.c
+   M /irssi/trunk/src/irc/core/netsplit.c
+
+signal "netsplit add" -> "netsplit new"
+
+------------------------------------------------------------------------
+r938 | cras | 2000-12-03 04:44:36 +0000 (Sun, 03 Dec 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/gui-windows.c
+
+Don't redraw screen when trying to scroll up at the start of scrollback
+
+------------------------------------------------------------------------
+r937 | cras | 2000-12-03 04:43:53 +0000 (Sun, 03 Dec 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/perl/common/Window.xs
+   M /irssi/trunk/src/perl/perl-common.c
+
+command() doesn't need cmdchar at start of command anymore.
+
+------------------------------------------------------------------------
+r936 | cras | 2000-12-03 04:31:17 +0000 (Sun, 03 Dec 2000) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/core/servers-reconnect.c
+
+/RECONNECT without any parameters and when not connected to any server
+reconnects to first server in reconnect list.
+
+------------------------------------------------------------------------
+r935 | cras | 2000-12-03 04:27:01 +0000 (Sun, 03 Dec 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/proxy/listen.c
+
+Reply to clients which send IRSSILAG notices to themselves.
+
+------------------------------------------------------------------------
+r934 | cras | 2000-12-03 02:38:42 +0000 (Sun, 03 Dec 2000) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/dcc/fe-dcc.c
+
+Removed targets from printformat()s so all those extra dcc messages
+would go to status window instead of the dcc chat queries.
+
+------------------------------------------------------------------------
+r933 | cras | 2000-12-03 02:28:01 +0000 (Sun, 03 Dec 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/module-formats.c
+   M /irssi/trunk/src/fe-text/gui-windows.c
+
+fixes
+
+------------------------------------------------------------------------
+r932 | cras | 2000-12-03 02:20:49 +0000 (Sun, 03 Dec 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/default.theme
+
+updates
+
+------------------------------------------------------------------------
+r931 | cras | 2000-12-03 02:20:38 +0000 (Sun, 03 Dec 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/default.theme
+   M /irssi/trunk/src/fe-common/core/module-formats.c
+   M /irssi/trunk/src/fe-common/irc/dcc/fe-dcc.c
+   M /irssi/trunk/src/fe-common/irc/dcc/module-formats.c
+   M /irssi/trunk/src/fe-common/irc/module-formats.c
+
+Theme updates
+
+------------------------------------------------------------------------
+r930 | cras | 2000-12-03 01:43:07 +0000 (Sun, 03 Dec 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/fe-events-numeric.c
+
+Remove trailing spaces from all modes
+
+------------------------------------------------------------------------
+r929 | cras | 2000-12-03 01:13:05 +0000 (Sun, 03 Dec 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-messages.c
+
+/SET show_nickmode_empty - when mode is empty, should we display " " or ""
+
+------------------------------------------------------------------------
+r928 | cras | 2000-12-03 00:10:20 +0000 (Sun, 03 Dec 2000) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/printtext.c
+
+/SET emphasis - convert _underlined_ and *bold* words (and phrases) to use
+real underlines/bolds. patch by tommik.
+
+------------------------------------------------------------------------
+r927 | cras | 2000-12-02 23:53:35 +0000 (Sat, 02 Dec 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/themes.c
+
+Theme saving fixes
+
+------------------------------------------------------------------------
+r926 | cras | 2000-12-02 22:08:07 +0000 (Sat, 02 Dec 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/formats.c
+   M /irssi/trunk/src/fe-common/core/formats.h
+   M /irssi/trunk/src/fe-common/core/printtext.c
+   M /irssi/trunk/src/fe-text/gui-windows.c
+
+Print timestamps correctly with /SB REDRAW
+
+------------------------------------------------------------------------
+r925 | cras | 2000-12-02 22:07:24 +0000 (Sat, 02 Dec 2000) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/window-items.c
+
+/SET autocreate_windows - should we create new windows for new window
+items or just place everything to one window
+
+------------------------------------------------------------------------
+r924 | cras | 2000-12-02 22:03:26 +0000 (Sat, 02 Dec 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/statusbar-items.c
+
+Moved activity to last item in statusbar
+
+------------------------------------------------------------------------
+r923 | cras | 2000-12-02 20:34:00 +0000 (Sat, 02 Dec 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/gui-printtext.c
+   M /irssi/trunk/src/fe-text/gui-printtext.h
+   M /irssi/trunk/src/fe-text/gui-windows.c
+
+/SB REDRAW fixes, multiline formats should work now correctly.
+
+------------------------------------------------------------------------
+r922 | cras | 2000-12-02 19:08:21 +0000 (Sat, 02 Dec 2000) | 7 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-channels.c
+   M /irssi/trunk/src/fe-common/core/fe-log.c
+   M /irssi/trunk/src/fe-common/core/fe-queries.c
+   M /irssi/trunk/src/fe-common/core/fe-windows.c
+   M /irssi/trunk/src/fe-common/core/fe-windows.h
+   M /irssi/trunk/src/fe-common/core/window-commands.c
+   M /irssi/trunk/src/fe-common/core/window-items.c
+   M /irssi/trunk/src/fe-common/core/window-items.h
+   M /irssi/trunk/src/fe-text/mainwindows.c
+   M /irssi/trunk/src/perl/common/Window.xs
+
+window_[add|remove]_item -> window_item_[add|remove]
+
+added window_item_destroy(), window_item_remove() doesn't destroy the
+item anymore
+
+window_find_item()'s first parameter changed from WINDOW_REC to SERVER_REC
+
+------------------------------------------------------------------------
+r921 | cras | 2000-12-02 19:06:24 +0000 (Sat, 02 Dec 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-settings.c
+
+typofix
+
+------------------------------------------------------------------------
+r920 | cras | 2000-12-02 19:05:03 +0000 (Sat, 02 Dec 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-settings.c
+   M /irssi/trunk/src/nls.h
+
+nl_langinfo() didn't work like i thought - fixed :)
+
+------------------------------------------------------------------------
+r919 | cras | 2000-12-02 07:55:55 +0000 (Sat, 02 Dec 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-channels.c
+   M /irssi/trunk/src/fe-common/core/fe-queries.c
+
+"window item remove" signal: destroy the channel/query record _last_
+
+------------------------------------------------------------------------
+r918 | cras | 2000-12-02 07:08:49 +0000 (Sat, 02 Dec 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/lib-popt/findme.c
+   M /irssi/trunk/src/lib-popt/poptconfig.c
+   M /irssi/trunk/src/lib-popt/popthelp.c
+   M /irssi/trunk/src/lib-popt/poptparse.c
+
+..and removed the rest of the alloca()s too
+
+------------------------------------------------------------------------
+r917 | cras | 2000-12-02 07:02:59 +0000 (Sat, 02 Dec 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/lib-popt/popt.c
+
+don't use alloca()
+
+------------------------------------------------------------------------
+r916 | cras | 2000-12-02 06:08:31 +0000 (Sat, 02 Dec 2000) | 4 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-channels.c
+   M /irssi/trunk/src/fe-common/core/window-commands.c
+   M /irssi/trunk/src/fe-common/core/window-items.c
+   M /irssi/trunk/src/fe-common/core/window-items.h
+
+/WINDOW ITEM GOTO <name> - sets <name> window item active in current window
+/WINDOW ITEM MOVE <number>|<name> - moves window item to another window
+/JOIN #already_joined_channel - same as /WINDOW ITEM MOVE <name>
+
+------------------------------------------------------------------------
+r915 | cras | 2000-12-02 05:03:01 +0000 (Sat, 02 Dec 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/nls.h
+
+Forgot to commit for the nl_langinfo()
+
+------------------------------------------------------------------------
+r914 | cras | 2000-12-02 05:01:55 +0000 (Sat, 02 Dec 2000) | 4 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/chat-completion.c
+
+Nick completion now completes nicks from all channels in active window,
+except when completing the first word in line only nicks in active
+channel are completed.
+
+------------------------------------------------------------------------
+r913 | cras | 2000-12-02 04:48:27 +0000 (Sat, 02 Dec 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/perl/common/Window.xs
+
+small "fix"
+
+------------------------------------------------------------------------
+r912 | cras | 2000-12-02 04:44:06 +0000 (Sat, 02 Dec 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/configure.in
+   M /irssi/trunk/src/fe-common/core/fe-settings.c
+
+Use langinfo.h's nl_langinfo(YESEXPR) instead of 'Y'.
+
+------------------------------------------------------------------------
+r911 | cras | 2000-12-02 04:43:30 +0000 (Sat, 02 Dec 2000) | 4 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-common-core.c
+
+Changed init order of fe_channels vs. window_items, now irssi won't print
+twice the "talking with xx" and "talking in xx" when using ^X to change
+to another channel in window.
+
+------------------------------------------------------------------------
+r910 | cras | 2000-12-02 02:01:51 +0000 (Sat, 02 Dec 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/Makefile.am
+   M /irssi/trunk/file2header.sh
+   M /irssi/trunk/src/fe-common/core/themes.c
+
+internal default.theme is used if it isn't found anywhere
+
+------------------------------------------------------------------------
+r909 | cras | 2000-12-02 02:01:28 +0000 (Sat, 02 Dec 2000) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/lib-config/parse.c
+
+config_close() didn't work correctly when config was parsed from string
+instead of file.
+
+------------------------------------------------------------------------
+r908 | cras | 2000-12-01 13:21:54 +0000 (Fri, 01 Dec 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/proxy/listen.c
+
+ARGH! %s format bug!
+
+------------------------------------------------------------------------
+r907 | cras | 2000-12-01 01:31:55 +0000 (Fri, 01 Dec 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/fe-events.c
+
+Remove trailing spaces from mode changes
+
+------------------------------------------------------------------------
+r906 | cras | 2000-12-01 01:00:28 +0000 (Fri, 01 Dec 2000) | 5 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/Makefile.am
+   M /irssi/trunk/src/fe-common/irc/fe-common-irc.c
+   M /irssi/trunk/src/fe-common/irc/fe-events.c
+   A /irssi/trunk/src/fe-common/irc/fe-modes.c
+   M /irssi/trunk/src/fe-common/irc/fe-netjoin.c
+   M /irssi/trunk/src/fe-common/irc/fe-netsplit.c
+
+Netsplit printing fixes.
+
+Print multiple identical mode changes in one line
+(mode +o nick by nick1, nick2, nick3)
+
+------------------------------------------------------------------------
+r905 | cras | 2000-11-30 23:13:15 +0000 (Thu, 30 Nov 2000) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/irc-commands.c
+   M /irssi/trunk/src/irc/core/irc-servers.c
+   M /irssi/trunk/src/irc/core/irc-servers.h
+   M /irssi/trunk/src/irc/core/irc.c
+
+/WAIT [-<server tag>] <milliseconds> - wait for <milliseconds> before
+sending anything else to server
+
+------------------------------------------------------------------------
+r904 | cras | 2000-11-30 23:12:42 +0000 (Thu, 30 Nov 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/misc.c
+   M /irssi/trunk/src/core/misc.h
+
+added g_timeval_cmp()
+
+------------------------------------------------------------------------
+r903 | cras | 2000-11-30 22:58:45 +0000 (Thu, 30 Nov 2000) | 6 lines
+Changed paths:
+   M /irssi/trunk/src/core/servers.c
+   M /irssi/trunk/src/core/special-vars.c
+
+cmd_options_get_server() : allow NULL cmd argument
+
+eval_special_string() : if any of the commands separated with ; used
+the arguments ($0, $1, etc.) don't anymore append all the arguments
+after other commands.
+
+------------------------------------------------------------------------
+r902 | cras | 2000-11-30 17:00:51 +0000 (Thu, 30 Nov 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/window-items.c
+
+Bugfix for deciding which window to place new window item.
+
+------------------------------------------------------------------------
+r901 | cras | 2000-11-30 16:32:28 +0000 (Thu, 30 Nov 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/fe-netjoin.c
+
+crashfix
+
+------------------------------------------------------------------------
+r900 | cras | 2000-11-30 01:44:07 +0000 (Thu, 30 Nov 2000) | 4 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/fe-netjoin.c
+   M /irssi/trunk/src/fe-common/irc/fe-netsplit.c
+
+While waiting for more netsplits/netjoins, if anything else is printed
+to screen, print the current netsplit/netjoin messages before that text.
+not tested, hope it works ;)
+
+------------------------------------------------------------------------
+r899 | cras | 2000-11-30 01:41:11 +0000 (Thu, 30 Nov 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/printtext.c
+
+send "print starting" signal before each printformat() or printtext()
+
+------------------------------------------------------------------------
+r898 | cras | 2000-11-30 01:14:49 +0000 (Thu, 30 Nov 2000) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/core/misc.c
+
+stristr() and stristr_full() didn't work correctly with empty needle
+argument.
+
+------------------------------------------------------------------------
+r897 | cras | 2000-11-30 01:13:34 +0000 (Thu, 30 Nov 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/gui-windows.c
+
+window_text_find() didn't work correctly with empty find string.
+
+------------------------------------------------------------------------
+r896 | cras | 2000-11-29 16:05:15 +0000 (Wed, 29 Nov 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/settings.c
+
+file_checksum() shouldn't crash if it can't open the file.
+
+------------------------------------------------------------------------
+r895 | cras | 2000-11-28 17:43:39 +0000 (Tue, 28 Nov 2000) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/channels-query.c
+
+Don't ever send more than 10 channels/line in mode/who requests. Though
+usually the max. channels/server limit is 10 :)
+
+------------------------------------------------------------------------
+r894 | cras | 2000-11-28 17:32:45 +0000 (Tue, 28 Nov 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/channels-query.c
+
+bugfixes with channel syncing.
+
+------------------------------------------------------------------------
+r893 | cras | 2000-11-27 17:18:58 +0000 (Mon, 27 Nov 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/gui-printtext.c
+   M /irssi/trunk/src/fe-text/gui-windows.c
+
+fixed text buffer crash when scrollback got full
+
+------------------------------------------------------------------------
+r892 | cras | 2000-11-27 15:47:26 +0000 (Mon, 27 Nov 2000) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/netsplit.c
+
+don't destroy all netsplits when someone joins back from split, only
+the nicks that were in same server
+
+------------------------------------------------------------------------
+r891 | cras | 2000-11-27 14:44:54 +0000 (Mon, 27 Nov 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/configure.in
+
+perl bugfix
+
+------------------------------------------------------------------------
+r890 | cras | 2000-11-27 14:36:07 +0000 (Mon, 27 Nov 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/configure.in
+
+bugfix
+
+------------------------------------------------------------------------
+r889 | cras | 2000-11-27 11:53:07 +0000 (Mon, 27 Nov 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-common-core.c
+
+added dccmsgs level to msgs window.
+
+------------------------------------------------------------------------
+r888 | cras | 2000-11-27 10:44:46 +0000 (Mon, 27 Nov 2000) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/irc-channels.c
+
+Call /part command instead of directly sending part message to server when
+destroying channel.
+
+------------------------------------------------------------------------
+r887 | cras | 2000-11-27 01:23:28 +0000 (Mon, 27 Nov 2000) | 2 lines
+Changed paths:
+   A /irssi/trunk/src/perl/common/Themes.xs
+
+forgot to add this
+
+------------------------------------------------------------------------
+r886 | cras | 2000-11-26 10:24:30 +0000 (Sun, 26 Nov 2000) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/core/channels-setup.c
+   M /irssi/trunk/src/core/ignore.c
+   M /irssi/trunk/src/core/log.c
+   M /irssi/trunk/src/core/servers-setup.c
+   M /irssi/trunk/src/core/settings.h
+   M /irssi/trunk/src/fe-common/core/hilight-text.c
+   M /irssi/trunk/src/irc/bot/bot-users.c
+   M /irssi/trunk/src/irc/core/irc-chatnets.c
+   M /irssi/trunk/src/irc/core/irc-servers-setup.c
+   M /irssi/trunk/src/irc/notifylist/notify-setup.c
+   M /irssi/trunk/src/lib-config/iconfig.h
+   M /irssi/trunk/src/lib-config/set.c
+
+config changes, CONFIG_REC is now required parameter for
+config_node_set_int/bool() and config_node_add_list()
+
+------------------------------------------------------------------------
+r885 | cras | 2000-11-26 09:23:35 +0000 (Sun, 26 Nov 2000) | 3 lines
+Changed paths:
+   M /irssi/trunk/configure.in
+
+if libperl.a isn't found, check from /usr/lib .. it seems to be there
+with perl 5.6
+
+------------------------------------------------------------------------
+r884 | cras | 2000-11-26 09:22:18 +0000 (Sun, 26 Nov 2000) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/core/core.c
+   M /irssi/trunk/src/fe-common/core/themes.c
+   M /irssi/trunk/src/fe-text/irssi.c
+   M /irssi/trunk/src/perl/common/Irssi.xs
+   M /irssi/trunk/src/perl/common/Makefile.PL.in
+   M /irssi/trunk/src/perl/common/Window.xs
+   M /irssi/trunk/src/perl/common/module.h
+   M /irssi/trunk/src/perl/perl-common.c
+   M /irssi/trunk/src/perl/perl-common.h
+   M /irssi/trunk/src/perl/perl.c
+
+Perl fixes and additions. theme_register() / printformat() works now
+with scripts
+
+------------------------------------------------------------------------
+r883 | cras | 2000-11-26 05:37:18 +0000 (Sun, 26 Nov 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/fe-events.c
+
+Mode ignores were checked wrong
+
+------------------------------------------------------------------------
+r882 | cras | 2000-11-26 05:33:51 +0000 (Sun, 26 Nov 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/fe-events.c
+   M /irssi/trunk/src/fe-common/irc/fe-netjoin.c
+   M /irssi/trunk/src/fe-common/irc/module-formats.c
+
+netsplit fixes
+
+------------------------------------------------------------------------
+r881 | cras | 2000-11-26 05:08:30 +0000 (Sun, 26 Nov 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/autogen.sh
+
+Don't generate colorless.theme
+
+------------------------------------------------------------------------
+r880 | cras | 2000-11-26 05:08:11 +0000 (Sun, 26 Nov 2000) | 2 lines
+Changed paths:
+   A /irssi/trunk/colorless.theme
+   M /irssi/trunk/default.theme
+   M /irssi/trunk/src/fe-common/core/themes.c
+   M /irssi/trunk/src/fe-common/irc/module-formats.c
+
+theme fixes
+
+------------------------------------------------------------------------
+r879 | cras | 2000-11-26 03:52:23 +0000 (Sun, 26 Nov 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-core-commands.c
+
+Added -current, -window and -level options to /echo
+
+------------------------------------------------------------------------
+r878 | cras | 2000-11-26 03:52:02 +0000 (Sun, 26 Nov 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-windows.c
+
+window_find_item() was buggy if window argument was NULL
+
+------------------------------------------------------------------------
+r877 | cras | 2000-11-26 03:24:36 +0000 (Sun, 26 Nov 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/irc-commands.c
+
+/SET part_message - default message with /PART
+
+------------------------------------------------------------------------
+r876 | cras | 2000-11-26 03:21:46 +0000 (Sun, 26 Nov 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/gui-readline.c
+
+KEY_END isn't defined in all curses implementations
+
+------------------------------------------------------------------------
+r875 | cras | 2000-11-26 03:18:24 +0000 (Sun, 26 Nov 2000) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/fe-netsplit.c
+
+Sometimes netsplit messages didn't get printed at all (those that came
+after 3 seconds after split started)
+
+------------------------------------------------------------------------
+r874 | cras | 2000-11-26 02:53:50 +0000 (Sun, 26 Nov 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/window-commands.c
+
+/WINDOW <number> is now same as /WINDOW REFNUM <number>
+
+------------------------------------------------------------------------
+r873 | cras | 2000-11-26 02:49:21 +0000 (Sun, 26 Nov 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/themes.c
+
+/format -reset crashed irssi
+
+------------------------------------------------------------------------
+r872 | cras | 2000-11-26 02:26:13 +0000 (Sun, 26 Nov 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/settings.c
+   M /irssi/trunk/src/lib-config/set.c
+
+some updates for checking when to not autosave config.
+
+------------------------------------------------------------------------
+r871 | cras | 2000-11-26 02:17:14 +0000 (Sun, 26 Nov 2000) | 6 lines
+Changed paths:
+   M /irssi/trunk/src/core/settings.c
+   M /irssi/trunk/src/lib-config/iconfig.h
+   M /irssi/trunk/src/lib-config/set.c
+
+Added modify counter which is increased every time something is changed
+in configuration.
+
+Autosaving settings doesn't even try to save them if config isn't
+changed.
+
+------------------------------------------------------------------------
+r870 | cras | 2000-11-26 02:09:15 +0000 (Sun, 26 Nov 2000) | 8 lines
+Changed paths:
+   M /irssi/trunk/src/core/servers-reconnect.c
+   M /irssi/trunk/src/core/servers-reconnect.h
+   M /irssi/trunk/src/irc/core/irc-commands.c
+
+Added some magic to /SERVER - if there's no server to disconnect from
+in active server, irssi checks if some reconnection should be used
+instead.
+
+If there's one reconnection, /SERVER always uses it.
+If there's reconnection to same host, it will be used (+same port is
+preferred)
+
+------------------------------------------------------------------------
+r869 | cras | 2000-11-26 01:30:05 +0000 (Sun, 26 Nov 2000) | 5 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/fe-events.c
+   M /irssi/trunk/src/fe-common/irc/module-formats.c
+   M /irssi/trunk/src/fe-common/irc/module-formats.h
+   M /irssi/trunk/src/irc/core/irc-servers-reconnect.c
+
+Added KILL handling - user/server kills are now printed formatted.
+
+If server kills you, connect back (almost) immediately, it was probably
+just nick collision and you really want to connect back soon.
+
+------------------------------------------------------------------------
+r868 | cras | 2000-11-25 23:05:50 +0000 (Sat, 25 Nov 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/perl/common/Channel.xs
+   M /irssi/trunk/src/perl/common/Core.xs
+   M /irssi/trunk/src/perl/common/Irssi.pm
+   M /irssi/trunk/src/perl/common/Window.xs
+   M /irssi/trunk/src/perl/common/module.h
+
+added functions from fe-windows.h and window-items.h
+
+------------------------------------------------------------------------
+r867 | cras | 2000-11-25 20:54:24 +0000 (Sat, 25 Nov 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/misc.c
+
+mkpath() crashed with paths that didn't start with /
+
+------------------------------------------------------------------------
+r866 | cras | 2000-11-25 16:30:56 +0000 (Sat, 25 Nov 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/log.c
+   M /irssi/trunk/src/fe-common/core/fe-log.c
+
+Time formats didn't work in directory name of autologs.
+
+------------------------------------------------------------------------
+r865 | cras | 2000-11-23 23:29:32 +0000 (Thu, 23 Nov 2000) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/common.h
+   M /irssi/trunk/src/core/misc.c
+   M /irssi/trunk/src/core/net-nonblock.c
+   M /irssi/trunk/src/core/servers.c
+   M /irssi/trunk/src/irc/dcc/dcc-chat.c
+   M /irssi/trunk/src/irc/dcc/dcc-files.c
+   M /irssi/trunk/src/perl/perl.c
+
+s/enum GInputCondition/int/ - enums aren't supposed to orred together i
+think.. at least MIPSpro gave warnings about it and it also feels wrong :)
+
+------------------------------------------------------------------------
+r864 | cras | 2000-11-23 23:23:45 +0000 (Thu, 23 Nov 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/gui-printtext.c
+   M /irssi/trunk/src/perl/common/Window.xs
+   M /irssi/trunk/src/perl/irc/IrcChannel.xs
+
+Still some warnings removed..
+
+------------------------------------------------------------------------
+r863 | cras | 2000-11-23 23:06:29 +0000 (Thu, 23 Nov 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/themes.c
+   M /irssi/trunk/src/fe-text/gui-printtext.c
+   M /irssi/trunk/src/fe-text/gui-readline.c
+   M /irssi/trunk/src/fe-text/gui-windows.c
+   M /irssi/trunk/src/perl/perl.c
+
+more warning fixes
+
+------------------------------------------------------------------------
+r862 | cras | 2000-11-23 22:59:14 +0000 (Thu, 23 Nov 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/lib-config/parse.c
+
+more enum fixes
+
+------------------------------------------------------------------------
+r861 | cras | 2000-11-23 22:57:59 +0000 (Thu, 23 Nov 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-windows.h
+   M /irssi/trunk/src/fe-common/core/hilight-text.h
+   M /irssi/trunk/src/irc/bot/botnet.h
+   M /irssi/trunk/src/irc/core/channel-rejoin.h
+   M /irssi/trunk/src/irc/core/irc-servers.h
+   M /irssi/trunk/src/irc/core/netsplit.h
+   M /irssi/trunk/src/irc/dcc/dcc.h
+   M /irssi/trunk/src/irc/notifylist/module.h
+   M /irssi/trunk/src/irc/notifylist/notifylist.h
+   M /irssi/trunk/src/irc/proxy/module.h
+
+more changes from int xx:1 to unsigned int xx:1
+
+------------------------------------------------------------------------
+r860 | cras | 2000-11-23 22:42:37 +0000 (Thu, 23 Nov 2000) | 3 lines
+Changed paths:
+   M /irssi/trunk/Makefile.am
+   M /irssi/trunk/configure.in
+
+If glib sources are found from some subdirectory, always compile it and
+use it even if glib is already installed somewhere else.
+
+------------------------------------------------------------------------
+r859 | cras | 2000-11-23 21:40:07 +0000 (Thu, 23 Nov 2000) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/core/channel-rec.h
+   M /irssi/trunk/src/core/channels-setup.h
+   M /irssi/trunk/src/core/ignore.c
+   M /irssi/trunk/src/core/ignore.h
+   M /irssi/trunk/src/core/log.h
+   M /irssi/trunk/src/core/misc.c
+   M /irssi/trunk/src/core/modules.c
+   M /irssi/trunk/src/core/net-nonblock.c
+   M /irssi/trunk/src/core/nicklist.h
+   M /irssi/trunk/src/core/query-rec.h
+   M /irssi/trunk/src/core/server-connect-rec.h
+   M /irssi/trunk/src/core/server-rec.h
+   M /irssi/trunk/src/core/server-setup-rec.h
+   M /irssi/trunk/src/core/servers.c
+   M /irssi/trunk/src/core/settings.c
+   M /irssi/trunk/src/core/settings.h
+   M /irssi/trunk/src/fe-common/core/fe-core-commands.c
+   M /irssi/trunk/src/fe-common/irc/fe-events-numeric.c
+   M /irssi/trunk/src/fe-text/gui-windows.h
+   M /irssi/trunk/src/irc/core/ctcp.c
+   M /irssi/trunk/src/irc/core/irc-channels.c
+   M /irssi/trunk/src/irc/core/irc-nicklist.c
+   M /irssi/trunk/src/irc/core/irc-servers.c
+   M /irssi/trunk/src/irc/core/irc.c
+   M /irssi/trunk/src/irc/dcc/dcc-chat.c
+   M /irssi/trunk/src/irc/dcc/dcc-files.c
+   M /irssi/trunk/src/lib-config/get.c
+   M /irssi/trunk/src/lib-config/parse.c
+   M /irssi/trunk/src/perl/common/Core.xs
+   M /irssi/trunk/src/perl/common/module.h
+
+several fixes to make irssi compile without warnings with MIPSpro
+also fixed ctcp_queue_clean() - it might have crashed sometimes..
+
+------------------------------------------------------------------------
+r858 | cras | 2000-11-22 20:01:47 +0000 (Wed, 22 Nov 2000) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/hilight-text.c
+   M /irssi/trunk/src/fe-text/gui-printtext.c
+
+hilight-text: whops, bugfix went wrong :)
+fe-text: removed the warning that happened when calling printbeep()
+
+------------------------------------------------------------------------
+r857 | cras | 2000-11-22 19:46:43 +0000 (Wed, 22 Nov 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/hilight-text.c
+   M /irssi/trunk/src/fe-common/core/printtext.c
+
+bugfixes
+
+------------------------------------------------------------------------
+r856 | cras | 2000-11-21 23:26:07 +0000 (Tue, 21 Nov 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/perl/common/Core.xs
+   M /irssi/trunk/src/perl/common/Irssi.pm
+   M /irssi/trunk/src/perl/perl.c
+
+Added input_add() / input_remove()
+
+------------------------------------------------------------------------
+r855 | cras | 2000-11-21 12:56:27 +0000 (Tue, 21 Nov 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/formats.c
+
+crashfix
+
+------------------------------------------------------------------------
+r854 | cras | 2000-11-21 03:03:03 +0000 (Tue, 21 Nov 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk
+   M /irssi/trunk/.cvsignore
+
+added libtool-statix
+
+------------------------------------------------------------------------
+r853 | cras | 2000-11-21 03:02:04 +0000 (Tue, 21 Nov 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/default.theme
+
+updated
+
+------------------------------------------------------------------------
+r852 | cras | 2000-11-21 03:00:05 +0000 (Tue, 21 Nov 2000) | 6 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-common-core.c
+   M /irssi/trunk/src/fe-common/core/fe-log.c
+   M /irssi/trunk/src/fe-common/core/formats.c
+   M /irssi/trunk/src/fe-common/core/formats.h
+   M /irssi/trunk/src/fe-common/core/module-formats.c
+   M /irssi/trunk/src/fe-common/core/printtext.c
+   M /irssi/trunk/src/fe-common/core/themes.c
+   M /irssi/trunk/src/fe-text/gui-printtext.c
+   M /irssi/trunk/src/fe-text/gui-printtext.h
+   M /irssi/trunk/src/fe-text/gui-textwidget.c
+   M /irssi/trunk/src/fe-text/gui-windows.c
+   M /irssi/trunk/src/fe-text/gui-windows.h
+
+/SCROLLBACK REDRAW - redraw the contents of current window according to
+active formats, ie. changing theme changes scrollback.
+
+It's still a bit buggy (can crash) with multiline formats, need to fix
+it as soon as I figure out where the problem is..
+
+------------------------------------------------------------------------
+r851 | cras | 2000-11-18 15:32:59 +0000 (Sat, 18 Nov 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/ignore.c
+   M /irssi/trunk/src/fe-common/core/fe-core-commands.c
+   M /irssi/trunk/src/fe-text/gui-windows.c
+   M /irssi/trunk/src/fe-text/screen.c
+
+Win32 fixes - Irssi now compiles with MSVC++ :)
+
+------------------------------------------------------------------------
+r850 | cras | 2000-11-18 15:31:28 +0000 (Sat, 18 Nov 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/levels.c
+   M /irssi/trunk/src/fe-common/core/chat-completion.c
+   M /irssi/trunk/src/fe-common/core/completion.c
+   M /irssi/trunk/src/fe-common/core/formats.c
+   M /irssi/trunk/src/irc/dcc/dcc-chat.c
+
+compiler warning fixes + one real bug in dcc-chat
+
+------------------------------------------------------------------------
+r849 | cras | 2000-11-18 15:25:04 +0000 (Sat, 18 Nov 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/po/POTFILES.in
+   M /irssi/trunk/src/perl/common/module.h
+
+windows.h -> fe-windows.h
+
+------------------------------------------------------------------------
+r848 | cras | 2000-11-17 18:02:17 +0000 (Fri, 17 Nov 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/statusbar-items.c
+
+Don't crash if MAIL environment isn't set.
+
+------------------------------------------------------------------------
+r847 | cras | 2000-11-17 16:55:46 +0000 (Fri, 17 Nov 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-common-core.c
+
+Use signal.h, not sys/signal.h
+
+------------------------------------------------------------------------
+r846 | cras | 2000-11-17 16:27:14 +0000 (Fri, 17 Nov 2000) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/Makefile.am
+   M /irssi/trunk/src/fe-common/core/autorun.c
+   M /irssi/trunk/src/fe-common/core/command-history.c
+   M /irssi/trunk/src/fe-common/core/command-history.h
+   M /irssi/trunk/src/fe-common/core/fe-channels.c
+   M /irssi/trunk/src/fe-common/core/fe-common-core.c
+   M /irssi/trunk/src/fe-common/core/fe-core-commands.c
+   M /irssi/trunk/src/fe-common/core/fe-log.c
+   M /irssi/trunk/src/fe-common/core/fe-queries.c
+   A /irssi/trunk/src/fe-common/core/fe-windows.c
+   A /irssi/trunk/src/fe-common/core/fe-windows.h
+   M /irssi/trunk/src/fe-common/core/formats.c
+   M /irssi/trunk/src/fe-common/core/formats.h
+   M /irssi/trunk/src/fe-common/core/keyboard.c
+   M /irssi/trunk/src/fe-common/core/printtext.c
+   M /irssi/trunk/src/fe-common/core/printtext.h
+   M /irssi/trunk/src/fe-common/core/window-activity.c
+   M /irssi/trunk/src/fe-common/core/window-commands.c
+   M /irssi/trunk/src/fe-common/core/window-items.c
+   M /irssi/trunk/src/fe-common/core/window-items.h
+   M /irssi/trunk/src/fe-common/core/window-save.c
+   D /irssi/trunk/src/fe-common/core/windows.c
+   D /irssi/trunk/src/fe-common/core/windows.h
+   M /irssi/trunk/src/fe-common/irc/dcc/fe-dcc.c
+   M /irssi/trunk/src/fe-common/irc/fe-ctcp.c
+   M /irssi/trunk/src/fe-common/irc/fe-events.c
+   M /irssi/trunk/src/fe-common/irc/fe-irc-commands.c
+   M /irssi/trunk/src/fe-common/irc/fe-irc-server.c
+   M /irssi/trunk/src/fe-text/gui-printtext.c
+   M /irssi/trunk/src/fe-text/gui-readline.c
+   M /irssi/trunk/src/fe-text/gui-textwidget.c
+   M /irssi/trunk/src/fe-text/gui-windows.c
+   M /irssi/trunk/src/fe-text/mainwindow-activity.c
+   M /irssi/trunk/src/fe-text/mainwindows.h
+   M /irssi/trunk/src/fe-text/statusbar-items.c
+   M /irssi/trunk/src/fe-text/statusbar.c
+
+windows.h conflicted with microsoft's windows.h :) renamed windows.[ch] to
+fe-windows.[ch]
+
+------------------------------------------------------------------------
+r845 | cras | 2000-11-17 14:59:32 +0000 (Fri, 17 Nov 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/channel-rec.h
+   M /irssi/trunk/src/core/channels.c
+   M /irssi/trunk/src/fe-common/irc/fe-irc-commands.c
+   M /irssi/trunk/src/irc/core/channel-events.c
+
+Remember who set the topic and when, display the info when using /TOPIC.
+
+------------------------------------------------------------------------
+r844 | cras | 2000-11-17 03:08:32 +0000 (Fri, 17 Nov 2000) | 7 lines
+Changed paths:
+   M /irssi/trunk/src/irc/dcc/dcc.c
+
+If other side replies to our DCC CHAT request with DCC CHAT request of
+their own (maybe we were inside firewall and other side noticed it),
+connect to it immediately.
+
+Don't allow more than one identical DCC request, if more is received
+just update the port of the previous request.
+
+------------------------------------------------------------------------
+r843 | cras | 2000-11-17 02:45:04 +0000 (Fri, 17 Nov 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/dcc/dcc.c
+
+Check that enough parameters are given to /DCC CLOSE
+
+------------------------------------------------------------------------
+r842 | cras | 2000-11-17 02:40:18 +0000 (Fri, 17 Nov 2000) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-queries.c
+   M /irssi/trunk/src/fe-common/irc/dcc/fe-dcc.c
+
+/SET autocreate_query_level DCCMSGS specifies now if DCC chats should
+create query windows automatically.
+
+------------------------------------------------------------------------
+r841 | cras | 2000-11-16 22:45:10 +0000 (Thu, 16 Nov 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/docs/help/in/log.in
+   M /irssi/trunk/docs/help/in/msg.in
+
+updates
+
+------------------------------------------------------------------------
+r840 | cras | 2000-11-16 21:34:42 +0000 (Thu, 16 Nov 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/irc-commands.c
+
+Added some comments about redirection problems.
+
+------------------------------------------------------------------------
+r839 | cras | 2000-11-15 23:34:32 +0000 (Wed, 15 Nov 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-log.c
+
+Don't close non-autologs when leaving channel / closing query.
+
+------------------------------------------------------------------------
+r838 | cras | 2000-11-14 01:14:02 +0000 (Tue, 14 Nov 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/irc-commands.c
+
+/NICK was broken.
+
+------------------------------------------------------------------------
+r837 | cras | 2000-11-13 01:52:41 +0000 (Mon, 13 Nov 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-common-core.c
+   M /irssi/trunk/src/fe-common/core/formats.h
+
+Forgot to call formats_init() / ..deinit()
+
+------------------------------------------------------------------------
+r836 | cras | 2000-11-12 20:20:05 +0000 (Sun, 12 Nov 2000) | 4 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-log.c
+   M /irssi/trunk/src/fe-common/core/formats.c
+   M /irssi/trunk/src/fe-common/core/formats.h
+   M /irssi/trunk/src/fe-common/core/hilight-text.c
+   M /irssi/trunk/src/fe-common/core/module-formats.c
+   M /irssi/trunk/src/fe-common/core/printtext.c
+   M /irssi/trunk/src/fe-common/core/printtext.h
+   M /irssi/trunk/src/fe-common/core/window-activity.c
+   M /irssi/trunk/src/fe-common/core/windows.c
+   M /irssi/trunk/src/fe-text/gui-printtext.c
+   M /irssi/trunk/src/fe-text/gui-textwidget.c
+   M /irssi/trunk/src/fe-text/gui-windows.c
+   M /irssi/trunk/src/fe-text/gui-windows.h
+   M /irssi/trunk/src/fe-text/statusbar-items.c
+
+Text printing changes. Formats are now optionally saved to each line so
+later if you used /format it would change the old lines too. However
+the actual line changing doesn't work yet :)
+
+------------------------------------------------------------------------
+r835 | cras | 2000-11-11 20:27:37 +0000 (Sat, 11 Nov 2000) | 4 lines
+Changed paths:
+   M /irssi/trunk/src/core/network.c
+
+Some sizeof() fixes to IPv6 support when connecting to IPv4 addresses.
+Linux didn't seem to have any problem with these but some other OSes
+did.
+
+------------------------------------------------------------------------
+r834 | cras | 2000-11-11 17:01:10 +0000 (Sat, 11 Nov 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/curses.m4
+
+Added /usr/pkg and /usr/contrib to ncurses checks.
+
+------------------------------------------------------------------------
+r833 | cras | 2000-11-11 01:46:15 +0000 (Sat, 11 Nov 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/gui-readline.c
+
+Ctrl-T = transpose_characters
+
+------------------------------------------------------------------------
+r832 | cras | 2000-11-11 00:56:13 +0000 (Sat, 11 Nov 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/dcc/dcc.c
+
+/SET dcc_autodisplay_dialog isn't used for anything, removed.
+
+------------------------------------------------------------------------
+r831 | cras | 2000-11-10 01:23:50 +0000 (Fri, 10 Nov 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/screen.c
+
+Use nodelay() instead of halfdelay()
+
+------------------------------------------------------------------------
+r830 | cras | 2000-11-10 00:38:48 +0000 (Fri, 10 Nov 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/proxy/listen.c
+
+Don't change client's nick every time someone else changes nick..
+
+------------------------------------------------------------------------
+r829 | cras | 2000-11-09 23:40:48 +0000 (Thu, 09 Nov 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/notifylist/notify-commands.c
+
+"NOTIFY" was missing from syntax
+
+------------------------------------------------------------------------
+r828 | cras | 2000-11-09 22:03:20 +0000 (Thu, 09 Nov 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/proxy/listen.c
+
+let actions pass through the proxy to clients, they're not "real" CTCPs..
+
+------------------------------------------------------------------------
+r827 | cras | 2000-11-09 21:48:51 +0000 (Thu, 09 Nov 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/proxy/listen.c
+
+ping/pong was broken again, hope this now _finally_ works :)
+
+------------------------------------------------------------------------
+r826 | cras | 2000-11-09 21:43:10 +0000 (Thu, 09 Nov 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/proxy/dump.c
+
+I had broken the /names list.. :)
+
+------------------------------------------------------------------------
+r825 | cras | 2000-11-09 21:40:22 +0000 (Thu, 09 Nov 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/proxy/dump.c
+   M /irssi/trunk/src/irc/proxy/listen.c
+   M /irssi/trunk/src/irc/proxy/module.h
+
+Use ircnet name as the proxy's "real address".
+
+------------------------------------------------------------------------
+r824 | cras | 2000-11-09 21:32:46 +0000 (Thu, 09 Nov 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/proxy/listen.c
+
+One final fix for ping/pong
+
+------------------------------------------------------------------------
+r823 | cras | 2000-11-09 21:29:39 +0000 (Thu, 09 Nov 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/proxy/listen.c
+
+fix to ping/pong handling :)
+
+------------------------------------------------------------------------
+r822 | cras | 2000-11-09 21:26:55 +0000 (Thu, 09 Nov 2000) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/irc/proxy/dump.c
+
+When sending /NAMES after join: Don't send lines longer than 512 chars -
+non-irssi clients don't like them :)
+
+------------------------------------------------------------------------
+r821 | cras | 2000-11-09 21:22:56 +0000 (Thu, 09 Nov 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/proxy/listen.c
+
+Hide IRSSILAG notices from clients
+
+------------------------------------------------------------------------
+r820 | cras | 2000-11-09 21:21:29 +0000 (Thu, 09 Nov 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/proxy/listen.c
+
+PING from client wasn't handled correctly.
+
+------------------------------------------------------------------------
+r819 | cras | 2000-11-09 20:38:50 +0000 (Thu, 09 Nov 2000) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/window-activity.c
+
+/SET activity_level, /SET hilight_level .. which message levels should
+be treated as msg/hilight activity. Patch by tommik.
+
+------------------------------------------------------------------------
+r818 | cras | 2000-11-09 20:38:04 +0000 (Thu, 09 Nov 2000) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/window-items.c
+
+when finding window for item, prefer empty windows that don't have
+anything waiting channels list to those that have.
+
+------------------------------------------------------------------------
+r817 | cras | 2000-11-08 23:40:34 +0000 (Wed, 08 Nov 2000) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/core/levels.c
+
+level_get() didn't check ambiguous commands correctly - dcc always failed
+because it was partial for dccmsgs.
+
+------------------------------------------------------------------------
+r816 | cras | 2000-11-08 22:55:43 +0000 (Wed, 08 Nov 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/irc-commands.c
+
+nick changes were buggy
+
+------------------------------------------------------------------------
+r815 | cras | 2000-11-07 01:46:25 +0000 (Tue, 07 Nov 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/masks.c
+
+minor speed enhance
+
+------------------------------------------------------------------------
+r814 | cras | 2000-11-07 01:42:21 +0000 (Tue, 07 Nov 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/ignore.c
+
+minor cleanups
+
+------------------------------------------------------------------------
+r813 | cras | 2000-11-07 01:25:46 +0000 (Tue, 07 Nov 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/misc.c
+
+Updated stristr() and stristr_full() to be a bit faster.
+
+------------------------------------------------------------------------
+r812 | cras | 2000-11-07 00:06:35 +0000 (Tue, 07 Nov 2000) | 4 lines
+Changed paths:
+   M /irssi/trunk/src/core/ignore.c
+   M /irssi/trunk/src/core/ignore.h
+
+Regexp ignores are now compiled when they're created, not every time
+they're checked (every time a new line is received). This should reduce
+some CPU load when using them.
+
+------------------------------------------------------------------------
+r811 | cras | 2000-11-06 23:27:46 +0000 (Mon, 06 Nov 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/proxy/dump.c
+   M /irssi/trunk/src/irc/proxy/listen.c
+
+Connecting to proxy when server connection was down didn't work correctly.
+
+------------------------------------------------------------------------
+r810 | cras | 2000-11-06 02:29:01 +0000 (Mon, 06 Nov 2000) | 4 lines
+Changed paths:
+   M /irssi/trunk/src/irc/proxy/Makefile.am
+   M /irssi/trunk/src/irc/proxy/dump.c
+   M /irssi/trunk/src/irc/proxy/listen.c
+   M /irssi/trunk/src/irc/proxy/module.h
+   M /irssi/trunk/src/irc/proxy/proxy.c
+   D /irssi/trunk/src/irc/proxy/proxy.h
+
+Proxy plugin fixes and cleanups. Supports now multiple servers, doesn't
+let clients see CTCP requests and if one client writes message, other
+clients will see it as well.
+
+------------------------------------------------------------------------
+r809 | cras | 2000-11-05 12:36:58 +0000 (Sun, 05 Nov 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/module-formats.c
+
+Wallop format fixes
+
+------------------------------------------------------------------------
+r808 | cras | 2000-11-04 18:57:29 +0000 (Sat, 04 Nov 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/channel-rejoin.c
+
+rejoin timeout 1min -> 5min
+
+------------------------------------------------------------------------
+r807 | cras | 2000-11-04 18:56:14 +0000 (Sat, 04 Nov 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/channel-rejoin.c
+
+added small sanity check
+
+------------------------------------------------------------------------
+r806 | cras | 2000-11-04 16:54:58 +0000 (Sat, 04 Nov 2000) | 6 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/fe-events-numeric.c
+   M /irssi/trunk/src/irc/core/channel-rejoin.c
+   M /irssi/trunk/src/irc/core/irc-commands.c
+   M /irssi/trunk/src/irc/core/irc-servers.h
+   M /irssi/trunk/src/irc/core/lag.c
+
+Fixed lag checking when nick was just being changed.
+
+Support for DALnet event 437 "can't change nick while being banned in
+some channel" which conflicts with ircnet's "nick/channel temporarily
+unavailable"
+
+------------------------------------------------------------------------
+r805 | cras | 2000-11-04 14:54:39 +0000 (Sat, 04 Nov 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/gui-windows.c
+
+Removed useless part of code.
+
+------------------------------------------------------------------------
+r804 | cras | 2000-11-02 21:09:21 +0000 (Thu, 02 Nov 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/default.theme
+   M /irssi/trunk/src/fe-common/core/module-formats.c
+
+privmsg fixes
+
+------------------------------------------------------------------------
+r803 | cras | 2000-11-02 20:54:22 +0000 (Thu, 02 Nov 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/default.theme
+
+Netsplit color changed from green to red (the old one)
+
+------------------------------------------------------------------------
+r802 | cras | 2000-11-02 17:50:51 +0000 (Thu, 02 Nov 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/default.theme
+   M /irssi/trunk/src/fe-common/irc/module-formats.c
+
+fixed notices in theme.
+
+------------------------------------------------------------------------
+r801 | cras | 2000-11-02 16:29:05 +0000 (Thu, 02 Nov 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/servers-setup.c
+
+small "fix"
+
+------------------------------------------------------------------------
+r800 | cras | 2000-10-30 22:52:51 +0000 (Mon, 30 Oct 2000) | 4 lines
+Changed paths:
+   M /irssi/trunk/src/perl/irc/Irc.pm
+   M /irssi/trunk/src/perl/perl-common.c
+   M /irssi/trunk/src/perl/perl.c
+
+Moved the ISA defines from .pm to irssi code, so that non-irc protocols
+would work also without a specific .pm file. Also you don't need to
+use Irssi::Irc anymore if you don't need IRC specific functions.
+
+------------------------------------------------------------------------
+r799 | cras | 2000-10-29 19:03:19 +0000 (Sun, 29 Oct 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/gui-windows.c
+
+long word handling fixes
+
+------------------------------------------------------------------------
+r798 | cras | 2000-10-29 00:35:28 +0000 (Sun, 29 Oct 2000) | 6 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/gui-windows.c
+   M /irssi/trunk/src/fe-text/gui-windows.h
+
+Don't indent the next line when long word is split. Also we try not to
+do any cursor movement so that terminals could notice that the word
+continues to next line .. however terminfo or curses or something is
+being stupid and breaks this anyway, with TERM=ansi it seems to work :)
+also using gnome-terminal long URLs work right too.
+
+------------------------------------------------------------------------
+r797 | cras | 2000-10-28 21:04:01 +0000 (Sat, 28 Oct 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/log.c
+   M /irssi/trunk/src/fe-common/core/fe-log.c
+
+Some fixes.
+
+------------------------------------------------------------------------
+r796 | cras | 2000-10-28 20:14:19 +0000 (Sat, 28 Oct 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/Makefile.am
+   M /irssi/trunk/src/fe-common/core/fe-channels.c
+   M /irssi/trunk/src/fe-common/core/fe-core-commands.c
+   M /irssi/trunk/src/fe-common/core/fe-ignore.c
+   M /irssi/trunk/src/fe-common/core/fe-log.c
+   M /irssi/trunk/src/fe-common/core/fe-messages.c
+   M /irssi/trunk/src/fe-common/core/fe-modules.c
+   M /irssi/trunk/src/fe-common/core/fe-queries.c
+   M /irssi/trunk/src/fe-common/core/fe-server.c
+   M /irssi/trunk/src/fe-common/core/fe-settings.c
+   A /irssi/trunk/src/fe-common/core/formats.c
+   A /irssi/trunk/src/fe-common/core/formats.h
+   M /irssi/trunk/src/fe-common/core/hilight-text.c
+   M /irssi/trunk/src/fe-common/core/keyboard.c
+   M /irssi/trunk/src/fe-common/core/module-formats.c
+   M /irssi/trunk/src/fe-common/core/module-formats.h
+   M /irssi/trunk/src/fe-common/core/printtext.c
+   M /irssi/trunk/src/fe-common/core/printtext.h
+   M /irssi/trunk/src/fe-common/core/themes.c
+   M /irssi/trunk/src/fe-common/core/themes.h
+   M /irssi/trunk/src/fe-common/core/window-commands.c
+   M /irssi/trunk/src/fe-common/core/window-items.c
+   M /irssi/trunk/src/fe-common/irc/dcc/fe-dcc.c
+   M /irssi/trunk/src/fe-common/irc/dcc/module-formats.c
+   M /irssi/trunk/src/fe-common/irc/dcc/module-formats.h
+   M /irssi/trunk/src/fe-common/irc/fe-ctcp.c
+   M /irssi/trunk/src/fe-common/irc/fe-events-numeric.c
+   M /irssi/trunk/src/fe-common/irc/fe-events.c
+   M /irssi/trunk/src/fe-common/irc/fe-irc-channels.c
+   M /irssi/trunk/src/fe-common/irc/fe-irc-commands.c
+   M /irssi/trunk/src/fe-common/irc/fe-irc-server.c
+   M /irssi/trunk/src/fe-common/irc/fe-ircnet.c
+   M /irssi/trunk/src/fe-common/irc/fe-netjoin.c
+   M /irssi/trunk/src/fe-common/irc/fe-netsplit.c
+   M /irssi/trunk/src/fe-common/irc/flood/fe-flood.c
+   M /irssi/trunk/src/fe-common/irc/flood/module-formats.c
+   M /irssi/trunk/src/fe-common/irc/flood/module-formats.h
+   M /irssi/trunk/src/fe-common/irc/module-formats.c
+   M /irssi/trunk/src/fe-common/irc/module-formats.h
+   M /irssi/trunk/src/fe-common/irc/notifylist/fe-notifylist.c
+   M /irssi/trunk/src/fe-common/irc/notifylist/module-formats.c
+   M /irssi/trunk/src/fe-common/irc/notifylist/module-formats.h
+   M /irssi/trunk/src/fe-text/gui-textwidget.c
+   M /irssi/trunk/src/fe-text/mainwindows.c
+   M /irssi/trunk/src/fe-text/module-formats.c
+   M /irssi/trunk/src/fe-text/module-formats.h
+
+Cleaned up printtext.c, split part of it to formats.c
+
+------------------------------------------------------------------------
+r795 | cras | 2000-10-28 03:01:11 +0000 (Sat, 28 Oct 2000) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/core/log.c
+   M /irssi/trunk/src/core/log.h
+   M /irssi/trunk/src/fe-common/core/fe-log.c
+   M /irssi/trunk/src/fe-common/core/printtext.c
+   M /irssi/trunk/src/fe-common/core/printtext.h
+
+/SET log_theme - you can now write to log files with different theme
+than to screen.
+
+------------------------------------------------------------------------
+r794 | cras | 2000-10-28 01:52:16 +0000 (Sat, 28 Oct 2000) | 3 lines
+Changed paths:
+   M /irssi/trunk/default.theme
+   M /irssi/trunk/src/fe-common/core/module-formats.c
+   M /irssi/trunk/src/fe-common/core/printtext.c
+   M /irssi/trunk/src/fe-common/core/themes.c
+   M /irssi/trunk/src/fe-common/irc/dcc/module-formats.c
+   M /irssi/trunk/src/fe-common/irc/flood/module-formats.c
+   M /irssi/trunk/src/fe-common/irc/module-formats.c
+   M /irssi/trunk/src/fe-common/irc/notifylist/module-formats.c
+   M /irssi/trunk/src/fe-text/module-formats.c
+
+Updated new default.theme to module-formats files.
+default.theme still contains the abstracts.
+
+------------------------------------------------------------------------
+r793 | cras | 2000-10-28 00:48:36 +0000 (Sat, 28 Oct 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/themes.c
+
+Compress colors.
+
+------------------------------------------------------------------------
+r792 | cras | 2000-10-28 00:04:21 +0000 (Sat, 28 Oct 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/default.theme
+   M /irssi/trunk/src/fe-common/core/themes.c
+
+Some fixes for handling %n
+
+------------------------------------------------------------------------
+r791 | cras | 2000-10-27 23:06:26 +0000 (Fri, 27 Oct 2000) | 5 lines
+Changed paths:
+   A /irssi/trunk/default.theme
+   M /irssi/trunk/src/fe-common/core/printtext.c
+   M /irssi/trunk/src/fe-common/core/themes.c
+   M /irssi/trunk/src/fe-common/core/themes.h
+
+Support for templates in theme files.
+
+module-formats.c files needs to be updated, meanwhile here's default.theme
+you can use.
+
+------------------------------------------------------------------------
+r790 | cras | 2000-10-27 18:37:32 +0000 (Fri, 27 Oct 2000) | 4 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/screen.c
+
+use sigaction() instead of signal(). With some OSes the signal handler
+is set back to default after each time signal is raised if signal() is
+used (by norpan).
+
+------------------------------------------------------------------------
+r789 | cras | 2000-10-27 18:32:24 +0000 (Fri, 27 Oct 2000) | 4 lines
+Changed paths:
+   M /irssi/trunk/acconfig.h
+   M /irssi/trunk/docs/Makefile.am
+
+startup-HOWTO.txt was missing from EXTRA_DIST
+USE_CURSES_WINDOWS was missing from acconfig.h
+(by tommik)
+
+------------------------------------------------------------------------
+r788 | cras | 2000-10-27 18:30:36 +0000 (Fri, 27 Oct 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-core-commands.c
+
+A simple /EXEC command by Tinuk.
+
+------------------------------------------------------------------------
+r787 | cras | 2000-10-27 01:46:20 +0000 (Fri, 27 Oct 2000) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/perl/perl.c
+
+Automatic appending of .pl to script name didn't work for file names
+less than 4 chars.
+
+------------------------------------------------------------------------
+r786 | cras | 2000-10-27 01:19:15 +0000 (Fri, 27 Oct 2000) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-messages.c
+
+If nick isn't found from channel (for whatever reason), print the nick
+mode as " ", not "".
+
+------------------------------------------------------------------------
+r785 | cras | 2000-10-27 01:18:16 +0000 (Fri, 27 Oct 2000) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/core/signals.c
+
+signal_stop(); signal_emit("same signal", ...); didn't work. other way
+around it did though
+
+------------------------------------------------------------------------
+r784 | cras | 2000-10-26 18:57:23 +0000 (Thu, 26 Oct 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/core.c
+   M /irssi/trunk/src/core/net-disconnect.c
+   M /irssi/trunk/src/core/net-nonblock.c
+   M /irssi/trunk/src/core/network.c
+   M /irssi/trunk/src/lib-popt/findme.c
+   M /irssi/trunk/src/lib-popt/poptconfig.c
+   M /irssi/trunk/src/lib-popt/poptparse.c
+
+Win32 updates
+
+------------------------------------------------------------------------
+r783 | cras | 2000-10-26 18:12:20 +0000 (Thu, 26 Oct 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/configure.in
+   M /irssi/trunk/src/common.h
+   M /irssi/trunk/src/core/misc.c
+   M /irssi/trunk/src/core/net-internal.h
+   M /irssi/trunk/src/core/network.c
+   M /irssi/trunk/src/core/network.h
+   M /irssi/trunk/src/core/settings.c
+   M /irssi/trunk/src/core/special-vars.c
+
+Some fixes for compiling with Win32 :)
+
+------------------------------------------------------------------------
+r782 | cras | 2000-10-22 15:46:28 +0000 (Sun, 22 Oct 2000) | 4 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/irc-channels.c
+   M /irssi/trunk/src/irc/core/irc-servers.c
+
+Add the server specific functions immediately after the server
+connection is started, not after the connection is successfully
+finished.
+
+------------------------------------------------------------------------
+r781 | cras | 2000-10-22 15:38:53 +0000 (Sun, 22 Oct 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-log.c
+
+Fixed glib warning with autologging and queries.
+
+------------------------------------------------------------------------
+r780 | cras | 2000-10-22 15:25:17 +0000 (Sun, 22 Oct 2000) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/modes.c
+
+Wildcards didn't with /OP (/DEOP, /VOICE, etc.) if there was more than
+one masks used.
+
+------------------------------------------------------------------------
+r779 | cras | 2000-10-22 15:00:52 +0000 (Sun, 22 Oct 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/keyboard.c
+
+Key bindings weren't loaded at startup correctly.
+
+------------------------------------------------------------------------
+r778 | cras | 2000-10-22 12:33:47 +0000 (Sun, 22 Oct 2000) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/windows.c
+
+If window_set_active() was called with NULL window (shouldn't happen
+ofter/ever?) irssi added NULL window to windows list.
+
+------------------------------------------------------------------------
+r776 | cras | 2000-10-19 19:41:05 +0000 (Thu, 19 Oct 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/scripts/Makefile.am
+   A /irssi/trunk/scripts/clones.pl
+
+Added /CLONES script
+
+------------------------------------------------------------------------
+r775 | cras | 2000-10-19 19:40:16 +0000 (Thu, 19 Oct 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/README
+   M /irssi/trunk/TODO
+   M /irssi/trunk/configure.in
+   M /irssi/trunk/docs/manual.txt
+   M /irssi/trunk/docs/perl.txt
+   M /irssi/trunk/docs/signals.txt
+   M /irssi/trunk/po/de.po
+   D /irssi/trunk/po/fi.po
+   M /irssi/trunk/po/fr.po
+   M /irssi/trunk/po/pl.po
+   M /irssi/trunk/po/pt_BR.po
+   M /irssi/trunk/po/sv.po
+   M /irssi/trunk/servertest/server.c
+
+0.7.96 release updates
+
+------------------------------------------------------------------------
+r774 | cras | 2000-10-19 19:39:50 +0000 (Thu, 19 Oct 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/Makefile.am
+
+Missing channels-rejoin.h
+
+------------------------------------------------------------------------
+r773 | cras | 2000-10-19 16:32:46 +0000 (Thu, 19 Oct 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/NEWS
+
+Added news for .96
+
+------------------------------------------------------------------------
+r772 | cras | 2000-10-19 15:44:49 +0000 (Thu, 19 Oct 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/netsplit.c
+
+Added debug
+
+------------------------------------------------------------------------
+r771 | cras | 2000-10-19 11:34:07 +0000 (Thu, 19 Oct 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/config
+
+Default undernet server changed from .net to .org
+
+------------------------------------------------------------------------
+r770 | cras | 2000-10-18 22:45:26 +0000 (Wed, 18 Oct 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/perl/common/module.h
+   M /irssi/trunk/src/perl/common/typemap
+   M /irssi/trunk/src/perl/get-signals.pl
+
+updates
+
+------------------------------------------------------------------------
+r769 | cras | 2000-10-18 21:29:22 +0000 (Wed, 18 Oct 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/log.c
+
+Log items weren't read correctly from config
+
+------------------------------------------------------------------------
+r768 | cras | 2000-10-18 20:50:12 +0000 (Wed, 18 Oct 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/scripts/autoop.pl
+   M /irssi/trunk/scripts/autorejoin.pl
+   M /irssi/trunk/scripts/hello.pl
+   M /irssi/trunk/scripts/mlock.pl
+   M /irssi/trunk/scripts/privmsg.pl
+   M /irssi/trunk/scripts/quitmsg.pl
+   M /irssi/trunk/scripts/realname.pl
+   M /irssi/trunk/src/perl/common/Server.xs
+   M /irssi/trunk/src/perl/common/Window.xs
+   M /irssi/trunk/src/perl/irc/IrcServer.xs
+
+fixes
+
+------------------------------------------------------------------------
+r767 | cras | 2000-10-18 01:32:14 +0000 (Wed, 18 Oct 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/perl/get-signals.pl
+   M /irssi/trunk/src/perl/perl-common.h
+   M /irssi/trunk/src/perl/perl.c
+
+Signal fixes
+
+------------------------------------------------------------------------
+r766 | cras | 2000-10-17 23:45:00 +0000 (Tue, 17 Oct 2000) | 2 lines
+Changed paths:
+   A /irssi/trunk/findsyntax.pl
+   M /irssi/trunk/syntax.pl
+
+Fixed to work with multiline syntaxes (by lite)
+
+------------------------------------------------------------------------
+r765 | cras | 2000-10-17 23:37:21 +0000 (Tue, 17 Oct 2000) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/core/log.c
+   M /irssi/trunk/src/core/log.h
+   M /irssi/trunk/src/fe-common/core/fe-log.c
+   M /irssi/trunk/src/irc/core/irc-log.c
+   M /irssi/trunk/src/perl/common/Log.xs
+   M /irssi/trunk/src/perl/common/module.h
+   M /irssi/trunk/src/perl/common/typemap
+
+Logging fixes. Autologging with same named channels in different
+networks should work correctly.
+
+------------------------------------------------------------------------
+r764 | cras | 2000-10-16 23:13:01 +0000 (Mon, 16 Oct 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/Makefile.am
+
+added irssi-icon.png
+
+------------------------------------------------------------------------
+r763 | cras | 2000-10-15 21:14:13 +0000 (Sun, 15 Oct 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/module-formats.c
+   M /irssi/trunk/src/irc/core/channel-rejoin.c
+
+Rejoin fixes
+
+------------------------------------------------------------------------
+r762 | cras | 2000-10-15 19:21:21 +0000 (Sun, 15 Oct 2000) | 6 lines
+Changed paths:
+   M /irssi/trunk/src/core/settings.c
+   M /irssi/trunk/src/core/settings.h
+   M /irssi/trunk/src/fe-common/core/fe-settings.c
+   M /irssi/trunk/src/fe-common/core/module-formats.c
+   M /irssi/trunk/src/fe-common/core/module-formats.h
+
+Irssi won't automatically overwrite configuration files if they're
+changed while irssi is running:
+
+- /SAVE asks whether to save it or not
+- autosave at quit saves it to config.autosave file
+
+------------------------------------------------------------------------
+r761 | cras | 2000-10-15 18:04:06 +0000 (Sun, 15 Oct 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-common-core.c
+   M /irssi/trunk/src/fe-common/core/fe-messages.c
+   M /irssi/trunk/src/fe-text/statusbar-items.c
+
+Some hilight+window activity related fixes
+
+------------------------------------------------------------------------
+r760 | cras | 2000-10-14 21:17:45 +0000 (Sat, 14 Oct 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/fe-netjoin.c
+   M /irssi/trunk/src/fe-common/irc/fe-netsplit.c
+   M /irssi/trunk/src/irc/core/netsplit.c
+
+Netsplit cleanups. Added /SET netsplit_nicks_hide_threshold.
+
+------------------------------------------------------------------------
+r759 | cras | 2000-10-14 20:52:18 +0000 (Sat, 14 Oct 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/po/POTFILES.in
+
+updated
+
+------------------------------------------------------------------------
+r758 | cras | 2000-10-14 19:43:01 +0000 (Sat, 14 Oct 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/fe-events-numeric.c
+
+chanserv url bugfix :)
+
+------------------------------------------------------------------------
+r757 | cras | 2000-10-14 19:41:47 +0000 (Sat, 14 Oct 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/fe-events-numeric.c
+   M /irssi/trunk/src/fe-common/irc/module-formats.c
+   M /irssi/trunk/src/fe-common/irc/module-formats.h
+
+Added format for the chanserv url event.
+
+------------------------------------------------------------------------
+r756 | cras | 2000-10-14 19:28:14 +0000 (Sat, 14 Oct 2000) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/fe-events-numeric.c
+
+when received event 328 (chanserv url in dalnet) write it to correct
+channel.
+
+------------------------------------------------------------------------
+r755 | cras | 2000-10-14 16:02:35 +0000 (Sat, 14 Oct 2000) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/fe-events.c
+   M /irssi/trunk/src/irc/core/irc-commands.c
+
+"/whois x x" - if x isn't found irssi now prints "there's no such nick x"
+instead of complaining about unknown server x.
+
+------------------------------------------------------------------------
+r754 | cras | 2000-10-14 15:19:56 +0000 (Sat, 14 Oct 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-none/Makefile.am
+   M /irssi/trunk/src/fe-none/irssi.c
+
+perl fixes
+
+------------------------------------------------------------------------
+r753 | cras | 2000-10-14 14:37:01 +0000 (Sat, 14 Oct 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/irc-commands.c
+
+/WHOIS in a query asks the queried nick's whois.
+
+------------------------------------------------------------------------
+r752 | cras | 2000-10-14 14:34:40 +0000 (Sat, 14 Oct 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/printtext.c
+
+/LAST doesn't print the -!- at the start of lines.
+
+------------------------------------------------------------------------
+r751 | cras | 2000-10-14 14:32:53 +0000 (Sat, 14 Oct 2000) | 6 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/chat-completion.c
+   M /irssi/trunk/src/fe-common/core/completion.c
+
+/connect + /server server/chatnet completion by tommik.
+
+Completion works now with commands that optionally could have
+subcommands, like /server l<tab> could return list (subcommand) or
+localhost (server).
+
+------------------------------------------------------------------------
+r750 | cras | 2000-10-14 14:07:31 +0000 (Sat, 14 Oct 2000) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/core/channel-rec.h
+   M /irssi/trunk/src/core/server-rec.h
+   M /irssi/trunk/src/core/servers.h
+   M /irssi/trunk/src/fe-common/core/Makefile.am
+   A /irssi/trunk/src/fe-common/core/chat-completion.c
+   M /irssi/trunk/src/fe-common/core/completion.c
+   M /irssi/trunk/src/fe-common/core/fe-common-core.c
+   A /irssi/trunk/src/fe-common/core/fe-ignore-messages.c
+   M /irssi/trunk/src/fe-common/core/fe-messages.c
+   M /irssi/trunk/src/fe-common/irc/Makefile.am
+   M /irssi/trunk/src/fe-common/irc/fe-common-irc.c
+   D /irssi/trunk/src/fe-common/irc/irc-completion.c
+   M /irssi/trunk/src/fe-common/irc/module.h
+
+Moved nick/msg/channel completion to core with some cleanups.
+Moved ignore checking to fe-ignore-messages.c.
+
+------------------------------------------------------------------------
+r749 | cras | 2000-10-14 02:41:46 +0000 (Sat, 14 Oct 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/notifylist/fe-notifylist.c
+   M /irssi/trunk/src/irc/notifylist/notifylist.c
+
+multiprotocol fixes
+
+------------------------------------------------------------------------
+r748 | cras | 2000-10-14 02:10:22 +0000 (Sat, 14 Oct 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/channels.c
+
+match_nick_flags() didn't check that the nick actually began with a flag.
+
+------------------------------------------------------------------------
+r747 | cras | 2000-10-14 02:00:19 +0000 (Sat, 14 Oct 2000) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/irc-servers.c
+
+irc_server_get_channels() now returns also the channels that are in
+rejoin list.
+
+------------------------------------------------------------------------
+r746 | cras | 2000-10-14 01:57:27 +0000 (Sat, 14 Oct 2000) | 2 lines
+Changed paths:
+   A /irssi/trunk/src/irc/core/channel-rejoin.h
+
+added
+
+------------------------------------------------------------------------
+r745 | cras | 2000-10-14 01:51:50 +0000 (Sat, 14 Oct 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/po/POTFILES.in
+
+updated
+
+------------------------------------------------------------------------
+r744 | cras | 2000-10-14 01:43:05 +0000 (Sat, 14 Oct 2000) | 5 lines
+Changed paths:
+   M /irssi/trunk/src/core/channels.c
+   M /irssi/trunk/src/core/servers-reconnect.c
+   M /irssi/trunk/src/irc/core/irc-channels.c
+   M /irssi/trunk/src/irc/core/irc-core.c
+
+[irc_]channels_setup_[de]init() calls were in wrong places.
+
+Reconnection forgot to join to old channels after the first
+reconnection try.
+
+------------------------------------------------------------------------
+r743 | cras | 2000-10-14 01:09:19 +0000 (Sat, 14 Oct 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/dcc/fe-dcc.c
+   M /irssi/trunk/src/fe-common/irc/dcc/module-formats.c
+   M /irssi/trunk/src/fe-common/irc/dcc/module-formats.h
+
+/format own_dcc_me -> own_dcc_action
+
+------------------------------------------------------------------------
+r742 | cras | 2000-10-14 01:06:24 +0000 (Sat, 14 Oct 2000) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/channel-events.c
+
+When joining to !channel the join message was printed to active window
+instead of the channel's.
+
+------------------------------------------------------------------------
+r741 | cras | 2000-10-14 01:03:11 +0000 (Sat, 14 Oct 2000) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/fe-events-numeric.c
+   M /irssi/trunk/src/fe-common/irc/module-formats.c
+   M /irssi/trunk/src/fe-common/irc/module-formats.h
+   M /irssi/trunk/src/irc/core/channel-events.c
+
+Handle event "407 duplicate channel" correctly - happens when trying to
+create !channel (/join !!channel) while it already exists.
+
+------------------------------------------------------------------------
+r740 | cras | 2000-10-14 00:53:59 +0000 (Sat, 14 Oct 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/channel-rejoin.c
+
+fixes
+
+------------------------------------------------------------------------
+r739 | cras | 2000-10-14 00:45:16 +0000 (Sat, 14 Oct 2000) | 10 lines
+Changed paths:
+   M /irssi/trunk/src/core/chat-commands.c
+   M /irssi/trunk/src/fe-common/irc/fe-irc-channels.c
+   M /irssi/trunk/src/fe-common/irc/module-formats.c
+   M /irssi/trunk/src/fe-common/irc/module-formats.h
+   M /irssi/trunk/src/irc/core/channel-rejoin.c
+   M /irssi/trunk/src/irc/core/channels-query.c
+   M /irssi/trunk/src/irc/core/irc-channels.c
+   M /irssi/trunk/src/irc/core/irc-nicklist.c
+
+Autorejoin when join temporarily fails because of netsplit is handled
+better now. Irssi prints a nice message about it only once and you can
+abort it with /RMREJOINS command.
+
+"channel query" -> "channel joined"
+
+channels_join() must not use cmd_return|param_error() commands since we
+don't necessarily call it from command handler and signal_stop() could
+cause some damage.
+
+------------------------------------------------------------------------
+r738 | cras | 2000-10-13 22:34:19 +0000 (Fri, 13 Oct 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/irc-commands.c
+
+"/WHOIS *" requires -yes option to work.
+
+------------------------------------------------------------------------
+r737 | cras | 2000-10-13 22:26:33 +0000 (Fri, 13 Oct 2000) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/Makefile.am
+   M /irssi/trunk/src/fe-common/core/fe-common-core.c
+   A /irssi/trunk/src/fe-common/core/fe-ignore.c
+   M /irssi/trunk/src/fe-common/core/module-formats.c
+   M /irssi/trunk/src/fe-common/core/module-formats.h
+   M /irssi/trunk/src/fe-common/irc/Makefile.am
+   M /irssi/trunk/src/fe-common/irc/fe-common-irc.c
+   D /irssi/trunk/src/fe-common/irc/fe-ignore.c
+   M /irssi/trunk/src/fe-common/irc/module-formats.c
+   M /irssi/trunk/src/fe-common/irc/module-formats.h
+
+Forgot to move fe-ignore to core.
+/unignore now complains if you don't give parameters to it.
+
+------------------------------------------------------------------------
+r736 | cras | 2000-10-13 22:17:37 +0000 (Fri, 13 Oct 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/printtext.c
+
+Don't show timestamps when doing /LAST.
+
+------------------------------------------------------------------------
+r735 | cras | 2000-10-13 22:05:57 +0000 (Fri, 13 Oct 2000) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/irc-servers-reconnect.c
+   M /irssi/trunk/src/irc/core/irc-servers.c
+   M /irssi/trunk/src/irc/core/modes.c
+   M /irssi/trunk/src/irc/core/modes.h
+   M /irssi/trunk/src/perl/irc/Modes.xs
+
+updating user modes were handled as they were channel modes, like +o
+etc. thought they needed arguments.
+
+------------------------------------------------------------------------
+r734 | cras | 2000-10-13 21:53:25 +0000 (Fri, 13 Oct 2000) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/core/log.c
+   M /irssi/trunk/src/core/log.h
+   M /irssi/trunk/src/fe-common/core/fe-log.c
+
+Complain only once with autologging if opening some log file failed
+(locked by another irssi)
+
+------------------------------------------------------------------------
+r733 | cras | 2000-10-13 21:47:32 +0000 (Fri, 13 Oct 2000) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/core/misc.c
+
+match_wildcards() failed if there was * at the end of the mask but
+otherwise data matched (str* vs. str)
+
+------------------------------------------------------------------------
+r732 | cras | 2000-10-13 21:24:44 +0000 (Fri, 13 Oct 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/themes.c
+
+Saving theme didn't complain if the save failed.
+
+------------------------------------------------------------------------
+r731 | cras | 2000-10-11 22:09:53 +0000 (Wed, 11 Oct 2000) | 3 lines
+Changed paths:
+   M /irssi/trunk/configure.in
+
+Ignore --with-modules[=yes|no] - you're supposed to tell what modules
+to enable, not just say yes or no.
+
+------------------------------------------------------------------------
+r730 | cras | 2000-10-11 22:06:04 +0000 (Wed, 11 Oct 2000) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/perl/Makefile.am
+
+try running make again if it fails the first time - it's probably
+because Makefile.PL was updated and make needs to be run again.
+
+------------------------------------------------------------------------
+r729 | cras | 2000-10-11 22:01:23 +0000 (Wed, 11 Oct 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/ignore.h
+   M /irssi/trunk/src/perl/Makefile.am
+   A /irssi/trunk/src/perl/common/Ignore.xs
+   M /irssi/trunk/src/perl/common/Irssi.xs
+   M /irssi/trunk/src/perl/common/module.h
+   M /irssi/trunk/src/perl/common/typemap
+   D /irssi/trunk/src/perl/irc/Ignore.xs
+   M /irssi/trunk/src/perl/irc/Irc.xs
+   M /irssi/trunk/src/perl/irc/module.h
+   M /irssi/trunk/src/perl/irc/typemap
+
+Ignore was moved to core.
+
+------------------------------------------------------------------------
+r728 | cras | 2000-10-11 21:10:43 +0000 (Wed, 11 Oct 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/gui-printtext.c
+
+removed warning
+
+------------------------------------------------------------------------
+r727 | cras | 2000-10-10 09:38:04 +0000 (Tue, 10 Oct 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/po/POTFILES.in
+
+updated
+
+------------------------------------------------------------------------
+r726 | cras | 2000-10-10 00:08:23 +0000 (Tue, 10 Oct 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-messages.c
+   M /irssi/trunk/src/fe-common/core/module-formats.c
+   M /irssi/trunk/src/fe-common/core/module-formats.h
+   M /irssi/trunk/src/fe-common/irc/fe-common-irc.c
+   M /irssi/trunk/src/fe-common/irc/fe-events.c
+   M /irssi/trunk/src/fe-common/irc/fe-netjoin.c
+   M /irssi/trunk/src/fe-common/irc/fe-netsplit.c
+   M /irssi/trunk/src/fe-common/irc/module-formats.c
+   M /irssi/trunk/src/fe-common/irc/module-formats.h
+
+Moved join, part, quit, kick, nick, invite and topic printing to core.
+
+------------------------------------------------------------------------
+r725 | cras | 2000-10-09 23:40:18 +0000 (Mon, 09 Oct 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/Makefile.am
+   M /irssi/trunk/src/core/core.c
+   A /irssi/trunk/src/core/ignore.c
+   A /irssi/trunk/src/core/ignore.h
+   M /irssi/trunk/src/irc/core/Makefile.am
+   M /irssi/trunk/src/irc/core/channels-query.c
+   M /irssi/trunk/src/irc/core/ctcp.c
+   D /irssi/trunk/src/irc/core/ignore.c
+   D /irssi/trunk/src/irc/core/ignore.h
+   M /irssi/trunk/src/irc/core/irc-core.c
+   M /irssi/trunk/src/irc/flood/flood.c
+
+Moved ignore to core.
+
+------------------------------------------------------------------------
+r724 | cras | 2000-10-08 16:31:12 +0000 (Sun, 08 Oct 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/acconfig.h
+
+updated
+
+------------------------------------------------------------------------
+r723 | cras | 2000-10-08 12:54:26 +0000 (Sun, 08 Oct 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/configure.in
+   M /irssi/trunk/src/fe-text/gui-printtext.c
+   M /irssi/trunk/src/fe-text/gui-readline.c
+   M /irssi/trunk/src/fe-text/gui-windows.c
+   M /irssi/trunk/src/fe-text/mainwindows.c
+   M /irssi/trunk/src/fe-text/mainwindows.h
+   M /irssi/trunk/src/fe-text/screen.c
+   M /irssi/trunk/src/fe-text/screen.h
+
+--disable-curses-windows option to configure
+
+------------------------------------------------------------------------
+r722 | cras | 2000-10-07 15:12:50 +0000 (Sat, 07 Oct 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/modes.c
+
+If mode didn't have the expected argument irssi would loop forever.
+
+------------------------------------------------------------------------
+r721 | cras | 2000-10-04 10:42:13 +0000 (Wed, 04 Oct 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/configure.in
+
+For compatibility with older libtools.
+
+------------------------------------------------------------------------
+r720 | cras | 2000-10-04 04:01:45 +0000 (Wed, 04 Oct 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/configure.in
+   M /irssi/trunk/curses.m4
+
+curses fixes
+
+------------------------------------------------------------------------
+r719 | cras | 2000-10-04 00:22:59 +0000 (Wed, 04 Oct 2000) | 5 lines
+Changed paths:
+   M /irssi/trunk/configure.in
+   M /irssi/trunk/curses.m4
+   M /irssi/trunk/src/perl/Makefile.am
+
+Create libtool-static for creating irssi modules that don't need .a
+libraries.
+
+Small update to curses's help
+
+------------------------------------------------------------------------
+r718 | cras | 2000-10-03 23:54:56 +0000 (Tue, 03 Oct 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/configure.in
+   M /irssi/trunk/src/perl/Makefile.am
+
+Perl compiling updates
+
+------------------------------------------------------------------------
+r717 | cras | 2000-10-03 23:00:13 +0000 (Tue, 03 Oct 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/po/POTFILES.in
+
+updated
+
+------------------------------------------------------------------------
+r716 | cras | 2000-10-03 22:57:14 +0000 (Tue, 03 Oct 2000) | 5 lines
+Changed paths:
+   M /irssi/trunk/acconfig.h
+   M /irssi/trunk/configure.in
+   M /irssi/trunk/src/fe-text/irssi.c
+   M /irssi/trunk/src/perl/Makefile.am
+   M /irssi/trunk/src/perl/irc/module.h
+   D /irssi/trunk/src/perl/irssi-perl.c
+   A /irssi/trunk/src/perl/libperl_orig.la
+   A /irssi/trunk/src/perl/perl.c
+
+--enable-perl=[yes|no|static]
+
+Allows building perl support either as loadable irssi module or
+statically linked to irssi binary.
+
+------------------------------------------------------------------------
+r715 | cras | 2000-10-03 19:10:24 +0000 (Tue, 03 Oct 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/configure.in
+   A /irssi/trunk/src/perl/common
+   A /irssi/trunk/src/perl/common/.cvsignore
+   A /irssi/trunk/src/perl/common/Channel.xs
+   A /irssi/trunk/src/perl/common/Core.xs
+   A /irssi/trunk/src/perl/common/Irssi.pm
+   A /irssi/trunk/src/perl/common/Irssi.xs
+   A /irssi/trunk/src/perl/common/Log.xs
+   A /irssi/trunk/src/perl/common/Makefile.PL.in
+   A /irssi/trunk/src/perl/common/Masks.xs
+   A /irssi/trunk/src/perl/common/Query.xs
+   A /irssi/trunk/src/perl/common/Rawlog.xs
+   A /irssi/trunk/src/perl/common/Server.xs
+   A /irssi/trunk/src/perl/common/Settings.xs
+   A /irssi/trunk/src/perl/common/Window.xs
+   A /irssi/trunk/src/perl/common/module.h
+   A /irssi/trunk/src/perl/common/typemap
+   D /irssi/trunk/src/perl/core
+
+s/core/common/ - because make clean tried to delete it :)
+
+------------------------------------------------------------------------
+r714 | cras | 2000-10-02 01:11:53 +0000 (Mon, 02 Oct 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/dcc/Makefile.am
+   M /irssi/trunk/src/fe-common/irc/flood/Makefile.am
+   M /irssi/trunk/src/fe-common/irc/notifylist/Makefile.am
+   M /irssi/trunk/src/irc/bot/Makefile.am
+   M /irssi/trunk/src/irc/dcc/Makefile.am
+   M /irssi/trunk/src/irc/flood/Makefile.am
+   M /irssi/trunk/src/irc/notifylist/Makefile.am
+   M /irssi/trunk/src/irc/proxy/Makefile.am
+   M /irssi/trunk/src/perl/Makefile.am
+
+Added -avoid-version options and disable-static for SILC module.
+
+------------------------------------------------------------------------
+r713 | cras | 2000-10-02 01:04:39 +0000 (Mon, 02 Oct 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-common-core.c
+   M /irssi/trunk/src/fe-common/core/fe-messages.c
+   M /irssi/trunk/src/fe-common/core/fe-queries.c
+   M /irssi/trunk/src/fe-common/core/window-activity.c
+
+fixes .. still not perfect
+
+------------------------------------------------------------------------
+r712 | cras | 2000-10-01 23:42:58 +0000 (Sun, 01 Oct 2000) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/window-activity.c
+
+Window activity was displayed in wrong window if query windows were
+autocreated
+
+------------------------------------------------------------------------
+r711 | cras | 2000-10-01 23:37:31 +0000 (Sun, 01 Oct 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/windows.c
+
+bugfix
+
+------------------------------------------------------------------------
+r710 | cras | 2000-10-01 22:12:01 +0000 (Sun, 01 Oct 2000) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/common.h
+   M /irssi/trunk/src/core/misc.c
+   M /irssi/trunk/src/fe-text/gui-readline.c
+   M /irssi/trunk/src/irc/core/irc.c
+
+Keyboard should never get stuck again when receiving huge amounts of
+text from server that irssi doesn't handle fast enough.
+
+------------------------------------------------------------------------
+r709 | cras | 2000-10-01 21:56:20 +0000 (Sun, 01 Oct 2000) | 2 lines
+Changed paths:
+   A /irssi/trunk/src/perl/core/module.h
+
+added
+
+------------------------------------------------------------------------
+r708 | cras | 2000-10-01 21:47:22 +0000 (Sun, 01 Oct 2000) | 2 lines
+Changed paths:
+   A /irssi/trunk/docs/help/in/unsilence.in
+
+added
+
+------------------------------------------------------------------------
+r707 | cras | 2000-10-01 21:46:48 +0000 (Sun, 01 Oct 2000) | 2 lines
+Changed paths:
+   A /irssi/trunk/src/perl/core
+   A /irssi/trunk/src/perl/core/.cvsignore
+   A /irssi/trunk/src/perl/core/Channel.xs
+   A /irssi/trunk/src/perl/core/Core.xs
+   A /irssi/trunk/src/perl/core/Irssi.pm
+   A /irssi/trunk/src/perl/core/Irssi.xs
+   A /irssi/trunk/src/perl/core/Log.xs
+   A /irssi/trunk/src/perl/core/Makefile.PL.in
+   A /irssi/trunk/src/perl/core/Masks.xs
+   A /irssi/trunk/src/perl/core/Query.xs
+   A /irssi/trunk/src/perl/core/Rawlog.xs
+   A /irssi/trunk/src/perl/core/Server.xs
+   A /irssi/trunk/src/perl/core/Settings.xs
+   A /irssi/trunk/src/perl/core/Window.xs
+   A /irssi/trunk/src/perl/core/typemap
+   D /irssi/trunk/src/perl/xs
+
+Perl updates
+
+------------------------------------------------------------------------
+r706 | cras | 2000-10-01 21:00:59 +0000 (Sun, 01 Oct 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/docs/help/in/silence.in
+   M /irssi/trunk/src/fe-common/irc/fe-events-numeric.c
+   M /irssi/trunk/src/fe-common/irc/fe-events.c
+   M /irssi/trunk/src/fe-common/irc/module-formats.c
+   M /irssi/trunk/src/fe-common/irc/module-formats.h
+   M /irssi/trunk/src/irc/core/irc-commands.c
+
+/SILENCE updates, added /UNSILENCE command.
+
+------------------------------------------------------------------------
+r705 | cras | 2000-10-01 20:48:48 +0000 (Sun, 01 Oct 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/perl/Makefile.am
+   A /irssi/trunk/src/perl/irc
+   A /irssi/trunk/src/perl/irc/.cvsignore
+   A /irssi/trunk/src/perl/irc/Bans.xs
+   A /irssi/trunk/src/perl/irc/Dcc.xs
+   A /irssi/trunk/src/perl/irc/Flood.xs
+   A /irssi/trunk/src/perl/irc/Ignore.xs
+   A /irssi/trunk/src/perl/irc/Irc.pm
+   A /irssi/trunk/src/perl/irc/Irc.xs
+   A /irssi/trunk/src/perl/irc/IrcChannel.xs
+   A /irssi/trunk/src/perl/irc/IrcQuery.xs
+   A /irssi/trunk/src/perl/irc/IrcServer.xs
+   A /irssi/trunk/src/perl/irc/Makefile.PL.in
+   A /irssi/trunk/src/perl/irc/Modes.xs
+   A /irssi/trunk/src/perl/irc/Netsplit.xs
+   A /irssi/trunk/src/perl/irc/Notifylist.xs
+   A /irssi/trunk/src/perl/irc/module.h
+   A /irssi/trunk/src/perl/irc/typemap
+   M /irssi/trunk/src/perl/irssi-perl.c
+   A /irssi/trunk/src/perl/perl-common.c
+   A /irssi/trunk/src/perl/perl-common.h
+
+Perl works again :) Split to Irssi and Irssi::Irc packages.
+
+------------------------------------------------------------------------
+r704 | cras | 2000-10-01 20:48:10 +0000 (Sun, 01 Oct 2000) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/core/chat-protocols.c
+   M /irssi/trunk/src/core/chat-protocols.h
+   M /irssi/trunk/src/core/modules.c
+   M /irssi/trunk/src/fe-common/core/fe-server.c
+   M /irssi/trunk/src/fe-common/core/window-save.c
+
+Chat protocol updates.
+Module loading tries to load first from home dir, then the global dir.
+
+------------------------------------------------------------------------
+r703 | cras | 2000-10-01 16:17:12 +0000 (Sun, 01 Oct 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/flood/autoignore.c
+
+multiprotocol fixes
+
+------------------------------------------------------------------------
+r702 | cras | 2000-09-30 22:59:37 +0000 (Sat, 30 Sep 2000) | 2 lines
+Changed paths:
+   A /irssi/trunk/src/core/chat-commands.c
+
+forgot to add this
+
+------------------------------------------------------------------------
+r701 | cras | 2000-09-30 22:59:15 +0000 (Sat, 30 Sep 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/po/POTFILES.in
+
+updated
+
+------------------------------------------------------------------------
+r700 | cras | 2000-09-30 22:52:30 +0000 (Sat, 30 Sep 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/proxy/Makefile.am
+
+bugfix
+
+------------------------------------------------------------------------
+r699 | cras | 2000-09-30 22:49:48 +0000 (Sat, 30 Sep 2000) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/core/Makefile.am
+   M /irssi/trunk/src/core/channels.c
+   M /irssi/trunk/src/core/channels.h
+   M /irssi/trunk/src/core/chat-protocols.c
+   M /irssi/trunk/src/core/chat-protocols.h
+   M /irssi/trunk/src/core/core.c
+   M /irssi/trunk/src/core/masks.c
+   M /irssi/trunk/src/core/nicklist.c
+   M /irssi/trunk/src/core/nicklist.h
+   M /irssi/trunk/src/core/queries.c
+   M /irssi/trunk/src/core/server-rec.h
+   M /irssi/trunk/src/core/servers-reconnect.c
+   M /irssi/trunk/src/core/servers.c
+   M /irssi/trunk/src/fe-common/core/Makefile.am
+   M /irssi/trunk/src/fe-common/core/fe-common-core.c
+   A /irssi/trunk/src/fe-common/core/fe-messages.c
+   M /irssi/trunk/src/fe-common/core/fe-server.c
+   M /irssi/trunk/src/fe-common/core/hilight-text.c
+   M /irssi/trunk/src/fe-common/core/hilight-text.h
+   M /irssi/trunk/src/fe-common/core/module-formats.c
+   M /irssi/trunk/src/fe-common/core/module-formats.h
+   M /irssi/trunk/src/fe-common/core/window-activity.c
+   M /irssi/trunk/src/fe-common/core/window-save.c
+   M /irssi/trunk/src/fe-common/irc/Makefile.am
+   M /irssi/trunk/src/fe-common/irc/fe-common-irc.c
+   M /irssi/trunk/src/fe-common/irc/fe-events.c
+   M /irssi/trunk/src/fe-common/irc/fe-irc-commands.c
+   M /irssi/trunk/src/fe-common/irc/irc-completion.c
+   D /irssi/trunk/src/fe-common/irc/irc-hilight-text.c
+   D /irssi/trunk/src/fe-common/irc/irc-hilight-text.h
+   D /irssi/trunk/src/fe-common/irc/irc-window-activity.c
+   M /irssi/trunk/src/fe-common/irc/module-formats.c
+   M /irssi/trunk/src/fe-common/irc/module-formats.h
+   M /irssi/trunk/src/irc/core/channel-rejoin.c
+   M /irssi/trunk/src/irc/core/ignore.c
+   M /irssi/trunk/src/irc/core/irc-channels-setup.c
+   M /irssi/trunk/src/irc/core/irc-channels.c
+   M /irssi/trunk/src/irc/core/irc-channels.h
+   M /irssi/trunk/src/irc/core/irc-commands.c
+   M /irssi/trunk/src/irc/core/irc-core.c
+   M /irssi/trunk/src/irc/core/irc-nicklist.c
+   M /irssi/trunk/src/irc/core/irc-nicklist.h
+   M /irssi/trunk/src/irc/core/irc-servers-reconnect.c
+   M /irssi/trunk/src/irc/core/irc-servers.c
+   M /irssi/trunk/src/irc/core/irc-servers.h
+   M /irssi/trunk/src/perl/Makefile.am
+
+multiprotocol updates. SILC prints channel and private messages now
+using the same message formats as IRC.
+
+------------------------------------------------------------------------
+r698 | cras | 2000-09-30 00:11:56 +0000 (Sat, 30 Sep 2000) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/windows.c
+
+When connecting to server, change the active window's server if the
+window is empty.
+
+------------------------------------------------------------------------
+r697 | cras | 2000-09-29 23:59:51 +0000 (Fri, 29 Sep 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/configure.in
+   M /irssi/trunk/src/irc/Makefile.am
+   A /irssi/trunk/src/irc/proxy
+   A /irssi/trunk/src/irc/proxy/.cvsignore
+   A /irssi/trunk/src/irc/proxy/Makefile.am
+   A /irssi/trunk/src/irc/proxy/dump.c
+   A /irssi/trunk/src/irc/proxy/listen.c
+   A /irssi/trunk/src/irc/proxy/module.h
+   A /irssi/trunk/src/irc/proxy/proxy.c
+   A /irssi/trunk/src/irc/proxy/proxy.h
+
+Updated Irssi proxy to work with latest version, thanks to fuchs :)
+
+------------------------------------------------------------------------
+r696 | cras | 2000-09-29 23:57:30 +0000 (Fri, 29 Sep 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/servers.c
+   M /irssi/trunk/src/fe-common/core/printtext.c
+   M /irssi/trunk/src/irc/bot/bot-events.c
+   M /irssi/trunk/src/irc/core/bans.c
+   M /irssi/trunk/src/irc/core/irc-servers.c
+   M /irssi/trunk/src/irc/notifylist/notifylist.c
+
+minor updates
+
+------------------------------------------------------------------------
+r695 | cras | 2000-09-28 18:54:43 +0000 (Thu, 28 Sep 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/dcc/module-formats.c
+
+own_dcc_query fixed
+
+------------------------------------------------------------------------
+r694 | cras | 2000-09-28 14:19:17 +0000 (Thu, 28 Sep 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/irc-completion.c
+
+multiprotocol fixes
+
+------------------------------------------------------------------------
+r693 | cras | 2000-09-28 01:38:50 +0000 (Thu, 28 Sep 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/irc-commands.c
+
+multiprotocol fixes for /AWAY -all
+
+------------------------------------------------------------------------
+r692 | cras | 2000-09-28 01:31:52 +0000 (Thu, 28 Sep 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/fe-netsplit.c
+
+fixes for multiprotocol support
+
+------------------------------------------------------------------------
+r691 | cras | 2000-09-28 00:32:56 +0000 (Thu, 28 Sep 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/notifylist/notify-ison.c
+
+multiprotocol fixes
+
+------------------------------------------------------------------------
+r690 | cras | 2000-09-28 00:28:48 +0000 (Thu, 28 Sep 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/notifylist/notifylist.c
+
+fixes
+
+------------------------------------------------------------------------
+r689 | cras | 2000-09-28 00:25:14 +0000 (Thu, 28 Sep 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/flood/autoignore.c
+   M /irssi/trunk/src/irc/flood/flood.c
+
+multiprotocol fixes
+
+------------------------------------------------------------------------
+r688 | cras | 2000-09-27 23:59:20 +0000 (Wed, 27 Sep 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/flood/flood.c
+
+fix for multiserver support
+
+------------------------------------------------------------------------
+r687 | cras | 2000-09-27 23:47:51 +0000 (Wed, 27 Sep 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/servers-reconnect.c
+   M /irssi/trunk/src/core/servers.c
+   M /irssi/trunk/src/core/servers.h
+   M /irssi/trunk/src/irc/core/irc-commands.c
+   M /irssi/trunk/src/irc/core/irc-servers.c
+   M /irssi/trunk/src/irc/core/irc.c
+
+Moved /DISCONNECT to core, other multiprotocol fixes.
+
+------------------------------------------------------------------------
+r686 | cras | 2000-09-27 23:46:20 +0000 (Wed, 27 Sep 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/signals.c
+
+module deinit fixes
+
+------------------------------------------------------------------------
+r685 | cras | 2000-09-27 23:45:17 +0000 (Wed, 27 Sep 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/network.c
+
+net_gethostbyaddr() fixed.
+
+------------------------------------------------------------------------
+r684 | cras | 2000-09-27 23:43:53 +0000 (Wed, 27 Sep 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/core.c
+   M /irssi/trunk/src/core/memdebug.c
+
+modules are deinitialized at quit.
+
+------------------------------------------------------------------------
+r683 | cras | 2000-09-27 23:42:05 +0000 (Wed, 27 Sep 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk
+   M /irssi/trunk/.cvsignore
+
+updated
+
+------------------------------------------------------------------------
+r682 | cras | 2000-09-27 00:25:26 +0000 (Wed, 27 Sep 2000) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/core/servers-setup.c
+   M /irssi/trunk/src/core/servers.c
+
+/SERVER irc.server.org 1234 now connects to port 1234 always even if
+some other port is specified for the same server in setup.
+
+------------------------------------------------------------------------
+r681 | cras | 2000-09-27 00:17:23 +0000 (Wed, 27 Sep 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-core-commands.c
+
+Show help with "clientcrap" message level, not "never".
+
+------------------------------------------------------------------------
+r680 | cras | 2000-09-27 00:14:58 +0000 (Wed, 27 Sep 2000) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/keyboard.c
+
+/BIND <key> /command works now directly instead of needing the
+"command" id in the middle
+
+------------------------------------------------------------------------
+r679 | cras | 2000-09-27 00:11:06 +0000 (Wed, 27 Sep 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/statusbar-items.c
+
+Also moving windows and changing refnum updates activity list.
+
+------------------------------------------------------------------------
+r678 | cras | 2000-09-27 00:08:03 +0000 (Wed, 27 Sep 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/windows.c
+   M /irssi/trunk/src/fe-text/statusbar-items.c
+
+Closing window didn't update window activity list.
+
+------------------------------------------------------------------------
+r677 | cras | 2000-09-26 22:24:53 +0000 (Tue, 26 Sep 2000) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/irc-nicklist.c
+
+irc_nick_match() should now work better for checking if nick at the
+start of the message was really meant for you.
+
+------------------------------------------------------------------------
+r676 | cras | 2000-09-26 22:02:19 +0000 (Tue, 26 Sep 2000) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/printtext.c
+
+if printformat() was given a argument ending with ^C it could mess up
+one or two chars of the following text (part/quit messages).
+
+------------------------------------------------------------------------
+r675 | cras | 2000-09-26 21:46:50 +0000 (Tue, 26 Sep 2000) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/module-formats.c
+
+PART and QUIT messages set the background color to default before
+printing the last "]" char
+
+------------------------------------------------------------------------
+r674 | cras | 2000-09-26 21:44:20 +0000 (Tue, 26 Sep 2000) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/core/levels.c
+   M /irssi/trunk/src/fe-common/core/window-commands.c
+
+"NONE" works now with combine_levels(). /WINDOW LEVEL NONE works and if
+window doesn't have level it prints "NONE" instead of empty string.
+
+------------------------------------------------------------------------
+r673 | cras | 2000-09-26 21:39:33 +0000 (Tue, 26 Sep 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/channels-setup.c
+   M /irssi/trunk/src/core/servers-setup.c
+
+backwards compatibility for s/ircnet/chanet/ change.
+
+------------------------------------------------------------------------
+r672 | cras | 2000-09-26 21:11:17 +0000 (Tue, 26 Sep 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/config
+
+updated
+
+------------------------------------------------------------------------
+r671 | cras | 2000-09-25 19:01:40 +0000 (Mon, 25 Sep 2000) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/fe-ctcp.c
+
+Display CTCP PING replies even if they're not in the form irssi
+expected.
+
+------------------------------------------------------------------------
+r670 | cras | 2000-09-25 18:11:52 +0000 (Mon, 25 Sep 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/docs/formats.txt
+
+updated
+
+------------------------------------------------------------------------
+r669 | cras | 2000-09-25 18:09:25 +0000 (Mon, 25 Sep 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/module-formats.c
+
+Ping replies should have displayed always with 3 decimals
+
+------------------------------------------------------------------------
+r668 | cras | 2000-09-25 17:26:52 +0000 (Mon, 25 Sep 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/dcc/fe-dcc.c
+   M /irssi/trunk/src/fe-common/irc/dcc/module-formats.c
+
+Added target parameter to own_dcc format
+
+------------------------------------------------------------------------
+r667 | cras | 2000-09-25 17:19:37 +0000 (Mon, 25 Sep 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/statusbar-items.c
+
+Don't show statusbar with bold color
+
+------------------------------------------------------------------------
+r666 | cras | 2000-09-25 13:23:01 +0000 (Mon, 25 Sep 2000) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/fe-events.c
+
+If /SET show_quit_once was set and ignored nick quitted, irssi printed
+GLib warning.
+
+------------------------------------------------------------------------
+r665 | cras | 2000-09-24 16:31:45 +0000 (Sun, 24 Sep 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/statusbar-items.c
+
+Bugfix for checking if user mode was empty (don't show (+) in statusbar)
+
+------------------------------------------------------------------------
+r664 | cras | 2000-09-22 10:26:52 +0000 (Fri, 22 Sep 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/irc-completion.c
+
+/SET completion_nicks_lowercase
+
+------------------------------------------------------------------------
+r663 | cras | 2000-09-19 21:14:35 +0000 (Tue, 19 Sep 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/fe-netjoin.c
+   M /irssi/trunk/src/irc/core/netsplit.c
+
+Netsplit fixes
+
+------------------------------------------------------------------------
+r662 | cras | 2000-09-19 12:55:49 +0000 (Tue, 19 Sep 2000) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/fe-irc-commands.c
+
+Irssi crashed if you used "/JOIN" or "/JOIN -invite" without connected
+to server.
+
+------------------------------------------------------------------------
+r661 | cras | 2000-09-19 02:45:20 +0000 (Tue, 19 Sep 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/docs/startup-HOWTO.txt
+
+typofixes
+
+------------------------------------------------------------------------
+r660 | cras | 2000-09-19 02:38:34 +0000 (Tue, 19 Sep 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/docs/startup-HOWTO.txt
+
+Updates for .95 compatibility
+
+------------------------------------------------------------------------
+r659 | cras | 2000-09-19 02:27:55 +0000 (Tue, 19 Sep 2000) | 2 lines
+Changed paths:
+   A /irssi/trunk/docs/startup-HOWTO.txt
+
+Documentation for Irssi newbies (!!)
+
+------------------------------------------------------------------------
+r658 | cras | 2000-09-10 19:28:56 +0000 (Sun, 10 Sep 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/modes.c
+
+/OP, /DEOP, etc. commands printed warning if no valid nicks were found.
+
+------------------------------------------------------------------------
+r657 | cras | 2000-09-07 22:43:07 +0000 (Thu, 07 Sep 2000) | 3 lines
+Changed paths:
+   M /irssi/trunk/acconfig.h
+   M /irssi/trunk/configure.in
+   M /irssi/trunk/src/perl/irssi-perl.c
+
+Moved the PL_perl_destruct_level check to configure script, it should
+now work with Perl 5.6 too.
+
+------------------------------------------------------------------------
+r656 | cras | 2000-09-07 21:55:58 +0000 (Thu, 07 Sep 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/acconfig.h
+   M /irssi/trunk/configure.in
+   M /irssi/trunk/src/fe-text/Makefile.am
+   M /irssi/trunk/src/fe-text/irssi.c
+   M /irssi/trunk/src/perl/Makefile.am
+   A /irssi/trunk/src/perl/libperl_dynaloader.la
+
+Perl works now only as a runtime loadable module
+
+------------------------------------------------------------------------
+r655 | cras | 2000-09-06 23:32:09 +0000 (Wed, 06 Sep 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/po/POTFILES.in
+
+updated
+
+------------------------------------------------------------------------
+r654 | cras | 2000-09-06 23:24:12 +0000 (Wed, 06 Sep 2000) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/core/servers-setup.c
+   M /irssi/trunk/src/fe-common/irc/fe-common-irc.c
+   M /irssi/trunk/src/fe-common/irc/fe-events.c
+   M /irssi/trunk/src/fe-common/irc/module-formats.c
+   M /irssi/trunk/src/irc/core/irc-servers-setup.c
+
+/SET default_nick -> /SET nick
+/FORMAT own_me -> /FORMAT own_action
+
+------------------------------------------------------------------------
+r653 | cras | 2000-09-06 23:15:42 +0000 (Wed, 06 Sep 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/command-history.c
+
+When pressing line down, the command line wasn't saved to history.
+
+------------------------------------------------------------------------
+r652 | cras | 2000-09-06 22:05:01 +0000 (Wed, 06 Sep 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/Makefile.am
+   M /irssi/trunk/src/fe-text/irssi.c
+
+No, SILC stuff still shouldn't be here :)
+
+------------------------------------------------------------------------
+r651 | cras | 2000-09-06 22:00:28 +0000 (Wed, 06 Sep 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/irc.c
+
+Disconnect if net_sendbuffer_send() fails.
+
+------------------------------------------------------------------------
+r650 | cras | 2000-09-06 21:54:53 +0000 (Wed, 06 Sep 2000) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/core/line-split.c
+
+line_split() : use g_memmove() instead of memcpy() .. hm. how could
+this even work before? :)
+
+------------------------------------------------------------------------
+r649 | cras | 2000-09-06 21:30:56 +0000 (Wed, 06 Sep 2000) | 4 lines
+Changed paths:
+   M /irssi/trunk/configure.in
+   M /irssi/trunk/docs/formats.txt
+   M /irssi/trunk/src/core/chatnets.c
+   M /irssi/trunk/src/core/modules.c
+   M /irssi/trunk/src/core/server-rec.h
+   M /irssi/trunk/src/core/servers-setup.c
+   M /irssi/trunk/src/fe-common/core/fe-queries.c
+   M /irssi/trunk/src/fe-common/core/fe-queries.h
+   M /irssi/trunk/src/fe-common/core/fe-server.c
+   M /irssi/trunk/src/fe-common/core/module-formats.c
+   M /irssi/trunk/src/fe-common/core/module-formats.h
+   M /irssi/trunk/src/fe-common/irc/fe-events.c
+   M /irssi/trunk/src/fe-common/irc/fe-irc-commands.c
+   M /irssi/trunk/src/fe-common/irc/fe-irc-server.c
+   M /irssi/trunk/src/fe-common/irc/fe-ircnet.c
+   M /irssi/trunk/src/fe-common/irc/module-formats.c
+   M /irssi/trunk/src/fe-common/irc/module-formats.h
+   M /irssi/trunk/src/fe-text/Makefile.am
+   M /irssi/trunk/src/fe-text/irssi.c
+   M /irssi/trunk/src/fe-text/statusbar-items.c
+   M /irssi/trunk/src/irc/core/irc-chatnets.c
+   M /irssi/trunk/src/irc/core/irc-core.c
+   M /irssi/trunk/src/irc/core/irc-servers.c
+   M /irssi/trunk/src/irc/core/irc-servers.h
+
+/set autocreate_query -> /set autocreate_query_level
+fixes to /ircnet, /server and /channel commands
+other updates and fixes
+
+------------------------------------------------------------------------
+r648 | cras | 2000-09-06 21:02:32 +0000 (Wed, 06 Sep 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/lib-config/set.c
+
+config_node_clear() didn't work right.
+
+------------------------------------------------------------------------
+r647 | cras | 2000-09-06 19:32:17 +0000 (Wed, 06 Sep 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/keyboard.c
+
+Added tab-completion for /BIND's commands.
+
+------------------------------------------------------------------------
+r646 | cras | 2000-09-06 19:22:07 +0000 (Wed, 06 Sep 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/window-save.c
+
+Restoring saved windows (/savewindows) didn't work.
+
+------------------------------------------------------------------------
+r645 | cras | 2000-09-06 19:16:02 +0000 (Wed, 06 Sep 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/keyboard.c
+
+/bind <key> command <cmd> - <cmd> doesn't need to start with / anymore
+
+------------------------------------------------------------------------
+r644 | cras | 2000-09-05 00:37:33 +0000 (Tue, 05 Sep 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/irc-commands.c
+
+/PART #channel1,#channel2 didn't work
+
+------------------------------------------------------------------------
+r643 | cras | 2000-09-04 23:39:42 +0000 (Mon, 04 Sep 2000) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/window-activity.c
+
+Actions will now show up in window activity with hilight or
+message-color, not the text-color as before.
+
+------------------------------------------------------------------------
+r642 | cras | 2000-09-02 19:29:32 +0000 (Sat, 02 Sep 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/modules.c
+
+bugfix
+
+------------------------------------------------------------------------
+r641 | cras | 2000-09-02 18:53:58 +0000 (Sat, 02 Sep 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/channels.c
+   M /irssi/trunk/src/core/channels.h
+   M /irssi/trunk/src/core/modules.c
+   M /irssi/trunk/src/core/modules.h
+   M /irssi/trunk/src/core/queries.c
+   M /irssi/trunk/src/core/queries.h
+   M /irssi/trunk/src/core/servers-reconnect.c
+   M /irssi/trunk/src/core/servers.c
+   M /irssi/trunk/src/core/servers.h
+   M /irssi/trunk/src/fe-common/core/Makefile.am
+   A /irssi/trunk/src/fe-common/core/fe-channels.c
+   M /irssi/trunk/src/fe-common/core/fe-common-core.c
+   A /irssi/trunk/src/fe-common/core/fe-queries.c
+   A /irssi/trunk/src/fe-common/core/fe-queries.h
+   M /irssi/trunk/src/fe-common/core/module-formats.c
+   M /irssi/trunk/src/fe-common/core/module-formats.h
+   M /irssi/trunk/src/fe-common/core/window-save.c
+   M /irssi/trunk/src/fe-common/irc/Makefile.am
+   D /irssi/trunk/src/fe-common/irc/fe-channels.c
+   M /irssi/trunk/src/fe-common/irc/fe-common-irc.c
+   M /irssi/trunk/src/fe-common/irc/fe-events.c
+   A /irssi/trunk/src/fe-common/irc/fe-irc-channels.c
+   M /irssi/trunk/src/fe-common/irc/fe-irc-commands.c
+   D /irssi/trunk/src/fe-common/irc/fe-queries.c
+   D /irssi/trunk/src/fe-common/irc/fe-queries.h
+   M /irssi/trunk/src/fe-common/irc/irc-completion.c
+   M /irssi/trunk/src/fe-common/irc/module-formats.c
+   M /irssi/trunk/src/fe-common/irc/module-formats.h
+   M /irssi/trunk/src/irc/core/Makefile.am
+   M /irssi/trunk/src/irc/core/irc-channels.c
+   M /irssi/trunk/src/irc/core/irc-commands.c
+   D /irssi/trunk/src/irc/core/irc-commands.h
+   M /irssi/trunk/src/irc/core/irc-queries.c
+
+Updates.
+
+------------------------------------------------------------------------
+r640 | cras | 2000-09-01 00:26:46 +0000 (Fri, 01 Sep 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/Makefile.am
+   M /irssi/trunk/src/core/channels.c
+   A /irssi/trunk/src/core/chat-protocols.c
+   A /irssi/trunk/src/core/chat-protocols.h
+   M /irssi/trunk/src/core/chatnet-rec.h
+   M /irssi/trunk/src/core/core.c
+   M /irssi/trunk/src/core/queries.c
+   M /irssi/trunk/src/core/server-connect-rec.h
+   M /irssi/trunk/src/core/server-rec.h
+   M /irssi/trunk/src/core/server-setup-rec.h
+   M /irssi/trunk/src/core/window-item-rec.h
+   M /irssi/trunk/src/fe-text/statusbar-items.c
+   M /irssi/trunk/src/irc/core/irc-channels.c
+   M /irssi/trunk/src/irc/core/irc-channels.h
+   M /irssi/trunk/src/irc/core/irc-chatnets.c
+   M /irssi/trunk/src/irc/core/irc-chatnets.h
+   M /irssi/trunk/src/irc/core/irc-core.c
+   M /irssi/trunk/src/irc/core/irc-queries.c
+   M /irssi/trunk/src/irc/core/irc-queries.h
+   M /irssi/trunk/src/irc/core/irc-servers-reconnect.c
+   M /irssi/trunk/src/irc/core/irc-servers-setup.c
+   M /irssi/trunk/src/irc/core/irc-servers-setup.h
+   M /irssi/trunk/src/irc/core/irc-servers.c
+   M /irssi/trunk/src/irc/core/irc-servers.h
+   M /irssi/trunk/src/irc/core/irc.c
+   M /irssi/trunk/src/irc/core/module.h
+
+Added chat protocol register. Changed all chat_type fields to use it.
+
+------------------------------------------------------------------------
+r639 | cras | 2000-08-31 21:03:40 +0000 (Thu, 31 Aug 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/irc-channels-setup.c
+   M /irssi/trunk/src/irc/core/irc-core.c
+
+Automatic joining to channels didn't work
+
+------------------------------------------------------------------------
+r638 | cras | 2000-08-30 22:29:55 +0000 (Wed, 30 Aug 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/common.h
+   M /irssi/trunk/src/core/channels.h
+   M /irssi/trunk/src/core/chatnets.h
+   M /irssi/trunk/src/core/modules.c
+   M /irssi/trunk/src/core/modules.h
+   M /irssi/trunk/src/core/queries.h
+   M /irssi/trunk/src/core/servers-setup.h
+   M /irssi/trunk/src/core/servers.h
+   M /irssi/trunk/src/irc/core/irc-channels.c
+   M /irssi/trunk/src/irc/core/irc-channels.h
+   M /irssi/trunk/src/irc/core/irc-chatnets.h
+   M /irssi/trunk/src/irc/core/irc-commands.c
+   M /irssi/trunk/src/irc/core/irc-queries.h
+   M /irssi/trunk/src/irc/core/irc-servers-setup.h
+   M /irssi/trunk/src/irc/core/irc-servers.h
+
+Object type checking fixes
+
+------------------------------------------------------------------------
+r637 | cras | 2000-08-29 23:43:59 +0000 (Tue, 29 Aug 2000) | 5 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/fe-events.c
+   M /irssi/trunk/src/fe-common/irc/irc-completion.c
+
+Highlighting fixes with public messages.
+
+/msg tab completion list growed to size of completion_keep_privates,
+the new nicks were removed from list instead of the old nicks.
+
+------------------------------------------------------------------------
+r636 | cras | 2000-08-29 19:26:05 +0000 (Tue, 29 Aug 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/modes.c
+
+/mode #channel -oooo... would deop the first 3, and then op the rest.
+
+------------------------------------------------------------------------
+r635 | cras | 2000-08-28 00:02:11 +0000 (Mon, 28 Aug 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/configure.in
+   A /irssi/trunk/po/sv.po
+
+Swedish translation
+
+------------------------------------------------------------------------
+r634 | cras | 2000-08-27 23:07:01 +0000 (Sun, 27 Aug 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/servers-setup.c
+   M /irssi/trunk/src/core/servers.c
+   M /irssi/trunk/src/fe-common/irc/fe-irc-server.c
+   M /irssi/trunk/src/irc/core/irc-channels.c
+   M /irssi/trunk/src/irc/core/irc-channels.h
+   M /irssi/trunk/src/irc/core/irc-commands.c
+   M /irssi/trunk/src/irc/core/irc-nicklist.h
+   M /irssi/trunk/src/irc/core/irc-servers-setup.c
+   M /irssi/trunk/src/irc/core/irc-servers.c
+
+updates
+
+------------------------------------------------------------------------
+r633 | cras | 2000-08-27 22:40:08 +0000 (Sun, 27 Aug 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/configure.in
+
+updated
+
+------------------------------------------------------------------------
+r632 | cras | 2000-08-26 15:39:44 +0000 (Sat, 26 Aug 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/po/POTFILES.in
+   M /irssi/trunk/po/de.po
+   M /irssi/trunk/po/fi.po
+   M /irssi/trunk/po/fr.po
+   M /irssi/trunk/po/pl.po
+   M /irssi/trunk/po/pt_BR.po
+   M /irssi/trunk/src/core/Makefile.am
+   A /irssi/trunk/src/core/channel-rec.h
+   A /irssi/trunk/src/core/channels-setup.c
+   A /irssi/trunk/src/core/channels-setup.h
+   A /irssi/trunk/src/core/channels.c
+   A /irssi/trunk/src/core/channels.h
+   A /irssi/trunk/src/core/chatnet-rec.h
+   A /irssi/trunk/src/core/chatnets.c
+   A /irssi/trunk/src/core/chatnets.h
+   M /irssi/trunk/src/core/commands.c
+   M /irssi/trunk/src/core/core.c
+   A /irssi/trunk/src/core/masks.c
+   A /irssi/trunk/src/core/masks.h
+   M /irssi/trunk/src/core/memdebug.c
+   M /irssi/trunk/src/core/misc.c
+   M /irssi/trunk/src/core/misc.h
+   M /irssi/trunk/src/core/modules.c
+   A /irssi/trunk/src/core/nicklist.c
+   A /irssi/trunk/src/core/nicklist.h
+   A /irssi/trunk/src/core/queries.c
+   A /irssi/trunk/src/core/queries.h
+   A /irssi/trunk/src/core/query-rec.h
+   A /irssi/trunk/src/core/server-connect-rec.h
+   A /irssi/trunk/src/core/server-rec.h
+   D /irssi/trunk/src/core/server-redirect.c
+   D /irssi/trunk/src/core/server-redirect.h
+   A /irssi/trunk/src/core/server-setup-rec.h
+   D /irssi/trunk/src/core/server.c
+   D /irssi/trunk/src/core/server.h
+   A /irssi/trunk/src/core/servers-reconnect.c
+   A /irssi/trunk/src/core/servers-reconnect.h
+   A /irssi/trunk/src/core/servers-redirect.c
+   A /irssi/trunk/src/core/servers-redirect.h
+   A /irssi/trunk/src/core/servers-setup.c
+   A /irssi/trunk/src/core/servers-setup.h
+   A /irssi/trunk/src/core/servers.c
+   A /irssi/trunk/src/core/servers.h
+   M /irssi/trunk/src/core/settings.h
+   M /irssi/trunk/src/core/signals.c
+   M /irssi/trunk/src/core/special-vars.c
+   M /irssi/trunk/src/core/special-vars.h
+   A /irssi/trunk/src/core/window-item-def.h
+   A /irssi/trunk/src/core/window-item-rec.h
+   M /irssi/trunk/src/fe-common/core/Makefile.am
+   M /irssi/trunk/src/fe-common/core/fe-common-core.c
+   M /irssi/trunk/src/fe-common/core/fe-log.c
+   M /irssi/trunk/src/fe-common/core/fe-server.c
+   M /irssi/trunk/src/fe-common/core/fe-settings.c
+   M /irssi/trunk/src/fe-common/core/hilight-text.c
+   M /irssi/trunk/src/fe-common/core/printtext.c
+   M /irssi/trunk/src/fe-common/core/window-activity.c
+   M /irssi/trunk/src/fe-common/core/window-commands.c
+   M /irssi/trunk/src/fe-common/core/window-items.c
+   M /irssi/trunk/src/fe-common/core/window-save.c
+   M /irssi/trunk/src/fe-common/core/windows.c
+   M /irssi/trunk/src/fe-common/core/windows.h
+   M /irssi/trunk/src/fe-common/irc/Makefile.am
+   M /irssi/trunk/src/fe-common/irc/dcc/fe-dcc.c
+   M /irssi/trunk/src/fe-common/irc/fe-channels.c
+   M /irssi/trunk/src/fe-common/irc/fe-common-irc.c
+   M /irssi/trunk/src/fe-common/irc/fe-ctcp.c
+   M /irssi/trunk/src/fe-common/irc/fe-events-numeric.c
+   M /irssi/trunk/src/fe-common/irc/fe-events.c
+   M /irssi/trunk/src/fe-common/irc/fe-ignore.c
+   M /irssi/trunk/src/fe-common/irc/fe-irc-commands.c
+   M /irssi/trunk/src/fe-common/irc/fe-irc-server.c
+   M /irssi/trunk/src/fe-common/irc/fe-ircnet.c
+   M /irssi/trunk/src/fe-common/irc/fe-netjoin.c
+   M /irssi/trunk/src/fe-common/irc/fe-netsplit.c
+   A /irssi/trunk/src/fe-common/irc/fe-queries.c
+   A /irssi/trunk/src/fe-common/irc/fe-queries.h
+   D /irssi/trunk/src/fe-common/irc/fe-query.c
+   D /irssi/trunk/src/fe-common/irc/fe-query.h
+   M /irssi/trunk/src/fe-common/irc/flood/fe-flood.c
+   M /irssi/trunk/src/fe-common/irc/irc-completion.c
+   M /irssi/trunk/src/fe-common/irc/irc-window-activity.c
+   M /irssi/trunk/src/fe-common/irc/notifylist/fe-notifylist.c
+   M /irssi/trunk/src/fe-text/gui-readline.c
+   M /irssi/trunk/src/fe-text/gui-special-vars.c
+   M /irssi/trunk/src/fe-text/gui-textwidget.c
+   M /irssi/trunk/src/fe-text/gui-windows.c
+   M /irssi/trunk/src/fe-text/gui-windows.h
+   M /irssi/trunk/src/fe-text/irssi.c
+   M /irssi/trunk/src/fe-text/statusbar-items.c
+   M /irssi/trunk/src/fe-text/statusbar.c
+   M /irssi/trunk/src/irc/Makefile.am
+   M /irssi/trunk/src/irc/bot/bot-events.c
+   M /irssi/trunk/src/irc/bot/bot-irc-commands.c
+   M /irssi/trunk/src/irc/bot/bot-users.c
+   M /irssi/trunk/src/irc/bot/botnet-users.c
+   M /irssi/trunk/src/irc/core/Makefile.am
+   M /irssi/trunk/src/irc/core/bans.c
+   M /irssi/trunk/src/irc/core/bans.h
+   M /irssi/trunk/src/irc/core/channel-events.c
+   M /irssi/trunk/src/irc/core/channel-rejoin.c
+   M /irssi/trunk/src/irc/core/channels-query.c
+   D /irssi/trunk/src/irc/core/channels-setup.c
+   D /irssi/trunk/src/irc/core/channels-setup.h
+   D /irssi/trunk/src/irc/core/channels.c
+   D /irssi/trunk/src/irc/core/channels.h
+   M /irssi/trunk/src/irc/core/ctcp.c
+   M /irssi/trunk/src/irc/core/ignore.c
+   A /irssi/trunk/src/irc/core/irc-channels-setup.c
+   A /irssi/trunk/src/irc/core/irc-channels.c
+   A /irssi/trunk/src/irc/core/irc-channels.h
+   A /irssi/trunk/src/irc/core/irc-chatnets.c
+   A /irssi/trunk/src/irc/core/irc-chatnets.h
+   M /irssi/trunk/src/irc/core/irc-commands.c
+   M /irssi/trunk/src/irc/core/irc-core.c
+   M /irssi/trunk/src/irc/core/irc-log.c
+   A /irssi/trunk/src/irc/core/irc-masks.c
+   A /irssi/trunk/src/irc/core/irc-masks.h
+   A /irssi/trunk/src/irc/core/irc-nicklist.c
+   A /irssi/trunk/src/irc/core/irc-nicklist.h
+   A /irssi/trunk/src/irc/core/irc-queries.c
+   A /irssi/trunk/src/irc/core/irc-queries.h
+   M /irssi/trunk/src/irc/core/irc-rawlog.c
+   D /irssi/trunk/src/irc/core/irc-server.c
+   D /irssi/trunk/src/irc/core/irc-server.h
+   A /irssi/trunk/src/irc/core/irc-servers-reconnect.c
+   A /irssi/trunk/src/irc/core/irc-servers-setup.c
+   A /irssi/trunk/src/irc/core/irc-servers-setup.h
+   A /irssi/trunk/src/irc/core/irc-servers.c
+   A /irssi/trunk/src/irc/core/irc-servers.h
+   M /irssi/trunk/src/irc/core/irc-special-vars.c
+   M /irssi/trunk/src/irc/core/irc.c
+   M /irssi/trunk/src/irc/core/irc.h
+   D /irssi/trunk/src/irc/core/ircnet-setup.c
+   D /irssi/trunk/src/irc/core/ircnet-setup.h
+   M /irssi/trunk/src/irc/core/lag.c
+   D /irssi/trunk/src/irc/core/masks.c
+   D /irssi/trunk/src/irc/core/masks.h
+   M /irssi/trunk/src/irc/core/massjoin.c
+   M /irssi/trunk/src/irc/core/mode-lists.c
+   M /irssi/trunk/src/irc/core/mode-lists.h
+   M /irssi/trunk/src/irc/core/modes.c
+   M /irssi/trunk/src/irc/core/modes.h
+   M /irssi/trunk/src/irc/core/netsplit.c
+   D /irssi/trunk/src/irc/core/nicklist.c
+   D /irssi/trunk/src/irc/core/nicklist.h
+   D /irssi/trunk/src/irc/core/query.c
+   D /irssi/trunk/src/irc/core/query.h
+   M /irssi/trunk/src/irc/core/server-idle.c
+   M /irssi/trunk/src/irc/core/server-idle.h
+   D /irssi/trunk/src/irc/core/server-reconnect.c
+   D /irssi/trunk/src/irc/core/server-reconnect.h
+   D /irssi/trunk/src/irc/core/server-setup.c
+   D /irssi/trunk/src/irc/core/server-setup.h
+   M /irssi/trunk/src/irc/dcc/dcc-chat.c
+   M /irssi/trunk/src/irc/dcc/dcc-files.c
+   M /irssi/trunk/src/irc/dcc/dcc.c
+   M /irssi/trunk/src/irc/flood/autoignore.c
+   M /irssi/trunk/src/irc/flood/flood.c
+   M /irssi/trunk/src/irc/notifylist/module.h
+   M /irssi/trunk/src/irc/notifylist/notify-ison.c
+   M /irssi/trunk/src/irc/notifylist/notify-setup.c
+   M /irssi/trunk/src/irc/notifylist/notify-whois.c
+   M /irssi/trunk/src/irc/notifylist/notifylist.c
+   M /irssi/trunk/src/lib-config/Makefile.am
+   M /irssi/trunk/src/lib-config/get.c
+   M /irssi/trunk/src/lib-config/iconfig.h
+   M /irssi/trunk/src/lib-config/parse.c
+   M /irssi/trunk/src/lib-config/set.c
+   M /irssi/trunk/src/lib-popt/Makefile.am
+   M /irssi/trunk/src/perl/Makefile.am
+   M /irssi/trunk/src/perl/xs/Irssi-query.xs
+   M /irssi/trunk/src/perl/xs/Irssi-window.xs
+   M /irssi/trunk/src/perl/xs/module.h
+
+Lots of moving stuff around - hopefully I didn't break too much :)
+
+------------------------------------------------------------------------
+r631 | cras | 2000-08-26 00:35:32 +0000 (Sat, 26 Aug 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/modes.c
+
+Some fixes to handling +l and +k mode.
+
+------------------------------------------------------------------------
+r630 | cras | 2000-08-25 22:53:22 +0000 (Fri, 25 Aug 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/dcc/fe-dcc.c
+   M /irssi/trunk/src/irc/dcc/dcc-chat.c
+   M /irssi/trunk/src/irc/dcc/dcc.c
+
+Don't allow sending data to dcc chats if connection isn't finished yet.
+
+------------------------------------------------------------------------
+r629 | cras | 2000-08-25 21:10:05 +0000 (Fri, 25 Aug 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/log.c
+
+log_day_change was never printed in logs.
+
+------------------------------------------------------------------------
+r628 | cras | 2000-08-25 10:46:47 +0000 (Fri, 25 Aug 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/fe-irc-commands.c
+
+/BAN could crash when showing bans
+
+------------------------------------------------------------------------
+r627 | cras | 2000-08-24 01:49:10 +0000 (Thu, 24 Aug 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/irssi.c
+
+send "irssi init finished" _after_ setting up perl support.
+
+------------------------------------------------------------------------
+r626 | cras | 2000-08-24 01:07:27 +0000 (Thu, 24 Aug 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/scripts/autoop.pl
+
+small fix :)
+
+------------------------------------------------------------------------
+r625 | cras | 2000-08-24 01:01:21 +0000 (Thu, 24 Aug 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/scripts/Makefile.am
+   A /irssi/trunk/scripts/autoop.pl
+
+Added /AUTOOP
+
+------------------------------------------------------------------------
+r624 | cras | 2000-08-24 00:57:26 +0000 (Thu, 24 Aug 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/perl/irssi-perl.c
+
+Signals that sent GSList as parameters didn't work right with perl scripts
+
+------------------------------------------------------------------------
+r623 | cras | 2000-08-24 00:56:46 +0000 (Thu, 24 Aug 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/masks.c
+
+masks_match() was buggy
+
+------------------------------------------------------------------------
+r622 | cras | 2000-08-23 02:06:38 +0000 (Wed, 23 Aug 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/mainwindows.c
+
+Call idlok() for all new subwindows.
+
+------------------------------------------------------------------------
+r621 | cras | 2000-08-23 01:44:46 +0000 (Wed, 23 Aug 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/bot/bot-events.c
+
+fix
+
+------------------------------------------------------------------------
+r620 | cras | 2000-08-22 22:11:37 +0000 (Tue, 22 Aug 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/perl/irssi-perl.c
+
+Unloading perl script crashed if it has used Irssi::timeout_add().
+
+------------------------------------------------------------------------
+r619 | cras | 2000-08-22 21:39:18 +0000 (Tue, 22 Aug 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/gui-printtext.c
+   M /irssi/trunk/src/fe-text/gui-textwidget.c
+   M /irssi/trunk/src/fe-text/gui-windows.c
+   M /irssi/trunk/src/fe-text/gui-windows.h
+
+Using blinking/bright background colors would crash irssi..
+
+------------------------------------------------------------------------
+r618 | cras | 2000-08-22 20:28:03 +0000 (Tue, 22 Aug 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/bot/bot-events.c
+
+HAS_MODE_ARG() wasn't updated here yet..
+
+------------------------------------------------------------------------
+r617 | cras | 2000-08-20 07:17:13 +0000 (Sun, 20 Aug 2000) | 4 lines
+Changed paths:
+   M /irssi/trunk/src/core/server.c
+   M /irssi/trunk/src/fe-common/irc/fe-channels.c
+   M /irssi/trunk/src/fe-common/irc/fe-netjoin.c
+   M /irssi/trunk/src/fe-text/statusbar-items.c
+   M /irssi/trunk/src/irc/core/channels.c
+   M /irssi/trunk/src/irc/core/channels.h
+   M /irssi/trunk/src/irc/core/irc-special-vars.c
+   M /irssi/trunk/src/irc/core/irc.h
+   M /irssi/trunk/src/irc/core/masks.c
+   M /irssi/trunk/src/irc/core/mode-lists.c
+   M /irssi/trunk/src/irc/core/modes.c
+   M /irssi/trunk/src/irc/core/modes.h
+   M /irssi/trunk/src/irc/core/nicklist.c
+   M /irssi/trunk/src/irc/core/nicklist.h
+   M /irssi/trunk/src/perl/xs/Irssi-channel.xs
+
+Channel mode handling changed - there's no more mode_xxx fields in
+channel structure, but instead just one mode string field. Also
+handling half-ops (+h) should work right.
+
+------------------------------------------------------------------------
+r616 | cras | 2000-08-19 20:14:09 +0000 (Sat, 19 Aug 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/irc-commands.c
+
+If nick argument isn't given to /OPER, your current nick will be used.
+
+------------------------------------------------------------------------
+r615 | cras | 2000-08-19 19:28:04 +0000 (Sat, 19 Aug 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/gui-readline.c
+
+Parameters to key_bind() with scroll_end was given in wrong order.
+
+------------------------------------------------------------------------
+r614 | cras | 2000-08-16 00:49:02 +0000 (Wed, 16 Aug 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/dcc/Makefile.am
+   M /irssi/trunk/src/fe-common/irc/flood/Makefile.am
+   M /irssi/trunk/src/fe-common/irc/notifylist/Makefile.am
+   M /irssi/trunk/src/irc/bot/Makefile.am
+   M /irssi/trunk/src/irc/dcc/Makefile.am
+   M /irssi/trunk/src/irc/flood/Makefile.am
+   M /irssi/trunk/src/irc/notifylist/Makefile.am
+   M /irssi/trunk/src/perl/Makefile.am
+
+plugin -> module
+
+------------------------------------------------------------------------
+r613 | cras | 2000-08-16 00:48:51 +0000 (Wed, 16 Aug 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/lib-config/get.c
+
+Small memleak fixed
+
+------------------------------------------------------------------------
+r612 | cras | 2000-08-16 00:48:29 +0000 (Wed, 16 Aug 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/commands.c
+   M /irssi/trunk/src/core/commands.h
+   M /irssi/trunk/src/fe-text/gui-textwidget.c
+
+/LAST - didn't work right.
+
+------------------------------------------------------------------------
+r611 | cras | 2000-08-16 00:26:07 +0000 (Wed, 16 Aug 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/perl/xs/Irssi-core.xs
+   M /irssi/trunk/src/perl/xs/Irssi-server.xs
+
+More fixes for 5.004 and older.
+
+------------------------------------------------------------------------
+r610 | cras | 2000-08-16 00:20:05 +0000 (Wed, 16 Aug 2000) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/perl/irssi-perl.c
+
+Fixes to make irssi work with other (older and newer) perl versions
+than 5.005
+
+------------------------------------------------------------------------
+r609 | cras | 2000-08-15 21:54:33 +0000 (Tue, 15 Aug 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/commands.c
+   M /irssi/trunk/src/irc/core/irc-commands.c
+
+/MSG -servertag crashed irssi.
+
+------------------------------------------------------------------------
+r608 | cras | 2000-08-15 00:22:08 +0000 (Tue, 15 Aug 2000) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/common.h
+   M /irssi/trunk/src/core/misc.c
+   M /irssi/trunk/src/core/server.c
+   M /irssi/trunk/src/fe-common/irc/fe-query.c
+   M /irssi/trunk/src/irc/dcc/dcc-chat.c
+   M /irssi/trunk/src/irc/dcc/dcc-files.c
+
+Some changes handling g_input_add() - maybe this helps to problems
+where irssi sometimes eats all the cpu.
+
+------------------------------------------------------------------------
+r607 | cras | 2000-08-14 21:42:37 +0000 (Mon, 14 Aug 2000) | 5 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/fe-irc-server.c
+   M /irssi/trunk/src/irc/core/irc-core.c
+   M /irssi/trunk/src/irc/core/irc-server.c
+   M /irssi/trunk/src/irc/core/irc.c
+   M /irssi/trunk/src/irc/core/server-reconnect.c
+   M /irssi/trunk/src/irc/core/server-setup.c
+   M /irssi/trunk/src/irc/core/server-setup.h
+
+Some server reconnection fixes. Reconnect now allows you to have
+more than one reconnection to the same server.
+
+Changed the deinit() order in IRC module to cleanly free all memory.
+
+------------------------------------------------------------------------
+r606 | cras | 2000-08-14 21:17:51 +0000 (Mon, 14 Aug 2000) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/irc-commands.c
+
+/SET wall_format updated, it sent only first word of the wall message
+($1 -> $1-)
+
+------------------------------------------------------------------------
+r605 | cras | 2000-08-13 23:15:05 +0000 (Sun, 13 Aug 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/Makefile.am
+   M /irssi/trunk/src/fe-text/irssi.c
+
+Added i18n initialization.
+
+------------------------------------------------------------------------
+r604 | cras | 2000-08-13 22:02:32 +0000 (Sun, 13 Aug 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/statusbar-items.c
+
+Mail counter fixes.
+
+------------------------------------------------------------------------
+r603 | cras | 2000-08-13 21:35:59 +0000 (Sun, 13 Aug 2000) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/perl/irssi-perl.c
+
+Perl scripts with non-alphanumeric characters in file name failed to
+load. Now such chars are converted to _ automatically.
+
+------------------------------------------------------------------------
+r602 | cras | 2000-08-13 15:58:20 +0000 (Sun, 13 Aug 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/dcc/fe-dcc.c
+
+/DCC LIST: % done didn't work right with large files.
+
+------------------------------------------------------------------------
+r601 | cras | 2000-08-13 15:28:14 +0000 (Sun, 13 Aug 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/fe-query.c
+
+Updated /QUERY syntax
+
+------------------------------------------------------------------------
+r600 | cras | 2000-08-13 15:24:23 +0000 (Sun, 13 Aug 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/docs/help/in/ban.in
+   M /irssi/trunk/docs/help/in/connect.in
+   M /irssi/trunk/docs/help/in/cycle.in
+   M /irssi/trunk/docs/help/in/dcc.in
+   M /irssi/trunk/docs/help/in/disconnect.in
+   M /irssi/trunk/docs/help/in/invite.in
+   M /irssi/trunk/docs/help/in/ison.in
+   M /irssi/trunk/docs/help/in/lusers.in
+   M /irssi/trunk/docs/help/in/mode.in
+   M /irssi/trunk/docs/help/in/perlflush.in
+   M /irssi/trunk/docs/help/in/quote.in
+   M /irssi/trunk/docs/help/in/reconnect.in
+   M /irssi/trunk/docs/help/in/set.in
+   M /irssi/trunk/docs/help/in/squery.in
+   M /irssi/trunk/docs/help/in/topic.in
+   M /irssi/trunk/docs/help/in/unban.in
+   M /irssi/trunk/docs/help/in/userhost.in
+   M /irssi/trunk/docs/help/in/who.in
+   M /irssi/trunk/docs/help/in/wquery.in
+
+updated
+
+------------------------------------------------------------------------
+r599 | cras | 2000-08-13 14:47:50 +0000 (Sun, 13 Aug 2000) | 3 lines
+Changed paths:
+   M /irssi/trunk/Makefile.am
+
+Added ChangeLog to EXTRA_DIST .. I think it used to be included
+automatically?
+
+------------------------------------------------------------------------
+r598 | cras | 2000-08-13 14:02:19 +0000 (Sun, 13 Aug 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/NEWS
+   M /irssi/trunk/TODO
+   M /irssi/trunk/configure.in
+   M /irssi/trunk/docs/formats.txt
+   M /irssi/trunk/docs/manual.txt
+   M /irssi/trunk/po/de.po
+   M /irssi/trunk/po/fi.po
+   M /irssi/trunk/po/fr.po
+   M /irssi/trunk/po/pl.po
+   M /irssi/trunk/po/pt_BR.po
+
+Getting ready for .95 ..
+
+------------------------------------------------------------------------
+r597 | cras | 2000-08-13 13:54:34 +0000 (Sun, 13 Aug 2000) | 3 lines
+Changed paths:
+   M /irssi/trunk/docs/perl.txt
+   M /irssi/trunk/src/perl/xs/Irssi-window.xs
+
+Implemented Irssi::print_window(), added optional level parameter to
+Irssi::print()
+
+------------------------------------------------------------------------
+r596 | cras | 2000-08-13 00:27:00 +0000 (Sun, 13 Aug 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/configure.in
+
+Disable NLS if msgfmt command isn't found.
+
+------------------------------------------------------------------------
+r595 | cras | 2000-08-12 23:51:53 +0000 (Sat, 12 Aug 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/mainwindow-activity.c
+
+bugfixes
+
+------------------------------------------------------------------------
+r594 | cras | 2000-08-12 22:58:16 +0000 (Sat, 12 Aug 2000) | 4 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-common-core.c
+   M /irssi/trunk/src/fe-common/core/window-save.c
+   M /irssi/trunk/src/fe-common/core/window-save.h
+   M /irssi/trunk/src/fe-common/irc/fe-irc-commands.c
+   M /irssi/trunk/src/fe-common/irc/fe-query.c
+
+Query windows are now restored if they were saved with /SAVEWINDOWS.
+Moved /QUERY command handling to fe-query and simplified handling the
+-window option.
+
+------------------------------------------------------------------------
+r593 | cras | 2000-08-12 21:12:33 +0000 (Sat, 12 Aug 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/perl/xs/Irssi-log.xs
+
+removed log rotating stuff.
+
+------------------------------------------------------------------------
+r592 | cras | 2000-08-12 16:40:39 +0000 (Sat, 12 Aug 2000) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/Makefile.am
+   M /irssi/trunk/src/fe-text/irssi.c
+   A /irssi/trunk/src/fe-text/mainwindow-activity.c
+   M /irssi/trunk/src/fe-text/mainwindows.c
+   M /irssi/trunk/src/fe-text/mainwindows.h
+
+Don't trigger window activity if window is already visible in some
+other split window.
+
+------------------------------------------------------------------------
+r591 | cras | 2000-08-12 15:50:50 +0000 (Sat, 12 Aug 2000) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/core/misc.c
+   M /irssi/trunk/src/core/misc.h
+   M /irssi/trunk/src/fe-common/core/fe-log.c
+
+mkpath() - behaves like mkdir -p. Autologging now uses it to create
+log directories.
+
+------------------------------------------------------------------------
+r590 | cras | 2000-08-12 02:16:52 +0000 (Sat, 12 Aug 2000) | 5 lines
+Changed paths:
+   M /irssi/trunk/config
+   M /irssi/trunk/src/core/commands.c
+   M /irssi/trunk/src/core/commands.h
+   M /irssi/trunk/src/fe-common/irc/fe-channels.c
+   M /irssi/trunk/src/fe-common/irc/fe-irc-commands.c
+   M /irssi/trunk/src/fe-common/irc/fe-query.c
+   M /irssi/trunk/src/fe-common/irc/irc-completion.c
+   M /irssi/trunk/src/irc/core/irc-commands.c
+   M /irssi/trunk/src/irc/core/irc-commands.h
+
+WJOIN -> /JOIN -window
+WQUERY -> /QUERY -window.
+Added support for /QUERY -<server tag>.
+Added aliases for WJOIN and WQUERY to default config file.
+
+------------------------------------------------------------------------
+r589 | cras | 2000-08-12 01:42:54 +0000 (Sat, 12 Aug 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/fe-irc-commands.c
+
+Don't trigger window activity when you send /MSG etc.
+
+------------------------------------------------------------------------
+r588 | cras | 2000-08-12 01:24:40 +0000 (Sat, 12 Aug 2000) | 7 lines
+Changed paths:
+   M /irssi/trunk/src/perl/irssi-perl.c
+
+Added namespaces for perl scripts.
+
+You can unload scripts with /UNLOAD <name>.
+
+Running scripts that are already loaded, destroys the old script from
+memory.
+
+------------------------------------------------------------------------
+r587 | cras | 2000-08-11 22:13:27 +0000 (Fri, 11 Aug 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/gui-entry.c
+
+Entry line scrolling works better.
+
+------------------------------------------------------------------------
+r586 | cras | 2000-08-11 22:07:42 +0000 (Fri, 11 Aug 2000) | 7 lines
+Changed paths:
+   M /irssi/trunk/src/core/log.c
+   M /irssi/trunk/src/core/log.h
+   M /irssi/trunk/src/fe-common/core/fe-log.c
+   M /irssi/trunk/src/fe-common/core/module-formats.c
+
+/LOG: Removed the -rotate option, it was pretty useless since adding
+the % formats to file name already tells that the log should be
+rotated.
+
+Autologging supports log rotating now too, just add the wanted %
+formats to /SET autolog_path
+
+------------------------------------------------------------------------
+r585 | cras | 2000-08-11 20:13:49 +0000 (Fri, 11 Aug 2000) | 4 lines
+Changed paths:
+   M /irssi/trunk/src/core/log.c
+   M /irssi/trunk/src/fe-common/core/fe-log.c
+
+Autologging fixes: Don't log WHOIS replies by default
+(autolog_level = all -crap). And with /msg nick1,nick2 don't log to
+file nick1,nick2.log but nick1.log and nick2.log separately.
+
+------------------------------------------------------------------------
+r584 | cras | 2000-08-11 19:57:58 +0000 (Fri, 11 Aug 2000) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/windows.c
+
+When destroying window, change to different window before destroying
+window items so that if they print anything, it won't get lost.
+
+------------------------------------------------------------------------
+r583 | cras | 2000-08-11 19:51:59 +0000 (Fri, 11 Aug 2000) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/perl/irssi-perl.c
+
+Use perl_destruct_level, not PL_perl_destruct_level so that we're
+compatible with older versions of perl.
+
+------------------------------------------------------------------------
+r582 | cras | 2000-08-10 20:50:06 +0000 (Thu, 10 Aug 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/screen.c
+   M /irssi/trunk/src/fe-text/statusbar-items.c
+   M /irssi/trunk/src/fe-text/statusbar.c
+   M /irssi/trunk/src/fe-text/statusbar.h
+
+Topic bar doesn't get erased anymore after resize.
+
+------------------------------------------------------------------------
+r581 | cras | 2000-08-10 20:25:57 +0000 (Thu, 10 Aug 2000) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/server-setup.c
+
+/connect ircnet doesn't fail anymore if there's no ircnet servers in
+server list but just tries to connect to server in address "ircnet"..
+
+------------------------------------------------------------------------
+r580 | cras | 2000-08-10 20:02:59 +0000 (Thu, 10 Aug 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/acconfig.h
+   M /irssi/trunk/configure.in
+
+For curses fixes..
+
+------------------------------------------------------------------------
+r579 | cras | 2000-08-10 20:01:32 +0000 (Thu, 10 Aug 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/mainwindows.c
+   M /irssi/trunk/src/fe-text/mainwindows.h
+   M /irssi/trunk/src/fe-text/screen.c
+
+Still some fixes for curseses without wresize() or resizeterm().
+
+------------------------------------------------------------------------
+r578 | cras | 2000-08-10 19:39:06 +0000 (Thu, 10 Aug 2000) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/channels-setup.c
+
+/channel add -bots: You can now use @ or + before the nick mask to
+indicate that bot should have either ops or voices/ops.
+
+------------------------------------------------------------------------
+r577 | cras | 2000-08-10 19:13:54 +0000 (Thu, 10 Aug 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/gui-readline.c
+   M /irssi/trunk/src/fe-text/gui-textwidget.c
+   M /irssi/trunk/src/fe-text/mainwindows.c
+   M /irssi/trunk/src/fe-text/statusbar-items.c
+   M /irssi/trunk/src/fe-text/statusbar.c
+
+Windowing system fixes, doesn't crash anymore after window resizes.
+
+------------------------------------------------------------------------
+r576 | cras | 2000-08-10 12:23:56 +0000 (Thu, 10 Aug 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/fe-events-numeric.c
+   M /irssi/trunk/src/fe-common/irc/module-formats.c
+   M /irssi/trunk/src/fe-common/irc/module-formats.h
+
+Added support for dalnet's whois registered event.
+
+------------------------------------------------------------------------
+r575 | cras | 2000-08-10 11:25:34 +0000 (Thu, 10 Aug 2000) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/fe-channels.c
+   M /irssi/trunk/src/fe-common/irc/fe-query.c
+
+Don't autoclose window after part/unquery if there was still some
+channels/queries left in window.
+
+------------------------------------------------------------------------
+r574 | cras | 2000-08-04 15:52:32 +0000 (Fri, 04 Aug 2000) | 5 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/windows.c
+   M /irssi/trunk/src/fe-text/gui-readline.c
+
+When server is disconnected, change to use some other server in windows
+where the server was active, instead of just setting the server to NULL.
+
+Ctrl-X didn't work right if there was no active server in window.
+
+------------------------------------------------------------------------
+r573 | cras | 2000-08-01 01:31:49 +0000 (Tue, 01 Aug 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/lib-config/set.c
+
+fix
+
+------------------------------------------------------------------------
+r572 | cras | 2000-08-01 01:02:46 +0000 (Tue, 01 Aug 2000) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/Makefile.am
+   M /irssi/trunk/src/fe-common/core/fe-common-core.c
+   M /irssi/trunk/src/fe-common/core/window-commands.c
+   A /irssi/trunk/src/fe-common/core/window-save.c
+   A /irssi/trunk/src/fe-common/core/window-save.h
+   M /irssi/trunk/src/fe-common/core/windows.c
+   M /irssi/trunk/src/fe-common/core/windows.h
+
+/SAVEWINDOWS - saves the current layout of windows. It's automatically
+reloaded at startup.
+
+------------------------------------------------------------------------
+r571 | cras | 2000-08-01 00:39:53 +0000 (Tue, 01 Aug 2000) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/fe-channels.c
+   M /irssi/trunk/src/fe-common/irc/fe-query.c
+   M /irssi/trunk/src/fe-common/irc/irc-completion.c
+
+/wjoin and /wquery commands stopped the "channel created" and
+"query created" signals - not good.
+
+------------------------------------------------------------------------
+r570 | cras | 2000-07-31 23:16:56 +0000 (Mon, 31 Jul 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/gui-windows.c
+   M /irssi/trunk/src/fe-text/irssi.c
+
+You can change the default line indentation with /SET indent
+
+------------------------------------------------------------------------
+r569 | cras | 2000-07-31 23:13:11 +0000 (Mon, 31 Jul 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/module-formats.c
+   M /irssi/trunk/src/fe-common/irc/module-formats.c
+
+updated
+
+------------------------------------------------------------------------
+r568 | cras | 2000-07-31 23:09:39 +0000 (Mon, 31 Jul 2000) | 6 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/irc-completion.c
+   M /irssi/trunk/src/fe-common/irc/module.h
+   M /irssi/trunk/src/irc/core/channels.h
+   M /irssi/trunk/src/irc/core/irc-server.h
+
+Moved lastmsgs variables from irc-server and channel structures to
+irc-completion.
+
+/MSG nick completion now gives the nicks in right time order when using
+multiple irc networks.
+
+------------------------------------------------------------------------
+r567 | cras | 2000-07-31 22:19:32 +0000 (Mon, 31 Jul 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/command-history.c
+
+Don't allow jumping to last line in history from first line
+
+------------------------------------------------------------------------
+r566 | cras | 2000-07-31 22:16:50 +0000 (Mon, 31 Jul 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/window-activity.c
+
+Actions didn't trigger window activity
+
+------------------------------------------------------------------------
+r565 | cras | 2000-07-31 22:10:18 +0000 (Mon, 31 Jul 2000) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/channel-events.c
+
+Check that we're not already joined the channel when receiving JOIN
+event, just to fix an irssi proxy bug..
+
+------------------------------------------------------------------------
+r564 | cras | 2000-07-31 22:01:56 +0000 (Mon, 31 Jul 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/fe-events-numeric.c
+   M /irssi/trunk/src/fe-common/irc/module-formats.c
+   M /irssi/trunk/src/fe-common/irc/module-formats.h
+
+Added names_nick format.
+
+------------------------------------------------------------------------
+r563 | cras | 2000-07-31 22:01:32 +0000 (Mon, 31 Jul 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/printtext.c
+   M /irssi/trunk/src/fe-common/core/printtext.h
+
+Added output_format_get_text() function for querying text formats.
+
+------------------------------------------------------------------------
+r562 | cras | 2000-07-31 21:46:31 +0000 (Mon, 31 Jul 2000) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/gui-entry.c
+
+Don't draw the last character in entry line, this doesn't work right
+with some terminals.
+
+------------------------------------------------------------------------
+r561 | cras | 2000-07-31 21:16:09 +0000 (Mon, 31 Jul 2000) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-common-core.c
+   M /irssi/trunk/src/fe-common/core/module-formats.c
+   M /irssi/trunk/src/fe-common/core/module-formats.h
+   M /irssi/trunk/src/fe-common/core/printtext.c
+   M /irssi/trunk/src/fe-common/core/themes.c
+   M /irssi/trunk/src/fe-common/core/themes.h
+   M /irssi/trunk/src/fe-common/core/window-commands.c
+   M /irssi/trunk/src/fe-common/core/windows.h
+
+Theme fixes: /RELOAD reloads them, /SET current_theme changes the default
+theme, you can have window specific themes with /WINDOW THEME.
+
+------------------------------------------------------------------------
+r560 | cras | 2000-07-31 20:40:24 +0000 (Mon, 31 Jul 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/server.c
+   M /irssi/trunk/src/irc/core/irc-server.c
+
+Fixes
+
+------------------------------------------------------------------------
+r559 | cras | 2000-07-31 20:39:31 +0000 (Mon, 31 Jul 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/server-setup.c
+
+Never fallback to alternate_nick if nick is set in ircnet settings.
+
+------------------------------------------------------------------------
+r558 | cras | 2000-07-31 20:17:33 +0000 (Mon, 31 Jul 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/configure.in
+
+Abort immediately if GLib wasn't found
+
+------------------------------------------------------------------------
+r557 | cras | 2000-07-31 19:11:55 +0000 (Mon, 31 Jul 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/syntax.pl
+
+Fixes..
+
+------------------------------------------------------------------------
+r556 | cras | 2000-07-31 15:36:40 +0000 (Mon, 31 Jul 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/printtext.c
+
+Never beep with texts with MSGLEVEL_NOHILIGHT level.
+
+------------------------------------------------------------------------
+r555 | cras | 2000-07-31 12:50:57 +0000 (Mon, 31 Jul 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/syntax.pl
+
+Using find instead of grep -r.
+
+------------------------------------------------------------------------
+r554 | cras | 2000-07-30 20:15:48 +0000 (Sun, 30 Jul 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/statusbar-items.c
+
+Mail check: the also file size changes as well as modify time changes
+
+------------------------------------------------------------------------
+r553 | cras | 2000-07-30 18:37:49 +0000 (Sun, 30 Jul 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-common-core.c
+   M /irssi/trunk/src/fe-common/irc/fe-common-irc.c
+
+Moved the beep settings_add_xxx() calls from irc to core.
+
+------------------------------------------------------------------------
+r552 | cras | 2000-07-30 17:32:55 +0000 (Sun, 30 Jul 2000) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/printtext.c
+   M /irssi/trunk/src/fe-common/irc/fe-events.c
+
+/SET beep_on_msg handling moved to printtext() where it catches all the
+levels, not just the IRC levels.
+
+------------------------------------------------------------------------
+r551 | cras | 2000-07-30 17:30:54 +0000 (Sun, 30 Jul 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/server.h
+   M /irssi/trunk/src/irc/core/irc-server.h
+
+Moved some IRC specific server stuff to generic server stuff.
+
+------------------------------------------------------------------------
+r550 | cras | 2000-07-30 17:19:16 +0000 (Sun, 30 Jul 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/server.c
+   M /irssi/trunk/src/fe-common/irc/irc-completion.c
+   M /irssi/trunk/src/irc/core/channel-rejoin.c
+   M /irssi/trunk/src/irc/core/channels-query.c
+   M /irssi/trunk/src/irc/core/ctcp.c
+   M /irssi/trunk/src/irc/core/irc-commands.c
+   M /irssi/trunk/src/irc/core/irc.c
+   M /irssi/trunk/src/irc/core/netsplit.c
+   M /irssi/trunk/src/irc/core/server-idle.c
+
+Bugfixes for non-irc server handling.
+
+------------------------------------------------------------------------
+r549 | cras | 2000-07-29 17:59:45 +0000 (Sat, 29 Jul 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/modes.c
+
+/OP, /DEOP, /VOICE and /DEVOICE without any parameters didn't work right
+
+------------------------------------------------------------------------
+r548 | cras | 2000-07-29 17:59:22 +0000 (Sat, 29 Jul 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/gui-printtext.c
+   M /irssi/trunk/src/fe-text/gui-windows.c
+   M /irssi/trunk/src/fe-text/mainwindows.c
+
+Bugfixes for the windowing system.
+
+------------------------------------------------------------------------
+r547 | cras | 2000-07-29 15:35:45 +0000 (Sat, 29 Jul 2000) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/core/network.c
+
+send() - ignore EPIPE return value and just return "0 bytes sent". The broken
+connection will be noticed after recv().
+
+------------------------------------------------------------------------
+r546 | cras | 2000-07-27 19:41:48 +0000 (Thu, 27 Jul 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/channels-setup.c
+
+/CHANNEL ADD -botcmd without -bots crashed irssi.
+
+------------------------------------------------------------------------
+r545 | cras | 2000-07-27 01:09:12 +0000 (Thu, 27 Jul 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/screen.c
+
+We want to ignore SIGPIPE *ALWAYS*, don't set it back to SIG_DFL.
+
+------------------------------------------------------------------------
+r544 | cras | 2000-07-26 23:56:09 +0000 (Wed, 26 Jul 2000) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-core-commands.c
+
+/ECHO didn't print to active window if it was empty and status window
+existed.
+
+------------------------------------------------------------------------
+r543 | cras | 2000-07-26 23:55:32 +0000 (Wed, 26 Jul 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/Makefile.am
+   M /irssi/trunk/configure.in
+
+Updates
+
+------------------------------------------------------------------------
+r542 | cras | 2000-07-26 23:29:34 +0000 (Wed, 26 Jul 2000) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/gui-entry.c
+   M /irssi/trunk/src/fe-text/gui-printtext.c
+   M /irssi/trunk/src/fe-text/gui-windows.c
+   M /irssi/trunk/src/fe-text/mainwindows.c
+   M /irssi/trunk/src/fe-text/mainwindows.h
+   M /irssi/trunk/src/fe-text/screen.c
+   M /irssi/trunk/src/fe-text/screen.h
+   M /irssi/trunk/src/fe-text/statusbar-items.c
+   M /irssi/trunk/src/fe-text/statusbar.c
+
+Mainwindows use now real curses WINDOWs, this should fix irssi with some
+curseses that didn't like setscrreg() (solaris 8).
+
+------------------------------------------------------------------------
+r540 | cras | 2000-07-26 18:18:28 +0000 (Wed, 26 Jul 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/NEWS
+   M /irssi/trunk/TODO
+   M /irssi/trunk/po/de.po
+   M /irssi/trunk/po/fi.po
+   M /irssi/trunk/po/fr.po
+   M /irssi/trunk/po/pl.po
+   M /irssi/trunk/po/pt_BR.po
+   M /irssi/trunk/syntax.pl
+
+Getting ready for .94 ..
+
+------------------------------------------------------------------------
+r539 | cras | 2000-07-26 18:12:29 +0000 (Wed, 26 Jul 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/docs/help/Makefile.am.gen
+   D /irssi/trunk/docs/help/help
+   M /irssi/trunk/docs/help/in/Makefile.am.gen
+
+updates
+
+------------------------------------------------------------------------
+r538 | cras | 2000-07-26 18:00:22 +0000 (Wed, 26 Jul 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/irssi.c
+
+No, we still don't want silc_init() here..
+
+------------------------------------------------------------------------
+r537 | cras | 2000-07-26 17:56:51 +0000 (Wed, 26 Jul 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/docs/help
+   M /irssi/trunk/docs/help/.cvsignore
+   M /irssi/trunk/docs/help/in
+   A /irssi/trunk/docs/help/in/.cvsignore
+
+updated
+
+------------------------------------------------------------------------
+r536 | cras | 2000-07-26 17:52:19 +0000 (Wed, 26 Jul 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/autogen.sh
+   M /irssi/trunk/configure.in
+   D /irssi/trunk/docs/help/Makefile.am
+   A /irssi/trunk/docs/help/Makefile.am.gen
+   M /irssi/trunk/docs/help/help
+   A /irssi/trunk/docs/help/in
+   A /irssi/trunk/docs/help/in/Makefile.am.gen
+   A /irssi/trunk/docs/help/in/action.in
+   A /irssi/trunk/docs/help/in/admin.in
+   A /irssi/trunk/docs/help/in/alias.in
+   A /irssi/trunk/docs/help/in/away.in
+   A /irssi/trunk/docs/help/in/ban.in
+   A /irssi/trunk/docs/help/in/bantype.in
+   A /irssi/trunk/docs/help/in/beep.in
+   A /irssi/trunk/docs/help/in/cat.in
+   A /irssi/trunk/docs/help/in/cd.in
+   A /irssi/trunk/docs/help/in/channel.in
+   A /irssi/trunk/docs/help/in/clear.in
+   A /irssi/trunk/docs/help/in/connect.in
+   A /irssi/trunk/docs/help/in/ctcp.in
+   A /irssi/trunk/docs/help/in/cycle.in
+   A /irssi/trunk/docs/help/in/date.in
+   A /irssi/trunk/docs/help/in/dcc.in
+   A /irssi/trunk/docs/help/in/dehilight.in
+   A /irssi/trunk/docs/help/in/deop.in
+   A /irssi/trunk/docs/help/in/devoice.in
+   A /irssi/trunk/docs/help/in/die.in
+   A /irssi/trunk/docs/help/in/disconnect.in
+   A /irssi/trunk/docs/help/in/echo.in
+   A /irssi/trunk/docs/help/in/eval.in
+   A /irssi/trunk/docs/help/in/format.in
+   A /irssi/trunk/docs/help/in/hash.in
+   A /irssi/trunk/docs/help/in/help.in
+   A /irssi/trunk/docs/help/in/hilight.in
+   A /irssi/trunk/docs/help/in/ignore.in
+   A /irssi/trunk/docs/help/in/info.in
+   A /irssi/trunk/docs/help/in/invite.in
+   A /irssi/trunk/docs/help/in/invitelist.in
+   A /irssi/trunk/docs/help/in/ircnet.in
+   A /irssi/trunk/docs/help/in/ison.in
+   A /irssi/trunk/docs/help/in/join.in
+   A /irssi/trunk/docs/help/in/kick.in
+   A /irssi/trunk/docs/help/in/kickban.in
+   A /irssi/trunk/docs/help/in/kill.in
+   A /irssi/trunk/docs/help/in/knockout.in
+   A /irssi/trunk/docs/help/in/lastlog.in
+   A /irssi/trunk/docs/help/in/links.in
+   A /irssi/trunk/docs/help/in/list.in
+   A /irssi/trunk/docs/help/in/log.in
+   A /irssi/trunk/docs/help/in/lusers.in
+   A /irssi/trunk/docs/help/in/map.in
+   A /irssi/trunk/docs/help/in/me.in
+   A /irssi/trunk/docs/help/in/mircdcc.in
+   A /irssi/trunk/docs/help/in/mode.in
+   A /irssi/trunk/docs/help/in/motd.in
+   A /irssi/trunk/docs/help/in/msg.in
+   A /irssi/trunk/docs/help/in/names.in
+   A /irssi/trunk/docs/help/in/nctcp.in
+   A /irssi/trunk/docs/help/in/netsplit.in
+   A /irssi/trunk/docs/help/in/nick.in
+   A /irssi/trunk/docs/help/in/note.in
+   A /irssi/trunk/docs/help/in/notice.in
+   A /irssi/trunk/docs/help/in/notify.in
+   A /irssi/trunk/docs/help/in/op.in
+   A /irssi/trunk/docs/help/in/oper.in
+   A /irssi/trunk/docs/help/in/part.in
+   A /irssi/trunk/docs/help/in/perlflush.in
+   A /irssi/trunk/docs/help/in/ping.in
+   A /irssi/trunk/docs/help/in/query.in
+   A /irssi/trunk/docs/help/in/quit.in
+   A /irssi/trunk/docs/help/in/quote.in
+   A /irssi/trunk/docs/help/in/rawlog.in
+   A /irssi/trunk/docs/help/in/reconnect.in
+   A /irssi/trunk/docs/help/in/reload.in
+   A /irssi/trunk/docs/help/in/restart.in
+   A /irssi/trunk/docs/help/in/rmreconns.in
+   A /irssi/trunk/docs/help/in/rping.in
+   A /irssi/trunk/docs/help/in/run.in
+   A /irssi/trunk/docs/help/in/save.in
+   A /irssi/trunk/docs/help/in/sconnect.in
+   A /irssi/trunk/docs/help/in/scrollback.in
+   A /irssi/trunk/docs/help/in/server.in
+   A /irssi/trunk/docs/help/in/servlist.in
+   A /irssi/trunk/docs/help/in/set.in
+   A /irssi/trunk/docs/help/in/silence.in
+   A /irssi/trunk/docs/help/in/squery.in
+   A /irssi/trunk/docs/help/in/squit.in
+   A /irssi/trunk/docs/help/in/stats.in
+   A /irssi/trunk/docs/help/in/time.in
+   A /irssi/trunk/docs/help/in/toggle.in
+   A /irssi/trunk/docs/help/in/topic.in
+   A /irssi/trunk/docs/help/in/trace.in
+   A /irssi/trunk/docs/help/in/ts.in
+   A /irssi/trunk/docs/help/in/unalias.in
+   A /irssi/trunk/docs/help/in/unban.in
+   A /irssi/trunk/docs/help/in/unignore.in
+   A /irssi/trunk/docs/help/in/unnotify.in
+   A /irssi/trunk/docs/help/in/unquery.in
+   A /irssi/trunk/docs/help/in/uping.in
+   A /irssi/trunk/docs/help/in/userhost.in
+   A /irssi/trunk/docs/help/in/ver.in
+   A /irssi/trunk/docs/help/in/version.in
+   A /irssi/trunk/docs/help/in/voice.in
+   A /irssi/trunk/docs/help/in/wall.in
+   A /irssi/trunk/docs/help/in/wallchops.in
+   A /irssi/trunk/docs/help/in/wallops.in
+   A /irssi/trunk/docs/help/in/who.in
+   A /irssi/trunk/docs/help/in/whois.in
+   A /irssi/trunk/docs/help/in/whowas.in
+   A /irssi/trunk/docs/help/in/window.in
+   A /irssi/trunk/docs/help/in/wjoin.in
+   A /irssi/trunk/docs/help/in/wquery.in
+   A /irssi/trunk/syntax.pl
+
+Help files by lite
+
+------------------------------------------------------------------------
+r535 | cras | 2000-07-26 17:18:52 +0000 (Wed, 26 Jul 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/completion.c
+
+Command completion should override others.
+
+------------------------------------------------------------------------
+r534 | cras | 2000-07-24 23:21:11 +0000 (Mon, 24 Jul 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/channels-setup.c
+   M /irssi/trunk/src/irc/core/ircnet-setup.c
+
+Channels and ircnets got lost after /RELOAD and /SAVE
+
+------------------------------------------------------------------------
+r533 | cras | 2000-07-24 00:11:40 +0000 (Mon, 24 Jul 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/fe-irc-commands.c
+   M /irssi/trunk/src/fe-common/irc/module-formats.c
+   M /irssi/trunk/src/fe-common/irc/module-formats.h
+
+/BAN #channel now shows bans and ban exceptions in specified channel
+
+------------------------------------------------------------------------
+r532 | cras | 2000-07-23 23:46:41 +0000 (Sun, 23 Jul 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/gui-readline.c
+
+Call key_unbind()s at deinit.
+
+------------------------------------------------------------------------
+r531 | cras | 2000-07-23 23:41:47 +0000 (Sun, 23 Jul 2000) | 4 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/gui-printtext.c
+
+Display bolds with the current_theme->default_color color, not with the
+"default color" (0) since it doesn't seem to work right with all
+terminals.
+
+------------------------------------------------------------------------
+r530 | cras | 2000-07-23 23:32:28 +0000 (Sun, 23 Jul 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/server-setup.c
+
+Don't try to free ircnet if it's NULL.
+
+------------------------------------------------------------------------
+r529 | cras | 2000-07-23 23:19:22 +0000 (Sun, 23 Jul 2000) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/core/commands.c
+   M /irssi/trunk/src/fe-common/core/fe-core-commands.c
+   M /irssi/trunk/src/fe-common/core/fe-log.c
+   M /irssi/trunk/src/fe-common/core/fe-modules.c
+   M /irssi/trunk/src/fe-common/core/fe-settings.c
+   M /irssi/trunk/src/fe-common/core/hilight-text.c
+   M /irssi/trunk/src/fe-common/core/keyboard.c
+   M /irssi/trunk/src/fe-common/core/themes.c
+   M /irssi/trunk/src/fe-common/core/window-commands.c
+   M /irssi/trunk/src/fe-common/irc/fe-channels.c
+   M /irssi/trunk/src/fe-common/irc/fe-ignore.c
+   M /irssi/trunk/src/fe-common/irc/fe-irc-commands.c
+   M /irssi/trunk/src/fe-common/irc/fe-irc-server.c
+   M /irssi/trunk/src/fe-common/irc/fe-ircnet.c
+   M /irssi/trunk/src/fe-common/irc/fe-netsplit.c
+   M /irssi/trunk/src/fe-text/gui-printtext.c
+   M /irssi/trunk/src/fe-text/gui-textwidget.c
+   M /irssi/trunk/src/fe-text/mainwindows.c
+   M /irssi/trunk/src/irc/core/bans.c
+   M /irssi/trunk/src/irc/core/irc-commands.c
+   M /irssi/trunk/src/irc/core/irc-rawlog.c
+   M /irssi/trunk/src/irc/core/modes.c
+   M /irssi/trunk/src/irc/core/server-reconnect.c
+   M /irssi/trunk/src/irc/dcc/dcc-chat.c
+   M /irssi/trunk/src/irc/dcc/dcc-files.c
+   M /irssi/trunk/src/irc/dcc/dcc.c
+   M /irssi/trunk/src/irc/notifylist/notify-commands.c
+
+Added syntaxes of all commands in comments, they're going to be used to
+autogenerate help files.
+
+------------------------------------------------------------------------
+r528 | cras | 2000-07-23 14:58:54 +0000 (Sun, 23 Jul 2000) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/perl/irssi-perl.c
+
+Moved the PL_perl_destruct_level to irssi_perl_init() so Irssi won't
+crash after second /PERLFLUSH.
+
+------------------------------------------------------------------------
+r527 | cras | 2000-07-23 14:41:42 +0000 (Sun, 23 Jul 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/fe-ignore.c
+   M /irssi/trunk/src/irc/core/ignore.c
+   M /irssi/trunk/src/irc/core/ignore.h
+
+Implemented /IGNORE -time <seconds>, patch by fuchs.
+
+------------------------------------------------------------------------
+r526 | cras | 2000-07-23 14:18:32 +0000 (Sun, 23 Jul 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/irc-log.c
+
+Awaylog didn't work right if you did /AWAY multiple times.
+
+------------------------------------------------------------------------
+r525 | cras | 2000-07-23 14:14:05 +0000 (Sun, 23 Jul 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/docs/manual.txt
+   M /irssi/trunk/docs/perl.txt
+
+updates
+
+------------------------------------------------------------------------
+r524 | cras | 2000-07-23 14:07:20 +0000 (Sun, 23 Jul 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/dcc/dcc-chat.c
+   M /irssi/trunk/src/irc/dcc/dcc-files.c
+
+A few extra checks.
+
+------------------------------------------------------------------------
+r523 | cras | 2000-07-23 13:50:07 +0000 (Sun, 23 Jul 2000) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/irc-server.c
+
+Connecting to IPv6 IRC server with IP address didn't work because the
+USER command didn't like the ':' characters in server address..
+
+------------------------------------------------------------------------
+r522 | cras | 2000-07-23 13:43:42 +0000 (Sun, 23 Jul 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/dcc/dcc-chat.c
+   M /irssi/trunk/src/irc/dcc/dcc.c
+   M /irssi/trunk/src/irc/dcc/dcc.h
+
+Use net-sendbuffer with DCC chat.
+
+------------------------------------------------------------------------
+r521 | cras | 2000-07-23 13:41:34 +0000 (Sun, 23 Jul 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/net-sendbuffer.c
+   M /irssi/trunk/src/core/net-sendbuffer.h
+
+net_sendbuffer_send(): use const void *data instead of void *data
+
+------------------------------------------------------------------------
+r520 | cras | 2000-07-23 13:34:39 +0000 (Sun, 23 Jul 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/net-sendbuffer.c
+
+Added handle != -1 check to net_sendbuffer_create()
+
+------------------------------------------------------------------------
+r519 | cras | 2000-07-23 13:11:56 +0000 (Sun, 23 Jul 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/fe-netsplit.c
+
+Printing netsplit nicks printed one too less nicks (netsplit_max_nicks-1)
+
+------------------------------------------------------------------------
+r518 | cras | 2000-07-23 12:56:02 +0000 (Sun, 23 Jul 2000) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/fe-events.c
+
+Don't print nick changes and quit messages from same nick more than once
+in the same window (if you had joined multiple channels in same window).
+
+------------------------------------------------------------------------
+r517 | cras | 2000-07-23 12:47:14 +0000 (Sun, 23 Jul 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/commands.c
+
+Don't allow recursive aliases.
+
+------------------------------------------------------------------------
+r516 | cras | 2000-07-23 12:29:50 +0000 (Sun, 23 Jul 2000) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/core/settings.c
+
+/SET settings_autosave - If set ON, settings are automatically saved
+when quitting and once per hour.
+
+------------------------------------------------------------------------
+r515 | cras | 2000-07-23 11:55:16 +0000 (Sun, 23 Jul 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/notifylist/fe-notifylist.c
+   M /irssi/trunk/src/irc/notifylist/module.h
+   M /irssi/trunk/src/irc/notifylist/notify-whois.c
+   M /irssi/trunk/src/irc/notifylist/notifylist.c
+
+/NOTIFY -idle fixes.
+
+------------------------------------------------------------------------
+r514 | cras | 2000-07-23 11:54:54 +0000 (Sun, 23 Jul 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/misc.c
+
+is_numeric() returns now FALSE if it was given empty string.
+
+------------------------------------------------------------------------
+r513 | cras | 2000-07-23 01:39:08 +0000 (Sun, 23 Jul 2000) | 4 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/fe-common-irc.c
+   M /irssi/trunk/src/fe-common/irc/fe-events.c
+   M /irssi/trunk/src/fe-common/irc/fe-irc-commands.c
+
+SET print_active_channel - if you have multiple channels in same window,
+should we always print the channel for each message (<nick:#channel>) or
+only when the channel isn't active.
+
+------------------------------------------------------------------------
+r512 | cras | 2000-07-23 00:38:46 +0000 (Sun, 23 Jul 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/keyboard.c
+
+Listing keys with /BIND key now checks the keys case-insensitively.
+
+------------------------------------------------------------------------
+r511 | cras | 2000-07-23 00:29:31 +0000 (Sun, 23 Jul 2000) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/gui-entry.c
+   M /irssi/trunk/src/fe-text/gui-entry.h
+   M /irssi/trunk/src/fe-text/gui-readline.c
+
+Changed the names of /BIND commands to be epic-compatible. Also added
+several new commands.
+
+------------------------------------------------------------------------
+r510 | cras | 2000-07-22 22:05:29 +0000 (Sat, 22 Jul 2000) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/core/commands.c
+   M /irssi/trunk/src/core/settings.c
+   M /irssi/trunk/src/core/settings.h
+   M /irssi/trunk/src/fe-common/core/fe-settings.c
+   M /irssi/trunk/src/fe-common/core/module-formats.c
+   M /irssi/trunk/src/fe-common/core/module-formats.h
+
+Moved /SAVE and /RELOAD to fe-common. Print "config saved" and
+"config reloaded" messages.
+
+------------------------------------------------------------------------
+r509 | cras | 2000-07-22 22:03:37 +0000 (Sat, 22 Jul 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/keyboard.c
+
+Ignore case when checking key names.
+
+------------------------------------------------------------------------
+r508 | cras | 2000-07-22 19:14:57 +0000 (Sat, 22 Jul 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/special-vars.c
+
+uname() return value checking fixes.
+
+------------------------------------------------------------------------
+r507 | cras | 2000-07-22 19:03:39 +0000 (Sat, 22 Jul 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/fe-common-irc.c
+
+another ircnet == NULL fix
+
+------------------------------------------------------------------------
+r506 | cras | 2000-07-22 19:02:39 +0000 (Sat, 22 Jul 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/fe-common-irc.c
+
+Don't crash at startup if IRC network wasn't specified for some server.
+
+------------------------------------------------------------------------
+r505 | cras | 2000-07-22 17:07:27 +0000 (Sat, 22 Jul 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/window-commands.c
+
+Implemented /WINDOW LAST for changing to last current window.
+
+------------------------------------------------------------------------
+r504 | cras | 2000-07-22 16:59:36 +0000 (Sat, 22 Jul 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-core-commands.c
+
+/HELP wasn't working.
+
+------------------------------------------------------------------------
+r503 | cras | 2000-07-22 16:02:50 +0000 (Sat, 22 Jul 2000) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-log.c
+
+Autologging: if we're already logging the item somewhere else, make sure
+that log file is open.
+
+------------------------------------------------------------------------
+r502 | cras | 2000-07-21 23:46:24 +0000 (Fri, 21 Jul 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/keyboard.c
+
+/RELOAD still didn't work right.
+
+------------------------------------------------------------------------
+r501 | cras | 2000-07-21 22:55:20 +0000 (Fri, 21 Jul 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/log.c
+
+Don't save autologs.
+
+------------------------------------------------------------------------
+r500 | cras | 2000-07-21 18:53:04 +0000 (Fri, 21 Jul 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/module-formats.c
+   M /irssi/trunk/src/fe-common/core/module-formats.h
+   M /irssi/trunk/src/fe-common/core/themes.c
+
+You can now change the texts /FORMAT prints itself.
+
+------------------------------------------------------------------------
+r499 | cras | 2000-07-21 18:46:05 +0000 (Fri, 21 Jul 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/irc-completion.c
+
+/SET completion_disable_auto -> completion_auto
+
+------------------------------------------------------------------------
+r498 | cras | 2000-07-21 16:25:45 +0000 (Fri, 21 Jul 2000) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/perl/irssi-perl.c
+
+Set perl destruct level to 1 when destroying the perl interpreter with
+/perlflush. This should close all the open files etc.
+
+------------------------------------------------------------------------
+r497 | cras | 2000-07-20 23:10:35 +0000 (Thu, 20 Jul 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/fe-events-numeric.c
+
+WHOIS bugfix: Don't display the signon time if it isn't known..
+
+------------------------------------------------------------------------
+r496 | cras | 2000-07-20 21:13:41 +0000 (Thu, 20 Jul 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/docs/formats.txt
+
+Added information about mirc colors by fuchs.
+
+------------------------------------------------------------------------
+r495 | cras | 2000-07-20 12:35:54 +0000 (Thu, 20 Jul 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/channels.c
+
+The channel key given in /JOIN should override the one given in setup.
+
+------------------------------------------------------------------------
+r494 | cras | 2000-07-19 21:47:22 +0000 (Wed, 19 Jul 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/hilight-text.c
+
+Removed notices from default highlight level
+
+------------------------------------------------------------------------
+r493 | cras | 2000-07-19 20:36:53 +0000 (Wed, 19 Jul 2000) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/perl/xs/module.h
+
+Irssi::is_channel() didn't work because irc.h wasn't included and
+ischannel() macro wasn't expanded..
+
+------------------------------------------------------------------------
+r492 | cras | 2000-07-19 12:19:44 +0000 (Wed, 19 Jul 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/notifylist/fe-notifylist.c
+
+"/notify -list " (happened easily when using tab completion) didn't work
+
+------------------------------------------------------------------------
+r491 | cras | 2000-07-18 23:42:51 +0000 (Tue, 18 Jul 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/curses.m4
+
+bugfix
+
+------------------------------------------------------------------------
+r490 | cras | 2000-07-18 23:35:04 +0000 (Tue, 18 Jul 2000) | 4 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/fe-events-numeric.c
+   M /irssi/trunk/src/fe-common/irc/module-formats.c
+
+When using status window and query windows, /whois to some queried nick
+displyed all replies in query window except idle line in status window.
+Also added "x days" to idle line.
+
+------------------------------------------------------------------------
+r489 | cras | 2000-07-18 23:34:45 +0000 (Tue, 18 Jul 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/notifylist/fe-notifylist.c
+
+/NOTIFY -list displays now "-idle" before the actual idle time..
+
+------------------------------------------------------------------------
+r488 | cras | 2000-07-18 23:13:32 +0000 (Tue, 18 Jul 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/irc-completion.c
+
+Tab-msgcompletion didn't work right after you had used /msg -ircnet nick
+
+------------------------------------------------------------------------
+r487 | cras | 2000-07-18 22:54:05 +0000 (Tue, 18 Jul 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/gui-textwidget.c
+
+/LASTLOG ignored LINE_CMD_COLOR0 commands.
+
+------------------------------------------------------------------------
+r486 | cras | 2000-07-17 11:23:04 +0000 (Mon, 17 Jul 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/irc-completion.c
+
+Autocompletion is disabled by default
+
+------------------------------------------------------------------------
+r485 | cras | 2000-07-17 01:47:51 +0000 (Mon, 17 Jul 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/file2header.sh
+
+use const char *
+
+------------------------------------------------------------------------
+r484 | cras | 2000-07-16 23:49:30 +0000 (Sun, 16 Jul 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/window-items.c
+
+reuse_unused_windows is always ON when autoclose_windows is OFF.
+
+------------------------------------------------------------------------
+r483 | cras | 2000-07-16 20:59:55 +0000 (Sun, 16 Jul 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/configure.in
+
+bugfix
+
+------------------------------------------------------------------------
+r482 | cras | 2000-07-16 20:38:09 +0000 (Sun, 16 Jul 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/server.c
+
+typofix
+
+------------------------------------------------------------------------
+r481 | cras | 2000-07-16 20:34:49 +0000 (Sun, 16 Jul 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/configure.in
+
+Removed silc from chat modules - it shouldn't be there yet :)
+
+------------------------------------------------------------------------
+r480 | cras | 2000-07-16 20:18:05 +0000 (Sun, 16 Jul 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/common.h
+   M /irssi/trunk/src/core/Makefile.am
+   M /irssi/trunk/src/core/args.c
+   M /irssi/trunk/src/core/commands.c
+   M /irssi/trunk/src/core/commands.h
+   M /irssi/trunk/src/core/levels.c
+   M /irssi/trunk/src/core/levels.h
+   M /irssi/trunk/src/core/line-split.c
+   M /irssi/trunk/src/core/log.c
+   M /irssi/trunk/src/core/misc.c
+   M /irssi/trunk/src/core/misc.h
+   M /irssi/trunk/src/core/modules.c
+   M /irssi/trunk/src/core/net-disconnect.c
+   M /irssi/trunk/src/core/net-nonblock.c
+   M /irssi/trunk/src/core/network.c
+   M /irssi/trunk/src/core/pidwait.c
+   M /irssi/trunk/src/core/rawlog.c
+   M /irssi/trunk/src/core/server-redirect.c
+   M /irssi/trunk/src/core/server.c
+   M /irssi/trunk/src/core/server.h
+   M /irssi/trunk/src/core/settings.c
+   M /irssi/trunk/src/core/signals.c
+   M /irssi/trunk/src/core/special-vars.c
+   M /irssi/trunk/src/irc/core/irc-commands.c
+
+Cleaned up code.
+
+------------------------------------------------------------------------
+r479 | cras | 2000-07-16 20:17:09 +0000 (Sun, 16 Jul 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/irc-server.h
+
+Was left out from the sendbuffer commit..
+
+------------------------------------------------------------------------
+r478 | cras | 2000-07-16 19:00:41 +0000 (Sun, 16 Jul 2000) | 4 lines
+Changed paths:
+   M /irssi/trunk/src/core/core.c
+   A /irssi/trunk/src/core/net-sendbuffer.c
+   A /irssi/trunk/src/core/net-sendbuffer.h
+   M /irssi/trunk/src/core/server.c
+   M /irssi/trunk/src/irc/core/irc-server.c
+   M /irssi/trunk/src/irc/core/irc.c
+   M /irssi/trunk/src/irc/dcc/dcc-chat.c
+   M /irssi/trunk/src/irc/dcc/dcc-files.c
+
+Implemented network transmit buffer. If all data couldn't be sent
+immediately, it's sent after a small timeout. This cleans up some code
+with IRC command sending.
+
+------------------------------------------------------------------------
+r477 | cras | 2000-07-16 17:58:27 +0000 (Sun, 16 Jul 2000) | 3 lines
+Changed paths:
+   M /irssi/trunk/autogen.sh
+
+colorless.theme generator didn't work always right - "$1%K-" -> "$1-",
+fixed it to output "${1}-" instead.
+
+------------------------------------------------------------------------
+r476 | cras | 2000-07-16 17:08:53 +0000 (Sun, 16 Jul 2000) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/gui-printtext.c
+   M /irssi/trunk/src/fe-text/gui-windows.c
+   M /irssi/trunk/src/fe-text/gui-windows.h
+
+Don't ever add \0\0 to text queue - this might break things. Use \0 +
+LINE_CMD_COLOR0 instead.
+
+------------------------------------------------------------------------
+r475 | cras | 2000-07-16 16:35:37 +0000 (Sun, 16 Jul 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/keyboard.c
+
+/RELOAD broke keyboard bindings
+
+------------------------------------------------------------------------
+r474 | cras | 2000-07-16 16:32:51 +0000 (Sun, 16 Jul 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/gui-readline.c
+
+Ctrl-L calls now irssi_redraw() instead of the curses' default..
+
+------------------------------------------------------------------------
+r473 | cras | 2000-07-16 16:21:13 +0000 (Sun, 16 Jul 2000) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/irssi.c
+
+When redrawing screen, refresh the screen after clear() so that curses
+won't try to "optimize" the refresh out.
+
+------------------------------------------------------------------------
+r472 | cras | 2000-07-16 15:55:36 +0000 (Sun, 16 Jul 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-common-core.c
+
+Use status window by default.
+
+------------------------------------------------------------------------
+r471 | cras | 2000-07-16 15:35:08 +0000 (Sun, 16 Jul 2000) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/gui-printtext.c
+
+Print the text with the "default" color (whatever is set with xterm -fg) -
+not the theme->default_color.
+
+------------------------------------------------------------------------
+r470 | cras | 2000-07-16 14:30:29 +0000 (Sun, 16 Jul 2000) | 3 lines
+Changed paths:
+   M /irssi/trunk/configure.in
+
+If --prefix is used, add the default perl library directory to same
+prefix.
+
+------------------------------------------------------------------------
+r469 | cras | 2000-07-15 20:04:44 +0000 (Sat, 15 Jul 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/printtext.c
+
+Don't print the -!- DCCMSGS level.
+
+------------------------------------------------------------------------
+r468 | cras | 2000-07-15 14:38:23 +0000 (Sat, 15 Jul 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/server-setup.c
+
+/SERVER <ircnet> used always port 6667 when connecting.
+
+------------------------------------------------------------------------
+r467 | cras | 2000-07-15 14:33:35 +0000 (Sat, 15 Jul 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/notifylist/fe-notifylist.c
+
+-list option to /NOTIFY wasn't specified in command options.
+
+------------------------------------------------------------------------
+r466 | cras | 2000-07-15 14:30:59 +0000 (Sat, 15 Jul 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/gui-windows.c
+
+Small bugfix with resizing window.
+
+------------------------------------------------------------------------
+r465 | cras | 2000-07-15 13:08:39 +0000 (Sat, 15 Jul 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/irc-completion.c
+   M /irssi/trunk/src/irc/core/irc-commands.c
+   M /irssi/trunk/src/irc/core/irc-server.c
+   M /irssi/trunk/src/irc/core/massjoin.c
+   M /irssi/trunk/src/irc/core/netsplit.c
+   M /irssi/trunk/src/irc/core/server-idle.c
+
+A few checks to check that we really are dealing with IRC servers.
+
+------------------------------------------------------------------------
+r464 | cras | 2000-07-15 13:07:16 +0000 (Sat, 15 Jul 2000) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/core/modules.c
+
+module_find_id() and module_find_id_str() didn't work right if the
+requested module didn't have the specified uniqid.
+
+------------------------------------------------------------------------
+r463 | cras | 2000-07-15 13:04:03 +0000 (Sat, 15 Jul 2000) | 8 lines
+Changed paths:
+   M /irssi/trunk/src/core/levels.c
+   M /irssi/trunk/src/core/levels.h
+   M /irssi/trunk/src/fe-common/core/hilight-text.c
+   M /irssi/trunk/src/fe-common/irc/dcc/fe-dcc.c
+   M /irssi/trunk/src/fe-common/irc/fe-events.c
+   M /irssi/trunk/src/fe-common/irc/fe-irc-commands.c
+   M /irssi/trunk/src/irc/dcc/dcc-chat.c
+   M /irssi/trunk/src/irc/dcc/dcc-files.c
+   M /irssi/trunk/src/irc/dcc/dcc.c
+   M /irssi/trunk/src/irc/dcc/dcc.h
+
+Fixed DCC stuff. Added DCCMSGS level for DCC chat messages.
+
+Actions match now either MSGS or PUBLIC level as well as the ACTIONS
+level always.
+
+Added DCCMSGS level to default highlight levels. Highlighting works
+with other than public messages now even if -nick option is used.
+
+------------------------------------------------------------------------
+r462 | cras | 2000-07-11 10:54:15 +0000 (Tue, 11 Jul 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/fe-ignore.c
+   M /irssi/trunk/src/fe-common/irc/module-formats.c
+
+/IGNORE didn't show if it had -replies flag
+
+------------------------------------------------------------------------
+r461 | cras | 2000-07-11 09:44:38 +0000 (Tue, 11 Jul 2000) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/gui-readline.c
+   M /irssi/trunk/src/fe-text/gui-readline.h
+   M /irssi/trunk/src/fe-text/gui-special-vars.c
+
+Ctrl-K also puts the deleted text to cutbuffer which can be recovered
+with Ctrl-Y. /eval $U prints the cutbuffer.
+
+------------------------------------------------------------------------
+r460 | cras | 2000-07-11 09:30:43 +0000 (Tue, 11 Jul 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/ignore.c
+
+Another /IGNORE -replies fix
+
+------------------------------------------------------------------------
+r459 | cras | 2000-07-11 09:25:09 +0000 (Tue, 11 Jul 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/gui-readline.c
+
+KEY_LL = end key
+
+------------------------------------------------------------------------
+r458 | cras | 2000-07-11 00:25:50 +0000 (Tue, 11 Jul 2000) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/gui-readline.c
+
+Ctrl-Y fixed when there was no text to undelete. Added CTRL() macro for
+defining control keys easier.
+
+------------------------------------------------------------------------
+r457 | cras | 2000-07-10 23:27:37 +0000 (Mon, 10 Jul 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/ignore.c
+
+/IGNORE -replies fixes
+
+------------------------------------------------------------------------
+r456 | cras | 2000-07-10 23:00:56 +0000 (Mon, 10 Jul 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/levels.c
+   M /irssi/trunk/src/core/misc.c
+   M /irssi/trunk/src/core/network.c
+   M /irssi/trunk/src/core/signals.c
+   M /irssi/trunk/src/fe-common/core/completion.c
+   M /irssi/trunk/src/fe-common/core/fe-settings.c
+   M /irssi/trunk/src/fe-common/core/themes.c
+   M /irssi/trunk/src/fe-common/irc/fe-ctcp.c
+   M /irssi/trunk/src/fe-common/irc/fe-events.c
+   M /irssi/trunk/src/fe-common/irc/fe-ignore.c
+   M /irssi/trunk/src/fe-common/irc/fe-irc-commands.c
+   M /irssi/trunk/src/fe-text/gui-printtext.c
+   M /irssi/trunk/src/fe-text/gui-readline.c
+   M /irssi/trunk/src/irc/bot/bot-users.c
+   M /irssi/trunk/src/irc/bot/botnet.c
+   M /irssi/trunk/src/irc/bot/botnet.h
+   M /irssi/trunk/src/irc/dcc/dcc-files.c
+   M /irssi/trunk/src/irc/dcc/dcc.c
+   M /irssi/trunk/src/lib-config/parse.c
+   M /irssi/trunk/src/lib-popt/Makefile.am
+   M /irssi/trunk/src/lib-popt/findme.c
+   M /irssi/trunk/src/lib-popt/popt.c
+   M /irssi/trunk/src/lib-popt/poptconfig.c
+   M /irssi/trunk/src/lib-popt/popthelp.c
+   M /irssi/trunk/src/lib-popt/poptint.h
+
+Enabled lots of GCC warnings, fixed those that were easy to fix.
+
+------------------------------------------------------------------------
+r455 | cras | 2000-07-09 15:54:35 +0000 (Sun, 09 Jul 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/configure.in
+
+intl libs weren't added to program's libraries.
+
+------------------------------------------------------------------------
+r454 | cras | 2000-07-09 15:47:42 +0000 (Sun, 09 Jul 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/TODO
+
+updated
+
+------------------------------------------------------------------------
+r453 | cras | 2000-07-09 15:45:55 +0000 (Sun, 09 Jul 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/curses.m4
+
+Check that -lncurses is actually found - if not, try -lcurses.
+
+------------------------------------------------------------------------
+r452 | cras | 2000-07-09 15:28:17 +0000 (Sun, 09 Jul 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/statusbar-items.c
+
+Removed a warning
+
+------------------------------------------------------------------------
+r451 | cras | 2000-07-09 15:28:05 +0000 (Sun, 09 Jul 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/fe-netjoin.c
+
+MODE checking didn't work right..
+
+------------------------------------------------------------------------
+r450 | cras | 2000-07-09 15:11:47 +0000 (Sun, 09 Jul 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/configure.in
+
+sys/types.h has to be included with sys/socket.h when checking socklen_t
+
+------------------------------------------------------------------------
+r449 | cras | 2000-07-09 14:50:49 +0000 (Sun, 09 Jul 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/NEWS
+   M /irssi/trunk/po/de.po
+   M /irssi/trunk/po/fi.po
+   M /irssi/trunk/po/fr.po
+   M /irssi/trunk/po/pl.po
+   M /irssi/trunk/po/pt_BR.po
+
+Released 0.7.93
+
+------------------------------------------------------------------------
+r448 | cras | 2000-07-09 14:27:59 +0000 (Sun, 09 Jul 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/TODO
+   M /irssi/trunk/configure.in
+
+Getting ready for 0.7.93..
+
+------------------------------------------------------------------------
+r447 | cras | 2000-07-09 14:25:03 +0000 (Sun, 09 Jul 2000) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/hilight-text.c
+
+Don't add the highlighted window to activity list if it's the current
+window..
+
+------------------------------------------------------------------------
+r446 | cras | 2000-07-09 14:23:56 +0000 (Sun, 09 Jul 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/dcc/fe-dcc.c
+
+Use MSGLEVEL_MSGS/CTCPS/ACTIONS | MSGSLVEL_DCC
+
+------------------------------------------------------------------------
+r445 | cras | 2000-07-09 14:22:12 +0000 (Sun, 09 Jul 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/module.h
+
+We're fe-text module, not gui-text
+
+------------------------------------------------------------------------
+r444 | cras | 2000-07-09 14:05:13 +0000 (Sun, 09 Jul 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk
+   M /irssi/trunk/.cvsignore
+   M /irssi/trunk/autogen.sh
+
+small fix.
+
+------------------------------------------------------------------------
+r443 | cras | 2000-07-09 14:02:56 +0000 (Sun, 09 Jul 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/autogen.sh
+   D /irssi/trunk/colorless.theme
+
+Create colorless.theme automatically with a perl script in autogen.sh
+
+------------------------------------------------------------------------
+r442 | cras | 2000-07-09 13:28:14 +0000 (Sun, 09 Jul 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/completion.c
+
+-option tab-completion didn't work.
+
+------------------------------------------------------------------------
+r441 | cras | 2000-07-09 13:03:40 +0000 (Sun, 09 Jul 2000) | 5 lines
+Changed paths:
+   M /irssi/trunk/src/irc/flood/autoignore.c
+   M /irssi/trunk/src/irc/flood/flood.c
+
+Don't check CTCP replies for autoignoring. /RELOAD printed some
+warnings to screen if you had ignored any channels. Nothing is
+autoignored anymore by default since there's been too many bugs with
+it, probably still is..
+
+------------------------------------------------------------------------
+r440 | cras | 2000-07-09 12:51:33 +0000 (Sun, 09 Jul 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/statusbar-items.c
+   M /irssi/trunk/src/fe-text/statusbar.c
+
+You can change statusbar colors with /SET statusbar_xxx.
+
+------------------------------------------------------------------------
+r439 | cras | 2000-07-09 12:33:33 +0000 (Sun, 09 Jul 2000) | 3 lines
+Changed paths:
+   M /irssi/trunk/configure.in
+   M /irssi/trunk/src/perl/Makefile.am
+
+--enable-perl[=libdir] to configure - you can specify what directory to
+install the perl libraries.
+
+------------------------------------------------------------------------
+r438 | cras | 2000-07-09 11:39:21 +0000 (Sun, 09 Jul 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/gui-readline.c
+
+Ctrl-Y undeletes the last ^U'd line.
+
+------------------------------------------------------------------------
+r437 | cras | 2000-07-09 00:03:46 +0000 (Sun, 09 Jul 2000) | 5 lines
+Changed paths:
+   M /irssi/trunk/src/core/commands.c
+   M /irssi/trunk/src/core/commands.h
+   M /irssi/trunk/src/fe-common/core/completion.c
+   M /irssi/trunk/src/fe-common/core/fe-core-commands.c
+
+Moved is_base_command() from command completion to command_have_sub()
+in core/commands.
+
+/HELP <command with subcommands> works now right.
+
+------------------------------------------------------------------------
+r436 | cras | 2000-07-08 23:28:31 +0000 (Sat, 08 Jul 2000) | 5 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/fe-events.c
+   M /irssi/trunk/src/fe-common/irc/fe-netjoin.c
+   D /irssi/trunk/src/fe-common/irc/fe-netjoin.h
+
+Netsplit changes - all netsplit handling is now in netsplit/netjoin
+files and fe-events.c doesn't know anything about it. Hides server +o
+mode change messages - it's displayed as '@' char before the nick in
+netjoin message.
+
+------------------------------------------------------------------------
+r435 | cras | 2000-07-08 22:31:11 +0000 (Sat, 08 Jul 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/keyboard.c
+   M /irssi/trunk/src/fe-common/core/keyboard.h
+   M /irssi/trunk/src/fe-common/core/module-formats.c
+   M /irssi/trunk/src/fe-common/core/module-formats.h
+   M /irssi/trunk/src/fe-text/gui-readline.c
+
+Implemented /BIND [<key> [<action> [<data>]]] command.
+
+------------------------------------------------------------------------
+r434 | cras | 2000-07-08 21:47:05 +0000 (Sat, 08 Jul 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/keyboard.c
+   M /irssi/trunk/src/fe-common/core/keyboard.h
+   M /irssi/trunk/src/fe-text/gui-readline.c
+
+Reading and saving keyboard configuration actually works now.
+
+------------------------------------------------------------------------
+r433 | cras | 2000-07-07 20:49:23 +0000 (Fri, 07 Jul 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/themes.c
+
+Tab-completion for /FORMAT.
+
+------------------------------------------------------------------------
+r432 | cras | 2000-07-04 21:47:40 +0000 (Tue, 04 Jul 2000) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/fe-events.c
+
+If message was for you (your nick at start of line), print it with
+MSGLEVEL_HILIGHT, instead of the previous _NOHILIGHT..
+
+------------------------------------------------------------------------
+r431 | cras | 2000-07-04 21:45:54 +0000 (Tue, 04 Jul 2000) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/autorun.c
+   M /irssi/trunk/src/fe-common/core/fe-core-commands.c
+
+/CAT, /HELP xx and reading autorun commands stuck irssi to infinite
+loop.
+
+------------------------------------------------------------------------
+r430 | cras | 2000-07-04 19:36:36 +0000 (Tue, 04 Jul 2000) | 5 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-settings.c
+   M /irssi/trunk/src/irc/core/irc-commands.c
+
+Changed /TOPIC -d to be /TOPIC -delete instead, the automatic option
+completion will take care of it.
+
+Added -clear option to /SET.
+
+------------------------------------------------------------------------
+r429 | cras | 2000-07-04 19:23:01 +0000 (Tue, 04 Jul 2000) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/server-reconnect.c
+
+User mode wasn't set right after server reconnection if server didn't
+set any user mode for you automatically.
+
+------------------------------------------------------------------------
+r428 | cras | 2000-07-04 19:07:45 +0000 (Tue, 04 Jul 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/statusbar-items.c
+
+Ahem. still broken ;)
+
+------------------------------------------------------------------------
+r427 | cras | 2000-07-04 19:06:26 +0000 (Tue, 04 Jul 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/statusbar-items.c
+
+whops. broke it accidentally.
+
+------------------------------------------------------------------------
+r426 | cras | 2000-07-04 19:03:57 +0000 (Tue, 04 Jul 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/statusbar-items.c
+
+(zZzZ) wasn't displayed in statusbar if you didn't have any user mode set.
+
+------------------------------------------------------------------------
+r425 | cras | 2000-07-04 18:56:39 +0000 (Tue, 04 Jul 2000) | 4 lines
+Changed paths:
+   M /irssi/trunk/src/irc/dcc/dcc-chat.c
+
+If there was any spaces after /DCC CHAT nick (like after used nick
+completion), Irssi used the spaces as part of the nick. /MSG =nick
+would also fail because of it.
+
+------------------------------------------------------------------------
+r424 | cras | 2000-07-04 00:44:45 +0000 (Tue, 04 Jul 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/screen.c
+
+Don't redraw screen after EVERY /SET, just when /SET colors has changed.
+
+------------------------------------------------------------------------
+r423 | cras | 2000-07-04 00:20:20 +0000 (Tue, 04 Jul 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/ctcp.c
+
+Removed system version from default CTCP reply.
+
+------------------------------------------------------------------------
+r422 | cras | 2000-07-02 22:22:55 +0000 (Sun, 02 Jul 2000) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/server-setup.c
+
+Server reconnection was a bit buggy - it didn't have to wait for the 5
+minutes if it connected to some other server in same ircnet..
+
+------------------------------------------------------------------------
+r421 | cras | 2000-07-02 22:11:56 +0000 (Sun, 02 Jul 2000) | 2 lines
+Changed paths:
+   A /irssi/trunk/src/fe-common/core/fe-modules.c
+
+forgot to add this
+
+------------------------------------------------------------------------
+r420 | cras | 2000-07-02 22:04:00 +0000 (Sun, 02 Jul 2000) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/core/modules.c
+   M /irssi/trunk/src/core/modules.h
+   M /irssi/trunk/src/fe-common/core/Makefile.am
+   M /irssi/trunk/src/fe-common/core/fe-common-core.c
+   M /irssi/trunk/src/fe-common/core/module-formats.c
+   M /irssi/trunk/src/fe-common/core/module-formats.h
+
+Implemented runtime loadable modules. /LOAD loads a module, /UNLOAD
+unloads it.
+
+------------------------------------------------------------------------
+r419 | cras | 2000-07-02 19:22:30 +0000 (Sun, 02 Jul 2000) | 4 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-core-commands.c
+   M /irssi/trunk/src/irc/core/irc-commands.c
+
+If you're pasting text to channel and some of it starts with /, Irssi
+will send the "/command" to channel if it doesn't exist (instead of
+just printing "unknown command").
+
+------------------------------------------------------------------------
+r418 | cras | 2000-07-02 18:52:15 +0000 (Sun, 02 Jul 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/log.c
+
+Logs were closed and entirely removed after doing /RELOAD.
+
+------------------------------------------------------------------------
+r417 | cras | 2000-07-02 18:23:31 +0000 (Sun, 02 Jul 2000) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/autorun.c
+   M /irssi/trunk/src/fe-common/core/fe-core-commands.c
+
+Fixed a couple of potential problems if there was longer lines than 64k
+in help files, autorun file or /catted file.
+
+------------------------------------------------------------------------
+r416 | cras | 2000-07-02 17:57:10 +0000 (Sun, 02 Jul 2000) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/core/commands.c
+   M /irssi/trunk/src/fe-common/core/fe-core-commands.c
+
+/^command hides the output of the command, it's not written to log
+either. Good for sending passwords for example.
+
+------------------------------------------------------------------------
+r415 | cras | 2000-07-02 16:24:28 +0000 (Sun, 02 Jul 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/massjoin.c
+
+Minor memleak fixed.
+
+------------------------------------------------------------------------
+r414 | cras | 2000-07-02 16:19:26 +0000 (Sun, 02 Jul 2000) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/Makefile.am
+   M /irssi/trunk/src/fe-common/irc/fe-common-irc.c
+   M /irssi/trunk/src/fe-common/irc/fe-events.c
+   A /irssi/trunk/src/fe-common/irc/fe-netjoin.c
+   A /irssi/trunk/src/fe-common/irc/fe-netjoin.h
+   M /irssi/trunk/src/fe-common/irc/fe-netsplit.c
+   M /irssi/trunk/src/fe-common/irc/module-formats.c
+   M /irssi/trunk/src/fe-common/irc/module-formats.h
+   M /irssi/trunk/src/irc/core/netsplit.c
+   M /irssi/trunk/src/irc/core/netsplit.h
+
+When netsplit is over, irssi prints "Netsplit over, joins: (nicks)" and
+hides all the real JOIN messages. Fixed also some netsplit bugs.
+
+------------------------------------------------------------------------
+r413 | cras | 2000-07-02 12:07:49 +0000 (Sun, 02 Jul 2000) | 4 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/window-activity.c
+   M /irssi/trunk/src/fe-common/irc/fe-events.c
+
+Don't check highlighting if the message was meant for you (your nick at
+the start of the line). Also, highlighted texts didn't really set the
+window's color right in activity list..
+
+------------------------------------------------------------------------
+r412 | cras | 2000-07-02 11:56:38 +0000 (Sun, 02 Jul 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/network.c
+   M /irssi/trunk/src/core/network.h
+   M /irssi/trunk/src/core/server.c
+
+"Temporary error in nameserver" shouldn't remove server reconnections.
+
+------------------------------------------------------------------------
+r411 | cras | 2000-07-02 11:30:19 +0000 (Sun, 02 Jul 2000) | 4 lines
+Changed paths:
+   M /irssi/trunk/src/core/commands.c
+
+Automatic command and option completion didn't check ambiguous commands
+right. For example /VER didn't work because there was /VERSION command
+too..
+
+------------------------------------------------------------------------
+r410 | cras | 2000-07-01 23:59:47 +0000 (Sat, 01 Jul 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/docs/Makefile.am
+
+Install docs into $prefix/doc/irssi directory with make install.
+
+------------------------------------------------------------------------
+r409 | cras | 2000-07-01 23:52:54 +0000 (Sat, 01 Jul 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/config
+
+Added SV and GOTO aliases
+
+------------------------------------------------------------------------
+r408 | cras | 2000-07-01 21:15:53 +0000 (Sat, 01 Jul 2000) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/printtext.c
+   M /irssi/trunk/src/fe-common/core/windows.c
+
+The month name parameter was supposed to go to daychange format, not to
+timestamp.
+
+------------------------------------------------------------------------
+r407 | cras | 2000-07-01 12:33:53 +0000 (Sat, 01 Jul 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/Makefile.am
+   D /irssi/trunk/README-HEBREW
+
+GTK version specific, removed.
+
+------------------------------------------------------------------------
+r406 | cras | 2000-07-01 12:26:52 +0000 (Sat, 01 Jul 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/docs/Makefile.am
+   D /irssi/trunk/docs/commands.txt
+
+Out of date - manual.txt replaces this.
+
+------------------------------------------------------------------------
+r404 | cras | 2000-07-01 00:34:14 +0000 (Sat, 01 Jul 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/irc-window-activity.c
+
+Fixed crash.
+
+------------------------------------------------------------------------
+r403 | cras | 2000-06-30 22:01:36 +0000 (Fri, 30 Jun 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/network.c
+   M /irssi/trunk/src/fe-common/core/completion.c
+   M /irssi/trunk/src/fe-common/irc/fe-events-numeric.c
+   M /irssi/trunk/src/fe-text/gui-windows.c
+   M /irssi/trunk/src/irc/flood/flood.c
+
+Removed some warning messages.
+
+------------------------------------------------------------------------
+r402 | cras | 2000-06-30 21:33:57 +0000 (Fri, 30 Jun 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/windows.h
+   M /irssi/trunk/src/irc/core/channels.h
+   M /irssi/trunk/src/irc/core/irc.h
+   M /irssi/trunk/src/irc/core/query.h
+
+WI_ITEM_REC was modified, but CHANNEL_REC, etc. wasn't. BIG mistake.
+
+------------------------------------------------------------------------
+r401 | cras | 2000-06-30 21:00:00 +0000 (Fri, 30 Jun 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/NEWS
+   M /irssi/trunk/TODO
+   M /irssi/trunk/config
+   M /irssi/trunk/configure.in
+
+Released Irssi 0.7.92
+
+------------------------------------------------------------------------
+r400 | cras | 2000-06-30 19:54:34 +0000 (Fri, 30 Jun 2000) | 4 lines
+Changed paths:
+   M /irssi/trunk/src/core/misc.c
+   M /irssi/trunk/src/core/misc.h
+   M /irssi/trunk/src/fe-common/irc/fe-events-numeric.c
+   M /irssi/trunk/src/fe-common/irc/fe-events.c
+   M /irssi/trunk/src/fe-text/gui-windows.c
+   M /irssi/trunk/src/fe-text/statusbar-items.c
+
+If joined channel had some low-ascii (color codes), they were displayed
+wrong in statusbar and prompt. Also, if you're invited to some channel,
+print the lowascii so that you can see them (^B, etc.)
+
+------------------------------------------------------------------------
+r399 | cras | 2000-06-30 19:51:53 +0000 (Fri, 30 Jun 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/completion.c
+   M /irssi/trunk/src/fe-common/irc/irc-completion.c
+
+/MSG completion fixes. /HELP command completion works. Some other fixes.
+
+------------------------------------------------------------------------
+r398 | cras | 2000-06-30 19:50:56 +0000 (Fri, 30 Jun 2000) | 4 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/hilight-text.c
+   M /irssi/trunk/src/fe-common/core/window-activity.c
+   M /irssi/trunk/src/fe-common/core/windows.h
+   M /irssi/trunk/src/fe-common/irc/fe-common-irc.c
+   M /irssi/trunk/src/fe-common/irc/irc-hilight-text.c
+   M /irssi/trunk/src/fe-common/irc/irc-hilight-text.h
+   M /irssi/trunk/src/fe-common/irc/irc-window-activity.c
+   M /irssi/trunk/src/fe-text/gui-printtext.c
+   M /irssi/trunk/src/fe-text/gui-printtext.h
+   M /irssi/trunk/src/fe-text/statusbar-items.c
+
+Lots of /HILIGHT changes. You can use color names with -color. Window
+numbers are colored with the highlight color in activity statusbar
+item.
+
+------------------------------------------------------------------------
+r397 | cras | 2000-06-30 19:49:12 +0000 (Fri, 30 Jun 2000) | 7 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/module-formats.c
+   M /irssi/trunk/src/fe-common/core/module-formats.h
+   M /irssi/trunk/src/fe-common/core/printtext.c
+
+Added "servertag" format - it's displayed before the message if it
+comes from a server different than the one active in window, or in all
+empty windows if you're connected to multiple servers.
+
+In "daychange" format you can use $3 to print the current month name.
+Changed the default to "dd mon yyyy" style.
+
+------------------------------------------------------------------------
+r396 | cras | 2000-06-30 19:45:28 +0000 (Fri, 30 Jun 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/gui-textwidget.c
+   M /irssi/trunk/src/fe-text/gui-windows.c
+   M /irssi/trunk/src/fe-text/gui-windows.h
+
+/SCROLLBACK HOME/END/GOTO commands weren't working right.
+
+------------------------------------------------------------------------
+r395 | cras | 2000-06-30 19:44:50 +0000 (Fri, 30 Jun 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/modes.c
+
+When doing "/OP nick1  nick2" (two spaces), irssi tried to op "" nick too.
+
+------------------------------------------------------------------------
+r394 | cras | 2000-06-28 22:58:54 +0000 (Wed, 28 Jun 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/window-items.c
+   M /irssi/trunk/src/fe-common/irc/fe-channels.c
+   M /irssi/trunk/src/fe-common/irc/fe-query.c
+
+/SET window_close_on_part -> /SET autoclose_windows
+
+------------------------------------------------------------------------
+r393 | cras | 2000-06-28 22:29:06 +0000 (Wed, 28 Jun 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/docs/manual.txt
+   M /irssi/trunk/src/core/commands.c
+   M /irssi/trunk/src/fe-common/core/completion.c
+
+/REHASH -> /RELOAD so it won't collide with the server's rehash command.
+
+------------------------------------------------------------------------
+r392 | cras | 2000-06-28 22:25:07 +0000 (Wed, 28 Jun 2000) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/themes.c
+
+Added options -delete and -reset for /FORMAT. -delete sets the string
+empty, and -reset sets it to the original format.
+
+------------------------------------------------------------------------
+r391 | cras | 2000-06-28 21:47:13 +0000 (Wed, 28 Jun 2000) | 4 lines
+Changed paths:
+   M /irssi/trunk/docs/manual.txt
+   M /irssi/trunk/src/fe-common/core/hilight-text.c
+   M /irssi/trunk/src/fe-common/core/hilight-text.h
+   M /irssi/trunk/src/fe-common/irc/fe-events.c
+   M /irssi/trunk/src/fe-common/irc/irc-hilight-text.c
+   M /irssi/trunk/src/fe-common/irc/irc-hilight-text.h
+
+/HILIGHT changed. -nick option now tells to hilight only the nick, not
+the whole line. -mask option matches the text for nick mask (it didn't
+even work before).
+
+------------------------------------------------------------------------
+r390 | cras | 2000-06-28 21:06:17 +0000 (Wed, 28 Jun 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/statusbar-items.c
+
+Setting lag_min_show to -1 disables displaying lag entirely.
+
+------------------------------------------------------------------------
+r389 | cras | 2000-06-28 20:46:46 +0000 (Wed, 28 Jun 2000) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/statusbar-items.c
+
+Don't count messages that have "FOLDER INTERNAL DATA" text in their
+subject.
+
+------------------------------------------------------------------------
+r388 | cras | 2000-06-28 20:00:39 +0000 (Wed, 28 Jun 2000) | 11 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/completion.c
+   M /irssi/trunk/src/fe-common/irc/fe-irc-commands.c
+   M /irssi/trunk/src/fe-common/irc/irc-completion.c
+   M /irssi/trunk/src/irc/core/Makefile.am
+   M /irssi/trunk/src/irc/core/irc-commands.c
+   A /irssi/trunk/src/irc/core/irc-commands.h
+   M /irssi/trunk/src/irc/core/irc.c
+   M /irssi/trunk/src/irc/core/irc.h
+
+You can send message to different server with /MSG -<server tag> nick...
+
+Tab-completion changes:
+ - in empty line, it completed /MSG nick1 fine, but another tab press
+   didn't give the next nick.
+ - "/command <tab>" doesn't try to complete /command, but instead it tries
+   to complete it's subcommand or first parameter.
+ - /MSG completion now goes through nicks in ALL servers prefixing the nick
+   with -<server tag> if needed.
+ - /MSG -tag <tab> completes only nicks in "tag" server.
+
+------------------------------------------------------------------------
+r387 | cras | 2000-06-28 17:15:37 +0000 (Wed, 28 Jun 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/commands.c
+   M /irssi/trunk/src/core/commands.h
+   M /irssi/trunk/src/fe-common/core/fe-core-commands.c
+   M /irssi/trunk/src/fe-common/core/fe-log.c
+   M /irssi/trunk/src/fe-common/core/module-formats.c
+   M /irssi/trunk/src/fe-common/core/module-formats.h
+   M /irssi/trunk/src/fe-common/irc/dcc/fe-dcc.c
+   M /irssi/trunk/src/fe-common/irc/fe-channels.c
+   M /irssi/trunk/src/fe-common/irc/fe-ircnet.c
+   M /irssi/trunk/src/irc/core/irc-commands.c
+   M /irssi/trunk/src/perl/xs/Irssi-core.xs
+
+Automatic command completion and a few other fixes.
+
+------------------------------------------------------------------------
+r386 | cras | 2000-06-28 15:44:43 +0000 (Wed, 28 Jun 2000) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/irc-completion.c
+
+You can complete #channels, Irssi uses only the joined channels and
+channels in setup.
+
+------------------------------------------------------------------------
+r385 | cras | 2000-06-28 15:36:57 +0000 (Wed, 28 Jun 2000) | 4 lines
+Changed paths:
+   M /irssi/trunk/src/core/commands.c
+   M /irssi/trunk/src/core/commands.h
+   M /irssi/trunk/src/fe-common/core/completion.c
+   M /irssi/trunk/src/fe-common/core/fe-core-commands.c
+   M /irssi/trunk/src/fe-common/core/module-formats.c
+   M /irssi/trunk/src/fe-common/core/module-formats.h
+
+-options can now be completed with tabulator. There's also automatic
+completion for them, like instead of /join -invite you can use just
+/join -i.
+
+------------------------------------------------------------------------
+r384 | cras | 2000-06-27 19:20:23 +0000 (Tue, 27 Jun 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/gui-textwidget.c
+
+The "max. count" parameter in /LAST didn't work right.
+
+------------------------------------------------------------------------
+r383 | cras | 2000-06-27 19:11:25 +0000 (Tue, 27 Jun 2000) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/hilight-text.c
+
+"print text stripped" signal wasn't resent with MSGLEVEL_HILIGHT level.
+This broke at least logging hilighted messages.
+
+------------------------------------------------------------------------
+r382 | cras | 2000-06-27 18:26:22 +0000 (Tue, 27 Jun 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/windows.c
+
+Closing active window that had window items could crash.
+
+------------------------------------------------------------------------
+r381 | cras | 2000-06-25 23:39:23 +0000 (Sun, 25 Jun 2000) | 3 lines
+Changed paths:
+   M /irssi/trunk/docs/design.txt
+   M /irssi/trunk/docs/signals.txt
+   M /irssi/trunk/src/core/commands.c
+   M /irssi/trunk/src/core/pidwait.c
+   M /irssi/trunk/src/core/rawlog.c
+   M /irssi/trunk/src/core/signals.c
+   M /irssi/trunk/src/core/signals.h
+   M /irssi/trunk/src/fe-common/core/printtext.c
+   M /irssi/trunk/src/irc/core/irc.c
+   M /irssi/trunk/src/perl/irssi-perl.c
+
+Created signal_get_uniq_id() macro. Added some documentation about
+signals to design.txt.
+
+------------------------------------------------------------------------
+r380 | cras | 2000-06-25 22:59:49 +0000 (Sun, 25 Jun 2000) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/core/commands.c
+   M /irssi/trunk/src/core/commands.h
+   M /irssi/trunk/src/fe-common/core/completion.c
+
+Subcommand and command parameter completion works now also if you use
+alias as the base command.
+
+------------------------------------------------------------------------
+r379 | cras | 2000-06-25 22:40:25 +0000 (Sun, 25 Jun 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/irc-completion.c
+
+Using \n with /SET expand_escapes ON didn't work right.
+
+------------------------------------------------------------------------
+r378 | cras | 2000-06-25 22:25:24 +0000 (Sun, 25 Jun 2000) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/fe-events-numeric.c
+
+WHOIS and "no such nick" messages are displayed in nick's query window
+if it exists + other cleanups and minor changes.
+
+------------------------------------------------------------------------
+r377 | cras | 2000-06-25 22:14:09 +0000 (Sun, 25 Jun 2000) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/completion.c
+
+Settings completion works with /TOGGLE also, it completes only boolean
+settings. /SET completion works now even if '/' isn't in command chars.
+
+------------------------------------------------------------------------
+r376 | cras | 2000-06-25 22:05:44 +0000 (Sun, 25 Jun 2000) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/completion.c
+
+completing files in root directory put extra / character at the start
+of the line
+
+------------------------------------------------------------------------
+r375 | cras | 2000-06-25 21:59:30 +0000 (Sun, 25 Jun 2000) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/completion.c
+
+File name completion crashed if you tried to complete file in directory
+that didn't exist or you didn't have read permission.
+
+------------------------------------------------------------------------
+r374 | cras | 2000-06-20 19:28:19 +0000 (Tue, 20 Jun 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/irc-commands.c
+
+/command -option fixes
+
+------------------------------------------------------------------------
+r373 | wiget | 2000-06-20 10:47:57 +0000 (Tue, 20 Jun 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/po/pl.po
+
+1 message transalted, some fuzzy fixed
+
+------------------------------------------------------------------------
+r372 | cras | 2000-06-20 10:14:15 +0000 (Tue, 20 Jun 2000) | 4 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/irc-commands.c
+   M /irssi/trunk/src/irc/core/netsplit.c
+
+/topic's cmd_get_params() had wrong parameter count..
+
+removed unused variable from netsplit.c
+
+------------------------------------------------------------------------
+r371 | cras | 2000-06-20 09:21:54 +0000 (Tue, 20 Jun 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/dcc/fe-dcc.c
+   M /irssi/trunk/src/fe-common/irc/fe-irc-commands.c
+   M /irssi/trunk/src/irc/core/irc-commands.c
+   M /irssi/trunk/src/irc/dcc/dcc-chat.c
+
+cmd_get_params() calls had wrong parameter counts.
+
+------------------------------------------------------------------------
+r370 | cras | 2000-06-20 09:20:45 +0000 (Tue, 20 Jun 2000) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/gui-printtext.c
+
+When scrollback buffer got full and you hadn't done /LAST or /AWAY,
+Irssi crashed..
+
+------------------------------------------------------------------------
+r369 | cras | 2000-06-18 10:25:39 +0000 (Sun, 18 Jun 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-settings.c
+
+Display /ALIAS list sorted.
+
+------------------------------------------------------------------------
+r368 | cras | 2000-06-18 10:10:48 +0000 (Sun, 18 Jun 2000) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/netsplit.c
+
+Don't use cmd_get_params() to split the two hosts, it's a lot easier to
+use strchr()..
+
+------------------------------------------------------------------------
+r367 | cras | 2000-06-18 10:05:14 +0000 (Sun, 18 Jun 2000) | 6 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/completion.c
+
+File completion updates:
+ - ~/ isn't expanded to /home/xxx/
+ - . and .. don't show up in list anymore
+ - .files won't be added to list unless you try to complete file name
+   starting with .
+
+------------------------------------------------------------------------
+r366 | cras | 2000-06-18 10:02:39 +0000 (Sun, 18 Jun 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/memdebug.c
+   M /irssi/trunk/src/core/memdebug.h
+
+Added g_dirname() so ig_free() won't complain when free()ing it.
+
+------------------------------------------------------------------------
+r365 | cras | 2000-06-18 01:18:12 +0000 (Sun, 18 Jun 2000) | 5 lines
+Changed paths:
+   M /irssi/trunk/docs/formats.txt
+   M /irssi/trunk/docs/manual.txt
+   M /irssi/trunk/src/core/commands.c
+   M /irssi/trunk/src/core/commands.h
+   M /irssi/trunk/src/core/misc.c
+   M /irssi/trunk/src/core/misc.h
+   M /irssi/trunk/src/fe-common/core/fe-core-commands.c
+   M /irssi/trunk/src/fe-common/core/fe-log.c
+   M /irssi/trunk/src/fe-common/core/fe-settings.c
+   M /irssi/trunk/src/fe-common/core/hilight-text.c
+   M /irssi/trunk/src/fe-common/core/themes.c
+   M /irssi/trunk/src/fe-common/irc/dcc/fe-dcc.c
+   M /irssi/trunk/src/fe-common/irc/fe-channels.c
+   M /irssi/trunk/src/fe-common/irc/fe-ignore.c
+   M /irssi/trunk/src/fe-common/irc/fe-irc-commands.c
+   M /irssi/trunk/src/fe-common/irc/fe-irc-server.c
+   M /irssi/trunk/src/fe-common/irc/fe-ircnet.c
+   M /irssi/trunk/src/fe-common/irc/irc-completion.c
+   M /irssi/trunk/src/fe-text/gui-textwidget.c
+   M /irssi/trunk/src/irc/bot/botnet-connection.c
+   M /irssi/trunk/src/irc/bot/botnet-users.c
+   M /irssi/trunk/src/irc/bot/botnet.c
+   M /irssi/trunk/src/irc/core/bans.c
+   M /irssi/trunk/src/irc/core/channels-query.c
+   M /irssi/trunk/src/irc/core/channels.c
+   M /irssi/trunk/src/irc/core/irc-commands.c
+   M /irssi/trunk/src/irc/core/irc-special-vars.c
+   M /irssi/trunk/src/irc/core/ircnet-setup.c
+   M /irssi/trunk/src/irc/core/modes.c
+   M /irssi/trunk/src/irc/core/netsplit.c
+   M /irssi/trunk/src/irc/dcc/dcc-chat.c
+   M /irssi/trunk/src/irc/dcc/dcc-files.c
+   M /irssi/trunk/src/irc/dcc/dcc.c
+   M /irssi/trunk/src/irc/notifylist/notify-commands.c
+
+Changed option handling in /commands. Irssi will now complain about
+unknown options and missing option arguments.
+
+Renamed /SERVER -add, -remove and -list to /SERVER ADD, REMOVE and LIST.
+
+------------------------------------------------------------------------
+r364 | cras | 2000-06-17 17:03:23 +0000 (Sat, 17 Jun 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/po/POTFILES.in
+
+updated
+
+------------------------------------------------------------------------
+r363 | cras | 2000-06-17 16:10:29 +0000 (Sat, 17 Jun 2000) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/completion.c
+
+Added file name completion for commands /CAT, /RUN, /SAVE, /REHASH and
+/RAWLOG OPEN/SAVE.
+
+------------------------------------------------------------------------
+r362 | cras | 2000-06-17 16:03:43 +0000 (Sat, 17 Jun 2000) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/completion.c
+   M /irssi/trunk/src/fe-common/irc/dcc/fe-dcc.c
+   M /irssi/trunk/src/fe-common/irc/irc-completion.c
+
+"command complete" -> "complete command" so that it won't conflict with
+/complete command .. also changed "word complete" to "complete word".
+
+------------------------------------------------------------------------
+r361 | cras | 2000-06-17 15:58:40 +0000 (Sat, 17 Jun 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/commands.c
+   M /irssi/trunk/src/core/commands.h
+   M /irssi/trunk/src/fe-common/core/completion.c
+   M /irssi/trunk/src/fe-common/core/completion.h
+   M /irssi/trunk/src/fe-common/irc/dcc/fe-dcc.c
+   M /irssi/trunk/src/fe-common/irc/irc-completion.c
+
+File name completion for /DCC SEND
+
+------------------------------------------------------------------------
+r360 | cras | 2000-06-17 13:16:42 +0000 (Sat, 17 Jun 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/misc.c
+   M /irssi/trunk/src/core/misc.h
+   M /irssi/trunk/src/fe-common/core/completion.c
+
+Completion list is now sorted.
+
+------------------------------------------------------------------------
+r359 | cras | 2000-06-17 13:04:19 +0000 (Sat, 17 Jun 2000) | 4 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/completion.c
+
+Don't add same /command more than once to completion list.
+
+Completion didn't work right when completing subcommands's subcommand.
+
+------------------------------------------------------------------------
+r358 | cras | 2000-06-17 12:23:59 +0000 (Sat, 17 Jun 2000) | 2 lines
+Changed paths:
+   A /irssi/trunk/src/fe-common/core/completion.c
+
+Forgot to add this.
+
+------------------------------------------------------------------------
+r357 | cras | 2000-06-17 12:22:56 +0000 (Sat, 17 Jun 2000) | 6 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/window-items.c
+   M /irssi/trunk/src/fe-common/irc/dcc/fe-dcc.c
+   M /irssi/trunk/src/fe-common/irc/fe-channels.c
+   M /irssi/trunk/src/fe-common/irc/fe-query.c
+   M /irssi/trunk/src/irc/core/query.h
+   M /irssi/trunk/src/irc/dcc/dcc-chat.c
+   M /irssi/trunk/src/irc/dcc/dcc.h
+
+Added /SET reuse_unused_windows setting, default is OFF
+
+If window_close_on_part is ON, we don't anymore close the window if we
+get kicked or connection gets lost. Also don't close DCC chat window if
+the other side disconnects.
+
+------------------------------------------------------------------------
+r356 | cras | 2000-06-17 11:53:45 +0000 (Sat, 17 Jun 2000) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/Makefile.am
+   A /irssi/trunk/src/fe-common/core/completion.h
+   M /irssi/trunk/src/fe-common/core/fe-common-core.c
+   M /irssi/trunk/src/fe-common/irc/Makefile.am
+   D /irssi/trunk/src/fe-common/irc/completion.c
+   D /irssi/trunk/src/fe-common/irc/completion.h
+   M /irssi/trunk/src/fe-common/irc/fe-common-irc.c
+   A /irssi/trunk/src/fe-common/irc/irc-completion.c
+   M /irssi/trunk/src/fe-text/gui-readline.c
+
+Rewrite Tab-completion to work with signals - now it should be easy to
+add completion to whatever command.
+
+------------------------------------------------------------------------
+r355 | cras | 2000-06-15 23:00:52 +0000 (Thu, 15 Jun 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/gui-printtext.c
+   M /irssi/trunk/src/fe-text/gui-textwidget.c
+   M /irssi/trunk/src/fe-text/gui-windows.h
+
+/LAST -away checks only lines that came after last time you went away.
+
+------------------------------------------------------------------------
+r354 | cras | 2000-06-15 20:56:58 +0000 (Thu, 15 Jun 2000) | 6 lines
+Changed paths:
+   M /irssi/trunk/docs/manual.txt
+   M /irssi/trunk/src/fe-common/irc/fe-ircnet.c
+   M /irssi/trunk/src/irc/core/ircnet-setup.c
+   M /irssi/trunk/src/irc/core/ircnet-setup.h
+
+You can specify command(s) to be sent automatically to server after
+connected with /IRCNET -autosendcmd. Useful for IRC networks with
+NickServ. Patch by <Tommi.Komulainen@iki.fi>
+
+Ability to send a command automatically to server IRC network
+
+------------------------------------------------------------------------
+r353 | cras | 2000-06-15 19:34:54 +0000 (Thu, 15 Jun 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/fe-channels.c
+
+bugfix
+
+------------------------------------------------------------------------
+r352 | cras | 2000-06-15 19:34:31 +0000 (Thu, 15 Jun 2000) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/channel-events.c
+
+If join to !channel wasn't successfull (banned, etc.), Irssi didn't remove
+the channel's window item.
+
+------------------------------------------------------------------------
+r351 | cras | 2000-06-15 18:33:08 +0000 (Thu, 15 Jun 2000) | 5 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/fe-query.c
+
+"window changed" signal handler didn't check if the old or new window
+is NULL.
+
+window_has_query()
+
+------------------------------------------------------------------------
+r350 | cras | 2000-06-15 10:39:24 +0000 (Thu, 15 Jun 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/printtext.c
+
+Whops, last "fix" broke timestamp's time.
+
+------------------------------------------------------------------------
+r349 | cras | 2000-06-14 22:31:59 +0000 (Wed, 14 Jun 2000) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/printtext.c
+
+Don't waste time calculating timestamp differeces if the
+timestamp_timeout is 0.
+
+------------------------------------------------------------------------
+r348 | cras | 2000-06-14 20:19:49 +0000 (Wed, 14 Jun 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk
+   M /irssi/trunk/.cvsignore
+
+Added irssi-version.h.in there
+
+------------------------------------------------------------------------
+r346 | cras | 2000-06-14 20:16:30 +0000 (Wed, 14 Jun 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/NEWS
+   M /irssi/trunk/TODO
+   M /irssi/trunk/configure.in
+   M /irssi/trunk/docs/manual.txt
+   M /irssi/trunk/po/de.po
+   M /irssi/trunk/po/fi.po
+   M /irssi/trunk/po/fr.po
+   M /irssi/trunk/po/pl.po
+   M /irssi/trunk/po/pt_BR.po
+
+Irssi 0.7.91 released.
+
+------------------------------------------------------------------------
+r345 | cras | 2000-06-14 20:12:51 +0000 (Wed, 14 Jun 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/gui-windows.c
+   M /irssi/trunk/src/fe-text/gui-windows.h
+
+Remove line cache from memory after 10 minutes of inactivity.
+
+------------------------------------------------------------------------
+r344 | cras | 2000-06-14 19:40:23 +0000 (Wed, 14 Jun 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/fe-events-numeric.c
+   M /irssi/trunk/src/irc/core/irc-commands.c
+
+Don't show "End of WHOWAS" if none of the nicks were found.
+
+------------------------------------------------------------------------
+r343 | cras | 2000-06-14 19:05:51 +0000 (Wed, 14 Jun 2000) | 5 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-common-core.c
+   M /irssi/trunk/src/fe-common/irc/fe-events.c
+   M /irssi/trunk/src/fe-common/irc/fe-irc-commands.c
+   M /irssi/trunk/src/fe-common/irc/fe-query.c
+   M /irssi/trunk/src/fe-common/irc/fe-query.h
+
+Renamed /SET query_auto_close to autoclose_query.
+
+Added /SET autocreate_own_query - it specifies if we want to create
+query window when we send /MSG to someone.
+
+------------------------------------------------------------------------
+r342 | cras | 2000-06-14 18:19:05 +0000 (Wed, 14 Jun 2000) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/completion.c
+
+Tab-completion works now with /commands and /set variables, patch by
+<Tommi.Komulainen@iki.fi>. Fixed also a few memleaks.
+
+------------------------------------------------------------------------
+r341 | cras | 2000-06-14 18:02:13 +0000 (Wed, 14 Jun 2000) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/gui-entry.c
+   M /irssi/trunk/src/fe-text/gui-entry.h
+   M /irssi/trunk/src/fe-text/gui-readline.c
+
+Ctrl-W deletes word in left - patch from
+Kjetil ï¿½degaard <kjetilod@orakel.ntnu.no>
+
+------------------------------------------------------------------------
+r340 | cras | 2000-06-14 17:58:14 +0000 (Wed, 14 Jun 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/fe-netsplit.c
+
+In netsplit quit messages, display @ in front of operators' nicks.
+
+------------------------------------------------------------------------
+r339 | cras | 2000-06-14 17:52:03 +0000 (Wed, 14 Jun 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/fe-ignore.c
+   M /irssi/trunk/src/fe-common/irc/flood/module-formats.c
+   M /irssi/trunk/src/irc/core/ignore.c
+   M /irssi/trunk/src/irc/flood/autoignore.c
+   M /irssi/trunk/src/irc/flood/flood.c
+
+Fixed some flood detection, ignoring and autoignoring bugs.
+
+------------------------------------------------------------------------
+r338 | cras | 2000-06-14 17:50:16 +0000 (Wed, 14 Jun 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/server-reconnect.c
+   M /irssi/trunk/src/irc/core/server-setup.c
+   M /irssi/trunk/src/irc/core/server-setup.h
+
+Read new server specific settings when reconnecting to new server.
+
+------------------------------------------------------------------------
+r337 | cras | 2000-06-14 17:48:13 +0000 (Wed, 14 Jun 2000) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/statusbar-items.c
+
+/SET mail_counter on|off. Also, it doesn't anymore read through the file
+if it's modification time hasn't changed.
+
+------------------------------------------------------------------------
+r336 | cras | 2000-06-14 17:44:03 +0000 (Wed, 14 Jun 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/gui-entry.c
+   M /irssi/trunk/src/fe-text/gui-readline.c
+
+tab-completion in the middle of line left the cursor in wrong place.
+
+------------------------------------------------------------------------
+r335 | cras | 2000-06-14 17:41:45 +0000 (Wed, 14 Jun 2000) | 5 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/windows.c
+   M /irssi/trunk/src/fe-common/irc/fe-query.c
+
+"window changed" signal now gives the old window as it's second argument.
+
+query_auto_close now resets the "last check" time when changing to some
+other window FROM it.
+
+------------------------------------------------------------------------
+r334 | cras | 2000-06-14 17:33:41 +0000 (Wed, 14 Jun 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-log.c
+
+Logging wrote to message to file twice.
+
+------------------------------------------------------------------------
+r333 | cras | 2000-06-14 17:31:53 +0000 (Wed, 14 Jun 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/lib-config/write.c
+
+If name tag contains '_', it shouldn't be quoted.
+
+------------------------------------------------------------------------
+r332 | cras | 2000-06-12 23:33:35 +0000 (Mon, 12 Jun 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/modes.c
+
+Max. mode parameter count was taken from wrong place.
+
+------------------------------------------------------------------------
+r331 | cras | 2000-06-12 23:30:00 +0000 (Mon, 12 Jun 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/flood/flood.c
+
+Changed the default flood detection values.
+
+------------------------------------------------------------------------
+r330 | cras | 2000-06-12 23:27:41 +0000 (Mon, 12 Jun 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/flood/flood.c
+
+Flood detection fixes
+
+------------------------------------------------------------------------
+r329 | cras | 2000-06-12 23:19:34 +0000 (Mon, 12 Jun 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/fe-events.c
+
+Channel messages were printed wrong because of previous cleanup :)
+
+------------------------------------------------------------------------
+r328 | cras | 2000-06-12 23:18:24 +0000 (Mon, 12 Jun 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/hilight-text.c
+
+/HILIGHT -channels didn't work right.
+
+------------------------------------------------------------------------
+r327 | cras | 2000-06-12 22:57:53 +0000 (Mon, 12 Jun 2000) | 10 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/window-commands.c
+   M /irssi/trunk/src/fe-common/core/window-items.c
+   M /irssi/trunk/src/fe-common/core/window-items.h
+   M /irssi/trunk/src/fe-common/core/windows.c
+   M /irssi/trunk/src/fe-common/core/windows.h
+   M /irssi/trunk/src/fe-common/irc/Makefile.am
+   M /irssi/trunk/src/fe-common/irc/completion.c
+   M /irssi/trunk/src/fe-common/irc/fe-events.c
+   M /irssi/trunk/src/fe-common/irc/fe-irc-commands.c
+   M /irssi/trunk/src/fe-common/irc/fe-query.c
+   A /irssi/trunk/src/fe-common/irc/fe-query.h
+   M /irssi/trunk/src/fe-common/irc/irc-window-activity.c
+   M /irssi/trunk/src/fe-common/irc/module-formats.c
+   M /irssi/trunk/src/irc/bot/bot-irc-commands.c
+   M /irssi/trunk/src/irc/core/ctcp.c
+   M /irssi/trunk/src/irc/core/irc-server.c
+   M /irssi/trunk/src/irc/core/irc-special-vars.c
+   M /irssi/trunk/src/irc/core/query.c
+   M /irssi/trunk/src/irc/flood/flood.c
+
+CTCP msgs/replies stops the "event privmsg" or "event notice" signals now
+so you don't have to check for them anymore (unless you use
+signal_add_first()..).
+
+/WINDOW MOVE command had some bugs.
+
+CTCP reply to some channel didn't display the channel name.
+
+Several code cleanups.
+
+------------------------------------------------------------------------
+r326 | cras | 2000-06-11 22:58:17 +0000 (Sun, 11 Jun 2000) | 5 lines
+Changed paths:
+   M /irssi/trunk/src/core/special-vars.c
+   M /irssi/trunk/src/fe-common/core/printtext.c
+   M /irssi/trunk/src/fe-common/irc/completion.c
+
+/EVAL will now expand \n and \t to newline and tab.
+
+If you /SET expand_escapes ON and type \n or \t to text line, they
+will be expanded.
+
+------------------------------------------------------------------------
+r325 | cras | 2000-06-11 21:01:30 +0000 (Sun, 11 Jun 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/fe-query.c
+   M /irssi/trunk/src/fe-common/irc/module-formats.c
+   M /irssi/trunk/src/fe-common/irc/module-formats.h
+
+Print "starting query with <nick>" when query is created.
+
+------------------------------------------------------------------------
+r324 | cras | 2000-06-11 20:21:12 +0000 (Sun, 11 Jun 2000) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/window-items.c
+
+/SET close_window_on_part - should we close the window too when
+/PARTing channel
+
+------------------------------------------------------------------------
+r323 | cras | 2000-06-11 20:04:15 +0000 (Sun, 11 Jun 2000) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/window-items.c
+
+Clear window's waiting_channels list if some other channel/query is
+created in the window.
+
+------------------------------------------------------------------------
+r322 | cras | 2000-06-11 19:34:29 +0000 (Sun, 11 Jun 2000) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/fe-events-numeric.c
+   M /irssi/trunk/src/irc/core/irc-server.c
+   M /irssi/trunk/src/irc/core/irc-server.h
+   M /irssi/trunk/src/irc/core/server-reconnect.c
+   M /irssi/trunk/src/irc/core/server-setup.h
+
+If you're not allowed to connect to server (K-lined, no I-line), Irssi
+won't try to reconnect back to the server.
+
+------------------------------------------------------------------------
+r321 | cras | 2000-06-11 00:58:15 +0000 (Sun, 11 Jun 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/fe-events.c
+
+Cleaned up some code.
+
+------------------------------------------------------------------------
+r320 | cras | 2000-06-11 00:42:37 +0000 (Sun, 11 Jun 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/statusbar-items.c
+
+Displays Mail counter in statusbar. Read the FIXME for more info :)
+
+------------------------------------------------------------------------
+r319 | cras | 2000-06-11 00:03:28 +0000 (Sun, 11 Jun 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/fe-netsplit.c
+
+Check ignores when printing net split messages.
+
+------------------------------------------------------------------------
+r318 | cras | 2000-06-10 23:40:47 +0000 (Sat, 10 Jun 2000) | 4 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-core-commands.c
+
+if command is unknown, and cmdchar is found inside the command name, we
+probably want to send the whole line to channel. for example when
+pasting a path /usr/bin/xxx
+
+------------------------------------------------------------------------
+r317 | cras | 2000-06-10 23:20:22 +0000 (Sat, 10 Jun 2000) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/core/commands.c
+   M /irssi/trunk/src/fe-common/irc/completion.c
+
+Changed the behaviour of how to handle "send command" signal (text you
+typed to entry field).
+
+------------------------------------------------------------------------
+r316 | cras | 2000-06-10 22:48:18 +0000 (Sat, 10 Jun 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/commands.c
+
+same cmdchar twice ignores aliases ignores aliases - not any two cmdchars
+
+------------------------------------------------------------------------
+r315 | cras | 2000-06-10 21:40:00 +0000 (Sat, 10 Jun 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/fe-events-numeric.c
+   M /irssi/trunk/src/fe-common/irc/fe-events.c
+   M /irssi/trunk/src/fe-common/irc/module-formats.c
+   M /irssi/trunk/src/fe-common/irc/module-formats.h
+   M /irssi/trunk/src/irc/core/irc-commands.c
+   M /irssi/trunk/src/irc/core/irc-server.h
+
+/WHOIS automatically sends a /WHOWAS query if nick wasn't in IRC.
+
+------------------------------------------------------------------------
+r314 | cras | 2000-06-10 20:03:43 +0000 (Sat, 10 Jun 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/irc-commands.c
+
+/JOIN -<server tag> #channel joins to channel in specified server.
+
+------------------------------------------------------------------------
+r313 | cras | 2000-06-10 19:51:36 +0000 (Sat, 10 Jun 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/fe-irc-commands.c
+
+If autocreate_query is ON, /MSG nick now creates the query.
+
+------------------------------------------------------------------------
+r312 | cras | 2000-06-10 19:16:25 +0000 (Sat, 10 Jun 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/gui-readline.c
+   M /irssi/trunk/src/fe-text/statusbar-items.c
+
+Ctrl-X changes IRC server in stats/msgs/empty windows.
+
+------------------------------------------------------------------------
+r311 | cras | 2000-06-10 18:56:03 +0000 (Sat, 10 Jun 2000) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/windows.c
+
+"Day changed" is now printed at right time, never after already printed
+some messages after 00:00..
+
+------------------------------------------------------------------------
+r310 | cras | 2000-06-10 18:12:28 +0000 (Sat, 10 Jun 2000) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-common-core.c
+
+Don't display the msgs window by default anymore since query windows are
+created by default also..
+
+------------------------------------------------------------------------
+r309 | cras | 2000-06-10 08:58:52 +0000 (Sat, 10 Jun 2000) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/modes.c
+
+/MODE +something or /MODE -something assumes that we want to change the
+active channel's mode.
+
+------------------------------------------------------------------------
+r308 | cras | 2000-06-10 08:39:19 +0000 (Sat, 10 Jun 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/log.c
+   M /irssi/trunk/src/core/log.h
+
+Rotate time names changed :) week -> weekly, day -> daily, etc.
+
+------------------------------------------------------------------------
+r307 | cras | 2000-06-10 08:34:20 +0000 (Sat, 10 Jun 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/fe-channels.c
+
+/CHANNEL LIST displayed comma at the end of channel options. ugly.
+
+------------------------------------------------------------------------
+r306 | cras | 2000-06-09 17:29:12 +0000 (Fri, 09 Jun 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/docs/perl.txt
+   M /irssi/trunk/src/irc/dcc/dcc.h
+   M /irssi/trunk/src/perl/xs/Irssi-dcc.xs
+
+Added Irssi::Dcc::values(), updated a few other DCC things too.
+
+------------------------------------------------------------------------
+r305 | cras | 2000-06-09 16:58:52 +0000 (Fri, 09 Jun 2000) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/printtext.c
+   M /irssi/trunk/src/fe-text/gui-printtext.c
+   M /irssi/trunk/src/fe-text/gui-textwidget.c
+   M /irssi/trunk/src/fe-text/gui-windows.h
+
+Beeps should work(?). ANSI colors had some bugs, bolds weren't working and
+blinking crashed irssi.
+
+------------------------------------------------------------------------
+r304 | cras | 2000-06-09 16:19:42 +0000 (Fri, 09 Jun 2000) | 6 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/window-activity.c
+
+Window activity is now "msg to you" with lines containing hilighted text.
+
+You can disable window activity notifies in some channels with
+/SET noact_channels #chan1 #chan2 .. The activity is displayed if some
+text had "msg to you" level.
+
+------------------------------------------------------------------------
+r303 | cras | 2000-06-09 15:50:04 +0000 (Fri, 09 Jun 2000) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/fe-irc-commands.c
+   M /irssi/trunk/src/fe-common/irc/module-formats.c
+   M /irssi/trunk/src/fe-common/irc/module-formats.h
+   M /irssi/trunk/src/irc/core/irc-commands.c
+
+You can specify the format of the /WALL text with /SET wall_format,
+default is "[Wall/#channel] text". The WALL is also printed to screen.
+
+------------------------------------------------------------------------
+r302 | cras | 2000-06-07 18:35:15 +0000 (Wed, 07 Jun 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/irc-commands.c
+
+/WHO and /WHO * should disply who list of the active channel.
+
+------------------------------------------------------------------------
+r301 | cras | 2000-06-06 19:14:51 +0000 (Tue, 06 Jun 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/lib-config/get.c
+
+If config_node_get_str() is given NULL node, return the given default.
+
+------------------------------------------------------------------------
+r300 | cras | 2000-06-06 19:13:35 +0000 (Tue, 06 Jun 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/network.c
+
+Use INADDR_BROADCAST if INADDR_NONE isn't defined.
+
+------------------------------------------------------------------------
+r299 | cras | 2000-06-06 19:12:19 +0000 (Tue, 06 Jun 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/dcc/dcc.c
+
+Replying to dcc get and chat requests didn't work.
+
+------------------------------------------------------------------------
+r298 | cras | 2000-06-06 16:58:06 +0000 (Tue, 06 Jun 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/modes.c
+
+bugfix
+
+------------------------------------------------------------------------
+r297 | cras | 2000-06-05 17:38:27 +0000 (Mon, 05 Jun 2000) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/screen.c
+
+Maybe I should have tried to run irssi after the ignore_signals "fix" ..
+now really fixed.
+
+------------------------------------------------------------------------
+r296 | cras | 2000-06-05 17:32:29 +0000 (Mon, 05 Jun 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/screen.c
+
+ignore_signals setting wasn't read at startup..
+
+------------------------------------------------------------------------
+r295 | cras | 2000-06-04 21:11:53 +0000 (Sun, 04 Jun 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/module-formats.c
+
+/HILIGHT displayed levels twice.
+
+------------------------------------------------------------------------
+r294 | cras | 2000-06-04 20:54:33 +0000 (Sun, 04 Jun 2000) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/window-commands.c
+   M /irssi/trunk/src/irc/Makefile.am
+   M /irssi/trunk/src/irc/core/server-setup.c
+
+fixed two minor memleaks. irc/bot directory isn't now build if you specify
+--without-bot parameter to configure
+
+------------------------------------------------------------------------
+r292 | cras | 2000-06-04 16:01:19 +0000 (Sun, 04 Jun 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/Makefile.am
+   M /irssi/trunk/NEWS
+   M /irssi/trunk/README
+   M /irssi/trunk/TODO
+   M /irssi/trunk/autogen.sh
+   M /irssi/trunk/config
+   M /irssi/trunk/configure.in
+   M /irssi/trunk/docs/Makefile.am
+   M /irssi/trunk/po/de.po
+   M /irssi/trunk/po/fi.po
+   M /irssi/trunk/po/fr.po
+   M /irssi/trunk/po/pl.po
+   M /irssi/trunk/po/pt_BR.po
+   M /irssi/trunk/src/core/Makefile.am
+   M /irssi/trunk/src/fe-common/irc/Makefile.am
+   M /irssi/trunk/src/fe-text/Makefile.am
+   M /irssi/trunk/src/irc/bot/Makefile.am
+   M /irssi/trunk/src/irc/dcc/Makefile.am
+   M /irssi/trunk/src/irc/flood/Makefile.am
+   M /irssi/trunk/src/irc/notifylist/Makefile.am
+   M /irssi/trunk/src/perl/xs/Irssi-dcc.xs
+
+0.7.90 released.
+
+------------------------------------------------------------------------
+r291 | cras | 2000-06-04 15:33:48 +0000 (Sun, 04 Jun 2000) | 2 lines
+Changed paths:
+   A /irssi/trunk/src/fe-common/irc/fe-ircnet.c
+
+forgot this file..
+
+------------------------------------------------------------------------
+r290 | cras | 2000-06-04 14:52:47 +0000 (Sun, 04 Jun 2000) | 3 lines
+Changed paths:
+   M /irssi/trunk/docs/manual.txt
+   M /irssi/trunk/src/core/commands.c
+   M /irssi/trunk/src/core/commands.h
+   M /irssi/trunk/src/fe-common/irc/Makefile.am
+   M /irssi/trunk/src/fe-common/irc/fe-channels.c
+   M /irssi/trunk/src/fe-common/irc/fe-common-irc.c
+   M /irssi/trunk/src/fe-common/irc/fe-irc-server.c
+   M /irssi/trunk/src/fe-common/irc/module-formats.c
+   M /irssi/trunk/src/fe-common/irc/module-formats.h
+   M /irssi/trunk/src/irc/core/ircnet-setup.c
+   M /irssi/trunk/src/irc/core/ircnet-setup.h
+   M /irssi/trunk/src/irc/core/netsplit.c
+   M /irssi/trunk/src/irc/core/server-setup.c
+   M /irssi/trunk/src/irc/dcc/dcc-files.c
+   M /irssi/trunk/src/irc/dcc/dcc.c
+
+/IRCNET command.
+PARAM_FLAG_NOQUOTES flag for cmd_get_params()
+
+------------------------------------------------------------------------
+r289 | cras | 2000-06-04 13:24:53 +0000 (Sun, 04 Jun 2000) | 4 lines
+Changed paths:
+   M /irssi/trunk/docs/manual.txt
+   M /irssi/trunk/src/fe-common/irc/fe-channels.c
+
+Updated /SERVER, /CHANNEL and /IGNORE in manual.
+
+/CHANNEL ADD works now better when modifying existing channel.
+
+------------------------------------------------------------------------
+r288 | cras | 2000-06-04 12:59:46 +0000 (Sun, 04 Jun 2000) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-log.c
+   M /irssi/trunk/src/fe-common/core/module-formats.c
+
+/LOG show reference number for each log, you can use it with /LOG START,
+STOP and CLOSE commands instead of file name.
+
+------------------------------------------------------------------------
+r287 | cras | 2000-06-04 12:38:28 +0000 (Sun, 04 Jun 2000) | 4 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/completion.c
+   M /irssi/trunk/src/fe-common/irc/completion.h
+   M /irssi/trunk/src/fe-common/irc/fe-events.c
+   M /irssi/trunk/src/fe-common/irc/fe-ignore.c
+   M /irssi/trunk/src/fe-common/irc/irc-window-activity.c
+   M /irssi/trunk/src/irc/core/ignore.c
+   M /irssi/trunk/src/irc/core/ignore.h
+   M /irssi/trunk/src/irc/core/nicklist.c
+   M /irssi/trunk/src/irc/core/nicklist.h
+
+completion_msgtoyou() -> irc_nick_match()
+
+Implemented -replies option to /ignore.
+
+------------------------------------------------------------------------
+r286 | cras | 2000-06-04 01:52:51 +0000 (Sun, 04 Jun 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/dcc/dcc-files.c
+
+..and fixed DCC resume that I just broke.
+
+------------------------------------------------------------------------
+r285 | cras | 2000-06-04 01:36:07 +0000 (Sun, 04 Jun 2000) | 4 lines
+Changed paths:
+   M /irssi/trunk/src/core/commands.c
+   M /irssi/trunk/src/core/commands.h
+   M /irssi/trunk/src/fe-common/irc/dcc/fe-dcc.c
+   M /irssi/trunk/src/fe-common/irc/dcc/module-formats.c
+   M /irssi/trunk/src/fe-common/irc/dcc/module-formats.h
+   M /irssi/trunk/src/fe-common/irc/fe-irc-commands.c
+   M /irssi/trunk/src/irc/core/irc-commands.c
+   M /irssi/trunk/src/irc/core/irc.h
+   M /irssi/trunk/src/irc/core/query.c
+   M /irssi/trunk/src/irc/dcc/dcc-chat.c
+   M /irssi/trunk/src/irc/dcc/dcc-files.c
+   M /irssi/trunk/src/irc/dcc/dcc.c
+   M /irssi/trunk/src/irc/dcc/dcc.h
+
+Lots of DCC related fixes.
+
+Added command_bind_first() and command_bind_last() functions.
+
+------------------------------------------------------------------------
+r284 | cras | 2000-06-04 00:04:02 +0000 (Sun, 04 Jun 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/bans.c
+
+Removed a warning.
+
+------------------------------------------------------------------------
+r283 | cras | 2000-06-03 18:54:59 +0000 (Sat, 03 Jun 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/levels.c
+
+bits2level() with zero as argument printed some glib warnings.
+
+------------------------------------------------------------------------
+r282 | cras | 2000-06-02 22:55:20 +0000 (Fri, 02 Jun 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/server-setup.c
+
+/SET hostname didn't affect until restart.
+
+------------------------------------------------------------------------
+r281 | cras | 2000-06-02 01:59:19 +0000 (Fri, 02 Jun 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-none
+   M /irssi/trunk/src/fe-none/.cvsignore
+   M /irssi/trunk/src/fe-text
+   M /irssi/trunk/src/fe-text/.cvsignore
+
+..and cvsignores for new binaries..
+
+------------------------------------------------------------------------
+r280 | cras | 2000-06-02 01:58:52 +0000 (Fri, 02 Jun 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-none/Makefile.am
+   M /irssi/trunk/src/fe-text/Makefile.am
+
+Changed binary names: irssi-text -> irssi, irssi-bot -> botti
+
+------------------------------------------------------------------------
+r279 | cras | 2000-06-02 01:55:03 +0000 (Fri, 02 Jun 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/README
+   M /irssi/trunk/docs/manual.txt
+   M /irssi/trunk/irssi.spec.in
+   M /irssi/trunk/src/common.h
+
+Changed irssi's url to http://irssi.org
+
+------------------------------------------------------------------------
+r278 | cras | 2000-06-02 01:52:24 +0000 (Fri, 02 Jun 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/TODO
+
+updated, everything is in english for a change :)
+
+------------------------------------------------------------------------
+r277 | cras | 2000-06-02 01:49:10 +0000 (Fri, 02 Jun 2000) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/gui-textwidget.c
+
+If we used /SB GOTO 23:59 or something, we wanted to jump to
+previous day's 23:59 time instead of into future..
+
+------------------------------------------------------------------------
+r276 | cras | 2000-06-02 01:19:06 +0000 (Fri, 02 Jun 2000) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/irc-commands.c
+
+/AWAY <away message> now sets yourself away in all IRC servers.
+If you wish to set it only to one server, use /AWAY -one <message>
+
+------------------------------------------------------------------------
+r275 | cras | 2000-06-02 01:15:51 +0000 (Fri, 02 Jun 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-log.c
+   M /irssi/trunk/src/fe-common/core/module-formats.c
+   M /irssi/trunk/src/fe-common/core/module-formats.h
+   M /irssi/trunk/src/irc/core/irc-log.c
+
+Awaylog is printed to screen when you set yourself unaway.
+
+------------------------------------------------------------------------
+r274 | cras | 2000-06-02 01:15:19 +0000 (Fri, 02 Jun 2000) | 4 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-core-commands.c
+
+/CAT <file name> [seek position]
+
+If we don't want to print the file from beginning.
+
+------------------------------------------------------------------------
+r273 | cras | 2000-06-02 01:04:42 +0000 (Fri, 02 Jun 2000) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/core/log.c
+   M /irssi/trunk/src/core/rawlog.c
+
+common-setup.h wasn't removed from here - Made rawlog to use
+"log_create_mode" setting.
+
+------------------------------------------------------------------------
+r272 | cras | 2000-06-02 00:36:54 +0000 (Fri, 02 Jun 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/Makefile.am
+   D /irssi/trunk/src/common-setup.h
+   M /irssi/trunk/src/irc/core/irc-commands.c
+   M /irssi/trunk/src/irc/core/netsplit.c
+   M /irssi/trunk/src/irc/core/server-reconnect.c
+   M /irssi/trunk/src/irc/core/server-reconnect.h
+   M /irssi/trunk/src/irc/core/server-setup.c
+   M /irssi/trunk/src/irc/flood/autoignore.c
+
+removed common-setup.h, put all settings in it to files where they belong to.
+
+------------------------------------------------------------------------
+r271 | cras | 2000-06-02 00:27:57 +0000 (Fri, 02 Jun 2000) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/gui-printtext.c
+
+if you were at the top of the scrollback buffer and the first line line
+was removed from buffer, ypos was updated wrong and it messed up some things.
+
+------------------------------------------------------------------------
+r270 | cras | 2000-06-02 00:19:11 +0000 (Fri, 02 Jun 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/statusbar-items.c
+
+--more-- in statusbar should now work right.
+
+------------------------------------------------------------------------
+r269 | cras | 2000-06-01 23:33:47 +0000 (Thu, 01 Jun 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/screen.c
+
+Or actually :) SIGINT shouldn't be ignored, it's used to detect Ctrl-C...
+
+------------------------------------------------------------------------
+r268 | cras | 2000-06-01 23:30:40 +0000 (Thu, 01 Jun 2000) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/screen.c
+
+Removed "ignore_sigquit" and added "ignore_signals" instead. You can ignore
+signals: hup, int, quit, term, pipe, alrm, usr1, usr2
+
+------------------------------------------------------------------------
+r267 | cras | 2000-06-01 23:11:31 +0000 (Thu, 01 Jun 2000) | 4 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/screen.c
+
+"ignore_sigquit" setting - when enabled, ignore SIGQUIT signals. ncurses
+does this when pressing ctrl-4. With some terminals, there's no meta key and
+you'll have to use ctrl-3 instead which is pretty close to 4..
+
+------------------------------------------------------------------------
+r266 | cras | 2000-06-01 18:04:34 +0000 (Thu, 01 Jun 2000) | 6 lines
+Changed paths:
+   M /irssi/trunk/docs/manual.txt
+   M /irssi/trunk/src/fe-common/irc/fe-irc-server.c
+   M /irssi/trunk/src/irc/core/server-setup.c
+
+/server -add messed up everything when modifying existing servers.
+Now it also changes only the specified settings in the server instead of
+replacing it entirely.
+
+only the settings you change changed parts
+
+------------------------------------------------------------------------
+r265 | cras | 2000-06-01 17:36:39 +0000 (Thu, 01 Jun 2000) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/channels-query.c
+
+Some strange servers replied to MODE #chan1,#chan2 with "Cannot join channel
+(illegal name)". IMHO this is not a logical reply from server.. fixed, anyway.
+
+------------------------------------------------------------------------
+r264 | cras | 2000-06-01 17:31:03 +0000 (Thu, 01 Jun 2000) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/server-reconnect.c
+
+crashed when reconnecting to server that didn't automatically set
+any user mode (I _did_ fix this a week ago, what happened to it?)
+
+------------------------------------------------------------------------
+r263 | cras | 2000-06-01 17:22:17 +0000 (Thu, 01 Jun 2000) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/bans.c
+
+/BAN * and /UNBAN * equals to /BAN * * or /UNBAN * *, so you don't have to
+write the * twice when banning/unbanning everyone..
+
+------------------------------------------------------------------------
+r262 | cras | 2000-06-01 17:17:45 +0000 (Thu, 01 Jun 2000) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/core/misc.c
+
+match_wildcards() didn't work right if data contained '*' characters and
+we were matching it to '*'..
+
+------------------------------------------------------------------------
+r261 | cras | 2000-06-01 17:08:30 +0000 (Thu, 01 Jun 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/window-items.c
+   M /irssi/trunk/src/fe-common/irc/fe-channels.c
+
+Leaving from some channel didn't update status bar.
+
+------------------------------------------------------------------------
+r260 | cras | 2000-06-01 17:07:32 +0000 (Thu, 01 Jun 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/irc-server.c
+   M /irssi/trunk/src/irc/core/irc-server.h
+
+forgot these from /MOTD fix..
+
+------------------------------------------------------------------------
+r259 | cras | 2000-06-01 16:55:15 +0000 (Thu, 01 Jun 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/fe-events-numeric.c
+
+Manually asking /MOTD didn't work if we had skip_motd setting enabled
+
+------------------------------------------------------------------------
+r258 | cras | 2000-06-01 16:49:19 +0000 (Thu, 01 Jun 2000) | 4 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/statusbar-items.c
+   M /irssi/trunk/src/irc/core/irc-commands.c
+
+/topic -d [#channel] clears the topic.
+
+When topic cleared, the topic bar wasn't refreshed immediately.
+
+------------------------------------------------------------------------
+r257 | cras | 2000-06-01 16:48:20 +0000 (Thu, 01 Jun 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/fe-ignore.c
+
+/ignore -asd tried to print "unignored" text with NULL argument.
+
+------------------------------------------------------------------------
+r256 | cras | 2000-06-01 16:46:50 +0000 (Thu, 01 Jun 2000) | 6 lines
+Changed paths:
+   M /irssi/trunk/src/core/commands.c
+
+cmd_get_params() fixes:
+
+- arguments and optional channel flags couldn't be used together
+- -- argument treats the rest of the text as non-arguments, like
+  /topic -- -hello- sets the topic to -hello-.
+
+------------------------------------------------------------------------
+r255 | cras | 2000-06-01 15:04:41 +0000 (Thu, 01 Jun 2000) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/irc-commands.c
+   M /irssi/trunk/src/irc/core/nicklist.c
+
+/userhost command didn't work ("unknown command"), and sending it with
+/quote userhost crashed.
+
+------------------------------------------------------------------------
+r254 | cras | 2000-05-30 14:54:36 +0000 (Tue, 30 May 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/fe-events.c
+
+when nick is quitting only from one channel, don't print the channel's name.
+
+------------------------------------------------------------------------
+r253 | cras | 2000-05-29 23:31:48 +0000 (Mon, 29 May 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/bot/Makefile.am
+   D /irssi/trunk/src/irc/bot/bot-commands.c
+   D /irssi/trunk/src/irc/bot/bot-commands.h
+   M /irssi/trunk/src/irc/bot/bot-irc-commands.c
+   M /irssi/trunk/src/irc/bot/bot-users.c
+   M /irssi/trunk/src/irc/bot/bot-users.h
+   M /irssi/trunk/src/irc/bot/bot.c
+   M /irssi/trunk/src/irc/bot/botnet-connection.c
+   A /irssi/trunk/src/irc/bot/botnet-users.c
+   A /irssi/trunk/src/irc/bot/botnet-users.h
+   M /irssi/trunk/src/irc/bot/botnet.c
+   M /irssi/trunk/src/irc/bot/botnet.h
+
+Sending files through botnet works.
+
+------------------------------------------------------------------------
+r252 | cras | 2000-05-29 17:34:47 +0000 (Mon, 29 May 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/bot/bot-commands.c
+   M /irssi/trunk/src/irc/bot/botnet-connection.c
+   M /irssi/trunk/src/irc/bot/botnet.c
+
+bugfixes
+
+------------------------------------------------------------------------
+r251 | cras | 2000-05-29 17:10:22 +0000 (Mon, 29 May 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/signals.c
+
+signal_stop_by_name() didn't work
+
+------------------------------------------------------------------------
+r250 | cras | 2000-05-29 16:37:00 +0000 (Mon, 29 May 2000) | 4 lines
+Changed paths:
+   M /irssi/trunk/configure.in
+   M /irssi/trunk/src/core/memdebug.c
+   M /irssi/trunk/src/fe-common/irc/dcc/Makefile.am
+   M /irssi/trunk/src/fe-common/irc/flood/Makefile.am
+   M /irssi/trunk/src/fe-common/irc/notifylist/Makefile.am
+   M /irssi/trunk/src/irc/dcc/Makefile.am
+   M /irssi/trunk/src/irc/flood/Makefile.am
+   M /irssi/trunk/src/irc/notifylist/Makefile.am
+
+--with-modules=xxx builds now specified extra modules to irssi binary.
+memdebug (if enabled) doesn't now by default check for buffer overflows
+since it's a huge slowup.
+
+------------------------------------------------------------------------
+r249 | cras | 2000-05-29 12:47:25 +0000 (Mon, 29 May 2000) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/irc/bot/Makefile.am
+   M /irssi/trunk/src/irc/bot/bot-commands.c
+   A /irssi/trunk/src/irc/bot/bot-commands.h
+   A /irssi/trunk/src/irc/bot/bot-irc-commands.c
+   M /irssi/trunk/src/irc/bot/bot-users.c
+   M /irssi/trunk/src/irc/bot/bot-users.h
+   M /irssi/trunk/src/irc/bot/bot.c
+   M /irssi/trunk/src/irc/bot/botnet-connection.c
+   M /irssi/trunk/src/irc/bot/botnet.c
+   M /irssi/trunk/src/irc/bot/botnet.h
+
+User changes are sent to botnet. Botnet commands are automatically sent
+forward unless you stop it with signal_stop_by_name("botnet event").
+
+------------------------------------------------------------------------
+r248 | cras | 2000-05-29 00:32:48 +0000 (Mon, 29 May 2000) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/windows.c
+
+msgs window was irc server specific - messages from other irc servers were
+displayed in active window.
+
+------------------------------------------------------------------------
+r247 | cras | 2000-05-28 22:53:35 +0000 (Sun, 28 May 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/gui-printtext.c
+   M /irssi/trunk/src/fe-text/gui-windows.c
+
+text buffer fixes
+
+------------------------------------------------------------------------
+r246 | cras | 2000-05-27 14:51:58 +0000 (Sat, 27 May 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/gui-windows.c
+
+Long lines sometimes had some colors displayed wrong.
+
+------------------------------------------------------------------------
+r245 | cras | 2000-05-27 13:49:29 +0000 (Sat, 27 May 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/fe-netsplit.c
+
+Netsplit messages are now printed with QUITS message level.
+
+------------------------------------------------------------------------
+r244 | cras | 2000-05-26 15:28:13 +0000 (Fri, 26 May 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/irc-server.c
+
+fixed a crash (first cvs commit in home for 2 months :)
+
+------------------------------------------------------------------------
+r243 | cras | 2000-05-25 17:41:26 +0000 (Thu, 25 May 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/fe-netsplit.c
+
+Didn't work, fixed.
+
+------------------------------------------------------------------------
+r242 | cras | 2000-05-25 17:12:44 +0000 (Thu, 25 May 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/network.c
+
+Didn't compile with IPv6 support.
+
+------------------------------------------------------------------------
+r241 | cras | 2000-05-25 16:40:25 +0000 (Thu, 25 May 2000) | 3 lines
+Changed paths:
+   M /irssi/trunk/docs/manual.txt
+   M /irssi/trunk/src/fe-common/irc/fe-netsplit.c
+   M /irssi/trunk/src/fe-common/irc/module-formats.c
+   M /irssi/trunk/src/fe-common/irc/module-formats.h
+   M /irssi/trunk/src/irc/core/netsplit.c
+   M /irssi/trunk/src/irc/core/netsplit.h
+
+Print nicks who quit IRC in netsplit message. See netsplit section in
+docs/manual.txt for more information.
+
+------------------------------------------------------------------------
+r240 | cras | 2000-05-25 14:34:40 +0000 (Thu, 25 May 2000) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/irc/bot/botnet-connection.c
+   M /irssi/trunk/src/irc/bot/botnet.c
+   M /irssi/trunk/src/irc/bot/botnet.h
+
+If we couldn't connect to any of our uplinks, wait for 5 minutes and
+try again.
+
+------------------------------------------------------------------------
+r239 | cras | 2000-05-25 13:54:43 +0000 (Thu, 25 May 2000) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/core/special-vars.c
+   M /irssi/trunk/src/irc/core/server-setup.c
+
+Unline glib.h tells, g_getenv() doesn't return newly allocated string
+after all..
+
+------------------------------------------------------------------------
+r238 | cras | 2000-05-25 13:29:58 +0000 (Thu, 25 May 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/autogen.sh
+
+s/Gnome/Irssi/g
+
+------------------------------------------------------------------------
+r237 | cras | 2000-05-25 13:27:17 +0000 (Thu, 25 May 2000) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/gui-windows.c
+
+If line didn't have a color change code at the beginning, it could have
+been printed with wrong color.
+
+------------------------------------------------------------------------
+r236 | cras | 2000-05-25 13:15:57 +0000 (Thu, 25 May 2000) | 5 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/irc-server.c
+
+When connecting, USER's second (and third?) parameters sometimes are
+meaningful, server won't let more than one people in from host specified in
+second parameter. Since irssi always set both of these to "-", only one
+Irssi could connect to the server.
+
+------------------------------------------------------------------------
+r235 | cras | 2000-05-25 13:09:22 +0000 (Thu, 25 May 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/server.c
+
+If server's host name lookup fails, don't try to reconnect back to it.
+
+------------------------------------------------------------------------
+r234 | cras | 2000-05-25 12:58:59 +0000 (Thu, 25 May 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc
+   M /irssi/trunk/src/fe-common/irc/.cvsignore
+   M /irssi/trunk/src/irc
+   M /irssi/trunk/src/irc/.cvsignore
+
+irc/irc.c and fe-common/irc/irc-modules.c are generated by configure
+
+------------------------------------------------------------------------
+r233 | cras | 2000-05-25 12:58:14 +0000 (Thu, 25 May 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/commands.c
+   M /irssi/trunk/src/fe-common/irc/completion.c
+
+"/ text" sends "text" to active channel.
+
+------------------------------------------------------------------------
+r232 | cras | 2000-05-25 12:52:38 +0000 (Thu, 25 May 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/server.c
+   M /irssi/trunk/src/irc/dcc/dcc-chat.c
+   M /irssi/trunk/src/irc/dcc/dcc-files.c
+
+With some systems Irssi didn't notice if connect() failed.
+
+------------------------------------------------------------------------
+r231 | cras | 2000-05-25 12:24:09 +0000 (Thu, 25 May 2000) | 4 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/command-history.c
+   M /irssi/trunk/src/fe-text/gui-printtext.c
+
+/set max_textbuffer_lines changed to /set scrollback_lines and
+/set scrollback_hours - this means that keep scrollback usually max.
+x lines, but allow more if the text is newer than n hours.
+
+------------------------------------------------------------------------
+r230 | cras | 2000-05-25 11:30:47 +0000 (Thu, 25 May 2000) | 8 lines
+Changed paths:
+   M /irssi/trunk/configure.in
+   M /irssi/trunk/docs/botnet.txt
+   M /irssi/trunk/src/core/misc.c
+   M /irssi/trunk/src/core/net-nonblock.c
+   M /irssi/trunk/src/core/net-nonblock.h
+   M /irssi/trunk/src/core/network.c
+   M /irssi/trunk/src/core/network.h
+   M /irssi/trunk/src/core/server.c
+   M /irssi/trunk/src/fe-common/irc/Makefile.am
+   M /irssi/trunk/src/fe-common/irc/dcc/fe-dcc.c
+   M /irssi/trunk/src/fe-common/irc/fe-common-irc.c
+   M /irssi/trunk/src/fe-common/irc/flood/fe-flood.c
+   M /irssi/trunk/src/fe-common/irc/notifylist/fe-notifylist.c
+   M /irssi/trunk/src/fe-none/irssi.c
+   M /irssi/trunk/src/fe-text/irssi.c
+   M /irssi/trunk/src/irc/Makefile.am
+   A /irssi/trunk/src/irc/bot
+   A /irssi/trunk/src/irc/bot/.cvsignore
+   A /irssi/trunk/src/irc/bot/Makefile.am
+   A /irssi/trunk/src/irc/bot/bot-commands.c
+   A /irssi/trunk/src/irc/bot/bot-events.c
+   A /irssi/trunk/src/irc/bot/bot-users.c
+   A /irssi/trunk/src/irc/bot/bot-users.h
+   A /irssi/trunk/src/irc/bot/bot.c
+   A /irssi/trunk/src/irc/bot/bot.h
+   A /irssi/trunk/src/irc/bot/botnet-connection.c
+   A /irssi/trunk/src/irc/bot/botnet.c
+   A /irssi/trunk/src/irc/bot/botnet.h
+   A /irssi/trunk/src/irc/bot/botnets.sample
+   A /irssi/trunk/src/irc/bot/module.h
+   A /irssi/trunk/src/irc/bot/users.sample
+   M /irssi/trunk/src/irc/core/Makefile.am
+   M /irssi/trunk/src/irc/core/irc-commands.c
+   D /irssi/trunk/src/irc/core/irc-core.h
+   M /irssi/trunk/src/irc/core/modes.c
+   M /irssi/trunk/src/irc/core/modes.h
+   M /irssi/trunk/src/irc/core/nicklist.h
+   M /irssi/trunk/src/irc/core/server-setup.c
+   M /irssi/trunk/src/irc/dcc/dcc.c
+   M /irssi/trunk/src/irc/flood/flood.c
+   D /irssi/trunk/src/irc/irc.c
+   M /irssi/trunk/src/irc/notifylist/notifylist.c
+
+Added bot plugin, it also has almost-functional botnet.
+
+Changed configure.in's functionality so that you could tell what modules you
+want to build in main irssi binary and it will create automatically the .c
+files that need to call the module_init()/deinit() functions.
+
+Fixed several minor things..
+
+------------------------------------------------------------------------
+r229 | cras | 2000-05-25 11:11:23 +0000 (Thu, 25 May 2000) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/fe-events-numeric.c
+
+now other than long nicks in NAMES list were displayed wrong. changed back
+to old behaviour, but added a small kludge..
+
+------------------------------------------------------------------------
+r228 | cras | 2000-05-25 10:59:22 +0000 (Thu, 25 May 2000) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/fe-events-numeric.c
+
+NAMES list crashed with long nicks .. hope it doesn't crash now somewhere
+else :)
+
+------------------------------------------------------------------------
+r227 | cras | 2000-05-19 09:17:53 +0000 (Fri, 19 May 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/printtext.c
+
+timestamp_timeout setting is integer, not boolean
+
+------------------------------------------------------------------------
+r226 | cras | 2000-05-18 08:46:56 +0000 (Thu, 18 May 2000) | 3 lines
+Changed paths:
+   M /irssi/trunk/docs/signals.txt
+   M /irssi/trunk/src/core/log.c
+   M /irssi/trunk/src/fe-common/core/fe-log.c
+   M /irssi/trunk/src/fe-common/core/module-formats.c
+   M /irssi/trunk/src/fe-text/gui-printtext.c
+   M /irssi/trunk/src/fe-text/gui-windows.c
+   M /irssi/trunk/src/irc/core/ignore.c
+   M /irssi/trunk/src/irc/core/irc-log.c
+   M /irssi/trunk/src/irc/core/query.c
+   M /irssi/trunk/src/irc/flood/flood.c
+
+Some logging fixes. Flood checking had a memory leak. Query had a small
+memory leak. Text buffer fixes.
+
+------------------------------------------------------------------------
+r225 | cras | 2000-05-17 09:42:31 +0000 (Wed, 17 May 2000) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/modes.c
+
+/mode #channel -k key now removes the "+k" mode too instead of just setting
+the channel key to NULL.
+
+------------------------------------------------------------------------
+r224 | cras | 2000-05-17 09:32:46 +0000 (Wed, 17 May 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/irc-commands.c
+
+/PART <message> displays the whole message now, not just the first word
+
+------------------------------------------------------------------------
+r223 | cras | 2000-05-15 15:32:27 +0000 (Mon, 15 May 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/fe-ctcp.c
+
+Also print the "CTCP TIME received" to screen :)
+
+------------------------------------------------------------------------
+r222 | cras | 2000-05-15 15:22:28 +0000 (Mon, 15 May 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/ctcp.c
+
+Irssi will reply to CTCP TIME request.
+
+------------------------------------------------------------------------
+r221 | kloczek | 2000-05-15 15:22:20 +0000 (Mon, 15 May 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/po/de.po
+   M /irssi/trunk/po/fi.po
+   M /irssi/trunk/po/fr.po
+   M /irssi/trunk/po/pl.po
+   M /irssi/trunk/po/pt_BR.po
+
+- update all po files.
+
+------------------------------------------------------------------------
+r220 | kloczek | 2000-05-15 15:21:34 +0000 (Mon, 15 May 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/configure.in
+   A /irssi/trunk/po/de.po
+   A /irssi/trunk/po/fi.po
+   A /irssi/trunk/po/fr.po
+   A /irssi/trunk/po/pl.po
+   A /irssi/trunk/po/pt_BR.po
+
+- back all .po files and fill back ALL_LIGUAS variable.
+
+------------------------------------------------------------------------
+r219 | cras | 2000-05-15 14:25:36 +0000 (Mon, 15 May 2000) | 4 lines
+Changed paths:
+   D /irssi/trunk/po/de.po
+   D /irssi/trunk/po/fi.po
+   D /irssi/trunk/po/fr.po
+   D /irssi/trunk/po/pl.po
+   D /irssi/trunk/po/pt_BR.po
+
+removed pot files since they only give warnings when running autogen.sh - if
+they're needed back they're always in irssi 0.7.28 sources or in cvs's
+history..
+
+------------------------------------------------------------------------
+r218 | cras | 2000-05-15 14:22:34 +0000 (Mon, 15 May 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/module-formats.c
+   M /irssi/trunk/src/fe-common/core/printtext.c
+
+bugfix
+
+------------------------------------------------------------------------
+r217 | cras | 2000-05-15 08:40:46 +0000 (Mon, 15 May 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/module-formats.c
+
+bugfix
+
+------------------------------------------------------------------------
+r216 | cras | 2000-05-15 08:25:45 +0000 (Mon, 15 May 2000) | 7 lines
+Changed paths:
+   M /irssi/trunk/TODO
+   M /irssi/trunk/configure.in
+   M /irssi/trunk/curses.m4
+   M /irssi/trunk/src/core/commands.c
+   M /irssi/trunk/src/core/commands.h
+   M /irssi/trunk/src/core/core.c
+   M /irssi/trunk/src/core/memdebug.c
+   M /irssi/trunk/src/core/settings.c
+   M /irssi/trunk/src/core/settings.h
+   M /irssi/trunk/src/fe-common/core/Makefile.am
+   M /irssi/trunk/src/fe-common/core/fe-common-core.c
+   M /irssi/trunk/src/fe-common/core/fe-core-commands.c
+   M /irssi/trunk/src/fe-common/core/fe-log.c
+   M /irssi/trunk/src/fe-common/core/hilight-text.c
+   M /irssi/trunk/src/fe-common/core/keyboard.c
+   M /irssi/trunk/src/fe-common/core/module-formats.c
+   M /irssi/trunk/src/fe-common/core/module-formats.h
+   D /irssi/trunk/src/fe-common/core/printformat.h
+   M /irssi/trunk/src/fe-common/core/printtext.c
+   M /irssi/trunk/src/fe-common/core/printtext.h
+   M /irssi/trunk/src/fe-common/core/themes.c
+   M /irssi/trunk/src/fe-common/core/themes.h
+   M /irssi/trunk/src/fe-common/core/window-activity.c
+   A /irssi/trunk/src/fe-common/core/window-commands.c
+   M /irssi/trunk/src/fe-common/core/window-items.c
+   M /irssi/trunk/src/fe-common/core/window-items.h
+   M /irssi/trunk/src/fe-common/core/windows.c
+   M /irssi/trunk/src/fe-common/core/windows.h
+   M /irssi/trunk/src/fe-common/irc/dcc/Makefile.am
+   M /irssi/trunk/src/fe-common/irc/dcc/fe-dcc.c
+   M /irssi/trunk/src/fe-common/irc/dcc/module-formats.c
+   M /irssi/trunk/src/fe-common/irc/dcc/module-formats.h
+   A /irssi/trunk/src/fe-common/irc/dcc/module.h
+   M /irssi/trunk/src/fe-common/irc/fe-common-irc.c
+   M /irssi/trunk/src/fe-common/irc/flood/Makefile.am
+   M /irssi/trunk/src/fe-common/irc/flood/fe-flood.c
+   M /irssi/trunk/src/fe-common/irc/flood/module-formats.c
+   M /irssi/trunk/src/fe-common/irc/flood/module-formats.h
+   A /irssi/trunk/src/fe-common/irc/flood/module.h
+   M /irssi/trunk/src/fe-common/irc/module-formats.c
+   M /irssi/trunk/src/fe-common/irc/module-formats.h
+   M /irssi/trunk/src/fe-common/irc/notifylist/Makefile.am
+   M /irssi/trunk/src/fe-common/irc/notifylist/fe-notifylist.c
+   M /irssi/trunk/src/fe-common/irc/notifylist/module-formats.c
+   M /irssi/trunk/src/fe-common/irc/notifylist/module-formats.h
+   A /irssi/trunk/src/fe-common/irc/notifylist/module.h
+   M /irssi/trunk/src/fe-text/gui-printtext.c
+   M /irssi/trunk/src/fe-text/gui-windows.c
+   M /irssi/trunk/src/fe-text/gui-windows.h
+   M /irssi/trunk/src/fe-text/irssi.c
+   M /irssi/trunk/src/fe-text/mainwindows.c
+   M /irssi/trunk/src/fe-text/module-formats.c
+   M /irssi/trunk/src/fe-text/module-formats.h
+   M /irssi/trunk/src/irc/core/Makefile.am
+   M /irssi/trunk/src/irc/core/channel-events.c
+   A /irssi/trunk/src/irc/core/channel-rejoin.c
+   M /irssi/trunk/src/irc/core/channels.c
+   M /irssi/trunk/src/irc/core/irc-log.c
+   M /irssi/trunk/src/irc/core/irc-server.h
+   M /irssi/trunk/src/irc/core/server-setup.c
+   M /irssi/trunk/src/irc/dcc/dcc-chat.c
+   M /irssi/trunk/src/irc/dcc/dcc-files.c
+   M /irssi/trunk/src/perl/irssi-perl.c
+
+Lots of changes again. Biggest ones:
+- window's text buffer should work better
+- themes are almost working, you can change the text formats with /format
+- automatically try to rejoin the channel after 5 minutes if the join there
+failed because it was "temporarily unavailable" (netsplits)
+- generally cleaning code..
+
+------------------------------------------------------------------------
+r215 | cras | 2000-05-12 15:37:34 +0000 (Fri, 12 May 2000) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/fe-ctcp.c
+   M /irssi/trunk/src/fe-common/irc/module-formats.c
+   M /irssi/trunk/src/fe-common/irc/module-formats.h
+
+Display CTCP REPLY in a channel with a different text format than private
+CTCP replies
+
+------------------------------------------------------------------------
+r214 | cras | 2000-05-10 13:59:03 +0000 (Wed, 10 May 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk
+   M /irssi/trunk/.cvsignore
+
+added irssi-config
+
+------------------------------------------------------------------------
+r213 | cras | 2000-05-10 13:57:42 +0000 (Wed, 10 May 2000) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/core/log.c
+   M /irssi/trunk/src/core/settings.h
+   M /irssi/trunk/src/fe-common/core/hilight-text.c
+   M /irssi/trunk/src/fe-common/core/keyboard.c
+   M /irssi/trunk/src/irc/core/channels-setup.c
+   M /irssi/trunk/src/irc/core/ignore.c
+   M /irssi/trunk/src/irc/core/server-setup.c
+   M /irssi/trunk/src/irc/notifylist/notify-setup.c
+   M /irssi/trunk/src/lib-config/get.c
+   M /irssi/trunk/src/lib-config/iconfig.h
+   M /irssi/trunk/src/lib-config/parse.c
+   M /irssi/trunk/src/lib-config/set.c
+
+iconfig's caching was a bit buggy - it didn't notice if some config node was
+removed.
+
+------------------------------------------------------------------------
+r212 | cras | 2000-05-10 13:01:26 +0000 (Wed, 10 May 2000) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/statusbar-items.c
+
+If lag checking period was long, Irssi displayed the (??) until the lag was
+checked again.
+
+------------------------------------------------------------------------
+r211 | cras | 2000-05-10 12:47:22 +0000 (Wed, 10 May 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/fe-netsplit.c
+   M /irssi/trunk/src/fe-common/irc/module-formats.c
+   M /irssi/trunk/src/irc/core/netsplit.c
+
+Netsplit displays the IRC network where it happened
+
+------------------------------------------------------------------------
+r210 | cras | 2000-05-10 12:38:00 +0000 (Wed, 10 May 2000) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/gui-textwidget.c
+   M /irssi/trunk/src/fe-text/gui-windows.c
+
+/LAST didn't work when window's max. number of lines was full + a few
+cleanups.
+
+------------------------------------------------------------------------
+r209 | cras | 2000-05-10 11:32:21 +0000 (Wed, 10 May 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/dcc/dcc-files.c
+
+DCC SEND fixed
+
+------------------------------------------------------------------------
+r208 | cras | 2000-05-10 11:31:24 +0000 (Wed, 10 May 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/server-setup.c
+
+IRCNet specific nick name wasn't used
+
+------------------------------------------------------------------------
+r207 | cras | 2000-05-10 11:29:55 +0000 (Wed, 10 May 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/modes.c
+
+/MODE was buggy
+
+------------------------------------------------------------------------
+r206 | cras | 2000-05-10 10:00:01 +0000 (Wed, 10 May 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/windows.c
+
+A few more bugfixes to make /window prev work.. :)
+
+------------------------------------------------------------------------
+r205 | cras | 2000-05-10 09:26:39 +0000 (Wed, 10 May 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/windows.c
+
+/window prev didn't work because of small "typo".
+
+------------------------------------------------------------------------
+r204 | cras | 2000-05-09 13:24:13 +0000 (Tue, 09 May 2000) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/windows.c
+
+window next in last window jumps to first window
+window prev in first window jumps to last window
+
+------------------------------------------------------------------------
+r203 | cras | 2000-05-09 13:14:07 +0000 (Tue, 09 May 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/hilight-text.c
+
+/dehilight fixes
+
+------------------------------------------------------------------------
+r202 | cras | 2000-05-09 12:55:38 +0000 (Tue, 09 May 2000) | 4 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/gui-readline.c
+
+Ctrl-D = delete
+Ctrl-K = erase the rest of the line
+(patches by Tommi Komulainen)
+
+------------------------------------------------------------------------
+r201 | cras | 2000-05-09 12:53:54 +0000 (Tue, 09 May 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/flood/flood.c
+
+typo fixed
+
+------------------------------------------------------------------------
+r200 | cras | 2000-05-09 11:42:42 +0000 (Tue, 09 May 2000) | 5 lines
+Changed paths:
+   M /irssi/trunk/Makefile.am
+   M /irssi/trunk/acconfig.h
+   M /irssi/trunk/autogen.sh
+   M /irssi/trunk/configure.in
+   A /irssi/trunk/curses.m4
+   A /irssi/trunk/irssi-config.in
+   D /irssi/trunk/irssi.desktop
+   D /irssi/trunk/irssi.gnorba
+   M /irssi/trunk/servertest/Makefile.am
+   M /irssi/trunk/servertest/server.c
+   M /irssi/trunk/src/Makefile.am
+   M /irssi/trunk/src/core/commands.c
+   M /irssi/trunk/src/core/misc.c
+   M /irssi/trunk/src/core/settings.h
+   M /irssi/trunk/src/core/special-vars.c
+   M /irssi/trunk/src/fe-common/core/module-formats.h
+   A /irssi/trunk/src/fe-common/core/printformat.h
+   M /irssi/trunk/src/fe-common/core/printtext.h
+   M /irssi/trunk/src/fe-common/core/windows.c
+   M /irssi/trunk/src/fe-common/core/windows.h
+   M /irssi/trunk/src/fe-common/irc/dcc/module-formats.h
+   M /irssi/trunk/src/fe-common/irc/fe-ctcp.c
+   M /irssi/trunk/src/fe-common/irc/flood/module-formats.h
+   M /irssi/trunk/src/fe-common/irc/module-formats.h
+   M /irssi/trunk/src/fe-common/irc/notifylist/module-formats.h
+   M /irssi/trunk/src/fe-none/Makefile.am
+   M /irssi/trunk/src/fe-text/Makefile.am
+   D /irssi/trunk/src/fe-text/gui-statusbar.c
+   M /irssi/trunk/src/fe-text/module-formats.h
+   M /irssi/trunk/src/fe-text/screen.h
+   M /irssi/trunk/src/fe-text/statusbar.c
+   M /irssi/trunk/src/irc/core/irc.h
+   M /irssi/trunk/src/lib-config/iconfig.h
+   M /irssi/trunk/src/lib-config/set.c
+
+- Compiling fixes
+- GNOME version isn't anymore build here so you don't need all that GTK and
+GNOME crap to compile irssi-text.
+- Some fixes to compile with -ansi -pedantic
+
+------------------------------------------------------------------------
+r199 | cras | 2000-05-05 22:34:46 +0000 (Fri, 05 May 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/module-formats.c
+   M /irssi/trunk/src/fe-common/core/module-formats.h
+   M /irssi/trunk/src/fe-common/core/windows.c
+
+Removed the "No such window" message - it was annoying :)
+
+------------------------------------------------------------------------
+r198 | cras | 2000-05-05 20:15:57 +0000 (Fri, 05 May 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/fe-log.c
+
+Fixed a crash
+
+------------------------------------------------------------------------
+r197 | cras | 2000-05-04 10:32:42 +0000 (Thu, 04 May 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/NEWS
+   M /irssi/trunk/README
+   M /irssi/trunk/TODO
+   M /irssi/trunk/config
+   M /irssi/trunk/configure.in
+   A /irssi/trunk/docs/manual.txt
+   M /irssi/trunk/docs/signals.txt
+   M /irssi/trunk/docs/special_vars.txt
+   M /irssi/trunk/po/POTFILES.in
+   M /irssi/trunk/src/common-setup.h
+   M /irssi/trunk/src/core/levels.c
+   M /irssi/trunk/src/core/levels.h
+   M /irssi/trunk/src/core/server.c
+   M /irssi/trunk/src/core/settings.c
+   M /irssi/trunk/src/fe-common/core/Makefile.am
+   M /irssi/trunk/src/fe-common/core/autorun.c
+   M /irssi/trunk/src/fe-common/core/command-history.c
+   M /irssi/trunk/src/fe-common/core/fe-common-core.c
+   M /irssi/trunk/src/fe-common/core/fe-core-commands.c
+   M /irssi/trunk/src/fe-common/core/fe-log.c
+   M /irssi/trunk/src/fe-common/core/fe-server.c
+   M /irssi/trunk/src/fe-common/core/fe-settings.c
+   M /irssi/trunk/src/fe-common/core/hilight-text.c
+   M /irssi/trunk/src/fe-common/core/module-formats.c
+   M /irssi/trunk/src/fe-common/core/module-formats.h
+   D /irssi/trunk/src/fe-common/core/nick-hilight.c
+   M /irssi/trunk/src/fe-common/core/printtext.c
+   M /irssi/trunk/src/fe-common/core/printtext.h
+   A /irssi/trunk/src/fe-common/core/window-activity.c
+   M /irssi/trunk/src/fe-common/core/windows.c
+   M /irssi/trunk/src/fe-common/core/windows.h
+   M /irssi/trunk/src/fe-common/irc/Makefile.am
+   M /irssi/trunk/src/fe-common/irc/dcc/module-formats.h
+   M /irssi/trunk/src/fe-common/irc/fe-channels.c
+   M /irssi/trunk/src/fe-common/irc/fe-common-irc.c
+   M /irssi/trunk/src/fe-common/irc/fe-events-numeric.c
+   M /irssi/trunk/src/fe-common/irc/fe-events.c
+   M /irssi/trunk/src/fe-common/irc/fe-ignore.c
+   M /irssi/trunk/src/fe-common/irc/fe-irc-commands.c
+   A /irssi/trunk/src/fe-common/irc/fe-irc-server.c
+   A /irssi/trunk/src/fe-common/irc/fe-netsplit.c
+   M /irssi/trunk/src/fe-common/irc/fe-query.c
+   D /irssi/trunk/src/fe-common/irc/irc-nick-hilight.c
+   A /irssi/trunk/src/fe-common/irc/irc-window-activity.c
+   M /irssi/trunk/src/fe-common/irc/module-formats.c
+   M /irssi/trunk/src/fe-common/irc/module-formats.h
+   M /irssi/trunk/src/fe-none
+   M /irssi/trunk/src/fe-none/.cvsignore
+   M /irssi/trunk/src/fe-text/Makefile.am
+   M /irssi/trunk/src/fe-text/gui-entry.c
+   M /irssi/trunk/src/fe-text/gui-entry.h
+   D /irssi/trunk/src/fe-text/gui-mainwindows.c
+   D /irssi/trunk/src/fe-text/gui-mainwindows.h
+   M /irssi/trunk/src/fe-text/gui-printtext.c
+   M /irssi/trunk/src/fe-text/gui-readline.c
+   D /irssi/trunk/src/fe-text/gui-statusbar-items.c
+   D /irssi/trunk/src/fe-text/gui-statusbar-items.h
+   D /irssi/trunk/src/fe-text/gui-statusbar.h
+   M /irssi/trunk/src/fe-text/gui-textwidget.c
+   M /irssi/trunk/src/fe-text/gui-windows.c
+   M /irssi/trunk/src/fe-text/gui-windows.h
+   M /irssi/trunk/src/fe-text/irssi.c
+   A /irssi/trunk/src/fe-text/mainwindows.c
+   A /irssi/trunk/src/fe-text/mainwindows.h
+   M /irssi/trunk/src/fe-text/module-formats.c
+   M /irssi/trunk/src/fe-text/module-formats.h
+   M /irssi/trunk/src/fe-text/screen.c
+   A /irssi/trunk/src/fe-text/statusbar-items.c
+   A /irssi/trunk/src/fe-text/statusbar.c
+   A /irssi/trunk/src/fe-text/statusbar.h
+   M /irssi/trunk/src/irc/core/bans.c
+   M /irssi/trunk/src/irc/core/channel-events.c
+   M /irssi/trunk/src/irc/core/channels-query.c
+   M /irssi/trunk/src/irc/core/channels-setup.c
+   M /irssi/trunk/src/irc/core/channels-setup.h
+   M /irssi/trunk/src/irc/core/channels.c
+   M /irssi/trunk/src/irc/core/channels.h
+   M /irssi/trunk/src/irc/core/ctcp.c
+   M /irssi/trunk/src/irc/core/ignore.c
+   M /irssi/trunk/src/irc/core/irc-commands.c
+   M /irssi/trunk/src/irc/core/irc-log.c
+   M /irssi/trunk/src/irc/core/irc-server.c
+   M /irssi/trunk/src/irc/core/irc-server.h
+   M /irssi/trunk/src/irc/core/irc.c
+   M /irssi/trunk/src/irc/core/ircnet-setup.c
+   M /irssi/trunk/src/irc/core/massjoin.c
+   M /irssi/trunk/src/irc/core/modes.c
+   M /irssi/trunk/src/irc/core/netsplit.c
+   M /irssi/trunk/src/irc/core/netsplit.h
+   M /irssi/trunk/src/irc/core/nicklist.c
+   M /irssi/trunk/src/irc/core/nicklist.h
+   M /irssi/trunk/src/irc/core/server-reconnect.c
+   M /irssi/trunk/src/irc/core/server-setup.c
+   M /irssi/trunk/src/irc/core/server-setup.h
+   M /irssi/trunk/src/irc/dcc/Makefile.am
+   M /irssi/trunk/src/irc/dcc/dcc-chat.c
+   D /irssi/trunk/src/irc/dcc/dcc-chat.h
+   M /irssi/trunk/src/irc/dcc/dcc-files.c
+   D /irssi/trunk/src/irc/dcc/dcc-files.h
+   M /irssi/trunk/src/irc/dcc/dcc.c
+   M /irssi/trunk/src/irc/flood/autoignore.c
+   M /irssi/trunk/src/irc/flood/flood.c
+   M /irssi/trunk/src/irc/notifylist/notify-commands.c
+   M /irssi/trunk/src/irc/notifylist/notify-whois.c
+   M /irssi/trunk/src/perl/irssi-perl.c
+   M /irssi/trunk/src/perl/xs/Irssi-core.xs
+   M /irssi/trunk/src/perl/xs/Irssi-netsplit.xs
+   M /irssi/trunk/src/perl/xs/Irssi-server.xs
+   M /irssi/trunk/src/perl/xs/module.h
+   M /irssi/trunk/src/perl/xs/typemap
+
+.. lots of changes ..
+
+------------------------------------------------------------------------
+r196 | cras | 2000-04-28 11:00:53 +0000 (Fri, 28 Apr 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/scripts/autorejoin.pl
+
+It tried to autorejoin back to channel even if someone else was kicked..
+
+------------------------------------------------------------------------
+r195 | cras | 2000-04-28 09:16:14 +0000 (Fri, 28 Apr 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/perl/xs/Irssi-window.xs
+
+Implemented Irssi::Window::command(), Irssi::Windowitem::command()
+
+------------------------------------------------------------------------
+r194 | cras | 2000-04-28 09:02:44 +0000 (Fri, 28 Apr 2000) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/fe-events-numeric.c
+   M /irssi/trunk/src/irc/core/bans.c
+   M /irssi/trunk/src/irc/core/ctcp.c
+   M /irssi/trunk/src/irc/core/modes.c
+
+/ban and /invite crashed, /mode didn't work. ctcp.c doesn't need
+irssi-version.h
+
+------------------------------------------------------------------------
+r193 | cras | 2000-04-28 08:33:34 +0000 (Fri, 28 Apr 2000) | 3 lines
+Changed paths:
+   M /irssi/trunk/configure.in
+   M /irssi/trunk/po/POTFILES.in
+
+Updated pot files - now that there's no working gnome version the pot file
+is only 92 lines :)
+
+------------------------------------------------------------------------
+r192 | cras | 2000-04-28 08:25:53 +0000 (Fri, 28 Apr 2000) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/core/module-formats.c
+   M /irssi/trunk/src/fe-common/irc/dcc/module-formats.c
+   M /irssi/trunk/src/fe-common/irc/flood/module-formats.c
+   M /irssi/trunk/src/fe-common/irc/module-formats.c
+   M /irssi/trunk/src/fe-common/irc/notifylist/module-formats.c
+   M /irssi/trunk/src/fe-text/module-formats.c
+
+Removed the N_() from module formats, the internationalization should be
+done in theme files instead of in pot files..
+
+------------------------------------------------------------------------
+r191 | cras | 2000-04-28 08:07:42 +0000 (Fri, 28 Apr 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/configure.in
+   M /irssi/trunk/docs/signals.txt
+   M /irssi/trunk/src/Makefile.am
+   M /irssi/trunk/src/core/rawlog.c
+   M /irssi/trunk/src/core/rawlog.h
+   M /irssi/trunk/src/fe-common/core/fe-common-core.c
+   M /irssi/trunk/src/fe-common/core/fe-log.c
+   M /irssi/trunk/src/fe-common/core/module-formats.c
+   M /irssi/trunk/src/fe-common/core/module-formats.h
+   M /irssi/trunk/src/fe-common/core/printtext.c
+   M /irssi/trunk/src/fe-common/core/printtext.h
+   M /irssi/trunk/src/fe-common/irc/fe-events.c
+   M /irssi/trunk/src/fe-none/irssi.c
+   M /irssi/trunk/src/fe-text/irssi.c
+   M /irssi/trunk/src/irc/notifylist/notify-ison.c
+   M /irssi/trunk/src/irc/notifylist/notifylist.c
+   M /irssi/trunk/src/irc/notifylist/notifylist.h
+   M /irssi/trunk/src/perl
+   A /irssi/trunk/src/perl/.cvsignore
+   M /irssi/trunk/src/perl/Makefile.am
+   M /irssi/trunk/src/perl/get-signals.pl
+   M /irssi/trunk/src/perl/irssi-perl.c
+   D /irssi/trunk/src/perl/irssi-perl.h
+   M /irssi/trunk/src/perl/xs
+   A /irssi/trunk/src/perl/xs/.cvsignore
+   A /irssi/trunk/src/perl/xs/Irssi-bans.xs
+   A /irssi/trunk/src/perl/xs/Irssi-channel.xs
+   A /irssi/trunk/src/perl/xs/Irssi-core.xs
+   A /irssi/trunk/src/perl/xs/Irssi-dcc.xs
+   A /irssi/trunk/src/perl/xs/Irssi-flood.xs
+   A /irssi/trunk/src/perl/xs/Irssi-ignore.xs
+   A /irssi/trunk/src/perl/xs/Irssi-log.xs
+   A /irssi/trunk/src/perl/xs/Irssi-masks.xs
+   A /irssi/trunk/src/perl/xs/Irssi-modes.xs
+   A /irssi/trunk/src/perl/xs/Irssi-netsplit.xs
+   A /irssi/trunk/src/perl/xs/Irssi-notifylist.xs
+   A /irssi/trunk/src/perl/xs/Irssi-query.xs
+   A /irssi/trunk/src/perl/xs/Irssi-rawlog.xs
+   A /irssi/trunk/src/perl/xs/Irssi-server.xs
+   A /irssi/trunk/src/perl/xs/Irssi-settings.xs
+   A /irssi/trunk/src/perl/xs/Irssi-window.xs
+   M /irssi/trunk/src/perl/xs/Irssi.xs
+   M /irssi/trunk/src/perl/xs/Makefile.PL.in
+   A /irssi/trunk/src/perl/xs/module.h
+   M /irssi/trunk/src/perl/xs/typemap
+
+Perl working again, better than ever (unless there's bugs :)
+
+------------------------------------------------------------------------
+r190 | cras | 2000-04-27 12:21:37 +0000 (Thu, 27 Apr 2000) | 5 lines
+Changed paths:
+   M /irssi/trunk/src/core/commands.h
+
+If we return with cmd_param_error() or cmd_return_error(), call
+signal_stop() so if the command is bound multiple times (like core, which
+does the functionality and fe-common which prints the texts) it won't print
+the error message ever twice.
+
+------------------------------------------------------------------------
+r189 | cras | 2000-04-27 12:10:38 +0000 (Thu, 27 Apr 2000) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/fe-events-numeric.c
+   M /irssi/trunk/src/fe-common/irc/module-formats.c
+   M /irssi/trunk/src/fe-common/irc/module-formats.h
+
+after doing /INVITE nick #channel - instead of printing just "nick #channel",
+print "Inviting nick to #channel"
+
+------------------------------------------------------------------------
+r188 | cras | 2000-04-27 12:02:54 +0000 (Thu, 27 Apr 2000) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/fe-events.c
+
+show_quit_once displayed the quit window always in active window. now
+it's displayed in first window that contains a channel where the nick was.
+
+------------------------------------------------------------------------
+r187 | cras | 2000-04-27 11:48:05 +0000 (Thu, 27 Apr 2000) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/gui-windows.c
+
+Setting window's prompt didn't check that the window was active -> some
+other window's prompt could sometime appear in screen.
+
+------------------------------------------------------------------------
+r186 | cras | 2000-04-27 11:45:50 +0000 (Thu, 27 Apr 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk
+   M /irssi/trunk/.cvsignore
+   M /irssi/trunk/src/fe-common
+   A /irssi/trunk/src/fe-common/.cvsignore
+   M /irssi/trunk/src/fe-text
+   M /irssi/trunk/src/fe-text/.cvsignore
+
+updates
+
+------------------------------------------------------------------------
+r185 | cras | 2000-04-27 11:44:55 +0000 (Thu, 27 Apr 2000) | 4 lines
+Changed paths:
+   M /irssi/trunk/config
+   M /irssi/trunk/src/fe-common/irc/fe-irc-commands.c
+
+updated aliases, added #irssi/efnet
+
+/BANSTAT -> /BAN
+
+------------------------------------------------------------------------
+r184 | cras | 2000-04-27 11:38:52 +0000 (Thu, 27 Apr 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/channels-query.c
+
+Fixes for servers that replied to WHO #a,#b with 403 message.
+
+------------------------------------------------------------------------
+r183 | cras | 2000-04-27 10:31:14 +0000 (Thu, 27 Apr 2000) | 5 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/Makefile.am
+   D /irssi/trunk/src/irc/core/channel-events.h
+   D /irssi/trunk/src/irc/core/channels-query.h
+   M /irssi/trunk/src/irc/core/channels.c
+   D /irssi/trunk/src/irc/core/irc-commands.h
+   M /irssi/trunk/src/irc/core/irc-core.c
+   M /irssi/trunk/src/irc/core/irc-log.c
+   D /irssi/trunk/src/irc/core/irc-rawlog.h
+   D /irssi/trunk/src/irc/core/irc-special-vars.h
+   D /irssi/trunk/src/irc/core/lag.h
+   D /irssi/trunk/src/irc/core/massjoin.h
+   M /irssi/trunk/src/irc/core/nicklist.c
+
+Removed several header files that only had xxx_init(); xxx_deinit(); - moved
+them to the .c file where they were called.
+
+nicklist didn't notice nick changes right.
+
+------------------------------------------------------------------------
+r182 | cras | 2000-04-27 09:48:06 +0000 (Thu, 27 Apr 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/channels-query.c
+
+joining to multiple channels at once crashed
+
+------------------------------------------------------------------------
+r181 | cras | 2000-04-27 09:19:34 +0000 (Thu, 27 Apr 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/irc-core.c
+   M /irssi/trunk/src/irc/core/query.h
+
+missing query_init(), query_deinit()
+
+------------------------------------------------------------------------
+r180 | cras | 2000-04-27 08:05:51 +0000 (Thu, 27 Apr 2000) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/fe-irc-commands.c
+   M /irssi/trunk/src/fe-text/gui-statusbar-items.c
+
+Query: sending msg displayed msg[nick] instead of the plain <nick>
+Nick's address didn't show up in topic bar
+
+------------------------------------------------------------------------
+r179 | cras | 2000-04-26 10:22:52 +0000 (Wed, 26 Apr 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-text/gui-readline.c
+
+Delete key works again
+
+------------------------------------------------------------------------
+r178 | cras | 2000-04-26 10:19:57 +0000 (Wed, 26 Apr 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/server-reconnect.c
+
+same user mode problem fixed with reconnects
+
+------------------------------------------------------------------------
+r177 | cras | 2000-04-26 10:13:29 +0000 (Wed, 26 Apr 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/irc/core/irc-server.c
+
+crashed with servers that didn't automatically set any user mode
+
+------------------------------------------------------------------------
+r176 | cras | 2000-04-26 09:43:45 +0000 (Wed, 26 Apr 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core
+   A /irssi/trunk/src/core/.cvsignore
+   M /irssi/trunk/src/fe-common/core
+   A /irssi/trunk/src/fe-common/core/.cvsignore
+   M /irssi/trunk/src/fe-common/irc
+   A /irssi/trunk/src/fe-common/irc/.cvsignore
+   M /irssi/trunk/src/fe-common/irc/dcc
+   A /irssi/trunk/src/fe-common/irc/dcc/.cvsignore
+   M /irssi/trunk/src/fe-common/irc/flood
+   A /irssi/trunk/src/fe-common/irc/flood/.cvsignore
+   M /irssi/trunk/src/fe-common/irc/notifylist
+   A /irssi/trunk/src/fe-common/irc/notifylist/.cvsignore
+   M /irssi/trunk/src/fe-none
+   A /irssi/trunk/src/fe-none/.cvsignore
+   M /irssi/trunk/src/fe-text
+   A /irssi/trunk/src/fe-text/.cvsignore
+   M /irssi/trunk/src/irc
+   A /irssi/trunk/src/irc/.cvsignore
+   M /irssi/trunk/src/irc/core
+   A /irssi/trunk/src/irc/core/.cvsignore
+   M /irssi/trunk/src/irc/dcc
+   A /irssi/trunk/src/irc/dcc/.cvsignore
+   M /irssi/trunk/src/irc/flood
+   A /irssi/trunk/src/irc/flood/.cvsignore
+   M /irssi/trunk/src/irc/notifylist
+   A /irssi/trunk/src/irc/notifylist/.cvsignore
+   D /irssi/trunk/src/perl/perl-signals.h
+
+updates
+
+------------------------------------------------------------------------
+r175 | cras | 2000-04-26 09:37:31 +0000 (Wed, 26 Apr 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/core/settings.c
+   M /irssi/trunk/src/core/signals.c
+
+fixes
+
+------------------------------------------------------------------------
+r174 | cras | 2000-04-26 09:19:03 +0000 (Wed, 26 Apr 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/fe-common/irc/dcc/fe-dcc.c
+   M /irssi/trunk/src/fe-common/irc/dcc/module-formats.c
+   M /irssi/trunk/src/fe-common/irc/dcc/module-formats.h
+
+fixed
+
+------------------------------------------------------------------------
+r173 | cras | 2000-04-26 08:11:21 +0000 (Wed, 26 Apr 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/docs/Makefile.am
+   A /irssi/trunk/docs/commands.txt
+   A /irssi/trunk/docs/design.txt
+   A /irssi/trunk/docs/formats.txt
+   A /irssi/trunk/docs/perl.txt
+   A /irssi/trunk/docs/signals.txt
+   A /irssi/trunk/docs/special_vars.txt
+
+and the docs
+
+------------------------------------------------------------------------
+r172 | cras | 2000-04-26 08:10:09 +0000 (Wed, 26 Apr 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/Makefile.am
+   M /irssi/trunk/NEWS
+   M /irssi/trunk/README
+   M /irssi/trunk/TODO
+   M /irssi/trunk/autogen.sh
+   M /irssi/trunk/config
+   M /irssi/trunk/configure.in
+   D /irssi/trunk/docs/COMMANDS
+   D /irssi/trunk/docs/FAQ
+   D /irssi/trunk/docs/FORMATS
+   D /irssi/trunk/docs/PERL
+   D /irssi/trunk/docs/SIGNALS
+   D /irssi/trunk/docs/SPECIAL_VARS
+   M /irssi/trunk/src/Makefile.am
+   M /irssi/trunk/src/common-setup.h
+   M /irssi/trunk/src/common.h
+   M /irssi/trunk/src/lib-config/get.c
+   M /irssi/trunk/src/lib-config/iconfig.h
+   M /irssi/trunk/src/lib-config/parse.c
+   M /irssi/trunk/src/lib-config/set.c
+   M /irssi/trunk/src/lib-config/write.c
+   A /irssi/trunk/src/perl
+   A /irssi/trunk/src/perl/Makefile.am
+   A /irssi/trunk/src/perl/get-signals.pl
+   A /irssi/trunk/src/perl/irssi-perl.c
+   A /irssi/trunk/src/perl/irssi-perl.h
+   A /irssi/trunk/src/perl/module.h
+   A /irssi/trunk/src/perl/perl-signals.h
+   A /irssi/trunk/src/perl/xs
+   A /irssi/trunk/src/perl/xs/Irssi.pm
+   A /irssi/trunk/src/perl/xs/Irssi.xs
+   A /irssi/trunk/src/perl/xs/Makefile.PL.in
+   A /irssi/trunk/src/perl/xs/typemap
+   A /irssi/trunk/src/perl/xsinit.c
+
+rest of the ~rewrite?
+
+------------------------------------------------------------------------
+r171 | cras | 2000-04-26 08:03:38 +0000 (Wed, 26 Apr 2000) | 2 lines
+Changed paths:
+   A /irssi/trunk/src/core
+   A /irssi/trunk/src/core/Makefile.am
+   A /irssi/trunk/src/core/args.c
+   A /irssi/trunk/src/core/args.h
+   A /irssi/trunk/src/core/commands.c
+   A /irssi/trunk/src/core/commands.h
+   A /irssi/trunk/src/core/core.c
+   A /irssi/trunk/src/core/core.h
+   A /irssi/trunk/src/core/levels.c
+   A /irssi/trunk/src/core/levels.h
+   A /irssi/trunk/src/core/line-split.c
+   A /irssi/trunk/src/core/line-split.h
+   A /irssi/trunk/src/core/log.c
+   A /irssi/trunk/src/core/log.h
+   A /irssi/trunk/src/core/memdebug.c
+   A /irssi/trunk/src/core/memdebug.h
+   A /irssi/trunk/src/core/misc.c
+   A /irssi/trunk/src/core/misc.h
+   A /irssi/trunk/src/core/module.h
+   A /irssi/trunk/src/core/modules.c
+   A /irssi/trunk/src/core/modules.h
+   A /irssi/trunk/src/core/net-disconnect.c
+   A /irssi/trunk/src/core/net-disconnect.h
+   A /irssi/trunk/src/core/net-internal.h
+   A /irssi/trunk/src/core/net-nonblock.c
+   A /irssi/trunk/src/core/net-nonblock.h
+   A /irssi/trunk/src/core/network.c
+   A /irssi/trunk/src/core/network.h
+   A /irssi/trunk/src/core/pidwait.c
+   A /irssi/trunk/src/core/pidwait.h
+   A /irssi/trunk/src/core/rawlog.c
+   A /irssi/trunk/src/core/rawlog.h
+   A /irssi/trunk/src/core/server-redirect.c
+   A /irssi/trunk/src/core/server-redirect.h
+   A /irssi/trunk/src/core/server.c
+   A /irssi/trunk/src/core/server.h
+   A /irssi/trunk/src/core/settings.c
+   A /irssi/trunk/src/core/settings.h
+   A /irssi/trunk/src/core/signals.c
+   A /irssi/trunk/src/core/signals.h
+   A /irssi/trunk/src/core/special-vars.c
+   A /irssi/trunk/src/core/special-vars.h
+   A /irssi/trunk/src/fe-common
+   A /irssi/trunk/src/fe-common/Makefile.am
+   A /irssi/trunk/src/fe-common/core
+   A /irssi/trunk/src/fe-common/core/Makefile.am
+   A /irssi/trunk/src/fe-common/core/autorun.c
+   A /irssi/trunk/src/fe-common/core/command-history.c
+   A /irssi/trunk/src/fe-common/core/command-history.h
+   A /irssi/trunk/src/fe-common/core/fe-common-core.c
+   A /irssi/trunk/src/fe-common/core/fe-common-core.h
+   A /irssi/trunk/src/fe-common/core/fe-core-commands.c
+   A /irssi/trunk/src/fe-common/core/fe-log.c
+   A /irssi/trunk/src/fe-common/core/fe-server.c
+   A /irssi/trunk/src/fe-common/core/fe-settings.c
+   A /irssi/trunk/src/fe-common/core/hilight-text.c
+   A /irssi/trunk/src/fe-common/core/hilight-text.h
+   A /irssi/trunk/src/fe-common/core/keyboard.c
+   A /irssi/trunk/src/fe-common/core/keyboard.h
+   A /irssi/trunk/src/fe-common/core/module-formats.c
+   A /irssi/trunk/src/fe-common/core/module-formats.h
+   A /irssi/trunk/src/fe-common/core/module.h
+   A /irssi/trunk/src/fe-common/core/nick-hilight.c
+   A /irssi/trunk/src/fe-common/core/printtext.c
+   A /irssi/trunk/src/fe-common/core/printtext.h
+   A /irssi/trunk/src/fe-common/core/themes.c
+   A /irssi/trunk/src/fe-common/core/themes.h
+   A /irssi/trunk/src/fe-common/core/translation.c
+   A /irssi/trunk/src/fe-common/core/translation.h
+   A /irssi/trunk/src/fe-common/core/window-items.c
+   A /irssi/trunk/src/fe-common/core/window-items.h
+   A /irssi/trunk/src/fe-common/core/windows.c
+   A /irssi/trunk/src/fe-common/core/windows.h
+   A /irssi/trunk/src/fe-common/irc
+   A /irssi/trunk/src/fe-common/irc/Makefile.am
+   A /irssi/trunk/src/fe-common/irc/completion.c
+   A /irssi/trunk/src/fe-common/irc/completion.h
+   A /irssi/trunk/src/fe-common/irc/dcc
+   A /irssi/trunk/src/fe-common/irc/dcc/Makefile.am
+   A /irssi/trunk/src/fe-common/irc/dcc/fe-dcc.c
+   A /irssi/trunk/src/fe-common/irc/dcc/module-formats.c
+   A /irssi/trunk/src/fe-common/irc/dcc/module-formats.h
+   A /irssi/trunk/src/fe-common/irc/fe-channels.c
+   A /irssi/trunk/src/fe-common/irc/fe-common-irc.c
+   A /irssi/trunk/src/fe-common/irc/fe-common-irc.h
+   A /irssi/trunk/src/fe-common/irc/fe-ctcp.c
+   A /irssi/trunk/src/fe-common/irc/fe-events-numeric.c
+   A /irssi/trunk/src/fe-common/irc/fe-events.c
+   A /irssi/trunk/src/fe-common/irc/fe-ignore.c
+   A /irssi/trunk/src/fe-common/irc/fe-irc-commands.c
+   A /irssi/trunk/src/fe-common/irc/fe-query.c
+   A /irssi/trunk/src/fe-common/irc/flood
+   A /irssi/trunk/src/fe-common/irc/flood/Makefile.am
+   A /irssi/trunk/src/fe-common/irc/flood/fe-flood.c
+   A /irssi/trunk/src/fe-common/irc/flood/module-formats.c
+   A /irssi/trunk/src/fe-common/irc/flood/module-formats.h
+   A /irssi/trunk/src/fe-common/irc/irc-hilight-text.c
+   A /irssi/trunk/src/fe-common/irc/irc-hilight-text.h
+   A /irssi/trunk/src/fe-common/irc/irc-nick-hilight.c
+   A /irssi/trunk/src/fe-common/irc/module-formats.c
+   A /irssi/trunk/src/fe-common/irc/module-formats.h
+   A /irssi/trunk/src/fe-common/irc/module.h
+   A /irssi/trunk/src/fe-common/irc/notifylist
+   A /irssi/trunk/src/fe-common/irc/notifylist/Makefile.am
+   A /irssi/trunk/src/fe-common/irc/notifylist/fe-notifylist.c
+   A /irssi/trunk/src/fe-common/irc/notifylist/module-formats.c
+   A /irssi/trunk/src/fe-common/irc/notifylist/module-formats.h
+   A /irssi/trunk/src/fe-none
+   A /irssi/trunk/src/fe-none/Makefile.am
+   A /irssi/trunk/src/fe-none/irssi.c
+   A /irssi/trunk/src/fe-none/module.h
+   A /irssi/trunk/src/fe-text
+   A /irssi/trunk/src/fe-text/Makefile.am
+   A /irssi/trunk/src/fe-text/gui-entry.c
+   A /irssi/trunk/src/fe-text/gui-entry.h
+   A /irssi/trunk/src/fe-text/gui-mainwindows.c
+   A /irssi/trunk/src/fe-text/gui-mainwindows.h
+   A /irssi/trunk/src/fe-text/gui-printtext.c
+   A /irssi/trunk/src/fe-text/gui-printtext.h
+   A /irssi/trunk/src/fe-text/gui-readline.c
+   A /irssi/trunk/src/fe-text/gui-readline.h
+   A /irssi/trunk/src/fe-text/gui-special-vars.c
+   A /irssi/trunk/src/fe-text/gui-special-vars.h
+   A /irssi/trunk/src/fe-text/gui-statusbar-items.c
+   A /irssi/trunk/src/fe-text/gui-statusbar-items.h
+   A /irssi/trunk/src/fe-text/gui-statusbar.c
+   A /irssi/trunk/src/fe-text/gui-statusbar.h
+   A /irssi/trunk/src/fe-text/gui-textwidget.c
+   A /irssi/trunk/src/fe-text/gui-textwidget.h
+   A /irssi/trunk/src/fe-text/gui-windows.c
+   A /irssi/trunk/src/fe-text/gui-windows.h
+   A /irssi/trunk/src/fe-text/irssi.c
+   A /irssi/trunk/src/fe-text/module-formats.c
+   A /irssi/trunk/src/fe-text/module-formats.h
+   A /irssi/trunk/src/fe-text/module.h
+   A /irssi/trunk/src/fe-text/screen.c
+   A /irssi/trunk/src/fe-text/screen.h
+   A /irssi/trunk/src/irc
+   A /irssi/trunk/src/irc/Makefile.am
+   A /irssi/trunk/src/irc/core
+   A /irssi/trunk/src/irc/core/Makefile.am
+   A /irssi/trunk/src/irc/core/bans.c
+   A /irssi/trunk/src/irc/core/bans.h
+   A /irssi/trunk/src/irc/core/channel-events.c
+   A /irssi/trunk/src/irc/core/channel-events.h
+   A /irssi/trunk/src/irc/core/channels-query.c
+   A /irssi/trunk/src/irc/core/channels-query.h
+   A /irssi/trunk/src/irc/core/channels-setup.c
+   A /irssi/trunk/src/irc/core/channels-setup.h
+   A /irssi/trunk/src/irc/core/channels.c
+   A /irssi/trunk/src/irc/core/channels.h
+   A /irssi/trunk/src/irc/core/ctcp.c
+   A /irssi/trunk/src/irc/core/ctcp.h
+   A /irssi/trunk/src/irc/core/ignore.c
+   A /irssi/trunk/src/irc/core/ignore.h
+   A /irssi/trunk/src/irc/core/irc-commands.c
+   A /irssi/trunk/src/irc/core/irc-commands.h
+   A /irssi/trunk/src/irc/core/irc-core.c
+   A /irssi/trunk/src/irc/core/irc-core.h
+   A /irssi/trunk/src/irc/core/irc-log.c
+   A /irssi/trunk/src/irc/core/irc-rawlog.c
+   A /irssi/trunk/src/irc/core/irc-rawlog.h
+   A /irssi/trunk/src/irc/core/irc-server.c
+   A /irssi/trunk/src/irc/core/irc-server.h
+   A /irssi/trunk/src/irc/core/irc-special-vars.c
+   A /irssi/trunk/src/irc/core/irc-special-vars.h
+   A /irssi/trunk/src/irc/core/irc.c
+   A /irssi/trunk/src/irc/core/irc.h
+   A /irssi/trunk/src/irc/core/ircnet-setup.c
+   A /irssi/trunk/src/irc/core/ircnet-setup.h
+   A /irssi/trunk/src/irc/core/lag.c
+   A /irssi/trunk/src/irc/core/lag.h
+   A /irssi/trunk/src/irc/core/masks.c
+   A /irssi/trunk/src/irc/core/masks.h
+   A /irssi/trunk/src/irc/core/massjoin.c
+   A /irssi/trunk/src/irc/core/massjoin.h
+   A /irssi/trunk/src/irc/core/mode-lists.c
+   A /irssi/trunk/src/irc/core/mode-lists.h
+   A /irssi/trunk/src/irc/core/modes.c
+   A /irssi/trunk/src/irc/core/modes.h
+   A /irssi/trunk/src/irc/core/module.h
+   A /irssi/trunk/src/irc/core/netsplit.c
+   A /irssi/trunk/src/irc/core/netsplit.h
+   A /irssi/trunk/src/irc/core/nicklist.c
+   A /irssi/trunk/src/irc/core/nicklist.h
+   A /irssi/trunk/src/irc/core/query.c
+   A /irssi/trunk/src/irc/core/query.h
+   A /irssi/trunk/src/irc/core/server-idle.c
+   A /irssi/trunk/src/irc/core/server-idle.h
+   A /irssi/trunk/src/irc/core/server-reconnect.c
+   A /irssi/trunk/src/irc/core/server-reconnect.h
+   A /irssi/trunk/src/irc/core/server-setup.c
+   A /irssi/trunk/src/irc/core/server-setup.h
+   A /irssi/trunk/src/irc/dcc
+   A /irssi/trunk/src/irc/dcc/Makefile.am
+   A /irssi/trunk/src/irc/dcc/dcc-chat.c
+   A /irssi/trunk/src/irc/dcc/dcc-chat.h
+   A /irssi/trunk/src/irc/dcc/dcc-files.c
+   A /irssi/trunk/src/irc/dcc/dcc-files.h
+   A /irssi/trunk/src/irc/dcc/dcc.c
+   A /irssi/trunk/src/irc/dcc/dcc.h
+   A /irssi/trunk/src/irc/dcc/module.h
+   A /irssi/trunk/src/irc/flood
+   A /irssi/trunk/src/irc/flood/Makefile.am
+   A /irssi/trunk/src/irc/flood/autoignore.c
+   A /irssi/trunk/src/irc/flood/autoignore.h
+   A /irssi/trunk/src/irc/flood/flood.c
+   A /irssi/trunk/src/irc/flood/flood.h
+   A /irssi/trunk/src/irc/flood/module.h
+   A /irssi/trunk/src/irc/irc.c
+   A /irssi/trunk/src/irc/notifylist
+   A /irssi/trunk/src/irc/notifylist/Makefile.am
+   A /irssi/trunk/src/irc/notifylist/module.h
+   A /irssi/trunk/src/irc/notifylist/notify-commands.c
+   A /irssi/trunk/src/irc/notifylist/notify-ison.c
+   A /irssi/trunk/src/irc/notifylist/notify-setup.c
+   A /irssi/trunk/src/irc/notifylist/notify-setup.h
+   A /irssi/trunk/src/irc/notifylist/notify-whois.c
+   A /irssi/trunk/src/irc/notifylist/notifylist.c
+   A /irssi/trunk/src/irc/notifylist/notifylist.h
+
+..adding new files..
+
+------------------------------------------------------------------------
+r170 | cras | 2000-04-26 07:50:02 +0000 (Wed, 26 Apr 2000) | 2 lines
+Changed paths:
+   D /irssi/trunk/src/irssi-plugin-gui.h
+   D /irssi/trunk/src/irssi-plugin.h
+
+..still removing..
+
+------------------------------------------------------------------------
+r169 | kloczek | 2000-04-17 10:14:41 +0000 (Mon, 17 Apr 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/po/pl.po
+
+- some updates.
+
+------------------------------------------------------------------------
+r168 | kloczek | 2000-04-17 09:55:34 +0000 (Mon, 17 Apr 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/po/de.po
+   M /irssi/trunk/po/fi.po
+   M /irssi/trunk/po/fr.po
+   M /irssi/trunk/po/pl.po
+   M /irssi/trunk/po/pt_BR.po
+
+- updated all .po files.
+
+------------------------------------------------------------------------
+r167 | kloczek | 2000-04-17 09:55:10 +0000 (Mon, 17 Apr 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/po/POTFILES.in
+
+- removed src/gui-text/setup.c.
+
+------------------------------------------------------------------------
+r166 | kloczek | 2000-04-17 09:37:05 +0000 (Mon, 17 Apr 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/irssi.spec.in
+
+- added pixmaps to %files (irssi have now own icon).
+
+------------------------------------------------------------------------
+r165 | kloczek | 2000-04-17 08:56:11 +0000 (Mon, 17 Apr 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/Makefile.am
+   A /irssi/trunk/irssi-icon.png
+   M /irssi/trunk/irssi.desktop
+
+- added irssi icon to desktop file.
+
+------------------------------------------------------------------------
+r164 | cras | 2000-04-14 12:49:02 +0000 (Fri, 14 Apr 2000) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/lib-config/get.c
+
+section can be NULL - which is same as "". Fixed several functions to allow
+it.
+
+------------------------------------------------------------------------
+r163 | cras | 2000-04-14 11:27:14 +0000 (Fri, 14 Apr 2000) | 49 lines
+Changed paths:
+   M /irssi/trunk/NEWS
+   M /irssi/trunk/README
+   M /irssi/trunk/TODO
+   M /irssi/trunk/config
+   M /irssi/trunk/configure.in
+   M /irssi/trunk/docs/COMMANDS
+   M /irssi/trunk/docs/FORMATS
+   M /irssi/trunk/docs/PERL
+   M /irssi/trunk/docs/SIGNALS
+   A /irssi/trunk/docs/SPECIAL_VARS
+   M /irssi/trunk/irssi.spec.in
+   M /irssi/trunk/src/Makefile.am
+   M /irssi/trunk/src/common-setup.h
+   M /irssi/trunk/src/common.h
+   M /irssi/trunk/src/lib-config/Makefile.am
+   A /irssi/trunk/src/lib-config/get.c
+   A /irssi/trunk/src/lib-config/iconfig.h
+   D /irssi/trunk/src/lib-config/irssi-config.c
+   D /irssi/trunk/src/lib-config/irssi-config.h
+   A /irssi/trunk/src/lib-config/module.h
+   A /irssi/trunk/src/lib-config/parse.c
+   A /irssi/trunk/src/lib-config/set.c
+   A /irssi/trunk/src/lib-config/write.c
+
+Sorry for a big update - I still don't have internet connection at home
+and this is what I've been doing a few weeks now.. :) You really shouldn't
+upgrade to this version without keeping a backup of the working one, since
+this will break everything and at least notify list is broken - probably
+something else too.
+
+* On the way to 0.8.0 .. Major rewriting/rearranging code. There's
+  some changes in behaviour because I'm trying to make Irssi a bit
+  more compatible with EPIC.
+
+* libPropList isn't needed anymore - I'm using my own configuration
+  library. This is mostly because different proplists worked a bit
+  differently everywhere and several people had problems with it.
+  It's also yet another extra library that you needed to compile
+  Irssi. New configuration library has several advantages:
+
+  You can add comments to configuration file and they also stay
+  there when it's saved.
+
+  It's not nearly as vulnerable as proplist. If some error occurs,
+  instead of just not reading anything it will try to continue if
+  possible. Also the error messages are written to irssi's text
+  window instead of stdout.
+
+  It can be managed more easily than proplist - setting/getting the
+  configuration is a lot more easier.
+
+* Coding style changes - I'm not using gint, gchar etc. anymore,
+  they're just extra pain when moving code to non-glib projects and
+  syntax hilighting doesn't work by default with most editors ;)
+
+  Indentation style was also changed to K&R because of some political
+  reasons ;) And I'm already starting to like it.. :) It forces me
+  to split code to different functions more often and the result is
+  that the code gets more readable.
+
+  And finally I'm also using nst' all over the place.
+
++ /EVAL <commands> - Expand all the special variables from string and
+  run it. Commands can be split with ; character. See
+  docs/SPECIAL_VARS for more info.
++ Aliases are parsed just like /EVAL - arguments are in $0..$9.
++ Text formats are also parsed like /EVAL, arguments used to be in
+  $1..$9, now they're in $0..$8 so it messes up existing themes..
++ /SET [key [value]] - no more the '=' character. Boolean values
+  also need to be changed with ON/OFF/TOGGLE values (not yes/no).
+  Settings aren't saved to disk until you use /SAVE.
++ /TOGGLE <key> [ON/OFF] - same as /SET <key> TOGGLE
+
+------------------------------------------------------------------------
+r162 | cras | 2000-03-26 16:46:40 +0000 (Sun, 26 Mar 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/configure.in
+
+Check for socklen_t
+
+------------------------------------------------------------------------
+r161 | cras | 2000-03-20 00:45:09 +0000 (Mon, 20 Mar 2000) | 3 lines
+Changed paths:
+   M /irssi/trunk/docs/PERL
+   M /irssi/trunk/docs/SIGNALS
+
+Irssi::Connect = SERVER_CONNECT_REC
+Several fixes to make it work
+
+------------------------------------------------------------------------
+r160 | cras | 2000-03-19 22:35:56 +0000 (Sun, 19 Mar 2000) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/common-setup.h
+
+Moved all server connection information to SERVER_CONNECT_REC from
+SERVER_REC and RECONNECT_REC.
+
+------------------------------------------------------------------------
+r159 | cras | 2000-03-19 17:57:32 +0000 (Sun, 19 Mar 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/common-setup.h
+
+Several GLists moved to GSLists.
+
+------------------------------------------------------------------------
+r158 | cras | 2000-03-19 14:11:01 +0000 (Sun, 19 Mar 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/common.h
+
+Removed as many warnings as possible when compiling with -ansi -pedantic
+
+------------------------------------------------------------------------
+r157 | cras | 2000-03-19 00:46:41 +0000 (Sun, 19 Mar 2000) | 7 lines
+Changed paths:
+   M /irssi/trunk/src/common-setup.h
+
+Server reconnection tries always the first server in the list where
+connection hasn't failed for the last half an hour.
+
+If all have failed, just try connecting to any of them.
+
++several code cleanups.
+
+------------------------------------------------------------------------
+r156 | cras | 2000-03-18 21:50:38 +0000 (Sat, 18 Mar 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/docs/PERL
+   M /irssi/trunk/src/common-setup.h
+
+Merged line-split from i2k. Several other cleanups.
+
+------------------------------------------------------------------------
+r155 | cras | 2000-03-18 19:46:12 +0000 (Sat, 18 Mar 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/common-setup.h
+   M /irssi/trunk/src/common.h
+
+Merged in i2k's networking code
+
+------------------------------------------------------------------------
+r154 | cras | 2000-03-18 18:49:41 +0000 (Sat, 18 Mar 2000) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/irssi-plugin-gui.h
+
+Merged some of i2k's signal handling code. All signals are now linked
+to some module, so plugin_bind() was removed as useless.
+
+------------------------------------------------------------------------
+r153 | cras | 2000-03-18 15:54:37 +0000 (Sat, 18 Mar 2000) | 3 lines
+Changed paths:
+   M /irssi/trunk/docs/SIGNALS
+
+Changed signal handling to use integers instead of strings internally.
+Should speed up things.
+
+------------------------------------------------------------------------
+r152 | cras | 2000-03-18 13:38:23 +0000 (Sat, 18 Mar 2000) | 3 lines
+Changed paths:
+   M /irssi/trunk/configure.in
+
+Removed lib-nongui from gui-none and configure
+str2list() and list2str() replaced with g_strsplit() and g_strjoinv()
+
+------------------------------------------------------------------------
+r151 | cras | 2000-03-18 12:52:51 +0000 (Sat, 18 Mar 2000) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/Makefile.am
+   M /irssi/trunk/src/common.h
+
+Remove gui_timeout_add/remove, gui_input_add/remove and lib-nongui, use
+Glib instead.
+
+------------------------------------------------------------------------
+r150 | cras | 2000-03-15 20:59:36 +0000 (Wed, 15 Mar 2000) | 3 lines
+Changed paths:
+   M /irssi/trunk/configure.in
+
+use libpopt.la instead of libpopt.a with non-gnome irssi.
+changed examples dir to scripts
+
+------------------------------------------------------------------------
+r149 | cras | 2000-03-15 20:49:44 +0000 (Wed, 15 Mar 2000) | 3 lines
+Changed paths:
+   M /irssi/trunk/Makefile.am
+   D /irssi/trunk/examples
+   A /irssi/trunk/scripts
+   A /irssi/trunk/scripts/.cvsignore
+   A /irssi/trunk/scripts/Makefile.am
+   A /irssi/trunk/scripts/autorejoin.pl
+   A /irssi/trunk/scripts/hello.pl
+   A /irssi/trunk/scripts/mlock.pl
+   A /irssi/trunk/scripts/privmsg.pl
+   A /irssi/trunk/scripts/quitmsg.pl
+   A /irssi/trunk/scripts/realname.pl
+
+Directory should really be named "scripts", not "examples".
+Added script mlock.pl
+
+------------------------------------------------------------------------
+r148 | cras | 2000-03-15 20:14:29 +0000 (Wed, 15 Mar 2000) | 3 lines
+Changed paths:
+   M /irssi/trunk/docs/FORMATS
+   M /irssi/trunk/docs/PERL
+
+FORMATS: note about %|
+PERL: signal_add_last(), several additions to Irssi::Channel->values()
+
+------------------------------------------------------------------------
+r147 | cras | 2000-03-15 12:49:36 +0000 (Wed, 15 Mar 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/config
+
+fixed default configuration file
+
+------------------------------------------------------------------------
+r145 | cras | 2000-03-11 20:19:24 +0000 (Sat, 11 Mar 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/configure.in
+
+Building from objdir now works right
+
+------------------------------------------------------------------------
+r144 | cras | 2000-03-11 19:18:12 +0000 (Sat, 11 Mar 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/NEWS
+   M /irssi/trunk/TODO
+   M /irssi/trunk/config
+   M /irssi/trunk/po/de.po
+   M /irssi/trunk/po/fi.po
+   M /irssi/trunk/po/fr.po
+   M /irssi/trunk/po/pl.po
+   M /irssi/trunk/po/pt_BR.po
+
+Irssi 0.7.28 released
+
+------------------------------------------------------------------------
+r143 | cras | 2000-03-11 18:41:54 +0000 (Sat, 11 Mar 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/Makefile.am
+   A /irssi/trunk/split.theme
+
+New theme
+
+------------------------------------------------------------------------
+r142 | cras | 2000-03-11 18:39:23 +0000 (Sat, 11 Mar 2000) | 3 lines
+Changed paths:
+   M /irssi/trunk/docs/PERL
+   M /irssi/trunk/docs/SIGNALS
+
+Irssi::setup_get() for Perl.
+Option: show timestamps once only after a specified time of inactivity
+
+------------------------------------------------------------------------
+r141 | cras | 2000-03-10 23:02:21 +0000 (Fri, 10 Mar 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/colorless.theme
+
+updated
+
+------------------------------------------------------------------------
+r140 | cras | 2000-03-10 22:16:28 +0000 (Fri, 10 Mar 2000) | 6 lines
+Changed paths:
+   M /irssi/trunk/docs/SIGNALS
+
+/SERVERS displays a list of waiting reconnections too. You can also
+remove them with /DISCONNECT <RECON-n> where <RECON-n> being the tag
+that /SERVERS prints.
+
+Added signals "server reconnect removed" and "server reconnect not found".
+
+------------------------------------------------------------------------
+r139 | cras | 2000-03-10 20:58:04 +0000 (Fri, 10 Mar 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/README
+   M /irssi/trunk/configure.in
+
+--without-gtk option for configure disables building GTK frontend
+
+------------------------------------------------------------------------
+r138 | cras | 2000-03-10 20:38:03 +0000 (Fri, 10 Mar 2000) | 5 lines
+Changed paths:
+   M /irssi/trunk/docs/PERL
+
+If you don't specify the path for Perl scripts, Irssi tries to find
+them from ~/.irssi/scripts/ or /usr/lib/irssi/scripts/ directories.
+Irssi will also run automatically scripts in ~/.irssi/scripts/autorun/
+at startup.
+
+------------------------------------------------------------------------
+r137 | cras | 2000-03-10 20:16:43 +0000 (Fri, 10 Mar 2000) | 5 lines
+Changed paths:
+   M /irssi/trunk/docs/PERL
+   M /irssi/trunk/examples/autorejoin.pl
+   M /irssi/trunk/examples/privmsg.pl
+   M /irssi/trunk/examples/quitmsg.pl
+
+$server->values()->{'nick'} works fine without any
+$sinfo = %{$server->values()}; $sinfo{'nick'} ugliness, fixed.
+
+make install didn't work in plugins/perl
+
+------------------------------------------------------------------------
+r136 | cras | 2000-03-10 20:04:29 +0000 (Fri, 10 Mar 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/docs/FORMATS
+   M /irssi/trunk/docs/PERL
+
+Save the away message reason. Export the away status and reason for Perl.
+
+------------------------------------------------------------------------
+r135 | cras | 2000-03-10 14:04:16 +0000 (Fri, 10 Mar 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/docs/PERL
+
+Updated documentation
+
+------------------------------------------------------------------------
+r134 | cras | 2000-03-05 21:21:34 +0000 (Sun, 05 Mar 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/docs/PERL
+
+Updated Perl support
+
+------------------------------------------------------------------------
+r133 | cras | 2000-03-02 18:09:13 +0000 (Thu, 02 Mar 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/examples
+   A /irssi/trunk/examples/.cvsignore
+   A /irssi/trunk/examples/Makefile.am
+   M /irssi/trunk/examples/autorejoin.pl
+   A /irssi/trunk/examples/quitmsg.pl
+
+Missing makefile, added quitmsg.pl
+
+------------------------------------------------------------------------
+r132 | cras | 2000-03-02 18:03:17 +0000 (Thu, 02 Mar 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/Makefile.am
+   M /irssi/trunk/configure.in
+
+Fixes
+
+------------------------------------------------------------------------
+r131 | wiget | 2000-03-01 11:50:34 +0000 (Wed, 01 Mar 2000) | 3 lines
+Changed paths:
+   M /irssi/trunk/configure.in
+   A /irssi/trunk/po/Makefile.in.in
+   M /irssi/trunk/src/lib-config/Makefile.am
+   M /irssi/trunk/src/lib-popt/Makefile.am
+
+- fix perl related problems
+- use libtool to build helping libraries
+
+------------------------------------------------------------------------
+r130 | cras | 2000-02-25 17:03:17 +0000 (Fri, 25 Feb 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/AUTHORS
+   M /irssi/trunk/NEWS
+   M /irssi/trunk/README
+   M /irssi/trunk/TODO
+   M /irssi/trunk/docs/PERL
+   A /irssi/trunk/examples
+   A /irssi/trunk/examples/autorejoin.pl
+   A /irssi/trunk/examples/hello.pl
+   A /irssi/trunk/examples/privmsg.pl
+   A /irssi/trunk/examples/realname.pl
+   M /irssi/trunk/irssi.spec.in
+   M /irssi/trunk/po/fi.po
+   M /irssi/trunk/po/fr.po
+   M /irssi/trunk/po/pl.po
+   M /irssi/trunk/po/pt_BR.po
+   M /irssi/trunk/src/common.h
+
+Irssi 0.7.27 released.
+
+------------------------------------------------------------------------
+r129 | cras | 2000-02-24 23:43:49 +0000 (Thu, 24 Feb 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/NEWS
+   M /irssi/trunk/docs/Makefile.am
+   A /irssi/trunk/docs/PERL
+   A /irssi/trunk/docs/SIGNALS
+   M /irssi/trunk/src/Makefile.am
+   D /irssi/trunk/src/signal.doc
+
+Perl documentation and updates
+
+------------------------------------------------------------------------
+r128 | cras | 2000-02-24 21:14:44 +0000 (Thu, 24 Feb 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/configure.in
+   M /irssi/trunk/src/signal.doc
+
+Updated perl support
+
+------------------------------------------------------------------------
+r127 | cras | 2000-02-21 17:05:29 +0000 (Mon, 21 Feb 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/po/de.po
+
+Updated German translation
+
+------------------------------------------------------------------------
+r126 | cras | 2000-02-20 23:28:50 +0000 (Sun, 20 Feb 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/acconfig.h
+   M /irssi/trunk/configure.in
+
+Initial Perl support.
+
+------------------------------------------------------------------------
+r125 | cras | 2000-02-20 13:40:49 +0000 (Sun, 20 Feb 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/acconfig.h
+   M /irssi/trunk/configure.in
+
+Resizing terminal works now right without resizeterm() function.
+
+------------------------------------------------------------------------
+r124 | cras | 2000-02-19 14:37:19 +0000 (Sat, 19 Feb 2000) | 12 lines
+Changed paths:
+   M /irssi/trunk/NEWS
+   M /irssi/trunk/TODO
+   M /irssi/trunk/configure.in
+   M /irssi/trunk/po/de.po
+   M /irssi/trunk/po/fi.po
+   M /irssi/trunk/po/fr.po
+   M /irssi/trunk/po/pl.po
+   M /irssi/trunk/po/pt_BR.po
+
+Irssi 0.7.25 released:
+
++ /WQUERY - create query to current window
++ Irssi doesn't close the window anymore when using /PART
++ irssi-text also displays user's address in topic bar in queries.
++ /NAMES list is now displayed sorted
++ irssi-text: /WINDOW MOVE PREV|NEXT
+- Topic bar sometimes displayed some other channel's topic if the
+  channel didn't have a topic.
+- Irssi automatically changed to auto-created query windows..
+- When using /WINDOW CLOSE it didn't change to different window
+
+------------------------------------------------------------------------
+r123 | cras | 2000-02-18 22:55:19 +0000 (Fri, 18 Feb 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/TODO
+
+updated
+
+------------------------------------------------------------------------
+r122 | cras | 2000-02-18 22:54:41 +0000 (Fri, 18 Feb 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/NEWS
+
+Final 0.7.24 changes
+
+------------------------------------------------------------------------
+r121 | cras | 2000-02-18 22:50:21 +0000 (Fri, 18 Feb 2000) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/common-setup.h
+
+Don't allow any setup file changes or log writing if another irssi
+session is running.
+
+------------------------------------------------------------------------
+r120 | cras | 2000-02-18 22:14:11 +0000 (Fri, 18 Feb 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/NEWS
+   M /irssi/trunk/configure.in
+
+Released 0.7.24
+
+------------------------------------------------------------------------
+r119 | cras | 2000-02-12 15:11:01 +0000 (Sat, 12 Feb 2000) | 3 lines
+Changed paths:
+   D /irssi/trunk/po/br.po
+   M /irssi/trunk/po/fi.po
+   M /irssi/trunk/po/fr.po
+   M /irssi/trunk/po/pl.po
+   A /irssi/trunk/po/pt_BR.po
+
+Updated Brazilian Portuguese translation translation, now with
+the right pot file name :)
+
+------------------------------------------------------------------------
+r118 | cras | 2000-02-03 22:53:20 +0000 (Thu, 03 Feb 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/configure.in
+   A /irssi/trunk/po/de.po
+
+German translation file
+
+------------------------------------------------------------------------
+r117 | cras | 2000-01-29 17:24:08 +0000 (Sat, 29 Jan 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/configure.in
+
+Small bugfix, it always displayed that it will build GTK frontend
+
+------------------------------------------------------------------------
+r116 | cras | 2000-01-27 19:03:28 +0000 (Thu, 27 Jan 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/irssi.spec.in
+
+fixes by vkoivula@saunalahti.fi
+
+------------------------------------------------------------------------
+r115 | cras | 2000-01-27 18:07:38 +0000 (Thu, 27 Jan 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/configure.in
+   A /irssi/trunk/po/fr.po
+
+French translation by Julien Boulnois <cosman@webmails.com>
+
+------------------------------------------------------------------------
+r113 | cras | 2000-01-24 14:59:27 +0000 (Mon, 24 Jan 2000) | 15 lines
+Changed paths:
+   M /irssi/trunk/NEWS
+   M /irssi/trunk/TODO
+   M /irssi/trunk/configure.in
+   M /irssi/trunk/po/br.po
+   M /irssi/trunk/po/fi.po
+   M /irssi/trunk/po/pl.po
+
+updates for irssi 0.7.23:
+
++ channel's key (+k key) is displayed in irssi-text's statusbar if it
+  has one.
++ Nick hilight detector is a bit smarter now, for example if your
+  nick happens to be "its", "it's blahblah" doesn't trigger it..
++ colorless irssi-text (/set colors = no): activity list is split in
+  two, Act and Det lists. Det displays list of windows where there's
+  new messages for you.
+- /LAST without any parameters crashed
+- if queried nick was changed, GUI didn't notice it.
+- config file was invalid in .22
+- irssi text widget didn't work in .22
+- dcc transfers always displayed 0.00kB/s in .22
+
+------------------------------------------------------------------------
+r112 | cras | 2000-01-19 12:04:48 +0000 (Wed, 19 Jan 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/config
+
+Fixed the missing commas
+
+------------------------------------------------------------------------
+r111 | cras | 2000-01-16 17:15:52 +0000 (Sun, 16 Jan 2000) | 3 lines
+Changed paths:
+   M /irssi/trunk/NEWS
+   M /irssi/trunk/po/br.po
+   M /irssi/trunk/po/fi.po
+   M /irssi/trunk/po/pl.po
+
+Changed /set toggle_use_colors to simple /set colors
+Final changes for 0.7.22
+
+------------------------------------------------------------------------
+r110 | cras | 2000-01-16 17:06:14 +0000 (Sun, 16 Jan 2000) | 7 lines
+Changed paths:
+   M /irssi/trunk/NEWS
+   M /irssi/trunk/TODO
+   M /irssi/trunk/po/fi.po
+   M /irssi/trunk/po/pl.po
+
+Improved hilighting: You can specify what color to hilight the text
+with, to channel field type the (mirc) color number, like
+"4 #blah" hilights the text with red in channel #blah, both color
+and channel(s) are optional. You can also hilight nicks' colors, to
+text field type "NICK:nick!mask", like NICK:nick, or
+NICK:*!*@*.blah.fi hilights people from blah.fi domain
+
+------------------------------------------------------------------------
+r109 | cras | 2000-01-16 14:11:11 +0000 (Sun, 16 Jan 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/config
+
+Added ptlink network
+
+------------------------------------------------------------------------
+r108 | cras | 2000-01-16 14:08:16 +0000 (Sun, 16 Jan 2000) | 2 lines
+Changed paths:
+   M /irssi/trunk/configure.in
+   A /irssi/trunk/po/br.po
+
+Brazilian portuguese translation
+
+------------------------------------------------------------------------
+r107 | cras | 2000-01-15 21:55:44 +0000 (Sat, 15 Jan 2000) | 4 lines
+Changed paths:
+   M /irssi/trunk/NEWS
+
+When connection is lost to server, irssi will remember the channels
+in windows. After reconnected, (auto)joining to same channels will
+join the channels to the old windows.
+
+------------------------------------------------------------------------
+r106 | cras | 2000-01-15 17:00:44 +0000 (Sat, 15 Jan 2000) | 5 lines
+Changed paths:
+   M /irssi/trunk/NEWS
+
++ /window goto active now finds first the window with the higest
+  activity (msgs to you -> msgs -> rest). Alt-A is also default key
+  shortcut for this
+- Modeless channels (+channel) didn't get synced ever..
+
+------------------------------------------------------------------------
+r105 | kloczek | 2000-01-13 02:13:20 +0000 (Thu, 13 Jan 2000) | 3 lines
+Changed paths:
+   M /irssi/trunk/Makefile.am
+   M /irssi/trunk/irssi.spec.in
+
+- irssi.desktop now this is not applet but application description file -
+  place them in $(datadir)/gnome/apps/Network.
+
+------------------------------------------------------------------------
+r104 | cras | 2000-01-12 22:10:30 +0000 (Wed, 12 Jan 2000) | 19 lines
+Changed paths:
+   M /irssi/trunk/NEWS
+   M /irssi/trunk/TODO
+   M /irssi/trunk/configure.in
+   M /irssi/trunk/po/fi.po
+   M /irssi/trunk/po/pl.po
+   M /irssi/trunk/src/Makefile.am
+   M /irssi/trunk/src/nls.h
+
+updates for new version:
+
++ configure displays a summary of things to compile
++ /set toggle_use_colors = yes|no, sets colors on/off in irssi-text
+- Some kB/s messages displayed wrong values when resuming DCC
+  transfers. Also, kB/s is now displayed with two decimals
+- "Day changed to 00-10-2000" .. month was wrong. No Y2K bugs
+  however ;)
+- List of ircnets was displyed wrong in server dialog.
+- Userhost replies didn't handle ircops right..
+- Doesn't quit when receives SIGHUP - some window managers send it
+  when restarting itself (Afterstep)
+- Specifying "source host IP" didn't work (vhosts).
+- Using ctrl-b etc. didn't move the cursor forward..
+- Don't try to compile GTK parts of plugins if we don't even want
+  build GTK irssi
+- Doesn't crash when trying to create DCC dialog after being
+  disconnected from IRC server
+
+------------------------------------------------------------------------
+r103 | cras | 1999-12-26 10:41:24 +0000 (Sun, 26 Dec 1999) | 2 lines
+Changed paths:
+   M /irssi/trunk/colorless.theme
+
+private messages in a query window were displayed wrong.
+
+------------------------------------------------------------------------
+r102 | kloczek | 1999-12-22 16:25:14 +0000 (Wed, 22 Dec 1999) | 2 lines
+Changed paths:
+   M /irssi/trunk/po/pl.po
+
+- next part translations.
+
+------------------------------------------------------------------------
+r101 | cras | 1999-12-20 18:04:04 +0000 (Mon, 20 Dec 1999) | 2 lines
+Changed paths:
+   M /irssi/trunk/config
+
+bugfix
+
+------------------------------------------------------------------------
+r100 | wiget | 1999-12-20 00:18:00 +0000 (Mon, 20 Dec 1999) | 2 lines
+Changed paths:
+   M /irssi/trunk/po/pl.po
+
+- correct fuzzy and add more translations
+
+------------------------------------------------------------------------
+r99 | cras | 1999-12-19 23:40:46 +0000 (Sun, 19 Dec 1999) | 2 lines
+Changed paths:
+   M /irssi/trunk/NEWS
+   M /irssi/trunk/TODO
+   M /irssi/trunk/config
+   M /irssi/trunk/configure.in
+   M /irssi/trunk/po/fi.po
+   M /irssi/trunk/po/pl.po
+
+Updated to 0.7.21
+
+------------------------------------------------------------------------
+r98 | cras | 1999-12-19 19:00:11 +0000 (Sun, 19 Dec 1999) | 7 lines
+Changed paths:
+   M /irssi/trunk/src/common-setup.h
+
+IRC Network specific settings: nick, username, realname,
+max. kicks/modes/msgs per command.
+
+Keeps track of "wanted nick", ie. the nick you specified in the setup
+or to /server or /nick. When reconnecting to server it always tries the
+wanted nick before falling back to alternate nicks.
+
+------------------------------------------------------------------------
+r97 | cras | 1999-12-08 20:34:28 +0000 (Wed, 08 Dec 1999) | 3 lines
+Changed paths:
+   M /irssi/trunk/colorless.theme
+
+fixed some problems with ignoring server modes. Added different format
+text for server modes.
+
+------------------------------------------------------------------------
+r96 | kloczek | 1999-11-30 18:33:21 +0000 (Tue, 30 Nov 1999) | 2 lines
+Changed paths:
+   M /irssi/trunk/po/pl.po
+
+-more pl translation.
+
+------------------------------------------------------------------------
+r95 | kloczek | 1999-11-29 21:33:29 +0000 (Mon, 29 Nov 1999) | 2 lines
+Changed paths:
+   M /irssi/trunk/po/pl.po
+
+- next part translations.
+
+------------------------------------------------------------------------
+r93 | cras | 1999-11-28 18:37:41 +0000 (Sun, 28 Nov 1999) | 2 lines
+Changed paths:
+   M /irssi/trunk/NEWS
+   M /irssi/trunk/TODO
+   M /irssi/trunk/configure.in
+
+updated to 0.7.20.1
+
+------------------------------------------------------------------------
+r92 | cras | 1999-11-28 17:50:17 +0000 (Sun, 28 Nov 1999) | 2 lines
+Changed paths:
+   M /irssi/trunk/README
+   M /irssi/trunk/configure.in
+
+MySQL plugin is only build with using --with-mysql[=yes|=dir]
+
+------------------------------------------------------------------------
+r91 | kloczek | 1999-11-28 13:57:35 +0000 (Sun, 28 Nov 1999) | 2 lines
+Changed paths:
+   M /irssi/trunk/po/pl.po
+
+- next part translations.
+
+------------------------------------------------------------------------
+r90 | wiget | 1999-11-27 23:38:18 +0000 (Sat, 27 Nov 1999) | 2 lines
+Changed paths:
+   M /irssi/trunk/po/pl.po
+
+- update pl translation
+
+------------------------------------------------------------------------
+r89 | cras | 1999-11-27 22:02:32 +0000 (Sat, 27 Nov 1999) | 2 lines
+Changed paths:
+   M /irssi/trunk/po/fi.po
+   M /irssi/trunk/po/pl.po
+
+Added "New Split Window" to menus
+
+------------------------------------------------------------------------
+r88 | cras | 1999-11-27 21:15:30 +0000 (Sat, 27 Nov 1999) | 2 lines
+Changed paths:
+   M /irssi/trunk/NEWS
+   M /irssi/trunk/configure.in
+
+Updates for 0.7.20
+
+------------------------------------------------------------------------
+r87 | cras | 1999-11-27 21:08:02 +0000 (Sat, 27 Nov 1999) | 2 lines
+Changed paths:
+   A /irssi/trunk/po/fi.po
+
+Another try for finnish translation - only menus translated
+
+------------------------------------------------------------------------
+r86 | cras | 1999-11-27 20:37:25 +0000 (Sat, 27 Nov 1999) | 2 lines
+Changed paths:
+   M /irssi/trunk/docs/Makefile.am
+   A /irssi/trunk/docs/botnet.txt
+
+Added botnet plans.
+
+------------------------------------------------------------------------
+r85 | cras | 1999-11-24 11:06:05 +0000 (Wed, 24 Nov 1999) | 2 lines
+Changed paths:
+   D /irssi/trunk/po/Makefile.in.in
+
+Makefile.in.in is autogenerated
+
+------------------------------------------------------------------------
+r84 | cras | 1999-11-23 20:47:48 +0000 (Tue, 23 Nov 1999) | 2 lines
+Changed paths:
+   M /irssi/trunk/Makefile.am
+
+Added README back
+
+------------------------------------------------------------------------
+r83 | wiget | 1999-11-23 14:24:46 +0000 (Tue, 23 Nov 1999) | 2 lines
+Changed paths:
+   M /irssi/trunk/docs/Makefile.am
+
+- where is README ?
+
+------------------------------------------------------------------------
+r82 | wiget | 1999-11-23 14:23:59 +0000 (Tue, 23 Nov 1999) | 2 lines
+Changed paths:
+   A /irssi/trunk/po/ChangeLog
+
+- empty
+
+------------------------------------------------------------------------
+r81 | wiget | 1999-11-23 14:23:30 +0000 (Tue, 23 Nov 1999) | 2 lines
+Changed paths:
+   M /irssi/trunk/configure.in
+
+- add pl to ALL_LINGUA
+
+------------------------------------------------------------------------
+r80 | kloczek | 1999-11-22 19:54:36 +0000 (Mon, 22 Nov 1999) | 2 lines
+Changed paths:
+   M /irssi/trunk/po/pl.po
+
+- more trans.
+
+------------------------------------------------------------------------
+r79 | kloczek | 1999-11-22 19:19:56 +0000 (Mon, 22 Nov 1999) | 2 lines
+Changed paths:
+   M /irssi/trunk/po/pl.po
+
+- fiew translations.
+
+------------------------------------------------------------------------
+r78 | kloczek | 1999-11-22 19:15:00 +0000 (Mon, 22 Nov 1999) | 2 lines
+Changed paths:
+   A /irssi/trunk/po/pl.po
+
+- start pl translation.
+
+------------------------------------------------------------------------
+r77 | cras | 1999-11-20 14:00:24 +0000 (Sat, 20 Nov 1999) | 2 lines
+Changed paths:
+   D /irssi/trunk/COMMANDS
+   M /irssi/trunk/Makefile.am
+   M /irssi/trunk/NEWS
+   M /irssi/trunk/TODO
+   M /irssi/trunk/colorless.theme
+   M /irssi/trunk/configure.in
+   A /irssi/trunk/docs/COMMANDS
+   M /irssi/trunk/docs/Makefile.am
+   M /irssi/trunk/po/POTFILES.in
+   D /irssi/trunk/po/fi.po
+   M /irssi/trunk/src/Makefile.am
+   D /irssi/trunk/window-views-patch.diff
+
+Last changes for 0.7.19
+
+------------------------------------------------------------------------
+r76 | cras | 1999-11-14 12:32:49 +0000 (Sun, 14 Nov 1999) | 2 lines
+Changed paths:
+   M /irssi/trunk/configure.in
+
+Doesn't try to build GTK UI if GTK isn't found
+
+------------------------------------------------------------------------
+r75 | cras | 1999-11-07 13:47:29 +0000 (Sun, 07 Nov 1999) | 2 lines
+Changed paths:
+   M /irssi/trunk/config
+
+Default menuitems to popup menu.
+
+------------------------------------------------------------------------
+r74 | cras | 1999-11-07 01:18:15 +0000 (Sun, 07 Nov 1999) | 7 lines
+Changed paths:
+   M /irssi/trunk/src/common-setup.h
+
+Automatic text replaces, useful for things like :9 -> :) .. This
+is actually almost same as completions, except they are activated
+with different keys..
+
+Nicklist popup menu is now configurable. It's now in the automation setup
+dialog which is a bit wrong..
+
+------------------------------------------------------------------------
+r73 | cras | 1999-11-06 20:05:49 +0000 (Sat, 06 Nov 1999) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/signal.doc
+
+Keyboard configuration works
+
+------------------------------------------------------------------------
+r72 | cras | 1999-11-06 14:51:01 +0000 (Sat, 06 Nov 1999) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/signal.doc
+
+"window server changed" -> "channel server changed"
+
+------------------------------------------------------------------------
+r71 | cras | 1999-11-03 20:05:16 +0000 (Wed, 03 Nov 1999) | 2 lines
+Changed paths:
+   M /irssi/trunk/po/POTFILES.in
+   M /irssi/trunk/po/fi.po
+   A /irssi/trunk/src/nls.h
+
+NLS support should work without gnome now.
+
+------------------------------------------------------------------------
+r70 | cras | 1999-10-30 16:01:32 +0000 (Sat, 30 Oct 1999) | 2 lines
+Changed paths:
+   M /irssi/trunk/configure.in
+   M /irssi/trunk/po
+   A /irssi/trunk/po/.cvsignore
+
+minor changes..
+
+------------------------------------------------------------------------
+r69 | cras | 1999-10-30 15:56:53 +0000 (Sat, 30 Oct 1999) | 2 lines
+Changed paths:
+   M /irssi/trunk/Makefile.am
+   M /irssi/trunk/configure.in
+   M /irssi/trunk/docs
+   A /irssi/trunk/docs/.cvsignore
+   A /irssi/trunk/docs/Makefile.am
+   A /irssi/trunk/docs/help
+   A /irssi/trunk/docs/help/.cvsignore
+   A /irssi/trunk/docs/help/Makefile.am
+   A /irssi/trunk/docs/help/help
+
+docs/help - online helps for /HELP. Anyone care to write them? :)
+
+------------------------------------------------------------------------
+r68 | cras | 1999-10-30 15:46:07 +0000 (Sat, 30 Oct 1999) | 2 lines
+Changed paths:
+   A /irssi/trunk/docs/FAQ
+
+FAQ added
+
+------------------------------------------------------------------------
+r67 | cras | 1999-10-30 13:21:14 +0000 (Sat, 30 Oct 1999) | 2 lines
+Changed paths:
+   M /irssi/trunk/Makefile.am
+   M /irssi/trunk/acconfig.h
+   M /irssi/trunk/configure.in
+   A /irssi/trunk/po
+   A /irssi/trunk/po/Makefile.in.in
+   A /irssi/trunk/po/POTFILES.in
+   A /irssi/trunk/po/fi.po
+
+Internationalization works now.
+
+------------------------------------------------------------------------
+r66 | cras | 1999-10-29 19:41:01 +0000 (Fri, 29 Oct 1999) | 2 lines
+Changed paths:
+   M /irssi/trunk/colorless.theme
+
+Updated colorless theme
+
+------------------------------------------------------------------------
+r65 | cras | 1999-10-29 19:40:49 +0000 (Fri, 29 Oct 1999) | 2 lines
+Changed paths:
+   A /irssi/trunk/docs
+   A /irssi/trunk/docs/FORMATS
+
+Text format specs
+
+------------------------------------------------------------------------
+r64 | cras | 1999-10-26 21:34:58 +0000 (Tue, 26 Oct 1999) | 5 lines
+Changed paths:
+   M /irssi/trunk/src/common-setup.h
+
+Changed setting code behaviour. setup_get_str(), setup_get_int() and
+setup_get_bool() should be used instead of directly accessing setup
+variables. This has the advantage of not requiring to build the whole irssi
+every time when adding new configuration variable.
+
+------------------------------------------------------------------------
+r63 | cras | 1999-10-24 11:06:08 +0000 (Sun, 24 Oct 1999) | 2 lines
+Changed paths:
+   M /irssi/trunk/colorless.theme
+
+Added new formats
+
+------------------------------------------------------------------------
+r62 | cras | 1999-10-20 21:09:48 +0000 (Wed, 20 Oct 1999) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/common-setup.h
+
+Autoaccept dcc chat from given nick/address
+
+------------------------------------------------------------------------
+r61 | cras | 1999-10-20 18:57:52 +0000 (Wed, 20 Oct 1999) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/common-setup.h
+
+Autoget DCC if nick/mask is found from list
+
+------------------------------------------------------------------------
+r60 | cras | 1999-10-20 18:32:27 +0000 (Wed, 20 Oct 1999) | 2 lines
+Changed paths:
+   M /irssi/trunk/configure.in
+
+Test for checking if irssi-bot should be build was wrong
+
+------------------------------------------------------------------------
+r59 | cras | 1999-10-19 18:59:01 +0000 (Tue, 19 Oct 1999) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/signal.doc
+
+str2list() updates - added separator argument and you'll need to free only
+the first item on the list instead of all of them.
+
+------------------------------------------------------------------------
+r58 | tali | 1999-10-17 09:07:39 +0000 (Sun, 17 Oct 1999) | 2 lines
+Changed paths:
+   M /irssi/trunk/COMMANDS
+
+fixed MSGLEVELS in plugins
+
+------------------------------------------------------------------------
+r57 | cras | 1999-10-16 22:53:30 +0000 (Sat, 16 Oct 1999) | 2 lines
+Changed paths:
+   M /irssi/trunk/Makefile.am
+   M /irssi/trunk/src/common.h
+
+Fix for building with objdir
+
+------------------------------------------------------------------------
+r56 | cras | 1999-10-16 19:50:30 +0000 (Sat, 16 Oct 1999) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/signal.doc
+
+Use command_bind() and command_unbind() for binding commands, they
+automatically update /help
+
+------------------------------------------------------------------------
+r55 | cras | 1999-10-16 14:57:28 +0000 (Sat, 16 Oct 1999) | 2 lines
+Changed paths:
+   M /irssi/trunk/configure.in
+
+STILL some popt fixes, now it should get compiled to all irssi binaries right
+
+------------------------------------------------------------------------
+r54 | cras | 1999-10-16 14:41:57 +0000 (Sat, 16 Oct 1999) | 2 lines
+Changed paths:
+   M /irssi/trunk/colorless.theme
+
+Background changed to white.
+
+------------------------------------------------------------------------
+r53 | cras | 1999-10-16 14:37:21 +0000 (Sat, 16 Oct 1999) | 2 lines
+Changed paths:
+   M /irssi/trunk/configure.in
+
+popt fix
+
+------------------------------------------------------------------------
+r52 | wiget | 1999-10-16 13:05:25 +0000 (Sat, 16 Oct 1999) | 2 lines
+Changed paths:
+   M /irssi/trunk/irssi.spec.in
+
+- polish translation
+
+------------------------------------------------------------------------
+r51 | wiget | 1999-10-16 12:56:50 +0000 (Sat, 16 Oct 1999) | 2 lines
+Changed paths:
+   M /irssi/trunk/irssi.desktop
+
+- polish translation
+
+------------------------------------------------------------------------
+r49 | cras | 1999-10-16 12:28:41 +0000 (Sat, 16 Oct 1999) | 2 lines
+Changed paths:
+   M /irssi/trunk/NEWS
+
+Release date set
+
+------------------------------------------------------------------------
+r48 | cras | 1999-10-16 12:26:30 +0000 (Sat, 16 Oct 1999) | 2 lines
+Changed paths:
+   M /irssi/trunk/configure.in
+
+popt fixes
+
+------------------------------------------------------------------------
+r47 | cras | 1999-10-16 11:05:08 +0000 (Sat, 16 Oct 1999) | 2 lines
+Changed paths:
+   M /irssi/trunk/COMMANDS
+   M /irssi/trunk/Makefile.am
+   M /irssi/trunk/NEWS
+   M /irssi/trunk/README
+   M /irssi/trunk/TODO
+   M /irssi/trunk/configure.in
+   M /irssi/trunk/servertest/server.c
+
+Released 0.7.17
+
+------------------------------------------------------------------------
+r46 | cras | 1999-10-12 16:52:51 +0000 (Tue, 12 Oct 1999) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/signal.doc
+
+"nick gone changed" signal is sent when gone status changes instead of
+"nicklist changed" ..
+
+------------------------------------------------------------------------
+r45 | cras | 1999-10-11 18:06:27 +0000 (Mon, 11 Oct 1999) | 2 lines
+Changed paths:
+   M /irssi/trunk/colorless.theme
+
+New line format added
+
+------------------------------------------------------------------------
+r44 | cras | 1999-10-10 09:01:08 +0000 (Sun, 10 Oct 1999) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/common-setup.h
+
+Each window can have it's own command history buffer
+
+------------------------------------------------------------------------
+r43 | cras | 1999-10-10 08:26:47 +0000 (Sun, 10 Oct 1999) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/common-setup.h
+   M /irssi/trunk/src/signal.doc
+
+Lag detection displayed in statusbar, can also automatically disconnect
+if too much lagged.
+
+------------------------------------------------------------------------
+r42 | cras | 1999-10-09 18:58:27 +0000 (Sat, 09 Oct 1999) | 2 lines
+Changed paths:
+   M /irssi/trunk/configure.in
+
+gnome support checks are now run always
+
+------------------------------------------------------------------------
+r41 | cras | 1999-10-09 18:56:57 +0000 (Sat, 09 Oct 1999) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/lib-popt/popt.c
+
+moved the strerror() implementation if it doesn't exist
+
+------------------------------------------------------------------------
+r40 | cras | 1999-10-09 18:14:52 +0000 (Sat, 09 Oct 1999) | 6 lines
+Changed paths:
+   M /irssi/trunk/src/common-setup.h
+
+Fixes to make irssi to work properly with several different irc servers/nets.
+Some servers didn't allow WHO #a,#b,.., undernet servers reply with only one
+End of WHO message, some servers that don't understand MODE #a,#b,.. reply
+with "you're not on that channel". Also checking if irc server understands
+channel excepition/invites is done at server connect from event 004.
+
+------------------------------------------------------------------------
+r39 | cras | 1999-10-09 18:04:21 +0000 (Sat, 09 Oct 1999) | 2 lines
+Changed paths:
+   M /irssi/trunk/acconfig.h
+   M /irssi/trunk/configure.in
+   M /irssi/trunk/src/common.h
+
+popt-gnome.h isn't used anymore
+
+------------------------------------------------------------------------
+r38 | cras | 1999-10-09 17:59:42 +0000 (Sat, 09 Oct 1999) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/lib-config/irssi-config.c
+   M /irssi/trunk/src/lib-config/irssi-config.h
+
+config_section() and config_list_section() changed
+
+------------------------------------------------------------------------
+r37 | cras | 1999-10-06 16:47:43 +0000 (Wed, 06 Oct 1999) | 3 lines
+Changed paths:
+   M /irssi/trunk/configure.in
+   M /irssi/trunk/src/Makefile.am
+   M /irssi/trunk/src/common.h
+   A /irssi/trunk/src/lib-popt
+   A /irssi/trunk/src/lib-popt/.cvsignore
+   A /irssi/trunk/src/lib-popt/Makefile.am
+   A /irssi/trunk/src/lib-popt/findme.c
+   A /irssi/trunk/src/lib-popt/findme.h
+   A /irssi/trunk/src/lib-popt/popt.c
+   A /irssi/trunk/src/lib-popt/popt.h
+   A /irssi/trunk/src/lib-popt/poptconfig.c
+   A /irssi/trunk/src/lib-popt/popthelp.c
+   A /irssi/trunk/src/lib-popt/poptint.h
+   A /irssi/trunk/src/lib-popt/poptparse.c
+
+libpopt is now distributed with irssi since it's small enough and I got
+tired of installing it to every computer when I tried to run irssi..
+
+------------------------------------------------------------------------
+r36 | cras | 1999-10-05 18:53:45 +0000 (Tue, 05 Oct 1999) | 3 lines
+Changed paths:
+   M /irssi/trunk/configure.in
+
+configure add libs to PROG_LIBS instead of LIBS since plugins were linked
+against them too.
+
+------------------------------------------------------------------------
+r35 | tali | 1999-10-04 14:13:47 +0000 (Mon, 04 Oct 1999) | 2 lines
+Changed paths:
+   M /irssi/trunk/configure.in
+
+fixed bug in configuring popt
+
+------------------------------------------------------------------------
+r34 | cras | 1999-10-03 14:41:18 +0000 (Sun, 03 Oct 1999) | 2 lines
+Changed paths:
+   M /irssi/trunk/README
+
+Some minor changes..
+
+------------------------------------------------------------------------
+r33 | cras | 1999-10-03 14:37:29 +0000 (Sun, 03 Oct 1999) | 4 lines
+Changed paths:
+   M /irssi/trunk/acconfig.h
+   M /irssi/trunk/configure.in
+   M /irssi/trunk/src/common.h
+
+Command line argument handling works.
+ -c server [-p port] : connects to server at startup
+ -n : don't autoconnect to any servers
+
+------------------------------------------------------------------------
+r32 | cras | 1999-10-02 17:13:43 +0000 (Sat, 02 Oct 1999) | 2 lines
+Changed paths:
+   M /irssi/trunk/Makefile.am
+
+Fix for building with objdir
+
+------------------------------------------------------------------------
+r31 | cras | 1999-10-02 13:56:16 +0000 (Sat, 02 Oct 1999) | 3 lines
+Changed paths:
+   M /irssi/trunk/src/common-setup.h
+
+Moved background pixmap settings to theme specific.
+Fixed some memory leaks.
+
+------------------------------------------------------------------------
+r30 | cras | 1999-10-02 10:29:01 +0000 (Sat, 02 Oct 1999) | 2 lines
+Changed paths:
+   M /irssi/trunk/configure.in
+   M /irssi/trunk/src/Makefile.am
+
+--without-bot to configure doesn't build irssi-bot
+
+------------------------------------------------------------------------
+r29 | cras | 1999-09-30 16:31:39 +0000 (Thu, 30 Sep 1999) | 2 lines
+Changed paths:
+   M /irssi/trunk/configure.in
+
+GtkIText: imlib isn't required anymore, underlined text works
+
+------------------------------------------------------------------------
+r28 | cras | 1999-09-27 16:54:39 +0000 (Mon, 27 Sep 1999) | 4 lines
+Changed paths:
+   M /irssi/trunk/src/common-setup.h
+
+More GtkIText changes. Most of the ZVT things are removed.
+You can now change font and background. Background pixmaps also work,
+they can be scrollable, shaded and scaled/tiled.
+
+------------------------------------------------------------------------
+r27 | cras | 1999-09-21 14:31:28 +0000 (Tue, 21 Sep 1999) | 4 lines
+Changed paths:
+   M /irssi/trunk/src/common-setup.h
+
+Removed the "multichannel query" thing since it wasn't actually needed :)
+Replaced it with server specific timeout between sending commands, after
+raising it to 3 seconds all servers worked just fine.
+
+------------------------------------------------------------------------
+r26 | cras | 1999-09-18 16:22:32 +0000 (Sat, 18 Sep 1999) | 4 lines
+Changed paths:
+   M /irssi/trunk/src/common-setup.h
+
+New server specific option: "Send queries for all channels at once". It's
+faster to use it but some servers (I've found only one so far..) hang the
+connection with this.
+
+------------------------------------------------------------------------
+r25 | cras | 1999-09-17 14:42:29 +0000 (Fri, 17 Sep 1999) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/common-setup.h
+
+You can specify what port to use with DCC.
+
+------------------------------------------------------------------------
+r24 | cras | 1999-09-15 20:31:53 +0000 (Wed, 15 Sep 1999) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/signal.doc
+
+Related to channel query changes..
+
+------------------------------------------------------------------------
+r23 | wiget | 1999-09-13 16:50:25 +0000 (Mon, 13 Sep 1999) | 2 lines
+Changed paths:
+   M /irssi/trunk/irssi.spec.in
+
+- fixed %%configure macro
+
+------------------------------------------------------------------------
+r21 | cras | 1999-09-13 14:29:07 +0000 (Mon, 13 Sep 1999) | 2 lines
+Changed paths:
+   M /irssi/trunk/NEWS
+
+Release date set..
+
+------------------------------------------------------------------------
+r20 | cras | 1999-09-13 10:41:55 +0000 (Mon, 13 Sep 1999) | 3 lines
+Changed paths:
+   M /irssi/trunk/NEWS
+
+/gwhois dialog has now refresh button, /gwhois is used when clicking
+whois from nicklist popup menu
+
+------------------------------------------------------------------------
+r19 | cras | 1999-09-12 13:46:24 +0000 (Sun, 12 Sep 1999) | 2 lines
+Changed paths:
+   M /irssi/trunk/NEWS
+
+Getting ready for 0.7.16 release..
+
+------------------------------------------------------------------------
+r18 | cras | 1999-09-11 08:58:00 +0000 (Sat, 11 Sep 1999) | 2 lines
+Changed paths:
+   M /irssi/trunk/src/signal.doc
+
+Netsplit code changes, should work now.
+
+------------------------------------------------------------------------
+r17 | cras | 1999-09-05 09:43:41 +0000 (Sun, 05 Sep 1999) | 2 lines
+Changed paths:
+   M /irssi/trunk/Makefile.am
+
+fix for building irssi from different directory
+
+------------------------------------------------------------------------
+r16 | cras | 1999-09-04 22:24:39 +0000 (Sat, 04 Sep 1999) | 2 lines
+Changed paths:
+   M /irssi/trunk/NEWS
+
+Restoring saved window size didn't work very accurately
+
+------------------------------------------------------------------------
+r15 | cras | 1999-09-04 20:06:53 +0000 (Sat, 04 Sep 1999) | 2 lines
+Changed paths:
+   M /irssi/trunk/NEWS
+   M /irssi/trunk/TODO
+   M /irssi/trunk/src/common-setup.h
+
+Autojoining to channels work with irssi-text too
+
+------------------------------------------------------------------------
+r14 | cras | 1999-09-04 19:02:39 +0000 (Sat, 04 Sep 1999) | 7 lines
+Changed paths:
+   M /irssi/trunk/NEWS
+   M /irssi/trunk/TODO
+
+Giving -nogui parameter to /who doesn't use the GUI dialog
+
+All the dialogs that have clist widget: you can resize columns and
+sort the list by clicking the headers
+
+/who dialog displays total number of items and the list is searchable
+
+------------------------------------------------------------------------
+r13 | cras | 1999-09-04 18:24:24 +0000 (Sat, 04 Sep 1999) | 9 lines
+Changed paths:
+   M /irssi/trunk/NEWS
+   M /irssi/trunk/TODO
+
+/list and /names complains if they're run without any arguments,
+-YES overrides this
+
+/list -nogui doesn't use the GUI list display
+
+/list and /who dialog changes: you can resize columns, sort the
+list by clicking the headers, displays total number of channels and
+the list is searchable
+
+------------------------------------------------------------------------
+r12 | cras | 1999-09-04 15:39:05 +0000 (Sat, 04 Sep 1999) | 4 lines
+Changed paths:
+   M /irssi/trunk/NEWS
+
+/window goto #channel - moves you to window with the
+channel, query or dcc chat
+/window goto active - moves you to first window with activity
+
+------------------------------------------------------------------------
+r11 | cras | 1999-09-04 15:09:11 +0000 (Sat, 04 Sep 1999) | 3 lines
+Changed paths:
+   M /irssi/trunk/README
+
+Nicklist changed to hash table. Some speedups for function checking for
+people's gone flags.
+
+------------------------------------------------------------------------
+r10 | cras | 1999-09-04 11:56:58 +0000 (Sat, 04 Sep 1999) | 2 lines
+Changed paths:
+   M /irssi/trunk/autogen.sh
+
+Removed .spec.in -> .spec generation since configure does it now.
+
+------------------------------------------------------------------------
+r9 | wiget | 1999-09-04 11:42:33 +0000 (Sat, 04 Sep 1999) | 3 lines
+Changed paths:
+   M /irssi/trunk/Makefile.am
+   M /irssi/trunk/configure.in
+   M /irssi/trunk/irssi.spec.in
+
+- new way to update Version: field in spec
+- new target for make 'make rpm'
+
+------------------------------------------------------------------------
+r8 | wiget | 1999-09-03 14:48:46 +0000 (Fri, 03 Sep 1999) | 3 lines
+Changed paths:
+   M /irssi/trunk/NEWS
+
+- NEWS is news file :-)
+- ChangeLog is cvs log
+
+------------------------------------------------------------------------
+r4 | cras | 1999-09-03 14:32:03 +0000 (Fri, 03 Sep 1999) | 2 lines
+Changed paths:
+   A /irssi/trunk/src/lib-config
+   A /irssi/trunk/src/lib-config/.cvsignore
+   A /irssi/trunk/src/lib-config/Makefile.am
+   A /irssi/trunk/src/lib-config/irssi-config.c
+   A /irssi/trunk/src/lib-config/irssi-config.h
+
+Initial revision
+
+------------------------------------------------------------------------
+r3 | cras | 1999-09-03 14:27:29 +0000 (Fri, 03 Sep 1999) | 2 lines
+Changed paths:
+   M /irssi/trunk
+   A /irssi/trunk/.cvsignore
+   A /irssi/trunk/AUTHORS
+   A /irssi/trunk/COMMANDS
+   A /irssi/trunk/Makefile.am
+   A /irssi/trunk/NEWS
+   A /irssi/trunk/README
+   A /irssi/trunk/README-HEBREW
+   A /irssi/trunk/TODO
+   A /irssi/trunk/acconfig.h
+   A /irssi/trunk/autogen.sh
+   A /irssi/trunk/colorless.theme
+   A /irssi/trunk/config
+   A /irssi/trunk/configure.in
+   A /irssi/trunk/file2header.sh
+   A /irssi/trunk/irssi.desktop
+   A /irssi/trunk/irssi.gnorba
+   A /irssi/trunk/irssi.spec.in
+   A /irssi/trunk/servertest
+   A /irssi/trunk/servertest/.cvsignore
+   A /irssi/trunk/servertest/Makefile.am
+   A /irssi/trunk/servertest/server.c
+   A /irssi/trunk/src
+   A /irssi/trunk/src/.cvsignore
+   A /irssi/trunk/src/Makefile.am
+   A /irssi/trunk/src/common-setup.h
+   A /irssi/trunk/src/common.h
+   A /irssi/trunk/src/irssi-plugin-gui.h
+   A /irssi/trunk/src/irssi-plugin.h
+   A /irssi/trunk/src/signal.doc
+   A /irssi/trunk/stamp.h.in
+   A /irssi/trunk/window-views-patch.diff
+
+Initial revision
+
+------------------------------------------------------------------------
+r2 | (no author) | 1999-09-03 14:27:29 +0000 (Fri, 03 Sep 1999) | 1 line
+Changed paths:
+   A /irssi/branches
+   A /irssi/tags
+   A /irssi/trunk
+
+New repository initialized by cvs2svn.
+------------------------------------------------------------------------
index a5fd056def06bd10e2868b4868f3b792b32b7e0d..b34e482f693f836066d682690585c07bae102085 100644 (file)
@@ -1,25 +1,25 @@
+ACLOCAL_AMFLAGS = -I .
+
 # create default-config.h
-config.h: default-config.h default-theme.h
+BUILT_SOURCES = default-config.h default-theme.h irssi-version.h
+
+.PHONY: irssi-version.h
 
 default-config.h: $(srcdir)/silc.conf
        $(srcdir)/file2header.sh $(srcdir)/silc.conf default_config > default-config.h
 default-theme.h: $(srcdir)/default.theme
        $(srcdir)/file2header.sh $(srcdir)/default.theme default_theme > default-theme.h
 
-if BUILD_PLUGINS
-PLUGINS=plugins
-endif
-if BUILD_SERVERTEST
-SERVERTEST=servertest
-endif
+#if BUILD_PLUGINS
+#PLUGINS=plugins
+#endif
 
 SUBDIRS = src docs scripts
 
 include $(top_srcdir)/Makefile.defines.in
 
-#confdir = $(sysconfdir)
 confdir = $(silc_etcdir)
-conffile = silc.conf
+conf_DATA = silc.conf
 
 if SILCPLUGIN
 themedir = $(datadir)/irssi/themes
@@ -29,53 +29,20 @@ themedir = $(datadir)/silc/themes
 theme_DATA = default.theme plugin.theme
 endif
 
-noinst_HEADERS = irssi-version.h.in
+noinst_HEADERS = irssi-config.h irssi-version.h
 
 EXTRA_DIST = \
+       ChangeLog \
        autogen.sh \
        curses.m4 \
        README \
        file2header.sh \
        silc-client.spec \
-       $(conffile) \
+       $(conf_DATA) \
        $(theme_DATA) \
        irssi-config.in \
        irssi-icon.png \
+       irssi-version.sh \
        syntax.pl \
        Makefile.defines.in \
        Makefile.defines_int.in
-
-## make rpms
-rpm: Makefile
-       $(MAKE) dist
-       rpm -ta --clean $(PACKAGE)-$(VERSION).tar.gz
-
-install-dirs-client:
-       -mkdir -p $(docdir)
-       -mkdir -p $(mandir)/man1
-
-doc-install-client:
-       $(INSTALL_DATA) $(silc_top_srcdir)/apps/irssi/silc.conf $(docdir)/example_silc.conf
-       -@if test -f $(silc_top_srcdir)/doc/silc.1 ; then \
-        $(INSTALL_DATA) $(silc_top_srcdir)/doc/silc.1 $(mandir)/man1; \
-       fi
-
-etc-install-client:
-       -@if test -d $(silc_top_srcdir)/apps/irssi ; then \
-         mkdir -p $(etcdir) ; \
-         if test '!' -f $(etcdir)/silc.conf ; then \
-           $(INSTALL_DATA) $(silc_top_srcdir)/apps/irssi/silc.conf \
-               $(etcdir)/silc.conf; \
-         fi; \
-       fi
-
-if SILCPLUGIN
-ETCINSTALL=
-else
-ETCINSTALL=etc-install-client
-endif
-
-install-data-hook:             \
-       install-dirs-client     \
-       doc-install-client      \
-       $(ETCINSTALL)
index 5d94290d75b00b1ce6f42e52a4fc282a641ffb14..afffdde9b30bd1092b1b23ae5dc89dddd8f73cb7 100644 (file)
@@ -1,4 +1,236 @@
-v0.8.11 200x-xx-xx  The Irssi team <staff@irssi.org>
+v0.8.16-rc1 2013-06-26  The Irssi team <staff@irssi.org>
+       + Add -noautosendcmd to /SERVER and /CONNECT. Passing this option will
+         force Irssi to not execute the content of the autosendcmd chatnet-setting
+         upon connect.
+       + Accept names replies with nick!user@host instead of just nick, if they
+         are enabled (see bug #805).
+       + Set window binds for channel items as sticky when re-creating window
+         binds as part of /layout save. This fixes the bug where previously saved
+         channel windows forgets their window number upon reconnect.
+       + Add experimental support for DNSSEC DANE validation of certificates.
+       + Strip the argument for boolean options (see bug #769).
+       + Freenode have been readded to the list of networks in the default
+         configuration file.
+       + Disabled support for the insecure SSLv2 protocol.
+       + Various documentation enhancements.
+       - Fix crashing bug that can happen if the terminal height decreases before
+         the first window is created.
+       - Fixed minor compiler warnings.
+       - Fixed possible crashing bug when processing an octal escape sequence.
+       - Fixed the /ignore -network option (see bug #748).
+       - Fixed signal handling for /exec'd commands. Irssi now sends the signal to
+         the process group id instead of the process id.
+       - Fixed segfault generated by SSL disconnections (see bug #752).
+
+v0.8.15 2010-04-03  The Irssi team <staff@irssi.org>
+       + Add active_window_ignore_refnum option
+         With active_window_ignore_refnum ON, the current behavior for the
+         active_window key (meta-a by default) is preserved: it switches to the
+         window with the highest activity level that was last activated.
+         With active_window_ignore_refnum OFF, the old behavior is used:
+         it switches to the window with the highest activity level with the
+         lowest refnum. (by Matt Sparks, bug #667)
+       + Show new Charybdis +q list in channel windows (numerics 728 and 729).
+       + Allow servers to belong to multiple networks.
+       + Improve paste detection. Irssi now detects a paste if it reads at
+         least three bytes in a single read; subsequent reads are associated to
+         the same paste if they happen before 'paste_detect_time' time since
+         the last read. If no read occurs after 'paste_detect_time' time the
+         paste buffer is flushed; if there is at least one complete line its
+         content is sent as a paste, otherwise it is processed normally.
+       + Show "target changing too fast" messages in the channel/query window.
+       + Use default trusted CAs if nothing is specified. This allows useful
+         use of -ssl_verify without -ssl_cafile/-ssl_capath, using OpenSSL's
+         default trusted CAs.
+       + Show why an SSL certificate failed validation.
+       + Make own nick and actions use default colour instead of white
+         (by Tim Retout).
+       - Change some characters illegal in Windows filenames to underscores in
+         logs
+       - Fix disconnects when sending large amounts of data over SSL
+       - Show all nicks instead of just the first in an /accept * listing
+         (Bug #704)
+       - Make several signals without parameters available to perl again.
+         In particular, this includes the "beep" signal
+         (by Matt Sparks, bug #674)
+       - Close the config file fd after saving (by Sven Wegener)
+       - Check if an SSL certificate matches the hostname of the server we are
+         connecting to.
+       - Fix bash'isms, use command -v instead of which and use bc -l in /CALC.
+       - Fix a crash with handling the DCC queue.
+       - Fix crash when checking for fuzzy nick match when not on the channel.
+         Reported by Aurelien Delaitre (SATE 2009).
+
+v0.8.14 2009-07-28  The Irssi team <staff@irssi.org>
+       + Make /reset an alias for /set -default.
+       + Make /unset an alias for /set -clear.
+       + Allow ctrl+home / ctrl+end to go to the beginning / end of scrollback.
+       + Accept WHOX reply (354 numeric) as a /who reply.
+       + Show numerics directed at channels in the channel window.
+       + The time duration parser is more strict now.
+       - Fix out of bounds access in event_wallops().
+       - Build fix for OS X.
+       - Fix the autolog_ignore_targets logic to work correctly with manually
+         opened log files (see bug #673).
+
+v0.8.13 2009-04-01  The Irssi team <staff@irssi.org>
+       + Reject some obviously invalid values in /set.
+       + Add perl bindings for Window::get_history_lines
+       + Use an io channel to write the config file.
+       + Use memory slices instead of memory chunks for text buffer.
+       + Remove methods to create/destroy TextBuffer and TextBufferView and low level
+         api to add/remove lines, scripts should be fine using Window::print_after and
+         TextBufferView::remove_line.
+       + Add print_after method to Window perl object analogous to
+         gui_printtext_after but which also expands formats and forces a full line.
+       + Better mapping of signal parameters to Perl. All signals used in scripts
+         now need to be registered with Irssi::signal_register.
+       + Add public header with interfaces to manage statusbar items (bug #535)
+       + Recode: assume utf-8 encoding for an ascii string in which no escape
+         character occurs (bug #392).
+       + Allow /BAN, /UNBAN, /KICKBAN, /KNOCKOUT if channel is not synced.
+         Requesting ban lists from an unsynced channel will ask
+         them from the server, banning a user whose u@h irssi
+         does not know will ban nick!*@* and only bans irssi
+         knows about can be removed.
+       + Allow storing multiple "other" prefixes such as +q and +a (original patch
+         by JasonX)
+       + Add /set autolog_ignore_targets for cherry-picking targets that shouldn't
+         get logged.
+       + Add support for 16 colors. Formats KBGCRMYW and mirc colors are now
+         mapped to colors 8-15. fe-text translates colors 8-15 to bold/blink+0-7
+         if the terminal supports only 8 colors. If your theme uses one of
+         the high color formats and you really want bold you can change
+         %FMT<string> to %fmt%_<string>%_, it will work fine in all irssi versions.
+       + Better 005 PREFIX support (bug #580).
+       + Display 407 numerics other than "duplicate channel".
+       + Fix display of ratbox-style operspy whois.
+       + Recode outgoing irc away messages (bug #412).
+       + Recode outgoing irc quit messages.
+       + Remove scrollback_levelclear_levels setting and add a 'level' option
+         to 'sb levelclear' to specify a comma separated list of levels.
+       + Add perl __WARN__ handler for scripts (bug #427).
+       + Add Irssi::command_parse_options function to parse options for a command.
+       + Revert recode changes introduced in 0.8.12.
+       + Add completion for /WINDOW SERVER.
+       + Support for reading kicks/msgs from TARGMAX/MAXTARGETS 005 tokens.
+       + Enhancements to the redirections code.
+       + Support for RPL_WHOISACTUALLY (338 numeric) for both ratbox and ircu
+         (bug #428).
+       + -idle option of /notify is gone.
+       + /layout save now makes window-channel bindings instantly effective
+         (bug #35).
+       + /ping without arguments does not send anymore a ctcp ping to a channel
+         (bug #542).
+       + Track IRC operator status of nicks a bit better.
+       + new 'actlist_names' option to add active items names in 'act'
+         statusbar item.
+       + new 'word_completion_backward' command to scroll backwards in the
+         completion list.
+       + add 'list' option to /bind to print all the available commands.
+       + show setter/time in +I lists
+       + apply -usermode before -autosendcmd (bug #548).
+       + reduce memory usage of the scrollback buffer and make the display
+         in /sb status more accurate (higher).
+       + fix data getting dropped when a lot is sent at a time (e.g. when
+         attaching to irssi-proxy, bug #528).
+       + introduce the type Irssi::Irc::Client and signals to communicate with
+         proxy clients to allow for scripting parts of the irssi-proxy.
+       + Add sb_search.pl, a script for /SCROLLBACK SEARCH
+       - Fix /NOTIFY list when nick is seen joining (bug #642).
+       - Include hostmask in 001 event sent by proxy (bug #650).
+       - Be more power-friendly: don't run any always-on <1s timers (bug #641).
+       - Don't get confused by a failed /JOIN -window (bug #644).
+       - Properly initialize embedded Perl (PERL_SYS_INIT3).
+       - Replace invalid utf-8 bytes with U+FFFD when drawing a line.
+       - Properly unload the original script when using /script load to reload it.
+         (bug #525, patch by Lukas Mai)
+       - Clean up script loading in general:
+          * Don't leak local variables to eval'd code.
+          * Set filename/line number to get better error messages from perl.
+          * Use three-arg open and lexical filehandles to avoid surprises.
+          * Include error reason in message for unopenable scripts.
+          * Don't wrap script code in sub handler { } - this avoids spurious warnings and
+            should at least allow __END__ to work properly.
+         (Patch by Lukas Mai)
+       - Fix NETSPLIT_SERVER_REC in signals for Perl.
+       - Remove buggy /SCROLLBACK redraw and /SET scrollback_save_formats.
+       - Always preserve the active mainwindow when resizing.
+       - Ignore DNS not found errors when considering reconnect.
+       - Do not strip the comma in a mirc color if it is not followed by a digit (bug #250).
+       - Fix building perl module with perl-5.10 (bug #630).
+       - fix leak with $L expando.
+       - fix possible crash with /script reset.
+       - ignore exceptions take precedence over ignores in all cases.
+       - honour -channels preference for ignore -replies (bug #227).
+       - Fix mode display in whois with unreal (379 numeric) (bug #479).
+       - Fix regressions that prevented external modules from building/working
+         (bugs #537 #539).
+       - Fix /set hilight_level not taking effect immediately (bug #598).
+       - Fix bold, blinking and indentation in /LASTLOG and buf.pl.
+
+v0.8.12 2007-10-06  The Irssi team <staff@irssi.org>
+       + Some changes to character set recoding.
+       + Rewrite SSL connection/handshake code.
+       + Remove support for glib 1.x.
+       + Do not send our hostname to the server (bug #488).
+       + Add $tag to 'window' item in default configuration.
+       + Pick up host changes on charybdis and ircu servers (396 numeric).
+       + Show various errors such as "cannot send to channel" and "cannot
+         /msg, user is +g" in the channel or query window, if possible,
+         and always include the user or channel name.
+       + Channel forwarding in hyperion and charybdis is now recognized
+         (470 numeric) and the target channel is joined in the window where
+         the original channel would have been joined.
+       + Add support for the ACCEPT command, which is part of the CALLERID
+         server side ignore system in hybrid7 and derived ircds.
+       + Make /WINDOW GOTO start searching at the window after the active
+         one and stop at the one before (bug #332).
+       + Improve completion for /SET.
+       + Use CASEMAPPING dependent comparison to match channel names.
+         Patch by Jon Mayo (bug #436).
+       + Various improvements to the help files.
+       + Add Perl bindings for some gui_entry methods
+       + Make alt/meta+arrow keys work in recent versions of xterm (bug #496)
+       - Fix DCC get when file size is 0 (bug #494).
+       - Ignore empty lines when pasting.
+       - Fix large file support on AIX (bug #404).
+       - Remove broken code that prevents unloading of a script in some cases.
+       - Fix logging lines with no target to all logs, broken in 0.8.11.
+       - Fix casemapping dependent nick and channel matching (bug #436).
+       - Update chanop flag before emitting nick mode changed signal (patch
+         by Johan Kiviniemi)
+       - Fix recognition of realnames starting with spaces in /WHO.
+       - Show "Target left IRC" error messages fully (instead of reporting
+         no such nick "*")
+       - Repair channels_rejoin_unavailable. Enabled by default, this retries
+         joins that failed because of netsplits (channel temporarily
+         unavailable (437), duplicate channel). A few servers abuse 437 for
+         juped channels which should not be retried, you should disable
+         channels_rejoin_unavailable if this is a problem.
+       - Display 437 and 407 numerics if channels_rejoin_unavailable
+         is not enabled (bug #495).
+       - Don't add the same mask to the /KNOCKOUT list multiple times
+         (bug #510).
+       - Use MSGLEVEL_NICKS again for printing a nick change in queries,
+         broken in r2389.
+       - Fix some /LASTLOG -before/-after issues.
+       - Some fixes to the build system.
+       - Fix paste sending the first line twice (bug #405)
+       - When parsing a numeric option verify that the whole argument, rather
+         than only the first character, is numeric.
+       - Some fixes for notices, actions and ctcps to @#channel and +#channel
+         (bug #46)
+
+v0.8.11 2007-04-25  The Irssi team <staff@irssi.org>
+       + Add completion for /WINDOW GOTO
+       + New crapbuster-like "scrollback levelclear" command
+       + irssi now aborts a connection when, on an attempt to connect, the server
+         returns code 432 (Erroneous Nickname), bug #425
+       + Allow identifiers in config file to start with a digit, bug #177.
+       + Modify Irssi::UI::Window::command to restore the original active window
+         only if the command executed has not made another one active, bug #403.
+       + Make awaylog_file respect --home, bug #304
        + Send /QUOTE immediately if server didn't send the 001 event yet
        + If dcc_own_ip contains IPv4 address, listen only in IPv4
        + Negative scroll_page_count scrolls screensize-n lines
@@ -9,16 +241,19 @@ v0.8.11 200x-xx-xx  The Irssi team <staff@irssi.org>
        + Don't wait for all /NAMES replies before syncing if we can't combine
          queries anyways (Patch by jilles)
        + Renamed irc.efnet.net to irc.efnet.org
-       + Add support for utf8 to Irssi::settings_get_str and
-         Irssi::TextUI::Line::get_text
        + /SCROLLBACK CLEAR accepts the same arguments as /CLEAR
        + Check if binary exists and can be executed before /UPGRADE
        + Change default value of override_coredump_limit to OFF
        + UPTIME command by Lauri Nurmi with some modifications (Bug 458)
        + Remove CR and LF from Perl commands, to make it harder to introduce a
          security bug
+       + Remove bookmark on a line when line is removed (instead of moving it)
+       + Don't fallback to generic word completer if the command specific
+         completion list is not empty.
+       + Recognize cursor left and cursor right sequences sent by recent xterm
+       - Fix some UTF-8 issues, bugs #452 (Patch by Yi-Hsuan Hsin), #459, #460
        - Fixed segfault on quit introduced in 0.8.10
-       - Fixed a bug where tab-complete didn't worked with utf8/big5 properly
+       - Fixed a bug where tab-completion didn't work with utf8/big5 properly
        - Ignore joins without a nick from broken servers
        - Fix whois_hide_safe_channel_id: only look at the beginning of a channel
          name, not in the middle
@@ -29,14 +264,13 @@ v0.8.11 200x-xx-xx  The Irssi team <staff@irssi.org>
        - Don't get confused by a join command with too many arguments, keys
          can't have spaces in them (Bug 437)
        - Don't crash on /QUIT with scripts causing and catching signals on UNLOAD
-       - Fix off-by-one error in gui_entry_draw_from
        - Fix %k and %K mappings in curses frontend
        - Fix bold on monochrome terminals in terminfo frontend
        - Fixed colors with TERM=xterm-{88,256}color in terminfo frontend
+       - Fix crash with one line high terminal in terminfo frontend
        - Fix building with srcdir != builddir
        - Don't get confused and keep saying "Netsplit over" on every join for
          user that only rejoined some channels
-       - Fix crash with one line high terminal
        - Fix crash in /EXEC (Bug 439)
        - Fix format string in printtext_dest call from Perl, patch by loafier
        - Fix memory leaks in expandos_deinit by Nicolas Collignon (Bug 419)
@@ -44,6 +278,13 @@ v0.8.11 200x-xx-xx  The Irssi team <staff@irssi.org>
          cross-compiling in autoconf-2.50 and higher
        - Fix failed assertion when the config file is unreadable, patch by
          Daniel Koning (Bug 164)
+       - Removed automatic glib downloading and compiling.
+       - Fix /FORMAT -delete daychange so it doesn't print an empty line
+       - Forbid /WINDOW SHOW when the target window is sticky rather than when
+         there is a window bound to the container of the target window.
+       - Improve interaction between autolog and non autolog logs
+       - Recognize local oper mode on ircnet (mode +O)
+       - Properly initialize reference count for a new setting (Bug #235)
 
 v0.8.10 2005-12-11  The Irssi team <staff@irssi.org>
 
@@ -75,7 +316,7 @@ v0.8.10 2005-12-11  The Irssi team <staff@irssi.org>
          /WHO list to avoid getting kicked out of server (Max SendQ exceeded).
        + /LOAD script.pl loads the perl script
        + /IGNORE -network ignores only on specified network
-       + /SET use_status_window and /SET use_msgs_window make the effects 
+       + /SET use_status_window and /SET use_msgs_window make the effects
          immediately
        + Changed the confusing "ircnet" to "network" everywhere
        + Don't autoget files sent to channels, unless dcc_autoget_masks is set
@@ -93,7 +334,7 @@ v0.8.10 2005-12-11  The Irssi team <staff@irssi.org>
          /SET recode_fallback <charset> to specify a charset that will be
          used when the normal conversion is failing.
          /SET recode_transliterate ON to enable character transliteration,
-         so unavailable characters will be transliterated into something 
+         so unavailable characters will be transliterated into something
          readable
          <charset> can be almost everything listed by 'iconv -l'
        + Added transpose_words, capitalize_word, downcase_word, upcase_word
@@ -135,7 +376,7 @@ v0.8.10 2005-12-11  The Irssi team <staff@irssi.org>
        - Fixed bug with time settings where hours actually returned 60*hours
        - Fix multiple entries for local IP in /etc/hosts prevents connecting,
          patch by eridius (Bug 167)
-       - Fixed a bug with /me, use the right arguments for 
+       - Fixed a bug with /me, use the right arguments for
          "message irc own_action"
        - Update our own nickrec->gone flag on /away <reason> or on /away
        - Fixed output of /hilight (add a space after -levels if any)
@@ -173,7 +414,7 @@ v0.8.9 2003-12-11  Timo Sirainen <tss@iki.fi>
 
        + /SET auto_whowas OFF allows now disabling automatic /whowas when
          /whois doesn't find a nick (by Borys)
-       - If pasted line starts with command char, treat it as command always. 
+       - If pasted line starts with command char, treat it as command always.
          Paste detection can go on too easily with lagged connections.
 
 v0.8.8 2003-11-23  Timo Sirainen <tss@iki.fi>
@@ -690,7 +931,7 @@ v0.7.96 2000-10-19  Timo Sirainen <tss@iki.fi>
          so adding other IRC-like protocols (but not IRC) would be easier.
          This was mostly done to make SILC plugin work.
        * Perl was split to Irssi and Irssi::Irc packages. You'll currently
-         need to use both of them with perl scripts ("use Irssi; 
+         need to use both of them with perl scripts ("use Irssi;
          use Irssi::Irc;). This might not be needed in future :)
        * Changes:
           - /SET default_nick -> /SET nick
@@ -705,8 +946,8 @@ v0.7.96 2000-10-19  Timo Sirainen <tss@iki.fi>
        + Actions will now show up in window activity with hilight or
          message-color, not the text-color as before.
        + Added tab-completion for /BIND's commands.
-       + Perl support is now built as runtime loadable module by default. 
-         You can still build it statically with --enable-perl=static 
+       + Perl support is now built as runtime loadable module by default.
+         You can still build it statically with --enable-perl=static
          configure option.
        + /SET completion_nicks_lowercase - when completing nicks always
          write the nick with lowercase (uppercase letters are ugly ;)
@@ -1599,7 +1840,7 @@ v0.7.14 1999-08-22  Timo Sirainen <cras@irccrew.org> [unstable]
 
        * Irssi uses now libPropList to read and save configuration file, so
          you need to have libPropList installed, it's also in different
-         format so your old config file doesn't work anymore. 
+         format so your old config file doesn't work anymore.
 
          Configuration file is located now in ~/.irssi/config file.
          Themes are also now stored in separate files in ~/.irssi/*.theme
@@ -2323,7 +2564,7 @@ v0.3.5 1999-01-26  Timo Sirainen <a@sicom.fi>
           with _HEAVY_ network load (ie. if there's buffer overflows or some
           other weird bugs). It doesn't :)
         + Preferences: Maximum number of channels to display in panel
-        - When leaving from channels, panel didn't redraw it's list correctly        
+        - When leaving from channels, panel didn't redraw it's list correctly
        - Leaving channels in tabbed window mode crashed
        - Fixed crash if connection got lost
 
index d6a88764ed7376b2472fbb48067665ce076e24ba..a2bf1e7abe698522e0387d42dd04a713b0246c93 100644 (file)
@@ -105,12 +105,11 @@ think of currently:
 
  * BUGS / SUGGESTIONS
 
-See TODO file if it is already listed in there - if not send me email..
+See TODO file and http://bugs.irssi.org if it is already listed in there;
+if not open a bugreport on http://bugs.irssi.org or send a mail to
+staff@irssi.org
 
+You can also contact the Irssi developers on #irssi @ EFnet, Freenode, IRCnet,
+Quakenet and Undernet.
 
- * AUTHOR
-
- - Timo Sirainen
- - cras@irssi.org
- - cras at ircnet/opn/silc
- - #irssi at ircnet/opn, #irssi.fi, #irssi.de and #irssi.pl at ircnet
+The IRCnet channel is for development related questions and discussions.
index bc2cef99159545b0b1e73839d863e72721fd34ad..7d28a3f005f5d9d5375763f2ce8e44a3d9e661aa 100644 (file)
@@ -1,43 +1,20 @@
- - /whowas server nick doesn't work
-01:18 <@darix> cras: /foreach server /disconnect $tag n8 <-- doesnt work
- - /hilight -priority is broken
-19:36 [IRCNet] [muzzy] lisää bugeja irssissä, ilmeisesti 
-          uusin versio:  foo splittaa ulos, bar joinaa sisään, bar vaihtaa 
-          nicknamen fooksi, foo splittaa uudestaan ulos -> tulee Glib warning 
-          "is already in split list (how?)" .. :)
-
-04:35 [OPN] [slug] was just wondering if you 
-          had Irssi::keyboard_entry_redirect() on your TODO somewhere near the 
-          top, I'd love the feature
-04:35 [OPN] [slug] or someway to clear the 
-          command buffer, either way is acceptable, just my connection is a 
-          little less than reliable, so I've built myself a script that stores 
-          blowfish passes, all encrypted by one value
-04:36 [OPN] [slug] then I set a single 
-          decryption key, and it keeps it for the irssi session (lost on 
-          /upgrade though), unfortunatly it stays in the command buffer 8]
-
- - ^I in topicbar breaks things
-14:17 <@darix> cras: this doesnt work: /exec  - -o uname -a
-
- - "setup changed", or "setup reread" seems to cause crashes.. (with darix)
+19:36 [IRCNet] [muzzy] more bugs in irssi, apparently the new version:  foo splits out,
+                      bar joins, bar changes his nick to foo, foo splits again ->
+                      Glib warning "is already in split list (how?)" .. :)
+22:51 [IRCNet] [zhafte] irssi bugs if you put ACT to the right, or maybe it is my terminal?
+22:52 [IRCNet] [zhafte] the numbers tend to go on top of eachother
 02:46 <@fuchs> cras, /server foonet.foo.xy and (recognizing it doesn't connect 
                fast enough), and so doing /server barnet.foo.xy (both in the 
                same chatnet) makes irssi joining the net but not rejoining the 
                channels
 
 
-14:59 <@c0ffee> cras, bug report, mode change compression appears not to work: 
-                13:58 -!- mode/#*cut* [-b+ *cut*] by *cut* (i think it was -b+b)
 21:55 <@L> 17:04.11 <L> /eval /last quit;/clear;/sb goto 10:00;/last -clear;/sb end
 21:55 <@L> 17:04.27 <L> wait after it scrolls and press page up :)
 21:55 <@L> 17:04.48 <L> oh, you can make Irssi behave correctly with /clear
            again
 
- - /msg nick@server or nick%host is fully treated as nickname (log, query)
- - max_whois won't stay with reconnects?
- - support passive DCC
- - separate format for privmsg/notice massmessages (anything non-yournick)
 20:45 < Juerd> 19:44 -!- Irssi: critical file channels.c: line 122 
                (channel_find): assertion
 20:45 < Juerd>           `name != NULL' failed.
 20:46 < Juerd> and it happens in a _query_
 20:47 <@Juerd> cras: for some reason irssi doesn't know this happens in a 
                query, and displays "< Juerd:> foo" in the status window
- - set TOS field for all connections (DCC especially)
-22:51 [IRCNet] [zhafte] irssi muuten taitaa bugaa jos 
-          pistää ACT oikeaan reunaan, vai onkohan se vain mun terminaali?
-22:52 [IRCNet] [zhafte] menevät välillä päällekkäin 
-          numerot
- - when using -w password command line parameter, hide the password so it
-   won't show with ps.
-07.06.2002 08:37 #irssi: <@Qrczak> cras: A bug. After /upgrade when being away 
-                                   the awaylog is not being written to.
-21:37 < life> Then you connect. The problem is that irssi connects to the proxy 
-              server and directly afterwards send "USER ..."
-21:37 < life> It has to wait for "HTTP 200 ok" *first*
 04.06.2002 08:54 #irssi: <@Garion> cras: i've seen it several times now - a 
                                    line of 79 or 80 chars (my win is 80 wide) 
                                    which has an empty line below it, and that 
                                    window with that line in it, thus keeping 1 
                                    line from the old window in the current 
                                    window. Very confusing
-21:43 [IRCNet] [HiroP-(~HiroP@p508035EC.dip.t-dialin.net)] Hi there. I just 
-          wanted to tell you that there seems to be a problem when joining 
-          large channels (500+ people) while a regexp ignore is active. I had 
-          one to ignore all server ads
-21:43 [IRCNet] [HiroP-(~HiroP@p508035EC.dip.t-dialin.net)] 1 *: ALL -regexp 
-          -pattern .*erver.*nline.*
-21:43 [IRCNet] [HiroP-(~HiroP@p508035EC.dip.t-dialin.net)] After joining, I 
-          could see the nicklist and 1 or 2 lines of what people were saying. 
-          Then irssi either core-dumped, got disconnected or just sat there 
-          apparently without receiving any more data (lag-counter going up to 
-          several minutes). 
-
- - %n%_ ei näy lastlogissa
- - darixin se pingiredirectijuttu
-21:28 < Samus_Aran> cras: /log also shows #Linuux ... which I typod a couple
-                    days ago
-21:30 < Samus_Aran> it doesnt show any of the queries which i closed, though,
-                    jush #channels
 
- - "show statusbar in empty windows" flag?
- - statusbar_item_redraw() should just set the size as dirty and calculate
-   it only when really needed.
- - possible to cache sbar_item->size when nothing else has changed in sbar? 
-   ie. mostly when redrawing.
- - use_status_window, use_msgs_window sais toimia heti
- - /msg @#chan<tab>
-
- - hilight -priority
- - tab completio jos lisää utf8 juttuja niin ei oikein toimi?
 16:39 <@Qrczak> cras: I'm not sure how exactly to reproduce it but it happens 
                 often. When I jump to the window with a query using Alt-a 
                 (after the other person said something), and close the window 
                 windows, and then that person says something again, I'm brought 
                 to the new query window automatically (that's of course bad).
 
-21.04.2002 11:59 [immy(immy@beanus.org)] GLib warning: signal_free(script 
-          destroyed) : signal still has 3 references:
- - jos kickataan nopeasti ja joinaa takas nopeasti chansyncci kaataa
-/WHOssa.. kts. qrczak logi
- - /set show_server_tags tjsp että näyttäis aina (yhdistä hide_server_tagsin 
-   kanssa?)
-17:35 <@peder> cras: why isnt 'topic = " {sb_topic $topic}"' in the default 
- - /SBAR topic placement bottom ei toimi??
+ - import libsoup GnuTLS driver
+   http://svn.gnome.org/viewvc/libsoup/trunk/libsoup/soup-gnutls.c?view=log
+ - lastlog, ignore, hilight and sb levelclear take a list of levels
+   argument in different ways, a uniform way would be better.
+ - /exec - -out cat file does not send the whole file
+ - %n%_ won't show at lastlog..
+ - use_status_window, use_msgs_window should work instantly..
+ - /set show_server_tags or something to always show (combine with hide_server_tagsin ?)..
+ - /SBAR topic placement bottom won't work??..
+ - /op * complaining could be better than "not a good idea"..
+ - how did tab completion complete your own nick..?
+ - /win hide could work even though there are sticky things in that window..
+ - /window server -sticky windows doesn't always realize when a server connects?..
+ - tab completion doesn't work properly if I add utf8 things?..
+ - utf8-texts tend to bug in statusbar (prompt)..
+ - if /set reuse_unused_windows off, and the window seems to be empty,
+   and there would be only one of them it could still be used (?)..
+ - /foreach server /disconnect $tag n8 does not work
+ - /whowas server nick does not work
+ - /msg nick@server or nick%host is fully treated as nickname (log, query)
+ - max_whois won't stay with reconnects?
+ - separate format for privmsg/notice massmessages (anything non-yournick)
+ - set TOS field for all connections (DCC especially)
+ - "show statusbar in empty windows" flag?
+ - statusbar_item_redraw() should just set the size as dirty and calculate
+   it only when really needed.
+ - possible to cache sbar_item->size when nothing else has changed in sbar? 
+   ie. mostly when redrawing.
+ - /msg @#chan<tab>
  - /SB GOTO -<days> <ts>
- - /query -immortal so autoclose_queries wouldn't touch them
- - /SET hiascii_control_chars if 128..128+32 should be treated as control chars
-
-...
-
- - /exec -out kanavalla ei pelaa silcissä
+ - /query -immortal so autoclose_query wouldn't touch them
+ - autoclose_query is also closing (and finishing) dcc chats (bug #59 ?)
  - write about %[-s] etc. to default.theme
  - away handling is a bit buggy. you do /away;/away reason, irssi remembers
    the away reason only until it receives "you're no longer away" from the
    first command.. setting it back to away has then lost the reason.
- - crash: /exec -msg safari perl -e 'print "A"x600000'"
  - nick_ nick- _nick nick2 nick3 ...
-17.03.2002 22:25 #irssi.fi: <@Ion> cras: Jos sanon dcc chatissa että /exec - 
-                                   -out cat iso_tiedosto, niin miksi 
-                                   iso_tiedosto jää kesken? :)
- - /op * valitus vois olla joku parempi kuin "not a good idea"..
- - mitenkäs tabcompletio completoi taas omaakin nickkiä..?
- - /hilight -level "public -actions" or something so it wouldn't match
-   actions.
- - vanhan irssin /upgrades uuteen ennen sitä vaihtoi /set autolog_path:iin
-   $1 ja kaatui?..
- - /win hide vois pelata vaikka oliskin stickyjä siinä ikkunassa
  - /SAVE -all?
-14.03.2002 19:10 #irssi: <@fantazja> cras: autoclose_query is also closing (and 
-                                     finishing) dcc chats :/
- - /window server -sticky:tetyt ikkunat ei aina meinaa tajuta kun serveri
-   yhdistyy?
- - utf8-tekstitykset bugailee statusbarissa (promptissa)
- - jos /set reuse_unused_windows off, ja ikkuna näyttäis täysin tyhjälle
-   ja niitä olis vaan 1, niin sen vois kyllä käyttää silti (?)
- - /set beep_msg_level hilight ei toimi jos on /hilight -word
-
  - /STATUSBAR xx ENABLE|DISABLE recreates all statusbars which is a bit
    annoying because some scripts want to do it and input line is cleared
    because of this..
- - move /SET hilight_*color to theme
  - /SET disconnect_timeout - default 2min, 0 = immediately
  - reconnecting messages are a bit confusing. it prints "removed reconnection"
    to the server which it's connecting to next.. maybe the whole reconnecting
    thing should work so that the record stays there until it's connected
    successfully.
+ - /set beep_msg_level hilight won't work if I have /hilight -word
+ - /hilight -priority is broken
+ - move /SET hilight_*color to theme
  - /ignore, /hilight and /lastlog could complain immediately if used
    regexp is broken. /hilight list could show also if it's broken like
    /ignore does.
     - reconnections aren't transferred(?)
 
  - Logging:
-    - /LOG OPEN doesn't autocreate directories..
     - /LOG OPEN -targets *!*cras@*.fi
     - /SET autolog -> /LOG OPEN -targets * (internally, at least)
     - /LOG OPEN shouldn't really open the file until first line is 
       written in it
-    - /WINDOW LOG OFF doesn't work
     - autoclosing logs doesn't work too well. Problems are:
        - after certain inactivity private message logs should be closed
        - but DCC chats shouldn't be closed until the chat itself is closed
       /CATed when setting yourself unaway
     - /AWAYLOG could show the current awaylog and optionally reset it
     - The channel name should be optional there
+    - after /upgrade when being away the awaylog is not being written to.
 
  - Window item placing:
     - !channel vs. !12345channel. it's layout saved with full name, but joined
       the query window with the dcc chat window.
     - closed DCC chats should add temporary window bind to the dcc chat so
       future chats for same nick would use the same window
-    - /JOIN #foo could *optionally* move the channel to active window
-      (default off, it confuses people)
-    - /JOIN -ircnet #foo doesn't jump to #foo like /JOIN #foo does.
 
  - DCC
     - /DCC SEND wildcard support
     - show in query windows
 
  - Crashes:
-    - irssi crashes at quit if perl is loaded as module
-    - #1  0x68cc7 in module_file_deinit_gmodule (file=0x110e20) at modules-load.c:356 
     - <dg> i've managed to reproduce the bug, if i make three split windows (/window show 3..5), then set the windows to not be sticky  and go to one of the windows, then alt+number to another window then go back the other window the display prints two windows in the same window
-    - irssi -cserver -nnick -> crashes - lib-popt is buggy!
-        - bug as well but not crash: --config=foo --home=bar -c server
-    - /SB CLEAR still crashing sometimes?
-    - make sure irssi works with 0x0 sized terminal. 1x1 sized terminal
-      doesn't work if we use recreate_windows()
-    - /UNLOAD dcc, etc. static modules
+    - the old irssi's /upgrades to the new, before it changed to /set autolog_path
+      $1 and crashed?..
+    - active_mainwin was somehow NULL and crashed.. /window kill did it,
+      probably something to do with window_close() switching to the same
+      hidden window inside the split window, which I was about to kill
+      anyways because it wasn't sticky..
 
  - Scripts:
     - print whois in active window
       happens.
     - move into scripts:
        - /SET timestamp_timeout
-       - /MSG completion list should be modifyable from scripts
+       - /MSG completion list should be modifiable from scripts
           - script to remove nick from list after /IGNORE nick
        - nick completion list should be modifyable afterwards:
           - /SET completion_nicks_lowercase (remove from irssi)
 
  - Misc IRC related things:
     - support for mode +q in dancer - also same as +b %xxx modes..
-    - properly support RFC-1459 charset (ircnet specific option), eg.
-      /QUERY p[ and msgs from p{ aren't placed there.
     - /BAN -ip, -time [<time>] (/ALIAS knockout?)
     - /KICKBAN to support same options than /BAN (would /ALIAS kickban work?)
     - ban list prints "x seconds ago" .. should be x days, mins, hours, ..
 
  - Windows:
      - /WINDOW SIZE -sticky, so f.e. /WINDOW BALANCE wouldn't affect it.
-     - /LAYOUT save|reset doesn't affect anything immediately, only after
-       restart
      - Check that /LAYOUT SAVE works properly with all the different /SETs,
        like reuse_unsued_windows, windows_auto_renumber and autoclose_windows.
        What should it do if some channel is /PARTed with autoclose_windows 
       support for vi keys easily.
     - Editor-like (or bash-like) line editor - it would wrap to next line
       instead of scrolling.
-    - When pasting text, irssi could notice it and ask "pasting 30 lines
-      of text, ok?" .. Could send some signal that sends the pasted lines
-      in GList which signal handlers could modify. Also the first pasted
-      line could be somehow buffered so that it isn't sent immediately
-      so these paste handlers could modify it too.
+    - When pasting text, irssi could send some signal that sends the pasted
+      lines in GList which signal handlers could modify.
         - Already existing / at start of line handler should use this
         - Automatically remove empty space at the start/end of lines,
          from start of line it would work so that if each line begins with
          printed as-is (a few /BINDs would do this but...)
        - Should empty lines be pasted too? Maybe optionally
     - /BIND -askkey command
-    - /BIND -delete doesn't print that it did the deleting
-    - /BIND -deletes should be saved in config
+    - /BIND -delete should be saved in config
     - ^W (and some others) don't update cut buffer.
     - default binds: M-d, M-y
     - /PASSWORD command that asks you to type the password to entry line and
     - Key to execute the command, but not place it in history
     - Key to remove active entry from command history
     - Optionally save command history between restarts
+    - clear_history
 
  - Notify list:
     - showing who's online and who's offline doesn't work properly.
     - Show when the nick was last seen
 
  - Ignores:
-    - /IGNORE -ircnet or -tag
     - /IGNORE <nick> -> use hostmasking (related to channel syncing problem,
       see "bigger code changes") with support for -type and /SET ignore_type
     - /IGNORE -strip -pattern away * actions ..
     - /LAST -since <timestamp>
     - /LAST : use /SET timestamp_format
     - /LAST -allwindows would check the lastlog from all open windows
-    - /SCROLLBACK CLEAR all -public - a bit like /LAST -clear
-      (make /LAST -clear do /SB CLEAR lastlog)
 
  - Formats / themes:
     - scripting for formats (see the themes.txt), and make the default.theme
       signal_add() it
     - Irssi::keyboard_entry_redirect()
     - Irssi::format_get_text()
-    - "use Symbol(delete_package)" doesn't work with perl 5.004 and crashes
-      irssi .. at least remove the crashing!
     - Irssi::signal_remove() could accept hashes
     - /command parameter parser so it'd be easier to handle -options etc.
     - Try to get the Makefiles generated so that compiling with GCC would
     - A way to disable some command entirely? eg. not show in completion
       list or /HELP or anywhere..
 
- - Read server capabilities from 005 numeric
  - extra spaces after commands don't always work, eg /wii  nick, /help  xx
  - hide channel key in statusbar. This would require a $cmode_nokey or
    something..
  - /HELP <alias> should work
  - /CLEAR -all should clear the window activities as well, leaving hilights
  - support :: properly in IPv6 masks
- - /SET activity_hide_targets ircnet/#irssi
  - when you get disconnected, print your quit message to all channel windows
  - possibility to print rawlog in window
  - should $10 work (in special vars)?
    dircproxy identifies ircnets based on password
  - $@0 always returns 4 (?)
 
- - HÄMÄRÄT BUGIT:
-   ( - /win new hide, /win new, /win down, /win close -> crash ?)
-     - active_mainwin oli jotenkin NULL ja kaatoi.. /window killi teki sen,
-       liittyy varmaan jotenkin siihen että window_close() vaihtoi samaan
-       hiddenikkunaan splitti-ikkunan sisällä jota oltiin kuitenkin tappamassa
-       kun se ei ollut sticky..
-
 
 *** GTK UI
 
index fd8927c4051bea2ecd46561a2996a460e8ddc085..cfe623818dc94a73e74c41d787acbfe246e22798 100644 (file)
@@ -1,16 +1,11 @@
-/* paths */
-#undef SYSCONFDIR
-#undef HELPDIR
-#undef PLUGINSDIR
-
 /* misc.. */
 #undef HAVE_IPV6
-#undef HAVE_POPT_H
 #undef HAVE_SOCKS_H
-#undef HAVE_PL_PERL
 #undef HAVE_STATIC_PERL
 #undef HAVE_GMODULE
-#undef WANT_BIG5
+#undef HAVE_GC_H
+#undef HAVE_GC_GC_H
+#undef USE_GC
 
 /* macros/curses checks */
 #undef HAS_CURSES
 #undef HAVE_CURSES_RESIZETERM
 #undef HAVE_CURSES_WRESIZE
 
-/* nls */
-#undef ENABLE_NLS
-#undef HAVE_CATGETS
-#undef HAVE_GETTEXT
-#undef HAVE_LC_MESSAGES
-#undef HAVE_STPCPY
-
 /* terminfo/termcap */
 #undef HAVE_TERMINFO
 
-/* If set to 64, enables 64bit off_t for some systems (eg. Linux, Solaris) */
-#undef _FILE_OFFSET_BITS
-
 /* What type should be used for uoff_t */
 #undef UOFF_T_INT
 #undef UOFF_T_LONG
@@ -47,4 +32,3 @@
 
 /* printf()-format for uoff_t, eg. "u" or "lu" or "llu" */
 #undef PRIuUOFF_T
-
index 57abce89ebd56946f4b3034c8a5a73066349b4dc..d343a348ef467ccbd91ce0f5fa4fddcb3bafd0dd 100755 (executable)
@@ -10,7 +10,7 @@ if test ! -f $srcdir/irssi.cvs -a -f $srcdir/configure; then
   echo
   echo "Use ./configure instead"
   echo
-  echo "This script should only be run if you got sources from CVS."
+  echo "This script should only be run if you got sources from SVN."
   echo "If you really want to do this, say:"
   echo "  touch irssi.cvs"
   exit 0
@@ -22,128 +22,38 @@ if test ! -f $srcdir/configure.in; then
     exit 1
 fi
 
-# get versions
-version_date=`date +%Y%m%d`
-
 # create help files
 echo "Creating help files..."
 perl syntax.pl
 
+#$srcdir/update-changelog.sh $srcdir
+
 files=`echo docs/help/in/*.in|sed -e 's,docs/help/in/Makefile.in ,,' -e 's,docs/help/in/,!,g' -e 's/\.in /.in ?/g'`
 cat docs/help/in/Makefile.am.gen|sed "s/@HELPFILES@/$files/g"|sed 's/?/\\?/g'|tr '!?' '\t\n' > docs/help/in/Makefile.am
 
 files=`echo $files|sed 's/\.in//g'`
 cat docs/help/Makefile.am.gen|sed "s/@HELPFILES@/$files/g"|sed 's/?/\\?/g'|tr '!?' '\t\n' > docs/help/Makefile.am
 
-# .html -> .txt with lynx
-echo "Documentation: html -> txt..."
-
-echo "Checking auto* tools..."
-
-# *********** a bit modified GNOME's macros/autogen.sh **********
-DIE=0
-
-(autoconf --version) < /dev/null > /dev/null 2>&1 || {
-  echo
-  echo "**Error**: You must have \`autoconf' installed to compile $PKG_NAME."
-  echo "Download the appropriate package for your distribution,"
-  echo "or get the source tarball at ftp://ftp.gnu.org/pub/gnu/"
-  DIE=1
-}
-
-(grep "^AM_PROG_LIBTOOL" $srcdir/configure.in >/dev/null) && {
-  (libtool --version) < /dev/null > /dev/null 2>&1 || {
-    echo
-    echo "**Error**: You must have \`libtool' installed to compile $PKG_NAME."
-    echo "Get ftp://ftp.gnu.org/pub/gnu/libtool-1.2d.tar.gz"
-    echo "(or a newer version if it is available)"
-    DIE=1
-  }
-}
-
-(automake --version) < /dev/null > /dev/null 2>&1 || {
-  echo
-  echo "**Error**: You must have \`automake' installed to compile $PKG_NAME."
-  echo "Get ftp://ftp.gnu.org/pub/gnu/automake-1.3.tar.gz"
-  echo "(or a newer version if it is available)"
-  DIE=1
-  NO_AUTOMAKE=yes
-}
-
-
-# if no automake, don't bother testing for aclocal
-test -n "$NO_AUTOMAKE" || (aclocal --version) < /dev/null > /dev/null 2>&1 || {
+if test x$NOCONFIGURE = x && test -z "$*"; then
+  echo "**Warning**: I am going to run \`configure' with no arguments."
+  echo "If you wish to pass any to it, please specify them on the"
+  echo \`$0\'" command line."
   echo
-  echo "**Error**: Missing \`aclocal'.  The version of \`automake'"
-  echo "installed doesn't appear recent enough."
-  echo "Get ftp://ftp.gnu.org/pub/gnu/automake-1.3.tar.gz"
-  echo "(or a newer version if it is available)"
-  DIE=1
-}
-
-if test "$DIE" -eq 1; then
-  exit 1
 fi
 
-#if test -z "$*"; then
-#  echo "**Warning**: I am going to run \`configure' with no arguments."
-#  echo "If you wish to pass any to it, please specify them on the"
-#  echo \`$0\'" command line."
-#  echo
-#fi
+rm -f aclocal.m4
+echo "Running autoreconf ..."
+autoreconf -i || exit 1
 
-case $CC in
-xlc )
-  am_opt=--include-deps;;
-esac
+conf_flags="--enable-maintainer-mode"
 
-rm -f aclocal.m4 glib.m4 glib-2.0.m4
-if grep "^AM_PROG_LIBTOOL" configure.in >/dev/null; then
-  echo "Running libtoolize..."
-  libtoolize --force --copy
-fi
-aclocalinclude="$ACLOCAL_FLAGS -I ."
-echo "Running aclocal $aclocalinclude ..."
-
-# see if we don't have glib.m4 or glib-2.0.m4 there yet
-error=`aclocal $aclocalinclude 2>&1`
-if test "x`echo $error|grep 'AM_PATH_GLIB[^_]'`" != "x"; then
-  cp glib.m4_ glib.m4
-  error=`aclocal $aclocalinclude 2>&1`
-fi
-if test "x`echo $error|grep AM_PATH_GLIB_2_0`" != "x"; then
-  cp glib-2.0.m4_ glib-2.0.m4
-fi
-
-aclocal $aclocalinclude
-
-# aclocal for some reason doesn't complain about glib2, so we still need
-# to check it later again..
-if grep "^AC_DEFUN.AM_PATH_GLIB_2_0" aclocal.m4 >/dev/null; then :;
+if test x$NOCONFIGURE = x; then
+  echo Running $srcdir/configure $conf_flags "$@" ...
+  $srcdir/configure $conf_flags "$@" \
+  && echo Now type \`make\' to compile $PKG_NAME || exit 1
 else
-  cp glib-2.0.m4_ glib-2.0.m4
-  aclocal $aclocalinclude
+  echo Skipping configure process.
 fi
 
-if grep "^AM_CONFIG_HEADER" configure.in >/dev/null; then
-  echo "Running autoheader..."
-  autoheader
-fi
-echo "Running autoconf ..."
-autoconf
-echo "Running automake --gnu $am_opt ..."
-automake --add-missing --gnu $am_opt
-
-#conf_flags="--enable-maintainer-mode --enable-compile-warnings" #--enable-iso-c
-
-#if test x$NOCONFIGURE = x; then
-#  echo Running $srcdir/configure $conf_flags "$@" ...
-#  $srcdir/configure $conf_flags "$@" \
-#  && echo Now type \`make\' to compile $PKG_NAME || exit 1
-#else
-#  echo Skipping configure process.
-#fi
-
 # make sure perl hashes have correct length
 find src/perl -name *.c -o -name *.xs | xargs grep -n hv_store | perl -ne 'if (/"(\w+)",\s*(\d+)/) { print unless $2 == length $1 }'
-
diff --git a/apps/irssi/build-aux/depcomp b/apps/irssi/build-aux/depcomp
new file mode 100755 (executable)
index 0000000..debb6ff
--- /dev/null
@@ -0,0 +1,707 @@
+#! /bin/sh
+# depcomp - compile a program generating dependencies as side-effects
+
+scriptversion=2012-03-27.16; # UTC
+
+# Copyright (C) 1999-2012 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program that contains a
+# configuration script generated by Autoconf, you may include it under
+# the same distribution terms that you use for the rest of that program.
+
+# Originally written by Alexandre Oliva <oliva@dcc.unicamp.br>.
+
+case $1 in
+  '')
+     echo "$0: No command.  Try '$0 --help' for more information." 1>&2
+     exit 1;
+     ;;
+  -h | --h*)
+    cat <<\EOF
+Usage: depcomp [--help] [--version] PROGRAM [ARGS]
+
+Run PROGRAMS ARGS to compile a file, generating dependencies
+as side-effects.
+
+Environment variables:
+  depmode     Dependency tracking mode.
+  source      Source file read by 'PROGRAMS ARGS'.
+  object      Object file output by 'PROGRAMS ARGS'.
+  DEPDIR      directory where to store dependencies.
+  depfile     Dependency file to output.
+  tmpdepfile  Temporary file to use when outputting dependencies.
+  libtool     Whether libtool is used (yes/no).
+
+Report bugs to <bug-automake@gnu.org>.
+EOF
+    exit $?
+    ;;
+  -v | --v*)
+    echo "depcomp $scriptversion"
+    exit $?
+    ;;
+esac
+
+# A tabulation character.
+tab='  '
+# A newline character.
+nl='
+'
+
+if test -z "$depmode" || test -z "$source" || test -z "$object"; then
+  echo "depcomp: Variables source, object and depmode must be set" 1>&2
+  exit 1
+fi
+
+# Dependencies for sub/bar.o or sub/bar.obj go into sub/.deps/bar.Po.
+depfile=${depfile-`echo "$object" |
+  sed 's|[^\\/]*$|'${DEPDIR-.deps}'/&|;s|\.\([^.]*\)$|.P\1|;s|Pobj$|Po|'`}
+tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`}
+
+rm -f "$tmpdepfile"
+
+# Some modes work just like other modes, but use different flags.  We
+# parameterize here, but still list the modes in the big case below,
+# to make depend.m4 easier to write.  Note that we *cannot* use a case
+# here, because this file can only contain one case statement.
+if test "$depmode" = hp; then
+  # HP compiler uses -M and no extra arg.
+  gccflag=-M
+  depmode=gcc
+fi
+
+if test "$depmode" = dashXmstdout; then
+   # This is just like dashmstdout with a different argument.
+   dashmflag=-xM
+   depmode=dashmstdout
+fi
+
+cygpath_u="cygpath -u -f -"
+if test "$depmode" = msvcmsys; then
+   # This is just like msvisualcpp but w/o cygpath translation.
+   # Just convert the backslash-escaped backslashes to single forward
+   # slashes to satisfy depend.m4
+   cygpath_u='sed s,\\\\,/,g'
+   depmode=msvisualcpp
+fi
+
+if test "$depmode" = msvc7msys; then
+   # This is just like msvc7 but w/o cygpath translation.
+   # Just convert the backslash-escaped backslashes to single forward
+   # slashes to satisfy depend.m4
+   cygpath_u='sed s,\\\\,/,g'
+   depmode=msvc7
+fi
+
+if test "$depmode" = xlc; then
+   # IBM C/C++ Compilers xlc/xlC can output gcc-like dependency informations.
+   gccflag=-qmakedep=gcc,-MF
+   depmode=gcc
+fi
+
+case "$depmode" in
+gcc3)
+## gcc 3 implements dependency tracking that does exactly what
+## we want.  Yay!  Note: for some reason libtool 1.4 doesn't like
+## it if -MD -MP comes after the -MF stuff.  Hmm.
+## Unfortunately, FreeBSD c89 acceptance of flags depends upon
+## the command line argument order; so add the flags where they
+## appear in depend2.am.  Note that the slowdown incurred here
+## affects only configure: in makefiles, %FASTDEP% shortcuts this.
+  for arg
+  do
+    case $arg in
+    -c) set fnord "$@" -MT "$object" -MD -MP -MF "$tmpdepfile" "$arg" ;;
+    *)  set fnord "$@" "$arg" ;;
+    esac
+    shift # fnord
+    shift # $arg
+  done
+  "$@"
+  stat=$?
+  if test $stat -eq 0; then :
+  else
+    rm -f "$tmpdepfile"
+    exit $stat
+  fi
+  mv "$tmpdepfile" "$depfile"
+  ;;
+
+gcc)
+## There are various ways to get dependency output from gcc.  Here's
+## why we pick this rather obscure method:
+## - Don't want to use -MD because we'd like the dependencies to end
+##   up in a subdir.  Having to rename by hand is ugly.
+##   (We might end up doing this anyway to support other compilers.)
+## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like
+##   -MM, not -M (despite what the docs say).
+## - Using -M directly means running the compiler twice (even worse
+##   than renaming).
+  if test -z "$gccflag"; then
+    gccflag=-MD,
+  fi
+  "$@" -Wp,"$gccflag$tmpdepfile"
+  stat=$?
+  if test $stat -eq 0; then :
+  else
+    rm -f "$tmpdepfile"
+    exit $stat
+  fi
+  rm -f "$depfile"
+  echo "$object : \\" > "$depfile"
+  alpha=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
+## The second -e expression handles DOS-style file names with drive letters.
+  sed -e 's/^[^:]*: / /' \
+      -e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile"
+## This next piece of magic avoids the "deleted header file" problem.
+## The problem is that when a header file which appears in a .P file
+## is deleted, the dependency causes make to die (because there is
+## typically no way to rebuild the header).  We avoid this by adding
+## dummy dependencies for each header file.  Too bad gcc doesn't do
+## this for us directly.
+  tr ' ' "$nl" < "$tmpdepfile" |
+## Some versions of gcc put a space before the ':'.  On the theory
+## that the space means something, we add a space to the output as
+## well.  hp depmode also adds that space, but also prefixes the VPATH
+## to the object.  Take care to not repeat it in the output.
+## Some versions of the HPUX 10.20 sed can't process this invocation
+## correctly.  Breaking it into two sed invocations is a workaround.
+    sed -e 's/^\\$//' -e '/^$/d' -e "s|.*$object$||" -e '/:$/d' \
+      | sed -e 's/$/ :/' >> "$depfile"
+  rm -f "$tmpdepfile"
+  ;;
+
+hp)
+  # This case exists only to let depend.m4 do its work.  It works by
+  # looking at the text of this script.  This case will never be run,
+  # since it is checked for above.
+  exit 1
+  ;;
+
+sgi)
+  if test "$libtool" = yes; then
+    "$@" "-Wp,-MDupdate,$tmpdepfile"
+  else
+    "$@" -MDupdate "$tmpdepfile"
+  fi
+  stat=$?
+  if test $stat -eq 0; then :
+  else
+    rm -f "$tmpdepfile"
+    exit $stat
+  fi
+  rm -f "$depfile"
+
+  if test -f "$tmpdepfile"; then  # yes, the sourcefile depend on other files
+    echo "$object : \\" > "$depfile"
+
+    # Clip off the initial element (the dependent).  Don't try to be
+    # clever and replace this with sed code, as IRIX sed won't handle
+    # lines with more than a fixed number of characters (4096 in
+    # IRIX 6.2 sed, 8192 in IRIX 6.5).  We also remove comment lines;
+    # the IRIX cc adds comments like '#:fec' to the end of the
+    # dependency line.
+    tr ' ' "$nl" < "$tmpdepfile" \
+    | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \
+    tr "$nl" ' ' >> "$depfile"
+    echo >> "$depfile"
+
+    # The second pass generates a dummy entry for each header file.
+    tr ' ' "$nl" < "$tmpdepfile" \
+   | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \
+   >> "$depfile"
+  else
+    # The sourcefile does not contain any dependencies, so just
+    # store a dummy comment line, to avoid errors with the Makefile
+    # "include basename.Plo" scheme.
+    echo "#dummy" > "$depfile"
+  fi
+  rm -f "$tmpdepfile"
+  ;;
+
+xlc)
+  # This case exists only to let depend.m4 do its work.  It works by
+  # looking at the text of this script.  This case will never be run,
+  # since it is checked for above.
+  exit 1
+  ;;
+
+aix)
+  # The C for AIX Compiler uses -M and outputs the dependencies
+  # in a .u file.  In older versions, this file always lives in the
+  # current directory.  Also, the AIX compiler puts '$object:' at the
+  # start of each line; $object doesn't have directory information.
+  # Version 6 uses the directory in both cases.
+  dir=`echo "$object" | sed -e 's|/[^/]*$|/|'`
+  test "x$dir" = "x$object" && dir=
+  base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'`
+  if test "$libtool" = yes; then
+    tmpdepfile1=$dir$base.u
+    tmpdepfile2=$base.u
+    tmpdepfile3=$dir.libs/$base.u
+    "$@" -Wc,-M
+  else
+    tmpdepfile1=$dir$base.u
+    tmpdepfile2=$dir$base.u
+    tmpdepfile3=$dir$base.u
+    "$@" -M
+  fi
+  stat=$?
+
+  if test $stat -eq 0; then :
+  else
+    rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
+    exit $stat
+  fi
+
+  for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
+  do
+    test -f "$tmpdepfile" && break
+  done
+  if test -f "$tmpdepfile"; then
+    # Each line is of the form 'foo.o: dependent.h'.
+    # Do two passes, one to just change these to
+    # '$object: dependent.h' and one to simply 'dependent.h:'.
+    sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile"
+    sed -e 's,^.*\.[a-z]*:['"$tab"' ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile"
+  else
+    # The sourcefile does not contain any dependencies, so just
+    # store a dummy comment line, to avoid errors with the Makefile
+    # "include basename.Plo" scheme.
+    echo "#dummy" > "$depfile"
+  fi
+  rm -f "$tmpdepfile"
+  ;;
+
+icc)
+  # Intel's C compiler anf tcc (Tiny C Compiler) understand '-MD -MF file'.
+  # However on
+  #    $CC -MD -MF foo.d -c -o sub/foo.o sub/foo.c
+  # ICC 7.0 will fill foo.d with something like
+  #    foo.o: sub/foo.c
+  #    foo.o: sub/foo.h
+  # which is wrong.  We want
+  #    sub/foo.o: sub/foo.c
+  #    sub/foo.o: sub/foo.h
+  #    sub/foo.c:
+  #    sub/foo.h:
+  # ICC 7.1 will output
+  #    foo.o: sub/foo.c sub/foo.h
+  # and will wrap long lines using '\':
+  #    foo.o: sub/foo.c ... \
+  #     sub/foo.h ... \
+  #     ...
+  # tcc 0.9.26 (FIXME still under development at the moment of writing)
+  # will emit a similar output, but also prepend the continuation lines
+  # with horizontal tabulation characters.
+  "$@" -MD -MF "$tmpdepfile"
+  stat=$?
+  if test $stat -eq 0; then :
+  else
+    rm -f "$tmpdepfile"
+    exit $stat
+  fi
+  rm -f "$depfile"
+  # Each line is of the form 'foo.o: dependent.h',
+  # or 'foo.o: dep1.h dep2.h \', or ' dep3.h dep4.h \'.
+  # Do two passes, one to just change these to
+  # '$object: dependent.h' and one to simply 'dependent.h:'.
+  sed -e "s/^[ $tab][ $tab]*/  /" -e "s,^[^:]*:,$object :," \
+    < "$tmpdepfile" > "$depfile"
+  sed '
+    s/[ '"$tab"'][ '"$tab"']*/ /g
+    s/^ *//
+    s/ *\\*$//
+    s/^[^:]*: *//
+    /^$/d
+    /:$/d
+    s/$/ :/
+  ' < "$tmpdepfile" >> "$depfile"
+  rm -f "$tmpdepfile"
+  ;;
+
+hp2)
+  # The "hp" stanza above does not work with aCC (C++) and HP's ia64
+  # compilers, which have integrated preprocessors.  The correct option
+  # to use with these is +Maked; it writes dependencies to a file named
+  # 'foo.d', which lands next to the object file, wherever that
+  # happens to be.
+  # Much of this is similar to the tru64 case; see comments there.
+  dir=`echo "$object" | sed -e 's|/[^/]*$|/|'`
+  test "x$dir" = "x$object" && dir=
+  base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'`
+  if test "$libtool" = yes; then
+    tmpdepfile1=$dir$base.d
+    tmpdepfile2=$dir.libs/$base.d
+    "$@" -Wc,+Maked
+  else
+    tmpdepfile1=$dir$base.d
+    tmpdepfile2=$dir$base.d
+    "$@" +Maked
+  fi
+  stat=$?
+  if test $stat -eq 0; then :
+  else
+     rm -f "$tmpdepfile1" "$tmpdepfile2"
+     exit $stat
+  fi
+
+  for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2"
+  do
+    test -f "$tmpdepfile" && break
+  done
+  if test -f "$tmpdepfile"; then
+    sed -e "s,^.*\.[a-z]*:,$object:," "$tmpdepfile" > "$depfile"
+    # Add 'dependent.h:' lines.
+    sed -ne '2,${
+              s/^ *//
+              s/ \\*$//
+              s/$/:/
+              p
+            }' "$tmpdepfile" >> "$depfile"
+  else
+    echo "#dummy" > "$depfile"
+  fi
+  rm -f "$tmpdepfile" "$tmpdepfile2"
+  ;;
+
+tru64)
+   # The Tru64 compiler uses -MD to generate dependencies as a side
+   # effect.  'cc -MD -o foo.o ...' puts the dependencies into 'foo.o.d'.
+   # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put
+   # dependencies in 'foo.d' instead, so we check for that too.
+   # Subdirectories are respected.
+   dir=`echo "$object" | sed -e 's|/[^/]*$|/|'`
+   test "x$dir" = "x$object" && dir=
+   base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'`
+
+   if test "$libtool" = yes; then
+      # With Tru64 cc, shared objects can also be used to make a
+      # static library.  This mechanism is used in libtool 1.4 series to
+      # handle both shared and static libraries in a single compilation.
+      # With libtool 1.4, dependencies were output in $dir.libs/$base.lo.d.
+      #
+      # With libtool 1.5 this exception was removed, and libtool now
+      # generates 2 separate objects for the 2 libraries.  These two
+      # compilations output dependencies in $dir.libs/$base.o.d and
+      # in $dir$base.o.d.  We have to check for both files, because
+      # one of the two compilations can be disabled.  We should prefer
+      # $dir$base.o.d over $dir.libs/$base.o.d because the latter is
+      # automatically cleaned when .libs/ is deleted, while ignoring
+      # the former would cause a distcleancheck panic.
+      tmpdepfile1=$dir.libs/$base.lo.d   # libtool 1.4
+      tmpdepfile2=$dir$base.o.d          # libtool 1.5
+      tmpdepfile3=$dir.libs/$base.o.d    # libtool 1.5
+      tmpdepfile4=$dir.libs/$base.d      # Compaq CCC V6.2-504
+      "$@" -Wc,-MD
+   else
+      tmpdepfile1=$dir$base.o.d
+      tmpdepfile2=$dir$base.d
+      tmpdepfile3=$dir$base.d
+      tmpdepfile4=$dir$base.d
+      "$@" -MD
+   fi
+
+   stat=$?
+   if test $stat -eq 0; then :
+   else
+      rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4"
+      exit $stat
+   fi
+
+   for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4"
+   do
+     test -f "$tmpdepfile" && break
+   done
+   if test -f "$tmpdepfile"; then
+      sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile"
+      sed -e 's,^.*\.[a-z]*:['"$tab"' ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile"
+   else
+      echo "#dummy" > "$depfile"
+   fi
+   rm -f "$tmpdepfile"
+   ;;
+
+msvc7)
+  if test "$libtool" = yes; then
+    showIncludes=-Wc,-showIncludes
+  else
+    showIncludes=-showIncludes
+  fi
+  "$@" $showIncludes > "$tmpdepfile"
+  stat=$?
+  grep -v '^Note: including file: ' "$tmpdepfile"
+  if test "$stat" = 0; then :
+  else
+    rm -f "$tmpdepfile"
+    exit $stat
+  fi
+  rm -f "$depfile"
+  echo "$object : \\" > "$depfile"
+  # The first sed program below extracts the file names and escapes
+  # backslashes for cygpath.  The second sed program outputs the file
+  # name when reading, but also accumulates all include files in the
+  # hold buffer in order to output them again at the end.  This only
+  # works with sed implementations that can handle large buffers.
+  sed < "$tmpdepfile" -n '
+/^Note: including file:  *\(.*\)/ {
+  s//\1/
+  s/\\/\\\\/g
+  p
+}' | $cygpath_u | sort -u | sed -n '
+s/ /\\ /g
+s/\(.*\)/'"$tab"'\1 \\/p
+s/.\(.*\) \\/\1:/
+H
+$ {
+  s/.*/'"$tab"'/
+  G
+  p
+}' >> "$depfile"
+  rm -f "$tmpdepfile"
+  ;;
+
+msvc7msys)
+  # This case exists only to let depend.m4 do its work.  It works by
+  # looking at the text of this script.  This case will never be run,
+  # since it is checked for above.
+  exit 1
+  ;;
+
+#nosideeffect)
+  # This comment above is used by automake to tell side-effect
+  # dependency tracking mechanisms from slower ones.
+
+dashmstdout)
+  # Important note: in order to support this mode, a compiler *must*
+  # always write the preprocessed file to stdout, regardless of -o.
+  "$@" || exit $?
+
+  # Remove the call to Libtool.
+  if test "$libtool" = yes; then
+    while test "X$1" != 'X--mode=compile'; do
+      shift
+    done
+    shift
+  fi
+
+  # Remove '-o $object'.
+  IFS=" "
+  for arg
+  do
+    case $arg in
+    -o)
+      shift
+      ;;
+    $object)
+      shift
+      ;;
+    *)
+      set fnord "$@" "$arg"
+      shift # fnord
+      shift # $arg
+      ;;
+    esac
+  done
+
+  test -z "$dashmflag" && dashmflag=-M
+  # Require at least two characters before searching for ':'
+  # in the target name.  This is to cope with DOS-style filenames:
+  # a dependency such as 'c:/foo/bar' could be seen as target 'c' otherwise.
+  "$@" $dashmflag |
+    sed 's:^['"$tab"' ]*[^:'"$tab"' ][^:][^:]*\:['"$tab"' ]*:'"$object"'\: :' > "$tmpdepfile"
+  rm -f "$depfile"
+  cat < "$tmpdepfile" > "$depfile"
+  tr ' ' "$nl" < "$tmpdepfile" | \
+## Some versions of the HPUX 10.20 sed can't process this invocation
+## correctly.  Breaking it into two sed invocations is a workaround.
+    sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
+  rm -f "$tmpdepfile"
+  ;;
+
+dashXmstdout)
+  # This case only exists to satisfy depend.m4.  It is never actually
+  # run, as this mode is specially recognized in the preamble.
+  exit 1
+  ;;
+
+makedepend)
+  "$@" || exit $?
+  # Remove any Libtool call
+  if test "$libtool" = yes; then
+    while test "X$1" != 'X--mode=compile'; do
+      shift
+    done
+    shift
+  fi
+  # X makedepend
+  shift
+  cleared=no eat=no
+  for arg
+  do
+    case $cleared in
+    no)
+      set ""; shift
+      cleared=yes ;;
+    esac
+    if test $eat = yes; then
+      eat=no
+      continue
+    fi
+    case "$arg" in
+    -D*|-I*)
+      set fnord "$@" "$arg"; shift ;;
+    # Strip any option that makedepend may not understand.  Remove
+    # the object too, otherwise makedepend will parse it as a source file.
+    -arch)
+      eat=yes ;;
+    -*|$object)
+      ;;
+    *)
+      set fnord "$@" "$arg"; shift ;;
+    esac
+  done
+  obj_suffix=`echo "$object" | sed 's/^.*\././'`
+  touch "$tmpdepfile"
+  ${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@"
+  rm -f "$depfile"
+  # makedepend may prepend the VPATH from the source file name to the object.
+  # No need to regex-escape $object, excess matching of '.' is harmless.
+  sed "s|^.*\($object *:\)|\1|" "$tmpdepfile" > "$depfile"
+  sed '1,2d' "$tmpdepfile" | tr ' ' "$nl" | \
+## Some versions of the HPUX 10.20 sed can't process this invocation
+## correctly.  Breaking it into two sed invocations is a workaround.
+    sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
+  rm -f "$tmpdepfile" "$tmpdepfile".bak
+  ;;
+
+cpp)
+  # Important note: in order to support this mode, a compiler *must*
+  # always write the preprocessed file to stdout.
+  "$@" || exit $?
+
+  # Remove the call to Libtool.
+  if test "$libtool" = yes; then
+    while test "X$1" != 'X--mode=compile'; do
+      shift
+    done
+    shift
+  fi
+
+  # Remove '-o $object'.
+  IFS=" "
+  for arg
+  do
+    case $arg in
+    -o)
+      shift
+      ;;
+    $object)
+      shift
+      ;;
+    *)
+      set fnord "$@" "$arg"
+      shift # fnord
+      shift # $arg
+      ;;
+    esac
+  done
+
+  "$@" -E |
+    sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \
+       -e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' |
+    sed '$ s: \\$::' > "$tmpdepfile"
+  rm -f "$depfile"
+  echo "$object : \\" > "$depfile"
+  cat < "$tmpdepfile" >> "$depfile"
+  sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile"
+  rm -f "$tmpdepfile"
+  ;;
+
+msvisualcpp)
+  # Important note: in order to support this mode, a compiler *must*
+  # always write the preprocessed file to stdout.
+  "$@" || exit $?
+
+  # Remove the call to Libtool.
+  if test "$libtool" = yes; then
+    while test "X$1" != 'X--mode=compile'; do
+      shift
+    done
+    shift
+  fi
+
+  IFS=" "
+  for arg
+  do
+    case "$arg" in
+    -o)
+      shift
+      ;;
+    $object)
+      shift
+      ;;
+    "-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI")
+       set fnord "$@"
+       shift
+       shift
+       ;;
+    *)
+       set fnord "$@" "$arg"
+       shift
+       shift
+       ;;
+    esac
+  done
+  "$@" -E 2>/dev/null |
+  sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::\1:p' | $cygpath_u | sort -u > "$tmpdepfile"
+  rm -f "$depfile"
+  echo "$object : \\" > "$depfile"
+  sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::'"$tab"'\1 \\:p' >> "$depfile"
+  echo "$tab" >> "$depfile"
+  sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::\1\::p' >> "$depfile"
+  rm -f "$tmpdepfile"
+  ;;
+
+msvcmsys)
+  # This case exists only to let depend.m4 do its work.  It works by
+  # looking at the text of this script.  This case will never be run,
+  # since it is checked for above.
+  exit 1
+  ;;
+
+none)
+  exec "$@"
+  ;;
+
+*)
+  echo "Unknown depmode $depmode" 1>&2
+  exit 1
+  ;;
+esac
+
+exit 0
+
+# Local Variables:
+# mode: shell-script
+# sh-indentation: 2
+# eval: (add-hook 'write-file-hooks 'time-stamp)
+# time-stamp-start: "scriptversion="
+# time-stamp-format: "%:y-%02m-%02d.%02H"
+# time-stamp-time-zone: "UTC"
+# time-stamp-end: "; # UTC"
+# End:
diff --git a/apps/irssi/build-aux/install-sh b/apps/irssi/build-aux/install-sh
new file mode 100755 (executable)
index 0000000..377bb86
--- /dev/null
@@ -0,0 +1,527 @@
+#!/bin/sh
+# install - install a program, script, or datafile
+
+scriptversion=2011-11-20.07; # UTC
+
+# This originates from X11R5 (mit/util/scripts/install.sh), which was
+# later released in X11R6 (xc/config/util/install.sh) with the
+# following copyright and license.
+#
+# Copyright (C) 1994 X Consortium
+#
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to
+# deal in the Software without restriction, including without limitation the
+# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
+# sell copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be included in
+# all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
+# X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
+# AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC-
+# TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+#
+# Except as contained in this notice, the name of the X Consortium shall not
+# be used in advertising or otherwise to promote the sale, use or other deal-
+# ings in this Software without prior written authorization from the X Consor-
+# tium.
+#
+#
+# FSF changes to this file are in the public domain.
+#
+# Calling this script install-sh is preferred over install.sh, to prevent
+# 'make' implicit rules from creating a file called install from it
+# when there is no Makefile.
+#
+# This script is compatible with the BSD install script, but was written
+# from scratch.
+
+nl='
+'
+IFS=" ""       $nl"
+
+# set DOITPROG to echo to test this script
+
+# Don't use :- since 4.3BSD and earlier shells don't like it.
+doit=${DOITPROG-}
+if test -z "$doit"; then
+  doit_exec=exec
+else
+  doit_exec=$doit
+fi
+
+# Put in absolute file names if you don't have them in your path;
+# or use environment vars.
+
+chgrpprog=${CHGRPPROG-chgrp}
+chmodprog=${CHMODPROG-chmod}
+chownprog=${CHOWNPROG-chown}
+cmpprog=${CMPPROG-cmp}
+cpprog=${CPPROG-cp}
+mkdirprog=${MKDIRPROG-mkdir}
+mvprog=${MVPROG-mv}
+rmprog=${RMPROG-rm}
+stripprog=${STRIPPROG-strip}
+
+posix_glob='?'
+initialize_posix_glob='
+  test "$posix_glob" != "?" || {
+    if (set -f) 2>/dev/null; then
+      posix_glob=
+    else
+      posix_glob=:
+    fi
+  }
+'
+
+posix_mkdir=
+
+# Desired mode of installed file.
+mode=0755
+
+chgrpcmd=
+chmodcmd=$chmodprog
+chowncmd=
+mvcmd=$mvprog
+rmcmd="$rmprog -f"
+stripcmd=
+
+src=
+dst=
+dir_arg=
+dst_arg=
+
+copy_on_change=false
+no_target_directory=
+
+usage="\
+Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE
+   or: $0 [OPTION]... SRCFILES... DIRECTORY
+   or: $0 [OPTION]... -t DIRECTORY SRCFILES...
+   or: $0 [OPTION]... -d DIRECTORIES...
+
+In the 1st form, copy SRCFILE to DSTFILE.
+In the 2nd and 3rd, copy all SRCFILES to DIRECTORY.
+In the 4th, create DIRECTORIES.
+
+Options:
+     --help     display this help and exit.
+     --version  display version info and exit.
+
+  -c            (ignored)
+  -C            install only if different (preserve the last data modification time)
+  -d            create directories instead of installing files.
+  -g GROUP      $chgrpprog installed files to GROUP.
+  -m MODE       $chmodprog installed files to MODE.
+  -o USER       $chownprog installed files to USER.
+  -s            $stripprog installed files.
+  -t DIRECTORY  install into DIRECTORY.
+  -T            report an error if DSTFILE is a directory.
+
+Environment variables override the default commands:
+  CHGRPPROG CHMODPROG CHOWNPROG CMPPROG CPPROG MKDIRPROG MVPROG
+  RMPROG STRIPPROG
+"
+
+while test $# -ne 0; do
+  case $1 in
+    -c) ;;
+
+    -C) copy_on_change=true;;
+
+    -d) dir_arg=true;;
+
+    -g) chgrpcmd="$chgrpprog $2"
+       shift;;
+
+    --help) echo "$usage"; exit $?;;
+
+    -m) mode=$2
+       case $mode in
+         *' '* | *'    '* | *'
+'*       | *'*'* | *'?'* | *'['*)
+           echo "$0: invalid mode: $mode" >&2
+           exit 1;;
+       esac
+       shift;;
+
+    -o) chowncmd="$chownprog $2"
+       shift;;
+
+    -s) stripcmd=$stripprog;;
+
+    -t) dst_arg=$2
+       # Protect names problematic for 'test' and other utilities.
+       case $dst_arg in
+         -* | [=\(\)!]) dst_arg=./$dst_arg;;
+       esac
+       shift;;
+
+    -T) no_target_directory=true;;
+
+    --version) echo "$0 $scriptversion"; exit $?;;
+
+    --)        shift
+       break;;
+
+    -*)        echo "$0: invalid option: $1" >&2
+       exit 1;;
+
+    *)  break;;
+  esac
+  shift
+done
+
+if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then
+  # When -d is used, all remaining arguments are directories to create.
+  # When -t is used, the destination is already specified.
+  # Otherwise, the last argument is the destination.  Remove it from $@.
+  for arg
+  do
+    if test -n "$dst_arg"; then
+      # $@ is not empty: it contains at least $arg.
+      set fnord "$@" "$dst_arg"
+      shift # fnord
+    fi
+    shift # arg
+    dst_arg=$arg
+    # Protect names problematic for 'test' and other utilities.
+    case $dst_arg in
+      -* | [=\(\)!]) dst_arg=./$dst_arg;;
+    esac
+  done
+fi
+
+if test $# -eq 0; then
+  if test -z "$dir_arg"; then
+    echo "$0: no input file specified." >&2
+    exit 1
+  fi
+  # It's OK to call 'install-sh -d' without argument.
+  # This can happen when creating conditional directories.
+  exit 0
+fi
+
+if test -z "$dir_arg"; then
+  do_exit='(exit $ret); exit $ret'
+  trap "ret=129; $do_exit" 1
+  trap "ret=130; $do_exit" 2
+  trap "ret=141; $do_exit" 13
+  trap "ret=143; $do_exit" 15
+
+  # Set umask so as not to create temps with too-generous modes.
+  # However, 'strip' requires both read and write access to temps.
+  case $mode in
+    # Optimize common cases.
+    *644) cp_umask=133;;
+    *755) cp_umask=22;;
+
+    *[0-7])
+      if test -z "$stripcmd"; then
+       u_plus_rw=
+      else
+       u_plus_rw='% 200'
+      fi
+      cp_umask=`expr '(' 777 - $mode % 1000 ')' $u_plus_rw`;;
+    *)
+      if test -z "$stripcmd"; then
+       u_plus_rw=
+      else
+       u_plus_rw=,u+rw
+      fi
+      cp_umask=$mode$u_plus_rw;;
+  esac
+fi
+
+for src
+do
+  # Protect names problematic for 'test' and other utilities.
+  case $src in
+    -* | [=\(\)!]) src=./$src;;
+  esac
+
+  if test -n "$dir_arg"; then
+    dst=$src
+    dstdir=$dst
+    test -d "$dstdir"
+    dstdir_status=$?
+  else
+
+    # Waiting for this to be detected by the "$cpprog $src $dsttmp" command
+    # might cause directories to be created, which would be especially bad
+    # if $src (and thus $dsttmp) contains '*'.
+    if test ! -f "$src" && test ! -d "$src"; then
+      echo "$0: $src does not exist." >&2
+      exit 1
+    fi
+
+    if test -z "$dst_arg"; then
+      echo "$0: no destination specified." >&2
+      exit 1
+    fi
+    dst=$dst_arg
+
+    # If destination is a directory, append the input filename; won't work
+    # if double slashes aren't ignored.
+    if test -d "$dst"; then
+      if test -n "$no_target_directory"; then
+       echo "$0: $dst_arg: Is a directory" >&2
+       exit 1
+      fi
+      dstdir=$dst
+      dst=$dstdir/`basename "$src"`
+      dstdir_status=0
+    else
+      # Prefer dirname, but fall back on a substitute if dirname fails.
+      dstdir=`
+       (dirname "$dst") 2>/dev/null ||
+       expr X"$dst" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+            X"$dst" : 'X\(//\)[^/]' \| \
+            X"$dst" : 'X\(//\)$' \| \
+            X"$dst" : 'X\(/\)' \| . 2>/dev/null ||
+       echo X"$dst" |
+           sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+                  s//\1/
+                  q
+                }
+                /^X\(\/\/\)[^/].*/{
+                  s//\1/
+                  q
+                }
+                /^X\(\/\/\)$/{
+                  s//\1/
+                  q
+                }
+                /^X\(\/\).*/{
+                  s//\1/
+                  q
+                }
+                s/.*/./; q'
+      `
+
+      test -d "$dstdir"
+      dstdir_status=$?
+    fi
+  fi
+
+  obsolete_mkdir_used=false
+
+  if test $dstdir_status != 0; then
+    case $posix_mkdir in
+      '')
+       # Create intermediate dirs using mode 755 as modified by the umask.
+       # This is like FreeBSD 'install' as of 1997-10-28.
+       umask=`umask`
+       case $stripcmd.$umask in
+         # Optimize common cases.
+         *[2367][2367]) mkdir_umask=$umask;;
+         .*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;;
+
+         *[0-7])
+           mkdir_umask=`expr $umask + 22 \
+             - $umask % 100 % 40 + $umask % 20 \
+             - $umask % 10 % 4 + $umask % 2
+           `;;
+         *) mkdir_umask=$umask,go-w;;
+       esac
+
+       # With -d, create the new directory with the user-specified mode.
+       # Otherwise, rely on $mkdir_umask.
+       if test -n "$dir_arg"; then
+         mkdir_mode=-m$mode
+       else
+         mkdir_mode=
+       fi
+
+       posix_mkdir=false
+       case $umask in
+         *[123567][0-7][0-7])
+           # POSIX mkdir -p sets u+wx bits regardless of umask, which
+           # is incompatible with FreeBSD 'install' when (umask & 300) != 0.
+           ;;
+         *)
+           tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$
+           trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0
+
+           if (umask $mkdir_umask &&
+               exec $mkdirprog $mkdir_mode -p -- "$tmpdir/d") >/dev/null 2>&1
+           then
+             if test -z "$dir_arg" || {
+                  # Check for POSIX incompatibilities with -m.
+                  # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or
+                  # other-writable bit of parent directory when it shouldn't.
+                  # FreeBSD 6.1 mkdir -m -p sets mode of existing directory.
+                  ls_ld_tmpdir=`ls -ld "$tmpdir"`
+                  case $ls_ld_tmpdir in
+                    d????-?r-*) different_mode=700;;
+                    d????-?--*) different_mode=755;;
+                    *) false;;
+                  esac &&
+                  $mkdirprog -m$different_mode -p -- "$tmpdir" && {
+                    ls_ld_tmpdir_1=`ls -ld "$tmpdir"`
+                    test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1"
+                  }
+                }
+             then posix_mkdir=:
+             fi
+             rmdir "$tmpdir/d" "$tmpdir"
+           else
+             # Remove any dirs left behind by ancient mkdir implementations.
+             rmdir ./$mkdir_mode ./-p ./-- 2>/dev/null
+           fi
+           trap '' 0;;
+       esac;;
+    esac
+
+    if
+      $posix_mkdir && (
+       umask $mkdir_umask &&
+       $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir"
+      )
+    then :
+    else
+
+      # The umask is ridiculous, or mkdir does not conform to POSIX,
+      # or it failed possibly due to a race condition.  Create the
+      # directory the slow way, step by step, checking for races as we go.
+
+      case $dstdir in
+       /*) prefix='/';;
+       [-=\(\)!]*) prefix='./';;
+       *)  prefix='';;
+      esac
+
+      eval "$initialize_posix_glob"
+
+      oIFS=$IFS
+      IFS=/
+      $posix_glob set -f
+      set fnord $dstdir
+      shift
+      $posix_glob set +f
+      IFS=$oIFS
+
+      prefixes=
+
+      for d
+      do
+       test X"$d" = X && continue
+
+       prefix=$prefix$d
+       if test -d "$prefix"; then
+         prefixes=
+       else
+         if $posix_mkdir; then
+           (umask=$mkdir_umask &&
+            $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break
+           # Don't fail if two instances are running concurrently.
+           test -d "$prefix" || exit 1
+         else
+           case $prefix in
+             *\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;;
+             *) qprefix=$prefix;;
+           esac
+           prefixes="$prefixes '$qprefix'"
+         fi
+       fi
+       prefix=$prefix/
+      done
+
+      if test -n "$prefixes"; then
+       # Don't fail if two instances are running concurrently.
+       (umask $mkdir_umask &&
+        eval "\$doit_exec \$mkdirprog $prefixes") ||
+         test -d "$dstdir" || exit 1
+       obsolete_mkdir_used=true
+      fi
+    fi
+  fi
+
+  if test -n "$dir_arg"; then
+    { test -z "$chowncmd" || $doit $chowncmd "$dst"; } &&
+    { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } &&
+    { test "$obsolete_mkdir_used$chowncmd$chgrpcmd" = false ||
+      test -z "$chmodcmd" || $doit $chmodcmd $mode "$dst"; } || exit 1
+  else
+
+    # Make a couple of temp file names in the proper directory.
+    dsttmp=$dstdir/_inst.$$_
+    rmtmp=$dstdir/_rm.$$_
+
+    # Trap to clean up those temp files at exit.
+    trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0
+
+    # Copy the file name to the temp name.
+    (umask $cp_umask && $doit_exec $cpprog "$src" "$dsttmp") &&
+
+    # and set any options; do chmod last to preserve setuid bits.
+    #
+    # If any of these fail, we abort the whole thing.  If we want to
+    # ignore errors from any of these, just make sure not to ignore
+    # errors from the above "$doit $cpprog $src $dsttmp" command.
+    #
+    { test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } &&
+    { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } &&
+    { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } &&
+    { test -z "$chmodcmd" || $doit $chmodcmd $mode "$dsttmp"; } &&
+
+    # If -C, don't bother to copy if it wouldn't change the file.
+    if $copy_on_change &&
+       old=`LC_ALL=C ls -dlL "$dst"    2>/dev/null` &&
+       new=`LC_ALL=C ls -dlL "$dsttmp" 2>/dev/null` &&
+
+       eval "$initialize_posix_glob" &&
+       $posix_glob set -f &&
+       set X $old && old=:$2:$4:$5:$6 &&
+       set X $new && new=:$2:$4:$5:$6 &&
+       $posix_glob set +f &&
+
+       test "$old" = "$new" &&
+       $cmpprog "$dst" "$dsttmp" >/dev/null 2>&1
+    then
+      rm -f "$dsttmp"
+    else
+      # Rename the file to the real destination.
+      $doit $mvcmd -f "$dsttmp" "$dst" 2>/dev/null ||
+
+      # The rename failed, perhaps because mv can't rename something else
+      # to itself, or perhaps because mv is so ancient that it does not
+      # support -f.
+      {
+       # Now remove or move aside any old file at destination location.
+       # We try this two ways since rm can't unlink itself on some
+       # systems and the destination file might be busy for other
+       # reasons.  In this case, the final cleanup might fail but the new
+       # file should still install successfully.
+       {
+         test ! -f "$dst" ||
+         $doit $rmcmd -f "$dst" 2>/dev/null ||
+         { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null &&
+           { $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; }
+         } ||
+         { echo "$0: cannot unlink or rename $dst" >&2
+           (exit 1); exit 1
+         }
+       } &&
+
+       # Now rename the file to the real destination.
+       $doit $mvcmd "$dsttmp" "$dst"
+      }
+    fi || exit 1
+
+    trap '' 0
+  fi
+done
+
+# Local variables:
+# eval: (add-hook 'write-file-hooks 'time-stamp)
+# time-stamp-start: "scriptversion="
+# time-stamp-format: "%:y-%02m-%02d.%02H"
+# time-stamp-time-zone: "UTC"
+# time-stamp-end: "; # UTC"
+# End:
diff --git a/apps/irssi/build-aux/missing b/apps/irssi/build-aux/missing
new file mode 100755 (executable)
index 0000000..9a55648
--- /dev/null
@@ -0,0 +1,330 @@
+#! /bin/sh
+# Common stub for a few missing GNU programs while installing.
+
+scriptversion=2012-01-06.18; # UTC
+
+# Copyright (C) 1996-2012 Free Software Foundation, Inc.
+# Originally by Fran,cois Pinard <pinard@iro.umontreal.ca>, 1996.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program that contains a
+# configuration script generated by Autoconf, you may include it under
+# the same distribution terms that you use for the rest of that program.
+
+if test $# -eq 0; then
+  echo 1>&2 "Try '$0 --help' for more information"
+  exit 1
+fi
+
+run=:
+sed_output='s/.* --output[ =]\([^ ]*\).*/\1/p'
+sed_minuso='s/.* -o \([^ ]*\).*/\1/p'
+
+# In the cases where this matters, 'missing' is being run in the
+# srcdir already.
+if test -f configure.ac; then
+  configure_ac=configure.ac
+else
+  configure_ac=configure.in
+fi
+
+msg="missing on your system"
+
+case $1 in
+--run)
+  # Try to run requested program, and just exit if it succeeds.
+  run=
+  shift
+  "$@" && exit 0
+  # Exit code 63 means version mismatch.  This often happens
+  # when the user try to use an ancient version of a tool on
+  # a file that requires a minimum version.  In this case we
+  # we should proceed has if the program had been absent, or
+  # if --run hadn't been passed.
+  if test $? = 63; then
+    run=:
+    msg="probably too old"
+  fi
+  ;;
+
+  -h|--h|--he|--hel|--help)
+    echo "\
+$0 [OPTION]... PROGRAM [ARGUMENT]...
+
+Handle 'PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an
+error status if there is no known handling for PROGRAM.
+
+Options:
+  -h, --help      display this help and exit
+  -v, --version   output version information and exit
+  --run           try to run the given command, and emulate it if it fails
+
+Supported PROGRAM values:
+  aclocal      touch file 'aclocal.m4'
+  autoconf     touch file 'configure'
+  autoheader   touch file 'config.h.in'
+  autom4te     touch the output file, or create a stub one
+  automake     touch all 'Makefile.in' files
+  bison        create 'y.tab.[ch]', if possible, from existing .[ch]
+  flex         create 'lex.yy.c', if possible, from existing .c
+  help2man     touch the output file
+  lex          create 'lex.yy.c', if possible, from existing .c
+  makeinfo     touch the output file
+  yacc         create 'y.tab.[ch]', if possible, from existing .[ch]
+
+Version suffixes to PROGRAM as well as the prefixes 'gnu-', 'gnu', and
+'g' are ignored when checking the name.
+
+Send bug reports to <bug-automake@gnu.org>."
+    exit $?
+    ;;
+
+  -v|--v|--ve|--ver|--vers|--versi|--versio|--version)
+    echo "missing $scriptversion (GNU Automake)"
+    exit $?
+    ;;
+
+  -*)
+    echo 1>&2 "$0: Unknown '$1' option"
+    echo 1>&2 "Try '$0 --help' for more information"
+    exit 1
+    ;;
+
+esac
+
+# normalize program name to check for.
+program=`echo "$1" | sed '
+  s/^gnu-//; t
+  s/^gnu//; t
+  s/^g//; t'`
+
+# Now exit if we have it, but it failed.  Also exit now if we
+# don't have it and --version was passed (most likely to detect
+# the program).  This is about non-GNU programs, so use $1 not
+# $program.
+case $1 in
+  lex*|yacc*)
+    # Not GNU programs, they don't have --version.
+    ;;
+
+  *)
+    if test -z "$run" && ($1 --version) > /dev/null 2>&1; then
+       # We have it, but it failed.
+       exit 1
+    elif test "x$2" = "x--version" || test "x$2" = "x--help"; then
+       # Could not run --version or --help.  This is probably someone
+       # running '$TOOL --version' or '$TOOL --help' to check whether
+       # $TOOL exists and not knowing $TOOL uses missing.
+       exit 1
+    fi
+    ;;
+esac
+
+# If it does not exist, or fails to run (possibly an outdated version),
+# try to emulate it.
+case $program in
+  aclocal*)
+    echo 1>&2 "\
+WARNING: '$1' is $msg.  You should only need it if
+         you modified 'acinclude.m4' or '${configure_ac}'.  You might want
+         to install the Automake and Perl packages.  Grab them from
+         any GNU archive site."
+    touch aclocal.m4
+    ;;
+
+  autoconf*)
+    echo 1>&2 "\
+WARNING: '$1' is $msg.  You should only need it if
+         you modified '${configure_ac}'.  You might want to install the
+         Autoconf and GNU m4 packages.  Grab them from any GNU
+         archive site."
+    touch configure
+    ;;
+
+  autoheader*)
+    echo 1>&2 "\
+WARNING: '$1' is $msg.  You should only need it if
+         you modified 'acconfig.h' or '${configure_ac}'.  You might want
+         to install the Autoconf and GNU m4 packages.  Grab them
+         from any GNU archive site."
+    files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' ${configure_ac}`
+    test -z "$files" && files="config.h"
+    touch_files=
+    for f in $files; do
+      case $f in
+      *:*) touch_files="$touch_files "`echo "$f" |
+                                      sed -e 's/^[^:]*://' -e 's/:.*//'`;;
+      *) touch_files="$touch_files $f.in";;
+      esac
+    done
+    touch $touch_files
+    ;;
+
+  automake*)
+    echo 1>&2 "\
+WARNING: '$1' is $msg.  You should only need it if
+         you modified 'Makefile.am', 'acinclude.m4' or '${configure_ac}'.
+         You might want to install the Automake and Perl packages.
+         Grab them from any GNU archive site."
+    find . -type f -name Makefile.am -print |
+          sed 's/\.am$/.in/' |
+          while read f; do touch "$f"; done
+    ;;
+
+  autom4te*)
+    echo 1>&2 "\
+WARNING: '$1' is needed, but is $msg.
+         You might have modified some files without having the
+         proper tools for further handling them.
+         You can get '$1' as part of Autoconf from any GNU
+         archive site."
+
+    file=`echo "$*" | sed -n "$sed_output"`
+    test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"`
+    if test -f "$file"; then
+       touch $file
+    else
+       test -z "$file" || exec >$file
+       echo "#! /bin/sh"
+       echo "# Created by GNU Automake missing as a replacement of"
+       echo "#  $ $@"
+       echo "exit 0"
+       chmod +x $file
+       exit 1
+    fi
+    ;;
+
+  bison*|yacc*)
+    echo 1>&2 "\
+WARNING: '$1' $msg.  You should only need it if
+         you modified a '.y' file.  You may need the Bison package
+         in order for those modifications to take effect.  You can get
+         Bison from any GNU archive site."
+    rm -f y.tab.c y.tab.h
+    if test $# -ne 1; then
+        eval LASTARG=\${$#}
+       case $LASTARG in
+       *.y)
+           SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'`
+           if test -f "$SRCFILE"; then
+                cp "$SRCFILE" y.tab.c
+           fi
+           SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'`
+           if test -f "$SRCFILE"; then
+                cp "$SRCFILE" y.tab.h
+           fi
+         ;;
+       esac
+    fi
+    if test ! -f y.tab.h; then
+       echo >y.tab.h
+    fi
+    if test ! -f y.tab.c; then
+       echo 'main() { return 0; }' >y.tab.c
+    fi
+    ;;
+
+  lex*|flex*)
+    echo 1>&2 "\
+WARNING: '$1' is $msg.  You should only need it if
+         you modified a '.l' file.  You may need the Flex package
+         in order for those modifications to take effect.  You can get
+         Flex from any GNU archive site."
+    rm -f lex.yy.c
+    if test $# -ne 1; then
+        eval LASTARG=\${$#}
+       case $LASTARG in
+       *.l)
+           SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'`
+           if test -f "$SRCFILE"; then
+                cp "$SRCFILE" lex.yy.c
+           fi
+         ;;
+       esac
+    fi
+    if test ! -f lex.yy.c; then
+       echo 'main() { return 0; }' >lex.yy.c
+    fi
+    ;;
+
+  help2man*)
+    echo 1>&2 "\
+WARNING: '$1' is $msg.  You should only need it if
+        you modified a dependency of a manual page.  You may need the
+        Help2man package in order for those modifications to take
+        effect.  You can get Help2man from any GNU archive site."
+
+    file=`echo "$*" | sed -n "$sed_output"`
+    test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"`
+    if test -f "$file"; then
+       touch $file
+    else
+       test -z "$file" || exec >$file
+       echo ".ab help2man is required to generate this page"
+       exit $?
+    fi
+    ;;
+
+  makeinfo*)
+    echo 1>&2 "\
+WARNING: '$1' is $msg.  You should only need it if
+         you modified a '.texi' or '.texinfo' file, or any other file
+         indirectly affecting the aspect of the manual.  The spurious
+         call might also be the consequence of using a buggy 'make' (AIX,
+         DU, IRIX).  You might want to install the Texinfo package or
+         the GNU make package.  Grab either from any GNU archive site."
+    # The file to touch is that specified with -o ...
+    file=`echo "$*" | sed -n "$sed_output"`
+    test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"`
+    if test -z "$file"; then
+      # ... or it is the one specified with @setfilename ...
+      infile=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'`
+      file=`sed -n '
+       /^@setfilename/{
+         s/.* \([^ ]*\) *$/\1/
+         p
+         q
+       }' $infile`
+      # ... or it is derived from the source name (dir/f.texi becomes f.info)
+      test -z "$file" && file=`echo "$infile" | sed 's,.*/,,;s,.[^.]*$,,'`.info
+    fi
+    # If the file does not exist, the user really needs makeinfo;
+    # let's fail without touching anything.
+    test -f $file || exit 1
+    touch $file
+    ;;
+
+  *)
+    echo 1>&2 "\
+WARNING: '$1' is needed, and is $msg.
+         You might have modified some files without having the
+         proper tools for further handling them.  Check the 'README' file,
+         it often tells you about the needed prerequisites for installing
+         this package.  You may also peek at any GNU archive site, in case
+         some other package would contain this missing '$1' program."
+    exit 1
+    ;;
+esac
+
+exit 0
+
+# Local variables:
+# eval: (add-hook 'write-file-hooks 'time-stamp)
+# time-stamp-start: "scriptversion="
+# time-stamp-format: "%:y-%02m-%02d.%02H"
+# time-stamp-time-zone: "UTC"
+# time-stamp-end: "; # UTC"
+# End:
index 755fb1bf616bceb81fefa43d34500e045da6e83d..aa65967f5c588d9fb3b72ed040d5a4f16c760cbf 100644 (file)
-AC_INIT([SILC-Client], [0.8.11+], [silc-devel@lists.silcnet.org], [silc-client])
+AC_INIT(SILC-Client, 0.8.16-rc1)
+AC_CONFIG_SRCDIR([src])
+AC_CONFIG_AUX_DIR(build-aux)
+AC_PREREQ(2.50)
 
-# we don't want VERSION in our config.h
-if test -n "`grep '^#undef VERSION' config.h.in`"; then
-  grep -v '^#undef VERSION' config.h.in > config.h.in.temp
-  mv -f config.h.in.temp config.h.in
-fi
-
-AM_CONFIG_HEADER(config.h)
-AM_INIT_AUTOMAKE
+AC_CONFIG_HEADERS([irssi-config.h])
+AM_INIT_AUTOMAKE([1.9 no-define foreign])
 
 AM_MAINTAINER_MODE
 
 AC_ISC_POSIX
 AC_PROG_CC
 AC_PROG_CPP
-AC_STDC_HEADERS
-LT_INIT
-LT_OUTPUT
+AM_PROG_LIBTOOL
 
 AC_PATH_PROG(sedpath, sed)
 AC_PATH_PROG(perlpath, perl)
 
-dnl * --disable-static isn't a good idea, complain if it's used
-if test "x$enable_static" = "xno"; then
-       AC_ERROR([Don't give --disable-static option to configure])
-fi
-
-AC_CHECK_HEADERS(string.h stdlib.h unistd.h dirent.h sys/ioctl.h sys/resource.h)
+AC_CHECK_HEADERS(unistd.h dirent.h sys/ioctl.h sys/resource.h)
 
 # check posix headers..
-AC_CHECK_HEADERS(sys/time.h sys/utsname.h)
+AC_CHECK_HEADERS(sys/time.h sys/utsname.h regex.h)
+
+AC_SYS_LARGEFILE
 
 AC_ARG_WITH(socks,
 [  --with-socks            Build with socks support],
-       if test x$withval = xyes; then
-               want_socks=yes
+       if test x$withval = xno; then
+               want_socks=no
        else
-               if test "x$withval" = xno; then
-                       want_socks=no
-               else
-                       want_socks=yes
-               fi
+               want_socks=yes
        fi,
        want_socks=no)
 
 AC_ARG_WITH(textui,
-[  --with-textui           Build text frontend],
-       if test x$withval = xyes; then
-               want_textui=yes
+[  --without-textui        Build without text frontend],
+       if test x$withval = xno; then
+               want_textui=no
        else
-               if test "x$withval" = xno; then
-                       want_textui=no
-               else
-                       want_textui=yes
-               fi
+               want_textui=yes
        fi,
        want_textui=yes)
 
 AC_ARG_WITH(bot,
 [  --with-bot              Build irssi-bot],
-       if test x$withval = xyes; then
-               want_irssibot=yes
+       if test x$withval = xno; then
+               want_irssibot=no
        else
-               if test "x$withval" = xno; then
-                       want_irssibot=no
-               else
-                       want_irssibot=yes
-               fi
+               want_irssibot=yes
        fi,
        want_irssibot=no)
 
 AC_ARG_WITH(proxy,
 [  --with-proxy            Build irssi-proxy],
-       if test x$withval = xyes; then
-               want_irssiproxy=yes
+       if test x$withval = xno; then
+               want_irssiproxy=no
        else
-               if test "x$withval" = xno; then
-                       want_irssiproxy=no
-               else
-                       want_irssiproxy=yes
-               fi
+               want_irssiproxy=yes
        fi,
        want_irssiproxy=no)
 
 AC_ARG_WITH(terminfo,
-[  --with-terminfo         Use terminfo directly instead of curses],
-       if test x$withval = xyes; then
-               want_terminfo=yes
+[  --without-terminfo      Use curses backend instead of terminfo],
+       if test x$withval = xno; then
+               want_terminfo=no
        else
-               if test "x$withval" = xno; then
-                       want_terminfo=no
-               else
-                       want_terminfo=yes
-               fi
+               want_terminfo=yes
        fi,
        want_terminfo=yes)
 
-AC_ARG_WITH(cuix,
-[  --with-cuix             Use curses ui extended],
-    if test x$withval = xyes; then
-            want_terminfo=no
-            want_cuix=yes
-    fi, want_cuix=no)
-
 AC_ARG_WITH(modules,
 [  --with-modules          Specify what modules to build in binary],
        if test x$withval != xyes -a x$withval != xno; then
@@ -110,7 +75,7 @@ AC_ARG_WITH(modules,
        fi)
 
 if test "x$prefix" != "xNONE"; then
-        prefix=`eval echo $prefix`
+       prefix=`eval echo $prefix`
        PERL_MM_PARAMS="INSTALLDIRS=perl PREFIX=$prefix"
        perl_library_dir="PERL_USE_LIB"
        perl_set_use_lib=yes
@@ -118,37 +83,29 @@ if test "x$prefix" != "xNONE"; then
        perl_prefix_note=yes
 fi
 
-AC_ARG_WITH(glib1,
-[  --with-glib1            Use GLIB 1.2 instead of 2.0 if both exist],
-        if test x$withval = xyes; then
-                want_glib1=yes
-        else
-                if test "x$withval" = xno; then
-                        want_glib1=no
-                else
-                        want_glib1=yes
-                fi
-        fi,
-        want_glib1=no)
+AC_ARG_WITH(gc,
+[  --with-gc               Use garbage collector],
+       if test x$withval = xno; then
+               want_gc=no
+       else
+               want_gc=yes
+       fi,
+       want_gc=no)
 
 AC_ARG_WITH(perl-staticlib,
 [  --with-perl-staticlib   Specify that we want to link perl libraries
-                        statically in irssi, default is no],
-       if test x$withval = xyes; then
-               want_staticperllib=yes
+                          statically in irssi, default is no],
+       if test x$withval = xno; then
+               want_staticperllib=no
        else
-               if test "x$withval" = xno; then
-                       want_staticperllib=no
-               else
-                       want_staticperllib=yes
-               fi
+               want_staticperllib=yes
        fi,
        want_staticperllib=no)
 
 
 AC_ARG_WITH(perl-lib,
 [  --with-perl-lib=[site|vendor|DIR]  Specify where to install the
-                        Perl libraries for irssi, default is site],
+                          Perl libraries for irssi, default is site],
        if test "x$withval" = xyes; then
                want_perl=yes
        elif test "x$withval" = xno; then
@@ -177,8 +134,8 @@ AC_ARG_WITH(perl-lib,
 
 AC_ARG_WITH(perl,
 [  --with-perl[=yes|no|module]  Build with Perl support - also specifies
-                        if it should be built into main irssi binary
-                        (static, default) or as module],
+                          if it should be built into main irssi binary
+                          (static, default) or as module],
        if test x$withval = xyes; then
                want_perl=static
        elif test x$withval = xstatic; then
@@ -220,24 +177,31 @@ AC_ARG_WITH(silc-plugin,
 AM_CONDITIONAL(SILCPLUGIN, test x$silc_plugin = xtrue)
 AC_SUBST(SILC_IRSSIDIR)
 
-AC_ARG_WITH(file-offset-size,
-[  --with-file-offset-size=BITS  Set size of file offsets. Usually 32 or 64.
-                          (default: 64 if available)],
-        preferred_off_t_bits=$withval,
-        preferred_off_t_bits=64)
-
 AC_ARG_ENABLE(ipv6,
-[  --enable-ipv6           Enable IPv6 support],
-       if test x$enableval = xyes; then
+[  --disable-ipv6          Disable IPv6 support],
+       if test x$enableval = xno; then
+               want_ipv6=no
+       else
                want_ipv6=yes
+       fi,
+       want_ipv6=yes)
+
+AC_ARG_ENABLE(dane,
+[  --enable-dane           Enable DANE support],
+       if test x$enableval = xno ; then
+               want_dane=no
        else
-               if test "x$enableval" = xno; then
-                       want_ipv6=no
-               else
-                       want_ipv6=yes
-               fi
+               want_dane=yes
        fi,
-       want_ipv6=no)
+       want_dane=no)
+
+dnl **
+dnl ** SSL Library checks (OpenSSL)
+dnl **
+
+AC_ARG_ENABLE(ssl,
+[  --disable-ssl           Disable Secure Sockets Layer support],,
+       enable_ssl=yes)
 
 dnl **
 dnl ** just some generic stuff...
@@ -253,8 +217,6 @@ case "$host_os" in
 esac
 
 
-AC_CHECK_FUNCS(mkfifo fcntl nl_langinfo)
-
 AC_CHECK_FUNC(socket, [], [
        AC_CHECK_LIB(socket, socket, [
                LIBS="$LIBS -lsocket"
@@ -269,7 +231,7 @@ AC_CHECK_FUNC(inet_addr, [], [
 
 dnl * gcc specific options
 if test "x$ac_cv_prog_gcc" = "xyes"; then
-  CFLAGS="$CFLAGS -Wall"
+  CFLAGS="$CFLAGS -Wall -Wno-deprecated-declarations"
 fi
 
 dnl * socklen_t - AC_CHECK_TYPE() would be _really_ useful if it only would
@@ -288,9 +250,6 @@ AC_DEFINE(socklen_t, int, Define to 'int' if <sys/socket.h> doesn't define.)
 fi
 AC_MSG_RESULT($irssi_cv_type_socklen_t)
 
-dnl * off_t checks, try to make it 64bit
-AC_DEFINE_UNQUOTED(_FILE_OFFSET_BITS, $preferred_off_t_bits)
-
 AC_CHECK_SIZEOF(int)
 AC_CHECK_SIZEOF(long)
 AC_CHECK_SIZEOF(long long)
@@ -305,15 +264,15 @@ fi
 if test x$ac_cv_sizeof_off_t = x$ac_cv_sizeof_long; then
   # try to use unsigned long always first
   AC_DEFINE_UNQUOTED(PRIuUOFF_T, "lu")
-  AC_DEFINE(UOFF_T_LONG, [], [UOFF_T_LONG])
+  AC_DEFINE(UOFF_T_LONG)
 elif test x$ac_cv_sizeof_off_t = x$ac_cv_sizeof_int; then
   # next try int
   AC_DEFINE_UNQUOTED(PRIuUOFF_T, "u")
-  AC_DEFINE(UOFF_T_INT, [], [UOFF_T_INT])
+  AC_DEFINE(UOFF_T_INT)
 elif test x$ac_cv_sizeof_off_t = x$ac_cv_sizeof_long_long; then
   # and finally long long
   AC_DEFINE_UNQUOTED(PRIuUOFF_T, "llu")
-  AC_DEFINE(UOFF_T_LONG_LONG, [], [UOFF_T_LONG_LONG])
+  AC_DEFINE(UOFF_T_LONG_LONG)
 else
   AC_ERROR([Couldn't find integer type for off_t])
 fi
@@ -324,6 +283,7 @@ dnl **
 
 if test "x$want_socks" = "xyes"; then
        AC_CHECK_LIB(socks, connect, [
+               AC_DEFINE(HAVE_SOCKS,, Build with socks support)
                LIBS="$LIBS -lsocks"
                AC_CHECK_HEADER(socks.h, [
                        AC_DEFINE(HAVE_SOCKS_H)
@@ -336,192 +296,81 @@ if test "x$want_socks" = "xyes"; then
        ])
 fi
 
-if test "x$want_cuix" = "xyes"; then
-    AC_DEFINE([HAVE_CUIX], [1] ,[Enable cuix support])
-fi
-
 dnl **
 dnl ** fe-text checks
 dnl **
 
-AC_DEFUN(AC_CHECK_GLIBDIR,[
-  AC_MSG_CHECKING([whether GLib is unpacked to irssi dir])
-
-  GLIB_DIR=`for d in *; do test -f $d/glib.h && echo $d; done`
-  if test -n "$GLIB_DIR"; then
-    dnl * glib in irssi directory, use it
-    AC_MSG_RESULT([yes, using it])
-
-    dnl * we have to do this at this point so we know what libs gmodule needs
-    if test ! -f $GLIB_DIR/.libs/libglib.a; then
-      echo
-      echo "configuring GLib ..."
-      echo
-      cd $GLIB_DIR
-      if test ! -f glib-config; then
-        ./configure
-      fi
-      ${MAKE-make}
-      cd ..
-      echo
-    fi
-
-    GLIB_LDEXTRA=`$GLIB_DIR/glib-config --libs gmodule|$sedpath -e 's/-lglib//' -e 's/-lgmodule//' -e 's,-L/usr/local/lib ,,'|$sedpath 's/ \+/ /g'`
-    full_glib_dir="`pwd`/$GLIB_DIR"
-    GLIB_CFLAGS="-I$full_glib_dir -I$full_glib_dir/gmodule"
-    if test -f $full_glib_dir/.libs/libglib.a; then
-      GLIB_LIBS="$full_glib_dir/.libs/libglib.a $GLIB_LDEXTRA"
-      if test -f $full_glib_dir/gmodule/.libs/libgmodule.a; then
-       GLIB_LIBS="$GLIB_LIBS $full_glib_dir/gmodule/.libs/libgmodule.a"
-        AC_DEFINE(HAVE_GMODULE)
-       have_gmodule=yes
-      fi
-    else
-      GLIB_LIBS="$full_glib_dir/libglib.a $GLIB_LDEXTRA"
-      if test -f $full_glib_dir/gmodule/libgmodule.a; then
-       GLIB_LIBS="$GLIB_LIBS $full_glib_dir/gmodule/libgmodule.a"
-        AC_DEFINE(HAVE_GMODULE)
-       have_gmodule=yes
-      fi
-    fi
-    AC_SUBST(GLIB_CFLAGS)
-    AC_SUBST(GLIB_LIBS)
+for try in 1 2; do
+  if test $try = 1; then
+    glib_modules=gmodule
   else
-    AC_MSG_RESULT([no])
+    echo "*** trying without -lgmodule"
+    glib_modules=
   fi
-])
-
-AC_CHECK_GLIBDIR
-
-if test -z "$GLIB_DIR"; then
-  if test "x$want_glib1" = "xyes"; then
-    dnl * check only for glib1
-    checks="1 2"
-  else
-    dnl * check glib2 then glib1
-    checks="3 4 1 2"
+  AM_PATH_GLIB_2_0(2.6.0,,, $glib_modules)
+  if test "$GLIB_LIBS"; then
+    if test $glib_modules = gmodule; then
+      AC_DEFINE(HAVE_GMODULE)
+      have_gmodule=yes
+    fi
+    break
   fi
+done
 
-  for try in $checks; do
-    glib_config_args=
-    if test $try = 1 -o $try = 3; then
-      glib_modules=gmodule
-    else
-      echo "*** trying without -lgmodule"
-      glib_modules=
-    fi
-    if test $try = 1 -o $try = 2; then
-      AM_PATH_GLIB(1.2.0,,, $glib_modules)
-    else
-      AM_PATH_GLIB_2_0(2.0.0,,, $glib_modules)
-    fi
-    if test "$GLIB_LIBS"; then
-      if test $glib_modules = gmodule; then
-        AC_DEFINE(HAVE_GMODULE)
-        have_gmodule=yes
-      fi
-      break
-    fi
-  done
-
-  if test -z "$GLIB_LIBS"; then
-    echo
-    echo "*** If you don't have GLIB, you can get it from ftp://ftp.gtk.org"
-    echo "*** If you can't install GLIB anywhere or if you don't want to,"
-    echo "*** you can just unpack it to Irssi's source directory and"
-    echo "*** Irssi will automatically compile and use it."
-    echo
-
-    glib_url=ftp://ftp.gtk.org/pub/gtk/v2.8/
-    glib_file=glib-2.8.3.tar.gz
-
-    dlcmd=
-    if test -n "`wget --version 2>/dev/null|grep -i wget`"; then
-      dlcmd="wget -c $glib_url$glib_file"
-    elif test -n "`ncftpget --version 2>/dev/null|grep -i ncftp`"; then
-      dlcmd="ncftpget -z $glib_url$glib_file"
-    elif test -n "`lynx --version 2>/dev/null|grep -i lynx`"; then
-      dlcmd="lynx --source $glib_url$glib_file > $glib_file"
-    elif test -n "`curl --version 2>/dev/null|grep -i curl`"; then
-      dlcmd="curl -C - $glib_url$glib_file"
-    fi
-    if test -n "$dlcmd"; then
-      echo "*** I can download GLib for you now. If you don't want to, press CTRL-C now."
-      echo
-      echo "*** Press ENTER to continue"
-      read answer
-      eval $dlcmd
-      if `gunzip $glib_file`; then
-        glib_file=`echo $glib_file|$sedpath s/\.gz$//`
-        if `tar xf $glib_file`; then
-          rm -f $glib_file
-          AC_CHECK_GLIBDIR
-        fi
-      fi
-    fi
+if test -z "$GLIB_LIBS"; then
+  echo
+  echo "*** If you don't have GLIB, you can get it from ftp://ftp.gtk.org/pub/glib/"
+  echo "*** We recommend you get the latest stable GLIB 2 version."
+  echo "*** Compile and install it, and make sure pkg-config finds it,"
+  echo "*** by adding the path where the .pc file is located to PKG_CONFIG_PATH"
+  echo
 
-    if test -z "$GLIB_LIBS"; then
-      AC_ERROR([GLIB is required to build irssi.])
-    fi
-  fi
+  AC_ERROR([GLIB is required to build irssi.])
 fi
 
 LIBS="$LIBS $GLIB_LIBS"
 
-dnl **
-dnl ** Recode
-dnl **
-AC_MSG_CHECKING([if we can use recode, requires GLIB2])
-if test "$glib_config_major_version" = "2"; then
-  AC_DEFINE([HAVE_GLIB2], [], ["HAVE_GLIB2"])
-  AC_MSG_RESULT([yes])
-else
-  AC_MSG_RESULT([no, using glib1])
+have_openssl=no
+if test "$enable_ssl" = "yes"; then
+  PKG_CHECK_MODULES(SSL, openssl, :, :)
+  if test "$SSL_LIBS"; then
+    CFLAGS="$CFLAGS $SSL_CFLAGS"
+    have_openssl=yes
+  else
+    AC_CHECK_LIB(ssl, SSL_read, [
+      AC_CHECK_HEADERS(openssl/ssl.h openssl/err.h, [
+       SSL_LIBS="-lssl -lcrypto"
+       have_openssl=yes
+      ])
+    ],, -lcrypto)
+  fi
+  if test "$have_openssl" = "yes"; then
+    AC_DEFINE(HAVE_OPENSSL,, Build with OpenSSL support)
+    LIBS="$LIBS $SSL_LIBS"
+  fi
 fi
 
 dnl **
-dnl ** check if we can link dynamic libraries to modules
-dnl ** also checks if libraries are built to .libs dir
+dnl ** Garbage Collector
 dnl **
-
-AC_MSG_CHECKING([if we can link dynamic libraries with modules])
-DYNLIB_MODULES=no
-
-dnl ** compile object file
-cat > conftest.c <<EOF
-#include <math.h>
-int modfunc(){return (int)floor(1.2);}
-EOF
-
-if ! ./libtool --tag=CC --mode=compile $CC $CFLAGS -c conftest.c >/dev/null 2>&1 || \
-   ! ./libtool --tag=CC --mode=link $CC $CFLAGS $LDFLAGS -rpath /usr/lib conftest.lo -lm -o libconftest.la >/dev/null 2>&1; then
-  AC_MSG_RESULT([no, error compiling test module])
-else
-  cat > conftest.c <<EOF
-#include <gmodule.h>
-main() {
-GModule *m; int (*modfunc)(void);
-m = g_module_open("libconftest.la", 0);
-if (!m) g_print("error loading: %s", g_module_error());
-else if (!g_module_symbol(m, "modfunc", (gpointer *) &modfunc))
-  g_print("modfunc() symbol not found from module");
-else if (modfunc() == 1) g_print("ok"); else g_print("wrong result?! 1 vs %d", modfunc());
-return 0; }
-EOF
-  $CC $CFLAGS $LDFLAGS conftest.c -o conftest $GLIB_CFLAGS $GLIB_LIBS 2> /dev/null > /dev/null
-  if test ! -s conftest; then
-    AC_MSG_RESULT([no, error compiling test program])
-  else
-    status="`./conftest`"
-    if test "x$status" = "xok"; then
-      DYNLIB_MODULES=yes
-      AC_MSG_RESULT([yes])
-    else
-      AC_MSG_RESULT([no, error running: $status])
-    fi
-  fi
+have_gc=no
+if test "x$want_gc" = xyes; then
+  AC_CHECK_LIB(gc, GC_malloc, [
+    AC_CHECK_HEADER(gc/gc.h, [
+      AC_DEFINE(HAVE_GC_GC_H)
+      AC_DEFINE(USE_GC)
+      LIBS="$LIBS -lgc"
+      have_gc=yes
+    ], [
+      AC_CHECK_HEADER(gc.h, [
+       AC_DEFINE(HAVE_GC_H)
+       AC_DEFINE(USE_GC)
+       LIBS="$LIBS -lgc"
+       have_gc=yes
+      ])
+    ])
+  ])
 fi
-rm -rf conftest conftest.* libconftest.* .libs
 
 dnl **
 dnl ** curses checks
@@ -530,36 +379,42 @@ dnl **
 if test "x$want_textui" = "xyes"; then
        AC_CHECK_CURSES
 
-       TEXTUI_LIBS="$LIBS $CURSES_LIBS"
+       TEXTUI_LIBS="$CURSES_LIBS"
        if test "x$has_curses" = "xtrue"; then
-                       AC_CHECK_FUNC(use_default_colors, AC_DEFINE(HAVE_NCURSES_USE_DEFAULT_COLORS))
-                       AC_CHECK_FUNC(idcok, AC_DEFINE(HAVE_CURSES_IDCOK))
-                       AC_CHECK_FUNC(resizeterm, AC_DEFINE(HAVE_CURSES_RESIZETERM))
-                       AC_CHECK_FUNC(wresize, AC_DEFINE(HAVE_CURSES_WRESIZE))
+               old_libs=$LIBS
+               LIBS="$LIBS $CURSES_LIBS"
+               if test $want_terminfo = no; then
+                       AC_CHECK_FUNC(use_default_colors, AC_DEFINE(HAVE_NCURSES_USE_DEFAULT_COLORS))
+                       AC_CHECK_FUNC(idcok, AC_DEFINE(HAVE_CURSES_IDCOK))
+                       AC_CHECK_FUNC(resizeterm, AC_DEFINE(HAVE_CURSES_RESIZETERM))
+                       AC_CHECK_FUNC(wresize, AC_DEFINE(HAVE_CURSES_WRESIZE))
+               fi
                AC_CHECK_FUNC(setupterm,, [
-                       want_termcap=yes
+                       want_termcap=yes
                ])
+               LIBS=$old_libs
        else
                AC_CHECK_LIB(tinfo, setupterm, [
-                 TEXTUI_LIBS="$LIBS -ltinfo"
+                 TEXTUI_LIBS="-ltinfo"
                  want_terminfo=yes
                ], AC_CHECK_LIB(termlib, tgetent, [
-                 TEXTUI_LIBS="$LIBS -ltermlib"
+                 TEXTUI_LIBS="-ltermlib"
                  want_termcap=yes
                ], AC_CHECK_LIB(termcap, tgetent, [
-                 TEXTUI_LIBS="$LIBS -ltermcap"
+                 TEXTUI_LIBS="-ltermcap"
                  want_termcap=yes
                ], [
                  AC_ERROR(Terminfo/termcap not found - install ncurses-devel package)
                  want_textui=no
                ])))
-        fi
+       fi
        AC_SUBST(TEXTUI_LIBS)
-               if test "x$want_termcap" = "xyes"; then
-                       AC_CHECK_FUNC(tparm,, need_tparm=yes)
+
+       if test "x$want_termcap" = "xyes"; then
+               AC_CHECK_FUNC(tparm,, need_tparm=yes)
        else
                AC_DEFINE(HAVE_TERMINFO)
-               fi
+       fi
 fi
 
 dnl **
@@ -570,23 +425,23 @@ if test "$want_perl" != "no"; then
        AC_MSG_CHECKING(for working Perl support)
 
        if test -z "$perlpath"; then
-                       perl_check_error="perl binary not found"
+               perl_check_error="perl binary not found"
        else
                PERL_CFLAGS=`$perlpath -MExtUtils::Embed -e ccopts 2>/dev/null`
        fi
 
-        if test "x$ac_cv_prog_gcc" = "xyes" -a -z "`echo $host_os|grep 'bsd\|linux'`"; then
-                dnl * several systems have Perl compiled with native compiler
-                dnl * but irssi is being compiled with GCC. Here we try to
-                dnl * fix those command line options a bit so GCC won't
-                dnl * complain about them. Normally there's only few options
-                dnl * that we want to keep:
-                dnl * -Ddefine -Uundef -I/path -fopt -mopt
-                PERL_CFLAGS=`echo $PERL_CFLAGS | $perlpath -pe 's/^(.* )?-[^DUIfm][^ ]+/\1/g; s/^(.* )?\+[^ ]+/\1/g'`
-
-                PERL_EXTRA_OPTS="CCCDLFLAGS=\"-fPIC\""
-                AC_SUBST(PERL_EXTRA_OPTS)
-        fi
+       if test "x$ac_cv_prog_gcc" = "xyes" -a -z "`echo $host_os|grep 'bsd\|linux'`"; then
+               dnl * several systems have Perl compiled with native compiler
+               dnl * but irssi is being compiled with GCC. Here we try to
+               dnl * fix those command line options a bit so GCC won't
+               dnl * complain about them. Normally there's only few options
+               dnl * that we want to keep:
+               dnl * -Ddefine -Uundef -I/path -fopt -mopt
+               PERL_CFLAGS=`echo $PERL_CFLAGS | $perlpath -pe 's/^(.* )?-[^DUIfm][^ ]+/\1/g; s/^(.* )?\+[^ ]+/\1/g'`
+
+               PERL_EXTRA_OPTS="CCCDLFLAGS=\"-fPIC\""
+               AC_SUBST(PERL_EXTRA_OPTS)
+       fi
 
        if test -z "$PERL_CFLAGS"; then
                if test -n "$perl_check_error"; then
@@ -597,36 +452,6 @@ if test "$want_perl" != "no"; then
        else
                PERL_LDFLAGS=`$perlpath -MExtUtils::Embed -e ldopts 2>/dev/null`
 
-               dnl * Perl 5.004 and older use perl_xxx variables while
-               dnl * later use PL_perl_xxx variables ..
-               have_pl_perl=`$perlpath -e 'print $] < 5.005 ? "no" : "yes";'`
-                if test "x$have_pl_perl" = "xyes"; then
-                       AC_DEFINE(HAVE_PL_PERL)
-               fi
-
-               if test "x$DYNLIB_MODULES" = "xno" -a "$want_perl" != "static"; then
-                       dnl * wanted perl as module, won't get it.
-                       want_perl=static
-                       perl_mod_error="Dynamic library dependencies don't work with modules"
-               fi
-
-               if test "$want_perl" != "static"; then
-                       dnl * dynaloader.a -> libperl_dynaloader.la
-                       DYNALOADER_A=`echo $PERL_LDFLAGS | $perlpath -pe 's/^(.* )*([[^ ]]*DynaLoader\.a).*/\2/'`
-               fi
-
-               dnl * don't check libperl.a if dynaloader.a wasn't found..
-               if test -n "$DYNALOADER_A"; then
-                       dnl * find either libperl.a or libperl.so
-                       LIBPERL_A=`echo "$PERL_LDFLAGS -L/usr/lib"|$perlpath -e 'foreach (split(/ /, <STDIN>)) { if (/^-L(.*)/) { my $dir=$1; if (\`ls $dir/libperl.so* 2>/dev/null\`) { print "-lperl"; last; }; if (-e "$dir/libperl.a") { print "$dir/libperl.a"; last } } };'`
-                       if test -z "$LIBPERL_A"; then
-                               perl_mod_error="Didn't find location of -lperl"
-                               DYNALOADER_A=
-                       elif test "$LIBPERL_A" = "-lperl"; then
-                               LIBPERL_A=
-                       fi
-               fi
-
                dnl * remove all database stuffs
                dnl * nsl is already in ldflags
                dnl * libc is of course linked without needing -lc
@@ -652,7 +477,7 @@ if test "$want_perl" != "no"; then
                dnl * check that perl's ldflags actually work
                echo "main(){perl_alloc(); return 0;}" > conftest.c
                $CC $CFLAGS conftest.c -o conftest $LDFLAGS $PERL_LDFLAGS 2> perl.error.tmp > /dev/null
-               if test ! -s conftest; then
+               if test ! -s conftest -a "x$ignore_perl_errors" = "x"; then
                        perl_check_error="Error linking with perl libraries: $PERL_LDFLAGS: `cat perl.error.tmp`"
                        AC_MSG_RESULT([error linking with perl libraries, building without Perl])
                        want_perl=no
@@ -662,20 +487,7 @@ if test "$want_perl" != "no"; then
        fi
 
        if test "x$want_perl" != "xno"; then
-               if test "x$want_perl" = "xstatic"; then
-                       AC_MSG_RESULT(ok)
-               elif test -z "$DYNALOADER_A"; then
-                       AC_MSG_RESULT([error parsing ldopts, building Perl into irssi binary instead of as module])
-                       want_perl=static
-               else
-                       AC_MSG_RESULT(ok)
-                       PERL_LDFLAGS=`echo $PERL_LDFLAGS | $perlpath -pe 's/^(.* )*[[^ ]]*DynaLoader\.a/\1libperl_dynaloader.la/'`
-                       if test -n "$LIBPERL_A"; then
-                               PERL_LDFLAGS=`echo $PERL_LDFLAGS | $sedpath -e 's/-lperl /libperl_orig.la /' -e 's/-lperl$/libperl_orig.la$/'`
-                       fi
-                       AC_SUBST(LIBPERL_A)
-                       AC_SUBST(DYNALOADER_A)
-               fi
+               AC_MSG_RESULT(ok)
 
                if test "x$want_perl" = "xstatic"; then
                        dnl * building with static perl support
@@ -691,14 +503,12 @@ if test "$want_perl" != "no"; then
                        perl_module_fe_lib=
                        perl_static_lib=libperl_core_static.la
                        perl_static_fe_lib=libfe_perl_static.la
-                       PERL_LIBTOOL='$(SHELL) $(top_builddir)/libtool'
                else
                        dnl * build dynamic library of perl module
                        perl_module_lib=libperl_core.la
                        perl_module_fe_lib=libfe_perl.la
                        perl_static_lib=
                        perl_static_fe_lib=
-                       PERL_LIBTOOL='$(SHELL) $(top_builddir)/libtool'
                fi
 
                if test "x$want_staticperllib" = "xyes"; then
@@ -722,11 +532,10 @@ if test "$want_perl" != "no"; then
                AC_SUBST(perl_static_lib)
                AC_SUBST(perl_module_fe_lib)
                AC_SUBST(perl_static_fe_lib)
-               AC_SUBST(PERL_LIBTOOL)
 
                AC_SUBST(PERL_LINK_FLAGS)
                AC_SUBST(PERL_LINK_LIBS)
-                AC_SUBST(PERL_FE_LINK_LIBS)
+               AC_SUBST(PERL_FE_LINK_LIBS)
 
                AC_SUBST(PERL_LDFLAGS)
                AC_SUBST(PERL_CFLAGS)
@@ -741,13 +550,9 @@ dnl ** check what we want to build
 AM_CONDITIONAL(BUILD_TEXTUI, test "$want_textui" = "yes")
 AM_CONDITIONAL(BUILD_IRSSIBOT, test "$want_irssibot" = "yes")
 AM_CONDITIONAL(BUILD_IRSSIPROXY, test "$want_irssiproxy" = "yes")
-AM_CONDITIONAL(BUILD_PLUGINS, test "$want_plugins" = "yes")
 AM_CONDITIONAL(HAVE_PERL, test "$want_perl" != "no")
-AM_CONDITIONAL(HAVE_STATIC_PERL, test "$want_perl" = "static")
 AM_CONDITIONAL(NEED_TPARM, test "$need_tparm" = "yes")
 AM_CONDITIONAL(USE_CURSES, test "$want_terminfo" != "yes" -a "$want_termcap" != "yes")
-AM_CONDITIONAL(BUILD_SERVERTEST, false)
-AM_CONDITIONAL(USE_CUIX, test "$want_cuix" = "yes")
 
 # move LIBS to PROG_LIBS so they're not tried to be used when linking eg. perl libraries
 PROG_LIBS=$LIBS
@@ -771,7 +576,7 @@ dnl ****************************************
 AC_SUBST(CHAT_MODULES)
 AC_SUBST(silc_MODULES)
 
-CORE_LIBS="../core/libcore.a ../lib-config/libirssi_config.a ../lib-popt/libpopt.a"
+CORE_LIBS="../core/libcore.a ../lib-config/libirssi_config.a"
 FE_COMMON_LIBS=""
 
 CHAT_LIBS=""
@@ -795,25 +600,27 @@ for c in $CHAT_MODULES; do
                fi
        done
 
-       file="$srcdir/src/$c/$c.c"
-        echo "/* this file is automatically generated by configure - don't change */" > $file
+       mkdir -p src/$c
+       file="src/$c/$c.c"
+       echo "/* this file is automatically generated by configure - don't change */" > $file
        echo "void ${c}_core_init(void); void ${c}_core_deinit(void);" >> $file
        if test -n "$module_inits"; then
-               echo "$module_inits" | $sedpath -e 's/()/(void)/g' -e 's/ /void /g' >> $file
-               echo "$module_deinits" | $sedpath -e 's/ *$//' -e 's/()/(void)/g' -e 's/ /void /g' -e 's/^/void /' >> $file
+               echo "$module_inits" | $sedpath -e 's/()/(void)/g' -e 's/ /void /g' >> $file
+               echo "$module_deinits" | $sedpath -e 's/ *$//' -e 's/()/(void)/g' -e 's/ /void /g' -e 's/^/void /' >> $file
        fi
-        echo "void ${c}_init(void) { ${c}_core_init(); $module_inits }" >> $file
-        echo "void ${c}_deinit(void) { $module_deinits ${c}_core_deinit(); }" >> $file
+       echo "void ${c}_init(void) { ${c}_core_init(); $module_inits }" >> $file
+       echo "void ${c}_deinit(void) { $module_deinits ${c}_core_deinit(); }" >> $file
 
        if test -f $srcdir/src/fe-common/$c/module.h; then
-               file="$srcdir/src/fe-common/$c/${c}-modules.c"
-               echo "/* this file is automatically generated by configure - don't change */" > $file
-                if test -n "$fe_module_inits"; then
-                       echo "$fe_module_inits" | $sedpath -e 's/()/(void)/g' -e 's/ /void /g' >> $file
-                       echo "$fe_module_deinits" | $sedpath -e 's/ *$//' -e 's/()/(void)/g' -e 's/ /void /g' -e 's/^/void /' >> $file
+               mkdir -p src/fe-common/$c
+               file="src/fe-common/$c/${c}-modules.c"
+               echo "/* this file is automatically generated by configure - don't change */" > $file
+               if test -n "$fe_module_inits"; then
+                       echo "$fe_module_inits" | $sedpath -e 's/()/(void)/g' -e 's/ /void /g' >> $file
+                       echo "$fe_module_deinits" | $sedpath -e 's/ *$//' -e 's/()/(void)/g' -e 's/ /void /g' -e 's/^/void /' >> $file
                fi
-               echo "void fe_${c}_modules_init(void) { $fe_module_inits }" >> $file
-               echo "void fe_${c}_modules_deinit(void) { $fe_module_deinits }" >> $file
+               echo "void fe_${c}_modules_init(void) { $fe_module_inits }" >> $file
+               echo "void fe_${c}_modules_deinit(void) { $fe_module_deinits }" >> $file
        fi
 done
 
@@ -829,6 +636,7 @@ dnl **
 dnl ** IPv6 support
 dnl **
 
+have_ipv6=no
 if test "x$want_ipv6" = "xyes"; then
        AC_MSG_CHECKING([for IPv6])
        AC_CACHE_VAL(irssi_cv_type_in6_addr,
@@ -839,22 +647,29 @@ if test "x$want_ipv6" = "xyes"; then
        #include <netdb.h>
        #include <arpa/inet.h>],
        [struct in6_addr i;],
-       irssi_cv_type_in6_addr=yes,
-       irssi_cv_type_in6_addr=no,
+       have_ipv6=yes,
        )])
-       if test $irssi_cv_type_in6_addr = yes; then
+       if test $have_ipv6 = yes; then
                AC_DEFINE(HAVE_IPV6)
        fi
-       AC_MSG_RESULT($irssi_cv_type_in6_addr)
+       AC_MSG_RESULT($have_ipv6)
 fi
 
-dnl **
-dnl ** IRSSI_VERSION_DATE and IRSSI_VERSION_TIME
-dnl **
-#VERSION_DATE=`head -1 $srcdir/ChangeLog|sed 's/^\(....\)-\(..\)-\(..\).*/\1\2\3/'`
-#VERSION_TIME=`head -1 $srcdir/ChangeLog|sed -e 's/^[[^ ]]* \(..\):\(..\).*/\1\2/' -e 's/^0*//'`
-#AC_SUBST(VERSION_DATE)
-#AC_SUBST(VERSION_TIME)
+if test "x$want_dane" = "xyes"; then
+       AC_MSG_CHECKING([for DANE])
+       AC_CHECK_LIB(val-threads, val_getdaneinfo,
+       [
+               LIBS="$LIBS -lval-threads -lsres"
+               AC_DEFINE([HAVE_DANE], [], [DANE support])
+               have_dane=yes
+       ], [], [-lssl -lcrypto -lsres -lpthread])
+
+       if test x$have_dane = "xyes" ; then
+               if test x$have_openssl = "xno" ; then
+                       AC_ERROR([SSL is required to build Irssi with DANE support enabled.])
+               fi
+       fi
+fi
 
 #
 # Glue into SILC build system
@@ -862,7 +677,7 @@ dnl **
 INCLUDE_DEFINES_INT="include \$(top_srcdir)/Makefile.defines_int"
 AC_SUBST(INCLUDE_DEFINES_INT)
 
-AC_OUTPUT(
+AC_CONFIG_FILES([
 Makefile
 src/Makefile
 src/core/Makefile
@@ -871,7 +686,6 @@ src/fe-common/core/Makefile
 src/fe-common/silc/Makefile
 src/fe-text/Makefile
 src/lib-config/Makefile
-src/lib-popt/Makefile
 src/silc/Makefile
 src/silc/core/Makefile
 src/perl/Makefile
@@ -885,20 +699,20 @@ docs/Makefile
 docs/help/Makefile
 docs/help/in/Makefile
 irssi-version.h
-stamp.h
-irssi-config)
+irssi-config
+])
+
+AC_OUTPUT
 
 dnl ** for building from objdir
 old_dir=`pwd` && cd $srcdir && whole_dir=`pwd` && cd $old_dir
 if test "x$old_dir" != "x$whole_dir"; then
-       $LN_S $srcdir/irssi-version.h irssi-version.h
-
        if test "x$want_perl" != "xno"; then
                subdirfiles=""
                for i in $whole_dir/src/perl/common $whole_dir/src/perl/irc $whole_dir/src/perl/ui $whole_dir/src/perl/textui; do
                        subdirfiles=`echo $subdirfiles $i/typemap $i/module.h $i/*.pm $i/*.xs`
                done
-               for file in $whole_dir/src/perl/*.[[ch]] $whole_dir/src/perl/libperl_orig.la $whole_dir/src/perl/libperl_dynaloader.la $subdirfiles; do
+               for file in $whole_dir/src/perl/module.h $subdirfiles; do
                        link=`echo $file|$sedpath "s?$whole_dir/??"`
                        rm -f $link
                        $LN_S $file $link
@@ -917,12 +731,11 @@ elif test "x$want_terminfo" = "xyes"; then
 else
        text="yes, using curses"
 fi
-echo "Building text frontend ..... : $text"
-echo "Building irssi bot ......... : $want_irssibot"
-echo "Building irssi proxy ....... : $want_irssiproxy"
-echo "Building with IPv6 support . : $want_ipv6"
+echo "Building text frontend ........... : $text"
+echo "Building irssi bot ............... : $want_irssibot"
+echo "Building irssi proxy ............. : $want_irssiproxy"
 if test "x$have_gmodule" = "xyes"; then
-       echo "Building with module support : yes"
+       echo "Building with module support ..... : yes"
 else
        echo "Building with module support : NO!! /LOAD will not work!"
        echo " - You're missing gmodule (comes with glib) for some reason,"
@@ -930,14 +743,14 @@ else
 fi
 
 if test "x$want_perl" = "xstatic"; then
-       echo "Building with Perl support . : static (in irssi binary)"
+       echo "Building with Perl support ....... : static (in irssi binary)"
 elif test "x$want_perl" = "xmodule"; then
-       echo "Building with Perl support . : module"
+       echo "Building with Perl support ....... : module"
 else
        if test -z "$perl_check_error"; then
-               echo "Building with Perl support . : no"
+               echo "Building with Perl support ....... : no"
        else
-               echo "Building with Perl support . : NO!"
+               echo "Building with Perl support ....... : NO!"
                echo " - $perl_check_error"
        fi
 fi
@@ -959,7 +772,7 @@ if test "x$want_perl" != "xno"; then
        if test -z "$perl_library_dir"; then
                perl_library_dir="(site default - `$perlpath -e 'use Config; print $Config{sitearch}'`)"
        fi
-               echo "Perl library directory ..... : $perl_library_dir"
+       echo "Perl library directory ........... : $perl_library_dir"
        if test "x$perl_prefix_note" = "xyes"; then
                echo "  - NOTE: This was automatically set to the same directory you gave with"
                echo "  --prefix. If you want the perl libraries to install to their 'correct'"
@@ -967,8 +780,15 @@ if test "x$want_perl" != "xno"; then
                echo "  Anyway, installing perl to this directory should work just as well."
        fi
 fi
+echo "Install prefix ................... : $prefix"
+
+echo
 
-echo "Install prefix ............. : $prefix"
+echo "Building with IPv6 support ....... : $have_ipv6"
+echo "Building with SSL support ........ : $have_openssl"
+echo "Building with 64bit DCC support .. : $offt_64bit"
+echo "Building with garbage collector .. : $have_gc"
+echo "Building with DANE support ....... : $have_dane"
 
 echo
-echo "If there was any problems, read the INSTALL file."
+echo "If there are any problems, read the INSTALL file."
index 83a08126cbc7cb104308145ed73411f725199359..82b110feab49edafb32f6e733f7382fb9ce63f07 100644 (file)
@@ -5,7 +5,7 @@ dnl =============
 dnl
 dnl - Determine which version of curses is installed on your system
 dnl   and set the -I/-L/-l compiler entries and add a few preprocessor
-dnl   symbols 
+dnl   symbols
 dnl - Do an AC_SUBST on the CURSES_INCLUDEDIR and CURSES_LIBS so that
 dnl   @CURSES_INCLUDEDIR@ and @CURSES_LIBS@ will be available in
 dnl   Makefile.in's
@@ -15,7 +15,7 @@ dnl   CURSES_INCLUDEDIR - contains -I's and possibly -DRENAMED_CURSES if
 dnl                       an ncurses.h that's been renamed to curses.h
 dnl                       is found.
 dnl   CURSES_LIBS       - sets -L and -l's appropriately
-dnl   CFLAGS            - if --with-sco, add -D_SVID3 
+dnl   CFLAGS            - if --with-sco, add -D_SVID3
 dnl   has_curses        - exports result of tests to rest of configure
 dnl
 dnl Usage:
@@ -39,7 +39,7 @@ dnl - call AM_CONDITIONAL(HAS_CURSES, test "$has_curses" = true) from
 dnl   configure.in
 dnl - your Makefile.am can look something like this
 dnl   -----------------------------------------------
-dnl   INCLUDES= blah blah blah $(CURSES_INCLUDEDIR) 
+dnl   INCLUDES= blah blah blah $(CURSES_INCLUDEDIR)
 dnl   if HAS_CURSES
 dnl   CURSES_TARGETS=name_of_curses_prog
 dnl   endif
@@ -57,25 +57,25 @@ dnl
 dnl /*=== Curses version detection defines ===*/
 dnl /* Found some version of curses that we're going to use */
 dnl #undef HAS_CURSES
-dnl    
+dnl   
 dnl /* Use SunOS SysV curses? */
 dnl #undef USE_SUNOS_CURSES
-dnl 
+dnl
 dnl /* Use old BSD curses - not used right now */
 dnl #undef USE_BSD_CURSES
-dnl 
+dnl
 dnl /* Use SystemV curses? */
 dnl #undef USE_SYSV_CURSES
-dnl 
+dnl
 dnl /* Use Ncurses? */
 dnl #undef USE_NCURSES
-dnl 
+dnl
 dnl /* If you Curses does not have color define this one */
 dnl #undef NO_COLOR_CURSES
-dnl 
+dnl
 dnl /* Define if you want to turn on SCO-specific code */
 dnl #undef SCO_FLAVOR
-dnl 
+dnl
 dnl /* Set to reflect version of ncurses *
 dnl  *   0 = version 1.*
 dnl  *   1 = version 1.9.9g
@@ -83,10 +83,10 @@ dnl  *   2 = version 4.0/4.1 */
 dnl #undef NCURSES_970530
 dnl
 dnl /*=== End new stuff for acconfig.h ===*/
-dnl 
+dnl
 
 
-AC_DEFUN(AC_CHECK_CURSES,[
+AC_DEFUN([AC_CHECK_CURSES],[
        search_ncurses=true
        screen_manager=""
        has_curses=false
@@ -119,7 +119,7 @@ AC_DEFUN(AC_CHECK_CURSES,[
        ])
 
        AC_ARG_WITH(vcurses,
-         [  --with-vcurses[=incdir] Used to force SysV curses],
+         [[  --with-vcurses[=incdir] Used to force SysV curses]],
          if test x$withval != xyes; then
                CURSES_INCLUDEDIR="-I$withval"
          fi
@@ -127,7 +127,7 @@ AC_DEFUN(AC_CHECK_CURSES,[
        )
 
        AC_ARG_WITH(ncurses,
-         [  --with-ncurses[=dir]    Compile with ncurses/locate base dir],
+         [[  --with-ncurses[=dir]    Compile with ncurses/locate base dir]],
          if test x$withval = xno ; then
                search_ncurses=false
          elif test x$withval != xyes ; then
@@ -142,7 +142,7 @@ AC_DEFUN(AC_CHECK_CURSES,[
 ])
 
 
-AC_DEFUN(AC_USE_SUNOS_CURSES, [
+AC_DEFUN([AC_USE_SUNOS_CURSES], [
        search_ncurses=false
        screen_manager="SunOS 4.x /usr/5include curses"
        AC_MSG_RESULT(Using SunOS 4.x /usr/5include curses)
@@ -156,7 +156,7 @@ AC_DEFUN(AC_USE_SUNOS_CURSES, [
        AC_MSG_RESULT(Please note that some screen refreshs may fail)
 ])
 
-AC_DEFUN(AC_USE_OSF1_CURSES, [
+AC_DEFUN([AC_USE_OSF1_CURSES], [
        AC_MSG_RESULT(Using OSF1 curses)
        search_ncurses=false
        screen_manager="OSF1 curses"
@@ -167,7 +167,7 @@ AC_DEFUN(AC_USE_OSF1_CURSES, [
        CURSES_LIBS="-lcurses"
 ])
 
-AC_DEFUN(AC_USE_SYSV_CURSES, [
+AC_DEFUN([AC_USE_SYSV_CURSES], [
        AC_MSG_RESULT(Using SysV curses)
        AC_DEFINE(HAS_CURSES)
        has_curses=true
@@ -198,11 +198,11 @@ dnl       AC_WARN(display/input problems.)
 dnl    AC_WARN(Reconsider using xcurses)
 dnl)
 
-       
+
 dnl
-dnl Parameters: directory filename cureses_LIBS curses_INCLUDEDIR nicename
+dnl Parameters: directory filename curses_LIBS curses_INCLUDEDIR nicename
 dnl
-AC_DEFUN(AC_NCURSES, [
+AC_DEFUN([AC_NCURSES], [
     if $search_ncurses
     then
         if test -f $1/$2
@@ -220,7 +220,7 @@ AC_DEFUN(AC_NCURSES, [
            ], $CURSES_LIBS)
            CURSES_INCLUDEDIR="$4"
            search_ncurses=false
-           screen_manager=$5
+           screen_manager="$5"
             AC_DEFINE(HAS_CURSES)
             has_curses=true
            has_ncurses=true
@@ -229,24 +229,26 @@ AC_DEFUN(AC_NCURSES, [
     fi
 ])
 
-AC_DEFUN(AC_SEARCH_NCURSES, [
+AC_DEFUN([AC_SEARCH_NCURSES], [
     AC_CHECKING("location of ncurses.h file")
 
-    AC_NCURSES(/usr/include, ncurses.h, -lncurses,, "ncurses on /usr/include")
-    AC_NCURSES(/usr/include/ncurses, ncurses.h, -lncurses, -I/usr/include/ncurses, "ncurses on /usr/include/ncurses")
-    AC_NCURSES(/usr/local/include, ncurses.h, -L/usr/local/lib -lncurses, -I/usr/local/include, "ncurses on /usr/local")
-    AC_NCURSES(/usr/pkg/include, ncurses.h, -L/usr/pkg/lib -lncurses, -I/usr/pkg/include, "ncurses on /usr/pkg")
-    AC_NCURSES(/usr/contrib/include, ncurses.h, -L/usr/contrib/lib -lncurses, -I/usr/contrib/include, "ncurses on /usr/contrib")
-    AC_NCURSES(/usr/local/include/ncurses, ncurses.h, -L/usr/local/lib -L/usr/local/lib/ncurses -lncurses, -I/usr/local/include/ncurses, "ncurses on /usr/local/include/ncurses")
-
-    AC_NCURSES(/usr/local/include/ncurses, curses.h, -L/usr/local/lib -lncurses, -I/usr/local/include/ncurses -DRENAMED_NCURSES, "renamed ncurses on /usr/local/.../ncurses")
-
-    AC_NCURSES(/usr/include/ncurses, curses.h, -lncurses, -I/usr/include/ncurses -DRENAMED_NCURSES, "renamed ncurses on /usr/include/ncurses")
+    AC_NCURSES(/usr/include, ncurses.h, -lncurses,,
+              [ncurses in /usr/include])
+    AC_NCURSES(/usr/include/ncurses, ncurses.h, -lncurses, -I/usr/include/ncurses,
+              [ncurses in /usr/include/ncurses])
+    AC_NCURSES(/usr/local/include, ncurses.h, -L/usr/local/lib -lncurses, -I/usr/local/include,
+              [ncurses in /usr/local/include])
+    AC_NCURSES(/usr/local/include/ncurses, ncurses.h, -L/usr/local/lib -lncurses, -I/usr/local/include/ncurses,
+              [ncurses in /usr/local/include/ncurses])
+    AC_NCURSES(/usr/local/include/ncurses, curses.h, -L/usr/local/lib -lncurses, -I/usr/local/include/ncurses -DRENAMED_NCURSES,
+              [renamed ncurses in /usr/local/include/ncurses])
+    AC_NCURSES(/usr/include/ncurses, curses.h, -lncurses, -I/usr/include/ncurses -DRENAMED_NCURSES,
+              [renamed ncurses in /usr/include/ncurses])
 
     dnl
     dnl We couldn't find ncurses, try SysV curses
     dnl
-    if $search_ncurses 
+    if $search_ncurses
     then
         AC_EGREP_HEADER(init_color, /usr/include/curses.h,
            AC_USE_SYSV_CURSES)
index f7e6d668ba9c79e34b6ea7ac35136c7020479b40..5b993f03dd94772b14771fb48d48cb1562b2b120 100644 (file)
@@ -10,7 +10,7 @@
 # up in those formats, and it was really hard to change the colors since you
 # might have had to change them in tens of different places. So, then came
 # this templating system.
-    
+
 # Now the /FORMATs don't have any colors in them, and they also have very
 # little other styling. Most of the stuff you need to change is in this
 # theme file. If you can't change something here, you can always go back
@@ -47,7 +47,7 @@
 
 #############################################################################
 
-# default foreground color (%N) - 0 is the "default terminal color" 
+# default foreground color (%N) - -1 is the "default terminal color"
 default_color = "-1";
 
 # print timestamp/servertag at the end of line, not at beginning
@@ -55,8 +55,7 @@ info_eol = "false";
 
 # these characters are automatically replaced with specified color
 # (dark grey by default)
-#replaces = { "()=" = "%K$*%n"; };
-replaces = {};
+replaces = { "[]=" = "%K$*%n"; };
 
 abstracts = {
   ##
@@ -64,93 +63,62 @@ abstracts = {
   ##
 
   # text to insert at the beginning of each non-message line
-  line_start = "*** ";
+  line_start = "%B-%n!%B-%n ";
 
   # timestamp styling, nothing by default
-  timestamp = "[$0-]";
+  timestamp = "$*";
 
   # any kind of text that needs hilighting, default is to bold
-  hilight = "%_$0-%_";
+  hilight = "%_$*%_";
 
   # any kind of error message, default is bright red
-  error = "%R$0-%n";
+  error = "%R$*%n";
 
   # channel name is printed
-  channel = "%c$0-%n";
+  channel = "%_$*%_";
 
   # nick is printed
-  nick = "%c$0-%n";
+  nick = "%_$*%_";
 
   # nick host is printed
-  nickhost = "($0-)";
+  nickhost = "[$*]";
 
   # server name is printed
-  server = "$0-";
+  server = "%_$*%_";
 
   # some kind of comment is printed
-  comment = "($0-)";
+  comment = "[$*]";
 
   # reason for something is printed (part, quit, kick, ..)
-  reason = "{comment $0-}";
+  reason = "{comment $*}";
 
-  # mode change is printed
-  mode = "[$0-]";
+  # mode change is printed ([+o nick])
+  mode = "{comment $*}";
 
   ##
   ## channel specific messages
   ##
 
   # highlighted nick/host is printed (joins)
-  channick_hilight = "%c$0-%n";
-  chanhost_hilight = "{nickhost %c$0-%n}";
+  channick_hilight = "%C$*%n";
+  chanhost_hilight = "{nickhost %c$*%n}";
 
   # nick/host is printed (parts, quits, etc.)
-  channick = "$0-";
-  chanhost = "{nickhost $0-}";
+  channick = "%c$*%n";
+  chanhost = "{nickhost $*}";
 
   # highlighted channel name is printed
-  channelhilight = "%c$0-%n";
+  channelhilight = "%c$*%n";
 
   # ban/ban exception/invite list mask is printed
-  ban = "$0-";
-
-  ##
-  ## Action (/ME command)
-  ##
-
-  # Generic action
-  action = "%c* $*%n ";
-
-  # Own sent action
-  ownaction = "{action $*}";
-
-  # Own sent action with target
-  ownaction_target = "{action $0}%K:%c$1%n ";
-
-  # private action sent by others
-  pvtaction = "%Y(*) $*%n ";
-  pvtaction_query = "%Y* $*%n ";
-
-  # public action sent by others
-  pubaction = "{pvtaction_query $*}";
-
-  ##
-  ## Notice (/NOTICE command)
-  ##
-
-  # Generic notice
-  ownnotice = "%g- $1 -%n ";
-  notice = "%C- $* -%n ";
-  pubnotice_channel = "";
-  pvtnotice_host = "";
-
+  ban = "%c$*%n";
 
   ##
   ## messages
   ##
 
   # the basic styling of how to print message, $0 = nick mode, $1 = nick
-  msgnick = "%c%|<$0$1->%n ";
+  msgnick = "%K<%n$0$1-%K>%n %|";
 
   # message from you is printed. "msgownnick" specifies the styling of the
   # nick ($0 part in msgnick) and "ownmsgnick" specifies the styling of the
@@ -164,80 +132,117 @@ abstracts = {
   # Example2.2: But you still want to keep <> grey for other messages:
   #  pubmsgnick = "%K{msgnick $0 $1-%K}%n";
   #  pubmsgmenick = "%K{msgnick $0 $1-%K}%n";
-  #  pubmsghinick = "%K{msgnick $1 $0$2-%K}%n";
-  #  ownprivmsgnick = "%K{msgnick  $0-%K}%n";
-  #  privmsgnick = "%K{msgnick  %R$0-%K}%n";
+  #  pubmsghinick = "%K{msgnick $1 $0$2-%n%K}%n";
+  #  ownprivmsgnick = "%K{msgnick  $*%K}%n";
+  #  privmsgnick = "%K{msgnick  %R$*%K}%n";
 
   # $0 = nick mode, $1 = nick
-  ownmsgnick = "{msgnick $0 $1-}%g";
-  ownnick = "$0-";
+  ownmsgnick = "{msgnick $0 $1-}";
+  ownnick = "%_$*%n";
 
   # public message in channel, $0 = nick mode, $1 = nick
   pubmsgnick = "{msgnick $0 $1-}";
-  pubnick = "$0-";
+  pubnick = "%N$*%n";
 
   # public message in channel meant for me, $0 = nick mode, $1 = nick
-  pubmsgmenick = "%g<$0$1->%n %|";
-  menick = "$0-";
+  pubmsgmenick = "{msgnick $0 $1-}";
+  menick = "%Y$*%n";
 
   # public highlighted message in channel
   # $0 = highlight color, $1 = nick mode, $2 = nick
-  pubmsghinick = "{msgnick $1 $2-}$0";
+  pubmsghinick = "{msgnick $1 $0$2-%n}";
 
   # channel name is printed with message
-  msgchannel = "%w|%c$0-";
+  msgchannel = "%K:%c$*%n";
 
   # private message, $0 = nick, $1 = host
-  privmsg = "*%c$0%n* ";
+  privmsg = "[%R$0%K(%r$1-%K)%n] ";
 
   # private message from you, $0 = "msg", $1 = target nick
-  ownprivmsg = "->*%c$1-%n* %g";
+  ownprivmsg = "[%r$0%K(%R$1-%K)%n] ";
+
+  # own private message in query
+  ownprivmsgnick = "{msgnick  $*}";
+  ownprivnick = "%_$*%n";
 
   # private message in query
-  privmsgnick = "*%c$0%n* ";
+  privmsgnick = "{msgnick  %R$*%n}";
 
-  # own private message in query
-  ownprivmsgnick = "->*%c$0%n* %g$1-";
-  ownprivnick = "$0-";
+  ##
+  ## Actions (/ME stuff)
+  ##
+
+  # used internally by this theme
+  action_core = "%_ * $*%n";
+
+  # generic one that's used by most actions
+  action = "{action_core $*} ";
+
+  # own action, both private/public
+  ownaction = "{action $*}";
+
+  # own action with target, both private/public
+  ownaction_target = "{action_core $0}%K:%c$1%n ";
+
+  # private action sent by others
+  pvtaction = "%_ (*) $*%n ";
+  pvtaction_query = "{action $*}";
+
+  # public action sent by others
+  pubaction = "{action $*}";
 
 
   ##
   ## other IRC events
   ##
 
+  # whois
+  whois = "%# $[8]0 : $1-";
+
+  # notices
+  ownnotice = "[%r$0%K(%R$1-%K)]%n ";
+  notice = "%K-%M$*%K-%n ";
+  pubnotice_channel = "%K:%m$*";
+  pvtnotice_host = "%K(%m$*%K)";
+  servernotice = "%g!$*%n ";
+
   # CTCPs
-  ownctcp = "[$0$1-] ";
-  ctcp = "$0-";
+  ownctcp = "[%r$0%K(%R$1-%K)] ";
+  ctcp = "%g$*%n";
 
   # wallops
-  wallop = "$0-: ";
-  wallop_nick = "$0-";
-  wallop_action = " * $0- ";
+  wallop = "%_$*%n: ";
+  wallop_nick = "%n$*";
+  wallop_action = "%_ * $*%n ";
 
   # netsplits
-  netsplit = "%c$0-%n";
-  netjoin = "%C$0-%n";
+  netsplit = "%R$*%n";
+  netjoin = "%C$*%n";
 
   # /names list
   names_prefix = "";
-  names_nick = "[ %n%_$0%_$1- ] ";
+  names_nick = "[%_$0%_$1-] ";
   names_nick_op = "{names_nick $*}";
-  names_users = "$0-";
-  names_channel = "{channel $0-}";
+  names_nick_halfop = "{names_nick $*}";
+  names_nick_voice = "{names_nick $*}";
+  names_users = "[%g$*%n]";
+  names_channel = "%G$*%n";
 
   # DCC
-  dcc = "$0-";
-  dccfile = "%_$0-%_";
+  dcc = "%g$*%n";
+  dccfile = "%_$*%_";
 
   # DCC chat, own msg/action
-  dccownmsg = "*%c=$1-%n*> %g";
-  dccownaction = "{action $0-}";
-  dccownaction_target = "{ownaction_target $0-}";
+  dccownmsg = "[%r$0%K($1-%K)%n] ";
+  dccownnick = "%R$*%n";
+  dccownquerynick = "%_$*%n";
+  dccownaction = "{action $*}";
+  dccownaction_target = "{action_core $0}%K:%c$1%n ";
 
   # DCC chat, others
-  dccmsg = "*%c=$1-%n* ";
-  dccquerynick = "$0-";
-  dccaction = " (*dcc*) $0- %|";
+  dccmsg = "[%G$1-%K(%g$0%K)%n] ";
+  dccquerynick = "%G$*%n";
+  dccaction = "%_ (*dcc*) $*%n %|";
 
   ##
   ## statusbar
@@ -263,13 +268,16 @@ abstracts = {
   # used for anything.
   sbend = " ";
 
+  topicsbstart = "{sbstart $*}";
+  topicsbend = "{sbend $*}";
+
   prompt = "[$*] ";
 
   sb = " %c[%n$*%c]%n";
   sbmode = "(%c+%n$*)";
-  sbusermode = "(%n$*)";
   sbaway = " (%GzZzZ%n)";
   sbservertag = ":$0 (change with ^X)";
+  sbnickmode = "$0";
 
   # activity in statusbar
 
@@ -285,70 +293,30 @@ abstracts = {
   sb_act_hilight_color = "$0$1-%n";
 
   # signed messages
-  # the following formats fit the Irssi default theme:
-  # 
-  # flag_signed = "%GS%n";
-  # flag_unknown = "%Y?%n";
-  # flag_failed = "%RF%n";
-  # 
-  # pubmsghinick_signed = "{msgnick {flag_signed} $0$2-%n}";
-  # pubmsghinick_unknown = "{msgnick {flag_unknown} $0$2-%n}";
-  # pubmsghinick_failed = "{msgnick {flag_failed} $0$2-%n}";
-  # 
-  # pubmsgmenick_signed = "{msgnick {flag_signed} $1-}";
-  # pubmsgmenick_unknown = "{msgnick {flag_unknown} $1-}";
-  # pubmsgmenick_failed = "{msgnick {flag_failed} $1-}";
-  # 
-  # pubmsgnick_signed = "{msgnick {flag_signed} $1-}";
-  # pubmsgnick_unknown = "{msgnick {flag_unknown} $1-}";
-  # pubmsgnick_failed = "{msgnick {flag_failed} $1-}";
-  # 
-  # privmsg_signed = "{privmsg {flag_signed}$0 $1}";
-  # privmsg_unknown = "{privmsg {flag_unknown}$0 $1}";
-  # privmsg_failed = "{privmsg {flag_failed}$0 $1}";
-  # 
-  # privmsgnick_signed = "{msgnick {flag_signed} %R$*%n}";
-  # privmsgnick_unknown = "{msgnick {flag_unknown} %R$*%n}";
-  # privmsgnick_failed = "{msgnick {flag_failed} %R$*%n}";
-  # 
-  # ownmsgnick_signed = "{msgnick {flag_signed} $1-}";
-  # ownprivmsgnick_signed = "{msgnick {flag_signed} $*}";
-  #
-  flag_signed = "[%cS%n]";
+  flag_signed = "[%GS%n]";
   flag_unknown = "[%Y?%n]";
   flag_failed = "[%RF%n]";
 
   pubmsghinick_signed = "{msgnick {flag_signed} $0$2-%n}";
   pubmsghinick_unknown = "{msgnick {flag_unknown} $0$2-%n}";
   pubmsghinick_failed = "{msgnick {flag_failed} $0$2-%n}";
-  
-  pubmsgmenick_signed = "%g<{flag_signed}$1->%n %|";
-  pubmsgmenick_unknown = "%g<{flag_unknown}$1->%n %|";
-  pubmsgmenick_failed = "%g<{flag_failed}$1->%n %|";
-  
-  pubmsgnick_signed = "{msgnick {flag_signed}$0 $1-}";
-  pubmsgnick_unknown = "{msgnick {flag_unknown}$0 $1-}";
-  pubmsgnick_failed = "{msgnick {flag_failed}$0 $1-}";
-  
+
+  pubmsgmenick_signed = "{msgnick {flag_signed} $1-}";
+  pubmsgmenick_unknown = "{msgnick {flag_unknown} $1-}";
+  pubmsgmenick_failed = "{msgnick {flag_failed} $1-}";
+
+  pubmsgnick_signed = "{msgnick {flag_signed} $1-}";
+  pubmsgnick_unknown = "{msgnick {flag_unknown} $1-}";
+  pubmsgnick_failed = "{msgnick {flag_failed} $1-}";
+
   privmsg_signed = "{privmsg {flag_signed}$0 $1}";
   privmsg_unknown = "{privmsg {flag_unknown}$0 $1}";
   privmsg_failed = "{privmsg {flag_failed}$0 $1}";
-  
-  privmsgnick_signed = "{privmsgnick {flag_signed}$0}";
-  privmsgnick_unknown = "{privmsgnick {flag_unknown}$0}";
-  privmsgnick_failed = "{privmsgnick {flag_failed}$0}";
-  
-  ownmsgnick_signed = "{msgnick {flag_signed} $1-}%g";
-  ownprivmsg_signed = "->*%c{flag_signed}$1-%n* %g";
-  ownprivmsgnick_signed = "->*%c{flag_signed}$0%n* %g$1-";
-};
 
-#
-# Some default formats how to print stuff on screen
-#
-formats = {
-  "fe-common/core" = {
-    endofnames = "{channel $0}: Total of {hilight $1} nicks {comment {hilight $2} ops, {hilight $4} normal}";
-    line_start_irssi = "{line_start}";
-  };
+  privmsgnick_signed = "{msgnick {flag_signed} %R$*%n}";
+  privmsgnick_unknown = "{msgnick {flag_unknown} %R$*%n}";
+  privmsgnick_failed = "{msgnick {flag_failed} %R$*%n}";
+
+  ownmsgnick_signed = "{msgnick {flag_signed} $1-}";
+  ownprivmsgnick_signed = "{msgnick {flag_signed} $*}";
 };
index 31b0f994d6a5d8c086eb104317b8571fc788cc06..5f8685668e3764dc7b0e13639da0c7e56428a176 100644 (file)
@@ -1,6 +1,14 @@
-doc_DATA = signals.txt formats.txt manual.txt startup-HOWTO.html \
-       special_vars.txt
+man_MANS =
 
-EXTRA_DIST = $(doc_DATA)
+doc_DATA = \
+       formats.txt \
+       manual.txt \
+       faq.html \
+       perl.txt \
+       signals.txt \
+       special_vars.txt \
+       startup-HOWTO.html
+
+EXTRA_DIST = $(doc_DATA) $(man_MANS)
 
 SUBDIRS = help
index 5c8ddcf1166420a083da87badf5fa9a78c6b69ff..3f372829eb22582aeeee474124cdea1fc9a512ea 100644 (file)
@@ -22,8 +22,8 @@
         |____|_____|_____|____|
                    |
                  CORE
-                 /  \
-        lib-config  lib-popt
+                 /
+        lib-config
 
 
  (IRC, ICQ, xxx and yyy are chat protocols ..)
  signal. Don't bother to do this unless your signal is sent (or could be
  sent) several times in a second.
 
- See src/core/signals.h for defination of the signal function, and
+ See src/core/signals.h for definition of the signal function, and
  signals.txt for a list of signals.
 
 
- ** lib-popt
-
-   CORE depends on this for command line parameter handling.
-   (distributed with irssi)
-
-
  ** lib-config
 
    Irssi depends on this for reading and saving configuration.
index 4d1f004993a53415e610bb096e67369f2f86c49b..e2de97996b63a7d9a3091ded9f308fa669adfdc7 100644 (file)
@@ -63,7 +63,7 @@ show all needed information, so you might want to do <code>/SET rawlog_lines
 <h3>Q: Where's the GUI version?</h3>
 
 <p>A: Read
-<a href="http://irssi.org/?page=about">http://irssi.org/?page=about</a></p>
+<a href="http://www.irssi.org/about">http://www.irssi.org/about</a></p>
 
 
 <h3>Q: How do I autorejoin channels after being kicked?</h3>
index 7bf5760b01c3d499460f362b8677a8c5ebdd1e83..9b0f2aaa10479b3f20f4fad0797a302dda1d8300 100644 (file)
@@ -1,4 +1,5 @@
 # Makefile.am is autogenerated by autogen.sh from Makefile.am.gen
 
 EXTRA_DIST = \
-       Makefile.am.gen
+       Makefile.am.gen \
+@HELPFILES@
index 76160f02b4901f1973a70b84f8bfe48baf7cd013..b5d95254118e8d4ec21a4d0ce9243abb89e6281d 100644 (file)
@@ -3,8 +3,6 @@
 
 Displays the administrative details about the given server. If
 no server is specified, the server you are connected to is
-used.
+used. If a nickname is supplied then it gives the administrative 
+information for that person's current server.
 
-This command is an alias of INFO.
-
-See also: INFO, STATS
index 51e0c0d00a63173c95fbfbdf24fd1c88e16fe4ea..d48dcd69dac54fa3f89b022ada3d9239f6945444 100644 (file)
@@ -36,66 +36,7 @@ some other key than ^W, then it would be better done as:
  /BIND window-^K /WINDOW KILL
 
 
-Command can be one of:
-
-  command - Run any /COMMAND (you could use /COMMAND directly without
-                              specifying this)
-
-(Cursor movement)
-  backward_character
-  forward_character
-  backward_word
-  forward_word
-  beginning_of_line
-  end_of_line
-
-(Scrollback movement)
-  scroll_backward - Previous page
-  scroll_forward - Next page
-  scroll_start - Beginning of the window
-  scroll_end - End of the window
-
-(Switching windows)
-  change_window
-  previous_window
-  next_window
-  upper_window
-  lower_window
-  active_window - Go to next window with the highest activity
-  next_window_item - Next channel/query. In empty windows change
-                     to next server
-  previous_window_item - Previous channel/query. In empty windows change
-                         to previous server
-
-(History)
-  backward_history
-  forward_history
-
-(Deleting text)
-  backspace
-  delete_character
-  delete_character
-  delete_next_word
-  delete_previous_word
-  delete_to_next_space
-  delete_to_previous_space
-  erase_line
-  erase_to_beg_of_line
-  erase_to_end_of_line
-
-(Word completion)
-  word_completion
-  erase_completion
-  check_replaces - Check word replaces
-
-(Misc)
-  nothing - use this to disable a built-in key
-  refresh_screen
-  yank_from_cutbuffer - "Undelete" line
-  transpose_characters - Swap current and previous character
-  escape_char - Insert the next character exactly as-is to input line
-  insert_text - Insert data to entry line, data may contain $variables.
-  stop_irc - Send SIGSTOP to client (^Z)
+To get a list of all bindable commands use /bind -list.
 
 Examples:
 
index 51c07678dd7f846c774f668d9dc8beb537082452..ea324aa3eb092c91ec6d511f3c5190b2ef9d91fc 100644 (file)
@@ -4,5 +4,5 @@
 Outputs the contents of the specified file. Equivalent to
 UNIX 'cat' command.
 
-See also: EXEC
+See also: CD
 
index 1d9f8d62e9e7b371d10d3a8b0dffdffbda4e3726..dd62f710f60819fc17a797830c8605313b434352 100644 (file)
@@ -4,5 +4,5 @@
 Changes the current working directory. Equivalent to UNIX
 'cd' command.
 
-See also: EXEC
+See also: DCC GET
 
index 5c7e73bec04ce49ac22d9fc92094dc6493b8770e..b3db54ef720a2fa33af2de5d84bcba6d875a0932 100644 (file)
@@ -4,5 +4,6 @@
 This command clears the current window of all text. It is useful 
 for wiping a screen that has rendered improperly (such as due 
 to a bad termcap entry) or that contains sensitive information 
+(such as one's OPER password). 
 
 
index 7e8a8fb5e87918c4ef8b16e781005299bf532dd2..3d1ed0c2436ea71cae9544e51b35262277379958 100644 (file)
@@ -4,5 +4,5 @@
 Cycles (leaves and joins) the current channel or the specified 
 channel.
 
-See also: JOIN, LEAVE, PART
+See also: JOIN, PART
 
index 7c87d1f97c61fe2189b4c545f80dad4147d65371..d120291762d0e677db20cc3fbe5189caa8cf5c57 100644 (file)
@@ -1,6 +1,7 @@
 
 @SYNTAX:dehilight@
 
-Remove given highlight. If parameter is a number, deletes the specified hilight entry from the list.
+Removes the specified item from highlight list.
+
+See also: HILIGHT
 
-See also: HILIGHT, SET HILIGHT
index d88af57fb1e705172a9c91feb7f939d30068fda6..7b0928684b96df5514746c3691337d2a26953534 100644 (file)
@@ -11,7 +11,8 @@
      -window: Move the output of specified process to active window
      -close: Forcibly close (or "forget") a process that doesn't die.
              This only removes all information from irssi concerning the
-            process, it doesn't send SIGKILL or anything the process.
+             process, it doesn't send SIGKILL or any other signal
+             to the process.
      -<signal>: Send a signal to process. <signal> can be either numeric
                 or one of the few most common ones (hup, term, kill, ...)
 
@@ -27,7 +28,7 @@ Processes can be accessed either by their ID or name if you named it.
 Process identifier must always begin with '%%' character, like %%0 or
 %%name.
 
-Once the process is started, it's output can still be redirected
+Once the process is started, its output can still be redirected
 elsewhere with the -window, -msg, etc. options. You can send text to
 standard input of the process with -in option.
 
@@ -36,5 +37,5 @@ kill the process. It is meant to remove the processes that don't die
 even with SIGKILL. This option just closes the pipes used to
 communicate with the process and frees all memory it used.
 
-See also: CAT, CD
+EXEC without any arguments displays the list of started processes.
 
index 58d1d118d248b7d7f3c33be7ce35a8818bd8ca0a..898429331d614f7677b6a170beb2d8d51bbf2854 100644 (file)
    -actcolor: Color to show in statusbar activity, or don't change if %%n.
    -level: Match only for <level> messages, default is
            publics,msgs,notices,actions
-   -channels: Match only in <channels>
+   -channels: Match only in <channels> (comma separated list)
+   -priority: Priority to use when multiple hilights match. Default is 0.
 
 Examples:
 
 Hilight lines that have "mynick" word:
   /HILIGHT mynick
 
+Hilight all messages from "mynick":
+  /HILIGHT -mask mynick!*@*
+
 Hilight lines that were written by nicks from *.fi with bold green
   /HILIGHT -color %%G -mask *!*@*.fi
 
index c5b5c342e1c3ab271b0e93a03dd7d63914db2c1c..26c269a458e69b3f5e4a335b77b3170ee391ef8b 100644 (file)
@@ -4,15 +4,18 @@
     -regexp: <pattern> is a regular expression
     -full: <pattern> must match to full words
     -pattern: <pattern> must match to the message's text
+    -except: *DON'T* ignore - overrides an existing ignore.
     -replies: Ignore replies to nick in channels. For example
               "/IGNORE -replies *!*@*.fi PUBLIC" ignores everyone
               from Finland, but also anyone sending message
               "tofinnishnick: blahblah".
-    -except: *DON'T* ignore - overrides an existing ignore.
-    -channels: Ignore only in channels
+    -network: Ignore only on this network.
+    -ircnet: Same as -network. Deprecated. Do not use.
+    -channels: Ignore only in channels (comma separated list)
+    -time: <secs> seconds after the ignore is removed
     <mask>: Either a nick mask or list of channels
     <levels>: List of levels to ignore. You can use -<level> to remove levels
-              from ignore.
+              from ignore (/help levels for details).
     <^levels>: List of levels to NOT ignore
                (/ignore -except nick notices = /ignore nick ^notices)
 
@@ -26,6 +29,7 @@ The best match always wins, so you can have:
 
 Examples:
 
+    /IGNORE * JOINS                         - ignore joins in all channels
     /IGNORE #channel ALL -PUBLIC -ACTIONS   - ignore all but public/actions
     /IGNORE #channel -JOINS                 - don't ignore joins anymore
     /IGNORE -replies *!user@*.host.org ALL  - ignore user and all replies
@@ -38,5 +42,5 @@ Some suggestions for ignoring annoying public aways:
 
 For regular expressions, see `man 7 regex`.
 
-See also: UNIGNORE
+See also: UNIGNORE, SILENCE, ACCEPT
 
index ed6bc0608978afb0d0e160ea26bd7704ef9805c5..d544754b32ed478efe3e0058eb4a9db722386818 100644 (file)
@@ -2,7 +2,7 @@
 @SYNTAX:invitelist@
 
 Shows the +I modes of the current channel. +I mode
-allows free joins of clients with certain userhost mask
+allows free joins of clients with certain userhost masks
 even if the channel is invite only.
 
 See also: INVITE, MODE
index 732a47124edc44064fef4fb6b9069be8b044c607..b7cadf8a77fca573fa921e330ba46e04dea41faf 100644 (file)
     -new: show only lines since last /LASTLOG
     -regexp: `text' is a regular expression
     -word: `text' must match to full words
-    -level: what levels to check, like -public -msgs (default is all)
+    -<level>: levels to check (default is all; /help levels for details)
     <pattern>: text to search for, or all if empty
     <count>: maximum number of lines to show
     <start>: skip the last `start' lines
 
 Shows the given number of lines of log from the current window.
 
-See also: LOG, SET LOG, WINDOW LOG
+See also:
 
index 0d6d26f9caae275a94df073b3da395d66ae70a84..d5e814382ef6924010df707ce933ddf5a500f8f0 100644 (file)
@@ -2,14 +2,12 @@
 @SYNTAX:layout@
 
 Saves the current window layout to configuration (yes, you'll still
-need to use /SAVE to save the configuration to file). Next time you
-run irssi, all the channels and queries are exactly in the same
-windows where they were when you called /LAYOUT SAVE.
+need to use /SAVE to save the configuration to file). Next time you run
+irssi, all the channels and queries are exactly in the same windows
+where they were when you called /LAYOUT SAVE.
 
 Channels aren't actually joined in those windows immediately, they're
-just marked "next time you join to 'channel' in server that has tag
-'silcnet' place it to this window".
+just marked "next time you join to '#channel' in server that has tag
+'ircnet' place it to this window".
 
 /LAYOUT RESET removes the saved layout.
-
-See also: SAVE
index c10d6e7595060f1433ce9568d4404cc4ad1fd37c..c18de681ad91f0712e6cc6057f8e46bef228dc39 100644 (file)
@@ -1,7 +1,8 @@
 
 @SYNTAX:part@
 
-Parts from the current or specified channel. Depending on your settings it closes the corresponding window also.
+Parts from the current or specified channel. Depending
+on your settings, closes the corresponding window, too.
 
 See also: JOIN
 
index 2631e68aec52cb0f281bef12fedea99e66c1c810..d06b7701ea4fa9d4e29c5bf201d38a7cad973229 100644 (file)
@@ -1,9 +1,14 @@
 
 @SYNTAX:query@
 
-Starts a private conversation with given person.
+Starts a private conversation with the nick.  All text you
+type that would normally be sent to your channel now goes to
+the specified nick in the form of MSGs. 
 
-The query session is ended by giving command UNQUERY
+Usually this command opens up a new window, too.
 
-See also: UNQUERY, WINDOW, MSG, SET QUERY
+Note: It removes the active query from the active window when
+used without parameters, like UNQUERY.
+
+See also: WINDOW, MSG, SET QUERY, UNQUERY
 
index e7b2a5b63314629be1cfc19adca652331f072827..f9e6f6e22dfaf95ee735e5398648c1189e25343e 100644 (file)
@@ -1,7 +1,7 @@
 
 @SYNTAX:reload@
 
-Reloads the irssi's configuration file.
+Reloads irssi's configuration file.
 
 See also: SAVE
 
index 664d8668cb085e7d62e9e7aac79ec23a2b7bcc89..8ab25f2916e58866f8215be8e58fe3b28d2c9c62 100644 (file)
@@ -1,6 +1,10 @@
 
 @SYNTAX:save@
 
-Saves the current configuration.
+     -formats: Save all /FORMATs into theme file
+
+Saves the current Irssi configuration into the configuration
+file.
+
+See also: RELOAD
 
-See also: RELOAD, LAYOUT
index fc2f6410b6be1025d4b3ea4b7049380da616e157..0354512bde4c2577519eb6428a5c7a8ea91d2fd7 100644 (file)
@@ -15,5 +15,5 @@ Without any parameters, /SCRIPT acts in same way as if you would call /SCRIPT LI
 
 /SCRIPT RESET unloads all loaded scripts and resets the perl interpreter.
 
-See also: LOAD, UNLOAD, RUN
+See also: LOAD, UNLOAD
 
index 7da9b820498d3c0c3a5d3df4f4019d194b50eeaf..4124cf6fbce6b03120e11d8a3f40d2a1087f91a4 100644 (file)
@@ -3,10 +3,18 @@
 
 /SCROLLBACK, or the default alias /SB:
 
-/SB CLEAR - Clear screen, free all memory used by texts in window.
-/SB HOME - Jump to start of the buffer
-/SB END - Jump to end of the buffer
-/SB GOTO [[-|+]line#|time] - Jump to specified line or timestamp.
+/SB LEVELCLEAR
+   - Remove lines with level matching one of those
+     specified in the comma-separated list <level>.
+/SB CLEAR
+   - Clear screen, free all memory used by texts in window.
+/SB HOME
+   - Jump to start of the buffer.
+/SB END
+   - Jump to end of the buffer.
+/SB GOTO [[-|+]line#|time]
+   - Jump to specified line or timestamp.
+     time format is [dd[.mm] | -<days ago>] hh:mi[:ss].
 
 See also: SET SCROLL
 
index 5b47bc865ae63ec9bc83edf6c3fffbe50e633a50..e7b35349b41a48b9f0220b3ad2b81457efbdae49 100644 (file)
@@ -1,4 +1,10 @@
 
 @SYNTAX:statusbar@
 
-Commands for modifying statusbar.
+Commands for modifying the statusbar.
+
+/STATUSBAR
+   - Display all statusbars.
+
+/STATUSBAR <name>
+   - display elements of statusbar <name>
index 6b5c555991acf520485a2c9cc5392605db46eaec..784be9a25ade2052d1f065e022e04719b7ffb029 100644 (file)
@@ -1,7 +1,8 @@
 
 @SYNTAX:unignore@
 
-Unignores the specified userhost mask.
+Unignores the specified userhost mask. If you want to unignore only some
+levels, use /IGNORE <mask> -<level>.
 
 See also: IGNORE
 
index 2e1c4678aca7ebe627c1b3bf8fcc46545151900a..4bfdeb95edf571c23b25882294835313785481ac 100644 (file)
@@ -1,8 +1,8 @@
 
 @SYNTAX:unload@
 
-Unload a running plugin. List of running plugins can
-be shown with /LOAD.
+Unload a running plugin. List of running plugins can be shown with
+/LOAD.
 
 See also: LOAD
 
index 7af71dc4b68a69a3aa4d99e02c28f750ac526f46..cd7acae202fbb664ea8ae0fc5c51bbad1d5ac3b0 100644 (file)
@@ -6,7 +6,7 @@ irssi windows.
 
 /WINDOW CLOSE
    - Closes the current window.
-/WINDOW MOVE #NUMBER|PREV|NEXT
+/WINDOW MOVE #NUMBER|LEFT|RIGHT
    - Moves current window to another position in the
      window list.
 /WINDOW GOTO #NUMBER
@@ -23,6 +23,12 @@ irssi windows.
    - /window level all -msgs - creates status window
 /WINDOW NEW [HIDDEN|SPLIT] 
    - creates new hidden/splitted window, 
+/WINDOW ITEM MOVE <number>|<name>
+   - with a numeric argument, moves the active window
+     item of the active window to the window with
+     refnum <number>.
+     with a string argument, moves the window item with
+     name <name> to the active window.
 
 Window logging
         
@@ -32,9 +38,9 @@ Window logging
 /WINDOW LOGFILE <filename> 
    - Sets the default log file to use in the window, it can be
      overridden by specifying the file name in /WINDOW LOG. 
-     If no file name isn't given, Irssi defaults to 
+     If no file name is given, Irssi defaults to 
      ~/irc.log.<windowname> or ~/irc.log.Window<ref#> if window 
      doesn't have a name.
 
-See also: SET CREATE, JOIN, QUERY, LOG
+See also: SET CREATE, JOIN, QUERY, LOG, LEVELS
 
index d66930fc1f3e3df6208b97325090500ddedc4e51..43d7755062e3226859961c85ee606a68bc7106ec 100644 (file)
@@ -1,5 +1,5 @@
 
- Irssi 0.8 documentation - http://irssi.org/
+ Irssi 0.8 documentation - http://www.irssi.org/
 
  Copyright(c) 2000 Timo Sirainen <cras@irssi.org>
 
@@ -7,7 +7,7 @@
  Index
 
        0. Generic babbling
-       1. Installation
+       1. Command line parameters
        2. Message levels
        3. Flood protection
        4. Configuration
        11. Logging
 
        ( not written yet: )
-       12. Aliases
+       12. Commands
        13. Themes
        14. Last log (currently text version only)
        15. Nick and word completion
-       16. Translation tables
+       16. Recode
        17. Windowing system (text version)
        18. Keyboard (text version)
        19. Perl scripting
        these features down somewhere so people (and me!) would find them.
 
 
- 1. Installation
-
- 1.1 Configuration
-
-       configure script accepts these parameters:
-
-       --enable-ipv6      Enable IPv6 support
-       --disable-curses-windows  Don't use curses windows. Use this if
-                          screen drawing seems too slow for some reason.
-                          This option may not work properly with all
-                          curseses (solaris8).
-       --enable-memdebug  Enable memory debugging, great for finding
-                          memory leaks
-
-       --with-perl=static Build Perl support statically to irssi binary
-                          (default is to build a module)
-       --with-perl-lib=[site|vendor|DIR]  Specify installation dir for
-                          Perl libraries. Site is the default (usually
-                          /usr/local/lib/perl/...), vendor uses the path
-                          where the base of the perl is installed
-                          (/usr/lib/perl/...), or DIR specifies exactly
-                          where you want to install it.
-       --without-perl     Disable Perl support
-
-       --with-socks       Build with socks library
-       --with-bot         Build irssi-bot
-       --with-proxy       Build irssi-proxy module
-       --without-textui   Build without text frontend
-       --with-servertest  Build test irc server which you can use to try
-                          crash irc clients
-
-       In short:
-
-       ./configure
-       make
-       make install
-
-
- 1.2 Command line parameters
+ 1. Command line parameters
 
        --connect -c <server>   Connect to server at startup
        --port -p <port>         - specify port
        2.2 seconds by default for each message (helps with some servers).
        You can change it with /SET cmd_queue_speed <milliseconds>. You can
        also change the number of commands before flood protection activates
-       (ie. the burst count) with /SET cmd_max_at_once <count>.
+       (ie. the burst count) with /SET cmds_max_at_once <count>.
 
        IRC servers also have an input buffer where the client's commands
        are saved before processed. It's size is server specific (can be as
            -modes: Maximum number of mode changes in one /MODE command
            -whois: Maximum number of nicks in one /WHOIS command
            -cmdspeed: Same as /SET cmd_queue_speed, see section 3.1
-           -cmdmax: Same as /SET cmd_max_at_once, see section 3.1
+           -cmdmax: Same as /SET cmds_max_at_once, see section 3.1
            -nick, -user, -realname: Specify what nick/user/name to use
            -host: Specify what host name to use, if you have multiple
            -autosendcmd: Command to send after connecting to a server
            -ircnet: Same as -network. Deprecated. Do not use.
            -host: Specify what host name to use, if you have multiple
            -cmdspeed: Same as /SET cmd_queue_speed, see section 3.1
-           -cmdmax: Same as /SET cmd_max_at_once, see section 3.1
+           -cmdmax: Same as /SET cmds_max_at_once, see section 3.1
            -port: This is pretty much like the port argument later, except
                   this can be used to modify existing server's port.
 
        After connected to server, Irssi can automatically change your user
        mode. You can set it with /SET usermode <mode>, default is +i.
 
+       /SET resolve_prefer_ipv6 - If ON, prefer IPv6 for hosts that
+            have both v4 and v6 addresses.
+
  5.5 Automatic reconnecting
 
        If you get disconnected from server, Irssi will try to reconnect
        with /RECONNECT <n>. /RECONNECT without any arguments will
        disconnect from the active server and reconnect back immediately.
 
- 5.6 Command redirections
+ 5.6 Server redirections
 
-       FIXME
+       Getting replies matched to IRC commands can be quite complicated.
+       Server redirection allow this in a relatively easy way. They are
+       used internally and are available to scripts; see Server redirections
+       in perl.txt for details.
 
  5.7 Server idle command queue
 
 
  5.9 Lag checking
 
-       Irssi will constantly check how big the lag to the server is. It's
-       done by sending IRSSILAG CTCP replies to ourself. Using PING command
-       for this would seem more reasonable, but there was too many problems
-       with it - some servers didn't even know the whole PING command!
+       Irssi will constantly check how big the lag to the server is. It is
+       done by sending PING commands. Lag checking is disabled for broken
+       servers that do not support PING.
 
        If the lag is too big, Irssi will reconnect to different IRC server.
        This is sometimes useful if the connection has been stuck for 30
        minutes but it still hasn't been closed.
 
-       /SET lag_check_time <seconds> - Specifies how often to check the
-            lag. If it is set to 0, the lag detection is disabled. Default
-            is 30 seconds.
-       /SET lag_max_before_disconnect <seconds> - Specifies how big the lag
+       /SET lag_check_time <time> - Specifies how often to check the lag.
+            If it is set to 0, the lag detection is disabled. Default
+            is 1 minute.
+       /SET lag_max_before_disconnect <time> - Specifies how big the lag
             can be before reconnecting to another server. Default is 5
             minutes.
-       /SET lag_min_show <100th seconds> - Specifies the minimum lag to
-            display in status bar. Default is 1 second.
+       /SET lag_min_show <time> - Specifies the minimum lag to display
+            in status bar. Default is 1 second.
 
  5.10 Raw log
 
        channel mode character (#+&!) before the channel name, Irssi
        automatically uses # channels.
 
-       Channel name may contain any characters except SPACE, BELL, NUL,
-       CR, LF or comma (','). You can also restrict the channel to only
-       certain users by adding the hostmask to the end of the channel
-       name separated with a ':' character, like #channel:*!*@*.fi lets
-       only people from .fi domain join the channel. This doesn't work with
-       all IRC servers and it's pretty difficult to use, since everyone
-       will have to always join the #channel:*!*@*.fi channel, #channel or
-       #channel:*!*@*.se channels are different channels. Ban exceptions
-       (+e) and especially invite lists (+I) replace this functionality
-       pretty well, see section 6.5.
+       Channel names may contain any characters except SPACE, BELL, NUL,
+       CR, LF or comma (','). On IRCnet and a few other networks, you can
+       also restrict the channel to only certain servers by adding the
+       mask to the end of the channel name separated with a ':'
+       character, for example #channel:*.fi lets only people on .fi
+       servers join the channel. Other servers will not even know about
+       the channel. This is pretty difficult to use, since everyone will
+       have to always join #channel:*.fi; #channel and #channel:*.fi are
+       different channels. Ban exceptions (+e) and especially invite
+       lists (+I) replace this functionality pretty well, see section 6.5.
 
        If channel has a password (aka. key), you can join it with
        /JOIN #channel pass, or multiple channels with passwords with
        - Channel mode
        - WHO list to get nicks' hosts - useful for /BAN for example
        - Ban list - useful for allowing /UNBAN to use wildcards
-       - Exception list, Invite list - these are asked only from servers
-         that support +I and +e modes, mostly just IRCNet and some EFNet
-         servers. These aren't really needed for anything currenty, except
-         /INVITELIST and /BANS uses them to display the lists.
 
        If you have joined many channels at once, Irssi tries to optimize
        the commands it sends to server. Instead of sending two commands
        to ask two channels' mode, it just sends MODE #a,#b. Same thing with
-       WHO list and ban/except/invite lists. Some servers do not support
-       this and they reply with different kinds of error messages, Irssi
-       tries to deal with them all right and resend the commands again
-       separately. However, some strange servers sometimes use some weird
-       error replies that Irssi doesn't know about, and the channel never
-       gets synchronized. If this happens with some server you know, please
+       WHO list and ban lists. Some servers do not support this and they
+       reply with different kinds of error messages, Irssi tries to deal
+       with them all right and resend the commands again separately.
+       However, some strange servers sometimes use some weird error replies
+       that Irssi doesn't know about, and the channel never gets
+       synchronized. If this happens with some server you know, please
        let the Irssi's author know about it.
 
  6.5 Channel modes
 
-       Irssi knows these channel modes:
+       Common channel modes are:
 
        i - Invite only - People can't join to channel without being
            /INVITEd, or being in invite list (+I, see below).
                    flooding, like some bot allows max. 5 users to join in
                    one minute or so.
 
-       a - Anonymous - No-one's nick name, host or anything else can be
-           seen. All messages, joins, parts, modes, etc. are seen as coming
-           from nick "anonymous", this could be pretty confusing but nice
-           feature if you want total anonymity. This mode can only be set,
-           never unset. This mode isn't supported by all servers.
-
-           NOTE: there is/was one bug :) Channel operators can guess if some
-           nick might be in the channel and try to kick it. If nick was in
-           channel, everyone will see the nick that was kicked.
-
-       r - Re-op - If channel becomes opless for longer than 45 (?) minutes,
-           op everyone in the channel. This works only in !channels. This
-           mode can only be set, not unset by channel creator.
-
        b - Set/remove ban. For example MODE #channel +b *!*@*.org bans
            everyone from .org domain.
 
            If someone from .org domain was already in channel before the
-           ban was set, he/she couldn't be able to write any messages to
-           channel (doesn't work with all servers).
+           ban was set, he/she cannot send any messages to channel (doesn't
+           work with all servers).
 
-           Ban can also be overridden with /INVITE, although many stupid
+           Bans can also be overridden with /INVITE, although many stupid
            IRC clients automatically kick the user out because they see
            the ban and think that because of it the user shouldn't be in
            the channel (doesn't work with all servers).
 
        e - Ban exceptions. You could for example ban everyone from
-           *!*@*.org but set ban exception to *!*@*.host.org - works only
-           in IRCnet/EFnet servers.
+           *!*@*.org but set ban exception to *!*@*.host.org - does not work
+           with all servers.
 
        I - Invite list. If channel is invite only (+i), people in this
-           list can join it without being /INVITEd - works only in
-           IRCnet/EFnet servers.
+           list can join it without being /INVITEd - does not work with all
+           servers.
 
            This is excellent for in-country channels that don't want
            foreigners (spammers!) to join the channel, for example setting
            in the channels and sending /MSG bot invite command to it
            /INVITEs you to the channel.
 
-           The ':' feature in channel modes is quite similiar, see section
-           6.2.
-
-       O - Channel owner, the nick who creates a !channel receives this
-           mode. It isn't displayed anywhere, you can't pass it to anyone
-           else and you can't regain it again. This is needed for setting
-           +r mode in channel when it's first created.
+           On IRCnet, the ':' feature in channel names can also be used for
+           a similar effect, see section 6.2.
 
        o <nick> - Grant or revoke channel operator status from nick
        v <nick> - Grant or revoke voice status from nick, only people with
        command to op 6 people and Irssi will split it to two commands in
        IRCnet/EFnet.
 
+       Many networks have additional modes and/or change the meaning of existing
+       modes. Check the documentation for the network or the server software in
+       use for details.
+
        Instead of manually setting o, v and b modes you probably want to
        use /OP, /DEOP, /VOICE, /DEVOICE, /BAN and /UNBAN commands.
 
        you can simply unban it with /UNBAN *really*
 
        Using /BAN <nicks>, Irssi will automatically create the mask. You
-       can change the way it's created with /BANTYPE command:
+       can change the way it's created with the ban_type setting:
 
-       /BANTYPE normal|host|domain|custom
+       /SET ban_type normal|host|domain|custom
 
        Normal - *!user@*.domain.net
        Host   - *!*@host.domain.net
        Domain - *!*@*.domain.net
        Custom [nick] [user] [host] [domain]
-              eg. /bantype custom nick domain - nick!*@*.domain.net
-              eg. /bantype custom user host - *!user@host.domain.net
+              eg. /SET ban_type custom nick domain - nick!*@*.domain.net
+              eg. /SET ban_type custom user host - *!user@host.domain.net
 
        Irssi has also a couple of commands to help banning people:
 
        are in IRC all the time. So I made a bit more featureful notify
        list:
 
-       /NOTIFY [-list] [-away] [-idle [minutes]] <mask> [network [network...]]
+       /NOTIFY [-list] [-away] <mask> [network [network...]]
 
            -away: Notifies about away-status changes
-           -idle: Notifies if idle time is first larger than <minutes>
-                  (default is hour) and then it drops down.
             -list: Lists the notify list entries with all their settings
            <mask>: Either a simple "nick" or "nick!*@*blah.org". The nick
                    can't contain wildcards, but the user/host can.
@@ -1031,6 +977,44 @@ If <color> is a
 
        You can disable this feature by setting awaylog_level to NONE.
 
+ 12. Commands
+
+       Any char in the `cmdchars' setting can begin a command. The
+       syntax for a command is the following:
+
+       <CMDCHAR>[<CMDCHAR>][^]<DATA>
+
+       If <CMDCHAR> is repeated two times, alias expansion is
+       disabled, enabled otherwise. If `^' is present, command output
+       is disabled. If <DATA> begins with a space, command lookup is
+       inhibited and the data is sent to the active window item
+       (useful to send a line that begins with <CMDCHAR>).
+
+ 16. Recode
+
+       irssi supports selective encoding of incoming/outgoing messages
+       through the recode system. All incoming/outgoing messages can be
+       optionally converted to/from the charset specified by the
+       `term_charset' variable (which defaults to the locale encoding and
+       should _not_ be changed in most cases), by setting the `recode'
+       variable to 'ON'.
+       Since there is no way in IRC to know the encoding associated to a
+       message, for incoming messages irssi uses the following algorithm:
+
+       if `recode_autodetect_utf8' is 'ON' and the message is valid UTF-8 the
+       encoding is assumed to be UTF-8.
+       if an encoding is set for the target (through /recode) use it,
+       otherwise fallback to the value of `recode_fallback'.
+
+       For outgoing messages it is simpler:
+
+       if an encoding is set for the target (through /recode) use it,
+       otherwise fallback to the value of `recode_out_default_charset'.
+
+       /SET recode_transliterate - Append '//TRANSLIT' to the destination
+       encoding for both incoming/outgoing messages. '//TRANSLIT' is a GNU
+       iconv specific extension to peform transliteration (locale dependent)
+       when a character is not representable in the destination encoding.
 
 .. no, the docs end here, I got bored of writing these after a few days and 
 haven't touched these since then.
index 611af9fb0bee54283b881681db82a8105a63e276..732b73afae0254b524a507cd4244c29a477187be 100644 (file)
@@ -16,7 +16,7 @@ scripts.
 Scripts should be placed to ~/.irssi/scripts/ or
 /usr/local/lib/irssi/scripts/ (or depending on where irssi was
 installed) directories. After that /RUN script_name should work, you
-don't need to add the .pl prefix.
+don't need to add the .pl suffix.
 
 
  Irssi's signals
@@ -265,6 +265,9 @@ settings_remove(key)
 signal_emit(signal, ...)
   Send signal `signal'. You can give 6 parameters at maximum.
 
+signal_continue(...)
+  Continue currently emitted signal with different parameters.
+
 signal_add(signal, func)
   Bind `signal' to function `func'.
 
@@ -283,15 +286,27 @@ signal_stop()
 signal_stop_by_name(signal)
   Stop the signal with name `signal' that's currently being emitted.
 
+signal_register(hash)
+  Register parameter types for one or more signals.
+  `hash' must map one or more signal names to references to arrays
+  containing 0 to 6 type names. Some recognized type names include
+  int for integers, intptr for references to integers and string for
+  strings. For all standard signals see src/perl/perl-signals-list.h
+  in the source code (this is generated by src/perl/get-signals.pl).
+
+  Any signals that were already registered are unaffected.
+
+  Registration is required to get any parameters to signals written in
+  Perl and to emit and continue signals from Perl.
 
-  *** timeouts / IO listener
+  *** timeouts / IO listener / pidwait
 
 timeout_add(msecs, func, data)
   Call `func' every `msecs' milliseconds (1000 = 1 second) with
   parameter `data'. Returns tag which can be used to stop the timeout.
 
 timeout_add_once(msecs, func, data);
-  Call 'func' once after `msecs' milliseconds (1000 = 1 second)
+  Call `func' once after `msecs' milliseconds (1000 = 1 second)
   with parameter `data'. Returns tag which can be used to stop the timeout.
 
 timeout_remove(tag)
@@ -306,6 +321,16 @@ input_add(source, condition, func, data)
 input_remove(tag)
   Remove listener with tag.
 
+pidwait_add(pid)
+  Adds `pid' to the list of processes to wait for. The pid must identify
+  a child process of the irssi process. When the process terminates, a
+  "pidwait" signal will be sent with the pid and the status from
+  waitpid(). This is useful to avoid zombies if your script forks.
+
+pidwait_remove(pid)
+  Removes `pid' from the list of processes to wait for. Terminated
+  processes are removed automatically, so it is usually not necessary
+  to call this function.
 
  *** Message levels
 
@@ -330,7 +355,7 @@ command_bind(cmd, func[, category])
   Bind command `cmd' to call function `func'. `category' is the
   category where the command is displayed in /HELP.
 
-command_runsub(cms, data, server, item)
+command_runsub(cmd, data, server, item)
   Run subcommands for `cmd'. First word in `data' is parsed as
   subcommand. `server' is Irssi::Server rec for current
   Irssi::Windowitem `item'.
@@ -339,7 +364,21 @@ command_runsub(cms, data, server, item)
   with command_bind("`cmd' `subcmd'", subcmdfunc[, category]);
 
 command_unbind(cmd, func)
-  Unbind command `cmd' from function 'func.
+  Unbind command `cmd' from function `func'.
+
+command_set_options(cmd, data)
+  Set options for command `cmd' to `data'. `data' is a string of
+  space separated words which specify the options. Each word can be
+  optionally prefixed with one of the following character:
+
+  '-': optional argument
+  '+': argument required
+  '@': optional numeric argument
+
+command_parse_options(cmd, data)
+  Parse options for command `cmd' in `data'. It returns a reference to
+  an hash table with the options and a string with the remaining part
+  of `data'. On error it returns the undefined value.
 
 
  *** Windows
@@ -909,6 +948,22 @@ Server::ignore_check(nick, host, channel, text, level)
   Return 1 if ignoring matched.
 
 
+ *** /EXEC processes
+
+Process->{}
+  id - ID for the process
+  name - Name for the process (if given)
+  args - The command that is being executed
+
+  pid - PID for the executed command
+  target - send text with /msg <target> ...
+  target_win - print text to this window
+
+  shell - start the program via /bin/sh
+  notice - send text with /notice, not /msg if target is set
+  silent - don't print "process exited with level xx"
+
+
  ***
  *** IRC specific functions. All objects below this are prefixed with Irc::
  ***
@@ -960,7 +1015,7 @@ Server::isupport(name)
   script. If the item is not present returns undef, if the item has no value
   then "" is returned use defined $server->isupport("name") if you need to
   check whether a property is present.
-  See http://www.ietf.org/internet-drafts/draft-brocklesby-irc-isupport-01.txt
+  See http://tools.ietf.org/id/draft-brocklesby-irc-isupport-03.txt
   for more information on the ISUPPORT numeric.
 
  *** IRC channels
@@ -1118,18 +1173,15 @@ Server::notifylist_ison_server(nick)
 Notifylist::ircnets_match(ircnet)
   Returns 1 if notify is checked in `ircnet'.
 
-
- *** /EXEC processes
-
-Process->{}
-  id - ID for the process
-  name - Name for the process (if given)
-  args - The command that is being executed
-
-  pid - PID for the executed command
-  target - send text with /msg <target> ...
-  target_win - print text to this window
-
-  shell - start the program via /bin/sh
-  notice - send text with /notice, not /msg if target is set
-  silent - don't print "process exited with level xx"
+ *** Proxy clients
+
+Client->{}
+  nick - nick of the client
+  host - host of the client
+  proxy_address - address of the proxy server
+  server - Irc::Server for which we proxy to this client
+  pass_sent - whether the client already send a PASS command
+  user_sent - whether the client already send a USER command
+  connected - whether the client is connected and ready
+  want_ctcp - whether the client wants to receive CTCPs
+  ircnet - network tag of the network we proxy
index 893d666146f0e9117bdb245e6b98ae4513407952..fd9ccc11bcbde75cc8e803506cbc7a8ef7af8359 100644 (file)
@@ -55,6 +55,11 @@ modules.c:
  "module unloaded", MODULE_REC, MODULE_FILE_REC
  "module error", int error, char *text, char *rootmodule, char *submodule
 
+network-openssl.c:
+ "tlsa available", SERVER_REC
+ "tlsa verification success", SERVER_REC
+ "tlsa verification failed", SERVER_REC
+
 nicklist.c:
  "nicklist new", CHANNEL_REC, NICK_REC
  "nicklist remove", CHANNEL_REC, NICK_REC
@@ -211,13 +216,14 @@ notifylist.c:
  "notifylist remove", NOTIFYLIST_REC
  "notifylist joined", SERVER_REC, char *nick, char *user, char *host, char *realname, char *awaymsg
  "notifylist away changed", SERVER_REC, char *nick, char *user, char *host, char *realname, char *awaymsg
- "notifylist unidle", SERVER_REC, char *nick, char *user, char *host, char *realname, char *awaymsg
  "notifylist left", SERVER_REC, char *nick, char *user, char *host, char *realname, char *awaymsg
 
 proxy/listen.c:
 
  "proxy client connected", CLIENT_REC
  "proxy client disconnected", CLIENT_REC
+ "proxy client command", CLIENT_REC, char *args, char *data
+ "proxy client dump", CLIENT_REC, char *data
 
 FE common
 ---------
@@ -269,13 +275,15 @@ themes.c:
 
 window-activity.c:
  "window hilight", WINDOW_REC
+ "window dehilight", WINDOW_REC
  "window activity", WINDOW_REC, int old_level
  "window item hilight", WI_ITEM_REC
- "window item activity", WI_ITEM_REC, int old_lvel
+ "window item activity", WI_ITEM_REC, int old_level
 
 window-items.c:
  "window item new", WINDOW_REC, WI_ITEM_REC
  "window item remove", WINDOW_REC, WI_ITEM_REC
+ "window item moved", WINDOW_REC, WI_ITEM_REC, WINDOW_REC
  "window item changed", WINDOW_REC, WI_ITEM_REC
  "window item server changed", WINDOW_REC, WI_ITEM_REC
 
@@ -293,6 +301,9 @@ windows.c:
 FE IRC
 ------
 
+fe-events.c:
+ "default event numeric", SERVER_REC, char *data, char *nick, char *address
+
 fe-irc-messages.c:
  "message irc op_public", SERVER_REC, char *msg, char *nick, char *address, char *target
  "message irc own_wall", SERVER_REC, char *msg, char *target
index 892ff485d598d26cebf0c0cf2a187467601943f2..736f25e918d76391d1f73ffc98935d868d0113e1 100644 (file)
@@ -111,7 +111,7 @@ management (send me a note if you can think of more):</p>
 joining channels)</p>
 
 <pre>
-/NETWORK ADD -autosendcmd "/^msg nickserv ident pass;wait 2000" OFTC
+/NETWORK ADD -autosendcmd "/^msg nickserv identify pass;wait 2000" OFTC
 </pre>
 
 <p>(NOTE: use /IRCNET with 0.8.9 and older)</p>
@@ -275,7 +275,7 @@ you're connected to some network, use <code>-autosendcmd</code> option.
 
 <pre>
 /NETWORK ADD -autosendcmd '^msg bot invite' IRCnet
-/NETWORK ADD -autosendcmd "/^msg nickserv ident pass;wait 2000" OFTC
+/NETWORK ADD -autosendcmd "/^msg nickserv identify pass;wait 2000" OFTC
 </pre>
 
 <p>After that you need to add your servers. For example:</p>
diff --git a/apps/irssi/glib-2.0.m4 b/apps/irssi/glib-2.0.m4
new file mode 100644 (file)
index 0000000..2a5afd0
--- /dev/null
@@ -0,0 +1,208 @@
+# Configure paths for GLIB
+# Owen Taylor     1997-2001
+
+dnl AM_PATH_GLIB_2_0([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND [, MODULES]]]])
+dnl Test for GLIB, and define GLIB_CFLAGS and GLIB_LIBS, if gmodule, gobject or 
+dnl gthread is specified in MODULES, pass to pkg-config
+dnl
+AC_DEFUN([AM_PATH_GLIB_2_0],
+[dnl 
+dnl Get the cflags and libraries from pkg-config
+dnl
+AC_ARG_ENABLE(glibtest, [  --disable-glibtest      do not try to compile and run a test GLIB program],
+                   , enable_glibtest=yes)
+
+  pkg_config_args=glib-2.0
+  for module in . $4
+  do
+      case "$module" in
+         gmodule) 
+             pkg_config_args="$pkg_config_args gmodule-2.0"
+         ;;
+         gmodule-no-export) 
+             pkg_config_args="$pkg_config_args gmodule-no-export-2.0"
+         ;;
+         gobject) 
+             pkg_config_args="$pkg_config_args gobject-2.0"
+         ;;
+         gthread) 
+             pkg_config_args="$pkg_config_args gthread-2.0"
+         ;;
+      esac
+  done
+
+  PKG_PROG_PKG_CONFIG([0.7])
+
+  no_glib=""
+
+  if test "x$PKG_CONFIG" = x ; then
+    no_glib=yes
+    PKG_CONFIG=no
+  fi
+
+  min_glib_version=ifelse([$1], ,2.0.0,$1)
+  AC_MSG_CHECKING(for GLIB - version >= $min_glib_version)
+
+  if test x$PKG_CONFIG != xno ; then
+    ## don't try to run the test against uninstalled libtool libs
+    if $PKG_CONFIG --uninstalled $pkg_config_args; then
+         echo "Will use uninstalled version of GLib found in PKG_CONFIG_PATH"
+         enable_glibtest=no
+    fi
+
+    if $PKG_CONFIG --atleast-version $min_glib_version $pkg_config_args; then
+         :
+    else
+         no_glib=yes
+    fi
+  fi
+
+  if test x"$no_glib" = x ; then
+    GLIB_GENMARSHAL=`$PKG_CONFIG --variable=glib_genmarshal glib-2.0`
+    GOBJECT_QUERY=`$PKG_CONFIG --variable=gobject_query glib-2.0`
+    GLIB_MKENUMS=`$PKG_CONFIG --variable=glib_mkenums glib-2.0`
+
+    GLIB_CFLAGS=`$PKG_CONFIG --cflags $pkg_config_args`
+    GLIB_LIBS=`$PKG_CONFIG --libs $pkg_config_args`
+    glib_config_major_version=`$PKG_CONFIG --modversion glib-2.0 | \
+           sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'`
+    glib_config_minor_version=`$PKG_CONFIG --modversion glib-2.0 | \
+           sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'`
+    glib_config_micro_version=`$PKG_CONFIG --modversion glib-2.0 | \
+           sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'`
+    if test "x$enable_glibtest" = "xyes" ; then
+      ac_save_CFLAGS="$CFLAGS"
+      ac_save_LIBS="$LIBS"
+      CFLAGS="$CFLAGS $GLIB_CFLAGS"
+      LIBS="$GLIB_LIBS $LIBS"
+dnl
+dnl Now check if the installed GLIB is sufficiently new. (Also sanity
+dnl checks the results of pkg-config to some extent)
+dnl
+      rm -f conf.glibtest
+      AC_TRY_RUN([
+#include <glib.h>
+#include <stdio.h>
+#include <stdlib.h>
+
+int 
+main ()
+{
+  int major, minor, micro;
+  char *tmp_version;
+
+  system ("touch conf.glibtest");
+
+  /* HP/UX 9 (%@#!) writes to sscanf strings */
+  tmp_version = g_strdup("$min_glib_version");
+  if (sscanf(tmp_version, "%d.%d.%d", &major, &minor, &micro) != 3) {
+     printf("%s, bad version string\n", "$min_glib_version");
+     exit(1);
+   }
+
+  if ((glib_major_version != $glib_config_major_version) ||
+      (glib_minor_version != $glib_config_minor_version) ||
+      (glib_micro_version != $glib_config_micro_version))
+    {
+      printf("\n*** 'pkg-config --modversion glib-2.0' returned %d.%d.%d, but GLIB (%d.%d.%d)\n", 
+             $glib_config_major_version, $glib_config_minor_version, $glib_config_micro_version,
+             glib_major_version, glib_minor_version, glib_micro_version);
+      printf ("*** was found! If pkg-config was correct, then it is best\n");
+      printf ("*** to remove the old version of GLib. You may also be able to fix the error\n");
+      printf("*** by modifying your LD_LIBRARY_PATH enviroment variable, or by editing\n");
+      printf("*** /etc/ld.so.conf. Make sure you have run ldconfig if that is\n");
+      printf("*** required on your system.\n");
+      printf("*** If pkg-config was wrong, set the environment variable PKG_CONFIG_PATH\n");
+      printf("*** to point to the correct configuration files\n");
+    } 
+  else if ((glib_major_version != GLIB_MAJOR_VERSION) ||
+          (glib_minor_version != GLIB_MINOR_VERSION) ||
+           (glib_micro_version != GLIB_MICRO_VERSION))
+    {
+      printf("*** GLIB header files (version %d.%d.%d) do not match\n",
+            GLIB_MAJOR_VERSION, GLIB_MINOR_VERSION, GLIB_MICRO_VERSION);
+      printf("*** library (version %d.%d.%d)\n",
+            glib_major_version, glib_minor_version, glib_micro_version);
+    }
+  else
+    {
+      if ((glib_major_version > major) ||
+        ((glib_major_version == major) && (glib_minor_version > minor)) ||
+        ((glib_major_version == major) && (glib_minor_version == minor) && (glib_micro_version >= micro)))
+      {
+        return 0;
+       }
+     else
+      {
+        printf("\n*** An old version of GLIB (%d.%d.%d) was found.\n",
+               glib_major_version, glib_minor_version, glib_micro_version);
+        printf("*** You need a version of GLIB newer than %d.%d.%d. The latest version of\n",
+              major, minor, micro);
+        printf("*** GLIB is always available from ftp://ftp.gtk.org.\n");
+        printf("***\n");
+        printf("*** If you have already installed a sufficiently new version, this error\n");
+        printf("*** probably means that the wrong copy of the pkg-config shell script is\n");
+        printf("*** being found. The easiest way to fix this is to remove the old version\n");
+        printf("*** of GLIB, but you can also set the PKG_CONFIG environment to point to the\n");
+        printf("*** correct copy of pkg-config. (In this case, you will have to\n");
+        printf("*** modify your LD_LIBRARY_PATH enviroment variable, or edit /etc/ld.so.conf\n");
+        printf("*** so that the correct libraries are found at run-time))\n");
+      }
+    }
+  return 1;
+}
+],, no_glib=yes,[echo $ac_n "cross compiling; assumed OK... $ac_c"])
+       CFLAGS="$ac_save_CFLAGS"
+       LIBS="$ac_save_LIBS"
+     fi
+  fi
+  if test "x$no_glib" = x ; then
+     AC_MSG_RESULT(yes (version $glib_config_major_version.$glib_config_minor_version.$glib_config_micro_version))
+     ifelse([$2], , :, [$2])     
+  else
+     AC_MSG_RESULT(no)
+     if test "$PKG_CONFIG" = "no" ; then
+       echo "*** A new enough version of pkg-config was not found."
+       echo "*** See http://www.freedesktop.org/software/pkgconfig/"
+     else
+       if test -f conf.glibtest ; then
+        :
+       else
+          echo "*** Could not run GLIB test program, checking why..."
+          ac_save_CFLAGS="$CFLAGS"
+          ac_save_LIBS="$LIBS"
+          CFLAGS="$CFLAGS $GLIB_CFLAGS"
+          LIBS="$LIBS $GLIB_LIBS"
+          AC_TRY_LINK([
+#include <glib.h>
+#include <stdio.h>
+],      [ return ((glib_major_version) || (glib_minor_version) || (glib_micro_version)); ],
+        [ echo "*** The test program compiled, but did not run. This usually means"
+          echo "*** that the run-time linker is not finding GLIB or finding the wrong"
+          echo "*** version of GLIB. If it is not finding GLIB, you'll need to set your"
+          echo "*** LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf to point"
+          echo "*** to the installed location  Also, make sure you have run ldconfig if that"
+          echo "*** is required on your system"
+         echo "***"
+          echo "*** If you have an old version installed, it is best to remove it, although"
+          echo "*** you may also be able to get things to work by modifying LD_LIBRARY_PATH" ],
+        [ echo "*** The test program failed to compile or link. See the file config.log for the"
+          echo "*** exact error that occured. This usually means GLIB is incorrectly installed."])
+          CFLAGS="$ac_save_CFLAGS"
+          LIBS="$ac_save_LIBS"
+       fi
+     fi
+     GLIB_CFLAGS=""
+     GLIB_LIBS=""
+     GLIB_GENMARSHAL=""
+     GOBJECT_QUERY=""
+     GLIB_MKENUMS=""
+     ifelse([$3], , :, [$3])
+  fi
+  AC_SUBST(GLIB_CFLAGS)
+  AC_SUBST(GLIB_LIBS)
+  AC_SUBST(GLIB_GENMARSHAL)
+  AC_SUBST(GOBJECT_QUERY)
+  AC_SUBST(GLIB_MKENUMS)
+  rm -f conf.glibtest
+])
diff --git a/apps/irssi/glib.m4 b/apps/irssi/glib.m4
new file mode 100644 (file)
index 0000000..b8094bb
--- /dev/null
@@ -0,0 +1,196 @@
+# Configure paths for GLIB
+# Owen Taylor     97-11-3
+
+dnl AM_PATH_GLIB([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND [, MODULES]]]])
+dnl Test for GLIB, and define GLIB_CFLAGS and GLIB_LIBS, if "gmodule" or 
+dnl gthread is specified in MODULES, pass to glib-config
+dnl
+AC_DEFUN(AM_PATH_GLIB,
+[dnl 
+dnl Get the cflags and libraries from the glib-config script
+dnl
+AC_ARG_WITH(glib-prefix,[  --with-glib-prefix=PFX   Prefix where GLIB is installed (optional)],
+            glib_config_prefix="$withval", glib_config_prefix="")
+AC_ARG_WITH(glib-exec-prefix,[  --with-glib-exec-prefix=PFX Exec prefix where GLIB is installed (optional)],
+            glib_config_exec_prefix="$withval", glib_config_exec_prefix="")
+AC_ARG_ENABLE(glibtest, [  --disable-glibtest       Do not try to compile and run a test GLIB program],
+                   , enable_glibtest=yes)
+
+  if test x$glib_config_exec_prefix != x ; then
+     glib_config_args="$glib_config_args --exec-prefix=$glib_config_exec_prefix"
+     if test x${GLIB_CONFIG+set} != xset ; then
+        GLIB_CONFIG=$glib_config_exec_prefix/bin/glib-config
+     fi
+  fi
+  if test x$glib_config_prefix != x ; then
+     glib_config_args="$glib_config_args --prefix=$glib_config_prefix"
+     if test x${GLIB_CONFIG+set} != xset ; then
+        GLIB_CONFIG=$glib_config_prefix/bin/glib-config
+     fi
+  fi
+
+  for module in . $4
+  do
+      case "$module" in
+         gmodule) 
+             glib_config_args="$glib_config_args gmodule"
+         ;;
+         gthread) 
+             glib_config_args="$glib_config_args gthread"
+         ;;
+      esac
+  done
+
+  AC_PATH_PROG(GLIB_CONFIG, glib-config, no)
+  min_glib_version=ifelse([$1], ,0.99.7,$1)
+  AC_MSG_CHECKING(for GLIB - version >= $min_glib_version)
+  no_glib=""
+  if test "$GLIB_CONFIG" = "no" ; then
+    no_glib=yes
+  else
+    GLIB_CFLAGS=`$GLIB_CONFIG $glib_config_args --cflags`
+    GLIB_LIBS=`$GLIB_CONFIG $glib_config_args --libs`
+    glib_config_major_version=`$GLIB_CONFIG $glib_config_args --version | \
+           sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'`
+    glib_config_minor_version=`$GLIB_CONFIG $glib_config_args --version | \
+           sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'`
+    glib_config_micro_version=`$GLIB_CONFIG $glib_config_args --version | \
+           sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'`
+    if test "x$enable_glibtest" = "xyes" ; then
+      ac_save_CFLAGS="$CFLAGS"
+      ac_save_LIBS="$LIBS"
+      CFLAGS="$CFLAGS $GLIB_CFLAGS"
+      LIBS="$GLIB_LIBS $LIBS"
+dnl
+dnl Now check if the installed GLIB is sufficiently new. (Also sanity
+dnl checks the results of glib-config to some extent
+dnl
+      rm -f conf.glibtest
+      AC_TRY_RUN([
+#include <glib.h>
+#include <stdio.h>
+#include <stdlib.h>
+
+int 
+main ()
+{
+  int major, minor, micro;
+  char *tmp_version;
+
+  system ("touch conf.glibtest");
+
+  /* HP/UX 9 (%@#!) writes to sscanf strings */
+  tmp_version = g_strdup("$min_glib_version");
+  if (sscanf(tmp_version, "%d.%d.%d", &major, &minor, &micro) != 3) {
+     printf("%s, bad version string\n", "$min_glib_version");
+     exit(1);
+   }
+
+  if ((glib_major_version != $glib_config_major_version) ||
+      (glib_minor_version != $glib_config_minor_version) ||
+      (glib_micro_version != $glib_config_micro_version))
+    {
+      printf("\n*** 'glib-config --version' returned %d.%d.%d, but GLIB (%d.%d.%d)\n", 
+             $glib_config_major_version, $glib_config_minor_version, $glib_config_micro_version,
+             glib_major_version, glib_minor_version, glib_micro_version);
+      printf ("*** was found! If glib-config was correct, then it is best\n");
+      printf ("*** to remove the old version of GLIB. You may also be able to fix the error\n");
+      printf("*** by modifying your LD_LIBRARY_PATH enviroment variable, or by editing\n");
+      printf("*** /etc/ld.so.conf. Make sure you have run ldconfig if that is\n");
+      printf("*** required on your system.\n");
+      printf("*** If glib-config was wrong, set the environment variable GLIB_CONFIG\n");
+      printf("*** to point to the correct copy of glib-config, and remove the file config.cache\n");
+      printf("*** before re-running configure\n");
+    } 
+  else if ((glib_major_version != GLIB_MAJOR_VERSION) ||
+          (glib_minor_version != GLIB_MINOR_VERSION) ||
+           (glib_micro_version != GLIB_MICRO_VERSION))
+    {
+      printf("*** GLIB header files (version %d.%d.%d) do not match\n",
+            GLIB_MAJOR_VERSION, GLIB_MINOR_VERSION, GLIB_MICRO_VERSION);
+      printf("*** library (version %d.%d.%d)\n",
+            glib_major_version, glib_minor_version, glib_micro_version);
+    }
+  else
+    {
+      if ((glib_major_version > major) ||
+        ((glib_major_version == major) && (glib_minor_version > minor)) ||
+        ((glib_major_version == major) && (glib_minor_version == minor) && (glib_micro_version >= micro)))
+      {
+        return 0;
+       }
+     else
+      {
+        printf("\n*** An old version of GLIB (%d.%d.%d) was found.\n",
+               glib_major_version, glib_minor_version, glib_micro_version);
+        printf("*** You need a version of GLIB newer than %d.%d.%d. The latest version of\n",
+              major, minor, micro);
+        printf("*** GLIB is always available from ftp://ftp.gtk.org.\n");
+        printf("***\n");
+        printf("*** If you have already installed a sufficiently new version, this error\n");
+        printf("*** probably means that the wrong copy of the glib-config shell script is\n");
+        printf("*** being found. The easiest way to fix this is to remove the old version\n");
+        printf("*** of GLIB, but you can also set the GLIB_CONFIG environment to point to the\n");
+        printf("*** correct copy of glib-config. (In this case, you will have to\n");
+        printf("*** modify your LD_LIBRARY_PATH enviroment variable, or edit /etc/ld.so.conf\n");
+        printf("*** so that the correct libraries are found at run-time))\n");
+      }
+    }
+  return 1;
+}
+],, no_glib=yes,[echo $ac_n "cross compiling; assumed OK... $ac_c"])
+       CFLAGS="$ac_save_CFLAGS"
+       LIBS="$ac_save_LIBS"
+     fi
+  fi
+  if test "x$no_glib" = x ; then
+     AC_MSG_RESULT(yes)
+     ifelse([$2], , :, [$2])     
+  else
+     AC_MSG_RESULT(no)
+     if test "$GLIB_CONFIG" = "no" ; then
+       echo "*** The glib-config script installed by GLIB could not be found"
+       echo "*** If GLIB was installed in PREFIX, make sure PREFIX/bin is in"
+       echo "*** your path, or set the GLIB_CONFIG environment variable to the"
+       echo "*** full path to glib-config."
+     else
+       if test -f conf.glibtest ; then
+        :
+       else
+          echo "*** Could not run GLIB test program, checking why..."
+          CFLAGS="$CFLAGS $GLIB_CFLAGS"
+          LIBS="$LIBS $GLIB_LIBS"
+          AC_TRY_LINK([
+#include <glib.h>
+#include <stdio.h>
+],      [ return ((glib_major_version) || (glib_minor_version) || (glib_micro_version)); ],
+        [ echo "*** The test program compiled, but did not run. This usually means"
+          echo "*** that the run-time linker is not finding GLIB or finding the wrong"
+          echo "*** version of GLIB. If it is not finding GLIB, you'll need to set your"
+          echo "*** LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf to point"
+          echo "*** to the installed location  Also, make sure you have run ldconfig if that"
+          echo "*** is required on your system"
+         echo "***"
+          echo "*** If you have an old version installed, it is best to remove it, although"
+          echo "*** you may also be able to get things to work by modifying LD_LIBRARY_PATH"
+          echo "***"
+          echo "*** If you have a RedHat 5.0 system, you should remove the GTK package that"
+          echo "*** came with the system with the command"
+          echo "***"
+          echo "***    rpm --erase --nodeps gtk gtk-devel" ],
+        [ echo "*** The test program failed to compile or link. See the file config.log for the"
+          echo "*** exact error that occured. This usually means GLIB was incorrectly installed"
+          echo "*** or that you have moved GLIB since it was installed. In the latter case, you"
+          echo "*** may want to edit the glib-config script: $GLIB_CONFIG" ])
+          CFLAGS="$ac_save_CFLAGS"
+          LIBS="$ac_save_LIBS"
+       fi
+     fi
+     GLIB_CFLAGS=""
+     GLIB_LIBS=""
+     ifelse([$3], , :, [$3])
+  fi
+  AC_SUBST(GLIB_CFLAGS)
+  AC_SUBST(GLIB_LIBS)
+  rm -f conf.glibtest
+])
diff --git a/apps/irssi/install-sh b/apps/irssi/install-sh
new file mode 100755 (executable)
index 0000000..377bb86
--- /dev/null
@@ -0,0 +1,527 @@
+#!/bin/sh
+# install - install a program, script, or datafile
+
+scriptversion=2011-11-20.07; # UTC
+
+# This originates from X11R5 (mit/util/scripts/install.sh), which was
+# later released in X11R6 (xc/config/util/install.sh) with the
+# following copyright and license.
+#
+# Copyright (C) 1994 X Consortium
+#
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to
+# deal in the Software without restriction, including without limitation the
+# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
+# sell copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be included in
+# all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
+# X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
+# AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC-
+# TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+#
+# Except as contained in this notice, the name of the X Consortium shall not
+# be used in advertising or otherwise to promote the sale, use or other deal-
+# ings in this Software without prior written authorization from the X Consor-
+# tium.
+#
+#
+# FSF changes to this file are in the public domain.
+#
+# Calling this script install-sh is preferred over install.sh, to prevent
+# 'make' implicit rules from creating a file called install from it
+# when there is no Makefile.
+#
+# This script is compatible with the BSD install script, but was written
+# from scratch.
+
+nl='
+'
+IFS=" ""       $nl"
+
+# set DOITPROG to echo to test this script
+
+# Don't use :- since 4.3BSD and earlier shells don't like it.
+doit=${DOITPROG-}
+if test -z "$doit"; then
+  doit_exec=exec
+else
+  doit_exec=$doit
+fi
+
+# Put in absolute file names if you don't have them in your path;
+# or use environment vars.
+
+chgrpprog=${CHGRPPROG-chgrp}
+chmodprog=${CHMODPROG-chmod}
+chownprog=${CHOWNPROG-chown}
+cmpprog=${CMPPROG-cmp}
+cpprog=${CPPROG-cp}
+mkdirprog=${MKDIRPROG-mkdir}
+mvprog=${MVPROG-mv}
+rmprog=${RMPROG-rm}
+stripprog=${STRIPPROG-strip}
+
+posix_glob='?'
+initialize_posix_glob='
+  test "$posix_glob" != "?" || {
+    if (set -f) 2>/dev/null; then
+      posix_glob=
+    else
+      posix_glob=:
+    fi
+  }
+'
+
+posix_mkdir=
+
+# Desired mode of installed file.
+mode=0755
+
+chgrpcmd=
+chmodcmd=$chmodprog
+chowncmd=
+mvcmd=$mvprog
+rmcmd="$rmprog -f"
+stripcmd=
+
+src=
+dst=
+dir_arg=
+dst_arg=
+
+copy_on_change=false
+no_target_directory=
+
+usage="\
+Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE
+   or: $0 [OPTION]... SRCFILES... DIRECTORY
+   or: $0 [OPTION]... -t DIRECTORY SRCFILES...
+   or: $0 [OPTION]... -d DIRECTORIES...
+
+In the 1st form, copy SRCFILE to DSTFILE.
+In the 2nd and 3rd, copy all SRCFILES to DIRECTORY.
+In the 4th, create DIRECTORIES.
+
+Options:
+     --help     display this help and exit.
+     --version  display version info and exit.
+
+  -c            (ignored)
+  -C            install only if different (preserve the last data modification time)
+  -d            create directories instead of installing files.
+  -g GROUP      $chgrpprog installed files to GROUP.
+  -m MODE       $chmodprog installed files to MODE.
+  -o USER       $chownprog installed files to USER.
+  -s            $stripprog installed files.
+  -t DIRECTORY  install into DIRECTORY.
+  -T            report an error if DSTFILE is a directory.
+
+Environment variables override the default commands:
+  CHGRPPROG CHMODPROG CHOWNPROG CMPPROG CPPROG MKDIRPROG MVPROG
+  RMPROG STRIPPROG
+"
+
+while test $# -ne 0; do
+  case $1 in
+    -c) ;;
+
+    -C) copy_on_change=true;;
+
+    -d) dir_arg=true;;
+
+    -g) chgrpcmd="$chgrpprog $2"
+       shift;;
+
+    --help) echo "$usage"; exit $?;;
+
+    -m) mode=$2
+       case $mode in
+         *' '* | *'    '* | *'
+'*       | *'*'* | *'?'* | *'['*)
+           echo "$0: invalid mode: $mode" >&2
+           exit 1;;
+       esac
+       shift;;
+
+    -o) chowncmd="$chownprog $2"
+       shift;;
+
+    -s) stripcmd=$stripprog;;
+
+    -t) dst_arg=$2
+       # Protect names problematic for 'test' and other utilities.
+       case $dst_arg in
+         -* | [=\(\)!]) dst_arg=./$dst_arg;;
+       esac
+       shift;;
+
+    -T) no_target_directory=true;;
+
+    --version) echo "$0 $scriptversion"; exit $?;;
+
+    --)        shift
+       break;;
+
+    -*)        echo "$0: invalid option: $1" >&2
+       exit 1;;
+
+    *)  break;;
+  esac
+  shift
+done
+
+if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then
+  # When -d is used, all remaining arguments are directories to create.
+  # When -t is used, the destination is already specified.
+  # Otherwise, the last argument is the destination.  Remove it from $@.
+  for arg
+  do
+    if test -n "$dst_arg"; then
+      # $@ is not empty: it contains at least $arg.
+      set fnord "$@" "$dst_arg"
+      shift # fnord
+    fi
+    shift # arg
+    dst_arg=$arg
+    # Protect names problematic for 'test' and other utilities.
+    case $dst_arg in
+      -* | [=\(\)!]) dst_arg=./$dst_arg;;
+    esac
+  done
+fi
+
+if test $# -eq 0; then
+  if test -z "$dir_arg"; then
+    echo "$0: no input file specified." >&2
+    exit 1
+  fi
+  # It's OK to call 'install-sh -d' without argument.
+  # This can happen when creating conditional directories.
+  exit 0
+fi
+
+if test -z "$dir_arg"; then
+  do_exit='(exit $ret); exit $ret'
+  trap "ret=129; $do_exit" 1
+  trap "ret=130; $do_exit" 2
+  trap "ret=141; $do_exit" 13
+  trap "ret=143; $do_exit" 15
+
+  # Set umask so as not to create temps with too-generous modes.
+  # However, 'strip' requires both read and write access to temps.
+  case $mode in
+    # Optimize common cases.
+    *644) cp_umask=133;;
+    *755) cp_umask=22;;
+
+    *[0-7])
+      if test -z "$stripcmd"; then
+       u_plus_rw=
+      else
+       u_plus_rw='% 200'
+      fi
+      cp_umask=`expr '(' 777 - $mode % 1000 ')' $u_plus_rw`;;
+    *)
+      if test -z "$stripcmd"; then
+       u_plus_rw=
+      else
+       u_plus_rw=,u+rw
+      fi
+      cp_umask=$mode$u_plus_rw;;
+  esac
+fi
+
+for src
+do
+  # Protect names problematic for 'test' and other utilities.
+  case $src in
+    -* | [=\(\)!]) src=./$src;;
+  esac
+
+  if test -n "$dir_arg"; then
+    dst=$src
+    dstdir=$dst
+    test -d "$dstdir"
+    dstdir_status=$?
+  else
+
+    # Waiting for this to be detected by the "$cpprog $src $dsttmp" command
+    # might cause directories to be created, which would be especially bad
+    # if $src (and thus $dsttmp) contains '*'.
+    if test ! -f "$src" && test ! -d "$src"; then
+      echo "$0: $src does not exist." >&2
+      exit 1
+    fi
+
+    if test -z "$dst_arg"; then
+      echo "$0: no destination specified." >&2
+      exit 1
+    fi
+    dst=$dst_arg
+
+    # If destination is a directory, append the input filename; won't work
+    # if double slashes aren't ignored.
+    if test -d "$dst"; then
+      if test -n "$no_target_directory"; then
+       echo "$0: $dst_arg: Is a directory" >&2
+       exit 1
+      fi
+      dstdir=$dst
+      dst=$dstdir/`basename "$src"`
+      dstdir_status=0
+    else
+      # Prefer dirname, but fall back on a substitute if dirname fails.
+      dstdir=`
+       (dirname "$dst") 2>/dev/null ||
+       expr X"$dst" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+            X"$dst" : 'X\(//\)[^/]' \| \
+            X"$dst" : 'X\(//\)$' \| \
+            X"$dst" : 'X\(/\)' \| . 2>/dev/null ||
+       echo X"$dst" |
+           sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+                  s//\1/
+                  q
+                }
+                /^X\(\/\/\)[^/].*/{
+                  s//\1/
+                  q
+                }
+                /^X\(\/\/\)$/{
+                  s//\1/
+                  q
+                }
+                /^X\(\/\).*/{
+                  s//\1/
+                  q
+                }
+                s/.*/./; q'
+      `
+
+      test -d "$dstdir"
+      dstdir_status=$?
+    fi
+  fi
+
+  obsolete_mkdir_used=false
+
+  if test $dstdir_status != 0; then
+    case $posix_mkdir in
+      '')
+       # Create intermediate dirs using mode 755 as modified by the umask.
+       # This is like FreeBSD 'install' as of 1997-10-28.
+       umask=`umask`
+       case $stripcmd.$umask in
+         # Optimize common cases.
+         *[2367][2367]) mkdir_umask=$umask;;
+         .*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;;
+
+         *[0-7])
+           mkdir_umask=`expr $umask + 22 \
+             - $umask % 100 % 40 + $umask % 20 \
+             - $umask % 10 % 4 + $umask % 2
+           `;;
+         *) mkdir_umask=$umask,go-w;;
+       esac
+
+       # With -d, create the new directory with the user-specified mode.
+       # Otherwise, rely on $mkdir_umask.
+       if test -n "$dir_arg"; then
+         mkdir_mode=-m$mode
+       else
+         mkdir_mode=
+       fi
+
+       posix_mkdir=false
+       case $umask in
+         *[123567][0-7][0-7])
+           # POSIX mkdir -p sets u+wx bits regardless of umask, which
+           # is incompatible with FreeBSD 'install' when (umask & 300) != 0.
+           ;;
+         *)
+           tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$
+           trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0
+
+           if (umask $mkdir_umask &&
+               exec $mkdirprog $mkdir_mode -p -- "$tmpdir/d") >/dev/null 2>&1
+           then
+             if test -z "$dir_arg" || {
+                  # Check for POSIX incompatibilities with -m.
+                  # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or
+                  # other-writable bit of parent directory when it shouldn't.
+                  # FreeBSD 6.1 mkdir -m -p sets mode of existing directory.
+                  ls_ld_tmpdir=`ls -ld "$tmpdir"`
+                  case $ls_ld_tmpdir in
+                    d????-?r-*) different_mode=700;;
+                    d????-?--*) different_mode=755;;
+                    *) false;;
+                  esac &&
+                  $mkdirprog -m$different_mode -p -- "$tmpdir" && {
+                    ls_ld_tmpdir_1=`ls -ld "$tmpdir"`
+                    test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1"
+                  }
+                }
+             then posix_mkdir=:
+             fi
+             rmdir "$tmpdir/d" "$tmpdir"
+           else
+             # Remove any dirs left behind by ancient mkdir implementations.
+             rmdir ./$mkdir_mode ./-p ./-- 2>/dev/null
+           fi
+           trap '' 0;;
+       esac;;
+    esac
+
+    if
+      $posix_mkdir && (
+       umask $mkdir_umask &&
+       $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir"
+      )
+    then :
+    else
+
+      # The umask is ridiculous, or mkdir does not conform to POSIX,
+      # or it failed possibly due to a race condition.  Create the
+      # directory the slow way, step by step, checking for races as we go.
+
+      case $dstdir in
+       /*) prefix='/';;
+       [-=\(\)!]*) prefix='./';;
+       *)  prefix='';;
+      esac
+
+      eval "$initialize_posix_glob"
+
+      oIFS=$IFS
+      IFS=/
+      $posix_glob set -f
+      set fnord $dstdir
+      shift
+      $posix_glob set +f
+      IFS=$oIFS
+
+      prefixes=
+
+      for d
+      do
+       test X"$d" = X && continue
+
+       prefix=$prefix$d
+       if test -d "$prefix"; then
+         prefixes=
+       else
+         if $posix_mkdir; then
+           (umask=$mkdir_umask &&
+            $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break
+           # Don't fail if two instances are running concurrently.
+           test -d "$prefix" || exit 1
+         else
+           case $prefix in
+             *\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;;
+             *) qprefix=$prefix;;
+           esac
+           prefixes="$prefixes '$qprefix'"
+         fi
+       fi
+       prefix=$prefix/
+      done
+
+      if test -n "$prefixes"; then
+       # Don't fail if two instances are running concurrently.
+       (umask $mkdir_umask &&
+        eval "\$doit_exec \$mkdirprog $prefixes") ||
+         test -d "$dstdir" || exit 1
+       obsolete_mkdir_used=true
+      fi
+    fi
+  fi
+
+  if test -n "$dir_arg"; then
+    { test -z "$chowncmd" || $doit $chowncmd "$dst"; } &&
+    { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } &&
+    { test "$obsolete_mkdir_used$chowncmd$chgrpcmd" = false ||
+      test -z "$chmodcmd" || $doit $chmodcmd $mode "$dst"; } || exit 1
+  else
+
+    # Make a couple of temp file names in the proper directory.
+    dsttmp=$dstdir/_inst.$$_
+    rmtmp=$dstdir/_rm.$$_
+
+    # Trap to clean up those temp files at exit.
+    trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0
+
+    # Copy the file name to the temp name.
+    (umask $cp_umask && $doit_exec $cpprog "$src" "$dsttmp") &&
+
+    # and set any options; do chmod last to preserve setuid bits.
+    #
+    # If any of these fail, we abort the whole thing.  If we want to
+    # ignore errors from any of these, just make sure not to ignore
+    # errors from the above "$doit $cpprog $src $dsttmp" command.
+    #
+    { test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } &&
+    { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } &&
+    { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } &&
+    { test -z "$chmodcmd" || $doit $chmodcmd $mode "$dsttmp"; } &&
+
+    # If -C, don't bother to copy if it wouldn't change the file.
+    if $copy_on_change &&
+       old=`LC_ALL=C ls -dlL "$dst"    2>/dev/null` &&
+       new=`LC_ALL=C ls -dlL "$dsttmp" 2>/dev/null` &&
+
+       eval "$initialize_posix_glob" &&
+       $posix_glob set -f &&
+       set X $old && old=:$2:$4:$5:$6 &&
+       set X $new && new=:$2:$4:$5:$6 &&
+       $posix_glob set +f &&
+
+       test "$old" = "$new" &&
+       $cmpprog "$dst" "$dsttmp" >/dev/null 2>&1
+    then
+      rm -f "$dsttmp"
+    else
+      # Rename the file to the real destination.
+      $doit $mvcmd -f "$dsttmp" "$dst" 2>/dev/null ||
+
+      # The rename failed, perhaps because mv can't rename something else
+      # to itself, or perhaps because mv is so ancient that it does not
+      # support -f.
+      {
+       # Now remove or move aside any old file at destination location.
+       # We try this two ways since rm can't unlink itself on some
+       # systems and the destination file might be busy for other
+       # reasons.  In this case, the final cleanup might fail but the new
+       # file should still install successfully.
+       {
+         test ! -f "$dst" ||
+         $doit $rmcmd -f "$dst" 2>/dev/null ||
+         { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null &&
+           { $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; }
+         } ||
+         { echo "$0: cannot unlink or rename $dst" >&2
+           (exit 1); exit 1
+         }
+       } &&
+
+       # Now rename the file to the real destination.
+       $doit $mvcmd "$dsttmp" "$dst"
+      }
+    fi || exit 1
+
+    trap '' 0
+  fi
+done
+
+# Local variables:
+# eval: (add-hook 'write-file-hooks 'time-stamp)
+# time-stamp-start: "scriptversion="
+# time-stamp-format: "%:y-%02m-%02d.%02H"
+# time-stamp-time-zone: "UTC"
+# time-stamp-end: "; # UTC"
+# End:
index cd529ed06309bbdfa9f8724a6cedace189279ed8..2fe49e825dec3c642f2116eb0d99fb21f44f14d4 100644 (file)
@@ -6,4 +6,4 @@ PERL_FE_LINK_LIBS="@PERL_FE_LINK_LIBS@"
 PERL_LINK_FLAGS="@PERL_LINK_FLAGS@"
 
 CHAT_MODULES="@CHAT_MODULES@"
-irc_MODULES="@irc_MODULES@"
+silc_MODULES="@silc_MODULES@"
diff --git a/apps/irssi/libtool.m4 b/apps/irssi/libtool.m4
new file mode 100644 (file)
index 0000000..44e0ecf
--- /dev/null
@@ -0,0 +1,7982 @@
+# libtool.m4 - Configure libtool for the host system. -*-Autoconf-*-
+#
+#   Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005,
+#                 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+#                 Foundation, Inc.
+#   Written by Gordon Matzigkeit, 1996
+#
+# This file is free software; the Free Software Foundation gives
+# unlimited permission to copy and/or distribute it, with or without
+# modifications, as long as this notice is preserved.
+
+m4_define([_LT_COPYING], [dnl
+#   Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005,
+#                 2006, 2007, 2008, 2009, 2010, 2011 Free Software
+#                 Foundation, Inc.
+#   Written by Gordon Matzigkeit, 1996
+#
+#   This file is part of GNU Libtool.
+#
+# GNU Libtool is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License as
+# published by the Free Software Foundation; either version 2 of
+# the License, or (at your option) any later version.
+#
+# As a special exception to the GNU General Public License,
+# if you distribute this file as part of a program or library that
+# is built using GNU Libtool, you may include this file under the
+# same distribution terms that you use for the rest of that program.
+#
+# GNU Libtool is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with GNU Libtool; see the file COPYING.  If not, a copy
+# can be downloaded from http://www.gnu.org/licenses/gpl.html, or
+# obtained by writing to the Free Software Foundation, Inc.,
+# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+])
+
+# serial 57 LT_INIT
+
+
+# LT_PREREQ(VERSION)
+# ------------------
+# Complain and exit if this libtool version is less that VERSION.
+m4_defun([LT_PREREQ],
+[m4_if(m4_version_compare(m4_defn([LT_PACKAGE_VERSION]), [$1]), -1,
+       [m4_default([$3],
+                  [m4_fatal([Libtool version $1 or higher is required],
+                            63)])],
+       [$2])])
+
+
+# _LT_CHECK_BUILDDIR
+# ------------------
+# Complain if the absolute build directory name contains unusual characters
+m4_defun([_LT_CHECK_BUILDDIR],
+[case `pwd` in
+  *\ * | *\    *)
+    AC_MSG_WARN([Libtool does not cope well with whitespace in `pwd`]) ;;
+esac
+])
+
+
+# LT_INIT([OPTIONS])
+# ------------------
+AC_DEFUN([LT_INIT],
+[AC_PREREQ([2.58])dnl We use AC_INCLUDES_DEFAULT
+AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT])dnl
+AC_BEFORE([$0], [LT_LANG])dnl
+AC_BEFORE([$0], [LT_OUTPUT])dnl
+AC_BEFORE([$0], [LTDL_INIT])dnl
+m4_require([_LT_CHECK_BUILDDIR])dnl
+
+dnl Autoconf doesn't catch unexpanded LT_ macros by default:
+m4_pattern_forbid([^_?LT_[A-Z_]+$])dnl
+m4_pattern_allow([^(_LT_EOF|LT_DLGLOBAL|LT_DLLAZY_OR_NOW|LT_MULTI_MODULE)$])dnl
+dnl aclocal doesn't pull ltoptions.m4, ltsugar.m4, or ltversion.m4
+dnl unless we require an AC_DEFUNed macro:
+AC_REQUIRE([LTOPTIONS_VERSION])dnl
+AC_REQUIRE([LTSUGAR_VERSION])dnl
+AC_REQUIRE([LTVERSION_VERSION])dnl
+AC_REQUIRE([LTOBSOLETE_VERSION])dnl
+m4_require([_LT_PROG_LTMAIN])dnl
+
+_LT_SHELL_INIT([SHELL=${CONFIG_SHELL-/bin/sh}])
+
+dnl Parse OPTIONS
+_LT_SET_OPTIONS([$0], [$1])
+
+# This can be used to rebuild libtool when needed
+LIBTOOL_DEPS="$ltmain"
+
+# Always use our own libtool.
+LIBTOOL='$(SHELL) $(top_builddir)/libtool'
+AC_SUBST(LIBTOOL)dnl
+
+_LT_SETUP
+
+# Only expand once:
+m4_define([LT_INIT])
+])# LT_INIT
+
+# Old names:
+AU_ALIAS([AC_PROG_LIBTOOL], [LT_INIT])
+AU_ALIAS([AM_PROG_LIBTOOL], [LT_INIT])
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([AC_PROG_LIBTOOL], [])
+dnl AC_DEFUN([AM_PROG_LIBTOOL], [])
+
+
+# _LT_CC_BASENAME(CC)
+# -------------------
+# Calculate cc_basename.  Skip known compiler wrappers and cross-prefix.
+m4_defun([_LT_CC_BASENAME],
+[for cc_temp in $1""; do
+  case $cc_temp in
+    compile | *[[\\/]]compile | ccache | *[[\\/]]ccache ) ;;
+    distcc | *[[\\/]]distcc | purify | *[[\\/]]purify ) ;;
+    \-*) ;;
+    *) break;;
+  esac
+done
+cc_basename=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"`
+])
+
+
+# _LT_FILEUTILS_DEFAULTS
+# ----------------------
+# It is okay to use these file commands and assume they have been set
+# sensibly after `m4_require([_LT_FILEUTILS_DEFAULTS])'.
+m4_defun([_LT_FILEUTILS_DEFAULTS],
+[: ${CP="cp -f"}
+: ${MV="mv -f"}
+: ${RM="rm -f"}
+])# _LT_FILEUTILS_DEFAULTS
+
+
+# _LT_SETUP
+# ---------
+m4_defun([_LT_SETUP],
+[AC_REQUIRE([AC_CANONICAL_HOST])dnl
+AC_REQUIRE([AC_CANONICAL_BUILD])dnl
+AC_REQUIRE([_LT_PREPARE_SED_QUOTE_VARS])dnl
+AC_REQUIRE([_LT_PROG_ECHO_BACKSLASH])dnl
+
+_LT_DECL([], [PATH_SEPARATOR], [1], [The PATH separator for the build system])dnl
+dnl
+_LT_DECL([], [host_alias], [0], [The host system])dnl
+_LT_DECL([], [host], [0])dnl
+_LT_DECL([], [host_os], [0])dnl
+dnl
+_LT_DECL([], [build_alias], [0], [The build system])dnl
+_LT_DECL([], [build], [0])dnl
+_LT_DECL([], [build_os], [0])dnl
+dnl
+AC_REQUIRE([AC_PROG_CC])dnl
+AC_REQUIRE([LT_PATH_LD])dnl
+AC_REQUIRE([LT_PATH_NM])dnl
+dnl
+AC_REQUIRE([AC_PROG_LN_S])dnl
+test -z "$LN_S" && LN_S="ln -s"
+_LT_DECL([], [LN_S], [1], [Whether we need soft or hard links])dnl
+dnl
+AC_REQUIRE([LT_CMD_MAX_LEN])dnl
+_LT_DECL([objext], [ac_objext], [0], [Object file suffix (normally "o")])dnl
+_LT_DECL([], [exeext], [0], [Executable file suffix (normally "")])dnl
+dnl
+m4_require([_LT_FILEUTILS_DEFAULTS])dnl
+m4_require([_LT_CHECK_SHELL_FEATURES])dnl
+m4_require([_LT_PATH_CONVERSION_FUNCTIONS])dnl
+m4_require([_LT_CMD_RELOAD])dnl
+m4_require([_LT_CHECK_MAGIC_METHOD])dnl
+m4_require([_LT_CHECK_SHAREDLIB_FROM_LINKLIB])dnl
+m4_require([_LT_CMD_OLD_ARCHIVE])dnl
+m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl
+m4_require([_LT_WITH_SYSROOT])dnl
+
+_LT_CONFIG_LIBTOOL_INIT([
+# See if we are running on zsh, and set the options which allow our
+# commands through without removal of \ escapes INIT.
+if test -n "\${ZSH_VERSION+set}" ; then
+   setopt NO_GLOB_SUBST
+fi
+])
+if test -n "${ZSH_VERSION+set}" ; then
+   setopt NO_GLOB_SUBST
+fi
+
+_LT_CHECK_OBJDIR
+
+m4_require([_LT_TAG_COMPILER])dnl
+
+case $host_os in
+aix3*)
+  # AIX sometimes has problems with the GCC collect2 program.  For some
+  # reason, if we set the COLLECT_NAMES environment variable, the problems
+  # vanish in a puff of smoke.
+  if test "X${COLLECT_NAMES+set}" != Xset; then
+    COLLECT_NAMES=
+    export COLLECT_NAMES
+  fi
+  ;;
+esac
+
+# Global variables:
+ofile=libtool
+can_build_shared=yes
+
+# All known linkers require a `.a' archive for static linking (except MSVC,
+# which needs '.lib').
+libext=a
+
+with_gnu_ld="$lt_cv_prog_gnu_ld"
+
+old_CC="$CC"
+old_CFLAGS="$CFLAGS"
+
+# Set sane defaults for various variables
+test -z "$CC" && CC=cc
+test -z "$LTCC" && LTCC=$CC
+test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS
+test -z "$LD" && LD=ld
+test -z "$ac_objext" && ac_objext=o
+
+_LT_CC_BASENAME([$compiler])
+
+# Only perform the check for file, if the check method requires it
+test -z "$MAGIC_CMD" && MAGIC_CMD=file
+case $deplibs_check_method in
+file_magic*)
+  if test "$file_magic_cmd" = '$MAGIC_CMD'; then
+    _LT_PATH_MAGIC
+  fi
+  ;;
+esac
+
+# Use C for the default configuration in the libtool script
+LT_SUPPORTED_TAG([CC])
+_LT_LANG_C_CONFIG
+_LT_LANG_DEFAULT_CONFIG
+_LT_CONFIG_COMMANDS
+])# _LT_SETUP
+
+
+# _LT_PREPARE_SED_QUOTE_VARS
+# --------------------------
+# Define a few sed substitution that help us do robust quoting.
+m4_defun([_LT_PREPARE_SED_QUOTE_VARS],
+[# Backslashify metacharacters that are still active within
+# double-quoted strings.
+sed_quote_subst='s/\([["`$\\]]\)/\\\1/g'
+
+# Same as above, but do not quote variable references.
+double_quote_subst='s/\([["`\\]]\)/\\\1/g'
+
+# Sed substitution to delay expansion of an escaped shell variable in a
+# double_quote_subst'ed string.
+delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g'
+
+# Sed substitution to delay expansion of an escaped single quote.
+delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g'
+
+# Sed substitution to avoid accidental globbing in evaled expressions
+no_glob_subst='s/\*/\\\*/g'
+])
+
+# _LT_PROG_LTMAIN
+# ---------------
+# Note that this code is called both from `configure', and `config.status'
+# now that we use AC_CONFIG_COMMANDS to generate libtool.  Notably,
+# `config.status' has no value for ac_aux_dir unless we are using Automake,
+# so we pass a copy along to make sure it has a sensible value anyway.
+m4_defun([_LT_PROG_LTMAIN],
+[m4_ifdef([AC_REQUIRE_AUX_FILE], [AC_REQUIRE_AUX_FILE([ltmain.sh])])dnl
+_LT_CONFIG_LIBTOOL_INIT([ac_aux_dir='$ac_aux_dir'])
+ltmain="$ac_aux_dir/ltmain.sh"
+])# _LT_PROG_LTMAIN
+
+
+## ------------------------------------- ##
+## Accumulate code for creating libtool. ##
+## ------------------------------------- ##
+
+# So that we can recreate a full libtool script including additional
+# tags, we accumulate the chunks of code to send to AC_CONFIG_COMMANDS
+# in macros and then make a single call at the end using the `libtool'
+# label.
+
+
+# _LT_CONFIG_LIBTOOL_INIT([INIT-COMMANDS])
+# ----------------------------------------
+# Register INIT-COMMANDS to be passed to AC_CONFIG_COMMANDS later.
+m4_define([_LT_CONFIG_LIBTOOL_INIT],
+[m4_ifval([$1],
+          [m4_append([_LT_OUTPUT_LIBTOOL_INIT],
+                     [$1
+])])])
+
+# Initialize.
+m4_define([_LT_OUTPUT_LIBTOOL_INIT])
+
+
+# _LT_CONFIG_LIBTOOL([COMMANDS])
+# ------------------------------
+# Register COMMANDS to be passed to AC_CONFIG_COMMANDS later.
+m4_define([_LT_CONFIG_LIBTOOL],
+[m4_ifval([$1],
+          [m4_append([_LT_OUTPUT_LIBTOOL_COMMANDS],
+                     [$1
+])])])
+
+# Initialize.
+m4_define([_LT_OUTPUT_LIBTOOL_COMMANDS])
+
+
+# _LT_CONFIG_SAVE_COMMANDS([COMMANDS], [INIT_COMMANDS])
+# -----------------------------------------------------
+m4_defun([_LT_CONFIG_SAVE_COMMANDS],
+[_LT_CONFIG_LIBTOOL([$1])
+_LT_CONFIG_LIBTOOL_INIT([$2])
+])
+
+
+# _LT_FORMAT_COMMENT([COMMENT])
+# -----------------------------
+# Add leading comment marks to the start of each line, and a trailing
+# full-stop to the whole comment if one is not present already.
+m4_define([_LT_FORMAT_COMMENT],
+[m4_ifval([$1], [
+m4_bpatsubst([m4_bpatsubst([$1], [^ *], [# ])],
+              [['`$\]], [\\\&])]m4_bmatch([$1], [[!?.]$], [], [.])
+)])
+
+
+
+## ------------------------ ##
+## FIXME: Eliminate VARNAME ##
+## ------------------------ ##
+
+
+# _LT_DECL([CONFIGNAME], VARNAME, VALUE, [DESCRIPTION], [IS-TAGGED?])
+# -------------------------------------------------------------------
+# CONFIGNAME is the name given to the value in the libtool script.
+# VARNAME is the (base) name used in the configure script.
+# VALUE may be 0, 1 or 2 for a computed quote escaped value based on
+# VARNAME.  Any other value will be used directly.
+m4_define([_LT_DECL],
+[lt_if_append_uniq([lt_decl_varnames], [$2], [, ],
+    [lt_dict_add_subkey([lt_decl_dict], [$2], [libtool_name],
+       [m4_ifval([$1], [$1], [$2])])
+    lt_dict_add_subkey([lt_decl_dict], [$2], [value], [$3])
+    m4_ifval([$4],
+       [lt_dict_add_subkey([lt_decl_dict], [$2], [description], [$4])])
+    lt_dict_add_subkey([lt_decl_dict], [$2],
+       [tagged?], [m4_ifval([$5], [yes], [no])])])
+])
+
+
+# _LT_TAGDECL([CONFIGNAME], VARNAME, VALUE, [DESCRIPTION])
+# --------------------------------------------------------
+m4_define([_LT_TAGDECL], [_LT_DECL([$1], [$2], [$3], [$4], [yes])])
+
+
+# lt_decl_tag_varnames([SEPARATOR], [VARNAME1...])
+# ------------------------------------------------
+m4_define([lt_decl_tag_varnames],
+[_lt_decl_filter([tagged?], [yes], $@)])
+
+
+# _lt_decl_filter(SUBKEY, VALUE, [SEPARATOR], [VARNAME1..])
+# ---------------------------------------------------------
+m4_define([_lt_decl_filter],
+[m4_case([$#],
+  [0], [m4_fatal([$0: too few arguments: $#])],
+  [1], [m4_fatal([$0: too few arguments: $#: $1])],
+  [2], [lt_dict_filter([lt_decl_dict], [$1], [$2], [], lt_decl_varnames)],
+  [3], [lt_dict_filter([lt_decl_dict], [$1], [$2], [$3], lt_decl_varnames)],
+  [lt_dict_filter([lt_decl_dict], $@)])[]dnl
+])
+
+
+# lt_decl_quote_varnames([SEPARATOR], [VARNAME1...])
+# --------------------------------------------------
+m4_define([lt_decl_quote_varnames],
+[_lt_decl_filter([value], [1], $@)])
+
+
+# lt_decl_dquote_varnames([SEPARATOR], [VARNAME1...])
+# ---------------------------------------------------
+m4_define([lt_decl_dquote_varnames],
+[_lt_decl_filter([value], [2], $@)])
+
+
+# lt_decl_varnames_tagged([SEPARATOR], [VARNAME1...])
+# ---------------------------------------------------
+m4_define([lt_decl_varnames_tagged],
+[m4_assert([$# <= 2])dnl
+_$0(m4_quote(m4_default([$1], [[, ]])),
+    m4_ifval([$2], [[$2]], [m4_dquote(lt_decl_tag_varnames)]),
+    m4_split(m4_normalize(m4_quote(_LT_TAGS)), [ ]))])
+m4_define([_lt_decl_varnames_tagged],
+[m4_ifval([$3], [lt_combine([$1], [$2], [_], $3)])])
+
+
+# lt_decl_all_varnames([SEPARATOR], [VARNAME1...])
+# ------------------------------------------------
+m4_define([lt_decl_all_varnames],
+[_$0(m4_quote(m4_default([$1], [[, ]])),
+     m4_if([$2], [],
+          m4_quote(lt_decl_varnames),
+       m4_quote(m4_shift($@))))[]dnl
+])
+m4_define([_lt_decl_all_varnames],
+[lt_join($@, lt_decl_varnames_tagged([$1],
+                       lt_decl_tag_varnames([[, ]], m4_shift($@))))dnl
+])
+
+
+# _LT_CONFIG_STATUS_DECLARE([VARNAME])
+# ------------------------------------
+# Quote a variable value, and forward it to `config.status' so that its
+# declaration there will have the same value as in `configure'.  VARNAME
+# must have a single quote delimited value for this to work.
+m4_define([_LT_CONFIG_STATUS_DECLARE],
+[$1='`$ECHO "$][$1" | $SED "$delay_single_quote_subst"`'])
+
+
+# _LT_CONFIG_STATUS_DECLARATIONS
+# ------------------------------
+# We delimit libtool config variables with single quotes, so when
+# we write them to config.status, we have to be sure to quote all
+# embedded single quotes properly.  In configure, this macro expands
+# each variable declared with _LT_DECL (and _LT_TAGDECL) into:
+#
+#    <var>='`$ECHO "$<var>" | $SED "$delay_single_quote_subst"`'
+m4_defun([_LT_CONFIG_STATUS_DECLARATIONS],
+[m4_foreach([_lt_var], m4_quote(lt_decl_all_varnames),
+    [m4_n([_LT_CONFIG_STATUS_DECLARE(_lt_var)])])])
+
+
+# _LT_LIBTOOL_TAGS
+# ----------------
+# Output comment and list of tags supported by the script
+m4_defun([_LT_LIBTOOL_TAGS],
+[_LT_FORMAT_COMMENT([The names of the tagged configurations supported by this script])dnl
+available_tags="_LT_TAGS"dnl
+])
+
+
+# _LT_LIBTOOL_DECLARE(VARNAME, [TAG])
+# -----------------------------------
+# Extract the dictionary values for VARNAME (optionally with TAG) and
+# expand to a commented shell variable setting:
+#
+#    # Some comment about what VAR is for.
+#    visible_name=$lt_internal_name
+m4_define([_LT_LIBTOOL_DECLARE],
+[_LT_FORMAT_COMMENT(m4_quote(lt_dict_fetch([lt_decl_dict], [$1],
+                                          [description])))[]dnl
+m4_pushdef([_libtool_name],
+    m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [libtool_name])))[]dnl
+m4_case(m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [value])),
+    [0], [_libtool_name=[$]$1],
+    [1], [_libtool_name=$lt_[]$1],
+    [2], [_libtool_name=$lt_[]$1],
+    [_libtool_name=lt_dict_fetch([lt_decl_dict], [$1], [value])])[]dnl
+m4_ifval([$2], [_$2])[]m4_popdef([_libtool_name])[]dnl
+])
+
+
+# _LT_LIBTOOL_CONFIG_VARS
+# -----------------------
+# Produce commented declarations of non-tagged libtool config variables
+# suitable for insertion in the LIBTOOL CONFIG section of the `libtool'
+# script.  Tagged libtool config variables (even for the LIBTOOL CONFIG
+# section) are produced by _LT_LIBTOOL_TAG_VARS.
+m4_defun([_LT_LIBTOOL_CONFIG_VARS],
+[m4_foreach([_lt_var],
+    m4_quote(_lt_decl_filter([tagged?], [no], [], lt_decl_varnames)),
+    [m4_n([_LT_LIBTOOL_DECLARE(_lt_var)])])])
+
+
+# _LT_LIBTOOL_TAG_VARS(TAG)
+# -------------------------
+m4_define([_LT_LIBTOOL_TAG_VARS],
+[m4_foreach([_lt_var], m4_quote(lt_decl_tag_varnames),
+    [m4_n([_LT_LIBTOOL_DECLARE(_lt_var, [$1])])])])
+
+
+# _LT_TAGVAR(VARNAME, [TAGNAME])
+# ------------------------------
+m4_define([_LT_TAGVAR], [m4_ifval([$2], [$1_$2], [$1])])
+
+
+# _LT_CONFIG_COMMANDS
+# -------------------
+# Send accumulated output to $CONFIG_STATUS.  Thanks to the lists of
+# variables for single and double quote escaping we saved from calls
+# to _LT_DECL, we can put quote escaped variables declarations
+# into `config.status', and then the shell code to quote escape them in
+# for loops in `config.status'.  Finally, any additional code accumulated
+# from calls to _LT_CONFIG_LIBTOOL_INIT is expanded.
+m4_defun([_LT_CONFIG_COMMANDS],
+[AC_PROVIDE_IFELSE([LT_OUTPUT],
+       dnl If the libtool generation code has been placed in $CONFIG_LT,
+       dnl instead of duplicating it all over again into config.status,
+       dnl then we will have config.status run $CONFIG_LT later, so it
+       dnl needs to know what name is stored there:
+        [AC_CONFIG_COMMANDS([libtool],
+            [$SHELL $CONFIG_LT || AS_EXIT(1)], [CONFIG_LT='$CONFIG_LT'])],
+    dnl If the libtool generation code is destined for config.status,
+    dnl expand the accumulated commands and init code now:
+    [AC_CONFIG_COMMANDS([libtool],
+        [_LT_OUTPUT_LIBTOOL_COMMANDS], [_LT_OUTPUT_LIBTOOL_COMMANDS_INIT])])
+])#_LT_CONFIG_COMMANDS
+
+
+# Initialize.
+m4_define([_LT_OUTPUT_LIBTOOL_COMMANDS_INIT],
+[
+
+# The HP-UX ksh and POSIX shell print the target directory to stdout
+# if CDPATH is set.
+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
+
+sed_quote_subst='$sed_quote_subst'
+double_quote_subst='$double_quote_subst'
+delay_variable_subst='$delay_variable_subst'
+_LT_CONFIG_STATUS_DECLARATIONS
+LTCC='$LTCC'
+LTCFLAGS='$LTCFLAGS'
+compiler='$compiler_DEFAULT'
+
+# A function that is used when there is no print builtin or printf.
+func_fallback_echo ()
+{
+  eval 'cat <<_LTECHO_EOF
+\$[]1
+_LTECHO_EOF'
+}
+
+# Quote evaled strings.
+for var in lt_decl_all_varnames([[ \
+]], lt_decl_quote_varnames); do
+    case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in
+    *[[\\\\\\\`\\"\\\$]]*)
+      eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED \\"\\\$sed_quote_subst\\"\\\`\\\\\\""
+      ;;
+    *)
+      eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\""
+      ;;
+    esac
+done
+
+# Double-quote double-evaled strings.
+for var in lt_decl_all_varnames([[ \
+]], lt_decl_dquote_varnames); do
+    case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in
+    *[[\\\\\\\`\\"\\\$]]*)
+      eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\""
+      ;;
+    *)
+      eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\""
+      ;;
+    esac
+done
+
+_LT_OUTPUT_LIBTOOL_INIT
+])
+
+# _LT_GENERATED_FILE_INIT(FILE, [COMMENT])
+# ------------------------------------
+# Generate a child script FILE with all initialization necessary to
+# reuse the environment learned by the parent script, and make the
+# file executable.  If COMMENT is supplied, it is inserted after the
+# `#!' sequence but before initialization text begins.  After this
+# macro, additional text can be appended to FILE to form the body of
+# the child script.  The macro ends with non-zero status if the
+# file could not be fully written (such as if the disk is full).
+m4_ifdef([AS_INIT_GENERATED],
+[m4_defun([_LT_GENERATED_FILE_INIT],[AS_INIT_GENERATED($@)])],
+[m4_defun([_LT_GENERATED_FILE_INIT],
+[m4_require([AS_PREPARE])]dnl
+[m4_pushdef([AS_MESSAGE_LOG_FD])]dnl
+[lt_write_fail=0
+cat >$1 <<_ASEOF || lt_write_fail=1
+#! $SHELL
+# Generated by $as_me.
+$2
+SHELL=\${CONFIG_SHELL-$SHELL}
+export SHELL
+_ASEOF
+cat >>$1 <<\_ASEOF || lt_write_fail=1
+AS_SHELL_SANITIZE
+_AS_PREPARE
+exec AS_MESSAGE_FD>&1
+_ASEOF
+test $lt_write_fail = 0 && chmod +x $1[]dnl
+m4_popdef([AS_MESSAGE_LOG_FD])])])# _LT_GENERATED_FILE_INIT
+
+# LT_OUTPUT
+# ---------
+# This macro allows early generation of the libtool script (before
+# AC_OUTPUT is called), incase it is used in configure for compilation
+# tests.
+AC_DEFUN([LT_OUTPUT],
+[: ${CONFIG_LT=./config.lt}
+AC_MSG_NOTICE([creating $CONFIG_LT])
+_LT_GENERATED_FILE_INIT(["$CONFIG_LT"],
+[# Run this file to recreate a libtool stub with the current configuration.])
+
+cat >>"$CONFIG_LT" <<\_LTEOF
+lt_cl_silent=false
+exec AS_MESSAGE_LOG_FD>>config.log
+{
+  echo
+  AS_BOX([Running $as_me.])
+} >&AS_MESSAGE_LOG_FD
+
+lt_cl_help="\
+\`$as_me' creates a local libtool stub from the current configuration,
+for use in further configure time tests before the real libtool is
+generated.
+
+Usage: $[0] [[OPTIONS]]
+
+  -h, --help      print this help, then exit
+  -V, --version   print version number, then exit
+  -q, --quiet     do not print progress messages
+  -d, --debug     don't remove temporary files
+
+Report bugs to <bug-libtool@gnu.org>."
+
+lt_cl_version="\
+m4_ifset([AC_PACKAGE_NAME], [AC_PACKAGE_NAME ])config.lt[]dnl
+m4_ifset([AC_PACKAGE_VERSION], [ AC_PACKAGE_VERSION])
+configured by $[0], generated by m4_PACKAGE_STRING.
+
+Copyright (C) 2011 Free Software Foundation, Inc.
+This config.lt script is free software; the Free Software Foundation
+gives unlimited permision to copy, distribute and modify it."
+
+while test $[#] != 0
+do
+  case $[1] in
+    --version | --v* | -V )
+      echo "$lt_cl_version"; exit 0 ;;
+    --help | --h* | -h )
+      echo "$lt_cl_help"; exit 0 ;;
+    --debug | --d* | -d )
+      debug=: ;;
+    --quiet | --q* | --silent | --s* | -q )
+      lt_cl_silent=: ;;
+
+    -*) AC_MSG_ERROR([unrecognized option: $[1]
+Try \`$[0] --help' for more information.]) ;;
+
+    *) AC_MSG_ERROR([unrecognized argument: $[1]
+Try \`$[0] --help' for more information.]) ;;
+  esac
+  shift
+done
+
+if $lt_cl_silent; then
+  exec AS_MESSAGE_FD>/dev/null
+fi
+_LTEOF
+
+cat >>"$CONFIG_LT" <<_LTEOF
+_LT_OUTPUT_LIBTOOL_COMMANDS_INIT
+_LTEOF
+
+cat >>"$CONFIG_LT" <<\_LTEOF
+AC_MSG_NOTICE([creating $ofile])
+_LT_OUTPUT_LIBTOOL_COMMANDS
+AS_EXIT(0)
+_LTEOF
+chmod +x "$CONFIG_LT"
+
+# configure is writing to config.log, but config.lt does its own redirection,
+# appending to config.log, which fails on DOS, as config.log is still kept
+# open by configure.  Here we exec the FD to /dev/null, effectively closing
+# config.log, so it can be properly (re)opened and appended to by config.lt.
+lt_cl_success=:
+test "$silent" = yes &&
+  lt_config_lt_args="$lt_config_lt_args --quiet"
+exec AS_MESSAGE_LOG_FD>/dev/null
+$SHELL "$CONFIG_LT" $lt_config_lt_args || lt_cl_success=false
+exec AS_MESSAGE_LOG_FD>>config.log
+$lt_cl_success || AS_EXIT(1)
+])# LT_OUTPUT
+
+
+# _LT_CONFIG(TAG)
+# ---------------
+# If TAG is the built-in tag, create an initial libtool script with a
+# default configuration from the untagged config vars.  Otherwise add code
+# to config.status for appending the configuration named by TAG from the
+# matching tagged config vars.
+m4_defun([_LT_CONFIG],
+[m4_require([_LT_FILEUTILS_DEFAULTS])dnl
+_LT_CONFIG_SAVE_COMMANDS([
+  m4_define([_LT_TAG], m4_if([$1], [], [C], [$1]))dnl
+  m4_if(_LT_TAG, [C], [
+    # See if we are running on zsh, and set the options which allow our
+    # commands through without removal of \ escapes.
+    if test -n "${ZSH_VERSION+set}" ; then
+      setopt NO_GLOB_SUBST
+    fi
+
+    cfgfile="${ofile}T"
+    trap "$RM \"$cfgfile\"; exit 1" 1 2 15
+    $RM "$cfgfile"
+
+    cat <<_LT_EOF >> "$cfgfile"
+#! $SHELL
+
+# `$ECHO "$ofile" | sed 's%^.*/%%'` - Provide generalized library-building support services.
+# Generated automatically by $as_me ($PACKAGE$TIMESTAMP) $VERSION
+# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
+# NOTE: Changes made to this file will be lost: look at ltmain.sh.
+#
+_LT_COPYING
+_LT_LIBTOOL_TAGS
+
+# ### BEGIN LIBTOOL CONFIG
+_LT_LIBTOOL_CONFIG_VARS
+_LT_LIBTOOL_TAG_VARS
+# ### END LIBTOOL CONFIG
+
+_LT_EOF
+
+  case $host_os in
+  aix3*)
+    cat <<\_LT_EOF >> "$cfgfile"
+# AIX sometimes has problems with the GCC collect2 program.  For some
+# reason, if we set the COLLECT_NAMES environment variable, the problems
+# vanish in a puff of smoke.
+if test "X${COLLECT_NAMES+set}" != Xset; then
+  COLLECT_NAMES=
+  export COLLECT_NAMES
+fi
+_LT_EOF
+    ;;
+  esac
+
+  _LT_PROG_LTMAIN
+
+  # We use sed instead of cat because bash on DJGPP gets confused if
+  # if finds mixed CR/LF and LF-only lines.  Since sed operates in
+  # text mode, it properly converts lines to CR/LF.  This bash problem
+  # is reportedly fixed, but why not run on old versions too?
+  sed '$q' "$ltmain" >> "$cfgfile" \
+     || (rm -f "$cfgfile"; exit 1)
+
+  _LT_PROG_REPLACE_SHELLFNS
+
+   mv -f "$cfgfile" "$ofile" ||
+    (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile")
+  chmod +x "$ofile"
+],
+[cat <<_LT_EOF >> "$ofile"
+
+dnl Unfortunately we have to use $1 here, since _LT_TAG is not expanded
+dnl in a comment (ie after a #).
+# ### BEGIN LIBTOOL TAG CONFIG: $1
+_LT_LIBTOOL_TAG_VARS(_LT_TAG)
+# ### END LIBTOOL TAG CONFIG: $1
+_LT_EOF
+])dnl /m4_if
+],
+[m4_if([$1], [], [
+    PACKAGE='$PACKAGE'
+    VERSION='$VERSION'
+    TIMESTAMP='$TIMESTAMP'
+    RM='$RM'
+    ofile='$ofile'], [])
+])dnl /_LT_CONFIG_SAVE_COMMANDS
+])# _LT_CONFIG
+
+
+# LT_SUPPORTED_TAG(TAG)
+# ---------------------
+# Trace this macro to discover what tags are supported by the libtool
+# --tag option, using:
+#    autoconf --trace 'LT_SUPPORTED_TAG:$1'
+AC_DEFUN([LT_SUPPORTED_TAG], [])
+
+
+# C support is built-in for now
+m4_define([_LT_LANG_C_enabled], [])
+m4_define([_LT_TAGS], [])
+
+
+# LT_LANG(LANG)
+# -------------
+# Enable libtool support for the given language if not already enabled.
+AC_DEFUN([LT_LANG],
+[AC_BEFORE([$0], [LT_OUTPUT])dnl
+m4_case([$1],
+  [C],                 [_LT_LANG(C)],
+  [C++],               [_LT_LANG(CXX)],
+  [Go],                        [_LT_LANG(GO)],
+  [Java],              [_LT_LANG(GCJ)],
+  [Fortran 77],                [_LT_LANG(F77)],
+  [Fortran],           [_LT_LANG(FC)],
+  [Windows Resource],  [_LT_LANG(RC)],
+  [m4_ifdef([_LT_LANG_]$1[_CONFIG],
+    [_LT_LANG($1)],
+    [m4_fatal([$0: unsupported language: "$1"])])])dnl
+])# LT_LANG
+
+
+# _LT_LANG(LANGNAME)
+# ------------------
+m4_defun([_LT_LANG],
+[m4_ifdef([_LT_LANG_]$1[_enabled], [],
+  [LT_SUPPORTED_TAG([$1])dnl
+  m4_append([_LT_TAGS], [$1 ])dnl
+  m4_define([_LT_LANG_]$1[_enabled], [])dnl
+  _LT_LANG_$1_CONFIG($1)])dnl
+])# _LT_LANG
+
+
+m4_ifndef([AC_PROG_GO], [
+############################################################
+# NOTE: This macro has been submitted for inclusion into   #
+#  GNU Autoconf as AC_PROG_GO.  When it is available in    #
+#  a released version of Autoconf we should remove this    #
+#  macro and use it instead.                               #
+############################################################
+m4_defun([AC_PROG_GO],
+[AC_LANG_PUSH(Go)dnl
+AC_ARG_VAR([GOC],     [Go compiler command])dnl
+AC_ARG_VAR([GOFLAGS], [Go compiler flags])dnl
+_AC_ARG_VAR_LDFLAGS()dnl
+AC_CHECK_TOOL(GOC, gccgo)
+if test -z "$GOC"; then
+  if test -n "$ac_tool_prefix"; then
+    AC_CHECK_PROG(GOC, [${ac_tool_prefix}gccgo], [${ac_tool_prefix}gccgo])
+  fi
+fi
+if test -z "$GOC"; then
+  AC_CHECK_PROG(GOC, gccgo, gccgo, false)
+fi
+])#m4_defun
+])#m4_ifndef
+
+
+# _LT_LANG_DEFAULT_CONFIG
+# -----------------------
+m4_defun([_LT_LANG_DEFAULT_CONFIG],
+[AC_PROVIDE_IFELSE([AC_PROG_CXX],
+  [LT_LANG(CXX)],
+  [m4_define([AC_PROG_CXX], defn([AC_PROG_CXX])[LT_LANG(CXX)])])
+
+AC_PROVIDE_IFELSE([AC_PROG_F77],
+  [LT_LANG(F77)],
+  [m4_define([AC_PROG_F77], defn([AC_PROG_F77])[LT_LANG(F77)])])
+
+AC_PROVIDE_IFELSE([AC_PROG_FC],
+  [LT_LANG(FC)],
+  [m4_define([AC_PROG_FC], defn([AC_PROG_FC])[LT_LANG(FC)])])
+
+dnl The call to [A][M_PROG_GCJ] is quoted like that to stop aclocal
+dnl pulling things in needlessly.
+AC_PROVIDE_IFELSE([AC_PROG_GCJ],
+  [LT_LANG(GCJ)],
+  [AC_PROVIDE_IFELSE([A][M_PROG_GCJ],
+    [LT_LANG(GCJ)],
+    [AC_PROVIDE_IFELSE([LT_PROG_GCJ],
+      [LT_LANG(GCJ)],
+      [m4_ifdef([AC_PROG_GCJ],
+       [m4_define([AC_PROG_GCJ], defn([AC_PROG_GCJ])[LT_LANG(GCJ)])])
+       m4_ifdef([A][M_PROG_GCJ],
+       [m4_define([A][M_PROG_GCJ], defn([A][M_PROG_GCJ])[LT_LANG(GCJ)])])
+       m4_ifdef([LT_PROG_GCJ],
+       [m4_define([LT_PROG_GCJ], defn([LT_PROG_GCJ])[LT_LANG(GCJ)])])])])])
+
+AC_PROVIDE_IFELSE([AC_PROG_GO],
+  [LT_LANG(GO)],
+  [m4_define([AC_PROG_GO], defn([AC_PROG_GO])[LT_LANG(GO)])])
+
+AC_PROVIDE_IFELSE([LT_PROG_RC],
+  [LT_LANG(RC)],
+  [m4_define([LT_PROG_RC], defn([LT_PROG_RC])[LT_LANG(RC)])])
+])# _LT_LANG_DEFAULT_CONFIG
+
+# Obsolete macros:
+AU_DEFUN([AC_LIBTOOL_CXX], [LT_LANG(C++)])
+AU_DEFUN([AC_LIBTOOL_F77], [LT_LANG(Fortran 77)])
+AU_DEFUN([AC_LIBTOOL_FC], [LT_LANG(Fortran)])
+AU_DEFUN([AC_LIBTOOL_GCJ], [LT_LANG(Java)])
+AU_DEFUN([AC_LIBTOOL_RC], [LT_LANG(Windows Resource)])
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([AC_LIBTOOL_CXX], [])
+dnl AC_DEFUN([AC_LIBTOOL_F77], [])
+dnl AC_DEFUN([AC_LIBTOOL_FC], [])
+dnl AC_DEFUN([AC_LIBTOOL_GCJ], [])
+dnl AC_DEFUN([AC_LIBTOOL_RC], [])
+
+
+# _LT_TAG_COMPILER
+# ----------------
+m4_defun([_LT_TAG_COMPILER],
+[AC_REQUIRE([AC_PROG_CC])dnl
+
+_LT_DECL([LTCC], [CC], [1], [A C compiler])dnl
+_LT_DECL([LTCFLAGS], [CFLAGS], [1], [LTCC compiler flags])dnl
+_LT_TAGDECL([CC], [compiler], [1], [A language specific compiler])dnl
+_LT_TAGDECL([with_gcc], [GCC], [0], [Is the compiler the GNU compiler?])dnl
+
+# If no C compiler was specified, use CC.
+LTCC=${LTCC-"$CC"}
+
+# If no C compiler flags were specified, use CFLAGS.
+LTCFLAGS=${LTCFLAGS-"$CFLAGS"}
+
+# Allow CC to be a program name with arguments.
+compiler=$CC
+])# _LT_TAG_COMPILER
+
+
+# _LT_COMPILER_BOILERPLATE
+# ------------------------
+# Check for compiler boilerplate output or warnings with
+# the simple compiler test code.
+m4_defun([_LT_COMPILER_BOILERPLATE],
+[m4_require([_LT_DECL_SED])dnl
+ac_outfile=conftest.$ac_objext
+echo "$lt_simple_compile_test_code" >conftest.$ac_ext
+eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
+_lt_compiler_boilerplate=`cat conftest.err`
+$RM conftest*
+])# _LT_COMPILER_BOILERPLATE
+
+
+# _LT_LINKER_BOILERPLATE
+# ----------------------
+# Check for linker boilerplate output or warnings with
+# the simple link test code.
+m4_defun([_LT_LINKER_BOILERPLATE],
+[m4_require([_LT_DECL_SED])dnl
+ac_outfile=conftest.$ac_objext
+echo "$lt_simple_link_test_code" >conftest.$ac_ext
+eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
+_lt_linker_boilerplate=`cat conftest.err`
+$RM -r conftest*
+])# _LT_LINKER_BOILERPLATE
+
+# _LT_REQUIRED_DARWIN_CHECKS
+# -------------------------
+m4_defun_once([_LT_REQUIRED_DARWIN_CHECKS],[
+  case $host_os in
+    rhapsody* | darwin*)
+    AC_CHECK_TOOL([DSYMUTIL], [dsymutil], [:])
+    AC_CHECK_TOOL([NMEDIT], [nmedit], [:])
+    AC_CHECK_TOOL([LIPO], [lipo], [:])
+    AC_CHECK_TOOL([OTOOL], [otool], [:])
+    AC_CHECK_TOOL([OTOOL64], [otool64], [:])
+    _LT_DECL([], [DSYMUTIL], [1],
+      [Tool to manipulate archived DWARF debug symbol files on Mac OS X])
+    _LT_DECL([], [NMEDIT], [1],
+      [Tool to change global to local symbols on Mac OS X])
+    _LT_DECL([], [LIPO], [1],
+      [Tool to manipulate fat objects and archives on Mac OS X])
+    _LT_DECL([], [OTOOL], [1],
+      [ldd/readelf like tool for Mach-O binaries on Mac OS X])
+    _LT_DECL([], [OTOOL64], [1],
+      [ldd/readelf like tool for 64 bit Mach-O binaries on Mac OS X 10.4])
+
+    AC_CACHE_CHECK([for -single_module linker flag],[lt_cv_apple_cc_single_mod],
+      [lt_cv_apple_cc_single_mod=no
+      if test -z "${LT_MULTI_MODULE}"; then
+       # By default we will add the -single_module flag. You can override
+       # by either setting the environment variable LT_MULTI_MODULE
+       # non-empty at configure time, or by adding -multi_module to the
+       # link flags.
+       rm -rf libconftest.dylib*
+       echo "int foo(void){return 1;}" > conftest.c
+       echo "$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \
+-dynamiclib -Wl,-single_module conftest.c" >&AS_MESSAGE_LOG_FD
+       $LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \
+         -dynamiclib -Wl,-single_module conftest.c 2>conftest.err
+        _lt_result=$?
+       # If there is a non-empty error log, and "single_module"
+       # appears in it, assume the flag caused a linker warning
+        if test -s conftest.err && $GREP single_module conftest.err; then
+         cat conftest.err >&AS_MESSAGE_LOG_FD
+       # Otherwise, if the output was created with a 0 exit code from
+       # the compiler, it worked.
+       elif test -f libconftest.dylib && test $_lt_result -eq 0; then
+         lt_cv_apple_cc_single_mod=yes
+       else
+         cat conftest.err >&AS_MESSAGE_LOG_FD
+       fi
+       rm -rf libconftest.dylib*
+       rm -f conftest.*
+      fi])
+
+    AC_CACHE_CHECK([for -exported_symbols_list linker flag],
+      [lt_cv_ld_exported_symbols_list],
+      [lt_cv_ld_exported_symbols_list=no
+      save_LDFLAGS=$LDFLAGS
+      echo "_main" > conftest.sym
+      LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym"
+      AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])],
+       [lt_cv_ld_exported_symbols_list=yes],
+       [lt_cv_ld_exported_symbols_list=no])
+       LDFLAGS="$save_LDFLAGS"
+    ])
+
+    AC_CACHE_CHECK([for -force_load linker flag],[lt_cv_ld_force_load],
+      [lt_cv_ld_force_load=no
+      cat > conftest.c << _LT_EOF
+int forced_loaded() { return 2;}
+_LT_EOF
+      echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&AS_MESSAGE_LOG_FD
+      $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&AS_MESSAGE_LOG_FD
+      echo "$AR cru libconftest.a conftest.o" >&AS_MESSAGE_LOG_FD
+      $AR cru libconftest.a conftest.o 2>&AS_MESSAGE_LOG_FD
+      echo "$RANLIB libconftest.a" >&AS_MESSAGE_LOG_FD
+      $RANLIB libconftest.a 2>&AS_MESSAGE_LOG_FD
+      cat > conftest.c << _LT_EOF
+int main() { return 0;}
+_LT_EOF
+      echo "$LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a" >&AS_MESSAGE_LOG_FD
+      $LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a 2>conftest.err
+      _lt_result=$?
+      if test -s conftest.err && $GREP force_load conftest.err; then
+       cat conftest.err >&AS_MESSAGE_LOG_FD
+      elif test -f conftest && test $_lt_result -eq 0 && $GREP forced_load conftest >/dev/null 2>&1 ; then
+       lt_cv_ld_force_load=yes
+      else
+       cat conftest.err >&AS_MESSAGE_LOG_FD
+      fi
+        rm -f conftest.err libconftest.a conftest conftest.c
+        rm -rf conftest.dSYM
+    ])
+    case $host_os in
+    rhapsody* | darwin1.[[012]])
+      _lt_dar_allow_undefined='${wl}-undefined ${wl}suppress' ;;
+    darwin1.*)
+      _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;;
+    darwin*) # darwin 5.x on
+      # if running on 10.5 or later, the deployment target defaults
+      # to the OS version, if on x86, and 10.4, the deployment
+      # target defaults to 10.4. Don't you love it?
+      case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in
+       10.0,*86*-darwin8*|10.0,*-darwin[[91]]*)
+         _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;;
+       10.[[012]]*)
+         _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;;
+       10.*)
+         _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;;
+      esac
+    ;;
+  esac
+    if test "$lt_cv_apple_cc_single_mod" = "yes"; then
+      _lt_dar_single_mod='$single_module'
+    fi
+    if test "$lt_cv_ld_exported_symbols_list" = "yes"; then
+      _lt_dar_export_syms=' ${wl}-exported_symbols_list,$output_objdir/${libname}-symbols.expsym'
+    else
+      _lt_dar_export_syms='~$NMEDIT -s $output_objdir/${libname}-symbols.expsym ${lib}'
+    fi
+    if test "$DSYMUTIL" != ":" && test "$lt_cv_ld_force_load" = "no"; then
+      _lt_dsymutil='~$DSYMUTIL $lib || :'
+    else
+      _lt_dsymutil=
+    fi
+    ;;
+  esac
+])
+
+
+# _LT_DARWIN_LINKER_FEATURES([TAG])
+# ---------------------------------
+# Checks for linker and compiler features on darwin
+m4_defun([_LT_DARWIN_LINKER_FEATURES],
+[
+  m4_require([_LT_REQUIRED_DARWIN_CHECKS])
+  _LT_TAGVAR(archive_cmds_need_lc, $1)=no
+  _LT_TAGVAR(hardcode_direct, $1)=no
+  _LT_TAGVAR(hardcode_automatic, $1)=yes
+  _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported
+  if test "$lt_cv_ld_force_load" = "yes"; then
+    _LT_TAGVAR(whole_archive_flag_spec, $1)='`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience ${wl}-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`'
+    m4_case([$1], [F77], [_LT_TAGVAR(compiler_needs_object, $1)=yes],
+                  [FC],  [_LT_TAGVAR(compiler_needs_object, $1)=yes])
+  else
+    _LT_TAGVAR(whole_archive_flag_spec, $1)=''
+  fi
+  _LT_TAGVAR(link_all_deplibs, $1)=yes
+  _LT_TAGVAR(allow_undefined_flag, $1)="$_lt_dar_allow_undefined"
+  case $cc_basename in
+     ifort*) _lt_dar_can_shared=yes ;;
+     *) _lt_dar_can_shared=$GCC ;;
+  esac
+  if test "$_lt_dar_can_shared" = "yes"; then
+    output_verbose_link_cmd=func_echo_all
+    _LT_TAGVAR(archive_cmds, $1)="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}"
+    _LT_TAGVAR(module_cmds, $1)="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
+    _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}"
+    _LT_TAGVAR(module_expsym_cmds, $1)="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}"
+    m4_if([$1], [CXX],
+[   if test "$lt_cv_apple_cc_single_mod" != "yes"; then
+      _LT_TAGVAR(archive_cmds, $1)="\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dsymutil}"
+      _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dar_export_syms}${_lt_dsymutil}"
+    fi
+],[])
+  else
+  _LT_TAGVAR(ld_shlibs, $1)=no
+  fi
+])
+
+# _LT_SYS_MODULE_PATH_AIX([TAGNAME])
+# ----------------------------------
+# Links a minimal program and checks the executable
+# for the system default hardcoded library path. In most cases,
+# this is /usr/lib:/lib, but when the MPI compilers are used
+# the location of the communication and MPI libs are included too.
+# If we don't find anything, use the default library path according
+# to the aix ld manual.
+# Store the results from the different compilers for each TAGNAME.
+# Allow to override them for all tags through lt_cv_aix_libpath.
+m4_defun([_LT_SYS_MODULE_PATH_AIX],
+[m4_require([_LT_DECL_SED])dnl
+if test "${lt_cv_aix_libpath+set}" = set; then
+  aix_libpath=$lt_cv_aix_libpath
+else
+  AC_CACHE_VAL([_LT_TAGVAR([lt_cv_aix_libpath_], [$1])],
+  [AC_LINK_IFELSE([AC_LANG_PROGRAM],[
+  lt_aix_libpath_sed='[
+      /Import File Strings/,/^$/ {
+         /^0/ {
+             s/^0  *\([^ ]*\) *$/\1/
+             p
+         }
+      }]'
+  _LT_TAGVAR([lt_cv_aix_libpath_], [$1])=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+  # Check for a 64-bit object if we didn't find anything.
+  if test -z "$_LT_TAGVAR([lt_cv_aix_libpath_], [$1])"; then
+    _LT_TAGVAR([lt_cv_aix_libpath_], [$1])=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+  fi],[])
+  if test -z "$_LT_TAGVAR([lt_cv_aix_libpath_], [$1])"; then
+    _LT_TAGVAR([lt_cv_aix_libpath_], [$1])="/usr/lib:/lib"
+  fi
+  ])
+  aix_libpath=$_LT_TAGVAR([lt_cv_aix_libpath_], [$1])
+fi
+])# _LT_SYS_MODULE_PATH_AIX
+
+
+# _LT_SHELL_INIT(ARG)
+# -------------------
+m4_define([_LT_SHELL_INIT],
+[m4_divert_text([M4SH-INIT], [$1
+])])# _LT_SHELL_INIT
+
+
+
+# _LT_PROG_ECHO_BACKSLASH
+# -----------------------
+# Find how we can fake an echo command that does not interpret backslash.
+# In particular, with Autoconf 2.60 or later we add some code to the start
+# of the generated configure script which will find a shell with a builtin
+# printf (which we can use as an echo command).
+m4_defun([_LT_PROG_ECHO_BACKSLASH],
+[ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
+ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO
+ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO
+
+AC_MSG_CHECKING([how to print strings])
+# Test print first, because it will be a builtin if present.
+if test "X`( print -r -- -n ) 2>/dev/null`" = X-n && \
+   test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then
+  ECHO='print -r --'
+elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then
+  ECHO='printf %s\n'
+else
+  # Use this function as a fallback that always works.
+  func_fallback_echo ()
+  {
+    eval 'cat <<_LTECHO_EOF
+$[]1
+_LTECHO_EOF'
+  }
+  ECHO='func_fallback_echo'
+fi
+
+# func_echo_all arg...
+# Invoke $ECHO with all args, space-separated.
+func_echo_all ()
+{
+    $ECHO "$*" 
+}
+
+case "$ECHO" in
+  printf*) AC_MSG_RESULT([printf]) ;;
+  print*) AC_MSG_RESULT([print -r]) ;;
+  *) AC_MSG_RESULT([cat]) ;;
+esac
+
+m4_ifdef([_AS_DETECT_SUGGESTED],
+[_AS_DETECT_SUGGESTED([
+  test -n "${ZSH_VERSION+set}${BASH_VERSION+set}" || (
+    ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
+    ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO
+    ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO
+    PATH=/empty FPATH=/empty; export PATH FPATH
+    test "X`printf %s $ECHO`" = "X$ECHO" \
+      || test "X`print -r -- $ECHO`" = "X$ECHO" )])])
+
+_LT_DECL([], [SHELL], [1], [Shell to use when invoking shell scripts])
+_LT_DECL([], [ECHO], [1], [An echo program that protects backslashes])
+])# _LT_PROG_ECHO_BACKSLASH
+
+
+# _LT_WITH_SYSROOT
+# ----------------
+AC_DEFUN([_LT_WITH_SYSROOT],
+[AC_MSG_CHECKING([for sysroot])
+AC_ARG_WITH([sysroot],
+[  --with-sysroot[=DIR] Search for dependent libraries within DIR
+                        (or the compiler's sysroot if not specified).],
+[], [with_sysroot=no])
+
+dnl lt_sysroot will always be passed unquoted.  We quote it here
+dnl in case the user passed a directory name.
+lt_sysroot=
+case ${with_sysroot} in #(
+ yes)
+   if test "$GCC" = yes; then
+     lt_sysroot=`$CC --print-sysroot 2>/dev/null`
+   fi
+   ;; #(
+ /*)
+   lt_sysroot=`echo "$with_sysroot" | sed -e "$sed_quote_subst"`
+   ;; #(
+ no|'')
+   ;; #(
+ *)
+   AC_MSG_RESULT([${with_sysroot}])
+   AC_MSG_ERROR([The sysroot must be an absolute path.])
+   ;;
+esac
+
+ AC_MSG_RESULT([${lt_sysroot:-no}])
+_LT_DECL([], [lt_sysroot], [0], [The root where to search for ]dnl
+[dependent libraries, and in which our libraries should be installed.])])
+
+# _LT_ENABLE_LOCK
+# ---------------
+m4_defun([_LT_ENABLE_LOCK],
+[AC_ARG_ENABLE([libtool-lock],
+  [AS_HELP_STRING([--disable-libtool-lock],
+    [avoid locking (might break parallel builds)])])
+test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes
+
+# Some flags need to be propagated to the compiler or linker for good
+# libtool support.
+case $host in
+ia64-*-hpux*)
+  # Find out which ABI we are using.
+  echo 'int i;' > conftest.$ac_ext
+  if AC_TRY_EVAL(ac_compile); then
+    case `/usr/bin/file conftest.$ac_objext` in
+      *ELF-32*)
+       HPUX_IA64_MODE="32"
+       ;;
+      *ELF-64*)
+       HPUX_IA64_MODE="64"
+       ;;
+    esac
+  fi
+  rm -rf conftest*
+  ;;
+*-*-irix6*)
+  # Find out which ABI we are using.
+  echo '[#]line '$LINENO' "configure"' > conftest.$ac_ext
+  if AC_TRY_EVAL(ac_compile); then
+    if test "$lt_cv_prog_gnu_ld" = yes; then
+      case `/usr/bin/file conftest.$ac_objext` in
+       *32-bit*)
+         LD="${LD-ld} -melf32bsmip"
+         ;;
+       *N32*)
+         LD="${LD-ld} -melf32bmipn32"
+         ;;
+       *64-bit*)
+         LD="${LD-ld} -melf64bmip"
+       ;;
+      esac
+    else
+      case `/usr/bin/file conftest.$ac_objext` in
+       *32-bit*)
+         LD="${LD-ld} -32"
+         ;;
+       *N32*)
+         LD="${LD-ld} -n32"
+         ;;
+       *64-bit*)
+         LD="${LD-ld} -64"
+         ;;
+      esac
+    fi
+  fi
+  rm -rf conftest*
+  ;;
+
+x86_64-*kfreebsd*-gnu|x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*| \
+s390*-*linux*|s390*-*tpf*|sparc*-*linux*)
+  # Find out which ABI we are using.
+  echo 'int i;' > conftest.$ac_ext
+  if AC_TRY_EVAL(ac_compile); then
+    case `/usr/bin/file conftest.o` in
+      *32-bit*)
+       case $host in
+         x86_64-*kfreebsd*-gnu)
+           LD="${LD-ld} -m elf_i386_fbsd"
+           ;;
+         x86_64-*linux*)
+           LD="${LD-ld} -m elf_i386"
+           ;;
+         ppc64-*linux*|powerpc64-*linux*)
+           LD="${LD-ld} -m elf32ppclinux"
+           ;;
+         s390x-*linux*)
+           LD="${LD-ld} -m elf_s390"
+           ;;
+         sparc64-*linux*)
+           LD="${LD-ld} -m elf32_sparc"
+           ;;
+       esac
+       ;;
+      *64-bit*)
+       case $host in
+         x86_64-*kfreebsd*-gnu)
+           LD="${LD-ld} -m elf_x86_64_fbsd"
+           ;;
+         x86_64-*linux*)
+           LD="${LD-ld} -m elf_x86_64"
+           ;;
+         ppc*-*linux*|powerpc*-*linux*)
+           LD="${LD-ld} -m elf64ppc"
+           ;;
+         s390*-*linux*|s390*-*tpf*)
+           LD="${LD-ld} -m elf64_s390"
+           ;;
+         sparc*-*linux*)
+           LD="${LD-ld} -m elf64_sparc"
+           ;;
+       esac
+       ;;
+    esac
+  fi
+  rm -rf conftest*
+  ;;
+
+*-*-sco3.2v5*)
+  # On SCO OpenServer 5, we need -belf to get full-featured binaries.
+  SAVE_CFLAGS="$CFLAGS"
+  CFLAGS="$CFLAGS -belf"
+  AC_CACHE_CHECK([whether the C compiler needs -belf], lt_cv_cc_needs_belf,
+    [AC_LANG_PUSH(C)
+     AC_LINK_IFELSE([AC_LANG_PROGRAM([[]],[[]])],[lt_cv_cc_needs_belf=yes],[lt_cv_cc_needs_belf=no])
+     AC_LANG_POP])
+  if test x"$lt_cv_cc_needs_belf" != x"yes"; then
+    # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf
+    CFLAGS="$SAVE_CFLAGS"
+  fi
+  ;;
+*-*solaris*)
+  # Find out which ABI we are using.
+  echo 'int i;' > conftest.$ac_ext
+  if AC_TRY_EVAL(ac_compile); then
+    case `/usr/bin/file conftest.o` in
+    *64-bit*)
+      case $lt_cv_prog_gnu_ld in
+      yes*)
+        case $host in
+        i?86-*-solaris*)
+          LD="${LD-ld} -m elf_x86_64"
+          ;;
+        sparc*-*-solaris*)
+          LD="${LD-ld} -m elf64_sparc"
+          ;;
+        esac
+        # GNU ld 2.21 introduced _sol2 emulations.  Use them if available.
+        if ${LD-ld} -V | grep _sol2 >/dev/null 2>&1; then
+          LD="${LD-ld}_sol2"
+        fi
+        ;;
+      *)
+       if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then
+         LD="${LD-ld} -64"
+       fi
+       ;;
+      esac
+      ;;
+    esac
+  fi
+  rm -rf conftest*
+  ;;
+esac
+
+need_locks="$enable_libtool_lock"
+])# _LT_ENABLE_LOCK
+
+
+# _LT_PROG_AR
+# -----------
+m4_defun([_LT_PROG_AR],
+[AC_CHECK_TOOLS(AR, [ar], false)
+: ${AR=ar}
+: ${AR_FLAGS=cru}
+_LT_DECL([], [AR], [1], [The archiver])
+_LT_DECL([], [AR_FLAGS], [1], [Flags to create an archive])
+
+AC_CACHE_CHECK([for archiver @FILE support], [lt_cv_ar_at_file],
+  [lt_cv_ar_at_file=no
+   AC_COMPILE_IFELSE([AC_LANG_PROGRAM],
+     [echo conftest.$ac_objext > conftest.lst
+      lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&AS_MESSAGE_LOG_FD'
+      AC_TRY_EVAL([lt_ar_try])
+      if test "$ac_status" -eq 0; then
+       # Ensure the archiver fails upon bogus file names.
+       rm -f conftest.$ac_objext libconftest.a
+       AC_TRY_EVAL([lt_ar_try])
+       if test "$ac_status" -ne 0; then
+          lt_cv_ar_at_file=@
+        fi
+      fi
+      rm -f conftest.* libconftest.a
+     ])
+  ])
+
+if test "x$lt_cv_ar_at_file" = xno; then
+  archiver_list_spec=
+else
+  archiver_list_spec=$lt_cv_ar_at_file
+fi
+_LT_DECL([], [archiver_list_spec], [1],
+  [How to feed a file listing to the archiver])
+])# _LT_PROG_AR
+
+
+# _LT_CMD_OLD_ARCHIVE
+# -------------------
+m4_defun([_LT_CMD_OLD_ARCHIVE],
+[_LT_PROG_AR
+
+AC_CHECK_TOOL(STRIP, strip, :)
+test -z "$STRIP" && STRIP=:
+_LT_DECL([], [STRIP], [1], [A symbol stripping program])
+
+AC_CHECK_TOOL(RANLIB, ranlib, :)
+test -z "$RANLIB" && RANLIB=:
+_LT_DECL([], [RANLIB], [1],
+    [Commands used to install an old-style archive])
+
+# Determine commands to create old-style static archives.
+old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs'
+old_postinstall_cmds='chmod 644 $oldlib'
+old_postuninstall_cmds=
+
+if test -n "$RANLIB"; then
+  case $host_os in
+  openbsd*)
+    old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$tool_oldlib"
+    ;;
+  *)
+    old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$tool_oldlib"
+    ;;
+  esac
+  old_archive_cmds="$old_archive_cmds~\$RANLIB \$tool_oldlib"
+fi
+
+case $host_os in
+  darwin*)
+    lock_old_archive_extraction=yes ;;
+  *)
+    lock_old_archive_extraction=no ;;
+esac
+_LT_DECL([], [old_postinstall_cmds], [2])
+_LT_DECL([], [old_postuninstall_cmds], [2])
+_LT_TAGDECL([], [old_archive_cmds], [2],
+    [Commands used to build an old-style archive])
+_LT_DECL([], [lock_old_archive_extraction], [0],
+    [Whether to use a lock for old archive extraction])
+])# _LT_CMD_OLD_ARCHIVE
+
+
+# _LT_COMPILER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS,
+#              [OUTPUT-FILE], [ACTION-SUCCESS], [ACTION-FAILURE])
+# ----------------------------------------------------------------
+# Check whether the given compiler option works
+AC_DEFUN([_LT_COMPILER_OPTION],
+[m4_require([_LT_FILEUTILS_DEFAULTS])dnl
+m4_require([_LT_DECL_SED])dnl
+AC_CACHE_CHECK([$1], [$2],
+  [$2=no
+   m4_if([$4], , [ac_outfile=conftest.$ac_objext], [ac_outfile=$4])
+   echo "$lt_simple_compile_test_code" > conftest.$ac_ext
+   lt_compiler_flag="$3"
+   # Insert the option either (1) after the last *FLAGS variable, or
+   # (2) before a word containing "conftest.", or (3) at the end.
+   # Note that $ac_compile itself does not contain backslashes and begins
+   # with a dollar sign (not a hyphen), so the echo should work correctly.
+   # The option is referenced via a variable to avoid confusing sed.
+   lt_compile=`echo "$ac_compile" | $SED \
+   -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
+   -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \
+   -e 's:$: $lt_compiler_flag:'`
+   (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&AS_MESSAGE_LOG_FD)
+   (eval "$lt_compile" 2>conftest.err)
+   ac_status=$?
+   cat conftest.err >&AS_MESSAGE_LOG_FD
+   echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD
+   if (exit $ac_status) && test -s "$ac_outfile"; then
+     # The compiler can only warn and ignore the option if not recognized
+     # So say no if there are warnings other than the usual output.
+     $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp
+     $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
+     if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then
+       $2=yes
+     fi
+   fi
+   $RM conftest*
+])
+
+if test x"[$]$2" = xyes; then
+    m4_if([$5], , :, [$5])
+else
+    m4_if([$6], , :, [$6])
+fi
+])# _LT_COMPILER_OPTION
+
+# Old name:
+AU_ALIAS([AC_LIBTOOL_COMPILER_OPTION], [_LT_COMPILER_OPTION])
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([AC_LIBTOOL_COMPILER_OPTION], [])
+
+
+# _LT_LINKER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS,
+#                  [ACTION-SUCCESS], [ACTION-FAILURE])
+# ----------------------------------------------------
+# Check whether the given linker option works
+AC_DEFUN([_LT_LINKER_OPTION],
+[m4_require([_LT_FILEUTILS_DEFAULTS])dnl
+m4_require([_LT_DECL_SED])dnl
+AC_CACHE_CHECK([$1], [$2],
+  [$2=no
+   save_LDFLAGS="$LDFLAGS"
+   LDFLAGS="$LDFLAGS $3"
+   echo "$lt_simple_link_test_code" > conftest.$ac_ext
+   if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then
+     # The linker can only warn and ignore the option if not recognized
+     # So say no if there are warnings
+     if test -s conftest.err; then
+       # Append any errors to the config.log.
+       cat conftest.err 1>&AS_MESSAGE_LOG_FD
+       $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp
+       $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
+       if diff conftest.exp conftest.er2 >/dev/null; then
+         $2=yes
+       fi
+     else
+       $2=yes
+     fi
+   fi
+   $RM -r conftest*
+   LDFLAGS="$save_LDFLAGS"
+])
+
+if test x"[$]$2" = xyes; then
+    m4_if([$4], , :, [$4])
+else
+    m4_if([$5], , :, [$5])
+fi
+])# _LT_LINKER_OPTION
+
+# Old name:
+AU_ALIAS([AC_LIBTOOL_LINKER_OPTION], [_LT_LINKER_OPTION])
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([AC_LIBTOOL_LINKER_OPTION], [])
+
+
+# LT_CMD_MAX_LEN
+#---------------
+AC_DEFUN([LT_CMD_MAX_LEN],
+[AC_REQUIRE([AC_CANONICAL_HOST])dnl
+# find the maximum length of command line arguments
+AC_MSG_CHECKING([the maximum length of command line arguments])
+AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [dnl
+  i=0
+  teststring="ABCD"
+
+  case $build_os in
+  msdosdjgpp*)
+    # On DJGPP, this test can blow up pretty badly due to problems in libc
+    # (any single argument exceeding 2000 bytes causes a buffer overrun
+    # during glob expansion).  Even if it were fixed, the result of this
+    # check would be larger than it should be.
+    lt_cv_sys_max_cmd_len=12288;    # 12K is about right
+    ;;
+
+  gnu*)
+    # Under GNU Hurd, this test is not required because there is
+    # no limit to the length of command line arguments.
+    # Libtool will interpret -1 as no limit whatsoever
+    lt_cv_sys_max_cmd_len=-1;
+    ;;
+
+  cygwin* | mingw* | cegcc*)
+    # On Win9x/ME, this test blows up -- it succeeds, but takes
+    # about 5 minutes as the teststring grows exponentially.
+    # Worse, since 9x/ME are not pre-emptively multitasking,
+    # you end up with a "frozen" computer, even though with patience
+    # the test eventually succeeds (with a max line length of 256k).
+    # Instead, let's just punt: use the minimum linelength reported by
+    # all of the supported platforms: 8192 (on NT/2K/XP).
+    lt_cv_sys_max_cmd_len=8192;
+    ;;
+
+  mint*)
+    # On MiNT this can take a long time and run out of memory.
+    lt_cv_sys_max_cmd_len=8192;
+    ;;
+
+  amigaos*)
+    # On AmigaOS with pdksh, this test takes hours, literally.
+    # So we just punt and use a minimum line length of 8192.
+    lt_cv_sys_max_cmd_len=8192;
+    ;;
+
+  netbsd* | freebsd* | openbsd* | darwin* | dragonfly*)
+    # This has been around since 386BSD, at least.  Likely further.
+    if test -x /sbin/sysctl; then
+      lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax`
+    elif test -x /usr/sbin/sysctl; then
+      lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax`
+    else
+      lt_cv_sys_max_cmd_len=65536      # usable default for all BSDs
+    fi
+    # And add a safety zone
+    lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4`
+    lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3`
+    ;;
+
+  interix*)
+    # We know the value 262144 and hardcode it with a safety zone (like BSD)
+    lt_cv_sys_max_cmd_len=196608
+    ;;
+
+  os2*)
+    # The test takes a long time on OS/2.
+    lt_cv_sys_max_cmd_len=8192
+    ;;
+
+  osf*)
+    # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure
+    # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not
+    # nice to cause kernel panics so lets avoid the loop below.
+    # First set a reasonable default.
+    lt_cv_sys_max_cmd_len=16384
+    #
+    if test -x /sbin/sysconfig; then
+      case `/sbin/sysconfig -q proc exec_disable_arg_limit` in
+        *1*) lt_cv_sys_max_cmd_len=-1 ;;
+      esac
+    fi
+    ;;
+  sco3.2v5*)
+    lt_cv_sys_max_cmd_len=102400
+    ;;
+  sysv5* | sco5v6* | sysv4.2uw2*)
+    kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null`
+    if test -n "$kargmax"; then
+      lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[[        ]]//'`
+    else
+      lt_cv_sys_max_cmd_len=32768
+    fi
+    ;;
+  *)
+    lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null`
+    if test -n "$lt_cv_sys_max_cmd_len"; then
+      lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4`
+      lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3`
+    else
+      # Make teststring a little bigger before we do anything with it.
+      # a 1K string should be a reasonable start.
+      for i in 1 2 3 4 5 6 7 8 ; do
+        teststring=$teststring$teststring
+      done
+      SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}}
+      # If test is not a shell built-in, we'll probably end up computing a
+      # maximum length that is only half of the actual maximum length, but
+      # we can't tell.
+      while { test "X"`env echo "$teststring$teststring" 2>/dev/null` \
+                = "X$teststring$teststring"; } >/dev/null 2>&1 &&
+             test $i != 17 # 1/2 MB should be enough
+      do
+        i=`expr $i + 1`
+        teststring=$teststring$teststring
+      done
+      # Only check the string length outside the loop.
+      lt_cv_sys_max_cmd_len=`expr "X$teststring" : ".*" 2>&1`
+      teststring=
+      # Add a significant safety factor because C++ compilers can tack on
+      # massive amounts of additional arguments before passing them to the
+      # linker.  It appears as though 1/2 is a usable value.
+      lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2`
+    fi
+    ;;
+  esac
+])
+if test -n $lt_cv_sys_max_cmd_len ; then
+  AC_MSG_RESULT($lt_cv_sys_max_cmd_len)
+else
+  AC_MSG_RESULT(none)
+fi
+max_cmd_len=$lt_cv_sys_max_cmd_len
+_LT_DECL([], [max_cmd_len], [0],
+    [What is the maximum length of a command?])
+])# LT_CMD_MAX_LEN
+
+# Old name:
+AU_ALIAS([AC_LIBTOOL_SYS_MAX_CMD_LEN], [LT_CMD_MAX_LEN])
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([AC_LIBTOOL_SYS_MAX_CMD_LEN], [])
+
+
+# _LT_HEADER_DLFCN
+# ----------------
+m4_defun([_LT_HEADER_DLFCN],
+[AC_CHECK_HEADERS([dlfcn.h], [], [], [AC_INCLUDES_DEFAULT])dnl
+])# _LT_HEADER_DLFCN
+
+
+# _LT_TRY_DLOPEN_SELF (ACTION-IF-TRUE, ACTION-IF-TRUE-W-USCORE,
+#                      ACTION-IF-FALSE, ACTION-IF-CROSS-COMPILING)
+# ----------------------------------------------------------------
+m4_defun([_LT_TRY_DLOPEN_SELF],
+[m4_require([_LT_HEADER_DLFCN])dnl
+if test "$cross_compiling" = yes; then :
+  [$4]
+else
+  lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
+  lt_status=$lt_dlunknown
+  cat > conftest.$ac_ext <<_LT_EOF
+[#line $LINENO "configure"
+#include "confdefs.h"
+
+#if HAVE_DLFCN_H
+#include <dlfcn.h>
+#endif
+
+#include <stdio.h>
+
+#ifdef RTLD_GLOBAL
+#  define LT_DLGLOBAL          RTLD_GLOBAL
+#else
+#  ifdef DL_GLOBAL
+#    define LT_DLGLOBAL                DL_GLOBAL
+#  else
+#    define LT_DLGLOBAL                0
+#  endif
+#endif
+
+/* We may have to define LT_DLLAZY_OR_NOW in the command line if we
+   find out it does not work in some platform. */
+#ifndef LT_DLLAZY_OR_NOW
+#  ifdef RTLD_LAZY
+#    define LT_DLLAZY_OR_NOW           RTLD_LAZY
+#  else
+#    ifdef DL_LAZY
+#      define LT_DLLAZY_OR_NOW         DL_LAZY
+#    else
+#      ifdef RTLD_NOW
+#        define LT_DLLAZY_OR_NOW       RTLD_NOW
+#      else
+#        ifdef DL_NOW
+#          define LT_DLLAZY_OR_NOW     DL_NOW
+#        else
+#          define LT_DLLAZY_OR_NOW     0
+#        endif
+#      endif
+#    endif
+#  endif
+#endif
+
+/* When -fvisbility=hidden is used, assume the code has been annotated
+   correspondingly for the symbols needed.  */
+#if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3))
+int fnord () __attribute__((visibility("default")));
+#endif
+
+int fnord () { return 42; }
+int main ()
+{
+  void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
+  int status = $lt_dlunknown;
+
+  if (self)
+    {
+      if (dlsym (self,"fnord"))       status = $lt_dlno_uscore;
+      else
+        {
+         if (dlsym( self,"_fnord"))  status = $lt_dlneed_uscore;
+          else puts (dlerror ());
+       }
+      /* dlclose (self); */
+    }
+  else
+    puts (dlerror ());
+
+  return status;
+}]
+_LT_EOF
+  if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext} 2>/dev/null; then
+    (./conftest; exit; ) >&AS_MESSAGE_LOG_FD 2>/dev/null
+    lt_status=$?
+    case x$lt_status in
+      x$lt_dlno_uscore) $1 ;;
+      x$lt_dlneed_uscore) $2 ;;
+      x$lt_dlunknown|x*) $3 ;;
+    esac
+  else :
+    # compilation failed
+    $3
+  fi
+fi
+rm -fr conftest*
+])# _LT_TRY_DLOPEN_SELF
+
+
+# LT_SYS_DLOPEN_SELF
+# ------------------
+AC_DEFUN([LT_SYS_DLOPEN_SELF],
+[m4_require([_LT_HEADER_DLFCN])dnl
+if test "x$enable_dlopen" != xyes; then
+  enable_dlopen=unknown
+  enable_dlopen_self=unknown
+  enable_dlopen_self_static=unknown
+else
+  lt_cv_dlopen=no
+  lt_cv_dlopen_libs=
+
+  case $host_os in
+  beos*)
+    lt_cv_dlopen="load_add_on"
+    lt_cv_dlopen_libs=
+    lt_cv_dlopen_self=yes
+    ;;
+
+  mingw* | pw32* | cegcc*)
+    lt_cv_dlopen="LoadLibrary"
+    lt_cv_dlopen_libs=
+    ;;
+
+  cygwin*)
+    lt_cv_dlopen="dlopen"
+    lt_cv_dlopen_libs=
+    ;;
+
+  darwin*)
+  # if libdl is installed we need to link against it
+    AC_CHECK_LIB([dl], [dlopen],
+               [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"],[
+    lt_cv_dlopen="dyld"
+    lt_cv_dlopen_libs=
+    lt_cv_dlopen_self=yes
+    ])
+    ;;
+
+  *)
+    AC_CHECK_FUNC([shl_load],
+         [lt_cv_dlopen="shl_load"],
+      [AC_CHECK_LIB([dld], [shl_load],
+           [lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-ldld"],
+       [AC_CHECK_FUNC([dlopen],
+             [lt_cv_dlopen="dlopen"],
+         [AC_CHECK_LIB([dl], [dlopen],
+               [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"],
+           [AC_CHECK_LIB([svld], [dlopen],
+                 [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld"],
+             [AC_CHECK_LIB([dld], [dld_link],
+                   [lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-ldld"])
+             ])
+           ])
+         ])
+       ])
+      ])
+    ;;
+  esac
+
+  if test "x$lt_cv_dlopen" != xno; then
+    enable_dlopen=yes
+  else
+    enable_dlopen=no
+  fi
+
+  case $lt_cv_dlopen in
+  dlopen)
+    save_CPPFLAGS="$CPPFLAGS"
+    test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H"
+
+    save_LDFLAGS="$LDFLAGS"
+    wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\"
+
+    save_LIBS="$LIBS"
+    LIBS="$lt_cv_dlopen_libs $LIBS"
+
+    AC_CACHE_CHECK([whether a program can dlopen itself],
+         lt_cv_dlopen_self, [dnl
+         _LT_TRY_DLOPEN_SELF(
+           lt_cv_dlopen_self=yes, lt_cv_dlopen_self=yes,
+           lt_cv_dlopen_self=no, lt_cv_dlopen_self=cross)
+    ])
+
+    if test "x$lt_cv_dlopen_self" = xyes; then
+      wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\"
+      AC_CACHE_CHECK([whether a statically linked program can dlopen itself],
+         lt_cv_dlopen_self_static, [dnl
+         _LT_TRY_DLOPEN_SELF(
+           lt_cv_dlopen_self_static=yes, lt_cv_dlopen_self_static=yes,
+           lt_cv_dlopen_self_static=no,  lt_cv_dlopen_self_static=cross)
+      ])
+    fi
+
+    CPPFLAGS="$save_CPPFLAGS"
+    LDFLAGS="$save_LDFLAGS"
+    LIBS="$save_LIBS"
+    ;;
+  esac
+
+  case $lt_cv_dlopen_self in
+  yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;;
+  *) enable_dlopen_self=unknown ;;
+  esac
+
+  case $lt_cv_dlopen_self_static in
+  yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;;
+  *) enable_dlopen_self_static=unknown ;;
+  esac
+fi
+_LT_DECL([dlopen_support], [enable_dlopen], [0],
+        [Whether dlopen is supported])
+_LT_DECL([dlopen_self], [enable_dlopen_self], [0],
+        [Whether dlopen of programs is supported])
+_LT_DECL([dlopen_self_static], [enable_dlopen_self_static], [0],
+        [Whether dlopen of statically linked programs is supported])
+])# LT_SYS_DLOPEN_SELF
+
+# Old name:
+AU_ALIAS([AC_LIBTOOL_DLOPEN_SELF], [LT_SYS_DLOPEN_SELF])
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([AC_LIBTOOL_DLOPEN_SELF], [])
+
+
+# _LT_COMPILER_C_O([TAGNAME])
+# ---------------------------
+# Check to see if options -c and -o are simultaneously supported by compiler.
+# This macro does not hard code the compiler like AC_PROG_CC_C_O.
+m4_defun([_LT_COMPILER_C_O],
+[m4_require([_LT_DECL_SED])dnl
+m4_require([_LT_FILEUTILS_DEFAULTS])dnl
+m4_require([_LT_TAG_COMPILER])dnl
+AC_CACHE_CHECK([if $compiler supports -c -o file.$ac_objext],
+  [_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)],
+  [_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=no
+   $RM -r conftest 2>/dev/null
+   mkdir conftest
+   cd conftest
+   mkdir out
+   echo "$lt_simple_compile_test_code" > conftest.$ac_ext
+
+   lt_compiler_flag="-o out/conftest2.$ac_objext"
+   # Insert the option either (1) after the last *FLAGS variable, or
+   # (2) before a word containing "conftest.", or (3) at the end.
+   # Note that $ac_compile itself does not contain backslashes and begins
+   # with a dollar sign (not a hyphen), so the echo should work correctly.
+   lt_compile=`echo "$ac_compile" | $SED \
+   -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
+   -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \
+   -e 's:$: $lt_compiler_flag:'`
+   (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&AS_MESSAGE_LOG_FD)
+   (eval "$lt_compile" 2>out/conftest.err)
+   ac_status=$?
+   cat out/conftest.err >&AS_MESSAGE_LOG_FD
+   echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD
+   if (exit $ac_status) && test -s out/conftest2.$ac_objext
+   then
+     # The compiler can only warn and ignore the option if not recognized
+     # So say no if there are warnings
+     $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp
+     $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2
+     if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then
+       _LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes
+     fi
+   fi
+   chmod u+w . 2>&AS_MESSAGE_LOG_FD
+   $RM conftest*
+   # SGI C++ compiler will create directory out/ii_files/ for
+   # template instantiation
+   test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files
+   $RM out/* && rmdir out
+   cd ..
+   $RM -r conftest
+   $RM conftest*
+])
+_LT_TAGDECL([compiler_c_o], [lt_cv_prog_compiler_c_o], [1],
+       [Does compiler simultaneously support -c and -o options?])
+])# _LT_COMPILER_C_O
+
+
+# _LT_COMPILER_FILE_LOCKS([TAGNAME])
+# ----------------------------------
+# Check to see if we can do hard links to lock some files if needed
+m4_defun([_LT_COMPILER_FILE_LOCKS],
+[m4_require([_LT_ENABLE_LOCK])dnl
+m4_require([_LT_FILEUTILS_DEFAULTS])dnl
+_LT_COMPILER_C_O([$1])
+
+hard_links="nottested"
+if test "$_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)" = no && test "$need_locks" != no; then
+  # do not overwrite the value of need_locks provided by the user
+  AC_MSG_CHECKING([if we can lock with hard links])
+  hard_links=yes
+  $RM conftest*
+  ln conftest.a conftest.b 2>/dev/null && hard_links=no
+  touch conftest.a
+  ln conftest.a conftest.b 2>&5 || hard_links=no
+  ln conftest.a conftest.b 2>/dev/null && hard_links=no
+  AC_MSG_RESULT([$hard_links])
+  if test "$hard_links" = no; then
+    AC_MSG_WARN([`$CC' does not support `-c -o', so `make -j' may be unsafe])
+    need_locks=warn
+  fi
+else
+  need_locks=no
+fi
+_LT_DECL([], [need_locks], [1], [Must we lock files when doing compilation?])
+])# _LT_COMPILER_FILE_LOCKS
+
+
+# _LT_CHECK_OBJDIR
+# ----------------
+m4_defun([_LT_CHECK_OBJDIR],
+[AC_CACHE_CHECK([for objdir], [lt_cv_objdir],
+[rm -f .libs 2>/dev/null
+mkdir .libs 2>/dev/null
+if test -d .libs; then
+  lt_cv_objdir=.libs
+else
+  # MS-DOS does not allow filenames that begin with a dot.
+  lt_cv_objdir=_libs
+fi
+rmdir .libs 2>/dev/null])
+objdir=$lt_cv_objdir
+_LT_DECL([], [objdir], [0],
+         [The name of the directory that contains temporary libtool files])dnl
+m4_pattern_allow([LT_OBJDIR])dnl
+AC_DEFINE_UNQUOTED(LT_OBJDIR, "$lt_cv_objdir/",
+  [Define to the sub-directory in which libtool stores uninstalled libraries.])
+])# _LT_CHECK_OBJDIR
+
+
+# _LT_LINKER_HARDCODE_LIBPATH([TAGNAME])
+# --------------------------------------
+# Check hardcoding attributes.
+m4_defun([_LT_LINKER_HARDCODE_LIBPATH],
+[AC_MSG_CHECKING([how to hardcode library paths into programs])
+_LT_TAGVAR(hardcode_action, $1)=
+if test -n "$_LT_TAGVAR(hardcode_libdir_flag_spec, $1)" ||
+   test -n "$_LT_TAGVAR(runpath_var, $1)" ||
+   test "X$_LT_TAGVAR(hardcode_automatic, $1)" = "Xyes" ; then
+
+  # We can hardcode non-existent directories.
+  if test "$_LT_TAGVAR(hardcode_direct, $1)" != no &&
+     # If the only mechanism to avoid hardcoding is shlibpath_var, we
+     # have to relink, otherwise we might link with an installed library
+     # when we should be linking with a yet-to-be-installed one
+     ## test "$_LT_TAGVAR(hardcode_shlibpath_var, $1)" != no &&
+     test "$_LT_TAGVAR(hardcode_minus_L, $1)" != no; then
+    # Linking always hardcodes the temporary library directory.
+    _LT_TAGVAR(hardcode_action, $1)=relink
+  else
+    # We can link without hardcoding, and we can hardcode nonexisting dirs.
+    _LT_TAGVAR(hardcode_action, $1)=immediate
+  fi
+else
+  # We cannot hardcode anything, or else we can only hardcode existing
+  # directories.
+  _LT_TAGVAR(hardcode_action, $1)=unsupported
+fi
+AC_MSG_RESULT([$_LT_TAGVAR(hardcode_action, $1)])
+
+if test "$_LT_TAGVAR(hardcode_action, $1)" = relink ||
+   test "$_LT_TAGVAR(inherit_rpath, $1)" = yes; then
+  # Fast installation is not supported
+  enable_fast_install=no
+elif test "$shlibpath_overrides_runpath" = yes ||
+     test "$enable_shared" = no; then
+  # Fast installation is not necessary
+  enable_fast_install=needless
+fi
+_LT_TAGDECL([], [hardcode_action], [0],
+    [How to hardcode a shared library path into an executable])
+])# _LT_LINKER_HARDCODE_LIBPATH
+
+
+# _LT_CMD_STRIPLIB
+# ----------------
+m4_defun([_LT_CMD_STRIPLIB],
+[m4_require([_LT_DECL_EGREP])
+striplib=
+old_striplib=
+AC_MSG_CHECKING([whether stripping libraries is possible])
+if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then
+  test -z "$old_striplib" && old_striplib="$STRIP --strip-debug"
+  test -z "$striplib" && striplib="$STRIP --strip-unneeded"
+  AC_MSG_RESULT([yes])
+else
+# FIXME - insert some real tests, host_os isn't really good enough
+  case $host_os in
+  darwin*)
+    if test -n "$STRIP" ; then
+      striplib="$STRIP -x"
+      old_striplib="$STRIP -S"
+      AC_MSG_RESULT([yes])
+    else
+      AC_MSG_RESULT([no])
+    fi
+    ;;
+  *)
+    AC_MSG_RESULT([no])
+    ;;
+  esac
+fi
+_LT_DECL([], [old_striplib], [1], [Commands to strip libraries])
+_LT_DECL([], [striplib], [1])
+])# _LT_CMD_STRIPLIB
+
+
+# _LT_SYS_DYNAMIC_LINKER([TAG])
+# -----------------------------
+# PORTME Fill in your ld.so characteristics
+m4_defun([_LT_SYS_DYNAMIC_LINKER],
+[AC_REQUIRE([AC_CANONICAL_HOST])dnl
+m4_require([_LT_DECL_EGREP])dnl
+m4_require([_LT_FILEUTILS_DEFAULTS])dnl
+m4_require([_LT_DECL_OBJDUMP])dnl
+m4_require([_LT_DECL_SED])dnl
+m4_require([_LT_CHECK_SHELL_FEATURES])dnl
+AC_MSG_CHECKING([dynamic linker characteristics])
+m4_if([$1],
+       [], [
+if test "$GCC" = yes; then
+  case $host_os in
+    darwin*) lt_awk_arg="/^libraries:/,/LR/" ;;
+    *) lt_awk_arg="/^libraries:/" ;;
+  esac
+  case $host_os in
+    mingw* | cegcc*) lt_sed_strip_eq="s,=\([[A-Za-z]]:\),\1,g" ;;
+    *) lt_sed_strip_eq="s,=/,/,g" ;;
+  esac
+  lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e $lt_sed_strip_eq`
+  case $lt_search_path_spec in
+  *\;*)
+    # if the path contains ";" then we assume it to be the separator
+    # otherwise default to the standard path separator (i.e. ":") - it is
+    # assumed that no part of a normal pathname contains ";" but that should
+    # okay in the real world where ";" in dirpaths is itself problematic.
+    lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED 's/;/ /g'`
+    ;;
+  *)
+    lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED "s/$PATH_SEPARATOR/ /g"`
+    ;;
+  esac
+  # Ok, now we have the path, separated by spaces, we can step through it
+  # and add multilib dir if necessary.
+  lt_tmp_lt_search_path_spec=
+  lt_multi_os_dir=`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null`
+  for lt_sys_path in $lt_search_path_spec; do
+    if test -d "$lt_sys_path/$lt_multi_os_dir"; then
+      lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path/$lt_multi_os_dir"
+    else
+      test -d "$lt_sys_path" && \
+       lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path"
+    fi
+  done
+  lt_search_path_spec=`$ECHO "$lt_tmp_lt_search_path_spec" | awk '
+BEGIN {RS=" "; FS="/|\n";} {
+  lt_foo="";
+  lt_count=0;
+  for (lt_i = NF; lt_i > 0; lt_i--) {
+    if ($lt_i != "" && $lt_i != ".") {
+      if ($lt_i == "..") {
+        lt_count++;
+      } else {
+        if (lt_count == 0) {
+          lt_foo="/" $lt_i lt_foo;
+        } else {
+          lt_count--;
+        }
+      }
+    }
+  }
+  if (lt_foo != "") { lt_freq[[lt_foo]]++; }
+  if (lt_freq[[lt_foo]] == 1) { print lt_foo; }
+}'`
+  # AWK program above erroneously prepends '/' to C:/dos/paths
+  # for these hosts.
+  case $host_os in
+    mingw* | cegcc*) lt_search_path_spec=`$ECHO "$lt_search_path_spec" |\
+      $SED 's,/\([[A-Za-z]]:\),\1,g'` ;;
+  esac
+  sys_lib_search_path_spec=`$ECHO "$lt_search_path_spec" | $lt_NL2SP`
+else
+  sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"
+fi])
+library_names_spec=
+libname_spec='lib$name'
+soname_spec=
+shrext_cmds=".so"
+postinstall_cmds=
+postuninstall_cmds=
+finish_cmds=
+finish_eval=
+shlibpath_var=
+shlibpath_overrides_runpath=unknown
+version_type=none
+dynamic_linker="$host_os ld.so"
+sys_lib_dlsearch_path_spec="/lib /usr/lib"
+need_lib_prefix=unknown
+hardcode_into_libs=no
+
+# when you set need_version to no, make sure it does not cause -set_version
+# flags to be left without arguments
+need_version=unknown
+
+case $host_os in
+aix3*)
+  version_type=linux # correct to gnu/linux during the next big refactor
+  library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a'
+  shlibpath_var=LIBPATH
+
+  # AIX 3 has no versioning support, so we append a major version to the name.
+  soname_spec='${libname}${release}${shared_ext}$major'
+  ;;
+
+aix[[4-9]]*)
+  version_type=linux # correct to gnu/linux during the next big refactor
+  need_lib_prefix=no
+  need_version=no
+  hardcode_into_libs=yes
+  if test "$host_cpu" = ia64; then
+    # AIX 5 supports IA64
+    library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}'
+    shlibpath_var=LD_LIBRARY_PATH
+  else
+    # With GCC up to 2.95.x, collect2 would create an import file
+    # for dependence libraries.  The import file would start with
+    # the line `#! .'.  This would cause the generated library to
+    # depend on `.', always an invalid library.  This was fixed in
+    # development snapshots of GCC prior to 3.0.
+    case $host_os in
+      aix4 | aix4.[[01]] | aix4.[[01]].*)
+      if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)'
+          echo ' yes '
+          echo '#endif'; } | ${CC} -E - | $GREP yes > /dev/null; then
+       :
+      else
+       can_build_shared=no
+      fi
+      ;;
+    esac
+    # AIX (on Power*) has no versioning support, so currently we can not hardcode correct
+    # soname into executable. Probably we can add versioning support to
+    # collect2, so additional links can be useful in future.
+    if test "$aix_use_runtimelinking" = yes; then
+      # If using run time linking (on AIX 4.2 or later) use lib<name>.so
+      # instead of lib<name>.a to let people know that these are not
+      # typical AIX shared libraries.
+      library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+    else
+      # We preserve .a as extension for shared libraries through AIX4.2
+      # and later when we are not doing run time linking.
+      library_names_spec='${libname}${release}.a $libname.a'
+      soname_spec='${libname}${release}${shared_ext}$major'
+    fi
+    shlibpath_var=LIBPATH
+  fi
+  ;;
+
+amigaos*)
+  case $host_cpu in
+  powerpc)
+    # Since July 2007 AmigaOS4 officially supports .so libraries.
+    # When compiling the executable, add -use-dynld -Lsobjs: to the compileline.
+    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+    ;;
+  m68k)
+    library_names_spec='$libname.ixlibrary $libname.a'
+    # Create ${libname}_ixlibrary.a entries in /sys/libs.
+    finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`func_echo_all "$lib" | $SED '\''s%^.*/\([[^/]]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done'
+    ;;
+  esac
+  ;;
+
+beos*)
+  library_names_spec='${libname}${shared_ext}'
+  dynamic_linker="$host_os ld.so"
+  shlibpath_var=LIBRARY_PATH
+  ;;
+
+bsdi[[45]]*)
+  version_type=linux # correct to gnu/linux during the next big refactor
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir'
+  shlibpath_var=LD_LIBRARY_PATH
+  sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib"
+  sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib"
+  # the default ld.so.conf also contains /usr/contrib/lib and
+  # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow
+  # libtool to hard-code these into programs
+  ;;
+
+cygwin* | mingw* | pw32* | cegcc*)
+  version_type=windows
+  shrext_cmds=".dll"
+  need_version=no
+  need_lib_prefix=no
+
+  case $GCC,$cc_basename in
+  yes,*)
+    # gcc
+    library_names_spec='$libname.dll.a'
+    # DLL is installed to $(libdir)/../bin by postinstall_cmds
+    postinstall_cmds='base_file=`basename \${file}`~
+      dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~
+      dldir=$destdir/`dirname \$dlpath`~
+      test -d \$dldir || mkdir -p \$dldir~
+      $install_prog $dir/$dlname \$dldir/$dlname~
+      chmod a+x \$dldir/$dlname~
+      if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then
+        eval '\''$striplib \$dldir/$dlname'\'' || exit \$?;
+      fi'
+    postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
+      dlpath=$dir/\$dldll~
+       $RM \$dlpath'
+    shlibpath_overrides_runpath=yes
+
+    case $host_os in
+    cygwin*)
+      # Cygwin DLLs use 'cyg' prefix rather than 'lib'
+      soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}'
+m4_if([$1], [],[
+      sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api"])
+      ;;
+    mingw* | cegcc*)
+      # MinGW DLLs use traditional 'lib' prefix
+      soname_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}'
+      ;;
+    pw32*)
+      # pw32 DLLs use 'pw' prefix rather than 'lib'
+      library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}'
+      ;;
+    esac
+    dynamic_linker='Win32 ld.exe'
+    ;;
+
+  *,cl*)
+    # Native MSVC
+    libname_spec='$name'
+    soname_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}'
+    library_names_spec='${libname}.dll.lib'
+
+    case $build_os in
+    mingw*)
+      sys_lib_search_path_spec=
+      lt_save_ifs=$IFS
+      IFS=';'
+      for lt_path in $LIB
+      do
+        IFS=$lt_save_ifs
+        # Let DOS variable expansion print the short 8.3 style file name.
+        lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"`
+        sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path"
+      done
+      IFS=$lt_save_ifs
+      # Convert to MSYS style.
+      sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([[a-zA-Z]]\\):| /\\1|g' -e 's|^ ||'`
+      ;;
+    cygwin*)
+      # Convert to unix form, then to dos form, then back to unix form
+      # but this time dos style (no spaces!) so that the unix form looks
+      # like /cygdrive/c/PROGRA~1:/cygdr...
+      sys_lib_search_path_spec=`cygpath --path --unix "$LIB"`
+      sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null`
+      sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
+      ;;
+    *)
+      sys_lib_search_path_spec="$LIB"
+      if $ECHO "$sys_lib_search_path_spec" | [$GREP ';[c-zC-Z]:/' >/dev/null]; then
+        # It is most probably a Windows format PATH.
+        sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
+      else
+        sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
+      fi
+      # FIXME: find the short name or the path components, as spaces are
+      # common. (e.g. "Program Files" -> "PROGRA~1")
+      ;;
+    esac
+
+    # DLL is installed to $(libdir)/../bin by postinstall_cmds
+    postinstall_cmds='base_file=`basename \${file}`~
+      dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~
+      dldir=$destdir/`dirname \$dlpath`~
+      test -d \$dldir || mkdir -p \$dldir~
+      $install_prog $dir/$dlname \$dldir/$dlname'
+    postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
+      dlpath=$dir/\$dldll~
+       $RM \$dlpath'
+    shlibpath_overrides_runpath=yes
+    dynamic_linker='Win32 link.exe'
+    ;;
+
+  *)
+    # Assume MSVC wrapper
+    library_names_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext} $libname.lib'
+    dynamic_linker='Win32 ld.exe'
+    ;;
+  esac
+  # FIXME: first we should search . and the directory the executable is in
+  shlibpath_var=PATH
+  ;;
+
+darwin* | rhapsody*)
+  dynamic_linker="$host_os dyld"
+  version_type=darwin
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${major}$shared_ext ${libname}$shared_ext'
+  soname_spec='${libname}${release}${major}$shared_ext'
+  shlibpath_overrides_runpath=yes
+  shlibpath_var=DYLD_LIBRARY_PATH
+  shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`'
+m4_if([$1], [],[
+  sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib"])
+  sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib'
+  ;;
+
+dgux*)
+  version_type=linux # correct to gnu/linux during the next big refactor
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  ;;
+
+freebsd* | dragonfly*)
+  # DragonFly does not have aout.  When/if they implement a new
+  # versioning mechanism, adjust this.
+  if test -x /usr/bin/objformat; then
+    objformat=`/usr/bin/objformat`
+  else
+    case $host_os in
+    freebsd[[23]].*) objformat=aout ;;
+    *) objformat=elf ;;
+    esac
+  fi
+  version_type=freebsd-$objformat
+  case $version_type in
+    freebsd-elf*)
+      library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
+      need_version=no
+      need_lib_prefix=no
+      ;;
+    freebsd-*)
+      library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix'
+      need_version=yes
+      ;;
+  esac
+  shlibpath_var=LD_LIBRARY_PATH
+  case $host_os in
+  freebsd2.*)
+    shlibpath_overrides_runpath=yes
+    ;;
+  freebsd3.[[01]]* | freebsdelf3.[[01]]*)
+    shlibpath_overrides_runpath=yes
+    hardcode_into_libs=yes
+    ;;
+  freebsd3.[[2-9]]* | freebsdelf3.[[2-9]]* | \
+  freebsd4.[[0-5]] | freebsdelf4.[[0-5]] | freebsd4.1.1 | freebsdelf4.1.1)
+    shlibpath_overrides_runpath=no
+    hardcode_into_libs=yes
+    ;;
+  *) # from 4.6 on, and DragonFly
+    shlibpath_overrides_runpath=yes
+    hardcode_into_libs=yes
+    ;;
+  esac
+  ;;
+
+gnu*)
+  version_type=linux # correct to gnu/linux during the next big refactor
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=no
+  hardcode_into_libs=yes
+  ;;
+
+haiku*)
+  version_type=linux # correct to gnu/linux during the next big refactor
+  need_lib_prefix=no
+  need_version=no
+  dynamic_linker="$host_os runtime_loader"
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+  sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib'
+  hardcode_into_libs=yes
+  ;;
+
+hpux9* | hpux10* | hpux11*)
+  # Give a soname corresponding to the major version so that dld.sl refuses to
+  # link against other versions.
+  version_type=sunos
+  need_lib_prefix=no
+  need_version=no
+  case $host_cpu in
+  ia64*)
+    shrext_cmds='.so'
+    hardcode_into_libs=yes
+    dynamic_linker="$host_os dld.so"
+    shlibpath_var=LD_LIBRARY_PATH
+    shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
+    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+    soname_spec='${libname}${release}${shared_ext}$major'
+    if test "X$HPUX_IA64_MODE" = X32; then
+      sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib"
+    else
+      sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64"
+    fi
+    sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
+    ;;
+  hppa*64*)
+    shrext_cmds='.sl'
+    hardcode_into_libs=yes
+    dynamic_linker="$host_os dld.sl"
+    shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH
+    shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
+    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+    soname_spec='${libname}${release}${shared_ext}$major'
+    sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64"
+    sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
+    ;;
+  *)
+    shrext_cmds='.sl'
+    dynamic_linker="$host_os dld.sl"
+    shlibpath_var=SHLIB_PATH
+    shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH
+    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+    soname_spec='${libname}${release}${shared_ext}$major'
+    ;;
+  esac
+  # HP-UX runs *really* slowly unless shared libraries are mode 555, ...
+  postinstall_cmds='chmod 555 $lib'
+  # or fails outright, so override atomically:
+  install_override_mode=555
+  ;;
+
+interix[[3-9]]*)
+  version_type=linux # correct to gnu/linux during the next big refactor
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=no
+  hardcode_into_libs=yes
+  ;;
+
+irix5* | irix6* | nonstopux*)
+  case $host_os in
+    nonstopux*) version_type=nonstopux ;;
+    *)
+       if test "$lt_cv_prog_gnu_ld" = yes; then
+               version_type=linux # correct to gnu/linux during the next big refactor
+       else
+               version_type=irix
+       fi ;;
+  esac
+  need_lib_prefix=no
+  need_version=no
+  soname_spec='${libname}${release}${shared_ext}$major'
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}'
+  case $host_os in
+  irix5* | nonstopux*)
+    libsuff= shlibsuff=
+    ;;
+  *)
+    case $LD in # libtool.m4 will add one of these switches to LD
+    *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ")
+      libsuff= shlibsuff= libmagic=32-bit;;
+    *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ")
+      libsuff=32 shlibsuff=N32 libmagic=N32;;
+    *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ")
+      libsuff=64 shlibsuff=64 libmagic=64-bit;;
+    *) libsuff= shlibsuff= libmagic=never-match;;
+    esac
+    ;;
+  esac
+  shlibpath_var=LD_LIBRARY${shlibsuff}_PATH
+  shlibpath_overrides_runpath=no
+  sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}"
+  sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}"
+  hardcode_into_libs=yes
+  ;;
+
+# No shared lib support for Linux oldld, aout, or coff.
+linux*oldld* | linux*aout* | linux*coff*)
+  dynamic_linker=no
+  ;;
+
+# This must be glibc/ELF.
+linux* | k*bsd*-gnu | kopensolaris*-gnu)
+  version_type=linux # correct to gnu/linux during the next big refactor
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=no
+
+  # Some binutils ld are patched to set DT_RUNPATH
+  AC_CACHE_VAL([lt_cv_shlibpath_overrides_runpath],
+    [lt_cv_shlibpath_overrides_runpath=no
+    save_LDFLAGS=$LDFLAGS
+    save_libdir=$libdir
+    eval "libdir=/foo; wl=\"$_LT_TAGVAR(lt_prog_compiler_wl, $1)\"; \
+        LDFLAGS=\"\$LDFLAGS $_LT_TAGVAR(hardcode_libdir_flag_spec, $1)\""
+    AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])],
+      [AS_IF([ ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null],
+        [lt_cv_shlibpath_overrides_runpath=yes])])
+    LDFLAGS=$save_LDFLAGS
+    libdir=$save_libdir
+    ])
+  shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath
+
+  # This implies no fast_install, which is unacceptable.
+  # Some rework will be needed to allow for fast_install
+  # before this can be enabled.
+  hardcode_into_libs=yes
+
+  # Append ld.so.conf contents to the search path
+  if test -f /etc/ld.so.conf; then
+    lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \[$]2)); skip = 1; } { if (!skip) print \[$]0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[  ]*hwcap[        ]/d;s/[:,      ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '`
+    sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra"
+  fi
+
+  # We used to test for /lib/ld.so.1 and disable shared libraries on
+  # powerpc, because MkLinux only supported shared libraries with the
+  # GNU dynamic linker.  Since this was broken with cross compilers,
+  # most powerpc-linux boxes support dynamic linking these days and
+  # people can always --disable-shared, the test was removed, and we
+  # assume the GNU/Linux dynamic linker is in use.
+  dynamic_linker='GNU/Linux ld.so'
+  ;;
+
+netbsd*)
+  version_type=sunos
+  need_lib_prefix=no
+  need_version=no
+  if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
+    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
+    finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
+    dynamic_linker='NetBSD (a.out) ld.so'
+  else
+    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
+    soname_spec='${libname}${release}${shared_ext}$major'
+    dynamic_linker='NetBSD ld.elf_so'
+  fi
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+  hardcode_into_libs=yes
+  ;;
+
+newsos6)
+  version_type=linux # correct to gnu/linux during the next big refactor
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+  ;;
+
+*nto* | *qnx*)
+  version_type=qnx
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=no
+  hardcode_into_libs=yes
+  dynamic_linker='ldqnx.so'
+  ;;
+
+openbsd*)
+  version_type=sunos
+  sys_lib_dlsearch_path_spec="/usr/lib"
+  need_lib_prefix=no
+  # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs.
+  case $host_os in
+    openbsd3.3 | openbsd3.3.*) need_version=yes ;;
+    *)                         need_version=no  ;;
+  esac
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
+  finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
+  shlibpath_var=LD_LIBRARY_PATH
+  if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+    case $host_os in
+      openbsd2.[[89]] | openbsd2.[[89]].*)
+       shlibpath_overrides_runpath=no
+       ;;
+      *)
+       shlibpath_overrides_runpath=yes
+       ;;
+      esac
+  else
+    shlibpath_overrides_runpath=yes
+  fi
+  ;;
+
+os2*)
+  libname_spec='$name'
+  shrext_cmds=".dll"
+  need_lib_prefix=no
+  library_names_spec='$libname${shared_ext} $libname.a'
+  dynamic_linker='OS/2 ld.exe'
+  shlibpath_var=LIBPATH
+  ;;
+
+osf3* | osf4* | osf5*)
+  version_type=osf
+  need_lib_prefix=no
+  need_version=no
+  soname_spec='${libname}${release}${shared_ext}$major'
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  shlibpath_var=LD_LIBRARY_PATH
+  sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib"
+  sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec"
+  ;;
+
+rdos*)
+  dynamic_linker=no
+  ;;
+
+solaris*)
+  version_type=linux # correct to gnu/linux during the next big refactor
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+  hardcode_into_libs=yes
+  # ldd complains unless libraries are executable
+  postinstall_cmds='chmod +x $lib'
+  ;;
+
+sunos4*)
+  version_type=sunos
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
+  finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+  if test "$with_gnu_ld" = yes; then
+    need_lib_prefix=no
+  fi
+  need_version=yes
+  ;;
+
+sysv4 | sysv4.3*)
+  version_type=linux # correct to gnu/linux during the next big refactor
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  case $host_vendor in
+    sni)
+      shlibpath_overrides_runpath=no
+      need_lib_prefix=no
+      runpath_var=LD_RUN_PATH
+      ;;
+    siemens)
+      need_lib_prefix=no
+      ;;
+    motorola)
+      need_lib_prefix=no
+      need_version=no
+      shlibpath_overrides_runpath=no
+      sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib'
+      ;;
+  esac
+  ;;
+
+sysv4*MP*)
+  if test -d /usr/nec ;then
+    version_type=linux # correct to gnu/linux during the next big refactor
+    library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}'
+    soname_spec='$libname${shared_ext}.$major'
+    shlibpath_var=LD_LIBRARY_PATH
+  fi
+  ;;
+
+sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
+  version_type=freebsd-elf
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+  hardcode_into_libs=yes
+  if test "$with_gnu_ld" = yes; then
+    sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib'
+  else
+    sys_lib_search_path_spec='/usr/ccs/lib /usr/lib'
+    case $host_os in
+      sco3.2v5*)
+        sys_lib_search_path_spec="$sys_lib_search_path_spec /lib"
+       ;;
+    esac
+  fi
+  sys_lib_dlsearch_path_spec='/usr/lib'
+  ;;
+
+tpf*)
+  # TPF is a cross-target only.  Preferred cross-host = GNU/Linux.
+  version_type=linux # correct to gnu/linux during the next big refactor
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=no
+  hardcode_into_libs=yes
+  ;;
+
+uts4*)
+  version_type=linux # correct to gnu/linux during the next big refactor
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  ;;
+
+*)
+  dynamic_linker=no
+  ;;
+esac
+AC_MSG_RESULT([$dynamic_linker])
+test "$dynamic_linker" = no && can_build_shared=no
+
+variables_saved_for_relink="PATH $shlibpath_var $runpath_var"
+if test "$GCC" = yes; then
+  variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH"
+fi
+
+if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then
+  sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec"
+fi
+if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then
+  sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec"
+fi
+
+_LT_DECL([], [variables_saved_for_relink], [1],
+    [Variables whose values should be saved in libtool wrapper scripts and
+    restored at link time])
+_LT_DECL([], [need_lib_prefix], [0],
+    [Do we need the "lib" prefix for modules?])
+_LT_DECL([], [need_version], [0], [Do we need a version for libraries?])
+_LT_DECL([], [version_type], [0], [Library versioning type])
+_LT_DECL([], [runpath_var], [0],  [Shared library runtime path variable])
+_LT_DECL([], [shlibpath_var], [0],[Shared library path variable])
+_LT_DECL([], [shlibpath_overrides_runpath], [0],
+    [Is shlibpath searched before the hard-coded library search path?])
+_LT_DECL([], [libname_spec], [1], [Format of library name prefix])
+_LT_DECL([], [library_names_spec], [1],
+    [[List of archive names.  First name is the real one, the rest are links.
+    The last name is the one that the linker finds with -lNAME]])
+_LT_DECL([], [soname_spec], [1],
+    [[The coded name of the library, if different from the real name]])
+_LT_DECL([], [install_override_mode], [1],
+    [Permission mode override for installation of shared libraries])
+_LT_DECL([], [postinstall_cmds], [2],
+    [Command to use after installation of a shared archive])
+_LT_DECL([], [postuninstall_cmds], [2],
+    [Command to use after uninstallation of a shared archive])
+_LT_DECL([], [finish_cmds], [2],
+    [Commands used to finish a libtool library installation in a directory])
+_LT_DECL([], [finish_eval], [1],
+    [[As "finish_cmds", except a single script fragment to be evaled but
+    not shown]])
+_LT_DECL([], [hardcode_into_libs], [0],
+    [Whether we should hardcode library paths into libraries])
+_LT_DECL([], [sys_lib_search_path_spec], [2],
+    [Compile-time system search path for libraries])
+_LT_DECL([], [sys_lib_dlsearch_path_spec], [2],
+    [Run-time system search path for libraries])
+])# _LT_SYS_DYNAMIC_LINKER
+
+
+# _LT_PATH_TOOL_PREFIX(TOOL)
+# --------------------------
+# find a file program which can recognize shared library
+AC_DEFUN([_LT_PATH_TOOL_PREFIX],
+[m4_require([_LT_DECL_EGREP])dnl
+AC_MSG_CHECKING([for $1])
+AC_CACHE_VAL(lt_cv_path_MAGIC_CMD,
+[case $MAGIC_CMD in
+[[\\/*] |  ?:[\\/]*])
+  lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path.
+  ;;
+*)
+  lt_save_MAGIC_CMD="$MAGIC_CMD"
+  lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
+dnl $ac_dummy forces splitting on constant user-supplied paths.
+dnl POSIX.2 word splitting is done only on the output of word expansions,
+dnl not every word.  This closes a longstanding sh security hole.
+  ac_dummy="m4_if([$2], , $PATH, [$2])"
+  for ac_dir in $ac_dummy; do
+    IFS="$lt_save_ifs"
+    test -z "$ac_dir" && ac_dir=.
+    if test -f $ac_dir/$1; then
+      lt_cv_path_MAGIC_CMD="$ac_dir/$1"
+      if test -n "$file_magic_test_file"; then
+       case $deplibs_check_method in
+       "file_magic "*)
+         file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"`
+         MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
+         if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null |
+           $EGREP "$file_magic_regex" > /dev/null; then
+           :
+         else
+           cat <<_LT_EOF 1>&2
+
+*** Warning: the command libtool uses to detect shared libraries,
+*** $file_magic_cmd, produces output that libtool cannot recognize.
+*** The result is that libtool may fail to recognize shared libraries
+*** as such.  This will affect the creation of libtool libraries that
+*** depend on shared libraries, but programs linked with such libtool
+*** libraries will work regardless of this problem.  Nevertheless, you
+*** may want to report the problem to your system manager and/or to
+*** bug-libtool@gnu.org
+
+_LT_EOF
+         fi ;;
+       esac
+      fi
+      break
+    fi
+  done
+  IFS="$lt_save_ifs"
+  MAGIC_CMD="$lt_save_MAGIC_CMD"
+  ;;
+esac])
+MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
+if test -n "$MAGIC_CMD"; then
+  AC_MSG_RESULT($MAGIC_CMD)
+else
+  AC_MSG_RESULT(no)
+fi
+_LT_DECL([], [MAGIC_CMD], [0],
+        [Used to examine libraries when file_magic_cmd begins with "file"])dnl
+])# _LT_PATH_TOOL_PREFIX
+
+# Old name:
+AU_ALIAS([AC_PATH_TOOL_PREFIX], [_LT_PATH_TOOL_PREFIX])
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([AC_PATH_TOOL_PREFIX], [])
+
+
+# _LT_PATH_MAGIC
+# --------------
+# find a file program which can recognize a shared library
+m4_defun([_LT_PATH_MAGIC],
+[_LT_PATH_TOOL_PREFIX(${ac_tool_prefix}file, /usr/bin$PATH_SEPARATOR$PATH)
+if test -z "$lt_cv_path_MAGIC_CMD"; then
+  if test -n "$ac_tool_prefix"; then
+    _LT_PATH_TOOL_PREFIX(file, /usr/bin$PATH_SEPARATOR$PATH)
+  else
+    MAGIC_CMD=:
+  fi
+fi
+])# _LT_PATH_MAGIC
+
+
+# LT_PATH_LD
+# ----------
+# find the pathname to the GNU or non-GNU linker
+AC_DEFUN([LT_PATH_LD],
+[AC_REQUIRE([AC_PROG_CC])dnl
+AC_REQUIRE([AC_CANONICAL_HOST])dnl
+AC_REQUIRE([AC_CANONICAL_BUILD])dnl
+m4_require([_LT_DECL_SED])dnl
+m4_require([_LT_DECL_EGREP])dnl
+m4_require([_LT_PROG_ECHO_BACKSLASH])dnl
+
+AC_ARG_WITH([gnu-ld],
+    [AS_HELP_STRING([--with-gnu-ld],
+       [assume the C compiler uses GNU ld @<:@default=no@:>@])],
+    [test "$withval" = no || with_gnu_ld=yes],
+    [with_gnu_ld=no])dnl
+
+ac_prog=ld
+if test "$GCC" = yes; then
+  # Check if gcc -print-prog-name=ld gives a path.
+  AC_MSG_CHECKING([for ld used by $CC])
+  case $host in
+  *-*-mingw*)
+    # gcc leaves a trailing carriage return which upsets mingw
+    ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;
+  *)
+    ac_prog=`($CC -print-prog-name=ld) 2>&5` ;;
+  esac
+  case $ac_prog in
+    # Accept absolute paths.
+    [[\\/]]* | ?:[[\\/]]*)
+      re_direlt='/[[^/]][[^/]]*/\.\./'
+      # Canonicalize the pathname of ld
+      ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'`
+      while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do
+       ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"`
+      done
+      test -z "$LD" && LD="$ac_prog"
+      ;;
+  "")
+    # If it fails, then pretend we aren't using GCC.
+    ac_prog=ld
+    ;;
+  *)
+    # If it is relative, then search for the first ld in PATH.
+    with_gnu_ld=unknown
+    ;;
+  esac
+elif test "$with_gnu_ld" = yes; then
+  AC_MSG_CHECKING([for GNU ld])
+else
+  AC_MSG_CHECKING([for non-GNU ld])
+fi
+AC_CACHE_VAL(lt_cv_path_LD,
+[if test -z "$LD"; then
+  lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
+  for ac_dir in $PATH; do
+    IFS="$lt_save_ifs"
+    test -z "$ac_dir" && ac_dir=.
+    if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
+      lt_cv_path_LD="$ac_dir/$ac_prog"
+      # Check to see if the program is GNU ld.  I'd rather use --version,
+      # but apparently some variants of GNU ld only accept -v.
+      # Break only if it was the GNU/non-GNU ld that we prefer.
+      case `"$lt_cv_path_LD" -v 2>&1 </dev/null` in
+      *GNU* | *'with BFD'*)
+       test "$with_gnu_ld" != no && break
+       ;;
+      *)
+       test "$with_gnu_ld" != yes && break
+       ;;
+      esac
+    fi
+  done
+  IFS="$lt_save_ifs"
+else
+  lt_cv_path_LD="$LD" # Let the user override the test with a path.
+fi])
+LD="$lt_cv_path_LD"
+if test -n "$LD"; then
+  AC_MSG_RESULT($LD)
+else
+  AC_MSG_RESULT(no)
+fi
+test -z "$LD" && AC_MSG_ERROR([no acceptable ld found in \$PATH])
+_LT_PATH_LD_GNU
+AC_SUBST([LD])
+
+_LT_TAGDECL([], [LD], [1], [The linker used to build libraries])
+])# LT_PATH_LD
+
+# Old names:
+AU_ALIAS([AM_PROG_LD], [LT_PATH_LD])
+AU_ALIAS([AC_PROG_LD], [LT_PATH_LD])
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([AM_PROG_LD], [])
+dnl AC_DEFUN([AC_PROG_LD], [])
+
+
+# _LT_PATH_LD_GNU
+#- --------------
+m4_defun([_LT_PATH_LD_GNU],
+[AC_CACHE_CHECK([if the linker ($LD) is GNU ld], lt_cv_prog_gnu_ld,
+[# I'd rather use --version here, but apparently some GNU lds only accept -v.
+case `$LD -v 2>&1 </dev/null` in
+*GNU* | *'with BFD'*)
+  lt_cv_prog_gnu_ld=yes
+  ;;
+*)
+  lt_cv_prog_gnu_ld=no
+  ;;
+esac])
+with_gnu_ld=$lt_cv_prog_gnu_ld
+])# _LT_PATH_LD_GNU
+
+
+# _LT_CMD_RELOAD
+# --------------
+# find reload flag for linker
+#   -- PORTME Some linkers may need a different reload flag.
+m4_defun([_LT_CMD_RELOAD],
+[AC_CACHE_CHECK([for $LD option to reload object files],
+  lt_cv_ld_reload_flag,
+  [lt_cv_ld_reload_flag='-r'])
+reload_flag=$lt_cv_ld_reload_flag
+case $reload_flag in
+"" | " "*) ;;
+*) reload_flag=" $reload_flag" ;;
+esac
+reload_cmds='$LD$reload_flag -o $output$reload_objs'
+case $host_os in
+  cygwin* | mingw* | pw32* | cegcc*)
+    if test "$GCC" != yes; then
+      reload_cmds=false
+    fi
+    ;;
+  darwin*)
+    if test "$GCC" = yes; then
+      reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs'
+    else
+      reload_cmds='$LD$reload_flag -o $output$reload_objs'
+    fi
+    ;;
+esac
+_LT_TAGDECL([], [reload_flag], [1], [How to create reloadable object files])dnl
+_LT_TAGDECL([], [reload_cmds], [2])dnl
+])# _LT_CMD_RELOAD
+
+
+# _LT_CHECK_MAGIC_METHOD
+# ----------------------
+# how to check for library dependencies
+#  -- PORTME fill in with the dynamic library characteristics
+m4_defun([_LT_CHECK_MAGIC_METHOD],
+[m4_require([_LT_DECL_EGREP])
+m4_require([_LT_DECL_OBJDUMP])
+AC_CACHE_CHECK([how to recognize dependent libraries],
+lt_cv_deplibs_check_method,
+[lt_cv_file_magic_cmd='$MAGIC_CMD'
+lt_cv_file_magic_test_file=
+lt_cv_deplibs_check_method='unknown'
+# Need to set the preceding variable on all platforms that support
+# interlibrary dependencies.
+# 'none' -- dependencies not supported.
+# `unknown' -- same as none, but documents that we really don't know.
+# 'pass_all' -- all dependencies passed with no checks.
+# 'test_compile' -- check by making test program.
+# 'file_magic [[regex]]' -- check by looking for files in library path
+# which responds to the $file_magic_cmd with a given extended regex.
+# If you have `file' or equivalent on your system and you're not sure
+# whether `pass_all' will *always* work, you probably want this one.
+
+case $host_os in
+aix[[4-9]]*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+beos*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+bsdi[[45]]*)
+  lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib)'
+  lt_cv_file_magic_cmd='/usr/bin/file -L'
+  lt_cv_file_magic_test_file=/shlib/libc.so
+  ;;
+
+cygwin*)
+  # func_win32_libid is a shell function defined in ltmain.sh
+  lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL'
+  lt_cv_file_magic_cmd='func_win32_libid'
+  ;;
+
+mingw* | pw32*)
+  # Base MSYS/MinGW do not provide the 'file' command needed by
+  # func_win32_libid shell function, so use a weaker test based on 'objdump',
+  # unless we find 'file', for example because we are cross-compiling.
+  # func_win32_libid assumes BSD nm, so disallow it if using MS dumpbin.
+  if ( test "$lt_cv_nm_interface" = "BSD nm" && file / ) >/dev/null 2>&1; then
+    lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL'
+    lt_cv_file_magic_cmd='func_win32_libid'
+  else
+    # Keep this pattern in sync with the one in func_win32_libid.
+    lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)'
+    lt_cv_file_magic_cmd='$OBJDUMP -f'
+  fi
+  ;;
+
+cegcc*)
+  # use the weaker test based on 'objdump'. See mingw*.
+  lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?'
+  lt_cv_file_magic_cmd='$OBJDUMP -f'
+  ;;
+
+darwin* | rhapsody*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+freebsd* | dragonfly*)
+  if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then
+    case $host_cpu in
+    i*86 )
+      # Not sure whether the presence of OpenBSD here was a mistake.
+      # Let's accept both of them until this is cleared up.
+      lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[[3-9]]86 (compact )?demand paged shared library'
+      lt_cv_file_magic_cmd=/usr/bin/file
+      lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*`
+      ;;
+    esac
+  else
+    lt_cv_deplibs_check_method=pass_all
+  fi
+  ;;
+
+gnu*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+haiku*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+hpux10.20* | hpux11*)
+  lt_cv_file_magic_cmd=/usr/bin/file
+  case $host_cpu in
+  ia64*)
+    lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|ELF-[[0-9]][[0-9]]) shared object file - IA64'
+    lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so
+    ;;
+  hppa*64*)
+    [lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF[ -][0-9][0-9])(-bit)?( [LM]SB)? shared object( file)?[, -]* PA-RISC [0-9]\.[0-9]']
+    lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl
+    ;;
+  *)
+    lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|PA-RISC[[0-9]]\.[[0-9]]) shared library'
+    lt_cv_file_magic_test_file=/usr/lib/libc.sl
+    ;;
+  esac
+  ;;
+
+interix[[3-9]]*)
+  # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here
+  lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|\.a)$'
+  ;;
+
+irix5* | irix6* | nonstopux*)
+  case $LD in
+  *-32|*"-32 ") libmagic=32-bit;;
+  *-n32|*"-n32 ") libmagic=N32;;
+  *-64|*"-64 ") libmagic=64-bit;;
+  *) libmagic=never-match;;
+  esac
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+# This must be glibc/ELF.
+linux* | k*bsd*-gnu | kopensolaris*-gnu)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+netbsd*)
+  if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then
+    lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$'
+  else
+    lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|_pic\.a)$'
+  fi
+  ;;
+
+newos6*)
+  lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (executable|dynamic lib)'
+  lt_cv_file_magic_cmd=/usr/bin/file
+  lt_cv_file_magic_test_file=/usr/lib/libnls.so
+  ;;
+
+*nto* | *qnx*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+openbsd*)
+  if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+    lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|\.so|_pic\.a)$'
+  else
+    lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$'
+  fi
+  ;;
+
+osf3* | osf4* | osf5*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+rdos*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+solaris*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+sysv4 | sysv4.3*)
+  case $host_vendor in
+  motorola)
+    lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib) M[[0-9]][[0-9]]* Version [[0-9]]'
+    lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*`
+    ;;
+  ncr)
+    lt_cv_deplibs_check_method=pass_all
+    ;;
+  sequent)
+    lt_cv_file_magic_cmd='/bin/file'
+    lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB (shared object|dynamic lib )'
+    ;;
+  sni)
+    lt_cv_file_magic_cmd='/bin/file'
+    lt_cv_deplibs_check_method="file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB dynamic lib"
+    lt_cv_file_magic_test_file=/lib/libc.so
+    ;;
+  siemens)
+    lt_cv_deplibs_check_method=pass_all
+    ;;
+  pc)
+    lt_cv_deplibs_check_method=pass_all
+    ;;
+  esac
+  ;;
+
+tpf*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+esac
+])
+
+file_magic_glob=
+want_nocaseglob=no
+if test "$build" = "$host"; then
+  case $host_os in
+  mingw* | pw32*)
+    if ( shopt | grep nocaseglob ) >/dev/null 2>&1; then
+      want_nocaseglob=yes
+    else
+      file_magic_glob=`echo aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ | $SED -e "s/\(..\)/s\/[[\1]]\/[[\1]]\/g;/g"`
+    fi
+    ;;
+  esac
+fi
+
+file_magic_cmd=$lt_cv_file_magic_cmd
+deplibs_check_method=$lt_cv_deplibs_check_method
+test -z "$deplibs_check_method" && deplibs_check_method=unknown
+
+_LT_DECL([], [deplibs_check_method], [1],
+    [Method to check whether dependent libraries are shared objects])
+_LT_DECL([], [file_magic_cmd], [1],
+    [Command to use when deplibs_check_method = "file_magic"])
+_LT_DECL([], [file_magic_glob], [1],
+    [How to find potential files when deplibs_check_method = "file_magic"])
+_LT_DECL([], [want_nocaseglob], [1],
+    [Find potential files using nocaseglob when deplibs_check_method = "file_magic"])
+])# _LT_CHECK_MAGIC_METHOD
+
+
+# LT_PATH_NM
+# ----------
+# find the pathname to a BSD- or MS-compatible name lister
+AC_DEFUN([LT_PATH_NM],
+[AC_REQUIRE([AC_PROG_CC])dnl
+AC_CACHE_CHECK([for BSD- or MS-compatible name lister (nm)], lt_cv_path_NM,
+[if test -n "$NM"; then
+  # Let the user override the test.
+  lt_cv_path_NM="$NM"
+else
+  lt_nm_to_check="${ac_tool_prefix}nm"
+  if test -n "$ac_tool_prefix" && test "$build" = "$host"; then
+    lt_nm_to_check="$lt_nm_to_check nm"
+  fi
+  for lt_tmp_nm in $lt_nm_to_check; do
+    lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
+    for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do
+      IFS="$lt_save_ifs"
+      test -z "$ac_dir" && ac_dir=.
+      tmp_nm="$ac_dir/$lt_tmp_nm"
+      if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then
+       # Check to see if the nm accepts a BSD-compat flag.
+       # Adding the `sed 1q' prevents false positives on HP-UX, which says:
+       #   nm: unknown option "B" ignored
+       # Tru64's nm complains that /dev/null is an invalid object file
+       case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in
+       */dev/null* | *'Invalid file or object type'*)
+         lt_cv_path_NM="$tmp_nm -B"
+         break
+         ;;
+       *)
+         case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in
+         */dev/null*)
+           lt_cv_path_NM="$tmp_nm -p"
+           break
+           ;;
+         *)
+           lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but
+           continue # so that we can try to find one that supports BSD flags
+           ;;
+         esac
+         ;;
+       esac
+      fi
+    done
+    IFS="$lt_save_ifs"
+  done
+  : ${lt_cv_path_NM=no}
+fi])
+if test "$lt_cv_path_NM" != "no"; then
+  NM="$lt_cv_path_NM"
+else
+  # Didn't find any BSD compatible name lister, look for dumpbin.
+  if test -n "$DUMPBIN"; then :
+    # Let the user override the test.
+  else
+    AC_CHECK_TOOLS(DUMPBIN, [dumpbin "link -dump"], :)
+    case `$DUMPBIN -symbols /dev/null 2>&1 | sed '1q'` in
+    *COFF*)
+      DUMPBIN="$DUMPBIN -symbols"
+      ;;
+    *)
+      DUMPBIN=:
+      ;;
+    esac
+  fi
+  AC_SUBST([DUMPBIN])
+  if test "$DUMPBIN" != ":"; then
+    NM="$DUMPBIN"
+  fi
+fi
+test -z "$NM" && NM=nm
+AC_SUBST([NM])
+_LT_DECL([], [NM], [1], [A BSD- or MS-compatible name lister])dnl
+
+AC_CACHE_CHECK([the name lister ($NM) interface], [lt_cv_nm_interface],
+  [lt_cv_nm_interface="BSD nm"
+  echo "int some_variable = 0;" > conftest.$ac_ext
+  (eval echo "\"\$as_me:$LINENO: $ac_compile\"" >&AS_MESSAGE_LOG_FD)
+  (eval "$ac_compile" 2>conftest.err)
+  cat conftest.err >&AS_MESSAGE_LOG_FD
+  (eval echo "\"\$as_me:$LINENO: $NM \\\"conftest.$ac_objext\\\"\"" >&AS_MESSAGE_LOG_FD)
+  (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out)
+  cat conftest.err >&AS_MESSAGE_LOG_FD
+  (eval echo "\"\$as_me:$LINENO: output\"" >&AS_MESSAGE_LOG_FD)
+  cat conftest.out >&AS_MESSAGE_LOG_FD
+  if $GREP 'External.*some_variable' conftest.out > /dev/null; then
+    lt_cv_nm_interface="MS dumpbin"
+  fi
+  rm -f conftest*])
+])# LT_PATH_NM
+
+# Old names:
+AU_ALIAS([AM_PROG_NM], [LT_PATH_NM])
+AU_ALIAS([AC_PROG_NM], [LT_PATH_NM])
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([AM_PROG_NM], [])
+dnl AC_DEFUN([AC_PROG_NM], [])
+
+# _LT_CHECK_SHAREDLIB_FROM_LINKLIB
+# --------------------------------
+# how to determine the name of the shared library
+# associated with a specific link library.
+#  -- PORTME fill in with the dynamic library characteristics
+m4_defun([_LT_CHECK_SHAREDLIB_FROM_LINKLIB],
+[m4_require([_LT_DECL_EGREP])
+m4_require([_LT_DECL_OBJDUMP])
+m4_require([_LT_DECL_DLLTOOL])
+AC_CACHE_CHECK([how to associate runtime and link libraries],
+lt_cv_sharedlib_from_linklib_cmd,
+[lt_cv_sharedlib_from_linklib_cmd='unknown'
+
+case $host_os in
+cygwin* | mingw* | pw32* | cegcc*)
+  # two different shell functions defined in ltmain.sh
+  # decide which to use based on capabilities of $DLLTOOL
+  case `$DLLTOOL --help 2>&1` in
+  *--identify-strict*)
+    lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib
+    ;;
+  *)
+    lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib_fallback
+    ;;
+  esac
+  ;;
+*)
+  # fallback: assume linklib IS sharedlib
+  lt_cv_sharedlib_from_linklib_cmd="$ECHO"
+  ;;
+esac
+])
+sharedlib_from_linklib_cmd=$lt_cv_sharedlib_from_linklib_cmd
+test -z "$sharedlib_from_linklib_cmd" && sharedlib_from_linklib_cmd=$ECHO
+
+_LT_DECL([], [sharedlib_from_linklib_cmd], [1],
+    [Command to associate shared and link libraries])
+])# _LT_CHECK_SHAREDLIB_FROM_LINKLIB
+
+
+# _LT_PATH_MANIFEST_TOOL
+# ----------------------
+# locate the manifest tool
+m4_defun([_LT_PATH_MANIFEST_TOOL],
+[AC_CHECK_TOOL(MANIFEST_TOOL, mt, :)
+test -z "$MANIFEST_TOOL" && MANIFEST_TOOL=mt
+AC_CACHE_CHECK([if $MANIFEST_TOOL is a manifest tool], [lt_cv_path_mainfest_tool],
+  [lt_cv_path_mainfest_tool=no
+  echo "$as_me:$LINENO: $MANIFEST_TOOL '-?'" >&AS_MESSAGE_LOG_FD
+  $MANIFEST_TOOL '-?' 2>conftest.err > conftest.out
+  cat conftest.err >&AS_MESSAGE_LOG_FD
+  if $GREP 'Manifest Tool' conftest.out > /dev/null; then
+    lt_cv_path_mainfest_tool=yes
+  fi
+  rm -f conftest*])
+if test "x$lt_cv_path_mainfest_tool" != xyes; then
+  MANIFEST_TOOL=:
+fi
+_LT_DECL([], [MANIFEST_TOOL], [1], [Manifest tool])dnl
+])# _LT_PATH_MANIFEST_TOOL
+
+
+# LT_LIB_M
+# --------
+# check for math library
+AC_DEFUN([LT_LIB_M],
+[AC_REQUIRE([AC_CANONICAL_HOST])dnl
+LIBM=
+case $host in
+*-*-beos* | *-*-cegcc* | *-*-cygwin* | *-*-haiku* | *-*-pw32* | *-*-darwin*)
+  # These system don't have libm, or don't need it
+  ;;
+*-ncr-sysv4.3*)
+  AC_CHECK_LIB(mw, _mwvalidcheckl, LIBM="-lmw")
+  AC_CHECK_LIB(m, cos, LIBM="$LIBM -lm")
+  ;;
+*)
+  AC_CHECK_LIB(m, cos, LIBM="-lm")
+  ;;
+esac
+AC_SUBST([LIBM])
+])# LT_LIB_M
+
+# Old name:
+AU_ALIAS([AC_CHECK_LIBM], [LT_LIB_M])
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([AC_CHECK_LIBM], [])
+
+
+# _LT_COMPILER_NO_RTTI([TAGNAME])
+# -------------------------------
+m4_defun([_LT_COMPILER_NO_RTTI],
+[m4_require([_LT_TAG_COMPILER])dnl
+
+_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=
+
+if test "$GCC" = yes; then
+  case $cc_basename in
+  nvcc*)
+    _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -Xcompiler -fno-builtin' ;;
+  *)
+    _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' ;;
+  esac
+
+  _LT_COMPILER_OPTION([if $compiler supports -fno-rtti -fno-exceptions],
+    lt_cv_prog_compiler_rtti_exceptions,
+    [-fno-rtti -fno-exceptions], [],
+    [_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)="$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1) -fno-rtti -fno-exceptions"])
+fi
+_LT_TAGDECL([no_builtin_flag], [lt_prog_compiler_no_builtin_flag], [1],
+       [Compiler flag to turn off builtin functions])
+])# _LT_COMPILER_NO_RTTI
+
+
+# _LT_CMD_GLOBAL_SYMBOLS
+# ----------------------
+m4_defun([_LT_CMD_GLOBAL_SYMBOLS],
+[AC_REQUIRE([AC_CANONICAL_HOST])dnl
+AC_REQUIRE([AC_PROG_CC])dnl
+AC_REQUIRE([AC_PROG_AWK])dnl
+AC_REQUIRE([LT_PATH_NM])dnl
+AC_REQUIRE([LT_PATH_LD])dnl
+m4_require([_LT_DECL_SED])dnl
+m4_require([_LT_DECL_EGREP])dnl
+m4_require([_LT_TAG_COMPILER])dnl
+
+# Check for command to grab the raw symbol name followed by C symbol from nm.
+AC_MSG_CHECKING([command to parse $NM output from $compiler object])
+AC_CACHE_VAL([lt_cv_sys_global_symbol_pipe],
+[
+# These are sane defaults that work on at least a few old systems.
+# [They come from Ultrix.  What could be older than Ultrix?!! ;)]
+
+# Character class describing NM global symbol codes.
+symcode='[[BCDEGRST]]'
+
+# Regexp to match symbols that can be accessed directly from C.
+sympat='\([[_A-Za-z]][[_A-Za-z0-9]]*\)'
+
+# Define system-specific variables.
+case $host_os in
+aix*)
+  symcode='[[BCDT]]'
+  ;;
+cygwin* | mingw* | pw32* | cegcc*)
+  symcode='[[ABCDGISTW]]'
+  ;;
+hpux*)
+  if test "$host_cpu" = ia64; then
+    symcode='[[ABCDEGRST]]'
+  fi
+  ;;
+irix* | nonstopux*)
+  symcode='[[BCDEGRST]]'
+  ;;
+osf*)
+  symcode='[[BCDEGQRST]]'
+  ;;
+solaris*)
+  symcode='[[BDRT]]'
+  ;;
+sco3.2v5*)
+  symcode='[[DT]]'
+  ;;
+sysv4.2uw2*)
+  symcode='[[DT]]'
+  ;;
+sysv5* | sco5v6* | unixware* | OpenUNIX*)
+  symcode='[[ABDT]]'
+  ;;
+sysv4)
+  symcode='[[DFNSTU]]'
+  ;;
+esac
+
+# If we're using GNU nm, then use its standard symbol codes.
+case `$NM -V 2>&1` in
+*GNU* | *'with BFD'*)
+  symcode='[[ABCDGIRSTW]]' ;;
+esac
+
+# Transform an extracted symbol line into a proper C declaration.
+# Some systems (esp. on ia64) link data and code symbols differently,
+# so use this general approach.
+lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'"
+
+# Transform an extracted symbol line into symbol name and symbol address
+lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\)[[ ]]*$/  {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/  {\"\2\", (void *) \&\2},/p'"
+lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([[^ ]]*\)[[ ]]*$/  {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \(lib[[^ ]]*\)$/  {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/  {\"lib\2\", (void *) \&\2},/p'"
+
+# Handle CRLF in mingw tool chain
+opt_cr=
+case $build_os in
+mingw*)
+  opt_cr=`$ECHO 'x\{0,1\}' | tr x '\015'` # option cr in regexp
+  ;;
+esac
+
+# Try without a prefix underscore, then with it.
+for ac_symprfx in "" "_"; do
+
+  # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol.
+  symxfrm="\\1 $ac_symprfx\\2 \\2"
+
+  # Write the raw and C identifiers.
+  if test "$lt_cv_nm_interface" = "MS dumpbin"; then
+    # Fake it for dumpbin and say T for any non-static function
+    # and D for any global variable.
+    # Also find C++ and __fastcall symbols from MSVC++,
+    # which start with @ or ?.
+    lt_cv_sys_global_symbol_pipe="$AWK ['"\
+"     {last_section=section; section=\$ 3};"\
+"     /^COFF SYMBOL TABLE/{for(i in hide) delete hide[i]};"\
+"     /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\
+"     \$ 0!~/External *\|/{next};"\
+"     / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\
+"     {if(hide[section]) next};"\
+"     {f=0}; \$ 0~/\(\).*\|/{f=1}; {printf f ? \"T \" : \"D \"};"\
+"     {split(\$ 0, a, /\||\r/); split(a[2], s)};"\
+"     s[1]~/^[@?]/{print s[1], s[1]; next};"\
+"     s[1]~prfx {split(s[1],t,\"@\"); print t[1], substr(t[1],length(prfx))}"\
+"     ' prfx=^$ac_symprfx]"
+  else
+    lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[[    ]]\($symcode$symcode*\)[[       ]][[    ]]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'"
+  fi
+  lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | sed '/ __gnu_lto/d'"
+
+  # Check to see that the pipe works correctly.
+  pipe_works=no
+
+  rm -f conftest*
+  cat > conftest.$ac_ext <<_LT_EOF
+#ifdef __cplusplus
+extern "C" {
+#endif
+char nm_test_var;
+void nm_test_func(void);
+void nm_test_func(void){}
+#ifdef __cplusplus
+}
+#endif
+int main(){nm_test_var='a';nm_test_func();return(0);}
+_LT_EOF
+
+  if AC_TRY_EVAL(ac_compile); then
+    # Now try to grab the symbols.
+    nlist=conftest.nm
+    if AC_TRY_EVAL(NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist) && test -s "$nlist"; then
+      # Try sorting and uniquifying the output.
+      if sort "$nlist" | uniq > "$nlist"T; then
+       mv -f "$nlist"T "$nlist"
+      else
+       rm -f "$nlist"T
+      fi
+
+      # Make sure that we snagged all the symbols we need.
+      if $GREP ' nm_test_var$' "$nlist" >/dev/null; then
+       if $GREP ' nm_test_func$' "$nlist" >/dev/null; then
+         cat <<_LT_EOF > conftest.$ac_ext
+/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests.  */
+#if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE)
+/* DATA imports from DLLs on WIN32 con't be const, because runtime
+   relocations are performed -- see ld's documentation on pseudo-relocs.  */
+# define LT@&t@_DLSYM_CONST
+#elif defined(__osf__)
+/* This system does not cope well with relocations in const data.  */
+# define LT@&t@_DLSYM_CONST
+#else
+# define LT@&t@_DLSYM_CONST const
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+_LT_EOF
+         # Now generate the symbol file.
+         eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | $GREP -v main >> conftest.$ac_ext'
+
+         cat <<_LT_EOF >> conftest.$ac_ext
+
+/* The mapping between symbol names and symbols.  */
+LT@&t@_DLSYM_CONST struct {
+  const char *name;
+  void       *address;
+}
+lt__PROGRAM__LTX_preloaded_symbols[[]] =
+{
+  { "@PROGRAM@", (void *) 0 },
+_LT_EOF
+         $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/  {\"\2\", (void *) \&\2},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext
+         cat <<\_LT_EOF >> conftest.$ac_ext
+  {0, (void *) 0}
+};
+
+/* This works around a problem in FreeBSD linker */
+#ifdef FREEBSD_WORKAROUND
+static const void *lt_preloaded_setup() {
+  return lt__PROGRAM__LTX_preloaded_symbols;
+}
+#endif
+
+#ifdef __cplusplus
+}
+#endif
+_LT_EOF
+         # Now try linking the two files.
+         mv conftest.$ac_objext conftstm.$ac_objext
+         lt_globsym_save_LIBS=$LIBS
+         lt_globsym_save_CFLAGS=$CFLAGS
+         LIBS="conftstm.$ac_objext"
+         CFLAGS="$CFLAGS$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)"
+         if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext}; then
+           pipe_works=yes
+         fi
+         LIBS=$lt_globsym_save_LIBS
+         CFLAGS=$lt_globsym_save_CFLAGS
+       else
+         echo "cannot find nm_test_func in $nlist" >&AS_MESSAGE_LOG_FD
+       fi
+      else
+       echo "cannot find nm_test_var in $nlist" >&AS_MESSAGE_LOG_FD
+      fi
+    else
+      echo "cannot run $lt_cv_sys_global_symbol_pipe" >&AS_MESSAGE_LOG_FD
+    fi
+  else
+    echo "$progname: failed program was:" >&AS_MESSAGE_LOG_FD
+    cat conftest.$ac_ext >&5
+  fi
+  rm -rf conftest* conftst*
+
+  # Do not use the global_symbol_pipe unless it works.
+  if test "$pipe_works" = yes; then
+    break
+  else
+    lt_cv_sys_global_symbol_pipe=
+  fi
+done
+])
+if test -z "$lt_cv_sys_global_symbol_pipe"; then
+  lt_cv_sys_global_symbol_to_cdecl=
+fi
+if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then
+  AC_MSG_RESULT(failed)
+else
+  AC_MSG_RESULT(ok)
+fi
+
+# Response file support.
+if test "$lt_cv_nm_interface" = "MS dumpbin"; then
+  nm_file_list_spec='@'
+elif $NM --help 2>/dev/null | grep '[[@]]FILE' >/dev/null; then
+  nm_file_list_spec='@'
+fi
+
+_LT_DECL([global_symbol_pipe], [lt_cv_sys_global_symbol_pipe], [1],
+    [Take the output of nm and produce a listing of raw symbols and C names])
+_LT_DECL([global_symbol_to_cdecl], [lt_cv_sys_global_symbol_to_cdecl], [1],
+    [Transform the output of nm in a proper C declaration])
+_LT_DECL([global_symbol_to_c_name_address],
+    [lt_cv_sys_global_symbol_to_c_name_address], [1],
+    [Transform the output of nm in a C name address pair])
+_LT_DECL([global_symbol_to_c_name_address_lib_prefix],
+    [lt_cv_sys_global_symbol_to_c_name_address_lib_prefix], [1],
+    [Transform the output of nm in a C name address pair when lib prefix is needed])
+_LT_DECL([], [nm_file_list_spec], [1],
+    [Specify filename containing input files for $NM])
+]) # _LT_CMD_GLOBAL_SYMBOLS
+
+
+# _LT_COMPILER_PIC([TAGNAME])
+# ---------------------------
+m4_defun([_LT_COMPILER_PIC],
+[m4_require([_LT_TAG_COMPILER])dnl
+_LT_TAGVAR(lt_prog_compiler_wl, $1)=
+_LT_TAGVAR(lt_prog_compiler_pic, $1)=
+_LT_TAGVAR(lt_prog_compiler_static, $1)=
+
+m4_if([$1], [CXX], [
+  # C++ specific cases for pic, static, wl, etc.
+  if test "$GXX" = yes; then
+    _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+    _LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
+
+    case $host_os in
+    aix*)
+      # All AIX code is PIC.
+      if test "$host_cpu" = ia64; then
+       # AIX 5 now supports IA64 processor
+       _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+      fi
+      ;;
+
+    amigaos*)
+      case $host_cpu in
+      powerpc)
+            # see comment about AmigaOS4 .so support
+            _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
+        ;;
+      m68k)
+            # FIXME: we need at least 68020 code to build shared libraries, but
+            # adding the `-m68020' flag to GCC prevents building anything better,
+            # like `-m68040'.
+            _LT_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4'
+        ;;
+      esac
+      ;;
+
+    beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
+      # PIC is the default for these OSes.
+      ;;
+    mingw* | cygwin* | os2* | pw32* | cegcc*)
+      # This hack is so that the source file can tell whether it is being
+      # built for inclusion in a dll (and should export symbols for example).
+      # Although the cygwin gcc ignores -fPIC, still need this for old-style
+      # (--disable-auto-import) libraries
+      m4_if([$1], [GCJ], [],
+       [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT'])
+      ;;
+    darwin* | rhapsody*)
+      # PIC is the default on this platform
+      # Common symbols not allowed in MH_DYLIB files
+      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common'
+      ;;
+    *djgpp*)
+      # DJGPP does not support shared libraries at all
+      _LT_TAGVAR(lt_prog_compiler_pic, $1)=
+      ;;
+    haiku*)
+      # PIC is the default for Haiku.
+      # The "-static" flag exists, but is broken.
+      _LT_TAGVAR(lt_prog_compiler_static, $1)=
+      ;;
+    interix[[3-9]]*)
+      # Interix 3.x gcc -fpic/-fPIC options generate broken code.
+      # Instead, we relocate shared libraries at runtime.
+      ;;
+    sysv4*MP*)
+      if test -d /usr/nec; then
+       _LT_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic
+      fi
+      ;;
+    hpux*)
+      # PIC is the default for 64-bit PA HP-UX, but not for 32-bit
+      # PA HP-UX.  On IA64 HP-UX, PIC is the default but the pic flag
+      # sets the default TLS model and affects inlining.
+      case $host_cpu in
+      hppa*64*)
+       ;;
+      *)
+       _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
+       ;;
+      esac
+      ;;
+    *qnx* | *nto*)
+      # QNX uses GNU C++, but need to define -shared option too, otherwise
+      # it will coredump.
+      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared'
+      ;;
+    *)
+      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
+      ;;
+    esac
+  else
+    case $host_os in
+      aix[[4-9]]*)
+       # All AIX code is PIC.
+       if test "$host_cpu" = ia64; then
+         # AIX 5 now supports IA64 processor
+         _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+       else
+         _LT_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp'
+       fi
+       ;;
+      chorus*)
+       case $cc_basename in
+       cxch68*)
+         # Green Hills C++ Compiler
+         # _LT_TAGVAR(lt_prog_compiler_static, $1)="--no_auto_instantiation -u __main -u __premain -u _abort -r $COOL_DIR/lib/libOrb.a $MVME_DIR/lib/CC/libC.a $MVME_DIR/lib/classix/libcx.s.a"
+         ;;
+       esac
+       ;;
+      mingw* | cygwin* | os2* | pw32* | cegcc*)
+       # This hack is so that the source file can tell whether it is being
+       # built for inclusion in a dll (and should export symbols for example).
+       m4_if([$1], [GCJ], [],
+         [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT'])
+       ;;
+      dgux*)
+       case $cc_basename in
+         ec++*)
+           _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+           ;;
+         ghcx*)
+           # Green Hills C++ Compiler
+           _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
+           ;;
+         *)
+           ;;
+       esac
+       ;;
+      freebsd* | dragonfly*)
+       # FreeBSD uses GNU C++
+       ;;
+      hpux9* | hpux10* | hpux11*)
+       case $cc_basename in
+         CC*)
+           _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+           _LT_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive'
+           if test "$host_cpu" != ia64; then
+             _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z'
+           fi
+           ;;
+         aCC*)
+           _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+           _LT_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive'
+           case $host_cpu in
+           hppa*64*|ia64*)
+             # +Z the default
+             ;;
+           *)
+             _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z'
+             ;;
+           esac
+           ;;
+         *)
+           ;;
+       esac
+       ;;
+      interix*)
+       # This is c89, which is MS Visual C++ (no shared libs)
+       # Anyone wants to do a port?
+       ;;
+      irix5* | irix6* | nonstopux*)
+       case $cc_basename in
+         CC*)
+           _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+           _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
+           # CC pic flag -KPIC is the default.
+           ;;
+         *)
+           ;;
+       esac
+       ;;
+      linux* | k*bsd*-gnu | kopensolaris*-gnu)
+       case $cc_basename in
+         KCC*)
+           # KAI C++ Compiler
+           _LT_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,'
+           _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
+           ;;
+         ecpc* )
+           # old Intel C++ for x86_64 which still supported -KPIC.
+           _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+           _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+           _LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
+           ;;
+         icpc* )
+           # Intel C++, used to be incompatible with GCC.
+           # ICC 10 doesn't accept -KPIC any more.
+           _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+           _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
+           _LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
+           ;;
+         pgCC* | pgcpp*)
+           # Portland Group C++ compiler
+           _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+           _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic'
+           _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+           ;;
+         cxx*)
+           # Compaq C++
+           # Make sure the PIC flag is empty.  It appears that all Alpha
+           # Linux and Compaq Tru64 Unix objects are PIC.
+           _LT_TAGVAR(lt_prog_compiler_pic, $1)=
+           _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
+           ;;
+         xlc* | xlC* | bgxl[[cC]]* | mpixl[[cC]]*)
+           # IBM XL 8.0, 9.0 on PPC and BlueGene
+           _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+           _LT_TAGVAR(lt_prog_compiler_pic, $1)='-qpic'
+           _LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink'
+           ;;
+         *)
+           case `$CC -V 2>&1 | sed 5q` in
+           *Sun\ C*)
+             # Sun C++ 5.9
+             _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+             _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+             _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld '
+             ;;
+           esac
+           ;;
+       esac
+       ;;
+      lynxos*)
+       ;;
+      m88k*)
+       ;;
+      mvs*)
+       case $cc_basename in
+         cxx*)
+           _LT_TAGVAR(lt_prog_compiler_pic, $1)='-W c,exportall'
+           ;;
+         *)
+           ;;
+       esac
+       ;;
+      netbsd*)
+       ;;
+      *qnx* | *nto*)
+        # QNX uses GNU C++, but need to define -shared option too, otherwise
+        # it will coredump.
+        _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared'
+        ;;
+      osf3* | osf4* | osf5*)
+       case $cc_basename in
+         KCC*)
+           _LT_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,'
+           ;;
+         RCC*)
+           # Rational C++ 2.4.1
+           _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
+           ;;
+         cxx*)
+           # Digital/Compaq C++
+           _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+           # Make sure the PIC flag is empty.  It appears that all Alpha
+           # Linux and Compaq Tru64 Unix objects are PIC.
+           _LT_TAGVAR(lt_prog_compiler_pic, $1)=
+           _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
+           ;;
+         *)
+           ;;
+       esac
+       ;;
+      psos*)
+       ;;
+      solaris*)
+       case $cc_basename in
+         CC* | sunCC*)
+           # Sun C++ 4.2, 5.x and Centerline C++
+           _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+           _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+           _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld '
+           ;;
+         gcx*)
+           # Green Hills C++ Compiler
+           _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC'
+           ;;
+         *)
+           ;;
+       esac
+       ;;
+      sunos4*)
+       case $cc_basename in
+         CC*)
+           # Sun C++ 4.x
+           _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
+           _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+           ;;
+         lcc*)
+           # Lucid
+           _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
+           ;;
+         *)
+           ;;
+       esac
+       ;;
+      sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*)
+       case $cc_basename in
+         CC*)
+           _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+           _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+           _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+           ;;
+       esac
+       ;;
+      tandem*)
+       case $cc_basename in
+         NCC*)
+           # NonStop-UX NCC 3.20
+           _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+           ;;
+         *)
+           ;;
+       esac
+       ;;
+      vxworks*)
+       ;;
+      *)
+       _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no
+       ;;
+    esac
+  fi
+],
+[
+  if test "$GCC" = yes; then
+    _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+    _LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
+
+    case $host_os in
+      aix*)
+      # All AIX code is PIC.
+      if test "$host_cpu" = ia64; then
+       # AIX 5 now supports IA64 processor
+       _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+      fi
+      ;;
+
+    amigaos*)
+      case $host_cpu in
+      powerpc)
+            # see comment about AmigaOS4 .so support
+            _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
+        ;;
+      m68k)
+            # FIXME: we need at least 68020 code to build shared libraries, but
+            # adding the `-m68020' flag to GCC prevents building anything better,
+            # like `-m68040'.
+            _LT_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4'
+        ;;
+      esac
+      ;;
+
+    beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
+      # PIC is the default for these OSes.
+      ;;
+
+    mingw* | cygwin* | pw32* | os2* | cegcc*)
+      # This hack is so that the source file can tell whether it is being
+      # built for inclusion in a dll (and should export symbols for example).
+      # Although the cygwin gcc ignores -fPIC, still need this for old-style
+      # (--disable-auto-import) libraries
+      m4_if([$1], [GCJ], [],
+       [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT'])
+      ;;
+
+    darwin* | rhapsody*)
+      # PIC is the default on this platform
+      # Common symbols not allowed in MH_DYLIB files
+      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common'
+      ;;
+
+    haiku*)
+      # PIC is the default for Haiku.
+      # The "-static" flag exists, but is broken.
+      _LT_TAGVAR(lt_prog_compiler_static, $1)=
+      ;;
+
+    hpux*)
+      # PIC is the default for 64-bit PA HP-UX, but not for 32-bit
+      # PA HP-UX.  On IA64 HP-UX, PIC is the default but the pic flag
+      # sets the default TLS model and affects inlining.
+      case $host_cpu in
+      hppa*64*)
+       # +Z the default
+       ;;
+      *)
+       _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
+       ;;
+      esac
+      ;;
+
+    interix[[3-9]]*)
+      # Interix 3.x gcc -fpic/-fPIC options generate broken code.
+      # Instead, we relocate shared libraries at runtime.
+      ;;
+
+    msdosdjgpp*)
+      # Just because we use GCC doesn't mean we suddenly get shared libraries
+      # on systems that don't support them.
+      _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no
+      enable_shared=no
+      ;;
+
+    *nto* | *qnx*)
+      # QNX uses GNU C++, but need to define -shared option too, otherwise
+      # it will coredump.
+      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared'
+      ;;
+
+    sysv4*MP*)
+      if test -d /usr/nec; then
+       _LT_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic
+      fi
+      ;;
+
+    *)
+      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
+      ;;
+    esac
+
+    case $cc_basename in
+    nvcc*) # Cuda Compiler Driver 2.2
+      _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Xlinker '
+      if test -n "$_LT_TAGVAR(lt_prog_compiler_pic, $1)"; then
+        _LT_TAGVAR(lt_prog_compiler_pic, $1)="-Xcompiler $_LT_TAGVAR(lt_prog_compiler_pic, $1)"
+      fi
+      ;;
+    esac
+  else
+    # PORTME Check for flag to pass linker flags through the system compiler.
+    case $host_os in
+    aix*)
+      _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+      if test "$host_cpu" = ia64; then
+       # AIX 5 now supports IA64 processor
+       _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+      else
+       _LT_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp'
+      fi
+      ;;
+
+    mingw* | cygwin* | pw32* | os2* | cegcc*)
+      # This hack is so that the source file can tell whether it is being
+      # built for inclusion in a dll (and should export symbols for example).
+      m4_if([$1], [GCJ], [],
+       [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT'])
+      ;;
+
+    hpux9* | hpux10* | hpux11*)
+      _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+      # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but
+      # not for PA HP-UX.
+      case $host_cpu in
+      hppa*64*|ia64*)
+       # +Z the default
+       ;;
+      *)
+       _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z'
+       ;;
+      esac
+      # Is there a better lt_prog_compiler_static that works with the bundled CC?
+      _LT_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive'
+      ;;
+
+    irix5* | irix6* | nonstopux*)
+      _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+      # PIC (with -KPIC) is the default.
+      _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
+      ;;
+
+    linux* | k*bsd*-gnu | kopensolaris*-gnu)
+      case $cc_basename in
+      # old Intel for x86_64 which still supported -KPIC.
+      ecc*)
+       _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+       _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+       _LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
+        ;;
+      # icc used to be incompatible with GCC.
+      # ICC 10 doesn't accept -KPIC any more.
+      icc* | ifort*)
+       _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+       _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
+       _LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
+        ;;
+      # Lahey Fortran 8.1.
+      lf95*)
+       _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+       _LT_TAGVAR(lt_prog_compiler_pic, $1)='--shared'
+       _LT_TAGVAR(lt_prog_compiler_static, $1)='--static'
+       ;;
+      nagfor*)
+       # NAG Fortran compiler
+       _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,-Wl,,'
+       _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC'
+       _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+       ;;
+      pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*)
+        # Portland Group compilers (*not* the Pentium gcc compiler,
+       # which looks to be a dead project)
+       _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+       _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic'
+       _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+        ;;
+      ccc*)
+        _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+        # All Alpha code is PIC.
+        _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
+        ;;
+      xl* | bgxl* | bgf* | mpixl*)
+       # IBM XL C 8.0/Fortran 10.1, 11.1 on PPC and BlueGene
+       _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+       _LT_TAGVAR(lt_prog_compiler_pic, $1)='-qpic'
+       _LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink'
+       ;;
+      *)
+       case `$CC -V 2>&1 | sed 5q` in
+       *Sun\ Ceres\ Fortran* | *Sun*Fortran*\ [[1-7]].* | *Sun*Fortran*\ 8.[[0-3]]*)
+         # Sun Fortran 8.3 passes all unrecognized flags to the linker
+         _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+         _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+         _LT_TAGVAR(lt_prog_compiler_wl, $1)=''
+         ;;
+       *Sun\ F* | *Sun*Fortran*)
+         _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+         _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+         _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld '
+         ;;
+       *Sun\ C*)
+         # Sun C 5.9
+         _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+         _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+         _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+         ;;
+        *Intel*\ [[CF]]*Compiler*)
+         _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+         _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
+         _LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
+         ;;
+       *Portland\ Group*)
+         _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+         _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic'
+         _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+         ;;
+       esac
+       ;;
+      esac
+      ;;
+
+    newsos6)
+      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+      _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+      ;;
+
+    *nto* | *qnx*)
+      # QNX uses GNU C++, but need to define -shared option too, otherwise
+      # it will coredump.
+      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared'
+      ;;
+
+    osf3* | osf4* | osf5*)
+      _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+      # All OSF/1 code is PIC.
+      _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
+      ;;
+
+    rdos*)
+      _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
+      ;;
+
+    solaris*)
+      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+      _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+      case $cc_basename in
+      f77* | f90* | f95* | sunf77* | sunf90* | sunf95*)
+       _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ';;
+      *)
+       _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,';;
+      esac
+      ;;
+
+    sunos4*)
+      _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld '
+      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC'
+      _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+      ;;
+
+    sysv4 | sysv4.2uw2* | sysv4.3*)
+      _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+      _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+      ;;
+
+    sysv4*MP*)
+      if test -d /usr/nec ;then
+       _LT_TAGVAR(lt_prog_compiler_pic, $1)='-Kconform_pic'
+       _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+      fi
+      ;;
+
+    sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*)
+      _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+      _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+      ;;
+
+    unicos*)
+      _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+      _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no
+      ;;
+
+    uts4*)
+      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
+      _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+      ;;
+
+    *)
+      _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no
+      ;;
+    esac
+  fi
+])
+case $host_os in
+  # For platforms which do not support PIC, -DPIC is meaningless:
+  *djgpp*)
+    _LT_TAGVAR(lt_prog_compiler_pic, $1)=
+    ;;
+  *)
+    _LT_TAGVAR(lt_prog_compiler_pic, $1)="$_LT_TAGVAR(lt_prog_compiler_pic, $1)@&t@m4_if([$1],[],[ -DPIC],[m4_if([$1],[CXX],[ -DPIC],[])])"
+    ;;
+esac
+
+AC_CACHE_CHECK([for $compiler option to produce PIC],
+  [_LT_TAGVAR(lt_cv_prog_compiler_pic, $1)],
+  [_LT_TAGVAR(lt_cv_prog_compiler_pic, $1)=$_LT_TAGVAR(lt_prog_compiler_pic, $1)])
+_LT_TAGVAR(lt_prog_compiler_pic, $1)=$_LT_TAGVAR(lt_cv_prog_compiler_pic, $1)
+
+#
+# Check to make sure the PIC flag actually works.
+#
+if test -n "$_LT_TAGVAR(lt_prog_compiler_pic, $1)"; then
+  _LT_COMPILER_OPTION([if $compiler PIC flag $_LT_TAGVAR(lt_prog_compiler_pic, $1) works],
+    [_LT_TAGVAR(lt_cv_prog_compiler_pic_works, $1)],
+    [$_LT_TAGVAR(lt_prog_compiler_pic, $1)@&t@m4_if([$1],[],[ -DPIC],[m4_if([$1],[CXX],[ -DPIC],[])])], [],
+    [case $_LT_TAGVAR(lt_prog_compiler_pic, $1) in
+     "" | " "*) ;;
+     *) _LT_TAGVAR(lt_prog_compiler_pic, $1)=" $_LT_TAGVAR(lt_prog_compiler_pic, $1)" ;;
+     esac],
+    [_LT_TAGVAR(lt_prog_compiler_pic, $1)=
+     _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no])
+fi
+_LT_TAGDECL([pic_flag], [lt_prog_compiler_pic], [1],
+       [Additional compiler flags for building library objects])
+
+_LT_TAGDECL([wl], [lt_prog_compiler_wl], [1],
+       [How to pass a linker flag through the compiler])
+#
+# Check to make sure the static flag actually works.
+#
+wl=$_LT_TAGVAR(lt_prog_compiler_wl, $1) eval lt_tmp_static_flag=\"$_LT_TAGVAR(lt_prog_compiler_static, $1)\"
+_LT_LINKER_OPTION([if $compiler static flag $lt_tmp_static_flag works],
+  _LT_TAGVAR(lt_cv_prog_compiler_static_works, $1),
+  $lt_tmp_static_flag,
+  [],
+  [_LT_TAGVAR(lt_prog_compiler_static, $1)=])
+_LT_TAGDECL([link_static_flag], [lt_prog_compiler_static], [1],
+       [Compiler flag to prevent dynamic linking])
+])# _LT_COMPILER_PIC
+
+
+# _LT_LINKER_SHLIBS([TAGNAME])
+# ----------------------------
+# See if the linker supports building shared libraries.
+m4_defun([_LT_LINKER_SHLIBS],
+[AC_REQUIRE([LT_PATH_LD])dnl
+AC_REQUIRE([LT_PATH_NM])dnl
+m4_require([_LT_PATH_MANIFEST_TOOL])dnl
+m4_require([_LT_FILEUTILS_DEFAULTS])dnl
+m4_require([_LT_DECL_EGREP])dnl
+m4_require([_LT_DECL_SED])dnl
+m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl
+m4_require([_LT_TAG_COMPILER])dnl
+AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries])
+m4_if([$1], [CXX], [
+  _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
+  _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*']
+  case $host_os in
+  aix[[4-9]]*)
+    # If we're using GNU nm, then we don't want the "-C" option.
+    # -C means demangle to AIX nm, but means don't demangle with GNU nm
+    # Also, AIX nm treats weak defined symbols like other global defined
+    # symbols, whereas GNU nm marks them as "W".
+    if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then
+      _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
+    else
+      _LT_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
+    fi
+    ;;
+  pw32*)
+    _LT_TAGVAR(export_symbols_cmds, $1)="$ltdll_cmds"
+    ;;
+  cygwin* | mingw* | cegcc*)
+    case $cc_basename in
+    cl*)
+      _LT_TAGVAR(exclude_expsyms, $1)='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*'
+      ;;
+    *)
+      _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols'
+      _LT_TAGVAR(exclude_expsyms, $1)=['[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname']
+      ;;
+    esac
+    ;;
+  *)
+    _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
+    ;;
+  esac
+], [
+  runpath_var=
+  _LT_TAGVAR(allow_undefined_flag, $1)=
+  _LT_TAGVAR(always_export_symbols, $1)=no
+  _LT_TAGVAR(archive_cmds, $1)=
+  _LT_TAGVAR(archive_expsym_cmds, $1)=
+  _LT_TAGVAR(compiler_needs_object, $1)=no
+  _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no
+  _LT_TAGVAR(export_dynamic_flag_spec, $1)=
+  _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
+  _LT_TAGVAR(hardcode_automatic, $1)=no
+  _LT_TAGVAR(hardcode_direct, $1)=no
+  _LT_TAGVAR(hardcode_direct_absolute, $1)=no
+  _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=
+  _LT_TAGVAR(hardcode_libdir_separator, $1)=
+  _LT_TAGVAR(hardcode_minus_L, $1)=no
+  _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported
+  _LT_TAGVAR(inherit_rpath, $1)=no
+  _LT_TAGVAR(link_all_deplibs, $1)=unknown
+  _LT_TAGVAR(module_cmds, $1)=
+  _LT_TAGVAR(module_expsym_cmds, $1)=
+  _LT_TAGVAR(old_archive_from_new_cmds, $1)=
+  _LT_TAGVAR(old_archive_from_expsyms_cmds, $1)=
+  _LT_TAGVAR(thread_safe_flag_spec, $1)=
+  _LT_TAGVAR(whole_archive_flag_spec, $1)=
+  # include_expsyms should be a list of space-separated symbols to be *always*
+  # included in the symbol list
+  _LT_TAGVAR(include_expsyms, $1)=
+  # exclude_expsyms can be an extended regexp of symbols to exclude
+  # it will be wrapped by ` (' and `)$', so one must not match beginning or
+  # end of line.  Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc',
+  # as well as any symbol that contains `d'.
+  _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*']
+  # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out
+  # platforms (ab)use it in PIC code, but their linkers get confused if
+  # the symbol is explicitly referenced.  Since portable code cannot
+  # rely on this symbol name, it's probably fine to never include it in
+  # preloaded symbol tables.
+  # Exclude shared library initialization/finalization symbols.
+dnl Note also adjust exclude_expsyms for C++ above.
+  extract_expsyms_cmds=
+
+  case $host_os in
+  cygwin* | mingw* | pw32* | cegcc*)
+    # FIXME: the MSVC++ port hasn't been tested in a loooong time
+    # When not using gcc, we currently assume that we are using
+    # Microsoft Visual C++.
+    if test "$GCC" != yes; then
+      with_gnu_ld=no
+    fi
+    ;;
+  interix*)
+    # we just hope/assume this is gcc and not c89 (= MSVC++)
+    with_gnu_ld=yes
+    ;;
+  openbsd*)
+    with_gnu_ld=no
+    ;;
+  esac
+
+  _LT_TAGVAR(ld_shlibs, $1)=yes
+
+  # On some targets, GNU ld is compatible enough with the native linker
+  # that we're better off using the native interface for both.
+  lt_use_gnu_ld_interface=no
+  if test "$with_gnu_ld" = yes; then
+    case $host_os in
+      aix*)
+       # The AIX port of GNU ld has always aspired to compatibility
+       # with the native linker.  However, as the warning in the GNU ld
+       # block says, versions before 2.19.5* couldn't really create working
+       # shared libraries, regardless of the interface used.
+       case `$LD -v 2>&1` in
+         *\ \(GNU\ Binutils\)\ 2.19.5*) ;;
+         *\ \(GNU\ Binutils\)\ 2.[[2-9]]*) ;;
+         *\ \(GNU\ Binutils\)\ [[3-9]]*) ;;
+         *)
+           lt_use_gnu_ld_interface=yes
+           ;;
+       esac
+       ;;
+      *)
+       lt_use_gnu_ld_interface=yes
+       ;;
+    esac
+  fi
+
+  if test "$lt_use_gnu_ld_interface" = yes; then
+    # If archive_cmds runs LD, not CC, wlarc should be empty
+    wlarc='${wl}'
+
+    # Set some defaults for GNU ld with shared library support. These
+    # are reset later if shared libraries are not supported. Putting them
+    # here allows them to be overridden if necessary.
+    runpath_var=LD_RUN_PATH
+    _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
+    _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
+    # ancient GNU ld didn't support --whole-archive et. al.
+    if $LD --help 2>&1 | $GREP 'no-whole-archive' > /dev/null; then
+      _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
+    else
+      _LT_TAGVAR(whole_archive_flag_spec, $1)=
+    fi
+    supports_anon_versioning=no
+    case `$LD -v 2>&1` in
+      *GNU\ gold*) supports_anon_versioning=yes ;;
+      *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.10.*) ;; # catch versions < 2.11
+      *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ...
+      *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ...
+      *\ 2.11.*) ;; # other 2.11 versions
+      *) supports_anon_versioning=yes ;;
+    esac
+
+    # See if GNU ld supports shared libraries.
+    case $host_os in
+    aix[[3-9]]*)
+      # On AIX/PPC, the GNU linker is very broken
+      if test "$host_cpu" != ia64; then
+       _LT_TAGVAR(ld_shlibs, $1)=no
+       cat <<_LT_EOF 1>&2
+
+*** Warning: the GNU linker, at least up to release 2.19, is reported
+*** to be unable to reliably create shared libraries on AIX.
+*** Therefore, libtool is disabling shared libraries support.  If you
+*** really care for shared libraries, you may want to install binutils
+*** 2.20 or above, or modify your PATH so that a non-GNU linker is found.
+*** You will then need to restart the configuration process.
+
+_LT_EOF
+      fi
+      ;;
+
+    amigaos*)
+      case $host_cpu in
+      powerpc)
+            # see comment about AmigaOS4 .so support
+            _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+            _LT_TAGVAR(archive_expsym_cmds, $1)=''
+        ;;
+      m68k)
+            _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
+            _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+            _LT_TAGVAR(hardcode_minus_L, $1)=yes
+        ;;
+      esac
+      ;;
+
+    beos*)
+      if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
+       _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
+       # Joseph Beckenbach <jrb3@best.com> says some releases of gcc
+       # support --undefined.  This deserves some investigation.  FIXME
+       _LT_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+      else
+       _LT_TAGVAR(ld_shlibs, $1)=no
+      fi
+      ;;
+
+    cygwin* | mingw* | pw32* | cegcc*)
+      # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless,
+      # as there is no search path for DLLs.
+      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+      _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-all-symbols'
+      _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
+      _LT_TAGVAR(always_export_symbols, $1)=no
+      _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
+      _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols'
+      _LT_TAGVAR(exclude_expsyms, $1)=['[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname']
+
+      if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then
+        _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
+       # If the export-symbols file already is a .def file (1st line
+       # is EXPORTS), use it as is; otherwise, prepend...
+       _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
+         cp $export_symbols $output_objdir/$soname.def;
+       else
+         echo EXPORTS > $output_objdir/$soname.def;
+         cat $export_symbols >> $output_objdir/$soname.def;
+       fi~
+       $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
+      else
+       _LT_TAGVAR(ld_shlibs, $1)=no
+      fi
+      ;;
+
+    haiku*)
+      _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+      _LT_TAGVAR(link_all_deplibs, $1)=yes
+      ;;
+
+    interix[[3-9]]*)
+      _LT_TAGVAR(hardcode_direct, $1)=no
+      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
+      _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
+      # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc.
+      # Instead, shared libraries are loaded at an image base (0x10000000 by
+      # default) and relocated if they conflict, which is a slow very memory
+      # consuming and fragmenting process.  To avoid this, we pick a random,
+      # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link
+      # time.  Moving up from 0x10000000 also allows more sbrk(2) space.
+      _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
+      _LT_TAGVAR(archive_expsym_cmds, $1)='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
+      ;;
+
+    gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu)
+      tmp_diet=no
+      if test "$host_os" = linux-dietlibc; then
+       case $cc_basename in
+         diet\ *) tmp_diet=yes;;       # linux-dietlibc with static linking (!diet-dyn)
+       esac
+      fi
+      if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \
+        && test "$tmp_diet" = no
+      then
+       tmp_addflag=' $pic_flag'
+       tmp_sharedflag='-shared'
+       case $cc_basename,$host_cpu in
+        pgcc*)                         # Portland Group C compiler
+         _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
+         tmp_addflag=' $pic_flag'
+         ;;
+       pgf77* | pgf90* | pgf95* | pgfortran*)
+                                       # Portland Group f77 and f90 compilers
+         _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
+         tmp_addflag=' $pic_flag -Mnomain' ;;
+       ecc*,ia64* | icc*,ia64*)        # Intel C compiler on ia64
+         tmp_addflag=' -i_dynamic' ;;
+       efc*,ia64* | ifort*,ia64*)      # Intel Fortran compiler on ia64
+         tmp_addflag=' -i_dynamic -nofor_main' ;;
+       ifc* | ifort*)                  # Intel Fortran compiler
+         tmp_addflag=' -nofor_main' ;;
+       lf95*)                          # Lahey Fortran 8.1
+         _LT_TAGVAR(whole_archive_flag_spec, $1)=
+         tmp_sharedflag='--shared' ;;
+       xl[[cC]]* | bgxl[[cC]]* | mpixl[[cC]]*) # IBM XL C 8.0 on PPC (deal with xlf below)
+         tmp_sharedflag='-qmkshrobj'
+         tmp_addflag= ;;
+       nvcc*)  # Cuda Compiler Driver 2.2
+         _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
+         _LT_TAGVAR(compiler_needs_object, $1)=yes
+         ;;
+       esac
+       case `$CC -V 2>&1 | sed 5q` in
+       *Sun\ C*)                       # Sun C 5.9
+         _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
+         _LT_TAGVAR(compiler_needs_object, $1)=yes
+         tmp_sharedflag='-G' ;;
+       *Sun\ F*)                       # Sun Fortran 8.3
+         tmp_sharedflag='-G' ;;
+       esac
+       _LT_TAGVAR(archive_cmds, $1)='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+
+        if test "x$supports_anon_versioning" = xyes; then
+          _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~
+           cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
+           echo "local: *; };" >> $output_objdir/$libname.ver~
+           $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib'
+        fi
+
+       case $cc_basename in
+       xlf* | bgf* | bgxlf* | mpixlf*)
+         # IBM XL Fortran 10.1 on PPC cannot create shared libs itself
+         _LT_TAGVAR(whole_archive_flag_spec, $1)='--whole-archive$convenience --no-whole-archive'
+         _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
+         _LT_TAGVAR(archive_cmds, $1)='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib'
+         if test "x$supports_anon_versioning" = xyes; then
+           _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~
+             cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
+             echo "local: *; };" >> $output_objdir/$libname.ver~
+             $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib'
+         fi
+         ;;
+       esac
+      else
+        _LT_TAGVAR(ld_shlibs, $1)=no
+      fi
+      ;;
+
+    netbsd*)
+      if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
+       _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib'
+       wlarc=
+      else
+       _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+       _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+      fi
+      ;;
+
+    solaris*)
+      if $LD -v 2>&1 | $GREP 'BFD 2\.8' > /dev/null; then
+       _LT_TAGVAR(ld_shlibs, $1)=no
+       cat <<_LT_EOF 1>&2
+
+*** Warning: The releases 2.8.* of the GNU linker cannot reliably
+*** create shared libraries on Solaris systems.  Therefore, libtool
+*** is disabling shared libraries support.  We urge you to upgrade GNU
+*** binutils to release 2.9.1 or newer.  Another option is to modify
+*** your PATH or compiler configuration so that the native linker is
+*** used, and then restart.
+
+_LT_EOF
+      elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
+       _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+       _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+      else
+       _LT_TAGVAR(ld_shlibs, $1)=no
+      fi
+      ;;
+
+    sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*)
+      case `$LD -v 2>&1` in
+        *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.1[[0-5]].*)
+       _LT_TAGVAR(ld_shlibs, $1)=no
+       cat <<_LT_EOF 1>&2
+
+*** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not
+*** reliably create shared libraries on SCO systems.  Therefore, libtool
+*** is disabling shared libraries support.  We urge you to upgrade GNU
+*** binutils to release 2.16.91.0.3 or newer.  Another option is to modify
+*** your PATH or compiler configuration so that the native linker is
+*** used, and then restart.
+
+_LT_EOF
+       ;;
+       *)
+         # For security reasons, it is highly recommended that you always
+         # use absolute paths for naming shared libraries, and exclude the
+         # DT_RUNPATH tag from executables and libraries.  But doing so
+         # requires that you compile everything twice, which is a pain.
+         if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
+           _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
+           _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+           _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+         else
+           _LT_TAGVAR(ld_shlibs, $1)=no
+         fi
+       ;;
+      esac
+      ;;
+
+    sunos4*)
+      _LT_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags'
+      wlarc=
+      _LT_TAGVAR(hardcode_direct, $1)=yes
+      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+      ;;
+
+    *)
+      if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
+       _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+       _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+      else
+       _LT_TAGVAR(ld_shlibs, $1)=no
+      fi
+      ;;
+    esac
+
+    if test "$_LT_TAGVAR(ld_shlibs, $1)" = no; then
+      runpath_var=
+      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=
+      _LT_TAGVAR(export_dynamic_flag_spec, $1)=
+      _LT_TAGVAR(whole_archive_flag_spec, $1)=
+    fi
+  else
+    # PORTME fill in a description of your system's linker (not GNU ld)
+    case $host_os in
+    aix3*)
+      _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
+      _LT_TAGVAR(always_export_symbols, $1)=yes
+      _LT_TAGVAR(archive_expsym_cmds, $1)='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname'
+      # Note: this linker hardcodes the directories in LIBPATH if there
+      # are no directories specified by -L.
+      _LT_TAGVAR(hardcode_minus_L, $1)=yes
+      if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then
+       # Neither direct hardcoding nor static linking is supported with a
+       # broken collect2.
+       _LT_TAGVAR(hardcode_direct, $1)=unsupported
+      fi
+      ;;
+
+    aix[[4-9]]*)
+      if test "$host_cpu" = ia64; then
+       # On IA64, the linker does run time linking by default, so we don't
+       # have to do anything special.
+       aix_use_runtimelinking=no
+       exp_sym_flag='-Bexport'
+       no_entry_flag=""
+      else
+       # If we're using GNU nm, then we don't want the "-C" option.
+       # -C means demangle to AIX nm, but means don't demangle with GNU nm
+       # Also, AIX nm treats weak defined symbols like other global
+       # defined symbols, whereas GNU nm marks them as "W".
+       if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then
+         _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
+       else
+         _LT_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
+       fi
+       aix_use_runtimelinking=no
+
+       # Test if we are trying to use run time linking or normal
+       # AIX style linking. If -brtl is somewhere in LDFLAGS, we
+       # need to do runtime linking.
+       case $host_os in aix4.[[23]]|aix4.[[23]].*|aix[[5-9]]*)
+         for ld_flag in $LDFLAGS; do
+         if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then
+           aix_use_runtimelinking=yes
+           break
+         fi
+         done
+         ;;
+       esac
+
+       exp_sym_flag='-bexport'
+       no_entry_flag='-bnoentry'
+      fi
+
+      # When large executables or shared objects are built, AIX ld can
+      # have problems creating the table of contents.  If linking a library
+      # or program results in "error TOC overflow" add -mminimal-toc to
+      # CXXFLAGS/CFLAGS for g++/gcc.  In the cases where that is not
+      # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS.
+
+      _LT_TAGVAR(archive_cmds, $1)=''
+      _LT_TAGVAR(hardcode_direct, $1)=yes
+      _LT_TAGVAR(hardcode_direct_absolute, $1)=yes
+      _LT_TAGVAR(hardcode_libdir_separator, $1)=':'
+      _LT_TAGVAR(link_all_deplibs, $1)=yes
+      _LT_TAGVAR(file_list_spec, $1)='${wl}-f,'
+
+      if test "$GCC" = yes; then
+       case $host_os in aix4.[[012]]|aix4.[[012]].*)
+       # We only want to do this on AIX 4.2 and lower, the check
+       # below for broken collect2 doesn't work under 4.3+
+         collect2name=`${CC} -print-prog-name=collect2`
+         if test -f "$collect2name" &&
+          strings "$collect2name" | $GREP resolve_lib_name >/dev/null
+         then
+         # We have reworked collect2
+         :
+         else
+         # We have old collect2
+         _LT_TAGVAR(hardcode_direct, $1)=unsupported
+         # It fails to find uninstalled libraries when the uninstalled
+         # path is not listed in the libpath.  Setting hardcode_minus_L
+         # to unsupported forces relinking
+         _LT_TAGVAR(hardcode_minus_L, $1)=yes
+         _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+         _LT_TAGVAR(hardcode_libdir_separator, $1)=
+         fi
+         ;;
+       esac
+       shared_flag='-shared'
+       if test "$aix_use_runtimelinking" = yes; then
+         shared_flag="$shared_flag "'${wl}-G'
+       fi
+      else
+       # not using gcc
+       if test "$host_cpu" = ia64; then
+       # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release
+       # chokes on -Wl,-G. The following line is correct:
+         shared_flag='-G'
+       else
+         if test "$aix_use_runtimelinking" = yes; then
+           shared_flag='${wl}-G'
+         else
+           shared_flag='${wl}-bM:SRE'
+         fi
+       fi
+      fi
+
+      _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-bexpall'
+      # It seems that -bexpall does not export symbols beginning with
+      # underscore (_), so it is better to generate a list of symbols to export.
+      _LT_TAGVAR(always_export_symbols, $1)=yes
+      if test "$aix_use_runtimelinking" = yes; then
+       # Warning - without using the other runtime loading flags (-brtl),
+       # -berok will link without error, but may produce a broken library.
+       _LT_TAGVAR(allow_undefined_flag, $1)='-berok'
+        # Determine the default libpath from the value encoded in an
+        # empty executable.
+        _LT_SYS_MODULE_PATH_AIX([$1])
+        _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath"
+        _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"
+      else
+       if test "$host_cpu" = ia64; then
+         _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib'
+         _LT_TAGVAR(allow_undefined_flag, $1)="-z nodefs"
+         _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols"
+       else
+        # Determine the default libpath from the value encoded in an
+        # empty executable.
+        _LT_SYS_MODULE_PATH_AIX([$1])
+        _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath"
+         # Warning - without using the other run time loading flags,
+         # -berok will link without error, but may produce a broken library.
+         _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok'
+         _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok'
+         if test "$with_gnu_ld" = yes; then
+           # We only use this code for GNU lds that support --whole-archive.
+           _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive'
+         else
+           # Exported symbols can be pulled into shared objects from archives
+           _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience'
+         fi
+         _LT_TAGVAR(archive_cmds_need_lc, $1)=yes
+         # This is similar to how AIX traditionally builds its shared libraries.
+         _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname'
+       fi
+      fi
+      ;;
+
+    amigaos*)
+      case $host_cpu in
+      powerpc)
+            # see comment about AmigaOS4 .so support
+            _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+            _LT_TAGVAR(archive_expsym_cmds, $1)=''
+        ;;
+      m68k)
+            _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
+            _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+            _LT_TAGVAR(hardcode_minus_L, $1)=yes
+        ;;
+      esac
+      ;;
+
+    bsdi[[45]]*)
+      _LT_TAGVAR(export_dynamic_flag_spec, $1)=-rdynamic
+      ;;
+
+    cygwin* | mingw* | pw32* | cegcc*)
+      # When not using gcc, we currently assume that we are using
+      # Microsoft Visual C++.
+      # hardcode_libdir_flag_spec is actually meaningless, as there is
+      # no search path for DLLs.
+      case $cc_basename in
+      cl*)
+       # Native MSVC
+       _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' '
+       _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
+       _LT_TAGVAR(always_export_symbols, $1)=yes
+       _LT_TAGVAR(file_list_spec, $1)='@'
+       # Tell ltmain to make .lib files, not .a files.
+       libext=lib
+       # Tell ltmain to make .dll files, not .so files.
+       shrext_cmds=".dll"
+       # FIXME: Setting linknames here is a bad hack.
+       _LT_TAGVAR(archive_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames='
+       _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
+           sed -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp;
+         else
+           sed -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp;
+         fi~
+         $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~
+         linknames='
+       # The linker will not automatically build a static lib if we build a DLL.
+       # _LT_TAGVAR(old_archive_from_new_cmds, $1)='true'
+       _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
+       _LT_TAGVAR(exclude_expsyms, $1)='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*'
+       _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1,DATA/'\'' | $SED -e '\''/^[[AITW]][[ ]]/s/.*[[ ]]//'\'' | sort | uniq > $export_symbols'
+       # Don't use ranlib
+       _LT_TAGVAR(old_postinstall_cmds, $1)='chmod 644 $oldlib'
+       _LT_TAGVAR(postlink_cmds, $1)='lt_outputfile="@OUTPUT@"~
+         lt_tool_outputfile="@TOOL_OUTPUT@"~
+         case $lt_outputfile in
+           *.exe|*.EXE) ;;
+           *)
+             lt_outputfile="$lt_outputfile.exe"
+             lt_tool_outputfile="$lt_tool_outputfile.exe"
+             ;;
+         esac~
+         if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then
+           $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1;
+           $RM "$lt_outputfile.manifest";
+         fi'
+       ;;
+      *)
+       # Assume MSVC wrapper
+       _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' '
+       _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
+       # Tell ltmain to make .lib files, not .a files.
+       libext=lib
+       # Tell ltmain to make .dll files, not .so files.
+       shrext_cmds=".dll"
+       # FIXME: Setting linknames here is a bad hack.
+       _LT_TAGVAR(archive_cmds, $1)='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames='
+       # The linker will automatically build a .lib file if we build a DLL.
+       _LT_TAGVAR(old_archive_from_new_cmds, $1)='true'
+       # FIXME: Should let the user specify the lib program.
+       _LT_TAGVAR(old_archive_cmds, $1)='lib -OUT:$oldlib$oldobjs$old_deplibs'
+       _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
+       ;;
+      esac
+      ;;
+
+    darwin* | rhapsody*)
+      _LT_DARWIN_LINKER_FEATURES($1)
+      ;;
+
+    dgux*)
+      _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+      ;;
+
+    # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor
+    # support.  Future versions do this automatically, but an explicit c++rt0.o
+    # does not break anything, and helps significantly (at the cost of a little
+    # extra space).
+    freebsd2.2*)
+      _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o'
+      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
+      _LT_TAGVAR(hardcode_direct, $1)=yes
+      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+      ;;
+
+    # Unfortunately, older versions of FreeBSD 2 do not have this feature.
+    freebsd2.*)
+      _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
+      _LT_TAGVAR(hardcode_direct, $1)=yes
+      _LT_TAGVAR(hardcode_minus_L, $1)=yes
+      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+      ;;
+
+    # FreeBSD 3 and greater uses gcc -shared to do shared libraries.
+    freebsd* | dragonfly*)
+      _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
+      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
+      _LT_TAGVAR(hardcode_direct, $1)=yes
+      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+      ;;
+
+    hpux9*)
+      if test "$GCC" = yes; then
+       _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
+      else
+       _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
+      fi
+      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
+      _LT_TAGVAR(hardcode_libdir_separator, $1)=:
+      _LT_TAGVAR(hardcode_direct, $1)=yes
+
+      # hardcode_minus_L: Not really in the search PATH,
+      # but as the default location of the library.
+      _LT_TAGVAR(hardcode_minus_L, $1)=yes
+      _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
+      ;;
+
+    hpux10*)
+      if test "$GCC" = yes && test "$with_gnu_ld" = no; then
+       _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
+      else
+       _LT_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'
+      fi
+      if test "$with_gnu_ld" = no; then
+       _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
+       _LT_TAGVAR(hardcode_libdir_separator, $1)=:
+       _LT_TAGVAR(hardcode_direct, $1)=yes
+       _LT_TAGVAR(hardcode_direct_absolute, $1)=yes
+       _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
+       # hardcode_minus_L: Not really in the search PATH,
+       # but as the default location of the library.
+       _LT_TAGVAR(hardcode_minus_L, $1)=yes
+      fi
+      ;;
+
+    hpux11*)
+      if test "$GCC" = yes && test "$with_gnu_ld" = no; then
+       case $host_cpu in
+       hppa*64*)
+         _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
+         ;;
+       ia64*)
+         _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
+         ;;
+       *)
+         _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
+         ;;
+       esac
+      else
+       case $host_cpu in
+       hppa*64*)
+         _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
+         ;;
+       ia64*)
+         _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
+         ;;
+       *)
+       m4_if($1, [], [
+         # Older versions of the 11.00 compiler do not understand -b yet
+         # (HP92453-01 A.11.01.20 doesn't, HP92453-01 B.11.X.35175-35176.GP does)
+         _LT_LINKER_OPTION([if $CC understands -b],
+           _LT_TAGVAR(lt_cv_prog_compiler__b, $1), [-b],
+           [_LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'],
+           [_LT_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'])],
+         [_LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'])
+         ;;
+       esac
+      fi
+      if test "$with_gnu_ld" = no; then
+       _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
+       _LT_TAGVAR(hardcode_libdir_separator, $1)=:
+
+       case $host_cpu in
+       hppa*64*|ia64*)
+         _LT_TAGVAR(hardcode_direct, $1)=no
+         _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+         ;;
+       *)
+         _LT_TAGVAR(hardcode_direct, $1)=yes
+         _LT_TAGVAR(hardcode_direct_absolute, $1)=yes
+         _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
+
+         # hardcode_minus_L: Not really in the search PATH,
+         # but as the default location of the library.
+         _LT_TAGVAR(hardcode_minus_L, $1)=yes
+         ;;
+       esac
+      fi
+      ;;
+
+    irix5* | irix6* | nonstopux*)
+      if test "$GCC" = yes; then
+       _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+       # Try to use the -exported_symbol ld option, if it does not
+       # work, assume that -exports_file does not work either and
+       # implicitly export all symbols.
+       # This should be the same for all languages, so no per-tag cache variable.
+       AC_CACHE_CHECK([whether the $host_os linker accepts -exported_symbol],
+         [lt_cv_irix_exported_symbol],
+         [save_LDFLAGS="$LDFLAGS"
+          LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null"
+          AC_LINK_IFELSE(
+            [AC_LANG_SOURCE(
+               [AC_LANG_CASE([C], [[int foo (void) { return 0; }]],
+                             [C++], [[int foo (void) { return 0; }]],
+                             [Fortran 77], [[
+      subroutine foo
+      end]],
+                             [Fortran], [[
+      subroutine foo
+      end]])])],
+             [lt_cv_irix_exported_symbol=yes],
+             [lt_cv_irix_exported_symbol=no])
+           LDFLAGS="$save_LDFLAGS"])
+       if test "$lt_cv_irix_exported_symbol" = yes; then
+          _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib'
+       fi
+      else
+       _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
+       _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib'
+      fi
+      _LT_TAGVAR(archive_cmds_need_lc, $1)='no'
+      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
+      _LT_TAGVAR(hardcode_libdir_separator, $1)=:
+      _LT_TAGVAR(inherit_rpath, $1)=yes
+      _LT_TAGVAR(link_all_deplibs, $1)=yes
+      ;;
+
+    netbsd*)
+      if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
+       _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'  # a.out
+      else
+       _LT_TAGVAR(archive_cmds, $1)='$LD -shared -o $lib $libobjs $deplibs $linker_flags'      # ELF
+      fi
+      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
+      _LT_TAGVAR(hardcode_direct, $1)=yes
+      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+      ;;
+
+    newsos6)
+      _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+      _LT_TAGVAR(hardcode_direct, $1)=yes
+      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
+      _LT_TAGVAR(hardcode_libdir_separator, $1)=:
+      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+      ;;
+
+    *nto* | *qnx*)
+      ;;
+
+    openbsd*)
+      if test -f /usr/libexec/ld.so; then
+       _LT_TAGVAR(hardcode_direct, $1)=yes
+       _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+       _LT_TAGVAR(hardcode_direct_absolute, $1)=yes
+       if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+         _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
+         _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols'
+         _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
+         _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
+       else
+         case $host_os in
+          openbsd[[01]].* | openbsd2.[[0-7]] | openbsd2.[[0-7]].*)
+            _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
+            _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
+            ;;
+          *)
+            _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
+            _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
+            ;;
+         esac
+       fi
+      else
+       _LT_TAGVAR(ld_shlibs, $1)=no
+      fi
+      ;;
+
+    os2*)
+      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+      _LT_TAGVAR(hardcode_minus_L, $1)=yes
+      _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
+      _LT_TAGVAR(archive_cmds, $1)='$ECHO "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~echo DATA >> $output_objdir/$libname.def~echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def'
+      _LT_TAGVAR(old_archive_from_new_cmds, $1)='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def'
+      ;;
+
+    osf3*)
+      if test "$GCC" = yes; then
+       _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
+       _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+      else
+       _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*'
+       _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
+      fi
+      _LT_TAGVAR(archive_cmds_need_lc, $1)='no'
+      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
+      _LT_TAGVAR(hardcode_libdir_separator, $1)=:
+      ;;
+
+    osf4* | osf5*)     # as osf3* with the addition of -msym flag
+      if test "$GCC" = yes; then
+       _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
+       _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $pic_flag $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+       _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
+      else
+       _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*'
+       _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
+       _LT_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~
+       $CC -shared${allow_undefined_flag} ${wl}-input ${wl}$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib~$RM $lib.exp'
+
+       # Both c and cxx compiler support -rpath directly
+       _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir'
+      fi
+      _LT_TAGVAR(archive_cmds_need_lc, $1)='no'
+      _LT_TAGVAR(hardcode_libdir_separator, $1)=:
+      ;;
+
+    solaris*)
+      _LT_TAGVAR(no_undefined_flag, $1)=' -z defs'
+      if test "$GCC" = yes; then
+       wlarc='${wl}'
+       _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
+       _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
+         $CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp'
+      else
+       case `$CC -V 2>&1` in
+       *"Compilers 5.0"*)
+         wlarc=''
+         _LT_TAGVAR(archive_cmds, $1)='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags'
+         _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
+         $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$RM $lib.exp'
+         ;;
+       *)
+         wlarc='${wl}'
+         _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $compiler_flags'
+         _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
+         $CC -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp'
+         ;;
+       esac
+      fi
+      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
+      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+      case $host_os in
+      solaris2.[[0-5]] | solaris2.[[0-5]].*) ;;
+      *)
+       # The compiler driver will combine and reorder linker options,
+       # but understands `-z linker_flag'.  GCC discards it without `$wl',
+       # but is careful enough not to reorder.
+       # Supported since Solaris 2.6 (maybe 2.5.1?)
+       if test "$GCC" = yes; then
+         _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract'
+       else
+         _LT_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract'
+       fi
+       ;;
+      esac
+      _LT_TAGVAR(link_all_deplibs, $1)=yes
+      ;;
+
+    sunos4*)
+      if test "x$host_vendor" = xsequent; then
+       # Use $CC to link under sequent, because it throws in some extra .o
+       # files that make .init and .fini sections work.
+       _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags'
+      else
+       _LT_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags'
+      fi
+      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+      _LT_TAGVAR(hardcode_direct, $1)=yes
+      _LT_TAGVAR(hardcode_minus_L, $1)=yes
+      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+      ;;
+
+    sysv4)
+      case $host_vendor in
+       sni)
+         _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+         _LT_TAGVAR(hardcode_direct, $1)=yes # is this really true???
+       ;;
+       siemens)
+         ## LD is ld it makes a PLAMLIB
+         ## CC just makes a GrossModule.
+         _LT_TAGVAR(archive_cmds, $1)='$LD -G -o $lib $libobjs $deplibs $linker_flags'
+         _LT_TAGVAR(reload_cmds, $1)='$CC -r -o $output$reload_objs'
+         _LT_TAGVAR(hardcode_direct, $1)=no
+        ;;
+       motorola)
+         _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+         _LT_TAGVAR(hardcode_direct, $1)=no #Motorola manual says yes, but my tests say they lie
+       ;;
+      esac
+      runpath_var='LD_RUN_PATH'
+      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+      ;;
+
+    sysv4.3*)
+      _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+      _LT_TAGVAR(export_dynamic_flag_spec, $1)='-Bexport'
+      ;;
+
+    sysv4*MP*)
+      if test -d /usr/nec; then
+       _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+       _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+       runpath_var=LD_RUN_PATH
+       hardcode_runpath_var=yes
+       _LT_TAGVAR(ld_shlibs, $1)=yes
+      fi
+      ;;
+
+    sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*)
+      _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text'
+      _LT_TAGVAR(archive_cmds_need_lc, $1)=no
+      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+      runpath_var='LD_RUN_PATH'
+
+      if test "$GCC" = yes; then
+       _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+       _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+      else
+       _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+       _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+      fi
+      ;;
+
+    sysv5* | sco3.2v5* | sco5v6*)
+      # Note: We can NOT use -z defs as we might desire, because we do not
+      # link with -lc, and that would cause any symbols used from libc to
+      # always be unresolved, which means just about no library would
+      # ever link correctly.  If we're not using GNU ld we use -z text
+      # though, which does catch some bad symbols but isn't as heavy-handed
+      # as -z defs.
+      _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text'
+      _LT_TAGVAR(allow_undefined_flag, $1)='${wl}-z,nodefs'
+      _LT_TAGVAR(archive_cmds_need_lc, $1)=no
+      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R,$libdir'
+      _LT_TAGVAR(hardcode_libdir_separator, $1)=':'
+      _LT_TAGVAR(link_all_deplibs, $1)=yes
+      _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Bexport'
+      runpath_var='LD_RUN_PATH'
+
+      if test "$GCC" = yes; then
+       _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+       _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+      else
+       _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+       _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+      fi
+      ;;
+
+    uts4*)
+      _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+      ;;
+
+    *)
+      _LT_TAGVAR(ld_shlibs, $1)=no
+      ;;
+    esac
+
+    if test x$host_vendor = xsni; then
+      case $host in
+      sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
+       _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Blargedynsym'
+       ;;
+      esac
+    fi
+  fi
+])
+AC_MSG_RESULT([$_LT_TAGVAR(ld_shlibs, $1)])
+test "$_LT_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no
+
+_LT_TAGVAR(with_gnu_ld, $1)=$with_gnu_ld
+
+_LT_DECL([], [libext], [0], [Old archive suffix (normally "a")])dnl
+_LT_DECL([], [shrext_cmds], [1], [Shared library suffix (normally ".so")])dnl
+_LT_DECL([], [extract_expsyms_cmds], [2],
+    [The commands to extract the exported symbol list from a shared archive])
+
+#
+# Do we need to explicitly link libc?
+#
+case "x$_LT_TAGVAR(archive_cmds_need_lc, $1)" in
+x|xyes)
+  # Assume -lc should be added
+  _LT_TAGVAR(archive_cmds_need_lc, $1)=yes
+
+  if test "$enable_shared" = yes && test "$GCC" = yes; then
+    case $_LT_TAGVAR(archive_cmds, $1) in
+    *'~'*)
+      # FIXME: we may have to deal with multi-command sequences.
+      ;;
+    '$CC '*)
+      # Test whether the compiler implicitly links with -lc since on some
+      # systems, -lgcc has to come before -lc. If gcc already passes -lc
+      # to ld, don't add -lc before -lgcc.
+      AC_CACHE_CHECK([whether -lc should be explicitly linked in],
+       [lt_cv_]_LT_TAGVAR(archive_cmds_need_lc, $1),
+       [$RM conftest*
+       echo "$lt_simple_compile_test_code" > conftest.$ac_ext
+
+       if AC_TRY_EVAL(ac_compile) 2>conftest.err; then
+         soname=conftest
+         lib=conftest
+         libobjs=conftest.$ac_objext
+         deplibs=
+         wl=$_LT_TAGVAR(lt_prog_compiler_wl, $1)
+         pic_flag=$_LT_TAGVAR(lt_prog_compiler_pic, $1)
+         compiler_flags=-v
+         linker_flags=-v
+         verstring=
+         output_objdir=.
+         libname=conftest
+         lt_save_allow_undefined_flag=$_LT_TAGVAR(allow_undefined_flag, $1)
+         _LT_TAGVAR(allow_undefined_flag, $1)=
+         if AC_TRY_EVAL(_LT_TAGVAR(archive_cmds, $1) 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1)
+         then
+           lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1)=no
+         else
+           lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1)=yes
+         fi
+         _LT_TAGVAR(allow_undefined_flag, $1)=$lt_save_allow_undefined_flag
+       else
+         cat conftest.err 1>&5
+       fi
+       $RM conftest*
+       ])
+      _LT_TAGVAR(archive_cmds_need_lc, $1)=$lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1)
+      ;;
+    esac
+  fi
+  ;;
+esac
+
+_LT_TAGDECL([build_libtool_need_lc], [archive_cmds_need_lc], [0],
+    [Whether or not to add -lc for building shared libraries])
+_LT_TAGDECL([allow_libtool_libs_with_static_runtimes],
+    [enable_shared_with_static_runtimes], [0],
+    [Whether or not to disallow shared libs when runtime libs are static])
+_LT_TAGDECL([], [export_dynamic_flag_spec], [1],
+    [Compiler flag to allow reflexive dlopens])
+_LT_TAGDECL([], [whole_archive_flag_spec], [1],
+    [Compiler flag to generate shared objects directly from archives])
+_LT_TAGDECL([], [compiler_needs_object], [1],
+    [Whether the compiler copes with passing no objects directly])
+_LT_TAGDECL([], [old_archive_from_new_cmds], [2],
+    [Create an old-style archive from a shared archive])
+_LT_TAGDECL([], [old_archive_from_expsyms_cmds], [2],
+    [Create a temporary old-style archive to link instead of a shared archive])
+_LT_TAGDECL([], [archive_cmds], [2], [Commands used to build a shared archive])
+_LT_TAGDECL([], [archive_expsym_cmds], [2])
+_LT_TAGDECL([], [module_cmds], [2],
+    [Commands used to build a loadable module if different from building
+    a shared archive.])
+_LT_TAGDECL([], [module_expsym_cmds], [2])
+_LT_TAGDECL([], [with_gnu_ld], [1],
+    [Whether we are building with GNU ld or not])
+_LT_TAGDECL([], [allow_undefined_flag], [1],
+    [Flag that allows shared libraries with undefined symbols to be built])
+_LT_TAGDECL([], [no_undefined_flag], [1],
+    [Flag that enforces no undefined symbols])
+_LT_TAGDECL([], [hardcode_libdir_flag_spec], [1],
+    [Flag to hardcode $libdir into a binary during linking.
+    This must work even if $libdir does not exist])
+_LT_TAGDECL([], [hardcode_libdir_separator], [1],
+    [Whether we need a single "-rpath" flag with a separated argument])
+_LT_TAGDECL([], [hardcode_direct], [0],
+    [Set to "yes" if using DIR/libNAME${shared_ext} during linking hardcodes
+    DIR into the resulting binary])
+_LT_TAGDECL([], [hardcode_direct_absolute], [0],
+    [Set to "yes" if using DIR/libNAME${shared_ext} during linking hardcodes
+    DIR into the resulting binary and the resulting library dependency is
+    "absolute", i.e impossible to change by setting ${shlibpath_var} if the
+    library is relocated])
+_LT_TAGDECL([], [hardcode_minus_L], [0],
+    [Set to "yes" if using the -LDIR flag during linking hardcodes DIR
+    into the resulting binary])
+_LT_TAGDECL([], [hardcode_shlibpath_var], [0],
+    [Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR
+    into the resulting binary])
+_LT_TAGDECL([], [hardcode_automatic], [0],
+    [Set to "yes" if building a shared library automatically hardcodes DIR
+    into the library and all subsequent libraries and executables linked
+    against it])
+_LT_TAGDECL([], [inherit_rpath], [0],
+    [Set to yes if linker adds runtime paths of dependent libraries
+    to runtime path list])
+_LT_TAGDECL([], [link_all_deplibs], [0],
+    [Whether libtool must link a program against all its dependency libraries])
+_LT_TAGDECL([], [always_export_symbols], [0],
+    [Set to "yes" if exported symbols are required])
+_LT_TAGDECL([], [export_symbols_cmds], [2],
+    [The commands to list exported symbols])
+_LT_TAGDECL([], [exclude_expsyms], [1],
+    [Symbols that should not be listed in the preloaded symbols])
+_LT_TAGDECL([], [include_expsyms], [1],
+    [Symbols that must always be exported])
+_LT_TAGDECL([], [prelink_cmds], [2],
+    [Commands necessary for linking programs (against libraries) with templates])
+_LT_TAGDECL([], [postlink_cmds], [2],
+    [Commands necessary for finishing linking programs])
+_LT_TAGDECL([], [file_list_spec], [1],
+    [Specify filename containing input files])
+dnl FIXME: Not yet implemented
+dnl _LT_TAGDECL([], [thread_safe_flag_spec], [1],
+dnl    [Compiler flag to generate thread safe objects])
+])# _LT_LINKER_SHLIBS
+
+
+# _LT_LANG_C_CONFIG([TAG])
+# ------------------------
+# Ensure that the configuration variables for a C compiler are suitably
+# defined.  These variables are subsequently used by _LT_CONFIG to write
+# the compiler configuration to `libtool'.
+m4_defun([_LT_LANG_C_CONFIG],
+[m4_require([_LT_DECL_EGREP])dnl
+lt_save_CC="$CC"
+AC_LANG_PUSH(C)
+
+# Source file extension for C test sources.
+ac_ext=c
+
+# Object file extension for compiled C test sources.
+objext=o
+_LT_TAGVAR(objext, $1)=$objext
+
+# Code to be used in simple compile tests
+lt_simple_compile_test_code="int some_variable = 0;"
+
+# Code to be used in simple link tests
+lt_simple_link_test_code='int main(){return(0);}'
+
+_LT_TAG_COMPILER
+# Save the default compiler, since it gets overwritten when the other
+# tags are being tested, and _LT_TAGVAR(compiler, []) is a NOP.
+compiler_DEFAULT=$CC
+
+# save warnings/boilerplate of simple test code
+_LT_COMPILER_BOILERPLATE
+_LT_LINKER_BOILERPLATE
+
+## CAVEAT EMPTOR:
+## There is no encapsulation within the following macros, do not change
+## the running order or otherwise move them around unless you know exactly
+## what you are doing...
+if test -n "$compiler"; then
+  _LT_COMPILER_NO_RTTI($1)
+  _LT_COMPILER_PIC($1)
+  _LT_COMPILER_C_O($1)
+  _LT_COMPILER_FILE_LOCKS($1)
+  _LT_LINKER_SHLIBS($1)
+  _LT_SYS_DYNAMIC_LINKER($1)
+  _LT_LINKER_HARDCODE_LIBPATH($1)
+  LT_SYS_DLOPEN_SELF
+  _LT_CMD_STRIPLIB
+
+  # Report which library types will actually be built
+  AC_MSG_CHECKING([if libtool supports shared libraries])
+  AC_MSG_RESULT([$can_build_shared])
+
+  AC_MSG_CHECKING([whether to build shared libraries])
+  test "$can_build_shared" = "no" && enable_shared=no
+
+  # On AIX, shared libraries and static libraries use the same namespace, and
+  # are all built from PIC.
+  case $host_os in
+  aix3*)
+    test "$enable_shared" = yes && enable_static=no
+    if test -n "$RANLIB"; then
+      archive_cmds="$archive_cmds~\$RANLIB \$lib"
+      postinstall_cmds='$RANLIB $lib'
+    fi
+    ;;
+
+  aix[[4-9]]*)
+    if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then
+      test "$enable_shared" = yes && enable_static=no
+    fi
+    ;;
+  esac
+  AC_MSG_RESULT([$enable_shared])
+
+  AC_MSG_CHECKING([whether to build static libraries])
+  # Make sure either enable_shared or enable_static is yes.
+  test "$enable_shared" = yes || enable_static=yes
+  AC_MSG_RESULT([$enable_static])
+
+  _LT_CONFIG($1)
+fi
+AC_LANG_POP
+CC="$lt_save_CC"
+])# _LT_LANG_C_CONFIG
+
+
+# _LT_LANG_CXX_CONFIG([TAG])
+# --------------------------
+# Ensure that the configuration variables for a C++ compiler are suitably
+# defined.  These variables are subsequently used by _LT_CONFIG to write
+# the compiler configuration to `libtool'.
+m4_defun([_LT_LANG_CXX_CONFIG],
+[m4_require([_LT_FILEUTILS_DEFAULTS])dnl
+m4_require([_LT_DECL_EGREP])dnl
+m4_require([_LT_PATH_MANIFEST_TOOL])dnl
+if test -n "$CXX" && ( test "X$CXX" != "Xno" &&
+    ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) ||
+    (test "X$CXX" != "Xg++"))) ; then
+  AC_PROG_CXXCPP
+else
+  _lt_caught_CXX_error=yes
+fi
+
+AC_LANG_PUSH(C++)
+_LT_TAGVAR(archive_cmds_need_lc, $1)=no
+_LT_TAGVAR(allow_undefined_flag, $1)=
+_LT_TAGVAR(always_export_symbols, $1)=no
+_LT_TAGVAR(archive_expsym_cmds, $1)=
+_LT_TAGVAR(compiler_needs_object, $1)=no
+_LT_TAGVAR(export_dynamic_flag_spec, $1)=
+_LT_TAGVAR(hardcode_direct, $1)=no
+_LT_TAGVAR(hardcode_direct_absolute, $1)=no
+_LT_TAGVAR(hardcode_libdir_flag_spec, $1)=
+_LT_TAGVAR(hardcode_libdir_separator, $1)=
+_LT_TAGVAR(hardcode_minus_L, $1)=no
+_LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported
+_LT_TAGVAR(hardcode_automatic, $1)=no
+_LT_TAGVAR(inherit_rpath, $1)=no
+_LT_TAGVAR(module_cmds, $1)=
+_LT_TAGVAR(module_expsym_cmds, $1)=
+_LT_TAGVAR(link_all_deplibs, $1)=unknown
+_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds
+_LT_TAGVAR(reload_flag, $1)=$reload_flag
+_LT_TAGVAR(reload_cmds, $1)=$reload_cmds
+_LT_TAGVAR(no_undefined_flag, $1)=
+_LT_TAGVAR(whole_archive_flag_spec, $1)=
+_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no
+
+# Source file extension for C++ test sources.
+ac_ext=cpp
+
+# Object file extension for compiled C++ test sources.
+objext=o
+_LT_TAGVAR(objext, $1)=$objext
+
+# No sense in running all these tests if we already determined that
+# the CXX compiler isn't working.  Some variables (like enable_shared)
+# are currently assumed to apply to all compilers on this platform,
+# and will be corrupted by setting them based on a non-working compiler.
+if test "$_lt_caught_CXX_error" != yes; then
+  # Code to be used in simple compile tests
+  lt_simple_compile_test_code="int some_variable = 0;"
+
+  # Code to be used in simple link tests
+  lt_simple_link_test_code='int main(int, char *[[]]) { return(0); }'
+
+  # ltmain only uses $CC for tagged configurations so make sure $CC is set.
+  _LT_TAG_COMPILER
+
+  # save warnings/boilerplate of simple test code
+  _LT_COMPILER_BOILERPLATE
+  _LT_LINKER_BOILERPLATE
+
+  # Allow CC to be a program name with arguments.
+  lt_save_CC=$CC
+  lt_save_CFLAGS=$CFLAGS
+  lt_save_LD=$LD
+  lt_save_GCC=$GCC
+  GCC=$GXX
+  lt_save_with_gnu_ld=$with_gnu_ld
+  lt_save_path_LD=$lt_cv_path_LD
+  if test -n "${lt_cv_prog_gnu_ldcxx+set}"; then
+    lt_cv_prog_gnu_ld=$lt_cv_prog_gnu_ldcxx
+  else
+    $as_unset lt_cv_prog_gnu_ld
+  fi
+  if test -n "${lt_cv_path_LDCXX+set}"; then
+    lt_cv_path_LD=$lt_cv_path_LDCXX
+  else
+    $as_unset lt_cv_path_LD
+  fi
+  test -z "${LDCXX+set}" || LD=$LDCXX
+  CC=${CXX-"c++"}
+  CFLAGS=$CXXFLAGS
+  compiler=$CC
+  _LT_TAGVAR(compiler, $1)=$CC
+  _LT_CC_BASENAME([$compiler])
+
+  if test -n "$compiler"; then
+    # We don't want -fno-exception when compiling C++ code, so set the
+    # no_builtin_flag separately
+    if test "$GXX" = yes; then
+      _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin'
+    else
+      _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=
+    fi
+
+    if test "$GXX" = yes; then
+      # Set up default GNU C++ configuration
+
+      LT_PATH_LD
+
+      # Check if GNU C++ uses GNU ld as the underlying linker, since the
+      # archiving commands below assume that GNU ld is being used.
+      if test "$with_gnu_ld" = yes; then
+        _LT_TAGVAR(archive_cmds, $1)='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
+        _LT_TAGVAR(archive_expsym_cmds, $1)='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+
+        _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
+        _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
+
+        # If archive_cmds runs LD, not CC, wlarc should be empty
+        # XXX I think wlarc can be eliminated in ltcf-cxx, but I need to
+        #     investigate it a little bit more. (MM)
+        wlarc='${wl}'
+
+        # ancient GNU ld didn't support --whole-archive et. al.
+        if eval "`$CC -print-prog-name=ld` --help 2>&1" |
+         $GREP 'no-whole-archive' > /dev/null; then
+          _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
+        else
+          _LT_TAGVAR(whole_archive_flag_spec, $1)=
+        fi
+      else
+        with_gnu_ld=no
+        wlarc=
+
+        # A generic and very simple default shared library creation
+        # command for GNU C++ for the case where it uses the native
+        # linker, instead of GNU ld.  If possible, this setting should
+        # overridden to take advantage of the native linker features on
+        # the platform it is being used on.
+        _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib'
+      fi
+
+      # Commands to make compiler produce verbose output that lists
+      # what "hidden" libraries, object files and flags are used when
+      # linking a shared library.
+      output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"'
+
+    else
+      GXX=no
+      with_gnu_ld=no
+      wlarc=
+    fi
+
+    # PORTME: fill in a description of your system's C++ link characteristics
+    AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries])
+    _LT_TAGVAR(ld_shlibs, $1)=yes
+    case $host_os in
+      aix3*)
+        # FIXME: insert proper C++ library support
+        _LT_TAGVAR(ld_shlibs, $1)=no
+        ;;
+      aix[[4-9]]*)
+        if test "$host_cpu" = ia64; then
+          # On IA64, the linker does run time linking by default, so we don't
+          # have to do anything special.
+          aix_use_runtimelinking=no
+          exp_sym_flag='-Bexport'
+          no_entry_flag=""
+        else
+          aix_use_runtimelinking=no
+
+          # Test if we are trying to use run time linking or normal
+          # AIX style linking. If -brtl is somewhere in LDFLAGS, we
+          # need to do runtime linking.
+          case $host_os in aix4.[[23]]|aix4.[[23]].*|aix[[5-9]]*)
+           for ld_flag in $LDFLAGS; do
+             case $ld_flag in
+             *-brtl*)
+               aix_use_runtimelinking=yes
+               break
+               ;;
+             esac
+           done
+           ;;
+          esac
+
+          exp_sym_flag='-bexport'
+          no_entry_flag='-bnoentry'
+        fi
+
+        # When large executables or shared objects are built, AIX ld can
+        # have problems creating the table of contents.  If linking a library
+        # or program results in "error TOC overflow" add -mminimal-toc to
+        # CXXFLAGS/CFLAGS for g++/gcc.  In the cases where that is not
+        # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS.
+
+        _LT_TAGVAR(archive_cmds, $1)=''
+        _LT_TAGVAR(hardcode_direct, $1)=yes
+        _LT_TAGVAR(hardcode_direct_absolute, $1)=yes
+        _LT_TAGVAR(hardcode_libdir_separator, $1)=':'
+        _LT_TAGVAR(link_all_deplibs, $1)=yes
+        _LT_TAGVAR(file_list_spec, $1)='${wl}-f,'
+
+        if test "$GXX" = yes; then
+          case $host_os in aix4.[[012]]|aix4.[[012]].*)
+          # We only want to do this on AIX 4.2 and lower, the check
+          # below for broken collect2 doesn't work under 4.3+
+         collect2name=`${CC} -print-prog-name=collect2`
+         if test -f "$collect2name" &&
+            strings "$collect2name" | $GREP resolve_lib_name >/dev/null
+         then
+           # We have reworked collect2
+           :
+         else
+           # We have old collect2
+           _LT_TAGVAR(hardcode_direct, $1)=unsupported
+           # It fails to find uninstalled libraries when the uninstalled
+           # path is not listed in the libpath.  Setting hardcode_minus_L
+           # to unsupported forces relinking
+           _LT_TAGVAR(hardcode_minus_L, $1)=yes
+           _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+           _LT_TAGVAR(hardcode_libdir_separator, $1)=
+         fi
+          esac
+          shared_flag='-shared'
+         if test "$aix_use_runtimelinking" = yes; then
+           shared_flag="$shared_flag "'${wl}-G'
+         fi
+        else
+          # not using gcc
+          if test "$host_cpu" = ia64; then
+         # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release
+         # chokes on -Wl,-G. The following line is correct:
+         shared_flag='-G'
+          else
+           if test "$aix_use_runtimelinking" = yes; then
+             shared_flag='${wl}-G'
+           else
+             shared_flag='${wl}-bM:SRE'
+           fi
+          fi
+        fi
+
+        _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-bexpall'
+        # It seems that -bexpall does not export symbols beginning with
+        # underscore (_), so it is better to generate a list of symbols to
+       # export.
+        _LT_TAGVAR(always_export_symbols, $1)=yes
+        if test "$aix_use_runtimelinking" = yes; then
+          # Warning - without using the other runtime loading flags (-brtl),
+          # -berok will link without error, but may produce a broken library.
+          _LT_TAGVAR(allow_undefined_flag, $1)='-berok'
+          # Determine the default libpath from the value encoded in an empty
+          # executable.
+          _LT_SYS_MODULE_PATH_AIX([$1])
+          _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath"
+
+          _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"
+        else
+          if test "$host_cpu" = ia64; then
+           _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib'
+           _LT_TAGVAR(allow_undefined_flag, $1)="-z nodefs"
+           _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols"
+          else
+           # Determine the default libpath from the value encoded in an
+           # empty executable.
+           _LT_SYS_MODULE_PATH_AIX([$1])
+           _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath"
+           # Warning - without using the other run time loading flags,
+           # -berok will link without error, but may produce a broken library.
+           _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok'
+           _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok'
+           if test "$with_gnu_ld" = yes; then
+             # We only use this code for GNU lds that support --whole-archive.
+             _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive'
+           else
+             # Exported symbols can be pulled into shared objects from archives
+             _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience'
+           fi
+           _LT_TAGVAR(archive_cmds_need_lc, $1)=yes
+           # This is similar to how AIX traditionally builds its shared
+           # libraries.
+           _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname'
+          fi
+        fi
+        ;;
+
+      beos*)
+       if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
+         _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
+         # Joseph Beckenbach <jrb3@best.com> says some releases of gcc
+         # support --undefined.  This deserves some investigation.  FIXME
+         _LT_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+       else
+         _LT_TAGVAR(ld_shlibs, $1)=no
+       fi
+       ;;
+
+      chorus*)
+        case $cc_basename in
+          *)
+         # FIXME: insert proper C++ library support
+         _LT_TAGVAR(ld_shlibs, $1)=no
+         ;;
+        esac
+        ;;
+
+      cygwin* | mingw* | pw32* | cegcc*)
+       case $GXX,$cc_basename in
+       ,cl* | no,cl*)
+         # Native MSVC
+         # hardcode_libdir_flag_spec is actually meaningless, as there is
+         # no search path for DLLs.
+         _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' '
+         _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
+         _LT_TAGVAR(always_export_symbols, $1)=yes
+         _LT_TAGVAR(file_list_spec, $1)='@'
+         # Tell ltmain to make .lib files, not .a files.
+         libext=lib
+         # Tell ltmain to make .dll files, not .so files.
+         shrext_cmds=".dll"
+         # FIXME: Setting linknames here is a bad hack.
+         _LT_TAGVAR(archive_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames='
+         _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
+             $SED -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp;
+           else
+             $SED -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp;
+           fi~
+           $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~
+           linknames='
+         # The linker will not automatically build a static lib if we build a DLL.
+         # _LT_TAGVAR(old_archive_from_new_cmds, $1)='true'
+         _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
+         # Don't use ranlib
+         _LT_TAGVAR(old_postinstall_cmds, $1)='chmod 644 $oldlib'
+         _LT_TAGVAR(postlink_cmds, $1)='lt_outputfile="@OUTPUT@"~
+           lt_tool_outputfile="@TOOL_OUTPUT@"~
+           case $lt_outputfile in
+             *.exe|*.EXE) ;;
+             *)
+               lt_outputfile="$lt_outputfile.exe"
+               lt_tool_outputfile="$lt_tool_outputfile.exe"
+               ;;
+           esac~
+           func_to_tool_file "$lt_outputfile"~
+           if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then
+             $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1;
+             $RM "$lt_outputfile.manifest";
+           fi'
+         ;;
+       *)
+         # g++
+         # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless,
+         # as there is no search path for DLLs.
+         _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+         _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-all-symbols'
+         _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
+         _LT_TAGVAR(always_export_symbols, $1)=no
+         _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
+
+         if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then
+           _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
+           # If the export-symbols file already is a .def file (1st line
+           # is EXPORTS), use it as is; otherwise, prepend...
+           _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
+             cp $export_symbols $output_objdir/$soname.def;
+           else
+             echo EXPORTS > $output_objdir/$soname.def;
+             cat $export_symbols >> $output_objdir/$soname.def;
+           fi~
+           $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
+         else
+           _LT_TAGVAR(ld_shlibs, $1)=no
+         fi
+         ;;
+       esac
+       ;;
+      darwin* | rhapsody*)
+        _LT_DARWIN_LINKER_FEATURES($1)
+       ;;
+
+      dgux*)
+        case $cc_basename in
+          ec++*)
+           # FIXME: insert proper C++ library support
+           _LT_TAGVAR(ld_shlibs, $1)=no
+           ;;
+          ghcx*)
+           # Green Hills C++ Compiler
+           # FIXME: insert proper C++ library support
+           _LT_TAGVAR(ld_shlibs, $1)=no
+           ;;
+          *)
+           # FIXME: insert proper C++ library support
+           _LT_TAGVAR(ld_shlibs, $1)=no
+           ;;
+        esac
+        ;;
+
+      freebsd2.*)
+        # C++ shared libraries reported to be fairly broken before
+       # switch to ELF
+        _LT_TAGVAR(ld_shlibs, $1)=no
+        ;;
+
+      freebsd-elf*)
+        _LT_TAGVAR(archive_cmds_need_lc, $1)=no
+        ;;
+
+      freebsd* | dragonfly*)
+        # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF
+        # conventions
+        _LT_TAGVAR(ld_shlibs, $1)=yes
+        ;;
+
+      gnu*)
+        ;;
+
+      haiku*)
+        _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+        _LT_TAGVAR(link_all_deplibs, $1)=yes
+        ;;
+
+      hpux9*)
+        _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
+        _LT_TAGVAR(hardcode_libdir_separator, $1)=:
+        _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
+        _LT_TAGVAR(hardcode_direct, $1)=yes
+        _LT_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH,
+                                            # but as the default
+                                            # location of the library.
+
+        case $cc_basename in
+          CC*)
+            # FIXME: insert proper C++ library support
+            _LT_TAGVAR(ld_shlibs, $1)=no
+            ;;
+          aCC*)
+            _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -b ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
+            # Commands to make compiler produce verbose output that lists
+            # what "hidden" libraries, object files and flags are used when
+            # linking a shared library.
+            #
+            # There doesn't appear to be a way to prevent this compiler from
+            # explicitly linking system object files so we need to strip them
+            # from the output so that they don't get included in the library
+            # dependencies.
+            output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $EGREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"'
+            ;;
+          *)
+            if test "$GXX" = yes; then
+              _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared -nostdlib $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
+            else
+              # FIXME: insert proper C++ library support
+              _LT_TAGVAR(ld_shlibs, $1)=no
+            fi
+            ;;
+        esac
+        ;;
+
+      hpux10*|hpux11*)
+        if test $with_gnu_ld = no; then
+         _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
+         _LT_TAGVAR(hardcode_libdir_separator, $1)=:
+
+          case $host_cpu in
+            hppa*64*|ia64*)
+              ;;
+            *)
+             _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
+              ;;
+          esac
+        fi
+        case $host_cpu in
+          hppa*64*|ia64*)
+            _LT_TAGVAR(hardcode_direct, $1)=no
+            _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+            ;;
+          *)
+            _LT_TAGVAR(hardcode_direct, $1)=yes
+            _LT_TAGVAR(hardcode_direct_absolute, $1)=yes
+            _LT_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH,
+                                                # but as the default
+                                                # location of the library.
+            ;;
+        esac
+
+        case $cc_basename in
+          CC*)
+           # FIXME: insert proper C++ library support
+           _LT_TAGVAR(ld_shlibs, $1)=no
+           ;;
+          aCC*)
+           case $host_cpu in
+             hppa*64*)
+               _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+               ;;
+             ia64*)
+               _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+               ;;
+             *)
+               _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+               ;;
+           esac
+           # Commands to make compiler produce verbose output that lists
+           # what "hidden" libraries, object files and flags are used when
+           # linking a shared library.
+           #
+           # There doesn't appear to be a way to prevent this compiler from
+           # explicitly linking system object files so we need to strip them
+           # from the output so that they don't get included in the library
+           # dependencies.
+           output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $GREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"'
+           ;;
+          *)
+           if test "$GXX" = yes; then
+             if test $with_gnu_ld = no; then
+               case $host_cpu in
+                 hppa*64*)
+                   _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+                   ;;
+                 ia64*)
+                   _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+                   ;;
+                 *)
+                   _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+                   ;;
+               esac
+             fi
+           else
+             # FIXME: insert proper C++ library support
+             _LT_TAGVAR(ld_shlibs, $1)=no
+           fi
+           ;;
+        esac
+        ;;
+
+      interix[[3-9]]*)
+       _LT_TAGVAR(hardcode_direct, $1)=no
+       _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+       _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
+       _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
+       # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc.
+       # Instead, shared libraries are loaded at an image base (0x10000000 by
+       # default) and relocated if they conflict, which is a slow very memory
+       # consuming and fragmenting process.  To avoid this, we pick a random,
+       # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link
+       # time.  Moving up from 0x10000000 also allows more sbrk(2) space.
+       _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
+       _LT_TAGVAR(archive_expsym_cmds, $1)='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
+       ;;
+      irix5* | irix6*)
+        case $cc_basename in
+          CC*)
+           # SGI C++
+           _LT_TAGVAR(archive_cmds, $1)='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
+
+           # Archives containing C++ object files must be created using
+           # "CC -ar", where "CC" is the IRIX C++ compiler.  This is
+           # necessary to make sure instantiated templates are included
+           # in the archive.
+           _LT_TAGVAR(old_archive_cmds, $1)='$CC -ar -WR,-u -o $oldlib $oldobjs'
+           ;;
+          *)
+           if test "$GXX" = yes; then
+             if test "$with_gnu_ld" = no; then
+               _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+             else
+               _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` -o $lib'
+             fi
+           fi
+           _LT_TAGVAR(link_all_deplibs, $1)=yes
+           ;;
+        esac
+        _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
+        _LT_TAGVAR(hardcode_libdir_separator, $1)=:
+        _LT_TAGVAR(inherit_rpath, $1)=yes
+        ;;
+
+      linux* | k*bsd*-gnu | kopensolaris*-gnu)
+        case $cc_basename in
+          KCC*)
+           # Kuck and Associates, Inc. (KAI) C++ Compiler
+
+           # KCC will only create a shared library if the output file
+           # ends with ".so" (or ".sl" for HP-UX), so rename the library
+           # to its proper name (with version) after linking.
+           _LT_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib'
+           _LT_TAGVAR(archive_expsym_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib ${wl}-retain-symbols-file,$export_symbols; mv \$templib $lib'
+           # Commands to make compiler produce verbose output that lists
+           # what "hidden" libraries, object files and flags are used when
+           # linking a shared library.
+           #
+           # There doesn't appear to be a way to prevent this compiler from
+           # explicitly linking system object files so we need to strip them
+           # from the output so that they don't get included in the library
+           # dependencies.
+           output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | $GREP "ld"`; rm -f libconftest$shared_ext; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"'
+
+           _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
+           _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
+
+           # Archives containing C++ object files must be created using
+           # "CC -Bstatic", where "CC" is the KAI C++ compiler.
+           _LT_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs'
+           ;;
+         icpc* | ecpc* )
+           # Intel C++
+           with_gnu_ld=yes
+           # version 8.0 and above of icpc choke on multiply defined symbols
+           # if we add $predep_objects and $postdep_objects, however 7.1 and
+           # earlier do not add the objects themselves.
+           case `$CC -V 2>&1` in
+             *"Version 7."*)
+               _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
+               _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+               ;;
+             *)  # Version 8.0 or newer
+               tmp_idyn=
+               case $host_cpu in
+                 ia64*) tmp_idyn=' -i_dynamic';;
+               esac
+               _LT_TAGVAR(archive_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+               _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+               ;;
+           esac
+           _LT_TAGVAR(archive_cmds_need_lc, $1)=no
+           _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
+           _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
+           _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive'
+           ;;
+          pgCC* | pgcpp*)
+            # Portland Group C++ compiler
+           case `$CC -V` in
+           *pgCC\ [[1-5]].* | *pgcpp\ [[1-5]].*)
+             _LT_TAGVAR(prelink_cmds, $1)='tpldir=Template.dir~
+               rm -rf $tpldir~
+               $CC --prelink_objects --instantiation_dir $tpldir $objs $libobjs $compile_deplibs~
+               compile_command="$compile_command `find $tpldir -name \*.o | sort | $NL2SP`"'
+             _LT_TAGVAR(old_archive_cmds, $1)='tpldir=Template.dir~
+               rm -rf $tpldir~
+               $CC --prelink_objects --instantiation_dir $tpldir $oldobjs$old_deplibs~
+               $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | sort | $NL2SP`~
+               $RANLIB $oldlib'
+             _LT_TAGVAR(archive_cmds, $1)='tpldir=Template.dir~
+               rm -rf $tpldir~
+               $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~
+               $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib'
+             _LT_TAGVAR(archive_expsym_cmds, $1)='tpldir=Template.dir~
+               rm -rf $tpldir~
+               $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~
+               $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib'
+             ;;
+           *) # Version 6 and above use weak symbols
+             _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib'
+             _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib'
+             ;;
+           esac
+
+           _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath ${wl}$libdir'
+           _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
+           _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
+            ;;
+         cxx*)
+           # Compaq C++
+           _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
+           _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname  -o $lib ${wl}-retain-symbols-file $wl$export_symbols'
+
+           runpath_var=LD_RUN_PATH
+           _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir'
+           _LT_TAGVAR(hardcode_libdir_separator, $1)=:
+
+           # Commands to make compiler produce verbose output that lists
+           # what "hidden" libraries, object files and flags are used when
+           # linking a shared library.
+           #
+           # There doesn't appear to be a way to prevent this compiler from
+           # explicitly linking system object files so we need to strip them
+           # from the output so that they don't get included in the library
+           # dependencies.
+           output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "X$list" | $Xsed'
+           ;;
+         xl* | mpixl* | bgxl*)
+           # IBM XL 8.0 on PPC, with GNU ld
+           _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
+           _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
+           _LT_TAGVAR(archive_cmds, $1)='$CC -qmkshrobj $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+           if test "x$supports_anon_versioning" = xyes; then
+             _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~
+               cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
+               echo "local: *; };" >> $output_objdir/$libname.ver~
+               $CC -qmkshrobj $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib'
+           fi
+           ;;
+         *)
+           case `$CC -V 2>&1 | sed 5q` in
+           *Sun\ C*)
+             # Sun C++ 5.9
+             _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs'
+             _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+             _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file ${wl}$export_symbols'
+             _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
+             _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
+             _LT_TAGVAR(compiler_needs_object, $1)=yes
+
+             # Not sure whether something based on
+             # $CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1
+             # would be better.
+             output_verbose_link_cmd='func_echo_all'
+
+             # Archives containing C++ object files must be created using
+             # "CC -xar", where "CC" is the Sun C++ compiler.  This is
+             # necessary to make sure instantiated templates are included
+             # in the archive.
+             _LT_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs'
+             ;;
+           esac
+           ;;
+       esac
+       ;;
+
+      lynxos*)
+        # FIXME: insert proper C++ library support
+       _LT_TAGVAR(ld_shlibs, $1)=no
+       ;;
+
+      m88k*)
+        # FIXME: insert proper C++ library support
+        _LT_TAGVAR(ld_shlibs, $1)=no
+       ;;
+
+      mvs*)
+        case $cc_basename in
+          cxx*)
+           # FIXME: insert proper C++ library support
+           _LT_TAGVAR(ld_shlibs, $1)=no
+           ;;
+         *)
+           # FIXME: insert proper C++ library support
+           _LT_TAGVAR(ld_shlibs, $1)=no
+           ;;
+       esac
+       ;;
+
+      netbsd*)
+        if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
+         _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable  -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags'
+         wlarc=
+         _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
+         _LT_TAGVAR(hardcode_direct, $1)=yes
+         _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+       fi
+       # Workaround some broken pre-1.5 toolchains
+       output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP conftest.$objext | $SED -e "s:-lgcc -lc -lgcc::"'
+       ;;
+
+      *nto* | *qnx*)
+        _LT_TAGVAR(ld_shlibs, $1)=yes
+       ;;
+
+      openbsd2*)
+        # C++ shared libraries are fairly broken
+       _LT_TAGVAR(ld_shlibs, $1)=no
+       ;;
+
+      openbsd*)
+       if test -f /usr/libexec/ld.so; then
+         _LT_TAGVAR(hardcode_direct, $1)=yes
+         _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+         _LT_TAGVAR(hardcode_direct_absolute, $1)=yes
+         _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib'
+         _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
+         if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+           _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file,$export_symbols -o $lib'
+           _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
+           _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
+         fi
+         output_verbose_link_cmd=func_echo_all
+       else
+         _LT_TAGVAR(ld_shlibs, $1)=no
+       fi
+       ;;
+
+      osf3* | osf4* | osf5*)
+        case $cc_basename in
+          KCC*)
+           # Kuck and Associates, Inc. (KAI) C++ Compiler
+
+           # KCC will only create a shared library if the output file
+           # ends with ".so" (or ".sl" for HP-UX), so rename the library
+           # to its proper name (with version) after linking.
+           _LT_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo "$lib" | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib'
+
+           _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
+           _LT_TAGVAR(hardcode_libdir_separator, $1)=:
+
+           # Archives containing C++ object files must be created using
+           # the KAI C++ compiler.
+           case $host in
+             osf3*) _LT_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs' ;;
+             *) _LT_TAGVAR(old_archive_cmds, $1)='$CC -o $oldlib $oldobjs' ;;
+           esac
+           ;;
+          RCC*)
+           # Rational C++ 2.4.1
+           # FIXME: insert proper C++ library support
+           _LT_TAGVAR(ld_shlibs, $1)=no
+           ;;
+          cxx*)
+           case $host in
+             osf3*)
+               _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
+               _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $soname `test -n "$verstring" && func_echo_all "${wl}-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
+               _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
+               ;;
+             *)
+               _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*'
+               _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
+               _LT_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~
+                 echo "-hidden">> $lib.exp~
+                 $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname ${wl}-input ${wl}$lib.exp  `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib~
+                 $RM $lib.exp'
+               _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir'
+               ;;
+           esac
+
+           _LT_TAGVAR(hardcode_libdir_separator, $1)=:
+
+           # Commands to make compiler produce verbose output that lists
+           # what "hidden" libraries, object files and flags are used when
+           # linking a shared library.
+           #
+           # There doesn't appear to be a way to prevent this compiler from
+           # explicitly linking system object files so we need to strip them
+           # from the output so that they don't get included in the library
+           # dependencies.
+           output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld" | $GREP -v "ld:"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"'
+           ;;
+         *)
+           if test "$GXX" = yes && test "$with_gnu_ld" = no; then
+             _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
+             case $host in
+               osf3*)
+                 _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+                 ;;
+               *)
+                 _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+                 ;;
+             esac
+
+             _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
+             _LT_TAGVAR(hardcode_libdir_separator, $1)=:
+
+             # Commands to make compiler produce verbose output that lists
+             # what "hidden" libraries, object files and flags are used when
+             # linking a shared library.
+             output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"'
+
+           else
+             # FIXME: insert proper C++ library support
+             _LT_TAGVAR(ld_shlibs, $1)=no
+           fi
+           ;;
+        esac
+        ;;
+
+      psos*)
+        # FIXME: insert proper C++ library support
+        _LT_TAGVAR(ld_shlibs, $1)=no
+        ;;
+
+      sunos4*)
+        case $cc_basename in
+          CC*)
+           # Sun C++ 4.x
+           # FIXME: insert proper C++ library support
+           _LT_TAGVAR(ld_shlibs, $1)=no
+           ;;
+          lcc*)
+           # Lucid
+           # FIXME: insert proper C++ library support
+           _LT_TAGVAR(ld_shlibs, $1)=no
+           ;;
+          *)
+           # FIXME: insert proper C++ library support
+           _LT_TAGVAR(ld_shlibs, $1)=no
+           ;;
+        esac
+        ;;
+
+      solaris*)
+        case $cc_basename in
+          CC* | sunCC*)
+           # Sun C++ 4.2, 5.x and Centerline C++
+            _LT_TAGVAR(archive_cmds_need_lc,$1)=yes
+           _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs'
+           _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag}  -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+           _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
+             $CC -G${allow_undefined_flag} ${wl}-M ${wl}$lib.exp -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp'
+
+           _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
+           _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+           case $host_os in
+             solaris2.[[0-5]] | solaris2.[[0-5]].*) ;;
+             *)
+               # The compiler driver will combine and reorder linker options,
+               # but understands `-z linker_flag'.
+               # Supported since Solaris 2.6 (maybe 2.5.1?)
+               _LT_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract'
+               ;;
+           esac
+           _LT_TAGVAR(link_all_deplibs, $1)=yes
+
+           output_verbose_link_cmd='func_echo_all'
+
+           # Archives containing C++ object files must be created using
+           # "CC -xar", where "CC" is the Sun C++ compiler.  This is
+           # necessary to make sure instantiated templates are included
+           # in the archive.
+           _LT_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs'
+           ;;
+          gcx*)
+           # Green Hills C++ Compiler
+           _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib'
+
+           # The C++ compiler must be used to create the archive.
+           _LT_TAGVAR(old_archive_cmds, $1)='$CC $LDFLAGS -archive -o $oldlib $oldobjs'
+           ;;
+          *)
+           # GNU C++ compiler with Solaris linker
+           if test "$GXX" = yes && test "$with_gnu_ld" = no; then
+             _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-z ${wl}defs'
+             if $CC --version | $GREP -v '^2\.7' > /dev/null; then
+               _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib'
+               _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
+                 $CC -shared $pic_flag -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp'
+
+               # Commands to make compiler produce verbose output that lists
+               # what "hidden" libraries, object files and flags are used when
+               # linking a shared library.
+               output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"'
+             else
+               # g++ 2.7 appears to require `-G' NOT `-shared' on this
+               # platform.
+               _LT_TAGVAR(archive_cmds, $1)='$CC -G -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib'
+               _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
+                 $CC -G -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp'
+
+               # Commands to make compiler produce verbose output that lists
+               # what "hidden" libraries, object files and flags are used when
+               # linking a shared library.
+               output_verbose_link_cmd='$CC -G $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"'
+             fi
+
+             _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $wl$libdir'
+             case $host_os in
+               solaris2.[[0-5]] | solaris2.[[0-5]].*) ;;
+               *)
+                 _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract'
+                 ;;
+             esac
+           fi
+           ;;
+        esac
+        ;;
+
+    sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*)
+      _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text'
+      _LT_TAGVAR(archive_cmds_need_lc, $1)=no
+      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+      runpath_var='LD_RUN_PATH'
+
+      case $cc_basename in
+        CC*)
+         _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+         _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+         ;;
+       *)
+         _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+         _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+         ;;
+      esac
+      ;;
+
+      sysv5* | sco3.2v5* | sco5v6*)
+       # Note: We can NOT use -z defs as we might desire, because we do not
+       # link with -lc, and that would cause any symbols used from libc to
+       # always be unresolved, which means just about no library would
+       # ever link correctly.  If we're not using GNU ld we use -z text
+       # though, which does catch some bad symbols but isn't as heavy-handed
+       # as -z defs.
+       _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text'
+       _LT_TAGVAR(allow_undefined_flag, $1)='${wl}-z,nodefs'
+       _LT_TAGVAR(archive_cmds_need_lc, $1)=no
+       _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+       _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R,$libdir'
+       _LT_TAGVAR(hardcode_libdir_separator, $1)=':'
+       _LT_TAGVAR(link_all_deplibs, $1)=yes
+       _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Bexport'
+       runpath_var='LD_RUN_PATH'
+
+       case $cc_basename in
+          CC*)
+           _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+           _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+           _LT_TAGVAR(old_archive_cmds, $1)='$CC -Tprelink_objects $oldobjs~
+             '"$_LT_TAGVAR(old_archive_cmds, $1)"
+           _LT_TAGVAR(reload_cmds, $1)='$CC -Tprelink_objects $reload_objs~
+             '"$_LT_TAGVAR(reload_cmds, $1)"
+           ;;
+         *)
+           _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+           _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+           ;;
+       esac
+      ;;
+
+      tandem*)
+        case $cc_basename in
+          NCC*)
+           # NonStop-UX NCC 3.20
+           # FIXME: insert proper C++ library support
+           _LT_TAGVAR(ld_shlibs, $1)=no
+           ;;
+          *)
+           # FIXME: insert proper C++ library support
+           _LT_TAGVAR(ld_shlibs, $1)=no
+           ;;
+        esac
+        ;;
+
+      vxworks*)
+        # FIXME: insert proper C++ library support
+        _LT_TAGVAR(ld_shlibs, $1)=no
+        ;;
+
+      *)
+        # FIXME: insert proper C++ library support
+        _LT_TAGVAR(ld_shlibs, $1)=no
+        ;;
+    esac
+
+    AC_MSG_RESULT([$_LT_TAGVAR(ld_shlibs, $1)])
+    test "$_LT_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no
+
+    _LT_TAGVAR(GCC, $1)="$GXX"
+    _LT_TAGVAR(LD, $1)="$LD"
+
+    ## CAVEAT EMPTOR:
+    ## There is no encapsulation within the following macros, do not change
+    ## the running order or otherwise move them around unless you know exactly
+    ## what you are doing...
+    _LT_SYS_HIDDEN_LIBDEPS($1)
+    _LT_COMPILER_PIC($1)
+    _LT_COMPILER_C_O($1)
+    _LT_COMPILER_FILE_LOCKS($1)
+    _LT_LINKER_SHLIBS($1)
+    _LT_SYS_DYNAMIC_LINKER($1)
+    _LT_LINKER_HARDCODE_LIBPATH($1)
+
+    _LT_CONFIG($1)
+  fi # test -n "$compiler"
+
+  CC=$lt_save_CC
+  CFLAGS=$lt_save_CFLAGS
+  LDCXX=$LD
+  LD=$lt_save_LD
+  GCC=$lt_save_GCC
+  with_gnu_ld=$lt_save_with_gnu_ld
+  lt_cv_path_LDCXX=$lt_cv_path_LD
+  lt_cv_path_LD=$lt_save_path_LD
+  lt_cv_prog_gnu_ldcxx=$lt_cv_prog_gnu_ld
+  lt_cv_prog_gnu_ld=$lt_save_with_gnu_ld
+fi # test "$_lt_caught_CXX_error" != yes
+
+AC_LANG_POP
+])# _LT_LANG_CXX_CONFIG
+
+
+# _LT_FUNC_STRIPNAME_CNF
+# ----------------------
+# func_stripname_cnf prefix suffix name
+# strip PREFIX and SUFFIX off of NAME.
+# PREFIX and SUFFIX must not contain globbing or regex special
+# characters, hashes, percent signs, but SUFFIX may contain a leading
+# dot (in which case that matches only a dot).
+#
+# This function is identical to the (non-XSI) version of func_stripname,
+# except this one can be used by m4 code that may be executed by configure,
+# rather than the libtool script.
+m4_defun([_LT_FUNC_STRIPNAME_CNF],[dnl
+AC_REQUIRE([_LT_DECL_SED])
+AC_REQUIRE([_LT_PROG_ECHO_BACKSLASH])
+func_stripname_cnf ()
+{
+  case ${2} in
+  .*) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%\\\\${2}\$%%"`;;
+  *)  func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%${2}\$%%"`;;
+  esac
+} # func_stripname_cnf
+])# _LT_FUNC_STRIPNAME_CNF
+
+# _LT_SYS_HIDDEN_LIBDEPS([TAGNAME])
+# ---------------------------------
+# Figure out "hidden" library dependencies from verbose
+# compiler output when linking a shared library.
+# Parse the compiler output and extract the necessary
+# objects, libraries and library flags.
+m4_defun([_LT_SYS_HIDDEN_LIBDEPS],
+[m4_require([_LT_FILEUTILS_DEFAULTS])dnl
+AC_REQUIRE([_LT_FUNC_STRIPNAME_CNF])dnl
+# Dependencies to place before and after the object being linked:
+_LT_TAGVAR(predep_objects, $1)=
+_LT_TAGVAR(postdep_objects, $1)=
+_LT_TAGVAR(predeps, $1)=
+_LT_TAGVAR(postdeps, $1)=
+_LT_TAGVAR(compiler_lib_search_path, $1)=
+
+dnl we can't use the lt_simple_compile_test_code here,
+dnl because it contains code intended for an executable,
+dnl not a library.  It's possible we should let each
+dnl tag define a new lt_????_link_test_code variable,
+dnl but it's only used here...
+m4_if([$1], [], [cat > conftest.$ac_ext <<_LT_EOF
+int a;
+void foo (void) { a = 0; }
+_LT_EOF
+], [$1], [CXX], [cat > conftest.$ac_ext <<_LT_EOF
+class Foo
+{
+public:
+  Foo (void) { a = 0; }
+private:
+  int a;
+};
+_LT_EOF
+], [$1], [F77], [cat > conftest.$ac_ext <<_LT_EOF
+      subroutine foo
+      implicit none
+      integer*4 a
+      a=0
+      return
+      end
+_LT_EOF
+], [$1], [FC], [cat > conftest.$ac_ext <<_LT_EOF
+      subroutine foo
+      implicit none
+      integer a
+      a=0
+      return
+      end
+_LT_EOF
+], [$1], [GCJ], [cat > conftest.$ac_ext <<_LT_EOF
+public class foo {
+  private int a;
+  public void bar (void) {
+    a = 0;
+  }
+};
+_LT_EOF
+], [$1], [GO], [cat > conftest.$ac_ext <<_LT_EOF
+package foo
+func foo() {
+}
+_LT_EOF
+])
+
+_lt_libdeps_save_CFLAGS=$CFLAGS
+case "$CC $CFLAGS " in #(
+*\ -flto*\ *) CFLAGS="$CFLAGS -fno-lto" ;;
+*\ -fwhopr*\ *) CFLAGS="$CFLAGS -fno-whopr" ;;
+*\ -fuse-linker-plugin*\ *) CFLAGS="$CFLAGS -fno-use-linker-plugin" ;;
+esac
+
+dnl Parse the compiler output and extract the necessary
+dnl objects, libraries and library flags.
+if AC_TRY_EVAL(ac_compile); then
+  # Parse the compiler output and extract the necessary
+  # objects, libraries and library flags.
+
+  # Sentinel used to keep track of whether or not we are before
+  # the conftest object file.
+  pre_test_object_deps_done=no
+
+  for p in `eval "$output_verbose_link_cmd"`; do
+    case ${prev}${p} in
+
+    -L* | -R* | -l*)
+       # Some compilers place space between "-{L,R}" and the path.
+       # Remove the space.
+       if test $p = "-L" ||
+          test $p = "-R"; then
+        prev=$p
+        continue
+       fi
+
+       # Expand the sysroot to ease extracting the directories later.
+       if test -z "$prev"; then
+         case $p in
+         -L*) func_stripname_cnf '-L' '' "$p"; prev=-L; p=$func_stripname_result ;;
+         -R*) func_stripname_cnf '-R' '' "$p"; prev=-R; p=$func_stripname_result ;;
+         -l*) func_stripname_cnf '-l' '' "$p"; prev=-l; p=$func_stripname_result ;;
+         esac
+       fi
+       case $p in
+       =*) func_stripname_cnf '=' '' "$p"; p=$lt_sysroot$func_stripname_result ;;
+       esac
+       if test "$pre_test_object_deps_done" = no; then
+        case ${prev} in
+        -L | -R)
+          # Internal compiler library paths should come after those
+          # provided the user.  The postdeps already come after the
+          # user supplied libs so there is no need to process them.
+          if test -z "$_LT_TAGVAR(compiler_lib_search_path, $1)"; then
+            _LT_TAGVAR(compiler_lib_search_path, $1)="${prev}${p}"
+          else
+            _LT_TAGVAR(compiler_lib_search_path, $1)="${_LT_TAGVAR(compiler_lib_search_path, $1)} ${prev}${p}"
+          fi
+          ;;
+        # The "-l" case would never come before the object being
+        # linked, so don't bother handling this case.
+        esac
+       else
+        if test -z "$_LT_TAGVAR(postdeps, $1)"; then
+          _LT_TAGVAR(postdeps, $1)="${prev}${p}"
+        else
+          _LT_TAGVAR(postdeps, $1)="${_LT_TAGVAR(postdeps, $1)} ${prev}${p}"
+        fi
+       fi
+       prev=
+       ;;
+
+    *.lto.$objext) ;; # Ignore GCC LTO objects
+    *.$objext)
+       # This assumes that the test object file only shows up
+       # once in the compiler output.
+       if test "$p" = "conftest.$objext"; then
+        pre_test_object_deps_done=yes
+        continue
+       fi
+
+       if test "$pre_test_object_deps_done" = no; then
+        if test -z "$_LT_TAGVAR(predep_objects, $1)"; then
+          _LT_TAGVAR(predep_objects, $1)="$p"
+        else
+          _LT_TAGVAR(predep_objects, $1)="$_LT_TAGVAR(predep_objects, $1) $p"
+        fi
+       else
+        if test -z "$_LT_TAGVAR(postdep_objects, $1)"; then
+          _LT_TAGVAR(postdep_objects, $1)="$p"
+        else
+          _LT_TAGVAR(postdep_objects, $1)="$_LT_TAGVAR(postdep_objects, $1) $p"
+        fi
+       fi
+       ;;
+
+    *) ;; # Ignore the rest.
+
+    esac
+  done
+
+  # Clean up.
+  rm -f a.out a.exe
+else
+  echo "libtool.m4: error: problem compiling $1 test program"
+fi
+
+$RM -f confest.$objext
+CFLAGS=$_lt_libdeps_save_CFLAGS
+
+# PORTME: override above test on systems where it is broken
+m4_if([$1], [CXX],
+[case $host_os in
+interix[[3-9]]*)
+  # Interix 3.5 installs completely hosed .la files for C++, so rather than
+  # hack all around it, let's just trust "g++" to DTRT.
+  _LT_TAGVAR(predep_objects,$1)=
+  _LT_TAGVAR(postdep_objects,$1)=
+  _LT_TAGVAR(postdeps,$1)=
+  ;;
+
+linux*)
+  case `$CC -V 2>&1 | sed 5q` in
+  *Sun\ C*)
+    # Sun C++ 5.9
+
+    # The more standards-conforming stlport4 library is
+    # incompatible with the Cstd library. Avoid specifying
+    # it if it's in CXXFLAGS. Ignore libCrun as
+    # -library=stlport4 depends on it.
+    case " $CXX $CXXFLAGS " in
+    *" -library=stlport4 "*)
+      solaris_use_stlport4=yes
+      ;;
+    esac
+
+    if test "$solaris_use_stlport4" != yes; then
+      _LT_TAGVAR(postdeps,$1)='-library=Cstd -library=Crun'
+    fi
+    ;;
+  esac
+  ;;
+
+solaris*)
+  case $cc_basename in
+  CC* | sunCC*)
+    # The more standards-conforming stlport4 library is
+    # incompatible with the Cstd library. Avoid specifying
+    # it if it's in CXXFLAGS. Ignore libCrun as
+    # -library=stlport4 depends on it.
+    case " $CXX $CXXFLAGS " in
+    *" -library=stlport4 "*)
+      solaris_use_stlport4=yes
+      ;;
+    esac
+
+    # Adding this requires a known-good setup of shared libraries for
+    # Sun compiler versions before 5.6, else PIC objects from an old
+    # archive will be linked into the output, leading to subtle bugs.
+    if test "$solaris_use_stlport4" != yes; then
+      _LT_TAGVAR(postdeps,$1)='-library=Cstd -library=Crun'
+    fi
+    ;;
+  esac
+  ;;
+esac
+])
+
+case " $_LT_TAGVAR(postdeps, $1) " in
+*" -lc "*) _LT_TAGVAR(archive_cmds_need_lc, $1)=no ;;
+esac
+ _LT_TAGVAR(compiler_lib_search_dirs, $1)=
+if test -n "${_LT_TAGVAR(compiler_lib_search_path, $1)}"; then
+ _LT_TAGVAR(compiler_lib_search_dirs, $1)=`echo " ${_LT_TAGVAR(compiler_lib_search_path, $1)}" | ${SED} -e 's! -L! !g' -e 's!^ !!'`
+fi
+_LT_TAGDECL([], [compiler_lib_search_dirs], [1],
+    [The directories searched by this compiler when creating a shared library])
+_LT_TAGDECL([], [predep_objects], [1],
+    [Dependencies to place before and after the objects being linked to
+    create a shared library])
+_LT_TAGDECL([], [postdep_objects], [1])
+_LT_TAGDECL([], [predeps], [1])
+_LT_TAGDECL([], [postdeps], [1])
+_LT_TAGDECL([], [compiler_lib_search_path], [1],
+    [The library search path used internally by the compiler when linking
+    a shared library])
+])# _LT_SYS_HIDDEN_LIBDEPS
+
+
+# _LT_LANG_F77_CONFIG([TAG])
+# --------------------------
+# Ensure that the configuration variables for a Fortran 77 compiler are
+# suitably defined.  These variables are subsequently used by _LT_CONFIG
+# to write the compiler configuration to `libtool'.
+m4_defun([_LT_LANG_F77_CONFIG],
+[AC_LANG_PUSH(Fortran 77)
+if test -z "$F77" || test "X$F77" = "Xno"; then
+  _lt_disable_F77=yes
+fi
+
+_LT_TAGVAR(archive_cmds_need_lc, $1)=no
+_LT_TAGVAR(allow_undefined_flag, $1)=
+_LT_TAGVAR(always_export_symbols, $1)=no
+_LT_TAGVAR(archive_expsym_cmds, $1)=
+_LT_TAGVAR(export_dynamic_flag_spec, $1)=
+_LT_TAGVAR(hardcode_direct, $1)=no
+_LT_TAGVAR(hardcode_direct_absolute, $1)=no
+_LT_TAGVAR(hardcode_libdir_flag_spec, $1)=
+_LT_TAGVAR(hardcode_libdir_separator, $1)=
+_LT_TAGVAR(hardcode_minus_L, $1)=no
+_LT_TAGVAR(hardcode_automatic, $1)=no
+_LT_TAGVAR(inherit_rpath, $1)=no
+_LT_TAGVAR(module_cmds, $1)=
+_LT_TAGVAR(module_expsym_cmds, $1)=
+_LT_TAGVAR(link_all_deplibs, $1)=unknown
+_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds
+_LT_TAGVAR(reload_flag, $1)=$reload_flag
+_LT_TAGVAR(reload_cmds, $1)=$reload_cmds
+_LT_TAGVAR(no_undefined_flag, $1)=
+_LT_TAGVAR(whole_archive_flag_spec, $1)=
+_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no
+
+# Source file extension for f77 test sources.
+ac_ext=f
+
+# Object file extension for compiled f77 test sources.
+objext=o
+_LT_TAGVAR(objext, $1)=$objext
+
+# No sense in running all these tests if we already determined that
+# the F77 compiler isn't working.  Some variables (like enable_shared)
+# are currently assumed to apply to all compilers on this platform,
+# and will be corrupted by setting them based on a non-working compiler.
+if test "$_lt_disable_F77" != yes; then
+  # Code to be used in simple compile tests
+  lt_simple_compile_test_code="\
+      subroutine t
+      return
+      end
+"
+
+  # Code to be used in simple link tests
+  lt_simple_link_test_code="\
+      program t
+      end
+"
+
+  # ltmain only uses $CC for tagged configurations so make sure $CC is set.
+  _LT_TAG_COMPILER
+
+  # save warnings/boilerplate of simple test code
+  _LT_COMPILER_BOILERPLATE
+  _LT_LINKER_BOILERPLATE
+
+  # Allow CC to be a program name with arguments.
+  lt_save_CC="$CC"
+  lt_save_GCC=$GCC
+  lt_save_CFLAGS=$CFLAGS
+  CC=${F77-"f77"}
+  CFLAGS=$FFLAGS
+  compiler=$CC
+  _LT_TAGVAR(compiler, $1)=$CC
+  _LT_CC_BASENAME([$compiler])
+  GCC=$G77
+  if test -n "$compiler"; then
+    AC_MSG_CHECKING([if libtool supports shared libraries])
+    AC_MSG_RESULT([$can_build_shared])
+
+    AC_MSG_CHECKING([whether to build shared libraries])
+    test "$can_build_shared" = "no" && enable_shared=no
+
+    # On AIX, shared libraries and static libraries use the same namespace, and
+    # are all built from PIC.
+    case $host_os in
+      aix3*)
+        test "$enable_shared" = yes && enable_static=no
+        if test -n "$RANLIB"; then
+          archive_cmds="$archive_cmds~\$RANLIB \$lib"
+          postinstall_cmds='$RANLIB $lib'
+        fi
+        ;;
+      aix[[4-9]]*)
+       if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then
+         test "$enable_shared" = yes && enable_static=no
+       fi
+        ;;
+    esac
+    AC_MSG_RESULT([$enable_shared])
+
+    AC_MSG_CHECKING([whether to build static libraries])
+    # Make sure either enable_shared or enable_static is yes.
+    test "$enable_shared" = yes || enable_static=yes
+    AC_MSG_RESULT([$enable_static])
+
+    _LT_TAGVAR(GCC, $1)="$G77"
+    _LT_TAGVAR(LD, $1)="$LD"
+
+    ## CAVEAT EMPTOR:
+    ## There is no encapsulation within the following macros, do not change
+    ## the running order or otherwise move them around unless you know exactly
+    ## what you are doing...
+    _LT_COMPILER_PIC($1)
+    _LT_COMPILER_C_O($1)
+    _LT_COMPILER_FILE_LOCKS($1)
+    _LT_LINKER_SHLIBS($1)
+    _LT_SYS_DYNAMIC_LINKER($1)
+    _LT_LINKER_HARDCODE_LIBPATH($1)
+
+    _LT_CONFIG($1)
+  fi # test -n "$compiler"
+
+  GCC=$lt_save_GCC
+  CC="$lt_save_CC"
+  CFLAGS="$lt_save_CFLAGS"
+fi # test "$_lt_disable_F77" != yes
+
+AC_LANG_POP
+])# _LT_LANG_F77_CONFIG
+
+
+# _LT_LANG_FC_CONFIG([TAG])
+# -------------------------
+# Ensure that the configuration variables for a Fortran compiler are
+# suitably defined.  These variables are subsequently used by _LT_CONFIG
+# to write the compiler configuration to `libtool'.
+m4_defun([_LT_LANG_FC_CONFIG],
+[AC_LANG_PUSH(Fortran)
+
+if test -z "$FC" || test "X$FC" = "Xno"; then
+  _lt_disable_FC=yes
+fi
+
+_LT_TAGVAR(archive_cmds_need_lc, $1)=no
+_LT_TAGVAR(allow_undefined_flag, $1)=
+_LT_TAGVAR(always_export_symbols, $1)=no
+_LT_TAGVAR(archive_expsym_cmds, $1)=
+_LT_TAGVAR(export_dynamic_flag_spec, $1)=
+_LT_TAGVAR(hardcode_direct, $1)=no
+_LT_TAGVAR(hardcode_direct_absolute, $1)=no
+_LT_TAGVAR(hardcode_libdir_flag_spec, $1)=
+_LT_TAGVAR(hardcode_libdir_separator, $1)=
+_LT_TAGVAR(hardcode_minus_L, $1)=no
+_LT_TAGVAR(hardcode_automatic, $1)=no
+_LT_TAGVAR(inherit_rpath, $1)=no
+_LT_TAGVAR(module_cmds, $1)=
+_LT_TAGVAR(module_expsym_cmds, $1)=
+_LT_TAGVAR(link_all_deplibs, $1)=unknown
+_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds
+_LT_TAGVAR(reload_flag, $1)=$reload_flag
+_LT_TAGVAR(reload_cmds, $1)=$reload_cmds
+_LT_TAGVAR(no_undefined_flag, $1)=
+_LT_TAGVAR(whole_archive_flag_spec, $1)=
+_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no
+
+# Source file extension for fc test sources.
+ac_ext=${ac_fc_srcext-f}
+
+# Object file extension for compiled fc test sources.
+objext=o
+_LT_TAGVAR(objext, $1)=$objext
+
+# No sense in running all these tests if we already determined that
+# the FC compiler isn't working.  Some variables (like enable_shared)
+# are currently assumed to apply to all compilers on this platform,
+# and will be corrupted by setting them based on a non-working compiler.
+if test "$_lt_disable_FC" != yes; then
+  # Code to be used in simple compile tests
+  lt_simple_compile_test_code="\
+      subroutine t
+      return
+      end
+"
+
+  # Code to be used in simple link tests
+  lt_simple_link_test_code="\
+      program t
+      end
+"
+
+  # ltmain only uses $CC for tagged configurations so make sure $CC is set.
+  _LT_TAG_COMPILER
+
+  # save warnings/boilerplate of simple test code
+  _LT_COMPILER_BOILERPLATE
+  _LT_LINKER_BOILERPLATE
+
+  # Allow CC to be a program name with arguments.
+  lt_save_CC="$CC"
+  lt_save_GCC=$GCC
+  lt_save_CFLAGS=$CFLAGS
+  CC=${FC-"f95"}
+  CFLAGS=$FCFLAGS
+  compiler=$CC
+  GCC=$ac_cv_fc_compiler_gnu
+
+  _LT_TAGVAR(compiler, $1)=$CC
+  _LT_CC_BASENAME([$compiler])
+
+  if test -n "$compiler"; then
+    AC_MSG_CHECKING([if libtool supports shared libraries])
+    AC_MSG_RESULT([$can_build_shared])
+
+    AC_MSG_CHECKING([whether to build shared libraries])
+    test "$can_build_shared" = "no" && enable_shared=no
+
+    # On AIX, shared libraries and static libraries use the same namespace, and
+    # are all built from PIC.
+    case $host_os in
+      aix3*)
+        test "$enable_shared" = yes && enable_static=no
+        if test -n "$RANLIB"; then
+          archive_cmds="$archive_cmds~\$RANLIB \$lib"
+          postinstall_cmds='$RANLIB $lib'
+        fi
+        ;;
+      aix[[4-9]]*)
+       if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then
+         test "$enable_shared" = yes && enable_static=no
+       fi
+        ;;
+    esac
+    AC_MSG_RESULT([$enable_shared])
+
+    AC_MSG_CHECKING([whether to build static libraries])
+    # Make sure either enable_shared or enable_static is yes.
+    test "$enable_shared" = yes || enable_static=yes
+    AC_MSG_RESULT([$enable_static])
+
+    _LT_TAGVAR(GCC, $1)="$ac_cv_fc_compiler_gnu"
+    _LT_TAGVAR(LD, $1)="$LD"
+
+    ## CAVEAT EMPTOR:
+    ## There is no encapsulation within the following macros, do not change
+    ## the running order or otherwise move them around unless you know exactly
+    ## what you are doing...
+    _LT_SYS_HIDDEN_LIBDEPS($1)
+    _LT_COMPILER_PIC($1)
+    _LT_COMPILER_C_O($1)
+    _LT_COMPILER_FILE_LOCKS($1)
+    _LT_LINKER_SHLIBS($1)
+    _LT_SYS_DYNAMIC_LINKER($1)
+    _LT_LINKER_HARDCODE_LIBPATH($1)
+
+    _LT_CONFIG($1)
+  fi # test -n "$compiler"
+
+  GCC=$lt_save_GCC
+  CC=$lt_save_CC
+  CFLAGS=$lt_save_CFLAGS
+fi # test "$_lt_disable_FC" != yes
+
+AC_LANG_POP
+])# _LT_LANG_FC_CONFIG
+
+
+# _LT_LANG_GCJ_CONFIG([TAG])
+# --------------------------
+# Ensure that the configuration variables for the GNU Java Compiler compiler
+# are suitably defined.  These variables are subsequently used by _LT_CONFIG
+# to write the compiler configuration to `libtool'.
+m4_defun([_LT_LANG_GCJ_CONFIG],
+[AC_REQUIRE([LT_PROG_GCJ])dnl
+AC_LANG_SAVE
+
+# Source file extension for Java test sources.
+ac_ext=java
+
+# Object file extension for compiled Java test sources.
+objext=o
+_LT_TAGVAR(objext, $1)=$objext
+
+# Code to be used in simple compile tests
+lt_simple_compile_test_code="class foo {}"
+
+# Code to be used in simple link tests
+lt_simple_link_test_code='public class conftest { public static void main(String[[]] argv) {}; }'
+
+# ltmain only uses $CC for tagged configurations so make sure $CC is set.
+_LT_TAG_COMPILER
+
+# save warnings/boilerplate of simple test code
+_LT_COMPILER_BOILERPLATE
+_LT_LINKER_BOILERPLATE
+
+# Allow CC to be a program name with arguments.
+lt_save_CC=$CC
+lt_save_CFLAGS=$CFLAGS
+lt_save_GCC=$GCC
+GCC=yes
+CC=${GCJ-"gcj"}
+CFLAGS=$GCJFLAGS
+compiler=$CC
+_LT_TAGVAR(compiler, $1)=$CC
+_LT_TAGVAR(LD, $1)="$LD"
+_LT_CC_BASENAME([$compiler])
+
+# GCJ did not exist at the time GCC didn't implicitly link libc in.
+_LT_TAGVAR(archive_cmds_need_lc, $1)=no
+
+_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds
+_LT_TAGVAR(reload_flag, $1)=$reload_flag
+_LT_TAGVAR(reload_cmds, $1)=$reload_cmds
+
+## CAVEAT EMPTOR:
+## There is no encapsulation within the following macros, do not change
+## the running order or otherwise move them around unless you know exactly
+## what you are doing...
+if test -n "$compiler"; then
+  _LT_COMPILER_NO_RTTI($1)
+  _LT_COMPILER_PIC($1)
+  _LT_COMPILER_C_O($1)
+  _LT_COMPILER_FILE_LOCKS($1)
+  _LT_LINKER_SHLIBS($1)
+  _LT_LINKER_HARDCODE_LIBPATH($1)
+
+  _LT_CONFIG($1)
+fi
+
+AC_LANG_RESTORE
+
+GCC=$lt_save_GCC
+CC=$lt_save_CC
+CFLAGS=$lt_save_CFLAGS
+])# _LT_LANG_GCJ_CONFIG
+
+
+# _LT_LANG_GO_CONFIG([TAG])
+# --------------------------
+# Ensure that the configuration variables for the GNU Go compiler
+# are suitably defined.  These variables are subsequently used by _LT_CONFIG
+# to write the compiler configuration to `libtool'.
+m4_defun([_LT_LANG_GO_CONFIG],
+[AC_REQUIRE([LT_PROG_GO])dnl
+AC_LANG_SAVE
+
+# Source file extension for Go test sources.
+ac_ext=go
+
+# Object file extension for compiled Go test sources.
+objext=o
+_LT_TAGVAR(objext, $1)=$objext
+
+# Code to be used in simple compile tests
+lt_simple_compile_test_code="package main; func main() { }"
+
+# Code to be used in simple link tests
+lt_simple_link_test_code='package main; func main() { }'
+
+# ltmain only uses $CC for tagged configurations so make sure $CC is set.
+_LT_TAG_COMPILER
+
+# save warnings/boilerplate of simple test code
+_LT_COMPILER_BOILERPLATE
+_LT_LINKER_BOILERPLATE
+
+# Allow CC to be a program name with arguments.
+lt_save_CC=$CC
+lt_save_CFLAGS=$CFLAGS
+lt_save_GCC=$GCC
+GCC=yes
+CC=${GOC-"gccgo"}
+CFLAGS=$GOFLAGS
+compiler=$CC
+_LT_TAGVAR(compiler, $1)=$CC
+_LT_TAGVAR(LD, $1)="$LD"
+_LT_CC_BASENAME([$compiler])
+
+# Go did not exist at the time GCC didn't implicitly link libc in.
+_LT_TAGVAR(archive_cmds_need_lc, $1)=no
+
+_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds
+_LT_TAGVAR(reload_flag, $1)=$reload_flag
+_LT_TAGVAR(reload_cmds, $1)=$reload_cmds
+
+## CAVEAT EMPTOR:
+## There is no encapsulation within the following macros, do not change
+## the running order or otherwise move them around unless you know exactly
+## what you are doing...
+if test -n "$compiler"; then
+  _LT_COMPILER_NO_RTTI($1)
+  _LT_COMPILER_PIC($1)
+  _LT_COMPILER_C_O($1)
+  _LT_COMPILER_FILE_LOCKS($1)
+  _LT_LINKER_SHLIBS($1)
+  _LT_LINKER_HARDCODE_LIBPATH($1)
+
+  _LT_CONFIG($1)
+fi
+
+AC_LANG_RESTORE
+
+GCC=$lt_save_GCC
+CC=$lt_save_CC
+CFLAGS=$lt_save_CFLAGS
+])# _LT_LANG_GO_CONFIG
+
+
+# _LT_LANG_RC_CONFIG([TAG])
+# -------------------------
+# Ensure that the configuration variables for the Windows resource compiler
+# are suitably defined.  These variables are subsequently used by _LT_CONFIG
+# to write the compiler configuration to `libtool'.
+m4_defun([_LT_LANG_RC_CONFIG],
+[AC_REQUIRE([LT_PROG_RC])dnl
+AC_LANG_SAVE
+
+# Source file extension for RC test sources.
+ac_ext=rc
+
+# Object file extension for compiled RC test sources.
+objext=o
+_LT_TAGVAR(objext, $1)=$objext
+
+# Code to be used in simple compile tests
+lt_simple_compile_test_code='sample MENU { MENUITEM "&Soup", 100, CHECKED }'
+
+# Code to be used in simple link tests
+lt_simple_link_test_code="$lt_simple_compile_test_code"
+
+# ltmain only uses $CC for tagged configurations so make sure $CC is set.
+_LT_TAG_COMPILER
+
+# save warnings/boilerplate of simple test code
+_LT_COMPILER_BOILERPLATE
+_LT_LINKER_BOILERPLATE
+
+# Allow CC to be a program name with arguments.
+lt_save_CC="$CC"
+lt_save_CFLAGS=$CFLAGS
+lt_save_GCC=$GCC
+GCC=
+CC=${RC-"windres"}
+CFLAGS=
+compiler=$CC
+_LT_TAGVAR(compiler, $1)=$CC
+_LT_CC_BASENAME([$compiler])
+_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes
+
+if test -n "$compiler"; then
+  :
+  _LT_CONFIG($1)
+fi
+
+GCC=$lt_save_GCC
+AC_LANG_RESTORE
+CC=$lt_save_CC
+CFLAGS=$lt_save_CFLAGS
+])# _LT_LANG_RC_CONFIG
+
+
+# LT_PROG_GCJ
+# -----------
+AC_DEFUN([LT_PROG_GCJ],
+[m4_ifdef([AC_PROG_GCJ], [AC_PROG_GCJ],
+  [m4_ifdef([A][M_PROG_GCJ], [A][M_PROG_GCJ],
+    [AC_CHECK_TOOL(GCJ, gcj,)
+      test "x${GCJFLAGS+set}" = xset || GCJFLAGS="-g -O2"
+      AC_SUBST(GCJFLAGS)])])[]dnl
+])
+
+# Old name:
+AU_ALIAS([LT_AC_PROG_GCJ], [LT_PROG_GCJ])
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([LT_AC_PROG_GCJ], [])
+
+
+# LT_PROG_GO
+# ----------
+AC_DEFUN([LT_PROG_GO],
+[AC_CHECK_TOOL(GOC, gccgo,)
+])
+
+
+# LT_PROG_RC
+# ----------
+AC_DEFUN([LT_PROG_RC],
+[AC_CHECK_TOOL(RC, windres,)
+])
+
+# Old name:
+AU_ALIAS([LT_AC_PROG_RC], [LT_PROG_RC])
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([LT_AC_PROG_RC], [])
+
+
+# _LT_DECL_EGREP
+# --------------
+# If we don't have a new enough Autoconf to choose the best grep
+# available, choose the one first in the user's PATH.
+m4_defun([_LT_DECL_EGREP],
+[AC_REQUIRE([AC_PROG_EGREP])dnl
+AC_REQUIRE([AC_PROG_FGREP])dnl
+test -z "$GREP" && GREP=grep
+_LT_DECL([], [GREP], [1], [A grep program that handles long lines])
+_LT_DECL([], [EGREP], [1], [An ERE matcher])
+_LT_DECL([], [FGREP], [1], [A literal string matcher])
+dnl Non-bleeding-edge autoconf doesn't subst GREP, so do it here too
+AC_SUBST([GREP])
+])
+
+
+# _LT_DECL_OBJDUMP
+# --------------
+# If we don't have a new enough Autoconf to choose the best objdump
+# available, choose the one first in the user's PATH.
+m4_defun([_LT_DECL_OBJDUMP],
+[AC_CHECK_TOOL(OBJDUMP, objdump, false)
+test -z "$OBJDUMP" && OBJDUMP=objdump
+_LT_DECL([], [OBJDUMP], [1], [An object symbol dumper])
+AC_SUBST([OBJDUMP])
+])
+
+# _LT_DECL_DLLTOOL
+# ----------------
+# Ensure DLLTOOL variable is set.
+m4_defun([_LT_DECL_DLLTOOL],
+[AC_CHECK_TOOL(DLLTOOL, dlltool, false)
+test -z "$DLLTOOL" && DLLTOOL=dlltool
+_LT_DECL([], [DLLTOOL], [1], [DLL creation program])
+AC_SUBST([DLLTOOL])
+])
+
+# _LT_DECL_SED
+# ------------
+# Check for a fully-functional sed program, that truncates
+# as few characters as possible.  Prefer GNU sed if found.
+m4_defun([_LT_DECL_SED],
+[AC_PROG_SED
+test -z "$SED" && SED=sed
+Xsed="$SED -e 1s/^X//"
+_LT_DECL([], [SED], [1], [A sed program that does not truncate output])
+_LT_DECL([], [Xsed], ["\$SED -e 1s/^X//"],
+    [Sed that helps us avoid accidentally triggering echo(1) options like -n])
+])# _LT_DECL_SED
+
+m4_ifndef([AC_PROG_SED], [
+############################################################
+# NOTE: This macro has been submitted for inclusion into   #
+#  GNU Autoconf as AC_PROG_SED.  When it is available in   #
+#  a released version of Autoconf we should remove this    #
+#  macro and use it instead.                               #
+############################################################
+
+m4_defun([AC_PROG_SED],
+[AC_MSG_CHECKING([for a sed that does not truncate output])
+AC_CACHE_VAL(lt_cv_path_SED,
+[# Loop through the user's path and test for sed and gsed.
+# Then use that list of sed's as ones to test for truncation.
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for lt_ac_prog in sed gsed; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
+      if $as_executable_p "$as_dir/$lt_ac_prog$ac_exec_ext"; then
+        lt_ac_sed_list="$lt_ac_sed_list $as_dir/$lt_ac_prog$ac_exec_ext"
+      fi
+    done
+  done
+done
+IFS=$as_save_IFS
+lt_ac_max=0
+lt_ac_count=0
+# Add /usr/xpg4/bin/sed as it is typically found on Solaris
+# along with /bin/sed that truncates output.
+for lt_ac_sed in $lt_ac_sed_list /usr/xpg4/bin/sed; do
+  test ! -f $lt_ac_sed && continue
+  cat /dev/null > conftest.in
+  lt_ac_count=0
+  echo $ECHO_N "0123456789$ECHO_C" >conftest.in
+  # Check for GNU sed and select it if it is found.
+  if "$lt_ac_sed" --version 2>&1 < /dev/null | grep 'GNU' > /dev/null; then
+    lt_cv_path_SED=$lt_ac_sed
+    break
+  fi
+  while true; do
+    cat conftest.in conftest.in >conftest.tmp
+    mv conftest.tmp conftest.in
+    cp conftest.in conftest.nl
+    echo >>conftest.nl
+    $lt_ac_sed -e 's/a$//' < conftest.nl >conftest.out || break
+    cmp -s conftest.out conftest.nl || break
+    # 10000 chars as input seems more than enough
+    test $lt_ac_count -gt 10 && break
+    lt_ac_count=`expr $lt_ac_count + 1`
+    if test $lt_ac_count -gt $lt_ac_max; then
+      lt_ac_max=$lt_ac_count
+      lt_cv_path_SED=$lt_ac_sed
+    fi
+  done
+done
+])
+SED=$lt_cv_path_SED
+AC_SUBST([SED])
+AC_MSG_RESULT([$SED])
+])#AC_PROG_SED
+])#m4_ifndef
+
+# Old name:
+AU_ALIAS([LT_AC_PROG_SED], [AC_PROG_SED])
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([LT_AC_PROG_SED], [])
+
+
+# _LT_CHECK_SHELL_FEATURES
+# ------------------------
+# Find out whether the shell is Bourne or XSI compatible,
+# or has some other useful features.
+m4_defun([_LT_CHECK_SHELL_FEATURES],
+[AC_MSG_CHECKING([whether the shell understands some XSI constructs])
+# Try some XSI features
+xsi_shell=no
+( _lt_dummy="a/b/c"
+  test "${_lt_dummy##*/},${_lt_dummy%/*},${_lt_dummy#??}"${_lt_dummy%"$_lt_dummy"}, \
+      = c,a/b,b/c, \
+    && eval 'test $(( 1 + 1 )) -eq 2 \
+    && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \
+  && xsi_shell=yes
+AC_MSG_RESULT([$xsi_shell])
+_LT_CONFIG_LIBTOOL_INIT([xsi_shell='$xsi_shell'])
+
+AC_MSG_CHECKING([whether the shell understands "+="])
+lt_shell_append=no
+( foo=bar; set foo baz; eval "$[1]+=\$[2]" && test "$foo" = barbaz ) \
+    >/dev/null 2>&1 \
+  && lt_shell_append=yes
+AC_MSG_RESULT([$lt_shell_append])
+_LT_CONFIG_LIBTOOL_INIT([lt_shell_append='$lt_shell_append'])
+
+if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then
+  lt_unset=unset
+else
+  lt_unset=false
+fi
+_LT_DECL([], [lt_unset], [0], [whether the shell understands "unset"])dnl
+
+# test EBCDIC or ASCII
+case `echo X|tr X '\101'` in
+ A) # ASCII based system
+    # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr
+  lt_SP2NL='tr \040 \012'
+  lt_NL2SP='tr \015\012 \040\040'
+  ;;
+ *) # EBCDIC based system
+  lt_SP2NL='tr \100 \n'
+  lt_NL2SP='tr \r\n \100\100'
+  ;;
+esac
+_LT_DECL([SP2NL], [lt_SP2NL], [1], [turn spaces into newlines])dnl
+_LT_DECL([NL2SP], [lt_NL2SP], [1], [turn newlines into spaces])dnl
+])# _LT_CHECK_SHELL_FEATURES
+
+
+# _LT_PROG_FUNCTION_REPLACE (FUNCNAME, REPLACEMENT-BODY)
+# ------------------------------------------------------
+# In `$cfgfile', look for function FUNCNAME delimited by `^FUNCNAME ()$' and
+# '^} FUNCNAME ', and replace its body with REPLACEMENT-BODY.
+m4_defun([_LT_PROG_FUNCTION_REPLACE],
+[dnl {
+sed -e '/^$1 ()$/,/^} # $1 /c\
+$1 ()\
+{\
+m4_bpatsubsts([$2], [$], [\\], [^\([    ]\)], [\\\1])
+} # Extended-shell $1 implementation' "$cfgfile" > $cfgfile.tmp \
+  && mv -f "$cfgfile.tmp" "$cfgfile" \
+    || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
+test 0 -eq $? || _lt_function_replace_fail=:
+])
+
+
+# _LT_PROG_REPLACE_SHELLFNS
+# -------------------------
+# Replace existing portable implementations of several shell functions with
+# equivalent extended shell implementations where those features are available..
+m4_defun([_LT_PROG_REPLACE_SHELLFNS],
+[if test x"$xsi_shell" = xyes; then
+  _LT_PROG_FUNCTION_REPLACE([func_dirname], [dnl
+    case ${1} in
+      */*) func_dirname_result="${1%/*}${2}" ;;
+      *  ) func_dirname_result="${3}" ;;
+    esac])
+
+  _LT_PROG_FUNCTION_REPLACE([func_basename], [dnl
+    func_basename_result="${1##*/}"])
+
+  _LT_PROG_FUNCTION_REPLACE([func_dirname_and_basename], [dnl
+    case ${1} in
+      */*) func_dirname_result="${1%/*}${2}" ;;
+      *  ) func_dirname_result="${3}" ;;
+    esac
+    func_basename_result="${1##*/}"])
+
+  _LT_PROG_FUNCTION_REPLACE([func_stripname], [dnl
+    # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are
+    # positional parameters, so assign one to ordinary parameter first.
+    func_stripname_result=${3}
+    func_stripname_result=${func_stripname_result#"${1}"}
+    func_stripname_result=${func_stripname_result%"${2}"}])
+
+  _LT_PROG_FUNCTION_REPLACE([func_split_long_opt], [dnl
+    func_split_long_opt_name=${1%%=*}
+    func_split_long_opt_arg=${1#*=}])
+
+  _LT_PROG_FUNCTION_REPLACE([func_split_short_opt], [dnl
+    func_split_short_opt_arg=${1#??}
+    func_split_short_opt_name=${1%"$func_split_short_opt_arg"}])
+
+  _LT_PROG_FUNCTION_REPLACE([func_lo2o], [dnl
+    case ${1} in
+      *.lo) func_lo2o_result=${1%.lo}.${objext} ;;
+      *)    func_lo2o_result=${1} ;;
+    esac])
+
+  _LT_PROG_FUNCTION_REPLACE([func_xform], [    func_xform_result=${1%.*}.lo])
+
+  _LT_PROG_FUNCTION_REPLACE([func_arith], [    func_arith_result=$(( $[*] ))])
+
+  _LT_PROG_FUNCTION_REPLACE([func_len], [    func_len_result=${#1}])
+fi
+
+if test x"$lt_shell_append" = xyes; then
+  _LT_PROG_FUNCTION_REPLACE([func_append], [    eval "${1}+=\\${2}"])
+
+  _LT_PROG_FUNCTION_REPLACE([func_append_quoted], [dnl
+    func_quote_for_eval "${2}"
+dnl m4 expansion turns \\\\ into \\, and then the shell eval turns that into \
+    eval "${1}+=\\\\ \\$func_quote_for_eval_result"])
+
+  # Save a `func_append' function call where possible by direct use of '+='
+  sed -e 's%func_append \([[a-zA-Z_]]\{1,\}\) "%\1+="%g' $cfgfile > $cfgfile.tmp \
+    && mv -f "$cfgfile.tmp" "$cfgfile" \
+      || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
+  test 0 -eq $? || _lt_function_replace_fail=:
+else
+  # Save a `func_append' function call even when '+=' is not available
+  sed -e 's%func_append \([[a-zA-Z_]]\{1,\}\) "%\1="$\1%g' $cfgfile > $cfgfile.tmp \
+    && mv -f "$cfgfile.tmp" "$cfgfile" \
+      || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
+  test 0 -eq $? || _lt_function_replace_fail=:
+fi
+
+if test x"$_lt_function_replace_fail" = x":"; then
+  AC_MSG_WARN([Unable to substitute extended shell functions in $ofile])
+fi
+])
+
+# _LT_PATH_CONVERSION_FUNCTIONS
+# -----------------------------
+# Determine which file name conversion functions should be used by
+# func_to_host_file (and, implicitly, by func_to_host_path).  These are needed
+# for certain cross-compile configurations and native mingw.
+m4_defun([_LT_PATH_CONVERSION_FUNCTIONS],
+[AC_REQUIRE([AC_CANONICAL_HOST])dnl
+AC_REQUIRE([AC_CANONICAL_BUILD])dnl
+AC_MSG_CHECKING([how to convert $build file names to $host format])
+AC_CACHE_VAL(lt_cv_to_host_file_cmd,
+[case $host in
+  *-*-mingw* )
+    case $build in
+      *-*-mingw* ) # actually msys
+        lt_cv_to_host_file_cmd=func_convert_file_msys_to_w32
+        ;;
+      *-*-cygwin* )
+        lt_cv_to_host_file_cmd=func_convert_file_cygwin_to_w32
+        ;;
+      * ) # otherwise, assume *nix
+        lt_cv_to_host_file_cmd=func_convert_file_nix_to_w32
+        ;;
+    esac
+    ;;
+  *-*-cygwin* )
+    case $build in
+      *-*-mingw* ) # actually msys
+        lt_cv_to_host_file_cmd=func_convert_file_msys_to_cygwin
+        ;;
+      *-*-cygwin* )
+        lt_cv_to_host_file_cmd=func_convert_file_noop
+        ;;
+      * ) # otherwise, assume *nix
+        lt_cv_to_host_file_cmd=func_convert_file_nix_to_cygwin
+        ;;
+    esac
+    ;;
+  * ) # unhandled hosts (and "normal" native builds)
+    lt_cv_to_host_file_cmd=func_convert_file_noop
+    ;;
+esac
+])
+to_host_file_cmd=$lt_cv_to_host_file_cmd
+AC_MSG_RESULT([$lt_cv_to_host_file_cmd])
+_LT_DECL([to_host_file_cmd], [lt_cv_to_host_file_cmd],
+         [0], [convert $build file names to $host format])dnl
+
+AC_MSG_CHECKING([how to convert $build file names to toolchain format])
+AC_CACHE_VAL(lt_cv_to_tool_file_cmd,
+[#assume ordinary cross tools, or native build.
+lt_cv_to_tool_file_cmd=func_convert_file_noop
+case $host in
+  *-*-mingw* )
+    case $build in
+      *-*-mingw* ) # actually msys
+        lt_cv_to_tool_file_cmd=func_convert_file_msys_to_w32
+        ;;
+    esac
+    ;;
+esac
+])
+to_tool_file_cmd=$lt_cv_to_tool_file_cmd
+AC_MSG_RESULT([$lt_cv_to_tool_file_cmd])
+_LT_DECL([to_tool_file_cmd], [lt_cv_to_tool_file_cmd],
+         [0], [convert $build files to toolchain format])dnl
+])# _LT_PATH_CONVERSION_FUNCTIONS
diff --git a/apps/irssi/ltoptions.m4 b/apps/irssi/ltoptions.m4
new file mode 100644 (file)
index 0000000..5d9acd8
--- /dev/null
@@ -0,0 +1,384 @@
+# Helper functions for option handling.                    -*- Autoconf -*-
+#
+#   Copyright (C) 2004, 2005, 2007, 2008, 2009 Free Software Foundation,
+#   Inc.
+#   Written by Gary V. Vaughan, 2004
+#
+# This file is free software; the Free Software Foundation gives
+# unlimited permission to copy and/or distribute it, with or without
+# modifications, as long as this notice is preserved.
+
+# serial 7 ltoptions.m4
+
+# This is to help aclocal find these macros, as it can't see m4_define.
+AC_DEFUN([LTOPTIONS_VERSION], [m4_if([1])])
+
+
+# _LT_MANGLE_OPTION(MACRO-NAME, OPTION-NAME)
+# ------------------------------------------
+m4_define([_LT_MANGLE_OPTION],
+[[_LT_OPTION_]m4_bpatsubst($1__$2, [[^a-zA-Z0-9_]], [_])])
+
+
+# _LT_SET_OPTION(MACRO-NAME, OPTION-NAME)
+# ---------------------------------------
+# Set option OPTION-NAME for macro MACRO-NAME, and if there is a
+# matching handler defined, dispatch to it.  Other OPTION-NAMEs are
+# saved as a flag.
+m4_define([_LT_SET_OPTION],
+[m4_define(_LT_MANGLE_OPTION([$1], [$2]))dnl
+m4_ifdef(_LT_MANGLE_DEFUN([$1], [$2]),
+        _LT_MANGLE_DEFUN([$1], [$2]),
+    [m4_warning([Unknown $1 option `$2'])])[]dnl
+])
+
+
+# _LT_IF_OPTION(MACRO-NAME, OPTION-NAME, IF-SET, [IF-NOT-SET])
+# ------------------------------------------------------------
+# Execute IF-SET if OPTION is set, IF-NOT-SET otherwise.
+m4_define([_LT_IF_OPTION],
+[m4_ifdef(_LT_MANGLE_OPTION([$1], [$2]), [$3], [$4])])
+
+
+# _LT_UNLESS_OPTIONS(MACRO-NAME, OPTION-LIST, IF-NOT-SET)
+# -------------------------------------------------------
+# Execute IF-NOT-SET unless all options in OPTION-LIST for MACRO-NAME
+# are set.
+m4_define([_LT_UNLESS_OPTIONS],
+[m4_foreach([_LT_Option], m4_split(m4_normalize([$2])),
+           [m4_ifdef(_LT_MANGLE_OPTION([$1], _LT_Option),
+                     [m4_define([$0_found])])])[]dnl
+m4_ifdef([$0_found], [m4_undefine([$0_found])], [$3
+])[]dnl
+])
+
+
+# _LT_SET_OPTIONS(MACRO-NAME, OPTION-LIST)
+# ----------------------------------------
+# OPTION-LIST is a space-separated list of Libtool options associated
+# with MACRO-NAME.  If any OPTION has a matching handler declared with
+# LT_OPTION_DEFINE, dispatch to that macro; otherwise complain about
+# the unknown option and exit.
+m4_defun([_LT_SET_OPTIONS],
+[# Set options
+m4_foreach([_LT_Option], m4_split(m4_normalize([$2])),
+    [_LT_SET_OPTION([$1], _LT_Option)])
+
+m4_if([$1],[LT_INIT],[
+  dnl
+  dnl Simply set some default values (i.e off) if boolean options were not
+  dnl specified:
+  _LT_UNLESS_OPTIONS([LT_INIT], [dlopen], [enable_dlopen=no
+  ])
+  _LT_UNLESS_OPTIONS([LT_INIT], [win32-dll], [enable_win32_dll=no
+  ])
+  dnl
+  dnl If no reference was made to various pairs of opposing options, then
+  dnl we run the default mode handler for the pair.  For example, if neither
+  dnl `shared' nor `disable-shared' was passed, we enable building of shared
+  dnl archives by default:
+  _LT_UNLESS_OPTIONS([LT_INIT], [shared disable-shared], [_LT_ENABLE_SHARED])
+  _LT_UNLESS_OPTIONS([LT_INIT], [static disable-static], [_LT_ENABLE_STATIC])
+  _LT_UNLESS_OPTIONS([LT_INIT], [pic-only no-pic], [_LT_WITH_PIC])
+  _LT_UNLESS_OPTIONS([LT_INIT], [fast-install disable-fast-install],
+                  [_LT_ENABLE_FAST_INSTALL])
+  ])
+])# _LT_SET_OPTIONS
+
+
+## --------------------------------- ##
+## Macros to handle LT_INIT options. ##
+## --------------------------------- ##
+
+# _LT_MANGLE_DEFUN(MACRO-NAME, OPTION-NAME)
+# -----------------------------------------
+m4_define([_LT_MANGLE_DEFUN],
+[[_LT_OPTION_DEFUN_]m4_bpatsubst(m4_toupper([$1__$2]), [[^A-Z0-9_]], [_])])
+
+
+# LT_OPTION_DEFINE(MACRO-NAME, OPTION-NAME, CODE)
+# -----------------------------------------------
+m4_define([LT_OPTION_DEFINE],
+[m4_define(_LT_MANGLE_DEFUN([$1], [$2]), [$3])[]dnl
+])# LT_OPTION_DEFINE
+
+
+# dlopen
+# ------
+LT_OPTION_DEFINE([LT_INIT], [dlopen], [enable_dlopen=yes
+])
+
+AU_DEFUN([AC_LIBTOOL_DLOPEN],
+[_LT_SET_OPTION([LT_INIT], [dlopen])
+AC_DIAGNOSE([obsolete],
+[$0: Remove this warning and the call to _LT_SET_OPTION when you
+put the `dlopen' option into LT_INIT's first parameter.])
+])
+
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([AC_LIBTOOL_DLOPEN], [])
+
+
+# win32-dll
+# ---------
+# Declare package support for building win32 dll's.
+LT_OPTION_DEFINE([LT_INIT], [win32-dll],
+[enable_win32_dll=yes
+
+case $host in
+*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-cegcc*)
+  AC_CHECK_TOOL(AS, as, false)
+  AC_CHECK_TOOL(DLLTOOL, dlltool, false)
+  AC_CHECK_TOOL(OBJDUMP, objdump, false)
+  ;;
+esac
+
+test -z "$AS" && AS=as
+_LT_DECL([], [AS],      [1], [Assembler program])dnl
+
+test -z "$DLLTOOL" && DLLTOOL=dlltool
+_LT_DECL([], [DLLTOOL], [1], [DLL creation program])dnl
+
+test -z "$OBJDUMP" && OBJDUMP=objdump
+_LT_DECL([], [OBJDUMP], [1], [Object dumper program])dnl
+])# win32-dll
+
+AU_DEFUN([AC_LIBTOOL_WIN32_DLL],
+[AC_REQUIRE([AC_CANONICAL_HOST])dnl
+_LT_SET_OPTION([LT_INIT], [win32-dll])
+AC_DIAGNOSE([obsolete],
+[$0: Remove this warning and the call to _LT_SET_OPTION when you
+put the `win32-dll' option into LT_INIT's first parameter.])
+])
+
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([AC_LIBTOOL_WIN32_DLL], [])
+
+
+# _LT_ENABLE_SHARED([DEFAULT])
+# ----------------------------
+# implement the --enable-shared flag, and supports the `shared' and
+# `disable-shared' LT_INIT options.
+# DEFAULT is either `yes' or `no'.  If omitted, it defaults to `yes'.
+m4_define([_LT_ENABLE_SHARED],
+[m4_define([_LT_ENABLE_SHARED_DEFAULT], [m4_if($1, no, no, yes)])dnl
+AC_ARG_ENABLE([shared],
+    [AS_HELP_STRING([--enable-shared@<:@=PKGS@:>@],
+       [build shared libraries @<:@default=]_LT_ENABLE_SHARED_DEFAULT[@:>@])],
+    [p=${PACKAGE-default}
+    case $enableval in
+    yes) enable_shared=yes ;;
+    no) enable_shared=no ;;
+    *)
+      enable_shared=no
+      # Look at the argument we got.  We use all the common list separators.
+      lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
+      for pkg in $enableval; do
+       IFS="$lt_save_ifs"
+       if test "X$pkg" = "X$p"; then
+         enable_shared=yes
+       fi
+      done
+      IFS="$lt_save_ifs"
+      ;;
+    esac],
+    [enable_shared=]_LT_ENABLE_SHARED_DEFAULT)
+
+    _LT_DECL([build_libtool_libs], [enable_shared], [0],
+       [Whether or not to build shared libraries])
+])# _LT_ENABLE_SHARED
+
+LT_OPTION_DEFINE([LT_INIT], [shared], [_LT_ENABLE_SHARED([yes])])
+LT_OPTION_DEFINE([LT_INIT], [disable-shared], [_LT_ENABLE_SHARED([no])])
+
+# Old names:
+AC_DEFUN([AC_ENABLE_SHARED],
+[_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[shared])
+])
+
+AC_DEFUN([AC_DISABLE_SHARED],
+[_LT_SET_OPTION([LT_INIT], [disable-shared])
+])
+
+AU_DEFUN([AM_ENABLE_SHARED], [AC_ENABLE_SHARED($@)])
+AU_DEFUN([AM_DISABLE_SHARED], [AC_DISABLE_SHARED($@)])
+
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([AM_ENABLE_SHARED], [])
+dnl AC_DEFUN([AM_DISABLE_SHARED], [])
+
+
+
+# _LT_ENABLE_STATIC([DEFAULT])
+# ----------------------------
+# implement the --enable-static flag, and support the `static' and
+# `disable-static' LT_INIT options.
+# DEFAULT is either `yes' or `no'.  If omitted, it defaults to `yes'.
+m4_define([_LT_ENABLE_STATIC],
+[m4_define([_LT_ENABLE_STATIC_DEFAULT], [m4_if($1, no, no, yes)])dnl
+AC_ARG_ENABLE([static],
+    [AS_HELP_STRING([--enable-static@<:@=PKGS@:>@],
+       [build static libraries @<:@default=]_LT_ENABLE_STATIC_DEFAULT[@:>@])],
+    [p=${PACKAGE-default}
+    case $enableval in
+    yes) enable_static=yes ;;
+    no) enable_static=no ;;
+    *)
+     enable_static=no
+      # Look at the argument we got.  We use all the common list separators.
+      lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
+      for pkg in $enableval; do
+       IFS="$lt_save_ifs"
+       if test "X$pkg" = "X$p"; then
+         enable_static=yes
+       fi
+      done
+      IFS="$lt_save_ifs"
+      ;;
+    esac],
+    [enable_static=]_LT_ENABLE_STATIC_DEFAULT)
+
+    _LT_DECL([build_old_libs], [enable_static], [0],
+       [Whether or not to build static libraries])
+])# _LT_ENABLE_STATIC
+
+LT_OPTION_DEFINE([LT_INIT], [static], [_LT_ENABLE_STATIC([yes])])
+LT_OPTION_DEFINE([LT_INIT], [disable-static], [_LT_ENABLE_STATIC([no])])
+
+# Old names:
+AC_DEFUN([AC_ENABLE_STATIC],
+[_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[static])
+])
+
+AC_DEFUN([AC_DISABLE_STATIC],
+[_LT_SET_OPTION([LT_INIT], [disable-static])
+])
+
+AU_DEFUN([AM_ENABLE_STATIC], [AC_ENABLE_STATIC($@)])
+AU_DEFUN([AM_DISABLE_STATIC], [AC_DISABLE_STATIC($@)])
+
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([AM_ENABLE_STATIC], [])
+dnl AC_DEFUN([AM_DISABLE_STATIC], [])
+
+
+
+# _LT_ENABLE_FAST_INSTALL([DEFAULT])
+# ----------------------------------
+# implement the --enable-fast-install flag, and support the `fast-install'
+# and `disable-fast-install' LT_INIT options.
+# DEFAULT is either `yes' or `no'.  If omitted, it defaults to `yes'.
+m4_define([_LT_ENABLE_FAST_INSTALL],
+[m4_define([_LT_ENABLE_FAST_INSTALL_DEFAULT], [m4_if($1, no, no, yes)])dnl
+AC_ARG_ENABLE([fast-install],
+    [AS_HELP_STRING([--enable-fast-install@<:@=PKGS@:>@],
+    [optimize for fast installation @<:@default=]_LT_ENABLE_FAST_INSTALL_DEFAULT[@:>@])],
+    [p=${PACKAGE-default}
+    case $enableval in
+    yes) enable_fast_install=yes ;;
+    no) enable_fast_install=no ;;
+    *)
+      enable_fast_install=no
+      # Look at the argument we got.  We use all the common list separators.
+      lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
+      for pkg in $enableval; do
+       IFS="$lt_save_ifs"
+       if test "X$pkg" = "X$p"; then
+         enable_fast_install=yes
+       fi
+      done
+      IFS="$lt_save_ifs"
+      ;;
+    esac],
+    [enable_fast_install=]_LT_ENABLE_FAST_INSTALL_DEFAULT)
+
+_LT_DECL([fast_install], [enable_fast_install], [0],
+        [Whether or not to optimize for fast installation])dnl
+])# _LT_ENABLE_FAST_INSTALL
+
+LT_OPTION_DEFINE([LT_INIT], [fast-install], [_LT_ENABLE_FAST_INSTALL([yes])])
+LT_OPTION_DEFINE([LT_INIT], [disable-fast-install], [_LT_ENABLE_FAST_INSTALL([no])])
+
+# Old names:
+AU_DEFUN([AC_ENABLE_FAST_INSTALL],
+[_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[fast-install])
+AC_DIAGNOSE([obsolete],
+[$0: Remove this warning and the call to _LT_SET_OPTION when you put
+the `fast-install' option into LT_INIT's first parameter.])
+])
+
+AU_DEFUN([AC_DISABLE_FAST_INSTALL],
+[_LT_SET_OPTION([LT_INIT], [disable-fast-install])
+AC_DIAGNOSE([obsolete],
+[$0: Remove this warning and the call to _LT_SET_OPTION when you put
+the `disable-fast-install' option into LT_INIT's first parameter.])
+])
+
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([AC_ENABLE_FAST_INSTALL], [])
+dnl AC_DEFUN([AM_DISABLE_FAST_INSTALL], [])
+
+
+# _LT_WITH_PIC([MODE])
+# --------------------
+# implement the --with-pic flag, and support the `pic-only' and `no-pic'
+# LT_INIT options.
+# MODE is either `yes' or `no'.  If omitted, it defaults to `both'.
+m4_define([_LT_WITH_PIC],
+[AC_ARG_WITH([pic],
+    [AS_HELP_STRING([--with-pic@<:@=PKGS@:>@],
+       [try to use only PIC/non-PIC objects @<:@default=use both@:>@])],
+    [lt_p=${PACKAGE-default}
+    case $withval in
+    yes|no) pic_mode=$withval ;;
+    *)
+      pic_mode=default
+      # Look at the argument we got.  We use all the common list separators.
+      lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
+      for lt_pkg in $withval; do
+       IFS="$lt_save_ifs"
+       if test "X$lt_pkg" = "X$lt_p"; then
+         pic_mode=yes
+       fi
+      done
+      IFS="$lt_save_ifs"
+      ;;
+    esac],
+    [pic_mode=default])
+
+test -z "$pic_mode" && pic_mode=m4_default([$1], [default])
+
+_LT_DECL([], [pic_mode], [0], [What type of objects to build])dnl
+])# _LT_WITH_PIC
+
+LT_OPTION_DEFINE([LT_INIT], [pic-only], [_LT_WITH_PIC([yes])])
+LT_OPTION_DEFINE([LT_INIT], [no-pic], [_LT_WITH_PIC([no])])
+
+# Old name:
+AU_DEFUN([AC_LIBTOOL_PICMODE],
+[_LT_SET_OPTION([LT_INIT], [pic-only])
+AC_DIAGNOSE([obsolete],
+[$0: Remove this warning and the call to _LT_SET_OPTION when you
+put the `pic-only' option into LT_INIT's first parameter.])
+])
+
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([AC_LIBTOOL_PICMODE], [])
+
+## ----------------- ##
+## LTDL_INIT Options ##
+## ----------------- ##
+
+m4_define([_LTDL_MODE], [])
+LT_OPTION_DEFINE([LTDL_INIT], [nonrecursive],
+                [m4_define([_LTDL_MODE], [nonrecursive])])
+LT_OPTION_DEFINE([LTDL_INIT], [recursive],
+                [m4_define([_LTDL_MODE], [recursive])])
+LT_OPTION_DEFINE([LTDL_INIT], [subproject],
+                [m4_define([_LTDL_MODE], [subproject])])
+
+m4_define([_LTDL_TYPE], [])
+LT_OPTION_DEFINE([LTDL_INIT], [installable],
+                [m4_define([_LTDL_TYPE], [installable])])
+LT_OPTION_DEFINE([LTDL_INIT], [convenience],
+                [m4_define([_LTDL_TYPE], [convenience])])
diff --git a/apps/irssi/ltsugar.m4 b/apps/irssi/ltsugar.m4
new file mode 100644 (file)
index 0000000..9000a05
--- /dev/null
@@ -0,0 +1,123 @@
+# ltsugar.m4 -- libtool m4 base layer.                         -*-Autoconf-*-
+#
+# Copyright (C) 2004, 2005, 2007, 2008 Free Software Foundation, Inc.
+# Written by Gary V. Vaughan, 2004
+#
+# This file is free software; the Free Software Foundation gives
+# unlimited permission to copy and/or distribute it, with or without
+# modifications, as long as this notice is preserved.
+
+# serial 6 ltsugar.m4
+
+# This is to help aclocal find these macros, as it can't see m4_define.
+AC_DEFUN([LTSUGAR_VERSION], [m4_if([0.1])])
+
+
+# lt_join(SEP, ARG1, [ARG2...])
+# -----------------------------
+# Produce ARG1SEPARG2...SEPARGn, omitting [] arguments and their
+# associated separator.
+# Needed until we can rely on m4_join from Autoconf 2.62, since all earlier
+# versions in m4sugar had bugs.
+m4_define([lt_join],
+[m4_if([$#], [1], [],
+       [$#], [2], [[$2]],
+       [m4_if([$2], [], [], [[$2]_])$0([$1], m4_shift(m4_shift($@)))])])
+m4_define([_lt_join],
+[m4_if([$#$2], [2], [],
+       [m4_if([$2], [], [], [[$1$2]])$0([$1], m4_shift(m4_shift($@)))])])
+
+
+# lt_car(LIST)
+# lt_cdr(LIST)
+# ------------
+# Manipulate m4 lists.
+# These macros are necessary as long as will still need to support
+# Autoconf-2.59 which quotes differently.
+m4_define([lt_car], [[$1]])
+m4_define([lt_cdr],
+[m4_if([$#], 0, [m4_fatal([$0: cannot be called without arguments])],
+       [$#], 1, [],
+       [m4_dquote(m4_shift($@))])])
+m4_define([lt_unquote], $1)
+
+
+# lt_append(MACRO-NAME, STRING, [SEPARATOR])
+# ------------------------------------------
+# Redefine MACRO-NAME to hold its former content plus `SEPARATOR'`STRING'.
+# Note that neither SEPARATOR nor STRING are expanded; they are appended
+# to MACRO-NAME as is (leaving the expansion for when MACRO-NAME is invoked).
+# No SEPARATOR is output if MACRO-NAME was previously undefined (different
+# than defined and empty).
+#
+# This macro is needed until we can rely on Autoconf 2.62, since earlier
+# versions of m4sugar mistakenly expanded SEPARATOR but not STRING.
+m4_define([lt_append],
+[m4_define([$1],
+          m4_ifdef([$1], [m4_defn([$1])[$3]])[$2])])
+
+
+
+# lt_combine(SEP, PREFIX-LIST, INFIX, SUFFIX1, [SUFFIX2...])
+# ----------------------------------------------------------
+# Produce a SEP delimited list of all paired combinations of elements of
+# PREFIX-LIST with SUFFIX1 through SUFFIXn.  Each element of the list
+# has the form PREFIXmINFIXSUFFIXn.
+# Needed until we can rely on m4_combine added in Autoconf 2.62.
+m4_define([lt_combine],
+[m4_if(m4_eval([$# > 3]), [1],
+       [m4_pushdef([_Lt_sep], [m4_define([_Lt_sep], m4_defn([lt_car]))])]]dnl
+[[m4_foreach([_Lt_prefix], [$2],
+            [m4_foreach([_Lt_suffix],
+               ]m4_dquote(m4_dquote(m4_shift(m4_shift(m4_shift($@)))))[,
+       [_Lt_sep([$1])[]m4_defn([_Lt_prefix])[$3]m4_defn([_Lt_suffix])])])])])
+
+
+# lt_if_append_uniq(MACRO-NAME, VARNAME, [SEPARATOR], [UNIQ], [NOT-UNIQ])
+# -----------------------------------------------------------------------
+# Iff MACRO-NAME does not yet contain VARNAME, then append it (delimited
+# by SEPARATOR if supplied) and expand UNIQ, else NOT-UNIQ.
+m4_define([lt_if_append_uniq],
+[m4_ifdef([$1],
+         [m4_if(m4_index([$3]m4_defn([$1])[$3], [$3$2$3]), [-1],
+                [lt_append([$1], [$2], [$3])$4],
+                [$5])],
+         [lt_append([$1], [$2], [$3])$4])])
+
+
+# lt_dict_add(DICT, KEY, VALUE)
+# -----------------------------
+m4_define([lt_dict_add],
+[m4_define([$1($2)], [$3])])
+
+
+# lt_dict_add_subkey(DICT, KEY, SUBKEY, VALUE)
+# --------------------------------------------
+m4_define([lt_dict_add_subkey],
+[m4_define([$1($2:$3)], [$4])])
+
+
+# lt_dict_fetch(DICT, KEY, [SUBKEY])
+# ----------------------------------
+m4_define([lt_dict_fetch],
+[m4_ifval([$3],
+       m4_ifdef([$1($2:$3)], [m4_defn([$1($2:$3)])]),
+    m4_ifdef([$1($2)], [m4_defn([$1($2)])]))])
+
+
+# lt_if_dict_fetch(DICT, KEY, [SUBKEY], VALUE, IF-TRUE, [IF-FALSE])
+# -----------------------------------------------------------------
+m4_define([lt_if_dict_fetch],
+[m4_if(lt_dict_fetch([$1], [$2], [$3]), [$4],
+       [$5],
+    [$6])])
+
+
+# lt_dict_filter(DICT, [SUBKEY], VALUE, [SEPARATOR], KEY, [...])
+# --------------------------------------------------------------
+m4_define([lt_dict_filter],
+[m4_if([$5], [], [],
+  [lt_join(m4_quote(m4_default([$4], [[, ]])),
+           lt_unquote(m4_split(m4_normalize(m4_foreach(_Lt_key, lt_car([m4_shiftn(4, $@)]),
+                     [lt_if_dict_fetch([$1], _Lt_key, [$2], [$3], [_Lt_key ])])))))])[]dnl
+])
diff --git a/apps/irssi/ltversion.m4 b/apps/irssi/ltversion.m4
new file mode 100644 (file)
index 0000000..07a8602
--- /dev/null
@@ -0,0 +1,23 @@
+# ltversion.m4 -- version numbers                      -*- Autoconf -*-
+#
+#   Copyright (C) 2004 Free Software Foundation, Inc.
+#   Written by Scott James Remnant, 2004
+#
+# This file is free software; the Free Software Foundation gives
+# unlimited permission to copy and/or distribute it, with or without
+# modifications, as long as this notice is preserved.
+
+# @configure_input@
+
+# serial 3337 ltversion.m4
+# This file is part of GNU Libtool
+
+m4_define([LT_PACKAGE_VERSION], [2.4.2])
+m4_define([LT_PACKAGE_REVISION], [1.3337])
+
+AC_DEFUN([LTVERSION_VERSION],
+[macro_version='2.4.2'
+macro_revision='1.3337'
+_LT_DECL(, macro_version, 0, [Which release of libtool.m4 was used?])
+_LT_DECL(, macro_revision, 0)
+])
diff --git a/apps/irssi/lt~obsolete.m4 b/apps/irssi/lt~obsolete.m4
new file mode 100644 (file)
index 0000000..c573da9
--- /dev/null
@@ -0,0 +1,98 @@
+# lt~obsolete.m4 -- aclocal satisfying obsolete definitions.    -*-Autoconf-*-
+#
+#   Copyright (C) 2004, 2005, 2007, 2009 Free Software Foundation, Inc.
+#   Written by Scott James Remnant, 2004.
+#
+# This file is free software; the Free Software Foundation gives
+# unlimited permission to copy and/or distribute it, with or without
+# modifications, as long as this notice is preserved.
+
+# serial 5 lt~obsolete.m4
+
+# These exist entirely to fool aclocal when bootstrapping libtool.
+#
+# In the past libtool.m4 has provided macros via AC_DEFUN (or AU_DEFUN)
+# which have later been changed to m4_define as they aren't part of the
+# exported API, or moved to Autoconf or Automake where they belong.
+#
+# The trouble is, aclocal is a bit thick.  It'll see the old AC_DEFUN
+# in /usr/share/aclocal/libtool.m4 and remember it, then when it sees us
+# using a macro with the same name in our local m4/libtool.m4 it'll
+# pull the old libtool.m4 in (it doesn't see our shiny new m4_define
+# and doesn't know about Autoconf macros at all.)
+#
+# So we provide this file, which has a silly filename so it's always
+# included after everything else.  This provides aclocal with the
+# AC_DEFUNs it wants, but when m4 processes it, it doesn't do anything
+# because those macros already exist, or will be overwritten later.
+# We use AC_DEFUN over AU_DEFUN for compatibility with aclocal-1.6. 
+#
+# Anytime we withdraw an AC_DEFUN or AU_DEFUN, remember to add it here.
+# Yes, that means every name once taken will need to remain here until
+# we give up compatibility with versions before 1.7, at which point
+# we need to keep only those names which we still refer to.
+
+# This is to help aclocal find these macros, as it can't see m4_define.
+AC_DEFUN([LTOBSOLETE_VERSION], [m4_if([1])])
+
+m4_ifndef([AC_LIBTOOL_LINKER_OPTION],  [AC_DEFUN([AC_LIBTOOL_LINKER_OPTION])])
+m4_ifndef([AC_PROG_EGREP],             [AC_DEFUN([AC_PROG_EGREP])])
+m4_ifndef([_LT_AC_PROG_ECHO_BACKSLASH],        [AC_DEFUN([_LT_AC_PROG_ECHO_BACKSLASH])])
+m4_ifndef([_LT_AC_SHELL_INIT],         [AC_DEFUN([_LT_AC_SHELL_INIT])])
+m4_ifndef([_LT_AC_SYS_LIBPATH_AIX],    [AC_DEFUN([_LT_AC_SYS_LIBPATH_AIX])])
+m4_ifndef([_LT_PROG_LTMAIN],           [AC_DEFUN([_LT_PROG_LTMAIN])])
+m4_ifndef([_LT_AC_TAGVAR],             [AC_DEFUN([_LT_AC_TAGVAR])])
+m4_ifndef([AC_LTDL_ENABLE_INSTALL],    [AC_DEFUN([AC_LTDL_ENABLE_INSTALL])])
+m4_ifndef([AC_LTDL_PREOPEN],           [AC_DEFUN([AC_LTDL_PREOPEN])])
+m4_ifndef([_LT_AC_SYS_COMPILER],       [AC_DEFUN([_LT_AC_SYS_COMPILER])])
+m4_ifndef([_LT_AC_LOCK],               [AC_DEFUN([_LT_AC_LOCK])])
+m4_ifndef([AC_LIBTOOL_SYS_OLD_ARCHIVE],        [AC_DEFUN([AC_LIBTOOL_SYS_OLD_ARCHIVE])])
+m4_ifndef([_LT_AC_TRY_DLOPEN_SELF],    [AC_DEFUN([_LT_AC_TRY_DLOPEN_SELF])])
+m4_ifndef([AC_LIBTOOL_PROG_CC_C_O],    [AC_DEFUN([AC_LIBTOOL_PROG_CC_C_O])])
+m4_ifndef([AC_LIBTOOL_SYS_HARD_LINK_LOCKS], [AC_DEFUN([AC_LIBTOOL_SYS_HARD_LINK_LOCKS])])
+m4_ifndef([AC_LIBTOOL_OBJDIR],         [AC_DEFUN([AC_LIBTOOL_OBJDIR])])
+m4_ifndef([AC_LTDL_OBJDIR],            [AC_DEFUN([AC_LTDL_OBJDIR])])
+m4_ifndef([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH], [AC_DEFUN([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH])])
+m4_ifndef([AC_LIBTOOL_SYS_LIB_STRIP],  [AC_DEFUN([AC_LIBTOOL_SYS_LIB_STRIP])])
+m4_ifndef([AC_PATH_MAGIC],             [AC_DEFUN([AC_PATH_MAGIC])])
+m4_ifndef([AC_PROG_LD_GNU],            [AC_DEFUN([AC_PROG_LD_GNU])])
+m4_ifndef([AC_PROG_LD_RELOAD_FLAG],    [AC_DEFUN([AC_PROG_LD_RELOAD_FLAG])])
+m4_ifndef([AC_DEPLIBS_CHECK_METHOD],   [AC_DEFUN([AC_DEPLIBS_CHECK_METHOD])])
+m4_ifndef([AC_LIBTOOL_PROG_COMPILER_NO_RTTI], [AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_NO_RTTI])])
+m4_ifndef([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE], [AC_DEFUN([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE])])
+m4_ifndef([AC_LIBTOOL_PROG_COMPILER_PIC], [AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_PIC])])
+m4_ifndef([AC_LIBTOOL_PROG_LD_SHLIBS], [AC_DEFUN([AC_LIBTOOL_PROG_LD_SHLIBS])])
+m4_ifndef([AC_LIBTOOL_POSTDEP_PREDEP], [AC_DEFUN([AC_LIBTOOL_POSTDEP_PREDEP])])
+m4_ifndef([LT_AC_PROG_EGREP],          [AC_DEFUN([LT_AC_PROG_EGREP])])
+m4_ifndef([LT_AC_PROG_SED],            [AC_DEFUN([LT_AC_PROG_SED])])
+m4_ifndef([_LT_CC_BASENAME],           [AC_DEFUN([_LT_CC_BASENAME])])
+m4_ifndef([_LT_COMPILER_BOILERPLATE],  [AC_DEFUN([_LT_COMPILER_BOILERPLATE])])
+m4_ifndef([_LT_LINKER_BOILERPLATE],    [AC_DEFUN([_LT_LINKER_BOILERPLATE])])
+m4_ifndef([_AC_PROG_LIBTOOL],          [AC_DEFUN([_AC_PROG_LIBTOOL])])
+m4_ifndef([AC_LIBTOOL_SETUP],          [AC_DEFUN([AC_LIBTOOL_SETUP])])
+m4_ifndef([_LT_AC_CHECK_DLFCN],                [AC_DEFUN([_LT_AC_CHECK_DLFCN])])
+m4_ifndef([AC_LIBTOOL_SYS_DYNAMIC_LINKER],     [AC_DEFUN([AC_LIBTOOL_SYS_DYNAMIC_LINKER])])
+m4_ifndef([_LT_AC_TAGCONFIG],          [AC_DEFUN([_LT_AC_TAGCONFIG])])
+m4_ifndef([AC_DISABLE_FAST_INSTALL],   [AC_DEFUN([AC_DISABLE_FAST_INSTALL])])
+m4_ifndef([_LT_AC_LANG_CXX],           [AC_DEFUN([_LT_AC_LANG_CXX])])
+m4_ifndef([_LT_AC_LANG_F77],           [AC_DEFUN([_LT_AC_LANG_F77])])
+m4_ifndef([_LT_AC_LANG_GCJ],           [AC_DEFUN([_LT_AC_LANG_GCJ])])
+m4_ifndef([AC_LIBTOOL_LANG_C_CONFIG],  [AC_DEFUN([AC_LIBTOOL_LANG_C_CONFIG])])
+m4_ifndef([_LT_AC_LANG_C_CONFIG],      [AC_DEFUN([_LT_AC_LANG_C_CONFIG])])
+m4_ifndef([AC_LIBTOOL_LANG_CXX_CONFIG],        [AC_DEFUN([AC_LIBTOOL_LANG_CXX_CONFIG])])
+m4_ifndef([_LT_AC_LANG_CXX_CONFIG],    [AC_DEFUN([_LT_AC_LANG_CXX_CONFIG])])
+m4_ifndef([AC_LIBTOOL_LANG_F77_CONFIG],        [AC_DEFUN([AC_LIBTOOL_LANG_F77_CONFIG])])
+m4_ifndef([_LT_AC_LANG_F77_CONFIG],    [AC_DEFUN([_LT_AC_LANG_F77_CONFIG])])
+m4_ifndef([AC_LIBTOOL_LANG_GCJ_CONFIG],        [AC_DEFUN([AC_LIBTOOL_LANG_GCJ_CONFIG])])
+m4_ifndef([_LT_AC_LANG_GCJ_CONFIG],    [AC_DEFUN([_LT_AC_LANG_GCJ_CONFIG])])
+m4_ifndef([AC_LIBTOOL_LANG_RC_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_RC_CONFIG])])
+m4_ifndef([_LT_AC_LANG_RC_CONFIG],     [AC_DEFUN([_LT_AC_LANG_RC_CONFIG])])
+m4_ifndef([AC_LIBTOOL_CONFIG],         [AC_DEFUN([AC_LIBTOOL_CONFIG])])
+m4_ifndef([_LT_AC_FILE_LTDLL_C],       [AC_DEFUN([_LT_AC_FILE_LTDLL_C])])
+m4_ifndef([_LT_REQUIRED_DARWIN_CHECKS],        [AC_DEFUN([_LT_REQUIRED_DARWIN_CHECKS])])
+m4_ifndef([_LT_AC_PROG_CXXCPP],                [AC_DEFUN([_LT_AC_PROG_CXXCPP])])
+m4_ifndef([_LT_PREPARE_SED_QUOTE_VARS],        [AC_DEFUN([_LT_PREPARE_SED_QUOTE_VARS])])
+m4_ifndef([_LT_PROG_ECHO_BACKSLASH],   [AC_DEFUN([_LT_PROG_ECHO_BACKSLASH])])
+m4_ifndef([_LT_PROG_F77],              [AC_DEFUN([_LT_PROG_F77])])
+m4_ifndef([_LT_PROG_FC],               [AC_DEFUN([_LT_PROG_FC])])
+m4_ifndef([_LT_PROG_CXX],              [AC_DEFUN([_LT_PROG_CXX])])
index 76f8bc536ccdd896279c1c3a8ad7852e71b3e78b..6dee31d187e44c1dbc476586e31aacae2a1c5765 100644 (file)
@@ -90,7 +90,7 @@ statusbar = {
     user = "{sb $cumode$N{sbaway $A}}";
     usermode = " {sbusermode $usermode}";
     topic = " $topic";
-    topic_empty = " Irssi v$J - http://irssi.org/help/";
+    topic_empty = " SILC Client v$J - http://silcnet.org/";
 
     # treated specially .. window is printed with non-empty windows,
     # window_empty is printed with empty windows
index d1b8d6a71936f3b1e64eb136b88766341c63721a..6c8acd7328ec272aa1fbcaf3e4e485c325db6b73 100644 (file)
@@ -14,7 +14,7 @@ if SILCPLUGIN
 SBDRS=
 TEXTUI=
 else
-SBDRS=lib-popt lib-config core
+SBDRS=lib-config core
 endif
 
 noinst_HEADERS = \
index f3cc8e60962f05b0d0e9b27b910b81e2206466fa..1d614e167e158f7a37e7168939f338c57a7de9e2 100644 (file)
@@ -1,11 +1,6 @@
 #ifndef __COMMON_H
 #define __COMMON_H
 
-#define IRSSI_WEBSITE "http://irssi.org/"
-#define IRSSI_AUTHOR_EMAIL "cras@irssi.org"
-#define IRSSI_AUTHOR "Timo Sirainen <"IRSSI_AUTHOR_EMAIL">"
-
-#define IRSSI_DIR_SHORT "~/.silc"
 #define IRSSI_DIR_FULL "%s/.silc" /* %s == g_get_home_dir() */
 
 #define IRSSI_GLOBAL_CONFIG "silc.conf" /* config file name in /etc/ */
@@ -14,7 +9,7 @@
 #define DEFAULT_SERVER_ADD_PORT 706
 
 #ifdef HAVE_CONFIG_H
-#include "config.h"
+#include "irssi-config.h"
 #endif
 
 #ifndef PACKAGE
 #include <stddef.h>
 #include <stdarg.h>
 #include <ctype.h>
-#  ifdef HAVE_STRING_H
 #include <string.h>
-#endif
-#ifdef HAVE_STDLIB_H
-#  include <stdlib.h>
-#endif
+#include <stdlib.h>
 #include <errno.h>
 #include <time.h>
 
 #  include <gmodule.h>
 #endif
 
+#if !GLIB_CHECK_VERSION(2,10,0)
+#define g_slice_alloc(size)      g_malloc(size)
+#define g_slice_alloc0(size)     g_malloc0(size)
+#define g_slice_free1(size, mem) g_free(mem)
+#define g_slice_new(type)        g_new(type, 1)
+#define g_slice_new0(type)       g_new0(type, 1)
+#define g_slice_free(type, mem)  g_free(mem)
+#endif
+
 #ifdef USE_GC
 #  define g_free(x) G_STMT_START { (x) = NULL; } G_STMT_END
 #endif
@@ -114,8 +114,6 @@ const char *get_irssi_config(void);
 #define i_isxdigit(x) isxdigit((int) (unsigned char) (x))
 
 typedef struct _IPADDR IPADDR;
-typedef struct _CONFIG_REC CONFIG_REC;
-typedef struct _CONFIG_NODE CONFIG_NODE;
 
 typedef struct _LINEBUF_REC LINEBUF_REC;
 typedef struct _NET_SENDBUF_REC NET_SENDBUF_REC;
index ab26ee14b22b97c5d9f3bbab6eee7013a873257a..1597de2771e615b65fef6404c2e3be511601973b 100644 (file)
@@ -1,5 +1,5 @@
 /*
- args.c : small frontend to libPopt command line argument parser
+ args.c : small frontend to GOption command line argument parser
 
     Copyright (C) 1999-2001 Timo Sirainen
 
     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     GNU General Public License for more details.
 
-    You should have received a copy of the GNU General Public License
-    along with this program; if not, write to the Free Software
-    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+    You should have received a copy of the GNU General Public License along
+    with this program; if not, write to the Free Software Foundation, Inc.,
+    51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 */
 
 #include "module.h"
 #include "args.h"
 
-GArray *iopt_tables = NULL;
+static GOptionContext *context = NULL;
 
-void args_register(struct poptOption *options)
+void args_register(GOptionEntry *options)
 {
-       if (iopt_tables == NULL) {
-               iopt_tables = g_array_new(TRUE, TRUE,
-                                         sizeof(struct poptOption));
-       }
+       if (context == NULL)
+               context = g_option_context_new("");
 
-       while (options->longName != NULL || options->shortName != '\0' ||
-              options->arg != NULL) {
-               g_array_append_val(iopt_tables, *options);
-               options = options+1;
-       }
+       g_option_context_add_main_entries(context, options, "Irssi");
 }
 
 void args_execute(int argc, char *argv[])
 {
-       poptContext con;
-       int nextopt;
+       GError* error = NULL;
 
-       if (iopt_tables == NULL)
+       if (context == NULL)
                return;
 
-       con = poptGetContext(PACKAGE, argc, argv,
-                            (struct poptOption *) (iopt_tables->data), 0);
-       poptReadDefaultConfig(con, TRUE);
-
-       while ((nextopt = poptGetNextOpt(con)) > 0) ;
+       g_option_context_parse(context, &argc, &argv, &error);
+       g_option_context_free(context);
+       context = NULL;
 
-       if (nextopt != -1) {
-               printf("Error on option %s: %s.\n"
+       if (error != NULL) {
+               printf("%s\n"
                       "Run '%s --help' to see a full list of "
                       "available command line options.\n",
-                      poptBadOption(con, 0), poptStrerror(nextopt), argv[0]);
+                      error->message, argv[0]);
                exit(1);
        }
-
-       g_array_free(iopt_tables, TRUE);
-       iopt_tables = NULL;
-
-        poptFreeContext(con);
 }
index 4d1b82fb2de503c0f84e2f57100a19f755fbb802..bbe16b5f5d1082cc4094cf60bf750a4e5d93c2f2 100644 (file)
@@ -1,15 +1,7 @@
 #ifndef __ARGS_H
 #define __ARGS_H
 
-#ifdef HAVE_POPT_H
-#  include <popt.h>
-#else
-#  include "lib-popt/popt.h"
-#endif
-
-extern GArray *iopt_tables;
-
-void args_register(struct poptOption *options);
+void args_register(GOptionEntry *options);
 void args_execute(int argc, char *argv[]);
 
 #endif
index a61ccb5625889aa943f4202b7eb0e1bf53f24ef9..9e2908a82be23678b9724049bf5eeb8ab3f3fe31 100644 (file)
@@ -13,9 +13,9 @@
     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     GNU General Public License for more details.
 
-    You should have received a copy of the GNU General Public License
-    along with this program; if not, write to the Free Software
-    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+    You should have received a copy of the GNU General Public License along
+    with this program; if not, write to the Free Software Foundation, Inc.,
+    51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 */
 
 #include "module.h"
index 79d8f0e7c826fc81da9960fc993ec15beecfb39e..907d363b747c030d8b353adee98bedf5fe63a1f6 100644 (file)
@@ -13,9 +13,9 @@
     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     GNU General Public License for more details.
 
-    You should have received a copy of the GNU General Public License
-    along with this program; if not, write to the Free Software
-    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+    You should have received a copy of the GNU General Public License along
+    with this program; if not, write to the Free Software Foundation, Inc.,
+    51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 */
 
 #include "module.h"
@@ -206,7 +206,7 @@ static void event_connected(SERVER_REC *server)
                /* check that we haven't already joined this channel in
                   same chat network connection.. */
                 if (channel_find_servers(chatnet_servers, rec->name) == NULL)
-                       g_string_sprintfa(chans, "%s,", rec->name);
+                       g_string_append_printf(chans, "%s,", rec->name);
        }
         g_slist_free(chatnet_servers);
 
index c7cc87d85313b14a8b9f3e83020a8f5468770e35..f5d0e9f8f5d18bafebf9007d022109a464d25346 100644 (file)
@@ -13,9 +13,9 @@
     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     GNU General Public License for more details.
 
-    You should have received a copy of the GNU General Public License
-    along with this program; if not, write to the Free Software
-    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+    You should have received a copy of the GNU General Public License along
+    with this program; if not, write to the Free Software Foundation, Inc.,
+    51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 */
 
 #include "module.h"
@@ -24,7 +24,6 @@
 #include "commands.h"
 #include "special-vars.h"
 #include "settings.h"
-#include "recode.h"
 
 #include "chat-protocols.h"
 #include "servers.h"
@@ -71,7 +70,7 @@ static SERVER_CONNECT_REC *get_server_connect(const char *data, int *plus_addr,
 
        if (chatnet == NULL)
                chatnet = g_hash_table_lookup(optlist, "network");
-       
+
        conn = server_create_conn(proto != NULL ? proto->id : -1, addr,
                                  atoi(portstr), chatnet, password, nick);
        if (proto == NULL)
@@ -114,6 +113,9 @@ static SERVER_CONNECT_REC *get_server_connect(const char *data, int *plus_addr,
        if (g_hash_table_lookup(optlist, "!") != NULL)
                conn->no_autojoin_channels = TRUE;
 
+    if (g_hash_table_lookup(optlist, "noautosendcmd") != NULL)
+        conn->no_autosendcmd = TRUE;
+
        if (g_hash_table_lookup(optlist, "noproxy") != NULL)
                 g_free_and_null(conn->proxy);
 
@@ -134,6 +136,7 @@ static SERVER_CONNECT_REC *get_server_connect(const char *data, int *plus_addr,
 
 /* SYNTAX: CONNECT [-4 | -6] [-ssl] [-ssl_cert <cert>] [-ssl_pkey <pkey>]
                    [-ssl_verify] [-ssl_cafile <cafile>] [-ssl_capath <capath>]
+                   [-!] [-noautosendcmd]
                   [-noproxy] [-network <network>] [-host <hostname>]
                   [-rawlog <file>]
                   <address>|<chatnet> [<port> [<password> [<nick>]]] */
@@ -239,6 +242,7 @@ static void sig_default_command_server(const char *data, SERVER_REC *server,
 
 /* SYNTAX: SERVER [-4 | -6] [-ssl] [-ssl_cert <cert>] [-ssl_pkey <pkey>]
                   [-ssl_verify] [-ssl_cafile <cafile>] [-ssl_capath <capath>]
+                  [-!] [-noautosendcmd]
                  [-noproxy] [-network <network>] [-host <hostname>]
                  [-rawlog <file>]
                   [+]<address>|<chatnet> [<port> [<password> [<nick>]]] */
@@ -315,42 +319,11 @@ static void cmd_quit(const char *data)
        signal_emit("gui exit", 0);
 }
 
-/* SYNTAX: JOIN [-invite] [-<server tag>] <channels> [<keys>] */
-static void cmd_join(const char *data, SERVER_REC *server)
-{
-       GHashTable *optlist;
-       char *channels;
-       void *free_arg;
-
-       g_return_if_fail(data != NULL);
-
-       if (!cmd_get_params(data, &free_arg, 1 | PARAM_FLAG_OPTIONS |
-                           PARAM_FLAG_UNKNOWN_OPTIONS | PARAM_FLAG_GETREST,
-                           "join", &optlist, &channels))
-               return;
-
-       /* -<server tag> */
-       server = cmd_options_get_server("join", optlist, server);
-       if (server == NULL || !server->connected)
-                cmd_param_error(CMDERR_NOT_CONNECTED);
-
-       if (g_hash_table_lookup(optlist, "invite"))
-               channels = server->last_invite;
-       else {
-               if (*channels == '\0')
-                       cmd_param_error(CMDERR_NOT_ENOUGH_PARAMS);
-       }
-
-       if (channels != NULL)
-               server->channels_join(server, channels, FALSE);
-       cmd_params_free(free_arg);
-}
-
 /* SYNTAX: MSG [-<server tag>] [-channel | -nick] <targets> <message> */
 static void cmd_msg(const char *data, SERVER_REC *server, WI_ITEM_REC *item)
 {
        GHashTable *optlist;
-       char *target, *origtarget, *msg, *recoded;
+       char *target, *origtarget, *msg;
        void *free_arg;
        int free_ret, target_type = SEND_TARGET_NICK;
 
@@ -395,23 +368,21 @@ static void cmd_msg(const char *data, SERVER_REC *server, WI_ITEM_REC *item)
                else {
                        /* Need to rely on server_ischannel(). If the protocol
                           doesn't really know if it's channel or nick based on
-                          the name, it should just assume it's nick, because 
+                          the name, it should just assume it's nick, because
                           when typing text to channels it's always sent with
                           /MSG -channel. */
                        target_type = server_ischannel(server, target) ?
                                SEND_TARGET_CHANNEL : SEND_TARGET_NICK;
                }
        }
-       recoded = recode_out(server, msg, target);
        if (target != NULL) {
-               signal_emit("server sendmsg", 4, server, target, recoded,
+               signal_emit("server sendmsg", 4, server, target, msg,
                            GINT_TO_POINTER(target_type));
        }
        signal_emit(target != NULL && target_type == SEND_TARGET_CHANNEL ?
                    "message own_public" : "message own_private", 4,
-                   server, recoded, target, origtarget);
-                   
-       g_free(recoded);
+                   server, msg, target, origtarget);
+
        if (free_ret && target != NULL) g_free(target);
        cmd_params_free(free_arg);
 }
@@ -478,7 +449,6 @@ void chat_commands_init(void)
        command_bind("connect", NULL, (SIGNAL_FUNC) cmd_connect);
        command_bind("disconnect", NULL, (SIGNAL_FUNC) cmd_disconnect);
        command_bind("quit", NULL, (SIGNAL_FUNC) cmd_quit);
-       command_bind("join", NULL, (SIGNAL_FUNC) cmd_join);
        command_bind("msg", NULL, (SIGNAL_FUNC) cmd_msg);
        command_bind("foreach", NULL, (SIGNAL_FUNC) cmd_foreach);
        command_bind("foreach server", NULL, (SIGNAL_FUNC) cmd_foreach_server);
@@ -488,8 +458,7 @@ void chat_commands_init(void)
        signal_add("default command server", (SIGNAL_FUNC) sig_default_command_server);
        signal_add("server sendmsg", (SIGNAL_FUNC) sig_server_sendmsg);
 
-       command_set_options("connect", "4 6 !! -network ssl +ssl_cert +ssl_pkey ssl_verify +ssl_cafile +ssl_capath +host noproxy -rawlog");
-       command_set_options("join", "invite");
+       command_set_options("connect", "4 6 !! -network ssl +ssl_cert +ssl_pkey ssl_verify +ssl_cafile +ssl_capath +host noproxy -rawlog noautosendcmd");
        command_set_options("msg", "channel nick");
 }
 
@@ -500,7 +469,6 @@ void chat_commands_deinit(void)
        command_unbind("connect", (SIGNAL_FUNC) cmd_connect);
        command_unbind("disconnect", (SIGNAL_FUNC) cmd_disconnect);
        command_unbind("quit", (SIGNAL_FUNC) cmd_quit);
-       command_unbind("join", (SIGNAL_FUNC) cmd_join);
        command_unbind("msg", (SIGNAL_FUNC) cmd_msg);
        command_unbind("foreach", (SIGNAL_FUNC) cmd_foreach);
        command_unbind("foreach server", (SIGNAL_FUNC) cmd_foreach_server);
index 2989598cbd2c5184c1f6e9bb898e051274ae8a09..ef22dc5c57d35d4c6364c06f551a7838f504ffcf 100644 (file)
@@ -13,9 +13,9 @@
     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     GNU General Public License for more details.
 
-    You should have received a copy of the GNU General Public License
-    along with this program; if not, write to the Free Software
-    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+    You should have received a copy of the GNU General Public License along
+    with this program; if not, write to the Free Software Foundation, Inc.,
+    51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 */
 
 #include "module.h"
index 9e43f859a81ec01335017d8b3f6644b1c3ff8452..376fab58d5692e83a9c45a7c89e1c0f7ac973489 100644 (file)
@@ -13,9 +13,9 @@
     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     GNU General Public License for more details.
 
-    You should have received a copy of the GNU General Public License
-    along with this program; if not, write to the Free Software
-    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+    You should have received a copy of the GNU General Public License along
+    with this program; if not, write to the Free Software Foundation, Inc.,
+    51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 */
 
 #include "module.h"
@@ -118,12 +118,11 @@ static void sig_connected(SERVER_REC *server)
 
        g_return_if_fail(IS_SERVER(server));
 
-       if (server->connrec->chatnet == NULL || server->session_reconnect ||
-           server->connrec->no_autojoin_channels)
+       if (server->connrec->chatnet == NULL || server->session_reconnect)
                return;
 
        rec = chatnet_find(server->connrec->chatnet);
-       if (rec != NULL && rec->autosendcmd)
+       if (!server->connrec->no_autosendcmd && rec != NULL && rec->autosendcmd)
                eval_special_string(rec->autosendcmd, "", server, NULL);
 }
 
index d9dc67af4e9d79b752a80f565aa21446045f8895..1b811bc42611de6f19c966b03d5f8e867d9a5cad 100644 (file)
@@ -13,9 +13,9 @@
     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     GNU General Public License for more details.
 
-    You should have received a copy of the GNU General Public License
-    along with this program; if not, write to the Free Software
-    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+    You should have received a copy of the GNU General Public License along
+    with this program; if not, write to the Free Software Foundation, Inc.,
+    51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 */
 
 #include "module.h"
@@ -325,7 +325,7 @@ void command_runsub(const char *cmd, const char *data,
 
        subcmd = g_strconcat("command ", newcmd, NULL);
 
-       g_strdown(subcmd);
+       ascii_strdown(subcmd);
        if (!signal_emit(subcmd, 3, args, server, item)) {
                defcmd = g_strdup_printf("default command %s", cmd);
                if (!signal_emit(defcmd, 3, data, server, item)) {
@@ -403,7 +403,7 @@ static void command_calc_options(COMMAND_REC *rec, const char *options)
 
                oldopt = optlist_find(list, name);
                if (oldopt != NULL) {
-                        /* already specified - overwrite old defination */
+                        /* already specified - overwrite old definition */
                        g_free(oldopt->data);
                        oldopt->data = g_strdup(*tmp);
                } else {
@@ -561,7 +561,7 @@ static int get_cmd_options(char **data, int ignore_unknown,
        char *option, *arg, **optlist;
        int pos;
 
-       /* get option definations */
+       /* get option definitions */
        rec = cmd == NULL ? NULL : command_find(cmd);
        optlist = rec == NULL ? NULL : rec->options;
 
@@ -637,7 +637,7 @@ static int get_cmd_options(char **data, int ignore_unknown,
                if (option == NULL)
                        break;
 
-               if (*optlist[pos] == '@' && !i_isdigit(**data))
+               if (*optlist[pos] == '@' && !is_numeric(*data, ' '))
                        break; /* expected a numeric argument */
 
                /* save the argument */
@@ -891,7 +891,7 @@ static void parse_command(const char *command, int expand_aliases,
        }
 
        cmd = g_strconcat("command ", newcmd, NULL);
-       g_strdown(cmd);
+       ascii_strdown(cmd);
 
        oldcmd = current_command;
        current_command = cmd+8;
@@ -931,7 +931,7 @@ static void event_command(const char *line, SERVER_REC *server, void *item)
                return;
        }
 
-       /* same cmdchar twice ignores aliases ignores aliases */
+       /* same cmdchar twice ignores aliases */
        line++;
        if (*line == *cmdchar) {
                line++;
@@ -950,10 +950,10 @@ static int eval_recursion_depth=0;
 static void cmd_eval(const char *data, SERVER_REC *server, void *item)
 {
        g_return_if_fail(data != NULL);
-       if (eval_recursion_depth > 100) 
+       if (eval_recursion_depth > 100)
                cmd_return_error(CMDERR_EVAL_MAX_RECURSE);
 
+
        eval_recursion_depth++;
        eval_special_string(data, "", server, item);
        eval_recursion_depth--;
index 2f2f7329e00a92b02f7ef713388607beea54149d..b9debbb5c566ecdd4ae842a449253578a72148c2 100644 (file)
@@ -13,9 +13,9 @@
     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     GNU General Public License for more details.
 
-    You should have received a copy of the GNU General Public License
-    along with this program; if not, write to the Free Software
-    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+    You should have received a copy of the GNU General Public License along
+    with this program; if not, write to the Free Software Foundation, Inc.,
+    51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 */
 
 #include "module.h"
@@ -26,7 +26,6 @@
 #include "misc.h"
 
 #include "net-disconnect.h"
-#include "net-sendbuffer.h"
 #include "signals.h"
 #include "settings.h"
 #include "session.h"
@@ -49,7 +48,7 @@
 
 #ifdef HAVE_SYS_RESOURCE_H
 #  include <sys/resource.h>
-   struct rlimit orig_core_rlimit;
+   static struct rlimit orig_core_rlimit;
 #endif
 
 void chat_commands_init(void);
@@ -154,45 +153,34 @@ static void sig_init_finished(void)
         g_slist_free(dialog_text_queue);
 }
 
-void core_init_paths(int argc, char *argv[])
+static char *fix_path(const char *str)
 {
-       static struct poptOption options[] = {
-               { "config", 0, POPT_ARG_STRING, NULL, 0, "Configuration file location (~/.irssi/config)", "PATH" },
-               { "home", 0, POPT_ARG_STRING, NULL, 0, "Irssi home dir location (~/.irssi)", "PATH" },
-               { NULL, '\0', 0, NULL }
-       };
-       const char *home;
-       char *str;
-       int n, len;
-
-       for (n = 1; n < argc; n++) {
-               if (strncmp(argv[n], "--home=", 7) == 0) {
-                        g_free_not_null(irssi_dir);
-                        irssi_dir = convert_home(argv[n]+7);
-                        len = strlen(irssi_dir);
-                       if (irssi_dir[len-1] == G_DIR_SEPARATOR)
-                               irssi_dir[len-1] = '\0';
-               } else if (strncmp(argv[n], "--config=", 9) == 0) {
-                        g_free_not_null(irssi_config_file);
-                       irssi_config_file = convert_home(argv[n]+9);
-               }
-       }
-
-       if (irssi_dir != NULL && !g_path_is_absolute(irssi_dir)) {
-               str = irssi_dir;
-               irssi_dir = g_strdup_printf("%s/%s", g_get_current_dir(), str);
-               g_free(str);
+       char *new_str = convert_home(str);
+       if (!g_path_is_absolute(new_str)) {
+               char *tmp_str = new_str;
+               new_str = g_strdup_printf("%s/%s", g_get_current_dir(), tmp_str);
+               g_free(tmp_str);
        }
+       return new_str;
+}
 
-       if (irssi_config_file != NULL &&
-           !g_path_is_absolute(irssi_config_file)) {
-               str = irssi_config_file;
-               irssi_config_file =
-                       g_strdup_printf("%s/%s", g_get_current_dir(), str);
-               g_free(str);
-       }
+void core_register_options(void)
+{
+       static GOptionEntry options[] = {
+               { "config", 0, 0, G_OPTION_ARG_STRING, &irssi_config_file, "Configuration file location (~/.irssi/config)", "PATH" },
+               { "home", 0, 0, G_OPTION_ARG_STRING, &irssi_dir, "Irssi home dir location (~/.irssi)", "PATH" },
+               { NULL }
+       };
 
        args_register(options);
+       session_register_options();
+}
+
+void core_preinit(const char *path)
+{
+       const char *home;
+       char *str;
+       int len;
 
        if (irssi_dir == NULL) {
                home = g_get_home_dir();
@@ -200,11 +188,23 @@ void core_init_paths(int argc, char *argv[])
                        home = ".";
 
                irssi_dir = g_strdup_printf(IRSSI_DIR_FULL, home);
+       } else {
+               str = irssi_dir;
+               irssi_dir = fix_path(str);
+               g_free(str);
+               len = strlen(irssi_dir);
+               if (irssi_dir[len-1] == G_DIR_SEPARATOR)
+                       irssi_dir[len-1] = '\0';
        }
        if (irssi_config_file == NULL)
                irssi_config_file = g_strdup_printf("%s/"IRSSI_HOME_CONFIG, irssi_dir);
+       else {
+               str = irssi_config_file;
+               irssi_config_file = fix_path(str);
+               g_free(str);
+       }
 
-       session_set_binary(argv[0]);
+       session_set_binary(path);
 }
 
 static void sig_irssi_init_finished(void)
@@ -212,7 +212,7 @@ static void sig_irssi_init_finished(void)
         irssi_init_finished = TRUE;
 }
 
-void core_init(int argc, char *argv[])
+void core_init(void)
 {
        dialog_type_queue = NULL;
        dialog_text_queue = NULL;
@@ -224,7 +224,6 @@ void core_init(int argc, char *argv[])
 #endif
 
        net_disconnect_init();
-       net_sendbuffer_init();
        signals_init();
 
        signal_add_first("gui dialog", (SIGNAL_FUNC) sig_gui_dialog);
@@ -296,7 +295,6 @@ void core_deinit(void)
        commands_deinit();
        settings_deinit();
        signals_deinit();
-       net_sendbuffer_deinit();
        net_disconnect_deinit();
 
 #ifndef WIN32
index ceff244b430be1253048e15613d9d095ae29ae0e..982dbaadbdc461067f3d82c1fc0fec58a67d7c92 100644 (file)
@@ -16,8 +16,9 @@ extern int irssi_init_finished; /* TRUE after "irssi init finished" signal is se
 extern int reload_config; /* TRUE after received SIGHUP. */
 extern time_t client_start_time;
 
-void core_init_paths(int argc, char *argv[]);
+void core_preinit(const char *path);
 
+void core_register_options(void);
 void core_init(void);
 void core_deinit(void);
 
index 0d7a6141267f29a3933a725a6c989956ff49ff1f..ba6264d69e29ca4004c4302ddbf228962f9b101f 100644 (file)
@@ -13,9 +13,9 @@
     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     GNU General Public License for more details.
 
-    You should have received a copy of the GNU General Public License
-    along with this program; if not, write to the Free Software
-    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+    You should have received a copy of the GNU General Public License along
+    with this program; if not, write to the Free Software Foundation, Inc.,
+    51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 */
 
 #include "core.h"
@@ -71,7 +71,7 @@ void expando_create(const char *key, EXPANDO_FUNC func, ...)
         const char *signal;
        va_list va;
 
-       g_return_if_fail(key != NULL || *key == '\0');
+       g_return_if_fail(key != NULL && *key != '\0');
        g_return_if_fail(func != NULL);
 
        if (key[1] != '\0')
@@ -136,7 +136,7 @@ void expando_destroy(const char *key, EXPANDO_FUNC func)
        gpointer origkey, value;
         EXPANDO_REC *rec;
 
-       g_return_if_fail(key != NULL || *key == '\0');
+       g_return_if_fail(key != NULL && *key != '\0');
        g_return_if_fail(func != NULL);
 
        if (key[1] == '\0') {
@@ -341,8 +341,9 @@ static char *expando_cmdchar(SERVER_REC *server, void *item, int *free_ret)
 
 /* modes of current channel, if any */
 static char *expando_chanmode(SERVER_REC *server, void *item, int *free_ret)
-{ 
+{
        char *cmode;
+       char *args;
 
        *free_ret = FALSE;
 
@@ -354,8 +355,9 @@ static char *expando_chanmode(SERVER_REC *server, void *item, int *free_ret)
 
        *free_ret = TRUE;
        cmode = g_strdup(CHANNEL(item)->mode);
-       if (strchr(cmode, ' ') != NULL)
-               *(strchr(cmode, ' ')) = 0;
+       args = strchr(cmode, ' ');
+       if (args != NULL)
+               *args = 0;
 
        return cmode;
 }
@@ -691,7 +693,7 @@ void expandos_init(void)
 
        read_settings();
 
-        timer_tag = g_timeout_add(500, (GSourceFunc) sig_timer, NULL);
+        timer_tag = g_timeout_add(1000, (GSourceFunc) sig_timer, NULL);
        signal_add("message public", (SIGNAL_FUNC) sig_message_public);
        signal_add("message private", (SIGNAL_FUNC) sig_message_private);
        signal_add("message own_private", (SIGNAL_FUNC) sig_message_own_private);
index 99986dd27ce979c488d97b63dd873a85a5cab8ba..ef7221b76fe52dcff009532941c624395d175f9e 100644 (file)
@@ -13,9 +13,9 @@
     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     GNU General Public License for more details.
 
-    You should have received a copy of the GNU General Public License
-    along with this program; if not, write to the Free Software
-    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+    You should have received a copy of the GNU General Public License along
+    with this program; if not, write to the Free Software Foundation, Inc.,
+    51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 */
 
 #include "module.h"
@@ -58,6 +58,10 @@ static int ignore_check_replies_rec(IGNORE_REC *rec, CHANNEL_REC *channel,
        return FALSE;
 }
 
+#define ignore_match_channel(rec, channel) \
+       ((rec)->channels == NULL || ((channel) != NULL && \
+               strarray_find((rec)->channels, (channel)) != -1))
+
 static int ignore_check_replies(CHANNEL_REC *chanrec, const char *text)
 {
        GSList *tmp;
@@ -70,6 +74,7 @@ static int ignore_check_replies(CHANNEL_REC *chanrec, const char *text)
                IGNORE_REC *rec = tmp->data;
 
                if (rec->mask != NULL && rec->replies &&
+                   ignore_match_channel(rec, chanrec->name) &&
                    ignore_check_replies_rec(rec, chanrec, text))
                        return TRUE;
        }
@@ -112,49 +117,13 @@ static int ignore_match_pattern(IGNORE_REC *rec, const char *text)
        ((rec)->servertag == NULL || \
        g_strcasecmp((server)->tag, (rec)->servertag) == 0)
 
-#define ignore_match_channel(rec, channel) \
-       ((rec)->channels == NULL || ((channel) != NULL && \
-               strarray_find((rec)->channels, (channel)) != -1))
-
-static int ignore_check_without_mask(GSList *list, CHANNEL_REC *channel,
-                                    int level, const char *text)
-{
-       GSList *tmp;
-        int len, best_mask, best_match, best_patt;
-
-        best_mask = best_patt = -1; best_match = FALSE;
-       for (tmp = list; tmp != NULL; tmp = tmp->next) {
-               IGNORE_REC *rec = tmp->data;
-
-               if (ignore_match_level(rec, level) &&
-                   ignore_match_pattern(rec, text)) {
-                       len = rec->mask == NULL ? 0 : strlen(rec->mask);
-                       if (len > best_mask) {
-                               best_mask = len;
-                               best_match = !rec->exception;
-                       } else if (len == best_mask && rec->pattern != NULL) {
-                               len = strlen(rec->pattern);
-                               if (len > best_patt) {
-                                       best_patt = len;
-                                       best_match = !rec->exception;
-                               }
-                       }
-               }
-       }
-
-       if (best_match || (level & MSGLEVEL_PUBLIC) == 0)
-               return best_match;
-
-        return ignore_check_replies(channel, text);
-}
-
 int ignore_check(SERVER_REC *server, const char *nick, const char *host,
                 const char *channel, const char *text, int level)
 {
        CHANNEL_REC *chanrec;
        NICK_REC *nickrec;
         IGNORE_REC *rec;
-       GSList *tmp, *list;
+       GSList *tmp;
         char *nickmask;
         int len, best_mask, best_match, best_patt;
 
@@ -169,31 +138,36 @@ int ignore_check(SERVER_REC *server, const char *nick, const char *host,
                if (nickrec->host == NULL)
                        nicklist_set_host(chanrec, nickrec, host);
 
-               list = nickmatch_find(nickmatch, nickrec);
-               return ignore_check_without_mask(list, chanrec, level, text);
+               tmp = nickmatch_find(nickmatch, nickrec);
+               nickmask = NULL;
+       } else {
+               tmp = ignores;
+               nickmask = g_strconcat(nick, "!", host, NULL);
        }
 
-       nickmask = g_strconcat(nick, "!", host, NULL);
-
         best_mask = best_patt = -1; best_match = FALSE;
-       for (tmp = ignores; tmp != NULL; tmp = tmp->next) {
+       for (; tmp != NULL; tmp = tmp->next) {
+               int match = 1;
                rec = tmp->data;
 
-               if (ignore_match_level(rec, level) &&
-                   ignore_match_server(rec, server) &&
-                   ignore_match_channel(rec, channel) &&
-                   ignore_match_nickmask(rec, nick, nickmask) &&
+               if (nickmask != NULL)
+                       match = ignore_match_server(rec, server) &&
+                               ignore_match_channel(rec, channel) &&
+                               ignore_match_nickmask(rec, nick, nickmask);
+               if (match &&
+                   ignore_match_level(rec, level) &&
                    ignore_match_pattern(rec, text)) {
                        len = rec->mask == NULL ? 0 : strlen(rec->mask);
                        if (len > best_mask) {
                                best_mask = len;
                                best_match = !rec->exception;
-                       } else if (len == best_mask && rec->pattern != NULL) {
-                               len = strlen(rec->pattern);
+                       } else if (len == best_mask) {
+                               len = rec->pattern == NULL ? 0 : strlen(rec->pattern);
                                if (len > best_patt) {
                                        best_patt = len;
                                        best_match = !rec->exception;
-                               }
+                               } else if (len == best_patt && rec->exception)
+                                       best_match = 0;
                        }
                }
        }
@@ -421,7 +395,7 @@ static void read_ignores(void)
 
                rec->mask = g_strdup(config_node_get_str(node, "mask", NULL));
                rec->pattern = g_strdup(config_node_get_str(node, "pattern", NULL));
-               rec->level = level2bits(config_node_get_str(node, "level", ""));
+               rec->level = level2bits(config_node_get_str(node, "level", ""), NULL);
                 rec->exception = config_node_get_bool(node, "exception", FALSE);
                rec->regexp = config_node_get_bool(node, "regexp", FALSE);
                rec->fullword = config_node_get_bool(node, "fullword", FALSE);
index 0caf58b650438ea1c0ce66c9e67a851562f521cd..3cc00e95b5d87f105f6456b2c3ffade59b3ebf2d 100644 (file)
@@ -13,9 +13,9 @@
     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     GNU General Public License for more details.
 
-    You should have received a copy of the GNU General Public License
-    along with this program; if not, write to the Free Software
-    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+    You should have received a copy of the GNU General Public License along
+    with this program; if not, write to the Free Software Foundation, Inc.,
+    51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 */
 
 #include "module.h"
@@ -53,10 +53,10 @@ int level_get(const char *level)
 {
        int n, len, match;
 
-       if (g_strcasecmp(level, "ALL") == 0 || strcmp(level, "*") == 0)
+       if (g_ascii_strcasecmp(level, "ALL") == 0 || strcmp(level, "*") == 0)
                return MSGLEVEL_ALL;
 
-       if (g_strcasecmp(level, "NEVER") == 0)
+       if (g_ascii_strcasecmp(level, "NEVER") == 0)
                return MSGLEVEL_NEVER;
 
        len = strlen(level);
@@ -65,7 +65,7 @@ int level_get(const char *level)
        /* partial match allowed, as long as it's the only one that matches */
        match = 0;
        for (n = 0; levels[n] != NULL; n++) {
-               if (g_strncasecmp(levels[n], level, len) == 0) {
+               if (g_ascii_strncasecmp(levels[n], level, len) == 0) {
                        if ((int)strlen(levels[n]) == len) {
                                /* full match */
                                return 1L << n;
@@ -81,11 +81,14 @@ int level_get(const char *level)
        return match;
 }
 
-int level2bits(const char *level)
+int level2bits(const char *level, int *errorp)
 {
        char *orig, *str, *ptr;
        int ret, singlelevel, negative;
 
+       if (errorp != NULL)
+               *errorp = FALSE;
+
        g_return_val_if_fail(level != NULL, 0);
 
        if (*level == '\0')
@@ -107,7 +110,8 @@ int level2bits(const char *level)
                if (singlelevel != 0) {
                        ret = !negative ? (ret | singlelevel) :
                                (ret & ~singlelevel);
-               }
+               } else if (errorp != NULL)
+                       *errorp = TRUE;
 
                        while (*str == ' ') str++;
                if (*str == '\0') break;
@@ -137,7 +141,7 @@ char *bits2level(int bits)
 
        for (n = 0; levels[n] != NULL; n++) {
                if (bits & (1L << n))
-                       g_string_sprintfa(str, "%s ", levels[n]);
+                       g_string_append_printf(str, "%s ", levels[n]);
        }
         if (str->len > 0)
                g_string_truncate(str, str->len-1);
@@ -158,7 +162,6 @@ int combine_level(int dest, const char *src)
        list = g_strsplit(src, " ", -1);
        for (item = list; *item != NULL; item++) {
                itemname = *item + (**item == '+' || **item == '-' ? 1 : 0);
-                g_strup(itemname);
                itemlevel = level_get(itemname);
 
                if (strcmp(itemname, "NONE") == 0)
index dec7afe74c05274f31d8ff7f368394ba235ecdb7..9f7e588f370b03d592fe24f336d17f17573d3d5e 100644 (file)
@@ -40,7 +40,7 @@ enum {
 };
 
 int level_get(const char *level);
-int level2bits(const char *level);
+int level2bits(const char *level, int *errorp);
 char *bits2level(int bits);
 int combine_level(int dest, const char *src);
 
index a1e96544adba037da20f50f0b8716bd5906a972e..0ee87d2309400b35a9c868ea223127d161d29591 100644 (file)
@@ -13,9 +13,9 @@
     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     GNU General Public License for more details.
 
-    You should have received a copy of the GNU General Public License
-    along with this program; if not, write to the Free Software
-    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+    You should have received a copy of the GNU General Public License along
+    with this program; if not, write to the Free Software Foundation, Inc.,
+    51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 */
 
 #include "module.h"
@@ -43,8 +43,7 @@ static void linebuf_append(LINEBUF_REC *rec, const char *data, int len)
 {
        if (rec->len+len > rec->alloc) {
                rec->alloc = nearest_power(rec->len+len);;
-               rec->str = rec->str == NULL ? g_malloc(rec->alloc) :
-                       g_realloc(rec->str, rec->alloc);
+               rec->str = g_realloc(rec->str, rec->alloc);
        }
 
        memcpy(rec->str + rec->len, data, len);
@@ -53,12 +52,7 @@ static void linebuf_append(LINEBUF_REC *rec, const char *data, int len)
 
 static char *linebuf_find(LINEBUF_REC *rec, char chr)
 {
-        int n;
-
-       for (n = 0; n < rec->len; n++)
-               if (rec->str[n] == chr) return rec->str+n;
-
-       return NULL;
+       return memchr(rec->str, chr, rec->len);
 }
 
 static int remove_newline(LINEBUF_REC *rec)
@@ -114,7 +108,6 @@ int line_split(const char *data, int len, char **output, LINEBUF_REC **buffer)
                        return -1;
 
                /* no new data got but still something in buffer.. */
-                len = 0;
                if (linebuf_find(rec, '\n') == NULL) {
                        /* connection closed and last line is missing \n ..
                           just add it so we can see if it had
index 233f3f59f1d407d1182d0b1bf288fee0291bb0f8..681edcbf535f4b53a735a3493983b323922f268c 100644 (file)
@@ -13,9 +13,9 @@
     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     GNU General Public License for more details.
 
-    You should have received a copy of the GNU General Public License
-    along with this program; if not, write to the Free Software
-    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+    You should have received a copy of the GNU General Public License along
+    with this program; if not, write to the Free Software Foundation, Inc.,
+    51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 */
 
 #include "module.h"
index 4d49402e371798e8ae452729ac54dfef5667bc84..106aafb896019de3f681018eb12f1c2d38318adf 100644 (file)
@@ -13,9 +13,9 @@
     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     GNU General Public License for more details.
 
-    You should have received a copy of the GNU General Public License
-    along with this program; if not, write to the Free Software
-    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+    You should have received a copy of the GNU General Public License along
+    with this program; if not, write to the Free Software Foundation, Inc.,
+    51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 */
 
 #include "module.h"
 
 #define DEFAULT_LOG_FILE_CREATE_MODE 600
 
-#ifdef HAVE_FCNTL
-static struct flock lock;
-#endif
-
 GSList *logs;
 
 static const char *log_item_types[] = {
@@ -55,7 +51,7 @@ static int log_item_str2type(const char *type)
        int n;
 
        for (n = 0; log_item_types[n] != NULL; n++) {
-               if (g_strcasecmp(log_item_types[n], type) == 0)
+               if (g_ascii_strcasecmp(log_item_types[n], type) == 0)
                        return n;
        }
 
@@ -102,6 +98,7 @@ static char *log_filename(LOG_REC *log)
 int log_start_logging(LOG_REC *log)
 {
        char *dir;
+       struct flock lock;
 
        g_return_val_if_fail(log != NULL, FALSE);
 
@@ -116,7 +113,7 @@ int log_start_logging(LOG_REC *log)
            strcmp(log->real_fname, log->fname) != 0) {
                /* path may contain variables (%time, $vars),
                   make sure the directory is created */
-               dir = g_dirname(log->real_fname);
+               dir = g_path_get_dirname(log->real_fname);
                mkpath(dir, log_dir_create_mode);
                g_free(dir);
        }
@@ -129,7 +126,6 @@ int log_start_logging(LOG_REC *log)
                log->failed = TRUE;
                return FALSE;
        }
-#ifdef HAVE_FCNTL
         memset(&lock, 0, sizeof(lock));
        lock.l_type = F_WRLCK;
        if (fcntl(log->handle, F_SETLK, &lock) == -1 && errno == EACCES) {
@@ -139,7 +135,6 @@ int log_start_logging(LOG_REC *log)
                log->failed = TRUE;
                return FALSE;
        }
-#endif
        lseek(log->handle, 0, SEEK_END);
 
        log->opened = log->last = time(NULL);
@@ -154,6 +149,8 @@ int log_start_logging(LOG_REC *log)
 
 void log_stop_logging(LOG_REC *log)
 {
+       struct flock lock;
+
        g_return_if_fail(log != NULL);
 
        if (log->handle == -1)
@@ -165,11 +162,9 @@ void log_stop_logging(LOG_REC *log)
                            settings_get_str("log_close_string"),
                            "\n", time(NULL));
 
-#ifdef HAVE_FCNTL
         memset(&lock, 0, sizeof(lock));
        lock.l_type = F_UNLCK;
        fcntl(log->handle, F_SETLK, &lock);
-#endif
 
        write_buffer_flush();
        close(log->handle);
@@ -250,11 +245,9 @@ static int itemcmp(const char *patt, const char *item)
 {
        /* returns 0 on match, nonzero otherwise */
 
-       if (item == NULL)
-               return g_strcasecmp(patt, "*") != 0;
-       if (*patt == '*')
+       if (!strcmp(patt, "*"))
                return 0;
-        return g_strcasecmp(patt, item);
+        return item ? g_strcasecmp(patt, item) : 1;
 }
 
 LOG_ITEM_REC *log_item_find(LOG_REC *log, int type, const char *item,
@@ -301,8 +294,7 @@ void log_file_write(const char *server_tag, const char *item, int level,
 
                if (rec->items == NULL)
                        fallbacks = g_slist_append(fallbacks, rec);
-               else if (item != NULL &&
-                        log_item_find(rec, LOG_ITEM_TARGET, item,
+               else if (log_item_find(rec, LOG_ITEM_TARGET, item,
                                       server_tag) != NULL)
                        log_write_rec(rec, str, level);
        }
@@ -548,7 +540,7 @@ static void log_read_config(void)
                log->handle = -1;
                log->fname = g_strdup(node->key);
                log->autoopen = config_node_get_bool(node, "auto_open", FALSE);
-               log->level = level2bits(config_node_get_str(node, "level", 0));
+               log->level = level2bits(config_node_get_str(node, "level", 0), NULL);
 
                signal_emit("log config read", 2, log, node);
 
index 02c7655c4c2e4a9eadaf1803863a4ea152419df1..9231876539273bc22d5f210406cb91f74313d6d8 100644 (file)
@@ -13,9 +13,9 @@
     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     GNU General Public License for more details.
 
-    You should have received a copy of the GNU General Public License
-    along with this program; if not, write to the Free Software
-    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+    You should have received a copy of the GNU General Public License along
+    with this program; if not, write to the Free Software Foundation, Inc.,
+    51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 */
 
 #include "module.h"
index 3dbc7bad0621797bde94f7d3405d4b67a4059e5a..7c930e3f61955fbb75bdd52b3c880a6e1c195a07 100644 (file)
     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     GNU General Public License for more details.
 
-    You should have received a copy of the GNU General Public License
-    along with this program; if not, write to the Free Software
-    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+    You should have received a copy of the GNU General Public License along
+    with this program; if not, write to the Free Software Foundation, Inc.,
+    51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 */
 
 #include "module.h"
 #include "misc.h"
-#include "pidwait.h"
 
-#include <errno.h>
 #ifdef HAVE_REGEX_H
 #  include <regex.h>
 #endif
@@ -89,6 +87,16 @@ int g_input_add(GIOChannel *source, int condition,
                                function, data);
 }
 
+/* easy way to bypass glib polling of io channel internal buffer */
+int g_input_add_poll(int fd, int priority, int condition,
+                    GInputFunction function, void *data)
+{
+       GIOChannel *source = g_io_channel_unix_new(fd);
+       int ret = g_input_add_full(source, priority, condition, function, data);
+       g_io_channel_unref(source);
+       return ret;
+}
+
 int g_timeval_cmp(const GTimeVal *tv1, const GTimeVal *tv2)
 {
        if (tv1->tv_sec < tv2->tv_sec)
@@ -308,7 +316,7 @@ char *stristr(const char *data, const char *key)
        ((unsigned char) (c) < 128 && \
        (i_isspace(c) || i_ispunct(c)))
 
-char *strstr_full_case(const char *data, const char *key, int icase)
+static char *strstr_full_case(const char *data, const char *key, int icase)
 {
        const char *start, *max;
        int keylen, datalen, pos, match;
@@ -576,23 +584,23 @@ uoff_t str_to_uofft(const char *str)
 }
 
 /* convert all low-ascii (<32) to ^<A..> combinations */
-char *show_lowascii(const char *channel)
+char *show_lowascii(const char *str)
 {
-       char *str, *p;
+       char *ret, *p;
 
-       str = p = g_malloc(strlen(channel)*2+1);
-       while (*channel != '\0') {
-               if ((unsigned char) *channel >= 32)
-                       *p++ = *channel;
+       ret = p = g_malloc(strlen(str)*2+1);
+       while (*str != '\0') {
+               if ((unsigned char) *str >= 32)
+                       *p++ = *str;
                else {
                        *p++ = '^';
-                       *p++ = *channel + 'A'-1;
+                       *p++ = *str + 'A'-1;
                }
-               channel++;
+               str++;
        }
        *p = '\0';
 
-       return str;
+       return ret;
 }
 
 /* Get time in human readable form with localtime() + asctime() */
@@ -748,17 +756,22 @@ int expand_escape(const char **data)
                 /* control character (\cA = ^A) */
                 (*data)++;
                return i_toupper(**data) - 64;
-       default:
-               if (!i_isdigit(**data))
-                       return -1;
-
+       case '0': case '1': case '2': case '3':
+       case '4': case '5': case '6': case '7':
                 /* octal */
+               digit[1] = digit[2] = digit[3] = '\0';
                 digit[0] = (*data)[0];
-                digit[1] = (*data)[1];
-               digit[2] = (*data)[2];
-                digit[3] = '\0';
-               *data += 2;
+               if ((*data)[1] >= '0' && (*data)[1] <= '7') {
+                       ++*data;
+                       digit[1] = **data;
+                       if ((*data)[1] >= '0' && (*data)[1] <= '7') {
+                               ++*data;
+                               digit[2] = **data;
+                       }
+               }
                return strtol(digit, NULL, 8);
+       default:
+               return -1;
        }
 }
 
@@ -803,70 +816,82 @@ int nearest_power(int num)
 int parse_time_interval(const char *time, int *msecs)
 {
        const char *desc;
-       int number, sign, len, ret;
+       int number, sign, len, ret, digits;
 
        *msecs = 0;
 
        /* max. return value is around 24 days */
-       number = 0; sign = 1; ret = TRUE;
-       for (;;) {
-               if (*time == '-') {
-                       sign = -sign;
+       number = 0; sign = 1; ret = TRUE; digits = FALSE;
+       while (i_isspace(*time))
+               time++;
+       if (*time == '-') {
+               sign = -sign;
+               time++;
+               while (i_isspace(*time))
                        time++;
-                       continue;
-               }
-
+       }
+       for (;;) {
                if (i_isdigit(*time)) {
                        number = number*10 + (*time - '0');
                        time++;
+                       digits = TRUE;
                        continue;
                }
 
+               if (!digits)
+                       return FALSE;
+
                /* skip punctuation */
-               while (*time != '\0' && i_ispunct(*time))
+               while (*time != '\0' && i_ispunct(*time) && *time != '-')
                        time++;
 
                /* get description */
                for (len = 0, desc = time; i_isalpha(*time); time++)
                        len++;
 
+               while (i_isspace(*time))
+                       time++;
+
                if (len == 0) {
+                       if (*time != '\0')
+                               return FALSE;
                        *msecs += number * 1000; /* assume seconds */
                        *msecs *= sign;
                        return TRUE;
                }
 
-               if (g_strncasecmp(desc, "days", len) == 0) {
+               if (g_ascii_strncasecmp(desc, "days", len) == 0) {
                        if (number > 24) {
                                /* would overflow */
                                return FALSE;
                        }
                        *msecs += number * 1000*3600*24;
-               } else if (g_strncasecmp(desc, "hours", len) == 0)
+               } else if (g_ascii_strncasecmp(desc, "hours", len) == 0)
                        *msecs += number * 1000*3600;
-               else if (g_strncasecmp(desc, "minutes", len) == 0 ||
-                        g_strncasecmp(desc, "mins", len) == 0)
+               else if (g_ascii_strncasecmp(desc, "minutes", len) == 0 ||
+                        g_ascii_strncasecmp(desc, "mins", len) == 0)
                        *msecs += number * 1000*60;
-               else if (g_strncasecmp(desc, "seconds", len) == 0 ||
-                        g_strncasecmp(desc, "secs", len) == 0)
+               else if (g_ascii_strncasecmp(desc, "seconds", len) == 0 ||
+                        g_ascii_strncasecmp(desc, "secs", len) == 0)
                        *msecs += number * 1000;
-               else if (g_strncasecmp(desc, "milliseconds", len) == 0 ||
-                        g_strncasecmp(desc, "millisecs", len) == 0 ||
-                        g_strncasecmp(desc, "mseconds", len) == 0 ||
-                        g_strncasecmp(desc, "msecs", len) == 0)
+               else if (g_ascii_strncasecmp(desc, "milliseconds", len) == 0 ||
+                        g_ascii_strncasecmp(desc, "millisecs", len) == 0 ||
+                        g_ascii_strncasecmp(desc, "mseconds", len) == 0 ||
+                        g_ascii_strncasecmp(desc, "msecs", len) == 0)
                        *msecs += number;
                else {
                        ret = FALSE;
                }
 
                /* skip punctuation */
-               while (*time != '\0' && i_ispunct(*time))
+               while (*time != '\0' && i_ispunct(*time) && *time != '-')
                        time++;
 
                if (*time == '\0')
                        break;
 
                number = 0;
+               digits = FALSE;
        }
 
        *msecs *= sign;
@@ -907,13 +932,13 @@ int parse_size(const char *size, int *bytes)
                        return FALSE;
                }
 
-               if (g_strncasecmp(desc, "gbytes", len) == 0)
+               if (g_ascii_strncasecmp(desc, "gbytes", len) == 0)
                        *bytes += number * 1024*1024*1024;
-               if (g_strncasecmp(desc, "mbytes", len) == 0)
+               if (g_ascii_strncasecmp(desc, "mbytes", len) == 0)
                        *bytes += number * 1024*1024;
-               if (g_strncasecmp(desc, "kbytes", len) == 0)
+               if (g_ascii_strncasecmp(desc, "kbytes", len) == 0)
                        *bytes += number * 1024;
-               if (g_strncasecmp(desc, "bytes", len) == 0)
+               if (g_ascii_strncasecmp(desc, "bytes", len) == 0)
                        *bytes += number;
 
                /* skip punctuation */
@@ -923,3 +948,21 @@ int parse_size(const char *size, int *bytes)
 
        return TRUE;
 }
+
+char *ascii_strup(char *str)
+{
+       char *s;
+
+       for (s = str; *s; s++)
+               *s = g_ascii_toupper (*s);
+       return str;
+}
+
+char *ascii_strdown(char *str)
+{
+       char *s;
+
+       for (s = str; *s; s++)
+               *s = g_ascii_tolower (*s);
+       return str;
+}
index 35a9dfc8a5f316e53e669cee43e8daf3612e0838..2cb8e66a8af4d1d204a2dee6a7579cfd23911012 100644 (file)
@@ -1,6 +1,9 @@
 #ifndef __MISC_H
 #define __MISC_H
 
+int g_input_add_poll(int fd, int priority, int condition,
+                    GInputFunction function, void *data);
+
 /* `str' should be type char[MAX_INT_STRLEN] */
 #define ltoa(str, num) \
        g_snprintf(str, sizeof(str), "%d", num)
@@ -14,13 +17,6 @@ int g_timeval_cmp(const GTimeVal *tv1, const GTimeVal *tv2);
    if the difference is too large, the result might be invalid. */
 long get_timeval_diff(const GTimeVal *tv1, const GTimeVal *tv2);
 
-/* find `item' from a space separated `list' */
-int find_substr(const char *list, const char *item);
-/* return how many items `array' has */
-int strarray_length(char **array);
-/* return index of `item' in `array' or -1 if not found */
-int strarray_find(char **array, const char *item);
-
 GSList *gslist_find_string(GSList *list, const char *key);
 GSList *gslist_find_icase_string(GSList *list, const char *key);
 GList *glist_find_string(GList *list, const char *key);
@@ -37,15 +33,6 @@ char *gslist_to_string(GSList *list, const char *delimiter);
    items while using this list, use g_slist_free() after you're done with it */
 GSList *hashtable_get_keys(GHashTable *hash);
 
-/* strstr() with case-ignoring */
-char *stristr(const char *data, const char *key);
-
-/* like strstr(), but matches only for full words.
-   `icase' specifies if match is case sensitive */
-char *strstr_full_case(const char *data, const char *key, int icase);
-char *strstr_full(const char *data, const char *key);
-char *stristr_full(const char *data, const char *key);
-
 /* easy way to check if regexp matches */
 int regexp_match(const char *str, const char *regexp);
 
@@ -64,23 +51,10 @@ int g_istr_cmp(gconstpointer v, gconstpointer v2);
 /* Find `mask' from `data', you can use * and ? wildcards. */
 int match_wildcards(const char *mask, const char *data);
 
-/* Return TRUE if all characters in `str' are numbers.
-   Stop when `end_char' is found from string. */
-int is_numeric(const char *str, char end_char);
-
-/* replace all `from' chars in string to `to' chars. returns `str' */
-char *replace_chars(char *str, char from, char to);
-
 /* octal <-> decimal conversions */
 int octal2dec(int octal);
 int dec2octal(int decimal);
 
-/* string -> uoff_t */
-uoff_t str_to_uofft(const char *str);
-
-/* convert all low-ascii (<32) to ^<A..> combinations */
-char *show_lowascii(const char *channel);
-
 /* Get time in human readable form with localtime() + asctime() */
 char *my_asctime(time_t t);
 
@@ -98,16 +72,47 @@ GSList *columns_sort_list(GSList *list, int rows);
    one after '\'. Returns the expanded character or -1 if error. */
 int expand_escape(const char **data);
 
-/* Escape all '"', "'" and '\' chars with '\' */
-char *escape_string(const char *str);
-
-/* Like strlcpy(), but return -1 if buffer was overflown, 0 if not. */
-int strocpy(char *dest, const char *src, size_t dstsize);
-
 int nearest_power(int num);
 
 /* Returns TRUE / FALSE */
 int parse_time_interval(const char *time, int *msecs);
 int parse_size(const char *size, int *bytes);
 
+/* Return TRUE if all characters in `str' are numbers.
+   Stop when `end_char' is found from string. */
+int is_numeric(const char *str, char end_char);
+
+/* Like strlcpy(), but return -1 if buffer was overflown, 0 if not. */
+int strocpy(char *dest, const char *src, size_t dstsize);
+
+/* strstr() with case-ignoring */
+char *stristr(const char *data, const char *key);
+
+/* like strstr(), but matches only for full words. */
+char *strstr_full(const char *data, const char *key);
+char *stristr_full(const char *data, const char *key);
+
+char *ascii_strup(char *str);
+char *ascii_strdown(char *str);
+
+/* Escape all '"', "'" and '\' chars with '\' */
+char *escape_string(const char *str);
+
+/* convert all low-ascii (<32) to ^<A..> combinations */
+char *show_lowascii(const char *str);
+
+/* replace all `from' chars in string to `to' chars. returns `str' */
+char *replace_chars(char *str, char from, char to);
+
+/* return how many items `array' has */
+int strarray_length(char **array);
+/* return index of `item' in `array' or -1 if not found */
+int strarray_find(char **array, const char *item);
+
+/* string -> uoff_t */
+uoff_t str_to_uofft(const char *str);
+
+/* find `item' from a space separated `list' */
+int find_substr(const char *list, const char *item);
+
 #endif
index 42703fc653a14da643087cf8552b48657598111c..fd4d8a1ef18689b1a9a4f8f0a67e39b085f789d7 100644 (file)
@@ -13,9 +13,9 @@
     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     GNU General Public License for more details.
 
-    You should have received a copy of the GNU General Public License
-    along with this program; if not, write to the Free Software
-    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+    You should have received a copy of the GNU General Public License along
+    with this program; if not, write to the Free Software Foundation, Inc.,
+    51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 */
 
 #include "module.h"
@@ -163,7 +163,7 @@ static int module_load_name(const char *path, const char *rootmodule,
        GModule *gmodule;
         MODULE_REC *module;
        MODULE_FILE_REC *rec;
-       gpointer value1, value2;
+       gpointer value1 = NULL, value2 = NULL;
        char *initfunc, *deinitfunc;
         int found;
 
index a04e31ccf37134af12a70441df533f0c1998a70b..6dfbd5f8df523983657a7576c48bd75433b49c99 100644 (file)
@@ -13,9 +13,9 @@
     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     GNU General Public License for more details.
 
-    You should have received a copy of the GNU General Public License
-    along with this program; if not, write to the Free Software
-    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+    You should have received a copy of the GNU General Public License along
+    with this program; if not, write to the Free Software Foundation, Inc.,
+    51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 */
 
 #include "module.h"
index f232f1f46a351bd00f726b6aeabc297a214d9aaa..321f79aca913a2cdc3b683f148a9975d59f72e6d 100644 (file)
@@ -1,5 +1,5 @@
 /*
- net-disconnect.c : 
+ net-disconnect.c :
 
     Copyright (C) 1999-2000 Timo Sirainen
 
@@ -13,9 +13,9 @@
     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     GNU General Public License for more details.
 
-    You should have received a copy of the GNU General Public License
-    along with this program; if not, write to the Free Software
-    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+    You should have received a copy of the GNU General Public License along
+    with this program; if not, write to the Free Software Foundation, Inc.,
+    51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 */
 
 #include "module.h"
index a1ca06430b1c01bce133414b36811c48257d7c53..37a468467ebcdcd940fa218988f3b0ffb8e47e22 100644 (file)
@@ -1,6 +1,10 @@
 #ifndef __NET_DISCONNECT_H
 #define __NET_DISCONNECT_H
 
+/* Try to let the other side close the connection, if it still isn't
+   disconnected after certain amount of time, close it ourself */
+void net_disconnect_later(GIOChannel *handle);
+
 void net_disconnect_init(void);
 void net_disconnect_deinit(void);
 
index 14e08664776a64d69d627f5a4b3aa9c0a52917cd..461b2b87ede8871ec50aab560ccb2b05c71d2bb7 100644 (file)
@@ -13,9 +13,9 @@
     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     GNU General Public License for more details.
 
-    You should have received a copy of the GNU General Public License
-    along with this program; if not, write to the Free Software
-    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+    You should have received a copy of the GNU General Public License along
+    with this program; if not, write to the Free Software Foundation, Inc.,
+    51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 */
 
 #include "module.h"
@@ -35,38 +35,37 @@ typedef struct {
        int tag;
 } SIMPLE_THREAD_REC;
 
-#define is_fatal_error(err) \
-       (err != 0 && err != G_IO_ERROR_AGAIN && errno != EINTR)
-
 static int g_io_channel_write_block(GIOChannel *channel, void *data, int len)
 {
         gsize ret;
-       int err, sent;
+       int sent;
+       GIOStatus status;
 
        sent = 0;
        do {
-               err = g_io_channel_write(channel, (char *) data + sent,
-                                        len-sent, &ret);
+               status = g_io_channel_write_chars(channel, (char *) data + sent,
+                                                 len-sent, &ret, NULL);
                 sent += ret;
-       } while (sent < len && !is_fatal_error(err));
+       } while (sent < len && status != G_IO_STATUS_ERROR);
 
-       return err != 0 ? -1 : 0;
+       return sent < len ? -1 : 0;
 }
 
 static int g_io_channel_read_block(GIOChannel *channel, void *data, int len)
 {
        time_t maxwait;
         gsize ret;
-       int err, received;
+       int received;
+       GIOStatus status;
 
        maxwait = time(NULL)+2;
        received = 0;
        do {
-               err = g_io_channel_read(channel, (char *) data + received,
-                                       len-received, &ret);
+               status = g_io_channel_read_chars(channel, (char *) data + received,
+                                                len-received, &ret, NULL);
                received += ret;
        } while (received < len && time(NULL) < maxwait &&
-                (ret != 0 || !is_fatal_error(err)));
+                status != G_IO_STATUS_ERROR && status != G_IO_STATUS_EOF);
 
        return received < len ? -1 : 0;
 }
@@ -125,7 +124,7 @@ int net_gethostbyname_nonblock(const char *addr, GIOChannel *pipe,
        else {
                if (rec.host4) {
                        len = strlen(rec.host4) + 1;
-                       g_io_channel_write_block(pipe, (void *) &len, 
+                       g_io_channel_write_block(pipe, (void *) &len,
                                                       sizeof(int));
                        g_io_channel_write_block(pipe, (void *) rec.host4,
                                                       len);
@@ -282,8 +281,8 @@ int net_connect_nonblock(const char *server, int port, const IPADDR *my_ip,
        }
        rec->func = func;
        rec->data = data;
-       rec->pipes[0] = g_io_channel_unix_new(fd[0]);
-       rec->pipes[1] = g_io_channel_unix_new(fd[1]);
+       rec->pipes[0] = g_io_channel_new(fd[0]);
+       rec->pipes[1] = g_io_channel_new(fd[1]);
 
        /* start nonblocking host name lookup */
        net_gethostbyname_nonblock(server, rec->pipes[1], 0);
index f8aac80ce2e95212a0aa1a63387e543f5d574e07..9d4b0e37e218c9a64f158904d45e5f88ece9dd37 100644 (file)
     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     GNU General Public License for more details.
 
-    You should have received a copy of the GNU General Public License
-    along with this program; if not, write to the Free Software
-    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+    You should have received a copy of the GNU General Public License along
+    with this program; if not, write to the Free Software Foundation, Inc.,
+    51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 */
 
 #include "module.h"
 
 #include "network.h"
 #include "net-sendbuffer.h"
-
-static GSList *buffers;
+#include "line-split.h"
 
 /* Create new buffer - if `bufsize' is zero or less, DEFAULT_BUFFER_SIZE
    is used */
@@ -37,18 +36,17 @@ NET_SENDBUF_REC *net_sendbuffer_create(GIOChannel *handle, int bufsize)
         rec->send_tag = -1;
        rec->handle = handle;
        rec->bufsize = bufsize > 0 ? bufsize : DEFAULT_BUFFER_SIZE;
+       rec->def_bufsize = rec->bufsize;
 
-       buffers = g_slist_append(buffers, rec);
        return rec;
 }
 
 /* Destroy the buffer. `close' specifies if socket handle should be closed. */
 void net_sendbuffer_destroy(NET_SENDBUF_REC *rec, int close)
 {
-       buffers = g_slist_remove(buffers, rec);
-
         if (rec->send_tag != -1) g_source_remove(rec->send_tag);
        if (close) net_disconnect(rec->handle);
+       if (rec->readbuffer != NULL) line_split_free(rec->readbuffer);
        g_free_not_null(rec->buffer);
        g_free(rec);
 }
@@ -61,7 +59,9 @@ static int buffer_send(NET_SENDBUF_REC *rec)
        ret = net_transmit(rec->handle, rec->buffer, rec->bufpos);
        if (ret < 0 || rec->bufpos == ret) {
                /* error/all sent - don't try to send it anymore */
-                g_free_and_null(rec->buffer);
+               rec->bufsize = rec->def_bufsize;
+               rec->buffer = g_realloc(rec->buffer, rec->bufsize);
+               rec->bufpos = 0;
                return TRUE;
        }
 
@@ -91,8 +91,16 @@ static int buffer_add(NET_SENDBUF_REC *rec, const void *data, int size)
                rec->bufpos = 0;
        }
 
-       if (rec->bufpos+size > rec->bufsize)
-               return FALSE;
+       while (rec->bufpos+size > rec->bufsize) {
+               if (rec->bufsize >= MAX_BUFFER_SIZE) {
+                       if (!rec->dead)
+                               g_warning("Dropping some data on an outgoing connection");
+                       rec->dead = 1;
+                       return FALSE;
+               }
+               rec->bufsize *= 2;
+               rec->buffer = g_realloc(rec->buffer, rec->bufsize);
+       }
 
        memcpy(rec->buffer+rec->bufpos, data, size);
        rec->bufpos += size;
@@ -110,7 +118,7 @@ int net_sendbuffer_send(NET_SENDBUF_REC *rec, const void *data, int size)
        g_return_val_if_fail(data != NULL, -1);
        if (size <= 0) return 0;
 
-       if (rec->buffer == NULL) {
+       if (rec->buffer == NULL || rec->bufpos == 0) {
                 /* nothing in buffer - transmit immediately */
                ret = net_transmit(rec->handle, data, size);
                if (ret < 0) return -1;
@@ -131,6 +139,17 @@ int net_sendbuffer_send(NET_SENDBUF_REC *rec, const void *data, int size)
        return buffer_add(rec, data, size) ? 0 : -1;
 }
 
+int net_sendbuffer_receive_line(NET_SENDBUF_REC *rec, char **str, int read_socket)
+{
+       char tmpbuf[2048];
+       int recvlen = 0;
+
+       if (read_socket)
+               recvlen = net_receive(rec->handle, tmpbuf, sizeof(tmpbuf));
+
+       return line_split(tmpbuf, recvlen, str, &rec->readbuffer);
+}
+
 /* Flush the buffer, blocks until finished. */
 void net_sendbuffer_flush(NET_SENDBUF_REC *rec)
 {
@@ -157,12 +176,3 @@ GIOChannel *net_sendbuffer_handle(NET_SENDBUF_REC *rec)
 
        return rec->handle;
 }
-
-void net_sendbuffer_init(void)
-{
-       buffers = NULL;
-}
-
-void net_sendbuffer_deinit(void)
-{
-}
index f492821e66ac0c394b0f8e79ff1be700dc6fc7fb..785f59ae088615b0fc1721ece62199982c389e6d 100644 (file)
@@ -2,14 +2,18 @@
 #define __NET_SENDBUFFER_H
 
 #define DEFAULT_BUFFER_SIZE 8192
+#define MAX_BUFFER_SIZE 1048576
 
 struct _NET_SENDBUF_REC {
         GIOChannel *handle;
+        LINEBUF_REC *readbuffer; /* receive buffer */
 
         int send_tag;
         int bufsize;
         int bufpos;
         char *buffer; /* Buffer is NULL until it's actually needed. */
+        int def_bufsize;
+        unsigned int dead:1;
 };
 
 /* Create new buffer - if `bufsize' is zero or less, DEFAULT_BUFFER_SIZE
@@ -23,13 +27,12 @@ void net_sendbuffer_destroy(NET_SENDBUF_REC *rec, int close);
    occured. */
 int net_sendbuffer_send(NET_SENDBUF_REC *rec, const void *data, int size);
 
+int net_sendbuffer_receive_line(NET_SENDBUF_REC *rec, char **str, int read_socket);
+
 /* Flush the buffer, blocks until finished. */
 void net_sendbuffer_flush(NET_SENDBUF_REC *rec);
 
 /* Returns the socket handle */
 GIOChannel *net_sendbuffer_handle(NET_SENDBUF_REC *rec);
 
-void net_sendbuffer_init(void);
-void net_sendbuffer_deinit(void);
-
 #endif
index 68fb8ea82776b837f4b00c618a06ea5963104b1e..514f748ef2220b810fd89f0c961a8063e506b736 100644 (file)
     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     GNU General Public License for more details.
 
-    You should have received a copy of the GNU General Public License
-    along with this program; if not, write to the Free Software
-    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+    You should have received a copy of the GNU General Public License along
+    with this program; if not, write to the Free Software Foundation, Inc.,
+    51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 */
 
 #include "module.h"
 #include "network.h"
 #include "misc.h"
+#include "servers.h"
 
 #ifdef HAVE_OPENSSL
 
 #include <openssl/crypto.h>
 #include <openssl/x509.h>
+#include <openssl/x509v3.h>
 #include <openssl/pem.h>
 #include <openssl/ssl.h>
 #include <openssl/err.h>
 
+#ifdef HAVE_DANE
+#include <validator/validator.h>
+#include <validator/val_dane.h>
+#endif
+
 /* ssl i/o channel object */
 typedef struct
 {
@@ -38,30 +45,209 @@ typedef struct
        GIOChannel *giochan;
        SSL *ssl;
        SSL_CTX *ctx;
-       unsigned int got_cert:1;
        unsigned int verify:1;
+       SERVER_REC *server;
+       int port;
 } GIOSSLChannel;
-       
-static SSL_CTX *ssl_ctx = NULL;
+
+static int ssl_inited = FALSE;
 
 static void irssi_ssl_free(GIOChannel *handle)
 {
        GIOSSLChannel *chan = (GIOSSLChannel *)handle;
        g_io_channel_unref(chan->giochan);
        SSL_free(chan->ssl);
-       if (chan->ctx != ssl_ctx)
-               SSL_CTX_free(chan->ctx);
+       SSL_CTX_free(chan->ctx);
        g_free(chan);
 }
 
-static gboolean irssi_ssl_verify(SSL *ssl, SSL_CTX *ctx, X509 *cert)
+/* Checks if the given string has internal NUL characters. */
+static gboolean has_internal_nul(const char* str, int len) {
+       /* Remove trailing nul characters. They would give false alarms */
+       while (len > 0 && str[len-1] == 0)
+               len--;
+       return strlen(str) != len;
+}
+
+/* tls_dns_name - Extract valid DNS name from subjectAltName value */
+static const char *tls_dns_name(const GENERAL_NAME * gn)
+{
+       const char *dnsname;
+
+       /* We expect the OpenSSL library to construct GEN_DNS extension objects as
+          ASN1_IA5STRING values. Check we got the right union member. */
+       if (ASN1_STRING_type(gn->d.ia5) != V_ASN1_IA5STRING) {
+               g_warning("Invalid ASN1 value type in subjectAltName");
+               return NULL;
+       }
+
+       /* Safe to treat as an ASCII string possibly holding a DNS name */
+       dnsname = (char *) ASN1_STRING_data(gn->d.ia5);
+
+       if (has_internal_nul(dnsname, ASN1_STRING_length(gn->d.ia5))) {
+               g_warning("Internal NUL in subjectAltName");
+               return NULL;
+       }
+
+       return dnsname;
+}
+
+/* tls_text_name - extract certificate property value by name */
+static char *tls_text_name(X509_NAME *name, int nid)
+{
+       int     pos;
+       X509_NAME_ENTRY *entry;
+       ASN1_STRING *entry_str;
+       int     utf8_length;
+       unsigned char *utf8_value;
+       char *result;
+
+       if (name == 0 || (pos = X509_NAME_get_index_by_NID(name, nid, -1)) < 0) {
+               return NULL;
+       }
+
+       entry = X509_NAME_get_entry(name, pos);
+       g_return_val_if_fail(entry != NULL, NULL);
+       entry_str = X509_NAME_ENTRY_get_data(entry);
+       g_return_val_if_fail(entry_str != NULL, NULL);
+
+       /* Convert everything into UTF-8. It's up to OpenSSL to do something
+          reasonable when converting ASCII formats that contain non-ASCII
+          content. */
+       if ((utf8_length = ASN1_STRING_to_UTF8(&utf8_value, entry_str)) < 0) {
+               g_warning("Error decoding ASN.1 type=%d", ASN1_STRING_type(entry_str));
+               return NULL;
+       }
+
+       if (has_internal_nul((char *)utf8_value, utf8_length)) {
+               g_warning("NUL character in hostname in certificate");
+               OPENSSL_free(utf8_value);
+               return NULL;
+       }
+
+       result = g_strdup((char *) utf8_value);
+       OPENSSL_free(utf8_value);
+       return result;
+}
+
+
+/** check if a hostname in the certificate matches the hostname we used for the connection */
+static gboolean match_hostname(const char *cert_hostname, const char *hostname)
+{
+       const char *hostname_left;
+
+       if (!strcasecmp(cert_hostname, hostname)) { /* exact match */
+               return TRUE;
+       } else if (cert_hostname[0] == '*' && cert_hostname[1] == '.' && cert_hostname[2] != 0) { /* wildcard match */
+               /* The initial '*' matches exactly one hostname component */
+               hostname_left = strchr(hostname, '.');
+               if (hostname_left != NULL && ! strcasecmp(hostname_left + 1, cert_hostname + 2)) {
+                       return TRUE;
+               }
+       }
+       return FALSE;
+}
+
+/* based on verify_extract_name from tls_client.c in postfix */
+static gboolean irssi_ssl_verify_hostname(X509 *cert, const char *hostname)
+{
+       int gen_index, gen_count;
+       gboolean matched = FALSE, has_dns_name = FALSE;
+       const char *cert_dns_name;
+       char *cert_subject_cn;
+       const GENERAL_NAME *gn;
+       STACK_OF(GENERAL_NAME) * gens;
+
+       /* Verify the dNSName(s) in the peer certificate against the hostname. */
+       gens = X509_get_ext_d2i(cert, NID_subject_alt_name, 0, 0);
+       if (gens) {
+               gen_count = sk_GENERAL_NAME_num(gens);
+               for (gen_index = 0; gen_index < gen_count && !matched; ++gen_index) {
+                       gn = sk_GENERAL_NAME_value(gens, gen_index);
+                       if (gn->type != GEN_DNS)
+                               continue;
+
+                       /* Even if we have an invalid DNS name, we still ultimately
+                          ignore the CommonName, because subjectAltName:DNS is
+                          present (though malformed). */
+                       has_dns_name = TRUE;
+                       cert_dns_name = tls_dns_name(gn);
+                       if (cert_dns_name && *cert_dns_name) {
+                               matched = match_hostname(cert_dns_name, hostname);
+                       }
+               }
+
+               /* Free stack *and* member GENERAL_NAME objects */
+               sk_GENERAL_NAME_pop_free(gens, GENERAL_NAME_free);
+       }
+
+       if (has_dns_name) {
+               if (! matched) {
+                       /* The CommonName in the issuer DN is obsolete when SubjectAltName is available. */
+                       g_warning("None of the Subject Alt Names in the certificate match hostname '%s'", hostname);
+               }
+               return matched;
+       } else { /* No subjectAltNames, look at CommonName */
+               cert_subject_cn = tls_text_name(X509_get_subject_name(cert), NID_commonName);
+               if (cert_subject_cn && *cert_subject_cn) {
+                       matched = match_hostname(cert_subject_cn, hostname);
+                       if (! matched) {
+                               g_warning("SSL certificate common name '%s' doesn't match host name '%s'", cert_subject_cn, hostname);
+                       }
+               } else {
+                       g_warning("No subjectAltNames and no valid common name in certificate");
+               }
+               free(cert_subject_cn);
+       }
+
+       return matched;
+}
+
+static gboolean irssi_ssl_verify(SSL *ssl, SSL_CTX *ctx, const char* hostname, int port, X509 *cert, SERVER_REC *server)
 {
-       if (SSL_get_verify_result(ssl) != X509_V_OK) {
+       long result;
+#ifdef HAVE_DANE
+       int dane_ret;
+       struct val_daneparams daneparams;
+       struct val_danestatus *danestatus = NULL;
+
+       // Check if a TLSA record is available.
+       daneparams.port = port;
+       daneparams.proto = DANE_PARAM_PROTO_TCP;
+
+       dane_ret = val_getdaneinfo(NULL, hostname, &daneparams, &danestatus);
+
+       if (dane_ret == VAL_DANE_NOERROR) {
+               signal_emit("tlsa available", 1, server);
+       }
+
+       if (danestatus != NULL) {
+               int do_certificate_check = 1;
+
+               if (val_dane_check(NULL, ssl, danestatus, &do_certificate_check) != VAL_DANE_NOERROR) {
+                       g_warning("DANE: TLSA record for hostname %s port %d could not be verified", hostname, port);
+                       signal_emit("tlsa verification failed", 1, server);
+                       val_free_dane(danestatus);
+                       return FALSE;
+               }
+
+               signal_emit("tlsa verification success", 1, server);
+               val_free_dane(danestatus);
+
+               if (do_certificate_check == 0) {
+                       return TRUE;
+               }
+       }
+#endif
+
+       result = SSL_get_verify_result(ssl);
+       if (result != X509_V_OK) {
                unsigned char md[EVP_MAX_MD_SIZE];
                unsigned int n;
                char *str;
 
-               g_warning("Could not verify SSL servers certificate:");
+               g_warning("Could not verify SSL servers certificate: %s",
+                               X509_verify_cert_error_string(result));
                if ((str = X509_NAME_oneline(X509_get_subject_name(cert), 0, 0)) == NULL)
                        g_warning("  Could not get subject-name from peer certificate");
                else {
@@ -90,216 +276,51 @@ static gboolean irssi_ssl_verify(SSL *ssl, SSL_CTX *ctx, X509 *cert)
                        }
                }
                return FALSE;
+       } else if (! irssi_ssl_verify_hostname(cert, hostname)){
+               return FALSE;
        }
        return TRUE;
 }
 
-
-#if GLIB_MAJOR_VERSION < 2
-
-static GIOError ssl_errno(gint e)
-{
-       switch(e)
-       {
-               case EINVAL:
-                       return G_IO_ERROR_INVAL;
-               case EINTR:
-               case EAGAIN:
-                       return G_IO_ERROR_AGAIN;
-               default:
-                       return G_IO_ERROR_INVAL;
-       }
-       /*UNREACH*/
-       return G_IO_ERROR_INVAL;
-}
-
-static GIOError irssi_ssl_cert_step(GIOSSLChannel *chan)
-{
-       X509 *cert;
-       gint err;
-       switch(err = SSL_do_handshake(chan->ssl))
-       {
-               case 1:
-                       if(!(cert = SSL_get_peer_certificate(chan->ssl)))
-                       {
-                               g_warning("SSL server supplied no certificate");
-                               return G_IO_ERROR_INVAL;
-                       }
-                       if (chan->verify && ! irssi_ssl_verify(chan->ssl, chan->ctx, cert)) {
-                               X509_free(cert);
-                               return G_IO_ERROR_INVAL;
-                       }
-                       X509_free(cert);
-                       return G_IO_ERROR_NONE;
-               default:
-                       if(SSL_get_error(chan->ssl, err) == SSL_ERROR_WANT_READ)
-                               return G_IO_ERROR_AGAIN;
-                       return ssl_errno(errno);
-       }
-       /*UNREACH*/
-       return G_IO_ERROR_INVAL;
-}
-
-static GIOError irssi_ssl_read(GIOChannel *handle, gchar *buf, guint len, guint *ret)
-{
-       GIOSSLChannel *chan = (GIOSSLChannel *)handle;
-       gint err;
-       
-       if(! chan->got_cert)
-       {
-               gint cert_err = irssi_ssl_cert_step(chan);
-               if(cert_err != G_IO_ERROR_NONE)
-                       return cert_err;
-       }
-       
-       err = SSL_read(chan->ssl, buf, len);
-       if(err < 0)
-       {
-               *ret = 0;
-               if(SSL_get_error(chan->ssl, err) == SSL_ERROR_WANT_READ)
-                       return G_IO_ERROR_AGAIN;
-               return ssl_errno(errno);
-       }
-       else
-       {
-               *ret = err;
-               return G_IO_ERROR_NONE;
-       }
-       /*UNREACH*/
-       return -1;
-}
-
-static GIOError irssi_ssl_write(GIOChannel *handle, gchar *buf, guint len, guint *ret)
-{
-       GIOSSLChannel *chan = (GIOSSLChannel *)handle;
-       gint err;
-
-       if(chan->got_cert)
-       {
-               gint cert_err = irssi_ssl_cert_step(chan);
-               if(cert_err != G_IO_ERROR_NONE)
-                       return cert_err;
-       }
-       
-
-       err = SSL_write(chan->ssl, (const char *)buf, len);
-       if(err < 0)
-       {
-               *ret = 0;
-               if(SSL_get_error(chan->ssl, err) == SSL_ERROR_WANT_READ)
-                       return G_IO_ERROR_AGAIN;
-               return ssl_errno(errno);
-       }
-       else
-       {
-               *ret = err;
-               return G_IO_ERROR_NONE;
-       }
-       /*UNREACH*/
-       return G_IO_ERROR_INVAL;
-}
-
-static GIOError irssi_ssl_seek(GIOChannel *handle, gint offset, GSeekType type)
-{
-       GIOSSLChannel *chan = (GIOSSLChannel *)handle;
-       GIOError e;
-       e = g_io_channel_seek(chan->giochan, offset, type);
-       return (e == G_IO_ERROR_NONE) ? G_IO_ERROR_NONE : G_IO_ERROR_INVAL;
-}
-
-static void irssi_ssl_close(GIOChannel *handle)
-{
-       GIOSSLChannel *chan = (GIOSSLChannel *)handle;
-       g_io_channel_close(chan->giochan);
-}
-
-static guint irssi_ssl_create_watch(GIOChannel *handle, gint priority, GIOCondition cond,
-                            GIOFunc func, gpointer data, GDestroyNotify notify)
-{
-       GIOSSLChannel *chan = (GIOSSLChannel *)handle;
-
-       return chan->giochan->funcs->io_add_watch(handle, priority, cond, func, data, notify);
-}
-
-/* ssl function pointers */
-static GIOFuncs irssi_ssl_channel_funcs =
-{
-       irssi_ssl_read,
-       irssi_ssl_write,
-       irssi_ssl_seek,
-       irssi_ssl_close,
-       irssi_ssl_create_watch,
-       irssi_ssl_free
-};
-
-#else /* GLIB_MAJOR_VERSION < 2 */
-
-static GIOStatus ssl_errno(gint e)
-{
-       switch(e)
-       {
-               case EINVAL:
-                       return G_IO_STATUS_ERROR;
-               case EINTR:
-               case EAGAIN:
-                       return G_IO_STATUS_AGAIN;
-               default:
-                       return G_IO_STATUS_ERROR;
-       }
-       /*UNREACH*/
-       return G_IO_STATUS_ERROR;
-}
-
-static GIOStatus irssi_ssl_cert_step(GIOSSLChannel *chan)
-{
-       X509 *cert;
-       gint err;
-       switch(err = SSL_do_handshake(chan->ssl))
-       {
-               case 1:
-                       if(!(cert = SSL_get_peer_certificate(chan->ssl)))
-                       {
-                               g_warning("SSL server supplied no certificate");
-                               return G_IO_STATUS_ERROR;
-                       }
-                       if (chan->verify && ! irssi_ssl_verify(chan->ssl, chan->ctx, cert)) {
-                               X509_free(cert);
-                               return G_IO_STATUS_ERROR;
-                       }
-                       X509_free(cert);
-                       return G_IO_STATUS_NORMAL;
-               default:
-                       if(SSL_get_error(chan->ssl, err) == SSL_ERROR_WANT_READ)
-                               return G_IO_STATUS_AGAIN;
-                       return ssl_errno(errno);
-       }
-       /*UNREACH*/
-       return G_IO_STATUS_ERROR;
-}
-
 static GIOStatus irssi_ssl_read(GIOChannel *handle, gchar *buf, gsize len, gsize *ret, GError **gerr)
 {
        GIOSSLChannel *chan = (GIOSSLChannel *)handle;
-       gint err;
-       
-       if(! chan->got_cert)
-       {
-               gint cert_err = irssi_ssl_cert_step(chan);
-               if(cert_err != G_IO_STATUS_NORMAL)
-                       return cert_err;
-       }
-       
-       err = SSL_read(chan->ssl, buf, len);
-       if(err < 0)
+       gint ret1, err;
+       const char *errstr;
+       gchar *errmsg;
+
+       ret1 = SSL_read(chan->ssl, buf, len);
+       if(ret1 <= 0)
        {
                *ret = 0;
-               if(SSL_get_error(chan->ssl, err) == SSL_ERROR_WANT_READ)
+               err = SSL_get_error(chan->ssl, ret1);
+               if(err == SSL_ERROR_WANT_READ || err == SSL_ERROR_WANT_WRITE)
                        return G_IO_STATUS_AGAIN;
-               return ssl_errno(errno);
+               else if(err == SSL_ERROR_ZERO_RETURN)
+                       return G_IO_STATUS_EOF;
+               else if (err == SSL_ERROR_SYSCALL)
+               {
+                       errstr = ERR_reason_error_string(ERR_get_error());
+                       if (errstr == NULL && ret1 == -1)
+                               errstr = strerror(errno);
+                       if (errstr == NULL)
+                               errstr = "server closed connection unexpectedly";
+               }
+               else
+               {
+                       errstr = ERR_reason_error_string(ERR_get_error());
+                       if (errstr == NULL)
+                               errstr = "unknown SSL error";
+               }
+               errmsg = g_strdup_printf("SSL read error: %s", errstr);
+               *gerr = g_error_new_literal(G_IO_CHANNEL_ERROR, G_IO_CHANNEL_ERROR_FAILED,
+                                           errmsg);
+               g_free(errmsg);
+               return G_IO_STATUS_ERROR;
        }
        else
        {
-               *ret = err;
+               *ret = ret1;
                return G_IO_STATUS_NORMAL;
        }
        /*UNREACH*/
@@ -309,26 +330,42 @@ static GIOStatus irssi_ssl_read(GIOChannel *handle, gchar *buf, gsize len, gsize
 static GIOStatus irssi_ssl_write(GIOChannel *handle, const gchar *buf, gsize len, gsize *ret, GError **gerr)
 {
        GIOSSLChannel *chan = (GIOSSLChannel *)handle;
-       gint err;
+       gint ret1, err;
+       const char *errstr;
+       gchar *errmsg;
 
-       if(! chan->got_cert)
-       {
-               gint cert_err = irssi_ssl_cert_step(chan);
-               if(cert_err != G_IO_STATUS_NORMAL)
-                       return cert_err;
-       }
-
-       err = SSL_write(chan->ssl, (const char *)buf, len);
-       if(err < 0)
+       ret1 = SSL_write(chan->ssl, (const char *)buf, len);
+       if(ret1 <= 0)
        {
                *ret = 0;
-               if(SSL_get_error(chan->ssl, err) == SSL_ERROR_WANT_READ)
+               err = SSL_get_error(chan->ssl, ret1);
+               if(err == SSL_ERROR_WANT_READ || err == SSL_ERROR_WANT_WRITE)
                        return G_IO_STATUS_AGAIN;
-               return ssl_errno(errno);
+               else if(err == SSL_ERROR_ZERO_RETURN)
+                       errstr = "server closed connection";
+               else if (err == SSL_ERROR_SYSCALL)
+               {
+                       errstr = ERR_reason_error_string(ERR_get_error());
+                       if (errstr == NULL && ret1 == -1)
+                               errstr = strerror(errno);
+                       if (errstr == NULL)
+                               errstr = "server closed connection unexpectedly";
+               }
+               else
+               {
+                       errstr = ERR_reason_error_string(ERR_get_error());
+                       if (errstr == NULL)
+                               errstr = "unknown SSL error";
+               }
+               errmsg = g_strdup_printf("SSL write error: %s", errstr);
+               *gerr = g_error_new_literal(G_IO_CHANNEL_ERROR, G_IO_CHANNEL_ERROR_FAILED,
+                                           errmsg);
+               g_free(errmsg);
+               return G_IO_STATUS_ERROR;
        }
        else
        {
-               *ret = err;
+               *ret = ret1;
                return G_IO_STATUS_NORMAL;
        }
        /*UNREACH*/
@@ -338,17 +375,15 @@ static GIOStatus irssi_ssl_write(GIOChannel *handle, const gchar *buf, gsize len
 static GIOStatus irssi_ssl_seek(GIOChannel *handle, gint64 offset, GSeekType type, GError **gerr)
 {
        GIOSSLChannel *chan = (GIOSSLChannel *)handle;
-       GIOError e;
-       e = g_io_channel_seek(chan->giochan, offset, type);
-       return (e == G_IO_ERROR_NONE) ? G_IO_STATUS_NORMAL : G_IO_STATUS_ERROR;
+
+       return chan->giochan->funcs->io_seek(handle, offset, type, gerr);
 }
 
 static GIOStatus irssi_ssl_close(GIOChannel *handle, GError **gerr)
 {
        GIOSSLChannel *chan = (GIOSSLChannel *)handle;
-       g_io_channel_close(chan->giochan);
 
-       return G_IO_STATUS_NORMAL;
+       return chan->giochan->funcs->io_close(handle, gerr);
 }
 
 static GSource *irssi_ssl_create_watch(GIOChannel *handle, GIOCondition cond)
@@ -383,47 +418,48 @@ static GIOFuncs irssi_ssl_channel_funcs = {
     irssi_ssl_get_flags
 };
 
-#endif
-
 static gboolean irssi_ssl_init(void)
 {
        SSL_library_init();
        SSL_load_error_strings();
-       
-       ssl_ctx = SSL_CTX_new(SSLv23_client_method());
-       if(!ssl_ctx)
-       {
-               g_error("Initialization of the SSL library failed");
-               return FALSE;
-       }
+       OpenSSL_add_all_algorithms();
+       ssl_inited = TRUE;
 
        return TRUE;
 
 }
 
-static GIOChannel *irssi_ssl_get_iochannel(GIOChannel *handle, const char *mycert, const char *mypkey, const char *cafile, const char *capath, gboolean verify)
+static GIOChannel *irssi_ssl_get_iochannel(GIOChannel *handle, int port, SERVER_REC *server)
 {
        GIOSSLChannel *chan;
        GIOChannel *gchan;
-       int err, fd;
+       int fd;
        SSL *ssl;
-       X509 *cert = NULL;
        SSL_CTX *ctx = NULL;
 
+       const char *mycert = server->connrec->ssl_cert;
+       const char *mypkey = server->connrec->ssl_pkey;
+       const char *cafile = server->connrec->ssl_cafile;
+       const char *capath = server->connrec->ssl_capath;
+       gboolean verify = server->connrec->ssl_verify;
+
        g_return_val_if_fail(handle != NULL, NULL);
-       
-       if(!ssl_ctx && !irssi_ssl_init())
+
+       if(!ssl_inited && !irssi_ssl_init())
                return NULL;
 
        if(!(fd = g_io_channel_unix_get_fd(handle)))
                return NULL;
 
-       if (mycert && *mycert) {        
+       ctx = SSL_CTX_new(SSLv23_client_method());
+       if (ctx == NULL) {
+               g_error("Could not allocate memory for SSL context");
+               return NULL;
+       }
+       SSL_CTX_set_options(ctx, SSL_OP_NO_SSLv2);
+
+       if (mycert && *mycert) {
                char *scert = NULL, *spkey = NULL;
-               if ((ctx = SSL_CTX_new(SSLv23_client_method())) == NULL) {
-                       g_error("Could not allocate memory for SSL context");
-                       return NULL;
-               }
                scert = convert_home(mycert);
                if (mypkey && *mypkey)
                        spkey = convert_home(mypkey);
@@ -440,10 +476,6 @@ static GIOChannel *irssi_ssl_get_iochannel(GIOChannel *handle, const char *mycer
        if ((cafile && *cafile) || (capath && *capath)) {
                char *scafile = NULL;
                char *scapath = NULL;
-               if (! ctx && (ctx = SSL_CTX_new(SSLv23_client_method())) == NULL) {
-                       g_error("Could not allocate memory for SSL context");
-                       return NULL;
-               }
                if (cafile && *cafile)
                        scafile = convert_home(cafile);
                if (capath && *capath)
@@ -458,90 +490,104 @@ static GIOChannel *irssi_ssl_get_iochannel(GIOChannel *handle, const char *mycer
                g_free(scafile);
                g_free(scapath);
                verify = TRUE;
+       } else {
+               if (!SSL_CTX_set_default_verify_paths(ctx))
+                       g_warning("Could not load default certificates");
        }
 
-       if (ctx == NULL)
-               ctx = ssl_ctx;
-       
        if(!(ssl = SSL_new(ctx)))
        {
                g_warning("Failed to allocate SSL structure");
+               SSL_CTX_free(ctx);
                return NULL;
        }
 
-       if(!(err = SSL_set_fd(ssl, fd)))
+       if(!SSL_set_fd(ssl, fd))
        {
                g_warning("Failed to associate socket to SSL stream");
                SSL_free(ssl);
-               if (ctx != ssl_ctx)
-                       SSL_CTX_free(ctx);
+               SSL_CTX_free(ctx);
                return NULL;
        }
 
-       if((err = SSL_connect(ssl)) <= 0)
-       {
-               switch(err = SSL_get_error(ssl, err))
-               {
-                       case SSL_ERROR_SYSCALL:
-                               if(errno == EINTR || errno == EAGAIN)
-                       case SSL_ERROR_WANT_READ:
-                       case SSL_ERROR_WANT_WRITE:
-                                       break;
-                       default:
-                                       SSL_free(ssl);
-                                       if (ctx != ssl_ctx)
-                                               SSL_CTX_free(ctx);
-                                       return NULL;
-               }
-       }
-       else if(!(cert = SSL_get_peer_certificate(ssl)))
-       {
-               g_warning("SSL server supplied no certificate");
-               if (ctx != ssl_ctx)
-                       SSL_CTX_free(ctx);
-               SSL_free(ssl);
-               return NULL;
-       }
-       else
-       {
-               if (verify && ! irssi_ssl_verify(ssl, ctx, cert)) {
-                       SSL_free(ssl);
-                       if (ctx != ssl_ctx)
-                               SSL_CTX_free(ctx);
-                       return NULL;
-               }
-               X509_free(cert);
-       }
+       SSL_set_mode(ssl, SSL_MODE_ENABLE_PARTIAL_WRITE |
+                       SSL_MODE_ACCEPT_MOVING_WRITE_BUFFER);
 
        chan = g_new0(GIOSSLChannel, 1);
        chan->fd = fd;
        chan->giochan = handle;
        chan->ssl = ssl;
        chan->ctx = ctx;
-       chan->got_cert = cert != NULL;
+       chan->server = server;
+       chan->port = port;
        chan->verify = verify;
 
        gchan = (GIOChannel *)chan;
        gchan->funcs = &irssi_ssl_channel_funcs;
        g_io_channel_init(gchan);
-       
+       gchan->is_readable = gchan->is_writeable = TRUE;
+       gchan->use_buffer = FALSE;
+
        return gchan;
 }
 
-GIOChannel *net_connect_ip_ssl(IPADDR *ip, int port, IPADDR *my_ip, const char *cert, const char *pkey, const char *cafile, const char *capath, gboolean verify)
+GIOChannel *net_connect_ip_ssl(IPADDR *ip, int port, IPADDR *my_ip, SERVER_REC *server)
 {
        GIOChannel *handle, *ssl_handle;
 
        handle = net_connect_ip(ip, port, my_ip);
-       ssl_handle  = irssi_ssl_get_iochannel(handle, cert, pkey, cafile, capath, verify);
+       if (handle == NULL)
+               return NULL;
+       ssl_handle  = irssi_ssl_get_iochannel(handle, port, server);
        if (ssl_handle == NULL)
                g_io_channel_unref(handle);
        return ssl_handle;
 }
 
+int irssi_ssl_handshake(GIOChannel *handle)
+{
+       GIOSSLChannel *chan = (GIOSSLChannel *)handle;
+       int ret, err;
+       X509 *cert;
+       const char *errstr;
+
+       ret = SSL_connect(chan->ssl);
+       if (ret <= 0) {
+               err = SSL_get_error(chan->ssl, ret);
+               switch (err) {
+                       case SSL_ERROR_WANT_READ:
+                               return 1;
+                       case SSL_ERROR_WANT_WRITE:
+                               return 3;
+                       case SSL_ERROR_ZERO_RETURN:
+                               g_warning("SSL handshake failed: %s", "server closed connection");
+                               return -1;
+                       case SSL_ERROR_SYSCALL:
+                               errstr = ERR_reason_error_string(ERR_get_error());
+                               if (errstr == NULL && ret == -1)
+                                       errstr = strerror(errno);
+                               g_warning("SSL handshake failed: %s", errstr != NULL ? errstr : "server closed connection unexpectedly");
+                               return -1;
+                       default:
+                               errstr = ERR_reason_error_string(ERR_get_error());
+                               g_warning("SSL handshake failed: %s", errstr != NULL ? errstr : "unknown SSL error");
+                               return -1;
+               }
+       }
+
+       cert = SSL_get_peer_certificate(chan->ssl);
+       if (cert == NULL) {
+               g_warning("SSL server supplied no certificate");
+               return -1;
+       }
+       ret = !chan->verify || irssi_ssl_verify(chan->ssl, chan->ctx, chan->server->connrec->address, chan->port, cert, chan->server);
+       X509_free(cert);
+       return ret ? 0 : -1;
+}
+
 #else /* HAVE_OPENSSL */
 
-GIOChannel *net_connect_ip_ssl(IPADDR *ip, int port, IPADDR *my_ip, const char *cert, const char *pkey, const char *cafile, const char *capath, gboolean verify)
+GIOChannel *net_connect_ip_ssl(IPADDR *ip, int port, IPADDR *my_ip, SERVER_REC *server)
 {
        g_warning("Connection failed: SSL support not enabled in this build.");
        errno = ENOSYS;
index 21235b2af8380470aac142452fa4e56993d81411..d7c1017c7626c2d9a9ed9c4f330916fa9b6b7c91 100644 (file)
@@ -13,9 +13,9 @@
     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     GNU General Public License for more details.
 
-    You should have received a copy of the GNU General Public License
-    along with this program; if not, write to the Free Software
-    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+    You should have received a copy of the GNU General Public License along
+    with this program; if not, write to the Free Software Foundation, Inc.,
+    51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 */
 
 #include "module.h"
@@ -42,11 +42,18 @@ union sockaddr_union {
 #  define SIZEOF_SOCKADDR(so) (sizeof(so.sin))
 #endif
 
+GIOChannel *g_io_channel_new(int handle)
+{
+       GIOChannel *chan;
 #ifdef WIN32
-#  define g_io_channel_new(handle) g_io_channel_win32_new_stream_socket(handle)
+       chan = g_io_channel_win32_new_socket(handle);
 #else
-#  define g_io_channel_new(handle) g_io_channel_unix_new(handle)
+       chan = g_io_channel_unix_new(handle);
 #endif
+       g_io_channel_set_encoding(chan, NULL, NULL);
+       g_io_channel_set_buffered(chan, FALSE);
+       return chan;
+}
 
 /* Cygwin need this, don't know others.. */
 /*#define BLOCKING_SOCKETS 1*/
@@ -127,11 +134,9 @@ static int sin_get_port(union sockaddr_union *so)
 GIOChannel *net_connect(const char *addr, int port, IPADDR *my_ip)
 {
        IPADDR ip4, ip6, *ip;
-        int family;
 
        g_return_val_if_fail(addr != NULL, NULL);
 
-        family = my_ip == NULL ? 0 : my_ip->family;
        if (net_gethostbyname(addr, &ip4, &ip6) == -1)
                return NULL;
 
@@ -182,10 +187,8 @@ GIOChannel *net_connect_ip(IPADDR *ip, int port, IPADDR *my_ip)
 #ifndef WIN32
        fcntl(handle, F_SETFL, O_NONBLOCK);
 #endif
-       setsockopt(handle, SOL_SOCKET, SO_REUSEADDR,
-                  (char *) &opt, sizeof(opt));
-       setsockopt(handle, SOL_SOCKET, SO_KEEPALIVE,
-                  (char *) &opt, sizeof(opt));
+       setsockopt(handle, SOL_SOCKET, SO_REUSEADDR, &opt, sizeof(opt));
+       setsockopt(handle, SOL_SOCKET, SO_KEEPALIVE, &opt, sizeof(opt));
 
        /* set our own address */
        if (my_ip != NULL) {
@@ -293,10 +296,8 @@ GIOChannel *net_listen(IPADDR *my_ip, int *port)
 #ifndef WIN32
        fcntl(handle, F_SETFL, O_NONBLOCK);
 #endif
-       setsockopt(handle, SOL_SOCKET, SO_REUSEADDR,
-                  (char *) &opt, sizeof(opt));
-       setsockopt(handle, SOL_SOCKET, SO_KEEPALIVE,
-                  (char *) &opt, sizeof(opt));
+       setsockopt(handle, SOL_SOCKET, SO_REUSEADDR, &opt, sizeof(opt));
+       setsockopt(handle, SOL_SOCKET, SO_KEEPALIVE, &opt, sizeof(opt));
 
        /* specify the address/port we want to listen in */
        ret = bind(handle, &so.sa, SIZEOF_SOCKADDR(so));
@@ -347,36 +348,42 @@ GIOChannel *net_accept(GIOChannel *handle, IPADDR *addr, int *port)
 int net_receive(GIOChannel *handle, char *buf, int len)
 {
         gsize ret;
-       int err;
+       GIOStatus status;
+       GError *err = NULL;
 
        g_return_val_if_fail(handle != NULL, -1);
        g_return_val_if_fail(buf != NULL, -1);
 
-       err = g_io_channel_read(handle, buf, len, &ret);
-       if (err == 0 && ret == 0)
+       status = g_io_channel_read_chars(handle, buf, len, &ret, &err);
+       if (err != NULL) {
+               g_warning(err->message);
+               g_error_free(err);
+       }
+       if (status == G_IO_STATUS_ERROR || status == G_IO_STATUS_EOF)
                return -1; /* disconnected */
 
-       if (err == G_IO_ERROR_AGAIN || (err != 0 && errno == EINTR))
-               return 0; /* no bytes received */
-
-       return err == 0 ? (int)ret : -1;
+       return ret;
 }
 
 /* Transmit data, return number of bytes sent, -1 = error */
 int net_transmit(GIOChannel *handle, const char *data, int len)
 {
         gsize ret;
-       int err;
+       GIOStatus status;
+       GError *err = NULL;
 
        g_return_val_if_fail(handle != NULL, -1);
        g_return_val_if_fail(data != NULL, -1);
 
-       err = g_io_channel_write(handle, (char *) data, len, &ret);
-       if (err == G_IO_ERROR_AGAIN ||
-           (err != 0 && (errno == EINTR || errno == EPIPE)))
-               return 0;
+       status = g_io_channel_write_chars(handle, (char *) data, len, &ret, &err);
+       if (err != NULL) {
+               g_warning(err->message);
+               g_error_free(err);
+       }
+       if (status == G_IO_STATUS_ERROR)
+               return -1;
 
-       return err == 0 ? (int)ret : -1;
+       return ret;
 }
 
 /* Get socket address/port */
@@ -590,12 +597,6 @@ const char *net_gethosterror(int error)
 #ifdef HAVE_IPV6
        g_return_val_if_fail(error != 0, NULL);
 
-       if (error == 1) {
-               /* getnameinfo() failed ..
-                  FIXME: does strerror return the right error message? */
-               return g_strerror(errno);
-       }
-
        return gai_strerror(error);
 #else
        switch (error) {
index 5e445e8383603eb5864d0213f2b005746ee84624..fa7e96750825c871f75cb5fa0dfcb6af3176e387 100644 (file)
@@ -41,22 +41,22 @@ struct _IPADDR {
 
 extern IPADDR ip4_any;
 
+GIOChannel *g_io_channel_new(int handle);
+
 /* returns 1 if IPADDRs are the same */
 int net_ip_compare(IPADDR *ip1, IPADDR *ip2);
 
 /* Connect to socket */
 GIOChannel *net_connect(const char *addr, int port, IPADDR *my_ip);
 /* Connect to socket with ip address and SSL*/
-GIOChannel *net_connect_ip_ssl(IPADDR *ip, int port, IPADDR *my_ip, const char *cert, const char *pkey, const char *cafile, const char *capath, gboolean verify);
+GIOChannel *net_connect_ip_ssl(IPADDR *ip, int port, IPADDR *my_ip, SERVER_REC *server);
+int irssi_ssl_handshake(GIOChannel *handle);
 /* Connect to socket with ip address */
 GIOChannel *net_connect_ip(IPADDR *ip, int port, IPADDR *my_ip);
 /* Connect to named UNIX socket */
 GIOChannel *net_connect_unix(const char *path);
 /* Disconnect socket */
 void net_disconnect(GIOChannel *handle);
-/* Try to let the other side close the connection, if it still isn't
-   disconnected after certain amount of time, close it ourself */
-void net_disconnect_later(GIOChannel *handle);
 
 /* Listen for connections on a socket */
 GIOChannel *net_listen(IPADDR *my_ip, int *port);
index aaedded98b568c6cee9993d5da50e0563c3c985f..1463f9f36164b6db0b6dbf80451fbd91eefa1e68 100644 (file)
@@ -19,7 +19,7 @@ unsigned int send_massjoin:1; /* Waiting to be sent in massjoin signal */
 unsigned int op:1;
 unsigned int halfop:1;
 unsigned int voice:1;
-char other;
+char prefixes[MAX_USER_PREFIXES+1];
 
 /*GHashTable *module_data;*/
 
index 4f322bf55a5dd225030d3a473b0b0f3a1e75a2ef..c38df6d47e7984908edad27adefa0d1011a91003 100644 (file)
@@ -13,9 +13,9 @@
     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     GNU General Public License for more details.
 
-    You should have received a copy of the GNU General Public License
-    along with this program; if not, write to the Free Software
-    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+    You should have received a copy of the GNU General Public License along
+    with this program; if not, write to the Free Software Foundation, Inc.,
+    51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 */
 
 #include "module.h"
@@ -356,56 +356,34 @@ GSList *nicklist_get_same_unique(SERVER_REC *server, void *id)
        return rec.list;
 }
 
-#if GLIB_MAJOR_VERSION < 2
-/* glib1 doesn't have g_slist_sort_with_data, so non-standard prefixes won't be sorted correctly */
-int nicklist_compare_glib1(NICK_REC *p1, NICK_REC *p2)
-{
-       return nicklist_compare(p1, p2, NULL);
-}
-#endif
-
 /* nick record comparision for sort functions */
 int nicklist_compare(NICK_REC *p1, NICK_REC *p2, const char *nick_prefix)
 {
-       int status1, status2;
-       
+       int i;
+
        if (p1 == NULL) return -1;
        if (p2 == NULL) return 1;
 
-       /* we assign each status (op, halfop, voice, normal) a number
-        * and compare them. this is easier than 100,000 if's and
-        * returns :-)
-        * -- yath */
-
-       if (p1->other) {
-               const char *other = (nick_prefix == NULL) ? NULL : strchr(nick_prefix, p1->other);
-               status1 = (other == NULL) ? 5 : 1000 - (other - nick_prefix);
-       } else if (p1->op)
-               status1 = 4;
-       else if (p1->halfop)
-               status1 = 3;
-       else if (p1->voice)
-               status1 = 2;
-       else
-               status1 = 1;
-
-       if (p2->other) {
-               const char *other = (nick_prefix == NULL) ? NULL : strchr(nick_prefix, p2->other);
-               status2 = (other == NULL) ? 5 : 1000 - (other - nick_prefix);
-       } else if (p2->op)
-               status2 = 4;
-       else if (p2->halfop)
-               status2 = 3;
-       else if (p2->voice)
-               status2 = 2;
-       else
-               status2 = 1;
-       
-       if (status1 < status2)
+       if (p1->prefixes[0] == p2->prefixes[0])
+               return g_strcasecmp(p1->nick, p2->nick);
+
+       if (!p1->prefixes[0])
                return 1;
-       else if (status1 > status2)
+       if (!p2->prefixes[0])
                return -1;
-       
+
+       /* They aren't equal.  We've taken care of that already.
+        * The first one we encounter in this list is the greater.
+        */
+
+       for (i = 0; nick_prefix[i] != '\0'; i++) {
+               if (p1->prefixes[0] == nick_prefix[i])
+                       return -1;
+               if (p2->prefixes[0] == nick_prefix[i])
+                       return 1;
+       }
+
+       /* we should never have gotten here... */
        return g_strcasecmp(p1->nick, p2->nick);
 }
 
@@ -597,9 +575,13 @@ int nick_match_msg(CHANNEL_REC *channel, const char *msg, const char *nick)
        if (fullmatch)
                return TRUE; /* matched without fuzzyness */
 
-       /* matched with some fuzzyness .. check if there's an exact match
-          for some other nick in the same channel. */
-        return nick_nfind(channel, msgstart, (int) (msg-msgstart)) == NULL;
+       if (channel != NULL) {
+               /* matched with some fuzzyness .. check if there's an exact match
+                  for some other nick in the same channel. */
+               return nick_nfind(channel, msgstart, (int) (msg-msgstart)) == NULL;
+       } else {
+               return TRUE;
+       }
 }
 
 void nicklist_init(void)
index 78dabcc009bca2837f07884c0adeab4fc1ddfb84..55dfd5efcc6fa6d1ffab6c2ba04eb963110884af 100644 (file)
@@ -8,6 +8,8 @@
 #define IS_NICK(server) \
        (NICK(server) ? TRUE : FALSE)
 
+#define        MAX_USER_PREFIXES 7 /* Max prefixes kept for any user-in-chan. 7+1 is a memory unit */
+
 struct _NICK_REC {
 #include "nick-rec.h"
 };
@@ -48,10 +50,7 @@ void nicklist_update_flags_unique(SERVER_REC *server, void *id,
 /* Specify which nick in channel is ours */
 void nicklist_set_own(CHANNEL_REC *channel, NICK_REC *nick);
 
-/* Nick record comparision for sort functions */
-#if GLIB_MAJOR_VERSION < 2
-int nicklist_compare_glib1(NICK_REC *p1, NICK_REC *p2);
-#endif
+/* Nick record comparison for sort functions */
 int nicklist_compare(NICK_REC *p1, NICK_REC *p2, const char *nick_prefix);
 
 /* Check is `msg' is meant for `nick'. */
index 6605a2f40c467bb0499c8d0ecafffdfdc1e08a09..36a6c241b884133729981bcbcbd67751d84415e6 100644 (file)
@@ -13,9 +13,9 @@
     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     GNU General Public License for more details.
 
-    You should have received a copy of the GNU General Public License
-    along with this program; if not, write to the Free Software
-    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+    You should have received a copy of the GNU General Public License along
+    with this program; if not, write to the Free Software Foundation, Inc.,
+    51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 */
 
 #include "module.h"
index bb48d0d07ebe862dc085f287a95d50baa8cbab19..7fc06195c76b482a13ad3405c34d39506db6545b 100644 (file)
     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     GNU General Public License for more details.
 
-    You should have received a copy of the GNU General Public License
-    along with this program; if not, write to the Free Software
-    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+    You should have received a copy of the GNU General Public License along
+    with this program; if not, write to the Free Software Foundation, Inc.,
+    51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 */
 
 #include "module.h"
 #include "signals.h"
 #include "modules.h"
 
-#include <sys/wait.h>
-
+static GHashTable *child_pids;
 static GSList *pids;
 
-static unsigned int childcheck_tag;
 static int signal_pidwait;
 
+static void sig_child(GPid pid, gint status, gpointer data)
+{
+       signal_emit_id(signal_pidwait, 2, GINT_TO_POINTER(pid),
+                      GINT_TO_POINTER(status));
+       g_hash_table_remove(child_pids, GINT_TO_POINTER(pid));
+       pids = g_slist_remove(pids, GINT_TO_POINTER(pid));
+}
+
 /* add a pid to wait list */
 void pidwait_add(int pid)
 {
-       pids = g_slist_append(pids, GINT_TO_POINTER(pid));
+       if (g_hash_table_lookup(child_pids, GINT_TO_POINTER(pid)) == NULL) {
+               int id = g_child_watch_add_full(10, pid, sig_child, NULL, NULL);
+               g_hash_table_insert(child_pids, GINT_TO_POINTER(pid), GINT_TO_POINTER(id));
+               pids = g_slist_append(pids, GINT_TO_POINTER(pid));
+       }
 }
 
 /* remove pid from wait list */
 void pidwait_remove(int pid)
 {
-       pids = g_slist_remove(pids, GINT_TO_POINTER(pid));
+       gpointer id = g_hash_table_lookup(child_pids, GINT_TO_POINTER(pid));
+       if (id != NULL) {
+               g_source_remove(GPOINTER_TO_INT(id));
+               g_hash_table_remove(child_pids, GINT_TO_POINTER(pid));
+               pids = g_slist_remove(pids, GINT_TO_POINTER(pid));
+       }
 }
 
 /* return list of pids that are being waited.
@@ -48,37 +63,16 @@ GSList *pidwait_get_pids(void)
         return pids;
 }
 
-static int child_check(void)
-{
-       GSList *tmp, *next;
-       int status;
-
-       /* wait for each pid.. */
-       for (tmp = pids; tmp != NULL; tmp = next) {
-               int pid = GPOINTER_TO_INT(tmp->data);
-
-               next = tmp->next;
-               if (waitpid(pid, &status, WNOHANG) > 0) {
-                       /* process terminated, remove from list */
-                       signal_emit_id(signal_pidwait, 2, tmp->data,
-                                      GINT_TO_POINTER(status));
-                       pids = g_slist_remove(pids, tmp->data);
-               }
-       }
-       return 1;
-}
-
 void pidwait_init(void)
 {
+       child_pids = g_hash_table_new(g_direct_hash, g_direct_equal);
        pids = NULL;
-       childcheck_tag = g_timeout_add(1000, (GSourceFunc) child_check, NULL);
 
        signal_pidwait = signal_get_uniq_id("pidwait");
 }
 
 void pidwait_deinit(void)
 {
+       g_hash_table_destroy(child_pids);
        g_slist_free(pids);
-
-       g_source_remove(childcheck_tag);
 }
index 799a6320309263e682f0095ee8f1d1a39d4dd0c6..fd51fbb8bda03fd718d5fec24adcab4135e2db70 100644 (file)
@@ -13,9 +13,9 @@
     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     GNU General Public License for more details.
 
-    You should have received a copy of the GNU General Public License
-    along with this program; if not, write to the Free Software
-    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+    You should have received a copy of the GNU General Public License along
+    with this program; if not, write to the Free Software Foundation, Inc.,
+    51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 */
 
 #include "module.h"
index d605ccb5934e3791910ebfcd221d24851fe24d96..20368aeb7871b393d4fc6bcf6386b3cf8e35db63 100644 (file)
@@ -13,9 +13,9 @@
     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     GNU General Public License for more details.
 
-    You should have received a copy of the GNU General Public License
-    along with this program; if not, write to the Free Software
-    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+    You should have received a copy of the GNU General Public License along
+    with this program; if not, write to the Free Software Foundation, Inc.,
+    51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 */
 
 #include "module.h"
index aadc09b222a038250f77d29978c2b77ee52de237..ca69b73ec31998b62fa4194ff9bdf5f1cc7ab2f4 100644 (file)
@@ -13,9 +13,9 @@
     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     GNU General Public License for more details.
 
-    You should have received a copy of the GNU General Public License
-    along with this program; if not, write to the Free Software
-    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+    You should have received a copy of the GNU General Public License along
+    with this program; if not, write to the Free Software Foundation, Inc.,
+    51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 */
 
 #include "module.h"
 #include "lib-config/iconfig.h"
 #include "misc.h"
 
-static gboolean recode_get_charset(const char **charset)
-{
-       *charset = settings_get_str("term_charset");
-       if (**charset)
-               /* we use the same test as in src/fe-text/term.c:123 */
-               return (g_strcasecmp(*charset, "utf-8") == 0);
-
-#ifdef HAVE_GLIB2
-       return g_get_charset(charset);
-#else
-       return FALSE;
-#endif
-}
+static char *translit_charset;
+static gboolean term_is_utf8;
 
 gboolean is_utf8(void)
 {
-       const char *charset;
-
-       return recode_get_charset(&charset);
+       return term_is_utf8;
 }
 
-#ifdef HAVE_GLIB2
 static gboolean is_translit(const char *charset)
 {
        char *pos;
@@ -54,15 +40,11 @@ static gboolean is_translit(const char *charset)
        pos = stristr(charset, "//translit");
        return (pos != NULL);
 }
-#endif
 
 gboolean is_valid_charset(const char *charset)
 {
-#ifdef HAVE_GLIB2
-       const char *from="UTF-8";
-       const char *str="irssi";
-       char *recoded, *to = NULL;
-       gboolean valid;
+       GIConv cd;
+       char *to = NULL;
 
        if (!charset || *charset == '\0')
                return FALSE;
@@ -70,28 +52,48 @@ gboolean is_valid_charset(const char *charset)
        if (settings_get_bool("recode_transliterate") && !is_translit(charset))
                charset = to = g_strconcat(charset, "//TRANSLIT", NULL);
 
-       recoded = g_convert(str, strlen(str), charset, from, NULL, NULL, NULL);
-       valid = (recoded != NULL);
-       g_free(recoded);
+       cd = g_iconv_open(charset, "UTF-8");
        g_free(to);
-       return valid;
-#else
-       if (!charset || *charset =='\0')
-               return FALSE;
-       return TRUE;
-#endif
+       if (cd != (GIConv)-1) {
+               g_iconv_close(cd);
+               return TRUE;
+       }
+       return FALSE;
+}
+
+static char *find_conversion(const SERVER_REC *server, const char *target)
+{
+       char *conv = NULL;
+
+       if (server != NULL && target != NULL) {
+               char *tagtarget = g_strdup_printf("%s/%s", server->tag, target);
+               conv = iconfig_get_str("conversions", tagtarget, NULL);
+               g_free(tagtarget);
+       }
+       if (conv == NULL && target != NULL)
+               conv = iconfig_get_str("conversions", target, NULL);
+       if (conv == NULL && server != NULL)
+               conv = iconfig_get_str("conversions", server->tag, NULL);
+       return conv;
+}
+
+static int str_is_ascii(const char *str)
+{
+       int i;
+
+       for (i = 0; str[i] != '\0'; i++)
+               if (str[i] & 0x80)
+                       return 0;
+       return 1;
 }
 
 char *recode_in(const SERVER_REC *server, const char *str, const char *target)
 {
-#ifdef HAVE_GLIB2
        const char *from = NULL;
-       const char *to = NULL;
-       char *translit_to = NULL;
+       const char *to = translit_charset;
        char *recoded = NULL;
-       gboolean term_is_utf8, str_is_utf8, translit, recode, autodetect;
+       gboolean str_is_utf8, recode, autodetect;
        int len;
-       int i;
 
        if (!str)
                return NULL;
@@ -104,50 +106,34 @@ char *recode_in(const SERVER_REC *server, const char *str, const char *target)
 
        /* Only validate for UTF-8 if an 8-bit encoding. */
        str_is_utf8 = 0;
-       for (i = 0; i < len; ++i) {
-               if (str[i] & 0x80) {
-                       str_is_utf8 = g_utf8_validate(str, len, NULL);
-                       break;
-               }
-       }
-       translit = settings_get_bool("recode_transliterate");
+       if (!str_is_ascii(str))
+               str_is_utf8 = g_utf8_validate(str, len, NULL);
+       else if (!strchr(str, '\e'))
+               str_is_utf8 = 1;
        autodetect = settings_get_bool("recode_autodetect_utf8");
-       term_is_utf8 = recode_get_charset(&to);
 
        if (autodetect && str_is_utf8)
                if (term_is_utf8)
                        return g_strdup(str);
                else
                        from = "UTF-8";
-                       
-       else {
-               if (server != NULL && server->tag != NULL && target != NULL) {
-                       char *tagtarget = g_strdup_printf("%s/%s", server->tag, target);
-                       from = iconfig_get_str("conversions", tagtarget, NULL);
-                       g_free(tagtarget);
-               }
+       else
+               from = find_conversion(server, target);
 
-               if (target != NULL && from == NULL)
-                       from = iconfig_get_str("conversions", target, NULL);
-
-               if (from == NULL && server != NULL)
-                       from = iconfig_get_str("conversions", server->tag, NULL);
-
-       }
-
-       if (translit && !is_translit(to))
-               to = translit_to = g_strconcat(to, "//TRANSLIT", NULL);
-               
        if (from)
                recoded = g_convert_with_fallback(str, len, to, from, NULL, NULL, NULL, NULL);
 
        if (!recoded) {
-               if (term_is_utf8) {
-                       if (!str_is_utf8)
+               if (str_is_utf8)
+                       if (term_is_utf8)
+                               return g_strdup(str);
+                       else
+                               from = "UTF-8";
+               else
+                       if (term_is_utf8)
                                from = settings_get_str("recode_fallback");
-
-               } else if (str_is_utf8)
-                       from = "UTF-8";
+                       else
+                               from = NULL;
 
                if (from)
                        recoded = g_convert_with_fallback(str, len, to, from, NULL, NULL, NULL, NULL);
@@ -155,21 +141,16 @@ char *recode_in(const SERVER_REC *server, const char *str, const char *target)
                if (!recoded)
                        recoded = g_strdup(str);
        }
-       g_free(translit_to);
        return recoded;
-#else
-       return g_strdup(str);
-#endif
 }
 
 char *recode_out(const SERVER_REC *server, const char *str, const char *target)
 {
-#ifdef HAVE_GLIB2
        char *recoded = NULL;
-       const char *from = NULL;
+       const char *from = translit_charset;
        const char *to = NULL;
        char *translit_to = NULL;
-       gboolean translit, term_is_utf8, recode;
+       gboolean translit, recode;
        int len;
 
        if (!str)
@@ -183,16 +164,8 @@ char *recode_out(const SERVER_REC *server, const char *str, const char *target)
 
        translit = settings_get_bool("recode_transliterate");
 
-       if (server != NULL && server->tag != NULL && target != NULL) {
-               char *tagtarget = g_strdup_printf("%s/%s", server->tag, target);
-               to = iconfig_get_str("conversions", tagtarget, NULL);
-               g_free(tagtarget);
-       }
-       if (to == NULL || *to == '\0')
-               to = iconfig_get_str("conversions", target, NULL);
-       if ((to == NULL || *to == '\0') && server != NULL)
-               to = iconfig_get_str("conversions", server->tag, NULL);
-       if (to == NULL || *to == '\0')
+       to = find_conversion(server, target);
+       if (to == NULL)
                /* default outgoing charset if set */
                to = settings_get_str("recode_out_default_charset");
 
@@ -200,7 +173,6 @@ char *recode_out(const SERVER_REC *server, const char *str, const char *target)
                if (translit && !is_translit(to))
                        to = translit_to = g_strconcat(to ,"//TRANSLIT", NULL);
 
-               term_is_utf8 = recode_get_charset(&from);
                recoded = g_convert(str, len, to, from, NULL, NULL, NULL);
        }
        g_free(translit_to);
@@ -208,9 +180,17 @@ char *recode_out(const SERVER_REC *server, const char *str, const char *target)
                recoded = g_strdup(str);
 
        return recoded;
-#else
-       return g_strdup(str);
-#endif
+}
+
+void recode_update_charset(void)
+{
+       const char *charset = settings_get_str("term_charset");
+       term_is_utf8 = !g_ascii_strcasecmp(charset, "UTF-8");
+       g_free(translit_charset);
+       if (settings_get_bool("recode_transliterate") && !is_translit(charset))
+               translit_charset = g_strconcat(charset, "//TRANSLIT", NULL);
+       else
+               translit_charset = g_strdup(charset);
 }
 
 void recode_init(void)
@@ -223,6 +203,6 @@ void recode_init(void)
 }
 
 void recode_deinit(void)
-{      
-
+{
+       g_free(translit_charset);
 }
index 9698ae2fa65c26983f1182e9c7e3787dd4aa32be..c8f867cf585e42e1eb5a3bfbb533c641e67963be 100644 (file)
@@ -5,6 +5,7 @@ char *recode_in (const SERVER_REC *server, const char *str, const char *target);
 char *recode_out (const SERVER_REC *server, const char *str, const char *target);
 gboolean is_valid_charset(const char *charset);
 gboolean is_utf8(void);
+void recode_update_charset(void);
 
 void recode_init (void);
 void recode_deinit (void);
index cfbe3eba12946c166b5041abdc5c864c9001e8f3..a9588f046f683c4eac729ba7f0888aef00a2f978 100644 (file)
@@ -34,6 +34,7 @@ GIOChannel *connect_handle; /* connect using this handle */
 unsigned int reconnection:1; /* we're trying to reconnect a connected server */
 unsigned int reconnecting:1; /* we're trying to reconnect any connection */
 unsigned int no_autojoin_channels:1; /* don't autojoin any channels */
+unsigned int no_autosendcmd:1; /* don't execute autosendcmd */
 unsigned int unix_socket:1; /* Connect using named unix socket */
 unsigned int use_ssl:1; /* this connection uses SSL */
 unsigned int ssl_verify:1;
index bc8124dcfb3a948558378e1d10c981f53892ce59..726d1c14d231b02d71400bc00dca8bfed1226863 100644 (file)
@@ -27,7 +27,6 @@ int connect_tag;
 int connect_pid;
 
 RAWLOG_REC *rawlog;
-LINEBUF_REC *buffer; /* receive buffer */
 GHashTable *module_data;
 
 char *version; /* server version */
index 5f53368c70900215214c411f64145df9d9092b1d..15f9f3547cbbe62971b266e839843864a729ae94 100644 (file)
@@ -13,9 +13,9 @@
     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     GNU General Public License for more details.
 
-    You should have received a copy of the GNU General Public License
-    along with this program; if not, write to the Free Software
-    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+    You should have received a copy of the GNU General Public License along
+    with this program; if not, write to the Free Software Foundation, Inc.,
+    51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 */
 
 #include "module.h"
@@ -48,12 +48,11 @@ void reconnect_save_status(SERVER_CONNECT_REC *conn, SERVER_REC *server)
        if (!server->connected) {
                /* default to channels/usermode from connect record
                   since server isn't fully connected yet */
+               /* XXX when is reconnect_save_status() called with
+                * server->connected==FALSE? */
                g_free_not_null(conn->channels);
                conn->channels = server->connrec->no_autojoin_channels ? NULL :
                        g_strdup(server->connrec->channels);
-
-               g_free_not_null(conn->channels);
-               conn->channels = g_strdup(server->connrec->channels);
        }
 
        signal_emit("server reconnect save status", 2, conn, server);
@@ -189,7 +188,8 @@ server_connect_copy_skeleton(SERVER_CONNECT_REC *src, int connect_info)
 
        dest->channels = g_strdup(src->channels);
        dest->away_reason = g_strdup(src->away_reason);
-        dest->no_autojoin_channels = src->no_autojoin_channels;
+       dest->no_autojoin_channels = src->no_autojoin_channels;
+       dest->no_autosendcmd = src->no_autosendcmd;
 
        dest->use_ssl = src->use_ssl;
        dest->ssl_cert = g_strdup(src->ssl_cert);
@@ -204,10 +204,10 @@ server_connect_copy_skeleton(SERVER_CONNECT_REC *src, int connect_info)
 #define server_should_reconnect(server) \
        ((server)->connection_lost && !(server)->no_reconnect && \
        ((server)->connrec->chatnet != NULL || \
-               (!(server)->banned && !(server)->dns_error)))
+               !(server)->banned))
 
 #define sserver_connect_ok(rec, net) \
-       (!(rec)->banned && !(rec)->dns_error && (rec)->chatnet != NULL && \
+       (!(rec)->banned && (rec)->chatnet != NULL && \
        g_strcasecmp((rec)->chatnet, (net)) == 0)
 
 static void sig_reconnect(SERVER_REC *server)
@@ -403,7 +403,7 @@ static void cmd_reconnect(const char *data, SERVER_REC *server)
                 return;
        }
 
-       if (g_strcasecmp(tag, "all") == 0) {
+       if (g_ascii_strcasecmp(tag, "all") == 0) {
                /* reconnect all servers in reconnect queue */
                 reconnect_all();
                cmd_params_free(free_arg);
@@ -416,7 +416,7 @@ static void cmd_reconnect(const char *data, SERVER_REC *server)
                        cmd_param_error(CMDERR_NOT_CONNECTED);
                 rec = reconnects->data;
        } else {
-               if (g_strncasecmp(data, "RECON-", 6) == 0)
+               if (g_ascii_strncasecmp(data, "RECON-", 6) == 0)
                        data += 6;
 
                tagnum = atoi(tag);
@@ -440,7 +440,7 @@ static void cmd_disconnect(const char *data, SERVER_REC *server)
 {
        RECONNECT_REC *rec;
 
-       if (g_strncasecmp(data, "RECON-", 6) != 0)
+       if (g_ascii_strncasecmp(data, "RECON-", 6) != 0)
                return; /* handle only reconnection removing */
 
        rec = reconnect_find_tag(atoi(data+6));
index 2aeb1d5d2b99cc58f69530a38783d8f5f257e975..83b90db347ffefc0d601f93d3c2b7ce4b1c9bb00 100644 (file)
@@ -13,9 +13,9 @@
     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     GNU General Public License for more details.
 
-    You should have received a copy of the GNU General Public License
-    along with this program; if not, write to the Free Software
-    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+    You should have received a copy of the GNU General Public License along
+    with this program; if not, write to the Free Software Foundation, Inc.,
+    51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 */
 
 #include "module.h"
@@ -31,7 +31,7 @@
 
 GSList *setupservers;
 
-char *old_source_host;
+static char *old_source_host;
 int source_host_ok; /* Use source_host_ip .. */
 IPADDR *source_host_ip4, *source_host_ip6; /* Resolved address */
 
@@ -352,15 +352,6 @@ SERVER_SETUP_REC *server_setup_find(const char *address, int port,
        return server;
 }
 
-/* Find matching server from setup. Ports must match or NULL is returned. */
-SERVER_SETUP_REC *server_setup_find_port(const char *address, int port)
-{
-       SERVER_SETUP_REC *rec;
-
-       rec = server_setup_find(address, port, NULL);
-       return rec == NULL || rec->port != port ? NULL : rec;
-}
-
 static SERVER_SETUP_REC *server_setup_read(CONFIG_NODE *node)
 {
        SERVER_SETUP_REC *rec;
@@ -375,14 +366,13 @@ static SERVER_SETUP_REC *server_setup_read(CONFIG_NODE *node)
                return NULL;
 
        port = config_node_get_int(node, "port", 0);
-       if (server_setup_find_port(server, port) != NULL) {
-               /* already exists - don't let it get there twice or
-                  server reconnects will screw up! */
+       chatnet = config_node_get_str(node, "chatnet", NULL);
+
+       if (server_setup_find(server, port, chatnet) != NULL) {
                return NULL;
        }
 
        rec = NULL;
-       chatnet = config_node_get_str(node, "chatnet", NULL);
 
        chatnetrec = chatnet == NULL ? NULL : chatnet_find(chatnet);
        if (chatnetrec == NULL && chatnet != NULL) {
@@ -399,8 +389,8 @@ static SERVER_SETUP_REC *server_setup_read(CONFIG_NODE *node)
        rec->type = module_get_uniq_id("SERVER SETUP", 0);
         rec->chat_type = CHAT_PROTOCOL(chatnetrec)->id;
        rec->chatnet = chatnetrec == NULL ? NULL : g_strdup(chatnetrec->name);
-       rec->family = g_strcasecmp(family, "inet6") == 0 ? AF_INET6 :
-               (g_strcasecmp(family, "inet") == 0 ? AF_INET : 0);
+       rec->family = g_ascii_strcasecmp(family, "inet6") == 0 ? AF_INET6 :
+               (g_ascii_strcasecmp(family, "inet") == 0 ? AF_INET : 0);
        rec->address = g_strdup(server);
        rec->password = g_strdup(config_node_get_str(node, "password", NULL));
        rec->use_ssl = config_node_get_bool(node, "use_ssl", FALSE);
@@ -545,13 +535,6 @@ void servers_setup_init(void)
        settings_add_str("server", "user_name", NULL);
        settings_add_str("server", "real_name", NULL);
 
-       settings_add_bool("server", "use_ssl", FALSE);
-       settings_add_str("server", "ssl_cert", NULL);
-       settings_add_str("server", "ssl_pkey", NULL);
-       settings_add_bool("server", "ssl_verify", FALSE);
-       settings_add_str("server", "ssl_cafile", NULL);
-       settings_add_str("server", "ssl_cacert", NULL);
-
        settings_add_bool("proxy", "use_proxy", FALSE);
        settings_add_str("proxy", "proxy_address", "");
        settings_add_int("proxy", "proxy_port", 6667);
index d0101bcb63587076650f2e9d2dbde98d1d245961..f7601a686b3e4bde86750010aab4237ec976970c 100644 (file)
@@ -35,8 +35,6 @@ server_create_conn(int chat_type, const char *dest, int port,
    but fallback to any server with the same address. */
 SERVER_SETUP_REC *server_setup_find(const char *address, int port,
                                    const char *chatnet);
-/* Find matching server from setup. Ports must match or NULL is returned. */
-SERVER_SETUP_REC *server_setup_find_port(const char *address, int port);
 
 void server_setup_add(SERVER_SETUP_REC *rec);
 void server_setup_remove(SERVER_SETUP_REC *rec);
index ca18914ae79259994f62faaf00f3f6e4cab23ee6..d0e6bb7e934af4ea2aaae120171c0e4516b14611 100644 (file)
     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     GNU General Public License for more details.
 
-    You should have received a copy of the GNU General Public License
-    along with this program; if not, write to the Free Software
-    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+    You should have received a copy of the GNU General Public License along
+    with this program; if not, write to the Free Software Foundation, Inc.,
+    51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 */
 
 #include "module.h"
 #include "signals.h"
 #include "commands.h"
-#include "line-split.h"
+#include "net-disconnect.h"
 #include "net-nonblock.h"
 #include "net-sendbuffer.h"
 #include "misc.h"
@@ -77,8 +77,8 @@ static char *server_create_address_tag(const char *address)
        /* try to generate a reasonable server tag */
        if (strchr(address, '.') == NULL) {
                start = end = NULL;
-       } else if (g_strncasecmp(address, "irc", 3) == 0 ||
-           g_strncasecmp(address, "chat", 4) == 0) {
+       } else if (g_ascii_strncasecmp(address, "irc", 3) == 0 ||
+           g_ascii_strncasecmp(address, "chat", 4) == 0) {
                /* irc-2.cs.hut.fi -> hut, chat.bt.net -> bt */
                end = strrchr(address, '.');
                start = end-1;
@@ -128,7 +128,7 @@ static char *server_create_tag(SERVER_CONNECT_REC *conn)
        num = 2;
        while (server_find_tag(str->str) != NULL ||
               server_find_lookup_tag(str->str) != NULL) {
-               g_string_sprintf(str, "%s%d", tag, num);
+               g_string_printf(str, "%s%d", tag, num);
                num++;
        }
        g_free(tag);
@@ -167,6 +167,39 @@ static void server_connect_callback_init(SERVER_REC *server, GIOChannel *handle)
        server_connect_finished(server);
 }
 
+#ifdef HAVE_OPENSSL
+static void server_connect_callback_init_ssl(SERVER_REC *server, GIOChannel *handle)
+{
+       int error;
+
+       g_return_if_fail(IS_SERVER(server));
+
+       error = irssi_ssl_handshake(handle);
+       if (error == -1) {
+               server->connection_lost = TRUE;
+               server_connect_failed(server, NULL);
+               return;
+       }
+       if (error & 1) {
+               if (server->connect_tag != -1)
+                       g_source_remove(server->connect_tag);
+               server->connect_tag = g_input_add(handle, error == 1 ? G_INPUT_READ : G_INPUT_WRITE,
+                                                 (GInputFunction)
+                                                 server_connect_callback_init_ssl,
+                                                 server);
+               return;
+       }
+
+       lookup_servers = g_slist_remove(lookup_servers, server);
+       if (server->connect_tag != -1) {
+               g_source_remove(server->connect_tag);
+               server->connect_tag = -1;
+       }
+
+       server_connect_finished(server);
+}
+#endif
+
 static void server_real_connect(SERVER_REC *server, IPADDR *ip,
                                const char *unix_socket)
 {
@@ -191,9 +224,7 @@ static void server_real_connect(SERVER_REC *server, IPADDR *ip,
                port = server->connrec->proxy != NULL ?
                        server->connrec->proxy_port : server->connrec->port;
                handle = server->connrec->use_ssl ?
-                       net_connect_ip_ssl(ip, port, own_ip, server->connrec->ssl_cert, server->connrec->ssl_pkey,
-server->connrec->ssl_cafile, server->connrec->ssl_capath, server->connrec->ssl_verify) :
-                       net_connect_ip(ip, port, own_ip);
+                       net_connect_ip_ssl(ip, port, own_ip, server) : net_connect_ip(ip, port, own_ip);
        } else {
                handle = net_connect_unix(unix_socket);
        }
@@ -218,6 +249,11 @@ server->connrec->ssl_cafile, server->connrec->ssl_capath, server->connrec->ssl_v
                g_free(errmsg2);
        } else {
                server->handle = net_sendbuffer_create(handle, 0);
+#ifdef HAVE_OPENSSL
+               if (server->connrec->use_ssl)
+                       server_connect_callback_init_ssl(server, handle);
+               else
+#endif
                server->connect_tag =
                        g_input_add(handle, G_INPUT_WRITE | G_INPUT_READ,
                                    (GInputFunction)
@@ -381,8 +417,8 @@ int server_start_connect(SERVER_REC *server)
                        return FALSE;
                }
 
-               server->connect_pipe[0] = g_io_channel_unix_new(fd[0]);
-               server->connect_pipe[1] = g_io_channel_unix_new(fd[1]);
+               server->connect_pipe[0] = g_io_channel_new(fd[0]);
+               server->connect_pipe[1] = g_io_channel_new(fd[1]);
 
                connect_address = server->connrec->proxy != NULL ?
                        server->connrec->proxy : server->connrec->address;
@@ -497,7 +533,6 @@ int server_unref(SERVER_REC *server)
         MODULE_DATA_DEINIT(server);
        server_connect_unref(server->connrec);
        if (server->rawlog != NULL) rawlog_destroy(server->rawlog);
-       if (server->buffer != NULL) line_split_free(server->buffer);
        g_free(server->version);
        g_free(server->away_reason);
        g_free(server->nick);
index f3553634ba7f01841cbd34bdb4dc2a1c49b3f990..b3002632952ef6214344dd628ca8ed749ebbffe7 100644 (file)
     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     GNU General Public License for more details.
 
-    You should have received a copy of the GNU General Public License
-    along with this program; if not, write to the Free Software
-    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+    You should have received a copy of the GNU General Public License along
+    with this program; if not, write to the Free Software Foundation, Inc.,
+    51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 */
 
 #include "module.h"
 #include "signals.h"
 #include "commands.h"
 #include "args.h"
+#include "network.h"
 #include "net-sendbuffer.h"
 #include "pidwait.h"
 #include "lib-config/iconfig.h"
@@ -37,54 +38,6 @@ char *irssi_binary = NULL;
 
 static char **session_args;
 
-#ifndef HAVE_GLIB2
-static char *g_find_program_in_path(const char *path)
-{
-       const char *envpath;
-       char **paths, **tmp;
-        char *str;
-       char *result = NULL;
-
-       if (g_path_is_absolute(path)) {
-                /* full path - easy */
-               if(access(path, X_OK) == -1)
-                       return NULL;
-               else
-                       return g_strdup(path);
-       }
-
-       if (strchr(path, G_DIR_SEPARATOR) != NULL) {
-               /* relative path */
-                str = g_get_current_dir();
-               result = g_strconcat(str, G_DIR_SEPARATOR_S, path, NULL);
-               g_free(str);
-               if (access(result, X_OK) == -1) {
-                       g_free(result);
-                       return NULL;
-               }
-               else
-                       return result;
-       }
-
-       /* we'll need to find it from path. */
-       envpath = g_getenv("PATH");
-       if (envpath == NULL) return NULL;
-
-       paths = g_strsplit(envpath, ":", -1);
-       for (tmp = paths; *tmp != NULL; tmp++) {
-                str = g_strconcat(*tmp, G_DIR_SEPARATOR_S, path, NULL);
-               if (access(str, X_OK) == 0) {
-                       result = str;
-                        break;
-               }
-                g_free(str);
-       }
-       g_strfreev(paths);
-
-       return result;
-}
-#endif
-
 void session_set_binary(const char *path)
 {
        g_free_and_null(irssi_binary);
@@ -139,17 +92,14 @@ static void cmd_upgrade(const char *data)
 static void session_save_nick(CHANNEL_REC *channel, NICK_REC *nick,
                              CONFIG_REC *config, CONFIG_NODE *node)
 {
-       static char other[2];
        node = config_node_section(node, NULL, NODE_TYPE_BLOCK);
 
        config_node_set_str(config, node, "nick", nick->nick);
        config_node_set_bool(config, node, "op", nick->op);
        config_node_set_bool(config, node, "halfop", nick->halfop);
        config_node_set_bool(config, node, "voice", nick->voice);
-       
-       other[0] = nick->other;
-       other[1] = '\0';
-       config_node_set_str(config, node, "other", other);
+
+       config_node_set_str(config, node, "prefixes", nick->prefixes);
 
        signal_emit("session save nick", 4, channel, nick, config, node);
 }
@@ -310,10 +260,10 @@ static void session_restore_server(CONFIG_NODE *node)
                                  chatnet, password, nick);
        if (conn != NULL) {
                conn->reconnection = TRUE;
-               conn->connect_handle = g_io_channel_unix_new(handle);
+               conn->connect_handle = g_io_channel_new(handle);
 
                server = proto->server_init_connect(conn);
-               server->version = g_strdup(config_node_get_str(node, "version", NULL));         
+               server->version = g_strdup(config_node_get_str(node, "version", NULL));
                server->session_reconnect = TRUE;
                signal_emit("session restore server", 2, server, node);
 
@@ -335,7 +285,7 @@ static void sig_session_save(CONFIG_REC *config)
        /* save pids */
         str = g_string_new(NULL);
        for (tmp = pidwait_get_pids(); tmp != NULL; tmp = tmp->next)
-                g_string_sprintfa(str, "%d ", GPOINTER_TO_INT(tmp->data));
+                g_string_append_printf(str, "%d ", GPOINTER_TO_INT(tmp->data));
         config_node_set_str(config, config->mainnode, "pids", str->str);
         g_string_free(str, TRUE);
 }
@@ -377,19 +327,21 @@ static void sig_init_finished(void)
        config_close(session);
 
        unlink(session_file);
-       session_file = NULL;
 }
 
-void session_init(void)
+void session_register_options(void)
 {
-       static struct poptOption options[] = {
-               { "session", 0, POPT_ARG_STRING, &session_file, 0, "Used by /UPGRADE command", "PATH" },
-               { NULL, '\0', 0, NULL }
+       static GOptionEntry options[] = {
+               { "session", 0, G_OPTION_FLAG_HIDDEN, G_OPTION_ARG_STRING, &session_file, "Used by /UPGRADE command", "PATH" },
+               { NULL }
        };
 
        session_file = NULL;
        args_register(options);
+}
 
+void session_init(void)
+{
        command_bind("upgrade", NULL, (SIGNAL_FUNC) cmd_upgrade);
 
        signal_add("session save", (SIGNAL_FUNC) sig_session_save);
index 000ec56e32bd3d7e326c595d95c4051642599a6c..a3c8d67caac961db1d820023d26ce110d4408d80 100644 (file)
@@ -6,6 +6,7 @@ extern char *irssi_binary;
 void session_set_binary(const char *path);
 void session_upgrade(void);
 
+void session_register_options(void);
 void session_init(void);
 void session_deinit(void);
 
index be49d800e2684f961cddbbf176b647d3fd4deeb8..9f527ebe783ae1c1b44a133029b19599c2abb1a3 100644 (file)
@@ -13,9 +13,9 @@
     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     GNU General Public License for more details.
 
-    You should have received a copy of the GNU General Public License
-    along with this program; if not, write to the Free Software
-    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+    You should have received a copy of the GNU General Public License along
+    with this program; if not, write to the Free Software Foundation, Inc.,
+    51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 */
 
 #include "module.h"
@@ -48,29 +48,13 @@ static time_t config_last_mtime;
 static long config_last_size;
 static unsigned int config_last_checksum;
 
-static SETTINGS_REC *settings_find(const char *key)
-{
-       SETTINGS_REC *rec;
-
-       g_return_val_if_fail(key != NULL, NULL);
-
-       rec = g_hash_table_lookup(settings, key);
-       if (rec == NULL) {
-               g_warning("settings_get_default_str(%s) : "
-                         "unknown setting", key);
-               return NULL;
-       }
-
-       return rec;
-}
-
 static SETTINGS_REC *settings_get(const char *key, SettingType type)
 {
        SETTINGS_REC *rec;
 
        g_return_val_if_fail(key != NULL, NULL);
 
-       rec = settings_find(key);
+       rec = g_hash_table_lookup(settings, key);
        if (rec == NULL) {
                g_warning("settings_get(%s) : not found", key);
                return NULL;
@@ -150,7 +134,7 @@ int settings_get_level(const char *key)
        const char *str;
 
        str = settings_get_str_type(key, SETTING_TYPE_LEVEL);
-       return str == NULL ? 0 : level2bits(str);
+       return str == NULL ? 0 : level2bits(str, NULL);
 }
 
 int settings_get_size(const char *key)
@@ -164,6 +148,27 @@ int settings_get_size(const char *key)
        return str == NULL ? 0 : bytes;
 }
 
+char *settings_get_print(SETTINGS_REC *rec)
+{
+       char *value = NULL;
+
+       switch(rec->type) {
+       case SETTING_TYPE_BOOLEAN:
+               value = g_strdup(settings_get_bool(rec->key) ? "ON" : "OFF");
+               break;
+       case SETTING_TYPE_INT:
+               value = g_strdup_printf("%d", settings_get_int(rec->key));
+               break;
+       case SETTING_TYPE_STRING:
+       case SETTING_TYPE_TIME:
+       case SETTING_TYPE_LEVEL:
+       case SETTING_TYPE_SIZE:
+               value = g_strdup(settings_get_str(rec->key));
+               break;
+       }
+       return value;
+}
+
 static void settings_add(const char *module, const char *section,
                         const char *key, SettingType type,
                         const SettingValue *default_value)
@@ -181,8 +186,10 @@ static void settings_add(const char *module, const char *section,
                                  "setting '%s' with different type.", key);
                        return;
                }
+               rec->refcount++;
        } else {
                rec = g_new(SETTINGS_REC, 1);
+               rec->refcount = 1;
                rec->module = g_strdup(module);
                rec->key = g_strdup(key);
                rec->section = g_strdup(section);
@@ -191,8 +198,6 @@ static void settings_add(const char *module, const char *section,
                rec->default_value = *default_value;
                g_hash_table_insert(settings, rec->key, rec);
        }
-
-        rec->refcount++;
 }
 
 void settings_add_str_module(const char *module, const char *section,
@@ -350,6 +355,12 @@ int settings_set_time(const char *key, const char *value)
 
 int settings_set_level(const char *key, const char *value)
 {
+       int iserror;
+
+       (void)level2bits(value, &iserror);
+       if (iserror)
+               return FALSE;
+
         iconfig_node_set_str(settings_get_node(key), key, value);
        return TRUE;
 }
@@ -443,15 +454,14 @@ static int backwards_compatibility(const char *module, CONFIG_NODE *node,
        const char *new_key, *new_module;
        CONFIG_NODE *new_node;
        char *new_value;
-       int old_value;
 
        new_value = NULL; new_key = NULL; new_module = NULL;
 
        /* fe-text term_type -> fe-common/core term_charset - for 0.8.10-> */
        if (strcmp(module, "fe-text") == 0) {
-               if (strcasecmp(node->key, "term_type") == 0 ||
+               if (g_ascii_strcasecmp(node->key, "term_type") == 0 ||
                    /* kludge for cvs-version where term_charset was in fe-text */
-                   strcasecmp(node->key, "term_charset") == 0) {
+                   g_ascii_strcasecmp(node->key, "term_charset") == 0) {
                        new_module = "fe-common/core";
                        new_key = "term_charset";
                        new_value = !is_valid_charset(node->value) ? NULL :
@@ -468,54 +478,14 @@ static int backwards_compatibility(const char *module, CONFIG_NODE *node,
                        g_free(new_value);
                        config_changed = TRUE;
                        return new_key != NULL;
+               } else if (g_ascii_strcasecmp(node->key, "actlist_moves") == 0 &&
+                          node->value != NULL && g_ascii_strcasecmp(node->value, "yes") == 0) {
+                       config_node_set_str(mainconfig, parent, "actlist_sort", "recent");
+                       config_node_set_str(mainconfig, parent, node->key, NULL);
+                       config_changed = TRUE;
+                       return TRUE;
                }
        }
-       new_value = NULL, new_key = NULL;
-       /* FIXME: remove later - for 0.8.6 -> */
-       if (node->value == NULL || !is_numeric(node->value, '\0'))
-               return FALSE;
-
-       old_value = atoi(node->value);
-
-       if (strcmp(module, "fe-text") == 0) {
-               if (strcasecmp(node->key, "lag_min_show") == 0)
-                       new_value = g_strdup_printf("%dms", old_value*10);
-               else if (strcasecmp(node->key, "scrollback_hours") == 0) {
-                       new_value = g_strdup_printf("%dh", old_value);
-                       new_key = "scrollback_time";
-               }
-       } else if (strcmp(module, "irc/core") == 0) {
-               if (strcasecmp(node->key, "cmd_queue_speed") == 0)
-                       new_value = g_strdup_printf("%dms", old_value);
-       } else if (strcmp(module, "irc/dcc") == 0) {
-               if (strcasecmp(node->key, "dcc_autoget_max_size") == 0)
-                       new_value = g_strdup_printf("%dk", old_value);
-       } else if (strcmp(module, "irc/notify") == 0) {
-               if (strcasecmp(node->key, "notify_idle_time") == 0)
-                       new_value = g_strdup_printf("%dmin", old_value);
-       } else if (strcmp(module, "core") == 0) {
-               if (strcasecmp(node->key, "write_buffer_mins") == 0) {
-                       new_value = g_strdup_printf("%dmin", old_value);
-                       new_key = "write_buffer_timeout";
-               } else if (strcasecmp(node->key, "write_buffer_kb") == 0) {
-                       new_value = g_strdup_printf("%dk", old_value);
-                       new_key = "write_buffer_size";
-               }
-       }
-
-       if (new_key != NULL || new_value != NULL) {
-               config_node_set_str(mainconfig, parent,
-                                   new_key != NULL ? new_key : node->key,
-                                   new_value != NULL ?
-                                   new_value : node->value);
-               if (new_key != NULL) {
-                       /* remove old */
-                       config_node_set_str(mainconfig, parent,
-                                           node->key, NULL);
-               }
-               config_changed = TRUE;
-               g_free(new_value);
-       }
        return new_key != NULL;
 }
 
@@ -536,7 +506,7 @@ void settings_check_module(const char *module)
        if (node == NULL) return;
 
         errors = g_string_new(NULL);
-       g_string_sprintf(errors, "Unknown settings in configuration "
+       g_string_printf(errors, "Unknown settings in configuration "
                         "file for module %s:", module);
 
         count = 0;
@@ -551,7 +521,7 @@ void settings_check_module(const char *module)
                        continue;
 
                if (set == NULL || strcmp(set->module, module) != 0) {
-                       g_string_sprintfa(errors, " %s", node->key);
+                       g_string_append_printf(errors, " %s", node->key);
                         count++;
                }
        }
@@ -578,7 +548,10 @@ void settings_check_module(const char *module)
 
 static int settings_compare(SETTINGS_REC *v1, SETTINGS_REC *v2)
 {
-       return strcmp(v1->section, v2->section);
+       int cmp = strcmp(v1->section, v2->section);
+       if (!cmp)
+               cmp = strcmp(v1->key, v2->key);
+       return cmp;
 }
 
 static void settings_hash_get(const char *key, SETTINGS_REC *rec,
index 8a712dcebf778c93985244525d8c4a828d2f7e9e..f8d9f68fc51a1dcdbfc3e44677927e0872826bee 100644 (file)
@@ -45,7 +45,7 @@ typedef struct {
 #define iconfig_node_clear(a) config_node_clear(mainconfig, a)
 #define iconfig_node_add_list(a, b) config_node_add_list(mainconfig, a, b)
 
-extern CONFIG_REC *mainconfig;
+extern struct _CONFIG_REC *mainconfig;
 extern const char *default_config;
 
 /* Functions for handling the "settings" node of Irssi configuration */
@@ -55,6 +55,7 @@ int settings_get_bool(const char *key);
 int settings_get_time(const char *key); /* as milliseconds */
 int settings_get_level(const char *key);
 int settings_get_size(const char *key); /* as bytes */
+char *settings_get_print(SETTINGS_REC *rec);
 
 /* Functions to add/remove settings */
 void settings_add_str_module(const char *module, const char *section,
index 316424522f7f49e9efe122584f591729586b3ce6..1f425ba40eff1af2ada0a2817622dfd077ccb10c 100644 (file)
@@ -13,9 +13,9 @@
     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     GNU General Public License for more details.
 
-    You should have received a copy of the GNU General Public License
-    along with this program; if not, write to the Free Software
-    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+    You should have received a copy of the GNU General Public License along
+    with this program; if not, write to the Free Software Foundation, Inc.,
+    51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 */
 
 #include "module.h"
index 6906664207a379b318849441bba558dfda383826..4dcc3d2fdd1c6ac2a6839f94c5840d83f933535b 100644 (file)
@@ -13,9 +13,9 @@
     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     GNU General Public License for more details.
 
-    You should have received a copy of the GNU General Public License
-    along with this program; if not, write to the Free Software
-    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+    You should have received a copy of the GNU General Public License along
+    with this program; if not, write to the Free Software Foundation, Inc.,
+    51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 */
 
 #include "module.h"
@@ -87,27 +87,12 @@ static char *get_argument(char **cmd, char **arglist)
        return ret;
 }
 
-static char *get_internal_setting(const char *key, int type, int *free_ret)
-{
-       switch (type) {
-       case SETTING_TYPE_BOOLEAN:
-               return settings_get_bool(key) ? "yes" : "no";
-       case SETTING_TYPE_INT:
-               *free_ret = TRUE;
-               return g_strdup_printf("%d", settings_get_int(key));
-       case SETTING_TYPE_STRING:
-               return (char *) settings_get_str(key);
-       }
-
-       return NULL;
-}
-
 static char *get_long_variable_value(const char *key, SERVER_REC *server,
                                     void *item, int *free_ret)
 {
        EXPANDO_FUNC func;
        const char *ret;
-       int type;
+       SETTINGS_REC *rec;
 
        *free_ret = FALSE;
 
@@ -119,9 +104,11 @@ static char *get_long_variable_value(const char *key, SERVER_REC *server,
        }
 
        /* internal setting? */
-       type = settings_get_type(key);
-       if (type != -1)
-               return get_internal_setting(key, type, free_ret);
+       rec = settings_get_record(key);
+       if (rec != NULL) {
+               *free_ret = TRUE;
+               return settings_get_print(rec);
+       }
 
        /* environment variable? */
        ret = g_getenv(key);
@@ -365,8 +352,8 @@ char *parse_special(char **cmd, SERVER_REC *server, void *item,
        static char **nested_orig_cmd = NULL; /* FIXME: KLUDGE! */
        char command, *value;
 
-       char align_pad;
-       int align, align_flags;
+       char align_pad = '\0';
+       int align = 0, align_flags = 0;
 
        char *nest_value;
        int brackets, nest_free;
@@ -464,7 +451,7 @@ char *parse_special(char **cmd, SERVER_REC *server, void *item,
 static void gstring_append_escaped(GString *str, const char *text, int flags)
 {
        char esc[4], *escpos;
-       
+
        escpos = esc;
        if (flags & PARSE_FLAG_ESCAPE_VARS)
                *escpos++ = '%';
@@ -478,7 +465,7 @@ static void gstring_append_escaped(GString *str, const char *text, int flags)
                return;
        }
 
-       *escpos = '\0'; 
+       *escpos = '\0';
        while (*text != '\0') {
                for (escpos = esc; *escpos != '\0'; escpos++) {
                        if (*text == *escpos) {
index eec306ae1350b63abb3f6eabde0141e6f99e1b76..6f6eef8abb471b690f5f17106d1021d70611952d 100644 (file)
@@ -13,9 +13,9 @@
     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     GNU General Public License for more details.
 
-    You should have received a copy of the GNU General Public License
-    along with this program; if not, write to the Free Software
-    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+    You should have received a copy of the GNU General Public License along
+    with this program; if not, write to the Free Software Foundation, Inc.,
+    51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 */
 
 #include "module.h"
index 4860da14a32c2ea01fe1e57aa5e81efc1c59064e..136e3524b2fbdad2b3139e69fdb680794bfaa720 100644 (file)
@@ -9,7 +9,6 @@ INCLUDES += \
        -DTHEMESDIR=\""$(silc_etcdir)"\"
 
 libfe_common_core_a_SOURCES = \
-       autorun.c \
        chat-completion.c \
        command-history.c \
        completion.c \
@@ -28,6 +27,7 @@ libfe_common_core_a_SOURCES = \
        fe-server.c \
        fe-settings.c \
        utf8.c \
+       wcwidth.c \
        formats.c \
        hilight-text.c \
        keyboard.c \
@@ -35,7 +35,6 @@ libfe_common_core_a_SOURCES = \
        printtext.c \
        fe-recode.c \
        themes.c \
-       translation.c \
        window-activity.c \
        window-commands.c \
        window-items.c \
@@ -43,7 +42,6 @@ libfe_common_core_a_SOURCES = \
        fe-windows.c
 
 noinst_HEADERS = \
-       autorun.h \
        command-history.h \
        chat-completion.h \
        completion.h \
@@ -53,7 +51,6 @@ noinst_HEADERS = \
        fe-exec.h \
        fe-messages.h \
        fe-queries.h \
-       utf8.h \
        formats.h \
        hilight-text.h \
        keyboard.h \
@@ -62,8 +59,8 @@ noinst_HEADERS = \
        printtext.h \
        fe-recode.h \
        themes.h \
-       translation.h \
        window-activity.h \
        window-items.h \
        windows-layout.h \
-       fe-windows.h
+       fe-windows.h \
+       utf8.h
diff --git a/apps/irssi/src/fe-common/core/autorun.c b/apps/irssi/src/fe-common/core/autorun.c
deleted file mode 100644 (file)
index 77513a0..0000000
+++ /dev/null
@@ -1,56 +0,0 @@
-/*
- autorun.c : irssi
-
-    Copyright (C) 1999-2001 Timo Sirainen
-
-    This program is free software; you can redistribute it and/or modify
-    it under the terms of the GNU General Public License as published by
-    the Free Software Foundation; either version 2 of the License, or
-    (at your option) any later version.
-
-    This program is distributed in the hope that it will be useful,
-    but WITHOUT ANY WARRANTY; without even the implied warranty of
-    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-    GNU General Public License for more details.
-
-    You should have received a copy of the GNU General Public License
-    along with this program; if not, write to the Free Software
-    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
-*/
-
-#include "module.h"
-#include "signals.h"
-#include "line-split.h"
-#include "special-vars.h"
-
-#include "fe-windows.h"
-
-void autorun_startup(void)
-{
-       char tmpbuf[1024], *str, *path;
-       LINEBUF_REC *buffer = NULL;
-       int f, ret, recvlen;
-
-       /* open ~/.irssi/startup and run all commands in it */
-       path = g_strdup_printf("%s/startup", get_irssi_dir());
-       f = open(path, O_RDONLY);
-       g_free(path);
-       if (f == -1) {
-               /* file not found */
-               return;
-       }
-
-       do {
-               recvlen = read(f, tmpbuf, sizeof(tmpbuf));
-
-               ret = line_split(tmpbuf, recvlen, &str, &buffer);
-               if (ret > 0 && *str != '#') {
-                       eval_special_string(str, "",
-                                           active_win->active_server,
-                                           active_win->active);
-               }
-       } while (ret > 0);
-       line_split_free(buffer);
-
-       close(f);
-}
diff --git a/apps/irssi/src/fe-common/core/autorun.h b/apps/irssi/src/fe-common/core/autorun.h
deleted file mode 100644 (file)
index 59d8e84..0000000
+++ /dev/null
@@ -1,6 +0,0 @@
-#ifndef __AUTORUN_H
-#define __AUTORUN_H
-
-void autorun_startup(void);
-
-#endif
index dea7360568443d35ead76320055bfa361428f680..a25f63c6e6391c38cd76c36b3b2578bd5baa2a76 100644 (file)
@@ -13,9 +13,9 @@
     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     GNU General Public License for more details.
 
-    You should have received a copy of the GNU General Public License
-    along with this program; if not, write to the Free Software
-    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+    You should have received a copy of the GNU General Public License along
+    with this program; if not, write to the Free Software Foundation, Inc.,
+    51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 */
 
 #include "module.h"
@@ -355,7 +355,7 @@ static void complete_from_nicklist(GList **outlist, CHANNEL_REC *channel,
                if (g_strncasecmp(rec->nick, nick, len) == 0 &&
                    glist_find_icase_string(*outlist, rec->nick) == NULL) {
                        str = g_strconcat(rec->nick, suffix, NULL);
-                       if (completion_lowercase) g_strdown(str);
+                       if (completion_lowercase) ascii_strdown(str);
                        if (rec->own)
                                ownlist = g_list_append(ownlist, str);
                         else
@@ -407,7 +407,7 @@ static GList *completion_nicks_nonstrict(CHANNEL_REC *channel,
                if (g_strncasecmp(str, nick, len) == 0) {
                        tnick = g_strconcat(rec->nick, suffix, NULL);
                        if (completion_lowercase)
-                               g_strdown(tnick);
+                               ascii_strdown(tnick);
 
                        if (glist_find_icase_string(list, tnick) == NULL)
                                list = g_list_append(list, tnick);
@@ -451,7 +451,7 @@ static GList *completion_channel_nicks(CHANNEL_REC *channel, const char *nick,
                    rec != channel->ownnick) {
                        str = g_strconcat(rec->nick, suffix, NULL);
                        if (completion_lowercase)
-                               g_strdown(str);
+                               ascii_strdown(str);
                         if (glist_find_icase_string(list, str) == NULL)
                                list = g_list_append(list, str);
                        else
@@ -579,14 +579,11 @@ GList *completion_get_aliases(const char *word)
 }
 
 static void complete_window_nicks(GList **list, WINDOW_REC *window,
-                                  const char *word, const char *linestart)
+                                  const char *word, const char *nicksuffix)
 {
         CHANNEL_REC *channel;
         GList *tmplist;
         GSList *tmp;
-        const char *nicksuffix;
-
-        nicksuffix = *linestart != '\0' ? NULL : completion_char;
 
         channel = CHANNEL(window->active);
 
@@ -635,6 +632,7 @@ static void sig_complete_word(GList **list, WINDOW_REC *window,
        if (server != NULL && server_ischannel(server, word)) {
                /* probably completing a channel name */
                *list = completion_get_channels(window->active_server, word);
+               if (*list != NULL) signal_stop();
                 return;
        }
 
@@ -663,7 +661,8 @@ static void sig_complete_word(GList **list, WINDOW_REC *window,
        } else if (channel != NULL) {
                /* nick completion .. we could also be completing a nick
                   after /MSG from nicks in channel */
-               complete_window_nicks(list, window, word, linestart);
+               const char *suffix = *linestart != '\0' ? NULL : completion_char;
+               complete_window_nicks(list, window, word, suffix);
        } else if (window->level & MSGLEVEL_MSGS) {
                /* msgs window, complete /MSG nicks */
                 *list = g_list_concat(completion_msg(server, NULL, word, NULL), *list);
@@ -707,6 +706,8 @@ static void sig_complete_msg(GList **list, WINDOW_REC *window,
 
        msgserver = line_get_server(line);
        *list = completion_msg(server, msgserver, word, NULL);
+       if (CHANNEL(window->active) != NULL)
+               complete_window_nicks(list, window, word, NULL);
        if (*list != NULL) signal_stop();
 }
 
@@ -910,6 +911,33 @@ static void sig_complete_alias(GList **list, WINDOW_REC *window,
        }
 }
 
+static void sig_complete_window(GList **list, WINDOW_REC *window,
+                               const char *word, const char *linestart,
+                               int *want_space)
+{
+       WINDOW_REC *win;
+       WI_ITEM_REC *item;
+       GSList *tmp;
+       int len;
+
+       g_return_if_fail(list != NULL);
+       g_return_if_fail(word != NULL);
+
+       len = strlen(word);
+
+       for (tmp = windows; tmp != NULL; tmp = tmp->next) {
+               win = tmp->data;
+               item = win->active;
+
+               if (win->name != NULL && g_strncasecmp(win->name, word, len) == 0)
+                       *list = g_list_append(*list, g_strdup(win->name));
+               if (item != NULL && g_strncasecmp(item->visible_name, word, len) == 0)
+                       *list = g_list_append(*list, g_strdup(item->visible_name));
+       }
+
+       if (*list != NULL) signal_stop();
+}
+
 static void sig_complete_channel(GList **list, WINDOW_REC *window,
                                 const char *word, const char *line,
                                 int *want_space)
@@ -1132,10 +1160,12 @@ void chat_completion_init(void)
        signal_add("complete command server", (SIGNAL_FUNC) sig_complete_connect);
        signal_add("complete command disconnect", (SIGNAL_FUNC) sig_complete_tag);
        signal_add("complete command reconnect", (SIGNAL_FUNC) sig_complete_tag);
+       signal_add("complete command window server", (SIGNAL_FUNC) sig_complete_tag);
        signal_add("complete command topic", (SIGNAL_FUNC) sig_complete_topic);
        signal_add("complete command away", (SIGNAL_FUNC) sig_complete_away);
        signal_add("complete command unalias", (SIGNAL_FUNC) sig_complete_unalias);
        signal_add("complete command alias", (SIGNAL_FUNC) sig_complete_alias);
+       signal_add("complete command window goto", (SIGNAL_FUNC) sig_complete_window);
        signal_add("complete command window item move", (SIGNAL_FUNC) sig_complete_channel);
        signal_add("complete command server add", (SIGNAL_FUNC) sig_complete_server);
        signal_add("complete command server remove", (SIGNAL_FUNC) sig_complete_server);
@@ -1169,10 +1199,12 @@ void chat_completion_deinit(void)
        signal_remove("complete command server", (SIGNAL_FUNC) sig_complete_connect);
        signal_remove("complete command disconnect", (SIGNAL_FUNC) sig_complete_tag);
        signal_remove("complete command reconnect", (SIGNAL_FUNC) sig_complete_tag);
+       signal_remove("complete command window server", (SIGNAL_FUNC) sig_complete_tag);
        signal_remove("complete command topic", (SIGNAL_FUNC) sig_complete_topic);
        signal_remove("complete command away", (SIGNAL_FUNC) sig_complete_away);
        signal_remove("complete command unalias", (SIGNAL_FUNC) sig_complete_unalias);
        signal_remove("complete command alias", (SIGNAL_FUNC) sig_complete_alias);
+       signal_remove("complete command window goto", (SIGNAL_FUNC) sig_complete_window);
        signal_remove("complete command window item move", (SIGNAL_FUNC) sig_complete_channel);
        signal_remove("complete command server add", (SIGNAL_FUNC) sig_complete_server);
        signal_remove("complete command server remove", (SIGNAL_FUNC) sig_complete_server);
index 70f68594296dc6faf28a7a034454459658d1ab67..9ca0eca60fb5f7f96b02ecab97bb24112865fdab 100644 (file)
@@ -13,9 +13,9 @@
     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     GNU General Public License for more details.
 
-    You should have received a copy of the GNU General Public License
-    along with this program; if not, write to the Free Software
-    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+    You should have received a copy of the GNU General Public License along
+    with this program; if not, write to the Free Software Foundation, Inc.,
+    51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 */
 
 #include "module.h"
index 2ca312e19f6016f6f244cd3d0998d40893d7c95f..7b76246b0eb340e3bcda84e985a3b5efab683106 100644 (file)
@@ -20,7 +20,7 @@ HISTORY_REC *command_history_current(WINDOW_REC *window);
 void command_history_init(void);
 void command_history_deinit(void);
 
-void command_history_add(HISTORY_REC *window, const char *text);
+void command_history_add(HISTORY_REC *history, const char *text);
 
 const char *command_history_prev(WINDOW_REC *window, const char *text);
 const char *command_history_next(WINDOW_REC *window, const char *text);
index be8b76c5ccb7bb04dffe3e4071ec4d4315546892..91115e6169c69eb92eb8f8285a933469708ebe86 100644 (file)
@@ -13,9 +13,9 @@
     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     GNU General Public License for more details.
 
-    You should have received a copy of the GNU General Public License
-    along with this program; if not, write to the Free Software
-    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+    You should have received a copy of the GNU General Public License along
+    with this program; if not, write to the Free Software Foundation, Inc.,
+    51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 */
 
 #include "module.h"
@@ -62,7 +62,7 @@ static const char *completion_find(const char *key, int automatic)
 }
 
 /* Return whole word at specified position in string */
-char *get_word_at(const char *str, int pos, char **startpos)
+static char *get_word_at(const char *str, int pos, char **startpos)
 {
        const char *start, *end;
 
@@ -128,7 +128,7 @@ static void free_completions(void)
 }
 
 /* manual word completion - called when TAB is pressed */
-char *word_complete(WINDOW_REC *window, const char *line, int *pos, int erase)
+char *word_complete(WINDOW_REC *window, const char *line, int *pos, int erase, int backward)
 {
        static int startpos = 0, wordlen = 0;
         int old_startpos, old_wordlen;
@@ -143,6 +143,9 @@ char *word_complete(WINDOW_REC *window, const char *line, int *pos, int erase)
        continue_complete = complist != NULL && *pos == last_line_pos &&
                strcmp(line, last_line) == 0;
 
+       if (erase && !continue_complete)
+               return NULL;
+
        old_startpos = startpos;
        old_wordlen = wordlen;
 
@@ -193,20 +196,19 @@ char *word_complete(WINDOW_REC *window, const char *line, int *pos, int erase)
        if (erase) {
                signal_emit("complete erase", 3, window, word, linestart);
 
-               if (!continue_complete)
-                        return NULL;
-
                 /* jump to next completion */
-               word = NULL;
-               linestart = NULL;
                 startpos = old_startpos;
                wordlen = old_wordlen;
        }
 
        if (continue_complete) {
                /* complete from old list */
-               complist = complist->next != NULL ? complist->next :
-                       g_list_first(complist);
+               if (backward)
+                       complist = complist->prev != NULL ? complist->prev :
+                               g_list_last(complist);
+               else
+                       complist = complist->next != NULL ? complist->next :
+                               g_list_first(complist);
                want_space = last_want_space;
        } else {
                /* get new completion list */
@@ -255,7 +257,7 @@ char *word_complete(WINDOW_REC *window, const char *line, int *pos, int erase)
        ((!g_path_is_absolute(path) || IS_CURRENT_DIR(path)) && \
         default_path != NULL)
 
-GList *list_add_file(GList *list, const char *name, const char *default_path)
+static GList *list_add_file(GList *list, const char *name, const char *default_path)
 {
        struct stat statbuf;
        char *fname;
@@ -299,7 +301,7 @@ GList *filename_complete(const char *path, const char *default_path)
        }
 
        /* open directory for reading */
-       dir = g_dirname(realpath);
+       dir = g_path_get_dirname(realpath);
        dirp = opendir(dir);
        g_free(dir);
         g_free(realpath);
@@ -307,7 +309,7 @@ GList *filename_complete(const char *path, const char *default_path)
        if (dirp == NULL)
                return NULL;
 
-       dir = g_dirname(path);
+       dir = g_path_get_dirname(path);
        if (*dir == G_DIR_SEPARATOR && dir[1] == '\0') {
                 /* completing file in root directory */
                *dir = '\0';
@@ -344,7 +346,7 @@ GList *filename_complete(const char *path, const char *default_path)
         return list;
 }
 
-static GList *completion_get_settings(const char *key)
+static GList *completion_get_settings(const char *key, SettingType type)
 {
        GList *complist;
        GSList *tmp, *sets;
@@ -359,29 +361,7 @@ static GList *completion_get_settings(const char *key)
        for (tmp = sets; tmp != NULL; tmp = tmp->next) {
                SETTINGS_REC *rec = tmp->data;
 
-               if (g_strncasecmp(rec->key, key, len) == 0)
-                       complist = g_list_insert_sorted(complist, g_strdup(rec->key), (GCompareFunc) g_istr_cmp);
-       }
-       g_slist_free(sets);
-       return complist;
-}
-
-static GList *completion_get_bool_settings(const char *key)
-{
-       GList *complist;
-       GSList *tmp, *sets;
-       int len;
-
-       g_return_val_if_fail(key != NULL, NULL);
-
-       sets = settings_get_sorted();
-
-       len = strlen(key);
-       complist = NULL;
-       for (tmp = sets; tmp != NULL; tmp = tmp->next) {
-               SETTINGS_REC *rec = tmp->data;
-
-               if (rec->type == SETTING_TYPE_BOOLEAN &&
+               if ((type == -1 || rec->type == type) &&
                    g_strncasecmp(rec->key, key, len) == 0)
                        complist = g_list_insert_sorted(complist, g_strdup(rec->key), (GCompareFunc) g_istr_cmp);
        }
@@ -485,7 +465,7 @@ static GList *completion_get_subcommands(const char *cmd)
        return complist;
 }
 
-GList *completion_get_options(const char *cmd, const char *option)
+static GList *completion_get_options(const char *cmd, const char *option)
 {
        COMMAND_REC *rec;
        GList *list;
@@ -553,7 +533,7 @@ static char *line_get_command(const char *line, char **args, int aliases)
        } while (ptr != NULL);
 
         if (cmd != NULL)
-               g_strdown(cmd);
+               ascii_strdown(cmd);
        return cmd;
 }
 
@@ -636,6 +616,7 @@ static void sig_complete_word(GList **list, WINDOW_REC *window,
        /* we're completing -option? */
        if (*word == '-') {
                *list = completion_get_options(cmd, word+1);
+               if (*list != NULL) signal_stop();
                g_free(cmd);
                g_free(line);
                return;
@@ -650,13 +631,11 @@ static void sig_complete_word(GList **list, WINDOW_REC *window,
                g_free(cmd);
                cmd = g_strconcat(line, " ", word, NULL);
                *list = g_list_concat(completion_get_subcommands(cmd), *list);
-
-               if (*list != NULL) signal_stop();
        }
 
+       if (*list != NULL) signal_stop();
        g_free(signal);
        g_free(cmd);
-
        g_free(line);
 }
 
@@ -700,9 +679,18 @@ static void sig_complete_set(GList **list, WINDOW_REC *window,
        g_return_if_fail(word != NULL);
        g_return_if_fail(line != NULL);
 
-       if (*line != '\0') return;
+       if (*line == '\0' ||
+           !strcmp("-clear", line) || !strcmp("-default", line))
+               *list = completion_get_settings(word, -1);
+       else if (*line != '\0' && *word == '\0') {
+               SETTINGS_REC *rec = settings_get_record(line);
+               if (rec != NULL) {
+                       char *value = settings_get_print(rec);
+                       if (value != NULL)
+                               *list = g_list_append(*list, value);
+               }
+       }
 
-       *list = completion_get_settings(word);
        if (*list != NULL) signal_stop();
 }
 
@@ -715,7 +703,7 @@ static void sig_complete_toggle(GList **list, WINDOW_REC *window,
 
        if (*line != '\0') return;
 
-       *list = completion_get_bool_settings(word);
+       *list = completion_get_settings(word, SETTING_TYPE_BOOLEAN);
        if (*list != NULL) signal_stop();
 }
 
index 9a8b32cbd6c8af4478c89e6fc8ec77bd2df079a2..5c1e695832e7e51662d1a582f5514bb9ad17f5c5 100644 (file)
@@ -8,7 +8,7 @@ char *auto_word_complete(const char *line, int *pos);
 /* manual word completion - called when TAB is pressed. if erase is TRUE,
    the word is removed from completion list entirely (if possible) and
    next completion is used */
-char *word_complete(WINDOW_REC *window, const char *line, int *pos, int erase);
+char *word_complete(WINDOW_REC *window, const char *line, int *pos, int erase, int backward);
 
 GList *filename_complete(const char *path, const char *default_path);
 
index 6579e8b237985458af4051b245cfc1aa51952cb9..75147fdbcc588abc1b75dd1f77e177b1f9599599 100644 (file)
@@ -13,9 +13,9 @@
     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     GNU General Public License for more details.
 
-    You should have received a copy of the GNU General Public License
-    along with this program; if not, write to the Free Software
-    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+    You should have received a copy of the GNU General Public License along
+    with this program; if not, write to the Free Software Foundation, Inc.,
+    51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 */
 
 #include "module.h"
@@ -110,47 +110,31 @@ static void sig_channel_joined(CHANNEL_REC *channel)
                fe_channels_nicklist(channel, CHANNEL_NICKLIST_FLAG_ALL);
 }
 
-static void cmd_wjoin_pre(const char *data, SERVER_REC *server)
-{
-       GHashTable *optlist;
-       char *nick;
-       void *free_arg;
-
-       if (!cmd_get_params(data, &free_arg, 1 | PARAM_FLAG_OPTIONS |
-                           PARAM_FLAG_UNKNOWN_OPTIONS | PARAM_FLAG_GETREST,
-                           "join", &optlist, &nick))
-                return;
-
-       /* kludge for /join -invite -window if there is no invite */
-       if (g_hash_table_lookup(optlist, "invite") &&
-            server != NULL && server->last_invite == NULL) {
-               cmd_params_free(free_arg);
-               return;
-        }                    
-       if (g_hash_table_lookup(optlist, "window") != NULL) {
-               signal_add("channel created",
-                          (SIGNAL_FUNC) signal_channel_created_curwin);
-        }
-       cmd_params_free(free_arg);
-}
-
+/* SYNTAX: JOIN [-window] [-invite] [-<server tag>] <channels> [<keys>] */
 static void cmd_join(const char *data, SERVER_REC *server)
 {
        WINDOW_REC *window;
         CHANNEL_REC *channel;
        GHashTable *optlist;
-       char *channelname;
+       char *pdata;
+       int invite;
+       int samewindow;
        void *free_arg;
 
        if (!cmd_get_params(data, &free_arg, 1 | PARAM_FLAG_OPTIONS |
-                           PARAM_FLAG_UNKNOWN_OPTIONS,
-                           "join", &optlist, &channelname))
+                           PARAM_FLAG_UNKNOWN_OPTIONS | PARAM_FLAG_GETREST,
+                           "join", &optlist, &pdata))
                return;
 
+       invite = g_hash_table_lookup(optlist, "invite") != NULL;
+       samewindow = g_hash_table_lookup(optlist, "window") != NULL;
+       if (!invite && *pdata == '\0')
+               cmd_param_error(CMDERR_NOT_ENOUGH_PARAMS);
+
        /* -<server tag> */
        server = cmd_options_get_server("join", optlist, server);
-       
-       channel = channel_find(server, channelname);
+
+       channel = channel_find(server, pdata);
        if (channel != NULL) {
                /* already joined to channel, set it active */
                window = window_item_window(channel);
@@ -159,23 +143,25 @@ static void cmd_join(const char *data, SERVER_REC *server)
 
                window_item_set_active(active_win, (WI_ITEM_REC *) channel);
        }
-       cmd_params_free(free_arg);
-}
-
-static void cmd_wjoin_post(const char *data)
-{
-       GHashTable *optlist;
-       char *nick;
-       void *free_arg;
-
-       if (!cmd_get_params(data, &free_arg, 1 | PARAM_FLAG_OPTIONS |
-                           PARAM_FLAG_UNKNOWN_OPTIONS | PARAM_FLAG_GETREST,
-                           "join", &optlist, &nick))
-               return;
-
-       if (g_hash_table_lookup(optlist, "window") != NULL) {
-               signal_remove("channel created",
-                          (SIGNAL_FUNC) signal_channel_created_curwin);
+       else {
+               if (server == NULL || !server->connected)
+                       cmd_param_error(CMDERR_NOT_CONNECTED);
+               if (invite) {
+                       if (server->last_invite == NULL) {
+                               printformat(NULL, NULL, MSGLEVEL_CLIENTNOTICE, TXT_NOT_INVITED);
+                               signal_stop();
+                               cmd_params_free(free_arg);
+                               return;
+                       }
+                       pdata = server->last_invite;
+               }
+               if (samewindow)
+                       signal_add("channel created",
+                                  (SIGNAL_FUNC) signal_channel_created_curwin);
+               server->channels_join(server, pdata, FALSE);
+               if (samewindow)
+                       signal_remove("channel created",
+                                     (SIGNAL_FUNC) signal_channel_created_curwin);
        }
        cmd_params_free(free_arg);
 }
@@ -207,7 +193,7 @@ static void cmd_channel_list_joined(void)
                for (ntmp = nicklist; ntmp != NULL; ntmp = ntmp->next) {
                        NICK_REC *rec = ntmp->data;
 
-                       g_string_sprintfa(nicks, "%s ", rec->nick);
+                       g_string_append_printf(nicks, "%s ", rec->nick);
                }
 
                if (nicks->len > 1) g_string_truncate(nicks, nicks->len-1);
@@ -235,9 +221,9 @@ static void cmd_channel_list(void)
                if (rec->autojoin)
                        g_string_append(str, "autojoin, ");
                if (rec->botmasks != NULL && *rec->botmasks != '\0')
-                       g_string_sprintfa(str, "bots: %s, ", rec->botmasks);
+                       g_string_append_printf(str, "bots: %s, ", rec->botmasks);
                if (rec->autosendcmd != NULL && *rec->autosendcmd != '\0')
-                       g_string_sprintfa(str, "botcmd: %s, ", rec->autosendcmd);
+                       g_string_append_printf(str, "botcmd: %s, ", rec->autosendcmd);
 
                if (str->len > 2) g_string_truncate(str, str->len-2);
                printformat(NULL, NULL, MSGLEVEL_CLIENTCRAP, TXT_CHANSETUP_LINE,
@@ -413,14 +399,8 @@ static void display_sorted_nicks(CHANNEL_REC *channel, GSList *nicklist)
        for (tmp = nicklist; tmp != NULL; tmp = tmp->next) {
                NICK_REC *rec = tmp->data;
 
-               if (rec->other)
-                       nickmode[0] = rec->other;
-               else if (rec->op)
-                       nickmode[0] = '@';
-               else if (rec->halfop)
-                       nickmode[0] = '%';
-               else if (rec->voice)
-                       nickmode[0] = '+';
+               if (rec->prefixes[0])
+                       nickmode[0] = rec->prefixes[0];
                else
                        nickmode[0] = ' ';
                
@@ -508,12 +488,7 @@ void fe_channels_nicklist(CHANNEL_REC *channel, int flags)
        g_slist_free(nicklist);
 
        /* sort the nicklist */
-#if GLIB_MAJOR_VERSION < 2
-       /* glib1 doesn't have g_slist_sort_with_data, so non-standard prefixes won't be sorted correctly */
-       sorted = g_slist_sort(sorted, (GCompareFunc)nicklist_compare_glib1);
-#else
        sorted = g_slist_sort_with_data(sorted, (GCompareDataFunc) nicklist_compare, (void *)nick_flags);
-#endif
 
        /* display the nicks */
         if ((flags & CHANNEL_NICKLIST_FLAG_COUNT) == 0) {
@@ -575,7 +550,7 @@ static void cmd_names(const char *data, SERVER_REC *server, WI_ITEM_REC *item)
        for (tmp = channels; *tmp != NULL; tmp++) {
                chanrec = channel_find(server, *tmp);
                if (chanrec == NULL)
-                       g_string_sprintfa(unknowns, "%s,", *tmp);
+                       g_string_append_printf(unknowns, "%s,", *tmp);
                else {
                        fe_channels_nicklist(chanrec, flags);
                        signal_stop();
@@ -643,9 +618,7 @@ void fe_channels_init(void)
        signal_add_last("server disconnected", (SIGNAL_FUNC) sig_disconnected);
        signal_add_last("channel joined", (SIGNAL_FUNC) sig_channel_joined);
 
-       command_bind_first("join", NULL, (SIGNAL_FUNC) cmd_wjoin_pre);
        command_bind("join", NULL, (SIGNAL_FUNC) cmd_join);
-       command_bind_last("join", NULL, (SIGNAL_FUNC) cmd_wjoin_post);
        command_bind("channel", NULL, (SIGNAL_FUNC) cmd_channel);
        command_bind("channel add", NULL, (SIGNAL_FUNC) cmd_channel_add);
        command_bind("channel remove", NULL, (SIGNAL_FUNC) cmd_channel_remove);
@@ -655,7 +628,7 @@ void fe_channels_init(void)
 
        command_set_options("channel add", "auto noauto -bots -botcmd");
        command_set_options("names", "count ops halfops voices normal");
-       command_set_options("join", "window");
+       command_set_options("join", "invite window");
 }
 
 void fe_channels_deinit(void)
@@ -666,9 +639,7 @@ void fe_channels_deinit(void)
        signal_remove("server disconnected", (SIGNAL_FUNC) sig_disconnected);
        signal_remove("channel joined", (SIGNAL_FUNC) sig_channel_joined);
 
-       command_unbind("join", (SIGNAL_FUNC) cmd_wjoin_pre);
        command_unbind("join", (SIGNAL_FUNC) cmd_join);
-       command_unbind("join", (SIGNAL_FUNC) cmd_wjoin_post);
        command_unbind("channel", (SIGNAL_FUNC) cmd_channel);
        command_unbind("channel add", (SIGNAL_FUNC) cmd_channel_add);
        command_unbind("channel remove", (SIGNAL_FUNC) cmd_channel_remove);
index be42812f96f4550a0fca7cd264dd63579a4e7e0d..dce6890ea398e702496514ceb8c115da0c6eba90 100644 (file)
@@ -13,9 +13,9 @@
     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     GNU General Public License for more details.
 
-    You should have received a copy of the GNU General Public License
-    along with this program; if not, write to the Free Software
-    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+    You should have received a copy of the GNU General Public License along
+    with this program; if not, write to the Free Software Foundation, Inc.,
+    51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 */
 
 #include "module.h"
 #include "misc.h"
 #include "levels.h"
 #include "settings.h"
-#include "irssi-version.h"
-#ifdef HAVE_NL_LANGINFO
-#  include <langinfo.h>
-#endif
 
 #include "servers.h"
 #include "channels.h"
 #include "servers-setup.h"
-#include "recode.h"
 
-#include "autorun.h"
+#include "special-vars.h"
 #include "fe-core-commands.h"
 #include "fe-queries.h"
 #include "hilight-text.h"
@@ -44,7 +39,6 @@
 #include "printtext.h"
 #include "formats.h"
 #include "themes.h"
-#include "translation.h"
 #include "fe-channels.h"
 #include "fe-windows.h"
 #include "window-activity.h"
@@ -99,13 +93,6 @@ void window_commands_deinit(void);
 
 static void sig_setup_changed(void);
 
-static void print_version(void)
-{
-       printf(PACKAGE" " IRSSI_VERSION" (%d %04d)\n",
-              IRSSI_VERSION_DATE, IRSSI_VERSION_TIME);
-        exit(0);
-}
-
 static void sig_connected(SERVER_REC *server)
 {
        MODULE_DATA_SET(server, g_new0(MODULE_SERVER_REC, 1));
@@ -131,24 +118,16 @@ static void sig_channel_destroyed(CHANNEL_REC *channel)
        MODULE_DATA_UNSET(channel);
 }
 
-void fe_common_core_init(void)
+void fe_common_core_register_options(void)
 {
-       static struct poptOption version_options[] = {
-               { NULL, '\0', POPT_ARG_CALLBACK, (void *)&print_version, '\0', NULL },
-               { "version", 'v', POPT_ARG_NONE, NULL, 0, "Display irssi version" },
-               { NULL, '\0', 0, NULL }
-       };
-
-       static struct poptOption options[] = {
-               { NULL, '\0', POPT_ARG_INCLUDE_TABLE, version_options, 0, NULL, NULL },
-               POPT_AUTOHELP
-               { "connect", 'c', POPT_ARG_STRING, &autocon_server, 0, "Automatically connect to server/network", "SERVER" },
-               { "password", 'w', POPT_ARG_STRING, &autocon_password, 0, "Autoconnect password", "PASSWORD" },
-               { "port", 'p', POPT_ARG_INT, &autocon_port, 0, "Autoconnect port", "PORT" },
-               { "noconnect", '!', POPT_ARG_NONE, &no_autoconnect, 0, "Disable autoconnecting", NULL },
-               { "nick", 'n', POPT_ARG_STRING, &cmdline_nick, 0, "Specify nick to use", NULL },
-               { "hostname", 'h', POPT_ARG_STRING, &cmdline_hostname, 0, "Specify host name to use", NULL },
-               { NULL, '\0', 0, NULL }
+       static GOptionEntry options[] = {
+               { "connect", 'c', 0, G_OPTION_ARG_STRING, &autocon_server, "Automatically connect to server/network", "SERVER" },
+               { "password", 'w', 0, G_OPTION_ARG_STRING, &autocon_password, "Autoconnect password", "PASSWORD" },
+               { "port", 'p', 0, G_OPTION_ARG_INT, &autocon_port, "Autoconnect port", "PORT" },
+               { "noconnect", '!', 0, G_OPTION_ARG_NONE, &no_autoconnect, "Disable autoconnecting", NULL },
+               { "nick", 'n', 0, G_OPTION_ARG_STRING, &cmdline_nick, "Specify nick to use", NULL },
+               { "hostname", 'h', 0, G_OPTION_ARG_STRING, &cmdline_hostname, "Specify host name to use", NULL },
+               { NULL }
        };
 
        autocon_server = NULL;
@@ -158,6 +137,11 @@ void fe_common_core_init(void)
        cmdline_nick = NULL;
        cmdline_hostname = NULL;
        args_register(options);
+}
+
+void fe_common_core_init(void)
+{
+       const char *str;
 
        settings_add_bool("lookandfeel", "timestamps", TRUE);
        settings_add_level("lookandfeel", "timestamp_level", "ALL");
@@ -174,13 +158,8 @@ void fe_common_core_init(void)
 
        settings_add_bool("lookandfeel", "use_status_window", TRUE);
        settings_add_bool("lookandfeel", "use_msgs_window", FALSE);
-#if defined (HAVE_NL_LANGINFO) && defined(CODESET)
-       settings_add_str("lookandfeel", "term_charset", 
-                        *nl_langinfo(CODESET) != '\0' ? 
-                        nl_langinfo(CODESET) : "ISO8859-1");
-#else
-       settings_add_str("lookandfeel", "term_charset", "ISO8859-1");
-#endif
+       g_get_charset(&str);
+       settings_add_str("lookandfeel", "term_charset", str);
        themes_init();
         theme_register(fecommon_core_formats);
 
@@ -199,7 +178,6 @@ void fe_common_core_init(void)
        fe_modules_init();
        fe_server_init();
        fe_settings_init();
-       translation_init();
        windows_init();
        window_activity_init();
        window_commands_init();
@@ -243,7 +221,6 @@ void fe_common_core_deinit(void)
        fe_modules_deinit();
        fe_server_deinit();
        fe_settings_deinit();
-       translation_deinit();
        windows_deinit();
        window_activity_deinit();
        window_commands_deinit();
@@ -369,10 +346,13 @@ static void autoconnect_servers(void)
                if (rec->autoconnect &&
                    (rec->chatnet == NULL ||
                     gslist_find_icase_string(chatnets, rec->chatnet) == NULL)) {
-                       if (rec->chatnet != NULL)
+                       if (rec->chatnet != NULL) {
                                chatnets = g_slist_append(chatnets, rec->chatnet);
+                               str = g_strdup_printf("-network %s %s %d", rec->chatnet, rec->address, rec->port);
+                       } else {
+                               str = g_strdup_printf("%s %d", rec->address, rec->port);
+                       }
 
-                       str = g_strdup_printf("%s %d", rec->address, rec->port);
                        signal_emit("command connect", 1, str);
                        g_free(str);
                }
@@ -409,6 +389,37 @@ static void sig_setup_changed(void)
                create_windows();
 }
 
+static void autorun_startup(void)
+{
+       char *path;
+       GIOChannel *handle;
+       GString *buf;
+       gsize tpos;
+
+       /* open ~/.irssi/startup and run all commands in it */
+       path = g_strdup_printf("%s/startup", get_irssi_dir());
+       handle = g_io_channel_new_file(path, "r", NULL);
+       g_free(path);
+       if (handle == NULL) {
+               /* file not found */
+               return;
+       }
+
+       g_io_channel_set_encoding(handle, NULL, NULL);
+       buf = g_string_sized_new(512);
+       while (g_io_channel_read_line_string(handle, buf, &tpos, NULL) == G_IO_STATUS_NORMAL) {
+               buf->str[tpos] = '\0';
+               if (buf->str[0] != '#') {
+                       eval_special_string(buf->str, "",
+                                           active_win->active_server,
+                                           active_win->active);
+               }
+       }
+       g_string_free(buf, TRUE);
+
+       g_io_channel_unref(handle);
+}
+
 void fe_common_core_finish_init(void)
 {
        int setup_changed;
@@ -455,3 +466,20 @@ void fe_common_core_finish_init(void)
         autorun_startup();
        autoconnect_servers();
 }
+
+gboolean strarray_find_dest(char **array, const TEXT_DEST_REC *dest)
+{
+       g_return_val_if_fail(array != NULL, FALSE);
+
+       if (strarray_find(array, dest->target) != -1)
+               return TRUE;
+
+       if (dest->server_tag != NULL) {
+               char *tagtarget = g_strdup_printf("%s/%s", dest->server_tag, dest->target);
+               int ret = strarray_find(array, tagtarget);
+               g_free(tagtarget);
+               if (ret != -1)
+                       return TRUE;
+       }
+       return FALSE;
+}
index 1c12047b428213ba17d2b0b0773a1ed78fae2229..88b2e94bc09cd45594c4dda690057707a5de21ca 100644 (file)
@@ -1,8 +1,13 @@
 #ifndef __FE_COMMON_CORE_H
 #define __FE_COMMON_CORE_H
 
+void fe_common_core_register_options(void);
 void fe_common_core_init(void);
 void fe_common_core_deinit(void);
 void fe_common_core_finish_init(void);
 
+/* Returns TRUE if "dest->target" or "dest->server_tag/dest->target" is found in
+ * array, otherwise FALSE. */
+gboolean strarray_find_dest(char **array, const TEXT_DEST_REC *dest);
+
 #endif
index 69bab326283165f03ade7d00c87dcbccd8cec981..b0572195cfe84c45172cffd496947947faab6a80 100644 (file)
@@ -13,9 +13,9 @@
     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     GNU General Public License for more details.
 
-    You should have received a copy of the GNU General Public License
-    along with this program; if not, write to the Free Software
-    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+    You should have received a copy of the GNU General Public License along
+    with this program; if not, write to the Free Software Foundation, Inc.,
+    51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 */
 
 #include "core.h"
@@ -25,7 +25,6 @@
 #include "commands.h"
 #include "levels.h"
 #include "misc.h"
-#include "line-split.h"
 #include "settings.h"
 #include "irssi-version.h"
 #include "servers.h"
@@ -82,7 +81,7 @@ static void cmd_echo(const char *data, void *server, WI_ITEM_REC *item)
 
         levelstr = g_hash_table_lookup(optlist, "level");
        level = levelstr == NULL ? 0 :
-               level2bits(g_hash_table_lookup(optlist, "level"));
+               level2bits(g_hash_table_lookup(optlist, "level"), NULL);
        if (level == 0) level = MSGLEVEL_CRAP;
 
        winname = g_hash_table_lookup(optlist, "window");
@@ -114,11 +113,12 @@ static void cmd_version(char *data)
 /* SYNTAX: CAT <file> */
 static void cmd_cat(const char *data)
 {
-       LINEBUF_REC *buffer = NULL;
        char *fname, *fposstr;
-       char tmpbuf[1024], *str;
        void *free_arg;
-       int f, ret, recvlen, fpos;
+       int fpos;
+       GIOChannel *handle;
+       GString *buf;
+       gsize tpos;
 
        if (!cmd_get_params(data, &free_arg, 2, &fname, &fposstr))
                return;
@@ -127,29 +127,27 @@ static void cmd_cat(const char *data)
        fpos = atoi(fposstr);
         cmd_params_free(free_arg);
 
-       f = open(fname, O_RDONLY);
+       handle = g_io_channel_new_file(fname, "r", NULL);
        g_free(fname);
 
-       if (f == -1) {
+       if (handle == NULL) {
                /* file not found */
                printtext(NULL, NULL, MSGLEVEL_CLIENTERROR,
                          "%s", g_strerror(errno));
                return;
        }
 
-        lseek(f, fpos, SEEK_SET);
-       do {
-               recvlen = read(f, tmpbuf, sizeof(tmpbuf));
-
-               ret = line_split(tmpbuf, recvlen, &str, &buffer);
-               if (ret > 0) {
-                       printtext(NULL, NULL, MSGLEVEL_CLIENTCRAP |
-                                 MSGLEVEL_NEVER, "%s", str);
-               }
-       } while (ret > 0);
-       line_split_free(buffer);
+       g_io_channel_set_encoding(handle, NULL, NULL);
+       g_io_channel_seek_position(handle, fpos, G_SEEK_SET, NULL);
+       buf = g_string_sized_new(512);
+       while (g_io_channel_read_line_string(handle, buf, &tpos, NULL) == G_IO_STATUS_NORMAL) {
+               buf->str[tpos] = '\0';
+               printtext(NULL, NULL, MSGLEVEL_CLIENTCRAP |
+                         MSGLEVEL_NEVER, "%s", buf->str);
+       }
+       g_string_free(buf, TRUE);
 
-       close(f);
+       g_io_channel_unref(handle);
 }
 
 /* SYNTAX: BEEP */
@@ -171,34 +169,10 @@ static void cmd_nick(const char *data, SERVER_REC *server)
        signal_stop();
 }
 
-static void cmd_join(const char *data, SERVER_REC *server)
-{
-       GHashTable *optlist;
-       char *channels;
-       void *free_arg;
-
-       g_return_if_fail(data != NULL);
-
-       if (!cmd_get_params(data, &free_arg, 1 | PARAM_FLAG_OPTIONS |
-                           PARAM_FLAG_UNKNOWN_OPTIONS | PARAM_FLAG_GETREST,
-                           "join", &optlist, &channels))
-               return;
-
-       server = cmd_options_get_server("join", optlist, server);
-       if (g_hash_table_lookup(optlist, "invite") &&
-           server != NULL && server->last_invite == NULL) {
-                /* ..all this trouble just to print this error message */
-               printformat(NULL, NULL, MSGLEVEL_CLIENTNOTICE, TXT_NOT_INVITED);
-               signal_stop();
-       }
-
-       cmd_params_free(free_arg);
-}
-
 /* SYNTAX: UPTIME */
 static void cmd_uptime(char *data)
 {
-       time_t uptime;
+       long uptime;
 
        g_return_if_fail(data != NULL);
 
@@ -321,7 +295,7 @@ static void event_list_subcommands(const char *command)
                if (g_strncasecmp(rec->cmd, command, len) == 0 &&
                    rec->cmd[len] == ' ' &&
                    strchr(rec->cmd+len+1, ' ') == NULL) {
-                        g_string_sprintfa(str, "%s ", rec->cmd+len+1);
+                        g_string_append_printf(str, "%s ", rec->cmd+len+1);
                }
        }
 
@@ -346,7 +320,6 @@ void fe_core_commands_init(void)
        command_bind("beep", NULL, (SIGNAL_FUNC) cmd_beep);
        command_bind("uptime", NULL, (SIGNAL_FUNC) cmd_uptime);
        command_bind_first("nick", NULL, (SIGNAL_FUNC) cmd_nick);
-       command_bind_first("join", NULL, (SIGNAL_FUNC) cmd_join);
 
        signal_add("send command", (SIGNAL_FUNC) event_command);
        signal_add_last("send command", (SIGNAL_FUNC) event_command_last);
@@ -365,7 +338,6 @@ void fe_core_commands_deinit(void)
        command_unbind("beep", (SIGNAL_FUNC) cmd_beep);
        command_unbind("uptime", (SIGNAL_FUNC) cmd_uptime);
        command_unbind("nick", (SIGNAL_FUNC) cmd_nick);
-       command_unbind("join", (SIGNAL_FUNC) cmd_join);
 
        signal_remove("send command", (SIGNAL_FUNC) event_command);
        signal_remove("send command", (SIGNAL_FUNC) event_command_last);
index 3fa8899551c4b745562bd975ea34bfca5d6dde58..0faabb3c36d27498b919cde6dcf421d5f2c7b3e8 100644 (file)
@@ -13,9 +13,9 @@
     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     GNU General Public License for more details.
 
-    You should have received a copy of the GNU General Public License
-    along with this program; if not, write to the Free Software
-    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+    You should have received a copy of the GNU General Public License along
+    with this program; if not, write to the Free Software Foundation, Inc.,
+    51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 */
 
 #include "module.h"
@@ -24,6 +24,7 @@
 #include "commands.h"
 #include "pidwait.h"
 #include "line-split.h"
+#include "network.h"
 #include "net-sendbuffer.h"
 #include "misc.h"
 #include "levels.h"
@@ -196,11 +197,16 @@ static void process_destroy(PROCESS_REC *rec, int status)
 static void processes_killall(int signum)
 {
        GSList *tmp;
+       int kill_ret;
 
        for (tmp = processes; tmp != NULL; tmp = tmp->next) {
                PROCESS_REC *rec = tmp->data;
 
-               kill(rec->pid, signum);
+               kill_ret = kill(-rec->pid, signum);
+               if (kill_ret != 0)
+                       printtext(NULL, NULL, MSGLEVEL_CLIENTERROR,
+                                 "Error sending signal %d to pid %d: %s",
+                                 signum, rec->pid, g_strerror(errno));
        }
 }
 
@@ -209,17 +215,17 @@ static int signal_name_to_id(const char *name)
        /* check only the few most common signals, too much job to check
           them all. if we sometimes want more, procps-sources/proc/sig.c
           would be useful for copypasting */
-       if (g_strcasecmp(name, "hup") == 0)
+       if (g_ascii_strcasecmp(name, "hup") == 0)
                 return SIGHUP;
-       if (g_strcasecmp(name, "int") == 0)
+       if (g_ascii_strcasecmp(name, "int") == 0)
                 return SIGINT;
-       if (g_strcasecmp(name, "term") == 0)
+       if (g_ascii_strcasecmp(name, "term") == 0)
                 return SIGTERM;
-       if (g_strcasecmp(name, "kill") == 0)
+       if (g_ascii_strcasecmp(name, "kill") == 0)
                 return SIGKILL;
-       if (g_strcasecmp(name, "usr1") == 0)
+       if (g_ascii_strcasecmp(name, "usr1") == 0)
                 return SIGUSR1;
-       if (g_strcasecmp(name, "usr2") == 0)
+       if (g_ascii_strcasecmp(name, "usr2") == 0)
                 return SIGUSR2;
         return -1;
 }
@@ -303,9 +309,9 @@ static void process_exec(PROCESS_REC *rec, const char *cmd)
 
        if (rec->pid != 0) {
                /* parent process */
-                GIOChannel *outio = g_io_channel_unix_new(in[1]);
+                GIOChannel *outio = g_io_channel_new(in[1]);
 
-               rec->in = g_io_channel_unix_new(out[0]);
+               rec->in = g_io_channel_new(out[0]);
                rec->out = net_sendbuffer_create(outio, 0);
 
                 close(out[1]);
@@ -349,17 +355,12 @@ static void process_exec(PROCESS_REC *rec, const char *cmd)
 static void sig_exec_input_reader(PROCESS_REC *rec)
 {
         char tmpbuf[512], *str;
-        gsize recvlen;
-       int err, ret;
+        int recvlen;
+       int ret;
 
        g_return_if_fail(rec != NULL);
 
-       recvlen = 0;
-       err = g_io_channel_read(rec->in, tmpbuf,
-                               sizeof(tmpbuf), &recvlen);
-       if (err != 0 && err != G_IO_ERROR_AGAIN && errno != EINTR)
-               recvlen = -1;
-
+       recvlen = net_receive(rec->in, tmpbuf, sizeof(tmpbuf));
        do {
                ret = line_split(tmpbuf, recvlen, &str, &rec->databuf);
                if (ret == -1) {
@@ -382,7 +383,7 @@ static void handle_exec(const char *args, GHashTable *optlist,
        PROCESS_REC *rec;
        SERVER_REC *target_server;
         char *target, *level;
-       int notice, signum, interactive, target_nick, target_channel;
+       int notice, signum, interactive, target_nick, target_channel, kill_ret;
 
        /* check that there's no unknown options. we allowed them
           because signals can be used as options, but there should be
@@ -449,8 +450,12 @@ static void handle_exec(const char *args, GHashTable *optlist,
        }
 
        if (signum != -1) {
-               /* send a signal to process */
-                kill(rec->pid, signum);
+               /* send a signal to process group */
+                kill_ret = kill(-rec->pid, signum);
+                if (kill_ret != 0)
+                        printtext(NULL, NULL, MSGLEVEL_CLIENTERROR,
+                                  "Error sending signal %d to pid %d: %s",
+                                  signum, rec->pid, g_strerror(errno));
                 return;
        }
 
@@ -517,7 +522,7 @@ static void handle_exec(const char *args, GHashTable *optlist,
        rec->name = g_strdup(g_hash_table_lookup(optlist, "name"));
 
        level = g_hash_table_lookup(optlist, "level");
-       rec->level = level == NULL ? MSGLEVEL_CLIENTCRAP : level2bits(level);
+       rec->level = level == NULL ? MSGLEVEL_CLIENTCRAP : level2bits(level, NULL);
 
        rec->read_tag = g_input_add(rec->in, G_INPUT_READ,
                                    (GInputFunction) sig_exec_input_reader,
@@ -533,8 +538,8 @@ static void handle_exec(const char *args, GHashTable *optlist,
 /* SYNTAX: EXEC [-] [-nosh] [-out | -msg <target> | -notice <target>]
                [-name <name>] <cmd line>
           EXEC -out | -window | -msg <target> | -notice <target> |
-               -close | -<signal> <id>
-          EXEC -in <id> <text to send to process> */
+               -close | -<signal> %<id>
+          EXEC -in %<id> <text to send to process> */
 static void cmd_exec(const char *data, SERVER_REC *server, WI_ITEM_REC *item)
 {
        GHashTable *optlist;
index c14ac7c3e51f5ad9ab58604530c76f5c72902bec..d054a633362f4ac9b958f69cfacc5d48b9dbc7ae 100644 (file)
@@ -13,9 +13,9 @@
     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     GNU General Public License for more details.
 
-    You should have received a copy of the GNU General Public License
-    along with this program; if not, write to the Free Software
-    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+    You should have received a copy of the GNU General Public License along
+    with this program; if not, write to the Free Software Foundation, Inc.,
+    51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 */
 
 #include "module.h"
index c093b84b296547e249e4258f30d0c04a21231c9e..b51b894937675a66868eb9f1a361b5965561f294 100644 (file)
@@ -13,9 +13,9 @@
     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     GNU General Public License for more details.
 
-    You should have received a copy of the GNU General Public License
-    along with this program; if not, write to the Free Software
-    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+    You should have received a copy of the GNU General Public License along
+    with this program; if not, write to the Free Software Foundation, Inc.,
+    51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 */
 
 #include "module.h"
@@ -23,7 +23,6 @@
 #include "commands.h"
 #include "levels.h"
 #include "misc.h"
-#include "line-split.h"
 #include "settings.h"
 
 #include "printtext.h"
@@ -117,46 +116,43 @@ static void help_category(GSList *cmdlist, int items)
 static int show_help_file(const char *file)
 {
         const char *helppath;
-       char tmpbuf[1024], *str, *path, **paths, **tmp;
-       LINEBUF_REC *buffer = NULL;
-       int f, ret, recvlen;
+       char *path, **paths, **tmp;
+       GIOChannel *handle;
+       GString *buf;
+       gsize tpos;
 
         helppath = settings_get_str("help_path");
 
        paths = g_strsplit(helppath, ":", -1);
 
-       f = -1;
+       handle = NULL;
        for (tmp = paths; *tmp != NULL; tmp++) {
                /* helpdir/command or helpdir/category/command */
                path = g_strdup_printf("%s/%s", *tmp, file);
-               f = open(path, O_RDONLY);
+               handle = g_io_channel_new_file(path, "r", NULL);
                g_free(path);
 
-               if (f != -1)
+               if (handle != NULL)
                        break;
 
        }
 
        g_strfreev(paths);
 
-       if (f == -1)
+       if (handle == NULL)
                return FALSE;
 
+       g_io_channel_set_encoding(handle, NULL, NULL);
+       buf = g_string_sized_new(512);
        /* just print to screen whatever is in the file */
-       do {
-               recvlen = read(f, tmpbuf, sizeof(tmpbuf));
-
-               ret = line_split(tmpbuf, recvlen, &str, &buffer);
-               if (ret > 0) {
-                       str = g_strconcat("%|", str, NULL);
-                       printtext_string(NULL, NULL, MSGLEVEL_CLIENTCRAP, str);
-                       g_free(str);
-               }
+       while (g_io_channel_read_line_string(handle, buf, &tpos, NULL) == G_IO_STATUS_NORMAL) {
+               buf->str[tpos] = '\0';
+               g_string_prepend(buf, "%|");
+               printtext_string(NULL, NULL, MSGLEVEL_CLIENTCRAP, buf->str);
        }
-       while (ret > 0);
-       line_split_free(buffer);
+       g_string_free(buf, TRUE);
 
-       close(f);
+       g_io_channel_unref(handle);
        return TRUE;
 }
 
@@ -252,13 +248,10 @@ static void show_help(const char *data)
 /* SYNTAX: HELP [<command>] */
 static void cmd_help(const char *data)
 {
-       char *cmd, *ptr;
-
-       cmd = g_strdup(data);
-       ptr = cmd+strlen(cmd);
-       while (ptr[-1] == ' ') ptr--; *ptr = '\0';
+       char *cmd;
 
-       g_strdown(cmd);
+       cmd = g_ascii_strdown(data, -1);
+       g_strchomp(cmd);
        show_help(cmd);
         g_free(cmd);
 }
index c1fb979d3402b9060a46f797ed7d728f7a33f185..32e632604b378e63023346cbfa8882008e4bc255 100644 (file)
@@ -13,9 +13,9 @@
     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     GNU General Public License for more details.
 
-    You should have received a copy of the GNU General Public License
-    along with this program; if not, write to the Free Software
-    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+    You should have received a copy of the GNU General Public License along
+    with this program; if not, write to the Free Software Foundation, Inc.,
+    51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 */
 
 #include "module.h"
index d2f48f20d0e520e6dcc931bd58f2246cd02dec16..7c23ad9499c2ac24406dc89f1a905c84aa1e81cf 100644 (file)
@@ -13,9 +13,9 @@
     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     GNU General Public License for more details.
 
-    You should have received a copy of the GNU General Public License
-    along with this program; if not, write to the Free Software
-    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+    You should have received a copy of the GNU General Public License along
+    with this program; if not, write to the Free Software Foundation, Inc.,
+    51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 */
 
 #include "module.h"
@@ -64,9 +64,9 @@ static void ignore_print(int index, IGNORE_REC *rec)
        if (rec->fullword) g_string_append(options, "-full ");
        if (rec->replies) g_string_append(options, "-replies ");
        if (rec->servertag != NULL) 
-               g_string_sprintfa(options, "-network %s ", rec->servertag);
+               g_string_append_printf(options, "-network %s ", rec->servertag);
        if (rec->pattern != NULL)
-               g_string_sprintfa(options, "-pattern %s ", rec->pattern);
+               g_string_append_printf(options, "-pattern %s ", rec->pattern);
 
        if (options->len > 1) g_string_truncate(options, options->len-1);
 
@@ -152,9 +152,9 @@ static void cmd_ignore(const char *data)
                mask = NULL;
        }
        channels = (chanarg == NULL || *chanarg == '\0') ? NULL :
-               g_strsplit(replace_chars(chanarg, ',', ' '), " ", -1);
+               g_strsplit(chanarg, ",", -1);
 
-       rec = patternarg != NULL ? NULL: ignore_find(NULL, mask, channels);
+       rec = patternarg != NULL ? NULL: ignore_find(servertag, mask, channels);
        new_ignore = rec == NULL;
 
        if (rec == NULL) {
index 5b2a7780c59065f34d58f6a3597b2bb6cb02c0a1..3008d0a7741cf1d8bada6491c124a0b79bef9ae8 100644 (file)
@@ -13,9 +13,9 @@
     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     GNU General Public License for more details.
 
-    You should have received a copy of the GNU General Public License
-    along with this program; if not, write to the Free Software
-    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+    You should have received a copy of the GNU General Public License along
+    with this program; if not, write to the Free Software Foundation, Inc.,
+    51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 */
 
 #include "module.h"
@@ -36,6 +36,7 @@
 #include "formats.h"
 #include "themes.h"
 #include "printtext.h"
+#include "fe-common-core.h"
 
 /* close autologs after 5 minutes of inactivity */
 #define AUTOLOG_INACTIVITY_CLOSE (60*5)
@@ -50,6 +51,8 @@ static const char *log_theme_name;
 
 static int log_dir_create_mode;
 
+static char **autolog_ignore_targets;
+
 static char *log_colorizer_strip(const char *str)
 {
         return strip_codes(str);
@@ -89,7 +92,7 @@ static void cmd_log_open(const char *data)
                return;
        if (*fname == '\0') cmd_param_error(CMDERR_NOT_ENOUGH_PARAMS);
 
-       level = level2bits(levels);
+       level = level2bits(levels, NULL);
        log = log_create_rec(fname, level != 0 ? level : MSGLEVEL_ALL);
 
        /* -<server tag> */
@@ -200,11 +203,11 @@ static char *log_items_get_list(LOG_REC *log)
        for (tmp = log->items; tmp != NULL; tmp = tmp->next) {
                rec = tmp->data;
 
-                g_string_sprintfa(str, "%s, ", rec->name);
+                g_string_append_printf(str, "%s, ", rec->name);
        }
        g_string_truncate(str, str->len-2);
        if(rec->servertag != NULL)
-               g_string_sprintfa(str, " (%s)", rec->servertag);
+               g_string_append_printf(str, " (%s)", rec->servertag);
 
        ret = str->str;
        g_string_free(str, FALSE);
@@ -227,7 +230,8 @@ static void cmd_log_list(void)
 
                printformat(NULL, NULL, MSGLEVEL_CLIENTCRAP, TXT_LOG_LIST,
                            index, rec->fname, items != NULL ? items : "",
-                           levelstr, rec->autoopen ? " -autoopen" : "");
+                           levelstr, rec->autoopen ? " -autoopen" : "",
+                           rec->handle != -1 ? " active" : "");
 
                g_free_not_null(items);
                g_free(levelstr);
@@ -252,6 +256,7 @@ static LOG_REC *logs_find_item(int type, const char *item,
        for (tmp = logs; tmp != NULL; tmp = tmp->next) {
                LOG_REC *log = tmp->data;
 
+               if (type == LOG_ITEM_TARGET && log->temp == 0) continue;
                logitem = log_item_find(log, type, item, servertag);
                if (logitem != NULL) {
                        if (ret_item != NULL) *ret_item = logitem;
@@ -277,11 +282,11 @@ static void cmd_window_log(const char *data)
        log = logs_find_item(LOG_ITEM_WINDOW_REFNUM, window, NULL, NULL);
 
         open_log = close_log = FALSE;
-       if (g_strcasecmp(set, "ON") == 0)
+       if (g_ascii_strcasecmp(set, "ON") == 0)
                open_log = TRUE;
-       else if (g_strcasecmp(set, "OFF") == 0) {
+       else if (g_ascii_strcasecmp(set, "OFF") == 0) {
                close_log = TRUE;
-       } else if (g_strcasecmp(set, "TOGGLE") == 0) {
+       } else if (g_ascii_strcasecmp(set, "TOGGLE") == 0) {
                 open_log = log == NULL;
                 close_log = log != NULL;
        } else {
@@ -388,14 +393,14 @@ static void autologs_close_all(void)
        }
 }
 
-/* '%' -> '%%', '/' -> '_' */
+/* '%' -> '%%', badness -> '_' */
 static char *escape_target(const char *target)
 {
        char *str, *p;
 
        p = str = g_malloc(strlen(target)*2+1);
        while (*target != '\0') {
-               if (*target == '/')
+               if (strchr("/\\|*?\"<>:", *target))
                        *p++ = '_';
                else {
                        if (*target == '%')
@@ -424,11 +429,13 @@ static void autolog_open(SERVER_REC *server, const char *server_tag,
 
        /* '/' -> '_' - don't even accidentally try to log to
           #../../../file if you happen to join to such channel..
+          similar for some characters that are metacharacters
+          and/or illegal in Windows filenames.
 
           '%' -> '%%' - so strftime() won't mess with them */
        fixed_target = escape_target(target);
        if (CHAT_PROTOCOL(server)->case_insensitive)
-               g_strdown(fixed_target);
+               ascii_strdown(fixed_target);
 
         /* $0 = target, $1 = server tag */
         params = g_strconcat(fixed_target, " ", server_tag, NULL);
@@ -444,7 +451,7 @@ static void autolog_open(SERVER_REC *server, const char *server_tag,
                        log->colorizer = log_colorizer_strip;
                log_item_add(log, LOG_ITEM_TARGET, target, server_tag);
 
-               dir = g_dirname(log->real_fname);
+               dir = g_path_get_dirname(log->real_fname);
                mkpath(dir, log_dir_create_mode);
                g_free(dir);
 
@@ -455,10 +462,13 @@ static void autolog_open(SERVER_REC *server, const char *server_tag,
        g_free(fname);
 }
 
-static void autolog_open_check(SERVER_REC *server, const char *server_tag,
-                              const char *target, int level)
+static void autolog_open_check(TEXT_DEST_REC *dest)
 {
-       char **targets, **tmp;
+       const char *deftarget;
+       SERVER_REC *server = dest->server;
+       const char *server_tag = dest->server_tag;
+       const char *target = dest->target;
+       int level = dest->level;
 
        /* FIXME: kind of a kludge, but we don't want to reopen logs when
           we're parting the channel with /WINDOW CLOSE.. Maybe a small
@@ -468,18 +478,20 @@ static void autolog_open_check(SERVER_REC *server, const char *server_tag,
            (autolog_level & level) == 0 || target == NULL || *target == '\0')
                return;
 
-       /* there can be multiple targets separated with comma */
-       targets = g_strsplit(target, ",", -1);
-       for (tmp = targets; *tmp != NULL; tmp++)
-               autolog_open(server, server_tag, *tmp);
-       g_strfreev(targets);
+       deftarget = server ? server->nick : "unknown";
+
+       if (autolog_ignore_targets != NULL &&
+           strarray_find_dest(autolog_ignore_targets, dest))
+               return;
+
+       if (target != NULL)
+               autolog_open(server, server_tag, strcmp(target, "*") ? target : deftarget);
 }
 
 static void log_single_line(WINDOW_REC *window, const char *server_tag,
                            const char *target, int level, const char *text)
 {
        char windownum[MAX_INT_STRLEN];
-       char **targets, **tmp;
        LOG_REC *log;
 
        if (window != NULL) {
@@ -491,15 +503,7 @@ static void log_single_line(WINDOW_REC *window, const char *server_tag,
                        log_write_rec(log, text, level);
        }
 
-       if (target == NULL)
-               log_file_write(server_tag, NULL, level, text, FALSE);
-       else {
-               /* there can be multiple items separated with comma */
-               targets = g_strsplit(target, ",", -1);
-               for (tmp = targets; *tmp != NULL; tmp++)
-                       log_file_write(server_tag, *tmp, level, text, FALSE);
-               g_strfreev(targets);
-       }
+       log_file_write(server_tag, target, level, text, FALSE);
 }
 
 static void log_line(TEXT_DEST_REC *dest, const char *text)
@@ -510,8 +514,7 @@ static void log_line(TEXT_DEST_REC *dest, const char *text)
                return;
 
        /* let autolog open the log records */
-       autolog_open_check(dest->server, dest->server_tag,
-                          dest->target, dest->level);
+       autolog_open_check(dest);
 
        if (logs == NULL)
                return;
@@ -698,6 +701,11 @@ static void read_settings(void)
         if (log_file_create_mode & 0400) log_dir_create_mode |= 0100;
         if (log_file_create_mode & 0040) log_dir_create_mode |= 0010;
         if (log_file_create_mode & 0004) log_dir_create_mode |= 0001;
+
+       if (autolog_ignore_targets != NULL)
+               g_strfreev(autolog_ignore_targets);
+
+       autolog_ignore_targets = g_strsplit(settings_get_str("autolog_ignore_targets"), " ", -1);
 }
 
 void fe_log_init(void)
@@ -711,6 +719,7 @@ void fe_log_init(void)
         settings_add_str("log", "autolog_path", "~/irclogs/$tag/$0.log");
        settings_add_level("log", "autolog_level", "all -crap -clientcrap -ctcps");
         settings_add_str("log", "log_theme", "");
+       settings_add_str("log", "autolog_ignore_targets", "");
 
        autolog_level = 0;
        log_theme_name = NULL;
@@ -764,4 +773,7 @@ void fe_log_deinit(void)
        signal_remove("awaylog show", (SIGNAL_FUNC) sig_awaylog_show);
        signal_remove("theme destroyed", (SIGNAL_FUNC) sig_theme_destroyed);
        signal_remove("setup changed", (SIGNAL_FUNC) read_settings);
+
+       if (autolog_ignore_targets != NULL)
+               g_strfreev(autolog_ignore_targets);
 }
index 3080b99caa16b4ffb4b9e2f28e51990028e106b1..846272fdcf1b6453a463c5dafd92d4be23e46446 100644 (file)
@@ -13,9 +13,9 @@
     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     GNU General Public License for more details.
 
-    You should have received a copy of the GNU General Public License
-    along with this program; if not, write to the Free Software
-    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+    You should have received a copy of the GNU General Public License along
+    with this program; if not, write to the Free Software Foundation, Inc.,
+    51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 */
 
 #include "module.h"
@@ -31,7 +31,6 @@
 #include "channels.h"
 #include "nicklist.h"
 #include "ignore.h"
-#include "recode.h"
 
 #include "window-items.h"
 #include "fe-queries.h"
@@ -134,24 +133,21 @@ char *expand_emphasis(WI_ITEM_REC *item, const char *text)
 static char *channel_get_nickmode_rec(NICK_REC *nickrec)
 {
         char *emptystr;
-       static char nickmode[2]; /* FIXME: bad */
+       char *nickmode;
 
        if (!settings_get_bool("show_nickmode"))
-                return "";
+                return g_strdup("");
 
         emptystr = settings_get_bool("show_nickmode_empty") ? " " : "";
 
-       if (nickrec != NULL && nickrec->other) {
-               nickmode[0] = nickrec->other;
+       if (nickrec == NULL || nickrec->prefixes[0] == '\0')
+               nickmode = g_strdup(emptystr);
+       else {
+               nickmode = g_malloc(2);
+               nickmode[0] = nickrec->prefixes[0];
                nickmode[1] = '\0';
-               return nickmode;
        }
-
-       return nickrec == NULL ? emptystr :
-               nickrec->op ? "@" :
-               nickrec->halfop ? "%" :
-               nickrec->voice ? "+" :
-               emptystr;
+       return nickmode;
 }
 
 char *channel_get_nickmode(CHANNEL_REC *channel, const char *nick)
@@ -167,9 +163,9 @@ static void sig_message_public(SERVER_REC *server, const char *msg,
                               const char *target, NICK_REC *nickrec)
 {
        CHANNEL_REC *chanrec;
-       const char *nickmode, *printnick;
+       const char *printnick;
        int for_me, print_channel, level;
-       char *color, *freemsg = NULL;
+       char *nickmode, *color, *freemsg = NULL;
        HILIGHT_REC *hilight;
 
        /* NOTE: this may return NULL if some channel is just closed with
@@ -229,6 +225,7 @@ static void sig_message_public(SERVER_REC *server, const char *msg,
                                    printnick, target, msg, nickmode);
        }                                               
 
+       g_free_not_null(nickmode);
        g_free_not_null(freemsg);
        g_free_not_null(color);
 }
@@ -256,8 +253,8 @@ static void sig_message_own_public(SERVER_REC *server, const char *msg,
 {
        WINDOW_REC *window;
        CHANNEL_REC *channel;
-       const char *nickmode;
-        char *freemsg = NULL, *recoded;
+       char *nickmode;
+        char *freemsg = NULL;
        int print_channel;
        channel = channel_find(server, target);
        if (channel != NULL)
@@ -278,18 +275,15 @@ static void sig_message_own_public(SERVER_REC *server, const char *msg,
        if (settings_get_bool("emphasis"))
                msg = freemsg = expand_emphasis((WI_ITEM_REC *) channel, msg);
 
-       /* ugly: recode the sent message back for printing */ 
-       recoded = recode_in(server, msg, target);
-       
        if (!print_channel) {
                printformat(server, target, MSGLEVEL_PUBLIC | MSGLEVEL_NOHILIGHT | MSGLEVEL_NO_ACT,
-                           TXT_OWN_MSG, server->nick, recoded, nickmode);
+                           TXT_OWN_MSG, server->nick, msg, nickmode);
        } else {
                printformat(server, target, MSGLEVEL_PUBLIC | MSGLEVEL_NOHILIGHT | MSGLEVEL_NO_ACT,
-                           TXT_OWN_MSG_CHANNEL, server->nick, target, recoded, nickmode);
+                           TXT_OWN_MSG_CHANNEL, server->nick, target, msg, nickmode);
        }
 
-       g_free(recoded);
+       g_free_not_null(nickmode);
        g_free_not_null(freemsg);
 }
 
@@ -297,7 +291,7 @@ static void sig_message_own_private(SERVER_REC *server, const char *msg,
                                    const char *target, const char *origtarget)
 {
        QUERY_REC *query;
-        char *freemsg = NULL, *recoded;
+        char *freemsg = NULL;
 
        g_return_if_fail(server != NULL);
        g_return_if_fail(msg != NULL);
@@ -320,15 +314,11 @@ static void sig_message_own_private(SERVER_REC *server, const char *msg,
        if (settings_get_bool("emphasis"))
                msg = freemsg = expand_emphasis((WI_ITEM_REC *) query, msg);
 
-       /* ugly: recode the sent message back for printing */
-       recoded = recode_in(server, msg, target);
-
        printformat(server, target,
                    MSGLEVEL_MSGS | MSGLEVEL_NOHILIGHT | MSGLEVEL_NO_ACT,
                    query == NULL ? TXT_OWN_MSG_PRIVATE :
-                   TXT_OWN_MSG_PRIVATE_QUERY, target, recoded, server->nick);
+                   TXT_OWN_MSG_PRIVATE_QUERY, target, msg, server->nick);
 
-       g_free(recoded);
        g_free_not_null(freemsg);
 }
 
@@ -353,7 +343,7 @@ static void sig_message_quit(SERVER_REC *server, const char *nick,
        WINDOW_REC *window;
        GString *chans;
        GSList *tmp, *windows;
-       char *print_channel, *recoded;
+       char *print_channel;
        int once, count;
 
        if (ignore_check(server, nick, address, NULL, reason, MSGLEVEL_QUITS))
@@ -381,17 +371,15 @@ static void sig_message_quit(SERVER_REC *server, const char *nick,
                        print_channel = rec->visible_name;
 
                if (once)
-                       g_string_sprintfa(chans, "%s,", rec->visible_name);
+                       g_string_append_printf(chans, "%s,", rec->visible_name);
                else {
                        window = window_item_window((WI_ITEM_REC *) rec);
                        if (g_slist_find(windows, window) == NULL) {
                                windows = g_slist_append(windows, window);
-                               recoded = recode_in(server, reason, rec->visible_name);
                                printformat(server, rec->visible_name,
                                            MSGLEVEL_QUITS,
-                                           TXT_QUIT, nick, address, recoded,
+                                           TXT_QUIT, nick, address, reason,
                                            rec->visible_name);
-                               g_free(recoded);
                        }
                }
                count++;
@@ -403,22 +391,17 @@ static void sig_message_quit(SERVER_REC *server, const char *nick,
                   display the quit there too */
                QUERY_REC *query = query_find(server, nick);
                if (query != NULL) {
-                       recoded = recode_in(server, reason, nick);
                        printformat(server, nick, MSGLEVEL_QUITS,
-                                   TXT_QUIT, nick, address, recoded, "");
-                       g_free(recoded);
+                                   TXT_QUIT, nick, address, reason, "");
                }
        }
 
        if (once || count == 0) {
                if (chans->len > 0)
                        g_string_truncate(chans, chans->len-1);
-               /* at least recode_fallback will be used */
-               recoded = recode_in(server, reason, nick);
                printformat(server, print_channel, MSGLEVEL_QUITS,
                            count <= 1 ? TXT_QUIT : TXT_QUIT_ONCE,
-                           nick, address, recoded, chans->str);
-               g_free(recoded);
+                           nick, address, reason, chans->str);
        }
        g_string_free(chans, TRUE);
 }
@@ -459,7 +442,7 @@ static void print_nick_change(SERVER_REC *server, const char *newnick,
 
        msgprint = FALSE;
 
-       /* Print to each channel/query where the nick is.
+       /* Print to each channel where the nick is.
           Don't print more than once to the same window. */
        windows = NULL;
        for (tmp = server->channels; tmp != NULL; tmp = tmp->next) {
@@ -593,7 +576,7 @@ static void sig_nicklist_new(CHANNEL_REC *channel, NICK_REC *nick)
        newnick = g_string_new(NULL);
         n = 2;
        do {
-               g_string_sprintf(newnick, "%s%d", nickhost, n);
+               g_string_printf(newnick, "%s%d", nickhost, n);
                 n++;
        } while (printnick_exists(firstnick, nick, newnick->str));
 
index 3c3c979022885f07a2aa4d1cb302251cff30a600..4a13f6684e2486f381d51365841c564c6b487035 100644 (file)
@@ -13,9 +13,9 @@
     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     GNU General Public License for more details.
 
-    You should have received a copy of the GNU General Public License
-    along with this program; if not, write to the Free Software
-    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+    You should have received a copy of the GNU General Public License along
+    with this program; if not, write to the Free Software Foundation, Inc.,
+    51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 */
 
 #include "module.h"
@@ -130,15 +130,15 @@ static char **module_prefixes_get(void)
         char **list, *name;
         int count;
 
-       list = g_new(char *, 2 + 3*g_slist_length(chat_protocols));
+       list = g_new(char *, 3 + 3*g_slist_length(chat_protocols));
        list[0] = "fe";
+       list[1] = "fe_common";
 
-       count = 1;
+       count = 2;
        for (tmp = chat_protocols; tmp != NULL; tmp = tmp->next) {
                CHAT_PROTOCOL_REC *rec = tmp->data;
 
-               name = g_strdup(rec->name);
-                g_strdown(name);
+               name = g_ascii_strdown(rec->name, -1);
 
                list[count++] = name;
                 list[count++] = g_strconcat("fe_", name, NULL);
@@ -151,7 +151,7 @@ static char **module_prefixes_get(void)
 
 static void module_prefixes_free(char **list)
 {
-       char **pos = list+1;
+       char **pos = list+2;
 
        while (*pos != NULL) {
                 g_free(*pos);
index f1763814103ea11576770e23172623ab19df8872..adf2b3d44e50009610f2cdcb25c4cc04e3cad871 100644 (file)
@@ -13,9 +13,9 @@
     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     GNU General Public License for more details.
 
-    You should have received a copy of the GNU General Public License
-    along with this program; if not, write to the Free Software
-    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+    You should have received a copy of the GNU General Public License along
+    with this program; if not, write to the Free Software Foundation, Inc.,
+    51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 */
 
 #include "module.h"
@@ -124,7 +124,7 @@ static void signal_query_nick_changed(QUERY_REC *query, const char *oldnick)
        g_return_if_fail(query != NULL);
 
        format_create_dest_tag(&dest, query->server, query->server_tag,
-                              query->name, MSGLEVEL_CLIENTNOTICE, NULL);
+                              query->name, MSGLEVEL_NICKS, NULL);
 
        /* don't print the nick change message if only the case was changed */
        if (g_strcasecmp(query->name, oldnick) != 0) {
index 988c3762c9f61884a912afa138332c120208d6cc..dbc43574743131742313c1c37c19ae3edce70d19 100644 (file)
@@ -13,9 +13,9 @@
     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     GNU General Public License for more details.
 
-    You should have received a copy of the GNU General Public License
-    along with this program; if not, write to the Free Software
-    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+    You should have received a copy of the GNU General Public License along
+    with this program; if not, write to the Free Software Foundation, Inc.,
+    51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 */
 
 #include "module.h"
 #include "formats.h"
 #include "recode.h"
 
-#ifdef HAVE_NL_LANGINFO
-#  include <langinfo.h>
-#endif
-
-#define SLIST_FOREACH(var, head)               \
-for ((var) = (head);                           \
-                (var);                                 \
-                (var) = g_slist_next((var)))
-
-#ifdef HAVE_GLIB2
-char *recode_fallback = NULL;
-char *recode_out_default = NULL;
-char *term_charset = NULL;
+static char *recode_fallback = NULL;
+static char *recode_out_default = NULL;
+static char *term_charset = NULL;
 
 static const char *fe_recode_get_target (WI_ITEM_REC *witem)
 {
@@ -80,8 +70,7 @@ static void fe_recode_cmd (const char *data, SERVER_REC *server, WI_ITEM_REC *wi
                }
 
                printformat(NULL, NULL, MSGLEVEL_CLIENTCRAP, TXT_RECODE_HEADER);
-               SLIST_FOREACH(tmp, sorted)
-               {
+               for (tmp = sorted; tmp != NULL; tmp = tmp->next) {
                        CONFIG_NODE *node = tmp->data;
                        printformat(NULL, NULL, MSGLEVEL_CLIENTCRAP, TXT_RECODE_LINE, node->key, node->value);
                }
@@ -140,7 +129,7 @@ static void fe_recode_remove_cmd (const char *data, SERVER_REC *server, WI_ITEM_
 
        if (iconfig_get_str("conversions", target, NULL) == NULL)
                printformat(NULL, NULL, MSGLEVEL_CLIENTNOTICE, TXT_CONVERSION_NOT_FOUND, target);
-       else    {
+       else {
                iconfig_set_str("conversions", target, NULL);
                printformat(NULL, NULL, MSGLEVEL_CLIENTNOTICE, TXT_CONVERSION_REMOVED, target);
        }
@@ -171,7 +160,7 @@ static void read_settings(void)
        if (!is_valid_charset(recode_fallback)) {
                signal_emit("error command", 2, GINT_TO_POINTER(CMDERR_INVALID_CHARSET), recode_fallback);
                g_free(recode_fallback);
-               recode_fallback = is_valid_charset(old_recode_fallback) ? g_strdup(old_recode_fallback) : "ISO8859-1";
+               recode_fallback = is_valid_charset(old_recode_fallback) ? g_strdup(old_recode_fallback) : NULL;
                settings_set_str("recode_fallback", recode_fallback);
        }
 
@@ -180,25 +169,15 @@ static void read_settings(void)
        term_charset = g_strdup(settings_get_str("term_charset"));
        if (!is_valid_charset(term_charset)) {
                g_free(term_charset);
-#if defined (HAVE_NL_LANGINFO) && defined(CODESET)
-               term_charset = is_valid_charset(old_term_charset) ? g_strdup(old_term_charset) : 
-                              *nl_langinfo(CODESET) != '\0' ? g_strdup(nl_langinfo(CODESET)) : 
-                              "ISO8859-1";
-#else
-               term_charset = is_valid_charset(old_term_charset) ? g_strdup(old_term_charset) : "ISO8859-1";
-#endif         
+               term_charset = is_valid_charset(old_term_charset) ? g_strdup(old_term_charset) : NULL;
                settings_set_str("term_charset", term_charset);
-               /* FIXME: move the check of term_charset into fe-text/term.c 
-                         it breaks the proper term_input_type 
-                         setup and reemitting of the signal is kludgy */
-               if (g_strcasecmp(term_charset, old_term_charset) != 0)
-                       signal_emit("setup changed", 0);
        }
-       
+       recode_update_charset();
+
        if (recode_out_default)
                g_free(recode_out_default);
        recode_out_default = g_strdup(settings_get_str("recode_out_default_charset"));
-       if (recode_out_default != NULL && *recode_out_default != '\0' && 
+       if (recode_out_default != NULL && *recode_out_default != '\0' &&
            !is_valid_charset(recode_out_default)) {
                signal_emit("error command", 2, GINT_TO_POINTER(CMDERR_INVALID_CHARSET), recode_out_default);
                g_free(recode_out_default);
@@ -210,27 +189,20 @@ static void read_settings(void)
        g_free(old_recode_fallback);
        g_free(old_recode_out_default);
 }
-#endif
 
 void fe_recode_init (void)
 {
-/* FIXME: print this is not supported instead */
-#ifdef HAVE_GLIB2
        command_bind("recode", NULL, (SIGNAL_FUNC) fe_recode_cmd);
        command_bind("recode add", NULL, (SIGNAL_FUNC) fe_recode_add_cmd);
        command_bind("recode remove", NULL, (SIGNAL_FUNC) fe_recode_remove_cmd);
-       signal_add("setup changed", (SIGNAL_FUNC) read_settings);
+       signal_add_first("setup changed", (SIGNAL_FUNC) read_settings);
        read_settings();
-#endif
 }
 
 void fe_recode_deinit (void)
 {
-/* FIXME: print this is not supported instead */
-#ifdef HAVE_GLIB2
        command_unbind("recode", (SIGNAL_FUNC) fe_recode_cmd);
        command_unbind("recode add", (SIGNAL_FUNC) fe_recode_add_cmd);
        command_unbind("recode remove", (SIGNAL_FUNC) fe_recode_remove_cmd);
        signal_remove("setup changed", (SIGNAL_FUNC) read_settings);
-#endif
 }
index 5ecacbbc871f49b8d25196a74838fca4ebaac303..e4b32bdbbe9826e7683875e90a255039bc275823 100644 (file)
@@ -13,9 +13,9 @@
     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     GNU General Public License for more details.
 
-    You should have received a copy of the GNU General Public License
-    along with this program; if not, write to the Free Software
-    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+    You should have received a copy of the GNU General Public License along
+    with this program; if not, write to the Free Software Foundation, Inc.,
+    51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 */
 
 #include "module.h"
@@ -108,7 +108,7 @@ static void cmd_server_add(const char *data)
 {
         GHashTable *optlist;
        SERVER_SETUP_REC *rec;
-       char *addr, *portstr, *password, *value;
+       char *addr, *portstr, *password, *value, *chatnet;
        void *free_arg;
        int port;
 
@@ -119,7 +119,10 @@ static void cmd_server_add(const char *data)
        if (*addr == '\0') cmd_param_error(CMDERR_NOT_ENOUGH_PARAMS);
        port = *portstr == '\0' ? DEFAULT_SERVER_ADD_PORT : atoi(portstr);
 
-       rec = server_setup_find_port(addr, port);
+       chatnet = g_hash_table_lookup(optlist, "network");
+
+       rec = server_setup_find(addr, port, chatnet);
+
        if (rec == NULL) {
                rec = create_server_setup(optlist);
                if (rec == NULL) {
@@ -194,21 +197,30 @@ static void cmd_server_add(const char *data)
        cmd_params_free(free_arg);
 }
 
-/* SYNTAX: SERVER REMOVE <address> [<port>] */
+/* SYNTAX: SERVER REMOVE <address> [<port>] [<network>] */
 static void cmd_server_remove(const char *data)
 {
        SERVER_SETUP_REC *rec;
-       char *addr, *port;
+       char *addr, *port, *chatnet;
        void *free_arg;
 
-       if (!cmd_get_params(data, &free_arg, 2, &addr, &port))
+       if (!cmd_get_params(data, &free_arg, 3, &addr, &port, &chatnet))
                return;
        if (*addr == '\0') cmd_param_error(CMDERR_NOT_ENOUGH_PARAMS);
 
-        if (*port == '\0')
-               rec = server_setup_find(addr, -1, NULL);
+       if (*port == '\0') {
+               if (*chatnet == '\0')
+                       rec = server_setup_find(addr, -1, NULL);
+               else
+                       rec = server_setup_find(addr, -1, chatnet);
+       }
        else
-               rec = server_setup_find_port(addr, atoi(port));
+       {
+               if (*chatnet == '\0')
+                       rec = server_setup_find(addr, atoi(port), NULL);
+               else
+                       rec = server_setup_find(addr, atoi(port), chatnet);
+       }
 
        if (rec == NULL)
                printformat(NULL, NULL, MSGLEVEL_CLIENTNOTICE, TXT_SETUPSERVER_NOT_FOUND, addr, port);
index dccfcba9105d4f95a6dbb1e002271ace75bf0155..59f136b28bc04f02e3dc5e6877e0086f2b505360 100644 (file)
@@ -13,9 +13,9 @@
     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     GNU General Public License for more details.
 
-    You should have received a copy of the GNU General Public License
-    along with this program; if not, write to the Free Software
-    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+    You should have received a copy of the GNU General Public License along
+    with this program; if not, write to the Free Software Foundation, Inc.,
+    51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 */
 
 #include "module.h"
 
 static void set_print(SETTINGS_REC *rec)
 {
-       const char *value;
-       char value_int[MAX_INT_STRLEN];
-
-       switch (rec->type) {
-       case SETTING_TYPE_BOOLEAN:
-               value = settings_get_bool(rec->key) ? "ON" : "OFF";
-               break;
-       case SETTING_TYPE_INT:
-               ltoa(value_int, settings_get_int(rec->key));
-               value = value_int;
-               break;
-       case SETTING_TYPE_STRING:
-       case SETTING_TYPE_TIME:
-       case SETTING_TYPE_LEVEL:
-       case SETTING_TYPE_SIZE:
-               value = settings_get_str(rec->key);
-               break;
-       default:
-               value = "";
-       }
+       char *value;
+
+       value = settings_get_print(rec);
        printformat(NULL, NULL, MSGLEVEL_CLIENTCRAP, TXT_SET_ITEM,
                    rec->key, value);
+       g_free(value);
+}
+
+static void set_print_pattern(const char *pattern)
+{
+       GSList *sets, *tmp;
+       const char *last_section;
+
+       last_section = "";
+       sets = settings_get_sorted();
+       for (tmp = sets; tmp != NULL; tmp = tmp->next) {
+               SETTINGS_REC *rec = tmp->data;
+
+               if (stristr(rec->key, pattern) == NULL)
+                       continue;
+               if (strcmp(last_section, rec->section) != 0) {
+                       /* print section */
+                       printformat(NULL, NULL, MSGLEVEL_CLIENTCRAP,
+                                   TXT_SET_TITLE, rec->section);
+                       last_section = rec->section;
+               }
+               set_print(rec);
+       }
+       g_slist_free(sets);
 }
 
 static void set_boolean(const char *key, const char *value)
 {
-       if (g_strcasecmp(value, "ON") == 0)
+       char *stripped_value;
+       stripped_value = g_strdup(value);
+       g_strstrip(stripped_value);
+
+       if (g_ascii_strcasecmp(stripped_value, "ON") == 0)
                settings_set_bool(key, TRUE);
-       else if (g_strcasecmp(value, "OFF") == 0)
+       else if (g_ascii_strcasecmp(stripped_value, "OFF") == 0)
                settings_set_bool(key, FALSE);
-       else if (g_strcasecmp(value, "TOGGLE") == 0)
+       else if (g_ascii_strcasecmp(stripped_value, "TOGGLE") == 0)
                settings_set_bool(key, !settings_get_bool(key));
        else
-               printformat(NULL, NULL, MSGLEVEL_CLIENTCRAP, TXT_NOT_TOGGLE);
+               printformat(NULL, NULL, MSGLEVEL_CLIENTERROR, TXT_NOT_TOGGLE);
+
+    g_free(stripped_value);
+}
+
+static void set_int(const char *key, const char *value)
+{
+       char *endp;
+       long longval;
+       int error;
+
+       errno = 0;
+       longval = strtol(value, &endp, 10);
+       error = errno;
+       while (i_isspace(*endp))
+               endp++;
+       if (error != 0 || *endp != '\0' || longval < INT_MIN || longval > INT_MAX)
+               printformat(NULL, NULL, MSGLEVEL_CLIENTERROR, TXT_INVALID_NUMBER);
+       else
+               settings_set_int(key, (int)longval);
 }
 
 /* SYNTAX: SET [-clear | -default] [<key> [<value>]] */
 static void cmd_set(char *data)
 {
         GHashTable *optlist;
-       GSList *sets, *tmp;
-       const char *last_section;
        char *key, *value;
        void *free_arg;
-       int found, clear, set_default;
+       int clear, set_default;
+       SETTINGS_REC *rec;
 
        if (!cmd_get_params(data, &free_arg, 2 | PARAM_FLAG_GETREST | PARAM_FLAG_OPTIONS,
                            "set", &optlist, &key, &value))
@@ -89,23 +118,11 @@ static void cmd_set(char *data)
        if (*key == '\0')
                clear = set_default = FALSE;
 
-       last_section = ""; found = 0;
-       sets = settings_get_sorted();
-       for (tmp = sets; tmp != NULL; tmp = tmp->next) {
-               SETTINGS_REC *rec = tmp->data;
-
-               if (((clear || set_default || *value != '\0') && g_strcasecmp(rec->key, key) != 0) ||
-                   (*value == '\0' && *key != '\0' && stristr(rec->key, key) == NULL))
-                       continue;
-
-               if (strcmp(last_section, rec->section) != 0) {
-                       /* print section */
-                       printformat(NULL, NULL, MSGLEVEL_CLIENTCRAP,
-                                   TXT_SET_TITLE, rec->section);
-                       last_section = rec->section;
-               }
-
-               if (clear || set_default || *value != '\0') {
+       if (!(clear || set_default || *value != '\0'))
+               set_print_pattern(key);
+       else {
+               rec = settings_get_record(key);
+               if (rec != NULL) {
                        /* change the setting */
                        switch (rec->type) {
                        case SETTING_TYPE_BOOLEAN:
@@ -117,9 +134,12 @@ static void cmd_set(char *data)
                                        set_boolean(key, value);
                                break;
                        case SETTING_TYPE_INT:
-                               settings_set_int(key, clear ? 0 :
-                                                set_default ? rec->default_value.v_int :
-                                                atoi(value));
+                               if (clear)
+                                       settings_set_int(key, 0);
+                               else if (set_default)
+                                       settings_set_int(key, rec->default_value.v_int);
+                               else
+                                       set_int(key, value);
                                break;
                        case SETTING_TYPE_STRING:
                                settings_set_str(key, clear ? "" :
@@ -146,20 +166,13 @@ static void cmd_set(char *data)
                                break;
                        }
                        signal_emit("setup changed", 0);
-               }
-
-                set_print(rec);
-               found = TRUE;
-
-               if (clear || *value != '\0')
-                       break;
+                       printformat(NULL, NULL, MSGLEVEL_CLIENTCRAP,
+                                   TXT_SET_TITLE, rec->section);
+                       set_print(rec);
+               } else
+                       printformat(NULL, NULL, MSGLEVEL_CLIENTERROR,
+                                   TXT_SET_UNKNOWN, key);
        }
-       g_slist_free(sets);
-
-        if (!found) {
-               printformat(NULL, NULL, MSGLEVEL_CLIENTERROR,
-                           TXT_SET_UNKNOWN, key);
-        }
 
         cmd_params_free(free_arg);
 }
index 06621c776a2e83b7eaf435cff6ffc4456505d62c..30df327b1f4c04101d1ddfac06ebf5b85358b5f5 100644 (file)
@@ -13,9 +13,9 @@
     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     GNU General Public License for more details.
 
-    You should have received a copy of the GNU General Public License
-    along with this program; if not, write to the Free Software
-    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+    You should have received a copy of the GNU General Public License along
+    with this program; if not, write to the Free Software Foundation, Inc.,
+    51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 */
 
 #include "module.h"
@@ -387,7 +387,7 @@ WINDOW_REC *window_find_item(SERVER_REC *server, const char *name)
        }
 
        if (item == NULL)
-               return 0;
+               return NULL;
 
        return window_item_window(item);
 }
@@ -574,14 +574,15 @@ static void window_print_daychange(WINDOW_REC *window, struct tm *tm)
         THEME_REC *theme;
         TEXT_DEST_REC dest;
        char *format, str[256];
+       int ret;
 
        theme = active_win->theme != NULL ? active_win->theme : current_theme;
        format_create_dest(&dest, NULL, NULL, MSGLEVEL_NEVER, window);
        format = format_get_text_theme(theme, MODULE_NAME, &dest,
                                       TXT_DAYCHANGE);
-       if (strftime(str, sizeof(str), format, tm) <= 0)
-                str[0] = '\0';
+       ret = strftime(str, sizeof(str), format, tm);
        g_free(format);
+       if (ret <= 0) return;
 
        printtext_string_window(window, MSGLEVEL_NEVER, str);
 }
index ccfad968be7cb82adad035786b8262f7c84d13c5..8fb2a6f0d07e0da99b7ff87cca18fec369dd9ff1 100644 (file)
@@ -13,9 +13,9 @@
     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     GNU General Public License for more details.
 
-    You should have received a copy of the GNU General Public License
-    along with this program; if not, write to the Free Software
-    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+    You should have received a copy of the GNU General Public License along
+    with this program; if not, write to the Free Software Foundation, Inc.,
+    51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 */
 
 #include "module.h"
 #include "window-items.h"
 #include "formats.h"
 #include "themes.h"
-#include "translation.h"
-#ifdef HAVE_GLIB2
 #include "recode.h"
 #include "utf8.h"
-#endif
 
 static const char *format_backs = "04261537";
 static const char *format_fores = "kbgcrmyw";
@@ -84,22 +81,6 @@ static void format_expand_code(const char **format, GString *out, int *flags)
                else if (**format == '-')
                        set = FALSE;
                else switch (**format) {
-               case 'i':
-                       /* indent function */
-                       (*format)++;
-                       if (**format == '=')
-                               (*format)++;
-
-                       g_string_append_c(out, 4);
-                       g_string_append_c(out, FORMAT_STYLE_INDENT_FUNC);
-                       while (**format != ']' && **format != '\0' &&
-                              **format != ',') {
-                               g_string_append_c(out, **format);
-                               (*format)++;
-                       }
-                       g_string_append_c(out, ',');
-                       (*format)--;
-                       break;
                case 's':
                case 'S':
                        *flags |= !set ? PRINT_FLAG_UNSET_LINE_START :
@@ -299,7 +280,7 @@ void format_create_dest_tag(TEXT_DEST_REC *dest, void *server,
        dest->window = window != NULL ? window :
                window_find_closest(server, target, level);
 }
-#ifdef HAVE_GLIB2
+
 static int advance (char const **str, gboolean utf8)
 {
        if (utf8) {
@@ -308,28 +289,24 @@ static int advance (char const **str, gboolean utf8)
                c = g_utf8_get_char(*str);
                *str = g_utf8_next_char(*str);
 
-               return utf8_width(c);
+               return unichar_isprint(c) ? mk_wcwidth(c) : 1;
        } else {
                *str += 1;
 
                return 1;
        }
 }
-#endif
+
 /* Return length of text part in string (ie. without % codes) */
 int format_get_length(const char *str)
 {
        GString *tmp;
        int len;
-#ifdef HAVE_GLIB2
        gboolean utf8;
-#endif
 
        g_return_val_if_fail(str != NULL, 0);
 
-#ifdef HAVE_GLIB2
        utf8 = is_utf8() && g_utf8_validate(str, -1, NULL);
-#endif
 
        tmp = g_string_new(NULL);
        len = 0;
@@ -346,12 +323,8 @@ int format_get_length(const char *str)
                        if (*str != '%')
                                len++;
                }
-#ifdef HAVE_GLIB2
+
                len += advance(&str, utf8);
-#else
-         len++;
-               str++;
-#endif
        }
 
        g_string_free(tmp, TRUE);
@@ -365,15 +338,13 @@ int format_real_length(const char *str, int len)
 {
        GString *tmp;
        const char *start;
-#ifdef HAVE_GLIB2
+       const char *oldstr;
        gboolean utf8;
-#endif
+
        g_return_val_if_fail(str != NULL, 0);
        g_return_val_if_fail(len >= 0, 0);
 
-#ifdef HAVE_GLIB2
        utf8 = is_utf8() && g_utf8_validate(str, -1, NULL);
-#endif
 
        start = str;
        tmp = g_string_new(NULL);
@@ -393,12 +364,10 @@ int format_real_length(const char *str, int len)
                        }
                }
 
-#ifdef HAVE_GLIB2
+               oldstr = str;
                len -= advance(&str, utf8);
-#else
-         len--;
-               str++;
-#endif
+               if (len < 0)
+                       str = oldstr;
        }
 
        g_string_free(tmp, TRUE);
@@ -843,10 +812,10 @@ static void get_mirc_color(const char **str, int *fg_ret, int *bg_ret)
                }
                if (**str == ',') {
                        /* background color */
-                       (*str)++;
-                       if (!i_isdigit(**str))
+                       if (!i_isdigit((*str)[1]))
                                bg = -1;
                        else {
+                               (*str)++;
                                bg = **str-'0';
                                (*str)++;
                                if (i_isdigit(**str)) {
@@ -963,8 +932,7 @@ void format_send_to_gui(TEXT_DEST_REC *dest, const char *text)
        int fgcolor, bgcolor;
        int flags;
 
-       theme = dest->window != NULL && dest->window->theme != NULL ?
-               dest->window->theme : current_theme;
+       theme = window_get_theme(dest->window);
 
        dup = str = g_strdup(text);
 
@@ -977,8 +945,6 @@ void format_send_to_gui(TEXT_DEST_REC *dest, const char *text)
                                *ptr++ = '\0';
                                break;
                        }
-
-                       *ptr = (char) translation_in[(int) (unsigned char) *ptr];
                }
 
                if (type == 7) {
@@ -1000,8 +966,12 @@ void format_send_to_gui(TEXT_DEST_REC *dest, const char *text)
                        flags &= ~(GUI_PRINT_FLAG_INDENT|GUI_PRINT_FLAG_CLRTOEOL);
                }
 
-               if (type == '\n')
+               if (type == '\n') {
                        format_newline(dest->window);
+                       fgcolor = theme->default_color;
+                       bgcolor = -1;
+                       flags &= GUI_PRINT_FLAG_INDENT|GUI_PRINT_FLAG_MONOSPACE;
+               }
 
                if (*ptr == '\0')
                        break;
@@ -1043,18 +1013,6 @@ void format_send_to_gui(TEXT_DEST_REC *dest, const char *text)
                        case FORMAT_STYLE_INDENT:
                                flags |= GUI_PRINT_FLAG_INDENT;
                                break;
-                       case FORMAT_STYLE_INDENT_FUNC: {
-                               const char *start = ptr;
-                               while (*ptr != ',' && *ptr != '\0')
-                                       ptr++;
-                               if (*ptr != '\0') *ptr++ = '\0';
-                               ptr--;
-                               signal_emit_id(signal_gui_print_text, 6,
-                                              dest->window, NULL, NULL,
-                                              GINT_TO_POINTER(GUI_PRINT_FLAG_INDENT_FUNC),
-                                              start, dest);
-                               break;
-                       }
                        case FORMAT_STYLE_DEFAULTS:
                                fgcolor = theme->default_color;
                                bgcolor = -1;
@@ -1065,13 +1023,6 @@ void format_send_to_gui(TEXT_DEST_REC *dest, const char *text)
                        default:
                                if (*ptr != FORMAT_COLOR_NOCHANGE) {
                                        fgcolor = (unsigned char) *ptr-'0';
-                                       if (fgcolor <= 7)
-                                               flags &= ~GUI_PRINT_FLAG_BOLD;
-                                       else {
-                                               /* bold */
-                                               if (fgcolor != 8) fgcolor -= 8;
-                                               flags |= GUI_PRINT_FLAG_BOLD;
-                                       }
                                }
                                if (ptr[1] == '\0')
                                        break;
@@ -1079,13 +1030,6 @@ void format_send_to_gui(TEXT_DEST_REC *dest, const char *text)
                                ptr++;
                                if (*ptr != FORMAT_COLOR_NOCHANGE) {
                                        bgcolor = *ptr-'0';
-                                       if (bgcolor <= 7)
-                                               flags &= ~GUI_PRINT_FLAG_BLINK;
-                                       else {
-                                               /* blink */
-                                               bgcolor -= 8;
-                                               flags |= GUI_PRINT_FLAG_BLINK;
-                                       }
                                }
                        }
                        ptr++;
index 7dbdd90423ff0860bd773fa40194acc607d6a604..6c55a068f34477c6c46028b23c86a7482e8ab94e 100644 (file)
@@ -10,7 +10,6 @@
 #define GUI_PRINT_FLAG_BLINK         0x0008
 #define GUI_PRINT_FLAG_MIRC_COLOR    0x0010
 #define GUI_PRINT_FLAG_INDENT        0x0020
-#define GUI_PRINT_FLAG_INDENT_FUNC   0x0040
 #define GUI_PRINT_FLAG_NEWLINE       0x0080
 #define GUI_PRINT_FLAG_CLRTOEOL      0x0100
 #define GUI_PRINT_FLAG_MONOSPACE     0x0200
@@ -35,7 +34,7 @@ struct _FORMAT_REC {
 
 #define PRINT_FLAG_SET_LINE_START      0x0001
 #define PRINT_FLAG_SET_LINE_START_IRSSI        0x0002
-#define PRINT_FLAG_UNSET_LINE_START    0x0003
+#define PRINT_FLAG_UNSET_LINE_START    0x0040
 
 #define PRINT_FLAG_SET_TIMESTAMP       0x0004
 #define PRINT_FLAG_UNSET_TIMESTAMP     0x0008
@@ -129,7 +128,6 @@ void format_send_to_gui(TEXT_DEST_REC *dest, const char *text);
 #define FORMAT_STYLE_BOLD      (0x03 + FORMAT_STYLE_SPECIAL)
 #define FORMAT_STYLE_REVERSE   (0x04 + FORMAT_STYLE_SPECIAL)
 #define FORMAT_STYLE_INDENT    (0x05 + FORMAT_STYLE_SPECIAL)
-#define FORMAT_STYLE_INDENT_FUNC (0x06 + FORMAT_STYLE_SPECIAL)
 #define FORMAT_STYLE_DEFAULTS  (0x07 + FORMAT_STYLE_SPECIAL)
 #define FORMAT_STYLE_CLRTOEOL  (0x08 + FORMAT_STYLE_SPECIAL)
 #define FORMAT_STYLE_MONOSPACE (0x09 + FORMAT_STYLE_SPECIAL)
index 4a913ee6535b0137eeb088613113287d47e95d3b..f501db9311250ced88aca6ecfe205ef561eb9467 100644 (file)
@@ -13,9 +13,9 @@
     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     GNU General Public License for more details.
 
-    You should have received a copy of the GNU General Public License
-    along with this program; if not, write to the Free Software
-    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+    You should have received a copy of the GNU General Public License along
+    with this program; if not, write to the Free Software Foundation, Inc.,
+    51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 */
 
 #include "module.h"
@@ -40,7 +40,7 @@ static NICKMATCH_REC *nickmatch;
 static int never_hilight_level, default_hilight_level;
 GSList *hilights;
 
-static void reset_cache(void)
+static void reset_level_cache(void)
 {
        GSList *tmp;
 
@@ -51,7 +51,11 @@ static void reset_cache(void)
                if (never_hilight_level & rec->level)
                         never_hilight_level &= ~rec->level;
        }
+}
 
+static void reset_cache(void)
+{
+       reset_level_cache();
        nickmatch_rebuild(nickmatch);
 }
 
@@ -353,7 +357,7 @@ static void sig_print_text(TEXT_DEST_REC *dest, const char *text,
        } else {
                /* hilight part of the line */
                 GString *tmp;
-                char *middle, *lastcolor;
+                char *middle;
                int pos, color_pos, color_len;
 
                 tmp = g_string_new(NULL);
@@ -377,16 +381,13 @@ static void sig_print_text(TEXT_DEST_REC *dest, const char *text,
                pos = strip_real_length(text, hilight_end,
                                        &color_pos, &color_len);
                if (color_pos > 0)
-                       lastcolor = g_strndup(text+color_pos, color_len);
+                       g_string_append_len(tmp, text+color_pos, color_len);
                 else {
                         /* no colors in line, change back to default */
-                       lastcolor = g_malloc0(3);
-                       lastcolor[0] = 4;
-                        lastcolor[1] = FORMAT_STYLE_DEFAULTS;
+                       g_string_append_c(tmp, 4);
+                       g_string_append_c(tmp, FORMAT_STYLE_DEFAULTS);
                }
-               g_string_append(tmp, lastcolor);
                g_string_append(tmp, text+pos);
-               g_free(lastcolor);
 
                 newstr = tmp->str;
                 g_string_free(tmp, FALSE);
@@ -479,8 +480,8 @@ static void hilight_print(int index, HILIGHT_REC *rec)
                if (rec->word) g_string_append(options, "-word ");
        }
 
-       if (rec->nickmask) g_string_append(options, "-nickmask ");
-       if (rec->fullword) g_string_append(options, "-fullword ");
+       if (rec->nickmask) g_string_append(options, "-mask ");
+       if (rec->fullword) g_string_append(options, "-full ");
        if (rec->regexp) {
                g_string_append(options, "-regexp ");
 #ifdef HAVE_REGEX_H
@@ -490,11 +491,11 @@ static void hilight_print(int index, HILIGHT_REC *rec)
        }
 
        if (rec->priority != 0)
-               g_string_sprintfa(options, "-priority %d ", rec->priority);
+               g_string_append_printf(options, "-priority %d ", rec->priority);
        if (rec->color != NULL)
-               g_string_sprintfa(options, "-color %s ", rec->color);
+               g_string_append_printf(options, "-color %s ", rec->color);
        if (rec->act_color != NULL)
-               g_string_sprintfa(options, "-actcolor %s ", rec->act_color);
+               g_string_append_printf(options, "-actcolor %s ", rec->act_color);
 
        chans = rec->channels == NULL ? NULL :
                g_strjoinv(",", rec->channels);
@@ -558,7 +559,7 @@ static void cmd_hilight(const char *data)
        if (*text == '\0') cmd_param_error(CMDERR_NOT_ENOUGH_PARAMS);
 
        channels = (chanarg == NULL || *chanarg == '\0') ? NULL :
-               g_strsplit(replace_chars(chanarg, ',', ' '), " ", -1);
+               g_strsplit(chanarg, ",", -1);
 
        rec = hilight_find(text, channels);
        if (rec == NULL) {
@@ -575,7 +576,7 @@ static void cmd_hilight(const char *data)
        }
 
        rec->level = (levelarg == NULL || *levelarg == '\0') ? 0 :
-               level2bits(replace_chars(levelarg, ',', ' '));
+               level2bits(replace_chars(levelarg, ',', ' '), NULL);
        rec->priority = priorityarg == NULL ? 0 : atoi(priorityarg);
 
        if (g_hash_table_lookup(optlist, "line") != NULL) {
@@ -675,6 +676,7 @@ static void hilight_nick_cache(GHashTable *list, CHANNEL_REC *channel,
 static void read_settings(void)
 {
        default_hilight_level = settings_get_level("hilight_level");
+       reset_level_cache();
 }
 
 void hilight_text_init(void)
index 717bed1f6248ab6602559dc4b0dbc0f9d4c84d9e..49bcd399694c83902da7a303965372121c4b2753 100644 (file)
@@ -13,9 +13,9 @@
     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     GNU General Public License for more details.
 
-    You should have received a copy of the GNU General Public License
-    along with this program; if not, write to the Free Software
-    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+    You should have received a copy of the GNU General Public License along
+    with this program; if not, write to the Free Software Foundation, Inc.,
+    51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 */
 
 #include "module.h"
@@ -228,6 +228,7 @@ static int expand_combo(const char *start, const char *end, GSList **out)
        if (list->next == NULL) {
                 /* only one way to generate the combo, good */
                 rec = list->data;
+               g_slist_free(list);
                return expand_key(rec->key, out);
        }
 
@@ -252,6 +253,7 @@ static int expand_combo(const char *start, const char *end, GSList **out)
        }
 
         rec = list->data;
+       g_slist_free(list);
        if (!expand_key(rec->key, out)) {
                /* illegal key combo, remove from list */
                expand_out_free(*out);
@@ -298,7 +300,7 @@ static int expand_key(const char *key, GSList **out)
                        expand_out_char(*out, *key);
                        expand_out_char(*out, '-');
                         last_hyphen = FALSE; /* optional */
-               } else if (last_hyphen && i_isalnum(*key) && !i_isdigit(*key)) {
+               } else if (last_hyphen && i_isalpha(*key)) {
                         /* possibly beginning of keycombo */
                        start = key;
                         last_hyphen = FALSE;
@@ -571,11 +573,8 @@ int key_pressed(KEYBOARD_REC *keyboard, const char *key)
                 g_strconcat(keyboard->key_state, "-", key, NULL);
        g_free_and_null(keyboard->key_state);
 
-#if GLIB_MAJOR_VERSION == 2
-#  define GSearchFunc GCompareFunc
-#endif
        rec = g_tree_search(key_states,
-                           (GSearchFunc) key_states_search,
+                           (GCompareFunc) key_states_search,
                            combo);
        if (rec == NULL) {
                /* unknown key combo, eat the invalid key
@@ -673,7 +672,7 @@ static void cmd_show_keys(const char *searchkey, int full)
        printformat(NULL, NULL, MSGLEVEL_CLIENTCRAP, TXT_BIND_FOOTER);
 }
 
-/* SYNTAX: BIND [-delete] [<key> [<command> [<data>]]] */
+/* SYNTAX: BIND [-list] [-delete] [<key> [<command> [<data>]]] */
 static void cmd_bind(const char *data)
 {
        GHashTable *optlist;
@@ -685,6 +684,19 @@ static void cmd_bind(const char *data)
                            "bind", &optlist, &key, &id, &keydata))
                return;
 
+       if (g_hash_table_lookup(optlist, "list")) {
+               GSList *tmp;
+
+               for (tmp = keyinfos; tmp != NULL; tmp = tmp->next) {
+                       KEYINFO_REC *rec = tmp->data;
+
+                       printformat(NULL, NULL, MSGLEVEL_CLIENTCRAP, TXT_BIND_COMMAND_LIST,
+                                   rec->id, rec->description ? rec->description : "");
+               }
+               cmd_params_free(free_arg);
+               return;
+       }
+
        if (*key != '\0' && g_hash_table_lookup(optlist, "delete")) {
                 /* delete key */
                key_configure_remove(key);
@@ -832,7 +844,7 @@ void keyboard_init(void)
         key_config_frozen = 0;
        memset(used_keys, 0, sizeof(used_keys));
 
-       key_bind("command", "Run any IRC command", NULL, NULL, (SIGNAL_FUNC) sig_command);
+       key_bind("command", "Run any command", NULL, NULL, (SIGNAL_FUNC) sig_command);
        key_bind("key", "Specify name for key binding", NULL, NULL, (SIGNAL_FUNC) sig_key);
        key_bind("multi", "Run multiple commands", NULL, NULL, (SIGNAL_FUNC) sig_multi);
        key_bind("nothing", "Do nothing", NULL, NULL, (SIGNAL_FUNC) sig_nothing);
@@ -843,7 +855,7 @@ void keyboard_init(void)
        signal_add("complete command bind", (SIGNAL_FUNC) sig_complete_bind);
 
        command_bind("bind", NULL, (SIGNAL_FUNC) cmd_bind);
-       command_set_options("bind", "delete");
+       command_set_options("bind", "delete list");
 }
 
 void keyboard_deinit(void)
index cae4b9a584482392e1fe2306e6f7f5db625fd272..db11fae1ce3cdc6ff7d11d66e01488ef4cdf7920 100644 (file)
@@ -13,9 +13,9 @@
     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     GNU General Public License for more details.
 
-    You should have received a copy of the GNU General Public License
-    along with this program; if not, write to the Free Software
-    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+    You should have received a copy of the GNU General Public License along
+    with this program; if not, write to the Free Software Foundation, Inc.,
+    51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 */
 
 #include "module.h"
@@ -45,7 +45,7 @@ FORMAT_REC fecommon_core_formats[] = {
        { "windowlist_header", "%#Ref Name                 Active item     Server          Level", 0 },
        { "windowlist_line", "%#$[3]0 %|$[20]1 $[15]2 $[15]3 $4", 5, { 1, 0, 0, 0, 0 } },
        { "windowlist_footer", "", 0 },
-       { "windows_layout_saved", "Layout of windows is now remembered next time you start irssi", 0 },
+       { "windows_layout_saved", "Layout of windows is now remembered", 0 },
        { "windows_layout_reset", "Layout of windows reset to defaults", 0 },
        { "window_info_header", "", 0 },
        { "window_info_footer", "", 0 },
@@ -180,7 +180,7 @@ FORMAT_REC fecommon_core_formats[] = {
        { "log_started", "Started logging to file {hilight $0}", 1, { 0 } },
        { "log_stopped", "Stopped logging to file {hilight $0}", 1, { 0 } },
        { "log_list_header", "%#Logs:", 0 },
-       { "log_list", "%#$0 $1: $2 $3$4", 5, { 1, 0, 0, 0, 0, 0 } },
+       { "log_list", "%#$0 $1: $2 $3$4$5", 6, { 1, 0, 0, 0, 0, 0 } },
        { "log_list_footer", "", 0 },
        { "windowlog_file", "Window LOGFILE set to $0", 1, { 0 } },
        { "windowlog_file_logging", "Can't change window's logfile while log is on", 0 },
@@ -215,6 +215,7 @@ FORMAT_REC fecommon_core_formats[] = {
        { "chan_not_synced", "Channel not fully synchronized yet, try again after a while", 0 },
        { "illegal_proto", "Command isn't designed for the chat protocol of the active server", 0 },
        { "not_good_idea", "Doing this is not a good idea. Add -YES option to command if you really mean it", 0 },
+       { "invalid_number", "Invalid number", 0 },
        { "invalid_time", "Invalid timestamp", 0 },
        { "invalid_level", "Invalid message level", 0 },
        { "invalid_size", "Invalid size", 0 },
@@ -228,10 +229,10 @@ FORMAT_REC fecommon_core_formats[] = {
        { "theme_saved", "Theme saved to $0", 1, { 0 } },
        { "theme_save_failed", "Error saving theme to $0: $1", 2, { 0, 0 } },
        { "theme_not_found", "Theme {hilight $0} not found", 1, { 0 } },
-       { "theme_changed", "Using now theme {hilight $0} ($1)", 2, { 0, 0 } },
+       { "theme_changed", "Now using theme {hilight $0} ($1)", 2, { 0, 0 } },
        { "window_theme", "Using theme {hilight $0} in this window", 2, { 0, 0 } },
        { "window_theme_default", "No theme is set for this window", 0 },
-       { "window_theme_changed", "Using now theme {hilight $0} ($1) in this window", 2, { 0, 0 } },
+       { "window_theme_changed", "Now using theme {hilight $0} ($1) in this window", 2, { 0, 0 } },
        { "window_theme_removed", "Removed theme from this window", 0 },
        { "format_title", "%:[{hilight $0}] - [{hilight $1}]%:", 2, { 0, 0 } },
        { "format_subtitle", "[{hilight $0}]", 1, { 0 } },
@@ -245,7 +246,7 @@ FORMAT_REC fecommon_core_formats[] = {
        { "unignored", "Unignored {nick $0}", 1, { 0 } },
        { "ignore_not_found", "{nick $0} is not being ignored", 1, { 0 } },
        { "ignore_no_ignores", "There are no ignores", 0 },
-       { "ignore_header", "%#Ignorance List:", 0 },
+       { "ignore_header", "%#Ignore List:", 0 },
        { "ignore_line", "%#$[-4]0 $1: $2 $3 $4", 4, { 1, 0, 0, 0 } },
        { "ignore_footer", "", 0 },
 
@@ -269,6 +270,7 @@ FORMAT_REC fecommon_core_formats[] = {
        { "perl_error", "Perl error: $0", 1, { 0 } },
        { "bind_header", "%#Key                  Action", 0 },
        { "bind_list", "%#$[!20]0 $1 $2", 3, { 0, 0, 0 } },
+       { "bind_command_list", "$[!30]0 $1", 2, { 0, 0 } },
        { "bind_footer", "", 0 },
        { "bind_unknown_id", "Unknown bind action: $0", 1, { 0 } },
        { "config_saved", "Saved configuration to file $0", 1, { 0 } },
@@ -280,9 +282,7 @@ FORMAT_REC fecommon_core_formats[] = {
        { "set_item", "$0 = $1", 2, { 0, 0 } },
        { "set_unknown", "Unknown setting $0", 1, { 0 } },
        { "set_not_boolean", "Setting {hilight $0} isn't boolean, use /SET", 1, { 0 } },
-       { "translation_not_found", "Error opening translation table file $0: $1", 2, { 0, 0 } },
-       { "translation_file_error", "Error parsing translation table file $0", 1, { 0 } },
-       { "no_completions", "There's no completions", 0 },
+       { "no_completions", "There are no completions", 0 },
        { "completion_removed", "Removed completion $0", 1, { 0 } },
        { "completion_header", "%#Key        Value                                    Auto", 0 },
        { "completion_line", "%#$[10]0 $[!40]1 $2", 3, { 0, 0, 0 } },
index 135378bab07e38fb3e953bc795eb507e2f83cfa8..18bf91f5177f99837328d932b88206b1c7c472b1 100644 (file)
@@ -184,6 +184,7 @@ enum {
        TXT_CHAN_NOT_SYNCED,
         TXT_ILLEGAL_PROTO,
        TXT_NOT_GOOD_IDEA,
+       TXT_INVALID_NUMBER,
        TXT_INVALID_TIME,
        TXT_INVALID_LEVEL,
        TXT_INVALID_SIZE,
@@ -234,6 +235,7 @@ enum {
        TXT_PERL_ERROR,
        TXT_BIND_HEADER,
        TXT_BIND_LIST,
+       TXT_BIND_COMMAND_LIST,
        TXT_BIND_FOOTER,
        TXT_BIND_UNKNOWN_ID,
        TXT_CONFIG_SAVED,
@@ -245,8 +247,6 @@ enum {
         TXT_SET_ITEM,
         TXT_SET_UNKNOWN,
        TXT_SET_NOT_BOOLEAN,
-       TXT_TRANSLATION_NOT_FOUND,
-       TXT_TRANSLATION_FILE_ERROR,
        TXT_NO_COMPLETIONS,
         TXT_COMPLETION_REMOVED,
        TXT_COMPLETION_HEADER,
index a3d34a22ace243ba688cbd56e154ee3d035bda6d..d3653f90a66991dfd980f0164439870b1ff0465e 100644 (file)
@@ -13,9 +13,9 @@
     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     GNU General Public License for more details.
 
-    You should have received a copy of the GNU General Public License
-    along with this program; if not, write to the Free Software
-    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+    You should have received a copy of the GNU General Public License along
+    with this program; if not, write to the Free Software Foundation, Inc.,
+    51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 */
 
 #include "module.h"
@@ -49,16 +49,23 @@ void printformat_module_dest_args(const char *module, TEXT_DEST_REC *dest,
        char *arglist[MAX_FORMAT_PARAMS];
        char buffer[DEFAULT_FORMAT_ARGLIST_SIZE];
        FORMAT_REC *formats;
-       THEME_REC *theme;
-       char *str;
-
-       theme = window_get_theme(dest->window);
 
        formats = g_hash_table_lookup(default_formats, module);
        format_read_arglist(va, &formats[formatnum],
                            arglist, sizeof(arglist)/sizeof(char *),
                            buffer, sizeof(buffer));
 
+       printformat_module_dest_charargs(module, dest, formatnum, arglist);
+}
+
+void printformat_module_dest_charargs(const char *module, TEXT_DEST_REC *dest,
+                                     int formatnum, char **arglist)
+{
+       THEME_REC *theme;
+       char *str;
+
+       theme = window_get_theme(dest->window);
+
        if (!sending_print_starting) {
                sending_print_starting = TRUE;
                signal_emit_id(signal_print_starting, 1, dest);
@@ -219,31 +226,31 @@ static char *printtext_get_args(TEXT_DEST_REC *dest, const char *str,
                }
                case 'd': {
                        int d = (int) va_arg(va, int);
-                       g_string_sprintfa(out, "%d", d);
+                       g_string_append_printf(out, "%d", d);
                        break;
                }
                case 'f': {
                        double f = (double) va_arg(va, double);
-                       g_string_sprintfa(out, "%0.2f", f);
+                       g_string_append_printf(out, "%0.2f", f);
                        break;
                }
                case 'u': {
                        unsigned int d =
                                (unsigned int) va_arg(va, unsigned int);
-                       g_string_sprintfa(out, "%u", d);
+                       g_string_append_printf(out, "%u", d);
                        break;
                 }
                case 'l': {
                        long d = (long) va_arg(va, long);
 
                        if (*++str != 'd' && *str != 'u') {
-                               g_string_sprintfa(out, "%ld", d);
+                               g_string_append_printf(out, "%ld", d);
                                str--;
                        } else {
                                if (*str == 'd')
-                                       g_string_sprintfa(out, "%ld", d);
+                                       g_string_append_printf(out, "%ld", d);
                                else
-                                       g_string_sprintfa(out, "%lu", d);
+                                       g_string_append_printf(out, "%lu", d);
                        }
                        break;
                }
@@ -338,7 +345,7 @@ void printtext_string(void *server, const char *target, int level, const char *t
 
        if (!sending_print_starting) {
                sending_print_starting = TRUE;
-               signal_emit_id(signal_print_starting, 1, dest);
+               signal_emit_id(signal_print_starting, 1, &dest);
                 sending_print_starting = FALSE;
        }
 
@@ -360,7 +367,7 @@ void printtext_string_window(WINDOW_REC *window, int level, const char *text)
 
        if (!sending_print_starting) {
                sending_print_starting = TRUE;
-               signal_emit_id(signal_print_starting, 1, dest);
+               signal_emit_id(signal_print_starting, 1, &dest);
                 sending_print_starting = FALSE;
        }
 
@@ -462,9 +469,9 @@ static void sig_gui_dialog(const char *type, const char *text)
 {
        char *format;
 
-       if (g_strcasecmp(type, "warning") == 0)
+       if (g_ascii_strcasecmp(type, "warning") == 0)
                format = "%_Warning:%_ %s";
-       else if (g_strcasecmp(type, "error") == 0)
+       else if (g_ascii_strcasecmp(type, "error") == 0)
                format = "%_Error:%_ %s";
        else
                format = "%s";
index 463f3572810357cc2756d06752093f19a84e526f..66ba28f44fc61e614408e377b15eb0a4bffb44dc 100644 (file)
@@ -11,6 +11,7 @@ void printformat_module_dest(const char *module, TEXT_DEST_REC *dest, int format
 void printformat_module_args(const char *module, void *server, const char *target, int level, int formatnum, va_list va);
 void printformat_module_window_args(const char *module, WINDOW_REC *window, int level, int formatnum, va_list va);
 void printformat_module_dest_args(const char *module, TEXT_DEST_REC *dest, int formatnum, va_list va);
+void printformat_module_dest_charargs(const char *module, TEXT_DEST_REC *dest, int formatnum, char **arglist);
 
 void printtext(void *server, const char *target, int level, const char *text, ...);
 void printtext_string(void *server, const char *target, int level, const char *text);
index b4407bda9e6b521c3a1e17453793341eecbaae5a..7c50c28cf9224c051a3c5cbee0bb2dd8d6409189 100644 (file)
@@ -13,9 +13,9 @@
     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     GNU General Public License for more details.
 
-    You should have received a copy of the GNU General Public License
-    along with this program; if not, write to the Free Software
-    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+    You should have received a copy of the GNU General Public License along
+    with this program; if not, write to the Free Software Foundation, Inc.,
+    51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 */
 
 #include "module.h"
@@ -1144,7 +1144,7 @@ static void theme_save(THEME_REC *theme, int save_all)
         if (config != NULL)
                 config_parse(config);
         else {
-                if (g_strcasecmp(theme->name, "default") == 0) {
+                if (g_ascii_strcasecmp(theme->name, "default") == 0) {
                         config = config_open(NULL, -1);
                         config_parse_data(config, default_theme, "internal");
                         config_change_file_name(config, theme->path, 0660);
@@ -1339,6 +1339,8 @@ static THEME_REC *read_internal_theme(void)
        THEME_REC *theme;
 
        theme = theme_create("internal", "_internal");
+       theme->refcount++;
+       theme_destroy(theme);
 
        config = config_open(NULL, -1);
        config_parse_data(config, default_theme, "internal");
@@ -1359,7 +1361,6 @@ void themes_init(void)
         init_finished = FALSE;
         init_errors = NULL;
 
-       themes = NULL;
        themes_reload();
 
        command_bind("format", NULL, (SIGNAL_FUNC) cmd_format);
diff --git a/apps/irssi/src/fe-common/core/translation.c b/apps/irssi/src/fe-common/core/translation.c
deleted file mode 100644 (file)
index d573fc1..0000000
+++ /dev/null
@@ -1,152 +0,0 @@
-/*
- translation.c : irssi
-
-    Copyright (C) 1999-2000 Timo Sirainen
-
-    This program is free software; you can redistribute it and/or modify
-    it under the terms of the GNU General Public License as published by
-    the Free Software Foundation; either version 2 of the License, or
-    (at your option) any later version.
-
-    This program is distributed in the hope that it will be useful,
-    but WITHOUT ANY WARRANTY; without even the implied warranty of
-    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-    GNU General Public License for more details.
-
-    You should have received a copy of the GNU General Public License
-    along with this program; if not, write to the Free Software
-    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
-*/
-
-#include "module.h"
-#include "module-formats.h"
-#include "signals.h"
-#include "line-split.h"
-#include "misc.h"
-#include "levels.h"
-#include "settings.h"
-
-#include "printtext.h"
-
-unsigned char translation_in[256], translation_out[256];
-static char *current_translation;
-
-void translation_reset(void)
-{
-       int n;
-
-       for (n = 0; n < 256; n++)
-               translation_in[n] = (unsigned char) n;
-       for (n = 0; n < 256; n++)
-               translation_out[n] = (unsigned char) n;
-}
-
-void translate_output(char *text)
-{
-       while (*text != '\0') {
-               *text = (char) translation_out[(int) (unsigned char) *text];
-               text++;
-       }
-}
-
-#define gethex(a) \
-       (i_isdigit(a) ? ((a)-'0') : (i_toupper(a)-'A'+10))
-
-void translation_parse_line(const char *str, int *pos)
-{
-       const char *ptr;
-       int value;
-
-       for (ptr = str; *ptr != '\0'; ptr++) {
-               if (ptr[0] != '0' || ptr[1] != 'x')
-                       break;
-               ptr += 2;
-
-               value = (gethex(ptr[0]) << 4) + gethex(ptr[1]);
-               if (*pos < 256)
-                       translation_in[*pos] = (unsigned char) value;
-               else
-                       translation_out[*pos-256] = (unsigned char) value;
-               (*pos)++;
-
-               ptr += 2;
-               if (*ptr != ',') break;
-       }
-}
-
-int translation_read(const char *file)
-{
-       char tmpbuf[1024], *str, *path;
-       LINEBUF_REC *buffer;
-       int f, pos, ret, recvlen;
-
-       g_return_val_if_fail(file != NULL, FALSE);
-
-       path = convert_home(file);
-       f = open(file, O_RDONLY);
-       g_free(path);
-
-       if (f == -1) {
-               printformat(NULL, NULL, MSGLEVEL_CLIENTERROR,
-                           TXT_TRANSLATION_NOT_FOUND, file,
-                           g_strerror(errno));
-               return FALSE;
-       }
-
-       pos = 0; buffer = NULL;
-       while (pos < 512) {
-               recvlen = read(f, tmpbuf, sizeof(tmpbuf));
-
-               ret = line_split(tmpbuf, recvlen, &str, &buffer);
-               if (ret <= 0) break;
-
-                translation_parse_line(str, &pos);
-       }
-       line_split_free(buffer);
-
-       close(f);
-       if (pos != 512) {
-               translation_reset();
-               printformat(NULL, NULL, MSGLEVEL_CLIENTERROR,
-                           TXT_TRANSLATION_FILE_ERROR, file);
-       }
-       return pos == 512;
-}
-
-static void read_settings(void)
-{
-       const char *translation;
-
-       translation = settings_get_str("translation");
-       if (*translation == '\0') {
-               if (current_translation != NULL) {
-                       g_free_and_null(current_translation);
-                        translation_reset();
-               }
-               return;
-       }
-
-       if (current_translation == NULL ||
-           strcmp(translation, current_translation) != 0) {
-                g_free_not_null(current_translation);
-               current_translation = g_strdup(translation);
-               translation_read(translation);
-       }
-}
-
-void translation_init(void)
-{
-       translation_reset();
-
-        current_translation = NULL;
-       settings_add_str("misc", "translation", "");
-       signal_add("setup changed", (SIGNAL_FUNC) read_settings);
-
-       read_settings();
-}
-
-void translation_deinit(void)
-{
-       read_settings();
-       signal_remove("setup changed", (SIGNAL_FUNC) read_settings);
-}
diff --git a/apps/irssi/src/fe-common/core/translation.h b/apps/irssi/src/fe-common/core/translation.h
deleted file mode 100644 (file)
index 48b2c3d..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-#ifndef __TRANSLATION_H
-#define __TRANSLATION_H
-
-extern unsigned char translation_in[256], translation_out[256];
-
-int translation_read(const char *file);
-void translate_output(char *text);
-
-void translation_init(void);
-void translation_deinit(void);
-
-#endif
index eaa77674e5527c53a9ad0cf3b99fcd2a0ba01296..2d07ea8e87c79c4a35bfe5258c53e845aa5c390b 100644 (file)
@@ -7,10 +7,6 @@
  * Copyright (C) 1999 Tom Tromey
  * Copyright (C) 2000 Red Hat, Inc.
  *
- * UTF-8 width tables based on locale data from GNU libc by
- *
- * Copyright (C) 1991-2002 Free Software Foundation, Inc.
- *
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Lesser General Public
  * License as published by the Free Software Foundation; either
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.         See the GNU
  * Lesser General Public License for more details.
  *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
  */
 
 #include "module.h"
 
-#define UTF8_COMPUTE(Char, Mask, Len)                                        \
-  if (Char < 128)                                                            \
-    {                                                                        \
-      Len = 1;                                                               \
-      Mask = 0x7f;                                                           \
-    }                                                                        \
-  else if ((Char & 0xe0) == 0xc0)                                            \
-    {                                                                        \
-      Len = 2;                                                               \
-      Mask = 0x1f;                                                           \
-    }                                                                        \
-  else if ((Char & 0xf0) == 0xe0)                                            \
-    {                                                                        \
-      Len = 3;                                                               \
-      Mask = 0x0f;                                                           \
-    }                                                                        \
-  else if ((Char & 0xf8) == 0xf0)                                            \
-    {                                                                        \
-      Len = 4;                                                               \
-      Mask = 0x07;                                                           \
-    }                                                                        \
-  else if ((Char & 0xfc) == 0xf8)                                            \
-    {                                                                        \
-      Len = 5;                                                               \
-      Mask = 0x03;                                                           \
-    }                                                                        \
-  else if ((Char & 0xfe) == 0xfc)                                            \
-    {                                                                        \
-      Len = 6;                                                               \
-      Mask = 0x01;                                                           \
-    }                                                                        \
-  else                                                                       \
-    Len = -1;
-
-#define UTF8_GET(Result, Chars, Count, Mask, Len)                            \
-  (Result) = (Chars)[0] & (Mask);                                            \
-  for ((Count) = 1; (Count) < (Len); ++(Count))                                      \
-    {                                                                        \
-      if (((Chars)[(Count)] & 0xc0) != 0x80)                                 \
-       {                                                                     \
-         (Result) = -1;                                                      \
-         break;                                                              \
-       }                                                                     \
-      (Result) <<= 6;                                                        \
-      (Result) |= ((Chars)[(Count)] & 0x3f);                                 \
-    }
-
-int get_utf8_char(const unsigned char **ptr, int len, unichar *chr_r)
-{
-       int i, result, mask, chrlen;
-
-        mask = 0;
-       UTF8_COMPUTE(**ptr, mask, chrlen);
-       if (chrlen == -1)
-               return -2;
-
-       if (chrlen > len)
-                return -1;
-
-       UTF8_GET(result, *ptr, i, mask, chrlen);
-       if (result == -1)
-                return -2;
-       
-       *chr_r = (unichar) result;
-       *ptr += chrlen-1;
-        return result;
-}
-
-int strlen_utf8(const char *str)
-{
-       const unsigned char *p = (const unsigned char *) str;
-        int len;
-       unichar chr_r;
-
-       len = 0;
-       while (*p != '\0' && get_utf8_char(&p, 6, &chr_r) > 0) {
-               len++;
-                p++;
-       }
-        return len;
-}
-
-int utf16_char_to_utf8(unichar c, char *outbuf)
-{
-       int len, i, first;
-
-        len = 0;
-       if (c < 0x80) {
-               first = 0;
-               len = 1;
-       } else if (c < 0x800) {
-               first = 0xc0;
-               len = 2;
-       } else if (c < 0x10000) {
-               first = 0xe0;
-               len = 3;
-       } else if (c < 0x200000) {
-               first = 0xf0;
-               len = 4;
-       } else if (c < 0x4000000) {
-               first = 0xf8;
-               len = 5;
-       } else {
-               first = 0xfc;
-               len = 6;
-       }
-
-       if (outbuf) {
-               for (i = len - 1; i > 0; --i) {
-                       outbuf[i] = (c & 0x3f) | 0x80;
-                       c >>= 6;
-               }
-               outbuf[0] = c | first;
-       }
-
-       return len;
-}
-
-void utf8_to_utf16(const char *str, unichar *out)
-{
-       const unsigned char *p = (const unsigned char *) str;
-        int i, result, mask, len;
-
-       while (*p != '\0') {
-                mask = 0;
-               UTF8_COMPUTE(*p, mask, len);
-               if (len == -1)
-                        break;
-
-               UTF8_GET(result, p, i, mask, len);
-               if (result == -1)
-                        break;
-
-                p += len;
-                *out++ = result;
-       }
-
-       *out = '\0';
-}
-
-void utf16_to_utf8(const unichar *str, char *out)
-{
-       int len;
-
-       while (*str != '\0') {
-               len = utf16_char_to_utf8(*str, out);
-                out += len;
-
-               str++;
-       }
-       *out = '\0';
-}
-
-void utf16_to_utf8_with_pos(const unichar *str, int spos, char *out, int *opos)
-{
-       int len;
-       const unichar *sstart = str;
-       char *ostart = out;
-
-       *opos = 0;
-       while (*str != '\0') {
-               len = utf16_char_to_utf8(*str, out);
-                out += len;
-
-               str++;
-               if(str - sstart == spos)
-                       *opos = out - ostart;
-       }
-       *out = '\0';
-}
-
-static const unichar wcc[] = {
-       0x0, 0x300, 0x34F, 0x360, 0x363, 0x483, 0x487, 0x488, 0x48A, 0x591,
-       0x5A2, 0x5A3, 0x5BA, 0x5BB, 0x5BE, 0x5BF, 0x5C0, 0x5C1, 0x5C3, 0x5C4,
-       0x5C5, 0x64B, 0x656, 0x670, 0x671, 0x6D6, 0x6E5, 0x6E7, 0x6E9, 0x6EA,
-       0x6EE, 0x70F, 0x710, 0x711, 0x712, 0x730, 0x74B, 0x7A6, 0x7B1, 0x901,
-       0x903, 0x93C, 0x93D, 0x941, 0x949, 0x94D, 0x94E, 0x951, 0x955, 0x962,
-       0x964, 0x981, 0x982, 0x9BC, 0x9BD, 0x9C1, 0x9C5, 0x9CD, 0x9CE, 0x9E2,
-       0x9E4, 0xA02, 0xA03, 0xA3C, 0xA3D, 0xA41, 0xA43, 0xA47, 0xA49, 0xA4B,
-       0xA4E, 0xA70, 0xA72, 0xA81, 0xA83, 0xABC, 0xABD, 0xAC1, 0xAC6, 0xAC7,
-       0xAC9, 0xACD, 0xACE, 0xB01, 0xB02, 0xB3C, 0xB3D, 0xB3F, 0xB40, 0xB41,
-       0xB44, 0xB4D, 0xB4E, 0xB56, 0xB57, 0xB82, 0xB83, 0xBC0, 0xBC1, 0xBCD,
-       0xBCE, 0xC3E, 0xC41, 0xC46, 0xC49, 0xC4A, 0xC4E, 0xC55, 0xC57, 0xCBF,
-       0xCC0, 0xCC6, 0xCC7, 0xCCC, 0xCCE, 0xD41, 0xD44, 0xD4D, 0xD4E, 0xDCA,
-       0xDCB, 0xDD2, 0xDD5, 0xDD6, 0xDD7, 0xE31, 0xE32, 0xE34, 0xE3B, 0xE47,
-       0xE4F, 0xEB1, 0xEB2, 0xEB4, 0xEBA, 0xEBB, 0xEBD, 0xEC8, 0xECE, 0xF18,
-       0xF1A, 0xF35, 0xF36, 0xF37, 0xF38, 0xF39, 0xF3A, 0xF71, 0xF7F, 0xF80,
-       0xF85, 0xF86, 0xF88, 0xF90, 0xF98, 0xF99, 0xFBD, 0xFC6, 0xFC7, 0x102D,
-       0x1031, 0x1032, 0x1033, 0x1036, 0x1038, 0x1039, 0x103A, 0x1058, 0x105A,
-       0x1100, 0x1160, 0x17B7, 0x17BE, 0x17C6, 0x17C7, 0x17C9, 0x17D4, 0x180B,
-       0x180F, 0x18A9, 0x18AA, 0x200B, 0x2010, 0x202A, 0x202F, 0x206A, 0x2070,
-       0x20D0, 0x20E4, 0x2E80, 0x3008, 0x300C, 0x3014, 0x3016, 0x3018, 0x301C,
-       0x302A, 0x3030, 0x303F, 0x3041, 0x3095, 0x3099, 0x309B, 0xA4C7, 0xAC00,
-       0xD7A4, 0xF8F0, 0xF900, 0xFA2E, 0xFB1E, 0xFB1F, 0xFE20, 0xFE24, 0xFE30,
-       0xFE6C, 0xFEFF, 0xFF00, 0xFF01, 0xFF5F, 0xFFE0, 0xFFE7, 0xFFF9, 0xFFFC,
-#if 1
-       0x1D167, 0x1D16A, 0x1D173, 0x1D183, 0x1D185, 0x1D18C, 0x1D1AA, 0x1D1AE,
-       0x20000, 0x2A6D7, 0x2F800, 0x2FA1E, 0xE0001, 0xE0002, 0xE0020, 0xE0080
-#endif
-};
-
-static const int wccnum = sizeof(wcc) / sizeof(wcc[0]) - 1;
-
-static const char wws[] = {
-       1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0,
-       1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0,
-       1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0,
-       1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0,
-       1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0,
-       1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0,
-       1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0,
-       1, 2, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 2, 1, 2,
-       1, 2, 1, 2, 0, 2, 1, 2, 1, 0, 2, 1, 2, 1, 0, 2, 1, 0, 1, 0, 1, 2, 1, 0,
-       1, 2, 1, 2, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 2, 1, 2, 1, 0, 1, 0, 1, -1
-};
-
-int utf8_width(unichar c)
-{
-       int p, q, r;
-       unichar d;
-
-       if (c < wcc[1])
-               return 1;
-
-       p = 0;
-       q = wccnum;
-
-       while (p < q - 1) {
-               r = (p + q)/2;
-               d = wcc[r];
-               if (d < c)
-                       p = r;
-               else if (d > c)
-                       q = r;
-               else
-                       return wws[r];
-       }
-
-       return wws[p];
-}
index f9e3e59e920ccf6bedf61b129bcad57ee54eedfd..163f1717ebcaae445cb1e570f239e45b07b8d8f3 100644 (file)
@@ -1,27 +1,6 @@
 #ifndef __UTF8_H
 #define __UTF8_H
 
-/* Returns -2 = invalid, -1 = need more data, otherwise unichar. */
-int get_utf8_char(const unsigned char **ptr, int len, unichar *chr_r);
-
-/* Returns length of UTF8 string */
-int strlen_utf8(const char *str);
-
-/* UTF-8 -> unichar string. The NUL is copied as well. */
-void utf8_to_utf16(const char *str, unichar *out);
-
-/* unichar -> UTF-8 string. outbuf must be at least 6 chars long.
-   Returns outbuf string length. */
-int utf16_char_to_utf8(unichar c, char *outbuf);
-
-/* unichar -> UTF-8 string. The NUL is copied as well.
-   Make sure out is at least 6 x length of str. */
-void utf16_to_utf8(const unichar *str, char *out);
-
-/* unichar -> UTF-8 string with position transformed. The NUL is copied as well.
-   Make sure out is at least 6 x length of str. */
-void utf16_to_utf8_with_pos(const unichar *str, int spos, char *out, int *opos);
-
 /* XXX I didn't check the encoding range of big5+. This is standard big5. */
 #define is_big5_los(lo) (0x40 <= (lo) && (lo) <= 0x7E) /* standard */
 #define is_big5_lox(lo) (0x80 <= (lo) && (lo) <= 0xFE) /* extended */
@@ -30,6 +9,8 @@ void utf16_to_utf8_with_pos(const unichar *str, int spos, char *out, int *opos);
 #define is_big5(hi,lo) (is_big5_hi(hi) && is_big5_lo(lo))
 
 /* Returns width for character (0-2). */
-int utf8_width(unichar c);
+int mk_wcwidth(unichar c);
+
+#define unichar_isprint(c) (((c) & ~0x80) >= 32)
 
 #endif
diff --git a/apps/irssi/src/fe-common/core/wcwidth.c b/apps/irssi/src/fe-common/core/wcwidth.c
new file mode 100644 (file)
index 0000000..4ebfaca
--- /dev/null
@@ -0,0 +1,220 @@
+/*
+ * This is an implementation of wcwidth() and wcswidth() (defined in
+ * IEEE Std 1002.1-2001) for Unicode.
+ *
+ * http://www.opengroup.org/onlinepubs/007904975/functions/wcwidth.html
+ * http://www.opengroup.org/onlinepubs/007904975/functions/wcswidth.html
+ *
+ * In fixed-width output devices, Latin characters all occupy a single
+ * "cell" position of equal width, whereas ideographic CJK characters
+ * occupy two such cells. Interoperability between terminal-line
+ * applications and (teletype-style) character terminals using the
+ * UTF-8 encoding requires agreement on which character should advance
+ * the cursor by how many cell positions. No established formal
+ * standards exist at present on which Unicode character shall occupy
+ * how many cell positions on character terminals. These routines are
+ * a first attempt of defining such behavior based on simple rules
+ * applied to data provided by the Unicode Consortium.
+ *
+ * For some graphical characters, the Unicode standard explicitly
+ * defines a character-cell width via the definition of the East Asian
+ * FullWidth (F), Wide (W), Half-width (H), and Narrow (Na) classes.
+ * In all these cases, there is no ambiguity about which width a
+ * terminal shall use. For characters in the East Asian Ambiguous (A)
+ * class, the width choice depends purely on a preference of backward
+ * compatibility with either historic CJK or Western practice.
+ * Choosing single-width for these characters is easy to justify as
+ * the appropriate long-term solution, as the CJK practice of
+ * displaying these characters as double-width comes from historic
+ * implementation simplicity (8-bit encoded characters were displayed
+ * single-width and 16-bit ones double-width, even for Greek,
+ * Cyrillic, etc.) and not any typographic considerations.
+ *
+ * Much less clear is the choice of width for the Not East Asian
+ * (Neutral) class. Existing practice does not dictate a width for any
+ * of these characters. It would nevertheless make sense
+ * typographically to allocate two character cells to characters such
+ * as for instance EM SPACE or VOLUME INTEGRAL, which cannot be
+ * represented adequately with a single-width glyph. The following
+ * routines at present merely assign a single-cell width to all
+ * neutral characters, in the interest of simplicity. This is not
+ * entirely satisfactory and should be reconsidered before
+ * establishing a formal standard in this area. At the moment, the
+ * decision which Not East Asian (Neutral) characters should be
+ * represented by double-width glyphs cannot yet be answered by
+ * applying a simple rule from the Unicode database content. Setting
+ * up a proper standard for the behavior of UTF-8 character terminals
+ * will require a careful analysis not only of each Unicode character,
+ * but also of each presentation form, something the author of these
+ * routines has avoided to do so far.
+ *
+ * http://www.unicode.org/unicode/reports/tr11/
+ *
+ * Markus Kuhn -- 2007-05-25 (Unicode 5.0)
+ *
+ * Permission to use, copy, modify, and distribute this software
+ * for any purpose and without fee is hereby granted. The author
+ * disclaims all warranties with regard to this software.
+ *
+ * Latest version: http://www.cl.cam.ac.uk/~mgk25/ucs/wcwidth.c
+ */
+
+#include "module.h"
+
+struct interval {
+  int first;
+  int last;
+};
+
+/* auxiliary function for binary search in interval table */
+static int bisearch(unichar ucs, const struct interval *table, int max) {
+  int min = 0;
+  int mid;
+
+  if (ucs < table[0].first || ucs > table[max].last)
+    return 0;
+  while (max >= min) {
+    mid = (min + max) / 2;
+    if (ucs > table[mid].last)
+      min = mid + 1;
+    else if (ucs < table[mid].first)
+      max = mid - 1;
+    else
+      return 1;
+  }
+
+  return 0;
+}
+
+
+/* The following two functions define the column width of an ISO 10646
+ * character as follows:
+ *
+ *    - The null character (U+0000) has a column width of 0.
+ *
+ *    - Other C0/C1 control characters and DEL will lead to a return
+ *      value of -1.
+ *
+ *    - Non-spacing and enclosing combining characters (general
+ *      category code Mn or Me in the Unicode database) have a
+ *      column width of 0.
+ *
+ *    - SOFT HYPHEN (U+00AD) has a column width of 1.
+ *
+ *    - Other format characters (general category code Cf in the Unicode
+ *      database) and ZERO WIDTH SPACE (U+200B) have a column width of 0.
+ *
+ *    - Hangul Jamo medial vowels and final consonants (U+1160-U+11FF)
+ *      have a column width of 0.
+ *
+ *    - Spacing characters in the East Asian Wide (W) or East Asian
+ *      Full-width (F) category as defined in Unicode Technical
+ *      Report #11 have a column width of 2.
+ *
+ *    - All remaining characters (including all printable
+ *      ISO 8859-1 and WGL4 characters, Unicode control characters,
+ *      etc.) have a column width of 1.
+ *
+ * This implementation assumes that wchar_t characters are encoded
+ * in ISO 10646.
+ */
+
+int mk_wcwidth(unichar ucs)
+{
+  /* sorted list of non-overlapping intervals of non-spacing characters */
+  /* generated by "uniset +cat=Me +cat=Mn +cat=Cf -00AD +1160-11FF +200B c" */
+  static const struct interval combining[] = {
+    { 0x0300, 0x036F }, { 0x0483, 0x0486 }, { 0x0488, 0x0489 },
+    { 0x0591, 0x05BD }, { 0x05BF, 0x05BF }, { 0x05C1, 0x05C2 },
+    { 0x05C4, 0x05C5 }, { 0x05C7, 0x05C7 }, { 0x0600, 0x0603 },
+    { 0x0610, 0x0615 }, { 0x064B, 0x065E }, { 0x0670, 0x0670 },
+    { 0x06D6, 0x06E4 }, { 0x06E7, 0x06E8 }, { 0x06EA, 0x06ED },
+    { 0x070F, 0x070F }, { 0x0711, 0x0711 }, { 0x0730, 0x074A },
+    { 0x07A6, 0x07B0 }, { 0x07EB, 0x07F3 }, { 0x0901, 0x0902 },
+    { 0x093C, 0x093C }, { 0x0941, 0x0948 }, { 0x094D, 0x094D },
+    { 0x0951, 0x0954 }, { 0x0962, 0x0963 }, { 0x0981, 0x0981 },
+    { 0x09BC, 0x09BC }, { 0x09C1, 0x09C4 }, { 0x09CD, 0x09CD },
+    { 0x09E2, 0x09E3 }, { 0x0A01, 0x0A02 }, { 0x0A3C, 0x0A3C },
+    { 0x0A41, 0x0A42 }, { 0x0A47, 0x0A48 }, { 0x0A4B, 0x0A4D },
+    { 0x0A70, 0x0A71 }, { 0x0A81, 0x0A82 }, { 0x0ABC, 0x0ABC },
+    { 0x0AC1, 0x0AC5 }, { 0x0AC7, 0x0AC8 }, { 0x0ACD, 0x0ACD },
+    { 0x0AE2, 0x0AE3 }, { 0x0B01, 0x0B01 }, { 0x0B3C, 0x0B3C },
+    { 0x0B3F, 0x0B3F }, { 0x0B41, 0x0B43 }, { 0x0B4D, 0x0B4D },
+    { 0x0B56, 0x0B56 }, { 0x0B82, 0x0B82 }, { 0x0BC0, 0x0BC0 },
+    { 0x0BCD, 0x0BCD }, { 0x0C3E, 0x0C40 }, { 0x0C46, 0x0C48 },
+    { 0x0C4A, 0x0C4D }, { 0x0C55, 0x0C56 }, { 0x0CBC, 0x0CBC },
+    { 0x0CBF, 0x0CBF }, { 0x0CC6, 0x0CC6 }, { 0x0CCC, 0x0CCD },
+    { 0x0CE2, 0x0CE3 }, { 0x0D41, 0x0D43 }, { 0x0D4D, 0x0D4D },
+    { 0x0DCA, 0x0DCA }, { 0x0DD2, 0x0DD4 }, { 0x0DD6, 0x0DD6 },
+    { 0x0E31, 0x0E31 }, { 0x0E34, 0x0E3A }, { 0x0E47, 0x0E4E },
+    { 0x0EB1, 0x0EB1 }, { 0x0EB4, 0x0EB9 }, { 0x0EBB, 0x0EBC },
+    { 0x0EC8, 0x0ECD }, { 0x0F18, 0x0F19 }, { 0x0F35, 0x0F35 },
+    { 0x0F37, 0x0F37 }, { 0x0F39, 0x0F39 }, { 0x0F71, 0x0F7E },
+    { 0x0F80, 0x0F84 }, { 0x0F86, 0x0F87 }, { 0x0F90, 0x0F97 },
+    { 0x0F99, 0x0FBC }, { 0x0FC6, 0x0FC6 }, { 0x102D, 0x1030 },
+    { 0x1032, 0x1032 }, { 0x1036, 0x1037 }, { 0x1039, 0x1039 },
+    { 0x1058, 0x1059 }, { 0x1160, 0x11FF }, { 0x135F, 0x135F },
+    { 0x1712, 0x1714 }, { 0x1732, 0x1734 }, { 0x1752, 0x1753 },
+    { 0x1772, 0x1773 }, { 0x17B4, 0x17B5 }, { 0x17B7, 0x17BD },
+    { 0x17C6, 0x17C6 }, { 0x17C9, 0x17D3 }, { 0x17DD, 0x17DD },
+    { 0x180B, 0x180D }, { 0x18A9, 0x18A9 }, { 0x1920, 0x1922 },
+    { 0x1927, 0x1928 }, { 0x1932, 0x1932 }, { 0x1939, 0x193B },
+    { 0x1A17, 0x1A18 }, { 0x1B00, 0x1B03 }, { 0x1B34, 0x1B34 },
+    { 0x1B36, 0x1B3A }, { 0x1B3C, 0x1B3C }, { 0x1B42, 0x1B42 },
+    { 0x1B6B, 0x1B73 }, { 0x1DC0, 0x1DCA }, { 0x1DFE, 0x1DFF },
+    { 0x200B, 0x200F }, { 0x202A, 0x202E }, { 0x2060, 0x2063 },
+    { 0x206A, 0x206F }, { 0x20D0, 0x20EF }, { 0x302A, 0x302F },
+    { 0x3099, 0x309A }, { 0xA806, 0xA806 }, { 0xA80B, 0xA80B },
+    { 0xA825, 0xA826 }, { 0xFB1E, 0xFB1E }, { 0xFE00, 0xFE0F },
+    { 0xFE20, 0xFE23 }, { 0xFEFF, 0xFEFF }, { 0xFFF9, 0xFFFB },
+    { 0x10A01, 0x10A03 }, { 0x10A05, 0x10A06 }, { 0x10A0C, 0x10A0F },
+    { 0x10A38, 0x10A3A }, { 0x10A3F, 0x10A3F }, { 0x1D167, 0x1D169 },
+    { 0x1D173, 0x1D182 }, { 0x1D185, 0x1D18B }, { 0x1D1AA, 0x1D1AD },
+    { 0x1D242, 0x1D244 }, { 0xE0001, 0xE0001 }, { 0xE0020, 0xE007F },
+    { 0xE0100, 0xE01EF }
+  };
+
+  /* test for 8-bit control characters */
+  if (ucs == 0)
+    return 0;
+  if (ucs < 32 || (ucs >= 0x7f && ucs < 0xa0))
+    return -1;
+
+  /* binary search in table of non-spacing characters */
+  if (bisearch(ucs, combining,
+              sizeof(combining) / sizeof(struct interval) - 1))
+    return 0;
+
+  /* if we arrive here, ucs is not a combining or C0/C1 control character */
+
+  return 1 + 
+    (ucs >= 0x1100 &&
+     (ucs <= 0x115f ||                    /* Hangul Jamo init. consonants */
+      ucs == 0x2329 || ucs == 0x232a ||
+      (ucs >= 0x2e80 && ucs <= 0xa4cf &&
+       ucs != 0x303f) ||                  /* CJK ... Yi */
+      (ucs >= 0xac00 && ucs <= 0xd7a3) || /* Hangul Syllables */
+      (ucs >= 0xf900 && ucs <= 0xfaff) || /* CJK Compatibility Ideographs */
+      (ucs >= 0xfe10 && ucs <= 0xfe19) || /* Vertical forms */
+      (ucs >= 0xfe30 && ucs <= 0xfe6f) || /* CJK Compatibility Forms */
+      (ucs >= 0xff00 && ucs <= 0xff60) || /* Fullwidth Forms */
+      (ucs >= 0xffe0 && ucs <= 0xffe6) ||
+      (ucs >= 0x20000 && ucs <= 0x2fffd) ||
+      (ucs >= 0x30000 && ucs <= 0x3fffd)));
+}
+
+
+#if 0
+int mk_wcswidth(const unichar *pwcs, size_t n)
+{
+  int w, width = 0;
+
+  for (;*pwcs && n-- > 0; pwcs++)
+    if ((w = mk_wcwidth(*pwcs)) < 0)
+      return -1;
+    else
+      width += w;
+
+  return width;
+}
+#endif
index eab2c02f585656d69399e6f498f460e47e386c98..3be30ae7c5395d4bc407209a7009d8397ac03471 100644 (file)
@@ -13,9 +13,9 @@
     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     GNU General Public License for more details.
 
-    You should have received a copy of the GNU General Public License
-    along with this program; if not, write to the Free Software
-    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+    You should have received a copy of the GNU General Public License along
+    with this program; if not, write to the Free Software Foundation, Inc.,
+    51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 */
 
 #include "module.h"
@@ -31,6 +31,7 @@
 #include "nicklist.h"
 #include "hilight-text.h"
 #include "formats.h"
+#include "fe-common-core.h"
 
 static char **hide_targets;
 static int hide_level, msg_level, hilight_level;
@@ -69,14 +70,9 @@ void window_item_activity(WI_ITEM_REC *item, int data_level,
                    GINT_TO_POINTER(old_data_level));
 }
 
-#define hide_target_activity(data_level, target) \
-       ((target) != NULL && hide_targets != NULL && \
-       strarray_find(hide_targets, target) != -1)
-
 static void sig_hilight_text(TEXT_DEST_REC *dest, const char *msg)
 {
        WI_ITEM_REC *item;
-        char *tagtarget;
        int data_level;
 
        if (dest->window == active_win || (dest->level & hide_level))
@@ -89,19 +85,10 @@ static void sig_hilight_text(TEXT_DEST_REC *dest, const char *msg)
                        DATA_LEVEL_MSG : DATA_LEVEL_TEXT;
        }
 
-       if ((dest->level & MSGLEVEL_HILIGHT) == 0 && dest->target != NULL) {
+       if (hide_targets != NULL && (dest->level & MSGLEVEL_HILIGHT) == 0 && dest->target != NULL) {
                /* check for both target and tag/target */
-               if (hide_target_activity(data_level, dest->target))
-                       return;
-
-               tagtarget = dest->server_tag == NULL ? NULL :
-                       g_strdup_printf("%s/%s", dest->server_tag,
-                                       dest->target);
-               if (hide_target_activity(data_level, tagtarget)) {
-                       g_free(tagtarget);
+               if (strarray_find_dest(hide_targets, dest))
                        return;
-               }
-               g_free(tagtarget);
        }
 
        if (dest->target != NULL) {
index 05332cad4bef1b0f82acc3db7285e9bb712c1a17..a975fe5cbc5b7ea0c4dc2a8e9616272cc3342867 100644 (file)
@@ -13,9 +13,9 @@
     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     GNU General Public License for more details.
 
-    You should have received a copy of the GNU General Public License
-    along with this program; if not, write to the Free Software
-    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+    You should have received a copy of the GNU General Public License along
+    with this program; if not, write to the Free Software Foundation, Inc.,
+    51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 */
 
 #include "module.h"
@@ -24,6 +24,7 @@
 #include "commands.h"
 #include "misc.h"
 #include "servers.h"
+#include "settings.h"
 
 #include "levels.h"
 
@@ -167,7 +168,7 @@ static void cmd_window(const char *data, void *server, WI_ITEM_REC *item)
                command_runsub("window", data, server, item);
 }
 
-/* SYNTAX: WINDOW NEW [hide] */
+/* SYNTAX: WINDOW NEW [HIDDEN|SPLIT] */
 static void cmd_window_new(const char *data, void *server, WI_ITEM_REC *item)
 {
        WINDOW_REC *window;
@@ -175,8 +176,8 @@ static void cmd_window_new(const char *data, void *server, WI_ITEM_REC *item)
 
        g_return_if_fail(data != NULL);
 
-       type = (g_strncasecmp(data, "hid", 3) == 0 || g_strcasecmp(data, "tab") == 0) ? 1 :
-               (g_strcasecmp(data, "split") == 0 ? 2 : 0);
+       type = (g_ascii_strncasecmp(data, "hid", 3) == 0 || g_ascii_strcasecmp(data, "tab") == 0) ? 1 :
+               (g_ascii_strcasecmp(data, "split") == 0 ? 2 : 0);
        signal_emit("gui window create override", 1, GINT_TO_POINTER(type));
 
        window = window_create(NULL, FALSE);
@@ -244,16 +245,23 @@ static void cmd_window_refnum(const char *data)
                window_set_active(window);
 }
 
-/* return the first window number with the highest activity */
-static WINDOW_REC *window_highest_activity(WINDOW_REC *window)
+/**
+ * return the window with the highest activity
+ *
+ * If ignore_refnum is true, the most recently active window with the highest
+ * activity will be returned. If ignore_refnum is false, the refnum will be used
+ * to break ties between windows with equally high activity.
+ */
+static WINDOW_REC *window_highest_activity(WINDOW_REC *window,
+                                           int ignore_refnum)
 {
        WINDOW_REC *rec, *max_win;
        GSList *tmp;
-       int max_act, through;
+       int max_act, max_ref, through;
 
        g_return_val_if_fail(window != NULL, NULL);
 
-       max_win = NULL; max_act = 0; through = FALSE;
+       max_win = NULL; max_act = 0; max_ref = 0; through = FALSE;
 
        tmp = g_slist_find(windows, window);
        for (;; tmp = tmp->next) {
@@ -267,15 +275,66 @@ static WINDOW_REC *window_highest_activity(WINDOW_REC *window)
 
                rec = tmp->data;
 
-               if (rec->data_level > 0 && max_act < rec->data_level) {
+               /* ignore refnum */
+               if (ignore_refnum &&
+                   rec->data_level > 0 && max_act < rec->data_level) {
                        max_act = rec->data_level;
                        max_win = rec;
                }
+
+               /* windows with lower refnums break ties */
+               else if (!ignore_refnum &&
+                        rec->data_level > 0 &&
+                        (rec->data_level > max_act ||
+                         (rec->data_level == max_act && rec->refnum < max_ref))) {
+                       max_act = rec->data_level;
+                       max_win = rec;
+                       max_ref = rec->refnum;
+               }
        }
 
        return max_win;
 }
 
+static inline int is_nearer(int r1, int r2)
+{
+       int a = r2 < active_win->refnum;
+       int b = r1 < r2;
+
+       if (r1 > active_win->refnum)
+               return a || b;
+       else
+               return a && b;
+}
+
+static WINDOW_REC *window_find_item_cycle(SERVER_REC *server, const char *name)
+{
+       WINDOW_REC *rec, *win;
+       GSList *tmp;
+
+       win = NULL;
+
+       tmp = g_slist_find(windows, active_win);
+       tmp = tmp->next;
+       for (;; tmp = tmp->next) {
+               if (tmp == NULL)
+                       tmp = windows;
+
+               if (tmp->data == active_win)
+                       break;
+
+               rec = tmp->data;
+
+               if (window_item_find_window(rec, server, name) != NULL &&
+                   (win == NULL || is_nearer(rec->refnum, win->refnum))) {
+                       win = rec;
+                       if (server != NULL) break;
+               }
+       }
+
+       return win;
+}
+
 /* SYNTAX: WINDOW GOTO active|<number>|<name> */
 static void cmd_window_goto(const char *data)
 {
@@ -293,10 +352,16 @@ static void cmd_window_goto(const char *data)
        if (!cmd_get_params(data, &free_arg, 1, &target))
                return;
 
-       if (g_strcasecmp(target, "active") == 0)
-                window = window_highest_activity(active_win);
-       else
-                window = window_find_item(active_win->active_server, target);
+       if (g_ascii_strcasecmp(target, "active") == 0)
+               window = window_highest_activity(active_win,
+                       settings_get_bool("active_window_ignore_refnum"));
+       else {
+               window = window_find_name(target);
+               if (window == NULL && active_win->active_server != NULL)
+                       window = window_find_item_cycle(active_win->active_server, target);
+               if (window == NULL)
+                       window = window_find_item_cycle(NULL, target);
+       }
 
        if (window != NULL)
                window_set_active(window);
@@ -356,11 +421,11 @@ static void cmd_window_immortal(const char *data)
 
        if (*data == '\0')
                set = active_win->immortal;
-       else if (g_strcasecmp(data, "ON") == 0)
+       else if (g_ascii_strcasecmp(data, "ON") == 0)
                 set = TRUE;
-       else if (g_strcasecmp(data, "OFF") == 0)
+       else if (g_ascii_strcasecmp(data, "OFF") == 0)
                 set = FALSE;
-       else if (g_strcasecmp(data, "TOGGLE") == 0)
+       else if (g_ascii_strcasecmp(data, "TOGGLE") == 0)
                 set = !active_win->immortal;
        else {
                printformat_window(active_win, MSGLEVEL_CLIENTERROR,
@@ -779,6 +844,8 @@ static void cmd_foreach_window(const char *data)
 
 void window_commands_init(void)
 {
+       settings_add_bool("lookandfeel", "active_window_ignore_refnum", TRUE);
+
        command_bind("window", NULL, (SIGNAL_FUNC) cmd_window);
        command_bind("window new", NULL, (SIGNAL_FUNC) cmd_window_new);
        command_bind("window close", NULL, (SIGNAL_FUNC) cmd_window_close);
index ce4b57e0f781c1415c25039bc2c3f5745d26817b..fcbbe2b19c0536accc39fc39d600911430b2d8cc 100644 (file)
@@ -13,9 +13,9 @@
     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     GNU General Public License for more details.
 
-    You should have received a copy of the GNU General Public License
-    along with this program; if not, write to the Free Software
-    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+    You should have received a copy of the GNU General Public License along
+    with this program; if not, write to the Free Software Foundation, Inc.,
+    51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 */
 
 #include "module.h"
@@ -32,7 +32,7 @@
 #include "window-items.h"
 #include "printtext.h"
 
-void window_item_add(WINDOW_REC *window, WI_ITEM_REC *item, int automatic)
+static void window_item_add_signal(WINDOW_REC *window, WI_ITEM_REC *item, int automatic, int send_signal)
 {
        g_return_if_fail(window != NULL);
        g_return_if_fail(item != NULL);
@@ -52,7 +52,8 @@ void window_item_add(WINDOW_REC *window, WI_ITEM_REC *item, int automatic)
        }
 
        window->items = g_slist_append(window->items, item);
-       signal_emit("window item new", 2, window, item);
+       if (send_signal)
+               signal_emit("window item new", 2, window, item);
 
        if (g_slist_length(window->items) == 1 ||
            (!automatic && settings_get_bool("autofocus_new_items"))) {
@@ -61,7 +62,12 @@ void window_item_add(WINDOW_REC *window, WI_ITEM_REC *item, int automatic)
        }
 }
 
-void window_item_remove(WI_ITEM_REC *item)
+void window_item_add(WINDOW_REC *window, WI_ITEM_REC *item, int automatic)
+{
+       window_item_add_signal(window, item, automatic, TRUE);
+}
+
+static void window_item_remove_signal(WI_ITEM_REC *item, int emit_signal)
 {
        WINDOW_REC *window;
 
@@ -80,14 +86,17 @@ void window_item_remove(WI_ITEM_REC *item)
                                       window->items->data);
        }
 
-       signal_emit("window item remove", 2, window, item);
+       if (emit_signal)
+               signal_emit("window item remove", 2, window, item);
 }
 
-void window_item_destroy(WI_ITEM_REC *item)
+void window_item_remove(WI_ITEM_REC *item)
 {
-       WINDOW_REC *window;
+       window_item_remove_signal(item, TRUE);
+}
 
-       window = window_item_window(item);
+void window_item_destroy(WI_ITEM_REC *item)
+{
         window_item_remove(item);
         item->destroy(item);
 }
@@ -107,12 +116,18 @@ void window_item_change_server(WI_ITEM_REC *item, void *server)
 
 void window_item_set_active(WINDOW_REC *window, WI_ITEM_REC *item)
 {
+               WINDOW_REC *old_window;
+
         g_return_if_fail(window != NULL);
 
-        if (item != NULL && window_item_window(item) != window) {
+        if (item != NULL) {
+            old_window = window_item_window(item);
+               if (old_window != window) {
                 /* move item to different window */
-                window_item_remove(item);
-                window_item_add(window, item, FALSE);
+                window_item_remove_signal(item, FALSE);
+                window_item_add_signal(window, item, FALSE, FALSE);
+                signal_emit("window item moved", 3, window, item, old_window);
+               }
         }
 
        if (window->active != item) {
index 223b65244c7dcbfc6695405744a204baa0a3f116..e5fe6bf63225c284e36f61c68beddd1bc61ec90c 100644 (file)
@@ -13,9 +13,9 @@
     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     GNU General Public License for more details.
 
-    You should have received a copy of the GNU General Public License
-    along with this program; if not, write to the Free Software
-    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+    You should have received a copy of the GNU General Public License along
+    with this program; if not, write to the Free Software Foundation, Inc.,
+    51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 */
 
 #include "module.h"
@@ -27,6 +27,7 @@
 
 #include "chat-protocols.h"
 #include "servers.h"
+#include "channels.h"
 #include "queries.h"
 
 #include "module-formats.h"
@@ -56,11 +57,11 @@ static void sig_layout_restore_item(WINDOW_REC *window, const char *type,
        if (name == NULL || tag == NULL)
                return;
 
-       if (g_strcasecmp(type, "CHANNEL") == 0) {
+       if (g_ascii_strcasecmp(type, "CHANNEL") == 0) {
                /* bind channel to window */
                WINDOW_BIND_REC *rec = window_bind_add(window, tag, name);
                 rec->sticky = TRUE;
-       } else if (g_strcasecmp(type, "QUERY") == 0 && chat_type != NULL) {
+       } else if (g_ascii_strcasecmp(type, "QUERY") == 0 && chat_type != NULL) {
                CHAT_PROTOCOL_REC *protocol;
                /* create query immediately */
                signal_add("query created",
@@ -133,7 +134,7 @@ static void sig_layout_restore(void)
                 window->immortal = config_node_get_bool(node, "immortal", FALSE);
                window_set_name(window, config_node_get_str(node, "name", NULL));
                window_set_history(window, config_node_get_str(node, "history_name", NULL));
-               window_set_level(window, level2bits(config_node_get_str(node, "level", "")));
+               window_set_level(window, level2bits(config_node_get_str(node, "level", ""), NULL));
 
                window->servertag = g_strdup(config_node_get_str(node, "servertag", NULL));
                window->theme_name = g_strdup(config_node_get_str(node, "theme", NULL));
@@ -151,6 +152,7 @@ static void sig_layout_save_item(WINDOW_REC *window, WI_ITEM_REC *item,
        CONFIG_NODE *subnode;
         CHAT_PROTOCOL_REC *proto;
        const char *type;
+       WINDOW_BIND_REC *rec;
 
        type = module_find_id_str("WINDOW ITEM TYPE", item->type);
        if (type == NULL)
@@ -165,9 +167,14 @@ static void sig_layout_save_item(WINDOW_REC *window, WI_ITEM_REC *item,
                iconfig_node_set_str(subnode, "chat_type", proto->name);
        iconfig_node_set_str(subnode, "name", item->visible_name);
 
-       if (item->server != NULL)
+       if (item->server != NULL) {
                iconfig_node_set_str(subnode, "tag", item->server->tag);
-       else if (IS_QUERY(item)) {
+               if (IS_CHANNEL(item)) {
+                       rec = window_bind_add(window, item->server->tag, item->visible_name);
+                       if (rec != NULL)
+                               rec->sticky = TRUE;
+               }
+       } else if (IS_QUERY(item)) {
                iconfig_node_set_str(subnode, "tag", QUERY(item)->server_tag);
        }
 }
@@ -210,6 +217,8 @@ static void window_save(WINDOW_REC *window, CONFIG_NODE *node)
        if (window->theme_name != NULL)
                iconfig_node_set_str(node, "theme", window->theme_name);
 
+       while (window->bound_items != NULL)
+               window_bind_destroy(window, window->bound_items->data);
        if (window->items != NULL)
                window_save_items(window, node);
 
@@ -219,11 +228,14 @@ static void window_save(WINDOW_REC *window, CONFIG_NODE *node)
 void windows_layout_save(void)
 {
        CONFIG_NODE *node;
+       GSList *sorted;
 
        iconfig_set_str(NULL, "windows", NULL);
        node = iconfig_node_traverse("windows", TRUE);
 
-       g_slist_foreach(windows, (GFunc) window_save, node);
+       sorted = windows_get_sorted();
+       g_slist_foreach(sorted, (GFunc) window_save, node);
+       g_slist_free(sorted);
        signal_emit("layout save", 0);
 
        printformat(NULL, NULL, MSGLEVEL_CLIENTNOTICE,
@@ -232,6 +244,14 @@ void windows_layout_save(void)
 
 void windows_layout_reset(void)
 {
+       GSList *tmp;
+
+       for (tmp = windows; tmp != NULL; tmp = tmp->next) {
+               WINDOW_REC *window = tmp->data;
+               while (window->bound_items != NULL)
+                       window_bind_destroy(window, window->bound_items->data);
+       }
+
        iconfig_set_str(NULL, "windows", NULL);
        signal_emit("layout reset", 0);
 
index cfa02758a57bb6b8626f6380aeb67be86706469f..2825dd00177e7a37d333e08463da6662109a69fd 100644 (file)
@@ -38,11 +38,6 @@ terminfo_sources = \
 curses_sources = \
        term-curses.c
 
-cuix_sources = \
-       cuix-api.c \
-       cuix-lib.c \
-       cuix.c
-
 if NEED_TPARM
 use_tparm_sources = $(tparm_sources)
 endif
@@ -53,12 +48,6 @@ else
 use_term_sources = $(terminfo_sources)
 endif
 
-if USE_CUIX
-use_term_sources += $(cuix_sources)
-silc_LDADD += -lform -lpanel -lmenu
-INCLUDES += -I$(top_srcdir)/src/irc/core
-endif
-
 silc_SOURCES = \
         gui-entry.c \
        gui-expandos.c \
@@ -78,12 +67,12 @@ silc_SOURCES = \
        $(use_term_sources) \
         textbuffer.c \
         textbuffer-commands.c \
-        textbuffer-reformat.c \
         textbuffer-view.c \
         silc.c \
        module-formats.c
 
 noinst_HEADERS = \
+       statusbar-item.h \
         gui-entry.h \
         gui-printtext.h \
         gui-readline.h \
@@ -95,7 +84,6 @@ noinst_HEADERS = \
        terminfo-core.h \
         textbuffer.h \
         textbuffer-view.h \
-        textbuffer-reformat.h \
        module.h \
        module-formats.h
 
diff --git a/apps/irssi/src/fe-text/cuix-api.c b/apps/irssi/src/fe-text/cuix-api.c
deleted file mode 100644 (file)
index f8e9f61..0000000
+++ /dev/null
@@ -1,386 +0,0 @@
-#include "module.h"
-#include "settings.h"
-#include "term.h"
-#include "gui-windows.h"
-#include <stdarg.h>
-#if defined(USE_NCURSES) && !defined(RENAMED_NCURSES)
-#  include <ncurses.h>
-#else
-#  include <curses.h>
-#endif
-#include <form.h>
-#include <panel.h>
-#include <menu.h>
-
-
-#include "cuix-api.h"
-
-#define INIT_ENTRIES 8
-#define X0_OFFSET 4
-#define Y0_OFFSET 2
-#define Y_OFFSET 1
-#define CUIX_FIELD_WIDTH 16
-
-object *create_object (char *title, int type, void **entries)
-{
-    object *obj;
-    void **new_entries;
-    int i;
-
-    obj = g_malloc (sizeof(object));
-    if (!obj) {
-        return NULL;
-    }
-    obj->type = type;
-    obj->title = title;
-    if (!entries) {
-        new_entries = g_new0 (void *, INIT_ENTRIES);
-        obj->entries = new_entries;
-        obj->alloced = INIT_ENTRIES;
-        obj->last = 0;
-    } else {
-        for (i = 0; ((entry **)entries)[i]; i++);
-        obj->alloced = i;
-        obj->last = i;
-        obj->entries = entries;
-    }
-    return obj;
-}
-
-
-object *create_menu (char *title)
-{
-    return create_object (title, CUIX_MENU, NULL);
-}
-
-
-object *create_form (char *title)
-{
-    return create_object (title, CUIX_FORM, NULL);
-}
-
-
-/* entries must be NULL terminated */
-object *create_list (char *title, entry **entries)
-{
-    return create_object (title, CUIX_LIST, (void **)entries);
-}
-
-entry *create_entry (char *label, int type, action_fn_type action)
-{
-    entry *entry;
-    
-    entry = g_malloc (sizeof(object));
-    if (!entry) {
-        return NULL;
-    }
-    entry->type = type;
-    entry->data = label;
-    entry->action = action;
-    return entry;
-}
-
-entry *create_menuentry (char *label, action_fn_type action)
-{
-    return create_entry (label, CUIX_MENUENTRY, action);
-}
-
-entry *create_label (char *label)
-{
-    return create_entry (label, CUIX_LABEL, NULL);
-}
-
-
-entry *create_field (char *label, action_fn_type action)
-{
-    return create_entry (label, CUIX_FIELD, action);
-}
-
-
-
-/* Adds child at the last position of father->entries */
-void attach_entry (object *father, void *child)
-{
-    void **entries;
-    int i;
-
-    /* Check that we have enough space in father->entries, otherwise alloc
-     * twice more than previously */
-    if (father->last >= father->alloced) {
-        entries = g_new0 (void *,2 * father->alloced);
-        if (!entries) {
-            fprintf (stderr, "Problem with memory allocation, quitting now...\n");
-            exit (1);
-        }
-        for (i = 0; i < father->alloced; i++) {
-            entries[i] = father->entries[i];
-        }
-        g_free (father->entries);
-        father->entries = entries;
-        father->alloced *= 2;
-    }
-    father->entries[father->last++] = child;
-}
-
-
-/* Adds a submenu to father */
-void attach_submenu (object *father, object *child)
-{ 
-
-    /* Check that both are really menus */
-    if (father->type != CUIX_MENU || child->type != CUIX_MENU) {
-        fprintf (stderr, "Typing error, trying to add %p (%d) as child of"
-                "%p (%d)\n", father, father->type, child, child->type);
-        exit (1);
-    }
-    attach_entry (father, (void *)child);
-}
-
-
-/* Returns the maximum width occupied by labels */
-int get_labels_width (object *obj)
-{
-    int i;
-    unsigned int w = 0;
-    entry *e;
-    object *o;
-
-    for (i = 0; i < obj->last; i++) {
-        e = (entry *)obj->entries[i];
-        if (e->type == CUIX_LABEL || e->type == CUIX_MENUENTRY) {
-            w = (w > strlen (e->data)) ? w : strlen (e->data);
-        }
-        if (e->type == CUIX_MENU) {
-            o = (object *)obj->entries[i];
-            w = (w > strlen (o->title)) ? w : strlen (o->title);
-        }
-
-    }
-    w += 2 * X0_OFFSET;
-    return (int)w;
-}
-
-
-/* Puts in x and y the coordinates to center an object of size objw and objh
- * in the window win */
-void get_center (WINDOW *win, int objh, int objw, int *y, int *x)
-{
-    int begx, begy, maxx, maxy, w, h;
-    getbegyx (win, begy, begx);
-    getmaxyx (win, maxy, maxx);
-    w = maxx - begx;
-    h = maxy - begy;
-    *x = (w - objw) / 2 + begx;
-    *y = (h - objh) / 2 + begy;
-    if (*x < 0)
-        *x = 0;
-    if (*y < 0)
-        *y = 0;
-}
-
-
-
-void display_object (object *obj)
-{
-    WINDOW *subwin;
-    FORM *form;
-    MENU *menu;
-    FIELD **fields;
-    ITEM **items, *cur_item;
-    object *o;
-    entry *e;
-    char *result;
-    int i, x, y, w, h;
-    int ch;
-    p_main = new_panel(root_window->win);
-
-    if (obj->type >= CUIX_LABEL) {
-        fprintf (stderr, "Trying to display an entry %p (%d), terminating...\n",
-                obj, obj->type);
-        exit (1);
-    }
-
-    switch (obj->type) {
-        case CUIX_LIST:
-            w = get_labels_width (obj);
-            h = Y_OFFSET * obj->last + 2 * Y0_OFFSET;
-            get_center (root_window->win, h, w, &y, &x);
-            cuix_win = newwin (h, w, y, x);
-            box (cuix_win, 0, 0);
-            p_cuix = new_panel(cuix_win);
-            x = X0_OFFSET;
-            y = Y0_OFFSET;
-
-            for (i = 0; i < obj->last; i++) {
-                e = (entry *)obj->entries[i];
-                if (e->type != CUIX_LABEL) {
-                    fprintf (stderr, "Non-label entry in a list.\n");
-                    exit (1);
-                } 
-                wmove (cuix_win,y,x);
-                waddstr (cuix_win,e->data);
-                y += Y_OFFSET;
-                x = X0_OFFSET;
-            }
-            top_panel (p_cuix);
-            update_panels();
-            doupdate();
-            wgetch(cuix_win);
-            /* refresh (); */
-            /* wrefresh (cuix_win); */
-            break;
-
-        case CUIX_FORM:
-            w = get_labels_width (obj);
-            w = (w > CUIX_FIELD_WIDTH + 2 * X0_OFFSET) ?
-                w : CUIX_FIELD_WIDTH + 2 * X0_OFFSET;
-            h = Y_OFFSET * obj->last + 2 * Y0_OFFSET;
-            fields = g_new0 (FIELD *, obj->last + 1);
-            for (i = 0; i < obj->last; i++) {
-                e = (entry *)obj->entries[i];
-                fields[i] = new_field (1, w,
-                        Y0_OFFSET + i * Y_OFFSET, X0_OFFSET, 0, 0);
-                if (e->type == CUIX_LABEL) {
-                    field_opts_off (fields[i], O_ACTIVE);
-                    field_opts_off (fields[i], O_EDIT);
-                    set_field_back  (fields[i], A_BOLD);
-                }
-                set_field_buffer (fields[i], 0, e->data);
-            }
-            fields[obj->last] = NULL;
-            form = new_form (fields);
-            scale_form (form, &h, &w);
-            h += Y0_OFFSET;
-            w += 2 * X0_OFFSET;
-            get_center (root_window->win, h, w, &y, &x);
-            cuix_win = newwin (h, w, y, x);
-            keypad (cuix_win, TRUE);
-            nonl ();
-            set_form_win (form, cuix_win);
-            set_form_sub (form, derwin(cuix_win, w, h, X0_OFFSET, Y0_OFFSET));
-            post_form (form);
-            box (cuix_win, 0, 0);
-            p_cuix = new_panel (cuix_win);
-            top_panel (p_cuix);
-            while((ch = wgetch(cuix_win)) != '\n' && ch != '\r' && ch != 27 /* ESC */) {       
-                switch(ch) {       
-                    case KEY_DOWN:
-                        /* Go to next field */
-                        form_driver(form, REQ_NEXT_FIELD);
-                        /* Go to the end of the present buffer */
-                        /* Leaves nicely at the last character */
-                        form_driver(form, REQ_END_LINE);
-                        break;
-                    case KEY_UP:
-                        /* Go to previous field */
-                        form_driver(form, REQ_PREV_FIELD);
-                        form_driver(form, REQ_END_LINE);
-                        break;
-                    case KEY_BACKSPACE:
-                        form_driver(form, REQ_PREV_CHAR);
-                        form_driver(form, REQ_DEL_CHAR);
-                        break;
-                    case KEY_LEFT:
-                        form_driver(form, REQ_PREV_CHAR);
-                        break;
-                    case KEY_RIGHT:
-                        form_driver(form, REQ_NEXT_CHAR);
-                        break;
-                    default:
-                        /* If this is a normal character, it gets */
-                        /* Printed                                */    
-                        form_driver(form, ch);
-                        break;
-                }
-            }
-            form_driver (form, REQ_VALIDATION);
-            if (ch != 27) {
-                for (i = 0; i < obj->last; i++) {
-                    e = (entry *)obj->entries[i];
-                    if (e->type == CUIX_FIELD) {
-                        result = field_buffer(fields[i],0);
-                        e->action (result);
-                    }
-                }
-            }
-            for (i = 0; i < obj->last; i++) {
-                free_field (fields[i]);
-            }
-            g_free (fields);
-            unpost_form (form);
-
-            break;
-
-        case CUIX_MENU:
-            w = get_labels_width (obj);
-            w = (w > CUIX_FIELD_WIDTH + 2 * X0_OFFSET) ?
-                w : CUIX_FIELD_WIDTH + 2 * X0_OFFSET;
-            h = Y_OFFSET * obj->last + 2 * Y0_OFFSET;
-            items = g_new0 (ITEM *, obj->last + 1);
-            for (i = 0; i < obj->last; i++) {
-                e = (entry *)obj->entries[i];
-                o = (object *)obj->entries[i];
-                if (e->type == CUIX_MENUENTRY) {
-                    items[i] = new_item (e->data, "");
-                    set_item_userptr (items[i], (void*)e);
-                } else {
-                    if (e->type == CUIX_LABEL) {
-                        items[i] = new_item (e->data, "");
-                        item_opts_off (items[i], O_SELECTABLE);
-                    } else {
-                        items[i] = new_item (o->title, " (SUB) ");
-                        set_item_userptr (items[i], (void*)o);
-                    }
-                }
-            }
-            items[obj->last] = NULL;
-            menu = new_menu (items);
-            set_menu_mark (menu, " * ");
-            scale_menu (menu, &h, &w);
-            h += 4 * Y0_OFFSET;
-            w += 4 * X0_OFFSET;
-            get_center (root_window->win, h, w, &y, &x);
-             cuix_win = newwin (h, w, y, x);
-            keypad (cuix_win, TRUE);
-            nonl ();
-            set_menu_win (menu, cuix_win);
-            subwin = derwin (cuix_win,
-                    h - 2 * Y0_OFFSET, w - 2 * X0_OFFSET, Y0_OFFSET, X0_OFFSET);
-            set_menu_sub (menu, subwin);
-            box (cuix_win, 0, 0);
-            post_menu (menu);
-            p_cuix = new_panel (cuix_win);
-            top_panel (p_cuix);
-            while((ch = wgetch(cuix_win)) != 27 /* ESC */) {       
-                switch(ch) {       
-                    case KEY_DOWN:
-                        menu_driver(menu, REQ_DOWN_ITEM);
-                        break;
-                    case KEY_UP:
-                        menu_driver(menu, REQ_UP_ITEM);
-                        break;
-                    case '\n':
-                    case '\r':
-                        cur_item = current_item(menu);
-                        e = (entry *)item_userptr(cur_item);
-                        o = (object *)item_userptr(cur_item);
-                        if (e->type == CUIX_MENUENTRY)
-                        {
-                            e->action ("");
-                        } else {
-                            display_object (o);
-                        }
-                        goto end;
-                        break;
-                    default:
-                        break;
-                }
-            }
-end:
-            for (i = 0; i < obj->last; i++) {
-                free_item (items[i]);
-            }
-            g_free (items);
-            unpost_menu (menu);
-    }
-}
diff --git a/apps/irssi/src/fe-text/cuix-api.h b/apps/irssi/src/fe-text/cuix-api.h
deleted file mode 100644 (file)
index 9dbb7bc..0000000
+++ /dev/null
@@ -1,68 +0,0 @@
-#ifndef __CUIX_API_H
-#define __CUIX_API_H
-
-#include "term-curses.h"
-
-#define MAX_FIELD_SIZE 64
-
-WINDOW *cuix_win;
-PANEL *p_main;
-PANEL *p_cuix;
-
-enum objtype {
-    /* For objects */
-    CUIX_MENU,
-    CUIX_FORM,
-    CUIX_LIST,
-    /* For entries */
-    /* NB: LABEL must stay the first entry, as it is used to test if we have
-     * an object or an entry */
-    CUIX_LABEL,
-    CUIX_FIELD,
-    CUIX_MENUENTRY
-};
-
-
-
-/* This is the type of the action to be executed when the entry has been
- * successfully selected (in case of a menuentry) or filled (in case of a
- * field). */
-typedef int(*action_fn_type)(char *);
-
-
-typedef struct entry {
-    int type;
-    char *data; /* contains label or submenu title */
-    action_fn_type action;
-} entry;
-
-
-typedef struct object {
-    int type;
-    char *title;
-    void **entries;
-    int alloced; /* defines the current size of entries */ 
-    int last; /* index of the first non-alloced entry */
-} object;
-
-
-/* Object definitions */
-
-object *create_menu (char *title);
-object *create_form (char *title);
-/* entries must be NULL terminated */
-object *create_list (char *title, entry **entries);
-
-
-entry *create_menuentry (char *label, action_fn_type action);
-entry *create_label (char *label);
-entry *create_field (char *label, action_fn_type action);
-
-void attach_submenu (object *father, object *child);
-void attach_entry (object *father, void *child);
-
-void display_object (object *obj);
-
-void my_menu(void);
-
-#endif /* __CUIX_API_H */
diff --git a/apps/irssi/src/fe-text/cuix-lib.c b/apps/irssi/src/fe-text/cuix-lib.c
deleted file mode 100644 (file)
index 657e657..0000000
+++ /dev/null
@@ -1,139 +0,0 @@
-#include "module.h"
-#include "settings.h"
-#include "cuix-lib.h"
-#include "signals.h"
-#include "irc.h"
-#include "irc-channels.h"
-#include "mode-lists.h"
-#include "gui-windows.h"
-
-
-int do_nothing (char *foo)
-{
-    (void)foo;
-    return 0;
-}
-
-
-void display_message (char *message)
-{
-    object *list;
-    entry *text, *entries[2];
-
-    text = create_label (message);
-    entries[0] = text;
-    entries[1] = NULL;
-    list = create_list ("Message", entries);
-    display_object (list);
-}
-
-
-int change_nick (char *nick)
-{
-    SERVER_REC *server;
-    WI_ITEM_REC *wiitem;
-    if (active_win == NULL) {
-        server = NULL;
-        wiitem = NULL;
-    } else {
-        server = active_win->active_server != NULL ?
-            active_win->active_server : active_win->connect_server;
-        wiitem = active_win->active;
-    } 
-    signal_emit("command nick", 3, nick, server, wiitem);
-    return 0;
-}
-
-
-
-int show_banlist (char *nothing)
-{
-    GSList *tmp;
-    IRC_CHANNEL_REC *chan = IRC_CHANNEL(active_win->active);
-    BAN_REC *ban;
-    object *list;
-    entry *entry, **entries;
-    unsigned int size, i;
-    GString **baninfo;
-
-    if (!chan) {
-        display_message ("This is not a channel");
-        return 1;
-    }
-    if (!chan->banlist) {
-        display_message ("No bans set");
-        return 0;
-    }
-
-    size = (unsigned int) g_slist_length (chan->banlist);
-    entries = g_new0 (struct entry *, size + 1);
-    baninfo = g_new0 (GString *, size);
-
-    for (tmp = chan->banlist, i = 0; tmp; tmp = tmp->next, i++) {
-        ban = tmp->data;
-        baninfo[i] = g_string_new (NULL);
-        g_string_sprintf (baninfo[i], "%s set by %s %d seconds ago", ban->ban, ban->setby, (int)(time(NULL)-ban->time));
-        entry = create_label (baninfo[i]->str);
-        entries[i] = entry;
-    }
-
-    list = create_list ("Bans", entries);
-    display_object (list);
-    for (i = 0; i < size; i++) {
-        g_string_free (baninfo[i], FALSE);
-    }
-    g_free (entries);
-    g_free (baninfo);
-
-    return 0;
-}
-
-
-int change_nick_form (char *nothing) {
-    object *form;
-    entry *question, *answer;
-    (void)nothing;
-
-    form = create_form ("True!");
-    question = create_label ("Enter your new nick");
-    answer = create_field ("", change_nick);
-    attach_entry (form, question);
-    attach_entry (form, answer);
-    display_object (form);
-    return 0;
-}
-
-
-int about_list (char *nothing) 
-{
-    (void)nothing;
-
-    display_message ("(c) irssi; See http://www.irssi.org.");
-    return 0;
-}
-
-
-
-
-int home_menu (char *nothing) 
-{
-    /* Objects declaration */
-    object *root_menu;
-    entry *about, *banlist, *nick;
-    (void)nothing;
-
-    /* Objects initialisation */
-    root_menu = create_menu ("My root menu");
-    banlist = create_menuentry ("Banlist", show_banlist);
-    nick = create_menuentry ("Change nick", change_nick_form);
-    about = create_menuentry ("About", about_list);
-
-    /* Layout */
-    attach_entry (root_menu, (void *)banlist);
-    attach_entry (root_menu, (void *)nick);
-    attach_entry (root_menu, (void *)about);
-
-    /* Declare that the object is ready to be displayed and do it */
-    display_object (root_menu);
-    return 0;
-}
diff --git a/apps/irssi/src/fe-text/cuix-lib.h b/apps/irssi/src/fe-text/cuix-lib.h
deleted file mode 100644 (file)
index 1839a5a..0000000
+++ /dev/null
@@ -1,9 +0,0 @@
-#ifndef __CUIX_LIB_H
-#define __CUIX_LIB_H
-
-#include "cuix-api.h"
-
-int home_menu (char *);
-
-
-#endif /* __CUIX_LIB_H */
diff --git a/apps/irssi/src/fe-text/cuix.c b/apps/irssi/src/fe-text/cuix.c
deleted file mode 100644 (file)
index ef95470..0000000
+++ /dev/null
@@ -1,39 +0,0 @@
-#include "module.h"
-#include "settings.h"
-#include "cuix-api.h"
-#include "cuix-lib.h"
-#include "cuix.h"
-#include "term.h"
-#if defined(USE_NCURSES) && !defined(RENAMED_NCURSES)
-#  include <ncurses.h>
-#else
-#  include <curses.h>
-#endif
-
-
-void cuix_destroy (void)
-{
-    if (cuix_win) {
-        del_panel (p_cuix);
-        delwin(cuix_win);
-    }
-    cuix_win = NULL;
-    cuix_active = 0;
-    update_panels ();
-    doupdate();
-    term_refresh (root_window);
-    irssi_redraw ();
-}
-
-void cuix_create(void)
-{
-    home_menu (NULL);
-    cuix_destroy ();
-}
-
-void cuix_refresh (void)
-{
-    update_panels ();
-}
-
-
diff --git a/apps/irssi/src/fe-text/cuix.h b/apps/irssi/src/fe-text/cuix.h
deleted file mode 100644 (file)
index ca8ffce..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-#ifndef __CUIX_TRY_H
-#define __CUIX_TRY_H
-
-int cuix_active;
-
-void cuix_create (void);
-void cuix_destroy (void);
-void cuix_refresh (void);
-
-
-#endif /* __CUIX_TRY_H */
index 7dcec35801a35b7c8631f240822d70e57aa35a26..13cbfafd28c5b754699798887cee907518bbdf5d 100644 (file)
@@ -13,9 +13,9 @@
     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     GNU General Public License for more details.
 
-    You should have received a copy of the GNU General Public License
-    along with this program; if not, write to the Free Software
-    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+    You should have received a copy of the GNU General Public License along
+    with this program; if not, write to the Free Software Foundation, Inc.,
+    51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 */
 
 #include "module.h"
 #include "gui-printtext.h"
 #include "term.h"
 
-const unichar empty_str[] = { 0 };
+#undef i_toupper
+#undef i_tolower
+#undef i_isalnum
+
+static unichar i_toupper(unichar c)
+{
+       if (term_type == TERM_TYPE_UTF8)
+               return g_unichar_toupper(c);
+       return (c >= 0 && c <= 255) ? toupper(c) : c;
+}
+
+static unichar i_tolower(unichar c)
+{
+       if (term_type == TERM_TYPE_UTF8)
+               return g_unichar_tolower(c);
+       return (c >= 0 && c <= 255) ? tolower(c) : c;
+}
+
+static int i_isalnum(unichar c)
+{
+       if (term_type == TERM_TYPE_UTF8)
+               return (g_unichar_isalnum(c) || mk_wcwidth(c) == 0);
+       return (c >= 0 && c <= 255) ? isalnum(c) : 0;
+}
 
 GUI_ENTRY_REC *active_entry;
 
@@ -85,9 +108,6 @@ int strlen_big5(const unsigned char *str)
 {
        int len=0;
 
-       if (term_type != TERM_TYPE_BIG5)
-               return strlen(str);
-
        while (*str != '\0') {
                if (is_big5(str[0], str[1]))
                        str++;
@@ -134,14 +154,16 @@ void big5_to_unichars(const char *str, unichar *out)
 
 static int pos2scrpos(GUI_ENTRY_REC *entry, int pos)
 {
-       unichar *p;
+       int i;
        int xpos = 0;
 
-       for (p = entry->text; p - entry->text < pos; p++) {
+       for (i = 0; i < pos; i++) {
+               unichar c = entry->text[i];
+
                if (term_type == TERM_TYPE_BIG5)
-                       xpos += big5_width(*p);
+                       xpos += big5_width(c);
                else if (entry->utf8)
-                       xpos += utf8_width(*p);
+                       xpos += unichar_isprint(c) ? mk_wcwidth(c) : 1;
                else
                        xpos++;
        }
@@ -152,13 +174,13 @@ static int scrpos2pos(GUI_ENTRY_REC *entry, int pos)
 {
        int i, width, xpos;
 
-       for (i = 0, xpos = 0; entry->text[i]; i++) {
-               unichar *p = entry->text+i;
+       for (i = 0, xpos = 0; i < entry->text_len; i++) {
+               unichar c = entry->text[i];
 
                if (term_type == TERM_TYPE_BIG5)
-                       width = big5_width(*p);
+                       width = big5_width(c);
                else if (entry->utf8)
-                       width = utf8_width(*p);
+                       width = unichar_isprint(c) ? mk_wcwidth(c) : 1;
                else
                        width = 1;
 
@@ -201,7 +223,7 @@ static void gui_entry_fix_cursor(GUI_ENTRY_REC *entry)
 
 static void gui_entry_draw_from(GUI_ENTRY_REC *entry, int pos)
 {
-       const unichar *p;
+       int i;
        int xpos, end_xpos;
 
        xpos = entry->xpos + entry->promptlen + 
@@ -215,15 +237,15 @@ static void gui_entry_draw_from(GUI_ENTRY_REC *entry, int pos)
        term_set_color(root_window, ATTR_RESET);
        term_move(root_window, xpos, entry->ypos);
 
-       p = entry->scrstart + pos < entry->text_len ?
-               entry->text + entry->scrstart + pos : empty_str;
-       for (; *p != '\0'; p++) {
+       for (i = entry->scrstart + pos; i < entry->text_len; i++) {
+               unichar c = entry->text[i];
+
                if (entry->hidden)
                        xpos++;
                else if (term_type == TERM_TYPE_BIG5)
-                       xpos += big5_width(*p);
+                       xpos += big5_width(c);
                else if (entry->utf8)
-                       xpos += utf8_width(*p);
+                       xpos += unichar_isprint(c) ? mk_wcwidth(c) : 1;
                else
                        xpos++;
 
@@ -232,22 +254,24 @@ static void gui_entry_draw_from(GUI_ENTRY_REC *entry, int pos)
 
                if (entry->hidden)
                         term_addch(root_window, ' ');
-               else if (*p >= 32 && (entry->utf8 || (*p & 127) >= 32))
-                       term_add_unichar(root_window, *p);
+               else if (unichar_isprint(c))
+                       term_add_unichar(root_window, c);
                else {
                        term_set_color(root_window, ATTR_RESET|ATTR_REVERSE);
-                       term_addch(root_window, *p+'A'-1);
+                       term_addch(root_window, (c & 127)+'A'-1);
                        term_set_color(root_window, ATTR_RESET);
                }
        }
 
         /* clear the rest of the input line */
-        if (end_xpos == term_width-1)
-               term_clrtoeol(root_window);
-       else {
-               while (xpos < end_xpos) {
-                        term_addch(root_window, ' ');
-                        xpos++;
+       if (xpos < end_xpos) {
+               if (end_xpos == term_width)
+                       term_clrtoeol(root_window);
+               else {
+                       while (xpos < end_xpos) {
+                               term_addch(root_window, ' ');
+                               xpos++;
+                       }
                }
        }
 }
@@ -376,10 +400,10 @@ char *gui_entry_get_text(GUI_ENTRY_REC *entry)
 
        g_return_val_if_fail(entry != NULL, NULL);
 
-       buf = g_malloc(entry->text_len*6 + 1);
        if (entry->utf8)
-               utf16_to_utf8(entry->text, buf);
+               buf = g_ucs4_to_utf8(entry->text, -1, NULL, NULL, NULL);
        else {
+               buf = g_malloc(entry->text_len*6 + 1);
                if (term_type == TERM_TYPE_BIG5)
                        unichars_to_big5(entry->text, buf);
                else
@@ -396,10 +420,11 @@ char *gui_entry_get_text_and_pos(GUI_ENTRY_REC *entry, int *pos)
 
        g_return_val_if_fail(entry != NULL, NULL);
 
-       buf = g_malloc(entry->text_len*6 + 1);
-       if (entry->utf8)
-               utf16_to_utf8_with_pos(entry->text, entry->pos, buf, pos);
-       else {
+       if (entry->utf8) {
+               buf = g_ucs4_to_utf8(entry->text, -1, NULL, NULL, NULL);
+               *pos = g_utf8_offset_to_pointer(buf, entry->pos) - buf;
+       } else {
+               buf = g_malloc(entry->text_len*6 + 1);
                if(term_type==TERM_TYPE_BIG5)
                        unichars_to_big5_with_pos(entry->text, entry->pos, buf, pos);
                else
@@ -416,13 +441,20 @@ void gui_entry_insert_text(GUI_ENTRY_REC *entry, const char *str)
 {
         unichar chr;
        int i, len;
+       const char *ptr;
 
         g_return_if_fail(entry != NULL);
        g_return_if_fail(str != NULL);
 
         gui_entry_redraw_from(entry, entry->pos);
 
-       len = !entry->utf8 ? strlen_big5(str) : strlen_utf8(str);
+       if (entry->utf8) {
+               g_utf8_validate(str, -1, &ptr);
+               len = g_utf8_pointer_to_offset(str, ptr);
+       } else if (term_type == TERM_TYPE_BIG5)
+               len = strlen_big5(str);
+       else
+               len = strlen(str);
         entry_text_grow(entry, len);
 
         /* make space for the string */
@@ -439,9 +471,11 @@ void gui_entry_insert_text(GUI_ENTRY_REC *entry, const char *str)
                                entry->text[entry->pos + i] = str[i];
                }
        } else {
-                chr = entry->text[entry->pos+len];
-               utf8_to_utf16(str, entry->text+entry->pos);
-                entry->text[entry->pos+len] = chr;
+               ptr = str;
+               for (i = 0; i < len; i++) {
+                       entry->text[entry->pos + i] = g_utf8_get_char(ptr);
+                       ptr = g_utf8_next_char(ptr);
+               }
        }
 
        entry->text_len += len;
@@ -458,6 +492,9 @@ void gui_entry_insert_char(GUI_ENTRY_REC *entry, unichar chr)
        if (chr == 0 || chr == 13 || chr == 10)
                return; /* never insert NUL, CR or LF characters */
 
+       if (entry->utf8 && entry->pos == 0 && mk_wcwidth(chr) == 0)
+               return;
+
         gui_entry_redraw_from(entry, entry->pos);
 
        entry_text_grow(entry, 1);
@@ -484,14 +521,15 @@ char *gui_entry_get_cutbuffer(GUI_ENTRY_REC *entry)
        if (entry->cutbuffer == NULL)
                 return NULL;
 
-       buf = g_malloc(entry->cutbuffer_len*6 + 1);
        if (entry->utf8)
-               utf16_to_utf8(entry->cutbuffer, buf);
-       else if (term_type == TERM_TYPE_BIG5) {
-               unichars_to_big5(entry->cutbuffer, buf);
-       } else {
-               for (i = 0; i <= entry->cutbuffer_len; i++)
-                       buf[i] = entry->cutbuffer[i];
+               buf = g_ucs4_to_utf8(entry->cutbuffer, -1, NULL, NULL, NULL);
+       else {
+               buf = g_malloc(entry->cutbuffer_len*6 + 1);
+               if (term_type == TERM_TYPE_BIG5)
+                       unichars_to_big5(entry->cutbuffer, buf);
+               else
+                       for (i = 0; i <= entry->cutbuffer_len; i++)
+                               buf[i] = entry->cutbuffer[i];
        }
        return buf;
 }
@@ -509,14 +547,16 @@ void gui_entry_erase_to(GUI_ENTRY_REC *entry, int pos, int update_cutbuffer)
 
 void gui_entry_erase(GUI_ENTRY_REC *entry, int size, int update_cutbuffer)
 {
+       size_t w = 0;
+
         g_return_if_fail(entry != NULL);
 
-       if (entry->pos < size)
+       if (size == 0 || entry->pos < size)
                return;
 
        if (update_cutbuffer) {
                /* put erased text to cutbuffer */
-               if (entry->cutbuffer == NULL || entry->cutbuffer_len < size) {
+               if (entry->cutbuffer_len < size) {
                        g_free(entry->cutbuffer);
                        entry->cutbuffer = g_new(unichar, size+1);
                }
@@ -527,10 +567,9 @@ void gui_entry_erase(GUI_ENTRY_REC *entry, int size, int update_cutbuffer)
                       size * sizeof(unichar));
        }
 
-       if (size == 0) {
-                /* we just wanted to clear the cutbuffer */
-               return;
-       }
+       if (entry->utf8)
+               while (entry->pos-size-w > 0 &&
+                      mk_wcwidth(entry->text[entry->pos-size-w]) == 0) w++;
 
        g_memmove(entry->text + entry->pos - size, entry->text + entry->pos,
                  (entry->text_len-entry->pos+1) * sizeof(unichar));
@@ -538,11 +577,30 @@ void gui_entry_erase(GUI_ENTRY_REC *entry, int size, int update_cutbuffer)
        entry->pos -= size;
         entry->text_len -= size;
 
-       gui_entry_redraw_from(entry, entry->pos);
+       gui_entry_redraw_from(entry, entry->pos-w);
        gui_entry_fix_cursor(entry);
        gui_entry_draw(entry);
 }
 
+void gui_entry_erase_cell(GUI_ENTRY_REC *entry)
+{
+       int size = 1;
+
+       g_return_if_fail(entry != NULL);
+
+       if (entry->utf8)
+               while (entry->pos+size < entry->text_len &&
+                      mk_wcwidth(entry->text[entry->pos+size]) == 0) size++;
+
+       g_memmove(entry->text + entry->pos, entry->text + entry->pos + size,
+                 (entry->text_len-entry->pos-size+1) * sizeof(unichar));
+
+       entry->text_len -= size;
+
+       gui_entry_redraw_from(entry, entry->pos);
+       gui_entry_draw(entry);
+}
+
 void gui_entry_erase_word(GUI_ENTRY_REC *entry, int to_space)
 {
        int to;
@@ -759,6 +817,13 @@ void gui_entry_move_pos(GUI_ENTRY_REC *entry, int pos)
        if (entry->pos + pos >= 0 && entry->pos + pos <= entry->text_len)
                entry->pos += pos;
 
+       if (entry->utf8) {
+               int step = pos < 0 ? -1 : 1;
+               while(mk_wcwidth(entry->text[entry->pos]) == 0 &&
+                     entry->pos + step >= 0 && entry->pos + step <= entry->text_len)
+                       entry->pos += step;
+       }
+
        gui_entry_fix_cursor(entry);
        gui_entry_draw(entry);
 }
index e5ab672a9b2fb71a508de94e9d68be752addd856..29d8dea2cfe9674db134c34ee2a22a409a333bfc 100644 (file)
@@ -42,6 +42,7 @@ void gui_entry_insert_char(GUI_ENTRY_REC *entry, unichar chr);
 char *gui_entry_get_cutbuffer(GUI_ENTRY_REC *entry);
 void gui_entry_erase_to(GUI_ENTRY_REC *entry, int pos, int update_cutbuffer);
 void gui_entry_erase(GUI_ENTRY_REC *entry, int size, int update_cutbuffer);
+void gui_entry_erase_cell(GUI_ENTRY_REC *entry);
 void gui_entry_erase_word(GUI_ENTRY_REC *entry, int to_space);
 void gui_entry_erase_next_word(GUI_ENTRY_REC *entry, int to_space);
 
index 74d6b34d07969fcacc9472f012dd76e818de2915..064a0955bde1a613988b82ee56a02c977bf413b5 100644 (file)
@@ -13,9 +13,9 @@
     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     GNU General Public License for more details.
 
-    You should have received a copy of the GNU General Public License
-    along with this program; if not, write to the Free Software
-    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+    You should have received a copy of the GNU General Public License along
+    with this program; if not, write to the Free Software Foundation, Inc.,
+    51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 */
 
 #include "module.h"
@@ -37,6 +37,7 @@ static char *expando_idletime(SERVER_REC *server, void *item, int *free_ret)
 /* current contents of the input line */
 static char *expando_inputline(SERVER_REC *server, void *item, int *free_ret)
 {
+       *free_ret = TRUE;
        return gui_entry_get_text(active_entry);
 }
 
index 089ac6b1e467c6e8b3943bb44ca8b5085aa7132e..2b5bfc5f0e40ebcdbbb94760f6ec2150821af2a1 100644 (file)
@@ -13,9 +13,9 @@
     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     GNU General Public License for more details.
 
-    You should have received a copy of the GNU General Public License
-    along with this program; if not, write to the Free Software
-    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+    You should have received a copy of the GNU General Public License along
+    with this program; if not, write to the Free Software Foundation, Inc.,
+    51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 */
 
 #include "module.h"
 #include "term.h"
 #include "gui-printtext.h"
 #include "gui-windows.h"
-#ifdef HAVE_CUIX
-#include "cuix.h"
-#endif
 
 int mirc_colors[] = { 15, 0, 1, 2, 12, 4, 5, 6, 14, 10, 3, 11, 9, 13, 8, 7 };
 static int scrollback_lines, scrollback_time, scrollback_burst_remove;
 
-static int last_fg, last_bg, last_flags;
 static int next_xpos, next_ypos;
 
 static GHashTable *indent_functions;
@@ -164,66 +160,6 @@ static void get_colors(int flags, int *fg, int *bg, int *attr)
        if (flags & GUI_PRINT_FLAG_BLINK) *attr |= ATTR_BLINK;
 }
 
-static void line_add_colors(TEXT_BUFFER_REC *buffer, LINE_REC **line,
-                           int fg, int bg, int flags)
-{
-       unsigned char data[20];
-       int pos;
-
-        /* get the fg & bg command chars */
-       fg = fg < 0 ? LINE_COLOR_DEFAULT : fg & 0x0f;
-       bg = LINE_COLOR_BG | (bg < 0 ? LINE_COLOR_DEFAULT : bg & 0x0f);
-       if (flags & GUI_PRINT_FLAG_BOLD)
-               fg |= LINE_COLOR_BOLD;
-       if (flags & GUI_PRINT_FLAG_BLINK)
-                bg |= LINE_COLOR_BLINK;
-
-       pos = 0;
-       if (fg != last_fg) {
-               last_fg = fg;
-               data[pos++] = 0;
-               data[pos++] = fg == 0 ? LINE_CMD_COLOR0 : fg;
-       }
-       if (bg != last_bg) {
-                last_bg = bg;
-               data[pos++] = 0;
-               data[pos++] = bg;
-       }
-
-       if ((flags & GUI_PRINT_FLAG_UNDERLINE) != (last_flags & GUI_PRINT_FLAG_UNDERLINE)) {
-               data[pos++] = 0;
-               data[pos++] = LINE_CMD_UNDERLINE;
-       }
-       if ((flags & GUI_PRINT_FLAG_REVERSE) != (last_flags & GUI_PRINT_FLAG_REVERSE)) {
-               data[pos++] = 0;
-               data[pos++] = LINE_CMD_REVERSE;
-       }
-       if (flags & GUI_PRINT_FLAG_INDENT) {
-               data[pos++] = 0;
-               data[pos++] = LINE_CMD_INDENT;
-       }
-
-        if (pos > 0)
-               *line = textbuffer_insert(buffer, *line, data, pos, NULL);
-
-       last_flags = flags;
-}
-
-static void line_add_indent_func(TEXT_BUFFER_REC *buffer, LINE_REC **line,
-                                const char *function)
-{
-        GSList *list;
-        unsigned char data[1+sizeof(INDENT_FUNC)];
-
-        list = g_hash_table_lookup(indent_functions, function);
-       if (list != NULL) {
-               data[0] = LINE_CMD_INDENT_FUNC;
-               memcpy(data+1, list->data, sizeof(INDENT_FUNC));
-               *line = textbuffer_insert(buffer, *line,
-                                         data, sizeof(data), NULL);
-       }
-}
-
 static void view_add_eol(TEXT_BUFFER_VIEW_REC *view, LINE_REC **line)
 {
        static const unsigned char eol[] = { 0, LINE_CMD_EOL };
@@ -270,23 +206,16 @@ static void sig_gui_print_text(WINDOW_REC *window, void *fgcolor,
        insert_after = gui->use_insert_after ?
                gui->insert_after : view->buffer->cur_line;
 
-       if (flags & GUI_PRINT_FLAG_NEWLINE)
+       if (flags & GUI_PRINT_FLAG_NEWLINE) {
                 view_add_eol(view, &insert_after);
-       line_add_colors(view->buffer, &insert_after, fg, bg, flags);
-
-       if (flags & GUI_PRINT_FLAG_INDENT_FUNC) {
-               /* specify the indentation function */
-                line_add_indent_func(view->buffer, &insert_after, str);
-       } else {
-               insert_after = textbuffer_insert(view->buffer, insert_after,
-                                                (unsigned char *) str,
-                                                strlen(str), &lineinfo);
        }
+       textbuffer_line_add_colors(view->buffer, &insert_after, fg, bg, flags);
+
+       insert_after = textbuffer_insert(view->buffer, insert_after,
+                                        (unsigned char *) str,
+                                        strlen(str), &lineinfo);
        if (gui->use_insert_after)
                 gui->insert_after = insert_after;
-#ifdef HAVE_CUIX
-        cuix_refresh ();
-#endif
 }
 
 static void sig_gui_printtext_finished(WINDOW_REC *window)
@@ -294,9 +223,6 @@ static void sig_gui_printtext_finished(WINDOW_REC *window)
        TEXT_BUFFER_VIEW_REC *view;
        LINE_REC *insert_after;
 
-        last_fg = last_bg = -1;
-       last_flags = 0;
-
        view = WINDOW_GUI(window)->view;
        insert_after = WINDOW_GUI(window)->use_insert_after ?
                WINDOW_GUI(window)->insert_after : view->buffer->cur_line;
index 52e100f0124c87cf43bc0ac90b9b726012e56211..476a798ba9bf0fbc4f1be651abced4920e0c98c8 100644 (file)
@@ -13,9 +13,9 @@
     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     GNU General Public License for more details.
 
-    You should have received a copy of the GNU General Public License
-    along with this program; if not, write to the Free Software
-    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+    You should have received a copy of the GNU General Public License along
+    with this program; if not, write to the Free Software Foundation, Inc.,
+    51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 */
 
 #include "module.h"
@@ -30,7 +30,6 @@
 #include "completion.h"
 #include "command-history.h"
 #include "keyboard.h"
-#include "translation.h"
 #include "printtext.h"
 
 #include "term.h"
@@ -57,27 +56,23 @@ static int readtag;
 static unichar prev_key;
 static GTimeVal last_keypress;
 
-static int paste_detect_time, paste_detect_keycount, paste_verify_line_count;
-static int paste_state, paste_keycount;
-static char *paste_entry, *prev_entry;
-static int paste_entry_pos, prev_entry_pos;
+static int paste_detect_time, paste_verify_line_count;
+static char *paste_entry;
+static int paste_entry_pos;
 static GArray *paste_buffer;
 
 static char *paste_old_prompt;
 static int paste_prompt, paste_line_count;
 static int paste_join_multiline;
+static int paste_timeout_id;
 
 static void sig_input(void);
 
 void input_listen_init(int handle)
 {
-        GIOChannel *stdin_channel;
-
-       stdin_channel = g_io_channel_unix_new(handle);
-       readtag = g_input_add_full(stdin_channel,
+       readtag = g_input_add_poll(handle,
                                   G_PRIORITY_HIGH, G_INPUT_READ,
                                   (GInputFunction) sig_input, NULL);
-        g_io_channel_unref(stdin_channel);
 }
 
 void input_listen_deinit(void)
@@ -283,7 +278,6 @@ static void paste_send(void)
                history = command_history_current(active_win);
                command_history_add(history, text);
 
-               translate_output(text);
                signal_emit("send command", 3, text,
                            active_win->active_server, active_win->active);
                g_free(text);
@@ -296,13 +290,12 @@ static void paste_send(void)
                        history = command_history_current(active_win);
                        command_history_add(history, str->str);
 
-                       translate_output(str->str);
                        signal_emit("send command", 3, str->str,
                                    active_win->active_server,
                                    active_win->active);
                        g_string_truncate(str, 0);
                } else if (active_entry->utf8) {
-                       out[utf16_char_to_utf8(arr[i], out)] = '\0';
+                       out[g_unichar_to_utf8(arr[i], out)] = '\0';
                        g_string_append(str, out);
                } else if (term_type == TERM_TYPE_BIG5) {
                        if (arr[i] > 0xff)
@@ -319,8 +312,11 @@ static void paste_send(void)
 
 static void paste_flush(int send)
 {
-       gui_entry_set_text(active_entry, paste_entry);
-       gui_entry_set_pos(active_entry, paste_entry_pos);
+       if (paste_prompt) {
+               gui_entry_set_text(active_entry, paste_entry);
+               gui_entry_set_pos(active_entry, paste_entry_pos);
+               g_free_and_null(paste_entry);
+       }
 
        if (send)
                paste_send();
@@ -332,118 +328,29 @@ static void paste_flush(int send)
        paste_prompt = FALSE;
 
        paste_line_count = 0;
-       paste_state = 0;
-        paste_keycount = 0;
 
        gui_entry_redraw(active_entry);
 }
 
-static gboolean paste_timeout(gpointer data)
+static void insert_paste_prompt(void)
 {
-       GTimeVal now;
        char *str;
-       int diff;
-
-       if (paste_state == 0) {
-               /* gone already */
-               return FALSE;
-       }
-
-        g_get_current_time(&now);
-       diff = (now.tv_sec - last_keypress.tv_sec) * 1000 +
-               (now.tv_usec - last_keypress.tv_usec)/1000;
-
-       if (diff < paste_detect_time) {
-               /* still pasting */
-               return TRUE;
-       }
-
-       if (paste_line_count < paste_verify_line_count ||
-           active_win->active == NULL) {
-               /* paste without asking */
-               paste_flush(TRUE);
-       } else if (!paste_prompt) {
-               paste_prompt = TRUE;
-               paste_old_prompt = g_strdup(active_entry->prompt);
-               printformat_window(active_win, MSGLEVEL_CLIENTNOTICE,
-                                  TXT_PASTE_WARNING,
-                                  paste_line_count,
-                                  active_win->active == NULL ? "window" :
-                                  active_win->active->visible_name);
-
-               str = format_get_text(MODULE_NAME, active_win, NULL, NULL,
-                                     TXT_PASTE_PROMPT, 0, 0);
-               gui_entry_set_prompt(active_entry, str);
-               gui_entry_set_text(active_entry, "");
-               g_free(str);
-       }
-       return TRUE;
-}
-
-static int check_pasting(unichar key, int diff)
-{
-       if (paste_state < 0)
-               return FALSE;
-
-       if (paste_state == 0) {
-               /* two keys hit together quick. possibly pasting */
-               if (diff > paste_detect_time)
-                       return FALSE;
-
-               g_free(paste_entry);
-               paste_entry = g_strdup(prev_entry);
-               paste_entry_pos = prev_entry_pos;
-
-               paste_state++;
-               paste_line_count = 0;
-               paste_keycount = 0;
-               g_array_set_size(paste_buffer, 0);
-               if (prev_key != '\r' && prev_key != '\n')
-                       g_array_append_val(paste_buffer, prev_key);
-       } else if (paste_state > 0 && diff > paste_detect_time &&
-                  paste_line_count == 0) {
-               /* reset paste state */
-               paste_state = 0;
-               paste_keycount = 0;
-               return FALSE;
-       }
-
-       /* continuing quick hits */
-       if ((key == 11 || key == 3) && paste_prompt) {
-               paste_flush(key == 11);
-               return TRUE;
-       }
-
-       g_array_append_val(paste_buffer, key);
-       if (key == '\r' || key == '\n') {
-               if (paste_state == 1 &&
-                   paste_keycount < paste_detect_keycount) {
-                       /* not enough keypresses to determine if this is
-                          pasting or not. don't reset paste keycount, but
-                          send this line as non-pasted */
-                       g_array_set_size(paste_buffer, 0);
-                       return FALSE;
-               }
-
-               /* newline - assume this line was pasted */
-               if (paste_state == 1) {
-                       paste_state = 2;
-                       gui_entry_set_text(active_entry, paste_entry);
-                       gui_entry_set_pos(active_entry, paste_entry_pos);
-                       if (paste_verify_line_count > 0)
-                               g_timeout_add(100, paste_timeout, NULL);
-               }
-
-               if (paste_verify_line_count <= 0) {
-                       /* paste previous line */
-                       paste_send();
-                       g_array_set_size(paste_buffer, 0);
-               } else {
-                       paste_line_count++;
-               }
-       }
 
-       return paste_state == 2;
+       paste_prompt = TRUE;
+       paste_old_prompt = g_strdup(active_entry->prompt);
+       printformat_window(active_win, MSGLEVEL_CLIENTNOTICE,
+                          TXT_PASTE_WARNING,
+                          paste_line_count,
+                          active_win->active == NULL ? "window" :
+                          active_win->active->visible_name);
+
+       str = format_get_text(MODULE_NAME, active_win, NULL, NULL,
+                             TXT_PASTE_PROMPT, 0, 0);
+       gui_entry_set_prompt(active_entry, str);
+       paste_entry = gui_entry_get_text(active_entry);
+       paste_entry_pos = gui_entry_get_pos(active_entry);
+       gui_entry_set_text(active_entry, "");
+       g_free(str);
 }
 
 static void sig_gui_key_pressed(gpointer keyp)
@@ -451,7 +358,7 @@ static void sig_gui_key_pressed(gpointer keyp)
        GTimeVal now;
         unichar key;
        char str[20];
-       int ret, diff;
+       int ret;
 
        key = GPOINTER_TO_INT(keyp);
 
@@ -461,13 +368,6 @@ static void sig_gui_key_pressed(gpointer keyp)
        }
 
         g_get_current_time(&now);
-       diff = (now.tv_sec - last_keypress.tv_sec) * 1000 +
-               (now.tv_usec - last_keypress.tv_usec)/1000;
-
-       if (check_pasting(key, diff)) {
-               last_keypress = now;
-               return;
-       }
 
        if (key < 32) {
                /* control key */
@@ -489,7 +389,7 @@ static void sig_gui_key_pressed(gpointer keyp)
                }
        } else {
                 /* need to convert to utf8 */
-               str[utf16_char_to_utf8(key, str)] = '\0';
+               str[g_unichar_to_utf8(key, str)] = '\0';
        }
 
        if (strcmp(str, "^") == 0) {
@@ -498,10 +398,6 @@ static void sig_gui_key_pressed(gpointer keyp)
                str[2] = '\0';
        }
 
-       g_free(prev_entry);
-       prev_entry = gui_entry_get_text(active_entry);
-       prev_entry_pos = gui_entry_get_pos(active_entry);
-
        if (escape_next_key) {
                escape_next_key = FALSE;
                gui_entry_insert_char(active_entry, key);
@@ -522,7 +418,6 @@ static void sig_gui_key_pressed(gpointer keyp)
           you're holding some key down */
        if (ret != 0 && key != prev_key) {
                last_keypress = now;
-               paste_keycount++;
        }
        prev_key = key;
 }
@@ -530,32 +425,30 @@ static void sig_gui_key_pressed(gpointer keyp)
 static void key_send_line(void)
 {
        HISTORY_REC *history;
-        char *str, *add_history;
+       char *str;
+       int add_history;
 
        str = gui_entry_get_text(active_entry);
 
        /* we can't use gui_entry_get_text() later, since the entry might
           have been destroyed after we get back */
-       add_history = *str == '\0' ? NULL : g_strdup(str);
+       add_history = *str != '\0';
        history = command_history_current(active_win);
 
-       translate_output(str);
-
        if (redir == NULL) {
                signal_emit("send command", 3, str,
                            active_win->active_server,
                            active_win->active);
        } else {
                if (redir->flags & ENTRY_REDIRECT_FLAG_HIDDEN)
-                        g_free_and_null(add_history);
+                        add_history = 0;
                handle_entry_redirect(str);
        }
 
-       if (add_history != NULL) {
+       if (add_history) {
                history = command_history_find(history);
                if (history != NULL)
-                       command_history_add(history, add_history);
-                g_free(add_history);
+                       command_history_add(history, str);
        }
 
        if (active_entry != NULL)
@@ -692,8 +585,7 @@ static void key_upcase_word(void)
 static void key_delete_character(void)
 {
        if (gui_entry_get_pos(active_entry) < active_entry->text_len) {
-               gui_entry_move_pos(active_entry, 1);
-               gui_entry_erase(active_entry, 1, FALSE);
+               gui_entry_erase_cell(active_entry);
        }
 }
 
@@ -722,25 +614,57 @@ static void key_delete_to_next_space(void)
        gui_entry_erase_next_word(active_entry, TRUE);
 }
 
-static void sig_input(void)
+static gboolean paste_timeout(gpointer data)
 {
-        unichar buffer[128];
-       int ret, i;
+       if (paste_line_count == 0) {
+               int i;
+
+               for (i = 0; i < paste_buffer->len; i++) {
+                       unichar key = g_array_index(paste_buffer, unichar, i);
+                       signal_emit("gui key pressed", 1, GINT_TO_POINTER(key));
+               }
+               g_array_set_size(paste_buffer, 0);
+       } else if (paste_verify_line_count > 0 &&
+                  paste_line_count >= paste_verify_line_count &&
+                  active_win->active != NULL)
+               insert_paste_prompt();
+       else
+               paste_flush(TRUE);
+       paste_timeout_id = -1;
+       return FALSE;
+}
 
+static void sig_input(void)
+{
        if (!active_entry) {
                 /* no active entry yet - wait until we have it */
                return;
        }
 
-       ret = term_gets(buffer, sizeof(buffer)/sizeof(buffer[0]));
-       if (ret == -1) {
-               /* lost terminal */
-               if (!term_detached)
-                       signal_emit("command quit", 1, "Lost terminal");
+       if (paste_prompt) {
+               GArray *buffer = g_array_new(FALSE, FALSE, sizeof(unichar));
+               int line_count = 0;
+               unichar key;
+               term_gets(buffer, &line_count);
+               key = g_array_index(buffer, unichar, 0);
+               if (key == 11 || key == 3)
+                       paste_flush(key == 11);
+               g_array_free(buffer, TRUE);
        } else {
-               for (i = 0; i < ret; i++) {
-                       signal_emit("gui key pressed", 1,
-                                   GINT_TO_POINTER(buffer[i]));
+               term_gets(paste_buffer, &paste_line_count);
+               if (paste_detect_time > 0 && paste_buffer->len >= 3) {
+                       if (paste_timeout_id != -1)
+                               g_source_remove(paste_timeout_id);
+                       paste_timeout_id = g_timeout_add(paste_detect_time, paste_timeout, NULL);
+               } else {
+                       int i;
+
+                       for (i = 0; i < paste_buffer->len; i++) {
+                               unichar key = g_array_index(paste_buffer, unichar, i);
+                               signal_emit("gui key pressed", 1, GINT_TO_POINTER(key));
+                       }
+                       g_array_set_size(paste_buffer, 0);
+                       paste_line_count = 0;
                }
        }
 }
@@ -775,13 +699,13 @@ static void key_change_window(const char *data)
        signal_emit("command window goto", 3, data, active_win->active_server, active_win->active);
 }
 
-static void key_completion(int erase)
+static void key_completion(int erase, int backward)
 {
        char *text, *line;
        int pos;
 
         text = gui_entry_get_text_and_pos(active_entry, &pos);
-       line = word_complete(active_win, text, &pos, erase);
+       line = word_complete(active_win, text, &pos, erase, backward);
        g_free(text);
 
        if (line != NULL) {
@@ -791,14 +715,19 @@ static void key_completion(int erase)
        }
 }
 
+static void key_word_completion_backward(void)
+{
+        key_completion(FALSE, TRUE);
+}
+
 static void key_word_completion(void)
 {
-        key_completion(FALSE);
+        key_completion(FALSE, FALSE);
 }
 
 static void key_erase_completion(void)
 {
-        key_completion(TRUE);
+        key_completion(TRUE, FALSE);
 }
 
 static void key_check_replaces(void)
@@ -998,14 +927,6 @@ static void sig_gui_entry_redirect(SIGNAL_FUNC func, const char *entry,
 static void setup_changed(void)
 {
        paste_detect_time = settings_get_time("paste_detect_time");
-       if (paste_detect_time == 0)
-               paste_state = -1;
-       else if (paste_state == -1)
-               paste_state = 0;
-
-       paste_detect_keycount = settings_get_int("paste_detect_keycount");
-       if (paste_detect_keycount < 2)
-               paste_state = -1;
 
        paste_verify_line_count = settings_get_int("paste_verify_line_count");
        paste_join_multiline = settings_get_bool("paste_join_multiline");
@@ -1019,19 +940,16 @@ void gui_readline_init(void)
 
         escape_next_key = FALSE;
        redir = NULL;
-       prev_entry = NULL;
-       paste_state = 0;
-        paste_keycount = 0;
        paste_entry = NULL;
        paste_entry_pos = 0;
        paste_buffer = g_array_new(FALSE, FALSE, sizeof(unichar));
         paste_old_prompt = NULL;
+       paste_timeout_id = -1;
        g_get_current_time(&last_keypress);
         input_listen_init(STDIN_FILENO);
 
        settings_add_str("history", "scroll_page_count", "/2");
        settings_add_time("misc", "paste_detect_time", "5msecs");
-       settings_add_int("misc", "paste_detect_keycount", 5);
        /* NOTE: function keys can generate at least 5 characters long
           keycodes. this must be larger to allow them to work. */
        settings_add_int("misc", "paste_verify_line_count", 5);
@@ -1080,70 +998,92 @@ void gui_readline_init(void)
        key_bind("key", NULL, "meta2-c", "cright", (SIGNAL_FUNC) key_combo);
        key_bind("key", NULL, "meta2-5D", "cleft", (SIGNAL_FUNC) key_combo);
        key_bind("key", NULL, "meta2-5C", "cright", (SIGNAL_FUNC) key_combo);
+       key_bind("key", NULL, "meta2-1;5D", "cleft", (SIGNAL_FUNC) key_combo);
+       key_bind("key", NULL, "meta2-1;5C", "cright", (SIGNAL_FUNC) key_combo);
+
+       key_bind("key", NULL, "meta2-1;3A", "mup", (SIGNAL_FUNC) key_combo);
+       key_bind("key", NULL, "meta2-1;3B", "mdown", (SIGNAL_FUNC) key_combo);
+       key_bind("key", NULL, "meta2-1;3D", "mleft", (SIGNAL_FUNC) key_combo);
+       key_bind("key", NULL, "meta2-1;3C", "mright", (SIGNAL_FUNC) key_combo);
+       key_bind("key", NULL, "meta-up", "mup", (SIGNAL_FUNC) key_combo);
+       key_bind("key", NULL, "meta-down", "mdown", (SIGNAL_FUNC) key_combo);
+       key_bind("key", NULL, "meta-left", "mleft", (SIGNAL_FUNC) key_combo);
+       key_bind("key", NULL, "meta-right", "mright", (SIGNAL_FUNC) key_combo);
+
+       key_bind("key", NULL, "meta2-1;5~", "chome", (SIGNAL_FUNC) key_combo);
+       key_bind("key", NULL, "meta2-7;5~", "chome", (SIGNAL_FUNC) key_combo);
+       key_bind("key", NULL, "meta2-5H", "chome", (SIGNAL_FUNC) key_combo);
+       key_bind("key", NULL, "meta2-1;5H", "chome", (SIGNAL_FUNC) key_combo);
+
+       key_bind("key", NULL, "meta2-4;5~", "cend", (SIGNAL_FUNC) key_combo);
+       key_bind("key", NULL, "meta2-8;5~", "cend", (SIGNAL_FUNC) key_combo);
+       key_bind("key", NULL, "meta2-5F", "cend", (SIGNAL_FUNC) key_combo);
+       key_bind("key", NULL, "meta2-1;5F", "cend", (SIGNAL_FUNC) key_combo);
 
        /* cursor movement */
-       key_bind("backward_character", "", "left", NULL, (SIGNAL_FUNC) key_backward_character);
-       key_bind("forward_character", "", "right", NULL, (SIGNAL_FUNC) key_forward_character);
-       key_bind("backward_word", "", "cleft", NULL, (SIGNAL_FUNC) key_backward_word);
+       key_bind("backward_character", "Move the cursor a character backward", "left", NULL, (SIGNAL_FUNC) key_backward_character);
+       key_bind("forward_character", "Move the cursor a character forward", "right", NULL, (SIGNAL_FUNC) key_forward_character);
+       key_bind("backward_word", "Move the cursor a word backward", "cleft", NULL, (SIGNAL_FUNC) key_backward_word);
        key_bind("backward_word", NULL, "meta-b", NULL, (SIGNAL_FUNC) key_backward_word);
-       key_bind("forward_word", "", "cright", NULL, (SIGNAL_FUNC) key_forward_word);
+       key_bind("forward_word", "Move the cursor a word forward", "cright", NULL, (SIGNAL_FUNC) key_forward_word);
        key_bind("forward_word", NULL, "meta-f", NULL, (SIGNAL_FUNC) key_forward_word);
-       key_bind("backward_to_space", "", NULL, NULL, (SIGNAL_FUNC) key_backward_to_space);
-       key_bind("forward_to_space", "", NULL, NULL, (SIGNAL_FUNC) key_forward_to_space);
-       key_bind("beginning_of_line", "", "home", NULL, (SIGNAL_FUNC) key_beginning_of_line);
+       key_bind("backward_to_space", "Move the cursor backward to a space", NULL, NULL, (SIGNAL_FUNC) key_backward_to_space);
+       key_bind("forward_to_space", "Move the cursor forward to a space", NULL, NULL, (SIGNAL_FUNC) key_forward_to_space);
+       key_bind("beginning_of_line", "Move the cursor to the beginning of the line", "home", NULL, (SIGNAL_FUNC) key_beginning_of_line);
        key_bind("beginning_of_line", NULL, "^A", NULL, (SIGNAL_FUNC) key_beginning_of_line);
-       key_bind("end_of_line", "", "end", NULL, (SIGNAL_FUNC) key_end_of_line);
+       key_bind("end_of_line", "Move the cursor to the end of the line", "end", NULL, (SIGNAL_FUNC) key_end_of_line);
        key_bind("end_of_line", NULL, "^E", NULL, (SIGNAL_FUNC) key_end_of_line);
 
         /* history */
-       key_bind("backward_history", "", "up", NULL, (SIGNAL_FUNC) key_backward_history);
-       key_bind("forward_history", "", "down", NULL, (SIGNAL_FUNC) key_forward_history);
+       key_bind("backward_history", "Go back one line in the history", "up", NULL, (SIGNAL_FUNC) key_backward_history);
+       key_bind("forward_history", "Go forward one line in the history", "down", NULL, (SIGNAL_FUNC) key_forward_history);
 
         /* line editing */
-       key_bind("backspace", "", "backspace", NULL, (SIGNAL_FUNC) key_backspace);
-       key_bind("delete_character", "", "delete", NULL, (SIGNAL_FUNC) key_delete_character);
+       key_bind("backspace", "Delete the previous character", "backspace", NULL, (SIGNAL_FUNC) key_backspace);
+       key_bind("delete_character", "Delete the current character", "delete", NULL, (SIGNAL_FUNC) key_delete_character);
        key_bind("delete_character", NULL, "^D", NULL, (SIGNAL_FUNC) key_delete_character);
-       key_bind("delete_next_word", "", "meta-d", NULL, (SIGNAL_FUNC) key_delete_next_word);
-       key_bind("delete_previous_word", "", "meta-backspace", NULL, (SIGNAL_FUNC) key_delete_previous_word);
-       key_bind("delete_to_previous_space", "", "^W", NULL, (SIGNAL_FUNC) key_delete_to_previous_space);
-       key_bind("delete_to_next_space", "", "", NULL, (SIGNAL_FUNC) key_delete_to_next_space);
-       key_bind("erase_line", "", "^U", NULL, (SIGNAL_FUNC) key_erase_line);
-       key_bind("erase_to_beg_of_line", "", NULL, NULL, (SIGNAL_FUNC) key_erase_to_beg_of_line);
-       key_bind("erase_to_end_of_line", "", "^K", NULL, (SIGNAL_FUNC) key_erase_to_end_of_line);
-       key_bind("yank_from_cutbuffer", "", "^Y", NULL, (SIGNAL_FUNC) key_yank_from_cutbuffer);
+       key_bind("delete_next_word", "Delete the word after the cursor", "meta-d", NULL, (SIGNAL_FUNC) key_delete_next_word);
+       key_bind("delete_previous_word", "Delete the word before the cursor", "meta-backspace", NULL, (SIGNAL_FUNC) key_delete_previous_word);
+       key_bind("delete_to_previous_space", "Delete up to the previous space", "^W", NULL, (SIGNAL_FUNC) key_delete_to_previous_space);
+       key_bind("delete_to_next_space", "Delete up to the next space", "", NULL, (SIGNAL_FUNC) key_delete_to_next_space);
+       key_bind("erase_line", "Erase the whole input line", "^U", NULL, (SIGNAL_FUNC) key_erase_line);
+       key_bind("erase_to_beg_of_line", "Erase everything before the cursor", NULL, NULL, (SIGNAL_FUNC) key_erase_to_beg_of_line);
+       key_bind("erase_to_end_of_line", "Erase everything after the cursor", "^K", NULL, (SIGNAL_FUNC) key_erase_to_end_of_line);
+       key_bind("yank_from_cutbuffer", "\"Undelete\", paste the last deleted text", "^Y", NULL, (SIGNAL_FUNC) key_yank_from_cutbuffer);
        key_bind("transpose_characters", "Swap current and previous character", "^T", NULL, (SIGNAL_FUNC) key_transpose_characters);
        key_bind("transpose_words", "Swap current and previous word", NULL, NULL, (SIGNAL_FUNC) key_transpose_words);
-       key_bind("capitalize_word", "Capitalize word", NULL, NULL, (SIGNAL_FUNC) key_capitalize_word);
-       key_bind("downcase_word", "Downcase word", NULL, NULL, (SIGNAL_FUNC) key_downcase_word);
-       key_bind("upcase_word", "Upcase word", NULL, NULL, (SIGNAL_FUNC) key_upcase_word);
+       key_bind("capitalize_word", "Capitalize the current word", NULL, NULL, (SIGNAL_FUNC) key_capitalize_word);
+       key_bind("downcase_word", "Downcase the current word", NULL, NULL, (SIGNAL_FUNC) key_downcase_word);
+       key_bind("upcase_word", "Upcase the current word", NULL, NULL, (SIGNAL_FUNC) key_upcase_word);
 
         /* line transmitting */
        key_bind("send_line", "Execute the input line", "return", NULL, (SIGNAL_FUNC) key_send_line);
-       key_bind("word_completion", "", "tab", NULL, (SIGNAL_FUNC) key_word_completion);
-       key_bind("erase_completion", "", "meta-k", NULL, (SIGNAL_FUNC) key_erase_completion);
+       key_bind("word_completion_backward", "", NULL, NULL, (SIGNAL_FUNC) key_word_completion_backward);
+       key_bind("word_completion", "Complete the current word", "tab", NULL, (SIGNAL_FUNC) key_word_completion);
+       key_bind("erase_completion", "Remove the completion added by word_completion", "meta-k", NULL, (SIGNAL_FUNC) key_erase_completion);
        key_bind("check_replaces", "Check word replaces", NULL, NULL, (SIGNAL_FUNC) key_check_replaces);
 
         /* window managing */
-       key_bind("previous_window", "Previous window", "^P", NULL, (SIGNAL_FUNC) key_previous_window);
-       key_bind("next_window", "Next window", "^N", NULL, (SIGNAL_FUNC) key_next_window);
-       key_bind("upper_window", "Upper window", "meta-up", NULL, (SIGNAL_FUNC) key_upper_window);
-       key_bind("lower_window", "Lower window", "meta-down", NULL, (SIGNAL_FUNC) key_lower_window);
-       key_bind("left_window", "Window in left", "meta-left", NULL, (SIGNAL_FUNC) key_left_window);
-       key_bind("right_window", "Window in right", "meta-right", NULL, (SIGNAL_FUNC) key_right_window);
+       key_bind("previous_window", "Go to the previous window", "^P", NULL, (SIGNAL_FUNC) key_previous_window);
+       key_bind("next_window", "Go to the next window", "^N", NULL, (SIGNAL_FUNC) key_next_window);
+       key_bind("upper_window", "Go to the split window above", "mup", NULL, (SIGNAL_FUNC) key_upper_window);
+       key_bind("lower_window", "Go to the split window below", "mdown", NULL, (SIGNAL_FUNC) key_lower_window);
+       key_bind("left_window", "Go to the previous window in the current split window", "mleft", NULL, (SIGNAL_FUNC) key_left_window);
+       key_bind("right_window", "Go to the next window in the current split window", "mright", NULL, (SIGNAL_FUNC) key_right_window);
        key_bind("active_window", "Go to next window with the highest activity", "meta-a", NULL, (SIGNAL_FUNC) key_active_window);
-       key_bind("next_window_item", "Next channel/query", "^X", NULL, (SIGNAL_FUNC) key_next_window_item);
-       key_bind("previous_window_item", "Previous channel/query", NULL, NULL, (SIGNAL_FUNC) key_previous_window_item);
+       key_bind("next_window_item", "Go to the next channel/query. In empty windows change to the next server", "^X", NULL, (SIGNAL_FUNC) key_next_window_item);
+       key_bind("previous_window_item", "Go to the previous channel/query. In empty windows change to the previous server", NULL, NULL, (SIGNAL_FUNC) key_previous_window_item);
 
        key_bind("refresh_screen", "Redraw screen", "^L", NULL, (SIGNAL_FUNC) irssi_redraw);
-       key_bind("scroll_backward", "Previous page", "prior", NULL, (SIGNAL_FUNC) key_scroll_backward);
+       key_bind("scroll_backward", "Scroll to previous page", "prior", NULL, (SIGNAL_FUNC) key_scroll_backward);
        key_bind("scroll_backward", NULL, "meta-p", NULL, (SIGNAL_FUNC) key_scroll_backward);
-       key_bind("scroll_forward", "Next page", "next", NULL, (SIGNAL_FUNC) key_scroll_forward);
+       key_bind("scroll_forward", "Scroll to next page", "next", NULL, (SIGNAL_FUNC) key_scroll_forward);
        key_bind("scroll_forward", NULL, "meta-n", NULL, (SIGNAL_FUNC) key_scroll_forward);
-       key_bind("scroll_start", "Beginning of the window", "", NULL, (SIGNAL_FUNC) key_scroll_start);
-       key_bind("scroll_end", "End of the window", "", NULL, (SIGNAL_FUNC) key_scroll_end);
+       key_bind("scroll_start", "Scroll to the beginning of the window", "chome", NULL, (SIGNAL_FUNC) key_scroll_start);
+       key_bind("scroll_end", "Scroll to the end of the window", "cend", NULL, (SIGNAL_FUNC) key_scroll_end);
 
         /* inserting special input characters to line.. */
-       key_bind("escape_char", "Escape the next keypress", NULL, NULL, (SIGNAL_FUNC) key_escape);
+       key_bind("escape_char", "Insert the next character exactly as-is to input line", NULL, NULL, (SIGNAL_FUNC) key_escape);
        key_bind("insert_text", "Append text to line", NULL, NULL, (SIGNAL_FUNC) key_insert_text);
 
         /* autoreplaces */
@@ -1205,6 +1145,7 @@ void gui_readline_deinit(void)
        key_unbind("upcase_word", (SIGNAL_FUNC) key_upcase_word);
 
        key_unbind("send_line", (SIGNAL_FUNC) key_send_line);
+       key_unbind("word_completion_backward", (SIGNAL_FUNC) key_word_completion_backward);
        key_unbind("word_completion", (SIGNAL_FUNC) key_word_completion);
        key_unbind("erase_completion", (SIGNAL_FUNC) key_erase_completion);
        key_unbind("check_replaces", (SIGNAL_FUNC) key_check_replaces);
index 1e7316f4c33edc6af6d9231ba3df800a3706226a..4213149d547bef9ddff434a3ec38dc34412cdedd 100644 (file)
@@ -13,9 +13,9 @@
     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     GNU General Public License for more details.
 
-    You should have received a copy of the GNU General Public License
-    along with this program; if not, write to the Free Software
-    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+    You should have received a copy of the GNU General Public License along
+    with this program; if not, write to the Free Software Foundation, Inc.,
+    51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 */
 
 #include "module.h"
@@ -68,7 +68,7 @@ static void sig_window_create_override(gpointer tab)
 static void gui_window_created(WINDOW_REC *window, void *automatic)
 {
        MAIN_WINDOW_REC *parent;
-        int empty_window, new_parent;
+        int new_parent;
 
        g_return_if_fail(window != NULL);
 
@@ -84,8 +84,6 @@ static void gui_window_created(WINDOW_REC *window, void *automatic)
        }
        window_create_override = -1;
 
-        empty_window = parent->active == NULL;
-
        if (parent->active == NULL) parent->active = window;
        window->gui_data = gui_window_init(window, parent);
 
index 3919be7ef66eee5c2acae3d15b405a2c3769b55d..417eb484f83265bb906c4d8f1cd08c0adceb1dab 100644 (file)
@@ -13,9 +13,9 @@
     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     GNU General Public License for more details.
 
-    You should have received a copy of the GNU General Public License
-    along with this program; if not, write to the Free Software
-    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+    You should have received a copy of the GNU General Public License along
+    with this program; if not, write to the Free Software Foundation, Inc.,
+    51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 */
 
 #include "module.h"
 #define DEFAULT_LASTLOG_AFTER 3
 #define MAX_LINES_WITHOUT_FORCE 1000
 
-static void window_lastlog_clear(WINDOW_REC *window)
-{
-       TEXT_BUFFER_VIEW_REC *view;
-        LINE_REC *line, *next;
-
-        term_refresh_freeze();
-       view = WINDOW_GUI(window)->view;
-       line = textbuffer_view_get_lines(view);
-
-       while (line != NULL) {
-                next = line->next;
-
-               if (line->info.level & MSGLEVEL_LASTLOG)
-                       textbuffer_view_remove_line(view, line);
-                line = next;
-       }
-        textbuffer_view_redraw(view);
-        term_refresh_thaw();
-}
-
 /* Only unknown keys in `optlist' should be levels.
    Returns -1 if unknown option was given. */
 int cmd_options_get_level(const char *cmd, GHashTable *optlist)
@@ -95,7 +75,7 @@ int cmd_options_get_level(const char *cmd, GHashTable *optlist)
 }
 
 static void show_lastlog(const char *searchtext, GHashTable *optlist,
-                        int start, int count, int fhandle)
+                        int start, int count, FILE *fhandle)
 {
        WINDOW_REC *window;
         LINE_REC *startline;
@@ -109,7 +89,7 @@ static void show_lastlog(const char *searchtext, GHashTable *optlist,
         if (level == 0) level = MSGLEVEL_ALL;
 
        if (g_hash_table_lookup(optlist, "clear") != NULL) {
-               window_lastlog_clear(active_win);
+               textbuffer_view_remove_lines_by_level(WINDOW_GUI(active_win)->view, MSGLEVEL_LASTLOG);
                if (*searchtext == '\0')
                         return;
        }
@@ -177,7 +157,7 @@ static void show_lastlog(const char *searchtext, GHashTable *optlist,
                return;
        }
 
-       if (len > MAX_LINES_WITHOUT_FORCE && fhandle == -1 &&
+       if (len > MAX_LINES_WITHOUT_FORCE && fhandle == NULL &&
            g_hash_table_lookup(optlist, "force") == NULL) {
                printformat_window(active_win,
                                   MSGLEVEL_CLIENTNOTICE|MSGLEVEL_LASTLOG,
@@ -186,7 +166,7 @@ static void show_lastlog(const char *searchtext, GHashTable *optlist,
                return;
        }
 
-       if (fhandle == -1 && g_hash_table_lookup(optlist, "-") == NULL)
+       if (fhandle == NULL && g_hash_table_lookup(optlist, "-") == NULL)
                printformat(NULL, NULL, MSGLEVEL_LASTLOG, TXT_LASTLOG_START);
 
        line = g_string_new(NULL);
@@ -196,8 +176,8 @@ static void show_lastlog(const char *searchtext, GHashTable *optlist,
                if (rec == NULL) {
                        if (tmp->next == NULL)
                                 break;
-                       if (fhandle != -1) {
-                               write(fhandle, "--\n", 3);
+                       if (fhandle != NULL) {
+                               fwrite("--\n", 3, 1, fhandle);
                        } else {
                                printformat_window(active_win,
                                                   MSGLEVEL_LASTLOG,
@@ -208,7 +188,7 @@ static void show_lastlog(const char *searchtext, GHashTable *optlist,
                }
 
                 /* get the line text */
-               textbuffer_line2text(rec, fhandle == -1, line);
+               textbuffer_line2text(rec, fhandle == NULL, line);
                if (!settings_get_bool("timestamps")) {
                        struct tm *tm = localtime(&rec->info.time);
                         char timestamp[10];
@@ -220,9 +200,9 @@ static void show_lastlog(const char *searchtext, GHashTable *optlist,
                }
 
                 /* write to file/window */
-               if (fhandle != -1) {
-                       write(fhandle, line->str, line->len);
-                       write(fhandle, "\n", 1);
+               if (fhandle != NULL) {
+                       fwrite(line->str, line->len, 1, fhandle);
+                       fputc('\n', fhandle);
                } else {
                        printtext_window(active_win, MSGLEVEL_LASTLOG,
                                         "%s", line->str);
@@ -233,13 +213,12 @@ static void show_lastlog(const char *searchtext, GHashTable *optlist,
        }
         g_string_free(line, TRUE);
 
-       if (fhandle == -1 && g_hash_table_lookup(optlist, "-") == NULL)
+       if (fhandle == NULL && g_hash_table_lookup(optlist, "-") == NULL)
                printformat(NULL, NULL, MSGLEVEL_LASTLOG, TXT_LASTLOG_END);
 
        textbuffer_view_set_bookmark_bottom(WINDOW_GUI(window)->view,
                                            "lastlog_last_check");
 
-        textbuffer_line_unref_list(WINDOW_GUI(window)->view->buffer, list);
        g_list_free(list);
 }
 
@@ -252,7 +231,8 @@ static void cmd_lastlog(const char *data)
        GHashTable *optlist;
        char *text, *countstr, *start, *fname;
        void *free_arg;
-        int count, fhandle;
+        int count, fd;
+       FILE *fhandle;
 
        g_return_if_fail(data != NULL);
 
@@ -271,22 +251,31 @@ static void cmd_lastlog(const char *data)
        if (count == 0) count = -1;
 
        /* target where to print it */
-        fhandle = -1;
+        fhandle = NULL;
        fname = g_hash_table_lookup(optlist, "file");
        if (fname != NULL) {
                 fname = convert_home(fname);
-               fhandle = open(fname, O_WRONLY | O_APPEND | O_CREAT,
-                              octal2dec(settings_get_int("log_create_mode")));
+               fd = open(fname, O_WRONLY | O_APPEND | O_CREAT,
+                         octal2dec(settings_get_int("log_create_mode")));
+               if (fd != -1) {
+                       fhandle = fdopen(fd, "a");
+                       if (fhandle == NULL)
+                               close(fd);
+               }
                 g_free(fname);
        }
 
-       if (fname != NULL && fhandle == -1) {
+       if (fname != NULL && fhandle == NULL) {
                printtext(NULL, NULL, MSGLEVEL_CLIENTERROR,
-                         "%s", g_strerror(errno));
+                         "Could not open lastlog: %s", g_strerror(errno));
        } else {
                show_lastlog(text, optlist, atoi(start), count, fhandle);
-               if (fhandle != -1)
-                       close(fhandle);
+               if (fhandle != NULL) {
+                       if (ferror(fhandle))
+                               printtext(NULL, NULL, MSGLEVEL_CLIENTERROR,
+                                         "Could not write lastlog: %s", g_strerror(errno));
+                       fclose(fhandle);
+               }
        }
 
        cmd_params_free(free_arg);
index 4301d98196807bf6550710d4d3e0991650bac78a..3a084110e66f6ca08137ca3839738cc11defe9c5 100644 (file)
@@ -13,9 +13,9 @@
     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     GNU General Public License for more details.
 
-    You should have received a copy of the GNU General Public License
-    along with this program; if not, write to the Free Software
-    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+    You should have received a copy of the GNU General Public License along
+    with this program; if not, write to the Free Software Foundation, Inc.,
+    51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 */
 
 #include "module.h"
@@ -33,13 +33,13 @@ static void sig_activity(WINDOW_REC *window)
                return;
 
        window->data_level = 0;
-        window->hilight_color = 0;
+       g_free_and_null(window->hilight_color);
 
        for (tmp = window->items; tmp != NULL; tmp = tmp->next) {
                WI_ITEM_REC *item = tmp->data;
 
                item->data_level = 0;
-               item->hilight_color = 0;
+               g_free_and_null(item->hilight_color);
        }
        signal_stop();
 }
index 072b9b2c7f9b505ddb6517ecd2fdadbef226c027..28fae9240b2c899ceb6608d4b3e90a7db68ce7cd 100644 (file)
@@ -13,9 +13,9 @@
     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     GNU General Public License for more details.
 
-    You should have received a copy of the GNU General Public License
-    along with this program; if not, write to the Free Software
-    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+    You should have received a copy of the GNU General Public License along
+    with this program; if not, write to the Free Software Foundation, Inc.,
+    51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 */
 
 #include "module.h"
index 03fdeda86b06c4c5e71751aac52c4a62aa76f9ee..5f58c25ffcc73fcab4540df9bf290a6b378a9cd5 100644 (file)
@@ -13,9 +13,9 @@
     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     GNU General Public License for more details.
 
-    You should have received a copy of the GNU General Public License
-    along with this program; if not, write to the Free Software
-    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+    You should have received a copy of the GNU General Public License along
+    with this program; if not, write to the Free Software Foundation, Inc.,
+    51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 */
 
 #include "module.h"
@@ -206,9 +206,7 @@ MAIN_WINDOW_REC *mainwindow_create(void)
                rec->last_line = rec->first_line + space;
                rec->height = rec->last_line-rec->first_line+1;
 
-               parent->first_line = rec->last_line+1;
-               parent->height = parent->last_line-parent->first_line+1;
-
+               parent->first_line += space+1;
                mainwindow_resize(parent, 0, -space-1);
        }
 
@@ -356,8 +354,11 @@ static void mainwindows_resize_smaller(int xdiff, int ydiff)
        GSList *sorted, *tmp;
         int space;
 
+       sorted = mainwindows_get_sorted(TRUE);
+       if (sorted == NULL)
+               return;
+
        for (;;) {
-               sorted = mainwindows_get_sorted(TRUE);
                space = 0;
                for (tmp = mainwindows; tmp != NULL; tmp = tmp->next) {
                        rec = tmp->data;
@@ -368,6 +369,8 @@ static void mainwindows_resize_smaller(int xdiff, int ydiff)
                        break;
 
                rec = sorted->data;
+               if (rec == active_mainwin && sorted->next != NULL)
+                       rec = sorted->next->data;
                sorted = g_slist_remove(sorted, rec);
 
                if (sorted != NULL) {
@@ -387,7 +390,7 @@ static void mainwindows_resize_smaller(int xdiff, int ydiff)
                rec = tmp->data;
 
                space = MAIN_WINDOW_TEXT_HEIGHT(rec)-WINDOW_MIN_SIZE;
-               if (space <= 0) {
+               if (space == 0) {
                        mainwindow_resize(rec, xdiff, 0);
 
                        rec->first_line += ydiff;
@@ -396,7 +399,6 @@ static void mainwindows_resize_smaller(int xdiff, int ydiff)
                        continue;
                }
 
-               if (space <= 0) space = 1;
                if (space > -ydiff) space = -ydiff;
                rec->last_line += ydiff;
                ydiff += space;
@@ -418,43 +420,24 @@ static void mainwindows_resize_smaller(int xdiff, int ydiff)
 static void mainwindows_resize_bigger(int xdiff, int ydiff)
 {
        GSList *sorted, *tmp;
-        int moved, space;
 
        sorted = mainwindows_get_sorted(FALSE);
-       moved = 0;
        for (tmp = sorted; tmp != NULL; tmp = tmp->next) {
                MAIN_WINDOW_REC *rec = tmp->data;
 
-               space = MAIN_WINDOW_TEXT_HEIGHT(rec)-WINDOW_MIN_SIZE;
-               if (ydiff == 0 || (space >= 0 && tmp->next != NULL)) {
+               if (ydiff == 0 || tmp->next != NULL) {
                        mainwindow_resize(rec, xdiff, 0);
-                       if (moved > 0) {
-                               rec->first_line += moved;
-                               rec->last_line += moved;
-                               signal_emit("mainwindow moved", 1, rec);
-                       }
                        continue;
                }
 
-               if (space < 0 && tmp->next != NULL) {
-                        /* space below minimum */
-                       space = -space;
-                       if (space > ydiff) space = ydiff;
-               } else {
-                       /* lowest window - give all the extra space for it */
-                       space = ydiff;
-               }
-               ydiff -= space;
-               rec->first_line += moved;
-                moved += space;
-               rec->last_line += moved;
-
-               mainwindow_resize(rec, xdiff, space);
+               /* lowest window - give all the extra space for it */
+               rec->last_line += ydiff;
+               mainwindow_resize(rec, xdiff, ydiff);
        }
        g_slist_free(sorted);
 }
 
-void mainwindows_resize_horiz(int xdiff)
+static void mainwindows_resize_horiz(int xdiff)
 {
        GSList *tmp;
 
@@ -820,7 +803,7 @@ static void cmd_window_show(const char *data)
        if (window == NULL || is_window_visible(window))
                return;
 
-       if (WINDOW_MAIN(window)->sticky_windows) {
+       if (WINDOW_GUI(window)->sticky) {
                printformat_window(active_win, MSGLEVEL_CLIENTERROR,
                                   TXT_CANT_SHOW_STICKY_WINDOWS);
                 return;
@@ -974,7 +957,7 @@ static void cmd_window_stick(const char *data)
                while (*data == ' ') data++;
        }
 
-       if (g_strncasecmp(data, "OF", 2) == 0 || i_toupper(*data) == 'N') {
+       if (g_ascii_strncasecmp(data, "OF", 2) == 0 || i_toupper(*data) == 'N') {
                /* unset sticky */
                if (!WINDOW_GUI(win)->sticky) {
                        printformat_window(win, MSGLEVEL_CLIENTERROR,
@@ -1048,7 +1031,7 @@ static void windows_print_sticky(WINDOW_REC *win)
        for (tmp = list; tmp != NULL; tmp = tmp->next) {
                WINDOW_REC *rec = tmp->data;
 
-               g_string_sprintfa(str, "#%d, ", rec->refnum);
+               g_string_append_printf(str, "#%d, ", rec->refnum);
        }
         g_string_truncate(str, str->len-2);
         g_slist_free(list);
index f627a2d994dedea4fdd41fad641202910d27fa56..1d9050950c34021a63b35fa858c0a32014c2259f 100644 (file)
@@ -13,9 +13,9 @@
     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     GNU General Public License for more details.
 
-    You should have received a copy of the GNU General Public License
-    along with this program; if not, write to the Free Software
-    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+    You should have received a copy of the GNU General Public License along
+    with this program; if not, write to the Free Software Foundation, Inc.,
+    51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 */
 
 #include "module.h"
index 000d5f6884f8a4b893589573addd8e7e81af639e..a75afd24c37f4b74f01bed8cdbd187037225e910 100644 (file)
@@ -40,7 +40,7 @@
 #include "gui-readline.h"
 #include "statusbar.h"
 #include "gui-windows.h"
-#include "textbuffer-reformat.h"
+#include "irssi-version.h"
 
 #include <signal.h>
 #include <locale.h>
@@ -156,7 +156,6 @@ static void textui_finish_init(void)
                textbuffer_init();
                textbuffer_view_init();
                textbuffer_commands_init();
-               textbuffer_reformat_init();
                gui_expandos_init();
                gui_printtext_init();
                gui_readline_init();
@@ -213,7 +212,6 @@ static void textui_deinit(void)
                mainwindow_activity_deinit();
                mainwindows_deinit();
                gui_expandos_deinit();
-               textbuffer_reformat_deinit();
                textbuffer_commands_deinit();
                textbuffer_view_deinit();
                textbuffer_deinit();
@@ -230,42 +228,6 @@ static void textui_deinit(void)
        core_deinit();
 }
 
-static void check_oldcrap(void)
-{
-        FILE *f;
-       char *path, str[256];
-        int found;
-
-        /* check that default.theme is up-to-date */
-       path = g_strdup_printf("%s/default.theme", get_irssi_dir());
-       f = fopen(path, "r+");
-       if (f == NULL) {
-               g_free(path);
-                return;
-       }
-        found = FALSE;
-       while (!found && fgets(str, sizeof(str), f) != NULL)
-                found = strstr(str, "abstracts = ") != NULL;
-       fclose(f);
-
-       if (found) {
-               g_free(path);
-               return;
-       }
-
-       printf("\nYou seem to have old default.theme in "IRSSI_DIR_SHORT"/ directory.\n");
-        printf("Themeing system has changed a bit since last irssi release,\n");
-        printf("you should either delete your old default.theme or manually\n");
-        printf("merge it with the new default.theme.\n\n");
-       printf("Do you want to delete the old theme now? (Y/n)\n");
-
-       str[0] = '\0';
-       fgets(str, sizeof(str), stdin);
-       if (i_toupper(str[0]) == 'Y' || str[0] == '\n' || str[0] == '\0')
-                remove(path);
-       g_free(path);
-}
-
 static void check_files(void)
 {
        struct stat statbuf;
@@ -273,8 +235,6 @@ static void check_files(void)
        if (stat(get_irssi_dir(), &statbuf) != 0) {
                /* ~/.irssi doesn't exist, first time running irssi */
                display_firsttimer = TRUE;
-       } else {
-                check_oldcrap();
        }
 }
 
@@ -311,22 +271,24 @@ GMemVTable gc_mem_table = {
 
 int main(int argc, char **argv)
 {
-       static struct poptOption options[] = {
-#if 0 /* --dummy is not available in SILC Client */
-               { "dummy", 'd', POPT_ARG_NONE, &dummy, 0, "Use the dummy terminal mode", NULL },
-#endif
-               { NULL, '\0', 0, NULL }
+       static int version = 0;
+       static GOptionEntry options[] = {
+               { "version", 'v', 0, G_OPTION_ARG_NONE, &version, "Display version", NULL },
+               { NULL }
        };
 
 #ifdef USE_GC
        g_mem_set_vtable(&gc_mem_table);
 #endif
 
+       core_register_options();
+       fe_common_core_register_options();
+
        srand(time(NULL));
 
        dummy = FALSE;
        quitting = FALSE;
-       core_init_paths(argc, argv);
+       core_preinit(argv[0]);
 
        check_files();
 
@@ -336,11 +298,6 @@ int main(int argc, char **argv)
 #ifdef HAVE_SOCKS
        SOCKSinit(argv[0]);
 #endif
-#ifdef ENABLE_NLS
-       /* initialize the i18n stuff */
-       bindtextdomain(PACKAGE, LOCALEDIR);
-       textdomain(PACKAGE);
-#endif
 
        /* setlocale() must be called at the beginning before any calls that
           affect it, especially regexps seem to break if they're generated
@@ -354,9 +311,16 @@ int main(int argc, char **argv)
        setlocale(LC_ALL, "");
 
        textui_init();
+
        args_register(options);
        args_execute(argc, argv);
 
+       if (version) {
+               printf(PACKAGE" " IRSSI_VERSION" (%d %04d)\n",
+                      IRSSI_VERSION_DATE, IRSSI_VERSION_TIME);
+               return 0;
+       }
+
        if (!dummy && !term_init()) {
                fprintf(stderr, "Can't initialize screen handling, quitting.\n");
                fprintf(stderr, "You can still use the dummy mode with -d parameter\n");
index 81638d994d4032dc0dcde6aeb9a50f2785f15731..013ce062cb83c33880de0c0bd18dd08cf1f9457c 100644 (file)
@@ -13,9 +13,9 @@
     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     GNU General Public License for more details.
 
-    You should have received a copy of the GNU General Public License
-    along with this program; if not, write to the Free Software
-    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+    You should have received a copy of the GNU General Public License along
+    with this program; if not, write to the Free Software Foundation, Inc.,
+    51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 */
 
 #include "module.h"
@@ -25,6 +25,7 @@
 #include "settings.h"
 #include "levels.h"
 #include "lib-config/iconfig.h"
+#include "misc.h"
 
 #include "statusbar.h"
 #include "printtext.h"
@@ -163,16 +164,16 @@ static void statusbar_read(STATUSBAR_GROUP_REC *group, CONFIG_NODE *node)
        }
 
         visible_str = config_node_get_str(node, "visible", "");
-       if (g_strcasecmp(visible_str, "active") == 0)
+       if (g_ascii_strcasecmp(visible_str, "active") == 0)
                 bar->visible = STATUSBAR_VISIBLE_ACTIVE;
-       else if (g_strcasecmp(visible_str, "inactive") == 0)
+       else if (g_ascii_strcasecmp(visible_str, "inactive") == 0)
                bar->visible = STATUSBAR_VISIBLE_INACTIVE;
        else
                bar->visible = STATUSBAR_VISIBLE_ALWAYS;
 
-       if (g_strcasecmp(config_node_get_str(node, "type", ""), "window") == 0)
+       if (g_ascii_strcasecmp(config_node_get_str(node, "type", ""), "window") == 0)
                 bar->type = STATUSBAR_TYPE_WINDOW;
-       if (g_strcasecmp(config_node_get_str(node, "placement", ""), "top") == 0)
+       if (g_ascii_strcasecmp(config_node_get_str(node, "placement", ""), "top") == 0)
                 bar->placement = STATUSBAR_TOP;
        bar->position = config_node_get_int(node, "position", 0);
 
@@ -378,9 +379,9 @@ static void cmd_statusbar_reset(const char *data, void *server,
 static void cmd_statusbar_type(const char *data, void *server,
                               void *item, CONFIG_NODE *node)
 {
-       if (g_strcasecmp(data, "window") == 0)
+       if (g_ascii_strcasecmp(data, "window") == 0)
                iconfig_node_set_str(node, "type", "window");
-        else if (g_strcasecmp(data, "root") == 0)
+        else if (g_ascii_strcasecmp(data, "root") == 0)
                iconfig_node_set_str(node, "type", "root");
        else {
                printformat(NULL, NULL, MSGLEVEL_CLIENTERROR,
@@ -392,9 +393,9 @@ static void cmd_statusbar_type(const char *data, void *server,
 static void cmd_statusbar_placement(const char *data, void *server,
                                    void *item, CONFIG_NODE *node)
 {
-       if (g_strcasecmp(data, "top") == 0)
+       if (g_ascii_strcasecmp(data, "top") == 0)
                iconfig_node_set_str(node, "placement", "top");
-        else if (g_strcasecmp(data, "bottom") == 0)
+        else if (g_ascii_strcasecmp(data, "bottom") == 0)
                iconfig_node_set_str(node, "placement", "bottom");
        else {
                printformat(NULL, NULL, MSGLEVEL_CLIENTERROR,
@@ -413,11 +414,11 @@ static void cmd_statusbar_position(const char *data, void *server,
 static void cmd_statusbar_visible(const char *data, void *server,
                                  void *item, CONFIG_NODE *node)
 {
-       if (g_strcasecmp(data, "always") == 0)
+       if (g_ascii_strcasecmp(data, "always") == 0)
                iconfig_node_set_str(node, "visible", "always");
-        else if (g_strcasecmp(data, "active") == 0)
+        else if (g_ascii_strcasecmp(data, "active") == 0)
                iconfig_node_set_str(node, "visible", "active");
-        else if (g_strcasecmp(data, "inactive") == 0)
+        else if (g_ascii_strcasecmp(data, "inactive") == 0)
                iconfig_node_set_str(node, "visible", "inactive");
        else {
                printformat(NULL, NULL, MSGLEVEL_CLIENTERROR,
@@ -495,7 +496,7 @@ static void cmd_statusbar_add(const char *data, void *server,
        value = g_hash_table_lookup(optlist, "alignment");
        if (value != NULL) {
                iconfig_node_set_str(node, "alignment",
-                                    g_strcasecmp(value, "right") == 0 ?
+                                    g_ascii_strcasecmp(value, "right") == 0 ?
                                     "right" : NULL);
        }
 
@@ -550,7 +551,7 @@ static void cmd_statusbar(const char *data)
 
        /* call the subcommand */
        signal = g_strconcat("command statusbar ", cmd, NULL);
-        g_strdown(signal);
+       ascii_strdown(signal);
        if (!signal_emit(signal, 4, params, NULL, NULL, node)) {
                printformat(NULL, NULL, MSGLEVEL_CLIENTERROR,
                            TXT_STATUSBAR_UNKNOWN_COMMAND, cmd);
diff --git a/apps/irssi/src/fe-text/statusbar-item.h b/apps/irssi/src/fe-text/statusbar-item.h
new file mode 100644 (file)
index 0000000..ce9011e
--- /dev/null
@@ -0,0 +1,17 @@
+#ifndef IRSSI_STATUSBAR_ITEM_H
+#define IRSSI_STATUSBAR_ITEM_H
+
+struct SBAR_ITEM_REC;
+
+typedef void (*STATUSBAR_FUNC) (struct SBAR_ITEM_REC *item, int get_size_only);
+
+void statusbar_item_register(const char *name, const char *value,
+                            STATUSBAR_FUNC func);
+void statusbar_item_unregister(const char *name);
+void statusbar_item_set_size(struct SBAR_ITEM_REC *item, int min_size, int max_size);
+void statusbar_item_default_handler(struct SBAR_ITEM_REC *item, int get_size_only,
+                                   const char *str, const char *data,
+                                   int escape_vars);
+void statusbar_items_redraw(const char *name);
+
+#endif
index dce98380d089697fc1a3fc287e8e5f5255459314..044c2fa08c7a92626c10bc0f03ac9dac0602d378 100644 (file)
@@ -13,9 +13,9 @@
     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     GNU General Public License for more details.
 
-    You should have received a copy of the GNU General Public License
-    along with this program; if not, write to the Free Software
-    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+    You should have received a copy of the GNU General Public License along
+    with this program; if not, write to the Free Software Foundation, Inc.,
+    51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 */
 
 #include "module.h"
@@ -32,6 +32,7 @@
 #define LAG_REFRESH_TIME 10
 
 static GList *activity_list;
+static guint8 actlist_sort;
 static GSList *more_visible; /* list of MAIN_WINDOW_RECs which have --more-- */
 static GHashTable *input_entries;
 static int last_lag, last_lag_unknown, lag_timeout_tag;
@@ -72,11 +73,14 @@ static char *get_activity_list(MAIN_WINDOW_REC *window, int normal, int hilight)
 {
         THEME_REC *theme;
        GString *str;
+       GString *format;
        GList *tmp;
-        char *ret, *name, *format, *value;
+        char *ret, *name, *value;
         int is_det;
+       int add_name = settings_get_bool("actlist_names");
 
        str = g_string_new(NULL);
+       format = g_string_new(NULL);
 
        theme = window != NULL && window->active != NULL &&
                window->active->theme != NULL ?
@@ -99,35 +103,37 @@ static char *get_activity_list(MAIN_WINDOW_REC *window, int normal, int hilight)
                switch (window->data_level) {
                case DATA_LEVEL_NONE:
                case DATA_LEVEL_TEXT:
-                       name = "{sb_act_text %d}";
+                       name = "{sb_act_text %d";
                        break;
                case DATA_LEVEL_MSG:
-                       name = "{sb_act_msg %d}";
+                       name = "{sb_act_msg %d";
                        break;
                default:
                         if (window->hilight_color == NULL)
-                               name = "{sb_act_hilight %d}";
+                               name = "{sb_act_hilight %d";
                        else
                                 name = NULL;
                        break;
                }
 
                if (name != NULL)
-                       format = g_strdup_printf(name, window->refnum);
+                       g_string_printf(format, name, window->refnum);
                else
-                       format = g_strdup_printf("{sb_act_hilight_color %s %d}",
+                       g_string_printf(format, "{sb_act_hilight_color %s %d",
                                                 window->hilight_color,
                                                 window->refnum);
+               if (add_name && window->active != NULL)
+                       g_string_append_printf(format, ":%s", window->active->visible_name);
+               g_string_append_c(format, '}');
 
-               value = theme_format_expand(theme, format);
+               value = theme_format_expand(theme, format->str);
                g_string_append(str, value);
                 g_free(value);
-
-               g_free(format);
        }
 
        ret = str->len == 0 ? NULL : str->str;
         g_string_free(str, ret == NULL);
+       g_string_free(format, TRUE);
         return ret;
 }
 
@@ -151,28 +157,72 @@ static void item_act(SBAR_ITEM_REC *item, int get_size_only)
        g_free_not_null(actlist);
 }
 
+static int window_level_recent_cmp(WINDOW_REC *w1, WINDOW_REC *w2)
+{
+       if (w1->data_level >= w2->data_level)
+               return -1;
+       else
+               return 1;
+}
+
+static int window_level_cmp(WINDOW_REC *w1, WINDOW_REC *w2)
+{
+       if (w1->data_level > w2->data_level ||
+           (w1->data_level == w2->data_level && w1->refnum < w2->refnum))
+               return -1;
+       else
+               return 1;
+}
+
 static void sig_statusbar_activity_hilight(WINDOW_REC *window, gpointer oldlevel)
 {
-       GList *tmp;
-       int inspos;
+       GList *node;
 
        g_return_if_fail(window != NULL);
 
-       if (settings_get_bool("actlist_moves")) {
+       node = g_list_find(activity_list, window);
+
+       if (actlist_sort == 1) {
                /* Move the window to the first in the activity list */
-               if (g_list_find(activity_list, window) != NULL)
-                       activity_list = g_list_remove(activity_list, window);
+               if (node != NULL)
+                       activity_list = g_list_delete_link(activity_list, node);
                if (window->data_level != 0)
                        activity_list = g_list_prepend(activity_list, window);
                statusbar_items_redraw("act");
                return;
        }
 
-       if (g_list_find(activity_list, window) != NULL) {
+       if (actlist_sort == 2) {
+               if (node != NULL) {
+                       if (window->data_level == GPOINTER_TO_INT(oldlevel)) {
+                               if (window->hilight_color != 0)
+                                       statusbar_items_redraw("act");
+                               return;
+                       }
+                       activity_list = g_list_delete_link(activity_list, node);
+               }
+               if (window->data_level != 0)
+                       activity_list = g_list_insert_sorted(activity_list, window, (GCompareFunc)
+                                                            window_level_cmp);
+               statusbar_items_redraw("act");
+               return;
+       }
+
+       if (actlist_sort == 3) {
+               if (node != NULL)
+                       activity_list = g_list_delete_link(activity_list, node);
+               if (window->data_level != 0)
+                       activity_list = g_list_insert_sorted(activity_list, window, (GCompareFunc)
+                                                            window_level_recent_cmp);
+               statusbar_items_redraw("act");
+               return;
+       }
+
+       if (node != NULL) {
                /* already in activity list */
                if (window->data_level == 0) {
                        /* remove from activity list */
-                       activity_list = g_list_remove(activity_list, window);
+                       activity_list = g_list_delete_link(activity_list, node);
                        statusbar_items_redraw("act");
                } else if (window->data_level != GPOINTER_TO_INT(oldlevel) ||
                         window->hilight_color != 0) {
@@ -187,28 +237,21 @@ static void sig_statusbar_activity_hilight(WINDOW_REC *window, gpointer oldlevel
                return;
 
        /* add window to activity list .. */
-       inspos = 0;
-       for (tmp = activity_list; tmp != NULL; tmp = tmp->next, inspos++) {
-               WINDOW_REC *rec = tmp->data;
-
-               if (window->refnum < rec->refnum) {
-                       activity_list =
-                               g_list_insert(activity_list, window, inspos);
-                       break;
-               }
-       }
-       if (tmp == NULL)
-               activity_list = g_list_append(activity_list, window);
+       activity_list = g_list_insert_sorted(activity_list, window, (GCompareFunc)
+                                            window_refnum_cmp);
 
        statusbar_items_redraw("act");
 }
 
 static void sig_statusbar_activity_window_destroyed(WINDOW_REC *window)
 {
+       GList *node;
+
        g_return_if_fail(window != NULL);
 
-       if (g_list_find(activity_list, window) != NULL)
-               activity_list = g_list_remove(activity_list, window);
+       node = g_list_find(activity_list, window);
+       if (node != NULL)
+               activity_list = g_list_delete_link(activity_list, node);
        statusbar_items_redraw("act");
 }
 
@@ -369,14 +412,29 @@ static void item_input(SBAR_ITEM_REC *item, int get_size_only)
 
 static void read_settings(void)
 {
+       const char *str;
+
        if (active_entry != NULL)
                gui_entry_set_utf8(active_entry, term_type == TERM_TYPE_UTF8);
+
+       str = settings_get_str("actlist_sort");
+       if (g_ascii_strcasecmp(str, "recent") == 0)
+               actlist_sort = 1;
+       else if (g_ascii_strcasecmp(str, "level") == 0)
+               actlist_sort = 2;
+       else if (g_ascii_strcasecmp(str, "level,recent") == 0)
+               actlist_sort = 3;
+       else {
+               settings_set_str("actlist_sort", "refnum");
+               actlist_sort = 0;
+       }
 }
 
 void statusbar_items_init(void)
 {
        settings_add_time("misc", "lag_min_show", "1sec");
-       settings_add_bool("lookandfeel", "actlist_moves", FALSE);
+       settings_add_str("lookandfeel", "actlist_sort", "refnum");
+       settings_add_bool("lookandfeel", "actlist_names", FALSE);
 
        statusbar_item_register("window", NULL, item_window_active);
        statusbar_item_register("window_empty", NULL, item_window_empty);
index 5eba9557f9ace85104067cf6b8687e3a930794ef..68724293011ee6bacd5b7f4b8a504da3c3689a6e 100644 (file)
@@ -13,9 +13,9 @@
     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     GNU General Public License for more details.
 
-    You should have received a copy of the GNU General Public License
-    along with this program; if not, write to the Free Software
-    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+    You should have received a copy of the GNU General Public License along
+    with this program; if not, write to the Free Software Foundation, Inc.,
+    51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 */
 
 #include "module.h"
@@ -92,6 +92,12 @@ void statusbar_item_unregister(const char *name)
        }
 }
 
+void statusbar_item_set_size(struct SBAR_ITEM_REC *item, int min_size, int max_size)
+{
+       item->min_size = min_size;
+       item->max_size = max_size;
+}
+
 STATUSBAR_GROUP_REC *statusbar_group_create(const char *name)
 {
        STATUSBAR_GROUP_REC *rec;
@@ -618,29 +624,7 @@ STATUSBAR_REC *statusbar_find(STATUSBAR_GROUP_REC *group, const char *name,
         return NULL;
 }
 
-static char *update_statusbar_bg(const char *str, const char *color)
-{
-       GString *out;
-        char *ret;
-
-       out = g_string_new(color);
-       while (*str != '\0') {
-               if (*str == '%' && str[1] == 'n') {
-                        g_string_append(out, color);
-                       str += 2;
-                        continue;
-               }
-
-               g_string_append_c(out, *str);
-                str++;
-       }
-
-        ret = out->str;
-        g_string_free(out, FALSE);
-        return ret;
-}
-
-const char *statusbar_item_get_value(SBAR_ITEM_REC *item)
+static const char *statusbar_item_get_value(SBAR_ITEM_REC *item)
 {
        const char *value;
 
@@ -653,20 +637,22 @@ const char *statusbar_item_get_value(SBAR_ITEM_REC *item)
         return value;
 }
 
-static char *reverse_controls(const char *str)
+static GString *finalize_string(const char *str, const char *color)
 {
        GString *out;
-        char *ret;
 
-       out = g_string_new(NULL);
+       out = g_string_new(color);
 
        while (*str != '\0') {
                if ((unsigned char) *str < 32 ||
                    (term_type == TERM_TYPE_8BIT &&
                     (unsigned char) (*str & 0x7f) < 32)) {
                        /* control char */
-                       g_string_sprintfa(out, "%%8%c%%8",
+                       g_string_append_printf(out, "%%8%c%%8",
                                          'A'-1 + (*str & 0x7f));
+               } else if (*str == '%' && str[1] == 'n') {
+                       g_string_append(out, color);
+                       str++;
                } else {
                        g_string_append_c(out, *str);
                }
@@ -674,9 +660,7 @@ static char *reverse_controls(const char *str)
                str++;
        }
 
-       ret = out->str;
-        g_string_free(out, FALSE);
-       return ret;
+       return out;
 }
 
 void statusbar_item_default_handler(SBAR_ITEM_REC *item, int get_size_only,
@@ -720,39 +704,30 @@ void statusbar_item_default_handler(SBAR_ITEM_REC *item, int get_size_only,
        tmpstr = strip_codes(tmpstr2);
         g_free(tmpstr2);
 
-       /* show all control chars reversed */
-       tmpstr2 = reverse_controls(tmpstr);
-       g_free(tmpstr);
-
-       tmpstr = tmpstr2;
        if (get_size_only) {
                item->min_size = item->max_size = format_get_length(tmpstr);
        } else {
+               GString *out;
+
                if (item->size < item->min_size) {
                         /* they're forcing us smaller than minimum size.. */
                        len = format_real_length(tmpstr, item->size);
                         tmpstr[len] = '\0';
-               } else {
-                       /* make sure the str is big enough to fill the
-                          requested size, so it won't corrupt screen */
-                       len = format_get_length(tmpstr);
-                       if (len < item->size) {
-                               char *fill;
-
-                               len = item->size-len;
-                               fill = g_malloc(len + 1);
-                               memset(fill, ' ', len); fill[len] = '\0';
-
-                               tmpstr2 = g_strconcat(tmpstr, fill, NULL);
-                               g_free(fill);
-                               g_free(tmpstr);
-                               tmpstr = tmpstr2;
-                       }
+               }
+               out = finalize_string(tmpstr, item->bar->color);
+               /* make sure the str is big enough to fill the
+                  requested size, so it won't corrupt screen */
+               len = format_get_length(tmpstr);
+               if (len < item->size) {
+                       int i;
+
+                       len = item->size-len;
+                       for (i = 0; i < len; i++)
+                               g_string_append_c(out, ' ');
                }
 
-               tmpstr2 = update_statusbar_bg(tmpstr, item->bar->color);
-               gui_printtext(item->xpos, item->bar->real_ypos, tmpstr2);
-                g_free(tmpstr2);
+               gui_printtext(item->xpos, item->bar->real_ypos, out->str);
+               g_string_free(out, TRUE);
        }
        g_free(tmpstr);
 }
index 148fd02e5a2e4100f92ea00a5fb01b5056190e6e..309294b0675c1d8bcfe70e8190a10e1eefa95f5d 100644 (file)
@@ -2,13 +2,13 @@
 #define __STATUSBAR_H
 
 #include "mainwindows.h"
+#include "statusbar-item.h"
 
 #define STATUSBAR_PRIORITY_HIGH                100
 #define STATUSBAR_PRIORITY_NORMAL      0
 #define STATUSBAR_PRIORITY_LOW         -100
 
 typedef struct SBAR_ITEM_REC SBAR_ITEM_REC;
-typedef void (*STATUSBAR_FUNC) (SBAR_ITEM_REC *item, int get_size_only);
 
 /* type */
 #define STATUSBAR_TYPE_ROOT    1
@@ -80,10 +80,6 @@ struct SBAR_ITEM_REC {
 extern GSList *statusbar_groups;
 extern STATUSBAR_GROUP_REC *active_statusbar_group;
 
-void statusbar_item_register(const char *name, const char *value,
-                            STATUSBAR_FUNC func);
-void statusbar_item_unregister(const char *name);
-
 STATUSBAR_GROUP_REC *statusbar_group_create(const char *name);
 void statusbar_group_destroy(STATUSBAR_GROUP_REC *rec);
 STATUSBAR_GROUP_REC *statusbar_group_find(const char *name);
@@ -99,14 +95,9 @@ SBAR_ITEM_REC *statusbar_item_create(STATUSBAR_REC *bar,
                                     SBAR_ITEM_CONFIG_REC *config);
 void statusbar_item_destroy(SBAR_ITEM_REC *item);
 
-void statusbar_item_default_handler(SBAR_ITEM_REC *item, int get_size_only,
-                                   const char *str, const char *data,
-                                   int escape_vars);
-
 /* redraw statusbar, NULL = all */
 void statusbar_redraw(STATUSBAR_REC *bar, int force);
 void statusbar_item_redraw(SBAR_ITEM_REC *item);
-void statusbar_items_redraw(const char *name);
 
 void statusbar_recreate_items(STATUSBAR_REC *bar);
 void statusbars_recreate_items(void);
index 9306d030a52cb4204efed99c0c10de817e351de7..fc674fd350477c9311ffc540a7d48024c027b758 100644 (file)
     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     GNU General Public License for more details.
 
-    You should have received a copy of the GNU General Public License
-    along with this program; if not, write to the Free Software
-    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+    You should have received a copy of the GNU General Public License along
+    with this program; if not, write to the Free Software Foundation, Inc.,
+    51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 */
 
 #include "module.h"
+#include "signals.h"
 #include "settings.h"
 
 #include "term.h"
 #include "mainwindows.h"
-#ifdef HAVE_CUIX
-#include "cuix.h"
-#endif
-
-#include "term-curses.h"
 
+#if defined(USE_NCURSES) && !defined(RENAMED_NCURSES)
+#  include <ncurses.h>
+#else
+#  include <curses.h>
+#endif
 #include <termios.h>
 #include <signal.h>
 
 #  define _POSIX_VDISABLE 0
 #endif
 
+struct _TERM_WINDOW {
+       int x, y;
+        int width, height;
+       WINDOW *win;
+};
+
 TERM_WINDOW *root_window;
 
 static int curs_x, curs_y;
@@ -302,7 +309,7 @@ void term_move(TERM_WINDOW *window, int x, int y)
         wmove(window->win, y, x);
 }
 
-void term_addch(TERM_WINDOW *window, int chr)
+void term_addch(TERM_WINDOW *window, char chr)
 {
         waddch(window->win, chr);
 }
@@ -352,26 +359,14 @@ void term_refresh_thaw(void)
 
 void term_refresh(TERM_WINDOW *window)
 {
-#ifdef HAVE_CUIX
-    if (!cuix_active) {
-#endif
        if (window != NULL)
                wnoutrefresh(window->win);
 
        if (freeze_refresh == 0) {
                move(curs_y, curs_x);
                wnoutrefresh(stdscr);
-#ifdef HAVE_CUIX
-                cuix_refresh ();
-#endif
                doupdate();
        }
-#ifdef HAVE_CUIX
-    } else {
-        update_panels ();
-        doupdate ();
-    }
-#endif
 }
 
 void term_stop(void)
@@ -382,24 +377,19 @@ void term_stop(void)
        irssi_redraw();
 }
 
-void term_auto_detach(int set)
-{
-}
-
 void term_set_input_type(int type)
 {
 }
 
-int term_gets(unichar *buffer, int size)
+void term_gets(GArray *buffer, int *line_count)
 {
-       int count;
 #ifdef WIDEC_CURSES
        wint_t key;
 #else
        int key;
 #endif
 
-       for (count = 0; count < size; ) {
+       for (;;) {
 #ifdef WIDEC_CURSES
                if (get_wch(&key) == ERR)
 #else
@@ -411,8 +401,8 @@ int term_gets(unichar *buffer, int size)
                        continue;
 #endif
 
-               buffer[count++] = key;
+               g_array_append_val(buffer, key);
+               if (key == '\r' || key == '\n')
+                       (*line_count)++;
        }
-
-       return count;
 }
index a4f5c0913f08bd7417ed911f23e2f4cc8f691979..6a56af8810f0b2549431a095e2a53b79f5d18539 100644 (file)
@@ -13,9 +13,9 @@
     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     GNU General Public License for more details.
 
-    You should have received a copy of the GNU General Public License
-    along with this program; if not, write to the Free Software
-    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+    You should have received a copy of the GNU General Public License along
+    with this program; if not, write to the Free Software Foundation, Inc.,
+    51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 */
 
 #include "module.h"
index feeb62c30bd67e05b16fba6371f9cee002766564..9dfc0db4375ebac0b3c53ac5aacc154a584c3558 100644 (file)
@@ -13,9 +13,9 @@
     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     GNU General Public License for more details.
 
-    You should have received a copy of the GNU General Public License
-    along with this program; if not, write to the Free Software
-    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+    You should have received a copy of the GNU General Public License along
+    with this program; if not, write to the Free Software Foundation, Inc.,
+    51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 */
 
 #include "module.h"
@@ -47,11 +47,11 @@ static char *term_lines_empty; /* 1 if line is entirely empty */
 static int vcmove, vcx, vcy, curs_visible;
 static int crealx, crealy, cforcemove;
 static int curs_x, curs_y;
-static int auto_detach;
 
 static int last_fg, last_bg, last_attrs;
 
-static int redraw_needed, redraw_tag;
+static GSource *sigcont_source;
+static volatile sig_atomic_t got_sigcont;
 static int freeze_counter;
 
 static TERM_INPUT_FUNC input_func;
@@ -61,20 +61,43 @@ static int term_inbuf_pos;
 /* SIGCONT handler */
 static void sig_cont(int p)
 {
-        redraw_needed = TRUE;
-       terminfo_cont(current_term);
+        got_sigcont = TRUE;
 }
 
-static int redraw_timeout(void)
+/* SIGCONT GSource */
+static gboolean sigcont_prepare(GSource *source, gint *timeout)
 {
-       if (redraw_needed) {
-               irssi_redraw();
-                redraw_needed = FALSE;
-       }
+       *timeout = -1;
+       return got_sigcont;
+}
+
+static gboolean sigcont_check(GSource *source)
+{
+       return got_sigcont;
+}
+
+static gboolean sigcont_dispatch(GSource *source, GSourceFunc callback, gpointer user_data)
+{
+       got_sigcont = FALSE;
+       if (callback == NULL)
+               return TRUE;
+       return callback(user_data);
+}
+
+static gboolean do_redraw(gpointer unused)
+{
+       terminfo_cont(current_term);
+       irssi_redraw();
 
         return 1;
 }
 
+static GSourceFuncs sigcont_funcs = {
+       .prepare = sigcont_prepare,
+       .check = sigcont_check,
+       .dispatch = sigcont_dispatch
+};
+
 int term_init(void)
 {
        struct sigaction act;
@@ -100,13 +123,14 @@ int term_init(void)
        act.sa_flags = 0;
        act.sa_handler = sig_cont;
        sigaction(SIGCONT, &act, NULL);
-        redraw_tag = g_timeout_add(500, (GSourceFunc) redraw_timeout, NULL);
+       sigcont_source = g_source_new(&sigcont_funcs, sizeof(GSource));
+       g_source_set_callback(sigcont_source, do_redraw, NULL, NULL);
+       g_source_attach(sigcont_source, NULL);
 
        curs_x = curs_y = 0;
        term_width = current_term->width;
        term_height = current_term->height;
        root_window = term_window_create(0, 0, term_width, term_height);
-        term_detached = FALSE;
 
         term_lines_empty = g_new0(char, term_height);
 
@@ -120,7 +144,8 @@ void term_deinit(void)
 {
        if (current_term != NULL) {
                signal(SIGCONT, SIG_DFL);
-               g_source_remove(redraw_tag);
+               g_source_destroy(sigcont_source);
+               g_source_unref(sigcont_source);
 
                term_common_deinit();
                terminfo_core_deinit(current_term);
@@ -130,8 +155,6 @@ void term_deinit(void)
 
 static void term_move_real(void)
 {
-       if (term_detached) return;
-
        if (vcx != crealx || vcy != crealy || cforcemove) {
                if (curs_visible) {
                        terminfo_set_cursor_visible(FALSE);
@@ -165,7 +188,6 @@ static void term_move_reset(int x, int y)
 void term_resize(int width, int height)
 {
        if (width < 0 || height < 0) {
-               terminfo_resize(current_term);
                width = current_term->width;
                 height = current_term->height;
        }
@@ -189,22 +211,18 @@ void term_resize_final(int width, int height)
 /* Returns TRUE if terminal has colors */
 int term_has_colors(void)
 {
-        return current_term->has_colors;
+        return current_term->TI_colors > 0;
 }
 
 /* Force the colors on any way you can */
 void term_force_colors(int set)
 {
-       if (term_detached) return;
-
        terminfo_setup_colors(current_term, set);
 }
 
 /* Clear screen */
 void term_clear(void)
 {
-       if (term_detached) return;
-
         term_set_color(root_window, ATTR_RESET);
        terminfo_clear();
         term_move_reset(0, 0);
@@ -215,8 +233,6 @@ void term_clear(void)
 /* Beep */
 void term_beep(void)
 {
-       if (term_detached) return;
-
         terminfo_beep(current_term);
 }
 
@@ -253,8 +269,6 @@ void term_window_clear(TERM_WINDOW *window)
 {
        int y;
 
-       if (term_detached) return;
-
         terminfo_set_normal();
         if (window->y == 0 && window->height == term_height) {
                term_clear();
@@ -271,8 +285,6 @@ void term_window_scroll(TERM_WINDOW *window, int count)
 {
        int y;
 
-       if (term_detached) return;
-
        terminfo_scroll(window->y, window->y+window->height-1, count);
         term_move_reset(vcx, vcy);
 
@@ -285,8 +297,8 @@ void term_window_scroll(TERM_WINDOW *window, int count)
 void term_set_color(TERM_WINDOW *window, int col)
 {
        int set_normal;
-
-       if (term_detached) return;
+       int fg = col & 0x0f;
+       int bg = (col & 0xf0) >> 4;
 
         set_normal = ((col & ATTR_RESETFG) && last_fg != -1) ||
                ((col & ATTR_RESETBG) && last_bg != -1);
@@ -314,30 +326,30 @@ void term_set_color(TERM_WINDOW *window, int col)
                terminfo_set_standout(FALSE);
 
        /* set foreground color */
-       if ((col & 0x0f) != last_fg &&
-           ((col & 0x0f) != 0 || (col & ATTR_RESETFG) == 0)) {
+       if (fg != last_fg &&
+           (fg != 0 || (col & ATTR_RESETFG) == 0)) {
                 if (term_use_colors) {
-                       last_fg = col & 0x0f;
+                       last_fg = fg;
                        terminfo_set_fg(last_fg);
                }
        }
 
        /* set background color */
-       if (col & ATTR_BLINK)
-               col |= 0x80;
-       else if (col & 0x80)
+       if (col & 0x80 && window->term->TI_colors == 8)
                col |= ATTR_BLINK;
+       if (col & ATTR_BLINK)
+               current_term->set_blink(current_term);
 
-       if ((col & 0xf0) >> 4 != last_bg &&
-           ((col & 0xf0) != 0 || (col & ATTR_RESETBG) == 0)) {
+       if (bg != last_bg &&
+           (bg != 0 || (col & ATTR_RESETBG) == 0)) {
                 if (term_use_colors) {
-                       last_bg = (col & 0xf0) >> 4;
+                       last_bg = bg;
                        terminfo_set_bg(last_bg);
                }
        }
 
        /* bold */
-       if (col & 0x08)
+       if (col & 0x08 && window->term->TI_colors == 8)
                col |= ATTR_BOLD;
        if (col & ATTR_BOLD)
                terminfo_set_bold();
@@ -386,23 +398,19 @@ static void term_printed_text(int count)
                cforcemove = TRUE;
 }
 
-void term_addch(TERM_WINDOW *window, int chr)
+void term_addch(TERM_WINDOW *window, char chr)
 {
-       if (term_detached) return;
-
        if (vcmove) term_move_real();
 
-       if (vcy < term_height-1 || vcx < term_width-1) {
-               /* With UTF-8, move cursor only if this char is either
-                  single-byte (8. bit off) or beginning of multibyte
-                  (7. bit off) */
-               if (term_type != TERM_TYPE_UTF8 ||
-                   (chr & 0x80) == 0 || (chr & 0x40) == 0) {
-                       term_printed_text(1);
-               }
-
-               putc(chr, window->term->out);
+       /* With UTF-8, move cursor only if this char is either
+          single-byte (8. bit off) or beginning of multibyte
+          (7. bit off) */
+       if (term_type != TERM_TYPE_UTF8 ||
+           (chr & 0x80) == 0 || (chr & 0x40) == 0) {
+               term_printed_text(1);
        }
+
+       putc(chr, window->term->out);
 }
 
 static void term_addch_utf8(TERM_WINDOW *window, unichar chr)
@@ -410,22 +418,18 @@ static void term_addch_utf8(TERM_WINDOW *window, unichar chr)
        char buf[10];
        int i, len;
 
-       len = utf16_char_to_utf8(chr, buf);
+       len = g_unichar_to_utf8(chr, buf);
        for (i = 0;  i < len; i++)
                 putc(buf[i], window->term->out);
 }
 
 void term_add_unichar(TERM_WINDOW *window, unichar chr)
 {
-       if (term_detached) return;
-
        if (vcmove) term_move_real();
-       if (vcy == term_height-1 && vcx == term_width-1)
-               return; /* last char in screen */
 
        switch (term_type) {
        case TERM_TYPE_UTF8:
-               term_printed_text(utf8_width(chr));
+               term_printed_text(unichar_isprint(chr) ? mk_wcwidth(chr) : 1);
                 term_addch_utf8(window, chr);
                break;
        case TERM_TYPE_BIG5:
@@ -448,22 +452,15 @@ void term_addstr(TERM_WINDOW *window, const char *str)
 {
        int len;
 
-       if (term_detached) return;
-
        if (vcmove) term_move_real();
        len = strlen(str); /* FIXME utf8 or big5 */
         term_printed_text(len);
 
-       if (vcy != term_height || vcx != 0)
-               fputs(str, window->term->out);
-       else
-               fwrite(str, 1, len-1, window->term->out);
+       fwrite(str, 1, len, window->term->out);
 }
 
 void term_clrtoeol(TERM_WINDOW *window)
 {
-       if (term_detached) return;
-
        /* clrtoeol() doesn't necessarily understand colors */
        if (last_fg == -1 && last_bg == -1 &&
            (last_attrs & (ATTR_UNDERLINE|ATTR_REVERSE)) == 0) {
@@ -489,7 +486,7 @@ void term_move_cursor(int x, int y)
 
 void term_refresh(TERM_WINDOW *window)
 {
-       if (term_detached || freeze_counter > 0)
+       if (freeze_counter > 0)
                return;
 
        term_move(root_window, curs_x, curs_y);
@@ -515,59 +512,29 @@ void term_refresh_thaw(void)
                 term_refresh(NULL);
 }
 
-void term_auto_detach(int set)
-{
-        auto_detach = set;
-}
-
-void term_detach(void)
+void term_stop(void)
 {
        terminfo_stop(current_term);
-
-        fclose(current_term->in);
-        fclose(current_term->out);
-
-       current_term->in = NULL;
-       current_term->out = NULL;
-        term_detached = TRUE;
-}
-
-void term_attach(FILE *in, FILE *out)
-{
-       current_term->in = in;
-       current_term->out = out;
-        term_detached = FALSE;
-
+       kill(getpid(), SIGTSTP);
        terminfo_cont(current_term);
        irssi_redraw();
 }
 
-void term_stop(void)
-{
-       if (term_detached) {
-               kill(getpid(), SIGTSTP);
-       } else {
-               terminfo_stop(current_term);
-               kill(getpid(), SIGTSTP);
-               terminfo_cont(current_term);
-               irssi_redraw();
-       }
-}
-
 static int input_utf8(const unsigned char *buffer, int size, unichar *result)
 {
-        const unsigned char *end = buffer;
+       unichar c = g_utf8_get_char_validated(buffer, size);
 
-       switch (get_utf8_char(&end, size, result)) {
-       case -2:
+       switch (c) {
+       case (unichar)-1:
                /* not UTF8 - fallback to 8bit ascii */
                *result = *buffer;
                return 1;
-       case -1:
+       case (unichar)-2:
                 /* need more data */
                return -1;
        default:
-               return (int) (end-buffer)+1;
+               *result = c;
+               return g_utf8_skip[*buffer];
        }
 }
 
@@ -608,40 +575,36 @@ void term_set_input_type(int type)
        }
 }
 
-int term_gets(unichar *buffer, int size)
+void term_gets(GArray *buffer, int *line_count)
 {
        int ret, i, char_len;
 
-       if (term_detached)
-               return 0;
-
         /* fread() doesn't work */
-       if (size > sizeof(term_inbuf)-term_inbuf_pos)
-               size = sizeof(term_inbuf)-term_inbuf_pos;
 
        ret = read(fileno(current_term->in),
-                  term_inbuf + term_inbuf_pos, size);
+                  term_inbuf + term_inbuf_pos, sizeof(term_inbuf)-term_inbuf_pos);
        if (ret == 0) {
                /* EOF - terminal got lost */
-               if (auto_detach)
-                        term_detach();
                ret = -1;
        } else if (ret == -1 && (errno == EINTR || errno == EAGAIN))
                ret = 0;
+       if (ret == -1)
+               signal_emit("command quit", 1, "Lost terminal");
 
        if (ret > 0) {
                 /* convert input to unichars. */
                term_inbuf_pos += ret;
-                ret = 0;
                for (i = 0; i < term_inbuf_pos; ) {
+                       unichar key;
                        char_len = input_func(term_inbuf+i, term_inbuf_pos-i,
-                                             buffer);
+                                             &key);
                        if (char_len < 0)
                                break;
+                       g_array_append_val(buffer, key);
+                       if (key == '\r' || key == '\n')
+                               (*line_count)++;
 
                        i += char_len;
-                        buffer++;
-                        ret++;
                }
 
                if (i >= term_inbuf_pos)
@@ -651,6 +614,4 @@ int term_gets(unichar *buffer, int size)
                         term_inbuf_pos -= i;
                }
        }
-
-       return ret;
 }
index 59c3fe4d49406f0025f91f8ee5192946d12ad436..38239016378dfdca20cf2020b232584b217d35e0 100644 (file)
@@ -13,9 +13,9 @@
     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     GNU General Public License for more details.
 
-    You should have received a copy of the GNU General Public License
-    along with this program; if not, write to the Free Software
-    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+    You should have received a copy of the GNU General Public License along
+    with this program; if not, write to the Free Software Foundation, Inc.,
+    51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 */
 
 #include "module.h"
 #include "term.h"
 #include "mainwindows.h"
 
-#ifdef HAVE_NL_LANGINFO
-#  include <langinfo.h>
-#endif
-
 #ifdef HAVE_SYS_IOCTL_H
 #  include <sys/ioctl.h>
 #endif
@@ -38,7 +34,7 @@
 
 #define MIN_SCREEN_WIDTH 20
 
-int term_width, term_height, term_detached;
+int term_width, term_height;
 
 int term_use_colors;
 int term_type;
@@ -116,13 +112,11 @@ static void read_settings(void)
        int old_colors = term_use_colors;
         int old_type = term_type;
 
-        term_auto_detach(settings_get_bool("term_auto_detach"));
-
         /* set terminal type */
        str = settings_get_str("term_charset");
-       if (g_strcasecmp(str, "utf-8") == 0)
+       if (g_ascii_strcasecmp(str, "utf-8") == 0)
                term_type = TERM_TYPE_UTF8;
-       else if (g_strcasecmp(str, "big5") == 0)
+       else if (g_ascii_strcasecmp(str, "big5") == 0)
                term_type = TERM_TYPE_BIG5;
        else
                term_type = TERM_TYPE_8BIT;
@@ -145,24 +139,22 @@ static void read_settings(void)
 
 void term_common_init(void)
 {
+       const char *dummy;
 #ifdef SIGWINCH
        struct sigaction act;
 #endif
        settings_add_bool("lookandfeel", "colors", TRUE);
        settings_add_bool("lookandfeel", "term_force_colors", FALSE);
-        settings_add_bool("lookandfeel", "term_auto_detach", FALSE);
         settings_add_bool("lookandfeel", "mirc_blink_fix", FALSE);
 
        force_colors = FALSE;
        term_use_colors = term_has_colors() && settings_get_bool("colors");
         read_settings();
 
-#if defined (HAVE_NL_LANGINFO) && defined(CODESET)
-       if (strcmp(nl_langinfo(CODESET), "UTF-8") == 0) {
+       if (g_get_charset(&dummy)) {
                term_type = TERM_TYPE_UTF8;
                term_set_input_type(TERM_TYPE_UTF8);
        }
-#endif
 
        signal_add("beep", (SIGNAL_FUNC) term_beep);
        signal_add("setup changed", (SIGNAL_FUNC) read_settings);
index b5103c14be925208f7a6f179ff856b218f5cee78..27174c83ee8a08ffc216bedb14909f3f606423e2 100644 (file)
@@ -13,7 +13,7 @@ typedef struct _TERM_WINDOW TERM_WINDOW;
 
 #define ATTR_RESET     (ATTR_RESETFG|ATTR_RESETBG)
 
-#define ATTR_NOCOLORS (ATTR_UNDERLINE|ATTR_REVERSE)
+#define ATTR_NOCOLORS (ATTR_UNDERLINE|ATTR_REVERSE|ATTR_BLINK|ATTR_BOLD)
 
 /* terminal types */
 #define TERM_TYPE_8BIT         0 /* normal 8bit text */
@@ -24,7 +24,7 @@ typedef guint32 unichar;
 
 extern TERM_WINDOW *root_window;
 extern int term_width, term_height;
-extern int term_use_colors, term_type, term_detached;
+extern int term_use_colors, term_type;
 
 /* Initialize / deinitialize terminal */
 int term_init(void);
@@ -66,7 +66,7 @@ void term_window_scroll(TERM_WINDOW *window, int count);
 void term_set_color(TERM_WINDOW *window, int col);
 
 void term_move(TERM_WINDOW *window, int x, int y);
-void term_addch(TERM_WINDOW *window, int chr);
+void term_addch(TERM_WINDOW *window, char chr);
 void term_add_unichar(TERM_WINDOW *window, unichar chr);
 void term_addstr(TERM_WINDOW *window, const char *str);
 void term_clrtoeol(TERM_WINDOW *window);
@@ -77,16 +77,11 @@ void term_refresh_freeze(void);
 void term_refresh_thaw(void);
 void term_refresh(TERM_WINDOW *window);
 
-/* Automatically detach irssi when terminal is lost */
-void term_auto_detach(int set);
-void term_detach(void);
-void term_attach(FILE *in, FILE *out);
-
 void term_stop(void);
 
 /* keyboard input handling */
 void term_set_input_type(int type);
-int term_gets(unichar *buffer, int size);
+void term_gets(GArray *buffer, int *line_count);
 
 /* internal */
 void term_common_init(void);
index 530050c2a4200c66a10b2792d5d6299449930daf..bddc93e139421bb5a0dbbc5250cd1258aad0f1c7 100644 (file)
@@ -43,66 +43,66 @@ typedef struct {
         const char *ti_name; /* terminfo name */
        const char *tc_name; /* termcap name */
        int type;
-        void *ptr;
+       unsigned int offset;
 } TERMINFO_REC;
 
 TERM_REC *current_term;
-static TERM_REC temp_term; /* not really used for anything */
 
 /* Define only what we might need */
 static TERMINFO_REC tcaps[] = {
         /* Terminal size */
-       { "cols",       "co",   CAP_TYPE_INT,   &temp_term.width },
-       { "lines",      "li",   CAP_TYPE_INT,   &temp_term.height },
+       { "cols",       "co",   CAP_TYPE_INT,   G_STRUCT_OFFSET(TERM_REC, width) },
+       { "lines",      "li",   CAP_TYPE_INT,   G_STRUCT_OFFSET(TERM_REC, height) },
 
         /* Cursor movement */
-       { "smcup",      "ti",   CAP_TYPE_STR,   &temp_term.TI_smcup },
-       { "rmcup",      "te",   CAP_TYPE_STR,   &temp_term.TI_rmcup },
-       { "cup",        "cm",   CAP_TYPE_STR,   &temp_term.TI_cup },
-       { "hpa",        "ch",   CAP_TYPE_STR,   &temp_term.TI_hpa },
-       { "vpa",        "vh",   CAP_TYPE_STR,   &temp_term.TI_vpa },
-       { "cub1",       "le",   CAP_TYPE_STR,   &temp_term.TI_cub1 },
-       { "cuf1",       "nd",   CAP_TYPE_STR,   &temp_term.TI_cuf1 },
-       { "civis",      "vi",   CAP_TYPE_STR,   &temp_term.TI_civis },
-       { "cnorm",      "ve",   CAP_TYPE_STR,   &temp_term.TI_cnorm },
+       { "smcup",      "ti",   CAP_TYPE_STR,   G_STRUCT_OFFSET(TERM_REC, TI_smcup) },
+       { "rmcup",      "te",   CAP_TYPE_STR,   G_STRUCT_OFFSET(TERM_REC, TI_rmcup) },
+       { "cup",        "cm",   CAP_TYPE_STR,   G_STRUCT_OFFSET(TERM_REC, TI_cup) },
+       { "hpa",        "ch",   CAP_TYPE_STR,   G_STRUCT_OFFSET(TERM_REC, TI_hpa) },
+       { "vpa",        "vh",   CAP_TYPE_STR,   G_STRUCT_OFFSET(TERM_REC, TI_vpa) },
+       { "cub1",       "le",   CAP_TYPE_STR,   G_STRUCT_OFFSET(TERM_REC, TI_cub1) },
+       { "cuf1",       "nd",   CAP_TYPE_STR,   G_STRUCT_OFFSET(TERM_REC, TI_cuf1) },
+       { "civis",      "vi",   CAP_TYPE_STR,   G_STRUCT_OFFSET(TERM_REC, TI_civis) },
+       { "cnorm",      "ve",   CAP_TYPE_STR,   G_STRUCT_OFFSET(TERM_REC, TI_cnorm) },
 
         /* Scrolling */
-       { "csr",        "cs",   CAP_TYPE_STR,   &temp_term.TI_csr },
-       { "wind",       "wi",   CAP_TYPE_STR,   &temp_term.TI_wind },
-       { "ri",         "sr",   CAP_TYPE_STR,   &temp_term.TI_ri },
-       { "rin",        "SR",   CAP_TYPE_STR,   &temp_term.TI_rin },
-       { "ind",        "sf",   CAP_TYPE_STR,   &temp_term.TI_ind },
-       { "indn",       "SF",   CAP_TYPE_STR,   &temp_term.TI_indn },
-       { "il",         "AL",   CAP_TYPE_STR,   &temp_term.TI_il },
-       { "il1",        "al",   CAP_TYPE_STR,   &temp_term.TI_il1 },
-       { "dl",         "DL",   CAP_TYPE_STR,   &temp_term.TI_dl },
-       { "dl1",        "dl",   CAP_TYPE_STR,   &temp_term.TI_dl1 },
+       { "csr",        "cs",   CAP_TYPE_STR,   G_STRUCT_OFFSET(TERM_REC, TI_csr) },
+       { "wind",       "wi",   CAP_TYPE_STR,   G_STRUCT_OFFSET(TERM_REC, TI_wind) },
+       { "ri",         "sr",   CAP_TYPE_STR,   G_STRUCT_OFFSET(TERM_REC, TI_ri) },
+       { "rin",        "SR",   CAP_TYPE_STR,   G_STRUCT_OFFSET(TERM_REC, TI_rin) },
+       { "ind",        "sf",   CAP_TYPE_STR,   G_STRUCT_OFFSET(TERM_REC, TI_ind) },
+       { "indn",       "SF",   CAP_TYPE_STR,   G_STRUCT_OFFSET(TERM_REC, TI_indn) },
+       { "il",         "AL",   CAP_TYPE_STR,   G_STRUCT_OFFSET(TERM_REC, TI_il) },
+       { "il1",        "al",   CAP_TYPE_STR,   G_STRUCT_OFFSET(TERM_REC, TI_il1) },
+       { "dl",         "DL",   CAP_TYPE_STR,   G_STRUCT_OFFSET(TERM_REC, TI_dl) },
+       { "dl1",        "dl",   CAP_TYPE_STR,   G_STRUCT_OFFSET(TERM_REC, TI_dl1) },
 
        /* Clearing screen */
-       { "clear",      "cl",   CAP_TYPE_STR,   &temp_term.TI_clear },
-       { "ed",         "cd",   CAP_TYPE_STR,   &temp_term.TI_ed },
+       { "clear",      "cl",   CAP_TYPE_STR,   G_STRUCT_OFFSET(TERM_REC, TI_clear) },
+       { "ed",         "cd",   CAP_TYPE_STR,   G_STRUCT_OFFSET(TERM_REC, TI_ed) },
 
         /* Clearing to end of line */
-       { "el",         "ce",   CAP_TYPE_STR,   &temp_term.TI_el },
+       { "el",         "ce",   CAP_TYPE_STR,   G_STRUCT_OFFSET(TERM_REC, TI_el) },
 
         /* Repeating character */
-       { "rep",        "rp",   CAP_TYPE_STR,   &temp_term.TI_rep },
+       { "rep",        "rp",   CAP_TYPE_STR,   G_STRUCT_OFFSET(TERM_REC, TI_rep) },
 
        /* Colors */
-       { "sgr0",       "me",   CAP_TYPE_STR,   &temp_term.TI_sgr0 },
-       { "smul",       "us",   CAP_TYPE_STR,   &temp_term.TI_smul },
-       { "rmul",       "ue",   CAP_TYPE_STR,   &temp_term.TI_rmul },
-       { "smso",       "so",   CAP_TYPE_STR,   &temp_term.TI_smso },
-       { "rmso",       "se",   CAP_TYPE_STR,   &temp_term.TI_rmso },
-       { "bold",       "md",   CAP_TYPE_STR,   &temp_term.TI_bold },
-       { "blink",      "mb",   CAP_TYPE_STR,   &temp_term.TI_blink },
-       { "setaf",      "AF",   CAP_TYPE_STR,   &temp_term.TI_setaf },
-       { "setab",      "AB",   CAP_TYPE_STR,   &temp_term.TI_setab },
-       { "setf",       "Sf",   CAP_TYPE_STR,   &temp_term.TI_setf },
-       { "setb",       "Sb",   CAP_TYPE_STR,   &temp_term.TI_setb },
+       { "colors",     "Co",   CAP_TYPE_INT,   G_STRUCT_OFFSET(TERM_REC, TI_colors) },
+       { "sgr0",       "me",   CAP_TYPE_STR,   G_STRUCT_OFFSET(TERM_REC, TI_sgr0) },
+       { "smul",       "us",   CAP_TYPE_STR,   G_STRUCT_OFFSET(TERM_REC, TI_smul) },
+       { "rmul",       "ue",   CAP_TYPE_STR,   G_STRUCT_OFFSET(TERM_REC, TI_rmul) },
+       { "smso",       "so",   CAP_TYPE_STR,   G_STRUCT_OFFSET(TERM_REC, TI_smso) },
+       { "rmso",       "se",   CAP_TYPE_STR,   G_STRUCT_OFFSET(TERM_REC, TI_rmso) },
+       { "bold",       "md",   CAP_TYPE_STR,   G_STRUCT_OFFSET(TERM_REC, TI_bold) },
+       { "blink",      "mb",   CAP_TYPE_STR,   G_STRUCT_OFFSET(TERM_REC, TI_blink) },
+       { "setaf",      "AF",   CAP_TYPE_STR,   G_STRUCT_OFFSET(TERM_REC, TI_setaf) },
+       { "setab",      "AB",   CAP_TYPE_STR,   G_STRUCT_OFFSET(TERM_REC, TI_setab) },
+       { "setf",       "Sf",   CAP_TYPE_STR,   G_STRUCT_OFFSET(TERM_REC, TI_setf) },
+       { "setb",       "Sb",   CAP_TYPE_STR,   G_STRUCT_OFFSET(TERM_REC, TI_setb) },
 
         /* Beep */
-       { "bel",        "bl",   CAP_TYPE_STR,   &temp_term.TI_bel },
+       { "bel",        "bl",   CAP_TYPE_STR,   G_STRUCT_OFFSET(TERM_REC, TI_bel) },
 };
 
 /* Move cursor (cursor_address / cup) */
@@ -288,13 +288,13 @@ static void _clrtoeol(TERM_REC *term)
 }
 
 /* Repeat character (rep / rp) */
-static void _repeat(TERM_REC *term, int chr, int count)
+static void _repeat(TERM_REC *term, char chr, int count)
 {
        tput(tparm(term->TI_rep, chr, count));
 }
 
 /* Repeat character (manual) */
-static void _repeat_manual(TERM_REC *term, int chr, int count)
+static void _repeat_manual(TERM_REC *term, char chr, int count)
 {
        while (count > 0) {
                putc(chr, term->out);
@@ -308,6 +308,11 @@ static void _set_normal(TERM_REC *term)
        tput(tparm(term->TI_normal));
 }
 
+static void _set_blink(TERM_REC *term)
+{
+       tput(tparm(term->TI_blink));
+}
+
 /* Bold on */
 static void _set_bold(TERM_REC *term)
 {
@@ -329,13 +334,13 @@ static void _set_standout(TERM_REC *term, int set)
 /* Change foreground color */
 static void _set_fg(TERM_REC *term, int color)
 {
-       tput(tparm(term->TI_fg[color & 0x0f]));
+       tput(tparm(term->TI_fg[color % term->TI_colors]));
 }
 
 /* Change background color */
 static void _set_bg(TERM_REC *term, int color)
 {
-       tput(tparm(term->TI_bg[color & 0x0f]));
+       tput(tparm(term->TI_bg[color % term->TI_colors]));
 }
 
 /* Beep */
@@ -362,7 +367,7 @@ static void term_fill_capabilities(TERM_REC *term)
        char *tptr = term->buffer2;
 #endif
        for (i = 0; i < sizeof(tcaps)/sizeof(tcaps[0]); i++) {
-               ptr = (char *) term + (int) ((char *) tcaps[i].ptr - (char *) &temp_term);
+               ptr = G_STRUCT_MEMBER_P(term, tcaps[i].offset);
 
                switch (tcaps[i].type) {
                case CAP_TYPE_FLAG:
@@ -384,24 +389,18 @@ static void term_fill_capabilities(TERM_REC *term)
        }
 }
 
-/* Terminal was resized - ask the width/height from terminfo again */
-void terminfo_resize(TERM_REC *term)
-{
-       /* FIXME: is this possible? */
-}
-
 static void terminfo_colors_deinit(TERM_REC *term)
 {
        int i;
 
        if (terminfo_is_colors_set(term)) {
-               for (i = 0; i < 16; i++) {
+               for (i = 0; i < term->TI_colors; i++) {
                        g_free(term->TI_fg[i]);
                        g_free(term->TI_bg[i]);
                }
 
-                memset(term->TI_fg, 0, sizeof(term->TI_fg));
-                memset(term->TI_bg, 0, sizeof(term->TI_fg));
+               g_free_and_null(term->TI_fg);
+               g_free_and_null(term->TI_bg);
        }
 }
 
@@ -409,18 +408,36 @@ static void terminfo_colors_deinit(TERM_REC *term)
    terminal capabilities don't contain color codes */
 void terminfo_setup_colors(TERM_REC *term, int force)
 {
-       static char ansitab[8] = { 0, 4, 2, 6, 1, 5, 3, 7 };
-       const char *bold, *blink;
-       int i;
+       static const char ansitab[16] = {
+               0, 4, 2, 6, 1, 5, 3, 7,
+               8, 12, 10, 14, 9, 13, 11, 15
+       };
+       unsigned int i, color;
 
        terminfo_colors_deinit(term);
-        term->has_colors = term->TI_setf || term->TI_setaf;
+
+       if (force && term->TI_setf == NULL && term->TI_setaf == NULL)
+               term->TI_colors = 8;
+
+       if ((term->TI_setf || term->TI_setaf || force) &&
+            term->TI_colors > 0) {
+               term->TI_fg = g_new0(char *, term->TI_colors);
+               term->TI_bg = g_new0(char *, term->TI_colors);
+               term->set_fg = _set_fg;
+               term->set_bg = _set_bg;
+       } else {
+               /* no colors */
+               term->TI_colors = 0;
+               term->set_fg = term->set_bg = _ignore_parm;
+       }
 
        if (term->TI_setaf) {
-               for (i = 0; i < 8; i++)
-                        term->TI_fg[i] = g_strdup(tparm(term->TI_setaf, ansitab[i], 0));
+               for (i = 0; i < term->TI_colors; i++) {
+                       color = i < 16 ? ansitab[i] : i;
+                       term->TI_fg[i] = g_strdup(tparm(term->TI_setaf, color, 0));
+               }
        } else if (term->TI_setf) {
-               for (i = 0; i < 8; i++)
+               for (i = 0; i < term->TI_colors; i++)
                         term->TI_fg[i] = g_strdup(tparm(term->TI_setf, i, 0));
        } else if (force) {
                for (i = 0; i < 8; i++)
@@ -428,32 +445,17 @@ void terminfo_setup_colors(TERM_REC *term, int force)
        }
 
        if (term->TI_setab) {
-               for (i = 0; i < 8; i++)
-                        term->TI_bg[i] = g_strdup(tparm(term->TI_setab, ansitab[i], 0));
+               for (i = 0; i < term->TI_colors; i++) {
+                       color = i < 16 ? ansitab[i] : i;
+                       term->TI_bg[i] = g_strdup(tparm(term->TI_setab, color, 0));
+               }
        } else if (term->TI_setb) {
-               for (i = 0; i < 8; i++)
+               for (i = 0; i < term->TI_colors; i++)
                         term->TI_bg[i] = g_strdup(tparm(term->TI_setb, i, 0));
        } else if (force) {
                for (i = 0; i < 8; i++)
                         term->TI_bg[i] = g_strdup_printf("\033[%dm", 40+ansitab[i]);
        }
-
-       if (term->TI_setf || term->TI_setaf || force) {
-                term->set_fg = _set_fg;
-                term->set_bg = _set_bg;
-
-               /* bold fg, blink bg */
-               bold = term->TI_bold ? term->TI_bold : "";
-               for (i = 0; i < 8; i++)
-                       term->TI_fg[i+8] = g_strconcat(bold, term->TI_fg[i], NULL);
-
-               blink = term->TI_blink ? term->TI_blink : "";
-               for (i = 0; i < 8; i++)
-                       term->TI_bg[i+8] = g_strconcat(blink, term->TI_bg[i], NULL);
-       } else {
-               /* no colors */
-                term->set_fg = term->set_bg = _ignore_parm;
-       }
 }
 
 static void terminfo_input_init(TERM_REC *term)
@@ -517,19 +519,19 @@ static int term_setup(TERM_REC *term)
 
        term_env = getenv("TERM");
        if (term_env == NULL) {
-               fprintf(term->out, "TERM environment not set\n");
+               fprintf(stderr, "TERM environment not set\n");
                 return 0;
        }
 
 #ifdef HAVE_TERMINFO
        if (setupterm(term_env, 1, &err) != 0) {
-               fprintf(term->out, "setupterm() failed for TERM=%s: %d\n", term_env, err);
+               fprintf(stderr, "setupterm() failed for TERM=%s: %d\n", term_env, err);
                return 0;
        }
 #else
        if (tgetent(term->buffer1, term_env) < 1)
        {
-               fprintf(term->out, "Termcap not found for TERM=%s\n", term_env);
+               fprintf(stderr, "Termcap not found for TERM=%s\n", term_env);
                return 0;
        }
 #endif
@@ -542,7 +544,7 @@ static int term_setup(TERM_REC *term)
        else if (term->TI_hpa && term->TI_vpa)
                term->move = _move_pa;
        else {
-                fprintf(term->out, "Terminal doesn't support cursor movement\n");
+                fprintf(stderr, "Terminal doesn't support cursor movement\n");
                return 0;
        }
        term->move_relative = _move_relative;
@@ -559,7 +561,7 @@ static int term_setup(TERM_REC *term)
        else if (term->scroll == NULL && (term->TI_il1 && term->TI_dl1))
                term->scroll = _scroll_line_1;
        else if (term->scroll == NULL) {
-                fprintf(term->out, "Terminal doesn't support scrolling\n");
+                fprintf(stderr, "Terminal doesn't support scrolling\n");
                return 0;
        }
 
@@ -576,7 +578,7 @@ static int term_setup(TERM_REC *term)
                /* we could do this by line inserts as well, but don't
                   bother - if some terminal has insert line it most probably
                   has delete line as well, if not a regular clear screen */
-                fprintf(term->out, "Terminal doesn't support clearing screen\n");
+                fprintf(stderr, "Terminal doesn't support clearing screen\n");
                return 0;
        }
 
@@ -584,7 +586,7 @@ static int term_setup(TERM_REC *term)
        if (term->TI_el)
                term->clrtoeol = _clrtoeol;
        else {
-                fprintf(term->out, "Terminal doesn't support clearing to end of line\n");
+                fprintf(stderr, "Terminal doesn't support clearing to end of line\n");
                return 0;
        }
 
@@ -595,6 +597,7 @@ static int term_setup(TERM_REC *term)
                term->repeat = _repeat_manual;
 
        /* Bold, underline, standout */
+       term->set_blink = term->TI_blink ? _set_blink : _ignore;
        term->set_bold = term->TI_bold ? _set_bold : _ignore;
        term->set_uline = term->TI_smul && term->TI_rmul ?
                _set_uline : _ignore_parm;
index 93afa78ba16a0b4601f65cabaf2497b8c45f1807..9e2b76d551d5799dd3e791f9f567b36a55a2b8c2 100644 (file)
@@ -16,7 +16,7 @@
 #define terminfo_set_bold() current_term->set_bold(current_term)
 #define terminfo_set_uline(set) current_term->set_uline(current_term, set)
 #define terminfo_set_standout(set) current_term->set_standout(current_term, set)
-#define terminfo_is_colors_set(term) (term->TI_fg[0] != NULL)
+#define terminfo_is_colors_set(term) (term->TI_fg != NULL)
 #define terminfo_beep(term) current_term->beep(current_term)
 
 typedef struct _TERM_REC TERM_REC;
@@ -30,11 +30,12 @@ struct _TERM_REC {
 
         void (*clear)(TERM_REC *term);
        void (*clrtoeol)(TERM_REC *term);
-       void (*repeat)(TERM_REC *term, int chr, int count);
+       void (*repeat)(TERM_REC *term, char chr, int count);
 
        void (*set_fg)(TERM_REC *term, int color);
        void (*set_bg)(TERM_REC *term, int color);
        void (*set_normal)(TERM_REC *term);
+       void (*set_blink)(TERM_REC *term);
        void (*set_bold)(TERM_REC *term);
        void (*set_uline)(TERM_REC *term, int set);
        void (*set_standout)(TERM_REC *term, int set);
@@ -70,7 +71,7 @@ struct _TERM_REC {
        const char *TI_rep;
 
        /* Colors */
-        int has_colors;
+       int TI_colors; /* numbers of colors in TI_fg[] and TI_bg[] */
        const char *TI_sgr0; /* turn off all attributes */
        const char *TI_smul, *TI_rmul; /* underline on/off */
         const char *TI_smso, *TI_rmso; /* standout on/off */
@@ -78,7 +79,7 @@ struct _TERM_REC {
        const char *TI_setaf, *TI_setab, *TI_setf, *TI_setb;
 
         /* Colors - generated and dynamically allocated */
-       char *TI_fg[16], *TI_bg[16], *TI_normal;
+       char **TI_fg, **TI_bg, *TI_normal;
 
        /* Beep */
         char *TI_bel;
@@ -93,9 +94,6 @@ void terminfo_core_deinit(TERM_REC *term);
    terminal capabilities don't contain color codes */
 void terminfo_setup_colors(TERM_REC *term, int force);
 
-/* Terminal was resized - ask the width/height from terminfo again */
-void terminfo_resize(TERM_REC *term);
-
 void terminfo_cont(TERM_REC *term);
 void terminfo_stop(TERM_REC *term);
 
index 3636510bb2ddd9fd7d92ede76324847f127a8472..648862e7ff62e1d9a638141f82fba8beab769bae 100644 (file)
@@ -13,9 +13,9 @@
     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     GNU General Public License for more details.
 
-    You should have received a copy of the GNU General Public License
-    along with this program; if not, write to the Free Software
-    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+    You should have received a copy of the GNU General Public License along
+    with this program; if not, write to the Free Software Foundation, Inc.,
+    51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 */
 
 #include "module.h"
 
 #include "printtext.h"
 #include "gui-windows.h"
-#include "textbuffer-reformat.h"
-#ifdef HAVE_CUIX
-#include "cuix.h"
-#endif
 
 /* SYNTAX: CLEAR [-all] [<refnum>] */
 static void cmd_clear(const char *data)
@@ -72,12 +68,12 @@ static void cmd_window_scroll(const char *data)
        GUI_WINDOW_REC *gui;
 
        gui = WINDOW_GUI(active_win);
-       if (g_strcasecmp(data, "default") == 0) {
+       if (g_ascii_strcasecmp(data, "default") == 0) {
                 gui->use_scroll = FALSE;
-       } else if (g_strcasecmp(data, "on") == 0) {
+       } else if (g_ascii_strcasecmp(data, "on") == 0) {
                gui->use_scroll = TRUE;
                gui->scroll = TRUE;
-       } else if (g_strcasecmp(data, "off") == 0) {
+       } else if (g_ascii_strcasecmp(data, "off") == 0) {
                gui->use_scroll = TRUE;
                gui->scroll = FALSE;
        } else if (*data != '\0') {
@@ -132,6 +128,49 @@ static void cmd_scrollback_clear(const char *data)
        cmd_params_free(free_arg);
 }
 
+/* SYNTAX: SCROLLBACK LEVELCLEAR [-all] [-level <level>] [<refnum>] */
+static void cmd_scrollback_levelclear(const char *data)
+{
+       WINDOW_REC *window;
+       GHashTable *optlist;
+       char *refnum;
+       void *free_arg;
+       GSList *tmp;
+       int level;
+       char *levelarg;
+
+       g_return_if_fail(data != NULL);
+
+       if (!cmd_get_params(data, &free_arg, 1 | PARAM_FLAG_OPTIONS,
+                           "scrollback levelclear", &optlist, &refnum)) return;
+
+       levelarg = g_hash_table_lookup(optlist, "level");
+       level = (levelarg == NULL || *levelarg == '\0') ? 0 :
+               level2bits(replace_chars(levelarg, ',', ' '), NULL);
+       if (level == 0) {
+               cmd_params_free(free_arg);
+               return;
+       }
+
+       if (g_hash_table_lookup(optlist, "all") != NULL) {
+               /* clear all windows */
+               for (tmp = windows; tmp != NULL; tmp = tmp->next) {
+                       window = tmp->data;
+                       textbuffer_view_remove_lines_by_level(WINDOW_GUI(window)->view, level);
+               }
+       } else if (*refnum != '\0') {
+               /* clear specified window */
+               window = window_find_refnum(atoi(refnum));
+               if (window != NULL)
+                       textbuffer_view_remove_lines_by_level(WINDOW_GUI(window)->view, level);
+       } else {
+               /* clear active window */
+               textbuffer_view_remove_lines_by_level(WINDOW_GUI(active_win)->view, level);
+       }
+
+       cmd_params_free(free_arg);
+}
+
 static void scrollback_goto_line(int linenum)
 {
         TEXT_BUFFER_VIEW_REC *view;
@@ -270,51 +309,34 @@ static void cmd_scrollback_end(const char *data)
        gui_window_scroll(active_win, view->bottom_subline);
 }
 
-/* SYNTAX: SCROLLBACK REDRAW */
-static void cmd_scrollback_redraw(void)
-{
-       GUI_WINDOW_REC *gui;
-       LINE_REC *line, *next;
-
-       gui = WINDOW_GUI(active_win);
-
-       term_refresh_freeze();
-       line = textbuffer_view_get_lines(gui->view);
-       while (line != NULL) {
-               next = line->next;
-               textbuffer_reformat_line(active_win, line);
-                line = next;
-       }
-
-       gui_window_redraw(active_win);
-       term_refresh_thaw();
-}
-
 static void cmd_scrollback_status(void)
 {
        GSList *tmp;
-        int window_kb, total_lines, total_kb;
+        int total_lines;
+       size_t window_mem, total_mem;
 
-        total_lines = 0; total_kb = 0;
+        total_lines = 0; total_mem = 0;
        for (tmp = windows; tmp != NULL; tmp = tmp->next) {
                WINDOW_REC *window = tmp->data;
                TEXT_BUFFER_VIEW_REC *view;
 
                view = WINDOW_GUI(window)->view;
 
-               window_kb = g_slist_length(view->buffer->text_chunks)*
-                       LINE_TEXT_CHUNK_SIZE/1024;
+               window_mem = sizeof(TEXT_BUFFER_REC);
+               window_mem += g_slist_length(view->buffer->text_chunks) *
+                       sizeof(TEXT_CHUNK_REC);
+               window_mem += view->buffer->lines_count * sizeof(LINE_REC);
                total_lines += view->buffer->lines_count;
-                total_kb += window_kb;
+                total_mem += window_mem;
                printtext(NULL, NULL, MSGLEVEL_CLIENTCRAP,
                          "Window %d: %d lines, %dkB of data",
                          window->refnum, view->buffer->lines_count,
-                         window_kb);
+                         (int)(window_mem / 1024));
        }
 
        printtext(NULL, NULL, MSGLEVEL_CLIENTCRAP,
                  "Total: %d lines, %dkB of data",
-                 total_lines, total_kb);
+                 total_lines, (int)(total_mem / 1024));
 }
 
 static void sig_away_changed(SERVER_REC *server)
@@ -332,40 +354,21 @@ static void sig_away_changed(SERVER_REC *server)
        }
 }
 
-#ifdef HAVE_CUIX
-static void cmd_cuix(void)
-{
-    if (!cuix_active)
-    {
-        /* textbuffer_view_clear(WINDOW_GUI(active_win)->view); */
-        cuix_active = 1;
-        cuix_create();
-    } else {
-        /* should never been called */
-        /* cuix_destroy (); */
-        cuix_active = 0;
-        /* textbuffer_view_clear(WINDOW_GUI(active_win)->view); */
-    }
-}
-#endif
-
 void textbuffer_commands_init(void)
 {
        command_bind("clear", NULL, (SIGNAL_FUNC) cmd_clear);
        command_bind("window scroll", NULL, (SIGNAL_FUNC) cmd_window_scroll);
        command_bind("scrollback", NULL, (SIGNAL_FUNC) cmd_scrollback);
        command_bind("scrollback clear", NULL, (SIGNAL_FUNC) cmd_scrollback_clear);
+       command_bind("scrollback levelclear", NULL, (SIGNAL_FUNC) cmd_scrollback_levelclear);
        command_bind("scrollback goto", NULL, (SIGNAL_FUNC) cmd_scrollback_goto);
        command_bind("scrollback home", NULL, (SIGNAL_FUNC) cmd_scrollback_home);
        command_bind("scrollback end", NULL, (SIGNAL_FUNC) cmd_scrollback_end);
-       command_bind("scrollback redraw", NULL, (SIGNAL_FUNC) cmd_scrollback_redraw);
        command_bind("scrollback status", NULL, (SIGNAL_FUNC) cmd_scrollback_status);
-#ifdef HAVE_CUIX
-       command_bind("cuix", NULL, (SIGNAL_FUNC) cmd_cuix);
-#endif
 
        command_set_options("clear", "all");
        command_set_options("scrollback clear", "all");
+       command_set_options("scrollback levelclear", "all -level");
 
        signal_add("away mode changed", (SIGNAL_FUNC) sig_away_changed);
 }
@@ -376,14 +379,11 @@ void textbuffer_commands_deinit(void)
        command_unbind("window scroll", (SIGNAL_FUNC) cmd_window_scroll);
        command_unbind("scrollback", (SIGNAL_FUNC) cmd_scrollback);
        command_unbind("scrollback clear", (SIGNAL_FUNC) cmd_scrollback_clear);
+       command_unbind("scrollback levelclear", (SIGNAL_FUNC) cmd_scrollback_levelclear);
        command_unbind("scrollback goto", (SIGNAL_FUNC) cmd_scrollback_goto);
        command_unbind("scrollback home", (SIGNAL_FUNC) cmd_scrollback_home);
        command_unbind("scrollback end", (SIGNAL_FUNC) cmd_scrollback_end);
-       command_unbind("scrollback redraw", (SIGNAL_FUNC) cmd_scrollback_redraw);
        command_unbind("scrollback status", (SIGNAL_FUNC) cmd_scrollback_status);
-#ifdef HAVE_CUIX
-       command_unbind("cuix", (SIGNAL_FUNC) cmd_cuix);
-#endif
 
        signal_remove("away mode changed", (SIGNAL_FUNC) sig_away_changed);
 }
diff --git a/apps/irssi/src/fe-text/textbuffer-reformat.c b/apps/irssi/src/fe-text/textbuffer-reformat.c
deleted file mode 100644 (file)
index 81c4421..0000000
+++ /dev/null
@@ -1,281 +0,0 @@
-/*
- textbuffer-reformat.c : Reformatting lines in text buffer
-
-    Copyright (C) 1999-2001 Timo Sirainen
-
-    This program is free software; you can redistribute it and/or modify
-    it under the terms of the GNU General Public License as published by
-    the Free Software Foundation; either version 2 of the License, or
-    (at your option) any later version.
-
-    This program is distributed in the hope that it will be useful,
-    but WITHOUT ANY WARRANTY; without even the implied warranty of
-    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-    GNU General Public License for more details.
-
-    You should have received a copy of the GNU General Public License
-    along with this program; if not, write to the Free Software
-    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
-*/
-
-#include "module.h"
-#include "signals.h"
-#include "settings.h"
-
-#include "formats.h"
-
-#include "gui-windows.h"
-#include "gui-printtext.h"
-#include "textbuffer.h"
-
-static GString *format;
-static int scrollback_save_formats;
-
-/* Read one block between \0<format>s */
-static char *line_read_format(unsigned const char **text)
-{
-       GString *str;
-       char *ret;
-
-       str = g_string_new(NULL);
-       for (;;) {
-               if (**text == '\0') {
-                       if ((*text)[1] == LINE_CMD_EOL) {
-                               /* leave text at \0<eof> */
-                               break;
-                       }
-                       if ((*text)[1] == LINE_CMD_FORMAT_CONT) {
-                               /* leave text at \0<format_cont> */
-                               break;
-                       }
-                       (*text)++;
-
-                        if (**text == LINE_CMD_FORMAT) {
-                               /* move text to start after \0<format> */
-                               (*text)++;
-                               break;
-                       }
-
-                       if (**text == LINE_CMD_CONTINUE) {
-                               unsigned char *tmp;
-
-                               memcpy(&tmp, (*text)+1, sizeof(char *));
-                               *text = tmp;
-                               continue;
-                       } else if (**text & 0x80)
-                               (*text)++;
-                       continue;
-               }
-
-               g_string_append_c(str, (char) **text);
-               (*text)++;
-       }
-
-       ret = str->str;
-       g_string_free(str, FALSE);
-       return ret;
-}
-
-static char *textbuffer_line_get_format(WINDOW_REC *window, LINE_REC *line,
-                                       GString *raw)
-{
-       const unsigned char *text;
-       char *module, *format_name, *args[MAX_FORMAT_PARAMS], *ret;
-       TEXT_DEST_REC dest;
-       int formatnum, argcount;
-
-       text = (const unsigned char *) line->text;
-
-       /* skip the beginning of the line until we find the format */
-       format_name = line_read_format(&text);
-       g_free(format_name);
-       if (text[1] == LINE_CMD_FORMAT_CONT) {
-               if (raw != NULL) {
-                       g_string_append_c(raw, '\0');
-                       g_string_append_c(raw, (char)LINE_CMD_FORMAT_CONT);
-               }
-               return NULL;
-       }
-
-       /* read format information */
-        module = line_read_format(&text);
-       format_name = line_read_format(&text);
-
-       if (raw != NULL) {
-               g_string_append_c(raw, '\0');
-               g_string_append_c(raw, (char)LINE_CMD_FORMAT);
-
-               g_string_append(raw, module);
-
-               g_string_append_c(raw, '\0');
-               g_string_append_c(raw, (char)LINE_CMD_FORMAT);
-
-               g_string_append(raw, format_name);
-       }
-
-       formatnum = format_find_tag(module, format_name);
-       if (formatnum == -1)
-               ret = NULL;
-       else {
-                argcount = 0;
-                memset(args, 0, sizeof(args));
-               while (*text != '\0' || text[1] != LINE_CMD_EOL) {
-                       args[argcount] = line_read_format(&text);
-                       if (raw != NULL) {
-                               g_string_append_c(raw, '\0');
-                               g_string_append_c(raw,
-                                                 (char)LINE_CMD_FORMAT);
-
-                               g_string_append(raw, args[argcount]);
-                       }
-                       argcount++;
-               }
-
-               /* get the format text */
-               format_create_dest(&dest, NULL, NULL, line->info.level, window);
-               ret = format_get_text_theme_charargs(current_theme,
-                                                    module, &dest,
-                                                    formatnum, args);
-               while (argcount > 0)
-                       g_free(args[--argcount]);
-       }
-
-       g_free(module);
-       g_free(format_name);
-
-       return ret;
-}
-
-void textbuffer_reformat_line(WINDOW_REC *window, LINE_REC *line)
-{
-        GUI_WINDOW_REC *gui;
-       TEXT_DEST_REC dest;
-       LINE_REC *line_prev;
-        LINE_INFO_REC line_info;
-       GString *raw;
-       char *str, *tmp, *prestr, *linestart, *leveltag;
-
-        gui = WINDOW_GUI(window);
-
-       raw = g_string_new(NULL);
-       str = textbuffer_line_get_format(window, line, raw);
-
-        if (str == NULL && raw->len == 2 &&
-            raw->str[1] == (char)LINE_CMD_FORMAT_CONT) {
-                /* multiline format, format explained in one the
-                   following lines. remove this line. */
-                textbuffer_view_remove_line(gui->view, line);
-       } else if (str != NULL) {
-                /* FIXME: ugly ugly .. and this can't handle
-                   unformatted lines.. */
-               g_string_append_c(raw, '\0');
-               g_string_append_c(raw, (char)LINE_CMD_EOL);
-
-               line_prev = line->prev;
-                memcpy(&line_info, &line->info, sizeof(line_info));
-                textbuffer_view_remove_line(gui->view, line); line = NULL;
-
-               format_create_dest(&dest, NULL, NULL, line_info.level, window);
-
-               linestart = format_get_line_start(current_theme, &dest, line_info.time);
-               leveltag = format_get_level_tag(current_theme, &dest);
-
-               prestr = g_strconcat(linestart == NULL ? "" : linestart,
-                                    leveltag, NULL);
-               g_free_not_null(linestart);
-               g_free_not_null(leveltag);
-
-               tmp = format_add_linestart(str, prestr);
-               g_free(str);
-               g_free(prestr);
-
-                gui_printtext_after(&dest, line_prev, tmp);
-               g_free(tmp);
-
-                line = textbuffer_insert(gui->view->buffer, gui->insert_after,
-                                        (unsigned char *) raw->str,
-                                        raw->len, &line_info);
-               textbuffer_view_insert_line(gui->view, line);
-       }
-       g_string_free(raw, TRUE);
-}
-
-static void sig_print_format(THEME_REC *theme, const char *module,
-                            TEXT_DEST_REC *dest, void *formatnump,
-                            char **args)
-{
-       FORMAT_REC *formats;
-       int formatnum, n;
-
-       if (!scrollback_save_formats)
-               return;
-
-       formatnum = GPOINTER_TO_INT(formatnump);
-       formats = g_hash_table_lookup(default_formats, module);
-
-       /* <module><format_name><arg...> */
-       g_string_truncate(format, 0);
-
-       g_string_append_c(format, '\0');
-       g_string_append_c(format, (char)LINE_CMD_FORMAT);
-
-        g_string_append(format, module);
-
-       g_string_append_c(format, '\0');
-       g_string_append_c(format, (char)LINE_CMD_FORMAT);
-
-       g_string_append(format, formats[formatnum].tag);
-
-       for (n = 0; n < formats[formatnum].params; n++) {
-               g_string_append_c(format, '\0');
-               g_string_append_c(format, (char)LINE_CMD_FORMAT);
-
-               if (args[n] != NULL)
-                       g_string_append(format, args[n]);
-       }
-}
-
-static void sig_gui_printtext_finished(WINDOW_REC *window)
-{
-       GUI_WINDOW_REC *gui;
-        LINE_REC *insert_after;
-
-       if (format->len == 0)
-                return;
-
-       /* save format of the line */
-        gui = WINDOW_GUI(window);
-       insert_after = gui->use_insert_after ?
-               gui->insert_after : gui->view->buffer->cur_line;
-
-       textbuffer_insert(gui->view->buffer, insert_after,
-                         (unsigned char *) format->str,
-                         format->len, NULL);
-
-       g_string_truncate(format, 0);
-}
-
-static void read_settings(void)
-{
-        scrollback_save_formats = settings_get_bool("scrollback_save_formats");
-}
-
-void textbuffer_reformat_init(void)
-{
-       format = g_string_new(NULL);
-       settings_add_bool("history", "scrollback_save_formats", FALSE);
-
-        read_settings();
-       signal_add("print format", (SIGNAL_FUNC) sig_print_format);
-       signal_add_first("gui print text finished", (SIGNAL_FUNC) sig_gui_printtext_finished);
-       signal_add("setup changed", (SIGNAL_FUNC) read_settings);
-}
-
-void textbuffer_reformat_deinit(void)
-{
-       g_string_free(format, TRUE);
-
-       signal_remove("print format", (SIGNAL_FUNC) sig_print_format);
-       signal_remove("gui print text finished", (SIGNAL_FUNC) sig_gui_printtext_finished);
-       signal_remove("setup changed", (SIGNAL_FUNC) read_settings);
-}
diff --git a/apps/irssi/src/fe-text/textbuffer-reformat.h b/apps/irssi/src/fe-text/textbuffer-reformat.h
deleted file mode 100644 (file)
index 2818ec6..0000000
+++ /dev/null
@@ -1,9 +0,0 @@
-#ifndef __TEXTBUFFER_REFORMAT_H
-#define __TEXTBUFFER_REFORMAT_H
-
-void textbuffer_reformat_line(WINDOW_REC *window, LINE_REC *line);
-
-void textbuffer_reformat_init(void);
-void textbuffer_reformat_deinit(void);
-
-#endif
index 175bd4f6dc1f366f06ce96df6c0c4d0ea2f0675a..ec4d0e5aee22abdf59e81072789a2fefe156a19a 100644 (file)
@@ -13,9 +13,9 @@
     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     GNU General Public License for more details.
 
-    You should have received a copy of the GNU General Public License
-    along with this program; if not, write to the Free Software
-    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+    You should have received a copy of the GNU General Public License along
+    with this program; if not, write to the Free Software Foundation, Inc.,
+    51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 */
 
 #define        G_LOG_DOMAIN "TextBufferView"
@@ -23,9 +23,6 @@
 #include "module.h"
 #include "textbuffer-view.h"
 #include "utf8.h"
-#ifdef HAVE_CUIX
-#include "cuix.h"
-#endif
 
 typedef struct {
        char *name;
@@ -107,8 +104,8 @@ static void textbuffer_cache_unref(TEXT_BUFFER_CACHE_REC *cache)
                 textbuffer_cache_destroy(cache);
 }
 
-#define FGATTR (ATTR_NOCOLORS | ATTR_RESETFG | ATTR_BOLD | 0x0f)
-#define BGATTR (ATTR_NOCOLORS | ATTR_RESETBG | ATTR_BLINK | 0xf0)
+#define FGATTR (ATTR_NOCOLORS | ATTR_RESETFG | 0x0f)
+#define BGATTR (ATTR_NOCOLORS | ATTR_RESETBG | 0xf0)
 
 static void update_cmd_color(unsigned char cmd, int *color)
 {
@@ -120,8 +117,6 @@ static void update_cmd_color(unsigned char cmd, int *color)
                                *color |= (cmd & 0x0f) << 4;
                        else {
                                *color = (*color & FGATTR) | ATTR_RESETBG;
-                                if (cmd & LINE_COLOR_BLINK)
-                                       *color |= ATTR_BLINK;
                        }
                } else {
                        /* set foreground color */
@@ -130,8 +125,6 @@ static void update_cmd_color(unsigned char cmd, int *color)
                                *color |= cmd & 0x0f;
                        else {
                                *color = (*color & BGATTR) | ATTR_RESETFG;
-                                if (cmd & LINE_COLOR_BOLD)
-                                       *color |= ATTR_BOLD;
                        }
                }
        } else switch (cmd) {
@@ -141,12 +134,33 @@ static void update_cmd_color(unsigned char cmd, int *color)
        case LINE_CMD_REVERSE:
                *color ^= ATTR_REVERSE;
                break;
+       case LINE_CMD_BLINK:
+               *color ^= ATTR_BLINK;
+               break;
+       case LINE_CMD_BOLD:
+               *color ^= ATTR_BOLD;
+               break;
        case LINE_CMD_COLOR0:
                *color &= BGATTR;
                break;
        }
 }
 
+static inline unichar read_unichar(const unsigned char *data, const unsigned char **next, int *width)
+{
+       unichar chr = g_utf8_get_char_validated(data, -1);
+
+       if (chr & 0x80000000) {
+               chr = 0xfffd;
+               *next = data + 1;
+               *width = 1;
+       } else {
+               *next = g_utf8_next_char(data);
+               *width = unichar_isprint(chr) ? mk_wcwidth(chr) : 1;
+       }
+       return chr;
+}
+
 static LINE_CACHE_REC *
 view_update_line_cache(TEXT_BUFFER_VIEW_REC *view, LINE_REC *line)
 {
@@ -157,8 +171,7 @@ view_update_line_cache(TEXT_BUFFER_VIEW_REC *view, LINE_REC *line)
         unsigned char cmd;
        const unsigned char *ptr, *next_ptr, *last_space_ptr;
        int xpos, pos, indent_pos, last_space, last_color, color, linecount;
-       int char_len;
-       unichar chr;
+       int char_width;
 
        g_return_val_if_fail(line->text != NULL, NULL);
 
@@ -176,7 +189,7 @@ view_update_line_cache(TEXT_BUFFER_VIEW_REC *view, LINE_REC *line)
                        cmd = *ptr;
                         ptr++;
 
-                       if (cmd == LINE_CMD_EOL || cmd == LINE_CMD_FORMAT)
+                       if (cmd == LINE_CMD_EOL)
                                break;
 
                        if (cmd == LINE_CMD_CONTINUE) {
@@ -191,11 +204,6 @@ view_update_line_cache(TEXT_BUFFER_VIEW_REC *view, LINE_REC *line)
                                /* set indentation position here - don't do
                                   it if we're too close to right border */
                                if (xpos < view->width-5) indent_pos = xpos;
-                       } else if (cmd == LINE_CMD_INDENT_FUNC) {
-                               memcpy(&indent_func, ptr, sizeof(INDENT_FUNC));
-                               ptr += sizeof(INDENT_FUNC);
-                               if (indent_func == NULL)
-                                        indent_func = view->default_indent_func;
                        } else
                                update_cmd_color(cmd, &color);
                        continue;
@@ -205,24 +213,15 @@ view_update_line_cache(TEXT_BUFFER_VIEW_REC *view, LINE_REC *line)
                        /* MH */
                        if (term_type != TERM_TYPE_BIG5 ||
                            ptr[1] == '\0' || !is_big5(ptr[0], ptr[1]))
-                               char_len = 1;
+                               char_width = 1;
                        else
-                               char_len = 2;
-                       next_ptr = ptr+char_len;
+                               char_width = 2;
+                       next_ptr = ptr+char_width;
                } else {
-                       char_len = 1;
-                       while (ptr[char_len] != '\0' && char_len < 6)
-                               char_len++;
-
-                       next_ptr = ptr;
-                       if (get_utf8_char(&next_ptr, char_len, &chr) < 0)
-                               char_len = 1;
-                       else
-                               char_len = utf8_width(chr);
-                       next_ptr++;
+                       read_unichar(ptr, &next_ptr, &char_width);
                }
 
-               if (xpos + char_len > view->width && sub != NULL &&
+               if (xpos + char_width > view->width && sub != NULL &&
                    (last_space <= indent_pos || last_space <= 10) &&
                    view->longword_noindent) {
                         /* long word, remove the indentation from this line */
@@ -230,7 +229,7 @@ view_update_line_cache(TEXT_BUFFER_VIEW_REC *view, LINE_REC *line)
                         sub->indent = 0;
                }
 
-               if (xpos + char_len > view->width) {
+               if (xpos + char_width > view->width) {
                        xpos = indent_func == NULL ? indent_pos :
                                indent_func(view, line, -1);
 
@@ -258,7 +257,7 @@ view_update_line_cache(TEXT_BUFFER_VIEW_REC *view, LINE_REC *line)
                        continue;
                }
 
-               if (!view->utf8 && char_len > 1) {
+               if (!view->utf8 && char_width > 1) {
                        last_space = xpos;
                        last_space_ptr = next_ptr;
                        last_color = color;
@@ -268,7 +267,7 @@ view_update_line_cache(TEXT_BUFFER_VIEW_REC *view, LINE_REC *line)
                        last_color = color;
                }
 
-               xpos += char_len;
+               xpos += char_width;
                ptr = next_ptr;
        }
 
@@ -342,6 +341,7 @@ static int view_line_draw(TEXT_BUFFER_VIEW_REC *view, LINE_REC *line,
        LINE_CACHE_REC *cache;
         const unsigned char *text, *end, *text_newline;
        unsigned char *tmp;
+       unichar chr;
        int xpos, color, drawcount, first, need_move, need_clrtoeol, char_width;
 
        if (view->dirty) /* don't bother drawing anything - redraw is coming */
@@ -414,7 +414,7 @@ static int view_line_draw(TEXT_BUFFER_VIEW_REC *view, LINE_REC *line,
                if (*text == '\0') {
                        /* command */
                        text++;
-                       if (*text == LINE_CMD_EOL || *text == LINE_CMD_FORMAT)
+                       if (*text == LINE_CMD_EOL)
                                 break;
 
                        if (*text == LINE_CMD_CONTINUE) {
@@ -422,8 +422,6 @@ static int view_line_draw(TEXT_BUFFER_VIEW_REC *view, LINE_REC *line,
                                memcpy(&tmp, text+1, sizeof(unsigned char *));
                                text = tmp;
                                continue;
-                       } else if (*text == LINE_CMD_INDENT_FUNC) {
-                               text += sizeof(INDENT_FUNC);
                        } else {
                                update_cmd_color(*text, &color);
                                term_set_color(view->window, color);
@@ -432,37 +430,35 @@ static int view_line_draw(TEXT_BUFFER_VIEW_REC *view, LINE_REC *line,
                        continue;
                }
 
-               end = text;
                if (view->utf8) {
-                       unichar chr;
-                       if (get_utf8_char(&end, 6, &chr)<0)
-                               char_width = 1;
-                       else
-                               char_width = utf8_width(chr);
+                       chr = read_unichar(text, &end, &char_width);
                } else {
+                       chr = *text;
+                       end = text;
                        if (term_type == TERM_TYPE_BIG5 &&
                            is_big5(end[0], end[1]))
                                char_width = 2;
                        else
                                char_width = 1;
-                       end += char_width-1;
+                       end += char_width;
                }
 
                xpos += char_width;
                if (xpos <= term_width) {
-                       if (*text >= 32 &&
-                           (end != text || (*text & 127) >= 32)) {
+                       if (unichar_isprint(chr)) {
+                               if (view->utf8)
+                               term_add_unichar(view->window, chr);
+                               else
                                for (; text < end; text++)
                                        term_addch(view->window, *text);
-                               term_addch(view->window, *text);
                        } else {
                                /* low-ascii */
                                term_set_color(view->window, ATTR_RESET|ATTR_REVERSE);
-                               term_addch(view->window, (*text & 127)+'A'-1);
+                               term_addch(view->window, (chr & 127)+'A'-1);
                                term_set_color(view->window, color);
                        }
                }
-               text++;
+               text = end;
        }
 
        if (need_clrtoeol && xpos < term_width) {
@@ -606,10 +602,6 @@ void textbuffer_view_set_default_indent(TEXT_BUFFER_VIEW_REC *view,
 static void view_unregister_indent_func(TEXT_BUFFER_VIEW_REC *view,
                                        INDENT_FUNC indent_func)
 {
-        INDENT_FUNC func;
-       LINE_REC *line;
-        const unsigned char *text, *tmp;
-
        if (view->default_indent_func == indent_func)
                view->default_indent_func = NULL;
 
@@ -617,34 +609,6 @@ static void view_unregister_indent_func(TEXT_BUFFER_VIEW_REC *view,
           to the indent function */
        view_reset_cache(view);
        view->cache = textbuffer_cache_get(view->siblings, view->width);
-
-        /* remove all references to the indent function from buffer */
-       line = view->buffer->first_line;
-       while (line != NULL) {
-               text = line->text;
-
-               for (text = line->text;; text++) {
-                       if (*text != '\0')
-                               continue;
-
-                        text++;
-                       if (*text == LINE_CMD_EOL)
-                               break;
-
-                       if (*text == LINE_CMD_INDENT_FUNC) {
-                               text++;
-                               memcpy(&func, text, sizeof(INDENT_FUNC));
-                               if (func == indent_func)
-                                        memset(&func, 0, sizeof(INDENT_FUNC));
-                               text += sizeof(INDENT_FUNC);
-                       } else if (*text == LINE_CMD_CONTINUE) {
-                               memcpy(&tmp, text+1, sizeof(char *));
-                               text = tmp-1;
-                       }
-               }
-
-               line = line->next;
-       }
 }
 
 void textbuffer_views_unregister_indent_func(INDENT_FUNC indent_func)
@@ -1045,7 +1009,6 @@ static void bookmark_check_remove(char *key, LINE_REC *line,
 static void view_bookmarks_check(TEXT_BUFFER_VIEW_REC *view, LINE_REC *line)
 {
         BOOKMARK_FIND_REC rec;
-        LINE_REC *new_line;
        GSList *tmp;
 
         rec.remove_line = line;
@@ -1054,16 +1017,9 @@ static void view_bookmarks_check(TEXT_BUFFER_VIEW_REC *view, LINE_REC *line)
                             (GHFunc) bookmark_check_remove, &rec);
 
        if (rec.remove_list != NULL) {
-               new_line = line->prev == NULL ? NULL :
-                       (line->next == NULL ? line->prev : line->next);
                for (tmp = rec.remove_list; tmp != NULL; tmp = tmp->next) {
                        g_hash_table_remove(view->bookmarks, tmp->data);
-                       if (new_line != NULL) {
-                               g_hash_table_insert(view->bookmarks,
-                                                   tmp->data, new_line);
-                       } else {
-                               g_free(tmp->data);
-                       }
+                       g_free(tmp->data);
                }
                g_slist_free(rec.remove_list);
        }
@@ -1201,6 +1157,24 @@ void textbuffer_view_remove_line(TEXT_BUFFER_VIEW_REC *view, LINE_REC *line)
        textbuffer_remove(view->buffer, line);
 }
 
+void textbuffer_view_remove_lines_by_level(TEXT_BUFFER_VIEW_REC *view, int level)
+{
+       LINE_REC *line, *next;
+       
+       term_refresh_freeze();
+       line = textbuffer_view_get_lines(view);
+
+       while (line != NULL) {
+               next = line->next;
+
+               if (line->info.level & level)
+                       textbuffer_view_remove_line(view, line);
+               line = next;
+       }
+       textbuffer_view_redraw(view);
+       term_refresh_thaw();
+}
+
 static int g_free_true(void *data)
 {
        g_free(data);
@@ -1326,9 +1300,6 @@ static int sig_check_linecache(void)
 void textbuffer_view_init(void)
 {
        linecache_tag = g_timeout_add(LINE_CACHE_CHECK_TIME, (GSourceFunc) sig_check_linecache, NULL);
-#ifdef HAVE_CUIX
-        cuix_active = 0;
-#endif
 }
 
 void textbuffer_view_deinit(void)
index b529ebedd099436225c64e8c10b768b1da5c5872..46da808e4b4fbbea451bdf25b66d064ee6b079ab 100644 (file)
@@ -126,6 +126,7 @@ void textbuffer_view_insert_line(TEXT_BUFFER_VIEW_REC *view, LINE_REC *line);
 void textbuffer_view_remove_line(TEXT_BUFFER_VIEW_REC *view, LINE_REC *line);
 /* Remove all lines from buffer. */
 void textbuffer_view_remove_all_lines(TEXT_BUFFER_VIEW_REC *view);
+void textbuffer_view_remove_lines_by_level(TEXT_BUFFER_VIEW_REC *view, int level);
 
 /* Set a bookmark in view */
 void textbuffer_view_set_bookmark(TEXT_BUFFER_VIEW_REC *view,
index 930e55ad6d205365adc909c808232f313243c5ef..0ba7d16eec229e490dfcbd1621580d5be188c3ff 100644 (file)
@@ -13,9 +13,9 @@
     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     GNU General Public License for more details.
 
-    You should have received a copy of the GNU General Public License
-    along with this program; if not, write to the Free Software
-    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+    You should have received a copy of the GNU General Public License along
+    with this program; if not, write to the Free Software Foundation, Inc.,
+    51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 */
 
 #define        G_LOG_DOMAIN "TextBuffer"
 
 #define TEXT_CHUNK_USABLE_SIZE (LINE_TEXT_CHUNK_SIZE-2-(int)sizeof(char*))
 
-static GMemChunk *buffer_chunk, *line_chunk, *text_chunk;
-
 TEXT_BUFFER_REC *textbuffer_create(void)
 {
        TEXT_BUFFER_REC *buffer;
 
-       buffer = g_mem_chunk_alloc0(buffer_chunk);
+       buffer = g_slice_new0(TEXT_BUFFER_REC);
        buffer->last_eol = TRUE;
+       buffer->last_fg = LINE_COLOR_DEFAULT;
+       buffer->last_bg = LINE_COLOR_DEFAULT | LINE_COLOR_BG;
         return buffer;
 }
 
@@ -48,7 +48,7 @@ void textbuffer_destroy(TEXT_BUFFER_REC *buffer)
        g_return_if_fail(buffer != NULL);
 
        textbuffer_remove_all_lines(buffer);
-        g_mem_chunk_free(buffer_chunk, buffer);
+        g_slice_free(TEXT_BUFFER_REC, buffer);
 }
 
 static TEXT_CHUNK_REC *text_chunk_find(TEXT_BUFFER_REC *buffer,
@@ -77,7 +77,7 @@ static TEXT_CHUNK_REC *text_chunk_create(TEXT_BUFFER_REC *buffer)
        TEXT_CHUNK_REC *rec;
        unsigned char *buf, *ptr, **pptr;
 
-       rec = g_mem_chunk_alloc(text_chunk);
+       rec = g_slice_new(TEXT_CHUNK_REC);
        rec->pos = 0;
        rec->refcount = 0;
 
@@ -106,7 +106,7 @@ static TEXT_CHUNK_REC *text_chunk_create(TEXT_BUFFER_REC *buffer)
 static void text_chunk_destroy(TEXT_BUFFER_REC *buffer, TEXT_CHUNK_REC *chunk)
 {
        buffer->text_chunks = g_slist_remove(buffer->text_chunks, chunk);
-       g_mem_chunk_free(text_chunk, chunk);
+       g_slice_free(TEXT_CHUNK_REC, chunk);
 }
 
 static void text_chunk_line_free(TEXT_BUFFER_REC *buffer, LINE_REC *line)
@@ -138,8 +138,6 @@ static void text_chunk_line_free(TEXT_BUFFER_REC *buffer, LINE_REC *line)
                                break;
 
                        text = tmp-1;
-               } else if (cmd == LINE_CMD_INDENT_FUNC) {
-                       text += sizeof(int (*) ());
                }
        }
 }
@@ -180,8 +178,7 @@ static LINE_REC *textbuffer_line_create(TEXT_BUFFER_REC *buffer)
        if (buffer->cur_text == NULL)
                 text_chunk_create(buffer);
 
-       rec = g_mem_chunk_alloc(line_chunk);
-        rec->refcount = 1;
+       rec = g_slice_new(LINE_REC);
        rec->text = buffer->cur_text->buffer + buffer->cur_text->pos;
 
        buffer->cur_text->refcount++;
@@ -214,46 +211,9 @@ static LINE_REC *textbuffer_line_insert(TEXT_BUFFER_REC *buffer,
         return line;
 }
 
-void textbuffer_line_ref(LINE_REC *line)
-{
-       g_return_if_fail(line != NULL);
-
-       if (++line->refcount == 255)
-                g_error("line reference counter wrapped - shouldn't happen");
-}
-
-void textbuffer_line_unref(TEXT_BUFFER_REC *buffer, LINE_REC *line)
-{
-       g_return_if_fail(buffer != NULL);
-       g_return_if_fail(line != NULL);
-
-       if (--line->refcount == 0) {
-               text_chunk_line_free(buffer, line);
-               g_mem_chunk_free(line_chunk, line);
-       }
-}
-
-void textbuffer_line_unref_list(TEXT_BUFFER_REC *buffer, GList *list)
-{
-       g_return_if_fail(buffer != NULL);
-
-       while (list != NULL) {
-                if (list->data != NULL)
-                       textbuffer_line_unref(buffer, list->data);
-                list = list->next;
-       }
-}
-
 LINE_REC *textbuffer_line_last(TEXT_BUFFER_REC *buffer)
 {
-       LINE_REC *line;
-
-       line = buffer->cur_line;
-       if (line != NULL) {
-               while (line->next != NULL)
-                       line = line->next;
-       }
-        return line;
+       return buffer->cur_line;
 }
 
 int textbuffer_line_exists_after(LINE_REC *line, LINE_REC *search)
@@ -266,6 +226,55 @@ int textbuffer_line_exists_after(LINE_REC *line, LINE_REC *search)
         return FALSE;
 }
 
+void textbuffer_line_add_colors(TEXT_BUFFER_REC *buffer, LINE_REC **line,
+                               int fg, int bg, int flags)
+{
+       unsigned char data[20];
+       int pos;
+
+        /* get the fg & bg command chars */
+       fg = fg < 0 ? LINE_COLOR_DEFAULT : fg & 0x0f;
+       bg = LINE_COLOR_BG | (bg < 0 ? LINE_COLOR_DEFAULT : bg & 0x0f);
+
+       pos = 0;
+       if (fg != buffer->last_fg) {
+               buffer->last_fg = fg;
+               data[pos++] = 0;
+               data[pos++] = fg == 0 ? LINE_CMD_COLOR0 : fg;
+       }
+       if (bg != buffer->last_bg) {
+                buffer->last_bg = bg;
+               data[pos++] = 0;
+               data[pos++] = bg;
+       }
+
+       if ((flags & GUI_PRINT_FLAG_UNDERLINE) != (buffer->last_flags & GUI_PRINT_FLAG_UNDERLINE)) {
+               data[pos++] = 0;
+               data[pos++] = LINE_CMD_UNDERLINE;
+       }
+       if ((flags & GUI_PRINT_FLAG_REVERSE) != (buffer->last_flags & GUI_PRINT_FLAG_REVERSE)) {
+               data[pos++] = 0;
+               data[pos++] = LINE_CMD_REVERSE;
+       }
+       if ((flags & GUI_PRINT_FLAG_BLINK) != (buffer->last_flags & GUI_PRINT_FLAG_BLINK)) {
+               data[pos++] = 0;
+               data[pos++] = LINE_CMD_BLINK;
+       }
+       if ((flags & GUI_PRINT_FLAG_BOLD) != (buffer->last_flags & GUI_PRINT_FLAG_BOLD)) {
+               data[pos++] = 0;
+               data[pos++] = LINE_CMD_BOLD;
+       }
+       if (flags & GUI_PRINT_FLAG_INDENT) {
+               data[pos++] = 0;
+               data[pos++] = LINE_CMD_INDENT;
+       }
+
+        if (pos > 0)
+               *line = textbuffer_insert(buffer, *line, data, pos, NULL);
+
+       buffer->last_flags = flags;
+}
+
 LINE_REC *textbuffer_append(TEXT_BUFFER_REC *buffer,
                            const unsigned char *data, int len,
                            LINE_INFO_REC *info)
@@ -296,6 +305,12 @@ LINE_REC *textbuffer_insert(TEXT_BUFFER_REC *buffer, LINE_REC *insert_after,
        buffer->last_eol = len >= 2 &&
                data[len-2] == 0 && data[len-1] == LINE_CMD_EOL;
 
+       if (buffer->last_eol) {
+               buffer->last_fg = LINE_COLOR_DEFAULT;
+               buffer->last_bg = LINE_COLOR_DEFAULT | LINE_COLOR_BG;
+               buffer->last_flags = 0;
+       }
+
         return line;
 }
 
@@ -312,17 +327,17 @@ void textbuffer_remove(TEXT_BUFFER_REC *buffer, LINE_REC *line)
                line->next->prev = line->prev;
 
        if (buffer->cur_line == line) {
-               buffer->cur_line = line->next != NULL ?
-                       line->next : line->prev;
+               buffer->cur_line = line->prev;
        }
 
         line->prev = line->next = NULL;
 
        buffer->lines_count--;
-        textbuffer_line_unref(buffer, line);
+        text_chunk_line_free(buffer, line);
+       g_slice_free(LINE_REC, line);
 }
 
-/* Removes all lines from buffer, ignoring reference counters */
+/* Removes all lines from buffer */
 void textbuffer_remove_all_lines(TEXT_BUFFER_REC *buffer)
 {
        GSList *tmp;
@@ -331,13 +346,13 @@ void textbuffer_remove_all_lines(TEXT_BUFFER_REC *buffer)
        g_return_if_fail(buffer != NULL);
 
        for (tmp = buffer->text_chunks; tmp != NULL; tmp = tmp->next)
-                g_mem_chunk_free(text_chunk, tmp->data);
+                g_slice_free(TEXT_CHUNK_REC, tmp->data);
        g_slist_free(buffer->text_chunks);
        buffer->text_chunks = NULL;
 
        while (buffer->first_line != NULL) {
                line = buffer->first_line->next;
-               g_mem_chunk_free(line_chunk, buffer->first_line);
+               g_slice_free(LINE_REC, buffer->first_line);
                 buffer->first_line = line;
        }
        buffer->lines_count = 0;
@@ -348,54 +363,33 @@ void textbuffer_remove_all_lines(TEXT_BUFFER_REC *buffer)
        buffer->last_eol = TRUE;
 }
 
-static void set_color(GString *str, int cmd, int *last_fg, int *last_bg)
+static void set_color(GString *str, int cmd)
 {
-       if (cmd & LINE_COLOR_DEFAULT) {
-               g_string_sprintfa(str, "\004%c", FORMAT_STYLE_DEFAULTS);
-
-               /* need to reset the fg/bg color */
-               if (cmd & LINE_COLOR_BG) {
-                        *last_bg = -1;
-                       if (*last_fg != -1) {
-                               g_string_sprintfa(str, "\004%c%c",
-                                                 *last_fg,
-                                                 FORMAT_COLOR_NOCHANGE);
-                       }
-               } else {
-                        *last_fg = -1;
-                       if (*last_bg != -1) {
-                               g_string_sprintfa(str, "\004%c%c",
-                                                 FORMAT_COLOR_NOCHANGE,
-                                                 *last_bg);
-                       }
-               }
-                return;
-       }
+       int color = -1;
+
+       if (!(cmd & LINE_COLOR_DEFAULT))
+               color = (cmd & 0x0f)+'0';
 
        if ((cmd & LINE_COLOR_BG) == 0) {
                 /* change foreground color */
-                *last_fg = (cmd & 0x0f)+'0';
-               g_string_sprintfa(str, "\004%c%c", *last_fg,
-                                 FORMAT_COLOR_NOCHANGE);
+               g_string_append_printf(str, "\004%c%c",
+                                 color, FORMAT_COLOR_NOCHANGE);
        } else {
                /* change background color */
-                *last_bg = (cmd & 0x0f)+'0';
-               g_string_sprintfa(str, "\004%c%c",
-                                 FORMAT_COLOR_NOCHANGE, *last_bg);
+               g_string_append_printf(str, "\004%c%c",
+                                 FORMAT_COLOR_NOCHANGE, color);
        }
 }
 
 void textbuffer_line2text(LINE_REC *line, int coloring, GString *str)
 {
         unsigned char cmd, *ptr, *tmp;
-        int last_fg, last_bg;
 
        g_return_if_fail(line != NULL);
        g_return_if_fail(str != NULL);
 
         g_string_truncate(str, 0);
 
-        last_fg = last_bg = -1;
        for (ptr = line->text;;) {
                if (*ptr != 0) {
                        g_string_append_c(str, (char) *ptr);
@@ -407,7 +401,7 @@ void textbuffer_line2text(LINE_REC *line, int coloring, GString *str)
                 cmd = *ptr;
                ptr++;
 
-               if (cmd == LINE_CMD_EOL || cmd == LINE_CMD_FORMAT) {
+               if (cmd == LINE_CMD_EOL) {
                         /* end of line */
                        break;
                }
@@ -426,7 +420,7 @@ void textbuffer_line2text(LINE_REC *line, int coloring, GString *str)
 
                if ((cmd & 0x80) == 0) {
                        /* set color */
-                        set_color(str, cmd, &last_fg, &last_bg);
+                        set_color(str, cmd);
                } else switch (cmd) {
                case LINE_CMD_UNDERLINE:
                        g_string_append_c(str, 31);
@@ -434,14 +428,21 @@ void textbuffer_line2text(LINE_REC *line, int coloring, GString *str)
                case LINE_CMD_REVERSE:
                        g_string_append_c(str, 22);
                        break;
+               case LINE_CMD_BLINK:
+                       g_string_append_printf(str, "\004%c",
+                                         FORMAT_STYLE_BLINK);
+                       break;
+               case LINE_CMD_BOLD:
+                       g_string_append_printf(str, "\004%c",
+                                         FORMAT_STYLE_BOLD);
+                       break;
                case LINE_CMD_COLOR0:
-                       g_string_sprintfa(str, "\004%c%c",
+                       g_string_append_printf(str, "\004%c%c",
                                          '0', FORMAT_COLOR_NOCHANGE);
                        break;
                case LINE_CMD_INDENT:
-                       break;
-               case LINE_CMD_INDENT_FUNC:
-                        ptr += sizeof(void *);
+                       g_string_append_printf(str, "\004%c",
+                                         FORMAT_STYLE_INDENT);
                        break;
                }
        }
@@ -459,6 +460,7 @@ GList *textbuffer_find_text(TEXT_BUFFER_REC *buffer, LINE_REC *startline,
        GList *matches;
        GString *str;
         int i, match_after, line_matched;
+       char * (*match_func)(const char *, const char *);
 
        g_return_val_if_fail(buffer != NULL, NULL);
        g_return_val_if_fail(text != NULL, NULL);
@@ -479,27 +481,26 @@ GList *textbuffer_find_text(TEXT_BUFFER_REC *buffer, LINE_REC *startline,
 
        line = startline != NULL ? startline : buffer->first_line;
 
-       for (; line != NULL; line = line->next) {
-               if ((line->info.level & level) == 0 ||
-                   (line->info.level & nolevel) != 0)
-                        continue;
+       if (fullword)
+               match_func = case_sensitive ? strstr_full : stristr_full;
+       else
+               match_func = case_sensitive ? strstr : stristr;
 
-               if (*text == '\0') {
-                        /* no search word, everything matches */
-                        textbuffer_line_ref(line);
-                       matches = g_list_append(matches, line);
-                       continue;
-               }
+       for (; line != NULL; line = line->next) {
+               line_matched = (line->info.level & level) != 0 &&
+                       (line->info.level & nolevel) == 0;
 
-                textbuffer_line2text(line, FALSE, str);
+               if (*text != '\0') {
+                       textbuffer_line2text(line, FALSE, str);
 
-               line_matched =
+                       if (line_matched)
+                       line_matched =
 #ifdef HAVE_REGEX_H
                        regexp ? regexec(&preg, str->str, 0, NULL, 0) == 0 :
 #endif
-                       fullword ? strstr_full_case(str->str, text, !case_sensitive) != NULL :
-                       case_sensitive ? strstr(str->str, text) != NULL :
-                       stristr(str->str, text) != NULL;
+                       match_func(str->str, text) != NULL;
+               }
+
                if (line_matched) {
                         /* add the -before lines */
                        pre_line = line;
@@ -510,17 +511,14 @@ GList *textbuffer_find_text(TEXT_BUFFER_REC *buffer, LINE_REC *startline,
                                 pre_line = pre_line->prev;
                        }
 
-                       for (; pre_line != line; pre_line = pre_line->next) {
-                               textbuffer_line_ref(pre_line);
+                       for (; pre_line != line; pre_line = pre_line->next)
                                matches = g_list_append(matches, pre_line);
-                       }
 
                        match_after = after;
                }
 
                if (line_matched || match_after > 0) {
                        /* matched */
-                        textbuffer_line_ref(line);
                        matches = g_list_append(matches, line);
 
                        if ((!line_matched && --match_after == 0) ||
@@ -537,18 +535,8 @@ GList *textbuffer_find_text(TEXT_BUFFER_REC *buffer, LINE_REC *startline,
 
 void textbuffer_init(void)
 {
-       buffer_chunk = g_mem_chunk_new("text buffer chunk",
-                                      sizeof(TEXT_BUFFER_REC),
-                                      sizeof(TEXT_BUFFER_REC)*32, G_ALLOC_AND_FREE);
-       line_chunk = g_mem_chunk_new("line chunk", sizeof(LINE_REC),
-                                    sizeof(LINE_REC)*1024, G_ALLOC_AND_FREE);
-       text_chunk = g_mem_chunk_new("text chunk", sizeof(TEXT_CHUNK_REC),
-                                    sizeof(TEXT_CHUNK_REC)*32, G_ALLOC_AND_FREE);
 }
 
 void textbuffer_deinit(void)
 {
-       g_mem_chunk_destroy(buffer_chunk);
-       g_mem_chunk_destroy(line_chunk);
-       g_mem_chunk_destroy(text_chunk);
 }
index adea3604c3a84613c71181235758e6fe1c40c9b2..e5d784870f79e729a6cf37a900e178a98e83cba8 100644 (file)
@@ -1,12 +1,12 @@
 #ifndef __TEXTBUFFER_H
 #define __TEXTBUFFER_H
 
-#define LINE_TEXT_CHUNK_SIZE 16384
+/* Make sure TEXT_CHUNK_REC is not slightly more than a page, as that
+   wastes a lot of memory. */
+#define LINE_TEXT_CHUNK_SIZE (16384 - 16)
 
 #define LINE_COLOR_BG          0x20
 #define LINE_COLOR_DEFAULT     0x10
-#define LINE_COLOR_BOLD                0x08
-#define LINE_COLOR_BLINK               0x08
 
 enum {
        LINE_CMD_EOL=0x80,      /* line ends here */
@@ -15,12 +15,8 @@ enum {
        LINE_CMD_UNDERLINE,     /* enable/disable underlining */
        LINE_CMD_REVERSE,       /* enable/disable reversed text */
        LINE_CMD_INDENT,        /* if line is split, indent it at this position */
-       LINE_CMD_INDENT_FUNC,   /* if line is split, use the specified indentation function */
-       LINE_CMD_FORMAT,        /* end of line, but next will come the format that was used to create the
-                                  text in format <module><format_name><arg><arg2...> - fields are separated
-                                  with \0<format> and last argument ends with \0<eol>. \0<continue> is allowed
-                                  anywhere */
-       LINE_CMD_FORMAT_CONT    /* multiline format, continues to next line */
+       LINE_CMD_BLINK,         /* enable/disable blink */
+       LINE_CMD_BOLD,          /* enable/disable bold */
 };
 
 typedef struct {
@@ -38,15 +34,13 @@ typedef struct _LINE_REC {
           Bit:
             5 - Setting a background color
             4 - Use "default terminal color"
-            3 - Bold (fg) / blink (bg) - can be used with 4th bit
-            0-2 - Color
+            0-3 - Color
 
           DO NOT ADD BLACK WITH \0\0 - this will break things. Use
           LINE_CMD_COLOR0 instead. */
        struct _LINE_REC *prev, *next;
 
        unsigned char *text;
-        unsigned char refcount;
         LINE_INFO_REC info;
 } LINE_REC;
 
@@ -65,6 +59,9 @@ typedef struct {
        TEXT_CHUNK_REC *cur_text;
 
        unsigned int last_eol:1;
+       int last_fg;
+       int last_bg;
+       int last_flags;
 } TEXT_BUFFER_REC;
 
 /* Create new buffer */
@@ -72,13 +69,12 @@ TEXT_BUFFER_REC *textbuffer_create(void);
 /* Destroy the buffer */
 void textbuffer_destroy(TEXT_BUFFER_REC *buffer);
 
-void textbuffer_line_ref(LINE_REC *line);
-void textbuffer_line_unref(TEXT_BUFFER_REC *buffer, LINE_REC *line);
-void textbuffer_line_unref_list(TEXT_BUFFER_REC *buffer, GList *list);
-
 LINE_REC *textbuffer_line_last(TEXT_BUFFER_REC *buffer);
 int textbuffer_line_exists_after(LINE_REC *line, LINE_REC *search);
 
+void textbuffer_line_add_colors(TEXT_BUFFER_REC *buffer, LINE_REC **line,
+                               int fg, int bg, int flags);
+
 /* Append text to buffer. When \0<EOL> is found at the END OF DATA, a new
    line is created. You must send the EOL command before you can do anything
    else with the buffer. */
index 3907ac3df0a300a61cb02e6ab8599b9c63498f2c..f8acdbd99b2959507118334b33bd043957a2b12e 100644 (file)
@@ -1,8 +1,8 @@
 noinst_LIBRARIES = libirssi_config.a
 
 INCLUDES = \
-       $(GLIB_CFLAGS) \
-       -I$(top_srcdir)/src
+       -I$(top_srcdir)/src \
+       $(GLIB_CFLAGS)
 
 libirssi_config_a_SOURCES = \
        get.c \
index ccc8c689a6cba07e3ae40361ce979bbc7c65b844..c0f6a3dd2db82b0f60c8e372603fe749638aa8a7 100644 (file)
@@ -13,9 +13,9 @@
     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     GNU General Public License for more details.
 
-    You should have received a copy of the GNU General Public License
-    along with this program; if not, write to the Free Software
-    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+    You should have received a copy of the GNU General Public License along
+    with this program; if not, write to the Free Software Foundation, Inc.,
+    51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 */
 
 #include "module.h"
@@ -38,8 +38,6 @@ CONFIG_NODE *config_node_find(CONFIG_NODE *node, const char *key)
        return NULL;
 }
 
-/* find the section from node - if not found create it unless new_type is -1.
-   you can also specify in new_type if it's NODE_TYPE_LIST or NODE_TYPE_BLOCK */
 CONFIG_NODE *config_node_section(CONFIG_NODE *parent, const char *key, int new_type)
 {
         return config_node_section_index(parent, key, -1, new_type);
@@ -80,8 +78,6 @@ CONFIG_NODE *config_node_section_index(CONFIG_NODE *parent, const char *key,
        return node;
 }
 
-/* find the section with the whole path.
-   create the path if necessary `create' is TRUE. */
 CONFIG_NODE *config_node_traverse(CONFIG_REC *rec, const char *section, int create)
 {
        CONFIG_NODE *node;
@@ -203,41 +199,6 @@ int config_node_get_bool(CONFIG_NODE *parent, const char *key, int def)
                (i_toupper(*str) == 'O' && i_toupper(str[1]) == 'N');
 }
 
-/* Get the value of keys `key' and `key_value' and put them to
-   `ret_key' and `ret_value'. Returns -1 if not found. */
-int config_node_get_keyvalue(CONFIG_NODE *node, const char *key, const char *value_key, char **ret_key, char **ret_value)
-{
-       CONFIG_NODE *keynode, *valuenode;
-       GSList *tmp;
-
-       g_return_val_if_fail(node != NULL, -1);
-       g_return_val_if_fail(key != NULL, -1);
-       g_return_val_if_fail(value_key != NULL, -1);
-       g_return_val_if_fail(ret_key != NULL, -1);
-       g_return_val_if_fail(ret_value != NULL, -1);
-
-       for (tmp = node->value; tmp != NULL; tmp = tmp->next) {
-               node = tmp->data;
-
-               if (node->type != NODE_TYPE_BLOCK)
-                       continue;
-
-               keynode = config_node_find(node, key);
-               if (keynode == NULL || keynode->type != NODE_TYPE_KEY)
-                       continue;
-
-               valuenode = config_node_find(node, value_key);
-
-               *ret_key = keynode->key;
-               *ret_value = valuenode != NULL && valuenode->type == NODE_TYPE_KEY ?
-                       valuenode->value : NULL;
-               return 0;
-       }
-
-       return -1;
-}
-
-/* Return all values from from the list `node' in a g_strsplit() array */
 char **config_node_get_list(CONFIG_NODE *node)
 {
        GString *values;
@@ -253,7 +214,7 @@ char **config_node_get_list(CONFIG_NODE *node)
                node = tmp->data;
 
                if (node->type == NODE_TYPE_VALUE)
-                       g_string_sprintfa(values, "%s ", (char *) node->value);
+                       g_string_append_printf(values, "%s ", (char *) node->value);
        }
 
        /* split the values to **str array */
@@ -268,7 +229,6 @@ char **config_node_get_list(CONFIG_NODE *node)
         return ret;
 }
 
-/* Returns n'th node from list. */
 CONFIG_NODE *config_node_nth(CONFIG_NODE *node, int index)
 {
        GSList *tmp;
@@ -289,7 +249,6 @@ CONFIG_NODE *config_node_nth(CONFIG_NODE *node, int index)
        return NULL;
 }
 
-/* Returns index for given key */
 int config_node_index(CONFIG_NODE *parent, const char *key)
 {
        CONFIG_NODE *node;
@@ -317,7 +276,6 @@ int config_node_index(CONFIG_NODE *parent, const char *key)
         return -1;
 }
 
-/* Returns the first non-comment node in list */
 GSList *config_node_first(GSList *list)
 {
        while (list != NULL) {
@@ -330,7 +288,6 @@ GSList *config_node_first(GSList *list)
        return list;
 }
 
-/* Returns the next non-comment node in list */
 GSList *config_node_next(GSList *list)
 {
        list = list->next;
index 3d6072d118ac25291062d1bbc9ae3f351b36128c..3d9eb931f90f563c5a493f47598a1afe6f7b4ad2 100644 (file)
@@ -14,6 +14,9 @@ enum {
 #define is_node_list(a) \
         ((a)->type == NODE_TYPE_BLOCK || (a)->type == NODE_TYPE_LIST)
 
+typedef struct _CONFIG_NODE CONFIG_NODE;
+typedef struct _CONFIG_REC CONFIG_REC;
+
 struct _CONFIG_NODE {
        int type;
         char *key;
@@ -45,7 +48,6 @@ struct _CONFIG_NODE {
 
 struct _CONFIG_REC {
        char *fname;
-       int handle;
        int create_mode;
        int modifycounter; /* increase every time something is changed */
 
@@ -57,6 +59,7 @@ struct _CONFIG_REC {
        GScanner *scanner;
 
        /* while writing to configuration file.. */
+       GIOChannel *handle;
        int tmp_indent_level; /* indentation position */
        int tmp_last_lf; /* last character was a line feed */
 };
@@ -72,7 +75,7 @@ void config_change_file_name(CONFIG_REC *rec, const char *fname, int create_mode
 
 /* Parse configuration file */
 int config_parse(CONFIG_REC *rec);
-/* Parse configuration found from `data'. `input_name' is specifies the
+/* Parse configuration found from `data'. `input_name' specifies the
    "configuration name" which is displayed in error messages. */
 int config_parse_data(CONFIG_REC *rec, const char *data, const char *input_name);
 
@@ -117,12 +120,9 @@ CONFIG_NODE *config_node_section(CONFIG_NODE *parent, const char *key, int new_t
 CONFIG_NODE *config_node_section_index(CONFIG_NODE *parent, const char *key,
                                       int index, int new_type);
 /* Find the section with the whole path.
-   Create the path if necessary `create' is TRUE. */
+   Create the path if necessary if `create' is TRUE. */
 CONFIG_NODE *config_node_traverse(CONFIG_REC *rec, const char *section, int create);
-/* Get the value of keys `key' and `key_value' and put them to
-   `ret_key' and `ret_value'. Returns -1 if not found. */
-int config_node_get_keyvalue(CONFIG_NODE *node, const char *key, const char *value_key, char **ret_key, char **ret_value);
-/* Return all values from from the list `node' in a g_strsplit() array */
+/* Return all values from the list `node' in a g_strsplit() array */
 char **config_node_get_list(CONFIG_NODE *node);
 /* Add all values in `array' to `node' */
 void config_node_add_list(CONFIG_REC *rec, CONFIG_NODE *node, char **array);
@@ -131,12 +131,21 @@ char *config_node_get_str(CONFIG_NODE *parent, const char *key, const char *def)
 int config_node_get_int(CONFIG_NODE *parent, const char *key, int def);
 int config_node_get_bool(CONFIG_NODE *parent, const char *key, int def);
 
+/*
+ * key != NULL && value == NULL
+ * remove node with key 'key', equivalent to
+ * config_node_remove(rec, parent, config_node_find(parent, key))
+ * key == NULL && value != NULL
+ * create a new node with type NODE_TYPE_VALUE and value 'value'
+ * key != NULL && value != NULL
+ * if a node with key 'key' exists change its value to 'value',
+ * otherwise create a new node with type NODE_TYPE_KEY, key 'key' and value 'value'
+ * */
 void config_node_set_str(CONFIG_REC *rec, CONFIG_NODE *parent, const char *key, const char *value);
 void config_node_set_int(CONFIG_REC *rec, CONFIG_NODE *parent, const char *key, int value);
 void config_node_set_bool(CONFIG_REC *rec, CONFIG_NODE *parent, const char *key, int value);
 
-/* Remove one node from block/list.
-   ..set_str() with value = NULL does the same. */
+/* Remove one node from block/list. */
 void config_node_remove(CONFIG_REC *rec, CONFIG_NODE *parent, CONFIG_NODE *node);
 /* Remove n'th node from a list */
 void config_node_list_remove(CONFIG_REC *rec, CONFIG_NODE *node, int index);
index 474b007f14ad22af9a26192d8354bbf113b50109..22832c0700793338b3978841241ec0f00225af3c 100644 (file)
@@ -13,9 +13,9 @@
     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     GNU General Public License for more details.
 
-    You should have received a copy of the GNU General Public License
-    along with this program; if not, write to the Free Software
-    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+    You should have received a copy of the GNU General Public License along
+    with this program; if not, write to the Free Software Foundation, Inc.,
+    51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 */
 
 #include "module.h"
@@ -267,29 +267,27 @@ void config_parse_init(CONFIG_REC *rec, const char *name)
        scanner->msg_handler = (GScannerMsgFunc) config_parse_error_func;
 }
 
-/* Parse configuration file */
 int config_parse(CONFIG_REC *rec)
 {
+       int fd;
+
        g_return_val_if_fail(rec != NULL, -1);
        g_return_val_if_fail(rec->fname != NULL, -1);
 
-       rec->handle = open(rec->fname, O_RDONLY);
-       if (rec->handle == -1)
+       fd = open(rec->fname, O_RDONLY);
+       if (fd == -1)
                return config_error(rec, g_strerror(errno));
 
        config_parse_init(rec, rec->fname);
-       g_scanner_input_file(rec->scanner, rec->handle);
+       g_scanner_input_file(rec->scanner, fd);
        config_parse_loop(rec, rec->mainnode, G_TOKEN_EOF);
        g_scanner_destroy(rec->scanner);
 
-       close(rec->handle);
-       rec->handle = -1;
+       close(fd);
 
        return rec->last_error == NULL ? 0 : -1;
 }
 
-/* Parse configuration found from `data'. `input_name' is specifies the
-   "configuration name" which is displayed in error messages. */
 int config_parse_data(CONFIG_REC *rec, const char *data, const char *input_name)
 {
        config_parse_init(rec, input_name);
@@ -300,9 +298,6 @@ int config_parse_data(CONFIG_REC *rec, const char *data, const char *input_name)
        return rec->last_error == NULL ? 0 : -1;
 }
 
-/* Open configuration. The file is created if it doesn't exist, unless
-   `create_mode' is -1. `fname' can be NULL if you just want to use
-   config_parse_data() */
 CONFIG_REC *config_open(const char *fname, int create_mode)
 {
        CONFIG_REC *rec;
@@ -316,7 +311,6 @@ CONFIG_REC *config_open(const char *fname, int create_mode)
 
        rec = g_new0(CONFIG_REC, 1);
        rec->fname = fname == NULL ? NULL : g_strdup(fname);
-       rec->handle = -1;
        rec->create_mode = create_mode;
        rec->mainnode = g_new0(CONFIG_NODE, 1);
        rec->mainnode->type = NODE_TYPE_BLOCK;
@@ -326,7 +320,6 @@ CONFIG_REC *config_open(const char *fname, int create_mode)
        return rec;
 }
 
-/* Release all memory used by configuration */
 void config_close(CONFIG_REC *rec)
 {
        g_return_if_fail(rec != NULL);
@@ -334,7 +327,6 @@ void config_close(CONFIG_REC *rec)
        config_nodes_remove_all(rec);
        g_free(rec->mainnode);
 
-       if (rec->handle != -1) close(rec->handle);
        g_hash_table_foreach(rec->cache, (GHFunc) g_free, NULL);
        g_hash_table_destroy(rec->cache);
        g_hash_table_destroy(rec->cache_nodes);
@@ -343,7 +335,6 @@ void config_close(CONFIG_REC *rec)
        g_free(rec);
 }
 
-/* Change file name of config file */
 void config_change_file_name(CONFIG_REC *rec, const char *fname, int create_mode)
 {
        g_return_if_fail(rec != NULL);
index 6cfaa48382a797ec5e7509a3a7819c490bde4ac3..61a101fb492aea9721b41474ccf6b5b8c7c92813 100644 (file)
@@ -13,9 +13,9 @@
     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     GNU General Public License for more details.
 
-    You should have received a copy of the GNU General Public License
-    along with this program; if not, write to the Free Software
-    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+    You should have received a copy of the GNU General Public License along
+    with this program; if not, write to the Free Software Foundation, Inc.,
+    51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 */
 
 #include "module.h"
@@ -59,7 +59,6 @@ void config_node_remove(CONFIG_REC *rec, CONFIG_NODE *parent, CONFIG_NODE *node)
         g_free(node);
 }
 
-/* Remove n'th node from a list */
 void config_node_list_remove(CONFIG_REC *rec, CONFIG_NODE *node, int index)
 {
        CONFIG_NODE *child;
@@ -71,7 +70,6 @@ void config_node_list_remove(CONFIG_REC *rec, CONFIG_NODE *node, int index)
        if (child != NULL) config_node_remove(rec, node, child);
 }
 
-/* Clear all data inside node, but leave the node */
 void config_node_clear(CONFIG_REC *rec, CONFIG_NODE *node)
 {
        g_return_if_fail(node != NULL);
@@ -161,7 +159,6 @@ int config_set_bool(CONFIG_REC *rec, const char *section, const char *key, int v
        return config_set_str(rec, section, key, value ? "yes" : "no");
 }
 
-/* Add all values in `array' to `node' */
 void config_node_add_list(CONFIG_REC *rec, CONFIG_NODE *node, char **array)
 {
        char **tmp;
index 194478279c0da77e3d4d8f5b5a86f645c3657d23..37e51f097d3e9a66331d1566b094143a9b81c973 100644 (file)
@@ -13,9 +13,9 @@
     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     GNU General Public License for more details.
 
-    You should have received a copy of the GNU General Public License
-    along with this program; if not, write to the Free Software
-    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+    You should have received a copy of the GNU General Public License along
+    with this program; if not, write to the Free Software Foundation, Inc.,
+    51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 */
 
 #include "module.h"
@@ -32,7 +32,8 @@ static int config_write_indent(CONFIG_REC *rec)
        int n;
 
        for (n = 0; n < rec->tmp_indent_level/CONFIG_INDENT_SIZE; n++) {
-               if (write(rec->handle, indent_block, CONFIG_INDENT_SIZE) == -1)
+               if (g_io_channel_write_chars(rec->handle, indent_block, CONFIG_INDENT_SIZE,
+                                            NULL, NULL) == G_IO_STATUS_ERROR)
                        return -1;
        }
 
@@ -57,12 +58,14 @@ static int config_write_str(CONFIG_REC *rec, const char *str)
 
                p = strchr(strpos, '\n');
                if (p == NULL) {
-                       if (write(rec->handle, strpos, strlen(strpos)) == -1)
+                       if (g_io_channel_write_chars(rec->handle, strpos, strlen(strpos),
+                                                    NULL, NULL) == G_IO_STATUS_ERROR)
                                return -1;
                        strpos = "";
                        rec->tmp_last_lf = FALSE;
                } else {
-                       if (write(rec->handle, strpos, (int) (p-strpos)+1) == -1)
+                       if (g_io_channel_write_chars(rec->handle, strpos, (int) (p-strpos)+1,
+                                                    NULL, NULL) == G_IO_STATUS_ERROR)
                                return -1;
                        strpos = p+1;
                        rec->tmp_last_lf = TRUE;
@@ -85,20 +88,6 @@ static int config_has_specials(const char *text)
        return FALSE;
 }
 
-static int get_octal(int decimal)
-{
-       int octal, pos;
-
-       octal = 0; pos = 0;
-       while (decimal > 0) {
-               octal += (decimal & 7)*(pos == 0 ? 1 : pos);
-               decimal /= 8;
-               pos += 10;
-       }
-
-       return octal;
-}
-
 static char *config_escape_string(const char *text)
 {
        GString *str;
@@ -109,9 +98,9 @@ static char *config_escape_string(const char *text)
        str = g_string_new("\"");
        while (*text != '\0') {
                if (*text == '\\' || *text == '"')
-                       g_string_sprintfa(str, "\\%c", *text);
+                       g_string_append_printf(str, "\\%c", *text);
                else if ((unsigned char) *text < 32)
-                       g_string_sprintfa(str, "\\%03d", get_octal(*text));
+                       g_string_append_printf(str, "\\%03o", *text);
                else
                        g_string_append_c(str, *text);
                text++;
@@ -308,24 +297,24 @@ static int config_write_block(CONFIG_REC *rec, CONFIG_NODE *node, int list, int
        return 0;
 }
 
-/* Write configuration file. Write to `fname' if it's not NULL. */
 int config_write(CONFIG_REC *rec, const char *fname, int create_mode)
 {
        int ret;
+       int fd;
 
        g_return_val_if_fail(rec != NULL, -1);
         g_return_val_if_fail(fname != NULL || rec->fname != NULL, -1);
         g_return_val_if_fail(create_mode != -1 || rec->create_mode != -1, -1);
 
-       if (rec->handle != -1)
-               close(rec->handle);
-
-       rec->handle = open(fname != NULL ? fname : rec->fname,
+       fd = open(fname != NULL ? fname : rec->fname,
                           O_WRONLY | O_TRUNC | O_CREAT,
                           create_mode != -1 ? create_mode : rec->create_mode);
-       if (rec->handle == -1)
+       if (fd == -1)
                return config_error(rec, g_strerror(errno));
 
+       rec->handle = g_io_channel_unix_new(fd);
+       g_io_channel_set_encoding(rec->handle, NULL, NULL);
+       g_io_channel_set_close_on_unref(rec->handle, TRUE);
        rec->tmp_indent_level = 0;
        rec->tmp_last_lf = TRUE;
         ret = config_write_block(rec, rec->mainnode, FALSE, TRUE);
@@ -334,8 +323,8 @@ int config_write(CONFIG_REC *rec, const char *fname, int create_mode)
                config_error(rec, errno == 0 ? "bug" : g_strerror(errno));
        }
 
-       close(rec->handle);
-       rec->handle = -1;
+       g_io_channel_unref(rec->handle);
+       rec->handle = NULL;
 
        return ret;
 }
diff --git a/apps/irssi/src/lib-popt/.cvsignore b/apps/irssi/src/lib-popt/.cvsignore
deleted file mode 100644 (file)
index 577aa17..0000000
+++ /dev/null
@@ -1,7 +0,0 @@
-*.la
-*.lo
-.deps
-.libs
-Makefile
-Makefile.in
-so_locations
diff --git a/apps/irssi/src/lib-popt/Makefile.am b/apps/irssi/src/lib-popt/Makefile.am
deleted file mode 100644 (file)
index 928e5c0..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-noinst_LIBRARIES = libpopt.a
-
-INCLUDES = \
-       $(GLIB_CFLAGS) \
-       -I$(top_srcdir)/src
-
-libpopt_a_SOURCES = \
-       findme.c popt.c poptconfig.c popthelp.c poptparse.c
-
-noinst_HEADERS = \
-       findme.h popt.h poptint.h
diff --git a/apps/irssi/src/lib-popt/findme.c b/apps/irssi/src/lib-popt/findme.c
deleted file mode 100644 (file)
index fae8f03..0000000
+++ /dev/null
@@ -1,54 +0,0 @@
-/* (C) 1998 Red Hat Software, Inc. -- Licensing details are in the COPYING
-   file accompanying popt source distributions, available from 
-   ftp://ftp.redhat.com/pub/code/popt */
-
-#include "common.h"
-
-#ifdef __NeXT
-/* access macros are not declared in non posix mode in unistd.h -
- don't try to use posix on NeXTstep 3.3 ! */ 
-#include <libc.h>
-#endif
-
-#include "findme.h"
-
-char * findProgramPath(char * argv0) {
-    char * path = getenv("PATH");
-    char * pathbuf;
-    char * start, * chptr;
-    char * buf;
-
-    /* If there is a / in the argv[0], it has to be an absolute
-       path */
-    if (strchr(argv0, '/'))
-       return g_strdup(argv0);
-
-    if (!path) return NULL;
-
-    start = pathbuf = g_strdup(path);
-    buf = g_malloc(strlen(path) + strlen(argv0) + 2);
-
-    chptr = NULL;
-    do {
-       if ((chptr = strchr(start, ':')))
-           *chptr = '\0';
-       sprintf(buf, "%s/%s", start, argv0);
-
-#ifndef WIN32
-        if (!access(buf, X_OK)) {
-            g_free(pathbuf);
-           return buf;
-        }
-#endif
-
-       if (chptr) 
-           start = chptr + 1;
-       else
-           start = NULL;
-    } while (start && *start);
-
-    g_free(pathbuf);
-    free(buf);
-
-    return NULL;
-}
diff --git a/apps/irssi/src/lib-popt/findme.h b/apps/irssi/src/lib-popt/findme.h
deleted file mode 100644 (file)
index fdd01d5..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-/* (C) 1998 Red Hat Software, Inc. -- Licensing details are in the COPYING
-   file accompanying popt source distributions, available from 
-   ftp://ftp.redhat.com/pub/code/popt */
-
-#ifndef H_FINDME
-#define H_FINDME
-
-char * findProgramPath(char * argv0);
-
-#endif
diff --git a/apps/irssi/src/lib-popt/popt.c b/apps/irssi/src/lib-popt/popt.c
deleted file mode 100644 (file)
index a23ae8a..0000000
+++ /dev/null
@@ -1,594 +0,0 @@
-/* (C) 1998 Red Hat Software, Inc. -- Licensing details are in the COPYING
-   file accompanying popt source distributions, available from 
-   ftp://ftp.redhat.com/pub/code/popt */
-
-#include "common.h"
-
-#include "findme.h"
-#include "popt.h"
-#include "poptint.h"
-
-void poptSetExecPath(poptContext con, const char * path, int allowAbsolute) {
-    if (con->execPath) free(con->execPath);
-    con->execPath = g_strdup(path);
-    con->execAbsolute = allowAbsolute;
-}
-
-static void invokeCallbacks(poptContext con, const struct poptOption * table,
-                           int post) {
-    const struct poptOption * opt = table;
-    poptCallbackType cb;
-    
-    while (opt->longName || opt->shortName || opt->arg) {
-       if ((opt->argInfo & POPT_ARG_MASK) == POPT_ARG_INCLUDE_TABLE) {
-           invokeCallbacks(con, opt->arg, post);
-       } else if (((opt->argInfo & POPT_ARG_MASK) == POPT_ARG_CALLBACK) &&
-                  ((!post && (opt->argInfo & POPT_CBFLAG_PRE)) ||
-                   ( post && (opt->argInfo & POPT_CBFLAG_POST)))) {
-           cb = (poptCallbackType)opt->arg;
-           cb(con, post ? POPT_CALLBACK_REASON_POST : POPT_CALLBACK_REASON_PRE,
-              NULL, NULL, opt->descrip);
-       }
-       opt++;
-    }
-}
-
-poptContext poptGetContext(char * name, int argc, char ** argv, 
-                          const struct poptOption * options, int flags) {
-    poptContext con = malloc(sizeof(*con));
-
-    memset(con, 0, sizeof(*con));
-
-    con->os = con->optionStack;
-    con->os->argc = argc;
-    con->os->argv = argv;
-
-    if (!(flags & POPT_CONTEXT_KEEP_FIRST))
-       con->os->next = 1;                      /* skip argv[0] */
-
-    con->leftovers = malloc(sizeof(char *) * (argc + 1));
-    con->options = options;
-    con->finalArgv = malloc(sizeof(*con->finalArgv) * (argc * 2));
-    con->finalArgvAlloced = argc * 2;
-    con->flags = flags;
-    con->execAbsolute = 1;
-
-    if (getenv("POSIXLY_CORRECT") || getenv("POSIX_ME_HARDER"))
-       con->flags |= POPT_CONTEXT_POSIXMEHARDER;
-    
-    if (name)
-       con->appName = strcpy(malloc(strlen(name) + 1), name);
-
-    invokeCallbacks(con, con->options, 0);
-
-    return con;
-}
-
-void poptResetContext(poptContext con) {
-    int i;
-
-    con->os = con->optionStack;
-    con->os->currAlias = NULL;
-    con->os->nextCharArg = NULL;
-    con->os->nextArg = NULL;
-    con->os->next = 1;                 /* skip argv[0] */
-
-    con->numLeftovers = 0;
-    con->nextLeftover = 0;
-    con->restLeftover = 0;
-    con->doExec = NULL;
-
-    for (i = 0; i < con->finalArgvCount; i++)
-       free(con->finalArgv[i]);
-
-    con->finalArgvCount = 0;
-}
-
-/* Only one of longName, shortName may be set at a time */
-static int handleExec(poptContext con, char * longName, char shortName) {
-    int i;
-
-    i = con->numExecs - 1;
-    if (longName) {
-       while (i >= 0 && (!con->execs[i].longName ||
-           strcmp(con->execs[i].longName, longName))) i--;
-    } else {
-       while (i >= 0 &&
-           con->execs[i].shortName != shortName) i--;
-    }
-
-    if (i < 0) return 0;
-
-    if (con->flags & POPT_CONTEXT_NO_EXEC)
-       return 1;
-
-    if (!con->doExec) {
-       con->doExec = con->execs + i;
-       return 1;
-    }
-
-    /* We already have an exec to do; remember this option for next
-       time 'round */
-    if ((con->finalArgvCount + 1) >= (con->finalArgvAlloced)) {
-       con->finalArgvAlloced += 10;
-       con->finalArgv = realloc(con->finalArgv,
-                       sizeof(*con->finalArgv) * con->finalArgvAlloced);
-    }
-
-    i = con->finalArgvCount++;
-    con->finalArgv[i] = malloc((longName ? strlen(longName) : 0) + 3);
-    if (longName)
-       sprintf(con->finalArgv[i], "--%s", longName);
-    else 
-       sprintf(con->finalArgv[i], "-%c", shortName);
-
-    return 1;
-}
-
-/* Only one of longName, shortName may be set at a time */
-static int handleAlias(poptContext con, char * longName, char shortName,
-                      char * nextCharArg) {
-    int i;
-
-    if (con->os->currAlias && con->os->currAlias->longName && longName &&
-       !strcmp(con->os->currAlias->longName, longName)) 
-       return 0;
-    if (con->os->currAlias && shortName && 
-           shortName == con->os->currAlias->shortName)
-       return 0;
-
-    i = con->numAliases - 1;
-    if (longName) {
-       while (i >= 0 && (!con->aliases[i].longName ||
-           strcmp(con->aliases[i].longName, longName))) i--;
-    } else {
-       while (i >= 0 &&
-           con->aliases[i].shortName != shortName) i--;
-    }
-
-    if (i < 0) return 0;
-
-    if ((con->os - con->optionStack + 1) 
-           == POPT_OPTION_DEPTH)
-       return POPT_ERROR_OPTSTOODEEP;
-
-    if (nextCharArg && *nextCharArg)
-       con->os->nextCharArg = nextCharArg;
-
-    con->os++;
-    con->os->next = 0;
-    con->os->stuffed = 0;
-    con->os->nextArg = con->os->nextCharArg = NULL;
-    con->os->currAlias = con->aliases + i;
-    con->os->argc = con->os->currAlias->argc;
-    con->os->argv = con->os->currAlias->argv;
-
-    return 1;
-}
-
-static void execCommand(poptContext con) {
-    char ** argv;
-    int pos = 0;
-    char * script = con->doExec->script;
-
-    argv = malloc(sizeof(*argv) * 
-                       (6 + con->numLeftovers + con->finalArgvCount));
-
-    if (!con->execAbsolute && strchr(script, '/')) return;
-
-    if (!strchr(script, '/') && con->execPath) {
-       argv[pos] = g_strdup_printf("%s/%s", con->execPath, script);
-    } else {
-       argv[pos] = script;
-    }
-    pos++;
-
-    argv[pos] = findProgramPath(con->os->argv[0]);
-    if (argv[pos]) pos++;
-    argv[pos++] = ";";
-
-    memcpy(argv + pos, con->finalArgv, sizeof(*argv) * con->finalArgvCount);
-    pos += con->finalArgvCount;
-
-    if (con->numLeftovers) {
-       argv[pos++] = "--";
-       memcpy(argv + pos, con->leftovers, sizeof(*argv) * con->numLeftovers);
-       pos += con->numLeftovers;
-    }
-
-    argv[pos++] = NULL;
-
-#ifdef __hpux
-    setresuid(getuid(), getuid(),-1);
-#else
-/*
- * XXX " ... on BSD systems setuid() should be preferred over setreuid()"
- * XXX         sez' Timur Bakeyev <mc@bat.ru>
- * XXX from Norbert Warmuth <nwarmuth@privat.circular.de>
- */
-#if defined(HAVE_SETUID)
-    setuid(getuid());
-#elif defined (HAVE_SETREUID)
-    setreuid(getuid(), getuid()); /*hlauer: not portable to hpux9.01 */
-#else
-    ; /* Can't drop privileges */
-#endif
-#endif
-
-    execvp(argv[0], argv);
-}
-
-static const struct poptOption * findOption(const struct poptOption * table,
-                                           const char * longName,
-                                           char shortName,
-                                           poptCallbackType * callback,
-                                           void ** callbackData,
-                                           int singleDash) {
-    const struct poptOption * opt = table;
-    const struct poptOption * opt2;
-    const struct poptOption * cb = NULL;
-
-    /* This happens when a single - is given */
-    if (singleDash && !shortName && !*longName)
-       shortName = '-';
-
-    while (opt->longName || opt->shortName || opt->arg) {
-       if ((opt->argInfo & POPT_ARG_MASK) == POPT_ARG_INCLUDE_TABLE) {
-           opt2 = findOption(opt->arg, longName, shortName, callback, 
-                             callbackData, singleDash);
-           if (opt2) {
-               if (*callback && !*callbackData)
-                   *callbackData = opt->descrip;
-               return opt2;
-           }
-       } else if ((opt->argInfo & POPT_ARG_MASK) == POPT_ARG_CALLBACK) {
-           cb = opt;
-       } else if (longName && opt->longName && 
-                  (!singleDash || (opt->argInfo & POPT_ARGFLAG_ONEDASH)) &&
-                  !strcmp(longName, opt->longName)) {
-           break;
-       } else if (shortName && shortName == opt->shortName) {
-           break;
-       }
-       opt++;
-    }
-
-    if (!opt->longName && !opt->shortName) return NULL;
-    *callbackData = NULL;
-    *callback = NULL;
-    if (cb) {
-       *callback = (poptCallbackType)cb->arg;
-       if (!(cb->argInfo & POPT_CBFLAG_INC_DATA))
-           *callbackData = cb->descrip;
-    }
-
-    return opt;
-}
-
-/* returns 'val' element, -1 on last item, POPT_ERROR_* on error */
-int poptGetNextOpt(poptContext con) {
-    char * optString, * chptr, * localOptString;
-    char * longArg = NULL;
-    char * origOptString, *dup;
-    long aLong;
-    char * end;
-    const struct poptOption * opt = NULL;
-    int done = 0;
-    int i;
-    poptCallbackType cb;
-    void * cbData;
-    int singleDash;
-
-    dup = NULL;
-    while (!done) {
-        if (dup) {
-            g_free(dup);
-            dup = NULL;
-        }
-       while (!con->os->nextCharArg && con->os->next == con->os->argc 
-               && con->os > con->optionStack)
-           con->os--;
-       if (!con->os->nextCharArg && con->os->next == con->os->argc) {
-           invokeCallbacks(con, con->options, 1);
-           if (con->doExec) execCommand(con);
-           return -1;
-       }
-
-       if (!con->os->nextCharArg) {
-               
-           origOptString = con->os->argv[con->os->next++];
-
-           if (con->restLeftover || *origOptString != '-') {
-               con->leftovers[con->numLeftovers++] = origOptString;
-               if (con->flags & POPT_CONTEXT_POSIXMEHARDER)
-                   con->restLeftover = 1;
-               continue;
-           }
-
-           /* Make a copy we can hack at */
-           dup = localOptString = optString =
-                       g_strdup(origOptString);
-
-            if (!optString[0]) {
-                g_free(dup);
-               return POPT_ERROR_BADOPT;
-            }
-
-           if (optString[1] == '-' && !optString[2]) {
-               con->restLeftover = 1;
-               continue;
-           } else {
-               optString++;
-               if (*optString == '-')
-                   singleDash = 0, optString++;
-               else
-                   singleDash = 1;
-
-               if (handleAlias(con, optString, '\0', NULL))
-                   continue;
-               if (handleExec(con, optString, '\0'))
-                   continue;
-
-               chptr = optString;
-               while (*chptr && *chptr != '=') chptr++;
-               if (*chptr == '=') {
-                   longArg = origOptString + (chptr - localOptString) + 1;
-                   *chptr = '\0';
-               }
-
-               opt = findOption(con->options, optString, '\0', &cb, &cbData,
-                                singleDash);
-                if (!opt && !singleDash) {
-                    g_free(dup);
-                    return POPT_ERROR_BADOPT;
-                }
-           }
-
-           if (!opt)
-               con->os->nextCharArg = origOptString + 1;
-       }
-
-       if (con->os->nextCharArg) {
-           origOptString = con->os->nextCharArg;
-
-           con->os->nextCharArg = NULL;
-
-           if (handleAlias(con, NULL, *origOptString,
-                           origOptString + 1)) {
-               origOptString++;
-               continue;
-           }
-           if (handleExec(con, NULL, *origOptString))
-               continue;
-
-           opt = findOption(con->options, NULL, *origOptString, &cb, 
-                            &cbData, 0);
-            if (!opt) {
-                g_free(dup);
-                return POPT_ERROR_BADOPT;
-            }
-           origOptString++;
-           if (*origOptString)
-               con->os->nextCharArg = origOptString;
-       }
-
-       if (opt->arg && (opt->argInfo & POPT_ARG_MASK) == POPT_ARG_NONE) {
-           *((int *)opt->arg) = 1;
-       } else if ((opt->argInfo & POPT_ARG_MASK) == POPT_ARG_VAL) {
-           if (opt->arg) *((int *) opt->arg) = opt->val;
-       } else if ((opt->argInfo & POPT_ARG_MASK) != POPT_ARG_NONE) {
-           if (longArg) {
-               con->os->nextArg = longArg;
-           } else if (con->os->nextCharArg) {
-               con->os->nextArg = con->os->nextCharArg;
-               con->os->nextCharArg = NULL;
-           } else { 
-               while (con->os->next == con->os->argc && 
-                      con->os > con->optionStack)
-                   con->os--;
-                if (con->os->next == con->os->argc) {
-                    g_free(dup);
-                   return POPT_ERROR_NOARG;
-                }
-
-               con->os->nextArg = con->os->argv[con->os->next++];
-           }
-
-           if (opt->arg) {
-               switch (opt->argInfo & POPT_ARG_MASK) {
-                 case POPT_ARG_STRING:
-                   *((char **) opt->arg) = con->os->nextArg;
-                   break;
-
-                 case POPT_ARG_INT:
-                 case POPT_ARG_LONG:
-                   aLong = strtol(con->os->nextArg, &end, 0);
-                    if (!(end && *end == '\0')) {
-                        g_free(dup);
-                       return POPT_ERROR_BADNUMBER;
-                    }
-
-                    if (aLong == LONG_MIN || aLong == LONG_MAX) {
-                        g_free(dup);
-                       return POPT_ERROR_OVERFLOW;
-                    }
-                   if ((opt->argInfo & POPT_ARG_MASK) == POPT_ARG_LONG) {
-                       *((long *) opt->arg) = aLong;
-                   } else {
-                        if (aLong > INT_MAX || aLong < INT_MIN) {
-                            g_free(dup);
-                           return POPT_ERROR_OVERFLOW;
-                        }
-                       *((int *) opt->arg) =aLong;
-                   }
-                   break;
-
-                 default:
-                   fprintf(stdout, POPT_("option type (%d) not implemented in popt\n"),
-                     opt->argInfo & POPT_ARG_MASK);
-                   exit(1);
-               }
-           }
-       }
-
-       if (cb)
-           cb(con, POPT_CALLBACK_REASON_OPTION, opt, con->os->nextArg, cbData);
-       else if (opt->val && ((opt->argInfo & POPT_ARG_MASK) != POPT_ARG_VAL))
-           done = 1;
-
-       if ((con->finalArgvCount + 2) >= (con->finalArgvAlloced)) {
-           con->finalArgvAlloced += 10;
-           con->finalArgv = realloc(con->finalArgv,
-                           sizeof(*con->finalArgv) * con->finalArgvAlloced);
-       }
-
-       i = con->finalArgvCount++;
-       con->finalArgv[i] = 
-               malloc((opt->longName ? strlen(opt->longName) : 0) + 3);
-       if (opt->longName)
-           sprintf(con->finalArgv[i], "--%s", opt->longName);
-       else 
-           sprintf(con->finalArgv[i], "-%c", opt->shortName);
-
-       if (opt->arg && (opt->argInfo & POPT_ARG_MASK) != POPT_ARG_NONE
-                    && (opt->argInfo & POPT_ARG_MASK) != POPT_ARG_VAL) 
-           con->finalArgv[con->finalArgvCount++] =
-               strcpy(malloc(strlen(con->os->nextArg)+1), con->os->nextArg);
-    }
-
-    if (dup) g_free(dup);
-    return opt->val;
-}
-
-char * poptGetOptArg(poptContext con) {
-    char * ret = con->os->nextArg;
-    con->os->nextArg = NULL;
-    return ret;
-}
-
-char * poptGetArg(poptContext con) {
-    if (con->numLeftovers == con->nextLeftover) return NULL;
-    return (con->leftovers[con->nextLeftover++]);
-}
-
-char * poptPeekArg(poptContext con) {
-    if (con->numLeftovers == con->nextLeftover) return NULL;
-    return (con->leftovers[con->nextLeftover]);
-}
-
-char ** poptGetArgs(poptContext con) {
-    if (con->numLeftovers == con->nextLeftover) return NULL;
-
-    /* some apps like [like RPM ;-) ] need this NULL terminated */
-    con->leftovers[con->numLeftovers] = NULL;
-
-    return (con->leftovers + con->nextLeftover);
-}
-
-void poptFreeContext(poptContext con) {
-    int i;
-
-    for (i = 0; i < con->numAliases; i++) {
-       if (con->aliases[i].longName) free(con->aliases[i].longName);
-       free(con->aliases[i].argv);
-    }
-
-    for (i = 0; i < con->numExecs; i++) {
-       if (con->execs[i].longName) free(con->execs[i].longName);
-       free(con->execs[i].script);
-    }
-
-    for (i = 0; i < con->finalArgvCount; i++)
-       free(con->finalArgv[i]);
-
-    free(con->leftovers);
-    free(con->finalArgv);
-    if (con->appName) free(con->appName);
-    if (con->aliases) free(con->aliases);
-    if (con->otherHelp) free(con->otherHelp);
-    if (con->execPath) free(con->execPath);
-    free(con);
-}
-
-int poptAddAlias(poptContext con, struct poptAlias newAlias, int flags) {
-    int aliasNum = con->numAliases++;
-    struct poptAlias * alias;
-
-    /* SunOS won't realloc(NULL, ...) */
-    if (!con->aliases)
-       con->aliases = malloc(sizeof(newAlias) * con->numAliases);
-    else
-       con->aliases = realloc(con->aliases, 
-                              sizeof(newAlias) * con->numAliases);
-    alias = con->aliases + aliasNum;
-    
-    *alias = newAlias;
-    if (alias->longName)
-       alias->longName = strcpy(malloc(strlen(alias->longName) + 1), 
-                                   alias->longName);
-    else
-       alias->longName = NULL;
-
-    return 0;
-}
-
-char * poptBadOption(poptContext con, int flags) {
-    struct optionStackEntry * os;
-
-    if (flags & POPT_BADOPTION_NOALIAS)
-       os = con->optionStack;
-    else
-       os = con->os;
-
-    return os->argv[os->next - 1];
-}
-
-#define POPT_ERROR_NOARG       -10
-#define POPT_ERROR_BADOPT      -11
-#define POPT_ERROR_OPTSTOODEEP -13
-#define POPT_ERROR_BADQUOTE    -15     /* only from poptParseArgString() */
-#define POPT_ERROR_ERRNO       -16     /* only from poptParseArgString() */
-
-const char * poptStrerror(const int error) {
-    switch (error) {
-      case POPT_ERROR_NOARG:
-       return POPT_("missing argument");
-      case POPT_ERROR_BADOPT:
-       return POPT_("unknown option");
-      case POPT_ERROR_OPTSTOODEEP:
-       return POPT_("aliases nested too deeply");
-      case POPT_ERROR_BADQUOTE:
-       return POPT_("error in paramter quoting");
-      case POPT_ERROR_BADNUMBER:
-       return POPT_("invalid numeric value");
-      case POPT_ERROR_OVERFLOW:
-       return POPT_("number too large or too small");
-      case POPT_ERROR_ERRNO:
-       return strerror(errno);
-      default:
-       return POPT_("unknown error");
-    }
-}
-
-int poptStuffArgs(poptContext con, char ** argv) {
-    int i;
-
-    if ((con->os - con->optionStack) == POPT_OPTION_DEPTH)
-       return POPT_ERROR_OPTSTOODEEP;
-
-    for (i = 0; argv[i]; i++);
-
-    con->os++;
-    con->os->next = 0;
-    con->os->nextArg = con->os->nextCharArg = NULL;
-    con->os->currAlias = NULL;
-    con->os->argc = i;
-    con->os->argv = argv;
-    con->os->stuffed = 1;
-
-    return 0;
-}
-
-const char * poptGetInvocationName(poptContext con) {
-    return con->os->argv[0];
-}
diff --git a/apps/irssi/src/lib-popt/popt.h b/apps/irssi/src/lib-popt/popt.h
deleted file mode 100644 (file)
index 2fea9e8..0000000
+++ /dev/null
@@ -1,123 +0,0 @@
-/* (C) 1998 Red Hat Software, Inc. -- Licensing details are in the COPYING
-   file accompanying popt source distributions, available from 
-   ftp://ftp.redhat.com/pub/code/popt */
-
-#ifndef H_POPT
-#define H_POPT
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include <stdio.h>                     /* for FILE * */
-
-#define POPT_OPTION_DEPTH      10
-
-#define POPT_ARG_NONE          0
-#define POPT_ARG_STRING                1
-#define POPT_ARG_INT           2
-#define POPT_ARG_LONG          3
-#define POPT_ARG_INCLUDE_TABLE 4       /* arg points to table */
-#define POPT_ARG_CALLBACK      5       /* table-wide callback... must be
-                                          set first in table; arg points 
-                                          to callback, descrip points to 
-                                          callback data to pass */
-#define POPT_ARG_INTL_DOMAIN    6       /* set the translation domain
-                                          for this table and any
-                                          included tables; arg points
-                                          to the domain string */
-#define POPT_ARG_VAL           7       /* arg should take value val */
-#define POPT_ARG_MASK          0x0000FFFF
-#define POPT_ARGFLAG_ONEDASH   0x80000000  /* allow -longoption */
-#define POPT_ARGFLAG_DOC_HIDDEN 0x40000000  /* don't show in help/usage */
-#define POPT_CBFLAG_PRE                0x80000000  /* call the callback before parse */
-#define POPT_CBFLAG_POST       0x40000000  /* call the callback after parse */
-#define POPT_CBFLAG_INC_DATA   0x20000000  /* use data from the include line,
-                                              not the subtable */
-
-#define POPT_ERROR_NOARG       -10
-#define POPT_ERROR_BADOPT      -11
-#define POPT_ERROR_OPTSTOODEEP -13
-#define POPT_ERROR_BADQUOTE    -15     /* only from poptParseArgString() */
-#define POPT_ERROR_ERRNO       -16     /* only from poptParseArgString() */
-#define POPT_ERROR_BADNUMBER   -17
-#define POPT_ERROR_OVERFLOW    -18
-
-/* poptBadOption() flags */
-#define POPT_BADOPTION_NOALIAS  (1 << 0)  /* don't go into an alias */
-
-/* poptGetContext() flags */
-#define POPT_CONTEXT_NO_EXEC   (1 << 0)  /* ignore exec expansions */
-#define POPT_CONTEXT_KEEP_FIRST        (1 << 1)  /* pay attention to argv[0] */
-#define POPT_CONTEXT_POSIXMEHARDER (1 << 2) /* options can't follow args */
-
-struct poptOption {
-    const char * longName;     /* may be NULL */
-    char shortName;            /* may be '\0' */
-    int argInfo;
-    void * arg;                        /* depends on argInfo */
-    int val;                   /* 0 means don't return, just update flag */
-    char * descrip;            /* description for autohelp -- may be NULL */
-    char * argDescrip;         /* argument description for autohelp */
-};
-
-struct poptAlias {
-    char * longName;           /* may be NULL */
-    char shortName;            /* may be '\0' */
-    int argc;
-    char ** argv;              /* must be free()able */
-};
-
-extern struct poptOption poptHelpOptions[];
-#define POPT_AUTOHELP { NULL, '\0', POPT_ARG_INCLUDE_TABLE, poptHelpOptions, \
-                       0, "Help options", NULL },
-
-typedef struct poptContext_s * poptContext;
-#ifndef __cplusplus
-typedef struct poptOption * poptOption;
-#endif
-
-enum poptCallbackReason { POPT_CALLBACK_REASON_PRE, 
-                         POPT_CALLBACK_REASON_POST,
-                         POPT_CALLBACK_REASON_OPTION };
-typedef void (*poptCallbackType)(poptContext con, 
-                                enum poptCallbackReason reason,
-                                const struct poptOption * opt,
-                                const char * arg, void * data);
-
-poptContext poptGetContext(char * name, int argc, char ** argv, 
-                          const struct poptOption * options, int flags);
-void poptResetContext(poptContext con);
-
-/* returns 'val' element, -1 on last item, POPT_ERROR_* on error */
-int poptGetNextOpt(poptContext con);
-/* returns NULL if no argument is available */
-char * poptGetOptArg(poptContext con);
-/* returns NULL if no more options are available */
-char * poptGetArg(poptContext con);
-char * poptPeekArg(poptContext con);
-char ** poptGetArgs(poptContext con);
-/* returns the option which caused the most recent error */
-char * poptBadOption(poptContext con, int flags);
-void poptFreeContext(poptContext con);
-int poptStuffArgs(poptContext con, char ** argv);
-int poptAddAlias(poptContext con, struct poptAlias alias, int flags);
-int poptReadConfigFile(poptContext con, char * fn);
-/* like above, but reads /etc/popt and $HOME/.popt along with environment 
-   vars */
-int poptReadDefaultConfig(poptContext con, int useEnv);
-/* argv should be freed -- this allows ', ", and \ quoting, but ' is treated
-   the same as " and both may include \ quotes */
-int poptParseArgvString(const char * s, int * argcPtr, char *** argvPtr);
-const char * poptStrerror(const int error);
-void poptSetExecPath(poptContext con, const char * path, int allowAbsolute);
-void poptPrintHelp(poptContext con, FILE * f, int flags);
-void poptPrintUsage(poptContext con, FILE * f, int flags);
-void poptSetOtherOptionHelp(poptContext con, const char * text);
-const char * poptGetInvocationName(poptContext con);
-
-#ifdef  __cplusplus
-}
-#endif
-
-#endif
diff --git a/apps/irssi/src/lib-popt/poptconfig.c b/apps/irssi/src/lib-popt/poptconfig.c
deleted file mode 100644 (file)
index 835798a..0000000
+++ /dev/null
@@ -1,144 +0,0 @@
-/* (C) 1998 Red Hat Software, Inc. -- Licensing details are in the COPYING
-   file accompanying popt source distributions, available from 
-   ftp://ftp.redhat.com/pub/code/popt */
-
-#include "common.h"
-
-#include "popt.h"
-#include "poptint.h"
-
-static void configLine(poptContext con, char * line) {
-    int nameLength = strlen(con->appName);
-    char * opt;
-    struct poptAlias alias;
-    char * entryType;
-    char * longName = NULL;
-    char shortName = '\0';
-    
-    if (strncmp(line, con->appName, nameLength)) return;
-    line += nameLength;
-    if (!*line || !i_isspace(*line)) return;
-    while (*line && i_isspace(*line)) line++;
-    entryType = line;
-
-    while (!*line || !i_isspace(*line)) line++;
-    *line++ = '\0';
-    while (*line && i_isspace(*line)) line++;
-    if (!*line) return;
-    opt = line;
-
-    while (!*line || !i_isspace(*line)) line++;
-    *line++ = '\0';
-    while (*line && i_isspace(*line)) line++;
-    if (!*line) return;
-
-    if (opt[0] == '-' && opt[1] == '-')
-       longName = opt + 2;
-    else if (opt[0] == '-' && !opt[2])
-       shortName = opt[1];
-
-    if (!strcmp(entryType, "alias")) {
-       if (poptParseArgvString(line, &alias.argc, &alias.argv)) return;
-       alias.longName = longName, alias.shortName = shortName;
-       poptAddAlias(con, alias, 0);
-    } else if (!strcmp(entryType, "exec")) {
-       con->execs = realloc(con->execs, 
-                               sizeof(*con->execs) * (con->numExecs + 1));
-       if (longName)
-           con->execs[con->numExecs].longName = g_strdup(longName);
-       else
-           con->execs[con->numExecs].longName = NULL;
-
-       con->execs[con->numExecs].shortName = shortName;
-       con->execs[con->numExecs].script = g_strdup(line);
-       
-       con->numExecs++;
-    }
-}
-
-int poptReadConfigFile(poptContext con, char * fn) {
-    char * file, * chptr, * end;
-    char * buf, * dst;
-    int fd, rc;
-    int fileLength;
-
-    fd = open(fn, O_RDONLY);
-    if (fd < 0) {
-       if (errno == ENOENT)
-           return 0;
-       else 
-           return POPT_ERROR_ERRNO;
-    }
-
-    fileLength = lseek(fd, 0, SEEK_END);
-    lseek(fd, 0, 0);
-
-    file = malloc(fileLength + 1);
-    if (read(fd, file, fileLength) != fileLength) {
-       rc = errno;
-       close(fd);
-       errno = rc;
-        free(file);
-       return POPT_ERROR_ERRNO;
-    }
-    close(fd);
-
-    dst = buf = malloc(fileLength + 1);
-
-    chptr = file;
-    end = (file + fileLength);
-    while (chptr < end) {
-       switch (*chptr) {
-         case '\n':
-           *dst = '\0';
-           dst = buf;
-           while (*dst && i_isspace(*dst)) dst++;
-           if (*dst && *dst != '#') {
-               configLine(con, dst);
-           }
-           chptr++;
-           break;
-         case '\\':
-           *dst++ = *chptr++;
-           if (chptr < end) {
-               if (*chptr == '\n') 
-                   dst--, chptr++;     
-                   /* \ at the end of a line does not insert a \n */
-               else
-                   *dst++ = *chptr++;
-           }
-           break;
-         default:
-           *dst++ = *chptr++;
-       }
-    }
-
-    free(buf);
-    free(file);
-    return 0;
-}
-
-int poptReadDefaultConfig(poptContext con, int useEnv) {
-    char * fn, * home;
-    int rc;
-
-    if (!con->appName) return 0;
-
-    rc = poptReadConfigFile(con, "/etc/popt");
-    if (rc) return rc;
-#ifndef WIN32
-    if (getuid() != geteuid()) return 0;
-#endif
-
-    if ((home = getenv("HOME"))) {
-       fn = malloc(strlen(home) + 20);
-       strcpy(fn, home);
-       strcat(fn, "/.popt");
-       rc = poptReadConfigFile(con, fn);
-        free(fn);
-       if (rc) return rc;
-    }
-
-    return 0;
-}
-
diff --git a/apps/irssi/src/lib-popt/popthelp.c b/apps/irssi/src/lib-popt/popthelp.c
deleted file mode 100644 (file)
index 15ed2d9..0000000
+++ /dev/null
@@ -1,301 +0,0 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 4 -*- */
-
-/* (C) 1998 Red Hat Software, Inc. -- Licensing details are in the COPYING
-   file accompanying popt source distributions, available from 
-   ftp://ftp.redhat.com/pub/code/popt */
-
-#include "common.h"
-
-#include "popt.h"
-#include "poptint.h"
-
-static void displayArgs(poptContext con, enum poptCallbackReason foo, 
-                       struct poptOption * key, 
-                       const char * arg, void * data) {
-    if (key->shortName== '?')
-       poptPrintHelp(con, stdout, 0);
-    else
-       poptPrintUsage(con, stdout, 0);
-    exit(0);
-}
-
-struct poptOption poptHelpOptions[] = {
-    { NULL, '\0', POPT_ARG_CALLBACK, (void *)&displayArgs, '\0', NULL },
-    { "help", '?', 0, NULL, '?', "Show this help message" },
-    { "usage", '\0', 0, NULL, 'u', "Display brief usage message" },
-    { NULL, '\0', 0, NULL, 0 }
-} ;
-
-
-static const char *
-getTableTranslationDomain(const struct poptOption *table)
-{
-  const struct poptOption *opt;
-
-  for(opt = table;
-      opt->longName || opt->shortName || opt->arg;
-      opt++) {
-    if(opt->argInfo == POPT_ARG_INTL_DOMAIN)
-      return opt->arg;
-  }
-
-  return NULL;
-}
-
-static const char * getArgDescrip(const struct poptOption * opt,
-                                 const char *translation_domain) {
-    if (!(opt->argInfo & POPT_ARG_MASK)) return NULL;
-
-    if (opt == (poptHelpOptions + 1) || opt == (poptHelpOptions + 2))
-       if (opt->argDescrip) return POPT_(opt->argDescrip);
-
-    if (opt->argDescrip) return D_(translation_domain, opt->argDescrip);
-    return POPT_("ARG");
-}
-
-static void singleOptionHelp(FILE * f, int maxLeftCol, 
-                            const struct poptOption * opt,
-                            const char *translation_domain) {
-    int indentLength = maxLeftCol + 5;
-    int lineLength = 79 - indentLength;
-    const char * help = D_(translation_domain, opt->descrip);
-    int helpLength;
-    const char * ch;
-    char format[10];
-    char * left = malloc(maxLeftCol + 1);
-    const char * argDescrip = getArgDescrip(opt, translation_domain);
-
-    *left = '\0';
-    if (opt->longName && opt->shortName)
-       sprintf(left, "-%c, --%s", opt->shortName, opt->longName);
-    else if (opt->shortName) 
-       sprintf(left, "-%c", opt->shortName);
-    else if (opt->longName)
-       sprintf(left, "--%s", opt->longName);
-    if (!*left) {
-        free(left);
-        return;
-    }
-    if (argDescrip) {
-       strcat(left, "=");
-       strcat(left, argDescrip);
-    }
-
-    if (help)
-       fprintf(f,"  %-*s   ", maxLeftCol, left);
-    else {
-       fprintf(f,"  %s\n", left); 
-        free(left);
-       return;
-    }
-
-    free(left);
-
-    helpLength = strlen(help);
-    while (helpLength > lineLength) {
-       ch = help + lineLength - 1;
-       while (ch > help && !i_isspace(*ch)) ch--;
-       if (ch == help) break;          /* give up */
-       while (ch > (help + 1) && i_isspace(*ch)) ch--;
-       ch++;
-
-       sprintf(format, "%%.%ds\n%%%ds", (int) (ch - help), indentLength);
-       fprintf(f, format, help, " ");
-       help = ch;
-       while (i_isspace(*help) && *help) help++;
-       helpLength = strlen(help);
-    }
-
-    if (helpLength) fprintf(f, "%s\n", help);
-}
-
-static int maxArgWidth(const struct poptOption * opt,
-                      const char * translation_domain) {
-    int max = 0;
-    int this;
-    const char * s;
-    
-    while (opt->longName || opt->shortName || opt->arg) {
-       if ((opt->argInfo & POPT_ARG_MASK) == POPT_ARG_INCLUDE_TABLE) {
-           this = maxArgWidth(opt->arg, translation_domain);
-           if (this > max) max = this;
-       } else if (!(opt->argInfo & POPT_ARGFLAG_DOC_HIDDEN)) {
-           this = opt->shortName ? 2 : 0;
-           if (opt->longName) {
-               if (this) this += 2;
-               this += strlen(opt->longName) + 2;
-           }
-
-           s = getArgDescrip(opt, translation_domain);
-           if (s)
-               this += strlen(s) + 1;
-           if (this > max) max = this;
-       }
-
-       opt++;
-    }
-    
-    return max;
-}
-
-static void singleTableHelp(FILE * f, const struct poptOption * table, 
-                           int left,
-                           const char *translation_domain) {
-    const struct poptOption * opt;
-    const char *sub_transdom;
-
-    opt = table;
-    while (opt->longName || opt->shortName || opt->arg) {
-       if ((opt->longName || opt->shortName) && 
-           !(opt->argInfo & POPT_ARGFLAG_DOC_HIDDEN))
-           singleOptionHelp(f, left, opt, translation_domain);
-       opt++;
-    }
-
-    opt = table;
-    while (opt->longName || opt->shortName || opt->arg) {
-       if ((opt->argInfo & POPT_ARG_MASK) == POPT_ARG_INCLUDE_TABLE) {
-           sub_transdom = getTableTranslationDomain(opt->arg);
-           if(!sub_transdom)
-               sub_transdom = translation_domain;
-           
-           if (opt->descrip)
-               fprintf(f, "\n%s\n", D_(sub_transdom, opt->descrip));
-
-           singleTableHelp(f, opt->arg, left, sub_transdom);
-       }
-       opt++;
-    }
-}
-
-static int showHelpIntro(poptContext con, FILE * f) {
-    int len = 6;
-    char * fn;
-
-    fprintf(f, POPT_("Usage:"));
-    if (!(con->flags & POPT_CONTEXT_KEEP_FIRST)) {
-       fn = con->optionStack->argv[0];
-       if (strrchr(fn, '/')) fn = strrchr(fn, '/') + 1;
-       fprintf(f, " %s", fn);
-       len += strlen(fn) + 1;
-    }
-
-    return len;
-}
-
-void poptPrintHelp(poptContext con, FILE * f, int flags) {
-    int leftColWidth;
-
-    showHelpIntro(con, f);
-    if (con->otherHelp)
-       fprintf(f, " %s\n", con->otherHelp);
-    else
-       fprintf(f, " %s\n", POPT_("[OPTION...]"));
-
-    leftColWidth = maxArgWidth(con->options, NULL);
-    singleTableHelp(f, con->options, leftColWidth, NULL);
-}
-
-static int singleOptionUsage(FILE * f, int cursor, 
-                            const struct poptOption * opt,
-                            const char *translation_domain) {
-    int len = 3;
-    char shortStr[2];
-    const char * item = shortStr;
-    const char * argDescrip = getArgDescrip(opt, translation_domain);
-
-    if (opt->shortName) {
-       if (!(opt->argInfo & POPT_ARG_MASK)) 
-           return cursor;      /* we did these already */
-       len++;
-       *shortStr = opt->shortName;
-       shortStr[1] = '\0';
-    } else if (opt->longName) {
-       len += 1 + strlen(opt->longName);
-       item = opt->longName;
-    }
-
-    if (len == 3) return cursor;
-
-    if (argDescrip) 
-       len += strlen(argDescrip) + 1;
-
-    if ((cursor + len) > 79) {
-       fprintf(f, "\n       ");
-       cursor = 7;
-    } 
-
-    fprintf(f, " [-%s%s%s%s]", opt->shortName ? "" : "-", item,
-           argDescrip ? (opt->shortName ? " " : "=") : "",
-           argDescrip ? argDescrip : "");
-
-    return cursor + len + 1;
-}
-
-static int singleTableUsage(FILE * f, int cursor, const struct poptOption * table,
-                    const char *translation_domain) {
-    const struct poptOption * opt;
-    
-    opt = table;
-    while (opt->longName || opt->shortName || opt->arg) {
-        if ((opt->argInfo & POPT_ARG_MASK) == POPT_ARG_INTL_DOMAIN)
-           translation_domain = (const char *)opt->arg;
-       else if ((opt->argInfo & POPT_ARG_MASK) == POPT_ARG_INCLUDE_TABLE) 
-           cursor = singleTableUsage(f, cursor, opt->arg,
-                                     translation_domain);
-       else if ((opt->longName || opt->shortName) && 
-                !(opt->argInfo & POPT_ARGFLAG_DOC_HIDDEN))
-         cursor = singleOptionUsage(f, cursor, opt, translation_domain);
-
-       opt++;
-    }
-
-    return cursor;
-}
-
-static int showShortOptions(const struct poptOption * opt, FILE * f, 
-                           char * str) {
-    char s[300];               /* this is larger then the ascii set, so
-                                  it should do just fine */
-
-    if (!str) {
-       str = s;
-       memset(str, 0, sizeof(s));
-    }
-
-    while (opt->longName || opt->shortName || opt->arg) {
-       if (opt->shortName && !(opt->argInfo & POPT_ARG_MASK))
-           str[strlen(str)] = opt->shortName;
-       else if ((opt->argInfo & POPT_ARG_MASK) == POPT_ARG_INCLUDE_TABLE)
-           showShortOptions(opt->arg, f, str);
-
-       opt++;
-    } 
-
-    if (s != str || !*s)
-       return 0;
-
-    fprintf(f, " [-%s]", s);
-    return strlen(s) + 4;
-}
-
-void poptPrintUsage(poptContext con, FILE * f, int flags) {
-    int cursor;
-
-    cursor = showHelpIntro(con, f);
-    cursor += showShortOptions(con->options, f, NULL);
-    singleTableUsage(f, cursor, con->options, NULL);
-
-    if (con->otherHelp) {
-       cursor += strlen(con->otherHelp) + 1;
-       if (cursor > 79) fprintf(f, "\n       ");
-       fprintf(f, " %s", con->otherHelp);
-    }
-
-    fprintf(f, "\n");
-}
-
-void poptSetOtherOptionHelp(poptContext con, const char * text) {
-    if (con->otherHelp) free(con->otherHelp);
-    con->otherHelp = g_strdup(text);
-}
diff --git a/apps/irssi/src/lib-popt/poptint.h b/apps/irssi/src/lib-popt/poptint.h
deleted file mode 100644 (file)
index a134671..0000000
+++ /dev/null
@@ -1,54 +0,0 @@
-/* (C) 1998 Red Hat Software, Inc. -- Licensing details are in the COPYING
-   file accompanying popt source distributions, available from 
-   ftp://ftp.redhat.com/pub/code/popt */
-
-#ifndef H_POPTINT
-#define H_POPTINT
-
-struct optionStackEntry {
-    int argc;
-    char ** argv;
-    int next;
-    char * nextArg;
-    char * nextCharArg;
-    struct poptAlias * currAlias;
-    int stuffed;
-};
-
-struct execEntry {
-    char * longName;
-    char shortName;
-    char * script;
-};
-
-struct poptContext_s {
-    struct optionStackEntry optionStack[POPT_OPTION_DEPTH], * os;
-    char ** leftovers;
-    int numLeftovers;
-    int nextLeftover;
-    const struct poptOption * options;
-    int restLeftover;
-    char * appName;
-    struct poptAlias * aliases;
-    int numAliases;
-    int flags;
-    struct execEntry * execs;
-    int numExecs;
-    char ** finalArgv;
-    int finalArgvCount;
-    int finalArgvAlloced;
-    struct execEntry * doExec;
-    char * execPath;
-    int execAbsolute;
-    char * otherHelp;
-};
-
-#ifdef HAVE_DGETTEXT
-#define D_(dom, str) dgettext(dom, str)
-#define POPT_(foo) D_("popt", foo)
-#else
-#define POPT_(foo) (foo)
-#define D_(dom, str) (str)
-#endif
-
-#endif
diff --git a/apps/irssi/src/lib-popt/poptparse.c b/apps/irssi/src/lib-popt/poptparse.c
deleted file mode 100644 (file)
index 135ead5..0000000
+++ /dev/null
@@ -1,98 +0,0 @@
-/* (C) 1998 Red Hat Software, Inc. -- Licensing details are in the COPYING
-   file accompanying popt source distributions, available from 
-   ftp://ftp.redhat.com/pub/code/popt */
-
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-
-#include <ctype.h>
-#include <stdlib.h>
-#include <string.h>
-
-#include "popt.h"
-
-static const int poptArgvArrayGrowDelta = 5;
-
-int poptParseArgvString(const char * s, int * argcPtr, char *** argvPtr) {
-    char * buf, * bufStart, * dst;
-    const char * src;
-    char quote = '\0';
-    int argvAlloced = poptArgvArrayGrowDelta;
-    char ** argv = malloc(sizeof(*argv) * argvAlloced);
-    char ** argv2;
-    int argc = 0;
-    int i, buflen;
-
-    buflen = strlen(s) + 1;
-    bufStart = buf = malloc(buflen);
-    memset(buf, '\0', buflen);
-
-    src = s;
-    argv[argc] = buf;
-
-    while (*src) {
-       if (quote == *src) {
-           quote = '\0';
-       } else if (quote) {
-           if (*src == '\\') {
-               src++;
-               if (!*src) {
-                   free(argv);
-                   free(bufStart);
-                   return POPT_ERROR_BADQUOTE;
-               }
-               if (*src != quote) *buf++ = '\\';
-           }
-           *buf++ = *src;
-       } else if (isspace((int) (unsigned char) *src)) {
-           if (*argv[argc]) {
-               buf++, argc++;
-               if (argc == argvAlloced) {
-                   argvAlloced += poptArgvArrayGrowDelta;
-                   argv = realloc(argv, sizeof(*argv) * argvAlloced);
-               }
-               argv[argc] = buf;
-           }
-       } else switch (*src) {
-         case '"':
-         case '\'':
-           quote = *src;
-           break;
-         case '\\':
-           src++;
-           if (!*src) {
-               free(argv);
-               free(bufStart);
-               return POPT_ERROR_BADQUOTE;
-           }
-           /* fallthrough */
-         default:
-           *buf++ = *src;
-       }
-
-       src++;
-    }
-
-    if (strlen(argv[argc])) {
-       argc++, buf++;
-    }
-
-    dst = malloc(argc * sizeof(*argv) + (buf - bufStart));
-    argv2 = (void *) dst;
-    dst += argc * sizeof(*argv);
-    memcpy(argv2, argv, argc * sizeof(*argv));
-    memcpy(dst, bufStart, buf - bufStart);
-
-    for (i = 0; i < argc; i++) {
-       argv2[i] = dst + (argv[i] - bufStart);
-    }
-
-    free(argv);
-
-    *argvPtr = argv2;
-    *argcPtr = argc;
-
-    free(bufStart);
-    return 0;
-}
index 43a6a341ad6813834aba498830cf0d0bab067f44..b17ac8565e8993355ba482250e6513d47d3b4ab4 100644 (file)
@@ -1,5 +1,3 @@
-LIBTOOL = $(PERL_LIBTOOL)
-
 include $(top_srcdir)/Makefile.defines.in
 
 moduledir = @SILC_IRSSIDIR@
@@ -8,11 +6,10 @@ if SILCPLUGIN
 perl_dirs = silc
 SCRIPTDIR="$(datadir)/irssi/scripts"
 else
-perl_dirs = common ui textui silc
+perl_dirs = common silc ui textui
 SCRIPTDIR="$(datadir)/silc/scripts"
 endif
 
-
 module_LTLIBRARIES = $(perl_module_lib) $(perl_module_fe_lib)
 noinst_LTLIBRARIES = $(perl_static_lib) $(perl_static_fe_lib)
 EXTRA_LTLIBRARIES = \
@@ -22,7 +19,8 @@ EXTRA_LTLIBRARIES = \
 libperl_core_la_LDFLAGS = -module -avoid-version -rpath $(moduledir)
 libfe_perl_la_LDFLAGS = -module -avoid-version -rpath $(moduledir)
 
-perl-core.c: perl-signals-list.h irssi-core.pl.h
+perl-core.lo: irssi-core.pl.h
+perl-signals.lo: perl-signals-list.h
 
 INCLUDES += \
        -I$(top_srcdir)/src \
@@ -54,17 +52,6 @@ noinst_HEADERS = \
        perl-signals.h \
        perl-sources.h
 
-libperl_core_la_DEPENDENCIES = .libs/libperl_orig.a .libs/DynaLoader.a
-
-.libs/libperl_orig.a:
-       if [ ! -d .libs ]; then mkdir .libs; fi
-       rm -f .libs/libperl_orig.a
-       if [ x$(LIBPERL_A) = x ]; then touch .libs/libperl_orig.a; else $(LN_S) $(LIBPERL_A) .libs/libperl_orig.a; fi
-.libs/DynaLoader.a:
-       if [ ! -d .libs ]; then mkdir .libs; fi
-       rm -f .libs/DynaLoader.a
-       $(LN_S) $(DYNALOADER_A) .libs/DynaLoader.a
-
 libperl_core_la_SOURCES = \
        $(perl_sources)
 
@@ -100,6 +87,15 @@ common_sources = \
        common/typemap \
        common/module.h
 
+silc_sources = \
+       silc/Silc.xs \
+       silc/Silc.pm \
+       silc/Channel.xs \
+       silc/Server.xs \
+       silc/Query.xs \
+       silc/typemap \
+       silc/module.h
+
 ui_sources = \
        ui/UI.xs \
        ui/UI.pm \
@@ -120,24 +116,13 @@ textui_sources = \
        textui/typemap \
        textui/module.h
 
-silc_sources = \
-       silc/Silc.xs \
-       silc/Silc.pm \
-       silc/Channel.xs \
-       silc/Server.xs \
-       silc/Query.xs \
-       silc/typemap \
-       silc/module.h
-
 EXTRA_DIST = \
-       libperl_dynaloader.la \
-       libperl_orig.la \
        get-signals.pl \
        irssi-core.pl \
        $(common_sources) \
+       $(silc_sources) \
        $(ui_sources) \
-       $(textui_sources) \
-       $(silc_sources)
+       $(textui_sources)
 
 all-local:
        for dir in $(perl_dirs); do \
index 451a07e2d735b8a78a20b6e125be9b81a409c9ca..76ea00938c1537d4ff36636ebdc4a15698cfab88 100644 (file)
@@ -7,7 +7,7 @@
 
 #define DEFAULT_COMMAND_CATEGORY "Perl scripts' commands"
 
-void perl_signal_add_hash(int priority, SV *sv)
+static void perl_signal_add_hash(int priority, SV *sv)
 {
        HV *hv;
         HE *he;
@@ -57,6 +57,23 @@ static void handle_command_bind(int priority, int items, SV *p0, SV *p1, SV *p2)
        }
 }
 
+static void add_tuple(gpointer key_, gpointer value_, gpointer user_data)
+{
+       HV *hash = user_data;
+       char *key = key_;
+       char *value = value_;
+       hv_store(hash, key, strlen(key), new_pv(value), 0);
+}
+
+static void wrap_signal_emit(void *signal, void **p) {
+       signal_emit(signal, 6, p[0], p[1], p[2], p[3], p[4], p[5]);
+}
+
+static void wrap_signal_continue(void *dummy, void **p) {
+       (void)dummy;
+       signal_continue(6, p[0], p[1], p[2], p[3], p[4], p[5]);
+}
+
 MODULE = Irssi::Core  PACKAGE = Irssi
 PROTOTYPES: ENABLE
 
@@ -64,44 +81,34 @@ void
 signal_emit(signal, ...)
        char *signal
 CODE:
-       void *p[SIGNAL_MAX_ARGUMENTS];
-       int n;
-
-       memset(p, 0, sizeof(p));
-       for (n = 1; n < items && n < SIGNAL_MAX_ARGUMENTS+1; n++) {
-               if (SvPOKp(ST(n)))
-                       p[n-1] = SvPV(ST(n), PL_na);
-               else if (irssi_is_ref_object(ST(n)))
-                       p[n-1] = irssi_ref_object(ST(n));
-               else if (SvROK(ST(n)))
-                       p[n-1] = (void *) SvIV((SV*)SvRV(ST(n)));
-               else if (SvIOK(ST(n)))
-                       p[n-1] = (void *)SvIV(ST(n));
-               else
-                       p[n-1] = NULL;
+       int signal_id;
+       SV *args[SIGNAL_MAX_ARGUMENTS];
+       int n, used;
+
+       signal_id = signal_get_uniq_id(signal);
+       used = items - 1;
+       if (used > SIGNAL_MAX_ARGUMENTS) {
+               used = SIGNAL_MAX_ARGUMENTS;
+       }
+       for (n = 0; n < used; ++n) {
+               args[n] = ST(n + 1);
        }
-       signal_emit(signal, items-1, p[0], p[1], p[2], p[3], p[4], p[5]);
+       perl_signal_args_to_c(wrap_signal_emit, signal, signal_id, args, used);
 
 void
 signal_continue(...)
 CODE:
-       void *p[SIGNAL_MAX_ARGUMENTS];
-       int n;
-
-       memset(p, 0, sizeof(p));
-       for (n = 0; n < items && n < SIGNAL_MAX_ARGUMENTS; n++) {
-               if (SvPOKp(ST(n)))
-                       p[n] = SvPV(ST(n), PL_na);
-               else if (irssi_is_ref_object(ST(n)))
-                       p[n] = irssi_ref_object(ST(n));
-               else if (SvROK(ST(n)))
-                       p[n] = (void *) SvIV((SV*)SvRV(ST(n)));
-               else if (SvIOK(ST(n)))
-                       p[n] = (void *) SvIV(ST(n));
-               else
-                       p[n] = NULL;
+       SV *args[SIGNAL_MAX_ARGUMENTS];
+       int n, used;
+
+       used = items;
+       if (used > SIGNAL_MAX_ARGUMENTS) {
+               used = SIGNAL_MAX_ARGUMENTS;
+       }
+       for (n = 0; n < used; ++n) {
+               args[n] = ST(n);
        }
-       signal_continue(items, p[0], p[1], p[2], p[3], p[4], p[5]);
+       perl_signal_args_to_c(wrap_signal_continue, NULL, signal_get_emitted_id(), args, used);
 
 void
 signal_add(...)
@@ -485,6 +492,10 @@ OUTPUT:
 int
 level2bits(str)
        char *str
+CODE:
+       RETVAL = level2bits(str, NULL);
+OUTPUT:
+       RETVAL
 
 void
 bits2level(bits)
@@ -552,6 +563,28 @@ command_set_options(cmd, options)
        char *cmd
        char *options
 
+void
+command_parse_options(cmd, data)
+       char *cmd
+       char *data
+PREINIT:
+       HV *hash;
+       GHashTable *optlist;
+       void *free_arg;
+       char *ptr;
+PPCODE:
+       if (cmd_get_params(data, &free_arg, 1 | PARAM_FLAG_OPTIONS | PARAM_FLAG_GETREST,
+                          cmd, &optlist, &ptr)) {
+               hash = newHV();
+               g_hash_table_foreach(optlist, add_tuple, hash);
+               XPUSHs(sv_2mortal(newRV_noinc((SV*)hash)));
+               XPUSHs(sv_2mortal(new_pv(ptr)));
+               cmd_params_free(free_arg);
+       } else {
+               XPUSHs(&PL_sv_undef);
+               XPUSHs(&PL_sv_undef);
+       }
+
 void
 pidwait_add(pid)
        int pid
index 08f5c202214e537f9b2c14a4c4d4f8c590b41863..31b4f99008c8ff011a25ad57c084bf2bd1477650 100644 (file)
@@ -100,7 +100,7 @@ static char *sig_perl_expando(SERVER_REC *server, void *item, int *free_ret)
        return NULL;
 }
 
-void expando_signals_add_hash(const char *key, SV *signals)
+static void expando_signals_add_hash(const char *key, SV *signals)
 {
        HV *hv;
         HE *he;
@@ -119,15 +119,15 @@ void expando_signals_add_hash(const char *key, SV *signals)
                SV *argsv = HeVAL(he);
                argstr = SvPV(argsv, PL_na);
 
-               if (strcasecmp(argstr, "none") == 0)
+               if (g_ascii_strcasecmp(argstr, "none") == 0)
                        arg = EXPANDO_ARG_NONE;
-               else if (strcasecmp(argstr, "server") == 0)
+               else if (g_ascii_strcasecmp(argstr, "server") == 0)
                        arg = EXPANDO_ARG_SERVER;
-               else if (strcasecmp(argstr, "window") == 0)
+               else if (g_ascii_strcasecmp(argstr, "window") == 0)
                        arg = EXPANDO_ARG_WINDOW;
-               else if (strcasecmp(argstr, "windowitem") == 0)
+               else if (g_ascii_strcasecmp(argstr, "windowitem") == 0)
                        arg = EXPANDO_ARG_WINDOW_ITEM;
-               else if (strcasecmp(argstr, "never") == 0)
+               else if (g_ascii_strcasecmp(argstr, "never") == 0)
                        arg = EXPANDO_NEVER;
                else {
                        croak("Unknown signal type: %s", argstr);
index a9bdd11df936b075d34fe2abcdf6ab05575eb3a8..dc5507cf8562b4ef22ec3f9f54a3e4730a45a440 100644 (file)
@@ -1,6 +1,5 @@
 #include "module.h"
 #include "misc.h"
-#include "recode.h"
 
 static GHashTable *perl_settings;
 
@@ -77,8 +76,6 @@ PREINIT:
 CODE:
        str = settings_get_str(key);
        RETVAL = new_pv(str);
-       if (is_utf8())
-               SvUTF8_on(RETVAL);
 OUTPUT:
        RETVAL
 
index c61c81cc934a391bef7c3eef0ae5f8a9e75d4fab..1f410dada4865959d034896629dcb9fcea12cba4 100755 (executable)
@@ -1,11 +1,15 @@
 #!/usr/bin/perl
 
+print "/*\n";
+print " * Autogenerated by get-signals.pl from ../../doc/signals.txt,\n";
+print " * do not edit.\n";
+print " */\n\n";
 print "static PERL_SIGNAL_ARGS_REC perl_signal_args[] =\n{\n";
 
 while (<STDIN>) {
        chomp;
 
-       next if (!/^ "([^"]*)"(<.*>)?,\s*(.*)/);
+       next if (!/^ "([^"]*)"(<.*>)?(?:,\s*(.*))?/);
        next if (/\.\.\./);
        next if (/\(/);
 
@@ -22,7 +26,7 @@ while (<STDIN>) {
 
        # core
         s/CHATNET_REC[^,]*/iobject/g;
-        s/SERVER_REC[^,]*/iobject/g;
+        s/(?<!_)SERVER_REC[^,]*/iobject/g;
         s/RECONNECT_REC[^,]*/iobject/g;
        s/CHANNEL_REC[^,]*/iobject/g;
        s/QUERY_REC[^,]*/iobject/g;
@@ -42,6 +46,7 @@ while (<STDIN>) {
        s/DCC_REC[^,]*/siobject/g;
        s/AUTOIGNORE_REC[^,]*/Irssi::Irc::Autoignore/g;
        s/NOTIFYLIST_REC[^,]*/Irssi::Irc::Notifylist/g;
+       s/CLIENT_REC[^,]*/Irssi::Irc::Client/g;
 
        # fe-common
        s/THEME_REC[^,]*/Irssi::UI::Theme/g;
@@ -55,7 +60,11 @@ while (<STDIN>) {
        s/PERL_SCRIPT_REC[^,]*/Irssi::Script/g;
 
        s/([\w\*:]+)(,|$)/"\1"\2/g;
-       print "    { \"$signal\", { $_, NULL } },\n";
+       if ($_ eq "") {
+               print "    { \"$signal\", { NULL } },\n";
+       } else {
+               print "    { \"$signal\", { $_, NULL } },\n";
+       }
 }
 
 print "\n    { NULL }\n};\n";
index 11aa0f6f50275cf51ec50629c6927dacb8ae7a80..38265a80176520378ab334834906d30d64005e23 100644 (file)
@@ -8,6 +8,12 @@ package Irssi::Core;
 
 use Symbol;
 
+$SIG{__WARN__} = sub {
+  my @msg = @_;
+  s/%%/%%%%/g for @msg;
+  print @msg;
+};
+
 sub is_static {
   return %d;
 }
@@ -18,33 +24,27 @@ sub destroy {
 }
 
 sub eval_data {
-  my ($data, $id) = @_;
-  destroy("Irssi::Script::$id");
-
-  my $package = "Irssi::Script::$id";
-  my $eval = qq{package $package; %s sub handler { $data; }};
-  {
-      # hide our variables within this block
-      my ($filename, $package, $data);
-      eval $eval;
-  }
-  die $@ if $@;
-
-  my $ret;
-  eval { $ret = $package->handler; };
-  die $@ if $@;
-  return $ret;
+  my $ret = eval do {
+    my ($data, $id) = @_;
+    destroy("Irssi::Script::$id");
+    my $code = qq{package Irssi::Script::$id; %s $data};
+    $code
+  };
+  $@ and die $@;
+  $ret
 }
 
 sub eval_file {
   my ($filename, $id) = @_;
 
-  local *FH;
-  open FH, $filename or die "File not found: $filename";
-  local($/) = undef;
-  my $data = <FH>;
-  close FH;
-  local($/) = "\n";
+  open my $fh, '<', $filename or die "Can't open $filename: $!";
+  my $data = do {local $/; <$fh>};
+  close $fh;
+
+  $filename =~ s/(["\\])/\\$1/g;
+  $filename =~ s/\n/\\n/g;
+
+  $data = qq{\n#line 1 "$filename"\n$data};
 
   eval_data($data, $id);
 }
index 9c4dd606f8d0160a286d26e2efca4398f3499d5e..707508313f32606eab4914060cb304bcc92e92b2 100644 (file)
@@ -9,6 +9,12 @@ const char *irssi_core_code =
 "\n"
 "use Symbol;\n"
 "\n"
+"$SIG{__WARN__} = sub {\n"
+"  my @msg = @_;\n"
+"  s/%%/%%%%/g for @msg;\n"
+"  print @msg;\n"
+"};\n"
+"\n"
 "sub is_static {\n"
 "  return %d;\n"
 "}\n"
@@ -19,33 +25,27 @@ const char *irssi_core_code =
 "}\n"
 "\n"
 "sub eval_data {\n"
-"  my ($data, $id) = @_;\n"
-"  destroy(\"Irssi::Script::$id\");\n"
-"\n"
-"  my $package = \"Irssi::Script::$id\";\n"
-"  my $eval = qq{package $package; %s sub handler { $data; }};\n"
-"  {\n"
-"      # hide our variables within this block\n"
-"      my ($filename, $package, $data);\n"
-"      eval $eval;\n"
-"  }\n"
-"  die $@ if $@;\n"
-"\n"
-"  my $ret;\n"
-"  eval { $ret = $package->handler; };\n"
-"  die $@ if $@;\n"
-"  return $ret;\n"
+"  my $ret = eval do {\n"
+"    my ($data, $id) = @_;\n"
+"    destroy(\"Irssi::Script::$id\");\n"
+"    my $code = qq{package Irssi::Script::$id; %s $data};\n"
+"    $code\n"
+"  };\n"
+"  $@ and die $@;\n"
+"  $ret\n"
 "}\n"
 "\n"
 "sub eval_file {\n"
 "  my ($filename, $id) = @_;\n"
 "\n"
-"  local *FH;\n"
-"  open FH, $filename or die \"File not found: $filename\";\n"
-"  local($/) = undef;\n"
-"  my $data = <FH>;\n"
-"  close FH;\n"
-"  local($/) = \"\\n\";\n"
+"  open my $fh, '<', $filename or die \"Can't open $filename: $!\";\n"
+"  my $data = do {local $/; <$fh>};\n"
+"  close $fh;\n"
+"\n"
+"  $filename =~ s/([\"\\\\])/\\\\$1/g;\n"
+"  $filename =~ s/\\n/\\\\n/g;\n"
+"\n"
+"  $data = qq{\\n#line 1 \"$filename\"\\n$data};\n"
 "\n"
 "  eval_data($data, $id);\n"
 "}\n"
index 8840e4378b3ca9cc4decef57f61dcaaa4e408707..e1a7aa74c0aa6990363a92a9c06d593261ae11c6 100644 (file)
@@ -13,9 +13,9 @@
     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     GNU General Public License for more details.
 
-    You should have received a copy of the GNU General Public License
-    along with this program; if not, write to the Free Software
-    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+    You should have received a copy of the GNU General Public License along
+    with this program; if not, write to the Free Software Foundation, Inc.,
+    51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 */
 
 #include "module.h"
index e12482ab61fa49f9218acd94c2b72505115a5001..2fd151376e9077af736e4694d3dcb6316e5c1734 100644 (file)
@@ -1,3 +1,5 @@
+#include "common.h"
+
 #ifdef NEED_PERL_H
 #  include <EXTERN.h>
 #  ifndef _SEM_SEMUN_UNDEFINED
@@ -8,16 +10,9 @@
 #  undef _
 #  undef PACKAGE
 
-/* For compatibility with perl 5.004 and older */
-#  ifndef ERRSV
-#    define ERRSV GvSV(errgv)
-#  endif
-
 extern PerlInterpreter *my_perl; /* must be called my_perl or some perl implementations won't work */
 #endif
 
-#include "common.h"
-
 #define MODULE_NAME "perl/core"
 
 /* Change this every time when some API changes between irssi's perl module
index 03dcc01ec6778f864b2de1eaa614d24e9a433934..198da57d95729758f876c4a9650ffd3da8192e90 100644 (file)
@@ -13,9 +13,9 @@
     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     GNU General Public License for more details.
 
-    You should have received a copy of the GNU General Public License
-    along with this program; if not, write to the Free Software
-    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+    You should have received a copy of the GNU General Public License along
+    with this program; if not, write to the Free Software Foundation, Inc.,
+    51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 */
 
 #define NEED_PERL_H
@@ -48,10 +48,6 @@ typedef struct {
         PERL_OBJECT_FUNC fill_func;
 } PERL_OBJECT_REC;
 
-#ifndef HAVE_PL_PERL
-STRLEN PL_na;
-#endif
-
 static GHashTable *iobject_stashes, *plain_stashes;
 static GSList *use_protocols;
 
@@ -232,7 +228,7 @@ char *perl_get_use_list(void)
        str = g_string_new(NULL);
 
        use_lib = settings_get_str("perl_use_lib");
-       g_string_sprintf(str, "use lib qw(%s/scripts "SCRIPTDIR" %s);",
+       g_string_printf(str, "use lib qw(%s/scripts "SCRIPTDIR" %s);",
                         get_irssi_dir(), use_lib);
 
         g_string_append(str, "use Irssi;");
@@ -240,7 +236,7 @@ char *perl_get_use_list(void)
                g_string_append(str, "use Irssi::UI;");
 
        for (tmp = use_protocols; tmp != NULL; tmp = tmp->next)
-               g_string_sprintfa(str, "use Irssi::%s;", (char *) tmp->data);
+               g_string_append_printf(str, "use Irssi::%s;", (char *) tmp->data);
 
        ret = str->str;
         g_string_free(str, FALSE);
@@ -305,6 +301,7 @@ void perl_connect_fill_hash(HV *hv, SERVER_CONNECT_REC *conn)
 
        hv_store(hv, "reconnection", 12, newSViv(conn->reconnection), 0);
        hv_store(hv, "no_autojoin_channels", 20, newSViv(conn->no_autojoin_channels), 0);
+       hv_store(hv, "no_autosendcmd", 14, newSViv(conn->no_autosendcmd), 0);
        hv_store(hv, "unix_socket", 11, newSViv(conn->unix_socket), 0);
        hv_store(hv, "use_ssl", 7, newSViv(conn->use_ssl), 0);
        hv_store(hv, "no_connect", 10, newSViv(conn->no_connect), 0);
@@ -436,7 +433,8 @@ void perl_nick_fill_hash(HV *hv, NICK_REC *nick)
        hv_store(hv, "op", 2, newSViv(nick->op), 0);
        hv_store(hv, "halfop", 6, newSViv(nick->halfop), 0);
        hv_store(hv, "voice", 5, newSViv(nick->voice), 0);
-       hv_store(hv, "other", 5, newSViv(nick->other), 0);
+       hv_store(hv, "other", 5, newSViv(nick->prefixes[0]), 0);
+       hv_store(hv, "prefixes", 8, new_pv(nick->prefixes), 0);
 
        hv_store(hv, "last_check", 10, newSViv(nick->last_check), 0);
        hv_store(hv, "send_massjoin", 13, newSViv(nick->send_massjoin), 0);
@@ -571,6 +569,7 @@ static void perl_register_protocol(CHAT_PROTOCOL_REC *rec)
                "Nick"
        };
        static char *find_use_code =
+               "use lib qw(%s);\n"
                "my $pkg = Irssi::%s; $pkg =~ s/::/\\//;\n"
                "foreach my $i (@INC) {\n"
                "  return 1 if (-f \"$i/$pkg.pm\");\n"
@@ -584,13 +583,8 @@ static void perl_register_protocol(CHAT_PROTOCOL_REC *rec)
        chat_type = chat_protocol_lookup(rec->name);
        g_return_if_fail(chat_type >= 0);
 
-#if GLIB_MAJOR_VERSION < 2
-       name = g_strdup(rec->name);
-       g_strdown(name+1);
-#else
        name = g_ascii_strdown(rec->name,-1);
        *name = *(rec->name);
-#endif
 
        /* window items: channel, query */
        type = module_get_uniq_id_str("WINDOW ITEM TYPE", "CHANNEL");
@@ -634,7 +628,8 @@ static void perl_register_protocol(CHAT_PROTOCOL_REC *rec)
                perl_eval_pv(code, TRUE);
        }
 
-       pcode = g_strdup_printf(find_use_code, name);
+       pcode = g_strdup_printf(find_use_code, 
+                               settings_get_str("perl_use_lib"), name);
        sv = perl_eval_pv(pcode, TRUE);
        g_free(pcode);
 
index 32e6e6559f390c379b7515d9f90e9cff2b0e3936..e2992ee942ea14b4c406ecd8250a98f067e3fb6f 100644 (file)
@@ -26,12 +26,6 @@ char *perl_function_get_package(const char *function);
    Increases the reference counter for the return value. */
 SV *perl_func_sv_inc(SV *func, const char *package);
 
-/* For compatibility with perl 5.004 and older */
-#ifndef HAVE_PL_PERL
-#  define PL_sv_undef sv_undef
-extern STRLEN PL_na;
-#endif
-
 #ifndef pTHX_
 #  define pTHX_
 #endif
index 2b660eefa813405aa73cb1538f8214180ccc70e4..08d0738c4041c4507b2fe31547e4af52e1d957de 100644 (file)
@@ -13,9 +13,9 @@
     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     GNU General Public License for more details.
 
-    You should have received a copy of the GNU General Public License
-    along with this program; if not, write to the Free Software
-    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+    You should have received a copy of the GNU General Public License along
+    with this program; if not, write to the Free Software Foundation, Inc.,
+    51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 */
 
 #define NEED_PERL_H
@@ -25,7 +25,6 @@
 #include "signals.h"
 #include "misc.h"
 #include "settings.h"
-#include "lib-config/iconfig.h" /* FIXME: remove before .99 */
 
 #include "perl-core.h"
 #include "perl-common.h"
 #include "XSUB.h"
 #include "irssi-core.pl.h"
 
-/* For compatibility with perl 5.004 and older */
-#ifndef HAVE_PL_PERL
-#  define PL_perl_destruct_level perl_destruct_level
-#endif
+extern char **environ;
 
 GSList *perl_scripts;
 PerlInterpreter *my_perl;
 
 static int print_script_errors;
+static char *perl_args[] = {"", "-e", "0"};
 
 #define IS_PERL_SCRIPT(file) \
        (strlen(file) > 3 && strcmp(file+strlen(file)-3, ".pl") == 0)
@@ -117,7 +114,6 @@ static void xs_init(pTHX)
 /* Initialize perl interpreter */
 void perl_scripts_init(void)
 {
-       char *args[] = {"", "-e", "0"};
        char *code, *use_code;
 
        perl_scripts = NULL;
@@ -127,7 +123,7 @@ void perl_scripts_init(void)
        my_perl = perl_alloc();
        perl_construct(my_perl);
 
-       perl_parse(my_perl, xs_init, 3, args, NULL);
+       perl_parse(my_perl, xs_init, G_N_ELEMENTS(perl_args), perl_args, NULL);
 #if PERL_STATIC_LIBS == 1
        perl_eval_pv("Irssi::Core::boot_Irssi_Core();", TRUE);
 #endif
@@ -168,6 +164,7 @@ void perl_scripts_deinit(void)
        /*perl_eval_pv("eval { foreach my $lib (@DynaLoader::dl_librefs) { DynaLoader::dl_unload_file($lib); } }", TRUE);*/
 
        /* perl interpreter */
+       PL_perl_destruct_level = 1;
        perl_destruct(my_perl);
        perl_free(my_perl);
        my_perl = NULL;
@@ -207,7 +204,7 @@ static char *script_data_get_name(void)
        name = g_string_new(NULL);
         n = 1;
        do {
-               g_string_sprintf(name, "data%d", n);
+               g_string_printf(name, "data%d", n);
                 n++;
        } while (perl_script_find(name->str) != NULL);
 
@@ -248,11 +245,7 @@ static int perl_script_eval(PERL_SCRIPT_REC *script)
                        g_free(error);
                }
        } else if (retcount > 0) {
-               /* if script returns 0, it means the script wanted to die
-                  immediately without any error message */
                ret = POPs;
-               if (ret != &PL_sv_undef && SvIOK(ret) && SvIV(ret) == 0)
-                       error = "";
        }
 
        PUTBACK;
@@ -271,7 +264,7 @@ static PERL_SCRIPT_REC *script_load(char *name, const char *path,
        /* if there's a script with a same name, destroy it */
        script = perl_script_find(name);
        if (script != NULL)
-               perl_script_destroy(script);
+               perl_script_unload(script);
 
        script = g_new0(PERL_SCRIPT_REC, 1);
        script->name = name;
@@ -449,6 +442,10 @@ static void sig_autorun(void)
 
 void perl_core_init(void)
 {
+       int argc = G_N_ELEMENTS(perl_args);
+       char **argv = perl_args;
+
+       PERL_SYS_INIT3(&argc, &argv, &environ);
         print_script_errors = 1;
        settings_add_str("perl", "perl_use_lib", PERL_USE_LIB);
 
@@ -474,4 +471,5 @@ void perl_core_deinit(void)
        perl_signals_deinit();
 
        signal_remove("script error", (SIGNAL_FUNC) sig_script_error);
+       PERL_SYS_TERM();
 }
index 7015cdf2a6b7b76bd83f601609e0434b00aa936d..8e8469e94b344727b3e95137e8a0ca8e44be1fbc 100644 (file)
@@ -13,9 +13,9 @@
     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     GNU General Public License for more details.
 
-    You should have received a copy of the GNU General Public License
-    along with this program; if not, write to the Free Software
-    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+    You should have received a copy of the GNU General Public License along
+    with this program; if not, write to the Free Software Foundation, Inc.,
+    51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 */
 
 #include "module-fe.h"
@@ -262,6 +262,8 @@ void fe_perl_init(void)
 
 void fe_perl_deinit(void)
 {
+       theme_unregister();
+
        command_unbind("script", (SIGNAL_FUNC) cmd_script);
        command_unbind("script exec", (SIGNAL_FUNC) cmd_script_exec);
        command_unbind("script load", (SIGNAL_FUNC) cmd_script_load);
index 85e537de55e294ad030d8648f39b47662a761035..a455cfd3381292cb6d946469bb998cea4c48e014 100644 (file)
@@ -13,9 +13,9 @@
     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     GNU General Public License for more details.
 
-    You should have received a copy of the GNU General Public License
-    along with this program; if not, write to the Free Software
-    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+    You should have received a copy of the GNU General Public License along
+    with this program; if not, write to the Free Software Foundation, Inc.,
+    51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 */
 
 #define NEED_PERL_H
@@ -70,6 +70,150 @@ static PERL_SIGNAL_ARGS_REC *perl_signal_args_find(int signal_id)
        return NULL;
 }
 
+void perl_signal_args_to_c(
+        void (*callback)(void *, void **), void *cb_arg,
+        int signal_id, SV **args, size_t n_args)
+{
+        union {
+                int v_int;
+                unsigned long v_ulong;
+                GSList *v_gslist;
+                GList *v_glist;
+        } saved_args[SIGNAL_MAX_ARGUMENTS];
+        void *p[SIGNAL_MAX_ARGUMENTS];
+        PERL_SIGNAL_ARGS_REC *rec;
+        size_t n;
+
+        if (!(rec = perl_signal_args_find(signal_id))) {
+                const char *name = signal_get_id_str(signal_id);
+                if (!name) {
+                        croak("%d is not a known signal id", signal_id);
+                }
+                croak("\"%s\" is not a registered signal", name);
+        }
+
+        for (n = 0; n < SIGNAL_MAX_ARGUMENTS && n < n_args && rec->args[n] != NULL; ++n) {
+                void *c_arg;
+                SV *arg = args[n];
+
+                if (!SvOK(arg)) {
+                        c_arg = NULL;
+                } else if (strcmp(rec->args[n], "string") == 0) {
+                        c_arg = SvPV_nolen(arg);
+                } else if (strcmp(rec->args[n], "int") == 0) {
+                        c_arg = (void *)SvIV(arg);
+                } else if (strcmp(rec->args[n], "ulongptr") == 0) {
+                        saved_args[n].v_ulong = SvUV(arg);
+                        c_arg = &saved_args[n].v_ulong;
+                } else if (strcmp(rec->args[n], "intptr") == 0) {
+                        saved_args[n].v_int = SvIV(SvRV(arg));
+                        c_arg = &saved_args[n].v_int;
+                } else if (strncmp(rec->args[n], "glistptr_", 9) == 0) {
+                        GList *gl;
+                        int is_str;
+                        AV *av;
+                        SV *t;
+                        int count;
+
+                        t = SvRV(arg);
+                        if (SvTYPE(t) != SVt_PVAV) {
+                                croak("Not an ARRAY reference");
+                        }
+                        av = (AV *)t;
+
+                        is_str = strcmp(rec->args[n]+9, "char*") == 0;
+
+                        gl = NULL;
+                        count = av_len(av) + 1;
+                        while (count-- > 0) {
+                                SV **px = av_fetch(av, count, 0);
+                                SV *x = px ? *px : NULL;
+                                gl = g_list_prepend(
+                                        gl,
+                                        x == NULL ? NULL :
+                                        is_str ? g_strdup(SvPV_nolen(x)) :
+                                        irssi_ref_object(x)
+                                );
+                        }
+                        saved_args[n].v_glist = gl;
+                        c_arg = &saved_args[n].v_glist;
+                } else if (strncmp(rec->args[n], "gslist_", 7) == 0) {
+                        GSList *gsl;
+                        AV *av;
+                        SV *t;
+                        int count;
+
+                        t = SvRV(arg);
+                        if (SvTYPE(t) != SVt_PVAV) {
+                                croak("Not an ARRAY reference");
+                        }
+                        av = (AV *)t;
+
+                        gsl = NULL;
+                        count = av_len(av) + 1;
+                        while (count-- > 0) {
+                                SV **x = av_fetch(av, count, 0);
+                                gsl = g_slist_prepend(
+                                        gsl,
+                                        x == NULL ? NULL :
+                                        irssi_ref_object(*x)
+                                );
+                        }
+                        c_arg = saved_args[n].v_gslist = gsl;
+                } else {
+                        c_arg = irssi_ref_object(arg);
+                }
+
+                p[n] = c_arg;
+        }
+
+        for (; n < SIGNAL_MAX_ARGUMENTS; ++n) {
+                p[n] = NULL;
+        }
+
+        callback(cb_arg, p);
+
+        for (n = 0; n < SIGNAL_MAX_ARGUMENTS && n < n_args && rec->args[n] != NULL; ++n) {
+                SV *arg = args[n];
+
+                if (!SvOK(arg)) {
+                        continue;
+                }
+
+                if (strcmp(rec->args[n], "intptr") == 0) {
+                        SV *t = SvRV(arg);
+                        SvIOK_only(t);
+                        SvIV_set(t, saved_args[n].v_int);
+                } else if (strncmp(rec->args[n], "gslist_", 7) == 0) {
+                        g_slist_free(saved_args[n].v_gslist);
+                } else if (strncmp(rec->args[n], "glistptr_", 9) == 0) {
+                        int is_iobject, is_str;
+                        AV *av;
+                        GList *gl, *tmp;
+
+                        is_iobject = strcmp(rec->args[n]+9, "iobject") == 0;
+                        is_str = strcmp(rec->args[n]+9, "char*") == 0;
+
+                        av = (AV *)SvRV(arg);
+                        av_clear(av);
+
+                        gl = saved_args[n].v_glist;
+                        for (tmp = gl; tmp != NULL; tmp = tmp->next) {
+                                av_push(av,
+                                        is_iobject ? iobject_bless((SERVER_REC *)tmp->data) :
+                                        is_str ? new_pv(tmp->data) :
+                                        irssi_bless_plain(rec->args[n]+9, tmp->data)
+                                );
+                        }
+
+                        if (is_str) {
+                                g_list_foreach(gl, (GFunc)g_free, NULL);
+                        }
+                        g_list_free(gl);
+                }
+        }
+}
+
 static void perl_call_signal(PERL_SCRIPT_REC *script, SV *func,
                             int signal_id, gconstpointer *args)
 {
@@ -95,15 +239,7 @@ static void perl_call_signal(PERL_SCRIPT_REC *script, SV *func,
                    rec != NULL && rec->args[n] != NULL; n++) {
                arg = (void *) args[n];
 
-               if (strcmp(rec->args[n], "string") == 0)
-                       perlarg = new_pv(arg);
-               else if (strcmp(rec->args[n], "int") == 0)
-                       perlarg = newSViv((IV)arg);
-               else if (strcmp(rec->args[n], "ulongptr") == 0)
-                       perlarg = newSViv(*(unsigned long *) arg);
-               else if (strcmp(rec->args[n], "intptr") == 0)
-                       saved_args[n] = perlarg = newRV_noinc(newSViv(*(int *) arg));
-               else if (strncmp(rec->args[n], "glistptr_", 9) == 0) {
+                if (strncmp(rec->args[n], "glistptr_", 9) == 0) {
                        /* pointer to linked list - push as AV */
                        GList *tmp, **ptr;
                         int is_iobject, is_str;
@@ -121,7 +257,17 @@ static void perl_call_signal(PERL_SCRIPT_REC *script, SV *func,
                        }
 
                        saved_args[n] = perlarg = newRV_noinc((SV *) av);
-               } else if (strncmp(rec->args[n], "gslist_", 7) == 0) {
+                } else if (strcmp(rec->args[n], "int") == 0)
+                        perlarg = newSViv((IV)arg);
+                else if (arg == NULL)
+                        perlarg = &PL_sv_undef;
+                else if (strcmp(rec->args[n], "string") == 0)
+                        perlarg = new_pv(arg);
+                else if (strcmp(rec->args[n], "ulongptr") == 0)
+                        perlarg = newSViv(*(unsigned long *) arg);
+                else if (strcmp(rec->args[n], "intptr") == 0)
+                        saved_args[n] = perlarg = newRV_noinc(newSViv(*(int *) arg));
+                else if (strncmp(rec->args[n], "gslist_", 7) == 0) {
                        /* linked list - push as AV */
                        GSList *tmp;
                        int is_iobject;
@@ -135,9 +281,6 @@ static void perl_call_signal(PERL_SCRIPT_REC *script, SV *func,
                        }
 
                        perlarg = newRV_noinc((SV *) av);
-               } else if (arg == NULL) {
-                       /* don't bless NULL arguments */
-                       perlarg = newSViv(0);
                } else if (strcmp(rec->args[n], "iobject") == 0) {
                        /* "irssi object" - any struct that has
                           "int type; int chat_type" as it's first
@@ -290,9 +433,9 @@ static void perl_signal_remove_list_one(GSList **siglist, PERL_SIGNAL_REC *rec)
         perl_signal_destroy(rec);
 }
 
-#define sv_func_cmp(f1, f2, len) \
+#define sv_func_cmp(f1, f2) \
        (f1 == f2 || (SvPOK(f1) && SvPOK(f2) && \
-               strcmp((char *) SvPV(f1, len), (char *) SvPV(f2, len)) == 0))
+               strcmp((char *) SvPV_nolen(f1), (char *) SvPV_nolen(f2)) == 0))
 
 static void perl_signal_remove_list(GSList **list, SV *func)
 {
@@ -301,7 +444,7 @@ static void perl_signal_remove_list(GSList **list, SV *func)
        for (tmp = *list; tmp != NULL; tmp = tmp->next) {
                PERL_SIGNAL_REC *rec = tmp->data;
 
-               if (sv_func_cmp(rec->func, func, PL_na)) {
+               if (sv_func_cmp(rec->func, func)) {
                        perl_signal_remove_list_one(list, rec);
                        break;
                }
index f0b8e44221f8e836d2041500e72bb0618da3291a..e2c3db6107bd05c88d2bf4734e37a23416d420c2 100644 (file)
@@ -1,6 +1,9 @@
 #ifndef __PERL_SIGNALS_H
 #define __PERL_SIGNALS_H
 
+void perl_signal_args_to_c(void (*callback)(void *, void **), void *cb_arg,
+                           int signal_id, SV **args, size_t n_args);
+
 void perl_signal_add_full(const char *signal, SV *func, int priority);
 
 void perl_signal_remove(const char *signal, SV *func);
index 9379601cc6e9464613da77e237fa1fd2260eed90..1697dbd23b491e7f82e42955fcfadb7f0fc09e99 100644 (file)
@@ -13,9 +13,9 @@
     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     GNU General Public License for more details.
 
-    You should have received a copy of the GNU General Public License
-    along with this program; if not, write to the Free Software
-    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+    You should have received a copy of the GNU General Public License along
+    with this program; if not, write to the Free Software Foundation, Inc.,
+    51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 */
 
 #define NEED_PERL_H
@@ -25,6 +25,7 @@
 #include "perl-core.h"
 #include "perl-common.h"
 #include "perl-sources.h"
+#include "misc.h"
 
 typedef struct {
         PERL_SCRIPT_REC *script;
@@ -123,7 +124,6 @@ int perl_input_add(int source, int condition, SV *func, SV *data, int once)
 {
         PERL_SCRIPT_REC *script;
        PERL_SOURCE_REC *rec;
-       GIOChannel *channel;
         const char *pkg;
 
         pkg = perl_get_package();
@@ -138,10 +138,8 @@ int perl_input_add(int source, int condition, SV *func, SV *data, int once)
        rec->func = perl_func_sv_inc(func, pkg);
        rec->data = SvREFCNT_inc(data);
 
-       channel = g_io_channel_unix_new(source);
-       rec->tag = g_input_add(channel, condition,
+       rec->tag = g_input_add_poll(source, G_PRIORITY_DEFAULT, condition,
                               (GInputFunction) perl_source_event, rec);
-       g_io_channel_unref(channel);
 
        perl_sources = g_slist_append(perl_sources, rec);
        return rec->tag;
index 91a77a8026b1123b848888c8c9d08ea93994d2ca..0a0fe0d130ff93279cccea208a3bbfea634ae7ee 100644 (file)
@@ -1,44 +1,8 @@
 #include "module.h"
-#include "recode.h"
 
 MODULE = Irssi::TextUI::TextBuffer  PACKAGE = Irssi
 PROTOTYPES: ENABLE
 
-Irssi::TextUI::TextBuffer
-textbuffer_create()
-
-#*******************************
-MODULE = Irssi::TextUI::TextBuffer  PACKAGE = Irssi::TextUI::TextBuffer  PREFIX = textbuffer_
-#*******************************
-
-void
-textbuffer_destroy(buffer)
-       Irssi::TextUI::TextBuffer buffer
-
-Irssi::TextUI::Line
-textbuffer_append(buffer, data, len, info)
-       Irssi::TextUI::TextBuffer buffer
-       char *data
-       int len
-       Irssi::TextUI::LineInfo info
-
-Irssi::TextUI::Line
-textbuffer_insert(buffer, insert_after, data, len, info)
-       Irssi::TextUI::TextBuffer buffer
-       Irssi::TextUI::Line insert_after
-       char *data
-       int len
-       Irssi::TextUI::LineInfo info
-
-void
-textbuffer_remove(buffer, line)
-       Irssi::TextUI::TextBuffer buffer
-       Irssi::TextUI::Line line
-
-void
-textbuffer_remove_all_lines(buffer)
-       Irssi::TextUI::TextBuffer buffer
-
 #*******************************
 MODULE = Irssi::TextUI::TextBuffer  PACKAGE = Irssi::TextUI::Line  PREFIX = textbuffer_line_
 #*******************************
@@ -59,17 +23,6 @@ CODE:
 OUTPUT:
        RETVAL
 
-void
-textbuffer_line_ref(line)
-       Irssi::TextUI::Line line
-
-void
-textbuffer_line_unref(line, buffer)
-       Irssi::TextUI::Line line
-       Irssi::TextUI::TextBuffer buffer
-CODE:
-       textbuffer_line_unref(buffer, line);
-
 void
 textbuffer_line_get_text(line, coloring)
        Irssi::TextUI::Line line
@@ -81,8 +34,6 @@ PPCODE:
        str = g_string_new(NULL);
        textbuffer_line2text(line, coloring, str);
        result = new_pv(str->str);
-       if (is_utf8())
-               SvUTF8_on(result);
        XPUSHs(sv_2mortal(result));
        g_string_free(str, TRUE);
 
index 5b9b1cce9e70344c0f00a399fa0ec942e88ca260..4d75549410cd0ab1f4c444a5656d40c29e306e67 100644 (file)
@@ -3,22 +3,10 @@
 MODULE = Irssi::TextUI::TextBufferView  PACKAGE = Irssi::TextUI::TextBuffer  PREFIX = textbuffer_
 PROTOTYPES: ENABLE
 
-Irssi::TextUI::TextBufferView
-textbuffer_view_create(buffer, width, height, scroll, utf8)
-       Irssi::TextUI::TextBuffer buffer
-       int width
-       int height
-       int scroll
-       int utf8
-
 #*******************************
 MODULE = Irssi::TextUI::TextBufferView  PACKAGE = Irssi::TextUI::TextBufferView  PREFIX = textbuffer_view_
 #*******************************
 
-void
-textbuffer_view_destroy(view)
-       Irssi::TextUI::TextBufferView view
-
 void
 textbuffer_view_set_default_indent(view, default_indent, longword_noindent)
        Irssi::TextUI::TextBufferView view
@@ -32,12 +20,6 @@ textbuffer_view_set_scroll(view, scroll)
        Irssi::TextUI::TextBufferView view
        int scroll
 
-void
-textbuffer_view_resize(view, width, height)
-       Irssi::TextUI::TextBufferView view
-       int width
-       int height
-
 void
 textbuffer_view_clear(view)
        Irssi::TextUI::TextBufferView view
@@ -61,11 +43,6 @@ textbuffer_view_get_line_cache(view, line)
        Irssi::TextUI::TextBufferView view
        Irssi::TextUI::Line line
 
-void
-textbuffer_view_insert_line(view, line)
-       Irssi::TextUI::TextBufferView view
-       Irssi::TextUI::Line line
-
 void
 textbuffer_view_remove_line(view, line)
        Irssi::TextUI::TextBufferView view
index a958e2020597e631b55cfc02d9524af6719f6fab..67c4c87b1cb5d47dddddacc9500c4c8f32b3af48 100644 (file)
@@ -49,7 +49,6 @@ static void perl_text_buffer_view_fill_hash(HV *hv, TEXT_BUFFER_VIEW_REC *view)
 
 static void perl_line_fill_hash(HV *hv, LINE_REC *line)
 {
-       hv_store(hv, "refcount", 8, newSViv(line->refcount), 0);
        hv_store(hv, "info", 4, plain_bless(&line->info, "Irssi::TextUI::LineInfo"), 0);
 }
 
@@ -117,8 +116,45 @@ gui_printtext(xpos, ypos, str)
        int ypos
        char *str
 
+void
+gui_input_set(str)
+       char *str
+CODE:
+       gui_entry_set_text(active_entry, str);
+
+int
+gui_input_get_pos()
+CODE:
+       RETVAL = gui_entry_get_pos(active_entry);
+OUTPUT:
+       RETVAL
+
+void
+gui_input_set_pos(pos)
+       int pos
+CODE:
+       gui_entry_set_pos(active_entry, pos);
+
 MODULE = Irssi::TextUI PACKAGE = Irssi::UI::Window
 
+void
+print_after(window, prev, level, str)
+       Irssi::UI::Window window
+       Irssi::TextUI::Line prev
+       int level
+       char *str
+PREINIT:
+       TEXT_DEST_REC dest;
+       char *text;
+       char *text2;
+CODE:
+       format_create_dest(&dest, NULL, NULL, level, window);
+       text = format_string_expand(str, NULL);
+       text2 = g_strconcat(text, "\n", NULL);
+       gui_printtext_after(&dest, prev, text2);
+       g_free(text);
+       g_free(text2);
+
 void
 gui_printtext_after(window, prev, level, str)
        Irssi::UI::Window window
index 9123afb2e308d049b515550b6e67162b64f88168..d8af5b48765eb5f270c2d2114dfe72388af4a14b 100644 (file)
@@ -6,6 +6,7 @@
 #include "statusbar.h"
 #include "textbuffer.h"
 #include "textbuffer-view.h"
+#include "gui-entry.h"
 
 typedef MAIN_WINDOW_REC *Irssi__TextUI__MainWindow;
 typedef TEXT_BUFFER_REC *Irssi__TextUI__TextBuffer;
index 4afd437c4dc92f03c466715b7b08e6e3169deb40..ff025ee94d278c02e3713461e9b1edd0d748f19d 100644 (file)
@@ -1,9 +1,8 @@
 #include "module.h"
 
-void printformat_perl(TEXT_DEST_REC *dest, char *format, char **arglist)
+static void printformat_perl(TEXT_DEST_REC *dest, char *format, char **arglist)
 {
-       THEME_REC *theme;
-       char *module, *str;
+       char *module;
        int formatnum;
 
        module = g_strdup(perl_get_package());
@@ -14,14 +13,7 @@ void printformat_perl(TEXT_DEST_REC *dest, char *format, char **arglist)
                return;
        }
 
-       theme = dest->window->theme == NULL ? current_theme :
-               dest->window->theme;
-       signal_emit("print format", 5, theme, module,
-                   dest, GINT_TO_POINTER(formatnum), arglist);
-
-        str = format_get_text_theme_charargs(theme, module, dest, formatnum, arglist);
-       if (*str != '\0') printtext_dest(dest, "%s", str);
-       g_free(str);
+       printformat_module_dest_charargs(module, dest, formatnum, arglist);
        g_free(module);
 }
 
@@ -98,8 +90,12 @@ PREINIT:
 CODE:
 
         if (!SvROK(formats))
-               croak("formats is not a reference to list");
+               croak("formats is not a reference");
+
        av = (AV *) SvRV(formats);
+       if (SvTYPE(av) != SVt_PVAV)
+               croak("formats is not a reference to a list");
+
        len = av_len(av)+1;
        if (len == 0 || (len & 1) != 0)
                croak("formats list is invalid - not divisible by 2 (%d)", len);
index ab52c910913a90f643db63d47b7ef4486922800b..ea3735a6101921d9bdaf69f20025ceee078266cb 100644 (file)
@@ -243,6 +243,17 @@ CODE:
 OUTPUT:
        RETVAL
 
+void
+window_get_history_lines(window)
+       Irssi::UI::Window window
+PREINIT:
+       HISTORY_REC *rec;
+       GList *tmp;
+PPCODE:
+       rec = command_history_current(window);
+       for (tmp = rec->list; tmp != NULL; tmp = tmp->next)
+               XPUSHs(sv_2mortal(new_pv(tmp->data)));
+
 #*******************************
 MODULE = Irssi::UI::Window  PACKAGE = Irssi::Windowitem  PREFIX = window_item_
 #*******************************
index b3b6cdbc59b2112d4eab5898dae76dd594cd28d0..99db2f5b74e6fb18a071f92739d62fd72867d32a 100644 (file)
@@ -2869,7 +2869,7 @@ void silc_get_auth_method(SilcClient client, SilcClientConnection conn,
 
   /* Check whether we find the password for this server in our
      configuration.  If it's set, always send it server. */
-  setup = server_setup_find_port(hostname, port);
+  setup = server_setup_find(hostname, port, "silcnet");
   if (setup && setup->password) {
     completion(SILC_AUTH_PASSWORD, setup->password, strlen(setup->password),
               context);
index 8b6f9f74ed50fc08326068ad805b09a3c27d86d0..f4c20c98650cc6dbff6818fae9bb76a295988599 100644 (file)
 #include "fe-common/core/keyboard.h"
 #include "fe-common/silc/module-formats.h"
 
-#ifndef SILC_PLUGIN
-/* Command line option variables */
+#ifdef SILC_PLUGIN
+static int init_failed = 0;
+#else
 static char *opt_pkcs = NULL;
 static int opt_bits = 0;
-#else
-static int init_failed = 0;
 #endif
 
 static int running = 0;
@@ -60,7 +59,6 @@ extern SilcClientOperations ops;
 SilcPublicKey irssi_pubkey = NULL;
 SilcPrivateKey irssi_privkey = NULL;
 
-char *opt_nickname = NULL;
 char *opt_hostname = NULL;
 
 /* Default hash function */
@@ -236,8 +234,8 @@ static bool i_debug;
 #endif
 
 #ifdef SILC_DEBUG
-static bool silc_irssi_debug_print(char *file, char *function, int line,
-                                  char *message, void *context)
+static SilcBool silc_irssi_debug_print(char *file, char *function, int line,
+                                      char *message, void *context)
 {
   printtext(NULL, NULL, MSGLEVEL_CLIENTCRAP,
            "DEBUG: %s:%d: %s", function, line, message);
@@ -245,7 +243,7 @@ static bool silc_irssi_debug_print(char *file, char *function, int line,
 }
 #endif
 
-static void sig_setup_changed(void)
+static void silc_sig_setup_changed(void)
 {
 #ifdef SILC_DEBUG
   bool debug = settings_get_bool("debug");
@@ -265,7 +263,7 @@ static void sig_setup_changed(void)
 
 /* Log callbacks */
 
-static bool silc_log_misc(SilcLogType type, char *message, void *context)
+static SilcBool silc_log_misc(SilcLogType type, char *message, void *context)
 {
   printtext(NULL, NULL, MSGLEVEL_CLIENTCRAP, "%s: %s",
            (type == SILC_LOG_INFO ? "[Info]" :
@@ -273,7 +271,7 @@ static bool silc_log_misc(SilcLogType type, char *message, void *context)
   return TRUE;
 }
 
-static bool silc_log_stderr(SilcLogType type, char *message, void *context)
+static SilcBool silc_log_stderr(SilcLogType type, char *message, void *context)
 {
   fprintf(stderr, "%s: %s\n",
          (type == SILC_LOG_INFO ? "[Info]" :
@@ -362,18 +360,9 @@ static void silc_register_hmac(SilcClient client, const char *hmac)
 /* Finalize init. Init finish signal calls this. */
 
 #ifdef SILC_PLUGIN
-#define FUNCTION_EXIT goto out
 void silc_opt_callback(const char *data, SERVER_REC *server,
                        WI_ITEM_REC *item)
-#else
-#define FUNCTION_EXIT exit(0)
-void silc_opt_callback(poptContext con,
-                      enum poptCallbackReason reason,
-                      const struct poptOption *opt,
-                      const char *arg, void *data)
-#endif
 {
-#ifdef SILC_PLUGIN
   unsigned char **argv=NULL, *tmp;
   SilcUInt32 *argv_lens=NULL, *argv_types=NULL, argc=0;
   int i;
@@ -392,86 +381,38 @@ void silc_opt_callback(poptContext con,
 
   if (argc < 2)
     goto err;
-#else
-  if (strcmp(opt->longName, "nick") == 0) {
-    g_free(opt_nickname);
-    opt_nickname = g_strdup(arg);
-  }
-
-  if (strcmp(opt->longName, "hostname") == 0) {
-    silc_free(opt_hostname);
-    opt_hostname = strdup(arg);
-  }
-#endif
 
-#ifdef SILC_PLUGIN
   if ((argc == 2) && (strcasecmp(argv[1], "list-ciphers") == 0)) {
-#else
-  if (strcmp(opt->longName, "list-ciphers") == 0) {
-    silc_cipher_register_default();
-#endif
     silc_client_list_ciphers();
-    FUNCTION_EXIT;
+    goto out;
   }
 
-#ifdef SILC_PLUGIN
   if ((argc == 2) && (strcasecmp(argv[1], "list-hash-funcs") == 0)) {
-#else
-  if (strcmp(opt->longName, "list-hash-funcs") == 0) {
-    silc_hash_register_default();
-#endif
     silc_client_list_hash_funcs();
-    FUNCTION_EXIT;
+    goto out;
   }
 
-#ifdef SILC_PLUGIN
   if ((argc == 2) && (strcasecmp(argv[1], "list-hmacs") == 0)) {
-#else
-  if (strcmp(opt->longName, "list-hmacs") == 0) {
-    silc_hmac_register_default();
-#endif
     silc_client_list_hmacs();
-    FUNCTION_EXIT;
+    goto out;
   }
 
-#ifdef SILC_PLUGIN
   if ((argc == 2) && (strcasecmp(argv[1], "list-pkcs") == 0)) {
-#else
-  if (strcmp(opt->longName, "list-pkcs") == 0) {
-    silc_pkcs_register_default();
-#endif
     silc_client_list_pkcs();
-    FUNCTION_EXIT;
+    goto out;
   }
 
-#ifdef SILC_PLUGIN
   if ((argc < 5) && (strcasecmp(argv[1], "debug") == 0)) {
-#else
-  if (strcmp(opt->longName, "debug") == 0) {
-    silc_log_debug(TRUE);
-    silc_log_debug_hexdump(TRUE);
-    silc_log_set_debug_string(arg);
-#endif
-#ifdef SILC_PLUGIN
     if (argc == 2) {
       printformat_module("fe-common/silc", NULL, NULL,
                         MSGLEVEL_CRAP, SILCTXT_CONFIG_DEBUG,
                         (i_debug == TRUE ? "enabled" : "disabled"));
       goto out;
     }
-#endif
 #ifndef SILC_DEBUG
-#ifdef SILC_PLUGIN
     printformat_module("fe-common/silc", NULL, NULL,
                       MSGLEVEL_CRAP, SILCTXT_CONFIG_NODEBUG);
 #else
-    fprintf(stdout,
-           "Run-time debugging is not enabled. To enable it recompile\n"
-           "the client with --enable-debug configuration option.\n");
-    sleep(1);
-#endif
-#else
-#ifdef SILC_PLUGIN
     if (strcasecmp(argv[2], "on") == 0) {
       settings_set_bool("debug", TRUE);
       if (argc == 4)
@@ -480,23 +421,17 @@ void silc_opt_callback(poptContext con,
       settings_set_bool("debug", FALSE);
     } else
       goto err;
-    sig_setup_changed();
+    silc_sig_setup_changed();
     printformat_module("fe-common/silc", NULL, NULL,
                       MSGLEVEL_CRAP, SILCTXT_CONFIG_DEBUG,
                       (settings_get_bool("debug") == TRUE ?
                        "enabled" : "disabled"));
     goto out;
-#endif
 #endif
   }
 
-#ifdef SILC_PLUGIN
   if (strcasecmp(argv[1], "create-key-pair") == 0) {
-#else
-  if (strcmp(opt->longName, "create-key-pair") == 0) {
-#endif
     /* Create new key pair and exit */
-#ifdef SILC_PLUGIN
     char *endptr, *pkcs=NULL;
     long int val;
     int bits=0;
@@ -533,24 +468,10 @@ void silc_opt_callback(poptContext con,
     printformat_module("fe-common/silc", NULL, NULL,
                       MSGLEVEL_CRAP, SILCTXT_CONFIG_NEXTTIME);
     goto out;
-#else
-    silc_cipher_register_default();
-    silc_pkcs_register_default();
-    silc_hash_register_default();
-    silc_hmac_register_default();
-    silc_create_key_pair(opt_pkcs, opt_bits, NULL, NULL,
-                        NULL, NULL, NULL, NULL, TRUE);
-    exit(0);
-#endif
   }
 
-#ifdef SILC_PLUGIN
   if ((argc < 4) && (strcasecmp(argv[1], "passphrase-change") == 0)) {
-#else
-  if (strcmp(opt->longName, "passphrase-change") == 0) {
-#endif
     /* Change the passphrase of the private key file */
-#ifdef SILC_PLUGIN
     CREATE_KEY_REC *rec;
 
     rec = g_new0(CREATE_KEY_REC, 1);
@@ -561,29 +482,8 @@ void silc_opt_callback(poptContext con,
                                            NULL, SILCTXT_CONFIG_PASS_ASK1),
                            ENTRY_REDIRECT_FLAG_HIDDEN, rec);
     goto out;
-#else
-    silc_cipher_register_default();
-    silc_pkcs_register_default();
-    silc_hash_register_default();
-    silc_hmac_register_default();
-    silc_change_private_key_passphrase(arg, NULL, NULL);
-    exit(0);
-#endif
-  }
-
-#ifndef SILC_PLUGIN
-  if (strcmp(opt->longName, "show-key") == 0) {
-    /* Dump the key */
-    silc_cipher_register_default();
-    silc_pkcs_register_default();
-    silc_hash_register_default();
-    silc_hmac_register_default();
-    silc_show_public_key_file((char *)arg);
-    exit(0);
   }
-#endif
 
-#ifdef SILC_PLUGIN
 err:
   printformat_module("fe-common/silc", NULL, NULL,
                     MSGLEVEL_CRAP, SILCTXT_CONFIG_UNKNOWN,
@@ -596,9 +496,8 @@ out:
   silc_free(argv);
   silc_free(argv_lens);
   silc_free(argv_types);
-#endif
 }
-#undef FUNCTION_EXIT
+#endif /* SILC_PLUGIN */
 
 /* Called to indicate the client library has stopped. */
 static void
@@ -642,7 +541,9 @@ static void sig_init_finished(void)
   }
 
   /* Initialize the SILC client */
-  opt_hostname = (opt_hostname ? opt_hostname : silc_net_localhost());
+  opt_hostname = (char *)settings_get_str("hostname");
+  if (!opt_hostname || *opt_hostname == '\0')
+    opt_hostname = silc_net_localhost();
   if (!silc_client_init(silc_client, settings_get_str("user_name"),
                        opt_hostname, settings_get_str("real_name"),
                        silc_running, NULL)) {
@@ -668,36 +569,134 @@ static void sig_init_finished(void)
   my_silc_scheduler(NULL);
 }
 
+#ifndef SILC_PLUGIN
+static gboolean list_ciphers(const gchar *option_name, const gchar *value,
+                            gpointer data, GError **error)
+{
+  silc_cipher_register_default();
+  silc_client_list_ciphers();
+  exit(0);
+  return true;
+}
+
+static gboolean list_hash_funcs(const gchar *option_name, const gchar *value,
+                               gpointer data, GError **error)
+{
+  silc_hash_register_default();
+  silc_client_list_hash_funcs();
+  exit(0);
+  return true;
+}
+
+static gboolean list_hmacs(const gchar *option_name, const gchar *value,
+                          gpointer data, GError **error)
+{
+  silc_hmac_register_default();
+  silc_client_list_hmacs();
+  exit(0);
+  return true;
+}
+
+static gboolean list_pkcs(const gchar *option_name, const gchar *value,
+                         gpointer data, GError **error)
+{
+  silc_pkcs_register_default();
+  silc_client_list_pkcs();
+  exit(0);
+  return true;
+}
+
+#ifdef SILC_DEBUG
+static gboolean enable_debug(const gchar *option_name, const gchar *value,
+                            gpointer data, GError **error)
+{
+  /* Set debug string setting but don't enable it.  User must be
+     /set enable on to get the debugs. */
+  settings_set_str("debug_string", (char *)value);
+
+  /* Default debugging when -d was given in command line */
+  silc_log_debug(TRUE);
+  silc_log_debug_hexdump(TRUE);
+  silc_log_set_debug_string((char *)value);
+  return true;
+}
+#else
+static gboolean enable_debug(const gchar *option_name, const gchar *value,
+                            gpointer data, GError **error)
+{
+  fprintf(stdout,
+         "Run-time debugging is not enabled. To enable it recompile\n"
+         "the client with --enable-debug configuration option.\n");
+  sleep(1);
+  return true;
+}
+#endif /* SILC_DEBUG */
+
+static gboolean create_keypair(const gchar *option_name, const gchar *value,
+                              gpointer data, GError **error)
+{
+  silc_cipher_register_default();
+  silc_pkcs_register_default();
+  silc_hash_register_default();
+  silc_hmac_register_default();
+  silc_create_key_pair(opt_pkcs, opt_bits, NULL, NULL, NULL, NULL,
+                      NULL, NULL, TRUE);
+  exit(0);
+  return true;
+}
+
+static gboolean change_passphrase(const gchar *option_name, const gchar *value,
+                                 gpointer data, GError **error)
+{
+  silc_cipher_register_default();
+  silc_pkcs_register_default();
+  silc_hash_register_default();
+  silc_hmac_register_default();
+  silc_change_private_key_passphrase((char *)value, NULL, NULL);
+  exit(0);
+  return true;
+}
+
+static gboolean show_key(const gchar *option_name, const gchar *value,
+                                 gpointer data, GError **error)
+{
+  silc_cipher_register_default();
+  silc_pkcs_register_default();
+  silc_hash_register_default();
+  silc_hmac_register_default();
+  silc_show_public_key_file((char *)value);
+  exit(0);
+  return true;
+}
+#endif /* !SILC_PLUGIN */
+
 /* Init SILC. Called from src/fe-text/silc.c */
 
 void silc_core_init(void)
 {
 #ifndef SILC_PLUGIN
-  static struct poptOption silc_options[] = {
-    { NULL, '\0', POPT_ARG_CALLBACK, (void *)&silc_opt_callback, '\0', NULL },
-    { "list-ciphers", 0, POPT_ARG_NONE, NULL, 0,
-      "List supported ciphers", NULL },
-    { "list-hash-funcs", 0, POPT_ARG_NONE, NULL, 0,
-      "List supported hash functions", NULL },
-    { "list-hmacs", 0, POPT_ARG_NONE, NULL, 0,
+  static GOptionEntry silc_options[] = {
+    { "list-ciphers", 0, G_OPTION_FLAG_NO_ARG, G_OPTION_ARG_CALLBACK,
+      list_ciphers, "List supported ciphers", NULL },
+    { "list-hash-funcs", 0, G_OPTION_FLAG_NO_ARG, G_OPTION_ARG_CALLBACK,
+      list_hash_funcs, "List supported hash functions", NULL },
+    { "list-hmacs", 0, G_OPTION_FLAG_NO_ARG, G_OPTION_ARG_CALLBACK, list_hmacs,
       "List supported HMACs", NULL },
-    { "list-pkcs", 0, POPT_ARG_NONE, NULL, 0,
+    { "list-pkcs", 0, G_OPTION_FLAG_NO_ARG, G_OPTION_ARG_CALLBACK, list_pkcs,
       "List supported PKCSs", NULL },
-#ifdef SILC_DEBUG
-    { "debug", 'd', POPT_ARG_STRING, NULL, 0,
-      "Enable debugging", "STRING" },
-#endif /* SILC_DEBUG */
-    { "create-key-pair", 'C', POPT_ARG_NONE, NULL, 0,
-      "Create new public key pair", NULL },
-    { "pkcs", 0, POPT_ARG_STRING, &opt_pkcs, 0,
+    { "debug", 'd', 0, G_OPTION_ARG_CALLBACK, enable_debug,
+      "Enable debugging", NULL },
+    { "create-key-pair", 'C', G_OPTION_FLAG_NO_ARG, G_OPTION_ARG_CALLBACK,
+      create_keypair, "Create new public key pair", NULL },
+    { "pkcs", 0, 0, G_OPTION_ARG_STRING, &opt_pkcs,
       "Set the PKCS of the public key pair (-C)", "PKCS" },
-    { "bits", 0, POPT_ARG_INT, &opt_bits, 0,
+    { "bits", 0, 0, G_OPTION_ARG_INT, &opt_bits,
       "Set the length of the public key pair (-C)", "VALUE" },
-    { "passphrase-change", 'P', POPT_ARG_STRING, NULL, 0,
+    { "passphrase-change", 'P', 0, G_OPTION_ARG_CALLBACK, change_passphrase,
       "Change the passphrase of private key file", "FILE" },
-    { "show-key", 'S', POPT_ARG_STRING, NULL, 0,
+    { "show-key", 'S', 0, G_OPTION_ARG_CALLBACK, show_key, 
       "Show the contents of the public key", "FILE" },
-    { NULL, '\0', 0, NULL }
+    { NULL }
   };
 #endif
 
@@ -750,14 +749,14 @@ void silc_core_init(void)
   settings_add_str("debug", "debug_string", "");
 #endif
 
-  signal_add("setup changed", (SIGNAL_FUNC) sig_setup_changed);
+  signal_add("setup changed", (SIGNAL_FUNC) silc_sig_setup_changed);
 #ifndef SILC_PLUGIN
   signal_add("irssi init finished", (SIGNAL_FUNC) sig_init_finished);
-#endif
+#endif /* !SILC_PLUGIN */
 
 #if defined (SILC_PLUGIN) && defined (SILC_DEBUG)
   if (settings_get_bool("debug") == TRUE)
-    sig_setup_changed();
+    silc_sig_setup_changed();
 #endif
 
   silc_init_userinfo();
@@ -851,12 +850,7 @@ void silc_core_deinit(void)
       silc_client_run_one(silc_client);
   }
 
-  if (opt_hostname)
-    silc_free(opt_hostname);
-  if (opt_nickname)
-    g_free(opt_nickname);
-
-  signal_remove("setup changed", (SIGNAL_FUNC) sig_setup_changed);
+  signal_remove("setup changed", (SIGNAL_FUNC) silc_sig_setup_changed);
 #ifdef SILC_PLUGIN
   command_unbind("silc", (SIGNAL_FUNC) silc_opt_callback);
 #else
index f1f1541f562d1c5cdafc780d32d272cb73e19545..d8a9b84130461c622309731a8afd0462c08ba7c6 100644 (file)
@@ -29,7 +29,6 @@ extern SilcClient silc_client;
 extern SilcHash sha1hash;
 extern SilcPublicKey irssi_pubkey;
 extern SilcPrivateKey irssi_privkey;
-extern char *opt_nickname;
 
 #define IS_SILC_ITEM(rec) (IS_SILC_CHANNEL(rec) || IS_SILC_QUERY(rec))
 
index 9923cc530405b18413deb7452a8bb0c3628b3104..5d953cc5b785ef6f978975cac3d0ef77d4f415ed 100644 (file)
@@ -124,7 +124,7 @@ static char *expando_cumode_space(SERVER_REC *server, void *item,
 static char *expando_silc_version(SERVER_REC *server, void *item,
                                  int *free_ret)
 {
-  return VERSION;
+  return SILC_VERSION_STRING;
 }
 
 void silc_expandos_init(void)
index 4b18e371d7aeba7dbc522bc5354120b11d58db93..c1f2054ebe6bb6ac7c7187e14bbb8f910aceef94 100644 (file)
@@ -298,12 +298,9 @@ static void silc_connect_cb(SilcClient client,
     /* We have successfully connected to server */
 
     /* Enable queueing until we have our requested nick */
-    if (((opt_nickname &&
-         !silc_utf8_strcasecmp(opt_nickname,
-                               conn->local_entry->nickname)) ||
-        (settings_get_str("nick") &&
-         !silc_utf8_strcasecmp(settings_get_str("nick"),
-                               conn->local_entry->nickname))) &&
+    if (settings_get_str("nick") &&
+       !silc_utf8_strcasecmp(settings_get_str("nick"),
+                             conn->local_entry->nickname) &&
        silc_utf8_strcasecmp(conn->local_entry->nickname,
                             conn->local_entry->username))
       silc_queue_enable(conn);
@@ -410,8 +407,7 @@ static void sig_connected_stream_created(SilcSocketStreamStatus status,
 
   /* Set connection parameters */
   memset(&params, 0, sizeof(params));
-  params.nickname = (opt_nickname ? (char *)opt_nickname :
-                    (char *)settings_get_str("nick"));
+  params.nickname = (char *)settings_get_str("nick");
   params.timeout_secs = settings_get_int("key_exchange_timeout_secs");
   params.rekey_secs = settings_get_int("key_exchange_rekey_secs");
   params.pfs = settings_get_bool("key_exchange_rekey_pfs");
index f0ec779b3e31fc57f5c9e98ece8114bfc330a6d8..bf10451fe68263b8467c95df875d6d312aebabb2 100755 (executable)
 # Remember to include the asterisk ('*').
 $SRC_PATH='src';
 
-$FOO = `find src -name '*.c' -exec perl findsyntax.pl \{\} \\; | sed 's/.*SYNTAX: //' > irssi_syntax`;
+@files = `find src -name '*.c'`;
 
+foreach $file (@files) {
+   open (FILE, "$file");
+   while (<FILE>) {
+      chomp;
+      if (m!/\*.SYNTAX\:! || $state) {
+        s/^\s+/ /;
+        s/.*SYNTAX: //;
+        if (/^ [A-Z]+/) {
+           push @lines, $line;
+           $line = "";
+           s/^ //;
+        }
+        $line .= $_;
+        if (m!\*/!) {
+           $line =~ s!\*/!!;
+           push @lines, $line;
+           $line = "";
+           $state = 0;
+        } else {
+           $state = 1;
+        }
+      }
+   }
+   close (FILE);
+}
 while (<docs/help/in/*.in>) {
    next if (/Makefile/);
 
@@ -21,9 +46,8 @@ while (<docs/help/in/*.in>) {
    $count = 0;
    foreach $DATARIVI (@data) {
       if ($DATARIVI =~ /\@SYNTAX\:(.+)\@/) {
-          $etsittava = "\U$1 ";
-          $SYNTAX = `grep \'^$etsittava\' irssi_syntax`;
-         $SYNTAX =~ s/\*\///g;
+          $SYNTAX = join "\n", (grep /^\U$1 /, @lines);
+         $SYNTAX .= "\n" if $SYNTAX;
          $SYNTAX =~ s/ *$//; $SYNTAX =~ s/ *\n/\n/g;
 
          # add %| after "COMMAND SUB " so parameters will indent correctly
@@ -54,4 +78,3 @@ while (<docs/help/in/*.in>) {
    print NEWFILE @data;
    close (NEWFILE);
 }
-unlink "irssi_syntax";
index e50b86176cfff603514ea6e46e0ff47748e2aef6..d36c98c7f326aa6a91df0fc4088dd671d6492eb7 100644 (file)
@@ -12,9 +12,10 @@ touch $file
 cd apps/irssi
 ln -fs ../../Makefile.defines.in Makefile.defines.in
 ln -fs ../../Makefile.defines_int.in Makefile.defines_int.in
-sh autogen.sh 2>/dev/null 1>/dev/null
-sed '/#undef PACKAGE_/d' config.h.in > config.h.in.tmp
-sed '/#undef PACKAGE/d' config.h.in.tmp > config.h.in
+NOCONFIGURE=yes sh autogen.sh 2>/dev/null 1>/dev/null
+sed '/#undef PACKAGE_/d' irssi-config.h.in > irssi-config.h.in.tmp
+sed '/#undef PACKAGE/d' irssi-config.h.in.tmp > irssi-config.h.in
+rm -f irssi-config.h.in.tmp
 cd "$cur"
 version_date=`date +%Y%m%d`
 echo "/* automatically created by autogen.sh */" > $file
index ffddd0197b2e9a9c6f7f8d13190a5b91222938a1..8400bfab3b9f4d6440324d474d4b399abb8d42c0 100644 (file)
@@ -86,14 +86,18 @@ doc-install:
        -$(INSTALL_DATA) $(top_srcdir)/GPL $(docdir)/
        -$(INSTALL_DATA) $(top_srcdir)/BSD $(docdir)/
        -$(INSTALL_DATA) $(top_srcdir)/doc/*.txt $(docdir)/
+       -$(INSTALL_DATA) $(top_srcdir)/TODO $(docdir)/
+       -$(INSTALL_DATA) $(top_srcdir)/README.SYMBIAN $(docdir)/
+       -$(INSTALL_DATA) $(top_srcdir)/README.WIN32 $(docdir)/
 #endif SILC_DIST_TOOLKIT
        -$(INSTALL_DATA) $(top_srcdir)/doc/FAQ $(docdir)/
        -$(INSTALL_DATA) $(top_srcdir)/COPYING $(docdir)/
        -$(INSTALL_DATA) $(top_srcdir)/ChangeLog $(docdir)/
        -$(INSTALL_DATA) $(top_srcdir)/CREDITS $(docdir)/
-       -$(INSTALL_DATA) $(top_srcdir)/README* $(docdir)/
+       -$(INSTALL_DATA) $(top_srcdir)/README $(docdir)/
+       -$(INSTALL_DATA) $(top_srcdir)/README.MACOSX $(docdir)/
+       -$(INSTALL_DATA) $(top_srcdir)/README.PLUGIN $(docdir)/
        -$(INSTALL_DATA) $(top_srcdir)/INSTALL $(docdir)/
-       -$(INSTALL_DATA) $(top_srcdir)/TODO $(docdir)/
 
 install-data-hook:     \
        doc-install