Mercurial > hg > xemacs-beta
view 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 |
line wrap: on
line source
@c -*-texinfo-*- @c This is part of the XEmacs Lisp Reference Manual. @c Copyright (C) 1990, 1991, 1992, 1993 Free Software Foundation, Inc. @c See the file lispref.texi for copying conditions. @setfilename ../../info/dialog.info @node Dialog Boxes, Toolbar, Menus, Top @chapter Dialog Boxes @cindex dialog box @menu * Dialog Box Format:: * Dialog Box Functions:: @end menu @node Dialog Box Format @section Dialog Box Format A dialog box description is a list. @itemize @bullet @item The first element of the list is a string to display in the dialog box. @item The rest of the elements are descriptions of the dialog box's buttons. Each one is a vector of three elements: @itemize @minus @item The first element is the text of the button. @item The second element is the @dfn{callback}. @item The third element is @code{t} or @code{nil}, whether this button is selectable. @end itemize @end itemize If the callback of a button is a symbol, then it must name a command. It will be invoked with @code{call-interactively}. If it is a list, then it is evaluated with @code{eval}. One (and only one) of the buttons may be @code{nil}. This marker means that all following buttons should be flushright instead of flushleft. The syntax, more precisely: @example form := <something to pass to `eval'> command := <a symbol or string, to pass to `call-interactively'> callback := command | form active-p := <t, nil, or a form to evaluate to decide whether this button should be selectable> name := <string> partition := 'nil' button := '[' name callback active-p ']' dialog := '(' name [ button ]+ [ partition [ button ]+ ] ')' @end example @node Dialog Box Functions @section Dialog Box Functions @defun popup-dialog-box dbox-desc This function pops up a dialog box. @var{dbox-desc} describes how the dialog box will appear (@pxref{Dialog Box Format}). @end defun @xref{Yes-or-No Queries}, for functions to ask a yes/no question using a dialog box.