# SOME DESCRIPTIVE TITLE.
# This file is put in the public domain.
# 
# Translators:
# Claudio Arseni <claudio.arseni@gmail.com>, 2013.
# Eros Palberti - Fabio Viola : How-Tux Team <admin@how-tux.com>, 2006.
msgid ""
msgstr ""
"Project-Id-Version: HexChat\n"
"Report-Msgid-Bugs-To: www.hexchat.org\n"
"POT-Creation-Date: 2013-03-28 23:54+0100\n"
"PO-Revision-Date: 2013-03-28 23:04+0000\n"
"Last-Translator: bviktor <bviktor@hexchat.org>\n"
"Language-Team: Italian (http://www.transifex.com/projects/p/hexchat/language/it/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: it\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"

#: src/common/cfgfiles.c:746
msgid "I'm busy"
msgstr "Sono occupato"

#: src/common/cfgfiles.c:773
msgid "Leaving"
msgstr "Sto andando via"

#: src/common/cfgfiles.c:834
msgid ""
"* Running IRC as root is stupid! You should\n"
"  create a User Account and use that to login.\n"
msgstr "* Eseguire IRC come l'utente root non è consigliato.\n  È preferibile creare un account utente\n  e utilizzare tale utente per effettuare l'accesso.\n"

#: src/common/dcc.c:81
msgid "Waiting"
msgstr "In attesa"

#: src/common/dcc.c:82
msgid "Active"
msgstr "Attivo"

#: src/common/dcc.c:83
msgid "Failed"
msgstr "Non riuscito"

#: src/common/dcc.c:84
msgid "Done"
msgstr "Completato"

#: src/common/dcc.c:85 src/fe-gtk/menu.c:943
msgid "Connect"
msgstr "Connetti"

#: src/common/dcc.c:86
msgid "Aborted"
msgstr "Interrotto"

#: src/common/dcc.c:1885 src/common/outbound.c:2539
#, c-format
msgid "Cannot access %s\n"
msgstr "Impossibile accedere a %s\n"

#: src/common/dcc.c:1886 src/common/text.c:1302 src/common/text.c:1340
#: src/common/text.c:1351 src/common/text.c:1358 src/common/text.c:1371
#: src/common/text.c:1388 src/common/text.c:1488 src/common/util.c:358
msgid "Error"
msgstr "Errore"

#: src/common/dcc.c:2364
#, c-format
msgid "%s is offering \"%s\". Do you want to accept?"
msgstr "%s sta offrendo «%s». Accettare?"

#: src/common/dcc.c:2579
msgid "No active DCCs\n"
msgstr "Nessun DCC attivo\n"

#: src/common/hexchat.c:842
msgid "_Open Dialog Window"
msgstr "_Apri finestra di dialogo"

#: src/common/hexchat.c:843
msgid "_Send a File"
msgstr "_Invia un file"

#: src/common/hexchat.c:844
msgid "_User Info (WhoIs)"
msgstr "Informazioni _utente (WHOIS)"

#: src/common/hexchat.c:845
msgid "_Add to Friends List"
msgstr "A_ggiungi all'elenco degli amici"

#: src/common/hexchat.c:846
msgid "_Ignore"
msgstr "_Ignora"

#: src/common/hexchat.c:847
msgid "O_perator Actions"
msgstr "Azioni dell'o_peratore"

#: src/common/hexchat.c:849
msgid "Give Ops"
msgstr "Dai lo stato di operatore"

#: src/common/hexchat.c:850
msgid "Take Ops"
msgstr "Togli lo stato di operatore"

#: src/common/hexchat.c:851
msgid "Give Voice"
msgstr "Dai la parola"

#: src/common/hexchat.c:852
msgid "Take Voice"
msgstr "Togli la parola"

#: src/common/hexchat.c:854
msgid "Kick/Ban"
msgstr "Kick/Ban"

#: src/common/hexchat.c:855 src/common/hexchat.c:892
msgid "Kick"
msgstr "Kick"

#: src/common/hexchat.c:856 src/common/hexchat.c:857 src/common/hexchat.c:858
#: src/common/hexchat.c:859 src/common/hexchat.c:860 src/common/hexchat.c:891
#: src/fe-gtk/banlist.c:60
msgid "Ban"
msgstr "Ban"

#: src/common/hexchat.c:861 src/common/hexchat.c:862 src/common/hexchat.c:863
#: src/common/hexchat.c:864
msgid "KickBan"
msgstr "KickBan"

#: src/common/hexchat.c:874
msgid "Leave Channel"
msgstr "Esci dal canale"

#: src/common/hexchat.c:875
msgid "Join Channel..."
msgstr "Entra nel canale..."

#: src/common/hexchat.c:876 src/fe-gtk/menu.c:1336
msgid "Enter Channel to Join:"
msgstr "Digitare il canale in cui entrare:"

#: src/common/hexchat.c:877
msgid "Server Links"
msgstr "Collegamenti ai server"

#: src/common/hexchat.c:878
msgid "Ping Server"
msgstr "Ping server"

#: src/common/hexchat.c:879
msgid "Hide Version"
msgstr "Nascondi versione"

#: src/common/hexchat.c:889
msgid "Op"
msgstr "Op"

#: src/common/hexchat.c:890
msgid "DeOp"
msgstr "DeOp"

#: src/common/hexchat.c:893
msgid "bye"
msgstr "ciao"

#: src/common/hexchat.c:894
#, c-format
msgid "Enter reason to kick %s:"
msgstr "Motivo per il kick a %s:"

#: src/common/hexchat.c:895
msgid "Sendfile"
msgstr "Invia file"

#: src/common/hexchat.c:896
msgid "Dialog"
msgstr "Dialogo"

#: src/common/hexchat.c:905
msgid "WhoIs"
msgstr "WhoIs"

#: src/common/hexchat.c:906
msgid "Send"
msgstr "Invia"

#: src/common/hexchat.c:907
msgid "Chat"
msgstr "Chat"

#: src/common/hexchat.c:908 src/fe-gtk/banlist.c:778
#: src/fe-gtk/ignoregui.c:400 src/fe-gtk/urlgrab.c:213
msgid "Clear"
msgstr "Pulisci"

#: src/common/hexchat.c:909
msgid "Ping"
msgstr "Ping"

#: src/common/ignore.c:126 src/common/ignore.c:130 src/common/ignore.c:134
#: src/common/ignore.c:138 src/common/ignore.c:142 src/common/ignore.c:146
#: src/common/ignore.c:150
msgid "YES  "
msgstr "SI  "

#: src/common/ignore.c:128 src/common/ignore.c:132 src/common/ignore.c:136
#: src/common/ignore.c:140 src/common/ignore.c:144 src/common/ignore.c:148
#: src/common/ignore.c:152
msgid "NO   "
msgstr "NO   "

#: src/common/ignore.c:383
#, c-format
msgid "You are being CTCP flooded from %s, ignoring %s\n"
msgstr "Hai ricevuto un flood CTCP da parte di %s. %s viene ignorato\n"

#: src/common/ignore.c:408
#, c-format
msgid "You are being MSG flooded from %s, setting gui_autoopen_dialog OFF.\n"
msgstr ""

#: src/common/notify.c:478
#, c-format
msgid "  %-20s online\n"
msgstr "  %-20s in linea\n"

#: src/common/notify.c:480
#, c-format
msgid "  %-20s offline\n"
msgstr "  %-20s non in linea\n"

#: src/common/outbound.c:72
msgid "No channel joined. Try /join #<channel>\n"
msgstr "Alcun canale aperto. Provare /join #<canale>\n"

#: src/common/outbound.c:78
msgid "Not connected. Try /server <host> [<port>]\n"
msgstr "Non connessi. Provare /server <host> [<porta>]\n"

#: src/common/outbound.c:281
#, c-format
msgid "Server %s already exists on network %s.\n"
msgstr "Il server %s esiste già sulla rete %s.\n"

#: src/common/outbound.c:287
#, c-format
msgid "Added server %s to network %s.\n"
msgstr "Server %s aggiunto alla rete %s.\n"

#: src/common/outbound.c:373
#, c-format
msgid "Already marked away: %s\n"
msgstr "Già impostato come assente: %s\n"

#: src/common/outbound.c:446
msgid "Already marked back.\n"
msgstr "Già tolto lo stato di assenza.\n"

#: src/common/outbound.c:1812
msgid "I need /bin/sh to run!\n"
msgstr "È necessario /bin/sh per l'esecuzione.\n"

#: src/common/outbound.c:2203
msgid "Commands Available:"
msgstr "Comandi disponibili:"

#: src/common/outbound.c:2217
msgid "User defined commands:"
msgstr "Comandi definiti dall'utente:"

#: src/common/outbound.c:2233
msgid "Plugin defined commands:"
msgstr "Plugin definiti dall'utente:"

#: src/common/outbound.c:2244
msgid "Type /HELP <command> for more information, or /HELP -l"
msgstr "Digitare /HELP <comando> per ulteriori informazioni, oppure /HELP -l"

#: src/common/outbound.c:2328
#, c-format
msgid "Unknown arg '%s' ignored."
msgstr "Argomento sconosciuto «%s» ignorato."

#: src/common/outbound.c:3329
msgid "No such plugin found.\n"
msgstr "Plugin non trovato.\n"

#: src/common/outbound.c:3334 src/fe-gtk/plugingui.c:190
msgid "That plugin is refusing to unload.\n"
msgstr "Impossibile disattivare questo plugin.\n"

#: src/common/outbound.c:3609
msgid "ADDBUTTON <name> <action>, adds a button under the user-list"
msgstr "ADDBUTTON <nome> <azione>, aggiunge un pulsante nell'elenco utenti"

#: src/common/outbound.c:3610
msgid ""
"ADDSERVER <NewNetwork> <newserver/6667>, adds a new network with a new "
"server to the network list"
msgstr "ADDSERVER <NuovaRete> <nuovo_server/6667>, aggiunge una nuova rete con un nuovo server all'elenco delle reti"

#: src/common/outbound.c:3612
msgid "ALLCHAN <cmd>, sends a command to all channels you're in"
msgstr "ALLCHAN <cmd>, invia un comando a tutti i canali in cui si è presenti"

#: src/common/outbound.c:3614
msgid "ALLCHANL <cmd>, sends a command to all channels on the current server"
msgstr "ALLCHANL <cmd>, invia un comando a tutti i canali del server attuale"

#: src/common/outbound.c:3616
msgid "ALLSERV <cmd>, sends a command to all servers you're in"
msgstr "ALLSERV <cmd>, invia un comando a tutti i server ai quali si è collegati"

#: src/common/outbound.c:3617
msgid "AWAY [<reason>], sets you away"
msgstr "AWAY [<motivo>], cambia il tuo stato in assente"

#: src/common/outbound.c:3618
msgid "BACK, sets you back (not away)"
msgstr "BACK, imposta lo stato di presenza"

#: src/common/outbound.c:3620
msgid ""
"BAN <mask> [<bantype>], 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 <mask> [<tipo_di_ban>], allontana dal canale attuale tutti coloro che corrispondono alla maschera di rete specificata. Se sono già connessi al canale, questo non li espelle (kick). Bisogna essere operatore."

#: src/common/outbound.c:3621
msgid "CHANOPT [-quiet] <variable> [<value>]"
msgstr "CHANOPT [-quiet] <variabile> [<valore>]"

#: src/common/outbound.c:3622
msgid ""
"CHARSET [<encoding>], get or set the encoding used for the current "
"connection"
msgstr "CHARSET [<codifica>], rileva o imposta la codifica usata per la connessione attuale"

#: src/common/outbound.c:3623
msgid "CLEAR [ALL|HISTORY], Clears the current text window or command history"
msgstr "CLEAR [ALL|HISTORY], ripulisce la finestra attuale o la cronologia dei comandi"

#: src/common/outbound.c:3624
msgid "CLOSE, Closes the current window/tab"
msgstr "CLOSE, chiude la finestra/scheda attuale"

#: src/common/outbound.c:3627
msgid "COUNTRY [-s] <code|wildcard>, finds a country code, eg: au = australia"
msgstr "COUNTRY [-s] <codice|wildcard>, cerca un codice paese, per es.: it = Italia"

#: src/common/outbound.c:3629
msgid ""
"CTCP <nick> <message>, send the CTCP message to nick, common messages are "
"VERSION and USERINFO"
msgstr "CTCP <soprannome> <messaggio>, invia il messaggio CTCP al soprannome indicato, messaggi comuni sono VERSION e USERINFO"

#: src/common/outbound.c:3631
msgid ""
"CYCLE [<channel>], parts the current or given channel and immediately "
"rejoins"
msgstr "CYCLE [<canale>], abbandona il canale attuale o quello dato e vi rientra immediatamente"

#: src/common/outbound.c:3633
msgid ""
"\n"
"DCC GET <nick>                      - accept an offered file\n"
"DCC SEND [-maxcps=#] <nick> [file]  - send a file to someone\n"
"DCC PSEND [-maxcps=#] <nick> [file] - send a file using passive mode\n"
"DCC LIST                            - show DCC list\n"
"DCC CHAT <nick>                     - offer DCC CHAT to someone\n"
"DCC PCHAT <nick>                    - offer DCC CHAT using passive mode\n"
"DCC CLOSE <type> <nick> <file>         example:\n"
"         /dcc close send johnsmith file.tar.gz"
msgstr "\nDCC GET <soprannome>                      - accetta un file offerto\nDCC SEND [-maxcps=#] <soprannome> [file]  - invia un file a qualcuno\nDCC PSEND [-maxcps=#] <soprannome> [file] - invia un file utilizzando la modalità passiva\nDCC LIST                                  - visualizza l'elenco dei collegamenti DCC\nDCC CHAT <soprannome>                     - propone una CHAT DCC a qualcuno\nDCC PCHAT <soprannome>                    - propone una CHAT DCC utilizzando la modalità passiva\nDCC CLOSE <tipo> <soprannome> <file>        per esempio:\n         /dcc close send johnsmith file.tar.gz"

#: src/common/outbound.c:3645
msgid ""
"DEHOP <nick>, removes chanhalf-op status from the nick on the current "
"channel (needs chanop)"
msgstr "DEHOP <soprannome>, rimuove lo stato di semi-operatore sul canale attuale al soprannome indicato (bisogna essere operatore)"

#: src/common/outbound.c:3647
msgid "DELBUTTON <name>, deletes a button from under the user-list"
msgstr "DELBUTTON <nome>, elimina un pulsante pulsante dall'elenco utenti"

#: src/common/outbound.c:3649
msgid ""
"DEOP <nick>, removes chanop status from the nick on the current channel "
"(needs chanop)"
msgstr "DEOP <soprannome>, rimuove lo stato di operatore sul canale attuale al soprannome indicato (bisogna essere operatore)"

#: src/common/outbound.c:3651
msgid ""
"DEVOICE <nick>, removes voice status from the nick on the current channel "
"(needs chanop)"
msgstr "DEVOICE <soprannome>, toglie la parola al soprannome indicato sul canale attuale (bisogna essere operatore)"

#: src/common/outbound.c:3652
msgid "DISCON, Disconnects from server"
msgstr "DISCON, disconnette dal server"

#: src/common/outbound.c:3653
msgid "DNS <nick|host|ip>, Finds a users IP number"
msgstr "DNS <soprannome|host|ip>, trova l'indirizzo IP di un utente"

#: src/common/outbound.c:3654
msgid "ECHO <text>, Prints text locally"
msgstr "ECHO <testo>, stampa un testo localmente"

#: src/common/outbound.c:3657
msgid ""
"EXEC [-o] <command>, 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] <comando>, esegue il comando. Se si utilizza l'opzione -o, l'output è inviato al canale attuale, altrimenti è stampato nell'area di testo attuale"

#: src/common/outbound.c:3659
msgid "EXECCONT, sends the process SIGCONT"
msgstr "EXECCONT, invia un SIGCONT al processo"

#: src/common/outbound.c:3662
msgid ""
"EXECKILL [-9], kills a running exec in the current session. If -9 is given "
"the process is SIGKILL'ed"
msgstr "EXECKILL [-9], termina un'istanza exec nella sessione attuale. Se è specificato -9, il processo è ucciso con SIGKILL"

#: src/common/outbound.c:3664
msgid "EXECSTOP, sends the process SIGSTOP"
msgstr "EXECSTOP, invia un SIGSTOP al processo"

#: src/common/outbound.c:3665
msgid "EXECWRITE, sends data to the processes stdin"
msgstr "EXECWRITE, invia dati allo stdin del processo"

#: src/common/outbound.c:3669
msgid "EXPORTCONF, exports HexChat settings"
msgstr "EXPORTCONF, esporta le impostazioni di HexChat"

#: src/common/outbound.c:3672
msgid "FLUSHQ, flushes the current server's send queue"
msgstr "FLUSHQ, svuota la coda di invio del server attuale"

#: src/common/outbound.c:3674
msgid "GATE <host> [<port>], proxies through a host, port defaults to 23"
msgstr "GATE <host> [<porta>], utilizza un host come proxy, la porta predefinita è la 23"

#: src/common/outbound.c:3678
msgid "GHOST <nick> [password], Kills a ghosted nickname"
msgstr "GHOST <soprannome> [password], uccide un soprannome fantasma"

#: src/common/outbound.c:3683
msgid "HOP <nick>, gives chanhalf-op status to the nick (needs chanop)"
msgstr "HOP <nick>, dà lo stato di semi-operatore al soprannome (bisogna essere operatore)"

#: src/common/outbound.c:3684
msgid "ID <password>, identifies yourself to nickserv"
msgstr "ID <password>, ti identifica presso il nickserv"

#: src/common/outbound.c:3686
msgid ""
"IGNORE <mask> <types..> <options..>\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 <maschera> <tipi..> <opzioni..>\n    maschera - host maschera da ignorare, per es.: *!*@*.aol.com\n    tipi - tipi di dati da ignorare, uno o più tra:\n              PRIV, CHAN, NOTI, CTCP, DCC, INVI, ALL\n    opzioni - NOSAVE, QUIET"

#: src/common/outbound.c:3693
msgid ""
"INVITE <nick> [<channel>], invites someone to a channel, by default the "
"current channel (needs chanop)"
msgstr "INVITE <soprannome> [<canale>], invita qualcuno in un canale, la regola predefinita è per il canale attuale (bisogna essere operatore)"

#: src/common/outbound.c:3694
msgid "JOIN <channel>, joins the channel"
msgstr "JOIN <canale>, entra nel canale"

#: src/common/outbound.c:3696
msgid "KICK <nick>, kicks the nick from the current channel (needs chanop)"
msgstr "KICK <soprannome>, espelle il soprannome dal canale attuale (bisogna essere operatore)"

#: src/common/outbound.c:3698
msgid ""
"KICKBAN <nick>, bans then kicks the nick from the current channel (needs "
"chanop)"
msgstr "KICKBAN <soprannome>, allontana (ban) e poi espelle (kick) il soprannome dal canale attuale (bisogna essere operatore)"

#: src/common/outbound.c:3701
msgid "LAGCHECK, forces a new lag check"
msgstr "LAGCHECK, forza un nuovo controllo del ritardo (lag)"

#: src/common/outbound.c:3703
msgid ""
"LASTLOG [-h] [-m] [-r] [--] <string>, 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 "LASTLOG [-h] [-m] [-r] [--] <stringa>, cerca una stringa nel buffer\nUsare -h per evidenziare le stringhe trovate\nUsare -m quando la stringa è un'espressione regolare\nUsare -- (doppio trattino) per terminare le opzioni quando si cerca, per esempio, la stringa «-r»"

#: src/common/outbound.c:3709
msgid "LOAD [-e] <file>, loads a plugin or script"
msgstr "LOAD [-e] <file>, carica un plugin o uno script"

#: src/common/outbound.c:3712
msgid ""
"MDEHOP, Mass deop's all chanhalf-ops in the current channel (needs chanop)"
msgstr "MDEHOP, toglie lo stato a tutti i semi-operatori del canale attuale (bisogna essere operatore)"

#: src/common/outbound.c:3714
msgid "MDEOP, Mass deop's all chanops in the current channel (needs chanop)"
msgstr "MDEOP, toglie lo stato a tutti gli operatori del canale attuale (bisogna essere operatore)"

#: src/common/outbound.c:3716
msgid ""
"ME <action>, sends the action to the current channel (actions are written in"
" the 3rd person, like /me jumps)"
msgstr "ME <azione>, invia l'azione al canale attuale (le azioni sono scritte in terza persona, es. /me saluta tutti)"

#: src/common/outbound.c:3720
msgid ""
"MKICK, Mass kicks everyone except you in the current channel (needs chanop)"
msgstr "MKICK, espelle dal canale attuale tutti gli utenti tranne te (bisogna essere operatore)"

#: src/common/outbound.c:3723
msgid "MOP, Mass op's all users in the current channel (needs chanop)"
msgstr "MOP, rende operatori tutti gli utenti nel canale attuale (bisogna essere operatore)"

#: src/common/outbound.c:3724
msgid "MSG <nick> <message>, sends a private message"
msgstr "MSG <soprannome> <messaggio>, invia un messaggio privato"

#: src/common/outbound.c:3727
msgid "NAMES, Lists the nicks on the current channel"
msgstr "NAMES, elenca i soprannomi presenti nel canale attuale"

#: src/common/outbound.c:3729
msgid "NCTCP <nick> <message>, Sends a CTCP notice"
msgstr "NCTCP <soprannome> <messaggio>, invia una notifica CTCP"

#: src/common/outbound.c:3730
msgid "NEWSERVER [-noconnect] <hostname> [<port>]"
msgstr "NEWSERVER [-noconnect] <nome host> [<porta>]"

#: src/common/outbound.c:3731
msgid "NICK <nickname>, sets your nick"
msgstr "NICK <soprannome>, imposta il tuo soprannome"

#: src/common/outbound.c:3734
msgid ""
"NOTICE <nick/channel> <message>, sends a notice. Notices are a type of "
"message that should be auto reacted to"
msgstr "NOTICE <soprannome/canale> <messaggio>, invia una notifica. Le notifiche sono un tipo di messaggio che dovrebbe ottenere una reazione automatica"

#: src/common/outbound.c:3736
msgid ""
"NOTIFY [-n network1[,network2,...]] [<nick>], displays your notif<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">&lt;stdio.h&gt;</span>
<span class="cp">#include</span><span class="w"> </span><span class="cpf">&lt;stdlib.h&gt;</span>
<span class="cp">#include</span><span class="w"> </span><span class="cpf">&lt;string.h&gt;</span>

<span class="cp">#include</span><span class="w"> </span><span class="cpf">&quot;hexchat.h&quot;</span>
<span class="cp">#include</span><span class="w"> </span><span class="cpf">&quot;modes.h&quot;</span>
<span class="cp">#include</span><span class="w"> </span><span class="cpf">&quot;fe.h&quot;</span>
<span class="cp">#include</span><span class="w"> </span><span class="cpf">&quot;notify.h&quot;</span>
<span class="cp">#include</span><span class="w"> </span><span class="cpf">&quot;tree.h&quot;</span>
<span class="cp">#include</span><span class="w"> </span><span class="cpf">&quot;hexchatc.h&quot;</span>
<span class="cp">#include</span><span class="w"> </span><span class="cpf">&quot;util.h&quot;</span>


<span class="kt">int</span>
<span class="nf">nick_cmp_az_ops</span><span class="w"> </span><span class="p">(</span><span class="n">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="k">struct</span><span class="w"> </span><span class="nc">User</span><span class="w"> </span><span class="o">*</span><span class="n">user1</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">user2</span><span class="p">)</span>
<span class="p">{</span>
<span class="w">	</span><span class="kt">unsigned</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">access1</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">user1</span><span class="o">-&gt;</span><span class="n">access</span><span class="p">;</span>
<span class="w">	</span><span class="kt">unsigned</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">access2</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">user2</span><span class="o">-&gt;</span><span class="n">access</span><span class="p">;</span>
<span class="w">	</span><span class="kt">int</span><span class="w"> </span><span class="n">pos</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">access1</span><span class="w"> </span><span class="o">!=</span><span class="w"> </span><span class="n">access2</span><span class="p">)</span>
<span class="w">	</span><span class="p">{</span>
<span class="w">		</span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="n">pos</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">pos</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="n">USERACCESS_SIZE</span><span class="p">;</span><span class="w"> </span><span class="n">pos</span><span class="o">++</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">access1</span><span class="o">&amp;</span><span class="p">(</span><span class="mi">1</span><span class="o">&lt;&lt;</span><span class="n">pos</span><span class="p">))</span><span class="w"> </span><span class="o">&amp;&amp;</span><span class="w"> </span><span class="p">(</span><span class="n">access2</span><span class="o">&amp;</span><span class="p">(</span><span class="mi">1</span><span class="o">&lt;&lt;</span><span class="n">pos</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">if</span><span class="w"> </span><span class="p">((</span><span class="n">access1</span><span class="o">&amp;</span><span class="p">(</span><span class="mi">1</span><span class="o">&lt;&lt;</span><span class="n">pos</span><span class="p">))</span><span class="w"> </span><span class="o">&amp;&amp;</span><span class="w"> </span><span class="o">!</span><span class="p">(</span><span class="n">access2</span><span class="o">&amp;</span><span class="p">(</span><span class="mi">1</span><span class="o">&lt;&lt;</span><span class="n">pos</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="k">if</span><span class="w"> </span><span class="p">(</span><span class="o">!</span><span class="p">(</span><span class="n">access1</span><span class="o">&amp;</span><span class="p">(</span><span class="mi">1</span><span class="o">&lt;&lt;</span><span class="n">pos</span><span class="p">))</span><span class="w"> </span><span class="o">&amp;&amp;</span><span class="w"> </span><span class="p">(</span><span class="n">access2</span><span class="o">&amp;</span><span class="p">(</span><span class="mi">1</span><span class="o">&lt;&lt;</span><span class="n">pos</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="p">}</span>

<span class="w">	</span><span class="k">return</span><span class="w"> </span><span class="n">serv</span><span class="o">-&gt;</span><span class="n">p_cmp</span><span class="w"> </span><span class="p">(</span><span class="n">user1</span><span class="o">-&gt;</span><span class="n">nick</span><span class="p">,</span><span class="w"> </span><span class="n">user2</span><span class="o">-&gt;</span><span class="n">nick</span><span class="p">);</span>
<span class="p">}</span>

<span class="kt">int</span>
<span class="nf">nick_cmp_alpha</span><span class="w"> </span><span class="p">(</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">user1</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">user2</span><span class="p">,</span><span class="w"> </span><span class="n">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="n">serv</span><span class="o">-&gt;</span><span class="n">p_cmp</span><span class="w"> </span><span class="p">(</span><span class="n">user1</span><span class="o">-&gt;</span><span class="n">nick</span><span class="p">,</span><span class="w"> </span><span class="n">user2</span><span class="o">-&gt;</span><span class="n">nick</span><span class="p">);</span>
<span class="p">}</span>

<span class="cm">/*</span>
<span class="cm"> insert name in appropriate place in linked list. Returns row number or:</span>
<span class="cm">  -1: duplicate</span>
<span class="cm">*/</span>

<span class="k">static</span><span class="w"> </span><span class="kt">int</span>
<span class="nf">userlist_insertname</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="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="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">-&gt;</span><span class="n">usertree</span><span class="p">)</span>
<span class="w">	</span><span class="p">{</span>
<span class="w">		</span><span class="n">sess</span><span class="o">-&gt;</span><span class="n">usertree</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">tree_new</span><span class="w"> </span><span class="p">((</span><span class="n">tree_cmp_func</span><span class="w"> </span><span class="o">*</span><span class="p">)</span><span class="n">nick_cmp_alpha</span><span class="p">,</span><span class="w"> </span><span class="n">sess</span><span class="o">-&gt;</span><span class="n">server</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">tree_insert</span><span class="w"> </span><span class="p">(</span><span class="n">sess</span><span class="o">-&gt;</span><span class="n">usertree</span><span class="p">,</span><span class="w"> </span><span class="n">newuser</span><span class="p">);</span>
<span class="p">}</span>

<span class="kt">void</span>
<span class="nf">userlist_set_away</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">nick</span><span class="p">,</span><span class="w"> </span><span class="kt">unsigned</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">away</span><span class="p">)</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="w">	</span><span class="n">user</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">userlist_find</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">nick</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">user</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">user</span><span class="o">-&gt;</span><span class="n">away</span><span class="w"> </span><span class="o">!=</span><span class="w"> </span><span class="n">away</span><span class="p">)</span>
<span class="w">		</span><span class="p">{</span>
<span class="w">			</span><span class="n">user</span><span class="o">-&gt;</span><span class="n">away</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">away</span><span class="p">;</span>
<span class="w">			</span><span class="cm">/* rehash GUI */</span>
<span class="w">			</span><span class="n">fe_userlist_rehash</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">user</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">away</span><span class="p">)</span>
<span class="w">				</span><span class="n">fe_userlist_update</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">user</span><span class="p">);</span>
<span class="w">		</span><span class="p">}</span>
<span class="w">	</span><span class="p">}</span>
<span class="p">}</span>

<span class="kt">void</span>
<span class="nf">userlist_set_account</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">nick</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">account</span><span class="p">)</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="w">	</span><span class="n">user</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">userlist_find</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">nick</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">user</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">user</span><span class="o">-&gt;</span><span class="n">account</span><span class="p">);</span>
<span class="w">			</span>
<span class="w">		</span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">strcmp</span><span class="w"> </span><span class="p">(</span><span class="n">account</span><span class="p">,</span><span class="w"> </span><span class="s">&quot;*&quot;</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">user</span><span class="o">-&gt;</span><span class="n">account</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="k">else</span>
<span class="w">			</span><span class="n">user</span><span class="o">-&gt;</span><span class="n">account</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">account</span><span class="p">);</span>
<span class="w">			</span>
<span class="w">		</span><span class="cm">/* gui doesnt currently reflect login status, maybe later</span>
<span class="cm">		fe_userlist_rehash (sess, user); */</span>
<span class="w">	</span><span class="p">}</span>
<span class="p">}</span>

<span class="kt">int</span>
<span class="nf">userlist_add_hostname</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">nick</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">hostname</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">realname</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">servername</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">account</span><span class="p">,</span><span class="w"> </span><span class="kt">unsigned</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">away</span><span class="p">)</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="w">	</span><span class="n">gboolean</span><span class="w"> </span><span class="n">do_rehash</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">user</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">userlist_find</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">nick</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">user</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">hostname</span><span class="w"> </span><span class="o">&amp;&amp;</span><span class="w"> </span><span class="p">(</span><span class="o">!</span><span class="n">user</span><span class="o">-&gt;</span><span class="n">hostname</span><span class="w"> </span><span class="o">||</span><span class="w"> </span><span class="n">strcmp</span><span class="p">(</span><span class="n">user</span><span class="o">-&gt;</span><span class="n">hostname</span><span class="p">,</span><span class="w"> </span><span class="n">hostname</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">prefs</span><span class="p">.</span><span class="n">hex_gui_ulist_show_hosts</span><span class="p">)</span>
<span class="w">				</span><span class="n">do_rehash</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_free</span><span class="w"> </span><span class="p">(</span><span class="n">user</span><span class="o">-&gt;</span><span class="n">hostname</span><span class="p">);</span>
<span class="w">			</span><span class="n">user</span><span class="o">-&gt;</span><span class="n">hostname</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">hostname</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="o">!</span><span class="n">user</span><span class="o">-&gt;</span><span class="n">realname</span><span class="w"> </span><span class="o">&amp;&amp;</span><span class="w"> </span><span class="n">realname</span><span class="w"> </span><span class="o">&amp;&amp;</span><span class="w"> </span><span class="o">*</span><span class="n">realname</span><span class="p">)</span>
<span class="w">			</span><span class="n">user</span><span class="o">-&gt;</span><span class="n">realname</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">realname</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">user</span><span class="o">-&gt;</span><span class="n">servername</span><span class="w"> </span><span class="o">&amp;&amp;</span><span class="w"> </span><span class="n">servername</span><span class="p">)</span>
<span class="w">			</span><span class="n">user</span><span class="o">-&gt;</span><span class="n">servername</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">servername</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">user</span><span class="o">-&gt;</span><span class="n">account</span><span class="w"> </span><span class="o">&amp;&amp;</span><span class="w"> </span><span class="n">account</span><span class="w"> </span><span class="o">&amp;&amp;</span><span class="w"> </span><span class="n">strcmp</span><span class="w"> </span><span class="p">(</span><span class="n">account</span><span class="p">,</span><span class="w"> </span><span class="s">&quot;0&quot;</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">user</span><span class="o">-&gt;</span><span class="n">account</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">account</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">away</span><span class="w"> </span><span class="o">!=</span><span class="w"> </span><span class="mh">0xff</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">user</span><span class="o">-&gt;</span><span class="n">away</span><span class="w"> </span><span class="o">!=</span><span class="w"> </span><span class="n">away</span><span class="p">)</span>
<span class="w">				</span><span class="n">do_rehash</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">user</span><span class="o">-&gt;</span><span class="n">away</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">away</span><span class="p">;</span>
<span class="w">		</span><span class="p">}</span>

<span class="w">		</span><span class="n">fe_userlist_update</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">user</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">do_rehash</span><span class="p">)</span>
<span class="w">			</span><span class="n">fe_userlist_rehash</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">user</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="k">return</span><span class="w"> </span><span class="mi">0</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">free_user</span><span class="w"> </span><span class="p">(</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="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">g_free</span><span class="w"> </span><span class="p">(</span><span class="n">user</span><span class="o">-&gt;</span><span class="n">realname</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">user</span><span class="o">-&gt;</span><span class="n">hostname</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">user</span><span class="o">-&gt;</span><span class="n">servername</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">user</span><span class="o">-&gt;</span><span class="n">account</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">user</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="p">}</span>

<span class="kt">void</span>
<span class="nf">userlist_free</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">tree_foreach</span><span class="w"> </span><span class="p">(</span><span class="n">sess</span><span class="o">-&gt;</span><span class="n">usertree</span><span class="p">,</span><span class="w"> </span><span class="p">(</span><span class="n">tree_traverse_func</span><span class="w"> </span><span class="o">*</span><span class="p">)</span><span class="n">free_user</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">tree_destroy</span><span class="w"> </span><span class="p">(</span><span class="n">sess</span><span class="o">-&gt;</span><span class="n">usertree</span><span class="p">);</span>

<span class="w">	</span><span class="n">sess</span><span class="o">-&gt;</span><span class="n">usertree</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">sess</span><span class="o">-&gt;</span><span class="n">me</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">sess</span><span class="o">-&gt;</span><span class="n">ops</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">sess</span><span class="o">-&gt;</span><span class="n">hops</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">sess</span><span class="o">-&gt;</span><span class="n">voices</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">sess</span><span class="o">-&gt;</span><span class="n">total</span><span class="w"> </span><span class="o">=</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">userlist_clear</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">fe_userlist_clear</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">userlist_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">fe_userlist_numbers</span><span class="w"> </span><span class="p">(</span><span class="n">sess</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">find_cmp</span><span class="w"> </span><span class="p">(</span><span class="k">const</span><span class="w"> </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="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="w"> </span><span class="n">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="n">serv</span><span class="o">-&gt;</span><span class="n">p_cmp</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="n">name</span><span class="p">,</span><span class="w"> </span><span class="n">user</span><span class="o">-&gt;</span><span class="n">nick</span><span class="p">);</span>
<span class="p">}</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">userlist_find</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">const</span><span class="w"> </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="w">	</span><span class="kt">int</span><span class="w"> </span><span class="n">pos</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">sess</span><span class="o">-&gt;</span><span class="n">usertree</span><span class="p">)</span>
<span class="w">		</span><span class="k">return</span><span class="w"> </span><span class="n">tree_find</span><span class="w"> </span><span class="p">(</span><span class="n">sess</span><span class="o">-&gt;</span><span class="n">usertree</span><span class="p">,</span><span class="w"> </span><span class="n">name</span><span class="p">,</span>
<span class="w">								</span><span class="p">(</span><span class="n">tree_cmp_func</span><span class="w"> </span><span class="o">*</span><span class="p">)</span><span class="n">find_cmp</span><span class="p">,</span><span class="w"> </span><span class="n">sess</span><span class="o">-&gt;</span><span class="n">server</span><span class="p">,</span><span class="w"> </span><span class="o">&amp;</span><span class="n">pos</span><span class="p">);</span>

<span class="w">	</span><span class="k">return</span><span class="w"> </span><span class="nb">NULL</span><span class="p">;</span>
<span class="p">}</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">userlist_find_global</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">name</span><span class="p">)</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="w">	</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="w">	</span><span class="n">GSList</span><span class="w"> </span><span class="o">*</span><span class="n">list</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">sess_list</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">list</span><span class="p">)</span>
<span class="w">	</span><span class="p">{</span>
<span class="w">		</span><span class="n">sess</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">(</span><span class="n">session</span><span class="w"> </span><span class="o">*</span><span class="p">)</span><span class="w"> </span><span class="n">list</span><span class="o">-&gt;</span><span class="n">data</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">sess</span><span class="o">-&gt;</span><span class="n">server</span><span class="w"> </span><span class="o">==</span><span class="w"> </span><span class="n">serv</span><span class="p">)</span>
<span class="w">		</span><span class="p">{</span>
<span class="w">			</span><span class="n">user</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">userlist_find</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">name</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">user</span><span class="p">)</span>
<span class="w">				</span><span class="k">return</span><span class="w"> </span><span class="n">user</span><span class="p">;</span>
<span class="w">		</span><span class="p">}</span>
<span class="w">		</span><span class="n">list</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">list</span><span class="o">-&gt;</span><span class="n">next</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="nb">NULL</span><span class="p">;</span>
<span class="p">}</span>

<span class="k">static</span><span class="w"> </span><span class="kt">void</span>
<span class="n">update_counts</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="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="w"> </span><span class="kt">char</span><span class="w"> </span><span class="n">prefix</span><span class="p">,</span>
<span class="w">					</span><span class="kt">int</span><span class="w"> </span><span class="n">level</span><span class="p">,</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">offset</span><span class="p">)</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">prefix</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">&#39;@&#39;</span><span class="p">:</span>
<span class="w">		</span><span class="n">user</span><span class="o">-&gt;</span><span class="n">op</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">level</span><span class="p">;</span>
<span class="w">		</span><span class="n">sess</span><span class="o">-&gt;</span><span class="n">ops</span><span class="w"> </span><span class="o">+=</span><span class="w"> </span><span class="n">offset</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">&#39;%&#39;</span><span class="p">:</span>
<span class="w">		</span><span class="n">user</span><span class="o">-&gt;</span><span class="n">hop</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">level</span><span class="p">;</span>
<span class="w">		</span><span class="n">sess</span><span class="o">-&gt;</span><span class="n">hops</span><span class="w"> </span><span class="o">+=</span><span class="w"> </span><span class="n">offset</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">&#39;+&#39;</span><span class="p">:</span>
<span class="w">		</span><span class="n">user</span><span class="o">-&gt;</span><span class="n">voice</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">level</span><span class="p">;</span>
<span class="w">		</span><span class="n">sess</span><span class="o">-&gt;</span><span class="n">voices</span><span class="w"> </span><span class="o">+=</span><span class="w"> </span><span class="n">offset</span><span class="p">;</span>
<span class="w">		</span><span class="k">break</span><span class="p">;</span>
<span class="w">	</span><span class="p">}</span>
<span class="p">}</span>

<span class="kt">void</span>
<span class="n">userlist_update_mode</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="w"> </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="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="w">	</span><span class="kt">int</span><span class="w"> </span><span class="n">access</span><span class="p">;</span>
<span class="w">	</span><span class="kt">int</span><span class="w"> </span><span class="n">offset</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="kt">int</span><span class="w"> </span><span class="n">level</span><span class="p">;</span>
<span class="w">	</span><span class="kt">int</span><span class="w"> </span><span class="n">pos</span><span class="p">;</span>
<span class="w">	</span><span class="kt">char</span><span class="w"> </span><span class="n">prefix</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="w">	</span><span class="n">user</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">userlist_find</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">name</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">user</span><span class="p">)</span>
<span class="w">		</span><span class="k">return</span><span class="p">;</span>

<span class="w">	</span><span class="cm">/* remove from binary trees, before we loose track of it */</span>
<span class="w">	</span><span class="n">tree_remove</span><span class="w"> </span><span class="p">(</span><span class="n">sess</span><span class="o">-&gt;</span><span class="n">usertree</span><span class="p">,</span><span class="w"> </span><span class="n">user</span><span class="p">,</span><span class="w"> </span><span class="o">&amp;</span><span class="n">pos</span><span class="p">);</span>
<span class="w">	</span><span class="n">fe_userlist_remove</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">user</span><span class="p">);</span>

<span class="w">	</span><span class="cm">/* which bit number is affected? */</span>
<span class="w">	</span><span class="n">access</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">mode_access</span><span class="w"> </span><span class="p">(</span><span class="n">sess</span><span class="o">-&gt;</span><span class="n">server</span><span class="p">,</span><span class="w"> </span><span class="n">mode</span><span class="p">,</span><span class="w"> </span><span class="o">&amp;</span><span class="n">prefix</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">sign</span><span class="w"> </span><span class="o">==</span><span class="w"> </span><span class="sc">&#39;+&#39;</span><span class="p">)</span>
<span class="w">	</span><span class="p">{</span>
<span class="w">		</span><span class="n">level</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">if</span><span class="w"> </span><span class="p">(</span><span class="o">!</span><span class="p">(</span><span class="n">user</span><span class="o">-&gt;</span><span class="n">access</span><span class="w"> </span><span class="o">&amp;</span><span class="w"> </span><span class="p">(</span><span class="mi">1</span><span class="w"> </span><span class="o">&lt;&lt;</span><span class="w"> </span><span class="n">access</span><span class="p">)))</span>
<span class="w">		</span><span class="p">{</span>
<span class="w">			</span><span class="n">offset</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">user</span><span class="o">-&gt;</span><span class="n">access</span><span class="w"> </span><span class="o">|=</span><span class="w"> </span><span class="p">(</span><span class="mi">1</span><span class="w"> </span><span class="o">&lt;&lt;</span><span class="w"> </span><span class="n">access</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="k">else</span>
<span class="w">	</span><span class="p">{</span>
<span class="w">		</span><span class="n">level</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">if</span><span class="w"> </span><span class="p">(</span><span class="n">user</span><span class="o">-&gt;</span><span class="n">access</span><span class="w"> </span><span class="o">&amp;</span><span class="w"> </span><span class="p">(</span><span class="mi">1</span><span class="w"> </span><span class="o">&lt;&lt;</span><span class="w"> </span><span class="n">access</span><span class="p">))</span>
<span class="w">		</span><span class="p">{</span>
<span class="w">			</span><span class="n">offset</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">user</span><span class="o">-&gt;</span><span class="n">access</span><span class="w"> </span><span class="o">&amp;=</span><span class="w"> </span><span class="o">~</span><span class="p">(</span><span class="mi">1</span><span class="w"> </span><span class="o">&lt;&lt;</span><span class="w"> </span><span class="n">access</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">/* now what is this users highest prefix? e.g. @ for ops */</span>
<span class="w">	</span><span class="n">user</span><span class="o">-&gt;</span><span class="n">prefix</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="n">get_nick_prefix</span><span class="w"> </span><span class="p">(</span><span class="n">sess</span><span class="o">-&gt;</span><span class="n">server</span><span class="p">,</span><span class="w"> </span><span class="n">user</span><span class="o">-&gt;</span><span class="n">access</span><span class="p">);</span>

<span class="w">	</span><span class="cm">/* update the various counts using the CHANGED prefix only */</span>
<span class="w">	</span><span class="n">update_counts</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">user</span><span class="p">,</span><span class="w"> </span><span class="n">prefix</span><span class="p">,</span><span class="w"> </span><span class="n">level</span><span class="p">,</span><span class="w"> </span><span class="n">offset</span><span class="p">);</span>

<span class="w">	</span><span class="cm">/* insert it back into its new place */</span>
<span class="w">	</span><span class="n">tree_insert</span><span class="w"> </span><span class="p">(</span><span class="n">sess</span><span class="o">-&gt;</span><span class="n">usertree</span><span class="p">,</span><span class="w"> </span><span class="n">user</span><span class="p">);</span>
<span class="w">	</span><span class="n">fe_userlist_insert</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">user</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_userlist_numbers</span><span class="w"> </span><span class="p">(</span><span class="n">sess</span><span class="p">);</span>
<span class="p">}</span>

<span class="kt">int</span>
<span class="n">userlist_change</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">oldname</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">newname</span><span class="p">)</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="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">userlist_find</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">oldname</span><span class="p">);</span>
<span class="w">	</span><span class="kt">int</span><span class="w"> </span><span class="n">pos</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">user</span><span class="p">)</span>
<span class="w">	</span><span class="p">{</span>
<span class="w">		</span><span class="n">tree_remove</span><span class="w"> </span><span class="p">(</span><span class="n">sess</span><span class="o">-&gt;</span><span class="n">usertree</span><span class="p">,</span><span class="w"> </span><span class="n">user</span><span class="p">,</span><span class="w"> </span><span class="o">&amp;</span><span class="n">pos</span><span class="p">);</span>
<span class="w">		</span><span class="n">fe_userlist_remove</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">user</span><span class="p">);</span>

<span class="w">		</span><span class="n">safe_strcpy</span><span class="w"> </span><span class="p">(</span><span class="n">user</span><span class="o">-&gt;</span><span class="n">nick</span><span class="p">,</span><span class="w"> </span><span class="n">newname</span><span class="p">,</span><span class="w"> </span><span class="n">NICKLEN</span><span class="p">);</span>

<span class="w">		</span><span class="n">tree_insert</span><span class="w"> </span><span class="p">(</span><span class="n">sess</span><span class="o">-&gt;</span><span class="n">usertree</span><span class="p">,</span><span class="w"> </span><span class="n">user</span><span class="p">);</span>
<span class="w">		</span><span class="n">fe_userlist_insert</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">user</span><span class="p">,</span><span class="w"> </span><span class="n">FALSE</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="k">return</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span>
<span class="p">}</span>

<span class="kt">int</span>
<span class="n">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="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="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="w">	</span><span class="n">user</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">userlist_find</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">name</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">user</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="n">userlist_remove_user</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">user</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="p">}</span>

<span class="kt">void</span>
<span class="n">userlist_remove_user</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="kt">int</span><span class="w"> </span><span class="n">pos</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">user</span><span class="o">-&gt;</span><span class="n">voice</span><span class="p">)</span>
<span class="w">		</span><span class="n">sess</span><span class="o">-&gt;</span><span class="n">voices</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">user</span><span class="o">-&gt;</span><span class="n">op</span><span class="p">)</span>
<span class="w">		</span><span class="n">sess</span><span class="o">-&gt;</span><span class="n">ops</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">user</span><span class="o">-&gt;</span><span class="n">hop</span><span class="p">)</span>
<span class="w">		</span><span class="n">sess</span><span class="o">-&gt;</span><span class="n">hops</span><span class="o">--</span><span class="p">;</span>
<span class="w">	</span><span class="n">sess</span><span class="o">-&gt;</span><span class="n">total</span><span class="o">--</span><span class="p">;</span>
<span class="w">	</span><span class="n">fe_userlist_numbers</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">fe_userlist_remove</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">user</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">user</span><span class="w"> </span><span class="o">==</span><span class="w"> </span><span class="n">sess</span><span class="o">-&gt;</span><span class="n">me</span><span class="p">)</span>
<span class="w">		</span><span class="n">sess</span><span class="o">-&gt;</span><span class="n">me</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">tree_remove</span><span class="w"> </span><span class="p">(</span><span class="n">sess</span><span class="o">-&gt;</span><span class="n">usertree</span><span class="p">,</span><span class="w"> </span><span class="n">user</span><span class="p">,</span><span class="w"> </span><span class="o">&amp;</span><span class="n">pos</span><span class="p">);</span>
<span class="w">	</span><span class="n">free_user</span><span class="w"> </span><span class="p">(</span><span class="n">user</span><span class="p">,</span><span class="w"> </span><span class="nb">NULL</span><span class="p">);</span>
<span class="p">}</span>

<span class="kt">void</span>
<span class="n">userlist_add</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">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">hostname</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">account</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">realname</span><span class="p">,</span><span class="w"> </span><span class="k">const</span><span class="w"> </span><span class="n">message_tags_data</span><span class="w"> </span><span class="o">*</span><span class="n">tags_data</span><span class="p">)</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="w">	</span><span class="kt">int</span><span class="w"> </span><span class="n">row</span><span class="p">,</span><span class="w"> </span><span class="n">prefix_chars</span><span class="p">;</span>
<span class="w">	</span><span class="kt">unsigned</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">acc</span><span class="p">;</span>

<span class="w">	</span><span class="n">acc</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">nick_access</span><span class="w"> </span><span class="p">(</span><span class="n">sess</span><span class="o">-&gt;</span><span class="n">server</span><span class="p">,</span><span class="w"> </span><span class="n">name</span><span class="p">,</span><span class="w"> </span><span class="o">&amp;</span><span class="n">prefix_chars</span><span class="p">);</span>

<span class="w">	</span><span class="n">notify_set_online</span><span class="w"> </span><span class="p">(</span><span class="n">sess</span><span class="o">-&gt;</span><span class="n">server</span><span class="p">,</span><span class="w"> </span><span class="n">name</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="n">prefix_chars</span><span class="p">,</span><span class="w"> </span><span class="n">tags_data</span><span class="p">);</span>

<span class="w">	</span><span class="n">user</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">g_new0</span><span class="w"> </span><span class="p">(</span><span class="k">struct</span><span class="w"> </span><span class="nc">User</span><span class="p">,</span><span class="w"> </span><span class="mi">1</span><span class="p">);</span>

<span class="w">	</span><span class="n">user</span><span class="o">-&gt;</span><span class="n">access</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">acc</span><span class="p">;</span>

<span class="w">	</span><span class="cm">/* assume first char is the highest level nick prefix */</span>
<span class="w">	</span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">prefix_chars</span><span class="p">)</span>
<span class="w">		</span><span class="n">user</span><span class="o">-&gt;</span><span class="n">prefix</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="n">name</span><span class="p">[</span><span class="mi">0</span><span class="p">];</span>

<span class="w">	</span><span class="cm">/* add it to our linked list */</span>
<span class="w">	</span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">hostname</span><span class="p">)</span>
<span class="w">		</span><span class="n">user</span><span class="o">-&gt;</span><span class="n">hostname</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">hostname</span><span class="p">);</span>
<span class="w">	</span><span class="n">safe_strcpy</span><span class="w"> </span><span class="p">(</span><span class="n">user</span><span class="o">-&gt;</span><span class="n">nick</span><span class="p">,</span><span class="w"> </span><span class="n">name</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="n">prefix_chars</span><span class="p">,</span><span class="w"> </span><span class="n">NICKLEN</span><span class="p">);</span>
<span class="w">	</span><span class="cm">/* is it me? */</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">-&gt;</span><span class="n">server</span><span class="o">-&gt;</span><span class="n">p_cmp</span><span class="w"> </span><span class="p">(</span><span class="n">user</span><span class="o">-&gt;</span><span class="n">nick</span><span class="p">,</span><span class="w"> </span><span class="n">sess</span><span class="o">-&gt;</span><span class="n">server</span><span class="o">-&gt;</span><span class="n">nick</span><span class="p">))</span>
<span class="w">		</span><span class="n">user</span><span class="o">-&gt;</span><span class="n">me</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="cm">/* extended join info */</span>
<span class="w">	</span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">sess</span><span class="o">-&gt;</span><span class="n">server</span><span class="o">-&gt;</span><span class="n">have_extjoin</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">account</span><span class="w"> </span><span class="o">&amp;&amp;</span><span class="w"> </span><span class="o">*</span><span class="n">account</span><span class="p">)</span>
<span class="w">			</span><span class="n">user</span><span class="o">-&gt;</span><span class="n">account</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">account</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">realname</span><span class="w"> </span><span class="o">&amp;&amp;</span><span class="w"> </span><span class="o">*</span><span class="n">realname</span><span class="p">)</span>
<span class="w">			</span><span class="n">user</span><span class="o">-&gt;</span><span class="n">realname</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">realname</span><span class="p">);</span>
<span class="w">	</span><span class="p">}</span>

<span class="w">	</span><span class="n">row</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">userlist_insertname</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">user</span><span class="p">);</span>

<span class="w">	</span><span class="cm">/* duplicate? some broken servers trigger this */</span>
<span class="w">	</span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">row</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="p">{</span>
<span class="w">		</span><span class="n">g_free</span><span class="w"> </span><span class="p">(</span><span class="n">user</span><span class="o">-&gt;</span><span class="n">hostname</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">user</span><span class="o">-&gt;</span><span class="n">account</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">user</span><span class="o">-&gt;</span><span class="n">realname</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">user</span><span class="p">);</span>
<span class="w">		</span><span class="k">return</span><span class="p">;</span>
<span class="w">	</span><span class="p">}</span>

<span class="w">	</span><span class="n">sess</span><span class="o">-&gt;</span><span class="n">total</span><span class="o">++</span><span class="p">;</span>

<span class="w">	</span><span class="cm">/* most ircds don&#39;t support multiple modechars in front of the nickname</span>
<span class="cm">      for /NAMES - though they should. */</span>
<span class="w">	</span><span class="k">while</span><span class="w"> </span><span class="p">(</span><span class="n">prefix_chars</span><span class="p">)</span>
<span class="w">	</span><span class="p">{</span>
<span class="w">		</span><span class="n">update_counts</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">user</span><span class="p">,</span><span class="w"> </span><span class="n">name</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span><span class="w"> </span><span class="n">TRUE</span><span class="p">,</span><span class="w"> </span><span class="mi">1</span><span class="p">);</span>
<span class="w">		</span><span class="n">name</span><span class="o">++</span><span class="p">;</span>
<span class="w">		</span><span class="n">prefix_chars</span><span class="o">--</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">user</span><span class="o">-&gt;</span><span class="n">me</span><span class="p">)</span>
<span class="w">		</span><span class="n">sess</span><span class="o">-&gt;</span><span class="n">me</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">user</span><span class="p">;</span>

<span class="w">	</span><span class="n">fe_userlist_insert</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">user</span><span class="p">,</span><span class="w"> </span><span class="n">FALSE</span><span class="p">);</span>
<span class="w">	</span><span class="k">if</span><span class="p">(</span><span class="n">sess</span><span class="o">-&gt;</span><span class="n">end_of_names</span><span class="p">)</span>
<span class="w">		</span><span class="n">fe_userlist_numbers</span><span class="w"> </span><span class="p">(</span><span class="n">sess</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="n">rehash_cb</span><span class="w"> </span><span class="p">(</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="w"> </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">fe_userlist_rehash</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">user</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="p">}</span>

<span class="kt">void</span>
<span class="n">userlist_rehash</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">tree_foreach</span><span class="w"> </span><span class="p">(</span><span class="n">sess</span><span class="o">-&gt;</span><span class="n">usertree</span><span class="p">,</span><span class="w"> </span><span class="p">(</span><span class="n">tree_traverse_func</span><span class="w"> </span><span class="o">*</span><span class="p">)</span><span class="n">rehash_cb</span><span class="p">,</span><span class="w"> </span><span class="n">sess</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="n">flat_cb</span><span class="w"> </span><span class="p">(</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="w"> </span><span class="n">GSList</span><span class="w"> </span><span class="o">**</span><span class="n">list</span><span class="p">)</span>
<span class="p">{</span>
<span class="w">	</span><span class="o">*</span><span class="n">list</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">g_slist_prepend</span><span class="w"> </span><span class="p">(</span><span class="o">*</span><span class="n">list</span><span class="p">,</span><span class="w"> </span><span class="n">user</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="p">}</span>

<span class="n">GSList</span><span class="w"> </span><span class="o">*</span>
<span class="n">userlist_flat_list</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">GSList</span><span class="w"> </span><span class="o">*</span><span class="n">list</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">tree_foreach</span><span class="w"> </span><span class="p">(</span><span class="n">sess</span><span class="o">-&gt;</span><span class="n">usertree</span><span class="p">,</span><span class="w"> </span><span class="p">(</span><span class="n">tree_traverse_func</span><span class="w"> </span><span class="o">*</span><span class="p">)</span><span class="n">flat_cb</span><span class="p">,</span><span class="w"> </span><span class="o">&amp;</span><span class="n">list</span><span class="p">);</span>
<span class="w">	</span><span class="k">return</span><span class="w"> </span><span class="n">g_slist_reverse</span><span class="w"> </span><span class="p">(</span><span class="n">list</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="n">double_cb</span><span class="w"> </span><span class="p">(</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="w"> </span><span class="n">GList</span><span class="w"> </span><span class="o">**</span><span class="n">list</span><span class="p">)</span>
<span class="p">{</span>
<span class="w">	</span><span class="o">*</span><span class="n">list</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">g_list_prepend</span><span class="p">(</span><span class="o">*</span><span class="n">list</span><span class="p">,</span><span class="w"> </span><span class="n">user</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="p">}</span>

<span class="n">GList</span><span class="w"> </span><span class="o">*</span>
<span class="n">userlist_double_list</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">GList</span><span class="w"> </span><span class="o">*</span><span class="n">list</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">tree_foreach</span><span class="w"> </span><span class="p">(</span><span class="n">sess</span><span class="o">-&gt;</span><span class="n">usertree</span><span class="p">,</span><span class="w"> </span><span class="p">(</span><span class="n">tree_traverse_func</span><span class="w"> </span><span class="o">*</span><span class="p">)</span><span class="n">double_cb</span><span class="p">,</span><span class="w"> </span><span class="o">&amp;</span><span class="n">list</span><span class="p">);</span>
<span class="w">	</span><span class="k">return</span><span class="w"> </span><span class="n">list</span><span class="p">;</span>
<span class="p">}</span>
</pre></div>
</code></pre></td></tr></table>
</div> <!-- class=content -->
<div class='footer'>generated by <a href='https://git.causal.agency/cgit-pink/about/'>cgit-pink 1.4.1</a> (<a href='https://git-scm.com/'>git 2.36.1</a>) at 2025-03-28 21:00:21 +0000</div>
</div> <!-- id=cgit -->
</body>
</html>
ttività lampeggiante"

#: src/fe-gtk/maingui.c:1640 src/fe-gtk/menu.c:2181
msgid "_Detach"
msgstr "_Separa"

#: src/fe-gtk/maingui.c:1642 src/fe-gtk/menu.c:2182 src/fe-gtk/menu.c:2187
#: src/fe-gtk/search.c:225
msgid "_Close"
msgstr "_Chiudi"

#: src/fe-gtk/maingui.c:1981 src/fe-gtk/maingui.c:2087
msgid "User limit must be a number!\n"
msgstr "Il limite utenti deve essere un numero.\n"

#: src/fe-gtk/maingui.c:2109
msgid "Topic Protection"
msgstr "Argomento protetto"

#: src/fe-gtk/maingui.c:2110
msgid "No outside messages"
msgstr "Nessun messaggio esterno"

#: src/fe-gtk/maingui.c:2111
msgid "Secret"
msgstr "Segreto"

#: src/fe-gtk/maingui.c:2112
msgid "Invite Only"
msgstr "Solo su invito"

#: src/fe-gtk/maingui.c:2114
msgid "Moderated"
msgstr "Moderato"

#: src/fe-gtk/maingui.c:2115
msgid "Ban List"
msgstr "Elenco dei ban"

#: src/fe-gtk/maingui.c:2117
msgid "Keyword"
msgstr "Parola chiave"

#: src/fe-gtk/maingui.c:2129
msgid "User Limit"
msgstr "Limite utenti"

#: src/fe-gtk/maingui.c:2238
msgid "Show/Hide userlist"
msgstr "Mostra/Nascondi elenco utenti"

#: src/fe-gtk/maingui.c:2361
msgid ""
"Unable to set transparent background!\n"
"\n"
"You may be using a non-compliant window\n"
"manager that is not currently supported.\n"
msgstr "Impossibile impostare lo sfondo trasparente.\n\nÈ possibile che sia in uso un gestore finestre\nnon compatibile che non è attualmente supportato.\n"

#: src/fe-gtk/maingui.c:2650
msgid "Enter new nickname:"
msgstr "Nuovo soprannome:"

#: src/fe-gtk/menu.c:127
msgid "Host unknown"
msgstr "Host sconosciuto"

#: src/fe-gtk/menu.c:616
#, c-format
msgid "<tt><b>%-11s</b></tt> %s"
msgstr "<tt><b>%-11s</b></tt> %s"

#: src/fe-gtk/menu.c:622 src/fe-gtk/menu.c:626
msgid "Real Name:"
msgstr "Nome vero:"

#: src/fe-gtk/menu.c:633
msgid "User:"
msgstr "Utente:"

#: src/fe-gtk/menu.c:640
msgid "Country:"
msgstr "Nazione:"

#: src/fe-gtk/menu.c:647
msgid "Server:"
msgstr "Server:"

#: src/fe-gtk/menu.c:658
#, c-format
msgid "%u minutes ago"
msgstr "%u minuti fa"

#: src/fe-gtk/menu.c:660 src/fe-gtk/menu.c:663
msgid "Last Msg:"
msgstr "Ultimo messaggio:"

#: src/fe-gtk/menu.c:673
msgid "Away Msg:"
msgstr "Messaggio di assenza:"

#: src/fe-gtk/menu.c:731
#, c-format
msgid "%d nicks selected."
msgstr "%d soprannomi selezionati."

#: src/fe-gtk/menu.c:856
msgid ""
"The Menubar is now hidden. You can show it again by pressing F9 or right-"
"clicking in a blank part of the main text area."
msgstr "La barra dei menù è ora nascosta. Per visualizzarla nuovamente premere F9 o fare clic col tasto destro del mouse in uno spazio vuoto dell'area di testo principale."

#: src/fe-gtk/menu.c:945
msgid "Open Link in Browser"
msgstr "Apri il collegamento nel browser"

#: src/fe-gtk/menu.c:946
msgid "Copy Selected Link"
msgstr "Copia collegamento selezionato"

#: src/fe-gtk/menu.c:1008 src/fe-gtk/menu.c:1319
msgid "Join Channel"
msgstr "Entra nel canale"

#: src/fe-gtk/menu.c:1012
msgid "Part Channel"
msgstr "Abbandona il canale"

#: src/fe-gtk/menu.c:1014
msgid "Cycle Channel"
msgstr "Prova il canale"

#: src/fe-gtk/menu.c:1050
msgid "_Remove from Favorites"
msgstr "_Rimuovi dai preferiti"

#: src/fe-gtk/menu.c:1052
msgid "_Add to Favorites"
msgstr "_Aggiungi ai preferiti"

#: src/fe-gtk/menu.c:1071
msgid ": User menu"
msgstr ": menù utente"

#: src/fe-gtk/menu.c:1080
msgid "Edit This Menu..."
msgstr "Modifica questo menù..."

#: src/fe-gtk/menu.c:1210 src/fe-gtk/menu.c:1223 src/fe-gtk/search.c:77
msgid "Search hit end, not found."
msgstr "Ricerca terminata, nessuna corrispondenza."

#: src/fe-gtk/menu.c:1321
msgid "Retrieve channel list..."
msgstr "Recupera elenco canali..."

#: src/fe-gtk/menu.c:1389
msgid ""
"User Commands - Special codes:\n"
"\n"
"%c  =  current channel\n"
"%e  =  current network name\n"
"%m  =  machine info\n"
"%n  =  your nick\n"
"%t  =  time/date\n"
"%v  =  HexChat version\n"
"%2  =  word 2\n"
"%3  =  word 3\n"
"&2  =  word 2 to the end of line\n"
"&3  =  word 3 to the end of line\n"
"\n"
"eg:\n"
"/cmd john hello\n"
"\n"
"%2 would be \"john\"\n"
"&2 would be \"john hello\"."
msgstr "Comandi utente - Codici speciali:\n\n%c  =  canale attuale\n%e  =  nome della rete attuale\n%m  =  informazioni sulla macchina\n%n  =  proprio soprannome\n%t  =  ora/data\n%v  =  versione HexChat\n%2  =  parola 2\n%3  =  parola 3\n&2  =  parola 2 alla fine della riga\n&3  =  parola 3 alla fine della riga\n\nesempio:\n/cmd john ciao\n\n%2 dovrebbe essere \"john\"\n&2 dovrebbe essere \"john ciao\""

#: src/fe-gtk/menu.c:1405
msgid ""
"Userlist Buttons - Special codes:\n"
"\n"
"%a  =  all selected nicks\n"
"%c  =  current channel\n"
"%e  =  current network name\n"
"%h  =  selected nick's hostname\n"
"%m  =  machine info\n"
"%n  =  your nick\n"
"%s  =  selected nick\n"
"%t  =  time/date\n"
msgstr "Pulsanti elenco utenti - Codici speciali:\n\n%a  =  tutti i soprannomi selezionati\n%c  =  canale attuale\n%e  =  nome della rete attuale\n%h  =  nome host del soprannome selezionato\n%m  =  informazioni sulla macchina\n%n  =  proprio soprannome\n%s  =  soprannome selezionato\n%t  =  ora/data\n"

#: src/fe-gtk/menu.c:1415
msgid ""
"Dialog Buttons - Special codes:\n"
"\n"
"%a  =  all selected nicks\n"
"%c  =  current channel\n"
"%e  =  current network name\n"
"%h  =  selected nick's hostname\n"
"%m  =  machine info\n"
"%n  =  your nick\n"
"%s  =  selected nick\n"
"%t  =  time/date\n"
msgstr "Pulsanti dialogo - Codici speciali:\n\n%a  =  tutti i soprannomi selezionati\n%c  =  canale attuale\n%e  =  nome della rete attuale\n%h  =  nome host del soprannome selezionato\n%m  =  informazioni sulla macchina\n%n  =  tuo soprannome\n%s  =  soprannome selezionato\n%t  =  ora/data\n"

#: src/fe-gtk/menu.c:1425
msgid ""
"CTCP Replies - Special codes:\n"
"\n"
"%d  =  data (the whole ctcp)\n"
"%e  =  current network name\n"
"%m  =  machine info\n"
"%s  =  nick who sent the ctcp\n"
"%t  =  time/date\n"
"%2  =  word 2\n"
"%3  =  word 3\n"
"&2  =  word 2 to the end of line\n"
"&3  =  word 3 to the end of line\n"
"\n"
msgstr "Risposte CTCP - Codici speciali:\n\n%d  =  dati (tutto il ctcp)\n%e  =  nome della rete attuale\n%m  =  informazioni sulla macchina\n%s  =  soprannome di chi ha inviato il ctcp\n%t  =  ora/data\n%2  =  parola 2\n%3  =  parola 3\n&2  =  parola 2 alla fine della riga\n&3  =  parola 3 alla fine della riga\n\n"

#: src/fe-gtk/menu.c:1436
#, c-format
msgid ""
"URL Handlers - Special codes:\n"
"\n"
"%s  =  the URL string\n"
"\n"
"Putting a ! in front of the command\n"
"indicates it should be sent to a\n"
"shell instead of HexChat"
msgstr "Gestori URL - Codici speciali:\n\n%s  =  stringa dell'URL\n\nInserire un «!» davanti al comando\nindica che deve essere inviato\nad un terminale invece che ad HexChat"

#: src/fe-gtk/menu.c:1445
msgid ": User Defined Commands"
msgstr ": comandi definiti dall'utente"

#: src/fe-gtk/menu.c:1452
msgid ": Userlist Popup menu"
msgstr ": menù pop-up elenco utenti"

#: src/fe-gtk/menu.c:1459
msgid "Replace with"
msgstr "Sostituisci con"

#: src/fe-gtk/menu.c:1459
msgid ": Replace"
msgstr ": sostituisci"

#: src/fe-gtk/menu.c:1466
msgid ": URL Handlers"
msgstr ": gestori URL"

#: src/fe-gtk/menu.c:1485
msgid ": Userlist buttons"
msgstr ": pulsanti elenco utenti"

#: src/fe-gtk/menu.c:1492
msgid ": Dialog buttons"
msgstr ": pulsanti dialogo"

#: src/fe-gtk/menu.c:1499
msgid ": CTCP Replies"
msgstr ": risposte CTCP"

#: src/fe-gtk/menu.c:1605
msgid "He_xChat"
msgstr "He_xChat"

#: src/fe-gtk/menu.c:1606
msgid "Network Li_st..."
msgstr "Elenco reti..."

#: src/fe-gtk/menu.c:1609
msgid "_New"
msgstr "_Nuova"

#: src/fe-gtk/menu.c:1610
msgid "Server Tab..."
msgstr "Scheda server..."

#: src/fe-gtk/menu.c:1611
msgid "Channel Tab..."
msgstr "Scheda canale..."

#: src/fe-gtk/menu.c:1612
msgid "Server Window..."
msgstr "Finestra server..."

#: src/fe-gtk/menu.c:1613
msgid "Channel Window..."
msgstr "Finestra canale..."

#: src/fe-gtk/menu.c:1618 src/fe-gtk/menu.c:1620
msgid "_Load Plugin or Script..."
msgstr "C_arica plugin o script..."

#: src/fe-gtk/menu.c:1628 src/fe-gtk/plugin-tray.c:633
msgid "_Quit"
msgstr "_Esci"

#: src/fe-gtk/menu.c:1630
msgid "_View"
msgstr "_Visualizza"

#: src/fe-gtk/menu.c:1632
msgid "_Menu Bar"
msgstr "Barra dei _menù"

#: src/fe-gtk/menu.c:1633
msgid "_Topic Bar"
msgstr "Barra dell'argomen_to"

#: src/fe-gtk/menu.c:1634
msgid "_User List"
msgstr "Elenco _utenti"

#: src/fe-gtk/menu.c:1635
msgid "U_serlist Buttons"
msgstr "Pulsanti elenco _utenti"

#: src/fe-gtk/menu.c:1636
msgid "M_ode Buttons"
msgstr "Pulsanti m_odalità"

#: src/fe-gtk/menu.c:1638
msgid "_Channel Switcher"
msgstr "Elenco _canali"

#: src/fe-gtk/menu.c:1640
msgid "_Tabs"
msgstr "_Schede"

#: src/fe-gtk/menu.c:1641
msgid "T_ree"
msgstr "Albe_ro"

#: src/fe-gtk/menu.c:1643
msgid "_Network Meters"
msgstr "A_nalizzatore rete"

#: src/fe-gtk/menu.c:1645 src/fe-gtk/setup.c:246
msgid "Off"
msgstr "Disattivato"

#: src/fe-gtk/menu.c:1646
msgid "Graph"
msgstr "Grafico"

#: src/fe-gtk/menu.c:1651
msgid "_Server"
msgstr "_Server"

#: src/fe-gtk/menu.c:1652
msgid "_Disconnect"
msgstr "_Disconnetti"

#: src/fe-gtk/menu.c:1653
msgid "_Reconnect"
msgstr "_Riconnetti"

#: src/fe-gtk/menu.c:1654
msgid "Join a Channel..."
msgstr "Accedi a un canale..."

#: src/fe-gtk/menu.c:1655
msgid "List of Channels..."
msgstr "Elenco canali..."

#: src/fe-gtk/menu.c:1658
msgid "Marked Away"
msgstr "Imposta come «assente»"

#: src/fe-gtk/menu.c:1660
msgid "_Usermenu"
msgstr "Menù _utente"

#: src/fe-gtk/menu.c:1662
msgid "S_ettings"
msgstr "_Impostazioni"

#: src/fe-gtk/menu.c:1663 src/fe-gtk/plugin-tray.c:630
msgid "_Preferences"
msgstr "_Preferenze"

#: src/fe-gtk/menu.c:1665
msgid "Auto Replace..."
msgstr "Sostituzione automatica..."

#: src/fe-gtk/menu.c:1666
msgid "CTCP Replies..."
msgstr "Risposte CTCP..."

#: src/fe-gtk/menu.c:1667
msgid "Dialog Buttons..."
msgstr "Pulsanti dialogo..."

#: src/fe-gtk/menu.c:1668
msgid "Keyboard Shortcuts..."
msgstr "Scorciatoie da tastiera..."

#: src/fe-gtk/menu.c:1669
msgid "Text Events..."
msgstr "Eventi testuali..."

#: src/fe-gtk/menu.c:1670
msgid "URL Handlers..."
msgstr "Gestori URL..."

#: src/fe-gtk/menu.c:1671
msgid "User Commands..."
msgstr "Comandi utente..."

#: src/fe-gtk/menu.c:1672
msgid "Userlist Buttons..."
msgstr "Pulsanti elenco utenti..."

#: src/fe-gtk/menu.c:1673
msgid "Userlist Popup..."
msgstr "Pop-up elenco utenti..."

#: src/fe-gtk/menu.c:1675
msgid "_Window"
msgstr "_Finestra"

#: src/fe-gtk/menu.c:1676
msgid "Ban List..."
msgstr "Elenco dei ban..."

#: src/fe-gtk/menu.c:1677
msgid "Character Chart..."
msgstr "Tabella caratteri..."

#: src/fe-gtk/menu.c:1678
msgid "Direct Chat..."
msgstr "Chat diretta..."

#: src/fe-gtk/menu.c:1679
msgid "File Transfers..."
msgstr "Trasferimento file..."

#: src/fe-gtk/menu.c:1680
msgid "Friends List..."
msgstr "Elenco amici..."

#: src/fe-gtk/menu.c:1681
msgid "Ignore List..."
msgstr "Elenco utenti ignorati..."

#: src/fe-gtk/menu.c:1682
msgid "Plugins and Scripts..."
msgstr "Plugin e script..."

#: src/fe-gtk/menu.c:1683
msgid "Raw Log..."
msgstr "Registro in forma grezza..."

#: src/fe-gtk/menu.c:1684
msgid "URL Grabber..."
msgstr "URL collezionati..."

#: src/fe-gtk/menu.c:1686
msgid "Reset Marker Line"
msgstr "Azzera linea di demrcazione"

#: src/fe-gtk/menu.c:1687
msgid "_Copy Selection"
msgstr "_Copia selezione"

#: src/fe-gtk/menu.c:1688
msgid "C_lear Text"
msgstr "Pu_lisci testo"

#: src/fe-gtk/menu.c:1689
msgid "Save Text..."
msgstr "Salva testo..."

#: src/fe-gtk/menu.c:1691
msgid "Search"
msgstr "Cerca"

#: src/fe-gtk/menu.c:1692
msgid "Search Text..."
msgstr "Cerca testo..."

#: src/fe-gtk/menu.c:1693
msgid "Reset Search"
msgstr "Azzera ricerca"

#: src/fe-gtk/menu.c:1694
msgid "Search Next"
msgstr "Ricerca precednete"

#: src/fe-gtk/menu.c:1695
msgid "Search Previous"
msgstr "Ricerca successivo"

#: src/fe-gtk/menu.c:1698 src/fe-gtk/menu.c:2173
msgid "_Help"
msgstr "A_iuto"

#: src/fe-gtk/menu.c:1700
msgid "_Contents"
msgstr "_Contenuti"

#: src/fe-gtk/menu.c:1702
msgid "Check for updates"
msgstr "Controlla aggiornamenti"

#: src/fe-gtk/menu.c:1704
msgid "_About"
msgstr "_Informazioni"

#: src/fe-gtk/menu.c:2186
msgid "_Attach"
msgstr "_Riunisci"

#: src/fe-gtk/notifygui.c:139
msgid "Last Seen"
msgstr "Ultima volta visto"

#: src/fe-gtk/notifygui.c:181
msgid "Offline"
msgstr "Non in linea"

#: src/fe-gtk/notifygui.c:201 src/fe-gtk/setup.c:319
msgid "Never"
msgstr "Mai"

#: src/fe-gtk/notifygui.c:204 src/fe-gtk/notifygui.c:229
#, c-format
msgid "%d minutes ago"
msgstr "%d minuti fa"

#: src/fe-gtk/notifygui.c:219
msgid "Online"
msgstr "In linea"

#: src/fe-gtk/notifygui.c:348
msgid "Enter nickname to add:"
msgstr "Inserire soprannome da aggiungere:"

#: src/fe-gtk/notifygui.c:377
msgid "Notify on these networks:"
msgstr "Notificare su queste reti:"

#: src/fe-gtk/notifygui.c:388
msgid "Comma separated list of networks is accepted."
msgstr "Elenco di reti, separate da virgole."

#: src/fe-gtk/notifygui.c:414
msgid ": Friends List"
msgstr ": elenco amici"

#: src/fe-gtk/notifygui.c:436
msgid "Open Dialog"
msgstr "Apri dialogo"

#: src/fe-gtk/plugin-tray.c:238
#, c-format
msgid ": Connected to %u networks and %u channels"
msgstr ": reti connesse %u, canali %u"

#: src/fe-gtk/plugin-tray.c:602
msgid "_Restore Window"
msgstr "_Ripristina finestra"

#: src/fe-gtk/plugin-tray.c:604
msgid "_Hide Window"
msgstr "_Nascondi finestra"

#: src/fe-gtk/plugin-tray.c:608
msgid "_Blink on"
msgstr "_Lampeggia per"

#: src/fe-gtk/plugin-tray.c:609 src/fe-gtk/setup.c:699
msgid "Channel Message"
msgstr "Messaggio del canale"

#: src/fe-gtk/plugin-tray.c:610 src/fe-gtk/setup.c:700
msgid "Private Message"
msgstr "Messaggio privato"

#: src/fe-gtk/plugin-tray.c:611 src/fe-gtk/setup.c:701
msgid "Highlighted Message"
msgstr "Messaggio evidenziato"

#: src/fe-gtk/plugin-tray.c:614
msgid "_Change status"
msgstr "_Cambia stato"

#: src/fe-gtk/plugin-tray.c:620
msgid "_Away"
msgstr "_Assente"

#: src/fe-gtk/plugin-tray.c:623
msgid "_Back"
msgstr "_Presente"

#: src/fe-gtk/plugin-tray.c:688 src/fe-gtk/plugin-tray.c:696
#, c-format
msgid ": Highlighted message from: %s (%s)"
msgstr ": messaggio evidenziato da: %s (%s)"

#: src/fe-gtk/plugin-tray.c:691
#, c-format
msgid ": %u highlighted messages, latest from: %s (%s)"
msgstr ": %u messaggi evidenziati, l'ultimo da: %s (%s)"

#: src/fe-gtk/plugin-tray.c:714 src/fe-gtk/plugin-tray.c:721
#, c-format
msgid ": New public message from: %s (%s)"
msgstr ": nuovo messaggio pubblico da: %s (%s)"

#: src/fe-gtk/plugin-tray.c:717
#, c-format
msgid ": %u new public messages."
msgstr ": %u nuovi messaggi pubblici"

#: src/fe-gtk/plugin-tray.c:743 src/fe-gtk/plugin-tray.c:750
#, c-format
msgid ": Private message from: %s (%s)"
msgstr ": messaggio privato da: %s (%s)"

#: src/fe-gtk/plugin-tray.c:746
#, c-format
msgid ": %u private messages, latest from: %s (%s)"
msgstr ": %u messaggi privati, l'ultimo da: %s (%s)"

#: src/fe-gtk/plugin-tray.c:796 src/fe-gtk/plugin-tray.c:804
#, c-format
msgid ": File offer from: %s (%s)"
msgstr ": file offerto da: %s (%s)"

#: src/fe-gtk/plugin-tray.c:799
#, c-format
msgid ": %u file offers, latest from: %s (%s)"
msgstr ": %u file offerti, l'ultimo da: %s (%s)"

#: src/fe-gtk/plugingui.c:75
msgid "Version"
msgstr "Versione"

#: src/fe-gtk/plugingui.c:77 src/fe-gtk/textgui.c:424
msgid "Description"
msgstr "Descrizione"

#: src/fe-gtk/plugingui.c:149
msgid "Select a Plugin or Script to load"
msgstr "Seleziona il plugin o lo script da caricare"

#: src/fe-gtk/plugingui.c:219
msgid ": Plugins and Scripts"
msgstr ": plugin e script"

#: src/fe-gtk/plugingui.c:234
msgid "_Load..."
msgstr "_Carica..."

#: src/fe-gtk/plugingui.c:237
msgid "_UnLoad"
msgstr "Sca_rica"

#: src/fe-gtk/rawlog.c:85 src/fe-gtk/rawlog.c:151 src/fe-gtk/textgui.c:438
#: src/fe-gtk/urlgrab.c:217
msgid "Save As..."
msgstr "Salva come..."

#: src/fe-gtk/rawlog.c:117
#, c-format
msgid ": Raw Log (%s)"
msgstr ": registro in forma grezza (%s)"

#: src/fe-gtk/rawlog.c:148
msgid "Clear Raw Log"
msgstr "Pulisci registro"

#: src/fe-gtk/search.c:60
msgid "The window you opened this Search for doesn't exist anymore."
msgstr "La finestra aperta per questa ricerca ricerca non esiste più."

#: src/fe-gtk/search.c:157
msgid ": Search"
msgstr ": cerca"

#: src/fe-gtk/search.c:184
msgid "_Find"
msgstr "_Trova"

#: src/fe-gtk/search.c:188
msgid "_Match case"
msgstr "_Maiuscole/minuscole"

#: src/fe-gtk/search.c:196
msgid "Search _backwards"
msgstr "Cerca in_dietro"

#: src/fe-gtk/search.c:204
msgid "_Highlight all"
msgstr "E_videnzia tutti"

#: src/fe-gtk/search.c:212
msgid "R_egular expression"
msgstr "_Espressione regolare"

#: src/fe-gtk/search.c:228
msgid "Close and _Reset"
msgstr "Chiudi e azzera"

#: src/fe-gtk/servlistgui.c:173 src/fe-gtk/servlistgui.c:282
msgid "New Network"
msgstr "Nuova rete"

#: src/fe-gtk/servlistgui.c:555
#, c-format
msgid "Really remove network \"%s\" and all its servers?"
msgstr "Rimuovere veramente la rete «%s» e tutti i relativi server?"

#: src/fe-gtk/servlistgui.c:737
msgid "#channel"
msgstr "#canale"

#: src/fe-gtk/servlistgui.c:847
msgid ": Favorite Channels (Auto-Join List)"
msgstr ": elenco canali preferiti (accesso automatico)"

#: src/fe-gtk/servlistgui.c:860
#, c-format
msgid "These channels will be joined whenever you connect to %s."
msgstr "Verrà effettuato l'accesso a questi canali al momento della connessione a %s."

#: src/fe-gtk/servlistgui.c:903
msgid "Key (Password)"
msgstr "Chiave (password):"

#: src/fe-gtk/servlistgui.c:934 src/fe-gtk/servlistgui.c:1580
msgid "_Edit"
msgstr "_Modifica"

#: src/fe-gtk/servlistgui.c:970
#, c-format
msgid "%s has been removed."
msgstr "%s è stato rimosso."

#: src/fe-gtk/servlistgui.c:990
#, c-format
msgid "%s has been added."
msgstr "%s è stato aggiunto."

#: src/fe-gtk/servlistgui.c:1014
msgid "User name and Real name cannot be left blank."
msgstr "Il nome utente e il vero nome non possono essere vuoti."

#: src/fe-gtk/servlistgui.c:1405
#, c-format
msgid ": Edit %s"
msgstr ": modifica %s"

#: src/fe-gtk/servlistgui.c:1424
#, c-format
msgid "Servers for %s"
msgstr "Server %s"

#: src/fe-gtk/servlistgui.c:1435
msgid "Connect to selected server only"
msgstr "Connettere solo al server selezionato"

#: src/fe-gtk/servlistgui.c:1436
msgid "Don't cycle through all the servers when the connection fails."
msgstr "Non provare tutti i server quando la connessione non riesce."

#: src/fe-gtk/servlistgui.c:1438
msgid "Your Details"
msgstr "Dettagli"

#: src/fe-gtk/servlistgui.c:1444
msgid "Use global user information"
msgstr "Usare informazioni utente globali"

#: src/fe-gtk/servlistgui.c:1447 src/fe-gtk/servlistgui.c:1687
msgid "_Nick name:"
msgstr "Sopra_nnome:"

#: src/fe-gtk/servlistgui.c:1451 src/fe-gtk/servlistgui.c:1694
msgid "Second choice:"
msgstr "Seconda scelta:"

#: src/fe-gtk/servlistgui.c:1455 src/fe-gtk/servlistgui.c:1708
msgid "_User name:"
msgstr "Nome _utente:"

#: src/fe-gtk/servlistgui.c:1459
msgid "Rea_l name:"
msgstr "Nome _vero:"

#: src/fe-gtk/servlistgui.c:1462
msgid "Connecting"
msgstr "Connessione"

#: src/fe-gtk/servlistgui.c:1468
msgid "Auto connect to this network at startup"
msgstr "Connettere automaticamente a questa rete all'avvio"

#: src/fe-gtk/servlistgui.c:1470
msgid "Bypass proxy server"
msgstr "Scavalcare il server proxy"

#: src/fe-gtk/servlistgui.c:1472
msgid "Use SSL for all the servers on this network"
msgstr "Usare SSL per tutti i server di questa rete"

#: src/fe-gtk/servlistgui.c:1477
msgid "Accept invalid SSL certificate"
msgstr "Accettare certificato SSL non valido"

#: src/fe-gtk/servlistgui.c:1483
msgid "_Favorite channels:"
msgstr "Canali pre_feriti:"

#: src/fe-gtk/servlistgui.c:1485
msgid "Channels to join, separated by commas, but not spaces!"
msgstr "Canali nei quali entrare, separati da virgole, ma senza spazi."

#: src/fe-gtk/servlistgui.c:1488
msgid "Connect command:"
msgstr "Comando dopo la connessione:"

#: src/fe-gtk/servlistgui.c:1490
msgid ""
"Extra command to execute after connecting. If you need more than one, set "
"this to LOAD -e <filename>, where <filename> is a text-file full of commands"
" to execute."
msgstr "Comando aggiuntivo da eseguire dopo la connessione. Se sono necessari più comandi, utilizzare LOAD -e <nome file>, sostituendo <nome file> con il file dove è contenuto l'elenco dei comandi da eseguire."

#: src/fe-gtk/servlistgui.c:1493
msgid "Nickserv password:"
msgstr "Password del Nickserv:"

#: src/fe-gtk/servlistgui.c:1495
msgid ""
"If your nickname requires a password, enter it here. Not all IRC networks "
"support this."
msgstr "Se il soprannome usato richiede una password, inserirla qui. Non tutte le reti IRC supportano questa funzione."

#: src/fe-gtk/servlistgui.c:1499
msgid "Server password:"
msgstr "Password del server:"

#: src/fe-gtk/servlistgui.c:1501
msgid "Password for the server, if in doubt, leave blank."
msgstr "Password per il server, in caso di dubbio, lasciare vuoto."

#: src/fe-gtk/servlistgui.c:1505
msgid "SASL password:"
msgstr "Password SASL:"

#: src/fe-gtk/servlistgui.c:1507
msgid "Password for SASL authentication, if in doubt, leave blank."
msgstr "Password per l'autenticazione SASL, in caso di dubbio, lasciare vuoto."

#: src/fe-gtk/servlistgui.c:1510
msgid "Character set:"
msgstr "Set di caratteri:"

#: src/fe-gtk/servlistgui.c:1665
msgid ": Network List"
msgstr ": elenco reti"

#: src/fe-gtk/servlistgui.c:1677
msgid "User Information"
msgstr "Informazioni utente"

#: src/fe-gtk/servlistgui.c:1701
msgid "Third choice:"
msgstr "Terza scelta:"

#: src/fe-gtk/servlistgui.c:1761
msgid "Networks"
msgstr "Reti"

#: src/fe-gtk/servlistgui.c:1809
msgid "Skip network list on startup"
msgstr "Non visualizzare l'elenco reti all'avvio"

#: src/fe-gtk/servlistgui.c:1818
msgid "Show favorites only"
msgstr "Visualizzare solo reti preferite"

#: src/fe-gtk/servlistgui.c:1848
msgid "_Edit..."
msgstr "_Modifica..."

#: src/fe-gtk/servlistgui.c:1855
msgid "_Sort"
msgstr "_Ordina"

#: src/fe-gtk/servlistgui.c:1856
msgid ""
"Sorts the network list in alphabetical order. Use SHIFT-UP and SHIFT-DOWN "
"keys to move a row."
msgstr "Ordina l'elenco reti alfabeticamente. Utilizzare le combinazioni di tasti Maiusc-su e Maiusc-giù per muovere una sola riga."

#: src/fe-gtk/servlistgui.c:1864
msgid "_Favor"
msgstr "Pre_ferita"

#: src/fe-gtk/servlistgui.c:1865
msgid "Mark or unmark this network as a favorite."
msgstr "Contrassegna la rete selezionata come preferita."

#: src/fe-gtk/servlistgui.c:1889
msgid "C_onnect"
msgstr "_Connetti"

#: src/fe-gtk/setup.c:105
msgid "Afrikaans"
msgstr "Africano"

#: src/fe-gtk/setup.c:106
msgid "Albanian"
msgstr "Albanese"

#: src/fe-gtk/setup.c:107
msgid "Amharic"
msgstr "Amarico"

#: src/fe-gtk/setup.c:108
msgid "Asturian"
msgstr "Asturiano"

#: src/fe-gtk/setup.c:109
msgid "Azerbaijani"
msgstr "Azero"

#: src/fe-gtk/setup.c:110
msgid "Basque"
msgstr "Basco"

#: src/fe-gtk/setup.c:111
msgid "Belarusian"
msgstr "Bielorusso"

#: src/fe-gtk/setup.c:112
msgid "Bulgarian"
msgstr "Bulgaro"

#: src/fe-gtk/setup.c:114
msgid "Chinese (Simplified)"
msgstr "Cinese (semplificato)"

#: src/fe-gtk/setup.c:115
msgid "Chinese (Traditional)"
msgstr "Cinese (tradizionale)"

#: src/fe-gtk/setup.c:116
msgid "Czech"
msgstr "Ceco"

#: src/fe-gtk/setup.c:117
msgid "Danish"
msgstr "Danese"

#: src/fe-gtk/setup.c:118
msgid "Dutch"
msgstr "Olandese"

#: src/fe-gtk/setup.c:119
msgid "English (British)"
msgstr "Inglese (britannico)"

#: src/fe-gtk/setup.c:120
msgid "English"
msgstr "Inglese"

#: src/fe-gtk/setup.c:121
msgid "Estonian"
msgstr "Estone"

#: src/fe-gtk/setup.c:122
msgid "Finnish"
msgstr "Finlandese"

#: src/fe-gtk/setup.c:123
msgid "French"
msgstr "Francese"

#: src/fe-gtk/setup.c:124
msgid "Galician"
msgstr "Galiziano"

#: src/fe-gtk/setup.c:125
msgid "German"
msgstr "Tedesco"

#: src/fe-gtk/setup.c:126
msgid "Greek"
msgstr "Greco"

#: src/fe-gtk/setup.c:127
msgid "Gujarati"
msgstr "Gujarati"

#: src/fe-gtk/setup.c:128
msgid "Hindi"
msgstr "Indi"

#: src/fe-gtk/setup.c:129
msgid "Hungarian"
msgstr "Ungherese"

#: src/fe-gtk/setup.c:130
msgid "Indonesian"
msgstr "Indonesiano"

#: src/fe-gtk/setup.c:131
msgid "Italian"
msgstr "Italiano"

#: src/fe-gtk/setup.c:132
msgid "Japanese"
msgstr "Giapponese"

#: src/fe-gtk/setup.c:133
msgid "Kannada"
msgstr "Kannada"

#: src/fe-gtk/setup.c:134
msgid "Kinyarwanda"
msgstr "Kinyarwanda"

#: src/fe-gtk/setup.c:135
msgid "Korean"
msgstr "Coreano"

#: src/fe-gtk/setup.c:136
msgid "Latvian"
msgstr "Lettone"

#: src/fe-gtk/setup.c:137
msgid "Lithuanian"
msgstr "Lituano"

#: src/fe-gtk/setup.c:138
msgid "Macedonian"
msgstr "Macedone"

#: src/fe-gtk/setup.c:139
msgid "Malay"
msgstr "Malese"

#: src/fe-gtk/setup.c:140
msgid "Malayalam"
msgstr "Malayalam"

#: src/fe-gtk/setup.c:141
msgid "Norwegian (Bokmal)"
msgstr "Norvegese (Bokmal)"

#: src/fe-gtk/setup.c:142
msgid "Norwegian (Nynorsk)"
msgstr "Norvegese (Nynorsk)"

#: src/fe-gtk/setup.c:143
msgid "Polish"
msgstr "Polacco"

#: src/fe-gtk/setup.c:144
msgid "Portuguese"
msgstr "Portoghese"

#: src/fe-gtk/setup.c:145
msgid "Portuguese (Brazilian)"
msgstr "Portoghese (brasiliano)"

#: src/fe-gtk/setup.c:146
msgid "Punjabi"
msgstr "Punjabi"

#: src/fe-gtk/setup.c:147
msgid "Russian"
msgstr "Russo"

#: src/fe-gtk/setup.c:148
msgid "Serbian"
msgstr "Serbo"

#: src/fe-gtk/setup.c:149
msgid "Slovak"
msgstr "Slovacco"

#: src/fe-gtk/setup.c:150
msgid "Slovenian"
msgstr "Sloveno"

#: src/fe-gtk/setup.c:151
msgid "Spanish"
msgstr "Spagnolo"

#: src/fe-gtk/setup.c:152
msgid "Swedish"
msgstr "Svedese"

#: src/fe-gtk/setup.c:153
msgid "Thai"
msgstr "Thai"

#: src/fe-gtk/setup.c:154
msgid "Ukrainian"
msgstr "Ucraino"

#: src/fe-gtk/setup.c:155
msgid "Vietnamese"
msgstr "Vietnamita"

#: src/fe-gtk/setup.c:156
msgid "Walloon"
msgstr "Vallone"

#: src/fe-gtk/setup.c:163 src/fe-gtk/setup.c:1946
msgid "General"
msgstr "Generale"

#: src/fe-gtk/setup.c:165
msgid "Language:"
msgstr "Lingua:"

#: src/fe-gtk/setup.c:166
msgid "Main font:"
msgstr "Carattere principale:"

#: src/fe-gtk/setup.c:168
msgid "Font:"
msgstr "Carattere:"

#: src/fe-gtk/setup.c:171
msgid "Text Box"
msgstr "Area di testo"

#: src/fe-gtk/setup.c:172
msgid "Colored nick names"
msgstr "Soprannomi colorati"

#: src/fe-gtk/setup.c:172
msgid "Give each person on IRC a different color"
msgstr "Assegna a ciascun utente su IRC un colore differente"

#: src/fe-gtk/setup.c:173
msgid "Indent nick names"
msgstr "Indentare soprannomi"

#: src/fe-gtk/setup.c:173
msgid "Make nick names right-justified"
msgstr "Allinea i soprannomi a destra"

#: src/fe-gtk/setup.c:175
msgid "Transparent background"
msgstr "Sfondo trasparente"

#: src/fe-gtk/setup.c:176 src/fe-gtk/setup.c:184
msgid "Show marker line"
msgstr "Mostrare riga di demarcazione"

#: src/fe-gtk/setup.c:176 src/fe-gtk/setup.c:184
msgid "Insert a red line after the last read text."
msgstr "Inserisce una riga rossa dopo l'ultimo messaggio letto."

#: src/fe-gtk/setup.c:177 src/fe-gtk/setup.c:185
msgid "Background image:"
msgstr "Immagine di sfondo:"

#: src/fe-gtk/setup.c:179
msgid "Transparency Settings"
msgstr "Impostazioni trasparenza"

#: src/fe-gtk/setup.c:180
msgid "Red:"
msgstr "Rosso:"

#: src/fe-gtk/setup.c:181
msgid "Green:"
msgstr "Verde:"

#: src/fe-gtk/setup.c:182
msgid "Blue:"
msgstr "Blu:"

#: src/fe-gtk/setup.c:188 src/fe-gtk/setup.c:599
msgid "Time Stamps"
msgstr "Orario"

#: src/fe-gtk/setup.c:189
msgid "Enable time stamps"
msgstr "Attiva orario"

#: src/fe-gtk/setup.c:190
msgid "Time stamp format:"
msgstr "Formato orario:"

#: src/fe-gtk/setup.c:192 src/fe-gtk/setup.c:603
msgid "See the strftime MSDN article for details."
msgstr "Per maggiori informazioni, consultare l'articolo MSDN di strftime."

#: src/fe-gtk/setup.c:194 src/fe-gtk/setup.c:605
msgid "See the strftime manpage for details."
msgstr "Per maggiori informazioni, consultare il manuale di strftime."

#: src/fe-gtk/setup.c:197
msgid "Title Bar"
msgstr "Barra del titolo"

#: src/fe-gtk/setup.c:198
msgid "Show channel modes"
msgstr "Mostrare la modalità del canale"

#: src/fe-gtk/setup.c:199
msgid "Show number of users"
msgstr "Mostrare il numero di utenti"

#: src/fe-gtk/setup.c:206 src/fe-gtk/setup.c:256
msgid "A-Z"
msgstr "alfabeticamente (A-Z)"

#: src/fe-gtk/setup.c:207
msgid "Last-spoke order"
msgstr "prima l'ultimo che ha parlato"

#: src/fe-gtk/setup.c:213
msgid "Input Box"
msgstr "Area di input"

#: src/fe-gtk/setup.c:214 src/fe-gtk/setup.c:288
msgid "Use the Text box font and colors"
msgstr "Usa carattere e colori dell'area testo"

#: src/fe-gtk/setup.c:215
msgid "Show nick box"
msgstr "Mostrare casella soprannome"

#: src/fe-gtk/setup.c:216
msgid "Show user mode icon in nick box"
msgstr "Mostrare icona modalità utente nella casella del soprannome"

#: src/fe-gtk/setup.c:218
msgid "Spell checking"
msgstr "Controllo del periodo"

#: src/fe-gtk/setup.c:220
msgid "Dictionaries to use:"
msgstr "Dizionario da usare:"

#: src/fe-gtk/setup.c:222
msgid ""
"Use language codes (as in \"share\\myspell\\dicts\").\n"
"Separate multiple entries with commas."
msgstr "Usa i codici della lingua (come in «share\\myspell\\dicts»).\nSeparare voci multiple con una virgola."

#: src/fe-gtk/setup.c:224
msgid "Use language codes. Separate multiple entries with commas."
msgstr "Usare i codici della lingua. Separare voci multiple con una virgola."

#: src/fe-gtk/setup.c:229
msgid "Nick Completion"
msgstr "Completamento dei soprannomi"

#: src/fe-gtk/setup.c:230
msgid "Automatic nick completion (without TAB key)"
msgstr "Completare automaticamente i soprannomi (senza utilizzare il tasto TAB)"

#: src/fe-gtk/setup.c:232
msgid "Nick completion suffix:"
msgstr "Suffisso al completamento dei soprannomi:"

#: src/fe-gtk/setup.c:233
msgid "Nick completion sorted:"
msgstr "Ordinare i soprannomi completati:"

#: src/fe-gtk/setup.c:236
msgid "Input Box Codes"
msgstr "Codici area di input"

#: src/fe-gtk/setup.c:237
#, c-format
msgid "Interpret %nnn as an ASCII value"
msgstr "Interpreta %nnn come un valore ASCII"

#: src/fe-gtk/setup.c:238
msgid "Interpret %C, %B as Color, Bold etc"
msgstr "Interpreta %C, %B come Colore, Grassetto ecc."

#: src/fe-gtk/setup.c:247
msgid "Graphical"
msgstr "Grafico"

#: src/fe-gtk/setup.c:255
msgid "A-Z, Ops first"
msgstr "alfabeticamente (A-Z), operatori all'inizio"

#: src/fe-gtk/setup.c:257
msgid "Z-A, Ops last"
msgstr "alfabeticamente (Z-A), operatori alla fine"

#: src/fe-gtk/setup.c:258
msgid "Z-A"
msgstr "alfabeticamente (Z-A)"

#: src/fe-gtk/setup.c:259
msgid "Unsorted"
msgstr "non ordinare"

#: src/fe-gtk/setup.c:265 src/fe-gtk/setup.c:277
msgid "Left (Upper)"
msgstr "a sinistra (in alto)"

#: src/fe-gtk/setup.c:266 src/fe-gtk/setup.c:278
msgid "Left (Lower)"
msgstr "a sinistra (in basso)"

#: src/fe-gtk/setup.c:267 src/fe-gtk/setup.c:279
msgid "Right (Upper)"
msgstr "a destra (in alto)"

#: src/fe-gtk/setup.c:268 src/fe-gtk/setup.c:280
msgid "Right (Lower)"
msgstr "a destra (in basso)"

#: src/fe-gtk/setup.c:269
msgid "Top"
msgstr "in alto"

#: src/fe-gtk/setup.c:270
msgid "Bottom"
msgstr "in basso"

#: src/fe-gtk/setup.c:271
msgid "Hidden"
msgstr "nascosto"

#: src/fe-gtk/setup.c:286
msgid "User List"
msgstr "Elenco utenti"

#: src/fe-gtk/setup.c:287
msgid "Show hostnames in user list"
msgstr "Mostrare nome host nell'elenco utenti"

#: src/fe-gtk/setup.c:289
msgid "Show icons for user modes"
msgstr "Mostrare icone per le modalità utente"

#: src/fe-gtk/setup.c:289
msgid "Use graphical icons instead of text symbols in the user list."
msgstr "Usa icone al posto dei simboli di testo nell'elenco utenti."

#: src/fe-gtk/setup.c:290
msgid "Color nicknames in userlist"
msgstr ""

#: src/fe-gtk/setup.c:290
msgid "Will color nicknames the same as in chat."
msgstr ""

#: src/fe-gtk/setup.c:291
msgid "Show user count in channels"
msgstr "Mostrare il numero di utenti nei canali"

#: src/fe-gtk/setup.c:293
msgid "User list sorted by:"
msgstr "Ordinare elenco utenti:"

#: src/fe-gtk/setup.c:294
msgid "Show user list at:"
msgstr "Posizionare elenco utenti:"

#: src/fe-gtk/setup.c:296
msgid "Away Tracking"
msgstr "Stato di assenza"

#: src/fe-gtk/setup.c:297
msgid "Track the Away status of users and mark them in a different color"
msgstr "Individuare lo stato di assenza degli utenti e segnarli con colore differente"

#: src/fe-gtk/setup.c:298
msgid "On channels smaller than:"
msgstr "Sui canali più piccoli di:"

#: src/fe-gtk/setup.c:300
msgid "Action Upon Double Click"
msgstr "Azione da eseguire sul doppio-clic"

#: src/fe-gtk/setup.c:303
msgid "Extra Gadgets"
msgstr "Funzioni aggiuntive"

#: src/fe-gtk/setup.c:304
msgid "Lag meter:"
msgstr "Misuratore del ritardo (lag):"

#: src/fe-gtk/setup.c:305
msgid "Throttle meter:"
msgstr "Misuratore velocità trasferimento:"

#: src/fe-gtk/setup.c:312
msgid "Windows"
msgstr "Finestre"

#: src/fe-gtk/setup.c:313 src/fe-gtk/setup.c:335
msgid "Tabs"
msgstr "Schede"

#: src/fe-gtk/setup.c:320
msgid "Always"
msgstr "Sempre"

#: src/fe-gtk/setup.c:321
msgid "Only requested tabs"
msgstr "Solo schede richieste"

#: src/fe-gtk/setup.c:327
msgid "Automatic"
msgstr ""

#: src/fe-gtk/setup.c:328
msgid "In an extra tab"
msgstr ""

#: src/fe-gtk/setup.c:329
msgid "In the front tab"
msgstr ""

#: src/fe-gtk/setup.c:337
msgid "Tree"
msgstr "Albero"

#: src/fe-gtk/setup.c:344
msgid "Switcher type:"
msgstr "Tipo di selettore canali:"

#: src/fe-gtk/setup.c:345
msgid "Open an extra tab for server messages"
msgstr "Aprire una scheda aggiuntiva per i messaggi del server"

#: src/fe-gtk/setup.c:346
msgid "Open a new tab when you receive a private message"
msgstr "Aprire una nuova scheda quando si riceve un messaggio privato"

#: src/fe-gtk/setup.c:347
msgid "Sort tabs in alphabetical order"
msgstr "Ordinare le schede in modo alfabetico"

#: src/fe-gtk/setup.c:348
msgid "Show icons in the channel tree"
msgstr "Mostrare le icone nell'albero dei canali"

#: src/fe-gtk/setup.c:349
msgid "Show dotted lines in the channel tree"
msgstr "Mostrare linee tratteggiate nell'albero dei canali"

#: src/fe-gtk/setup.c:350
msgid "Smaller text"
msgstr "Ridurre le dimensioni del testo"

#: src/fe-gtk/setup.c:351
msgid "Focus new tabs:"
msgstr "Focus nuove schede:"

#: src/fe-gtk/setup.c:352
msgid "Placement of notices:"
msgstr ""

#: src/fe-gtk/setup.c:353
msgid "Show channel switcher at:"
msgstr "Posizionare elenco canali:"

#: src/fe-gtk/setup.c:354
msgid "Shorten tab labels to:"
msgstr "Etichette schede abbreviate a:"

#: src/fe-gtk/setup.c:354
msgid "letters."
msgstr "lettere."

#: src/fe-gtk/setup.c:356
msgid "Tabs or Windows"
msgstr "Schede o finestre"

#: src/fe-gtk/setup.c:357
msgid "Open channels in:"
msgstr "Aprire canali in:"

#: src/fe-gtk/setup.c:358
msgid "Open dialogs in:"
msgstr "Aprire dialoghi in:"

#: src/fe-gtk/setup.c:359
msgid "Open utilities in:"
msgstr "Aprire utilità in:"

#: src/fe-gtk/setup.c:359
msgid "Open DCC, Ignore, Notify etc, in tabs or windows?"
msgstr "Aprire DCC, elenco ignorati, notifiche ecc, in schede o finestre?"

#: src/fe-gtk/setup.c:366
msgid "Messages"
msgstr "Messaggi"

#: src/fe-gtk/setup.c:367
msgid "Scrollback"
msgstr "Conversazioni precedenti"

#: src/fe-gtk/setup.c:375
msgid "Ask for confirmation"
msgstr "Chiedi conferma"

#: src/fe-gtk/setup.c:376
msgid "Ask for download folder"
msgstr "Chiedi quale cartella usare"

#: src/fe-gtk/setup.c:377
msgid "Save without interaction"
msgstr "Salva senza chiedere conferma"

#: src/fe-gtk/setup.c:383
msgid "Files and Directories"
msgstr "File e cartelle"

#: src/fe-gtk/setup.c:384
msgid "Auto accept file offers:"
msgstr "Accettare automaticamente i file offerti:"

#: src/fe-gtk/setup.c:385
msgid "Download files to:"
msgstr "Scaricare i file in:"

#: src/fe-gtk/setup.c:386
msgid "Move completed files to:"
msgstr "Spostare i file completi in:"

#: src/fe-gtk/setup.c:387
msgid "Save nick name in filenames"
msgstr "Salvare il soprannome nei nomi dei file"

#: src/fe-gtk/setup.c:389
msgid "Network Settings"
msgstr "Impostazioni rete"

#: src/fe-gtk/setup.c:390
msgid "Get my address from the IRC server"
msgstr "Ottenere l'indirizzo dal server IRC"

#: src/fe-gtk/setup.c:391
msgid ""
"Asks the IRC server for your real address. Use this if you have a "
"192.168.*.* address!"
msgstr "Chiede al server IRC il vero indirizzo. Abilitare questa funzione se si utilizza un indirizzo 192.168.*.*"

#: src/fe-gtk/setup.c:392
msgid "DCC IP address:"
msgstr "Indirizzo IP per DCC:"

#: src/fe-gtk/setup.c:393
msgid "Claim you are at this address when offering files."
msgstr "Mostra questo indirizzo quando si offrono file."

#: src/fe-gtk/setup.c:394
msgid "First DCC send port:"
msgstr "Prima porta invio DCC:"

#: src/fe-gtk/setup.c:395
msgid "Last DCC send port:"
msgstr "Ultima porta invio DCC:"

#: src/fe-gtk/setup.c:396
msgid "!Leave ports at zero for full range."
msgstr "!Impostare le porte a zero per utilizzare l'intervallo completo."

#: src/fe-gtk/setup.c:398
msgid "Maximum File Transfer Speeds (bytes per second)"
msgstr "Velocità massima di trasferimento file (byte per secondo)"

#: src/fe-gtk/setup.c:399
msgid "One upload:"
msgstr "Un caricamento:"

#: src/fe-gtk/setup.c:400 src/fe-gtk/setup.c:402
msgid "Maximum speed for one transfer"
msgstr "Velocità massima per un trasferimento"

#: src/fe-gtk/setup.c:401
msgid "One download:"
msgstr "Uno scaricamento:"

#: src/fe-gtk/setup.c:403
msgid "All uploads combined:"
msgstr "Tutti i caricamenti combinati:"

#: src/fe-gtk/setup.c:404 src/fe-gtk/setup.c:406
msgid "Maximum speed for all files"
msgstr "Velocità massima per tutti i file"

#: src/fe-gtk/setup.c:405
msgid "All downloads combined:"
msgstr "Tutti gli scaricamenti combinati:"

#: src/fe-gtk/setup.c:433 src/fe-gtk/setup.c:467 src/fe-gtk/setup.c:489
#: src/fe-gtk/setup.c:1945
msgid "Alerts"
msgstr "Avvisi"

#: src/fe-gtk/setup.c:437 src/fe-gtk/setup.c:470
msgid "Show tray balloons on:"
msgstr "Mostrare notifiche per:"

#: src/fe-gtk/setup.c:439
msgid "Blink tray icon on:"
msgstr "Icona lampeggiante nell'area di notifica per:"

#: src/fe-gtk/setup.c:440 src/fe-gtk/setup.c:471 src/fe-gtk/setup.c:492
msgid "Blink task bar on:"
msgstr "Barra delle attività lampeggiante per:"

#: src/fe-gtk/setup.c:441 src/fe-gtk/setup.c:472 src/fe-gtk/setup.c:493
msgid "Make a beep sound on:"
msgstr "Emettere un suono per:"

#: src/fe-gtk/setup.c:443 src/fe-gtk/setup.c:474 src/fe-gtk/setup.c:495
msgid "Omit alerts when marked as being away"
msgstr "Omettere gli avvisi quando assente"

#: src/fe-gtk/setup.c:445
msgid "Tray Behavior"
msgstr "Comportamento dell'area di notifica"

#: src/fe-gtk/setup.c:446
msgid "Enable system tray icon"
msgstr "Abilitare icona nell'area di notifica"

#: src/fe-gtk/setup.c:447
msgid "Minimize to tray"
msgstr "Minimizzare nell'area di notifica"

#: src/fe-gtk/setup.c:448
msgid "Close to tray"
msgstr "Chiudere nell'area di notifica"

#: src/fe-gtk/setup.c:449
msgid "Automatically mark away/back"
msgstr ""

#: src/fe-gtk/setup.c:449
msgid "Automatically change status when hiding to tray."
msgstr ""

#: src/fe-gtk/setup.c:451
msgid "Only show tray balloons when hidden or iconified"
msgstr "Mostrare l'avviso per l'area di notifica solo se nascosto o ridotto a icona"

#: src/fe-gtk/setup.c:454 src/fe-gtk/setup.c:476 src/fe-gtk/setup.c:497
msgid "Highlighted Messages"
msgstr "Messaggi evidenziati"

#: src/fe-gtk/setup.c:455 src/fe-gtk/setup.c:477 src/fe-gtk/setup.c:498
msgid ""
"Highlighted messages are ones where your nickname is mentioned, but also:"
msgstr "I messaggi evidenziati sono quelli in cui compare il proprio soprannome, ma anche:"

#: src/fe-gtk/setup.c:457 src/fe-gtk/setup.c:479 src/fe-gtk/setup.c:500
msgid "Extra words to highlight:"
msgstr "Altre parole da evidenziare:"

#: src/fe-gtk/setup.c:458 src/fe-gtk/setup.c:480 src/fe-gtk/setup.c:501
msgid "Nick names not to highlight:"
msgstr "Soprannomi da non evidenziare:"

#: src/fe-gtk/setup.c:459 src/fe-gtk/setup.c:481 src/fe-gtk/setup.c:502
msgid "Nick names to always highlight:"
msgstr "Soprannomi da evidenziare sempre:"

#: src/fe-gtk/setup.c:460 src/fe-gtk/setup.c:482 src/fe-gtk/setup.c:503
msgid ""
"Separate multiple words with commas.\n"
"Wildcards are accepted."
msgstr "Separare le parole con virgole.\nSono ammessi i meta-caratteri."

#: src/fe-gtk/setup.c:510
msgid "Default Messages"
msgstr "Messaggi predefiniti"

#: src/fe-gtk/setup.c:511
msgid "Quit:"
msgstr "Uscita:"

#: src/fe-gtk/setup.c:512
msgid "Leave channel:"
msgstr "Abbandono del canale:"

#: src/fe-gtk/setup.c:513
msgid "Away:"
msgstr "Assenza:"

#: src/fe-gtk/setup.c:515
msgid "Away"
msgstr "Assenza"

#: src/fe-gtk/setup.c:516
msgid "Announce away messages"
msgstr "Comunicare lo stato di assenza"

#: src/fe-gtk/setup.c:517
msgid "Announce your away messages to all channels."
msgstr "Comunica i messaggi di assenza a tutti i canali."

#: src/fe-gtk/setup.c:518
msgid "Show away once"
msgstr "Mostrare lo stato di assenza una sola volta"

#: src/fe-gtk/setup.c:518
msgid "Show identical away messages only once."
msgstr "Mostra i messaggi di assenza identici una sola volta."

#: src/fe-gtk/setup.c:519
msgid "Automatically unmark away"
msgstr "Togliere automaticamente lo stato di assenza"

#: src/fe-gtk/setup.c:519
msgid "Unmark yourself as away before sending messages."
msgstr "Toglie lo stato di assenza prima di inviare messaggi."

#: src/fe-gtk/setup.c:526 src/fe-gtk/setup.c:560
msgid "Advanced Settings"
msgstr "Impostazioni avanzate"

#: src/fe-gtk/setup.c:527
msgid "Real name:"
msgstr ""

#: src/fe-gtk/setup.c:529 src/fe-gtk/setup.c:561
msgid "Alternative fonts:"
msgstr "Caratteri alternativi:"

#: src/fe-gtk/setup.c:531 src/fe-gtk/setup.c:562
msgid "Auto reconnect delay:"
msgstr "Attesa prima della nuova connessione automatica:"

#: src/fe-gtk/setup.c:532 src/fe-gtk/setup.c:563
msgid "Auto join delay:"
msgstr ""

#: src/fe-gtk/setup.c:533 src/fe-gtk/setup.c:564
msgid "Display MODEs in raw form"
msgstr "Mostrare le «modalità» in forma grezza"

#: src/fe-gtk/setup.c:534 src/fe-gtk/setup.c:565
msgid "Whois on notify"
msgstr "Whois per notifica"

#: src/fe-gtk/setup.c:534 src/fe-gtk/setup.c:565
msgid "Sends a /WHOIS when a user comes online in your notify list."
msgstr "Invia il comando /WHOIS quando un utente presente nell'elenco di notifica si collega."

#: src/fe-gtk/setup.c:535 src/fe-gtk/setup.c:566
msgid "Hide join and part messages"
msgstr "Nascondere messaggi di entrata e uscita"

#: src/fe-gtk/setup.c:535 src/fe-gtk/setup.c:566
msgid "Hide channel join/part messages by default."
msgstr "Nasconde i messaggi di entrata e uscita nei canali in maniera predefinita."

#: src/fe-gtk/setup.c:536 src/fe-gtk/setup.c:568
msgid "Display lists in compact mode"
msgstr "Mostrare gli elenchi in modalità compatta"

#: src/fe-gtk/setup.c:536 src/fe-gtk/setup.c:568
msgid "Use less spacing between user list/channel tree rows."
msgstr "Usa una spaziatura inferiore tra l'elenco utenti e l'albero dei canali"

#: src/fe-gtk/setup.c:537 src/fe-gtk/setup.c:569
msgid "Auto Open DCC Windows"
msgstr "Apri automaticamente finestre DCC"

#: src/fe-gtk/setup.c:538 src/fe-gtk/setup.c:570
msgid "Send window"
msgstr "Finestra d'invio"

#: src/fe-gtk/setup.c:539 src/fe-gtk/setup.c:571
msgid "Receive window"
msgstr "Finestra di ricezione"

#: src/fe-gtk/setup.c:540 src/fe-gtk/setup.c:572
msgid "Chat window"
msgstr "Finestra Chat"

#: src/fe-gtk/setup.c:541 src/fe-gtk/setup.c:573
msgid "Auto Copy Behavior"
msgstr "Comportamento per la copia automatica"

#: src/fe-gtk/setup.c:542 src/fe-gtk/setup.c:574
msgid "Automatically copy selected text"
msgstr "Copiare automaticamente il testo selezionato"

#: src/fe-gtk/setup.c:543 src/fe-gtk/setup.c:575
msgid ""
"Copy selected text to clipboard when left mouse button is released. "
"Otherwise, CONTROL-SHIFT-C will copy the selected text to the clipboard."
msgstr "Copia il testo selezionato negli appunti quando il pulsante sinistro del mouse viene rilasciato. In alternativa, il testo potrà essere copiato negli appunti usando la combinazione di tasti Ctrl+Maiusc+c."

#: src/fe-gtk/setup.c:546 src/fe-gtk/setup.c:578
msgid "Automatically include time stamps"
msgstr "Includere automaticamente l'orario"

#: src/fe-gtk/setup.c:547 src/fe-gtk/setup.c:579
msgid ""
"Automatically include time stamps in copied lines of text. Otherwise, "
"include time stamps if the SHIFT key is held down while selecting."
msgstr "Include automaticamente l'orario nelle righe di testo copiate. In alternativa, per includere l'orario sarà necessario tenere premuto il tasto Maiusc durante la selezione del testo d copiare."

#: src/fe-gtk/setup.c:549 src/fe-gtk/setup.c:581
msgid "Automatically include color information"
msgstr "Includere automaticamente le informazioni sul colore"

#: src/fe-gtk/setup.c:550 src/fe-gtk/setup.c:582
msgid ""
"Automatically include color information in copied lines of text.  Otherwise,"
" include color information if the CONTROL key is held down while selecting."
msgstr "Include automaticamente le informazioni sul colore contenute nellerighe di testo copiate. In alternativa, per includere le informazioni sul colore sarà necessario tenere premuto il tasto Ctrl durante la selezione del testo da copiare."

#: src/fe-gtk/setup.c:592 src/fe-gtk/setup.c:1947
msgid "Logging"
msgstr "Registrazione"

#: src/fe-gtk/setup.c:593
msgid "Display scrollback from previous session"
msgstr "Mostrare conversazioni della sessione precedente"

#: src/fe-gtk/setup.c:594
msgid "Scrollback lines:"
msgstr "Righe precedenti visibili:"

#: src/fe-gtk/setup.c:595
msgid "Enable logging of conversations to disk"
msgstr "Abilitare registrazione delle conversazioni sul disco"

#: src/fe-gtk/setup.c:596
msgid "Log filename:"
msgstr "Nome file del registro:"

#: src/fe-gtk/setup.c:597
#, c-format
msgid "%s=Server %c=Channel %n=Network."
msgstr "%s=Server %c=Canale %n=Rete."

#: src/fe-gtk/setup.c:600
msgid "Insert timestamps in logs"
msgstr "Inserire orario nei registri"

#: src/fe-gtk/setup.c:601
msgid "Log timestamp format:"
msgstr "Formato orario del registro:"

#: src/fe-gtk/setup.c:608
msgid "URLs"
msgstr "URL"

#: src/fe-gtk/setup.c:609
msgid "Enable logging of URLs to disk"
msgstr "Abilitare la registrazione degli URL sul diso"

#: src/fe-gtk/setup.c:610
msgid "Enable URL grabber"
msgstr "Abilitare la collezione degli URL"

#: src/fe-gtk/setup.c:611
msgid "Maximum number of URLs to grab:"
msgstr "Numero massimo di URL da collezionare:"

#: src/fe-gtk/setup.c:618
msgid "(Disabled)"
msgstr "(disabilitato)"

#: src/fe-gtk/setup.c:619
msgid "Wingate"
msgstr "Wingate"

#: src/fe-gtk/setup.c:620
msgid "Socks4"
msgstr "Sock4"

#: src/fe-gtk/setup.c:621
msgid "Socks5"
msgstr "Sock5"

#: src/fe-gtk/setup.c:622
msgid "HTTP"
msgstr "HTTP"

#: src/fe-gtk/setup.c:624
msgid "MS Proxy (ISA)"
msgstr "MS Proxy (ISA)"

#: src/fe-gtk/setup.c:627
msgid "Auto"
msgstr "Automatico"

#: src/fe-gtk/setup.c:634
msgid "All Connections"
msgstr "tutte le connessioni"

#: src/fe-gtk/setup.c:635
msgid "IRC Server Only"
msgstr "solo Server IRC"

#: src/fe-gtk/setup.c:636
msgid "DCC Get Only"
msgstr "solo per DCC"

#: src/fe-gtk/setup.c:642
msgid "Your Address"
msgstr "Proprio indirizzo"

#: src/fe-gtk/setup.c:643
msgid "Bind to:"
msgstr "Associare a:"

#: src/fe-gtk/setup.c:644
msgid "Only useful for computers with multiple addresses."
msgstr "Utile solo per computer con indirizzi multipli."

#: src/fe-gtk/setup.c:646
msgid "Proxy Server"
msgstr "Server proxy"

#: src/fe-gtk/setup.c:647
msgid "Hostname:"
msgstr "Nome host:"

#: src/fe-gtk/setup.c:648
msgid "Port:"
msgstr "Porta:"

#: src/fe-gtk/setup.c:649
msgid "Type:"
msgstr "Tipo:"

#: src/fe-gtk/setup.c:650
msgid "Use proxy for:"
msgstr "Usa proxy per:"

#: src/fe-gtk/setup.c:652
msgid "Proxy Authentication"
msgstr "Autenticazione proxy"

#: src/fe-gtk/setup.c:654
msgid "Use Authentication (MS Proxy, HTTP or Socks5 only)"
msgstr "Usare autenticazione (MS Proxy, HTTP o solo Socks5)"

#: src/fe-gtk/setup.c:656
msgid "Use Authentication (HTTP or Socks5 only)"
msgstr "Usare autenticazione (HTTP o solo Socks5)"

#: src/fe-gtk/setup.c:658
msgid "Username:"
msgstr "Nome utente:"

#: src/fe-gtk/setup.c:659
msgid "Password:"
msgstr "Password:"

#: src/fe-gtk/setup.c:1093
msgid "Select an Image File"
msgstr "Seleziona un'immagine"

#: src/fe-gtk/setup.c:1128
msgid "Select Download Folder"
msgstr "Seleziona la cartella di scaricamento"

#: src/fe-gtk/setup.c:1137
msgid "Select font"
msgstr "Seleziona il carattere"

#: src/fe-gtk/setup.c:1237
msgid "Browse..."
msgstr "Sfoglia..."

#: src/fe-gtk/setup.c:1375
msgid "Mark identified users with:"
msgstr "Segna utenti identificati con:"

#: src/fe-gtk/setup.c:1377
msgid "Mark not-identified users with:"
msgstr "Segna utenti non identificati con:"

#: src/fe-gtk/setup.c:1384
msgid "Open Data Folder"
msgstr "Apri cartella dati..."

#: src/fe-gtk/setup.c:1438
msgid "Select color"
msgstr "Seleziona un colore"

#: src/fe-gtk/setup.c:1518
msgid "Text Colors"
msgstr "Colori del testo"

#: src/fe-gtk/setup.c:1520
msgid "mIRC colors:"
msgstr "Colori di mIRC:"

#: src/fe-gtk/setup.c:1528
msgid "Local colors:"
msgstr "Colori locali:"

#: src/fe-gtk/setup.c:1536 src/fe-gtk/setup.c:1541
msgid "Foreground:"
msgstr "Primo piano:"

#: src/fe-gtk/setup.c:1537 src/fe-gtk/setup.c:1542
msgid "Background:"
msgstr "Sfondo:"

#: src/fe-gtk/setup.c:1539
msgid "Selected Text"
msgstr "Testo selezionato"

#: src/fe-gtk/setup.c:1544
msgid "Interface Colors"
msgstr "Colori dell'interfaccia"

#: src/fe-gtk/setup.c:1546
msgid "New data:"
msgstr "Nuova data:"

#: src/fe-gtk/setup.c:1547
msgid "Marker line:"
msgstr "Seleziona linea:"

#: src/fe-gtk/setup.c:1548
msgid "New message:"
msgstr "Nuovo messaggio:"

#: src/fe-gtk/setup.c:1549
msgid "Away user:"
msgstr "Utente assente:"

#: src/fe-gtk/setup.c:1550
msgid "Highlight:"
msgstr "Evidenziazione:"

#: src/fe-gtk/setup.c:1552
msgid "Spell checker:"
msgstr "Controllo ortografico:"

#: src/fe-gtk/setup.c:1555
msgid "Color Stripping"
msgstr ""

#: src/fe-gtk/setup.c:1661 src/fe-gtk/textgui.c:389
msgid "Event"
msgstr "Evento"

#: src/fe-gtk/setup.c:1667
msgid "Sound file"
msgstr "File sonoro"

#: src/fe-gtk/setup.c:1702
msgid "Select a sound file"
msgstr "Seleziona un file sonoro"

#: src/fe-gtk/setup.c:1774
msgid "Sound playing method:"
msgstr "Metodo esecuzione suono:"

#: src/fe-gtk/setup.c:1782
msgid "External sound playing _program:"
msgstr "_Programma di riproduzione esterno"

#: src/fe-gtk/setup.c:1800
msgid "_External program"
msgstr "Programma _esterno"

#: src/fe-gtk/setup.c:1810
msgid "_Automatic"
msgstr "_Automatico"

#: src/fe-gtk/setup.c:1823
msgid "Sound files _directory:"
msgstr "_Directory file sonoro:"

#: src/fe-gtk/setup.c:1862
msgid "Sound file:"
msgstr "File sonoro:"

#: src/fe-gtk/setup.c:1877
msgid "_Browse..."
msgstr "_Sfoglia..."

#: src/fe-gtk/setup.c:1888
msgid "_Play"
msgstr "Ri_produci"

#: src/fe-gtk/setup.c:1937
msgid "Interface"
msgstr "Interfaccia"

#: src/fe-gtk/setup.c:1938
msgid "Appearance"
msgstr "Aspetto"

#: src/fe-gtk/setup.c:1939
msgid "Input box"
msgstr "Area di testo"

#: src/fe-gtk/setup.c:1940
msgid "User list"
msgstr "Elenco utenti"

#: src/fe-gtk/setup.c:1941
msgid "Channel switcher"
msgstr "Elenco canali"

#: src/fe-gtk/setup.c:1942
msgid "Colors"
msgstr "Colori"

#: src/fe-gtk/setup.c:1944
msgid "Chatting"
msgstr "Finestra di chat"

#: src/fe-gtk/setup.c:1948
msgid "Sound"
msgstr "Suono"

#: src/fe-gtk/setup.c:1949
msgid "Advanced"
msgstr "Avanzate"

#: src/fe-gtk/setup.c:1952
msgid "Network setup"
msgstr "Impostazioni rete"

#: src/fe-gtk/setup.c:1953
msgid "File transfers"
msgstr "Trasferimenti di file"

#: src/fe-gtk/setup.c:2091
msgid "Categories"
msgstr "Categorie"

#: src/fe-gtk/setup.c:2300
msgid ""
"You cannot place the tree on the top or bottom!\n"
"Please change to the <b>Tabs</b> layout in the <b>View</b> menu first."
msgstr "Impossibile posizionare l'albero in alto o in basso.\nSelezionare prima la vista a <b>Schede</b> nel menù <b>Visualizza</b>."

#: src/fe-gtk/setup.c:2327
msgid "Invalid time stamp format! See the strftime MSDN article for details."
msgstr "Formato orario non corretto. Per maggiori informazioni, consultare l'articolo MSDN di strftime."

#: src/fe-gtk/setup.c:2334
msgid "Some settings were changed that require a restart to take full effect."
msgstr "Alcune impostazioni sono state modificate e richiedono il riavvio per essere applicate."

#: src/fe-gtk/setup.c:2342
msgid ""
"*WARNING*\n"
"Auto accepting DCC to your home directory\n"
"can be dangerous and is exploitable. Eg:\n"
"Someone could send you a .bash_profile"
msgstr "*ATTENZIONE*\nAccettare automaticamente DCC nella propria home\npotrebbe essere pericoloso. Esempio:\nQualcuno potrebbe inserire un file .bash_profile"

#: src/fe-gtk/setup.c:2375
msgid ": Preferences"
msgstr ": preferenze"

#: src/fe-gtk/sexy-spell-entry.c:462
msgid "<i>(no suggestions)</i>"
msgstr "<i>(nessun suggerimento)</i>"

#: src/fe-gtk/sexy-spell-entry.c:476
msgid "More..."
msgstr "Altro..."

#: src/fe-gtk/sexy-spell-entry.c:545
#, c-format
msgid "Add \"%s\" to Dictionary"
msgstr "Aggiungi «%s» al dizionario"

#: src/fe-gtk/sexy-spell-entry.c:587
msgid "Ignore All"
msgstr "Ignora tutto"

#: src/fe-gtk/sexy-spell-entry.c:622
msgid "Spelling Suggestions"
msgstr "Suggerimenti ortografici"

#: src/fe-gtk/sexy-spell-entry.c:1066
#, c-format
msgid "enchant error for language: %s"
msgstr ""

#: src/fe-gtk/textgui.c:180
msgid "There was an error parsing the string"
msgstr "Si è verificato un errore analizzando la stringa"

#: src/fe-gtk/textgui.c:188
#, c-format
msgid "This signal is only passed %d args, $%d is invalid"
msgstr "A questo segnale vengono passati solo %d argomenti, $%d non è valido"

#: src/fe-gtk/textgui.c:304 src/fe-gtk/textgui.c:327
msgid "Print Texts File"
msgstr "Salva in un file di testo"

#: src/fe-gtk/textgui.c:372
msgid "Edit Events"
msgstr "Modifica eventi"

#: src/fe-gtk/textgui.c:423
msgid "$ Number"
msgstr "$ Numero"

#: src/fe-gtk/textgui.c:440
msgid "Load From..."
msgstr "Carica da..."

#: src/fe-gtk/textgui.c:441
msgid "Test All"
msgstr "Prova tutto"

#: src/fe-gtk/urlgrab.c:97
msgid "URL"
msgstr "URL"

#: src/fe-gtk/urlgrab.c:199
msgid ": URL Grabber"
msgstr ": URL collezionati"

#: src/fe-gtk/urlgrab.c:213
msgid "Clear list"
msgstr "Pulisci elenco"

#: src/fe-gtk/urlgrab.c:215
msgid "Copy selected URL"
msgstr "Copia l'URL selezionato"

#: src/fe-gtk/urlgrab.c:215
msgid "Copy"
msgstr "Copia"

#: src/fe-gtk/urlgrab.c:217
msgid "Save list to a file"
msgstr "Salva l'elenco in un file"

#: src/fe-gtk/userlistgui.c:123
#, c-format
msgid "%d ops, %d total"
msgstr "%d op, %d totali"