Am 31.05.2010 um 14:37 schrieb Stephan Witt:
> Am 31.05.2010 um 13:00 schrieb Jean-Marc LASGOUTTES:
>
> Thanks for commenting!
>
>> Stephan Witt <[email protected]> writes:
>>> I've prepared a patch to change hunspell and myThes wrappers to be ready
>>> for included dictionaries.
>>> Please have a look at the patch and point me to typos and thinkos.
>>> With the changes the binary searches the data files in this order:
>>> 1. user path from configuration
>>> 2. user support directory and
>>> 3. system support directory - there will the shipped data files live.
>>
>>> +#ifndef THESAURUS_LOCATION
>>> +# define THESAURUS_LOCATION "thes"
>>> +#endif
>>
>> Please refrain from using #defines. I do not think this particular one
>> is useful.
>
> I know that defines are bad. But here I don't know how to make the used
> location clear.
> The alternative is a local const string in method
> pair<string,string> Thesaurus::Private::getThesaurus(docstring const & lang)
> around line 120 of src/Thesaurus.cpp
> That's pretty far away of the beginning of the file.
>
> Any idea?
Is something like the attached patch better?
Stephan
Index: src/Thesaurus.cpp
===================================================================
--- src/Thesaurus.cpp (Revision 34556)
+++ src/Thesaurus.cpp (Arbeitskopie)
@@ -42,10 +42,6 @@
} // namespace anon
-#ifndef THESAURUS_LOCATION
-# define THESAURUS_LOCATION "thes"
-#endif
-
struct Thesaurus::Private
{
~Private()
@@ -77,6 +73,8 @@
/// the thesauri
Thesauri thes_;
+ const string dataDirectory(void) { return "thes"; }
+
};
@@ -125,11 +123,11 @@
result = getThesaurus(thes_path, lang);
}
if (result.first.empty() || result.second.empty()) {
- string const sys_path =
external_path(addName(lyx::support::package().system_support().absFileName(),THESAURUS_LOCATION))
;
+ string const sys_path =
external_path(addName(lyx::support::package().system_support().absFileName(),dataDirectory()))
;
result = getThesaurus(sys_path, lang);
}
if (result.first.empty() || result.second.empty()) {
- string const user_path =
external_path(addName(lyx::support::package().user_support().absFileName(),THESAURUS_LOCATION))
;
+ string const user_path =
external_path(addName(lyx::support::package().user_support().absFileName(),dataDirectory()))
;
result = getThesaurus(user_path, lang);
}
return result;