annotate man/lispref/dialog.texi @ 5911:48386fd60fd0

GMP functions that take doubles choke on non-finite values, avoid that. src/ChangeLog addition: 2015-05-10 Aidan Kehoe <kehoea@parhasard.net> * floatfns.c (double_to_integer): Rename this from float_to_int to fit our newer, bignum-compatible terminology. GMP can signal SIGFPE when asked to turn NaN or infinity into a bignum, and we're not prepared to handle that signal if the OS float library routines don't do that, so check for those values explicitly. * floatfns.c (ceiling_two_float): * floatfns.c (ceiling_one_float): * floatfns.c (floor_two_float): * floatfns.c (floor_one_float): * floatfns.c (round_two_float): * floatfns.c (round_one_float): * floatfns.c (truncate_two_float): * floatfns.c (truncate_one_float): Call double_to_integer() with its new name. * number.c: Don't use the {bignum,ratio,bigfloat}_set_double functions directly here, with GMP they can choke when handed non-finite C doubles, call Ftruncate() and the new float_to_bigfloat() from floatfns.c. Maybe we should extend number-gmp.c with GMP-specific implementations that check for non-finite values. tests/ChangeLog addition: 2015-05-10 Aidan Kehoe <kehoea@parhasard.net> * automated/lisp-tests.el: Backslash a few parentheses in the first column for the sake of fontification. * automated/lisp-tests.el: Check that the rounding functions signal Lisp errors correctly when handed positive and negative infinity and NaN.
author Aidan Kehoe <kehoea@parhasard.net>
date Sun, 10 May 2015 19:07:09 +0100
parents 9fae6227ede5
children
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
5791
9fae6227ede5 Silence texinfo 5.2 warnings, primarily by adding next, prev, and up
Jerry James <james@xemacs.org>
parents: 444
diff changeset
15 @node Dialog Box Format, Dialog Box Functions, Dialog Boxes, Dialog Boxes
0
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
5791
9fae6227ede5 Silence texinfo 5.2 warnings, primarily by adding next, prev, and up
Jerry James <james@xemacs.org>
parents: 444
diff changeset
58 @node Dialog Box Functions, , Dialog Box Format, Dialog Boxes
0
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.