Compare commits
47 Commits
Author | SHA1 | Date | |
---|---|---|---|
08ce54bbb5 | |||
2aa3eb8cfb | |||
d1b9118056 | |||
fd95c729d5 | |||
d1c40196e3 | |||
9716185edf | |||
a38892ff3b | |||
dc18e3da07 | |||
9127b510f2 | |||
8f9ed6d942 | |||
422edd8812 | |||
345c8a29ad | |||
a854234c1f | |||
4b549eeac8 | |||
7c2c8b1403 | |||
c2ecb4c68c | |||
ea9dafcd43 | |||
7a7b9c682d | |||
0d3706e2ee | |||
3c584e2cd5 | |||
9372972ad4 | |||
121cb8b88d | |||
93caf4c7b4 | |||
21c0e47869 | |||
f1e853c1cb | |||
aa7291fc9c | |||
3de79bca10 | |||
466646f84a | |||
e0f80e41bf | |||
9a5977a9c9 | |||
c3c6b46230 | |||
47b4b0da8a | |||
45526205ab | |||
3342af4185 | |||
7374637d34 | |||
62209618e1 | |||
7bfa2ee8a7 | |||
73c914cca9 | |||
77d9d421fb | |||
59f3a65911 | |||
9181ea068a | |||
c1d9aad546 | |||
3cd8556c54 | |||
9c981cfc6b | |||
11e3ecc739 | |||
5849a0588e | |||
b8c02f71d9 |
@ -1,6 +1,7 @@
|
||||
language: c
|
||||
compiler: gcc
|
||||
before_script:
|
||||
- sudo apt-get update
|
||||
- sudo apt-get build-dep -qq xchat
|
||||
- sudo apt-get install -qq libnotify-dev libproxy-dev libpci-dev libcanberra-dev monodevelop gnome-common
|
||||
script:
|
||||
|
27
configure.ac
27
configure.ac
@ -1,6 +1,6 @@
|
||||
dnl Process this file with autoconf to produce a configure script.
|
||||
|
||||
AC_INIT([HexChat],[2.10.1])
|
||||
AC_INIT([HexChat],[2.11.0])
|
||||
|
||||
AC_PREREQ([2.60])
|
||||
AC_COPYRIGHT([Copyright (C) 1998-2010 Peter Zelezny])
|
||||
@ -123,6 +123,10 @@ AC_ARG_ENABLE(doat,
|
||||
[AS_HELP_STRING([--disable-doat],[disable the Do At plugin])],
|
||||
doat=$enableval, doat=yes)
|
||||
|
||||
AC_ARG_ENABLE(znc,
|
||||
[AS_HELP_STRING([--disable-znc],[disable the ZNC plugin])],
|
||||
znc=$enableval, znc=yes)
|
||||
|
||||
AC_ARG_ENABLE(fishlim,
|
||||
[AS_HELP_STRING([--disable-fishlim],[disable the FiSHLiM plugin])],
|
||||
fishlim=$enableval, fishlim=yes)
|
||||
@ -216,7 +220,7 @@ dnl *********************************************************************
|
||||
|
||||
_gdk_tgt=`$PKG_CONFIG --variable=target gdk-2.0`
|
||||
if test "x$_gdk_tgt" = xquartz; then
|
||||
PKG_CHECK_MODULES(GTK_MAC, gtk-mac-integration, [
|
||||
PKG_CHECK_MODULES(GTK_MAC, gtk-mac-integration-gtk2, [
|
||||
GUI_LIBS="$GUI_LIBS $GTK_MAC_LIBS"
|
||||
GUI_CFLAGS="$GUI_CFLAGS $GTK_MAC_CFLAGS"
|
||||
AC_DEFINE(HAVE_GTK_MAC)
|
||||
@ -478,6 +482,21 @@ if test "$doat" != "no"; then
|
||||
fi
|
||||
fi
|
||||
|
||||
dnl *********************************************************************
|
||||
dnl ** ZNC **************************************************************
|
||||
dnl *********************************************************************
|
||||
|
||||
if test "$znc" != "no"; then
|
||||
AC_MSG_CHECKING(for plugin interface used by ZNC)
|
||||
znc=no
|
||||
if test "$plugin" = yes; then
|
||||
znc=yes
|
||||
AC_MSG_RESULT([yes])
|
||||
else
|
||||
AC_MSG_RESULT([plugins are disabled, use the --enable-plugin option for ZNC])
|
||||
fi
|
||||
fi
|
||||
|
||||
dnl *********************************************************************
|
||||
dnl ** FiSHLiM **********************************************************
|
||||
dnl *********************************************************************
|
||||
@ -599,6 +618,7 @@ AM_CONDITIONAL(DO_PYTHON, test "x$python" != "xno")
|
||||
AM_CONDITIONAL(DO_PLUGIN, test "x$plugin" = "xyes")
|
||||
AM_CONDITIONAL(DO_CHECKSUM, test "x$checksum" = "xyes")
|
||||
AM_CONDITIONAL(DO_DOAT, test "x$doat" = "xyes")
|
||||
AM_CONDITIONAL(DO_ZNC, test "x$znc" = "xyes")
|
||||
AM_CONDITIONAL(DO_FISHLIM, test "x$fishlim" = "xyes")
|
||||
AM_CONDITIONAL(DO_SYSINFO, test "x$sysinfo" = "xyes")
|
||||
AM_CONDITIONAL(USE_DBUS, test "x$dbus" = "xyes")
|
||||
@ -836,6 +856,7 @@ plugins/python/Makefile
|
||||
plugins/perl/Makefile
|
||||
plugins/checksum/Makefile
|
||||
plugins/doat/Makefile
|
||||
plugins/znc/Makefile
|
||||
plugins/fishlim/Makefile
|
||||
plugins/sysinfo/Makefile
|
||||
po/Makefile.in
|
||||
@ -855,7 +876,6 @@ echo D-Bus support ......... : $dbus
|
||||
echo libnotify support ..... : $libnotify
|
||||
echo libcanberra support ... : $libcanberra
|
||||
echo Plugin interface ...... : $plugin
|
||||
echo NLS/gettext ........... : $USE_NLS
|
||||
echo IPv6 support .......... : $ipv6
|
||||
echo MS Proxy NTLM \(ISA\) ... : $have_ntlm
|
||||
echo libproxy support ...... : $libproxy
|
||||
@ -865,6 +885,7 @@ echo Python ................ : $python
|
||||
echo
|
||||
echo Checksum .............. : $checksum
|
||||
echo Do At ................. : $doat
|
||||
echo ZNC Extras ............ : $znc
|
||||
echo FiSHLiM ............... : $fishlim
|
||||
echo SysInfo ............... : $sysinfo
|
||||
echo
|
||||
|
@ -2,7 +2,8 @@
|
||||
<app-bundle>
|
||||
|
||||
<meta>
|
||||
<prefix name="default">${env:JHBUILD_PREFIX}</prefix>
|
||||
<prefix name="default">/usr/local</prefix>
|
||||
<prefix name="enchant">/usr/local/opt/enchant-applespell</prefix>
|
||||
<destination overwrite="yes">${project}</destination>
|
||||
|
||||
<run-install-name-tool/>
|
||||
@ -21,25 +22,12 @@
|
||||
</binary>
|
||||
|
||||
<binary>
|
||||
${prefix}/lib/libenchant.dylib
|
||||
${prefix:enchant}/lib/libenchant.dylib
|
||||
</binary>
|
||||
<binary>
|
||||
${prefix}/lib/enchant/libenchant_applespell.so
|
||||
${prefix:enchant}/lib/enchant/libenchant_applespell.so
|
||||
</binary>
|
||||
|
||||
<binary dest="${bundle}/Contents/MacOS">
|
||||
${prefix}/bin/python
|
||||
</binary>
|
||||
<binary>
|
||||
${prefix}/lib/libpython2.7.dylib
|
||||
</binary>
|
||||
<data>
|
||||
${prefix}/lib/python2.7/
|
||||
</data>
|
||||
<data>
|
||||
${prefix}/include/python2.7/pyconfig.h
|
||||
</data>
|
||||
|
||||
<binary>
|
||||
${prefix}/lib/${gtkdir}/modules/*.so
|
||||
</binary>
|
||||
@ -59,7 +47,7 @@
|
||||
${prefix}/lib/pango/${pkg:pango:pango_module_version}/modules/
|
||||
</binary>
|
||||
<data>
|
||||
${prefix}/share/themes/Mac/
|
||||
${prefix}/share/themes/Mac/gtk-2.0-key/gtkrc
|
||||
</data>
|
||||
|
||||
<translations name="gtk20">
|
||||
@ -77,7 +65,4 @@
|
||||
${project}/hexchat.icns
|
||||
</data>
|
||||
|
||||
<!-- icon-theme icons="none">
|
||||
</icon-theme -->
|
||||
|
||||
</app-bundle>
|
||||
|
@ -36,10 +36,6 @@ export GDK_PIXBUF_MODULE_FILE="$bundle_etc/gtk-2.0/gdk-pixbuf.loaders"
|
||||
export PANGO_LIBDIR="$bundle_lib"
|
||||
export PANGO_SYSCONFDIR="$bundle_etc"
|
||||
|
||||
export PYTHON="$bundle_contents/MacOS/python"
|
||||
export PYTHONHOME="$bundle_res"
|
||||
export PYTHONPATH="$bundle_lib/python2.7:$bundle_lib/python2.7/site-packages"
|
||||
|
||||
export OPENSSL_CONF="/System/Library/OpenSSL/openssl.cnf"
|
||||
|
||||
export HEXCHAT_LIBDIR="$bundle_lib/hexchat/plugins"
|
||||
|
@ -1,24 +1,9 @@
|
||||
#!/bin/sh
|
||||
|
||||
if [ -z "$JHBUILD_PREFIX" ]; then
|
||||
echo "You must run this within a jhbuild shell."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ ! -f $JHBUILD_PREFIX/bin/python ]; then
|
||||
echo "You must install python with jhbuild."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
rm -rf HexChat.app
|
||||
rm -f *.app.zip
|
||||
|
||||
$JHBUILD_PREFIX/bin/python $HOME/.local/bin/gtk-mac-bundler hexchat.bundle
|
||||
|
||||
# These take up a lot of space in the bundle
|
||||
echo "Cleaning up python files"
|
||||
find ./HexChat.app/Contents/Resources/lib/python2.7 -name "*.pyc" -delete
|
||||
find ./HexChat.app/Contents/Resources/lib/python2.7 -name "*.pyo" -delete
|
||||
python $HOME/.local/bin/gtk-mac-bundler hexchat.bundle
|
||||
|
||||
echo "Compressing bundle"
|
||||
#hdiutil create -format UDBZ -srcdir HexChat.app -quiet HexChat-2.9.6.1-$(git rev-parse --short master).dmg
|
||||
|
@ -10,6 +10,10 @@ if DO_DOAT
|
||||
doatdir = doat
|
||||
endif
|
||||
|
||||
if DO_ZNC
|
||||
zncdir = znc
|
||||
endif
|
||||
|
||||
if DO_FISHLIM
|
||||
fishlimdir = fishlim
|
||||
endif
|
||||
@ -22,4 +26,4 @@ if DO_SYSINFO
|
||||
sysinfodir = sysinfo
|
||||
endif
|
||||
|
||||
SUBDIRS = $(pythondir) $(perldir) $(checksumdir) $(doatdir) $(fishlimdir) $(sysinfodir)
|
||||
SUBDIRS = $(pythondir) $(perldir) $(checksumdir) $(doatdir) $(fishlimdir) $(sysinfodir) $(zncdir)
|
||||
|
@ -221,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 addon_fishlim.conf\n", nick, key);
|
||||
hexchat_printf(ph, "\00305Failed to store key in addon_fishlim.conf\n");
|
||||
}
|
||||
|
||||
return HEXCHAT_EAT_HEXCHAT;
|
||||
@ -245,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 addon_fishlim.conf!\n", nick);
|
||||
hexchat_printf(ph, "\00305Failed to delete key in addon_fishlim.conf!\n");
|
||||
}
|
||||
|
||||
return HEXCHAT_EAT_HEXCHAT;
|
||||
|
@ -32,11 +32,8 @@
|
||||
#endif
|
||||
|
||||
#undef PACKAGE
|
||||
#ifdef WIN32
|
||||
#include "../../config-win32.h" /* for #define OLD_PERL */
|
||||
#else
|
||||
#include "../../config.h"
|
||||
#endif
|
||||
|
||||
#include "hexchat-plugin.h"
|
||||
|
||||
static hexchat_plugin *ph; /* plugin handle */
|
||||
|
@ -52,20 +52,19 @@
|
||||
*/
|
||||
|
||||
#include <glib.h>
|
||||
#include <glib/gstdio.h>
|
||||
#include <string.h>
|
||||
#include <stdlib.h>
|
||||
#include <sys/types.h>
|
||||
|
||||
#ifdef WIN32
|
||||
#include <direct.h>
|
||||
#include <glib/gstdio.h>
|
||||
#include "../../src/dirent/dirent-win32.h"
|
||||
#include "../../config-win32.h"
|
||||
#else
|
||||
#include <unistd.h>
|
||||
#include <dirent.h>
|
||||
#endif
|
||||
|
||||
#include "../../config.h"
|
||||
#include "hexchat-plugin.h"
|
||||
#undef _POSIX_C_SOURCE /* Avoid warning: also in /usr/include/features.h from glib.h */
|
||||
#include <Python.h>
|
||||
@ -459,26 +458,31 @@ Util_BuildEOLList(char *word[])
|
||||
static void
|
||||
Util_Autoload_from (const char *dir_name)
|
||||
{
|
||||
#ifndef PATH_MAX
|
||||
#define PATH_MAX 1024 /* Hurd doesn't define it */
|
||||
#endif
|
||||
char oldcwd[PATH_MAX];
|
||||
struct dirent *ent;
|
||||
DIR *dir;
|
||||
if (getcwd(oldcwd, PATH_MAX) == NULL)
|
||||
gchar *oldcwd;
|
||||
const char *entry_name;
|
||||
GDir *dir;
|
||||
|
||||
oldcwd = g_get_current_dir ();
|
||||
if (oldcwd == NULL)
|
||||
return;
|
||||
if (chdir(dir_name) != 0)
|
||||
if (g_chdir(dir_name) != 0)
|
||||
{
|
||||
g_free (oldcwd);
|
||||
return;
|
||||
dir = opendir(".");
|
||||
if (dir == NULL)
|
||||
return;
|
||||
while ((ent = readdir(dir))) {
|
||||
int len = strlen(ent->d_name);
|
||||
if (len > 3 && strcmp(".py", ent->d_name+len-3) == 0)
|
||||
Command_PyLoad(ent->d_name);
|
||||
}
|
||||
closedir(dir);
|
||||
chdir(oldcwd);
|
||||
dir = g_dir_open (".", 0, NULL);
|
||||
if (dir == NULL)
|
||||
{
|
||||
g_free (oldcwd);
|
||||
return;
|
||||
}
|
||||
while ((entry_name = g_dir_read_name (dir)))
|
||||
{
|
||||
if (g_str_has_suffix (entry_name, ".py"))
|
||||
Command_PyLoad((char*)entry_name);
|
||||
}
|
||||
g_dir_close (dir);
|
||||
g_chdir (oldcwd);
|
||||
}
|
||||
|
||||
static void
|
||||
@ -486,7 +490,7 @@ Util_Autoload()
|
||||
{
|
||||
const char *xdir;
|
||||
char *sub_dir;
|
||||
/* we need local filesystem encoding for chdir, opendir etc */
|
||||
/* we need local filesystem encoding for g_chdir, g_dir_open etc */
|
||||
|
||||
xdir = hexchat_get_info(ph, "configdir");
|
||||
|
||||
|
7
plugins/znc/Makefile.am
Normal file
7
plugins/znc/Makefile.am
Normal file
@ -0,0 +1,7 @@
|
||||
libdir = $(hexchatlibdir)
|
||||
|
||||
lib_LTLIBRARIES = znc.la
|
||||
znc_la_SOURCES = znc.c
|
||||
znc_la_LDFLAGS = -avoid-version -module
|
||||
znc_la_LIBADD =
|
||||
AM_CPPFLAGS = $(COMMON_CFLAGS) -I$(srcdir)/../../src/common
|
387
plugins/znc/znc.c
Normal file
387
plugins/znc/znc.c
Normal file
@ -0,0 +1,387 @@
|
||||
/* HexChat
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
* of this software and associated documentation files (the "Software"), to deal
|
||||
* in the Software without restriction, including without limitation the rights
|
||||
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
* copies of the Software, and to permit persons to whom the Software is
|
||||
* furnished to do so, subject to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included in
|
||||
* all copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
* THE SOFTWARE.
|
||||
*/
|
||||
|
||||
#include <string.h>
|
||||
#include <stdio.h>
|
||||
#include <glib.h>
|
||||
#include "hexchat-plugin.h"
|
||||
|
||||
static hexchat_plugin *ph;
|
||||
static char name[] = "ZNC Extras";
|
||||
static char desc[] = "Integrate with optional ZNC plugins";
|
||||
static char version[] = "1.0";
|
||||
|
||||
|
||||
/* Playback: http://wiki.znc.in/Playback */
|
||||
|
||||
/* This should behave like this:
|
||||
* On connect (end of MOTD):
|
||||
* if new server, play all
|
||||
* if old server, play all after latest timestamp
|
||||
* On new query:
|
||||
* play all
|
||||
* On close query:
|
||||
* clear all
|
||||
* On new message:
|
||||
* update latest timestamp
|
||||
*/
|
||||
|
||||
static GHashTable *playback_servers = NULL;
|
||||
|
||||
#define PLAYBACK_CAP "znc.in/playback"
|
||||
|
||||
static int
|
||||
get_current_context_type (void)
|
||||
{
|
||||
int type = 0;
|
||||
hexchat_list *list;
|
||||
hexchat_context *cur_ctx;
|
||||
|
||||
list = hexchat_list_get (ph, "channels");
|
||||
if (!list)
|
||||
return 0;
|
||||
|
||||
cur_ctx = hexchat_get_context (ph);
|
||||
|
||||
while (hexchat_list_next (ph, list))
|
||||
{
|
||||
if ((hexchat_context*)hexchat_list_str (ph, list, "context") == cur_ctx)
|
||||
{
|
||||
type = hexchat_list_int (ph, list, "type");
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
hexchat_list_free (ph, list);
|
||||
return type;
|
||||
}
|
||||
|
||||
static int
|
||||
get_current_context_id (void)
|
||||
{
|
||||
gint id;
|
||||
|
||||
if (hexchat_get_prefs (ph, "id", NULL, &id) != 2)
|
||||
return -1;
|
||||
|
||||
return id;
|
||||
}
|
||||
|
||||
static int
|
||||
capls_cb (char *word[], void *userdata)
|
||||
{
|
||||
if (strstr (word[2], PLAYBACK_CAP) != NULL)
|
||||
hexchat_command (ph, "quote CAP REQ :" PLAYBACK_CAP);
|
||||
|
||||
return HEXCHAT_EAT_NONE;
|
||||
}
|
||||
|
||||
static int
|
||||
capack_cb (char *word[], void *userdata)
|
||||
{
|
||||
if (strstr (word[2], PLAYBACK_CAP) != NULL)
|
||||
{
|
||||
int id;
|
||||
|
||||
/* FIXME: emit this after request but before ack.. */
|
||||
hexchat_emit_print (ph, "Capability Request", PLAYBACK_CAP, NULL);
|
||||
|
||||
id = get_current_context_id ();
|
||||
if (!g_hash_table_contains (playback_servers, GINT_TO_POINTER(id)))
|
||||
g_hash_table_insert (playback_servers, GINT_TO_POINTER(id), g_strdup ("0"));
|
||||
}
|
||||
|
||||
return HEXCHAT_EAT_NONE;
|
||||
}
|
||||
|
||||
static int
|
||||
connected_cb (char *word[], char *word_eol[], void *userdata)
|
||||
{
|
||||
int id = get_current_context_id ();
|
||||
if (g_hash_table_contains (playback_servers, GINT_TO_POINTER(id)))
|
||||
{
|
||||
g_print("connected\n");
|
||||
char *timestamp = g_hash_table_lookup (playback_servers, GINT_TO_POINTER(id));
|
||||
hexchat_commandf (ph, "quote PRIVMSG *playback :play * %s", timestamp);
|
||||
}
|
||||
|
||||
return HEXCHAT_EAT_NONE;
|
||||
}
|
||||
|
||||
static int
|
||||
opencontext_cb (char *word[], void *userdata)
|
||||
{
|
||||
#if 0
|
||||
int id = get_current_context_id ();
|
||||
if (g_hash_table_contains (playback_servers, GINT_TO_POINTER(id))
|
||||
&& get_current_context_type () == 3)
|
||||
{
|
||||
const char *channel = hexchat_get_info (ph, "channel");
|
||||
char *time_str = g_hash_table_lookup (playback_servers, GINT_TO_POINTER(id));
|
||||
hexchat_commandf (ph, "quote PRIVMSG *playback :play %s %s", channel, time_str);
|
||||
}
|
||||
#endif
|
||||
|
||||
return HEXCHAT_EAT_NONE;
|
||||
}
|
||||
|
||||
static int
|
||||
closecontext_cb (char *word[], void *userdata)
|
||||
{
|
||||
int id = get_current_context_id ();
|
||||
if (g_hash_table_contains (playback_servers, GINT_TO_POINTER(id)))
|
||||
{
|
||||
int type = get_current_context_type ();
|
||||
if (type == 3) /* Dialog */
|
||||
{
|
||||
const char *channel = hexchat_get_info (ph, "channel");
|
||||
hexchat_commandf (ph, "quote PRIVMSG *playback :clear %s", channel);
|
||||
}
|
||||
else if (type == 1) /* Server */
|
||||
{
|
||||
g_hash_table_remove (playback_servers, GINT_TO_POINTER(id));
|
||||
}
|
||||
}
|
||||
|
||||
return HEXCHAT_EAT_NONE;
|
||||
}
|
||||
|
||||
static int
|
||||
chanactivity_cb (char *word[], char *word_eol[], hexchat_event_attrs *attrs, void *userdata)
|
||||
{
|
||||
int id;
|
||||
|
||||
if (!attrs->server_time_utc)
|
||||
return HEXCHAT_EAT_NONE;
|
||||
|
||||
id = get_current_context_id ();
|
||||
if (g_hash_table_contains (playback_servers, GINT_TO_POINTER(id)))
|
||||
{
|
||||
char *time_str;
|
||||
|
||||
time_str = g_strdup_printf ("%ld", attrs->server_time_utc);
|
||||
g_hash_table_replace (playback_servers, GINT_TO_POINTER(id), time_str);
|
||||
}
|
||||
|
||||
return HEXCHAT_EAT_NONE;
|
||||
}
|
||||
|
||||
/* End Playback */
|
||||
|
||||
|
||||
/* Buffextras: http://wiki.znc.in/Buffextras */
|
||||
|
||||
static inline char *
|
||||
strip_brackets (char *str)
|
||||
{
|
||||
str++;
|
||||
str[strlen(str) - 1] = '\0';
|
||||
return str;
|
||||
}
|
||||
|
||||
static int
|
||||
buffextras_cb (char *word[], char *word_eol[], hexchat_event_attrs *attrs, void *userdata)
|
||||
{
|
||||
char *channel, *user_nick, *user_host = NULL, *p;
|
||||
|
||||
if (g_ascii_strncasecmp (word[1] + 1, "*buffextras", 11) != 0)
|
||||
return HEXCHAT_EAT_NONE;
|
||||
|
||||
channel = word[3];
|
||||
user_nick = word[4] + 1;
|
||||
p = strchr (user_nick, '!');
|
||||
if (p != NULL)
|
||||
{
|
||||
*p = '\0';
|
||||
user_host = p + 1;
|
||||
}
|
||||
|
||||
/* This might be gross, but there are a lot of repeated calls.. */
|
||||
#define EMIT(x,...) hexchat_emit_print_attrs(ph,attrs,x,__VA_ARGS__,NULL)
|
||||
#define IS_EVENT(x) g_str_has_prefix(word_eol[5],x)
|
||||
|
||||
if (IS_EVENT ("joined"))
|
||||
{
|
||||
EMIT ("Join", user_nick, channel, user_host);
|
||||
}
|
||||
else if (IS_EVENT ("quit with message"))
|
||||
{
|
||||
EMIT ("Quit", user_nick, strip_brackets(word_eol[7]), user_host);
|
||||
}
|
||||
else if (IS_EVENT ("parted with message"))
|
||||
{
|
||||
char *reason = strip_brackets(word_eol[7]);
|
||||
|
||||
if (*reason)
|
||||
EMIT ("Part with Reason", user_nick, user_host, channel, reason);
|
||||
else
|
||||
EMIT ("Part", user_nick, user_host, channel);
|
||||
}
|
||||
else if (IS_EVENT ("is now known as"))
|
||||
{
|
||||
EMIT ("Change Nick", user_nick, word[9]);
|
||||
}
|
||||
else if (IS_EVENT ("set mode"))
|
||||
{
|
||||
char *prefix = (word[7][0] == '+' ? "+" : "-");
|
||||
|
||||
EMIT ("Channel Mode Generic", user_nick, prefix, word[7] + 1, channel);
|
||||
}
|
||||
else if (IS_EVENT ("changed the topic to"))
|
||||
{
|
||||
EMIT ("Topic Change", user_nick, word_eol[9], channel);
|
||||
}
|
||||
else if (IS_EVENT ("kicked")) /* X Reason: [Y] */
|
||||
{
|
||||
EMIT ("Kick", user_nick, word[6], channel, strip_brackets(word_eol[8]));
|
||||
}
|
||||
else
|
||||
{
|
||||
return HEXCHAT_EAT_NONE; /* We don't know, let it print */
|
||||
}
|
||||
|
||||
return HEXCHAT_EAT_ALL;
|
||||
}
|
||||
|
||||
/* End Buffextras */
|
||||
|
||||
|
||||
/* Privmsg: http://wiki.znc.in/Privmsg */
|
||||
|
||||
static gboolean
|
||||
prefix_is_channel (char prefix)
|
||||
{
|
||||
gboolean is_channel = TRUE; /* Defaults to TRUE as being wrong would be annoying */
|
||||
int id;
|
||||
hexchat_list *list;
|
||||
|
||||
if (hexchat_get_prefs (ph, "id", NULL, &id) != 2)
|
||||
return TRUE;
|
||||
|
||||
list = hexchat_list_get (ph, "channels");
|
||||
if (!list)
|
||||
return TRUE;
|
||||
|
||||
|
||||
while (hexchat_list_next (ph, list))
|
||||
{
|
||||
if (hexchat_list_int (ph, list, "id") == id)
|
||||
{
|
||||
const char *chantypes = hexchat_list_str (ph, list, "chantypes");
|
||||
if (strchr (chantypes, prefix) == NULL)
|
||||
is_channel = FALSE;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
hexchat_list_free (ph, list);
|
||||
return is_channel;
|
||||
}
|
||||
|
||||
static int
|
||||
privmsg_cb (char *word[], char *word_eol[], hexchat_event_attrs *attrs, void *userdata)
|
||||
{
|
||||
char *sender, *recipient, *msg, *p;
|
||||
const char *network, *mynick;
|
||||
|
||||
if (prefix_is_channel (word[3][0]))
|
||||
return HEXCHAT_EAT_NONE;
|
||||
|
||||
mynick = hexchat_get_info (ph, "nick");
|
||||
network = hexchat_get_info (ph, "network");
|
||||
recipient = word[3];
|
||||
msg = word_eol[4] + 1;
|
||||
sender = word[1] + 1;
|
||||
|
||||
p = strchr (sender, '!');
|
||||
if (p != NULL)
|
||||
*p = '\0';
|
||||
|
||||
if (hexchat_nickcmp (ph, sender, mynick) == 0
|
||||
&& hexchat_nickcmp (ph, recipient, mynick) != 0)
|
||||
{
|
||||
hexchat_context *new_ctx;
|
||||
char *event;
|
||||
|
||||
hexchat_commandf (ph, "query -nofocus %s", recipient);
|
||||
new_ctx = hexchat_find_context (ph, network, recipient);
|
||||
hexchat_set_context (ph, new_ctx);
|
||||
|
||||
if (g_ascii_strncasecmp (msg, "\001ACTION", 7) == 0)
|
||||
{
|
||||
msg += 7;
|
||||
msg[strlen (msg) - 1] = '\0';
|
||||
msg = g_strstrip (msg);
|
||||
event = "Your Action";
|
||||
}
|
||||
else
|
||||
{
|
||||
event = "Your Message";
|
||||
}
|
||||
|
||||
hexchat_emit_print_attrs (ph, attrs, event, mynick, msg, NULL);
|
||||
return HEXCHAT_EAT_ALL;
|
||||
}
|
||||
|
||||
return HEXCHAT_EAT_NONE;
|
||||
}
|
||||
|
||||
/* End Privmsg */
|
||||
|
||||
|
||||
int
|
||||
hexchat_plugin_init (hexchat_plugin *plugin_handle, char **plugin_name, char **plugin_desc,
|
||||
char **plugin_version, char *arg)
|
||||
{
|
||||
ph = plugin_handle;
|
||||
*plugin_name = name;
|
||||
*plugin_desc = desc;
|
||||
*plugin_version = version;
|
||||
|
||||
/* Privmsg */
|
||||
hexchat_hook_server_attrs (ph, "PRIVMSG", HEXCHAT_PRI_HIGH, privmsg_cb, NULL);
|
||||
|
||||
/* Buffextras */
|
||||
hexchat_hook_server_attrs (ph, "PRIVMSG", HEXCHAT_PRI_HIGHEST, buffextras_cb, NULL);
|
||||
|
||||
/* Playback */
|
||||
playback_servers = g_hash_table_new_full (NULL, NULL, NULL, g_free);
|
||||
|
||||
hexchat_hook_print (ph, "Capability List", HEXCHAT_PRI_NORM, capls_cb, NULL);
|
||||
hexchat_hook_print (ph, "Capability Acknowledgement", HEXCHAT_PRI_NORM, capack_cb, NULL);
|
||||
hexchat_hook_print (ph, "Open Context", HEXCHAT_PRI_NORM, opencontext_cb, NULL);
|
||||
hexchat_hook_print (ph, "Close Context", HEXCHAT_PRI_NORM, closecontext_cb, NULL);
|
||||
hexchat_hook_server (ph, "376", HEXCHAT_PRI_NORM, connected_cb, NULL);
|
||||
|
||||
/* FIXME: Events buffextras uses */
|
||||
hexchat_hook_server_attrs (ph, "PRIVMSG", HEXCHAT_PRI_LOW, chanactivity_cb, NULL);
|
||||
|
||||
hexchat_printf (ph, "%s plugin loaded\n", name);
|
||||
return 1;
|
||||
}
|
||||
|
||||
int
|
||||
hexchat_plugin_deinit (void)
|
||||
{
|
||||
g_hash_table_unref (playback_servers);
|
||||
hexchat_printf (ph, "%s plugin unloaded\n", name);
|
||||
return 1;
|
||||
}
|
@ -10,6 +10,7 @@ src/common/inbound.c
|
||||
src/common/notify.c
|
||||
src/common/outbound.c
|
||||
src/common/plugin.c
|
||||
src/common/plugin-timer.c
|
||||
src/common/server.c
|
||||
src/common/servlist.c
|
||||
src/common/textevents.h
|
||||
|
2
po/bg.po
2
po/bg.po
@ -4,7 +4,7 @@
|
||||
#
|
||||
# Translators:
|
||||
# Rostislav Raykov <zbrox@i-space.org>, 2005
|
||||
# n0kS Phr33d0m <shibam@v-gz.cz.cc>, 2012
|
||||
# Phr33d0m <shibam@v-gz.cz.cc>, 2012
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: HexChat\n"
|
||||
|
2
po/da.po
2
po/da.po
@ -6,7 +6,7 @@
|
||||
# Birger Langkjer <birger.langkjer@image.dk>, 1999
|
||||
# bviktor, 2012
|
||||
# Daniel Nylander <po@danielnylander.se>, 2007-2008,2010
|
||||
# Dennis Skov Midjord <dennisskovhermannsen@gmail.com>, 2012-2013
|
||||
# Incendia <dennisskovhermannsen@gmail.com>, 2012-2013
|
||||
# Henrik Hansen <hh@mailserver.dk>, 1999
|
||||
# Keld Simonsen, <keld2keldix.com>, 2011
|
||||
# Morten Brix Pedersen <morten@wtf.dk>, 2001
|
||||
|
134
po/de.po
134
po/de.po
@ -4,7 +4,7 @@
|
||||
#
|
||||
# Translators:
|
||||
# SSL <albkert@gmail.com>, 2013
|
||||
# Alf Gaida <agaida@siduction.org>, 2014
|
||||
# agaida <agaida@siduction.org>, 2014
|
||||
# Benedikt Roth <Benedikt.Roth@gmx.net>, 2000
|
||||
# Christian Meyer <linux@chrisim.de>, 2000
|
||||
# Aray <dataray@web.de>, 2014
|
||||
@ -13,11 +13,11 @@
|
||||
# Jakob Kramer <jakob.kramer@gmx.de>, 2012-2013
|
||||
# Karl Eichwalder <ke@gnu.franken.de>, 2003
|
||||
# Klaas <klaasdemter@googlemail.com>, 2013
|
||||
# RJ ., 2012
|
||||
# Marcel Metz <mmetz@adrian-broher.net>, 2013
|
||||
# subscious, 2012
|
||||
# adrian_broher <mmetz@adrian-broher.net>, 2013
|
||||
# Matthias Warkus <mawa@iname.com>, 1999
|
||||
# RJ ., 2014
|
||||
# Richard Schwab <mail@w.tf-w.tf>, 2013-2014
|
||||
# subscious, 2014
|
||||
# Nothing4You <mail@w.tf-w.tf>, 2013-2014
|
||||
# Tamer Fahmy <e9526976@stud2.tuwien.ac.at>, 1999
|
||||
# TheX <xerus@live.de>, 2013
|
||||
msgid ""
|
||||
@ -25,7 +25,7 @@ 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-07-25 21:49+0000\n"
|
||||
"PO-Revision-Date: 2014-06-02 04:31+0000\n"
|
||||
"Last-Translator: Aray <dataray@web.de>\n"
|
||||
"Language-Team: German (http://www.transifex.com/projects/p/hexchat/language/de/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
@ -45,7 +45,7 @@ msgstr "HexChar ist ein einfach zu benutzender, aber erweiterbarer IRC-CLient. E
|
||||
msgid ""
|
||||
"HexChat supports features such as: DCC, SASL, proxies, spellcheck, alerts, "
|
||||
"logging, custom themes, and Python/Perl scripts."
|
||||
msgstr "Hexchat unterstützt Features wie: DCC, SASL, procies, Rechtschreibprüfung, Benachrichtigungen, Logging, Benutzerdesigns und Python/Perl-Scripte"
|
||||
msgstr ""
|
||||
|
||||
#: ../data/misc/hexchat.desktop.in.h:1
|
||||
msgid "HexChat"
|
||||
@ -57,11 +57,11 @@ msgstr "IRC-Client"
|
||||
|
||||
#: ../data/misc/hexchat.desktop.in.h:3
|
||||
msgid "Chat with other people online"
|
||||
msgstr "Chatte online mit anderen Leuten"
|
||||
msgstr ""
|
||||
|
||||
#: ../data/misc/hexchat.desktop.in.h:4
|
||||
msgid "IM;Chat;"
|
||||
msgstr "IM;Chat;"
|
||||
msgstr ""
|
||||
|
||||
#: ../data/misc/hexchat.desktop.in.h:5
|
||||
msgid "Open Safe Mode"
|
||||
@ -299,7 +299,7 @@ msgstr "CTCP-Flut von %s, %s wird jetzt ignoriert\n"
|
||||
#: ../src/common/ignore.c:410
|
||||
#, c-format
|
||||
msgid "You are being MSG flooded from %s, setting gui_autoopen_dialog OFF.\n"
|
||||
msgstr "Du wirst gerade von %s ge\"MSGflooded\". Setze gui_autoopen_dialog auf AUS.\n"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/common/notify.c:558
|
||||
#, c-format
|
||||
@ -365,7 +365,7 @@ msgstr "Unbekanntes Argument »%s« ignoriert."
|
||||
|
||||
#: ../src/common/outbound.c:3093 ../src/common/outbound.c:3123
|
||||
msgid "Quiet is not supported by this server."
|
||||
msgstr "Ruhigstellen wird von diesem Server nicht unterstützt."
|
||||
msgstr ""
|
||||
|
||||
#. error
|
||||
#: ../src/common/outbound.c:3585 ../src/common/outbound.c:3619
|
||||
@ -670,7 +670,7 @@ msgstr "QUERY [-nofocus] <Nick >, öffnet ein neues Dialogfenster [im Hintergrun
|
||||
msgid ""
|
||||
"QUIET <mask> [<quiettype>], quiet everyone matching the mask in the current "
|
||||
"channel if supported by the server."
|
||||
msgstr "QUIET <mask>[<quiettype>], stellt jeden im aktuellen Kanal ruhig, der auf diese Maske passt, wenn der Server Ruhigstellen unterstützt."
|
||||
msgstr ""
|
||||
|
||||
#: ../src/common/outbound.c:4041
|
||||
msgid "QUIT [<reason>], disconnects from the current server"
|
||||
@ -780,7 +780,7 @@ msgstr "UNLOAD <Name>, entfernt ein Plugin oder Skript"
|
||||
msgid ""
|
||||
"UNQUIET <mask> [<mask>...], unquiets the specified masks if supported by the"
|
||||
" server."
|
||||
msgstr "UNQUIET <mask> [<mask>...], hebt eine Maske auf, die für automatische Ruhigstellung benutzt wird, wenn der Server es unterstützt."
|
||||
msgstr ""
|
||||
|
||||
#: ../src/common/outbound.c:4090
|
||||
msgid "URL <url>, opens a URL in your browser"
|
||||
@ -874,27 +874,27 @@ msgstr "%C18*%O$t%C18$1%O zur Benachrichtigungsliste hinzugefügt."
|
||||
|
||||
#: ../src/common/textevents.h:9
|
||||
msgid "%C22*%O$t%C22$1%O: %C18$2%O on %C24$4%O by %C26$3%O"
|
||||
msgstr "%C22*%O$t%C22$1%O: %C18$2%O auf %C24$4%O von %C26$3%O"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/common/textevents.h:12
|
||||
msgid "%C22*%O$tCannot join %C22$1 %O(%C20You are banned%O)."
|
||||
msgstr "%C22*%O$t Kann nicht betreten: %C22$1 %O(%C20Du wurdest gebannt%O)."
|
||||
msgstr ""
|
||||
|
||||
#: ../src/common/textevents.h:18
|
||||
msgid "%C29*%O$tCapabilities acknowledged: %C29$2%O"
|
||||
msgstr "%C29*%O$tRechte erteilt: %C29$2%O"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/common/textevents.h:21
|
||||
msgid "%C23*%O$tCapabilities supported: %C29$2%O"
|
||||
msgstr "%C23*%O$tRechte unterstützt: %C29$2%O"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/common/textevents.h:24
|
||||
msgid "%C23*%O$tCapabilities requested: %C29$1%O"
|
||||
msgstr "%C23*%O$tRechte erbeten: %C29$1%O"
|
||||
msgstr ""
|
||||
|
||||
#: ../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 heißt jetzt %C18$2%O"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/common/textevents.h:36
|
||||
msgid "%C22*%O$t%C26$1%O sets ban on %C18$2%O"
|
||||
@ -902,7 +902,7 @@ msgstr "%C22*%O$t%C26$1%O setzt einen Bann auf %C18$2%O"
|
||||
|
||||
#: ../src/common/textevents.h:39
|
||||
msgid "%C22*%O$tChannel %C22$1%O created on %C24$2%O"
|
||||
msgstr "%C22*%O$tKanal %C22$1%O wurde erstellt am %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"
|
||||
@ -918,15 +918,15 @@ msgstr "%C22*%O$t%C26$1%O entfernt Voice-Status bei%C26 $2"
|
||||
|
||||
#: ../src/common/textevents.h:51
|
||||
msgid "%C22*%O$t%C26$1%C sets exempt on %C18$2%O"
|
||||
msgstr "%C22*%O$t%C26$1%C setzt Ausnahme für %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 "%C22*%O$t%C26$1%O erteilt %C18$2%O Halb-Operator-Status"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/common/textevents.h:57
|
||||
msgid "%C22*%O$t%C26$1%C sets invite exempt on %C18$2%O"
|
||||
msgstr "%C22*%O$t%C26$1%C setzt Invite-Ausnahme für %C18$2%O"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/common/textevents.h:60
|
||||
msgid "%UChannel Users Topic"
|
||||
@ -1481,7 +1481,7 @@ msgstr "Server-Name"
|
||||
|
||||
#: ../src/common/text.c:1060
|
||||
msgid "Acknowledged Capabilities"
|
||||
msgstr "Verliehene Rechte"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/common/text.c:1065
|
||||
msgid "Server Capabilities"
|
||||
@ -1489,7 +1489,7 @@ msgstr "Server-Fähigkeiten"
|
||||
|
||||
#: ../src/common/text.c:1069
|
||||
msgid "Requested Capabilities"
|
||||
msgstr "Angeforderte Rechte"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/common/text.c:1073 ../src/common/text.c:1135
|
||||
msgid "Old nickname"
|
||||
@ -1637,11 +1637,11 @@ msgstr "Die Bannmaske"
|
||||
|
||||
#: ../src/common/text.c:1201
|
||||
msgid "The nick of the person who did the quieting"
|
||||
msgstr "Der Nick der Person, die ruhig stellte"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/common/text.c:1202 ../src/common/text.c:1234
|
||||
msgid "The quiet mask"
|
||||
msgstr "Die Ruhigstellungsmaske"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/common/text.c:1206
|
||||
msgid "The nick who removed the key"
|
||||
@ -1681,7 +1681,7 @@ msgstr "Der Nick der Person, die den Bann entfernte"
|
||||
|
||||
#: ../src/common/text.c:1233
|
||||
msgid "The nick of the person of did the unquiet'ing"
|
||||
msgstr "Nick der Person, die die Ruhigstellung aufhob"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/common/text.c:1238
|
||||
msgid "The nick of the person who did the exempt"
|
||||
@ -3110,11 +3110,11 @@ msgstr "Einlad."
|
||||
|
||||
#: ../src/fe-gtk/banlist.c:76
|
||||
msgid "Quiets"
|
||||
msgstr "Ruhigstellungen"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/fe-gtk/banlist.c:77
|
||||
msgid "Quiet"
|
||||
msgstr "Ruhigstellen"
|
||||
msgstr ""
|
||||
|
||||
#. poor way to get which is selected but it works
|
||||
#: ../src/fe-gtk/banlist.c:351 ../src/fe-gtk/banlist.c:385
|
||||
@ -3405,7 +3405,7 @@ msgstr "Plugins nicht automatisch laden"
|
||||
|
||||
#: ../src/fe-gtk/fe-gtk.c:83
|
||||
msgid "Show plugin/script auto-load directory"
|
||||
msgstr "Zeige automatisches Ladeverzeichnis für Plugins/Scripte"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/fe-gtk/fe-gtk.c:84
|
||||
msgid "Show user config directory"
|
||||
@ -3475,7 +3475,7 @@ msgid ""
|
||||
"switch to the page with the most recent and important activity (queries "
|
||||
"first, then channels with hilight, channels with dialogue, channels with "
|
||||
"other data)"
|
||||
msgstr "Der \"Seite ändern\" Befehl wechselt zwischen den Seiten im Notizblock. Setze \"Data 1\" auf die Seite, zu der du wechseln möchtest. Wenn \"Data 2\" festgelegt wurde, wird der Wechsel relativ zur aktuellen Position erfolgen. Setze \"Data 1\", um automatisch zu der Seite mit den neuesten und wichtigsten Aktivitäten (Privatchats zuerst, dann Kanäle mit Highlight, Kanäle mit Dialog, Kanäle mit anderen Daten) zu wechseln."
|
||||
msgstr ""
|
||||
|
||||
#: ../src/fe-gtk/fkeys.c:145
|
||||
msgid ""
|
||||
@ -3487,7 +3487,7 @@ msgstr "Die Insert in Buffer Aktion fügt den Inhalt von »Data 1« in die Zei
|
||||
msgid ""
|
||||
"The Scroll Page command scrolls the text widget up or down one page or one"
|
||||
" line. Set Data 1 to either Top, Bottom, Up, Down, +1 or -1."
|
||||
msgstr "Der Bildlauf-Befehl verschiebt das Text-Widget um eine Seite oder eine Zeile aufwärts oder abwärts. Setze \"Data 1\" Anfang, Ende oder Auf, Ab um +1 oder -1."
|
||||
msgstr ""
|
||||
|
||||
#: ../src/fe-gtk/fkeys.c:149
|
||||
msgid ""
|
||||
@ -3552,7 +3552,7 @@ msgstr "Fehler beim Laden der Tastaturkürzel-Konfiguration"
|
||||
|
||||
#: ../src/fe-gtk/fkeys.c:540
|
||||
msgid "Select a row to get help information on its Action."
|
||||
msgstr "Markiere eine Zeile, für Hilfestellung über die jeweilige Aktion."
|
||||
msgstr ""
|
||||
|
||||
#: ../src/fe-gtk/fkeys.c:809
|
||||
msgid ": Keyboard Shortcuts"
|
||||
@ -3859,7 +3859,7 @@ msgstr "Suche beendet, kein Treffer."
|
||||
|
||||
#: ../src/fe-gtk/maingui.c:2944
|
||||
msgid "Highlight _all"
|
||||
msgstr "Highlight _alle"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/fe-gtk/maingui.c:2950
|
||||
msgid "Highlight all occurrences, and underline the current occurrence."
|
||||
@ -3867,7 +3867,7 @@ msgstr "Hebe alle Vorkommnisse hervor und unterstreiche das aktuelle Vorkommnis.
|
||||
|
||||
#: ../src/fe-gtk/maingui.c:2952
|
||||
msgid "Mat_ch case"
|
||||
msgstr "Groß-/Kleins_chreibung angleichen"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/fe-gtk/maingui.c:2957
|
||||
msgid "Perform a case-sensitive search."
|
||||
@ -3875,7 +3875,7 @@ msgstr "Eine Case-Sensitive Suche ausführen"
|
||||
|
||||
#: ../src/fe-gtk/maingui.c:2959
|
||||
msgid "_Regex"
|
||||
msgstr "_Regulärer Ausdruck"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/fe-gtk/maingui.c:2964
|
||||
msgid "Regard search string as a regular expression."
|
||||
@ -3973,7 +3973,7 @@ msgstr "Automatisches Betreten"
|
||||
|
||||
#: ../src/fe-gtk/menu.c:1113 ../src/fe-gtk/menu.c:1117
|
||||
msgid "_Auto-Connect"
|
||||
msgstr "_Automatisches Verbinden"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/fe-gtk/menu.c:1137
|
||||
msgid ": User menu"
|
||||
@ -3998,7 +3998,7 @@ msgstr "Markierungslinie manuell zurücksetzen"
|
||||
|
||||
#: ../src/fe-gtk/menu.c:1304
|
||||
msgid "Marker line reset because exceeded scrollback limit."
|
||||
msgstr "Markierungslinie wurde zurückgesetzt, weil die begrenzung des Scrollbalkens überschritten wurde."
|
||||
msgstr ""
|
||||
|
||||
#: ../src/fe-gtk/menu.c:1306
|
||||
msgid "Marker line reset by CLEAR command."
|
||||
@ -4014,7 +4014,7 @@ msgstr "Empfange Channelliste …"
|
||||
|
||||
#: ../src/fe-gtk/menu.c:1461
|
||||
msgid " has been build without plugin support."
|
||||
msgstr "wurde ohne Plugin-Support erstellt"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/fe-gtk/menu.c:1469
|
||||
msgid ""
|
||||
@ -4215,7 +4215,7 @@ msgstr "Grafisch"
|
||||
|
||||
#: ../src/fe-gtk/menu.c:1785
|
||||
msgid "_Fullscreen"
|
||||
msgstr "_Vollbild"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/fe-gtk/menu.c:1787
|
||||
msgid "_Server"
|
||||
@ -4231,15 +4231,15 @@ msgstr "_Wiederverbinden"
|
||||
|
||||
#: ../src/fe-gtk/menu.c:1790
|
||||
msgid "_Join a Channel..."
|
||||
msgstr "_Betrete einen Kanal"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/fe-gtk/menu.c:1791
|
||||
msgid "_List of Channels..."
|
||||
msgstr "_Liste aller Kanäle"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/fe-gtk/menu.c:1794
|
||||
msgid "Marked _Away"
|
||||
msgstr "Als _Abwesend markiert"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/fe-gtk/menu.c:1796
|
||||
msgid "_Usermenu"
|
||||
@ -4297,7 +4297,7 @@ msgstr "_Fenster"
|
||||
|
||||
#: ../src/fe-gtk/menu.c:1812
|
||||
msgid "_Ban List..."
|
||||
msgstr "_Bannliste"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/fe-gtk/menu.c:1813
|
||||
msgid "Character Chart..."
|
||||
@ -4309,7 +4309,7 @@ msgstr "Direktchat …"
|
||||
|
||||
#: ../src/fe-gtk/menu.c:1815
|
||||
msgid "File _Transfers..."
|
||||
msgstr "Dateiüber_tragung"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/fe-gtk/menu.c:1816
|
||||
msgid "Friends List..."
|
||||
@ -4321,11 +4321,11 @@ msgstr "Ignorierliste …"
|
||||
|
||||
#: ../src/fe-gtk/menu.c:1818
|
||||
msgid "_Plugins and Scripts..."
|
||||
msgstr "_Plugins und Scripte"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/fe-gtk/menu.c:1819
|
||||
msgid "_Raw Log..."
|
||||
msgstr "_Roher Log"
|
||||
msgstr ""
|
||||
|
||||
#. 61
|
||||
#: ../src/fe-gtk/menu.c:1820
|
||||
@ -4564,11 +4564,11 @@ msgstr "_Laden …"
|
||||
|
||||
#: ../src/fe-gtk/plugingui.c:270
|
||||
msgid "_Unload"
|
||||
msgstr "_Entladen"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/fe-gtk/plugingui.c:273
|
||||
msgid "_Reload"
|
||||
msgstr "_Neu laden"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/fe-gtk/rawlog.c:80 ../src/fe-gtk/rawlog.c:136
|
||||
#: ../src/fe-gtk/textgui.c:479 ../src/fe-gtk/urlgrab.c:216
|
||||
@ -4694,7 +4694,7 @@ msgstr "Passwort:"
|
||||
|
||||
#: ../src/fe-gtk/servlistgui.c:1885
|
||||
msgid "Password used for login. If in doubt, leave blank."
|
||||
msgstr "Passwort zum Einloggen. Im Zweifel leer lassen."
|
||||
msgstr ""
|
||||
|
||||
#: ../src/fe-gtk/servlistgui.c:1890
|
||||
msgid "Character set:"
|
||||
@ -5106,11 +5106,11 @@ msgstr "Nickvervollständigung sortiert nach:"
|
||||
|
||||
#: ../src/fe-gtk/setup.c:205
|
||||
msgid "Nick completion amount:"
|
||||
msgstr "Anzahl Nickvervollständigung"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/fe-gtk/setup.c:205
|
||||
msgid "Threshold of nicks to start listing instead of completing"
|
||||
msgstr "Schwellwert zum Auflisten von Nicks anstatt Vervollständigung"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/fe-gtk/setup.c:205
|
||||
msgid "nicks."
|
||||
@ -5303,7 +5303,7 @@ msgstr "Neue Reiter im Vordergrund:"
|
||||
|
||||
#: ../src/fe-gtk/setup.c:319
|
||||
msgid "Placement of notices:"
|
||||
msgstr "Plaziern von Notizen:"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/fe-gtk/setup.c:320
|
||||
msgid "Show channel switcher at:"
|
||||
@ -5436,7 +5436,7 @@ msgstr "Symbol im Benachrichtigungsbereich blinken lassen bei:"
|
||||
|
||||
#: ../src/fe-gtk/setup.c:404
|
||||
msgid "Bounce dock icon on:"
|
||||
msgstr "Dock-Icon springen lassen bei:"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/fe-gtk/setup.c:407 ../src/fe-gtk/setup.c:453
|
||||
msgid "Blink task bar on:"
|
||||
@ -5451,17 +5451,17 @@ msgstr "Piepsen bei:"
|
||||
msgid ""
|
||||
"Play the \"Instant Message Notification\" system sound upon the selected "
|
||||
"events"
|
||||
msgstr "Den \"Sofortnachrichten-Benachrichtigungs\"-Systemton bei folgenden Ereignissen abspielen:"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/fe-gtk/setup.c:414
|
||||
msgid ""
|
||||
"Play \"message-new-instant\" from the freedesktop.org sound theme upon the "
|
||||
"selected events"
|
||||
msgstr "Den \"message-new-instant\"-Ton aus dem freedesktop.org Soundthema bei ausgewählten Ereignissen abspielen"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/fe-gtk/setup.c:416
|
||||
msgid "Play a GTK beep upon the selected events"
|
||||
msgstr "einen GTK Piepton bei den ausgewählten Ereignissen abspielen"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/fe-gtk/setup.c:420 ../src/fe-gtk/setup.c:456
|
||||
msgid "Omit alerts when marked as being away"
|
||||
@ -5489,7 +5489,7 @@ msgstr "Ins Infofeld schließen"
|
||||
|
||||
#: ../src/fe-gtk/setup.c:431
|
||||
msgid "Automatically mark away/back"
|
||||
msgstr "Automatisch als abwesend/zurück markieren"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/fe-gtk/setup.c:431
|
||||
msgid "Automatically change status when hiding to tray."
|
||||
@ -5497,7 +5497,7 @@ msgstr "Status automatisch wechseln, wenn das Programm in den Tray geschlossen w
|
||||
|
||||
#: ../src/fe-gtk/setup.c:433
|
||||
msgid "Only show tray balloons when hidden or iconified"
|
||||
msgstr "Balloon-Tipps nur anzeigen, wenn minimiert oder im Tray"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/fe-gtk/setup.c:436 ../src/fe-gtk/setup.c:459
|
||||
msgid "Highlighted Messages"
|
||||
@ -5668,7 +5668,7 @@ msgstr "Benutze Serverzeit, wenn unterstützt"
|
||||
msgid ""
|
||||
"Display timestamps obtained from server if it supports the time-server "
|
||||
"extension."
|
||||
msgstr "Zeitstempel vom Server holen, wenn die \"Time-Server\"-Erweiterung unterstützt wird."
|
||||
msgstr ""
|
||||
|
||||
#: ../src/fe-gtk/setup.c:521
|
||||
msgid "Automatically reconnect to servers on disconnect"
|
||||
@ -5684,13 +5684,13 @@ msgstr "Verzögerung beim automatischen Betreten:"
|
||||
|
||||
#: ../src/fe-gtk/setup.c:524
|
||||
msgid "Ban Type:"
|
||||
msgstr "Bannart:"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/fe-gtk/setup.c:524
|
||||
msgid ""
|
||||
"Attempt to use this banmask when banning or quieting. (requires "
|
||||
"irc_who_join)"
|
||||
msgstr "Versuchen, diese Bannmaske zu benutzen, wenn gebannt oder ruhiggestellt wird. (benötigt irc_who_join)"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/fe-gtk/setup.c:531 ../src/fe-gtk/setup.c:1817
|
||||
msgid "Logging"
|
||||
@ -5795,7 +5795,7 @@ msgstr "Nur für Computer mit mehreren Adressen."
|
||||
|
||||
#: ../src/fe-gtk/setup.c:585
|
||||
msgid "File Transfers"
|
||||
msgstr "Dateiübertragungen"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/fe-gtk/setup.c:586
|
||||
msgid "Get my address from the IRC server"
|
||||
@ -5997,7 +5997,7 @@ msgstr "Chatten"
|
||||
|
||||
#: ../src/fe-gtk/setup.c:1816
|
||||
msgid "Sounds"
|
||||
msgstr "Töne"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/fe-gtk/setup.c:1818
|
||||
msgid "Advanced"
|
||||
@ -6062,12 +6062,12 @@ msgstr "Ignoriere Alles"
|
||||
|
||||
#: ../src/fe-gtk/sexy-spell-entry.c:711
|
||||
msgid "Spelling Suggestions"
|
||||
msgstr "Rechtschreib-Vorschläge"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/fe-gtk/sexy-spell-entry.c:1272
|
||||
#, c-format
|
||||
msgid "enchant error for language: %s"
|
||||
msgstr "Fehler in der enchant-Bibliothek in Sprache: %s"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/fe-gtk/textgui.c:171
|
||||
msgid "There was an error parsing the string"
|
||||
|
2
po/el.po
2
po/el.po
@ -3,7 +3,7 @@
|
||||
# This file is distributed under the same license as the PACKAGE package.
|
||||
#
|
||||
# Translators:
|
||||
# Filippos Soulakis <txapollo243@gmail.com>, 2013
|
||||
# txapollo243 <txapollo243@gmail.com>, 2013
|
||||
# Stathis Kamperis <ekamperi@auth.gr>, 2006
|
||||
# Γιάννης Ανθυμίδης <yannanth@gmail.com>, 2013
|
||||
msgid ""
|
||||
|
22
po/en_GB.po
22
po/en_GB.po
@ -3,19 +3,19 @@
|
||||
# This file is distributed under the same license as the PACKAGE package.
|
||||
#
|
||||
# Translators:
|
||||
# Alfred Daw <sacarasc@gmail.com>, 2013
|
||||
# sacarasc <sacarasc@gmail.com>, 2013
|
||||
# Sir_Burpalot <doctor.z01db3rg@gmail.com>, 2014
|
||||
# Gareth Owen <gowen72@yahoo.com>, 2004
|
||||
# Ivan Srbulov <Srbulov.Ivan@gmail.com>, 2013
|
||||
# Richard Hitt <rbh00@netcom.com>, 2013
|
||||
# Alfred Daw <sacarasc@gmail.com>, 2012
|
||||
# tea <Srbulov.Ivan@gmail.com>, 2013
|
||||
# rbh00 <rbh00@netcom.com>, 2013
|
||||
# sacarasc <sacarasc@gmail.com>, 2012
|
||||
# TheEndermen <theendermenofdoom@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-07-09 19:40+0000\n"
|
||||
"PO-Revision-Date: 2014-05-21 20:52+0000\n"
|
||||
"Last-Translator: Sir_Burpalot <doctor.z01db3rg@gmail.com>\n"
|
||||
"Language-Team: English (United Kingdom) (http://www.transifex.com/projects/p/hexchat/language/en_GB/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
@ -126,7 +126,7 @@ msgstr "No active DCCs\n"
|
||||
|
||||
#: ../src/common/hexchat.c:867
|
||||
msgid "_Open Dialog Window"
|
||||
msgstr "_Open Dialogue Window"
|
||||
msgstr "_Open Dialog Window"
|
||||
|
||||
#: ../src/common/hexchat.c:868
|
||||
msgid "_Send a File"
|
||||
@ -3670,7 +3670,7 @@ msgstr "_Always show this dialog after connecting."
|
||||
|
||||
#: ../src/fe-gtk/maingui.c:397
|
||||
msgid "Dialog with"
|
||||
msgstr "Dialogue with"
|
||||
msgstr "Dialog with"
|
||||
|
||||
#: ../src/fe-gtk/maingui.c:695
|
||||
#, c-format
|
||||
@ -3686,7 +3686,7 @@ msgstr "No topic is set"
|
||||
msgid ""
|
||||
"This server still has %d channels or dialogs associated with it. Close them "
|
||||
"all?"
|
||||
msgstr "This server still has %d channels or dialogues associated with it. Close them all?"
|
||||
msgstr "This server still has %d channels or dialogs associated with it. Close them all?"
|
||||
|
||||
#: ../src/fe-gtk/maingui.c:1203
|
||||
msgid "Quit HexChat?"
|
||||
@ -4056,7 +4056,7 @@ msgid ""
|
||||
"%s = selected nick\n"
|
||||
"%t = time/date\n"
|
||||
"%u = selected users account"
|
||||
msgstr "Dialogue Buttons - Special codes:\n\n%a = all selected nicks\n%c = current channel\n%e = current network name\n%h = selected nick's hostname\n%m = machine info\n%n = your nick\n%s = selected nick\n%t = time/date\n%u = selected users account"
|
||||
msgstr "Dialog Buttons - Special codes:\n\n%a = all selected nicks\n%c = current channel\n%e = current network name\n%h = selected nick's hostname\n%m = machine info\n%n = your nick\n%s = selected nick\n%t = time/date\n%u = selected users account"
|
||||
|
||||
#: ../src/fe-gtk/menu.c:1507
|
||||
msgid ""
|
||||
@ -4112,7 +4112,7 @@ msgstr ": Userlist buttons"
|
||||
|
||||
#: ../src/fe-gtk/menu.c:1574
|
||||
msgid ": Dialog buttons"
|
||||
msgstr ": Dialogue buttons"
|
||||
msgstr ": Dialog buttons"
|
||||
|
||||
#: ../src/fe-gtk/menu.c:1581
|
||||
msgid ": CTCP Replies"
|
||||
@ -4428,7 +4428,7 @@ msgstr ": Friends List"
|
||||
|
||||
#: ../src/fe-gtk/notifygui.c:429
|
||||
msgid "Open Dialog"
|
||||
msgstr "Open Dialogue"
|
||||
msgstr "Open Dialog"
|
||||
|
||||
#: ../src/fe-gtk/plugin-tray.c:264
|
||||
#, c-format
|
||||
|
8
po/es.po
8
po/es.po
@ -4,16 +4,16 @@
|
||||
#
|
||||
# Translators:
|
||||
# bviktor, 2012
|
||||
# Víctor <vegadark89@gmail.com>, 2013-2014
|
||||
# Víctor <vegadark89@gmail.com>, 2012-2013
|
||||
# Víctor <vegadark89@gmail.com>, 2014
|
||||
# Víctor منتصر <vegadark89@gmail.com>, 2013-2014
|
||||
# Víctor منتصر <vegadark89@gmail.com>, 2012-2013
|
||||
# Víctor منتصر <vegadark89@gmail.com>, 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:34+0000\n"
|
||||
"Last-Translator: Víctor <vegadark89@gmail.com>\n"
|
||||
"Last-Translator: Víctor منتصر <vegadark89@gmail.com>\n"
|
||||
"Language-Team: Spanish (http://www.transifex.com/projects/p/hexchat/language/es/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
|
2
po/eu.po
2
po/eu.po
@ -4,7 +4,7 @@
|
||||
#
|
||||
# Translators:
|
||||
# Mikel Olasagasti <hey_neken@euskal.org>, 2004
|
||||
# Mikel Olasagasti Uranga <mikel@olasagasti.info>, 2012
|
||||
# Hey_neken <mikel@olasagasti.info>, 2012
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: HexChat\n"
|
||||
|
157
po/fi.po
157
po/fi.po
@ -3,14 +3,13 @@
|
||||
# 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-06-24 13:54+0000\n"
|
||||
"Last-Translator: Toni Willberg\n"
|
||||
"PO-Revision-Date: 2014-05-14 17:20+0000\n"
|
||||
"Last-Translator: TingPing <tingping@tingping.se>\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"
|
||||
@ -37,7 +36,7 @@ msgstr ""
|
||||
|
||||
#: ../data/misc/hexchat.desktop.in.h:2
|
||||
msgid "IRC Client"
|
||||
msgstr "IRC Client"
|
||||
msgstr ""
|
||||
|
||||
#: ../data/misc/hexchat.desktop.in.h:3
|
||||
msgid "Chat with other people online"
|
||||
@ -120,19 +119,19 @@ msgstr "Ei aktiivisia DCC-yhteyksiä\n"
|
||||
|
||||
#: ../src/common/hexchat.c:867
|
||||
msgid "_Open Dialog Window"
|
||||
msgstr "Avaa keskusteluikkuna"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/common/hexchat.c:868
|
||||
msgid "_Send a File"
|
||||
msgstr "Lähetä tiedo_sto"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/common/hexchat.c:869
|
||||
msgid "_User Info (WhoIs)"
|
||||
msgstr "Käyttäjätiedot (Whois)"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/common/hexchat.c:870
|
||||
msgid "_Add to Friends List"
|
||||
msgstr "Lisää k_averilistalle"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/common/hexchat.c:871
|
||||
msgid "_Ignore"
|
||||
@ -306,12 +305,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 "Palvelin %s on jo verkossa %s.\n"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/common/outbound.c:286
|
||||
#, c-format
|
||||
msgid "Added server %s to network %s.\n"
|
||||
msgstr "Lisättiin palvelin %s verkoon %s.\n"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/common/outbound.c:371
|
||||
#, c-format
|
||||
@ -607,7 +606,7 @@ msgstr ""
|
||||
|
||||
#: ../src/common/outbound.c:4020
|
||||
msgid "NAMES [channel], Lists the nicks on the channel"
|
||||
msgstr "NAMES [kanava], luettelee kanavalla olevat käyttäjät"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/common/outbound.c:4022
|
||||
msgid "NCTCP <nick> <message>, Sends a CTCP notice"
|
||||
@ -1192,7 +1191,7 @@ msgstr ""
|
||||
#: ../src/common/textevents.h:279
|
||||
msgid ""
|
||||
"%C20*%O$tNickname is erroneous or already in use. Use /NICK to try another."
|
||||
msgstr "%C20*%O$tNimi on virheellinen tai jo käytössä. Käytä /NICK -komentoa yrittääksesi uudelleen."
|
||||
msgstr ""
|
||||
|
||||
#: ../src/common/textevents.h:282
|
||||
msgid "%C20*%O$tNo such DCC."
|
||||
@ -1204,11 +1203,11 @@ msgstr ""
|
||||
|
||||
#: ../src/common/textevents.h:294
|
||||
msgid "%C23*%O$tNotify: %C18$1%C is away (%C24$2%O)"
|
||||
msgstr "%C23*%O$tNotify: %C18$1%C on poissa (%C24$2%O)"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/common/textevents.h:297
|
||||
msgid "%C23*%O$tNotify: %C18$1%C is back"
|
||||
msgstr "%C23*%O$tNotify: %C18$1%C tuli takaisin"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/common/textevents.h:300
|
||||
msgid "$tNotify list is empty."
|
||||
@ -2108,7 +2107,7 @@ msgstr "Kanada"
|
||||
|
||||
#: ../src/common/util.c:1028 ../src/fe-gtk/setup.c:96
|
||||
msgid "Catalan"
|
||||
msgstr "Katalaani"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/common/util.c:1029
|
||||
msgid "Cocos Islands"
|
||||
@ -3360,7 +3359,7 @@ msgstr "Aloitusaika"
|
||||
|
||||
#: ../src/fe-gtk/editlist.c:358 ../src/fe-gtk/fkeys.c:826
|
||||
msgid "Add"
|
||||
msgstr "Lisää"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/fe-gtk/editlist.c:360 ../src/fe-gtk/fkeys.c:828
|
||||
#: ../src/fe-gtk/ignoregui.c:383
|
||||
@ -3684,7 +3683,7 @@ msgstr "Palvelimelta on edelleen auki %d kanavaa tai keskustelua. Suljetaanko ka
|
||||
|
||||
#: ../src/fe-gtk/maingui.c:1203
|
||||
msgid "Quit HexChat?"
|
||||
msgstr "Suljetaanko HexChat?"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/fe-gtk/maingui.c:1223
|
||||
msgid "Don't ask next time."
|
||||
@ -3721,7 +3720,7 @@ msgstr "<u>Alleviivattu</u>"
|
||||
|
||||
#: ../src/fe-gtk/maingui.c:1475
|
||||
msgid "<i>Italic</i>"
|
||||
msgstr "<i>Kursiivi</i>"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/fe-gtk/maingui.c:1476
|
||||
msgid "Normal"
|
||||
@ -3737,11 +3736,11 @@ msgstr "Värit 8–15"
|
||||
|
||||
#: ../src/fe-gtk/maingui.c:1534
|
||||
msgid "_Settings"
|
||||
msgstr "A_setukset"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/fe-gtk/maingui.c:1536
|
||||
msgid "_Log to Disk"
|
||||
msgstr "Tallenna _lokitiedosto levylle"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/fe-gtk/maingui.c:1537
|
||||
msgid "_Reload Scrollback"
|
||||
@ -3753,7 +3752,7 @@ msgstr ""
|
||||
|
||||
#: ../src/fe-gtk/maingui.c:1541
|
||||
msgid "_Hide Join/Part Messages"
|
||||
msgstr "Piilota liittymis- ja poistumisviestit"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/fe-gtk/maingui.c:1550
|
||||
msgid "_Extra Alerts"
|
||||
@ -3761,7 +3760,7 @@ msgstr ""
|
||||
|
||||
#: ../src/fe-gtk/maingui.c:1552
|
||||
msgid "Beep on _Message"
|
||||
msgstr "Anna ääni_merkki kun uusi viesti saapuu"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/fe-gtk/maingui.c:1554
|
||||
msgid "Blink Tray _Icon"
|
||||
@ -3835,7 +3834,7 @@ msgstr "Anna uusi kutsumanimi:"
|
||||
|
||||
#: ../src/fe-gtk/maingui.c:2832
|
||||
msgid "No results found."
|
||||
msgstr "Ei osumia."
|
||||
msgstr ""
|
||||
|
||||
#: ../src/fe-gtk/maingui.c:2928
|
||||
msgid "Search hit end or not found."
|
||||
@ -3859,7 +3858,7 @@ msgstr ""
|
||||
|
||||
#: ../src/fe-gtk/maingui.c:2959
|
||||
msgid "_Regex"
|
||||
msgstr "_Regex"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/fe-gtk/maingui.c:2964
|
||||
msgid "Regard search string as a regular expression."
|
||||
@ -3919,7 +3918,7 @@ msgstr "Poissaoloviesti:"
|
||||
#: ../src/fe-gtk/menu.c:737
|
||||
#, c-format
|
||||
msgid "%d nicks selected."
|
||||
msgstr "%d nimeä valittu."
|
||||
msgstr ""
|
||||
|
||||
#: ../src/fe-gtk/menu.c:862
|
||||
msgid ""
|
||||
@ -4338,7 +4337,7 @@ msgstr "Tallenna teksti..."
|
||||
|
||||
#: ../src/fe-gtk/menu.c:1828
|
||||
msgid "Search"
|
||||
msgstr "Etsi"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/fe-gtk/menu.c:1829
|
||||
msgid "Search Text..."
|
||||
@ -4346,11 +4345,11 @@ msgstr "Hae tekstistä..."
|
||||
|
||||
#: ../src/fe-gtk/menu.c:1830
|
||||
msgid "Search Next"
|
||||
msgstr "Etsi seuraava"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/fe-gtk/menu.c:1831
|
||||
msgid "Search Previous"
|
||||
msgstr "Etsi edellinen"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/fe-gtk/menu.c:1834 ../src/fe-gtk/menu.c:2321
|
||||
msgid "_Help"
|
||||
@ -4393,7 +4392,7 @@ msgstr "%d minuuttia sitten"
|
||||
#: ../src/fe-gtk/notifygui.c:195
|
||||
#, c-format
|
||||
msgid "An hour ago"
|
||||
msgstr "Tunti sitten"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/fe-gtk/notifygui.c:197
|
||||
#, c-format
|
||||
@ -4418,7 +4417,7 @@ msgstr "Pilkuilla eroteltu luettelo IRC-verkkoja."
|
||||
|
||||
#: ../src/fe-gtk/notifygui.c:407
|
||||
msgid ": Friends List"
|
||||
msgstr ": Kaverilista"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/fe-gtk/notifygui.c:429
|
||||
msgid "Open Dialog"
|
||||
@ -4579,11 +4578,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 "Käyttäjätunnus ei voi olla tyhjä."
|
||||
msgstr ""
|
||||
|
||||
#: ../src/fe-gtk/servlistgui.c:1578
|
||||
msgid "You must have two unique nick names."
|
||||
msgstr "Lempinimet pitää olla uniikkeja."
|
||||
msgstr ""
|
||||
|
||||
#: ../src/fe-gtk/servlistgui.c:1630
|
||||
msgid ""
|
||||
@ -4598,11 +4597,11 @@ msgstr "XChat: Muokkaa %s-verkkoa"
|
||||
|
||||
#: ../src/fe-gtk/servlistgui.c:1725
|
||||
msgid "Servers"
|
||||
msgstr "Palvelimet"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/fe-gtk/servlistgui.c:1726
|
||||
msgid "Autojoin channels"
|
||||
msgstr "Liity kanaville automaattisesti"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/fe-gtk/servlistgui.c:1727
|
||||
msgid "Connect commands"
|
||||
@ -4634,7 +4633,7 @@ msgstr "Älä yritä yhdistää muihin palvelimiin, jos valittuun palvelimeen ei
|
||||
|
||||
#: ../src/fe-gtk/servlistgui.c:1862
|
||||
msgid "Connect to this network automatically"
|
||||
msgstr "Yhdistä tähän verkkoon automaattisesti"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/fe-gtk/servlistgui.c:1863
|
||||
msgid "Bypass proxy server"
|
||||
@ -4776,7 +4775,7 @@ msgstr ""
|
||||
|
||||
#: ../src/fe-gtk/setup.c:99
|
||||
msgid "Czech"
|
||||
msgstr "Tsekki"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/fe-gtk/setup.c:100
|
||||
msgid "Danish"
|
||||
@ -4784,11 +4783,11 @@ msgstr ""
|
||||
|
||||
#: ../src/fe-gtk/setup.c:101
|
||||
msgid "Dutch"
|
||||
msgstr "Hollanti"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/fe-gtk/setup.c:102
|
||||
msgid "English (British)"
|
||||
msgstr "Englanti (Brittiläinen)"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/fe-gtk/setup.c:103
|
||||
msgid "English"
|
||||
@ -4800,23 +4799,23 @@ msgstr "Viro"
|
||||
|
||||
#: ../src/fe-gtk/setup.c:105
|
||||
msgid "Finnish"
|
||||
msgstr "Suomi"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/fe-gtk/setup.c:106
|
||||
msgid "French"
|
||||
msgstr "Ranska"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/fe-gtk/setup.c:107
|
||||
msgid "Galician"
|
||||
msgstr "Galego"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/fe-gtk/setup.c:108
|
||||
msgid "German"
|
||||
msgstr "Saksa"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/fe-gtk/setup.c:109
|
||||
msgid "Greek"
|
||||
msgstr "Kreikka"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/fe-gtk/setup.c:110
|
||||
msgid "Gujarati"
|
||||
@ -4828,7 +4827,7 @@ msgstr "Intia"
|
||||
|
||||
#: ../src/fe-gtk/setup.c:112
|
||||
msgid "Hungarian"
|
||||
msgstr "Unkari"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/fe-gtk/setup.c:113
|
||||
msgid "Indonesian"
|
||||
@ -4836,15 +4835,15 @@ msgstr ""
|
||||
|
||||
#: ../src/fe-gtk/setup.c:114
|
||||
msgid "Italian"
|
||||
msgstr "Italia"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/fe-gtk/setup.c:115
|
||||
msgid "Japanese"
|
||||
msgstr "Japani"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/fe-gtk/setup.c:116
|
||||
msgid "Kannada"
|
||||
msgstr "Kannada"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/fe-gtk/setup.c:117
|
||||
msgid "Kinyarwanda"
|
||||
@ -4852,19 +4851,19 @@ msgstr ""
|
||||
|
||||
#: ../src/fe-gtk/setup.c:118
|
||||
msgid "Korean"
|
||||
msgstr "Korea"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/fe-gtk/setup.c:119
|
||||
msgid "Latvian"
|
||||
msgstr "Latvia"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/fe-gtk/setup.c:120
|
||||
msgid "Lithuanian"
|
||||
msgstr "Liettua"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/fe-gtk/setup.c:121
|
||||
msgid "Macedonian"
|
||||
msgstr "Makedonia"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/fe-gtk/setup.c:122
|
||||
msgid "Malay"
|
||||
@ -4876,51 +4875,51 @@ msgstr ""
|
||||
|
||||
#: ../src/fe-gtk/setup.c:124
|
||||
msgid "Norwegian (Bokmal)"
|
||||
msgstr "Norja (Bokmal)"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/fe-gtk/setup.c:125
|
||||
msgid "Norwegian (Nynorsk)"
|
||||
msgstr "Norja (Nynorsk)"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/fe-gtk/setup.c:126
|
||||
msgid "Polish"
|
||||
msgstr "Puola"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/fe-gtk/setup.c:127
|
||||
msgid "Portuguese"
|
||||
msgstr "Portugali"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/fe-gtk/setup.c:128
|
||||
msgid "Portuguese (Brazilian)"
|
||||
msgstr "Portugali (Brasilian)"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/fe-gtk/setup.c:129
|
||||
msgid "Punjabi"
|
||||
msgstr "Punjabi"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/fe-gtk/setup.c:130
|
||||
msgid "Russian"
|
||||
msgstr "Venäjä"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/fe-gtk/setup.c:131
|
||||
msgid "Serbian"
|
||||
msgstr "Serbia"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/fe-gtk/setup.c:132
|
||||
msgid "Slovak"
|
||||
msgstr "Slovakki"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/fe-gtk/setup.c:133
|
||||
msgid "Slovenian"
|
||||
msgstr "Sloveeni"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/fe-gtk/setup.c:134
|
||||
msgid "Spanish"
|
||||
msgstr "Espanja"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/fe-gtk/setup.c:135
|
||||
msgid "Swedish"
|
||||
msgstr "Ruotsi"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/fe-gtk/setup.c:136
|
||||
msgid "Thai"
|
||||
@ -4928,11 +4927,11 @@ msgstr "Thaimaa"
|
||||
|
||||
#: ../src/fe-gtk/setup.c:137
|
||||
msgid "Turkish"
|
||||
msgstr "Turkki"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/fe-gtk/setup.c:138
|
||||
msgid "Ukrainian"
|
||||
msgstr "Ukraina"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/fe-gtk/setup.c:139
|
||||
msgid "Vietnamese"
|
||||
@ -4940,7 +4939,7 @@ msgstr "Vietnam"
|
||||
|
||||
#: ../src/fe-gtk/setup.c:140
|
||||
msgid "Walloon"
|
||||
msgstr "Valloni"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/fe-gtk/setup.c:147 ../src/fe-gtk/setup.c:1814
|
||||
msgid "General"
|
||||
@ -4948,11 +4947,11 @@ msgstr "Yleiset"
|
||||
|
||||
#: ../src/fe-gtk/setup.c:149
|
||||
msgid "Language:"
|
||||
msgstr "Kieli:"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/fe-gtk/setup.c:150
|
||||
msgid "Main font:"
|
||||
msgstr "Pääfontti:"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/fe-gtk/setup.c:152
|
||||
msgid "Font:"
|
||||
@ -4996,7 +4995,7 @@ msgstr "Läpikuultavuuden säätö"
|
||||
|
||||
#: ../src/fe-gtk/setup.c:162
|
||||
msgid "Window Opacity:"
|
||||
msgstr "Ikkunan läpinäkyvyys:"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/fe-gtk/setup.c:164 ../src/fe-gtk/setup.c:538
|
||||
msgid "Time Stamps"
|
||||
@ -5064,7 +5063,7 @@ msgstr "Oikoluku"
|
||||
|
||||
#: ../src/fe-gtk/setup.c:195
|
||||
msgid "Dictionaries to use:"
|
||||
msgstr "Käytettävät sanakirjat:"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/fe-gtk/setup.c:197
|
||||
msgid ""
|
||||
@ -5098,7 +5097,7 @@ msgstr ""
|
||||
|
||||
#: ../src/fe-gtk/setup.c:205
|
||||
msgid "nicks."
|
||||
msgstr "nimeä."
|
||||
msgstr ""
|
||||
|
||||
#: ../src/fe-gtk/setup.c:213
|
||||
msgid "Graphical"
|
||||
@ -5232,7 +5231,7 @@ msgstr "Vain itse avatut"
|
||||
|
||||
#: ../src/fe-gtk/setup.c:293
|
||||
msgid "Automatic"
|
||||
msgstr "Automaattinen"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/fe-gtk/setup.c:294
|
||||
msgid "In an extra tab"
|
||||
@ -5473,7 +5472,7 @@ msgstr ""
|
||||
|
||||
#: ../src/fe-gtk/setup.c:431
|
||||
msgid "Automatically mark away/back"
|
||||
msgstr "Päivitä paikalla/poissa -statuksesi automaattisesti"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/fe-gtk/setup.c:431
|
||||
msgid "Automatically change status when hiding to tray."
|
||||
@ -5548,7 +5547,7 @@ msgstr ""
|
||||
|
||||
#: ../src/fe-gtk/setup.c:481 ../src/fe-gtk/setup.c:514
|
||||
msgid "Miscellaneous"
|
||||
msgstr "Sekalaiset"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/fe-gtk/setup.c:482
|
||||
msgid "Display MODEs in raw form"
|
||||
@ -5626,7 +5625,7 @@ msgstr ""
|
||||
|
||||
#: ../src/fe-gtk/setup.c:515
|
||||
msgid "Real name:"
|
||||
msgstr "Oikea nimi:"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/fe-gtk/setup.c:517
|
||||
msgid "Alternative fonts:"
|
||||
@ -5779,7 +5778,7 @@ msgstr "Käyttökelpoinen vain, kun tietokoneessa on monta osoitetta."
|
||||
|
||||
#: ../src/fe-gtk/setup.c:585
|
||||
msgid "File Transfers"
|
||||
msgstr "Tiedostojen siirrot"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/fe-gtk/setup.c:586
|
||||
msgid "Get my address from the IRC server"
|
||||
@ -5981,7 +5980,7 @@ msgstr "Keskustelu"
|
||||
|
||||
#: ../src/fe-gtk/setup.c:1816
|
||||
msgid "Sounds"
|
||||
msgstr "Äänet"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/fe-gtk/setup.c:1818
|
||||
msgid "Advanced"
|
||||
@ -6007,7 +6006,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 "Oikeaa nimeä ei voi jättää tyhjäksi."
|
||||
msgstr ""
|
||||
|
||||
#: ../src/fe-gtk/setup.c:2167
|
||||
msgid "Some settings were changed that require a restart to take full effect."
|
||||
@ -6084,7 +6083,7 @@ msgstr "Kokeile kaikki"
|
||||
|
||||
#: ../src/fe-gtk/textgui.c:485
|
||||
msgid "OK"
|
||||
msgstr "OK"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/fe-gtk/urlgrab.c:198
|
||||
msgid ": URL Grabber"
|
||||
|
46
po/fr.po
46
po/fr.po
@ -8,16 +8,14 @@
|
||||
# Calinou, 2014
|
||||
# Misdre <misdre@hexchat.misdre.info>, 2013
|
||||
# Misdre <misdre@hexchat.misdre.info>, 2013
|
||||
# Towinet, 2014
|
||||
# Calinou, 2013
|
||||
# Yannick Le Guen <leguen.yannick@gmail.com>, 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-07-21 15:47+0000\n"
|
||||
"Last-Translator: Towinet\n"
|
||||
"PO-Revision-Date: 2014-05-14 17:20+0000\n"
|
||||
"Last-Translator: TingPing <tingping@tingping.se>\n"
|
||||
"Language-Team: French (http://www.transifex.com/projects/p/hexchat/language/fr/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
@ -1418,7 +1416,7 @@ msgstr "Hôte de la personne"
|
||||
|
||||
#: ../src/common/text.c:1035
|
||||
msgid "The account of the person"
|
||||
msgstr "Le compte de la personne"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/common/text.c:1039 ../src/common/text.c:1046
|
||||
#: ../src/common/text.c:1053 ../src/common/text.c:1265
|
||||
@ -3213,7 +3211,7 @@ msgstr "_Télécharger"
|
||||
|
||||
#: ../src/fe-gtk/chanlist.c:806
|
||||
msgid "Save _List..."
|
||||
msgstr "Enregistrer la _Liste..."
|
||||
msgstr "Sauver la _Liste"
|
||||
|
||||
#. =============================================================
|
||||
#: ../src/fe-gtk/chanlist.c:819
|
||||
@ -3319,7 +3317,7 @@ msgstr "Envois"
|
||||
|
||||
#: ../src/fe-gtk/dccgui.c:858
|
||||
msgid "Downloads"
|
||||
msgstr "Récupérations"
|
||||
msgstr "Récupération"
|
||||
|
||||
#: ../src/fe-gtk/dccgui.c:863
|
||||
msgid "Details"
|
||||
@ -3456,7 +3454,7 @@ msgid ""
|
||||
"When run all \\n characters in Data 1 are used to deliminate separate "
|
||||
"commands so it is possible to run more than one command. If you want a \\ "
|
||||
"in the actual text run then enter \\\\"
|
||||
msgstr "La commande d'action Exécuter (Run) lance la donnée dans Data 1 telle que si elle avait été tapée dans la boîte de saisie dans laquelle vous pressez la séquence de touches. Ainsi elle peut contenir du texte (qui sera envoyé à la chaîne/personne), des commandes ou des commandes d'utilisateur. Lorsqu'elle est exécutée tous les caractères \\n dans Données 1 sont utilisés pour délimiter les commandes séparées, afin qu'il soit possible de faire fonctionner davantage qu'une commande. Si vous voulez un \\n dans le texte réel alors entrez \\\\"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/fe-gtk/fkeys.c:143
|
||||
msgid ""
|
||||
@ -3466,7 +3464,7 @@ msgid ""
|
||||
"switch to the page with the most recent and important activity (queries "
|
||||
"first, then channels with hilight, channels with dialogue, channels with "
|
||||
"other data)"
|
||||
msgstr "La page changements (Change Page) commande le basculement entre les pages du carnet. Si Donnée 2 est paramétrée à n'importe quoi alors le commutateur sera relatif à la position actuelle. Paramétrer Donnée 1 à auto afin de commuter vers la page ayant l'activité la plus récente et la plus fréquente (requêtes d'abord, puis canaux mis en évidence, canaux avec des dialogues, canaux avec d'autres données)"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/fe-gtk/fkeys.c:145
|
||||
msgid ""
|
||||
@ -3478,7 +3476,7 @@ msgstr "La commande Insert in Buffer insérera le contenu de Données 1 dans l
|
||||
msgid ""
|
||||
"The Scroll Page command scrolls the text widget up or down one page or one"
|
||||
" line. Set Data 1 to either Top, Bottom, Up, Down, +1 or -1."
|
||||
msgstr "La commande Scroll Page fait défiler le widget textuel vers le haut ou vers le bas d'une page ou d'une ligne. Définir Data 1 soit à Top, Bottom, Up, Down, +1 ou -1."
|
||||
msgstr ""
|
||||
|
||||
#: ../src/fe-gtk/fkeys.c:149
|
||||
msgid ""
|
||||
@ -3580,7 +3578,7 @@ msgstr "DCC"
|
||||
|
||||
#: ../src/fe-gtk/ignoregui.c:165
|
||||
msgid "Unignore"
|
||||
msgstr "Ne plus ignorer"
|
||||
msgstr "Ne plus exclure"
|
||||
|
||||
#: ../src/fe-gtk/ignoregui.c:293
|
||||
msgid "Are you sure you want to remove all ignores?"
|
||||
@ -3977,27 +3975,27 @@ msgstr "Éditer ce menu..."
|
||||
|
||||
#: ../src/fe-gtk/menu.c:1292
|
||||
msgid "Marker line disabled."
|
||||
msgstr "Ligne de repérage désactivée."
|
||||
msgstr ""
|
||||
|
||||
#: ../src/fe-gtk/menu.c:1298
|
||||
msgid "Marker line never set."
|
||||
msgstr "Ligne de repérage jamais définie."
|
||||
msgstr ""
|
||||
|
||||
#: ../src/fe-gtk/menu.c:1302
|
||||
msgid "Marker line reset manually."
|
||||
msgstr "Ligne de repérage repositionnée manuellement."
|
||||
msgstr ""
|
||||
|
||||
#: ../src/fe-gtk/menu.c:1304
|
||||
msgid "Marker line reset because exceeded scrollback limit."
|
||||
msgstr "Ligne de repérage repositionnée à cause de la limite de défilement."
|
||||
msgstr ""
|
||||
|
||||
#: ../src/fe-gtk/menu.c:1306
|
||||
msgid "Marker line reset by CLEAR command."
|
||||
msgstr "Ligne de repérage repositionnée avec la commande CLEAR."
|
||||
msgstr ""
|
||||
|
||||
#: ../src/fe-gtk/menu.c:1308
|
||||
msgid "Marker line state unknown."
|
||||
msgstr "État de la ligne de repérage inconnu."
|
||||
msgstr ""
|
||||
|
||||
#: ../src/fe-gtk/menu.c:1395
|
||||
msgid "Retrieve channel list..."
|
||||
@ -4329,7 +4327,7 @@ msgstr "Repositionner la ligne de repérage"
|
||||
|
||||
#: ../src/fe-gtk/menu.c:1823
|
||||
msgid "Move to Marker Line"
|
||||
msgstr "Aller à la ligne de repérage"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/fe-gtk/menu.c:1824
|
||||
msgid "_Copy Selection"
|
||||
@ -4590,7 +4588,7 @@ msgstr "Le nom d'utilisateur ne peut être vide."
|
||||
|
||||
#: ../src/fe-gtk/servlistgui.c:1578
|
||||
msgid "You must have two unique nick names."
|
||||
msgstr "Vous devez avoir deux pseudonymes uniques."
|
||||
msgstr ""
|
||||
|
||||
#: ../src/fe-gtk/servlistgui.c:1630
|
||||
msgid ""
|
||||
@ -5427,7 +5425,7 @@ msgstr "Faire clignoter l'icône de barre d'état"
|
||||
|
||||
#: ../src/fe-gtk/setup.c:404
|
||||
msgid "Bounce dock icon on:"
|
||||
msgstr "Faire rebondir l'icône du dock sur :"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/fe-gtk/setup.c:407 ../src/fe-gtk/setup.c:453
|
||||
msgid "Blink task bar on:"
|
||||
@ -5579,7 +5577,7 @@ msgstr "Cacher les messages d'entrée/sortie par défaut."
|
||||
|
||||
#: ../src/fe-gtk/setup.c:485
|
||||
msgid "Hide nick change messages"
|
||||
msgstr "Cacher les messages de changement de pseudonyme"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/fe-gtk/setup.c:492
|
||||
msgid "*!*@*.host"
|
||||
@ -5629,7 +5627,7 @@ msgstr "Ajouter automatiquement les informations de couleur"
|
||||
msgid ""
|
||||
"Automatically include color information in copied lines of text. Otherwise,"
|
||||
" include color information if the CONTROL key is held down while selecting."
|
||||
msgstr "Ajouter automatiquement les informations de couleurs dans les lignes de texte copiées. Sinon, la couleur sera ajoutée uniquement si la touche Control est appuyée lors de la sélection."
|
||||
msgstr "Ajouter automatiquement les informations de couleurs dans les lignes de texte copiées. Sinon, la couleur sera ajouté uniquement si la touche Control est appuyée lors de la sélection."
|
||||
|
||||
#: ../src/fe-gtk/setup.c:515
|
||||
msgid "Real name:"
|
||||
@ -5860,7 +5858,7 @@ msgstr "Sélectionner une image"
|
||||
|
||||
#: ../src/fe-gtk/setup.c:1088
|
||||
msgid "Select Download Folder"
|
||||
msgstr "Choisir le dossier pour la réception de fichiers"
|
||||
msgstr "Choisir le dossier pour le réception de fichiers"
|
||||
|
||||
#: ../src/fe-gtk/setup.c:1098
|
||||
msgid "Select font"
|
||||
@ -6091,7 +6089,7 @@ msgstr "Tout tester"
|
||||
|
||||
#: ../src/fe-gtk/textgui.c:485
|
||||
msgid "OK"
|
||||
msgstr "OK"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/fe-gtk/urlgrab.c:198
|
||||
msgid ": URL Grabber"
|
||||
|
4
po/id.po
4
po/id.po
@ -4,8 +4,8 @@
|
||||
#
|
||||
# Translators:
|
||||
# Andhika Padmawan <andhika.padmawan@gmail.com>, 2010
|
||||
# Rahmat Bambang <doplank@gmx.com>, 2012-2013
|
||||
# Rahmat Bambang <doplank@gmx.com>, 2013
|
||||
# doplank <doplank@gmx.com>, 2012-2013
|
||||
# doplank <doplank@gmx.com>, 2013
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: HexChat\n"
|
||||
|
543
po/ja_JP.po
543
po/ja_JP.po
File diff suppressed because it is too large
Load Diff
6
po/ko.po
6
po/ko.po
@ -3,15 +3,15 @@
|
||||
# This file is distributed under the same license as the PACKAGE package.
|
||||
#
|
||||
# Translators:
|
||||
# Seong-ho Cho <darkcircle.0426@gmail.com>, 2014
|
||||
# Seong-ho Cho <darkcircle.0426@gmail.com>, 2014
|
||||
# Darkcircle <darkcircle.0426@gmail.com>, 2014
|
||||
# Darkcircle <darkcircle.0426@gmail.com>, 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-15 13:09+0000\n"
|
||||
"Last-Translator: Seong-ho Cho <darkcircle.0426@gmail.com>\n"
|
||||
"Last-Translator: Darkcircle <darkcircle.0426@gmail.com>\n"
|
||||
"Language-Team: Korean (http://www.transifex.com/projects/p/hexchat/language/ko/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
|
4
po/ml.po
4
po/ml.po
@ -4,8 +4,8 @@
|
||||
#
|
||||
# Translators:
|
||||
# bviktor, 2012
|
||||
# Thorne Heathenspring <thorne@null.net>, 2013
|
||||
# Thorne Heathenspring <thorne@null.net>, 2012
|
||||
# Thorne <thorne@null.net>, 2013
|
||||
# Thorne <thorne@null.net>, 2012
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: HexChat\n"
|
||||
|
6
po/nb.po
6
po/nb.po
@ -3,9 +3,9 @@
|
||||
# This file is distributed under the same license as the PACKAGE package.
|
||||
#
|
||||
# Translators:
|
||||
# Xtreme Power <neethan98@hotmail.ca>, 2013
|
||||
# Thor K. H. <nitrolinken@gmail.com>, 2013
|
||||
# Thor K. H. <nitrolinken@gmail.com>, 2012-2013
|
||||
# xtremesmw <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"
|
||||
|
4
po/pt.po
4
po/pt.po
@ -3,8 +3,8 @@
|
||||
# This file is distributed under the same license as the PACKAGE package.
|
||||
#
|
||||
# Translators:
|
||||
# artur simões <artursimoes.pt@gmail.com>, 2013
|
||||
# artur simões <artursimoes.pt@gmail.com>, 2012-2013
|
||||
# artur_pt <artursimoes.pt@gmail.com>, 2013
|
||||
# artur_pt <artursimoes.pt@gmail.com>, 2012-2013
|
||||
# Sandro Amaral <sandro123iv@gmail.com>, 2013
|
||||
# Vitor Antunes <vhda@mega.ist.utl.pt>, 2004
|
||||
msgid ""
|
||||
|
159
po/pt_BR.po
159
po/pt_BR.po
@ -6,16 +6,15 @@
|
||||
# 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
|
||||
# Leonardo Pires Felix <leonardo@piresfelix.com>, 2013
|
||||
# Matheus Felipe Braga, 2014
|
||||
# Matheus Macabu <mkbu95@gmail.com>, 2012
|
||||
# Leonardopf <leonardo@piresfelix.com>, 2013
|
||||
# mkbu95 <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-06-05 15:02+0000\n"
|
||||
"Last-Translator: Matheus Felipe Braga\n"
|
||||
"PO-Revision-Date: 2014-05-14 17:20+0000\n"
|
||||
"Last-Translator: TingPing <tingping@tingping.se>\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"
|
||||
@ -230,11 +229,11 @@ msgstr "Enviar arquivo"
|
||||
|
||||
#: ../src/common/hexchat.c:921
|
||||
msgid "Dialog"
|
||||
msgstr "Diálogo"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/common/hexchat.c:930
|
||||
msgid "WhoIs"
|
||||
msgstr "Quem É"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/common/hexchat.c:931
|
||||
msgid "Send"
|
||||
@ -1466,7 +1465,7 @@ msgstr "Mensagem"
|
||||
#: ../src/common/text.c:1379 ../src/common/text.c:1507
|
||||
#: ../src/common/text.c:1549
|
||||
msgid "Server Name"
|
||||
msgstr "Servidor"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/common/text.c:1060
|
||||
msgid "Acknowledged Capabilities"
|
||||
@ -1714,7 +1713,7 @@ msgstr ""
|
||||
|
||||
#: ../src/common/text.c:1268
|
||||
msgid "Full name"
|
||||
msgstr "Nome completo"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/common/text.c:1273
|
||||
msgid "Channel Membership/\"is an IRC operator\""
|
||||
@ -1722,11 +1721,11 @@ msgstr ""
|
||||
|
||||
#: ../src/common/text.c:1278
|
||||
msgid "Server Information"
|
||||
msgstr "Informações do servidor"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/common/text.c:1283 ../src/common/text.c:1288
|
||||
msgid "Idle time"
|
||||
msgstr "Tempo inativo"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/common/text.c:1289
|
||||
msgid "Signon time"
|
||||
@ -1773,7 +1772,7 @@ msgstr ""
|
||||
#: ../src/fe-gtk/menu.c:1781 ../src/fe-gtk/setup.c:214
|
||||
#: ../src/fe-gtk/textgui.c:382
|
||||
msgid "Text"
|
||||
msgstr "Texto"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/common/text.c:1349
|
||||
msgid "Nick of person who invited you"
|
||||
@ -1793,16 +1792,16 @@ msgstr ""
|
||||
|
||||
#: ../src/common/text.c:1369 ../src/common/text.c:1515
|
||||
msgid "IP"
|
||||
msgstr "IP"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/common/text.c:1370 ../src/common/text.c:1406
|
||||
msgid "Port"
|
||||
msgstr "Porta"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/common/text.c:1380 ../src/fe-gtk/notifygui.c:125
|
||||
#: ../src/fe-gtk/setup.c:1820
|
||||
msgid "Network"
|
||||
msgstr "Rede"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/common/text.c:1385 ../src/common/text.c:1395
|
||||
msgid "Modes string"
|
||||
@ -1823,7 +1822,7 @@ msgstr ""
|
||||
#: ../src/common/text.c:1472 ../src/common/text.c:1481
|
||||
#: ../src/common/text.c:1487
|
||||
msgid "Filename"
|
||||
msgstr "Nome do arquivo"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/common/text.c:1423 ../src/common/text.c:1430
|
||||
msgid "Destination filename"
|
||||
@ -1843,7 +1842,7 @@ msgstr "Posição"
|
||||
|
||||
#: ../src/common/text.c:1488 ../src/fe-gtk/dccgui.c:817
|
||||
msgid "Size"
|
||||
msgstr "Tamanho"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/common/text.c:1493
|
||||
msgid "DCC String"
|
||||
@ -1993,7 +1992,7 @@ msgstr ""
|
||||
|
||||
#: ../src/common/util.c:998
|
||||
msgid "Reverse DNS"
|
||||
msgstr "DNS Reverso"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/common/util.c:999
|
||||
msgid "American Samoa"
|
||||
@ -2081,7 +2080,7 @@ msgstr ""
|
||||
|
||||
#: ../src/common/util.c:1020
|
||||
msgid "Brazil"
|
||||
msgstr "Brasil"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/common/util.c:1021
|
||||
msgid "Bahamas"
|
||||
@ -2237,7 +2236,7 @@ msgstr ""
|
||||
|
||||
#: ../src/common/util.c:1059
|
||||
msgid "Egypt"
|
||||
msgstr "Egito"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/common/util.c:1060
|
||||
msgid "Western Sahara"
|
||||
@ -3057,7 +3056,7 @@ msgstr ""
|
||||
|
||||
#: ../src/common/dbus/dbus-plugin.c:30
|
||||
msgid "remote access"
|
||||
msgstr "acesso remoto"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/common/dbus/dbus-plugin.c:31
|
||||
msgid "plugin for remote access using DBUS"
|
||||
@ -3143,11 +3142,11 @@ msgstr ""
|
||||
|
||||
#: ../src/fe-gtk/banlist.c:728
|
||||
msgid "From"
|
||||
msgstr "De"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/fe-gtk/banlist.c:729
|
||||
msgid "Date"
|
||||
msgstr "Data"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/fe-gtk/banlist.c:785
|
||||
msgid "You can only open the Ban List window while in a channel tab."
|
||||
@ -3164,7 +3163,7 @@ msgstr ": Lista de banidos (%s)"
|
||||
|
||||
#: ../src/fe-gtk/banlist.c:848 ../src/fe-gtk/notifygui.c:425
|
||||
msgid "Remove"
|
||||
msgstr "Remover"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/fe-gtk/banlist.c:850
|
||||
msgid "Crop"
|
||||
@ -3172,7 +3171,7 @@ msgstr ""
|
||||
|
||||
#: ../src/fe-gtk/banlist.c:854
|
||||
msgid "Refresh"
|
||||
msgstr "Atualizar"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/fe-gtk/chanlist.c:98
|
||||
#, c-format
|
||||
@ -3186,7 +3185,7 @@ msgstr ""
|
||||
|
||||
#: ../src/fe-gtk/chanlist.c:624 ../src/fe-gtk/chanlist.c:812
|
||||
msgid "_Join Channel"
|
||||
msgstr "_Entrar no Canal"
|
||||
msgstr "E_ntrar no Canal"
|
||||
|
||||
#: ../src/fe-gtk/chanlist.c:626
|
||||
msgid "_Copy Channel Name"
|
||||
@ -3203,7 +3202,7 @@ msgstr ": Lista de Canais (%s)"
|
||||
|
||||
#: ../src/fe-gtk/chanlist.c:794
|
||||
msgid "_Search"
|
||||
msgstr "_Procurar"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/fe-gtk/chanlist.c:800
|
||||
msgid "_Download List"
|
||||
@ -3216,7 +3215,7 @@ msgstr "Salvar _Lista..."
|
||||
#. =============================================================
|
||||
#: ../src/fe-gtk/chanlist.c:819
|
||||
msgid "Show only:"
|
||||
msgstr "Exibir apenas:"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/fe-gtk/chanlist.c:831
|
||||
msgid "channels with"
|
||||
@ -3224,7 +3223,7 @@ msgstr "canais com"
|
||||
|
||||
#: ../src/fe-gtk/chanlist.c:844
|
||||
msgid "to"
|
||||
msgstr "para"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/fe-gtk/chanlist.c:856
|
||||
msgid "users."
|
||||
@ -3246,7 +3245,7 @@ msgstr "Tipo de pesquisa:"
|
||||
|
||||
#: ../src/fe-gtk/chanlist.c:901
|
||||
msgid "Simple Search"
|
||||
msgstr "Pesquisa Simples"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/fe-gtk/chanlist.c:902
|
||||
msgid "Pattern Match (Wildcards)"
|
||||
@ -3264,12 +3263,12 @@ msgstr "Encontrar:"
|
||||
#: ../src/fe-gtk/dccgui.c:150
|
||||
#, c-format
|
||||
msgid "Send file to %s"
|
||||
msgstr "Enviar arquivo para %s"
|
||||
msgstr ""
|
||||
|
||||
#. unknown error
|
||||
#: ../src/fe-gtk/dccgui.c:526
|
||||
msgid "That file is not resumable."
|
||||
msgstr "Este arquivo não é resumivel."
|
||||
msgstr ""
|
||||
|
||||
#: ../src/fe-gtk/dccgui.c:530
|
||||
#, c-format
|
||||
@ -3277,7 +3276,7 @@ msgid ""
|
||||
"Cannot access file: %s\n"
|
||||
"%s.\n"
|
||||
"Resuming not possible."
|
||||
msgstr "Falha ao acessar arquivo: %s\n%s.\nResumir não é possivel."
|
||||
msgstr ""
|
||||
|
||||
#: ../src/fe-gtk/dccgui.c:537
|
||||
msgid ""
|
||||
@ -3296,11 +3295,11 @@ msgstr ""
|
||||
#: ../src/fe-gtk/dccgui.c:815 ../src/fe-gtk/dccgui.c:1056
|
||||
#: ../src/fe-gtk/notifygui.c:124
|
||||
msgid "Status"
|
||||
msgstr "Status"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/fe-gtk/dccgui.c:816 ../src/fe-gtk/plugingui.c:65
|
||||
msgid "File"
|
||||
msgstr "Arquivo"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/fe-gtk/dccgui.c:821
|
||||
msgid "ETA"
|
||||
@ -3313,7 +3312,7 @@ msgstr "Ambos"
|
||||
|
||||
#: ../src/fe-gtk/dccgui.c:852
|
||||
msgid "Uploads"
|
||||
msgstr "Uploads"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/fe-gtk/dccgui.c:858
|
||||
msgid "Downloads"
|
||||
@ -3321,7 +3320,7 @@ msgstr "Downloads"
|
||||
|
||||
#: ../src/fe-gtk/dccgui.c:863
|
||||
msgid "Details"
|
||||
msgstr "Detalhes"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/fe-gtk/dccgui.c:874
|
||||
msgid "File:"
|
||||
@ -3333,19 +3332,19 @@ msgstr "Endereço:"
|
||||
|
||||
#: ../src/fe-gtk/dccgui.c:881 ../src/fe-gtk/dccgui.c:1080
|
||||
msgid "Abort"
|
||||
msgstr "Abortar"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/fe-gtk/dccgui.c:882 ../src/fe-gtk/dccgui.c:1081
|
||||
msgid "Accept"
|
||||
msgstr "Aceitar"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/fe-gtk/dccgui.c:883
|
||||
msgid "Resume"
|
||||
msgstr "Resumir"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/fe-gtk/dccgui.c:885
|
||||
msgid "Open Folder..."
|
||||
msgstr "Abrir Pasta..."
|
||||
msgstr ""
|
||||
|
||||
#: ../src/fe-gtk/dccgui.c:1045
|
||||
msgid ": DCC Chat List"
|
||||
@ -3357,7 +3356,7 @@ msgstr ""
|
||||
|
||||
#: ../src/fe-gtk/dccgui.c:1059
|
||||
msgid "Sent"
|
||||
msgstr "Enviado"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/fe-gtk/dccgui.c:1060
|
||||
msgid "Start Time"
|
||||
@ -3370,7 +3369,7 @@ msgstr ""
|
||||
#: ../src/fe-gtk/editlist.c:360 ../src/fe-gtk/fkeys.c:828
|
||||
#: ../src/fe-gtk/ignoregui.c:383
|
||||
msgid "Delete"
|
||||
msgstr "Apagar"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/fe-gtk/editlist.c:362 ../src/fe-gtk/fkeys.c:830
|
||||
msgid "Cancel"
|
||||
@ -3378,7 +3377,7 @@ msgstr "Cancelar"
|
||||
|
||||
#: ../src/fe-gtk/editlist.c:364 ../src/fe-gtk/fkeys.c:832
|
||||
msgid "Save"
|
||||
msgstr "Salvar"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/fe-gtk/fe-gtk.c:80
|
||||
msgid "Don't auto connect to servers"
|
||||
@ -3390,7 +3389,7 @@ msgstr ""
|
||||
|
||||
#: ../src/fe-gtk/fe-gtk.c:82
|
||||
msgid "Don't auto load any plugins"
|
||||
msgstr "Não carregar automaticamente nenhum plugin"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/fe-gtk/fe-gtk.c:83
|
||||
msgid "Show plugin/script auto-load directory"
|
||||
@ -3398,7 +3397,7 @@ msgstr ""
|
||||
|
||||
#: ../src/fe-gtk/fe-gtk.c:84
|
||||
msgid "Show user config directory"
|
||||
msgstr "Exibir diretório de configuração do usuário"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/fe-gtk/fe-gtk.c:85 ../src/fe-gtk/fe-gtk.c:92
|
||||
msgid "Open an irc://server:port/channel?key URL"
|
||||
@ -3414,15 +3413,15 @@ msgstr ""
|
||||
|
||||
#: ../src/fe-gtk/fe-gtk.c:90
|
||||
msgid "Begin minimized. Level 0=Normal 1=Iconified 2=Tray"
|
||||
msgstr "Iniciar minimizado. Nivel 0=Normal 1=Iconified 2=Bandeja"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/fe-gtk/fe-gtk.c:90
|
||||
msgid "level"
|
||||
msgstr "nivel"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/fe-gtk/fe-gtk.c:91
|
||||
msgid "Show version information"
|
||||
msgstr "Exibir informação da versão"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/fe-gtk/fe-gtk.c:268
|
||||
#, c-format
|
||||
@ -3562,11 +3561,11 @@ msgstr ""
|
||||
|
||||
#: ../src/fe-gtk/ignoregui.c:160
|
||||
msgid "Private"
|
||||
msgstr "Privado"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/fe-gtk/ignoregui.c:161
|
||||
msgid "Notice"
|
||||
msgstr "Aviso"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/fe-gtk/ignoregui.c:162
|
||||
msgid "CTCP"
|
||||
@ -3602,11 +3601,11 @@ msgstr "Canal:"
|
||||
|
||||
#: ../src/fe-gtk/ignoregui.c:367
|
||||
msgid "Private:"
|
||||
msgstr "Privado:"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/fe-gtk/ignoregui.c:368
|
||||
msgid "Notice:"
|
||||
msgstr "Aviso:"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/fe-gtk/ignoregui.c:369
|
||||
msgid "CTCP:"
|
||||
@ -3622,7 +3621,7 @@ msgstr "Adicionar..."
|
||||
|
||||
#: ../src/fe-gtk/joind.c:91
|
||||
msgid "Channel name too short, try again."
|
||||
msgstr "Nome do canal pequeno, tente novamente."
|
||||
msgstr ""
|
||||
|
||||
#: ../src/fe-gtk/joind.c:133
|
||||
msgid ": Connection Complete"
|
||||
@ -3641,11 +3640,11 @@ msgstr ""
|
||||
|
||||
#: ../src/fe-gtk/joind.c:176
|
||||
msgid "What would you like to do next?"
|
||||
msgstr "O que voce gostaria de fazer em seguida?"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/fe-gtk/joind.c:181
|
||||
msgid "_Nothing, I'll join a channel later."
|
||||
msgstr "_Nada, entrarei em um canal depois."
|
||||
msgstr ""
|
||||
|
||||
#: ../src/fe-gtk/joind.c:190
|
||||
msgid "_Join this channel:"
|
||||
@ -3653,7 +3652,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 "Se voce sabe o nome do canal que deseja entrar, digite aqui."
|
||||
msgstr ""
|
||||
|
||||
#: ../src/fe-gtk/joind.c:209
|
||||
msgid "O_pen the Channel-List window."
|
||||
@ -3674,7 +3673,7 @@ msgstr "Diálogo com"
|
||||
#: ../src/fe-gtk/maingui.c:695
|
||||
#, c-format
|
||||
msgid "Topic for %s is: %s"
|
||||
msgstr "Tópico para %s é: %s"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/fe-gtk/maingui.c:700
|
||||
msgid "No topic is set"
|
||||
@ -3689,28 +3688,28 @@ msgstr ""
|
||||
|
||||
#: ../src/fe-gtk/maingui.c:1203
|
||||
msgid "Quit HexChat?"
|
||||
msgstr "Sair?"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/fe-gtk/maingui.c:1223
|
||||
msgid "Don't ask next time."
|
||||
msgstr "Não perguntar novamente."
|
||||
msgstr ""
|
||||
|
||||
#: ../src/fe-gtk/maingui.c:1229
|
||||
#, c-format
|
||||
msgid "You are connected to %i IRC networks."
|
||||
msgstr "Voce esta conectado a %i redes IRC."
|
||||
msgstr ""
|
||||
|
||||
#: ../src/fe-gtk/maingui.c:1231
|
||||
msgid "Are you sure you want to quit?"
|
||||
msgstr "Voce tem certeza que deseja sair?"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/fe-gtk/maingui.c:1233
|
||||
msgid "Some file transfers are still active."
|
||||
msgstr "Algumas transferencias de arquivos continuam ativas."
|
||||
msgstr ""
|
||||
|
||||
#: ../src/fe-gtk/maingui.c:1251
|
||||
msgid "_Minimize to Tray"
|
||||
msgstr "_Minimizar para bandeja"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/fe-gtk/maingui.c:1471
|
||||
msgid "Insert Attribute or Color Code"
|
||||
@ -3718,7 +3717,7 @@ msgstr ""
|
||||
|
||||
#: ../src/fe-gtk/maingui.c:1473
|
||||
msgid "<b>Bold</b>"
|
||||
msgstr "<b>Negrito</b>"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/fe-gtk/maingui.c:1474
|
||||
msgid "<u>Underline</u>"
|
||||
@ -3808,15 +3807,15 @@ msgstr ""
|
||||
|
||||
#: ../src/fe-gtk/maingui.c:2069
|
||||
msgid "Topic Protection"
|
||||
msgstr "Tópico Protegido"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/fe-gtk/maingui.c:2070
|
||||
msgid "Invite Only"
|
||||
msgstr "Apenas convidados"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/fe-gtk/maingui.c:2071
|
||||
msgid "Moderated"
|
||||
msgstr "Moderado"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/fe-gtk/maingui.c:2072
|
||||
msgid "Ban List"
|
||||
@ -3832,7 +3831,7 @@ msgstr "Limite de Usuários"
|
||||
|
||||
#: ../src/fe-gtk/maingui.c:2196
|
||||
msgid "Show/Hide userlist"
|
||||
msgstr "Exibir/Ocultar lista usuários"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/fe-gtk/maingui.c:2609
|
||||
msgid "Enter new nickname:"
|
||||
@ -3915,7 +3914,7 @@ msgstr ""
|
||||
|
||||
#: ../src/fe-gtk/menu.c:666 ../src/fe-gtk/menu.c:669
|
||||
msgid "Last Msg:"
|
||||
msgstr "Ultima msg:"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/fe-gtk/menu.c:679
|
||||
msgid "Away Msg:"
|
||||
@ -3934,11 +3933,11 @@ msgstr ""
|
||||
|
||||
#: ../src/fe-gtk/menu.c:970
|
||||
msgid "Open Link in Browser"
|
||||
msgstr "Abrir Link no Navegador"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/fe-gtk/menu.c:971
|
||||
msgid "Copy Selected Link"
|
||||
msgstr "Copiar Link Selecionado"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/fe-gtk/menu.c:1033 ../src/fe-gtk/menu.c:1393
|
||||
msgid "Join Channel"
|
||||
@ -4095,7 +4094,7 @@ msgstr ": Menu contextual da lista de usuários"
|
||||
|
||||
#: ../src/fe-gtk/menu.c:1541
|
||||
msgid "Replace with"
|
||||
msgstr "Substituir com"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/fe-gtk/menu.c:1541
|
||||
msgid ": Replace"
|
||||
@ -4339,19 +4338,19 @@ msgstr ""
|
||||
|
||||
#: ../src/fe-gtk/menu.c:1826
|
||||
msgid "Save Text..."
|
||||
msgstr "Salvar Texto..."
|
||||
msgstr ""
|
||||
|
||||
#: ../src/fe-gtk/menu.c:1828
|
||||
msgid "Search"
|
||||
msgstr "Procurar"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/fe-gtk/menu.c:1829
|
||||
msgid "Search Text..."
|
||||
msgstr "Procurar Texto..."
|
||||
msgstr ""
|
||||
|
||||
#: ../src/fe-gtk/menu.c:1830
|
||||
msgid "Search Next"
|
||||
msgstr "Procurar Proximo"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/fe-gtk/menu.c:1831
|
||||
msgid "Search Previous"
|
||||
@ -4376,7 +4375,7 @@ msgstr ""
|
||||
|
||||
#: ../src/fe-gtk/notifygui.c:123 ../src/fe-gtk/plugingui.c:63
|
||||
msgid "Name"
|
||||
msgstr "Nome"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/fe-gtk/notifygui.c:126
|
||||
msgid "Last Seen"
|
||||
@ -4388,7 +4387,7 @@ msgstr ""
|
||||
|
||||
#: ../src/fe-gtk/notifygui.c:188 ../src/fe-gtk/setup.c:285
|
||||
msgid "Never"
|
||||
msgstr "Nunca"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/fe-gtk/notifygui.c:193 ../src/fe-gtk/notifygui.c:222
|
||||
#, c-format
|
||||
@ -4537,7 +4536,7 @@ msgstr ""
|
||||
|
||||
#: ../src/fe-gtk/plugingui.c:66 ../src/fe-gtk/textgui.c:428
|
||||
msgid "Description"
|
||||
msgstr "Descrição"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/fe-gtk/plugingui.c:163
|
||||
msgid "Select a Plugin or Script to load"
|
||||
|
2
po/ru.po
2
po/ru.po
@ -4,7 +4,7 @@
|
||||
#
|
||||
# Translators:
|
||||
# Aleksandr P <davian818@gmail.com>, 2010
|
||||
# Andrey Vihrov <andrey.vihrov@gmail.com>, 2013
|
||||
# andreyv <andrey.vihrov@gmail.com>, 2013
|
||||
# Valek Filippov <frob@df.ru>, 2001
|
||||
# Volosenkov Dmitry <_bil_@mail.ru>, 1999
|
||||
msgid ""
|
||||
|
2
po/sr.po
2
po/sr.po
@ -4,7 +4,7 @@
|
||||
#
|
||||
# Translators:
|
||||
# o Zoltan Čala <zolika@sezampro.yu>, 1999
|
||||
# Velimir Majstorov <majstorov@gmail.com>, 2013
|
||||
# Ortak Velja <majstorov@gmail.com>, 2013
|
||||
# Zlatan Vasović <legospace9876@gmail.com>, 2013-2014
|
||||
msgid ""
|
||||
msgstr ""
|
||||
|
@ -3,7 +3,7 @@
|
||||
# This file is distributed under the same license as the PACKAGE package.
|
||||
#
|
||||
# Translators:
|
||||
# Velimir Majstorov <majstorov@gmail.com>, 2013
|
||||
# Ortak Velja <majstorov@gmail.com>, 2013
|
||||
# o Zoltan Čala <zolika@sezampro.yu>, 1999
|
||||
# Zlatan Vasović <legospace9876@gmail.com>, 2013
|
||||
msgid ""
|
||||
|
2
po/sv.po
2
po/sv.po
@ -3,7 +3,7 @@
|
||||
# This file is distributed under the same license as the PACKAGE package.
|
||||
#
|
||||
# Translators:
|
||||
# Jakob <jakob@knugen.nu>, 2012
|
||||
# androidnisse <jakob@knugen.nu>, 2012
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: HexChat\n"
|
||||
|
19
po/tr.po
19
po/tr.po
@ -3,19 +3,18 @@
|
||||
# This file is distributed under the same license as the PACKAGE package.
|
||||
#
|
||||
# Translators:
|
||||
# Atilla Öntaş <tarakbumba@gmail.com>, 2014
|
||||
# Demiray Muhterem <mdemiray@msn.com>, 2014
|
||||
# tulliana <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-07-14 10:59+0000\n"
|
||||
"Last-Translator: Atilla Öntaş <tarakbumba@gmail.com>\n"
|
||||
"PO-Revision-Date: 2014-05-14 17:20+0000\n"
|
||||
"Last-Translator: TingPing <tingping@tingping.se>\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"
|
||||
@ -404,13 +403,13 @@ msgstr "BAN <maske> [<yasaktipi>], maskeye uygun herkesi kanalda yasaklar. Zaten
|
||||
|
||||
#: ../src/common/outbound.c:3913
|
||||
msgid "CHANOPT [-quiet] <variable> [<value>]"
|
||||
msgstr "CHANOPT [-quiet] <değişken> [<değer>]"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/common/outbound.c:3914
|
||||
msgid ""
|
||||
"CHARSET [<encoding>], get or set the encoding used for the current "
|
||||
"connection"
|
||||
msgstr "CHARSET [<kodlama>], geçerli bağlantı için kullanılan kodlamayı getir veya ayarla"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/common/outbound.c:3915
|
||||
msgid ""
|
||||
@ -424,19 +423,19 @@ msgstr ""
|
||||
|
||||
#: ../src/common/outbound.c:3919
|
||||
msgid "COUNTRY [-s] <code|wildcard>, finds a country code, eg: au = australia"
|
||||
msgstr "COUNTRY [-s] <kodlama/değişken ifade>, bir ülke kodlaması bulur, mesela: au = australia"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/common/outbound.c:3921
|
||||
msgid ""
|
||||
"CTCP <nick> <message>, send the CTCP message to nick, common messages are "
|
||||
"VERSION and USERINFO"
|
||||
msgstr "CTCP <rumuz> <ileti>,CTCP iletisinii rumuza gönder, ortak iletiler VERSION ve USERINFO' dur"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/common/outbound.c:3923
|
||||
msgid ""
|
||||
"CYCLE [<channel>], parts the current or given channel and immediately "
|
||||
"rejoins"
|
||||
msgstr "CYCLE [<kanall>], geçerli olan veya verilen kanalı böler ve hemen yeniden katılır"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/common/outbound.c:3925
|
||||
msgid ""
|
||||
|
40
po/zh_CN.po
40
po/zh_CN.po
@ -5,16 +5,14 @@
|
||||
# Translators:
|
||||
# Aron Xu <happyaron.xu@gmail.com>, 2010
|
||||
# Dalin <ayi880@hotmail.com>, 2003
|
||||
# Eleanor Chen <chenyueg@gmail.com>, 2010
|
||||
# highwind <highwindmx@126.com>, 2014
|
||||
# bababababanana1, 2014
|
||||
# Michael Jay Tong <michaeljayt@gmail.com>, 2014
|
||||
# chenyueg <chenyueg@gmail.com>, 2010
|
||||
# michaeljayt <michaeljayt@gmail.com>, 2014
|
||||
# Minor revision by Walte <webmaster@www.linuxfans.org>, 2003
|
||||
# Rongjun Mu <elanmu@sina.com>, 2003
|
||||
# Rongjun Mu <rongjunmu+i18n@gmail.com>, 2004
|
||||
# Sarah Smith <sarahs@redhat.com>, 2003
|
||||
# SEPTEM <septeman@gmail.com>, 2006
|
||||
# Tong Hui <tonghuix@gmail.com>, 2014
|
||||
# tonghuix <tonghuix@gmail.com>, 2014
|
||||
# Zhuyuan Liu <gtkdict@yahoo.com.cn>, 2005
|
||||
# Zong Yaotang <zong@cosix.com.au>, 2002
|
||||
msgid ""
|
||||
@ -22,8 +20,8 @@ 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-07-16 13:16+0000\n"
|
||||
"Last-Translator: bababababanana1\n"
|
||||
"PO-Revision-Date: 2014-05-14 17:20+0000\n"
|
||||
"Last-Translator: TingPing <tingping@tingping.se>\n"
|
||||
"Language-Team: Chinese (China) (http://www.transifex.com/projects/p/hexchat/language/zh_CN/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
@ -291,7 +289,7 @@ msgstr "否 "
|
||||
#: ../src/common/ignore.c:385
|
||||
#, c-format
|
||||
msgid "You are being CTCP flooded from %s, ignoring %s\n"
|
||||
msgstr "您正受到来自 %s 的洗屏攻击,忽略 %s\n"
|
||||
msgstr "您正受到来自 %s 的 CTCP 洪水攻击,忽略 %s\n"
|
||||
|
||||
#: ../src/common/ignore.c:410
|
||||
#, c-format
|
||||
@ -310,7 +308,7 @@ msgstr " %-20s 离线\n"
|
||||
|
||||
#: ../src/common/outbound.c:72
|
||||
msgid "No channel joined. Try /join #<channel>\n"
|
||||
msgstr "没有进入任何频道。请尝试输入 /join #<channel>\n"
|
||||
msgstr "没有进入任何频道。请尝试 /join #<channel>\n"
|
||||
|
||||
#: ../src/common/outbound.c:78
|
||||
msgid "Not connected. Try /server <host> [<port>]\n"
|
||||
@ -1424,7 +1422,7 @@ msgstr "此人的主机名"
|
||||
|
||||
#: ../src/common/text.c:1035
|
||||
msgid "The account of the person"
|
||||
msgstr "这个人的帐号"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/common/text.c:1039 ../src/common/text.c:1046
|
||||
#: ../src/common/text.c:1053 ../src/common/text.c:1265
|
||||
@ -3983,27 +3981,27 @@ msgstr "编辑此菜单..."
|
||||
|
||||
#: ../src/fe-gtk/menu.c:1292
|
||||
msgid "Marker line disabled."
|
||||
msgstr "标记线已禁用."
|
||||
msgstr ""
|
||||
|
||||
#: ../src/fe-gtk/menu.c:1298
|
||||
msgid "Marker line never set."
|
||||
msgstr "标记线永不设置."
|
||||
msgstr ""
|
||||
|
||||
#: ../src/fe-gtk/menu.c:1302
|
||||
msgid "Marker line reset manually."
|
||||
msgstr "标记线手动重设."
|
||||
msgstr ""
|
||||
|
||||
#: ../src/fe-gtk/menu.c:1304
|
||||
msgid "Marker line reset because exceeded scrollback limit."
|
||||
msgstr "因超越回滚限制重设标记线."
|
||||
msgstr ""
|
||||
|
||||
#: ../src/fe-gtk/menu.c:1306
|
||||
msgid "Marker line reset by CLEAR command."
|
||||
msgstr "使用CLEAR命令重设标记线."
|
||||
msgstr ""
|
||||
|
||||
#: ../src/fe-gtk/menu.c:1308
|
||||
msgid "Marker line state unknown."
|
||||
msgstr "标记线状态未知."
|
||||
msgstr ""
|
||||
|
||||
#: ../src/fe-gtk/menu.c:1395
|
||||
msgid "Retrieve channel list..."
|
||||
@ -4335,7 +4333,7 @@ msgstr "重置标记线"
|
||||
|
||||
#: ../src/fe-gtk/menu.c:1823
|
||||
msgid "Move to Marker Line"
|
||||
msgstr "移动至标记线."
|
||||
msgstr ""
|
||||
|
||||
#: ../src/fe-gtk/menu.c:1824
|
||||
msgid "_Copy Selection"
|
||||
@ -4596,7 +4594,7 @@ msgstr "用户名不可留空。"
|
||||
|
||||
#: ../src/fe-gtk/servlistgui.c:1578
|
||||
msgid "You must have two unique nick names."
|
||||
msgstr "您必须拥有两个昵称."
|
||||
msgstr ""
|
||||
|
||||
#: ../src/fe-gtk/servlistgui.c:1630
|
||||
msgid ""
|
||||
@ -5433,7 +5431,7 @@ msgstr "托盘图标闪烁于:"
|
||||
|
||||
#: ../src/fe-gtk/setup.c:404
|
||||
msgid "Bounce dock icon on:"
|
||||
msgstr "弹跳托盘图标于:"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/fe-gtk/setup.c:407 ../src/fe-gtk/setup.c:453
|
||||
msgid "Blink task bar on:"
|
||||
@ -5585,7 +5583,7 @@ msgstr "默认隐藏频道里的进入/离开信息"
|
||||
|
||||
#: ../src/fe-gtk/setup.c:485
|
||||
msgid "Hide nick change messages"
|
||||
msgstr "隐藏昵称变更信息"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/fe-gtk/setup.c:492
|
||||
msgid "*!*@*.host"
|
||||
@ -6097,7 +6095,7 @@ msgstr "测试全部"
|
||||
|
||||
#: ../src/fe-gtk/textgui.c:485
|
||||
msgid "OK"
|
||||
msgstr "确认"
|
||||
msgstr ""
|
||||
|
||||
#: ../src/fe-gtk/urlgrab.c:198
|
||||
msgid ": URL Grabber"
|
||||
|
@ -1,4 +1,4 @@
|
||||
# HexChat [](https://travis-ci.org/hexchat/hexchat) [](http://nekomimi.cloudapp.net:8080/job/hexchat/) [](https://bitdeli.com/free "Bitdeli Badge")
|
||||
# HexChat [](https://travis-ci.org/hexchat/hexchat) [](http://nekomimi.cloudapp.net:8080/job/hexchat/)
|
||||
|
||||
HexChat is an IRC client for Windows and UNIX-like operating systems.
|
||||
See [IRCHelp.org](http://irchelp.org) for information about IRC in general.
|
||||
|
@ -69,14 +69,14 @@ libhexchatcommon_a_CFLAGS = $(LIBPROXY_CFLAGS)
|
||||
|
||||
textenums.h: textevents.h
|
||||
|
||||
textevents.h: textevents.in make-te
|
||||
$(AM_V_GEN) ./make-te < textevents.in > textevents.h 2> textenums.h
|
||||
textevents.h: $(srcdir)/textevents.in make-te
|
||||
$(AM_V_GEN) ./make-te < $< > $@ 2> textenums.h
|
||||
|
||||
marshal.h: marshalers.list
|
||||
$(AM_V_GEN) $(GLIB_GENMARSHAL) --prefix=_hexchat_marshal --header $(srcdir)/marshalers.list > $@
|
||||
marshal.h: $(srcdir)/marshalers.list
|
||||
$(AM_V_GEN) $(GLIB_GENMARSHAL) --prefix=_hexchat_marshal --header $< > $@
|
||||
|
||||
marshal.c: marshalers.list
|
||||
$(AM_V_GEN) $(GLIB_GENMARSHAL) --prefix=_hexchat_marshal --body $(srcdir)/marshalers.list > $@
|
||||
marshal.c: $(srcdir)/marshalers.list
|
||||
$(AM_V_GEN) $(GLIB_GENMARSHAL) --prefix=_hexchat_marshal --body $< > $@
|
||||
|
||||
|
||||
BUILT_SOURCES = textenums.h textevents.h marshal.c marshal.h
|
||||
|
@ -313,13 +313,10 @@ get_xdir (void)
|
||||
if (portable_mode () || SHGetKnownFolderPath (&FOLDERID_RoamingAppData, 0, NULL, &roaming_path_wide) != S_OK)
|
||||
{
|
||||
char *path;
|
||||
char file[MAX_PATH];
|
||||
HMODULE hModule;
|
||||
|
||||
hModule = GetModuleHandle (NULL);
|
||||
if (GetModuleFileName (hModule, file, sizeof(file)))
|
||||
|
||||
path = g_win32_get_package_installation_directory_of_module (NULL);
|
||||
if (path)
|
||||
{
|
||||
path = g_path_get_dirname (file);
|
||||
xdir = g_build_filename (path, "config", NULL);
|
||||
g_free (path);
|
||||
}
|
||||
@ -785,6 +782,7 @@ load_default_config(void)
|
||||
prefs.hex_input_tray_hilight = 1;
|
||||
prefs.hex_input_tray_priv = 1;
|
||||
prefs.hex_irc_cap_server_time = 1;
|
||||
prefs.hex_irc_logging = 1;
|
||||
prefs.hex_irc_who_join = 1; /* Can kick with inordinate amount of channels, required for some of our features though, TODO: add cap like away check? */
|
||||
prefs.hex_irc_whois_front = 1;
|
||||
prefs.hex_net_auto_reconnect = 1;
|
||||
|
@ -77,8 +77,8 @@
|
||||
<ClCompile Include="hexchat.c" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="..\..\config-win32.h.tt" />
|
||||
<ClInclude Include="..\..\config-win32.h" />
|
||||
<None Include="..\..\win32\config.h.tt" />
|
||||
<ClInclude Include="..\..\config.h" />
|
||||
</ItemGroup>
|
||||
<PropertyGroup Label="Globals">
|
||||
<ProjectGuid>{87554B59-006C-4D94-9714-897B27067BA3}</ProjectGuid>
|
||||
@ -160,7 +160,7 @@
|
||||
<PreBuildEvent>
|
||||
<Command><![CDATA[
|
||||
SET SOLUTIONDIR=$(SolutionDir)..\
|
||||
powershell -File "$(SolutionDir)..\version-template.ps1" "$(SolutionDir)..\config-win32.h.tt" "$(SolutionDir)..\config-win32.h"
|
||||
powershell -File "$(SolutionDir)..\win32\version-template.ps1" "$(SolutionDir)..\win32\config.h.tt" "$(SolutionDir)..\config.h"
|
||||
"$(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"
|
||||
|
||||
|
@ -104,7 +104,7 @@
|
||||
<ClInclude Include="hexchat-plugin.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\config-win32.h">
|
||||
<ClInclude Include="..\..\config.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="typedef.h">
|
||||
@ -195,6 +195,6 @@
|
||||
</ClCompile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="..\..\config-win32.h.tt" />
|
||||
<None Include="..\..\win32\config.h.tt" />
|
||||
</ItemGroup>
|
||||
</Project>
|
@ -88,11 +88,19 @@ struct _hexchat_plugin
|
||||
void (*hexchat_print) (hexchat_plugin *ph,
|
||||
const char *text);
|
||||
void (*hexchat_printf) (hexchat_plugin *ph,
|
||||
const char *format, ...);
|
||||
const char *format, ...)
|
||||
#ifdef __GNUC__
|
||||
__attribute__((format(printf, 2, 3)))
|
||||
#endif
|
||||
;
|
||||
void (*hexchat_command) (hexchat_plugin *ph,
|
||||
const char *command);
|
||||
void (*hexchat_commandf) (hexchat_plugin *ph,
|
||||
const char *format, ...);
|
||||
const char *format, ...)
|
||||
#ifdef __GNUC__
|
||||
__attribute__((format(printf, 2, 3)))
|
||||
#endif
|
||||
;
|
||||
int (*hexchat_nickcmp) (hexchat_plugin *ph,
|
||||
const char *s1,
|
||||
const char *s2);
|
||||
@ -254,7 +262,11 @@ hexchat_print (hexchat_plugin *ph,
|
||||
|
||||
void
|
||||
hexchat_printf (hexchat_plugin *ph,
|
||||
const char *format, ...);
|
||||
const char *format, ...)
|
||||
#ifdef __GNUC__
|
||||
__attribute__((format(printf, 2, 3)))
|
||||
#endif
|
||||
;
|
||||
|
||||
void
|
||||
hexchat_command (hexchat_plugin *ph,
|
||||
@ -262,7 +274,11 @@ hexchat_command (hexchat_plugin *ph,
|
||||
|
||||
void
|
||||
hexchat_commandf (hexchat_plugin *ph,
|
||||
const char *format, ...);
|
||||
const char *format, ...)
|
||||
#ifdef __GNUC__
|
||||
__attribute__((format(printf, 2, 3)))
|
||||
#endif
|
||||
;
|
||||
|
||||
int
|
||||
hexchat_nickcmp (hexchat_plugin *ph,
|
||||
|
@ -991,47 +991,12 @@ hexchat_exit (void)
|
||||
fe_exit ();
|
||||
}
|
||||
|
||||
#ifndef WIN32
|
||||
|
||||
static int
|
||||
child_handler (gpointer userdata)
|
||||
{
|
||||
int pid = GPOINTER_TO_INT (userdata);
|
||||
|
||||
if (waitpid (pid, 0, WNOHANG) == pid)
|
||||
return 0; /* remove timeout handler */
|
||||
return 1; /* keep the timeout handler */
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
void
|
||||
hexchat_exec (const char *cmd)
|
||||
{
|
||||
#ifdef WIN32
|
||||
util_exec (cmd);
|
||||
#else
|
||||
int pid = util_exec (cmd);
|
||||
if (pid != -1)
|
||||
/* zombie avoiding system. Don't ask! it has to be like this to work
|
||||
with zvt (which overrides the default handler) */
|
||||
fe_timeout_add (1000, child_handler, GINT_TO_POINTER (pid));
|
||||
#endif
|
||||
}
|
||||
|
||||
void
|
||||
hexchat_execv (char * const argv[])
|
||||
{
|
||||
#ifdef WIN32
|
||||
util_execv (argv);
|
||||
#else
|
||||
int pid = util_execv (argv);
|
||||
if (pid != -1)
|
||||
/* zombie avoiding system. Don't ask! it has to be like this to work
|
||||
with zvt (which overrides the default handler) */
|
||||
fe_timeout_add (1000, child_handler, GINT_TO_POINTER (pid));
|
||||
#endif
|
||||
}
|
||||
|
||||
static void
|
||||
set_locale (void)
|
||||
@ -1154,10 +1119,6 @@ main (int argc, char *argv[])
|
||||
_SSL_context_free (ctx);
|
||||
#endif
|
||||
|
||||
#ifdef USE_DEBUG
|
||||
hexchat_mem_list ();
|
||||
#endif
|
||||
|
||||
#ifdef WIN32
|
||||
WSACleanup ();
|
||||
#endif
|
||||
|
@ -17,14 +17,11 @@
|
||||
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
|
||||
*/
|
||||
|
||||
#ifdef WIN32
|
||||
#include "../../config-win32.h"
|
||||
#else
|
||||
#include "../../config.h"
|
||||
#endif
|
||||
|
||||
#include <glib.h>
|
||||
#include <glib/gstdio.h>
|
||||
#include <glib/gi18n.h>
|
||||
|
||||
#include <time.h> /* need time_t */
|
||||
|
||||
@ -48,17 +45,6 @@
|
||||
#define vsnprintf _vsnprintf
|
||||
#endif
|
||||
|
||||
#ifdef USE_DEBUG
|
||||
#define malloc(n) hexchat_malloc(n, __FILE__, __LINE__)
|
||||
#define realloc(n, m) hexchat_realloc(n, m, __FILE__, __LINE__)
|
||||
#define free(n) hexchat_dfree(n, __FILE__, __LINE__)
|
||||
#define strdup(n) hexchat_strdup(n, __FILE__, __LINE__)
|
||||
void *hexchat_malloc (int size, char *file, int line);
|
||||
void *hexchat_strdup (char *str, char *file, int line);
|
||||
void hexchat_dfree (void *buf, char *file, int line);
|
||||
void *hexchat_realloc (char *old, int len, char *file, int line);
|
||||
#endif
|
||||
|
||||
#ifdef SOCKS
|
||||
#ifdef __sgi
|
||||
#include <sys/time.h>
|
||||
@ -80,9 +66,7 @@ void *hexchat_realloc (char *old, int len, char *file, int line);
|
||||
#endif
|
||||
|
||||
/* force a 32bit CMP.L */
|
||||
#define CMPL(a, c0, c1, c2, c3) (a == (guint32)(c0 | (c1 << 8) | (c2 << 16) | (c3 << 24)))
|
||||
#define WORDL(c0, c1, c2, c3) (guint32)(c0 | (c1 << 8) | (c2 << 16) | (c3 << 24))
|
||||
#define WORDW(c0, c1) (guint16)(c0 | (c1 << 8))
|
||||
|
||||
#ifdef WIN32 /* for win32 */
|
||||
#define OFLAGS O_BINARY
|
||||
@ -109,20 +93,6 @@ void *hexchat_realloc (char *old, int len, char *file, int line);
|
||||
#define USERNAMELEN 10
|
||||
#define HIDDEN_CHAR 8 /* invisible character for xtext */
|
||||
|
||||
#if defined(ENABLE_NLS) && !defined(_)
|
||||
# include <libintl.h>
|
||||
# define _(x) gettext(x)
|
||||
# ifdef gettext_noop
|
||||
# define N_(String) gettext_noop (String)
|
||||
# else
|
||||
# define N_(String) (String)
|
||||
# endif
|
||||
#endif
|
||||
#if !defined(_)
|
||||
# define N_(String) (String)
|
||||
# define _(x) (x)
|
||||
#endif
|
||||
|
||||
struct nbexec
|
||||
{
|
||||
int myfd;
|
||||
|
@ -57,6 +57,5 @@ void session_free (session *killsess);
|
||||
void lag_check (void);
|
||||
void hexchat_exit (void);
|
||||
void hexchat_exec (const char *cmd);
|
||||
void hexchat_execv (char * const argv[]);
|
||||
|
||||
#endif
|
||||
|
@ -47,7 +47,7 @@
|
||||
|
||||
#else
|
||||
|
||||
#include "../../config-win32.h"
|
||||
#include "../../config.h"
|
||||
#ifdef USE_IPV6
|
||||
#include <winsock2.h>
|
||||
#include <ws2tcpip.h>
|
||||
|
@ -23,12 +23,10 @@
|
||||
#include <stdio.h>
|
||||
#include <glib.h>
|
||||
|
||||
#ifdef WIN32
|
||||
#include "../../config-win32.h" /* grab USE_IPV6 and LOOKUPD defines */
|
||||
#else
|
||||
#ifndef WIN32
|
||||
#include <unistd.h>
|
||||
#include "../../config.h"
|
||||
#endif
|
||||
#include "../../config.h"
|
||||
|
||||
#define WANTSOCKET
|
||||
#define WANTARPA
|
||||
|
@ -56,9 +56,6 @@
|
||||
#include "outbound.h"
|
||||
#include "chanopt.h"
|
||||
|
||||
#ifdef USE_DEBUG
|
||||
extern int current_mem_usage;
|
||||
#endif
|
||||
#define TBUFSIZE 4096
|
||||
|
||||
static void help (session *sess, char *tbuf, char *helpcmd, int quiet);
|
||||
@ -922,10 +919,6 @@ cmd_debug (struct session *sess, char *tbuf, char *word[], char *word_eol[])
|
||||
"current_tab: %p\n\n",
|
||||
sess->server->front_session, current_tab);
|
||||
PrintText (sess, tbuf);
|
||||
#ifdef USE_DEBUG
|
||||
sprintf (tbuf, "current mem: %d\n\n", current_mem_usage);
|
||||
PrintText (sess, tbuf);
|
||||
#endif /* !MEMORY_DEBUG */
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
@ -1841,8 +1834,10 @@ cmd_exec (struct session *sess, char *tbuf, char *word[], char *word_eol[])
|
||||
char **argv;
|
||||
int argc;
|
||||
|
||||
my_poptParseArgvString (cmd, &argc, &argv);
|
||||
g_shell_parse_argv (cmd, &argc, &argv, NULL);
|
||||
execvp (argv[0], argv);
|
||||
|
||||
g_strfreev (argv);
|
||||
}
|
||||
/* not reached unless error */
|
||||
/*printf("exec error\n");*/
|
||||
@ -2539,7 +2534,6 @@ cmd_load (struct session *sess, char *tbuf, char *word[], char *word_eol[])
|
||||
char *file, *buf;
|
||||
#ifdef USE_PLUGIN
|
||||
char *error, *arg;
|
||||
int len;
|
||||
#endif
|
||||
|
||||
if (!word[2][0])
|
||||
@ -2560,16 +2554,7 @@ cmd_load (struct session *sess, char *tbuf, char *word[], char *word_eol[])
|
||||
}
|
||||
|
||||
#ifdef USE_PLUGIN
|
||||
len = strlen (word[2]);
|
||||
#ifdef WIN32
|
||||
if (len > 4 && g_ascii_strcasecmp (".dll", word[2] + len - 4) == 0)
|
||||
#else
|
||||
#if defined(__hpux)
|
||||
if (len > 3 && g_ascii_strcasecmp (".sl", word[2] + len - 3) == 0)
|
||||
#else
|
||||
if (len > 3 && g_ascii_strcasecmp (".so", word[2] + len - 3) == 0)
|
||||
#endif
|
||||
#endif
|
||||
if (g_str_has_suffix (word[2], "."G_MODULE_SUFFIX))
|
||||
{
|
||||
arg = NULL;
|
||||
if (word_eol[3][0])
|
||||
@ -3565,18 +3550,9 @@ static int
|
||||
cmd_unload (struct session *sess, char *tbuf, char *word[], char *word_eol[])
|
||||
{
|
||||
#ifdef USE_PLUGIN
|
||||
int len, by_file = FALSE;
|
||||
gboolean by_file = FALSE;
|
||||
|
||||
len = strlen (word[2]);
|
||||
#ifdef WIN32
|
||||
if (len > 4 && g_ascii_strcasecmp (word[2] + len - 4, ".dll") == 0)
|
||||
#else
|
||||
#if defined(__hpux)
|
||||
if (len > 3 && g_ascii_strcasecmp (word[2] + len - 3, ".sl") == 0)
|
||||
#else
|
||||
if (len > 3 && g_ascii_strcasecmp (word[2] + len - 3, ".so") == 0)
|
||||
#endif
|
||||
#endif
|
||||
if (g_str_has_suffix (word[2], "."G_MODULE_SUFFIX))
|
||||
by_file = TRUE;
|
||||
|
||||
switch (plugin_kill (word[2], by_file))
|
||||
@ -3599,18 +3575,9 @@ static int
|
||||
cmd_reload (struct session *sess, char *tbuf, char *word[], char *word_eol[])
|
||||
{
|
||||
#ifdef USE_PLUGIN
|
||||
int len, by_file = FALSE;
|
||||
gboolean by_file = FALSE;
|
||||
|
||||
len = strlen (word[2]);
|
||||
#ifdef WIN32
|
||||
if (len > 4 && g_ascii_strcasecmp (word[2] + len - 4, ".dll") == 0)
|
||||
#else
|
||||
#if defined(__hpux)
|
||||
if (len > 3 && g_ascii_strcasecmp (word[2] + len - 3, ".sl") == 0)
|
||||
#else
|
||||
if (len > 3 && g_ascii_strcasecmp (word[2] + len - 3, ".so") == 0)
|
||||
#endif
|
||||
#endif
|
||||
if (g_str_has_suffix (word[2], "."G_MODULE_SUFFIX))
|
||||
by_file = TRUE;
|
||||
|
||||
switch (plugin_reload (sess, word[2], by_file))
|
||||
@ -3746,8 +3713,8 @@ userlist_cb (struct User *user, session *sess)
|
||||
else
|
||||
lt = time (0) - user->lasttalk;
|
||||
PrintTextf (sess,
|
||||
"\00306%s\t\00314[\00310%-38s\00314] \017ov\0033=\017%d%d away=%u lt\0033=\017%d\n",
|
||||
user->nick, user->hostname, user->op, user->voice, user->away, lt);
|
||||
"\00306%s\t\00314[\00310%-38s\00314] \017ov\0033=\017%d%d away=%u lt\0033=\017%ld\n",
|
||||
user->nick, user->hostname, user->op, user->voice, user->away, (long)lt);
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
@ -26,6 +26,8 @@
|
||||
#define g_ascii_strcasecmp stricmp
|
||||
#endif
|
||||
|
||||
#define _(x) hexchat_gettext(ph,x)
|
||||
|
||||
static hexchat_plugin *ph; /* plugin handle */
|
||||
static GSList *timer_list = NULL;
|
||||
|
||||
@ -68,13 +70,13 @@ timer_del_ref (int ref, int quiet)
|
||||
{
|
||||
timer_del (tim);
|
||||
if (!quiet)
|
||||
hexchat_printf (ph, "Timer %d deleted.\n", ref);
|
||||
hexchat_printf (ph, _("Timer %d deleted.\n"), ref);
|
||||
return;
|
||||
}
|
||||
list = list->next;
|
||||
}
|
||||
if (!quiet)
|
||||
hexchat_print (ph, "No such ref number found.\n");
|
||||
hexchat_print (ph, _("No such ref number found.\n"));
|
||||
}
|
||||
|
||||
static int
|
||||
@ -138,17 +140,17 @@ timer_showlist (void)
|
||||
|
||||
if (timer_list == NULL)
|
||||
{
|
||||
hexchat_print (ph, "No timers installed.\n");
|
||||
hexchat_print (ph, HELP);
|
||||
hexchat_print (ph, _("No timers installed.\n"));
|
||||
hexchat_print (ph, _(HELP));
|
||||
return;
|
||||
}
|
||||
/* 00000 00000000 0000000 abc */
|
||||
hexchat_print (ph, "\026 Ref# Seconds Repeat Command \026\n");
|
||||
hexchat_print (ph, _("\026 Ref# Seconds Repeat Command \026\n"));
|
||||
list = timer_list;
|
||||
while (list)
|
||||
{
|
||||
tim = list->data;
|
||||
hexchat_printf (ph, "%5d %8.1f %7d %s\n", tim->ref, tim->timeout,
|
||||
hexchat_printf (ph, _("%5d %8.1f %7d %s\n"), tim->ref, tim->timeout,
|
||||
tim->repeat, tim->command);
|
||||
list = list->next;
|
||||
}
|
||||
@ -221,7 +223,7 @@ hexchat_plugin_init
|
||||
*plugin_desc = "IrcII style /TIMER command";
|
||||
*plugin_version = "";
|
||||
|
||||
hexchat_hook_command (ph, "TIMER", HEXCHAT_PRI_NORM, timer_cb, HELP, 0);
|
||||
hexchat_hook_command (ph, "TIMER", HEXCHAT_PRI_NORM, timer_cb, _(HELP), 0);
|
||||
|
||||
return 1; /* return 1 for success */
|
||||
}
|
||||
|
@ -460,17 +460,11 @@ plugin_auto_load (session *sess)
|
||||
for_files (lib_dir, "hcupd.dll", plugin_auto_load_cb);
|
||||
for_files (lib_dir, "hcwinamp.dll", plugin_auto_load_cb);
|
||||
for_files (lib_dir, "hcsysinfo.dll", plugin_auto_load_cb);
|
||||
#else
|
||||
for_files (lib_dir, "*."G_MODULE_SUFFIX, plugin_auto_load_cb);
|
||||
#endif
|
||||
|
||||
for_files (sub_dir, "*.dll", plugin_auto_load_cb);
|
||||
#else
|
||||
#if defined(__hpux)
|
||||
for_files (lib_dir, "*.sl", plugin_auto_load_cb);
|
||||
for_files (sub_dir, "*.sl", plugin_auto_load_cb);
|
||||
#else
|
||||
for_files (lib_dir, "*.so", plugin_auto_load_cb);
|
||||
for_files (sub_dir, "*.so", plugin_auto_load_cb);
|
||||
#endif
|
||||
#endif
|
||||
for_files (sub_dir, "*."G_MODULE_SUFFIX, plugin_auto_load_cb);
|
||||
|
||||
g_free (sub_dir);
|
||||
}
|
||||
@ -1757,6 +1751,7 @@ hexchat_pluginpref_set_str_real (hexchat_plugin *pl, const char *var, const char
|
||||
int prevSetting;
|
||||
char *confname;
|
||||
char *confname_tmp;
|
||||
char *escaped_value;
|
||||
char *buffer;
|
||||
char *buffer_tmp;
|
||||
char line_buffer[512]; /* the same as in cfg_put_str */
|
||||
@ -1782,7 +1777,9 @@ hexchat_pluginpref_set_str_real (hexchat_plugin *pl, const char *var, const char
|
||||
{
|
||||
if (mode)
|
||||
{
|
||||
buffer = g_strdup_printf ("%s = %s\n", var, value);
|
||||
escaped_value = g_strescape (value, NULL);
|
||||
buffer = g_strdup_printf ("%s = %s\n", var, escaped_value);
|
||||
g_free (escaped_value);
|
||||
write (fhOut, buffer, strlen (buffer));
|
||||
g_free (buffer);
|
||||
close (fhOut);
|
||||
@ -1830,7 +1827,9 @@ hexchat_pluginpref_set_str_real (hexchat_plugin *pl, const char *var, const char
|
||||
{
|
||||
if (mode) /* overwrite the existing matching setting if we are in save mode */
|
||||
{
|
||||
buffer = g_strdup_printf ("%s = %s\n", var, value);
|
||||
escaped_value = g_strescape (value, NULL);
|
||||
buffer = g_strdup_printf ("%s = %s\n", var, escaped_value);
|
||||
g_free (escaped_value);
|
||||
}
|
||||
else /* erase the setting in delete mode */
|
||||
{
|
||||
@ -1854,7 +1853,9 @@ hexchat_pluginpref_set_str_real (hexchat_plugin *pl, const char *var, const char
|
||||
|
||||
if (!prevSetting && mode) /* var doesn't exist currently, append if we're in save mode */
|
||||
{
|
||||
buffer = g_strdup_printf ("%s = %s\n", var, value);
|
||||
escaped_value = g_strescape (value, NULL);
|
||||
buffer = g_strdup_printf ("%s = %s\n", var, escaped_value);
|
||||
g_free (escaped_value);
|
||||
write (fhOut, buffer, strlen (buffer));
|
||||
g_free (buffer);
|
||||
}
|
||||
@ -1894,7 +1895,8 @@ hexchat_pluginpref_set_str (hexchat_plugin *pl, const char *var, const char *val
|
||||
static int
|
||||
hexchat_pluginpref_get_str_real (hexchat_plugin *pl, const char *var, char *dest, int dest_len)
|
||||
{
|
||||
char *confname, *canon, *cfg;
|
||||
char *confname, *canon, *cfg, *unescaped_value;
|
||||
char buf[512];
|
||||
|
||||
canon = g_strdup (pl->name);
|
||||
canonalize_key (canon);
|
||||
@ -1909,12 +1911,16 @@ hexchat_pluginpref_get_str_real (hexchat_plugin *pl, const char *var, char *dest
|
||||
|
||||
g_free (confname);
|
||||
|
||||
if (!cfg_get_str (cfg, var, dest, dest_len))
|
||||
if (!cfg_get_str (cfg, var, buf, sizeof(buf)))
|
||||
{
|
||||
g_free (cfg);
|
||||
return 0;
|
||||
}
|
||||
|
||||
unescaped_value = g_strcompress (buf);
|
||||
g_strlcpy (dest, unescaped_value, dest_len);
|
||||
|
||||
g_free (unescaped_value);
|
||||
g_free (cfg);
|
||||
return 1;
|
||||
}
|
||||
|
@ -273,7 +273,7 @@ tcp_send (server *serv, char *buf)
|
||||
}*/
|
||||
|
||||
void
|
||||
tcp_sendf (server *serv, char *fmt, ...)
|
||||
tcp_sendf (server *serv, const char *fmt, ...)
|
||||
{
|
||||
va_list args;
|
||||
/* keep this buffer in BSS. Converting UTF-8 to ISO-8859-x might make the
|
||||
|
@ -25,7 +25,7 @@ extern GSList *serv_list;
|
||||
/* eventually need to keep the tcp_* functions isolated to server.c */
|
||||
int tcp_send_len (server *serv, char *buf, int len);
|
||||
int tcp_send (server *serv, char *buf);
|
||||
void tcp_sendf (server *serv, char *fmt, ...);
|
||||
void tcp_sendf (server *serv, const char *fmt, ...) G_GNUC_PRINTF (2, 3);
|
||||
int tcp_send_real (void *ssl, int sok, char *encoding, int using_irc, char *buf, int len);
|
||||
|
||||
server *server_new (void);
|
||||
|
@ -27,10 +27,8 @@
|
||||
#include <openssl/err.h> /* ERR_() */
|
||||
#ifdef WIN32
|
||||
#include <openssl/rand.h> /* RAND_seed() */
|
||||
#include "../../config-win32.h" /* HAVE_SNPRINTF */
|
||||
#else
|
||||
#include "../../config.h"
|
||||
#endif
|
||||
#include "../../config.h"
|
||||
#include <time.h> /* asctime() */
|
||||
#include <string.h> /* strncpy() */
|
||||
#include "ssl.h" /* struct cert_info */
|
||||
|
@ -927,7 +927,7 @@ PrintText (session *sess, char *text)
|
||||
}
|
||||
|
||||
void
|
||||
PrintTextf (session *sess, char *format, ...)
|
||||
PrintTextf (session *sess, const char *format, ...)
|
||||
{
|
||||
va_list args;
|
||||
char *buf;
|
||||
@ -941,7 +941,7 @@ PrintTextf (session *sess, char *format, ...)
|
||||
}
|
||||
|
||||
void
|
||||
PrintTextTimeStampf (session *sess, time_t timestamp, char *format, ...)
|
||||
PrintTextTimeStampf (session *sess, time_t timestamp, const char *format, ...)
|
||||
{
|
||||
va_list args;
|
||||
char *buf;
|
||||
|
@ -43,8 +43,8 @@ void scrollback_load (session *sess);
|
||||
int text_word_check (char *word, int len);
|
||||
void PrintText (session *sess, char *text);
|
||||
void PrintTextTimeStamp (session *sess, char *text, time_t timestamp);
|
||||
void PrintTextf (session *sess, char *format, ...);
|
||||
void PrintTextTimeStampf (session *sess, time_t timestamp, char *format, ...);
|
||||
void PrintTextf (session *sess, const char *format, ...) G_GNUC_PRINTF (2, 3);
|
||||
void PrintTextTimeStampf (session *sess, time_t timestamp, const char *format, ...) G_GNUC_PRINTF (3, 4);
|
||||
void log_close (session *sess);
|
||||
void log_open_or_close (session *sess);
|
||||
void load_text_events (void);
|
||||
|
@ -415,7 +415,7 @@ regex_match (const GRegex *re, const char *word, int *start, int *end)
|
||||
}
|
||||
|
||||
/* Miscellaneous description --- */
|
||||
#define DOMAIN "[a-z0-9][-a-z0-9]*(\\.[-a-z0-9]+)*"
|
||||
#define DOMAIN "[_a-z0-9][-_a-z0-9]*(\\.[-_a-z0-9]+)*"
|
||||
#define TLD "\\.[a-z][-a-z0-9]*[a-z]"
|
||||
#define IPADDR "[0-9]{1,3}(\\.[0-9]{1,3}){3}"
|
||||
#define IPV6GROUP "([0-9a-f]{0,4})"
|
||||
@ -610,7 +610,7 @@ re_url (void)
|
||||
}
|
||||
|
||||
/* EMAIL description --- */
|
||||
#define EMAIL "[a-z][-_a-z0-9]+@" "(" HOST_URL ")"
|
||||
#define EMAIL "[a-z][._%+-a-z0-9]+@" "(" HOST_URL ")"
|
||||
|
||||
static const GRegex *
|
||||
re_email (void)
|
||||
|
@ -34,17 +34,14 @@
|
||||
#include <process.h>
|
||||
#include <io.h>
|
||||
#include <VersionHelpers.h>
|
||||
#include "../dirent/dirent-win32.h"
|
||||
#include "../../config-win32.h"
|
||||
#else
|
||||
#include <unistd.h>
|
||||
#include <pwd.h>
|
||||
#include <sys/time.h>
|
||||
#include <sys/utsname.h>
|
||||
#include <dirent.h>
|
||||
#include "../../config.h"
|
||||
#endif
|
||||
|
||||
#include "../../config.h"
|
||||
#include <fcntl.h>
|
||||
#include <errno.h>
|
||||
#include "hexchat.h"
|
||||
@ -74,187 +71,6 @@
|
||||
#define snprintf g_snprintf
|
||||
#endif
|
||||
|
||||
#ifdef USE_DEBUG
|
||||
|
||||
#undef free
|
||||
#undef malloc
|
||||
#undef realloc
|
||||
#undef strdup
|
||||
|
||||
int current_mem_usage;
|
||||
|
||||
struct mem_block
|
||||
{
|
||||
char *file;
|
||||
void *buf;
|
||||
int size;
|
||||
int line;
|
||||
int total;
|
||||
struct mem_block *next;
|
||||
};
|
||||
|
||||
struct mem_block *mroot = NULL;
|
||||
|
||||
void *
|
||||
hexchat_malloc (int size, char *file, int line)
|
||||
{
|
||||
void *ret;
|
||||
struct mem_block *new;
|
||||
|
||||
current_mem_usage += size;
|
||||
ret = malloc (size);
|
||||
if (!ret)
|
||||
{
|
||||
printf ("Out of memory! (%d)\n", current_mem_usage);
|
||||
exit (255);
|
||||
}
|
||||
|
||||
new = malloc (sizeof (struct mem_block));
|
||||
new->buf = ret;
|
||||
new->size = size;
|
||||
new->next = mroot;
|
||||
new->line = line;
|
||||
new->file = strdup (file);
|
||||
mroot = new;
|
||||
|
||||
printf ("%s:%d Malloc'ed %d bytes, now \033[35m%d\033[m\n", file, line,
|
||||
size, current_mem_usage);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
void *
|
||||
hexchat_realloc (char *old, int len, char *file, int line)
|
||||
{
|
||||
char *ret;
|
||||
|
||||
ret = hexchat_malloc (len, file, line);
|
||||
if (ret)
|
||||
{
|
||||
strcpy (ret, old);
|
||||
hexchat_dfree (old, file, line);
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
void *
|
||||
hexchat_strdup (char *str, char *file, int line)
|
||||
{
|
||||
void *ret;
|
||||
struct mem_block *new;
|
||||
int size;
|
||||
|
||||
size = strlen (str) + 1;
|
||||
current_mem_usage += size;
|
||||
ret = malloc (size);
|
||||
if (!ret)
|
||||
{
|
||||
printf ("Out of memory! (%d)\n", current_mem_usage);
|
||||
exit (255);
|
||||
}
|
||||
strcpy (ret, str);
|
||||
|
||||
new = malloc (sizeof (struct mem_block));
|
||||
new->buf = ret;
|
||||
new->size = size;
|
||||
new->next = mroot;
|
||||
new->line = line;
|
||||
new->file = strdup (file);
|
||||
mroot = new;
|
||||
|
||||
printf ("%s:%d strdup (\"%-.40s\") size: %d, total: \033[35m%d\033[m\n",
|
||||
file, line, str, size, current_mem_usage);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
void
|
||||
hexchat_mem_list (void)
|
||||
{
|
||||
struct mem_block *cur, *p;
|
||||
GSList *totals = 0;
|
||||
GSList *list;
|
||||
|
||||
cur = mroot;
|
||||
while (cur)
|
||||
{
|
||||
list = totals;
|
||||
while (list)
|
||||
{
|
||||
p = list->data;
|
||||
if (p->line == cur->line &&
|
||||
strcmp (p->file, cur->file) == 0)
|
||||
{
|
||||
p->total += p->size;
|
||||
break;
|
||||
}
|
||||
list = list->next;
|
||||
}
|
||||
if (!list)
|
||||
{
|
||||
cur->total = cur->size;
|
||||
totals = g_slist_prepend (totals, cur);
|
||||
}
|
||||
cur = cur->next;
|
||||
}
|
||||
|
||||
fprintf (stderr, "file line size num total\n");
|
||||
list = totals;
|
||||
while (list)
|
||||
{
|
||||
cur = list->data;
|
||||
fprintf (stderr, "%-15.15s %6d %6d %6d %6d\n", cur->file, cur->line,
|
||||
cur->size, cur->total/cur->size, cur->total);
|
||||
list = list->next;
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
hexchat_dfree (void *buf, char *file, int line)
|
||||
{
|
||||
struct mem_block *cur, *last;
|
||||
|
||||
if (buf == NULL)
|
||||
{
|
||||
printf ("%s:%d \033[33mTried to free NULL\033[m\n", file, line);
|
||||
return;
|
||||
}
|
||||
|
||||
last = NULL;
|
||||
cur = mroot;
|
||||
while (cur)
|
||||
{
|
||||
if (buf == cur->buf)
|
||||
break;
|
||||
last = cur;
|
||||
cur = cur->next;
|
||||
}
|
||||
if (cur == NULL)
|
||||
{
|
||||
printf ("%s:%d \033[31mTried to free unknown block %lx!\033[m\n",
|
||||
file, line, (unsigned long) buf);
|
||||
/* abort(); */
|
||||
free (buf);
|
||||
return;
|
||||
}
|
||||
current_mem_usage -= cur->size;
|
||||
printf ("%s:%d Free'ed %d bytes, usage now \033[35m%d\033[m\n",
|
||||
file, line, cur->size, current_mem_usage);
|
||||
if (last)
|
||||
last->next = cur->next;
|
||||
else
|
||||
mroot = cur->next;
|
||||
free (cur->file);
|
||||
free (cur);
|
||||
}
|
||||
|
||||
#define malloc(n) hexchat_malloc(n, __FILE__, __LINE__)
|
||||
#define realloc(n, m) hexchat_realloc(n, m, __FILE__, __LINE__)
|
||||
#define free(n) hexchat_dfree(n, __FILE__, __LINE__)
|
||||
#define strdup(n) hexchat_strdup(n, __FILE__, __LINE__)
|
||||
|
||||
#endif /* MEMORY_DEBUG */
|
||||
|
||||
char *
|
||||
file_part (char *file)
|
||||
{
|
||||
@ -433,7 +249,7 @@ char *
|
||||
expand_homedir (char *file)
|
||||
{
|
||||
#ifndef WIN32
|
||||
char *ret, *user;
|
||||
char *user;
|
||||
struct passwd *pw;
|
||||
|
||||
if (file[0] == '~')
|
||||
@ -935,27 +751,26 @@ break_while:
|
||||
void
|
||||
for_files (char *dirname, char *mask, void callback (char *file))
|
||||
{
|
||||
DIR *dir;
|
||||
struct dirent *ent;
|
||||
GDir *dir;
|
||||
const gchar *entry_name;
|
||||
char *buf;
|
||||
|
||||
dir = opendir (dirname);
|
||||
dir = g_dir_open (dirname, 0, NULL);
|
||||
if (dir)
|
||||
{
|
||||
while ((ent = readdir (dir)))
|
||||
while ((entry_name = g_dir_read_name (dir)))
|
||||
{
|
||||
if (strcmp (ent->d_name, ".") && strcmp (ent->d_name, ".."))
|
||||
if (strcmp (entry_name, ".") && strcmp (entry_name, ".."))
|
||||
{
|
||||
if (match (mask, ent->d_name))
|
||||
if (match (mask, entry_name))
|
||||
{
|
||||
buf = malloc (strlen (dirname) + strlen (ent->d_name) + 2);
|
||||
sprintf (buf, "%s" G_DIR_SEPARATOR_S "%s", dirname, ent->d_name);
|
||||
buf = g_build_filename (dirname, entry_name, NULL);
|
||||
callback (buf);
|
||||
free (buf);
|
||||
g_free (buf);
|
||||
}
|
||||
}
|
||||
}
|
||||
closedir (dir);
|
||||
g_dir_close (dir);
|
||||
}
|
||||
}
|
||||
|
||||
@ -1299,171 +1114,10 @@ country_search (char *pattern, void *ud, void (*print)(void *, char *, ...))
|
||||
}
|
||||
}
|
||||
|
||||
/* I think gnome1.0.x isn't necessarily linked against popt, ah well! */
|
||||
/* !!! For now use this inlined function, or it would break fe-text building */
|
||||
/* .... will find a better solution later. */
|
||||
/*#ifndef USE_GNOME*/
|
||||
|
||||
/* this is taken from gnome-libs 1.2.4 */
|
||||
#define POPT_ARGV_ARRAY_GROW_DELTA 5
|
||||
|
||||
int my_poptParseArgvString(const char * s, int * argcPtr, char *** argvPtr) {
|
||||
char * buf, * bufStart, * dst;
|
||||
const char * src;
|
||||
char quote = '\0';
|
||||
int argvAlloced = POPT_ARGV_ARRAY_GROW_DELTA;
|
||||
char ** argv = malloc(sizeof(*argv) * argvAlloced);
|
||||
const char ** argv2;
|
||||
int argc = 0;
|
||||
int i, buflen;
|
||||
|
||||
buflen = strlen(s) + 1;
|
||||
/* bufStart = buf = alloca(buflen);*/
|
||||
bufStart = buf = malloc (buflen);
|
||||
memset(buf, '\0', buflen);
|
||||
|
||||
src = s;
|
||||
argv[argc] = buf;
|
||||
|
||||
while (*src) {
|
||||
if (quote == *src) {
|
||||
quote = '\0';
|
||||
} else if (quote) {
|
||||
if (*src == '\\') {
|
||||
src++;
|
||||
if (!*src) {
|
||||
free(argv);
|
||||
free(bufStart);
|
||||
return 1;
|
||||
}
|
||||
if (*src != quote) *buf++ = '\\';
|
||||
}
|
||||
*buf++ = *src;
|
||||
/*} else if (isspace((unsigned char) *src)) {*/
|
||||
} else if (*src == ' ') {
|
||||
if (*argv[argc]) {
|
||||
buf++, argc++;
|
||||
if (argc == argvAlloced) {
|
||||
char **temp;
|
||||
argvAlloced += POPT_ARGV_ARRAY_GROW_DELTA;
|
||||
temp = realloc(argv, sizeof(*argv) * argvAlloced);
|
||||
if (temp)
|
||||
argv = temp;
|
||||
else
|
||||
{
|
||||
free(argv);
|
||||
free(bufStart);
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
argv[argc] = buf;
|
||||
}
|
||||
} else switch (*src) {
|
||||
case '"':
|
||||
case '\'':
|
||||
quote = *src;
|
||||
break;
|
||||
case '\\':
|
||||
src++;
|
||||
if (!*src) {
|
||||
free(argv);
|
||||
free(bufStart);
|
||||
return 1;
|
||||
}
|
||||
/* fallthrough */
|
||||
default:
|
||||
*buf++ = *src;
|
||||
}
|
||||
|
||||
src++;
|
||||
}
|
||||
|
||||
if (strlen(argv[argc])) {
|
||||
argc++, buf++;
|
||||
}
|
||||
|
||||
dst = malloc((argc + 1) * sizeof(*argv) + (buf - bufStart));
|
||||
argv2 = (void *) dst;
|
||||
dst += (argc + 1) * sizeof(*argv);
|
||||
memcpy((void *)argv2, argv, argc * sizeof(*argv));
|
||||
argv2[argc] = NULL;
|
||||
memcpy(dst, bufStart, buf - bufStart);
|
||||
|
||||
for (i = 0; i < argc; i++) {
|
||||
argv2[i] = dst + (argv[i] - bufStart);
|
||||
}
|
||||
|
||||
free(argv);
|
||||
|
||||
*argvPtr = (char **)argv2; /* XXX don't change the API */
|
||||
*argcPtr = argc;
|
||||
|
||||
free (bufStart);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
int
|
||||
void
|
||||
util_exec (const char *cmd)
|
||||
{
|
||||
char **argv;
|
||||
int argc;
|
||||
#ifndef WIN32
|
||||
int pid;
|
||||
int fd;
|
||||
#endif
|
||||
|
||||
if (my_poptParseArgvString (cmd, &argc, &argv) != 0)
|
||||
return -1;
|
||||
|
||||
#ifndef WIN32
|
||||
pid = fork ();
|
||||
if (pid == -1)
|
||||
{
|
||||
free (argv);
|
||||
return -1;
|
||||
}
|
||||
if (pid == 0)
|
||||
{
|
||||
/* Now close all open file descriptors except stdin, stdout and stderr */
|
||||
for (fd = 3; fd < 1024; fd++) close(fd);
|
||||
execvp (argv[0], argv);
|
||||
_exit (0);
|
||||
} else
|
||||
{
|
||||
free (argv);
|
||||
return pid;
|
||||
}
|
||||
#else
|
||||
spawnvp (_P_DETACH, argv[0], argv);
|
||||
free (argv);
|
||||
return 0;
|
||||
#endif
|
||||
}
|
||||
|
||||
int
|
||||
util_execv (char * const argv[])
|
||||
{
|
||||
#ifndef WIN32
|
||||
int pid, fd;
|
||||
|
||||
pid = fork ();
|
||||
if (pid == -1)
|
||||
return -1;
|
||||
if (pid == 0)
|
||||
{
|
||||
/* Now close all open file descriptors except stdin, stdout and stderr */
|
||||
for (fd = 3; fd < 1024; fd++) close(fd);
|
||||
execv (argv[0], argv);
|
||||
_exit (0);
|
||||
} else
|
||||
{
|
||||
return pid;
|
||||
}
|
||||
#else
|
||||
spawnv (_P_DETACH, argv[0], argv);
|
||||
return 0;
|
||||
#endif
|
||||
g_spawn_command_line_async (cmd, NULL);
|
||||
}
|
||||
|
||||
unsigned long
|
||||
|
@ -37,7 +37,6 @@
|
||||
|
||||
extern const unsigned char rfc_tolowertab[];
|
||||
|
||||
int my_poptParseArgvString(const char * s, int * argcPtr, char *** argvPtr);
|
||||
char *expand_homedir (char *file);
|
||||
void path_part (char *file, char *path, int pathlen);
|
||||
int match (const char *mask, const char *string);
|
||||
@ -50,8 +49,7 @@ char *nocasestrstr (const char *text, const char *tofind);
|
||||
char *country (char *);
|
||||
void country_search (char *pattern, void *ud, void (*print)(void *, char *, ...));
|
||||
char *get_sys_str (int with_cpu);
|
||||
int util_exec (const char *cmd);
|
||||
int util_execv (char * const argv[]);
|
||||
void util_exec (const char *cmd);
|
||||
#define STRIP_COLOR 1
|
||||
#define STRIP_ATTRIB 2
|
||||
#define STRIP_HIDDEN 4
|
||||
|
@ -31,6 +31,7 @@ hexchat_SOURCES = ascii.c banlist.c chanlist.c chanview.c custom-list.c \
|
||||
maingui.c notifygui.c palette.c pixmaps.c plugin-tray.c $(plugingui_c) \
|
||||
rawlog.c resources.c servlistgui.c setup.c $(iso_codes_c) \
|
||||
sexy-spell-entry.c textgui.c urlgrab.c userlistgui.c xtext.c
|
||||
hexchat_CPPFLAGS = $(AM_CPPFLAGS) -I$(top_builddir)/src/common
|
||||
|
||||
resources.c: ../../data/hexchat.gresource.xml $(shell $(GLIB_COMPILE_RESOURCES) --sourcedir=../../data --generate-dependencies ../../data/hexchat.gresource.xml)
|
||||
$(AM_V_GEN) $(GLIB_COMPILE_RESOURCES) --target=$@ --sourcedir=../../data --generate-source $<
|
||||
resources.c: $(top_srcdir)/data/hexchat.gresource.xml $(shell $(GLIB_COMPILE_RESOURCES) --sourcedir=$(top_srcdir)/data --generate-dependencies $(top_srcdir)/data/hexchat.gresource.xml)
|
||||
$(AM_V_GEN) $(GLIB_COMPILE_RESOURCES) --target=$@ --sourcedir=$(top_srcdir)/data --generate-source $<
|
||||
|
@ -20,11 +20,7 @@
|
||||
#ifndef HEXCHAT_FE_GTK_H
|
||||
#define HEXCHAT_FE_GTK_H
|
||||
|
||||
#ifdef WIN32
|
||||
#include "../../config-win32.h"
|
||||
#else
|
||||
#include "../../config.h"
|
||||
#endif
|
||||
|
||||
#define DISPLAY_NAME "HexChat"
|
||||
|
||||
@ -32,21 +28,7 @@
|
||||
#include <sys/types.h>
|
||||
#endif
|
||||
|
||||
#if defined(ENABLE_NLS) && !defined(_)
|
||||
# include <libintl.h>
|
||||
# define _(x) gettext(x)
|
||||
# ifdef gettext_noop
|
||||
# define N_(String) gettext_noop (String)
|
||||
# else
|
||||
# define N_(String) (String)
|
||||
# endif
|
||||
#endif
|
||||
#if !defined(ENABLE_NLS) && defined(_)
|
||||
# undef _
|
||||
# define N_(String) (String)
|
||||
# define _(x) (x)
|
||||
#endif
|
||||
|
||||
#include <glib/gi18n.h>
|
||||
#include <gtk/gtk.h>
|
||||
|
||||
#ifdef HAVE_GTK_MAC
|
||||
|
@ -99,7 +99,7 @@
|
||||
<PreBuildEvent>
|
||||
<Command><![CDATA[
|
||||
SET SOLUTIONDIR=$(SolutionDir)..\
|
||||
powershell -File "$(SolutionDir)..\version-template.ps1" "$(SolutionDir)..\src\fe-gtk\hexchat.rc.tt" "$(SolutionDir)..\src\fe-gtk\hexchat.rc.utf8"
|
||||
powershell -File "$(SolutionDir)..\win32\version-template.ps1" "$(SolutionDir)..\src\fe-gtk\hexchat.rc.tt" "$(SolutionDir)..\src\fe-gtk\hexchat.rc.utf8"
|
||||
REM hexchat.rc needs to be in UCS-2 or Resource Compiler will complain
|
||||
powershell "Get-Content -Encoding UTF8 '$(SolutionDir)..\src\fe-gtk\hexchat.rc.utf8' | Out-File '$(SolutionDir)..\src\fe-gtk\hexchat.rc'; Remove-Item '$(SolutionDir)..\src\fe-gtk\hexchat.rc.utf8'"
|
||||
"$(DepsRoot)\bin\glib-compile-resources.exe" --generate-source --sourcedir "$(DataDir)" --target "$(ProjectDir)resources.c" "$(DataDir)hexchat.gresource.xml"
|
||||
|
@ -66,48 +66,69 @@ gtkutil_file_req_destroy (GtkWidget * wid, struct file_req *freq)
|
||||
}
|
||||
|
||||
static void
|
||||
gtkutil_check_file (char *file, struct file_req *freq)
|
||||
gtkutil_check_file (char *filename, struct file_req *freq)
|
||||
{
|
||||
struct stat st;
|
||||
int axs = FALSE;
|
||||
char temp[256];
|
||||
|
||||
path_part (file, temp, sizeof (temp));
|
||||
GFile *file = g_file_new_for_path (filename);
|
||||
|
||||
/* check if the file is readable or writable */
|
||||
if (freq->flags & FRF_WRITE)
|
||||
{
|
||||
if (access (temp, W_OK) == 0)
|
||||
axs = TRUE;
|
||||
} else
|
||||
{
|
||||
if (stat (file, &st) != -1)
|
||||
GFile *parent = g_file_get_parent (file);
|
||||
|
||||
GFileInfo *fi = g_file_query_info (parent, G_FILE_ATTRIBUTE_ACCESS_CAN_WRITE, G_FILE_QUERY_INFO_NONE, NULL, NULL);
|
||||
if (fi != NULL)
|
||||
{
|
||||
if (!S_ISDIR (st.st_mode) || (freq->flags & FRF_CHOOSEFOLDER))
|
||||
if (g_file_info_get_attribute_boolean (fi, G_FILE_ATTRIBUTE_ACCESS_CAN_WRITE))
|
||||
{
|
||||
axs = TRUE;
|
||||
}
|
||||
|
||||
g_object_unref (fi);
|
||||
}
|
||||
|
||||
g_object_unref (parent);
|
||||
}
|
||||
else
|
||||
{
|
||||
GFileInfo *fi = g_file_query_info (file, G_FILE_ATTRIBUTE_ACCESS_CAN_WRITE, G_FILE_QUERY_INFO_NONE, NULL, NULL);
|
||||
|
||||
if (fi != NULL)
|
||||
{
|
||||
if (g_file_info_get_file_type (fi) != G_FILE_TYPE_DIRECTORY || (freq->flags & FRF_CHOOSEFOLDER))
|
||||
{
|
||||
axs = TRUE;
|
||||
}
|
||||
|
||||
g_object_unref (fi);
|
||||
}
|
||||
}
|
||||
|
||||
g_object_unref (file);
|
||||
|
||||
if (axs)
|
||||
{
|
||||
char *utf8_file;
|
||||
/* convert to UTF8. It might be converted back to locale by
|
||||
server.c's g_convert */
|
||||
utf8_file = hexchat_filename_to_utf8 (file, -1, NULL, NULL, NULL);
|
||||
if (utf8_file)
|
||||
char *filename_utf8 = g_filename_to_utf8 (filename, -1, NULL, NULL, NULL);
|
||||
if (filename_utf8 != NULL)
|
||||
{
|
||||
freq->callback (freq->userdata, utf8_file);
|
||||
g_free (utf8_file);
|
||||
} else
|
||||
freq->callback (freq->userdata, filename_utf8);
|
||||
g_free (filename_utf8);
|
||||
}
|
||||
else
|
||||
{
|
||||
fe_message ("Filename encoding is corrupt.", FE_MSG_ERROR);
|
||||
}
|
||||
} else
|
||||
}
|
||||
else
|
||||
{
|
||||
if (freq->flags & FRF_WRITE)
|
||||
{
|
||||
fe_message (_("Cannot write to that file."), FE_MSG_ERROR);
|
||||
}
|
||||
else
|
||||
{
|
||||
fe_message (_("Cannot read that file."), FE_MSG_ERROR);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -128,12 +149,21 @@ gtkutil_file_req_done (GtkWidget * wid, struct file_req *freq)
|
||||
}
|
||||
if (files)
|
||||
g_slist_free (files);
|
||||
} else
|
||||
}
|
||||
else
|
||||
{
|
||||
if (freq->flags & FRF_CHOOSEFOLDER)
|
||||
gtkutil_check_file (gtk_file_chooser_get_current_folder (fs), freq);
|
||||
{
|
||||
gchar *filename = gtk_file_chooser_get_current_folder (fs);
|
||||
gtkutil_check_file (filename, freq);
|
||||
g_free (filename);
|
||||
}
|
||||
else
|
||||
{
|
||||
gchar *filename = gtk_file_chooser_get_filename (fs);
|
||||
gtkutil_check_file (gtk_file_chooser_get_filename (fs), freq);
|
||||
g_free (filename);
|
||||
}
|
||||
}
|
||||
|
||||
/* this should call the "destroy" cb, where we free(freq) */
|
||||
|
@ -1,5 +1,5 @@
|
||||
#include <winver.h>
|
||||
#include "../../config-win32.h"
|
||||
#include "../../config.h"
|
||||
|
||||
#define COMMA_VERSION <#= [string]::Join(',', $versionParts) #>,0
|
||||
|
||||
|
@ -403,8 +403,10 @@ toggle_cb (GtkWidget *item, char *pref_name)
|
||||
static int
|
||||
is_in_path (char *cmd)
|
||||
{
|
||||
char *prog = strdup (cmd + 1); /* 1st char is "!" */
|
||||
char *space, *path, *orig;
|
||||
char *prog = g_strdup (cmd + 1); /* 1st char is "!" */
|
||||
char *path, *orig;
|
||||
char **argv;
|
||||
int argc;
|
||||
|
||||
orig = prog; /* save for free()ing */
|
||||
/* special-case these default entries. */
|
||||
@ -413,16 +415,17 @@ is_in_path (char *cmd)
|
||||
/* don't check for gnome-terminal, but the thing it's executing! */
|
||||
prog += 18;
|
||||
|
||||
space = strchr (prog, ' '); /* this isn't 100% but good enuf */
|
||||
if (space)
|
||||
*space = 0;
|
||||
|
||||
path = g_find_program_in_path (prog);
|
||||
if (path)
|
||||
if (g_shell_parse_argv (prog, &argc, &argv, NULL))
|
||||
{
|
||||
g_free (path);
|
||||
g_free (orig);
|
||||
return 1;
|
||||
path = g_find_program_in_path (argv[0]);
|
||||
if (path)
|
||||
{
|
||||
g_free (path);
|
||||
g_free (orig);
|
||||
g_strfreev (argv);
|
||||
return 1;
|
||||
}
|
||||
g_strfreev (argv);
|
||||
}
|
||||
|
||||
g_free (orig);
|
||||
|
@ -161,11 +161,7 @@ plugingui_load (void)
|
||||
sub_dir = g_build_filename (get_xdir(), "addons", NULL);
|
||||
|
||||
gtkutil_file_req (_("Select a Plugin or Script to load"), plugingui_load_cb, current_sess,
|
||||
#ifdef WIN32
|
||||
sub_dir, "*.dll;*.lua;*.pl;*.py;*.tcl;*.js", FRF_FILTERISINITIAL|FRF_EXTENSIONS);
|
||||
#else
|
||||
sub_dir, "*.so;*.lua;*.pl;*.py;*.tcl;*.js", FRF_FILTERISINITIAL|FRF_EXTENSIONS);
|
||||
#endif
|
||||
sub_dir, "*."G_MODULE_SUFFIX";*.lua;*.pl;*.py;*.tcl;*.js", FRF_FILTERISINITIAL|FRF_EXTENSIONS);
|
||||
|
||||
g_free (sub_dir);
|
||||
}
|
||||
@ -179,7 +175,6 @@ plugingui_loadbutton_cb (GtkWidget * wid, gpointer unused)
|
||||
static void
|
||||
plugingui_unload (GtkWidget * wid, gpointer unused)
|
||||
{
|
||||
int len;
|
||||
char *modname, *file, *buf;
|
||||
GtkTreeView *view;
|
||||
GtkTreeIter iter;
|
||||
@ -189,16 +184,7 @@ plugingui_unload (GtkWidget * wid, gpointer unused)
|
||||
FILE_COLUMN, &file, -1))
|
||||
return;
|
||||
|
||||
len = strlen (file);
|
||||
#ifdef WIN32
|
||||
if (len > 4 && g_ascii_strcasecmp (file + len - 4, ".dll") == 0)
|
||||
#else
|
||||
#if defined(__hpux)
|
||||
if (len > 3 && g_ascii_strcasecmp (file + len - 3, ".sl") == 0)
|
||||
#else
|
||||
if (len > 3 && g_ascii_strcasecmp (file + len - 3, ".so") == 0)
|
||||
#endif
|
||||
#endif
|
||||
if (g_str_has_suffix (file, "."G_MODULE_SUFFIX))
|
||||
{
|
||||
if (plugin_kill (modname, FALSE) == 2)
|
||||
fe_message (_("That plugin is refusing to unload.\n"), FE_MSG_ERROR);
|
||||
|
@ -1526,13 +1526,14 @@ servlist_logintypecombo_cb (GtkComboBox *cb, gpointer *userdata)
|
||||
|
||||
index = gtk_combo_box_get_active (cb); /* starts at 0, returns -1 for invalid selections */
|
||||
|
||||
if (index != -1)
|
||||
{
|
||||
/* The selection is valid. It can be 0, which is the default type, but we need to allow
|
||||
* that so that you can revert from other types. servlist_save() will dump 0 anyway.
|
||||
*/
|
||||
selected_net->logintype = login_types_conf[index];
|
||||
}
|
||||
if (index == -1)
|
||||
return; /* Invalid */
|
||||
|
||||
/* The selection is valid. It can be 0, which is the default type, but we need to allow
|
||||
* that so that you can revert from other types. servlist_save() will dump 0 anyway.
|
||||
*/
|
||||
selected_net->logintype = login_types_conf[index];
|
||||
|
||||
if (login_types_conf[index] == LOGIN_CUSTOM)
|
||||
{
|
||||
gtk_notebook_set_current_page (GTK_NOTEBOOK (userdata), 2); /* FIXME avoid hardcoding? */
|
||||
|
@ -22,12 +22,7 @@
|
||||
#include "sexy-iso-codes.h"
|
||||
#include <libintl.h>
|
||||
#include <string.h>
|
||||
|
||||
#ifdef G_OS_WIN32
|
||||
#include "../../config-win32.h"
|
||||
#else
|
||||
#include "../../config.h"
|
||||
#endif
|
||||
|
||||
#define ISO_639_DOMAIN "iso_639"
|
||||
#define ISO_3166_DOMAIN "iso_3166"
|
||||
|
@ -153,11 +153,8 @@ initialize_enchant ()
|
||||
GModule *enchant;
|
||||
gpointer funcptr;
|
||||
|
||||
#ifdef WIN32
|
||||
enchant = g_module_open("libenchant.dll", 0);
|
||||
#else
|
||||
enchant = g_module_open("libenchant", 0);
|
||||
#endif
|
||||
|
||||
enchant = g_module_open("libenchant."G_MODULE_SUFFIX, 0);
|
||||
if (enchant == NULL)
|
||||
{
|
||||
#ifndef WIN32
|
||||
|
@ -31,12 +31,7 @@
|
||||
#include <stdlib.h>
|
||||
#include <time.h>
|
||||
|
||||
#ifdef WIN32
|
||||
#include "../../config-win32.h"
|
||||
#else
|
||||
#include "../../config.h"
|
||||
#endif
|
||||
|
||||
#include "../common/hexchat.h"
|
||||
#include "../common/fe.h"
|
||||
#include "../common/util.h"
|
||||
@ -143,6 +138,7 @@ static void gtk_xtext_search_textentry_del (xtext_buffer *, textentry *);
|
||||
static void gtk_xtext_search_textentry_fini (gpointer, gpointer);
|
||||
static void gtk_xtext_search_fini (xtext_buffer *);
|
||||
static gboolean gtk_xtext_search_init (xtext_buffer *buf, const gchar *text, gtk_xtext_search_flags flags, GError **perr);
|
||||
static char * gtk_xtext_get_word (GtkXText * xtext, int x, int y, textentry ** ret_ent, int *ret_off, int *ret_len, GSList **slp);
|
||||
|
||||
/* Avoid warning messages for this unused function */
|
||||
#if 0
|
||||
@ -939,7 +935,7 @@ gtk_xtext_find_x (GtkXText * xtext, int x, textentry * ent, int subline,
|
||||
|
||||
static textentry *
|
||||
gtk_xtext_find_char (GtkXText * xtext, int x, int y, int *off,
|
||||
int *out_of_bounds)
|
||||
int *out_of_bounds, int *ret_subline)
|
||||
{
|
||||
textentry *ent;
|
||||
int line;
|
||||
@ -957,6 +953,9 @@ gtk_xtext_find_char (GtkXText * xtext, int x, int y, int *off,
|
||||
if (off)
|
||||
*off = gtk_xtext_find_x (xtext, x, ent, subline, line, out_of_bounds);
|
||||
|
||||
if (ret_subline)
|
||||
*ret_subline = subline;
|
||||
|
||||
return ent;
|
||||
}
|
||||
|
||||
@ -1050,14 +1049,14 @@ gtk_xtext_paint (GtkWidget *widget, GdkRectangle *area)
|
||||
return;
|
||||
}
|
||||
|
||||
ent_start = gtk_xtext_find_char (xtext, area->x, area->y, NULL, NULL);
|
||||
ent_start = gtk_xtext_find_char (xtext, area->x, area->y, NULL, NULL, NULL);
|
||||
if (!ent_start)
|
||||
{
|
||||
xtext_draw_bg (xtext, area->x, area->y, area->width, area->height);
|
||||
goto xit;
|
||||
}
|
||||
ent_end = gtk_xtext_find_char (xtext, area->x + area->width,
|
||||
area->y + area->height, NULL, NULL);
|
||||
area->y + area->height, NULL, NULL, NULL);
|
||||
if (!ent_end)
|
||||
ent_end = xtext->buffer->text_last;
|
||||
|
||||
@ -1302,84 +1301,95 @@ gtk_xtext_selection_draw (GtkXText * xtext, GdkEventMotion * event, gboolean ren
|
||||
textentry *ent_start;
|
||||
int offset_start;
|
||||
int offset_end;
|
||||
int low_x;
|
||||
int low_y;
|
||||
int high_x;
|
||||
int high_y;
|
||||
int tmp;
|
||||
int subline_start;
|
||||
int subline_end;
|
||||
int oob;
|
||||
int marking_up;
|
||||
int marking_up = FALSE;
|
||||
int len_start;
|
||||
int len_end;
|
||||
|
||||
if (xtext->select_start_y > xtext->select_end_y)
|
||||
{
|
||||
low_x = xtext->select_end_x;
|
||||
low_y = xtext->select_end_y;
|
||||
marking_up = TRUE;
|
||||
high_x = xtext->select_start_x;
|
||||
high_y = xtext->select_start_y;
|
||||
} else
|
||||
{
|
||||
low_x = xtext->select_start_x;
|
||||
low_y = xtext->select_start_y;
|
||||
high_x = xtext->select_end_x;
|
||||
high_y = xtext->select_end_y;
|
||||
marking_up = FALSE;
|
||||
}
|
||||
ent_start = gtk_xtext_find_char (xtext, xtext->select_start_x, xtext->select_start_y, &offset_start, &oob, &subline_start);
|
||||
ent_end = gtk_xtext_find_char (xtext, xtext->select_end_x, xtext->select_end_y, &offset_end, &oob, &subline_end);
|
||||
|
||||
ent_start = gtk_xtext_find_char (xtext, low_x, low_y, &offset_start, &oob);
|
||||
if (!ent_start)
|
||||
if ((!ent_start || !ent_end) && !xtext->buffer->text_last && xtext->adj->value != xtext->buffer->old_value)
|
||||
{
|
||||
if (xtext->adj->value != xtext->buffer->old_value)
|
||||
gtk_xtext_render_page (xtext);
|
||||
gtk_xtext_render_page (xtext);
|
||||
return;
|
||||
}
|
||||
else if (oob)
|
||||
|
||||
if (!ent_start)
|
||||
{
|
||||
offset_start = marking_up == TRUE? 0: xtext->buffer->last_offset_start;
|
||||
ent_start = xtext->buffer->text_last;
|
||||
offset_start = ent_start->str_len;
|
||||
}
|
||||
|
||||
ent_end = gtk_xtext_find_char (xtext, high_x, high_y, &offset_end, &oob);
|
||||
if (!ent_end)
|
||||
{
|
||||
ent_end = xtext->buffer->text_last;
|
||||
if (!ent_end)
|
||||
{
|
||||
if (xtext->adj->value != xtext->buffer->old_value)
|
||||
gtk_xtext_render_page (xtext);
|
||||
return;
|
||||
}
|
||||
offset_end = ent_end->str_len;
|
||||
}
|
||||
else if (oob)
|
||||
|
||||
if ((ent_start != ent_end && xtext->select_start_y > xtext->select_end_y) || /* different entries */
|
||||
(ent_start == ent_end && subline_start > subline_end) || /* different lines */
|
||||
(ent_start == ent_end && subline_start == subline_end && xtext->select_start_x > xtext->select_end_x)) /* marking to the left */
|
||||
{
|
||||
offset_end = marking_up == FALSE? ent_end->str_len: xtext->buffer->last_offset_end;
|
||||
marking_up = TRUE;
|
||||
}
|
||||
|
||||
/* marking less than a complete line? */
|
||||
/* make sure "start" is smaller than "end" (swap them if need be) */
|
||||
if (ent_start == ent_end && offset_start > offset_end)
|
||||
/* word selection */
|
||||
if (xtext->word_select)
|
||||
{
|
||||
tmp = offset_start;
|
||||
/* a word selection cannot be started if the cursor is out of bounds in gtk_xtext_button_press */
|
||||
gtk_xtext_get_word (xtext, xtext->select_start_x, xtext->select_start_y, NULL, &offset_start, &len_start, NULL);
|
||||
|
||||
/* in case the cursor is out of bounds we keep offset_end from gtk_xtext_find_char and fix the length */
|
||||
if (gtk_xtext_get_word (xtext, xtext->select_end_x, xtext->select_end_y, NULL, &offset_end, &len_end, NULL) == NULL)
|
||||
len_end = offset_end == ent_end->str_len? 0: -1; /* -1 for the space, 0 if at the end */
|
||||
|
||||
if (!marking_up)
|
||||
offset_end += len_end;
|
||||
else
|
||||
offset_start += len_start;
|
||||
}
|
||||
/* line/ent selection */
|
||||
else if (xtext->line_select)
|
||||
{
|
||||
offset_start = marking_up? ent_start->str_len: 0;
|
||||
offset_end = marking_up? 0: ent_end->str_len;
|
||||
}
|
||||
|
||||
if (marking_up)
|
||||
{
|
||||
int temp;
|
||||
|
||||
/* ensure ent_start is above ent_end */
|
||||
if (ent_start != ent_end)
|
||||
{
|
||||
ent = ent_start;
|
||||
ent_start = ent_end;
|
||||
ent_end = ent;
|
||||
}
|
||||
|
||||
/* switch offsets as well */
|
||||
temp = offset_start;
|
||||
offset_start = offset_end;
|
||||
offset_end = tmp;
|
||||
offset_end = temp;
|
||||
}
|
||||
|
||||
/* set all the old mark_ fields to -1 */
|
||||
gtk_xtext_selection_clear (xtext->buffer);
|
||||
|
||||
ent_start->mark_start = offset_start;
|
||||
ent_start->mark_end = offset_end;
|
||||
/* set the default values */
|
||||
ent_start->mark_end = ent_start->str_len;
|
||||
ent_end->mark_start = 0;
|
||||
|
||||
/* set the calculated values (this overwrites the default values if we're on the same ent) */
|
||||
ent_start->mark_start = offset_start;
|
||||
ent_end->mark_end = offset_end;
|
||||
|
||||
/* set all the mark_ fields of the ents within the selection */
|
||||
if (ent_start != ent_end)
|
||||
{
|
||||
ent_start->mark_end = ent_start->str_len;
|
||||
if (offset_end != 0)
|
||||
{
|
||||
ent_end->mark_start = 0;
|
||||
ent_end->mark_end = offset_end;
|
||||
}
|
||||
|
||||
/* set all the mark_ fields of the ents within the selection */
|
||||
ent = ent_start->next;
|
||||
while (ent && ent != ent_end)
|
||||
{
|
||||
@ -1388,11 +1398,6 @@ gtk_xtext_selection_draw (GtkXText * xtext, GdkEventMotion * event, gboolean ren
|
||||
ent = ent->next;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (xtext->mark_stamp)
|
||||
offset_start = 0;
|
||||
}
|
||||
|
||||
if (render)
|
||||
gtk_xtext_selection_render (xtext, ent_start, ent_end);
|
||||
@ -1527,7 +1532,7 @@ gtk_xtext_get_word (GtkXText * xtext, int x, int y, textentry ** ret_ent,
|
||||
int out_of_bounds = 0;
|
||||
int len_to_offset = 0;
|
||||
|
||||
ent = gtk_xtext_find_char (xtext, x, y, &offset, &out_of_bounds);
|
||||
ent = gtk_xtext_find_char (xtext, x, y, &offset, &out_of_bounds, NULL);
|
||||
if (ent == NULL || out_of_bounds || offset < 0 || offset >= ent->str_len)
|
||||
return NULL;
|
||||
|
||||
@ -1912,13 +1917,6 @@ gtk_xtext_button_release (GtkWidget * widget, GdkEventButton * event)
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
if (xtext->word_or_line_select)
|
||||
{
|
||||
xtext->word_or_line_select = FALSE;
|
||||
xtext->button_down = FALSE;
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
if (event->button == 1)
|
||||
{
|
||||
xtext->button_down = FALSE;
|
||||
@ -1943,6 +1941,13 @@ gtk_xtext_button_release (GtkWidget * widget, GdkEventButton * event)
|
||||
}
|
||||
}
|
||||
|
||||
if (xtext->word_select || xtext->line_select)
|
||||
{
|
||||
xtext->word_select = FALSE;
|
||||
xtext->line_select = FALSE;
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
if (xtext->select_start_x == event->x &&
|
||||
xtext->select_start_y == event->y &&
|
||||
xtext->buffer->last_ent_start)
|
||||
@ -2003,11 +2008,7 @@ gtk_xtext_button_press (GtkWidget * widget, GdkEventButton * event)
|
||||
ent->mark_start = offset;
|
||||
ent->mark_end = offset + len;
|
||||
gtk_xtext_selection_render (xtext, ent, ent);
|
||||
xtext->word_or_line_select = TRUE;
|
||||
if (prefs.hex_text_autocopy_text)
|
||||
{
|
||||
gtk_xtext_set_clip_owner (GTK_WIDGET (xtext), event);
|
||||
}
|
||||
xtext->word_select = TRUE;
|
||||
}
|
||||
|
||||
return FALSE;
|
||||
@ -2022,11 +2023,7 @@ gtk_xtext_button_press (GtkWidget * widget, GdkEventButton * event)
|
||||
ent->mark_start = 0;
|
||||
ent->mark_end = ent->str_len;
|
||||
gtk_xtext_selection_render (xtext, ent, ent);
|
||||
xtext->word_or_line_select = TRUE;
|
||||
if (prefs.hex_text_autocopy_text)
|
||||
{
|
||||
gtk_xtext_set_clip_owner (GTK_WIDGET (xtext), event);
|
||||
}
|
||||
xtext->line_select = TRUE;
|
||||
}
|
||||
|
||||
return FALSE;
|
||||
|
@ -216,7 +216,8 @@ struct _GtkXText
|
||||
|
||||
/* various state information */
|
||||
unsigned int moving_separator:1;
|
||||
unsigned int word_or_line_select:1;
|
||||
unsigned int word_select:1;
|
||||
unsigned int line_select:1;
|
||||
unsigned int button_down:1;
|
||||
unsigned int hilighting:1;
|
||||
unsigned int dont_render:1;
|
||||
|
@ -80,11 +80,6 @@
|
||||
</ItemDefinitionGroup>
|
||||
<ItemGroup>
|
||||
<None Include="changelog.url" />
|
||||
<None Include="etc\download.png" />
|
||||
<None Include="etc\gtk-2.0\gtkrc" />
|
||||
<None Include="etc\gtkpref.png" />
|
||||
<None Include="etc\music.png" />
|
||||
<None Include="etc\system.png" />
|
||||
<None Include="readme.url" />
|
||||
<None Include="share\xml\iso-codes\iso_3166.xml" />
|
||||
<None Include="share\xml\iso-codes\iso_639.xml" />
|
||||
|
@ -1,69 +0,0 @@
|
||||
gtk-icon-sizes = "gtk-menu=13,13:gtk-small-toolbar=16,16:gtk-large-toolbar=24,24:gtk-dnd=32,32"
|
||||
gtk-toolbar-icon-size = small-toolbar
|
||||
|
||||
# disable images in buttons. i've only seen ugly delphi apps use this feature.
|
||||
gtk-button-images = 0
|
||||
|
||||
# enable/disable images in menus. most "stock" microsoft apps don't use these, except sparingly.
|
||||
# the office apps use them heavily, though.
|
||||
gtk-menu-images = 1
|
||||
|
||||
# use the win32 button ordering instead of the GNOME HIG one, where applicable
|
||||
gtk-alternative-button-order = 1
|
||||
|
||||
# use the win32 sort indicators direction, as in Explorer
|
||||
gtk-alternative-sort-arrows = 1
|
||||
|
||||
# Windows users don't expect the PC Speaker beeping at them when they backspace in an empty textview and stuff like that
|
||||
gtk-error-bell = 0
|
||||
|
||||
# hide mnemonic underlines until the Alt key is pressed
|
||||
gtk-auto-mnemonics = 1
|
||||
|
||||
style "msw-default"
|
||||
{
|
||||
GtkWidget::interior-focus = 1
|
||||
GtkOptionMenu::indicator-size = { 9, 5 }
|
||||
GtkOptionMenu::indicator-spacing = { 7, 5, 2, 2 }
|
||||
GtkSpinButton::shadow-type = in
|
||||
|
||||
# Owen and I disagree that these should be themable
|
||||
#GtkUIManager::add-tearoffs = 0
|
||||
#GtkComboBox::add-tearoffs = 0
|
||||
|
||||
GtkComboBox::appears-as-list = 1
|
||||
GtkComboBox::focus-on-click = 0
|
||||
|
||||
GOComboBox::add_tearoffs = 0
|
||||
|
||||
GtkTreeView::allow-rules = 0
|
||||
GtkTreeView::expander-size = 12
|
||||
|
||||
GtkExpander::expander-size = 12
|
||||
|
||||
GtkScrolledWindow::scrollbar_spacing = 1
|
||||
|
||||
GtkSeparatorMenuItem::horizontal-padding = 2
|
||||
|
||||
engine "wimp"
|
||||
{
|
||||
}
|
||||
}
|
||||
class "*" style "msw-default"
|
||||
|
||||
binding "ms-windows-tree-view"
|
||||
{
|
||||
bind "Right" { "expand-collapse-cursor-row" (1,1,0) }
|
||||
bind "Left" { "expand-collapse-cursor-row" (1,0,0) }
|
||||
}
|
||||
|
||||
class "GtkTreeView" binding "ms-windows-tree-view"
|
||||
|
||||
style "msw-combobox-thickness" = "msw-default"
|
||||
{
|
||||
xthickness = 0
|
||||
ythickness = 0
|
||||
}
|
||||
|
||||
widget_class "*TreeView*ComboBox*" style "msw-combobox-thickness"
|
||||
widget_class "*ComboBox*GtkFrame*" style "msw-combobox-thickness"
|
@ -75,10 +75,10 @@ copy "$(DepsRoot)\bin\pixman-1.dll" "$(HexChatRel)"
|
||||
copy "$(DepsRoot)\bin\ssleay32.dll" "$(HexChatRel)"
|
||||
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)\share\doc\hexchat\"
|
||||
xcopy /q /s /i "$(DepsRoot)\share\doc" "$(HexChatRel)\share\doc"
|
||||
xcopy /q /s /i "$(DepsRoot)\share\themes\MS-Windows" "$(HexChatRel)\share\themes\MS-Windows"
|
||||
xcopy /q /s /i "$(DepsRoot)\lib\enchant\libenchant_myspell.dll" "$(HexChatRel)\lib\enchant\"
|
||||
xcopy /q /s /i "$(HexChatBin)hcchecksum.dll" "$(HexChatRel)\plugins\"
|
||||
copy "$(HexChatBin)hcdoat.dll" "$(HexChatRel)\plugins"
|
||||
|
@ -58,7 +58,6 @@ Name: "custom"; Description: "Custom Installation"; Flags: iscustom
|
||||
|
||||
[Components]
|
||||
Name: "libs"; Description: "HexChat"; Types: normal minimal custom; Flags: fixed
|
||||
Name: "gtktheme"; Description: "GTK+ Theme (Native Windows look)"; Types: normal minimal custom; Flags: disablenouninstallwarning
|
||||
Name: "xctext"; Description: "HexChat-Text"; Types: custom; Flags: disablenouninstallwarning
|
||||
Name: "xtm"; Description: "HexChat Theme Manager"; Types: normal custom; Flags: disablenouninstallwarning
|
||||
Name: "translations"; Description: "Translations"; Types: normal custom; Flags: disablenouninstallwarning
|
||||
@ -111,9 +110,9 @@ Source: "portable-mode"; DestDir: "{app}"; Tasks: portable
|
||||
Source: "changelog.url"; DestDir: "{app}"; Flags: ignoreversion; Components: libs
|
||||
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: "share\doc\*"; DestDir: "{app}\share\doc"; Flags: ignoreversion createallsubdirs recursesubdirs; Components: libs
|
||||
Source: "share\themes\MS-Windows\*"; DestDir: "{app}\share\themes\MS-Windows"; 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
|
||||
@ -246,10 +245,10 @@ begin
|
||||
if(CurPageID = wpReady) then
|
||||
begin
|
||||
idpClearFiles;
|
||||
|
||||
|
||||
if not IsTaskSelected('portable') then
|
||||
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';
|
||||
|
@ -64,7 +64,7 @@
|
||||
<Command>
|
||||
<![CDATA[
|
||||
SET SOLUTIONDIR=$(SolutionDir)..\
|
||||
powershell -File "$(SolutionDir)..\version-template.ps1" "$(SolutionDir)..\win32\installer\hexchat.iss.tt" "$(SolutionDir)..\win32\installer\hexchat.iss"
|
||||
powershell -File "$(SolutionDir)..\win32\version-template.ps1" "$(SolutionDir)..\win32\installer\hexchat.iss.tt" "$(SolutionDir)..\win32\installer\hexchat.iss"
|
||||
del "$(OutDir)hexchat.iss"
|
||||
type hexchat.iss >> "$(OutDir)hexchat.iss"
|
||||
$(IsccPath) /dPROJECTDIR="$(ProjectDir)" /dAPPARCH="$(Platform)" "$(OutDir)hexchat.iss"
|
||||
|
@ -1 +1 @@
|
||||
2.10.0
|
||||
2.10.1
|
Reference in New Issue
Block a user