annotate src/gtk-xemacs.h @ 4407:4ee73bbe4f8e

Always use boyer_moore in ASCII or Latin-1 buffers with ASCII search strings. 2007-12-26 Aidan Kehoe <kehoea@parhasard.net> * casetab.c: Extend and correct some case table documentation. * search.c (search_buffer): Correct a bug where only the first entry for a character in the case equivalence table was examined in determining if the Boyer-Moore search algorithm is appropriate. If there are case mappings outside of the charset and row of the characters specified in the search string, those case mappings can be safely ignored (and Boyer-Moore search can be used) if we know from the buffer statistics that the corresponding characters cannot occur. * search.c (boyer_moore): Assert that we haven't been passed a string with varying characters sets or rows within character sets. That's what simple_search is for. In the very rare event that a character in the search string has a canonical case mapping that is not in the same character set and row, don't try to search for the canonical character, search for some other character that is in the the desired character set and row. Assert that the case table isn't corrupt. Do not search for any character case mappings that cannot possibly occur in the buffer, given the buffer metadata about its contents.
author Aidan Kehoe <kehoea@parhasard.net>
date Wed, 26 Dec 2007 17:30:16 +0100
parents 543769b89fed
children db7068430402
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
462
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
1 /* gtk-xemacs.h
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
2 **
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
3 ** Description: A widget to encapsulate a XEmacs 'text widget'
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
4 **
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
5 ** Created by: William M. Perry
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
6 ** Copyright (c) 2000 William M. Perry <wmperry@gnu.org>
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
7 **
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
8 */
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
9
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
10 #ifndef __GTK_XEMACS_H__
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
11 #define __GTK_XEMACS_H__
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
12
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
13 #include <config.h>
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
14 #include "frame.h"
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
15 #include <gdk/gdk.h>
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
16 #include <gtk/gtkfixed.h>
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
17
1743
543769b89fed [xemacs-hg @ 2003-10-14 05:02:57 by james]
james
parents: 462
diff changeset
18 BEGIN_C_DECLS
462
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
19
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
20 #define GTK_XEMACS(obj) GTK_CHECK_CAST (obj, gtk_xemacs_get_type (), GtkXEmacs)
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
21 #define GTK_XEMACS_CLASS(klass) GTK_CHECK_CLASS_CAST (klass, gtk_xemacs_get_type (), GtkXEmacsClass)
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
22 #define GTK_IS_XEMACS(obj) GTK_CHECK_TYPE (obj, gtk_xemacs_get_type ())
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
23 #define GTK_XEMACS_FRAME(obj) GTK_XEMACS (obj)->f
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
24
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
25 typedef struct _GtkXEmacs GtkXEmacs;
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
26 typedef struct _GtkXEmacsClass GtkXEmacsClass;
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
27
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
28 struct _GtkXEmacs
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
29 {
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
30 GtkFixed fixed;
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
31 struct frame *f;
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
32 };
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
33
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
34 struct _GtkXEmacsClass
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
35 {
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
36 GtkFixedClass parent_class;
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
37 };
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
38
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
39 guint gtk_xemacs_get_type (void);
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
40 GtkWidget *gtk_xemacs_new (struct frame *f);
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
41
1743
543769b89fed [xemacs-hg @ 2003-10-14 05:02:57 by james]
james
parents: 462
diff changeset
42 END_C_DECLS
462
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
43
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
44 #endif /* __GTK_XEMACS_H__ */