This package, when extracted over the official aspell-0.60.5 package, gives full Visual Studio projects with 12 compile targets:
aspell, libaspell (static) and libaspell (dynamic)
for platforms Win32 and Win64
in Debug and Release
A few support files has been added to allow the mutex-locked section to be enabled (USE_POSIX_MUTEX)
The old-forgotten set-prefix of the ENABLE_WIN32_RELOCATABLE feature has been reimplemented and tested.
Batch scripts to install aspell in the selected directory after compilation, and a small install system with batch files and support files to install any dictionary.
After installing this patch, all you need is Windows and Visual Studio 2005. No MinGW or Cygwin required.
The Visual Studio projects and the install script are in the new /msvc directory. I left the win32 directory untouched for those who wish to compile with MinGW.
For more informations, see msvc/msvc.readme
Sorry not to provide a real patch file, but since there is many new files in a new directory, it was easier to pack all in a zip.
Due to the few win32-native binary files included in the package, the file is a bit too large to be attached here, you can follow this link to get it (453kb):
http://www.niversoft.com/downloads/aspell-0.60.5-msvc-patch.zip
Logged In: YES
user_id=6591
Originator: NO
Can you please provide a patch for the files you modified. Preferably
with "diff -u".
Modified files
Logged In: YES
user_id=299896
Originator: YES
Diff is attached.
Explanations of the mods:
modules/speller/affix.hpp: MSVC does not support having two params with the same name, even in a header
modules/speller/speller_impl.hpp: SensitiveCompare is defined as struct somewhere else, not as class, MSVC issues a warning
common/possib_err.cpp: missing settings.h header defining snprintf as _snprintf (snprintf does not exists in MSVC. _snprintf does.)
common/obj_stack.cpp: using a namespace that is not previously defined.
common/file_util.cpp: missing the definition of asc_isalpha() - the call is enclosed in a #ifdef WIN32, normal you didn't notice the problem
common/config.cpp: separate_list() - when the ":" characters were previously escaped and the list is split against non-escaped characters, the escape character (\) remains in the string. This breaks WIN32 paths, giving strings such as "C\:/temp". The code I added remove the escape character only if the string looks like a WIN32 path
when the ":" characters weren't previously escaped, the string is separated there and WIN32 paths are broken ("c:/temp" -> "c","/temp"). The code I added avoids breaking strings when it looks like a WIN32 path.
common/config.cpp: commit_all()
I took the old set-prefix code I found in aspell-0.33 and adapted it there. The set-prefix is enabled by default when ENABLE_WIN32_RELOCATABLE is on, but I made a special case to not use set-prefix if --prefix is specified on the command line. Also, paths that are likely to be set on the command line are normalized ("\" replaced by "/")
File Added: aspell-msvc.diff
This issue has moved to GitHub: https://github.com/GNUAspell/aspell/issues/415