1836 lines
52 KiB
Diff
1836 lines
52 KiB
Diff
diff -ruN --strip-trailing-cr xchat-wdk.orig/plugins/perl/perl.c xchat-wdk/plugins/perl/perl.c
|
|
--- xchat-wdk.orig/plugins/perl/perl.c 2010-08-26 04:18:04 +0200
|
|
+++ xchat-wdk/plugins/perl/perl.c 2010-10-09 12:53:27 +0200
|
|
@@ -22,12 +22,15 @@
|
|
#include <sys/types.h>
|
|
#include <sys/stat.h>
|
|
#include <fcntl.h>
|
|
-#include <dirent.h>
|
|
#ifdef ENABLE_NLS
|
|
#include <locale.h>
|
|
#endif
|
|
#ifdef WIN32
|
|
#include <windows.h>
|
|
+#define _INC_DIRENT
|
|
+#include "../../src/common/dirent.h"
|
|
+#else
|
|
+#include <dirent.h>
|
|
#endif
|
|
|
|
#undef PACKAGE
|
|
@@ -1339,7 +1342,11 @@
|
|
if (GetLastError () == ERROR_BAD_EXE_FORMAT)
|
|
/* http://forum.xchat.org/viewtopic.php?t=3277 */
|
|
thread_mbox ("Cannot use this " PERL_DLL "\n\n"
|
|
+#ifdef _WIN64
|
|
+ "64-bit ActivePerl is required.");
|
|
+#else
|
|
"32-bit ActivePerl is required.");
|
|
+#endif
|
|
else {
|
|
/* a lot of people install this old version */
|
|
lib = LoadLibraryA ("perl56.dll");
|
|
@@ -1354,7 +1361,7 @@
|
|
thread_mbox ("Cannot open " PERL_DLL "\n\n"
|
|
"You must have ActivePerl " PERL_REQUIRED_VERSION " installed in order to\n"
|
|
"run perl scripts.\n\n"
|
|
- "http://www.activestate.com/ActivePerl/\n\n"
|
|
+ "http://www.activestate.com/activeperl/downloads\n\n"
|
|
"Make sure perl's bin directory is in your PATH.");
|
|
}
|
|
}
|
|
diff -ruN --strip-trailing-cr xchat-wdk.orig/plugins/python/python.c xchat-wdk/plugins/python/python.c
|
|
--- xchat-wdk.orig/plugins/python/python.c 2010-05-16 06:31:54 +0200
|
|
+++ xchat-wdk/plugins/python/python.c 2010-10-09 12:53:27 +0200
|
|
@@ -53,10 +53,10 @@
|
|
|
|
#include <glib.h>
|
|
#include <string.h>
|
|
-#include <unistd.h>
|
|
#include <stdlib.h>
|
|
#include <sys/types.h>
|
|
-#include <dirent.h>
|
|
+#include "../../src/common/dirent.h"
|
|
+#include "../../config.h"
|
|
|
|
#include "xchat-plugin.h"
|
|
#include "Python.h"
|
|
@@ -68,7 +68,7 @@
|
|
|
|
#ifdef WIN32
|
|
#undef WITH_THREAD /* Thread support locks up xchat on Win32. */
|
|
-#define VERSION "0.8/2.4" /* Linked to python24.dll */
|
|
+#define VERSION "0.8/2.6" /* Linked to python26.dll */
|
|
#else
|
|
#define VERSION "0.8"
|
|
#endif
|
|
@@ -1161,6 +1161,27 @@
|
|
PyObject_SetAttrString(m, "__version__", o);
|
|
|
|
if (filename) {
|
|
+#ifdef WIN32
|
|
+ /* more info:
|
|
+ * http://bytes.com/topic/python/answers/840542-pyrun_simplefile-crashes#post3364174
|
|
+ * http://effbot.org/pyfaq/pyrun-simplefile-crashes-on-windows-but-not-on-unix-why.htm
|
|
+ */
|
|
+ PyObject* PyFileObject = PyFile_FromString(filename, "r");
|
|
+ if (PyFileObject == NULL) {
|
|
+ xchat_printf(ph, "Can't open file %s: %s\n",
|
|
+ filename, strerror(errno));
|
|
+ goto error;
|
|
+ }
|
|
+
|
|
+ if (PyRun_SimpleFile(PyFile_AsFile(PyFileObject), filename) != 0) {
|
|
+ xchat_printf(ph, "Error loading module %s\n",
|
|
+ filename);
|
|
+ goto error;
|
|
+ }
|
|
+
|
|
+ plugin->filename = filename;
|
|
+ filename = NULL;
|
|
+#else
|
|
FILE *fp;
|
|
|
|
plugin->filename = filename;
|
|
@@ -1184,7 +1205,7 @@
|
|
goto error;
|
|
}
|
|
fclose(fp);
|
|
-
|
|
+#endif
|
|
m = PyDict_GetItemString(PyImport_GetModuleDict(),
|
|
"__main__");
|
|
if (m == NULL) {
|
|
diff -ruN --strip-trailing-cr xchat-wdk.orig/plugins/tcl/tclplugin.c xchat-wdk/plugins/tcl/tclplugin.c
|
|
--- xchat-wdk.orig/plugins/tcl/tclplugin.c 2010-03-21 01:49:42 +0100
|
|
+++ xchat-wdk/plugins/tcl/tclplugin.c 2010-10-09 12:53:27 +0200
|
|
@@ -32,8 +32,6 @@
|
|
#include <windows.h>
|
|
#define bzero(mem, sz) memset((mem), 0, (sz))
|
|
#define bcopy(src, dest, count) memmove((dest), (src), (count))
|
|
-#else
|
|
-#include <unistd.h>
|
|
#endif
|
|
|
|
#include "xchat-plugin.h"
|
|
@@ -2221,7 +2219,7 @@
|
|
#ifdef WIN32
|
|
lib = LoadLibraryA(TCL_DLL);
|
|
if (!lib) {
|
|
- xchat_print(ph, "You must have ActiveTCL installed in order to run Tcl scripts.\n" "http://aspn.activestate.com/ASPN/Tcl/\n" "Make sure Tcl's bin directory is in your PATH.\n\n");
|
|
+ xchat_print(ph, "You must have ActiveTCL 8.5 installed in order to run Tcl scripts.\n" "http://www.activestate.com/activetcl/downloads\n" "Make sure Tcl's bin directory is in your PATH.\n\n");
|
|
return 0;
|
|
}
|
|
FreeLibrary(lib);
|
|
diff -ruN --strip-trailing-cr xchat-wdk.orig/plugins/xdcc/xdcc.c xchat-wdk/plugins/xdcc/xdcc.c
|
|
--- xchat-wdk.orig/plugins/xdcc/xdcc.c 2002-12-26 04:35:09 +0100
|
|
+++ xchat-wdk/plugins/xdcc/xdcc.c 2010-10-09 12:53:27 +0200
|
|
@@ -2,11 +2,11 @@
|
|
|
|
#include <glib.h>
|
|
#include <string.h>
|
|
-#include <unistd.h>
|
|
#include <stdlib.h>
|
|
#include <stdio.h>
|
|
|
|
#include "xchat-plugin.h"
|
|
+#include "../../src/common/xchat.h"
|
|
|
|
static xchat_plugin *ph; /* plugin handle */
|
|
|
|
diff -ruN --strip-trailing-cr xchat-wdk.orig/src/common/cfgfiles.c xchat-wdk/src/common/cfgfiles.c
|
|
--- xchat-wdk.orig/src/common/cfgfiles.c 2010-08-07 09:14:45 +0200
|
|
+++ xchat-wdk/src/common/cfgfiles.c 2010-10-09 12:53:27 +0200
|
|
@@ -17,7 +17,6 @@
|
|
*/
|
|
|
|
#include <fcntl.h>
|
|
-#include <unistd.h>
|
|
#include <stdlib.h>
|
|
#include <string.h>
|
|
#include <stdio.h>
|
|
@@ -30,10 +29,9 @@
|
|
#include "fe.h"
|
|
#include "text.h"
|
|
#include "xchatc.h"
|
|
+#include "portable.h"
|
|
|
|
-#ifdef WIN32
|
|
-#define XCHAT_DIR "X-Chat 2"
|
|
-#else
|
|
+#ifndef WIN32
|
|
#define XCHAT_DIR ".xchat2"
|
|
#endif
|
|
#define DEF_FONT "Monospace 9"
|
|
@@ -308,12 +306,19 @@
|
|
{
|
|
if (!xdir_fs)
|
|
{
|
|
- char out[256];
|
|
+ if (portable_mode ())
|
|
+ {
|
|
+ xdir_fs = ".\\config";
|
|
+ }
|
|
+ else
|
|
+ {
|
|
+ char out[256];
|
|
|
|
- if (!get_reg_str ("Software\\Microsoft\\Windows\\CurrentVersion\\"
|
|
- "Explorer\\Shell Folders", "AppData", out, sizeof (out)))
|
|
- return "./config";
|
|
- xdir_fs = g_strdup_printf ("%s\\" XCHAT_DIR, out);
|
|
+ if (!get_reg_str ("Software\\Microsoft\\Windows\\CurrentVersion\\"
|
|
+ "Explorer\\Shell Folders", "AppData", out, sizeof (out)))
|
|
+ return "./config";
|
|
+ xdir_fs = g_strdup_printf ("%s\\" "X-Chat 2", out);
|
|
+ }
|
|
}
|
|
return xdir_fs;
|
|
}
|
|
@@ -393,7 +398,7 @@
|
|
{"dcc_blocksize", P_OFFINT (dcc_blocksize), TYPE_INT},
|
|
{"dcc_completed_dir", P_OFFSET (dcc_completed_dir), TYPE_STR},
|
|
{"dcc_dir", P_OFFSET (dccdir), TYPE_STR},
|
|
- {"dcc_fast_send", P_OFFINT (fastdccsend), TYPE_BOOL},
|
|
+ /* {"dcc_fast_send", P_OFFINT (fastdccsend), TYPE_BOOL}, */
|
|
{"dcc_global_max_get_cps", P_OFFINT (dcc_global_max_get_cps), TYPE_INT},
|
|
{"dcc_global_max_send_cps", P_OFFINT (dcc_global_max_send_cps), TYPE_INT},
|
|
{"dcc_ip", P_OFFSET (dcc_ip_str), TYPE_STR},
|
|
@@ -536,6 +541,7 @@
|
|
|
|
{"tab_chans", P_OFFINT (tabchannels), TYPE_BOOL},
|
|
{"tab_dialogs", P_OFFINT (privmsgtab), TYPE_BOOL},
|
|
+ {"tab_icons", P_OFFINT (tab_icons), TYPE_BOOL},
|
|
{"tab_layout", P_OFFINT (tab_layout), TYPE_INT},
|
|
{"tab_new_to_front", P_OFFINT (newtabstofront), TYPE_INT},
|
|
{"tab_notices", P_OFFINT (notices_tabs), TYPE_BOOL},
|
|
@@ -546,9 +552,11 @@
|
|
{"tab_sort", P_OFFINT (tab_sort), TYPE_BOOL},
|
|
{"tab_trunc", P_OFFINT (truncchans), TYPE_INT},
|
|
{"tab_utils", P_OFFINT (windows_as_tabs), TYPE_BOOL},
|
|
+ {"tab_xp", P_OFFINT (tab_xp), TYPE_BOOL},
|
|
|
|
{"text_background", P_OFFSET (background), TYPE_STR},
|
|
{"text_color_nicks", P_OFFINT (colorednicks), TYPE_BOOL},
|
|
+ {"text_emoticons", P_OFFINT (emoticons), TYPE_BOOL},
|
|
{"text_font", P_OFFSET (font_normal), TYPE_STR},
|
|
{"text_indent", P_OFFINT (indent_nicks), TYPE_BOOL},
|
|
{"text_max_indent", P_OFFINT (max_auto_indent), TYPE_INT},
|
|
@@ -561,7 +569,7 @@
|
|
{"text_tint_blue", P_OFFINT (tint_blue), TYPE_INT},
|
|
{"text_tint_green", P_OFFINT (tint_green), TYPE_INT},
|
|
{"text_tint_red", P_OFFINT (tint_red), TYPE_INT},
|
|
- {"text_transparent", P_OFFINT (transparent), TYPE_BOOL},
|
|
+ /* {"text_transparent", P_OFFINT (transparent), TYPE_BOOL}, */
|
|
{"text_wordwrap", P_OFFINT (wordwrap), TYPE_BOOL},
|
|
|
|
{0, 0, 0},
|
|
@@ -624,7 +632,7 @@
|
|
prefs.indent_nicks = 1;
|
|
prefs.thin_separator = 1;
|
|
prefs._tabs_position = 2; /* 2 = left */
|
|
- prefs.fastdccsend = 1;
|
|
+ /* prefs.fastdccsend = 1; */
|
|
prefs.wordwrap = 1;
|
|
prefs.autosave = 1;
|
|
prefs.autodialog = 1;
|
|
@@ -648,6 +656,7 @@
|
|
prefs.dialog_height = 256;
|
|
prefs.gui_join_dialog = 1;
|
|
prefs.gui_quit_dialog = 1;
|
|
+ prefs.slist_skip = 1;
|
|
prefs.dcctimeout = 180;
|
|
prefs.dccstalltimeout = 60;
|
|
prefs.notify_timeout = 15;
|
|
diff -ruN --strip-trailing-cr xchat-wdk.orig/src/common/chanopt.c xchat-wdk/src/common/chanopt.c
|
|
--- xchat-wdk.orig/src/common/chanopt.c 2008-06-15 06:40:29 +0200
|
|
+++ xchat-wdk/src/common/chanopt.c 2010-10-09 12:53:27 +0200
|
|
@@ -3,7 +3,6 @@
|
|
#include <stdio.h>
|
|
#include <string.h>
|
|
#include <stdlib.h>
|
|
-#include <unistd.h>
|
|
#include <sys/types.h>
|
|
#include <sys/stat.h>
|
|
#include <fcntl.h>
|
|
diff -ruN --strip-trailing-cr xchat-wdk.orig/src/common/ctcp.c xchat-wdk/src/common/ctcp.c
|
|
--- xchat-wdk.orig/src/common/ctcp.c 2010-05-30 04:28:04 +0200
|
|
+++ xchat-wdk/src/common/ctcp.c 2010-10-09 12:53:27 +0200
|
|
@@ -18,7 +18,6 @@
|
|
|
|
#include <stdio.h>
|
|
#include <string.h>
|
|
-#include <unistd.h>
|
|
#include <stdlib.h>
|
|
|
|
#include "xchat.h"
|
|
@@ -134,7 +133,7 @@
|
|
|
|
if (!strcasecmp (msg, "VERSION") && !prefs.hidever)
|
|
{
|
|
- snprintf (outbuf, sizeof (outbuf), "VERSION xchat "PACKAGE_VERSION" %s",
|
|
+ snprintf (outbuf, sizeof (outbuf), "VERSION XChat-WDK "PACKAGE_VERSION" / %s",
|
|
get_cpu_str ());
|
|
serv->p_nctcp (serv, nick, outbuf);
|
|
}
|
|
diff -ruN --strip-trailing-cr xchat-wdk.orig/src/common/dcc.c xchat-wdk/src/common/dcc.c
|
|
--- xchat-wdk.orig/src/common/dcc.c 2010-05-30 04:28:04 +0200
|
|
+++ xchat-wdk/src/common/dcc.c 2010-10-09 12:53:27 +0200
|
|
@@ -31,7 +31,6 @@
|
|
#include <time.h>
|
|
#include <errno.h>
|
|
#include <sys/stat.h>
|
|
-#include <unistd.h>
|
|
#include <fcntl.h>
|
|
|
|
#define WANTSOCKET
|
|
@@ -57,6 +56,7 @@
|
|
|
|
#ifdef USE_DCC64
|
|
#define BIG_STR_TO_INT(x) strtoull(x,NULL,10)
|
|
+#define stat _stat64
|
|
#else
|
|
#define BIG_STR_TO_INT(x) strtoul(x,NULL,10)
|
|
#endif
|
|
@@ -1983,9 +1983,7 @@
|
|
return TRUE;
|
|
|
|
/* now handle case-insensitive Filesystems: HFS+, FAT */
|
|
-#ifdef WIN32
|
|
-#warning no win32 implementation - behaviour may be unreliable
|
|
-#else
|
|
+#ifndef WIN32
|
|
/* this fstat() shouldn't really fail */
|
|
if ((dcc->fp == -1 ? stat (dcc->destfile_fs, &st_a) : fstat (dcc->fp, &st_a)) == -1)
|
|
return FALSE;
|
|
diff -ruN --strip-trailing-cr xchat-wdk.orig/src/common/ignore.c xchat-wdk/src/common/ignore.c
|
|
--- xchat-wdk.orig/src/common/ignore.c 2006-04-15 09:00:39 +0200
|
|
+++ xchat-wdk/src/common/ignore.c 2010-10-09 12:53:27 +0200
|
|
@@ -19,7 +19,6 @@
|
|
#include <stdlib.h>
|
|
#include <stdio.h>
|
|
#include <string.h>
|
|
-#include <unistd.h>
|
|
#include <sys/types.h>
|
|
#include <sys/stat.h>
|
|
#include <fcntl.h>
|
|
diff -ruN --strip-trailing-cr xchat-wdk.orig/src/common/inbound.c xchat-wdk/src/common/inbound.c
|
|
--- xchat-wdk.orig/src/common/inbound.c 2010-05-30 04:28:04 +0200
|
|
+++ xchat-wdk/src/common/inbound.c 2010-10-09 12:53:27 +0200
|
|
@@ -21,7 +21,6 @@
|
|
#include <stdlib.h>
|
|
#include <stdio.h>
|
|
#include <sys/types.h>
|
|
-#include <unistd.h>
|
|
#include <time.h>
|
|
|
|
#define WANTARPA
|
|
diff -ruN --strip-trailing-cr xchat-wdk.orig/src/common/inet.h xchat-wdk/src/common/inet.h
|
|
--- xchat-wdk.orig/src/common/inet.h 2005-09-03 12:57:48 +0200
|
|
+++ xchat-wdk/src/common/inet.h 2010-10-09 12:53:27 +0200
|
|
@@ -24,9 +24,8 @@
|
|
#ifdef USE_IPV6
|
|
#include <winsock2.h>
|
|
#include <ws2tcpip.h>
|
|
-#include <tpipv6.h>
|
|
#else
|
|
-#include <winsock.h>
|
|
+#include <winsock2.h>
|
|
#endif
|
|
|
|
#define set_blocking(sok) { \
|
|
diff -ruN --strip-trailing-cr xchat-wdk.orig/src/common/msproxy.c xchat-wdk/src/common/msproxy.c
|
|
--- xchat-wdk.orig/src/common/msproxy.c 2006-04-16 17:32:17 +0200
|
|
+++ xchat-wdk/src/common/msproxy.c 2010-10-09 12:53:27 +0200
|
|
@@ -26,7 +26,6 @@
|
|
#include <stdio.h>
|
|
#include <string.h>
|
|
#include <stdlib.h>
|
|
-#include <unistd.h>
|
|
#include <fcntl.h>
|
|
|
|
#define WANTSOCKET
|
|
diff -ruN --strip-trailing-cr xchat-wdk.orig/src/common/network.c xchat-wdk/src/common/network.c
|
|
--- xchat-wdk.orig/src/common/network.c 2006-04-16 10:11:26 +0200
|
|
+++ xchat-wdk/src/common/network.c 2010-10-09 12:53:27 +0200
|
|
@@ -21,7 +21,6 @@
|
|
#include <stdlib.h>
|
|
#include <string.h>
|
|
#include <stdio.h>
|
|
-#include <unistd.h>
|
|
#include <glib.h>
|
|
|
|
#include "../../config.h" /* grab USE_IPV6 and LOOKUPD defines */
|
|
diff -ruN --strip-trailing-cr xchat-wdk.orig/src/common/notify.c xchat-wdk/src/common/notify.c
|
|
--- xchat-wdk.orig/src/common/notify.c 2008-06-08 09:58:58 +0200
|
|
+++ xchat-wdk/src/common/notify.c 2010-10-09 12:53:27 +0200
|
|
@@ -22,7 +22,6 @@
|
|
#include <sys/types.h>
|
|
#include <sys/stat.h>
|
|
#include <fcntl.h>
|
|
-#include <unistd.h>
|
|
#include <time.h>
|
|
|
|
#include "xchat.h"
|
|
diff -ruN --strip-trailing-cr xchat-wdk.orig/src/common/outbound.c xchat-wdk/src/common/outbound.c
|
|
--- xchat-wdk.orig/src/common/outbound.c 2010-05-30 04:28:04 +0200
|
|
+++ xchat-wdk/src/common/outbound.c 2010-10-09 12:53:27 +0200
|
|
@@ -32,7 +32,6 @@
|
|
#include <sys/wait.h>
|
|
#endif
|
|
|
|
-#include <unistd.h>
|
|
#include <time.h>
|
|
#include <signal.h>
|
|
#include <sys/stat.h>
|
|
diff -ruN --strip-trailing-cr xchat-wdk.orig/src/common/plugin-timer.c xchat-wdk/src/common/plugin-timer.c
|
|
--- xchat-wdk.orig/src/common/plugin-timer.c 2005-02-02 11:03:51 +0100
|
|
+++ xchat-wdk/src/common/plugin-timer.c 2010-10-09 12:53:27 +0200
|
|
@@ -1,7 +1,7 @@
|
|
#include <stdlib.h>
|
|
#include <string.h>
|
|
#include <glib.h>
|
|
-#include "xchat-plugin.h"
|
|
+#include <xchat-plugin.h>
|
|
|
|
#ifdef WIN32
|
|
#define strcasecmp stricmp
|
|
diff -ruN --strip-trailing-cr xchat-wdk.orig/src/common/plugin.c xchat-wdk/src/common/plugin.c
|
|
--- xchat-wdk.orig/src/common/plugin.c 2010-08-14 03:46:21 +0200
|
|
+++ xchat-wdk/src/common/plugin.c 2010-10-09 12:53:27 +0200
|
|
@@ -34,7 +34,7 @@
|
|
#include "text.h"
|
|
#define PLUGIN_C
|
|
typedef struct session xchat_context;
|
|
-#include "xchat-plugin.h"
|
|
+#include <xchat-plugin.h>
|
|
#include "plugin.h"
|
|
|
|
|
|
@@ -1212,7 +1212,7 @@
|
|
static const char * const dcc_fields[] =
|
|
{
|
|
"iaddress32","icps", "sdestfile","sfile", "snick", "iport",
|
|
- "ipos", "iposhigh", "iresume", "iresumehigh" "isize", "isizehigh", "istatus", "itype", NULL
|
|
+ "ipos", "iposhigh", "iresume", "iresumehigh", "isize", "isizehigh", "istatus", "itype", NULL
|
|
};
|
|
static const char * const channels_fields[] =
|
|
{
|
|
diff -ruN --strip-trailing-cr xchat-wdk.orig/src/common/proto-irc.c xchat-wdk/src/common/proto-irc.c
|
|
--- xchat-wdk.orig/src/common/proto-irc.c 2010-05-30 04:28:04 +0200
|
|
+++ xchat-wdk/src/common/proto-irc.c 2010-10-09 12:53:27 +0200
|
|
@@ -18,7 +18,6 @@
|
|
|
|
/* IRC RFC1459(+commonly used extensions) protocol implementation */
|
|
|
|
-#include <unistd.h>
|
|
#include <string.h>
|
|
#include <stdio.h>
|
|
#include <stdlib.h>
|
|
diff -ruN --strip-trailing-cr xchat-wdk.orig/src/common/server.c xchat-wdk/src/common/server.c
|
|
--- xchat-wdk.orig/src/common/server.c 2010-05-30 04:28:04 +0200
|
|
+++ xchat-wdk/src/common/server.c 2010-10-09 12:53:27 +0200
|
|
@@ -26,7 +26,6 @@
|
|
#include <stdio.h>
|
|
#include <string.h>
|
|
#include <stdlib.h>
|
|
-#include <unistd.h>
|
|
#include <errno.h>
|
|
#include <fcntl.h>
|
|
|
|
@@ -1388,12 +1387,7 @@
|
|
static int
|
|
http_read_line (int print_fd, int sok, char *buf, int len)
|
|
{
|
|
-#ifdef WIN32
|
|
- /* make sure waitline() uses recv() or it'll fail on win32 */
|
|
- len = waitline (sok, buf, len, FALSE);
|
|
-#else
|
|
len = waitline (sok, buf, len, TRUE);
|
|
-#endif
|
|
if (len >= 1)
|
|
{
|
|
/* print the message out (send it to the parent process) */
|
|
@@ -1738,7 +1732,7 @@
|
|
}
|
|
#endif
|
|
serv->childpid = pid;
|
|
- serv->iotag = fe_input_add (serv->childread, FIA_READ, server_read_child,
|
|
+ serv->iotag = fe_input_add (serv->childread, FIA_READ|FIA_FD, server_read_child,
|
|
serv);
|
|
}
|
|
|
|
diff -ruN --strip-trailing-cr xchat-wdk.orig/src/common/servlist.c xchat-wdk/src/common/servlist.c
|
|
--- xchat-wdk.orig/src/common/servlist.c 2010-05-16 09:43:49 +0200
|
|
+++ xchat-wdk/src/common/servlist.c 2010-10-09 12:53:27 +0200
|
|
@@ -21,7 +21,6 @@
|
|
#include <string.h>
|
|
#include <sys/types.h>
|
|
#include <sys/stat.h>
|
|
-#include <unistd.h>
|
|
|
|
#include "xchat.h"
|
|
#include <glib/ghash.h>
|
|
diff -ruN --strip-trailing-cr xchat-wdk.orig/src/common/ssl.c xchat-wdk/src/common/ssl.c
|
|
--- xchat-wdk.orig/src/common/ssl.c 2007-03-28 10:35:06 +0200
|
|
+++ xchat-wdk/src/common/ssl.c 2010-10-09 12:53:27 +0200
|
|
@@ -17,12 +17,12 @@
|
|
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
|
|
*/
|
|
|
|
+#include "inet.h" /* make it first to avoid macro redefinitions */
|
|
#include <openssl/ssl.h> /* SSL_() */
|
|
#include <openssl/err.h> /* ERR_() */
|
|
#include <time.h> /* asctime() */
|
|
#include <string.h> /* strncpy() */
|
|
#include "ssl.h" /* struct cert_info */
|
|
-#include "inet.h"
|
|
#include "../../config.h" /* HAVE_SNPRINTF */
|
|
|
|
#ifndef HAVE_SNPRINTF
|
|
diff -ruN --strip-trailing-cr xchat-wdk.orig/src/common/text.c xchat-wdk/src/common/text.c
|
|
--- xchat-wdk.orig/src/common/text.c 2010-05-30 04:28:04 +0200
|
|
+++ xchat-wdk/src/common/text.c 2010-10-09 12:53:27 +0200
|
|
@@ -19,13 +19,11 @@
|
|
#include <stdlib.h>
|
|
#include <stdio.h>
|
|
#include <string.h>
|
|
-#include <unistd.h>
|
|
#include <ctype.h>
|
|
#include <time.h>
|
|
#include <sys/types.h>
|
|
#include <fcntl.h>
|
|
#include <sys/stat.h>
|
|
-#include <sys/mman.h>
|
|
|
|
#include "xchat.h"
|
|
#include <glib/ghash.h>
|
|
@@ -271,9 +269,6 @@
|
|
char *text;
|
|
time_t stamp;
|
|
int lines;
|
|
- char *map, *end_map;
|
|
- struct stat statbuf;
|
|
- const char *begin, *eol;
|
|
|
|
if (sess->text_scrollback == SET_DEFAULT)
|
|
{
|
|
@@ -293,32 +288,9 @@
|
|
if (fh == -1)
|
|
return;
|
|
|
|
- if (fstat (fh, &statbuf) < 0)
|
|
- return;
|
|
-
|
|
- map = mmap (NULL, statbuf.st_size, PROT_READ, MAP_PRIVATE, fh, 0);
|
|
- if (map == MAP_FAILED)
|
|
- return;
|
|
-
|
|
- end_map = map + statbuf.st_size;
|
|
-
|
|
lines = 0;
|
|
- begin = map;
|
|
- while (begin < end_map)
|
|
+ while (waitline (fh, buf, sizeof buf, FALSE) != -1)
|
|
{
|
|
- int n_bytes;
|
|
-
|
|
- eol = memchr (begin, '\n', end_map - begin);
|
|
-
|
|
- if (!eol)
|
|
- eol = end_map;
|
|
-
|
|
- n_bytes = MIN (eol - begin, sizeof (buf) - 1);
|
|
-
|
|
- strncpy (buf, begin, n_bytes);
|
|
-
|
|
- buf[n_bytes] = 0;
|
|
-
|
|
if (buf[0] == 'T')
|
|
{
|
|
if (sizeof (time_t) == 4)
|
|
@@ -334,8 +306,6 @@
|
|
}
|
|
lines++;
|
|
}
|
|
-
|
|
- begin = eol + 1;
|
|
}
|
|
|
|
sess->scrollwritten = lines;
|
|
@@ -349,7 +319,6 @@
|
|
/*EMIT_SIGNAL (XP_TE_GENMSG, sess, "*", buf, NULL, NULL, NULL, 0);*/
|
|
}
|
|
|
|
- munmap (map, statbuf.st_size);
|
|
close (fh);
|
|
}
|
|
|
|
diff -ruN --strip-trailing-cr xchat-wdk.orig/src/common/util.c xchat-wdk/src/common/util.c
|
|
--- xchat-wdk.orig/src/common/util.c 2008-02-07 02:50:37 +0100
|
|
+++ xchat-wdk/src/common/util.c 2010-10-09 12:53:27 +0200
|
|
@@ -16,11 +16,13 @@
|
|
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
|
|
*/
|
|
|
|
+#define WANTSOCKET
|
|
+#include "inet.h" /* make it first to avoid macro redefinitions */
|
|
+
|
|
#define __APPLE_API_STRICT_CONFORMANCE
|
|
|
|
#define _FILE_OFFSET_BITS 64
|
|
#include <stdio.h>
|
|
-#include <unistd.h>
|
|
#include <string.h>
|
|
#include <stdlib.h>
|
|
#include <sys/types.h>
|
|
@@ -35,7 +37,7 @@
|
|
#include <sys/utsname.h>
|
|
#endif
|
|
#include <fcntl.h>
|
|
-#include <dirent.h>
|
|
+#include "dirent.h"
|
|
#include <errno.h>
|
|
#include "xchat.h"
|
|
#include "xchatc.h"
|
|
@@ -44,9 +46,6 @@
|
|
#include "util.h"
|
|
#include "../../config.h"
|
|
|
|
-#define WANTSOCKET
|
|
-#include "inet.h"
|
|
-
|
|
#if defined (USING_FREEBSD) || defined (__APPLE__)
|
|
#include <sys/sysctl.h>
|
|
#endif
|
|
@@ -54,9 +53,11 @@
|
|
#include <socks.h>
|
|
#endif
|
|
|
|
+#ifndef ENABLE_NLS
|
|
#ifndef HAVE_SNPRINTF
|
|
#define snprintf g_snprintf
|
|
#endif
|
|
+#endif
|
|
|
|
#ifdef USE_DEBUG
|
|
|
|
@@ -628,26 +629,79 @@
|
|
get_cpu_str (void)
|
|
{
|
|
static char verbuf[64];
|
|
- OSVERSIONINFO osvi;
|
|
- SYSTEM_INFO si;
|
|
+ static char winver[20];
|
|
+ OSVERSIONINFOEX osvi;
|
|
double mhz;
|
|
|
|
- osvi.dwOSVersionInfoSize = sizeof (OSVERSIONINFO);
|
|
+ osvi.dwOSVersionInfoSize = sizeof (OSVERSIONINFOEX);
|
|
GetVersionEx (&osvi);
|
|
- GetSystemInfo (&si);
|
|
+
|
|
+ switch (osvi.dwMajorVersion)
|
|
+ {
|
|
+ case 5:
|
|
+ switch (osvi.dwMinorVersion)
|
|
+ {
|
|
+ case 1:
|
|
+ strcpy (winver, "XP");
|
|
+ break;
|
|
+ case 2:
|
|
+ if (osvi.wProductType == VER_NT_WORKSTATION)
|
|
+ {
|
|
+ strcpy (winver, "XP x64 Edition");
|
|
+ }
|
|
+ else
|
|
+ {
|
|
+ if (GetSystemMetrics(SM_SERVERR2) == 0)
|
|
+ {
|
|
+ strcpy (winver, "Server 2003");
|
|
+ }
|
|
+ else
|
|
+ {
|
|
+ strcpy (winver, "Server 2003 R2");
|
|
+ }
|
|
+ }
|
|
+ break;
|
|
+ }
|
|
+ break;
|
|
+ case 6:
|
|
+ switch (osvi.dwMinorVersion)
|
|
+ {
|
|
+ case 0:
|
|
+ if (osvi.wProductType == VER_NT_WORKSTATION)
|
|
+ {
|
|
+ strcpy (winver, "Vista");
|
|
+ }
|
|
+ else
|
|
+ {
|
|
+ strcpy (winver, "Server 2008");
|
|
+ }
|
|
+ break;
|
|
+ case 1:
|
|
+ if (osvi.wProductType == VER_NT_WORKSTATION)
|
|
+ {
|
|
+ strcpy (winver, "7");
|
|
+ }
|
|
+ else
|
|
+ {
|
|
+ strcpy (winver, "Server 2008 R2");
|
|
+ }
|
|
+ break;
|
|
+ }
|
|
+ break;
|
|
+ }
|
|
|
|
mhz = get_mhz ();
|
|
if (mhz)
|
|
{
|
|
double cpuspeed = ( mhz > 1000 ) ? mhz / 1000 : mhz;
|
|
const char *cpuspeedstr = ( mhz > 1000 ) ? "GHz" : "MHz";
|
|
- sprintf (verbuf, "Windows %ld.%ld [i%d86/%.2f%s]",
|
|
- osvi.dwMajorVersion, osvi.dwMinorVersion, si.wProcessorLevel,
|
|
- cpuspeed, cpuspeedstr);
|
|
- } else
|
|
- sprintf (verbuf, "Windows %ld.%ld [i%d86]",
|
|
- osvi.dwMajorVersion, osvi.dwMinorVersion, si.wProcessorLevel);
|
|
-
|
|
+ sprintf (verbuf, "Windows %s [%.2f%s]", winver, cpuspeed, cpuspeedstr);
|
|
+ }
|
|
+ else
|
|
+ {
|
|
+ sprintf (verbuf, "Windows %s", winver);
|
|
+ }
|
|
+
|
|
return verbuf;
|
|
}
|
|
|
|
diff -ruN --strip-trailing-cr xchat-wdk.orig/src/common/xchat.c xchat-wdk/src/common/xchat.c
|
|
--- xchat-wdk.orig/src/common/xchat.c 2008-06-08 09:58:58 +0200
|
|
+++ xchat-wdk/src/common/xchat.c 2010-10-09 12:53:27 +0200
|
|
@@ -22,7 +22,6 @@
|
|
#include <time.h>
|
|
#include <sys/types.h>
|
|
#include <sys/stat.h>
|
|
-#include <unistd.h>
|
|
|
|
#define WANTSOCKET
|
|
#include "inet.h"
|
|
@@ -38,7 +37,7 @@
|
|
#include "cfgfiles.h"
|
|
#include "chanopt.h"
|
|
#include "ignore.h"
|
|
-#include "xchat-plugin.h"
|
|
+#include <xchat-plugin.h>
|
|
#include "plugin.h"
|
|
#include "plugin-timer.h"
|
|
#include "notify.h"
|
|
@@ -583,6 +582,7 @@
|
|
"NAME DMSG\n" "CMD msg =%2 &3\n\n"\
|
|
"NAME EXIT\n" "CMD quit\n\n"\
|
|
"NAME GREP\n" "CMD lastlog -r &2\n\n"\
|
|
+ "NAME IGNALL\n" "CMD ignore %2!*@* ALL\n\n"\
|
|
"NAME J\n" "CMD join &2\n\n"\
|
|
"NAME KILL\n" "CMD quote KILL %2 :&3\n\n"\
|
|
"NAME LEAVE\n" "CMD part &2\n\n"\
|
|
diff -ruN --strip-trailing-cr xchat-wdk.orig/src/common/xchat.h xchat-wdk/src/common/xchat.h
|
|
--- xchat-wdk.orig/src/common/xchat.h 2010-08-07 09:14:45 +0200
|
|
+++ xchat-wdk/src/common/xchat.h 2010-10-09 12:53:27 +0200
|
|
@@ -12,12 +12,14 @@
|
|
|
|
#include "history.h"
|
|
|
|
+#ifndef ENABLE_NLS
|
|
#ifndef HAVE_SNPRINTF
|
|
#define snprintf g_snprintf
|
|
#endif
|
|
|
|
#ifndef HAVE_VSNPRINTF
|
|
-#define vsnprintf g_vsnprintf
|
|
+#define vsnprintf _vsnprintf
|
|
+#endif
|
|
#endif
|
|
|
|
#ifdef USE_DEBUG
|
|
@@ -58,7 +60,7 @@
|
|
|
|
#ifdef WIN32 /* for win32 */
|
|
#define OFLAGS O_BINARY
|
|
-#define sleep(t) _sleep(t*1000)
|
|
+#define sleep(t) Sleep(t*1000)
|
|
#include <direct.h>
|
|
#define F_OK 0
|
|
#define X_OK 1
|
|
@@ -297,6 +299,9 @@
|
|
unsigned int confmode;
|
|
unsigned int utf8_locale;
|
|
unsigned int identd;
|
|
+ unsigned int emoticons;
|
|
+ unsigned int tab_icons;
|
|
+ unsigned int tab_xp;
|
|
|
|
unsigned int ctcp_number_limit; /*flood */
|
|
unsigned int ctcp_time_limit; /*seconds of floods */
|
|
diff -ruN --strip-trailing-cr xchat-wdk.orig/src/fe-gtk/about.c xchat-wdk/src/fe-gtk/about.c
|
|
--- xchat-wdk.orig/src/fe-gtk/about.c 2010-05-16 09:43:49 +0200
|
|
+++ xchat-wdk/src/fe-gtk/about.c 2010-10-09 12:53:27 +0200
|
|
@@ -39,6 +39,7 @@
|
|
|
|
#include "../common/xchat.h"
|
|
#include "../common/util.h"
|
|
+#include "../common/portable.h"
|
|
#include "palette.h"
|
|
#include "pixmaps.h"
|
|
#include "gtkutil.h"
|
|
@@ -87,6 +88,19 @@
|
|
char buf[512];
|
|
const char *locale = NULL;
|
|
extern GtkWindow *parent_window; /* maingui.c */
|
|
+ SYSTEM_INFO si;
|
|
+ unsigned short int cpu_arch;
|
|
+
|
|
+ GetSystemInfo (&si);
|
|
+
|
|
+ if (si.wProcessorArchitecture == 9)
|
|
+ {
|
|
+ cpu_arch = 64;
|
|
+ }
|
|
+ else
|
|
+ {
|
|
+ cpu_arch = 86;
|
|
+ }
|
|
|
|
if (about)
|
|
{
|
|
@@ -95,7 +109,7 @@
|
|
}
|
|
|
|
about = gtk_dialog_new ();
|
|
- gtk_window_set_position (GTK_WINDOW (about), GTK_WIN_POS_CENTER);
|
|
+ gtk_window_set_position (GTK_WINDOW (about), GTK_WIN_POS_CENTER_ON_PARENT);
|
|
gtk_window_set_resizable (GTK_WINDOW (about), FALSE);
|
|
gtk_window_set_title (GTK_WINDOW (about), _("About "DISPLAY_NAME));
|
|
if (parent_window)
|
|
@@ -114,35 +128,40 @@
|
|
g_get_charset (&locale);
|
|
(snprintf) (buf, sizeof (buf),
|
|
"<span size=\"x-large\"><b>"DISPLAY_NAME" "PACKAGE_VERSION"</b></span>\n\n"
|
|
- "%s\n\n"
|
|
#ifdef WIN32
|
|
- /* leave this message to avoid time wasting bug reports! */
|
|
- "This version is unofficial and comes with no support.\n\n"
|
|
-#endif
|
|
- "%s\n"
|
|
+ "<b>XChat Base</b>: 2.8.8\n\n"
|
|
+ "<b>OS</b>: %s\n"
|
|
"<b>Charset</b>: %s "
|
|
-#ifdef WIN32
|
|
"<b>GTK+</b>: %i.%i.%i\n"
|
|
+ "<b>Compiled</b>: "__DATE__"\n"
|
|
+ "<b>Portable Mode</b>: %s\n"
|
|
+ "<b>Build Type</b>: x%d\n\n"
|
|
+ "<small>This version is unofficial and comes with no support.\n"
|
|
+ "\302\251 1998-2010 Peter \305\275elezn\303\275 <zed@xchat.org></small>",
|
|
+ get_cpu_str (),
|
|
+ locale,
|
|
+ gtk_major_version,
|
|
+ gtk_minor_version,
|
|
+ gtk_micro_version,
|
|
+ (portable_mode () ? "Yes" : "No"),
|
|
+ cpu_arch
|
|
#else
|
|
+ "%s\n\n"
|
|
+ "%s\n"
|
|
+ "<b>Charset</b>: %s "
|
|
"<b>Renderer</b>: %s\n"
|
|
-#endif
|
|
"<b>Compiled</b>: "__DATE__"\n\n"
|
|
"<small>\302\251 1998-2010 Peter \305\275elezn\303\275 <zed@xchat.org></small>",
|
|
- _("A multiplatform IRC Client"),
|
|
- get_cpu_str(),
|
|
- locale,
|
|
-#ifdef WIN32
|
|
- gtk_major_version,
|
|
- gtk_minor_version,
|
|
- gtk_micro_version
|
|
-#else
|
|
+ _("A multiplatform IRC Client"),
|
|
+ get_cpu_str (),
|
|
+ locale,
|
|
#ifdef USE_XFT
|
|
- "Xft"
|
|
+ "Xft"
|
|
#else
|
|
- "Pango"
|
|
+ "Pango"
|
|
#endif
|
|
#endif
|
|
- );
|
|
+ );
|
|
gtk_label_set_markup (GTK_LABEL (label), buf);
|
|
gtk_label_set_justify (GTK_LABEL (label), GTK_JUSTIFY_CENTER);
|
|
|
|
diff -ruN --strip-trailing-cr xchat-wdk.orig/src/fe-gtk/banlist.c xchat-wdk/src/fe-gtk/banlist.c
|
|
--- xchat-wdk.orig/src/fe-gtk/banlist.c 2010-05-16 05:20:22 +0200
|
|
+++ xchat-wdk/src/fe-gtk/banlist.c 2010-10-09 12:53:27 +0200
|
|
@@ -19,7 +19,6 @@
|
|
#include <stdio.h>
|
|
#include <stdlib.h>
|
|
#include <string.h>
|
|
-#include <unistd.h>
|
|
#include <fcntl.h>
|
|
#include <time.h>
|
|
|
|
diff -ruN --strip-trailing-cr xchat-wdk.orig/src/fe-gtk/chanlist.c xchat-wdk/src/fe-gtk/chanlist.c
|
|
--- xchat-wdk.orig/src/fe-gtk/chanlist.c 2008-02-24 04:46:02 +0100
|
|
+++ xchat-wdk/src/fe-gtk/chanlist.c 2010-10-09 12:53:27 +0200
|
|
@@ -19,7 +19,6 @@
|
|
#include <stdio.h>
|
|
#include <stdlib.h>
|
|
#include <string.h>
|
|
-#include <unistd.h>
|
|
#include <fcntl.h>
|
|
#include <time.h>
|
|
|
|
diff -ruN --strip-trailing-cr xchat-wdk.orig/src/fe-gtk/chanview-tabs.c xchat-wdk/src/fe-gtk/chanview-tabs.c
|
|
--- xchat-wdk.orig/src/fe-gtk/chanview-tabs.c 2005-11-21 06:25:39 +0100
|
|
+++ xchat-wdk/src/fe-gtk/chanview-tabs.c 2010-10-09 12:53:27 +0200
|
|
@@ -144,8 +144,8 @@
|
|
for (i = adj->value; ((i > new_value) && (tab_left_is_moving)); i -= 0.1)
|
|
{
|
|
gtk_adjustment_set_value (adj, i);
|
|
- while (g_main_pending ())
|
|
- g_main_iteration (TRUE);
|
|
+ while (g_main_context_pending (NULL))
|
|
+ g_main_context_iteration (NULL, TRUE);
|
|
}
|
|
|
|
gtk_adjustment_set_value (adj, new_value);
|
|
@@ -191,8 +191,8 @@
|
|
for (i = adj->value; ((i < new_value) && (tab_right_is_moving)); i += 0.1)
|
|
{
|
|
gtk_adjustment_set_value (adj, i);
|
|
- while (g_main_pending ())
|
|
- g_main_iteration (TRUE);
|
|
+ while (g_main_context_pending (NULL))
|
|
+ g_main_context_iteration (NULL, TRUE);
|
|
}
|
|
|
|
gtk_adjustment_set_value (adj, new_value);
|
|
diff -ruN --strip-trailing-cr xchat-wdk.orig/src/fe-gtk/editlist.c xchat-wdk/src/fe-gtk/editlist.c
|
|
--- xchat-wdk.orig/src/fe-gtk/editlist.c 2006-03-13 09:33:45 +0100
|
|
+++ xchat-wdk/src/fe-gtk/editlist.c 2010-10-09 12:53:27 +0200
|
|
@@ -19,7 +19,6 @@
|
|
#include <stdio.h>
|
|
#include <stdlib.h>
|
|
#include <string.h>
|
|
-#include <unistd.h>
|
|
#include <fcntl.h>
|
|
#include <sys/types.h>
|
|
#include <sys/stat.h>
|
|
diff -ruN --strip-trailing-cr xchat-wdk.orig/src/fe-gtk/fe-gtk.c xchat-wdk/src/fe-gtk/fe-gtk.c
|
|
--- xchat-wdk.orig/src/fe-gtk/fe-gtk.c 2010-08-14 03:46:21 +0200
|
|
+++ xchat-wdk/src/fe-gtk/fe-gtk.c 2010-10-09 14:32:05 +0200
|
|
@@ -19,7 +19,6 @@
|
|
#include <stdio.h>
|
|
#include <string.h>
|
|
#include <stdlib.h>
|
|
-#include <unistd.h>
|
|
|
|
#include "fe-gtk.h"
|
|
|
|
@@ -32,6 +31,8 @@
|
|
#include <gtk/gtkmessagedialog.h>
|
|
#include <gtk/gtkversion.h>
|
|
|
|
+#include <gdk/gdkwin32.h>
|
|
+
|
|
#include "../common/xchat.h"
|
|
#include "../common/fe.h"
|
|
#include "../common/util.h"
|
|
@@ -39,6 +40,7 @@
|
|
#include "../common/cfgfiles.h"
|
|
#include "../common/xchatc.h"
|
|
#include "../common/plugin.h"
|
|
+#include "../common/server.h"
|
|
#include "gtkutil.h"
|
|
#include "maingui.h"
|
|
#include "pixmaps.h"
|
|
@@ -330,7 +332,7 @@
|
|
{
|
|
session *sess;
|
|
|
|
- if (getenv ("XCHAT_WARNING_IGNORE"))
|
|
+ /* if (getenv ("XCHAT_WARNING_IGNORE")) */
|
|
return;
|
|
|
|
sess = find_dialog (serv_list->data, "(warnings)");
|
|
diff -ruN --strip-trailing-cr xchat-wdk.orig/src/fe-gtk/fe-gtk.h xchat-wdk/src/fe-gtk/fe-gtk.h
|
|
--- xchat-wdk.orig/src/fe-gtk/fe-gtk.h 2010-05-30 08:31:29 +0200
|
|
+++ xchat-wdk/src/fe-gtk/fe-gtk.h 2010-10-09 12:53:27 +0200
|
|
@@ -4,7 +4,7 @@
|
|
/* If you're compiling this for Windows, your release is un-official
|
|
* and not condoned. Please don't use the XChat name. Make up your
|
|
* own name! */
|
|
-#define DISPLAY_NAME "XChat-Unofficial"
|
|
+#define DISPLAY_NAME "XChat-WDK"
|
|
#else
|
|
#define DISPLAY_NAME "XChat"
|
|
#endif
|
|
diff -ruN --strip-trailing-cr xchat-wdk.orig/src/fe-gtk/fkeys.c xchat-wdk/src/fe-gtk/fkeys.c
|
|
--- xchat-wdk.orig/src/fe-gtk/fkeys.c 2008-02-24 06:09:34 +0100
|
|
+++ xchat-wdk/src/fe-gtk/fkeys.c 2010-10-09 12:53:27 +0200
|
|
@@ -20,7 +20,6 @@
|
|
#include <stdlib.h>
|
|
#include <sys/types.h>
|
|
#include <sys/stat.h>
|
|
-#include <unistd.h>
|
|
#include <string.h>
|
|
#include <fcntl.h>
|
|
#include <ctype.h>
|
|
diff -ruN --strip-trailing-cr xchat-wdk.orig/src/fe-gtk/gtkutil.c xchat-wdk/src/fe-gtk/gtkutil.c
|
|
--- xchat-wdk.orig/src/fe-gtk/gtkutil.c 2009-07-18 14:38:10 +0200
|
|
+++ xchat-wdk/src/fe-gtk/gtkutil.c 2010-10-09 15:28:09 +0200
|
|
@@ -22,7 +22,6 @@
|
|
#include <stdarg.h>
|
|
#include <sys/types.h>
|
|
#include <sys/stat.h>
|
|
-#include <unistd.h>
|
|
#include <fcntl.h>
|
|
#include "fe-gtk.h"
|
|
|
|
@@ -51,6 +50,10 @@
|
|
#include "../common/util.h"
|
|
#include "gtkutil.h"
|
|
#include "pixmaps.h"
|
|
+#ifdef WIN32
|
|
+#include "../common/fe.h"
|
|
+#include "../common/thread.h"
|
|
+#endif
|
|
|
|
/* gtkutil.c, just some gtk wrappers */
|
|
|
|
@@ -63,6 +66,13 @@
|
|
void *userdata;
|
|
filereqcallback callback;
|
|
int flags; /* FRF_* flags */
|
|
+
|
|
+#ifdef WIN32
|
|
+ int multiple;
|
|
+ thread *th;
|
|
+ char *title; /* native locale */
|
|
+ char *filter;
|
|
+#endif
|
|
};
|
|
|
|
static char last_dir[256] = "";
|
|
@@ -164,6 +174,209 @@
|
|
}
|
|
}
|
|
|
|
+#ifdef WIN32
|
|
+static int
|
|
+win32_openfile (char *file_buf, int file_buf_len, char *title_text, char *filter,
|
|
+ int multiple)
|
|
+{
|
|
+ OPENFILENAME o;
|
|
+
|
|
+ memset (&o, 0, sizeof (o));
|
|
+
|
|
+ o.lStructSize = sizeof (o);
|
|
+ o.lpstrFilter = filter;
|
|
+ o.lpstrFile = file_buf;
|
|
+ o.nMaxFile = file_buf_len;
|
|
+ o.lpstrTitle = title_text;
|
|
+ o.Flags = 0x02000000 | OFN_FILEMUSTEXIST | OFN_HIDEREADONLY |
|
|
+ OFN_NOCHANGEDIR | OFN_EXPLORER | OFN_LONGNAMES | OFN_NONETWORKBUTTON;
|
|
+ if (multiple)
|
|
+ {
|
|
+ o.Flags |= OFN_ALLOWMULTISELECT;
|
|
+ }
|
|
+
|
|
+ return GetOpenFileName (&o);
|
|
+}
|
|
+
|
|
+static int
|
|
+win32_savefile (char *file_buf, int file_buf_len, char *title_text, char *filter,
|
|
+ int multiple)
|
|
+{
|
|
+ /* we need the filter to get the default filename. it is from fe-gtk.c (fe_confirm);
|
|
+ * but that filter is actually the whole filename, so apply an empty filter and all good.
|
|
+ * in win32_thread2 we copy the filter ( = the filename) after the last dir into our
|
|
+ * LPTSTR file buffer to make it actually work. the docs for this amazingly retard api:
|
|
+ *
|
|
+ * http://msdn.microsoft.com/en-us/library/ms646839%28VS.85%29.aspx
|
|
+ */
|
|
+
|
|
+ OPENFILENAME o;
|
|
+
|
|
+ memset (&o, 0, sizeof (o));
|
|
+
|
|
+ o.lStructSize = sizeof (o);
|
|
+ o.lpstrFilter = "All files\0*.*\0\0";
|
|
+ o.lpstrFile = file_buf;
|
|
+ o.nMaxFile = file_buf_len;
|
|
+ o.lpstrTitle = title_text;
|
|
+ o.Flags = 0x02000000 | OFN_FILEMUSTEXIST | OFN_HIDEREADONLY |
|
|
+ OFN_NOCHANGEDIR | OFN_EXPLORER | OFN_LONGNAMES | OFN_NONETWORKBUTTON;
|
|
+ if (multiple)
|
|
+ {
|
|
+ o.Flags |= OFN_ALLOWMULTISELECT;
|
|
+ }
|
|
+
|
|
+ return GetSaveFileName (&o);
|
|
+}
|
|
+
|
|
+static void *
|
|
+win32_thread (struct file_req *freq)
|
|
+{
|
|
+ char buf[1024 + 32];
|
|
+ char file[1024];
|
|
+
|
|
+ memset (file, 0, sizeof (file));
|
|
+ safe_strcpy (file, last_dir, sizeof (file));
|
|
+
|
|
+ if (win32_openfile (file, sizeof (file), freq->title, freq->filter, freq->multiple))
|
|
+ {
|
|
+ if (freq->multiple)
|
|
+ {
|
|
+ char *f = file;
|
|
+
|
|
+ if (f[strlen (f) + 1] == 0) /* only selected one file */
|
|
+ {
|
|
+ snprintf (buf, sizeof (buf), "1\n%s\n", file);
|
|
+ write (freq->th->pipe_fd[1], buf, strlen (buf));
|
|
+ } else
|
|
+ {
|
|
+ f += strlen (f) + 1; /* skip first, it's only the dir */
|
|
+ while (f[0])
|
|
+ {
|
|
+ snprintf (buf, sizeof (buf), "1\n%s\\%s\n", /*dir!*/file, f);
|
|
+ write (freq->th->pipe_fd[1], buf, strlen (buf));
|
|
+ f += strlen (f) + 1;
|
|
+ }
|
|
+ }
|
|
+
|
|
+ } else
|
|
+ {
|
|
+ snprintf (buf, sizeof (buf), "1\n%s\n", file);
|
|
+ write (freq->th->pipe_fd[1], buf, strlen (buf));
|
|
+ }
|
|
+ }
|
|
+
|
|
+ write (freq->th->pipe_fd[1], "0\n", 2);
|
|
+ Sleep (2000);
|
|
+
|
|
+ return NULL;
|
|
+}
|
|
+
|
|
+static void *
|
|
+win32_thread2 (struct file_req *freq)
|
|
+{
|
|
+ char buf[1024 + 32];
|
|
+ char file[1024];
|
|
+
|
|
+ memset (file, 0, sizeof (file));
|
|
+ safe_strcpy (file, last_dir, sizeof (file));
|
|
+ safe_strcpy (file, freq->filter, sizeof (file));
|
|
+
|
|
+ if (win32_savefile (file, sizeof (file), freq->title, NULL, freq->multiple))
|
|
+ {
|
|
+ if (freq->multiple)
|
|
+ {
|
|
+ char *f = file;
|
|
+
|
|
+ if (f[strlen (f) + 1] == 0) /* only selected one file */
|
|
+ {
|
|
+ snprintf (buf, sizeof (buf), "1\n%s\n", file);
|
|
+ write (freq->th->pipe_fd[1], buf, strlen (buf));
|
|
+ } else
|
|
+ {
|
|
+ f += strlen (f) + 1; /* skip first, it's only the dir */
|
|
+ while (f[0])
|
|
+ {
|
|
+ snprintf (buf, sizeof (buf), "1\n%s\\%s\n", /*dir!*/file, f);
|
|
+ write (freq->th->pipe_fd[1], buf, strlen (buf));
|
|
+ f += strlen (f) + 1;
|
|
+ }
|
|
+ }
|
|
+
|
|
+ } else
|
|
+ {
|
|
+ snprintf (buf, sizeof (buf), "1\n%s\n", file);
|
|
+ write (freq->th->pipe_fd[1], buf, strlen (buf));
|
|
+ }
|
|
+ }
|
|
+
|
|
+ write (freq->th->pipe_fd[1], "0\n", 2);
|
|
+ Sleep (2000);
|
|
+
|
|
+ return NULL;
|
|
+}
|
|
+
|
|
+static int
|
|
+waitline2 (GIOChannel *source, char *buf, int bufsize)
|
|
+{
|
|
+ int i = 0;
|
|
+ int len;
|
|
+
|
|
+ while (1)
|
|
+ {
|
|
+ if (g_io_channel_read (source, &buf[i], 1, &len) != G_IO_ERROR_NONE)
|
|
+ return -1;
|
|
+ if (buf[i] == '\n' || bufsize == i + 1)
|
|
+ {
|
|
+ buf[i] = 0;
|
|
+ return i;
|
|
+ }
|
|
+ i++;
|
|
+ }
|
|
+}
|
|
+
|
|
+static gboolean
|
|
+win32_close_pipe (int fd)
|
|
+{
|
|
+ close (fd);
|
|
+ return 0;
|
|
+}
|
|
+
|
|
+static gboolean
|
|
+win32_read_thread (GIOChannel *source, GIOCondition cond, struct file_req *freq)
|
|
+{
|
|
+ char buf[512];
|
|
+ char *file;
|
|
+
|
|
+ waitline2 (source, buf, sizeof buf);
|
|
+
|
|
+ switch (buf[0])
|
|
+ {
|
|
+ case '0': /* filedialog has closed */
|
|
+ freq->callback (freq->userdata, NULL);
|
|
+ break;
|
|
+
|
|
+ case '1': /* got a filename! */
|
|
+ waitline2 (source, buf, sizeof buf);
|
|
+ file = g_filename_to_utf8 (buf, -1, 0, 0, 0);
|
|
+ freq->callback (freq->userdata, file);
|
|
+ g_free (file);
|
|
+ return TRUE;
|
|
+ }
|
|
+
|
|
+ /* it doesn't work to close them here, because of the weird
|
|
+ way giowin32 works. We must _return_ before closing them */
|
|
+ g_timeout_add(3000, (GSourceFunc)win32_close_pipe, freq->th->pipe_fd[0]);
|
|
+ g_timeout_add(2000, (GSourceFunc)win32_close_pipe, freq->th->pipe_fd[1]);
|
|
+
|
|
+ g_free (freq->title);
|
|
+ free (freq->th);
|
|
+ free (freq);
|
|
+
|
|
+ return FALSE;
|
|
+}
|
|
+#endif
|
|
+
|
|
void
|
|
gtkutil_file_req (const char *title, void *callback, void *userdata, char *filter,
|
|
int flags)
|
|
@@ -172,6 +385,58 @@
|
|
GtkWidget *dialog;
|
|
extern char *get_xdir_fs (void);
|
|
|
|
+#ifdef WIN32
|
|
+ if (!(flags & FRF_WRITE))
|
|
+ {
|
|
+ freq = malloc (sizeof (struct file_req));
|
|
+ freq->th = thread_new ();
|
|
+ freq->flags = 0;
|
|
+ freq->multiple = (flags & FRF_MULTIPLE);
|
|
+ freq->callback = callback;
|
|
+ freq->userdata = userdata;
|
|
+ freq->title = g_locale_from_utf8 (title, -1, 0, 0, 0);
|
|
+ if (!filter)
|
|
+ {
|
|
+ freq->filter = "All files\0*.*\0"
|
|
+ "Executables\0*.exe\0"
|
|
+ "ZIP files\0*.zip\0\0";
|
|
+ }
|
|
+ else
|
|
+ {
|
|
+ freq->filter = filter;
|
|
+ }
|
|
+
|
|
+ thread_start (freq->th, win32_thread, freq);
|
|
+ fe_input_add (freq->th->pipe_fd[0], FIA_FD|FIA_READ, win32_read_thread, freq);
|
|
+
|
|
+ return;
|
|
+
|
|
+ }
|
|
+
|
|
+ else {
|
|
+ freq = malloc (sizeof (struct file_req));
|
|
+ freq->th = thread_new ();
|
|
+ freq->flags = 0;
|
|
+ freq->multiple = (flags & FRF_MULTIPLE);
|
|
+ freq->callback = callback;
|
|
+ freq->userdata = userdata;
|
|
+ freq->title = g_locale_from_utf8 (title, -1, 0, 0, 0);
|
|
+ if (!filter)
|
|
+ {
|
|
+ freq->filter = "All files\0*.*\0\0";
|
|
+ }
|
|
+ else
|
|
+ {
|
|
+ freq->filter = filter;
|
|
+ }
|
|
+
|
|
+ thread_start (freq->th, win32_thread2, freq);
|
|
+ fe_input_add (freq->th->pipe_fd[0], FIA_FD|FIA_READ, win32_read_thread, freq);
|
|
+
|
|
+ return;
|
|
+ }
|
|
+#endif
|
|
+
|
|
if (flags & FRF_WRITE)
|
|
{
|
|
dialog = gtk_file_chooser_dialog_new (title, NULL,
|
|
diff -ruN --strip-trailing-cr xchat-wdk.orig/src/fe-gtk/joind.c xchat-wdk/src/fe-gtk/joind.c
|
|
--- xchat-wdk.orig/src/fe-gtk/joind.c 2006-12-26 05:56:55 +0100
|
|
+++ xchat-wdk/src/fe-gtk/joind.c 2010-10-09 12:53:27 +0200
|
|
@@ -9,7 +9,6 @@
|
|
|
|
#include <sys/types.h>
|
|
#include <sys/stat.h>
|
|
-#include <unistd.h>
|
|
#include <string.h>
|
|
#include <stdio.h>
|
|
|
|
diff -ruN --strip-trailing-cr xchat-wdk.orig/src/fe-gtk/maingui.c xchat-wdk/src/fe-gtk/maingui.c
|
|
--- xchat-wdk.orig/src/fe-gtk/maingui.c 2010-05-16 05:20:22 +0200
|
|
+++ xchat-wdk/src/fe-gtk/maingui.c 2010-10-09 12:53:27 +0200
|
|
@@ -214,60 +214,10 @@
|
|
away_list = mg_attr_list_create (&colors[COL_AWAY], FALSE);
|
|
}
|
|
|
|
-#ifdef WIN32
|
|
-#define WINVER 0x0501 /* needed for vc6? */
|
|
-#include <windows.h>
|
|
-#include <gdk/gdkwin32.h>
|
|
-
|
|
-/* Flash the taskbar button on Windows when there's a highlight event. */
|
|
-
|
|
-static void
|
|
-flash_window (GtkWidget *win)
|
|
-{
|
|
- FLASHWINFO fi;
|
|
- static HMODULE user = NULL;
|
|
- static BOOL (*flash) (PFLASHWINFO) = NULL;
|
|
-
|
|
- if (!user)
|
|
- {
|
|
- user = GetModuleHandleA ("USER32");
|
|
- if (!user)
|
|
- return; /* this should never fail */
|
|
- }
|
|
-
|
|
- if (!flash)
|
|
- {
|
|
- flash = (void *)GetProcAddress (user, "FlashWindowEx");
|
|
- if (!flash)
|
|
- return; /* this fails on NT4.0 and Win95 */
|
|
- }
|
|
-
|
|
- fi.cbSize = sizeof (fi);
|
|
- fi.hwnd = GDK_WINDOW_HWND (win->window);
|
|
- fi.dwFlags = FLASHW_ALL | FLASHW_TIMERNOFG;
|
|
- fi.uCount = 0;
|
|
- fi.dwTimeout = 500;
|
|
- flash (&fi);
|
|
- /*FlashWindowEx (&fi);*/
|
|
-}
|
|
-#else
|
|
-
|
|
-#ifdef USE_XLIB
|
|
-#include <gdk/gdkx.h>
|
|
-
|
|
static void
|
|
set_window_urgency (GtkWidget *win, gboolean set)
|
|
{
|
|
- XWMHints *hints;
|
|
-
|
|
- hints = XGetWMHints(GDK_WINDOW_XDISPLAY(win->window), GDK_WINDOW_XWINDOW(win->window));
|
|
- if (set)
|
|
- hints->flags |= XUrgencyHint;
|
|
- else
|
|
- hints->flags &= ~XUrgencyHint;
|
|
- XSetWMHints(GDK_WINDOW_XDISPLAY(win->window),
|
|
- GDK_WINDOW_XWINDOW(win->window), hints);
|
|
- XFree(hints);
|
|
+ gtk_window_set_urgency_hint (GTK_WINDOW (win), set);
|
|
}
|
|
|
|
static void
|
|
@@ -281,18 +231,14 @@
|
|
{
|
|
set_window_urgency (win, FALSE);
|
|
}
|
|
-#endif
|
|
-#endif
|
|
|
|
/* flash the taskbar button */
|
|
|
|
void
|
|
fe_flash_window (session *sess)
|
|
{
|
|
-#if defined(WIN32) || defined(USE_XLIB)
|
|
if (fe_gui_info (sess, 0) != 1) /* only do it if not focused */
|
|
flash_window (sess->gui->window);
|
|
-#endif
|
|
}
|
|
|
|
/* set a tab plain, red, light-red, or blue */
|
|
@@ -1190,7 +1136,14 @@
|
|
"Close them all?"), i);
|
|
g_signal_connect (G_OBJECT (dialog), "response",
|
|
G_CALLBACK (mg_tab_close_cb), sess);
|
|
- gtk_window_set_position (GTK_WINDOW (dialog), GTK_WIN_POS_MOUSE);
|
|
+ if (!prefs.tab_layout && prefs.tab_pos == 6)
|
|
+ {
|
|
+ gtk_window_set_position (GTK_WINDOW (dialog), GTK_WIN_POS_CENTER_ON_PARENT);
|
|
+ }
|
|
+ else
|
|
+ {
|
|
+ gtk_window_set_position (GTK_WINDOW (dialog), GTK_WIN_POS_MOUSE);
|
|
+ }
|
|
gtk_widget_show (dialog);
|
|
}
|
|
}
|
|
@@ -2489,7 +2442,7 @@
|
|
if (prefs.lagometer & 1)
|
|
{
|
|
gui->lagometer = wid = gtk_progress_bar_new ();
|
|
- gtk_widget_set_size_request (wid, 1, 8);
|
|
+ gtk_widget_set_size_request (wid, 1, 10);
|
|
|
|
wid = gtk_event_box_new ();
|
|
gtk_container_add (GTK_CONTAINER (wid), gui->lagometer);
|
|
@@ -2504,7 +2457,7 @@
|
|
if (prefs.throttlemeter & 1)
|
|
{
|
|
gui->throttlemeter = wid = gtk_progress_bar_new ();
|
|
- gtk_widget_set_size_request (wid, 1, 8);
|
|
+ gtk_widget_set_size_request (wid, 1, 10);
|
|
|
|
wid = gtk_event_box_new ();
|
|
gtk_container_add (GTK_CONTAINER (wid), gui->throttlemeter);
|
|
@@ -2957,11 +2910,7 @@
|
|
gtk_xtext_check_marker_visibility (GTK_XTEXT (current_sess->gui->xtext));
|
|
plugin_emit_dummy_print (current_sess, "Focus Window");
|
|
}
|
|
-#ifndef WIN32
|
|
-#ifdef USE_XLIB
|
|
unflash_window (GTK_WIDGET (win));
|
|
-#endif
|
|
-#endif
|
|
return FALSE;
|
|
}
|
|
|
|
@@ -2972,11 +2921,7 @@
|
|
if (!sess->server->server_session)
|
|
sess->server->server_session = sess;
|
|
gtk_xtext_check_marker_visibility(GTK_XTEXT (current_sess->gui->xtext));
|
|
-#ifndef WIN32
|
|
-#ifdef USE_XLIB
|
|
unflash_window (GTK_WIDGET (win));
|
|
-#endif
|
|
-#endif
|
|
plugin_emit_dummy_print (sess, "Focus Window");
|
|
return FALSE;
|
|
}
|
|
diff -ruN --strip-trailing-cr xchat-wdk.orig/src/fe-gtk/menu.c xchat-wdk/src/fe-gtk/menu.c
|
|
--- xchat-wdk.orig/src/fe-gtk/menu.c 2010-05-16 06:24:24 +0200
|
|
+++ xchat-wdk/src/fe-gtk/menu.c 2010-10-09 12:53:27 +0200
|
|
@@ -20,7 +20,6 @@
|
|
#include <stdlib.h>
|
|
#include <fcntl.h>
|
|
#include <string.h>
|
|
-#include <unistd.h>
|
|
|
|
#ifdef WIN32
|
|
#include <windows.h>
|
|
diff -ruN --strip-trailing-cr xchat-wdk.orig/src/fe-gtk/palette.c xchat-wdk/src/fe-gtk/palette.c
|
|
--- xchat-wdk.orig/src/fe-gtk/palette.c 2010-05-16 05:20:22 +0200
|
|
+++ xchat-wdk/src/fe-gtk/palette.c 2010-10-09 12:53:27 +0200
|
|
@@ -18,7 +18,6 @@
|
|
|
|
#include <stdio.h>
|
|
#include <stdlib.h>
|
|
-#include <unistd.h>
|
|
#include <sys/types.h>
|
|
#include <sys/stat.h>
|
|
#include <fcntl.h>
|
|
diff -ruN --strip-trailing-cr xchat-wdk.orig/src/fe-gtk/plugin-tray.c xchat-wdk/src/fe-gtk/plugin-tray.c
|
|
--- xchat-wdk.orig/src/fe-gtk/plugin-tray.c 2010-08-14 03:46:21 +0200
|
|
+++ xchat-wdk/src/fe-gtk/plugin-tray.c 2010-10-09 12:53:27 +0200
|
|
@@ -1,8 +1,7 @@
|
|
/* Copyright (C) 2006-2007 Peter Zelezny. */
|
|
|
|
#include <string.h>
|
|
-#include <unistd.h>
|
|
-#include "../common/xchat-plugin.h"
|
|
+#include <xchat-plugin.h>
|
|
#include "../common/xchat.h"
|
|
#include "../common/xchatc.h"
|
|
#include "../common/inbound.h"
|
|
@@ -298,10 +297,10 @@
|
|
nets = tray_count_networks ();
|
|
chans = tray_count_channels ();
|
|
if (nets)
|
|
- tray_set_tipf (_("XChat: Connected to %u networks and %u channels"),
|
|
+ tray_set_tipf (_("XChat-WDK: Connected to %u networks and %u channels"),
|
|
nets, chans);
|
|
else
|
|
- tray_set_tipf ("XChat: %s", _("Not connected."));
|
|
+ tray_set_tipf ("XChat-WDK: %s", _("Not connected."));
|
|
}
|
|
|
|
if (custom_icon1)
|
|
@@ -451,7 +450,7 @@
|
|
/* ph may have an invalid context now */
|
|
xchat_set_context (ph, xchat_find_context (ph, NULL, NULL));
|
|
|
|
- win = (GtkWindow *)xchat_get_info (ph, "win_ptr");
|
|
+ win = xchat_get_info (ph, "gtkwin_ptr");
|
|
|
|
tray_stop_flash ();
|
|
tray_reset_counts ();
|
|
@@ -651,15 +650,15 @@
|
|
/* FIXME: hides any previous private messages */
|
|
tray_hilight_count++;
|
|
if (tray_hilight_count == 1)
|
|
- tray_set_tipf (_("XChat: Highlighted message from: %s (%s)"),
|
|
+ tray_set_tipf (_("XChat-WDK: Highlighted message from: %s (%s)"),
|
|
word[1], xchat_get_info (ph, "channel"));
|
|
else
|
|
- tray_set_tipf (_("XChat: %u highlighted messages, latest from: %s (%s)"),
|
|
+ tray_set_tipf (_("XChat-WDK: %u highlighted messages, latest from: %s (%s)"),
|
|
tray_hilight_count, word[1], xchat_get_info (ph, "channel"));
|
|
}
|
|
|
|
if (prefs.input_balloon_hilight)
|
|
- tray_set_balloonf (word[2], _("XChat: Highlighted message from: %s (%s)"),
|
|
+ tray_set_balloonf (word[2], _("XChat-WDK: Highlighted message from: %s (%s)"),
|
|
word[1], xchat_get_info (ph, "channel"));
|
|
|
|
return XCHAT_EAT_NONE;
|
|
@@ -677,14 +676,14 @@
|
|
|
|
tray_pub_count++;
|
|
if (tray_pub_count == 1)
|
|
- tray_set_tipf (_("XChat: New public message from: %s (%s)"),
|
|
+ tray_set_tipf (_("XChat-WDK: New public message from: %s (%s)"),
|
|
word[1], xchat_get_info (ph, "channel"));
|
|
else
|
|
- tray_set_tipf (_("XChat: %u new public messages."), tray_pub_count);
|
|
+ tray_set_tipf (_("XChat-WDK: %u new public messages."), tray_pub_count);
|
|
}
|
|
|
|
if (prefs.input_balloon_chans)
|
|
- tray_set_balloonf (word[2], _("XChat: New public message from: %s (%s)"),
|
|
+ tray_set_balloonf (word[2], _("XChat-WDK: New public message from: %s (%s)"),
|
|
word[1], xchat_get_info (ph, "channel"));
|
|
|
|
return XCHAT_EAT_NONE;
|
|
@@ -706,14 +705,14 @@
|
|
|
|
tray_priv_count++;
|
|
if (tray_priv_count == 1)
|
|
- tray_set_tipf (_("XChat: Private message from: %s (%s)"),
|
|
+ tray_set_tipf (_("XChat-WDK: Private message from: %s (%s)"),
|
|
from, network);
|
|
else
|
|
- tray_set_tipf (_("XChat: %u private messages, latest from: %s (%s)"),
|
|
+ tray_set_tipf (_("XChat-WDK: %u private messages, latest from: %s (%s)"),
|
|
tray_priv_count, from, network);
|
|
|
|
if (prefs.input_balloon_priv)
|
|
- tray_set_balloonf (text, _("XChat: Private message from: %s (%s)"),
|
|
+ tray_set_balloonf (text, _("XChat-WDK: Private message from: %s (%s)"),
|
|
from, network);
|
|
}
|
|
|
|
@@ -759,15 +758,15 @@
|
|
|
|
tray_file_count++;
|
|
if (tray_file_count == 1)
|
|
- tray_set_tipf (_("XChat: File offer from: %s (%s)"),
|
|
+ tray_set_tipf (_("XChat-WDK: File offer from: %s (%s)"),
|
|
word[1], network);
|
|
else
|
|
- tray_set_tipf (_("XChat: %u file offers, latest from: %s (%s)"),
|
|
+ tray_set_tipf (_("XChat-WDK: %u file offers, latest from: %s (%s)"),
|
|
tray_file_count, word[1], network);
|
|
}
|
|
|
|
if (prefs.input_balloon_priv)
|
|
- tray_set_balloonf ("", _("XChat: File offer from: %s (%s)"),
|
|
+ tray_set_balloonf ("", _("XChat-WDK: File offer from: %s (%s)"),
|
|
word[1], network);
|
|
|
|
return XCHAT_EAT_NONE;
|
|
@@ -803,7 +802,7 @@
|
|
}
|
|
else
|
|
{
|
|
- if (prefs.gui_tray)
|
|
+ if (prefs.gui_tray && !((_access( "plugins/xtray.dll", 0 )) != -1))
|
|
tray_init ();
|
|
}
|
|
}
|
|
@@ -835,7 +834,7 @@
|
|
|
|
xchat_hook_print (ph, "Focus Window", -1, tray_focus_cb, NULL);
|
|
|
|
- if (prefs.gui_tray)
|
|
+ if (prefs.gui_tray && !((_access( "plugins/xtray.dll", 0 )) != -1))
|
|
tray_init ();
|
|
|
|
return 1; /* return 1 for success */
|
|
diff -ruN --strip-trailing-cr xchat-wdk.orig/src/fe-gtk/plugingui.c xchat-wdk/src/fe-gtk/plugingui.c
|
|
--- xchat-wdk.orig/src/fe-gtk/plugingui.c 2010-05-16 05:20:22 +0200
|
|
+++ xchat-wdk/src/fe-gtk/plugingui.c 2010-10-09 15:11:47 +0200
|
|
@@ -35,7 +35,7 @@
|
|
#include "../common/xchat.h"
|
|
#define PLUGIN_C
|
|
typedef struct session xchat_context;
|
|
-#include "../common/xchat-plugin.h"
|
|
+#include <xchat-plugin.h>
|
|
#include "../common/plugin.h"
|
|
#include "../common/util.h"
|
|
#include "../common/outbound.h"
|
|
@@ -147,7 +147,9 @@
|
|
plugingui_load (void)
|
|
{
|
|
gtkutil_file_req (_("Select a Plugin or Script to load"), plugingui_load_cb,
|
|
- current_sess, NULL, FRF_ADDFOLDER);
|
|
+ current_sess,
|
|
+ "Plugins and Scripts\0*.dll;*.lua;*.pl;*.py;*.tcl\0"
|
|
+ "All files\0*.*\0\0", 0);
|
|
}
|
|
|
|
static void
|
|
diff -ruN --strip-trailing-cr xchat-wdk.orig/src/fe-gtk/rawlog.c xchat-wdk/src/fe-gtk/rawlog.c
|
|
--- xchat-wdk.orig/src/fe-gtk/rawlog.c 2010-05-16 05:20:22 +0200
|
|
+++ xchat-wdk/src/fe-gtk/rawlog.c 2010-10-09 12:53:27 +0200
|
|
@@ -19,7 +19,6 @@
|
|
#include <stdio.h>
|
|
#include <string.h>
|
|
#include <fcntl.h>
|
|
-#include <unistd.h>
|
|
#include <stdlib.h>
|
|
|
|
#include "fe-gtk.h"
|
|
diff -ruN --strip-trailing-cr xchat-wdk.orig/src/fe-gtk/search.c xchat-wdk/src/fe-gtk/search.c
|
|
--- xchat-wdk.orig/src/fe-gtk/search.c 2010-05-16 05:20:22 +0200
|
|
+++ xchat-wdk/src/fe-gtk/search.c 2010-10-09 12:53:27 +0200
|
|
@@ -153,7 +153,7 @@
|
|
_("_Find"));
|
|
g_object_set_data (G_OBJECT (wid), "e", entry);
|
|
|
|
- g_signal_connect (G_OBJECT (win), "key-press-event", G_CALLBACK (search_key_cb), win);
|
|
+ g_signal_connect (G_OBJECT (win), "key_press_event", G_CALLBACK (search_key_cb), win);
|
|
|
|
gtk_widget_show (win);
|
|
}
|
|
diff -ruN --strip-trailing-cr xchat-wdk.orig/src/fe-gtk/servlistgui.c xchat-wdk/src/fe-gtk/servlistgui.c
|
|
--- xchat-wdk.orig/src/fe-gtk/servlistgui.c 2010-08-07 09:14:45 +0200
|
|
+++ xchat-wdk/src/fe-gtk/servlistgui.c 2010-10-09 12:53:27 +0200
|
|
@@ -1782,7 +1782,7 @@
|
|
gtk_container_add (GTK_CONTAINER (hbox), checkbutton_fav);
|
|
g_signal_connect (G_OBJECT (checkbutton_fav), "toggled",
|
|
G_CALLBACK (fav_servlist), 0);
|
|
- gtk_widget_show (checkbutton_fav);
|
|
+ /* gtk_widget_show (checkbutton_fav); don't show this until it's completed */
|
|
|
|
vbuttonbox2 = gtk_vbutton_box_new ();
|
|
gtk_box_set_spacing (GTK_BOX (vbuttonbox2), 3);
|
|
diff -ruN --strip-trailing-cr xchat-wdk.orig/src/fe-gtk/setup.c xchat-wdk/src/fe-gtk/setup.c
|
|
--- xchat-wdk.orig/src/fe-gtk/setup.c 2008-02-08 10:04:45 +0100
|
|
+++ xchat-wdk/src/fe-gtk/setup.c 2010-10-09 12:53:27 +0200
|
|
@@ -109,13 +109,13 @@
|
|
N_("Give each person on IRC a different color"),0,0},
|
|
{ST_TOGGLR, N_("Indent nick names"), P_OFFINTNL(indent_nicks),
|
|
N_("Make nick names right-justified"),0,0},
|
|
- {ST_TOGGLE, N_("Transparent background"), P_OFFINTNL(transparent),0,0,0},
|
|
- {ST_TOGGLR, N_("Show marker line"), P_OFFINTNL(show_marker),
|
|
+ /* {ST_TOGGLE, N_("Transparent background"), P_OFFINTNL(transparent),0,0,0}, */
|
|
+ {ST_TOGGLE, N_("Show marker line"), P_OFFINTNL(show_marker),
|
|
N_("Insert a red line after the last read text."),0,0},
|
|
- {ST_HEADER, N_("Transparency Settings"), 0,0,0},
|
|
+ /* {ST_HEADER, N_("Transparency Settings"), 0,0,0},
|
|
{ST_HSCALE, N_("Red:"), P_OFFINTNL(tint_red),0,0,0},
|
|
{ST_HSCALE, N_("Green:"), P_OFFINTNL(tint_green),0,0,0},
|
|
- {ST_HSCALE, N_("Blue:"), P_OFFINTNL(tint_blue),0,0,0},
|
|
+ {ST_HSCALE, N_("Blue:"), P_OFFINTNL(tint_blue),0,0,0}, */
|
|
|
|
{ST_HEADER, N_("Time Stamps"),0,0,0},
|
|
{ST_TOGGLE, N_("Enable time stamps"), P_OFFINTNL(timestamp),0,0,2},
|
|
@@ -363,7 +363,6 @@
|
|
{ST_END, 0, 0, 0, 0, 0}
|
|
};
|
|
|
|
-#if 0
|
|
static const setting advanced_settings[] =
|
|
{
|
|
{ST_HEADER, N_("Advanced Settings"),0,0,0},
|
|
@@ -378,7 +377,6 @@
|
|
|
|
{ST_END, 0, 0, 0, 0, 0}
|
|
};
|
|
-#endif
|
|
|
|
static const setting logging_settings[] =
|
|
{
|
|
@@ -1708,7 +1706,7 @@
|
|
N_("General"),
|
|
N_("Logging"),
|
|
N_("Sound"),
|
|
-/* N_("Advanced"),*/
|
|
+ N_("Advanced"),
|
|
NULL,
|
|
N_("Network"),
|
|
N_("Network setup"),
|
|
@@ -1733,6 +1731,7 @@
|
|
setup_add_page (cata[9], book, setup_create_page (general_settings));
|
|
setup_add_page (cata[10], book, setup_create_page (logging_settings));
|
|
setup_add_page (cata[11], book, setup_create_sound_page ());
|
|
+ setup_add_page (cata[12], book, setup_create_page (advanced_settings));
|
|
setup_add_page (cata[14], book, setup_create_page (network_settings));
|
|
setup_add_page (cata[15], book, setup_create_page (filexfer_settings));
|
|
|
|
diff -ruN --strip-trailing-cr xchat-wdk.orig/src/fe-gtk/sexy-spell-entry.c xchat-wdk/src/fe-gtk/sexy-spell-entry.c
|
|
--- xchat-wdk.orig/src/fe-gtk/sexy-spell-entry.c 2006-07-17 07:51:02 +0200
|
|
+++ xchat-wdk/src/fe-gtk/sexy-spell-entry.c 2010-10-09 12:53:27 +0200
|
|
@@ -31,6 +31,8 @@
|
|
/*#include "gtkspell-iso-codes.h"
|
|
#include "sexy-marshal.h"*/
|
|
|
|
+#include "typedef.h"
|
|
+
|
|
/*
|
|
* Bunch of poop to make enchant into a runtime dependency rather than a
|
|
* compile-time dependency. This makes it so I don't have to hear the
|
|
@@ -134,12 +136,10 @@
|
|
GModule *enchant;
|
|
gpointer funcptr;
|
|
|
|
- enchant = g_module_open("libenchant", 0);
|
|
+ enchant = g_module_open("libenchant.dll", 0);
|
|
if (enchant == NULL)
|
|
{
|
|
- enchant = g_module_open("libenchant.so.1", 0);
|
|
- if (enchant == NULL)
|
|
- return;
|
|
+ return;
|
|
}
|
|
|
|
have_enchant = TRUE;
|
|
diff -ruN --strip-trailing-cr xchat-wdk.orig/src/fe-gtk/xtext.c xchat-wdk/src/fe-gtk/xtext.c
|
|
--- xchat-wdk.orig/src/fe-gtk/xtext.c 2008-08-29 13:24:17 +0200
|
|
+++ xchat-wdk/src/fe-gtk/xtext.c 2010-10-09 12:53:27 +0200
|
|
@@ -42,7 +42,6 @@
|
|
#include <ctype.h>
|
|
#include <stdlib.h>
|
|
#include <time.h>
|
|
-#include <unistd.h>
|
|
#include <gtk/gtkmain.h>
|
|
#include <gtk/gtksignal.h>
|
|
#include <gtk/gtkselection.h>
|
|
@@ -3834,7 +3833,7 @@
|
|
PaintDesktop (hdc);
|
|
ReleaseDC (hwnd, hdc);
|
|
|
|
- gdk_window_get_size (GTK_WIDGET (xtext)->window, &width, &height);
|
|
+ gdk_drawable_get_size (GTK_WIDGET (xtext)->window, &width, &height);
|
|
img = gdk_image_get (GTK_WIDGET (xtext)->window, 0, 0, width+128, height);
|
|
xtext->pixmap = win32_tint (xtext, img, img->width, img->height);
|
|
|
|
diff -ruN --strip-trailing-cr xchat-wdk.orig/src/fe-text/fe-text.c xchat-wdk/src/fe-text/fe-text.c
|
|
--- xchat-wdk.orig/src/fe-text/fe-text.c 2008-08-29 13:24:17 +0200
|
|
+++ xchat-wdk/src/fe-text/fe-text.c 2010-10-09 12:53:27 +0200
|
|
@@ -22,9 +22,13 @@
|
|
#ifdef HAVE_STRINGS_H
|
|
#include <strings.h>
|
|
#endif
|
|
+#ifdef WIN32
|
|
+#define STDIN_FILENO 0
|
|
+#define STDOUT_FILENO 1
|
|
+#else
|
|
#include <sys/time.h>
|
|
+#endif
|
|
#include <sys/types.h>
|
|
-#include <unistd.h>
|
|
#include <ctype.h>
|
|
#include "../common/xchat.h"
|
|
#include "../common/xchatc.h"
|
|
@@ -339,7 +343,11 @@
|
|
te->callback = callback;
|
|
te->userdata = userdata;
|
|
|
|
- gettimeofday (&now, NULL);
|
|
+#ifdef WIN32
|
|
+ g_get_current_time (&now);
|
|
+#else
|
|
+ gettimeofday (&now, NULL);
|
|
+#endif
|
|
te->next_call = now.tv_sec * 1000 + (now.tv_usec / 1000) + te->interval;
|
|
|
|
tmr_list = g_slist_prepend (tmr_list, te);
|
|
@@ -417,7 +425,12 @@
|
|
void
|
|
fe_main (void)
|
|
{
|
|
- struct timeval timeout, now;
|
|
+ struct timeval timeout;
|
|
+#ifdef WIN32
|
|
+ GTimeVal now;
|
|
+#else
|
|
+ struct timeval now;
|
|
+#endif
|
|
socketevent *se;
|
|
timerevent *te;
|
|
fd_set rd, wd, ex;
|
|
@@ -428,7 +441,7 @@
|
|
new_ircwindow (NULL, NULL, SESS_SERVER, 0);
|
|
|
|
#ifdef ENABLE_NLS
|
|
- bindtextdomain (GETTEXT_PACKAGE, PREFIX"/share/locale");
|
|
+ bindtextdomain (GETTEXT_PACKAGE, LOCALEDIR);
|
|
bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8");
|
|
textdomain (GETTEXT_PACKAGE);
|
|
#endif
|
|
@@ -464,7 +477,11 @@
|
|
shortest = te->next_call;
|
|
list = list->next;
|
|
}
|
|
+#ifdef WIN32
|
|
+ g_get_current_time (&now);
|
|
+#else
|
|
gettimeofday (&now, NULL);
|
|
+#endif
|
|
delay = shortest - ((now.tv_sec * 1000) + (now.tv_usec / 1000));
|
|
timeout.tv_sec = delay / 1000;
|
|
timeout.tv_usec = (delay % 1000) * 1000;
|
|
@@ -514,7 +531,11 @@
|
|
}
|
|
|
|
/* now check our list of timeout events, some might need to be called! */
|
|
+#ifdef WIN32
|
|
+ g_get_current_time (&now);
|
|
+#else
|
|
gettimeofday (&now, NULL);
|
|
+#endif
|
|
list = tmr_list;
|
|
while (list)
|
|
{
|