1
0
mirror of https://github.com/irssi/irssi.git synced 2024-06-02 06:11:11 +00:00

.98 final out

git-svn-id: http://svn.irssi.org/repos/irssi/trunk@1294 dbcabf3a-b0e7-0310-adc4-f8d773084564
This commit is contained in:
Timo Sirainen 2001-02-23 08:07:10 +00:00 committed by cras
parent 456836e49c
commit 0241970306
2 changed files with 134 additions and 90 deletions

60
TODO
View File

@ -99,21 +99,21 @@
so server won't split it when it adds your nick+host mask)
- server connecting:
- Don't try to restore user modes set by server automatically when
reconnecting to another server. Like when server sets +r mode to you
you won't get rid of it until you /disconnect.
- DNS problems may cause removal of i-line, irssi shouldn't stop
trying to reconnect the server if it happens.. Maybe it never should
stop reconnecting to servers that are in config.
- /RECONNECT <servertag> - If <servertag> belongs to some IRC network,
reconnect to next server in that ircnet, otherwise just reconnect
to the server.
- /SERVER <number> would connect to n'th server in list. Show the
numbers with /SERVER LIST
- /CONNECT <ircnet> could remove existing ircnet connection from
reconnect queue if it exists (only if there's only one?). Also if
we're already connected to the ircnet it could complain about it
and -yes would force it.
- Don't try to restore user modes set by server automatically when
reconnecting to another server. Like when server sets +r mode to you
you won't get rid of it until you /disconnect.
- DNS problems may cause removal of i-line, irssi shouldn't stop
trying to reconnect the server if it happens.. Maybe it never should
stop reconnecting to servers that are in config.
- /RECONNECT <servertag> - If <servertag> belongs to some IRC network,
reconnect to next server in that ircnet, otherwise just reconnect
to the server.
- /SERVER <number> would connect to n'th server in list. Show the
numbers with /SERVER LIST
- /CONNECT <ircnet> could remove existing ircnet connection from
reconnect queue if it exists (only if there's only one?). Also if
we're already connected to the ircnet it could complain about it
and -yes would force it.
- Tab completion:
- Complete aliases
@ -142,21 +142,21 @@
- Try to make them create only .so files instead of .a and all..
- perl scripting:
- /SCRIPT for listing scripts, /SCRIPT REMOVE <name>|ALL,
/SCRIPT PERL RELOAD == ex. /PERLFLUSH
- /PERL command - how does signal_add() work with it? probably not well.
How to remove those scripts? etc. /SCRIPT could show them as some
anonymous scripts, maybe list the whole script in the line..
- Possibility to modify entry line somehow
- Possibility to use "complete word" signal, needs GSList** handling
- Add structures: CHATNET_REC, MODULE_REC, THEME_REC, KEYINFO_REC,
CHAT_PROTOCOL_REC
- signal_emit() - if emitting unknown signal, it could automatically
save the types of sent parameters so another perl script could
signal_add() it.
- Perl module and the Irssi and Irssi::Irc libraries could have some
version checks so that if they don't match it would complain.
- Dependencies don't work with .xs files..
- /SCRIPT for listing scripts, /SCRIPT REMOVE <name>|ALL,
/SCRIPT PERL RELOAD == ex. /PERLFLUSH
- /PERL command - how does signal_add() work with it? probably not well.
How to remove those scripts? etc. /SCRIPT could show them as some
anonymous scripts, maybe list the whole script in the line..
- Possibility to modify entry line somehow
- Possibility to use "complete word" signal, needs GSList** handling
- Add structures: CHATNET_REC, MODULE_REC, THEME_REC, KEYINFO_REC,
CHAT_PROTOCOL_REC
- signal_emit() - if emitting unknown signal, it could automatically
save the types of sent parameters so another perl script could
signal_add() it.
- Perl module and the Irssi and Irssi::Irc libraries could have some
version checks so that if they don't match it would complain.
- Dependencies don't work with .xs files..
- Bigger code changes:
- Restructure code tree so that non-IRC chat protocols would be in

View File

@ -234,43 +234,54 @@ dnl ** fe-text checks
dnl **
AC_PATH_PROG(sedpath, sed)
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 "x$GLIB_DIR" != "x"; then
dnl glib in irssi directory, use it
AC_MSG_RESULT([yes, using it])
AC_DEFUN(AC_CHECK_GLIBDIR,[
AC_MSG_CHECKING([whether GLib is unpacked to irssi dir])
dnl * we have to do this at this point so we know what libs gmodule needs
echo
echo "configuring GLib ..."
echo
cd $GLIB_DIR
./configure
cd ..
echo
GLIB_DIR=`for d in *; do test -f $d/glib.h && echo $d; done`
if test "x$GLIB_DIR" != "x"; then
dnl * glib in irssi directory, use it
AC_MSG_RESULT([yes, using it])
GLIB_LDEXTRA=`$GLIB_DIR/glib-config --libs gmodule|sed -e 's/-lglib//' -e 's/-lgmodule//' -e 's,-L/usr/local/lib ,,'|sed '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"
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
elif test -f $full_glib_dir/libglib.a; then
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"
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"
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"
fi
fi
AC_SUBST(GLIB_DIR)
AC_SUBST(GLIB_CFLAGS)
AC_SUBST(GLIB_LIBS)
else
AC_ERROR([GLIB was not compiled properly, libglib.a not found])
AC_MSG_RESULT([no])
fi
AC_SUBST(GLIB_DIR)
AC_SUBST(GLIB_CFLAGS)
AC_SUBST(GLIB_LIBS)
else
AC_MSG_RESULT([no])
])
AC_CHECK_GLIBDIR
if test "x$GLIB_DIR" = "x"; then
AM_PATH_GLIB(1.2.0,,, gmodule)
if test "x$GLIB_LIBS" = "x"; then
echo "*** trying without -lgmodule"
@ -279,13 +290,43 @@ else
else
AC_DEFINE(HAVE_GMODULE)
fi
if test "x$GLIB_LIBS" = "x"; 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."
AC_ERROR([GLIB is required to build irssi.])
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
dnl * I think it's pretty safe to assume GLib 1.2.8 since the next
dnl * will be 2.0 (or 1.4?) and it's not sure if irssi compiles
dnl * with it
glib_file=glib-1.2.8.tar.gz
dlcmd=
if test -f "`which ncftpget`"; then
dlcmd="ncftpget ftp://ftp.gtk.org/pub/gtk/v1.2/$glib_file"
fi
if test -f "`which wget`"; then
dlcmd="wget http://irssi.org/files/$glib_file"
fi
if test "x$dlcmd" != "x"; then
echo "*** I can download GLib for you now. If you don't want to, press CTRL-C now."
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 "x$GLIB_LIBS" = "x"; then
AC_ERROR([GLIB is required to build irssi.])
fi
fi
fi
@ -316,24 +357,22 @@ if test ! -s .libs/libconftest.a; then
fi
dnl ** check if dynamic linking worked
if test ! -s .libs/libconftest.so -a -s .libs/libconftest.so.0.0; then
mv .libs/libconftest.so.0.0 .libs/libconftest.so
fi
if test ! -s .libs/libconftest.so; then
libfile=`grep ^library_names libconftest.la|$sedpath "s/library_names='\(.*\)'.*/\1/"|$sedpath 's/.* \([[^ ]]*\)$/\1/'`
if test ! -s .libs/$libfile; then
AC_MSG_RESULT([no, error linking test module])
else
cat > conftest.c <<EOF
#include <gmodule.h>
main() {
GModule *m; int (*modfunc)(void);
m = g_module_open(".libs/libconftest.so", 0);
m = g_module_open(".libs/$libfile", 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 conftest.c -o conftest `$GLIB_CONFIG --cflags --libs gmodule` 2> /dev/null > /dev/null
$CC $CFLAGS 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
@ -438,27 +477,31 @@ if test "$want_perl" != "no"; then
fi
dnl * remove all database stuffs
PERL_LDFLAGS=`echo $PERL_LDFLAGS | $sedpath 's/-ldb\( \|$\)//'`
PERL_LDFLAGS=`echo $PERL_LDFLAGS | $sedpath 's/-ldbm\( \|$\)//'`
PERL_LDFLAGS=`echo $PERL_LDFLAGS | $sedpath 's/-lndbm\( \|$\)//'`
PERL_LDFLAGS=`echo $PERL_LDFLAGS | $sedpath 's/-lgdbm\( \|$\)//'`
dnl * nsl is already in ldflags
PERL_LDFLAGS=`echo $PERL_LDFLAGS | $sedpath 's/-lnsl\( \|$\)//'`
dnl * libc is of course linked without needing -lc
dnl * -rdynamic must not be in LIBADD line
for word in -ldb -ldbm -lndbm -lgdbm -lnsl -lc -rdynamic; do
PERL_LDFLAGS=`echo $PERL_LDFLAGS | $sedpath -e "s/$word //" -e "s/$word$//"`
done
dnl * linux specific ..
if echo $host_os | grep linux > /dev/null; then
PERL_LDFLAGS=`echo $PERL_LDFLAGS | $sedpath 's/-lposix\( \|$\)//'`
fi
dnl * libc is of course in list already
PERL_LDFLAGS=`echo $PERL_LDFLAGS | $sedpath 's/-lc\( \|$\)//'`
dnl * must not be in LIBADD line
PERL_LDFLAGS=`echo $PERL_LDFLAGS | $sedpath 's/-rdynamic\( \|$\)//'`
case "$host_os" in
linux*)
PERL_LDFLAGS=`echo $PERL_LDFLAGS | $sedpath -e 's/-lposix //' -e 's/-lposix$//'`
;;
hpux*)
if test "x$ac_cv_prog_gcc" = "xyes"; then
PERL_CFLAGS=`echo $PERL_CFLAGS | $sedpath -e 's/-Ae //' -e 's/-Ae$//'`
PERL_LDFLAGS=`echo $PERL_LDFLAGS | $sedpath -e 's/-Ae //' -e 's/-Ae$//'`
fi
;;
*)
;;
esac
dnl * check that perl's ldflags actually work
AC_CACHE_VAL(irssi_cv_lib_perl_works, [
echo "main(){return 0;}" > conftest.c
$CC $CFLAGS $LDFLAGS $PERL_LDFLAGS conftest.c -o conftest 2> /dev/null > /dev/null
echo "main(){perl_alloc(); return 0;}" > conftest.c
$CC $CFLAGS conftest.c -o conftest $LDFLAGS $PERL_LDFLAGS 2> /dev/null > /dev/null
if test -s conftest; then
irssi_cv_lib_perl_works=yes
else
@ -686,7 +729,7 @@ if test "x$want_perl" != "xno"; then
if test "x$old_dir" != "x$whole_dir"; then
for file in $whole_dir/src/perl/*.[[ch]] $whole_dir/src/perl/libperl_orig.la $whole_dir/src/perl/libperl_dynaloader.la $whole_dir/src/perl/common/typemap $whole_dir/src/perl/common/module.h $whole_dir/src/perl/common/*.xs $whole_dir/src/perl/irc/typemap $whole_dir/src/perl/irc/module.h $whole_dir/src/perl/irc/*.xs; do
link=`echo $file|sed "s?$whole_dir/??"`
link=`echo $file|$sedpath "s?$whole_dir/??"`
rm -f $link
$LN_S $file $link
done
@ -706,6 +749,7 @@ fi
echo "Building irssi bot ......... : $want_irssibot"
echo "Building irssi proxy ....... : $want_irssiproxy"
echo "Building with IPv6 support . : $want_ipv6"
if test "x$want_perl" = "xstatic"; then
echo "Building with Perl support . : static (in irssi binary)"
elif test "x$want_perl" = "xyes"; then
@ -719,7 +763,7 @@ else
fi
fi
if test "x$perl_mod_error" != "x"; then
if test "x$want_perl" != "xno" -a "x$perl_mod_error" != "x"; then
echo " - NOTE: Perl support will be compiled statically to irssi, not as"
echo " a module as requested. Reason:"
echo " $perl_mod_error"