~efargaspro/+junk/codeblocks-16.01-release

« back to all changes in this revision

Viewing changes to src/plugins/contrib/SpellChecker/hunspell/src/win_api/hunspelldll.c

  • Committer: damienlmoore at gmail
  • Date: 2016-02-02 02:43:22 UTC
  • Revision ID: damienlmoore@gmail.com-20160202024322-yql5qmtbwdyamdwd
Code::BlocksĀ 16.01

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/* ***** BEGIN LICENSE BLOCK *****
 
2
 * Version: MPL 1.1/GPL 2.0/LGPL 2.1
 
3
 *
 
4
 * The contents of this file are subject to the Mozilla Public License Version
 
5
 * 1.1 (the "License"); you may not use this file except in compliance with
 
6
 * the License. You may obtain a copy of the License at
 
7
 * http://www.mozilla.org/MPL/
 
8
 *
 
9
 * Software distributed under the License is distributed on an "AS IS" basis,
 
10
 * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
 
11
 * for the specific language governing rights and limitations under the
 
12
 * License.
 
13
 *
 
14
 * Copyright (C) 2006
 
15
 * Miha Vrhovnik (http://simail.sf.net, http://xcollect.sf.net)
 
16
 * All Rights Reserved.
 
17
 *
 
18
 * Contributor(s):
 
19
 * 
 
20
 *  
 
21
 * Alternatively, the contents of this file may be used under the terms of
 
22
 * either the GNU General Public License Version 2 or later (the "GPL"), or
 
23
 * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
 
24
 * in which case the provisions of the GPL or the LGPL are applicable instead
 
25
 * of those above. If you wish to allow use of your version of this file only
 
26
 * under the terms of either the GPL or the LGPL, and not to allow others to
 
27
 * use your version of this file under the terms of the MPL, indicate your
 
28
 * decision by deleting the provisions above and replace them with the notice
 
29
 * and other provisions required by the GPL or the LGPL. If you do not delete
 
30
 * the provisions above, a recipient may use your version of this file under
 
31
 * the terms of any one of the MPL, the GPL or the LGPL.
 
32
 *
 
33
 * ***** END LICENSE BLOCK ***** **/
 
34
#include "hunspelldll.h"
 
35
#include <windows.h>
 
36
 
 
37
#include <stdio.h>
 
38
#include <stdlib.h>
 
39
#include <cstring>
 
40
#include <cstdlib>
 
41
#include <cstdio>
 
42
 
 
43
LIBHUNSPELL_DLL_EXPORTED void * hunspell_initialize(char *aff_file, char *dict_file)
 
44
{
 
45
    Hunspell * pMS = new Hunspell(aff_file, dict_file);
 
46
    return pMS;
 
47
}
 
48
 
 
49
LIBHUNSPELL_DLL_EXPORTED void * hunspell_initialize_key(char *aff_file, char *dict_file, char * key)
 
50
{
 
51
    Hunspell * pMS = new Hunspell(aff_file, dict_file, key);
 
52
    return pMS;
 
53
}
 
54
 
 
55
LIBHUNSPELL_DLL_EXPORTED void hunspell_uninitialize(Hunspell *pMS)
 
56
{
 
57
    delete pMS;
 
58
}
 
59
 
 
60
LIBHUNSPELL_DLL_EXPORTED int hunspell_spell(Hunspell *pMS, char *word)
 
61
{
 
62
    return pMS->spell(word);
 
63
}
 
64
 
 
65
LIBHUNSPELL_DLL_EXPORTED int hunspell_suggest(Hunspell *pMS, char *word, char ***slst)
 
66
{
 
67
    return pMS->suggest(slst, word);
 
68
}
 
69
 
 
70
#ifdef HUNSPELL_EXPERIMENTAL
 
71
LIBHUNSPELL_DLL_EXPORTED int hunspell_suggest_auto(Hunspell *pMS, char *word, char ***slst)
 
72
{
 
73
    return pMS->suggest_auto(slst, word);
 
74
}
 
75
#endif
 
76
 
 
77
LIBHUNSPELL_DLL_EXPORTED void hunspell_free_list(Hunspell *pMS, char ***slst, int len)
 
78
{
 
79
    pMS->free_list(slst, len);
 
80
}
 
81
 
 
82
// deprecated (use hunspell_free_list)
 
83
LIBHUNSPELL_DLL_EXPORTED void hunspell_suggest_free(Hunspell *pMS, char **slst, int len)
 
84
{
 
85
    for (int i = 0; i < len; i++) {
 
86
        free(slst[i]);
 
87
    }
 
88
}
 
89
 
 
90
LIBHUNSPELL_DLL_EXPORTED char * hunspell_get_dic_encoding(Hunspell *pMS)
 
91
{
 
92
    return pMS->get_dic_encoding();
 
93
}
 
94
 
 
95
LIBHUNSPELL_DLL_EXPORTED int hunspell_add(Hunspell *pMS, char *word)
 
96
{
 
97
    return pMS->add(word);
 
98
}
 
99
 
 
100
LIBHUNSPELL_DLL_EXPORTED int hunspell_add_with_affix(Hunspell *pMS, char *word, char *modelword)
 
101
{
 
102
    return pMS->add_with_affix(word, modelword);
 
103
}
 
104
 
 
105
LIBHUNSPELL_DLL_EXPORTED int hunspell_remove(Hunspell *pMS, char *word)
 
106
{
 
107
    return pMS->remove(word);
 
108
}
 
109
 
 
110
BOOL APIENTRY DllMain (HINSTANCE hInst     /* Library instance handle. */ ,
 
111
                       DWORD reason        /* Reason this function is being called. */ ,
 
112
                       LPVOID reserved     /* Not used. */ )
 
113
{
 
114
    switch (reason)
 
115
    {
 
116
      case DLL_PROCESS_ATTACH:
 
117
        break;
 
118
 
 
119
      case DLL_PROCESS_DETACH:
 
120
        break;
 
121
 
 
122
      case DLL_THREAD_ATTACH:
 
123
        break;
 
124
 
 
125
      case DLL_THREAD_DETACH:
 
126
        break;
 
127
    }
 
128
 
 
129
    /* Returns TRUE on success, FALSE on failure */
 
130
    return TRUE;
 
131
}