lyx_mirror/development/Win32/patches/mingw/aspell-0.60.4.patch
Joost Verburg b61b9cc6a4 LyX 1.5 Windows installer
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@15734 a592a061-630c-0410-9148-cb99ea01b6c8
2006-11-04 14:28:11 +00:00

254 lines
6.5 KiB
Diff

diff -riwbBuN -Xex aspell-0.60.4/Makefile.am aspell-0.60.4-modified/Makefile.am
--- aspell-0.60.4/Makefile.am Wed Oct 19 11:12:02 2005
+++ aspell-0.60.4-modified/Makefile.am Thu Jun 15 14:45:47 2006
@@ -32,6 +32,7 @@
endif
libaspell_la_SOURCES =\
+ common/aspell_win.cpp\
common/cache.cpp\
common/string.cpp\
common/getdata.cpp\
diff -riwbBuN -Xex aspell-0.60.4/common/aspell_win.cpp aspell-0.60.4-modified/common/aspell_win.cpp
--- aspell-0.60.4/common/aspell_win.cpp Thu Jan 1 01:00:00 1970
+++ aspell-0.60.4-modified/common/aspell_win.cpp Fri Jun 16 01:19:04 2006
@@ -0,0 +1,54 @@
+#ifdef _WIN32
+
+#include <windows.h>
+#include "string.hpp"
+
+namespace acommon {
+
+ String ReadRegString(HKEY hive, String key, String name)
+ {
+
+ // Reads a string from the Windows registry (used to get paths)
+
+ HKEY hKey;
+ unsigned long lType;
+ DWORD dwSize;
+ unsigned char* szValue = NULL;
+
+ if (::RegOpenKeyEx(hive, key.c_str(), 0, KEY_READ, &hKey) == ERROR_SUCCESS)
+ {
+ if(::RegQueryValueEx(hKey, name.c_str(), NULL, &lType, NULL, &dwSize) == ERROR_SUCCESS)
+ {
+ szValue = new unsigned char[dwSize + 1];
+ ::RegQueryValueEx(hKey, name.c_str(), NULL, &lType, szValue, &dwSize);
+ String RegistryReturn((char*)szValue);
+ delete[] szValue;
+ return RegistryReturn;
+ } else {
+ return "";
+ }
+ } else {
+ return "";
+ }
+
+ }
+
+ HKEY GetRegHive()
+ {
+
+ // Check whether Aspell is installed for the current user or for all users
+
+ String value;
+
+ if (ReadRegString(HKEY_LOCAL_MACHINE, "Software\\Aspell", "Dictionary Path") == "")
+ {
+ return HKEY_CURRENT_USER;
+ } else {
+ return HKEY_LOCAL_MACHINE;
+ }
+
+ }
+
+}
+
+#endif
diff -riwbBuN -Xex aspell-0.60.4/common/aspell_win.hpp aspell-0.60.4-modified/common/aspell_win.hpp
--- aspell-0.60.4/common/aspell_win.hpp Thu Jan 1 01:00:00 1970
+++ aspell-0.60.4-modified/common/aspell_win.hpp Thu Jun 15 15:33:58 2006
@@ -0,0 +1,18 @@
+#ifdef _WIN32
+
+#ifndef ASPELL_WIN__HPP
+#define ASPELL_WIN__HPP
+
+#include "string.hpp"
+#include <windows.h>
+
+namespace acommon {
+
+ extern HKEY GetRegHive();
+ extern String ReadRegString(HKEY type, String key, String name);
+
+}
+
+#endif
+
+#endif
diff -riwbBuN -Xex aspell-0.60.4/common/config.cpp aspell-0.60.4-modified/common/config.cpp
--- aspell-0.60.4/common/config.cpp Wed Jun 22 07:32:30 2005
+++ aspell-0.60.4-modified/common/config.cpp Wed Jun 14 20:44:29 2006
@@ -39,6 +39,7 @@
#include "string_list.hpp"
#include "gettext.h"
+#undef printf
#include "iostream.hpp"
diff -riwbBuN -Xex aspell-0.60.4/common/convert.cpp aspell-0.60.4-modified/common/convert.cpp
--- aspell-0.60.4/common/convert.cpp Thu Sep 29 05:20:04 2005
+++ aspell-0.60.4-modified/common/convert.cpp Sat May 27 12:08:02 2006
@@ -23,6 +23,7 @@
#include "iostream.hpp"
#include "gettext.h"
+#undef printf
namespace acommon {
diff -riwbBuN -Xex aspell-0.60.4/common/file_util.cpp aspell-0.60.4-modified/common/file_util.cpp
--- aspell-0.60.4/common/file_util.cpp Mon Nov 15 13:29:54 2004
+++ aspell-0.60.4-modified/common/file_util.cpp Sat May 27 12:08:02 2006
@@ -26,6 +26,7 @@
#ifdef WIN32
+# include "asc_ctype.hpp"
# include <io.h>
# define ACCESS _access
# include <windows.h>
diff -riwbBuN -Xex aspell-0.60.4/common/gettext_init.cpp aspell-0.60.4-modified/common/gettext_init.cpp
--- aspell-0.60.4/common/gettext_init.cpp Tue Nov 9 09:20:24 2004
+++ aspell-0.60.4-modified/common/gettext_init.cpp Thu Jun 15 15:31:02 2006
@@ -1,5 +1,13 @@
+#include "settings.h"
+#include "string.hpp"
+
+#ifdef _WIN32
+ #include <windows.h>
+ #include "aspell_win.hpp"
+#endif
#include "gettext.h"
+#undef printf
#if ENABLE_NLS
@@ -11,12 +19,24 @@
extern "C" void aspell_gettext_init()
{
- {
acommon::Lock l(&lock);
if (did_init) return;
did_init = true;
- }
+
+#ifdef _WIN32
+ // Registry key for Locale Path
+
+ acommon::String value;
+ HKEY hive;
+
+ hive = acommon::GetRegHive();
+ value = acommon::ReadRegString(hive, "Software\\Aspell", "Locale Path");
+ if (value == "") value = LOCALEDIR;
+
+ bindtextdomain("aspell", value.c_str());
+#else
bindtextdomain("aspell", LOCALEDIR);
+#endif
}
#else
diff -riwbBuN -Xex aspell-0.60.4/common/info.cpp aspell-0.60.4-modified/common/info.cpp
--- aspell-0.60.4/common/info.cpp Wed Nov 10 07:18:46 2004
+++ aspell-0.60.4-modified/common/info.cpp Fri Jun 16 01:20:52 2006
@@ -15,9 +15,11 @@
/* BSDi defines u_intXX_t types in machine/types.h */
#include <machine/types.h>
#endif
+
#ifdef WIN32
# include <windows.h>
# include <winbase.h>
+#include "aspell_win.hpp"
#endif
#include "iostream.hpp"
@@ -38,6 +40,7 @@
#include "string_map.hpp"
#include "gettext.h"
+#undef printf
namespace acommon {
@@ -492,8 +495,22 @@
void get_data_dirs (Config * config,
StringList & lst)
{
+ String dictpath;
+ HKEY hive;
+
lst.clear();
- lst.add(config->retrieve("data-dir"));
+
+ hive = GetRegHive();
+
+#ifdef _WIN32
+ // Registry key for dictionary path
+ dictpath = ReadRegString(hive, "Software\\Aspell", "Dictionary Path");;
+ if (dictpath == "") dictpath = config->retrieve("data-dir");
+#else
+ dictpath = config->retrieve("data-dir");
+#endif
+
+ lst.add(dictpath);
lst.add(config->retrieve("dict-dir"));
}
diff -riwbBuN -Xex aspell-0.60.4/common/posib_err.cpp aspell-0.60.4-modified/common/posib_err.cpp
--- aspell-0.60.4/common/posib_err.cpp Sun Nov 21 03:52:22 2004
+++ aspell-0.60.4-modified/common/posib_err.cpp Sat May 27 12:08:02 2006
@@ -13,6 +13,7 @@
#include "posib_err.hpp"
#include "gettext.h"
+#undef printf
namespace acommon {
diff -riwbBuN -Xex aspell-0.60.4/modules/speller/default/language.cpp aspell-0.60.4-modified/modules/speller/default/language.cpp
--- aspell-0.60.4/modules/speller/default/language.cpp Sun Feb 20 22:47:08 2005
+++ aspell-0.60.4-modified/modules/speller/default/language.cpp Wed Jun 14 19:55:47 2006
@@ -21,10 +21,11 @@
#include "file_util.hpp"
#ifdef ENABLE_NLS
-# include <langinfo.h>
+//#include <langinfo.h>
#endif
#include "gettext.h"
+#undef printf
namespace aspeller {
diff -riwbBuN -Xex aspell-0.60.4/prog/aspell.cpp aspell-0.60.4-modified/prog/aspell.cpp
--- aspell-0.60.4/prog/aspell.cpp Sun Jun 19 14:00:46 2005
+++ aspell-0.60.4-modified/prog/aspell.cpp Wed Jun 14 20:46:09 2006
@@ -60,6 +60,7 @@
#include "hash_fun.hpp"
#include "gettext.h"
+#undef printf
using namespace acommon;