# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # # Translators: # Leandro Regueiro , 2015 msgid "" msgstr "" "Project-Id-Version: HexChat\n" "Report-Msgid-Bugs-To: www.hexchat.org\n" "POT-Creation-Date: 2016-10-08 15:09-0400\n" "PO-Revision-Date: 2016-10-08 19:09+0000\n" "Last-Translator: TingPing \n" "Language-Team: Galician (http://www.transifex.com/hexchat/hexchat/language/gl/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: gl\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: ../data/misc/hexchat.appdata.xml.in.h:1 msgid "" "HexChat is an easy to use yet extensible IRC Client. It allows you to " "securely join multiple networks and talk to users privately or in channels " "using a customizable interface. You can even transfer files." msgstr "" #: ../data/misc/hexchat.appdata.xml.in.h:2 msgid "" "HexChat supports features such as: DCC, SASL, proxies, spellcheck, alerts, " "logging, custom themes, and Python/Perl scripts." msgstr "" #: ../data/misc/hexchat.appdata.xml.in.h:3 msgid "Main Chat Window" msgstr "" #: ../data/misc/hexchat.desktop.in.h:1 msgid "HexChat" msgstr "HexChat" #: ../data/misc/hexchat.desktop.in.h:2 msgid "IRC Client" msgstr "Cliente de IRC" #: ../data/misc/hexchat.desktop.in.h:3 msgid "Chat with other people online" msgstr "" #: ../data/misc/hexchat.desktop.in.h:4 msgid "IM;Chat;" msgstr "" #: ../data/misc/hexchat.desktop.in.h:5 msgid "Open Safe Mode" msgstr "" #: ../data/misc/htm.desktop.in.h:1 msgid "HexChat Theme Manager" msgstr "Xestor de temas de HexChat" #. 0 means unlimited #. STRINGS #: ../src/common/cfgfiles.c:839 msgid "I'm busy" msgstr "Estou ocupado" #: ../src/common/cfgfiles.c:876 msgid "Leaving" msgstr "Abandonando" #: ../src/common/chanopt.c:79 msgid "OFF" msgstr "" #: ../src/common/chanopt.c:81 msgid "ON" msgstr "" #: ../src/common/chanopt.c:83 msgid "{unset}" msgstr "" #: ../src/common/chanopt.c:128 ../src/common/text.c:1314 #: ../src/fe-gtk/notifygui.c:125 ../src/fe-gtk/setup.c:1877 msgid "Network" msgstr "Rede" #: ../src/common/chanopt.c:129 ../src/common/chanopt.c:131 #: ../src/fe-gtk/maingui.c:1553 ../src/fe-gtk/maingui.c:1673 #: ../src/fe-gtk/maingui.c:3366 msgid "" msgstr "" #: ../src/common/chanopt.c:130 ../src/common/text.c:1014 #: ../src/common/text.c:1018 ../src/common/text.c:1487 #: ../src/fe-gtk/chanlist.c:777 ../src/fe-gtk/ignoregui.c:159 #: ../src/fe-gtk/servlistgui.c:1791 msgid "Channel" msgstr "Canle" #: ../src/common/dcc.c:72 msgid "Waiting" msgstr "Agardando" #. black #: ../src/common/dcc.c:73 msgid "Active" msgstr "Activo" #. cyan #: ../src/common/dcc.c:74 msgid "Failed" msgstr "Fallou" #. red #: ../src/common/dcc.c:75 msgid "Done" msgstr "Rematado" #. green #: ../src/common/dcc.c:76 ../src/fe-gtk/menu.c:970 msgid "Connect" msgstr "Conectar" #. black #: ../src/common/dcc.c:77 msgid "Aborted" msgstr "Abortado" #: ../src/common/dcc.c:1790 ../src/common/dcc.c:1801 ../src/common/dcc.c:1817 #: ../src/common/outbound.c:2534 #, c-format msgid "Cannot access %s\n" msgstr "Non foi posíbel acceder a %s\n" #. ! if (osvi.dwMajorVersion >= 5) #. fallback to error number #: ../src/common/dcc.c:1791 ../src/common/dcc.c:1802 ../src/common/dcc.c:1818 #: ../src/common/text.c:1298 ../src/common/text.c:1341 #: ../src/common/text.c:1352 ../src/common/text.c:1359 #: ../src/common/text.c:1372 ../src/common/text.c:1389 #: ../src/common/text.c:1494 ../src/common/util.c:175 msgid "Error" msgstr "Erro" #: ../src/common/dcc.c:2487 #, c-format msgid "%s is offering \"%s\". Do you want to accept?" msgstr "%s ofrécelle \"%s\". Quere aceptar?" #: ../src/common/dcc.c:2704 msgid "No active DCCs\n" msgstr "Non hai DCCs activos\n" #: ../src/common/hexchat.c:884 msgid "_Open Dialog Window" msgstr "" #: ../src/common/hexchat.c:885 msgid "_Send a File" msgstr "" #: ../src/common/hexchat.c:886 msgid "_User Info (WhoIs)" msgstr "" #: ../src/common/hexchat.c:887 msgid "_Add to Friends List" msgstr "" #: ../src/common/hexchat.c:888 msgid "_Ignore" msgstr "_Ignorar" #: ../src/common/hexchat.c:889 msgid "O_perator Actions" msgstr "" #: ../src/common/hexchat.c:891 msgid "Give Ops" msgstr "Dar Op" #: ../src/common/hexchat.c:892 msgid "Take Ops" msgstr "Tomar Op" #: ../src/common/hexchat.c:893 msgid "Give Voice" msgstr "Dar Voz" #: ../src/common/hexchat.c:894 msgid "Take Voice" msgstr "Tomar Voz" #: ../src/common/hexchat.c:896 msgid "Kick/Ban" msgstr "Botar/Vetar" #: ../src/common/hexchat.c:897 ../src/common/hexchat.c:934 msgid "Kick" msgstr "Botar" #: ../src/common/hexchat.c:898 ../src/common/hexchat.c:899 #: ../src/common/hexchat.c:900 ../src/common/hexchat.c:901 #: ../src/common/hexchat.c:902 ../src/common/hexchat.c:933 #: ../src/fe-gtk/banlist.c:50 msgid "Ban" msgstr "Vetar" #: ../src/common/hexchat.c:903 ../src/common/hexchat.c:904 #: ../src/common/hexchat.c:905 ../src/common/hexchat.c:906 msgid "KickBan" msgstr "Botar e vetar" #: ../src/common/hexchat.c:916 msgid "Leave Channel" msgstr "Abandonar a canle" #: ../src/common/hexchat.c:917 msgid "Join Channel..." msgstr "Entrar á canle..." #: ../src/common/hexchat.c:918 ../src/fe-gtk/menu.c:1410 msgid "Enter Channel to Join:" msgstr "Introduza a canle á que quere entrar:" #: ../src/common/hexchat.c:919 msgid "Server Links" msgstr "Ligazóns do servidor" #: ../src/common/hexchat.c:920 msgid "Ping Server" msgstr "Ping ao servidor" #: ../src/common/hexchat.c:921 msgid "Hide Version" msgstr "Agochar versión" #: ../src/common/hexchat.c:931 msgid "Op" msgstr "Op" #: ../src/common/hexchat.c:932 msgid "DeOp" msgstr "Quitar Op" #: ../src/common/hexchat.c:935 msgid "bye" msgstr "adeus" #: ../src/common/hexchat.c:936 #, c-format msgid "Enter reason to kick %s:" msgstr "Introduza razón para expulsar a %s:" #: ../src/common/hexchat.c:937 msgid "Sendfile" msgstr "Enviar ficheiro" #: ../src/common/hexchat.c:938 msgid "Dialog" msgstr "Diálogo" #: ../src/common/hexchat.c:947 msgid "WhoIs" msgstr "WhoIs" #: ../src/common/hexchat.c:948 msgid "Send" msgstr "Enviar" #: ../src/common/hexchat.c:949 msgid "Chat" msgstr "Chat" #: ../src/common/hexchat.c:950 ../src/fe-gtk/banlist.c:847 #: ../src/fe-gtk/dccgui.c:888 ../src/fe-gtk/ignoregui.c:385 #: ../src/fe-gtk/urlgrab.c:212 msgid "Clear" msgstr "Limpar" #: ../src/common/hexchat.c:951 msgid "Ping" msgstr "Ping" #: ../src/common/hexchat.c:1124 #, c-format msgid "" "You do not have write access to %s. Nothing from this session can be saved." msgstr "" #: ../src/common/hexchat.c:1133 msgid "" "* Running IRC as root is stupid! You should\n" " create a User Account and use that to login.\n" msgstr "* Executar o IRC como root é estúpido! Debería\n crear unha conta de usuario e usala para conectarse.\n" #: ../src/common/ignore.c:127 ../src/common/ignore.c:131 #: ../src/common/ignore.c:135 ../src/common/ignore.c:139 #: ../src/common/ignore.c:143 ../src/common/ignore.c:147 #: ../src/common/ignore.c:151 msgid "YES " msgstr "Si " #: ../src/common/ignore.c:129 ../src/common/ignore.c:133 #: ../src/common/ignore.c:137 ../src/common/ignore.c:141 #: ../src/common/ignore.c:145 ../src/common/ignore.c:149 #: ../src/common/ignore.c:153 msgid "NO " msgstr "Non.." #: ../src/common/ignore.c:378 #, c-format msgid "You are being CTCP flooded from %s, ignoring %s\n" msgstr "Está recibindo demasiados CTCP de %s, ignorando %s\n" #: ../src/common/ignore.c:403 #, c-format msgid "You are being MSG flooded from %s, setting gui_autoopen_dialog OFF.\n" msgstr "" #: ../src/common/inbound.c:1283 #, c-format msgid "Resolved to %s" msgstr "" #: ../src/common/inbound.c:1285 ../src/common/inbound.c:1313 msgid "Not found" msgstr "" #: ../src/common/inbound.c:1302 msgid "Resolved to:" msgstr "" #: ../src/common/inbound.c:1332 #, c-format msgid "Looking up %s..." msgstr "" #: ../src/common/notify.c:559 #, c-format msgid " %-20s online\n" msgstr " %-20s conectados\n" #: ../src/common/notify.c:561 #, c-format msgid " %-20s offline\n" msgstr " %-20s desconectados\n" #: ../src/common/outbound.c:69 msgid "No channel joined. Try /join #\n" msgstr "Non entrou en ningún canal. Tente /join #\n" #: ../src/common/outbound.c:75 msgid "Not connected. Try /server []\n" msgstr "Non conectado. Tente /server []\n" #: ../src/common/outbound.c:277 #, c-format msgid "Server %s already exists on network %s.\n" msgstr "" #: ../src/common/outbound.c:283 #, c-format msgid "Added server %s to network %s.\n" msgstr "" #: ../src/common/outbound.c:368 #, c-format msgid "Already marked away: %s\n" msgstr "Xa está marcado como ausente: %s\n" #: ../src/common/outbound.c:405 msgid "Already marked back.\n" msgstr "" #: ../src/common/outbound.c:1772 msgid "I need /bin/sh to run!\n" msgstr "Necesítase /bin/sh para executarse!\n" #: ../src/common/outbound.c:2195 msgid "Commands Available:" msgstr "Comandos dispoñibles:" #: ../src/common/outbound.c:2209 msgid "User defined commands:" msgstr "Comandos definidos polo usuario:" #: ../src/common/outbound.c:2225 msgid "Plugin defined commands:" msgstr "Compoñentes definidos polo usuario:" #: ../src/common/outbound.c:2236 msgid "Type /HELP for more information, or /HELP -l" msgstr "Escriba /HELP para máis información, ou /HELP -l" #: ../src/common/outbound.c:2320 #, c-format msgid "Unknown arg '%s' ignored." msgstr "Argumento descoñecido '%s' ignorado." #: ../src/common/outbound.c:3078 ../src/common/outbound.c:3108 msgid "Quiet is not supported by this server." msgstr "" #. error #: ../src/common/outbound.c:3555 ../src/common/outbound.c:3580 msgid "No such plugin found.\n" msgstr "Non se atopou dito complemento.\n" #: ../src/common/outbound.c:3560 ../src/fe-gtk/plugingui.c:191 msgid "That plugin is refusing to unload.\n" msgstr "Ese complemento négase a ser desactivado.\n" #: ../src/common/outbound.c:3862 msgid "ADDBUTTON , adds a button under the user-list" msgstr "ADDBUTTON , engade un botón debaixo da lista de usuarios" #: ../src/common/outbound.c:3863 msgid "" "ADDSERVER , adds a new network with a new " "server to the network list" msgstr "" #: ../src/common/outbound.c:3865 msgid "ALLCHAN , sends a command to all channels you're in" msgstr "ALLCHAN , envía unha orde a todos as canles aos que se uniu" #: ../src/common/outbound.c:3867 msgid "ALLCHANL , sends a command to all channels on the current server" msgstr "" #: ../src/common/outbound.c:3869 msgid "ALLSERV , sends a command to all servers you're in" msgstr "ALLSERV , envía un comando a todos os servidores aos que está conectado" #: ../src/common/outbound.c:3870 msgid "AWAY [], sets you away (use /BACK to unset)" msgstr "" #: ../src/common/outbound.c:3871 msgid "BACK, sets you back (not away)" msgstr "" #: ../src/common/outbound.c:3873 msgid "" "BAN [], bans everyone matching the mask from the current " "channel. If they are already on the channel this doesn't kick them (needs " "chanop)" msgstr "BAN [], veta a todos aqueles que concorden coa máscara da canle actual. Se xa están na canle isto non os expulsa (é necesario ser operador da canle)" #: ../src/common/outbound.c:3874 msgid "CHANOPT [-quiet] []" msgstr "" #: ../src/common/outbound.c:3875 msgid "" "CHARSET [], get or set the encoding used for the current " "connection" msgstr "" #: ../src/common/outbound.c:3876 msgid "" "CLEAR [ALL|HISTORY|[-]], Clears the current text window or command " "history" msgstr "" #: ../src/common/outbound.c:3877 msgid "" "CLOSE [-m], Closes the current tab, closing the window if this is the only " "open tab, or with the \"-m\" flag, closes all queries." msgstr "" #: ../src/common/outbound.c:3880 msgid "COUNTRY [-s] , finds a country code, eg: au = australia" msgstr "COUNTRY [-s] , busca o código de país, ex: au = australia" #: ../src/common/outbound.c:3882 msgid "" "CTCP , send the CTCP message to nick, common messages are " "VERSION and USERINFO" msgstr "CTCP , envía a mensaxe CTCP ao alcume, as mensaxes comúns son VERSION e USERINFO" #: ../src/common/outbound.c:3884 msgid "" "CYCLE [], parts the current or given channel and immediately " "rejoins" msgstr "CYCLE [], márchase da canle actual e inmediatamente volve a entrar" #: ../src/common/outbound.c:3886 msgid "" "\n" "DCC GET - accept an offered file\n" "DCC SEND [-maxcps=#] [file] - send a file to someone\n" "DCC PSEND [-maxcps=#] [file] - send a file using passive mode\n" "DCC LIST - show DCC list\n" "DCC CHAT - offer DCC CHAT to someone\n" "DCC PCHAT - offer DCC CHAT using passive mode\n" "DCC CLOSE example:\n" " /dcc close send johnsmith file.tar.gz" msgstr "\nDCC GET - acepta un ficheiro ofrecido\nDCC SEND [-maxcps=#] [ficheiro] - envía un ficheiro a alguén\nDCC PSEND [-maxcps=#] [ficheiro] - envía un ficheiro a alguén usando o modo pasivo\nDCC LIST - amosa a lista DCC\nDCC CHAT - ofrece o DCC CHAT a alguén\nDCC PCHAT - ofrece o DCC CHAT usando modo pasivo\nDCC CLOSE exemplo:\n /dcc close send xoándapena ficheiro.tar.gz" #: ../src/common/outbound.c:3898 msgid "" "DEHOP , removes chanhalf-op status from the nick on the current " "channel (needs chanop)" msgstr "DEHOP , elimina o estado de semi-operador da canle ao alcume na canle actual (necesita ser operador da canle)" #: ../src/common/outbound.c:3900 msgid "DELBUTTON , deletes a button from under the user-list" msgstr "DELBUTTON , borra un botón de debaixo da lista de usuarios" #: ../src/common/outbound.c:3902 msgid "" "DEOP , removes chanop status from the nick on the current channel " "(needs chanop)" msgstr "DEOP , quita o estado de operador da canle ao alcume na canle actual (necesita ser operador da canle)" #: ../src/common/outbound.c:3904 msgid "" "DEVOICE , removes voice status from the nick on the current channel " "(needs chanop)" msgstr "DEVOICE , quita o estado de voz do alcume na canle actual (necesita ser operador da canle)" #: ../src/common/outbound.c:3905 msgid "DISCON, Disconnects from server" msgstr "DISCON, Desconéctase do servidor" #: ../src/common/outbound.c:3906 msgid "DNS , Resolves an IP or hostname" msgstr "" #: ../src/common/outbound.c:3907 msgid "ECHO , Prints text locally" msgstr "ECHO , Imprime texto localmente" #: ../src/common/outbound.c:3910 msgid "" "EXEC [-o] , runs the command. If -o flag is used then output is " "sent to current channel, else is printed to current text box" msgstr "EXEC [-o] , executa o comando. Se se usa a bandeira -o entón a saída envíase á canle actual, se non, imprímese na caixa de texto actual" #: ../src/common/outbound.c:3912 msgid "EXECCONT, sends the process SIGCONT" msgstr "EXECCONT, envía o proceso SIGCONT" #: ../src/common/outbound.c:3915 msgid "" "EXECKILL [-9], kills a running exec in the current session. If -9 is given " "the process is SIGKILL'ed" msgstr "EXECKILL [-9], mata un executable correndo na sesión actual. Se se indica -9 o proceso é matado pola forza" #: ../src/common/outbound.c:3917 msgid "EXECSTOP, sends the process SIGSTOP" msgstr "EXECSTOP, envía ao proceso o sinal de deterse" #: ../src/common/outbound.c:3918 msgid "EXECWRITE, sends data to the processes stdin" msgstr "EXECWRITE, envía os datos á entrada estándar do proceso" #: ../src/common/outbound.c:3922 msgid "EXPORTCONF, exports HexChat settings" msgstr "" #: ../src/common/outbound.c:3925 msgid "FLUSHQ, flushes the current server's send queue" msgstr "FLUSHQ, borra a cola de envío actual do servidor" #: ../src/common/outbound.c:3927 msgid "GATE [], proxies through a host, port defaults to 23" msgstr "GATE [], utiliza un proxy a través dun equipo, o porto por defecto é o 23" #: ../src/common/outbound.c:3932 msgid "GHOST [password], Kills a ghosted nickname" msgstr "" #: ../src/common/outbound.c:3937 msgid "HOP , gives chanhalf-op status to the nick (needs chanop)" msgstr "HOP , da o estado de semi-operador ao alcume (necesita ser operador da canle)" #: ../src/common/outbound.c:3938 msgid "ID , identifies yourself to nickserv" msgstr "ID , identifícate no servidor" #: ../src/common/outbound.c:3940 msgid "" "IGNORE \n" " mask - host mask to ignore, eg: *!*@*.aol.com\n" " types - types of data to ignore, one or all of:\n" " PRIV, CHAN, NOTI, CTCP, DCC, INVI, ALL\n" " options - NOSAVE, QUIET" msgstr "IGNORE \n máscara - máscara de equipos a ignorar, ex: *!*@*.aol.com\n tipos - tipos de datos a ignorar, un ou todos:\n PRIV, CHAN, NOTI, CTCP, DCC, INVI, ALL\n opcións - NOSAVE, QUIET" #: ../src/common/outbound.c:3947 msgid "" "INVITE [], invites someone to a channel, by default the " "current channel (needs chanop)" msgstr "INVITE [], invita a alguén a unha canle, por omisión a canle actual (necesita ser operador da canle)" #: ../src/common/outbound.c:3948 msgid "JOIN , joins the channel" msgstr "JOIN , entra á canle" #: ../src/common/outbound.c:3950 msgid "" "KICK [reason], kicks the nick from the current channel (needs chanop)" msgstr "" #: ../src/common/outbound.c:3952 msgid "" "KICKBAN [reason], bans then kicks the nick from the current channel " "(needs chanop)" msgstr "" #: ../src/common/outbound.c:3955 msgid "LAGCHECK, forces a new lag check" msgstr "LAGCHECK, forza unha nova comprobación de retardo" #: ../src/common/outbound.c:3957 msgid "" "LASTLOG [-h] [-m] [-r] [--] , searches for a string in the buffer\n" " Use -h to highlight the found string(s)\n" " Use -m to match case\n" " Use -r when string is a Regular Expression\n" " Use -- (double hyphen) to end options when searching for, say, the string '-r'" msgstr "" #: ../src/common/outbound.c:3963 msgid "LOAD [-e] , loads a plugin or script" msgstr "LOAD [-e] , carga un complemento ou script" #: ../src/common/outbound.c:3966 msgid "" "MDEHOP, Mass deop's all chanhalf-ops in the current channel (needs chanop)" msgstr "MDEHOP, Quita masivamente o estado de semi-operador na canle actual (necesita ser operador da canle)" #: ../src/common/outbound.c:3968 msgid "MDEOP, Mass deop's all chanops in the current channel (needs chanop)" msgstr "MDEOP, Quita masivamente o estado de operador na canle actual (necesita ser operador da canle)" #: ../src/common/outbound.c:3970 msgid "" "ME , sends the action to the current channel (actions are written in" " the 3rd person, like /me jumps)" msgstr "ME , envía a acción á canle actual (as accións están escritas en terceira persoa, como /me jumps)" #: ../src/common/outbound.c:3974 msgid "" "MKICK, Mass kicks everyone except you in the current channel (needs chanop)" msgstr "MKICK, Expulsa masivamente a todos excepto a vostede na canle actual (necesita ser operador da canle)" #: ../src/common/outbound.c:3977 msgid "MOP, Mass op's all users in the current channel (needs chanop)" msgstr "MOP, Otorga masivamente o estado de operador da canle actual (necesita ser operador da canle)" #: ../src/common/outbound.c:3978 msgid "" "MSG , sends a private message, message \".\" to send to last" " nick or prefix with \"=\" for dcc chat" msgstr "" #: ../src/common/outbound.c:3981 msgid "NAMES [channel], Lists the nicks on the channel" msgstr "" #: ../src/common/outbound.c:3983 msgid "NCTCP , Sends a CTCP notice" msgstr "NCTCP , Envía unha noticia CTCP" #: ../src/common/outbound.c:3984 msgid "NEWSERVER [-noconnect] []" msgstr "NEWSERVER [-noconnect] []" #: ../src/common/outbound.c:3985 msgid "NICK , sets your nick" msgstr "NICK , establece seu alcume" #: ../src/common/outbound.c:3988 msgid "NOTICE , sends a notice" msgstr "" #: ../src/common/outbound.c:3990 msgid "" "NOTIFY [-n network1[,network2,...]] [], displays your notify list or " "adds someone to it" msgstr "NOTIFY [-n network1[,network2,...]] [], lista súa lista de notificacións ou agrega a alguén a ela" #: ../src/common/outbound.c:3992 msgid "OP , gives chanop status to the nick (needs chanop)" msgstr "OP , otorga o estado de operador da canle ao alcume (necesita ser operador da canle)" #: ../src/common/outbound.c:3994 msgid "" "PART [] [], leaves the channel, by default the current one" msgstr "PART [] [], abandona a canle, por defecto a canle actual" #: ../src/common/outbound.c:3996 msgid "PING , CTCP pings nick or channel" msgstr "PING , Envía pings CTCP ao alcume ou canle" #: ../src/common/outbound.c:3998 msgid "" "QUERY [-nofocus] [message], opens up a new privmsg window to someone " "and optionally sends a message" msgstr "" #: ../src/common/outbound.c:4000 msgid "" "QUIET [], quiet everyone matching the mask in the current " "channel if supported by the server." msgstr "" #: ../src/common/outbound.c:4002 msgid "QUIT [], disconnects from the current server" msgstr "QUIT [], desconéctase do servidor actual" #: ../src/common/outbound.c:4004 msgid "QUOTE , sends the text in raw form to the server" msgstr "QUOTE , envía o texto en formato chan hacia o servidor" #: ../src/common/outbound.c:4007 msgid "" "RECONNECT [-ssl] [] [] [], Can be called just as " "/RECONNECT to reconnect to the current server or with /RECONNECT ALL to " "reconnect to all the open servers" msgstr "RECONNECT [-ssl] [] [] [], Pode ser chamado só como /RECONNECT para reconectarse ao servidor actual ou con /RECONNECT ALL para reconectarse a todos os servidores abertos" #: ../src/common/outbound.c:4010 msgid "" "RECONNECT [] [] [], Can be called just as /RECONNECT " "to reconnect to the current server or with /RECONNECT ALL to reconnect to " "all the open servers" msgstr "RECONNECT [] [] [], Pode ser chamado só como /RECONNECT para reconectarse ao servidor actual ou con /RECONNECT ALL para reconectarse a todos os servidores abertos" #: ../src/common/outbound.c:4012 msgid "" "RECV , send raw data to HexChat, as if it was received from the IRC " "server" msgstr "" #: ../src/common/outbound.c:4013 msgid "RELOAD , reloads a plugin or script" msgstr "" #: ../src/common/outbound.c:4015 msgid "SAY , sends the text to the object in the current window" msgstr "SAY , envía texto hacia un obxecto da ventá actual" #: ../src/common/outbound.c:4016 msgid "SEND []" msgstr "SEND []" #: ../src/common/outbound.c:4019 msgid "SERVCHAN [-ssl] , connects and joins a channel" msgstr "SERVCHAN [-ssl] , Conéctao e entra nunha canle" #: ../src/common/outbound.c:4022 msgid "SERVCHAN , connects and joins a channel" msgstr "SERVCHAN , Conéctao e entra nunha canle" #: ../src/common/outbound.c:4026 msgid "" "SERVER [-ssl] [] [], connects to a server, the " "default port is 6667 for normal connections, and 6697 for ssl connections" msgstr "" #: ../src/common/outbound.c:4029 msgid "" "SERVER [] [], connects to a server, the default port " "is 6667" msgstr "SERVER [] [], conéctao ao servidor, por defecto o porto é 6667" #: ../src/common/outbound.c:4031 msgid "SET [-e] [-off|-on] [-quiet] []" msgstr "" #: ../src/common/outbound.c:4032 msgid "SETCURSOR [-|+], reposition the cursor in the inputbox" msgstr "" #: ../src/common/outbound.c:4033 msgid "SETTAB , change a tab's name, tab_trunc limit still applies" msgstr "" #: ../src/common/outbound.c:4034 msgid "SETTEXT , replace the text in the input box" msgstr "" #: ../src/common/outbound.c:4037 msgid "" "TOPIC [], sets the topic if one is given, else shows the current " "topic" msgstr "TOPIC [], estable o tópico se se provee un, se non mostra o tópico actual " #: ../src/common/outbound.c:4039 msgid "" "\n" "TRAY -f [] Blink tray between two icons.\n" "TRAY -f Set tray to a fixed icon.\n" "TRAY -i Blink tray with an internal icon.\n" "TRAY -t Set the tray tooltip.\n" "TRAY -b <text> Set the tray balloon." msgstr "" #: ../src/common/outbound.c:4046 msgid "UNBAN <mask> [<mask>...], unbans the specified masks." msgstr "UNBAN <máscara> [<máscara>...], reincorpora as máscaras especificadas." #: ../src/common/outbound.c:4047 msgid "UNIGNORE <mask> [QUIET]" msgstr "UNIGNORE <máscara> [QUIET]" #: ../src/common/outbound.c:4048 msgid "UNLOAD <name>, unloads a plugin or script" msgstr "UNLOAD <nome>, desactiva un complemento ou script" #: ../src/common/outbound.c:4050 msgid "" "UNQUIET <mask> [<mask>...], unquiets the specified masks if supported by the" " server." msgstr "" #: ../src/common/outbound.c:4051 msgid "URL <url>, opens a URL in your browser" msgstr "URL <url>, abre unha URL no seu navegador" #: ../src/common/outbound.c:4053 msgid "" "USELECT [-a] [-s] <nick1> <nick2> etc, highlights nick(s) in channel " "userlist" msgstr "USELECT [-a] [-s] <alcume1> <alcume2> etc, resalta o(s) alcume(s) na lista de usuarios da canle" #: ../src/common/outbound.c:4056 msgid "VOICE <nick>, gives voice status to someone (needs chanop)" msgstr "VOICE <alcume>, otorga o estado de voz a alguén (necesita ser operador da canle)" #: ../src/common/outbound.c:4058 msgid "WALLCHAN <message>, writes the message to all channels" msgstr "WALLCHAN <mensaxe>, escribe a mensaxe a todos as canles" #: ../src/common/outbound.c:4060 msgid "" "WALLCHOP <message>, sends the message to all chanops on the current channel" msgstr "WALLCHOP <mensaxe>, envía a mensaxe a todos os operadores da canle na canle actual" #: ../src/common/outbound.c:4093 #, c-format msgid "User Command for: %s\n" msgstr "" #: ../src/common/outbound.c:4120 #, c-format msgid "Usage: %s\n" msgstr "Uso: %s\n" #: ../src/common/outbound.c:4125 msgid "" "\n" "No help available on that command.\n" msgstr "\nNon hai axuda dispoñible para ese comando.\n" #: ../src/common/outbound.c:4131 msgid "No such command.\n" msgstr "Non existe ese comando.\n" #: ../src/common/outbound.c:4464 msgid "Bad arguments for user command.\n" msgstr "Argumentos erróneos para o comando de usuario.\n" #: ../src/common/outbound.c:4670 msgid "Too many recursive usercommands, aborting." msgstr "Demasiados comandos recursivos de usuario, abortando." #: ../src/common/outbound.c:4759 #, c-format msgid "Unknown Command %s. Try /help\n" msgstr "" #: ../src/common/plugin.c:401 msgid "No hexchat_plugin_init symbol; is this really a HexChat plugin?" msgstr "" #: ../src/common/plugin-identd.c:175 #, c-format msgid "*\tServicing ident request from %s as %s" msgstr "" #: ../src/common/plugin-identd.c:238 #, c-format msgid "*\tError starting identd server: %s" msgstr "" #: ../src/common/plugin-identd.c:262 msgid "IDENTD <port> <username>" msgstr "" #: ../src/common/plugin-timer.c:75 #, c-format msgid "Timer %d deleted.\n" msgstr "" #: ../src/common/plugin-timer.c:81 msgid "No such ref number found.\n" msgstr "" #: ../src/common/plugin-timer.c:145 msgid "No timers installed.\n" msgstr "" #. 00000 00000000 0000000 abc #: ../src/common/plugin-timer.c:150 msgid " Ref# Seconds Repeat Command \n" msgstr "" #: ../src/common/plugin-timer.c:155 #, c-format msgid "%5d %8.1f %7d %s\n" msgstr "" #: ../src/common/server.c:511 msgid "Are you sure this is a SSL capable server and port?\n" msgstr "Está seguro de que é un servidor e porto SSL?\n" #: ../src/common/server.c:870 #, c-format msgid "" "Cannot resolve hostname %s\n" "Check your IP Settings!\n" msgstr "Non se pode resolver o nome do equipo %s\nComprobe súa configuración de IP!\n" #: ../src/common/server.c:875 msgid "Proxy traversal failed.\n" msgstr "Fallou o proxy traversal.\n" #: ../src/common/servlist.c:547 #, c-format msgid "Cycling to next server in %s...\n" msgstr "Ciclando ao seguinte servidor en %s...\n" #: ../src/common/servlist.c:1183 #, c-format msgid "" "Warning: \"%s\" character set is unknown. No conversion will be applied for " "network %s." msgstr "Aviso: O conxunto de caracteres \"%s\" é descoñecido. Non se aplicará conversión para a rede %s." #: ../src/common/textevents.h:6 msgid "%C18*%O$t%C18$1%O added to notify list." msgstr "" #: ../src/common/textevents.h:9 msgid "%C22*%O$t%C22$1%O: %C18$2%O on %C24$4%O by %C26$3%O" msgstr "" #: ../src/common/textevents.h:12 msgid "%C22*%O$tCannot join %C22$1 %O(%C20You are banned%O)." msgstr "" #: ../src/common/textevents.h:18 msgid "%C29*%O$tCapabilities acknowledged: %C29$2%O" msgstr "" #: ../src/common/textevents.h:21 msgid "%C29*%O$tCapabilities removed: %C29$2%O" msgstr "" #: ../src/common/textevents.h:24 msgid "%C23*%O$tCapabilities supported: %C29$2%O" msgstr "" #: ../src/common/textevents.h:27 msgid "%C23*%O$tCapabilities requested: %C29$1%O" msgstr "" #: ../src/common/textevents.h:30 msgid "%C24*%O$t%C28$1%O is now known as %C18$2%O" msgstr "" #: ../src/common/textevents.h:39 msgid "%C22*%O$t%C26$1%O sets ban on %C18$2%O" msgstr "" #: ../src/common/textevents.h:42 msgid "%C22*%O$tChannel %C22$1%O created on %C24$2%O" msgstr "" #: ../src/common/textevents.h:45 msgid "%C22*%O$t%C26$1%O removes channel half-operator status from %C18$2%O" msgstr "" #: ../src/common/textevents.h:48 msgid "%C22*%O$t%C26$1%O removes channel operator status from %C18$2%O" msgstr "" #: ../src/common/textevents.h:51 msgid "%C22*%O$t%C26$1%O removes voice from %C18$2%O" msgstr "" #: ../src/common/textevents.h:54 msgid "%C22*%O$t%C26$1%C sets exempt on %C18$2%O" msgstr "" #: ../src/common/textevents.h:57 msgid "%C22*%O$t%C26$1%O gives channel half-operator status to %C18$2%O" msgstr "" #: ../src/common/textevents.h:60 msgid "%C22*%O$t%C26$1%C sets invite exempt on %C18$2%O" msgstr "" #: ../src/common/textevents.h:63 msgid "%UChannel Users Topic" msgstr "%UCanle Usuarios Tópico" #: ../src/common/textevents.h:69 msgid "%C22*%O$t%C26$1%O sets mode %C24$2$3%O on %C22$4%O" msgstr "" #: ../src/common/textevents.h:72 msgid "%C22*%O$tChannel %C22$1%O modes: %C24$2" msgstr "" #: ../src/common/textevents.h:81 msgid "%C22*%O$t%C26$1%O gives channel operator status to %C18$2%O" msgstr "" #: ../src/common/textevents.h:84 msgid "%C22*%O$t%C26$1%O sets quiet on %C18$2%O" msgstr "" #: ../src/common/textevents.h:87 msgid "%C22*%O$t%C26$1%O removes exempt on %C18$2%O" msgstr "" #: ../src/common/textevents.h:90 msgid "%C22*%O$t%C26$1%O removes invite exempt on %C18$2%O" msgstr "" #: ../src/common/textevents.h:93 msgid "%C22*%O$t%C26$1%O removes channel keyword" msgstr "" #: ../src/common/textevents.h:96 msgid "%C22*%O$t%C26$1%O removes user limit" msgstr "" #: ../src/common/textevents.h:99 msgid "%C22*%O$t%C26$1%O sets channel keyword to %C24$2%O" msgstr "" #: ../src/common/textevents.h:102 msgid "%C22*%O$t%C26$1%O sets channel limit to %C24$2%O" msgstr "" #: ../src/common/textevents.h:105 msgid "%C22*%O$t%C26$1%O removes ban on %C18$2%O" msgstr "" #: ../src/common/textevents.h:108 msgid "%C22*%O$t%C26$1%O removes quiet on %C18$2%O" msgstr "" #: ../src/common/textevents.h:111 msgid "%C22*%O$tChannel %C22$1%O url: %C24$2" msgstr "" #: ../src/common/textevents.h:114 msgid "%C22*%O$t%C26$1%O gives voice to %C18$2%O" msgstr "" #: ../src/common/textevents.h:117 msgid "%C23*%O$tConnected. Now logging in." msgstr "" #: ../src/common/textevents.h:120 msgid "%C23*%O$tConnecting to %C29$1%C (%C23$2:$3%O)" msgstr "" #: ../src/common/textevents.h:123 msgid "%C20*%O$tConnection failed (%C20$1%O)" msgstr "" #: ../src/common/textevents.h:126 msgid "%C24*%O$tReceived a CTCP %C24$1%C from %C18$2%O" msgstr "" #: ../src/common/textevents.h:129 msgid "%C24*%C$tReceived a CTCP %C24$1%C from %C18$2%C (to %C22$3%C)%O" msgstr "" #: ../src/common/textevents.h:135 msgid "%C24*%O$tReceived a CTCP Sound %C24$1%C from %C18$2%O" msgstr "" #: ../src/common/textevents.h:138 msgid "%C24*%O$tReceived a CTCP Sound %C24$1%C from %C18$2%C (to %C22$3%O)" msgstr "" #: ../src/common/textevents.h:141 msgid "%C23*%O$tDCC CHAT to %C18$1%O aborted." msgstr "" #: ../src/common/textevents.h:144 msgid "" "%C24*%O$tDCC CHAT connection established to %C18$1%C %C30[%C24$2%C30]%O" msgstr "" #: ../src/common/textevents.h:147 msgid "%C20*%O$tDCC CHAT to %C18$1%O lost (%C20$4%O)" msgstr "" #: ../src/common/textevents.h:150 msgid "%C24*%O$tReceived a DCC CHAT offer from %C18$1%O" msgstr "" #: ../src/common/textevents.h:153 msgid "%C24*%O$tOffering DCC CHAT to %C18$1%O" msgstr "" #: ../src/common/textevents.h:156 msgid "%C24*%O$tAlready offering CHAT to %C18$1%O" msgstr "" #: ../src/common/textevents.h:159 msgid "%C20*%O$tDCC $1 connect attempt to %C18$2%O failed (%C20$3%O)" msgstr "" #: ../src/common/textevents.h:162 msgid "%C23*%O$tReceived '%C23$1%C' from %C18$2%O" msgstr "" #: ../src/common/textevents.h:165 #, c-format msgid "%C16,17 Type To/From Status Size Pos File " msgstr "" #: ../src/common/textevents.h:168 msgid "" "%C20*%O$tReceived a malformed DCC request from " "%C18$1%O.%010%C23*%O$tContents of packet: %C23$2%O" msgstr "" #: ../src/common/textevents.h:171 msgid "%C24*%O$tOffering '%C24$1%O' to %C18$2%O" msgstr "" #: ../src/common/textevents.h:174 msgid "%C23*%O$tNo such DCC offer." msgstr "" #: ../src/common/textevents.h:177 msgid "%C23*%O$tDCC RECV '%C23$2%O' to %C18$1%O aborted." msgstr "" #: ../src/common/textevents.h:180 msgid "" "%C24*%O$tDCC RECV '%C23$1%O' from %C18$3%O complete %C30[%C24$4%O cps%C30]%O" msgstr "" #: ../src/common/textevents.h:183 msgid "" "%C24*%O$tDCC RECV connection established to<style>pre { line-height: 125%; } td.linenos .normal { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; } span.linenos { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; } td.linenos .special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; } span.linenos.special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; } .highlight .hll { background-color: #ffffcc } .highlight .c { color: #888888 } /* Comment */ .highlight .err { color: #a61717; background-color: #e3d2d2 } /* Error */ .highlight .k { color: #008800; font-weight: bold } /* Keyword */ .highlight .ch { color: #888888 } /* Comment.Hashbang */ .highlight .cm { color: #888888 } /* Comment.Multiline */ .highlight .cp { color: #cc0000; font-weight: bold } /* Comment.Preproc */ .highlight .cpf { color: #888888 } /* Comment.PreprocFile */ .highlight .c1 { color: #888888 } /* Comment.Single */ .highlight .cs { color: #cc0000; font-weight: bold; background-color: #fff0f0 } /* Comment.Special */ .highlight .gd { color: #000000; background-color: #ffdddd } /* Generic.Deleted */ .highlight .ge { font-style: italic } /* Generic.Emph */ .highlight .ges { font-weight: bold; font-style: italic } /* Generic.EmphStrong */ .highlight .gr { color: #aa0000 } /* Generic.Error */ .highlight .gh { color: #333333 } /* Generic.Heading */ .highlight .gi { color: #000000; background-color: #ddffdd } /* Generic.Inserted */ .highlight .go { color: #888888 } /* Generic.Output */ .highlight .gp { color: #555555 } /* Generic.Prompt */ .highlight .gs { font-weight: bold } /* Generic.Strong */ .highlight .gu { color: #666666 } /* Generic.Subheading */ .highlight .gt { color: #aa0000 } /* Generic.Traceback */ .highlight .kc { color: #008800; font-weight: bold } /* Keyword.Constant */ .highlight .kd { color: #008800; font-weight: bold } /* Keyword.Declaration */ .highlight .kn { color: #008800; font-weight: bold } /* Keyword.Namespace */ .highlight .kp { color: #008800 } /* Keyword.Pseudo */ .highlight .kr { color: #008800; font-weight: bold } /* Keyword.Reserved */ .highlight .kt { color: #888888; font-weight: bold } /* Keyword.Type */ .highlight .m { color: #0000DD; font-weight: bold } /* Literal.Number */ .highlight .s { color: #dd2200; background-color: #fff0f0 } /* Literal.String */ .highlight .na { color: #336699 } /* Name.Attribute */ .highlight .nb { color: #003388 } /* Name.Builtin */ .highlight .nc { color: #bb0066; font-weight: bold } /* Name.Class */ .highlight .no { color: #003366; font-weight: bold } /* Name.Constant */ .highlight .nd { color: #555555 } /* Name.Decorator */ .highlight .ne { color: #bb0066; font-weight: bold } /* Name.Exception */ .highlight .nf { color: #0066bb; font-weight: bold } /* Name.Function */ .highlight .nl { color: #336699; font-style: italic } /* Name.Label */ .highlight .nn { color: #bb0066; font-weight: bold } /* Name.Namespace */ .highlight .py { color: #336699; font-weight: bold } /* Name.Property */ .highlight .nt { color: #bb0066; font-weight: bold } /* Name.Tag */ .highlight .nv { color: #336699 } /* Name.Variable */ .highlight .ow { color: #008800 } /* Operator.Word */ .highlight .w { color: #bbbbbb } /* Text.Whitespace */ .highlight .mb { color: #0000DD; font-weight: bold } /* Literal.Number.Bin */ .highlight .mf { color: #0000DD; font-weight: bold } /* Literal.Number.Float */ .highlight .mh { color: #0000DD; font-weight: bold } /* Literal.Number.Hex */ .highlight .mi { color: #0000DD; font-weight: bold } /* Literal.Number.Integer */ .highlight .mo { color: #0000DD; font-weight: bold } /* Literal.Number.Oct */ .highlight .sa { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Affix */ .highlight .sb { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Backtick */ .highlight .sc { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Char */ .highlight .dl { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Delimiter */ .highlight .sd { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Doc */ .highlight .s2 { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Double */ .highlight .se { color: #0044dd; background-color: #fff0f0 } /* Literal.String.Escape */ .highlight .sh { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Heredoc */ .highlight .si { color: #3333bb; background-color: #fff0f0 } /* Literal.String.Interpol */ .highlight .sx { color: #22bb22; background-color: #f0fff0 } /* Literal.String.Other */ .highlight .sr { color: #008800; background-color: #fff0ff } /* Literal.String.Regex */ .highlight .s1 { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Single */ .highlight .ss { color: #aa6600; background-color: #fff0f0 } /* Literal.String.Symbol */ .highlight .bp { color: #003388 } /* Name.Builtin.Pseudo */ .highlight .fm { color: #0066bb; font-weight: bold } /* Name.Function.Magic */ .highlight .vc { color: #336699 } /* Name.Variable.Class */ .highlight .vg { color: #dd7700 } /* Name.Variable.Global */ .highlight .vi { color: #3333bb } /* Name.Variable.Instance */ .highlight .vm { color: #336699 } /* Name.Variable.Magic */ .highlight .il { color: #0000DD; font-weight: bold } /* Literal.Number.Integer.Long */</style><div class="highlight"><pre><span></span><span class="cm">/* X-Chat</span> <span class="cm"> * Copyright (C) 1998 Peter Zelezny.</span> <span class="cm"> *</span> <span class="cm"> * This program is free software; you can redistribute it and/or modify</span> <span class="cm"> * it under the terms of the GNU General Public License as published by</span> <span class="cm"> * the Free Software Foundation; either version 2 of the License, or</span> <span class="cm"> * (at your option) any later version.</span> <span class="cm"> *</span> <span class="cm"> * This program is distributed in the hope that it will be useful,</span> <span class="cm"> * but WITHOUT ANY WARRANTY; without even the implied warranty of</span> <span class="cm"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span> <span class="cm"> * GNU General Public License for more details.</span> <span class="cm"> *</span> <span class="cm"> * You should have received a copy of the GNU General Public License</span> <span class="cm"> * along with this program; if not, write to the Free Software</span> <span class="cm"> * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA</span> <span class="cm"> */</span> <span class="cp">#include</span><span class="w"> </span><span class="cpf">"config.h"</span> <span class="cp">#include</span><span class="w"> </span><span class="cpf"><stdio.h></span> <span class="cp">#include</span><span class="w"> </span><span class="cpf"><stdlib.h></span> <span class="cp">#include</span><span class="w"> </span><span class="cpf"><string.h></span> <span class="cp">#ifdef HAVE_STRINGS_H</span> <span class="cp">#include</span><span class="w"> </span><span class="cpf"><strings.h></span> <span class="cp">#endif</span> <span class="cp">#ifdef WIN32</span> <span class="cp">#include</span><span class="w"> </span><span class="cpf"><io.h></span> <span class="cp">#define STDIN_FILENO 0</span> <span class="cp">#define STDOUT_FILENO 1</span> <span class="cp">#else</span> <span class="cp">#include</span><span class="w"> </span><span class="cpf"><unistd.h></span> <span class="cp">#include</span><span class="w"> </span><span class="cpf"><sys/time.h></span> <span class="cp">#endif</span> <span class="cp">#include</span><span class="w"> </span><span class="cpf"><sys/types.h></span> <span class="cp">#include</span><span class="w"> </span><span class="cpf"><ctype.h></span> <span class="cp">#include</span><span class="w"> </span><span class="cpf"><glib-object.h></span> <span class="cp">#include</span><span class="w"> </span><span class="cpf">"../common/hexchat.h"</span> <span class="cp">#include</span><span class="w"> </span><span class="cpf">"../common/hexchatc.h"</span> <span class="cp">#include</span><span class="w"> </span><span class="cpf">"../common/cfgfiles.h"</span> <span class="cp">#include</span><span class="w"> </span><span class="cpf">"../common/outbound.h"</span> <span class="cp">#include</span><span class="w"> </span><span class="cpf">"../common/util.h"</span> <span class="cp">#include</span><span class="w"> </span><span class="cpf">"../common/fe.h"</span> <span class="cp">#include</span><span class="w"> </span><span class="cpf">"fe-text.h"</span> <span class="k">static</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">done</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">FALSE</span><span class="p">;</span><span class="w"> </span><span class="cm">/* finished ? */</span> <span class="k">static</span><span class="w"> </span><span class="kt">void</span> <span class="nf">send_command</span><span class="w"> </span><span class="p">(</span><span class="kt">char</span><span class="w"> </span><span class="o">*</span><span class="n">cmd</span><span class="p">)</span> <span class="p">{</span> <span class="w"> </span><span class="n">handle_multiline</span><span class="w"> </span><span class="p">(</span><span class="n">current_tab</span><span class="p">,</span><span class="w"> </span><span class="n">cmd</span><span class="p">,</span><span class="w"> </span><span class="n">TRUE</span><span class="p">,</span><span class="w"> </span><span class="n">FALSE</span><span class="p">);</span> <span class="p">}</span> <span class="k">static</span><span class="w"> </span><span class="n">gboolean</span> <span class="nf">handle_line</span><span class="w"> </span><span class="p">(</span><span class="n">GIOChannel</span><span class="w"> </span><span class="o">*</span><span class="n">channel</span><span class="p">,</span><span class="w"> </span><span class="n">GIOCondition</span><span class="w"> </span><span class="n">cond</span><span class="p">,</span><span class="w"> </span><span class="n">gpointer</span><span class="w"> </span><span class="n">data</span><span class="p">)</span> <span class="p">{</span> <span class="w"> </span><span class="n">gchar</span><span class="w"> </span><span class="o">*</span><span class="n">str_return</span><span class="p">;</span> <span class="w"> </span><span class="n">gsize</span><span class="w"> </span><span class="n">length</span><span class="p">,</span><span class="w"> </span><span class="n">terminator_pos</span><span class="p">;</span> <span class="w"> </span><span class="n">GError</span><span class="w"> </span><span class="o">*</span><span class="n">error</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nb">NULL</span><span class="p">;</span> <span class="w"> </span><span class="n">GIOStatus</span><span class="w"> </span><span class="n">result</span><span class="p">;</span> <span class="w"> </span><span class="n">result</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">g_io_channel_read_line</span><span class="p">(</span><span class="n">channel</span><span class="p">,</span><span class="w"> </span><span class="o">&</span><span class="n">str_return</span><span class="p">,</span><span class="w"> </span><span class="o">&</span><span class="n">length</span><span class="p">,</span><span class="w"> </span><span class="o">&</span><span class="n">terminator_pos</span><span class="p">,</span><span class="w"> </span><span class="o">&</span><span class="n">error</span><span class="p">);</span> <span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">result</span><span class="w"> </span><span class="o">==</span><span class="w"> </span><span class="n">G_IO_STATUS_ERROR</span><span class="w"> </span><span class="o">||</span><span class="w"> </span><span class="n">result</span><span class="w"> </span><span class="o">==</span><span class="w"> </span><span class="n">G_IO_STATUS_EOF</span><span class="p">)</span><span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">FALSE</span><span class="p">;</span> <span class="w"> </span><span class="p">}</span> <span class="w"> </span><span class="k">else</span><span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="n">send_command</span><span class="p">(</span><span class="n">str_return</span><span class="p">);</span> <span class="w"> </span><span class="n">g_free</span><span class="p">(</span><span class="n">str_return</span><span class="p">);</span> <span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">TRUE</span><span class="p">;</span> <span class="w"> </span><span class="p">}</span> <span class="p">}</span> <span class="k">static</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">done_intro</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span> <span class="kt">void</span> <span class="nf">fe_new_window</span><span class="w"> </span><span class="p">(</span><span class="k">struct</span><span class="w"> </span><span class="nc">session</span><span class="w"> </span><span class="o">*</span><span class="n">sess</span><span class="p">,</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">focus</span><span class="p">)</span> <span class="p">{</span> <span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="n">buf</span><span class="p">[</span><span class="mi">512</span><span class="p">];</span> <span class="w"> </span><span class="n">current_sess</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">sess</span><span class="p">;</span> <span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="o">!</span><span class="n">sess</span><span class="o">-></span><span class="n">server</span><span class="o">-></span><span class="n">front_session</span><span class="p">)</span> <span class="w"> </span><span class="n">sess</span><span class="o">-></span><span class="n">server</span><span class="o">-></span><span class="n">front_session</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">sess</span><span class="p">;</span> <span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="o">!</span><span class="n">sess</span><span class="o">-></span><span class="n">server</span><span class="o">-></span><span class="n">server_session</span><span class="p">)</span> <span class="w"> </span><span class="n">sess</span><span class="o">-></span><span class="n">server</span><span class="o">-></span><span class="n">server_session</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">sess</span><span class="p">;</span> <span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="o">!</span><span class="n">current_tab</span><span class="w"> </span><span class="o">||</span><span class="w"> </span><span class="n">focus</span><span class="p">)</span> <span class="w"> </span><span class="n">current_tab</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">sess</span><span class="p">;</span> <span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">done_intro</span><span class="p">)</span> <span class="w"> </span><span class="k">return</span><span class="p">;</span> <span class="w"> </span><span class="n">done_intro</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">1</span><span class="p">;</span> <span class="w"> </span><span class="n">g_snprintf</span><span class="w"> </span><span class="p">(</span><span class="n">buf</span><span class="p">,</span><span class="w"> </span><span class="k">sizeof</span><span class="w"> </span><span class="p">(</span><span class="n">buf</span><span class="p">),</span> <span class="w"> </span><span class="s">"</span><span class="se">\n</span><span class="s">"</span> <span class="w"> </span><span class="s">" </span><span class="se">\017</span><span class="s">HexChat-Text </span><span class="se">\003</span><span class="s">10"</span><span class="n">PACKAGE_VERSION</span><span class="s">"</span><span class="se">\n</span><span class="s">"</span> <span class="w"> </span><span class="s">" </span><span class="se">\017</span><span class="s">Running on </span><span class="se">\003</span><span class="s">10%s</span><span class="se">\n</span><span class="s">"</span><span class="p">,</span> <span class="w"> </span><span class="n">get_sys_str</span><span class="w"> </span><span class="p">(</span><span class="mi">1</span><span class="p">));</span> <span class="w"> </span><span class="n">fe_print_text</span><span class="w"> </span><span class="p">(</span><span class="n">sess</span><span class="p">,</span><span class="w"> </span><span class="n">buf</span><span class="p">,</span><span class="w"> </span><span class="mi">0</span><span class="p">,</span><span class="w"> </span><span class="n">FALSE</span><span class="p">);</span> <span class="w"> </span><span class="n">fe_print_text</span><span class="w"> </span><span class="p">(</span><span class="n">sess</span><span class="p">,</span><span class="w"> </span><span class="s">"</span><span class="se">\n\n</span><span class="s">Compiled in Features</span><span class="se">\003</span><span class="s">2:</span><span class="se">\017</span><span class="s"> "</span> <span class="cp">#ifdef USE_PLUGIN</span> <span class="w"> </span><span class="s">"Plugin "</span> <span class="cp">#endif</span> <span class="cp">#ifdef ENABLE_NLS</span> <span class="w"> </span><span class="s">"NLS "</span> <span class="cp">#endif</span> <span class="cp">#ifdef USE_OPENSSL</span> <span class="w"> </span><span class="s">"OpenSSL "</span> <span class="cp">#endif</span> <span class="w"> </span><span class="s">"</span><span class="se">\n\n</span><span class="s">"</span><span class="p">,</span><span class="w"> </span><span class="mi">0</span><span class="p">,</span><span class="w"> </span><span class="n">FALSE</span><span class="p">);</span> <span class="w"> </span><span class="n">fflush</span><span class="w"> </span><span class="p">(</span><span class="n">stdout</span><span class="p">);</span> <span class="p">}</span> <span class="k">static</span><span class="w"> </span><span class="kt">int</span> <span class="nf">get_stamp_str</span><span class="w"> </span><span class="p">(</span><span class="kt">time_t</span><span class="w"> </span><span class="n">tim</span><span class="p">,</span><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="o">*</span><span class="n">dest</span><span class="p">,</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">size</span><span class="p">)</span> <span class="p">{</span> <span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">strftime_validated</span><span class="w"> </span><span class="p">(</span><span class="n">dest</span><span class="p">,</span><span class="w"> </span><span class="n">size</span><span class="p">,</span><span class="w"> </span><span class="n">prefs</span><span class="p">.</span><span class="n">hex_stamp_text_format</span><span class="p">,</span><span class="w"> </span><span class="n">localtime</span><span class="w"> </span><span class="p">(</span><span class="o">&</span><span class="n">tim</span><span class="p">));</span> <span class="p">}</span> <span class="k">static</span><span class="w"> </span><span class="kt">int</span> <span class="nf">timecat</span><span class="w"> </span><span class="p">(</span><span class="kt">char</span><span class="w"> </span><span class="o">*</span><span class="n">buf</span><span class="p">,</span><span class="w"> </span><span class="kt">time_t</span><span class="w"> </span><span class="n">stamp</span><span class="p">)</span> <span class="p">{</span> <span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="n">stampbuf</span><span class="p">[</span><span class="mi">64</span><span class="p">];</span> <span class="w"> </span><span class="cm">/* set the stamp to the current time if not provided */</span> <span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="o">!</span><span class="n">stamp</span><span class="p">)</span> <span class="w"> </span><span class="n">stamp</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">time</span><span class="w"> </span><span class="p">(</span><span class="mi">0</span><span class="p">);</span> <span class="w"> </span><span class="n">get_stamp_str</span><span class="w"> </span><span class="p">(</span><span class="n">stamp</span><span class="p">,</span><span class="w"> </span><span class="n">stampbuf</span><span class="p">,</span><span class="w"> </span><span class="k">sizeof</span><span class="w"> </span><span class="p">(</span><span class="n">stampbuf</span><span class="p">));</span> <span class="w"> </span><span class="n">strcat</span><span class="w"> </span><span class="p">(</span><span class="n">buf</span><span class="p">,</span><span class="w"> </span><span class="n">stampbuf</span><span class="p">);</span> <span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">strlen</span><span class="w"> </span><span class="p">(</span><span class="n">stampbuf</span><span class="p">);</span> <span class="p">}</span> <span class="cm">/* Windows doesn't handle ANSI codes in cmd.exe, need to not display them */</span> <span class="cp">#ifndef WIN32</span> <span class="cm">/* 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 */</span> <span class="k">static</span><span class="w"> </span><span class="k">const</span><span class="w"> </span><span class="kt">short</span><span class="w"> </span><span class="n">colconv</span><span class="p">[]</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">{</span><span class="w"> </span><span class="mi">0</span><span class="p">,</span><span class="w"> </span><span class="mi">7</span><span class="p">,</span><span class="w"> </span><span class="mi">4</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="mi">3</span><span class="p">,</span><span class="w"> </span><span class="mi">5</span><span class="p">,</span><span class="w"> </span><span class="mi">11</span><span class="p">,</span><span class="w"> </span><span class="mi">13</span><span class="p">,</span><span class="w"> </span><span class="mi">12</span><span class="p">,</span><span class="w"> </span><span class="mi">6</span><span class="p">,</span><span class="w"> </span><span class="mi">16</span><span class="p">,</span><span class="w"> </span><span class="mi">14</span><span class="p">,</span><span class="w"> </span><span class="mi">15</span><span class="p">,</span><span class="w"> </span><span class="mi">10</span><span class="p">,</span><span class="w"> </span><span class="mi">7</span><span class="w"> </span><span class="p">};</span> <span class="kt">void</span> <span class="nf">fe_print_text</span><span class="w"> </span><span class="p">(</span><span class="k">struct</span><span class="w"> </span><span class="nc">session</span><span class="w"> </span><span class="o">*</span><span class="n">sess</span><span class="p">,</span><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="o">*</span><span class="n">text</span><span class="p">,</span><span class="w"> </span><span class="kt">time_t</span><span class="w"> </span><span class="n">stamp</span><span class="p">,</span> <span class="w"> </span><span class="n">gboolean</span><span class="w"> </span><span class="n">no_activity</span><span class="p">)</span> <span class="p">{</span> <span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">dotime</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">FALSE</span><span class="p">;</span> <span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="n">num</span><span class="p">[</span><span class="mi">8</span><span class="p">];</span> <span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">reverse</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">,</span><span class="w"> </span><span class="n">under</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">,</span><span class="w"> </span><span class="n">bold</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">,</span> <span class="w"> </span><span class="n">comma</span><span class="p">,</span><span class="w"> </span><span class="n">k</span><span class="p">,</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">,</span><span class="w"> </span><span class="n">j</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">,</span><span class="w"> </span><span class="n">len</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">strlen</span><span class="w"> </span><span class="p">(</span><span class="n">text</span><span class="p">);</span> <span class="w"> </span><span class="kt">unsigned</span><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="o">*</span><span class="n">newtext</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">g_malloc</span><span class="w"> </span><span class="p">(</span><span class="n">len</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="mi">1024</span><span class="p">);</span> <span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">prefs</span><span class="p">.</span><span class="n">hex_stamp_text</span><span class="p">)</span> <span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="n">newtext</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span> <span class="w"> </span><span class="n">j</span><span class="w"> </span><span class="o">+=</span><span class="w"> </span><span class="n">timecat</span><span class="w"> </span><span class="p">(</span><span class="n">newtext</span><span class="p">,</span><span class="w"> </span><span class="n">stamp</span><span class="p">);</span> <span class="w"> </span><span class="p">}</span> <span class="w"> </span><span class="k">while</span><span class="w"> </span><span class="p">(</span><span class="n">i</span><span class="w"> </span><span class="o"><</span><span class="w"> </span><span class="n">len</span><span class="p">)</span> <span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">dotime</span><span class="w"> </span><span class="o">&&</span><span class="w"> </span><span class="n">text</span><span class="p">[</span><span class="n">i</span><span class="p">]</span><span class="w"> </span><span class="o">!=</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span> <span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="n">dotime</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">FALSE</span><span class="p">;</span> <span class="w"> </span><span class="n">newtext</span><span class="p">[</span><span class="n">j</span><span class="p">]</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span> <span class="w"> </span><span class="n">j</span><span class="w"> </span><span class="o">+=</span><span class="w"> </span><span class="n">timecat</span><span class="w"> </span><span class="p">(</span><span class="n">newtext</span><span class="p">,</span><span class="w"> </span><span class="n">stamp</span><span class="p">);</span> <span class="w"> </span><span class="p">}</span> <span class="w"> </span><span class="k">switch</span><span class="w"> </span><span class="p">(</span><span class="n">text</span><span class="p">[</span><span class="n">i</span><span class="p">])</span> <span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="k">case</span><span class="w"> </span><span class="mi">3</span><span class="p">:</span> <span class="w"> </span><span class="n">i</span><span class="o">++</span><span class="p">;</span> <span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="o">!</span><span class="n">isdigit</span><span class="w"> </span><span class="p">(</span><span class="n">text</span><span class="p">[</span><span class="n">i</span><span class="p">]))</span> <span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="n">newtext</span><span class="p">[</span><span class="n">j</span><span class="p">]</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">27</span><span class="p">;</span> <span class="w"> </span><span class="n">j</span><span class="o">++</span><span class="p">;</span> <span class="w"> </span><span class="n">newtext</span><span class="p">[</span><span class="n">j</span><span class="p">]</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="sc">'['</span><span class="p">;</span> <span class="w"> </span><span class="n">j</span><span class="o">++</span><span class="p">;</span> <span class="w"> </span><span class="n">newtext</span><span class="p">[</span><span class="n">j</span><span class="p">]</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="sc">'m'</span><span class="p">;</span> <span class="w"> </span><span class="n">j</span><span class="o">++</span><span class="p">;</span> <span class="w"> </span><span class="k">goto</span><span class="w"> </span><span class="n">endloop</span><span class="p">;</span> <span class="w"> </span><span class="p">}</span> <span class="w"> </span><span class="n">k</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span> <span class="w"> </span><span class="n">comma</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">FALSE</span><span class="p">;</span> <span class="w"> </span><span class="k">while</span><span class="w"> </span><span class="p">(</span><span class="n">i</span><span class="w"> </span><span class="o"><</span><span class="w"> </span><span class="n">len</span><span class="p">)</span> <span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">text</span><span class="p">[</span><span class="n">i</span><span class="p">]</span><span class="w"> </span><span class="o">>=</span><span class="w"> </span><span class="sc">'0'</span><span class="w"> </span><span class="o">&&</span><span class="w"> </span><span class="n">text</span><span class="p">[</span><span class="n">i</span><span class="p">]</span><span class="w"> </span><span class="o"><=</span><span class="w"> </span><span class="sc">'9'</span><span class="w"> </span><span class="o">&&</span><span class="w"> </span><span class="n">k</span><span class="w"> </span><span class="o"><</span><span class="w"> </span><span class="mi">2</span><span class="p">)</span> <span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="n">num</span><span class="p">[</span><span class="n">k</span><span class="p">]</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">text</span><span class="p">[</span><span class="n">i</span><span class="p">];</span> <span class="w"> </span><span class="n">k</span><span class="o">++</span><span class="p">;</span> <span class="w"> </span><span class="p">}</span><span class="w"> </span><span class="k">else</span> <span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">col</span><span class="p">,</span><span class="w"> </span><span class="n">mirc</span><span class="p">;</span> <span class="w"> </span><span class="n">num</span><span class="p">[</span><span class="n">k</span><span class="p">]</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span> <span class="w"> </span><span class="n">newtext</span><span class="p">[</span><span class="n">j</span><span class="p">]</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">27</span><span class="p">;</span> <span class="w"> </span><span class="n">j</span><span class="o">++</span><span class="p">;</span> <span class="w"> </span><span class="n">newtext</span><span class="p">[</span><span class="n">j</span><span class="p">]</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="sc">'['</span><span class="p">;</span> <span class="w"> </span><span class="n">j</span><span class="o">++</span><span class="p">;</span> <span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">k</span><span class="w"> </span><span class="o">==</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span> <span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="n">newtext</span><span class="p">[</span><span class="n">j</span><span class="p">]</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="sc">'m'</span><span class="p">;</span> <span class="w"> </span><span class="n">j</span><span class="o">++</span><span class="p">;</span> <span class="w"> </span><span class="p">}</span><span class="w"> </span><span class="k">else</span> <span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">comma</span><span class="p">)</span> <span class="w"> </span><span class="n">col</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">40</span><span class="p">;</span> <span class="w"> </span><span class="k">else</span> <span class="w"> </span><span class="n">col</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">30</span><span class="p">;</span> <span class="w"> </span><span class="n">mirc</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">atoi</span><span class="w"> </span><span class="p">(</span><span class="n">num</span><span class="p">);</span> <span class="w"> </span><span class="n">mirc</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">colconv</span><span class="p">[</span><span class="n">mirc</span><span class="w"> </span><span class="o">%</span><span class="w"> </span><span class="n">G_N_ELEMENTS</span><span class="p">(</span><span class="n">colconv</span><span class="p">)];</span> <span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">mirc</span><span class="w"> </span><span class="o">></span><span class="w"> </span><span class="mi">9</span><span class="p">)</span> <span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="n">mirc</span><span class="w"> </span><span class="o">+=</span><span class="w"> </span><span class="mi">50</span><span class="p">;</span> <span class="w"> </span><span class="n">sprintf</span><span class="w"> </span><span class="p">((</span><span class="kt">char</span><span class="w"> </span><span class="o">*</span><span class="p">)</span><span class="w"> </span><span class="o">&</span><span class="n">newtext</span><span class="p">[</span><span class="n">j</span><span class="p">],</span><span class="w"> </span><span class="s">"%dm"</span><span class="p">,</span><span class="w"> </span><span class="n">mirc</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="n">col</span><span class="p">);</span> <span class="w"> </span><span class="p">}</span><span class="w"> </span><span class="k">else</span> <span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="n">sprintf</span><span class="w"> </span><span class="p">((</span><span class="kt">char</span><span class="w"> </span><span class="o">*</span><span class="p">)</span><span class="w"> </span><span class="o">&</span><span class="n">newtext</span><span class="p">[</span><span class="n">j</span><span class="p">],</span><span class="w"> </span><span class="s">"%dm"</span><span class="p">,</span><span class="w"> </span><span class="n">mirc</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="n">col</span><span class="p">);</span> <span class="w"> </span><span class="p">}</span> <span class="w"> </span><span class="n">j</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">strlen</span><span class="w"> </span><span class="p">(</span><span class="n">newtext</span><span class="p">);</span> <span class="w"> </span><span class="p">}</span> <span class="w"> </span><span class="k">switch</span><span class="w"> </span><span class="p">(</span><span class="n">text</span><span class="p">[</span><span class="n">i</span><span class="p">])</span> <span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="k">case</span><span class="w"> </span><span class="sc">','</span><span class="p">:</span> <span class="w"> </span><span class="n">comma</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">TRUE</span><span class="p">;</span> <span class="w"> </span><span class="k">break</span><span class="p">;</span> <span class="w"> </span><span class="k">default</span><span class="o">:</span> <span class="w"> </span><span class="k">goto</span><span class="w"> </span><span class="n">endloop</span><span class="p">;</span> <span class="w"> </span><span class="p">}</span> <span class="w"> </span><span class="n">k</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span> <span class="w"> </span><span class="p">}</span> <span class="w"> </span><span class="n">i</span><span class="o">++</span><span class="p">;</span> <span class="w"> </span><span class="p">}</span> <span class="w"> </span><span class="k">break</span><span class="p">;</span> <span class="w"> </span><span class="cm">/* don't actually want hidden text */</span> <span class="w"> </span><span class="k">case</span><span class="w"> </span><span class="sc">'\010'</span><span class="p">:</span><span class="w"> </span><span class="cm">/* hidden */</span> <span class="w"> </span><span class="k">break</span><span class="p">;</span> <span class="w"> </span><span class="k">case</span><span class="w"> </span><span class="sc">'\026'</span><span class="p">:</span><span class="w"> </span><span class="cm">/* REVERSE */</span> <span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">reverse</span><span class="p">)</span> <span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="n">reverse</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">FALSE</span><span class="p">;</span> <span class="w"> </span><span class="n">strcpy</span><span class="w"> </span><span class="p">(</span><span class="o">&</span><span class="n">newtext</span><span class="p">[</span><span class="n">j</span><span class="p">],</span><span class="w"> </span><span class="s">"</span><span class="se">\033</span><span class="s">[27m"</span><span class="p">);</span> <span class="w"> </span><span class="p">}</span><span class="w"> </span><span class="k">else</span> <span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="n">reverse</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">TRUE</span><span class="p">;</span> <span class="w"> </span><span class="n">strcpy</span><span class="w"> </span><span class="p">(</span><span class="o">&</span><span class="n">newtext</span><span class="p">[</span><span class="n">j</span><span class="p">],</span><span class="w"> </span><span class="s">"</span><span class="se">\033</span><span class="s">[7m"</span><span class="p">);</span> <span class="w"> </span><span class="p">}</span> <span class="w"> </span><span class="n">j</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">strlen</span><span class="w"> </span><span class="p">(</span><span class="n">newtext</span><span class="p">);</span> <span class="w"> </span><span class="k">break</span><span class="p">;</span> <span class="w"> </span><span class="k">case</span><span class="w"> </span><span class="sc">'\037'</span><span class="p">:</span><span class="w"> </span><span class="cm">/* underline */</span> <span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">under</span><span class="p">)</span> <span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="n">under</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">FALSE</span><span class="p">;</span> <span class="w"> </span><span class="n">strcpy</span><span class="w"> </span><span class="p">(</span><span class="o">&</span><span class="n">newtext</span><span class="p">[</span><span class="n">j</span><span class="p">],</span><span class="w"> </span><span class="s">"</span><span class="se">\033</span><span class="s">[24m"</span><span class="p">);</span> <span class="w"> </span><span class="p">}</span><span class="w"> </span><span class="k">else</span> <span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="n">under</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">TRUE</span><span class="p">;</span> <span class="w"> </span><span class="n">strcpy</span><span class="w"> </span><span class="p">(</span><span class="o">&</span><span class="n">newtext</span><span class="p">[</span><span class="n">j</span><span class="p">],</span><span class="w"> </span><span class="s">"</span><span class="se">\033</span><span class="s">[4m"</span><span class="p">);</span> <span class="w"> </span><span class="p">}</span> <span class="w"> </span><span class="n">j</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">strlen</span><span class="w"> </span><span class="p">(</span><span class="n">newtext</span><span class="p">);</span> <span class="w"> </span><span class="k">break</span><span class="p">;</span> <span class="w"> </span><span class="k">case</span><span class="w"> </span><span class="sc">'\002'</span><span class="p">:</span><span class="w"> </span><span class="cm">/* bold */</span> <span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">bold</span><span class="p">)</span> <span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="n">bold</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">FALSE</span><span class="p">;</span> <span class="w"> </span><span class="n">strcpy</span><span class="w"> </span><span class="p">(</span><span class="o">&</span><span class="n">newtext</span><span class="p">[</span><span class="n">j</span><span class="p">],</span><span class="w"> </span><span class="s">"</span><span class="se">\033</span><span class="s">[22m"</span><span class="p">);</span> <span class="w"> </span><span class="p">}</span><span class="w"> </span><span class="k">else</span> <span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="n">bold</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">TRUE</span><span class="p">;</span> <span class="w"> </span><span class="n">strcpy</span><span class="w"> </span><span class="p">(</span><span class="o">&</span><span class="n">newtext</span><span class="p">[</span><span class="n">j</span><span class="p">],</span><span class="w"> </span><span class="s">"</span><span class="se">\033</span><span class="s">[1m"</span><span class="p">);</span> <span class="w"> </span><span class="p">}</span> <span class="w"> </span><span class="n">j</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">strlen</span><span class="w"> </span><span class="p">(</span><span class="n">newtext</span><span class="p">);</span> <span class="w"> </span><span class="k">break</span><span class="p">;</span> <span class="w"> </span><span class="k">case</span><span class="w"> </span><span class="sc">'\007'</span><span class="p">:</span> <span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="o">!</span><span class="n">prefs</span><span class="p">.</span><span class="n">hex_input_filter_beep</span><span class="p">)</span> <span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="n">newtext</span><span class="p">[</span><span class="n">j</span><span class="p">]</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">text</span><span class="p">[</span><span class="n">i</span><span class="p">];</span> <span class="w"> </span><span class="n">j</span><span class="o">++</span><span class="p">;</span> <span class="w"> </span><span class="p">}</span> <span class="w"> </span><span class="k">break</span><span class="p">;</span> <span class="w"> </span><span class="k">case</span><span class="w"> </span><span class="sc">'\017'</span><span class="p">:</span><span class="w"> </span><span class="cm">/* reset all */</span> <span class="w"> </span><span class="n">strcpy</span><span class="w"> </span><span class="p">(</span><span class="o">&</span><span class="n">newtext</span><span class="p">[</span><span class="n">j</span><span class="p">],</span><span class="w"> </span><span class="s">"</span><span class="se">\033</span><span class="s">[m"</span><span class="p">);</span> <span class="w"> </span><span class="n">j</span><span class="w"> </span><span class="o">+=</span><span class="w"> </span><span class="mi">3</span><span class="p">;</span> <span class="w"> </span><span class="n">reverse</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">FALSE</span><span class="p">;</span> <span class="w"> </span><span class="n">bold</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">FALSE</span><span class="p">;</span> <span class="w"> </span><span class="n">under</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">FALSE</span><span class="p">;</span> <span class="w"> </span><span class="k">break</span><span class="p">;</span> <span class="w"> </span><span class="k">case</span><span class="w"> </span><span class="sc">'\t'</span><span class="p">:</span> <span class="w"> </span><span class="n">newtext</span><span class="p">[</span><span class="n">j</span><span class="p">]</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="sc">' '</span><span class="p">;</span> <span class="w"> </span><span class="n">j</span><span class="o">++</span><span class="p">;</span> <span class="w"> </span><span class="k">break</span><span class="p">;</span> <span class="w"> </span><span class="k">case</span><span class="w"> </span><span class="sc">'\n'</span><span class="p">:</span> <span class="w"> </span><span class="n">newtext</span><span class="p">[</span><span class="n">j</span><span class="p">]</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="sc">'\r'</span><span class="p">;</span> <span class="w"> </span><span class="n">j</span><span class="o">++</span><span class="p">;</span> <span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">prefs</span><span class="p">.</span><span class="n">hex_stamp_text</span><span class="p">)</span> <span class="w"> </span><span class="n">dotime</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">TRUE</span><span class="p">;</span> <span class="w"> </span><span class="k">default</span><span class="o">:</span> <span class="w"> </span><span class="n">newtext</span><span class="p">[</span><span class="n">j</span><span class="p">]</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">text</span><span class="p">[</span><span class="n">i</span><span class="p">];</span> <span class="w"> </span><span class="n">j</span><span class="o">++</span><span class="p">;</span> <span class="w"> </span><span class="p">}</span> <span class="w"> </span><span class="n">i</span><span class="o">++</span><span class="p">;</span> <span class="w"> </span><span class="nl">endloop</span><span class="p">:</span> <span class="w"> </span><span class="p">;</span> <span class="w"> </span><span class="p">}</span> <span class="w"> </span><span class="cm">/* make sure last character is a new line */</span> <span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">text</span><span class="p">[</span><span class="n">i</span><span class="mi">-1</span><span class="p">]</span><span class="w"> </span><span class="o">!=</span><span class="w"> </span><span class="sc">'\n'</span><span class="p">)</span> <span class="w"> </span><span class="n">newtext</span><span class="p">[</span><span class="n">j</span><span class="o">++</span><span class="p">]</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="sc">'\n'</span><span class="p">;</span> <span class="w"> </span><span class="n">newtext</span><span class="p">[</span><span class="n">j</span><span class="p">]</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span> <span class="w"> </span><span class="n">write</span><span class="w"> </span><span class="p">(</span><span class="n">STDOUT_FILENO</span><span class="p">,</span><span class="w"> </span><span class="n">newtext</span><span class="p">,</span><span class="w"> </span><span class="n">j</span><span class="p">);</span> <span class="w"> </span><span class="n">g_free</span><span class="w"> </span><span class="p">(</span><span class="n">newtext</span><span class="p">);</span> <span class="p">}</span> <span class="cp">#else</span> <span class="cm">/* The win32 version for cmd.exe */</span> <span class="kt">void</span> <span class="nf">fe_print_text</span><span class="w"> </span><span class="p">(</span><span class="k">struct</span><span class="w"> </span><span class="nc">session</span><span class="w"> </span><span class="o">*</span><span class="n">sess</span><span class="p">,</span><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="o">*</span><span class="n">text</span><span class="p">,</span><span class="w"> </span><span class="kt">time_t</span><span class="w"> </span><span class="n">stamp</span><span class="p">,</span> <span class="w"> </span><span class="n">gboolean</span><span class="w"> </span><span class="n">no_activity</span><span class="p">)</span> <span class="p">{</span> <span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">dotime</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">FALSE</span><span class="p">;</span> <span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">comma</span><span class="p">,</span><span class="w"> </span><span class="n">k</span><span class="p">,</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">,</span><span class="w"> </span><span class="n">j</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">,</span><span class="w"> </span><span class="n">len</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">strlen</span><span class="w"> </span><span class="p">(</span><span class="n">text</span><span class="p">);</span> <span class="w"> </span><span class="kt">unsigned</span><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="o">*</span><span class="n">newtext</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">g_malloc</span><span class="w"> </span><span class="p">(</span><span class="n">len</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="mi">1024</span><span class="p">);</span> <span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">prefs</span><span class="p">.</span><span class="n">hex_stamp_text</span><span class="p">)</span> <span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="n">newtext</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span> <span class="w"> </span><span class="n">j</span><span class="w"> </span><span class="o">+=</span><span class="w"> </span><span class="n">timecat</span><span class="w"> </span><span class="p">(</span><span class="n">newtext</span><span class="p">,</span><span class="w"> </span><span class="n">stamp</span><span class="p">);</span> <span class="w"> </span><span class="p">}</span> <span class="w"> </span><span class="k">while</span><span class="w"> </span><span class="p">(</span><span class="n">i</span><span class="w"> </span><span class="o"><</span><span class="w"> </span><span class="n">len</span><span class="p">)</span> <span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">dotime</span><span class="w"> </span><span class="o">&&</span><span class="w"> </span><span class="n">text</span><span class="p">[</span><span class="n">i</span><span class="p">]</span><span class="w"> </span><span class="o">!=</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span> <span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="n">dotime</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">FALSE</span><span class="p">;</span> <span class="w"> </span><span class="n">newtext</span><span class="p">[</span><span class="n">j</span><span class="p">]</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span> <span class="w"> </span><span class="n">j</span><span class="w"> </span><span class="o">+=</span><span class="w"> </span><span class="n">timecat</span><span class="w"> </span><span class="p">(</span><span class="n">newtext</span><span class="p">,</span><span class="w"> </span><span class="n">stamp</span><span class="p">);</span> <span class="w"> </span><span class="p">}</span> <span class="w"> </span><span class="k">switch</span><span class="w"> </span><span class="p">(</span><span class="n">text</span><span class="p">[</span><span class="n">i</span><span class="p">])</span> <span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="k">case</span><span class="w"> </span><span class="mi">3</span><span class="p">:</span> <span class="w"> </span><span class="n">i</span><span class="o">++</span><span class="p">;</span> <span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="o">!</span><span class="n">isdigit</span><span class="w"> </span><span class="p">(</span><span class="n">text</span><span class="p">[</span><span class="n">i</span><span class="p">]))</span> <span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="k">goto</span><span class="w"> </span><span class="n">endloop</span><span class="p">;</span> <span class="w"> </span><span class="p">}</span> <span class="w"> </span><span class="n">k</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span> <span class="w"> </span><span class="n">comma</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">FALSE</span><span class="p">;</span> <span class="w"> </span><span class="k">while</span><span class="w"> </span><span class="p">(</span><span class="n">i</span><span class="w"> </span><span class="o"><</span><span class="w"> </span><span class="n">len</span><span class="p">)</span> <span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">text</span><span class="p">[</span><span class="n">i</span><span class="p">]</span><span class="w"> </span><span class="o">>=</span><span class="w"> </span><span class="sc">'0'</span><span class="w"> </span><span class="o">&&</span><span class="w"> </span><span class="n">text</span><span class="p">[</span><span class="n">i</span><span class="p">]</span><span class="w"> </span><span class="o"><=</span><span class="w"> </span><span class="sc">'9'</span><span class="w"> </span><span class="o">&&</span><span class="w"> </span><span class="n">k</span><span class="w"> </span><span class="o"><</span><span class="w"> </span><span class="mi">2</span><span class="p">)</span> <span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="n">k</span><span class="o">++</span><span class="p">;</span> <span class="w"> </span><span class="p">}</span><span class="w"> </span><span class="k">else</span> <span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="k">switch</span><span class="w"> </span><span class="p">(</span><span class="n">text</span><span class="p">[</span><span class="n">i</span><span class="p">])</span> <span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="k">case</span><span class="w"> </span><span class="sc">','</span><span class="p">:</span> <span class="w"> </span><span class="n">comma</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">TRUE</span><span class="p">;</span> <span class="w"> </span><span class="k">break</span><span class="p">;</span> <span class="w"> </span><span class="k">default</span><span class="o">:</span> <span class="w"> </span><span class="k">goto</span><span class="w"> </span><span class="n">endloop</span><span class="p">;</span> <span class="w"> </span><span class="p">}</span> <span class="w"> </span><span class="n">k</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span> <span class="w"> </span><span class="p">}</span> <span class="w"> </span><span class="n">i</span><span class="o">++</span><span class="p">;</span> <span class="w"> </span><span class="p">}</span> <span class="w"> </span><span class="k">break</span><span class="p">;</span> <span class="w"> </span><span class="cm">/* don't actually want hidden text */</span> <span class="w"> </span><span class="k">case</span><span class="w"> </span><span class="sc">'\010'</span><span class="p">:</span><span class="w"> </span><span class="cm">/* hidden */</span> <span class="w"> </span><span class="k">case</span><span class="w"> </span><span class="sc">'\026'</span><span class="p">:</span><span class="w"> </span><span class="cm">/* REVERSE */</span> <span class="w"> </span><span class="k">case</span><span class="w"> </span><span class="sc">'\037'</span><span class="p">:</span><span class="w"> </span><span class="cm">/* underline */</span> <span class="w"> </span><span class="k">case</span><span class="w"> </span><span class="sc">'\002'</span><span class="p">:</span><span class="w"> </span><span class="cm">/* bold */</span> <span class="w"> </span><span class="k">case</span><span class="w"> </span><span class="sc">'\017'</span><span class="p">:</span><span class="w"> </span><span class="cm">/* reset all */</span> <span class="w"> </span><span class="k">break</span><span class="p">;</span> <span class="w"> </span><span class="k">case</span><span class="w"> </span><span class="sc">'\007'</span><span class="p">:</span> <span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="o">!</span><span class="n">prefs</span><span class="p">.</span><span class="n">hex_input_filter_beep</span><span class="p">)</span> <span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="n">newtext</span><span class="p">[</span><span class="n">j</span><span class="p">]</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">text</span><span class="p">[</span><span class="n">i</span><span class="p">];</span> <span class="w"> </span><span class="n">j</span><span class="o">++</span><span class="p">;</span> <span class="w"> </span><span class="p">}</span> <span class="w"> </span><span class="k">break</span><span class="p">;</span> <span class="w"> </span><span class="k">case</span><span class="w"> </span><span class="sc">'\t'</span><span class="p">:</span> <span class="w"> </span><span class="n">newtext</span><span class="p">[</span><span class="n">j</span><span class="p">]</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="sc">' '</span><span class="p">;</span> <span class="w"> </span><span class="n">j</span><span class="o">++</span><span class="p">;</span> <span class="w"> </span><span class="k">break</span><span class="p">;</span> <span class="w"> </span><span class="k">case</span><span class="w"> </span><span class="sc">'\n'</span><span class="p">:</span> <span class="w"> </span><span class="n">newtext</span><span class="p">[</span><span class="n">j</span><span class="p">]</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="sc">'\r'</span><span class="p">;</span> <span class="w"> </span><span class="n">j</span><span class="o">++</span><span class="p">;</span> <span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">prefs</span><span class="p">.</span><span class="n">hex_stamp_text</span><span class="p">)</span> <span class="w"> </span><span class="n">dotime</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">TRUE</span><span class="p">;</span> <span class="w"> </span><span class="k">default</span><span class="o">:</span> <span class="w"> </span><span class="n">newtext</span><span class="p">[</span><span class="n">j</span><span class="p">]</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">text</span><span class="p">[</span><span class="n">i</span><span class="p">];</span> <span class="w"> </span><span class="n">j</span><span class="o">++</span><span class="p">;</span> <span class="w"> </span><span class="p">}</span> <span class="w"> </span><span class="n">i</span><span class="o">++</span><span class="p">;</span> <span class="w"> </span><span class="nl">endloop</span><span class="p">:</span> <span class="w"> </span><span class="p">;</span> <span class="w"> </span><span class="p">}</span> <span class="w"> </span><span class="cm">/* make sure last character is a new line */</span> <span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">text</span><span class="p">[</span><span class="n">i</span><span class="mi">-1</span><span class="p">]</span><span class="w"> </span><span class="o">!=</span><span class="w"> </span><span class="sc">'\n'</span><span class="p">)</span> <span class="w"> </span><span class="n">newtext</span><span class="p">[</span><span class="n">j</span><span class="o">++</span><span class="p">]</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="sc">'\n'</span><span class="p">;</span> <span class="w"> </span><span class="n">newtext</span><span class="p">[</span><span class="n">j</span><span class="p">]</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span> <span class="w"> </span><span class="n">write</span><span class="w"> </span><span class="p">(</span><span class="n">STDOUT_FILENO</span><span class="p">,</span><span class="w"> </span><span class="n">newtext</span><span class="p">,</span><span class="w"> </span><span class="n">j</span><span class="p">);</span> <span class="w"> </span><span class="n">g_free</span><span class="w"> </span><span class="p">(</span><span class="n">newtext</span><span class="p">);</span> <span class="p">}</span> <span class="cp">#endif</span> <span class="kt">void</span> <span class="nf">fe_timeout_remove</span><span class="w"> </span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">tag</span><span class="p">)</span> <span class="p">{</span> <span class="w"> </span><span class="n">g_source_remove</span><span class="w"> </span><span class="p">(</span><span class="n">tag</span><span class="p">);</span> <span class="p">}</span> <span class="kt">int</span> <span class="nf">fe_timeout_add</span><span class="w"> </span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">interval</span><span class="p">,</span><span class="w"> </span><span class="kt">void</span><span class="w"> </span><span class="o">*</span><span class="n">callback</span><span class="p">,</span><span class="w"> </span><span class="kt">void</span><span class="w"> </span><span class="o">*</span><span class="n">userdata</span><span class="p">)</span> <span class="p">{</span> <span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">g_timeout_add</span><span class="w"> </span><span class="p">(</span><span class="n">interval</span><span class="p">,</span><span class="w"> </span><span class="p">(</span><span class="n">GSourceFunc</span><span class="p">)</span><span class="w"> </span><span class="n">callback</span><span class="p">,</span><span class="w"> </span><span class="n">userdata</span><span class="p">);</span> <span class="p">}</span> <span class="kt">int</span> <span class="nf">fe_timeout_add_seconds</span><span class="w"> </span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">interval</span><span class="p">,</span><span class="w"> </span><span class="kt">void</span><span class="w"> </span><span class="o">*</span><span class="n">callback</span><span class="p">,</span><span class="w"> </span><span class="kt">void</span><span class="w"> </span><span class="o">*</span><span class="n">userdata</span><span class="p">)</span> <span class="p">{</span> <span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">g_timeout_add_seconds</span><span class="w"> </span><span class="p">(</span><span class="n">interval</span><span class="p">,</span><span class="w"> </span><span class="p">(</span><span class="n">GSourceFunc</span><span class="p">)</span><span class="w"> </span><span class="n">callback</span><span class="p">,</span><span class="w"> </span><span class="n">userdata</span><span class="p">);</span> <span class="p">}</span> <span class="kt">void</span> <span class="nf">fe_input_remove</span><span class="w"> </span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">tag</span><span class="p">)</span> <span class="p">{</span> <span class="w"> </span><span class="n">g_source_remove</span><span class="w"> </span><span class="p">(</span><span class="n">tag</span><span class="p">);</span> <span class="p">}</span> <span class="kt">int</span> <span class="nf">fe_input_add</span><span class="w"> </span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">sok</span><span class="p">,</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">flags</span><span class="p">,</span><span class="w"> </span><span class="kt">void</span><span class="w"> </span><span class="o">*</span><span class="n">func</span><span class="p">,</span><span class="w"> </span><span class="kt">void</span><span class="w"> </span><span class="o">*</span><span class="n">data</span><span class="p">)</span> <span class="p">{</span> <span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">tag</span><span class="p">,</span><span class="w"> </span><span class="n">type</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span> <span class="w"> </span><span class="n">GIOChannel</span><span class="w"> </span><span class="o">*</span><span class="n">channel</span><span class="p">;</span> <span class="cp">#ifdef G_OS_WIN32</span> <span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">flags</span><span class="w"> </span><span class="o">&</span><span class="w"> </span><span class="n">FIA_FD</span><span class="p">)</span> <span class="w"> </span><span class="n">channel</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">g_io_channel_win32_new_fd</span><span class="w"> </span><span class="p">(</span><span class="n">sok</span><span class="p">);</span> <span class="w"> </span><span class="k">else</span> <span class="w"> </span><span class="n">channel</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">g_io_channel_win32_new_socket</span><span class="w"> </span><span class="p">(</span><span class="n">sok</span><span class="p">);</span> <span class="cp">#else</span> <span class="w"> </span><span class="n">channel</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">g_io_channel_unix_new</span><span class="w"> </span><span class="p">(</span><span class="n">sok</span><span class="p">);</span> <span class="cp">#endif</span> <span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">flags</span><span class="w"> </span><span class="o">&</span><span class="w"> </span><span class="n">FIA_READ</span><span class="p">)</span> <span class="w"> </span><span class="n">type</span><span class="w"> </span><span class="o">|=</span><span class="w"> </span><span class="n">G_IO_IN</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">G_IO_HUP</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">G_IO_ERR</span><span class="p">;</span> <span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">flags</span><span class="w"> </span><span class="o">&</span><span class="w"> </span><span class="n">FIA_WRITE</span><span class="p">)</span> <span class="w"> </span><span class="n">type</span><span class="w"> </span><span class="o">|=</span><span class="w"> </span><span class="n">G_IO_OUT</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">G_IO_ERR</span><span class="p">;</span> <span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">flags</span><span class="w"> </span><span class="o">&</span><span class="w"> </span><span class="n">FIA_EX</span><span class="p">)</span> <span class="w"> </span><span class="n">type</span><span class="w"> </span><span class="o">|=</span><span class="w"> </span><span class="n">G_IO_PRI</span><span class="p">;</span> <span class="w"> </span><span class="n">tag</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">g_io_add_watch</span><span class="w"> </span><span class="p">(</span><span class="n">channel</span><span class="p">,</span><span class="w"> </span><span class="n">type</span><span class="p">,</span><span class="w"> </span><span class="p">(</span><span class="n">GIOFunc</span><span class="p">)</span><span class="w"> </span><span class="n">func</span><span class="p">,</span><span class="w"> </span><span class="n">data</span><span class="p">);</span> <span class="w"> </span><span class="n">g_io_channel_unref</span><span class="w"> </span><span class="p">(</span><span class="n">channel</span><span class="p">);</span> <span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">tag</span><span class="p">;</span> <span class="p">}</span> <span class="cm">/* === command-line parameter parsing : requires glib 2.6 === */</span> <span class="k">static</span><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="o">*</span><span class="n">arg_cfgdir</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nb">NULL</span><span class="p">;</span> <span class="k">static</span><span class="w"> </span><span class="n">gint</span><span class="w"> </span><span class="n">arg_show_autoload</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span> <span class="k">static</span><span class="w"> </span><span class="n">gint</span><span class="w"> </span><span class="n">arg_show_config</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span> <span class="k">static</span><span class="w"> </span><span class="n">gint</span><span class="w"> </span><span class="n">arg_show_version</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span> <span class="k">static</span><span class="w"> </span><span class="k">const</span><span class="w"> </span><span class="n">GOptionEntry</span><span class="w"> </span><span class="n">gopt_entries</span><span class="p">[]</span><span class="w"> </span><span class="o">=</span><span class="w"> </span> <span class="p">{</span> <span class="w"> </span><span class="p">{</span><span class="s">"no-auto"</span><span class="p">,</span><span class="w"> </span><span class="sc">'a'</span><span class="p">,</span><span class="w"> </span><span class="mi">0</span><span class="p">,</span><span class="w"> </span><span class="n">G_OPTION_ARG_NONE</span><span class="p">,</span><span class="w"> </span><span class="o">&</span><span class="n">arg_dont_autoconnect</span><span class="p">,</span><span class="w"> </span><span class="n">N_</span><span class="p">(</span><span class="s">"Don't auto connect to servers"</span><span class="p">),</span><span class="w"> </span><span class="nb">NULL</span><span class="p">},</span> <span class="w"> </span><span class="p">{</span><span class="s">"cfgdir"</span><span class="p">,</span><span class="w"> </span><span class="sc">'d'</span><span class="p">,</span><span class="w"> </span><span class="mi">0</span><span class="p">,</span><span class="w"> </span><span class="n">G_OPTION_ARG_STRING</span><span class="p">,</span><span class="w"> </span><span class="o">&</span><span class="n">arg_cfgdir</span><span class="p">,</span><span class="w"> </span><span class="n">N_</span><span class="p">(</span><span class="s">"Use a different config directory"</span><span class="p">),</span><span class="w"> </span><span class="s">"PATH"</span><span class="p">},</span> <span class="w"> </span><span class="p">{</span><span class="s">"no-plugins"</span><span class="p">,</span><span class="w"> </span><span class="sc">'n'</span><span class="p">,</span><span class="w"> </span><span class="mi">0</span><span class="p">,</span><span class="w"> </span><span class="n">G_OPTION_ARG_NONE</span><span class="p">,</span><span class="w"> </span><span class="o">&</span><span class="n">arg_skip_plugins</span><span class="p">,</span><span class="w"> </span><span class="n">N_</span><span class="p">(</span><span class="s">"Don't auto load any plugins"</span><span class="p">),</span><span class="w"> </span><span class="nb">NULL</span><span class="p">},</span> <span class="w"> </span><span class="p">{</span><span class="s">"plugindir"</span><span class="p">,</span><span class="w"> </span><span class="sc">'p'</span><span class="p">,</span><span class="w"> </span><span class="mi">0</span><span class="p">,</span><span class="w"> </span><span class="n">G_OPTION_ARG_NONE</span><span class="p">,</span><span class="w"> </span><span class="o">&</span><span class="n">arg_show_autoload</span><span class="p">,</span><span class="w"> </span><span class="n">N_</span><span class="p">(</span><span class="s">"Show plugin/script auto-load directory"</span><span class="p">),</span><span class="w"> </span><span class="nb">NULL</span><span class="p">},</span> <span class="w"> </span><span class="p">{</span><span class="s">"configdir"</span><span class="p">,</span><span class="w"> </span><span class="sc">'u'</span><span class="p">,</span><span class="w"> </span><span class="mi">0</span><span class="p">,</span><span class="w"> </span><span class="n">G_OPTION_ARG_NONE</span><span class="p">,</span><span class="w"> </span><span class="o">&</span><span class="n">arg_show_config</span><span class="p">,</span><span class="w"> </span><span class="n">N_</span><span class="p">(</span><span class="s">"Show user config directory"</span><span class="p">),</span><span class="w"> </span><span class="nb">NULL</span><span class="p">},</span> <span class="w"> </span><span class="p">{</span><span class="s">"url"</span><span class="p">,</span><span class="w"> </span><span class="mi">0</span><span class="p">,</span><span class="w"> </span><span class="n">G_OPTION_FLAG_HIDDEN</span><span class="p">,</span><span class="w"> </span><span class="n">G_OPTION_ARG_STRING</span><span class="p">,</span><span class="w"> </span><span class="o">&</span><span class="n">arg_url</span><span class="p">,</span><span class="w"> </span><span class="n">N_</span><span class="p">(</span><span class="s">"Open an irc://server:port/channel URL"</span><span class="p">),</span><span class="w"> </span><span class="s">"URL"</span><span class="p">},</span> <span class="w"> </span><span class="p">{</span><span class="s">"version"</span><span class="p">,</span><span class="w"> </span><span class="sc">'v'</span><span class="p">,</span><span class="w"> </span><span class="mi">0</span><span class="p">,</span><span class="w"> </span><span class="n">G_OPTION_ARG_NONE</span><span class="p">,</span><span class="w"> </span><span class="o">&</span><span class="n">arg_show_version</span><span class="p">,</span><span class="w"> </span><span class="n">N_</span><span class="p">(</span><span class="s">"Show version information"</span><span class="p">),</span><span class="w"> </span><span class="nb">NULL</span><span class="p">},</span> <span class="w"> </span><span class="p">{</span><span class="n">G_OPTION_REMAINING</span><span class="p">,</span><span class="w"> </span><span class="sc">'\0'</span><span class="p">,</span><span class="w"> </span><span class="mi">0</span><span class="p">,</span><span class="w"> </span><span class="n">G_OPTION_ARG_STRING_ARRAY</span><span class="p">,</span><span class="w"> </span><span class="o">&</span><span class="n">arg_urls</span><span class="p">,</span><span class="w"> </span><span class="n">N_</span><span class="p">(</span><span class="s">"Open an irc://server:port/channel?key URL"</span><span class="p">),</span><span class="w"> </span><span class="s">"URL"</span><span class="p">},</span> <span class="w"> </span><span class="p">{</span><span class="nb">NULL</span><span class="p">}</span> <span class="p">};</span> <span class="kt">int</span> <span class="nf">fe_args</span><span class="w"> </span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">argc</span><span class="p">,</span><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="o">*</span><span class="n">argv</span><span class="p">[])</span> <span class="p">{</span> <span class="w"> </span><span class="n">GError</span><span class="w"> </span><span class="o">*</span><span class="n">error</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nb">NULL</span><span class="p">;</span> <span class="w"> </span><span class="n">GOptionContext</span><span class="w"> </span><span class="o">*</span><span class="n">context</span><span class="p">;</span> <span class="cp">#ifdef ENABLE_NLS</span> <span class="w"> </span><span class="n">bindtextdomain</span><span class="w"> </span><span class="p">(</span><span class="n">GETTEXT_PACKAGE</span><span class="p">,</span><span class="w"> </span><span class="n">LOCALEDIR</span><span class="p">);</span> <span class="w"> </span><span class="n">bind_textdomain_codeset</span><span class="w"> </span><span class="p">(</span><span class="n">GETTEXT_PACKAGE</span><span class="p">,</span><span class="w"> </span><span class="s">"UTF-8"</span><span class="p">);</span> <span class="w"> </span><span class="n">textdomain</span><span class="w"> </span><span class="p">(</span><span class="n">GETTEXT_PACKAGE</span><span class="p">);</span> <span class="cp">#endif</span> <span class="w"> </span><span class="n">context</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">g_option_context_new</span><span class="w"> </span><span class="p">(</span><span class="nb">NULL</span><span class="p">);</span> <span class="w"> </span><span class="n">g_option_context_add_main_entries</span><span class="w"> </span><span class="p">(</span><span class="n">context</span><span class="p">,</span><span class="w"> </span><span class="n">gopt_entries</span><span class="p">,</span><span class="w"> </span><span class="n">GETTEXT_PACKAGE</span><span class="p">);</span> <span class="w"> </span><span class="n">g_option_context_parse</span><span class="w"> </span><span class="p">(</span><span class="n">context</span><span class="p">,</span><span class="w"> </span><span class="o">&</span><span class="n">argc</span><span class="p">,</span><span class="w"> </span><span class="o">&</span><span class="n">argv</span><span class="p">,</span><span class="w"> </span><span class="o">&</span><span class="n">error</span><span class="p">);</span> <span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">error</span><span class="p">)</span> <span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">error</span><span class="o">-></span><span class="n">message</span><span class="p">)</span> <span class="w"> </span><span class="n">printf</span><span class="w"> </span><span class="p">(</span><span class="s">"%s</span><span class="se">\n</span><span class="s">"</span><span class="p">,</span><span class="w"> </span><span class="n">error</span><span class="o">-></span><span class="n">message</span><span class="p">);</span> <span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="mi">1</span><span class="p">;</span> <span class="w"> </span><span class="p">}</span> <span class="w"> </span><span class="n">g_option_context_free</span><span class="w"> </span><span class="p">(</span><span class="n">context</span><span class="p">);</span> <span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">arg_show_version</span><span class="p">)</span> <span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="n">printf</span><span class="w"> </span><span class="p">(</span><span class="n">PACKAGE_NAME</span><span class="s">" "</span><span class="n">PACKAGE_VERSION</span><span class="s">"</span><span class="se">\n</span><span class="s">"</span><span class="p">);</span> <span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span> <span class="w"> </span><span class="p">}</span> <span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">arg_show_autoload</span><span class="p">)</span> <span class="w"> </span><span class="p">{</span> <span class="cp">#ifndef USE_PLUGIN</span> <span class="w"> </span><span class="n">printf</span><span class="w"> </span><span class="p">(</span><span class="n">PACKAGE_NAME</span><span class="s">" was build without plugin support</span><span class="se">\n</span><span class="s">"</span><span class="p">);</span> <span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="mi">1</span><span class="p">;</span> <span class="cp">#else</span> <span class="cp">#ifdef WIN32</span> <span class="w"> </span><span class="cm">/* see the chdir() below */</span> <span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="o">*</span><span class="n">sl</span><span class="p">,</span><span class="w"> </span><span class="o">*</span><span class="n">exe</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">g_strdup</span><span class="w"> </span><span class="p">(</span><span class="n">argv</span><span class="p">[</span><span class="mi">0</span><span class="p">]);</span> <span class="w"> </span><span class="n">sl</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">strrchr</span><span class="w"> </span><span class="p">(</span><span class="n">exe</span><span class="p">,</span><span class="w"> </span><span class="sc">'\\'</span><span class="p">);</span> <span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">sl</span><span class="p">)</span> <span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="o">*</span><span class="n">sl</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span> <span class="w"> </span><span class="n">printf</span><span class="w"> </span><span class="p">(</span><span class="s">"%s</span><span class="se">\\</span><span class="s">plugins</span><span class="se">\n</span><span class="s">"</span><span class="p">,</span><span class="w"> </span><span class="n">exe</span><span class="p">);</span> <span class="w"> </span><span class="p">}</span> <span class="w"> </span><span class="n">g_free</span><span class="w"> </span><span class="p">(</span><span class="n">exe</span><span class="p">);</span> <span class="cp">#else</span> <span class="w"> </span><span class="n">printf</span><span class="w"> </span><span class="p">(</span><span class="s">"%s</span><span class="se">\n</span><span class="s">"</span><span class="p">,</span><span class="w"> </span><span class="n">HEXCHATLIBDIR</span><span class="p">);</span> <span class="cp">#endif</span> <span class="cp">#endif</span> <span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span> <span class="w"> </span><span class="p">}</span> <span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">arg_show_config</span><span class="p">)</span> <span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="n">printf</span><span class="w"> </span><span class="p">(</span><span class="s">"%s</span><span class="se">\n</span><span class="s">"</span><span class="p">,</span><span class="w"> </span><span class="n">get_xdir</span><span class="w"> </span><span class="p">());</span> <span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span> <span class="w"> </span><span class="p">}</span> <span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">arg_cfgdir</span><span class="p">)</span><span class="w"> </span><span class="cm">/* we want filesystem encoding */</span> <span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="n">g_free</span><span class="w"> </span><span class="p">(</span><span class="n">xdir</span><span class="p">);</span> <span class="w"> </span><span class="n">xdir</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">strdup</span><span class="w"> </span><span class="p">(</span><span class="n">arg_cfgdir</span><span class="p">);</span> <span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">xdir</span><span class="p">[</span><span class="n">strlen</span><span class="w"> </span><span class="p">(</span><span class="n">xdir</span><span class="p">)</span><span class="w"> </span><span class="o">-</span><span class="w"> </span><span class="mi">1</span><span class="p">]</span><span class="w"> </span><span class="o">==</span><span class="w"> </span><span class="sc">'/'</span><span class="p">)</span> <span class="w"> </span><span class="n">xdir</span><span class="p">[</span><span class="n">strlen</span><span class="w"> </span><span class="p">(</span><span class="n">xdir</span><span class="p">)</span><span class="w"> </span><span class="o">-</span><span class="w"> </span><span class="mi">1</span><span class="p">]</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span> <span class="w"> </span><span class="n">g_free</span><span class="w"> </span><span class="p">(</span><span class="n">arg_cfgdir</span><span class="p">);</span> <span class="w"> </span><span class="p">}</span> <span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="mi">-1</span><span class="p">;</span> <span class="p">}</span> <span class="kt">void</span> <span class="nf">fe_init</span><span class="w"> </span><span class="p">(</span><span class="kt">void</span><span class="p">)</span> <span class="p">{</span> <span class="w"> </span><span class="cm">/* the following should be default generated, not enfoced in binary */</span> <span class="w"> </span><span class="n">prefs</span><span class="p">.</span><span class="n">hex_gui_tab_server</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span> <span class="w"> </span><span class="n">prefs</span><span class="p">.</span><span class="n">hex_gui_autoopen_dialog</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span> <span class="w"> </span><span class="cm">/* except for these, there is no lag meter, there is no server list */</span> <span class="w"> </span><span class="n">prefs</span><span class="p">.</span><span class="n">hex_gui_lagometer</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span> <span class="w"> </span><span class="n">prefs</span><span class="p">.</span><span class="n">hex_gui_slist_skip</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">1</span><span class="p">;</span> <span class="p">}</span> <span class="kt">void</span> <span class="nf">fe_main</span><span class="w"> </span><span class="p">(</span><span class="kt">void</span><span class="p">)</span> <span class="p">{</span> <span class="w"> </span><span class="n">GIOChannel</span><span class="w"> </span><span class="o">*</span><span class="n">keyboard_input</span><span class="p">;</span> <span class="w"> </span><span class="n">main_loop</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">g_main_loop_new</span><span class="p">(</span><span class="nb">NULL</span><span class="p">,</span><span class="w"> </span><span class="n">FALSE</span><span class="p">);</span> <span class="w"> </span><span class="cm">/* Keyboard Entry Setup */</span> <span class="cp">#ifdef G_OS_WIN32</span> <span class="w"> </span><span class="n">keyboard_input</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">g_io_channel_win32_new_fd</span><span class="p">(</span><span class="n">STDIN_FILENO</span><span class="p">);</span> <span class="cp">#else</span> <span class="w"> </span><span class="n">keyboard_input</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">g_io_channel_unix_new</span><span class="p">(</span><span class="n">STDIN_FILENO</span><span class="p">);</span> <span class="cp">#endif</span> <span class="w"> </span><span class="n">g_io_add_watch</span><span class="p">(</span><span class="n">keyboard_input</span><span class="p">,</span><span class="w"> </span><span class="n">G_IO_IN</span><span class="p">,</span><span class="w"> </span><span class="n">handle_line</span><span class="p">,</span><span class="w"> </span><span class="nb">NULL</span><span class="p">);</span> <span class="w"> </span><span class="n">g_main_loop_run</span><span class="p">(</span><span class="n">main_loop</span><span class="p">);</span> <span class="w"> </span><span class="k">return</span><span class="p">;</span> <span class="p">}</span> <span class="kt">void</span> <span class="nf">fe_exit</span><span class="w"> </span><span class="p">(</span><span class="kt">void</span><span class="p">)</span> <span class="p">{</span> <span class="w"> </span><span class="n">done</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">TRUE</span><span class="p">;</span> <span class="w"> </span><span class="n">g_main_loop_quit</span><span class="p">(</span><span class="n">main_loop</span><span class="p">);</span> <span class="p">}</span> <span class="kt">void</span> <span class="nf">fe_new_server</span><span class="w"> </span><span class="p">(</span><span class="k">struct</span><span class="w"> </span><span class="nc">server</span><span class="w"> </span><span class="o">*</span><span class="n">serv</span><span class="p">)</span> <span class="p">{</span> <span class="p">}</span> <span class="kt">void</span> <span class="nf">fe_message</span><span class="w"> </span><span class="p">(</span><span class="kt">char</span><span class="w"> </span><span class="o">*</span><span class="n">msg</span><span class="p">,</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">flags</span><span class="p">)</span> <span class="p">{</span> <span class="w"> </span><span class="n">puts</span><span class="w"> </span><span class="p">(</span><span class="n">msg</span><span class="p">);</span> <span class="p">}</span> <span class="kt">void</span> <span class="nf">fe_close_window</span><span class="w"> </span><span class="p">(</span><span class="k">struct</span><span class="w"> </span><span class="nc">session</span><span class="w"> </span><span class="o">*</span><span class="n">sess</span><span class="p">)</span> <span class="p">{</span> <span class="w"> </span><span class="n">session_free</span><span class="w"> </span><span class="p">(</span><span class="n">sess</span><span class="p">);</span> <span class="w"> </span><span class="n">done</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">TRUE</span><span class="p">;</span> <span class="p">}</span> <span class="kt">void</span> <span class="nf">fe_beep</span><span class="w"> </span><span class="p">(</span><span class="n">session</span><span class="w"> </span><span class="o">*</span><span class="n">sess</span><span class="p">)</span> <span class="p">{</span> <span class="w"> </span><span class="n">putchar</span><span class="w"> </span><span class="p">(</span><span class="mi">7</span><span class="p">);</span> <span class="p">}</span> <span class="kt">void</span> <span class="nf">fe_add_rawlog</span><span class="w"> </span><span class="p">(</span><span class="k">struct</span><span class="w"> </span><span class="nc">server</span><span class="w"> </span><span class="o">*</span><span class="n">serv</span><span class="p">,</span><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="o">*</span><span class="n">text</span><span class="p">,</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">len</span><span class="p">,</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">outbound</span><span class="p">)</span> <span class="p">{</span> <span class="p">}</span> <span class="kt">void</span> <span class="nf">fe_set_topic</span><span class="w"> </span><span class="p">(</span><span class="k">struct</span><span class="w"> </span><span class="nc">session</span><span class="w"> </span><span class="o">*</span><span class="n">sess</span><span class="p">,</span><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="o">*</span><span class="n">topic</span><span class="p">,</span><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="o">*</span><span class="n">stripped_topic</span><span class="p">)</span> <span class="p">{</span> <span class="p">}</span> <span class="kt">void</span> <span class="nf">fe_cleanup</span><span class="w"> </span><span class="p">(</span><span class="kt">void</span><span class="p">)</span> <span class="p">{</span> <span class="p">}</span> <span class="kt">void</span> <span class="nf">fe_set_tab_color</span><span class="w"> </span><span class="p">(</span><span class="k">struct</span><span class="w"> </span><span class="nc">session</span><span class="w"> </span><span class="o">*</span><span class="n">sess</span><span class="p">,</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">col</span><span class="p">)</span> <span class="p">{</span> <span class="p">}</span> <span class="kt">void</span> <span class="nf">fe_update_mode_buttons</span><span class="w"> </span><span class="p">(</span><span class="k">struct</span><span class="w"> </span><span class="nc">session</span><span class="w"> </span><span class="o">*</span><span class="n">sess</span><span class="p">,</span><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="n">mode</span><span class="p">,</span><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="n">sign</span><span class="p">)</span> <span class="p">{</span> <span class="p">}</span> <span class="kt">void</span> <span class="nf">fe_update_channel_key</span><span class="w"> </span><span class="p">(</span><span class="k">struct</span><span class="w"> </span><span class="nc">session</span><span class="w"> </span><span class="o">*</span><span class="n">sess</span><span class="p">)</span> <span class="p">{</span> <span class="p">}</span> <span class="kt">void</span> <span class="nf">fe_update_channel_limit</span><span class="w"> </span><span class="p">(</span><span class="k">struct</span><span class="w"> </span><span class="nc">session</span><span class="w"> </span><span class="o">*</span><span class="n">sess</span><span class="p">)</span> <span class="p">{</span> <span class="p">}</span> <span class="kt">int</span> <span class="nf">fe_is_chanwindow</span><span class="w"> </span><span class="p">(</span><span class="k">struct</span><span class="w"> </span><span class="nc">server</span><span class="w"> </span><span class="o">*</span><span class="n">serv</span><span class="p">)</span> <span class="p">{</span> <span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span> <span class="p">}</span> <span class="kt">void</span> <span class="nf">fe_add_chan_list</span><span class="w"> </span><span class="p">(</span><span class="k">struct</span><span class="w"> </span><span class="nc">server</span><span class="w"> </span><span class="o">*</span><span class="n">serv</span><span class="p">,</span><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="o">*</span><span class="n">chan</span><span class="p">,</span><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="o">*</span><span class="n">users</span><span class="p">,</span><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="o">*</span><span class="n">topic</span><span class="p">)</span> <span class="p">{</span> <span class="p">}</span> <span class="kt">void</span> <span class="nf">fe_chan_list_end</span><span class="w"> </span><span class="p">(</span><span class="k">struct</span><span class="w"> </span><span class="nc">server</span><span class="w"> </span><span class="o">*</span><span class="n">serv</span><span class="p">)</span> <span class="p">{</span> <span class="p">}</span> <span class="n">gboolean</span> <span class="nf">fe_add_ban_list</span><span class="w"> </span><span class="p">(</span><span class="k">struct</span><span class="w"> </span><span class="nc">session</span><span class="w"> </span><span class="o">*</span><span class="n">sess</span><span class="p">,</span><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="o">*</span><span class="n">mask</span><span class="p">,</span><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="o">*</span><span class="n">who</span><span class="p">,</span><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="o">*</span><span class="n">when</span><span class="p">,</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">rplcode</span><span class="p">)</span> <span class="p">{</span> <span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span> <span class="p">}</span> <span class="n">gboolean</span> <span class="nf">fe_ban_list_end</span><span class="w"> </span><span class="p">(</span><span class="k">struct</span><span class="w"> </span><span class="nc">session</span><span class="w"> </span><span class="o">*</span><span class="n">sess</span><span class="p">,</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">rplcode</span><span class="p">)</span> <span class="p">{</span> <span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span> <span class="p">}</span> <span class="kt">void</span> <span class="nf">fe_notify_update</span><span class="w"> </span><span class="p">(</span><span class="kt">char</span><span class="w"> </span><span class="o">*</span><span class="n">name</span><span class="p">)</span> <span class="p">{</span> <span class="p">}</span> <span class="kt">void</span> <span class="nf">fe_notify_ask</span><span class="w"> </span><span class="p">(</span><span class="kt">char</span><span class="w"> </span><span class="o">*</span><span class="n">name</span><span class="p">,</span><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="o">*</span><span class="n">networks</span><span class="p">)</span> <span class="p">{</span> <span class="p">}</span> <span class="kt">void</span> <span class="nf">fe_text_clear</span><span class="w"> </span><span class="p">(</span><span class="k">struct</span><span class="w"> </span><span class="nc">session</span><span class="w"> </span><span class="o">*</span><span class="n">sess</span><span class="p">,</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">lines</span><span class="p">)</span> <span class="p">{</span> <span class="p">}</span> <span class="kt">void</span> <span class="nf">fe_progressbar_start</span><span class="w"> </span><span class="p">(</span><span class="k">struct</span><span class="w"> </span><span class="nc">session</span><span class="w"> </span><span class="o">*</span><span class="n">sess</span><span class="p">)</span> <span class="p">{</span> <span class="p">}</span> <span class="kt">void</span> <span class="nf">fe_progressbar_end</span><span class="w"> </span><span class="p">(</span><span class="k">struct</span><span class="w"> </span><span class="nc">server</span><span class="w"> </span><span class="o">*</span><span class="n">serv</span><span class="p">)</span> <span class="p">{</span> <span class="p">}</span> <span class="kt">void</span> <span class="nf">fe_userlist_insert</span><span class="w"> </span><span class="p">(</span><span class="k">struct</span><span class="w"> </span><span class="nc">session</span><span class="w"> </span><span class="o">*</span><span class="n">sess</span><span class="p">,</span><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">User</span><span class="w"> </span><span class="o">*</span><span class="n">newuser</span><span class="p">,</span><span class="w"> </span><span class="n">gboolean</span><span class="w"> </span><span class="n">sel</span><span class="p">)</span> <span class="p">{</span> <span class="p">}</span> <span class="kt">int</span> <span class="nf">fe_userlist_remove</span><span class="w"> </span><span class="p">(</span><span class="k">struct</span><span class="w"> </span><span class="nc">session</span><span class="w"> </span><span class="o">*</span><span class="n">sess</span><span class="p">,</span><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">User</span><span class="w"> </span><span class="o">*</span><span class="n">user</span><span class="p">)</span> <span class="p">{</span> <span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span> <span class="p">}</span> <span class="kt">void</span> <span class="nf">fe_userlist_rehash</span><span class="w"> </span><span class="p">(</span><span class="k">struct</span><span class="w"> </span><span class="nc">session</span><span class="w"> </span><span class="o">*</span><span class="n">sess</span><span class="p">,</span><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">User</span><span class="w"> </span><span class="o">*</span><span class="n">user</span><span class="p">)</span> <span class="p">{</span> <span class="p">}</span> <span class="kt">void</span> <span class="nf">fe_userlist_numbers</span><span class="w"> </span><span class="p">(</span><span class="k">struct</span><span class="w"> </span><span class="nc">session</span><span class="w"> </span><span class="o">*</span><span class="n">sess</span><span class="p">)</span> <span class="p">{</span> <span class="p">}</span> <span class="kt">void</span> <span class="nf">fe_userlist_clear</span><span class="w"> </span><span class="p">(</span><span class="k">struct</span><span class="w"> </span><span class="nc">session</span><span class="w"> </span><span class="o">*</span><span class="n">sess</span><span class="p">)</span> <span class="p">{</span> <span class="p">}</span> <span class="kt">void</span> <span class="nf">fe_userlist_set_selected</span><span class="w"> </span><span class="p">(</span><span class="k">struct</span><span class="w"> </span><span class="nc">session</span><span class="w"> </span><span class="o">*</span><span class="n">sess</span><span class="p">)</span> <span class="p">{</span> <span class="p">}</span> <span class="kt">void</span> <span class="nf">fe_dcc_add</span><span class="w"> </span><span class="p">(</span><span class="k">struct</span><span class="w"> </span><span class="nc">DCC</span><span class="w"> </span><span class="o">*</span><span class="n">dcc</span><span class="p">)</span> <span class="p">{</span> <span class="p">}</span> <span class="kt">void</span> <span class="nf">fe_dcc_update</span><span class="w"> </span><span class="p">(</span><span class="k">struct</span><span class="w"> </span><span class="nc">DCC</span><span class="w"> </span><span class="o">*</span><span class="n">dcc</span><span class="p">)</span> <span class="p">{</span> <span class="p">}</span> <span class="kt">void</span> <span class="nf">fe_dcc_remove</span><span class="w"> </span><span class="p">(</span><span class="k">struct</span><span class="w"> </span><span class="nc">DCC</span><span class="w"> </span><span class="o">*</span><span class="n">dcc</span><span class="p">)</span> <span class="p">{</span> <span class="p">}</span> <span class="kt">void</span> <span class="nf">fe_clear_channel</span><span class="w"> </span><span class="p">(</span><span class="k">