diff --git a/Makefile.am b/Makefile.am index 3b9e61f3..bd0bed9c 100644 --- a/Makefile.am +++ b/Makefile.am @@ -11,21 +11,7 @@ if BUILD_SERVERTEST SERVERTEST=servertest endif -SUBDIRS = po intl macros src $(PLUGINS) $(SERVERTEST) docs scripts - -## to automatically rebuild aclocal.m4 if any of the macros in -## `macros/' change -@MAINT@include macros/macros.dep -@MAINT@macros/macros.dep: $(srcdir)/macros/Makefile.am -@MAINT@ cd macros && $(MAKE) macros.dep - -if HAVE_GNOME -desktopdir = $(datadir)/gnome/apps/Internet -desktop_DATA = irssi.desktop - -corbadir = $(sysconfdir)/CORBA/servers -corba_DATA = irssi.gnorba -endif +SUBDIRS = po intl src $(SERVERTEST) docs scripts confdir = $(sysconfdir)/irssi conf_DATA = config colorless.theme split.theme @@ -40,7 +26,8 @@ EXTRA_DIST = \ irssi.spec \ $(conf_DATA) \ irssi.gnorba \ - irssi.desktop + irssi.desktop \ + irssi-config.in ## make rpms rpm: Makefile diff --git a/acconfig.h b/acconfig.h index 6ee62c3f..7fc82431 100644 --- a/acconfig.h +++ b/acconfig.h @@ -2,17 +2,6 @@ #undef SYSCONFDIR #undef HELPDIR #undef PLUGINSDIR -#undef LOCALEDIR - -/* gtk / gnome */ -#undef HAVE_GTK -#undef HAVE_IMLIB -#undef HAVE_GNOME -#undef HAVE_GNOME_PANEL - -/* hebrew support for GtkText */ -#undef GTK_HEBREW -#undef GTK_HEBREW_RC /* misc.. */ #undef MEM_DEBUG @@ -29,7 +18,6 @@ #undef USE_NCURSES #undef NO_COLOR_CURSES #undef SCO_FLAVOR -#undef NCURSES_970530 /* our own curses checks */ #undef HAVE_NCURSES_USE_DEFAULT_COLORS diff --git a/autogen.sh b/autogen.sh index bf36cc97..965bfd8b 100755 --- a/autogen.sh +++ b/autogen.sh @@ -23,4 +23,115 @@ echo "/* automatically created by autogen.sh */" > irssi-version.h echo "#define IRSSI_VERSION \"$version\"" >> irssi-version.h echo "#define IRSSI_VERSION_DATE \"$version_date\"" >> irssi-version.h -. $srcdir/macros/autogen.sh +# *********** 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 Gnome." + 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 Gnome." + echo "Get ftp://ftp.gnu.org/pub/gnu/libtool-1.2d.tar.gz" + echo "(or a newer version if it is available)" + DIE=1 + } +} + +grep "^AM_GNU_GETTEXT" $srcdir/configure.in >/dev/null && { + grep "sed.*POTFILES" $srcdir/configure.in >/dev/null || \ + (gettext --version) < /dev/null > /dev/null 2>&1 || { + echo + echo "**Error**: You must have \`gettext' installed to compile Gnome." + echo "Get ftp://alpha.gnu.org/gnu/gettext-0.10.35.tar.gz" + echo "(or a newer version if it is available)" + DIE=1 + } +} + +grep "^AM_GNOME_GETTEXT" $srcdir/configure.in >/dev/null && { + grep "sed.*POTFILES" $srcdir/configure.in >/dev/null || \ + (gettext --version) < /dev/null > /dev/null 2>&1 || { + echo + echo "**Error**: You must have \`gettext' installed to compile Gnome." + echo "Get ftp://alpha.gnu.org/gnu/gettext-0.10.35.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 Gnome." + 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 || { + 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 + +case $CC in +xlc ) + am_opt=--include-deps;; +esac + +if grep "^AM_GNU_GETTEXT" configure.in >/dev/null; then + echo "Creating aclocal.m4 ..." + test -r aclocal.m4 || touch aclocal.m4 + echo "Running gettextize... Ignore non-fatal messages." + echo "no" | gettextize --force --copy + echo "Making aclocal.m4 writable ..." + test -r aclocal.m4 && chmod u+w aclocal.m4 +fi +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 ..." +aclocal $aclocalinclude +if grep "^AM_CONFIG_HEADER" configure.in >/dev/null; then + echo "Running autoheader..." + autoheader +fi +echo "Running automake --gnu $am_opt ..." +automake --add-missing --gnu $am_opt +echo "Running autoconf ..." +autoconf + +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 diff --git a/configure.in b/configure.in index 5ffee09a..82f6d411 100644 --- a/configure.in +++ b/configure.in @@ -5,8 +5,6 @@ AM_INIT_AUTOMAKE(irssi, 0.7.90) AM_MAINTAINER_MODE -AM_ACLOCAL_INCLUDE(macros) - AC_ISC_POSIX AC_PROG_CC AC_PROG_CPP @@ -16,9 +14,6 @@ AM_PROG_LIBTOOL AC_CHECK_HEADERS(string.h stdlib.h unistd.h dirent.h sys/ioctl.h libintl.h) -GNOME_INIT -GNOME_SUPPORT_CHECKS - AC_ARG_WITH(socks, [ --with-socks Build with socks support], if test x$withval = xyes; then @@ -47,45 +42,6 @@ AC_ARG_WITH(mysql, fi, want_mysql=no) -AC_ARG_WITH(imlib, -[ --with-imlib Build with imlib support], - if test x$withval = xyes; then - want_imlib=yes - else - if test "x$withval" = xno; then - want_imlib=no - else - want_imlib=yes - fi - fi, - want_imlib=yes) - -AC_ARG_WITH(gtk, -[ --with-gtk Build GTK frontend], - if test x$withval = xyes; then - want_gtk=yes - else - if test "x$withval" = xno; then - want_gtk=no - else - want_gtk=yes - fi - fi, - want_gtk=yes) - -AC_ARG_WITH(gnome-panel, -[ --with-gnome-panel Build with gnome panel applet support], - if test x$withval = xyes; then - want_gnome_panel=yes - else - if test "x$withval" = xno; then - want_gnome_panel=no - else - want_gnome_panel=yes - fi - fi, - want_gnome_panel=yes) - AC_ARG_WITH(textui, [ --with-textui Build text frontend], if test x$withval = xyes; then @@ -177,19 +133,6 @@ AC_ARG_ENABLE(ipv6, fi, want_ipv6=no) -AC_ARG_ENABLE(gtk-hebrew, -[ --enable-gtk-hebrew Enable Hebrew support], - if test "x$enableval" = xno; then - want_gtk_hebrew=no - HEBREW_LIBS="" - else - AC_DEFINE(GTK_HEBREW) - AC_DEFINE_UNQUOTED(GTK_HEBREW_RC, "$enableval") - HEBREW_LIBS="-lfribidi" - want_gtk_hebrew=yes - fi, - want_gtk_hebrew=no) - dnl ** dnl ** just some generic stuff... dnl ** @@ -242,82 +185,13 @@ if test "x$want_socks" = "xyes"; then ]) fi -dnl ** -dnl ** check for gnome -dnl ** - -if test "x$want_gnome" = "xyes"; then - if test "x$GNOME_LIBS" = "x"; then - want_gnome="no"; - fi - if test "x$want_gtk" = "xno"; then - want_gnome="no"; - fi -fi - -if test "x$want_gnome" = "xyes"; then - AC_DEFINE(HAVE_GTK) - AC_DEFINE(HAVE_GNOME) - AC_DEFINE(HAVE_IMLIB) - - GUI_CFLAGS="$GNOME_INCLUDEDIR" - - dnl ** - dnl ** check for gnome panel applet library - dnl ** - - if test "x$want_gnome_panel" = "xyes"; then - AC_CHECK_LIB(panel_applet, applet_widget_init, [ - GUI_LIBS="$GNOME_LIBDIR $GNOMEGNORBA_LIBS -lpanel_applet" - AC_DEFINE(HAVE_GNOME_PANEL) - ], [ - GUI_LIBS="$GNOME_LIBDIR $GNOMEUI_LIBS" - want_gnome_panel="no" - ], $GNOME_LIBDIR $GNOMEGNORBA_LIBS -lpanel_applet) - else - GUI_LIBS="$GNOME_LIBDIR $GNOMEUI_LIBS" - fi -else - want_gnome_panel="no" - - if test "x$want_gtk" = "xyes"; then - AC_DEFINE(HAVE_GTK) - AM_PATH_GTK(1.2.0) - else - GTK_LIBS= - fi - - if test "x$GTK_LIBS" != "x"; then - GUI_CFLAGS="$GTK_CFLAGS" - GUI_LIBS="$GTK_LIBS" - - if test "x$want_imlib" = "xyes"; then - AM_PATH_GDK_IMLIB(, [define_imlib=true]) - if test x$define_imlib = xtrue; then - AC_DEFINE(HAVE_IMLIB) - GUI_CFLAGS="$GUI_CFLAGS $GDK_IMLIB_CFLAGS" - GUI_LIBS="$GDK_IMLIB_LIBS" - fi - fi - GUI_LIBS="$GUI_LIBS ../lib-popt/libpopt.la" - fi -fi - -if test "x$GUI_LIBS" != "x"; then - GUI_LIBS="$GUI_LIBS $HEBREW_LIBS $PROG_LIBS" -fi - -AC_SUBST(GUI_LIBS) -AC_SUBST(GUI_CFLAGS) - - dnl ** dnl ** fe-text checks dnl ** AM_PATH_GLIB(1.2.0,,, gmodule) -PROG_LIBS="$PROG_LIBS $GLIB_LIBS ../lib-popt/libpopt.la" +PROG_LIBS="$PROG_LIBS $GLIB_LIBS" AC_SUBST(PROG_LIBS) dnl ** @@ -385,13 +259,10 @@ if test "$want_perl" = yes; then fi dnl ** check what we want to build -AM_CONDITIONAL(BUILD_GNOMEUI, test "x$GUI_LIBS" != "x") AM_CONDITIONAL(BUILD_TEXTUI, test "$want_textui" = "yes") AM_CONDITIONAL(BUILD_IRSSIBOT, test "$want_irssibot" = "yes") AM_CONDITIONAL(BUILD_PLUGINS, test "$want_plugins" = "yes") AM_CONDITIONAL(BUILD_SERVERTEST, test "$want_servertest" = "yes") -AM_CONDITIONAL(HAVE_GNOME, test "$want_gnome" = "yes") -AM_CONDITIONAL(HAVE_GNOME_PANEL, test "$want_gnome_panel" = "yes") AM_CONDITIONAL(HAVE_MYSQL, test "$want_mysql" = "yes") AM_CONDITIONAL(HAVE_PERL, test "$want_perl" = "yes") @@ -401,17 +272,38 @@ dnl ** dnl ** Keep all the libraries here so each frontend doesn't need to dnl ** keep track of them all dnl ** -CORE_LIBS="../core/libcore.la ../lib-config/libirssi_config.la" -IRC_LIBS="../irc/libirc.la ../irc/core/libirc_core.la ../irc/dcc/libirc_dcc.la ../irc/flood/libirc_flood.la ../irc/notifylist/libirc_notifylist.la" -FE_COMMON_LIBS="../fe-common/core/libfe_common_core.la ../fe-common/irc/libfe_common_irc.la ../fe-common/irc/notifylist/libfe_common_irc_notifylist.la ../fe-common/irc/dcc/libfe_common_irc_dcc.la ../fe-common/irc/flood/libfe_common_irc_flood.la" -PERL_LIBS="../perl/libperl.la" +dnl ** (these could be made configurable) -AC_SUBST(CORE_LIBS) -AC_SUBST(IRC_LIBS) -AC_SUBST(FE_COMMON_LIBS) +CHAT_MODULES="irc" +irc_MODULES="dcc flood notifylist" + +dnl **************************************** + +AC_SUBST(CHAT_MODULES) +AC_SUBST(irc_MODULES) + +CORE_LIBS="../core/libcore.la ../lib-config/libirssi_config.la ../lib-popt/libpopt.la" +if test "$want_perl" = "yes"; then + PERL_LIBS="../perl/libperl.la" +else + PERL_LIBS="" +fi +FE_COMMON_LIBS="../fe-common/core/libfe_common_core.la" + +CHAT_LIBS="" +for c in $CHAT_MODULES; do + CHAT_LIBS="$CHAT_LIBS ../$c/lib$c.la ../$c/core/lib${c}_core.la" + FE_COMMON_LIBS="$FE_COMMON_LIBS ../fe-common/$c/libfe_common_$c.la" + for s in `eval echo \\$${c}_MODULES`; do + CHAT_LIBS="$CHAT_LIBS ../$c/$s/lib${c}_$s.la" + FE_COMMON_LIBS="$FE_COMMON_LIBS ../fe-common/$c/$s/libfe_common_${c}_$s.la" + done +done dnl ** common libraries needed by frontends -COMMON_LIBS="$PERL_LIBS $FE_COMMON_LIBS $IRC_LIBS $CORE_LIBS" +COMMON_NOUI_LIBS="$PERL_LIBS $CHAT_LIBS $CORE_LIBS $INTLLIBS" +COMMON_LIBS="$FE_COMMON_LIBS $COMMON_NOUI_LIBS" +AC_SUBST(COMMON_NOUI_LIBS) AC_SUBST(COMMON_LIBS) dnl ** @@ -443,7 +335,6 @@ AC_OUTPUT( Makefile po/Makefile.in intl/Makefile -macros/Makefile src/Makefile src/core/Makefile src/irc/Makefile @@ -459,10 +350,6 @@ src/fe-common/irc/flood/Makefile src/fe-common/irc/notifylist/Makefile src/fe-none/Makefile src/fe-text/Makefile -src/fe-gnome/Makefile -src/fe-gnome/help/Makefile -src/fe-gnome/help/C/Makefile -src/fe-gnome/pixmaps/Makefile src/lib-config/Makefile src/lib-popt/Makefile src/perl/Makefile @@ -471,16 +358,9 @@ servertest/Makefile scripts/Makefile docs/Makefile docs/help/Makefile -plugins/Makefile -plugins/sample/Makefile -plugins/speech/Makefile -plugins/sound/Makefile -plugins/proxy/Makefile -plugins/external/Makefile -plugins/bot/Makefile -plugins/sql/Makefile stamp.h -irssi.spec) +irssi.spec +irssi-config) dnl ** for building from objdir if test "x$want_perl" = "xyes"; then @@ -495,14 +375,6 @@ fi echo -if test "x$GUI_LIBS" != "x"; then - echo Building GTK frontend ...... : yes -else - echo Building GTK frontend ...... : no -fi -echo Building with GNOME ........ : $want_gnome -echo Building with GNOME panel .. : $want_gnome_panel - echo Building text frontend ..... : $want_textui echo Building irssi-bot ......... : $want_irssibot echo Building with IPv6 support . : $want_ipv6 diff --git a/curses.m4 b/curses.m4 new file mode 100644 index 00000000..07b2b585 --- /dev/null +++ b/curses.m4 @@ -0,0 +1,278 @@ +dnl Curses detection: Munged from Midnight Commander's configure.in +dnl +dnl What it does: +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 - 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 +dnl - Modify the following configure variables (these are the only +dnl curses.m4 variables you can access from within configure.in) +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 has_curses - exports result of tests to rest of configure +dnl +dnl Usage: +dnl ====== +dnl 1) Add lines indicated below to acconfig.h +dnl 2) call AC_CHECK_CURSES after AC_PROG_CC in your configure.in +dnl 3) Instead of #include you should use the following to +dnl properly locate ncurses or curses header file +dnl +dnl #if defined(USE_NCURSES) && !defined(RENAMED_NCURSES) +dnl #include +dnl #else +dnl #include +dnl #endif +dnl +dnl 4) Make sure to add @CURSES_INCLUDEDIR@ to your preprocessor flags +dnl 5) Make sure to add @CURSES_LIBS@ to your linker flags or LIBS +dnl +dnl Notes with automake: +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 if HAS_CURSES +dnl CURSES_TARGETS=name_of_curses_prog +dnl endif +dnl bin_PROGRAMS = other_programs $(CURSES_TARGETS) +dnl other_programs_SOURCES = blah blah blah +dnl name_of_curses_prog_SOURCES = blah blah blah +dnl other_programs_LDADD = blah +dnl name_of_curses_prog_LDADD = blah $(CURSES_LIBS) +dnl ----------------------------------------------- +dnl +dnl +dnl The following lines should be added to acconfig.h: +dnl ================================================== +dnl +dnl /*=== Curses version detection defines ===*/ +dnl /* Found some version of curses that we're going to use */ +dnl #undef HAS_CURSES +dnl +dnl /* Use SunOS SysV curses? */ +dnl #undef USE_SUNOS_CURSES +dnl +dnl /* Use old BSD curses - not used right now */ +dnl #undef USE_BSD_CURSES +dnl +dnl /* Use SystemV curses? */ +dnl #undef USE_SYSV_CURSES +dnl +dnl /* Use Ncurses? */ +dnl #undef USE_NCURSES +dnl +dnl /* If you Curses does not have color define this one */ +dnl #undef NO_COLOR_CURSES +dnl +dnl /* Define if you want to turn on SCO-specific code */ +dnl #undef SCO_FLAVOR +dnl +dnl /* Set to reflect version of ncurses * +dnl * 0 = version 1.* +dnl * 1 = version 1.9.9g +dnl * 2 = version 4.0/4.1 */ +dnl #undef NCURSES_970530 +dnl +dnl /*=== End new stuff for acconfig.h ===*/ +dnl + + +AC_DEFUN(AC_CHECK_CURSES,[ + search_ncurses=true + screen_manager="" + has_curses=false + + CFLAGS=${CFLAGS--O} + + AC_SUBST(CURSES_LIBS) + AC_SUBST(CURSES_INCLUDEDIR) + + AC_ARG_WITH(sco, + [ --with-sco Use this to turn on SCO-specific code],[ + if test x$withval = xyes; then + AC_DEFINE(SCO_FLAVOR) + CFLAGS="$CFLAGS -D_SVID3" + fi + ]) + + AC_ARG_WITH(sunos-curses, + [ --with-sunos-curses Used to force SunOS 4.x curses],[ + if test x$withval = xyes; then + AC_USE_SUNOS_CURSES + fi + ]) + + AC_ARG_WITH(osf1-curses, + [ --with-osf1-curses Used to force OSF/1 curses],[ + if test x$withval = xyes; then + AC_USE_OSF1_CURSES + fi + ]) + + AC_ARG_WITH(vcurses, + [ --with-vcurses[=incdir] Used to force SysV curses], + if test x$withval != xyes; then + CURSES_INCLUDEDIR="-I$withval" + fi + AC_USE_SYSV_CURSES + ) + + AC_ARG_WITH(ncurses, + [ --with-ncurses[=dir] Compile with ncurses/locate base dir], + if test x$withval = xno ; then + search_ncurses=false + elif test x$withval != xyes ; then + CURSES_LIBS="$LIBS -L$withval/lib -lncurses" + CURSES_INCLUDEDIR="-I$withval/include" + search_ncurses=false + screen_manager="ncurses" + AC_DEFINE(USE_NCURSES) + AC_DEFINE(HAS_CURSES) + has_curses=true + fi + ) + + if $search_ncurses + then + AC_SEARCH_NCURSES() + fi + + +]) + + +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) + AC_DEFINE(USE_SUNOS_CURSES) + AC_DEFINE(HAS_CURSES) + has_curses=true + AC_DEFINE(NO_COLOR_CURSES) + AC_DEFINE(USE_SYSV_CURSES) + CURSES_INCLUDEDIR="-I/usr/5include" + CURSES_LIBS="/usr/5lib/libcurses.a /usr/5lib/libtermcap.a" + AC_MSG_RESULT(Please note that some screen refreshs may fail) +]) + +AC_DEFUN(AC_USE_OSF1_CURSES, [ + AC_MSG_RESULT(Using OSF1 curses) + search_ncurses=false + screen_manager="OSF1 curses" + AC_DEFINE(HAS_CURSES) + has_curses=true + AC_DEFINE(NO_COLOR_CURSES) + AC_DEFINE(USE_SYSV_CURSES) + CURSES_LIBS="-lcurses" +]) + +AC_DEFUN(AC_USE_SYSV_CURSES, [ + AC_MSG_RESULT(Using SysV curses) + AC_DEFINE(HAS_CURSES) + has_curses=true + AC_DEFINE(USE_SYSV_CURSES) + search_ncurses=false + screen_manager="SysV/curses" + CURSES_LIBS="-lcurses" +]) + +dnl AC_ARG_WITH(bsd-curses, +dnl [--with-bsd-curses Used to compile with bsd curses, not very fancy], +dnl search_ncurses=false +dnl screen_manager="Ultrix/cursesX" +dnl if test $system = ULTRIX +dnl then +dnl THIS_CURSES=cursesX +dnl else +dnl THIS_CURSES=curses +dnl fi +dnl +dnl CURSES_LIBS="-l$THIS_CURSES -ltermcap" +dnl AC_DEFINE(HAS_CURSES) +dnl has_curses=true +dnl AC_DEFINE(USE_BSD_CURSES) +dnl AC_MSG_RESULT(Please note that some screen refreshs may fail) +dnl AC_WARN(Use of the bsdcurses extension has some) +dnl AC_WARN(display/input problems.) +dnl AC_WARN(Reconsider using xcurses) +dnl) + + +dnl +dnl Parameters: directory filename cureses_LIBS curses_INCLUDEDIR nicename +dnl +AC_DEFUN(AC_NCURSES, [ + if $search_ncurses + then + if test -f $1/$2 + then + AC_MSG_RESULT(Found ncurses on $1/$2) + CURSES_LIBS="$3" + CURSES_INCLUDEDIR="$4" + search_ncurses=false + screen_manager=$5 + AC_DEFINE(HAS_CURSES) + has_curses=true + AC_DEFINE(USE_NCURSES) + fi + fi +]) + +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/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") + + dnl + dnl We couldn't find ncurses, try SysV curses + dnl + if $search_ncurses + then + AC_EGREP_HEADER(init_color, /usr/include/curses.h, + AC_USE_SYSV_CURSES) + AC_EGREP_CPP(USE_NCURSES,[ +#include +#ifdef __NCURSES_H +#undef USE_NCURSES +USE_NCURSES +#endif +],[ + CURSES_INCLUDEDIR="$CURSES_INCLUDEDIR -DRENAMED_NCURSES" + AC_DEFINE(HAS_CURSES) + has_curses=true + AC_DEFINE(USE_NCURSES) + search_ncurses=false + screen_manager="ncurses installed as curses" +]) + fi + + dnl + dnl Try SunOS 4.x /usr/5{lib,include} ncurses + dnl The flags USE_SUNOS_CURSES, USE_BSD_CURSES and BUGGY_CURSES + dnl should be replaced by a more fine grained selection routine + dnl + if $search_ncurses + then + if test -f /usr/5include/curses.h + then + AC_USE_SUNOS_CURSES + fi + fi +]) + diff --git a/irssi-config.in b/irssi-config.in new file mode 100644 index 00000000..3076247c --- /dev/null +++ b/irssi-config.in @@ -0,0 +1,6 @@ +PROG_LIBS="@PROG_LIBS@" +PERL_LDFLAGS="@PERL_LDFLAGS@" +COMMON_LIBS="@COMMON_LIBS@" + +CHAT_MODULES="@CHAT_MODULES@" +irc_MODULES="@irc_MODULES@" diff --git a/irssi.desktop b/irssi.desktop deleted file mode 100644 index d76aa6a3..00000000 --- a/irssi.desktop +++ /dev/null @@ -1,8 +0,0 @@ -[Desktop Entry] -Name=irssi -Comment=irssi IRC client -Comment[pl]=irssi - klient IRC -Icon=irssi-icon.png -Exec=irssi -Terminal=0 -Type=Application diff --git a/irssi.gnorba b/irssi.gnorba deleted file mode 100644 index 6296e4ff..00000000 --- a/irssi.gnorba +++ /dev/null @@ -1,5 +0,0 @@ -[irssi] -type=exe -repo_id=IDL:GNOME/Applet:1.0 -description=irssi IRC client -location_info=irssi diff --git a/servertest/Makefile.am b/servertest/Makefile.am index 4eb03cdf..6ca9f0d3 100644 --- a/servertest/Makefile.am +++ b/servertest/Makefile.am @@ -3,11 +3,11 @@ bin_PROGRAMS = ircserver INCLUDES = $(GLIB_CFLAGS) -I$(top_srcdir)/src if BUILD_MEMDEBUG -memdebug_src=../src/irc-base/memdebug.o +memdebug_src=../src/core/memdebug.o else memdebug_src= endif -ircserver_LDADD = -lglib ../src/irc-base/network.o $(memdebug_src) +ircserver_LDADD = -lglib ../src/core/network.o $(memdebug_src) ircserver_SOURCES = server.c diff --git a/servertest/server.c b/servertest/server.c index 8e049816..677e6b32 100644 --- a/servertest/server.c +++ b/servertest/server.c @@ -1,8 +1,8 @@ #include -#include +#include "core/network.h" -#define FLOOD_TIMEOUT 50000 +#define FLOOD_TIMEOUT 1 typedef struct { @@ -12,20 +12,10 @@ typedef struct CHANNEL_REC; GList *channels; -gchar *clientnick, *clienthost; +gchar *clientnick, clienthost[MAX_IP_LEN]; int clienth; -gint gui_input_add(gint handle, GUIInputCondition condition, - GUIInputFunction function, gpointer data) -{ - return -1; -} - -void gui_input_remove(gint tag) -{ -} - /* Read a line */ gint read_line(gboolean socket, gint handle, GString *output, GString *buffer) { @@ -135,7 +125,6 @@ void send_cmd(void) /* send msg to every channel */ str[511] = '\0'; - for (tmp = g_list_first(channels); tmp != NULL; tmp = tmp->next) { CHANNEL_REC *rec = tmp->data; @@ -246,12 +235,10 @@ void send_cmd(void) client_send(str); } - makerand(str, 511); str[0] = ':'; str[10] = '!'; str[20] = '@'; - switch (rand() % 11) { case 0: @@ -330,7 +317,7 @@ void send_cmd(void) break; case 7: /* invite */ - pos = 30+sprintf(str+30, " INVITE %s", clientnick); + pos = 30+sprintf(str+30, " INVITE %s ", clientnick); str[pos] = 'X'; break; case 8: @@ -360,11 +347,6 @@ void handle_command(char *str) } } -guint gui_timeout_add(guint32 interval, GUITimeoutFunction function, gpointer data) -{ - return -1; -} - int main(void) { static fd_set fdset; @@ -406,8 +388,8 @@ int main(void) tv.tv_usec = FLOOD_TIMEOUT; if (select((serverh > clienth ? serverh : clienth)+1, &fdset, NULL, NULL, &tv) <= 0) { - /* nothing happened, bug the client with some commands.. */ - if (clienth != -1 && clientnick != NULL) send_cmd(); + /* nothing happened, bug the client with some commands.. */ + if (clienth != -1 && clientnick != NULL) send_cmd(); } else { @@ -434,7 +416,7 @@ int main(void) clienth = net_accept(serverh, &clientip, &port); if (clienth != -1) { - clienthost = g_strdup(net_ip2host(&clientip)); + net_ip2host(&clientip, clienthost); client_send(":server 001 pla"); client_send(":server 002 plapla"); client_send(":server 003 plaplapla"); diff --git a/src/Makefile.am b/src/Makefile.am index 49aa359d..fbd0dc31 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -2,11 +2,6 @@ if BUILD_TEXTUI TEXTUI=fe-text endif -if BUILD_GNOMEUI -#GNOMEUI=fe-gnome -GNOMEUI= -endif - if BUILD_IRSSIBOT BOTUI=fe-none endif @@ -20,4 +15,4 @@ noinst_HEADERS = \ common.h \ common-setup.h -SUBDIRS = lib-popt lib-config core irc fe-common $(PERLDIR) $(GNOMEUI) $(TEXTUI) $(BOTUI) +SUBDIRS = lib-popt lib-config core irc fe-common $(PERLDIR) $(TEXTUI) $(BOTUI) diff --git a/src/core/commands.c b/src/core/commands.c index e7f2560a..8f02db89 100644 --- a/src/core/commands.c +++ b/src/core/commands.c @@ -310,7 +310,7 @@ char *cmd_get_callfuncs(const char *data, int *count, va_list *args) ret = g_strdup(data); for (tmp = cmdget_funcs; tmp != NULL; tmp = tmp->next) { - func = tmp->data; + func = (CMD_GET_FUNC) tmp->data; old = ret; ret = func(ret, count, args); @@ -361,12 +361,12 @@ char *cmd_get_params(const char *data, int count, ...) void cmd_get_add_func(CMD_GET_FUNC func) { - cmdget_funcs = g_slist_prepend(cmdget_funcs, func); + cmdget_funcs = g_slist_prepend(cmdget_funcs, (void *) func); } void cmd_get_remove_func(CMD_GET_FUNC func) { - cmdget_funcs = g_slist_prepend(cmdget_funcs, func); + cmdget_funcs = g_slist_prepend(cmdget_funcs, (void *) func); } static void parse_outgoing(const char *line, SERVER_REC *server, void *item) diff --git a/src/core/misc.c b/src/core/misc.c index 28aaae84..516c6dc3 100644 --- a/src/core/misc.c +++ b/src/core/misc.c @@ -377,7 +377,7 @@ int match_wildcards(const char *cmask, const char *data) char *mask, *newmask, *p1, *p2; int ret; - newmask = mask = strdup(cmask); + newmask = mask = g_strdup(cmask); for (; *mask != '\0' && *data != '\0'; mask++) { if (*mask == '?' || toupper(*mask) == toupper(*data)) { data++; diff --git a/src/core/settings.h b/src/core/settings.h index 9198bba9..81599db3 100644 --- a/src/core/settings.h +++ b/src/core/settings.h @@ -8,7 +8,7 @@ typedef struct _config_rec CONFIG_REC; enum { SETTING_TYPE_STRING, SETTING_TYPE_INT, - SETTING_TYPE_BOOLEAN, + SETTING_TYPE_BOOLEAN }; typedef struct { diff --git a/src/core/special-vars.c b/src/core/special-vars.c index 26788a65..7d51bca1 100644 --- a/src/core/special-vars.c +++ b/src/core/special-vars.c @@ -108,7 +108,7 @@ static char *get_long_variable_value(const char *key, void *server, void *item, *free_ret = FALSE; /* expando? */ - func = g_hash_table_lookup(expandos, key); + func = (EXPANDO_FUNC) g_hash_table_lookup(expandos, key); if (func != NULL) return func(server, item, free_ret); @@ -502,7 +502,7 @@ void expando_create(const char *key, EXPANDO_FUNC func) g_free(origkey); g_hash_table_remove(expandos, key); } - g_hash_table_insert(expandos, g_strdup(key), func); + g_hash_table_insert(expandos, g_strdup(key), (void *) func); } /* Destroy expando */ diff --git a/src/fe-common/core/module-formats.h b/src/fe-common/core/module-formats.h index 8b9a6375..94392763 100644 --- a/src/fe-common/core/module-formats.h +++ b/src/fe-common/core/module-formats.h @@ -66,3 +66,5 @@ enum { extern FORMAT_REC fecommon_core_formats[]; #define MODULE_FORMATS fecommon_core_formats + +#include "printformat.h" diff --git a/src/fe-common/core/printformat.h b/src/fe-common/core/printformat.h new file mode 100644 index 00000000..e1dcf761 --- /dev/null +++ b/src/fe-common/core/printformat.h @@ -0,0 +1,25 @@ +/* printformat(...) = printformat_format(module_formats, ...) + + Could this be any harder? :) With GNU C compiler and C99 compilers, + use #define. With others use either inline functions if they are + supported or static functions if they are not.. + */ +#if defined (__GNUC__) && !defined (__STRICT_ANSI__) +/* GCC */ +# define printformat(server, channel, level, formatnum...) \ + printformat_format(MODULE_FORMATS, server, channel, level, ##formatnum) +#elif defined (_ISOC99_SOURCE) +/* C99 */ +# define printformat(server, channel, level, formatnum, ...) \ + printformat_format(MODULE_FORMATS, server, channel, level, formatnum, __VA_ARGS__) +#else +/* inline/static */ +static +#ifdef G_CAN_INLINE +inline +#endif +void printformat(void *server, const char *channel, int level, int formatnum, ...) +{ + printformat_format(MODULE_FORMATS, server, channel, level, formatnum); +} +#endif diff --git a/src/fe-common/core/printtext.h b/src/fe-common/core/printtext.h index 18f3246e..acd6a03e 100644 --- a/src/fe-common/core/printtext.h +++ b/src/fe-common/core/printtext.h @@ -24,32 +24,6 @@ typedef struct { #define PRINTFLAG_MIRC_COLOR 0x20 #define PRINTFLAG_INDENT 0x40 -/* printformat(...) = printformat_format(module_formats, ...) - - Could this be any harder? :) With GNU C compiler and C99 compilers, - use #define. With others use either inline functions if they are - supported or static functions if they are not.. - */ -#ifdef __GNUC__ -/* GCC */ -# define printformat(server, channel, level, formatnum...) \ - printformat_format(MODULE_FORMATS, server, channel, level, ##formatnum) -#elif defined (_ISOC99_SOURCE) -/* C99 */ -# define printformat(server, channel, level, formatnum, ...) \ - printformat_format(MODULE_FORMATS, server, channel, level, formatnum, __VA_ARGS__) -#else -/* inline/static */ -#ifdef G_CAN_INLINE -inline -#else -static -#endif -void printformat(void *server, const char *channel, int level, int formatnum, ...) -{ - printformat_format(MODULE_FORMATS, server, channel, level, ##formatnum); -} -#endif void printformat_format(FORMAT_REC *formats, void *server, const char *channel, int level, int formatnum, ...); void printtext(void *server, const char *channel, int level, const char *str, ...); diff --git a/src/fe-common/core/windows.c b/src/fe-common/core/windows.c index 538b63ac..bcfaa38c 100644 --- a/src/fe-common/core/windows.c +++ b/src/fe-common/core/windows.c @@ -181,6 +181,17 @@ void window_set_level(WINDOW_REC *window, int level) signal_emit("window level changed", 1, window); } +/* return active item's name, or if none is active, window's name */ +char *window_get_active_name(WINDOW_REC *window) +{ + g_return_val_if_fail(window != NULL, NULL); + + if (window->active != NULL) + return window->active->name; + + return window->name; +} + WINDOW_REC *window_find_level(void *server, int level) { WINDOW_REC *match; diff --git a/src/fe-common/core/windows.h b/src/fe-common/core/windows.h index a3b06d86..2b13101b 100644 --- a/src/fe-common/core/windows.h +++ b/src/fe-common/core/windows.h @@ -58,8 +58,11 @@ void window_change_server(WINDOW_REC *window, void *server); void window_set_refnum(WINDOW_REC *window, int refnum); void window_set_name(WINDOW_REC *window, const char *name); - void window_set_level(WINDOW_REC *window, int level); + +/* return active item's name, or if none is active, window's name */ +char *window_get_active_name(WINDOW_REC *window); + WINDOW_REC *window_find_level(void *server, int level); WINDOW_REC *window_find_closest(void *server, const char *name, int level); WINDOW_REC *window_find_refnum(int refnum); diff --git a/src/fe-common/irc/dcc/module-formats.h b/src/fe-common/irc/dcc/module-formats.h index bc58035e..de01511f 100644 --- a/src/fe-common/irc/dcc/module-formats.h +++ b/src/fe-common/irc/dcc/module-formats.h @@ -32,8 +32,10 @@ enum { IRCTXT_DCC_CONNECT_ERROR, IRCTXT_DCC_CANT_CREATE, IRCTXT_DCC_REJECTED, - IRCTXT_DCC_CLOSE, + IRCTXT_DCC_CLOSE }; extern FORMAT_REC fecommon_irc_dcc_formats[]; #define MODULE_FORMATS fecommon_irc_dcc_formats + +#include "printformat.h" diff --git a/src/fe-common/irc/fe-ctcp.c b/src/fe-common/irc/fe-ctcp.c index a8d9a1c5..d06e1185 100644 --- a/src/fe-common/irc/fe-ctcp.c +++ b/src/fe-common/irc/fe-ctcp.c @@ -47,17 +47,17 @@ static void ctcp_print(const char *pre, const char *data, IRC_SERVER_REC *server static void ctcp_default_msg(const char *data, IRC_SERVER_REC *server, const char *nick, const char *addr, const char *target) { - return ctcp_print("unknown CTCP", data, server, nick, addr, target); + ctcp_print("unknown CTCP", data, server, nick, addr, target); } static void ctcp_ping_msg(const char *data, IRC_SERVER_REC *server, const char *nick, const char *addr, const char *target) { - return ctcp_print("CTCP PING", data, server, nick, addr, target); + ctcp_print("CTCP PING", data, server, nick, addr, target); } static void ctcp_version_msg(const char *data, IRC_SERVER_REC *server, const char *nick, const char *addr, const char *target) { - return ctcp_print("CTCP VERSION", data, server, nick, addr, target); + ctcp_print("CTCP VERSION", data, server, nick, addr, target); } static void ctcp_default_reply(const char *data, IRC_SERVER_REC *server, const char *nick, const char *addr, const char *target) diff --git a/src/fe-common/irc/flood/module-formats.h b/src/fe-common/irc/flood/module-formats.h index b435a752..8311b021 100644 --- a/src/fe-common/irc/flood/module-formats.h +++ b/src/fe-common/irc/flood/module-formats.h @@ -11,3 +11,5 @@ enum { extern FORMAT_REC fecommon_irc_flood_formats[]; #define MODULE_FORMATS fecommon_irc_flood_formats + +#include "printformat.h" diff --git a/src/fe-common/irc/module-formats.h b/src/fe-common/irc/module-formats.h index c7dc5bf8..d75ca9c4 100644 --- a/src/fe-common/irc/module-formats.h +++ b/src/fe-common/irc/module-formats.h @@ -162,3 +162,5 @@ enum { extern FORMAT_REC fecommon_irc_formats[]; #define MODULE_FORMATS fecommon_irc_formats + +#include "printformat.h" diff --git a/src/fe-common/irc/notifylist/module-formats.h b/src/fe-common/irc/notifylist/module-formats.h index 77b40cc2..f5f855dc 100644 --- a/src/fe-common/irc/notifylist/module-formats.h +++ b/src/fe-common/irc/notifylist/module-formats.h @@ -17,3 +17,5 @@ enum { extern FORMAT_REC fecommon_irc_notifylist_formats[]; #define MODULE_FORMATS fecommon_irc_notifylist_formats + +#include "printformat.h" diff --git a/src/fe-none/Makefile.am b/src/fe-none/Makefile.am index b61f4dd2..5fbc6a40 100644 --- a/src/fe-none/Makefile.am +++ b/src/fe-none/Makefile.am @@ -8,13 +8,11 @@ INCLUDES = \ -I$(top_srcdir)/src/core/ \ -I$(top_srcdir)/src/irc/core/ -irssi_bot_DEPENDENCIES = @IRC_LIBS@ @CORE_LIBS@ +irssi_bot_DEPENDENCIES = @COMMON_NOUI_LIBS@ irssi_bot_LDADD = \ - @IRC_LIBS@ \ - @CORE_LIBS@ \ - $(PROG_LIBS) \ - $(INTLLIBS) \ + @COMMON_NOUI_LIBS@ \ + $(PROG_LIBS) \ $(PERL_LDFLAGS) irssi_bot_SOURCES = \ diff --git a/src/fe-text/Makefile.am b/src/fe-text/Makefile.am index 0120a4d9..fc8d7302 100644 --- a/src/fe-text/Makefile.am +++ b/src/fe-text/Makefile.am @@ -13,10 +13,9 @@ irssi_text_DEPENDENCIES = @COMMON_LIBS@ irssi_text_LDADD = \ @COMMON_LIBS@ \ - $(PROG_LIBS) \ - $(CURSES_LIBS) \ - $(INTLLIBS) \ - $(PERL_LDFLAGS) + $(PROG_LIBS) \ + $(PERL_LDFLAGS) \ + $(CURSES_LIBS) irssi_text_SOURCES = \ gui-entry.c \ diff --git a/src/fe-text/gui-statusbar.c b/src/fe-text/gui-statusbar.c deleted file mode 100644 index 130993c2..00000000 --- a/src/fe-text/gui-statusbar.c +++ /dev/null @@ -1,237 +0,0 @@ -/* - gui-statusbar.c : irssi - - Copyright (C) 1999 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 "server.h" - -#include "windows.h" - -#include "screen.h" -#include "gui-statusbar.h" -#include "gui-mainwindows.h" -#include "gui-windows.h" - -typedef struct -{ - gint tag; - - gint xpos, ypos; - gint size; - gboolean right_justify, up; - STATUSBAR_FUNC func; -} -STATUSBAR_REC; - -static GList *sbars; -static gint sbars_tag; - -static void gui_statusbar_redraw_line(gboolean up, gint ypos) -{ - GList *tmp; - gint xpos, rxpos; - - xpos = 1; - for (tmp = sbars; tmp != NULL; tmp = tmp->next) - { - STATUSBAR_REC *rec = tmp->data; - - if (!rec->right_justify) - { - if (rec->up == up && rec->ypos == ypos && xpos+rec->size < COLS) - { - rec->xpos = xpos; - rec->func(xpos, rec->ypos + (rec->up ? 0 : last_text_line), rec->size); - if (rec->size > 0) xpos += rec->size+1; - } - } - } - - rxpos = COLS-1; - for (tmp = sbars; tmp != NULL; tmp = tmp->next) - { - STATUSBAR_REC *rec = tmp->data; - - if (rec->right_justify) - { - if (rec->up == up && rec->ypos == ypos && rxpos-rec->size > xpos) - { - rec->xpos = rxpos-rec->size; - rec->func(rec->xpos, rec->ypos + (rec->up ? 0 : last_text_line), rec->size); - if (rec->size > 0) rxpos -= rec->size+1; - } - } - } -} - -static void gui_statusbar_redraw_all(void) -{ - gint n; - - screen_refresh_freeze(); - set_bg((1<<4)+15); - for (n = 0; n < first_text_line; n++) - { - move(n, 0); clrtoeol(); - } - for (n = last_text_line; n < LINES-1; n++) - { - move(n, 0); clrtoeol(); - } - set_bg(0); - - for (n = 0; n < LINES-1; n++) - { - gui_statusbar_redraw_line(FALSE, n); - gui_statusbar_redraw_line(TRUE, n); - } - screen_refresh_thaw(); -} - -void gui_statusbar_redraw(gint tag) -{ - GList *tmp; - - if (tag == -1) - { - gui_statusbar_redraw_all(); - return; - } - - for (tmp = sbars; tmp != NULL; tmp = tmp->next) - { - STATUSBAR_REC *rec = tmp->data; - - if (rec->tag == tag) - { - rec->func(rec->xpos, rec->ypos + (rec->up ? 0 : last_text_line), rec->size); - break; - } - } -} - -/* create new statusbar, return position */ -gint gui_statusbar_create(gboolean up) -{ - gint pos; - - pos = up ? first_text_line++ : - (LINES-2)-last_text_line--; - - set_bg((1<<4)+15); - move(up ? pos : last_text_line+pos, 0); clrtoeol(); - set_bg(0); - - gui_windows_resize(-1, FALSE); - return pos; -} - -void gui_statusbar_delete(gboolean up, gint ypos) -{ - GList *tmp, *next; - - if (up && first_text_line > 0) - first_text_line--; - else if (!up && last_text_line < LINES-1) - last_text_line++; - - for (tmp = sbars; tmp != NULL; tmp = next) - { - STATUSBAR_REC *rec = tmp->data; - - next = tmp->next; - if (rec->up == up && rec->ypos == ypos) - gui_statusbar_remove(rec->tag); - else if (rec->up == up && rec->ypos > ypos) - rec->ypos--; - } - - gui_windows_resize(1, FALSE); -} - -/* allocate area in statusbar, returns tag or -1 if failed */ -gint gui_statusbar_allocate(gint size, gboolean right_justify, gboolean up, gint ypos, STATUSBAR_FUNC func) -{ - STATUSBAR_REC *rec; - - g_return_val_if_fail(func != NULL, -1); - - rec = g_new0(STATUSBAR_REC, 1); - sbars = g_list_append(sbars, rec); - - rec->tag = ++sbars_tag; - rec->xpos = -1; - rec->up = up; - rec->ypos = ypos; - rec->size = size; - rec->right_justify = right_justify; - rec->func = func; - - gui_statusbar_redraw_all(); - return rec->tag; -} - -void gui_statusbar_resize(gint tag, gint size) -{ - GList *tmp; - - for (tmp = sbars; tmp != NULL; tmp = tmp->next) - { - STATUSBAR_REC *rec = tmp->data; - - if (rec->tag == tag) - { - rec->size = size; - gui_statusbar_redraw_all(); - break; - } - } -} - -void gui_statusbar_remove(gint tag) -{ - GList *tmp; - - for (tmp = sbars; tmp != NULL; tmp = tmp->next) - { - STATUSBAR_REC *rec = tmp->data; - - if (rec->tag == tag) - { - g_free(rec); - sbars = g_list_remove(sbars, rec); - if (!quitting) gui_statusbar_redraw_all(); - break; - } - } -} - -void gui_statusbar_init(void) -{ - sbars = NULL; - sbars_tag = 0; - - gui_statusbar_create(FALSE); -} - -void gui_statusbar_deinit(void) -{ - gui_statusbar_delete(FALSE, 0); -} diff --git a/src/fe-text/module-formats.h b/src/fe-text/module-formats.h index 32f219e2..39d29182 100644 --- a/src/fe-text/module-formats.h +++ b/src/fe-text/module-formats.h @@ -12,3 +12,5 @@ enum { extern FORMAT_REC gui_text_formats[]; #define MODULE_FORMATS gui_text_formats + +#include "printformat.h" diff --git a/src/fe-text/screen.h b/src/fe-text/screen.h index 3fc5694e..cdb543c1 100644 --- a/src/fe-text/screen.h +++ b/src/fe-text/screen.h @@ -11,18 +11,16 @@ #define ATTR_COLOR8 0x200 #define ATTR_REVERSE 0x400 -extern gboolean use_colors; - -gint init_screen(void); /* Initialize screen, detect screen length */ +int init_screen(void); /* Initialize screen, detect screen length */ void deinit_screen(void); /* Deinitialize screen */ -void set_color(gint col); -void set_bg(gint col); +void set_color(int col); +void set_bg(int col); -void scroll_up(gint y1, gint y2); /* Scroll area up */ -void scroll_down(gint y1, gint y2); /* Scroll area down */ +void scroll_up(int y1, int y2); /* Scroll area up */ +void scroll_down(int y1, int y2); /* Scroll area down */ -void move_cursor(gint y, gint x); +void move_cursor(int y, int x); void screen_refresh_freeze(void); void screen_refresh_thaw(void); diff --git a/src/fe-text/statusbar.c b/src/fe-text/statusbar.c index 24e89107..9e83438c 100644 --- a/src/fe-text/statusbar.c +++ b/src/fe-text/statusbar.c @@ -58,7 +58,7 @@ static void statusbar_redraw_line(STATUSBAR_REC *bar) if (!rec->right_justify && xpos+rec->size < COLS) { rec->xpos = xpos; - func = rec->func; + func = (STATUSBAR_FUNC) rec->func; func(rec, bar->ypos); if (resized) break; @@ -73,7 +73,7 @@ static void statusbar_redraw_line(STATUSBAR_REC *bar) if (rec->right_justify && rxpos-rec->size > xpos) { rec->xpos = rxpos-rec->size; - func = rec->func; + func = (STATUSBAR_FUNC) rec->func; func(rec, bar->ypos); if (resized) break; @@ -131,7 +131,7 @@ void statusbar_item_redraw(SBAR_ITEM_REC *item) g_return_if_fail(item != NULL); - func = item->func; + func = (STATUSBAR_FUNC) item->func; func(item, item->bar->ypos); } @@ -215,7 +215,7 @@ SBAR_ITEM_REC *statusbar_item_create(STATUSBAR_REC *bar, int size, int right_jus rec->xpos = -1; rec->size = size; rec->right_justify = right_justify; - rec->func = func; + rec->func = (void *) func; return rec; } diff --git a/src/irc/core/irc.h b/src/irc/core/irc.h index aa5fbc9d..a971670c 100644 --- a/src/irc/core/irc.h +++ b/src/irc/core/irc.h @@ -61,7 +61,7 @@ extern char *current_server_event; /* current server event being processed */ /* Send command to IRC server */ void irc_send_cmd(IRC_SERVER_REC *server, const char *cmd); -void irc_send_cmdv(IRC_SERVER_REC *server, const char *cmd, ...) G_GNUC_PRINTF (2, 3);; +void irc_send_cmdv(IRC_SERVER_REC *server, const char *cmd, ...) G_GNUC_PRINTF (2, 3); /* Send command to IRC server, split to multiple commands if necessary so that command will never have more target nicks than `max_nicks'. Nicks are separated with commas. (works with /msg, /kick, ...) */ diff --git a/src/lib-config/iconfig.h b/src/lib-config/iconfig.h index 320b0629..a45ffdec 100644 --- a/src/lib-config/iconfig.h +++ b/src/lib-config/iconfig.h @@ -6,7 +6,7 @@ enum { NODE_TYPE_VALUE, NODE_TYPE_BLOCK, NODE_TYPE_LIST, - NODE_TYPE_COMMENT, + NODE_TYPE_COMMENT }; #define has_node_value(a) \ diff --git a/src/lib-config/set.c b/src/lib-config/set.c index 6748fce9..ce078f38 100644 --- a/src/lib-config/set.c +++ b/src/lib-config/set.c @@ -102,12 +102,12 @@ void config_node_set_int(CONFIG_NODE *parent, const char *key, int value) char str[MAX_INT_STRLEN]; g_snprintf(str, sizeof(str), "%d", value); - return config_node_set_str(parent, key, str); + config_node_set_str(parent, key, str); } void config_node_set_bool(CONFIG_NODE *parent, const char *key, int value) { - return config_node_set_str(parent, key, value ? "yes" : "no"); + config_node_set_str(parent, key, value ? "yes" : "no"); } int config_set_str(CONFIG_REC *rec, const char *section, const char *key, const char *value)