From a6d58bb6052ac8cb01805a48c4ad2f129126116f Mon Sep 17 00:00:00 2001 From: tpearson Date: Wed, 24 Feb 2010 02:13:59 +0000 Subject: [PATCH] Added KDE3 version of kvirc git-svn-id: svn://anonsvn.kde.org/home/kde/branches/trinity/applications/kvirc@1095341 283d02a7-25f6-0310-bc7c-ecb5cbfe19da --- ChangeLog | 2280 ++ FAQ | 712 + INSTALL | 753 + Makefile.am | 95 + README | 387 + TODO | 50 + acinclude.m4 | 8761 +++++++ aclocal.m4 | 910 + autogen.sh | 164 + configure.in | 270 + data/Makefile.am | 6 + data/applnk/Makefile.am | 5 + data/applnk/kvirc.desktop | 18 + data/config/Makefile.am | 5 + data/config/serverdb.kvc | 1611 ++ data/config/texticons.kvc | 39 + data/defscript/Makefile.am | 11 + data/defscript/aliases.kvs | 706 + data/defscript/default.kvs | 37 + data/defscript/events.kvs | 105 + data/defscript/installer.kvs | 169 + data/defscript/popups.kvs | 1381 ++ data/defscript/theme-install.kvs | 30 + data/defscript/toolbars.kvs | 43 + data/deftheme/Makefile.am | 2 + data/deftheme/silverirc/Makefile.am | 5 + .../silverirc/pixmapInputBackground.png | Bin 0 -> 200 bytes .../silverirc/pixmapIrcViewBackground.png | Bin 0 -> 12760 bytes .../pixmapUserListViewBackground.png | Bin 0 -> 237 bytes data/deftheme/silverirc/themedata.kvc | 273 + data/deftheme/silverirc/themeinfo.kvc | 10 + data/doctemplates/Makefile.am | 1 + data/doctemplates/ircintro.template | 60 + data/doctemplates/kvircintro.template | 67 + data/doctemplates/rfc2812.template | 3312 +++ data/helppics/Makefile.am | 5 + data/helppics/helplogoleft.png | Bin 0 -> 7100 bytes data/helppics/helplogoright.png | Bin 0 -> 4293 bytes data/icons/128x128/Makefile.am | 5 + data/icons/128x128/kva.png | Bin 0 -> 11983 bytes data/icons/128x128/kvc.png | Bin 0 -> 12499 bytes data/icons/128x128/kvirc.png | Bin 0 -> 14195 bytes data/icons/128x128/kvs.png | Bin 0 -> 13485 bytes data/icons/128x128/kvt.png | Bin 0 -> 12714 bytes data/icons/16x16/Makefile.am | 5 + data/icons/16x16/kva.png | Bin 0 -> 838 bytes data/icons/16x16/kvc.png | Bin 0 -> 802 bytes data/icons/16x16/kvirc.png | Bin 0 -> 966 bytes data/icons/16x16/kvs.png | Bin 0 -> 837 bytes data/icons/16x16/kvt.png | Bin 0 -> 859 bytes data/icons/32x32/Makefile.am | 6 + data/icons/32x32/kva.png | Bin 0 -> 2065 bytes data/icons/32x32/kvc.png | Bin 0 -> 1955 bytes data/icons/32x32/kvirc.png | Bin 0 -> 2286 bytes data/icons/32x32/kvirc.xpm | 295 + data/icons/32x32/kvs.png | Bin 0 -> 2135 bytes data/icons/32x32/kvt.png | Bin 0 -> 2137 bytes data/icons/48x48/Makefile.am | 5 + data/icons/48x48/kva.png | Bin 0 -> 3454 bytes data/icons/48x48/kvc.png | Bin 0 -> 3346 bytes data/icons/48x48/kvirc.png | Bin 0 -> 3864 bytes data/icons/48x48/kvirc.xpm | 311 + data/icons/48x48/kvs.png | Bin 0 -> 3665 bytes data/icons/48x48/kvt.png | Bin 0 -> 3647 bytes data/icons/64x64/Makefile.am | 5 + data/icons/64x64/kvirc.png | Bin 0 -> 5612 bytes data/icons/64x64/kvs.png | Bin 0 -> 5441 bytes data/icons/Makefile.am | 5 + data/icons/scalable/Makefile.am | 5 + data/icons/scalable/createpng.sh | 24 + data/icons/scalable/kva.svgz | Bin 0 -> 5226 bytes data/icons/scalable/kvc.svgz | Bin 0 -> 7557 bytes data/icons/scalable/kvirc.svgz | Bin 0 -> 2759 bytes data/icons/scalable/kvs.svgz | Bin 0 -> 10411 bytes data/icons/scalable/kvt.svgz | Bin 0 -> 10270 bytes data/man/Makefile.am | 3 + data/man/kvirc.1 | 133 + data/mimelnk/Makefile.am | 5 + data/mimelnk/x-kva.desktop | 7 + data/mimelnk/x-kvc.desktop | 7 + data/mimelnk/x-kvs.desktop | 7 + data/mimelnk/x-kvt.desktop | 7 + data/msgcolors/Makefile.am | 5 + data/msgcolors/all-black.msgclr | 659 + data/msgcolors/all-gray.msgclr | 659 + data/msgcolors/all-green.msgclr | 659 + data/msgcolors/all-white.msgclr | 659 + data/msgcolors/colored-2.msgclr | 659 + data/msgcolors/colored.msgclr | 659 + data/msgcolors/default.msgclr | 659 + data/msgcolors/heavy-colors.msgclr | 659 + data/pics/Makefile.am | 8 + data/pics/coresmall/Makefile.am | 8 + data/pics/coresmall/kcs_accept.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_action.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_addons.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_afraid.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_alert.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_alias.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_aliashighlighted.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_angry.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_applet.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_autotilewindows.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_avatar.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_away.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_ban.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_banexcept.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_banunexcept.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_biggrin.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_biggrineyes.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_biggringlasses.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_binarytext.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_blacksquare.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_bluesquare.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_bomb.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_bookmarks.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_broadcastnotice.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_broadcastprivmsg.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_bug.png | Bin 0 -> 862 bytes data/pics/coresmall/kcs_cafe.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_canvas.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_caption.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_cascadewindows.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_chanadmin.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_chanadminaway.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_chanmode.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_chanmodehide.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_channel.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_channelnotice.png | Bin 0 -> 1107 bytes .../coresmall/kcs_channelnoticecrypted.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_chanowner.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_chanowneraway.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_chanprivmsg.png | Bin 0 -> 1107 bytes .../pics/coresmall/kcs_chanprivmsgcrypted.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_chanserv.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_chanunadmin.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_chanunowner.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_classictaskbar.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_close.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_colors.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_console.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_copy.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_cry.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_ctcpreply.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_ctcpreplyunknown.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_ctcprequestflood.png | Bin 0 -> 1107 bytes .../pics/coresmall/kcs_ctcprequestignored.png | Bin 0 -> 1107 bytes .../pics/coresmall/kcs_ctcprequestreplied.png | Bin 0 -> 1106 bytes .../pics/coresmall/kcs_ctcprequestunknown.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_cut.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_cyansquare.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_dccchatmsg.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_dccchatmsgcrypted.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_dccerror.png | Bin 0 -> 1106 bytes data/pics/coresmall/kcs_dccmsg.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_dccrequest.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_dccvoice.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_deadchannel.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_deadquery.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_default.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_deleteitem.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_demoralized.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_deop.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_deuserop.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_devoice.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_discard.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_dkgreensquare.png | Bin 0 -> 1106 bytes data/pics/coresmall/kcs_dock.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_dockwidget.png | Bin 0 -> 1106 bytes data/pics/coresmall/kcs_edititem.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_editor.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_epilogue.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_event.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_eventnohandlers.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_eye.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_file.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_files.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_filetransfer.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_finger.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_floppy.png | Bin 0 -> 1106 bytes data/pics/coresmall/kcs_folder.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_gnutella.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_greensquare.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_gui.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_halfdeop.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_halfop.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_halfopaway.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_handler.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_handlerdisabled.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_heart.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_heartbroken.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_help.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_hidedoubleview.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_hidelistview.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_home.png | Bin 0 -> 1106 bytes data/pics/coresmall/kcs_homepage.png | Bin 0 -> 1106 bytes data/pics/coresmall/kcs_iconmanager.png | Bin 0 -> 1106 bytes data/pics/coresmall/kcs_icq.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_icqblue.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_icqlightgreen.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_icqlightyellow.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_icqred.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_icqyellow.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_idea.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_ident.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_ignore.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_input.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_invisible.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_invite.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_inviteexcept.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_inviteunexcept.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_irc.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_irc0.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_irc1.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_irc2.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_irc3.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_irc4.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_irc5.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_ircview.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_join.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_key.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_kick.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_kiss.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_kvirc.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_limit.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_links.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_linux.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_list.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_locked.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_lockedoff.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_log.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_look.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_maxhorizontal.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_maximize.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_maxvertical.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_mdihelp.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_meban.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_mebanexcept.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_mebanunexcept.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_mechanadmin.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_mechanowner.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_mechanunadmin.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_mechanunowner.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_medehalfop.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_medeop.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_medeuserop.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_medevoice.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_mehalfop.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_meinviteexcept.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_meinviteunexcept.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_mekick.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_meop.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_message.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_messages.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_messagesent.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_meunban.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_meuserop.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_mevoice.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_minimize.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_minus.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_mode.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_motd.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_multimedia.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_namespace.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_newitem.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_newitembywizard.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_nick.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_nicknameproblem.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_nickserv.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_nochannel.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_none.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_notaway.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_notifyoffline.png | Bin 0 -> 1086 bytes data/pics/coresmall/kcs_notifyonline.png | Bin 0 -> 1034 bytes data/pics/coresmall/kcs_op.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_opaway.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_options.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_ownprivmsg.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_ownprivmsgcrypted.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_package.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_parsererror.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_parserwarning.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_part.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_paste.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_play.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_plus.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_popup.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_popupmenu.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_prologue.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_proxy.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_query.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_querynotice.png | Bin 0 -> 1107 bytes .../pics/coresmall/kcs_querynoticecrypted.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_queryprivmsg.png | Bin 0 -> 1107 bytes .../coresmall/kcs_queryprivmsgcrypted.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_querytrace.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_quit.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_quitapp.png | Bin 0 -> 1106 bytes data/pics/coresmall/kcs_quitsplit.png | Bin 0 -> 1106 bytes data/pics/coresmall/kcs_raw.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_rawevent.png | Bin 0 -> 1107 bytes .../pics/coresmall/kcs_raweventnohandlers.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_record.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_redsquare.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_refresh.png | Bin 0 -> 1044 bytes data/pics/coresmall/kcs_regusers.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_restore.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_retry.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_rose.png | Bin 0 -> 1106 bytes data/pics/coresmall/kcs_saycolors.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_sayicon.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_saykvs.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_saysmile.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_screenshot.png | Bin 0 -> 688 bytes data/pics/coresmall/kcs_scriptaction.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_scriptcenter.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_search.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_server.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_servererror.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_serverinfo.png | Bin 0 -> 1106 bytes data/pics/coresmall/kcs_servernotice.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_serverping.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_servnotice.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_sharedfiles.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_showdoubleview.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_showlistview.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_shy.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_slurp.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_smile.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_socketerror.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_socketmessage.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_socketwarning.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_sound.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_spam.png | Bin 0 -> 1106 bytes data/pics/coresmall/kcs_split.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_spy.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_ssl.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_stats.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_statusbar.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_surprised1.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_surprised2.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_systemerror.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_systemmessage.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_systemwarning.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_tearsmile.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_terminal.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_textencoding.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_textexclamative.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_textpoints.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_theme.png | Bin 0 -> 739 bytes data/pics/coresmall/kcs_themeoptions.png | Bin 0 -> 928 bytes data/pics/coresmall/kcs_tilewindows.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_time.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_tongue.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_tongue2.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_toolbar.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_topic.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_transfer.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_transparent.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_treetaskbar.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_ugly.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_unban.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_undock.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_unhandled.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_unlocked.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_unlockedoff.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_unrecognized.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_url.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_userlist.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_userop.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_useropaway.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_userwindow.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_violetsquare.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_voice.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_voiceaway.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_wallops.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_who.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_whoischannels.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_whoisidle.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_whoisother.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_whoisserver.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_whoisuser.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_world.png | Bin 0 -> 1107 bytes data/pics/coresmall/kcs_xy.png | Bin 0 -> 1106 bytes data/pics/coresmall/kcs_yellowsquare.png | Bin 0 -> 1106 bytes data/pics/kvi_actiondrawer.png | Bin 0 -> 181743 bytes data/pics/kvi_activitymeter.png | Bin 0 -> 6509 bytes data/pics/kvi_bigicon_actioneditor.png | Bin 0 -> 1693 bytes data/pics/kvi_bigicon_actions.png | Bin 0 -> 1951 bytes data/pics/kvi_bigicon_addons.png | Bin 0 -> 2536 bytes data/pics/kvi_bigicon_aliaseditor.png | Bin 0 -> 1607 bytes data/pics/kvi_bigicon_cascadewindows.png | Bin 0 -> 998 bytes data/pics/kvi_bigicon_channellist.png | Bin 0 -> 509 bytes data/pics/kvi_bigicon_channels.png | Bin 0 -> 1818 bytes data/pics/kvi_bigicon_channelspopup.png | Bin 0 -> 1818 bytes data/pics/kvi_bigicon_codetester.png | Bin 0 -> 1660 bytes data/pics/kvi_bigicon_connected.png | Bin 0 -> 2305 bytes data/pics/kvi_bigicon_connecting.png | Bin 0 -> 2535 bytes data/pics/kvi_bigicon_disconnected.png | Bin 0 -> 2271 bytes data/pics/kvi_bigicon_eventeditor.png | Bin 0 -> 1708 bytes data/pics/kvi_bigicon_folder.png | Bin 0 -> 2971 bytes data/pics/kvi_bigicon_help.png | Bin 0 -> 2646 bytes data/pics/kvi_bigicon_helpback.png | Bin 0 -> 1228 bytes data/pics/kvi_bigicon_helpclose.png | Bin 0 -> 1376 bytes data/pics/kvi_bigicon_helpforward.png | Bin 0 -> 1242 bytes data/pics/kvi_bigicon_helpindex.png | Bin 0 -> 1711 bytes data/pics/kvi_bigicon_helpsearch.png | Bin 0 -> 975 bytes data/pics/kvi_bigicon_identity.png | Bin 0 -> 1818 bytes data/pics/kvi_bigicon_irccontextdisplay.png | Bin 0 -> 857 bytes data/pics/kvi_bigicon_keyboard.png | Bin 0 -> 1481 bytes data/pics/kvi_bigicon_kvircwww.png | Bin 0 -> 2287 bytes data/pics/kvi_bigicon_kvs.png | Bin 0 -> 1870 bytes data/pics/kvi_bigicon_mailinglist.png | Bin 0 -> 2308 bytes data/pics/kvi_bigicon_minimizeallwindows.png | Bin 0 -> 1654 bytes data/pics/kvi_bigicon_networklinks.png | Bin 0 -> 1765 bytes data/pics/kvi_bigicon_newirccontext.png | Bin 0 -> 2084 bytes data/pics/kvi_bigicon_nickpopup.png | Bin 0 -> 1639 bytes data/pics/kvi_bigicon_nokeyboard.png | Bin 0 -> 1797 bytes data/pics/kvi_bigicon_open.png | Bin 0 -> 2237 bytes data/pics/kvi_bigicon_pack.png | Bin 0 -> 2203 bytes data/pics/kvi_bigicon_popupeditor.png | Bin 0 -> 1240 bytes data/pics/kvi_bigicon_quit.png | Bin 0 -> 2445 bytes data/pics/kvi_bigicon_raweditor.png | Bin 0 -> 1394 bytes data/pics/kvi_bigicon_regusers.png | Bin 0 -> 2968 bytes data/pics/kvi_bigicon_remove.png | Bin 0 -> 2843 bytes data/pics/kvi_bigicon_save.png | Bin 0 -> 1740 bytes data/pics/kvi_bigicon_screenshot.png | Bin 0 -> 1973 bytes data/pics/kvi_bigicon_separator.png | Bin 0 -> 479 bytes data/pics/kvi_bigicon_server.png | Bin 0 -> 1947 bytes data/pics/kvi_bigicon_servers.png | Bin 0 -> 2079 bytes data/pics/kvi_bigicon_settings.png | Bin 0 -> 1906 bytes data/pics/kvi_bigicon_socketspy.png | Bin 0 -> 2418 bytes data/pics/kvi_bigicon_theme.png | Bin 0 -> 2407 bytes data/pics/kvi_bigicon_themeoptions.png | Bin 0 -> 2190 bytes data/pics/kvi_bigicon_tilewindows.png | Bin 0 -> 644 bytes data/pics/kvi_bigicon_toolbareditor.png | Bin 0 -> 1440 bytes data/pics/kvi_bigicon_tools.png | Bin 0 -> 2577 bytes data/pics/kvi_bigicon_trashcan.png | Bin 0 -> 2235 bytes data/pics/kvi_bigicon_unknown.png | Bin 0 -> 1977 bytes data/pics/kvi_bigicon_usermode.png | Bin 0 -> 1749 bytes data/pics/kvi_bigicon_www.png | Bin 0 -> 2668 bytes data/pics/kvi_checkbox_selected.png | Bin 0 -> 346 bytes data/pics/kvi_checkbox_unselected.png | Bin 0 -> 222 bytes data/pics/kvi_horizontal_left.png | Bin 0 -> 439 bytes data/pics/kvi_horizontal_right.png | Bin 0 -> 416 bytes data/pics/kvi_icon_bot.png | Bin 0 -> 539 bytes data/pics/kvi_icon_female.png | Bin 0 -> 277 bytes data/pics/kvi_icon_male.png | Bin 0 -> 289 bytes data/pics/kvi_icon_refresh.png | Bin 0 -> 1146 bytes data/pics/kvi_setup_label.png | Bin 0 -> 161081 bytes data/pics/kvi_setup_theme_hires.png | Bin 0 -> 66729 bytes data/pics/kvi_setup_theme_lowres.png | Bin 0 -> 29162 bytes data/pics/kvi_splash.png | Bin 0 -> 198483 bytes data/pics/kvi_splash_overlay.png | Bin 0 -> 7729 bytes data/pics/kvi_toolbutton_menuindicator.png | Bin 0 -> 79 bytes data/pics/kvi_userchanstate.png | Bin 0 -> 8021 bytes data/protocols/Makefile.am | 9 + data/protocols/irc.protocol | 11 + data/protocols/irc6.protocol | 11 + data/resources/Makefile.am | 3 + data/resources/icon1.ico | Bin 0 -> 3774 bytes data/resources/kvirc.rc | 29 + data/resources/resource.h | 20 + data/resources_mac/Info.plist.in | 40 + data/resources_mac/Makefile.am | 8 + data/resources_mac/kvirc.icns | Bin 0 -> 52772 bytes doc/COPYING | 302 + doc/INSTALL-MacOS.txt | 168 + doc/Makefile.am | 11 + doc/firefox.hack.txt | 32 + doc/hackers.guide.txt | 935 + doc/scriptexamples/Makefile.am | 7 + doc/scriptexamples/README | 6 + doc/scriptexamples/antiidle/Makefile.am | 5 + doc/scriptexamples/antiidle/antiidle.kvs | 159 + doc/scriptexamples/class1.kvs | 102 + doc/scriptexamples/exprtest.kvs | 24 + doc/scriptexamples/label1.kvs | 39 + doc/scriptexamples/mail.kvs | 159 + doc/scriptexamples/minesweeper/Makefile.am | 5 + .../minesweeper/minesweeper.kvs | 131 + doc/scriptexamples/mp3_kdemediaplayers.kvs | 206 + doc/scriptexamples/mp3info.kvs | 109 + doc/scriptexamples/mp3share/Makefile.am | 5 + doc/scriptexamples/mp3share/mp3share.kvs | 84 + doc/scriptexamples/mp3share/mp3share_icon.png | Bin 0 -> 1828 bytes doc/scriptexamples/newkvstest.kvs | 101 + doc/scriptexamples/playing/Makefile.am | 5 + doc/scriptexamples/playing/playing.kvs | 108 + doc/scriptexamples/playing/playing_icon.png | Bin 0 -> 1487 bytes doc/scriptexamples/popup1.kvs | 17 + doc/scriptexamples/popup2.kvs | 124 + doc/scriptexamples/popup3.kvs | 46 + doc/scriptexamples/popup4.kvs | 40 + doc/scriptexamples/relay.kvs | 33 + doc/scriptexamples/runmenu/Makefile.am | 5 + doc/scriptexamples/runmenu/runmenu.kvs | 111 + doc/scriptexamples/signal1.kvs | 47 + doc/scriptexamples/simplehttp/Makefile.am | 5 + doc/scriptexamples/simplehttp/simplehttp.kvs | 105 + doc/scriptexamples/socket1.kvs | 45 + doc/scriptexamples/srfs.kvs | 42 + doc/scriptexamples/switchstress.kvs | 46 + doc/scriptexamples/timer1.kvs | 25 + doc/scriptexamples/tutorial/Makefile.am | 5 + doc/scriptexamples/tutorial/minesweeper1.kvs | 78 + doc/scriptexamples/tutorial/minesweeper2.kvs | 93 + doc/scriptexamples/tutorial/minesweeper3.kvs | 147 + doc/scriptexamples/tutorial/minesweeper4.kvs | 187 + doc/scriptexamples/tutorial/minesweeper5.kvs | 201 + doc/scriptexamples/tutorial/minesweeper6.kvs | 254 + doc/scriptexamples/tutorial/minesweeper7.kvs | 253 + doc/scriptexamples/widget1.kvs | 20 + doc/scriptexamples/widget2.kvs | 23 + doc/scripting.faq.txt | 48 + doc/themes.howto.txt | 123 + doc/translations.howto.txt | 134 + doc/ui-style.tips.txt | 40 + doc/win32.compiling.1.2.txt | 269 + po/Makefile.am | 1 + po/kvirc/Makefile.am | 83 + po/kvirc/kvirc_bg.po | 12195 ++++++++++ po/kvirc/kvirc_ca.po | 16926 +++++++++++++ po/kvirc/kvirc_cs.po | 16315 +++++++++++++ po/kvirc/kvirc_de.po | 12887 ++++++++++ po/kvirc/kvirc_es.po | 13137 ++++++++++ po/kvirc/kvirc_fi.po | 11938 ++++++++++ po/kvirc/kvirc_fr.po | 12662 ++++++++++ po/kvirc/kvirc_hr.po | 11895 ++++++++++ po/kvirc/kvirc_hu.po | 12226 ++++++++++ po/kvirc/kvirc_it.po | 12396 ++++++++++ po/kvirc/kvirc_nl.po | 19199 +++++++++++++++ po/kvirc/kvirc_pl.po | 14086 +++++++++++ po/kvirc/kvirc_pt.po | 12350 ++++++++++ po/kvirc/kvirc_pt_BR.po | 16842 +++++++++++++ po/kvirc/kvirc_ru.po | 12490 ++++++++++ po/kvirc/kvirc_sr.po | 19751 ++++++++++++++++ po/kvirc/kvirc_uk.po | 12449 ++++++++++ po/modules/Makefile.am | 14 + po/modules/about/Makefile.am | 76 + po/modules/about/about_ca.po | 61 + po/modules/about/about_cs.po | 57 + po/modules/about/about_de.po | 55 + po/modules/about/about_es.po | 59 + po/modules/about/about_fi.po | 55 + po/modules/about/about_fr.po | 56 + po/modules/about/about_hr.po | 55 + po/modules/about/about_hu.po | 55 + po/modules/about/about_it.po | 62 + po/modules/about/about_pt.po | 65 + po/modules/about/about_pt_BR.po | 58 + po/modules/about/about_ru.po | 63 + po/modules/about/about_uk.po | 61 + po/modules/dcc/Makefile.am | 80 + po/modules/dcc/dcc_ca.po | 1063 + po/modules/dcc/dcc_cs.po | 1011 + po/modules/dcc/dcc_de.po | 1045 + po/modules/dcc/dcc_es.po | 1064 + po/modules/dcc/dcc_fi.po | 898 + po/modules/dcc/dcc_fr.po | 1022 + po/modules/dcc/dcc_hu.po | 992 + po/modules/dcc/dcc_it.po | 1018 + po/modules/dcc/dcc_pt.po | 1002 + po/modules/dcc/dcc_pt_BR.po | 1052 + po/modules/dcc/dcc_ru.po | 1020 + po/modules/dcc/dcc_uk.po | 1012 + po/modules/editor/Makefile.am | 74 + po/modules/editor/editor_ca.po | 114 + po/modules/editor/editor_cs.po | 114 + po/modules/editor/editor_de.po | 115 + po/modules/editor/editor_es.po | 111 + po/modules/editor/editor_fi.po | 113 + po/modules/editor/editor_fr.po | 114 + po/modules/editor/editor_hu.po | 113 + po/modules/editor/editor_it.po | 137 + po/modules/editor/editor_pt.po | 116 + po/modules/editor/editor_pt_BR.po | 114 + po/modules/editor/editor_ru.po | 118 + po/modules/editor/editor_uk.po | 118 + po/modules/filetransferwindow/Makefile.am | 76 + .../filetransferwindow_ca.po | 130 + .../filetransferwindow_cs.po | 125 + .../filetransferwindow_de.po | 127 + .../filetransferwindow_es.po | 126 + .../filetransferwindow_fi.po | 122 + .../filetransferwindow_fr.po | 123 + .../filetransferwindow_hr.po | 123 + .../filetransferwindow_hu.po | 123 + .../filetransferwindow_it.po | 125 + .../filetransferwindow_pt.po | 125 + .../filetransferwindow_pt_BR.po | 128 + .../filetransferwindow_ru.po | 130 + .../filetransferwindow_uk.po | 128 + po/modules/logview/Makefile.am | 74 + po/modules/logview/logview_ca.po | 120 + po/modules/logview/logview_cs.po | 120 + po/modules/logview/logview_de.po | 122 + po/modules/logview/logview_es.po | 117 + po/modules/logview/logview_fi.po | 119 + po/modules/logview/logview_fr.po | 120 + po/modules/logview/logview_hu.po | 119 + po/modules/logview/logview_it.po | 119 + po/modules/logview/logview_pt.po | 123 + po/modules/logview/logview_pt_BR.po | 119 + po/modules/logview/logview_ru.po | 124 + po/modules/logview/logview_uk.po | 124 + po/modules/mediaplayer/Makefile.am | 68 + po/modules/mediaplayer/mediaplayer_cs.po | 144 + po/modules/mediaplayer/mediaplayer_de.po | 151 + po/modules/mediaplayer/mediaplayer_fi.po | 140 + po/modules/mediaplayer/mediaplayer_fr.po | 149 + po/modules/mediaplayer/mediaplayer_hr.po | 139 + po/modules/mediaplayer/mediaplayer_hu.po | 142 + po/modules/mediaplayer/mediaplayer_it.po | 147 + po/modules/mediaplayer/mediaplayer_ru.po | 143 + po/modules/mediaplayer/mediaplayer_uk.po | 147 + po/modules/notifier/Makefile.am | 76 + po/modules/notifier/notifier_ca.po | 74 + po/modules/notifier/notifier_cs.po | 73 + po/modules/notifier/notifier_de.po | 74 + po/modules/notifier/notifier_es.po | 72 + po/modules/notifier/notifier_fi.po | 69 + po/modules/notifier/notifier_fr.po | 72 + po/modules/notifier/notifier_hr.po | 69 + po/modules/notifier/notifier_hu.po | 69 + po/modules/notifier/notifier_it.po | 76 + po/modules/notifier/notifier_pt.po | 77 + po/modules/notifier/notifier_pt_BR.po | 73 + po/modules/notifier/notifier_ru.po | 78 + po/modules/notifier/notifier_uk.po | 78 + po/modules/options/Makefile.am | 82 + po/modules/options/options_bg.po | 4948 ++++ po/modules/options/options_ca.po | 13454 +++++++++++ po/modules/options/options_cs.po | 13331 +++++++++++ po/modules/options/options_de.po | 13673 +++++++++++ po/modules/options/options_es.po | 13075 ++++++++++ po/modules/options/options_fi.po | 3901 +++ po/modules/options/options_fr.po | 4446 ++++ po/modules/options/options_hu.po | 4386 ++++ po/modules/options/options_it.po | 4437 ++++ po/modules/options/options_nl.po | 14859 ++++++++++++ po/modules/options/options_pl.po | 7797 ++++++ po/modules/options/options_pt.po | 4421 ++++ po/modules/options/options_pt_BR.po | 13608 +++++++++++ po/modules/options/options_ru.po | 4422 ++++ po/modules/options/options_sr.po | 15804 +++++++++++++ po/modules/options/options_uk.po | 4403 ++++ po/modules/perl/Makefile.am | 74 + po/modules/perl/perl_ca.po | 48 + po/modules/perl/perl_cs.po | 43 + po/modules/perl/perl_de.po | 51 + po/modules/perl/perl_es.po | 45 + po/modules/perl/perl_fi.po | 42 + po/modules/perl/perl_fr.po | 48 + po/modules/perl/perl_hu.po | 43 + po/modules/perl/perl_it.po | 50 + po/modules/perl/perl_pt.po | 48 + po/modules/perl/perl_pt_BR.po | 45 + po/modules/perl/perl_ru.po | 46 + po/modules/perl/perl_uk.po | 46 + po/modules/perlcore/Makefile.am | 72 + po/modules/perlcore/perlcore_ca.po | 23 + po/modules/perlcore/perlcore_cs.po | 21 + po/modules/perlcore/perlcore_de.po | 23 + po/modules/perlcore/perlcore_es.po | 21 + po/modules/perlcore/perlcore_fi.po | 21 + po/modules/perlcore/perlcore_fr.po | 21 + po/modules/perlcore/perlcore_hu.po | 21 + po/modules/perlcore/perlcore_it.po | 23 + po/modules/perlcore/perlcore_pt_BR.po | 22 + po/modules/perlcore/perlcore_ru.po | 26 + po/modules/perlcore/perlcore_uk.po | 26 + po/modules/sharedfileswindow/Makefile.am | 77 + .../sharedfileswindow/sharedfileswindow_ca.po | 124 + .../sharedfileswindow/sharedfileswindow_cs.po | 124 + .../sharedfileswindow/sharedfileswindow_de.po | 125 + .../sharedfileswindow/sharedfileswindow_es.po | 123 + .../sharedfileswindow/sharedfileswindow_fi.po | 123 + .../sharedfileswindow/sharedfileswindow_fr.po | 123 + .../sharedfileswindow/sharedfileswindow_hr.po | 123 + .../sharedfileswindow/sharedfileswindow_hu.po | 124 + .../sharedfileswindow/sharedfileswindow_it.po | 128 + .../sharedfileswindow/sharedfileswindow_pt.po | 128 + .../sharedfileswindow_pt_BR.po | 128 + .../sharedfileswindow/sharedfileswindow_ru.po | 129 + .../sharedfileswindow/sharedfileswindow_uk.po | 130 + po/modules/theme/Makefile.am | 68 + po/modules/theme/theme_cs.po | 370 + po/modules/theme/theme_de.po | 407 + po/modules/theme/theme_fi.po | 398 + po/modules/theme/theme_fr.po | 410 + po/modules/theme/theme_hu.po | 404 + po/modules/theme/theme_it.po | 405 + po/modules/theme/theme_pt.po | 403 + po/modules/theme/theme_ru.po | 396 + po/modules/theme/theme_uk.po | 397 + po/modules/torrent/Makefile.am | 68 + po/modules/torrent/torrent_cs.po | 67 + po/modules/torrent/torrent_de.po | 77 + po/modules/torrent/torrent_fi.po | 70 + po/modules/torrent/torrent_hr.po | 68 + po/modules/torrent/torrent_hu.po | 70 + po/modules/torrent/torrent_it.po | 69 + po/modules/torrent/torrent_pt.po | 70 + po/modules/torrent/torrent_ru.po | 73 + po/modules/torrent/torrent_uk.po | 66 + scripts/Makefile.am | 5 + scripts/browser/Makefile.am | 6 + scripts/browser/kvi_run_netscape | 24 + scripts/config/Makefile.am | 6 + scripts/config/kvirc-config.in | 189 + scripts/helpsearch/Makefile.am | 6 + scripts/helpsearch/kvi_search_help | 123 + src/Makefile.am | 10 + src/config.h.in | 247 + src/kvi_configstatus.h | 248 + src/kvilib/Makefile.am | 5 + src/kvilib/build/Makefile.am | 339 + src/kvilib/config/Makefile.am | 5 + src/kvilib/config/kvi_confignames.h | 61 + src/kvilib/config/kvi_debug.h | 52 + src/kvilib/config/kvi_defaults.h | 65 + src/kvilib/config/kvi_fileextensions.h | 37 + src/kvilib/config/kvi_settings.h | 140 + src/kvilib/config/kvi_sourcesdate.h | 40 + src/kvilib/config/kvi_version.h | 33 + src/kvilib/config/kvi_wincfg.h | 210 + src/kvilib/core/Makefile.am | 5 + src/kvilib/core/kvi_bswap.h | 63 + src/kvilib/core/kvi_error.cpp | 237 + src/kvilib/core/kvi_error.h | 188 + src/kvilib/core/kvi_heapobject.cpp | 96 + src/kvilib/core/kvi_heapobject.h | 50 + src/kvilib/core/kvi_inttypes.h | 95 + src/kvilib/core/kvi_malloc.cpp | 198 + src/kvilib/core/kvi_malloc.h | 88 + src/kvilib/core/kvi_memmove.cpp | 253 + src/kvilib/core/kvi_memmove.h | 105 + src/kvilib/core/kvi_pointerhashtable.h | 999 + src/kvilib/core/kvi_pointerlist.h | 1069 + src/kvilib/core/kvi_qcstring.h | 39 + src/kvilib/core/kvi_qstring.cpp | 1125 + src/kvilib/core/kvi_qstring.h | 293 + src/kvilib/core/kvi_strasm.h | 194 + src/kvilib/core/kvi_string.cpp | 3063 +++ src/kvilib/core/kvi_string.h | 552 + src/kvilib/core/kvi_stringarray.cpp | 119 + src/kvilib/core/kvi_stringarray.h | 55 + src/kvilib/core/kvi_valuelist.h | 37 + src/kvilib/ext/Makefile.am | 5 + src/kvilib/ext/kvi_accel.h | 38 + src/kvilib/ext/kvi_cmdformatter.cpp | 242 + src/kvilib/ext/kvi_cmdformatter.h | 64 + src/kvilib/ext/kvi_config.cpp | 1007 + src/kvilib/ext/kvi_config.h | 162 + src/kvilib/ext/kvi_crypt.cpp | 240 + src/kvilib/ext/kvi_crypt.h | 160 + src/kvilib/ext/kvi_databuffer.cpp | 135 + src/kvilib/ext/kvi_databuffer.h | 56 + src/kvilib/ext/kvi_dcophelper.cpp | 357 + src/kvilib/ext/kvi_dcophelper.h | 82 + src/kvilib/ext/kvi_doublebuffer.cpp | 90 + src/kvilib/ext/kvi_doublebuffer.h | 62 + src/kvilib/ext/kvi_draganddrop.h | 45 + src/kvilib/ext/kvi_garbage.cpp | 148 + src/kvilib/ext/kvi_garbage.h | 51 + src/kvilib/ext/kvi_imagelib.cpp | 138 + src/kvilib/ext/kvi_imagelib.h | 73 + src/kvilib/ext/kvi_md5.cpp | 298 + src/kvilib/ext/kvi_md5.h | 68 + src/kvilib/ext/kvi_mediatype.cpp | 541 + src/kvilib/ext/kvi_mediatype.h | 83 + src/kvilib/ext/kvi_miscutils.cpp | 86 + src/kvilib/ext/kvi_miscutils.h | 44 + src/kvilib/ext/kvi_msgtype.cpp | 68 + src/kvilib/ext/kvi_msgtype.h | 74 + src/kvilib/ext/kvi_osinfo.cpp | 510 + src/kvilib/ext/kvi_osinfo.h | 43 + src/kvilib/ext/kvi_parameterlist.cpp | 254 + src/kvilib/ext/kvi_parameterlist.h | 72 + src/kvilib/ext/kvi_pixmap.cpp | 180 + src/kvilib/ext/kvi_pixmap.h | 61 + src/kvilib/ext/kvi_proxydb.cpp | 192 + src/kvilib/ext/kvi_proxydb.h | 86 + src/kvilib/ext/kvi_regchan.cpp | 181 + src/kvilib/ext/kvi_regchan.h | 74 + src/kvilib/ext/kvi_regusersdb.cpp | 743 + src/kvilib/ext/kvi_regusersdb.h | 201 + src/kvilib/ext/kvi_sharedfiles.cpp | 391 + src/kvilib/ext/kvi_sharedfiles.h | 133 + src/kvilib/ext/kvi_stringconversion.cpp | 277 + src/kvilib/ext/kvi_stringconversion.h | 91 + src/kvilib/ext/kvi_xlib.h | 45 + src/kvilib/ext/moc_kvi_crypt.cpp | 94 + src/kvilib/ext/moc_kvi_garbage.cpp | 104 + src/kvilib/ext/moc_kvi_regusersdb.cpp | 143 + src/kvilib/ext/moc_kvi_sharedfiles.cpp | 157 + src/kvilib/file/Makefile.am | 5 + src/kvilib/file/kvi_file.cpp | 256 + src/kvilib/file/kvi_file.h | 120 + src/kvilib/file/kvi_fileutils.cpp | 505 + src/kvilib/file/kvi_fileutils.h | 112 + src/kvilib/file/kvi_packagefile.cpp | 1028 + src/kvilib/file/kvi_packagefile.h | 142 + src/kvilib/include/Makefile.am | 4 + src/kvilib/irc/Makefile.am | 5 + src/kvilib/irc/kvi_avatar.cpp | 165 + src/kvilib/irc/kvi_avatar.h | 83 + src/kvilib/irc/kvi_avatarcache.cpp | 250 + src/kvilib/irc/kvi_avatarcache.h | 69 + src/kvilib/irc/kvi_ircmask.cpp | 760 + src/kvilib/irc/kvi_ircmask.h | 164 + src/kvilib/irc/kvi_ircserver.cpp | 373 + src/kvilib/irc/kvi_ircserver.h | 206 + src/kvilib/irc/kvi_ircserverdb.cpp | 646 + src/kvilib/irc/kvi_ircserverdb.h | 116 + src/kvilib/irc/kvi_ircuserdb.cpp | 285 + src/kvilib/irc/kvi_ircuserdb.h | 145 + src/kvilib/irc/kvi_mirccntrl.cpp | 307 + src/kvilib/irc/kvi_mirccntrl.h | 163 + src/kvilib/irc/kvi_nickserv.cpp | 312 + src/kvilib/irc/kvi_nickserv.h | 112 + src/kvilib/irc/kvi_useridentity.cpp | 252 + src/kvilib/irc/kvi_useridentity.h | 145 + src/kvilib/irc/moc_kvi_ircuserdb.cpp | 119 + src/kvilib/net/Makefile.am | 5 + src/kvilib/net/kvi_dns.cpp | 450 + src/kvilib/net/kvi_dns.h | 142 + src/kvilib/net/kvi_http.cpp | 1440 ++ src/kvilib/net/kvi_http.h | 209 + src/kvilib/net/kvi_netutils.cpp | 1504 ++ src/kvilib/net/kvi_netutils.h | 104 + src/kvilib/net/kvi_socket.cpp | 31 + src/kvilib/net/kvi_socket.h | 356 + src/kvilib/net/kvi_sockettype.h | 45 + src/kvilib/net/kvi_ssl.cpp | 687 + src/kvilib/net/kvi_ssl.h | 180 + src/kvilib/net/kvi_url.cpp | 164 + src/kvilib/net/kvi_url.h | 63 + src/kvilib/net/moc_kvi_dns.cpp | 137 + src/kvilib/net/moc_kvi_http.cpp | 263 + src/kvilib/system/Makefile.am | 5 + src/kvilib/system/kvi_byteorder.h | 62 + src/kvilib/system/kvi_env.cpp | 89 + src/kvilib/system/kvi_env.h | 60 + src/kvilib/system/kvi_library.h | 115 + src/kvilib/system/kvi_locale.cpp | 1191 + src/kvilib/system/kvi_locale.h | 146 + src/kvilib/system/kvi_process.h | 37 + src/kvilib/system/kvi_stdarg.h | 65 + src/kvilib/system/kvi_thread.cpp | 644 + src/kvilib/system/kvi_thread.h | 378 + src/kvilib/system/kvi_time.cpp | 135 + src/kvilib/system/kvi_time.h | 92 + src/kvilib/system/moc_kvi_locale.cpp | 92 + src/kvilib/system/moc_kvi_thread.cpp | 104 + src/kvilib/tal/Makefile.am | 5 + src/kvilib/tal/kvi_tal_application.cpp | 69 + src/kvilib/tal/kvi_tal_application.h | 34 + src/kvilib/tal/kvi_tal_application_kde.h | 37 + src/kvilib/tal/kvi_tal_application_qt.h | 37 + src/kvilib/tal/kvi_tal_filedialog.cpp | 176 + src/kvilib/tal/kvi_tal_filedialog.h | 40 + src/kvilib/tal/kvi_tal_filedialog_kde.h | 50 + src/kvilib/tal/kvi_tal_filedialog_qt.h | 44 + src/kvilib/tal/kvi_tal_filedialog_qt4.h | 46 + src/kvilib/tal/kvi_tal_grid.cpp | 34 + src/kvilib/tal/kvi_tal_grid.h | 36 + src/kvilib/tal/kvi_tal_grid_qt3.h | 39 + src/kvilib/tal/kvi_tal_grid_qt4.h | 41 + src/kvilib/tal/kvi_tal_groupbox.cpp | 34 + src/kvilib/tal/kvi_tal_groupbox.h | 36 + src/kvilib/tal/kvi_tal_groupbox_qt3.h | 47 + src/kvilib/tal/kvi_tal_groupbox_qt4.h | 47 + src/kvilib/tal/kvi_tal_hbox.cpp | 32 + src/kvilib/tal/kvi_tal_hbox.h | 36 + src/kvilib/tal/kvi_tal_hbox_qt3.h | 41 + src/kvilib/tal/kvi_tal_hbox_qt4.h | 41 + src/kvilib/tal/kvi_tal_iconview.cpp | 215 + src/kvilib/tal/kvi_tal_iconview.h | 36 + src/kvilib/tal/kvi_tal_iconview_qt3.h | 100 + src/kvilib/tal/kvi_tal_iconview_qt4.h | 99 + src/kvilib/tal/kvi_tal_listbox.cpp | 513 + src/kvilib/tal/kvi_tal_listbox.h | 50 + src/kvilib/tal/kvi_tal_listbox_qt3.h | 157 + src/kvilib/tal/kvi_tal_listbox_qt4.h | 152 + src/kvilib/tal/kvi_tal_listview.cpp | 1542 ++ src/kvilib/tal/kvi_tal_listview.h | 51 + src/kvilib/tal/kvi_tal_listview_qt3.h | 190 + src/kvilib/tal/kvi_tal_listview_qt4.h | 199 + src/kvilib/tal/kvi_tal_mainwindow.cpp | 69 + src/kvilib/tal/kvi_tal_mainwindow.h | 38 + src/kvilib/tal/kvi_tal_mainwindow_kde.h | 36 + src/kvilib/tal/kvi_tal_mainwindow_qt3.h | 36 + src/kvilib/tal/kvi_tal_mainwindow_qt4.h | 39 + src/kvilib/tal/kvi_tal_menubar.cpp | 58 + src/kvilib/tal/kvi_tal_menubar.h | 33 + src/kvilib/tal/kvi_tal_menubar_kde.h | 35 + src/kvilib/tal/kvi_tal_menubar_qt.h | 35 + src/kvilib/tal/kvi_tal_popupmenu.cpp | 33 + src/kvilib/tal/kvi_tal_popupmenu.h | 36 + src/kvilib/tal/kvi_tal_popupmenu_qt3.h | 42 + src/kvilib/tal/kvi_tal_popupmenu_qt4.h | 89 + src/kvilib/tal/kvi_tal_scrollview.cpp | 33 + src/kvilib/tal/kvi_tal_scrollview.h | 36 + src/kvilib/tal/kvi_tal_scrollview_qt3.h | 41 + src/kvilib/tal/kvi_tal_scrollview_qt4.h | 41 + src/kvilib/tal/kvi_tal_tabdialog.cpp | 34 + src/kvilib/tal/kvi_tal_tabdialog.h | 36 + src/kvilib/tal/kvi_tal_tabdialog_qt3.h | 39 + src/kvilib/tal/kvi_tal_tabdialog_qt4.h | 39 + src/kvilib/tal/kvi_tal_textedit.cpp | 34 + src/kvilib/tal/kvi_tal_textedit.h | 36 + src/kvilib/tal/kvi_tal_textedit_qt3.h | 39 + src/kvilib/tal/kvi_tal_textedit_qt4.h | 39 + src/kvilib/tal/kvi_tal_toolbar.cpp | 107 + src/kvilib/tal/kvi_tal_toolbar.h | 37 + src/kvilib/tal/kvi_tal_toolbar_kde.h | 37 + src/kvilib/tal/kvi_tal_toolbar_qt3.h | 39 + src/kvilib/tal/kvi_tal_toolbar_qt4.h | 47 + src/kvilib/tal/kvi_tal_toolbardocktype.h | 71 + src/kvilib/tal/kvi_tal_tooltip.cpp | 125 + src/kvilib/tal/kvi_tal_tooltip.h | 79 + src/kvilib/tal/kvi_tal_vbox.cpp | 33 + src/kvilib/tal/kvi_tal_vbox.h | 36 + src/kvilib/tal/kvi_tal_vbox_qt3.h | 42 + src/kvilib/tal/kvi_tal_vbox_qt4.h | 42 + src/kvilib/tal/kvi_tal_widgetstack.cpp | 33 + src/kvilib/tal/kvi_tal_widgetstack.h | 36 + src/kvilib/tal/kvi_tal_widgetstack_qt3.h | 42 + src/kvilib/tal/kvi_tal_widgetstack_qt4.h | 42 + src/kvilib/tal/kvi_tal_windowstate.h | 42 + src/kvilib/tal/kvi_tal_wizard.cpp | 584 + src/kvilib/tal/kvi_tal_wizard.h | 169 + src/kvilib/tal/moc_kvi_tal_wizard.cpp | 128 + src/kvirc/Makefile.am | 5 + src/kvirc/build/Makefile.am | 537 + src/kvirc/include/Makefile.am | 3 + src/kvirc/kernel/Makefile.am | 5 + src/kvirc/kernel/kvi_action.cpp | 434 + src/kvirc/kernel/kvi_action.h | 157 + src/kvirc/kernel/kvi_actionmanager.cpp | 321 + src/kvirc/kernel/kvi_actionmanager.h | 118 + src/kvirc/kernel/kvi_app.cpp | 2074 ++ src/kvirc/kernel/kvi_app.h | 344 + src/kvirc/kernel/kvi_app_fs.cpp | 726 + src/kvirc/kernel/kvi_app_setup.cpp | 864 + .../kernel/kvi_asynchronousconnectiondata.cpp | 39 + .../kernel/kvi_asynchronousconnectiondata.h | 54 + src/kvirc/kernel/kvi_coreactionnames.h | 69 + src/kvirc/kernel/kvi_coreactions.cpp | 1206 + src/kvirc/kernel/kvi_coreactions.h | 188 + .../kernel/kvi_customtoolbardescriptor.cpp | 278 + .../kernel/kvi_customtoolbardescriptor.h | 86 + src/kvirc/kernel/kvi_customtoolbarmanager.cpp | 239 + src/kvirc/kernel/kvi_customtoolbarmanager.h | 76 + src/kvirc/kernel/kvi_filetransfer.cpp | 190 + src/kvirc/kernel/kvi_filetransfer.h | 116 + src/kvirc/kernel/kvi_iconmanager.cpp | 924 + src/kvirc/kernel/kvi_iconmanager.h | 501 + src/kvirc/kernel/kvi_internalcmd.cpp | 81 + src/kvirc/kernel/kvi_internalcmd.h | 72 + src/kvirc/kernel/kvi_ipc.cpp | 269 + src/kvirc/kernel/kvi_ipc.h | 75 + src/kvirc/kernel/kvi_ircconnection.cpp | 1354 ++ src/kvirc/kernel/kvi_ircconnection.h | 282 + .../kvi_ircconnectionantictcpflooddata.cpp | 38 + .../kvi_ircconnectionantictcpflooddata.h | 48 + .../kvi_ircconnectionasyncwhoisdata.cpp | 81 + .../kernel/kvi_ircconnectionasyncwhoisdata.h | 72 + .../kvi_ircconnectionnetsplitdetectordata.cpp | 37 + .../kvi_ircconnectionnetsplitdetectordata.h | 46 + .../kernel/kvi_ircconnectionserverinfo.cpp | 285 + .../kernel/kvi_ircconnectionserverinfo.h | 141 + .../kernel/kvi_ircconnectionstatedata.cpp | 42 + src/kvirc/kernel/kvi_ircconnectionstatedata.h | 77 + .../kernel/kvi_ircconnectionstatistics.cpp | 38 + .../kernel/kvi_ircconnectionstatistics.h | 50 + src/kvirc/kernel/kvi_ircconnectiontarget.cpp | 66 + src/kvirc/kernel/kvi_ircconnectiontarget.h | 69 + .../kvi_ircconnectiontargetresolver.cpp | 555 + .../kernel/kvi_ircconnectiontargetresolver.h | 88 + .../kernel/kvi_ircconnectionuserinfo.cpp | 65 + src/kvirc/kernel/kvi_ircconnectionuserinfo.h | 88 + src/kvirc/kernel/kvi_irccontext.cpp | 906 + src/kvirc/kernel/kvi_irccontext.h | 188 + src/kvirc/kernel/kvi_ircdatastreammonitor.cpp | 41 + src/kvirc/kernel/kvi_ircdatastreammonitor.h | 50 + src/kvirc/kernel/kvi_irclink.cpp | 406 + src/kvirc/kernel/kvi_irclink.h | 122 + src/kvirc/kernel/kvi_ircsocket.cpp | 1910 ++ src/kvirc/kernel/kvi_ircsocket.h | 174 + src/kvirc/kernel/kvi_ircurl.cpp | 363 + src/kvirc/kernel/kvi_ircurl.h | 78 + src/kvirc/kernel/kvi_lagmeter.cpp | 266 + src/kvirc/kernel/kvi_lagmeter.h | 74 + src/kvirc/kernel/kvi_main.cpp | 412 + src/kvirc/kernel/kvi_notifylist.cpp | 1277 + src/kvirc/kernel/kvi_notifylist.h | 161 + src/kvirc/kernel/kvi_options.cpp | 1381 ++ src/kvirc/kernel/kvi_options.h | 737 + src/kvirc/kernel/kvi_out.h | 169 + src/kvirc/kernel/kvi_sslmaster.cpp | 168 + src/kvirc/kernel/kvi_sslmaster.h | 47 + src/kvirc/kernel/kvi_texticonmanager.cpp | 254 + src/kvirc/kernel/kvi_texticonmanager.h | 85 + src/kvirc/kernel/kvi_theme.cpp | 299 + src/kvirc/kernel/kvi_theme.h | 171 + src/kvirc/kernel/kvi_useraction.cpp | 46 + src/kvirc/kernel/kvi_useraction.h | 83 + src/kvirc/kernel/kvi_userinput.cpp | 148 + src/kvirc/kernel/kvi_userinput.h | 43 + src/kvirc/kernel/moc_kvi_action.cpp | 137 + src/kvirc/kernel/moc_kvi_actionmanager.cpp | 143 + src/kvirc/kernel/moc_kvi_coreactions.cpp | 927 + src/kvirc/kernel/moc_kvi_filetransfer.cpp | 212 + src/kvirc/kernel/moc_kvi_ircconnection.cpp | 202 + .../moc_kvi_ircconnectiontargetresolver.cpp | 128 + src/kvirc/kernel/moc_kvi_irccontext.cpp | 119 + src/kvirc/kernel/moc_kvi_irclink.cpp | 119 + src/kvirc/kernel/moc_kvi_ircsocket.cpp | 134 + src/kvirc/kvs/Makefile.am | 5 + src/kvirc/kvs/kvi_kvs.cpp | 144 + src/kvirc/kvs/kvi_kvs.h | 59 + src/kvirc/kvs/kvi_kvs_action.cpp | 66 + src/kvirc/kvs/kvi_kvs_action.h | 59 + src/kvirc/kvs/kvi_kvs_aliasmanager.cpp | 121 + src/kvirc/kvs/kvi_kvs_aliasmanager.h | 67 + src/kvirc/kvs/kvi_kvs_array.cpp | 227 + src/kvirc/kvs/kvi_kvs_array.h | 63 + src/kvirc/kvs/kvi_kvs_arraycast.cpp | 44 + src/kvirc/kvs/kvi_kvs_arraycast.h | 50 + src/kvirc/kvs/kvi_kvs_asyncdnsoperation.cpp | 122 + src/kvirc/kvs/kvi_kvs_asyncdnsoperation.h | 53 + src/kvirc/kvs/kvi_kvs_asyncoperation.cpp | 66 + src/kvirc/kvs/kvi_kvs_asyncoperation.h | 59 + src/kvirc/kvs/kvi_kvs_callbackobject.cpp | 108 + src/kvirc/kvs/kvi_kvs_callbackobject.h | 84 + .../kvs/kvi_kvs_corecallbackcommands.cpp | 1187 + src/kvirc/kvs/kvi_kvs_corecallbackcommands.h | 78 + src/kvirc/kvs/kvi_kvs_corefunctions.cpp | 156 + src/kvirc/kvs/kvi_kvs_corefunctions.h | 148 + src/kvirc/kvs/kvi_kvs_corefunctions_af.cpp | 1131 + src/kvirc/kvs/kvi_kvs_corefunctions_gl.cpp | 888 + src/kvirc/kvs/kvi_kvs_corefunctions_mr.cpp | 679 + src/kvirc/kvs/kvi_kvs_corefunctions_sz.cpp | 1109 + src/kvirc/kvs/kvi_kvs_coresimplecommands.cpp | 237 + src/kvirc/kvs/kvi_kvs_coresimplecommands.h | 126 + .../kvs/kvi_kvs_coresimplecommands_af.cpp | 1277 + .../kvs/kvi_kvs_coresimplecommands_gl.cpp | 693 + .../kvs/kvi_kvs_coresimplecommands_mr.cpp | 1335 ++ .../kvs/kvi_kvs_coresimplecommands_sz.cpp | 975 + src/kvirc/kvs/kvi_kvs_dnsmanager.cpp | 180 + src/kvirc/kvs/kvi_kvs_dnsmanager.h | 86 + src/kvirc/kvs/kvi_kvs_event.cpp | 80 + src/kvirc/kvs/kvi_kvs_event.h | 54 + src/kvirc/kvs/kvi_kvs_eventhandler.cpp | 78 + src/kvirc/kvs/kvi_kvs_eventhandler.h | 106 + src/kvirc/kvs/kvi_kvs_eventmanager.cpp | 678 + src/kvirc/kvs/kvi_kvs_eventmanager.h | 120 + src/kvirc/kvs/kvi_kvs_eventtable.cpp | 3147 +++ src/kvirc/kvs/kvi_kvs_eventtable.h | 212 + src/kvirc/kvs/kvi_kvs_eventtriggers.h | 289 + src/kvirc/kvs/kvi_kvs_hash.cpp | 96 + src/kvirc/kvs/kvi_kvs_hash.h | 64 + src/kvirc/kvs/kvi_kvs_kernel.cpp | 221 + src/kvirc/kvs/kvi_kvs_kernel.h | 134 + src/kvirc/kvs/kvi_kvs_moduleinterface.cpp | 180 + src/kvirc/kvs/kvi_kvs_moduleinterface.h | 228 + src/kvirc/kvs/kvi_kvs_object.cpp | 1743 ++ src/kvirc/kvs/kvi_kvs_object.h | 192 + src/kvirc/kvs/kvi_kvs_object_class.cpp | 234 + src/kvirc/kvs/kvi_kvs_object_class.h | 102 + src/kvirc/kvs/kvi_kvs_object_controller.cpp | 229 + src/kvirc/kvs/kvi_kvs_object_controller.h | 70 + src/kvirc/kvs/kvi_kvs_object_functioncall.cpp | 28 + src/kvirc/kvs/kvi_kvs_object_functioncall.h | 49 + .../kvs/kvi_kvs_object_functionhandler.cpp | 50 + .../kvs/kvi_kvs_object_functionhandler.h | 57 + .../kvi_kvs_object_functionhandlerimpl.cpp | 148 + .../kvs/kvi_kvs_object_functionhandlerimpl.h | 115 + src/kvirc/kvs/kvi_kvs_parameterprocessor.cpp | 371 + src/kvirc/kvs/kvi_kvs_parameterprocessor.h | 140 + src/kvirc/kvs/kvi_kvs_parser.cpp | 3827 +++ src/kvirc/kvs/kvi_kvs_parser.h | 300 + src/kvirc/kvs/kvi_kvs_parser_command.cpp | 339 + src/kvirc/kvs/kvi_kvs_parser_comment.cpp | 101 + src/kvirc/kvs/kvi_kvs_parser_dollar.cpp | 331 + src/kvirc/kvs/kvi_kvs_parser_expression.cpp | 636 + src/kvirc/kvs/kvi_kvs_parser_lside.cpp | 1196 + src/kvirc/kvs/kvi_kvs_parser_macros.h | 47 + .../kvs/kvi_kvs_parser_specialcommands.cpp | 1988 ++ src/kvirc/kvs/kvi_kvs_popupmanager.cpp | 117 + src/kvirc/kvs/kvi_kvs_popupmanager.h | 57 + src/kvirc/kvs/kvi_kvs_popupmenu.cpp | 1234 + src/kvirc/kvs/kvi_kvs_popupmenu.h | 300 + src/kvirc/kvs/kvi_kvs_processmanager.cpp | 376 + src/kvirc/kvs/kvi_kvs_processmanager.h | 105 + src/kvirc/kvs/kvi_kvs_report.cpp | 262 + src/kvirc/kvs/kvi_kvs_report.h | 75 + src/kvirc/kvs/kvi_kvs_runtimecall.cpp | 50 + src/kvirc/kvs/kvi_kvs_runtimecall.h | 82 + src/kvirc/kvs/kvi_kvs_runtimecontext.cpp | 206 + src/kvirc/kvs/kvi_kvs_runtimecontext.h | 256 + src/kvirc/kvs/kvi_kvs_rwevaluationresult.cpp | 66 + src/kvirc/kvs/kvi_kvs_rwevaluationresult.h | 70 + src/kvirc/kvs/kvi_kvs_script.cpp | 356 + src/kvirc/kvs/kvi_kvs_script.h | 155 + src/kvirc/kvs/kvi_kvs_scriptaddonmanager.cpp | 386 + src/kvirc/kvs/kvi_kvs_scriptaddonmanager.h | 129 + src/kvirc/kvs/kvi_kvs_switchlist.cpp | 75 + src/kvirc/kvs/kvi_kvs_switchlist.h | 87 + src/kvirc/kvs/kvi_kvs_timermanager.cpp | 256 + src/kvirc/kvs/kvi_kvs_timermanager.h | 123 + src/kvirc/kvs/kvi_kvs_treenode.h | 375 + .../kvi_kvs_treenode_aliasfunctioncall.cpp | 84 + .../kvs/kvi_kvs_treenode_aliasfunctioncall.h | 45 + .../kvi_kvs_treenode_aliassimplecommand.cpp | 120 + .../kvs/kvi_kvs_treenode_aliassimplecommand.h | 47 + src/kvirc/kvs/kvi_kvs_treenode_arraycount.cpp | 86 + src/kvirc/kvs/kvi_kvs_treenode_arraycount.h | 47 + .../kvs/kvi_kvs_treenode_arrayelement.cpp | 161 + src/kvirc/kvs/kvi_kvs_treenode_arrayelement.h | 54 + .../kvi_kvs_treenode_arrayorhashelement.cpp | 45 + .../kvs/kvi_kvs_treenode_arrayorhashelement.h | 42 + .../kvi_kvs_treenode_arrayreferenceassert.cpp | 107 + .../kvi_kvs_treenode_arrayreferenceassert.h | 54 + src/kvirc/kvs/kvi_kvs_treenode_base.cpp | 37 + src/kvirc/kvs/kvi_kvs_treenode_base.h | 51 + ...vi_kvs_treenode_baseobjectfunctioncall.cpp | 72 + .../kvi_kvs_treenode_baseobjectfunctioncall.h | 50 + .../kvs/kvi_kvs_treenode_callbackcommand.cpp | 73 + .../kvs/kvi_kvs_treenode_callbackcommand.h | 48 + src/kvirc/kvs/kvi_kvs_treenode_command.cpp | 80 + src/kvirc/kvs/kvi_kvs_treenode_command.h | 54 + .../kvi_kvs_treenode_commandevaluation.cpp | 60 + .../kvs/kvi_kvs_treenode_commandevaluation.h | 46 + ...kvi_kvs_treenode_commandwithparameters.cpp | 66 + .../kvi_kvs_treenode_commandwithparameters.h | 49 + .../kvs/kvi_kvs_treenode_compositedata.cpp | 86 + .../kvs/kvi_kvs_treenode_compositedata.h | 48 + .../kvs/kvi_kvs_treenode_constantdata.cpp | 80 + src/kvirc/kvs/kvi_kvs_treenode_constantdata.h | 52 + .../kvi_kvs_treenode_corecallbackcommand.cpp | 72 + .../kvi_kvs_treenode_corecallbackcommand.h | 51 + .../kvs/kvi_kvs_treenode_corefunctioncall.cpp | 62 + .../kvs/kvi_kvs_treenode_corefunctioncall.h | 48 + .../kvi_kvs_treenode_coresimplecommand.cpp | 70 + .../kvs/kvi_kvs_treenode_coresimplecommand.h | 49 + src/kvirc/kvs/kvi_kvs_treenode_data.cpp | 107 + src/kvirc/kvs/kvi_kvs_treenode_data.h | 66 + src/kvirc/kvs/kvi_kvs_treenode_datalist.cpp | 110 + src/kvirc/kvs/kvi_kvs_treenode_datalist.h | 57 + src/kvirc/kvs/kvi_kvs_treenode_expression.cpp | 776 + src/kvirc/kvs/kvi_kvs_treenode_expression.h | 249 + .../kvs/kvi_kvs_treenode_expressionreturn.cpp | 68 + .../kvs/kvi_kvs_treenode_expressionreturn.h | 45 + ...kvi_kvs_treenode_extendedscopevariable.cpp | 79 + .../kvi_kvs_treenode_extendedscopevariable.h | 45 + .../kvs/kvi_kvs_treenode_functioncall.cpp | 62 + src/kvirc/kvs/kvi_kvs_treenode_functioncall.h | 47 + .../kvs/kvi_kvs_treenode_globalvariable.cpp | 63 + .../kvs/kvi_kvs_treenode_globalvariable.h | 45 + src/kvirc/kvs/kvi_kvs_treenode_hashcount.cpp | 88 + src/kvirc/kvs/kvi_kvs_treenode_hashcount.h | 47 + .../kvs/kvi_kvs_treenode_hashelement.cpp | 164 + src/kvirc/kvs/kvi_kvs_treenode_hashelement.h | 52 + .../kvi_kvs_treenode_hashreferenceassert.cpp | 107 + .../kvi_kvs_treenode_hashreferenceassert.h | 53 + .../kvs/kvi_kvs_treenode_indirectdata.cpp | 46 + src/kvirc/kvs/kvi_kvs_treenode_indirectdata.h | 42 + .../kvs/kvi_kvs_treenode_instruction.cpp | 43 + src/kvirc/kvs/kvi_kvs_treenode_instruction.h | 54 + .../kvs/kvi_kvs_treenode_instructionblock.cpp | 88 + .../kvs/kvi_kvs_treenode_instructionblock.h | 55 + .../kvs/kvi_kvs_treenode_localvariable.cpp | 76 + .../kvs/kvi_kvs_treenode_localvariable.h | 45 + ...kvi_kvs_treenode_modulecallbackcommand.cpp | 97 + .../kvi_kvs_treenode_modulecallbackcommand.h | 50 + .../kvi_kvs_treenode_modulefunctioncall.cpp | 90 + .../kvs/kvi_kvs_treenode_modulefunctioncall.h | 48 + .../kvi_kvs_treenode_modulesimplecommand.cpp | 97 + .../kvi_kvs_treenode_modulesimplecommand.h | 48 + ...s_treenode_multipleparameteridentifier.cpp | 89 + ...kvs_treenode_multipleparameteridentifier.h | 49 + .../kvs/kvi_kvs_treenode_objectfield.cpp | 80 + src/kvirc/kvs/kvi_kvs_treenode_objectfield.h | 47 + .../kvi_kvs_treenode_objectfunctioncall.cpp | 60 + .../kvs/kvi_kvs_treenode_objectfunctioncall.h | 45 + src/kvirc/kvs/kvi_kvs_treenode_operation.cpp | 1497 ++ src/kvirc/kvs/kvi_kvs_treenode_operation.h | 296 + .../kvs/kvi_kvs_treenode_parameterreturn.cpp | 88 + .../kvs/kvi_kvs_treenode_parameterreturn.h | 45 + .../kvs/kvi_kvs_treenode_rebindingswitch.cpp | 96 + .../kvs/kvi_kvs_treenode_rebindingswitch.h | 49 + .../kvs/kvi_kvs_treenode_scopeoperator.cpp | 148 + .../kvs/kvi_kvs_treenode_scopeoperator.h | 58 + .../kvs/kvi_kvs_treenode_simplecommand.cpp | 58 + .../kvs/kvi_kvs_treenode_simplecommand.h | 43 + ...kvs_treenode_singleparameteridentifier.cpp | 74 + ...i_kvs_treenode_singleparameteridentifier.h | 50 + .../kvs/kvi_kvs_treenode_specialcommand.cpp | 54 + .../kvs/kvi_kvs_treenode_specialcommand.h | 41 + .../kvi_kvs_treenode_specialcommandbreak.cpp | 55 + .../kvi_kvs_treenode_specialcommandbreak.h | 45 + .../kvi_kvs_treenode_specialcommandclass.cpp | 157 + .../kvi_kvs_treenode_specialcommandclass.h | 69 + ...vi_kvs_treenode_specialcommanddefpopup.cpp | 424 + .../kvi_kvs_treenode_specialcommanddefpopup.h | 193 + .../kvs/kvi_kvs_treenode_specialcommanddo.cpp | 87 + .../kvs/kvi_kvs_treenode_specialcommanddo.h | 51 + .../kvi_kvs_treenode_specialcommandfor.cpp | 133 + .../kvs/kvi_kvs_treenode_specialcommandfor.h | 53 + ...kvi_kvs_treenode_specialcommandforeach.cpp | 191 + .../kvi_kvs_treenode_specialcommandforeach.h | 53 + .../kvs/kvi_kvs_treenode_specialcommandif.cpp | 94 + .../kvs/kvi_kvs_treenode_specialcommandif.h | 50 + .../kvi_kvs_treenode_specialcommandswitch.cpp | 349 + .../kvi_kvs_treenode_specialcommandswitch.h | 117 + .../kvi_kvs_treenode_specialcommandunset.cpp | 74 + .../kvi_kvs_treenode_specialcommandunset.h | 47 + .../kvi_kvs_treenode_specialcommandwhile.cpp | 97 + .../kvi_kvs_treenode_specialcommandwhile.h | 51 + src/kvirc/kvs/kvi_kvs_treenode_stringcast.cpp | 67 + src/kvirc/kvs/kvi_kvs_treenode_stringcast.h | 45 + src/kvirc/kvs/kvi_kvs_treenode_switchlist.cpp | 170 + src/kvirc/kvs/kvi_kvs_treenode_switchlist.h | 61 + ...vi_kvs_treenode_thisobjectfunctioncall.cpp | 73 + .../kvi_kvs_treenode_thisobjectfunctioncall.h | 49 + src/kvirc/kvs/kvi_kvs_treenode_variable.cpp | 54 + src/kvirc/kvs/kvi_kvs_treenode_variable.h | 47 + .../kvs/kvi_kvs_treenode_voidfunctioncall.cpp | 66 + .../kvs/kvi_kvs_treenode_voidfunctioncall.h | 47 + src/kvirc/kvs/kvi_kvs_types.h | 38 + src/kvirc/kvs/kvi_kvs_useraction.cpp | 277 + src/kvirc/kvs/kvi_kvs_useraction.h | 97 + src/kvirc/kvs/kvi_kvs_variant.cpp | 1615 ++ src/kvirc/kvs/kvi_kvs_variant.h | 208 + src/kvirc/kvs/kvi_kvs_variantlist.cpp | 199 + src/kvirc/kvs/kvi_kvs_variantlist.h | 81 + src/kvirc/kvs/moc_kvi_kvs_action.cpp | 92 + .../kvs/moc_kvi_kvs_asyncdnsoperation.cpp | 107 + src/kvirc/kvs/moc_kvi_kvs_asyncoperation.cpp | 92 + src/kvirc/kvs/moc_kvi_kvs_dnsmanager.cpp | 104 + src/kvirc/kvs/moc_kvi_kvs_object.cpp | 104 + src/kvirc/kvs/moc_kvi_kvs_popupmenu.cpp | 217 + src/kvirc/kvs/moc_kvi_kvs_processmanager.cpp | 116 + src/kvirc/kvs/moc_kvi_kvs_timermanager.cpp | 92 + src/kvirc/kvs/moc_kvi_kvs_useraction.cpp | 92 + src/kvirc/module/Makefile.am | 5 + src/kvirc/module/kvi_mexlinkfilter.cpp | 35 + src/kvirc/module/kvi_mexlinkfilter.h | 45 + src/kvirc/module/kvi_mexserverimport.cpp | 33 + src/kvirc/module/kvi_mexserverimport.h | 45 + src/kvirc/module/kvi_mextoolbar.cpp | 38 + src/kvirc/module/kvi_mextoolbar.h | 38 + src/kvirc/module/kvi_module.cpp | 379 + src/kvirc/module/kvi_module.h | 204 + src/kvirc/module/kvi_moduleextension.cpp | 253 + src/kvirc/module/kvi_moduleextension.h | 143 + src/kvirc/module/kvi_modulemanager.cpp | 369 + src/kvirc/module/kvi_modulemanager.h | 70 + src/kvirc/module/moc_kvi_mexlinkfilter.cpp | 94 + src/kvirc/module/moc_kvi_mexserverimport.cpp | 124 + src/kvirc/module/moc_kvi_mextoolbar.cpp | 94 + src/kvirc/module/moc_kvi_modulemanager.cpp | 129 + src/kvirc/sparser/Makefile.am | 5 + src/kvirc/sparser/kvi_antispam.cpp | 122 + src/kvirc/sparser/kvi_antispam.h | 31 + src/kvirc/sparser/kvi_ircmessage.cpp | 179 + src/kvirc/sparser/kvi_ircmessage.h | 106 + src/kvirc/sparser/kvi_numeric.h | 430 + src/kvirc/sparser/kvi_sp_ctcp.cpp | 1855 ++ src/kvirc/sparser/kvi_sp_literal.cpp | 1867 ++ src/kvirc/sparser/kvi_sp_numeric.cpp | 2003 ++ src/kvirc/sparser/kvi_sp_tables.cpp | 1089 + src/kvirc/sparser/kvi_sparser.cpp | 150 + src/kvirc/sparser/kvi_sparser.h | 268 + src/kvirc/ui/Makefile.am | 5 + src/kvirc/ui/kvi_actiondrawer.cpp | 227 + src/kvirc/ui/kvi_actiondrawer.h | 107 + src/kvirc/ui/kvi_channel.cpp | 1628 ++ src/kvirc/ui/kvi_channel.h | 313 + src/kvirc/ui/kvi_colorwin.cpp | 122 + src/kvirc/ui/kvi_colorwin.h | 47 + src/kvirc/ui/kvi_console.cpp | 1283 + src/kvirc/ui/kvi_console.h | 212 + src/kvirc/ui/kvi_cryptcontroller.cpp | 390 + src/kvirc/ui/kvi_cryptcontroller.h | 116 + src/kvirc/ui/kvi_ctcppagedialog.cpp | 147 + src/kvirc/ui/kvi_ctcppagedialog.h | 56 + src/kvirc/ui/kvi_customtoolbar.cpp | 670 + src/kvirc/ui/kvi_customtoolbar.h | 91 + src/kvirc/ui/kvi_debugwindow.cpp | 132 + src/kvirc/ui/kvi_debugwindow.h | 54 + src/kvirc/ui/kvi_dynamictooltip.cpp | 61 + src/kvirc/ui/kvi_dynamictooltip.h | 61 + src/kvirc/ui/kvi_filedialog.cpp | 229 + src/kvirc/ui/kvi_filedialog.h | 55 + src/kvirc/ui/kvi_frame.cpp | 1450 ++ src/kvirc/ui/kvi_frame.h | 259 + src/kvirc/ui/kvi_historywin.cpp | 255 + src/kvirc/ui/kvi_historywin.h | 61 + src/kvirc/ui/kvi_htmldialog.cpp | 155 + src/kvirc/ui/kvi_htmldialog.h | 87 + src/kvirc/ui/kvi_imagedialog.cpp | 367 + src/kvirc/ui/kvi_imagedialog.h | 109 + src/kvirc/ui/kvi_input.cpp | 2680 +++ src/kvirc/ui/kvi_input.h | 262 + src/kvirc/ui/kvi_ipeditor.cpp | 453 + src/kvirc/ui/kvi_ipeditor.h | 62 + src/kvirc/ui/kvi_irctoolbar.cpp | 441 + src/kvirc/ui/kvi_irctoolbar.h | 95 + src/kvirc/ui/kvi_ircview.cpp | 5161 ++++ src/kvirc/ui/kvi_ircview.h | 252 + src/kvirc/ui/kvi_ircviewprivate.h | 164 + src/kvirc/ui/kvi_ircviewtools.cpp | 348 + src/kvirc/ui/kvi_ircviewtools.h | 119 + src/kvirc/ui/kvi_listview.cpp | 212 + src/kvirc/ui/kvi_listview.h | 58 + src/kvirc/ui/kvi_maskeditor.cpp | 350 + src/kvirc/ui/kvi_maskeditor.h | 108 + src/kvirc/ui/kvi_mdicaption.cpp | 285 + src/kvirc/ui/kvi_mdicaption.h | 101 + src/kvirc/ui/kvi_mdichild.cpp | 576 + src/kvirc/ui/kvi_mdichild.h | 122 + src/kvirc/ui/kvi_mdimanager.cpp | 1126 + src/kvirc/ui/kvi_mdimanager.h | 144 + src/kvirc/ui/kvi_menubar.cpp | 415 + src/kvirc/ui/kvi_menubar.h | 83 + src/kvirc/ui/kvi_modeeditor.cpp | 336 + src/kvirc/ui/kvi_modeeditor.h | 70 + src/kvirc/ui/kvi_modew.cpp | 175 + src/kvirc/ui/kvi_modew.h | 57 + src/kvirc/ui/kvi_msgbox.cpp | 89 + src/kvirc/ui/kvi_msgbox.h | 53 + src/kvirc/ui/kvi_optionswidget.cpp | 722 + src/kvirc/ui/kvi_optionswidget.h | 163 + src/kvirc/ui/kvi_query.cpp | 659 + src/kvirc/ui/kvi_query.h | 95 + src/kvirc/ui/kvi_scriptbutton.cpp | 98 + src/kvirc/ui/kvi_scriptbutton.h | 79 + src/kvirc/ui/kvi_scripteditor.cpp | 139 + src/kvirc/ui/kvi_scripteditor.h | 69 + src/kvirc/ui/kvi_selectors.cpp | 839 + src/kvirc/ui/kvi_selectors.h | 367 + src/kvirc/ui/kvi_splash.cpp | 222 + src/kvirc/ui/kvi_splash.h | 72 + src/kvirc/ui/kvi_statusbar.cpp | 643 + src/kvirc/ui/kvi_statusbar.h | 130 + src/kvirc/ui/kvi_statusbarapplet.cpp | 563 + src/kvirc/ui/kvi_statusbarapplet.h | 195 + src/kvirc/ui/kvi_styled_controls.cpp | 373 + src/kvirc/ui/kvi_styled_controls.h | 113 + src/kvirc/ui/kvi_taskbar.cpp | 1509 ++ src/kvirc/ui/kvi_taskbar.h | 312 + src/kvirc/ui/kvi_texticonwin.cpp | 283 + src/kvirc/ui/kvi_texticonwin.h | 64 + src/kvirc/ui/kvi_themedlabel.cpp | 154 + src/kvirc/ui/kvi_themedlabel.h | 62 + src/kvirc/ui/kvi_toolbar.cpp | 160 + src/kvirc/ui/kvi_toolbar.h | 52 + src/kvirc/ui/kvi_toolwindows_container.cpp | 140 + src/kvirc/ui/kvi_toolwindows_container.h | 65 + src/kvirc/ui/kvi_topicw.cpp | 834 + src/kvirc/ui/kvi_topicw.h | 120 + src/kvirc/ui/kvi_userlistview.cpp | 1972 ++ src/kvirc/ui/kvi_userlistview.h | 259 + src/kvirc/ui/kvi_window.cpp | 1518 ++ src/kvirc/ui/kvi_window.h | 393 + src/kvirc/ui/moc_kvi_actiondrawer.cpp | 238 + src/kvirc/ui/moc_kvi_customtoolbar.cpp | 180 + src/kvirc/ui/moc_kvi_debugwindow.cpp | 92 + src/kvirc/ui/moc_kvi_htmldialog.cpp | 107 + src/kvirc/ui/moc_kvi_imagedialog.cpp | 126 + src/kvirc/ui/moc_kvi_ircviewtools.cpp | 116 + src/kvirc/ui/moc_kvi_listview.cpp | 92 + src/kvirc/ui/moc_kvi_mdicaption.cpp | 238 + src/kvirc/ui/moc_kvi_mdichild.cpp | 141 + src/kvirc/ui/moc_kvi_mdimanager.cpp | 191 + src/kvirc/ui/moc_kvi_statusbar.cpp | 126 + src/kvirc/ui/moc_kvi_statusbarapplet.cpp | 496 + .../ui/moc_kvi_toolwindows_container.cpp | 165 + src/modules/Makefile.am | 61 + src/modules/about/ENTRIES | 259 + src/modules/about/Makefile.am | 27 + src/modules/about/aboutdialog.cpp | 166 + src/modules/about/aboutdialog.h | 39 + src/modules/about/abouttext.inc | 768 + src/modules/about/libkviabout.cpp | 100 + src/modules/about/mkabouttext.pl | 172 + src/modules/action/Makefile.am | 17 + src/modules/action/libkviaction.cpp | 533 + src/modules/actioneditor/Makefile.am | 21 + src/modules/actioneditor/actioneditor.cpp | 1009 + src/modules/actioneditor/actioneditor.h | 210 + .../actioneditor/libkviactioneditor.cpp | 86 + src/modules/addon/Makefile.am | 22 + src/modules/addon/libkviaddon.cpp | 659 + src/modules/addon/managementdialog.cpp | 403 + src/modules/addon/managementdialog.h | 114 + src/modules/addon/pics/Makefile.am | 9 + src/modules/addon/pics/kvi_dialog_addons.png | Bin 0 -> 191267 bytes src/modules/aliaseditor/Makefile.am | 21 + src/modules/aliaseditor/aliaseditor.cpp | 1408 ++ src/modules/aliaseditor/aliaseditor.h | 197 + src/modules/aliaseditor/libkvialiaseditor.cpp | 90 + src/modules/avatar/Makefile.am | 20 + src/modules/avatar/libkviavatar.cpp | 585 + src/modules/avatar/libkviavatar.h | 54 + src/modules/chan/Makefile.am | 18 + src/modules/chan/libkvichan.cpp | 1635 ++ src/modules/channelsjoin/Makefile.am | 20 + .../channelsjoin/channelsjoinwindow.cpp | 301 + src/modules/channelsjoin/channelsjoinwindow.h | 70 + .../channelsjoin/libkvichannelsjoin.cpp | 108 + src/modules/clock/Makefile.am | 20 + src/modules/clock/libkviclock.cpp | 257 + src/modules/clock/libkviclock.h | 46 + src/modules/codetester/Makefile.am | 17 + src/modules/codetester/codetester.cpp | 157 + src/modules/codetester/codetester.h | 67 + src/modules/codetester/libkvicodetester.cpp | 89 + src/modules/config/Makefile.am | 18 + src/modules/config/libkviconfig.cpp | 877 + src/modules/context/Makefile.am | 18 + src/modules/context/libkvicontext.cpp | 401 + src/modules/dcc/Makefile.am | 66 + src/modules/dcc/adpcmcodec.cpp | 294 + src/modules/dcc/adpcmcodec.h | 59 + src/modules/dcc/broker.cpp | 898 + src/modules/dcc/broker.h | 124 + src/modules/dcc/canvas.cpp | 301 + src/modules/dcc/canvas.h | 74 + src/modules/dcc/canvaswidget.cpp | 1601 ++ src/modules/dcc/canvaswidget.h | 322 + src/modules/dcc/chat.cpp | 842 + src/modules/dcc/chat.h | 101 + src/modules/dcc/codec.cpp | 88 + src/modules/dcc/codec.h | 57 + src/modules/dcc/descriptor.cpp | 224 + src/modules/dcc/descriptor.h | 163 + src/modules/dcc/dialogs.cpp | 206 + src/modules/dcc/dialogs.h | 82 + src/modules/dcc/gsmcodec.cpp | 149 + src/modules/dcc/gsmcodec.h | 54 + src/modules/dcc/kvi_dccfiletransfericons.png | Bin 0 -> 25192 bytes src/modules/dcc/libkvidcc.cpp | 2766 +++ src/modules/dcc/marshal.cpp | 647 + src/modules/dcc/marshal.h | 112 + src/modules/dcc/requests.cpp | 1154 + src/modules/dcc/send.cpp | 1898 ++ src/modules/dcc/send.h | 260 + src/modules/dcc/thread.cpp | 111 + src/modules/dcc/thread.h | 79 + src/modules/dcc/utils.cpp | 169 + src/modules/dcc/utils.h | 34 + src/modules/dcc/voice.cpp | 1041 + src/modules/dcc/voice.h | 440 + src/modules/dcc/window.cpp | 53 + src/modules/dcc/window.h | 49 + src/modules/dialog/Makefile.am | 21 + src/modules/dialog/libkvidialog.cpp | 920 + src/modules/dialog/libkvidialog.h | 133 + src/modules/dockwidget/Makefile.am | 33 + src/modules/dockwidget/kvi_dock.png | Bin 0 -> 1959 bytes src/modules/dockwidget/kvi_dock_part-0.png | Bin 0 -> 1477 bytes src/modules/dockwidget/kvi_dock_part-1.png | Bin 0 -> 1027 bytes src/modules/dockwidget/kvi_dock_part-2.png | Bin 0 -> 1034 bytes src/modules/dockwidget/libkvidockwidget.h | 34 + .../dockwidget/libkvidockwidget_qt3.cpp | 858 + src/modules/dockwidget/libkvidockwidget_qt3.h | 95 + .../dockwidget/libkvidockwidget_qt4.cpp | 691 + src/modules/dockwidget/libkvidockwidget_qt4.h | 81 + src/modules/editor/Makefile.am | 20 + src/modules/editor/libkvieditor.cpp | 94 + src/modules/editor/scripteditor.cpp | 1224 + src/modules/editor/scripteditor.h | 200 + src/modules/eventeditor/Makefile.am | 21 + src/modules/eventeditor/eventeditor.cpp | 536 + src/modules/eventeditor/eventeditor.h | 120 + src/modules/eventeditor/libkvieventeditor.cpp | 88 + src/modules/file/Makefile.am | 18 + src/modules/file/libkvifile.cpp | 1260 + src/modules/filetransferwindow/Makefile.am | 22 + .../filetransferwindow/caps/Makefile.am | 9 + .../caps/filetransferwindow | 0 .../filetransferwindow/filetransferwindow.cpp | 768 + .../filetransferwindow/filetransferwindow.h | 111 + .../libkvifiletransferwindow.cpp | 161 + src/modules/help/Makefile.am | 22 + src/modules/help/helpwidget.cpp | 154 + src/modules/help/helpwidget.h | 61 + src/modules/help/helpwindow.cpp | 329 + src/modules/help/helpwindow.h | 75 + src/modules/help/index.cpp | 854 + src/modules/help/index.h | 124 + src/modules/help/libkvihelp.cpp | 236 + src/modules/http/Makefile.am | 26 + src/modules/http/httpfiletransfer.cpp | 489 + src/modules/http/httpfiletransfer.h | 104 + src/modules/http/kvi_httpicons.png | Bin 0 -> 19630 bytes src/modules/http/libkvihttp.cpp | 324 + src/modules/ident/Makefile.am | 20 + src/modules/ident/libkviident.cpp | 615 + src/modules/ident/libkviident.h | 86 + src/modules/iograph/Makefile.am | 20 + src/modules/iograph/libkviiograph.cpp | 297 + src/modules/iograph/libkviiograph.h | 55 + src/modules/lamerizer/Makefile.am | 27 + src/modules/lamerizer/lamerizer | 1 + src/modules/lamerizer/libkvilamerizer.cpp | 279 + src/modules/lamerizer/libkvilamerizer.h | 47 + src/modules/links/Makefile.am | 20 + src/modules/links/libkvilinks.cpp | 116 + src/modules/links/linkswindow.cpp | 472 + src/modules/links/linkswindow.h | 89 + src/modules/list/Makefile.am | 20 + src/modules/list/libkvilist.cpp | 101 + src/modules/list/listwindow.cpp | 535 + src/modules/list/listwindow.h | 122 + src/modules/log/Makefile.am | 18 + src/modules/log/libkvilog.cpp | 309 + src/modules/logview/Makefile.am | 23 + src/modules/logview/caps/Makefile.am | 9 + src/modules/logview/caps/logview | 0 src/modules/logview/libkvilogview.cpp | 170 + src/modules/logview/logviewmdiwindow.cpp | 477 + src/modules/logview/logviewmdiwindow.h | 125 + src/modules/logview/logviewwidget.cpp | 76 + src/modules/logview/logviewwidget.h | 86 + src/modules/mask/Makefile.am | 18 + src/modules/mask/libkvimask.cpp | 201 + src/modules/math/Makefile.am | 18 + src/modules/math/libkvimath.cpp | 475 + src/modules/mediaplayer/Makefile.am | 36 + src/modules/mediaplayer/libkvimediaplayer.cpp | 1751 ++ .../mediaplayer/mp_amarokinterface.cpp | 189 + src/modules/mediaplayer/mp_amarokinterface.h | 76 + src/modules/mediaplayer/mp_amipinterface.cpp | 400 + src/modules/mediaplayer/mp_amipinterface.h | 58 + src/modules/mediaplayer/mp_dcopinterface.cpp | 224 + src/modules/mediaplayer/mp_dcopinterface.h | 57 + src/modules/mediaplayer/mp_interface.cpp | 277 + src/modules/mediaplayer/mp_interface.h | 238 + src/modules/mediaplayer/mp_jukinterface.cpp | 185 + src/modules/mediaplayer/mp_jukinterface.h | 77 + src/modules/mediaplayer/mp_mp3.cpp | 468 + src/modules/mediaplayer/mp_mp3.h | 137 + .../mediaplayer/mp_winampinterface.cpp | 566 + src/modules/mediaplayer/mp_winampinterface.h | 76 + src/modules/mediaplayer/mp_xmmsinterface.cpp | 355 + src/modules/mediaplayer/mp_xmmsinterface.h | 84 + src/modules/mircimport/Makefile.am | 22 + src/modules/mircimport/caps/Makefile.am | 9 + src/modules/mircimport/caps/mircimport | 1 + src/modules/mircimport/libkvimircimport.cpp | 385 + src/modules/mircimport/libkvimircimport.h | 82 + src/modules/mircimport/pics/Makefile.am | 9 + .../mircimport/pics/kvi_mircimport.png | Bin 0 -> 733 bytes src/modules/my/Makefile.am | 20 + src/modules/my/idle.cpp | 133 + src/modules/my/idle.h | 84 + src/modules/my/idle_mac.cpp | 162 + src/modules/my/idle_x11.cpp | 113 + src/modules/my/libkvimy.cpp | 430 + src/modules/notifier/Makefile.am | 44 + src/modules/notifier/libkvinotifier.cpp | 323 + src/modules/notifier/libkvinotifier.kvc | 28 + src/modules/notifier/notifiermessage.cpp | 107 + src/modules/notifier/notifiermessage.h | 97 + src/modules/notifier/notifiersettings.h | 66 + src/modules/notifier/notifierwindow.cpp | 1427 ++ src/modules/notifier/notifierwindow.h | 194 + src/modules/notifier/notifierwindowbody.cpp | 232 + src/modules/notifier/notifierwindowbody.h | 147 + src/modules/notifier/notifierwindowborder.cpp | 220 + src/modules/notifier/notifierwindowborder.h | 154 + .../notifier/notifierwindowprogressbar.cpp | 51 + .../notifier/notifierwindowprogressbar.h | 67 + src/modules/notifier/notifierwindowtabs.cpp | 705 + src/modules/notifier/notifierwindowtabs.h | 263 + src/modules/notifier/pics/Makefile.am | 9 + .../notifier/pics/notifier_background.png | Bin 0 -> 4306 bytes src/modules/notifier/pics/notifier_close.png | Bin 0 -> 311 bytes src/modules/notifier/pics/notifier_down.png | Bin 0 -> 491 bytes .../pics/notifier_icon_body_next_clicked.png | Bin 0 -> 630 bytes .../pics/notifier_icon_body_next_off.png | Bin 0 -> 561 bytes .../pics/notifier_icon_body_next_on.png | Bin 0 -> 568 bytes .../pics/notifier_icon_body_prev_clicked.png | Bin 0 -> 599 bytes .../pics/notifier_icon_body_prev_off.png | Bin 0 -> 520 bytes .../pics/notifier_icon_body_prev_on.png | Bin 0 -> 535 bytes .../pics/notifier_icon_body_write_clicked.png | Bin 0 -> 166 bytes .../pics/notifier_icon_body_write_off.png | Bin 0 -> 171 bytes .../pics/notifier_icon_body_write_on.png | Bin 0 -> 160 bytes .../pics/notifier_icon_close_clicked.png | Bin 0 -> 1087 bytes .../pics/notifier_icon_close_clicked_hl.png | Bin 0 -> 1064 bytes .../notifier/pics/notifier_icon_close_out.png | Bin 0 -> 1248 bytes .../pics/notifier_icon_close_out_hl.png | Bin 0 -> 1214 bytes .../pics/notifier_icon_close_over.png | Bin 0 -> 1374 bytes .../pics/notifier_icon_close_over_hl.png | Bin 0 -> 1338 bytes .../pics/notifier_icon_tab_close_clicked.png | Bin 0 -> 518 bytes .../pics/notifier_icon_tab_close_off.png | Bin 0 -> 428 bytes .../pics/notifier_icon_tab_close_on.png | Bin 0 -> 517 bytes .../pics/notifier_icon_tab_next_clicked.png | Bin 0 -> 809 bytes .../pics/notifier_icon_tab_next_out.png | Bin 0 -> 828 bytes .../pics/notifier_icon_tab_next_over.png | Bin 0 -> 870 bytes .../pics/notifier_icon_tab_prev_clicked.png | Bin 0 -> 773 bytes .../pics/notifier_icon_tab_prev_out.png | Bin 0 -> 827 bytes .../pics/notifier_icon_tab_prev_over.png | Bin 0 -> 843 bytes src/modules/notifier/pics/notifier_left.png | Bin 0 -> 442 bytes src/modules/notifier/pics/notifier_pen.png | Bin 0 -> 712 bytes .../notifier/pics/notifier_pix_body_dwn.png | Bin 0 -> 138 bytes .../notifier/pics/notifier_pix_body_dwndx.png | Bin 0 -> 162 bytes .../notifier/pics/notifier_pix_body_dwnsx.png | Bin 0 -> 162 bytes .../notifier/pics/notifier_pix_body_dx.png | Bin 0 -> 136 bytes .../notifier/pics/notifier_pix_body_kvirc.png | Bin 0 -> 2599 bytes .../pics/notifier_pix_body_kvirc_dwn.png | Bin 0 -> 249 bytes .../pics/notifier_pix_body_kvirc_sx.png | Bin 0 -> 172 bytes .../notifier/pics/notifier_pix_body_sx.png | Bin 0 -> 136 bytes .../pics/notifier_pix_caption_bkg.png | Bin 0 -> 154 bytes .../pics/notifier_pix_caption_bkg_hl.png | Bin 0 -> 154 bytes .../notifier/pics/notifier_pix_caption_dx.png | Bin 0 -> 196 bytes .../pics/notifier_pix_caption_dx_hl.png | Bin 0 -> 196 bytes .../notifier/pics/notifier_pix_caption_sx.png | Bin 0 -> 195 bytes .../pics/notifier_pix_caption_sx_hl.png | Bin 0 -> 195 bytes .../notifier/pics/notifier_pix_tab_bkg.png | Bin 0 -> 150 bytes .../notifier/pics/notifier_pix_tab_dx.png | Bin 0 -> 157 bytes .../pics/notifier_pix_tab_focused_bkg.png | Bin 0 -> 156 bytes .../pics/notifier_pix_tab_focused_dx.png | Bin 0 -> 187 bytes .../pics/notifier_pix_tab_focused_sx.png | Bin 0 -> 184 bytes .../notifier/pics/notifier_pix_tab_sx.png | Bin 0 -> 157 bytes .../pics/notifier_pix_tab_unfocused_bkg.png | Bin 0 -> 175 bytes .../pics/notifier_pix_tab_unfocused_dx.png | Bin 0 -> 210 bytes .../pics/notifier_pix_tab_unfocused_sx.png | Bin 0 -> 204 bytes .../notifier/pics/notifier_pix_wnd_dwn.png | Bin 0 -> 156 bytes .../notifier/pics/notifier_pix_wnd_dwn_hl.png | Bin 0 -> 156 bytes .../notifier/pics/notifier_pix_wnd_dwndx.png | Bin 0 -> 193 bytes .../pics/notifier_pix_wnd_dwndx_hl.png | Bin 0 -> 193 bytes .../notifier/pics/notifier_pix_wnd_dwnsx.png | Bin 0 -> 196 bytes .../pics/notifier_pix_wnd_dwnsx_hl.png | Bin 0 -> 196 bytes .../notifier/pics/notifier_pix_wnd_dx.png | Bin 0 -> 150 bytes .../notifier/pics/notifier_pix_wnd_dx_hl.png | Bin 0 -> 150 bytes .../notifier/pics/notifier_pix_wnd_sx.png | Bin 0 -> 150 bytes .../notifier/pics/notifier_pix_wnd_sx_hl.png | Bin 0 -> 150 bytes src/modules/notifier/pics/notifier_right.png | Bin 0 -> 443 bytes src/modules/notifier/pics/notifier_up.png | Bin 0 -> 488 bytes src/modules/objects/Makefile.am | 143 + src/modules/objects/class_button.cpp | 178 + src/modules/objects/class_button.h | 58 + src/modules/objects/class_buttongroup.cpp | 87 + src/modules/objects/class_buttongroup.h | 44 + src/modules/objects/class_checkbox.cpp | 128 + src/modules/objects/class_checkbox.h | 48 + src/modules/objects/class_combobox.cpp | 368 + src/modules/objects/class_combobox.h | 71 + src/modules/objects/class_dialog.cpp | 89 + src/modules/objects/class_dialog.h | 44 + src/modules/objects/class_dockwindow.cpp | 276 + src/modules/objects/class_dockwindow.h | 49 + src/modules/objects/class_file.cpp | 488 + src/modules/objects/class_file.h | 113 + src/modules/objects/class_groupbox.cpp | 376 + src/modules/objects/class_groupbox.h | 64 + src/modules/objects/class_hbox.cpp | 128 + src/modules/objects/class_hbox.h | 47 + src/modules/objects/class_label.cpp | 409 + src/modules/objects/class_label.h | 54 + src/modules/objects/class_layout.cpp | 274 + src/modules/objects/class_layout.h | 52 + src/modules/objects/class_lcd.cpp | 180 + src/modules/objects/class_lcd.h | 51 + src/modules/objects/class_lineedit.cpp | 461 + src/modules/objects/class_lineedit.h | 81 + src/modules/objects/class_list.cpp | 392 + src/modules/objects/class_list.h | 64 + src/modules/objects/class_listbox.cpp | 390 + src/modules/objects/class_listbox.h | 70 + src/modules/objects/class_listview.cpp | 557 + src/modules/objects/class_listview.h | 102 + src/modules/objects/class_listviewitem.cpp | 421 + src/modules/objects/class_listviewitem.h | 88 + src/modules/objects/class_mainwindow.cpp | 158 + src/modules/objects/class_mainwindow.h | 47 + src/modules/objects/class_menubar.cpp | 76 + src/modules/objects/class_menubar.h | 40 + src/modules/objects/class_multilineedit.cpp | 1217 + src/modules/objects/class_multilineedit.h | 110 + src/modules/objects/class_painter.cpp | 1007 + src/modules/objects/class_painter.h | 96 + src/modules/objects/class_pixmap.cpp | 317 + src/modules/objects/class_pixmap.h | 72 + src/modules/objects/class_popupmenu.cpp | 361 + src/modules/objects/class_popupmenu.h | 58 + src/modules/objects/class_process.cpp | 317 + src/modules/objects/class_process.h | 74 + src/modules/objects/class_progressbar.cpp | 162 + src/modules/objects/class_progressbar.h | 51 + src/modules/objects/class_radiobutton.cpp | 138 + src/modules/objects/class_radiobutton.h | 51 + src/modules/objects/class_slider.cpp | 287 + src/modules/objects/class_slider.h | 64 + src/modules/objects/class_socket.cpp | 1331 ++ src/modules/objects/class_socket.h | 185 + src/modules/objects/class_spinbox.cpp | 265 + src/modules/objects/class_spinbox.h | 64 + src/modules/objects/class_tabwidget.cpp | 541 + src/modules/objects/class_tabwidget.h | 61 + src/modules/objects/class_tbrowser.cpp | 143 + src/modules/objects/class_tbrowser.h | 52 + src/modules/objects/class_toolbar.cpp | 156 + src/modules/objects/class_toolbar.h | 50 + src/modules/objects/class_toolbutton.cpp | 341 + src/modules/objects/class_toolbutton.h | 69 + src/modules/objects/class_urllabel.cpp | 330 + src/modules/objects/class_urllabel.h | 64 + src/modules/objects/class_vbox.cpp | 128 + src/modules/objects/class_vbox.h | 45 + src/modules/objects/class_widget.cpp | 1745 ++ src/modules/objects/class_widget.h | 113 + src/modules/objects/class_window.cpp | 158 + src/modules/objects/class_window.h | 64 + src/modules/objects/class_wizard.cpp | 371 + src/modules/objects/class_wizard.h | 79 + src/modules/objects/class_workspace.cpp | 262 + src/modules/objects/class_workspace.h | 53 + src/modules/objects/class_wrapper.cpp | 269 + src/modules/objects/class_wrapper.h | 53 + src/modules/objects/class_xmlreader.cpp | 343 + src/modules/objects/class_xmlreader.h | 46 + src/modules/objects/libkviobjects.cpp | 1066 + src/modules/objects/object_macros.h | 90 + src/modules/options/Makefile.am | 157 + src/modules/options/container.cpp | 123 + src/modules/options/container.h | 53 + src/modules/options/dialog.cpp | 675 + src/modules/options/dialog.h | 104 + src/modules/options/instances.cpp | 3590 +++ src/modules/options/instances.h | 83 + src/modules/options/libkvioptions.cpp | 324 + src/modules/options/mkcreateinstanceproc.sh | 441 + src/modules/options/optw_antispam.cpp | 64 + src/modules/options/optw_antispam.h | 47 + src/modules/options/optw_avatar.cpp | 131 + src/modules/options/optw_avatar.h | 45 + src/modules/options/optw_away.cpp | 71 + src/modules/options/optw_away.h | 46 + src/modules/options/optw_connection.cpp | 321 + src/modules/options/optw_connection.h | 116 + src/modules/options/optw_ctcp.cpp | 90 + src/modules/options/optw_ctcp.h | 41 + .../options/optw_ctcpfloodprotection.cpp | 116 + .../options/optw_ctcpfloodprotection.h | 41 + src/modules/options/optw_dcc.cpp | 393 + src/modules/options/optw_dcc.h | 139 + src/modules/options/optw_generalopt.cpp | 51 + src/modules/options/optw_generalopt.h | 39 + src/modules/options/optw_highlighting.cpp | 128 + src/modules/options/optw_highlighting.h | 67 + src/modules/options/optw_ident.cpp | 37 + src/modules/options/optw_ident.h | 28 + src/modules/options/optw_identity.cpp | 729 + src/modules/options/optw_identity.h | 192 + src/modules/options/optw_ignore.cpp | 62 + src/modules/options/optw_ignore.h | 47 + src/modules/options/optw_input.cpp | 156 + src/modules/options/optw_input.h | 61 + .../options/optw_interfacefeatures.cpp | 88 + src/modules/options/optw_interfacefeatures.h | 48 + .../options/optw_interfacelookglobal.cpp | 215 + .../options/optw_interfacelookglobal.h | 113 + src/modules/options/optw_irc.cpp | 220 + src/modules/options/optw_irc.h | 116 + src/modules/options/optw_ircoutput.cpp | 94 + src/modules/options/optw_ircoutput.h | 49 + src/modules/options/optw_ircview.cpp | 168 + src/modules/options/optw_ircview.h | 83 + src/modules/options/optw_lag.cpp | 85 + src/modules/options/optw_lag.h | 40 + src/modules/options/optw_logging.cpp | 64 + src/modules/options/optw_logging.h | 42 + src/modules/options/optw_mediatypes.cpp | 262 + src/modules/options/optw_mediatypes.h | 83 + src/modules/options/optw_messages.cpp | 693 + src/modules/options/optw_messages.h | 186 + src/modules/options/optw_nickserv.cpp | 368 + src/modules/options/optw_nickserv.h | 89 + src/modules/options/optw_notify.cpp | 134 + src/modules/options/optw_notify.h | 54 + src/modules/options/optw_protection.cpp | 50 + src/modules/options/optw_protection.h | 48 + src/modules/options/optw_proxy.cpp | 367 + src/modules/options/optw_proxy.h | 94 + src/modules/options/optw_query.cpp | 115 + src/modules/options/optw_query.h | 43 + src/modules/options/optw_servers.cpp | 1712 ++ src/modules/options/optw_servers.h | 210 + src/modules/options/optw_sound.cpp | 310 + src/modules/options/optw_sound.h | 94 + src/modules/options/optw_ssl.cpp | 35 + src/modules/options/optw_ssl.h | 29 + src/modules/options/optw_taskbar.cpp | 255 + src/modules/options/optw_taskbar.h | 125 + src/modules/options/optw_textencoding.cpp | 139 + src/modules/options/optw_textencoding.h | 50 + src/modules/options/optw_texticons.cpp | 244 + src/modules/options/optw_texticons.h | 105 + src/modules/options/optw_theme.cpp | 26 + src/modules/options/optw_theme.h | 30 + src/modules/options/optw_tools.cpp | 50 + src/modules/options/optw_tools.h | 46 + src/modules/options/optw_topiclabel.cpp | 43 + src/modules/options/optw_topiclabel.h | 41 + src/modules/options/optw_transport.cpp | 33 + src/modules/options/optw_transport.h | 29 + src/modules/options/optw_tray.cpp | 91 + src/modules/options/optw_tray.h | 50 + src/modules/options/optw_uparser.cpp | 62 + src/modules/options/optw_uparser.h | 40 + src/modules/options/optw_urlhandlers.cpp | 127 + src/modules/options/optw_urlhandlers.h | 52 + src/modules/options/optw_userlist.cpp | 245 + src/modules/options/optw_userlist.h | 114 + src/modules/perl/Makefile.am | 18 + src/modules/perl/libkviperl.cpp | 600 + src/modules/perlcore/KVIrc.xs | 139 + src/modules/perlcore/Makefile.am | 23 + src/modules/perlcore/libkviperlcore.cpp | 414 + src/modules/perlcore/perlcoreinterface.h | 59 + src/modules/perlcore/ppport.h | 540 + src/modules/perlcore/typemap | 313 + src/modules/perlcore/xs.inc | 277 + src/modules/popupeditor/Makefile.am | 17 + src/modules/popupeditor/libkvipopupeditor.cpp | 88 + src/modules/popupeditor/popupeditor.cpp | 1433 ++ src/modules/popupeditor/popupeditor.h | 206 + src/modules/raweditor/Makefile.am | 17 + src/modules/raweditor/libkviraweditor.cpp | 87 + src/modules/raweditor/raweditor.cpp | 563 + src/modules/raweditor/raweditor.h | 118 + src/modules/regchan/Makefile.am | 18 + src/modules/regchan/libkviregchan.cpp | 426 + src/modules/reguser/Makefile.am | 25 + src/modules/reguser/dialog.cpp | 903 + src/modules/reguser/dialog.h | 148 + src/modules/reguser/edituser.cpp | 781 + src/modules/reguser/edituser.h | 152 + src/modules/reguser/libkvireguser.cpp | 1239 + src/modules/reguser/wizard.cpp | 464 + src/modules/reguser/wizard.h | 89 + src/modules/rijndael/Makefile.am | 23 + src/modules/rijndael/ablowfish.cpp | 632 + src/modules/rijndael/ablowfish.h | 141 + src/modules/rijndael/caps/Makefile.am | 9 + src/modules/rijndael/caps/rijndael | 1 + src/modules/rijndael/libkvirijndael.cpp | 853 + src/modules/rijndael/libkvirijndael.h | 169 + src/modules/rijndael/rijndael.cpp | 1626 ++ src/modules/rijndael/rijndael.h | 153 + src/modules/setup/Makefile.am | 26 + src/modules/setup/libkvisetup.cpp | 158 + src/modules/setup/setupwizard.cpp | 1132 + src/modules/setup/setupwizard.h | 164 + src/modules/sharedfile/Makefile.am | 18 + src/modules/sharedfile/libkvisharedfile.cpp | 281 + src/modules/sharedfileswindow/Makefile.am | 22 + .../sharedfileswindow/caps/Makefile.am | 9 + .../sharedfileswindow/caps/sharedfileswindow | 0 .../libkvisharedfileswindow.cpp | 158 + .../sharedfileswindow/sharedfileswindow.cpp | 742 + .../sharedfileswindow/sharedfileswindow.h | 114 + src/modules/snd/Makefile.am | 22 + src/modules/snd/libkvisnd.cpp | 744 + src/modules/snd/libkvisnd.h | 213 + src/modules/socketspy/Makefile.am | 20 + src/modules/socketspy/libkvisocketspy.cpp | 92 + src/modules/socketspy/socketspywindow.cpp | 125 + src/modules/socketspy/socketspywindow.h | 53 + src/modules/spaste/Makefile.am | 24 + src/modules/spaste/controller.cpp | 121 + src/modules/spaste/controller.h | 59 + src/modules/spaste/libkvispaste.cpp | 346 + src/modules/spaste/libkvispaste.h | 13 + src/modules/str/Makefile.am | 18 + src/modules/str/libkvistr.cpp | 2330 ++ src/modules/system/Makefile.am | 18 + src/modules/system/libkvisystem.cpp | 749 + src/modules/system/plugin.cpp | 427 + src/modules/system/plugin.h | 80 + src/modules/term/Makefile.am | 21 + src/modules/term/libkviterm.cpp | 167 + src/modules/term/termwidget.cpp | 179 + src/modules/term/termwidget.h | 72 + src/modules/term/termwindow.cpp | 84 + src/modules/term/termwindow.h | 54 + src/modules/texticons/Makefile.am | 18 + src/modules/texticons/libkvitexticons.cpp | 161 + src/modules/theme/Makefile.am | 36 + src/modules/theme/libkvitheme.cpp | 193 + src/modules/theme/managementdialog.cpp | 459 + src/modules/theme/managementdialog.h | 109 + src/modules/theme/packthemedialog.cpp | 489 + src/modules/theme/packthemedialog.h | 66 + src/modules/theme/savethemedialog.cpp | 301 + src/modules/theme/savethemedialog.h | 71 + src/modules/theme/themefunctions.cpp | 396 + src/modules/theme/themefunctions.h | 54 + src/modules/tip/Makefile.am | 30 + src/modules/tip/kvi_tip.png | Bin 0 -> 2590 bytes src/modules/tip/libkvitip.cpp | 309 + src/modules/tip/libkvitip.h | 71 + src/modules/tip/libkvitip.kvc | 28 + src/modules/tip/libkvitip_cs.kvc | 29 + src/modules/tip/libkvitip_it.kvc | 28 + src/modules/tip/libkvitip_ru.kvc | 29 + src/modules/tmphighlight/Makefile.am | 22 + .../tmphighlight/libkvitmphighlight.cpp | 174 + src/modules/toolbar/Makefile.am | 18 + src/modules/toolbar/libkvitoolbar.cpp | 602 + src/modules/toolbareditor/Makefile.am | 20 + .../toolbareditor/libkvitoolbareditor.cpp | 96 + src/modules/toolbareditor/toolbareditor.cpp | 537 + src/modules/toolbareditor/toolbareditor.h | 119 + src/modules/torrent/Makefile.am | 30 + src/modules/torrent/libkvitorrent.cpp | 904 + src/modules/torrent/tc_interface.cpp | 31 + src/modules/torrent/tc_interface.h | 164 + .../torrent/tc_ktorrentdcopinterface.cpp | 500 + .../torrent/tc_ktorrentdcopinterface.h | 131 + src/modules/torrent/tc_statusbarapplet.cpp | 69 + src/modules/torrent/tc_statusbarapplet.h | 26 + src/modules/url/Makefile.am | 23 + src/modules/url/caps/Makefile.am | 9 + src/modules/url/caps/url | 0 src/modules/url/icons.h | 554 + src/modules/url/libkviurl.cpp | 910 + src/modules/url/libkviurl.h | 144 + src/modules/window/Makefile.am | 21 + src/modules/window/libkviwindow.cpp | 1547 ++ src/modules/window/userwindow.cpp | 107 + src/modules/window/userwindow.h | 48 + 1941 files changed, 728744 insertions(+) create mode 100644 ChangeLog create mode 100644 FAQ create mode 100644 INSTALL create mode 100644 Makefile.am create mode 100644 README create mode 100644 TODO create mode 100644 acinclude.m4 create mode 100644 aclocal.m4 create mode 100755 autogen.sh create mode 100755 configure.in create mode 100644 data/Makefile.am create mode 100644 data/applnk/Makefile.am create mode 100644 data/applnk/kvirc.desktop create mode 100644 data/config/Makefile.am create mode 100644 data/config/serverdb.kvc create mode 100644 data/config/texticons.kvc create mode 100644 data/defscript/Makefile.am create mode 100644 data/defscript/aliases.kvs create mode 100644 data/defscript/default.kvs create mode 100644 data/defscript/events.kvs create mode 100644 data/defscript/installer.kvs create mode 100644 data/defscript/popups.kvs create mode 100644 data/defscript/theme-install.kvs create mode 100644 data/defscript/toolbars.kvs create mode 100644 data/deftheme/Makefile.am create mode 100644 data/deftheme/silverirc/Makefile.am create mode 100644 data/deftheme/silverirc/pixmapInputBackground.png create mode 100644 data/deftheme/silverirc/pixmapIrcViewBackground.png create mode 100644 data/deftheme/silverirc/pixmapUserListViewBackground.png create mode 100644 data/deftheme/silverirc/themedata.kvc create mode 100644 data/deftheme/silverirc/themeinfo.kvc create mode 100644 data/doctemplates/Makefile.am create mode 100644 data/doctemplates/ircintro.template create mode 100644 data/doctemplates/kvircintro.template create mode 100644 data/doctemplates/rfc2812.template create mode 100644 data/helppics/Makefile.am create mode 100644 data/helppics/helplogoleft.png create mode 100644 data/helppics/helplogoright.png create mode 100644 data/icons/128x128/Makefile.am create mode 100644 data/icons/128x128/kva.png create mode 100644 data/icons/128x128/kvc.png create mode 100644 data/icons/128x128/kvirc.png create mode 100644 data/icons/128x128/kvs.png create mode 100644 data/icons/128x128/kvt.png create mode 100644 data/icons/16x16/Makefile.am create mode 100644 data/icons/16x16/kva.png create mode 100644 data/icons/16x16/kvc.png create mode 100644 data/icons/16x16/kvirc.png create mode 100644 data/icons/16x16/kvs.png create mode 100644 data/icons/16x16/kvt.png create mode 100644 data/icons/32x32/Makefile.am create mode 100644 data/icons/32x32/kva.png create mode 100644 data/icons/32x32/kvc.png create mode 100644 data/icons/32x32/kvirc.png create mode 100644 data/icons/32x32/kvirc.xpm create mode 100644 data/icons/32x32/kvs.png create mode 100644 data/icons/32x32/kvt.png create mode 100644 data/icons/48x48/Makefile.am create mode 100644 data/icons/48x48/kva.png create mode 100644 data/icons/48x48/kvc.png create mode 100644 data/icons/48x48/kvirc.png create mode 100644 data/icons/48x48/kvirc.xpm create mode 100644 data/icons/48x48/kvs.png create mode 100644 data/icons/48x48/kvt.png create mode 100644 data/icons/64x64/Makefile.am create mode 100644 data/icons/64x64/kvirc.png create mode 100644 data/icons/64x64/kvs.png create mode 100644 data/icons/Makefile.am create mode 100644 data/icons/scalable/Makefile.am create mode 100644 data/icons/scalable/createpng.sh create mode 100644 data/icons/scalable/kva.svgz create mode 100644 data/icons/scalable/kvc.svgz create mode 100644 data/icons/scalable/kvirc.svgz create mode 100644 data/icons/scalable/kvs.svgz create mode 100644 data/icons/scalable/kvt.svgz create mode 100644 data/man/Makefile.am create mode 100644 data/man/kvirc.1 create mode 100644 data/mimelnk/Makefile.am create mode 100644 data/mimelnk/x-kva.desktop create mode 100644 data/mimelnk/x-kvc.desktop create mode 100644 data/mimelnk/x-kvs.desktop create mode 100644 data/mimelnk/x-kvt.desktop create mode 100644 data/msgcolors/Makefile.am create mode 100644 data/msgcolors/all-black.msgclr create mode 100644 data/msgcolors/all-gray.msgclr create mode 100644 data/msgcolors/all-green.msgclr create mode 100644 data/msgcolors/all-white.msgclr create mode 100644 data/msgcolors/colored-2.msgclr create mode 100644 data/msgcolors/colored.msgclr create mode 100644 data/msgcolors/default.msgclr create mode 100644 data/msgcolors/heavy-colors.msgclr create mode 100644 data/pics/Makefile.am create mode 100644 data/pics/coresmall/Makefile.am create mode 100644 data/pics/coresmall/kcs_accept.png create mode 100644 data/pics/coresmall/kcs_action.png create mode 100644 data/pics/coresmall/kcs_addons.png create mode 100644 data/pics/coresmall/kcs_afraid.png create mode 100644 data/pics/coresmall/kcs_alert.png create mode 100644 data/pics/coresmall/kcs_alias.png create mode 100644 data/pics/coresmall/kcs_aliashighlighted.png create mode 100644 data/pics/coresmall/kcs_angry.png create mode 100644 data/pics/coresmall/kcs_applet.png create mode 100644 data/pics/coresmall/kcs_autotilewindows.png create mode 100644 data/pics/coresmall/kcs_avatar.png create mode 100644 data/pics/coresmall/kcs_away.png create mode 100644 data/pics/coresmall/kcs_ban.png create mode 100644 data/pics/coresmall/kcs_banexcept.png create mode 100644 data/pics/coresmall/kcs_banunexcept.png create mode 100644 data/pics/coresmall/kcs_biggrin.png create mode 100644 data/pics/coresmall/kcs_biggrineyes.png create mode 100644 data/pics/coresmall/kcs_biggringlasses.png create mode 100644 data/pics/coresmall/kcs_binarytext.png create mode 100644 data/pics/coresmall/kcs_blacksquare.png create mode 100644 data/pics/coresmall/kcs_bluesquare.png create mode 100644 data/pics/coresmall/kcs_bomb.png create mode 100644 data/pics/coresmall/kcs_bookmarks.png create mode 100644 data/pics/coresmall/kcs_broadcastnotice.png create mode 100644 data/pics/coresmall/kcs_broadcastprivmsg.png create mode 100644 data/pics/coresmall/kcs_bug.png create mode 100644 data/pics/coresmall/kcs_cafe.png create mode 100644 data/pics/coresmall/kcs_canvas.png create mode 100644 data/pics/coresmall/kcs_caption.png create mode 100644 data/pics/coresmall/kcs_cascadewindows.png create mode 100644 data/pics/coresmall/kcs_chanadmin.png create mode 100644 data/pics/coresmall/kcs_chanadminaway.png create mode 100644 data/pics/coresmall/kcs_chanmode.png create mode 100644 data/pics/coresmall/kcs_chanmodehide.png create mode 100644 data/pics/coresmall/kcs_channel.png create mode 100644 data/pics/coresmall/kcs_channelnotice.png create mode 100644 data/pics/coresmall/kcs_channelnoticecrypted.png create mode 100644 data/pics/coresmall/kcs_chanowner.png create mode 100644 data/pics/coresmall/kcs_chanowneraway.png create mode 100644 data/pics/coresmall/kcs_chanprivmsg.png create mode 100644 data/pics/coresmall/kcs_chanprivmsgcrypted.png create mode 100644 data/pics/coresmall/kcs_chanserv.png create mode 100644 data/pics/coresmall/kcs_chanunadmin.png create mode 100644 data/pics/coresmall/kcs_chanunowner.png create mode 100644 data/pics/coresmall/kcs_classictaskbar.png create mode 100644 data/pics/coresmall/kcs_close.png create mode 100644 data/pics/coresmall/kcs_colors.png create mode 100644 data/pics/coresmall/kcs_console.png create mode 100644 data/pics/coresmall/kcs_copy.png create mode 100644 data/pics/coresmall/kcs_cry.png create mode 100644 data/pics/coresmall/kcs_ctcpreply.png create mode 100644 data/pics/coresmall/kcs_ctcpreplyunknown.png create mode 100644 data/pics/coresmall/kcs_ctcprequestflood.png create mode 100644 data/pics/coresmall/kcs_ctcprequestignored.png create mode 100644 data/pics/coresmall/kcs_ctcprequestreplied.png create mode 100644 data/pics/coresmall/kcs_ctcprequestunknown.png create mode 100644 data/pics/coresmall/kcs_cut.png create mode 100644 data/pics/coresmall/kcs_cyansquare.png create mode 100644 data/pics/coresmall/kcs_dccchatmsg.png create mode 100644 data/pics/coresmall/kcs_dccchatmsgcrypted.png create mode 100644 data/pics/coresmall/kcs_dccerror.png create mode 100644 data/pics/coresmall/kcs_dccmsg.png create mode 100644 data/pics/coresmall/kcs_dccrequest.png create mode 100644 data/pics/coresmall/kcs_dccvoice.png create mode 100644 data/pics/coresmall/kcs_deadchannel.png create mode 100644 data/pics/coresmall/kcs_deadquery.png create mode 100644 data/pics/coresmall/kcs_default.png create mode 100644 data/pics/coresmall/kcs_deleteitem.png create mode 100644 data/pics/coresmall/kcs_demoralized.png create mode 100644 data/pics/coresmall/kcs_deop.png create mode 100644 data/pics/coresmall/kcs_deuserop.png create mode 100644 data/pics/coresmall/kcs_devoice.png create mode 100644 data/pics/coresmall/kcs_discard.png create mode 100644 data/pics/coresmall/kcs_dkgreensquare.png create mode 100644 data/pics/coresmall/kcs_dock.png create mode 100644 data/pics/coresmall/kcs_dockwidget.png create mode 100644 data/pics/coresmall/kcs_edititem.png create mode 100644 data/pics/coresmall/kcs_editor.png create mode 100644 data/pics/coresmall/kcs_epilogue.png create mode 100644 data/pics/coresmall/kcs_event.png create mode 100644 data/pics/coresmall/kcs_eventnohandlers.png create mode 100644 data/pics/coresmall/kcs_eye.png create mode 100644 data/pics/coresmall/kcs_file.png create mode 100644 data/pics/coresmall/kcs_files.png create mode 100644 data/pics/coresmall/kcs_filetransfer.png create mode 100644 data/pics/coresmall/kcs_finger.png create mode 100644 data/pics/coresmall/kcs_floppy.png create mode 100644 data/pics/coresmall/kcs_folder.png create mode 100644 data/pics/coresmall/kcs_gnutella.png create mode 100644 data/pics/coresmall/kcs_greensquare.png create mode 100644 data/pics/coresmall/kcs_gui.png create mode 100644 data/pics/coresmall/kcs_halfdeop.png create mode 100644 data/pics/coresmall/kcs_halfop.png create mode 100644 data/pics/coresmall/kcs_halfopaway.png create mode 100644 data/pics/coresmall/kcs_handler.png create mode 100644 data/pics/coresmall/kcs_handlerdisabled.png create mode 100644 data/pics/coresmall/kcs_heart.png create mode 100644 data/pics/coresmall/kcs_heartbroken.png create mode 100644 data/pics/coresmall/kcs_help.png create mode 100644 data/pics/coresmall/kcs_hidedoubleview.png create mode 100644 data/pics/coresmall/kcs_hidelistview.png create mode 100644 data/pics/coresmall/kcs_home.png create mode 100644 data/pics/coresmall/kcs_homepage.png create mode 100644 data/pics/coresmall/kcs_iconmanager.png create mode 100644 data/pics/coresmall/kcs_icq.png create mode 100644 data/pics/coresmall/kcs_icqblue.png create mode 100644 data/pics/coresmall/kcs_icqlightgreen.png create mode 100644 data/pics/coresmall/kcs_icqlightyellow.png create mode 100644 data/pics/coresmall/kcs_icqred.png create mode 100644 data/pics/coresmall/kcs_icqyellow.png create mode 100644 data/pics/coresmall/kcs_idea.png create mode 100644 data/pics/coresmall/kcs_ident.png create mode 100644 data/pics/coresmall/kcs_ignore.png create mode 100644 data/pics/coresmall/kcs_input.png create mode 100644 data/pics/coresmall/kcs_invisible.png create mode 100644 data/pics/coresmall/kcs_invite.png create mode 100644 data/pics/coresmall/kcs_inviteexcept.png create mode 100644 data/pics/coresmall/kcs_inviteunexcept.png create mode 100644 data/pics/coresmall/kcs_irc.png create mode 100644 data/pics/coresmall/kcs_irc0.png create mode 100644 data/pics/coresmall/kcs_irc1.png create mode 100644 data/pics/coresmall/kcs_irc2.png create mode 100644 data/pics/coresmall/kcs_irc3.png create mode 100644 data/pics/coresmall/kcs_irc4.png create mode 100644 data/pics/coresmall/kcs_irc5.png create mode 100644 data/pics/coresmall/kcs_ircview.png create mode 100644 data/pics/coresmall/kcs_join.png create mode 100644 data/pics/coresmall/kcs_key.png create mode 100644 data/pics/coresmall/kcs_kick.png create mode 100644 data/pics/coresmall/kcs_kiss.png create mode 100644 data/pics/coresmall/kcs_kvirc.png create mode 100644 data/pics/coresmall/kcs_limit.png create mode 100644 data/pics/coresmall/kcs_links.png create mode 100644 data/pics/coresmall/kcs_linux.png create mode 100644 data/pics/coresmall/kcs_list.png create mode 100644 data/pics/coresmall/kcs_locked.png create mode 100644 data/pics/coresmall/kcs_lockedoff.png create mode 100644 data/pics/coresmall/kcs_log.png create mode 100644 data/pics/coresmall/kcs_look.png create mode 100644 data/pics/coresmall/kcs_maxhorizontal.png create mode 100644 data/pics/coresmall/kcs_maximize.png create mode 100644 data/pics/coresmall/kcs_maxvertical.png create mode 100644 data/pics/coresmall/kcs_mdihelp.png create mode 100644 data/pics/coresmall/kcs_meban.png create mode 100644 data/pics/coresmall/kcs_mebanexcept.png create mode 100644 data/pics/coresmall/kcs_mebanunexcept.png create mode 100644 data/pics/coresmall/kcs_mechanadmin.png create mode 100644 data/pics/coresmall/kcs_mechanowner.png create mode 100644 data/pics/coresmall/kcs_mechanunadmin.png create mode 100644 data/pics/coresmall/kcs_mechanunowner.png create mode 100644 data/pics/coresmall/kcs_medehalfop.png create mode 100644 data/pics/coresmall/kcs_medeop.png create mode 100644 data/pics/coresmall/kcs_medeuserop.png create mode 100644 data/pics/coresmall/kcs_medevoice.png create mode 100644 data/pics/coresmall/kcs_mehalfop.png create mode 100644 data/pics/coresmall/kcs_meinviteexcept.png create mode 100644 data/pics/coresmall/kcs_meinviteunexcept.png create mode 100644 data/pics/coresmall/kcs_mekick.png create mode 100644 data/pics/coresmall/kcs_meop.png create mode 100644 data/pics/coresmall/kcs_message.png create mode 100644 data/pics/coresmall/kcs_messages.png create mode 100644 data/pics/coresmall/kcs_messagesent.png create mode 100644 data/pics/coresmall/kcs_meunban.png create mode 100644 data/pics/coresmall/kcs_meuserop.png create mode 100644 data/pics/coresmall/kcs_mevoice.png create mode 100644 data/pics/coresmall/kcs_minimize.png create mode 100644 data/pics/coresmall/kcs_minus.png create mode 100644 data/pics/coresmall/kcs_mode.png create mode 100644 data/pics/coresmall/kcs_motd.png create mode 100644 data/pics/coresmall/kcs_multimedia.png create mode 100644 data/pics/coresmall/kcs_namespace.png create mode 100644 data/pics/coresmall/kcs_newitem.png create mode 100644 data/pics/coresmall/kcs_newitembywizard.png create mode 100644 data/pics/coresmall/kcs_nick.png create mode 100644 data/pics/coresmall/kcs_nicknameproblem.png create mode 100644 data/pics/coresmall/kcs_nickserv.png create mode 100644 data/pics/coresmall/kcs_nochannel.png create mode 100644 data/pics/coresmall/kcs_none.png create mode 100644 data/pics/coresmall/kcs_notaway.png create mode 100644 data/pics/coresmall/kcs_notifyoffline.png create mode 100644 data/pics/coresmall/kcs_notifyonline.png create mode 100644 data/pics/coresmall/kcs_op.png create mode 100644 data/pics/coresmall/kcs_opaway.png create mode 100644 data/pics/coresmall/kcs_options.png create mode 100644 data/pics/coresmall/kcs_ownprivmsg.png create mode 100644 data/pics/coresmall/kcs_ownprivmsgcrypted.png create mode 100644 data/pics/coresmall/kcs_package.png create mode 100644 data/pics/coresmall/kcs_parsererror.png create mode 100644 data/pics/coresmall/kcs_parserwarning.png create mode 100644 data/pics/coresmall/kcs_part.png create mode 100644 data/pics/coresmall/kcs_paste.png create mode 100644 data/pics/coresmall/kcs_play.png create mode 100644 data/pics/coresmall/kcs_plus.png create mode 100644 data/pics/coresmall/kcs_popup.png create mode 100644 data/pics/coresmall/kcs_popupmenu.png create mode 100644 data/pics/coresmall/kcs_prologue.png create mode 100644 data/pics/coresmall/kcs_proxy.png create mode 100644 data/pics/coresmall/kcs_query.png create mode 100644 data/pics/coresmall/kcs_querynotice.png create mode 100644 data/pics/coresmall/kcs_querynoticecrypted.png create mode 100644 data/pics/coresmall/kcs_queryprivmsg.png create mode 100644 data/pics/coresmall/kcs_queryprivmsgcrypted.png create mode 100644 data/pics/coresmall/kcs_querytrace.png create mode 100644 data/pics/coresmall/kcs_quit.png create mode 100644 data/pics/coresmall/kcs_quitapp.png create mode 100644 data/pics/coresmall/kcs_quitsplit.png create mode 100644 data/pics/coresmall/kcs_raw.png create mode 100644 data/pics/coresmall/kcs_rawevent.png create mode 100644 data/pics/coresmall/kcs_raweventnohandlers.png create mode 100644 data/pics/coresmall/kcs_record.png create mode 100644 data/pics/coresmall/kcs_redsquare.png create mode 100644 data/pics/coresmall/kcs_refresh.png create mode 100644 data/pics/coresmall/kcs_regusers.png create mode 100644 data/pics/coresmall/kcs_restore.png create mode 100644 data/pics/coresmall/kcs_retry.png create mode 100644 data/pics/coresmall/kcs_rose.png create mode 100644 data/pics/coresmall/kcs_saycolors.png create mode 100644 data/pics/coresmall/kcs_sayicon.png create mode 100644 data/pics/coresmall/kcs_saykvs.png create mode 100644 data/pics/coresmall/kcs_saysmile.png create mode 100644 data/pics/coresmall/kcs_screenshot.png create mode 100644 data/pics/coresmall/kcs_scriptaction.png create mode 100644 data/pics/coresmall/kcs_scriptcenter.png create mode 100644 data/pics/coresmall/kcs_search.png create mode 100644 data/pics/coresmall/kcs_server.png create mode 100644 data/pics/coresmall/kcs_servererror.png create mode 100644 data/pics/coresmall/kcs_serverinfo.png create mode 100644 data/pics/coresmall/kcs_servernotice.png create mode 100644 data/pics/coresmall/kcs_serverping.png create mode 100644 data/pics/coresmall/kcs_servnotice.png create mode 100644 data/pics/coresmall/kcs_sharedfiles.png create mode 100644 data/pics/coresmall/kcs_showdoubleview.png create mode 100644 data/pics/coresmall/kcs_showlistview.png create mode 100644 data/pics/coresmall/kcs_shy.png create mode 100644 data/pics/coresmall/kcs_slurp.png create mode 100644 data/pics/coresmall/kcs_smile.png create mode 100644 data/pics/coresmall/kcs_socketerror.png create mode 100644 data/pics/coresmall/kcs_socketmessage.png create mode 100644 data/pics/coresmall/kcs_socketwarning.png create mode 100644 data/pics/coresmall/kcs_sound.png create mode 100644 data/pics/coresmall/kcs_spam.png create mode 100644 data/pics/coresmall/kcs_split.png create mode 100644 data/pics/coresmall/kcs_spy.png create mode 100644 data/pics/coresmall/kcs_ssl.png create mode 100644 data/pics/coresmall/kcs_stats.png create mode 100644 data/pics/coresmall/kcs_statusbar.png create mode 100644 data/pics/coresmall/kcs_surprised1.png create mode 100644 data/pics/coresmall/kcs_surprised2.png create mode 100644 data/pics/coresmall/kcs_systemerror.png create mode 100644 data/pics/coresmall/kcs_systemmessage.png create mode 100644 data/pics/coresmall/kcs_systemwarning.png create mode 100644 data/pics/coresmall/kcs_tearsmile.png create mode 100644 data/pics/coresmall/kcs_terminal.png create mode 100644 data/pics/coresmall/kcs_textencoding.png create mode 100644 data/pics/coresmall/kcs_textexclamative.png create mode 100644 data/pics/coresmall/kcs_textpoints.png create mode 100644 data/pics/coresmall/kcs_theme.png create mode 100644 data/pics/coresmall/kcs_themeoptions.png create mode 100644 data/pics/coresmall/kcs_tilewindows.png create mode 100644 data/pics/coresmall/kcs_time.png create mode 100644 data/pics/coresmall/kcs_tongue.png create mode 100644 data/pics/coresmall/kcs_tongue2.png create mode 100644 data/pics/coresmall/kcs_toolbar.png create mode 100644 data/pics/coresmall/kcs_topic.png create mode 100644 data/pics/coresmall/kcs_transfer.png create mode 100644 data/pics/coresmall/kcs_transparent.png create mode 100644 data/pics/coresmall/kcs_treetaskbar.png create mode 100644 data/pics/coresmall/kcs_ugly.png create mode 100644 data/pics/coresmall/kcs_unban.png create mode 100644 data/pics/coresmall/kcs_undock.png create mode 100644 data/pics/coresmall/kcs_unhandled.png create mode 100644 data/pics/coresmall/kcs_unlocked.png create mode 100644 data/pics/coresmall/kcs_unlockedoff.png create mode 100644 data/pics/coresmall/kcs_unrecognized.png create mode 100644 data/pics/coresmall/kcs_url.png create mode 100644 data/pics/coresmall/kcs_userlist.png create mode 100644 data/pics/coresmall/kcs_userop.png create mode 100644 data/pics/coresmall/kcs_useropaway.png create mode 100644 data/pics/coresmall/kcs_userwindow.png create mode 100644 data/pics/coresmall/kcs_violetsquare.png create mode 100644 data/pics/coresmall/kcs_voice.png create mode 100644 data/pics/coresmall/kcs_voiceaway.png create mode 100644 data/pics/coresmall/kcs_wallops.png create mode 100644 data/pics/coresmall/kcs_who.png create mode 100644 data/pics/coresmall/kcs_whoischannels.png create mode 100644 data/pics/coresmall/kcs_whoisidle.png create mode 100644 data/pics/coresmall/kcs_whoisother.png create mode 100644 data/pics/coresmall/kcs_whoisserver.png create mode 100644 data/pics/coresmall/kcs_whoisuser.png create mode 100644 data/pics/coresmall/kcs_world.png create mode 100644 data/pics/coresmall/kcs_xy.png create mode 100644 data/pics/coresmall/kcs_yellowsquare.png create mode 100644 data/pics/kvi_actiondrawer.png create mode 100644 data/pics/kvi_activitymeter.png create mode 100644 data/pics/kvi_bigicon_actioneditor.png create mode 100644 data/pics/kvi_bigicon_actions.png create mode 100644 data/pics/kvi_bigicon_addons.png create mode 100644 data/pics/kvi_bigicon_aliaseditor.png create mode 100644 data/pics/kvi_bigicon_cascadewindows.png create mode 100644 data/pics/kvi_bigicon_channellist.png create mode 100644 data/pics/kvi_bigicon_channels.png create mode 100644 data/pics/kvi_bigicon_channelspopup.png create mode 100644 data/pics/kvi_bigicon_codetester.png create mode 100644 data/pics/kvi_bigicon_connected.png create mode 100644 data/pics/kvi_bigicon_connecting.png create mode 100644 data/pics/kvi_bigicon_disconnected.png create mode 100644 data/pics/kvi_bigicon_eventeditor.png create mode 100644 data/pics/kvi_bigicon_folder.png create mode 100644 data/pics/kvi_bigicon_help.png create mode 100644 data/pics/kvi_bigicon_helpback.png create mode 100644 data/pics/kvi_bigicon_helpclose.png create mode 100644 data/pics/kvi_bigicon_helpforward.png create mode 100644 data/pics/kvi_bigicon_helpindex.png create mode 100644 data/pics/kvi_bigicon_helpsearch.png create mode 100644 data/pics/kvi_bigicon_identity.png create mode 100644 data/pics/kvi_bigicon_irccontextdisplay.png create mode 100644 data/pics/kvi_bigicon_keyboard.png create mode 100644 data/pics/kvi_bigicon_kvircwww.png create mode 100644 data/pics/kvi_bigicon_kvs.png create mode 100644 data/pics/kvi_bigicon_mailinglist.png create mode 100644 data/pics/kvi_bigicon_minimizeallwindows.png create mode 100644 data/pics/kvi_bigicon_networklinks.png create mode 100755 data/pics/kvi_bigicon_newirccontext.png create mode 100755 data/pics/kvi_bigicon_nickpopup.png create mode 100644 data/pics/kvi_bigicon_nokeyboard.png create mode 100644 data/pics/kvi_bigicon_open.png create mode 100644 data/pics/kvi_bigicon_pack.png create mode 100644 data/pics/kvi_bigicon_popupeditor.png create mode 100755 data/pics/kvi_bigicon_quit.png create mode 100644 data/pics/kvi_bigicon_raweditor.png create mode 100644 data/pics/kvi_bigicon_regusers.png create mode 100644 data/pics/kvi_bigicon_remove.png create mode 100644 data/pics/kvi_bigicon_save.png create mode 100644 data/pics/kvi_bigicon_screenshot.png create mode 100644 data/pics/kvi_bigicon_separator.png create mode 100644 data/pics/kvi_bigicon_server.png create mode 100644 data/pics/kvi_bigicon_servers.png create mode 100644 data/pics/kvi_bigicon_settings.png create mode 100755 data/pics/kvi_bigicon_socketspy.png create mode 100644 data/pics/kvi_bigicon_theme.png create mode 100644 data/pics/kvi_bigicon_themeoptions.png create mode 100644 data/pics/kvi_bigicon_tilewindows.png create mode 100644 data/pics/kvi_bigicon_toolbareditor.png create mode 100644 data/pics/kvi_bigicon_tools.png create mode 100644 data/pics/kvi_bigicon_trashcan.png create mode 100755 data/pics/kvi_bigicon_unknown.png create mode 100644 data/pics/kvi_bigicon_usermode.png create mode 100644 data/pics/kvi_bigicon_www.png create mode 100644 data/pics/kvi_checkbox_selected.png create mode 100644 data/pics/kvi_checkbox_unselected.png create mode 100755 data/pics/kvi_horizontal_left.png create mode 100755 data/pics/kvi_horizontal_right.png create mode 100644 data/pics/kvi_icon_bot.png create mode 100644 data/pics/kvi_icon_female.png create mode 100644 data/pics/kvi_icon_male.png create mode 100755 data/pics/kvi_icon_refresh.png create mode 100644 data/pics/kvi_setup_label.png create mode 100644 data/pics/kvi_setup_theme_hires.png create mode 100644 data/pics/kvi_setup_theme_lowres.png create mode 100644 data/pics/kvi_splash.png create mode 100644 data/pics/kvi_splash_overlay.png create mode 100755 data/pics/kvi_toolbutton_menuindicator.png create mode 100644 data/pics/kvi_userchanstate.png create mode 100644 data/protocols/Makefile.am create mode 100644 data/protocols/irc.protocol create mode 100644 data/protocols/irc6.protocol create mode 100644 data/resources/Makefile.am create mode 100644 data/resources/icon1.ico create mode 100644 data/resources/kvirc.rc create mode 100644 data/resources/resource.h create mode 100644 data/resources_mac/Info.plist.in create mode 100644 data/resources_mac/Makefile.am create mode 100644 data/resources_mac/kvirc.icns create mode 100644 doc/COPYING create mode 100644 doc/INSTALL-MacOS.txt create mode 100644 doc/Makefile.am create mode 100644 doc/firefox.hack.txt create mode 100644 doc/hackers.guide.txt create mode 100644 doc/scriptexamples/Makefile.am create mode 100644 doc/scriptexamples/README create mode 100644 doc/scriptexamples/antiidle/Makefile.am create mode 100644 doc/scriptexamples/antiidle/antiidle.kvs create mode 100644 doc/scriptexamples/class1.kvs create mode 100644 doc/scriptexamples/exprtest.kvs create mode 100644 doc/scriptexamples/label1.kvs create mode 100644 doc/scriptexamples/mail.kvs create mode 100644 doc/scriptexamples/minesweeper/Makefile.am create mode 100644 doc/scriptexamples/minesweeper/minesweeper.kvs create mode 100644 doc/scriptexamples/mp3_kdemediaplayers.kvs create mode 100644 doc/scriptexamples/mp3info.kvs create mode 100644 doc/scriptexamples/mp3share/Makefile.am create mode 100644 doc/scriptexamples/mp3share/mp3share.kvs create mode 100644 doc/scriptexamples/mp3share/mp3share_icon.png create mode 100644 doc/scriptexamples/newkvstest.kvs create mode 100644 doc/scriptexamples/playing/Makefile.am create mode 100644 doc/scriptexamples/playing/playing.kvs create mode 100644 doc/scriptexamples/playing/playing_icon.png create mode 100644 doc/scriptexamples/popup1.kvs create mode 100644 doc/scriptexamples/popup2.kvs create mode 100644 doc/scriptexamples/popup3.kvs create mode 100644 doc/scriptexamples/popup4.kvs create mode 100644 doc/scriptexamples/relay.kvs create mode 100644 doc/scriptexamples/runmenu/Makefile.am create mode 100644 doc/scriptexamples/runmenu/runmenu.kvs create mode 100644 doc/scriptexamples/signal1.kvs create mode 100644 doc/scriptexamples/simplehttp/Makefile.am create mode 100644 doc/scriptexamples/simplehttp/simplehttp.kvs create mode 100644 doc/scriptexamples/socket1.kvs create mode 100644 doc/scriptexamples/srfs.kvs create mode 100644 doc/scriptexamples/switchstress.kvs create mode 100644 doc/scriptexamples/timer1.kvs create mode 100644 doc/scriptexamples/tutorial/Makefile.am create mode 100644 doc/scriptexamples/tutorial/minesweeper1.kvs create mode 100644 doc/scriptexamples/tutorial/minesweeper2.kvs create mode 100644 doc/scriptexamples/tutorial/minesweeper3.kvs create mode 100644 doc/scriptexamples/tutorial/minesweeper4.kvs create mode 100644 doc/scriptexamples/tutorial/minesweeper5.kvs create mode 100644 doc/scriptexamples/tutorial/minesweeper6.kvs create mode 100644 doc/scriptexamples/tutorial/minesweeper7.kvs create mode 100644 doc/scriptexamples/widget1.kvs create mode 100644 doc/scriptexamples/widget2.kvs create mode 100644 doc/scripting.faq.txt create mode 100644 doc/themes.howto.txt create mode 100644 doc/translations.howto.txt create mode 100644 doc/ui-style.tips.txt create mode 100644 doc/win32.compiling.1.2.txt create mode 100644 po/Makefile.am create mode 100644 po/kvirc/Makefile.am create mode 100644 po/kvirc/kvirc_bg.po create mode 100644 po/kvirc/kvirc_ca.po create mode 100644 po/kvirc/kvirc_cs.po create mode 100644 po/kvirc/kvirc_de.po create mode 100644 po/kvirc/kvirc_es.po create mode 100644 po/kvirc/kvirc_fi.po create mode 100644 po/kvirc/kvirc_fr.po create mode 100644 po/kvirc/kvirc_hr.po create mode 100644 po/kvirc/kvirc_hu.po create mode 100644 po/kvirc/kvirc_it.po create mode 100644 po/kvirc/kvirc_nl.po create mode 100644 po/kvirc/kvirc_pl.po create mode 100644 po/kvirc/kvirc_pt.po create mode 100644 po/kvirc/kvirc_pt_BR.po create mode 100644 po/kvirc/kvirc_ru.po create mode 100644 po/kvirc/kvirc_sr.po create mode 100644 po/kvirc/kvirc_uk.po create mode 100644 po/modules/Makefile.am create mode 100644 po/modules/about/Makefile.am create mode 100644 po/modules/about/about_ca.po create mode 100644 po/modules/about/about_cs.po create mode 100644 po/modules/about/about_de.po create mode 100644 po/modules/about/about_es.po create mode 100644 po/modules/about/about_fi.po create mode 100644 po/modules/about/about_fr.po create mode 100644 po/modules/about/about_hr.po create mode 100644 po/modules/about/about_hu.po create mode 100644 po/modules/about/about_it.po create mode 100644 po/modules/about/about_pt.po create mode 100644 po/modules/about/about_pt_BR.po create mode 100644 po/modules/about/about_ru.po create mode 100644 po/modules/about/about_uk.po create mode 100644 po/modules/dcc/Makefile.am create mode 100644 po/modules/dcc/dcc_ca.po create mode 100644 po/modules/dcc/dcc_cs.po create mode 100644 po/modules/dcc/dcc_de.po create mode 100644 po/modules/dcc/dcc_es.po create mode 100644 po/modules/dcc/dcc_fi.po create mode 100644 po/modules/dcc/dcc_fr.po create mode 100644 po/modules/dcc/dcc_hu.po create mode 100644 po/modules/dcc/dcc_it.po create mode 100644 po/modules/dcc/dcc_pt.po create mode 100644 po/modules/dcc/dcc_pt_BR.po create mode 100644 po/modules/dcc/dcc_ru.po create mode 100644 po/modules/dcc/dcc_uk.po create mode 100644 po/modules/editor/Makefile.am create mode 100644 po/modules/editor/editor_ca.po create mode 100644 po/modules/editor/editor_cs.po create mode 100644 po/modules/editor/editor_de.po create mode 100644 po/modules/editor/editor_es.po create mode 100644 po/modules/editor/editor_fi.po create mode 100644 po/modules/editor/editor_fr.po create mode 100644 po/modules/editor/editor_hu.po create mode 100644 po/modules/editor/editor_it.po create mode 100644 po/modules/editor/editor_pt.po create mode 100644 po/modules/editor/editor_pt_BR.po create mode 100644 po/modules/editor/editor_ru.po create mode 100644 po/modules/editor/editor_uk.po create mode 100644 po/modules/filetransferwindow/Makefile.am create mode 100644 po/modules/filetransferwindow/filetransferwindow_ca.po create mode 100644 po/modules/filetransferwindow/filetransferwindow_cs.po create mode 100644 po/modules/filetransferwindow/filetransferwindow_de.po create mode 100644 po/modules/filetransferwindow/filetransferwindow_es.po create mode 100644 po/modules/filetransferwindow/filetransferwindow_fi.po create mode 100644 po/modules/filetransferwindow/filetransferwindow_fr.po create mode 100644 po/modules/filetransferwindow/filetransferwindow_hr.po create mode 100644 po/modules/filetransferwindow/filetransferwindow_hu.po create mode 100644 po/modules/filetransferwindow/filetransferwindow_it.po create mode 100644 po/modules/filetransferwindow/filetransferwindow_pt.po create mode 100644 po/modules/filetransferwindow/filetransferwindow_pt_BR.po create mode 100644 po/modules/filetransferwindow/filetransferwindow_ru.po create mode 100644 po/modules/filetransferwindow/filetransferwindow_uk.po create mode 100644 po/modules/logview/Makefile.am create mode 100644 po/modules/logview/logview_ca.po create mode 100644 po/modules/logview/logview_cs.po create mode 100644 po/modules/logview/logview_de.po create mode 100644 po/modules/logview/logview_es.po create mode 100644 po/modules/logview/logview_fi.po create mode 100644 po/modules/logview/logview_fr.po create mode 100644 po/modules/logview/logview_hu.po create mode 100644 po/modules/logview/logview_it.po create mode 100644 po/modules/logview/logview_pt.po create mode 100644 po/modules/logview/logview_pt_BR.po create mode 100644 po/modules/logview/logview_ru.po create mode 100644 po/modules/logview/logview_uk.po create mode 100644 po/modules/mediaplayer/Makefile.am create mode 100644 po/modules/mediaplayer/mediaplayer_cs.po create mode 100644 po/modules/mediaplayer/mediaplayer_de.po create mode 100644 po/modules/mediaplayer/mediaplayer_fi.po create mode 100644 po/modules/mediaplayer/mediaplayer_fr.po create mode 100644 po/modules/mediaplayer/mediaplayer_hr.po create mode 100644 po/modules/mediaplayer/mediaplayer_hu.po create mode 100644 po/modules/mediaplayer/mediaplayer_it.po create mode 100644 po/modules/mediaplayer/mediaplayer_ru.po create mode 100644 po/modules/mediaplayer/mediaplayer_uk.po create mode 100644 po/modules/notifier/Makefile.am create mode 100644 po/modules/notifier/notifier_ca.po create mode 100644 po/modules/notifier/notifier_cs.po create mode 100644 po/modules/notifier/notifier_de.po create mode 100644 po/modules/notifier/notifier_es.po create mode 100644 po/modules/notifier/notifier_fi.po create mode 100644 po/modules/notifier/notifier_fr.po create mode 100644 po/modules/notifier/notifier_hr.po create mode 100644 po/modules/notifier/notifier_hu.po create mode 100644 po/modules/notifier/notifier_it.po create mode 100644 po/modules/notifier/notifier_pt.po create mode 100644 po/modules/notifier/notifier_pt_BR.po create mode 100644 po/modules/notifier/notifier_ru.po create mode 100644 po/modules/notifier/notifier_uk.po create mode 100644 po/modules/options/Makefile.am create mode 100644 po/modules/options/options_bg.po create mode 100644 po/modules/options/options_ca.po create mode 100644 po/modules/options/options_cs.po create mode 100644 po/modules/options/options_de.po create mode 100644 po/modules/options/options_es.po create mode 100644 po/modules/options/options_fi.po create mode 100644 po/modules/options/options_fr.po create mode 100644 po/modules/options/options_hu.po create mode 100644 po/modules/options/options_it.po create mode 100644 po/modules/options/options_nl.po create mode 100644 po/modules/options/options_pl.po create mode 100644 po/modules/options/options_pt.po create mode 100644 po/modules/options/options_pt_BR.po create mode 100644 po/modules/options/options_ru.po create mode 100644 po/modules/options/options_sr.po create mode 100644 po/modules/options/options_uk.po create mode 100644 po/modules/perl/Makefile.am create mode 100644 po/modules/perl/perl_ca.po create mode 100644 po/modules/perl/perl_cs.po create mode 100644 po/modules/perl/perl_de.po create mode 100644 po/modules/perl/perl_es.po create mode 100644 po/modules/perl/perl_fi.po create mode 100644 po/modules/perl/perl_fr.po create mode 100644 po/modules/perl/perl_hu.po create mode 100644 po/modules/perl/perl_it.po create mode 100644 po/modules/perl/perl_pt.po create mode 100644 po/modules/perl/perl_pt_BR.po create mode 100644 po/modules/perl/perl_ru.po create mode 100644 po/modules/perl/perl_uk.po create mode 100644 po/modules/perlcore/Makefile.am create mode 100644 po/modules/perlcore/perlcore_ca.po create mode 100644 po/modules/perlcore/perlcore_cs.po create mode 100644 po/modules/perlcore/perlcore_de.po create mode 100644 po/modules/perlcore/perlcore_es.po create mode 100644 po/modules/perlcore/perlcore_fi.po create mode 100644 po/modules/perlcore/perlcore_fr.po create mode 100644 po/modules/perlcore/perlcore_hu.po create mode 100644 po/modules/perlcore/perlcore_it.po create mode 100644 po/modules/perlcore/perlcore_pt_BR.po create mode 100644 po/modules/perlcore/perlcore_ru.po create mode 100644 po/modules/perlcore/perlcore_uk.po create mode 100644 po/modules/sharedfileswindow/Makefile.am create mode 100644 po/modules/sharedfileswindow/sharedfileswindow_ca.po create mode 100644 po/modules/sharedfileswindow/sharedfileswindow_cs.po create mode 100644 po/modules/sharedfileswindow/sharedfileswindow_de.po create mode 100644 po/modules/sharedfileswindow/sharedfileswindow_es.po create mode 100644 po/modules/sharedfileswindow/sharedfileswindow_fi.po create mode 100644 po/modules/sharedfileswindow/sharedfileswindow_fr.po create mode 100644 po/modules/sharedfileswindow/sharedfileswindow_hr.po create mode 100644 po/modules/sharedfileswindow/sharedfileswindow_hu.po create mode 100644 po/modules/sharedfileswindow/sharedfileswindow_it.po create mode 100644 po/modules/sharedfileswindow/sharedfileswindow_pt.po create mode 100644 po/modules/sharedfileswindow/sharedfileswindow_pt_BR.po create mode 100644 po/modules/sharedfileswindow/sharedfileswindow_ru.po create mode 100644 po/modules/sharedfileswindow/sharedfileswindow_uk.po create mode 100644 po/modules/theme/Makefile.am create mode 100644 po/modules/theme/theme_cs.po create mode 100644 po/modules/theme/theme_de.po create mode 100644 po/modules/theme/theme_fi.po create mode 100644 po/modules/theme/theme_fr.po create mode 100644 po/modules/theme/theme_hu.po create mode 100644 po/modules/theme/theme_it.po create mode 100644 po/modules/theme/theme_pt.po create mode 100644 po/modules/theme/theme_ru.po create mode 100644 po/modules/theme/theme_uk.po create mode 100644 po/modules/torrent/Makefile.am create mode 100644 po/modules/torrent/torrent_cs.po create mode 100644 po/modules/torrent/torrent_de.po create mode 100644 po/modules/torrent/torrent_fi.po create mode 100644 po/modules/torrent/torrent_hr.po create mode 100644 po/modules/torrent/torrent_hu.po create mode 100644 po/modules/torrent/torrent_it.po create mode 100644 po/modules/torrent/torrent_pt.po create mode 100644 po/modules/torrent/torrent_ru.po create mode 100644 po/modules/torrent/torrent_uk.po create mode 100644 scripts/Makefile.am create mode 100644 scripts/browser/Makefile.am create mode 100755 scripts/browser/kvi_run_netscape create mode 100644 scripts/config/Makefile.am create mode 100644 scripts/config/kvirc-config.in create mode 100644 scripts/helpsearch/Makefile.am create mode 100755 scripts/helpsearch/kvi_search_help create mode 100644 src/Makefile.am create mode 100644 src/config.h.in create mode 100644 src/kvi_configstatus.h create mode 100644 src/kvilib/Makefile.am create mode 100644 src/kvilib/build/Makefile.am create mode 100644 src/kvilib/config/Makefile.am create mode 100644 src/kvilib/config/kvi_confignames.h create mode 100644 src/kvilib/config/kvi_debug.h create mode 100644 src/kvilib/config/kvi_defaults.h create mode 100644 src/kvilib/config/kvi_fileextensions.h create mode 100644 src/kvilib/config/kvi_settings.h create mode 100644 src/kvilib/config/kvi_sourcesdate.h create mode 100644 src/kvilib/config/kvi_version.h create mode 100644 src/kvilib/config/kvi_wincfg.h create mode 100644 src/kvilib/core/Makefile.am create mode 100644 src/kvilib/core/kvi_bswap.h create mode 100644 src/kvilib/core/kvi_error.cpp create mode 100644 src/kvilib/core/kvi_error.h create mode 100644 src/kvilib/core/kvi_heapobject.cpp create mode 100644 src/kvilib/core/kvi_heapobject.h create mode 100644 src/kvilib/core/kvi_inttypes.h create mode 100644 src/kvilib/core/kvi_malloc.cpp create mode 100644 src/kvilib/core/kvi_malloc.h create mode 100644 src/kvilib/core/kvi_memmove.cpp create mode 100644 src/kvilib/core/kvi_memmove.h create mode 100644 src/kvilib/core/kvi_pointerhashtable.h create mode 100644 src/kvilib/core/kvi_pointerlist.h create mode 100644 src/kvilib/core/kvi_qcstring.h create mode 100644 src/kvilib/core/kvi_qstring.cpp create mode 100644 src/kvilib/core/kvi_qstring.h create mode 100644 src/kvilib/core/kvi_strasm.h create mode 100644 src/kvilib/core/kvi_string.cpp create mode 100644 src/kvilib/core/kvi_string.h create mode 100644 src/kvilib/core/kvi_stringarray.cpp create mode 100644 src/kvilib/core/kvi_stringarray.h create mode 100644 src/kvilib/core/kvi_valuelist.h create mode 100644 src/kvilib/ext/Makefile.am create mode 100644 src/kvilib/ext/kvi_accel.h create mode 100644 src/kvilib/ext/kvi_cmdformatter.cpp create mode 100644 src/kvilib/ext/kvi_cmdformatter.h create mode 100644 src/kvilib/ext/kvi_config.cpp create mode 100644 src/kvilib/ext/kvi_config.h create mode 100644 src/kvilib/ext/kvi_crypt.cpp create mode 100644 src/kvilib/ext/kvi_crypt.h create mode 100644 src/kvilib/ext/kvi_databuffer.cpp create mode 100644 src/kvilib/ext/kvi_databuffer.h create mode 100644 src/kvilib/ext/kvi_dcophelper.cpp create mode 100644 src/kvilib/ext/kvi_dcophelper.h create mode 100644 src/kvilib/ext/kvi_doublebuffer.cpp create mode 100644 src/kvilib/ext/kvi_doublebuffer.h create mode 100644 src/kvilib/ext/kvi_draganddrop.h create mode 100644 src/kvilib/ext/kvi_garbage.cpp create mode 100644 src/kvilib/ext/kvi_garbage.h create mode 100644 src/kvilib/ext/kvi_imagelib.cpp create mode 100644 src/kvilib/ext/kvi_imagelib.h create mode 100644 src/kvilib/ext/kvi_md5.cpp create mode 100644 src/kvilib/ext/kvi_md5.h create mode 100644 src/kvilib/ext/kvi_mediatype.cpp create mode 100644 src/kvilib/ext/kvi_mediatype.h create mode 100644 src/kvilib/ext/kvi_miscutils.cpp create mode 100644 src/kvilib/ext/kvi_miscutils.h create mode 100644 src/kvilib/ext/kvi_msgtype.cpp create mode 100644 src/kvilib/ext/kvi_msgtype.h create mode 100644 src/kvilib/ext/kvi_osinfo.cpp create mode 100644 src/kvilib/ext/kvi_osinfo.h create mode 100644 src/kvilib/ext/kvi_parameterlist.cpp create mode 100644 src/kvilib/ext/kvi_parameterlist.h create mode 100644 src/kvilib/ext/kvi_pixmap.cpp create mode 100644 src/kvilib/ext/kvi_pixmap.h create mode 100644 src/kvilib/ext/kvi_proxydb.cpp create mode 100644 src/kvilib/ext/kvi_proxydb.h create mode 100644 src/kvilib/ext/kvi_regchan.cpp create mode 100644 src/kvilib/ext/kvi_regchan.h create mode 100644 src/kvilib/ext/kvi_regusersdb.cpp create mode 100644 src/kvilib/ext/kvi_regusersdb.h create mode 100644 src/kvilib/ext/kvi_sharedfiles.cpp create mode 100644 src/kvilib/ext/kvi_sharedfiles.h create mode 100644 src/kvilib/ext/kvi_stringconversion.cpp create mode 100644 src/kvilib/ext/kvi_stringconversion.h create mode 100644 src/kvilib/ext/kvi_xlib.h create mode 100644 src/kvilib/ext/moc_kvi_crypt.cpp create mode 100644 src/kvilib/ext/moc_kvi_garbage.cpp create mode 100644 src/kvilib/ext/moc_kvi_regusersdb.cpp create mode 100644 src/kvilib/ext/moc_kvi_sharedfiles.cpp create mode 100644 src/kvilib/file/Makefile.am create mode 100644 src/kvilib/file/kvi_file.cpp create mode 100644 src/kvilib/file/kvi_file.h create mode 100644 src/kvilib/file/kvi_fileutils.cpp create mode 100644 src/kvilib/file/kvi_fileutils.h create mode 100644 src/kvilib/file/kvi_packagefile.cpp create mode 100644 src/kvilib/file/kvi_packagefile.h create mode 100644 src/kvilib/include/Makefile.am create mode 100644 src/kvilib/irc/Makefile.am create mode 100644 src/kvilib/irc/kvi_avatar.cpp create mode 100644 src/kvilib/irc/kvi_avatar.h create mode 100644 src/kvilib/irc/kvi_avatarcache.cpp create mode 100644 src/kvilib/irc/kvi_avatarcache.h create mode 100644 src/kvilib/irc/kvi_ircmask.cpp create mode 100644 src/kvilib/irc/kvi_ircmask.h create mode 100644 src/kvilib/irc/kvi_ircserver.cpp create mode 100644 src/kvilib/irc/kvi_ircserver.h create mode 100644 src/kvilib/irc/kvi_ircserverdb.cpp create mode 100644 src/kvilib/irc/kvi_ircserverdb.h create mode 100644 src/kvilib/irc/kvi_ircuserdb.cpp create mode 100644 src/kvilib/irc/kvi_ircuserdb.h create mode 100644 src/kvilib/irc/kvi_mirccntrl.cpp create mode 100644 src/kvilib/irc/kvi_mirccntrl.h create mode 100644 src/kvilib/irc/kvi_nickserv.cpp create mode 100644 src/kvilib/irc/kvi_nickserv.h create mode 100644 src/kvilib/irc/kvi_useridentity.cpp create mode 100644 src/kvilib/irc/kvi_useridentity.h create mode 100644 src/kvilib/irc/moc_kvi_ircuserdb.cpp create mode 100644 src/kvilib/net/Makefile.am create mode 100644 src/kvilib/net/kvi_dns.cpp create mode 100644 src/kvilib/net/kvi_dns.h create mode 100644 src/kvilib/net/kvi_http.cpp create mode 100644 src/kvilib/net/kvi_http.h create mode 100644 src/kvilib/net/kvi_netutils.cpp create mode 100644 src/kvilib/net/kvi_netutils.h create mode 100644 src/kvilib/net/kvi_socket.cpp create mode 100644 src/kvilib/net/kvi_socket.h create mode 100644 src/kvilib/net/kvi_sockettype.h create mode 100644 src/kvilib/net/kvi_ssl.cpp create mode 100644 src/kvilib/net/kvi_ssl.h create mode 100644 src/kvilib/net/kvi_url.cpp create mode 100644 src/kvilib/net/kvi_url.h create mode 100644 src/kvilib/net/moc_kvi_dns.cpp create mode 100644 src/kvilib/net/moc_kvi_http.cpp create mode 100644 src/kvilib/system/Makefile.am create mode 100644 src/kvilib/system/kvi_byteorder.h create mode 100644 src/kvilib/system/kvi_env.cpp create mode 100644 src/kvilib/system/kvi_env.h create mode 100644 src/kvilib/system/kvi_library.h create mode 100644 src/kvilib/system/kvi_locale.cpp create mode 100644 src/kvilib/system/kvi_locale.h create mode 100644 src/kvilib/system/kvi_process.h create mode 100644 src/kvilib/system/kvi_stdarg.h create mode 100644 src/kvilib/system/kvi_thread.cpp create mode 100644 src/kvilib/system/kvi_thread.h create mode 100644 src/kvilib/system/kvi_time.cpp create mode 100644 src/kvilib/system/kvi_time.h create mode 100644 src/kvilib/system/moc_kvi_locale.cpp create mode 100644 src/kvilib/system/moc_kvi_thread.cpp create mode 100644 src/kvilib/tal/Makefile.am create mode 100644 src/kvilib/tal/kvi_tal_application.cpp create mode 100644 src/kvilib/tal/kvi_tal_application.h create mode 100644 src/kvilib/tal/kvi_tal_application_kde.h create mode 100644 src/kvilib/tal/kvi_tal_application_qt.h create mode 100644 src/kvilib/tal/kvi_tal_filedialog.cpp create mode 100644 src/kvilib/tal/kvi_tal_filedialog.h create mode 100644 src/kvilib/tal/kvi_tal_filedialog_kde.h create mode 100644 src/kvilib/tal/kvi_tal_filedialog_qt.h create mode 100644 src/kvilib/tal/kvi_tal_filedialog_qt4.h create mode 100644 src/kvilib/tal/kvi_tal_grid.cpp create mode 100644 src/kvilib/tal/kvi_tal_grid.h create mode 100644 src/kvilib/tal/kvi_tal_grid_qt3.h create mode 100644 src/kvilib/tal/kvi_tal_grid_qt4.h create mode 100644 src/kvilib/tal/kvi_tal_groupbox.cpp create mode 100644 src/kvilib/tal/kvi_tal_groupbox.h create mode 100644 src/kvilib/tal/kvi_tal_groupbox_qt3.h create mode 100644 src/kvilib/tal/kvi_tal_groupbox_qt4.h create mode 100644 src/kvilib/tal/kvi_tal_hbox.cpp create mode 100644 src/kvilib/tal/kvi_tal_hbox.h create mode 100644 src/kvilib/tal/kvi_tal_hbox_qt3.h create mode 100644 src/kvilib/tal/kvi_tal_hbox_qt4.h create mode 100644 src/kvilib/tal/kvi_tal_iconview.cpp create mode 100644 src/kvilib/tal/kvi_tal_iconview.h create mode 100644 src/kvilib/tal/kvi_tal_iconview_qt3.h create mode 100644 src/kvilib/tal/kvi_tal_iconview_qt4.h create mode 100644 src/kvilib/tal/kvi_tal_listbox.cpp create mode 100644 src/kvilib/tal/kvi_tal_listbox.h create mode 100644 src/kvilib/tal/kvi_tal_listbox_qt3.h create mode 100644 src/kvilib/tal/kvi_tal_listbox_qt4.h create mode 100644 src/kvilib/tal/kvi_tal_listview.cpp create mode 100644 src/kvilib/tal/kvi_tal_listview.h create mode 100644 src/kvilib/tal/kvi_tal_listview_qt3.h create mode 100644 src/kvilib/tal/kvi_tal_listview_qt4.h create mode 100644 src/kvilib/tal/kvi_tal_mainwindow.cpp create mode 100644 src/kvilib/tal/kvi_tal_mainwindow.h create mode 100644 src/kvilib/tal/kvi_tal_mainwindow_kde.h create mode 100644 src/kvilib/tal/kvi_tal_mainwindow_qt3.h create mode 100644 src/kvilib/tal/kvi_tal_mainwindow_qt4.h create mode 100644 src/kvilib/tal/kvi_tal_menubar.cpp create mode 100644 src/kvilib/tal/kvi_tal_menubar.h create mode 100644 src/kvilib/tal/kvi_tal_menubar_kde.h create mode 100644 src/kvilib/tal/kvi_tal_menubar_qt.h create mode 100644 src/kvilib/tal/kvi_tal_popupmenu.cpp create mode 100644 src/kvilib/tal/kvi_tal_popupmenu.h create mode 100644 src/kvilib/tal/kvi_tal_popupmenu_qt3.h create mode 100644 src/kvilib/tal/kvi_tal_popupmenu_qt4.h create mode 100644 src/kvilib/tal/kvi_tal_scrollview.cpp create mode 100644 src/kvilib/tal/kvi_tal_scrollview.h create mode 100644 src/kvilib/tal/kvi_tal_scrollview_qt3.h create mode 100644 src/kvilib/tal/kvi_tal_scrollview_qt4.h create mode 100644 src/kvilib/tal/kvi_tal_tabdialog.cpp create mode 100644 src/kvilib/tal/kvi_tal_tabdialog.h create mode 100644 src/kvilib/tal/kvi_tal_tabdialog_qt3.h create mode 100644 src/kvilib/tal/kvi_tal_tabdialog_qt4.h create mode 100644 src/kvilib/tal/kvi_tal_textedit.cpp create mode 100644 src/kvilib/tal/kvi_tal_textedit.h create mode 100644 src/kvilib/tal/kvi_tal_textedit_qt3.h create mode 100644 src/kvilib/tal/kvi_tal_textedit_qt4.h create mode 100644 src/kvilib/tal/kvi_tal_toolbar.cpp create mode 100644 src/kvilib/tal/kvi_tal_toolbar.h create mode 100644 src/kvilib/tal/kvi_tal_toolbar_kde.h create mode 100644 src/kvilib/tal/kvi_tal_toolbar_qt3.h create mode 100644 src/kvilib/tal/kvi_tal_toolbar_qt4.h create mode 100644 src/kvilib/tal/kvi_tal_toolbardocktype.h create mode 100644 src/kvilib/tal/kvi_tal_tooltip.cpp create mode 100644 src/kvilib/tal/kvi_tal_tooltip.h create mode 100644 src/kvilib/tal/kvi_tal_vbox.cpp create mode 100644 src/kvilib/tal/kvi_tal_vbox.h create mode 100644 src/kvilib/tal/kvi_tal_vbox_qt3.h create mode 100644 src/kvilib/tal/kvi_tal_vbox_qt4.h create mode 100644 src/kvilib/tal/kvi_tal_widgetstack.cpp create mode 100644 src/kvilib/tal/kvi_tal_widgetstack.h create mode 100644 src/kvilib/tal/kvi_tal_widgetstack_qt3.h create mode 100644 src/kvilib/tal/kvi_tal_widgetstack_qt4.h create mode 100644 src/kvilib/tal/kvi_tal_windowstate.h create mode 100644 src/kvilib/tal/kvi_tal_wizard.cpp create mode 100644 src/kvilib/tal/kvi_tal_wizard.h create mode 100644 src/kvilib/tal/moc_kvi_tal_wizard.cpp create mode 100644 src/kvirc/Makefile.am create mode 100644 src/kvirc/build/Makefile.am create mode 100644 src/kvirc/include/Makefile.am create mode 100644 src/kvirc/kernel/Makefile.am create mode 100644 src/kvirc/kernel/kvi_action.cpp create mode 100644 src/kvirc/kernel/kvi_action.h create mode 100644 src/kvirc/kernel/kvi_actionmanager.cpp create mode 100644 src/kvirc/kernel/kvi_actionmanager.h create mode 100644 src/kvirc/kernel/kvi_app.cpp create mode 100644 src/kvirc/kernel/kvi_app.h create mode 100644 src/kvirc/kernel/kvi_app_fs.cpp create mode 100644 src/kvirc/kernel/kvi_app_setup.cpp create mode 100644 src/kvirc/kernel/kvi_asynchronousconnectiondata.cpp create mode 100644 src/kvirc/kernel/kvi_asynchronousconnectiondata.h create mode 100644 src/kvirc/kernel/kvi_coreactionnames.h create mode 100644 src/kvirc/kernel/kvi_coreactions.cpp create mode 100644 src/kvirc/kernel/kvi_coreactions.h create mode 100644 src/kvirc/kernel/kvi_customtoolbardescriptor.cpp create mode 100644 src/kvirc/kernel/kvi_customtoolbardescriptor.h create mode 100644 src/kvirc/kernel/kvi_customtoolbarmanager.cpp create mode 100644 src/kvirc/kernel/kvi_customtoolbarmanager.h create mode 100644 src/kvirc/kernel/kvi_filetransfer.cpp create mode 100644 src/kvirc/kernel/kvi_filetransfer.h create mode 100644 src/kvirc/kernel/kvi_iconmanager.cpp create mode 100644 src/kvirc/kernel/kvi_iconmanager.h create mode 100644 src/kvirc/kernel/kvi_internalcmd.cpp create mode 100644 src/kvirc/kernel/kvi_internalcmd.h create mode 100644 src/kvirc/kernel/kvi_ipc.cpp create mode 100644 src/kvirc/kernel/kvi_ipc.h create mode 100644 src/kvirc/kernel/kvi_ircconnection.cpp create mode 100644 src/kvirc/kernel/kvi_ircconnection.h create mode 100644 src/kvirc/kernel/kvi_ircconnectionantictcpflooddata.cpp create mode 100644 src/kvirc/kernel/kvi_ircconnectionantictcpflooddata.h create mode 100644 src/kvirc/kernel/kvi_ircconnectionasyncwhoisdata.cpp create mode 100644 src/kvirc/kernel/kvi_ircconnectionasyncwhoisdata.h create mode 100644 src/kvirc/kernel/kvi_ircconnectionnetsplitdetectordata.cpp create mode 100644 src/kvirc/kernel/kvi_ircconnectionnetsplitdetectordata.h create mode 100644 src/kvirc/kernel/kvi_ircconnectionserverinfo.cpp create mode 100644 src/kvirc/kernel/kvi_ircconnectionserverinfo.h create mode 100644 src/kvirc/kernel/kvi_ircconnectionstatedata.cpp create mode 100644 src/kvirc/kernel/kvi_ircconnectionstatedata.h create mode 100644 src/kvirc/kernel/kvi_ircconnectionstatistics.cpp create mode 100644 src/kvirc/kernel/kvi_ircconnectionstatistics.h create mode 100644 src/kvirc/kernel/kvi_ircconnectiontarget.cpp create mode 100644 src/kvirc/kernel/kvi_ircconnectiontarget.h create mode 100644 src/kvirc/kernel/kvi_ircconnectiontargetresolver.cpp create mode 100644 src/kvirc/kernel/kvi_ircconnectiontargetresolver.h create mode 100644 src/kvirc/kernel/kvi_ircconnectionuserinfo.cpp create mode 100644 src/kvirc/kernel/kvi_ircconnectionuserinfo.h create mode 100644 src/kvirc/kernel/kvi_irccontext.cpp create mode 100644 src/kvirc/kernel/kvi_irccontext.h create mode 100644 src/kvirc/kernel/kvi_ircdatastreammonitor.cpp create mode 100644 src/kvirc/kernel/kvi_ircdatastreammonitor.h create mode 100644 src/kvirc/kernel/kvi_irclink.cpp create mode 100644 src/kvirc/kernel/kvi_irclink.h create mode 100644 src/kvirc/kernel/kvi_ircsocket.cpp create mode 100644 src/kvirc/kernel/kvi_ircsocket.h create mode 100644 src/kvirc/kernel/kvi_ircurl.cpp create mode 100644 src/kvirc/kernel/kvi_ircurl.h create mode 100644 src/kvirc/kernel/kvi_lagmeter.cpp create mode 100644 src/kvirc/kernel/kvi_lagmeter.h create mode 100644 src/kvirc/kernel/kvi_main.cpp create mode 100644 src/kvirc/kernel/kvi_notifylist.cpp create mode 100644 src/kvirc/kernel/kvi_notifylist.h create mode 100644 src/kvirc/kernel/kvi_options.cpp create mode 100644 src/kvirc/kernel/kvi_options.h create mode 100644 src/kvirc/kernel/kvi_out.h create mode 100644 src/kvirc/kernel/kvi_sslmaster.cpp create mode 100644 src/kvirc/kernel/kvi_sslmaster.h create mode 100644 src/kvirc/kernel/kvi_texticonmanager.cpp create mode 100644 src/kvirc/kernel/kvi_texticonmanager.h create mode 100644 src/kvirc/kernel/kvi_theme.cpp create mode 100644 src/kvirc/kernel/kvi_theme.h create mode 100644 src/kvirc/kernel/kvi_useraction.cpp create mode 100644 src/kvirc/kernel/kvi_useraction.h create mode 100644 src/kvirc/kernel/kvi_userinput.cpp create mode 100644 src/kvirc/kernel/kvi_userinput.h create mode 100644 src/kvirc/kernel/moc_kvi_action.cpp create mode 100644 src/kvirc/kernel/moc_kvi_actionmanager.cpp create mode 100644 src/kvirc/kernel/moc_kvi_coreactions.cpp create mode 100644 src/kvirc/kernel/moc_kvi_filetransfer.cpp create mode 100644 src/kvirc/kernel/moc_kvi_ircconnection.cpp create mode 100644 src/kvirc/kernel/moc_kvi_ircconnectiontargetresolver.cpp create mode 100644 src/kvirc/kernel/moc_kvi_irccontext.cpp create mode 100644 src/kvirc/kernel/moc_kvi_irclink.cpp create mode 100644 src/kvirc/kernel/moc_kvi_ircsocket.cpp create mode 100644 src/kvirc/kvs/Makefile.am create mode 100644 src/kvirc/kvs/kvi_kvs.cpp create mode 100644 src/kvirc/kvs/kvi_kvs.h create mode 100644 src/kvirc/kvs/kvi_kvs_action.cpp create mode 100644 src/kvirc/kvs/kvi_kvs_action.h create mode 100644 src/kvirc/kvs/kvi_kvs_aliasmanager.cpp create mode 100644 src/kvirc/kvs/kvi_kvs_aliasmanager.h create mode 100644 src/kvirc/kvs/kvi_kvs_array.cpp create mode 100644 src/kvirc/kvs/kvi_kvs_array.h create mode 100644 src/kvirc/kvs/kvi_kvs_arraycast.cpp create mode 100644 src/kvirc/kvs/kvi_kvs_arraycast.h create mode 100644 src/kvirc/kvs/kvi_kvs_asyncdnsoperation.cpp create mode 100644 src/kvirc/kvs/kvi_kvs_asyncdnsoperation.h create mode 100644 src/kvirc/kvs/kvi_kvs_asyncoperation.cpp create mode 100644 src/kvirc/kvs/kvi_kvs_asyncoperation.h create mode 100644 src/kvirc/kvs/kvi_kvs_callbackobject.cpp create mode 100644 src/kvirc/kvs/kvi_kvs_callbackobject.h create mode 100644 src/kvirc/kvs/kvi_kvs_corecallbackcommands.cpp create mode 100644 src/kvirc/kvs/kvi_kvs_corecallbackcommands.h create mode 100644 src/kvirc/kvs/kvi_kvs_corefunctions.cpp create mode 100644 src/kvirc/kvs/kvi_kvs_corefunctions.h create mode 100644 src/kvirc/kvs/kvi_kvs_corefunctions_af.cpp create mode 100644 src/kvirc/kvs/kvi_kvs_corefunctions_gl.cpp create mode 100644 src/kvirc/kvs/kvi_kvs_corefunctions_mr.cpp create mode 100644 src/kvirc/kvs/kvi_kvs_corefunctions_sz.cpp create mode 100644 src/kvirc/kvs/kvi_kvs_coresimplecommands.cpp create mode 100644 src/kvirc/kvs/kvi_kvs_coresimplecommands.h create mode 100644 src/kvirc/kvs/kvi_kvs_coresimplecommands_af.cpp create mode 100644 src/kvirc/kvs/kvi_kvs_coresimplecommands_gl.cpp create mode 100644 src/kvirc/kvs/kvi_kvs_coresimplecommands_mr.cpp create mode 100644 src/kvirc/kvs/kvi_kvs_coresimplecommands_sz.cpp create mode 100644 src/kvirc/kvs/kvi_kvs_dnsmanager.cpp create mode 100644 src/kvirc/kvs/kvi_kvs_dnsmanager.h create mode 100644 src/kvirc/kvs/kvi_kvs_event.cpp create mode 100644 src/kvirc/kvs/kvi_kvs_event.h create mode 100644 src/kvirc/kvs/kvi_kvs_eventhandler.cpp create mode 100644 src/kvirc/kvs/kvi_kvs_eventhandler.h create mode 100644 src/kvirc/kvs/kvi_kvs_eventmanager.cpp create mode 100644 src/kvirc/kvs/kvi_kvs_eventmanager.h create mode 100644 src/kvirc/kvs/kvi_kvs_eventtable.cpp create mode 100644 src/kvirc/kvs/kvi_kvs_eventtable.h create mode 100644 src/kvirc/kvs/kvi_kvs_eventtriggers.h create mode 100644 src/kvirc/kvs/kvi_kvs_hash.cpp create mode 100644 src/kvirc/kvs/kvi_kvs_hash.h create mode 100644 src/kvirc/kvs/kvi_kvs_kernel.cpp create mode 100644 src/kvirc/kvs/kvi_kvs_kernel.h create mode 100644 src/kvirc/kvs/kvi_kvs_moduleinterface.cpp create mode 100644 src/kvirc/kvs/kvi_kvs_moduleinterface.h create mode 100644 src/kvirc/kvs/kvi_kvs_object.cpp create mode 100644 src/kvirc/kvs/kvi_kvs_object.h create mode 100644 src/kvirc/kvs/kvi_kvs_object_class.cpp create mode 100644 src/kvirc/kvs/kvi_kvs_object_class.h create mode 100644 src/kvirc/kvs/kvi_kvs_object_controller.cpp create mode 100644 src/kvirc/kvs/kvi_kvs_object_controller.h create mode 100644 src/kvirc/kvs/kvi_kvs_object_functioncall.cpp create mode 100644 src/kvirc/kvs/kvi_kvs_object_functioncall.h create mode 100644 src/kvirc/kvs/kvi_kvs_object_functionhandler.cpp create mode 100644 src/kvirc/kvs/kvi_kvs_object_functionhandler.h create mode 100644 src/kvirc/kvs/kvi_kvs_object_functionhandlerimpl.cpp create mode 100644 src/kvirc/kvs/kvi_kvs_object_functionhandlerimpl.h create mode 100644 src/kvirc/kvs/kvi_kvs_parameterprocessor.cpp create mode 100644 src/kvirc/kvs/kvi_kvs_parameterprocessor.h create mode 100644 src/kvirc/kvs/kvi_kvs_parser.cpp create mode 100644 src/kvirc/kvs/kvi_kvs_parser.h create mode 100644 src/kvirc/kvs/kvi_kvs_parser_command.cpp create mode 100644 src/kvirc/kvs/kvi_kvs_parser_comment.cpp create mode 100644 src/kvirc/kvs/kvi_kvs_parser_dollar.cpp create mode 100644 src/kvirc/kvs/kvi_kvs_parser_expression.cpp create mode 100644 src/kvirc/kvs/kvi_kvs_parser_lside.cpp create mode 100644 src/kvirc/kvs/kvi_kvs_parser_macros.h create mode 100644 src/kvirc/kvs/kvi_kvs_parser_specialcommands.cpp create mode 100644 src/kvirc/kvs/kvi_kvs_popupmanager.cpp create mode 100644 src/kvirc/kvs/kvi_kvs_popupmanager.h create mode 100644 src/kvirc/kvs/kvi_kvs_popupmenu.cpp create mode 100644 src/kvirc/kvs/kvi_kvs_popupmenu.h create mode 100644 src/kvirc/kvs/kvi_kvs_processmanager.cpp create mode 100644 src/kvirc/kvs/kvi_kvs_processmanager.h create mode 100644 src/kvirc/kvs/kvi_kvs_report.cpp create mode 100644 src/kvirc/kvs/kvi_kvs_report.h create mode 100644 src/kvirc/kvs/kvi_kvs_runtimecall.cpp create mode 100644 src/kvirc/kvs/kvi_kvs_runtimecall.h create mode 100644 src/kvirc/kvs/kvi_kvs_runtimecontext.cpp create mode 100644 src/kvirc/kvs/kvi_kvs_runtimecontext.h create mode 100644 src/kvirc/kvs/kvi_kvs_rwevaluationresult.cpp create mode 100644 src/kvirc/kvs/kvi_kvs_rwevaluationresult.h create mode 100644 src/kvirc/kvs/kvi_kvs_script.cpp create mode 100644 src/kvirc/kvs/kvi_kvs_script.h create mode 100644 src/kvirc/kvs/kvi_kvs_scriptaddonmanager.cpp create mode 100644 src/kvirc/kvs/kvi_kvs_scriptaddonmanager.h create mode 100644 src/kvirc/kvs/kvi_kvs_switchlist.cpp create mode 100644 src/kvirc/kvs/kvi_kvs_switchlist.h create mode 100644 src/kvirc/kvs/kvi_kvs_timermanager.cpp create mode 100644 src/kvirc/kvs/kvi_kvs_timermanager.h create mode 100644 src/kvirc/kvs/kvi_kvs_treenode.h create mode 100644 src/kvirc/kvs/kvi_kvs_treenode_aliasfunctioncall.cpp create mode 100644 src/kvirc/kvs/kvi_kvs_treenode_aliasfunctioncall.h create mode 100644 src/kvirc/kvs/kvi_kvs_treenode_aliassimplecommand.cpp create mode 100644 src/kvirc/kvs/kvi_kvs_treenode_aliassimplecommand.h create mode 100644 src/kvirc/kvs/kvi_kvs_treenode_arraycount.cpp create mode 100644 src/kvirc/kvs/kvi_kvs_treenode_arraycount.h create mode 100644 src/kvirc/kvs/kvi_kvs_treenode_arrayelement.cpp create mode 100644 src/kvirc/kvs/kvi_kvs_treenode_arrayelement.h create mode 100644 src/kvirc/kvs/kvi_kvs_treenode_arrayorhashelement.cpp create mode 100644 src/kvirc/kvs/kvi_kvs_treenode_arrayorhashelement.h create mode 100644 src/kvirc/kvs/kvi_kvs_treenode_arrayreferenceassert.cpp create mode 100644 src/kvirc/kvs/kvi_kvs_treenode_arrayreferenceassert.h create mode 100644 src/kvirc/kvs/kvi_kvs_treenode_base.cpp create mode 100644 src/kvirc/kvs/kvi_kvs_treenode_base.h create mode 100644 src/kvirc/kvs/kvi_kvs_treenode_baseobjectfunctioncall.cpp create mode 100644 src/kvirc/kvs/kvi_kvs_treenode_baseobjectfunctioncall.h create mode 100644 src/kvirc/kvs/kvi_kvs_treenode_callbackcommand.cpp create mode 100644 src/kvirc/kvs/kvi_kvs_treenode_callbackcommand.h create mode 100644 src/kvirc/kvs/kvi_kvs_treenode_command.cpp create mode 100644 src/kvirc/kvs/kvi_kvs_treenode_command.h create mode 100644 src/kvirc/kvs/kvi_kvs_treenode_commandevaluation.cpp create mode 100644 src/kvirc/kvs/kvi_kvs_treenode_commandevaluation.h create mode 100644 src/kvirc/kvs/kvi_kvs_treenode_commandwithparameters.cpp create mode 100644 src/kvirc/kvs/kvi_kvs_treenode_commandwithparameters.h create mode 100644 src/kvirc/kvs/kvi_kvs_treenode_compositedata.cpp create mode 100644 src/kvirc/kvs/kvi_kvs_treenode_compositedata.h create mode 100644 src/kvirc/kvs/kvi_kvs_treenode_constantdata.cpp create mode 100644 src/kvirc/kvs/kvi_kvs_treenode_constantdata.h create mode 100644 src/kvirc/kvs/kvi_kvs_treenode_corecallbackcommand.cpp create mode 100644 src/kvirc/kvs/kvi_kvs_treenode_corecallbackcommand.h create mode 100644 src/kvirc/kvs/kvi_kvs_treenode_corefunctioncall.cpp create mode 100644 src/kvirc/kvs/kvi_kvs_treenode_corefunctioncall.h create mode 100644 src/kvirc/kvs/kvi_kvs_treenode_coresimplecommand.cpp create mode 100644 src/kvirc/kvs/kvi_kvs_treenode_coresimplecommand.h create mode 100644 src/kvirc/kvs/kvi_kvs_treenode_data.cpp create mode 100644 src/kvirc/kvs/kvi_kvs_treenode_data.h create mode 100644 src/kvirc/kvs/kvi_kvs_treenode_datalist.cpp create mode 100644 src/kvirc/kvs/kvi_kvs_treenode_datalist.h create mode 100644 src/kvirc/kvs/kvi_kvs_treenode_expression.cpp create mode 100644 src/kvirc/kvs/kvi_kvs_treenode_expression.h create mode 100644 src/kvirc/kvs/kvi_kvs_treenode_expressionreturn.cpp create mode 100644 src/kvirc/kvs/kvi_kvs_treenode_expressionreturn.h create mode 100644 src/kvirc/kvs/kvi_kvs_treenode_extendedscopevariable.cpp create mode 100644 src/kvirc/kvs/kvi_kvs_treenode_extendedscopevariable.h create mode 100644 src/kvirc/kvs/kvi_kvs_treenode_functioncall.cpp create mode 100644 src/kvirc/kvs/kvi_kvs_treenode_functioncall.h create mode 100644 src/kvirc/kvs/kvi_kvs_treenode_globalvariable.cpp create mode 100644 src/kvirc/kvs/kvi_kvs_treenode_globalvariable.h create mode 100644 src/kvirc/kvs/kvi_kvs_treenode_hashcount.cpp create mode 100644 src/kvirc/kvs/kvi_kvs_treenode_hashcount.h create mode 100644 src/kvirc/kvs/kvi_kvs_treenode_hashelement.cpp create mode 100644 src/kvirc/kvs/kvi_kvs_treenode_hashelement.h create mode 100644 src/kvirc/kvs/kvi_kvs_treenode_hashreferenceassert.cpp create mode 100644 src/kvirc/kvs/kvi_kvs_treenode_hashreferenceassert.h create mode 100644 src/kvirc/kvs/kvi_kvs_treenode_indirectdata.cpp create mode 100644 src/kvirc/kvs/kvi_kvs_treenode_indirectdata.h create mode 100644 src/kvirc/kvs/kvi_kvs_treenode_instruction.cpp create mode 100644 src/kvirc/kvs/kvi_kvs_treenode_instruction.h create mode 100644 src/kvirc/kvs/kvi_kvs_treenode_instructionblock.cpp create mode 100644 src/kvirc/kvs/kvi_kvs_treenode_instructionblock.h create mode 100644 src/kvirc/kvs/kvi_kvs_treenode_localvariable.cpp create mode 100644 src/kvirc/kvs/kvi_kvs_treenode_localvariable.h create mode 100644 src/kvirc/kvs/kvi_kvs_treenode_modulecallbackcommand.cpp create mode 100644 src/kvirc/kvs/kvi_kvs_treenode_modulecallbackcommand.h create mode 100644 src/kvirc/kvs/kvi_kvs_treenode_modulefunctioncall.cpp create mode 100644 src/kvirc/kvs/kvi_kvs_treenode_modulefunctioncall.h create mode 100644 src/kvirc/kvs/kvi_kvs_treenode_modulesimplecommand.cpp create mode 100644 src/kvirc/kvs/kvi_kvs_treenode_modulesimplecommand.h create mode 100644 src/kvirc/kvs/kvi_kvs_treenode_multipleparameteridentifier.cpp create mode 100644 src/kvirc/kvs/kvi_kvs_treenode_multipleparameteridentifier.h create mode 100644 src/kvirc/kvs/kvi_kvs_treenode_objectfield.cpp create mode 100644 src/kvirc/kvs/kvi_kvs_treenode_objectfield.h create mode 100644 src/kvirc/kvs/kvi_kvs_treenode_objectfunctioncall.cpp create mode 100644 src/kvirc/kvs/kvi_kvs_treenode_objectfunctioncall.h create mode 100644 src/kvirc/kvs/kvi_kvs_treenode_operation.cpp create mode 100644 src/kvirc/kvs/kvi_kvs_treenode_operation.h create mode 100644 src/kvirc/kvs/kvi_kvs_treenode_parameterreturn.cpp create mode 100644 src/kvirc/kvs/kvi_kvs_treenode_parameterreturn.h create mode 100644 src/kvirc/kvs/kvi_kvs_treenode_rebindingswitch.cpp create mode 100644 src/kvirc/kvs/kvi_kvs_treenode_rebindingswitch.h create mode 100644 src/kvirc/kvs/kvi_kvs_treenode_scopeoperator.cpp create mode 100644 src/kvirc/kvs/kvi_kvs_treenode_scopeoperator.h create mode 100644 src/kvirc/kvs/kvi_kvs_treenode_simplecommand.cpp create mode 100644 src/kvirc/kvs/kvi_kvs_treenode_simplecommand.h create mode 100644 src/kvirc/kvs/kvi_kvs_treenode_singleparameteridentifier.cpp create mode 100644 src/kvirc/kvs/kvi_kvs_treenode_singleparameteridentifier.h create mode 100644 src/kvirc/kvs/kvi_kvs_treenode_specialcommand.cpp create mode 100644 src/kvirc/kvs/kvi_kvs_treenode_specialcommand.h create mode 100644 src/kvirc/kvs/kvi_kvs_treenode_specialcommandbreak.cpp create mode 100644 src/kvirc/kvs/kvi_kvs_treenode_specialcommandbreak.h create mode 100644 src/kvirc/kvs/kvi_kvs_treenode_specialcommandclass.cpp create mode 100644 src/kvirc/kvs/kvi_kvs_treenode_specialcommandclass.h create mode 100644 src/kvirc/kvs/kvi_kvs_treenode_specialcommanddefpopup.cpp create mode 100644 src/kvirc/kvs/kvi_kvs_treenode_specialcommanddefpopup.h create mode 100644 src/kvirc/kvs/kvi_kvs_treenode_specialcommanddo.cpp create mode 100644 src/kvirc/kvs/kvi_kvs_treenode_specialcommanddo.h create mode 100644 src/kvirc/kvs/kvi_kvs_treenode_specialcommandfor.cpp create mode 100644 src/kvirc/kvs/kvi_kvs_treenode_specialcommandfor.h create mode 100644 src/kvirc/kvs/kvi_kvs_treenode_specialcommandforeach.cpp create mode 100644 src/kvirc/kvs/kvi_kvs_treenode_specialcommandforeach.h create mode 100644 src/kvirc/kvs/kvi_kvs_treenode_specialcommandif.cpp create mode 100644 src/kvirc/kvs/kvi_kvs_treenode_specialcommandif.h create mode 100644 src/kvirc/kvs/kvi_kvs_treenode_specialcommandswitch.cpp create mode 100644 src/kvirc/kvs/kvi_kvs_treenode_specialcommandswitch.h create mode 100644 src/kvirc/kvs/kvi_kvs_treenode_specialcommandunset.cpp create mode 100644 src/kvirc/kvs/kvi_kvs_treenode_specialcommandunset.h create mode 100644 src/kvirc/kvs/kvi_kvs_treenode_specialcommandwhile.cpp create mode 100644 src/kvirc/kvs/kvi_kvs_treenode_specialcommandwhile.h create mode 100644 src/kvirc/kvs/kvi_kvs_treenode_stringcast.cpp create mode 100644 src/kvirc/kvs/kvi_kvs_treenode_stringcast.h create mode 100644 src/kvirc/kvs/kvi_kvs_treenode_switchlist.cpp create mode 100644 src/kvirc/kvs/kvi_kvs_treenode_switchlist.h create mode 100644 src/kvirc/kvs/kvi_kvs_treenode_thisobjectfunctioncall.cpp create mode 100644 src/kvirc/kvs/kvi_kvs_treenode_thisobjectfunctioncall.h create mode 100644 src/kvirc/kvs/kvi_kvs_treenode_variable.cpp create mode 100644 src/kvirc/kvs/kvi_kvs_treenode_variable.h create mode 100644 src/kvirc/kvs/kvi_kvs_treenode_voidfunctioncall.cpp create mode 100644 src/kvirc/kvs/kvi_kvs_treenode_voidfunctioncall.h create mode 100644 src/kvirc/kvs/kvi_kvs_types.h create mode 100644 src/kvirc/kvs/kvi_kvs_useraction.cpp create mode 100644 src/kvirc/kvs/kvi_kvs_useraction.h create mode 100644 src/kvirc/kvs/kvi_kvs_variant.cpp create mode 100644 src/kvirc/kvs/kvi_kvs_variant.h create mode 100644 src/kvirc/kvs/kvi_kvs_variantlist.cpp create mode 100644 src/kvirc/kvs/kvi_kvs_variantlist.h create mode 100644 src/kvirc/kvs/moc_kvi_kvs_action.cpp create mode 100644 src/kvirc/kvs/moc_kvi_kvs_asyncdnsoperation.cpp create mode 100644 src/kvirc/kvs/moc_kvi_kvs_asyncoperation.cpp create mode 100644 src/kvirc/kvs/moc_kvi_kvs_dnsmanager.cpp create mode 100644 src/kvirc/kvs/moc_kvi_kvs_object.cpp create mode 100644 src/kvirc/kvs/moc_kvi_kvs_popupmenu.cpp create mode 100644 src/kvirc/kvs/moc_kvi_kvs_processmanager.cpp create mode 100644 src/kvirc/kvs/moc_kvi_kvs_timermanager.cpp create mode 100644 src/kvirc/kvs/moc_kvi_kvs_useraction.cpp create mode 100644 src/kvirc/module/Makefile.am create mode 100644 src/kvirc/module/kvi_mexlinkfilter.cpp create mode 100644 src/kvirc/module/kvi_mexlinkfilter.h create mode 100644 src/kvirc/module/kvi_mexserverimport.cpp create mode 100644 src/kvirc/module/kvi_mexserverimport.h create mode 100644 src/kvirc/module/kvi_mextoolbar.cpp create mode 100644 src/kvirc/module/kvi_mextoolbar.h create mode 100644 src/kvirc/module/kvi_module.cpp create mode 100644 src/kvirc/module/kvi_module.h create mode 100644 src/kvirc/module/kvi_moduleextension.cpp create mode 100644 src/kvirc/module/kvi_moduleextension.h create mode 100644 src/kvirc/module/kvi_modulemanager.cpp create mode 100644 src/kvirc/module/kvi_modulemanager.h create mode 100644 src/kvirc/module/moc_kvi_mexlinkfilter.cpp create mode 100644 src/kvirc/module/moc_kvi_mexserverimport.cpp create mode 100644 src/kvirc/module/moc_kvi_mextoolbar.cpp create mode 100644 src/kvirc/module/moc_kvi_modulemanager.cpp create mode 100644 src/kvirc/sparser/Makefile.am create mode 100644 src/kvirc/sparser/kvi_antispam.cpp create mode 100644 src/kvirc/sparser/kvi_antispam.h create mode 100644 src/kvirc/sparser/kvi_ircmessage.cpp create mode 100644 src/kvirc/sparser/kvi_ircmessage.h create mode 100644 src/kvirc/sparser/kvi_numeric.h create mode 100644 src/kvirc/sparser/kvi_sp_ctcp.cpp create mode 100644 src/kvirc/sparser/kvi_sp_literal.cpp create mode 100644 src/kvirc/sparser/kvi_sp_numeric.cpp create mode 100644 src/kvirc/sparser/kvi_sp_tables.cpp create mode 100644 src/kvirc/sparser/kvi_sparser.cpp create mode 100644 src/kvirc/sparser/kvi_sparser.h create mode 100644 src/kvirc/ui/Makefile.am create mode 100644 src/kvirc/ui/kvi_actiondrawer.cpp create mode 100644 src/kvirc/ui/kvi_actiondrawer.h create mode 100644 src/kvirc/ui/kvi_channel.cpp create mode 100644 src/kvirc/ui/kvi_channel.h create mode 100644 src/kvirc/ui/kvi_colorwin.cpp create mode 100644 src/kvirc/ui/kvi_colorwin.h create mode 100644 src/kvirc/ui/kvi_console.cpp create mode 100644 src/kvirc/ui/kvi_console.h create mode 100644 src/kvirc/ui/kvi_cryptcontroller.cpp create mode 100644 src/kvirc/ui/kvi_cryptcontroller.h create mode 100644 src/kvirc/ui/kvi_ctcppagedialog.cpp create mode 100644 src/kvirc/ui/kvi_ctcppagedialog.h create mode 100644 src/kvirc/ui/kvi_customtoolbar.cpp create mode 100644 src/kvirc/ui/kvi_customtoolbar.h create mode 100644 src/kvirc/ui/kvi_debugwindow.cpp create mode 100644 src/kvirc/ui/kvi_debugwindow.h create mode 100644 src/kvirc/ui/kvi_dynamictooltip.cpp create mode 100644 src/kvirc/ui/kvi_dynamictooltip.h create mode 100644 src/kvirc/ui/kvi_filedialog.cpp create mode 100644 src/kvirc/ui/kvi_filedialog.h create mode 100644 src/kvirc/ui/kvi_frame.cpp create mode 100644 src/kvirc/ui/kvi_frame.h create mode 100644 src/kvirc/ui/kvi_historywin.cpp create mode 100644 src/kvirc/ui/kvi_historywin.h create mode 100644 src/kvirc/ui/kvi_htmldialog.cpp create mode 100644 src/kvirc/ui/kvi_htmldialog.h create mode 100644 src/kvirc/ui/kvi_imagedialog.cpp create mode 100644 src/kvirc/ui/kvi_imagedialog.h create mode 100644 src/kvirc/ui/kvi_input.cpp create mode 100644 src/kvirc/ui/kvi_input.h create mode 100644 src/kvirc/ui/kvi_ipeditor.cpp create mode 100644 src/kvirc/ui/kvi_ipeditor.h create mode 100644 src/kvirc/ui/kvi_irctoolbar.cpp create mode 100644 src/kvirc/ui/kvi_irctoolbar.h create mode 100644 src/kvirc/ui/kvi_ircview.cpp create mode 100644 src/kvirc/ui/kvi_ircview.h create mode 100644 src/kvirc/ui/kvi_ircviewprivate.h create mode 100644 src/kvirc/ui/kvi_ircviewtools.cpp create mode 100644 src/kvirc/ui/kvi_ircviewtools.h create mode 100644 src/kvirc/ui/kvi_listview.cpp create mode 100644 src/kvirc/ui/kvi_listview.h create mode 100644 src/kvirc/ui/kvi_maskeditor.cpp create mode 100644 src/kvirc/ui/kvi_maskeditor.h create mode 100644 src/kvirc/ui/kvi_mdicaption.cpp create mode 100644 src/kvirc/ui/kvi_mdicaption.h create mode 100644 src/kvirc/ui/kvi_mdichild.cpp create mode 100644 src/kvirc/ui/kvi_mdichild.h create mode 100644 src/kvirc/ui/kvi_mdimanager.cpp create mode 100644 src/kvirc/ui/kvi_mdimanager.h create mode 100644 src/kvirc/ui/kvi_menubar.cpp create mode 100644 src/kvirc/ui/kvi_menubar.h create mode 100644 src/kvirc/ui/kvi_modeeditor.cpp create mode 100644 src/kvirc/ui/kvi_modeeditor.h create mode 100755 src/kvirc/ui/kvi_modew.cpp create mode 100755 src/kvirc/ui/kvi_modew.h create mode 100644 src/kvirc/ui/kvi_msgbox.cpp create mode 100644 src/kvirc/ui/kvi_msgbox.h create mode 100644 src/kvirc/ui/kvi_optionswidget.cpp create mode 100644 src/kvirc/ui/kvi_optionswidget.h create mode 100644 src/kvirc/ui/kvi_query.cpp create mode 100644 src/kvirc/ui/kvi_query.h create mode 100644 src/kvirc/ui/kvi_scriptbutton.cpp create mode 100644 src/kvirc/ui/kvi_scriptbutton.h create mode 100644 src/kvirc/ui/kvi_scripteditor.cpp create mode 100644 src/kvirc/ui/kvi_scripteditor.h create mode 100644 src/kvirc/ui/kvi_selectors.cpp create mode 100644 src/kvirc/ui/kvi_selectors.h create mode 100644 src/kvirc/ui/kvi_splash.cpp create mode 100644 src/kvirc/ui/kvi_splash.h create mode 100644 src/kvirc/ui/kvi_statusbar.cpp create mode 100644 src/kvirc/ui/kvi_statusbar.h create mode 100644 src/kvirc/ui/kvi_statusbarapplet.cpp create mode 100644 src/kvirc/ui/kvi_statusbarapplet.h create mode 100644 src/kvirc/ui/kvi_styled_controls.cpp create mode 100644 src/kvirc/ui/kvi_styled_controls.h create mode 100644 src/kvirc/ui/kvi_taskbar.cpp create mode 100644 src/kvirc/ui/kvi_taskbar.h create mode 100644 src/kvirc/ui/kvi_texticonwin.cpp create mode 100644 src/kvirc/ui/kvi_texticonwin.h create mode 100644 src/kvirc/ui/kvi_themedlabel.cpp create mode 100644 src/kvirc/ui/kvi_themedlabel.h create mode 100644 src/kvirc/ui/kvi_toolbar.cpp create mode 100644 src/kvirc/ui/kvi_toolbar.h create mode 100644 src/kvirc/ui/kvi_toolwindows_container.cpp create mode 100644 src/kvirc/ui/kvi_toolwindows_container.h create mode 100644 src/kvirc/ui/kvi_topicw.cpp create mode 100644 src/kvirc/ui/kvi_topicw.h create mode 100644 src/kvirc/ui/kvi_userlistview.cpp create mode 100644 src/kvirc/ui/kvi_userlistview.h create mode 100644 src/kvirc/ui/kvi_window.cpp create mode 100644 src/kvirc/ui/kvi_window.h create mode 100644 src/kvirc/ui/moc_kvi_actiondrawer.cpp create mode 100644 src/kvirc/ui/moc_kvi_customtoolbar.cpp create mode 100644 src/kvirc/ui/moc_kvi_debugwindow.cpp create mode 100644 src/kvirc/ui/moc_kvi_htmldialog.cpp create mode 100644 src/kvirc/ui/moc_kvi_imagedialog.cpp create mode 100644 src/kvirc/ui/moc_kvi_ircviewtools.cpp create mode 100644 src/kvirc/ui/moc_kvi_listview.cpp create mode 100644 src/kvirc/ui/moc_kvi_mdicaption.cpp create mode 100644 src/kvirc/ui/moc_kvi_mdichild.cpp create mode 100644 src/kvirc/ui/moc_kvi_mdimanager.cpp create mode 100644 src/kvirc/ui/moc_kvi_statusbar.cpp create mode 100644 src/kvirc/ui/moc_kvi_statusbarapplet.cpp create mode 100644 src/kvirc/ui/moc_kvi_toolwindows_container.cpp create mode 100644 src/modules/Makefile.am create mode 100644 src/modules/about/ENTRIES create mode 100644 src/modules/about/Makefile.am create mode 100644 src/modules/about/aboutdialog.cpp create mode 100644 src/modules/about/aboutdialog.h create mode 100644 src/modules/about/abouttext.inc create mode 100644 src/modules/about/libkviabout.cpp create mode 100644 src/modules/about/mkabouttext.pl create mode 100644 src/modules/action/Makefile.am create mode 100644 src/modules/action/libkviaction.cpp create mode 100644 src/modules/actioneditor/Makefile.am create mode 100644 src/modules/actioneditor/actioneditor.cpp create mode 100644 src/modules/actioneditor/actioneditor.h create mode 100644 src/modules/actioneditor/libkviactioneditor.cpp create mode 100644 src/modules/addon/Makefile.am create mode 100644 src/modules/addon/libkviaddon.cpp create mode 100644 src/modules/addon/managementdialog.cpp create mode 100644 src/modules/addon/managementdialog.h create mode 100644 src/modules/addon/pics/Makefile.am create mode 100644 src/modules/addon/pics/kvi_dialog_addons.png create mode 100644 src/modules/aliaseditor/Makefile.am create mode 100644 src/modules/aliaseditor/aliaseditor.cpp create mode 100644 src/modules/aliaseditor/aliaseditor.h create mode 100644 src/modules/aliaseditor/libkvialiaseditor.cpp create mode 100644 src/modules/avatar/Makefile.am create mode 100644 src/modules/avatar/libkviavatar.cpp create mode 100644 src/modules/avatar/libkviavatar.h create mode 100644 src/modules/chan/Makefile.am create mode 100644 src/modules/chan/libkvichan.cpp create mode 100644 src/modules/channelsjoin/Makefile.am create mode 100644 src/modules/channelsjoin/channelsjoinwindow.cpp create mode 100644 src/modules/channelsjoin/channelsjoinwindow.h create mode 100644 src/modules/channelsjoin/libkvichannelsjoin.cpp create mode 100644 src/modules/clock/Makefile.am create mode 100644 src/modules/clock/libkviclock.cpp create mode 100644 src/modules/clock/libkviclock.h create mode 100644 src/modules/codetester/Makefile.am create mode 100644 src/modules/codetester/codetester.cpp create mode 100644 src/modules/codetester/codetester.h create mode 100644 src/modules/codetester/libkvicodetester.cpp create mode 100644 src/modules/config/Makefile.am create mode 100644 src/modules/config/libkviconfig.cpp create mode 100644 src/modules/context/Makefile.am create mode 100644 src/modules/context/libkvicontext.cpp create mode 100644 src/modules/dcc/Makefile.am create mode 100644 src/modules/dcc/adpcmcodec.cpp create mode 100644 src/modules/dcc/adpcmcodec.h create mode 100644 src/modules/dcc/broker.cpp create mode 100644 src/modules/dcc/broker.h create mode 100644 src/modules/dcc/canvas.cpp create mode 100644 src/modules/dcc/canvas.h create mode 100644 src/modules/dcc/canvaswidget.cpp create mode 100644 src/modules/dcc/canvaswidget.h create mode 100644 src/modules/dcc/chat.cpp create mode 100644 src/modules/dcc/chat.h create mode 100644 src/modules/dcc/codec.cpp create mode 100644 src/modules/dcc/codec.h create mode 100644 src/modules/dcc/descriptor.cpp create mode 100644 src/modules/dcc/descriptor.h create mode 100644 src/modules/dcc/dialogs.cpp create mode 100644 src/modules/dcc/dialogs.h create mode 100644 src/modules/dcc/gsmcodec.cpp create mode 100644 src/modules/dcc/gsmcodec.h create mode 100644 src/modules/dcc/kvi_dccfiletransfericons.png create mode 100644 src/modules/dcc/libkvidcc.cpp create mode 100644 src/modules/dcc/marshal.cpp create mode 100644 src/modules/dcc/marshal.h create mode 100644 src/modules/dcc/requests.cpp create mode 100644 src/modules/dcc/send.cpp create mode 100644 src/modules/dcc/send.h create mode 100644 src/modules/dcc/thread.cpp create mode 100644 src/modules/dcc/thread.h create mode 100644 src/modules/dcc/utils.cpp create mode 100644 src/modules/dcc/utils.h create mode 100644 src/modules/dcc/voice.cpp create mode 100644 src/modules/dcc/voice.h create mode 100644 src/modules/dcc/window.cpp create mode 100644 src/modules/dcc/window.h create mode 100644 src/modules/dialog/Makefile.am create mode 100644 src/modules/dialog/libkvidialog.cpp create mode 100644 src/modules/dialog/libkvidialog.h create mode 100644 src/modules/dockwidget/Makefile.am create mode 100644 src/modules/dockwidget/kvi_dock.png create mode 100644 src/modules/dockwidget/kvi_dock_part-0.png create mode 100644 src/modules/dockwidget/kvi_dock_part-1.png create mode 100644 src/modules/dockwidget/kvi_dock_part-2.png create mode 100644 src/modules/dockwidget/libkvidockwidget.h create mode 100644 src/modules/dockwidget/libkvidockwidget_qt3.cpp create mode 100644 src/modules/dockwidget/libkvidockwidget_qt3.h create mode 100644 src/modules/dockwidget/libkvidockwidget_qt4.cpp create mode 100644 src/modules/dockwidget/libkvidockwidget_qt4.h create mode 100644 src/modules/editor/Makefile.am create mode 100644 src/modules/editor/libkvieditor.cpp create mode 100644 src/modules/editor/scripteditor.cpp create mode 100644 src/modules/editor/scripteditor.h create mode 100644 src/modules/eventeditor/Makefile.am create mode 100644 src/modules/eventeditor/eventeditor.cpp create mode 100644 src/modules/eventeditor/eventeditor.h create mode 100644 src/modules/eventeditor/libkvieventeditor.cpp create mode 100644 src/modules/file/Makefile.am create mode 100644 src/modules/file/libkvifile.cpp create mode 100644 src/modules/filetransferwindow/Makefile.am create mode 100644 src/modules/filetransferwindow/caps/Makefile.am create mode 100644 src/modules/filetransferwindow/caps/filetransferwindow create mode 100644 src/modules/filetransferwindow/filetransferwindow.cpp create mode 100644 src/modules/filetransferwindow/filetransferwindow.h create mode 100644 src/modules/filetransferwindow/libkvifiletransferwindow.cpp create mode 100644 src/modules/help/Makefile.am create mode 100644 src/modules/help/helpwidget.cpp create mode 100644 src/modules/help/helpwidget.h create mode 100644 src/modules/help/helpwindow.cpp create mode 100644 src/modules/help/helpwindow.h create mode 100755 src/modules/help/index.cpp create mode 100755 src/modules/help/index.h create mode 100644 src/modules/help/libkvihelp.cpp create mode 100644 src/modules/http/Makefile.am create mode 100644 src/modules/http/httpfiletransfer.cpp create mode 100644 src/modules/http/httpfiletransfer.h create mode 100644 src/modules/http/kvi_httpicons.png create mode 100644 src/modules/http/libkvihttp.cpp create mode 100644 src/modules/ident/Makefile.am create mode 100644 src/modules/ident/libkviident.cpp create mode 100644 src/modules/ident/libkviident.h create mode 100644 src/modules/iograph/Makefile.am create mode 100644 src/modules/iograph/libkviiograph.cpp create mode 100644 src/modules/iograph/libkviiograph.h create mode 100644 src/modules/lamerizer/Makefile.am create mode 100644 src/modules/lamerizer/lamerizer create mode 100644 src/modules/lamerizer/libkvilamerizer.cpp create mode 100644 src/modules/lamerizer/libkvilamerizer.h create mode 100644 src/modules/links/Makefile.am create mode 100644 src/modules/links/libkvilinks.cpp create mode 100644 src/modules/links/linkswindow.cpp create mode 100644 src/modules/links/linkswindow.h create mode 100644 src/modules/list/Makefile.am create mode 100644 src/modules/list/libkvilist.cpp create mode 100644 src/modules/list/listwindow.cpp create mode 100644 src/modules/list/listwindow.h create mode 100644 src/modules/log/Makefile.am create mode 100644 src/modules/log/libkvilog.cpp create mode 100644 src/modules/logview/Makefile.am create mode 100644 src/modules/logview/caps/Makefile.am create mode 100644 src/modules/logview/caps/logview create mode 100644 src/modules/logview/libkvilogview.cpp create mode 100644 src/modules/logview/logviewmdiwindow.cpp create mode 100644 src/modules/logview/logviewmdiwindow.h create mode 100644 src/modules/logview/logviewwidget.cpp create mode 100644 src/modules/logview/logviewwidget.h create mode 100644 src/modules/mask/Makefile.am create mode 100644 src/modules/mask/libkvimask.cpp create mode 100644 src/modules/math/Makefile.am create mode 100644 src/modules/math/libkvimath.cpp create mode 100644 src/modules/mediaplayer/Makefile.am create mode 100644 src/modules/mediaplayer/libkvimediaplayer.cpp create mode 100644 src/modules/mediaplayer/mp_amarokinterface.cpp create mode 100644 src/modules/mediaplayer/mp_amarokinterface.h create mode 100644 src/modules/mediaplayer/mp_amipinterface.cpp create mode 100644 src/modules/mediaplayer/mp_amipinterface.h create mode 100644 src/modules/mediaplayer/mp_dcopinterface.cpp create mode 100644 src/modules/mediaplayer/mp_dcopinterface.h create mode 100644 src/modules/mediaplayer/mp_interface.cpp create mode 100644 src/modules/mediaplayer/mp_interface.h create mode 100644 src/modules/mediaplayer/mp_jukinterface.cpp create mode 100644 src/modules/mediaplayer/mp_jukinterface.h create mode 100644 src/modules/mediaplayer/mp_mp3.cpp create mode 100644 src/modules/mediaplayer/mp_mp3.h create mode 100644 src/modules/mediaplayer/mp_winampinterface.cpp create mode 100644 src/modules/mediaplayer/mp_winampinterface.h create mode 100644 src/modules/mediaplayer/mp_xmmsinterface.cpp create mode 100644 src/modules/mediaplayer/mp_xmmsinterface.h create mode 100644 src/modules/mircimport/Makefile.am create mode 100644 src/modules/mircimport/caps/Makefile.am create mode 100644 src/modules/mircimport/caps/mircimport create mode 100644 src/modules/mircimport/libkvimircimport.cpp create mode 100644 src/modules/mircimport/libkvimircimport.h create mode 100644 src/modules/mircimport/pics/Makefile.am create mode 100644 src/modules/mircimport/pics/kvi_mircimport.png create mode 100644 src/modules/my/Makefile.am create mode 100644 src/modules/my/idle.cpp create mode 100644 src/modules/my/idle.h create mode 100644 src/modules/my/idle_mac.cpp create mode 100644 src/modules/my/idle_x11.cpp create mode 100644 src/modules/my/libkvimy.cpp create mode 100644 src/modules/notifier/Makefile.am create mode 100644 src/modules/notifier/libkvinotifier.cpp create mode 100644 src/modules/notifier/libkvinotifier.kvc create mode 100644 src/modules/notifier/notifiermessage.cpp create mode 100644 src/modules/notifier/notifiermessage.h create mode 100644 src/modules/notifier/notifiersettings.h create mode 100644 src/modules/notifier/notifierwindow.cpp create mode 100644 src/modules/notifier/notifierwindow.h create mode 100644 src/modules/notifier/notifierwindowbody.cpp create mode 100644 src/modules/notifier/notifierwindowbody.h create mode 100644 src/modules/notifier/notifierwindowborder.cpp create mode 100644 src/modules/notifier/notifierwindowborder.h create mode 100644 src/modules/notifier/notifierwindowprogressbar.cpp create mode 100644 src/modules/notifier/notifierwindowprogressbar.h create mode 100644 src/modules/notifier/notifierwindowtabs.cpp create mode 100644 src/modules/notifier/notifierwindowtabs.h create mode 100755 src/modules/notifier/pics/Makefile.am create mode 100755 src/modules/notifier/pics/notifier_background.png create mode 100644 src/modules/notifier/pics/notifier_close.png create mode 100644 src/modules/notifier/pics/notifier_down.png create mode 100644 src/modules/notifier/pics/notifier_icon_body_next_clicked.png create mode 100644 src/modules/notifier/pics/notifier_icon_body_next_off.png create mode 100644 src/modules/notifier/pics/notifier_icon_body_next_on.png create mode 100644 src/modules/notifier/pics/notifier_icon_body_prev_clicked.png create mode 100644 src/modules/notifier/pics/notifier_icon_body_prev_off.png create mode 100644 src/modules/notifier/pics/notifier_icon_body_prev_on.png create mode 100644 src/modules/notifier/pics/notifier_icon_body_write_clicked.png create mode 100644 src/modules/notifier/pics/notifier_icon_body_write_off.png create mode 100644 src/modules/notifier/pics/notifier_icon_body_write_on.png create mode 100644 src/modules/notifier/pics/notifier_icon_close_clicked.png create mode 100644 src/modules/notifier/pics/notifier_icon_close_clicked_hl.png create mode 100644 src/modules/notifier/pics/notifier_icon_close_out.png create mode 100644 src/modules/notifier/pics/notifier_icon_close_out_hl.png create mode 100644 src/modules/notifier/pics/notifier_icon_close_over.png create mode 100644 src/modules/notifier/pics/notifier_icon_close_over_hl.png create mode 100644 src/modules/notifier/pics/notifier_icon_tab_close_clicked.png create mode 100644 src/modules/notifier/pics/notifier_icon_tab_close_off.png create mode 100644 src/modules/notifier/pics/notifier_icon_tab_close_on.png create mode 100644 src/modules/notifier/pics/notifier_icon_tab_next_clicked.png create mode 100644 src/modules/notifier/pics/notifier_icon_tab_next_out.png create mode 100644 src/modules/notifier/pics/notifier_icon_tab_next_over.png create mode 100644 src/modules/notifier/pics/notifier_icon_tab_prev_clicked.png create mode 100644 src/modules/notifier/pics/notifier_icon_tab_prev_out.png create mode 100644 src/modules/notifier/pics/notifier_icon_tab_prev_over.png create mode 100644 src/modules/notifier/pics/notifier_left.png create mode 100644 src/modules/notifier/pics/notifier_pen.png create mode 100644 src/modules/notifier/pics/notifier_pix_body_dwn.png create mode 100644 src/modules/notifier/pics/notifier_pix_body_dwndx.png create mode 100644 src/modules/notifier/pics/notifier_pix_body_dwnsx.png create mode 100644 src/modules/notifier/pics/notifier_pix_body_dx.png create mode 100644 src/modules/notifier/pics/notifier_pix_body_kvirc.png create mode 100644 src/modules/notifier/pics/notifier_pix_body_kvirc_dwn.png create mode 100644 src/modules/notifier/pics/notifier_pix_body_kvirc_sx.png create mode 100644 src/modules/notifier/pics/notifier_pix_body_sx.png create mode 100644 src/modules/notifier/pics/notifier_pix_caption_bkg.png create mode 100644 src/modules/notifier/pics/notifier_pix_caption_bkg_hl.png create mode 100644 src/modules/notifier/pics/notifier_pix_caption_dx.png create mode 100644 src/modules/notifier/pics/notifier_pix_caption_dx_hl.png create mode 100644 src/modules/notifier/pics/notifier_pix_caption_sx.png create mode 100644 src/modules/notifier/pics/notifier_pix_caption_sx_hl.png create mode 100644 src/modules/notifier/pics/notifier_pix_tab_bkg.png create mode 100644 src/modules/notifier/pics/notifier_pix_tab_dx.png create mode 100644 src/modules/notifier/pics/notifier_pix_tab_focused_bkg.png create mode 100644 src/modules/notifier/pics/notifier_pix_tab_focused_dx.png create mode 100644 src/modules/notifier/pics/notifier_pix_tab_focused_sx.png create mode 100644 src/modules/notifier/pics/notifier_pix_tab_sx.png create mode 100644 src/modules/notifier/pics/notifier_pix_tab_unfocused_bkg.png create mode 100644 src/modules/notifier/pics/notifier_pix_tab_unfocused_dx.png create mode 100644 src/modules/notifier/pics/notifier_pix_tab_unfocused_sx.png create mode 100644 src/modules/notifier/pics/notifier_pix_wnd_dwn.png create mode 100644 src/modules/notifier/pics/notifier_pix_wnd_dwn_hl.png create mode 100644 src/modules/notifier/pics/notifier_pix_wnd_dwndx.png create mode 100644 src/modules/notifier/pics/notifier_pix_wnd_dwndx_hl.png create mode 100644 src/modules/notifier/pics/notifier_pix_wnd_dwnsx.png create mode 100644 src/modules/notifier/pics/notifier_pix_wnd_dwnsx_hl.png create mode 100644 src/modules/notifier/pics/notifier_pix_wnd_dx.png create mode 100644 src/modules/notifier/pics/notifier_pix_wnd_dx_hl.png create mode 100644 src/modules/notifier/pics/notifier_pix_wnd_sx.png create mode 100644 src/modules/notifier/pics/notifier_pix_wnd_sx_hl.png create mode 100644 src/modules/notifier/pics/notifier_right.png create mode 100644 src/modules/notifier/pics/notifier_up.png create mode 100644 src/modules/objects/Makefile.am create mode 100644 src/modules/objects/class_button.cpp create mode 100644 src/modules/objects/class_button.h create mode 100644 src/modules/objects/class_buttongroup.cpp create mode 100644 src/modules/objects/class_buttongroup.h create mode 100644 src/modules/objects/class_checkbox.cpp create mode 100644 src/modules/objects/class_checkbox.h create mode 100644 src/modules/objects/class_combobox.cpp create mode 100644 src/modules/objects/class_combobox.h create mode 100644 src/modules/objects/class_dialog.cpp create mode 100644 src/modules/objects/class_dialog.h create mode 100644 src/modules/objects/class_dockwindow.cpp create mode 100644 src/modules/objects/class_dockwindow.h create mode 100644 src/modules/objects/class_file.cpp create mode 100644 src/modules/objects/class_file.h create mode 100644 src/modules/objects/class_groupbox.cpp create mode 100644 src/modules/objects/class_groupbox.h create mode 100644 src/modules/objects/class_hbox.cpp create mode 100644 src/modules/objects/class_hbox.h create mode 100644 src/modules/objects/class_label.cpp create mode 100644 src/modules/objects/class_label.h create mode 100644 src/modules/objects/class_layout.cpp create mode 100644 src/modules/objects/class_layout.h create mode 100644 src/modules/objects/class_lcd.cpp create mode 100644 src/modules/objects/class_lcd.h create mode 100644 src/modules/objects/class_lineedit.cpp create mode 100644 src/modules/objects/class_lineedit.h create mode 100644 src/modules/objects/class_list.cpp create mode 100644 src/modules/objects/class_list.h create mode 100644 src/modules/objects/class_listbox.cpp create mode 100644 src/modules/objects/class_listbox.h create mode 100644 src/modules/objects/class_listview.cpp create mode 100644 src/modules/objects/class_listview.h create mode 100644 src/modules/objects/class_listviewitem.cpp create mode 100644 src/modules/objects/class_listviewitem.h create mode 100644 src/modules/objects/class_mainwindow.cpp create mode 100644 src/modules/objects/class_mainwindow.h create mode 100644 src/modules/objects/class_menubar.cpp create mode 100644 src/modules/objects/class_menubar.h create mode 100644 src/modules/objects/class_multilineedit.cpp create mode 100644 src/modules/objects/class_multilineedit.h create mode 100644 src/modules/objects/class_painter.cpp create mode 100644 src/modules/objects/class_painter.h create mode 100644 src/modules/objects/class_pixmap.cpp create mode 100644 src/modules/objects/class_pixmap.h create mode 100644 src/modules/objects/class_popupmenu.cpp create mode 100644 src/modules/objects/class_popupmenu.h create mode 100644 src/modules/objects/class_process.cpp create mode 100644 src/modules/objects/class_process.h create mode 100644 src/modules/objects/class_progressbar.cpp create mode 100644 src/modules/objects/class_progressbar.h create mode 100644 src/modules/objects/class_radiobutton.cpp create mode 100644 src/modules/objects/class_radiobutton.h create mode 100644 src/modules/objects/class_slider.cpp create mode 100644 src/modules/objects/class_slider.h create mode 100644 src/modules/objects/class_socket.cpp create mode 100644 src/modules/objects/class_socket.h create mode 100644 src/modules/objects/class_spinbox.cpp create mode 100644 src/modules/objects/class_spinbox.h create mode 100644 src/modules/objects/class_tabwidget.cpp create mode 100644 src/modules/objects/class_tabwidget.h create mode 100644 src/modules/objects/class_tbrowser.cpp create mode 100644 src/modules/objects/class_tbrowser.h create mode 100644 src/modules/objects/class_toolbar.cpp create mode 100644 src/modules/objects/class_toolbar.h create mode 100644 src/modules/objects/class_toolbutton.cpp create mode 100644 src/modules/objects/class_toolbutton.h create mode 100644 src/modules/objects/class_urllabel.cpp create mode 100644 src/modules/objects/class_urllabel.h create mode 100644 src/modules/objects/class_vbox.cpp create mode 100644 src/modules/objects/class_vbox.h create mode 100644 src/modules/objects/class_widget.cpp create mode 100644 src/modules/objects/class_widget.h create mode 100644 src/modules/objects/class_window.cpp create mode 100644 src/modules/objects/class_window.h create mode 100644 src/modules/objects/class_wizard.cpp create mode 100644 src/modules/objects/class_wizard.h create mode 100644 src/modules/objects/class_workspace.cpp create mode 100644 src/modules/objects/class_workspace.h create mode 100644 src/modules/objects/class_wrapper.cpp create mode 100644 src/modules/objects/class_wrapper.h create mode 100644 src/modules/objects/class_xmlreader.cpp create mode 100644 src/modules/objects/class_xmlreader.h create mode 100644 src/modules/objects/libkviobjects.cpp create mode 100644 src/modules/objects/object_macros.h create mode 100644 src/modules/options/Makefile.am create mode 100644 src/modules/options/container.cpp create mode 100644 src/modules/options/container.h create mode 100644 src/modules/options/dialog.cpp create mode 100644 src/modules/options/dialog.h create mode 100644 src/modules/options/instances.cpp create mode 100644 src/modules/options/instances.h create mode 100644 src/modules/options/libkvioptions.cpp create mode 100755 src/modules/options/mkcreateinstanceproc.sh create mode 100644 src/modules/options/optw_antispam.cpp create mode 100644 src/modules/options/optw_antispam.h create mode 100644 src/modules/options/optw_avatar.cpp create mode 100644 src/modules/options/optw_avatar.h create mode 100644 src/modules/options/optw_away.cpp create mode 100644 src/modules/options/optw_away.h create mode 100644 src/modules/options/optw_connection.cpp create mode 100644 src/modules/options/optw_connection.h create mode 100644 src/modules/options/optw_ctcp.cpp create mode 100644 src/modules/options/optw_ctcp.h create mode 100644 src/modules/options/optw_ctcpfloodprotection.cpp create mode 100644 src/modules/options/optw_ctcpfloodprotection.h create mode 100644 src/modules/options/optw_dcc.cpp create mode 100644 src/modules/options/optw_dcc.h create mode 100644 src/modules/options/optw_generalopt.cpp create mode 100644 src/modules/options/optw_generalopt.h create mode 100644 src/modules/options/optw_highlighting.cpp create mode 100644 src/modules/options/optw_highlighting.h create mode 100644 src/modules/options/optw_ident.cpp create mode 100644 src/modules/options/optw_ident.h create mode 100644 src/modules/options/optw_identity.cpp create mode 100644 src/modules/options/optw_identity.h create mode 100644 src/modules/options/optw_ignore.cpp create mode 100644 src/modules/options/optw_ignore.h create mode 100644 src/modules/options/optw_input.cpp create mode 100644 src/modules/options/optw_input.h create mode 100644 src/modules/options/optw_interfacefeatures.cpp create mode 100644 src/modules/options/optw_interfacefeatures.h create mode 100644 src/modules/options/optw_interfacelookglobal.cpp create mode 100644 src/modules/options/optw_interfacelookglobal.h create mode 100644 src/modules/options/optw_irc.cpp create mode 100644 src/modules/options/optw_irc.h create mode 100644 src/modules/options/optw_ircoutput.cpp create mode 100644 src/modules/options/optw_ircoutput.h create mode 100644 src/modules/options/optw_ircview.cpp create mode 100644 src/modules/options/optw_ircview.h create mode 100644 src/modules/options/optw_lag.cpp create mode 100644 src/modules/options/optw_lag.h create mode 100644 src/modules/options/optw_logging.cpp create mode 100644 src/modules/options/optw_logging.h create mode 100644 src/modules/options/optw_mediatypes.cpp create mode 100644 src/modules/options/optw_mediatypes.h create mode 100644 src/modules/options/optw_messages.cpp create mode 100644 src/modules/options/optw_messages.h create mode 100644 src/modules/options/optw_nickserv.cpp create mode 100644 src/modules/options/optw_nickserv.h create mode 100644 src/modules/options/optw_notify.cpp create mode 100644 src/modules/options/optw_notify.h create mode 100644 src/modules/options/optw_protection.cpp create mode 100644 src/modules/options/optw_protection.h create mode 100644 src/modules/options/optw_proxy.cpp create mode 100644 src/modules/options/optw_proxy.h create mode 100644 src/modules/options/optw_query.cpp create mode 100644 src/modules/options/optw_query.h create mode 100644 src/modules/options/optw_servers.cpp create mode 100644 src/modules/options/optw_servers.h create mode 100644 src/modules/options/optw_sound.cpp create mode 100644 src/modules/options/optw_sound.h create mode 100644 src/modules/options/optw_ssl.cpp create mode 100644 src/modules/options/optw_ssl.h create mode 100644 src/modules/options/optw_taskbar.cpp create mode 100644 src/modules/options/optw_taskbar.h create mode 100644 src/modules/options/optw_textencoding.cpp create mode 100644 src/modules/options/optw_textencoding.h create mode 100644 src/modules/options/optw_texticons.cpp create mode 100644 src/modules/options/optw_texticons.h create mode 100644 src/modules/options/optw_theme.cpp create mode 100644 src/modules/options/optw_theme.h create mode 100644 src/modules/options/optw_tools.cpp create mode 100644 src/modules/options/optw_tools.h create mode 100644 src/modules/options/optw_topiclabel.cpp create mode 100644 src/modules/options/optw_topiclabel.h create mode 100644 src/modules/options/optw_transport.cpp create mode 100644 src/modules/options/optw_transport.h create mode 100644 src/modules/options/optw_tray.cpp create mode 100644 src/modules/options/optw_tray.h create mode 100644 src/modules/options/optw_uparser.cpp create mode 100644 src/modules/options/optw_uparser.h create mode 100644 src/modules/options/optw_urlhandlers.cpp create mode 100644 src/modules/options/optw_urlhandlers.h create mode 100644 src/modules/options/optw_userlist.cpp create mode 100644 src/modules/options/optw_userlist.h create mode 100644 src/modules/perl/Makefile.am create mode 100644 src/modules/perl/libkviperl.cpp create mode 100644 src/modules/perlcore/KVIrc.xs create mode 100644 src/modules/perlcore/Makefile.am create mode 100644 src/modules/perlcore/libkviperlcore.cpp create mode 100644 src/modules/perlcore/perlcoreinterface.h create mode 100644 src/modules/perlcore/ppport.h create mode 100644 src/modules/perlcore/typemap create mode 100644 src/modules/perlcore/xs.inc create mode 100644 src/modules/popupeditor/Makefile.am create mode 100644 src/modules/popupeditor/libkvipopupeditor.cpp create mode 100644 src/modules/popupeditor/popupeditor.cpp create mode 100644 src/modules/popupeditor/popupeditor.h create mode 100644 src/modules/raweditor/Makefile.am create mode 100644 src/modules/raweditor/libkviraweditor.cpp create mode 100644 src/modules/raweditor/raweditor.cpp create mode 100644 src/modules/raweditor/raweditor.h create mode 100644 src/modules/regchan/Makefile.am create mode 100644 src/modules/regchan/libkviregchan.cpp create mode 100644 src/modules/reguser/Makefile.am create mode 100644 src/modules/reguser/dialog.cpp create mode 100644 src/modules/reguser/dialog.h create mode 100644 src/modules/reguser/edituser.cpp create mode 100644 src/modules/reguser/edituser.h create mode 100644 src/modules/reguser/libkvireguser.cpp create mode 100644 src/modules/reguser/wizard.cpp create mode 100644 src/modules/reguser/wizard.h create mode 100644 src/modules/rijndael/Makefile.am create mode 100644 src/modules/rijndael/ablowfish.cpp create mode 100644 src/modules/rijndael/ablowfish.h create mode 100644 src/modules/rijndael/caps/Makefile.am create mode 100644 src/modules/rijndael/caps/rijndael create mode 100644 src/modules/rijndael/libkvirijndael.cpp create mode 100644 src/modules/rijndael/libkvirijndael.h create mode 100644 src/modules/rijndael/rijndael.cpp create mode 100644 src/modules/rijndael/rijndael.h create mode 100644 src/modules/setup/Makefile.am create mode 100644 src/modules/setup/libkvisetup.cpp create mode 100644 src/modules/setup/setupwizard.cpp create mode 100644 src/modules/setup/setupwizard.h create mode 100644 src/modules/sharedfile/Makefile.am create mode 100644 src/modules/sharedfile/libkvisharedfile.cpp create mode 100644 src/modules/sharedfileswindow/Makefile.am create mode 100644 src/modules/sharedfileswindow/caps/Makefile.am create mode 100644 src/modules/sharedfileswindow/caps/sharedfileswindow create mode 100644 src/modules/sharedfileswindow/libkvisharedfileswindow.cpp create mode 100644 src/modules/sharedfileswindow/sharedfileswindow.cpp create mode 100644 src/modules/sharedfileswindow/sharedfileswindow.h create mode 100644 src/modules/snd/Makefile.am create mode 100644 src/modules/snd/libkvisnd.cpp create mode 100644 src/modules/snd/libkvisnd.h create mode 100644 src/modules/socketspy/Makefile.am create mode 100644 src/modules/socketspy/libkvisocketspy.cpp create mode 100644 src/modules/socketspy/socketspywindow.cpp create mode 100644 src/modules/socketspy/socketspywindow.h create mode 100644 src/modules/spaste/Makefile.am create mode 100644 src/modules/spaste/controller.cpp create mode 100644 src/modules/spaste/controller.h create mode 100644 src/modules/spaste/libkvispaste.cpp create mode 100644 src/modules/spaste/libkvispaste.h create mode 100644 src/modules/str/Makefile.am create mode 100644 src/modules/str/libkvistr.cpp create mode 100644 src/modules/system/Makefile.am create mode 100644 src/modules/system/libkvisystem.cpp create mode 100644 src/modules/system/plugin.cpp create mode 100644 src/modules/system/plugin.h create mode 100644 src/modules/term/Makefile.am create mode 100644 src/modules/term/libkviterm.cpp create mode 100644 src/modules/term/termwidget.cpp create mode 100644 src/modules/term/termwidget.h create mode 100644 src/modules/term/termwindow.cpp create mode 100644 src/modules/term/termwindow.h create mode 100644 src/modules/texticons/Makefile.am create mode 100644 src/modules/texticons/libkvitexticons.cpp create mode 100644 src/modules/theme/Makefile.am create mode 100644 src/modules/theme/libkvitheme.cpp create mode 100644 src/modules/theme/managementdialog.cpp create mode 100644 src/modules/theme/managementdialog.h create mode 100644 src/modules/theme/packthemedialog.cpp create mode 100644 src/modules/theme/packthemedialog.h create mode 100644 src/modules/theme/savethemedialog.cpp create mode 100644 src/modules/theme/savethemedialog.h create mode 100644 src/modules/theme/themefunctions.cpp create mode 100644 src/modules/theme/themefunctions.h create mode 100644 src/modules/tip/Makefile.am create mode 100644 src/modules/tip/kvi_tip.png create mode 100644 src/modules/tip/libkvitip.cpp create mode 100644 src/modules/tip/libkvitip.h create mode 100644 src/modules/tip/libkvitip.kvc create mode 100644 src/modules/tip/libkvitip_cs.kvc create mode 100644 src/modules/tip/libkvitip_it.kvc create mode 100644 src/modules/tip/libkvitip_ru.kvc create mode 100644 src/modules/tmphighlight/Makefile.am create mode 100644 src/modules/tmphighlight/libkvitmphighlight.cpp create mode 100644 src/modules/toolbar/Makefile.am create mode 100644 src/modules/toolbar/libkvitoolbar.cpp create mode 100644 src/modules/toolbareditor/Makefile.am create mode 100644 src/modules/toolbareditor/libkvitoolbareditor.cpp create mode 100644 src/modules/toolbareditor/toolbareditor.cpp create mode 100644 src/modules/toolbareditor/toolbareditor.h create mode 100644 src/modules/torrent/Makefile.am create mode 100644 src/modules/torrent/libkvitorrent.cpp create mode 100644 src/modules/torrent/tc_interface.cpp create mode 100644 src/modules/torrent/tc_interface.h create mode 100644 src/modules/torrent/tc_ktorrentdcopinterface.cpp create mode 100644 src/modules/torrent/tc_ktorrentdcopinterface.h create mode 100644 src/modules/torrent/tc_statusbarapplet.cpp create mode 100644 src/modules/torrent/tc_statusbarapplet.h create mode 100644 src/modules/url/Makefile.am create mode 100644 src/modules/url/caps/Makefile.am create mode 100644 src/modules/url/caps/url create mode 100644 src/modules/url/icons.h create mode 100644 src/modules/url/libkviurl.cpp create mode 100644 src/modules/url/libkviurl.h create mode 100644 src/modules/window/Makefile.am create mode 100644 src/modules/window/libkviwindow.cpp create mode 100644 src/modules/window/userwindow.cpp create mode 100644 src/modules/window/userwindow.h diff --git a/ChangeLog b/ChangeLog new file mode 100644 index 0000000..969ac28 --- /dev/null +++ b/ChangeLog @@ -0,0 +1,2280 @@ +02 May 2007 - 12 March 2008 + [KVIrc Development Team] + - A lot of changes documented in the svn log. See http://svn.kvirc.de/kvirc/ for the timeline. + +02 May 2007 + [Alexey] + - New KVS functions: $serialize and $unserialize to deal with JSON-serialized strings + +16 Apr 2007 + [Noldor] (with the input from Pragma and Iakko) + - Iakko's notifier is back. New in this version: + 1) QT4 compatible (on win and macos it is uses fast setWindowOpacity effect instead internal notifier blend()) + 2) Added Option to disable fadein/out effect useful on slow machine (need test) + 3) Fixed strange crash on QT4 and some minor bug in show/hide event. (it is a trick... need to debug) + This a w.i.p. and need some test on linux. + +12 Apr 2007 + [TheXception] + - Added $system.call to call functions of dll/so files via kvs. + +10 Apr 2007 + [Alexey] + - Configurable avatar scaling on load + - Human-redable file sized on dcc transfers + +12 Mar 2007 + [Alexey] + - Added support for remote dns on socks5 proxy + - Added option to configure identd output mode + +06 Mar 2007 + [Pragma] + - Added svg and generated png icons for kvs,kvc,kvt and kva files. + Added the KDE mimetypes too. + - Some fixes for Qt4 support + +26 Feb 2007 + [Alexey] + - Added Export/Import feature to channel list module + +25 Feb 2007 + [Alexey] + - Repainted reuser list + - Added search field for mask editors + +24 Feb 2007 + [Noldor] + - New QT4 win compiling projects: still unusable... kvilib and kvirc compile but only in release; + you need to compile qt libraries by yourself then try to compile kvilib and kvirc (use COMPILE_USE_QT4 in kvi_wincfg.h). + Some module compile without problem... others need to be ported. + +20 Feb 2007 + [Alexey] + - Completely reworked ignore system + - Implemented reguser match caching + - Implemented custom color for registered user caching + [Pragma] + - Yet more Qt4 port. + - We now require Qt >= 4.2.2 for Qt4 support to work. Older 4.x versions + have bugs that can't be worked around and tend to crash kvirc + in various circumstances (including displaying tooltips). + Qt 4.2 also re-adds the possibility to add QWidget objects to popup menus. + - Yet more modules ported. + - A fix for the KVS expression operator precedence. + - A couple of general fixes that I can't remember but have been reported on + the list. + - I'm thinking about qmake support (as suggested by Matteo Catanese some time ago) + ... will require some work ... what do you think about it ? + +18 Feb 2007 + [Alexey] + - Fixed dns resolver under win32 + - Fixed minimized channels open + - Added bot detection icon (who will write docs?) + - Fixed winamp plugin problem under win32 (removed msvcr80.dll dependency) + +08 Feb 2007 + [Pragma] + - More Qt 4.x port. + Solved the most disturbing problems: it looks a lot better now. + - Font metric cache values can no longer be computed directly from a + widget's font. We must use the painter idea of the font instead. + This complicates caching a bit. + - Some of the QPainter functions seem to behave in a bit different way + - QFrame::drawContents() is gone... we need to reimplement paintEvent() + - The setAutoFillBackground(false) setting seems to be propagated to children + in some way (?) (as opposed to backgroundMode(NoBackground) in Qt3) + - QToolButton::drawButton() is gone, need to directly drawPixmaps instead... + - ... + Ported also the first couple of modules. + + Qt 4 causes a lot of problems in porting but I'm starting to feel + like the new library is very cool :) + +05 Feb 2007 + [Pragma] + - The KVIrc executable now compiles and starts with Qt4. With Qt3 everythin + should work just like it did before. + + No modules are ported yet so a lot of functionality is not available... + ... but it CAN connect to a server :) + It tends to crash once in a while, has nasty problems with + graphics and size of certain widgets: will need some hours of debugging. + + When testing the Qt4 port make sure you (re)move your old binary + modules from /usr/local/share/kvirc/3.2/. KVIrc will attempt to load + some modules from there and since they're linked to Qt3 the runtime + (loader) is likely to go nuts with two Qt versions in memory. + You have been warned... :) + +30 Jan 2007 + [Alexey] + - Introduced option "using identd only on connect" + +29 Jan 2007 + [Alexey] + - Introduced search in log files + +25 Jan 2007 + [Pragma] + - Yet more Qt 4.x port + - Added the torrent interface module by Alexander Stillich + +21 Jan 2007 + [Pragma] + - More Qt 4.x port + - More multiple identities work + - Added the first considerations about the Qt 4.x port to hackers.guide.txt + +20 Jan 2007 + [Pragma] + - Another quick fix (for config values not saved correctly) + - Started the implementation of multiple identities. + +19 Jan 2007 + [Pragma] + - Added the fixes for a couple of bugs introduced with the yesterday commit. + Thnx to Alexander Stillich for the detailed report :) + +18 Jan 2007 + [Pragma] + - More Qt 4.x port. kvilib now compiles cleanly with both Qt 4.x and Qt 3.x. + Don't know if it really works since kvirc compilation still bails out. We'll see :) + +15 Jan 2007 + [Pragma] + - Fixed the smart encoders a bit more + - Theme management: rewritten the theme save dialog as a wizard, added screenshot management. + - Really first step to Qt 4.x support: added ./configure switches to handle qt4 and + fiddled the makefile variables to contain the right include and library paths. + Still have no idea if everything works correctly since compilation bails out + very early in kvilib. + You're likely to have problems with moc since the configure script tends + to find the Qt 3.x moc instead of the correct one. Use the --with-qt4-moc option + to force the right moc compiler path. + In Qt 4.x mode the COMPILE_USE_QT4 preprocessor variable is set: use it for conditionals... + an #ifdef COMPILE_USE_QT4 is more or less equivalent to #if QT_VERSION >= 0x040000. + We will need to "abstract" several collection classes to make everything + work with both Qt 3.x and Qt 4.x. The goal is (or better would be) to hide everything in + kvilib in order to have almost no conditional compilation in the kvirc core and in the modules. + - Added a discussion about the versioning scheme in the hackers.guide.txt. Give + it a read and make/add your comments :) + +12 Jan 2007 + [Pragma] + - Added a set of smart encoders that send in UTF-8 instead of the child encoding + - Fixed a nasty bug in KviQString::vsprintf() that caused KVIrc to crash in response + to certain messages from server + - Added corrections and null checks in some places to make KVIrc resist to + the ircfuzz.c attack. + - Committed the spanish translation by Roberto Ciria + +08 Jan 2007 + [Pragma] + - More work on the themeing engine. Nearly finished. + The theme packages created since Dec 28 aren't compatible anymore. + (nobody was able to load them yet anyway :D), sorry. + - Added support for the audacious media player, thnx to Alexander Stillich :) + - Added #kvirc channel links in the help menu. Please add your own localized #kvirc channel. + +06 Jan 2007 + [Alexey] + - Added gender info sharing tricks + +28 Dec 2006 + [Pragma] + - Added handling of unknown RPL_WHOIS* numeric replies by implementing a nice + "guessing" algorithm suggested by Elephantman + - Added a file with KVIrc file extension definitions. We should use the defs instead + of hardcoding extensions like .kvt, .kvs or .kvp. + - Added a fast generic packaging engine. A KVIrc package is a kind of zip archive + with an uncompressed metadata header. It can be used to distribute both themes and addons. + - First works on the theme exporting engine. Saving and packaging are now different operations. + One first saves his theme to disk, eventually edits it manually (maybe by adding a nice + splash screen or fixing some icons) and finally packages it by invoking a nice + wizard based procedure. Still need to write the installation dialog. + - Moved the whole theme management engine to a new module. It exports the + management dialogs and some utility commands. There is no reason to load + all this stuff at startup with the options dialog now. + +27 Dec 2006 + [Noldor] + - Alias editor module: + added the possibility to save a selection of aliases in separated files (every file will have the alias name); + fixed search function; + - Script editor module: + fixed replace command(in "replace all aliases" too); + now syntax highlighter recognize command "function" and "internal"; + - Objects module: + added objects.classes, objects.variables, objects.classAllHandlers; + fixed crash in listviewitem class; + fixed little bug in multilinnedit class (function $setWordWrap); + + +19 Dec 2006 + [Pragma] + - help.open: open only one help window unless -n is used + +17 Dec 2006 + [Pragma] + - Committed the new german translation file by Mihai "Ionic" Moldovan + - Switched the source control system to SVN: happy coding :) + +15 Dec 2006 + [Pragma] + - Yet more work on the options dialog + - Added an option for the "network name in taskbar": it's cool, but we want to choose :) + +12 Dec 2006 + [Alexey] + - Added option to create minimized channels + - Fixed nick selecting in userlist via ircview + - Fixed mouse hover link effect + - Network name now will be shown in the taskabr instead on server name + +07 Dec 2006 + [Pragma] + - Yet more work on the options dialog + - Fixed a crash related to the dialog.* module calls + +28 Nov 2006 + [Pragma] + - More work on the options dialogs + - Removed the duplicated kvc_ icon. + +19 Nov 2006 + [Alexey] + - New function - $chan.getUrl + - NickServ identity can now accept masks in nick field + +16 Nov 2006 + [Alexey] + - Added a simple browser-like address bar to console + - Clicking on nick in channel ircview now selects it in the userlist + - Avatar dcc send rejected if avatar size greater, then max filesize, setted in options + +15 Nov 2006 + [HelLViS69] + - Added a checkbox on AwayIndicator applet popup to choose to go away + on all IRC Contexts + +14 Nov 2006 + [Pragma] + - Moved the userlist feature options page to the theme option dialog + and splitted all the userlist options in tabs + - Corrected some typos around + - Reworked the output options page + - Updated the directory selection dialog under KDE + - Avatars bigger than 1024x768 make KVIrc complain when setting them + and are scaled to a saner size when they are received from others. + +13 Nov 2006 + [Pragma] + - Added $object.instances(): useful when implementing singletons. + - Fixed a small image dialog issue + +9 Nov 2006 + [Pragma] + - Added support for chunked HTTP transfer encoding as required by HTTP/1.1 + - A fix for object toolbar position not saved properly + - A fix for the addon management dialog not repainted correctly + - A fix for loading of files by the means of KviFileUtils::loadFile()... + /parse is one of them and it expects an utf8 encoded file. + (read: all *.kvs files must be utf8 encoded, there is no other decent + portable way to preserve the national characters...) + +8 Nov 2006 + [Pragma] + - A fix for KviStr handling incorrectly multibyte strings (fixes some localization issues) + - A simple hack-in for a protocol filter.. maybe msn ? + +6 Nov 2006 + [Pragma] + - Various minor fixes around + - Splitted the core small icons libraries in separate icons. + - Moved the small icons to a subdirectory to speed up the loading (we are already at more than 280 icons...) + +1 Nov 2006 + [Alexey] + - Added unreal NAMESX and UHNAMES support + - Fixed $hexToAscii function + - Make DCC File Open/Save dialogs have native look on windows + - Fixes in filesystem handling. Fixed bug when KVIrc unable to load translation from non-latin folders + - Fixed actions' accelerators + - CTCP Page dialog now stays on top of desktop + - Fixed in tray minimizing/restoring on win32 + +Oct 2006 + [Alexey] + - WIN32 compiling need QTTAG env var with "mtnc321" value for non-commercial QT 3.2.1 or "mt336" for QT 3.3.6 + - New win32 tray icon + - Added snd.mute, snd.unmute, $snd.isMuted to KVS + - Moved theme selection out from theme options to avoid partyally applying of themes + - Added some lost functions to "painter" class + - Fixed ignore system + - Fixed input themeing (black on black bug) + - "play" command is now alias for snd.play + - IMPORTANT: fixed proper soket closing on win32 + - Fixed crash after first run wizard on *nix + - Make possible installation on USB removable drives (WIN32). KVIrc can store settings in program folder + - Make pathes in configs system-independent + +23 Sep 2006 + [Zerg] (commited by Alexey) + - Change dock icon size to 22x22 on KDE. Fixed style of icon + - Better in-tray minimizing + [Alexey] + - Setted tray icon background to transparent + +18 Sep 2006 + [Noldor] + - Added alphablend in objects.blend + - Added doc to class image and function setOpacity() + ... now we can create some weird, cool effect :=D + +08 Sep 2006 + [Alexey] + - Fixed input line painting bug: cursor goes out of visible range + +25 Aug - 07 Sep 2006 + [Alexey] + - Fixed couple of bugs, include crashbug when applying a new theme + - Rewrited channel mode handling + - Rewrited setup wizard + - Corrected themeing of input + - Del key deletes selected transfer in filetransfers + - Changed trayicon bechaviour. Now it's configurable. + + +25 Aug 2006 + [Pragma] + - uparser is definitively gone: KVS is the reality. + - cleanups all around, removing unused code etc. + - documentation cleanups + +13 Aug 2006 + [Pragma] + - Fixed some docs about KVS + - $boolean(), $string(), $integer() casts. + +27 Jul 2006 + [Alexey] + - Classic taskbar now looks fine in os-style. It uses new frames and borders + - Make classic taskbar resizable + - Make Tree taskbar header hidable. Hide it by default + - Tree taskbar change cursor to hand while moving over an item + +27 Jul 2006 + [Alexey] + - New -a | --all-networks switch for away and back commands to apply their action to all connected networks + - Fixed bug with long channellins scrolling; removed horisontal scrollbar + +27 Jul 2006 + [Alexey] + - Timestamp format now can be configured via options + - Input saves string in history when it was send via Ctrl+Return + - Fixed case sensivity mode handling in usermode popup + +26 Jul 2006 + [Alexey] + - Added option to include MSGTYPE info in theme packs + - Added support fot ports, greater than 65536 + +25 Jul 2006 + [Pragma] + - Comparison operators now prefer numeric operands instead of strings. + - Added $str.printf() + [Alexey] + - Fixed bug in language seletor + - New XML load addon dialog + - Show progress bar while indexing help + +24 Jul 2006 + [Alexey] + - Added XML (single file) theme export/import + - Added ability to delete installed themes + +22 Jul 2006 + [Alexey] + - Fixed bugs in filetransfers window while operating with localized filenames + - Renamed "orphan_servers" to "Standalone Servers" + +21 Jul 2006 + [Alexey] + - Added e2k URL highlighting + +20 Jul 2006 + [Alexey] + - Implemented help topics and keywords caching + - Topic can be viewed via double-click for non-opers in read-only mode + - Fixed PageUp/PageDown in logviewer + - Fixed defsctipt. Kickban now uses mask from kvirc prefs + - Fixed avatar handling while it trnsfered via DCC, filename contains space, but replacing spaces with _ enabled + - Fixed connection to stupid win32 proxies + - Added HTTP Proxy error displaying + - New autojoin channel editor; fixed bugs in channel autojoining + +19 Jul 2006 + [Alexey] + - Fixed DCC non-latin filenames handling + - Fixed avatars with non-latin names handling + +07 Jul 2006 + [Alexey] + - Fixed proxy connection (HTTP proxy doesn't require Server ip resolving now) + + +28 Jun 2006 + [Pragma] + - Fixed some CTCP handling as suggested by CtrlAltCa + - foreach now doesn't iterate over empty variables unless the -a switch is used. + +23 Jun 2006 + [Ahinu] + - Work on the mediaplayer module: more linux support + cmd/fnc cleaning + +10 Jun 2006 + [Alexey] + - Added icons to some tooltips + - Added Alt+DIGIT hotkey for window switching. Removed Ctrl+End hotkey(changed to Ctrl+F4) + +05 Jun 2006 + [Alexey] + - Fixed join channels menu + - Added insert text icon submenu to input editor popup + - Added feature to autosave logs + +23 May 2006 + [Alexey] + - Channel/topic input lines now have a OS-style border + [Fiber^] + - Added hungarian translation + +21 May 2006 + [Alexey] + - Fixed crash while topic contains a text icon + - Fixed colorizing nick as in the userlist while custom color is set for the normal users + +20 May 2006 + [Alexey] + - Added automatic codepage select for servers, that doesn't insart "CODAPAGES" in RPL_ISUPPORT message + - Now recent channels are network-dependend. For example #kvirc@Freenode and #kvirc@Azzurra are the different channels + - Switched to 3.2.3 + - Fixed (finally?) window restoring from tray icon + - Fixes in mIRC color handling + +15 May 2006 + [Alexey] + - Fixed issues when IP specified instead of server name in server properties + +13 May 2006 + [Alexey] + - Added search and document index to the help system + +10 May 2006 + [Alexey] + - Added texticon module to manage text icon collection + - Added detection if the KVIrc running to the win32 insatll script (patch contributed by Zerg) + +02 May 2006 + - Improved win32 insatll script (patch contributed by Zerg) + +22 Apr 2006 + [Alexey] + - Now user can define position and/or tiling methood of backgrounds + +22 Apr 2006 + [Alexey] + - Added visual effects to the tree taskbar + +19 Apr 2006 + [Alexey] + - [WIN32] Added installer script for NSIS installer (nsis.sf.net). It can properly uninstall local data dir, automatically install Winamp plugin + - Added ability to bind sounds on some events via options dialog + +18 Apr 2006 + [Alexey] + - !KVIrc now can run from localized folder (generally WIN32 fix)! + - Added options to strip colors from logs + - Filelist retirned to the left in logviewer + - Restyled win32 tray icon (now it looks similar to the *nix tray icon) + - Added tray icon flashing + - Added $lang function to detect user language + - Updated default toolbars + +15 Apr 2006 + [Alexey] + - updated graphical emotions + - added ability to hide channel's tool buttons + - options dialog is now closable by escape button + - added ability to hide input tool buttons + - colors and msgtypes now can be saved into the logfiles + +07 Apr 2006 + [Alexey] + - added support for caculating md5, md4, md2, sha1, mdc2, ripemd160, dss1 digests via new $str.digest function + +01 Apr 2006 + [Alexey] + - changed KVS_PT_STRINGLIST type to QStringList + - added option to set default ban mask + - added options to set maximum width of classic taskbar button + +17 Mar 2006 + [Alexey] + - More intelligent word highlighting + +14 Mar 2006 + [Alexey] + - Added HTTP Auth compatability + - Redesigned log viewer + - Added ability to remove logs in log viewer + - Added nicer styling of Tool buttons + - Fixed bugs in logfiles naming + +07 Mar 2006 + [Alexey] + - Added ability to choose smyles from external file + - Fixed sorting bans (invites,exempts) by date + +05 Mar 2006 + [Alexey] + - Added option to sort received files by nicks + +26 Feb 2006 + [Pragma] + - KVS now uses 64 bit integers, if possible + - More work on zero port DCC handshakes (still a bit work in progress) + - Finally managed the KviListView to display a transparent background + picture (hopefully) without flickering. Does it work on windows ? + - Added $hptimestamp() for high(er) precision time intervals computation + - Recently also more work on the options dialog + - the theme options now have its own toplevel dialog + (some of the options still need to be moved around) + - added a (still primitive) search function + +26 Feb 2006 + [Alexey] + - added "away" section to the dockwidget menu + - tray icon now transparent under *nix + - added autohide indicator to notifier + +24 Feb 2006 + [Alexey] + - added option for closing in tray (patch by Zerg) + - added option for startup minimized + - added deeper nick change customization in away + - added "Quit" item to the main menu + - new tray icon under *nix, more selective tray tooltip + +22 Feb 2006 + [Alexey] + - improved nick colorization in KViIrcView: now registered nicks are colorised as in the userlist + - now it is possible to assign a comment to the registered user. Comment will be shown it tooltip and WATCH join/quit messages + - added option for colorizing own nick in different color + +21 Feb 2006 + [Alexey] + - added option to disable avatar scaling if it less that required size + +20 Feb 2006 + - registered users can be organazid into groups + - some fixes in maskeditor + +13 Feb 2006 + [Ahinu] + - regchan.list -> regchan.showlist, added $regchan.list + - Added $str.stripcolors + +05 Feb 2006 + [Pragma] + - Started the big cleanup of the options dialog. Identity options for now. + - Moved the translations of the options module to a specific po file. + This makes the job units smaller (for translators) and doesn't force + kvirc to load all these strings at startup. + The original translations are preserved and the translators should + remove the unused overlapping (and commented out) portions of the kvirc_*.po + and options_*.po at the next opportunity. + +03 Feb 2006 + - Improved maskedior. Now it can edit masks;) + - Fixed issues with [] symbols in Wildcard expressions + +02 Feb 2006 + [Pragma] + - Added zero port request handling also for DCC CHAT. + We support it also in outgoing requests now. + - Fixed the problems with execution of perl script that contain warnings. + +27 Jan 2006 + [Pragma] + - Again missed updated + - Initial support for shared double buffering (will reduce memory usage) + - Finished the cool listview initiated by Alexey (still needs testing on windows tough) + - Some other things I have forgot :D + +17 Jan 2006 + [Pragma] + - We now suppor the mIrc zero port DCC protocol both in incoming and *outgoing* transfers + The outgoing protocol is activated by /dcc.rsend -z + - A couple of fixes for the KVS engine + - Some fixes for the perlcore module (almost finished: it just needs a better warning handler...) + [Grifisx & Noldor] + - Some projects updated + - Fixed varius bug in object module (we hope less crashes ;) ) + - Deleted some old, unused objects classes function + - Added function $height() and $width() in class pixmap + - Fixed and optimized objects.blend command: now it is very cool and you can create some eyes candy effect + very easily =)(more new graphic commands will come in the near future) + - The porting of the module object is near to finish: only class socket is missing. + +14 Jan 2006 + [Grifisx & Noldor] + - Added the new class object named "image": at this moment it is in alpha state and without docs; + - Added command objects.blend. + [Pragma] + - Added the math.* module + - Fixed comparison of variables in KVS + +13 Jan 2006 + [Grifisx & Noldor] + - Fixed bugs in object classes + [Alexey] + - Window now saves logging state and userlist state + - CTCP VERSION reply now shows os version and QT version + - Added support for RPL_ENDOFSTATS (219) message + [Pragma] + - Missed to update this file for a while :D + - The object classes are now persistent: they are stored on disk so one does not need to always redeclare them in aliases + - Added the "user friendly commandline" button to the input widget and the global option to keep it automatically on/off + - Other small fixes that I can't remember + +11 Jan 2006 + [Alexey] + - Added an option to disable notifier window flashing + - Fixed doubleclick interval in ircview + - Added support for guessing max modes per line from RPL_ISUPPORT + - Now you must use // prefix in nput line to use full KVS syntax. The / prefix don't parse arguments at all + +10 Jan 2006 + [KVirc Development Team] + - Events now works in objects module + - Lots of other improvements in objects module + - Options to minimize in tray + - New styled checkboxes are fully functional now under all OS + - Fixed mIRC color handling + - Fixed file handling in snd module on localized filesystems + +4 Jan 2006 + [Pragma] + - Started porting events on new KVS + [Alexey] + - Added colors to the topic history widget + - Added ability to count total connection time for all connections for the connection timer applet + +25 Dec 2005 - 3 Jan 2006 + - Removed old KVS + - Added history to the topic editor + - Redisigned splash screen + +24 Dec 2005 + [Pragma] + - More modules ported to KVS: only dcc and dialog are partially missing + at this point. Prepare for the big cleanup :) + - Added JIS7 and euc-JP to the list of supported codecs (thnx hagabaka!) + - Some small fixes to the options dialog that was going nuts recently... + +20 Dec 2005 + [Pragma] + - Almost finished the work on alias namespaces: they should be usable now + - Ported the perl modules to the new KVS + - Ported the sharedfile module to the new KVS too, really few modules + are missing now + - Fixed a couple of buggies in KviCommandFormatter that prevented + aliases from being correctly removed + - Some work in the new KVS engine: the big cleanup is coming...be afraid! + +18 Dec 2005 + [Pragma] + - Alias namespaces and other curious thingies all around + +10 Dec 2005 + [Alexey] + - [Kernel] New theme package format. Now theme s\is a king of addon + - [KVS] Fixed crash while calling $tr("") in new KVS + - [Kernel] Other bugfixes + + [Pragma] + - [Kernel] Fixed crashbugs in KVS kernel + +09 Dec 2005 + [Alexey] + - [Kernel] Fixed bugs in handling modes. Now it is case sensivity + - [UI] Fixed bug with deleting selected text from input line or topic editor + - [UI] Pressing a key in userlist now selects the first nick with first letter, equal to the pressed key + - [UI] Now options splitted into 3 categories: for novice,normal and experienced users. Newbies should see really simple configuration dialog + +07 Dec 2005 + [Alexey] + - [Kernel] KVirc *hopefelly* supports now localized file names and file pathes! (but it really partially support it now:))) + - [UI] Added missed option to the irc option widget. Now user can specify number of maximum send channel modes per line + +06 Dec 2005 + [Alexey] + - [UI] Added themes previews to the setup wizard + +05 Dec 2005 + [Alexey] + - [Kernel] Added soma additional checks to KviRegisteredUser class. + - [Kernel] Mode work on filesystem interfave + - [Kernel] Much better filenames encoding function from internationalization point of view. Logfile names becomes not so ugly:) + +01 Dec 2005 + [Alexey] + - [UI] Fixed bug with nick completion + +26 Nov 2005 + [Alexey] + - [UI] Now it is a programm option to disable splash and no more --disable-splash configure option +27 Nov 2005 + [Alexey] + - [Kernel] Fixed crashes in action and toolbar modules under windows + - [Kernel] Added trick to resolve unmasked local hostname from 001 server message, even when you using +x mode + +26 Nov 2005 + [Alexey] + - [UI] Fixed bug with non-latin search in ircview. Now it works:) + - [UI] Improved \r handling in ircview. Now it can contain colors in the label title. + - [UI] Improved smart nick and channel highlighting. + - [UI] Escape hotkey (minimize window) replaced with Ctrl+Esc hotkey. + - [UI] Better code highlighting and code completion in scripteditor. + +25 Nov 2005 + [Alexey] + - [UI] Added smart nick and channel highlighting. Now most of channel names and nicknames are recognized and you can click on it by mouse:) + +24 Nov 2005 + [Alexey] + - [KVS] config module ported + - [KVS] mediaplayer module ported + - [KVS] fixed _tonns_ of crashes in objects module with new KVS + +23 Nov 2005 + [Alexey] + - [Kernel] Added ability to choose proxy server in irc server's preferences. You can choose different proxyes for different servers + +22 Nov 2005 + [Alexey] + - [KVS] Removed ugly $insertInInput function, added commands window.setInputText,window.insertInInputText and function $windos.inputText + - [KVS] Make new KVS allows to use '_' symbol in functions' names,commands' names and variables' names + - [Kernel] Added support for RPL_ADMINME, RPL_ADMINLOC1, RPL_ADMINLOC2, RPL_ADMINEMAIL, RPL_COMMANDSYNTAX, RPL_INVITING, RPL_INFO, RPL_INFOSTART, RPL_ENDOFINFO, RPL_TIME, ERR_NOSUCHSERVER, ERR_NOSUCHCHANNEL, ERR_CANNOTSENDTOCHAN, ERR_NOCOLORSONCHAN server messages + - [Kernel] Added support for gzipping logs and viewing gzipped logs + [Pragma] + - First step for the implementation of namespaces in aliases (new KVS only) + +21 Nov 2005 + [Alexey] + - [UI] Ctrl+Enter now sends text to the channel(query,dcc chat,etc..) even if it has "/" at beginning. + - [Kernel] Tuned output and string formatting functions. Really solves TONNS of internationalization problems:)) + - [Kernel] Code tuning: chack all sources to proper encodig data, sended to server. Make corrections. + - [Modules] Some other internationalization fixes in DCC module + - [UI] Added option to colorize nicks in channel messages the same, as they colorized in the userlist view + [Pragma] + - ported dialog.textinput + - more fixes around + +20 Nov 2005 + [Pragma] + - Started porting the dialog module + - Added the callback object KVS base class + - a small fix for KviInput (gcc warning) + +08 Nov 2005 + [Alexey] + - [KVS] Error and warning texts are now readable in localized versions + - [UI] Added option to enable or disable showing query information label + - [UI] Added some items into the main menu + - [UI] Added default menu on right click at url link + - [KVS] Added $str.fromClipboard function and str.toClipboard command + - [UI] Channel mode label now allows to edit chanmodes + - [UI] Added new information label into Query window + - [KVS] Fixed bug 0000270 with OnChannelModeChange event + - [Kernel] Fixed click vs double click bug + - [Kernel] Added parsing of 703(WeNet) and 020 messages + - [UI] New topic editor + - [Misc] Fixed some other bugs + - [UI] Fixed permission on topiceditor and mode editors(for ircOps and halfops) + - [Kernel] Fixed bug when message, that have raw event handlers decode 2 times + - [Modules] Fixed internationalization issues in avatar module + - [KVS] Window,reguser,url,term,toolbareditor,regchan modules are ported.. + - [KVS] Log module ported, porting logging system from KviStr to QString + - [kernel] Some fixes for COMPILE_ONLY_NEW_KVS + + [Pragma] + - More work on the KVS engine + - avatar module ported... + - Merged various small fixes done in the last days + +05 Nov 2005 + [Alexey] + - added 7 new events to hangle single clicks + - added 2 new functions to get/set/insert text in window's inut lineedit + - added 2 new options for the proper handling of winamp encoding and ID3 tags' encodings + - started dcc module porting from KviStr to QString + - resolved lot of internatiolization problems in DCC module + - improved defscript + +26 Oct 2005 + [Alexey] + - Added Ctrl+A shortcut for select all + - Total latin1() elemination + - Fixed bugs from bugtrack + - Improved usermode menu + - Resolved issues with encodings in DCC chat and transfer + - Editbox now has focus by default in search window + - Changed /ame and /amsg behaviour + - Make connect/disconnect button to reconnect to last used in this context server,not to last used globally + - Added WeNet network + - Fixed CTCP handling + - Fixed +e and +I chanmodes handling + - Fixed issues with non-latin symbols in scripts + - Fixed encodings in logfiles + - Fixed encodings in socket agent window + - Fixed logfile names + [Pragma] + - A quick fix for the connect button handling + - A fix for a crash in the listview KVS class (new parser) + - More KVS all around + +19 Jun 2005 + [Grifisx/Noldor] + - code improvements in the editor(...stil a work in progress): + added code completition (shift+insert keys), added a dynamic help: move over a command/function. + then right button and "help command/function" (... its in beta status, need some workaround :D) : + an help window will appear. + - added some options to hide graphic elements in the gui to build a very "minimalist" KVIrc. + +15 Jun 2005 + [Grifisx/Noldor] + - code improvements in the editor(...a work in progress): + added find/replace in alias editor, fixed some bugs and added some user friendly feature. + To do: code completition; + - win code improvements in the system module; + - added setBackground command in window module; + +24 May 2005 + [Pragma] + - Added queueing for slow paste + - Added http.asyncGet + +14 Apr 2005 + [Grifisx/Noldor] + - Add wrapper and wizard classes, + added parameters support to all classes, + some fix and changes in many objects classes. + Moved commands "connect","disconnect","clearobjects","killclass" in the module objects. +05 Apr 2005 + [Grifisx/Noldor] + - Added mediaplayer.setVol and mediaplayer.jumpTo commands for winamp, + painter and pixmap class optimization, + added 'Paste file' and 'Stop slow paste' on chan and query. +24 Mar 2005 + [Pragma] + - Added the CIA open source project tracing script to the cvs (only for + the kvirccvs module). Please write informative CVS comments from + now on :) + +23 Mar 2005 + [Grifisx/Noldor] + - added boolInputHistory option to disable Input History window and it's log memory + +20 Mar 2005 + [Grifisx/Noldor] + - added painter, textbrowser and pixmap classes and some extensions to widget class + - add minimize and close button to the iconstable's window + +13 Mar 2005 + [Grifisx/Noldor] + - added functions and signals to manage some event in the lineedit class: + $lostFocusEvent, $returnPressedEvent, $textChangedEvent + - added function $str.section(,,,) in 'str module' + +12 Mar 2005 + [Crissi] + - mp3player module updated: kde mediaplayers + +09 Mar 2005 + [Grifisx/Noldor] + - some new classes in the object module: + mainwindow, toolbar, toolbutton + +08 Mar 2005 + [Grifisx/Noldor] + - Fixed CTRL+K, CTRL+B, CTRL+U, CTRL+I...escapes in the topic widget + +27 Feb 2005 + [Pragma] + - Fixed the CTRL+D terminal window crash + - Fixed the Rijndael encryption module + +22 Feb 2004: 3.2.0 "Realia" released. + +20 Feb 2005 + [Pragma/Iakko/Noldor/Grifisx] + - Several fixes on the notifier + - A lot of enchancements in the objects module (some new classes + and some extensions to the existing ones) + - Improved auto-resume DCC handling: now files are not + auto-resumed when the incoming size is unknown or smaller + than the existing file. The auto-resume is disabled also + if there is a running transfer with the same loca file name. + - Fixed several bugtrack issues. + - Cleaned up the -ansi -pedantic compilation. It looks that + only one real warning remains and it is related to the "deprecated" + flags of KApplication constructor which will be removed + in KDE 4.0. We must live with it for a while. + All the other warnings are due to the system headers. + - Caught a couple of potential segmentation faults in the reguser + module. + - Committed the catalan translation by Marc Serra + +09 Feb 2005 + [Tom] + - Fixed several positioning issues for widgets with saved geometry + on MacOS X + +09 Feb 2005: + [Noldor/Grifisx] + - Added the KVS process class + - Several fixes for other object classes + - Added Drag&Drop support to the queries: now a drop operation + triggers the OnQueryFileDropped event + - Added support for CTRL+K, CTRL+B, CTRL+U, CTRL+I ... escapes + in the topic widget. + +08 Feb 2005: + [Noldor/Grifisx] + - Added the KVS radiobutton class + +08 Feb 2005: + [Pragma] + - Fixed the bug of KviIrcView that caused the background to be repainted + incorrectly when the mouse was hovering over the links + - Private background now has priority even over the global transparency + - Added a menu option to reset the private background pixmap when no longer needed + - Removed the "FrameCaption" option since it was only freaking the people + out when it wasn't updated on version change... + +07 Feb 2005: + [Pragma] + - Finally managed to handle correctly the IME events: text input for chinese/japanese + korean etc... should work now. + - Fixed the logging of emoticons: they are written to the log files now + - More tricks on KviHeapObject + - Added the fixes for the _horrible_ VC++ compiler bug that implicitly + creates helper functions (vftable entries) residing in code sections where + operator new is called on a class with a virtual destructor. This is + simply destructive when it happens in a module that can be unloaded + before the object allocated with new is destroyed: at delete time + the code flow obviously jumps into no man's land. + - Committed the ldcnumber class by Noldor and Griffisx + +04 Feb 2005: + [Pragma] + - Added the fixes for windows segfaults reported and bughunted by Noldor and Grifisx. + Maybe these KviHeapObject trick will help to solve the issue. + - Added a warning message about sending more than 20 lines of text + at once in a query or channel. The warning can be obviously disabled + forever by answering "Always". + - Added the XIM "hot spot" handling for the input window. + + +01 Feb 2005: + [Pragma] + - Bandwidth limits for DCC finished. They are configurable "on the fly" now. + - Fixed the Ctrl+Arrows and Ctrl+Shift+Arrows behaviour: now they skip/select + entire words in the input widget. Window switching has been moved to + Alt+Arrows and Alt+Shift+Arrows. + +31 Jan 2005: + [Noldor/Grifisx] + - Yet more object classes: time for spinbox and slider. + +30 Jan 2005: + [Pragma] + - DCC Bandwidth limit implemented, "on the fly setting" is still missing tough + +29 Jan 2005: + [Iakko] + - Added Notifier 2.0 in a more stable and usable version, now tabs and + "blinking onFocusOut/showing" are working. The Notifier is still on Beta version. + - Some kvi_sp_literal.cpp and kvi_sp_ctcp.cpp (under kvirccvs/kvirc/src/kvirc/sparser) changes + needed for notifier to work. A core recompilation is suggested even if + not strongly necessary.. it's a matter of string output on the notifier, nothing critical. + - Graphic features are waiting to be added asap. + +29 Jan 2005: + [Noldor/Grifisx] + - Added a new widget class "progressbar" with the following functions: + $setProgress, $setTotalSteps, $reset, $setCenterIndicator, + $setPercentageVisible, $isCenterIndicator, $isPercentageVisible + +28 Jan 2005: + [Pragma] + - Added the possibility of exporting toolbars from the toolbar + customization dialog. The export function can also export + the associated actions. + - Moved the toolbar customization dialog to a separate module + - Added the mircryption/blowfish crypt engine. It actually supports + both the standard ECB mode and the (really) new CBC mode. + - Fixed some remaining bugs in the action editor: now it should + be ready for the public :) + - Added a couple of object functions to the layout object class + to support the nice minesweeper script :D + - A full set of action.* and toolbar.* commands is now available + - Added compatibility loading functions for old toolbars + - Added handling of the ERROR server message. + - Added the support for actions that can be enabled only in + specified windows and only if there is a nonempty selection inside. + This allows to create user toolbars that perform quick actions + on the selected channel users. This is a *really* quick kick + for example. + - Fixed a couple of bugs related to the mask handling + - Fixed a possible bug related to acknowledges in the DCC send code + - Other small fixes all around as usual. + + +27 Jan 2005: + [Noldor/Grifisx] + - added $setFont to the class widget,$setDragEnabled and $setInputMask + to the lineedit class; + +20 Jan 2005: + [Noldor/Grifisx] + - added some new functions to the class widget: $setToolTip, + $setForegroundColor,... + - some code improvements in the win version of the filetransferwindow: + added context menu like open,open with,delete file,open destination folder + +8 Jan 2005: + [Pragma] + - Added handling for ERROR and the relevant OnError event. + +7 Jan 2005: + [Pragma] + - Again more than 20 days of changes to report. + - The action based toolbars are almost working and have replaced + completely the old scriptable toolbars. + - The toolbar customisation dialog is ready + - Actioneditor is almost ready too, needs just minor adjustments + - Added $chan.userJoinTime() and $chan.userLastActionTime() + - Added several new $mask() types: now it is possible to get different + host masks (only *.domain.ext or *.anything.anythingelse.domain.ext). + Another mask set tries to handle correctly the hidden hostnames (+x) + on some servers (this does not work 100% tough...) + - Added the initial stuff for the language recognition module. Still + don't know if it will end up in the official release: needs interfacing with + the core... but the standalone engine is starting to work. + - Added several "smart" encodings that will try to decode as UTF8 first + and then apply the local encoding rules. + - Added a couple of new emoticon images (Thnx Penny!, Thnx Sidhe! :) + - Created the "scripts" cvs module and added a first script example + (a simple ezbounce irc proxy interface) + - Fixed runtime localization of the action and toolbar names: they + should work fine now. + - Fixed some bugs in the objects module (still needs a lot of work) + signaled by Noldor. + - Bumped up libtool and ltmain.sh to 1.5.10 (hoping that it will stop + relinking the modules when installing... this is extremely annoying) + - Suggest installing the default script if no toolbars or popups are available + - Fixed http avatars not being correctly loaded after the transfer has finised. + - Iakko is working hard on the new (cool!) notifier interface :) + - Various other fixes all around + +15 Dec 2004: + [Pragma] + - Hacked the avatar cache to support masked ip addresses + (added some new parameter options to the $mask function by the way) + - Added the possibility of setting a temporary background for any IRC view. + This is still an experiment. + +12 Dec 2004: + [Pragma] + - Added minimal support for /DCC ALLOW + - Fixed config files loading that truncated lines longer than 32K + +8 Dec 2004: + [Pragma] + Yet another huge set of commits. + The major changes are: + - New "action" based toolbar and popup menu system. + Now the user can just drag & drop actions to customize toolbars :) + - The "big cleanup" has started: + - "Scripttoolbar" is gone: the functionality is completely superseeded by + the action based toolbars now. I already know that some people will want to kill + me for this but from now on the actions are the only method to create toolbars. + This is a good idea since the old method was a bit ugly (for example because + it needed overriding events to enable/disable the actions). + Moreover, another piece of the old non-unicode parser has been wiped out: this is Good(TM). + - Module extension toolbars are gone: replaced by the action stuff now (see above). + - Several structural changes to the default script that reflect the changes in the core. + It IS a good idea to reparse it (execute default script) once now. + +4 Nov 2004: + [Pragma] + - Fixed various minor bugs introduced with the last huge commit. + - Merged the Mirco Macrelli's patch that adds the chanowner flag + support. + +1 Nov 2004: + [Pragma] + I've missed to update this file for a while: my fault :/ + The major changes until now are: + - New statusbar showing the server informations. + This is intended to replace the irc context applet which + often has problems with space. + - 5 moveable statusbar applets + - Per network settings: nick,user,OnLogin,OnConnect,NickServ + authentication etc. as per-network settings. + - Both the servers and the networks can have a preferred + encoding now. + - More UNICODE support all around: the encodings are honored + almost anywhere with the exception of the scripting engine. + The scripting engine uses a hack that makes the encodings + survive through trivial scripts too. This will become yet + better when the new KVS core will be ready. + - Support for unicode nicks and channel names. + In fact almost anything that the server sends out may be unicode + data encoded with some 16->8bit scheme. + - A new rewritten lag meter that will avoid to ping the server + if possible (when other lag-check probes are spontaneously + being sent). The improved algorithm computes the lag better + and does not "hang up" when the server doesn't reply at all. + - The default quit and part messages can contain scripting identifiers + that are evaluated at quit or part time. + - The windows problem with keyboard input has been resolved + - Several enchancements to the actual scripting engine including + but not limited to echoprivmsg, query, notice, notifier.* , + perl.*, server, ... + - Added OnDisconnectRequest event + - Added support for /CODEPAGE + - Avoided unnecessary repaints when in SDI mode: this made + KVIrc a bit faster when switching windows and lowered + the overall cpu usage. + - The "unread" text in a window is now clearly marked by a horizontal + line in the text view. If the text line is out of the view + then a triangle in the upper corner of the view signals it. + - KviWStr stuff definitively removed :))) + - Several other minor bugtrack issues fixed. + + +6 Aug 2004: + [Juanjo] + - Make some pointer = 0 after delete assignations when: + Pointer is a member pointer or a global pointer. + The delete is not in a destructor. + It makes sense. + +1 Aug 2004: + [Juanjo] + - Added an autopackage dir with two (very initial) apsepc files to build a + .autopackage autoinstaller. + If you have not + checked autopackage (http://autopackage.org) DO IT NOW :) is the real + solution for Linux third party software installation across distributions + (somewhat like autoconf at the binary installation level, but without + damn M4 :) + +20 Jul 2004: + [Pragma] + - Now you can use perl from KVS and KVS from perl :) + See /help perl.begin + +13 Jul 2004: + [Pragma] + - Perl support has been widely requested. Added the initial modules + for that purpose. Needs more work tough. + - More work on the notifier: now it's fully working. + Added also the options to disable it in several ways (even completely). + - Fixed various bugs all around + +11 Jul 2004: + [Pragma] + - Added /AHOST command + - More work on the notifier, now it flashes, pops up only when really + needed and can be temporairly disabled. + - Hardwired the event manager of the new KVS engine and officially + killed the old uparser based event manager. We're getting closer and + closer... + +08 Jul 2004: + [Pragma] + - Added the notifier module: really nice! + Thnx to Penny for the images :) + +06 Jul 2004: + [Pragma] + - Added a Always/Yes/No message box that asks the user for confirmation + when attempting to close a connected console. + - Added the Always/Yes/No option to the "Quit-Kvirc-On-Close-Last-Console" + operation. + - Fixed the input history handling bug as reported by Soliton + - Added several fixes for UNICODE misbehaviours reported by Dusan + - Fixed the configuration files parsing: now the entries + and the keys have whitespace encoded separately and the UTF8 + encoding/decoding is done in the proper places. + - Added the code to make the translation of the tips possible. + The translations MUST be UTF8 encoded and use the + libkvitip_.kvc name. + - Finally fixed the copy&paste behaviour: + In the input the selection and the middle click + use QClipboard::Selection if supported by the operating system. + All the other methods use QClipboard::Clipboard. + The IRCView now copies to both QClipboard::Clipboard and + QClipboard::Selection (if supported) + - Again huge structural reorganizing in the networking stack + now I start to like it :) + - Committed several translation updates by Dusan + - The reconnect timer can now be stopped before it triggers + and on disconnect it uses the correct server entry. + (see Trisk's ChangeLog entry for 12 Mar 2004). + +26 Jun 2004: + [Pragma] + - Fixed a mismatched new[]/delete pair in kvi_locale.cpp + - More KviConsole->KviIrcConnection moving + - Fixed a couple of potential segvs related to the connection management + - More UNICODE fixes all around + +24 Jun 2004: + [Pragma] + - Yet more bug fixing + - Added the cs translations of the modules and fixed some unicode issues reported by Dusan + +21 Jun 2004: + [Pragma] + - Fixed a bug introduced by the previous fix about date encodings :D + - Fixed log files not being properly encoded to UTF-8 (question: should + the logs be UTF-8, use the local encoding or use the source window charset ?) + - Committed more work on kvirc_cs.po by Dusan Hokuv + +20 Jun 2004: + [Pragma] + - More reorganizing of the networking stack + - Fixed some bugs with encoding of the dates in non-english locales + +16 Jun 2004: + [Pragma] + - Fixed a crash in the /foreach command as reported by Ahinu (thnx ;) + - Added the OnNetsplit event + - More reorganizing of the networking stack + +12 Jun 2004: + [Pragma] + - A lot of UNICODE updates + - More reorganizing of the networking stack + - Added a lot of new text encodings including the missing ISO-8859-XX variants + and some CPXXX. + +4 Jun 2004: + [Pragma] + - Added first bulgarian translation by bugar@developer.bg + - Completly reorganized the + class set. Now it should become more usable/readable/manteinable/coherent ... + Really work in progress: expect misbehaviour and compile time warnings about + deprecated functions... + +2 Jun 2004: + [Pragma] + - Added profiling support (--enable-profiling) + +31 May 2004: 3.0.1 "System Virtue" released. + +11-30 May 2004: + [Pragma] + - More console splitting , still not finished + - Created the initial hackers guide document (this will be always work in progress) + - Fixed some online doc bugs + - Fixed a bug with popup menu prologues not being saved correctly + - Fixed a SEGV related to focus management + - Fixed a couple of translation related SEGVS + - Preserved UNICODE in the logs by encoding to UTF-8 + (maybe this should be the local 8 bit ? feedback will be needed later) + - Fixed several typos and dead links in the documentation signaled + by Klaus Weidenbach + - Added a couple of window.* module commands/functions + - Unicode fixes related to IrcView tooltips + - Added $msgtype function and fixed the related echo documentation + - Added the export function in the event editor + - Fixed a bug in the popup export function that caused extpopup entries + without icons to be exported as simple popups (thnx again Klaus). + - Added an option to redirect WHOIS replies to the active window (on by default) + - Added the /echoprivmsg command + - Added the "delete file" function to the file transfers window + - Various fixes all around + +10 May 2004: + [Pragma] + - Fixed the problem with tooltips displaying the wrong avatar image + - Started splitting KviConsole in smaller logical classes (irc context, irc connection) + +06 May 2004: + [Trisk] + - Changed parsing for 004 numeric, properly works with hybrid now. + +17 Apr 2004: 3.0.0 "Awakening" released. + +16 Apr 2004: + [Pragma] + - Fixed a bug with creation of KviWindow derived classes: the constructor + of the base class was calling virtual functions from subclasses (it is curious + that this was effectively failing only on Windows and not on Linux). + - Reworked a bit the str module to avoid compiler parameter passing problems + - Fixed a bug with $str.replacenocase + - Fixed a bug that prevented the color option selector buttons from + displaying the proper color + - Miscelaneous fixes for the release + +15 Apr 2004: + [Trisk] + - Miscellaneous minor stuff (set avatars to 0 width/height to disable). + - More reasonable defaults (seriously, the coloured nicks hurt people's + eyes =\ ). The fact that unrecognised commands result in parse errors + confuses new users (and annoys the heck out of me, too). Turned off + message icons too. Rationale is that it will disgust former + epic/BX/irssi/xchat users. + - And, I don't think most new users will use avatars regularly, so turning + the nicklist grid off by default, since it makes the nicklist more + cluttered. + * Forgot to add nick completion suffix. Oh well, the 3.0 series is just + beginning... + - Almost forgot to clean up really bad spelling in tip of the day. >< + +13 Apr 2004: + [Pragma] + - Added the default low-resolution (Minimalist) and high-resolution + (fancy) themes + - Added the selection of the default theme at first setup + - Added one time nickname generation at first startup + - Modified the Identity dialog to handle better the multiple + nickname alternatives. The combobox was not that intuitive + thus added a separate dialog for the alternatives. + - Removed the "Change now" button from the Identity dialog: it never + worked correctly. + - Fixed the "concurrency" crash reported on the mailing list + - Fixed a SEGV related to shared files + - Fixed an infinite loop in the toolbar editor + - Fixed a bug with the Color Selector not displaying the right color on windows + - Adjusted acinclude.m4.in to handle the new icons added by Trisk: still not + installed in the proper locations + - Added a couple of GUI option pages that were really missing (mdi captions + and toolbar applets) + - A couple of new icons added + - Fixed a couple of strange behaviours of the input widget + - Some source code rearrangements all around + - More things that I can't remember :D + +11 Apr 2004: + [Trisk] + - New application icon by Arty2 / Hercules Papatheodorou + , updated icon set. + * Too lazy to get icons installing in proper locations. + +08 Apr 2004: + [Pragma] + - Added the highly requested /exec command in the core + - Also added an example script that runs an interactive telnet + session and sends mail with the use of /exec: powerful :) + - Fixed a script editor highlighting bug + - Fixed another problem with overlapping dns queries... + ... it should have been written this way from the beginning :D + - Miscelaneous changes & fixes all around... + +06 Apr 2004: + [Trisk] + - Fixed null KviWStr problem. + - Fixed /$sw(e) crash. + +04 Apr 2004: + [Trisk] + - Hacked KviWStr to use QTextCodec instead of charset translation tables. =P + *** Chinese, Japanese, Korean seem to work! + - Fixed encoding names. + - Added ISO 8859-9 (Latin-5 Turkish, requested), Big5, GB18030, SJIS, + EUC-KR, TIS-620. + - Added options to not show tooltips in taskbar and userlist. + - Added option to disable taskbar sorting. + +02 Apr 2004: + [Trisk] + - DCC message changes. + - Use proper capitalisation in events, Irc->IRC. + - Hack to allow showing +e (and +I) when used for channel modes (not user + modes). + * Should implement better 005 parsing. + +31 Mar 2004: + [Pragma] + - Added the quit confirmation dialog when there are active connections in the + window being closed + - Added some descriptive messages to the setup dialog + - Fixed a crash related to received CTCP's + - Fixed the theme loading that was not updating all the icons + - Fixed some functionality of the theme selection dialog + - Added some message color presets + - Fixed a crash with overlapping dns queries + - Added updating of the KDE root pixmap when autochange is active + - Added the "execute script" menu entry + - ... + [Trisk] + - Some message changes. + - Added redirect to active window options for services notices, server + notices, broadcast/wallops, and renamed ToConsole options. + - Minor server parser changes. + +28 Mar 2004: + [Pragma] + - Added the default theme (useful to restore the default settings) to the distro + - Some bug-fixes and cleanups in the theme engine + - Added the themes section on www.kvirc.net and placed the first Marble theme by Sbrokka on ftp.kvirc.net + - Adjusted the menubar to dynamically setup the popup menus (it reloads the icons etc..) + - Fixed a crash in ctcp action + - Added the option to flash the KVirc's taskbar entry when new messages arrive in a query and KVIrc is + not the active application. Works only with KDE support and on Windows for now. + - Added the special "all" parameter to $active to return the application active window + - Forced eval to use the calling variable scope: in this way local variables can be passed too + - Fixed a bug in the servers dialog "recent servers" popup: now it finds the correct entry also + when two servers with the same name but different port are present + - Added the exporting of aliases to external files (single aliases and the whole alias set). + - Fixed the popup tester in the popupeditor: now it works again (it was totally disappeared :) + - Misc hacks that I can't remember... + +25 Mar 2004: + [Pragma] + - Code cleanups all around + - Updated various docs for the upcoming release + - Removed the obsoleted _c2q stuff and --with-local-8bit option + - Changed the close/maximize/restore/minimize icons to black ones: they look better + - Added a heap mess windows workaround class + - Re-implemented the shared files editing (still missing some code) + +24 Mar 2004: + [Trisk] + - Various input editor fixes. + - CTCP parser improved. + - Updated default script. + - Options dialog fixes. + +21 Mar 2004: + [Trisk] + - Many, many more options dialog changes. + +20 Mar 2004: + [Pragma] + - Added several window.* functions + - Redirected /whois output to the active window + - Options dialog fixes + - Added scripting toolbar + - Cleaned up some documentation and forced gendoc.pl to ignore the new kvs docs that are not "hardwired" yet + - Added some graphics for the final 3.0.0 release + - Added a couple of keyboard shortcuts (all described in doc_keyboard.html) + +20 Mar 2004: + [Trisk] + - Some parsing of 005/RPL_ISUPPORT added. Uses PREFIX and and CHANTYPES. + +18 Mar 2004: + [Trisk] + - KviUserListView API change: set[beI]Entries -> setMaskEntries(). + - KviUserListView minimum width is 100px (due to continuing annoyance of + mode editor resizing the thing... not a good solution, but whatever). + - Lots of options dialog changes. + - Classic taskbar now limits number of rows (when horizontal). + - KviChannel API change: banMask(), etc. removed in favour of setMask(). + - Mask editor requests new list when opened after a mode change. + * Fixes problem with CR ircd where -b messages may not match bans in list due to stupid inconsistent hostmasking. + +12 Mar 2004: + [Trisk] + - Auto-reconnect attempts are now counted, delay configurable. + * FIXME: Make it possible to stop the reconnect timer before it triggers. + - Several huge if() conditions replaced with switch() statements. + - Various minor issues fixed. + +07 Mar 2004: + [Trisk] + - Improved script editor cursor location tracking and configuration dialog. + - Input widget clean-ups, global input history fixed. + +03 Mar 2004: + [Pragma] + - Some work on the options dialog: moved some options to more appropriate places, + rearranged some options widget orders, fixed descriptions etc.. + - Fix for OnChannelNotice not passing the target argument + - More misc hacks that I can't remember :) + +02 Mar 2004: + [Pragma] + - Added OnQueryWindowRequest to catch and block the query window creation events. + - Added OnQueryTargetAdded + - Corrected a lot of bugs reported on bugtrack.kvirc.omnikron.net + - Corrected the $mask.nick() problem + - Removed the $ic warning when there was no current IRC context + - Moved the server database to unicode + - Misc hacks that I can't remember :D + +28 Feb 2004: + [Pragma] + - Fixed the "keep channels open on kick" crash + - Probably fixed a sort of a race condition based crash between + the socket and the console + - More fiddling with KVS events + +24 Feb 2004: + [Pragma] + - Yet more work on the KVS engine: events this time + - Temporairly removed the "force last server" hack since it was breaking the + servers dialog: one couldn't select a different server to connect to. + This is commented out until we find a more strict activation condition. + - Activated the $sw function, this time for real :) + +20 Feb 2004: + [Trisk] + Added $date function for formatted time strings. + +18 Feb 2004: + [Trisk] + - Added "all" target for $me and $server functions. + - Fixed possible $mask() problem, not sure why Pragma removed '*' from + *user. Behaviour should be consistent with docs now. + - Cleaned up channel prefix and nick mode prefix (considers invalid chars + in nick to be a mode prefix). + * Closes ID 200402112009267112 + * Somebody needs to update the bugtracker... + +14-17 Feb 2004: + [Pragma] + - Rewritten the script editor widget to use QTextEdit. Dropped + the whole internal editor since it was not unicode and simply + too huge for the feature it provided. + - Modularized and cleaned up the localisation of the editor module + - More work on KVS engine, module interface nearly estabilished + - Added support for changing the order of option items in the + options dialog tree display. Most common options should go at the top. + - Random fixes around :) + +14 Feb 2004: + [Trisk] + - Changed 005 numeric parser output a bit, fixes issues with skipping to + last word of messages. + * /me hugs Aeri ;) + - Removed check for KviProperty_FocusOwner. + +09 Feb 2004: + [Juanjo] + - Fixed a miscompilation --without-info-tips + - Added the lag to the irc context indicator tooltip. + - Make the irc context indicator a little bigger (but the correct way + would be to make it resize itself depending on the inside text size). + +06 Feb 2004: + [Pragma] + - More work on the KVS engine + - Added the IrcContextToolbar to the toolbars menu, now it can be hidden + should the TaskBar be there too ? + - Moved the TaskBar to be a toolbar like the other ones (and + thus inherit the toolbars menu on right click etc...) + +05 Feb 2004: + [istari] + - reformating ChangeLog + * please use current schema + * break lines after 80 chars + - intserting ChangeLog into website + +23 Jan 2004: + [Pragma] + - More work on the KVS engine : popups almost ready + - Fixed a regusers bug that didn't allow to register channels with a '@' + character in it + - More windows port: kvilib, kvirc and several modules are already working + - Fixed an expression parser bug related to string/number comparisons + - Added $sw() function for switch handling in aliases + +20 Jan 2004: + [Trisk] + - Dock icon menu bug fixed, new entries added. + * Problem with switching to console on frame window restore still present, + Pragma: Please fix + - Input right-click menu shows shortcut keys. + +19 Jan 2004: + [Trisk] + - Adding multiple servers wtih the same hostname (different port) works. + +17 Jan 2004: + [Trisk] + - Fixed some more encoding issues. + - mkprocinstances.sh doesn't use zsh/bash-specific variable arrays now. + +15 Jan 2004: + [Trisk] + * PragmaOff's been idle for a long time. =\ + - Made logfiles lowercase (helps sorting, if any issues contact me). + - Made channel and query windows's default logfile contain network name + instead of console #... makes more sense. + - Massive server parser changes to ensure text is converted to current + encoding (fixes issues displaying ISO 8859-1 extended ascii (127+) text). + - Changed all %d d %d h %d m %d s to %dd %dh %dm %ds. + +09 Jan 2004: + [Trisk] + - Lots of notify list message changes. + +08 Jan 2004: + [Trisk] + - More widget width problems fixed (presumably). + - WHO reply is more informative now. + - Shortened some taskbar button captions. + - KviConsole::createQuery() tries to prevent duplicate single-target queries. + +06 Jan 2003: + [Pragma] + - More work on the new KVS engine + - Added a -nosplash commandline argument to avoid showing the splash screen + - Reverted the kvi_activitymeter.png icon: the bars should eventually grow + from left to right (in the image) instead of top to bottom. + - Re-added $window to kvi_kvs_corefunctions_sz.cpp : it's the new parser + version and it will replace the old parser's version in the near future. + If you want to test the new parser capabilities then run the commands + by preceding them with a dash: + /- echo "This is the new parser's version of echo" + /- echo $window this is the new parser's version of echo \$window + ... + - Added four ways of painting the user list view grid. It is user selectable + now. + Please tell me which is the best one (to choose the default) + +04 Jan 2004: + [Trisk] + - Removed duplicate of $window from KviKvsCoreFunctions + (kvi_kvs_corefunctions_sz.cpp), original is in the uparser... + - Fixed all the "Jan 2003" dates in the ChangeLog. =) + - Fixed KviStringSelector etc. width problem. + +03 Jan 2004: + [Trisk] + - New images, help browser uses Bluecurve ones (temporarily). + - Taskbar now displays same number of buttons per row. + - Various spacing changes to selectors again. + - Fixes to identity dialog. + * For some reason, the 4th nickname stays blank... not sure why. + - Various QFrame::Panel -> QFrame::StyledPanel. + - Dead channels unset limit and key too. + - Window list shows same name for dead channels and queries. + +02 Jan 2004: + [Pragma] + - Solaris Forte 7 port (still needs hacking to compile and run flawlessly) + - Fix for Solaris dns resolver + - More work on the new KVS engine + - stdarg.h wrapper to accomodate ugly compilers + +01 Jan 2004: + [Trisk] + - Dotted line drawn next to nick/avatar in nicklist instead. + - Changed IP addy editor widget to properly accept '.' and ':'. + - Redid identity config dialog. + +New Years Eve, 2003: + [Trisk] + - Draw separator lines above and below avatar and nick. + - Join channels dialog cleanup. + - Dock widget minor header changes. + +30 Dec 2003: + [Trisk] + - Cleaned up some options dialog stuff. + - Added $version function. + + [Pragma] + - HTTP avatar option support + - More unicode porting all around + - Windows port (kvirc and kvilib projects nearly working) + +29 Dec 2003: + [Trisk] + - Fixed problem with toolbar options dialog command. + - Changed ident, proxy, SSL, and transport options pages to use QGroupBox to + organise options. Maybe add add*SelectorToGroupBox functions later. + +28 Dec 2003: + [Trisk] + - More new toolbar icons, currently using Bluecurve/Crystal mix. + - Recent channel, server, and nickname list removes duplicates even if case + differs. + +27 Dec 2003: + [Trisk] + - Possible fix for crash if m_pConnectionInfo->szNickName is not set when + server disconnects the client (before login). + - Sets AsyncServerCommand on disconnect only if nonexistant; /SERVER works + now (sorry about that, Pragma). + - New Connect/Connecting/Disconnected icons. + - Removed border from channel state and mode icons in user list view and + lined up icons with text when avatar is used. + + [Pragma] + - Added avatar caching + - Reworked the code that remembers the last irc server connected in each + console now it doesn't break the servers dialog. + After the commit I've discovered that it collided with the Trisk's solution: + merged the two solutions in something yet better. + - Obscure internals: reworked KviIrcMask interface a bit... + still needs QString porting + - Written a ChangeLog entry after months of "hidden changes" :D + +Christmas Eve (Western Hemisphere) 2003: + [Trisk] + - Modified window tooltips a bit... + - Unset channel mode for dead channels + - Fixed (hopefully) crash on closing dead channels if disconnected. + - Remove src/kvirc/kvs/moc_kvi_kvs_object.cpp from repository. + * Merry Christmas everyone! =) + +21 Dec 2003: + [Trisk] + - Output correct message when RPL_CHANNELMODEIS is used for user modes. + - URL highlighting matches only if followed by char greater than 46. + - Selected text includes control codes (this is a bit of a hack, gets them + from block attributes). Shift-select strips codes from the selection. + - Consoles remember last nick (correctly now). + - PART, TOPIC, and MODE messages will use current channel if no argument. + KICK will send proper command if no reason specified. + - Non-query notices and privmsgs go to active window if it is a common + channel, else to first common channel. + +16 Dec 2003: + [Trisk] + - GRAMMAR FIXES EVERYWHERE + * Breaks translations! + * Breaks stats program log parsers too (pisg) + - Cleaned up gendocs.pl link names. + - Rearranged menubar to conform to KDE style standard. + - Edit menus and buttons for "Book Title" style, changed some item names. + * PLEASE FELLOW THE KDE STYLE STANDARD, it looks better and is less confusing + - Made KviUIntSelector use QSpinBox instead of QLineEdit (again). + - Added uop/userop (+u) support. Currently uses +h icon, will change later. + - Removed many hardcoded font references. + - Made logfiles rotate at midnight to update date. + * Put timer in KviTimerManager for lack of a better place, somebody check + that this is correct, please... + - Changed tree window list to show server name for consoles of console caption + (too long to view). Set bold font for consoles. + - Fixed channel name showing up twice on part when no message is specified + - Made external messages (whois info, server notices, etc.) go to console by + default, added option ExternalMessagesToActiveWindow to override this. + - Also fixed opnotice (NOTICE @#chan) and made non-query private notices and + privmsg go to common channel. + - Replaced CPPFLAGS in all Makefile.am with AM_CPPFLAGS. + - Made channels missing request mask list when mask list editor is opened. + - Changed KviIrcMask::getHostDomainMaskPtr() to strip only first part of host; + user@x.y.z.tld.cc returns user@*.y.z.tld.cc, not user@*.tld.cc - much + more specific bans, same as getIpDomainMaskLen(). + * This code was already there, but commented out - why? + - Made console windows remember last server and nickname. + +21 Oct 2003: + [Crissi] + - 'Always highlight messages with my nick on them' added: Check + irc::output::highlight tab on options. + - 'Hightlight only at normal msg' added: Check irc::output::highlight + tab on options. + - 'Highlight at highlight msg too' added: Check irc::output::highlight + tab on options. + - 'Highlight at query msg too' added: Check irc::output::highlight + tab on options. + - 'Highlight only at costum alert level reached' added: Check + irc::output::highlight tab on options. + - Translation updated + - 'Old Tools' menu moved into 'Tools' menu. + - convert all source files to unix line end because bug in gettext for + extracting strings from window lineend + + +12 Oct 2003: + [Crissi] + - auto connect of servers after succuessful KVirc startup. Look into advanced + server info, connection tab. + For each server you can specify if should autoconnect. + +11 Oct 2003: + [Crissi] + - Channels can now stored for each server and then auto join them if + successfully connected to the server. Look into advanced server info, + 'After login join channels' tab. Simply check the channels (from history) + you want to join. Also you can add a new channel (current bug: after + adding close/reopen the dialog for showing new channel in list). + - Minimize console after successful login. Look into Preferences - Options - + Connection. + +12 Aug 2003: + [Crissi] + - 'Minimize all windows' and 'Restore all windows' added. Check Menu - + Window and window action toolbar. + +01 Aug 2003: + [Juanjo] + - I'm back, ahhh nothing like vacations to do some free software ;) + - The channel completion will also complete on the list of recent channels. + - New server completion, if the first four letters of something written on + the input are "irc." it will try to complete on the list of recent servers. + +18 Apr 2003: + [Crissi] + - exec module added. Check kvirccvs/modules/exec/README for more info. + +26 Mar 2003: + [Crissi] + - GUI option 'Use taskbar activity meter' added. + - GUI option 'Disable ban list request on join' added. + - GUI option 'Disable ban exception list request on join' added. + - GUI option 'Disable invite list request on join' added. + - GUI option 'Use taskbar activity meter' added. + - Translation extract script fixed + - Translations and translation template updated. + - Some comments in kvi_options.h added. + +26 Mar 2003: + [Pragma] + - Option 'Use taskbar activity meter' added. + +28 Feb 2003: + [Crissi] + - The width of the taskbar entries is now custoumizable. + - GUI option 'Minimal width of taskbar buttons' added. + +25 Feb 2003: + [Istari] + - Moved to the new CVS machine + +25 Feb 2003: + [Crissi] + - GUI options for symbols on taskbar and disabling global who added. + - Try to show emoticons with start not with : correctly (not from me...)... + tell me if you got problems with this... + +25 Feb 2003: + [Pragma] + - Option for disabling icons in taskbar added. + +21 Feb 2003: + [Crissi] + - Fixed text on first setup page, Translation possibility for buttons in + wizard added. + +20 Feb 2003: + [Pragma] + - Auto-resume transfers when auto-accepted (also GUI option) added. + +19 Feb 2003: + [Crissi] + - Password field for server shows now only stars instead not plain password. + +18 Feb 2003: + [Crissi] + - Size of toolbar icon fixed. Right size s now selected if toolbar size if + changed. + +18 Feb 2003: + [Pragma] + - Support for broken filename RESUME requests (mIrc's file.ext) added. + +15 Feb 2003: + [Crissi] + - $mp3player.getmp3tag_album added => get the album + +12 Feb 2003: + [Crissi] + - The mp3player module now supports reading of mp3 tags. + - New commands are: + - $mp3player.getmp3tag_artist => get the artist + - $mp3player.getmp3tag_comment => get the comment + - $mp3player.getmp3tag_copright => get the copyright + - $mp3player.getmp3tag_crc =) get the crc + - $mp3player.getmp3tag_date => get the year + - $mp3player.getmp3tag_emphasis => get the emphasis + - $mp3player.getmp3tag_genre => get the genre + - $mp3player.getmp3tag_layer => get the MPEG layer + - $mp3player.getmp3tag_original => get the orginal flag + - $mp3player.getmp3tag_title => get the title + - $mp3player.getmp3tag_tracknumber => get the track number + - $mp3player.getmp3tag_version => get MPEG version + - A example script was added (kvirccvs/kvirc/doc/scriptexamples/mp3info.kvs) + +4 November 2002: + [Juanjo] + - Added widgets to the identity an server dialogs to set a default user mode + after a conexion to the server. + +24 Oct 2002: + [Juanjo] + - Reworked a little the Tools menu. + - Spanish translation updates (only 1000 translations to go, hehe). + +19 Oct 2002: + [Juanjo] + - Added the alias 'lag' to the default script (it just returns the lag + using $lag.lag()). + - Added the event 'OnLagCheck' that get triggered every time there is a + new lag data. This should help scripters to write their own lagmeters + without having to poll KVIrc. + - Added an option to display the lag on the IRC context indicator, making + all those changes actually useful for the final user :) + +18 Oct 2002: + [Juanjo] + - Added a new (and very simple) Lagmeter (see the new 'lag' module + commands and functions), the 'Lag Options' dialog in the options/irc + window and the 'OnLagAlarmTimeUp' and 'OnLagAlarmTimeDown' events. I'll + add an applet displaying the lag to the lag module as soon as I figure + how to do it :) + - Added the OnPong event. + - Fixed bug 200210130200522026 + + +10 Oct 2002: + [Juanjo] + - I'm back, prepare your debuggers + - Added a 'Ignore' menu to the userlist users menu. + - New feature: User highlights (argh, I hate that word). Just update your + default.kvs and right-click on a user to see how it works. Very + usefull on very crowded channels with lots of parallel conversations + running and you trying to keep track of one (hello #debian). Also + added the pertinent commands on the module tmphighlight. + - The 'clear' command now also clears the message view on channels. + +06-24 Jun 2002: + [Pragma] + - Pre-release fixes all around + - SSL stuff.. + - About dialog + - Fixes for KviIrcView + - Windows porting + - uh... I forgot all the things I did :D + +29 May - 06 Jun 2002: + [Pragma] + - More SSL support + - A lot of bugfixes (see bugtrack.kvirc.omnikron.net) + - Arrays support in the whole user parser (uh...this was huge , but + necessary) a huge set of functions has been moved to the new array + interface WARNING: the dictionaries have a new syntax now! %dict{key} + %something[id] is now reserved to arrays (with numeric id).[br] + - FOR command added + - Updated all the example scripts to support the new syntax + +23-28 May 2002: + [Pragma] + - Preliminary SSL support (try /server -s) + - Fix for the messed default.kvs (dialog problem) + - A lot of mem-leaks catched with valgdind + - Various fixes + +22 May 2002: + [Pragma] + - KDE Terminal window fix + - Some new icons + +21 May 2002: + [Juanjo] + - Using Pragma's support for text icons, added the option to substitute + some icons (currently ':)', ':D', ':-)', ':-D' and ':-O') in the irc view + (Options -> Look & Feel -> Irc View). Still not finished. + +18-21 May 2002: + [Pragma] + - More fixes for windoze + - Some reguser hacks + - Command, channel, function and directory completion in the input widget + - Various thingies all around + - CTCP Page support (partial for now , need some more options) + +7-17 May 2002: + [Pragma] + - Tons of fixes for windoze + - More modules ported to windoze (snd, dockwidget) + - Text icons initial implementation (try CTRL+I and have fun :) + - On*Created and OnWindowActivated are now called in the correct order + - Various thingies all around + +6 May 2002: + [Juanjo] + - spaste module completed (spaste.setdelay,spaste.list,spaste.stop,etc) + - Workaround for the tooltips-following-desktops problem (close tooltips + on input widget keyevent). + +1-6 May 2002: + [Pragma] + - Fixes for Solaris compilation: thanks to Kenneth Larea for the hints :) + - Random fixes for make dist + - Support for anti-flood on CTCP DCC * + - Failed DCC Handshakes are now optionally reported to the sender with a + CTCP ERRMSG. The options in the dialog are still missing + - Fixes for the "bad console repainting" problem + - es.po charset fixed + - Added sr.po (thnx Prethorian :) + - Added auto-windows-tiling feature to the MDI manager + - Other cleanups here and there... + +27 Apr 2002: + [Juanjo] + - New module 'spaste' to send text slowly to a conversation window. + - New option for the input widget right button men in conversation + windows: 'Paste (slowly)'. + +25 Apr 2002: + [Juanjo] + - Now the log viewer can be also a MDI window + - Log viewer listview icons + +21 Apr 2002: + [Juanjo] + - snd module + +1-12 Apr 2002: + [Pragma] + - Minor fixes around + - Fix for the KDE style toolbars + - Fixes for the liquid KDE theme (transparency). + not everything works... some label stuff must be fixed in the theme + engine... + - Query user list view invisible by default (also saved in the window state) + - Same for the channel double view + - Removed /tbutton and /wbutton and added generic /button and /buttonctl + instead updated the example scripts accordingly + - Merged the libtool update patch and added more fixes for this + - Fixes for --with-local-8bit compilation + - Added kvi_list.h and the compatibility KviPtrList defines to work both + with qt2 and qt3 + +31 Mar 2002: + [Pragma] + - Mini-Fixes for the snd module (threading arguments) for gcc 3.0.0 + - Mini-fix for libaudiofile check in configure + - More work on window position saving + - More work on the offer list window stuff. + - General fixes for gcc 3.0.0 (can anybody test it ?) + +30 Mar 2002: + [Pragma] + - Added the beginning of the offer list window + - Preliminary window properties saving... now handling defaults too + - Minor utility-functions in the window popup menus + - Preliminary rearrangements of code for KviConsole.... the header is + becoming a mess need to order the code syntactically and then maybe extract + some code to be put in external classes. KviIrcConnection could be an idea. + - Beginning of code for the toolbar button management... need a module ? + +29 Mar 2002: + [Pragma] + - Will I ever start to use this ChangeLog ? :D + +7 Mar 2002: + [Juanjo] + - kvisounds script, the sound on OnMeNamed event is usefull, really ;) + +28 Feb 2002: + [Juanjo] + - Pragma branded str module optimizations, docs for all the implemented + functions. + +26 Feb 2002: + [Juanjo] + - More str functions, removed strFindFirst for str.findfirst and updated + the scripts using it (UPDATE YOUR SCRIPTS!!!) + +21 Feb 2002: + [Juanjo] + - More str functions (still no docs) + +19 Feb 2002: + [Juanjo] + - Some new functions in the str module + +13 Feb 2002: + [Juanjo] + - /IGNORE && /UNIGNORE support + BTW the other guys are also making things, they just don't update the + Changelog :P + +10 Feb 2002: + [Juanjo] + - $isOp() $isMeVoice() $isVoice() $isMeHalfOp() and $isHalfOp() added + +9 Feb 2002: + [Juanjo] + - New log viewer module (logview.open) + - Fix for the editor not saving his options + +4 Feb 2002: + [Juanjo] + - Fixes so pragma could add --with-qt-embedded to compile againt Qt Embedded + (wow!) + - Get rid of the 'commit' and 'discard' buttons on the user editor; now + all changes are synced with the local db. + +25 Jan 2002: + [Juanjo] + - New notify list editor + +21 Jan 2002: + [Juanjo] + - New identity button on the toolbar, posibility to change nick from the + identity dialog if we're connected and es.po work + +20 Jan 2002: + [Juanjo] + - Added the config widget for the create query on server notice option. + - Events and events doc: OnDCCChatConnected, OnDCCChatMessage, + OnDCCSendTransferComplete, OnDCCGetTransferComplete, OnCTCPFlood, + OnServerNotice, OnChannelNotice... + +19 Jan 2002: + [Juanjo] + - Added a 'close after join' checkbox to the join channels dialog & fixes. + +18 Jan 2002: + [Juanjo] + - Added OnAction event + - Fixes + +17 Jan 2002: + [balboy] + - updated po file + - anti idle script changed... but pragma's syntax he gave me is not working + yet :p + + [Juanjo, which is alive] + - Added the 'recent servers' Qlist to the servers dialog + - Added the 'Show after connecting to server' checkbox to the channelsjoin + widget + - Servers widget bug fixed + - Default nick link actions & men + - Config widget for the tree-taskbar minimum? width option + +07 Jan 2002: + [balboy] + - minor changes to the default script + +05 Jan 2002: + [balboy] + - anti idle script added + - dcc bug alias fixed + +22 Nov 2001: + [Juanjo] + - Added a bunch of events (On[me]ban/deban, On[me]op/deop, + On[me]voice/devoice, OnChannelMessage, OnQueryMessage, OnLimitSet/Unset, + OnKeySet/Unset, OnInvite, On[me]BanException, On[me]BanExceptionRemove, + etc). + +18 Nov 2001: + [Juanjo] + - Added a 'Connect to servers' dialog (serversjoin.open) -> update: + serversconnec.open + - Added scripted buttons for the channels and servers dialogs. + - Added $anyConsoleConnected() function. + - Fixes + +12 Nov 2001: + [YaP] + - Added DCC user defined port range + +10 Nov 2001: + [Juanjo] + - Now it has all the functionality ;) + + [YaP] + - IPv6 porting from Win XP to Win 2000 (Preprocessor definition: WIN2K) + +8 Nov 2001: + [Juanjo] + - Added a 'Join Channels' widget. It still don't have all the + funcionality. + +4 Nov 2001: + [Juanjo] + - Improved away system + - Option to always highlight own nick on messages + - Made the splash screen a managed window + - Added an 'apply' button to the general options dialog + +24 Sep 2001: + [Kristoff] + - Made Dcc Voice completely configurable, options dialog also added + - Volume slider for dcc voice added + - Fixed a bug in alt+arrows switching (sigsegv when window had no context + assigned) + +23 Sep 2001: + [Kristoff] + - Switching between windows using ctrl/alt + arrows + +13 Sep 2001: + [Balboy] + - some more changes to the defscript + +12 Sep 2001: + [Kristoff] + - Text selected in Help Browser window is now automagically copied into the + clipboard and can be pasted (Balboy's request). + - Pressing Enter in Help Browser's lineedit starts search. When the search + starts the cursor changes into waitCursor (cosmetical improvement :)) + - 22 Mar - 12 Sep... man... + - biff module added - not functional at all - adding some code not to mess + with makefiles anymore + +12 Sep 2001: + [Balboy] + - updated the changelog :p + - added some functions to the defscript + +30 Mar 2001: + [Balboy] + - quit function added + +22 Mar 2001: + [Kristoff] + - combobox object added + +17 Mar 2001: + [Pragma]: + - A lot of unreported changes again + - Added anti-aliased font support + +17 Feb 2001: + [Pragma] + - A lot of changes: removed the libkvigui, it was rather useless, and it is + better to have all the GUI code into the core executable...(for many + reasons). + - Added the first "shy" icq module. + +15 Feb 2001: + [Kristoff] + - Added urllabel object + Note: I'm proud to be the first person, that uses this file in the + year 2001 :-) + +05 Dec 2000: + [Number1] + - Cleaned up the about dialog, added some new entries and fixed the + background bug. + Note: Could people start using this log again please? ;) + +12 Sep 2000: + [Kristoff] + - started this ChangeLog (to avoid confusion: newset entries go above + this one ;)) + - added widget object diff --git a/FAQ b/FAQ new file mode 100644 index 0000000..c9355db --- /dev/null +++ b/FAQ @@ -0,0 +1,712 @@ +1. PROJECT RELATED QUESTIONS + +1.1 What is KVIrc ? What the "KVIrc" name stands for ? +1.2 Why KVIrc is not totally integrated in KDE ? + + +2. COMPILATION + +2.1 I can't compile kvirc from cvs, what's wrong? +2.2 Internal Compiler Errors ? +2.3 On Mandrake 10.0 (or other) KVIrc fails to start + saying that it can't find libkvisetup.so. +2.4 I got 'amarokInterface.cpp:29:31: amarokInterface.moc: No such file or directory'. Whats going wrong? +2.5 Configure complains about a missing libdl.so but I seem to have it + + +3. INSTALLATION + +3.1 There is a problem during package installation/creation + file /usr/share/services/irc.protocol from install + kvirc-version.package conflicts with file from package xxx + + +4. IRC + +4.1 How do i join a channel ? +4.2 How do i autojoin channels ? +4.3 How do I enable automatic NickServ identification ? +4.4 I can't see my national characters, what's wrong ? +4.5 I can't connect to an IPV6 server, what's wrong ? +4.6 /me doesn't support the '$' character, what's wrong ? +4.7 /me doesn't support the '"' (double quote) character, what's wrong ? +4.8 /me can't contain the ';' character, what's wrong ? +4.9 I try to do a /whois on nick blah\ but i get the reply for blah (without the slash) +4.10 What is AVATAR protocol ? Is there any documentation about it ? +4.11 The log files seem to be saved randomly, when I open a log + I can see only a part of the text that actually should be there +4.12 The DCC transfers seem to be interrupted after the first few bytes: + KVIrc says that the remote end has closed the connection. + + +5. ADVANCED IRC FEATURES + +5.1 How do I connect to an SSL-enabled IRC server ? +5.2 How do I use DCC over SSL ? +5.3 Do I need a SSL certificate ? +5.4 How do I create a SSL certificate ? +5.5 I can't get KVIrc to use my SSL certificate in a DCC, what's wrong ? +5.6 KVIrc crashes when a certificate is used under Windows, what's wrong ? +5.7 How do I enable mircryption (encryption in general) for a specific channel ? +5.8 How do I execute a process and send its output to a channel ? +5.9 How do I keep channels and queries open after a disconnect ? +5.10 I have an unreliable ISP connection but KVIrc takes a really long + time to detect a disconnection and reconnect. +5.11 I'm in a LAN and KVIrc uses a wrong IP address in dcc transfers + +6. APPAREANCE + +6.1 On Windows KVIrc seems to slow-down sometimes, what's wrong ? +6.2 I don't see the channel popup menus anymore, what's wrong ? +6.3 Does KVIrc support Themes? +6.4 I hate all that colors, what can I do about it ? +6.5 On Windows, how do I use firefox/opera/any_other_browser to open links instead of explorer ? + + +7. CRASHES + +7.1 KVIrc crashes when the multiline text input is opened (obsolete) +7.2 What the heck is a gdb stack trace and how do I get it ? +7.3 KVIrc hangs up, but doesn't crash. How do i report debug informations ? +7.4 KVIrc exits by itself or simply "disappears" without any apparent reason. +7.5 KVIrc dies randomly and "Alarm Clock" is printed in the console +7.6 KVIrc dies when using alias(identify){ identify password; } + +-------------------------------------------------------------------------------- +1. PROJECT RELATED QUESTIONS +-------------------------------------------------------------------------------- + + +1.1 What is KVIrc ? + + KVIrc is a cross-platform Internet Relay Chat client. + The name stands for K Visual Internet Relay Chat client. + The K prefix comes from the old times, when KVIrc was bound to the + KDE project and depended on the KDE libraries to run. Actually this + is not true anymore since KVIrc depends only on the Qt library from + TrollTech and runs also on platforms where KDE can't run. + + +1.2 Why KVIrc is not totally integrated in KDE ? + + First of all read the answer for question 1.1. + We could provide a more complete integration by the means of conditional + compilation but since it would require additional efforts to synchronize + the KVIrc sources with the KDE library changes we choose not to do it. + If you wish to contribute some code that better integrates KVIrc with + KDE you're welcome to do so: we will happily accept your patches as long + as you promise to mantain them :) + + +-------------------------------------------------------------------------------- +2. COMPILATION +-------------------------------------------------------------------------------- + +2.1 I can't compile kvirc from svn, what's wrong? + + Have you checked the requirements ? + *Carefully* read the INSTALL file that comes with the distribution: + it contains the informations to solve 95% of the problems that + you may encounter. You may also try digging in our mailing list + archive: many problems have been solved there. + If you still can't get it to work please either subscribe to the KVIrc + mailing list (see www.kvirc.net) and report the problem there or join #kvirc + on IRCNet and ask the channel members for a hint. + + +2.2 Internal Compiler Errors ? + + Compile errors like this: + In file [somefile]:[someline] internal error: + Segmentation fault + Please submit a full bug report, + with preprocessed source if appropriate. + See for instructions. + + This error can have multiple reasons. + 1) A compiler bug: my GCC 3.2 20020903 (default on RH 8.0) spits + out 5-6 of them daily. Usually it is solved by simply restarting the "make" command. + If it doesn't go away or if it gets really frequent and annoying you might try to upgrade the compiler. + 2) A memory corruption: this is really frequent: one of your memory banks is spitting random bytes + sometimes. Usually the problems come out under heavy system load (kernel, KDE or kvirc compilation for example). + You can check for memory corruption by trying different RAM modules (or removing them one at a time to discover + the broken bank). You can also try a program called memtest and a kernel + patch that can force the broken memory banks to be ignored by the kernel (allocated permanently to a dummy kernel task). + These tools can be found by digging the web with your favorite search engine. + 3) A deeper hardware problem: if upgrading the compiler and changing memory banks doesn't help then + it *might* be a deeper hardware problem: bus errors , faulty IDE (or SCSI) controller or even buggy CPU... + Well.... + + +2.3 On Mandrake 10.0 (or other) KVIrc fails to start + saying that it can't find libkvisetup.so. + + Mandrake 10.0 default libtool package is broken. Either upgrade + the libtool package or try to run ./autogen.sh --bundled-libtool + and then recompile (./configure, make, make install). + This *might* apply to other systems too. + + +2.4 I got 'amarokInterface.cpp:29:31: amarokInterface.moc: No such file or directory'. Whats going wrong? + + You have to install qt3 devel tools which include uic and moc. If installed, be sure that uic and moc are in PATH. + + +2.5 Configure complains about a missing libdl.so but I seem to have it + + The most common causes are two: + + 1) You have libdl.so.X (where X is usually a number or a set of numbers) but not libdl.so + + You need to do a symbolic link from libdl.so.X to libdl.so. You do it by entering the directory + where libdl.so.X is and issuing a ln -s command, for example: + + # cd /lib + # ls libdl* + # ln -s libdl.so.2 libdl.so + + Then try to ./configure again + + 2) You don't have a c++ compiler installed + + The libdl test is the first ./configure test made with a c++ compiler. + The confirmation for this error can be found in the config.log file + where you can find lines similar to the following: + + configure:21637: g++ -o conftest conftest.cc -rdynamic -ldl >&5 + ./configure: line 1: g++: command not found + configure:21643: $? = 127 + configure: failed program was: + ... + + Your distribution probably ships the c++ frontend to gcc in a package + separated from gcc itself. The package might be also named g++. + Look it up on your installation CD and install it, then ./configure again. + +------------------------------------------------------------------------------- +3. INSTALLATION +------------------------------------------------------------------------------- + +3.1 There is a problem during package installation/creation + file /usr/share/services/irc.protocol from install + kvirc-version.package conflicts with file from package xxx + + This is a known issue with all types of packages that handle + file conflicts. KVIrc installs the irc protocol handler for KDE + and the same is done by ksirc and kopete (and maybe others). + There is no particular reason for KVIrc to fix it in the core + distribution (and there is also no simple way to do it). + Either the package maker must exclude the irc.protocol + file from installation or mark it as "optional" in some way or the + users must use some sort of "force" flag during the installation. + + +------------------------------------------------------------------------------- +4. IRC +------------------------------------------------------------------------------- + +4.1 How do i join a channel ? + + Type "/join #channelname" + + +4.2 How do i autojoin channels? + + There are many ways to do it. + For example: + Select "Scripting/Events" from the KVIrc menu. + Lookup the "OnIrc" entry in the left pane of the window that pops up. + Right-click on that entry and select "Add handler". + A "default" handler will be created. In the right pane write: + join #kvirc + join #kde-users + join #somechannel + .... + Now click OK and you're done: you have just created a handler for an event. + Reconnect to a server and KVIrc will autojoin the channels that you have selected. + Another option (nicer, if you use several servers) is to go to the servers options + page and click the button labeled 'Advanced' on the entry for the single server. + There is a server-specific "On connect execute..." event. + + +4.3 How do I enable automatic NickServ identification ? + + KVIrc supports two kind of NickServ identification rules: per-network and global. + The per-network rules can be accessed from the server options page. + You need to select a network in the list view (not a server!) and then click + "Advanced...". In the dialog that appears there is a NickServ tab + on that you can add your identification rules. Adding a rule + should be straightforward (if you stop the mouse over an item you will likely get a small + tool tip with the explaination). Each rule is composed of: + - the nickname that is being identified: the rule will be applied only + when your current nickname corresponds to this one. + - a nick server user mask that must be matched by the NickServ user + in order for him to be recognized as the real NickServ asking for + identification. You will probably use something like NickServ!service@* + - a message regular expression that must be matched by the message + that the NickServ sends when requesting the identification. + You will probably use something like "If this is your nick, + identify yourself with /ns IDENTIFY password" + - an identification command that will be executed when all the rules + above match. You will probably use something like "ns IDENTIFY yourpassword" + The global rules can be created in the IRC::NickServ page of the options dialog + (accessible from the Settings/Configure KVIrc... menu). The main difference + is that each rule has a server mask that must be matched by the current + server name for the rule to be applied. + KVIrc first looks in the per-network rules and if none matches it looks + in the global rules. + + +4.4 I can't see my national characters, what's wrong ? + + There are several ways to fix your national characters display. + General encoding: + Open the options dialog and go to the "Encoding" page. + You can set explicitly the encoding to be used for the whole application. + If you choose "Use Language Encoding" KVIrc will try to guess the + encoding from your system settings. If this doesn't work then the reasons + may be: + - Your system settings are wrong + You need to fix them + - Your server applies some specific encoding to the data + See "Server encoding" + - You're chatting with people that have different system settings + See "Channel & Query encoding" + Server encoding + Besides the general encoding you can set one encoding per server. + This is done in the server options dialog (Click Advanced...). + The encoding will be applied to all the text that comes from + and goes to the server. If you choose "Use system encoding" + then the server will inherit the "General encoding" value above. + If this doesn't work then you have either set it incorrectly or + you are chatting with people that use different encodings. + In this case see "Channel & Query encoding" + The server encoding is used also to decode nicknames and + channel names on servers that support it. + Channel & Query encoding + Besides the general and server encoding you can set also per-window + encoding in channels and queries. This encoding will be applied + ONLY to the text sent to or received from that channel or query. + This feature is useful when chatting over a non unicode aware + IRC server (nearly all at the time of writing) with people + that have settings different than your general defaults or + the server default. + + Keep in mind that IRC has a MAJOR problem with character encoding + and in fact the formal definition of the protocol requires it + to be only 7bit safe. This means that on some servers you may + see your national characters eaten by the IRC network and there + is almost nothing you can do about that... + + UTF-8 is the best encoding we can get on IRC. Try to convince + other people to use it :) + + +4.5 I can't connect to an IPV6 server, what's wrong ? + + First of all make sure that your IPV6 stack is setup correctly. + Can you ping6 other IPV6 other machines ? + + # ping6 www.6bone.net + + Is the IPV6 support enabled in your kvirc executable ? + To find it out , try + + /echo $features + + in the KVIrc commandline. You should get a comma separated list of + features compiled in the executable. If the list contains "IPv6" then + the support is compiled in, otherwise you must check your compilation + stage to guess what went wrong. + To connect to an IPV6 server you can use /server -i + If you can ping other IPV6 machines, the IPv6 support is compiled in your + executable and you still can't connect to an *existing* IPv6 server then + you may have found a bug :) Report it. + + +4.6 /me doesn't support the '$' character, what's wrong ? + + This is NOT a bug : this is a feature : kvirc supports (and substitutes!) variables in all the commands. + You can escape your $ sign by using the backslash character: /me has gained \$100 will work correctly + + +4.7 /me doesn't support the '"' (double quote) character, what's wrong ? + + This is NOT a bug : this is a feature : a string enclosed in double quotes will have its whitespace preserved + while the other strings will have the whitespace simplified. This is valid for ANY command. + You can escape your " sign by using the backslash character: /me feels a bit \"foo\" will work correctly + + +4.8 /me can't contain the ';' character, what's wrong ? + + This is NOT a bug : this is a feature : kvirc supports multiple commands on a single line and uses ';' as a command + separator. You can escape your ';' sign by using the backslash character: /me is hungry \;) will work correctly. + + +4.9 I try to do a /whois on nick blah\ but i get the reply for blah (without the slash) + + In KVIrc /whois is a scripting command and the nickname is a command parameter. + In scripting commands the backslash is a special character with several "escape" + meanings. To include a literal backslash inside a parameter you MUST double it, + thus the correct command to issue is /whois blah\\ + + +4.10 What is AVATAR protocol? Is there any documentation about it ? + + AVATAR is a simple CTCP based protocol that allows associating images (avatars) + to IRC users. The protocol definition is simple: + + - CTCP AVATAR QUERY: + : PRIVMSG :<0x01>AVATAR<0x01> + Queries the avatar of the . + - CTCP AVATAR REPLY: + : NOTICE :<0x01>AVATAR <0x01> + Asserts that the user's avatar is located at + that usually will be something like http://server.domain.top/avatarimage.jpg. + + KVIrc supports also DCC based avatars that are simply "offered" to the + remote users. In this case the does not contain the http:// + prefix but is a simple file name. The remote users request the avatars + by issuing a DCC GET command. This is an useful but secondary extension + and can be ignored by simple implementations. If you need more informations + about this method please write to pragma at kvirc dot net. + + +4.11 The log files seem to be saved randomly, when I open a log + I can see only a part of the text that actually should be there + + KVIrc does not explicitly flush the log files while writing them. The OS + (or the underlying C library) does the flush operation when necessary. + This means that blocks of the log file will be added to the file on disk + only once in a while. If you really need to see the logs in real time + then you can explicitly flush the log files by scripting. + Just add a script like this to your OnKVIrcStartup event: + + timer(flushlogfiles,30000) + { + foreach(%x,$window.list(all,any)) + { + if($log.file(%x)) + { + echo -w=%x "Flushing log file..."; + log.flush -w=%x; + } + } + } + + The script above will flush all the log files every 30 seconds. You may + remove the echo statement if you're annoyed by the output :) + + +4.12 The DCC transfers seem to be interrupted after the first few bytes: + KVIrc says that the remote end has closed the connection. + + Make sure that you don't have activated the "Send ACK for byte 0" + option in "Options->DCC->File Transfer->Advanced". + This option should be used ONLY IF you have problems without. + + + + +------------------------------------------------------------------------------- +5. ADVANCED IRC FEATURES +------------------------------------------------------------------------------- + + +5.1 How do I connect to an SSL-enabled IRC server ? + + Use /server -s + It should work also over IPV6. + If it doesn't work then your executable might have no SSL support compiled in. + To find it out type + + /echo $features + + in the KVIrc commandline. If "SSL" is not in the list then you must go back + to the compilation phase and see what went wrong. + + +5.1 How do I use DCC over SSL ? + + /dcc.chat -s should work + + +5.3 Do I need a SSL certificate ? + + No you shouldn't need it, but you can use it if you want. + + +5.4 How do I create a SSL certificate ? + + A test self-signed certificate can be created by using the CA.pl perl script included + in the OpenSSL distribution. It will be something like CA.pl -newcert + + +5.5 I can't get KVIrc to use my SSL certificate in a DCC, what's wrong ? + + The SSL protocol doesn't require the "client" to send the certificate: it is + sent only if the "server side" requests it (it is not the KVIrc case). + The server side may have a certificate and you can set it in the SSL options page. + If your Private Key is stored in the certificate file pass the same filename + to both Certificate and PrivateKey option. + Remember to set the password if needed. + + +5.6 KVIrc crashes when a certificate is used under Windows, what's wrong ? + + This is probably a bug of the SSL dll shipped with the windows version of KVIrc. + You might try with a different version of this dll. + + +5.7 Can I encrypt my messages? +(or: How do I enable mircryption (encryption in general) for a specific channel?) + + KVIrc supports encryption for channels, queries and dcc chats by the means + of text transformation engines. You can access the list of the engines + by clicking the button with the yellow lock in the upper right corner + of the window. In the pane that will appear select "use text transformation" + and then choose one of the available engines. + The Mircryption engine is an implementation of the mircryption protocol and + supports both ECB and CBC mode. There is also a wide variety of Rijndael based encryption + engies as well as some funky other text transform tricks. + Most of the engines will need a pair of keys to encrypt and decrypt text + and in most cases you will use the same key for both encrypting and + decrypting. In the particular case of Mircryption you can enable + CBC mode by prefixing your key(s) with the "cbc:" string. + Once you have entered the keys just click on OK and start "talking" in the + window. Any encrypted text will have a "lock" overlay in his icon. + If you want to avoid encrypting a particular text line (maybe because + you want to allow everyone on a channel to read it) you can start + the line with a CTRL+P character. + + +5.8 How do I execute a process and send its output to a channel ? + + The straight way to do this is + + /exec("your command here"){ say $1; } + + Since it is not too much "user friendly", you can alias it in + the following way: + + alias(runandsay) + { + exec($0-){ say $1; } + } + + Then you would simply run + + /runandsay cat /proc/cpuinfo + + in the channel window you want the output sent to. + + Keep in mind that this is a "brute" approach and I'm sure that after + reading some documentation (start from /help exec) you will be able to + find more elaborate and nice ways to send a process output to a channel/query. + + +5.9 How do I keep channels and queries open after a disconnect ? + + KVIrc can keep your channels and queries open when the connection terminates + unexpectedly. This will probably make sense only if you plan to + reconnect to the same server or at least the same network (either manually + or automatically). + + An "unexpected disconnect" is a connection termination not explicitly caused by + the KVIrc user. This means that the connection is interrupted, either + by the networking stack or by the remote server, without the user + having sent a QUIT message (by the means of the /quit command or by pressing + the "disconnect" button in the toolbar). + + All this because the normal behaviour of a /QUIT command is, yes, to quit + your current connection without leaving traces of it. + + To keep the channels and queries open you just need to select the + relative options in the "Connection" page of the options dialog + (on unexpected disconnect: "Keep channels open" an/or "Keep queries open"). + + Then you might also select "Automatically reconnect", "Rejoin channels + after reconnect" and "Reopen queries after reconnect" to bring your + "dead windows" to life again :) + + Finally, you can simulate an "unexpected disconnection" by using the -u switch + of the /quit command. This might be useful when you want to explicitly + quit your connection while leaving the channels and queries open... maybe + because you need to renew the connection to your ISP before reconnecting ;) + + +5.10 I have an unreliable ISP connection but KVIrc takes a really long + time to detect a disconnection and reconnect. + + KVIrc doesn't detect itself that the connection has dropped until your + kernel explicitly times out. KVIrc measures lag, instead, that will + probably grow up a lot when the connection has dropped. + You can write a handler for the OnLagCheck event that will detect + the lag growing over a certain threshold and reconnect. + This involves opening the event editor, selecting OnLagCheck + and choosing "Add handler" from the right mouse menu. + In the handler write: + + if($1 > 30000){ quit -f -u; } + + 30000 is just a sample threshold (it means 30000 milliseconds!), replace + it with a value of your choice. + quit -f -u will close the current connection immediately (-f = force) + and will simulate an "unexpected disconnection" condition (-u = unexpected). + If you then enable automatic reconnection (see answer for question 5.9) + in the options dialog, KVIrc will automatically reconnect and rejoin channels. + + +5.11 I'm in a LAN and KVIrc uses a wrong IP address in dcc transfers + + KVIrc supports a couple of methods for guessing the right IP address for + DCC transfers: you only have to guide it a bit :) + + The first thing to try is "Guess address from IRC when unroutable" (Options->DCC). + This will perform a lookup on your own IRC mask once you connect + to an IRC server and use the address as source in DCC transfers. + (You need to reconnect to the server to make this option work!) + This trick will fail when your hostmask is cloaked (mode +x on recent IRC servers): + KVIrc will tell you that it couldn't look up the hostname and give up. + + In this case you might try to set a fixed address to be sent as source + in the DCC transfers: you just need to fill in the *IP address* of your + router in the option field. This field doesn't support hostname lookups + and it won't update automatically when you router's IP changes. + However, if you router's IP has a dns entry, you can ask KVIrc to fill + this field with a simple script to be performed at every connection. + + event(OnIRCConnectionEstabilished,updatedccsource) + { + ahost(yourrouterhostname.dyndns.org) + { + option boolDCCSendFakeAddressByDefault 1 + if($1)option stringDefaultDCCFakeAddress $2 + else echo "Couldn't look up the router's hostname" + } + } + + When transferring files to other KVIrc clients you may also try the + DCC RSEND protocol instead of DCC SEND. It will ask the remote end + to listen instead. + +------------------------------------------------------------------------------- +6. APPAREANCE +------------------------------------------------------------------------------- + +6.1 On Windows KVIrc seems to slow-down sometimes, what's wrong ? + + This is usually caused by the heavy graphics: try removing some graphic effects like the + pseudo-transparency. I have experimented that it happens almost always on 32-bit displays. + Switching to 16 or 24 bits may also help. + + +6.2 I don't see the channel popup menus anymore, what's wrong ? + + If something went wrong with KVIrc settings (a crash when the script settings + were saved ?) or if you have messed with the scripting options and you + want to get back the original behaviour (default script) you can choose + "Scripting/Restore default script" from the KVIrc menu. + (WARNING: It will erase any script modification you have made!) + Update: starting with the cvs of 2005.01.17, KVIrc should be able to + detect such situations and automatically suggest the re-installation of the + default script. + +6.3 Does KVIrc support Themes? + + Yes, KVIrc now has introduced a Theme Manager. You can find it in the Option dialog. + From there you can change the way KVIrc looks: fonts, colors, windows behaviour, + icons, taskbars, and so on. + Once you have changed the theme, you can save it, archive it (tar.bz2 or zip) and share with your friends, + or send it to the KVIrc staff to see it published on the web site. + + +6.4 I hate all that colors, what can I do about it ? + + By fiddling with the options you can make KVIrc appear even monochromatic. + Go to Options/Theme and select the minimalist theme: it will set white text + on black background and will disable the displaying of a lot of icons. + This is a good starting point for you console addicted hackerz :D + + +6.5 On Windows, how do I use firefox/opera/any_other_browser to open links instead of explorer ? + + Go to the "URL Handlers" options page and set + + run "C:\\path\\to\\your\\browser.exe" "$0" + + as url handler for the protocol you're interested in (maybe in all). + + Suepahfly suggests to use + + rundll32 url.dll,FileProtocolHandler "$0" + + as url handler to open the url in the default windows browser. + + +------------------------------------------------------------------------------- +7. CRASH +------------------------------------------------------------------------------- + +7.1 KVIrc crashes when the multiline text input is opened (obsolete) + + If you have installed a new version of KVIrc over a previous installation + br if you have changed the Qt libraries that KVIrc is linked to then + it might be caused by a broken multiline text editor config. + Try removing $HOME/.kvircssexeditorrc and starting KVIrc again. + Update: this problem has been completely removed during late 2004 developments + by completely rewriting the multiline input. + + +7.2 What the heck is a gdb stack trace and how do I get it ? + + A gdb stack trace is a "photography" of the state of the KVIrc internals + taken when a certain event has occured. The most common event + is a program crash (Segmentation Fault). + The stack trace helps (or even allows) the developers to locate the + crash cause in the program sources. + To obtain a gdb stack trace you must: + + - Compile KVIrc with the --enable-debug ./configure option. + Without this switch the stack trace is USELESS. + - Have a working installation of gdb (the gnu debugger) + This is usually available on your distribution cd + and you may already have it installed. + - Run KVirc: + # gdb kvirc + When the gdb prompt appears write: + # (gdb) run -f + Make KVIrc crash: gdb will tell something about + a signal received by the program. Write then: + # (gdb) bt + The text you see is the stack trace you wanted :) + Copy+Paste+Send it to pragma at kvirc dot net or the mailing list. + + +7.3 KVIrc hangs up, but doesn't crash. How do i report debug informations ? + + Use gdb to get a stack trace as in answer to question 7.2. + Since your KVIrc doesn't crash you will have to interrupt the execution + manually while it is hung up. You can do it by pressing CTRL+C in gdb. + + +7.4 KVIrc exits by itself or simply "disappears" without any apparent reason. + + Yes. It probably crashed but you haven't noticed that. + We NEED a gdb stack trace or a working procedure to reproduce the + behaviour in order to hunt it. + + +7.5 KVIrc dies randomly and "Alarm Clock" is printed in the console + + Try recompiling kvirc by adding the --with-ignore-sigalarm switch to + ./configure. (Note: the reason of the incoming SIGALARM signals + on certain systems is acually unknown. Please send hints to pragma at kvirc dot net). + + +7.6 KVIrc dies when using alias(identify){ identify password; }; + + This is infinite recursion: a programming error. + Take a look at http://en.wikipedia.org/wiki/Infinite_loop , learn + that once for all and fix your script. + diff --git a/INSTALL b/INSTALL new file mode 100644 index 0000000..fc7caf6 --- /dev/null +++ b/INSTALL @@ -0,0 +1,753 @@ +Szymon Stefanek Mon Mar 04 2008 +############################################################################### +General notes for the installation of the 3.4.0 release of KVIrc +############################################################################### + + This document contains the procedures to compile and install + the version 3.4.0 of KVIrc. + +############################################################################### +# 0. Table of contents +############################################################################### + + 1. Introduction + 2. Guru-level installation + 3. Hacker-level installation + 4. Human (detailed) installation instructions + 5. How to compile KVIrc with Qt-embedded + 6. Compiling KVIrc on Mac OS X + 7. A note about Windows 95/98/ME + +############################################################################### +# 1. Introduction +############################################################################### + + This document contains the procedures to compile and install + the version 3.4.0 of KVIrc. + + If you have found this document in a binary distribution then + KVIrc has been probably already installed by your favorite package + manager and maybe something is not working as expected. In this case + this document and the accompanying FAQ can help you in guessing + what's wrong. + + If you have found this document in a source distribution or you + have downloaded it by using the svn then well... + this is a standard INSTALL file :) + +############################################################################### +# 2. Guru installation: +############################################################################### + + # ./configure + # make install + +############################################################################### +# 3. Hacker installation: +############################################################################### + + If you're compiling the svn version of KVirc run ./autogen.sh + (You NEED automake >= 1.5 for autogen.sh to run). + + # export QTDIR="your qtlibrary path" + + eventually: + + # export KDEDIR="your kde library path" + + We're using GNU tools here. + + # ./configure --help + # ./configure [your options] + # make + # make install + +############################################################################### +# 4. Human (detailed) installation: +############################################################################### + + If you're not a guru, or have problems with the installation + read these instructions carefully. + + ### + ### Step 0 (ONLY FOR THE SVN VERSION) + ### + + If (*** AND ONLY IF ***) you're compiling the svn version of kvirc + you need to generate the configure script. If you're compiling + a downloaded tar.gz (or tar.bz2) package or you don't know what + svn is then jump directly to step 1! + + You need a recent automake and autoconf installed on your system. + It is also reccomended to have a recent (matching) libtool installed + (libtool is not strictly necessary since KVIrc has a bundled one, + but a libtool matching your automake/autoconf versions will probably + run better on your system). + + Anyway, run: + + # ./autogen.sh + + If it runs without any error (it will tell you "Done") then + you may skip to step 1, otherwise read on. + + First of all check your auomake version. + You need automake >= 1.5: older versions will NOT WORK. + You can check the automake version with the command + + # automake --version + + If your automake version is lower than 1.5 upgrade it. + You can find it at http://www.gnu.org/software/automake/ (source) + or on your favorite distribution site as auto-installing package. + + Automake installation tip: automake installs in /usr/local/ + by default. If you have an older automake installation that + resides in /usr/ it's better to remove it or (better) overwrite it + with the new installation. + If you choose to overwrite the old installation with the new + one then just use "./configure --prefix=/usr" as the automake's + configure command. + If you choose to remove the old version then the files to be + removed are /usr/bin/automake /usr/bin/aclocal /usr/share/automake + /usr/share/aclocal. If you feel unsure about removing it, rename it. + + If the script fails to run then you might try + + # ./autogen.sh --bundled-libtool + + to force the usage of the bundled libtool version. + If you later have unexplicable problems with the compilation tools + you might also try the bundled libtool. + + ### + ### Step 1 : Matching the requirements + ### + + - You NEED a fully working C++ compiler. + + Most linux distributions have it pre-installed and if you have + already compiled other programs before then you're probably ok, + so actually skip this check and go ahead. If anything fails + in the following steps then this is the very first thing to verify. + A broken compiler installation usually manifests itself + in failed ./configure tests (dlopen capabilities). + Try + + # gcc -v + # g++ -v + + on the commandline. If it says something about "command not found" + then you miss some gcc related package. Install it from the distro cd. + + + - You NEED the Qt library. + + You can download the latest version from ftp://ftp.trolltech.com. + The main Qt www site is http://www.trolltech.com. + Note for the GPL maniacs: Qt IS GPL. + The minimum required version is 3.1.2 (older versions *might* work) + Download and install it by following the rules + explained in the excellent documentation that comes with the library. + + + - You need a decent pthread implementation. + + This is usually included in your distribution and is probably + already installed. The library is called libpthread.so. + You can look for it with the "find" command: + + # find / -name libpthread.so + + On my system the output is: + + # /usr/lib/libpthread.so + + If you don't have it (the configure script will tell you) + you can download it from your favorite GNU mirror. + + On Solaris you can use the native libthread.so library instead + but you will have to pass the specific option to configure (see below). + FreeBSD has a native implementation of pthreads in libc_r and + the gcc compiler has a special -pthread flag to link to it. + If you're on FreeBSD, use the --with-freebsd-pthread configure + option and make sure that you don't have other pthread wrappers + installed (that might collide with the native header files). + + The configure script will also fail if the library is + hidden somewhere on your system (eg. not in /lib , /usr/lib or + /usr/local/lib): you should probably move it. + + + - You need the dynamic linker interface library libdl.so. + + This is usually installed on your system , so don't care until + configure complatins about it. Some system have the interface + builtin in libc. The configure script can detect it. + + + - (Optional) If you want to compile the KDE integration support + you obviousy need KDE. The kdelibs package should suffice. + + + - (Optional) If you want the translations to non-english languages to work + then you need the GNU gettext package. In particular KVIrc uses + the msgfmt program. + + This is usually included in your distribution and is probably + already installed. You can check it by running + + # msgfmt --version + + KVIrc will not complain if the command above is missing: it will + just skip the creation of the translation files. + If the command above fails then you need to install the gettext package + if you want any language other than english. + + + - (Optional) If you want DCC VOICE to support the gsm codec, + you need a recent copy of libgsm. This is not strictly required + at compile time since KVIrc will look for the library at run-time, + and only if the DCC VOICE with the gsm codec is requested. + You can check for libgsm using the 'find' command. + + # find / -name libgsm* + + The output should be sometihg like + + # /usr/lib/libgsm.so + + This library is included in most distributions. Some distros ship + only the static version of the library "libgsm.a": if the previous + find returned only something similar to "/usr/lib/libgsm.a" , you might + create manually the shared archive by running: + + # cd /usr/lib + # ld --whole-archive -shared -o libgsm.so.1 libgsm.a + # ln -s libgsm.so.1 libgsm.so + # ldconfig + + If you don't have it installed at all, you might have a look in your + distribution CD, or download it from the web. + + + - (Optional) If you want the /snd plugin to play various audio formats + you either need a running artsd, a running esd or a reasonably recent + audiofile library. Without these KVIrc will be only able to play *.au + files. + + + - (Optional) If you want to generate the on-line documentation + you also need perl: any version will do (I guess). + + + - (Optional) If you want the secure socket layer support to be compiled + you need the OpenSSL library and headers. (libssl.so and openssl/ssl.h) + + + - (Optional) If you want perl scripting support to be compiled + you need a working perl installation. Your libperl.so MUST be compiled + with the MULTIPLICITY option. (You can check it with perl -V). + + ### + ### Step 2 : Running the configure script (mandatory) + ### + + First of all you must run the configure script that will guess some + info about your system and prepare the compilation. + You may try to "simply run" it and check if it works...the configure + script tries to be smart , but in some cases it will fail. + + So before running the script make sure that the enviroinement + variable $QTDIR points to the right location. This will help + in finding the correct version of Qt. + You might eventually set it with the command: + + # export QTDIR="your qt dir" + + On my system qt is installed in /usr/local/kde/qt + so I actually execute + + # export QTDIR="/usr/local/kde/qt" + + If you want to compile the KDE support you might want to do the same + with KDEDIR + + # export KDEDIR="your kde dir" + + In my case KDE is installed in /usr/local/kde so I use + + # export KDEDIR="/usr/local/kde" + + The configure script has a lot of options that can be listed by using + + # ./configure --help + + Here's a list with explainations (the most common are at the top): + + --enable-debug + This is for debugging and reporting problems. + It sets the compiler options in order to leave the debugging + informations into the kvirc executable and the libraries. + In this way you will be able to produce a gdb backtrace + in case of a crash. + YOU NEED THIS OPTION IF YOU WANT TO REPORT A PROGRAM CRASH. + + --enable-pipes + Asks the compiler to use pipes instead of files for the + compilation stage. The pipes will help in reducing disk usage and + will probably shorten the compilation a bit. Use this option if + your platform supports it. + + --with-qt-library-dir= + Look for the qt library in . + You might want to use this if the configure script has trouble + in finding the qt library. + You should have no problems if you use export QTDIR="" + before launching the configure script, but it might help you + if you have a non standard Qt installation. + + --with-qt-include-dir= + Look for the qt headers in . + You might want to use this if the configure script has trouble + in finding the qt headers. It may especially help if your headers + are in a place different than $QTDIR/include (and thus you have + a non standard installation) + + --with-qt-moc= + Use the qt meta-object compiler found in + The path is usually $QTDIR/bin/moc , and the + configure script will find it if you have a standard + Qt installation and $QTDIR points to the right directory. + Thus should have no problems if you use export QTDIR="" + before launching the configure script, but it might help you + if you have a non standard Qt installation. + This will also help if you have the moc compiler renamed + in some way: like "moc2" or sth... + in this case is a FULL path: directory/program_name! + + --disable-qt-check + This disables Qt checking at compilation time. + If this is the only way to compile and run + the kvirc executable , then there is something + wrong with the configure script. + + --without-kde-support + The configure script will look for the KDE headers and libraries + and if found it will enable the KDE support. If you don't want + the KDE support even if KDE is detected, just use this switch. + + --with-kde-library-dir= + Look for the KDE libraries in + If $KDEDIR points to the right place, you shouldn't need this. + + --with-kde-include-dir= + Look for the KDE headers in + If $KDEDIR points to the right place, you shouldn't need this. + + --with-kde-services-dir= + Install the kde service protocol files in + If $KDEDIR points to the right place, you shouldn't need this. + This is also non-critical for kvirc: if the configure script + can't find this directory, you will only looose the support for + irc:// urls in konqueror + + --without-kde-check + Similar to --without-qt-check but for KDE. + + --enable-optimisation= + Enables the compiler optimisation flag -o. + Possible values are 0 , 1, 2 and 3 (but if you compiler supports + more optimisation levels , you might use other numbers here). + Increases compilation time but may produce a slightly faster + executable. + + --with-other-libs= + Explicitly link to the specified libraries. + Example: --with-other-libs="-lmylib -lstrangesystemsupport" + + --with-other-ldirs= + Explicitly add the specified library search paths + Example: --with-other-ldirs="-L/home/pippo/lib/ -L/my/library/" + + --with-other-idirs + Explicitly add the specified include search path + Example: --with-other-idirs="-I/home/pippo/include/ -I/tmp/inc/" + + --enable-objprelink + This is an experimental support for object prelinking that improves + significantly the executable startup time. In order to use it you + need to have the "objprelink" program in the PATH. The objprelink + program is included in the distribution in the admin directory. + In order to use it, you will need to: + + # cd admin + # make objprelink + # cp objprelink /somewhere_on_your_path + + All this AFTER running ./configure and BEFORE running make. + + --with-no-pthread-check + Do not check if the pthread stuff works. + If configure fails in the pthread library check , you might want to + try this...(but then you will have really to "pray" that + the check has been broken by some "unusual" conditions and the + compilation will succeed). + + --x-includes=DIR + Specifies explicitly the path to the X header files. + You might want to use this if the configure script + has trouble in finding it. + + --x-libraries=DIR + Specifies explicitly the path to the X libraries. + You might want to use this if the configure script + has trouble in finding it. + + --with-qt-name= + Use instead of "qt" as the Qt library name. + This is useful on systems where Qt has been installed with + a name different than the default "qt". + It happens often that to allow multiple copies of qt to work + the newest have the version name appended to it. + For example, on FreeBSD I have found "qt" being Qt1.* and + "qt2" being Qt 2.*. Since you need Qt 2.* for kvirc to work, + you will need to use --with-qt-name=qt2. + If you use this option, you will probably also need to remap + the moc compiler path/name with --with-qt-moc. + + --disable-qt-mt + Disable checking for the multithreaded version of Qt. + By default , KVIrc will try to link to the multithreaded version + if found on the system. + NOTE: if you enable the KDE support , KVIrc MUST be linked to the + qt library that KDE is linked to. + + --with-ix86-asm + KVIrc contains some ix86 assembly routines that *could* + performs some things faster (this is not always true, depends + on the compiler). You might want to try it if your kvirc seems to + be really slow... + + --without-ipv6-support + The IPV6 support is compiled by default on the platforms that + support it: this option disables it. + Even if you have a plain IPV4-only connection, you might want to + keep the IPV6 support: you will be able to lookup IPV6 hostnames. + + --without-system-memmove + This will disable the use of the system memmove() memcpy() and + memset() functions and enable the bundled implementations. Use + it if you have undefined references to these functions while + compiling. + + --with-ignore-sigalarm + This is a hack mainly for Solaris. + Use this option if kvirc exits with no apparent reason and + the system prints a message related to an "Alarm" :) + + This is a mail that suggests an explaination for the SIGALARM fault. + If you experience the problem please drop me a mail at pragma at kvirc dot net + and we'll try to look for a solution. + + From: "Andre Stechert" (astechert at email dot com) + Date: 26/7/2005 09:36 + + Hi, +         I noticed in your readme that you were having problems with sigalarm + in your solaris port and you weren't sure why.  I quickly scanned your + source code and noticed that you use usleep and threads.  That's the problem, + if you haven't already figured it out. On Solaris, usleep is implemented with + SIGALARM. So is threading. So if you the active thread changes while + a usleep is in progress, bang, the process is dead. + + --without-crypt-support + Disables the cryptographic engines and the whole + cryptography/text-transformation support. Produces a slightly + smaller executable. Anyway, if you don't know what the + ctryptography/text-transformation + support is ,I suggest you to avoid using this option. + + --enable-new-kvs + Developers only! + This enables the compilation of the new KVS parser, currently + under heavy development. This will produce a bigger and possibly + unstable executable: do not use if you don't know what you're doing. + + --enable-new-kvs-only + Developers only! + This hardwires the new KVS parser to be used as the main scripting + engine in KVIrc. Be aware that the new KVS engine is NOT YET 100% COMPLETE + so some scripts will simply fail. + + --without-transparency + This option disables pseudo-transparency support. + The pseudo transparency support makes the KVirc windows + look like semi-transparent (this is NOT real transparency: this is + just a nice-looking hack). + If KDE support is enabled, KVirc will have an option that + makes all windows use a faded KDE desktop background image + as background. Without KDE support you will be able to choose + a fake background image and use it as background. (You can still + choose your desktop wallpaper: this will (more-or-less) work in + all the window managers). + It is cool-looking but usually eats some memory when enabled. + It also eats some executable size. + So this option allows to disable the pseudo-transparency. + + --with-solaris-lthread + If you're on Solaris and don't have the pthread library (A wrapper + I guess) you might try this option: it attempts to use the native + Solaris threading support. + + --with-freebsd-pthread + If you're on FreeBSD, you NEED this option. This enables the usage + of the native FreeBSD pthread implementation found in libc_r. + This requires you to use the native gcc compiler: it has a special + -pthread flag that enables the linkage to libc_r instead + of plain libc. + + --with-libresolv + Link to libresolv. I guess that this is required for Solaris + + --with-libsocket + Link to libsocket. I guess that this is required for Solaris + + --with-libnsl + Link to libnsl. I guess that this is required for Solaris + + --with-libcompat + Link to libcompat. This might be required for some systems... + but I have no idea which ones. If you find it useful: mail me. + + --enable-fno-rtti + Disables compiler runtime type information generation. + This is probably needed only with qt-embedded. + DON'T use it if you don't exactly know what it does. + Actually this may even make KVIrc crash in some situations. + For example the KDE sources use __dynamic_cast... + + --disable-x-support + Disables completely the X Windows support. + This is useful in environments where X is not needed to compile KVIrc + such as Qt-Mac on MacOSX, QtEmbedded or Windows. + This switch implies also --without-x-bell + + --without-x-bell + Disables the usage of the XBell function (needed if you want to + compile KVIrc with qt-embedded (no X at all)) + This is implied by --disable-x-support + + --with-qt-embedded + You need this to compile KVIrc with qt-embedded + + --without-ipc + Disables support for inter-process communication. + You will be not able to send remote commands to running + kvirc sessions: this basically means that every time you run + the kvirc executable , a new session will be started. + If you don't use this switch, a new session will be started + only if no session is running on the same display or + "new session" has been forced by a commandline switch. + If a session is already running, the commandline will be + passed to that session via IPC (X-event-based communication). + This option saves some KB of the KVIrc executable, + so if you're really short in memory , you might use it, + otherwise, IPC is a nice feature. + + --without-dyn-labels + You should not need this option. + It disables compilation of code that relies on a particular + compiler feature (jumping to a dynamic label with a goto). + Not all compilers support this , but configure shoud detect + it automatically. Anyway , if you get compilation errors on + kvi_ircview.cpp, you may try this option... + This may also help if the configure script seems to hang + when checking for the "compiler dynamic label support". + + --without-splash-screen + Do not compile the splash screen code. + This will remove you that nice "banner" image that pops up + while kvirc is starting up. It will maybe help in making an + executable smaller by a couple of KB and save a couple + of extra milliseconds during the startup. Use it if you're + tring to build a performance critical executable and you're + short both in memory and CPU time :) + + --without-gsm + Explicitly disable the usage of the GSM library. This will + disable the DCC VOICE gsm codec but might help when the + compilation stops complaining of something related to GSM :) + + --without-dcc-sound + Explicitly disable the DCC VOICE sound support. This might help + if you have problems in compilation of src/modules/dcc/voice.cpp. + It will disable the sound support + (and thus make DCC VOICE not usable). + + --disable-ssl + Disables the secure socket layer support. The SSL support is + automatically enabled if OpenSSL is detected at ./configure time. + This option forces it to be left out. + + --with-memory-profile + Debug stuff...enables memory allocation profiling (don't use it :) + + --with-memory-checks + Enables malloc() memory checks. This will print a nice message + if your system goes out of memory... + It can't save you from buying new RAM, + but at least you will know that your system went out of memory + and it is not a proper kvirc fault. Actually you probably have + no reason in using it. + + --with-big-channels + Minor hash table optimisations: higher memory usage but + faster user lookups. Use it if you often stay in channels with + a lot of users. (this is not critical anyway) + + --enable-profiling + Asks the compiler/linker to include profiling informations in the + executable. This is useful only if you want to profile KVIrc by + using the gprof program. Note that this will generate a bigger + and slower executable. + + --disable-perl + Forcibly disable perl support. + + So finally you have to run + + # ./configure + + For example , my common options are: + + # ./configure --enable-pipes --enable-debug + + On FreeBSD I have found useful this command line: + + # ./configure --with-qt-name=qt2 --with-qt-moc=//moc2 \ + --with-freebsd-pthread + + Once the configure script ran succesfully you can go to the next step. + + ### + ### Step 3 : Compiling (mandatory) + ### + + This step is easy: + Cross your fingers and run + + # make kvirc + + If your make is not a GNU make (this happens on FreeBSD for example) + you should use "gmake" instead. + The compilation process will take from 6-7 minutes to several hours + depending on the machine capabilities and load. + If you have a slow cpu but have a couple of computers in a lan you + might consider using distcc to distribute the compilation. + + Once the compilation has been succesfull, run + + # make install + + Same as above: use "gmake install" if your make is not GNU make. + + This will install the executable in /usr/local/bin + (if you don't have specified a different --prefix option in + the configure script) , the libraries in /usr/local/lib + and the shared data in /usr/local/share/kvirc. + If you had a previous kvirc installation , the default prefix + will be referring to the directory where the old kvirc + executable was found. + + Make sure that /usr/local/lib is in your /etc/ld.so.conf , + if it isn't there , put it there and run + + # ldconfig + + If you have decided to use the KDE support the installation + might have placed all these files in your $KDEDIR tree + instead of /usr/local. In this case you should be OK since + KDE requires its library dir to be in /etc/ld.so.conf + + ### + ### Step 4: Having fun + ### + + # kvirc & + + That's all folks. + + +############################################################################### +# 5. Compiling KVIrc on qt-embedded +############################################################################### + + Do you want KVIrc 3 on your hand computer ? + On your Nokia 9999910 ? + On your LINUX CONSOLE? + + Well, for the third it's really easy, just follow carefully those steps: + + 1. Install qt-embedded libraries (including the development files). + This can be as easy as: apt-get install libqt-emb-dev on Debian. + + 2. cd to the KVIrc3 source directory + + 3. run configure with the following parameters: + + # ./configure --with-qt-name=qte --with-fno-rtti --without-x-calls + --without-ipc --without-splash-screen --without-transparency + --with-qt-embedded --without-x-bell + + then run make and make install as usual + + 4. Try to have a life for the next minutes while kvirc3 compiles + + 5. You need your kernel with framebuffer support (it's under 'Console') + so if your kernel don't have it reconfigure and recompile your kernel. + + 6. switch to a console + + 7. export QTDIR=[path] On Debian is '/usr' + + 8. Read http://doc.trolltech.com/3.0/envvars.html and configure your + environment vars until kvirc3-emb loads (it will give you an error + indicating what went wrong else). Pay especial attention to + QWS_MOUSE_PROTO, QWS_CARD_SLOT and QWS_DISPLAY + + 9. Enjoy :) + +############################################################################### +# 6. Compiling KVIrc on MacOSX +############################################################################### + + There is a detailed compilation and installation HOWTO for MacOSX systems + located in the doc dorectory. + +############################################################################### +# 7. A note about Windows 95/98/ME +############################################################################### + + On Windows versions prior to 2000 the KVIrc binary may refuse to start + because of an incompatible msvcrt.dll included in the distribution. + + If this happens to you then you may try the following tricks: + + - Find msvcrt.dll in your C:\Windows directory. It may also be + in C:\Windows\System or C:\Windows\System32 + Copy it to the KVIrc installation folder overwriting the existing + msvcrt.dll shipped with kvirc. + + - Find msvcrt.dll somewhere on the net. An url hint might be: + http://www.dll-files.com/dllindex/dll-files.shtml?msvcrt + Download the file and copy it to the KVIrc installation folder + overwriting the existing msvcrt.dll shipped with kvirc. + + If none of the two steps work for you please write a mail to + pragma at kvirc dot net reporting your exact Windows version and build + and including the exact messages that the system reports when trying + to run the KVIrc executable. + + Thanx to Dusan Hokuv for reporting this and suggesting the fixes. + diff --git a/Makefile.am b/Makefile.am new file mode 100644 index 0000000..c451931 --- /dev/null +++ b/Makefile.am @@ -0,0 +1,95 @@ +############################################################################### +# KVirc IRC client Makefile - 16.12.98 Szymon Stefanek +############################################################################### + +EXTRA_DIST = autogen.sh README FAQ + +SUBDIRS = admin data doc po scripts src + +AUTOMAKE_OPTIONS = foreign + +############################################################################### +# Delete moc files all around +############################################################################### + +delmoc: + rm -f $(topdir)/src/*/*/*.moc + rm -f $(topdir)/src/*/*/moc_*.cpp + +############################################################################### +# Main make command +############################################################################### + +kvirc-intro: + @echo "################################################################################" + @echo "### Ok..." + @echo "### The compilation process will take a while..." + @echo "### Have a cold beer in the meantime..." + @echo "################################################################################" + +kvirc-outro: + @echo "################################################################################" + @echo "### Finished..." + @echo "### Now type 'make install'" + @echo "################################################################################" + +kvirc: kvirc-intro all kvirc-outro + +install: install-recursive docs banner + +install-devel: install-recursive banner + +messages: + cd $(topdir)/po/kvirc && make messages + cd $(topdir)/po/modules/about && make messages + cd $(topdir)/po/modules/dcc && make messages + cd $(topdir)/po/modules/editor && make messages + cd $(topdir)/po/modules/logview && make messages + cd $(topdir)/po/modules/mediaplayer && make messages + cd $(topdir)/po/modules/notifier && make messages + cd $(topdir)/po/modules/options && make messages + cd $(topdir)/po/modules/perl && make messages + cd $(topdir)/po/modules/perlcore && make messages + cd $(topdir)/po/modules/sharedfileswindow && make messages + cd $(topdir)/po/modules/theme && make messages + +############################################################################### +# Generate documentation +############################################################################### + +docs: + $(mkinstalldirs) $(DESTDIR)$(helpdir) + perl admin/gendoc.pl -v $(VERSION) $(DESTDIR)$(helpdir) \ + data/doctemplates/*.template \ + `find ./ -name "*.cpp" -print` \ + `find ./ -name "*.h" -print` + +############################################################################### +# Rule for developer documentation +############################################################################### + +devdocs: + cd admin && doxygen + +############################################################################### +# Finished :) +############################################################################### + +banner: + @echo "################################################################################" + @echo "### INSTALLATION COMPLETE" + @echo "################################################################################" + @echo "###" + @echo "### KVIrc is now installed and ready to run." + @echo "###" + @echo "### Please send bug reports and suggestions" + @echo "### to pragma at kvirc dot net" + @echo "### You can use the mail report form on" + @echo "###" + @echo "### http://www.kvirc.net" + @echo "###" + @echo "### We hope that you will enjoy KVIrc." + @echo "###" + @echo "### Szymon Stefanek and the KVIrc Development Team" + @echo "###" + @echo "################################################################################" diff --git a/README b/README new file mode 100644 index 0000000..24f8607 --- /dev/null +++ b/README @@ -0,0 +1,387 @@ +23.03.2008: Release 3.4.0 "Virgo" +############################################################################### + +Here we go with another release :) + +This one took a very long time but, well, finally it's here. + +Notable new features of this release include: + + - improved themeing support + - better desktop integration + - nicer support for many different IRC servers + - a totally revised option layout + - basic support for script "addons" + - improved help subsystem + - new nice statusbar applets + - improved scripting engine + - improved windows and macosx support + - .... + +There is also a lot of small new details that you will +find out by yourself while playing around and finally +we obviously also have a huge number of bugfixes. + +This will be the last stable release of the 3.* series and also the last +one using Qt3. From now on we'll be working on major version 4 and +switching completly to Qt4. This release actually contains a preliminary +Qt4 support and if you feel brave you might test it by passing +the "hidden" --enable-qt swtich to configure. + +Have fun :) +Szymon Stefanek and The KVIrc Development Team + + + + + + +############################################################################### +General notes for the 3.4.0 release of the KVIrc IRC client +############################################################################### + +- Installation + +The detailed installation instructions for the unix source distribution +are in the INSTALL file. + +The Windows version needs no installation: you just need to run the +installer executable and follow the proposed steps. + +Other documentation can be found in the doc subdirectory. + +- Reporting problems + +You are encouraged to "mess" with all the KVIrc options and features, +and to report bugs and misbehaviours to the author. +Anyway , before reporting a bug , ask yourself if it can be caused +by some other part of your system: KVIrc uses many external libraries +and (as all programs) relies on a correct system behaviour. +Make sure that the libraries you use are the correct ones (!!!). + +When you encounter a problem please read the FAQ that is found +in the distribution and also take a look at http://www.kvirc.net +for a more recent version. If nothing helps to solve your problem +then you might consider issuing a bug report. + +The best way to report a bug is to use the bugtrack system at +http://svn.kvirc.de/kvirc/. Another way is to subscribe +to the kvirc mailing list (see http://www.kvirc.net for instructions) +and report the problem there. In both cases your bug report +should be written in english and should contain most informations +possible about the problem. If you have encountered a crash +on an unix platform you should include a gdb backtrace (stack dump). +The more gdb info you send, the biggest is the possibility for us +to find the problem and maybe a solution. There is a FAQ entry +that explains how to produce a suitable gdb backtrace. +If you can't obtain a gdb backtrace (maybe because you're on +a platform where gdb is not available) or if the problem +is not related to a program crash then you should include +a detailed procedure that leads to the manifestation of your problem. +You should always include a short description of the platform you +are running on: the operating system, the cpu (if not an x86), +the version of the Qt library and the KDE environment (if relevant). +You should also mention the relevant version of KVIrc and where +you got it from (cvs, kvirc site, other sites). + + + + + + + + + + + + + + + + + + +############################################################################### +# Historic entries : just for the curious +############################################################################### + + +22.02.2005: Release 3.2.0 "Realia" +############################################################################### + +Here we go again: 3.2.0 is out! + +The long road to stability has reached an important milestone. The previous +releases of the 3.* series were the first ones after a huge codebase rewrite. +3.2.0 is a result of several months of testing, debugging and improving. +You will surely find it more stable, fast and user friendly. + +The old scripting toolbars have been replaced by the new "action" based +approach. Besides the scripting flexibility of the actions we have also +gained "drag & drop" toolbar editing. Just select "Settings -> Toolbars +-> Customize" from the menu and drag your favorite actions (buttons!) to the +toolbars you wish. You can obviously create new toolbars on the fly and destroy +old ones. There is a set of builtin actions and new ones can be added +by the means of the action editor (another new feature) accessible from +the Scripting menu. Play with it :) + +The UNICODE support has been improved yet more. Now you can set global, +per-network, per-server and per-window encodings! There is also a new +set of "smart" encoding engines that first try to decode the text as UTF8 +and in case of failure fallback to your standard encoding. + +The translators did a really good (and hard) job: we actually have KVIrc +translated in 14 languages. I'm really happy about that. + +There is a new nice Instant-Messager-like notifier window that pops up when +a query message arrives and KVIrc is not the active application. Yes, +you can disable it, but I'm sure you will not. The notifier is also fully +scriptable and we're working on a simple skinning engine for it. + +We also have perl support: now you can use perl from KVS and +KVS from perl. The engine is still quite essential but with some hacking +you can obtain really good results from it. + +The small IRC-Context-Display has been removed from the toolbar and has been +replaced by a real status bar that is capable of displaying the same +informations in a much cleaner way. The IRC-Context-Display is still +available as an action so you can just drag it back in its place +and hide the status bar to return to the previous release configuration. +The statusbar also supports applets that can be added/dragged/removed by the +means of the mouse: just try the right click. + +The scripting engine has been improved and there are several new object +classes. An interesting new feature here is the $tr() function that allows +your scripts to be translated with the standard gettext mechanism. The +widely requested DCOP communication function has been implemented too. + +Out-of-the-box mircryption support has been added. The KVIrc's mircryption +engine supports the standard ECB mode and the new CBC mode + +The DCC transfers have been improved and seveal related bugs have been +fixed. It is also possible to limit the bandwidth for each transfer. + +There is a lot of minor new features that will make your IRC sessions funnier +and more exciting: some of them are described in the ChangeLog file and +other can be found by exploring the user interface. + +The small one-man-project has grown to the level of a small community. +People from around the world have joined our development efforts and are +constantly donating their time, eyes and bandwidth in order to make KVIrc +a really good IRC client. Besides of simply giving you a free (as in freedom!) +and nice program for chatting, they are giving you the great opportunity to see +what's behind the scenes: you have the source code for the whole application. +In practical terms this means more or less 300.000 lines of tested, debugged and +commented C++ code, several perl scripts, dozens of makefiles and all the means +that you need to produce a working KVIrc executable on all the supported platforms. +There is a lot of knowledge (some people call it "technology" because it sells better) +inside, ready to be acquired by an attentive reader. Don't forget that the freedom of +building your own executable from the sources gives you the opportunity +of verifying the source itself: for example you might be interested in verifying +that KVIrc will not run any malware code on your machine nor will collect +your private data and sell it to someone while you're happily chatting with a friend. +We call it freedom, please respect it :) + +Our community is contantly growing and this release was possible thanks to the +contribution of really many people. There are new mighty developers, new addicted +fans and we have seen a lot of new users. The list of the major contributors +can be found on the KVIrc site, in the about dialog and all around the sources. +If you want to meet them please join the #kvirc channel on your favorite +IRC network or subscribe to our mailing list. + +Ah, I was going to forget it: you might have noticed that there is +a version bump from 3.0.1 to 3.2.0. It's a typo that we arbitrairly +decided not to fix :) + +Have fun :) +Szymon Stefanek and The KVIrc Development Team + + + + +31.05.2004: Release 3.0.1 "System Virtue" +############################################################################### + +Here we go again: 3.0.1 is out! + +3.0.1 is mainly a bugfix release. 3.0.0 was the first public release +after long time and even if we have tested it for a very long time +some bugs didn't miss to jump out. 3.0.1 contains the fixes for these +problems and adds some minor functionality. The detailed list of +changes is in the ChangeLog file. + +The bugs for this release should be reported by using the bugtrack system available +at http://bugtrack.kvirc.omnikron.net + +Have fun :) +Szymon Stefanek and The KVIrc Development Team + + +17.04.2004: Release 3.0.0 "Awakening" +############################################################################### + +After a couple of years from the last stable release, here we go again :) + +Since the 2.* releases the KVIrc source code has been almost completely +rewritten. The major differences are summarized in the following list: + + - Multiserver: you can have multiple IRC connections in a single window + - IPV6 support, also for DCC transfers + - SSL support (also over IPV6) + - UNICODE support for the user interface + - Better scripting language + - A basic Theme Engine + +The first major goal of the rewrite was "user-friendliness": you should be +able to start an IRC session by selecting a server and clicking "Connect Now" +just after the installation. +The second major goal was "extreme-flexibility": you can customize the way KVIrc +looks and the scripting language allows you to implement complex responses +to IRC generated events. + +There is a lot of minor new features that will make your IRC sessions funnier +and more exciting: some of them are described in the ChangeLog file and +other can be found by exploring the user interface. + +This release was possible thanks to the contribution of many people. +The list includes but is not limited to: Triskelios, Jan Wagner (spion), +Juanjo Alvarez (Kane), Andrea Parrella (Yap), Luk De Ketelaere (Balboy), +Sara D'Alia (Sbrokka), Ted Podgurski (alch3m1st), Ciro Guariglia (d3vah), +Christoph Thielecke (Crissi), Eva Schaller (Penny), Niklas Luerßen (Tequila) +Olle Hallnas (Crocodile), Francesco Meloni (Princo), Alessandro Rossini (Aronnax), +Alex Grijalba Martinez (SuD), SuperbepS, Thilo Schulz (Thilo), Dworf, +Jorma Tuomainen (Wiza), Michele Pinassi (O-Zone), Paolo Sammicheli (XDatap1), +Ahinu, xevilstar, The Siena Linux Users Group, cyco & samweis, +The Firenze Linux Users Group, all the subscribers of the KVIrc public mailing +list and finally all the people from #kvirc on IRCNet and Freenode. + +Have fun :) +Szymon Stefanek and The KVIrc Development Team + +############################################################################### +General notes for the 3.0.0 release of the KVIrc IRC client +############################################################################### + +- Installation + +The detailed installation instructions for the unix source distribution +are in the INSTALL file. + +The Windows version needs no installation: just unzip the archive in +a suitable directory (such as C:\Program Files\) and run kvirc.exe from there. + +Other documentation can be found in the doc subdirectory. + +- Reporting problems + +In this release , the changes are so huge that it was not possible +to test them in all the possible conditions. A 'normal' irc session +should give you no problems. +You are encouraged to "mess" with all the KVIrc options and features, +and to report bugs and misbehaviours to the author. +Anyway , before reporting a bug , ask yourself if it can be caused +by some other part of your system: KVIrc uses many external libraries +and (as all programs) relies on a correct system behaviour. +Make sure that the libraries you use are the correct ones (!!!). + +- Contents of a good bug report: + +- A gdb backtrace in case of a segfault. + The more gdb info you send , the biggest is the possibility + for me to find the problem and maybe a solution. +- A detailed description (read : procedure) to reproduce the bug + Obviously if possible... +- All informations on your system that you think that may be + related to KVIrc and to the problem itself. + +To enable the gdb debugging you must compile kvirc with +the --enable-debug configure option. + + + +03.01.2003: Release 3.0.0 beta2 +############################################################################### + + +Here we go again! +Yes , this is still called "beta" , but it should be stable on most machines. +We're simply still missing some features planned for the final 3.0.0. + +Beta2 is being released as a source package. +Binary packages (for windows and other platforms) might be available soon +so check out the download section once in a while. + +90% of the 2.* branch features have been already re-implemented and there are +many new things to play with. + +There is a preliminary UNICODE port: KVIrc UI starts to "speak" foreign (non Latin1) based languages. +IRC character set mapping has been implemented (with 8 commonly used codepages for now). +You should be able to use the Euro sign (ISO-8859-15), write Cyrillic (KOI-8-R , CP-1251 , ISO-8859-5), +Greek (ISO-8859-7) and even use ideograms with the UTF-8 encoding. +Character mapping selection is window based thus you should be able to write Cyrillic on #russian, +Greek on #athens and write plain English on #kvirc in the same IRC session. + +Some modules have been removed from the main distribution. This is because the source +tree has been growing too much: we are removing the non-strictly-necessary features +and we will release them as separate packages. + +On the CVS you can already find the "nap" module that allows chatting (no file sharing yet) +on OpenNap networks. + +The scriptcenter dialog has been splitted in smaller "pieces" and a GUI toolbar editor has been added. + +Finally there are tons of bugfixes and improvements: just play with it :) + +The bugs for this release should be reported by using the bugtrack system available +at http://bugtrack.kvirc.omnikron.net. + +Have fun :) +Szymon Stefanek and The KVIrc Development Team + +############################################################################### + + + +25.06.2002 +############################################################################### + +3.0.0 beta1 (Codename: "Eve's Avatar") + +This release is "floating around" since a couple of months... +Well... finally... here we go :) +This is not stable yet, but many people use it and we get a really small number of +critical reports: this means that you probably can use it for your daily chatting. + +Beta1 is being released as a source package and a binary distro for the windows platform. +Binary packages for other platforms might be available soon so check out the download section once in a while. + +If you had previous KVIrc installations and you experience problems (missing menus for example) +try to remove (or better just rename) the old local configuration directory (locaed +in your home dir probably) and to restart KVIrc. + +80% of the 2.* branch features have been already re-implemented and there is a whole +bunch of new things to play with. One of the greates "ChangeLog" entries is the preliminary +SSL support that works for IRC and DCC CHAT (both over IPv4 and IPv6). +CTCP PAGE support has been added and there were some major changes to the variable +management in the scripting language (added "real" array support and changed the syntax for the dictionaries). +Those of you that like colors can now enable the icon-like display of emoticons +and play with icons in the text sent through the server (a new escape code). +The documentation has been reworked a little bit more, there are some new modules and +a lot of new options to try. + +The windows version is not completely in sync with the linux one thus you might find +that it lacks some features (mainly advanced scripting language, sound support etc...). +We hope to have a completely synchronized versions on both platforms for the time +of 3.0.0 final. + +The bugs for this release should be reported by using our new shiny bugtrack system available +at http://bugtrack.kvirc.omnikron.net. + +Well.. +That's all folks! + +Have fun :) +Szymon Stefanek and The KVIrc Development Team + +############################################################################### + diff --git a/TODO b/TODO new file mode 100644 index 0000000..06c966b --- /dev/null +++ b/TODO @@ -0,0 +1,50 @@ +Update TODO file, if something is implemented, it should be removed in the TODO file. +Mantain TODO file as clear as possible + +- Pragma should read this file :D +- Events, events, events. There are lots of them pending (see TODO.Events). +- Multiple identities (and identity associations for servers) +- Port the speech module! +- /timer as a module +- It would be cool if KVIrc could to delete old log files automatically + (configurable, of course), to avoid disk ocupation. For example, delete (or + move to trash) 15-days old log files automatically (configurable by user). +- html colored logs (with icons ? configurable with an option) +- Check away status from the /WHO message ? (this would involve requesting WHO often) +- Handle more uncommon channel modes in the channel mode box ? + SHould get the available modes from RPL_ISUPPORT and show them in the box +- On-line charset guessing: + KviWindow should have the possibility of setting a KVI_CHARSET_AUTO + The KviWindow::decodeText() should contain an algorithm that + would use the best "guess" charset based on the window output + history , the actually detected charset and the text to decode + + /charset ISO-8859-15 +- When user clicks search in the help window there should be some kind of + notification when the search starts... The way it is now you can't tell if the + search button even worked, until the search process is finished +- Channel mode-field + The channel mode field should be dynamical, it should be able to change width according to what it needs, + today it's way too long. +- Userlist + The userlist should be dynamical after how many characters the server lets you use in a nickname, today it's + way too wide, this makes it look ugly. +- Text-hints + Text hints doesn't dissapear after changing desktop under KDE, and you have to change back to the + desktop where KVIrc is to remove the hint. +- CService support + We already have nickserv support, why not CService/X support? This should be much much easier to + implement as it's only on one net (Undernet), and with a static host and command that never changes, we + only need to specify password. +- Option to save & restore sessions (session = opened irc connections, channels & queries) +- Group messages: +         * Add predefined groups +         +         As kvirc3 now supports the ability to send msg's to more than one person at +         a time, I would have liked to see +         a way of making predefined groups.  For example if I often send the same msg +         to both user1, user3, user9 and +         user31, then I would like to add these to a group called "Friends", and then +         just do a "/gquery Friends hi :) what's up?" + +- Add commands for playing PCM WAV files (using the DCC voice code). diff --git a/acinclude.m4 b/acinclude.m4 new file mode 100644 index 0000000..126611a --- /dev/null +++ b/acinclude.m4 @@ -0,0 +1,8761 @@ +dnl # // ################################################################################################################## +dnl # // ## Initialization +dnl # // ################################################################################################################## + +AC_DEFUN([AC_SS_INIT_VARIABLES], +[ + SS_BUILD_FLAGS="" + SS_BUILD_NUMBER="" + + dnl # // X Stuff + + SS_X_INCDIR="" + SS_X_LIBDIR="" + SS_X_LDFLAGS="" + SS_X_CPPFLAGS="" + + dnl # // Qt Stuff + + SS_QT3_GENERAL_DIR="" + SS_QT3_INCDIR="" + SS_QT3_LIBDIR="" + SS_QT3_MOC="" + + dnl # // KDE Stuff + + SS_KDE_REQUESTED="no" + SS_KDE_GENERAL_DIR="" + SS_KDE_INCDIR="" + SS_KDE_LIBDIR="" + SS_KDE_SERVICESDIR="" + SS_KDE_ICONS32DIR="" + + dnl # // Perl stuff + + SS_PERL_ENABLE="no" + SS_PERL_CCFLAGS="" + SS_PERL_LDFLAGS="" + SS_PERL_BINARY="true" + + + dnl # // CXXFLAGS, will be set by AC_SS_CXXFLAGS + + dnl # CXXFLAGS="" + + dnl Build flags: + dnl g - Debug version + dnl h - Memory checks + dnl m - Memory profiling + dnl s - System memmove + dnl S - splash screen + dnl o = openssl support + dnl b - Big channels + dnl x - ix86 asm + dnl T - tips + dnl c - crypt + dnl I - IPC + dnl G - GSM codec + dnl 8 - local 8 bit + dnl A - dcc sound audio support + dnl a - ignore sigalarm + dnl i - ipv6 + dnl B - big endian + dnl k - KDE + dnl p - pseudo transparency + dnl e - Esound daemon support + dnl r - Arts daemon support + dnl f - Audiofile support + dnl P - profiling support + dnl p - perl scripting support +]) + +dnl # // ################################################################################################################## +dnl # // ## OUTPUT MACROS +dnl # // ################################################################################################################## +AC_DEFUN([AC_CROSS_COLOR], +[ + + TPUT=0 + PRINTF=0 + COLOR=0 + IFS_OLD=$IFS + IFS=":" + + for i in $PATH; do + if test -x "$i/tput"; then + TPUT=1 + fi + done + + type printf >/dev/null 2>&1 && PRINTF=1 + + for i in $PATH; do + if test -x "$i/printf"; then + PRINTF=1 + fi + done + + if test "$TPUT" = "1" -o "$PRINTF" = "1"; then + COLOR=1 + fi + + if test "$COLOR" = 1; then + if test "$TPUT" = "1"; then + if test "$1" = "1"; then + tput bold + else + tput sgr0 + fi + if test "$2" != ""; then + tput setaf $2 + fi + elif test "$PRINTF" = "1"; then + if test "$2" != ""; then + printf "\033\1330$1;3$2m" + fi + fi + fi + + IFS=$IFS_OLD +]) + +AC_DEFUN([AC_SS_HEADER], +[ + AC_CROSS_COLOR([1],[2]) + echo "################################################################################" + echo "### $1" + echo "################################################################################" + AC_CROSS_COLOR([0],[9]) +]) + +AC_DEFUN([AC_SS_SECTION], +[ + AC_CROSS_COLOR([1],[3]) + echo "### $1" + AC_CROSS_COLOR([0],[9]) +]) + +AC_DEFUN([AC_SS_SET_REDINK], +[ + AC_CROSS_COLOR([1],[1]) +]) + +AC_DEFUN([AC_SS_SET_GREENINK], +[ + AC_CROSS_COLOR([1],[2]) +]) + +AC_DEFUN([AC_SS_SET_NORMALINK], +[ + AC_CROSS_COLOR([0],[9]) +]) + +dnl # // ################################################################################################################## +dnl # // ## FILE LOOKUP MACROS +dnl # // ################################################################################################################## + +AC_DEFUN([AC_SS_FIND_FILE_PATH], +[ + $3="FAILED" + for a_dir in $2; do + for a_file in $1; do + if test -r "$a_dir/$a_file"; then + $3=$(echo "$a_dir" | sed -e 's/\/\.\//\//g' | sed -e 's/\/\//\//g' | sed -e 's/\/\.\//\//g' | sed -e 's/\/\//\//g') + break 2 + fi + done + done +]) + +AC_DEFUN([AC_SS_FIND_FILE_PATH_EXT], +[ + $4="FAILED" + + for a_dir in $2; do + for a_semidir in $3; do + for a_file in $1; do + if test -r "$a_dir/$a_semidir/$a_file"; then + $4=$(echo "$a_dir/$a_semidir" | sed -e 's/\/\.\//\//g' | sed -e 's/\/\//\//g' | sed -e 's/\/\.\//\//g' | sed -e 's/\/\//\//g') + break 3 + fi + done + done + done +]) + +dnl # // ################################################################################################################## +dnl # // ## BASIC COMPILER FLAGS +dnl # // ################################################################################################################## + + +AC_DEFUN([AC_SS_CXXFLAGS_DEBUG_SYMBOLS], +[ + dnl # // Checks if the --with-debug-symbols option has been passed to configure + dnl # // adds -g to SS_CXXFLAGS + dnl # // adds g to SS_BUILD_FLAGS + + AC_MSG_CHECKING([if you want the debug symbols]) + + SS_LOCAL_ADD_DEBUG_SYMBOLS="" + + AC_ARG_ENABLE(debug, + AC_HELP_STRING([--enable-debug],[Compile an executable suitable for debugging]), + [SS_LOCAL_ADD_DEBUG_SYMBOLS="true"]) + + if test -n "$SS_LOCAL_ADD_DEBUG_SYMBOLS"; then + AC_MSG_RESULT([yes]) + if test -n "$SS_CXXFLAGS"; then + SS_CXXFLAGS="$SS_CXXFLAGS -g" + else + SS_CXXFLAGS="-g" + fi + SS_BUILD_FLAGS="g$SS_BUILD_FLAGS" + else + AC_MSG_RESULT([no]) + fi +]) + +AC_DEFUN([AC_SS_CXXFLAGS_PIPES], +[ + dnl # // Checks if the --with-pipes option has been passed to configure + dnl # // adds -pipe to CXXFLAGS + + AC_MSG_CHECKING([if you want to use pipes for compilation]) + + SS_LOCAL_USE_PIPES="" + AC_ARG_ENABLE(pipes, + AC_HELP_STRING([--enable-pipes],[Use pipes instead of files for the compilation]), + [SS_LOCAL_USE_PIPES="true"]) + + if test -n "$SS_LOCAL_USE_PIPES"; then + AC_MSG_RESULT([yes]) + if test -n "$SS_CXXFLAGS"; then + SS_CXXFLAGS="$SS_CXXFLAGS -pipe" + else + SS_CXXFLAGS="-pipe" + fi + else + AC_MSG_RESULT([no]) + fi +]) + + +AC_DEFUN([AC_SS_CXXFLAGS_PROFILING], +[ + AC_MSG_CHECKING([if you want the profiling information]) + + SS_LOCAL_ADD_PROFILING="" + + AC_ARG_ENABLE(profiling, + AC_HELP_STRING([--enable-profiling],[Compile an executable suitable for profiling]), + [SS_LOCAL_ADD_PROFILING="true"]) + + if test -n "$SS_LOCAL_ADD_PROFILING"; then + AC_MSG_RESULT([yes]) + if test -n "$SS_CXXFLAGS"; then + SS_CXXFLAGS="$SS_CXXFLAGS -pg" + else + SS_CXXFLAGS="-pg" + fi + if test -n "$SS_LDFLAGS"; then + SS_LDFLAGS="$SS_LDFLAGS -pg" + else + SS_LDFLAGS="-pg" + fi + SS_BUILD_FLAGS="P$SS_BUILD_FLAGS" + else + AC_MSG_RESULT([no]) + fi +]) + +AC_DEFUN([AC_SS_CXXFLAGS_FNORTTI], +[ + AC_MSG_CHECKING([if you want to use -fno-rtti]) + + SS_LOCAL_FNORTTI="" + AC_ARG_ENABLE(fno-rtti, + AC_HELP_STRING([--enable-fno-rtti],[Disable runtime type information (dangerous)]), + SS_LOCAL_FNORTTI="true") + + if test -n "$SS_LOCAL_FNORTTI"; then + AC_MSG_RESULT([yes]) + if test -n "$SS_CXXFLAGS"; then + SS_CXXFLAGS="$SS_CXXFLAGS -fno-rtti" + else + SS_CXXFLAGS="-fno-rtti" + fi + else + AC_MSG_RESULT([no]) + fi +]) + +AC_DEFUN([AC_SS_CXXFLAGS_ANSI], +[ + SS_ANSI_COMPILATION="" + AC_MSG_CHECKING([if you want a strict ansi compilation]) + AC_ARG_ENABLE(ansi, + AC_HELP_STRING([--enable-ansi],[Strict ansi compilation (might not compile)]), + SS_ANSI_COMPILATION="true") + + if test -n "$SS_ANSI_COMPILATION"; then + AC_MSG_RESULT([yes]) + if test -n "$SS_CXXFLAGS"; then + SS_CXXFLAGS="$SS_CXXFLAGS -ansi" + else + SS_CXXFLAGS="-ansi" + fi + else + AC_MSG_RESULT([no]) + fi +]) + + +AC_DEFUN([AC_SS_CXXFLAGS_WALL], +[ + SS_WALL_COMPILATION="" + AC_MSG_CHECKING([if you want gcc to be paranoic]) + AC_ARG_ENABLE(wall, + AC_HELP_STRING([--enable-wall],[Make gcc be paranoic (might not compile)]), + SS_WALL_COMPILATION="true") + + if test -n "$SS_WALL_COMPILATION"; then + AC_MSG_RESULT([yes]) + if test -n "$SS_CXXFLAGS"; then + SS_CXXFLAGS="$SS_CXXFLAGS -Wall" + else + SS_CXXFLAGS="-Wall" + fi + else + AC_MSG_RESULT([no]) + fi +]) + + +AC_DEFUN([AC_SS_CXXFLAGS_PEDANTIC], +[ + SS_PEDANTIC_COMPILATION="" + AC_MSG_CHECKING([if you want a strict ansi compilation]) + + AC_ARG_ENABLE(pedantic, + AC_HELP_STRING([--enable-pedantic],[Pedantic compilation (might not compile)]), + SS_PEDANTIC_COMPILATION="true") + + if test -n "$SS_PEDANTIC_COMPILATION"; then + AC_MSG_RESULT([yes]) + if test -n "$SS_CXXFLAGS"; then + SS_CXXFLAGS="$SS_CXXFLAGS -pedantic" + else + SS_CXXFLAGS="-pedantic" + fi + else + AC_MSG_RESULT([no]) + fi +]) + +AC_DEFUN([AC_SS_CXXFLAGS_OPTIMISATION], +[ + AC_MSG_CHECKING([for the optimisation level]) + + SS_LOCAL_OPTIMISATION="" + AC_ARG_ENABLE(optimisation, + AC_HELP_STRING([--enable-optimisation=N],[Use optimisation level N when compiling]), + SS_LOCAL_OPTIMISATION="$enableval") + + if test -n "$SS_LOCAL_OPTIMISATION"; then + AC_MSG_RESULT([using -O$SS_LOCAL_OPTIMISATION]) + if test -n "$SS_CXXFLAGS"; then + SS_CXXFLAGS="$SS_CXXFLAGS -O$SS_LOCAL_OPTIMISATION" + else + SS_CXXFLAGS="-O$SS_LOCAL_OPTIMISATION" + fi + SS_BUILD_FLAGS="$SS_LOCAL_OPTIMISATION$SS_BUILD_FLAGS" + else + AC_MSG_RESULT([using no optimisation flag]) + fi +]) + + + +AC_DEFUN([AC_SS_CXXFLAGS], +[ + SS_CXXFLAGS="" + + AC_SS_CXXFLAGS_DEBUG_SYMBOLS + AC_SS_CXXFLAGS_PROFILING + AC_SS_CXXFLAGS_PIPES + AC_SS_CXXFLAGS_OPTIMISATION + AC_SS_CXXFLAGS_FNORTTI + AC_SS_CXXFLAGS_ANSI + AC_SS_CXXFLAGS_PEDANTIC + AC_SS_CXXFLAGS_WALL + + if test -n "$SS_CXXFLAGS"; then + if test -n "$CXXFLAGS"; then + CXXFLAGS="$CXXFLAGS $SS_CXXFLAGS" + else + CXXFLAGS="$SS_CXXFLAGS" + fi + fi +]) + + +dnl ################################################################################################################### +dnl ### HEADERS AND FUNCTIONS +dnl ################################################################################################################### + +AC_DEFUN([AC_SS_HEADER_CHECKS], +[ + SS_HAS_OSS_SUPPORT="false" + AC_CHECK_HEADER(strings.h) + AC_CHECK_HEADERS(linux/soundcard.h sys/soundcard.h soundcard.h,SS_HAS_OSS_SUPPORT="true") + + if test "$SS_HAS_OSS_SUPPORT" = "true"; then + AC_DEFINE([COMPILE_OSS_SUPPORT], 1, [define if you want to enable OSS sound support]) + fi + +]) + +AC_DEFUN([AC_SS_FUNCTION_CHECKS], +[ + SS_HAVE_IPV6_FUNCTIONS="true" + + AC_CHECK_FUNCS(getenv strerror) + AC_CHECK_FUNCS(inet_ntoa inet_aton) + AC_CHECK_FUNCS(setenv unsetenv putenv) + AC_CHECK_FUNCS(gmtime_r localtime_r) + + AC_CHECK_FUNC(inet_ntop,SS_HAVE_IPV6_FUNCTIONS="true",SS_HAVE_IPV6_FUNCTIONS="false") + AC_CHECK_FUNC(inet_pton,SS_HAVE_IPV6_FUNCTIONS="true",SS_HAVE_IPV6_FUNCTIONS="false") + AC_CHECK_FUNC(getaddrinfo,SS_HAVE_IPV6_FUNCTIONS="true",SS_HAVE_IPV6_FUNCTIONS="false") + + AC_CHECK_FUNCS(getnameinfo) +]) + + + +dnl ################################################################################################################### +dnl ### MISC OPTIONS +dnl ################################################################################################################### + + +AC_DEFUN([AC_SS_MISC_OPTIONS], +[ + AC_MSG_CHECKING([if you want the memory profiling]) + AC_ARG_WITH(memory-profile, [ --with-memory-profile Compile the memory profile],SS_COMPILE_MEMORY_PROFILE="true") + if test "$SS_COMPILE_MEMORY_PROFILE" = "true"; then + AC_MSG_RESULT(yes) + AC_DEFINE([COMPILE_MEMORY_PROFILE], 1, [define if you want the gcc memory profile]) + SS_BUILD_FLAGS="m$SS_BUILD_FLAGS" + else + AC_MSG_RESULT(no) + fi + + AC_MSG_CHECKING([how to waste your time]) + AC_MSG_RESULT(by performing senseless checks) + + AC_MSG_CHECKING([if you want memory checking in malloc]) + AC_ARG_WITH(memory-checks, [ --with-memory-checks Enable malloc memory checks],SS_COMPILE_MEMORY_CHECKS="true") + if test "$SS_COMPILE_MEMORY_CHECKS" = "true"; then + AC_MSG_RESULT(yes) + AC_DEFINE([COMPILE_MEMORY_CHECKS], 1, [define if you want the memory checks]) + SS_BUILD_FLAGS="h$SS_BUILD_FLAGS" + else + AC_MSG_RESULT(no) + fi + + + AC_MSG_CHECKING([if you want to use system memmove]) + AC_ARG_WITH(system-memmove, [ --without-system-memmove Do not use system memmove and memcpy],SS_DO_NOT_USE_SYSTEM_MEMMOVE="true") + if test "$SS_DO_NOT_USE_SYSTEM_MEMMOVE" = "true"; then + AC_MSG_RESULT(no) + else + AC_DEFINE([COMPILE_WITH_SYSTEM_MEMMOVE], 1, [define if you trust your memmove() function]) + AC_MSG_RESULT(yes) + SS_BUILD_FLAGS="s$SS_BUILD_FLAGS" + fi + + AC_MSG_CHECKING([if you want to optimize for big channels]) + AC_ARG_WITH(big-channels, [ --with-big-channels Optimize for big irc channels],SS_OPTIMIZE_BIG_CHANNELS="true") + if test "$SS_OPTIMIZE_BIG_CHANNELS" = "true"; then + AC_MSG_RESULT(yes: using 349 as dict size) + AC_DEFINE_UNQUOTED([AVERAGE_CHANNEL_USERS],349, [define this to the number of average channel users]) + SS_BUILD_FLAGS="b$SS_BUILD_FLAGS" + else + AC_MSG_RESULT(no: using 101 as dict size) + AC_DEFINE_UNQUOTED([AVERAGE_CHANNEL_USERS],101, [define this to the number of average channel users]) + fi + + AC_MSG_CHECKING([if you want ix86 assembly optimisations]) + AC_ARG_WITH(ix86-asm, [ --with-ix86-asm Compile ix86 assembly optimisations],SS_COMPILE_ix86_ASM="true") + if test "$SS_COMPILE_ix86_ASM" = "true"; then + AC_MSG_RESULT(yes) + AC_MSG_CHECKING(target system CPU) + if test "$target_cpu" = "i386"; then + AC_MSG_RESULT(i386 : compiling asm code) + else + if test "$target_cpu" = "i486"; then + AC_MSG_RESULT(i486 : compiling asm code) + else + if test "$target_cpu" = "i586"; then + AC_MSG_RESULT(i586 : compiling asm code) + else + if test "$target_cpu" = "i686"; then + AC_MSG_RESULT(i686 : compiling asm code) + else + AC_MSG_RESULT($target_cpu , no i386 optimisations) + unset SS_COMPILE_ix86_ASM + fi + fi + fi + fi + + if test "$SS_COMPILE_ix86_ASM" = "true"; then + AC_DEFINE([COMPILE_ix86_ASM], 1, [define if you want the i386 asm code]) + SS_BUILD_FLAGS="x$SS_BUILD_FLAGS" + fi + else + AC_MSG_RESULT(no) + fi + + AC_PATH_PROG(SS_MSGFMT,msgfmt,":",$PATH:/bin:/usr/bin:/bin:/usr/local/bin:/usr/X11R6/bin:/usr/lib/qt/bin:/usr/local/qt/bin:/usr/X11R6/qt/bin:/usr/qt/bin:/usr/build/qt/bin) + if test -z "SS_MSGFMT"; then + SS_MSGFMT=":" + fi + AC_SUBST(SS_MSGFMT) + + AC_MSG_CHECKING([if you want the DCC VOICE sound support]) + AC_ARG_WITH(dcc-sound,[ --without-dcc-sound Do not compile the DCC VOICE sound support],SS_NO_SOUND="true") + if test "$SS_NO_SOUND" = "true"; then + AC_MSG_RESULT(no) + AC_DEFINE([COMPILE_DISABLE_DCC_VOICE], 1, [define if you want to disable DCC VOICE sound support]) + else + AC_MSG_RESULT(yes) + SS_BUILD_FLAGS="A$SS_BUILD_FLAGS" + fi + + SS_BUILD_FLAGS="T$SS_BUILD_FLAGS" + AC_DEFINE([COMPILE_INFO_TIPS], 1, [define if you want the info tips to be compiled in]) + + AC_MSG_CHECKING([if you want to disable the ipV6 support]) + AC_ARG_WITH(ipv6-support,[ --without-ipv6-support Do not compile the IpV6 support],SS_NOIPV6_SUPPORT="true") + if test "$SS_NOIPV6_SUPPORT" = "true"; then + AC_MSG_RESULT(yes) + else + AC_MSG_RESULT(no) + fi + + AC_MSG_CHECKING([if you want to disable the cryptography support]) + AC_ARG_WITH(crypt-support,[ --without-crypt-support Do not compile the cryptography support],SS_NOCRYPT_SUPPORT="true") + if test "$SS_NOCRYPT_SUPPORT" = "true"; then + AC_MSG_RESULT(yes) + else + AC_MSG_RESULT(no) + AC_DEFINE([COMPILE_CRYPT_SUPPORT], 1, [define if you want to compile the crypt support]) + SS_BUILD_FLAGS="c$SS_BUILD_FLAGS" + fi + + AC_MSG_CHECKING([if you want to disable the X bell support]) + AC_ARG_WITH(x-bell,[ --without-x-bell Disable the X bell support],SS_NO_X_BELL="true") + if test "$SS_NO_X_BELL" = "true"; then + AC_MSG_RESULT(yes) + AC_DEFINE([COMPILE_NO_X_BELL], 1, [define if you want to disable the X bell support]) + else + AC_MSG_RESULT(no) + fi + + AC_DEFINE([COMPILE_NEW_KVS], 1, [define if you want to enable the new KVS parser]) + AC_DEFINE([COMPILE_ONLY_NEW_KVS], 1, [define if you want to use only the new KVS parser]) + + AC_MSG_CHECKING([if you want to link to the embedded version of qt]) + AC_ARG_WITH(qt-embedded,[ --with-qt-embedded Link to qt-embedded (see INSTALL)],SS_QT3_EMBEDDED="true") + if test "$SS_QT3_EMBEDDED" = "true"; then + AC_MSG_RESULT(yes) + SS_BUILD_FLAGS="E$SS_BUILD_FLAGS" + else + AC_MSG_RESULT(no) + fi + + + AC_MSG_CHECKING([if you want to disable inter-process communication]) + AC_ARG_WITH(ipc,[ --without-ipc Disable inter-process communication support],SS_NO_IPC="true") + if test "$SS_NO_IPC" = "true"; then + AC_MSG_RESULT(yes) + SS_BUILD_FLAGS="I$SS_BUILD_FLAGS" + AC_DEFINE([COMPILE_NO_IPC], 1, [define this if you want to disable the inter-process communication support]) + else + AC_MSG_RESULT(no) + fi + + AC_MSG_CHECKING([if you want to explicitly disable the gsm codec support]) + AC_ARG_WITH(gsm,[ --without-gsm Disable gsm codec support],SS_NO_GSM="true") + if test "$SS_NO_GSM" = "true"; then + AC_MSG_RESULT(yes) + else + AC_DEFINE([COMPILE_USE_GSM], 1, [define if you have libgsm and want the GSM code to be compiled]) + SS_BUILD_FLAGS="G$SS_BUILD_FLAGS" + AC_MSG_RESULT(no) + fi + + + AC_MSG_CHECKING([if you want to ignore SIGALARM]) + AC_ARG_WITH(ignore-sigalarm, [ --with-ignore-sigalarm Ignore SIGALARM in all threads],SS_IGNORE_SIGALARM="true") + if test "$SS_IGNORE_SIGALARM" = "true"; then + AC_MSG_RESULT(yes) + AC_DEFINE([COMPILE_IGNORE_SIGALARM], 1, [define this if you want to ignore the SIGALARM signal]) + SS_BUILD_FLAGS="a$SS_BUILD_FLAGS" + else + AC_MSG_RESULT(no) + fi + + AC_MSG_CHECKING([if you want the pseudo-transparency support]) + AC_ARG_WITH(transparency, [ --without-transparency Do NOT compile the pseudo-transparency support],SS_NO_PSEUDO_TRANSPARENCY="true") + if test "$SS_NO_PSEUDO_TRANSPARENCY" = "true"; then + AC_MSG_RESULT(no) + else + AC_MSG_RESULT(yes) + AC_DEFINE([COMPILE_PSEUDO_TRANSPARENCY], 1, [define if you have the KDE support and want the pseudo transparency]) + SS_BUILD_FLAGS="p$SS_BUILD_FLAGS" + fi + + AC_ARG_WITH(pizza,[ --with-pizza Use this when hungry],SS_PIZZA="true") + +]) + + +dnl ################################################################################################################### +dnl ### DYNAMIC LABELS +dnl ################################################################################################################### + +AC_DEFUN([AC_SS_CHECK_DYNAMIC_LABELS], +[ + AC_MSG_CHECKING([if the compiler supports dynamic labels]) + AC_ARG_WITH(dyn-labels, [ --without-dyn-labels Disable usage of the dynamic label jumps],SS_DISABLE_DYNAMIC_LABELS="true") + if test "$SS_DISABLE_DYNAMIC_LABELS" = "true"; then + AC_MSG_RESULT("no: trusting you") + else + AC_TRY_RUN([ + int main(int argc,char ** argv) + { + int retVal = 10; + void * label = &&action4; + goto action2; + action1: + retVal -= 4; + label = &&endofcode; + goto *label; + action2: + retVal -= 5; + goto *label; + action3: + retVal += 40; + action4: + retVal -= 1; + label = &&action1; + goto *label; + endofcode: + return retVal; + } + ],SS_DISABLE_DYNAMIC_LABELS="false",SS_DISABLE_DYNAMIC_LABELS="true",SS_DISABLE_DYNAMIC_LABELS="true") + + if test "$SS_DISABLE_DYNAMIC_LABELS" = "true"; then + AC_MSG_RESULT("no") + else + AC_MSG_RESULT("yes") + AC_DEFINE([COMPILE_USE_DYNAMIC_LABELS], 1, [define if your compiler supports gotos do dynamic labels]) + fi + fi +]) + +dnl ################################################################################################################### +dnl ### BIG_ENDIAN +dnl ################################################################################################################### + +AC_DEFUN([AC_SS_CHECK_BIG_ENDIAN], +[ + AC_MSG_CHECKING([if this system is big endian]) + AC_TRY_RUN([ + int main(int argc,char ** argv) + { + int nl; + unsigned char * nlc; + nl = 0x12CAFE34; + nlc = (unsigned char *)(&nl); + if((nlc[0] == 0x12) && (nlc[1] == 0xCA) && (nlc[2] == 0xFE) && (nlc[3] == 0x34))return 0; + return 1; + } + ],SS_BIG_ENDIAN_MACHINE="true",SS_BIG_ENDIAN_MACHINE="false",SS_BIG_ENDIAN_MACHINE="false") + + dnl # This will fail if we're cross compiling... + + if test "$SS_BIG_ENDIAN_MACHINE" = "true"; then + AC_MSG_RESULT([yes]) + SS_BUILD_FLAGS="B$SS_BUILD_FLAGS" + AC_DEFINE([BIG_ENDIAN_MACHINE_BYTE_ORDER], 1, [define this if you are on a big endian machine]) + else + AC_MSG_RESULT([no]) + fi +]) + +dnl ################################################################################################################### +dnl ### DLOPEN +dnl ################################################################################################################### + + +AC_DEFUN([AC_SS_CHECK_DL], +[ + AC_MSG_CHECKING([for dlopen capabilities]) + + SS_LINK_TO_LIBDL="no" + + SS_SAVE_LIBS="$LIBS" + LIBS="-rdynamic" + AC_TRY_LINK([ + #include + ],[ + /* sparc-unknown-openbsd3.0 hack */ + #ifndef RTLD_NOW + #define RTLD_NOW RTLD_LAZY + #endif + dlopen("/lib/libc.so.6",RTLD_NOW); + ], + eval "SS_DLOPEN_OK=yes" + , + eval "SS_DLOPEN_OK=no" + ) + LIBS="$SS_SAVE_LIBS" + + if test "$SS_DLOPEN_OK" = "yes"; then + AC_MSG_RESULT([builtin in libc]) + else + + SS_SAVE_LIBS="$LIBS" + LIBS="-rdynamic -ldl" + AC_TRY_LINK([ + #include + ],[ + /* sparc-unknown-openbsd3.0 hack */ + #ifndef RTLD_NOW + #define RTLD_NOW RTLD_LAZY + #endif + dlopen("/usr/lib/libdl.so",RTLD_NOW); + ], + eval "SS_DLOPEN_OK=yes", + eval "SS_DLOPEN_OK=no" + ) + LIBS="$SS_SAVE_LIBS" + + if test "$SS_DLOPEN_OK" = "yes"; then + SS_LINK_TO_LIBDL="yes" + AC_MSG_RESULT([external in libdl]) + else + AC_MSG_RESULT([FAILED]) + AC_SS_SET_REDINK + echo "################################################################################" + echo "### CONFIGURE ERROR:" + echo "### No dlopen capabilities found." + echo "### It looks that your system has no interface to the dynamic linker ?" + echo "### If you're on linux, you either miss libdl , or the linker is not" + echo "### able to find it. Make sure that libdl is in /lib or /usr/lib." + echo "### If you're sure you have libdl, make sure you have also g++ installed." + echo "### If you're not on linux, please drop a mail to pragma at kvirc dot net" + echo "### describing your system and I'll try to fix it." + echo "################################################################################" + AC_SS_SET_NORMALINK + AC_MSG_ERROR(["This was fatal...aborting"]) + fi + fi +]) + + +dnl ################################################################################################################### +dnl ### PERL +dnl ################################################################################################################### + + +AC_DEFUN([AC_SS_CHECK_PERL], +[ + SS_PERL_ENABLE="yes" + SS_PERL_CCFLAGS="" + SS_PERL_LDFLAGS="" + SS_PERL_BINARY="true" + SS_PERL_RESULT_MESSAGE="" + + AC_ARG_ENABLE(perl,AC_HELP_STRING([--enable-perl],[Enable perl scripting support (default=detect)]),eval "SS_PERL_ENABLE=$enableval") + + if test "$SS_PERL_ENABLE" = "yes"; then + AC_PATH_PROG(SS_PERL_BINARY,perl,":",$PATH:/bin:/usr/bin:/bin:/usr/local/bin:/usr/X11R6/bin:/usr/lib/qt/bin:/usr/local/qt/bin:/usr/X11R6/qt/bin:/usr/qt/bin:/usr/build/qt/bin) + if test -z "SS_PERL_BINARY"; then + SS_PERL_RESULT_MESSAGE="disabled: can't find the perl binary" + SS_PERL_ENABLE="no" + SS_PERL_BINARY="true" + fi + else + SS_PERL_RESULT_MESSAGE="disabled by user" + fi + + if test "$SS_PERL_ENABLE" = "yes"; then + AC_MSG_CHECKING([if perl il compiled with MULTIPLICITY option]) + SS_PERL_TEMP=$($SS_PERL_BINARY -V | grep MULTIPLICITY) + if test -z "$SS_PERL_TEMP"; then + AC_MSG_RESULT([no]) + SS_PERL_ENABLE="no" + SS_PERL_BINARY="true" + SS_PERL_RESULT_MESSAGE="disabled: MULTIPLICITY not defined" + fi + fi + + if test "$SS_PERL_ENABLE" = "yes"; then + AC_MSG_CHECKING([for the system perl directory]) + SS_PERL_DIR=$($SS_PERL_BINARY -MConfig -e 'print $Config{archlib}') + SS_PERL_DIR="$SS_PERL_DIR/CORE" + AC_MSG_RESULT([got $SS_PERL_DIR]) + AC_MSG_CHECKING([for the perl ccflags]) + SS_PERL_CCFLAGS=$($SS_PERL_BINARY -MConfig -e 'print $Config{ccflags}') + AC_MSG_RESULT([got $SS_PERL_CCFLAGS]) + AC_MSG_CHECKING([for the perl ldflags]) + SS_PERL_LDFLAGS=$($SS_PERL_BINARY -MExtUtils::Embed -e ldopts) + AC_MSG_RESULT([got $SS_PERL_LDFLAGS]) + + AC_MSG_CHECKING([if we can compile a perl application]) + SS_SAVED_LIBS="$LIBS" + SS_SAVED_CFLAGS="$CFLAGS" + SS_SAVED_CCFLAGS="$CCFLAGS" + SS_SAVED_LDFLAGS="$LDFLAGS" + SS_SAVED_CXXFLAGS="$CXXFLAGS" + SS_SAVED_CPPFLAGS="$CPPFLAGS" + + LIBS="$SS_PERL_LDFLAGS" + LDFLAGS="$LIBS" + CFLAGS="$SS_PERL_CCFLAGS -I$SS_PERL_DIR" + CCFLAGS="$CFLAGS" + CXXFLAGS="$CFLAGS" + CPPFLAGS="$CFLAGS" + + AC_TRY_LINK([ + #include + #include + #include + + extern "C" void boot_DynaLoader(pTHX_ CV* cv); + + extern "C" void xs_init(pTHX) + { + char * file = __FILE__; + newXS("DynaLoader::boot_DynaLoader",boot_DynaLoader,file); + } + + ],[ + PerlInterpreter *my_perl; + my_perl = perl_alloc(); + perl_construct(my_perl); + perl_parse(my_perl,xs_init, 0, 0, (char **)NULL); + perl_run(my_perl); + perl_destruct(my_perl); + perl_free(my_perl); + ], + eval "SS_PERL_ENABLE=yes", + eval "SS_PERL_ENABLE=no" + ) + + SS_PERL_LDFLAGS="$LDFLAGS" + SS_PERL_CCFLAGS="$CCFLAGS" + + LIBS="$SS_SAVED_LIBS" + CFLAGS="$SS_SAVED_CFLAGS" + LDFLAGS="$SS_SAVED_LDFLAGS" + CXXFLAGS="$SS_SAVED_CXXFLAGS" + CPPFLAGS="$SS_SAVED_CPPFLAGS" + CCFLAGS="$SS_SAVED_CCFLAGS" + + if test "$SS_PERL_ENABLE" = "yes"; then + AC_MSG_RESULT([seems ok]) + AC_DEFINE([COMPILE_PERL_SUPPORT], 1, [define if you have perl and want the perl scripting support in kvirc]) + SS_BUILD_FLAGS="p$SS_BUILD_FLAGS" + SS_PERL_RESULT_MESSAGE="enabled" + else + AC_MSG_RESULT([seems broken]) + SS_PERL_RESULT_MESSAGE="disabled: failed to compile the test program" + SS_PERL_LDFLAGS="" + SS_PERL_CCFLAGS="" + fi + fi + + AC_SUBST(SS_PERL_CCFLAGS) + AC_SUBST(SS_PERL_LDFLAGS) + AC_SUBST(SS_PERL_BINARY) + + AC_MSG_CHECKING([for perl scripting support]) + AC_MSG_RESULT([$SS_PERL_RESULT_MESSAGE]) +]) + +dnl ################################################################################################################### +dnl ### OPENSSL +dnl ################################################################################################################### + + +AC_DEFUN([AC_SS_CHECK_OPENSSL], +[ + SS_LINK_TO_LIBSSL="false" + SS_SSL_RESULT_MESSAGE="" + SS_ENABLE_SSL_SUPPORT="yes" + + AC_ARG_ENABLE(ssl,AC_HELP_STRING([--disable-ssl],[Disable OpenSSL support]),eval "SS_ENABLE_SSL_SUPPORT=$enableval") + + if test "$SS_ENABLE_SSL_SUPPORT" = "yes"; then + AC_MSG_CHECKING([If we can compile and link a small SSL test application]) + SS_SAVED_LIBS="$LIBS" + LIBS="-lcrypto -lssl" + AC_TRY_LINK([ + #include + ],[ + SSL_new(0); + ], + eval "SS_ENABLE_SSL_SUPPORT=yes", + eval "SS_ENABLE_SSL_SUPPORT=no" + ) + LIBS="$SS_SAVED_LIBS" + if test "$SS_ENABLE_SSL_SUPPORT" = "yes"; then + AC_MSG_RESULT([yes]) + + AC_CHECK_HEADER(openssl/ssl.h,SS_DUMMY="yes",SS_ENABLE_SSL_SUPPORT="no") + AC_CHECK_HEADER(openssl/err.h,SS_DUMMY="yes",SS_ENABLE_SSL_SUPPORT="no") + AC_CHECK_HEADER(openssl/asn1.h,SS_DUMMY="yes",SS_ENABLE_SSL_SUPPORT="no") + AC_CHECK_HEADER(openssl/evp.h,SS_DUMMY="yes",SS_ENABLE_SSL_SUPPORT="no") + + if test "$SS_ENABLE_SSL_SUPPORT" = "yes"; then + AC_DEFINE([COMPILE_SSL_SUPPORT], 1, [define if you have openssl and want the ssl support in kvirc]) + SS_LINK_TO_LIBSSL="true" + SS_BUILD_FLAGS="o$SS_BUILD_FLAGS" + SS_SSL_RESULT_MESSAGE="enabled" + else + SS_SSL_RESULT_MESSAGE="disabled: missing header files" + fi + else + AC_MSG_RESULT([no]) + SS_SSL_RESULT_MESSAGE="disabled: failed to compile the test program" + fi + else + SS_SSL_RESULT_MESSAGE="disabled by user" + fi + + AC_MSG_CHECKING([for secure connections support]) + AC_MSG_RESULT([$SS_SSL_RESULT_MESSAGE]) +]) + + +dnl ################################################################################################################### +dnl ### ESD +dnl ################################################################################################################### + +AC_DEFUN([AC_SS_CHECK_ESD], +[ + SS_LINK_TO_LIBESD="false" + SS_DISABLE_ESD_SUPPORT="true" + SS_SAVED_LIBS=$LIBS + LIBS="$LIBS -lesd" + AC_CHECK_LIB(esd,esd_play_file,SS_DISABLE_ESD_SUPPORT="false") + LIBS="$SS_SAVED_LIBS" + + if test "$SS_DISABLE_ESD_SUPPORT" = "false"; then + SS_DISABLE_ESD_SUPPORT="true" + AC_CHECK_HEADER(esd.h,SS_DISABLE_ESD_SUPPORT="false") + fi + + AC_MSG_CHECKING([for Esound daemon support]) + AC_ARG_WITH(esd-support, [ --without-esd-support Disable Esound daemon support],SS_DISABLE_ESD_SUPPORT="true") + + if test "$SS_DISABLE_ESD_SUPPORT" = "true"; then + AC_MSG_RESULT(disabled by user) + else + AC_MSG_RESULT(yes: have libs and headers) + AC_DEFINE([COMPILE_ESD_SUPPORT], 1, [define if you want to enable the Esound daemon support]) + SS_LINK_TO_LIBESD="true" + SS_BUILD_FLAGS="e$SS_BUILD_FLAGS" + fi + +]) + +dnl ################################################################################################################### +dnl ### ZLIB +dnl ################################################################################################################### + +AC_DEFUN([AC_SS_CHECK_ZLIB], +[ + SS_LINK_TO_LIBZLIB="no" + SS_DISABLE_ZLIB_SUPPORT="true" + SS_SAVED_LIBS=$LIBS + LIBS="$LIBS -lz" + AC_CHECK_LIB(z,gzopen,SS_DISABLE_ZLIB_SUPPORT="false") + LIBS="$SS_SAVED_LIBS" + + if test "$SS_DISABLE_ZLIB_SUPPORT" = "false"; then + SS_DISABLE_ZLIB_SUPPORT="true" + AC_CHECK_HEADER(zlib.h,SS_DISABLE_ZLIB_SUPPORT="false") + fi + + AC_MSG_CHECKING([for GZip support]) + AC_ARG_WITH(zlib-support, [ --without-zlib-support Disable ZLIB support],SS_DISABLE_ZLIB_SUPPORT="true") + + if test "$SS_DISABLE_ZLIB_SUPPORT" = "true"; then + AC_MSG_RESULT(disabled by user) + else + AC_MSG_RESULT(yes: have libs and headers) + AC_DEFINE([COMPILE_ZLIB_SUPPORT], 1, [define if you want to enable the ZLib library support]) + SS_LINK_TO_LIBZ="yes" + SS_BUILD_FLAGS="Z$SS_BUILD_FLAGS" + fi +]) + +dnl ################################################################################################################### +dnl ### XSS +dnl ################################################################################################################### + +AC_DEFUN([AC_SS_CHECK_XSS], +[ + SS_LINK_TO_XSS="no" + SS_COMPILE_XSS_SUPPORT="false" + SS_SAVED_LIBS=$LIBS + LIBS="$LIBS -lXss" + AC_CHECK_LIB(Xss,XScreenSaverAllocInfo,SS_COMPILE_XSS_SUPPORT="true") + LIBS="$SS_SAVED_LIBS" + + AC_MSG_CHECKING([for Xss support]) + + if test "$SS_COMPILE_XSS_SUPPORT" = "false"; then + AC_MSG_RESULT(disabled) + else + AC_MSG_RESULT(yes: lib is ok) + AC_DEFINE([COMPILE_XSS_SUPPORT], 1, [define if you want to enable the ZLib library support]) + SS_LINK_TO_XSS="yes" + SS_BUILD_FLAGS="$SS_BUILD_FLAGS" + fi +]) + +dnl ################################################################################################################### +dnl ### Audiofile library +dnl ################################################################################################################### + +AC_DEFUN([AC_SS_CHECK_AUDIOFILE], +[ + SS_LINK_TO_LIBAUDIOFILE="false" + SS_DISABLE_AUDIOFILE_SUPPORT="true" + SS_SAVED_LIBS=$LIBS + LIBS="$LIBS -laudiofile" + AC_CHECK_LIB(audiofile,afOpenFile,SS_DISABLE_AUDIOFILE_SUPPORT="false") + + if test "$SS_DISABLE_AUDIOFILE_SUPPORT" = "false"; then + SS_DISABLE_AUDIOFILE_SUPPORT="true" + AC_CHECK_LIB(audiofile,afGetVirtualFrameSize,SS_DISABLE_AUDIOFILE_SUPPORT="false") + fi + + LIBS="$SS_SAVED_LIBS" + + if test "$SS_DISABLE_AUDIOFILE_SUPPORT" = "false"; then + SS_DISABLE_AUDIOFILE_SUPPORT="true" + AC_CHECK_HEADER(audiofile.h,SS_DISABLE_AUDIOFILE_SUPPORT="false") + fi + + AC_MSG_CHECKING([for audiofile support]) + + if test "$SS_DISABLE_AUDIOFILE_SUPPORT" = "true"; then + AC_MSG_RESULT(missing header or libs or wrong version) + else + + if test "$SS_HAS_OSS_SUPPORT" = "false"; then + SS_DISABLE_AUDIOFILE_SUPPORT="true" + AC_MSG_RESULT(no oss support at all) + else + AC_ARG_WITH(af-support, [ --without-af-support Disable Audiofile library for playing files to OSS support], SS_DISABLE_AUDIOFILE_SUPPORT="true") + + if test "$SS_DISABLE_AUDIOFILE_SUPPORT" = "true"; then + AC_MSG_RESULT(disabled by user) + else + AC_MSG_RESULT(yes: have libs and headers) + AC_DEFINE([COMPILE_AUDIOFILE_SUPPORT], 1, [define if you want to enable the Audiofile library support]) + SS_LINK_TO_LIBAUDIOFILE="true" + SS_BUILD_FLAGS="f$SS_BUILD_FLAGS" + fi + fi + fi +]) + +dnl ################################################################################################################### +dnl ### ARTS +dnl ################################################################################################################### + + +AC_DEFUN([AC_SS_CHECK_ARTS], +[ + SS_LINK_TO_LIBARTS="false" + SS_DISABLE_ARTS_SUPPORT="false" + + AC_MSG_CHECKING([if Arts support is requested]) + AC_ARG_WITH(arts-support, [ --without-arts-support Disable Arts daemon support],SS_DISABLE_ARTS_SUPPORT="true") + + if test "$SS_KDE_REQUESTED" = "yes"; then + if test "$SS_DISABLE_ARTS_SUPPORT" = "true"; then + AC_MSG_RESULT(disabled by user) + else + AC_MSG_RESULT([yes]) + AC_MSG_CHECKING(if we can compile a simple Arts application) + AC_LANG_CPLUSPLUS + ss_save_CPPFLAGS="$CPPFLAGS" + ss_save_CXXFLAGS="$CXXFLAGS" + ss_save_LDFLAGS="$LDFLAGS" + ss_save_LIBS="$LIBS" + CPPFLAGS="-I$SS_X_INCDIR -I$SS_QT3_INCDIR -I$SS_KDE_INCDIR $CPPFLAGS $X_CFLAGS" + CXXFLAGS="-O2 -Wall $CXXFLAGS" + LIBS="-L$SS_KDE_LIBDIR -L$SS_X_LIBDIR $SS_X_LDFLAGS $SS_X_LIBLINK -L$SS_QT3_LIBDIR $LIBS -lsoundserver_idl -lkdecore -l$SS_QTLIB_NAME" + if test "$SS_LINK_TO_LIBDL" = "yes"; then + LIBS="$LIBS -ldl"; + fi + LDFLAGS="-s $LDFLAGS" + AC_TRY_LINK([ + #include + ],[ + Arts::Dispatcher * d = new Arts::Dispatcher(); + Arts::SimpleSoundServer *server = new Arts::SimpleSoundServer(Arts::Reference("global:Arts_SimpleSoundServer")); + ], + SS_ARTS_LINKED_OK="TRUE", + SS_ARTS_LINKED_OK="FALSE" + ) + if test "$SS_ARTS_LINKED_OK" = "FALSE"; then + AC_MSG_RESULT(failed) + else + AC_MSG_RESULT(success) + AC_DEFINE([COMPILE_ARTS_SUPPORT], 1, [define if you want to enable the Arts daemon support]) + SS_LINK_TO_LIBARTS="true" + SS_BUILD_FLAGS="r$SS_BUILD_FLAGS" + fi + LIBS="$ss_save_LIBS" + LDFLAGS="$ss_save_LDFLAGS" + CXXFLAGS="$ss_save_CXXFLAGS" + CPPFLAGS="$ss_save_CPPFLAGS" + fi + else + SS_DISABLE_ARTS_SUPPORT="true" + AC_MSG_RESULT([no KDE so no Arts]) + fi +]) + + +dnl ################################################################################################################### +dnl ### INTERFACE ADDRESS STUFF +dnl ################################################################################################################### + +AC_DEFUN([AC_SS_CHECK_IFADDR_STUFF], +[ + AC_MSG_CHECKING([if we can get interface addresses]) + + AC_TRY_LINK([ + #include + #include + #include + #include + #include + #include + ],[ + struct ifreq ifr; + int ret; + struct sockaddr * sa; + ret = IFNAMSIZ; + ret = ioctl(ret,SIOCGIFADDR,&ifr); + if(ifr.ifr_name != 0)sa = (struct sockaddr *)&(ifr.ifr_addr); + ], + eval "SS_DISABLE_IFADDR=false" + , + eval "SS_DISABLE_IFADDR=true" + ) + + if test "$SS_DISABLE_IFADDR" = "true"; then + AC_MSG_RESULT("no") + else + AC_MSG_RESULT("yes") + AC_DEFINE([COMPILE_GET_INTERFACE_ADDRESS], 1, [define if you have the SIOCGIFADDR ioctl and the related headers]) + fi +]) + +dnl ################################################################################################################### +dnl ### PTHREAD +dnl ################################################################################################################### + +AC_DEFUN([AC_SS_CHECK_THREAD_STUFF], +[ + SS_THREAD_LIBLINK="" + + AC_MSG_CHECKING([if you want to use the solaris lthread]) + SS_DO_IT="false" + AC_ARG_WITH(solaris-lthread, [ --with-solaris-lthread Use the Solaris native libthread],SS_DO_IT="true") + if test "$SS_DO_IT" = "true"; then + AC_MSG_RESULT(yes) + SS_THREAD_LIBLINK="-lthread" + AC_DEFINE([COMPILE_THREADS_USE_SOLARIS_LIBTHREAD], 1, [define if you want to use the solaris libthread]) + else + AC_MSG_RESULT(no) + + AC_MSG_CHECKING([if you want to use freebsd native pthread support]) + SS_DO_IT="false" + + AC_ARG_WITH(freebsd-pthread, [ --with-freebsd-pthread Use the FreeBSD native libc_r for threading],SS_DO_IT="true") + if test "$SS_DO_IT" = "true"; then + AC_MSG_RESULT(yes) + SS_THREAD_LIBLINK="-pthread" + AC_DEFINE([COMPILE_THREADS_USE_POSIX], 1, [define if you want to use the pthreads library]) + else + AC_MSG_RESULT(no..using lpthread) + SS_THREAD_LIBLINK="-lpthread" + AC_DEFINE([COMPILE_THREADS_USE_POSIX], 1, [define if you want to use the pthreads library]) + fi + + AC_MSG_CHECKING([if your pthread implementation works]) + SS_DO_IT="false" + AC_ARG_WITH(no-pthread-check, [ --with-no-pthread-check Do not check if pthreads stuff compiles],SS_DO_IT="true") + + if test "$SS_DO_IT" = "true"; then + AC_MSG_RESULT(yes, trusting you) + else + SS_SAVE_LIBS="$LIBS" + LIBS="$SS_THREAD_LIBLINK" + AC_TRY_LINK([ + #include + ],[ + pthread_mutex_lock(0); + ], + eval "SS_PTHREAD_OK=yes" + , + eval "SS_PTHREAD_OK=no" + ) + LIBS="$SS_SAVE_LIBS" + + if test "$SS_PTHREAD_OK" = "yes"; then + AC_MSG_RESULT(yes, it seems to) + else + AC_MSG_RESULT(["FAILED"]) + AC_SS_SET_REDINK + if test "$SS_THREAD_LIBLINK" = "-pthread"; then + echo "################################################################################" + echo "### CONFIGURE ERROR:" + echo "### Failed to compile the pthread test program." + echo "### You have specified to use the native FreeBSD libc_r for threading" + echo "### but it looks that this does not work." + echo "### Make sure that you have libc_r floating around your system" + echo "### and that the -pthread special gcc flag works." + echo "### (You need to use the native FreeBSD gcc compiler for this to work)" + echo "################################################################################" + else + echo "################################################################################" + echo "### CONFIGURE ERROR:" + echo "### Failed to compile the pthread test program." + echo "### It looks that you either don't have libpthread installed or" + echo "### it is not reachable by the linker." + echo "### Make sure that libpthread is in /lib or /usr/lib." + echo "### If you're on solaris you might try the --with-solaris-lthread" + echo "### configure option. If you're on FreeBSD you should use" + echo "### --with-freebsd-pthread." + echo "### Good luck :)" + echo "################################################################################" + fi + AC_SS_SET_NORMALINK + AC_MSG_ERROR(["This was fatal...aborting"]) + fi + fi + fi +]) + +dnl ################################################################################################################### +dnl ### X +dnl ################################################################################################################### + + +AC_DEFUN([AC_SS_FIND_X], +[ + SS_DISABLE_X_SUPPORT="false" + + AC_MSG_CHECKING([if you want to ignore X at all]) + AC_ARG_ENABLE(x-support, [ --disable-x-support Ignore X Windows completely],SS_DISABLE_X_SUPPORT="true") + + if test $SS_DISABLE_X_SUPPORT = "true"; then + AC_DEFINE([COMPILE_NO_X], 1, [define if you want to ignore X Windows completely]) + SS_X_INCDIR="/usr/include" + SS_X_LIBDIR="/usr/lib" + SS_X_LDFLAGS="" + SS_X_CPPFLAGS="" + SS_X_LIBLINK="" + AC_MSG_RESULT(yes) + else + AC_MSG_RESULT(no, proceeding with checks) + AC_PATH_XTRA + + if test -n "$no_x"; then + AC_SS_SET_REDINK + echo "################################################################################" + echo "### CONFIGURE ERROR:" + echo "### Can not find the X libraries." + echo "### Make sure that X is installed on your system and try to run configure again," + echo "### this time passing the --x-includes and --x-libraries options." + echo "### You may also take a look at the config.log file in this directory," + echo "### that will tell you which checks have failed and maybe more about the" + echo "### reason of the failure." + echo "###" + echo "### If you use an environment that does not require X support such as Qt-Mac" + echo "### you may try to rerun configure with --disable-x-support" + echo "################################################################################" + AC_SS_SET_NORMALINK + AC_MSG_ERROR([This was a fatal one...aborting]) + else + # Set the X include and lib dir + SS_X_INCDIR="$x_includes" + SS_X_LIBDIR="$x_libraries" + SS_X_LIBLINK="-lX11 -lXext" + + if test -z "$SS_X_INCDIR"; then + # Ops... X headers not found ? + AC_TRY_COMPILE([ + #include + ],[ + Display * d = XOpenDisplay(0); + XCloseDisplay(d); + ], + eval "ss_x_incdir_found=yes" + , + eval "ss_x_incdir_found=no" + ) + + if test "$ss_x_incdir_found" = "no"; then + AC_SS_SET_REDINK + echo "################################################################################" + echo "### CONFIGURE ERROR:" + echo "### Can not find the X headers." + echo "### Possible reasons:" + echo "### 1) You miss the X server development files (Xlib.h for example)" + echo "###" + echo "### 2) Autoconf/Automake wasn't able to find the headers" + echo "### for some ugly reason." + echo "###" + echo "### You might try looking for a file named Xlib.h in your hard-drive" + echo "### and try passing the --x-includes option to ./configure" + echo "### Remember that if you find Xlib.h in /somepath/include/X11/Xlib.h" + echo "### Then you must pass --x-includes=/somepath/include to ./configure" + echo "### For example, my Xlib.h is in /usr/X11R6/include/X11/Xlib.h" + echo "### then i would try: ./configure --x-includes=/usr/X11R6/include" + echo "### If you can't find Xlib.h on your hard drive then install the X-devel" + echo "### package from your distribution." + echo "### If Xlib.h is there and --x-includes doesn't help, well , there is something" + echo "### wrong with X , autoconf or automake." + echo "### You may also take a look at the config.log file in this directory," + echo "### that will tell you which checks have failed and maybe more about the" + echo "### reason of the failure." + echo "###" + echo "### If you use an environment that does not require X support such as Qt-Mac" + echo "### you may try to rerun configure with --disable-x-support" + echo "################################################################################" + AC_SS_SET_NORMALINK + AC_MSG_ERROR([This was a fatal one...aborting]) + else + # We can compile X programs without any additional path... use a dummy include path then + # Should we print a warning ? + SS_X_INCDIR="/usr/include" + fi + fi + + + if test -z "$SS_X_LIBDIR"; then + # Ops... X libs not found ? + SS_SAVE_LIBS="$LIBS" + SS_SAVE_CFLAGS="$CFLAGS" + SS_SAVE_CPPFLAGS="$CPPFLAGS" + SS_SAVE_CXXFLAGS="$CXXFLAGS" + + CFLAGS="-I$SS_X_INCDIR" + CPPFLAGS="$CFLAGS" + CXXFLAGS="$CFLAGS" + LIBS="$SS_X_LIBLINK" + AC_TRY_LINK([ + #include + ],[ + Display * d = XOpenDisplay(0); + XCloseDisplay(d); + ], + eval "ss_x_libdir_found=yes" + , + eval "ss_x_libdir_found=no" + ) + LIBS="$SS_SAVE_LIBS" + CFLAGS="$SS_SAVE_CFLAGS" + CPPFLAGS="$SS_SAVE_CPPFLAGS" + CXXFLAGS="$SS_SAVE_CXXFLAGS" + + if test "$ss_x_libdir_found" = "no"; then + AC_SS_SET_REDINK + echo "################################################################################" + echo "### CONFIGURE ERROR:" + echo "### Can not find the X libraries." + echo "### Possible reasons:" + echo "### 1) You have no X server : KVIrc can't run on this system" + echo "###" + echo "### 2) Autoconf/Automake wasn't able to find the libraries" + echo "### for some ugly reason." + echo "###" + echo "### You might try looking for a file named libX11.so in your hard-drive" + echo "### and try passing the --x-libraries option to ./configure" + echo "### Remember that if you find libX11.so in /somepath/lib/libX11.so" + echo "### Then you must pass --x-libraries=/somepath/lib to ./configure" + echo "### For example, my libX11.so is in /usr/X11R6/lib/libX11.so" + echo "### then i would try: ./configure --x-libraries=/usr/X11R6/lib" + echo "### If you can't find libX11.so on your hard drive then install the X server" + echo "### package from your distribution." + echo "### If libX11.so is there and --x-libraries doesn't help, well , there is something" + echo "### wrong with X , autoconf or automake." + echo "### You may also take a look at the config.log file in this directory," + echo "### that will tell you which checks have failed and maybe more about the" + echo "### reason of the failure." + echo "###" + echo "### If you use an environment that does not require X support such as Qt-Mac" + echo "### you may try to rerun configure with --disable-x-support" + echo "################################################################################" + AC_SS_SET_NORMALINK + AC_MSG_ERROR([This was a fatal one...aborting]) + else + # We can link X programs without any additional path... use a dummy lib path then + # Should we print a warning ? + SS_X_LIBDIR="/usr/lib" + fi + fi + + # Add any extra libs needed + SS_X_LDFLAGS="" + + if test -n "$X_PRE_LIBS"; then + SS_X_LDFLAGS="$X_PRE_LIBS $SS_X_LDFLAGS" + fi + + if test -n "$X_EXTRA_LIBS"; then + SS_X_LDFLAGS="$SS_X_LDFLAGS $X_EXTRA_LIBS" + fi + + if test -n "$X_LIBS"; then + SS_X_LDFLAGS="$SS_X_LDFLAGS $X_LIBS" + fi + + # Add any extra gcc flags + SS_X_CPPFLAGS=$X_CFLAGS + fi + fi +]) + +dnl ################################################################################################################### +dnl ### QT +dnl ################################################################################################################### + +AC_DEFUN([AC_SS_FIND_QT], +[ + AC_ARG_ENABLE(qt-check, + AC_HELP_STRING([--disable-qt-check],[Do not check if Qt and X compile]), + SS_CHECK_QTX_COMPILE="$withval",SS_CHECK_QTX_COMPILE="NOTGIVEN") + + AC_ARG_ENABLE(qt4, + AC_HELP_STRING([--enable-qt4],[Enable WORK IN PROGRESS Qt4 support]), + SS_USE_QT4="$withval",SS_USE_QT4="no") + + if test "$SS_USE_QT4" = "no"; then + + AC_SS_FIND_QT3_NAME + AC_SS_FIND_QT3_GENERAL_DIR + AC_SS_FIND_QT3_LIBRARY_DIR + AC_SS_FIND_QT3_INCLUDE_DIR + AC_SS_FIND_QT3_MOC + AC_SS_FIND_QT3_MT + + if test "$SS_CHECK_QTX_COMPILE" = "NOTGIVEN"; then + AC_SS_ENSURE_CAN_COMPILE_X_AND_QT3 + fi + else + + AC_SS_FIND_QT4_GENERAL_DIR + AC_SS_FIND_QT4_LIBRARY_DIR + AC_SS_FIND_QT4_INCLUDE_DIR + AC_SS_FIND_QT4_MOC + + + if test "$SS_CHECK_QTX_COMPILE" = "NOTGIVEN"; then + AC_SS_ENSURE_CAN_COMPILE_X_AND_QT4 + fi + + fi +]) + +AC_DEFUN([AC_SS_FIND_QT3_NAME], +[ + AC_MSG_CHECKING([for the Qt library name]) + AC_ARG_WITH(qt-name,[ --with-qt-name=NAME Use NAME instead of \"qt\" as Qt library name],SS_QTLIB_NAME="$withval",SS_QTLIB_NAME="qt") + AC_MSG_RESULT("$SS_QTLIB_NAME") +]) + +AC_DEFUN([AC_SS_FIND_QT3_GENERAL_DIR], +[ + AC_MSG_CHECKING([for the general Qt3.x directory]) + + ss_qt_general_test_dirs="/usr/local /usr /usr/X11R6 /usr/lib /opt /opt/kde /kde /usr/kde /usr/build /usr/src /usr/local/lib /" + ss_qt_general_test_dirs="$ss_qt_general_test_dirs /usr/local/kde /usr/opt/kde" + + if test -n "$HOME"; then + ss_qt_general_test_dirs="$ss_qt_general_test_dirs $HOME $HOME/lib" + fi + + if test -n "$QTDIR"; then + ss_qt_general_test_dirs="$QTDIR $ss_qt_general_test_dirs" + fi + + ss_qt_general_test_path_suffix="qt$SS_QT3_MAJOR_VERSION_REQUIRED.$SS_QT3_MINOR_VERSION_REQUIRED.$SS_QT3_PATCH_LEVEL_REQUIRED" + ss_qt_general_test_path_suffix="$ss_qt_general_test_path_suffix qt.$SS_QT3_MAJOR_VERSION_REQUIRED.$SS_QT3_MINOR_VERSION_REQUIRED.$SS_QT3_PATCH_LEVEL_REQUIRED" + ss_qt_general_test_path_suffix="$ss_qt_general_test_path_suffix qt.$SS_QT3_MAJOR_VERSION_REQUIRED$SS_QT3_MINOR_VERSION_REQUIRED$SS_QT3_PATCH_LEVEL_REQUIRED" + ss_qt_general_test_path_suffix="$ss_qt_general_test_path_suffix qt-$SS_QT3_MAJOR_VERSION_REQUIRED.$SS_QT3_MINOR_VERSION_REQUIRED.$SS_QT3_PATCH_LEVEL_REQUIRED" + ss_qt_general_test_path_suffix="$ss_qt_general_test_path_suffix qt-$SS_QT3_MAJOR_VERSION_REQUIRED$SS_QT3_MINOR_VERSION_REQUIRED$SS_QT3_PATCH_LEVEL_REQUIRED" + ss_qt_general_test_path_suffix="$ss_qt_general_test_path_suffix qt$SS_QT3_MAJOR_VERSION_REQUIRED.$SS_QT3_MINOR_VERSION_REQUIRED" + ss_qt_general_test_path_suffix="$ss_qt_general_test_path_suffix qt.$SS_QT3_MAJOR_VERSION_REQUIRED.$SS_QT3_MINOR_VERSION_REQUIRED" + ss_qt_general_test_path_suffix="$ss_qt_general_test_path_suffix qt.$SS_QT3_MAJOR_VERSION_REQUIRED$SS_QT3_MINOR_VERSION_REQUIRED" + ss_qt_general_test_path_suffix="$ss_qt_general_test_path_suffix qt-$SS_QT3_MAJOR_VERSION_REQUIRED.$SS_QT3_MINOR_VERSION_REQUIRED" + ss_qt_general_test_path_suffix="$ss_qt_general_test_path_suffix qt-$SS_QT3_MAJOR_VERSION_REQUIRED$SS_QT3_MINOR_VERSION_REQUIRED" + ss_qt_general_test_path_suffix="$ss_qt_general_test_path_suffix qt$SS_QT3_MAJOR_VERSION_REQUIRED" + ss_qt_general_test_path_suffix="$ss_qt_general_test_path_suffix qt.$SS_QT3_MAJOR_VERSION_REQUIRED" + ss_qt_general_test_path_suffix="$ss_qt_general_test_path_suffix qt-$SS_QT3_MAJOR_VERSION_REQUIRED" + ss_qt_general_test_path_suffix="$ss_qt_general_test_path_suffix lib" + ss_qt_general_test_path_suffix="$ss_qt_general_test_path_suffix qt ." + + AC_SS_FIND_FILE_PATH_EXT($SS_QT3_GENERAL_FILE_TO_SEARCH,$ss_qt_general_test_dirs,$ss_qt_general_test_path_suffix,SS_QT3_GENERAL_DIR) + if test "$SS_QT3_GENERAL_DIR" = "FAILED"; then + AC_MSG_RESULT([failed...continuing with normal checks]) + unset SS_QT3_GENERAL_DIR + else + AC_MSG_RESULT([Seems to be $SS_QT3_GENERAL_DIR]) + fi +]) + +AC_DEFUN([AC_SS_FIND_QT4_GENERAL_DIR], +[ + AC_MSG_CHECKING([for the general Qt4.x directory]) + + ss_qt_general_test_dirs="/usr/local /usr /usr/X11R6 /usr/lib /opt /opt/kde /kde /usr/kde /usr/build /usr/src /usr/local/lib /" + ss_qt_general_test_dirs="$ss_qt_general_test_dirs /usr/local/kde /usr/opt/kde /usr/lib/qt4 /usr/local/lib/qt4" + + if test -n "$HOME"; then + ss_qt_general_test_dirs="$ss_qt_general_test_dirs $HOME $HOME/lib" + fi + + if test -n "$QTDIR"; then + ss_qt_general_test_dirs="$QTDIR $ss_qt_general_test_dirs" + fi + + ss_qt_general_test_path_suffix="qt$SS_QT4_MAJOR_VERSION_REQUIRED.$SS_QT4_MINOR_VERSION_REQUIRED.$SS_QT4_PATCH_LEVEL_REQUIRED" + ss_qt_general_test_path_suffix="$ss_qt_general_test_path_suffix qt.$SS_QT4_MAJOR_VERSION_REQUIRED.$SS_QT4_MINOR_VERSION_REQUIRED.$SS_QT4_PATCH_LEVEL_REQUIRED" + ss_qt_general_test_path_suffix="$ss_qt_general_test_path_suffix qt.$SS_QT4_MAJOR_VERSION_REQUIRED$SS_QT4_MINOR_VERSION_REQUIRED$SS_QT4_PATCH_LEVEL_REQUIRED" + ss_qt_general_test_path_suffix="$ss_qt_general_test_path_suffix qt-$SS_QT4_MAJOR_VERSION_REQUIRED.$SS_QT4_MINOR_VERSION_REQUIRED.$SS_QT4_PATCH_LEVEL_REQUIRED" + ss_qt_general_test_path_suffix="$ss_qt_general_test_path_suffix qt-$SS_QT4_MAJOR_VERSION_REQUIRED$SS_QT4_MINOR_VERSION_REQUIRED$SS_QT4_PATCH_LEVEL_REQUIRED" + ss_qt_general_test_path_suffix="$ss_qt_general_test_path_suffix qt$SS_QT4_MAJOR_VERSION_REQUIRED.$SS_QT4_MINOR_VERSION_REQUIRED" + ss_qt_general_test_path_suffix="$ss_qt_general_test_path_suffix qt.$SS_QT4_MAJOR_VERSION_REQUIRED.$SS_QT4_MINOR_VERSION_REQUIRED" + ss_qt_general_test_path_suffix="$ss_qt_general_test_path_suffix qt.$SS_QT4_MAJOR_VERSION_REQUIRED$SS_QT4_MINOR_VERSION_REQUIRED" + ss_qt_general_test_path_suffix="$ss_qt_general_test_path_suffix qt-$SS_QT4_MAJOR_VERSION_REQUIRED.$SS_QT4_MINOR_VERSION_REQUIRED" + ss_qt_general_test_path_suffix="$ss_qt_general_test_path_suffix qt-$SS_QT4_MAJOR_VERSION_REQUIRED$SS_QT4_MINOR_VERSION_REQUIRED" + ss_qt_general_test_path_suffix="$ss_qt_general_test_path_suffix qt$SS_QT4_MAJOR_VERSION_REQUIRED" + ss_qt_general_test_path_suffix="$ss_qt_general_test_path_suffix qt.$SS_QT4_MAJOR_VERSION_REQUIRED" + ss_qt_general_test_path_suffix="$ss_qt_general_test_path_suffix qt-$SS_QT4_MAJOR_VERSION_REQUIRED" + ss_qt_general_test_path_suffix="$ss_qt_general_test_path_suffix lib" + ss_qt_general_test_path_suffix="$ss_qt_general_test_path_suffix qt ." + + AC_SS_FIND_FILE_PATH_EXT($SS_QT4_GENERAL_FILE_TO_SEARCH,$ss_qt_general_test_dirs,$ss_qt_general_test_path_suffix,SS_QT4_GENERAL_DIR) + if test "$SS_QT4_GENERAL_DIR" = "FAILED"; then + AC_MSG_RESULT([failed...continuing with normal checks]) + unset SS_QT4_GENERAL_DIR + else + AC_MSG_RESULT([Seems to be $SS_QT4_GENERAL_DIR]) + fi +]) + + +AC_DEFUN([AC_SS_FIND_QT3_INCLUDE_DIR], +[ + AC_ARG_WITH(qt-include-dir,[ --with-qt-include-dir path to the Qt 3.x headers ],SS_QT3_INCDIR="$withval",SS_QT3_INCDIR="NOTGIVEN") + if test "$SS_QT3_INCDIR" = "NOTGIVEN"; then + + AC_MSG_CHECKING([for the Qt 3.x header files]) + + ss_qt_include_test_dirs="$SS_QT3_GENERAL_DIR/include /include /usr/include /usr/local/include /usr/qt/include /usr/local/qt/include /usr/X11R6/include /usr/lib/qt/include /usr/lib/qt /usr/include/X11" + test -n "$QTDIR" && ss_qt_include_test_dirs="$QTDIR/include $QTDIR $ss_qt_include_test_dirs" + ss_qt_include_test_dirs="$ss_qt_include_test_dirs /usr/include/qt /usr/include/qt3 /usr/local/include/qt /include/qt /usr/X11R6/include/qt /usr/build/qt/include" + ss_qt_include_test_dirs="$ss_qt_include_test_dirs /usr/include/qt$SS_QT3_MAJOR_VERSION_REQUIRED /usr/include/qt-$SS_QT3_MAJOR_VERSION_REQUIRED /usr/local/include/qt$SS_QT3_MAJOR_VERSION_REQUIRED" + ss_qt_include_test_dirs="$ss_qt_include_test_dirs /include/qt$SS_QT3_MAJOR_VERSION_REQUIRED /usr/X11R6/include/qt$SS_QT3_MAJOR_VERSION_REQUIRED" + ss_qt_include_test_dirs="$ss_qt_include_test_dirs /usr/include/X11/qt$SS_QT3_MAJOR_VERSION_REQUIRED /opt/qt /opt/kde/qt" + + AC_SS_FIND_FILE_PATH($SS_QT3_INCLUDE_FILE_TO_SEARCH,$ss_qt_include_test_dirs,SS_QT3_INCDIR) + + if test "$SS_QT3_INCDIR" = "FAILED"; then + AC_MSG_RESULT([FAILED]) + AC_SS_SET_REDINK + echo "################################################################################" + echo "### CONFIGURE ERROR:" + echo "### Can not find the qt 3.x header files." + echo "### Make sure that qt is correctly installed on your system," + echo "### and the qt version is the one requested by this version of kvirc." + echo "### Try to run configure again, this time passing the --with-qt-include-dir" + echo "### option (see ./configure --help)." + echo "### You may also take a look at the config.log file in this directory," + echo "### that will tell you which check has failed and maybe more about the reason" + echo "### of the failure." + echo "### If you're feeling that this may be a bug in this configure script" + echo "### and want to report this to me , please include your configure script," + echo "### the config.log file as well as the complete configure output." + echo "################################################################################" + AC_SS_SET_NORMALINK + AC_MSG_ERROR([This was a fatal one...aborting]) + else + AC_MSG_RESULT([found in $SS_QT3_INCDIR]) + fi + + else + AC_MSG_RESULT([using user supplied path for the Qt 3.x include files $SS_QT3_INCDIR]) + fi +]) + + +AC_DEFUN([AC_SS_FIND_QT4_INCLUDE_DIR], +[ + AC_ARG_WITH(qt4-include-dir,[ --with-qt4-include-dir path to the Qt 4.x headers ],SS_QT4_INCDIR="$withval",SS_QT4_INCDIR="NOTGIVEN") + if test "$SS_QT4_INCDIR" = "NOTGIVEN"; then + + AC_MSG_CHECKING([for the Qt 4.x header files]) + + ss_qt_include_test_dirs="$SS_QT4_GENERAL_DIR/include /include /usr/include /usr/local/include /usr/qt/include /usr/include/qt4 /usr/qt4/include /usr/local/qt/include /usr/X11R6/include /usr/lib/qt/include /usr/lib/qt /usr/include/X11" + test -n "$QTDIR" && ss_qt_include_test_dirs="$QTDIR/include $QTDIR $ss_qt_include_test_dirs" + ss_qt_include_test_dirs="$ss_qt_include_test_dirs /usr/include/qt /usr/include/qt4 /usr/local/include/qt /include/qt /usr/X11R6/include/qt /usr/build/qt/include" + ss_qt_include_test_dirs="$ss_qt_include_test_dirs /usr/include/qt$SS_QT4_MAJOR_VERSION_REQUIRED /usr/include/qt-$SS_QT4_MAJOR_VERSION_REQUIRED /usr/local/include/qt$SS_QT4_MAJOR_VERSION_REQUIRED" + ss_qt_include_test_dirs="$ss_qt_include_test_dirs /include/qt$SS_QT4_MAJOR_VERSION_REQUIRED /usr/X11R6/include/qt$SS_QT4_MAJOR_VERSION_REQUIRED" + ss_qt_include_test_dirs="$ss_qt_include_test_dirs /usr/include/X11/qt$SS_QT4_MAJOR_VERSION_REQUIRED /opt/qt /opt/kde/qt" + + AC_SS_FIND_FILE_PATH($SS_QT4_INCLUDE_FILE_TO_SEARCH,$ss_qt_include_test_dirs,SS_QT4_INCDIR) + + if test "$SS_QT4_INCDIR" = "FAILED"; then + AC_MSG_RESULT([FAILED]) + AC_SS_SET_REDINK + echo "################################################################################" + echo "### CONFIGURE ERROR:" + echo "### Can not find the qt 4.x header files." + echo "### Make sure that qt is correctly installed on your system," + echo "### and the qt version is the one requested by this version of kvirc." + echo "### Try to run configure again, this time passing the --with-qt4-include-dir" + echo "### option (see ./configure --help)." + echo "### You may also take a look at the config.log file in this directory," + echo "### that will tell you which check has failed and maybe more about the reason" + echo "### of the failure." + echo "### If you're feeling that this may be a bug in this configure script" + echo "### and want to report this to me , please include your configure script," + echo "### the config.log file as well as the complete configure output." + echo "################################################################################" + AC_SS_SET_NORMALINK + AC_MSG_ERROR([This was a fatal one...aborting]) + else + AC_MSG_RESULT([found in $SS_QT4_INCDIR]) + fi + + else + AC_MSG_RESULT([using user supplied path for the Qt 4.x include files $SS_QT4_INCDIR]) + fi + + SS_QT4_INCDIRECTORIES="-I$SS_QT4_INCDIR -I$SS_QT4_INCDIR/Qt/ -I$SS_QT4_INCDIR/QtCore/ -I$SS_QT4_INCDIR/QtGui/"; +]) + + +AC_DEFUN([AC_SS_FIND_QT3_LIBRARY_DIR], +[ + AC_ARG_WITH(qt-library-dir,[ --with-qt-library-dir path to the Qt 3.x library ],SS_QT3_LIBDIR="$withval",SS_QT3_LIBDIR="NOTGIVEN") + if test "$SS_QT3_LIBDIR" = "NOTGIVEN"; then + AC_MSG_CHECKING([for the Qt library]) + + ss_qt_library_test_dirs="$SS_QT3_GENERAL_DIR/lib /lib /usr/lib /usr/local/lib /usr/qt/lib /usr/local/qt/lib /usr/X11R6/lib /usr/lib/qt/lib /usr/lib/qt /usr/local/lib/qt/lib" + test -n "$QTDIR" && ss_qt_library_test_dirs="$QTDIR/lib $QTDIR $ss_qt_library_test_dirs" + ss_qt_library_test_dirs="$ss_qt_library_test_dirs /usr/local/lib/qt /usr/X11R6/lib/qt /usr/build/qt/lib /opt/lib /opt/qt/lib" + + ss_qt_libs_to_find="lib$SS_QTLIB_NAME-mt.so.$SS_QT3_MAJOR_VERSION_REQUIRED.$SS_QT3_MINOR_VERSION_REQUIRED.$SS_QT3_PATCH_LEVEL_REQUIRED" + ss_qt_libs_to_find="$ss_qt_libs_to_find lib$SS_QTLIB_NAME-mt.so.$SS_QT3_MAJOR_VERSION_REQUIRED.$SS_QT3_MINOR_VERSION_REQUIRED" + ss_qt_libs_to_find="$ss_qt_libs_to_find lib$SS_QTLIB_NAME-mt.so.$SS_QT3_MAJOR_VERSION_REQUIRED" + ss_qt_libs_to_find="$ss_qt_libs_to_find lib$SS_QTLIB_NAME-mt.so" + ss_qt_libs_to_find="$ss_qt_libs_to_find lib$SS_QTLIB_NAME.so.$SS_QT3_MAJOR_VERSION_REQUIRED.$SS_QT3_MINOR_VERSION_REQUIRED.$SS_QT3_PATCH_LEVEL_REQUIRED" + ss_qt_libs_to_find="$ss_qt_libs_to_find lib$SS_QTLIB_NAME.so.$SS_QT3_MAJOR_VERSION_REQUIRED.$SS_QT3_MINOR_VERSION_REQUIRED" + ss_qt_libs_to_find="$ss_qt_libs_to_find lib$SS_QTLIB_NAME.so.$SS_QT3_MAJOR_VERSION_REQUIRED" + ss_qt_libs_to_find="$ss_qt_libs_to_find lib$SS_QTLIB_NAME.so" + ss_qt_libs_to_find="$ss_qt_libs_to_find lib$SS_QTLIB_NAME-mt.$SS_QT3_MAJOR_VERSION_REQUIRED.$SS_QT3_MINOR_VERSION_REQUIRED.$SS_QT3_PATCH_LEVEL_REQUIRED.dylib" + ss_qt_libs_to_find="$ss_qt_libs_to_find lib$SS_QTLIB_NAME-mt.$SS_QT3_MAJOR_VERSION_REQUIRED.$SS_QT3_MINOR_VERSION_REQUIRED.dylib" + ss_qt_libs_to_find="$ss_qt_libs_to_find lib$SS_QTLIB_NAME-mt.$SS_QT3_MAJOR_VERSION_REQUIRED.dylib" + ss_qt_libs_to_find="$ss_qt_libs_to_find lib$SS_QTLIB_NAME-mt.dylib" + ss_qt_libs_to_find="$ss_qt_libs_to_find lib$SS_QTLIB_NAME.$SS_QT3_MAJOR_VERSION_REQUIRED.$SS_QT3_MINOR_VERSION_REQUIRED.$SS_QT3_PATCH_LEVEL_REQUIRED.dylib" + ss_qt_libs_to_find="$ss_qt_libs_to_find lib$SS_QTLIB_NAME.$SS_QT3_MAJOR_VERSION_REQUIRED.$SS_QT3_MINOR_VERSION_REQUIRED.dylib" + ss_qt_libs_to_find="$ss_qt_libs_to_find lib$SS_QTLIB_NAME.$SS_QT3_MAJOR_VERSION_REQUIRED.dylib" + ss_qt_libs_to_find="$ss_qt_libs_to_find lib$SS_QTLIB_NAME.dylib" + ss_qt_libs_to_find="$ss_qt_libs_to_find lib$SS_QTLIB_NAME-mt.a" + ss_qt_libs_to_find="$ss_qt_libs_to_find lib$SS_QTLIB_NAME.a" + + AC_SS_FIND_FILE_PATH($ss_qt_libs_to_find,$ss_qt_library_test_dirs,SS_QT3_LIBDIR) + + if test "$SS_QT3_LIBDIR" = "FAILED"; then + AC_MSG_RESULT([FAILED]) + AC_SS_SET_REDINK + echo "################################################################################" + echo "### CONFIGURE ERROR:" + echo "### Can not find the qt 3.x library file." + echo "### Make sure that qt is correctly installed on your system," + echo "### and the qt version is the one requested by this version of kvirc." + echo "### (Usually a greater version is OK too)" + echo "### Try to run configure again, this time passing the --with-qt-library-dir" + echo "### option (see ./configure --help)." + echo "### You may also take a look at the config.log file in this directory," + echo "### that will tell you which check has failed and maybe more about the reason" + echo "### of the failure." + echo "### If you're feeling that this may be a bug in this configure script" + echo "### and want to report this to me , please include your configure script," + echo "### the config.log file as well as the complete configure output." + echo "################################################################################" + AC_SS_SET_NORMALINK + AC_MSG_ERROR([This was a fatal one...aborting]) + else + AC_MSG_RESULT([found in $SS_QT3_LIBDIR]) + fi + else + AC_MSG_RESULT([using user supplied path for the Qt library $SS_QT3_LIBDIR]) + fi +]) + + +AC_DEFUN([AC_SS_FIND_QT4_LIBRARY_DIR], +[ + AC_ARG_WITH(qt4-library-dir,[ --with-qt4-library-dir path to the Qt 4.x library ],SS_QT4_LIBDIR="$withval",SS_QT4_LIBDIR="NOTGIVEN") + if test "$SS_QT4_LIBDIR" = "NOTGIVEN"; then + AC_MSG_CHECKING([for the Qt 4.x libraries]) + + ss_qt_library_test_dirs="$SS_QT4_GENERAL_DIR/lib /lib /usr/lib /usr/local/lib /usr/qt/lib /usr/local/qt/lib /usr/X11R6/lib /usr/lib/qt/lib /usr/lib/qt /usr/local/lib/qt/lib" + test -n "$QTDIR" && ss_qt_library_test_dirs="$QTDIR/lib $QTDIR $ss_qt_library_test_dirs" + ss_qt_library_test_dirs="$ss_qt_library_test_dirs /usr/local/lib/qt /usr/X11R6/lib/qt /usr/build/qt/lib /opt/lib /opt/qt/lib" + ss_qt_library_test_dirs="$ss_qt_library_test_dirs /usr/lib/qt4 /usr/local/lib/qt4 /usr/X11R6/lib/qt4" + ss_qt_library_test_dirs="$ss_qt_library_test_dirs /usr/build/qt4/lib /opt/qt4/lib" + + ss_qt_libs_to_find="libQtCore.so.$SS_QT4_MAJOR_VERSION_REQUIRED.$SS_QT4_MINOR_VERSION_REQUIRED.$SS_QT4_PATCH_LEVEL_REQUIRED" + ss_qt_libs_to_find="$ss_qt_libs_to_find libQtCore.so.$SS_QT4_MAJOR_VERSION_REQUIRED.$SS_QT4_MINOR_VERSION_REQUIRED" + ss_qt_libs_to_find="$ss_qt_libs_to_find libQtCore.so.$SS_QT4_MAJOR_VERSION_REQUIRED" + ss_qt_libs_to_find="$ss_qt_libs_to_find libQtCore.so" + ss_qt_libs_to_find="$ss_qt_libs_to_find libQtCore.so.$SS_QT4_MAJOR_VERSION_REQUIRED.$SS_QT4_MINOR_VERSION_REQUIRED.dylib" + ss_qt_libs_to_find="$ss_qt_libs_to_find libQtCore.so.$SS_QT4_MAJOR_VERSION_REQUIRED.dylib" + ss_qt_libs_to_find="$ss_qt_libs_to_find libQtCore.so.dylib" + ss_qt_libs_to_find="$ss_qt_libs_to_find libQtCore.so.a" + + AC_SS_FIND_FILE_PATH($ss_qt_libs_to_find,$ss_qt_library_test_dirs,SS_QT4_LIBDIR) + + if test "$SS_QT4_LIBDIR" = "FAILED"; then + AC_MSG_RESULT([FAILED]) + AC_SS_SET_REDINK + echo "################################################################################" + echo "### CONFIGURE ERROR:" + echo "### Can not find the qt 4.x library files." + echo "### Make sure that qt is correctly installed on your system," + echo "### and the qt version is the one requested by this version of kvirc." + echo "### (Usually a greater version is OK too)" + echo "### Try to run configure again, this time passing the --with-qt4-library-dir" + echo "### option (see ./configure --help)." + echo "### You may also take a look at the config.log file in this directory," + echo "### that will tell you which check has failed and maybe more about the reason" + echo "### of the failure." + echo "### If you're feeling that this may be a bug in this configure script" + echo "### and want to report this to me , please include your configure script," + echo "### the config.log file as well as the complete configure output." + echo "################################################################################" + AC_SS_SET_NORMALINK + AC_MSG_ERROR([This was a fatal one...aborting]) + else + AC_MSG_RESULT([found in $SS_QT4_LIBDIR]) + fi + else + AC_MSG_RESULT([using user supplied path for the Qt 4.x library $SS_QT4_LIBDIR]) + fi +]) + + +AC_DEFUN([AC_SS_FIND_QT3_MOC], +[ + AC_ARG_WITH(qt-moc,[ --with-qt-moc filename of the Qt 3.x meta object compiler ],SS_QT3_MOC="$withval",SS_QT3_MOC="NOTGIVEN") + + if test "$SS_QT3_MOC" = "NOTGIVEN"; then + AC_MSG_CHECKING([for the Qt 3.x moc]) + + unset SS_QT3_MOC + ss_moc_test_dirs="$QTDIR/bin $PATH /usr/bin /bin /usr/local/bin /usr/X11R6/bin /usr/lib/qt/bin /usr/local/qt/bin /usr/X11R6/qt/bin /usr/qt/bin /usr/build/qt/bin" + if test -n "$SS_QT3_GENERAL_DIR"; then + ss_moc_test_dirs="$SS_QT3_GENERAL_DIR/bin $ss_moc_test_dirs" + fi + + AC_SS_FIND_FILE_PATH(moc,$ss_moc_test_dirs,SS_QT3_MOC) + + if test "$SS_QT3_MOC" = "FAILED"; then + AC_MSG_RESULT([FAILED]) + AC_SS_SET_REDINK + echo "################################################################################" + echo "### CONFIGURE ERROR:" + echo "### The Qt meta object compiler can not be found." + echo "### Make sure that qt is correctly installed on your system, it is on your path," + echo "### and the qt version is the one requested by this version of kvirc." + echo "### Try to run configure again, this time passing the --with-qt-moc" + echo "### option (see ./configure --help)." + echo "### You may also take a look at the config.log file in this directory," + echo "### that will tell you which check has failed and maybe more about the reason" + echo "### of the failure." + echo "### If you're feeling that this may be a bug in this configure script" + echo "### and want to report this to me , please include your configure script," + echo "### the config.log file as well as the complete configure output." + echo "################################################################################" + AC_SS_SET_NORMALINK + AC_MSG_ERROR([This was a fatal one...aborting]) + else + SS_QT3_MOC="$SS_QT3_MOC/moc" + AC_MSG_RESULT([found as $SS_QT3_MOC]) + fi + else + AC_MSG_RESULT([trusting you: using $SS_QT3_MOC]) + fi +]) + + +AC_DEFUN([AC_SS_FIND_QT4_MOC], +[ + AC_ARG_WITH(qt4-moc,[ --with-qt4-moc filename of the Qt 4.x meta object compiler ],SS_QT4_MOC="$withval",SS_QT4_MOC="NOTGIVEN") + + if test "$SS_QT4_MOC" = "NOTGIVEN"; then + AC_MSG_CHECKING([for the Qt 4.x moc]) + + unset SS_QT4_MOC + ss_moc_test_dirs="$QTDIR/bin $PATH /usr/bin /bin /usr/local/bin /usr/X11R6/bin /usr/lib/qt/bin /usr/local/qt/bin /usr/X11R6/qt/bin /usr/qt/bin /usr/build/qt/bin" + if test -n "$SS_QT4_GENERAL_DIR"; then + ss_moc_test_dirs="$SS_QT4_GENERAL_DIR/bin $ss_moc_test_dirs" + fi + + AC_SS_FIND_FILE_PATH(moc,$ss_moc_test_dirs,SS_QT4_MOC) + + if test "$SS_QT4_MOC" = "FAILED"; then + AC_MSG_RESULT([FAILED]) + AC_SS_SET_REDINK + echo "################################################################################" + echo "### CONFIGURE ERROR:" + echo "### The Qt 4.x meta object compiler can not be found." + echo "### Make sure that qt is correctly installed on your system, it is on your path," + echo "### and the qt version is the one requested by this version of kvirc." + echo "### In particular you should make sure that the moc compiler is NOT the one" + echo "### shipped with Qt 3.x." + echo "### Try to run configure again, this time passing the --with-qt4-moc" + echo "### option (see ./configure --help)." + echo "### You may also take a look at the config.log file in this directory," + echo "### that will tell you which check has failed and maybe more about the reason" + echo "### of the failure." + echo "### If you're feeling that this may be a bug in this configure script" + echo "### and want to report this to me , please include your configure script," + echo "### the config.log file as well as the complete configure output." + echo "################################################################################" + AC_SS_SET_NORMALINK + AC_MSG_ERROR([This was a fatal one...aborting]) + else + SS_QT4_MOC="$SS_QT4_MOC/moc" + AC_MSG_RESULT([found as $SS_QT4_MOC]) + fi + else + AC_MSG_RESULT([trusting you: using $SS_QT4_MOC]) + fi +]) + + +AC_DEFUN([AC_SS_FIND_QT3_MT], +[ + AC_ARG_ENABLE(qt-mt,[ --disable-qt-mt ignore the threaded version of Qt],SS_QT3_NOMT="$withval",SS_QT3_NOMT="NOTGIVEN") + + AC_MSG_CHECKING([for the multithreaded version of Qt]) + + if test "$SS_QT3_NOMT" = "NOTGIVEN"; then + ss_qt_libs_to_find="lib$SS_QTLIB_NAME-mt.so.$SS_QT3_MAJOR_VERSION_REQUIRED.$SS_QT3_MINOR_VERSION_REQUIRED.$SS_QT3_PATCH_LEVEL_REQUIRED" + ss_qt_libs_to_find="$ss_qt_libs_to_find lib$SS_QTLIB_NAME-mt.so.$SS_QT3_MAJOR_VERSION_REQUIRED.$SS_QT3_MINOR_VERSION_REQUIRED" + ss_qt_libs_to_find="$ss_qt_libs_to_find lib$SS_QTLIB_NAME-mt.so.$SS_QT3_MAJOR_VERSION_REQUIRED" + ss_qt_libs_to_find="$ss_qt_libs_to_find lib$SS_QTLIB_NAME-mt.so" + ss_qt_libs_to_find="$ss_qt_libs_to_find lib$SS_QTLIB_NAME-mt.$SS_QT3_MAJOR_VERSION_REQUIRED.$SS_QT3_MINOR_VERSION_REQUIRED.$SS_QT3_PATCH_LEVEL_REQUIRED.dylib" + ss_qt_libs_to_find="$ss_qt_libs_to_find lib$SS_QTLIB_NAME-mt.$SS_QT3_MAJOR_VERSION_REQUIRED.$SS_QT3_MINOR_VERSION_REQUIRED.dylib" + ss_qt_libs_to_find="$ss_qt_libs_to_find lib$SS_QTLIB_NAME-mt.$SS_QT3_MAJOR_VERSION_REQUIRED.dylib" + ss_qt_libs_to_find="$ss_qt_libs_to_find lib$SS_QTLIB_NAME-mt.dylib" + ss_qt_libs_to_find="$ss_qt_libs_to_find lib$SS_QTLIB_NAME-mt.a" + + AC_SS_FIND_FILE_PATH($ss_qt_libs_to_find,$SS_QT3_LIBDIR,SS_QTMTLIBDIR) + if test "$SS_QTMTLIBDIR" = "FAILED"; then + AC_MSG_RESULT([not found]) + else + AC_MSG_RESULT([seems to be available]) + SS_QTLIB_NAME="$SS_QTLIB_NAME-mt" + fi + else + AC_MSG_RESULT([disabled by user]) + fi +]) + +AC_DEFUN([AC_SS_ENSURE_CAN_COMPILE_X_AND_QT3], +[ + + AC_MSG_CHECKING([if we can compile an X-Qt 3.x application]) + AC_LANG_CPLUSPLUS + ss_save_CPPFLAGS="$CPPFLAGS" + ss_save_CXXFLAGS="$CXXFLAGS" + ss_save_LDFLAGS="$LDFLAGS" + ss_save_LIBS="$LIBS" + if test -n "$SS_X_INCDIR"; then + CPPFLAGS="-I$SS_X_INCDIR" + else + CPPFLAGS="" + fi + CPPFLAGS="$CPPFLAGS -I$SS_QT3_INCDIR" + CXXFLAGS="-O2 -Wall $CXXFLAGS" + if test -n "$SS_X_LIBDIR"; then + LIBS="-L$SS_X_LIBDIR" + else + LIBS="" + fi + LIBS="$LIBS -L$SS_QT3_LIBDIR -l$SS_QTLIB_NAME" + if test -n "$SS_X_LDFLAGS"; then + LIBS="$LIBS $SS_X_LDFLAGS" + fi + if test -n "$SS_X_LIBLINK"; then + LIBS="$LIBS $SS_X_LIBLINK" + fi + LDFLAGS="-s $LDFLAGS" + AC_TRY_LINK([ + #include + #if (QT_VERSION < 221) + #error "Bad qt version: too old" + #endif + ],[return 0; ],SS_QTX_LINKED_OK="TRUE",SS_QTX_LINKED_OK="FALSE") + if test "$SS_QTX_LINKED_OK" = "FALSE"; then + AC_MSG_RESULT([FAILED]); + AC_SS_SET_REDINK + echo "################################################################################" + echo "### CONFIGURE ERROR:" + echo "### Failed to compile the Qt library test program." + echo "### This may be a bad sign :)" + echo "### First of all, make sure that qt is correctly installed on your system," + echo "### and the qt version is the one requested by this version of kvirc." + echo "### Ensure that you have only one copy of qt visible at a time." + echo "### You may also take a look at the config.log file in this directory," + echo "### that will tell you which check has failed and maybe more about the reason" + echo "### of the failure." + echo "### The CPPFLAGS used were:" + for a_flag in $CPPFLAGS ; do + echo "### $a_flag" + done + echo "### The CXXFLAGS used were:" + for a_flag in $CXXFLAGS ; do + echo "### $a_flag" + done + echo "### The LIBS used were:" + for a_flag in $LIBS ; do + echo "### $a_flag" + done + echo "### The LDFLAGS used were:" + for a_flag in $LDFLAGS ; do + echo "### $a_flag" + done + echo "### If you're sure that qt is correctly installed , you may force configure" + echo "### to skip this check and try to compile kvirc anyway." + echo "### Try using the --without-qt-check option." + echo "### If you're feeling that this may be a bug in this configure script" + echo "### and want to report this to me , please include your configure script," + echo "### the config.log file as well as the complete configure output." + echo "################################################################################" + AC_SS_SET_NORMALINK + AC_MSG_ERROR([This was a fatal one...aborting]) + fi + LIBS="$ss_save_LIBS" + LDFLAGS="$ss_save_LDFLAGS" + CXXFLAGS="$ss_save_CXXFLAGS" + CPPFLAGS="$ss_save_CPPFLAGS" + AC_MSG_RESULT([success]) +]) + + +AC_DEFUN([AC_SS_ENSURE_CAN_COMPILE_X_AND_QT4], +[ + + AC_MSG_CHECKING([if we can compile an X-Qt 4.x application]) + AC_LANG_CPLUSPLUS + ss_save_CPPFLAGS="$CPPFLAGS" + ss_save_CXXFLAGS="$CXXFLAGS" + ss_save_LDFLAGS="$LDFLAGS" + ss_save_LIBS="$LIBS" + if test -n "$SS_X_INCDIR"; then + CPPFLAGS="-I$SS_X_INCDIR" + else + CPPFLAGS="" + fi + CPPFLAGS="$CPPFLAGS $SS_QT4_INCDIRECTORIES" + CXXFLAGS="-O2 -Wall $CXXFLAGS" + if test -n "$SS_X_LIBDIR"; then + LIBS="-L$SS_X_LIBDIR" + else + LIBS="" + fi + LIBS="$LIBS -L$SS_QT4_LIBDIR -lQtCore" + if test -n "$SS_X_LDFLAGS"; then + LIBS="$LIBS $SS_X_LDFLAGS" + fi + if test -n "$SS_X_LIBLINK"; then + LIBS="$LIBS $SS_X_LIBLINK" + fi + LDFLAGS="-s $LDFLAGS" + AC_TRY_LINK([ + #include + #if (QT_VERSION < 0x040000) + #error "Bad qt version: too old" + #endif + ],[return 0; ],SS_QTX_LINKED_OK="TRUE",SS_QTX_LINKED_OK="FALSE") + if test "$SS_QTX_LINKED_OK" = "FALSE"; then + AC_MSG_RESULT([FAILED]); + AC_SS_SET_REDINK + echo "################################################################################" + echo "### CONFIGURE ERROR:" + echo "### Failed to compile the Qt 4.x library test program." + echo "### This may be a bad sign :)" + echo "### First of all, make sure that qt is correctly installed on your system," + echo "### and the qt version is the one requested by this version of kvirc." + echo "### Ensure that you have only one copy of qt visible at a time." + echo "### You may also take a look at the config.log file in this directory," + echo "### that will tell you which check has failed and maybe more about the reason" + echo "### of the failure." + echo "### The CPPFLAGS used were:" + for a_flag in $CPPFLAGS ; do + echo "### $a_flag" + done + echo "### The CXXFLAGS used were:" + for a_flag in $CXXFLAGS ; do + echo "### $a_flag" + done + echo "### The LIBS used were:" + for a_flag in $LIBS ; do + echo "### $a_flag" + done + echo "### The LDFLAGS used were:" + for a_flag in $LDFLAGS ; do + echo "### $a_flag" + done + echo "### If you're sure that qt is correctly installed , you may force configure" + echo "### to skip this check and try to compile kvirc anyway." + echo "### Try using the --without-qt-check option." + echo "### If you're feeling that this may be a bug in this configure script" + echo "### and want to report this to me , please include your configure script," + echo "### the config.log file as well as the complete configure output." + echo "################################################################################" + AC_SS_SET_NORMALINK + AC_MSG_ERROR([This was a fatal one...aborting]) + fi + LIBS="$ss_save_LIBS" + LDFLAGS="$ss_save_LDFLAGS" + CXXFLAGS="$ss_save_CXXFLAGS" + CPPFLAGS="$ss_save_CPPFLAGS" + AC_MSG_RESULT([success]) +]) + + +dnl ################################################################################################################### +dnl ### KDE +dnl ################################################################################################################### + +AC_DEFUN([AC_SS_FIND_KDE], +[ + AC_SS_CHECK_IF_KDE_IS_REQUESTED + if test "$SS_KDE_REQUESTED" = "yes"; then + AC_SS_FIND_KDE_GENERAL_DIR + if test "$SS_KDE_REQUESTED" = "yes"; then + AC_SS_FIND_KDE_SERVICES_DIR + AC_SS_FIND_KDE_LIBRARY_DIR + if test "$SS_KDE_REQUESTED" = "yes"; then + AC_SS_FIND_KDE_INCLUDE_DIR + if test "$SS_KDE_REQUESTED" = "yes"; then + AC_SS_ENSURE_CAN_COMPILE_X_QT3_AND_KDE + fi + fi + fi + fi +]) + +AC_DEFUN([AC_SS_CHECK_IF_KDE_IS_REQUESTED], +[ + AC_MSG_CHECKING([if KDE support is requested]) + if test "$SS_USE_QT4" = "no"; then + SS_KDE_REQUESTED="yes" + AC_ARG_WITH(kde-support,[ --without-kde-support Disable the KDE support even if it is detected ],SS_KDE_REQUESTED="$withval") + if test "$SS_KDE_REQUESTED" = "yes"; then + AC_MSG_RESULT([yes]) + else + AC_MSG_RESULT([no]) + fi + else + SS_KDE_REQUESTED="no" + AC_MSG_RESULT([unsupported with qt 4.x]) + fi +]) + +AC_DEFUN([AC_SS_FIND_KDE_GENERAL_DIR], +[ + AC_MSG_CHECKING([for the general KDE directory]) + ss_kde_general_test_dirs="/usr /usr/local /usr /usr/local /usr/build /usr/X11R6 /opt /usr/opt /usr/lib /usr/lib /usr/src /usr/lib /usr/local/lib" + if test -n "$HOME"; then + ss_kde_general_test_dirs="$ss_kde_general_test_dirs $HOME $HOME/lib" + fi + if test -n "$KDEDIR"; then + ss_kde_general_test_dirs="$KDEDIR $ss_kde_general_test_dirs" + fi + ss_kde_general_test_path_suffix="kde kde3.0 kde3 KDE Kde KDE3 kde3 ." + + AC_SS_FIND_FILE_PATH_EXT($SS_KDE_GENERAL_FILE_TO_SEARCH,$ss_kde_general_test_dirs,$ss_kde_general_test_path_suffix,SS_KDE_GENERAL_DIR) + + if test "$SS_KDE_GENERAL_DIR" = "FAILED"; then + AC_MSG_RESULT([failed...continuing with normal checks]) + unset SS_KDE_GENERAL_DIR + else + AC_MSG_RESULT([Seems to be $SS_KDE_GENERAL_DIR]) + fi +]) + + +AC_DEFUN([AC_SS_FIND_KDE_SERVICES_DIR], +[ + AC_ARG_WITH(kde-services-dir,[ --with-kde-services-dir path to the KDE protocol services dir ],SS_KDE_SERVICESDIR="$withval",SS_KDE_SERVICESDIR="NOTGIVEN") + if test "$SS_KDE_SERVICESDIR" = "NOTGIVEN"; then + + AC_MSG_CHECKING([for KDE services directory]) + + ss_kde_services_test_dirs="/usr/share/services /usr/local/share/services /usr/kde/share/services /usr/local/kde/share/services /usr/X11R6/share/services /opt/kde/share/services /usr/lib/kde/share/services" + test -n "$KDEDIR" && ss_kde_services_test_dirs="$KDEDIR/share/services $ss_kde_services_test_dirs" + ss_kde_services_test_dirs="$ss_kde_services_test_dirs /usr/share/kde/services" + test -n "$SS_KDE_GENERAL_DIR" && ss_kde_services_test_dirs="$SS_KDE_GENERAL_DIR/share/services $ss_kde_services_test_dirs" + + AC_SS_FIND_FILE_PATH("http.protocol",$ss_kde_services_test_dirs,SS_KDE_SERVICESDIR) + + if test "$SS_KDE_SERVICESDIR" = "FAILED"; then + SS_KDE_SERVICESDIR="" + AC_MSG_RESULT([unknown]) + else + AC_MSG_RESULT([found in $SS_KDE_SERVICESDIR]) + fi + + else + AC_MSG_RESULT([using user supplied path for the KDE services dir $SS_KDE_SERVICESDIR]) + fi +]) + + +AC_DEFUN([AC_SS_FIND_KDE_INCLUDE_DIR], +[ + AC_ARG_WITH(kde-include-dir,[ --with-kde-include-dir path to the KDE headers ],SS_KDE_INCDIR="$withval",SS_KDE_INCDIR="NOTGIVEN") + if test "$SS_KDE_INCDIR" = "NOTGIVEN"; then + + AC_MSG_CHECKING([for KDE header files]) + + ss_kde_include_test_dirs="/include /usr/include /usr/local/include /usr/kde/include /usr/local/kde/include /usr/X11R6/include /opt/kde/include /usr/lib/kde/include /usr/lib/kde /usr/include/X11" + test -n "$KDEDIR" && ss_kde_include_test_dirs="$KDEDIR/include $KDEDIR $ss_kde_include_test_dirs" + ss_kde_include_test_dirs="$ss_kde_include_test_dirs /usr/include/kde /usr/local/include/kde /include/kde /usr/X11R6/include/kde /usr/build/kde/include" + ss_kde_include_test_dirs="$ss_kde_include_test_dirs /usr/include/kde2 /usr/local/include/kde2 /include/kde2 /usr/X11R6/include/kde2 /usr/include/X11/kde2" + test -n "$SS_KDE_GENERAL_DIR" && ss_kde_include_test_dirs="$SS_KDE_GENERAL_DIR/include $ss_kde_include_test_dirs" + + AC_SS_FIND_FILE_PATH($SS_KDE_INCLUDE_FILE_TO_SEARCH,$ss_kde_include_test_dirs,SS_KDE_INCDIR) + + if test "$SS_KDE_INCDIR" = "FAILED"; then + AC_MSG_RESULT("FAILED") + SS_KDE_REQUESTED="no" + SS_KDE_INCDIR="" + else + AC_MSG_RESULT([found in $SS_KDE_INCDIR]) + fi + + else + AC_MSG_RESULT([using user supplied path for the KDE include files $SS_KDE_INCDIR]) + fi + + if test -z "$SS_KDE_GENERAL_DIR"; then + # Set it.... we need it :)... + SS_KDE_GENERAL_DIR=`echo $SS_KDE_INCDIR | sed -e 's/\/include\$//'` + fi +]) + +AC_DEFUN([AC_SS_FIND_KDE_LIBRARY_DIR], +[ + AC_ARG_WITH(kde-library-dir,[ --with-kde-library-dir path to the KDE libraries ],SS_KDE_LIBDIR="$withval",SS_KDE_LIBDIR="NOTGIVEN") + if test "$SS_KDE_LIBDIR" = "NOTGIVEN"; then + AC_MSG_CHECKING([for the KDE libraries]) + + ss_kde_library_test_dirs="/lib /usr/lib /usr/local/lib /usr/kde/lib /opt/kde/lib /opt/lib /usr/opt/kde/lib /usr/local/kde/lib /usr/X11R6/lib /usr/lib/kde/lib /usr/lib/kde /usr/local/lib/kde/lib" + test -n "$KDEDIR" && ss_kde_library_test_dirs="$KDEDIR/lib $KDEDIR $ss_kde_library_test_dirs" + ss_kde_library_test_dirs="$ss_kde_library_test_dirs /usr/local/lib/kde /usr/X11R6/lib/kde /usr/build/kde/lib" + if test -n "$SS_KDE_GENERAL_DIR"; then + ss_kde_library_test_dirs="$SS_KDE_GENERAL_DIR/lib $ss_kde_library_test_dirs" + fi + + + AC_SS_FIND_FILE_PATH(libkdecore.so.6 libkdecore.so.5 libkdecore.so.4 libkdecore.so.3 libkdecore.so,$ss_kde_library_test_dirs,SS_KDE_LIBDIR) + if test "$SS_KDE_LIBDIR" = "FAILED"; then + AC_SS_FIND_FILE_PATH(libkdecore.so.8 libkdecore.so.7 libkdecore.so.4.0.0 libkdecore.so.4.1.0 libkdecore.so.4.2.0 ,$ss_kde_library_test_dirs,SS_KDE_LIBDIR) + if test "$SS_KDE_LIBDIR" = "FAILED"; then + # Try the senseless too + AC_SS_FIND_FILE_PATH(libkdecore.so.4.0.0 libkdecore.so.4.1.0 libkdecore.so.4.2.0 libkdecore.so.4.3.0,$ss_kde_library_test_dirs,SS_KDE_LIBDIR) + if test "$SS_KDE_LIBDIR" = "FAILED"; then + AC_SS_FIND_FILE_PATH(libkdecore.so.4.4.0 libkdecore.so.4.5.0 libkdecore.so.4.6.0 libkdecore.so.4.7.0 libkdecore.a,$ss_kde_library_test_dirs,SS_KDE_LIBDIR) + fi + fi + fi + + if test "$SS_KDE_LIBDIR" = "FAILED"; then + AC_MSG_RESULT("FAILED") + SS_KDE_REQUESTED="no" + SS_KDE_LIBDIR="" + else + AC_MSG_RESULT([found in $SS_KDE_LIBDIR]) + fi + else + AC_MSG_RESULT([using user supplied path for the KDE libraries $SS_KDE_LIBDIR]) + fi + + if test -z "$SS_KDE_GENERAL_DIR"; then + # Set it.... we need it :)... + SS_KDE_GENERAL_DIR=`echo $SS_KDE_LIBDIR | sed -e 's/\/lib\$//'` + fi +]) + +AC_DEFUN([AC_SS_ENSURE_CAN_COMPILE_X_QT3_AND_KDE], +[ + AC_ARG_WITH(kde-check,[ --without-kde-check Do not check if Qt,KDE and X compile ],SS_CHECK_QTX_COMPILE="$withval",SS_CHECK_KQTX_COMPILE="yes") + if test "$SS_CHECK_KQTX_COMPILE" = "yes"; then + AC_MSG_CHECKING(if we can compile an X-Qt-KDE application) + AC_LANG_CPLUSPLUS + ss_save_CPPFLAGS="$CPPFLAGS" + ss_save_CXXFLAGS="$CXXFLAGS" + ss_save_LDFLAGS="$LDFLAGS" + ss_save_LIBS="$LIBS" + if test -n "$SS_X_INCDIR"; then + CPPFLAGS="-I$SS_X_INCDIR" + else + CPPFLAGS="" + fi + CPPFLAGS="$CPPFLAGS -I$SS_X_INCDIR -I$SS_QT3_INCDIR -I$SS_KDE_INCDIR" + CXXFLAGS="-O2 -Wall $CXXFLAGS" + if test -n "$SS_X_LIBDIR"; then + LIBS="-L$SS_X_LIBDIR" + else + LIBS="" + fi + if test -n "$SS_X_LDFLAGS"; then + LIBS="$SS_X_LDFLAGS $LIBS" + fi + if test -n "$SS_X_LIBLINK"; then + LIBS="$LIBS $SS_X_LIBLINK" + fi + LIBS="-L$SS_KDE_LIBDIR -L$SS_QT3_LIBDIR -lkdecore -l$SS_QTLIB_NAME $LIBS" + if test "$SS_LINK_TO_LIBDL" = "yes"; then + LIBS="$LIBS -ldl"; + fi + LDFLAGS="-s $LDFLAGS" + AC_TRY_LINK([ + #include "kapp.h" + #include "kwin.h" + ],[ + int a = KWin::currentDesktop(); + KApplication app(a,0,"kvirc"); + ], + SS_KQTX_LINKED_OK="TRUE", + SS_KQTX_LINKED_OK="FALSE" + ) + if test "$SS_KQTX_LINKED_OK" = "FALSE"; then + AC_MSG_RESULT(failed) + AC_MSG_ERROR([This was a fatal one...aborting]) + else + AC_MSG_RESULT(success) + fi + LIBS="$ss_save_LIBS" + LDFLAGS="$ss_save_LDFLAGS" + CXXFLAGS="$ss_save_CXXFLAGS" + CPPFLAGS="$ss_save_CPPFLAGS" + fi +]) + + + + + + +AC_DEFUN([AC_SS_CHECK_OTHER_LIBS], +[ + SS_OTHER_LIBDIRS="" + SS_OTHER_LIBLINK="" + SS_OTHER_INCDIRS="" + + + AC_MSG_CHECKING([if you want to link to libresolv]) + SS_DO_IT="false" + AC_ARG_WITH(libresolv, [ --with-libresolv Link to libresolv],SS_DO_IT="true") + if test "$SS_DO_IT" = "true"; then + AC_MSG_RESULT(yes) + SS_OTHER_LIBLINK="$SS_OTHER_LIBLINK -lresolv" + else + AC_MSG_RESULT(no) + fi + + AC_MSG_CHECKING([if you want to link to libsocket]) + SS_DO_IT="false" + AC_ARG_WITH(libsocket, [ --with-libsocket Link to libsocket],SS_DO_IT="true") + if test "$SS_DO_IT" = "true"; then + AC_MSG_RESULT(yes) + SS_OTHER_LIBLINK="$SS_OTHER_LIBLINK -lsocket" + else + AC_MSG_RESULT(no) + fi + + AC_MSG_CHECKING([if you want to link to libnsl]) + SS_DO_IT="false" + AC_ARG_WITH(libnsl, [ --with-libnsl Link to libnsl],SS_DO_IT="true") + if test "$SS_DO_IT" = "true"; then + AC_MSG_RESULT(yes) + SS_OTHER_LIBLINK="$SS_OTHER_LIBLINK -lnsl" + else + AC_MSG_RESULT(no) + fi + + AC_MSG_CHECKING([if you want to link to libcompat]) + SS_DO_IT="false" + AC_ARG_WITH(libnsl, [ --with-libcompat Link to libcompat],SS_DO_IT="true") + if test "$SS_DO_IT" = "true"; then + AC_MSG_RESULT(yes) + SS_OTHER_LIBLINK="$SS_OTHER_LIBLINK -lcompat" + else + AC_MSG_RESULT(no) + fi + + AC_MSG_CHECKING([if you want to link to other libraries]) + SS_DO_IT="false" + AC_ARG_WITH(other-libs, [ --with-other-libs=... Link to the specified libraries],SS_DO_IT="$withval") + if test "$SS_DO_IT" != "false"; then + AC_MSG_RESULT([yes]) + SS_OTHER_LIBLINK="$SS_OTHER_LIBLINK $SS_DO_IT" + else + AC_MSG_RESULT([no]) + fi + + AC_MSG_CHECKING([if you want to add other library search paths]) + SS_DO_IT="false" + AC_ARG_WITH(other-ldirs, [ --with-other-ldirs=... Add the specified library paths],SS_DO_IT="$withval") + if test "$SS_DO_IT" != "false"; then + AC_MSG_RESULT([yes]) + SS_OTHER_LIBDIRS="$SS_OTHER_LIBDIRS $SS_DO_IT" + else + AC_MSG_RESULT([no]) + fi + + AC_MSG_CHECKING([if you want to add other include search paths]) + SS_DO_IT="false" + AC_ARG_WITH(other-idirs, [ --with-other-idirs=... Add the specified include search paths],SS_DO_IT="$withval") + if test "$SS_DO_IT" != "false"; then + AC_MSG_RESULT([yes]) + SS_OTHER_INCDIRS="$SS_OTHER_INCDIRS $SS_DO_IT" + else + AC_MSG_RESULT([no]) + fi + +]) + + + +AC_DEFUN([AC_SS_FINAL_CONFIG], +[ + AC_MSG_CHECKING([if we finally have to compile the IpV6 support]) + + if test "$SS_NOIPV6_SUPPORT" = "true"; then + AC_MSG_RESULT([no: disabled by user]) + else + if test "$SS_HAVE_IPV6_FUNCTIONS" = "true"; then + AC_MSG_RESULT([yes]) + AC_DEFINE([COMPILE_IPV6_SUPPORT], 1, [define if you want the IpV6 support]) + SS_BUILD_FLAGS="i$SS_BUILD_FLAGS" + else + AC_MSG_RESULT([no: the system lacks support]) + fi + fi + + dnl # // Toplevel source directory + + SS_TOPSRCDIR=`pwd` + + AC_SUBST(SS_TOPSRCDIR) + + SS_CPPFLAGS="-D_REENTRANT -DREENTRANT" + if test -n "$SS_X_CPPFLAGS"; then + SS_CPPFLAGS="$SS_CPPFLAGS $SS_X_CPPFLAGS" + fi + + if test "$SS_USE_QT4" = "no"; then + SS_INCDIRS="-I$SS_QT3_INCDIR -I$SS_X_INCDIR" + else + AC_DEFINE([COMPILE_USE_QT4], 1, [define if you want to compile the Qt 4.x support]) + SS_INCDIRS="$SS_QT4_INCDIRECTORIES -I$SS_X_INCDIR" + SS_CPPFLAGS="$SS_CPPFLAGS -DQT3_SUPPORT" + fi + + if test -n "$SS_X_INCDIR"; then + SS_INCDIRS="$SS_INCDIRS -I$SS_X_INCDIR" + fi + + if test -n "$SS_X_LDFLAGS"; then + SS_LDFLAGS="$SS_X_LDFLAGS" + else + SS_LDFLAGS="" + fi + + if test "$SS_USE_QT4" = "no"; then + SS_RPATH="-rpath $SS_QT3_LIBDIR -rpath $libdir" + else + SS_RPATH="-rpath $SS_QT4_LIBDIR -rpath $libdir" + fi + + if test -n "$SS_X_LIBDIR"; then + SS_RPATH="$SS_RPATH -rpath $SS_X_LIBDIR" + fi + + if test "$SS_USE_QT4" = "no"; then + SS_LIBDIRS="-L$SS_TOPSRCDIR/src/kvilib/build/ -L$SS_QT3_LIBDIR" + else + SS_LIBDIRS="-L$SS_TOPSRCDIR/src/kvilib/build/ -L$SS_QT4_LIBDIR" + fi + + if test -n "$SS_X_LIBDIR"; then + SS_LIBDIRS="$SS_LIBDIRS -L$SS_X_LIBDIR" + fi + + if test "$SS_USE_QT4" = "no"; then + SS_LIBLINK="-l$SS_QTLIB_NAME" + else + #if test -n "SS_LOCAL_ADD_DEBUG_SYMBOLS"; then + # SS_LIBLINK="-lQtCore_debug -lQtGui_debug -lQt3Support_debug" + #else + + SS_LIBLINK="-lQtCore -lQtGui -lQt3Support" + + #fi + fi + + if test -n "$SS_X_LIBLINK"; then + SS_LIBLINK="$SS_LIBLINK $SS_X_LIBLINK" + fi + SS_LIBLINK="$SS_LIBLINK $SS_THREAD_LIBLINK" + if test "$SS_LINK_TO_LIBSSL" = "true"; then + SS_LIBLINK="$SS_LIBLINK -lssl -lcrypto" + fi + if test "$SS_LINK_TO_LIBESD" = "true"; then + SS_LIBLINK="$SS_LIBLINK -lesd" + fi + if test "$SS_LINK_TO_LIBARTS" = "true"; then + SS_LIBLINK="$SS_LIBLINK -lsoundserver_idl" + fi + if test "$SS_LINK_TO_LIBAUDIOFILE" = "true"; then + SS_LIBLINK="$SS_LIBLINK -laudiofile -lm" + fi + + if test "$SS_LOCAL_8BIT" = "true"; then + SS_CPPFLAGS="$SS_CPPFLAGS -DQT3_NO_ASCII_CAST -DQT3_NO_COMPAT" + fi + + if test "$SS_QT3_EMBEDDED" = "true"; then + SS_CPPFLAGS="$SS_CPPFLAGS -DQWS" + fi + + if test "$SS_KDE_REQUESTED" = "yes"; then + SS_INCDIRS="$SS_INCDIRS -I$SS_KDE_INCDIR" + SS_RPATH="$SS_RPATH -rpath $SS_KDE_LIBDIR" + SS_LIBDIRS="$SS_LIBDIRS -L$SS_KDE_LIBDIR" + SS_LIBLINK="-lkdecore -lkdeui -lkparts $SS_LIBLINK" + AC_DEFINE([COMPILE_KDE_SUPPORT], 1, [define if you want to compile the KDE 3.x support]) + SS_BUILD_FLAGS="k$SS_BUILD_FLAGS" + fi + + if test -n "$SS_OTHER_LIBLINK"; then + SS_LIBLINK="$SS_LIBLINK $SS_OTHER_LIBLINK" + fi + + if test -n "$SS_OTHER_LIBDIRS"; then + SS_LIBDIRS="$SS_LIBDIRS $SS_OTHER_LIBDIRS" + $SS_OTHER_LIBDIRS=`echo "$SS_OTHER_LIBDIRS" | sed -e s/-L//g` + SS_RPATH="$SS_RPATH -rpath $SS_OTHER_LIBDIRS" + fi + + if test -n "$SS_OTHER_INCDIRS"; then + SS_INCDIRS="$SS_INCDIRS $SS_OTHER_INCDIRS" + fi + + if test "$SS_LINK_TO_LIBDL" = "yes"; then + SS_LIBLINK="$SS_LIBLINK -ldl" + fi + + if test "$SS_LINK_TO_LIBZ" = "yes"; then + SS_LIBLINK="$SS_LIBLINK -lz" + fi + if test "$SS_LINK_TO_XSS" = "yes"; then + SS_LIBLINK="$SS_LIBLINK -lXss" + fi + + AC_SUBST(SS_CPPFLAGS) + AC_SUBST(SS_INCDIRS) + AC_SUBST(SS_LDFLAGS) + SS_RPATH="" + AC_SUBST(SS_RPATH) + AC_SUBST(SS_LIBDIRS) + AC_SUBST(SS_LIBLINK) + + if test "$SS_USE_QT4" = "no"; then + SS_QT_MOC=$SS_QT3_MOC + SS_QT_MOC_FLAGS="" + else + SS_QT_MOC=$SS_QT4_MOC + SS_QT_MOC_FLAGS="-DCOMPILE_USE_QT4" + fi + + AC_SUBST(SS_QT_MOC) + AC_SUBST(SS_QT_MOC_FLAGS) + + build_date=`date -u` + + if test -z "$build_date"; then + build_date=`date` + fi + + if test -z "$build_date"; then + build_date="unknown" + fi + + AC_DEFINE_UNQUOTED([BUILD_DATE],"$build_date", [this is the build date (configure date rather)]) + + dnl # Let's sort the build flags + + SS_AUX_CHARS="a b c d e f g h i j k l m n o p q r s t u v w x y z A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 0 1 2 3 4 5 6 7 8 9" + + buid_flags="" + + for achar in $SS_AUX_CHARS; do + tmp_val=`echo "$SS_BUILD_FLAGS" | grep $achar` + if test "$tmp_val"; then + build_flags="$build_flags$achar" + fi + done + + SS_DIRTAG=`echo $VERSION | cut -d . -f 1,2` + + AC_DEFINE_UNQUOTED([VERSION_BRANCH], "$SS_DIRTAG", [MAJOR.MINOR part of version]) + AC_DEFINE_UNQUOTED([BUILD_FLAGS],"$target_cpu-$build_flags", [these are the build flags]) + + globalkvircdir="\${datadir}/kvirc/$SS_DIRTAG" + AC_SUBST(globalkvircdir) + + configdir="\${globalkvircdir}/config" + AC_SUBST(configdir) + + picsdir="\${globalkvircdir}/pics" + AC_SUBST(picsdir) + + helpdir="\${globalkvircdir}/help/en" + AC_SUBST(helpdir) + + pluglibdir="\${exec_prefix}/lib/kvirc/$SS_DIRTAG/modules" + AC_SUBST(pluglibdir) + + modulelibdir="\${exec_prefix}/lib/kvirc/$SS_DIRTAG/modules" + AC_SUBST(modulelibdir) + + defscriptdir="\${globalkvircdir}/defscript" + AC_SUBST(defscriptdir) + + themedir="\${globalkvircdir}/themes" + AC_SUBST(themedir) + + msgcolorsdir="\${globalkvircdir}/msgcolors" + AC_SUBST(msgcolorsdir) + + if test -z "$mandir"; then + mandir="\${exec_prefix}/man/man1" + fi + AC_SUBST(mandir) + + + licensedir="\${globalkvircdir}/license" + AC_SUBST(licensedir) + + if test -n "$SS_KDE_SERVICESDIR"; then + kdeservicesdir="$SS_KDE_SERVICESDIR" + else + kdeservicesdir="\${exec_prefix}/share/kvirc/$SS_DIRTAG/protocols" + fi + AC_SUBST(kdeservicesdir) + + if test "$SS_KDE_REQUESTED" = "yes"; then + iconapps16datadir="$SS_KDE_GENERAL_DIR/share/icons/hicolor/16x16/apps" + iconapps32datadir="$SS_KDE_GENERAL_DIR/share/icons/hicolor/32x32/apps" + iconapps48datadir="$SS_KDE_GENERAL_DIR/share/icons/hicolor/48x48/apps" + iconapps64datadir="$SS_KDE_GENERAL_DIR/share/icons/hicolor/64x64/apps" + iconapps128datadir="$SS_KDE_GENERAL_DIR/share/icons/hicolor/128x128/apps" + iconappsscalabledatadir="$SS_KDE_GENERAL_DIR/share/icons/hicolor/scalable/apps" + iconmime16datadir="$SS_KDE_GENERAL_DIR/share/icons/hicolor/16x16/mimetypes" + iconmime32datadir="$SS_KDE_GENERAL_DIR/share/icons/hicolor/32x32/mimetypes" + iconmime48datadir="$SS_KDE_GENERAL_DIR/share/icons/hicolor/48x48/mimetypes" + iconmime64datadir="$SS_KDE_GENERAL_DIR/share/icons/hicolor/64x64/mimetypes" + iconmime128datadir="$SS_KDE_GENERAL_DIR/share/icons/hicolor/128x128/mimetypes" + iconmimescalabledatadir="$SS_KDE_GENERAL_DIR/share/icons/hicolor/scalable/mimetypes" + applnkdir="$SS_KDE_GENERAL_DIR/share/applnk/Internet" + mimelnkdir="$SS_KDE_GENERAL_DIR/share/mimelnk/text" + else + iconapps16datadir="\${exec_prefix}/share/kvirc/$SS_DIRTAG/icons/16x16" + iconapps32datadir="\${exec_prefix}/share/kvirc/$SS_DIRTAG/icons/32x32" + iconapps48datadir="\${exec_prefix}/share/kvirc/$SS_DIRTAG/icons/48x48" + iconapps64datadir="\${exec_prefix}/share/kvirc/$SS_DIRTAG/icons/64x64" + iconapps128datadir="\${exec_prefix}/share/kvirc/$SS_DIRTAG/icons/128x128" + iconappsscalabledatadir="\${exec_prefix}/share/kvirc/$SS_DIRTAG/icons/scalable" + iconmime16datadir="\${exec_prefix}/share/kvirc/$SS_DIRTAG/icons/16x16" + iconmime32datadir="\${exec_prefix}/share/kvirc/$SS_DIRTAG/icons/32x32" + iconmime48datadir="\${exec_prefix}/share/kvirc/$SS_DIRTAG/icons/48x48" + iconmime64datadir="\${exec_prefix}/share/kvirc/$SS_DIRTAG/icons/64x64" + iconmime128datadir="\${exec_prefix}/share/kvirc/$SS_DIRTAG/icons/128x128" + iconmimescalabledatadir="\${exec_prefix}/share/kvirc/$SS_DIRTAG/icons/scalable" + applnkdir="\${exec_prefix}/share/kvirc/$SS_DIRTAG/applnk" + mimelnkdir="\${exec_prefix}/share/kvirc/$SS_DIRTAG/mimelnk" + fi + AC_SUBST(iconapps16datadir) + AC_SUBST(iconapps32datadir) + AC_SUBST(iconapps48datadir) + AC_SUBST(iconapps64datadir) + AC_SUBST(iconapps128datadir) + AC_SUBST(iconappsscalabledatadir) + AC_SUBST(iconmime16datadir) + AC_SUBST(iconmime32datadir) + AC_SUBST(iconmime48datadir) + AC_SUBST(iconmime64datadir) + AC_SUBST(iconmime128datadir) + AC_SUBST(iconmimescalabledatadir) + AC_SUBST(applnkdir) + AC_SUBST(mimelnkdir) + + localedir="\${globalkvircdir}/locale" + AC_SUBST(localedir) + + headersdir="\${exec_prefix}/include/kvirc/$VERSION" + AC_SUBST(headersdir) + + + configmodulesdir="\${globalkvircdir}/config/modules" + AC_SUBST(configmodulesdir) + + + topdir=`pwd` + AC_SUBST(topdir) + + AC_SS_HEADER([Configuration status:]) + AC_SS_SET_GREENINK + echo "### The kvirc binary will be installed in:" + echo "### $bindir" + echo "### The libraries will be installed in:" + echo "### $libdir" + echo "### Modules will be installed in:" + echo "### $pluglibdir" + AC_SS_SET_NORMALINK + AC_SS_HEADER([Take a look at the paths above just to be sure that they're correct]) +]) + +dnl just a wrapper to clean up configure.in +AC_DEFUN([KVIRC_PROG_LIBTOOL], +[ + AM_PROG_LIBTOOL + + LIBTOOL_SHELL="/bin/sh ./libtool" + # LIBTOOL="$LIBTOOL --silent" + + AC_ARG_ENABLE(objprelink, [ --enable-objprelink prelink apps (experimental, needs objprelink in path)], + kvirc_use_objprelink=$enableval, kvirc_use_objprelink=no) + if test "x$kvirc_use_objprelink" = "xyes"; then + echo Patching libtool to run objprelink. + mv libtool libtool.orig + cat > libtool <<\EOF +#! /bin/sh + +ALREADYPRELINKED="" + +for n +do + case $n in + *.o) k=$n + if test -r $k; then + ISELF=`file $k | grep ELF` + if test -n "$ISELF"; then + ALREADY=`echo $ALREADYPRELINKED | grep "!!!$k"` + if test -z "$ALREADY"; then + echo objprelink $k + objprelink $k + ALREADYPRELINKED="$ALREADYPRELINKED !!!$k" + fi + fi + fi + ;; + *.lo) k=$n + if test -r $k; then + ISELF=`file $k | grep ELF` + if test -n "$ISELF"; then + ALREADY=`echo $ALREADYPRELINKED | grep "!!!$k"` + if test -z "$ALREADY"; then + echo objprelink $k + objprelink $k + ALREADYPRELINKED="$ALREADYPRELINKED !!!$k" + fi + fi + fi + ASHORTNAME=`echo $n | sed -e 's/\.lo$//'` + k=".libs/$ASHORTNAME.o" + if test -r $k; then + ISELF=`file $k | grep ELF` + if test -n "$ISELF"; then + ALREADY=`echo $ALREADYPRELINKED | grep "!!!$k"` + if test -z "$ALREADY"; then + echo objprelink $k + objprelink $k + ALREADYPRELINKED="$ALREADYPRELINKED !!!$k" + fi + fi + fi + k=".libs/$ASHORTNAME.lo" + if test -r $k; then + ISELF=`file $k | grep ELF` + if test -n "$ISELF"; then + ALREADY=`echo $ALREADYPRELINKED | grep "!!!$k"` + if test -z "$ALREADY"; then + echo objprelink $k + objprelink $k + ALREADYPRELINKED="$ALREADYPRELINKED !!!$k" + fi + fi + fi + k="$ASHORTNAME.o" + if test -r $k; then + ISELF=`file $k | grep ELF` + if test -n "$ISELF"; then + ALREADY=`echo $ALREADYPRELINKED | grep "!!!$k"` + if test -z "$ALREADY"; then + echo objprelink $k + objprelink $k + ALREADYPRELINKED="$ALREADYPRELINKED !!!$k" + fi + fi + fi + ;; + esac +done + +EOF + cat >> libtool libtool.orig + rm libtool.orig + chmod a+x libtool + fi +]) +# libtool.m4 - Configure libtool for the host system. -*-Autoconf-*- +## Copyright 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004 +## Free Software Foundation, Inc. +## Originally by Gordon Matzigkeit , 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 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. +## +## 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. + +# serial 47 AC_PROG_LIBTOOL + + +# AC_PROVIDE_IFELSE(MACRO-NAME, IF-PROVIDED, IF-NOT-PROVIDED) +# ----------------------------------------------------------- +# If this macro is not defined by Autoconf, define it here. +m4_ifdef([AC_PROVIDE_IFELSE], + [], + [m4_define([AC_PROVIDE_IFELSE], + [m4_ifdef([AC_PROVIDE_$1], + [$2], [$3])])]) + + +# AC_PROG_LIBTOOL +# --------------- +AC_DEFUN([AC_PROG_LIBTOOL], +[AC_REQUIRE([_AC_PROG_LIBTOOL])dnl +dnl If AC_PROG_CXX has already been expanded, run AC_LIBTOOL_CXX +dnl immediately, otherwise, hook it in at the end of AC_PROG_CXX. + AC_PROVIDE_IFELSE([AC_PROG_CXX], + [AC_LIBTOOL_CXX], + [define([AC_PROG_CXX], defn([AC_PROG_CXX])[AC_LIBTOOL_CXX + ])]) +dnl And a similar setup for Fortran 77 support + AC_PROVIDE_IFELSE([AC_PROG_F77], + [AC_LIBTOOL_F77], + [define([AC_PROG_F77], defn([AC_PROG_F77])[AC_LIBTOOL_F77 +])]) + +dnl Quote A][M_PROG_GCJ so that aclocal doesn't bring it in needlessly. +dnl If either AC_PROG_GCJ or A][M_PROG_GCJ have already been expanded, run +dnl AC_LIBTOOL_GCJ immediately, otherwise, hook it in at the end of both. + AC_PROVIDE_IFELSE([AC_PROG_GCJ], + [AC_LIBTOOL_GCJ], + [AC_PROVIDE_IFELSE([A][M_PROG_GCJ], + [AC_LIBTOOL_GCJ], + [AC_PROVIDE_IFELSE([LT_AC_PROG_GCJ], + [AC_LIBTOOL_GCJ], + [ifdef([AC_PROG_GCJ], + [define([AC_PROG_GCJ], defn([AC_PROG_GCJ])[AC_LIBTOOL_GCJ])]) + ifdef([A][M_PROG_GCJ], + [define([A][M_PROG_GCJ], defn([A][M_PROG_GCJ])[AC_LIBTOOL_GCJ])]) + ifdef([LT_AC_PROG_GCJ], + [define([LT_AC_PROG_GCJ], + defn([LT_AC_PROG_GCJ])[AC_LIBTOOL_GCJ])])])]) +])])# AC_PROG_LIBTOOL + + +# _AC_PROG_LIBTOOL +# ---------------- +AC_DEFUN([_AC_PROG_LIBTOOL], +[AC_REQUIRE([AC_LIBTOOL_SETUP])dnl +AC_BEFORE([$0],[AC_LIBTOOL_CXX])dnl +AC_BEFORE([$0],[AC_LIBTOOL_F77])dnl +AC_BEFORE([$0],[AC_LIBTOOL_GCJ])dnl + +# This can be used to rebuild libtool when needed +LIBTOOL_DEPS="$ac_aux_dir/ltmain.sh" + +# Always use our own libtool. +LIBTOOL='$(SHELL) $(top_builddir)/libtool' +AC_SUBST(LIBTOOL)dnl + +# Prevent multiple expansion +define([AC_PROG_LIBTOOL], []) +])# _AC_PROG_LIBTOOL + + +# AC_LIBTOOL_SETUP +# ---------------- +AC_DEFUN([AC_LIBTOOL_SETUP], +[AC_PREREQ(2.50)dnl +AC_REQUIRE([AC_ENABLE_SHARED])dnl +AC_REQUIRE([AC_ENABLE_STATIC])dnl +AC_REQUIRE([AC_ENABLE_FAST_INSTALL])dnl +AC_REQUIRE([AC_CANONICAL_HOST])dnl +AC_REQUIRE([AC_CANONICAL_BUILD])dnl +AC_REQUIRE([AC_PROG_CC])dnl +AC_REQUIRE([AC_PROG_LD])dnl +AC_REQUIRE([AC_PROG_LD_RELOAD_FLAG])dnl +AC_REQUIRE([AC_PROG_NM])dnl + +AC_REQUIRE([AC_PROG_LN_S])dnl +AC_REQUIRE([AC_DEPLIBS_CHECK_METHOD])dnl +# Autoconf 2.13's AC_OBJEXT and AC_EXEEXT macros only works for C compilers! +AC_REQUIRE([AC_OBJEXT])dnl +AC_REQUIRE([AC_EXEEXT])dnl +dnl + +AC_LIBTOOL_SYS_MAX_CMD_LEN +AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE +AC_LIBTOOL_OBJDIR + +AC_REQUIRE([_LT_AC_SYS_COMPILER])dnl +_LT_AC_PROG_ECHO_BACKSLASH + +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 + +# Sed substitution that helps us do robust quoting. It backslashifies +# metacharacters that are still active within double-quoted strings. +Xsed='sed -e s/^X//' +[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 avoid accidental globbing in evaled expressions +no_glob_subst='s/\*/\\\*/g' + +# Constants: +rm="rm -f" + +# Global variables: +default_ofile=libtool +can_build_shared=yes + +# All known linkers require a `.a' archive for static linking (except M$VC, +# which needs '.lib'). +libext=a +ltmain="$ac_aux_dir/ltmain.sh" +ofile="$default_ofile" +with_gnu_ld="$lt_cv_prog_gnu_ld" + +AC_CHECK_TOOL(AR, ar, false) +AC_CHECK_TOOL(RANLIB, ranlib, :) +AC_CHECK_TOOL(STRIP, strip, :) + +old_CC="$CC" +old_CFLAGS="$CFLAGS" + +# Set sane defaults for various variables +test -z "$AR" && AR=ar +test -z "$AR_FLAGS" && AR_FLAGS=cru +test -z "$AS" && AS=as +test -z "$CC" && CC=cc +test -z "$LTCC" && LTCC=$CC +test -z "$DLLTOOL" && DLLTOOL=dlltool +test -z "$LD" && LD=ld +test -z "$LN_S" && LN_S="ln -s" +test -z "$MAGIC_CMD" && MAGIC_CMD=file +test -z "$NM" && NM=nm +test -z "$SED" && SED=sed +test -z "$OBJDUMP" && OBJDUMP=objdump +test -z "$RANLIB" && RANLIB=: +test -z "$STRIP" && STRIP=: +test -z "$ac_objext" && ac_objext=o + +# Determine commands to create old-style static archives. +old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs$old_deplibs' +old_postinstall_cmds='chmod 644 $oldlib' +old_postuninstall_cmds= + +if test -n "$RANLIB"; then + case $host_os in + openbsd*) + old_postinstall_cmds="\$RANLIB -t \$oldlib~$old_postinstall_cmds" + ;; + *) + old_postinstall_cmds="\$RANLIB \$oldlib~$old_postinstall_cmds" + ;; + esac + old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib" +fi + +cc_basename=`$echo X"$compiler" | $Xsed -e 's%^.*/%%'` + +# Only perform the check for file, if the check method requires it +case $deplibs_check_method in +file_magic*) + if test "$file_magic_cmd" = '$MAGIC_CMD'; then + AC_PATH_MAGIC + fi + ;; +esac + +AC_PROVIDE_IFELSE([AC_LIBTOOL_DLOPEN], enable_dlopen=yes, enable_dlopen=no) +AC_PROVIDE_IFELSE([AC_LIBTOOL_WIN32_DLL], +enable_win32_dll=yes, enable_win32_dll=no) + +AC_ARG_ENABLE([libtool-lock], + [AC_HELP_STRING([--disable-libtool-lock], + [avoid locking (might break parallel builds)])]) +test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes + +AC_ARG_WITH([pic], + [AC_HELP_STRING([--with-pic], + [try to use only PIC/non-PIC objects @<:@default=use both@:>@])], + [pic_mode="$withval"], + [pic_mode=default]) +test -z "$pic_mode" && pic_mode=default + +# Use C for the default configuration in the libtool script +tagname= +AC_LIBTOOL_LANG_C_CONFIG +_LT_AC_TAGCONFIG +])# AC_LIBTOOL_SETUP + + +# _LT_AC_SYS_COMPILER +# ------------------- +AC_DEFUN([_LT_AC_SYS_COMPILER], +[AC_REQUIRE([AC_PROG_CC])dnl + +# If no C compiler was specified, use CC. +LTCC=${LTCC-"$CC"} + +# Allow CC to be a program name with arguments. +compiler=$CC +])# _LT_AC_SYS_COMPILER + + +# _LT_AC_SYS_LIBPATH_AIX +# ---------------------- +# 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. +AC_DEFUN([_LT_AC_SYS_LIBPATH_AIX], +[AC_LINK_IFELSE(AC_LANG_PROGRAM,[ +aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } +}'` +# Check for a 64-bit object if we didn't find anything. +if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } +}'`; fi],[]) +if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi +])# _LT_AC_SYS_LIBPATH_AIX + + +# _LT_AC_SHELL_INIT(ARG) +# ---------------------- +AC_DEFUN([_LT_AC_SHELL_INIT], +[ifdef([AC_DIVERSION_NOTICE], + [AC_DIVERT_PUSH(AC_DIVERSION_NOTICE)], + [AC_DIVERT_PUSH(NOTICE)]) +$1 +AC_DIVERT_POP +])# _LT_AC_SHELL_INIT + + +# _LT_AC_PROG_ECHO_BACKSLASH +# -------------------------- +# Add some code to the start of the generated configure script which +# will find an echo command which doesn't interpret backslashes. +AC_DEFUN([_LT_AC_PROG_ECHO_BACKSLASH], +[_LT_AC_SHELL_INIT([ +# Check that we are running under the correct shell. +SHELL=${CONFIG_SHELL-/bin/sh} + +case X$ECHO in +X*--fallback-echo) + # Remove one level of quotation (which was required for Make). + ECHO=`echo "$ECHO" | sed 's,\\\\\[$]\\[$]0,'[$]0','` + ;; +esac + +echo=${ECHO-echo} +if test "X[$]1" = X--no-reexec; then + # Discard the --no-reexec flag, and continue. + shift +elif test "X[$]1" = X--fallback-echo; then + # Avoid inline document here, it may be left over + : +elif test "X`($echo '\t') 2>/dev/null`" = 'X\t' ; then + # Yippee, $echo works! + : +else + # Restart under the correct shell. + exec $SHELL "[$]0" --no-reexec ${1+"[$]@"} +fi + +if test "X[$]1" = X--fallback-echo; then + # used as fallback echo + shift + cat </dev/null 2>&1 && unset CDPATH + +if test -z "$ECHO"; then +if test "X${echo_test_string+set}" != Xset; then +# find a string as large as possible, as long as the shell can cope with it + for cmd in 'sed 50q "[$]0"' 'sed 20q "[$]0"' 'sed 10q "[$]0"' 'sed 2q "[$]0"' 'echo test'; do + # expected sizes: less than 2Kb, 1Kb, 512 bytes, 16 bytes, ... + if (echo_test_string="`eval $cmd`") 2>/dev/null && + echo_test_string="`eval $cmd`" && + (test "X$echo_test_string" = "X$echo_test_string") 2>/dev/null + then + break + fi + done +fi + +if test "X`($echo '\t') 2>/dev/null`" = 'X\t' && + echo_testing_string=`($echo "$echo_test_string") 2>/dev/null` && + test "X$echo_testing_string" = "X$echo_test_string"; then + : +else + # The Solaris, AIX, and Digital Unix default echo programs unquote + # backslashes. This makes it impossible to quote backslashes using + # echo "$something" | sed 's/\\/\\\\/g' + # + # So, first we look for a working echo in the user's PATH. + + lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR + for dir in $PATH /usr/ucb; do + IFS="$lt_save_ifs" + if (test -f $dir/echo || test -f $dir/echo$ac_exeext) && + test "X`($dir/echo '\t') 2>/dev/null`" = 'X\t' && + echo_testing_string=`($dir/echo "$echo_test_string") 2>/dev/null` && + test "X$echo_testing_string" = "X$echo_test_string"; then + echo="$dir/echo" + break + fi + done + IFS="$lt_save_ifs" + + if test "X$echo" = Xecho; then + # We didn't find a better echo, so look for alternatives. + if test "X`(print -r '\t') 2>/dev/null`" = 'X\t' && + echo_testing_string=`(print -r "$echo_test_string") 2>/dev/null` && + test "X$echo_testing_string" = "X$echo_test_string"; then + # This shell has a builtin print -r that does the trick. + echo='print -r' + elif (test -f /bin/ksh || test -f /bin/ksh$ac_exeext) && + test "X$CONFIG_SHELL" != X/bin/ksh; then + # If we have ksh, try running configure again with it. + ORIGINAL_CONFIG_SHELL=${CONFIG_SHELL-/bin/sh} + export ORIGINAL_CONFIG_SHELL + CONFIG_SHELL=/bin/ksh + export CONFIG_SHELL + exec $CONFIG_SHELL "[$]0" --no-reexec ${1+"[$]@"} + else + # Try using printf. + echo='printf %s\n' + if test "X`($echo '\t') 2>/dev/null`" = 'X\t' && + echo_testing_string=`($echo "$echo_test_string") 2>/dev/null` && + test "X$echo_testing_string" = "X$echo_test_string"; then + # Cool, printf works + : + elif echo_testing_string=`($ORIGINAL_CONFIG_SHELL "[$]0" --fallback-echo '\t') 2>/dev/null` && + test "X$echo_testing_string" = 'X\t' && + echo_testing_string=`($ORIGINAL_CONFIG_SHELL "[$]0" --fallback-echo "$echo_test_string") 2>/dev/null` && + test "X$echo_testing_string" = "X$echo_test_string"; then + CONFIG_SHELL=$ORIGINAL_CONFIG_SHELL + export CONFIG_SHELL + SHELL="$CONFIG_SHELL" + export SHELL + echo="$CONFIG_SHELL [$]0 --fallback-echo" + elif echo_testing_string=`($CONFIG_SHELL "[$]0" --fallback-echo '\t') 2>/dev/null` && + test "X$echo_testing_string" = 'X\t' && + echo_testing_string=`($CONFIG_SHELL "[$]0" --fallback-echo "$echo_test_string") 2>/dev/null` && + test "X$echo_testing_string" = "X$echo_test_string"; then + echo="$CONFIG_SHELL [$]0 --fallback-echo" + else + # maybe with a smaller string... + prev=: + + for cmd in 'echo test' 'sed 2q "[$]0"' 'sed 10q "[$]0"' 'sed 20q "[$]0"' 'sed 50q "[$]0"'; do + if (test "X$echo_test_string" = "X`eval $cmd`") 2>/dev/null + then + break + fi + prev="$cmd" + done + + if test "$prev" != 'sed 50q "[$]0"'; then + echo_test_string=`eval $prev` + export echo_test_string + exec ${ORIGINAL_CONFIG_SHELL-${CONFIG_SHELL-/bin/sh}} "[$]0" ${1+"[$]@"} + else + # Oops. We lost completely, so just stick with echo. + echo=echo + fi + fi + fi + fi +fi +fi + +# Copy echo and quote the copy suitably for passing to libtool from +# the Makefile, instead of quoting the original, which is used later. +ECHO=$echo +if test "X$ECHO" = "X$CONFIG_SHELL [$]0 --fallback-echo"; then + ECHO="$CONFIG_SHELL \\\$\[$]0 --fallback-echo" +fi + +AC_SUBST(ECHO) +])])# _LT_AC_PROG_ECHO_BACKSLASH + + +# _LT_AC_LOCK +# ----------- +AC_DEFUN([_LT_AC_LOCK], +[AC_ARG_ENABLE([libtool-lock], + [AC_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 __oline__ "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-*linux*|ppc*-*linux*|powerpc*-*linux*|s390*-*linux*|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-*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-*linux*) + LD="${LD-ld} -m elf_x86_64" + ;; + ppc*-*linux*|powerpc*-*linux*) + LD="${LD-ld} -m elf64ppc" + ;; + s390*-*linux*) + 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_TRY_LINK([],[],[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 + ;; +AC_PROVIDE_IFELSE([AC_LIBTOOL_WIN32_DLL], +[*-*-cygwin* | *-*-mingw* | *-*-pw32*) + AC_CHECK_TOOL(DLLTOOL, dlltool, false) + AC_CHECK_TOOL(AS, as, false) + AC_CHECK_TOOL(OBJDUMP, objdump, false) + ;; + ]) +esac + +need_locks="$enable_libtool_lock" + +])# _LT_AC_LOCK + + +# AC_LIBTOOL_COMPILER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS, +# [OUTPUT-FILE], [ACTION-SUCCESS], [ACTION-FAILURE]) +# ---------------------------------------------------------------- +# Check whether the given compiler option works +AC_DEFUN([AC_LIBTOOL_COMPILER_OPTION], +[AC_REQUIRE([LT_AC_PROG_SED]) +AC_CACHE_CHECK([$1], [$2], + [$2=no + ifelse([$4], , [ac_outfile=conftest.$ac_objext], [ac_outfile=$4]) + printf "$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}? :&$lt_compiler_flag :; t' \ + -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:__oline__: $lt_compile\"" >&AS_MESSAGE_LOG_FD) + (eval "$lt_compile" 2>conftest.err) + ac_status=$? + cat conftest.err >&AS_MESSAGE_LOG_FD + echo "$as_me:__oline__: \$? = $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 + if test ! -s conftest.err; then + $2=yes + fi + fi + $rm conftest* +]) + +if test x"[$]$2" = xyes; then + ifelse([$5], , :, [$5]) +else + ifelse([$6], , :, [$6]) +fi +])# AC_LIBTOOL_COMPILER_OPTION + + +# AC_LIBTOOL_LINKER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS, +# [ACTION-SUCCESS], [ACTION-FAILURE]) +# ------------------------------------------------------------ +# Check whether the given compiler option works +AC_DEFUN([AC_LIBTOOL_LINKER_OPTION], +[AC_CACHE_CHECK([$1], [$2], + [$2=no + save_LDFLAGS="$LDFLAGS" + LDFLAGS="$LDFLAGS $3" + printf "$lt_simple_link_test_code" > conftest.$ac_ext + if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then + # The compiler 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 + else + $2=yes + fi + fi + $rm conftest* + LDFLAGS="$save_LDFLAGS" +]) + +if test x"[$]$2" = xyes; then + ifelse([$4], , :, [$4]) +else + ifelse([$5], , :, [$5]) +fi +])# AC_LIBTOOL_LINKER_OPTION + + +# AC_LIBTOOL_SYS_MAX_CMD_LEN +# -------------------------- +AC_DEFUN([AC_LIBTOOL_SYS_MAX_CMD_LEN], +[# 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*) + # 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; + ;; + + 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* ) + # 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 *BSD + fi + # And add a safety zone + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` + ;; + + *) + # 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. + SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}} + while (test "X"`$SHELL [$]0 --fallback-echo "X$teststring" 2>/dev/null` \ + = "XX$teststring") >/dev/null 2>&1 && + new_result=`expr "X$teststring" : ".*" 2>&1` && + lt_cv_sys_max_cmd_len=$new_result && + test $i != 17 # 1/2 MB should be enough + do + i=`expr $i + 1` + teststring=$teststring$teststring + done + 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` + ;; + 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 +])# AC_LIBTOOL_SYS_MAX_CMD_LEN + + +# _LT_AC_CHECK_DLFCN +# -------------------- +AC_DEFUN([_LT_AC_CHECK_DLFCN], +[AC_CHECK_HEADERS(dlfcn.h)dnl +])# _LT_AC_CHECK_DLFCN + + +# _LT_AC_TRY_DLOPEN_SELF (ACTION-IF-TRUE, ACTION-IF-TRUE-W-USCORE, +# ACTION-IF-FALSE, ACTION-IF-CROSS-COMPILING) +# ------------------------------------------------------------------ +AC_DEFUN([_LT_AC_TRY_DLOPEN_SELF], +[AC_REQUIRE([_LT_AC_CHECK_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 < +#endif + +#include + +#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 + +#ifdef __cplusplus +extern "C" void exit (int); +#endif + +void fnord() { int i=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; + /* dlclose (self); */ + } + + exit (status); +}] +EOF + if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext} 2>/dev/null; then + (./conftest; exit; ) 2>/dev/null + lt_status=$? + case x$lt_status in + x$lt_dlno_uscore) $1 ;; + x$lt_dlneed_uscore) $2 ;; + x$lt_unknown|x*) $3 ;; + esac + else : + # compilation failed + $3 + fi +fi +rm -fr conftest* +])# _LT_AC_TRY_DLOPEN_SELF + + +# AC_LIBTOOL_DLOPEN_SELF +# ------------------- +AC_DEFUN([AC_LIBTOOL_DLOPEN_SELF], +[AC_REQUIRE([_LT_AC_CHECK_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*) + 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="-dld"], + [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="-dld"]) + ]) + ]) + ]) + ]) + ]) + ;; + 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" + 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_AC_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 + LDFLAGS="$LDFLAGS $link_static_flag" + AC_CACHE_CHECK([whether a statically linked program can dlopen itself], + lt_cv_dlopen_self_static, [dnl + _LT_AC_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 +])# AC_LIBTOOL_DLOPEN_SELF + + +# AC_LIBTOOL_PROG_CC_C_O([TAGNAME]) +# --------------------------------- +# Check to see if options -c and -o are simultaneously supported by compiler +AC_DEFUN([AC_LIBTOOL_PROG_CC_C_O], +[AC_REQUIRE([_LT_AC_SYS_COMPILER])dnl +AC_CACHE_CHECK([if $compiler supports -c -o file.$ac_objext], + [_LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)], + [_LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)=no + $rm -r conftest 2>/dev/null + mkdir conftest + cd conftest + mkdir out + printf "$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}? :&$lt_compiler_flag :; t' \ + -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:__oline__: $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:__oline__: \$? = $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 + if test ! -s out/conftest.err; then + _LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes + fi + fi + chmod u+w . + $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 .. + rmdir conftest + $rm conftest* +]) +])# AC_LIBTOOL_PROG_CC_C_O + + +# AC_LIBTOOL_SYS_HARD_LINK_LOCKS([TAGNAME]) +# ----------------------------------------- +# Check to see if we can do hard links to lock some files if needed +AC_DEFUN([AC_LIBTOOL_SYS_HARD_LINK_LOCKS], +[AC_REQUIRE([_LT_AC_LOCK])dnl + +hard_links="nottested" +if test "$_LT_AC_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 +])# AC_LIBTOOL_SYS_HARD_LINK_LOCKS + + +# AC_LIBTOOL_OBJDIR +# ----------------- +AC_DEFUN([AC_LIBTOOL_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 +])# AC_LIBTOOL_OBJDIR + + +# AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH([TAGNAME]) +# ---------------------------------------------- +# Check hardcoding attributes. +AC_DEFUN([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH], +[AC_MSG_CHECKING([how to hardcode library paths into programs]) +_LT_AC_TAGVAR(hardcode_action, $1)= +if test -n "$_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)" || \ + test -n "$_LT_AC_TAGVAR(runpath_var, $1)" || \ + test "X$_LT_AC_TAGVAR(hardcode_automatic, $1)" = "Xyes" ; then + + # We can hardcode non-existant directories. + if test "$_LT_AC_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_AC_TAGVAR(hardcode_shlibpath_var, $1)" != no && + test "$_LT_AC_TAGVAR(hardcode_minus_L, $1)" != no; then + # Linking always hardcodes the temporary library directory. + _LT_AC_TAGVAR(hardcode_action, $1)=relink + else + # We can link without hardcoding, and we can hardcode nonexisting dirs. + _LT_AC_TAGVAR(hardcode_action, $1)=immediate + fi +else + # We cannot hardcode anything, or else we can only hardcode existing + # directories. + _LT_AC_TAGVAR(hardcode_action, $1)=unsupported +fi +AC_MSG_RESULT([$_LT_AC_TAGVAR(hardcode_action, $1)]) + +if test "$_LT_AC_TAGVAR(hardcode_action, $1)" = relink; 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 +])# AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH + + +# AC_LIBTOOL_SYS_LIB_STRIP +# ------------------------ +AC_DEFUN([AC_LIBTOOL_SYS_LIB_STRIP], +[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" + AC_MSG_RESULT([yes]) + else + AC_MSG_RESULT([no]) +fi + ;; + *) + AC_MSG_RESULT([no]) + ;; + esac +fi +])# AC_LIBTOOL_SYS_LIB_STRIP + + +# AC_LIBTOOL_SYS_DYNAMIC_LINKER +# ----------------------------- +# PORTME Fill in your ld.so characteristics +AC_DEFUN([AC_LIBTOOL_SYS_DYNAMIC_LINKER], +[AC_MSG_CHECKING([dynamic linker characteristics]) +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" +if test "$GCC" = yes; then + sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` + if echo "$sys_lib_search_path_spec" | grep ';' >/dev/null ; then + # 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. + 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 +else + sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" +fi +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 + 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' + ;; + +aix4* | aix5*) + version_type=linux + 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.so + # instead of lib.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*) + 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=`$echo "X$lib" | $Xsed -e '\''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' + ;; + +beos*) + library_names_spec='${libname}${shared_ext}' + dynamic_linker="$host_os ld.so" + shlibpath_var=LIBRARY_PATH + ;; + +bsdi[[45]]*) + version_type=linux + 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*) + version_type=windows + shrext_cmds=".dll" + need_version=no + need_lib_prefix=no + + case $GCC,$host_os in + yes,cygwin* | yes,mingw* | yes,pw32*) + 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' + 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}' + sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib" + ;; + mingw*) + # MinGW DLLs use traditional 'lib' prefix + soname_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' + sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` + if echo "$sys_lib_search_path_spec" | [grep ';[c-zC-Z]:/' >/dev/null]; then + # It is most probably a Windows format PATH printed by + # mingw gcc, but we are running on Cygwin. Gcc prints its search + # path with ; separators, and with drive letters. We can handle the + # drive letters (cygwin fileutils understands them), so leave them, + # especially as we might pass files found there to a mingw objdump, + # which wouldn't understand a cygwinified path. Ahh. + 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 + ;; + 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 + ;; + + *) + library_names_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext} $libname.lib' + ;; + esac + dynamic_linker='Win32 ld.exe' + # 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}${versuffix}$shared_ext ${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)' + # Apple's gcc prints 'gcc -print-search-dirs' doesn't operate the same. + if test "$GCC" = yes; then + sys_lib_search_path_spec=`$CC -print-search-dirs | tr "\n" "$PATH_SEPARATOR" | sed -e 's/libraries:/@libraries:/' | tr "@" "\n" | grep "^libraries:" | sed -e "s/^libraries://" -e "s,=/,/,g" -e "s,$PATH_SEPARATOR, ,g" -e "s,.*,& /lib /usr/lib /usr/local/lib,g"` + else + sys_lib_search_path_spec='/lib /usr/lib /usr/local/lib' + fi + sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' + ;; + +dgux*) + version_type=linux + 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 + ;; + +freebsd1*) + dynamic_linker=no + ;; + +kfreebsd*-gnu) + version_type=linux + 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='GNU ld.so' + ;; + +freebsd*) + objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo aout` + 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 + ;; + *) # from 3.2 on + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + esac + ;; + +gnu*) + version_type=linux + 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 + 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' + ;; + +irix5* | irix6* | nonstopux*) + case $host_os in + nonstopux*) version_type=nonstopux ;; + *) + if test "$lt_cv_prog_gnu_ld" = yes; then + version_type=linux + 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 Linux ELF. +linux*) + version_type=linux + 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 + # 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=`$SED -e 's/[:,\t]/ /g;s/=[^=]*$//;s/=[^= ]* / /g' /etc/ld.so.conf | 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' + ;; + +knetbsd*-gnu) + version_type=linux + 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='GNU 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 + 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=linux + 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 + ;; + +openbsd*) + version_type=sunos + need_lib_prefix=no + need_version=no + 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" + ;; + +sco3.2v5*) + version_type=osf + 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 + ;; + +solaris*) + version_type=linux + 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.2uw2* | sysv4.3* | sysv5*) + version_type=linux + 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 + export_dynamic_flag_spec='${wl}-Blargedynsym' + 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 + 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 + ;; + +uts4*) + version_type=linux + 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 +])# AC_LIBTOOL_SYS_DYNAMIC_LINKER + + +# _LT_AC_TAGCONFIG +# ---------------- +AC_DEFUN([_LT_AC_TAGCONFIG], +[AC_ARG_WITH([tags], + [AC_HELP_STRING([--with-tags@<:@=TAGS@:>@], + [include additional configurations @<:@automatic@:>@])], + [tagnames="$withval"]) + +if test -f "$ltmain" && test -n "$tagnames"; then + if test ! -f "${ofile}"; then + AC_MSG_WARN([output file `$ofile' does not exist]) + fi + + if test -z "$LTCC"; then + eval "`$SHELL ${ofile} --config | grep '^LTCC='`" + if test -z "$LTCC"; then + AC_MSG_WARN([output file `$ofile' does not look like a libtool script]) + else + AC_MSG_WARN([using `LTCC=$LTCC', extracted from `$ofile']) + fi + fi + + # Extract list of available tagged configurations in $ofile. + # Note that this assumes the entire list is on one line. + available_tags=`grep "^available_tags=" "${ofile}" | $SED -e 's/available_tags=\(.*$\)/\1/' -e 's/\"//g'` + + lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," + for tagname in $tagnames; do + IFS="$lt_save_ifs" + # Check whether tagname contains only valid characters + case `$echo "X$tagname" | $Xsed -e 's:[[-_ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890,/]]::g'` in + "") ;; + *) AC_MSG_ERROR([invalid tag name: $tagname]) + ;; + esac + + if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$" < "${ofile}" > /dev/null + then + AC_MSG_ERROR([tag name \"$tagname\" already exists]) + fi + + # Update the list of available tags. + if test -n "$tagname"; then + echo appending configuration tag \"$tagname\" to $ofile + + case $tagname in + CXX) + if test -n "$CXX" && ( test "X$CXX" != "Xno" && + ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) || + (test "X$CXX" != "Xg++"))) ; then + AC_LIBTOOL_LANG_CXX_CONFIG + else + tagname="" + fi + ;; + + F77) + if test -n "$F77" && test "X$F77" != "Xno"; then + AC_LIBTOOL_LANG_F77_CONFIG + else + tagname="" + fi + ;; + + GCJ) + if test -n "$GCJ" && test "X$GCJ" != "Xno"; then + AC_LIBTOOL_LANG_GCJ_CONFIG + else + tagname="" + fi + ;; + + RC) + AC_LIBTOOL_LANG_RC_CONFIG + ;; + + *) + AC_MSG_ERROR([Unsupported tag name: $tagname]) + ;; + esac + + # Append the new tag name to the list of available tags. + if test -n "$tagname" ; then + available_tags="$available_tags $tagname" + fi + fi + done + IFS="$lt_save_ifs" + + # Now substitute the updated list of available tags. + if eval "sed -e 's/^available_tags=.*\$/available_tags=\"$available_tags\"/' \"$ofile\" > \"${ofile}T\""; then + mv "${ofile}T" "$ofile" + chmod +x "$ofile" + else + rm -f "${ofile}T" + AC_MSG_ERROR([unable to update list of available tagged configurations.]) + fi +fi +])# _LT_AC_TAGCONFIG + + +# AC_LIBTOOL_DLOPEN +# ----------------- +# enable checks for dlopen support +AC_DEFUN([AC_LIBTOOL_DLOPEN], + [AC_BEFORE([$0],[AC_LIBTOOL_SETUP]) +])# AC_LIBTOOL_DLOPEN + + +# AC_LIBTOOL_WIN32_DLL +# -------------------- +# declare package support for building win32 dll's +AC_DEFUN([AC_LIBTOOL_WIN32_DLL], +[AC_BEFORE([$0], [AC_LIBTOOL_SETUP]) +])# AC_LIBTOOL_WIN32_DLL + + +# AC_ENABLE_SHARED([DEFAULT]) +# --------------------------- +# implement the --enable-shared flag +# DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'. +AC_DEFUN([AC_ENABLE_SHARED], +[define([AC_ENABLE_SHARED_DEFAULT], ifelse($1, no, no, yes))dnl +AC_ARG_ENABLE([shared], + [AC_HELP_STRING([--enable-shared@<:@=PKGS@:>@], + [build shared libraries @<:@default=]AC_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=]AC_ENABLE_SHARED_DEFAULT) +])# AC_ENABLE_SHARED + + +# AC_DISABLE_SHARED +# ----------------- +#- set the default shared flag to --disable-shared +AC_DEFUN([AC_DISABLE_SHARED], +[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl +AC_ENABLE_SHARED(no) +])# AC_DISABLE_SHARED + + +# AC_ENABLE_STATIC([DEFAULT]) +# --------------------------- +# implement the --enable-static flag +# DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'. +AC_DEFUN([AC_ENABLE_STATIC], +[define([AC_ENABLE_STATIC_DEFAULT], ifelse($1, no, no, yes))dnl +AC_ARG_ENABLE([static], + [AC_HELP_STRING([--enable-static@<:@=PKGS@:>@], + [build static libraries @<:@default=]AC_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=]AC_ENABLE_STATIC_DEFAULT) +])# AC_ENABLE_STATIC + + +# AC_DISABLE_STATIC +# ----------------- +# set the default static flag to --disable-static +AC_DEFUN([AC_DISABLE_STATIC], +[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl +AC_ENABLE_STATIC(no) +])# AC_DISABLE_STATIC + + +# AC_ENABLE_FAST_INSTALL([DEFAULT]) +# --------------------------------- +# implement the --enable-fast-install flag +# DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'. +AC_DEFUN([AC_ENABLE_FAST_INSTALL], +[define([AC_ENABLE_FAST_INSTALL_DEFAULT], ifelse($1, no, no, yes))dnl +AC_ARG_ENABLE([fast-install], + [AC_HELP_STRING([--enable-fast-install@<:@=PKGS@:>@], + [optimize for fast installation @<:@default=]AC_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=]AC_ENABLE_FAST_INSTALL_DEFAULT) +])# AC_ENABLE_FAST_INSTALL + + +# AC_DISABLE_FAST_INSTALL +# ----------------------- +# set the default to --disable-fast-install +AC_DEFUN([AC_DISABLE_FAST_INSTALL], +[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl +AC_ENABLE_FAST_INSTALL(no) +])# AC_DISABLE_FAST_INSTALL + + +# AC_LIBTOOL_PICMODE([MODE]) +# -------------------------- +# implement the --with-pic flag +# MODE is either `yes' or `no'. If omitted, it defaults to `both'. +AC_DEFUN([AC_LIBTOOL_PICMODE], +[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl +pic_mode=ifelse($#,1,$1,default) +])# AC_LIBTOOL_PICMODE + + +# AC_PROG_EGREP +# ------------- +# This is predefined starting with Autoconf 2.54, so this conditional +# definition can be removed once we require Autoconf 2.54 or later. +m4_ifndef([AC_PROG_EGREP], [AC_DEFUN([AC_PROG_EGREP], +[AC_CACHE_CHECK([for egrep], [ac_cv_prog_egrep], + [if echo a | (grep -E '(a|b)') >/dev/null 2>&1 + then ac_cv_prog_egrep='grep -E' + else ac_cv_prog_egrep='egrep' + fi]) + EGREP=$ac_cv_prog_egrep + AC_SUBST([EGREP]) +])]) + + +# AC_PATH_TOOL_PREFIX +# ------------------- +# find a file program which can recognise shared library +AC_DEFUN([AC_PATH_TOOL_PREFIX], +[AC_REQUIRE([AC_PROG_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="ifelse([$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 <&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 + +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 +])# AC_PATH_TOOL_PREFIX + + +# AC_PATH_MAGIC +# ------------- +# find a file program which can recognise a shared library +AC_DEFUN([AC_PATH_MAGIC], +[AC_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 + AC_PATH_TOOL_PREFIX(file, /usr/bin$PATH_SEPARATOR$PATH) + else + MAGIC_CMD=: + fi +fi +])# AC_PATH_MAGIC + + +# AC_PROG_LD +# ---------- +# find the pathname to the GNU or non-GNU linker +AC_DEFUN([AC_PROG_LD], +[AC_ARG_WITH([gnu-ld], + [AC_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]) +AC_REQUIRE([LT_AC_PROG_SED])dnl +AC_REQUIRE([AC_PROG_CC])dnl +AC_REQUIRE([AC_CANONICAL_HOST])dnl +AC_REQUIRE([AC_CANONICAL_BUILD])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 GNU ld's only accept -v. + # Break only if it was the GNU/non-GNU ld that we prefer. + case `"$lt_cv_path_LD" -v 2>&1 &1 /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)/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 + ;; + +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]) 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 + ;; + +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 Linux ELF. +linux*) + 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=unknown + ;; + +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 + ;; + +sco3.2v5*) + lt_cv_deplibs_check_method=pass_all + ;; + +solaris*) + lt_cv_deplibs_check_method=pass_all + ;; + +sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) + 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 + ;; + esac + ;; + +sysv5OpenUNIX8* | sysv5UnixWare7* | sysv5uw[[78]]* | unixware7* | sysv4*uw2*) + lt_cv_deplibs_check_method=pass_all + ;; +esac +]) +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 +])# AC_DEPLIBS_CHECK_METHOD + + +# AC_PROG_NM +# ---------- +# find the pathname to a BSD-compatible name lister +AC_DEFUN([AC_PROG_NM], +[AC_CACHE_CHECK([for BSD-compatible nm], lt_cv_path_NM, +[if test -n "$NM"; then + # Let the user override the test. + lt_cv_path_NM="$NM" +else + lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR + for ac_dir in $PATH /usr/ccs/bin /usr/ucb /bin; do + IFS="$lt_save_ifs" + test -z "$ac_dir" && ac_dir=. + tmp_nm="$ac_dir/${ac_tool_prefix}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" + test -z "$lt_cv_path_NM" && lt_cv_path_NM=nm +fi]) +NM="$lt_cv_path_NM" +])# AC_PROG_NM + + +# AC_CHECK_LIBM +# ------------- +# check for math library +AC_DEFUN([AC_CHECK_LIBM], +[AC_REQUIRE([AC_CANONICAL_HOST])dnl +LIBM= +case $host in +*-*-beos* | *-*-cygwin* | *-*-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_CHECK_LIBM + + +# AC_LIBLTDL_CONVENIENCE([DIRECTORY]) +# ----------------------------------- +# sets LIBLTDL to the link flags for the libltdl convenience library and +# LTDLINCL to the include flags for the libltdl header and adds +# --enable-ltdl-convenience to the configure arguments. Note that LIBLTDL +# and LTDLINCL are not AC_SUBSTed, nor is AC_CONFIG_SUBDIRS called. If +# DIRECTORY is not provided, it is assumed to be `libltdl'. LIBLTDL will +# be prefixed with '${top_builddir}/' and LTDLINCL will be prefixed with +# '${top_srcdir}/' (note the single quotes!). If your package is not +# flat and you're not using automake, define top_builddir and +# top_srcdir appropriately in the Makefiles. +AC_DEFUN([AC_LIBLTDL_CONVENIENCE], +[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl + case $enable_ltdl_convenience in + no) AC_MSG_ERROR([this package needs a convenience libltdl]) ;; + "") enable_ltdl_convenience=yes + ac_configure_args="$ac_configure_args --enable-ltdl-convenience" ;; + esac + LIBLTDL='${top_builddir}/'ifelse($#,1,[$1],['libltdl'])/libltdlc.la + LTDLINCL='-I${top_srcdir}/'ifelse($#,1,[$1],['libltdl']) + # For backwards non-gettext consistent compatibility... + INCLTDL="$LTDLINCL" +])# AC_LIBLTDL_CONVENIENCE + + +# AC_LIBLTDL_INSTALLABLE([DIRECTORY]) +# ----------------------------------- +# sets LIBLTDL to the link flags for the libltdl installable library and +# LTDLINCL to the include flags for the libltdl header and adds +# --enable-ltdl-install to the configure arguments. Note that LIBLTDL +# and LTDLINCL are not AC_SUBSTed, nor is AC_CONFIG_SUBDIRS called. If +# DIRECTORY is not provided and an installed libltdl is not found, it is +# assumed to be `libltdl'. LIBLTDL will be prefixed with '${top_builddir}/' +# and LTDLINCL will be prefixed with '${top_srcdir}/' (note the single +# quotes!). If your package is not flat and you're not using automake, +# define top_builddir and top_srcdir appropriately in the Makefiles. +# In the future, this macro may have to be called after AC_PROG_LIBTOOL. +AC_DEFUN([AC_LIBLTDL_INSTALLABLE], +[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl + AC_CHECK_LIB(ltdl, lt_dlinit, + [test x"$enable_ltdl_install" != xyes && enable_ltdl_install=no], + [if test x"$enable_ltdl_install" = xno; then + AC_MSG_WARN([libltdl not installed, but installation disabled]) + else + enable_ltdl_install=yes + fi + ]) + if test x"$enable_ltdl_install" = x"yes"; then + ac_configure_args="$ac_configure_args --enable-ltdl-install" + LIBLTDL='${top_builddir}/'ifelse($#,1,[$1],['libltdl'])/libltdl.la + LTDLINCL='-I${top_srcdir}/'ifelse($#,1,[$1],['libltdl']) + else + ac_configure_args="$ac_configure_args --enable-ltdl-install=no" + LIBLTDL="-lltdl" + LTDLINCL= + fi + # For backwards non-gettext consistent compatibility... + INCLTDL="$LTDLINCL" +])# AC_LIBLTDL_INSTALLABLE + + +# AC_LIBTOOL_CXX +# -------------- +# enable support for C++ libraries +AC_DEFUN([AC_LIBTOOL_CXX], +[AC_REQUIRE([_LT_AC_LANG_CXX]) +])# AC_LIBTOOL_CXX + + +# _LT_AC_LANG_CXX +# --------------- +AC_DEFUN([_LT_AC_LANG_CXX], +[AC_REQUIRE([AC_PROG_CXX]) +AC_REQUIRE([_LT_AC_PROG_CXXCPP]) +_LT_AC_SHELL_INIT([tagnames=${tagnames+${tagnames},}CXX]) +])# _LT_AC_LANG_CXX + +# _LT_AC_PROG_CXXCPP +# --------------- +AC_DEFUN([_LT_AC_PROG_CXXCPP], +[ +AC_REQUIRE([AC_PROG_CXX]) +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 +fi +])# _LT_AC_PROG_CXXCPP + +# AC_LIBTOOL_F77 +# -------------- +# enable support for Fortran 77 libraries +AC_DEFUN([AC_LIBTOOL_F77], +[AC_REQUIRE([_LT_AC_LANG_F77]) +])# AC_LIBTOOL_F77 + + +# _LT_AC_LANG_F77 +# --------------- +AC_DEFUN([_LT_AC_LANG_F77], +[AC_REQUIRE([AC_PROG_F77]) +_LT_AC_SHELL_INIT([tagnames=${tagnames+${tagnames},}F77]) +])# _LT_AC_LANG_F77 + + +# AC_LIBTOOL_GCJ +# -------------- +# enable support for GCJ libraries +AC_DEFUN([AC_LIBTOOL_GCJ], +[AC_REQUIRE([_LT_AC_LANG_GCJ]) +])# AC_LIBTOOL_GCJ + + +# _LT_AC_LANG_GCJ +# --------------- +AC_DEFUN([_LT_AC_LANG_GCJ], +[AC_PROVIDE_IFELSE([AC_PROG_GCJ],[], + [AC_PROVIDE_IFELSE([A][M_PROG_GCJ],[], + [AC_PROVIDE_IFELSE([LT_AC_PROG_GCJ],[], + [ifdef([AC_PROG_GCJ],[AC_REQUIRE([AC_PROG_GCJ])], + [ifdef([A][M_PROG_GCJ],[AC_REQUIRE([A][M_PROG_GCJ])], + [AC_REQUIRE([A][C_PROG_GCJ_OR_A][M_PROG_GCJ])])])])])]) +_LT_AC_SHELL_INIT([tagnames=${tagnames+${tagnames},}GCJ]) +])# _LT_AC_LANG_GCJ + + +# AC_LIBTOOL_RC +# -------------- +# enable support for Windows resource files +AC_DEFUN([AC_LIBTOOL_RC], +[AC_REQUIRE([LT_AC_PROG_RC]) +_LT_AC_SHELL_INIT([tagnames=${tagnames+${tagnames},}RC]) +])# AC_LIBTOOL_RC + + +# AC_LIBTOOL_LANG_C_CONFIG +# ------------------------ +# Ensure that the configuration vars for the C compiler are +# suitably defined. Those variables are subsequently used by +# AC_LIBTOOL_CONFIG to write the compiler configuration to `libtool'. +AC_DEFUN([AC_LIBTOOL_LANG_C_CONFIG], [_LT_AC_LANG_C_CONFIG]) +AC_DEFUN([_LT_AC_LANG_C_CONFIG], +[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_AC_TAGVAR(objext, $1)=$objext + +# Code to be used in simple compile tests +lt_simple_compile_test_code="int some_variable = 0;\n" + +# Code to be used in simple link tests +lt_simple_link_test_code='int main(){return(0);}\n' + +_LT_AC_SYS_COMPILER + +# +# Check for any special shared library compilation flags. +# +_LT_AC_TAGVAR(lt_prog_cc_shlib, $1)= +if test "$GCC" = no; then + case $host_os in + sco3.2v5*) + _LT_AC_TAGVAR(lt_prog_cc_shlib, $1)='-belf' + ;; + esac +fi +if test -n "$_LT_AC_TAGVAR(lt_prog_cc_shlib, $1)"; then + AC_MSG_WARN([`$CC' requires `$_LT_AC_TAGVAR(lt_prog_cc_shlib, $1)' to build shared libraries]) + if echo "$old_CC $old_CFLAGS " | grep "[[ ]]$_LT_AC_TAGVAR(lt_prog_cc_shlib, $1)[[ ]]" >/dev/null; then : + else + AC_MSG_WARN([add `$_LT_AC_TAGVAR(lt_prog_cc_shlib, $1)' to the CC or CFLAGS env variable and reconfigure]) + _LT_AC_TAGVAR(lt_cv_prog_cc_can_build_shared, $1)=no + fi +fi + + +# +# Check to make sure the static flag actually works. +# +AC_LIBTOOL_LINKER_OPTION([if $compiler static flag $_LT_AC_TAGVAR(lt_prog_compiler_static, $1) works], + _LT_AC_TAGVAR(lt_prog_compiler_static_works, $1), + $_LT_AC_TAGVAR(lt_prog_compiler_static, $1), + [], + [_LT_AC_TAGVAR(lt_prog_compiler_static, $1)=]) + + +## 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... +AC_LIBTOOL_PROG_COMPILER_NO_RTTI($1) +AC_LIBTOOL_PROG_COMPILER_PIC($1) +AC_LIBTOOL_PROG_CC_C_O($1) +AC_LIBTOOL_SYS_HARD_LINK_LOCKS($1) +AC_LIBTOOL_PROG_LD_SHLIBS($1) +AC_LIBTOOL_SYS_DYNAMIC_LINKER($1) +AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH($1) +AC_LIBTOOL_SYS_LIB_STRIP +AC_LIBTOOL_DLOPEN_SELF($1) + +# Report which librarie types wil 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 + ;; + +aix4* | aix5*) + 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]) + +AC_LIBTOOL_CONFIG($1) + +AC_LANG_POP +CC="$lt_save_CC" +])# AC_LIBTOOL_LANG_C_CONFIG + + +# AC_LIBTOOL_LANG_CXX_CONFIG +# -------------------------- +# Ensure that the configuration vars for the C compiler are +# suitably defined. Those variables are subsequently used by +# AC_LIBTOOL_CONFIG to write the compiler configuration to `libtool'. +AC_DEFUN([AC_LIBTOOL_LANG_CXX_CONFIG], [_LT_AC_LANG_CXX_CONFIG(CXX)]) +AC_DEFUN([_LT_AC_LANG_CXX_CONFIG], +[AC_LANG_PUSH(C++) +AC_REQUIRE([AC_PROG_CXX]) +AC_REQUIRE([_LT_AC_PROG_CXXCPP]) + +_LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no +_LT_AC_TAGVAR(allow_undefined_flag, $1)= +_LT_AC_TAGVAR(always_export_symbols, $1)=no +_LT_AC_TAGVAR(archive_expsym_cmds, $1)= +_LT_AC_TAGVAR(export_dynamic_flag_spec, $1)= +_LT_AC_TAGVAR(hardcode_direct, $1)=no +_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)= +_LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)= +_LT_AC_TAGVAR(hardcode_libdir_separator, $1)= +_LT_AC_TAGVAR(hardcode_minus_L, $1)=no +_LT_AC_TAGVAR(hardcode_automatic, $1)=no +_LT_AC_TAGVAR(module_cmds, $1)= +_LT_AC_TAGVAR(module_expsym_cmds, $1)= +_LT_AC_TAGVAR(link_all_deplibs, $1)=unknown +_LT_AC_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds +_LT_AC_TAGVAR(no_undefined_flag, $1)= +_LT_AC_TAGVAR(whole_archive_flag_spec, $1)= +_LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=no + +# Dependencies to place before and after the object being linked: +_LT_AC_TAGVAR(predep_objects, $1)= +_LT_AC_TAGVAR(postdep_objects, $1)= +_LT_AC_TAGVAR(predeps, $1)= +_LT_AC_TAGVAR(postdeps, $1)= +_LT_AC_TAGVAR(compiler_lib_search_path, $1)= + +# Source file extension for C++ test sources. +ac_ext=cc + +# Object file extension for compiled C++ test sources. +objext=o +_LT_AC_TAGVAR(objext, $1)=$objext + +# Code to be used in simple compile tests +lt_simple_compile_test_code="int some_variable = 0;\n" + +# Code to be used in simple link tests +lt_simple_link_test_code='int main(int, char *[]) { return(0); }\n' + +# ltmain only uses $CC for tagged configurations so make sure $CC is set. +_LT_AC_SYS_COMPILER + +# Allow CC to be a program name with arguments. +lt_save_CC=$CC +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 + 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 + unset lt_cv_path_LD +fi +test -z "${LDCXX+set}" || LD=$LDCXX +CC=${CXX-"c++"} +compiler=$CC +_LT_AC_TAGVAR(compiler, $1)=$CC +cc_basename=`$echo X"$compiler" | $Xsed -e 's%^.*/%%'` + +# We don't want -fno-exception wen compiling C++ code, so set the +# no_builtin_flag separately +if test "$GXX" = yes; then + _LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' +else + _LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)= +fi + +if test "$GXX" = yes; then + # Set up default GNU C++ configuration + + AC_PROG_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_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath ${wl}$libdir' + _LT_AC_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_AC_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' + else + _LT_AC_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_AC_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 "\-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_AC_TAGVAR(ld_shlibs, $1)=yes +case $host_os in + aix3*) + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + aix4* | aix5*) + 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]].*|aix5*) + 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_AC_TAGVAR(archive_cmds, $1)='' + _LT_AC_TAGVAR(hardcode_direct, $1)=yes + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=':' + _LT_AC_TAGVAR(link_all_deplibs, $1)=yes + + 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 + _LT_AC_TAGVAR(hardcode_direct, $1)=yes + else + # We have old collect2 + _LT_AC_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_AC_TAGVAR(hardcode_minus_L, $1)=yes + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)= + fi + esac + shared_flag='-shared' + 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 + + # It seems that -bexpall does not export symbols beginning with + # underscore (_), so it is better to generate a list of symbols to export. + _LT_AC_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_AC_TAGVAR(allow_undefined_flag, $1)='-berok' + # Determine the default libpath from the value encoded in an empty executable. + _LT_AC_SYS_LIBPATH_AIX + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" + + _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols $shared_flag" + else + if test "$host_cpu" = ia64; then + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib' + _LT_AC_TAGVAR(allow_undefined_flag, $1)="-z nodefs" + _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols" + else + # Determine the default libpath from the value encoded in an empty executable. + _LT_AC_SYS_LIBPATH_AIX + _LT_AC_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_AC_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok' + _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok' + # -bexpall does not export symbols beginning with underscore (_) + _LT_AC_TAGVAR(always_export_symbols, $1)=yes + # Exported symbols can be pulled into shared objects from archives + _LT_AC_TAGVAR(whole_archive_flag_spec, $1)=' ' + _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=yes + # This is similar to how AIX traditionally builds it's shared libraries. + _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags ${wl}-bE:$export_symbols ${wl}-bnoentry${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' + fi + fi + ;; + chorus*) + case $cc_basename in + *) + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + esac + ;; + + + cygwin* | mingw* | pw32*) + # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, + # as there is no search path for DLLs. + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported + _LT_AC_TAGVAR(always_export_symbols, $1)=no + _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=yes + + if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--image-base=0x10000000 ${wl}--out-implib,$lib' + # If the export-symbols file already is a .def file (1st line + # is EXPORTS), use it as is; otherwise, prepend... + _LT_AC_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}--image-base=0x10000000 ${wl}--out-implib,$lib' + else + _LT_AC_TAGVAR(ld_shlibs, $1)=no + fi + ;; + darwin* | rhapsody*) + case "$host_os" in + rhapsody* | darwin1.[[012]]) + _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-undefined ${wl}suppress' + ;; + *) # Darwin 1.3 on + if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then + _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' + else + case ${MACOSX_DEPLOYMENT_TARGET} in + 10.[[012]]) + _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' + ;; + 10.*) + _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-undefined ${wl}dynamic_lookup' + ;; + esac + fi + ;; + esac + _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no + _LT_AC_TAGVAR(hardcode_direct, $1)=no + _LT_AC_TAGVAR(hardcode_automatic, $1)=yes + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=unsupported + _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='' + _LT_AC_TAGVAR(link_all_deplibs, $1)=yes + + if test "$GXX" = yes ; then + lt_int_apple_cc_single_mod=no + output_verbose_link_cmd='echo' + if $CC -dumpspecs 2>&1 | $EGREP 'single_module' >/dev/null ; then + lt_int_apple_cc_single_mod=yes + fi + if test "X$lt_int_apple_cc_single_mod" = Xyes ; then + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring' + else + _LT_AC_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' + fi + _LT_AC_TAGVAR(module_cmds, $1)='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' + # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin ld's + if test "X$lt_int_apple_cc_single_mod" = Xyes ; then + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' + else + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "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~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' + fi + _LT_AC_TAGVAR(module_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' + else + case "$cc_basename" in + xlc*) + output_verbose_link_cmd='echo' + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -qmkshrobj ${wl}-single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $verstring' + _LT_AC_TAGVAR(module_cmds, $1)='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' + # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin ld's + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj ${wl}-single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' + _LT_AC_TAGVAR(module_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' + ;; + *) + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + esac + fi + ;; + + dgux*) + case $cc_basename in + ec++) + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + ghcx) + # Green Hills C++ Compiler + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + *) + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + esac + ;; + freebsd[12]*) + # C++ shared libraries reported to be fairly broken before switch to ELF + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + freebsd-elf*) + _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no + ;; + freebsd* | kfreebsd*-gnu) + # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF + # conventions + _LT_AC_TAGVAR(ld_shlibs, $1)=yes + ;; + gnu*) + ;; + hpux9*) + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: + _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' + _LT_AC_TAGVAR(hardcode_direct, $1)=yes + _LT_AC_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_AC_TAGVAR(ld_shlibs, $1)=no + ;; + aCC) + _LT_AC_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) | grep "[-]L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' + ;; + *) + if test "$GXX" = yes; then + _LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/$soname~$CC -shared -nostdlib -fPIC ${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_AC_TAGVAR(ld_shlibs, $1)=no + fi + ;; + esac + ;; + hpux10*|hpux11*) + if test $with_gnu_ld = no; then + case "$host_cpu" in + hppa*64*) + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' + _LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='+b $libdir' + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: + ;; + ia64*) + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + ;; + *) + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: + _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' + ;; + esac + fi + case "$host_cpu" in + hppa*64*) + _LT_AC_TAGVAR(hardcode_direct, $1)=no + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + ia64*) + _LT_AC_TAGVAR(hardcode_direct, $1)=no + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH, + # but as the default + # location of the library. + ;; + *) + _LT_AC_TAGVAR(hardcode_direct, $1)=yes + _LT_AC_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_AC_TAGVAR(ld_shlibs, $1)=no + ;; + aCC) + case "$host_cpu" in + hppa*64*|ia64*) + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -b +h $soname -o $lib $linker_flags $libobjs $deplibs' + ;; + *) + _LT_AC_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; echo $list' + ;; + *) + if test "$GXX" = yes; then + if test $with_gnu_ld = no; then + case "$host_cpu" in + ia64*|hppa*64*) + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -b +h $soname -o $lib $linker_flags $libobjs $deplibs' + ;; + *) + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${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_AC_TAGVAR(ld_shlibs, $1)=no + fi + ;; + esac + ;; + irix5* | irix6*) + case $cc_basename in + CC) + # SGI C++ + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${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_AC_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_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${objdir}/so_locations -o $lib' + else + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` -o $lib' + fi + fi + _LT_AC_TAGVAR(link_all_deplibs, $1)=yes + ;; + esac + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: + ;; + linux*) + 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_AC_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_AC_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; echo $list' + + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath,$libdir' + _LT_AC_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_AC_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs' + ;; + icpc) + # 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_AC_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_AC_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 + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + ;; + esac + _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' + _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' + _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive' + ;; + cxx) + # Compaq C++ + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_AC_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_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' + _LT_AC_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=`echo $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; echo $list' + ;; + esac + ;; + lynxos*) + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + m88k*) + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + mvs*) + case $cc_basename in + cxx) + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + *) + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + esac + ;; + netbsd*) + if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags' + wlarc= + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_AC_TAGVAR(hardcode_direct, $1)=yes + _LT_AC_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::"' + ;; + openbsd2*) + # C++ shared libraries are fairly broken + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + openbsd*) + _LT_AC_TAGVAR(hardcode_direct, $1)=yes + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' + _LT_AC_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_AC_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_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' + _LT_AC_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' + fi + output_verbose_link_cmd='echo' + ;; + osf3*) + 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_AC_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_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: + + # Archives containing C++ object files must be created using + # "CC -Bstatic", where "CC" is the KAI C++ compiler. + _LT_AC_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs' + + ;; + RCC) + # Rational C++ 2.4.1 + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + cxx) + _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $soname `test -n "$verstring" && echo ${wl}-set_version $verstring` -update_registry ${objdir}/so_locations -o $lib' + + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + _LT_AC_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=`echo $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; echo $list' + ;; + *) + if test "$GXX" = yes && test "$with_gnu_ld" = no; then + _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' + _LT_AC_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" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${objdir}/so_locations -o $lib' + + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + _LT_AC_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 "\-L"' + + else + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + fi + ;; + esac + ;; + 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_AC_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_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: + + # Archives containing C++ object files must be created using + # the KAI C++ compiler. + _LT_AC_TAGVAR(old_archive_cmds, $1)='$CC -o $oldlib $oldobjs' + ;; + RCC) + # Rational C++ 2.4.1 + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + cxx) + _LT_AC_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${objdir}/so_locations -o $lib' + _LT_AC_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 $objdir/so_locations -o $lib~ + $rm $lib.exp' + + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' + _LT_AC_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=`echo $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; echo $list' + ;; + *) + if test "$GXX" = yes && test "$with_gnu_ld" = no; then + _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${objdir}/so_locations -o $lib' + + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + _LT_AC_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 "\-L"' + + else + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + fi + ;; + esac + ;; + psos*) + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + sco*) + _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no + case $cc_basename in + CC) + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + *) + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + esac + ;; + sunos4*) + case $cc_basename in + CC) + # Sun C++ 4.x + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + lcc) + # Lucid + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + *) + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + esac + ;; + solaris*) + case $cc_basename in + CC) + # Sun C++ 4.2, 5.x and Centerline C++ + _LT_AC_TAGVAR(no_undefined_flag, $1)=' -zdefs' + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -nolib -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + _LT_AC_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} -nolib ${wl}-M ${wl}$lib.exp -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$rm $lib.exp' + + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + case $host_os in + solaris2.[0-5] | solaris2.[0-5].*) ;; + *) + # The C++ compiler is used as linker so we must use $wl + # flag to pass the commands to the underlying system + # linker. + # Supported since Solaris 2.6 (maybe 2.5.1?) + _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' + ;; + esac + _LT_AC_TAGVAR(link_all_deplibs, $1)=yes + + # 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 -G $CFLAGS -v conftest.$objext 2>&1 | grep "\-[[LR]]"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' + + # 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_AC_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs' + ;; + gcx) + # Green Hills C++ Compiler + _LT_AC_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_AC_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_AC_TAGVAR(no_undefined_flag, $1)=' ${wl}-z ${wl}defs' + if $CC --version | grep -v '^2\.7' > /dev/null; then + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ + $CC -shared -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 \"\-L\"" + else + # g++ 2.7 appears to require `-G' NOT `-shared' on this + # platform. + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -G -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' + _LT_AC_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 \"\-L\"" + fi + + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $wl$libdir' + fi + ;; + esac + ;; + sysv5OpenUNIX8* | sysv5UnixWare7* | sysv5uw[[78]]* | unixware7*) + _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no + ;; + tandem*) + case $cc_basename in + NCC) + # NonStop-UX NCC 3.20 + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + *) + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + esac + ;; + vxworks*) + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + *) + # FIXME: insert proper C++ library support + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; +esac +AC_MSG_RESULT([$_LT_AC_TAGVAR(ld_shlibs, $1)]) +test "$_LT_AC_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no + +_LT_AC_TAGVAR(GCC, $1)="$GXX" +_LT_AC_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... +AC_LIBTOOL_POSTDEP_PREDEP($1) +AC_LIBTOOL_PROG_COMPILER_PIC($1) +AC_LIBTOOL_PROG_CC_C_O($1) +AC_LIBTOOL_SYS_HARD_LINK_LOCKS($1) +AC_LIBTOOL_PROG_LD_SHLIBS($1) +AC_LIBTOOL_SYS_DYNAMIC_LINKER($1) +AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH($1) +AC_LIBTOOL_SYS_LIB_STRIP +AC_LIBTOOL_DLOPEN_SELF($1) + +AC_LIBTOOL_CONFIG($1) + +AC_LANG_POP +CC=$lt_save_CC +LDCXX=$LD +LD=$lt_save_LD +GCC=$lt_save_GCC +with_gnu_ldcxx=$with_gnu_ld +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 +])# AC_LIBTOOL_LANG_CXX_CONFIG + +# AC_LIBTOOL_POSTDEP_PREDEP([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. +AC_DEFUN([AC_LIBTOOL_POSTDEP_PREDEP],[ +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... +ifelse([$1],[],[cat > conftest.$ac_ext < conftest.$ac_ext < conftest.$ac_ext < conftest.$ac_ext <> "$cfgfile" +ifelse([$1], [], +[#! $SHELL + +# `$echo "$cfgfile" | sed 's%^.*/%%'` - Provide generalized library-building support services. +# Generated automatically by $PROGRAM (GNU $PACKAGE $VERSION$TIMESTAMP) +# NOTE: Changes made to this file will be lost: look at ltmain.sh. +# +# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001 +# Free Software Foundation, Inc. +# +# This file is part of GNU Libtool: +# Originally by Gordon Matzigkeit , 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 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. +# +# 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. + +# A sed program that does not truncate output. +SED=$lt_SED + +# Sed that helps us avoid accidentally triggering echo(1) options like -n. +Xsed="$SED -e s/^X//" + +# 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 + +# The names of the tagged configurations supported by this script. +available_tags= + +# ### BEGIN LIBTOOL CONFIG], +[# ### BEGIN LIBTOOL TAG CONFIG: $tagname]) + +# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: + +# Shell to use when invoking shell scripts. +SHELL=$lt_SHELL + +# Whether or not to build shared libraries. +build_libtool_libs=$enable_shared + +# Whether or not to build static libraries. +build_old_libs=$enable_static + +# Whether or not to add -lc for building shared libraries. +build_libtool_need_lc=$_LT_AC_TAGVAR(archive_cmds_need_lc, $1) + +# Whether or not to disallow shared libs when runtime libs are static +allow_libtool_libs_with_static_runtimes=$_LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1) + +# Whether or not to optimize for fast installation. +fast_install=$enable_fast_install + +# The host system. +host_alias=$host_alias +host=$host + +# An echo program that does not interpret backslashes. +echo=$lt_echo + +# The archiver. +AR=$lt_AR +AR_FLAGS=$lt_AR_FLAGS + +# A C compiler. +LTCC=$lt_LTCC + +# A language-specific compiler. +CC=$lt_[]_LT_AC_TAGVAR(compiler, $1) + +# Is the compiler the GNU C compiler? +with_gcc=$_LT_AC_TAGVAR(GCC, $1) + +# An ERE matcher. +EGREP=$lt_EGREP + +# The linker used to build libraries. +LD=$lt_[]_LT_AC_TAGVAR(LD, $1) + +# Whether we need hard or soft links. +LN_S=$lt_LN_S + +# A BSD-compatible nm program. +NM=$lt_NM + +# A symbol stripping program +STRIP=$lt_STRIP + +# Used to examine libraries when file_magic_cmd begins "file" +MAGIC_CMD=$MAGIC_CMD + +# Used on cygwin: DLL creation program. +DLLTOOL="$DLLTOOL" + +# Used on cygwin: object dumper. +OBJDUMP="$OBJDUMP" + +# Used on cygwin: assembler. +AS="$AS" + +# The name of the directory that contains temporary libtool files. +objdir=$objdir + +# How to create reloadable object files. +reload_flag=$lt_reload_flag +reload_cmds=$lt_reload_cmds + +# How to pass a linker flag through the compiler. +wl=$lt_[]_LT_AC_TAGVAR(lt_prog_compiler_wl, $1) + +# Object file suffix (normally "o"). +objext="$ac_objext" + +# Old archive suffix (normally "a"). +libext="$libext" + +# Shared library suffix (normally ".so"). +shrext_cmds='$shrext_cmds' + +# Executable file suffix (normally ""). +exeext="$exeext" + +# Additional compiler flags for building library objects. +pic_flag=$lt_[]_LT_AC_TAGVAR(lt_prog_compiler_pic, $1) +pic_mode=$pic_mode + +# What is the maximum length of a command? +max_cmd_len=$lt_cv_sys_max_cmd_len + +# Does compiler simultaneously support -c and -o options? +compiler_c_o=$lt_[]_LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1) + +# Must we lock files when doing compilation ? +need_locks=$lt_need_locks + +# Do we need the lib prefix for modules? +need_lib_prefix=$need_lib_prefix + +# Do we need a version for libraries? +need_version=$need_version + +# Whether dlopen is supported. +dlopen_support=$enable_dlopen + +# Whether dlopen of programs is supported. +dlopen_self=$enable_dlopen_self + +# Whether dlopen of statically linked programs is supported. +dlopen_self_static=$enable_dlopen_self_static + +# Compiler flag to prevent dynamic linking. +link_static_flag=$lt_[]_LT_AC_TAGVAR(lt_prog_compiler_static, $1) + +# Compiler flag to turn off builtin functions. +no_builtin_flag=$lt_[]_LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1) + +# Compiler flag to allow reflexive dlopens. +export_dynamic_flag_spec=$lt_[]_LT_AC_TAGVAR(export_dynamic_flag_spec, $1) + +# Compiler flag to generate shared objects directly from archives. +whole_archive_flag_spec=$lt_[]_LT_AC_TAGVAR(whole_archive_flag_spec, $1) + +# Compiler flag to generate thread-safe objects. +thread_safe_flag_spec=$lt_[]_LT_AC_TAGVAR(thread_safe_flag_spec, $1) + +# Library versioning type. +version_type=$version_type + +# Format of library name prefix. +libname_spec=$lt_libname_spec + +# 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. +library_names_spec=$lt_library_names_spec + +# The coded name of the library, if different from the real name. +soname_spec=$lt_soname_spec + +# Commands used to build and install an old-style archive. +RANLIB=$lt_RANLIB +old_archive_cmds=$lt_[]_LT_AC_TAGVAR(old_archive_cmds, $1) +old_postinstall_cmds=$lt_old_postinstall_cmds +old_postuninstall_cmds=$lt_old_postuninstall_cmds + +# Create an old-style archive from a shared archive. +old_archive_from_new_cmds=$lt_[]_LT_AC_TAGVAR(old_archive_from_new_cmds, $1) + +# Create a temporary old-style archive to link instead of a shared archive. +old_archive_from_expsyms_cmds=$lt_[]_LT_AC_TAGVAR(old_archive_from_expsyms_cmds, $1) + +# Commands used to build and install a shared archive. +archive_cmds=$lt_[]_LT_AC_TAGVAR(archive_cmds, $1) +archive_expsym_cmds=$lt_[]_LT_AC_TAGVAR(archive_expsym_cmds, $1) +postinstall_cmds=$lt_postinstall_cmds +postuninstall_cmds=$lt_postuninstall_cmds + +# Commands used to build a loadable module (assumed same as above if empty) +module_cmds=$lt_[]_LT_AC_TAGVAR(module_cmds, $1) +module_expsym_cmds=$lt_[]_LT_AC_TAGVAR(module_expsym_cmds, $1) + +# Commands to strip libraries. +old_striplib=$lt_old_striplib +striplib=$lt_striplib + +# Dependencies to place before the objects being linked to create a +# shared library. +predep_objects=$lt_[]_LT_AC_TAGVAR(predep_objects, $1) + +# Dependencies to place after the objects being linked to create a +# shared library. +postdep_objects=$lt_[]_LT_AC_TAGVAR(postdep_objects, $1) + +# Dependencies to place before the objects being linked to create a +# shared library. +predeps=$lt_[]_LT_AC_TAGVAR(predeps, $1) + +# Dependencies to place after the objects being linked to create a +# shared library. +postdeps=$lt_[]_LT_AC_TAGVAR(postdeps, $1) + +# The library search path used internally by the compiler when linking +# a shared library. +compiler_lib_search_path=$lt_[]_LT_AC_TAGVAR(compiler_lib_search_path, $1) + +# Method to check whether dependent libraries are shared objects. +deplibs_check_method=$lt_deplibs_check_method + +# Command to use when deplibs_check_method == file_magic. +file_magic_cmd=$lt_file_magic_cmd + +# Flag that allows shared libraries with undefined symbols to be built. +allow_undefined_flag=$lt_[]_LT_AC_TAGVAR(allow_undefined_flag, $1) + +# Flag that forces no undefined symbols. +no_undefined_flag=$lt_[]_LT_AC_TAGVAR(no_undefined_flag, $1) + +# Commands used to finish a libtool library installation in a directory. +finish_cmds=$lt_finish_cmds + +# Same as above, but a single script fragment to be evaled but not shown. +finish_eval=$lt_finish_eval + +# Take the output of nm and produce a listing of raw symbols and C names. +global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe + +# Transform the output of nm in a proper C declaration +global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl + +# Transform the output of nm in a C name address pair +global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address + +# This is the shared library runtime path variable. +runpath_var=$runpath_var + +# This is the shared library path variable. +shlibpath_var=$shlibpath_var + +# Is shlibpath searched before the hard-coded library search path? +shlibpath_overrides_runpath=$shlibpath_overrides_runpath + +# How to hardcode a shared library path into an executable. +hardcode_action=$_LT_AC_TAGVAR(hardcode_action, $1) + +# Whether we should hardcode library paths into libraries. +hardcode_into_libs=$hardcode_into_libs + +# Flag to hardcode \$libdir into a binary during linking. +# This must work even if \$libdir does not exist. +hardcode_libdir_flag_spec=$lt_[]_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1) + +# If ld is used when linking, flag to hardcode \$libdir into +# a binary during linking. This must work even if \$libdir does +# not exist. +hardcode_libdir_flag_spec_ld=$lt_[]_LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1) + +# Whether we need a single -rpath flag with a separated argument. +hardcode_libdir_separator=$lt_[]_LT_AC_TAGVAR(hardcode_libdir_separator, $1) + +# Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the +# resulting binary. +hardcode_direct=$_LT_AC_TAGVAR(hardcode_direct, $1) + +# Set to yes if using the -LDIR flag during linking hardcodes DIR into the +# resulting binary. +hardcode_minus_L=$_LT_AC_TAGVAR(hardcode_minus_L, $1) + +# Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into +# the resulting binary. +hardcode_shlibpath_var=$_LT_AC_TAGVAR(hardcode_shlibpath_var, $1) + +# Set to yes if building a shared library automatically hardcodes DIR into the library +# and all subsequent libraries and executables linked against it. +hardcode_automatic=$_LT_AC_TAGVAR(hardcode_automatic, $1) + +# Variables whose values should be saved in libtool wrapper scripts and +# restored at relink time. +variables_saved_for_relink="$variables_saved_for_relink" + +# Whether libtool must link a program against all its dependency libraries. +link_all_deplibs=$_LT_AC_TAGVAR(link_all_deplibs, $1) + +# Compile-time system search path for libraries +sys_lib_search_path_spec=$lt_sys_lib_search_path_spec + +# Run-time system search path for libraries +sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec + +# Fix the shell variable \$srcfile for the compiler. +fix_srcfile_path="$_LT_AC_TAGVAR(fix_srcfile_path, $1)" + +# Set to yes if exported symbols are required. +always_export_symbols=$_LT_AC_TAGVAR(always_export_symbols, $1) + +# The commands to list exported symbols. +export_symbols_cmds=$lt_[]_LT_AC_TAGVAR(export_symbols_cmds, $1) + +# The commands to extract the exported symbol list from a shared archive. +extract_expsyms_cmds=$lt_extract_expsyms_cmds + +# Symbols that should not be listed in the preloaded symbols. +exclude_expsyms=$lt_[]_LT_AC_TAGVAR(exclude_expsyms, $1) + +# Symbols that must always be exported. +include_expsyms=$lt_[]_LT_AC_TAGVAR(include_expsyms, $1) + +ifelse([$1],[], +[# ### END LIBTOOL CONFIG], +[# ### END LIBTOOL TAG CONFIG: $tagname]) + +__EOF__ + +ifelse([$1],[], [ + case $host_os in + aix3*) + cat <<\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 +EOF + ;; + esac + + # 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) + + mv -f "$cfgfile" "$ofile" || \ + (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") + chmod +x "$ofile" +]) +else + # If there is no Makefile yet, we rely on a make rule to execute + # `config.status --recheck' to rerun these tests and create the + # libtool script then. + ltmain_in=`echo $ltmain | sed -e 's/\.sh$/.in/'` + if test -f "$ltmain_in"; then + test -f Makefile && make "$ltmain" + fi +fi +])# AC_LIBTOOL_CONFIG + + +# AC_LIBTOOL_PROG_COMPILER_NO_RTTI([TAGNAME]) +# ------------------------------------------- +AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_NO_RTTI], +[AC_REQUIRE([_LT_AC_SYS_COMPILER])dnl + +_LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)= + +if test "$GCC" = yes; then + _LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' + + AC_LIBTOOL_COMPILER_OPTION([if $compiler supports -fno-rtti -fno-exceptions], + lt_cv_prog_compiler_rtti_exceptions, + [-fno-rtti -fno-exceptions], [], + [_LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)="$_LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1) -fno-rtti -fno-exceptions"]) +fi +])# AC_LIBTOOL_PROG_COMPILER_NO_RTTI + + +# AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE +# --------------------------------- +AC_DEFUN([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE], +[AC_REQUIRE([AC_CANONICAL_HOST]) +AC_REQUIRE([AC_PROG_NM]) +AC_REQUIRE([AC_OBJEXT]) +# 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]]*\)' + +# Transform the above into a raw symbol and a C symbol. +symxfrm='\1 \2\3 \3' + +# Transform an extracted symbol line into a proper C declaration +lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^. .* \(.*\)$/extern int \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\\\", (lt_ptr) 0},/p' -e 's/^$symcode \([[^ ]]*\) \([[^ ]]*\)$/ {\"\2\", (lt_ptr) \&\2},/p'" + +# Define system-specific variables. +case $host_os in +aix*) + symcode='[[BCDT]]' + ;; +cygwin* | mingw* | pw32*) + symcode='[[ABCDGISTW]]' + ;; +hpux*) # Its linker distinguishes data from code symbols + if test "$host_cpu" = ia64; then + symcode='[[ABCDEGRST]]' + fi + lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" + lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\) $/ {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"\2\", (lt_ptr) \&\2},/p'" + ;; +linux*) + if test "$host_cpu" = ia64; then + symcode='[[ABCDGIRSTW]]' + lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" + lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\) $/ {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"\2\", (lt_ptr) \&\2},/p'" + fi + ;; +irix* | nonstopux*) + symcode='[[BCDEGRST]]' + ;; +osf*) + symcode='[[BCDEGQRST]]' + ;; +solaris* | sysv5*) + symcode='[[BDRT]]' + ;; +sysv4) + symcode='[[DFNSTU]]' + ;; +esac + +# 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 + +# If we're using GNU nm, then use its standard symbol codes. +case `$NM -V 2>&1` in +*GNU* | *'with BFD'*) + symcode='[[ABCDGIRSTW]]' ;; +esac + +# Try without a prefix undercore, then with it. +for ac_symprfx in "" "_"; do + + # Write the raw and C identifiers. + lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[[ ]]\($symcode$symcode*\)[[ ]][[ ]]*\($ac_symprfx\)$sympat$opt_cr$/$symxfrm/p'" + + # Check to see that the pipe works correctly. + pipe_works=no + + rm -f conftest* + cat > conftest.$ac_ext < $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 < conftest.$ac_ext +#ifdef __cplusplus +extern "C" { +#endif + +EOF + # Now generate the symbol file. + eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | grep -v main >> conftest.$ac_ext' + + cat <> conftest.$ac_ext +#if defined (__STDC__) && __STDC__ +# define lt_ptr_t void * +#else +# define lt_ptr_t char * +# define const +#endif + +/* The mapping between symbol names and symbols. */ +const struct { + const char *name; + lt_ptr_t address; +} +lt_preloaded_symbols[[]] = +{ +EOF + $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/ {\"\2\", (lt_ptr_t) \&\2},/" < "$nlist" | grep -v main >> conftest.$ac_ext + cat <<\EOF >> conftest.$ac_ext + {0, (lt_ptr_t) 0} +}; + +#ifdef __cplusplus +} +#endif +EOF + # Now try linking the two files. + mv conftest.$ac_objext conftstm.$ac_objext + lt_save_LIBS="$LIBS" + lt_save_CFLAGS="$CFLAGS" + LIBS="conftstm.$ac_objext" + CFLAGS="$CFLAGS$_LT_AC_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_save_LIBS" + CFLAGS="$lt_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 -f 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 +]) # AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE + + +# AC_LIBTOOL_PROG_COMPILER_PIC([TAGNAME]) +# --------------------------------------- +AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_PIC], +[_LT_AC_TAGVAR(lt_prog_compiler_wl, $1)= +_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)= +_LT_AC_TAGVAR(lt_prog_compiler_static, $1)= + +AC_MSG_CHECKING([for $compiler option to produce PIC]) + ifelse([$1],[CXX],[ + # C++ specific cases for pic, static, wl, etc. + if test "$GXX" = yes; then + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_AC_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_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + fi + ;; + amigaos*) + # 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_AC_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4' + ;; + beos* | cygwin* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) + # PIC is the default for these OSes. + ;; + mingw* | os2* | pw32*) + # 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). + _LT_AC_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_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common' + ;; + *djgpp*) + # DJGPP does not support shared libraries at all + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)= + ;; + sysv4*MP*) + if test -d /usr/nec; then + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic + fi + ;; + hpux*) + # 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*) + ;; + *) + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + esac + ;; + *) + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + esac + else + case $host_os in + aix4* | aix5*) + # All AIX code is PIC. + if test "$host_cpu" = ia64; then + # AIX 5 now supports IA64 processor + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + else + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp' + fi + ;; + chorus*) + case $cc_basename in + cxch68) + # Green Hills C++ Compiler + # _LT_AC_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 + ;; + darwin*) + # PIC is the default on this platform + # Common symbols not allowed in MH_DYLIB files + case "$cc_basename" in + xlc*) + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-qnocommon' + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + ;; + esac + ;; + dgux*) + case $cc_basename in + ec++) + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + ;; + ghcx) + # Green Hills C++ Compiler + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic' + ;; + *) + ;; + esac + ;; + freebsd* | kfreebsd*-gnu) + # FreeBSD uses GNU C++ + ;; + hpux9* | hpux10* | hpux11*) + case $cc_basename in + CC) + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)="${ac_cv_prog_cc_wl}-a ${ac_cv_prog_cc_wl}archive" + if test "$host_cpu" != ia64; then + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='+Z' + fi + ;; + aCC) + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)="${ac_cv_prog_cc_wl}-a ${ac_cv_prog_cc_wl}archive" + case "$host_cpu" in + hppa*64*|ia64*) + # +Z the default + ;; + *) + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='+Z' + ;; + esac + ;; + *) + ;; + esac + ;; + irix5* | irix6* | nonstopux*) + case $cc_basename in + CC) + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + # CC pic flag -KPIC is the default. + ;; + *) + ;; + esac + ;; + linux*) + case $cc_basename in + KCC) + # KAI C++ Compiler + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,' + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + icpc) + # Intel C++ + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-static' + ;; + cxx) + # Compaq C++ + # Make sure the PIC flag is empty. It appears that all Alpha + # Linux and Compaq Tru64 Unix objects are PIC. + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)= + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + ;; + *) + ;; + esac + ;; + lynxos*) + ;; + m88k*) + ;; + mvs*) + case $cc_basename in + cxx) + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-W c,exportall' + ;; + *) + ;; + esac + ;; + netbsd*) + ;; + osf3* | osf4* | osf5*) + case $cc_basename in + KCC) + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,' + ;; + RCC) + # Rational C++ 2.4.1 + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic' + ;; + cxx) + # Digital/Compaq C++ + _LT_AC_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_AC_TAGVAR(lt_prog_compiler_pic, $1)= + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + ;; + *) + ;; + esac + ;; + psos*) + ;; + sco*) + case $cc_basename in + CC) + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + *) + ;; + esac + ;; + solaris*) + case $cc_basename in + CC) + # Sun C++ 4.2, 5.x and Centerline C++ + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' + ;; + gcx) + # Green Hills C++ Compiler + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' + ;; + *) + ;; + esac + ;; + sunos4*) + case $cc_basename in + CC) + # Sun C++ 4.x + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic' + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + lcc) + # Lucid + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic' + ;; + *) + ;; + esac + ;; + tandem*) + case $cc_basename in + NCC) + # NonStop-UX NCC 3.20 + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + ;; + *) + ;; + esac + ;; + unixware*) + ;; + vxworks*) + ;; + *) + _LT_AC_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no + ;; + esac + fi +], +[ + if test "$GCC" = yes; then + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_AC_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_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + fi + ;; + + amigaos*) + # 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_AC_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4' + ;; + + beos* | cygwin* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) + # PIC is the default for these OSes. + ;; + + mingw* | pw32* | os2*) + # 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). + _LT_AC_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_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common' + ;; + + msdosdjgpp*) + # Just because we use GCC doesn't mean we suddenly get shared libraries + # on systems that don't support them. + _LT_AC_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no + enable_shared=no + ;; + + sysv4*MP*) + if test -d /usr/nec; then + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic + fi + ;; + + hpux*) + # 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_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + esac + ;; + + *) + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + esac + else + # PORTME Check for flag to pass linker flags through the system compiler. + case $host_os in + aix*) + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + if test "$host_cpu" = ia64; then + # AIX 5 now supports IA64 processor + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + else + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp' + fi + ;; + darwin*) + # PIC is the default on this platform + # Common symbols not allowed in MH_DYLIB files + case "$cc_basename" in + xlc*) + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-qnocommon' + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + ;; + esac + ;; + + mingw* | pw32* | os2*) + # 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). + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT' + ;; + + hpux9* | hpux10* | hpux11*) + _LT_AC_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_AC_TAGVAR(lt_prog_compiler_pic, $1)='+Z' + ;; + esac + # Is there a better lt_prog_compiler_static that works with the bundled CC? + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive' + ;; + + irix5* | irix6* | nonstopux*) + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + # PIC (with -KPIC) is the default. + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + ;; + + newsos6) + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + + linux*) + case $CC in + icc* | ecc*) + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-static' + ;; + ccc*) + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + # All Alpha code is PIC. + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + ;; + esac + ;; + + osf3* | osf4* | osf5*) + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + # All OSF/1 code is PIC. + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + ;; + + sco3.2v5*) + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-Kpic' + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-dn' + ;; + + solaris*) + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + + sunos4*) + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + + sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) + _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + + sysv4*MP*) + if test -d /usr/nec ;then + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-Kconform_pic' + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + fi + ;; + + uts4*) + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic' + _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + + *) + _LT_AC_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no + ;; + esac + fi +]) +AC_MSG_RESULT([$_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)]) + +# +# Check to make sure the PIC flag actually works. +# +if test -n "$_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)"; then + AC_LIBTOOL_COMPILER_OPTION([if $compiler PIC flag $_LT_AC_TAGVAR(lt_prog_compiler_pic, $1) works], + _LT_AC_TAGVAR(lt_prog_compiler_pic_works, $1), + [$_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)ifelse([$1],[],[ -DPIC],[ifelse([$1],[CXX],[ -DPIC],[])])], [], + [case $_LT_AC_TAGVAR(lt_prog_compiler_pic, $1) in + "" | " "*) ;; + *) _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=" $_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)" ;; + esac], + [_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)= + _LT_AC_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no]) +fi +case "$host_os" in + # For platforms which do not support PIC, -DPIC is meaningless: + *djgpp*) + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)= + ;; + *) + _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)="$_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)ifelse([$1],[],[ -DPIC],[ifelse([$1],[CXX],[ -DPIC],[])])" + ;; +esac +]) + + +# AC_LIBTOOL_PROG_LD_SHLIBS([TAGNAME]) +# ------------------------------------ +# See if the linker supports building shared libraries. +AC_DEFUN([AC_LIBTOOL_PROG_LD_SHLIBS], +[AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries]) +ifelse([$1],[CXX],[ + _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' + case $host_os in + aix4* | aix5*) + # 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 + if $NM -V 2>&1 | grep 'GNU' > /dev/null; then + _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\[$]2 == "T") || (\[$]2 == "D") || (\[$]2 == "B")) && ([substr](\[$]3,1,1) != ".")) { print \[$]3 } }'\'' | sort -u > $export_symbols' + else + _LT_AC_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_AC_TAGVAR(export_symbols_cmds, $1)="$ltdll_cmds" + ;; + cygwin* | mingw*) + _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGS]] /s/.* \([[^ ]]*\)/\1 DATA/'\'' | $SED -e '\''/^[[AITW]] /s/.* //'\'' | sort | uniq > $export_symbols' + ;; + *) + _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' + ;; + esac +],[ + runpath_var= + _LT_AC_TAGVAR(allow_undefined_flag, $1)= + _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=no + _LT_AC_TAGVAR(archive_cmds, $1)= + _LT_AC_TAGVAR(archive_expsym_cmds, $1)= + _LT_AC_TAGVAR(old_archive_From_new_cmds, $1)= + _LT_AC_TAGVAR(old_archive_from_expsyms_cmds, $1)= + _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)= + _LT_AC_TAGVAR(whole_archive_flag_spec, $1)= + _LT_AC_TAGVAR(thread_safe_flag_spec, $1)= + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)= + _LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)= + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)= + _LT_AC_TAGVAR(hardcode_direct, $1)=no + _LT_AC_TAGVAR(hardcode_minus_L, $1)=no + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=unsupported + _LT_AC_TAGVAR(link_all_deplibs, $1)=unknown + _LT_AC_TAGVAR(hardcode_automatic, $1)=no + _LT_AC_TAGVAR(module_cmds, $1)= + _LT_AC_TAGVAR(module_expsym_cmds, $1)= + _LT_AC_TAGVAR(always_export_symbols, $1)=no + _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' + # include_expsyms should be a list of space-separated symbols to be *always* + # included in the symbol list + _LT_AC_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_AC_TAGVAR(exclude_expsyms, $1)="_GLOBAL_OFFSET_TABLE_" + # 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. + extract_expsyms_cmds= + + case $host_os in + cygwin* | mingw* | pw32*) + # 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 + ;; + openbsd*) + with_gnu_ld=no + ;; + esac + + _LT_AC_TAGVAR(ld_shlibs, $1)=yes + if test "$with_gnu_ld" = yes; then + # If archive_cmds runs LD, not CC, wlarc should be empty + wlarc='${wl}' + + # See if GNU ld supports shared libraries. + case $host_os in + aix3* | aix4* | aix5*) + # On AIX/PPC, the GNU linker is very broken + if test "$host_cpu" != ia64; then + _LT_AC_TAGVAR(ld_shlibs, $1)=no + cat <&2 + +*** Warning: the GNU linker, at least up to release 2.9.1, 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 modify your PATH +*** so that a non-GNU linker is found, and then restart. + +EOF + fi + ;; + + amigaos*) + _LT_AC_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_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes + + # Samuel A. Falvo II reports + # that the semantics of dynamic libraries on AmigaOS, at least up + # to version 4, is to share data among multiple programs linked + # with the same dynamic library. Since this doesn't match the + # behavior of shared libraries on other platforms, we can't use + # them. + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + + beos*) + if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then + _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported + # Joseph Beckenbach says some releases of gcc + # support --undefined. This deserves some investigation. FIXME + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + else + _LT_AC_TAGVAR(ld_shlibs, $1)=no + fi + ;; + + cygwin* | mingw* | pw32*) + # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, + # as there is no search path for DLLs. + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported + _LT_AC_TAGVAR(always_export_symbols, $1)=no + _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=yes + _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGS]] /s/.* \([[^ ]]*\)/\1 DATA/'\'' | $SED -e '\''/^[[AITW]] /s/.* //'\'' | sort | uniq > $export_symbols' + + if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--image-base=0x10000000 ${wl}--out-implib,$lib' + # If the export-symbols file already is a .def file (1st line + # is EXPORTS), use it as is; otherwise, prepend... + _LT_AC_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}--image-base=0x10000000 ${wl}--out-implib,$lib' + else + ld_shlibs=no + fi + ;; + + netbsd*) + if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' + wlarc= + else + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + fi + ;; + + solaris* | sysv5*) + if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then + _LT_AC_TAGVAR(ld_shlibs, $1)=no + cat <&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. + +EOF + elif $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_AC_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_AC_TAGVAR(ld_shlibs, $1)=no + fi + ;; + + sunos4*) + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' + wlarc= + _LT_AC_TAGVAR(hardcode_direct, $1)=yes + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + linux*) + if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then + tmp_archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_AC_TAGVAR(archive_cmds, $1)="$tmp_archive_cmds" + supports_anon_versioning=no + case `$LD -v 2>/dev/null` in + *\ [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 + if test $supports_anon_versioning = yes; then + _LT_AC_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 -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' + else + _LT_AC_TAGVAR(archive_expsym_cmds, $1)="$tmp_archive_cmds" + fi + else + _LT_AC_TAGVAR(ld_shlibs, $1)=no + fi + ;; + + *) + if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_AC_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_AC_TAGVAR(ld_shlibs, $1)=no + fi + ;; + esac + + if test "$_LT_AC_TAGVAR(ld_shlibs, $1)" = yes; then + runpath_var=LD_RUN_PATH + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath ${wl}$libdir' + _LT_AC_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_AC_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' + else + _LT_AC_TAGVAR(whole_archive_flag_spec, $1)= + fi + fi + else + # PORTME fill in a description of your system's linker (not GNU ld) + case $host_os in + aix3*) + _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported + _LT_AC_TAGVAR(always_export_symbols, $1)=yes + _LT_AC_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_AC_TAGVAR(hardcode_minus_L, $1)=yes + if test "$GCC" = yes && test -z "$link_static_flag"; then + # Neither direct hardcoding nor static linking is supported with a + # broken collect2. + _LT_AC_TAGVAR(hardcode_direct, $1)=unsupported + fi + ;; + + aix4* | aix5*) + 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 + if $NM -V 2>&1 | grep 'GNU' > /dev/null; then + _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\[$]2 == "T") || (\[$]2 == "D") || (\[$]2 == "B")) && ([substr](\[$]3,1,1) != ".")) { print \[$]3 } }'\'' | sort -u > $export_symbols' + else + _LT_AC_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]].*|aix5*) + 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_AC_TAGVAR(archive_cmds, $1)='' + _LT_AC_TAGVAR(hardcode_direct, $1)=yes + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=':' + _LT_AC_TAGVAR(link_all_deplibs, $1)=yes + + 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 + _LT_AC_TAGVAR(hardcode_direct, $1)=yes + else + # We have old collect2 + _LT_AC_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_AC_TAGVAR(hardcode_minus_L, $1)=yes + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)= + fi + esac + shared_flag='-shared' + 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 + + # It seems that -bexpall does not export symbols beginning with + # underscore (_), so it is better to generate a list of symbols to export. + _LT_AC_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_AC_TAGVAR(allow_undefined_flag, $1)='-berok' + # Determine the default libpath from the value encoded in an empty executable. + _LT_AC_SYS_LIBPATH_AIX + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" + _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols $shared_flag" + else + if test "$host_cpu" = ia64; then + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib' + _LT_AC_TAGVAR(allow_undefined_flag, $1)="-z nodefs" + _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols" + else + # Determine the default libpath from the value encoded in an empty executable. + _LT_AC_SYS_LIBPATH_AIX + _LT_AC_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_AC_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok' + _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok' + # -bexpall does not export symbols beginning with underscore (_) + _LT_AC_TAGVAR(always_export_symbols, $1)=yes + # Exported symbols can be pulled into shared objects from archives + _LT_AC_TAGVAR(whole_archive_flag_spec, $1)=' ' + _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=yes + # This is similar to how AIX traditionally builds it's shared libraries. + _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags ${wl}-bE:$export_symbols ${wl}-bnoentry${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' + fi + fi + ;; + + amigaos*) + _LT_AC_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_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes + # see comment about different semantics on the GNU ld section + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + + bsdi[[45]]*) + _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)=-rdynamic + ;; + + cygwin* | mingw* | pw32*) + # 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. + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' + _LT_AC_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_AC_TAGVAR(archive_cmds, $1)='$CC -o $lib $libobjs $compiler_flags `echo "$deplibs" | $SED -e '\''s/ -lc$//'\''` -link -dll~linknames=' + # The linker will automatically build a .lib file if we build a DLL. + _LT_AC_TAGVAR(old_archive_From_new_cmds, $1)='true' + # FIXME: Should let the user specify the lib program. + _LT_AC_TAGVAR(old_archive_cmds, $1)='lib /OUT:$oldlib$oldobjs$old_deplibs' + fix_srcfile_path='`cygpath -w "$srcfile"`' + _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=yes + ;; + + darwin* | rhapsody*) + case "$host_os" in + rhapsody* | darwin1.[[012]]) + _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-undefined ${wl}suppress' + ;; + *) # Darwin 1.3 on + if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then + _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' + else + case ${MACOSX_DEPLOYMENT_TARGET} in + 10.[[012]]) + _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' + ;; + 10.*) + _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-undefined ${wl}dynamic_lookup' + ;; + esac + fi + ;; + esac + _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no + _LT_AC_TAGVAR(hardcode_direct, $1)=no + _LT_AC_TAGVAR(hardcode_automatic, $1)=yes + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=unsupported + _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='' + _LT_AC_TAGVAR(link_all_deplibs, $1)=yes + if test "$GCC" = yes ; then + output_verbose_link_cmd='echo' + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring' + _LT_AC_TAGVAR(module_cmds, $1)='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' + # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin ld's + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' + _LT_AC_TAGVAR(module_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' + else + case "$cc_basename" in + xlc*) + output_verbose_link_cmd='echo' + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $verstring' + _LT_AC_TAGVAR(module_cmds, $1)='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' + # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin ld's + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' + _LT_AC_TAGVAR(module_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' + ;; + *) + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + esac + fi + ;; + + dgux*) + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + freebsd1*) + _LT_AC_TAGVAR(ld_shlibs, $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_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_AC_TAGVAR(hardcode_direct, $1)=yes + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + # Unfortunately, older versions of FreeBSD 2 do not have this feature. + freebsd2*) + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' + _LT_AC_TAGVAR(hardcode_direct, $1)=yes + _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + # FreeBSD 3 and greater uses gcc -shared to do shared libraries. + freebsd* | kfreebsd*-gnu) + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -o $lib $libobjs $deplibs $compiler_flags' + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_AC_TAGVAR(hardcode_direct, $1)=yes + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + hpux9*) + if test "$GCC" = yes; then + _LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/$soname~$CC -shared -fPIC ${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_AC_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_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: + _LT_AC_TAGVAR(hardcode_direct, $1)=yes + + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes + _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' + ;; + + hpux10* | hpux11*) + if test "$GCC" = yes -a "$with_gnu_ld" = no; then + case "$host_cpu" in + hppa*64*|ia64*) + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + *) + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' + ;; + esac + else + case "$host_cpu" in + hppa*64*|ia64*) + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -b +h $soname -o $lib $libobjs $deplibs $linker_flags' + ;; + *) + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' + ;; + esac + fi + if test "$with_gnu_ld" = no; then + case "$host_cpu" in + hppa*64*) + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' + _LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='+b $libdir' + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: + _LT_AC_TAGVAR(hardcode_direct, $1)=no + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + ia64*) + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_AC_TAGVAR(hardcode_direct, $1)=no + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes + ;; + *) + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: + _LT_AC_TAGVAR(hardcode_direct, $1)=yes + _LT_AC_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_AC_TAGVAR(hardcode_minus_L, $1)=yes + ;; + esac + fi + ;; + + irix5* | irix6* | nonstopux*) + if test "$GCC" = yes; then + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + else + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -shared $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' + _LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='-rpath $libdir' + fi + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: + _LT_AC_TAGVAR(link_all_deplibs, $1)=yes + ;; + + netbsd*) + if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out + else + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF + fi + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_AC_TAGVAR(hardcode_direct, $1)=yes + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + newsos6) + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_AC_TAGVAR(hardcode_direct, $1)=yes + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + openbsd*) + _LT_AC_TAGVAR(hardcode_direct, $1)=yes + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols' + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' + _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' + else + case $host_os in + openbsd[[01]].* | openbsd2.[[0-7]] | openbsd2.[[0-7]].*) + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + ;; + *) + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' + ;; + esac + fi + ;; + + os2*) + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes + _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported + _LT_AC_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_AC_TAGVAR(old_archive_From_new_cmds, $1)='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' + ;; + + osf3*) + if test "$GCC" = yes; then + _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + else + _LT_AC_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' + fi + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: + ;; + + osf4* | osf5*) # as osf3* with the addition of -msym flag + if test "$GCC" = yes; then + _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + else + _LT_AC_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' + _LT_AC_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~ + $LD -shared${allow_undefined_flag} -input $lib.exp $linker_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${objdir}/so_locations -o $lib~$rm $lib.exp' + + # Both c and cxx compiler support -rpath directly + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' + fi + _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: + ;; + + sco3.2v5*) + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Bexport' + runpath_var=LD_RUN_PATH + hardcode_runpath_var=yes + ;; + + solaris*) + _LT_AC_TAGVAR(no_undefined_flag, $1)=' -z text' + if test "$GCC" = yes; then + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ + $CC -shared ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$rm $lib.exp' + else + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_AC_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' + fi + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + case $host_os in + solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; + *) # Supported since Solaris 2.6 (maybe 2.5.1?) + _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract' ;; + esac + _LT_AC_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_AC_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags' + else + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' + fi + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_AC_TAGVAR(hardcode_direct, $1)=yes + _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + sysv4) + case $host_vendor in + sni) + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_AC_TAGVAR(hardcode_direct, $1)=yes # is this really true??? + ;; + siemens) + ## LD is ld it makes a PLAMLIB + ## CC just makes a GrossModule. + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -o $lib $libobjs $deplibs $linker_flags' + _LT_AC_TAGVAR(reload_cmds, $1)='$CC -r -o $output$reload_objs' + _LT_AC_TAGVAR(hardcode_direct, $1)=no + ;; + motorola) + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_AC_TAGVAR(hardcode_direct, $1)=no #Motorola manual says yes, but my tests say they lie + ;; + esac + runpath_var='LD_RUN_PATH' + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + sysv4.3*) + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='-Bexport' + ;; + + sysv4*MP*) + if test -d /usr/nec; then + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + runpath_var=LD_RUN_PATH + hardcode_runpath_var=yes + _LT_AC_TAGVAR(ld_shlibs, $1)=yes + fi + ;; + + sysv4.2uw2*) + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -o $lib $libobjs $deplibs $linker_flags' + _LT_AC_TAGVAR(hardcode_direct, $1)=yes + _LT_AC_TAGVAR(hardcode_minus_L, $1)=no + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + hardcode_runpath_var=yes + runpath_var=LD_RUN_PATH + ;; + + sysv5OpenUNIX8* | sysv5UnixWare7* | sysv5uw[[78]]* | unixware7*) + _LT_AC_TAGVAR(no_undefined_flag, $1)='${wl}-z ${wl}text' + if test "$GCC" = yes; then + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' + else + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' + fi + runpath_var='LD_RUN_PATH' + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + sysv5*) + _LT_AC_TAGVAR(no_undefined_flag, $1)=' -z text' + # $CC -shared without GNU ld will not create a library from C++ + # object files and a static libstdc++, better avoid it by now + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_AC_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' + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)= + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + runpath_var='LD_RUN_PATH' + ;; + + uts4*) + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + *) + _LT_AC_TAGVAR(ld_shlibs, $1)=no + ;; + esac + fi +]) +AC_MSG_RESULT([$_LT_AC_TAGVAR(ld_shlibs, $1)]) +test "$_LT_AC_TAGVAR(ld_shlibs, $1)" = 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 + +# +# Do we need to explicitly link libc? +# +case "x$_LT_AC_TAGVAR(archive_cmds_need_lc, $1)" in +x|xyes) + # Assume -lc should be added + _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=yes + + if test "$enable_shared" = yes && test "$GCC" = yes; then + case $_LT_AC_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_MSG_CHECKING([whether -lc should be explicitly linked in]) + $rm conftest* + printf "$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_AC_TAGVAR(lt_prog_compiler_wl, $1) + compiler_flags=-v + linker_flags=-v + verstring= + output_objdir=. + libname=conftest + lt_save_allow_undefined_flag=$_LT_AC_TAGVAR(allow_undefined_flag, $1) + _LT_AC_TAGVAR(allow_undefined_flag, $1)= + if AC_TRY_EVAL(_LT_AC_TAGVAR(archive_cmds, $1) 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1) + then + _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no + else + _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=yes + fi + _LT_AC_TAGVAR(allow_undefined_flag, $1)=$lt_save_allow_undefined_flag + else + cat conftest.err 1>&5 + fi + $rm conftest* + AC_MSG_RESULT([$_LT_AC_TAGVAR(archive_cmds_need_lc, $1)]) + ;; + esac + fi + ;; +esac +])# AC_LIBTOOL_PROG_LD_SHLIBS + + +# _LT_AC_FILE_LTDLL_C +# ------------------- +# Be careful that the start marker always follows a newline. +AC_DEFUN([_LT_AC_FILE_LTDLL_C], [ +# /* ltdll.c starts here */ +# #define WIN32_LEAN_AND_MEAN +# #include +# #undef WIN32_LEAN_AND_MEAN +# #include +# +# #ifndef __CYGWIN__ +# # ifdef __CYGWIN32__ +# # define __CYGWIN__ __CYGWIN32__ +# # endif +# #endif +# +# #ifdef __cplusplus +# extern "C" { +# #endif +# BOOL APIENTRY DllMain (HINSTANCE hInst, DWORD reason, LPVOID reserved); +# #ifdef __cplusplus +# } +# #endif +# +# #ifdef __CYGWIN__ +# #include +# DECLARE_CYGWIN_DLL( DllMain ); +# #endif +# HINSTANCE __hDllInstance_base; +# +# BOOL APIENTRY +# DllMain (HINSTANCE hInst, DWORD reason, LPVOID reserved) +# { +# __hDllInstance_base = hInst; +# return TRUE; +# } +# /* ltdll.c ends here */ +])# _LT_AC_FILE_LTDLL_C + + +# _LT_AC_TAGVAR(VARNAME, [TAGNAME]) +# --------------------------------- +AC_DEFUN([_LT_AC_TAGVAR], [ifelse([$2], [], [$1], [$1_$2])]) + + +# old names +AC_DEFUN([AM_PROG_LIBTOOL], [AC_PROG_LIBTOOL]) +AC_DEFUN([AM_ENABLE_SHARED], [AC_ENABLE_SHARED($@)]) +AC_DEFUN([AM_ENABLE_STATIC], [AC_ENABLE_STATIC($@)]) +AC_DEFUN([AM_DISABLE_SHARED], [AC_DISABLE_SHARED($@)]) +AC_DEFUN([AM_DISABLE_STATIC], [AC_DISABLE_STATIC($@)]) +AC_DEFUN([AM_PROG_LD], [AC_PROG_LD]) +AC_DEFUN([AM_PROG_NM], [AC_PROG_NM]) + +# This is just to silence aclocal about the macro not being used +ifelse([AC_DISABLE_FAST_INSTALL]) + +AC_DEFUN([LT_AC_PROG_GCJ], +[AC_CHECK_TOOL(GCJ, gcj, no) + test "x${GCJFLAGS+set}" = xset || GCJFLAGS="-g -O2" + AC_SUBST(GCJFLAGS) +]) + +AC_DEFUN([LT_AC_PROG_RC], +[AC_CHECK_TOOL(RC, windres, no) +]) + +############################################################ +# 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. # +############################################################ +# LT_AC_PROG_SED +# -------------- +# Check for a fully-functional sed program, that truncates +# as few characters as possible. Prefer GNU sed if found. +AC_DEFUN([LT_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 +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 && break + 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_MSG_RESULT([$SED]) +]) diff --git a/aclocal.m4 b/aclocal.m4 new file mode 100644 index 0000000..2f1ca33 --- /dev/null +++ b/aclocal.m4 @@ -0,0 +1,910 @@ +# generated automatically by aclocal 1.10.1 -*- Autoconf -*- + +# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, +# 2005, 2006, 2007, 2008 Free Software Foundation, Inc. +# 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. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +m4_ifndef([AC_AUTOCONF_VERSION], + [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl +m4_if(AC_AUTOCONF_VERSION, [2.61],, +[m4_warning([this file was generated for autoconf 2.61. +You have another version of autoconf. It may work, but is not guaranteed to. +If you have problems, you may need to regenerate the build system entirely. +To do so, use the procedure documented by the package, typically `autoreconf'.])]) + +# Copyright (C) 2002, 2003, 2005, 2006, 2007 Free Software Foundation, Inc. +# +# 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. + +# AM_AUTOMAKE_VERSION(VERSION) +# ---------------------------- +# Automake X.Y traces this macro to ensure aclocal.m4 has been +# generated from the m4 files accompanying Automake X.Y. +# (This private macro should not be called outside this file.) +AC_DEFUN([AM_AUTOMAKE_VERSION], +[am__api_version='1.10' +dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to +dnl require some minimum version. Point them to the right macro. +m4_if([$1], [1.10.1], [], + [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl +]) + +# _AM_AUTOCONF_VERSION(VERSION) +# ----------------------------- +# aclocal traces this macro to find the Autoconf version. +# This is a private macro too. Using m4_define simplifies +# the logic in aclocal, which can simply ignore this definition. +m4_define([_AM_AUTOCONF_VERSION], []) + +# AM_SET_CURRENT_AUTOMAKE_VERSION +# ------------------------------- +# Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced. +# This function is AC_REQUIREd by AC_INIT_AUTOMAKE. +AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], +[AM_AUTOMAKE_VERSION([1.10.1])dnl +m4_ifndef([AC_AUTOCONF_VERSION], + [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl +_AM_AUTOCONF_VERSION(AC_AUTOCONF_VERSION)]) + +# AM_AUX_DIR_EXPAND -*- Autoconf -*- + +# Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc. +# +# 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. + +# For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets +# $ac_aux_dir to `$srcdir/foo'. In other projects, it is set to +# `$srcdir', `$srcdir/..', or `$srcdir/../..'. +# +# Of course, Automake must honor this variable whenever it calls a +# tool from the auxiliary directory. The problem is that $srcdir (and +# therefore $ac_aux_dir as well) can be either absolute or relative, +# depending on how configure is run. This is pretty annoying, since +# it makes $ac_aux_dir quite unusable in subdirectories: in the top +# source directory, any form will work fine, but in subdirectories a +# relative path needs to be adjusted first. +# +# $ac_aux_dir/missing +# fails when called from a subdirectory if $ac_aux_dir is relative +# $top_srcdir/$ac_aux_dir/missing +# fails if $ac_aux_dir is absolute, +# fails when called from a subdirectory in a VPATH build with +# a relative $ac_aux_dir +# +# The reason of the latter failure is that $top_srcdir and $ac_aux_dir +# are both prefixed by $srcdir. In an in-source build this is usually +# harmless because $srcdir is `.', but things will broke when you +# start a VPATH build or use an absolute $srcdir. +# +# So we could use something similar to $top_srcdir/$ac_aux_dir/missing, +# iff we strip the leading $srcdir from $ac_aux_dir. That would be: +# am_aux_dir='\$(top_srcdir)/'`expr "$ac_aux_dir" : "$srcdir//*\(.*\)"` +# and then we would define $MISSING as +# MISSING="\${SHELL} $am_aux_dir/missing" +# This will work as long as MISSING is not called from configure, because +# unfortunately $(top_srcdir) has no meaning in configure. +# However there are other variables, like CC, which are often used in +# configure, and could therefore not use this "fixed" $ac_aux_dir. +# +# Another solution, used here, is to always expand $ac_aux_dir to an +# absolute PATH. The drawback is that using absolute paths prevent a +# configured tree to be moved without reconfiguration. + +AC_DEFUN([AM_AUX_DIR_EXPAND], +[dnl Rely on autoconf to set up CDPATH properly. +AC_PREREQ([2.50])dnl +# expand $ac_aux_dir to an absolute path +am_aux_dir=`cd $ac_aux_dir && pwd` +]) + +# AM_CONDITIONAL -*- Autoconf -*- + +# Copyright (C) 1997, 2000, 2001, 2003, 2004, 2005, 2006 +# Free Software Foundation, Inc. +# +# 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 8 + +# AM_CONDITIONAL(NAME, SHELL-CONDITION) +# ------------------------------------- +# Define a conditional. +AC_DEFUN([AM_CONDITIONAL], +[AC_PREREQ(2.52)dnl + ifelse([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])], + [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl +AC_SUBST([$1_TRUE])dnl +AC_SUBST([$1_FALSE])dnl +_AM_SUBST_NOTMAKE([$1_TRUE])dnl +_AM_SUBST_NOTMAKE([$1_FALSE])dnl +if $2; then + $1_TRUE= + $1_FALSE='#' +else + $1_TRUE='#' + $1_FALSE= +fi +AC_CONFIG_COMMANDS_PRE( +[if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then + AC_MSG_ERROR([[conditional "$1" was never defined. +Usually this means the macro was only invoked conditionally.]]) +fi])]) + +# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 +# Free Software Foundation, Inc. +# +# 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 9 + +# There are a few dirty hacks below to avoid letting `AC_PROG_CC' be +# written in clear, in which case automake, when reading aclocal.m4, +# will think it sees a *use*, and therefore will trigger all it's +# C support machinery. Also note that it means that autoscan, seeing +# CC etc. in the Makefile, will ask for an AC_PROG_CC use... + + +# _AM_DEPENDENCIES(NAME) +# ---------------------- +# See how the compiler implements dependency checking. +# NAME is "CC", "CXX", "GCJ", or "OBJC". +# We try a few techniques and use that to set a single cache variable. +# +# We don't AC_REQUIRE the corresponding AC_PROG_CC since the latter was +# modified to invoke _AM_DEPENDENCIES(CC); we would have a circular +# dependency, and given that the user is not expected to run this macro, +# just rely on AC_PROG_CC. +AC_DEFUN([_AM_DEPENDENCIES], +[AC_REQUIRE([AM_SET_DEPDIR])dnl +AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl +AC_REQUIRE([AM_MAKE_INCLUDE])dnl +AC_REQUIRE([AM_DEP_TRACK])dnl + +ifelse([$1], CC, [depcc="$CC" am_compiler_list=], + [$1], CXX, [depcc="$CXX" am_compiler_list=], + [$1], OBJC, [depcc="$OBJC" am_compiler_list='gcc3 gcc'], + [$1], UPC, [depcc="$UPC" am_compiler_list=], + [$1], GCJ, [depcc="$GCJ" am_compiler_list='gcc3 gcc'], + [depcc="$$1" am_compiler_list=]) + +AC_CACHE_CHECK([dependency style of $depcc], + [am_cv_$1_dependencies_compiler_type], +[if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then + # We make a subdir and do the tests there. Otherwise we can end up + # making bogus files that we don't know about and never remove. For + # instance it was reported that on HP-UX the gcc test will end up + # making a dummy file named `D' -- because `-MD' means `put the output + # in D'. + mkdir conftest.dir + # Copy depcomp to subdir because otherwise we won't find it if we're + # using a relative directory. + cp "$am_depcomp" conftest.dir + cd conftest.dir + # We will build objects and dependencies in a subdirectory because + # it helps to detect inapplicable dependency modes. For instance + # both Tru64's cc and ICC support -MD to output dependencies as a + # side effect of compilation, but ICC will put the dependencies in + # the current directory while Tru64 will put them in the object + # directory. + mkdir sub + + am_cv_$1_dependencies_compiler_type=none + if test "$am_compiler_list" = ""; then + am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp` + fi + for depmode in $am_compiler_list; do + # Setup a source with many dependencies, because some compilers + # like to wrap large dependency lists on column 80 (with \), and + # we should not choose a depcomp mode which is confused by this. + # + # We need to recreate these files for each test, as the compiler may + # overwrite some of them when testing with obscure command lines. + # This happens at least with the AIX C compiler. + : > sub/conftest.c + for i in 1 2 3 4 5 6; do + echo '#include "conftst'$i'.h"' >> sub/conftest.c + # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with + # Solaris 8's {/usr,}/bin/sh. + touch sub/conftst$i.h + done + echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf + + case $depmode in + nosideeffect) + # after this tag, mechanisms are not by side-effect, so they'll + # only be used when explicitly requested + if test "x$enable_dependency_tracking" = xyes; then + continue + else + break + fi + ;; + none) break ;; + esac + # We check with `-c' and `-o' for the sake of the "dashmstdout" + # mode. It turns out that the SunPro C++ compiler does not properly + # handle `-M -o', and we need to detect this. + if depmode=$depmode \ + source=sub/conftest.c object=sub/conftest.${OBJEXT-o} \ + depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ + $SHELL ./depcomp $depcc -c -o sub/conftest.${OBJEXT-o} sub/conftest.c \ + >/dev/null 2>conftest.err && + grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && + grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && + grep sub/conftest.${OBJEXT-o} sub/conftest.Po > /dev/null 2>&1 && + ${MAKE-make} -s -f confmf > /dev/null 2>&1; then + # icc doesn't choke on unknown options, it will just issue warnings + # or remarks (even with -Werror). So we grep stderr for any message + # that says an option was ignored or not supported. + # When given -MP, icc 7.0 and 7.1 complain thusly: + # icc: Command line warning: ignoring option '-M'; no argument required + # The diagnosis changed in icc 8.0: + # icc: Command line remark: option '-MP' not supported + if (grep 'ignoring option' conftest.err || + grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else + am_cv_$1_dependencies_compiler_type=$depmode + break + fi + fi + done + + cd .. + rm -rf conftest.dir +else + am_cv_$1_dependencies_compiler_type=none +fi +]) +AC_SUBST([$1DEPMODE], [depmode=$am_cv_$1_dependencies_compiler_type]) +AM_CONDITIONAL([am__fastdep$1], [ + test "x$enable_dependency_tracking" != xno \ + && test "$am_cv_$1_dependencies_compiler_type" = gcc3]) +]) + + +# AM_SET_DEPDIR +# ------------- +# Choose a directory name for dependency files. +# This macro is AC_REQUIREd in _AM_DEPENDENCIES +AC_DEFUN([AM_SET_DEPDIR], +[AC_REQUIRE([AM_SET_LEADING_DOT])dnl +AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl +]) + + +# AM_DEP_TRACK +# ------------ +AC_DEFUN([AM_DEP_TRACK], +[AC_ARG_ENABLE(dependency-tracking, +[ --disable-dependency-tracking speeds up one-time build + --enable-dependency-tracking do not reject slow dependency extractors]) +if test "x$enable_dependency_tracking" != xno; then + am_depcomp="$ac_aux_dir/depcomp" + AMDEPBACKSLASH='\' +fi +AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno]) +AC_SUBST([AMDEPBACKSLASH])dnl +_AM_SUBST_NOTMAKE([AMDEPBACKSLASH])dnl +]) + +# Generate code to set up dependency tracking. -*- Autoconf -*- + +# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005 +# Free Software Foundation, Inc. +# +# 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 3 + +# _AM_OUTPUT_DEPENDENCY_COMMANDS +# ------------------------------ +AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS], +[for mf in $CONFIG_FILES; do + # Strip MF so we end up with the name of the file. + mf=`echo "$mf" | sed -e 's/:.*$//'` + # Check whether this is an Automake generated Makefile or not. + # We used to match only the files named `Makefile.in', but + # some people rename them; so instead we look at the file content. + # Grep'ing the first line is not enough: some people post-process + # each Makefile.in and add a new line on top of each file to say so. + # Grep'ing the whole file is not good either: AIX grep has a line + # limit of 2048, but all sed's we know have understand at least 4000. + if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then + dirpart=`AS_DIRNAME("$mf")` + else + continue + fi + # Extract the definition of DEPDIR, am__include, and am__quote + # from the Makefile without running `make'. + DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` + test -z "$DEPDIR" && continue + am__include=`sed -n 's/^am__include = //p' < "$mf"` + test -z "am__include" && continue + am__quote=`sed -n 's/^am__quote = //p' < "$mf"` + # When using ansi2knr, U may be empty or an underscore; expand it + U=`sed -n 's/^U = //p' < "$mf"` + # Find all dependency output files, they are included files with + # $(DEPDIR) in their names. We invoke sed twice because it is the + # simplest approach to changing $(DEPDIR) to its actual value in the + # expansion. + for file in `sed -n " + s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ + sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do + # Make sure the directory exists. + test -f "$dirpart/$file" && continue + fdir=`AS_DIRNAME(["$file"])` + AS_MKDIR_P([$dirpart/$fdir]) + # echo "creating $dirpart/$file" + echo '# dummy' > "$dirpart/$file" + done +done +])# _AM_OUTPUT_DEPENDENCY_COMMANDS + + +# AM_OUTPUT_DEPENDENCY_COMMANDS +# ----------------------------- +# This macro should only be invoked once -- use via AC_REQUIRE. +# +# This code is only required when automatic dependency tracking +# is enabled. FIXME. This creates each `.P' file that we will +# need in order to bootstrap the dependency handling code. +AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS], +[AC_CONFIG_COMMANDS([depfiles], + [test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS], + [AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"]) +]) + +# Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005 +# Free Software Foundation, Inc. +# +# 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 8 + +# AM_CONFIG_HEADER is obsolete. It has been replaced by AC_CONFIG_HEADERS. +AU_DEFUN([AM_CONFIG_HEADER], [AC_CONFIG_HEADERS($@)]) + +# Do all the work for Automake. -*- Autoconf -*- + +# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, +# 2005, 2006, 2008 Free Software Foundation, Inc. +# +# 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 13 + +# This macro actually does too much. Some checks are only needed if +# your package does certain things. But this isn't really a big deal. + +# AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE]) +# AM_INIT_AUTOMAKE([OPTIONS]) +# ----------------------------------------------- +# The call with PACKAGE and VERSION arguments is the old style +# call (pre autoconf-2.50), which is being phased out. PACKAGE +# and VERSION should now be passed to AC_INIT and removed from +# the call to AM_INIT_AUTOMAKE. +# We support both call styles for the transition. After +# the next Automake release, Autoconf can make the AC_INIT +# arguments mandatory, and then we can depend on a new Autoconf +# release and drop the old call support. +AC_DEFUN([AM_INIT_AUTOMAKE], +[AC_PREREQ([2.60])dnl +dnl Autoconf wants to disallow AM_ names. We explicitly allow +dnl the ones we care about. +m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl +AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl +AC_REQUIRE([AC_PROG_INSTALL])dnl +if test "`cd $srcdir && pwd`" != "`pwd`"; then + # Use -I$(srcdir) only when $(srcdir) != ., so that make's output + # is not polluted with repeated "-I." + AC_SUBST([am__isrc], [' -I$(srcdir)'])_AM_SUBST_NOTMAKE([am__isrc])dnl + # test to see if srcdir already configured + if test -f $srcdir/config.status; then + AC_MSG_ERROR([source directory already configured; run "make distclean" there first]) + fi +fi + +# test whether we have cygpath +if test -z "$CYGPATH_W"; then + if (cygpath --version) >/dev/null 2>/dev/null; then + CYGPATH_W='cygpath -w' + else + CYGPATH_W=echo + fi +fi +AC_SUBST([CYGPATH_W]) + +# Define the identity of the package. +dnl Distinguish between old-style and new-style calls. +m4_ifval([$2], +[m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl + AC_SUBST([PACKAGE], [$1])dnl + AC_SUBST([VERSION], [$2])], +[_AM_SET_OPTIONS([$1])dnl +dnl Diagnose old-style AC_INIT with new-style AM_AUTOMAKE_INIT. +m4_if(m4_ifdef([AC_PACKAGE_NAME], 1)m4_ifdef([AC_PACKAGE_VERSION], 1), 11,, + [m4_fatal([AC_INIT should be called with package and version arguments])])dnl + AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl + AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl + +_AM_IF_OPTION([no-define],, +[AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package]) + AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])])dnl + +# Some tools Automake needs. +AC_REQUIRE([AM_SANITY_CHECK])dnl +AC_REQUIRE([AC_ARG_PROGRAM])dnl +AM_MISSING_PROG(ACLOCAL, aclocal-${am__api_version}) +AM_MISSING_PROG(AUTOCONF, autoconf) +AM_MISSING_PROG(AUTOMAKE, automake-${am__api_version}) +AM_MISSING_PROG(AUTOHEADER, autoheader) +AM_MISSING_PROG(MAKEINFO, makeinfo) +AM_PROG_INSTALL_SH +AM_PROG_INSTALL_STRIP +AC_REQUIRE([AM_PROG_MKDIR_P])dnl +# We need awk for the "check" target. The system "awk" is bad on +# some platforms. +AC_REQUIRE([AC_PROG_AWK])dnl +AC_REQUIRE([AC_PROG_MAKE_SET])dnl +AC_REQUIRE([AM_SET_LEADING_DOT])dnl +_AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])], + [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])], + [_AM_PROG_TAR([v7])])]) +_AM_IF_OPTION([no-dependencies],, +[AC_PROVIDE_IFELSE([AC_PROG_CC], + [_AM_DEPENDENCIES(CC)], + [define([AC_PROG_CC], + defn([AC_PROG_CC])[_AM_DEPENDENCIES(CC)])])dnl +AC_PROVIDE_IFELSE([AC_PROG_CXX], + [_AM_DEPENDENCIES(CXX)], + [define([AC_PROG_CXX], + defn([AC_PROG_CXX])[_AM_DEPENDENCIES(CXX)])])dnl +AC_PROVIDE_IFELSE([AC_PROG_OBJC], + [_AM_DEPENDENCIES(OBJC)], + [define([AC_PROG_OBJC], + defn([AC_PROG_OBJC])[_AM_DEPENDENCIES(OBJC)])])dnl +]) +]) + + +# When config.status generates a header, we must update the stamp-h file. +# This file resides in the same directory as the config header +# that is generated. The stamp files are numbered to have different names. + +# Autoconf calls _AC_AM_CONFIG_HEADER_HOOK (when defined) in the +# loop where config.status creates the headers, so we can generate +# our stamp files there. +AC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK], +[# Compute $1's index in $config_headers. +_am_arg=$1 +_am_stamp_count=1 +for _am_header in $config_headers :; do + case $_am_header in + $_am_arg | $_am_arg:* ) + break ;; + * ) + _am_stamp_count=`expr $_am_stamp_count + 1` ;; + esac +done +echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count]) + +# Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc. +# +# 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. + +# AM_PROG_INSTALL_SH +# ------------------ +# Define $install_sh. +AC_DEFUN([AM_PROG_INSTALL_SH], +[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl +install_sh=${install_sh-"\$(SHELL) $am_aux_dir/install-sh"} +AC_SUBST(install_sh)]) + +# Copyright (C) 2003, 2005 Free Software Foundation, Inc. +# +# 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 2 + +# Check whether the underlying file-system supports filenames +# with a leading dot. For instance MS-DOS doesn't. +AC_DEFUN([AM_SET_LEADING_DOT], +[rm -rf .tst 2>/dev/null +mkdir .tst 2>/dev/null +if test -d .tst; then + am__leading_dot=. +else + am__leading_dot=_ +fi +rmdir .tst 2>/dev/null +AC_SUBST([am__leading_dot])]) + +# Add --enable-maintainer-mode option to configure. -*- Autoconf -*- +# From Jim Meyering + +# Copyright (C) 1996, 1998, 2000, 2001, 2002, 2003, 2004, 2005 +# Free Software Foundation, Inc. +# +# 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 4 + +AC_DEFUN([AM_MAINTAINER_MODE], +[AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles]) + dnl maintainer-mode is disabled by default + AC_ARG_ENABLE(maintainer-mode, +[ --enable-maintainer-mode enable make rules and dependencies not useful + (and sometimes confusing) to the casual installer], + USE_MAINTAINER_MODE=$enableval, + USE_MAINTAINER_MODE=no) + AC_MSG_RESULT([$USE_MAINTAINER_MODE]) + AM_CONDITIONAL(MAINTAINER_MODE, [test $USE_MAINTAINER_MODE = yes]) + MAINT=$MAINTAINER_MODE_TRUE + AC_SUBST(MAINT)dnl +] +) + +AU_DEFUN([jm_MAINTAINER_MODE], [AM_MAINTAINER_MODE]) + +# Check to see how 'make' treats includes. -*- Autoconf -*- + +# Copyright (C) 2001, 2002, 2003, 2005 Free Software Foundation, Inc. +# +# 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 3 + +# AM_MAKE_INCLUDE() +# ----------------- +# Check to see how make treats includes. +AC_DEFUN([AM_MAKE_INCLUDE], +[am_make=${MAKE-make} +cat > confinc << 'END' +am__doit: + @echo done +.PHONY: am__doit +END +# If we don't find an include directive, just comment out the code. +AC_MSG_CHECKING([for style of include used by $am_make]) +am__include="#" +am__quote= +_am_result=none +# First try GNU make style include. +echo "include confinc" > confmf +# We grep out `Entering directory' and `Leaving directory' +# messages which can occur if `w' ends up in MAKEFLAGS. +# In particular we don't look at `^make:' because GNU make might +# be invoked under some other name (usually "gmake"), in which +# case it prints its new name instead of `make'. +if test "`$am_make -s -f confmf 2> /dev/null | grep -v 'ing directory'`" = "done"; then + am__include=include + am__quote= + _am_result=GNU +fi +# Now try BSD make style include. +if test "$am__include" = "#"; then + echo '.include "confinc"' > confmf + if test "`$am_make -s -f confmf 2> /dev/null`" = "done"; then + am__include=.include + am__quote="\"" + _am_result=BSD + fi +fi +AC_SUBST([am__include]) +AC_SUBST([am__quote]) +AC_MSG_RESULT([$_am_result]) +rm -f confinc confmf +]) + +# Fake the existence of programs that GNU maintainers use. -*- Autoconf -*- + +# Copyright (C) 1997, 1999, 2000, 2001, 2003, 2004, 2005 +# Free Software Foundation, Inc. +# +# 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 + +# AM_MISSING_PROG(NAME, PROGRAM) +# ------------------------------ +AC_DEFUN([AM_MISSING_PROG], +[AC_REQUIRE([AM_MISSING_HAS_RUN]) +$1=${$1-"${am_missing_run}$2"} +AC_SUBST($1)]) + + +# AM_MISSING_HAS_RUN +# ------------------ +# Define MISSING if not defined so far and test if it supports --run. +# If it does, set am_missing_run to use it, otherwise, to nothing. +AC_DEFUN([AM_MISSING_HAS_RUN], +[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl +AC_REQUIRE_AUX_FILE([missing])dnl +test x"${MISSING+set}" = xset || MISSING="\${SHELL} $am_aux_dir/missing" +# Use eval to expand $SHELL +if eval "$MISSING --run true"; then + am_missing_run="$MISSING --run " +else + am_missing_run= + AC_MSG_WARN([`missing' script is too old or missing]) +fi +]) + +# Copyright (C) 2003, 2004, 2005, 2006 Free Software Foundation, Inc. +# +# 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. + +# AM_PROG_MKDIR_P +# --------------- +# Check for `mkdir -p'. +AC_DEFUN([AM_PROG_MKDIR_P], +[AC_PREREQ([2.60])dnl +AC_REQUIRE([AC_PROG_MKDIR_P])dnl +dnl Automake 1.8 to 1.9.6 used to define mkdir_p. We now use MKDIR_P, +dnl while keeping a definition of mkdir_p for backward compatibility. +dnl @MKDIR_P@ is magic: AC_OUTPUT adjusts its value for each Makefile. +dnl However we cannot define mkdir_p as $(MKDIR_P) for the sake of +dnl Makefile.ins that do not define MKDIR_P, so we do our own +dnl adjustment using top_builddir (which is defined more often than +dnl MKDIR_P). +AC_SUBST([mkdir_p], ["$MKDIR_P"])dnl +case $mkdir_p in + [[\\/$]]* | ?:[[\\/]]*) ;; + */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;; +esac +]) + +# Helper functions for option handling. -*- Autoconf -*- + +# Copyright (C) 2001, 2002, 2003, 2005 Free Software Foundation, Inc. +# +# 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 3 + +# _AM_MANGLE_OPTION(NAME) +# ----------------------- +AC_DEFUN([_AM_MANGLE_OPTION], +[[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])]) + +# _AM_SET_OPTION(NAME) +# ------------------------------ +# Set option NAME. Presently that only means defining a flag for this option. +AC_DEFUN([_AM_SET_OPTION], +[m4_define(_AM_MANGLE_OPTION([$1]), 1)]) + +# _AM_SET_OPTIONS(OPTIONS) +# ---------------------------------- +# OPTIONS is a space-separated list of Automake options. +AC_DEFUN([_AM_SET_OPTIONS], +[AC_FOREACH([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])]) + +# _AM_IF_OPTION(OPTION, IF-SET, [IF-NOT-SET]) +# ------------------------------------------- +# Execute IF-SET if OPTION is set, IF-NOT-SET otherwise. +AC_DEFUN([_AM_IF_OPTION], +[m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])]) + +# Check to make sure that the build environment is sane. -*- Autoconf -*- + +# Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005 +# Free Software Foundation, Inc. +# +# 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 4 + +# AM_SANITY_CHECK +# --------------- +AC_DEFUN([AM_SANITY_CHECK], +[AC_MSG_CHECKING([whether build environment is sane]) +# Just in case +sleep 1 +echo timestamp > conftest.file +# Do `set' in a subshell so we don't clobber the current shell's +# arguments. Must try -L first in case configure is actually a +# symlink; some systems play weird games with the mod time of symlinks +# (eg FreeBSD returns the mod time of the symlink's containing +# directory). +if ( + set X `ls -Lt $srcdir/configure conftest.file 2> /dev/null` + if test "$[*]" = "X"; then + # -L didn't work. + set X `ls -t $srcdir/configure conftest.file` + fi + rm -f conftest.file + if test "$[*]" != "X $srcdir/configure conftest.file" \ + && test "$[*]" != "X conftest.file $srcdir/configure"; then + + # If neither matched, then we have a broken ls. This can happen + # if, for instance, CONFIG_SHELL is bash and it inherits a + # broken ls alias from the environment. This has actually + # happened. Such a system could not be considered "sane". + AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken +alias in your environment]) + fi + + test "$[2]" = conftest.file + ) +then + # Ok. + : +else + AC_MSG_ERROR([newly created file is older than distributed files! +Check your system clock]) +fi +AC_MSG_RESULT(yes)]) + +# Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc. +# +# 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. + +# AM_PROG_INSTALL_STRIP +# --------------------- +# One issue with vendor `install' (even GNU) is that you can't +# specify the program used to strip binaries. This is especially +# annoying in cross-compiling environments, where the build's strip +# is unlikely to handle the host's binaries. +# Fortunately install-sh will honor a STRIPPROG variable, so we +# always use install-sh in `make install-strip', and initialize +# STRIPPROG with the value of the STRIP variable (set by the user). +AC_DEFUN([AM_PROG_INSTALL_STRIP], +[AC_REQUIRE([AM_PROG_INSTALL_SH])dnl +# Installed binaries are usually stripped using `strip' when the user +# run `make install-strip'. However `strip' might not be the right +# tool to use in cross-compilation environments, therefore Automake +# will honor the `STRIP' environment variable to overrule this program. +dnl Don't test for $cross_compiling = yes, because it might be `maybe'. +if test "$cross_compiling" != no; then + AC_CHECK_TOOL([STRIP], [strip], :) +fi +INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" +AC_SUBST([INSTALL_STRIP_PROGRAM])]) + +# Copyright (C) 2006 Free Software Foundation, Inc. +# +# 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. + +# _AM_SUBST_NOTMAKE(VARIABLE) +# --------------------------- +# Prevent Automake from outputting VARIABLE = @VARIABLE@ in Makefile.in. +# This macro is traced by Automake. +AC_DEFUN([_AM_SUBST_NOTMAKE]) + +# Check how to create a tarball. -*- Autoconf -*- + +# Copyright (C) 2004, 2005 Free Software Foundation, Inc. +# +# 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 2 + +# _AM_PROG_TAR(FORMAT) +# -------------------- +# Check how to create a tarball in format FORMAT. +# FORMAT should be one of `v7', `ustar', or `pax'. +# +# Substitute a variable $(am__tar) that is a command +# writing to stdout a FORMAT-tarball containing the directory +# $tardir. +# tardir=directory && $(am__tar) > result.tar +# +# Substitute a variable $(am__untar) that extract such +# a tarball read from stdin. +# $(am__untar) < result.tar +AC_DEFUN([_AM_PROG_TAR], +[# Always define AMTAR for backward compatibility. +AM_MISSING_PROG([AMTAR], [tar]) +m4_if([$1], [v7], + [am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -'], + [m4_case([$1], [ustar],, [pax],, + [m4_fatal([Unknown tar format])]) +AC_MSG_CHECKING([how to create a $1 tar archive]) +# Loop over all known methods to create a tar archive until one works. +_am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none' +_am_tools=${am_cv_prog_tar_$1-$_am_tools} +# Do not fold the above two line into one, because Tru64 sh and +# Solaris sh will not grok spaces in the rhs of `-'. +for _am_tool in $_am_tools +do + case $_am_tool in + gnutar) + for _am_tar in tar gnutar gtar; + do + AM_RUN_LOG([$_am_tar --version]) && break + done + am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"' + am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"' + am__untar="$_am_tar -xf -" + ;; + plaintar) + # Must skip GNU tar: if it does not support --format= it doesn't create + # ustar tarball either. + (tar --version) >/dev/null 2>&1 && continue + am__tar='tar chf - "$$tardir"' + am__tar_='tar chf - "$tardir"' + am__untar='tar xf -' + ;; + pax) + am__tar='pax -L -x $1 -w "$$tardir"' + am__tar_='pax -L -x $1 -w "$tardir"' + am__untar='pax -r' + ;; + cpio) + am__tar='find "$$tardir" -print | cpio -o -H $1 -L' + am__tar_='find "$tardir" -print | cpio -o -H $1 -L' + am__untar='cpio -i -H $1 -d' + ;; + none) + am__tar=false + am__tar_=false + am__untar=false + ;; + esac + + # If the value was cached, stop now. We just wanted to have am__tar + # and am__untar set. + test -n "${am_cv_prog_tar_$1}" && break + + # tar/untar a dummy directory, and stop if the command works + rm -rf conftest.dir + mkdir conftest.dir + echo GrepMe > conftest.dir/file + AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar]) + rm -rf conftest.dir + if test -s conftest.tar; then + AM_RUN_LOG([$am__untar /dev/null 2>&1 && break + fi +done +rm -rf conftest.dir + +AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool]) +AC_MSG_RESULT([$am_cv_prog_tar_$1])]) +AC_SUBST([am__tar]) +AC_SUBST([am__untar]) +]) # _AM_PROG_TAR + +m4_include([acinclude.m4]) diff --git a/autogen.sh b/autogen.sh new file mode 100755 index 0000000..186884d --- /dev/null +++ b/autogen.sh @@ -0,0 +1,164 @@ +#! /bin/bash + +############################################################################### +# +# Run this to generate the Makefile templates, etc. +# +############################################################################### + +THIS_PROGGIE_EXECUTABLE="./autogen.sh" +THIS_PROGGIE_NAME="KVIrc autogen.sh" +THIS_PROGGIE_VERSION="1.0.0" +PKG_NAME="kvirc" +DIE=0 +GEN_FILES="configure.in" + +USE_BUNDLED_LIBTOOL=0 + +# Handle arguments + + +while test "$#" -gt 0 +do + arg="$1" + shift + + case $arg in + --help) + echo $THIS_PROGGIE_NAME $THIS_PROGGIE_VERSION + echo "Usage:" + echo $THIS_PROGGIE_EXECUTABLE "[options]" + echo "Options:" + echo " --bundled-libtool : use the bundled libtool instead" + echo " of the system one" + exit 0 + ;; + + --version) + echo $THIS_PROGGIE_NAME $THIS_PROGGIE_VERSION + exit 0 + ;; + + --bundled-libtool) + USE_BUNDLED_LIBTOOL=1 + ;; + + *) + echo "Unrecognized option $arg" + echo "See $THIS_PROGGIE_EXECUTABLE --help" + exit -1 + ;; + esac +done + + +set -e + +function RUN_TOOL() +{ + if [ -z "$*" ]; then return; fi + echo "... Running $*" + $* +} + + +############################################################################### +# +# + + +echo "... Generating build files for $PKG_NAME" + +(autoconf --version) < /dev/null > /dev/null 2>&1 || { + echo + echo "**Error**: You must have GNU \`autoconf' installed." + DIE=1 +} + +(test "$USE_BUNDLED_LIBTOOL" -eq 0) && { + (libtool --version) < /dev/null > /dev/null 2>&1 || { + echo "*Warning*: You don't have GNU \`libtool' installed." + echo "*Warning*: Using the buindled libtool instead." + USE_BUNDLED_LIBTOOL=1 + } +} + +(automake --version) < /dev/null > /dev/null 2>&1 || { + echo + echo "**Error**: You must have GNU \`automake' installed." + DIE=1 + NO_AUTOMAKE=yes +} + +# if no automake, do not 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 does not appear recent enough." + DIE=1 +} + +if test "$DIE" -eq 1; then + exit 1 +fi + +case $CC in +xlc) + am_opt=--include-deps;; +esac + +for coin in $GEN_FILES +do + dr=`dirname $coin` + if test -f $dr/NO-AUTO-GEN; then + echo "... skipping $dr -- flagged as no auto-gen" + else + echo "... processing \"$dr\"" + macrodirs=`sed -n -e 's,AM_ACLOCAL_INCLUDE(\(.*\)),\1,gp' < $coin` + ( + cd $dr + aclocalinclude="$ACLOCAL_FLAGS" + for k in $macrodirs; do + if test -d $k; then + aclocalinclude="$aclocalinclude -I $k" + fi + done + + MACRO_FILES="admin/acinclude.m4.in admin/libtool.m4.in" + + cat $MACRO_FILES > acinclude.m4 + + if test "$USE_BUNDLED_LIBTOOL" -eq 0; then + echo "... Using system libtool" + echo "... Re-run with --bundled-libtool to use" + echo "... the libtool shipped with the KVIrc svn" + RUN_TOOL libtoolize --copy --force + else + echo "... Using bundled libtool" + rm -f admin/ltmain.sh + rm -f admin/config.guess + rm -f admin/config.sub + cp admin/libtool/ltmain.sh admin/ltmain.sh + cp admin/libtool/config.guess admin/config.guess + cp admin/libtool/config.sub admin/config.sub + fi + + RUN_TOOL aclocal $aclocalinclude + if grep "^AM_CONFIG_HEADER" $coin > /dev/null; then + RUN_TOOL autoheader + fi + RUN_TOOL automake --add-missing --force-missing --copy $am_opt + RUN_TOOL autoconf + touch stamp-h.in + ) + fi +done + +echo "###" +echo "### Done. The next step is ./configure --help" +echo "### Take a look at the options (eventually read the INSTALL file)" +echo "### and run ./configure " +echo "###" + +# +############################################################################### diff --git a/configure.in b/configure.in new file mode 100755 index 0000000..822dfa1 --- /dev/null +++ b/configure.in @@ -0,0 +1,270 @@ +#------------------------------------------------------------------ +# configure.in for the KVIrc IRC client +# Szymon Stefanek (07-04-2000) +#------------------------------------------------------------------ + +AC_INIT(README) + +AC_SS_HEADER([Trying to find out where I am]) + +AC_CONFIG_AUX_DIR(admin) + +AC_CANONICAL_SYSTEM + +AC_SS_HEADER([Initializing automake]) + +AC_PREREQ(2.52) + +AM_INIT_AUTOMAKE(kvirc,3.4.0) + +AM_MAINTAINER_MODE + +AC_PREFIX_DEFAULT(/usr/local) +AM_CONFIG_HEADER(src/config.h) + +#------------------------------------------------------------------ +# HERE starts your real configure script +#------------------------------------------------------------------ + +AC_SS_INIT_VARIABLES + +AC_SS_HEADER([Checking the compilation mode]) + +AC_SS_CXXFLAGS + +AC_SS_HEADER([Checking the C++ environment]) + +AC_PROG_CC +AC_AIX +AC_MINIX +AC_EXEEXT +AC_LANG_CPLUSPLUS +AC_PROG_CXX + +AC_SS_HEADER([Initializing libtool]) + +AM_DISABLE_STATIC +AC_LIBTOOL_DLOPEN +KVIRC_PROG_LIBTOOL + +AC_SS_HEADER([Checking system properties]) + +AC_SS_HEADER_CHECKS +AC_SS_FUNCTION_CHECKS + +AC_SS_CHECK_IFADDR_STUFF +AC_SS_CHECK_DYNAMIC_LABELS +AC_SS_CHECK_BIG_ENDIAN +AC_SS_MISC_OPTIONS + +AC_CHECK_SIZEOF(short int) +AC_CHECK_SIZEOF(unsigned short int) +AC_CHECK_SIZEOF(int) +AC_CHECK_SIZEOF(unsigned int) +AC_CHECK_SIZEOF(long int) +AC_CHECK_SIZEOF(unsigned long int) +AC_CHECK_SIZEOF(long long int) +AC_CHECK_SIZEOF(unsigned long long int) +AC_CHECK_SIZEOF(void *) + +#AC_SS_CHECK_KVISOCKLEN_T +#AC_SS_CHECK_BOOL +#AC_SS_LIBRARY_CHECKS +#AC_SS_FIND_JPEG + +AC_SS_HEADER([Looking for required libraries]) + +AC_SS_CHECK_DL +AC_SS_CHECK_THREAD_STUFF + +AC_SS_HEADER([Looking for X]) + +AC_SS_FIND_X +AC_SS_CHECK_XSS +AC_SS_HEADER([Looking for Qt]) + +SS_QT3_MAJOR_VERSION_REQUIRED="3" +SS_QT3_MINOR_VERSION_REQUIRED="0" +SS_QT3_PATCH_LEVEL_REQUIRED="0" +SS_QT3_GENERAL_FILE_TO_SEARCH="include/qinputdialog.h" +SS_QT3_INCLUDE_FILE_TO_SEARCH="qiconview.h" + +SS_QT4_MAJOR_VERSION_REQUIRED="4" +SS_QT4_MINOR_VERSION_REQUIRED="0" +SS_QT4_PATCH_LEVEL_REQUIRED="0" +SS_QT4_GENERAL_FILE_TO_SEARCH="include/QtCore/QtPlugin" +SS_QT4_INCLUDE_FILE_TO_SEARCH="QtCore/QtPlugin" + + +AC_SS_FIND_QT + +AC_SS_HEADER([Checking KDE]) + +SS_KDE_GENERAL_FILE_TO_SEARCH="include/kwin.h" +SS_KDE_INCLUDE_FILE_TO_SEARCH="kwin.h" + +AC_SS_FIND_KDE + +AC_SS_HEADER([Checking additional compilation options]) +AC_SS_CHECK_OPENSSL +AC_SS_CHECK_ESD +AC_SS_CHECK_ARTS +AC_SS_CHECK_ZLIB +AC_SS_CHECK_AUDIOFILE +AC_SS_CHECK_OTHER_LIBS +AC_SS_CHECK_PERL +AC_SS_HEADER([Working out the final configuration]) + +AC_SS_FINAL_CONFIG + +AC_SS_HEADER([Creating Makefiles]) + +AC_OUTPUT( \ + Makefile \ + admin/Makefile \ + admin/libtool/Makefile \ + data/Makefile \ + data/applnk/Makefile \ + data/config/Makefile \ + data/defscript/Makefile \ + data/deftheme/Makefile \ + data/deftheme/silverirc/Makefile \ + data/doctemplates/Makefile \ + data/helppics/Makefile \ + data/icons/Makefile \ + data/icons/16x16/Makefile \ + data/icons/32x32/Makefile \ + data/icons/48x48/Makefile \ + data/icons/64x64/Makefile \ + data/icons/128x128/Makefile \ + data/icons/scalable/Makefile \ + data/man/Makefile \ + data/mimelnk/Makefile \ + data/msgcolors/Makefile \ + data/pics/Makefile \ + data/pics/coresmall/Makefile \ + data/protocols/Makefile \ + data/resources/Makefile \ + data/resources_mac/Makefile \ + doc/Makefile \ + doc/scriptexamples/Makefile \ + doc/scriptexamples/antiidle/Makefile \ + doc/scriptexamples/minesweeper/Makefile \ + doc/scriptexamples/mp3share/Makefile \ + doc/scriptexamples/playing/Makefile \ + doc/scriptexamples/runmenu/Makefile \ + doc/scriptexamples/simplehttp/Makefile \ + doc/scriptexamples/tutorial/Makefile \ + po/Makefile \ + po/kvirc/Makefile \ + po/modules/Makefile \ + po/modules/about/Makefile \ + po/modules/dcc/Makefile \ + po/modules/editor/Makefile \ + po/modules/filetransferwindow/Makefile \ + po/modules/logview/Makefile \ + po/modules/mediaplayer/Makefile \ + po/modules/notifier/Makefile \ + po/modules/options/Makefile \ + po/modules/perl/Makefile \ + po/modules/perlcore/Makefile \ + po/modules/sharedfileswindow/Makefile \ + po/modules/torrent/Makefile \ + po/modules/theme/Makefile \ + scripts/Makefile \ + scripts/browser/Makefile \ + scripts/config/Makefile \ + scripts/config/kvirc-config \ + scripts/helpsearch/Makefile \ + src/Makefile \ + src/kvilib/Makefile \ + src/kvilib/build/Makefile \ + src/kvilib/config/Makefile \ + src/kvilib/core/Makefile \ + src/kvilib/ext/Makefile \ + src/kvilib/file/Makefile \ + src/kvilib/include/Makefile \ + src/kvilib/irc/Makefile \ + src/kvilib/net/Makefile \ + src/kvilib/system/Makefile \ + src/kvilib/tal/Makefile \ + src/kvirc/Makefile \ + src/kvirc/build/Makefile \ + src/kvirc/include/Makefile \ + src/kvirc/kernel/Makefile \ + src/kvirc/kvs/Makefile \ + src/kvirc/module/Makefile \ + src/kvirc/sparser/Makefile \ + src/kvirc/ui/Makefile \ + src/modules/Makefile \ + src/modules/about/Makefile \ + src/modules/action/Makefile \ + src/modules/actioneditor/Makefile \ + src/modules/addon/Makefile \ + src/modules/addon/pics/Makefile \ + src/modules/aliaseditor/Makefile \ + src/modules/avatar/Makefile \ + src/modules/chan/Makefile \ + src/modules/channelsjoin/Makefile \ + src/modules/clock/Makefile \ + src/modules/codetester/Makefile \ + src/modules/config/Makefile \ + src/modules/context/Makefile \ + src/modules/dialog/Makefile \ + src/modules/dcc/Makefile \ + src/modules/dockwidget/Makefile \ + src/modules/editor/Makefile \ + src/modules/eventeditor/Makefile \ + src/modules/file/Makefile \ + src/modules/filetransferwindow/Makefile \ + src/modules/filetransferwindow/caps/Makefile \ + src/modules/help/Makefile \ + src/modules/http/Makefile \ + src/modules/ident/Makefile \ + src/modules/iograph/Makefile \ + src/modules/lamerizer/Makefile \ + src/modules/links/Makefile \ + src/modules/list/Makefile \ + src/modules/log/Makefile \ + src/modules/logview/Makefile \ + src/modules/logview/caps/Makefile \ + src/modules/mask/Makefile \ + src/modules/math/Makefile \ + src/modules/mediaplayer/Makefile \ + src/modules/mircimport/Makefile \ + src/modules/mircimport/caps/Makefile \ + src/modules/mircimport/pics/Makefile \ + src/modules/my/Makefile \ + src/modules/notifier/Makefile \ + src/modules/notifier/pics/Makefile \ + src/modules/objects/Makefile \ + src/modules/options/Makefile \ + src/modules/perl/Makefile \ + src/modules/perlcore/Makefile \ + src/modules/popupeditor/Makefile \ + src/modules/raweditor/Makefile \ + src/modules/regchan/Makefile \ + src/modules/reguser/Makefile \ + src/modules/rijndael/Makefile \ + src/modules/rijndael/caps/Makefile \ + src/modules/setup/Makefile \ + src/modules/sharedfile/Makefile \ + src/modules/sharedfileswindow/Makefile \ + src/modules/sharedfileswindow/caps/Makefile \ + src/modules/snd/Makefile \ + src/modules/socketspy/Makefile \ + src/modules/spaste/Makefile \ + src/modules/str/Makefile \ + src/modules/system/Makefile \ + src/modules/term/Makefile \ + src/modules/texticons/Makefile \ + src/modules/theme/Makefile \ + src/modules/tip/Makefile \ + src/modules/tmphighlight/Makefile \ + src/modules/toolbar/Makefile \ + src/modules/toolbareditor/Makefile \ + src/modules/torrent/Makefile \ + src/modules/url/Makefile \ + src/modules/url/caps/Makefile \ + src/modules/window/Makefile \ +) diff --git a/data/Makefile.am b/data/Makefile.am new file mode 100644 index 0000000..1d329f1 --- /dev/null +++ b/data/Makefile.am @@ -0,0 +1,6 @@ +############################################################################### +# KVirc IRC client Makefile - 16.12.98 Szymon Stefanek +############################################################################### + +SUBDIRS = applnk config defscript deftheme doctemplates \ +helppics icons man mimelnk msgcolors pics protocols resources resources_mac diff --git a/data/applnk/Makefile.am b/data/applnk/Makefile.am new file mode 100644 index 0000000..cf7c6f3 --- /dev/null +++ b/data/applnk/Makefile.am @@ -0,0 +1,5 @@ +tmpdir = $(applnkdir) + +tmp_DATA = kvirc.desktop + +EXTRA_DIST = $(tmp_DATA) diff --git a/data/applnk/kvirc.desktop b/data/applnk/kvirc.desktop new file mode 100644 index 0000000..0b53189 --- /dev/null +++ b/data/applnk/kvirc.desktop @@ -0,0 +1,18 @@ +[Desktop Entry] +BinaryPattern= +GenericName=IRC Client +Comment=Connect to Internet Relay Chat +MimeType=application/x-kva;application/x-kvt +Exec=kvirc -m %u +Icon=kvirc +MapNotify=true +Name=KVIrc 3 +SwallowExec= +SwallowTitle= +Terminal=false +TerminalOptions= +Path= +Type=Application +X-KDE-SubstituteUID=false +X-KDE-Username= +X-KDE-StartupNotify=true diff --git a/data/config/Makefile.am b/data/config/Makefile.am new file mode 100644 index 0000000..4b41fbd --- /dev/null +++ b/data/config/Makefile.am @@ -0,0 +1,5 @@ +tmpdir = $(configdir) + +tmp_DATA = serverdb.kvc texticons.kvc + +EXTRA_DIST = $(tmp_DATA) diff --git a/data/config/serverdb.kvc b/data/config/serverdb.kvc new file mode 100644 index 0000000..f1c6266 --- /dev/null +++ b/data/config/serverdb.kvc @@ -0,0 +1,1611 @@ +# KVIrc configuration file + +[Accessirc] +0_Hostname=irc.accessirc.net +0_Description=Accessirc:%20Random%20server +NServers=1 +[Acestar] +0_Hostname=irc.acestar.org +0_Description=Acestar:%20Random%20server +NServers=1 +[Action-IRC] +0_Hostname=irc.action-irc.net +0_Description=Action-IRC:%20Random%20server +NServers=1 +[AlternativeNet] +0_Hostname=irc.altnet.org +0_Description=Alternativenet:%20Random%20server +NServers=1 +[Afternet] +0_Hostname=irc.afternet.org +0_Description=Afternet:%20Random%20server +NServers=1 +[Anothernet] +0_Hostname=irc.another.net +0_Description=AnotherNet:%20Random%20server +NServers=1 +[ArabChat] +0_Hostname=irc.arabchat.org +0_Description=ArabChat:%20Random%20server +NServers=1 +[AsiaTalk] +0_Hostname=irc.asiatalk.org +0_Description=AsiaTalk:%20Random%20server +NServers=1 +[AstroLink] +0_Hostname=irc.astrolink.org +0_Description=AstroLink:%20Random%20server +NServers=1 +[Asylumnet] +0_Hostname=irc.asylum-net.org +0_Description=Asylumnet:%20Random%20server +NServers=1 +[Austnet] +0_Hostname=au.austnet.org +0_Description=Austnet:%20Random%20AU%20server +1_Hostname=nz.austnet.org +1_Description=Austnet:%20Random%20NZ%20server +2_Hostname=sg.austnet.org +2_Description=Austnet:%20Random%20SG%20server +3_Hostname=us.austnet.org +3_Description=Austnet:%20Random%20US%20server +NServers=4 +[AwesomeChat] +0_Hostname=irc.awesomechat.net +0_Description=AwesomeChat:%20Random%20server +NServers=1 +[Axenet] +0_Hostname=irc.axenet.org +0_Description=Axenet:%20Random%20server +NServers=1 +[Azzurra] +0_Hostname=irc.azzurra.org +0_Description=Main%20Random%20Server +1_Hostname=atlantis.azzurra.org +1_Description=HUB%20Routing%20Server +2_Hostname=twilight.azzurra.org +2_Description=HUB%20Routing%20Server +3_Hostname=vogon.azzurra.org +3_Description=HUB%20Routing%20Server +4_Hostname=b-network.azzurra.org +4_Description=B-Network%20Leaf%20Server +5_Hostname=caltanet.azzurra.org +5_Description=Caltanet%20Leaf%20Server +6_Hostname=cheapnet.azzurra.org +6_Description=Cheapnet%20Leaf%20Server +7_Hostname=libero.azzurra.org +7_Description=Libero%20Leaf%20Server +8_Hostname=oltrelinux.azzurra.org +8_Description=Oltrelinux%20Leaf%20Server +9_Hostname=nexlab.azzurra.org +9_Description=Nexlab%20Leaf%20Server +10_Hostname=penguin.azzurra.org +10_Description=Penguin%20Leaf%20Server +11_Hostname=radiomarte.azzurra.org +11_Description=RadioMarte%20Leaf%20Server +12_Hostname=sashimi.azzurra.org +12_Description=Sashimi%20Leaf%20Server +13_Hostname=sbrize.azzurra.org +13_Description=Sbrize%20Leaf%20Server +14_Hostname=tin.azzurra.org +14_Description=Tin%20Leaf%20Server +15_Hostname=unina.azzurra.org +15_Description=Unina%20Leaf%20Server +16_Hostname=wmgitalia.azzurra.org +16_Description=WMG%20Leaf%20Server +17_Hostname=fastweb.azzurra.org +17_Description=Fastweb%20Routing%20Server +18_Hostname=gamma.azzurra.org +18_Description=Gamma%20Fastweb%20Server +19_Hostname=orion.azzurra.org +19_Description=Orion%20Fastweb%20Server +20_Hostname=ssitalia.azzurra.org +20_Description=SSItalia%20Fastweb%20Server +21_Hostname=stealth.azzurra.org +21_Description=Stealth%20Fastweb%20Server +22_Hostname=irc6.azzurra.org +22_Description=IPv6%20Routing%20Server +23_Hostname=itgate.azzurra.org +23_Description=ITgate%20IPv6%20Server +24_Hostname=ngnet.azzurra.org +24_Description=Ngnet%20IPv6%20Server +NServers=25 +Description=Italian%20Main%20Network +[Beirut] +0_Hostname=irc.beirut.com +0_Description=Random%20server +1_Hostname=us.beirut.com +1_Description=Random%20US%20server +2_Hostname=eu.beirut.com +2_Description=Random%20EU%20server +3_Hostname=downtown.beirut.com +3_Description=Fullerton +4_Hostname=verdun.beirut.com +4_Description=Chicago +5_Hostname=hamra.beirut.com +5_Description=New%20York +6_Hostname=achrafieh.beirut.com +6_Description=Hamburg +7_Hostname=port.beirut.com +7_Description=London +8_Hostname=sinelfil.beirut.com +8_Description=Frankfurt +9_Hostname=irc.dikt.no +9_Description=Oslo +NServers=10 +[Beyondirc] +0_Hostname=irc.beyondirc.net +0_Description=BeyondIRC:%20Random%20server +NServers=1 +[Bitlbee] +0_Hostname=im.bitlbee.org +0_Description=InterLAB%20BV,%20Netherlands +1_Hostname=im.uk.bitlbee.org +1_Description=SSInternet,%20UK +2_Hostname=im.starkast.net +2_Description=TeleFortress,%20Sweden +3_Hostname=bitlbee.hensema.net +3_Description=HostingXS,%20Amsterdam +4_Hostname=im.okkernoot.net +4_Description=Almere,%20Netherlands +5_Hostname=im.fr.bitlbee.org +5_Description=ProXad,%20France +6_Hostname=im.sixxs.net +6_Description=SixXS,%20Netherlands +7_Hostname=bitlbee.extreme-players.de +7_Description=Global%20Access,%20Germany +8_Hostname=irc2im.picasa.hu +8_Description=Hungary,%20Budapest +9_Hostname=bitlbee.salooo.org +9_Description=Berlin,%20Germany +NServers=10 +Description=IRC%20%3C--%3E%20MSN%20gateway +[Blabbernet] +0_Hostname=irc.blabber.net +0_Description=Blabbernet:%20Random%20server +NServers=1 +[Blitzed] +0_Hostname=irc.blitzed.org +0_Description=Blitzed:%20Random%20server +NServers=1 +[Brasilchat] +0_Hostname=irc.brasilchat.org +0_Description=Brasilchat:%20Random%20server +NServers=1 +[Brasirc] +0_Hostname=irc.brasirc.net +0_Description=Brasirc:%20Random%20server +1_Hostname=irc.libnet.com.br +1_Description=Brasirc:%20BR,%20PA,%20Belem +2_Hostname=irc.matrix.net.br +2_Description=Brasirc:%20BR,%20SC,%20Florianopolis +NServers=3 +[Brasnet] +0_Hostname=irc.brasnet.org +0_Description=Brasnet:%20Random%20server +1_Hostname=eu.brasnet.org +1_Description=Brasnet:%20Random%20European%20server +2_Hostname=us.brasnet.org +2_Description=Brasnet:%20Random%20US%20server +NServers=3 +[Bulgaria] +0_Hostname=irc.bulgaria.org +0_Description=Bulgaria:%20Random%20server +NServers=1 +[CCnet] +0_Hostname=irc.cchat.net +0_Description=CCnet:%20Random%20server +1_Hostname=irc2.cchat.net +1_Description=CCnet:%20US,%20TX,%20Dallas +NServers=2 +[Chat-Net] +0_Hostname=irc.chat-net.org +0_Description=Chat-Net:%20Random%20server +NServers=1 +[ChatArea] +0_Hostname=irc.chatarea.net +0_Description=ChatArea:%20Random%20server +NServers=1 +[Chatcafe] +0_Hostname=irc.chatcafe.net +0_Description=Chatcafe:%20Random%20server +NServers=1 +[ChatCentral2] +0_Hostname=irc.cc2.org +0_Description=ChatCentral2:%20Random%20server +NServers=1 +[ChatCircuit] +0_Hostname=irc.chatcircuit.com +0_Port=6668 +0_Description=ChatCircuit:%20Random%20server +NServers=1 +[ChatFactory] +0_Hostname=irc.chatfactory.net +0_Description=ChatFactory:%20Random%20server +1_Hostname=power.chatfactory.net +1_Description=ChatFactory:%20Brussels,%20EU +NServers=2 +[Chatlink] +0_Hostname=irc.chatlink.org +0_Description=Chatlink:%20Random%20server +NServers=1 +[Chatnet] +0_Hostname=au.chatnet.org +0_Description=Chatnet:%20Random%20AU%20server +1_Hostname=eu.chatnet.org +1_Description=Chatnet:%20Random%20EU%20server +2_Hostname=us.chatnet.org +2_Description=Chatnet:%20Random%20US%20server +NServers=3 +[ChatPR] +0_Hostname=irc.chatpr.org +0_Description=ChatPR:%20Random%20server +NServers=1 +[Chatpinoy] +0_Hostname=irc.chatpinoy.com +0_Description=Chatpinoy:%20Random%20server +NServers=1 +[Chatroom] +0_Hostname=irc.chatroom.org +0_Description=Chatroom:%20Random%20server +NServers=1 +[Chatsolutions] +0_Hostname=irc.chatsolutions.org +0_Description=Chatsolutions:%20Random%20server +NServers=1 +[Chatster] +0_Hostname=irc.chatster.org +0_Description=Chatster:%20Random%20server +NServers=1 +[ChatX] +0_Hostname=irc.chatx.net +0_Description=ChatX:%20Random%20server +NServers=1 +[CNN] +0_Hostname=chat.cnn.com +0_Description=CNN:%20CNN%20News%20discussions +NServers=1 +[Coolchat] +0_Hostname=irc.coolchat.net +0_Description=Coolchat:%20Random%20server +NServers=1 +[Criten] +0_Hostname=irc.criten.net +0_Description=Criten:%20Random%20server +NServers=1 +[Cyberchat] +0_Hostname=irc.cyberchat.org +0_Description=Cyberchat:%20Random%20server +NServers=1 +[CyGanet] +0_Hostname=irc.cyga.net +0_Description=CyGanet:%20Random%20server +NServers=1 +[DALnet] +0_Hostname=irc.dal.net +0_Description=Main%20Random%20Server +1_Hostname=as.dal.net +1_Description=Asia%20Random%20Server +2_Hostname=hotspeed.sg.as.dal.net +2_Description=Singapore%20Server +3_Hostname=mesra.kl.my.dal.net +3_Description=Malaysia%20Server +4_Hostname=ca.dal.net +4_Description=Canada%20Random%20Server +5_Hostname=maple.ix.ca.dal.net +5_Description=Maple%20Server +6_Hostname=toronto.on.ca.dal.net +6_Description=Toronto%20Server +7_Hostname=eu.dal.net +7_Description=Europe%20Random%20Server +8_Hostname=arcor.de.eu.dal.net +8_Description=Germany%20Server +9_Hostname=brain.hub.eu.dal.net +9_Description=HUB%20Server +10_Hostname=gaston.se.eu.dal.net +10_Description=Sweden%20Server +11_Hostname=genesis-r.uk.eu.dal.net +11_Description=UK%20Server +12_Hostname=matrix.de.eu.dal.net +12_Description=Germany%20Server +13_Hostname=mozilla.se.eu.dal.net +13_Description=Sweden%20Server +14_Hostname=powertech.no.eu.dal.net +14_Description=Norway%20Server +15_Hostname=waffle.ix.eu.dal.net +15_Description=Waffle%20Server +16_Hostname=us.dal.net +16_Description=USA%20Random%20Server +17_Hostname=aeon.nj.us.dal.net +17_Description=USA%20Server +18_Hostname=broadway.ny.us.dal.net +18_Description=USA%20Server +19_Hostname=hollywood.ix.us.dal.net +19_Description=USA%20Server +20_Hostname=jade.va.us.dal.net +20_Description=USA%20Server +21_Hostname=jingo.ix.us.dal.net +21_Description=USA%20Server +22_Hostname=loyalty.ix.us.dal.net +22_Description=USA%20Server +23_Hostname=masters.ix.us.dal.net +23_Description=USA%20Server +24_Hostname=novel.fl.us.dal.net +24_Description=USA%20Server +25_Hostname=punch.va.us.dal.net +25_Description=USA%20Server +26_Hostname=rangers.ix.us.dal.net +26_Description=USA%20Server +27_Hostname=redemption.ix.us.dal.net +27_Description=USA%20Server +28_Hostname=riga-r.ca.us.dal.net +28_Description=USA%20Server +29_Hostname=rumble.fl.us.dal.net +29_Description=USA%20Server +30_Hostname=serenity.ix.us.dal.net +30_Description=USA%20Server +31_Hostname=soho.ix.us.dal.net +31_Description=USA%20Server +32_Hostname=swiftco.wa.us.dal.net +32_Description=USA%20Server +NServers=33 +[Darkfire] +0_Hostname=irc.darkfire.net +0_Description=Darkfire:%20Random%20server +NServers=1 +[Darkfyre] +0_Hostname=irc.darkfyre.net +0_Description=Darkfyre:%20Random%20server +NServers=1 +[DarkMyst] +0_Hostname=irc.darkmyst.org +0_Description=DarkMyst:%20Random%20server +NServers=1 +[DarkServ] +0_Hostname=irc.darkserv.net +0_Description=DarkServ:%20Random%20server +NServers=1 +[Darktree] +0_Hostname=irc.darktree.net +0_Description=Darktree:%20Random%20server +NServers=1 +[Deepspace] +0_Hostname=irc.deepspace.org +0_Description=Deepspace:%20Disability%20network +NServers=1 +[Different] +0_Hostname=irc.different.net +0_Description=Different:%20Random%20server +NServers=1 +[Digarix] +0_Hostname=irc.digarix.net +0_Description=Digarix:%20Random%20server +NServers=1 +[Digatech] +0_Hostname=irc.digatech.net +0_Description=Digatech:%20Random%20server +NServers=1 +[Digitalirc] +0_Hostname=irc.digitalirc.net +0_Description=Digitalirc:%20Random%20server +NServers=1 +[Discussioni] +0_Hostname=irc.discussioni.org +0_Description=Discussioni%20random%20server +1_Hostname=ipv6.discussioni.org +1_Description=Experimental%20IPv6%20Server +1_Port=5776 +2_Hostname=Bolzano1.IT.Discussioni.Org +2_Description=Blozano1 +3_Hostname=Bolzano2.IT.Discussioni.Org +3_Description=Bolzano2 +4_Hostname=Chieti.IT.Discussioni.Org +4_Description=SSL%20ready%20server +4_Port=9999 +4_SSL=true +5_Hostname=Milano.IT.Discussioni.Org +5_Description=Milano +5_Port=6669 +6_Hostname=Roma.IT.Discussioni.Org +6_Description=Roma +6_Port=6669 +7_Hostname=Roma2.IT.Discussioni.Org +7_Description=Roma2 +7_Port=6668 +8_Hostname=Torino.IT.Discussioni.Org +8_Description=Torino +8_Port=6669 +NServers=9 +Description=Italian%20Network +[Dobbernet] +0_Hostname=irc.dobber.net +0_Description=Dobbernet:%20Random%20server +NServers=1 +[DogmNet] +0_Hostname=irc.dogm.net +0_Description=Main%20network%20server +1_Hostname=irc.rovno.ua +1_Description=Main%20UA%20server +2_Hostname=irc.chat.uz +2_Description=Main%20UZ%20server +NServers=3 +Description=Russian%20Network +Encoding=CP-1251 +[DragonLynk] +0_Hostname=irc.dragonlynk.net +0_Description=DragonLynk:%20Random%20server +NServers=1 +[Dreamcast] +0_Hostname=irc0.dreamcast.com +0_Description=Dreamcast:%20Random%20server +NServers=1 +[Dreamnet] +0_Hostname=irc.dreamnet.org +0_Description=Dreamnet:%20Random%20server +NServers=1 +[Dwarfstar] +0_Hostname=irc.dwarfstar.net +0_Description=DwarfStar:%20Random%20server +NServers=1 +[Dynastynet] +0_Hostname=irc.dynastynet.net +0_Description=Dynastynet:%20Random%20server +NServers=1 +[EFnet] +0_Hostname=irc.efnet.org +0_Description=Main%20Random%20Server +1_Hostname=irc.efnet.ca +1_Description=Canada%20Random%20Server +2_Hostname=irc.arcti.ca +2_Description=Calgary%20Server +3_Hostname=efnet.teleglobe.net +3_Description=Montreal%20Server +4_Hostname=irc.dks.ca +4_Description=Toronto%20Server +5_Hostname=ircd.arcti.ca +5_Description=Calgary%20HUB%20Server +6_Hostname=irc.igs.ca +6_Description=Toronto%20Server +7_Hostname=irc.efnet.eu +7_Description=Europe%20Random%20Server +8_Hostname=irc.dkom.at +8_Description=Vienna%20Server +9_Hostname=irc.efnet.pl +9_Description=Warsaw%20Server +10_Hostname=efnet.ipv6.xs4all.nl +10_Description=Amsterdam%20IPv6%20Server +11_Hostname=irc.du.se +11_Description=Borlange%20Server +12_Hostname=efnet.cs.hut.fi +12_Description=Helsinki%20Server +13_Hostname=irc.inter.net.il +13_Description=Tel%20Aviv%20Server +14_Hostname=irc.inet.tele.dk +14_Description=Aarhus%20Server +15_Hostname=irc.ipv6.inter.net.il +15_Description=Tel%20Aviv%20IPv6%20Server +16_Hostname=irc.homelien.no +16_Description=Oslo%20IPv6%20Server +17_Hostname=ircd.efnet.no +17_Description=Oslo%20HUB%20Server +18_Hostname=efnet.xs4all.nl +18_Description=Amsterdam%20Server +19_Hostname=hub.il +19_Description=EFnet%20Israel%20HUB%20Server +20_Hostname=irc.efnet.ru +20_Description=Moscow%20Server +21_Hostname=irc.efnet.no +21_Description=Oslo%20Server +22_Hostname=irc.daxnet.no +22_Description=Oslo%20Server +23_Hostname=irc.efnet.fr +23_Description=Paris%20Server +24_Hostname=hub.se +24_Description=EFnet%20Sweden%20HUB%20Server +25_Hostname=hub.efnet.nl +25_Description=EFnet%20Netherlands%20HUB%20Server +26_Hostname=irc.ac.za +26_Description=South%20Africa%20IPv6%Server +27_Hostname=efnet.port80.se +27_Description=Stockholm%20IPv6%20Server +28_Hostname=irc.dataphone.se +28_Description=Stockholm%20Server +29_Hostname=irc.efnet.nl +29_Description=Ede%20Server +30_Hostname=efnet.demon.co.uk +30_Description=London%20Server +31_Hostname=hub.uk +31_Description=EFnet%20UK%20HUB%20Server +32_Hostname=hub.dk +32_Description=EFnet%20Denmark%20HUB%20Server +33_Hostname=irc.pte.hu +33_Description=Pecs%20Server +34_Hostname=irc.efnet.us +34_Description=USA%20Random%20Server +35_Hostname=irc.colosolutions.net +35_Description=Orlando%20Server +36_Hostname=irc.umich.edu +36_Description=Ann%20Arbor%20Server +37_Hostname=irc.desync.com +37_Description=Tampa%20Server +38_Hostname=irc.easynews.com +38_Description=Phoenix%20Server +39_Hostname=chat.efnet.org +39_Description=Chicago%20Server +40_Hostname=irc.servercentral.net +40_Description=Chicago%20Server +41_Hostname=ircd.he.net +41_Description=Fremont%20HUB%20Server +42_Hostname=irc.umn.edu +42_Description=Minneapolis%20Server +43_Hostname=irc.mzima.net +43_Description=Los%20Angeles%20Server +44_Hostname=irc.eversible.com +44_Description=Miami%20Server +45_Hostname=ircd.desync.com +45_Description=Tampa%20HUB%20Server +46_Hostname=irc.SHOUTcast.com +46_Description=Dulles%20Server +47_Hostname=irc.vel.net +47_Description=Los%20Angeles%20Server +48_Hostname=irc.ptptech.com +48_Description=Ashburn%20IPv6%20Server +49_Hostname=hub.efnet.us +49_Description=USA%20HUB%20Server +50_Hostname=irc2.choopa.net +50_Description=New%20York%20Server +51_Hostname=ircd.llnw.net +51_Description=Phoenix%20HUB%20Server +52_Hostname=irc.blackened.com +52_Description=Phoenix%20Server +53_Hostname=irc.choopa.net +53_Description=New%20York%20IPv6%20Server +54_Hostname=ircd.nac.net +54_Description=New%20York%20HUB%20Server +55_Hostname=irc.nac.net +55_Description=New%20York%20Server +56_Hostname=ircd.choopa.net +56_Description=New%20York%20HUB%20Server +57_Hostname=irc.blessed.net +57_Description=Maitland%20Server +58_Hostname=irc.prison.net +58_Description=San%20Francisco%20Server +59_Hostname=irc.wh.verio.net +59_Description=Reston%20Server +60_Hostname=irc.mindspring.com +60_Description=Atlanta%20Server +61_Hostname=irc.he.net +61_Description=Fremont%20Server +NServers=62 +[EgyptianIRC] +0_Hostname=irc.egyptianirc.net +0_Description=EgyptianIRC:%20Random%20server +NServers=1 +[Eleethal] +0_Hostname=irc.eleethal.com +0_Description=Eleethal:%20Random%20server +NServers=1 +[EnterTheGame] +0_Hostname=irc.enterthegame.com +0_Description=EntertheGame:%20Random%20server +NServers=1 +[Escaped] +0_Hostname=irc.escaped.net +0_Description=Escaped:%20Random%20server +NServers=1 +[Esprit] +0_Hostname=irc.esprit.net +0_Description=Esprit:%20Random%20server +NServers=1 +[euIRC] +0_Hostname=irc.euirc.net +0_Description=euIRC:%20Random%20server +NServers=1 +[EuropNet] +0_Hostname=irc.europnet.org +0_Description=EuropNet round robin +1_Hostname=irc.free.fr +1_Description=Free irc server +2_Hostname=irc.librenet.net +2_Description=Librenet network server +3_Hostname=irc.global-irc.net +3_Description=Global-irc server +NServers=4 +Description=French%20Network +[ExodusIRC] +0_Hostname=irc.exodusirc.net +0_Description=ExodusIRC:%20Random%20server +NServers=1 +[FDFnet] +0_Hostname=irc.fdf.net +0_Description=FDFnet:%20Random%20server +NServers=1 +[FEFnet] +0_Hostname=irc.fef.net +0_Description=FEFnet:%20Random%20server +NServers=1 +[Forestnet] +0_Hostname=irc.forestnet.org +0_Description=Forestnet:%20Random%20server +NServers=1 +[FreedomChat] +0_Hostname=chat.freedomchat.net +0_Description=FreedomChat:%20Random%20server +NServers=1 +[Freenode] +0_Hostname=irc.freenode.org +0_Description=Main Freenode router +1_Hostname=chat.ap.freenode.net +1_Description=Main%20Asia-Pacific%20router +2_Hostname=tolkien.freenode.net +2_Description=Taoyuan,%20Taiwan +3_Hostname=chat.au.freenode.net +3_Description=Main%20Australia%20router +4_Hostname=asimov.freenode.net +4_Description=Brisbane,%20Australia +5_Hostname=chat.eu.freenode.net +5_Description=Main%20Europe%20router +6_Hostname=kornbluth.freenode.net +6_Description=Frankfurt,%20Germany +7_Hostname=orwell.freenode.net +7_Description=Helsinki,%20Finland +8_Hostname=sterling.freenode.net +8_Description=Hoofddorp,%20Netherland +9_Hostname=calvino.freenode.net +9_Description=Milano,%20Italy +10_Hostname=adams.freenode.net +10_Description=Oslo,%20Norway +11_Hostname=gibson.freenode.net +11_Description=Oslo,%20Norway +12_Hostname=leguin.freenode.net +12_Description=Umea,%20Sweden +13_Hostname=lem.freenode.net +13_Description=Moscow,%20Russia +14_Hostname=pratchett.freenode.net +14_Description=London,%20United%20Kingdom +15_Hostname=ipv6.chat.eu.freenode.net +15_Description=Main%20Europe%20IPv6%20router +16_Hostname=goethe.freenode.net +16_Description=Hoofddorp,%20Netherland +17_Hostname=calkins.freenode.net +17_Description=Milano,%20Italy +18_Hostname=crichton.freenode.net +18_Description=Oslo,%20Norway +19_Hostname=chat.us.freenode.net +19_Description=Main%20USA%20router +20_Hostname=einstein.freenode.net +20_Description=Corvallis,%20OR,%20USA +21_Hostname=niven.freenode.net +21_Description=Corvallis,%20OR,%20USA +22_Hostaname=zelazny.freenode.net +22_Description=Corvallis,%20OR,%20USA +23_Hostname=zahn.freenode.net +23_Description=Corvallis,%20OR,%20USA +24_Hostname=brown.freenode.net +24_Description=Madison,%20WI,%20USA +25_Hostname=anthony.freenode.net +25_Description=Irvine,%20CA,%20USA +NServers=26 +Description=The%20FOSS%20Network +[FunNet] +0_Hostname=irc.funnet.org +0_Description=FunNet:%20Random%20server +NServers=1 +[GalaxyNet] +0_Hostname=irc.galaxynet.org +0_Description=Galaxynet:%20Random%20server +1_Hostname=auckland.nz.galaxynet.org +1_Description=Galaxynet:%20AU,%20NZ,%20Auckland +2_Hostname=freei.us.galaxynet.org +2_Description=Galaxynet:%20US,%20WA,%20Seattle +3_Hostname=gymnet.us.galaxynet.org +3_Description=Galaxynet:%20US,%20FL,%20Florida +4_Hostname=online.be.galaxynet.org +4_Description=Galaxynet:%20EU,%20BE,%20Online +5_Hostname=vltmedia.se.galaxynet.org +5_Description=Galaxynet:%20EU,%20SE,%20Vltmedia +NServers=6 +[Gamesnet] +0_Hostname=east.gamesnet.net +0_Description=Gamesnet:%20Random%20east%20US%20server +1_Hostname=west.gamesnet.net +1_Description=Gamesnet:%20Random%20west%20US%20server +NServers=2 +[Gameznet] +0_Hostname=irc.gameznet.com +0_Description=Gameznet:%20Random%20server +NServers=1 +[GizNet] +0_Hostname=irc.giznet.com +0_Description=GizNet:%20Random%20server +NServers=1 +[Globalchat] +0_Hostname=irc.globalchat.org +0_Description=Globalchat:%20Random%20server +NServers=1 +[GRnet] +0_Hostname=srv.irc.gr +0_Description=Grnet:%20Random%20server +1_Hostname=gr.irc.gr +1_Description=Grnet:%20Random%20EU%20server +2_Hostname=us.irc.gr +2_Description=Grnet:%20Random%20US%20server +NServers=3 +[HabberNet] +0_Hostname=irc.habber.net +0_Description=HabberNet:%20Random%20server +NServers=1 +[HanIRC] +0_Hostname=irc.hanirc.org +0_Description=HanIRC:%20Random%20server +NServers=1 +[Hellenicnet] +0_Hostname=irc.mirc.gr +0_Description=Hellenicnet:%20Random%20server +NServers=1 +[Hybnet] +0_Hostname=irc.hybnet.net +0_Description=Hybnet:%20Random%20server +NServers=1 +[ICQnet] +0_Hostname=irc.icq.com +0_Description=ICQnet:%20Random%20server +NServers=1 +[Infatech] +0_Hostname=irc.infatech.net +0_Description=Infatech:%20Random%20server +NServers=1 +[Infinity] +0_Hostname=irc.infinity-irc.org +0_Description=Infinity:%20Random%20server +NServers=1 +[Infomatrix] +0_Hostname=irc.infomatrix.net +0_Description=Infomatrix:%20Random%20server +NServers=1 +[IRC.by] +0_Hostname=irc.by +0_Description=Random%20server +NServers=1 +Description=The%20Biggest%20Belarus%20Network +Encoding=CP-1251 +[IRC-Hispano] +0_Hostname=irc.irc-hispano.org +0_Description=IRC-Hispano:%20Random%20server +NServers=1 +Description=Spanish%20Network +[IRCGnet] +0_Hostname=irc.ircgnet.net +0_Description=IRCGNet:%20Main%20service +1_Hostname=irc.ircgnet.net +1_Description=IRCGNet:%20SSL%20service +1_Port=6697 +2_Hostname=ops.ircgnet.net +2_Description=IRCGnet:%20Alternate%20service +NServers=3 +[IRChat] +0_Hostname=irc.irchat.net +0_Description=IRChat:%20Random%20server +NServers=1 +[IRChat-br] +0_Hostname=irc.irchat.com.br +0_Description=IRChat-br:%20Random%20server +NServers=1 +[IRCItalia] +0_Hostname=cagliari.ircitalia.net +0_Description=IRCItalia%20network +1_Hostname=campania.italiachat.net +1_Description=ItaliaChat%20network +2_Hostname=cosenza.ircitalia.net +2_Description=IRCItalia%20network +3_Hostname=lazio.italiachat.net +3_Description=ItaliaChat%20network%20main%20server +4_Hostname=pagana.italiachat.net +4_Description=Pagana%20IPv6%20server%20(SSL%20ready) +4_Port=7000 +5_Hostname=palermo.ircitalia.net +5_Description=IRCItalia%20network +6_Hostname=roma.italiachat.net +6_Description=ItaliaChat%20network +7_Hostname=trapani.ircitalia.net +7_Description=IRCItalia%20network +NServers=8 +[IRCLand] +0_Hostname=irc.ircland.org +0_Description=IRCLand%20random%20server +1_Hostname=maverick.ircland.org +1_Description=maverick +2_Hostname=power.ircland.org +2_Description=power +3_Hostname=white.ircland.org +3_Description=white +NServers=4 +[IRCLink] +0_Hostname=alesund.no.eu.irclink.net +0_Description=IRCLink:%20EU,%20NO,%20Alesund +1_Hostname=frogn.no.eu.irclink.net +1_Description=IRCLink:%20EU,%20NO,%20Oslo +2_Hostname=rockhill.sc.us.irclink.net +2_Description=IRCLink:%20US,%20SC,%20Rock%20Hill +NServers=3 +[IRCnet] +0_Hostname=irc.ircnet.org +0_Description=Main%20Random%20Server +1_Hostname=eu.ircnet.org +1_Description=Europe%20Random%20Server +2_Hostname=ix.irc.at +2_Description=IX%20Server +3_Hostname=linz.irc.at +3_Description=Linz%20Server +4_Hostname=vienna.irc.at +4_Description=Vienna%20Server +5_Hostname=ircnet.realroot.be +5_Description=RealROOT%20Server +6_Hostname=irc.datacomm.ch +6_Description=Datacomm%20Server +7_Hostname=irc.osanet.cz +7_Description=OSANET%20Server +8_Hostname=irc.i.cz +8_Description=ICZ%20Server +9_Hostname=irc.felk.cvut.cz +9_Description=Prague%20Server +10_Hostname=irc.leo.org +10_Description=LEO%20Server +11_Hostname=irc.belwue.de +11_Description=BelWue%20Server +12_Hostname=irc.freenet.de +12_Description=Freenet%20Server +13_Hostname=uni-erlangen.de +13_Description=University%20Of%20Nurnberg%20Server +14_Hostname=uni-karlsruhe.de +14_Description=University%20Of%20Karlsruhe%20Server +15_Hostname=tu-ilmenau.de +15_Description=University%20Of%20Ilmenau%20Server +16_Hostname=fu-berlin.de +16_Description=University%20Of%20Berlin%20Server +17_Hostname=irc.estpak.ee +17_Description=Elion%20Server +18_Hostname=irc.datanet.ee +18_Description=Linxtelecom%20Server +19_Hostname=irc.starman.ee +19_Description=Starman%20Server +20_Hostname=irc.opoy.fi +20_Description=Oulu%20Telephone%20Server +21_Hostname=irc.cs.hut.fi +21_Description=University%20Of%20Helsinki%20Server +22_Hostname=irc.elisa.fi +22_Description=Elisa%20Oyj%20Server +23_Hostname=irc.utu.fi +23_Description=University%20Of%20Turku%20Server +24_Hostname=irc.song.fi +24_Description=TDC%20Song%20Server +25_Hostname=irc1.inet.fi +25_Description=iNET%20Server +26_Hostname=irc.oulu.fi +26_Description=University%20Of%20Olutensin%20Server +27_Hostname=irc.jyu.fi +27_Description=University%20Of%20Jyvaskyla%20Server +28_Hostname=hub.cc.tut.fi +28_Description=Tampere%20Server +29_Hostname=irc.lut.fi +29_Description=University%20Of%20Ranta%20Server +30_Hostname=irc.cc.tut.fi +30_Description=Tampere%20Server +31_Hostname=irc.oamk.fi +31_Description=OuluNet%20Server +32_Hostname=ircnet.club-internet.fr +32_Description=T-Online%20France%20Server +33_Hostname=ircnet.nerim.fr +33_Description=Nerim%20Server +34_Hostname=elte.irc.hu +34_Description=University%20Of%20Budapest +35_Hostname=atw.irc.hu +35_Description=ATW%20Server +36_Hostname=extra.irc.hu +36_Description=Extra%20Server +37_Hostname=ssl.atw.irc.hu +37_Description=ATW%20Server +38_Hostname=hub.irc.hu +38_Description=Godollo%20HUB%20Server +39_Hostname=ircnet.netvision.net.il +39_Description=NetVision%20Server +40_Hostname=irc.simnet.is +40_Description=Iceland%20Telecom%20Server +41_Hostname=irc.hi.is +41_Description=University%20Of%20Iceland%20Server +42_Hostname=ircd.simnet.is +42_Description=Iceland%20Telecom%20HUB%20Server +43_Hostname=irc1.tiscali.it +43_Description=Tiscali%20Server +44_Hostname=javairc.tiscali.it +44_Description=Tiscali%20Server +45_Hostname=javairc2.tiscali.it +45_Description=Tiscali%20Server +46_Hostname=irc.flashnet.it +46_Description=Cybernet%20Italia%20Server +47_Hostname=irc.eutelia.it +47_Description=Eutelia%20Server +48_Hostname=irc.excite.it +48_Description=Excite%20Italia%20Server +49_Hostname=irc1.tin.it +49_Description=Telecom%20Italia%20Server +50_Hostname=irc2.tin.it +50_Description=Telecom%20Italia%20Server +51_Hostname=irc3.tin.it +51_Description=Telecom%20Italia%20Server +52_Hostname=ircd.tin.it +52_Description=Telecom%20Italia%20HUB%20Server +53_Hostname=irc.huie.hokudai.ac.jp +53_Description=University%20Of%20Hokkaido +54_Hostname=irc.nara.wide.ad.jp +54_Description=WIDE%20Project%20Nara%20NOC%20Server +55_Hostname=irc.tokyo.wide.ad.jp +55_Description=WIDE%20Project%20Tokyo%20NOC%20Server +56_Hostname=irc.fujisawa.wide.ad.jp +56_Description=WIDE%20Project%20Fujisawa%20NOC%20Server +57_Hostname=irc.media.kyoto-u.ac.jp +57_Description=Kyoto%20Server +58_Hostname=irc-new.media.kyoto-u.ac.jp +58_Description=Kyoto%20Server +59_Hostname=irc.apollo.lv +59_Description=Apollo%20Server +60_Hostname=ircd.snt.utwente.nl +60_Description=University%20Of%20Twente%20HUB%20Server +61_Hostname=irc.snt.utwente.nl +61_Description=University%20Of%20Twente%20Server +62_Hostname=irc.sci.kun.nl +62_Description=University%20Of%20Nijmegen%20Server +63_Hostname=irc.uunet.nl +63_Description=UUNET%20NL%20Server +64_Hostname=irc.xs4all.nl +64_Description=XS4ALL%20Server +65_Hostname=irc.ifi.uio.no +65_Description=University%20Of%20Oslo%20Server +66_Hostname=irc.pvv.ntnu.no +66_Description=IRCNO%20Server +67_Hostname=irc.hitos.no +67_Description=Tromsoe%20Server +68_Hostname=irc.powertech.no +68_Description=PowerTech%20Server +69_Hostname=irc.uib.no +69_Description=University%20Of%20Bergen +70_Hostname=uk.ircnet.org +70_Description=UK%20Random%20Server +71_Hostname=ircnet.demon.co.uk +71_Description=THUS%20Server +72_Hostname=irc.aau.dotsrc.org +72_Description=AAU%20DotSrc%20Server +73_Hostname=irc.dotsrc.org +73_Description=DotSrc%20Server +74_Hostname=warszawa.irc.pl +74_Description=ICM%20Server +75_Hostname=poznan.irc.pl +75_Description=UAM%20Server +76_Hostname=krakow.irc.pl +76_Description=AGH%20Server +77_Hostname=lublin.irc.pl +77_Description=UMCS%20Server +78_Hostname=irc.swipnet.se +78_Description=Tele2%20Sweden%20Server +79_Hostname=irc.desync.se +79_Description=IRCnet%20Project%20Server +80_Hostname=irc.okit.se +80_Description=OK%20IT%20AB%20Server +81_Hostname=irc.ludd.luth.se +81_Description=Lulea%20Server +82_Hostname=irc.arnes.si +82_Description=ARNES%20Server +83_Hostname=irc.triera.si +83_Description=Triera%20Server +84_Hostname=irc.fei.tuke.sk +84_Description=TUKE%20Server +85_Hostname=irc.nextra.sk +85_Description=Nextra%20Server +86_Hostname=irc.seed.net.tw +86_Description=Seednet%20Server +87_Hostname=irc.freebsd.org.tw +87_Description=FreeBSD.org%20Server +88_Hostname=us.ircnet.org +88_Description=USA%20Random%20Server +89_Hostname=ircnet.choopa.net +89_Description=Choopa,%20Inc%20Server +90_Hostname=temphub.choopa.net +90_Description=Choopa,%20Inc%20Server +91_Hostname=au.ircnet.org +91_Description=Australia%20Random%20Server +92_Hostname=eu.irc6.net +92_Description=Europe%20Random%20IPv6%20Server +93_Hostname=irc.ipv6.cesnet.cz +93_Description=CESNET2%20IPv6%20Server +94_Hostname=ircs.ircnet.ee +94_Description=IPv6%20Server +95_Hostname=irc.estpak.ee +95_Description=Elion%20Enterprises%20IPv6%20Server +96_Hostname=irc.datanet.ee +96_Description=Linxtelecom%20IPv6%20Server +97_Hostname=irc.starman.ee +97_Description=Starman%20IPv6%20Server +98_Hostname=irc6.ngnet.it +98_Description=Telecom%20Italia%20IPv6%20Server +99_Hostname=irc.eutelia.it +99_Description=Eutelia%20IPv6%20Server +100_Hostname=irc.powertech.no +100_Description=PowerTech%20IPv6%20Server +NServers=101 +[Irctoo] +0_Hostname=irc.irctoo.net +0_Description=Irctoo:%20Random%20server +NServers=1 +[IRCworld] +0_Hostname=irc.ircworld.org +0_Description=IRCworld:%20Random%20server +NServers=1 +[IsraelNet] +0_Hostname=irc.israel.net +0_Description=Israelnet:%20Random%20server +NServers=1 +[K0wNet] +0_Hostname=irc.k0w.net +0_Description=K0wNet:%20Random%20server +NServers=1 +[KewlOrg] +0_Hostname=irc.kewl.org +0_Description=Kewl.org:%20Random%20server +1_Hostname=london.uk.eu.kewl.org +1_Description=Kewl.org:%20EU,%20UK,%20London +2_Hostname=nanterre.fr.eu.kewl.org +2_Description=Kewl.org:%20EU,%20FR,%20Nanterre +NServers=3 +[Kreynet] +0_Hostname=irc.krey.net +0_Description=KreyNet:%20Random%20server +NServers=1 +[Krushnet] +0_Hostname=irc.krushnet.org +0_Description=Krushnet:%20Random%20server +NServers=1 +[LagNet] +0_Hostname=irc.lagnet.org.za +0_Description=LagNet:%20Random%20server +1_Hostname=mystery.lagnet.org.za +1_Description=LagNet:%20AF,%20ZA,%20Johannesburg +2_Hostname=reaper.lagnet.org.za +2_Description=LagNet:%20AF,%20ZA,%20Cape%20Town +NServers=3 +[Librenet] +0_Hostname=irc.librenet.net +0_Description=Librenet:%20Random%20server +NServers=1 +[Lunatics] +0_Hostname=irc.lunatics.net +0_Description=Lunatics:%20Random%20server +NServers=1 +[KidsWorld] +0_Hostname=irc.kidsworld.org +0_Description=Kidsworld:%20Random%20server +NServers=1 +[Knightnet] +0_Hostname=goldengate.ca.us.knightnet.net +0_Description=Knightnet:%20US,%20CA,%20Goldengate +1_Hostname=orc.dbn.za.knightnet.net +1_Description=Knightnet:%20AF,%20ZA,%20Durban +NServers=2 +[MagicStar] +0_Hostname=irc.magicstar.net +0_Description=MagicStar:%20Random%20server +NServers=1 +[MediaDriven] +0_Hostname=irc.mediadriven.com +0_Description=MediaDriven:%20Random%20server +NServers=1 +[Messique] +0_Hostname=irc.messique.org +0_Description=Messique:%20Random%20server +NServers=1 +[Mysteria] +0_Hostname=irc.mysteria.net +0_Description=Mysteria:%20Random%20server +NServers=1 +[Mystical] +0_Hostname=irc.mystical.net +0_Description=Mystical:%20Random%20server +NServers=1 +[NdrsNet] +0_Hostname=irc.ndrsnet.com +0_Description=NdrsNet:%20Random%20server +NServers=1 +[Net-France] +0_Hostname=irc.net-france.com +0_Description=Net-France:%20Random%20server +NServers=1 +[Nevernet] +0_Hostname=irc.nevernet.net +0_Description=Nevernet:%20Random%20server +NServers=1 +[NewIRC] +0_Hostname=irc.newirc.org +0_Description=NewIRC:%20Random%20server +NServers=1 +[Newnet] +0_Hostname=irc.chelmsford.com +0_Description=Newnet:%20US,%20MA,%20Chelmsford +1_Hostname=irc.fragglerock.org +1_Description=Newnet:%20US,%20CA,%20Flagglerock +2_Hostname=irc.newnet.net +2_Description=Newnet:%20Random%20server +3_Hostname=irc.oasis-net.net +3_Description=Newnet:%20EU,%20UK,%20Oasis +4_Hostname=irc.rma.edu +4_Description=Newnet:%20US,%20VA,%20Randolph +5_Hostname=irc.trusted-network.de +5_Description=Newnet:%20EU,%20DE,%20Trusted +6_Hostname=irc.uplink.net.nz +6_Description=Newnet:%20NZ,%20Auckland +NServers=7 +[Nexusirc] +0_Hostname=irc.nexusirc.org +0_Description=Nexusirc:%20Random%20server +NServers=1 +[NightStar] +0_Hostname=irc.nightstar.net +0_Description=Nightstar:%20Random%20server +NServers=1 +[NitroNet] +0_Hostname=irc.nitro.net +0_Description=NitroNet:%20Random%20server +NServers=1 +[Novernet] +0_Hostname=irc.novernet.com +0_Description=Novernet:%20Random%20server +1_Hostname=chat.novernet.com +1_Description=Novernet:%20US,%20MN,%20Minneapolis +2_Hostname=irc.c-plusnet.com +2_Description=Novernet:%20US,%20GA,%20Augusta +NServers=3 +[Oddnet] +0_Hostname=irc.oddnet.org +0_Description=Oddnet:%20Random%20server +NServers=1 +[Othernet] +0_Hostname=irc.othernet.org +0_Description=Othernet:%20Random%20server +1_Hostname=miami.fl.us.othernet.org +1_Description=Othernet:%20US,%20FL,%20Miami +2_Hostname=stlouis.mo.us.othernet.org +2_Description=Othernet:%20US,%20MO,%20StLouis +NServers=3 +[OtherSide] +0_Hostname=irc.othersideirc.net +0_Description=Otherside:%20Random%20server +NServers=1 +[Outsiderz] +0_Hostname=irc.outsiderz.com +0_Description=Outsiderz:%20Random%20server +NServers=1 +[OzOrg] +0_Hostname=aussie.sydney.oz.org +0_Description=OzOrg:%20AU,%20Sydney +1_Hostname=chariot.adelaide.oz.org +1_Description=OzOrg:%20AU,%20Adelaide +2_Hostname=iinet.perth.oz.org +2_Description=OzOrg:%20AU,%20Perth +NServers=3 +Description=Australian%20Network +[Philchat] +0_Hostname=irc.philchat.net +0_Description=Philchat:%20Random%20server +NServers=1 +[Pinoycentral] +0_Hostname=chat.abs-cbn.com +0_Description=Pinoycentral:%20Random%20server +NServers=1 +[Planetarion] +0_Hostname=irc.planetarion.com +0_Description=Planetarion:%20Random%20server +NServers=1 +[PortalX] +0_Hostname=irc.portalx.org +0_Description=PortalX:%20Random%20server +1_Hostname=aphrodite.portalx.org +1_Description=PortalX:%20Aphrodite +2_Hostname=apollo.portalx.org +2_Description=PortalX:%20Apollo +3_Hostname=ares.portalx.org +3_Description=PortalX:%20Ares +4_Hostname=athena.portalx.org +4_Description=PortalX:%20Athena +5_Hostname=demeter.portalx.org +5_Description=PortalX:%20Demeter +6_Hostname=eos.portalx.org +6_Description=PortalX:%20Eos +7_Hostname=thor.portalx.org +7_Description=PortalX:%20Thor +8_Hostname=zeus.portalx.org +8_Description=PortalX:%20Zeus +NServers=9 +[Psionics] +0_Hostname=chat.psionics.net +0_Description=Psionics:%20CA,%20PQ,%20Montreal +NServers=1 +[PTlink] +0_Hostname=irc.ptlink.net +0_Description=PTlink:%20Random%20server +NServers=1 +[PTnet] +0_Hostname=telepac2.ptnet.org +0_Description=PTnet:%20EU,%20PT,%20Lisboa +1_Hostname=ualg.ptnet.org +1_Description=PTnet:%20EU,%20PT,%20Faro +NServers=2 +[QChat] +0_Hostname=irc.qchat.net +0_Description=QChat:%20Random%20server +NServers=1 +[QuakeNet] +0_Hostname=irc.quakenet.org +0_Description=Main%20Random%20Server +1_Hostname=irc.quakenet.eu.org +1_Description=Europe%20Random%20Server +2_Hostname=jubiigames.dk.quakenet.org +2_Description=Denmark%20Server +3_Hostname=mediatraffic.fi.quakenet.org +3_Description=Finland%20Server +4_Hostname=euroserv.fr.quakenet.org +4_Description=France%20Server +5_Hostname=splatterworld.de.quakenet.org +5_Description=Germany%20Server +6_Hostname=ign.ie.quakenet.org +6_Description=Ireland%20Server +7_Hostname=ngi.it.quakenet.org +7_Description=Italy%20Server +8_Hostname=xs4all.nl.quakenet.org +8_Description=Netherlands%20Server +9_Hostname=online.no.quakenet.org +9_Description=Norway%20Server +10_Hostname=underworld.no.quakenet.org +10_Description=Norway%20Server +11_Hostname=port80.se.quakenet.org +11_Description=Sweden%20Server +12_Hostname=stockholm.se.quakenet.org +12_Description=Sweden%20Server +13_Hostname=wineasy.se.quakenet.org +13_Description=Sweden%20Server +14_Hostname=b0rk.uk.quakenet.org +14_Description=UK%20Server +15_Hostname=blueyonder.uk.quakenet.org +15_Description=UK%20Server +16_Hostname=demon.uk.quakenet.org +16_Description=UK%20Server +17_Hostname=freddyshouse.uk.quakenet.org +17_Description=UK%20Server +18_Hostname=multiplay.uk.quakenet.org +18_Description=UK%20Server +19_Hostname=gameservers.il.us.quakenet.org +19_Description=USA%20Server +20_Hostname=gameservers.nj.us.quakenet.org +20_Description=USA%20Server +21_Hostname=netfire.tx.us.quakenet.org +21_Description=USA%20Server +22_Hostname=netfire.va.us.quakenet.org +22_Description=USA%20Server +23_Hostname=servercentral.il.us.quakenet.org +23_Description=USA%20Server +NServers=24 +[Raptornet] +0_Hostname=irc.raptornet.org +0_Description=Raptornet:%20Random%20server +NServers=1 +[Realirc] +0_Hostname=irc.realirc.org +0_Description=Realirc:%20Random%20server +NServers=1 +[Rebelchat] +0_Hostname=irc.rebelchat.org +0_Description=Rebelchat:%20Random%20server +NServers=1 +[RedeSul] +0_Hostname=irc.braznet.com.br +0_Description=RedeSul:%20BR,%20SC,%20Blumenau +1_Description=RedeSul:%20BR,%20PR,%20Maringa +1_Hostname=irc.wnet.com.br +NServers=2 +[Red-Latina] +0_Hostname=irc.red-latina.org +0_Description=Red-Latina:%20Random%20server +1_Hostname=irc.dalsom.net +1_Description=Red-Latina:%20NA,%20MX,%20SanJose +NServers=2 +[RedLatona] +0_Hostname=irc.redlatona.net +0_Description=RedLatona:%20Random%20server +NServers=1 +[Relicnet] +0_Hostname=irc.relic.net +0_Description=Relicnet:%20Random%20server +NServers=1 +[Rezosup] +0_Hostname=irc.rezosup.org +0_Description=Rezosup:%20Random%20server +NServers=1 +[Risanet] +0_Hostname=irc.risanet.com +0_Description=Risanet:%20Random%20server +NServers=1 +[Rusnet] +0_Hostname=irc.rinet.ru +0_Description=Rusnet:%20EU,%20RU,%20Moscow +1_Hostname=irc.tomsk.net +1_Description=Rusnet:%20EU,%20RU,%20Tomsk +2_Hostname=irc.primorye.ru +2_Description=Rusnet:%20EU,%20RU,%20Vladivostok +NServers=3 +Description=Russian%20Network +Encoding=CP-1251 +[Sandnet] +0_Hostname=irc.sandnet.net +0_Description=Sandnet:%20Random%20server +NServers=1 +[Scunc] +0_Hostname=irc.scunc.net +0_Description=Scunc:%20Random%20server +NServers=1 +[SexNet] +0_Hostname=irc.sexnet.org +0_Description=SexNet:%20Random%20server +NServers=1 +[ShadowFire] +0_Hostname=irc.shadowfire.org +0_Description=ShadowFire:%20Random%20server +NServers=1 +[ShadowWorld] +0_Hostname=irc.shadowworld.net +0_Description=ShadowWorld:%20Random%20server +NServers=1 +[Skyyenet] +0_Hostname=arlington.va.us.skyyenet.org +0_Description=Skyyenet:%20US,%20VA,%20Arlington +NServers=1 +[Slashnet] +0_Hostname=irc.slashnet.org +0_Description=Slashnet:%20Random%20server +NServers=1 +[SolarNet] +0_Hostname=irc.solarnet.ru +0_Description=Main%20network%20server +NServers=1 +Description=Russian%20Network +Encoding=CP-1251 +[SolidIRC] +0_Hostname=irc.solidirc.com +0_Description=SolidIRC:%20Random%20server +NServers=1 +[Sorcery] +0_Hostname=irc.sorcery.net +0_Description=Sorcerynet:%20Random%20server +1_Hostname=kechara.sorcery.net +1_Description=Sorcerynet:%20US,%20CA,%20Palo%20Alto +2_Hostname=nexus.sorcery.net +2_Description=Sorcerynet:%20EU,%20SE,%20Karlskrona +NServers=3 +[Spamnet] +0_Hostname=irc.spamnet.org +0_Description=Spamnet:%20Random%20server +NServers=1 +[StarChat] +0_Hostname=irc.starchat.net +0_Description=StarChat:%20Random%20server +1_Hostname=boomer.qld.au.starchat.net +1_Description=StarChat:%20AU,%20QLD,%20SouthernCross +2_Hostname=reality.no.eu.starchat.net +2_Description=StarChat:%20EU,%20NO,%20Asker +3_Hostname=sand.ca.us.starchat.net +3_Description=StarChat:%20US,%20CA,%20San%20Jose +NServers=4 +[StarLink] +0_Hostname=irc.starlink.org +0_Description=StarLink%20Org:%20Random%20server +NServers=1 +[StarLink-irc] +0_Hostname=irc.starlink-irc.org +0_Description=StarLink-irc:%20Random%20server +NServers=1 +[StarWars-IRC] +0_Hostname=irc.starwars-irc.net +0_Description=StarWars-IRC:%20Random%20server +NServers=1 +[Stormdancing] +0_Hostname=irc.stormdancing.net +0_Description=Stormdancing:%20Random%20server +NServers=1 +[Sub-city] +0_Hostname=irc.sub-city.net +0_Description=Sub-city:%20Random%20server +NServers=1 +[Superchat] +0_Hostname=irc.superchat.org +0_Description=Superchat:%20Random%20server +NServers=1 +[SyrolNet] +0_Hostname=irc.syrolnet.org +0_Description=SyrolNet%20round%20robin +1_Hostname=ipv6.syrolnet.org +1_Description=IPv6%20round%20robin +2_Hostname=moon.syrolnet.org +2_Description=Moon%20irc%20server +3_Hostname=phobos.syrolnet.org +3_Description=IPv6/IPv4%20server +NServers=4 +Description=Italian%20Network +[Sysopnet] +0_Hostname=irc.sysopnet.org +0_Description=Sysopnet:%20Random%20server +NServers=1 +[Techdreams] +0_Hostname=irc.techdreams.net +0_Description=Techdreams:%20Random%20server +NServers=1 +[Telstra] +0_Hostname=irc.telstra.com +0_Description=Telstra:%20Random%20server +NServers=1 +[Terra] +0_Hostname=irc.terra.cl +0_Description=Terra%20Chile +1_Hostname=irc.terra.com +1_Description=Terra%20USA +2_Hostname=irc.terra.es +2_Description=Terra%20Spain +NServers=3 +[TR-net] +0_Hostname=irc.dominet.com.tr +0_Description=TR-net:%20EU,%20TR,%20Ankara +1_Hostname=irc.teklan.com.tr +1_Description=TR-net:%20EU,%20Tr,%20Istanbul +NServers=2 +[Tri-net] +0_Hostname=irc.tri-net.org +0_Description=Tri-net:%20Random%20server +NServers=1 +[UltraIRC] +0_Hostname=irc.ultrairc.net +0_Description=UltraIRC:%20Random%20server +NServers=1 +[UnderNet] +0_Hostname=irc.undernet.org +0_Description=Main%20Random%20Server +1_Hostname=eu.undernet.org +1_Description=Europe%20Random%20Server +2_Hostname=bucharest.ro.eu.undernet.org +2_Description=Romania%20Server +3_Hostname=Carouge.ch.eu.undernet.org +3_Description=Switzerland%20Server +4_Hostname=diemen.nl.eu.undernet.org +4_Description=Netherlands%20Server +5_Hostname=ede.nl.eu.undernet.org +5_Description=Netherlands%20Server +6_Hostname=elsene.be.eu.undernet.org +6_Description=Belgium%20Server +7_Hostname=graz.at.eu.undernet.org +7_Description=Austria%20Server +8_Hostname=helsinki.fi.eu.undernet.org +8_Description=Finland%20Server +9_Hostname=lelystad.nl.eu.undernet.org +9_Description=Netherlands%20Server +10_Hostname=london.uk.eu.undernet.org +10_Description=UK%20Server +11_Hostname=london2.uk.eu.undernet.org +11_Description=UK%20Server +12_Hostname=oslo1.no.eu.undernet.org +12_Description=Norway%20Server +13_Hostname=oslo2.no.eu.undernet.org +13_Description=Norway%20Server +14_Hostname=zagreb.hr.eu.undernet.org +14_Description=Croatia%20Server +15_Hostname=us.undernet.org +15_Description=USA%20Random%20Server +16_Hostname=losangeles.ca.us.undernet.org +16_Description=USA%20Server +17_Hostname=mesa.az.us.undernet.org +17_Description=USA%20Server +18_Hostname=newyork.ny.us.undernet.org +18_Description=USA%20Server +NServers=19 +[UnderZ] +0_Hostname=irc.underz.org +0_Description=UnderZ:%20Random%20server +NServers=1 +[UnionLatina] +0_Hostname=irc.unionlatina.org +0_Description=UnionLatina:%20Random%20server +NServers=1 +[Univers] +0_Hostname=irc.univers.org +0_Description=Univers:%20Random%20server +NServers=1 +[Vidgamechat] +0_Hostname=irc.vidgamechat.com +0_Description=Vidgamechat:%20Random%20server +NServers=1 +[Vitamina] +0_Hostname=irc-rr.vitamina.ca +0_Description=Vitamina:%20Random%20server +NServers=1 +[Orange/Voila] +0_Hostname=chat14.x-echo.com +0_Description=Chat14 server +NServers=1 +Description=French%20Orange/Voila%20network%20(old%20name:%20Wanadoo/Voila) +[Warpednet] +0_Hostname=irc.warped.net +0_Description=Warpednet:%20Random%20server +NServers=1 +[Webnet] +0_Hostname=irc.webchat.org +0_Description=Webnet:%20Random%20server +1_Hostname=greennet.ma.us.webchat.org +1_Description=Webnet:%20US,%20MA,%20Boston +2_Hostname=webmaster.ca.us.webchat.org +2_Description=Webnet:%20US,%20CA,%20Santa%20Clara +3_Hostname=wiregrass.al.us.webchat.org +3_Description=Webnet:%20US,%20AL,%20Dothan +NServers=4 +[WeNet] +0_Hostname=irc.wenet.ru +0_Description=Primary%20WeNet%20server +NServers=1 +Encoding=CP-1251 +Description=Russian%20Network +[WorldIRC] +0_Hostname=irc.worldirc.org +0_Description=WorldIRC:%20Random%20server +NServers=1 +[Xevion] +0_Hostname=irc.xevion.net +0_Description=Xevion:%20Random%20server +NServers=1 +[XNet] +0_Hostname=irc.xnet.org +0_Description=XNet:%20Random%20server +NServers=1 +[XWorld] +0_Hostname=irc.xworld.org +0_Description=XWorld:%20Random%20server +NServers=1 +[ZAnetNet] +0_Hostname=lia.zanet.net +0_Description=ZAnet%20Net:%20AF,%20ZA,%20CI%20(lia) +1_Hostname=timewiz.zanet.net +1_Description=ZAnet%20Net:%20AF,%20ZA,%20MWeb%20(timewiz) +NServers=2 +[ZAnetOrg] +0_Hostname=ethereal.zanet.org.za +0_Description=ZAnet%20Org:%20AF,%20ZA,%20Midrand%20(ethereal) +1_Hostname=gaspode.zanet.org.za +1_Description=ZAnet%20Org:%20AF,%20ZA,%20Cape%20Town%20(gaspode) +2_Hostname=is.zanet.org.za +2_Description=ZAnet%20Org:%20AF,%20ZA,%20Johannesburg%20(is) +NServers=3 +[ZiRC] +0_Hostname=irc.zirc.org +0_Description=ZiRC:%20Random%20server +NServers=1 +[ZUHnet] +0_Hostname=irc.zuh.net +0_Description=ZUHnet:%20Random%20server +NServers=1 +[Zurna] +0_Hostname=irc.zurna.net +0_Description=Zurna:%20Random%20server +NServers=1 +[PenguinFriends] +0_Hostname=irc.penguinfriends.org +0_Description=PenguinFriends:%20Random%20server +1_Hostname=pf-gaming.penguinfriends.org +1_Description=pf-gaming.penguinfriends.org +2_Hostname=onlyfreaks.penguinfriends.org +2_Description=onlyfreaks.penguinfriends.org +3_Hostname=irc.penguinfriends.org +3_Description=PenguinFriends:%20Random%20server SSL +3_SSL=true +3_Port=6670 +NServers=4 diff --git a/data/config/texticons.kvc b/data/config/texticons.kvc new file mode 100644 index 0000000..09d45c8 --- /dev/null +++ b/data/config/texticons.kvc @@ -0,0 +1,39 @@ +[Manager] +# Default configuration of texticons. +# If you add any entry then please increase this number both here +# and in kvi_texticonmanager.cpp (they MUST match) +ConfigUpdate=3 +[TextIcons] +smile=94 +sad=95 +heart=214 +irc=208 +bomb=82 +spy=109 +home=107 +heartbreak=215 +rose=216 +biggrin=217 +smileglasses=218 +surprise=219 +idea=148 +penguin=111 +linux=111 +flower=124 +love=214 +lol=217 +exclamation=220 +!=220 +dots=221 +...=221 +?=49 +question=49 +kiss=222 +finger=268 +prrr=265 +time=93 +shy=271 +oooh=223 +cafe=273 +hum=282 +slurp=283 diff --git a/data/defscript/Makefile.am b/data/defscript/Makefile.am new file mode 100644 index 0000000..768c9b8 --- /dev/null +++ b/data/defscript/Makefile.am @@ -0,0 +1,11 @@ +tmpdir = $(defscriptdir) + +tmp_DATA = default.kvs \ + aliases.kvs \ + events.kvs \ + popups.kvs \ + toolbars.kvs \ + installer.kvs \ + theme-install.kvs + +EXTRA_DIST = $(tmp_DATA) diff --git a/data/defscript/aliases.kvs b/data/defscript/aliases.kvs new file mode 100644 index 0000000..5d8d729 --- /dev/null +++ b/data/defscript/aliases.kvs @@ -0,0 +1,706 @@ +# Default aliases file + +# +# TODO: +# ignore, notify and unignore should go in the core +# +# If possible, get rid of $str.* from the default popups +# avoiding to load the module at every channel popup open action... +# (Find a core function that retrieves the number of nicknames passed ?) +# Another solution would be to increase the str.module core lock-time ? +# + +# +# Backward compatibility stuff +# +alias(avatar) +{ + # avatar target file + if(!$0) + { + echo "Missing target, no action taken" + return + } + if($1) + { + avatar.set $1 + } + avatar.notify $0 +} + +alias(clear) +{ + window.clearOutput +} + +alias(connect) +{ + objects.connect $0 $1 $2 $3 +} + +alias(disconnect) +{ + objects.disconnect $0 $1 $2 $3 +} + +alias(killclass) +{ + objects.killclass $0 +} + +alias(clearobjects) +{ + objects.clear $0 +} + +alias(nickserv) +{ + # Silent + raw -q NickServ $0- +} + +alias(chanserv) +{ + # Silent + raw -q ChanServ $0- +} + +alias(memoserv) +{ + # Silent + raw -q MemoServ $0- +} + +alias(ns) +{ + # Silent + raw -q nickserv $0- +} + +alias(cs) +{ + # Silent + raw -q chanserv $0- +} + +alias(ms) +{ + # Silent + raw -q memoserv $0- +} + +alias(gnotice) +{ + # Global notice + + #Check null notice + if(!$0){ + echo $tr("Usage"): /gnotice [-waohvq] <$tr("message")> + echo $tr("-m: send a message instead of a notice") + echo $tr("-w: send notice to all channel owners") + echo $tr("-a: send notice to all channel admins") + echo $tr("-o: send notice to all channel ops") + echo $tr("-h: send notice to all channel halfops") + echo $tr("-v: send notice to all channel voices") + echo $tr("-q: quiet mode") + halt + } + + # Detect message type + if($sw(m)) %cmd="msg" + else %cmd="notice" + + # Check for quiet message + if($sw(q)) %cmd=$str.append(%cmd," -q") + + # Check null switches + if((!$sw(w))&&(!$sw(a))&&(!$sw(o))&&(!$sw(h))&&(!$sw(v))){ + eval %cmd $chan.name($active) $0- + halt + } + + # Check switches passed + if($sw(w)) eval %cmd \~$chan.name($active) $0- + if($sw(a)) eval %cmd \!$chan.name($active) $0- + if($sw(o)) eval %cmd \@$chan.name($active) $0- + if($sw(h)) eval %cmd \%$chan.name($active) $0- + if($sw(v)) eval %cmd \+$chan.name($active) $0- +} + +alias(wallop) +{ + if(!$0){ + echo $tr("Usage"): /wallop <$tr("message")> + halt + } + + # Due to server flood, timing may be very high + echo -w=$active $tr("Sending wallop to") $chan.name($active) + timer(wallop,5000,$chan.users(,,o),$0-){ + if(%:localOps == ""){ %:localOps = $chan.users(,,o); %:curIndex = 0; } + if(%:curIndex == %:localOps[]#){ killtimer wallop; return; } + + for(%i=0;%i<1;%i++){ + if(%:localOps[%:curIndex] != $my.nick){ + if(%:curIndex == %:localOps[]#){ killtimer wallop; return; } + msg -q %:localOps[%:curIndex] $1- + %:curIndex++ + } + } + } +} + +alias(kill){ + raw -q kill $0 :$1- +} + +alias(ms) +{ + # Silent + quote ms $0- +} + +# j: This is a really common one +alias(j) +{ + #first we do a test if a chan is given as parameter + if(!$0) + { + echo $tr("Usage:") + echo " /j " + } else { + join $0- + } +} + +# s: This too +alias(s) +{ + if(!$0) + { + echo $tr("Usage:") + echo " /s " + } else { + server $0- + } +} + +# q: Ok, I am lazy :P +alias(q) +{ + if(!$0) + { + echo $tr("Usage:") + echo " /q " + } else { + query $0- + } +} + + +# names: maybe this should be implemented on the core? +alias(names) +{ + if(!$0) + { + if($window.type($active)!="channel") + { + echo $tr("Usage:") "/names " + } else { + raw names $active + } + } else { + raw names $0- + } +} + +# kickban +alias(kb) +{ + if(!$0) + { + echo $tr("Usage:") + echo " /kb [" $tr("reason") "]" + halt; + } + + if(!$channel) + { + echo "[KB]: " $tr("This is not a channel window") + halt; + } + + foreach(%nick,$str.split(",",$0)) + { + if(%nick) + { + %mask = $mask(%nick,$option(uintDefaultBanType)); + + if(!%mask)%mask = %nick; # plain ban + + %reason = $1- + #if(!%reason)%reason = "You're not welcome here!" + + # This is tricky : we send everything + # as a single raw message just because + # we do not want delays between kick and ban + # if anti-server-flood is enabled + + %raw = "kick $target %nick :%reason" + + # kick %nick %reason + + if($chan.isOp(%nick))%raw2 = "mode $target -o+b %nick %mask" + else %raw2 = "mode $target +b %mask" + + raw -q %raw2$cr$lf%raw + } + } +} + +# chanowner +alias(chanowner) +{ + if(!$0) + { + echo $tr("Usage:") + echo " /chanowner " + halt; + } + if(!$channel) + { + echo "[CHANOWNER]: " $tr("This is not a channel window") + halt; + } + + foreach(%nick,$str.split(",",$0)) + { + if(%nick) + { + mode $chan.name() +q %nick + } + } +} + +# chanadmin +alias(chanadmin) +{ + if(!$0) + { + echo $tr("Usage:") + echo " /chanadmin " + halt; + } + if(!$channel) + { + echo "[CHANADMIN]: " $tr("This is not a channel window") + halt; + } + + foreach(%nick,$str.split(",",$0)) + { + if(%nick) + { + mode $chan.name() +a %nick + } + } +} + +# dechanowner +alias(dechanowner) +{ + if(!$0) + { + echo $tr("Usage:") + echo " /dechanowner " + halt; + } + if(!$channel) + { + echo "[DECHANOWNER]: " $tr("This is not a channel window") + halt; + } + + foreach(%nick,$str.split(",",$0)) + { + if(%nick) + { + mode $chan.name() -q %nick + } + } +} + +# dechanadmin +alias(dechanadmin) +{ + if(!$0) + { + echo $tr("Usage:") + echo " /dechanadmin " + halt; + } + if(!$channel) + { + echo "[DECHANADMIN]: " $tr("This is not a channel window") + halt; + } + + foreach(%nick,$str.split(",",$0)) + { + if(%nick) + { + mode $chan.name() -a %nick + } + } +} + +# halfop +alias(halfop) +{ + if(!$0) + { + echo $tr("Usage:") + echo " /halfop " + halt; + } + if(!$channel) + { + echo "[HALFOP]: " $tr("This is not a channel window") + halt; + } + + foreach(%nick,$str.split(",",$0)) + { + if(%nick) + { + mode $chan.name() +h %nick + } + } +} + +# dehalfop +alias(dehalfop) +{ + if(!$0) + { + echo $tr("Usage:") + echo " /dehalfop " + halt; + } + if(!$channel) + { + echo "[DEHALFOP]: " $tr("This is not a channel window") + halt; + } + + foreach(%nick,$str.split(",",$0)) + { + if(%nick) + { + mode $chan.name() -h %nick + } + } +} + +# userop +alias(userop) +{ + if(!$0) + { + echo $tr("Usage:") + echo " /userop " + halt; + } + if(!$channel) + { + echo "[USEROP]: " $tr("This is not a channel window") + halt; + } + + foreach(%nick,$str.split(",",$0)) + { + if(%nick) + { + mode $chan.name() +u %nick + } + } +} + +# deuserop +alias(deuserop) +{ + if(!$0) + { + echo $tr("Usage:") + echo " /deuserop " + halt; + } + if(!$channel) + { + echo "[DEUSEROP]: " $tr("This is not a channel window") + halt; + } + + foreach(%nick,$str.split(",",$0)) + { + if(%nick) + { + mode $chan.name() -u %nick + } + } +} + +# ame and amsg +alias(ame) +{ + foreach(%i,$window.list(channel))if(%i!="") me -r=%i $0- +} + +alias(amsg) +{ + foreach(%i,$window.list(channel))msg $target(%i) $0- +} + +alias(amsgall) +{ + foreach(%i,$window.list(channel),$window.list(query))msg $target(%i) $0- +} + +alias(ameall) +{ + foreach(%i,$window.list(channel),$window.list(query)){ + if(%i!="") me -r=%i $0- + } +} + +alias(awayall) +{ + foreach(%w,$window.list(console,all))away -r=%w $0-; +} + +# notify: this is a bit more complex +# We want to add an user to the notify list with a single command +# The notify lists are handled thru the registered users database +alias(notify) +{ + # This one adds a registered users database entry + # For the specified nick and uses the specified mask + # If no mask is specified , a default one is constructed + # Then the "notify" property is set for the user + + if(!$0) + { + echo $tr("Usage:") + echo " /notify [mask]" + halt + } + + # Get the mask + + %mask = $1 + + # no mask specified ? build it + + if(!%mask)%mask = $0!*@* + + # Now add the user (but do not replace old entries) + + reguser.add -f -q $0 %mask + + # Merge the notify property part with the old one (if any) + + %oldNicks = $reguser.property($0,notify) + + # It would be a good idea to check if the nikckname is already in the %oldNicks list + # but this is left as exercise for the reader. + + %oldNicks << $0 + + # And finally set the property (use -n so the notify lists will be restarted) + + reguser.setproperty -n $0 notify $0 + + # done...the notify list should be restarted now +} + +alias(ignore) +{ + # This one adds a registered users database entry + # For the specified nick and uses the specified mask + # If no mask is specified , a default one is constructed + # Then the "ignore" property is set for the user to 1 + + if(!$0) + { + echo $tr("Usage:") + echo " /ignore [-r] " + halt + } + + # Now add the user (but do not replace old entries) + + reguser.add $0 $mask($0,15); + + # And finally set the property (use -n so the notify lists will be restarted) + # Check if ignore or unignore the user + + if(!$sw(r,remove)) + { + reguser.setIgnoreEnabled $0 1 + reguser.setIgnoreFlags -p -c -n -t -i -d $0 + } else reguser.setIgnoreEnabled $0 0 +} + +# Dcc...people commonly use "dcc send" instead of "dcc.send" +alias(dcc) +{ + switch($0) + { + case(send): + { + dcc.send $1- + break + } + case(chat): + { + dcc.chat $1- + break + } + case(voice): + { + dcc.voice $1- + break + } + case(allow): + { + quote dccallow $1- + break + } + default: + { + echo "[DCC]: " $tr("Unsupported type: $0") + } + } +} + +# +# return a string with the name of the curerent usermode +# +alias(usermodename) +{ + if(!$0) + { + echo $tr("Usage:") + echo " /usermodename " + halt; + } + if(!$channel) + { + echo "[USERMODENAME]: " $tr("This is not a channel window") + halt; + } + + if($chan.isOwner($0,$channel)){ + return $tr("Channel Owner") + } elseif($chan.isAdmin($0,$channel)){ + return $tr("Channel Administrator") + } elseif($chan.isOp($0,$channel)){ + return $tr("Channel Operator") + } elseif($chan.isHalfOp($0,$channel)){ + return $tr("Half Operator") + } elseif($chan.isVoice($0,$channel)){ + return $tr("Voice") + } elseif($chan.isUserOp($0,$channel)){ + return $tr("User Operator") + } else { + return $tr("Normal User") + } +} + +alias(dccallow) +{ + quote dccallow \+$0 +} + +#shortcut for commonly called algorithm +alias(md5) +{ + return $str.digest($0-,md5) +} + +alias(sha1) +{ + return $str.digest($0-,sha1) +} + +# DNS : people like it +alias(dns) +{ + if(!$context) + { + echo "[DNS]: " $tr("You must use DNS in an IRC context") + halt + } + + if(!$server) + { + echo "[DNS]: " $tr("You must be connected to a server") + halt + } + + if(!$0) + { + echo $tr("Usage:") + echo echo " /dns " + halt + } + + if($isWellKnown($0))host -a $hostname($0) + else { + awhois($0) + { + if(!$2) + { + echo "[DNS]: " $tr("No such user: $0") + } else { + host -a $2 + } + } + } +} + +alias(ss) +{ + # Silent + quote ss $0- +} + +alias(seenserv) +{ + # Silent + msg -q SeenServ $0- +} + +alias(hs) +{ + #Silent + quote hs $0- +} + +alias(hop) +{ + // Retrieve channel + %chan=$0 + if(!%chan) %chan=$chan.name($active) + + // Retrieve channel key + %key=$chan.key($channel(%chan)) + + // Exit channel + if($window.type($channel(%chan))=="channel") + part --keep %chan $option(stringPartMessage) + + // Rejoin channel + if(!%key) join %chan + else join %chan %key +} diff --git a/data/defscript/default.kvs b/data/defscript/default.kvs new file mode 100644 index 0000000..fb270da --- /dev/null +++ b/data/defscript/default.kvs @@ -0,0 +1,37 @@ +################################################################################################# +# +# This is the default script for KVIrc +# Feel free to use it as base for writing your own scripts +# It is a good starting point; I have tried to add as many comments as possible. +# +# Have fun :) +# Szymon Stefanek +# +################################################################################################# + +%mypath = "$file.extractpath($0)$file.ps" + +# Fetch default scripts data +include "aliases.kvs" %mypath +include "events.kvs" %mypath +include "popups.kvs" %mypath +include "toolbars.kvs" %mypath + +# +# Set the default spam words...(for the anti-spam) detector +# + +# FIXME: these should be MERGED!!!! + +#%tmp = $option(stringlistSpamWords) +#%tmp[] = $array() ??? + +option stringlistSpamWords "http:","#","www.","auto","query","ftp:","sex","free","msg","chat","dynamirc","script" + +options.save + +echo $tr("The default script has been successfully installed.") +echo $tr("To connect to a server, type /server ") +echo "---" +echo $tr("Happy ircing :)") +echo "- Szymon Stefanek $tr("and the KVIrc Development Team")" diff --git a/data/defscript/events.kvs b/data/defscript/events.kvs new file mode 100644 index 0000000..575cfc3 --- /dev/null +++ b/data/defscript/events.kvs @@ -0,0 +1,105 @@ +# Default events file + +event(OnDccChatPopupRequest,default) +{ + popup dccchat $0; +} + +event(OnChannelPopupRequest,default) +{ + popup channeltextview $target; +} + +event(OnConsolePopupRequest,default) +{ + popup consoletextview; +} + +event(OnChannelLinkPopupRequest,default) +{ + if($0 != "") popup channelpopup $0; +} + +event(OnQueryPopupRequest,default) +{ + if($target) popup querytextview $target; +} + +event(OnQueryNickPopupRequest,default) +{ + if($0 != "") popup querytextview $0; +} + +event(OnQueryFileDropped,default) +{ + if($0 != "") dcc.send $target $0; +} + +event(OnNickLinkDefaultActionRequest,default) +{ + if($0 != "") whois $0; +} + +event(OnNickLinkPopupRequest,default) +{ + if($0 != "") popup defaulttextview $0; +} + +event(OnNotifyListDefaultActionRequest,default) +{ + if($0 != "") + { + query $0; whois $0 $0; + } +} + +event(OnNotifyListPopupRequest,default) +{ + if($0 != "") popup defaulttextview $0; +}; + +event(OnWindowPopupRequest,default) +{ + popup windowpopup; +} + +event(OnChannelWindowCreated,default) +{ + button(w,Logging,119,Logging) + { + popup -p=$0,$1 logging; + } +} + +event(OnQueryWindowCreated,default) +{ + button(w,Logging,119,Logging) + { + popup -p=$0,$1 logging; + } +} + +event(OnChannelNickLinkClick,default) +{ + if($0 != "") window.insertInInputText $window $0$option(stringNickCompletionPostfix); +} + +event(OnChannelNickPopupRequest,default) +{ + if($0 != "") popup channel $0; +} + +event(OnChannelNickDefaultActionRequest,default) +{ + if(!$isEmpty($0)) query $0; +} + +event(OnURLLinkPopupRequest,URL popup) +{ + popup urlpopup $0 +} + +event(OnHostLinkPopupRequest,default) +{ + popup hostpopup $0; +} diff --git a/data/defscript/installer.kvs b/data/defscript/installer.kvs new file mode 100644 index 0000000..f974b7e --- /dev/null +++ b/data/defscript/installer.kvs @@ -0,0 +1,169 @@ +/* + A helper class for installing and parsing files, + and generating an uninstallation alias on the fly. + + Example : + include "utils/installer.kvs" + %installer = $new(installer,0,myinstaller) + %installer->$copyFiles(pics,*.png,$file.localdir(pics)) + %installer->$includeFiles(src,*.kvs) + %installer->generateUninstallAlias("foo::uninstall") + delete %installer + Here, "foo::uninstall" must be called in you uninstall + callback script. + + Warnings: + 1) Declaration of aliases, popups, etc, in source files + (.kvs) must be in a similar format + as when you export them directly from kvirc. + Example: + alias(myalias) + defpopup(mypopup) + 2) If you use a "defpopup -m" to add an item to an + existing popup,this item won't be registered + automatically for uninstallation by this installer script. + You should typically identify the item you added using + the "id" parameter. See this example where the id is + "myaddon::myitem": + defpopup -m (channeltextview) + { + item(MyItem)(myaddon::myitem) + { + ... + } + } + Then, you add this line to you uninstall callback + script: + delpopupitem channeltextview myaddon::myitem +*/ +class(installer,object) +{ + constructor() + { + } + + copyFiles($0 = source dir,$1 = file regexp,$2 = target dir) + { + if(!$file.exists($0))return + if($isempty($0)) + { + echo $tr("[Installer] The first argument to \%installer->\$copyfiles must be a source directory") + halt + } + + if($isempty($1)) + { + echo $tr("[Installer] The second argument to \%installer->\$copyfiles must be a file name or file regexp") + halt + } + + if($isempty($2)) + { + echo $tr("[Installer] The third argument to \%installer->\$copyfiles must be a destination directory") + halt + } + + if($file.exists($0)) + { + %files = $file.ls($file.fixpath($0),f,$1) + if($length(%files)) + { + @$mkdir($2) + foreach(%file,%files) + { + $this->%lFiles <+ $str.replace($file.fixpath("$2/%file"),"\\\\","\\") + file.copy -o $file.fixpath($0/%file) $file.fixpath($2/%file) + } + } + } + } + + // Recursive creation of directory + mkdir($0 = directory) + { + if($isempty($0) || $file.exists($0)) return + foreach -a (%subdir,$str.split("/",$file.fixpath($0))) + { + %p <+ %subdir + %path = $str.join("/",%p) + if(!$file.exists(%path)) + file.mkdir -q %path + } + if(!$file.exists($0)) + { + echo $tr("[Installer] Failed to create directory") \"$0\" + return + } + } + + // Parse source files and get what will need to be uninstalled + includeFiles($0 = dir, $1 = file regexp) + { + if($isempty($0)) + { + echo $tr("[Installer] The first argument to \%installer->\$includefiles must be a source directory") + halt + } + + @$mkdir($0) + + if($1 == "") + %szRe = "*.kvs" + else + %szRe = $1 + + %files = $file.ls($file.fixpath($0),f,$1) + if($length(%files)) + { + foreach(%file,%files) + { + $this->%lSources <+ $str.replace($file.fixpath("$0/%file"),"\\\\","\\") + include $file.fixpath("$0/%file") + } + } + } + + + generateUninstallAlias($0 = alias name) + { + %c = "alias($0)$lf" + %c .= "{$lf" + if($isset($this->%lFiles)) + { + foreach(%file,$this->%lFiles) + { + %file =~ s/"^$file.localdir()/(.*)$"/"\$file.localdir(\\1)"/ + %c .= " file.remove -q \"%file\"$lf"; + } + } + if($isset($this->%lSources)) + { + foreach(%file,$this->%lSources){ + foreach(%line,$file.readlines(%file)) + if(!$str.isempty(%line)){ + if($str.match("event(*)",%line,e)) + %c .= " event -q ("$str.token(1,"()",%line)"){}$lf" + else if($str.match("alias(*)",%line,e)) + %aliases<+$str.token(1,"()",%line) + else if($str.match("defpopup(*)",%line,e)) + %c .= " defpopup("$str.token(1,"()",%line)"){}$lf" + else if($str.match("toolbar.create * *",%line,e)) + %c .= " toolbar.destroy -q "$str.word(1,%line)"$lf" + else if($str.match("action.create* (*)",%line,e)) + %c .= " action.destroy -q "$str.replace($str.token(1,"(,)",%line),,\")"$lf" + else if($str.match("class(*)*",%line,e)) + %c .= " objects.killclass -q "$str.token(1,"(,)",%line)"$lf" + } + } + if($isset(%aliases)) + foreach(%alias,%aliases) + %c .= " alias -q (%alias){}$lf" + %c .= " alias -q ($0){}$lf" + } + %c .= "}" + eval %c + } +} + + + diff --git a/data/defscript/popups.kvs b/data/defscript/popups.kvs new file mode 100644 index 0000000..7197c92 --- /dev/null +++ b/data/defscript/popups.kvs @@ -0,0 +1,1381 @@ +# Default popups file + +# +# Here comes a nice part... +# The popups. KVIrc has a lot of events that merely ask for a popup to be shown :) +# +defpopup(highlight) +{ + prologue + { + if($0!=""){ + %:regName = $reguser.match($mask($0)) + %:beingHl = $reguser.property(%:regName,highlight) + %:beingHlTmp = $tmphighlight.ishighlighted($0) + } + } + + item($tr("Stop Highlighting (Local)")) (%:beingHlTmp && !%:beingHl) + { + tmphighlight.remove $0 + } + + item($tr("Start Highlighting (Local)")) (!%:beingHlTmp && !%:beingHl) + { + tmphighlight.add $0 + } + + popup($tr("Always Highlight")) (!%:beingHl && !%:regName) + { + item($tr("Highlight as") $0 "("$mask($0,11)")") ("$reguser.exactMatch($mask($0,11))" == "") + { + reguser.add $0 $mask($0,11); reguser.setproperty $0 highlight 1; + } + + item($tr("Highlight as") $0 "("$mask($0,12)")") ("$reguser.exactMatch($mask($0,12))" == "") + { + reguser.add $0 $mask($0,12); reguser.setproperty $0 highlight 1; + } + + item($tr("Highlight as") $0 "("$mask($0,13)")") ("$reguser.exactMatch($mask($0,13))" == "") + { + reguser.add $0 $mask($0,13); reguser.setproperty $0 highlight 1; + } + + item($tr("Highlight as") $0 "("$mask($0,3)")") ("$reguser.exactMatch($mask($0,3))" == "") + { + reguser.add $0 $mask($0,3); reguser.setproperty $0 highlight 1; + } + + item($tr("Highlight as") $0 "("$mask($0,4)")") ("$reguser.exactMatch($mask($0,4))" == "") + { + reguser.add $0 $mask($0,4); reguser.setproperty $0 highlight 1; + } + + item($tr("Highlight as") $0 "("$mask($0,5)")") ("$reguser.exactMatch($mask($0,5))" == "") + { + reguser.add $0 $mask($0,5); reguser.setproperty $0 highlight 1; + } + } + + item($tr("Always Highlight")) (!%:beingHl && %:regName) + { + reguser.setproperty $0 highlight 1 + } + + item($tr("Stop Highlighting")) (%:beingHl) + { + reguser.setproperty $0 highlight 0 + } +} + +defpopup(ignore) +{ + prologue + { + %:inIgnoreList = 0 + %:regName = $reguser.match($mask($0)) + %:ignLabelText = "

$0 " + if(%:regName) + { + %:inIgnoreList = $reguser.isIgnoreEnabled(%:regName); + if(%:inIgnoreList) %:ignLabelText << $tr("is being ignored") + else %:ignLabelText << $tr("is not being ignored") + + %:ignLabelText << "

" + } else { + %:ignLabelText << $tr("is not being ignored")"

" + } + } + + label(%:ignLabelText) + + item($tr("Enable Ignore"),168) (!%:inIgnoreList && %:regName) + { + reguser.setIgnoreEnabled %:regName 1; + } + + popup($tr("Ignore as..."),44) (!%:inIgnoreList) + { + item($tr("Ignore as") $0 "("$mask($0,0)")") ("$reguser.exactMatch($mask($0,0))" == "") + { + if(!%:regName) reguser.add $0 $mask($0,0); + reguser.setIgnoreEnabled $0 1; + reguser.setIgnoreFlags -p -c -n -t -i -d $0; + } + + item($tr("Ignore as") $0 "("$mask($0,1)")") ("$reguser.exactMatch($mask($0,1))" == "") + { + if(!%:regName) reguser.add $0 $mask($0,1); + reguser.setIgnoreEnabled $0 1; + reguser.setIgnoreFlags -p -c -n -t -i -d $0; + } + + item($tr("Ignore as") $0 "("$mask($0,2)")") ("$reguser.exactMatch($mask($0,2))" == "") + { + if(!%:regName) reguser.add $0 $mask($0,2); + reguser.setIgnoreEnabled $0 1; + reguser.setIgnoreFlags -p -c -n -t -i -d $0; + } + + item($tr("Ignore as") $0 "("$mask($0,3)")") ("$reguser.exactMatch($mask($0,3))" == "") + { + if(!%:regName) reguser.add $0 $mask($0,3); + reguser.setIgnoreEnabled $0 1; + reguser.setIgnoreFlags -p -c -n -t -i -d $0; + } + + item($tr("Ignore as") $0 "("$mask($0,4)")") ("$reguser.exactMatch($mask($0,4))" == "") + { + if(!%:regName) reguser.add $0 $mask($0,4); + reguser.setIgnoreEnabled $0 1; + reguser.setIgnoreFlags -p -c -n -t -i -d $0; + } + + item($tr("Ignore as") $0 "("$mask($0,5)")") ("$reguser.exactMatch($mask($0,5))" == "") + { + if(!%:regName) reguser.add $0 $mask($0,5); + reguser.setIgnoreEnabled $0 1; + reguser.setIgnoreFlags -p -c -n -t -i -d $0; + } + + item($tr("Ignore as") $0 "("$mask($0,6)")") ("$reguser.exactMatch($mask($0,6))" == "") + { + if(!%:regName) reguser.add $0 $mask($0,6); + reguser.setIgnoreEnabled $0 1; + reguser.setIgnoreFlags -p -c -n -t -i -d $0; + } + + item($tr("Ignore as") $0 "("$mask($0,7)")") ("$reguser.exactMatch($mask($0,7))" == "") + { + if(!%:regName) reguser.add $0 $mask($0,7); + reguser.setIgnoreEnabled $0 1; + reguser.setIgnoreFlags -p -c -n -t -i -d $0; + } + + item($tr("Ignore as") $0 "("$mask($0,8)")") ("$reguser.exactMatch($mask($0,8))" == "") + { + if(!%:regName) reguser.add $0 $mask($0,8); + reguser.setIgnoreEnabled $0 1; + reguser.setIgnoreFlags -p -c -n -t -i -d $0; + } + + item($tr("Ignore as") $0 "("$mask($0,9)")") ("$reguser.exactMatch($mask($0,9))" == "") + { + if(!%:regName) reguser.add $0 $mask($0,9); + reguser.setIgnoreEnabled $0 1; + reguser.setIgnoreFlags -p -c -n -t -i -d $0; + } + + item($tr("Ignore as") $0 "("$mask($0,10)")") ("$reguser.exactMatch($mask($0,10))" == "") + { + if(!%:regName) reguser.add $0 $mask($0,10); + reguser.setIgnoreEnabled $0 1; + reguser.setIgnoreFlags -p -c -n -t -i -d $0; + } + + item($tr("Ignore as") $0 "("$mask($0,11)")") ("$reguser.exactMatch($mask($0,11))" == "") + { + if(!%:regName) reguser.add $0 $mask($0,11); + reguser.setIgnoreEnabled $0 1; + reguser.setIgnoreFlags -p -c -n -t -i -d $0; + } + + item($tr("Ignore as") $0 "("$mask($0,12)")") ("$reguser.exactMatch($mask($0,12))" == "") + { + if(!%:regName) reguser.add $0 $mask($0,12); + reguser.setIgnoreEnabled $0 1; + reguser.setIgnoreFlags -p -c -n -t -i -d $0; + } + + item($tr("Ignore as") $0 "("$mask($0,13)")") ("$reguser.exactMatch($mask($0,13))" == "") + { + if(!%:regName) reguser.add $0 $mask($0,13); + reguser.setIgnoreEnabled $0 1; + reguser.setIgnoreFlags -p -c -n -t -i -d $0; + } + + item($tr("Ignore as") $0 "("$mask($0,14)")") ("$reguser.exactMatch($mask($0,14))" == "") + { + if(!%:regName) reguser.add $0 $mask($0,14); + reguser.setIgnoreEnabled $0 1; + reguser.setIgnoreFlags -p -c -n -t -i -d $0; + } + + item($tr("Ignore as") $0 "("$mask($0,15)")") ("$reguser.exactMatch($mask($0,15))" == "") + { + if(!%:regName) reguser.add $0 $mask($0,15); + reguser.setIgnoreEnabled $0 1; + reguser.setIgnoreFlags -p -c -n -t -i -d $0; + } + + item($tr("Ignore as") $0 "("$mask($0,16)")") ("$reguser.exactMatch($mask($0,16))" == "") + { + if(!%:regName) reguser.add $0 $mask($0,16); + reguser.setIgnoreEnabled $0 1; + reguser.setIgnoreFlags -p -c -n -t -i -d $0; + } + + item($tr("Ignore as") $0 "("$mask($0,17)")") ("$reguser.exactMatch($mask($0,17))" == "") + { + if(!%:regName) reguser.add $0 $mask($0,17); + reguser.setIgnoreEnabled $0 1; + reguser.setIgnoreFlags -p -c -n -t -i -d $0; + } + + item($tr("Ignore as") $0 "("$mask($0,18)")") ("$reguser.exactMatch($mask($0,18))" == "") + { + if(!%:regName) reguser.add $0 $mask($0,18); + reguser.setIgnoreEnabled $0 1; + reguser.setIgnoreFlags -p -c -n -t -i -d $0; + } + + item($tr("Ignore as") $0 "("$mask($0,19)")") ("$reguser.exactMatch($mask($0,19))" == "") + { + if(!%:regName) reguser.add $0 $mask($0,19); + reguser.setIgnoreEnabled $0 1; + reguser.setIgnoreFlags -p -c -n -t -i -d $0; + } + + item($tr("Ignore as") $0 "("$mask($0,20)")") ("$reguser.exactMatch($mask($0,20))" == "") + { + if(!%:regName) reguser.add $0 $mask($0,20); + reguser.setIgnoreEnabled $0 1; + reguser.setIgnoreFlags -p -c -n -t -i -d $0; + } + + item($tr("Ignore as") $0 "("$mask($0,21)")") ("$reguser.exactMatch($mask($0,21))" == "") + { + if(!%:regName) reguser.add $0 $mask($0,21); + reguser.setIgnoreEnabled $0 1; + reguser.setIgnoreFlags -p -c -n -t -i -d $0; + } + + item($tr("Ignore as") $0 "("$mask($0,22)")") ("$reguser.exactMatch($mask($0,22))" == "") + { + if(!%:regName) reguser.add $0 $mask($0,22); + reguser.setIgnoreEnabled $0 1; + reguser.setIgnoreFlags -p -c -n -t -i -d $0; + } + + item($tr("Ignore as") $0 "("$mask($0,23)")") ("$reguser.exactMatch($mask($0,23))" == "") + { + if(!%:regName) reguser.add $0 $mask($0,23); + reguser.setIgnoreEnabled $0 1; + reguser.setIgnoreFlags -p -c -n -t -i -d $0; + } + + item($tr("Ignore as") $0 "("$mask($0,24)")") ("$reguser.exactMatch($mask($0,24))" == "") + { + if(!%:regName) reguser.add $0 $mask($0,24); + reguser.setIgnoreEnabled $0 1; + reguser.setIgnoreFlags -p -c -n -t -i -d $0; + } + + item($tr("Ignore as") $0 "("$mask($0,25)")") ("$reguser.exactMatch($mask($0,25))" == "") + { + if(!%:regName) reguser.add $0 $mask($0,25); + reguser.setIgnoreEnabled $0 1; + reguser.setIgnoreFlags -p -c -n -t -i -d $0; + } + + item($tr("Ignore as") $0 "("$mask($0,26)")") ("$reguser.exactMatch($mask($0,26))" == "") + { + if(!%:regName) reguser.add $0 $mask($0,26); + reguser.setIgnoreEnabled $0 1; + reguser.setIgnoreFlags -p -c -n -t -i -d $0; + } + } + + item($tr("Unignore"),217) (%:inIgnoreList) + { + reguser.setIgnoreEnabled %:regName 0; + } +} + +defpopup(registration) +{ + prologue + { + + # This is really smart...we are loading + # the reguser module only if this popup is being requested (the user effectively + # puts the mouse on the "Registration" item and the sub-popup is being shown) + %:regName = $reguser.match($mask($0)) + %:labelText = "

$0"; + if(%:regName) + { + %:labelText << $tr("is registered as") ": "%:regName"" + # We want to display masks here!!! + %:inNotifyList = $reguser.property(%:regName,notify); + if(%:inNotifyList)%:labelText << "
$0" $tr("is in the notify list") + %:curAvatar = $avatar.name($0); + %:defAvatar = $reguser.property(%:regName,avatar); + if(%:defAvatar)%:labelText << "
$0" $tr("has a default avatar") + %:labelText << "

" + } else { + %:labelText << $tr("is not registered")"

" + } + } + + label(%:labelText) + + item($tr("Register")"...") (!%:regName) + { + reguser.wizard $mask($0) + } + + popup($tr("Quick Registration")) (!%:regName) + { + item($tr("Register as") $0 "("$mask($0,11)")") ("$reguser.exactMatch($mask($0,11))" == "") + { + reguser.add $0 $mask($0,11) + } + + item($tr("Register as") $0 "("$mask($0,12)")") ("$reguser.exactMatch($mask($0,12))" == "") + { + reguser.add $0 $mask($0,12) + } + + item($tr("Register as") $0 "("$mask($0,13)")") ("$reguser.exactMatch($mask($0,13))" == "") + { + reguser.add $0 $mask($0,13) + } + + item($tr("Register as") $0 "("$mask($0,3)")") ("$reguser.exactMatch($mask($0,3))" == "") + { + reguser.add $0 $mask($0,3) + } + + item($tr("Register as") $0 "("$mask($0,4)")") ("$reguser.exactMatch($mask($0,4))" == "") + { + reguser.add $0 $mask($0,4) + } + + item($tr("Register as") $0 "("$mask($0,5)")") ("$reguser.exactMatch($mask($0,5))" == "") + { + reguser.add $0 $mask($0,5) + } + } + + item($tr("Edit Registration")"...",113) (%:regName) + { + reguser.edit "%:regName" + } + + item($tr("Unregister") %:regName) (%:regName) + { + reguser.remove "%:regName" + } + + separator + + item($tr("Add to Notify")) (%:regName && !%:inNotifyList) + { + reguser.setproperty -n "%:regName" notify $0 + } + + item($tr("Remove from Notify")) (%:regName && %:inNotifyList) + { + reguser.setproperty -n "%:regName" notify + } + + popup($tr("Avatar")) (%:regName) + { + item($tr("Choose")"...") (%:regName) + { + dialog.image(f,$tr("Choose Avatar Image File"),"","",$0,"%:regName") + { + if($0) + { + reguser.setproperty -a $2 avatar $0; + } + } + } + + item($tr("Set as Default")) (%:curAvatar && ("%:curAvatar" != "%:defAvatar")) + { + reguser.setproperty "%:regName" avatar %:curAvatar + } + + item($tr("Clear Default")) (%:defAvatar) + { + reguser.setproperty %:regName avatar + # Force the avatar to update + # if("%:curAvatar" == "")who $0 + } + } +} + +defpopup("urlpopup") +{ + item($tr("Copy To Clipboard"),259) + { + str.toClipboard $0 + } +} + +# This code adds a channel popup that accepts +# a comma separated list of nicknames as parameter (to the /popup command) + +defpopup(channel) +{ + prologue + { + # we use the extended scope variables: they are visible in the entire defpopup scope + # %:visible is the string that we will "show to the user" in the popup widget + # for multiple users the string might become long so we are going to change it in "multiple users" + %:visible = $0 + # %:multiple is an internal flag: set to 1 if the parameter passed to the popup contains a list + # of multiple nicknames rather than a single nick + %:multiple = 0 + # finally , set these variables + %:itemBanName = $tr("Ban") + if($str.findfirst(%:visible,",") != -1) + { + # found a comma in the $0 parameter...we have multiple nicknames + %:visible = "("$tr("Multiple Users")")" + %:multiple = 1 + %:itemBanMask = "*!user@*.host.tld" + %:itemBanNick = "nick" + } else { + %:itemBanMask = $mask(%:visible,$option(uintDefaultBanType)) + if("%:itemBanMask" == "*!*@*")%:itemBanName = $tr("&Ban") + %:itemBanNick = %:visible + } + # speed it up + + %:isMeHalfOp = $chan.isMeHalfOp() + %:isMeOp = $chan.isMeOp() + %:isMeOwner = $chan.isMeOwner() + %:isMeAdmin = $chan.isMeAdmin() + %:bCanKB = 0; + + if(%:isMeHalfOp) + { + foreach(%nick,$str.split(",",$0)) + { + if($chan.usermodelevel(%nick) <= $chan.usermodelevel($me)) + { + %:bCanKB = 1; + break; + } + } + } + } + + item("/WHOIS" %:visible "("$tr("idle time")")",75,whois_item) + { + foreach(%i,$str.split(",",$0)) + whois %i %i + } + + separator + + popup($tr("&Information"),49,"information_popup") + { + item("/WHOIS" %:visible,75,"whois_item") + { + whois $0 + } + + item(/WHOWAS %:visible,92) + { + whowas $0 + } + + item(/WHO %:visible,75) + { + who $0 + } + + separator + + item($tr("DNS for") %:visible,75) + { + foreach(%i,$str.split(",",$0))dns %i + } + + item($tr("Mask for") %:visible,75) (!%:multiple) + { + echo $mask($0,11) + } + } + + popup($tr("&Control"),9,"control_popup") (%:isMeHalfOp) + { + label($usermodename($me())) + + item($tr("O&wner") %:visible,260) (%:isMeOwner) + { + chanowner $0 + } + + item($tr("&Deowner") %:visible,261) (%:isMeOwner) + { + dechanowner $0 + } + + item($tr("&Administrator") %:visible,242) (%:isMeAdmin) + { + chanadmin $0 + } + + item($tr("&Deadministrator") %:visible,243) (%:isMeAdmin) + { + dechanadmin $0 + } + + item($tr("&Op") %:visible,34) (%:isMeOp) + { + op $0 + } + + item($tr("&Deop") %:visible,62) (%:isMeOp) + { + deop $0 + } + + item($tr("&Halfop") %:visible,174) (%:isMeOp) + { + halfop $0 + } + + item($tr("&Dehalfop") %:visible,175) (%:isMeOp) + { + dehalfop $0 + } + + item($tr("&Voice") %:visible,35) (%:isMeHalfOp) + { + voice $0 + } + + item($tr("D&evoice") %:visible,63) (%:isMeHalfOp) + { + devoice $0 + } + + separator + + item($tr("&Kick") %:visible,110) (%:bCanKB) + { + foreach(%i,$str.split(",",$0))kick %i + } + + item($tr("K&ick") %:visible $tr("With..."),110) (%:bCanKB) + { + dialog.textinput -d="$me" -i=110 ($tr("Kick Reason"),$tr("Enter a kick reason"),$tr("&Kick"),$tr("Cancel"),,$0) + { + if($0 == 0) + { + foreach(%i,$str.split(",",$2))kick %i $1 + } + } + } + + item($tr("&Ban") %:visible "("%:itemBanMask")",67) (("%:itemBanMask" != "*!*@*") && %:bCanKB) + { + ban $mask($0,$option(uintDefaultBanType)) + } + + item(%:itemBanName %:visible "("%:itemBanNick!*@*")",67) (%:bCanKB) + { + ban $0 + } + + item($tr("Kick/Ban") %:visible,110) (%:bCanKB) + { + kb $0 + } + + item($tr("Kick/Ban") %:visible $tr("With..."),110) (%:bCanKB) + { + dialog.textinput -d="$me" -i=110 ($tr("Kick/Ban Reason"),$tr("Enter a kick/ban reason"),$tr("&Kick/Ban"),$tr("Cancel"),,$0) + { + if($0 == 0) + { + kb $2 $1 + } + } + } + separator + + item($tr("Configure ban mask..."),20) + { + options.edit KviChannelAdvancedOptionsWidget + } + } + + separator + + item($tr("&Query") %:visible,47) + { + query $0 + } + + separator + + extpopup(C&TCP,ctcp,51) + + extpopup(&DCC,dcc,77) (!%:multiple) + + separator + + extpopup($tr("&Registration"),registration,111) (!%:multiple) + + extpopup($tr("&Highlight"),highlight,181) (!%:multiple) + + extpopup($tr("Ig&nore"),ignore,203) (!%:multiple) + + item($tr("Notify Avatar"),57) + { + avatar.notify $0 + } +} + +# Popup to show on right-clicking channel links +# +defpopup(channelpopup) +{ + item($tr("&Join") $0,145) + { + hop $0 + } + + item($tr("&Part") $0,40) + { + if($channel($0)) part $0 $option(stringPartMessage); + } + + separator + + item(/NAMES $0,75) + { + names $0; + } + + item(/WHO $0,75) + { + who $0; + } + separator + + item($tr("Copy Channel Address"),259) + { + str.toClipboard $chan.getUrl($0) + } + +} + +defpopup(channels) +{ + item(#KVirc,46) + { + j #KVirc + } + + item(#MDE,46) + { + j #MDE + } + + item(#kde,46) + { + j #kde + } +} + +defpopup(channeltextview) +{ + extpopup($tr("Channels"),channels,46) + + item($tr("&Join Channels..."),46) ($server) + { + if($option(boolShowChannelsJoinDialogAsToplevel))channelsjoin.open -t;else channelsjoin.open + } + + separator + + item($tr("&Hop") $0,145) + { + hop $0 + } + + item($tr("&Part") $0,40) + { + if($channel($0)) part $0 $option(stringPartMessage); + } + + separator + + extpopup(C&TCP,ctcp,51) + + separator + + item(/NAMES $0,75) + { + names $0; + } + + item(/WHO $0,75) + { + who $0; + } + + item($tr("Notify Avatar"),57) + { + avatar.notify $0 + } + + separator + + item($tr("Copy Channel URL to Clipboard"),259) + { + str.toClipboard $chan.getUrl + } + + item($tr("Clear Buffer"),121) + { + clear; + } + +} + +defpopup(consoletextview) +{ + label($tr("You're not connected to a server")) (!$server) + + extpopup($tr("Channels"),channels,46) + + separator + + item($tr("&Join Channels..."),46) ($server) + { + if($option(boolShowChannelsJoinDialogAsToplevel))channelsjoin.open -t;else channelsjoin.open + } + + popup($tr("&Information"),13) ($server) + { + item(/MOTD,30) + { + motd + } + + item(/INFO,29) + { + info + } + + item(/LUSERS,57) + { + lusers + } + + popup(/STATS,22) + { + item(d "(Debug/DNS?)") + { + stats d + } + + item($tr("l (Connections)")) + { + stats l + } + + item($tr("m (Command Usage)")) + { + stats m + } + + item($tr("o (Operators)")) + { + stats o + } + + item($tr("t (Connection stats ?)"),23) + { + stats t + } + + item($tr("u (Uptime)"),93) + { + stats u + } + + item($tr("y (y-Lines)")) + { + stats y + } + + item($tr("z (Debug Stats?)"),11) + { + stats z + } + } + + item(/TIME,93) + { + time + } + + item(/ADMIN,29) + { + admin + } + + item(/VERSION,16) + { + version + } + + item(/HELP,49) + { + raw help + } + } + + separator + + item($tr("Clear Buffer"),121) + { + clear; + } +} + +# This is a common popup , accepts a list of nicknames as parameter +defpopup(ctcp) +{ + item(PING,36) + { + ctcp $0 PING + } + + item(FINGER,53) + { + ctcp $0 FINGER + } + + item(VERSION,16) + { + ctcp $0 VERSION + } + + item(USERINFO,57) + { + ctcp $0 USERINFO + } + + item(CLIENTINFO,52) + { + ctcp $0 CLIENTINFO + } + + item(SOURCE,14) + { + ctcp $0 SOURCE + } + + item(TIME,93) + { + ctcp $0 TIME + } + + item(PAGE...,223) + { + #dialog.textinput -d="Wakeup!" ($tr("CTCP Page to") $0,$tr("Enter the message text"),$tr("Ok"),$tr("Cancel")) + dialog.textinput(CTCP Page $0,Enter the message text,&Page,Cancel,"",$0) + { + if($0 == 0)ctcp $2 PAGE $1 + } + } + + item(AVATAR,57) + { + ctcp $0 AVATAR + } +} + +defpopup(dcc) +{ + prologue + { + + if($features("SSL"))%:bHaveSSL=1 + else %:bHaveSSL=0 + } + + item($tr("Chat with") $0,78) + { + dcc.chat $0 + } + + item($tr("Reverse Chat with") $0,78) + { + dcc.chat -z $0 + } + + item($tr("Secure Chat with") $0,78) (%:bHaveSSL) + { + dcc.chat -s $0 + } + + separator + + item($tr("Send to") $0,79) + { + dcc.send $0 + } + + item($tr("Secure send to") $0,79) + { + dcc.send -s $0 + } + + item($tr("Reverse Send to") $0,79) + { + dcc.rsend -z $0 + } + + item($tr("Secure Reverse Send to") $0,79) + { + dcc.rsend -z -s $0 + } + + separator + + item($tr("TDCC Send to") $0,77) + { + dcc.send -t $0 + } + + item($tr("TDCC Reverse Send to") $0,77) + { + dcc.rsend -t $0 + } + + separator + + popup($tr("Voice Chat"),166) + { + item($tr("Default")": ADPCM 8 KHz (32 kbps)") + { + dcc.voice $0 + } + + separator + + item("ADPCM 11.025 KHz (44.1 kbps)") + { + dcc.voice -h=11025 $0 + } + + item("ADPCM 16 KHz (64 kbps)") + { + dcc.voice -h=16000 $0 + } + + item("ADPCM 22.05 KHz (88.2 kbps)") + { + dcc.voice -h=22050 $0 + } + + item("GSM 8 KHz (13.2 kbps)") + { + dcc.voice -g=gsm $0 + } + + item("GSM 11.025 KHz (18.1 kbps)") + { + dcc.voice -g=gsm -h=11025 $0 + } + + item("GSM 16 KHz (26.4 kbps)") + { + dcc.voice -g=gsm -h=16000 $0 + } + + item("GSM 22.05 KHz (36.2 kbps)") + { + dcc.voice -g=gsm -h=22050 $0 + } + + item("GSM 44.1 KHz (72.4 kbps)") + { + dcc.voice -g=gsm -h=44100 $0 + } + + item("NULL 8 KHz (128 kbps)") + { + dcc.voice -g=null $0 + } + + item("NULL 11.025 KHz (176.4 kbps)") + { + dcc.voice -g=null -h=11025 $0 + } + } +} + +defpopup(dccchat) +{ + prologue + { + + # we use the extended scope variables: they are visible in the entire defpopup scope + # %:visible is the string that we will "show to the user" in the popup widget + # for multiple users the string might become long so we are going to change it in "multiple users" + %:visible = $0 + # %:multiple is an internal flag: set to 1 if the parameter passed to the popup contains a list + # of multiple nicknames rather than a single nick + %:multiple = 0 + # finally , set these variables + if($str.findfirst(%:visible,",") != -1) + { + # found a comma in the $0 parameter...we have multiple nicknames + %:visible = "("$tr("Multiple Users")")" + %:multiple = 1 + } + } + + separator + + extpopup(C&TCP,ctcp,51) + + extpopup(&DCC,dcc,77) + + separator + + item($tr("Notify Avatar"),57) + { + avatar.notify $0 + } + + separator + + item($tr("Clear Buffer"),121) + { + clear + } +} + +# +# Some minimal work on the query +# A text view popup (right click on a query view) +# + +defpopup(querytextview) +{ + prologue + { + + # we use the extended scope variables: they are visible in the entire defpopup scope + # %:visible is the string that we will "show to the user" in the popup widget + # for multiple users the string might become long so we are going to change it in "multiple users" + %:visible = $0 + # %:multiple is an internal flag: set to 1 if the parameter passed to the popup contains a list + # of multiple nicknames rather than a single nick + %:multiple = 0 + # finally , set these variables + if($str.findfirst(%:visible,",") != -1) + { + # found a comma in the $0 parameter...we have multiple nicknames + %:visible = "("$tr("Multiple Users")")" + %:multiple = 1 + } + } + + item(/WHOIS $0 "("$tr("idle time")")",75) (!%:multiple) + { + whois $0 $0 + } + + separator + + popup($tr("&Information"),49) + { + item(/WHOIS $0,75) + { + whois $0 + } + + item(/WHOWAS $0,92) + { + whowas $0 + } + + item(/WHO $0,75) + { + who $0 + } + + separator + + item($tr("DNS for") $0,75) + { + foreach(%i,$str.split(",",$0))dns %i + } + + item($tr("Mask for") $0,75) (!%:multiple) + { + echo $mask($0,11) + } + } + + separator + + extpopup(C&TCP,ctcp,51) + + extpopup(&DCC,dcc,77) + + separator + + extpopup($tr("&Ignore"),ignore,203) (!%:multiple) + + extpopup($tr("&Registration"),registration,111) (!%:multiple) + + item($tr("Notify Avatar"),57) + { + avatar.notify $0 + } + + separator + + item($tr("Clear Buffer"),121) + { + clear + } +} + + +# +# Logging popup for the windows +# +defpopup(logging) +{ + prologue + { + + # If this window is being logged actually , $log.file will be non empty + # and pointing to the log file actually open. + %:logfile = $str.replace($log.file,,$file.localdir) + } + + label($tr("Logging to"):
%:logfile) ("%:logfile" != "") + + item($tr("Flush Log File"),19) (%:logfile) + { + log.flush + } + + separator + + item($tr("Stop Logging"),58) (%:logfile) + { + log.stop + } + + label($tr("Not Logging")) (!%:logfile) + + item($tr("Log To Default File"),119) (!%:logfile) + { + log.start + } + + item($tr("Log To Default File") "("$tr("Include Existing Buffer")")",119) (!%:logfile) + { + log.start -p + } + + item($tr("Log To..."),119) (!%:logfile) + { + dialog.file(save,$tr("Choose Log Filename")) + { + if($0)log.start $0 + } + } + + item($tr("Log To...") "("$tr("Include Existing Buffer"),119) (!%:logfile) + { + dialog.file(save,$tr("Choose Log Filename")) + { + if($0)log.start -p $0 + } + } +} + +defpopup(defaulttextview) +{ + prologue + { + + # we use the extended scope variables: they are visible in the entire defpopup scope + # %:visible is the string that we will "show to the user" in the popup widget + # for multiple users the string might become long so we are going to change it in "multiple users" + %:visible = $0 + # %:multiple is an internal flag: set to 1 if the parameter passed to the popup contains a list + # of multiple nicknames rather than a single nick + %:multiple = 0 + # finally , set these variables + if($str.findfirst(%:visible,",") != -1) + { + # found a comma in the $0 parameter...we have multiple nicknames + %:visible = "("$tr("Multiple Users")")" + %:multiple = 1 + } + } + + item(/WHOIS $0 "("$tr("idle time")")",75) (!%:multiple) + { + whois $0 $0 + } + + separator + + popup($tr("&Information"),49) + { + item(/WHOIS $0,75) + { + whois $0 + } + + item(/WHOWAS $0,92) + { + whowas $0 + } + + item(/WHO $0,75) + { + who $0 + } + + separator + + item(DNS $0,75) + { + foreach(%i,$str.split(",",$0))dns %i + } + } + + separator + + item($tr("&Query") %:visible,47) + { + query $0 + } + + separator + + extpopup(C&TCP,ctcp,51) + + extpopup(&DCC,dcc,77) + + separator + + extpopup($tr("&Registration"),registration,111) (!%:multiple) + + extpopup($tr("&Highlight"),highlight,181) (!%:multiple) + + extpopup($tr("Ig&nore"),ignore,203) (!%:multiple) + + item($tr("Notify avatar"),57) + { + avatar.notify $0 + } + + separator + + item($tr("Clear Buffer"),121) + { + clear + } +} + +file.addimagepath %mypath/pics/ + +# +# FIXME: Add uninstall part: +# file.delimagepath +# + + +# +# A default popup for the middle click in a text view +# This should manage logging , buffer saving and other +# stuff common to ALL windows +# + +defpopup(windowpopup) +{ + extpopup(Logging,logging,119) + +# popup(Buffer) +# { +# item("Save to file...")window.savebuffer +# item("Clear")window.clear +# item("Find...")window.findtext +# } +# popup(View) +# { +# item("Show images")($window.images == 0)window.images 1 +# item("Enable timestamps")($window.timestamp == 0)window.timestamp 1 +# item("Disable timestamps")($window.timestam == 1)window.timestamp 0 +# item("Set font...")$window.setfont +# item("Set background...")$window.setbackground +# } +# popup(Mdi) +# { +# item("Minimize")window.minimize +# item("Maximize")window.maximize +# } +} + +# Host link popup + +defpopup(hostpopup) +{ + item(Look Up $0,13) + { + host -a $0 + } + + separator + + item(Open ftp://$0/,145) ("$system.ostype" == "unix") + { + openurl ftp://$0/ + } + + item(Telnet to $0,25) + { + if("$system.ostype" == "unix")run xterm -e telnet $0 + else run telnet $0 + } + + separator + + item(Traceroute $0,42) + { + if("$system.ostype" == "unix")run xterm -e /bin/sh -c "echo \"Traceroute to $0...\" && traceroute $0 && cat" + else run tracert $0 + } + + item(Traceroute6 $0,42) + { + if("$system.ostype" == "unix")run xterm -e /bin/sh -c "echo \"Traceroute (inet6) to $0...\" && traceroute6 $0 && cat" + else run tracert6 $0 + } + + item(Ping $0,147) + { + if("$system.ostype" == "unix")run xterm -e /bin/sh -c "echo \"Ping $0...\" && ping $0 && cat" + else run ping $0 + } + + item(Ping6 $0,147) + { + if("$system.ostype" == "unix")run xterm -e /bin/sh -c "echo \"Ping (inet6) $0...\" && ping6 $0 && cat" + else run ping6 $0 + } +} \ No newline at end of file diff --git a/data/defscript/theme-install.kvs b/data/defscript/theme-install.kvs new file mode 100644 index 0000000..febbbbc --- /dev/null +++ b/data/defscript/theme-install.kvs @@ -0,0 +1,30 @@ +addon.register("Theme: @THEMENAME@","@THEMEVERSION@",$tr("@THEMENAME@"),$tr("@THEMEDESCRIPTION@"),"3.2.0.99") +{ + # This is our uninstall callback: it will be called by KVIrc when addon.uninstall is invoked + + # This is an automatically generated alias that will erase the installed files + @ALIASNAME@_uninstallfiles + file.rmdir $file.localdir("themes/@SUBDIR@") + alias(@ALIASNAME@_uninstallfiles) {} + # Done +} + +# Ok, addon.register succeeded. We can go on with the installation. + +# Get the path that this script was launched from +%mypath = $file.extractPath($0) + +# get the installer helper class (this is pretty standard and included in the distro) +parse %mypath/utils/installer.kvs + +# The installer will copy our files and generate automatically +# an uninstallation alias for them +%installer = $new(installer,0,myinstaller) + +# copy files in each subdirectory +# the pics + +%installer->$copyFiles("%mypath/files/","*",$file.localdir("themes/@SUBDIR@")) +%installer->$generateUninstallAlias("@ALIASNAME@_uninstallfiles") +# finally kill the installer helper +delete %installer diff --git a/data/defscript/toolbars.kvs b/data/defscript/toolbars.kvs new file mode 100644 index 0000000..84e7b93 --- /dev/null +++ b/data/defscript/toolbars.kvs @@ -0,0 +1,43 @@ +# Default toolbars file + +toolbar.create irccontext $tr("IRC Context") $icon("irc4") +# toolbar.additem irccontext kvirc.irccontextdisplay - info dublicated with te status line +toolbar.additem irccontext kvirc.connect +toolbar.additem irccontext kvirc.servermenu +toolbar.additem irccontext kvirc.newirccontext +toolbar.additem irccontext kvirc.separator +toolbar.additem irccontext kvirc.nicknamemenu +toolbar.additem irccontext kvirc.irctools +toolbar.additem irccontext kvirc.ircactions +toolbar.additem irccontext kvirc.usermodemenu +toolbar.show irccontext + +toolbar.create options $tr("Options") $icon("options") +toolbar.additem irccontext kvirc.serveroptions +toolbar.additem options kvirc.identityoptions +toolbar.additem options kvirc.generaloptions +toolbar.additem options kvirc.themeoptions +toolbar.show options + +toolbar.create help $tr("Help") 49 +toolbar.additem help kvirc.helpindex +if($lang(short)==ru) + toolbar.additem help kvirc.kvircruhomepage +else + toolbar.additem help kvirc.kvirchomepage +toolbar.show help + +toolbar.create scripting $tr("Scripting") $icon("binarytext") +toolbar.additem scripting kvirc.actioneditor +toolbar.additem scripting kvirc.aliaseditor +toolbar.additem scripting kvirc.eventeditor +toolbar.additem scripting kvirc.popupeditor +toolbar.additem scripting kvirc.raweditor +toolbar.additem scripting kvirc.codetester +toolbar.additem scripting kvirc.separator +toolbar.additem scripting kvirc.executekvs + +toolbar.create winops $tr("Window operations") $icon("cascadewindows") +toolbar.additem winops kvirc.cascadewindows +toolbar.additem winops kvirc.tilewindows +toolbar.additem winops kvirc.minimizeallwindows \ No newline at end of file diff --git a/data/deftheme/Makefile.am b/data/deftheme/Makefile.am new file mode 100644 index 0000000..c6ce91e --- /dev/null +++ b/data/deftheme/Makefile.am @@ -0,0 +1,2 @@ +SUBDIRS = silverirc + diff --git a/data/deftheme/silverirc/Makefile.am b/data/deftheme/silverirc/Makefile.am new file mode 100644 index 0000000..e4f01a6 --- /dev/null +++ b/data/deftheme/silverirc/Makefile.am @@ -0,0 +1,5 @@ +tmpdir = $(themedir)/silverirc + +tmp_DATA = themeinfo.kvc themedata.kvc pixmapIrcViewBackground.png pixmapInputBackground.png pixmapUserListViewBackground.png + +EXTRA_DIST = $(tmp_DATA) \ No newline at end of file diff --git a/data/deftheme/silverirc/pixmapInputBackground.png b/data/deftheme/silverirc/pixmapInputBackground.png new file mode 100644 index 0000000000000000000000000000000000000000..8e903351fefdf7383de75f15555e91872d55a575 GIT binary patch literal 200 zcmeAS@N?&q;$mQ6;Pv!y2?ElLK+Mm<3?zjPhMopeEa{HEjtmUzPnffIy#(?lOI#yL zg7ec#$`gxH85~pclTsBta}(23gHjVyDhp4h+5i>l2Ka=ye*F0H-Me?cfB$~}{{5dn zf8M-#^YiD=Z{NOs{`~pFhYx@M{(bxQ?XO?IzJLGz<;xfA#Q)oX8kIa<978H@u^en= yWKiH?P&jk*|9tI;Rc~Ib`@rMlx@oKa0S2~}3|V^j^i+YW89ZJ6T-G@yGywo*CRpnL literal 0 HcmV?d00001 diff --git a/data/deftheme/silverirc/pixmapIrcViewBackground.png b/data/deftheme/silverirc/pixmapIrcViewBackground.png new file mode 100644 index 0000000000000000000000000000000000000000..f02f9166b4fdcbf5826d8ccaca98765e782b93cc GIT binary patch literal 12760 zcmeHu`9GB1|9|&gcY8@lq)}9|hY&8@6((6GJK1hoCVQ4)W^8v!wwNSa#^uh^SVBm$ zmnFtBlRZ1LGPYUm%g6Wc_`ZL+&f{F?T#v`Op0C$=ZO?P!ADKc=ik>`l=+GI%2YTj* z4*dZ+bm-{c#}6O8$-F(ae9#<$-!-{==ukzM`d^ax4cMQTo`9FS63Go)_7bVca=UjKQlJFN++?IoORy%&i3vCjmlcUtyCdA-um^T|IR z=dR9Hd5t=aQsFbPS@>(V`-*-$&cQp1z}_j$=xpXOsM;-sKgqCX4qL7l#4snw*YAMQ zuKbW5CNeR3{ToYA>;l02ewgonkN;utKRx*0Hu#?@_@5>G|Jo8dzlO7hv>N!5{pUuv z0@O;P0>FX!B_HP;e|S?xU-eB5h2%$XD@^V;)IEcn?#goH7EPiDeUjhXzgAflfk3);@S}|pt=Ciw-wkxunOt4-!*34Zc!#y6?fyuio`~_Hsg{1 zRxC}14bw~6a^Pu9^<)a&GkC49Ob6!t4$g8KJ^1v=8KT!$c@wV%hQ(GMkmsKx4NP55bL3N$8CaW=)qUp_r%nHwalyldVhZ0>%R>YXwNFJoltHev zfrz)V3--YyYO43$Dc!7>kEVoYD($x{%}Sj-4Vr* zRBu?xCS)W-@YO-wBMBV4n@!EO+&Cec-R>r}tnm^IPp{j557bvAQrC;F)&EWgc=e+V zdfbS+pnF6?=q-anYR^gyPRA?K6RgTdxOp|nh0s|ab>kk=Dt2cwD%MTf5&tP&)E&B633p-%(JQ&C&p~Z zcIn15Z?i>++pLW_ftv*97jV`}k&(c9phmqSrseZSAW(A42$J$RKFM1WX1uy}4_Noe z&~O>4-fY!B=!ya#{d1@@XXj3E73fB39s=5Zjgv2(S9$~n8=C(l<~fXJj6h*TZy64) z^u=ENQ1Sj{P*;h33+%{Sx{YutSG00hSjLlySZd73Rwu_{WO61vBk|*DisU$u&G|6SwEGEJO*jGQ)&T$ z_hBfT99sgWw=2WB@%T6fepQhOWOcMR`7QE;T@PlZJA~lT+~+`s;&m8KqkB~Uh~o;e z8d;*1yur8Gi6pR%Le0Njf_Wk=dM}H2TAXPo6pabyGN>7L%Yot`+$>68JDu$0p1u=Q zpa4-kkN7$pkT=J10m@AWqg3^eq&X{u((QDHJE9(l|BL|kpFZofcb${}VlJWF#>&D{B%gB%sYXRN(~M#{nW6<}KSdsa@d7-bKo{kH zk`oSj)t|Vbt5rxJy8-GOPF#dM-`Y8E(zuJXHu_?$oZ>3}J;m`!3+6`az-y6%r06W{sG|Uk{dX4fDWslIeju zGp7&5i(0-_RZFMq8(xbOqLH|HMDp_~%Bl++l`gp3RQC=$ExuLn|f!ACA0mviH`LvB^^ z-}Uwye*H>)GLvOa!PbS{IP@BZ(w{QO^-8u4 zHt>jl-lcSi%FUy90e1G5?w$4@)@3EKtc#8YOuJI6Isg^G6WSfr>Z*Y*~5*?kIT z*9!f+i@axf1C1rK9eQP)Jdz3swzQsyfq02)CH|3u4=ck_m7ioUajMN0G``yDAL^E7 zhCkqT{l;V1kxSnY@HF_2vXh<{w+pXjQYQI+xX8iDF992kBza-NFDFUa+ppy`)^-e5 z{0>pZ$n*yemqbh|&>|&6ozx9X(SZ0lZDHjQ_VeFa!vzlkB8Rg<)hE1Qd^nw|N;ftR zqP)#?VapAWxWRnvZA?@e&l2XyT0cC1qAoSgpL28Es?!0YOJp0-cT-B#{ z>tgo)PsLQx3QGrK>?JfX?5YdU0>%ofue6m+EJZ@1(xbqR3P^IB#n!*$lCGTr2Bdu4 z+IY^-XLo$wwaeaObo^TU8GNEO%S*T%u&O(AW&rC-V1_H(&nQqr;MvFsy?sLOQG zun=qfC{EXrK7_LNF05brXspF)VeZdIkK`B< zlRL~4+DAzioL+BoGj^4Na3mDX)XX(e{4ZT(WY2x}IkW51WasZcG7uiuV*d(adj-A6 z=^@*%T3U;{v%c=wAlpT!a%E+~SBR!zW-|J(=69~QE&@HUy>lx08Nwnuxa3*8^4GB5 zpbv~>JHxI?{OMy+t;fuFIf1&|IEM>4eR)2W#FnRbaCvtWGxpD8y5tHEbSnTaSSBtk ztQ&dcff~fpFmfeL7tBE9IPRar6m>Tfo>JnLyxc#DJ7MEeE?y5ndA#kp^aq%se_s$z z_oQwDxf#%vGh3RQk@pD^kCPU~p|dDRqgE?!ZKEMxT{p9iIL78z& zjF83sBbXv!I{eXMSKr|Cn}jm!04Dh&kXU$=@PxLrvx$0vuv?ZLrTlErhFrjXyt8kZ zdk`ZnO|L)9)kQm1lLK#s+)zdq5bp`m=dRpV4eqq|uDsiN?(gVAtmuetlxJj3j||d) zgwRR1>U>=(M-buHiBcG#+nt_v3y4gx%q4cJh#O(i`;F!zqb0(^0``tWC3w=LK!--C z7)Yn~SqjlRbiWU-+IZPT2*J&RP!~$>(2wetKp!ZWVf8tI-TQySip@(2Cf7^QK(vdN zWCCYab9cP@oYBUI$&ue_olOx@_PK2+na#*Ca64^WR_E*Rn^TFuN#Qp!K8}NfgS5fB z*~MVWj#y%v0e7e;1hL21a`>jB5;k8H(}Ac5h>3-&a+-sLh3;O|VPnc$=VFMSrYPoS zuh4cYFUvV|q#RDjdhK9qY)<8uUGv0ADjpA6q{<^3XB?cG(iEju+b_S@ItgoL zCT?%}AD*)LQ7SRWt6y@p;Ib|CNyDg8Mq~Y4R`qr;Lp?~(N&H5a*2;;_@6o@8vsCK> z)ZYr1H~pJ{yi9OiA4XdmpFp6_23N3t+1u_I#?nzPs@Qutvg7%s4%Wr&#{5;v1IU(| zB?6WuQ1=rY`SSU(nTc>XxlSY@31B;PR33%n+k~ zit=4a-}lp(fyGxENjDBlKU0$|Q_ZMblfuxPni)y(9H$rbfZvM=B*50NVodGS=eytO zc0Wy&B)yaS7qB70A!*S->rbW7WK^h&k4o^Bg$B(5$4Vmatz|pWHa*v7IX|pHhM;sR z(H6q#Ad_96MU;fq#bqC}z-Yby$>dIwK1o3Jk`l7QIRCudek9}jA^4;J%+T<>v=Ah; z;?_)UHLZjYlOV1XWZj@sw{1=@4z0%5s|CPMXBq|?x0 z)-@HK?n(kSSR2&QHq!kYgFQtbU{}6S*UOx|HLaSuIT~mFh|j97pZY8^lOICg{5XBl zKpbKUuh_g^Q5v*2+59YGXlV@cPC4LIq7e9l`N3*l@buqzb7r5l*o&krm2@5@TyWjZ zrg!NX#dfN7poYX@v}yicBa|pYq~Y^%PTc#{o-Ze#d;?;>t1kvqTJvQ63ytC~O(oZx zAiO?~dB5kVkV^evdk)iI_`8aWV49&4L~m-doUUegWA&qwh%?xQ+nigkx#j=$8UHl> z_*wHSSwq`VK>Ynr&jzvqAFpQ6y0hf{)PpM#rwZ&I+88cBY$<2UI#*VI;G%sp9dlIy zb6mAJhFgbm^;|R1#?kNmA*iv^&TLLG&_>K!-Bdd>piY!(n%Eh3{1Y)e*_mOd819CS zC&{5Rcx0Fau^0VRC?pO{nv)E`uJt)80e*S;moLh^ZKcjnczV@t!u8h~rCgbbv47Bg z5bDP8k)M~y`7G9#>Cm6IFS0d?22w-ni`L*SCP{U}gKdv}uweI4mD#rGGy-rY# z`q!th;Z})wI{J~%a=XC5Leb$C(6nN-S=zw%YXZbS&WrLF49yqc#Yk&7nOic`bfX6U zU%Bvw_*lD7v7Ro2^VeeEo)8yNQ!cd5_b`HRRQUBAtzz|<1;W}v8li;s;Yp2OO$sGe z4Oef3N`#Y8k-d{2o24-La*x4)7bj|*x%0X4fm1%+0<;BI7h|wuokziGuHPUE3#<6k zu-~ionV-lhI#ttpK5Hfl+E}Oc+kNx==Uv-UD;zvbLNj3fZ!+WriE?0Px8Pao!kV9G zXxnYnc+=pZWj>uZoDP&|P7IgyNRr@RZAgL8Ea)hjEa3vBGiZWX&Vll79{ zsXntm2LjA`u|YpbVkG`F+^}XGZqWA>=#tPc>2Gq!L>=8&M=aV8FRt#HOaqo`ls}M` zI1WyHLKsLGt0-nPDehn@(0YS9p8~aOWCVQ(ABw1rTB4d5tgYPv$7Y{F7J^c}xRb$F zeuX_M6})XU8Rzfp)H^k+V!_^V%lCS`D$uzXb~`e5|N%=QgWw)Z7a=;8`d8+ zYm&VTf`l@EX-+S1;K^;T1eza`qFNE(cqP*;`&A`Sb|0l#Rcl|Y4_oDOkJmuU8VfMt zUOzYP%?v55Iy;YzJjjJw=6*<%z;u^=Ni~{&>=Ht?3R#f7@B-S4wF=k^Fb0S6I=N-< zQoSS178;1UT^Zg%HFKYGgPAuIg089n5=2kM8vPh2|3Zj%;P7-PF)G8Ig}1IT?Thp= zJ|*uzDusajaobmTkffoSrr`@#fvOnp^&g`)>PRn!!khe8wdyFpdjUaeP zpk(XzS#q6O%-CzsdZU4dGf5Do)w)OYbG?~kd9~Xe8oh%LqjC8j1W!HK=$EoVzY@Oq zBI_+3SVyu>^}(;6Qf{yo7LsNKH#9|~+WB^ytsd~y_6_S+)f7;x@j&#sU&Y$pB%ccx z41o`oL0KyXZBoEjqjD$Wu*S0Lz@%}_6tDgy_?YtCwkDviEHondXMRY>!Gh{o$p|n6 zD~PI!YA@)_;bnHl#2}aSB~w#6Hi?x;(#KZ~tT^#4$EHz*LgZEWaSDx(2g72KZGhntL$}5tZ64ZJTQpscpJ@)drNWvF%4*Cl7&DN!)jq!om zXi0tWZz_MxW?&lbNIZ#y3;d6trEFsl{XIk8K^c zfhZ3xD6xL{=fe9ej#{DAuUbk_k2xu8BBCOICmSM$8MiExA7^|b@-T;p(Xpu-x6uW# z?L%PkXf5`q#Q_}VGtPc>5wcwtgFw|C-6E5=?|-BRqtIcTFT1Ui2+*8@;%%oF0X2G% z&1WxPYsy@p;0y4nK+traKkA3YQ(TvdP1+dq_0+MepV&ntxe>>@b1((T2y?PwZ+Tz8 zfK2ZK%W}EO$AQhL?2_L%JYMs!X`ej7wCK($@WV-Q)yECxE!OstfdSLc;f$fdQtiMd z_dF@ZlN@*XEO_485}I4U2#Z7R{EmKx7??Gi5FK#>ocs`I-YfL1$75JjU{H@U>>5ii zfx}mq^WKBolIv#1A(=#gG*EvS@8%aDNiE?9v(b(e4ULST2^ z%0Z{2l{rXCGAyA#^&7nr;fJ6$4C8*f%3!2>YkGKqL{kFeMFvrl-dD{0#)Ddld&3W^ zgY8~J5nm!SYsX7|o7Dy-dD}C)iZQCcvP($0j~2VzVIM-Xcb3}7{x1=FHtNK9Q(5$B zqLqB+;}ZZTkcJIf$GWrl0ls2ZS4>#1U6BdUR7`X=mlXmND|_+@Vg58TDW&1wF>*k( zlsx#G)aX0&e#FGZ4=7{`zI@z4)~Hn^A@feX?sWGkQAA3ES=fz&ZUJX(t!!^j^56pu z9ie=dkV(#iyPtLA!@dZY8!{HoU3^Xy5Ie>UMk}e%<&l&V+r@*(hnP;C&{{O*HA;D` zSJH!k7;dmcbU=;=>LGt<8FjS z=!=s%Wyr}aP7O-%9abIJE%|SK(=v*Zh6sWO5veGzcYbFh{xllNJx}x3pBR4+2Yh-C ze5yB;ybv5ZYZhbY{Ia|OfFW>iAehPSxVhpE_V2Z-IR&{$hn}z+3%bVg*IHV?qa)im zvBW>kZK4FGb&S>6Y`W8IWfr5+ZDB+bc_;puuT4NmTLo1ku{%Fzi#3_6>*w3D;CsY~ z7pY!DdEJ?6BdE4Gy(UV=ptK;4SbN&F9132$ohkO^`}`;E-t!ct7&~o?AE>vd65f^r zIfqe838S^`uQgub(z`4!sZVB4q#~7L9U)78cj86jz;eSf!WYN$K$T~cI+pMOa1E6- zc5Kf2^p0jIfoV*bA;rs2Og zK#dPV7%~A-49YsTUX*!&9$|3I5*uwZf^hLm9N-iLi^`DKD5$j1%D$z9IsQ7U9@7xA z*=XvN?1jd1Q_qF zl+#&UzayBFkp8bjGOm}v{U(pnCqqjQ|JFaNKWvj-1QM{~P*nLWRE*W6^yy_~?W!UjUXQiXZ7< zaNFtlvTSoh17brFK%4vIjnpf{cbnC8%H$GyG#zBfr7T(hbC$zWo2z|? z@lW$P&izM)eS-sGghkZ&^U3qRM*6VgDOJo3BU;KR!GHKsfQ60?OG5JF`=&>J92;IZ z?NmdcR(w2&_W%PVB|{_5S1mH<`T6@N+6NK29gm-?Pm4Yokn?z%j4GNE1()=OMERBI ze%4dtY@2d|bCka6Q#bFmcJZSgH9ZxKZylRYfdRUQJnX+)F#qY9hhC3w%3}8HlrhG| zoaXR&T@L%%k5cqCV$^;a5KyZ*meKiE<$jvu=*X?wSMX4o!r`%J!ap4UyS1LM>c9Gy z?!m~p2BW2DT(34v%L(5P$C>~$sj3$D#%AtWW*@``ci72<5< zq`_AXram36#QoL%$oP@qFfFk0hWOn~c&SI6TJ0qw@;~)6!>*y29~Sc$4xE9$&1${6 z+Z|2h^rERt!+f34jVGozbCvT!j!08&h~KO5kbK<`Qspiw{2HW&S#>_RdHZ>uuwdTS z7hKLVa%ri;S=rh$BlqA0$ZZA7Nw;-UB{e$2IKV0AB4nUr(jYzf5syaOUSIvImfh9* zDX3?`r;pR({FuJKx4x+Q)SOps7$vabDFKrk{XnKotixcLD zO5}81uEP`;SyJB5w?o3XhRmK)-7F$xP&!oP$!+ zCu$S?sM6sOFsrw0r^~ECXH=<7`zrb?&#Y(7`bV}#Y(R5VMvuH5_GAor8mu+1R9_Ci z0okQlm4wy-b=2R+ zv$v%PI2FQd>2;m1e<&}fpjeUW&AAE$vQ?7il>F5tPX*n#2G@eA3Y#t6Dk}cr>7yN+ zfhN8>ak$}y3r}9)N@rd}-+@myO$f)6M&Jox%8|gKa!jMTRHz_$PYy=6RNwP7P|&xs z(2bLd?5oiwx_0Qn%zQ=nu-D0v%2!$V(m@u zGf(Gu_6lh3DZs{k~IA#up7 z=rO*!@;gT{z1eBAN@D0!&D!$eI$&cw#Hh+v1>wA)gtRV&{fOYJyJuhpTF-GhqH6vrq@`+Yb`;(jmIp4Bh;5Ho9tluc>rQn{qK<;TThZTWob6fRSC0)C4< z<)woU76KZ!Obji-1vojYZ}MlFa6e~IrUbF@o&7?}5%hEs<)(BLQBBd){>su!H%upo zLy!M;(aCvnNg1dUL_Hq-hi7IX)--44^X`)AfahpSr|U7Ksc9q_M{}=QyxA{V0+Vt; zaU4?&mM0Ta*O5owNE1eWj?_rOdK3v3cMH{DD66j~sjl*cT!g8qLgs?Z-&u&) zdFh&RkF-L+Jq4{B`fUY(+*i;)@g*vc%64z|r%DIcf0*T$%gQ#89NbdRgUT5Pjm(Z$ zC7;*M>K&pgY08TLZEN-RwmLBG1MvfxjxrD% zEn6UP0xn9)@<=FQfBBgErt>VPD{2Mu78$tB{Pc8zw3H5UvF`1fHPmU|tV8OB;7M3( z?ltE8*TUfOEbB$*+5RRYB6eL-XM*{q`G62ZJ&vh~jncK@W|DmDpa~FG!!dIs+6bL$ z=eeZI`)VKuQ@9Qm4`rc;>({eTGO|E@=$YgT+Eq}*$wDlj zlv&r3Ys!olRXD!`fRP*-LT3VKEc*y`kiYHT0iWX!3aznx2X*MqMDT?@>TA6()q=@Y zO$x^&7H)mq0G3op$d7|2$Ij!PkJ95nfflvWtZMf{QuWMoeHgp(W1pmdbZ9Lp2E$*K zPzh{5Sng0clk5hT=0h=#N)5#kvgfo%98I}v2%T;Aga7)R?Ac#>;_lM){fAf3-XalH`NWvO~>{917GU4HV zANxjN6+w8Ks^tQ2e|z2xQ2zJT=t|zbh);CQZyToPp4d~Rcq2YOdR(0E%zU| zkj1NS6==r$s=!`$&wm5bwfxr-IBht(2+YY{KfQ%k?<6Gpp{u04AU*UHdl?xnD;`c} zpEmuoa7>UsSw2iZjPi@YgtuMdyw0DnHl+*MHBhzn^(&0uSapauOTox%=!S|D z(pNL&Th``Jz0k0FFVE3DNu>F;&^EQ#meY0+6#pQ^p8Y?D66^8ck67+Y6)En}Jpq}7 z-|&T4@&1o(^zo^4gAcD_VO^vdLbNHp1jjtc6tiNlGm;U|Hcz-%k>h~OnF|6pE{VA|> z9ZO8DJ}a+RH>rebWG$+C(|*{bgtU}=zKmHjYg)W^XC?5M0dZ!QKcFB3H_S2sXBJU} z`4{;^DGd7(vZ5{ z+<;TH&Vy$%w~T>`RF((WeFL059WYNz+j}$&kAYwOc(Pe-LolEGVfXV^iYPHWk2Zj> zZh6KTzY|T!wO1N*FMI94UKC(;h0+K5gM`GiZrJ>SBZYqktXtMnMIsfzx`kzLBq5@) z4~XbF8KS@%YXTb)+)t(Y0YHZ_Hw{Acw(9$Dl(TV3Ctl@g)Wr)?T}+L5=4pY>t%pr{ z)m{QTjn`0{+!}zc#cJn<*kNJGtwBrkDZ}vV;d#DG>k7c`(}1r}N?`+WUcR&OmzUR~ z_YZcRG0$#+-Lg(KQ=vCFB12?{Sxz4wM$B)&HMQi`JxqdM6wuj*5?>j*%3*Tht@K9_ z$A}R&)}O@s>P$U9TqV)x7(<*TBk%pSz+Bh+%10@FiF#N$r?R1*4{g$&y>WmyvQ^7V zsbkX=B6P`i`!z2Oo&9*1AE3_>TB@#Inv37+8UfG3B-sZUe9Z%2op*GAQEjpMxO1>e zUq|N!ye71)mp_y&4Ml#MYu3rVimqZzHJFq6d3E9E1$3gLRM5TkyMIIWjsCE#B!y+H zS4t7PZ>l|U@;u-{CzvmjCG}7e&jopAo!E8erXWyZRU>=j$az%cYWtw`8FAFf9k+kZ zP!2yBAbYka4WX)3Rf3wQ-b)Qk=eZXtALn#Mmn6{i_E`R`qS}_h{-8@j?Bh>ddsH0e z>}>mK?)Zrb)i-ITxv<$2*B^@lk-RaCR3>}{cbu4m{)`dnq@K8tXP^nBR%SaMV{b@e zodOvgB0Fx$e3-5l=%irlT3#MPKCwMtOgzT9ExNkE>_zZ2Aec0jjxla|fsJTQr|Mh2 zI@4G>LLqzfF*wt}ei?CZEbY!&Z#RCG&9Ap|Go>s+UK_v88)&n1ul-}7!k#thM~Z)- zUrW(VhK@BB{#41GtcPcfvXHJ?5bw{fA^Jf2hYTx-fzA^s{)p*&ATQK0izIgGie_yH z)$Z)k=f%Wd-DDT){3~~SzCn+fB(+eEF1s6dWir} zA?Db7_=kw2=)q?;AXS1{`I=$tG<4eJo;;>gvIMhXVlygq7c9*|If(yJkig;b&fYWf z=HEe9r_W)kTBQ?x9?N7=SxBd9t8GU26t6DHt~vMEfOo9)uY1FAqt&g`M;n+g^WiQ{ z@>6`5wW%NM;psiDoL=hCFH3P7x>_)6H(U`+Ac$brk?= zEBmVzF(-3lrgiee+gEPdo8ZlU3VvzvTUn zK%omy}(HTF~bdPD)86#_@D^9d^hRYfjsr_`Ga7|zy-R^0yld~)>n`%WYfMqcIoE>Y{0 zhxnyJ?|C*S2`16qTRCp_B0P2SsPhTQ zbg6SX-qWl_V)Jh@bLQj`tn nZZ92hL7, + and list of parameters (). +[p] +[pre] + The Augmented BNF representation for this is: + + message = [ ":" prefix SPACE ] command [ params ] crlf + prefix = servername / ( nickname [ [ "!" user ] "@" host ] ) + command = 1*letter / 3digit + params = *14( SPACE middle ) [ SPACE ":" trailing ] + =/ 14( SPACE middle ) [ SPACE [ ":" ] trailing ] + + nospcrlfcl = %x01-09 / %x0B-0C / %x0E-1F / %x21-39 / %x3B-FF + ; any octet except NUL, CR, LF, " " and ":" + middle = nospcrlfcl *( ":" / nospcrlfcl ) + trailing = *( ":" / " " / nospcrlfcl ) + + SPACE = %x20 ; space character + crlf = %x0D %x0A ; "carriage return" "linefeed" + + NOTES: + 1) After extracting the parameter list, all parameters are equal + whether matched by or . is just a + syntactic trick to allow SPACE within the parameter. + + 2) The NUL (%x00) character is not special in message framing, and + basically could end up inside a parameter, but it would cause + extra complexities in normal C string handling. Therefore, NUL + is not allowed within messages. + + Most protocol messages specify additional semantics and syntax for + the extracted parameter strings dictated by their position in the + list. For example, many server commands will assume that the first + parameter after the command is the list of targets, which can be + described with: + + target = nickname / server + msgtarget = msgto *( "," msgto ) + msgto = channel / ( user [ "%" host ] "@" servername ) + msgto =/ ( user "%" host ) / targetmask + msgto =/ nickname / ( nickname "!" user "@" host ) + channel = ( "#" / "+" / ( "!" channelid ) / "&" ) chanstring + [ ":" chanstring ] + servername = hostname + host = hostname / hostaddr + hostname = shortname *( "." shortname ) + shortname = ( letter / digit ) *( letter / digit / "-" ) + *( letter / digit ) + ; as specified in RFC 1123 [HNAME] + hostaddr = ip4addr / ip6addr + ip4addr = 1*3digit "." 1*3digit "." 1*3digit "." 1*3digit + ip6addr = 1*hexdigit 7( ":" 1*hexdigit ) + ip6addr =/ "0:0:0:0:0:" ( "0" / "FFFF" ) ":" ip4addr + nickname = ( letter / special ) *8( letter / digit / special / "-" ) + targetmask = ( "$" / "#" ) mask + ; see details on allowed masks in section 3.3.1 + chanstring = %x01-07 / %x08-09 / %x0B-0C / %x0E-1F / %x21-2B + chanstring =/ %x2D-39 / %x3B-FF + ; any octet except NUL, BELL, CR, LF, " ", "," and ":" + channelid = 5( %x41-5A / digit ) ; 5( A-Z / 0-9 ) + + Other parameter syntaxes are: + + user = 1*( %x01-09 / %x0B-0C / %x0E-1F / %x21-3F / %x41-FF ) + ; any octet except NUL, CR, LF, " " and "@" + key = 1*23( %x01-05 / %x07-08 / %x0C / %x0E-1F / %x21-7F ) + ; any 7-bit US_ASCII character, + ; except NUL, CR, LF, FF, h/v TABs, and " " + letter = %x41-5A / %x61-7A ; A-Z / a-z + digit = %x30-39 ; 0-9 + hexdigit = digit / "A" / "B" / "C" / "D" / "E" / "F" + special = %x5B-60 / %x7B-7D + ; "[", "]", "\", "`", "_", "^", "{", "|", "}" + + NOTES: + 1) The syntax is given here for the sole purpose of + indicating the format to follow for IP addresses. This + reflects the fact that the only available implementations of + this protocol uses TCP/IP as underlying network protocol but is + not meant to prevent other protocols to be used. + + 2) has a maximum length of 63 characters. This is a + limitation of the protocol as internet hostnames (in + particular) can be longer. Such restriction is necessary + because IRC messages are limited to 512 characters in length. + Clients connecting from a host which name is longer than 63 + characters are registered using the host (numeric) address + instead of the host name. + + 3) Some parameters used in the following sections of this + documents are not defined here as there is nothing specific + about them besides the name that is used for convenience. + These parameters follow the general syntax defined for + . +[/pre] +[/td][/tr] + +[tr][td] +[b]2.4 Numeric replies[/b] +[/td][/tr] + +[tr][td] +Most of the messages sent to the server generate a reply of some +sort. The most common reply is the numeric reply, used for both +errors and normal replies. The numeric reply MUST be sent as one +message consisting of the sender prefix, the three-digit numeric, and +the target of the reply. A numeric reply is not allowed to originate +from a client. In all other respects, a numeric reply is just like a +normal message, except that the keyword is made up of 3 numeric +digits rather than a string of letters. A list of different replies +is supplied in section 5 (Replies). +[/td][/tr] + +[tr][td] +[b]2.5 Wildcard expressions[/b] +[/td][/tr] + +[tr][td] +When wildcards are allowed in a string, it is referred as a "mask". +[p] +For string matching purposes, the protocol allows the use of two +special characters: '?' (%x3F) to match one and only one character, +and '*' (%x2A) to match any number of any characters. These two +characters can be escaped using the character '\' (%x5C). +[p] +[pre] + The Augmented BNF syntax for this is: + + mask = *( nowild / noesc wildone / noesc wildmany ) + wildone = %x3F + wildmany = %x2A + nowild = %x01-29 / %x2B-3E / %x40-FF + ; any octet except NUL, "*", "?" + noesc = %x01-5B / %x5D-FF + ; any octet except NUL and "\" + matchone = %x01-FF + ; matches wildone + matchmany = *matchone + ; matches wildmany + + Examples: + + a?c ; Matches any string of 3 characters in length starting + with "a" and ending with "c" + + a*c ; Matches any string of at least 2 characters in length + starting with "a" and ending with "c" +[/pre] +[/td][/tr] + +[tr][td] +[b]3. Message Details[/b] +[/td][/tr] + +[tr][td] +On the following pages there are descriptions of each message +recognized by the IRC server and client. All commands described in +this section MUST be implemented by any server for this protocol. +[p] +Where the reply ERR_NOSUCHSERVER is returned, it means that the +target of the message could not be found. The server MUST NOT send +any other replies after this error for that command. +[p] +The server to which a client is connected is required to parse the +complete message, and return any appropriate errors. +[p] +If multiple parameters is presented, then each MUST be checked for +validity and appropriate responses MUST be sent back to the client. +In the case of incorrect messages which use parameter lists with +comma as an item separator, a reply MUST be sent for each item. +[/td][/tr] + +[tr][td] +[b]3.1 Connection Registration[/b] +[/td][/tr] + +[tr][td] +The commands described here are used to register a connection with an +IRC server as a user as well as to correctly disconnect. +[p] +A "PASS" command is not required for a client connection to be +registered, but it MUST precede the latter of the NICK/USER +combination (for a user connection) or the SERVICE command (for a +service connection). The RECOMMENDED order for a client to register +is as follows: +[p] +[pre] + 1. Pass message + 2. Nick message 2. Service message + 3. User message +[/pre] +[p] +Upon success, the client will receive an RPL_WELCOME (for users) or +RPL_YOURESERVICE (for services) message indicating that the +connection is now registered and known the to the entire IRC network. +The reply message MUST contain the full client identifier upon which +it was registered. +[/td][/tr] + +[tr][td] +[b]3.1.1 Password message[/b] +[/td][/tr] + +[tr][td][pre] +Command: PASS +Parameters: + +The PASS command is used to set a 'connection password'. The +optional password can and MUST be set before any attempt to register +the connection is made. Currently this requires that user send a +PASS command before sending the NICK/USER combination. + + Numeric Replies: + + ERR_NEEDMOREPARAMS ERR_ALREADYREGISTRED + + Example: + + PASS secretpasswordhere +[/pre][/td][/tr] + +[tr][td][pre] +[b]3.1.2 Nick message[/b] +[/pre][/td][/tr] + + +[tr][td][pre] +Command: NICK +Parameters: + +NICK command is used to give user a nickname or change the existing +one. + + Numeric Replies: + + ERR_NONICKNAMEGIVEN ERR_ERRONEUSNICKNAME + ERR_NICKNAMEINUSE ERR_NICKCOLLISION + ERR_UNAVAILRESOURCE ERR_RESTRICTED + + Examples: + + NICK Wiz ; Introducing new nick "Wiz" if session is + still unregistered, or user changing his + nickname to "Wiz" + + :WiZ!jto@tolsun.oulu.fi NICK Kilroy + ; Server telling that WiZ changed his + nickname to Kilroy. +[/pre][/td][/tr] + +[tr][td][pre] +[b]3.1.3 User message[/b] +[/pre][/td][/tr] + +[tr][td][pre] +Command: USER +Parameters: + +The USER command is used at the beginning of connection to specify +the username, hostname and realname of a new user. + +The parameter should be a numeric, and can be used to +automatically set user modes when registering with the server. This +parameter is a bitmask, with only 2 bits having any signification: if +the bit 2 is set, the user mode 'w' will be set and if the bit 3 is +set, the user mode 'i' will be set. (See Section 3.1.5 "User +Modes"). + +The may contain space characters. + + Numeric Replies: + + ERR_NEEDMOREPARAMS ERR_ALREADYREGISTRED + + Example: + + USER guest 0 * :Ronnie Reagan ; User registering themselves with a + username of "guest" and real name + "Ronnie Reagan". + + USER guest 8 * :Ronnie Reagan ; User registering themselves with a + username of "guest" and real name + "Ronnie Reagan", and asking to be set + invisible. +[/pre][/td][/tr] + + +[tr][td][pre] +[b]3.1.4 Oper message[/b] +[/pre][/td][/tr] + +[tr][td][pre] +Command: OPER +Parameters: + +A normal user uses the OPER command to obtain operator privileges. +The combination of and are REQUIRED to gain +Operator privileges. Upon success, the user will receive a MODE +message (see section 3.1.5) indicating the new user modes. + + Numeric Replies: + + ERR_NEEDMOREPARAMS RPL_YOUREOPER + ERR_NOOPERHOST ERR_PASSWDMISMATCH + + Example: + + OPER foo bar ; Attempt to register as an operator + using a username of "foo" and "bar" + as the password. +[/pre][/td][/tr] + +[tr][td][pre] +[b]3.1.5 User mode message[/b] +[/pre][/td][/tr] + +[tr][td][pre] +Command: MODE +Parameters: +*( ( "+" / "-" ) *( "i" / "w" / "o" / "O" / "r" ) ) + +The user MODE's are typically changes which affect either how the +client is seen by others or what 'extra' messages the client is sent. + +A user MODE command MUST only be accepted if both the sender of the +message and the nickname given as a parameter are both the same. If +no other parameter is given, then the server will return the current +settings for the nick. + + The available modes are as follows: + + a - user is flagged as away; + i - marks a users as invisible; + w - user receives wallops; + r - restricted user connection; + o - operator flag; + O - local operator flag; + s - marks a user for receipt of server notices. + +Additional modes may be available later on. +The flag 'a' SHALL NOT be toggled by the user using the MODE command, +instead use of the AWAY command is REQUIRED. + +If a user attempts to make themselves an operator using the "+o" or +"+O" flag, the attempt SHOULD be ignored as users could bypass the +authentication mechanisms of the OPER command. There is no +restriction, however, on anyone `deopping' themselves (using "-o" or +"-O"). + +On the other hand, if a user attempts to make themselves unrestricted +using the "-r" flag, the attempt SHOULD be ignored. There is no +restriction, however, on anyone `deopping' themselves (using "+r"). +This flag is typically set by the server upon connection for +administrative reasons. While the restrictions imposed are left up +to the implementation, it is typical that a restricted user not be +allowed to change nicknames, nor make use of the channel operator +status on channels. + +The flag 's' is obsolete but MAY still be used. + + Numeric Replies: + + ERR_NEEDMOREPARAMS ERR_USERSDONTMATCH + ERR_UMODEUNKNOWNFLAG RPL_UMODEIS + + Examples: + + MODE WiZ -w ; Command by WiZ to turn off + reception of WALLOPS messages. + + MODE Angel +i ; Command from Angel to make herself + invisible. + + MODE WiZ -o ; WiZ 'deopping' (removing operator + status). +[/pre][/td][/tr] + +[tr][td][pre] +[b]3.1.6 Service message[/b] +[/pre][/td][/tr] + +[tr][td][pre] +Command: SERVICE +Parameters: + + +The SERVICE command to register a new service. Command parameters +specify the service nickname, distribution, type and info of a new +service. +The parameter is used to specify the visibility of a +service. The service may only be known to servers which have a name +matching the distribution. For a matching server to have knowledge +of the service, the network path between that server and the server +on which the service is connected MUST be composed of servers which +names all match the mask. + +The parameter is currently reserved for future usage. + + Numeric Replies: + + ERR_ALREADYREGISTRED ERR_NEEDMOREPARAMS + ERR_ERRONEUSNICKNAME + RPL_YOURESERVICE RPL_YOURHOST + RPL_MYINFO + + Example: + + SERVICE dict * *.fr 0 0 :French Dictionary ; Service registering + itself with a name of "dict". This + service will only be available on + servers which name matches "*.fr". +[/pre][/td][/tr] + +[tr][td][pre] +[b]3.1.7 Quit[/b] +[/pre][/td][/tr] + +[tr][td][pre] +Command: QUIT +Parameters: [ ] + +A client session is terminated with a quit message. The server +acknowledges this by sending an ERROR message to the client. + + Numeric Replies: + + None. + + Example: + + QUIT :Gone to have lunch ; Preferred message format. + + :syrk!kalt@millennium.stealth.net QUIT :Gone to have lunch ; User + syrk has quit IRC to have lunch. +[/pre][/td][/tr] + +[tr][td][pre] +[b]3.1.8 Squit[/b] +[/pre][/td][/tr] + +[tr][td][pre] +Command: SQUIT +Parameters: + +The SQUIT command is available only to operators. It is used to +disconnect server links. Also servers can generate SQUIT messages on +error conditions. A SQUIT message may also target a remote server +connection. In this case, the SQUIT message will simply be sent to +the remote server without affecting the servers in between the +operator and the remote server. + +The SHOULD be supplied by all operators who execute a SQUIT +for a remote server. The server ordered to disconnect its peer +generates a WALLOPS message with included, so that other +users may be aware of the reason of this action. + + Numeric replies: + + ERR_NOPRIVILEGES ERR_NOSUCHSERVER + ERR_NEEDMOREPARAMS + + Examples: + + SQUIT tolsun.oulu.fi :Bad Link ? ; Command to uplink of the server + tolson.oulu.fi to terminate its + connection with comment "Bad Link". + + :Trillian SQUIT cm22.eng.umd.edu :Server out of control ; Command + from Trillian from to disconnect + "cm22.eng.umd.edu" from the net with + comment "Server out of control". +[/pre][/td][/tr] + +[tr][td][pre] +[b]3.2 Channel operations[/b] +[/pre][/td][/tr] + +[tr][td][pre] +This group of messages is concerned with manipulating channels, their +properties (channel modes), and their contents (typically users). +For this reason, these messages SHALL NOT be made available to +services. + +All of these messages are requests which will or will not be granted +by the server. The server MUST send a reply informing the user +whether the request was granted, denied or generated an error. When +the server grants the request, the message is typically sent back +(eventually reformatted) to the user with the prefix set to the user +itself. + +The rules governing how channels are managed are enforced by the +servers. These rules are beyond the scope of this document. More +details are found in "Internet Relay Chat: Channel Management" [IRC- +CHAN]. +[/pre][/td][/tr] + +[tr][td][pre] +[b]3.2.1 Join message[/b] +[/pre][/td][/tr] + +[tr][td][pre] +Command: JOIN +Parameters: ( *( "," ) [ *( "," ) ] ) +/ "0" + +The JOIN command is used by a user to request to start listening to +the specific channel. Servers MUST be able to parse arguments in the +form of a list of target, but SHOULD NOT use lists when sending JOIN +messages to clients. + +Once a user has joined a channel, he receives information about +all commands his server receives affecting the channel. This +includes JOIN, MODE, KICK, PART, QUIT and of course PRIVMSG/NOTICE. +This allows channel members to keep track of the other channel +members, as well as channel modes. + +If a JOIN is successful, the user receives a JOIN message as +confirmation and is then sent the channel's topic (using RPL_TOPIC) and +the list of users who are on the channel (using RPL_NAMREPLY), which +MUST include the user joining. + +Note that this message accepts a special argument ("0"), which is +a special request to leave all channels the user is currently a member +of. The server will process this message as if the user had sent +a PART command (See Section 3.2.2) for each channel he is a member +of. + + Numeric Replies: + + ERR_NEEDMOREPARAMS ERR_BANNEDFROMCHAN + ERR_INVITEONLYCHAN ERR_BADCHANNELKEY + ERR_CHANNELISFULL ERR_BADCHANMASK + ERR_NOSUCHCHANNEL ERR_TOOMANYCHANNELS + ERR_TOOMANYTARGETS ERR_UNAVAILRESOURCE + RPL_TOPIC + + Examples: + + JOIN #foobar ; Command to join channel #foobar. + + JOIN &foo fubar ; Command to join channel &foo using + key "fubar". + + JOIN #foo,&bar fubar ; Command to join channel #foo using + key "fubar" and &bar using no key. + + JOIN #foo,#bar fubar,foobar ; Command to join channel #foo using + key "fubar", and channel #bar using + key "foobar". + + JOIN #foo,#bar ; Command to join channels #foo and + #bar. + + JOIN 0 ; Leave all currently joined + channels. + + :WiZ!jto@tolsun.oulu.fi JOIN #Twilight_zone ; JOIN message from WiZ + on channel #Twilight_zone +[/pre][/td][/tr] + +[tr][td][pre] +[b]3.2.2 Part message[/b] +[/pre][/td][/tr] + +[tr][td][pre] +Command: PART +Parameters: *( "," ) [ ] + +The PART command causes the user sending the message to be removed +from the list of active members for all given channels listed in the +parameter string. If a "Part Message" is given, this will be sent +instead of the default message, the nickname. This request is always +granted by the server. + +Servers MUST be able to parse arguments in the form of a list of +target, but SHOULD NOT use lists when sending PART messages to +clients. + + Numeric Replies: + + ERR_NEEDMOREPARAMS ERR_NOSUCHCHANNEL + ERR_NOTONCHANNEL + + Examples: + + PART #twilight_zone ; Command to leave channel + "#twilight_zone" + + PART #oz-ops,&group5 ; Command to leave both channels + "&group5" and "#oz-ops". + + :WiZ!jto@tolsun.oulu.fi PART #playzone :I lost + ; User WiZ leaving channel + "#playzone" with the message "I + lost". +[/pre][/td][/tr] + +[tr][td][pre] +[b]3.2.3 Channel mode message[/b] +[/pre][/td][/tr] + +[tr][td][pre] +Command: MODE +Parameters: *( ( "-" / "+" ) * * ) + +The MODE command is provided so that users may query and change the +characteristics of a channel. For more details on available modes +and their uses, see "Internet Relay Chat: Channel Management" [IRC- +CHAN]. Note that there is a maximum limit of three (3) changes per +command for modes that take a parameter. + + Numeric Replies: + + ERR_NEEDMOREPARAMS ERR_KEYSET + ERR_NOCHANMODES ERR_CHANOPRIVSNEEDED + ERR_USERNOTINCHANNEL ERR_UNKNOWNMODE + RPL_CHANNELMODEIS + RPL_BANLIST RPL_ENDOFBANLIST + RPL_EXCEPTLIST RPL_ENDOFEXCEPTLIST + RPL_INVITELIST RPL_ENDOFINVITELIST + RPL_UNIQOPIS + + The following examples are given to help understanding the syntax of + the MODE command, but refer to modes defined in "Internet Relay Chat: + Channel Management" [IRC-CHAN]. + + Examples: + + MODE #Finnish +imI *!*@*.fi ; Command to make #Finnish channel + moderated and 'invite-only' with user + with a hostname matching *.fi + automatically invited. + + MODE #Finnish +o Kilroy ; Command to give 'chanop' privileges + to Kilroy on channel #Finnish. + + MODE #Finnish +v Wiz ; Command to allow WiZ to speak on + #Finnish. + + MODE #Fins -s ; Command to remove 'secret' flag + from channel #Fins. + + MODE #42 +k oulu ; Command to set the channel key to + "oulu". + + MODE #42 -k oulu ; Command to remove the "oulu" + channel key on channel "#42". + + MODE #eu-opers +l 10 ; Command to set the limit for the + number of users on channel + "#eu-opers" to 10. + + :WiZ!jto@tolsun.oulu.fi MODE #eu-opers -l + ; User "WiZ" removing the limit for + the number of users on channel "#eu- + opers". + + MODE &oulu +b ; Command to list ban masks set for + the channel "&oulu". + + MODE &oulu +b *!*@* ; Command to prevent all users from + joining. + + MODE &oulu +b *!*@*.edu +e *!*@*.bu.edu + ; Command to prevent any user from a + hostname matching *.edu from joining, + except if matching *.bu.edu + + MODE #bu +be *!*@*.edu *!*@*.bu.edu + ; Comment to prevent any user from a + hostname matching *.edu from joining, + except if matching *.bu.edu + + MODE #meditation e ; Command to list exception masks set + for the channel "#meditation". + + MODE #meditation I ; Command to list invitations masks + set for the channel "#meditation". + + MODE !12345ircd O ; Command to ask who the channel + creator for "!12345ircd" is +[/pre][/td][/tr] + +[tr][td][pre] +[b]3.2.4 Topic message[/b] +[/pre][/td][/tr] + +[tr][td][pre] +Command: TOPIC +Parameters: [ ] + +The TOPIC command is used to change or view the topic of a channel. +The topic for channel is returned if there is no +given. If the parameter is present, the topic for that +channel will be changed, if this action is allowed for the user +requesting it. If the parameter is an empty string, the +topic for that channel will be removed. + + Numeric Replies: + + ERR_NEEDMOREPARAMS ERR_NOTONCHANNEL + RPL_NOTOPIC RPL_TOPIC + ERR_CHANOPRIVSNEEDED ERR_NOCHANMODES + + Examples: + + :WiZ!jto@tolsun.oulu.fi TOPIC #test :New topic ; User Wiz setting the + topic. + + TOPIC #test :another topic ; Command to set the topic on #test + to "another topic". + + TOPIC #test : ; Command to clear the topic on + #test. + + TOPIC #test ; Command to check the topic for + #test. +[/pre][/td][/tr] + +[tr][td][pre] +[b]3.2.5 Names message[/b] + +Command: NAMES +Parameters: [ *( "," ) [ ] ] + +By using the NAMES command, a user can list all nicknames that are +visible to him. For more details on what is visible and what is not, +see "Internet Relay Chat: Channel Management" [IRC-CHAN]. The + parameter specifies which channel(s) to return information +about. There is no error reply for bad channel names. + +If no parameter is given, a list of all channels and their +occupants is returned. At the end of this list, a list of users who +are visible but either not on any channel or not on a visible channel +are listed as being on `channel' "*". + +If the parameter is specified, the request is forwarded to +that server which will generate the reply. + +Wildcards are allowed in the parameter. + + Numerics: + + ERR_TOOMANYMATCHES ERR_NOSUCHSERVER + RPL_NAMREPLY RPL_ENDOFNAMES + + Examples: + + NAMES #twilight_zone,#42 ; Command to list visible users on + #twilight_zone and #42 + + NAMES ; Command to list all visible + channels and users +[/pre][/td][/tr] + +[tr][td][pre] +[b]3.2.6 List message[/b] +[/pre][/td][/tr] + +[tr][td][pre] +Command: LIST +Parameters: [ *( "," ) [ ] ] + +The list command is used to list channels and their topics. If the + parameter is used, only the status of that channel is +displayed. + +If the parameter is specified, the request is forwarded to +that server which will generate the reply. + +Wildcards are allowed in the parameter. + + Numeric Replies: + + ERR_TOOMANYMATCHES ERR_NOSUCHSERVER + RPL_LIST RPL_LISTEND + + Examples: + + LIST ; Command to list all channels. + + LIST #twilight_zone,#42 ; Command to list channels + #twilight_zone and #42 +[/pre][/td][/tr] + +[tr][td][pre] +[b]3.2.7 Invite message[/b] +[/pre][/td][/tr] + +[tr][td][pre] +Command: INVITE +Parameters: + +The INVITE command is used to invite a user to a channel. The +parameter is the nickname of the person to be invited to +the target channel . There is no requirement that the +channel the target user is being invited to must exist or be a valid +channel. However, if the channel exists, only members of the channel +are allowed to invite other users. When the channel has invite-only +flag set, only channel operators may issue INVITE command. +Only the user inviting and the user being invited will receive +notification of the invitation. Other channel members are not +notified. (This is unlike the MODE changes, and is occasionally the +source of trouble for users.) + + Numeric Replies: + + ERR_NEEDMOREPARAMS ERR_NOSUCHNICK + ERR_NOTONCHANNEL ERR_USERONCHANNEL + ERR_CHANOPRIVSNEEDED + RPL_INVITING RPL_AWAY + + Examples: + + :Angel!wings@irc.org INVITE Wiz #Dust + + ; Message to WiZ when he has been + invited by user Angel to channel + #Dust + + INVITE Wiz #Twilight_Zone ; Command to invite WiZ to + #Twilight_zone +[/pre][/td][/tr] + +[tr][td][pre] +[b]3.2.8 Kick command[/b] +[/pre][/td][/tr] + +[tr][td][pre] +Command: KICK +Parameters: *( "," ) *( "," ) +[] + +The KICK command can be used to request the forced removal of a user +from a channel. It causes the to PART from the by +force. For the message to be syntactically correct, there MUST be +either one channel parameter and multiple user parameter, or as many +channel parameters as there are user parameters. If a "comment" is +given, this will be sent instead of the default message, the nickname +of the user issuing the KICK. + +The server MUST NOT send KICK messages with multiple channels or +users to clients. This is necessarily to maintain backward +compatibility with old client software. + + Numeric Replies: + + ERR_NEEDMOREPARAMS ERR_NOSUCHCHANNEL + ERR_BADCHANMASK ERR_CHANOPRIVSNEEDED + ERR_USERNOTINCHANNEL ERR_NOTONCHANNEL + + Examples: + + KICK &Melbourne Matthew ; Command to kick Matthew from + &Melbourne + + KICK #Finnish John :Speaking English + ; Command to kick John from #Finnish + using "Speaking English" as the + reason (comment). + + :WiZ!jto@tolsun.oulu.fi KICK #Finnish John + ; KICK message on channel #Finnish + from WiZ to remove John from channel +[/pre][/td][/tr] + +[tr][td][pre] +[b]3.3 Sending messages[/b] +[/pre][/td][/tr] + +[tr][td][pre] +The main purpose of the IRC protocol is to provide a base for clients +to communicate with each other. PRIVMSG, NOTICE and SQUERY +(described in Section 3.5 on Service Query and Commands) are the only +messages available which actually perform delivery of a text message +from one client to another - the rest just make it possible and try +to ensure it happens in a reliable and structured manner. +[/pre][/td][/tr] + +[tr][td][pre] +[b]3.3.1 Private messages[/b] +[/pre][/td][/tr] + +[tr][td][pre] +Command: PRIVMSG +Parameters: + +PRIVMSG is used to send private messages between users, as well as to +send messages to channels. is usually the nickname of +the recipient of the message, or a channel name. + +The parameter may also be a host mask (#) or server +mask ($). In both cases the server will only send the PRIVMSG +to those who have a server or host matching the mask. The mask MUST +have at least 1 (one) "." in it and no wildcards following the last +".". This requirement exists to prevent people sending messages to +"#*" or "$*", which would broadcast to all users. Wildcards are the +'*' and '?' characters. This extension to the PRIVMSG command is +only available to operators. + + Numeric Replies: + + ERR_NORECIPIENT ERR_NOTEXTTOSEND + ERR_CANNOTSENDTOCHAN ERR_NOTOPLEVEL + ERR_WILDTOPLEVEL ERR_TOOMANYTARGETS + ERR_NOSUCHNICK + RPL_AWAY + + Examples: + + :Angel!wings@irc.org PRIVMSG Wiz :Are you receiving this message ? + ; Message from Angel to Wiz. + + PRIVMSG Angel :yes I'm receiving it ! + ; Command to send a message to Angel. + + PRIVMSG jto@tolsun.oulu.fi :Hello ! + ; Command to send a message to a user + on server tolsun.oulu.fi with + username of "jto". + + PRIVMSG kalt%millennium.stealth.net@irc.stealth.net :Are you a frog? + ; Message to a user on server + irc.stealth.net with username of + "kalt", and connected from the host + millennium.stealth.net. + + PRIVMSG kalt%millennium.stealth.net :Do you like cheese? + ; Message to a user on the local + server with username of "kalt", and + connected from the host + millennium.stealth.net. + + PRIVMSG Wiz!jto@tolsun.oulu.fi :Hello ! + ; Message to the user with nickname + Wiz who is connected from the host + tolsun.oulu.fi and has the username + "jto". + + PRIVMSG $*.fi :Server tolsun.oulu.fi rebooting. + ; Message to everyone on a server + which has a name matching *.fi. + + PRIVMSG #*.edu :NSFNet is undergoing work, expect interruptions + ; Message to all users who come from + a host which has a name matching + *.edu. +[/pre][/td][/tr] + +[tr][td][pre] +[b]3.3.2 Notice[/b] +[/pre][/td][/tr] + +[tr][td][pre] +Command: NOTICE +Parameters: + +The NOTICE command is used similarly to PRIVMSG. The difference +between NOTICE and PRIVMSG is that automatic replies MUST NEVER be +sent in response to a NOTICE message. This rule applies to servers +too - they MUST NOT send any error reply back to the client on +receipt of a notice. The object of this rule is to avoid loops +between clients automatically sending something in response to +something it received. + +This command is available to services as well as users. + +This is typically used by services, and automatons (clients with +either an AI or other interactive program controlling their actions). + +See PRIVMSG for more details on replies and examples. +[/pre][/td][/tr] + +[tr][td][pre] +[b]3.4 Server queries and commands[/b] +[/pre][/td][/tr] + +[tr][td][pre] +The server query group of commands has been designed to return +information about any server which is connected to the network. + +In these queries, where a parameter appears as , wildcard +masks are usually valid. For each parameter, however, only one query +and set of replies is to be generated. In most cases, if a nickname +is given, it will mean the server to which the user is connected. + +These messages typically have little value for services, it is +therefore RECOMMENDED to forbid services from using them. +[/pre][/td][/tr] + +[tr][td][pre] +[b]3.4.1 Motd message[/b] +[/pre][/td][/tr] + +[tr][td][pre] +Command: MOTD +Parameters: [ ] + +The MOTD command is used to get the "Message Of The Day" of the given +server, or current server if is omitted. + +Wildcards are allowed in the parameter. + + Numeric Replies: + RPL_MOTDSTART RPL_MOTD + RPL_ENDOFMOTD ERR_NOMOTD +[/pre][/td][/tr] + +[tr][td][pre] +[b]3.4.2 Lusers message[/b] +[/pre][/td][/tr] + +[tr][td][pre] +Command: LUSERS +Parameters: [ [ ] ] + +The LUSERS command is used to get statistics about the size of the +IRC network. If no parameter is given, the reply will be about the +whole net. If a is specified, then the reply will only +concern the part of the network formed by the servers matching the +mask. Finally, if the parameter is specified, the request +is forwarded to that server which will generate the reply. + +Wildcards are allowed in the parameter. + + Numeric Replies: + + RPL_LUSERCLIENT RPL_LUSEROP + RPL_LUSERUNKOWN RPL_LUSERCHANNELS + RPL_LUSERME ERR_NOSUCHSERVER +[/pre][/td][/tr] + +[tr][td][pre] +[b]3.4.3 Version message[/b] +[/pre][/td][/tr] + +[tr][td][pre] +Command: VERSION +Parameters: [ ] + +The VERSION command is used to query the version of the server +program. An optional parameter is used to query the version +of the server program which a client is not directly connected to. + +Wildcards are allowed in the parameter. + + Numeric Replies: + + ERR_NOSUCHSERVER RPL_VERSION + + Examples: + + VERSION tolsun.oulu.fi ; Command to check the version of + server "tolsun.oulu.fi". +[/pre][/td][/tr] + +[tr][td][pre] +[b]3.4.4 Stats message[/b] +[/pre][/td][/tr] + +[tr][td][pre] +Command: STATS +Parameters: [ [ ] ] + +The stats command is used to query statistics of certain server. If + parameter is omitted, only the end of stats reply is sent +back. + +A query may be given for any single letter which is only checked by +the destination server and is otherwise passed on by intermediate +servers, ignored and unaltered. + +Wildcards are allowed in the parameter. +Except for the ones below, the list of valid queries is +implementation dependent. The standard queries below SHOULD be +supported by the server: + + l - returns a list of the server's connections, showing how + long each connection has been established and the + traffic over that connection in Kbytes and messages for + each direction; + m - returns the usage count for each of commands supported + by the server; commands for which the usage count is + zero MAY be omitted; + o - returns a list of configured privileged users, + operators; + u - returns a string showing how long the server has been + up. + +It is also RECOMMENDED that client and server access configuration be +published this way. + + Numeric Replies: + + ERR_NOSUCHSERVER + RPL_STATSLINKINFO RPL_STATSUPTIME + RPL_STATSCOMMANDS RPL_STATSOLINE + RPL_ENDOFSTATS + + Examples: + + STATS m ; Command to check the command usage + for the server you are connected to +[/pre][/td][/tr] + +[tr][td][pre] +[b]3.4.5 Links message[/b] +[/pre][/td][/tr] + +[tr][td][pre] +Command: LINKS +Parameters: [ [ ] ] + +With LINKS, a user can list all servernames, which are known by the +server answering the query. The returned list of servers MUST match +the mask, or if no mask is given, the full list is returned. + +If is given in addition to , the LINKS +command is forwarded to the first server found that matches that name +(if any), and that server is then required to answer the query. + +Numeric Replies: + + ERR_NOSUCHSERVER + RPL_LINKSRPL_ENDOFLINKS + +Examples: + +LINKS *.au ; Command to list all servers which + have a name that matches *.au; + +LINKS *.edu *.bu.edu; Command to list servers matching + *.bu.edu as seen by the first server + matching *.edu. +[/pre][/td][/tr] + +[tr][td][pre] +[b]3.4.6 Time message[/b] +[/pre][/td][/tr] + +[tr][td][pre] +Command: TIME +Parameters: [ ] + +The time command is used to query local time from the specified +server. If the parameter is not given, the server receiving +the command must reply to the query. + +Wildcards are allowed in the parameter. + + Numeric Replies: + + ERR_NOSUCHSERVER RPL_TIME + + Examples: + TIME tolsun.oulu.fi ; check the time on the server + "tolson.oulu.fi" +[/pre][/td][/tr] + +[tr][td][pre] +[b]3.4.7 Connect message[/b] +[/pre][/td][/tr] + +[tr][td][pre] +Command: CONNECT +Parameters: [ ] + +The CONNECT command can be used to request a server to try to +establish a new connection to another server immediately. CONNECT is +a privileged command and SHOULD be available only to IRC Operators. +If a is given and its mask doesn't match name of the +parsing server, the CONNECT attempt is sent to the first match of +remote server. Otherwise the CONNECT attempt is made by the server +processing the request. + +The server receiving a remote CONNECT command SHOULD generate a +WALLOPS message describing the source and target of the request. + + Numeric Replies: + + ERR_NOSUCHSERVER ERR_NOPRIVILEGES + ERR_NEEDMOREPARAMS + + Examples: + + CONNECT tolsun.oulu.fi 6667 ; Command to attempt to connect local + server to tolsun.oulu.fi on port 6667 +[/pre][/td][/tr] + +[tr][td][pre] +[b]3.4.8 Trace message[/b] +[/pre][/td][/tr] + +[tr][td][pre] +Command: TRACE +Parameters: [ ] + +TRACE command is used to find the route to specific server and +information about its peers. Each server that processes this command +MUST report to the sender about it. The replies from pass-through +links form a chain, which shows route to destination. After sending +this reply back, the query MUST be sent to the next server until +given server is reached. + +TRACE command is used to find the route to specific server. Each +server that processes this message MUST tell the sender about it by +sending a reply indicating it is a pass-through link, forming a chain +of replies. After sending this reply back, it MUST then send the +TRACE message to the next server until given server is reached. If +the parameter is omitted, it is RECOMMENDED that TRACE +command sends a message to the sender telling which servers the local +server has direct connection to. + +If the destination given by is an actual server, the +destination server is REQUIRED to report all servers, services and +operators which are connected to it; if the command was issued by an +operator, the server MAY also report all users which are connected to +it. If the destination given by is a nickname, then only a +reply for that nickname is given. If the parameter is +omitted, it is RECOMMENDED that the TRACE command is parsed as +targeted to the processing server. + +Wildcards are allowed in the parameter. + + Numeric Replies: + + ERR_NOSUCHSERVER + + If the TRACE message is destined for another server, all + intermediate servers must return a RPL_TRACELINK reply to indicate + that the TRACE passed through it and where it is going next. + + RPL_TRACELINK + + A TRACE reply may be composed of any number of the following + numeric replies. + + RPL_TRACECONNECTING RPL_TRACEHANDSHAKE + RPL_TRACEUNKNOWN RPL_TRACEOPERATOR + RPL_TRACEUSER RPL_TRACESERVER + RPL_TRACESERVICE RPL_TRACENEWTYPE + RPL_TRACECLASS RPL_TRACELOG + RPL_TRACEEND + + Examples: + + TRACE *.oulu.fi ; TRACE to a server matching + *.oulu.fi +[/pre][/td][/tr] + +[tr][td][pre] +[b]3.4.9 Admin command[/b] +[/pre][/td][/tr] + +[tr][td][pre] +Command: ADMIN +Parameters: [ ] + +The admin command is used to find information about the administrator +of the given server, or current server if parameter is +omitted. Each server MUST have the ability to forward ADMIN messages +to other servers. + +Wildcards are allowed in the parameter. + + Numeric Replies: + + ERR_NOSUCHSERVER + RPL_ADMINME RPL_ADMINLOC1 + RPL_ADMINLOC2 RPL_ADMINEMAIL + + Examples: + + ADMIN tolsun.oulu.fi ; request an ADMIN reply from + tolsun.oulu.fi + + ADMIN syrk ; ADMIN request for the server to + which the user syrk is connected +[/pre][/td][/tr] + +[tr][td][pre] +[b]3.4.10 Info command[/b] +[/pre][/td][/tr] + +[tr][td][pre] +Command: INFO +Parameters: [ ] + +The INFO command is REQUIRED to return information describing the +server: its version, when it was compiled, the patchlevel, when it +was started, and any other miscellaneous information which may be +considered to be relevant. + +Wildcards are allowed in the parameter. + + Numeric Replies: + + ERR_NOSUCHSERVER + RPL_INFO RPL_ENDOFINFO + + Examples: + + INFO csd.bu.edu ; request an INFO reply from + csd.bu.edu + + INFO Angel ; request info from the server that + Angel is connected to. +[/pre][/td][/tr] + +[tr][td][pre] +[b]3.5 Service Query and Commands[/b] +[/pre][/td][/tr] +[tr][td][pre] +The service query group of commands has been designed to return +information about any service which is connected to the network. +[/pre][/td][/tr] + +[tr][td][pre] +[b]3.5.1 Servlist message[/b] +[/pre][/td][/tr] + +[tr][td][pre] +Command: SERVLIST +Parameters: [ [ ] ] + +The SERVLIST command is used to list services currently connected to +the network and visible to the user issuing the command. The +optional parameters may be used to restrict the result of the query +(to matching services names, and services type). + + Numeric Replies: + + RPL_SERVLIST RPL_SERVLISTEND +[/pre][/td][/tr] + +[tr][td][pre] +[b]3.5.2 Squery[/b] +[/pre][/td][/tr] + +[tr][td][pre] +Command: SQUERY +Parameters: + +The SQUERY command is used similarly to PRIVMSG. The only difference +is that the recipient MUST be a service. This is the only way for a +text message to be delivered to a service. + +See PRIVMSG for more details on replies and example. + + Examples: + + SQUERY irchelp :HELP privmsg + ; Message to the service with + nickname irchelp. + + SQUERY dict@irc.fr :fr2en blaireau + ; Message to the service with name + dict@irc.fr. +[/pre][/td][/tr] + +[tr][td][pre] +[b]3.6 User based queries[/b] +[/pre][/td][/tr] +[tr][td][pre] +User queries are a group of commands which are primarily concerned +with finding details on a particular user or group users. When using +wildcards with any of these commands, if they match, they will only +return information on users who are 'visible' to you. The visibility +of a user is determined as a combination of the user's mode and the +common set of channels you are both on. + +Although services SHOULD NOT be using this class of message, they are +allowed to. +[/pre][/td][/tr] + +[tr][td][pre] +[b]3.6.1 Who query[/b] +[/pre][/td][/tr] + +[tr][td][pre] +Command: WHO +Parameters: [ [ "o" ] ] + +The WHO command is used by a client to generate a query which returns +a list of information which 'matches' the parameter given by +the client. In the absence of the parameter, all visible +(users who aren't invisible (user mode +i) and who don't have a +common channel with the requesting client) are listed. The same +result can be achieved by using a of "0" or any wildcard which +will end up matching every visible user. + +The passed to WHO is matched against users' host, server, real +name and nickname if the channel cannot be found. +If the "o" parameter is passed only operators are returned according +to the supplied. + + Numeric Replies: + + ERR_NOSUCHSERVER + RPL_WHOREPLY RPL_ENDOFWHO + + Examples: + + WHO *.fi ; Command to list all users who match + against "*.fi". + + WHO jto* o ; Command to list all users with a + match against "jto*" if they are an + operator. +[/pre][/td][/tr] + +[tr][td][pre] +[b]3.6.2 Whois query[/b] +[/pre][/td][/tr] + +[tr][td][pre] +Command: WHOIS +Parameters: [ ] *( "," ) + +This command is used to query information about particular user. +The server will answer this command with several numeric messages +indicating different statuses of each user which matches the mask (if +you are entitled to see them). If no wildcard is present in the +, any information about that nick which you are allowed to see +is presented. + +If the parameter is specified, it sends the query to a +specific server. It is useful if you want to know how long the user +in question has been idle as only local server (i.e., the server the +user is directly connected to) knows that information, while +everything else is globally known. + +Wildcards are allowed in the parameter. + + Numeric Replies: + + ERR_NOSUCHSERVER ERR_NONICKNAMEGIVEN + RPL_WHOISUSER RPL_WHOISCHANNELS + RPL_WHOISCHANNELS RPL_WHOISSERVER + RPL_AWAY RPL_WHOISOPERATOR + RPL_WHOISIDLE ERR_NOSUCHNICK + RPL_ENDOFWHOIS + + Examples: + + WHOIS wiz ; return available user information + about nick WiZ + + WHOIS eff.org trillian ; ask server eff.org for user + information about trillian +[/pre][/td][/tr] + +[tr][td][pre] +[b]3.6.3 Whowas[/b] +[/pre][/td][/tr] + +[tr][td][pre] +Command: WHOWAS +Parameters: *( "," ) [ [ ] ] + +Whowas asks for information about a nickname which no longer exists. +This may either be due to a nickname change or the user leaving IRC. +In response to this query, the server searches through its nickname +history, looking for any nicks which are lexically the same (no wild +card matching here). The history is searched backward, returning the +most recent entry first. If there are multiple entries, up to + replies will be returned (or all of them if no +parameter is given). If a non-positive number is passed as being +, then a full search is done. + +Wildcards are allowed in the parameter. + + Numeric Replies: + + ERR_NONICKNAMEGIVEN ERR_WASNOSUCHNICK + RPL_WHOWASUSER RPL_WHOISSERVER + RPL_ENDOFWHOWAS + + Examples: + + WHOWAS Wiz ; return all information in the nick + history about nick "WiZ"; + + WHOWAS Mermaid 9 ; return at most, the 9 most recent + entries in the nick history for + "Mermaid"; + + WHOWAS Trillian 1 *.edu ; return the most recent history for + "Trillian" from the first server + found to match "*.edu". +[/pre][/td][/tr] + +[tr][td][pre] +[b]3.7 Miscellaneous messages[/b] +[/pre][/td][/tr] + +[tr][td][pre] +Messages in this category do not fit into any of the above categories +but are nonetheless still a part of and REQUIRED by the protocol. +[/pre][/td][/tr] + +[tr][td][pre] +[b]3.7.1 Kill message[/b] +[/pre][/td][/tr] + +[tr][td][pre] +Command: KILL +Parameters: + +The KILL command is used to cause a client-server connection to be +closed by the server which has the actual connection. Servers +generate KILL messages on nickname collisions. It MAY also be +available available to users who have the operator status. + +Clients which have automatic reconnect algorithms effectively make +this command useless since the disconnection is only brief. It does +however break the flow of data and can be used to stop large amounts +of 'flooding' from abusive users or accidents. Abusive users usually +don't care as they will reconnect promptly and resume their abusive +behaviour. To prevent this command from being abused, any user may +elect to receive KILL messages generated for others to keep an 'eye' +on would be trouble spots. + +In an arena where nicknames are REQUIRED to be globally unique at all +times, KILL messages are sent whenever 'duplicates' are detected +(that is an attempt to register two users with the same nickname) in +the hope that both of them will disappear and only 1 reappear. + +When a client is removed as the result of a KILL message, the server +SHOULD add the nickname to the list of unavailable nicknames in an +attempt to avoid clients to reuse this name immediately which is +usually the pattern of abusive behaviour often leading to useless +"KILL loops". See the "IRC Server Protocol" document [IRC-SERVER] +for more information on this procedure. + +The comment given MUST reflect the actual reason for the KILL. For +server-generated KILLs it usually is made up of details concerning +the origins of the two conflicting nicknames. For users it is left +up to them to provide an adequate reason to satisfy others who see +it. To prevent/discourage fake KILLs from being generated to hide +the identify of the KILLer, the comment also shows a 'kill-path' +which is updated by each server it passes through, each prepending +its name to the path. + + Numeric Replies: + + ERR_NOPRIVILEGES ERR_NEEDMOREPARAMS + ERR_NOSUCHNICK ERR_CANTKILLSERVER + +NOTE: +It is RECOMMENDED that only Operators be allowed to kill other users +with KILL command. This command has been the subject of many +controversies over the years, and along with the above +recommendation, it is also widely recognized that not even operators +should be allowed to kill users on remote servers. +[/pre][/td][/tr] + +[tr][td][pre] +[b]3.7.2 Ping message[/b] +[/pre][/td][/tr] + +[tr][td][pre] +Command: PING +Parameters: [ ] + +The PING command is used to test the presence of an active client or +server at the other end of the connection. Servers send a PING +message at regular intervals if no other activity detected coming +from a connection. If a connection fails to respond to a PING +message within a set amount of time, that connection is closed. A +PING message MAY be sent even if the connection is active. + +When a PING message is received, the appropriate PONG message MUST be +sent as reply to (server which sent the PING message out) +as soon as possible. If the parameter is specified, it +represents the target of the ping, and the message gets forwarded +there. + + Numeric Replies: + + ERR_NOORIGIN ERR_NOSUCHSERVER + + Examples: + + PING tolsun.oulu.fi ; Command to send a PING message to + server + + PING WiZ tolsun.oulu.fi ; Command from WiZ to send a PING + message to server "tolsun.oulu.fi" + + PING :irc.funet.fi ; Ping message sent by server + "irc.funet.fi" +[/pre][/td][/tr] + +[tr][td][pre] +[b]3.7.3 Pong message[/b] +[/pre][/td][/tr] + +[tr][td][pre] +Command: PONG +Parameters: [ ] + +PONG message is a reply to ping message. If parameter is +given, this message MUST be forwarded to given target. The +parameter is the name of the entity who has responded to PING message +and generated this message. + + Numeric Replies: + + ERR_NOORIGIN ERR_NOSUCHSERVER + + Example: + + PONG csd.bu.edu tolsun.oulu.fi ; PONG message from csd.bu.edu to + tolsun.oulu.fi +[/pre][/td][/tr] + +[tr][td][pre] +[b]3.7.4 Error[/b] +[/pre][/td][/tr] + +[tr][td][pre] +Command: ERROR +Parameters: + +The ERROR command is for use by servers when reporting a serious or +fatal error to its peers. It may also be sent from one server to +another but MUST NOT be accepted from any normal unknown clients. + +Only an ERROR message SHOULD be used for reporting errors which occur +with a server-to-server link. An ERROR message is sent to the server +at the other end (which reports it to appropriate local users and +logs) and to appropriate local users and logs. It is not to be +passed onto any other servers by a server if it is received from a +server. + +The ERROR message is also used before terminating a client +connection. + +When a server sends a received ERROR message to its operators, the +message SHOULD be encapsulated inside a NOTICE message, indicating +that the client was not responsible for the error. + + Numerics: + + None. + + Examples: + + ERROR :Server *.fi already exists ; ERROR message to the other server + which caused this error. + + NOTICE WiZ :ERROR from csd.bu.edu -- Server *.fi already exists + ; Same ERROR message as above but + sent to user WiZ on the other server. +[/pre][/td][/tr] + +[tr][td][pre] +[b]4. Optional features[/b] +[/pre][/td][/tr] + +[tr][td][pre] +This section describes OPTIONAL messages. They are not required in a +working server implementation of the protocol described herein. In +the absence of the feature, an error reply message MUST be generated +or an unknown command error. If the message is destined for another +server to answer then it MUST be passed on (elementary parsing +REQUIRED) The allocated numerics for this are listed with the +messages below. + +From this section, only the USERHOST and ISON messages are available +to services. +[/pre][/td][/tr] + +[tr][td][pre] +[b]4.1 Away[/b] +[/pre][/td][/tr] + +[tr][td][pre] +Command: AWAY +Parameters: [ ] + +With the AWAY command, clients can set an automatic reply string for +any PRIVMSG commands directed at them (not to a channel they are on). +The server sends an automatic reply to the client sending the PRIVMSG +command. The only replying server is the one to which the sending +client is connected to. + +The AWAY command is used either with one parameter, to set an AWAY +message, or with no parameters, to remove the AWAY message. + +Because of its high cost (memory and bandwidth wise), the AWAY +message SHOULD only be used for client-server communication. A +server MAY choose to silently ignore AWAY messages received from +other servers. To update the away status of a client across servers, +the user mode 'a' SHOULD be used instead. (See Section 3.1.5) + + Numeric Replies: + + RPL_UNAWAY RPL_NOWAWAY + + Example: + + AWAY :Gone to lunch. Back in 5 ; Command to set away message to + "Gone to lunch. Back in 5". +[/pre][/td][/tr] + +[tr][td][pre] +[b]4.2 Rehash message[/b] +[/pre][/td][/tr] + +[tr][td][pre] +Command: REHASH +Parameters: None + +The rehash command is an administrative command which can be used by +an operator to force the server to re-read and process its +configuration file. + + Numeric Replies: + + RPL_REHASHING ERR_NOPRIVILEGES + + + Example: + + REHASH ; message from user with operator + status to server asking it to reread + its configuration file. +[/pre][/td][/tr] + +[tr][td][pre] +[b]4.3 Die message[/b] +[/pre][/td][/tr] + +[tr][td][pre] +Command: DIE +Parameters: None + +An operator can use the DIE command to shutdown the server. This +message is optional since it may be viewed as a risk to allow +arbitrary people to connect to a server as an operator and execute +this command. + +The DIE command MUST always be fully processed by the server to which +the sending client is connected and MUST NOT be passed onto other +connected servers. + + Numeric Replies: + + ERR_NOPRIVILEGES + + Example: + + DIE ; no parameters required. +[/pre][/td][/tr] + +[tr][td][pre] +[b]4.4 Restart message[/b] +[/pre][/td][/tr] + +[tr][td][pre] +Command: RESTART +Parameters: None + +An operator can use the restart command to force the server to +restart itself. This message is optional since it may be viewed as a +risk to allow arbitrary people to connect to a server as an operator +and execute this command, causing (at least) a disruption to service. + +The RESTART command MUST always be fully processed by the server to +which the sending client is connected and MUST NOT be passed onto +other connected servers. + + Numeric Replies: + + ERR_NOPRIVILEGES + + Example: + + RESTART ; no parameters required. +[/pre][/td][/tr] + +[tr][td][pre] +[b]4.5 Summon message[/b] +[/pre][/td][/tr] + +[tr][td][pre] +Command: SUMMON +Parameters: [ [ ] ] + +The SUMMON command can be used to give users who are on a host +running an IRC server a message asking them to please join IRC. This +message is only sent if the target server (a) has SUMMON enabled, (b) +the user is logged in and (c) the server process can write to the +user's tty (or similar). + +If no parameter is given it tries to summon from the +server the client is connected to is assumed as the target. + +If summon is not enabled in a server, it MUST return the +ERR_SUMMONDISABLED numeric. + + Numeric Replies: + + ERR_NORECIPIENT ERR_FILEERROR + ERR_NOLOGIN ERR_NOSUCHSERVER + ERR_SUMMONDISABLED RPL_SUMMONING + + Examples: + + SUMMON jto ; summon user jto on the server's + host + + SUMMON jto tolsun.oulu.fi ; summon user jto on the host which a + server named "tolsun.oulu.fi" is + running. +[/pre][/td][/tr] + +[tr][td] +[b]4.6 Users[/b] +[/td][/tr] + +[tr][td][pre] +Command: USERS +Parameters: [ ] + +The USERS command returns a list of users logged into the server in a +format similar to the UNIX commands who(1), rusers(1) and finger(1). +If disabled, the correct numeric MUST be returned to indicate this. + +Because of the security implications of such a command, it SHOULD be +disabled by default in server implementations. Enabling it SHOULD +require recompiling the server or some equivalent change rather than +simply toggling an option and restarting the server. The procedure +to enable this command SHOULD also include suitable large comments. + + Numeric Replies: + + ERR_NOSUCHSERVER ERR_FILEERROR + RPL_USERSSTART RPL_USERS + RPL_NOUSERS RPL_ENDOFUSERS + ERR_USERSDISABLED + + Disabled Reply: + + ERR_USERSDISABLED + + Example: + + USERS eff.org ; request a list of users logged in + on server eff.org +[/pre][/td][/tr] + +[tr][td] +[b]4.7 Operwall message[/b] +[/td][/tr] + +[tr][td][pre] +Command: WALLOPS +Parameters: + +The WALLOPS command is used to send a message to all currently +connected users who have set the 'w' user mode for themselves. (See +Section 3.1.5 "User modes"). +After implementing WALLOPS as a user command it was found that it was +often and commonly abused as a means of sending a message to a lot of +people. Due to this, it is RECOMMENDED that the implementation of +WALLOPS allows and recognizes only servers as the originators of +WALLOPS. + + Numeric Replies: + + ERR_NEEDMOREPARAMS + + Example: + + :csd.bu.edu WALLOPS :Connect '*.uiuc.edu 6667' from Joshua ; WALLOPS + message from csd.bu.edu announcing a + CONNECT message it received from + Joshua and acted upon. +[/pre][/td][/tr] + +[tr][td] +[b]4.8 Userhost message[/b] +[/td][/tr] + +[tr][td][pre] +Command: USERHOST +Parameters: *( SPACE ) + +The USERHOST command takes a list of up to 5 nicknames, each +separated by a space character and returns a list of information +about each nickname that it found. The returned list has each reply +separated by a space. + + Numeric Replies: + + RPL_USERHOST ERR_NEEDMOREPARAMS + + Example: + + USERHOST Wiz Michael syrk ; USERHOST request for information on + nicks "Wiz", "Michael", and "syrk" + + :ircd.stealth.net 302 yournick :syrk=+syrk@millennium.stealth.net + ; Reply for user syrk +[/pre][/td][/tr] + +[tr][td] +[b]4.9 Ison message[/b] +[/td][/tr] + +[tr][td][pre] +Command: ISON +Parameters: *( SPACE ) + +The ISON command was implemented to provide a quick and efficient +means to get a response about whether a given nickname was currently +on IRC. ISON only takes one (1) type of parameter: a space-separated +list of nicks. For each nickname in the list that is present, the +server adds that to its reply string. Thus the reply string may +return empty (none of the given nicks are present), an exact copy of +the parameter string (all of them present) or any other subset of the +set of nicks given in the parameter. The only limit on the number of +nicks that may be checked is that the combined length MUST NOT be too +large as to cause the server to chop it off so it fits in 512 +characters. + +ISON is only processed by the server local to the client sending the +command and thus not passed onto other servers for further +processing. + + Numeric Replies: + + RPL_ISON ERR_NEEDMOREPARAMS + + Example: + + ISON phone trillian WiZ jarlek Avalon Angel Monstah syrk + ; Sample ISON request for 7 nicks. +[/pre][/td][/tr] + +[tr][td] +[b]5. Replies[/b] +[/td][/tr] + +[tr][td] +The following is a list of numeric replies which are generated in +response to the commands given above. Each numeric is given with its +number, name and reply string. +[/td][/tr] + +[tr][td] +[b]5.1 Command responses[/b] +[/td][/tr] + +[tr][td] +Numerics in the range from 001 to 099 are used for client-server +connections only and should never travel between servers. Replies +generated in the response to commands are found in the range from 200 +to 399. +[p] +[pre] + 001 RPL_WELCOME + "Welcome to the Internet Relay Network + !@" + 002 RPL_YOURHOST + "Your host is , running version " + 003 RPL_CREATED + "This server was created " + 004 RPL_MYINFO + " + " + + - The server sends Replies 001 to 004 to a user upon + successful registration. + + 005 RPL_BOUNCE + "Try server , port " + + - Sent by the server to a user to suggest an alternative + server. This is often used when the connection is + refused because the server is already full. + + 302 RPL_USERHOST + ":*1 *( " " )" + + - Reply format used by USERHOST to list replies to + the query list. The reply string is composed as + follows: + + reply = nickname [ "*" ] "=" ( "+" / "-" ) hostname + + The '*' indicates whether the client has registered + as an Operator. The '-' or '+' characters represent + whether the client has set an AWAY message or not + respectively. + + 303 RPL_ISON + ":*1 *( " " )" + + - Reply format used by ISON to list replies to the + query list. + + 301 RPL_AWAY + " :" + 305 RPL_UNAWAY + ":You are no longer marked as being away" + 306 RPL_NOWAWAY + ":You have been marked as being away" + + - These replies are used with the AWAY command (if + allowed). RPL_AWAY is sent to any client sending a + PRIVMSG to a client which is away. RPL_AWAY is only + sent by the server to which the client is connected. + Replies RPL_UNAWAY and RPL_NOWAWAY are sent when the + client removes and sets an AWAY message. + + 311 RPL_WHOISUSER + " * :" + 312 RPL_WHOISSERVER + " :" + 313 RPL_WHOISOPERATOR + " :is an IRC operator + 317 RPL_WHOISIDLE + " :seconds idle" + 318 RPL_ENDOFWHOIS + " :End of WHOIS list" + 319 RPL_WHOISCHANNELS + " :*( ( "@" / "+" ) " " )" + + - Replies 311 - 313, 317 - 319 are all replies + generated in response to a WHOIS message. Given that + there are enough parameters present, the answering + server MUST either formulate a reply out of the above + numerics (if the query nick is found) or return an + error reply. The '*' in RPL_WHOISUSER is there as + the literal character and not as a wild card. For + each reply set, only RPL_WHOISCHANNELS may appear + more than once (for long lists of channel names). + The '@' and '+' characters next to the channel name + indicate whether a client is a channel operator or + has been granted permission to speak on a moderated + channel. The RPL_ENDOFWHOIS reply is used to mark + the end of processing a WHOIS message. + + 314 RPL_WHOWASUSER + " * :" + 369 RPL_ENDOFWHOWAS + " :End of WHOWAS" + + - When replying to a WHOWAS message, a server MUST use + the replies RPL_WHOWASUSER, RPL_WHOISSERVER or + ERR_WASNOSUCHNICK for each nickname in the presented + list. At the end of all reply batches, there MUST + be RPL_ENDOFWHOWAS (even if there was only one reply + and it was an error). + + 321 RPL_LISTSTART + Obsolete. Not used. + + 322 RPL_LIST + " <# visible> :" + 323 RPL_LISTEND + ":End of LIST" + + - Replies RPL_LIST, RPL_LISTEND mark the actual replies + with data and end of the server's response to a LIST + command. If there are no channels available to return, + only the end reply MUST be sent. + + 325 RPL_UNIQOPIS + " " + + 324 RPL_CHANNELMODEIS + " " + + 331 RPL_NOTOPIC + " :No topic is set" + 332 RPL_TOPIC + " :" + + - When sending a TOPIC message to determine the + channel topic, one of two replies is sent. If + the topic is set, RPL_TOPIC is sent back else + RPL_NOTOPIC. + + 341 RPL_INVITING + " " + + - Returned by the server to indicate that the + attempted INVITE message was successful and is + being passed onto the end client. + + 342 RPL_SUMMONING + " :Summoning user to IRC" + + - Returned by a server answering a SUMMON message to + indicate that it is summoning that user. + + 346 RPL_INVITELIST + " " + 347 RPL_ENDOFINVITELIST + " :End of channel invite list" + + - When listing the 'invitations masks' for a given channel, + a server is required to send the list back using the + RPL_INVITELIST and RPL_ENDOFINVITELIST messages. A + separate RPL_INVITELIST is sent for each active mask. + After the masks have been listed (or if none present) a + RPL_ENDOFINVITELIST MUST be sent. + + 348 RPL_EXCEPTLIST + " " + 349 RPL_ENDOFEXCEPTLIST + " :End of channel exception list" + + - When listing the 'exception masks' for a given channel, + a server is required to send the list back using the + RPL_EXCEPTLIST and RPL_ENDOFEXCEPTLIST messages. A + separate RPL_EXCEPTLIST is sent for each active mask. + After the masks have been listed (or if none present) + a RPL_ENDOFEXCEPTLIST MUST be sent. + + 351 RPL_VERSION + ". :" + + - Reply by the server showing its version details. + The is the version of the software being + used (including any patchlevel revisions) and the + is used to indicate if the server is + running in "debug mode". + + The "comments" field may contain any comments about + the version or further version details. + + 352 RPL_WHOREPLY + " + ( "H" / "G" > ["*"] [ ( "@" / "+" ) ] + : " + + 315 RPL_ENDOFWHO + " :End of WHO list" + + - The RPL_WHOREPLY and RPL_ENDOFWHO pair are used + to answer a WHO message. The RPL_WHOREPLY is only + sent if there is an appropriate match to the WHO + query. If there is a list of parameters supplied + with a WHO message, a RPL_ENDOFWHO MUST be sent + after processing each list item with being + the item. + + 353 RPL_NAMREPLY + "( "=" / "*" / "@" ) + :[ "@" / "+" ] *( " " [ "@" / "+" ] ) + - "@" is used for secret channels, "*" for private + channels, and "=" for others (public channels). + + 366 RPL_ENDOFNAMES + " :End of NAMES list" + + - To reply to a NAMES message, a reply pair consisting + of RPL_NAMREPLY and RPL_ENDOFNAMES is sent by the + server back to the client. If there is no channel + found as in the query, then only RPL_ENDOFNAMES is + returned. The exception to this is when a NAMES + message is sent with no parameters and all visible + channels and contents are sent back in a series of + RPL_NAMEREPLY messages with a RPL_ENDOFNAMES to mark + the end. + + 364 RPL_LINKS + " : " + 365 RPL_ENDOFLINKS + " :End of LINKS list" + + - In replying to the LINKS message, a server MUST send + replies back using the RPL_LINKS numeric and mark the + end of the list using an RPL_ENDOFLINKS reply. + + 367 RPL_BANLIST + " " + 368 RPL_ENDOFBANLIST + " :End of channel ban list" + + - When listing the active 'bans' for a given channel, + a server is required to send the list back using the + RPL_BANLIST and RPL_ENDOFBANLIST messages. A separate + RPL_BANLIST is sent for each active banmask. After the + banmasks have been listed (or if none present) a + RPL_ENDOFBANLIST MUST be sent. + + 371 RPL_INFO + ":" + 374 RPL_ENDOFINFO + ":End of INFO list" + + - A server responding to an INFO message is required to + send all its 'info' in a series of RPL_INFO messages + with a RPL_ENDOFINFO reply to indicate the end of the + replies. + + 375 RPL_MOTDSTART + ":- Message of the day - " + 372 RPL_MOTD + ":- " + 376 RPL_ENDOFMOTD + ":End of MOTD command" + + - When responding to the MOTD message and the MOTD file + is found, the file is displayed line by line, with + each line no longer than 80 characters, using + RPL_MOTD format replies. These MUST be surrounded + by a RPL_MOTDSTART (before the RPL_MOTDs) and an + RPL_ENDOFMOTD (after). + + 381 RPL_YOUREOPER + ":You are now an IRC operator" + + - RPL_YOUREOPER is sent back to a client which has + just successfully issued an OPER message and gained + operator status. + + 382 RPL_REHASHING + " :Rehashing" + + - If the REHASH option is used and an operator sends + a REHASH message, an RPL_REHASHING is sent back to + the operator. + + 383 RPL_YOURESERVICE + "You are service " + + - Sent by the server to a service upon successful + registration. + + 391 RPL_TIME + " :" + + - When replying to the TIME message, a server MUST send + the reply using the RPL_TIME format above. The string + showing the time need only contain the correct day and + time there. There is no further requirement for the + time string. + + 392 RPL_USERSSTART + ":UserID Terminal Host" + 393 RPL_USERS + ": " + 394 RPL_ENDOFUSERS + ":End of users" + 395 RPL_NOUSERS + ":Nobody logged in" + + - If the USERS message is handled by a server, the + replies RPL_USERSTART, RPL_USERS, RPL_ENDOFUSERS and + RPL_NOUSERS are used. RPL_USERSSTART MUST be sent + first, following by either a sequence of RPL_USERS + or a single RPL_NOUSER. Following this is + RPL_ENDOFUSERS. + + 200 RPL_TRACELINK + "Link + V + + " + 201 RPL_TRACECONNECTING + "Try. " + 202 RPL_TRACEHANDSHAKE + "H.S. " + 203 RPL_TRACEUNKNOWN + "???? []" + 204 RPL_TRACEOPERATOR + "Oper " + 205 RPL_TRACEUSER + "User " + 206 RPL_TRACESERVER + "Serv S C + @ V" + 207 RPL_TRACESERVICE + "Service " + 208 RPL_TRACENEWTYPE + " 0 " + 209 RPL_TRACECLASS + "Class " + 210 RPL_TRACERECONNECT + Unused. + 261 RPL_TRACELOG + "File " + 262 RPL_TRACEEND + " :End of TRACE" + + - The RPL_TRACE* are all returned by the server in + response to the TRACE message. How many are + returned is dependent on the TRACE message and + whether it was sent by an operator or not. There + is no predefined order for which occurs first. + Replies RPL_TRACEUNKNOWN, RPL_TRACECONNECTING and + RPL_TRACEHANDSHAKE are all used for connections + which have not been fully established and are either + unknown, still attempting to connect or in the + process of completing the 'server handshake'. + RPL_TRACELINK is sent by any server which handles + a TRACE message and has to pass it on to another + server. The list of RPL_TRACELINKs sent in + response to a TRACE command traversing the IRC + network should reflect the actual connectivity of + the servers themselves along that path. + RPL_TRACENEWTYPE is to be used for any connection + which does not fit in the other categories but is + being displayed anyway. + RPL_TRACEEND is sent to indicate the end of the list. + + 211 RPL_STATSLINKINFO + " + +