124 lines
2.7 KiB
Diff
124 lines
2.7 KiB
Diff
--- aspell-0.60.7-20110707/common/info.cpp.orig 2004-11-10 06:18:45.000000000 +0000
|
|
+++ aspell-0.60.7-20110707/common/info.cpp 2014-03-20 14:46:13.395537900 +0000
|
|
@@ -39,6 +39,19 @@
|
|
|
|
#include "gettext.h"
|
|
|
|
+#ifdef ENABLE_W32_PREFIX
|
|
+extern "C" {
|
|
+static HINSTANCE dll_hinstance;
|
|
+
|
|
+BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved)
|
|
+{
|
|
+ if (fdwReason == DLL_PROCESS_ATTACH)
|
|
+ dll_hinstance = hinstDLL;
|
|
+ return TRUE;
|
|
+}
|
|
+}
|
|
+#endif
|
|
+
|
|
namespace acommon {
|
|
|
|
class Dir {
|
|
@@ -778,4 +789,60 @@
|
|
return data;
|
|
}
|
|
|
|
+#ifdef ENABLE_W32_PREFIX
|
|
+
|
|
+const char *
|
|
+get_w32_prefix ()
|
|
+{
|
|
+
|
|
+ static char *wprefix = NULL;
|
|
+
|
|
+/*
|
|
+ Entry * next;
|
|
+ String key;
|
|
+ String value;
|
|
+ String file;
|
|
+*/
|
|
+ if (wprefix == NULL)
|
|
+ {
|
|
+ DWORD bsize = MAX_PATH;
|
|
+ DWORD l = bsize;
|
|
+ char *bslash, *slash;
|
|
+ char *buf = (char *) malloc (bsize);
|
|
+ while (l == bsize)
|
|
+ {
|
|
+ l = GetModuleFileNameA (dll_hinstance, buf, bsize);
|
|
+ if (l == 0)
|
|
+ {
|
|
+ DebugBreak ();
|
|
+ abort ();
|
|
+ }
|
|
+ if (l == bsize)
|
|
+ {
|
|
+ buf = (char *) realloc ((void *) buf, bsize * 2);
|
|
+ bsize *= 2;
|
|
+ l = bsize;
|
|
+ }
|
|
+ }
|
|
+ bslash = strrchr (buf, '\\');
|
|
+ slash = strrchr (buf, '/');
|
|
+ if (bslash > slash)
|
|
+ slash = bslash;
|
|
+ slash[0] = '\0';
|
|
+ l = strlen (buf);
|
|
+ if (l > 3 && strcmp (&buf[l - 3], "bin") == 0)
|
|
+ {
|
|
+ bslash = strrchr (buf, '\\');
|
|
+ slash = strrchr (buf, '/');
|
|
+ if (bslash > slash)
|
|
+ slash = bslash;
|
|
+ slash[0] = '\0';
|
|
+ }
|
|
+ wprefix = buf;
|
|
+
|
|
+ }
|
|
+ return wprefix;
|
|
+}
|
|
+#endif
|
|
+
|
|
}
|
|
--- aspell-0.60.7-20110707/common/info.hpp.orig 2004-05-30 10:49:17.000000000 +0000
|
|
+++ aspell-0.60.7-20110707/common/info.hpp 2014-03-20 14:45:24.476325900 +0000
|
|
@@ -140,8 +140,7 @@
|
|
};
|
|
|
|
|
|
-
|
|
-
|
|
+ const char * get_w32_prefix ();
|
|
}
|
|
|
|
#endif /* ASPELL_INFO__HPP */
|
|
--- aspell-0.60.7-20110707/common/config.cpp.orig 2014-03-20 13:52:58.851882300 +0000
|
|
+++ aspell-0.60.7-20110707/common/config.cpp 2014-03-20 14:17:49.116621900 +0000
|
|
@@ -310,6 +310,14 @@
|
|
const Entry * res = 0;
|
|
const Entry * cur = first_;
|
|
|
|
+#ifdef ENABLE_W32_PREFIX
|
|
+ if (key == "prefix")
|
|
+ {
|
|
+ Entry *e = new Config::Entry();
|
|
+ e->value = get_w32_prefix ();
|
|
+ return e;
|
|
+ }
|
|
+#endif
|
|
while (cur) {
|
|
if (cur->key == key && cur->action != NoOp) res = cur;
|
|
cur = cur->next;
|
|
--- aspell-0.60.7-20110707/common/config.cpp.orig 2014-03-20 15:11:29.935614000 +0000
|
|
+++ aspell-0.60.7-20110707/common/config.cpp 2014-03-20 15:22:47.619168900 +0000
|
|
@@ -22,6 +22,8 @@
|
|
# include <langinfo.h>
|
|
#endif
|
|
|
|
+#include "info.hpp"
|
|
+#include <windows.h>
|
|
#include "cache.hpp"
|
|
#include "asc_ctype.hpp"
|
|
#include "config.hpp"
|