SF.net SVN: geany-plugins: [24] trunk/spellcheck
eht16 at users.sourceforge.net
eht16 at xxxxx
Tue May 20 15:37:04 UTC 2008
Revision: 24
http://geany-plugins.svn.sourceforge.net/geany-plugins/?rev=24&view=rev
Author: eht16
Date: 2008-05-20 08:37:03 -0700 (Tue, 20 May 2008)
Log Message:
-----------
Detect the Aspell installation prefix on Windows and use it to find installed dictionaries.
Modified Paths:
--------------
trunk/spellcheck/ChangeLog
trunk/spellcheck/src/spellcheck.c
Modified: trunk/spellcheck/ChangeLog
===================================================================
--- trunk/spellcheck/ChangeLog 2008-05-20 14:45:24 UTC (rev 23)
+++ trunk/spellcheck/ChangeLog 2008-05-20 15:37:03 UTC (rev 24)
@@ -4,6 +4,8 @@
Add new GeanyFunctions API.
Avoid crashes when LANG environment variable can't be read
(e.g. on Windows).
+ Detect the Aspell installation prefix on Windows and use it to find
+ installed dictionaries.
2008-05-16 Enrico Tröger <enrico(dot)troeger(at)uvena(dot)de>
Modified: trunk/spellcheck/src/spellcheck.c
===================================================================
--- trunk/spellcheck/src/spellcheck.c 2008-05-20 14:45:24 UTC (rev 23)
+++ trunk/spellcheck/src/spellcheck.c 2008-05-20 15:37:03 UTC (rev 24)
@@ -30,6 +30,10 @@
# include <locale.h>
#endif
+#ifdef G_OS_WIN32
+# include <windows.h>
+#endif
+
#include <aspell.h>
#include "plugindata.h"
@@ -64,6 +68,28 @@
static gchar *config_file;
static gchar *language;
+
+/* On Windows we need to find the Aspell installation prefix via the Windows Registry
+ * and then set the prefix in the Aspell config object. */
+static void set_up_aspell_prefix(AspellConfig *config)
+{
+#ifdef G_OS_WIN32
+ char sTemp[1024];
+ HKEY hkey;
+ DWORD len = sizeof(sTemp);
+
+ if (RegOpenKeyEx(HKEY_LOCAL_MACHINE, TEXT("SOFTWARE\\Aspell"), 0,
+ KEY_QUERY_VALUE, &hkey) != ERROR_SUCCESS)
+ return;
+
+ if (RegQueryValueEx(hkey, NULL, 0, NULL, (LPBYTE)sTemp, &len) == ERROR_SUCCESS)
+ aspell_config_replace(config, "prefix", sTemp);
+
+ RegCloseKey(hkey);
+#endif
+}
+
+
static void print_word_list(AspellSpeller *speller, GString *str, const AspellWordList *wl)
{
if (wl == NULL)
@@ -188,6 +214,7 @@
config = new_aspell_config();
aspell_config_replace(config, "lang", language);
aspell_config_replace(config, "encoding", "utf-8");
+ set_up_aspell_prefix(config);
ret = new_aspell_speller(config);
delete_aspell_config(config);
@@ -270,6 +297,7 @@
guint i = 0;
config = new_aspell_config();
+ set_up_aspell_prefix(config);
dlist = get_aspell_dict_info_list(config);
delete_aspell_config(config);
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
More information about the Plugins-Commits
mailing list