From ca904e43347e2004514c813aef975118fae1fdfc Mon Sep 17 00:00:00 2001 From: "berkeviktor@aol.com" Date: Wed, 18 Aug 2010 23:20:18 +0200 Subject: [PATCH] portable mode enabled in runtime --- src/common/portable.c | 14 +++++++ src/common/portable.h | 1 + src/makeinc.mak | 6 +-- xchat-wdk.patch | 88 +++++++++++++++++++++++++++---------------- 4 files changed, 72 insertions(+), 37 deletions(-) create mode 100644 src/common/portable.c create mode 100644 src/common/portable.h diff --git a/src/common/portable.c b/src/common/portable.c new file mode 100644 index 00000000..dcc0fba1 --- /dev/null +++ b/src/common/portable.c @@ -0,0 +1,14 @@ +#include + +int +portable_mode () +{ + if ((_access( "portable-mode", 0 )) != -1) + { + return 1; + } + else + { + return 0; + } +} diff --git a/src/common/portable.h b/src/common/portable.h new file mode 100644 index 00000000..bd40b24d --- /dev/null +++ b/src/common/portable.h @@ -0,0 +1 @@ +int portable_mode (); diff --git a/src/makeinc.mak b/src/makeinc.mak index 1b912364..753d88b3 100644 --- a/src/makeinc.mak +++ b/src/makeinc.mak @@ -1,5 +1,4 @@ #X64 = YES -#PORTABLE = YES IPV6 = YES CC = cl @@ -65,10 +64,6 @@ PYTHONOUTPUT = xcpython.dll TCLLIB = tcl85 TCLOUTPUT = xctcl.dll -!ifdef PORTABLE -CFLAGS = $(CFLAGS) -DPORTABLE_BUILD -!endif - !ifdef IPV6 CFLAGS = $(CFLAGS) -DUSE_IPV6 LIBS = $(LIBS) ws2_32.lib @@ -90,6 +85,7 @@ notify.obj \ outbound.obj \ plugin.obj \ plugin-timer.obj \ +portable.obj \ proto-irc.obj \ server.obj \ servlist.obj \ diff --git a/xchat-wdk.patch b/xchat-wdk.patch index ceded822..eda8b19e 100644 --- a/xchat-wdk.patch +++ b/xchat-wdk.patch @@ -137,7 +137,7 @@ diff -ruN --strip-trailing-cr xchat-wdk.orig/plugins/xdcc/xdcc.c xchat-wdk/plugi 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-08-17 06:30:32 +0200 ++++ xchat-wdk/src/common/cfgfiles.c 2010-08-18 23:18:04 +0200 @@ -17,7 +17,6 @@ */ @@ -146,36 +146,45 @@ diff -ruN --strip-trailing-cr xchat-wdk.orig/src/common/cfgfiles.c xchat-wdk/src #include #include #include -@@ -32,7 +31,11 @@ +@@ -30,10 +29,9 @@ + #include "fe.h" + #include "text.h" #include "xchatc.h" ++#include "portable.h" - #ifdef WIN32 -+#ifdef PORTABLE_BUILD -+#define XCHAT_DIR "config" -+#else - #define XCHAT_DIR "X-Chat 2" -+#endif - #else +-#ifdef WIN32 +-#define XCHAT_DIR "X-Chat 2" +-#else ++#ifndef WIN32 #define XCHAT_DIR ".xchat2" #endif -@@ -308,12 +311,16 @@ + #define DEF_FONT "Monospace 9" +@@ -308,12 +306,19 @@ { if (!xdir_fs) { -+#ifdef PORTABLE_BUILD -+ xdir_fs = XCHAT_DIR; -+#else - char out[256]; +- 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); -+#endif +- 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; } -@@ -648,6 +655,7 @@ +@@ -648,6 +653,7 @@ prefs.dialog_height = 256; prefs.gui_join_dialog = 1; prefs.gui_quit_dialog = 1; @@ -583,16 +592,16 @@ diff -ruN --strip-trailing-cr xchat-wdk.orig/src/common/xchat.h xchat-wdk/src/co #define X_OK 1 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-08-17 06:30:32 +0200 -@@ -113,11 +113,15 @@ - gtk_container_add (GTK_CONTAINER (vbox), label); - g_get_charset (&locale); - (snprintf) (buf, sizeof (buf), -+#ifdef PORTABLE_BUILD -+ ""DISPLAY_NAME" "PACKAGE_VERSION"\nPortable Version\n\n" -+#else - ""DISPLAY_NAME" "PACKAGE_VERSION"\n\n" -+#endif ++++ xchat-wdk/src/fe-gtk/about.c 2010-08-18 23:11:24 +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" +@@ -117,7 +118,7 @@ "%s\n\n" #ifdef WIN32 /* leave this message to avoid time wasting bug reports! */ @@ -601,14 +610,29 @@ diff -ruN --strip-trailing-cr xchat-wdk.orig/src/fe-gtk/about.c xchat-wdk/src/fe #endif "%s\n" "Charset: %s " -@@ -127,6 +131,7 @@ +@@ -126,7 +127,11 @@ + #else "Renderer: %s\n" #endif - "Compiled: "__DATE__"\n\n" +- "Compiled: "__DATE__"\n\n" ++ "Compiled: "__DATE__"\n" ++#ifdef WIN32 ++ "Portable Mode: %s\n\n" + "XChat Base: 2.8.8\n\n" ++#endif "\302\251 1998-2010 Peter \305\275elezn\303\275 <zed@xchat.org>", _("A multiplatform IRC Client"), get_cpu_str(), +@@ -134,7 +139,8 @@ + #ifdef WIN32 + gtk_major_version, + gtk_minor_version, +- gtk_micro_version ++ gtk_micro_version, ++ (portable_mode() ? "Yes" : "No") + #else + #ifdef USE_XFT + "Xft" 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-08-17 06:30:32 +0200