# SOME DESCRIPTIVE TITLE. # This file is put in the public domain. # # Translators: # Neethan Puvanendran , 2013. # Thor K.H. , 2012-2013. 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-29 19:52+0000\n" "Last-Translator: bviktor \n" "Language-Team: Norwegian Bokmål (http://www.transifex.com/projects/p/hexchat/language/nb/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: nb\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: src/common/cfgfiles.c:746 msgid "I'm busy" msgstr "Jeg er opptatt" #: src/common/cfgfiles.c:773 msgid "Leaving" msgstr "Forlater kanalen" #: 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 "* Det er ikke lurt å kjøre IRC som root! Du bør\n opprette en vanlig brukerkonto og bruke denne.\n" #: src/common/dcc.c:81 msgid "Waiting" msgstr "Venter" #: src/common/dcc.c:82 msgid "Active" msgstr "Aktiv" #: src/common/dcc.c:83 msgid "Failed" msgstr "Feilet" #: src/common/dcc.c:84 msgid "Done" msgstr "Ferdig" #: src/common/dcc.c:85 src/fe-gtk/menu.c:943 msgid "Connect" msgstr "Koble til" #: src/common/dcc.c:86 msgid "Aborted" msgstr "Avbrutt" #: src/common/dcc.c:1885 src/common/outbound.c:2539 #, c-format msgid "Cannot access %s\n" msgstr "Kan ikke aksessere %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 "Feil" #: src/common/dcc.c:2364 #, c-format msgid "%s is offering \"%s\". Do you want to accept?" msgstr "%s tilbyr \"%s\". Ønsker du å godta?" #: src/common/dcc.c:2579 msgid "No active DCCs\n" msgstr "Ingen aktive DCC\n" #: src/common/hexchat.c:842 msgid "_Open Dialog Window" msgstr "Åpne dial_ogvindu" #: src/common/hexchat.c:843 msgid "_Send a File" msgstr "_Send en fil" #: src/common/hexchat.c:844 msgid "_User Info (WhoIs)" msgstr "Br_ukerinfo (WhoIs)" #: src/common/hexchat.c:845 msgid "_Add to Friends List" msgstr "_Legg til i vennelisten" #: src/common/hexchat.c:846 msgid "_Ignore" msgstr "_Ignorer" #: src/common/hexchat.c:847 msgid "O_perator Actions" msgstr "O_peratorhandlinger" #: src/common/hexchat.c:849 msgid "Give Ops" msgstr "Gi operatørstatus" #: src/common/hexchat.c:850 msgid "Take Ops" msgstr "Ta operatørstatus" #: src/common/hexchat.c:851 msgid "Give Voice" msgstr "Gi stemme" #: src/common/hexchat.c:852 msgid "Take Voice" msgstr "Ta stemme" #: src/common/hexchat.c:854 msgid "Kick/Ban" msgstr "Spark/Bannlys" #: src/common/hexchat.c:855 src/common/hexchat.c:892 msgid "Kick" msgstr "Spark" #: 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 "Bannlys" #: src/common/hexchat.c:861 src/common/hexchat.c:862 src/common/hexchat.c:863 #: src/common/hexchat.c:864 msgid "KickBan" msgstr "Spark og bannlys" #: src/common/hexchat.c:874 msgid "Leave Channel" msgstr "Forlat kanal" #: src/common/hexchat.c:875 msgid "Join Channel..." msgstr "Bli med i kanal..." #: src/common/hexchat.c:876 src/fe-gtk/menu.c:1336 msgid "Enter Channel to Join:" msgstr "Skriv inn kanal:" #: src/common/hexchat.c:877 msgid "Server Links" msgstr "Lenker til tjenere" #: src/common/hexchat.c:878 msgid "Ping Server" msgstr "Ping tjener" #: src/common/hexchat.c:879 msgid "Hide Version" msgstr "Skjul versjon" #: 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 "hadet" #: src/common/hexchat.c:894 #, c-format msgid "Enter reason to kick %s:" msgstr "Skriv inn grunnen for å sparke %s:" #: src/common/hexchat.c:895 msgid "Sendfile" msgstr "Send fil" #: src/common/hexchat.c:896 msgid "Dialog" msgstr "Dialog" #: src/common/hexchat.c:905 msgid "WhoIs" msgstr "WhoIs" #: src/common/hexchat.c:906 msgid "Send" msgstr "Send" #: 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 "Tøm" #: 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 "JA " #: 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 "NEI " #: src/common/ignore.c:383 #, c-format msgid "You are being CTCP flooded from %s, ignoring %s\n" msgstr "Du mottar en flom av CTCP-forespørsler fra %s, ignorerer %s\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 tilkoblet\n" #: src/common/notify.c:480 #, c-format msgid " %-20s offline\n" msgstr "%-20s frakoblet\n" #: src/common/outbound.c:72 msgid "No channel joined. Try /join #\n" msgstr "Ikke med i noe kanal. Prøv /join #\n" #: src/common/outbound.c:78 msgid "Not connected. Try /server []\n" msgstr "Ikke tilkoblet. Prøv /server []\n" #: src/common/outbound.c:281 #, c-format msgid "Server %s already exists on network %s.\n" msgstr "Serveren %s eksisterer allerede på netverket %s.\n" #: src/common/outbound.c:287 #, c-format msgid "Added server %s to network %s.\n" msgstr "La serveren %s til i nettverket %s.\n" #: src/common/outbound.c:373 #, c-format msgid "Already marked away: %s\n" msgstr "Allerede markert som borte: %s\n" #: src/common/outbound.c:446 msgid "Already marked back.\n" msgstr "Allerede markert som tilbake.\n" #: src/common/outbound.c:1812 msgid "I need /bin/sh to run!\n" msgstr "/bin/sh trengs for at dette skal kjøres!\n" #: src/common/outbound.c:2203 msgid "Commands Available:" msgstr "Tilgjengelige kommandoer:" #: src/common/outbound.c:2217 msgid "User defined commands:" msgstr "Brukerdefinerte kommandoer:" #: src/common/outbound.c:2233 msgid "Plugin defined commands:" msgstr "Kommandoer definert av tillegg:" #: src/common/outbound.c:2244 msgid "Type /HELP for more information, or /HELP -l" msgstr "Prøv /HELP for mer informasjon, eller /HELP -I" #: src/common/outbound.c:2328 #, c-format msgid "Unknown arg '%s' ignored." msgstr "Ukjent argument «%s» ble ignorert." #: src/common/outbound.c:3329 msgid "No such plugin found.\n" msgstr "Tillegg ikke funnet.\n" #: src/common/outbound.c:3334 src/fe-gtk/plugingui.c:190 msgid "That plugin is refusing to unload.\n" msgstr "Tillegget vil ikke lastes ut.\n" #: src/common/outbound.c:3609 msgid "ADDBUTTON , adds a button under the user-list" msgstr "ADDBUTTON , legger til en knapp under brukerlisten" #: src/common/outbound.c:3610 msgid "" "ADDSERVER , adds a new network with a new " "server to the network list" msgstr "ADDSERVER , legger til et nytt nettverk med en ny vert i nettverkslisten" #: src/common/outbound.c:3612 msgid "ALLCHAN , sends a command to all channels you're in" msgstr "ALLCHAN , sender en kommando til alle kanaler du er med i" #: src/common/outbound.c:3614 msgid "ALLCHANL , sends a command to all channels on the current server" msgstr "ALLCHANL , sender en kommando til alle kanalene på den nåværende verten" #: src/common/outbound.c:3616 msgid "ALLSERV , sends a command to all servers you're in" msgstr "ALLSERV , sender en kommando til alle verter du er tilkoblet" #: src/common/outbound.c:3617 msgid "AWAY [], sets you away" msgstr "AWAY [], markerer deg som borte" #: src/common/outbound.c:3618 msgid "BACK, sets you back (not away)" msgstr "BACK, markerer deg som tilbake (ikke borte)" #: src/common/outbound.c:3620 msgid "" "BAN [], bans everyone matching the mask from the current " "channel. If they are already on the channel this doesn't kick them (needs " "chanop)" msgstr "BAN [], utestenger alle som passer masken i den nåværende kanalen. Om de allerede er i kanalen vil de ikke bli kastet ut samtidig. (Krever chanop.)" #: src/common/outbound.c:3621 msgid "CHANOPT [-quiet] []" msgstr "CHANOPT [-quiet] []" #: src/common/outbound.c:3622 msgid "" "CHARSET [], get or set the encoding used for the current " "connection" msgstr "CHARSET [], hent ut eller sett tegnsettet som brukes for den nåværende tilkoblingen" #: src/common/outbound.c:3623 msgid "CLEAR [ALL|HISTORY], Clears the current text window or command history" msgstr "CLEAR [ALL|HISTORY], tilbakestiller det aktive tekstvinduet eller kommandohistorien" #: src/common/outbound.c:3624 msgid "CLOSE, Closes the current window/tab" msgstr "CLOSE, lukker det aktive vinduet/fanen" #: src/common/outbound.c:3627 msgid "COUNTRY [-s] , finds a country code, eg: au = australia" msgstr "COUNTRY [-s] , finner en landskode, f.eks.: au = australia" #: src/common/outbound.c:3629 msgid "" "CTCP , send the CTCP message to nick, common messages are " "VERSION and USERINFO" msgstr "CTCP , sender CTCP-meldingen til kallenavnet. Ofte brukte meldinger er VERSION og USERINFO" #: src/common/outbound.c:3631 msgid "" "CYCLE [], parts the current or given channel and immediately " "rejoins" msgstr "CYCLE [], forlater aktiv eller spesifisert kanal og blir øyeblikkelig med igjen" #: src/common/outbound.c:3633 msgid "" "\n" "DCC GET - accept an offered file\n" "DCC SEND [-maxcps=#] [file] - send a file to someone\n" "DCC PSEND [-maxcps=#] [file] - send a file using passive mode\n" "DCC LIST - show DCC list\n" "DCC CHAT - offer DCC CHAT to someone\n" "DCC PCHAT - offer DCC CHAT using passive mode\n" "DCC CLOSE example:\n" " /dcc close send johnsmith file.tar.gz" msgstr "\nDCC GET - godta en tilbydt fil\nDCC SEND [-maxcps=#] [] - send en fil til noen\nDCC PSEND [-maxcps=#] [] - send en fil i passiv modus\nDCC LIST - vis DCC-liste\nDCC CHAT - tilby DCC-samtale til noen\nDCC PCHAT - tilby DCC-samtale i passiv modus\nDCC CLOSE eksempel:\n /dcc close send olanormann fil.tar.gz" #: src/common/outbound.c:3645 msgid "" "DEHOP , removes chanhalf-op status from the nick on the current " "channel (needs chanop)" msgstr "DEHOP , fjerner chanhalf-op status fra kallenavnet i den aktive kanalen (krever chanop)" #: src/common/outbound.c:3647 msgid "DELBUTTON , deletes a button from under the user-list" msgstr "DELBUTTON , fjerner en knapp under brukerlisten" #: src/common/outbound.c:3649 msgid "" "DEOP , removes chanop status from the nick on the current channel " "(needs chanop)" msgstr "DEOP , fjerner chanop status fra kallenavnet i den aktive kanalen. (Krever chanop)" #: src/common/outbound.c:3651 msgid "" "DEVOICE , removes voice status from the nick on the current channel " "(needs chanop)" msgstr "DEVOICE , fjerner stemme-status fra kallenavnet i den aktive kanalen. (krever chanop)" #: src/common/outbound.c:3652 msgid "DISCON, Disconnects from server" msgstr "DISCON, kobler fra vert" #: src/common/outbound.c:3653 msgid "DNS , Finds a users IP number" msgstr "DNS , finner en brukers IP-adresse" #: src/common/outbound.c:3654 msgid "ECHO , Prints text locally" msgstr "ECHO , viser tekst lokalt" #: src/common/outbound.c:3657 msgid "" "EXEC [-o] , runs the command. If -o flag is used then output is " "sent to current channel, else is printed to current text box" msgstr "EXEC [-o] , kjører kommandoen. Hvis -o flagget brukes, så vil utdata bli sendt til den aktive kanalen, hvis ikke vises det lokalt" #: src/common/outbound.c:3659 msgid "EXECCONT, sends the process SIGCONT" msgstr "EXECCONT, sender SIGCONT til prosessen" #: 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] , dreper en kommando som kjører i den aktive sesjonen. Hvis -9 brukes, så vil prosessen bli SIGKILL-drept." #: src/common/outbound.c:3664 msgid "EXECSTOP, sends the process SIGSTOP" msgstr "EXECSTOP, sender SIGSTOP til prosessen" #: src/common/outbound.c:3665 msgid "EXECWRITE, sends data to the processes stdin" msgstr "EXECWRITE, sender data til prosessens stdin" #: src/common/outbound.c:3669 msgid "EXPORTCONF, exports HexChat settings" msgstr "EXPORTCONF, eksporterer innstillingene til HexChat" #: src/common/outbound.c:3672 msgid "FLUSHQ, flushes the current server's send queue" msgstr "FLUSHQ, tømmer den aktive vertens sende-kø" #: src/common/outbound.c:3674 msgid "GATE [], proxies through a host, port defaults to 23" msgstr "GATE [], bruker en vert som mellommann, standard port er 23" #: src/common/outbound.c:3678 msgid "GHOST [password], Kills a ghosted nickname" msgstr "GHOST [], dreper et GHOST-et kallenavn" #: src/common/outbound.c:3683 msgid "HOP , gives chanhalf-op status to the nick (needs chanop)" msgstr "HOP , gir chanhalf-op status til kallenavnet i den aktive kanalen (krever chanop)" #: src/common/outbound.c:3684 msgid "ID , identifies yourself to nickserv" msgstr "ID , identifiserer deg til NickServ " #: src/common/outbound.c:3686 msgid "" "IGNORE \n" " mask - host mask to ignore, eg: *!*@*.aol.com\n" " types - types of data to ignore, one or all of:\n" " PRIV, CHAN, NOTI, CTCP, DCC, INVI, ALL\n" " options - NOSAVE, QUIET" msgstr "IGNORE \n maske - vertsmaske som skal ignoreres, f.eks.: *!*@*.aol.com\n typer - datatyper som skal ignoreres, en eller alle av:\n PRIV, CHAN, NOTI, CTCP, DCC, INVI, ALL\n alternativer - NOSAVE, QUIET" #: src/common/outbound.c:3693 msgid "" "INVITE [], invites someone to a channel, by default the " "current channel (needs chanop)" msgstr "INVITER [], inviterer noen til en kanal, hvor aktiv kanal er standarden (krever chanop)" #: src/common/outbound.c:3694 msgid "JOIN , joins the channel" msgstr "JOIN , blir med i kanalen" #: src/common/outbound.c:3696 msgid "KICK , kicks the nick from the current channel (needs chanop)" msgstr "KICK , kaster ut kallenavnet fra den aktive kanalen (krever chanop)" #: src/common/outbound.c:3698 msgid "" "KICKBAN , bans then kicks the nick from the current channel (needs " "chanop)" msgstr "KICKBAN , utestenger og kaster ut kallenavnet fra den aktive kanalen (krever chanop)" #: src/common/outbound.c:3701 msgid "LAGCHECK, forces a new lag check" msgstr "LAGCHECK, tvinger frem en ny sjekk av lag" #: src/common/outbound.c:3703 msgid "" "LASTLOG [-h] [-m] [-r] [--] , searches for a string in the buffer\n" " Use -h to highlight the found string(s)\n" " Use -m to match case\n" " Use -r when string is a Regular Expression\n" " Use -- (double hyphen) to end options when searching for, say, the string '-r'" msgstr "LASTLOG [-h] [-m] [-r] [--] , søker etter en tekst i mellomlageret\n Bruk -h for å markere funnet tekst\n Bruk -m for sensitivitet til store og små bokstaver\n Bruk -r når tekst er et regulært uttrykk\n Bruk -- (dobbel bindestrek) for å avslutte alternativer når du f.eks. søker etter teksten '-r'" #: src/common/outbound.c:3709 msgid "LOAD [-e] , loads a plugin or script" msgstr "LOAD [-e] , laster et tillegg eller skript" #: src/common/outbound.c:3712 msgid "" "MDEHOP, Mass deop's all chanhalf-ops in the current channel (needs chanop)" msgstr "MDEHOP, fjerner samtlige chanhalf-op statuser i den aktive kanalen (krever chanop)" #: src/common/outbound.c:3714 msgid "MDEOP, Mass deop's all chanops in the current channel (needs chanop)" msgstr "MDEOP, fjerner samtlige chanops i den aktive kanalen (krever chanop)" #: src/common/outbound.c:3716 msgid "" "ME , sends the action to the current channel (actions are written in" " the 3rd person, like /me jumps)" msgstr "ME , sender handlingen til den aktive kanalen (handlinger skrives i tredjeperson, som f.eks. /me hoppet)" #: src/common/outbound.c:3720 msgid "" "MKICK, Mass kicks everyone except you in the current channel (needs chanop)" msgstr "MKICK, kaster ut samtlige personer i den aktive kanalen, bortsett fra deg (krever chanop)" #: src/common/outbound.c:3723 msgid "MOP, Mass op's all users in the current channel (needs chanop)" msgstr "MOP, gir samtlige personer chanop i den aktive kanalen (krever chanop)" #: src/common/outbound.c:3724 msgid "MSG , sends a private message" msgstr "MSG , sender en privat melding" #: src/common/outbound.c:3727 msgid "NAMES, Lists the nicks on the current channel" msgstr "NAMES, lister kallenavnene i den aktive kanalen" #: src/common/outbound.c:3729 msgid "NCTCP , Sends a CTCP notice" msgstr "NCTCP , sender et CTCP-varsel" #: src/common/outbound.c:3730 msgid "NEWSERVER [-noconnect] []" msgstr "NEWSERVER [-noconnect] []" #: src/common/outbound.c:3731 msgid "NICK , sets your nick" msgstr "NICK , endrer kallenavnet ditt" #: src/common/outbound.c:3734 msgid "" "NOTICE , sends a notice. Notices are a type of " "message that should be auto reacted to" msgstr "NOTICE , sender et varsel. Varslinger er en type meldinger som automatisk burde ha en konsekvens" #: src/common/outbound.c:3736 msgid "" "NOTIFY [-n network1[,network2,...]] [], displays your notify list or " "adds someone to it" msgstr "NOTIFY [-n nettverk1[,nettverk2,...]] [], viser en liste av dine NOTIFY eller legger noen til den" #: src/common/outbound.c:3738 msgid "OP , gives chanop status to the nick (needs chanop)" msgstr "OP , gir chanop status til kallenavnet i den aktive kanalen (krever chanop)" #: src/common/outbound.c:3740 msgid "" "PART [] [], leaves the channel, by default the current one" msgstr "PART [] [], forlater kanalen, som standard den aktive" #: src/common/outbound.c:3742 msgid "PING , CTCP pings nick or channel" msgstr "PING , CTCP-pinger et kallenavn eller en kanal" #: src/common/outbound.c:3744 msgid "QUERY [-nofocus] , opens up a new privmsg window to someone" msgstr "QUERY [-nofocus] , åpner et nytt vindu for private meldinger med noen" #: src/common/outbound.c:3746 msgid "QUIT [], disconnects from the current server" msgstr "QUIT [], kobler deg fra den nåværende verten" #: src/common/outbound.c:3748 msgid "QUOTE , sends the text in raw form to the server" msgstr "QUOTE , sender teksten i rå form til verten" #: src/common/outbound.c:3751 msgid "" "RECONNECT [-ssl] [] [] [], Can be called just as " "/RECONNECT to reconnect to the current server or with /RECONNECT ALL to " "reconnect to all the open servers" msgstr "RECONNECT [-ssl] [] [] [], kan bli brukt som /RECONNECT for å koble til nåværende vert på ny eller med /RECONNECT ALL for å koble til alle" #: src/common/outbound.c:3754 msgid "" "RECONNECT [] [] [], Can be called just as /RECONNECT " "to reconnect to the current server or with /RECONNECT ALL to reconnect to " "all the open servers" msgstr "RECONNECT [] [] [], kan bli brukt som /RECONNECT for å koble til nåværende vert på ny eller med /RECONNECT ALL for å koble til alle" #: src/common/outbound.c:3756 msgid "" "RECV , send raw data to HexChat, as if it was received from the IRC " "server" msgstr "RECV , send rå data til HexChat, som om det var mottatt fra IRC-verten" #: src/common/outbound.c:3759 msgid "SAY , sends the text to the object in the current window" msgstr "SAY , sender teksten til objektet i det aktive vinduet" #: src/common/outbound.c:3760 msgid "SEND []" msgstr "SEND []" #: src/common/outbound.c:3763 msgid "SERVCHAN [-ssl] , connects and joins a channel" msgstr "SERVCHAN [-ssl] , kobler til og blir med i en kanal" #: src/common/outbound.c:3766 msgid "SERVCHAN , connects and joins a channel" msgstr "SERVCHAN , kobler til og blir med i en kanal" #: src/common/outbound.c:3770 msgid "" "SERVER [-ssl] [] [], connects to a server, the " "default port is 6667 for normal connections, and 6697 for ssl connections" msgstr "SERVER [-ssl] [] [], kobler til en vert med standard port som 6667 for vanlige tilkoblinger, og 6697 for SSL-tilkoblinger" #: src/common/outbound.c:3773 msgid "" "SERVER [] [], connects to a server, the default port " "is 6667" msgstr "SERVER [] [], kobler til en vert med standard port som 6667" #: src/common/outbound.c:3775 msgid "SET [-e] [-off|-on] [-quiet] []" msgstr "SET [-e] [-off|-on] [-quiet] []" #: src/common/outbound.c:3776 msgid "SETCURSOR [-|+], reposition the cursor in the inputbox" msgstr "SETCURSOR [-|+], endre posisjonen til markøren i inndataboksen" #: src/common/outbound.c:3777 msgid "SETTAB , change a tab's name, tab_trunc limit still applies" msgstr "SETTAB , endre navnet til en fane, tab_trunc-grensen gjelder fortsatt" #: src/common/outbound.c:3778 msgid "SETTEXT , replace the text in the input box" msgstr "SETTEXT , erstatter teksten i inndataboksen" #: src/common/outbound.c:3781 msgid "" "TOPIC [], sets the topic if one is given, else shows the current " "topic" msgstr "TOPIC [], endrer kanalens emne om gitt, hvis ikke vises det nåværende emnet" #: src/common/outbound.c:3783 msgid "" "\n" "TRAY -f [] Blink tray between two icons.\n" "TRAY -f Set tray to a fixed icon.\n" "TRAY -i Blink tray with an internal icon.\n" "TRAY -t Set the tray tooltip.\n" "TRAY -b <text> Set the tray balloon." msgstr "\nTRAY -f <tidsavbrud> <fil1> [<fil2>] Blink systemkurvikonet mellom to ikoner.\nTRAY -f <filnavn> Sett systemkurvikonet til et ikon.\nTRAY -i <nummer> Blink systemkurvikonet med et internt ikon.\nTRAY -t <tekst> Sett systemkurvens infoboble.\nTRAY -b <tittel> <tekst> Sett systemkurves varslingsboble." #: src/common/outbound.c:3790 msgid "UNBAN <mask> [<mask>...], unbans the specified masks." msgstr "UNBAN <maske> [<maske>...], fjerner utestengingen av de spesifiserte maskene." #: src/common/outbound.c:3791 msgid "UNIGNORE <mask> [QUIET]" msgstr "UNIGNORE <maske> [QUIET]" #: src/common/outbound.c:3792 msgid "UNLOAD <name>, unloads a plugin or script" msgstr "UNLOAD <navn>, laster ut et tillegg eller skript" #: src/common/outbound.c:3793 msgid "URL <url>, opens a URL in your browser" msgstr "URL <url>, åpner en URL i din nettleser" #: src/common/outbound.c:3795 msgid "" "USELECT [-a] [-s] <nick1> <nick2> etc, highlights nick(s) in channel " "userlist" msgstr "USELECT [-a] [-s] <kallenavn1> <kallenavn2> osv, markerer kallenavn(er) i kanalens brukerliste" #: src/common/outbound.c:3798 msgid "VOICE <nick>, gives voice status to someone (needs chanop)" msgstr "VOIE <kallenavn>, gir stemme-status til kallenavnet i den aktive kanalen (krever chanop)" #: src/common/outbound.c:3800 msgid "WALLCHAN <message>, writes the message to all channels" msgstr "WALLCHAN <melding>, sender en melding til alle åpne kanaler" #: src/common/outbound.c:3802 msgid "" "WALLCHOP <message>, sends the message to all chanops on the current channel" msgstr "WALLCHOP <melding>, sender meldingen til alle chanops i den aktive kanalen" #: src/common/outbound.c:3835 #, c-format msgid "Usage: %s\n" msgstr "Bruk: %s\n" #: src/common/outbound.c:3840 msgid "" "\n" "No help available on that command.\n" msgstr "\nIngen hjelp tilgjengelig for kommandoen.\n" #: src/common/outbound.c:3846 msgid "No such command.\n" msgstr "Kommandoen finnes ikke.\n" #: src/common/outbound.c:4177 msgid "Bad arguments for user command.\n" msgstr "Ugyldige argumenter for brukerkommandoen.\n" #: src/common/outbound.c:4338 msgid "Too many recursive usercommands, aborting." msgstr "For mange rekursive brukerkommandoer, avbryter." #: src/common/outbound.c:4421 msgid "Unknown Command. Try /help\n" msgstr "Ukjent kommando. Prøv /help\n" #: src/common/plugin.c:383 src/common/plugin.c:424 msgid "No hexchat_plugin_init symbol; is this really a HexChat plugin?" msgstr "Ingen startpunkt for hexchat_plugin_init; er dette egentlig et HexChat-tillegg?" #: src/common/server.c:643 msgid "Are you sure this is a SSL capable server and port?\n" msgstr "Sikker på at denne verten støtter SSL og porten valgt?\n" #: src/common/server.c:1011 #, c-format msgid "" "Cannot resolve hostname %s\n" "Check your IP Settings!\n" msgstr "Kunne ikke løse vertsnavnet %s\nSjekk din Internett-konfigurasjon!\n" #: src/common/server.c:1016 msgid "Proxy traversal failed.\n" msgstr "Proxy-traversering feilet.\n" #: src/common/servlist.c:767 #, c-format msgid "Cycling to next server in %s...\n" msgstr "Går videre til neste vert i %s...\n" #: src/common/servlist.c:1252 #, c-format msgid "" "Warning: \"%s\" character set is unknown. No conversion will be applied for " "network %s." msgstr "Advarsel: tegnsettet \"%s\" er ukjent. Ingen konvertering vil bli brukt for nettverket %s." #: src/common/textevents.h:6 msgid "%C18*%O$t%C18$1%O added to notify list." msgstr "" #: src/common/textevents.h:9 msgid "%C22*%O$t%C22$1%O Banlist: %C18$2%O on %C24$4%O by %C26$3%O" msgstr "" #: src/common/textevents.h:12 msgid "%C22*%O$tCannot join %C22$1 %O(%C20You are banned%O)." msgstr "" #: src/common/textevents.h:18 msgid "%C29*%O$tCapabilities acknowledged: %C29$2%O" msgstr "%C29*%O$tErkjente funksjoner: %C29$2%O" #: src/common/textevents.h:21 msgid "%C23*%O$tCapabilities supported: %C29$2%O" msgstr "%C23*%O$tStøttede funksjoner: %C29$2%O" #: src/common/textevents.h:24 msgid "%C23*%O$tCapabilities requested: %C29$1%O" msgstr "%C23*%O$tForespurte funksjoner: %C29$1%O" #: src/common/textevents.h:27 msgid "%C24*%O$t%C28$1%O is now known as %C18$2%O" msgstr "%C24*%O$t%C28$1%O er nå kjent som %C18$2%O" #: src/common/textevents.h:36 msgid "%C22*%O$t%C26$1%O sets ban on %C18$2%O" msgstr "" #: src/common/textevents.h:39 msgid "%C22*%O$tChannel %C22$1%O created on %C24$2%O" msgstr "" #: src/common/textevents.h:42 msgid "%C22*%O$t%C26$1%O removes channel half-operator status from %C18$2%O" msgstr "" #: src/common/textevents.h:45 msgid "%C22*%O$t%C26$1%O removes channel operator status from %C18$2%O" msgstr "" #: src/common/textevents.h:48 msgid "%C22*%O$t%C26$1%O removes voice from %C18$2%O" msgstr "" #: src/common/textevents.h:51 msgid "%C22*%O$t%C26$1%C sets exempt on %C18$2%O" msgstr "" #: src/common/textevents.h:54 msgid "%C22*%O$t%C26$1%O gives channel half-operator status to %C18$2%O" msgstr "" #: src/common/textevents.h:57 msgid "%C22*%O$t%C26$1%C sets invite on %C18$2%O" msgstr "" #: src/common/textevents.h:60 msgid "%UChannel Users Topic" msgstr "%UKanal Brukere Emne" #: src/common/textevents.h:66 msgid "%C22*%O$t%C26$1%O sets mode %C24$2$3%O on %C22$4%O" msgstr "" #: src/common/textevents.h:69 msgid "%C22*%O$tChannel %C22$1%O modes: %C24$2" msgstr "" #: src/common/textevents.h:78 msgid "%C22*%O$t%C26$1%O gives channel operator status to %C18$2%O" msgstr "" #: src/common/textevents.h:81 msgid "%C22*%O$t%C26$1%O removes exempt on %C18$2%O" msgstr "" #: src/common/textevents.h:84 msgid "%C22*%O$t%C26$1%O removes invite on %C18$2%O" msgstr "" #: src/common/textevents.h:87 msgid "%C22*%O$t%C26$1%O removes channel keyword" msgstr "" #: src/common/textevents.h:90 msgid "%C22*%O$t%C26$1%O removes user limit" msgstr "" #: src/common/textevents.h:93 msgid "%C22*%O$t%C26$1%O sets channel keyword to %C24$2%O" msgstr "" #: src/common/textevents.h:96 msgid "%C22*%O$t%C26$1%O sets channel limit to %C24$2%O" msgstr "" #: src/common/textevents.h:99 msgid "%C22*%O$t%C26$1%O removes ban on %C18$2%O" msgstr "" #: src/common/textevents.h:102 msgid "%C22*%O$t%C26$1%O gives voice to %C18$2%O" msgstr "" #: src/common/textevents.h:105 msgid "%C23*%O$tConnected. Now logging in." msgstr "" #: src/common/textevents.h:108 msgid "%C23*%O$tConnecting to %C29$1%C (%C23$2:$3%O)" msgstr "" #: src/common/textevents.h:111 msgid "%C20*%O$tConnection failed (%C20$1%O)" msgstr "" #: src/common/textevents.h:114 msgid "%C24*%O$tReceived a CTCP %C24$1%C from %C18$2%O" msgstr "" #: src/common/textevents.h:117 msgid "%C24*%C$tReceived a CTCP %C24$1%C from %C18$2%C (to %C22$3%C)%O" msgstr "" #: src/common/textevents.h:123 msgid "%C24*%O$tReceived a CTCP Sound %C24$1%C from %C18$2%O" msgstr "" #: src/common/textevents.h:126 msgid "%C24*%O$tReceived a CTCP Sound %C24$1%C from %C18$2%C (to %C22$3%O)" msgstr "" #: src/common/textevents.h:129 msgid "%C23*%O$tDCC CHAT to %C18$1%O aborted." msgstr "" #: src/common/textevents.h:132 msgid "" "%C24*%O$tDCC CHAT connection established to %C18$1%C %C30[%C24$2%C30]%O" msgstr "" #: src/common/textevents.h:135 msgid "%C20*%O$tDCC CHAT to %C18$1%O lost (%C20$4%O)" msgstr "" #: src/common/textevents.h:138 msgid "%C24*%O$tReceived a DCC CHAT offer from %C18$1%O" msgstr "" #: src/common/textevents.h:141 msgid "%C24*%O$tOffering DCC CHAT to %C18$1%O" msgstr "" #: src/common/textevents.h:144 msgid "%C24*%O$tAlready offering CHAT to %C18$1%O" msgstr "" #: src/common/textevents.h:147 msgid "%C20*%O$tDCC $1 connect attempt to %C18$2%O failed (%C20$3%O)" msgstr "" #: src/common/textevents.h:150 msgid "%C23*%O$tReceived '%C23$1%C' from %C18$2%O" msgstr "" #: src/common/textevents.h:153 #, c-format msgid "%C16,17 Type To/From Status Size Pos File " msgstr "" #: src/common/textevents.h:156 msgid "" "%C20*%O$tReceived a malformed DCC request from " "%C18$1%O.%010%C23*%O$tContents of packet: %C23$2%O" msgstr "" #: src/common/textevents.h:159 msgid "%C24*%O$tOffering '%C24$1%O' to %C18$2%O" msgstr "" #: src/common/textevents.h:162 msgid "%C23*%O$tNo such DCC offer." msgstr "" #: src/common/textevents.h:165 msgid "%C23*%O$tDCC RECV '%C23$2%O' to %C18$1%O aborted." msgstr "" #: src/common/textevents.h:168 msgid "" "%C24*%O$tDCC RECV '%C23$1%O' from %C18$3%O complete %C30[%C24$4%O cps%C30]%O" msgstr "" #: src/common/textevents.h:171 msgid "" "%C24*%O$tDCC RECV connection established to %C18$1 %C30[%O%C24$2%C30]%O" msgstr "" #: src/common/textevents.h:174 msgid "%C20*%O$tDCC RECV '%C23$1%O' from %C18$3%O failed (%C20$4%O)" msgstr "" #: src/common/textevents.h:177 msgid "%C20*%O$tDCC RECV: Cannot open '%C23$1%C' for writing (%C20$2%O)" msgstr "" #: src/common/textevents.h:180 msgid "" "%C23*%O$tThe file '%C24$1%C' already exists, saving it as '%C23$2%O' " "instead." msgstr "" #: src/common/textevents.h:183 msgid "%C24*%O$t%C18$1%C has requested to resume '%C23$2%C' from %C24$3%O." msgstr "" #: src/common/textevents.h:186 msgid "%C23*%O$tDCC SEND '%C23$2%C' to %C18$1%O aborted." msgstr "" #: src/common/textevents.h:189 msgid "" "%C24*%O$tDCC SEND '%C23$1%C' to %C18$2%C complete %C30[%C24$3%C cps%C30]%O" msgstr "" #: src/common/textevents.h:192 msgid "" "%C24*%O$tDCC SEND connection established to %C18$1 %C30[%O%C24$2%C30]%O" msgstr "" #: src/common/textevents.h:195 msgid "%C20*%O$tDCC SEND '%C23$1%C' to %C18$2%C failed (%C20$3%O)" msgstr "" #: src/common/textevents.h:198 msgid "%C24*%O$t%C18$1%C has offered '%C23$2%C' (%C24$3%O bytes)" msgstr "" #: src/common/textevents.h:201 msgid "%C20*%O$tDCC $1 '%C23$2%C' to %C18$3%O stalled, aborting." msgstr "" #: src/common/textevents.h:204 msgid "%C20*%O$tDCC $1 '%C23$2%C' to %C18$3%O timed out, aborting." msgstr "" #: src/common/textevents.h:207 msgid "%C24*%O$t%C18$1%O deleted from notify list." msgstr "" #: src/common/textevents.h:210 msgid "%C20*%O$tDisconnected (%C20$1%O)" msgstr "" #: src/common/textevents.h:213 msgid "%C24*%O$tFound your IP: %C30[%C24$1%C30]%O" msgstr "" #: src/common/textevents.h:219 msgid "%O%C18$1%O added to ignore list." msgstr "" #: src/common/textevents.h:222 msgid "%OIgnore on %C18$1%O changed." msgstr "" #: src/common/textevents.h:225 #, c-format msgid "%C16,17 " msgstr "" #: src/common/textevents.h:228 #, c-format msgid "%C16,17 Hostmask PRIV NOTI CHAN CTCP DCC INVI UNIG " msgstr "%C16,17 Hostmask PRIV NOTI CHAN CTCP DCC INVI UNIG " #: src/common/textevents.h:231 msgid "%O%C18$1%O removed from ignore list." msgstr "" #: src/common/textevents.h:234 msgid "%OIgnore list is empty." msgstr "" #: src/common/textevents.h:237 msgid "%C20*%O$tCannot join %C22$1%C (%C20Channel is invite only%O)" msgstr "" #: src/common/textevents.h:240 msgid "%C24*%O$tYou have been invited to %C22$1%O by %C18$2%O (%C29$3%O)" msgstr "" #: src/common/textevents.h:243 #, c-format msgid "%C23*$t$1 ($3) has joined" msgstr "" #: src/common/textevents.h:246 msgid "%C20*%O$tCannot join %C22$1%C (%C20Requires keyword%O)" msgstr "" #: src/common/textevents.h:249 msgid "%C22*%O$t%C26$1%C has kicked %C18$2%C from %C22$3%C (%C24$4%O)" msgstr "" #: src/common/textevents.h:252 msgid "%C19*%O$t%C19You have been killed by %C26$1%C (%C20$2%O)" msgstr "" #: src/common/textevents.h:261 msgid "%C29*%O$t%C29MOTD Skipped%O" msgstr "" #: src/common/textevents.h:264 msgid "%C23*%O$t%C28$1%C already in use. Retrying with %C18$2%O..." msgstr "" #: src/common/textevents.h:267 msgid "%C20*%O$tNickname already in use. Use /NICK to try another." msgstr "" #: src/common/textevents.h:270 msgid "%C20*%O$tNo such DCC." msgstr "" #: src/common/textevents.h:273 msgid "%C23*%O$tNo process is currently running" msgstr "" #: src/common/textevents.h:282 msgid "$tNotify list is empty." msgstr "$tVarslingsliste er tom." #: src/common/textevents.h:285 #, c-format msgid "%C16,17 Notify List " msgstr "" #: src/common/textevents.h:288 msgid "%C23*%O$t%C23$1%O users in notify list." msgstr "" #: src/common/textevents.h:291 msgid "%C23*%O$tNotify: %C18$1%C is offline (%C29$3%O)" msgstr "" #: src/common/textevents.h:294 msgid "%C23*%O$tNotify: %C18$1%C is online (%C29$3%O)" msgstr "" #: src/common/textevents.h:300 #, c-format msgid "%C24*$t$1 ($2) has left" msgstr "" #: src/common/textevents.h:303 #, c-format msgid "%C24*$t$1 ($2) has left ($4)" msgstr "" #: src/common/textevents.h:306 msgid "%C24*%O$tPing reply from %C18$1%C: %C24$2%O second(s)" msgstr "" #: src/common/textevents.h:309 msgid "%C20*%O$tNo ping reply for %C24$1%O seconds, disconnecting." msgstr "" #: src/common/textevents.h:324 msgid "%C24*%O$tA process is already running" msgstr "" #: src/common/textevents.h:327 #, c-format msgid "%C24*$t$1 has quit ($2)" msgstr "" #: src/common/textevents.h:330 msgid "%C24*%O$t%C26$1%C sets modes %C30[%C24$2%C30]%O" msgstr "" #: src/common/textevents.h:333 msgid "%O-%C29$1/Wallops%O-$t$2" msgstr "" #: src/common/textevents.h:336 msgid "%C24*%O$tLooking up IP number for %C18$1%O..." msgstr "" #: src/common/textevents.h:339 msgid "%C23*%O$tAuthenticating via SASL as %C18$1%O" msgstr "%C23*%O$tAutentiserer via SASL som %C18$1%O" #: src/common/textevents.h:345 msgid "%C29*%O$tConnected." msgstr "" #: src/common/textevents.h:351 msgid "%C29*%O$tLooking up %C29$1%O" msgstr "" #: src/common/textevents.h:363 msgid "%C23*%O$tStopped previous connection attempt (%C24$1%O)" msgstr "" #: src/common/textevents.h:366 msgid "%C22*%O$tTopic for %C22$1%C is: $2%O" msgstr "" #: src/common/textevents.h:369 msgid "%C22*%O$t%C26$1%C has changed the topic to: $2%O" msgstr "" #: src/common/textevents.h:372 msgid "%C22*%O$tTopic for %C22$1%C set by %C26$2%C (%C24$3%O)" msgstr "" #: src/common/textevents.h:375 msgid "%C20*%O$tUnknown host. Maybe you misspelled it?" msgstr "" #: src/common/textevents.h:378 msgid "%C20*%O$tCannot join %C22$1%C (%C20User limit reached%O)" msgstr "" #: src/common/textevents.h:381 msgid "%C22*%O$tUsers on %C22$1%C: %C24$2%O" msgstr "" #: src/common/textevents.h:387 msgid "%C23*%O$t%C28[%C18$1%C28]%C is away %C30(%C23$2%O%C30)%O" msgstr "" #: src/common/textevents.h:393 msgid "%C23*%O$t%C28[%C18$1%C28] %OEnd of WHOIS list." msgstr "" #: src/common/textevents.h:399 msgid "%C23*%O$t%C28[%C18$1%C28]%O idle %C23$2%O" msgstr "" #: src/common/textevents.h:402 msgid "%C23*%O$t%C28[%C18$1%C28]%O idle %C23$2%O, signon: %C23$3%O" msgstr "" #: src/common/textevents.h:408 msgid "" "%C23*%O$t%C28[%C18$1%C28]%O Real Host: %C23$2%O, Real IP: %C30[%C23$3%C30]%O" msgstr "" #: src/common/textevents.h:417 msgid "%C19*%O$tNow talking on %C22$2%O" msgstr "%C19*%O$tSnakker nå i %C22$2%O" #: src/common/textevents.h:420 msgid "%C19*%O$tYou have been kicked from %C22$2%C by %C26$3%O (%C20$4%O)" msgstr "%C19*%O$tDu har blitt kastet ut fra %C22$2%C av %C26$3%O (%C20$4%O)" #: src/common/textevents.h:423 msgid "%C19*%O$tYou have left channel %C22$3%O" msgstr "%C19*%O$tDu har forlatt kanalen %C22$3%O" #: src/common/textevents.h:426 msgid "%C19*%O$tYou have left channel %C22$3%C (%C24$4%O)" msgstr "%C19*%O$tDu har forlatt kanalen %C22$3%C (%C24$4%O)" #: src/common/textevents.h:432 msgid "%C20*%O$tYou've invited %C18$1%O to %C22$2%O (%C24$3%O)" msgstr "%C20*%O$tInviterte %C18$1%O til %C22$2%O (%C24$3%O)" #: src/common/textevents.h:438 msgid "%C20*%O$tYou are now known as %C18$2%O" msgstr "%C20*%O$tDu er nå kjent som %C18$2%O" #: src/common/text.c:336 msgid "Loaded log from" msgstr "Lastet logg fra" #: src/common/text.c:353 #, c-format msgid "**** ENDING LOGGING AT %s\n" msgstr "**** AVSLUTTER LOGGING PÅ %s\n" #: src/common/text.c:575 #, c-format msgid "**** BEGIN LOGGING AT %s\n" msgstr "**** BEGYNNER LOGGING PÅ %s\n" #: src/common/text.c:594 #, c-format msgid "" "* Can't open log file(s) for writing. Check the\n" "permissions on %s" msgstr "* Kan ikke åpne loggfilen(e) for skriving. Sjekk\ntilgangene til %s" #: src/common/text.c:970 msgid "Left message" msgstr "Venstre melding" #: src/common/text.c:971 msgid "Right message" msgstr "Høyre melding" #: src/common/text.c:976 src/common/text.c:1338 src/common/text.c:1376 #: src/common/text.c:1381 src/common/text.c:1422 msgid "IP address" msgstr "IP-adresse" #: src/common/text.c:977 src/common/text.c:1205 src/common/text.c:1264 #: src/common/text.c:1270 msgid "Username" msgstr "Brukernavn" #: src/common/text.c:982 msgid "The nick of the joining person" msgstr "Kallenavnet til brukeren som blir med" #: src/common/text.c:983 msgid "The channel being joined" msgstr "Kanalen man går inn i" #: src/common/text.c:984 src/common/text.c:1046 src/common/text.c:1097 msgid "The host of the person" msgstr "Personens vert" #: src/common/text.c:988 src/common/text.c:995 src/common/text.c:1002 #: src/common/text.c:1204 src/common/text.c:1211 src/common/text.c:1216 #: src/common/text.c:1221 src/common/text.c:1226 src/common/text.c:1232 #: src/common/text.c:1237 src/common/text.c:1241 src/common/text.c:1247 #: src/common/text.c:1253 src/common/text.c:1316 src/common/text.c:1327 #: src/common/text.c:1332 src/common/text.c:1337 src/common/text.c:1346 #: src/common/text.c:1357 src/common/text.c:1364 src/common/text.c:1370 #: src/common/text.c:1375 src/common/text.c:1380 src/common/text.c:1387 #: src/common/text.c:1393 src/common/text.c:1399 src/common/text.c:1404 #: src/common/text.c:1409 src/common/text.c:1413 src/common/text.c:1419 #: src/common/text.c:1427 src/common/text.c:1461 src/common/text.c:1466 msgid "Nickname" msgstr "Kallenavn" #: src/common/text.c:989 msgid "The action" msgstr "Handlingen" #: src/common/text.c:990 src/common/text.c:997 msgid "Mode char" msgstr "Modus-tegn" #: src/common/text.c:991 src/common/text.c:998 src/common/text.c:1004 msgid "Identified text" msgstr "Identifisert tekst" #: src/common/text.c:996 msgid "The text" msgstr "Teksten" #: src/common/text.c:1003 src/common/text.c:1074 src/common/text.c:1080 msgid "The message" msgstr "Meldingen" #: src/common/text.c:1008 src/common/text.c:1013 src/common/text.c:1268 #: src/common/text.c:1276 src/common/text.c:1282 src/common/text.c:1288 #: src/common/text.c:1317 src/common/text.c:1435 src/common/text.c:1477 msgid "Server Name" msgstr "Navn på tjener" #: src/common/text.c:1009 msgid "Acknowledged Capabilities" msgstr "Erkjente funksjoner" #: src/common/text.c:1014 msgid "Server Capabilities" msgstr "Vert-funksjonalitet" #: src/common/text.c:1018 msgid "Requested Capabilities" msgstr "Forespurte funksjoner" #: src/common/text.c:1022 src/common/text.c:1084 msgid "Old nickname" msgstr "Gammelt kallenavn" #: src/common/text.c:1023 src/common/text.c:1085 msgid "New nickname" msgstr "Nytt kallenavn" #: src/common/text.c:1027 msgid "Nick of person who changed the topic" msgstr "Kallenavn for personen som endret emnet" #: src/common/text.c:1028 src/common/text.c:1034 src/fe-gtk/chanlist.c:788 #: src/fe-gtk/chanlist.c:891 src/fe-gtk/setup.c:368 msgid "Topic" msgstr "Emne" #: src/common/text.c:1029 src/common/text.c:1033 src/common/text.c:1481 #: src/fe-gtk/chanlist.c:786 src/fe-gtk/ignoregui.c:174 #: src/fe-gtk/servlistgui.c:893 msgid "Channel" msgstr "Kanal" #: src/common/text.c:1038 src/common/text.c:1091 msgid "The nickname of the kicker" msgstr "Kallenavn på den som sparker" #: src/common/text.c:1039 src/common/text.c:1089 msgid "The person being kicked" msgstr "Personen som sparkes ut" #: src/common/text.c:1040 src/common/text.c:1047 src/common/text.c:1051 #: src/common/text.c:1056 src/common/text.c:1090 src/common/text.c:1098 #: src/common/text.c:1105 msgid "The channel" msgstr "Kanalen" #: src/common/text.c:1041 src/common/text.c:1092 src/common/text.c:1099 msgid "The reason" msgstr "Årsaken" #: src/common/text.c:1045 src/common/text.c:1096 msgid "The nick of the person leaving" msgstr "Kallenavn for personen som forlater kanalen" #: src/common/text.c:1052 src/common/text.c:1058 msgid "The time" msgstr "Tiden" #: src/common/text.c:1057 msgid "The creator" msgstr "Skaperen" #: src/common/text.c:1062 src/fe-gtk/dccgui.c:769 src/fe-gtk/dccgui.c:1003 msgid "Nick" msgstr "Kallenavn" #: src/common/text.c:1063 src/common/text.c:1333 msgid "Reason" msgstr "Årsak" #: src/common/text.c:1064 src/common/text.c:1206 src/common/text.c:1306 msgid "Host" msgstr "Vert" #: src/common/text.c:1068 src/common/text.c:1073 src/common/text.c:1078 msgid "Who it's from" msgstr "Hvem er det fra" #: src/common/text.c:1069 msgid "The time in x.x format (see below)" msgstr "Tiden i x.x-format (se nedenfor)" #: src/common/text.c:1079 src/common/text.c:1116 msgid "The Channel it's going to" msgstr "Kanalen det går til" #: src/common/text.c:1103 msgid "The sound" msgstr "Lyden" #: src/common/text.c:1104 src/common/text.c:1110 src/common/text.c:1115 msgid "The nick of the person" msgstr "Personens kallenavn" #: src/common/text.c:1109 src/common/text.c:1114 msgid "The CTCP event" msgstr "CTCP-hendelse" #: src/common/text.c:1120 msgid "The nick of the person who set the key" msgstr "Kallenavnet til brukeren som satt nøkkelen" #: src/common/text.c:1121 msgid "The key" msgstr "Nøkkelen" #: src/common/text.c:1125 msgid "The nick of the person who set the limit" msgstr "Kallenavnet til personen som satt grensen" #: src/common/text.c:1126 msgid "The limit" msgstr "Grensen" #: src/common/text.c:1130 msgid "The nick of the person who did the op'ing" msgstr "Kallenavnet til brukeren som ga operatørstatus" #: src/common/text.c:1131 msgid "The nick of the person who has been op'ed" msgstr "Kallenavnet til brukeren som fikk operatørstatus" #: src/common/text.c:1135 msgid "The nick of the person who has been halfop'ed" msgstr "Kallenavnet til brukeren som fikk halv-operatørstatus" #: src/common/text.c:1136 msgid "The nick of the person who did the halfop'ing" msgstr "Kallenavnet til brukeren som ga halv-operatørstatus" #: src/common/text.c:1140 msgid "The nick of the person who did the voice'ing" msgstr "Kallenavnet til brukeren som ga stemmestatus" #: src/common/text.c:1141 msgid "The nick of the person who has been voice'ed" msgstr "Kallenavnet til brukeren som fikk stemmestatus" #: src/common/text.c:1145 msgid "The nick of the person who did the banning" msgstr "Kallenavnet til brukeren som opprettet en utestengelse" #: src/common/text.c:1146 src/common/text.c:1173 msgid "The ban mask" msgstr "Utestengelsesmasken" #: src/common/text.c:1150 msgid "The nick who removed the key" msgstr "Kallenavnet som fjernet nøkkelen" #: src/common/text.c:1154 msgid "The nick who removed the limit" msgstr "Kallenavnet som fjernet brukergrensen" #: src/common/text.c:1158 msgid "The nick of the person of did the deop'ing" msgstr "Kallenavnet til brukeren som fjernet operatørstatus" #: src/common/text.c:1159 msgid "The nick of the person who has been deop'ed" msgstr "Kallenavnet til brukeren som mistet operatørstatus" #: src/common/text.c:1162 msgid "The nick of the person of did the dehalfop'ing" msgstr "Kallenavnet til personen som fjernet halv-operatørstatus" #: src/common/text.c:1163 msgid "The nick of the person who has been dehalfop'ed" msgstr "Kallenavnet til brukeren som mistet halv-operatørstatus" #: src/common/text.c:1167 msgid "The nick of the person of did the devoice'ing" msgstr "Kallenavnet til brukeren som fjernet stemmestatus" #: src/common/text.c:1168 msgid "The nick of the person who has been devoice'ed" msgstr "Kallenavnet til brukeren som mistet stemmestatus" #: src/common/text.c:1172 msgid "The nick of the person of did the unban'ing" msgstr "Kallenavnet til brukeren som fjernet utestengelsen" #: src/common/text.c:1177 msgid "The nick of the person who did the exempt" msgstr "Kallenavnet til brukeren som opprettet unntaket" #: src/common/text.c:1178 src/common/text.c:1183 msgid "The exempt mask" msgstr "Unntaksmasken" #: src/common/text.c:1182 msgid "The nick of the person removed the exempt" msgstr "Kallenavnet til brukeren som fjernet unntaket" #: src/common/text.c:1187 msgid "The nick of the person who did the invite" msgstr "Kallenavnet til brukeren som sendte en invitasjon" #: src/common/text.c:1188 src/common/text.c:1193 msgid "The invite mask" msgstr "Inviteringsmasken" #: src/common/text.c:1192 msgid "The nick of the person removed the invite" msgstr "Kallenavnet til brukeren som trakk tilbake invitasjonen" #: src/common/text.c:1197 msgid "The nick of the person setting the mode" msgstr "Kallenavnet til brukeren som satt modi" #: src/common/text.c:1198 msgid "The mode's sign (+/-)" msgstr "Modi-tegnet (+/-)" #: src/common/text.c:1199 msgid "The mode letter" msgstr "Modi-bokstaven" #: src/common/text.c:1200 msgid "The channel it's being set on" msgstr "Kanalen modi blir satt i" #: src/common/text.c:1207 msgid "Full name" msgstr "Fullt navn" #: src/common/text.c:1212 msgid "Channel Membership/\"is an IRC operator\"" msgstr "Kanalmedlemskap/\"er en IRC-operatør\"" #: src/common/text.c:1217 msgid "Server Information" msgstr "Informasjon om tjener" #: src/common/text.c:1222 src/common/text.c:1227 msgid "Idle time" msgstr "Inaktiv for" #: src/common/text.c:1228 msgid "Signon time" msgstr "Påloggingstid" #: src/common/text.c:1233 msgid "Away reason" msgstr "Borteårsak" #: src/common/text.c:1242 src/common/text.c:1248 src/common/text.c:125<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-2006 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA</span> <span class="cm"> */</span> <span class="cp">#include</span><span class="w"> </span><span class="cpf"><stdio.h></span> <span class="cp">#include</span><span class="w"> </span><span class="cpf"><stdlib.h></span> <span class="cp">#include</span><span class="w"> </span><span class="cpf"><string.h></span> <span class="cp">#include</span><span class="w"> </span><span class="cpf"><sys/stat.h></span> <span class="cp">#include</span><span class="w"> </span><span class="cpf"><fcntl.h></span> <span class="cp">#include</span><span class="w"> </span><span class="cpf"><time.h></span> <span class="cp">#define WANTSOCKET</span> <span class="cp">#define WANTARPA</span> <span class="cp">#include</span><span class="w"> </span><span class="cpf">"../common/inet.h"</span> <span class="cp">#include</span><span class="w"> </span><span class="cpf">"fe-gtk.h"</span> <span class="cp">#include</span><span class="w"> </span><span class="cpf"><gtk/gtkhbbox.h></span> <span class="cp">#include</span><span class="w"> </span><span class="cpf"><gtk/gtkhbox.h></span> <span class="cp">#include</span><span class="w"> </span><span class="cpf"><gtk/gtklabel.h></span> <span class="cp">#include</span><span class="w"> </span><span class="cpf"><gtk/gtkstock.h></span> <span class="cp">#include</span><span class="w"> </span><span class="cpf"><gtk/gtkmessagedialog.h></span> <span class="cp">#include</span><span class="w"> </span><span class="cpf"><gtk/gtktable.h></span> <span class="cp">#include</span><span class="w"> </span><span class="cpf"><gtk/gtktreeview.h></span> <span class="cp">#include</span><span class="w"> </span><span class="cpf"><gtk/gtkexpander.h></span> <span class="cp">#include</span><span class="w"> </span><span class="cpf"><gtk/gtkliststore.h></span> <span class="cp">#include</span><span class="w"> </span><span class="cpf"><gtk/gtktreeselection.h></span> <span class="cp">#include</span><span class="w"> </span><span class="cpf"><gtk/gtkcellrendererpixbuf.h></span> <span class="cp">#include</span><span class="w"> </span><span class="cpf"><gtk/gtkcellrenderertext.h></span> <span class="cp">#include</span><span class="w"> </span><span class="cpf"><gtk/gtkcheckmenuitem.h></span> <span class="cp">#include</span><span class="w"> </span><span class="cpf"><gtk/gtkradiobutton.h></span> <span class="cp">#include</span><span class="w"> </span><span class="cpf"><gtk/gtkversion.h></span> <span class="cp">#include</span><span class="w"> </span><span class="cpf">"../common/xchat.h"</span> <span class="cp">#include</span><span class="w"> </span><span class="cpf">"../common/xchatc.h"</span> <span class="cp">#include</span><span class="w"> </span><span class="cpf">"../common/fe.h"</span> <span class="cp">#include</span><span class="w"> </span><span class="cpf">"../common/util.h"</span> <span class="cp">#include</span><span class="w"> </span><span class="cpf">"../common/network.h"</span> <span class="cp">#include</span><span class="w"> </span><span class="cpf">"gtkutil.h"</span> <span class="cp">#include</span><span class="w"> </span><span class="cpf">"palette.h"</span> <span class="cp">#include</span><span class="w"> </span><span class="cpf">"maingui.h"</span> <span class="k">enum</span><span class="w"> </span><span class="cm">/* DCC SEND/RECV */</span> <span class="p">{</span> <span class="w"> </span><span class="n">COL_TYPE</span><span class="p">,</span> <span class="w"> </span><span class="n">COL_STATUS</span><span class="p">,</span> <span class="w"> </span><span class="n">COL_FILE</span><span class="p">,</span> <span class="w"> </span><span class="n">COL_SIZE</span><span class="p">,</span> <span class="w"> </span><span class="n">COL_POS</span><span class="p">,</span> <span class="w"> </span><span class="n">COL_PERC</span><span class="p">,</span> <span class="w"> </span><span class="n">COL_SPEED</span><span class="p">,</span> <span class="w"> </span><span class="n">COL_ETA</span><span class="p">,</span> <span class="w"> </span><span class="n">COL_NICK</span><span class="p">,</span> <span class="w"> </span><span class="n">COL_DCC</span><span class="p">,</span><span class="w"> </span><span class="cm">/* struct DCC * */</span> <span class="w"> </span><span class="n">COL_COLOR</span><span class="p">,</span><span class="w"> </span><span class="cm">/* GdkColor */</span> <span class="w"> </span><span class="n">N_COLUMNS</span> <span class="p">};</span> <span class="k">enum</span><span class="w"> </span><span class="cm">/* DCC CHAT */</span> <span class="p">{</span> <span class="w"> </span><span class="n">CCOL_STATUS</span><span class="p">,</span> <span class="w"> </span><span class="n">CCOL_NICK</span><span class="p">,</span> <span class="w"> </span><span class="n">CCOL_RECV</span><span class="p">,</span> <span class="w"> </span><span class="n">CCOL_SENT</span><span class="p">,</span> <span class="w"> </span><span class="n">CCOL_START</span><span class="p">,</span> <span class="w"> </span><span class="n">CCOL_DCC</span><span class="p">,</span><span class="w"> </span><span class="cm">/* struct DCC * */</span> <span class="w"> </span><span class="n">CCOL_COLOR</span><span class="p">,</span><span class="w"> </span><span class="cm">/* GdkColor * */</span> <span class="w"> </span><span class="n">CN_COLUMNS</span> <span class="p">};</span> <span class="k">struct</span><span class="w"> </span><span class="nc">dccwindow</span> <span class="p">{</span> <span class="w"> </span><span class="n">GtkWidget</span><span class="w"> </span><span class="o">*</span><span class="n">window</span><span class="p">;</span> <span class="w"> </span><span class="n">GtkWidget</span><span class="w"> </span><span class="o">*</span><span class="n">list</span><span class="p">;</span> <span class="w"> </span><span class="n">GtkListStore</span><span class="w"> </span><span class="o">*</span><span class="n">store</span><span class="p">;</span> <span class="w"> </span><span class="n">GtkTreeSelection</span><span class="w"> </span><span class="o">*</span><span class="n">sel</span><span class="p">;</span> <span class="w"> </span><span class="n">GtkWidget</span><span class="w"> </span><span class="o">*</span><span class="n">abort_button</span><span class="p">;</span> <span class="w"> </span><span class="n">GtkWidget</span><span class="w"> </span><span class="o">*</span><span class="n">accept_button</span><span class="p">;</span> <span class="w"> </span><span class="n">GtkWidget</span><span class="w"> </span><span class="o">*</span><span class="n">resume_button</span><span class="p">;</span> <span class="w"> </span><span class="n">GtkWidget</span><span class="w"> </span><span class="o">*</span><span class="n">open_button</span><span class="p">;</span> <span class="w"> </span><span class="n">GtkWidget</span><span class="w"> </span><span class="o">*</span><span class="n">file_label</span><span class="p">;</span> <span class="w"> </span><span class="n">GtkWidget</span><span class="w"> </span><span class="o">*</span><span class="n">address_label</span><span class="p">;</span> <span class="p">};</span> <span class="k">struct</span><span class="w"> </span><span class="nc">my_dcc_send</span> <span class="p">{</span> <span class="w"> </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">int</span><span class="w"> </span><span class="n">maxcps</span><span class="p">;</span> <span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">passive</span><span class="p">;</span> <span class="p">};</span> <span class="k">static</span><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">dccwindow</span><span class="w"> </span><span class="n">dccfwin</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">{</span><span class="nb">NULL</span><span class="p">,</span><span class="w"> </span><span class="p">};</span><span class="w"> </span><span class="cm">/* file */</span> <span class="k">static</span><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">dccwindow</span><span class="w"> </span><span class="n">dcccwin</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">{</span><span class="nb">NULL</span><span class="p">,</span><span class="w"> </span><span class="p">};</span><span class="w"> </span><span class="cm">/* chat */</span> <span class="k">static</span><span class="w"> </span><span class="n">GdkPixbuf</span><span class="w"> </span><span class="o">*</span><span class="n">pix_up</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="cm">/* down arrow */</span> <span class="k">static</span><span class="w"> </span><span class="n">GdkPixbuf</span><span class="w"> </span><span class="o">*</span><span class="n">pix_dn</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="cm">/* up arrow */</span> <span class="k">static</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">win_width</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">600</span><span class="p">;</span> <span class="k">static</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">win_height</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">256</span><span class="p">;</span> <span class="k">static</span><span class="w"> </span><span class="kt">short</span><span class="w"> </span><span class="n">view_mode</span><span class="p">;</span><span class="w"> </span><span class="cm">/* 1=download 2=upload 3=both */</span> <span class="cp">#define VIEW_DOWNLOAD 1</span> <span class="cp">#define VIEW_UPLOAD 2</span> <span class="cp">#define VIEW_BOTH 3</span> <span class="cp">#define KILOBYTE 1024</span> <span class="cp">#define MEGABYTE (KILOBYTE * 1024)</span> <span class="cp">#define GIGABYTE (MEGABYTE * 1024)</span> <span class="k">static</span><span class="w"> </span><span class="kt">void</span> <span class="nf">proper_unit</span><span class="w"> </span><span class="p">(</span><span class="n">DCC_SIZE</span><span class="w"> </span><span class="n">size</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">buf</span><span class="p">,</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">buf_len</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="n">size</span><span class="w"> </span><span class="o"><=</span><span class="w"> </span><span class="n">KILOBYTE</span><span class="p">)</span> <span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="n">snprintf</span><span class="w"> </span><span class="p">(</span><span class="n">buf</span><span class="p">,</span><span class="w"> </span><span class="n">buf_len</span><span class="p">,</span><span class="w"> </span><span class="s">"%"</span><span class="n">DCC_SFMT</span><span class="s">"B"</span><span class="p">,</span><span class="w"> </span><span class="n">size</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="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">size</span><span class="w"> </span><span class="o">></span><span class="w"> </span><span class="n">KILOBYTE</span><span class="w"> </span><span class="o">&&</span><span class="w"> </span><span class="n">size</span><span class="w"> </span><span class="o"><=</span><span class="w"> </span><span class="n">MEGABYTE</span><span class="p">)</span> <span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="n">snprintf</span><span class="w"> </span><span class="p">(</span><span class="n">buf</span><span class="p">,</span><span class="w"> </span><span class="n">buf_len</span><span class="p">,</span><span class="w"> </span><span class="s">"%"</span><span class="n">DCC_SFMT</span><span class="s">"kB"</span><span class="p">,</span><span class="w"> </span><span class="n">size</span><span class="w"> </span><span class="o">/</span><span class="w"> </span><span class="n">KILOBYTE</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">snprintf</span><span class="w"> </span><span class="p">(</span><span class="n">buf</span><span class="p">,</span><span class="w"> </span><span class="n">buf_len</span><span class="p">,</span><span class="w"> </span><span class="s">"%.2fMB"</span><span class="p">,</span><span class="w"> </span><span class="p">(</span><span class="kt">float</span><span class="p">)</span><span class="n">size</span><span class="w"> </span><span class="o">/</span><span class="w"> </span><span class="n">MEGABYTE</span><span class="p">);</span> <span class="w"> </span><span class="p">}</span> <span class="p">}</span> <span class="k">static</span><span class="w"> </span><span class="kt">void</span> <span class="nf">dcc_send_filereq_file</span><span class="w"> </span><span class="p">(</span><span class="k">struct</span><span class="w"> </span><span class="nc">my_dcc_send</span><span class="w"> </span><span class="o">*</span><span class="n">mdc</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">file</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="n">file</span><span class="p">)</span> <span class="w"> </span><span class="n">dcc_send</span><span class="w"> </span><span class="p">(</span><span class="n">mdc</span><span class="o">-></span><span class="n">sess</span><span class="p">,</span><span class="w"> </span><span class="n">mdc</span><span class="o">-></span><span class="n">nick</span><span class="p">,</span><span class="w"> </span><span class="n">file</span><span class="p">,</span><span class="w"> </span><span class="n">mdc</span><span class="o">-></span><span class="n">maxcps</span><span class="p">,</span><span class="w"> </span><span class="n">mdc</span><span class="o">-></span><span class="n">passive</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">free</span><span class="w"> </span><span class="p">(</span><span class="n">mdc</span><span class="o">-></span><span class="n">nick</span><span class="p">);</span> <span class="w"> </span><span class="n">free</span><span class="w"> </span><span class="p">(</span><span class="n">mdc</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">fe_dcc_send_filereq</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">int</span><span class="w"> </span><span class="n">maxcps</span><span class="p">,</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">passive</span><span class="p">)</span> <span class="p">{</span> <span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="n">tbuf</span><span class="p">[</span><span class="mi">128</span><span class="p">];</span> <span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">my_dcc_send</span><span class="w"> </span><span class="o">*</span><span class="n">mdc</span><span class="p">;</span> <span class="w"> </span> <span class="w"> </span><span class="n">mdc</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">malloc</span><span class="w"> </span><span class="p">(</span><span class="k">sizeof</span><span class="w"> </span><span class="p">(</span><span class="o">*</span><span class="n">mdc</span><span class="p">));</span> <span class="w"> </span><span class="n">mdc</span><span class="o">-></span><span class="n">sess</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">sess</span><span class="p">;</span> <span class="w"> </span><span class="n">mdc</span><span class="o">-></span><span class="n">nick</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">strdup</span><span class="w"> </span><span class="p">(</span><span class="n">nick</span><span class="p">);</span> <span class="w"> </span><span class="n">mdc</span><span class="o">-></span><span class="n">maxcps</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">maxcps</span><span class="p">;</span> <span class="w"> </span><span class="n">mdc</span><span class="o">-></span><span class="n">passive</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">passive</span><span class="p">;</span> <span class="w"> </span><span class="n">snprintf</span><span class="w"> </span><span class="p">(</span><span class="n">tbuf</span><span class="p">,</span><span class="w"> </span><span class="k">sizeof</span><span class="w"> </span><span class="n">tbuf</span><span class="p">,</span><span class="w"> </span><span class="n">_</span><span class="p">(</span><span class="s">"Send file to %s"</span><span class="p">),</span><span class="w"> </span><span class="n">nick</span><span class="p">);</span> <span class="w"> </span><span class="n">gtkutil_file_req</span><span class="w"> </span><span class="p">(</span><span class="n">tbuf</span><span class="p">,</span><span class="w"> </span><span class="n">dcc_send_filereq_file</span><span class="p">,</span><span class="w"> </span><span class="n">mdc</span><span class="p">,</span><span class="w"> </span><span class="n">prefs</span><span class="p">.</span><span class="n">dccdir</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">FRF_MULTIPLE</span><span class="o">|</span><span class="n">FRF_FILTERISINITIAL</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="nf">dcc_prepare_row_chat</span><span class="w"> </span><span class="p">(</span><span class="k">struct</span><span class="w"> </span><span class="nc">DCC</span><span class="w"> </span><span class="o">*</span><span class="n">dcc</span><span class="p">,</span><span class="w"> </span><span class="n">GtkListStore</span><span class="w"> </span><span class="o">*</span><span class="n">store</span><span class="p">,</span><span class="w"> </span><span class="n">GtkTreeIter</span><span class="w"> </span><span class="o">*</span><span class="n">iter</span><span class="p">,</span> <span class="w"> </span><span class="n">gboolean</span><span class="w"> </span><span class="n">update_only</span><span class="p">)</span> <span class="p">{</span> <span class="w"> </span><span class="k">static</span><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="n">pos</span><span class="p">[</span><span class="mi">16</span><span class="p">],</span><span class="w"> </span><span class="n">siz</span><span class="p">[</span><span class="mi">16</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">date</span><span class="p">;</span> <span class="w"> </span><span class="n">date</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">ctime</span><span class="w"> </span><span class="p">(</span><span class="o">&</span><span class="n">dcc</span><span class="o">-></span><span class="n">starttime</span><span class="p">);</span> <span class="w"> </span><span class="n">date</span><span class="p">[</span><span class="n">strlen</span><span class="w"> </span><span class="p">(</span><span class="n">date</span><span class="p">)</span><span class="w"> </span><span class="o">-</span><span class="w"> </span><span class="mi">1</span><span class="p">]</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span><span class="w"> </span><span class="cm">/* remove the \n */</span> <span class="w"> </span><span class="n">proper_unit</span><span class="w"> </span><span class="p">(</span><span class="n">dcc</span><span class="o">-></span><span class="n">pos</span><span class="p">,</span><span class="w"> </span><span class="n">pos</span><span class="p">,</span><span class="w"> </span><span class="k">sizeof</span><span class="w"> </span><span class="p">(</span><span class="n">pos</span><span class="p">));</span> <span class="w"> </span><span class="n">proper_unit</span><span class="w"> </span><span class="p">(</span><span class="n">dcc</span><span class="o">-></span><span class="n">size</span><span class="p">,</span><span class="w"> </span><span class="n">siz</span><span class="p">,</span><span class="w"> </span><span class="k">sizeof</span><span class="w"> </span><span class="p">(</span><span class="n">siz</span><span class="p">));</span> <span class="w"> </span><span class="n">gtk_list_store_set</span><span class="w"> </span><span class="p">(</span><span class="n">store</span><span class="p">,</span><span class="w"> </span><span class="n">iter</span><span class="p">,</span> <span class="w"> </span><span class="n">CCOL_STATUS</span><span class="p">,</span><span class="w"> </span><span class="n">_</span><span class="p">(</span><span class="n">dccstat</span><span class="p">[</span><span class="n">dcc</span><span class="o">-></span><span class="n">dccstat</span><span class="p">].</span><span class="n">name</span><span class="p">),</span> <span class="w"> </span><span class="n">CCOL_NICK</span><span class="p">,</span><span class="w"> </span><span class="n">dcc</span><span class="o">-></span><span class="n">nick</span><span class="p">,</span> <span class="w"> </span><span class="n">CCOL_RECV</span><span class="p">,</span><span class="w"> </span><span class="n">pos</span><span class="p">,</span> <span class="w"> </span><span class="n">CCOL_SENT</span><span class="p">,</span><span class="w"> </span><span class="n">siz</span><span class="p">,</span> <span class="w"> </span><span class="n">CCOL_START</span><span class="p">,</span><span class="w"> </span><span class="n">date</span><span class="p">,</span> <span class="w"> </span><span class="n">CCOL_DCC</span><span class="p">,</span><span class="w"> </span><span class="n">dcc</span><span class="p">,</span> <span class="w"> </span><span class="n">CCOL_COLOR</span><span class="p">,</span> <span class="w"> </span><span class="n">dccstat</span><span class="p">[</span><span class="n">dcc</span><span class="o">-></span><span class="n">dccstat</span><span class="p">].</span><span class="n">color</span><span class="w"> </span><span class="o">==</span><span class="w"> </span><span class="mi">1</span><span class="w"> </span><span class="o">?</span> <span class="w"> </span><span class="nl">NULL</span><span class="w"> </span><span class="p">:</span> <span class="w"> </span><span class="n">colors</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="n">dccstat</span><span class="p">[</span><span class="n">dcc</span><span class="o">-></span><span class="n">dccstat</span><span class="p">].</span><span class="n">color</span><span class="p">,</span> <span class="w"> </span><span class="mi">-1</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="nf">dcc_prepare_row_send</span><span class="w"> </span><span class="p">(</span><span class="k">struct</span><span class="w"> </span><span class="nc">DCC</span><span class="w"> </span><span class="o">*</span><span class="n">dcc</span><span class="p">,</span><span class="w"> </span><span class="n">GtkListStore</span><span class="w"> </span><span class="o">*</span><span class="n">store</span><span class="p">,</span><span class="w"> </span><span class="n">GtkTreeIter</span><span class="w"> </span><span class="o">*</span><span class="n">iter</span><span class="p">,</span> <span class="w"> </span><span class="n">gboolean</span><span class="w"> </span><span class="n">update_only</span><span class="p">)</span> <span class="p">{</span> <span class="w"> </span><span class="k">static</span><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="n">pos</span><span class="p">[</span><span class="mi">16</span><span class="p">],</span><span class="w"> </span><span class="n">size</span><span class="p">[</span><span class="mi">16</span><span class="p">],</span><span class="w"> </span><span class="n">kbs</span><span class="p">[</span><span class="mi">14</span><span class="p">],</span><span class="w"> </span><span class="n">perc</span><span class="p">[</span><span class="mi">14</span><span class="p">],</span><span class="w"> </span><span class="n">eta</span><span class="p">[</span><span class="mi">14</span><span class="p">];</span> <span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">to_go</span><span class="p">;</span> <span class="w"> </span><span class="kt">float</span><span class="w"> </span><span class="n">per</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">pix_up</span><span class="p">)</span> <span class="w"> </span><span class="n">pix_up</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">gtk_widget_render_icon</span><span class="w"> </span><span class="p">(</span><span class="n">dccfwin</span><span class="p">.</span><span class="n">window</span><span class="p">,</span><span class="w"> </span><span class="s">"gtk-go-up"</span><span class="p">,</span> <span class="w"> </span><span class="n">GTK_ICON_SIZE_MENU</span><span class="p">,</span><span class="w"> </span><span class="nb">NULL</span><span class="p">);</span> <span class="w"> </span><span class="cm">/* percentage ack'ed */</span> <span class="w"> </span><span class="n">per</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">(</span><span class="kt">float</span><span class="p">)</span><span class="w"> </span><span class="p">((</span><span class="n">dcc</span><span class="o">-></span><span class="n">ack</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="mf">100.00</span><span class="p">)</span><span class="w"> </span><span class="o">/</span><span class="w"> </span><span class="n">dcc</span><span class="o">-></span><span class="n">size</span><span class="p">);</span> <span class="w"> </span><span class="n">proper_unit</span><span class="w"> </span><span class="p">(</span><span class="n">dcc</span><span class="o">-></span><span class="n">size</span><span class="p">,</span><span class="w"> </span><span class="n">size</span><span class="p">,</span><span class="w"> </span><span class="k">sizeof</span><span class="w"> </span><span class="p">(</span><span class="n">size</span><span class="p">));</span> <span class="w"> </span><span class="n">proper_unit</span><span class="w"> </span><span class="p">(</span><span class="n">dcc</span><span class="o">-></span><span class="n">pos</span><span class="p">,</span><span class="w"> </span><span class="n">pos</span><span class="p">,</span><span class="w"> </span><span class="k">sizeof</span><span class="w"> </span><span class="p">(</span><span class="n">pos</span><span class="p">));</span> <span class="w"> </span><span class="n">snprintf</span><span class="w"> </span><span class="p">(</span><span class="n">kbs</span><span class="p">,</span><span class="w"> </span><span class="k">sizeof</span><span class="w"> </span><span class="p">(</span><span class="n">kbs</span><span class="p">),</span><span class="w"> </span><span class="s">"%.1f"</span><span class="p">,</span><span class="w"> </span><span class="p">((</span><span class="kt">float</span><span class="p">)</span><span class="n">dcc</span><span class="o">-></span><span class="n">cps</span><span class="p">)</span><span class="w"> </span><span class="o">/</span><span class="w"> </span><span class="mi">1024</span><span class="p">);</span> <span class="cm">/* proper_unit (dcc->ack, ack, sizeof (ack));*/</span> <span class="w"> </span><span class="n">snprintf</span><span class="w"> </span><span class="p">(</span><span class="n">perc</span><span class="p">,</span><span class="w"> </span><span class="k">sizeof</span><span class="w"> </span><span class="p">(</span><span class="n">perc</span><span class="p">),</span><span class="w"> </span><span class="s">"%.0f%%"</span><span class="p">,</span><span class="w"> </span><span class="n">per</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">dcc</span><span class="o">-></span><span class="n">cps</span><span class="w"> </span><span class="o">!=</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span> <span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="n">to_go</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">(</span><span class="n">dcc</span><span class="o">-></span><span class="n">size</span><span class="w"> </span><span class="o">-</span><span class="w"> </span><span class="n">dcc</span><span class="o">-></span><span class="n">ack</span><span class="p">)</span><span class="w"> </span><span class="o">/</span><span class="w"> </span><span class="n">dcc</span><span class="o">-></span><span class="n">cps</span><span class="p">;</span> <span class="w"> </span><span class="n">snprintf</span><span class="w"> </span><span class="p">(</span><span class="n">eta</span><span class="p">,</span><span class="w"> </span><span class="k">sizeof</span><span class="w"> </span><span class="p">(</span><span class="n">eta</span><span class="p">),</span><span class="w"> </span><span class="s">"%.2d:%.2d:%.2d"</span><span class="p">,</span> <span class="w"> </span><span class="n">to_go</span><span class="w"> </span><span class="o">/</span><span class="w"> </span><span class="mi">3600</span><span class="p">,</span><span class="w"> </span><span class="p">(</span><span class="n">to_go</span><span class="w"> </span><span class="o">/</span><span class="w"> </span><span class="mi">60</span><span class="p">)</span><span class="w"> </span><span class="o">%</span><span class="w"> </span><span class="mi">60</span><span class="p">,</span><span class="w"> </span><span class="n">to_go</span><span class="w"> </span><span class="o">%</span><span class="w"> </span><span class="mi">60</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="n">strcpy</span><span class="w"> </span><span class="p">(</span><span class="n">eta</span><span class="p">,</span><span class="w"> </span><span class="s">"--:--:--"</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">update_only</span><span class="p">)</span> <span class="w"> </span><span class="n">gtk_list_store_set</span><span class="w"> </span><span class="p">(</span><span class="n">store</span><span class="p">,</span><span class="w"> </span><span class="n">iter</span><span class="p">,</span> <span class="w"> </span><span class="n">COL_STATUS</span><span class="p">,</span><span class="w"> </span><span class="n">_</span><span class="p">(</span><span class="n">dccstat</span><span class="p">[</span><span class="n">dcc</span><span class="o">-></span><span class="n">dccstat</span><span class="p">].</span><span class="n">name</span><span class="p">),</span> <span class="w"> </span><span class="n">COL_POS</span><span class="p">,</span><span class="w"> </span><span class="n">pos</span><span class="p">,</span> <span class="w"> </span><span class="n">COL_PERC</span><span class="p">,</span><span class="w"> </span><span class="n">perc</span><span class="p">,</span> <span class="w"> </span><span class="n">COL_SPEED</span><span class="p">,</span><span class="w"> </span><span class="n">kbs</span><span class="p">,</span> <span class="w"> </span><span class="n">COL_ETA</span><span class="p">,</span><span class="w"> </span><span class="n">eta</span><span class="p">,</span> <span class="w"> </span><span class="n">COL_COLOR</span><span class="p">,</span> <span class="w"> </span><span class="n">dccstat</span><span class="p">[</span><span class="n">dcc</span><span class="o">-></span><span class="n">dccstat</span><span class="p">].</span><span class="n">color</span><span class="w"> </span><span class="o">==</span><span class="w"> </span><span class="mi">1</span><span class="w"> </span><span class="o">?</span> <span class="w"> </span><span class="nl">NULL</span><span class="w"> </span><span class="p">:</span> <span class="w"> </span><span class="n">colors</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="n">dccstat</span><span class="p">[</span><span class="n">dcc</span><span class="o">-></span><span class="n">dccstat</span><span class="p">].</span><span class="n">color</span><span class="p">,</span> <span class="w"> </span><span class="mi">-1</span><span class="p">);</span> <span class="w"> </span><span class="k">else</span> <span class="w"> </span><span class="n">gtk_list_store_set</span><span class="w"> </span><span class="p">(</span><span class="n">store</span><span class="p">,</span><span class="w"> </span><span class="n">iter</span><span class="p">,</span> <span class="w"> </span><span class="n">COL_TYPE</span><span class="p">,</span><span class="w"> </span><span class="n">pix_up</span><span class="p">,</span> <span class="w"> </span><span class="n">COL_STATUS</span><span class="p">,</span><span class="w"> </span><span class="n">_</span><span class="p">(</span><span class="n">dccstat</span><span class="p">[</span><span class="n">dcc</span><span class="o">-></span><span class="n">dccstat</span><span class="p">].</span><span class="n">name</span><span class="p">),</span> <span class="w"> </span><span class="n">COL_FILE</span><span class="p">,</span><span class="w"> </span><span class="n">file_part</span><span class="w"> </span><span class="p">(</span><span class="n">dcc</span><span class="o">-></span><span class="n">file</span><span class="p">),</span> <span class="w"> </span><span class="n">COL_SIZE</span><span class="p">,</span><span class="w"> </span><span class="n">size</span><span class="p">,</span> <span class="w"> </span><span class="n">COL_POS</span><span class="p">,</span><span class="w"> </span><span class="n">pos</span><span class="p">,</span> <span class="w"> </span><span class="n">COL_PERC</span><span class="p">,</span><span class="w"> </span><span class="n">perc</span><span class="p">,</span> <span class="w"> </span><span class="n">COL_SPEED</span><span class="p">,</span><span class="w"> </span><span class="n">kbs</span><span class="p">,</span> <span class="w"> </span><span class="n">COL_ETA</span><span class="p">,</span><span class="w"> </span><span class="n">eta</span><span class="p">,</span> <span class="w"> </span><span class="n">COL_NICK</span><span class="p">,</span><span class="w"> </span><span class="n">dcc</span><span class="o">-></span><span class="n">nick</span><span class="p">,</span> <span class="w"> </span><span class="n">COL_DCC</span><span class="p">,</span><span class="w"> </span><span class="n">dcc</span><span class="p">,</span> <span class="w"> </span><span class="n">COL_COLOR</span><span class="p">,</span> <span class="w"> </span><span class="n">dccstat</span><span class="p">[</span><span class="n">dcc</span><span class="o">-></span><span class="n">dccstat</span><span class="p">].</span><span class="n">color</span><span class="w"> </span><span class="o">==</span><span class="w"> </span><span class="mi">1</span><span class="w"> </span><span class="o">?</span> <span class="w"> </span><span class="nl">NULL</span><span class="w"> </span><span class="p">:</span> <span class="w"> </span><span class="n">colors</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="n">dccstat</span><span class="p">[</span><span class="n">dcc</span><span class="o">-></span><span class="n">dccstat</span><span class="p">].</span><span class="n">color</span><span class="p">,</span> <span class="w"> </span><span class="mi">-1</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="nf">dcc_prepare_row_recv</span><span class="w"> </span><span class="p">(</span><span class="k">struct</span><span class="w"> </span><span class="nc">DCC</span><span class="w"> </span><span class="o">*</span><span class="n">dcc</span><span class="p">,</span><span class="w"> </span><span class="n">GtkListStore</span><span class="w"> </span><span class="o">*</span><span class="n">store</span><span class="p">,</span><span class="w"> </span><span class="n">GtkTreeIter</span><span class="w"> </span><span class="o">*</span><span class="n">iter</span><span class="p">,</span> <span class="w"> </span><span class="n">gboolean</span><span class="w"> </span><span class="n">update_only</span><span class="p">)</span> <span class="p">{</span> <span class="w"> </span><span class="k">static</span><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="n">size</span><span class="p">[</span><span class="mi">16</span><span class="p">],</span><span class="w"> </span><span class="n">pos</span><span class="p">[</span><span class="mi">16</span><span class="p">],</span><span class="w"> </span><span class="n">kbs</span><span class="p">[</span><span class="mi">16</span><span class="p">],</span><span class="w"> </span><span class="n">perc</span><span class="p">[</span><span class="mi">14</span><span class="p">],</span><span class="w"> </span><span class="n">eta</span><span class="p">[</span><span class="mi">16</span><span class="p">];</span> <span class="w"> </span><span class="kt">float</span><span class="w"> </span><span class="n">per</span><span class="p">;</span> <span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">to_go</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">pix_dn</span><span class="p">)</span> <span class="w"> </span><span class="n">pix_dn</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">gtk_widget_render_icon</span><span class="w"> </span><span class="p">(</span><span class="n">dccfwin</span><span class="p">.</span><span class="n">window</span><span class="p">,</span><span class="w"> </span><span class="s">"gtk-go-down"</span><span class="p">,</span> <span class="w"> </span><span class="n">GTK_ICON_SIZE_MENU</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">proper_unit</span><span class="w"> </span><span class="p">(</span><span class="n">dcc</span><span class="o">-></span><span class="n">size</span><span class="p">,</span><span class="w"> </span><span class="n">size</span><span class="p">,</span><span class="w"> </span><span class="k">sizeof</span><span class="w"> </span><span class="p">(</span><span class="n">size</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">dcc</span><span class="o">-></span><span class="n">dccstat</span><span class="w"> </span><span class="o">==</span><span class="w"> </span><span class="n">STAT_QUEUED</span><span class="p">)</span> <span class="w"> </span><span class="n">proper_unit</span><span class="w"> </span><span class="p">(</span><span class="n">dcc</span><span class="o">-></span><span class="n">resumable</span><span class="p">,</span><span class="w"> </span><span class="n">pos</span><span class="p">,</span><span class="w"> </span><span class="k">sizeof</span><span class="w"> </span><span class="p">(</span><span class="n">pos</span><span class="p">));</span> <span class="w"> </span><span class="k">else</span> <span class="w"> </span><span class="n">proper_unit</span><span class="w"> </span><span class="p">(</span><span class="n">dcc</span><span class="o">-></span><span class="n">pos</span><span class="p">,</span><span class="w"> </span><span class="n">pos</span><span class="p">,</span><span class="w"> </span><span class="k">sizeof</span><span class="w"> </span><span class="p">(</span><span class="n">pos</span><span class="p">));</span> <span class="w"> </span><span class="n">snprintf</span><span class="w"> </span><span class="p">(</span><span class="n">kbs</span><span class="p">,</span><span class="w"> </span><span class="k">sizeof</span><span class="w"> </span><span class="p">(</span><span class="n">kbs</span><span class="p">),</span><span class="w"> </span><span class="s">"%.1f"</span><span class="p">,</span><span class="w"> </span><span class="p">((</span><span class="kt">float</span><span class="p">)</span><span class="n">dcc</span><span class="o">-></span><span class="n">cps</span><span class="p">)</span><span class="w"> </span><span class="o">/</span><span class="w"> </span><span class="mi">1024</span><span class="p">);</span> <span class="w"> </span><span class="cm">/* percentage recv'ed */</span> <span class="w"> </span><span class="n">per</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">(</span><span class="kt">float</span><span class="p">)</span><span class="w"> </span><span class="p">((</span><span class="n">dcc</span><span class="o">-></span><span class="n">pos</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="mf">100.00</span><span class="p">)</span><span class="w"> </span><span class="o">/</span><span class="w"> </span><span class="n">dcc</span><span class="o">-></span><span class="n">size</span><span class="p">);</span> <span class="w"> </span><span class="n">snprintf</span><span class="w"> </span><span class="p">(</span><span class="n">perc</span><span class="p">,</span><span class="w"> </span><span class="k">sizeof</span><span class="w"> </span><span class="p">(</span><span class="n">perc</span><span class="p">),</span><span class="w"> </span><span class="s">"%.0f%%"</span><span class="p">,</span><span class="w"> </span><span class="n">per</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">dcc</span><span class="o">-></span><span class="n">cps</span><span class="w"> </span><span class="o">!=</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span> <span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="n">to_go</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">(</span><span class="n">dcc</span><span class="o">-></span><span class="n">size</span><span class="w"> </span><span class="o">-</span><span class="w"> </span><span class="n">dcc</span><span class="o">-></span><span class="n">pos</span><span class="p">)</span><span class="w"> </span><span class="o">/</span><span class="w"> </span><span class="n">dcc</span><span class="o">-></span><span class="n">cps</span><span class="p">;</span> <span class="w"> </span><span class="n">snprintf</span><span class="w"> </span><span class="p">(</span><span class="n">eta</span><span class="p">,</span><span class="w"> </span><span class="k">sizeof</span><span class="w"> </span><span class="p">(</span><span class="n">eta</span><span class="p">),</span><span class="w"> </span><span class="s">"%.2d:%.2d:%.2d"</span><span class="p">,</span> <span class="w"> </span><span class="n">to_go</span><span class="w"> </span><span class="o">/</span><span class="w"> </span><span class="mi">3600</span><span class="p">,</span><span class="w"> </span><span class="p">(</span><span class="n">to_go</span><span class="w"> </span><span class="o">/</span><span class="w"> </span><span class="mi">60</span><span class="p">)</span><span class="w"> </span><span class="o">%</span><span class="w"> </span><span class="mi">60</span><span class="p">,</span><span class="w"> </span><span class="n">to_go</span><span class="w"> </span><span class="o">%</span><span class="w"> </span><span class="mi">60</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="n">strcpy</span><span class="w"> </span><span class="p">(</span><span class="n">eta</span><span class="p">,</span><span class="w"> </span><span class="s">"--:--:--"</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">update_only</span><span class="p">)</span> <span class="w"> </span><span class="n">gtk_list_store_set</span><span class="w"> </span><span class="p">(</span><span class="n">store</span><span class="p">,</span><span class="w"> </span><span class="n">iter</span><span class="p">,</span> <span class="w"> </span><span class="n">COL_STATUS</span><span class="p">,</span><span class="w"> </span><span class="n">_</span><span class="p">(</span><span class="n">dccstat</span><span class="p">[</span><span class="n">dcc</span><span class="o">-></span><span class="n">dccstat</span><span class="p">].</span><span class="n">name</span><span class="p">),</span> <span class="w"> </span><span class="n">COL_POS</span><span class="p">,</span><span class="w"> </span><span class="n">pos</span><span class="p">,</span> <span class="w"> </span><span class="n">COL_PERC</span><span class="p">,</span><span class="w"> </span><span class="n">perc</span><span class="p">,</span> <span class="w"> </span><span class="n">COL_SPEED</span><span class="p">,</span><span class="w"> </span><span class="n">kbs</span><span class="p">,</span> <span class="w"> </span><span class="n">COL_ETA</span><span class="p">,</span><span class="w"> </span><span class="n">eta</span><span class="p">,</span> <span class="w"> </span><span class="n">COL_COLOR</span><span class="p">,</span> <span class="w"> </span><span class="n">dccstat</span><span class="p">[</span><span class="n">dcc</span><span class="o">-></span><span class="n">dccstat</span><span class="p">].</span><span class="n">color</span><span class="w"> </span><span class="o">==</span><span class="w"> </span><span class="mi">1</span><span class="w"> </span><span class="o">?</span> <span class="w"> </span><span class="nl">NULL</span><span class="w"> </span><span class="p">:</span> <span class="w"> </span><span class="n">colors</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="n">dccstat</span><span class="p">[</span><span class="n">dcc</span><span class="o">-></span><span class="n">dccstat</span><span class="p">].</span><span class="n">color</span><span class="p">,</span> <span class="w"> </span><span class="mi">-1</span><span class="p">);</span> <span class="w"> </span><span class="k">else</span> <span class="w"> </span><span class="n">gtk_list_store_set</span><span class="w"> </span><span class="p">(</span><span class="n">store</span><span class="p">,</span><span class="w"> </span><span class="n">iter</span><span class="p">,</span> <span class="w"> </span><span class="n">COL_TYPE</span><span class="p">,</span><span class="w"> </span><span class="n">pix_dn</span><span class="p">,</span> <span class="w"> </span><span class="n">COL_STATUS</span><span class="p">,</span><span class="w"> </span><span class="n">_</span><span class="p">(</span><span class="n">dccstat</span><span class="p">[</span><span class="n">dcc</span><span class="o">-></span><span class="n">dccstat</span><span class="p">].</span><span class="n">name</span><span class="p">),</span> <span class="w"> </span><span class="n">COL_FILE</span><span class="p">,</span><span class="w"> </span><span class="n">file_part</span><span class="w"> </span><span class="p">(</span><span class="n">dcc</span><span class="o">-></span><span class="n">file</span><span class="p">),</span> <span class="w"> </span><span class="n">COL_SIZE</span><span class="p">,</span><span class="w"> </span><span class="n">size</span><span class="p">,</span> <span class="w"> </span><span class="n">COL_POS</span><span class="p">,</span><span class="w"> </span><span class="n">pos</span><span class="p">,</span> <span class="w"> </span><span class="n">COL_PERC</span><span class="p">,</span><span class="w"> </span><span class="n">perc</span><span class="p">,</span> <span class="w"> </span><span class="n">COL_SPEED</span><span class="p">,</span><span class="w"> </span><span class="n">kbs</span><span class="p">,</span> <span class="w"> </span><span class="n">COL_ETA</span><span class="p">,</span><span class="w"> </span><span class="n">eta</span><span class="p">,</span> <span class="w"> </span><span class="n">COL_NICK</span><span class="p">,</span><span class="w"> </span><span class="n">dcc</span><span class="o">-></span><span class="n">nick</span><span class="p">,</span> <span class="w"> </span><span class="n">COL_DCC</span><span class="p">,</span><span class="w"> </span><span class="n">dcc</span><span class="p">,</span> <span class="w"> </span><span class="n">COL_COLOR</span><span class="p">,</span> <span class="w"> </span><span class="n">dccstat</span><span class="p">[</span><span class="n">dcc</span><span class="o">-></span><span class="n">dccstat</span><span class="p">].</span><span class="n">color</span><span class="w"> </span><span class="o">==</span><span class="w"> </span><span class="mi">1</span><span class="w"> </span><span class="o">?</span> <span class="w"> </span><span class="nl">NULL</span><span class="w"> </span><span class="p">:</span> <span class="w"> </span><span class="n">colors</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="n">dccstat</span><span class="p">[</span><span class="n">dcc</span><span class="o">-></span><span class="n">dccstat</span><span class="p">].</span><span class="n">color</span><span class="p">,</span> <span class="w"> </span><span class="mi">-1</span><span class="p">);</span> <span class="p">}</span> <span class="k">static</span><span class="w"> </span><span class="n">gboolean</span> <span class="nf">dcc_find_row</span><span class="w"> </span><span class="p">(</span><span class="k">struct</span><span class="w"> </span><span class="nc">DCC</span><span class="w"> </span><span class="o">*</span><span class="n">find_dcc</span><span class="p">,</span><span class="w"> </span><span class="n">GtkTreeModel</span><span class="w"> </span><span class="o">*</span><span class="n">model</span><span class="p">,</span><span class="w"> </span><span class="n">GtkTreeIter</span><span class="w"> </span><span class="o">*</span><span class="n">iter</span><span class="p">,</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">col</span><span class="p">)</span> <span class="p">{</span> <span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">DCC</span><span class="w"> </span><span class="o">*</span><span class="n">dcc</span><span class="p">;</span> <span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">gtk_tree_model_get_iter_first</span><span class="w"> </span><span class="p">(</span><span class="n">model</span><span class="p">,</span><span class="w"> </span><span class="n">iter</span><span class="p">))</span> <span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="k">do</span> <span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="n">gtk_tree_model_get</span><span class="w"> </span><span class="p">(</span><span class="n">model</span><span class="p">,</span><span class="w"> </span><span class="n">iter</span><span class="p">,</span><span class="w"> </span><span class="n">col</span><span class="p">,</span><span class="w"> </span><span class="o">&</span><span class="n">dcc</span><span class="p">,</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="n">dcc</span><span class="w"> </span><span class="o">==</span><span class="w"> </span><span class="n">find_dcc</span><span class="p">)</span> <span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">TRUE</span><span class="p">;</span> <span class="w"> </span><span class="p">}</span> <span class="w"> </span><span class="k">while</span><span class="w"> </span><span class="p">(</span><span class="n">gtk_tree_model_iter_next</span><span class="w"> </span><span class="p">(</span><span class="n">model</span><span class="p">,</span><span class="w"> </span><span class="n">iter</span><span class="p">));</span> <span class="w"> </span><span class="p">}</span> <span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">FALSE</span><span class="p">;</span> <span class="p">}</span> <span class="k">static</span><span class="w"> </span><span class="kt">void</span> <span class="nf">dcc_update_recv</span><span class="w"> </span><span class="p">(</span><span class="k">struct</span><span class="w"> </span><span class="nc">DCC</span><span class="w"> </span><span class="o">*</span><span class="n">dcc</span><span class="p">)</span> <span class="p">{</span> <span class="w"> </span><span class="n">GtkTreeIter</span><span class="w"> </span><span class="n">iter</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">dccfwin</span><span class="p">.</span><span class="n">window</span><span class="p">)</span> <span class="w"> </span><span class="k">return</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">dcc_find_row</span><span class="w"> </span><span class="p">(</span><span class="n">dcc</span><span class="p">,</span><span class="w"> </span><span class="n">GTK_TREE_MODEL</span><span class="w"> </span><span class="p">(</span><span class="n">dccfwin</span><span class="p">.</span><span class="n">store</span><span class="p">),</span><span class="w"> </span><span class="o">&</span><span class="n">iter</span><span class="p">,</span><span class="w"> </span><span class="n">COL_DCC</span><span class="p">))</span> <span class="w"> </span><span class="k">return</span><span class="p">;</span> <span class="w"> </span><span class="n">dcc_prepare_row_recv</span><span class="w"> </span><span class="p">(</span><span class="n">dcc</span><span class="p">,</span><span class="w"> </span><span class="n">dccfwin</span><span class="p">.</span><span class="n">store</span><span class="p">,</span><span class="w"> </span><span class="o">&</span><span class="n">iter</span><span class="p">,</span><span class="w"> </span><span class="n">TRUE</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="nf">dcc_update_chat</span><span class="w"> </span><span class="p">(</span><span class="k">struct</span><span class="w"> </span><span class="nc">DCC</span><span class="w"> </span><span class="o">*</span><span class="n">dcc</span><span class="p">)</span> <span class="p">{</span> <span class="w"> </span><span class="n">GtkTreeIter</span><span class="w"> </span><span class="n">iter</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">dcccwin</span><span class="p">.</span><span class="n">window</span><span class="p">)</span> <span class="w"> </span><span class="k">return</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">dcc_find_row</span><span class="w"> </span><span class="p">(</span><span class="n">dcc</span><span class="p">,</span><span class="w"> </span><span class="n">GTK_TREE_MODEL</span><span class="w"> </span><span class="p">(</span><span class="n">dcccwin</span><span class="p">.</span><span class="n">store</span><span class="p">),</span><span class="w"> </span><span class="o">&</span><span class="n">iter</span><span class="p">,</span><span class="w"> </span><span class="n">CCOL_DCC</span><span class="p">))</span> <span class="w"> </span><span class="k">return</span><span class="p">;</span> <span class="w"> </span><span class="n">dcc_prepare_row_chat</span><span class="w"> </span><span class="p">(</span><span class="n">dcc</span><span class="p">,</span><span class="w"> </span><span class="n">dcccwin</span><span class="p">.</span><span class="n">store</span><span class="p">,</span><span class="w"> </span><span class="o">&</span><span class="n">iter</span><span class="p">,</span><span class="w"> </span><span class="n">TRUE</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="nf">dcc_update_send</span><span class="w"> </span><span class="p">(</span><span class="k">struct</span><span class="w"> </span><span class="nc">DCC</span><span class="w"> </span><span class="o">*</span><span class="n">dcc</span><span class="p">)</span> <span class="p">{</span> <span class="w"> </span><span class="n">GtkTreeIter</span><span class="w"> </span><span class="n">iter</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">dccfwin</span><span class="p">.</span><span class="n">window</span><span class="p">)</span> <span class="w"> </span><span class="k">return</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">dcc_find_row</span><span class="w"> </span><span class="p">(</span><span class="n">dcc</span><span class="p">,</span><span class="w"> </span><span class="n">GTK_TREE_MODEL</span><span class="w"> </span><span class="p">(</span><span class="n">dccfwin</span><span class="p">.</span><span class="n">store</span><span class="p">),</span><span class="w"> </span><span class="o">&</span><span class="n">iter</span><span class="p">,</span><span class="w"> </span><span class="n">COL_DCC</span><span class="p">))</span> <span class="w"> </span><span class="k">return</span><span class="p">;</span> <span class="w"> </span><span class="n">dcc_prepare_row_send</span><span class="w"> </span><span class="p">(</span><span class="n">dcc</span><span class="p">,</span><span class="w"> </span><span class="n">dccfwin</span><span class="p">.</span><span class="n">store</span><span class="p">,</span><span class="w"> </span><span class="o">&</span><span class="n">iter</span><span class="p">,</span><span class="w"> </span><span class="n">TRUE</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="nf">close_dcc_file_window</span><span class="w"> </span><span class="p">(</span><span class="n">GtkWindow</span><span class="w"> </span><span class="o">*</span><span class="n">win</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">dccfwin</span><span class="p">.</span><span class="n">window</span><span class="w"> </span><span class="o">=</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="nf">dcc_append</span><span class="w"> </span><span class="p">(</span><span class="k">struct</span><span class="w"> </span><span class="nc">DCC</span><span class="w"> </span><span class="o">*</span><span class="n">dcc</span><span class="p">,</span><span class="w"> </span><span class="n">GtkListStore</span><span class="w"> </span><span class="o">*</span><span class="n">store</span><span class="p">,</span><span class="w"> </span><span class="n">gboolean</span><span class="w"> </span><span class="n">prepend</span><span class="p">)</span> <span class="p">{</span> <span class="w"> </span><span class="n">GtkTreeIter</span><span class="w"> </span><span class="n">iter</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">prepend</span><span class="p">)</span> <span class="w"> </span><span class="n">gtk_list_store_prepend</span><span class="w"> </span><span class="p">(</span><span class="n">store</span><span class="p">,</span><span class="w"> </span><span class="o">&</span><span class="n">iter</span><span class="p">);</span> <span class="w"> </span><span class="k">else</span> <span class="w"> </span><span class="n">gtk_list_store_append</span><span class="w"> </span><span class="p">(</span><span class="n">store</span><span class="p">,</span><span class="w"> </span><span class="o">&</span><span class="n">iter</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">dcc</span><span class="o">-></span><span class="n">type</span><span class="w"> </span><span class="o">==</span><span class="w"> </span><span class="n">TYPE_RECV</span><span class="p">)</span> <span class="w"> </span><span class="n">dcc_prepare_row_recv</span><span class="w"> </span><span class="p">(</span><span class="n">dcc</span><span class="p">,</span><span class="w"> </span><span class="n">store</span><span class="p">,</span><span class="w"> </span><span class="o">&</span><span class="n">iter</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">else</span> <span class="w"> </span><span class="n">dcc_prepare_row_send</span><span class="w"> </span><span class="p">(</span><span class="n">dcc</span><span class="p">,</span><span class="w"> </span><span class="n">store</span><span class="p">,</span><span class="w"> </span><span class="o">&</span><span class="n">iter</span><span class="p">,</span><span class="w"> </span><span class="n">FALSE</span><span class="p">);</span> <span class="p">}</span> <span class="k">static</span><span class="w"> </span><span class="kt">void</span> <span class="nf">dcc_fill_window</span><span class="w"> </span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">flags</span><span class="p">)</span> <span class="p">{</span> <span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">DCC</span><span class="w"> </span><span class="o">*</span><span class="n">dcc</span><span class="p">;</span> <span class="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="w"> </span><span class="n">GtkTreeIter</span><span class="w"> </span><span class="n">iter</span><span class="p">;</span> <span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span> <span class="w"> </span><span class="n">gtk_list_store_clear</span><span class="w"> </span><span class="p">(</span><span class="n">GTK_LIST_STORE</span><span class="w"> </span><span class="p">(</span><span class="n">dccfwin</span><span class="p">.</span><span class="n">store</span><span class="p">));</span> <span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">flags</span><span class="w"> </span><span class="o">&</span><span class="w"> </span><span class="n">VIEW_UPLOAD</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">dcc_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">dcc</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">list</span><span class="o">-></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">dcc</span><span class="o">-></span><span class="n">type</span><span class="w"> </span><span class="o">==</span><span class="w"> </span><span class="n">TYPE_SEND</span><span class="p">)</span> <span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="n">dcc_append</span><span class="w"> </span><span class="p">(</span><span class="n">dcc</span><span class="p">,</span><span class="w"> </span><span class="n">dccfwin</span><span class="p">.</span><span class="n">store</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">i</span><span class="o">++</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">-></span><span class="n">next</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">if</span><span class="w"> </span><span class="p">(</span><span class="n">flags</span><span class="w"> </span><span class="o">&</span><span class="w"> </span><span class="n">VIEW_DOWNLOAD</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">dcc_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">dcc</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">list</span><span class="o">-></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">dcc</span><span class="o">-></span><span class="n">type</span><span class="w"> </span><span class="o">==</span><span class="w"> </span><span class="n">TYPE_RECV</span><span class="p">)</span> <span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="n">dcc_append</span><span class="w"> </span><span class="p">(</span><span class="n">dcc</span><span class="p">,</span><span class="w"> </span><span class="n">dccfwin</span><span class="p">.</span><span class="n">store</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">i</span><span class="o">++</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">-></span><span class="n">next</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">/* if only one entry, select it (so Accept button can work) */</span> <span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">i</span><span class="w"> </span><span class="o">==</span><span class="w"> </span><span class="mi">1</span><span class="p">)</span> <span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="n">gtk_tree_model_get_iter_first</span><span class="w"> </span><span class="p">(</span><span class="n">GTK_TREE_MODEL</span><span class="w"> </span><span class="p">(</span><span class="n">dccfwin</span><span class="p">.</span><span class="n">store</span><span class="p">),</span><span class="w"> </span><span class="o">&</span><span class="n">iter</span><span class="p">);</span> <span class="w"> </span><span class="n">gtk_tree_selection_select_iter</span><span class="w"> </span><span class="p">(</span><span class="n">dccfwin</span><span class="p">.</span><span class="n">sel</span><span class="p">,</span><span class="w"> </span><span class="o">&</span><span class="n">iter</span><span class="p">);</span> <span class="w"> </span><span class="p">}</span> <span class="p">}</span> <span class="cm">/* return list of selected DCCs */</span> <span class="k">static</span><span class="w"> </span><span class="n">GSList</span><span class="w"> </span><span class="o">*</span> <span class="nf">treeview_get_selected</span><span class="w"> </span><span class="p">(</span><span class="n">GtkTreeModel</span><span class="w"> </span><span class="o">*</span><span class="n">model</span><span class="p">,</span><span class="w"> </span><span class="n">GtkTreeSelection</span><span class="w"> </span><span class="o">*</span><span class="n">sel</span><span class="p">,</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">column</span><span class="p">)</span> <span class="p">{</span> <span class="w"> </span><span class="n">GtkTreeIter</span><span class="w"> </span><span class="n">iter</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="kt">void</span><span class="w"> </span><span class="o">*</span><span class="n">ptr</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">gtk_tree_model_get_iter_first</span><span class="w"> </span><span class="p">(</span><span class="n">model</span><span class="p">,</span><span class="w"> </span><span class="o">&</span><span class="n">iter</span><span class="p">))</span> <span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="k">do</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">gtk_tree_selection_iter_is_selected</span><span class="w"> </span><span class="p">(</span><span class="n">sel</span><span class="p">,</span><span class="w"> </span><span class="o">&</span><span class="n">iter</span><span class="p">))</span> <span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="n">gtk_tree_model_get</span><span class="w"> </span><span class="p">(</span><span class="n">model</span><span class="p">,</span><span class="w"> </span><span class="o">&</span><span class="n">iter</span><span class="p">,</span><span class="w"> </span><span class="n">column</span><span class="p">,</span><span class="w"> </span><span class="o">&</span><span class="n">ptr</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">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="n">list</span><span class="p">,</span><span class="w"> </span><span class="n">ptr</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">while</span><span class="w"> </span><span class="p">(</span><span class="n">gtk_tree_model_iter_next</span><span class="w"> </span><span class="p">(</span><span class="n">model</span><span class="p">,</span><span class="w"> </span><span class="o">&</span><span class="n">iter</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">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="n">GSList</span><span class="w"> </span><span class="o">*</span> <span class="nf">dcc_get_selected</span><span class="w"> </span><span class="p">(</span><span class="kt">void</span><span class="p">)</span> <span class="p">{</span> <span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">treeview_get_selected</span><span class="w"> </span><span class="p">(</span><span class="n">GTK_TREE_MODEL</span><span class="w"> </span><span class="p">(</span><span class="n">dccfwin</span><span class="p">.</span><span class="n">store</span><span class="p">),</span> <span class="w"> </span><span class="n">dccfwin</span><span class="p">.</span><span class="n">sel</span><span class="p">,</span><span class="w"> </span><span class="n">COL_DCC</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="nf">resume_clicked</span><span class="w"> </span><span class="p">(</span><span class="n">GtkWidget</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="n">wid</span><span class="p">,</span><span class="w"> </span><span class="n">gpointer</span><span class="w"> </span><span class="n">none</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">DCC</span><span class="w"> </span><span class="o">*</span><span class="n">dcc</span><span class="p">;</span> <span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="n">buf</span><span class="p">[</span><span class="mi">512</span><span class="p">];</span> <span class="w"> </span><span class="n">GSList</span><span class="w"> </span><span class="o">*</span><span class="n">list</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">dcc_get_selected</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">list</span><span class="p">)</span> <span class="w"> </span><span class="k">return</span><span class="p">;</span> <span class="w"> </span><span class="n">dcc</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">list</span><span class="o">-></span><span class="n">data</span><span class="p">;</span> <span class="w"> </span><span class="n">g_slist_free</span><span class="w"> </span><span class="p">(</span><span class="n">list</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">dcc</span><span class="o">-></span><span class="n">type</span><span class="w"> </span><span class="o">==</span><span class="w"> </span><span class="n">TYPE_RECV</span><span class="w"> </span><span class="o">&&</span><span class="w"> </span><span class="o">!</span><span class="n">dcc_resume</span><span class="w"> </span><span class="p">(</span><span class="n">dcc</span><span class="p">))</span> <span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="k">switch</span><span class="w"> </span><span class="p">(</span><span class="n">dcc</span><span class="o">-></span><span class="n">resume_error</span><span class="p">)</span> <span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="k">case</span><span class="w"> </span><span class="mi">0</span><span class="p">:</span><span class="w"> </span><span class="cm">/* unknown error */</span> <span class="w"> </span><span class="n">fe_message</span><span class="w"> </span><span class="p">(</span><span class="n">_</span><span class="p">(</span><span class="s">"That file is not resumable."</span><span class="p">),</span><span class="w"> </span><span class="n">FE_MSG_ERROR</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="mi">1</span><span class="p">:</span> <span class="w"> </span><span class="n">snprintf</span><span class="w"> </span><span class="p">(</span><span class="n">buf</span><span class="p">,</span><span class="w"> </span><span class="k">sizeof</span><span class="w"> </span><span class="p">(</span><span class="n">buf</span><span class="p">),</span> <span class="w"> </span><span class="n">_</span><span class="p">(</span><span class="w"> </span><span class="s">"Cannot access file: %s</span><span class="se">\n</span><span class="s">"</span> <span class="w"> </span><span class="s">"%s.</span><span class="se">\n</span><span class="s">"</span> <span class="w"> </span><span class="s">"Resuming not possible."</span><span class="p">),</span><span class="w"> </span><span class="n">dcc</span><span class="o">-></span><span class="n">destfile</span><span class="p">,</span><span class="w"> </span> <span class="w"> </span><span class="n">errorstring</span><span class="w"> </span><span class="p">(</span><span class="n">dcc</span><span class="o">-></span><span class="n">resume_errno</span><span class="p">));</span> <span class="w"> </span><span class="n">fe_message</span><span class="w"> </span><span class="p">(</span><span class="n">buf</span><span class="p">,</span><span class="w"> </span><span class="n">FE_MSG_ERROR</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="mi">2</span><span class="p">:</span> <span class="w"> </span><span class="n">fe_message</span><span class="w"> </span><span class="p">(</span><span class="n">_</span><span class="p">(</span><span class="s">"File in download directory is larger "</span> <span class="w"> </span><span class="s">"than file offered. Resuming not possible."</span><span class="p">),</span><span class="w"> </span><span class="n">FE_MSG_ERROR</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="mi">3</span><span class="p">:</span> <span class="w"> </span><span class="n">fe_message</span><span class="w"> </span><span class="p">(</span><span class="n">_</span><span class="p">(</span><span class="s">"Cannot resume the same file from two people."</span><span class="p">),</span><span class="w"> </span><span class="n">FE_MSG_ERROR</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="k">static</span><span class="w"> </span><span class="kt">void</span> <span class="nf">abort_clicked</span><span class="w"> </span><span class="p">(</span><span class="n">GtkWidget</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="n">wid</span><span class="p">,</span><span class="w"> </span><span class="n">gpointer</span><span class="w"> </span><span class="n">none</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">DCC</span><span class="w"> </span><span class="o">*</span><span class="n">dcc</span><span class="p">;</span> <span c