annotate man/lispref/dialog.texi @ 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 576fb035e263
children 9fae6227ede5
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1 @c -*-texinfo-*-
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2 @c This is part of the XEmacs Lisp Reference Manual.
444
576fb035e263 Import from CVS: tag r21-2-37
cvs
parents: 398
diff changeset
3 @c Copyright (C) 1990, 1991, 1992, 1993 Free Software Foundation, Inc.
0
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
4 @c See the file lispref.texi for copying conditions.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
5 @setfilename ../../info/dialog.info
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
6 @node Dialog Boxes, Toolbar, Menus, Top
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
7 @chapter Dialog Boxes
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
8 @cindex dialog box
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
9
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
10 @menu
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
11 * Dialog Box Format::
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
12 * Dialog Box Functions::
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
13 @end menu
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
14
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
15 @node Dialog Box Format
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
16 @section Dialog Box Format
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
17
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
18 A dialog box description is a list.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
19
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
20 @itemize @bullet
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
21 @item
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
22 The first element of the list is a string to display in the dialog box.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
23 @item
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
24 The rest of the elements are descriptions of the dialog box's buttons.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
25 Each one is a vector of three elements:
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
26 @itemize @minus
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
27 @item
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
28 The first element is the text of the button.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
29 @item
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
30 The second element is the @dfn{callback}.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
31 @item
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
32 The third element is @code{t} or @code{nil}, whether this button is
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
33 selectable.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
34 @end itemize
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
35 @end itemize
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
36
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
37 If the callback of a button is a symbol, then it must name a command.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
38 It will be invoked with @code{call-interactively}. If it is a list,
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
39 then it is evaluated with @code{eval}.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
40
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
41 One (and only one) of the buttons may be @code{nil}. This marker means
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
42 that all following buttons should be flushright instead of flushleft.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
43
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
44 The syntax, more precisely:
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
45
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
46 @example
398
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents: 0
diff changeset
47 form := <something to pass to `eval'>
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents: 0
diff changeset
48 command := <a symbol or string, to pass to `call-interactively'>
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents: 0
diff changeset
49 callback := command | form
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents: 0
diff changeset
50 active-p := <t, nil, or a form to evaluate to decide whether this
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents: 0
diff changeset
51 button should be selectable>
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents: 0
diff changeset
52 name := <string>
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents: 0
diff changeset
53 partition := 'nil'
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents: 0
diff changeset
54 button := '[' name callback active-p ']'
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents: 0
diff changeset
55 dialog := '(' name [ button ]+ [ partition [ button ]+ ] ')'
0
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
56 @end example
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
57
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
58 @node Dialog Box Functions
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
59 @section Dialog Box Functions
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
60
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
61 @defun popup-dialog-box dbox-desc
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
62 This function pops up a dialog box. @var{dbox-desc} describes how the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
63 dialog box will appear (@pxref{Dialog Box Format}).
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
64 @end defun
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
65
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
66 @xref{Yes-or-No Queries}, for functions to ask a yes/no question using
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
67 a dialog box.