diff options
| author | Robin Haberkorn <robin.haberkorn@googlemail.com> | 2012-12-04 17:29:01 +0100 |
|---|---|---|
| committer | Robin Haberkorn <robin.haberkorn@googlemail.com> | 2012-12-04 22:07:08 +0100 |
| commit | d8a316514c03d85b771a9dce4a8a51b875d955b3 (patch) | |
| tree | 8966c29db767a155848f6d90f76771ce5b9de32e /symbols.cpp | |
| parent | b120616b6da52e951097f69ad267de06081d218a (diff) | |
autoconf preparation: move everything into src/ subdir
Diffstat (limited to 'symbols.cpp')
| -rw-r--r-- | symbols.cpp | 60 |
1 files changed, 0 insertions, 60 deletions
diff --git a/symbols.cpp b/symbols.cpp deleted file mode 100644 index c05d153..0000000 --- a/symbols.cpp +++ /dev/null @@ -1,60 +0,0 @@ -#include <string.h> - -#include <glib.h> - -#include "symbols.h" - -/* - * defaults for sciteco-minimal - */ -namespace Symbols { - SymbolList __attribute__((weak)) scintilla; - SymbolList __attribute__((weak)) scilexer; -} - -/* - * Since symbol lists are presorted constant arrays we can do a simple - * binary search. - */ -gint -SymbolList::lookup(const gchar *name, const gchar *prefix, bool case_sensitive) -{ - int (*cmp_fnc)(const char *, const char *, size_t); - gint prefix_skip = strlen(prefix); - gint name_len = strlen(name); - - gint left = 0; - gint right = size - 1; - - cmp_fnc = case_sensitive ? strncmp : g_ascii_strncasecmp; - - if (!cmp_fnc(name, prefix, prefix_skip)) - prefix_skip = 0; - - while (left <= right) { - gint cur = left + (right-left)/2; - gint cmp = cmp_fnc(entries[cur].name + prefix_skip, - name, name_len + 1); - - if (!cmp) - return entries[cur].value; - - if (cmp > 0) - right = cur-1; - else /* cmp < 0 */ - left = cur+1; - } - - return -1; -} - -GList * -SymbolList::get_glist(void) -{ - if (!list) { - for (gint i = size; i; i--) - list = g_list_prepend(list, (gchar *)entries[i-1].name); - } - - return list; -} |
