annotate nt/Emacs.ad.h @ 5864:750fab17b299

Make #'parse-integer Lisp-visible, extend it, allowing non-ASCII digits. src/ChangeLog addition: 2015-02-25 Aidan Kehoe <kehoea@parhasard.net> * lread.c (read_atom): Use the new calling convention for parse_integer(). * lisp.h: Change the declaration of parse_integer (). * number.h (bignum_set_emacs_int, make_bignum_emacs_uint): New #defines, used in data.c. * lread.c (read_integer): Ditto. * lread.c (read1): Ditto. * data.c (find_highest_value): New. * data.c (fill_ichar_array): New. * data.c (build_fixnum_to_char_map): New. * data.c (Fset_digit_fixnum_map): New. * data.c (Fdigit_char_p): Moved from cl-extra.el. * data.c (Fdigit_char): Moved from cl-extra.el. * data.c (parse_integer): Moved from lread.c. * data.c (Fparse_integer): Made available to Lisp. * data.c (syms_of_data): Make the new subrs available. * data.c (vars_of_data): Make the new vars available. Expose parse_integer to Lisp, make it follow the Common Lisp API (with some extensions, to allow us to support non ASCII digit characters). lisp/ChangeLog addition: 2015-02-25 Aidan Kehoe <kehoea@parhasard.net> * cl-extra.el (digit-char-p): Moved to data.c. * cl-extra.el (digit-char): Moved to data.c. tests/ChangeLog addition: 2015-02-25 Aidan Kehoe <kehoea@parhasard.net> * automated/lisp-tests.el: parse_integer(), used in #'read, now signals invalid-argument rather than invalid-read-syntax, check for that. * automated/lisp-tests.el: Check #'parse-integer now it's available to Lisp, check #'digit-char, #'digit-char-p and the congruence in behaviour, check the XEmacs-specific RADIX-TABLE argument behaviour.
author Aidan Kehoe <kehoea@parhasard.net>
date Wed, 25 Feb 2015 11:47:12 +0000
parents e01bac102bc0
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
5452
e01bac102bc0 nt/Emacs.ad.h attributed to David Hobley plus license added.
Mats Lidell <matsl@xemacs.org>
parents: 100
diff changeset
1 /* Copyright (C) 1997 David Hobley
e01bac102bc0 nt/Emacs.ad.h attributed to David Hobley plus license added.
Mats Lidell <matsl@xemacs.org>
parents: 100
diff changeset
2
e01bac102bc0 nt/Emacs.ad.h attributed to David Hobley plus license added.
Mats Lidell <matsl@xemacs.org>
parents: 100
diff changeset
3 This file is part of XEmacs.
e01bac102bc0 nt/Emacs.ad.h attributed to David Hobley plus license added.
Mats Lidell <matsl@xemacs.org>
parents: 100
diff changeset
4
e01bac102bc0 nt/Emacs.ad.h attributed to David Hobley plus license added.
Mats Lidell <matsl@xemacs.org>
parents: 100
diff changeset
5 XEmacs is free software: you can redistribute it and/or modify it
e01bac102bc0 nt/Emacs.ad.h attributed to David Hobley plus license added.
Mats Lidell <matsl@xemacs.org>
parents: 100
diff changeset
6 under the terms of the GNU General Public License as published by the
e01bac102bc0 nt/Emacs.ad.h attributed to David Hobley plus license added.
Mats Lidell <matsl@xemacs.org>
parents: 100
diff changeset
7 Free Software Foundation, either version 3 of the License, or (at your
e01bac102bc0 nt/Emacs.ad.h attributed to David Hobley plus license added.
Mats Lidell <matsl@xemacs.org>
parents: 100
diff changeset
8 option) any later version.
e01bac102bc0 nt/Emacs.ad.h attributed to David Hobley plus license added.
Mats Lidell <matsl@xemacs.org>
parents: 100
diff changeset
9
e01bac102bc0 nt/Emacs.ad.h attributed to David Hobley plus license added.
Mats Lidell <matsl@xemacs.org>
parents: 100
diff changeset
10 XEmacs is distributed in the hope that it will be useful, but WITHOUT
e01bac102bc0 nt/Emacs.ad.h attributed to David Hobley plus license added.
Mats Lidell <matsl@xemacs.org>
parents: 100
diff changeset
11 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
e01bac102bc0 nt/Emacs.ad.h attributed to David Hobley plus license added.
Mats Lidell <matsl@xemacs.org>
parents: 100
diff changeset
12 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
e01bac102bc0 nt/Emacs.ad.h attributed to David Hobley plus license added.
Mats Lidell <matsl@xemacs.org>
parents: 100
diff changeset
13 for more details.
e01bac102bc0 nt/Emacs.ad.h attributed to David Hobley plus license added.
Mats Lidell <matsl@xemacs.org>
parents: 100
diff changeset
14
e01bac102bc0 nt/Emacs.ad.h attributed to David Hobley plus license added.
Mats Lidell <matsl@xemacs.org>
parents: 100
diff changeset
15 You should have received a copy of the GNU General Public License
e01bac102bc0 nt/Emacs.ad.h attributed to David Hobley plus license added.
Mats Lidell <matsl@xemacs.org>
parents: 100
diff changeset
16 along with XEmacs. If not, see <http://www.gnu.org/licenses/>. */
e01bac102bc0 nt/Emacs.ad.h attributed to David Hobley plus license added.
Mats Lidell <matsl@xemacs.org>
parents: 100
diff changeset
17
e01bac102bc0 nt/Emacs.ad.h attributed to David Hobley plus license added.
Mats Lidell <matsl@xemacs.org>
parents: 100
diff changeset
18
100
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents:
diff changeset
19 (String) "Emacs.modeline*attributeForeground: Black",
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents:
diff changeset
20 (String) "Emacs.modeline*attributeBackground: Gray75",
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents:
diff changeset
21 (String) "Emacs.text-cursor*attributeBackground: Red3",
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents:
diff changeset
22 (String) "*menubar*Foreground: Gray30",
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents:
diff changeset
23 (String) "*menubar*Background: Gray75",
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents:
diff changeset
24 (String) "*menubar*buttonForeground: Blue",
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents:
diff changeset
25 (String) "*XlwMenu*selectColor: ForestGreen",
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents:
diff changeset
26 (String) "*XmToggleButton*selectColor: ForestGreen",
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents:
diff changeset
27 (String) "*popup*Foreground: Black",
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents:
diff changeset
28 (String) "*popup*Background: Gray75",
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents:
diff changeset
29 (String) "*dialog*Foreground: Black",
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents:
diff changeset
30 (String) "*dialog*Background: #A5C0C1",
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents:
diff changeset
31 (String) "*dialog*XmTextField*Background: WhiteSmoke",
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents:
diff changeset
32 (String) "*dialog*XmText*Background: WhiteSmoke",
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents:
diff changeset
33 (String) "*dialog*XmList*Background: WhiteSmoke",
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents:
diff changeset
34 (String) "*dialog*Command*Background: WhiteSmoke",
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents:
diff changeset
35 (String) "*XlwScrollBar*Foreground: Gray30",
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents:
diff changeset
36 (String) "*XlwScrollBar*Background: Gray75",
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents:
diff changeset
37 (String) "*XmScrollBar*Foreground: Gray30",
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents:
diff changeset
38 (String) "*XmScrollBar*Background: Gray75",
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents:
diff changeset
39 (String) "*topToolBarShadowColor: Gray90",
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents:
diff changeset
40 (String) "*bottomToolBarShadowColor: Gray40",
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents:
diff changeset
41 (String) "*backgroundToolBarColor: Gray75",
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents:
diff changeset
42 (String) "*toolBarShadowThickness: 2",
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents:
diff changeset
43 (String) "*menubar*Font: -*-helvetica-bold-r-*-*-*-120-*-*-*-*-iso8859-*",
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents:
diff changeset
44 (String) "*popup*Font: -*-helvetica-bold-r-*-*-*-120-*-*-*-*-iso8859-*",
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents:
diff changeset
45 (String) "*XmDialogShell*FontList: -*-helvetica-bold-r-*-*-*-120-*-*-*-*-iso8859-*",
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents:
diff changeset
46 (String) "*XmTextField*FontList: -*-courier-medium-r-*-*-*-120-*-*-*-*-iso8859-*",
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents:
diff changeset
47 (String) "*XmText*FontList: -*-courier-medium-r-*-*-*-120-*-*-*-*-iso8859-*",
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents:
diff changeset
48 (String) "*XmList*FontList: -*-courier-medium-r-*-*-*-120-*-*-*-*-iso8859-*",
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents:
diff changeset
49 (String) "*Dialog*Font: -*-helvetica-bold-r-*-*-*-140-*-*-*-*-iso8859-*",
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents:
diff changeset
50 (String) "*dialog*button1.accelerators:#override\
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents:
diff changeset
51 <KeyPress>Return: ArmAndActivate()\\n\
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents:
diff changeset
52 <KeyPress>KP_Enter: ArmAndActivate()\\n\
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents:
diff changeset
53 Ctrl<KeyPress>m: ArmAndActivate()\\n",
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents:
diff changeset
54 (String) "*XmTextField*translations: #override\\n\
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents:
diff changeset
55 !<Key>osfBackSpace: delete-previous-character()\\n\
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents:
diff changeset
56 !<Key>osfDelete: delete-previous-character()\\n\
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents:
diff changeset
57 !Ctrl<Key>h: delete-previous-character()\\n\
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents:
diff changeset
58 !Ctrl<Key>d: delete-next-character()\\n\
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents:
diff changeset
59 !Meta<Key>osfDelete: delete-previous-word()\\n\
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents:
diff changeset
60 !Meta<Key>osfBackSpace: delete-previous-word()\\n\
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents:
diff changeset
61 !Meta<Key>d: delete-next-word()\\n\
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents:
diff changeset
62 !Ctrl<Key>k: delete-to-end-of-line()\\n\
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents:
diff changeset
63 !Ctrl<Key>g: process-cancel()\\n\
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents:
diff changeset
64 !Ctrl<Key>b: backward-character()\\n\
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents:
diff changeset
65 !<Key>osfLeft: backward-character()\\n\
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents:
diff changeset
66 !Ctrl<Key>f: forward-character()\\n\
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents:
diff changeset
67 !<Key>osfRight: forward-character()\\n\
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents:
diff changeset
68 !Meta<Key>b: backward-word()\\n\
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents:
diff changeset
69 !Meta<Key>osfLeft: backward-word()\\n\
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents:
diff changeset
70 !Meta<Key>f: forward-word()\\n\
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents:
diff changeset
71 !Meta<Key>osfRight: forward-word()\\n\
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents:
diff changeset
72 !Ctrl<Key>e: end-of-line()\\n\
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents:
diff changeset
73 !Ctrl<Key>a: beginning-of-line()\\n\
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents:
diff changeset
74 !Ctrl<Key>w: cut-clipboard()\\n\
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents:
diff changeset
75 !Meta<Key>w: copy-clipboard()\\n\
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents:
diff changeset
76 <Btn2Up>: copy-primary()\\n",
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents:
diff changeset
77 (String) "*dialog*XmPushButton*translations:#override\\n\
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents:
diff changeset
78 <Btn1Down>: Arm()\\n\
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents:
diff changeset
79 <Btn1Down>,<Btn1Up>: Activate()\
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents:
diff changeset
80 Disarm()\\n\
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents:
diff changeset
81 <Btn1Down>(2+): MultiArm()\\n\
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents:
diff changeset
82 <Btn1Up>(2+): MultiActivate()\\n\
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents:
diff changeset
83 <Btn1Up>: Activate()\
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents:
diff changeset
84 Disarm()\\n\
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents:
diff changeset
85 <Key>osfSelect: ArmAndActivate()\\n\
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents:
diff changeset
86 <Key>osfActivate: ArmAndActivate()\\n\
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents:
diff changeset
87 <Key>osfHelp: Help()\\n\
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents:
diff changeset
88 ~Shift ~Meta ~Alt <Key>Return: ArmAndActivate()\\n\
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents:
diff changeset
89 <EnterWindow>: Enter()\\n\
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents:
diff changeset
90 <LeaveWindow>: Leave()\\n",
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents:
diff changeset
91 (String) "*ximStyles: XIMPreeditPosition|XIMStatusArea\
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents:
diff changeset
92 XIMPreeditPosition|XIMStatusNothing\
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents:
diff changeset
93 XIMPreeditPosition|XIMStatusNone\
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents:
diff changeset
94 XIMPreeditNothing|XIMStatusArea\
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents:
diff changeset
95 XIMPreeditNothing|XIMStatusNothing\
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents:
diff changeset
96 XIMPreeditNothing|XIMStatusNone\
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents:
diff changeset
97 XIMPreeditNone|XIMStatusArea\
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents:
diff changeset
98 XIMPreeditNone|XIMStatusNothing\
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents:
diff changeset
99 XIMPreeditNone|XIMStatusNone",
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents:
diff changeset
100 (String) "*EmacsFrame.ximForeground: black",
4be1180a9e89 Import from CVS: tag r20-1b2
cvs
parents:
diff changeset
101 (String) "*EmacsFrame.ximBackground: white",