Compare commits

..

32 Commits

Author SHA1 Message Date
4e50f26a80 Bump version to 2.10.1 2014-07-28 14:58:28 -04:00
72eeb6e404 Update translations 2014-07-28 14:58:11 -04:00
2d62edc5af Fixed expand_homedir to handle paths like "~user" correctly. 2014-07-28 14:53:35 -04:00
6540c0ff68 Fix various crashes with pluginpref 2014-07-28 14:53:27 -04:00
3181c3c192 Add GeeksIRC and IRC4Fun to network list
Closes #1057
Closes #1058
2014-07-28 14:53:21 -04:00
f6ea5002db Fix apostrophe related spell check issues 2014-07-28 14:53:14 -04:00
d0de16f276 Fix possible crash in spell check
Closes #1048
2014-07-28 14:53:06 -04:00
3ba11f3754 win32: Update Python links 2014-07-28 14:52:59 -04:00
22b361a818 win32: Don't allow installing on Vista
It does not run on Vista
2014-07-28 14:52:51 -04:00
66958b3fe1 Disable tray support on Elementary
They followed Ubuntu in breaking any gtk trays..
2014-07-05 13:15:55 -04:00
5914cd9e62 configure: Improve python logic
- add checks for python3.4
- only warn once for failure to find a version
- only run pkg-config call if the .pc file was actually found
- make unsupported python version non-fatal

Closes #1006
Closes #989
2014-06-27 19:43:40 -04:00
ae0f02e76a Update server list
Closes #1013
2014-06-27 19:43:39 -04:00
7d08750955 win32: Silent installer improvements
- Launch uninstaller as VERYSILENT
- Don't launch Python/Perl installers when silent
2014-06-27 19:43:39 -04:00
3e3939b3f0 Fix autotools warning 2014-06-27 19:43:39 -04:00
d78e995e06 Some problems in banlist.c are fixed 2014-06-27 19:27:21 -04:00
81ff1b0029 Fix dcc dir warning showing when not auto-accept 2014-06-13 22:28:55 -04:00
540eac0542 Fix sending notify list to correct networks
Fixes #1015
2014-06-13 22:28:33 -04:00
e21e184141 We don't ship DNS as a plugin anymore 2014-06-13 17:36:32 +02:00
718ecfa057 Fix GTK+ bundle licenses missing from installer 2014-06-13 17:31:50 +02:00
806b98dfc2 Update server list
Removed any server that could not be connected to atm

Closes #666
2014-06-03 17:20:01 -04:00
518669de80 Remove random ifndef WIN32
I never found a reason for it existing, but it also never affected much anyway.
2014-06-03 10:02:19 -04:00
8538dd1a49 win32: Don't auto-generate version.txt 2014-06-03 09:43:14 -04:00
a918ec2236 Fix scrolling the chanview on Unix
Fixes #948
2014-06-03 08:39:37 -04:00
af7e6d3e20 fishlim: Fix filename in error messages 2014-06-02 18:28:35 -04:00
7c52e29e6e Handle a special character before "+OK", e.g. identify-msg + or - 2014-06-02 23:52:34 +02:00
d59acc2789 Use path to HexChat instead of XChat in the test program
Note that this affects the test program only. It doesn't affect users
of FiSHLiM. The reason for this change is that XChat doesn't seem to be
maintained any longer.
2014-06-02 23:51:58 +02:00
33b01b720c Add missing include in the test program 2014-06-02 23:51:04 +02:00
d190773d09 Fix memory leak in the test program 2014-06-02 23:49:42 +02:00
d8c80cd277 Fix undefined behaviour in left shift
This is not a problem with a usual compiler configuration, but LLVM/clang
detects it when compiled with:

-fsanitize=undefined-trap -fsanitize-undefined-trap-on-error -ftrapv
2014-06-02 23:47:27 +02:00
3fb04bee85 Update translations 2014-06-02 22:18:25 +02:00
8578a9d52d Always use GModule for plugin support
Also cleans up some dead code
2014-06-02 05:38:13 -04:00
0b492d32b3 Add missing files to POTFILES.in 2014-06-01 17:19:09 -04:00
46 changed files with 18261 additions and 18086 deletions

1
.gitignore vendored
View File

@ -7,6 +7,7 @@ Makefile.in
aclocal.m4
autom4te.cache/
compile
ar-lib
confdefs.h
conftest
conftest.c

View File

@ -1,6 +1,5 @@
#define LOCALEDIR ".\\share\\locale"
#define ENABLE_NLS
#define USE_GMODULE
#define USE_PLUGIN
#define USE_OPENSSL
#define USE_IPV6

View File

@ -1,6 +1,6 @@
dnl Process this file with autoconf to produce a configure script.
AC_INIT([HexChat],[2.10.0])
AC_INIT([HexChat],[2.10.1])
AC_PREREQ([2.60])
AC_COPYRIGHT([Copyright (C) 1998-2010 Peter Zelezny])
@ -19,6 +19,7 @@ AC_PROG_CC
AM_PROG_CC_C_O
AC_PROG_CPP
AM_PROG_AS
AM_PROG_AR
AM_DISABLE_STATIC
AC_PROG_LIBTOOL
AC_PATH_PROG(MDTOOL, mdtool, no)
@ -185,9 +186,10 @@ fi
PKG_CHECK_MODULES([GOBJECT], [gobject-2.0], [], [AC_MSG_ERROR(Cannot find gobject-2.0!)])
PKG_CHECK_MODULES([GIO], [gio-2.0], [], [AC_MSG_ERROR(Cannot find gio-2.0!)])
PKG_CHECK_MODULES([GMODULE], [gmodule-2.0], [], [AC_MSG_ERROR(Cannot find gmodule-2.0!)])
COMMON_CFLAGS="$GLIB_CFLAGS $GIO_CFLAGS $GOBJECT_CFLAGS -DG_DISABLE_SINGLE_INCLUDES"
COMMON_LIBS="$GLIB_LIBS $GIO_LIBS $GOBJECT_LIBS -lgmodule-2.0"
COMMON_CFLAGS="$GLIB_CFLAGS $GIO_CFLAGS $GOBJECT_CFLAGS $GMODULE_CFLAGS -DG_DISABLE_SINGLE_INCLUDES"
COMMON_LIBS="$GLIB_LIBS $GIO_LIBS $GOBJECT_LIBS $GMODULE_LIBS"
dnl *********************************************************************
dnl ** GTK **************************************************************
@ -293,19 +295,30 @@ if test "x$python" != xno ; then
case $python in
dnl set python2 default here
python2)
PKG_CHECK_MODULES([PY], [python-2.7], [], [AC_MSG_WARN(Cannot find python-2.7!)])
PY_VER="`$PKG_CONFIG --modversion python-2.7`";;
PKG_CHECK_MODULES([PY], [python-2.7],
[PY_VER="`$PKG_CONFIG --modversion python-2.7`"],
[true])
;;
dnl set python3 default here
python3)
PKG_CHECK_MODULES([PY], [python-3.3], [], [AC_MSG_WARN(Cannot find python-3.3!)])
PY_VER="`$PKG_CONFIG --modversion python-3.3`";;
PKG_CHECK_MODULES([PY], [python-3.4],
[PY_VER="`$PKG_CONFIG --modversion python-3.4`"],
[true])
if test "$PY_VER" = "" ; then
PKG_CHECK_MODULES([PY], [python-3.3],
[PY_VER="`$PKG_CONFIG --modversion python-3.3`"],
[true])
fi
;;
dnl add broken versions here
python2.5|python2.6|python3.1|python3.2)
AC_MSG_ERROR(Unsupported Python version ${python}!);;
AC_MSG_WARN(Unsupported Python version ${python}!);;
python*)
python="python-${python#python}" # stay posix compliant
PKG_CHECK_MODULES([PY], [${python}], [], [AC_MSG_WARN(Cannot find "${python}.pc"!)])
PY_VER="`$PKG_CONFIG --modversion ${python}`";;
PKG_CHECK_MODULES([PY], [${python}],
[PY_VER="`$PKG_CONFIG --modversion ${python}`"],
[AC_MSG_WARN(Cannot find "${python}.pc"!)])
;;
*)
AC_MSG_WARN(Unsupported Python ${python}!)
esac
@ -426,29 +439,7 @@ dnl ** PLUGIN ***********************************************************
dnl *********************************************************************
if test "$plugin" = yes; then
AC_CHECK_FUNCS(dlopen, have_dl=yes)
if test "$have_dl" != yes; then
AC_CHECK_LIB(dl, dlopen, have_dl=yes)
if test "$have_dl" = yes; then
LIBS="$LIBS -ldl"
fi
fi
if test "$have_dl" = yes; then
AC_DEFINE(USE_PLUGIN)
dnl we just need the -Wl,--export-dynamic, but not -lgmodule-2.0
RDYNAMIC_FLAGS="`$PKG_CONFIG gmodule-2.0 --libs | $sedpath 's/ -lgmodule-2.0//'`"
LIBS="$LIBS $RDYNAMIC_FLAGS"
if test "$LD" = ""; then
VS="`ld --help | grep version-script 2> /dev/null`"
else
VS="`$LD --help | grep version-script 2> /dev/null`"
fi
if test "$VS" != ""; then
GUI_LIBS="$GUI_LIBS -Wl,--version-script,\$(srcdir)/../version-script"
fi
else
plugin=no
fi
AC_DEFINE(USE_PLUGIN)
fi
dnl *********************************************************************

View File

@ -136,7 +136,7 @@ char *fish_decrypt(const char *key, size_t keylen, const char *data) {
for (i = 0; i < 12; i++) {
d = fish_unbase64[(const unsigned char)*(data++)];
if (d == IB) goto decrypt_end;
binary[word] |= d << bit;
binary[word] |= (unsigned long)d << bit;
bit += 6;
if (i == 5) {
bit = 0;

View File

@ -40,7 +40,7 @@
static const char plugin_name[] = "FiSHLiM";
static const char plugin_desc[] = "Encryption plugin for the FiSH protocol. Less is More!";
static const char plugin_version[] = "0.0.16";
static const char plugin_version[] = "0.0.17";
static const char usage_setkey[] = "Usage: SETKEY [<nick or #channel>] <password>, sets the key for a channel or nick";
static const char usage_delkey[] = "Usage: DELKEY <nick or #channel>, deletes the key for a channel or nick";
@ -119,6 +119,7 @@ static int handle_incoming(char *word[], char *word_eol[], void *userdata) {
size_t ew;
size_t uw;
size_t length;
char prefix_char = 0;
if (!irc_parse_message((const char **)word, &prefix, &command, &w))
return HEXCHAT_EAT_NONE;
@ -129,6 +130,8 @@ static int handle_incoming(char *word[], char *word_eol[], void *userdata) {
// Look for encrypted data
for (ew = w+1; ew < HEXCHAT_MAX_WORDS-1; ew++) {
const char *s = (ew == w+1 ? word[ew]+1 : word[ew]);
if (*s && (s[1] == '+' || s[1] == 'm')) { prefix_char = *(s++); }
else { prefix_char = 0; }
if (strcmp(s, "+OK") == 0 || strcmp(s, "mcps") == 0) goto has_encrypted_data;
}
return HEXCHAT_EAT_NONE;
@ -163,6 +166,11 @@ static int handle_incoming(char *word[], char *word_eol[], void *userdata) {
if (!append(&message, &length, ":")) goto decrypt_error;
}
if (prefix_char) {
char prefix_str[2] = { prefix_char, '\0' };
if (!append(&message, &length, prefix_str)) goto decrypt_error;
}
} else {
// Add unencrypted data (for example, a prefix from a bouncer or bot)
peice = word[uw];
@ -213,7 +221,7 @@ static int handle_setkey(char *word[], char *word_eol[], void *userdata) {
if (keystore_store_key(nick, key)) {
hexchat_printf(ph, "Stored key for %s\n", nick);
} else {
hexchat_printf(ph, "\00305Failed to store key in blow.ini\n", nick, key);
hexchat_printf(ph, "\00305Failed to store key in addon_fishlim.conf\n", nick, key);
}
return HEXCHAT_EAT_HEXCHAT;
@ -237,7 +245,7 @@ static int handle_delkey(char *word[], char *word_eol[], void *userdata) {
if (keystore_delete_nick(nick)) {
hexchat_printf(ph, "Deleted key for %s\n", nick);
} else {
hexchat_printf(ph, "\00305Failed to delete key in blow.ini!\n", nick);
hexchat_printf(ph, "\00305Failed to delete key in addon_fishlim.conf!\n", nick);
}
return HEXCHAT_EAT_HEXCHAT;

View File

@ -24,13 +24,14 @@
#include <glib.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "fish.h"
// We can't use the HexChat plugin API from here...
gchar *get_config_filename() {
const gchar *homedir = g_get_home_dir();
return g_build_filename(homedir, ".xchat2", "blow.ini", NULL);
return g_build_filename(homedir, ".config", "hexchat", "blow.ini", NULL);
}
@ -46,6 +47,7 @@ static int decrypt(int nick_count, char *nicks[]) {
return 1;
success:
fprintf(stderr, "Decrypted text >>>%s<<<\n", msg);
free(msg);
}
return 0;
}
@ -62,6 +64,7 @@ static int encrypt(int nick_count, char *nicks[]) {
char *encrypted = fish_encrypt_for_nick(nicks[i], message);
if (encrypted) {
fprintf(stderr, "Encrypted [%s]: >>>%s<<<\n", nicks[i], encrypted);
free(encrypted);
} else {
error = true;
}

View File

@ -2,9 +2,11 @@ data/misc/hexchat.appdata.xml.in
data/misc/hexchat.desktop.in
data/misc/htm.desktop.in
src/common/cfgfiles.c
src/common/chanopt.c
src/common/dcc.c
src/common/hexchat.c
src/common/ignore.c
src/common/inbound.c
src/common/notify.c
src/common/outbound.c
src/common/plugin.c
@ -37,3 +39,4 @@ src/fe-gtk/sexy-spell-entry.c
src/fe-gtk/textgui.c
src/fe-gtk/urlgrab.c
src/fe-gtk/userlistgui.c
src/fe-text/fe-text.c

View File

@ -4,7 +4,7 @@
#
# Translators:
# Rostislav Raykov <zbrox@i-space.org>, 2005
# Phr33d0m <shibam@v-gz.cz.cc>, 2012
# n0kS Phr33d0m <shibam@v-gz.cz.cc>, 2012
msgid ""
msgstr ""
"Project-Id-Version: HexChat\n"

View File

@ -6,7 +6,7 @@
# Birger Langkjer <birger.langkjer@image.dk>, 1999
# bviktor, 2012
# Daniel Nylander <po@danielnylander.se>, 2007-2008,2010
# Incendia <dennisskovhermannsen@gmail.com>, 2012-2013
# Dennis Skov Midjord <dennisskovhermannsen@gmail.com>, 2012-2013
# Henrik Hansen <hh@mailserver.dk>, 1999
# Keld Simonsen, <keld2keldix.com>, 2011
# Morten Brix Pedersen <morten@wtf.dk>, 2001

3646
po/de.po

File diff suppressed because it is too large Load Diff

View File

@ -3,7 +3,7 @@
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
# txapollo243 <txapollo243@gmail.com>, 2013
# Filippos Soulakis <txapollo243@gmail.com>, 2013
# Stathis Kamperis <ekamperi@auth.gr>, 2006
# Γιάννης Ανθυμίδης <yannanth@gmail.com>, 2013
msgid ""

File diff suppressed because it is too large Load Diff

3380
po/es.po

File diff suppressed because it is too large Load Diff

View File

@ -4,7 +4,7 @@
#
# Translators:
# Mikel Olasagasti <hey_neken@euskal.org>, 2004
# Hey_neken <mikel@olasagasti.info>, 2012
# Mikel Olasagasti Uranga <mikel@olasagasti.info>, 2012
msgid ""
msgstr ""
"Project-Id-Version: HexChat\n"

157
po/fi.po
View File

@ -3,13 +3,14 @@
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
# Toni Willberg, 2014
msgid ""
msgstr ""
"Project-Id-Version: HexChat\n"
"Report-Msgid-Bugs-To: www.hexchat.org\n"
"POT-Creation-Date: 2014-05-14 13:20-0400\n"
"PO-Revision-Date: 2014-05-14 17:20+0000\n"
"Last-Translator: TingPing <tingping@tingping.se>\n"
"PO-Revision-Date: 2014-06-24 13:54+0000\n"
"Last-Translator: Toni Willberg\n"
"Language-Team: Finnish (http://www.transifex.com/projects/p/hexchat/language/fi/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@ -36,7 +37,7 @@ msgstr ""
#: ../data/misc/hexchat.desktop.in.h:2
msgid "IRC Client"
msgstr ""
msgstr "IRC Client"
#: ../data/misc/hexchat.desktop.in.h:3
msgid "Chat with other people online"
@ -119,19 +120,19 @@ msgstr "Ei aktiivisia DCC-yhteyksiä\n"
#: ../src/common/hexchat.c:867
msgid "_Open Dialog Window"
msgstr ""
msgstr "Avaa keskusteluikkuna"
#: ../src/common/hexchat.c:868
msgid "_Send a File"
msgstr ""
msgstr "Lähetä tiedo_sto"
#: ../src/common/hexchat.c:869
msgid "_User Info (WhoIs)"
msgstr ""
msgstr "Käyttäjätiedot (Whois)"
#: ../src/common/hexchat.c:870
msgid "_Add to Friends List"
msgstr ""
msgstr "Lisää k_averilistalle"
#: ../src/common/hexchat.c:871
msgid "_Ignore"
@ -305,12 +306,12 @@ msgstr "Mihinkään palvelimeen ei ole yhteyttä. Kokeile /server <isäntä> [<p
#: ../src/common/outbound.c:280
#, c-format
msgid "Server %s already exists on network %s.\n"
msgstr ""
msgstr "Palvelin %s on jo verkossa %s.\n"
#: ../src/common/outbound.c:286
#, c-format
msgid "Added server %s to network %s.\n"
msgstr ""
msgstr "Lisättiin palvelin %s verkoon %s.\n"
#: ../src/common/outbound.c:371
#, c-format
@ -606,7 +607,7 @@ msgstr ""
#: ../src/common/outbound.c:4020
msgid "NAMES [channel], Lists the nicks on the channel"
msgstr ""
msgstr "NAMES [kanava], luettelee kanavalla olevat käyttäjät"
#: ../src/common/outbound.c:4022
msgid "NCTCP <nick> <message>, Sends a CTCP notice"
@ -1191,7 +1192,7 @@ msgstr ""
#: ../src/common/textevents.h:279
msgid ""
"%C20*%O$tNickname is erroneous or already in use. Use /NICK to try another."
msgstr ""
msgstr "%C20*%O$tNimi on virheellinen tai jo käytössä. Käytä /NICK -komentoa yrittääksesi uudelleen."
#: ../src/common/textevents.h:282
msgid "%C20*%O$tNo such DCC."
@ -1203,11 +1204,11 @@ msgstr ""
#: ../src/common/textevents.h:294
msgid "%C23*%O$tNotify: %C18$1%C is away (%C24$2%O)"
msgstr ""
msgstr "%C23*%O$tNotify: %C18$1%C on poissa (%C24$2%O)"
#: ../src/common/textevents.h:297
msgid "%C23*%O$tNotify: %C18$1%C is back"
msgstr ""
msgstr "%C23*%O$tNotify: %C18$1%C tuli takaisin"
#: ../src/common/textevents.h:300
msgid "$tNotify list is empty."
@ -2107,7 +2108,7 @@ msgstr "Kanada"
#: ../src/common/util.c:1028 ../src/fe-gtk/setup.c:96
msgid "Catalan"
msgstr ""
msgstr "Katalaani"
#: ../src/common/util.c:1029
msgid "Cocos Islands"
@ -3359,7 +3360,7 @@ msgstr "Aloitusaika"
#: ../src/fe-gtk/editlist.c:358 ../src/fe-gtk/fkeys.c:826
msgid "Add"
msgstr ""
msgstr "Lisää"
#: ../src/fe-gtk/editlist.c:360 ../src/fe-gtk/fkeys.c:828
#: ../src/fe-gtk/ignoregui.c:383
@ -3683,7 +3684,7 @@ msgstr "Palvelimelta on edelleen auki %d kanavaa tai keskustelua. Suljetaanko ka
#: ../src/fe-gtk/maingui.c:1203
msgid "Quit HexChat?"
msgstr ""
msgstr "Suljetaanko HexChat?"
#: ../src/fe-gtk/maingui.c:1223
msgid "Don't ask next time."
@ -3720,7 +3721,7 @@ msgstr "<u>Alleviivattu</u>"
#: ../src/fe-gtk/maingui.c:1475
msgid "<i>Italic</i>"
msgstr ""
msgstr "<i>Kursiivi</i>"
#: ../src/fe-gtk/maingui.c:1476
msgid "Normal"
@ -3736,11 +3737,11 @@ msgstr "Värit 815"
#: ../src/fe-gtk/maingui.c:1534
msgid "_Settings"
msgstr ""
msgstr "A_setukset"
#: ../src/fe-gtk/maingui.c:1536
msgid "_Log to Disk"
msgstr ""
msgstr "Tallenna _lokitiedosto levylle"
#: ../src/fe-gtk/maingui.c:1537
msgid "_Reload Scrollback"
@ -3752,7 +3753,7 @@ msgstr ""
#: ../src/fe-gtk/maingui.c:1541
msgid "_Hide Join/Part Messages"
msgstr ""
msgstr "Piilota liittymis- ja poistumisviestit"
#: ../src/fe-gtk/maingui.c:1550
msgid "_Extra Alerts"
@ -3760,7 +3761,7 @@ msgstr ""
#: ../src/fe-gtk/maingui.c:1552
msgid "Beep on _Message"
msgstr ""
msgstr "Anna ääni_merkki kun uusi viesti saapuu"
#: ../src/fe-gtk/maingui.c:1554
msgid "Blink Tray _Icon"
@ -3834,7 +3835,7 @@ msgstr "Anna uusi kutsumanimi:"
#: ../src/fe-gtk/maingui.c:2832
msgid "No results found."
msgstr ""
msgstr "Ei osumia."
#: ../src/fe-gtk/maingui.c:2928
msgid "Search hit end or not found."
@ -3858,7 +3859,7 @@ msgstr ""
#: ../src/fe-gtk/maingui.c:2959
msgid "_Regex"
msgstr ""
msgstr "_Regex"
#: ../src/fe-gtk/maingui.c:2964
msgid "Regard search string as a regular expression."
@ -3918,7 +3919,7 @@ msgstr "Poissaoloviesti:"
#: ../src/fe-gtk/menu.c:737
#, c-format
msgid "%d nicks selected."
msgstr ""
msgstr "%d nimeä valittu."
#: ../src/fe-gtk/menu.c:862
msgid ""
@ -4337,7 +4338,7 @@ msgstr "Tallenna teksti..."
#: ../src/fe-gtk/menu.c:1828
msgid "Search"
msgstr ""
msgstr "Etsi"
#: ../src/fe-gtk/menu.c:1829
msgid "Search Text..."
@ -4345,11 +4346,11 @@ msgstr "Hae tekstistä..."
#: ../src/fe-gtk/menu.c:1830
msgid "Search Next"
msgstr ""
msgstr "Etsi seuraava"
#: ../src/fe-gtk/menu.c:1831
msgid "Search Previous"
msgstr ""
msgstr "Etsi edellinen"
#: ../src/fe-gtk/menu.c:1834 ../src/fe-gtk/menu.c:2321
msgid "_Help"
@ -4392,7 +4393,7 @@ msgstr "%d minuuttia sitten"
#: ../src/fe-gtk/notifygui.c:195
#, c-format
msgid "An hour ago"
msgstr ""
msgstr "Tunti sitten"
#: ../src/fe-gtk/notifygui.c:197
#, c-format
@ -4417,7 +4418,7 @@ msgstr "Pilkuilla eroteltu luettelo IRC-verkkoja."
#: ../src/fe-gtk/notifygui.c:407
msgid ": Friends List"
msgstr ""
msgstr ": Kaverilista"
#: ../src/fe-gtk/notifygui.c:429
msgid "Open Dialog"
@ -4578,11 +4579,11 @@ msgstr "Haluatko todella poistaa verkon \"%s\" ja kaikki sen palvelimet?"
#: ../src/fe-gtk/servlistgui.c:1126 ../src/fe-gtk/servlistgui.c:1557
msgid "User name cannot be left blank."
msgstr ""
msgstr "Käyttäjätunnus ei voi olla tyhjä."
#: ../src/fe-gtk/servlistgui.c:1578
msgid "You must have two unique nick names."
msgstr ""
msgstr "Lempinimet pitää olla uniikkeja."
#: ../src/fe-gtk/servlistgui.c:1630
msgid ""
@ -4597,11 +4598,11 @@ msgstr "XChat: Muokkaa %s-verkkoa"
#: ../src/fe-gtk/servlistgui.c:1725
msgid "Servers"
msgstr ""
msgstr "Palvelimet"
#: ../src/fe-gtk/servlistgui.c:1726
msgid "Autojoin channels"
msgstr ""
msgstr "Liity kanaville automaattisesti"
#: ../src/fe-gtk/servlistgui.c:1727
msgid "Connect commands"
@ -4633,7 +4634,7 @@ msgstr "Älä yritä yhdistää muihin palvelimiin, jos valittuun palvelimeen ei
#: ../src/fe-gtk/servlistgui.c:1862
msgid "Connect to this network automatically"
msgstr ""
msgstr "Yhdistä tähän verkkoon automaattisesti"
#: ../src/fe-gtk/servlistgui.c:1863
msgid "Bypass proxy server"
@ -4775,7 +4776,7 @@ msgstr ""
#: ../src/fe-gtk/setup.c:99
msgid "Czech"
msgstr ""
msgstr "Tsekki"
#: ../src/fe-gtk/setup.c:100
msgid "Danish"
@ -4783,11 +4784,11 @@ msgstr ""
#: ../src/fe-gtk/setup.c:101
msgid "Dutch"
msgstr ""
msgstr "Hollanti"
#: ../src/fe-gtk/setup.c:102
msgid "English (British)"
msgstr ""
msgstr "Englanti (Brittiläinen)"
#: ../src/fe-gtk/setup.c:103
msgid "English"
@ -4799,23 +4800,23 @@ msgstr "Viro"
#: ../src/fe-gtk/setup.c:105
msgid "Finnish"
msgstr ""
msgstr "Suomi"
#: ../src/fe-gtk/setup.c:106
msgid "French"
msgstr ""
msgstr "Ranska"
#: ../src/fe-gtk/setup.c:107
msgid "Galician"
msgstr ""
msgstr "Galego"
#: ../src/fe-gtk/setup.c:108
msgid "German"
msgstr ""
msgstr "Saksa"
#: ../src/fe-gtk/setup.c:109
msgid "Greek"
msgstr ""
msgstr "Kreikka"
#: ../src/fe-gtk/setup.c:110
msgid "Gujarati"
@ -4827,7 +4828,7 @@ msgstr "Intia"
#: ../src/fe-gtk/setup.c:112
msgid "Hungarian"
msgstr ""
msgstr "Unkari"
#: ../src/fe-gtk/setup.c:113
msgid "Indonesian"
@ -4835,15 +4836,15 @@ msgstr ""
#: ../src/fe-gtk/setup.c:114
msgid "Italian"
msgstr ""
msgstr "Italia"
#: ../src/fe-gtk/setup.c:115
msgid "Japanese"
msgstr ""
msgstr "Japani"
#: ../src/fe-gtk/setup.c:116
msgid "Kannada"
msgstr ""
msgstr "Kannada"
#: ../src/fe-gtk/setup.c:117
msgid "Kinyarwanda"
@ -4851,19 +4852,19 @@ msgstr ""
#: ../src/fe-gtk/setup.c:118
msgid "Korean"
msgstr ""
msgstr "Korea"
#: ../src/fe-gtk/setup.c:119
msgid "Latvian"
msgstr ""
msgstr "Latvia"
#: ../src/fe-gtk/setup.c:120
msgid "Lithuanian"
msgstr ""
msgstr "Liettua"
#: ../src/fe-gtk/setup.c:121
msgid "Macedonian"
msgstr ""
msgstr "Makedonia"
#: ../src/fe-gtk/setup.c:122
msgid "Malay"
@ -4875,51 +4876,51 @@ msgstr ""
#: ../src/fe-gtk/setup.c:124
msgid "Norwegian (Bokmal)"
msgstr ""
msgstr "Norja (Bokmal)"
#: ../src/fe-gtk/setup.c:125
msgid "Norwegian (Nynorsk)"
msgstr ""
msgstr "Norja (Nynorsk)"
#: ../src/fe-gtk/setup.c:126
msgid "Polish"
msgstr ""
msgstr "Puola"
#: ../src/fe-gtk/setup.c:127
msgid "Portuguese"
msgstr ""
msgstr "Portugali"
#: ../src/fe-gtk/setup.c:128
msgid "Portuguese (Brazilian)"
msgstr ""
msgstr "Portugali (Brasilian)"
#: ../src/fe-gtk/setup.c:129
msgid "Punjabi"
msgstr ""
msgstr "Punjabi"
#: ../src/fe-gtk/setup.c:130
msgid "Russian"
msgstr ""
msgstr "Venäjä"
#: ../src/fe-gtk/setup.c:131
msgid "Serbian"
msgstr ""
msgstr "Serbia"
#: ../src/fe-gtk/setup.c:132
msgid "Slovak"
msgstr ""
msgstr "Slovakki"
#: ../src/fe-gtk/setup.c:133
msgid "Slovenian"
msgstr ""
msgstr "Sloveeni"
#: ../src/fe-gtk/setup.c:134
msgid "Spanish"
msgstr ""
msgstr "Espanja"
#: ../src/fe-gtk/setup.c:135
msgid "Swedish"
msgstr ""
msgstr "Ruotsi"
#: ../src/fe-gtk/setup.c:136
msgid "Thai"
@ -4927,11 +4928,11 @@ msgstr "Thaimaa"
#: ../src/fe-gtk/setup.c:137
msgid "Turkish"
msgstr ""
msgstr "Turkki"
#: ../src/fe-gtk/setup.c:138
msgid "Ukrainian"
msgstr ""
msgstr "Ukraina"
#: ../src/fe-gtk/setup.c:139
msgid "Vietnamese"
@ -4939,7 +4940,7 @@ msgstr "Vietnam"
#: ../src/fe-gtk/setup.c:140
msgid "Walloon"
msgstr ""
msgstr "Valloni"
#: ../src/fe-gtk/setup.c:147 ../src/fe-gtk/setup.c:1814
msgid "General"
@ -4947,11 +4948,11 @@ msgstr "Yleiset"
#: ../src/fe-gtk/setup.c:149
msgid "Language:"
msgstr ""
msgstr "Kieli:"
#: ../src/fe-gtk/setup.c:150
msgid "Main font:"
msgstr ""
msgstr "Pääfontti:"
#: ../src/fe-gtk/setup.c:152
msgid "Font:"
@ -4995,7 +4996,7 @@ msgstr "Läpikuultavuuden säätö"
#: ../src/fe-gtk/setup.c:162
msgid "Window Opacity:"
msgstr ""
msgstr "Ikkunan läpinäkyvyys:"
#: ../src/fe-gtk/setup.c:164 ../src/fe-gtk/setup.c:538
msgid "Time Stamps"
@ -5063,7 +5064,7 @@ msgstr "Oikoluku"
#: ../src/fe-gtk/setup.c:195
msgid "Dictionaries to use:"
msgstr ""
msgstr "Käytettävät sanakirjat:"
#: ../src/fe-gtk/setup.c:197
msgid ""
@ -5097,7 +5098,7 @@ msgstr ""
#: ../src/fe-gtk/setup.c:205
msgid "nicks."
msgstr ""
msgstr "nimeä."
#: ../src/fe-gtk/setup.c:213
msgid "Graphical"
@ -5231,7 +5232,7 @@ msgstr "Vain itse avatut"
#: ../src/fe-gtk/setup.c:293
msgid "Automatic"
msgstr ""
msgstr "Automaattinen"
#: ../src/fe-gtk/setup.c:294
msgid "In an extra tab"
@ -5472,7 +5473,7 @@ msgstr ""
#: ../src/fe-gtk/setup.c:431
msgid "Automatically mark away/back"
msgstr ""
msgstr "Päivitä paikalla/poissa -statuksesi automaattisesti"
#: ../src/fe-gtk/setup.c:431
msgid "Automatically change status when hiding to tray."
@ -5547,7 +5548,7 @@ msgstr ""
#: ../src/fe-gtk/setup.c:481 ../src/fe-gtk/setup.c:514
msgid "Miscellaneous"
msgstr ""
msgstr "Sekalaiset"
#: ../src/fe-gtk/setup.c:482
msgid "Display MODEs in raw form"
@ -5625,7 +5626,7 @@ msgstr ""
#: ../src/fe-gtk/setup.c:515
msgid "Real name:"
msgstr ""
msgstr "Oikea nimi:"
#: ../src/fe-gtk/setup.c:517
msgid "Alternative fonts:"
@ -5778,7 +5779,7 @@ msgstr "Käyttökelpoinen vain, kun tietokoneessa on monta osoitetta."
#: ../src/fe-gtk/setup.c:585
msgid "File Transfers"
msgstr ""
msgstr "Tiedostojen siirrot"
#: ../src/fe-gtk/setup.c:586
msgid "Get my address from the IRC server"
@ -5980,7 +5981,7 @@ msgstr "Keskustelu"
#: ../src/fe-gtk/setup.c:1816
msgid "Sounds"
msgstr ""
msgstr "Äänet"
#: ../src/fe-gtk/setup.c:1818
msgid "Advanced"
@ -6006,7 +6007,7 @@ msgstr "Puuta ei voi laittaa ylös eikä alas!\nMuuta ensin välilehtiasettelua
#: ../src/fe-gtk/setup.c:2160
msgid "The Real name option cannot be left blank. Falling back to \"realname\"."
msgstr ""
msgstr "Oikeaa nimeä ei voi jättää tyhjäksi."
#: ../src/fe-gtk/setup.c:2167
msgid "Some settings were changed that require a restart to take full effect."
@ -6083,7 +6084,7 @@ msgstr "Kokeile kaikki"
#: ../src/fe-gtk/textgui.c:485
msgid "OK"
msgstr ""
msgstr "OK"
#: ../src/fe-gtk/urlgrab.c:198
msgid ": URL Grabber"

3398
po/fr.po

File diff suppressed because it is too large Load Diff

View File

@ -4,8 +4,8 @@
#
# Translators:
# Andhika Padmawan <andhika.padmawan@gmail.com>, 2010
# doplank <doplank@gmx.com>, 2012-2013
# doplank <doplank@gmx.com>, 2013
# Rahmat Bambang <doplank@gmx.com>, 2012-2013
# Rahmat Bambang <doplank@gmx.com>, 2013
msgid ""
msgstr ""
"Project-Id-Version: HexChat\n"

3379
po/it.po

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

4817
po/ko.po

File diff suppressed because it is too large Load Diff

View File

@ -4,8 +4,8 @@
#
# Translators:
# bviktor, 2012
# Thorne <thorne@null.net>, 2013
# Thorne <thorne@null.net>, 2012
# Thorne Heathenspring <thorne@null.net>, 2013
# Thorne Heathenspring <thorne@null.net>, 2012
msgid ""
msgstr ""
"Project-Id-Version: HexChat\n"

View File

@ -3,9 +3,9 @@
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
# xtremesmw <neethan98@hotmail.ca>, 2013
# Thor K.H. <nitrolinken@gmail.com>, 2013
# Thor K.H. <nitrolinken@gmail.com>, 2012-2013
# Xtreme Power <neethan98@hotmail.ca>, 2013
# Thor K. H. <nitrolinken@gmail.com>, 2013
# Thor K. H. <nitrolinken@gmail.com>, 2012-2013
msgid ""
msgstr ""
"Project-Id-Version: HexChat\n"

3772
po/pl.po

File diff suppressed because it is too large Load Diff

View File

@ -3,8 +3,8 @@
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
# artur_pt <artursimoes.pt@gmail.com>, 2013
# artur_pt <artursimoes.pt@gmail.com>, 2012-2013
# artur simões <artursimoes.pt@gmail.com>, 2013
# artur simões <artursimoes.pt@gmail.com>, 2012-2013
# Sandro Amaral <sandro123iv@gmail.com>, 2013
# Vitor Antunes <vhda@mega.ist.utl.pt>, 2004
msgid ""

View File

@ -6,15 +6,16 @@
# Flamarion Jorge <flamarilinux@yahoo.com.br>, 2009
# Flamarion Jorge Flamarion <jorge.flamarion@gmail.com>, 2012
# Frédéric L. W. Meunier <fredlwm@olympiquedemarseille.org>, 20, 2009
# Leonardopf <leonardo@piresfelix.com>, 2013
# mkbu95 <mkbu95@gmail.com>, 2012
# Leonardo Pires Felix <leonardo@piresfelix.com>, 2013
# Matheus Felipe Braga, 2014
# Matheus Macabu <mkbu95@gmail.com>, 2012
msgid ""
msgstr ""
"Project-Id-Version: HexChat\n"
"Report-Msgid-Bugs-To: www.hexchat.org\n"
"POT-Creation-Date: 2014-05-14 13:20-0400\n"
"PO-Revision-Date: 2014-05-14 17:20+0000\n"
"Last-Translator: TingPing <tingping@tingping.se>\n"
"PO-Revision-Date: 2014-06-05 15:02+0000\n"
"Last-Translator: Matheus Felipe Braga\n"
"Language-Team: Portuguese (Brazil) (http://www.transifex.com/projects/p/hexchat/language/pt_BR/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@ -229,11 +230,11 @@ msgstr "Enviar arquivo"
#: ../src/common/hexchat.c:921
msgid "Dialog"
msgstr ""
msgstr "Diálogo"
#: ../src/common/hexchat.c:930
msgid "WhoIs"
msgstr ""
msgstr "Quem É"
#: ../src/common/hexchat.c:931
msgid "Send"
@ -1465,7 +1466,7 @@ msgstr "Mensagem"
#: ../src/common/text.c:1379 ../src/common/text.c:1507
#: ../src/common/text.c:1549
msgid "Server Name"
msgstr ""
msgstr "Servidor"
#: ../src/common/text.c:1060
msgid "Acknowledged Capabilities"
@ -1713,7 +1714,7 @@ msgstr ""
#: ../src/common/text.c:1268
msgid "Full name"
msgstr ""
msgstr "Nome completo"
#: ../src/common/text.c:1273
msgid "Channel Membership/\"is an IRC operator\""
@ -1721,11 +1722,11 @@ msgstr ""
#: ../src/common/text.c:1278
msgid "Server Information"
msgstr ""
msgstr "Informações do servidor"
#: ../src/common/text.c:1283 ../src/common/text.c:1288
msgid "Idle time"
msgstr ""
msgstr "Tempo inativo"
#: ../src/common/text.c:1289
msgid "Signon time"
@ -1772,7 +1773,7 @@ msgstr ""
#: ../src/fe-gtk/menu.c:1781 ../src/fe-gtk/setup.c:214
#: ../src/fe-gtk/textgui.c:382
msgid "Text"
msgstr ""
msgstr "Texto"
#: ../src/common/text.c:1349
msgid "Nick of person who invited you"
@ -1792,16 +1793,16 @@ msgstr ""
#: ../src/common/text.c:1369 ../src/common/text.c:1515
msgid "IP"
msgstr ""
msgstr "IP"
#: ../src/common/text.c:1370 ../src/common/text.c:1406
msgid "Port"
msgstr ""
msgstr "Porta"
#: ../src/common/text.c:1380 ../src/fe-gtk/notifygui.c:125
#: ../src/fe-gtk/setup.c:1820
msgid "Network"
msgstr ""
msgstr "Rede"
#: ../src/common/text.c:1385 ../src/common/text.c:1395
msgid "Modes string"
@ -1822,7 +1823,7 @@ msgstr ""
#: ../src/common/text.c:1472 ../src/common/text.c:1481
#: ../src/common/text.c:1487
msgid "Filename"
msgstr ""
msgstr "Nome do arquivo"
#: ../src/common/text.c:1423 ../src/common/text.c:1430
msgid "Destination filename"
@ -1842,7 +1843,7 @@ msgstr "Posição"
#: ../src/common/text.c:1488 ../src/fe-gtk/dccgui.c:817
msgid "Size"
msgstr ""
msgstr "Tamanho"
#: ../src/common/text.c:1493
msgid "DCC String"
@ -1992,7 +1993,7 @@ msgstr ""
#: ../src/common/util.c:998
msgid "Reverse DNS"
msgstr ""
msgstr "DNS Reverso"
#: ../src/common/util.c:999
msgid "American Samoa"
@ -2080,7 +2081,7 @@ msgstr ""
#: ../src/common/util.c:1020
msgid "Brazil"
msgstr ""
msgstr "Brasil"
#: ../src/common/util.c:1021
msgid "Bahamas"
@ -2236,7 +2237,7 @@ msgstr ""
#: ../src/common/util.c:1059
msgid "Egypt"
msgstr ""
msgstr "Egito"
#: ../src/common/util.c:1060
msgid "Western Sahara"
@ -3056,7 +3057,7 @@ msgstr ""
#: ../src/common/dbus/dbus-plugin.c:30
msgid "remote access"
msgstr ""
msgstr "acesso remoto"
#: ../src/common/dbus/dbus-plugin.c:31
msgid "plugin for remote access using DBUS"
@ -3142,11 +3143,11 @@ msgstr ""
#: ../src/fe-gtk/banlist.c:728
msgid "From"
msgstr ""
msgstr "De"
#: ../src/fe-gtk/banlist.c:729
msgid "Date"
msgstr ""
msgstr "Data"
#: ../src/fe-gtk/banlist.c:785
msgid "You can only open the Ban List window while in a channel tab."
@ -3163,7 +3164,7 @@ msgstr ": Lista de banidos (%s)"
#: ../src/fe-gtk/banlist.c:848 ../src/fe-gtk/notifygui.c:425
msgid "Remove"
msgstr ""
msgstr "Remover"
#: ../src/fe-gtk/banlist.c:850
msgid "Crop"
@ -3171,7 +3172,7 @@ msgstr ""
#: ../src/fe-gtk/banlist.c:854
msgid "Refresh"
msgstr ""
msgstr "Atualizar"
#: ../src/fe-gtk/chanlist.c:98
#, c-format
@ -3185,7 +3186,7 @@ msgstr ""
#: ../src/fe-gtk/chanlist.c:624 ../src/fe-gtk/chanlist.c:812
msgid "_Join Channel"
msgstr "E_ntrar no Canal"
msgstr "_Entrar no Canal"
#: ../src/fe-gtk/chanlist.c:626
msgid "_Copy Channel Name"
@ -3202,7 +3203,7 @@ msgstr ": Lista de Canais (%s)"
#: ../src/fe-gtk/chanlist.c:794
msgid "_Search"
msgstr ""
msgstr "_Procurar"
#: ../src/fe-gtk/chanlist.c:800
msgid "_Download List"
@ -3215,7 +3216,7 @@ msgstr "Salvar _Lista..."
#. =============================================================
#: ../src/fe-gtk/chanlist.c:819
msgid "Show only:"
msgstr ""
msgstr "Exibir apenas:"
#: ../src/fe-gtk/chanlist.c:831
msgid "channels with"
@ -3223,7 +3224,7 @@ msgstr "canais com"
#: ../src/fe-gtk/chanlist.c:844
msgid "to"
msgstr ""
msgstr "para"
#: ../src/fe-gtk/chanlist.c:856
msgid "users."
@ -3245,7 +3246,7 @@ msgstr "Tipo de pesquisa:"
#: ../src/fe-gtk/chanlist.c:901
msgid "Simple Search"
msgstr ""
msgstr "Pesquisa Simples"
#: ../src/fe-gtk/chanlist.c:902
msgid "Pattern Match (Wildcards)"
@ -3263,12 +3264,12 @@ msgstr "Encontrar:"
#: ../src/fe-gtk/dccgui.c:150
#, c-format
msgid "Send file to %s"
msgstr ""
msgstr "Enviar arquivo para %s"
#. unknown error
#: ../src/fe-gtk/dccgui.c:526
msgid "That file is not resumable."
msgstr ""
msgstr "Este arquivo não é resumivel."
#: ../src/fe-gtk/dccgui.c:530
#, c-format
@ -3276,7 +3277,7 @@ msgid ""
"Cannot access file: %s\n"
"%s.\n"
"Resuming not possible."
msgstr ""
msgstr "Falha ao acessar arquivo: %s\n%s.\nResumir não é possivel."
#: ../src/fe-gtk/dccgui.c:537
msgid ""
@ -3295,11 +3296,11 @@ msgstr ""
#: ../src/fe-gtk/dccgui.c:815 ../src/fe-gtk/dccgui.c:1056
#: ../src/fe-gtk/notifygui.c:124
msgid "Status"
msgstr ""
msgstr "Status"
#: ../src/fe-gtk/dccgui.c:816 ../src/fe-gtk/plugingui.c:65
msgid "File"
msgstr ""
msgstr "Arquivo"
#: ../src/fe-gtk/dccgui.c:821
msgid "ETA"
@ -3312,7 +3313,7 @@ msgstr "Ambos"
#: ../src/fe-gtk/dccgui.c:852
msgid "Uploads"
msgstr ""
msgstr "Uploads"
#: ../src/fe-gtk/dccgui.c:858
msgid "Downloads"
@ -3320,7 +3321,7 @@ msgstr "Downloads"
#: ../src/fe-gtk/dccgui.c:863
msgid "Details"
msgstr ""
msgstr "Detalhes"
#: ../src/fe-gtk/dccgui.c:874
msgid "File:"
@ -3332,19 +3333,19 @@ msgstr "Endereço:"
#: ../src/fe-gtk/dccgui.c:881 ../src/fe-gtk/dccgui.c:1080
msgid "Abort"
msgstr ""
msgstr "Abortar"
#: ../src/fe-gtk/dccgui.c:882 ../src/fe-gtk/dccgui.c:1081
msgid "Accept"
msgstr ""
msgstr "Aceitar"
#: ../src/fe-gtk/dccgui.c:883
msgid "Resume"
msgstr ""
msgstr "Resumir"
#: ../src/fe-gtk/dccgui.c:885
msgid "Open Folder..."
msgstr ""
msgstr "Abrir Pasta..."
#: ../src/fe-gtk/dccgui.c:1045
msgid ": DCC Chat List"
@ -3356,7 +3357,7 @@ msgstr ""
#: ../src/fe-gtk/dccgui.c:1059
msgid "Sent"
msgstr ""
msgstr "Enviado"
#: ../src/fe-gtk/dccgui.c:1060
msgid "Start Time"
@ -3369,7 +3370,7 @@ msgstr ""
#: ../src/fe-gtk/editlist.c:360 ../src/fe-gtk/fkeys.c:828
#: ../src/fe-gtk/ignoregui.c:383
msgid "Delete"
msgstr ""
msgstr "Apagar"
#: ../src/fe-gtk/editlist.c:362 ../src/fe-gtk/fkeys.c:830
msgid "Cancel"
@ -3377,7 +3378,7 @@ msgstr "Cancelar"
#: ../src/fe-gtk/editlist.c:364 ../src/fe-gtk/fkeys.c:832
msgid "Save"
msgstr ""
msgstr "Salvar"
#: ../src/fe-gtk/fe-gtk.c:80
msgid "Don't auto connect to servers"
@ -3389,7 +3390,7 @@ msgstr ""
#: ../src/fe-gtk/fe-gtk.c:82
msgid "Don't auto load any plugins"
msgstr ""
msgstr "Não carregar automaticamente nenhum plugin"
#: ../src/fe-gtk/fe-gtk.c:83
msgid "Show plugin/script auto-load directory"
@ -3397,7 +3398,7 @@ msgstr ""
#: ../src/fe-gtk/fe-gtk.c:84
msgid "Show user config directory"
msgstr ""
msgstr "Exibir diretório de configuração do usuário"
#: ../src/fe-gtk/fe-gtk.c:85 ../src/fe-gtk/fe-gtk.c:92
msgid "Open an irc://server:port/channel?key URL"
@ -3413,15 +3414,15 @@ msgstr ""
#: ../src/fe-gtk/fe-gtk.c:90
msgid "Begin minimized. Level 0=Normal 1=Iconified 2=Tray"
msgstr ""
msgstr "Iniciar minimizado. Nivel 0=Normal 1=Iconified 2=Bandeja"
#: ../src/fe-gtk/fe-gtk.c:90
msgid "level"
msgstr ""
msgstr "nivel"
#: ../src/fe-gtk/fe-gtk.c:91
msgid "Show version information"
msgstr ""
msgstr "Exibir informação da versão"
#: ../src/fe-gtk/fe-gtk.c:268
#, c-format
@ -3561,11 +3562,11 @@ msgstr ""
#: ../src/fe-gtk/ignoregui.c:160
msgid "Private"
msgstr ""
msgstr "Privado"
#: ../src/fe-gtk/ignoregui.c:161
msgid "Notice"
msgstr ""
msgstr "Aviso"
#: ../src/fe-gtk/ignoregui.c:162
msgid "CTCP"
@ -3601,11 +3602,11 @@ msgstr "Canal:"
#: ../src/fe-gtk/ignoregui.c:367
msgid "Private:"
msgstr ""
msgstr "Privado:"
#: ../src/fe-gtk/ignoregui.c:368
msgid "Notice:"
msgstr ""
msgstr "Aviso:"
#: ../src/fe-gtk/ignoregui.c:369
msgid "CTCP:"
@ -3621,7 +3622,7 @@ msgstr "Adicionar..."
#: ../src/fe-gtk/joind.c:91
msgid "Channel name too short, try again."
msgstr ""
msgstr "Nome do canal pequeno, tente novamente."
#: ../src/fe-gtk/joind.c:133
msgid ": Connection Complete"
@ -3640,11 +3641,11 @@ msgstr ""
#: ../src/fe-gtk/joind.c:176
msgid "What would you like to do next?"
msgstr ""
msgstr "O que voce gostaria de fazer em seguida?"
#: ../src/fe-gtk/joind.c:181
msgid "_Nothing, I'll join a channel later."
msgstr ""
msgstr "_Nada, entrarei em um canal depois."
#: ../src/fe-gtk/joind.c:190
msgid "_Join this channel:"
@ -3652,7 +3653,7 @@ msgstr "_Entrar neste canal:"
#: ../src/fe-gtk/joind.c:202
msgid "If you know the name of the channel you want to join, enter it here."
msgstr ""
msgstr "Se voce sabe o nome do canal que deseja entrar, digite aqui."
#: ../src/fe-gtk/joind.c:209
msgid "O_pen the Channel-List window."
@ -3673,7 +3674,7 @@ msgstr "Diálogo com"
#: ../src/fe-gtk/maingui.c:695
#, c-format
msgid "Topic for %s is: %s"
msgstr ""
msgstr "Tópico para %s é: %s"
#: ../src/fe-gtk/maingui.c:700
msgid "No topic is set"
@ -3688,28 +3689,28 @@ msgstr ""
#: ../src/fe-gtk/maingui.c:1203
msgid "Quit HexChat?"
msgstr ""
msgstr "Sair?"
#: ../src/fe-gtk/maingui.c:1223
msgid "Don't ask next time."
msgstr ""
msgstr "Não perguntar novamente."
#: ../src/fe-gtk/maingui.c:1229
#, c-format
msgid "You are connected to %i IRC networks."
msgstr ""
msgstr "Voce esta conectado a %i redes IRC."
#: ../src/fe-gtk/maingui.c:1231
msgid "Are you sure you want to quit?"
msgstr ""
msgstr "Voce tem certeza que deseja sair?"
#: ../src/fe-gtk/maingui.c:1233
msgid "Some file transfers are still active."
msgstr ""
msgstr "Algumas transferencias de arquivos continuam ativas."
#: ../src/fe-gtk/maingui.c:1251
msgid "_Minimize to Tray"
msgstr ""
msgstr "_Minimizar para bandeja"
#: ../src/fe-gtk/maingui.c:1471
msgid "Insert Attribute or Color Code"
@ -3717,7 +3718,7 @@ msgstr ""
#: ../src/fe-gtk/maingui.c:1473
msgid "<b>Bold</b>"
msgstr ""
msgstr "<b>Negrito</b>"
#: ../src/fe-gtk/maingui.c:1474
msgid "<u>Underline</u>"
@ -3807,15 +3808,15 @@ msgstr ""
#: ../src/fe-gtk/maingui.c:2069
msgid "Topic Protection"
msgstr ""
msgstr "Tópico Protegido"
#: ../src/fe-gtk/maingui.c:2070
msgid "Invite Only"
msgstr ""
msgstr "Apenas convidados"
#: ../src/fe-gtk/maingui.c:2071
msgid "Moderated"
msgstr ""
msgstr "Moderado"
#: ../src/fe-gtk/maingui.c:2072
msgid "Ban List"
@ -3831,7 +3832,7 @@ msgstr "Limite de Usuários"
#: ../src/fe-gtk/maingui.c:2196
msgid "Show/Hide userlist"
msgstr ""
msgstr "Exibir/Ocultar lista usuários"
#: ../src/fe-gtk/maingui.c:2609
msgid "Enter new nickname:"
@ -3914,7 +3915,7 @@ msgstr ""
#: ../src/fe-gtk/menu.c:666 ../src/fe-gtk/menu.c:669
msgid "Last Msg:"
msgstr ""
msgstr "Ultima msg:"
#: ../src/fe-gtk/menu.c:679
msgid "Away Msg:"
@ -3933,11 +3934,11 @@ msgstr ""
#: ../src/fe-gtk/menu.c:970
msgid "Open Link in Browser"
msgstr ""
msgstr "Abrir Link no Navegador"
#: ../src/fe-gtk/menu.c:971
msgid "Copy Selected Link"
msgstr ""
msgstr "Copiar Link Selecionado"
#: ../src/fe-gtk/menu.c:1033 ../src/fe-gtk/menu.c:1393
msgid "Join Channel"
@ -4094,7 +4095,7 @@ msgstr ": Menu contextual da lista de usuários"
#: ../src/fe-gtk/menu.c:1541
msgid "Replace with"
msgstr ""
msgstr "Substituir com"
#: ../src/fe-gtk/menu.c:1541
msgid ": Replace"
@ -4338,19 +4339,19 @@ msgstr ""
#: ../src/fe-gtk/menu.c:1826
msgid "Save Text..."
msgstr ""
msgstr "Salvar Texto..."
#: ../src/fe-gtk/menu.c:1828
msgid "Search"
msgstr ""
msgstr "Procurar"
#: ../src/fe-gtk/menu.c:1829
msgid "Search Text..."
msgstr ""
msgstr "Procurar Texto..."
#: ../src/fe-gtk/menu.c:1830
msgid "Search Next"
msgstr ""
msgstr "Procurar Proximo"
#: ../src/fe-gtk/menu.c:1831
msgid "Search Previous"
@ -4375,7 +4376,7 @@ msgstr ""
#: ../src/fe-gtk/notifygui.c:123 ../src/fe-gtk/plugingui.c:63
msgid "Name"
msgstr ""
msgstr "Nome"
#: ../src/fe-gtk/notifygui.c:126
msgid "Last Seen"
@ -4387,7 +4388,7 @@ msgstr ""
#: ../src/fe-gtk/notifygui.c:188 ../src/fe-gtk/setup.c:285
msgid "Never"
msgstr ""
msgstr "Nunca"
#: ../src/fe-gtk/notifygui.c:193 ../src/fe-gtk/notifygui.c:222
#, c-format
@ -4536,7 +4537,7 @@ msgstr ""
#: ../src/fe-gtk/plugingui.c:66 ../src/fe-gtk/textgui.c:428
msgid "Description"
msgstr ""
msgstr "Descrição"
#: ../src/fe-gtk/plugingui.c:163
msgid "Select a Plugin or Script to load"

View File

@ -4,7 +4,7 @@
#
# Translators:
# Aleksandr P <davian818@gmail.com>, 2010
# andreyv <andrey.vihrov@gmail.com>, 2013
# Andrey Vihrov <andrey.vihrov@gmail.com>, 2013
# Valek Filippov <frob@df.ru>, 2001
# Volosenkov Dmitry <_bil_@mail.ru>, 1999
msgid ""

4597
po/sq.po

File diff suppressed because it is too large Load Diff

View File

@ -4,7 +4,7 @@
#
# Translators:
# o Zoltan Čala <zolika@sezampro.yu>, 1999
# Ortak Velja <majstorov@gmail.com>, 2013
# Velimir Majstorov <majstorov@gmail.com>, 2013
# Zlatan Vasović <legospace9876@gmail.com>, 2013-2014
msgid ""
msgstr ""

View File

@ -3,7 +3,7 @@
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
# Ortak Velja <majstorov@gmail.com>, 2013
# Velimir Majstorov <majstorov@gmail.com>, 2013
# o Zoltan Čala <zolika@sezampro.yu>, 1999
# Zlatan Vasović <legospace9876@gmail.com>, 2013
msgid ""

View File

@ -3,7 +3,7 @@
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
# androidnisse <jakob@knugen.nu>, 2012
# Jakob <jakob@knugen.nu>, 2012
msgid ""
msgstr ""
"Project-Id-Version: HexChat\n"

View File

@ -3,18 +3,19 @@
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
# tulliana <mdemiray@msn.com>, 2014
# Atilla Öntaş <tarakbumba@gmail.com>, 2014
# Demiray Muhterem <mdemiray@msn.com>, 2014
# ifthenelse <ifthenelse@gmx.com>, 2013
# osmanos <osman.erkan@yandex.com>, 2014
# TingPing <tingping@tingping.se>, 2014
# Ufuk Uyumaz <ufukuyumaz@gmail.com>, 2013
# Ufuk UYUMAZ <ufukuyumaz@gmail.com>, 2013
msgid ""
msgstr ""
"Project-Id-Version: HexChat\n"
"Report-Msgid-Bugs-To: www.hexchat.org\n"
"POT-Creation-Date: 2014-05-14 13:20-0400\n"
"PO-Revision-Date: 2014-05-14 17:20+0000\n"
"Last-Translator: TingPing <tingping@tingping.se>\n"
"PO-Revision-Date: 2014-07-14 10:59+0000\n"
"Last-Translator: Atilla Öntaş <tarakbumba@gmail.com>\n"
"Language-Team: Turkish (http://www.transifex.com/projects/p/hexchat/language/tr/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@ -403,13 +404,13 @@ msgstr "BAN <maske> [<yasaktipi>], maskeye uygun herkesi kanalda yasaklar. Zaten
#: ../src/common/outbound.c:3913
msgid "CHANOPT [-quiet] <variable> [<value>]"
msgstr ""
msgstr "CHANOPT [-quiet] <değişken> [<değer>]"
#: ../src/common/outbound.c:3914
msgid ""
"CHARSET [<encoding>], get or set the encoding used for the current "
"connection"
msgstr ""
msgstr "CHARSET [<kodlama>], geçerli bağlantı için kullanılan kodlamayı getir veya ayarla"
#: ../src/common/outbound.c:3915
msgid ""
@ -423,19 +424,19 @@ msgstr ""
#: ../src/common/outbound.c:3919
msgid "COUNTRY [-s] <code|wildcard>, finds a country code, eg: au = australia"
msgstr ""
msgstr "COUNTRY [-s] <kodlama/değişken ifade>, bir ülke kodlaması bulur, mesela: au = australia"
#: ../src/common/outbound.c:3921
msgid ""
"CTCP <nick> <message>, send the CTCP message to nick, common messages are "
"VERSION and USERINFO"
msgstr ""
msgstr "CTCP <rumuz> <ileti>,CTCP iletisinii rumuza gönder, ortak iletiler VERSION ve USERINFO' dur"
#: ../src/common/outbound.c:3923
msgid ""
"CYCLE [<channel>], parts the current or given channel and immediately "
"rejoins"
msgstr ""
msgstr "CYCLE [<kanall>], geçerli olan veya verilen kanalı böler ve hemen yeniden katılır"
#: ../src/common/outbound.c:3925
msgid ""

File diff suppressed because it is too large Load Diff

View File

@ -161,9 +161,6 @@
<Command><![CDATA[
SET SOLUTIONDIR=$(SolutionDir)..\
powershell -File "$(SolutionDir)..\version-template.ps1" "$(SolutionDir)..\config-win32.h.tt" "$(SolutionDir)..\config-win32.h"
powershell -File "$(SolutionDir)..\version-template.ps1" "$(SolutionDir)..\win32\version.txt.tt" "$(SolutionDir)..\win32\version.txt.tmp"
REM version.txt must be in UTF-8 without trailing newline
powershell "[string] $content = Get-Content '$(SolutionDir)..\win32\version.txt.tmp' -Encoding UTF8; [System.IO.File]::WriteAllText('$(SolutionDir)..\win32\version.txt', $content); Remove-Item '$(SolutionDir)..\win32\version.txt.tmp';"
"$(DepsRoot)\bin\glib-genmarshal.exe" --prefix=_hexchat_marshal --header "$(ProjectDir)marshalers.list" > "$(ProjectDir)marshal.h"
"$(DepsRoot)\bin\glib-genmarshal.exe" --prefix=_hexchat_marshal --body "$(ProjectDir)marshalers.list" > "$(ProjectDir)marshal.c"

View File

@ -861,9 +861,7 @@ inbound_005 (server * serv, char *word[], const message_tags_data *tags_data)
serv->have_whox = TRUE;
} else if (strcmp (word[w], "EXCEPTS") == 0)
{
#ifndef WIN32
serv->have_except = TRUE;
#endif
} else if (strcmp (word[w], "INVEX") == 0)
{
/* supports mode letter +I, default channel invite */

View File

@ -410,32 +410,50 @@ void
notify_send_watches (server * serv)
{
struct notify *notify;
const int format_len = serv->supports_monitor ? 1 : 2; /* just , for monitor or + and space for watch */
GSList *list;
GSList *point;
int len;
GSList *send_list = NULL;
int len = 0;
len = 0;
point = list = notify_list;
/* Only get the list for this network */
list = notify_list;
while (list)
{
notify = list->data;
if (notify_do_network (notify, serv))
{
len += strlen (notify->name) + serv->supports_monitor ? 1 : 2; /* just , for monitor or + and space for watch */;
if (len > 500)
{
notify_flush_watches (serv, point, list);
len = strlen (notify->name) + serv->supports_monitor ? 1 : 2;
point = list;
}
send_list = g_slist_append (send_list, notify);
}
list = list->next;
}
if (point)
/* Now send that list in batches */
point = list = send_list;
while (list)
{
notify = list->data;
len += strlen (notify->name) + format_len;
if (len > 500)
{
/* Too long send existing list */
notify_flush_watches (serv, point, list);
len = strlen (notify->name) + format_len;
point = list; /* We left off here */
}
list = g_slist_next (list);
}
if (len) /* We had leftovers under 500, send them all */
{
notify_flush_watches (serv, point, NULL);
}
g_slist_free (send_list);
}
/* called when receiving a ISON 303 - should this func go? */

View File

@ -52,11 +52,7 @@ typedef struct session hexchat_context;
/* the USE_PLUGIN define only removes libdl stuff */
#ifdef USE_PLUGIN
#ifdef USE_GMODULE
#include <gmodule.h>
#else
#include <dlfcn.h>
#endif
#endif
#define DEBUG(x) {x;}
@ -159,11 +155,7 @@ plugin_free (hexchat_plugin *pl, int do_deinit, int allow_refuse)
#ifdef USE_PLUGIN
if (pl->handle)
#ifdef USE_GMODULE
g_module_close (pl->handle);
#else
dlclose (pl->handle);
#endif
#endif
xit:
@ -378,21 +370,16 @@ plugin_load (session *sess, char *filename, char *arg)
char *filepart;
hexchat_init_func *init_func;
hexchat_deinit_func *deinit_func;
#ifndef USE_GMODULE
char *error;
#else
char *pluginpath;
#endif
/* get the filename without path */
filepart = file_part (filename);
#ifdef USE_GMODULE
/* load the plugin */
if (!g_ascii_strcasecmp (filepart, filename))
{
/* no path specified, it's just the filename, try to load from config dir */
pluginpath = g_build_filename (get_xdir (), filename, NULL);
pluginpath = g_build_filename (get_xdir (), "addons", filename, NULL);
handle = g_module_open (pluginpath, 0);
g_free (pluginpath);
}
@ -416,43 +403,6 @@ plugin_load (session *sess, char *filename, char *arg)
if (!g_module_symbol (handle, "hexchat_plugin_deinit", (gpointer *)&deinit_func))
deinit_func = NULL;
#else
/* OpenBSD lacks this! */
#ifndef RTLD_GLOBAL
#define RTLD_GLOBAL 0
#endif
#ifndef RTLD_NOW
#define RTLD_NOW 0
#endif
/* load the plugin */
if (filepart &&
/* xsys draws in libgtk-1.2, causing crashes, so force RTLD_LOCAL */
(strstr (filepart, "local") || strncmp (filepart, "libxsys-1", 9) == 0)
)
handle = dlopen (filename, RTLD_NOW);
else
handle = dlopen (filename, RTLD_GLOBAL | RTLD_NOW);
if (handle == NULL)
return (char *)dlerror ();
dlerror (); /* Clear any existing error */
/* find the init routine hexchat_plugin_init */
init_func = dlsym (handle, "hexchat_plugin_init");
error = (char *)dlerror ();
if (error != NULL)
{
dlclose (handle);
return _("No hexchat_plugin_init symbol; is this really a HexChat plugin?");
}
/* find the plugin's deinit routine, if any */
deinit_func = dlsym (handle, "hexchat_plugin_deinit");
error = (char *)dlerror ();
#endif
/* add it to our linked list */
plugin_add (sess, filename, handle, init_func, deinit_func, arg, FALSE);
@ -466,11 +416,6 @@ plugin_auto_load_cb (char *filename)
{
char *pMsg;
#ifndef WIN32 /* black listed */
if (!strcmp (file_part (filename), "dbus.so"))
return;
#endif
pMsg = plugin_load (ps, filename, NULL);
if (pMsg)
{
@ -1180,7 +1125,11 @@ hexchat_get_info (hexchat_plugin *ph, const char *id)
switch (hash)
{
case 0x325acab5: /* libdirfs */
#ifdef USE_PLUGIN
return plugin_get_libdir ();
#else
return NULL;
#endif
case 0x14f51cd8: /* version */
return PACKAGE_VERSION;
@ -1942,58 +1891,41 @@ hexchat_pluginpref_set_str (hexchat_plugin *pl, const char *var, const char *val
return hexchat_pluginpref_set_str_real (pl, var, value, 1);
}
int
hexchat_pluginpref_get_str (hexchat_plugin *pl, const char *var, char *dest)
static int
hexchat_pluginpref_get_str_real (hexchat_plugin *pl, const char *var, char *dest, int dest_len)
{
int fh;
int l;
char confname[64];
char *canon;
char *cfg;
struct stat st;
char *confname, *canon, *cfg;
canon = g_strdup (pl->name);
canonalize_key (canon);
sprintf (confname, "addon_%s.conf", canon);
confname = g_strdup_printf ("%s%caddon_%s.conf", get_xdir(), G_DIR_SEPARATOR, canon);
g_free (canon);
/* partly borrowed from palette.c */
fh = hexchat_open_file (confname, O_RDONLY, 0, 0);
if (fh == -1)
if (!g_file_get_contents (confname, &cfg, NULL, NULL))
{
g_free (confname);
return 0;
}
fstat (fh, &st);
cfg = malloc (st.st_size + 1);
g_free (confname);
if (!cfg)
if (!cfg_get_str (cfg, var, dest, dest_len))
{
close (fh);
g_free (cfg);
return 0;
}
cfg[0] = '\0';
l = read (fh, cfg, st.st_size);
if (l >= 0)
{
cfg[l] = '\0';
}
if (!cfg_get_str (cfg, var, dest, 512)) /* dest_len is the same as buffer size in set */
{
free (cfg);
close (fh);
return 0;
}
free (cfg);
close (fh);
g_free (cfg);
return 1;
}
int
hexchat_pluginpref_get_str (hexchat_plugin *pl, const char *var, char *dest)
{
/* All users of this must ensure dest is >= 512... */
return hexchat_pluginpref_get_str_real (pl, var, dest, 512);
}
int
hexchat_pluginpref_set_int (hexchat_plugin *pl, const char *var, int value)
{
@ -2008,7 +1940,7 @@ hexchat_pluginpref_get_int (hexchat_plugin *pl, const char *var)
{
char buffer[12];
if (hexchat_pluginpref_get_str (pl, var, buffer))
if (hexchat_pluginpref_get_str_real (pl, var, buffer, sizeof(buffer)))
{
return atoi (buffer);
}

View File

@ -53,8 +53,8 @@ static const struct defaultserver def[] =
{0, "irc.2600.net"},
{"2ch", 0, 0, "iso-2022-jp", 0, 0},
{0, "irc.2ch.net"},
{0, "irc2.2ch.net"},
{0, "irc.2ch.sc"},
{0, "irc.nurs.or.jp"},
{0, "irc.juggler.jp"},
{"AccessIRC", 0},
@ -75,16 +75,16 @@ static const struct defaultserver def[] =
#endif
#ifdef USE_OPENSSL
{0, "irc.data.lt/+6668"},
{0, "irc-ssl.omnitel.net/+6668"},
{0, "irc-ssl.le.lt/+9999"},
{0, "irc.omnitel.net/+6668"},
{0, "irc.ktu.lt/+6668"},
{0, "irc.kis.lt/+6668"},
{0, "irc.vub.lt/+6668"},
#endif
{0, "irc.data.lt"},
{0, "irc.omnitel.net"},
{0, "irc.ktu.lt"},
{0, "irc.le.lt"},
{0, "irc.takas.lt"},
{0, "irc.5ci.net"},
{0, "irc.kis.lt"},
{0, "irc.vub.lt"},
{"AlphaChat", 0, 0, 0, LOGIN_SASL},
{0, "irc.alphachat.net"},
@ -117,15 +117,11 @@ static const struct defaultserver def[] =
{"AustNet", 0},
{0, "au.austnet.org"},
{0, "us.austnet.org"},
{0, "ca.austnet.org"},
{"AzzurraNet", 0},
{0, "irc.azzurra.org"},
{0, "crypto.azzurra.org"},
{"Beirut", 0},
{0, "irc.beirut.com"},
{"Canternet", 0, 0, 0, LOGIN_SASL},
#ifdef USE_OPENSSL
{0, "irc.canternet.org/+6697"},
@ -147,7 +143,6 @@ static const struct defaultserver def[] =
{"ChatNet", 0},
{0, "US.ChatNet.Org"},
{0, "EU.ChatNet.Org"},
{"ChatSpike", 0},
{0, "irc.chatspike.net"},
@ -164,7 +159,6 @@ static const struct defaultserver def[] =
{0, "irc.d-t-net.de"},
{0, "bw.d-t-net.de"},
{0, "nc.d-t-net.de"},
{0, "wakka.d-t-net.de"},
{"DarkMyst", 0, 0, 0, LOGIN_SASL},
{0, "irc.darkmyst.org"},
@ -180,10 +174,7 @@ static const struct defaultserver def[] =
{0, "irc.Prison.NET"},
{0, "irc.Qeast.net"},
{0, "irc.efnet.pl"},
{0, "efnet.demon.co.uk"},
{0, "irc.lightning.net"},
{0, "irc.mindspring.com"},
{0, "irc.easynews.com"},
{0, "irc.servercentral.net"},
{"ElectroCode", 0},
@ -221,7 +212,6 @@ static const struct defaultserver def[] =
{0, "irc.ffm.de.euirc.net"},
{0, "irc.bre.de.euirc.net"},
{0, "irc.hes.de.euirc.net"},
{0, "irc.vie.at.euirc.net"},
{0, "irc.inn.at.euirc.net"},
{0, "irc.bas.ch.euirc.net"},
@ -234,8 +224,6 @@ static const struct defaultserver def[] =
{"FEFNet", 0, 0, 0, LOGIN_SASL},
{0, "irc.fef.net"},
{0, "irc.ggn.net"},
{0, "irc.vendetta.com"},
{"freenode", 0, 0, 0, LOGIN_SASL},
#ifdef USE_OPENSSL
@ -251,15 +239,18 @@ static const struct defaultserver def[] =
#endif
{0, "irc.furnet.org"},
{"Fusion Latina", 0},
{0, "irc.fusionlatina.org/2012"},
{"GalaxyNet", 0},
{0, "irc.galaxynet.org"},
{"GameSurge", 0},
{0, "irc.gamesurge.net"},
{"GeeksIRC", 0, 0, 0, LOGIN_SASL},
#ifdef USE_OPENSSL
{0, "irc.geeksirc.net/+6697"},
#endif
{0, "irc.geeksirc.net"},
{"GeekShed", 0},
{0, "irc.geekshed.net"},
@ -270,7 +261,6 @@ static const struct defaultserver def[] =
{"GIMPNet", 0},
{0, "irc.gimp.org"},
{0, "irc.gnome.org"},
{0, "irc.us.gimp.org"},
{"Hashmark", 0},
{0, "irc.hashmark.net"},
@ -290,6 +280,12 @@ static const struct defaultserver def[] =
#endif
{0, "irc.interlinked.me"},
{"IRC4Fun", 0, 0, 0, LOGIN_SASL},
#ifdef USE_OPENSSL
{0, "irc.irc4fun.net/+6697"},
#endif
{0, "irc.irc4fun.net"},
{"IRCHighWay", 0},
#ifdef USE_OPENSSL
{0, "irc.irchighway.net/+9999"},
@ -343,14 +339,6 @@ static const struct defaultserver def[] =
{"Moznet", 0},
{0, "irc.mozilla.org"},
{"NeverNET", 0},
{0, "irc.nevernet.net"},
{0, "imagine.nevernet.net"},
{0, "dimension.nevernet.net"},
{0, "universe.nevernet.net"},
{0, "wayland.nevernet.net"},
{0, "forte.nevernet.net"},
{"ObsidianIRC", 0},
{0, "irc.obsidianirc.net"},
@ -394,7 +382,6 @@ static const struct defaultserver def[] =
{0, "irc.fi.quakenet.org"},
{0, "irc.be.quakenet.org"},
{0, "irc.uk.quakenet.org"},
{0, "irc.de.quakenet.org"},
{0, "irc.it.quakenet.org"},
{"Rizon", 0},
@ -402,7 +389,6 @@ static const struct defaultserver def[] =
{"RusNet", 0, 0, "KOI8-R (Cyrillic)"},
{0, "irc.tomsk.net"},
{0, "irc.rinet.ru"},
{0, "irc.run.net"},
{0, "irc.ru"},
{0, "irc.lucky.net"},
@ -510,25 +496,17 @@ static const struct defaultserver def[] =
{"UnderNet", 0, 0, 0, LOGIN_CUSTOM, "MSG x@channels.undernet.org login %u %p"},
{0, "us.undernet.org"},
{0, "eu.undernet.org"},
{"UniBG", 0, 0, 0, LOGIN_CUSTOM, "MSG NS IDENTIFY %p"},
{0, "irc.lirex.com"},
{0, "irc.naturella.com"},
{0, "irc.spnet.net"},
{0, "irc.techno-link.com"},
{0, "irc.telecoms.bg"},
{0, "irc.tu-varna.edu"},
{"ValleyNode", 0, 0, 0, LOGIN_SASL},
{0, "irc.valleynode.net"},
{"Whiffle", 0},
{0, "irc.whiffle.org"},
{"Worldnet", 0},
{0, "irc.worldnet.net"},
{0, "irc.fr.worldnet.net"},
{"Windfyre", 0},
#ifdef USE_OPENSSL

View File

@ -436,30 +436,30 @@ expand_homedir (char *file)
char *ret, *user;
struct passwd *pw;
if (*file == '~')
if (file[0] == '~')
{
if (file[1] != '\0' && file[1] != '/')
{
user = strdup(file);
if (strchr(user,'/') != NULL)
*(strchr(user,'/')) = '\0';
if ((pw = getpwnam(user + 1)) == NULL)
{
free(user);
return strdup(file);
}
free(user);
user = strchr(file, '/') != NULL ? strchr(file,'/') : file;
ret = malloc(strlen(user) + strlen(pw->pw_dir) + 1);
strcpy(ret, pw->pw_dir);
strcat(ret, user);
}
if (file[1] == '\0' || file[1] == '/')
return g_strconcat (g_get_home_dir (), &file[1], NULL);
char *slash_pos;
user = g_strdup(file);
slash_pos = strchr(user, '/');
if (slash_pos != NULL)
*slash_pos = '\0';
pw = getpwnam(user + 1);
g_free(user);
if (pw == NULL)
return g_strdup(file);
slash_pos = strchr(file, '/');
if (slash_pos == NULL)
return g_strdup (pw->pw_dir);
else
{
ret = malloc (strlen (file) + strlen (g_get_home_dir ()) + 1);
sprintf (ret, "%s%s", g_get_home_dir (), file + 1);
}
return ret;
return g_strconcat (pw->pw_dir, slash_pos, NULL);
}
#endif
return g_strdup (file);
@ -1893,7 +1893,8 @@ unity_mode ()
{
#ifdef G_OS_UNIX
const char *env = g_getenv("XDG_CURRENT_DESKTOP");
if (env && strcmp (env, "Unity") == 0)
if (env && (strcmp (env, "Unity") == 0
|| strcmp (env, "Pantheon") == 0))
return 1;
#endif
return 0;

View File

@ -239,6 +239,9 @@ banlist_sensitize (banlist_info *banl)
int checkable, i;
gboolean is_op = FALSE;
if (banl->sess->me == NULL)
return;
/* FIXME: More access levels than these can unban */
if (banl->sess->me->op || banl->sess->me->hop)
is_op = TRUE;
@ -283,7 +286,7 @@ banlist_sensitize (banlist_info *banl)
else
{
gtk_widget_set_sensitive (banl->but_clear, FALSE);
gtk_widget_set_sensitive (banl->but_crop, TRUE);
gtk_widget_set_sensitive (banl->but_crop, banl->line_ct == banl->select_ct? FALSE: TRUE);
gtk_widget_set_sensitive (banl->but_remove, TRUE);
}
}
@ -410,7 +413,7 @@ banlist_select_changed (GtkWidget *item, banlist_info *banl)
else
{
list = gtk_tree_selection_get_selected_rows (GTK_TREE_SELECTION (item), NULL);
banl->select_ct = list? 1: 0;
banl->select_ct = g_list_length (list);
g_list_foreach (list, (GFunc) gtk_tree_path_free, NULL);
g_list_free (list);
}
@ -426,7 +429,6 @@ banlist_do_refresh (banlist_info *banl)
session *sess = banl->sess;
char tbuf[256];
int i;
char *tbufp;
banlist_sensitize (banl);
@ -444,14 +446,12 @@ banlist_do_refresh (banlist_info *banl)
banl->pending = banl->checked;
if (banl->pending)
{
tbufp = tbuf + g_snprintf (tbuf, sizeof tbuf, "quote mode %s +", sess->channel);
for (i = 0; i < MODE_CT; i++)
if (banl->pending & 1<<i)
{
*tbufp++ = modes[i].letter;
g_snprintf (tbuf, sizeof tbuf, "quote mode %s +%c", sess->channel, modes[i].letter);
handle_command (sess, tbuf, FALSE);
}
*tbufp = 0;
handle_command (sess, tbuf, FALSE);
}
}
else

View File

@ -53,7 +53,6 @@ typedef struct banlist_info_s {
int current; /* index of currently processing mode */
int line_ct; /* count of presented lines */
int select_ct; /* count of selected lines */
/* Not really; 1 if any are selected otherwise 0 */
GtkWidget *window;
GtkWidget *treeview;
GtkWidget *checkboxes[MODE_CT];

View File

@ -73,8 +73,8 @@ cv_tree_click_cb (GtkTreeView *tree, GdkEventButton *event, chanview *cv)
return ret;
}
static void
cv_tree_scroll_event_cb (GtkWidget *widget, GdkEventScroll *event)
static gboolean
cv_tree_scroll_event_cb (GtkWidget *widget, GdkEventScroll *event, gpointer user_data)
{
if (prefs.hex_gui_tab_scrollchans)
{
@ -82,7 +82,11 @@ cv_tree_scroll_event_cb (GtkWidget *widget, GdkEventScroll *event)
mg_switch_page (1, 1);
else if (event->direction == GDK_SCROLL_UP)
mg_switch_page (1, -1);
return TRUE;
}
return FALSE;
}
static void

View File

@ -2168,7 +2168,7 @@ setup_apply (struct hexchatprefs *pr)
" restart to take full effect."), FE_MSG_WARN);
#ifndef WIN32
if (prefs.hex_dcc_auto_recv)
if (prefs.hex_dcc_auto_recv == 2) /* Auto */
{
if (!strcmp ((char *)g_get_home_dir (), prefs.hex_dcc_dir))
{

View File

@ -1115,32 +1115,40 @@ entry_strsplit_utf8(GtkEntry *entry, gchar ***set, gint **starts, gint **ends)
const PangoLogAttr *log_attrs;
const gchar *text;
gint n_attrs, n_strings, i, j;
PangoLogAttr a;
layout = gtk_entry_get_layout(GTK_ENTRY(entry));
text = gtk_entry_get_text(GTK_ENTRY(entry));
log_attrs = pango_layout_get_log_attrs_readonly (layout, &n_attrs);
/* Find how many words we have */
n_strings = 0;
for (i = 0; i < n_attrs; i++)
if (log_attrs[i].is_word_start)
for (i = 0, n_strings = 0; i < n_attrs; i++)
{
a = log_attrs[i];
if (a.is_word_start && a.is_word_boundary)
n_strings++;
}
*set = g_new0(gchar *, n_strings + 1);
*starts = g_new0(gint, n_strings);
*ends = g_new0(gint, n_strings);
/* Copy out strings */
for (i = 0, j = 0; i < n_attrs; i++) {
if (log_attrs[i].is_word_start) {
for (i = 0, j = 0; i < n_attrs; i++)
{
a = log_attrs[i];
if (a.is_word_start && a.is_word_boundary)
{
gint cend, bytes;
gchar *start;
/* Find the end of this string */
cend = i;
while ((!log_attrs[cend].is_word_end || !log_attrs[cend].is_word_boundary)
&& !log_attrs[cend].is_white)
cend++;
for (cend = i; cend < n_attrs; cend++)
{
a = log_attrs[cend];
if (a.is_word_end && a.is_word_boundary)
break;
}
/* Copy sub-string */
start = g_utf8_offset_to_pointer(text, i);

View File

@ -77,10 +77,10 @@ copy "$(DepsRoot)\bin\zlib1.dll" "$(HexChatRel)"
xcopy /q /s /i "$(DepsRoot)\lib\gtk-2.0\i686-pc-vs10\engines" "$(HexChatRel)\lib\gtk-2.0\i686-pc-vs10\engines"
xcopy /q /s /i etc "$(HexChatRel)\etc"
xcopy /q /s /i share "$(HexChatRel)\share"
xcopy /q /s /i "..\..\COPYING" "$(HexChatRel)\"
xcopy /q /s /i "..\..\COPYING" "$(HexChatRel)\share\doc\hexchat\"
xcopy /q /s /i "$(DepsRoot)\share\doc" "$(HexChatRel)\share\doc"
xcopy /q /s /i "$(DepsRoot)\lib\enchant\libenchant_myspell.dll" "$(HexChatRel)\lib\enchant\"
xcopy /q /s /i "$(HexChatBin)hcchecksum.dll" "$(HexChatRel)\plugins\"
copy "$(HexChatBin)hcdns.dll" "$(HexChatRel)\plugins"
copy "$(HexChatBin)hcdoat.dll" "$(HexChatRel)\plugins"
copy "$(HexChatBin)hcexec.dll" "$(HexChatRel)\plugins"
copy "$(HexChatBin)hcfishlim.dll" "$(HexChatRel)\plugins"

View File

@ -16,7 +16,7 @@ AppPublisherURL=http://hexchat.github.io
AppCopyright=Copyright (C) 1998-2010 Peter Zelezny
AppSupportURL=https://github.com/hexchat/hexchat/issues
AppUpdatesURL=http://hexchat.github.io/downloads.html
LicenseFile=COPYING
LicenseFile=share\doc\hexchat\COPYING
UninstallDisplayIcon={app}\hexchat.exe
UninstallDisplayName=HexChat
#if APPARCH == "x64"
@ -46,7 +46,7 @@ ArchitecturesInstallIn64BitMode=x64
#else
ArchitecturesAllowed=x86 x64
#endif
MinVersion=6.0
MinVersion=6.1
WizardImageFile={#PROJECTDIR}wizardimage.bmp
WizardSmallImageFile={#PROJECTDIR}wizardsmallimage.bmp
SetupIconFile={#PROJECTDIR}..\..\data\icons\hexchat.ico
@ -113,7 +113,7 @@ Source: "readme.url"; DestDir: "{app}"; Flags: ignoreversion; Components: libs
Source: "cert.pem"; DestDir: "{app}"; Flags: ignoreversion; Components: libs
Source: "etc\gtk-2.0\gtkrc"; DestDir: "{app}\etc\gtk-2.0"; Flags: ignoreversion; Components: gtktheme
Source: "share\xml\*"; DestDir: "{app}\share\xml"; Flags: ignoreversion createallsubdirs recursesubdirs; Components: libs
Source: "COPYING"; DestDir: "{app}"; Flags: ignoreversion; Components: libs
Source: "share\doc\*"; DestDir: "{app}\share\doc"; Flags: ignoreversion createallsubdirs recursesubdirs; Components: libs
Source: "share\locale\*"; DestDir: "{app}\share\locale"; Flags: ignoreversion createallsubdirs recursesubdirs; Components: translations
Source: "atk-1.0.dll"; DestDir: "{app}"; Flags: ignoreversion; Components: libs
@ -253,13 +253,13 @@ begin
#if APPARCH == "x64"
REDIST := 'http://dl.hexchat.net/misc/vcredist_2013_x64.exe';
PERL := 'http://dl.hexchat.net/misc/perl/Perl%205.20.0%20x64.msi';
PY2 := 'http://python.org/ftp/python/2.7.6/python-2.7.6.amd64.msi';
PY3 := 'http://python.org/ftp/python/3.4.0/python-3.4.0.amd64.msi';
PY2 := 'http://python.org/ftp/python/2.7.8/python-2.7.8.amd64.msi';
PY3 := 'http://python.org/ftp/python/3.4.1/python-3.4.1.amd64.msi';
#else
REDIST := 'http://dl.hexchat.net/misc/vcredist_2013_x86.exe';
PERL := 'http://dl.hexchat.net/misc/perl/Perl%205.20.0%20x86.msi';
PY2 := 'http://python.org/ftp/python/2.7.6/python-2.7.6.msi';
PY3 := 'http://python.org/ftp/python/3.4.0/python-3.4.0.msi';
PY2 := 'http://python.org/ftp/python/2.7.8/python-2.7.8.msi';
PY3 := 'http://python.org/ftp/python/3.4.1/python-3.4.1.msi';
#endif
DOTNET := 'http://dl.hexchat.net/misc/dotnet_40.exe';
SPELL := 'http://dl.hexchat.net/hexchat/HexChat%20Spelling%20Dictionaries%20r2.exe';
@ -272,15 +272,18 @@ begin
if IsComponentSelected('spell') and not CheckSpellInstall() then
idpAddFile(SPELL, ExpandConstant('{tmp}\spelling-dicts.exe'));
if IsComponentSelected('langs\perl') and not CheckDLL('perl520.dll') then
idpAddFile(PERL, ExpandConstant('{tmp}\perl.msi'));
if IsComponentSelected('langs\python\python2') and not CheckDLL('python27.dll') then
idpAddFile(PY2, ExpandConstant('{tmp}\python.msi'));
if IsComponentSelected('langs\python\python3') and not CheckDLL('python34.dll') then
idpAddFile(PY3, ExpandConstant('{tmp}\python.msi'));
if not WizardSilent() then
begin
if IsComponentSelected('langs\perl') and not CheckDLL('perl520.dll') then
idpAddFile(PERL, ExpandConstant('{tmp}\perl.msi'));
if IsComponentSelected('langs\python\python2') and not CheckDLL('python27.dll') then
idpAddFile(PY2, ExpandConstant('{tmp}\python.msi'));
if IsComponentSelected('langs\python\python3') and not CheckDLL('python34.dll') then
idpAddFile(PY3, ExpandConstant('{tmp}\python.msi'));
end;
end;
end;
end;
@ -356,7 +359,7 @@ begin
sUnInstallString := GetUninstallString();
if sUnInstallString <> '' then begin
sUnInstallString := RemoveQuotes(sUnInstallString);
if Exec(sUnInstallString, '/SILENT /NORESTART /SUPPRESSMSGBOXES','', SW_HIDE, ewWaitUntilTerminated, iResultCode) then
if Exec(sUnInstallString, '/VERYSILENT /NORESTART /SUPPRESSMSGBOXES','', SW_HIDE, ewWaitUntilTerminated, iResultCode) then
Result := 3
else
Result := 2;

View File

@ -1 +0,0 @@
<#= [string]::Join('.', $versionParts) #>