annotate src/s/linux.h @ 5908:6174848f3e6c

Use parse_integer() in read_atom(); support bases with ratios like integers src/ChangeLog addition: 2015-05-08 Aidan Kehoe <kehoea@parhasard.net> * data.c (init_errors_once_early): Move the Qunsupported_type here from numbers.c, so it's available when the majority of our types are not supported. * general-slots.h: Add it here, too. * number.c: Remove the definition of Qunsupported_type from here. * lread.c (read_atom): Check if the first character could reflect a rational, if so, call parse_integer(), don't check the syntax of the other characters. This allows us to accept the non-ASCII digit characters too. If that worked partially, but not completely, and the next char is a slash, try to parse as a ratio. If that fails, try isfloat_string(), but only if the first character could plausibly be part of a float. Otherwise, treat as a symbol. * lread.c (read_rational): Rename from read_integer. Handle ratios with the same radix specification as was used for integers. * lread.c (read1): Rename read_integer in this function. Support the Common Lisp #NNNrMMM syntax for parsing a number MMM of arbitrary radix NNN. man/ChangeLog addition: 2015-05-08 Aidan Kehoe <kehoea@parhasard.net> * lispref/numbers.texi (Numbers): Describe the newly-supported arbitrary-base syntax for rationals (integers and ratios). Describe that ratios can take the same base specification as integers, something also new. tests/ChangeLog addition: 2015-05-08 Aidan Kehoe <kehoea@parhasard.net> * automated/lisp-reader-tests.el: Check the arbitrary-base integer reader syntax support, just added. Check the reader base support for ratios, just added. Check the non-ASCII-digit support in the reader, just added.
author Aidan Kehoe <kehoea@parhasard.net>
date Sat, 09 May 2015 00:40:57 +0100
parents 861f2601a38b
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
5494
861f2601a38b Sync s/ files with GNU 23.1.92, delete obsolete stuff, simplify other stuff
Ben Wing <ben@xemacs.org>
parents:
diff changeset
1 /* This file is the configuration file for the GNU/Linux operating system,
861f2601a38b Sync s/ files with GNU 23.1.92, delete obsolete stuff, simplify other stuff
Ben Wing <ben@xemacs.org>
parents:
diff changeset
2 prior to version 1.1.56.
861f2601a38b Sync s/ files with GNU 23.1.92, delete obsolete stuff, simplify other stuff
Ben Wing <ben@xemacs.org>
parents:
diff changeset
3 Copyright (C) 1985, 1986, 1992, 1994 Free Software Foundation, Inc.
861f2601a38b Sync s/ files with GNU 23.1.92, delete obsolete stuff, simplify other stuff
Ben Wing <ben@xemacs.org>
parents:
diff changeset
4 Copyright (C) 2010 Ben Wing.
861f2601a38b Sync s/ files with GNU 23.1.92, delete obsolete stuff, simplify other stuff
Ben Wing <ben@xemacs.org>
parents:
diff changeset
5
861f2601a38b Sync s/ files with GNU 23.1.92, delete obsolete stuff, simplify other stuff
Ben Wing <ben@xemacs.org>
parents:
diff changeset
6 This file is part of XEmacs.
861f2601a38b Sync s/ files with GNU 23.1.92, delete obsolete stuff, simplify other stuff
Ben Wing <ben@xemacs.org>
parents:
diff changeset
7
861f2601a38b Sync s/ files with GNU 23.1.92, delete obsolete stuff, simplify other stuff
Ben Wing <ben@xemacs.org>
parents:
diff changeset
8 XEmacs is free software; you can redistribute it and/or modify
861f2601a38b Sync s/ files with GNU 23.1.92, delete obsolete stuff, simplify other stuff
Ben Wing <ben@xemacs.org>
parents:
diff changeset
9 it under the terms of the GNU General Public License as published by
861f2601a38b Sync s/ files with GNU 23.1.92, delete obsolete stuff, simplify other stuff
Ben Wing <ben@xemacs.org>
parents:
diff changeset
10 the Free Software Foundation; either version 2, or (at your option)
861f2601a38b Sync s/ files with GNU 23.1.92, delete obsolete stuff, simplify other stuff
Ben Wing <ben@xemacs.org>
parents:
diff changeset
11 any later version.
861f2601a38b Sync s/ files with GNU 23.1.92, delete obsolete stuff, simplify other stuff
Ben Wing <ben@xemacs.org>
parents:
diff changeset
12
861f2601a38b Sync s/ files with GNU 23.1.92, delete obsolete stuff, simplify other stuff
Ben Wing <ben@xemacs.org>
parents:
diff changeset
13 XEmacs is distributed in the hope that it will be useful,
861f2601a38b Sync s/ files with GNU 23.1.92, delete obsolete stuff, simplify other stuff
Ben Wing <ben@xemacs.org>
parents:
diff changeset
14 but WITHOUT ANY WARRANTY; without even the implied warranty of
861f2601a38b Sync s/ files with GNU 23.1.92, delete obsolete stuff, simplify other stuff
Ben Wing <ben@xemacs.org>
parents:
diff changeset
15 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
861f2601a38b Sync s/ files with GNU 23.1.92, delete obsolete stuff, simplify other stuff
Ben Wing <ben@xemacs.org>
parents:
diff changeset
16 GNU General Public License for more details.
861f2601a38b Sync s/ files with GNU 23.1.92, delete obsolete stuff, simplify other stuff
Ben Wing <ben@xemacs.org>
parents:
diff changeset
17
861f2601a38b Sync s/ files with GNU 23.1.92, delete obsolete stuff, simplify other stuff
Ben Wing <ben@xemacs.org>
parents:
diff changeset
18 You should have received a copy of the GNU General Public License
861f2601a38b Sync s/ files with GNU 23.1.92, delete obsolete stuff, simplify other stuff
Ben Wing <ben@xemacs.org>
parents:
diff changeset
19 along with XEmacs; see the file COPYING. If not, write to
861f2601a38b Sync s/ files with GNU 23.1.92, delete obsolete stuff, simplify other stuff
Ben Wing <ben@xemacs.org>
parents:
diff changeset
20 the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
861f2601a38b Sync s/ files with GNU 23.1.92, delete obsolete stuff, simplify other stuff
Ben Wing <ben@xemacs.org>
parents:
diff changeset
21 Boston, MA 02111-1307, USA. */
861f2601a38b Sync s/ files with GNU 23.1.92, delete obsolete stuff, simplify other stuff
Ben Wing <ben@xemacs.org>
parents:
diff changeset
22
861f2601a38b Sync s/ files with GNU 23.1.92, delete obsolete stuff, simplify other stuff
Ben Wing <ben@xemacs.org>
parents:
diff changeset
23 /* Synched up with: FSF 19.31 (called, ahem ... lignux.h in FSF). */
861f2601a38b Sync s/ files with GNU 23.1.92, delete obsolete stuff, simplify other stuff
Ben Wing <ben@xemacs.org>
parents:
diff changeset
24
861f2601a38b Sync s/ files with GNU 23.1.92, delete obsolete stuff, simplify other stuff
Ben Wing <ben@xemacs.org>
parents:
diff changeset
25 /* This file was put together by Michael K. Johnson and Rik Faith. */
861f2601a38b Sync s/ files with GNU 23.1.92, delete obsolete stuff, simplify other stuff
Ben Wing <ben@xemacs.org>
parents:
diff changeset
26
861f2601a38b Sync s/ files with GNU 23.1.92, delete obsolete stuff, simplify other stuff
Ben Wing <ben@xemacs.org>
parents:
diff changeset
27 #define USG
861f2601a38b Sync s/ files with GNU 23.1.92, delete obsolete stuff, simplify other stuff
Ben Wing <ben@xemacs.org>
parents:
diff changeset
28 #define LINUX
861f2601a38b Sync s/ files with GNU 23.1.92, delete obsolete stuff, simplify other stuff
Ben Wing <ben@xemacs.org>
parents:
diff changeset
29
861f2601a38b Sync s/ files with GNU 23.1.92, delete obsolete stuff, simplify other stuff
Ben Wing <ben@xemacs.org>
parents:
diff changeset
30 /* SYSTEM_TYPE should indicate the kind of system you are using.
861f2601a38b Sync s/ files with GNU 23.1.92, delete obsolete stuff, simplify other stuff
Ben Wing <ben@xemacs.org>
parents:
diff changeset
31 It sets the Lisp variable system-type. */
861f2601a38b Sync s/ files with GNU 23.1.92, delete obsolete stuff, simplify other stuff
Ben Wing <ben@xemacs.org>
parents:
diff changeset
32
861f2601a38b Sync s/ files with GNU 23.1.92, delete obsolete stuff, simplify other stuff
Ben Wing <ben@xemacs.org>
parents:
diff changeset
33 #define SYSTEM_TYPE "linux" /* All the best software is free. */
861f2601a38b Sync s/ files with GNU 23.1.92, delete obsolete stuff, simplify other stuff
Ben Wing <ben@xemacs.org>
parents:
diff changeset
34
861f2601a38b Sync s/ files with GNU 23.1.92, delete obsolete stuff, simplify other stuff
Ben Wing <ben@xemacs.org>
parents:
diff changeset
35
861f2601a38b Sync s/ files with GNU 23.1.92, delete obsolete stuff, simplify other stuff
Ben Wing <ben@xemacs.org>
parents:
diff changeset
36
861f2601a38b Sync s/ files with GNU 23.1.92, delete obsolete stuff, simplify other stuff
Ben Wing <ben@xemacs.org>
parents:
diff changeset
37 /* Deleted GNU_LIBRARY_PENDING_OUTPUT_COUNT -- unused in XEmacs */
861f2601a38b Sync s/ files with GNU 23.1.92, delete obsolete stuff, simplify other stuff
Ben Wing <ben@xemacs.org>
parents:
diff changeset
38
861f2601a38b Sync s/ files with GNU 23.1.92, delete obsolete stuff, simplify other stuff
Ben Wing <ben@xemacs.org>
parents:
diff changeset
39 /* This is needed for sysdep.c */
861f2601a38b Sync s/ files with GNU 23.1.92, delete obsolete stuff, simplify other stuff
Ben Wing <ben@xemacs.org>
parents:
diff changeset
40
861f2601a38b Sync s/ files with GNU 23.1.92, delete obsolete stuff, simplify other stuff
Ben Wing <ben@xemacs.org>
parents:
diff changeset
41 #define HAVE_SYS_SIGLIST
861f2601a38b Sync s/ files with GNU 23.1.92, delete obsolete stuff, simplify other stuff
Ben Wing <ben@xemacs.org>
parents:
diff changeset
42
861f2601a38b Sync s/ files with GNU 23.1.92, delete obsolete stuff, simplify other stuff
Ben Wing <ben@xemacs.org>
parents:
diff changeset
43 /* #define POSIX -- not used in XEmacs */
861f2601a38b Sync s/ files with GNU 23.1.92, delete obsolete stuff, simplify other stuff
Ben Wing <ben@xemacs.org>
parents:
diff changeset
44
861f2601a38b Sync s/ files with GNU 23.1.92, delete obsolete stuff, simplify other stuff
Ben Wing <ben@xemacs.org>
parents:
diff changeset
45 /* Deleted TERM stuff -- probably hugely obsolete */
861f2601a38b Sync s/ files with GNU 23.1.92, delete obsolete stuff, simplify other stuff
Ben Wing <ben@xemacs.org>
parents:
diff changeset
46
861f2601a38b Sync s/ files with GNU 23.1.92, delete obsolete stuff, simplify other stuff
Ben Wing <ben@xemacs.org>
parents:
diff changeset
47 #define UNEXEC "unexelf.o"
861f2601a38b Sync s/ files with GNU 23.1.92, delete obsolete stuff, simplify other stuff
Ben Wing <ben@xemacs.org>
parents:
diff changeset
48 #define UNEXEC_USE_MAP_PRIVATE
861f2601a38b Sync s/ files with GNU 23.1.92, delete obsolete stuff, simplify other stuff
Ben Wing <ben@xemacs.org>
parents:
diff changeset
49
861f2601a38b Sync s/ files with GNU 23.1.92, delete obsolete stuff, simplify other stuff
Ben Wing <ben@xemacs.org>
parents:
diff changeset
50 /* mrb - Ordinary link is simple and effective */
861f2601a38b Sync s/ files with GNU 23.1.92, delete obsolete stuff, simplify other stuff
Ben Wing <ben@xemacs.org>
parents:
diff changeset
51 /* slb - Not any more ... :-( */
861f2601a38b Sync s/ files with GNU 23.1.92, delete obsolete stuff, simplify other stuff
Ben Wing <ben@xemacs.org>
parents:
diff changeset
52 /* jwj - slb's comment does not seem relevant to current Linuxes */
861f2601a38b Sync s/ files with GNU 23.1.92, delete obsolete stuff, simplify other stuff
Ben Wing <ben@xemacs.org>
parents:
diff changeset
53 #define ORDINARY_LINK
861f2601a38b Sync s/ files with GNU 23.1.92, delete obsolete stuff, simplify other stuff
Ben Wing <ben@xemacs.org>
parents:
diff changeset
54
861f2601a38b Sync s/ files with GNU 23.1.92, delete obsolete stuff, simplify other stuff
Ben Wing <ben@xemacs.org>
parents:
diff changeset
55 #define A_TEXT_OFFSET(hdr) (N_MAGIC(hdr) == QMAGIC ? sizeof (struct exec) : 0)
861f2601a38b Sync s/ files with GNU 23.1.92, delete obsolete stuff, simplify other stuff
Ben Wing <ben@xemacs.org>
parents:
diff changeset
56 #define A_TEXT_SEEK(hdr) (N_TXTOFF(hdr) + A_TEXT_OFFSET(hdr))
861f2601a38b Sync s/ files with GNU 23.1.92, delete obsolete stuff, simplify other stuff
Ben Wing <ben@xemacs.org>
parents:
diff changeset
57 #define ADJUST_EXEC_HEADER \
861f2601a38b Sync s/ files with GNU 23.1.92, delete obsolete stuff, simplify other stuff
Ben Wing <ben@xemacs.org>
parents:
diff changeset
58 unexec_text_start = N_TXTADDR(ohdr) + A_TEXT_OFFSET(ohdr)
861f2601a38b Sync s/ files with GNU 23.1.92, delete obsolete stuff, simplify other stuff
Ben Wing <ben@xemacs.org>
parents:
diff changeset
59
861f2601a38b Sync s/ files with GNU 23.1.92, delete obsolete stuff, simplify other stuff
Ben Wing <ben@xemacs.org>
parents:
diff changeset
60 /* HAVE_XRMSETDATABASE deleted */
861f2601a38b Sync s/ files with GNU 23.1.92, delete obsolete stuff, simplify other stuff
Ben Wing <ben@xemacs.org>
parents:
diff changeset
61
861f2601a38b Sync s/ files with GNU 23.1.92, delete obsolete stuff, simplify other stuff
Ben Wing <ben@xemacs.org>
parents:
diff changeset
62 /* The regex.o routines are a part of the GNU C-library used with Linux. */
861f2601a38b Sync s/ files with GNU 23.1.92, delete obsolete stuff, simplify other stuff
Ben Wing <ben@xemacs.org>
parents:
diff changeset
63 /* However, sometimes they disagree with the src/regex.h that comes with Emacs,
861f2601a38b Sync s/ files with GNU 23.1.92, delete obsolete stuff, simplify other stuff
Ben Wing <ben@xemacs.org>
parents:
diff changeset
64 and that can make trouble in etags.c because it gets the regex.h from Emacs
861f2601a38b Sync s/ files with GNU 23.1.92, delete obsolete stuff, simplify other stuff
Ben Wing <ben@xemacs.org>
parents:
diff changeset
65 and the function definitions in libc. So turn this off. */
861f2601a38b Sync s/ files with GNU 23.1.92, delete obsolete stuff, simplify other stuff
Ben Wing <ben@xemacs.org>
parents:
diff changeset
66 /* XEmacs: in any case, Mule uses different regex routines. */
861f2601a38b Sync s/ files with GNU 23.1.92, delete obsolete stuff, simplify other stuff
Ben Wing <ben@xemacs.org>
parents:
diff changeset
67 /* #define REGEXP_IN_LIBC */
861f2601a38b Sync s/ files with GNU 23.1.92, delete obsolete stuff, simplify other stuff
Ben Wing <ben@xemacs.org>
parents:
diff changeset
68
861f2601a38b Sync s/ files with GNU 23.1.92, delete obsolete stuff, simplify other stuff
Ben Wing <ben@xemacs.org>
parents:
diff changeset
69 /* XEmacs change: the standard linux libc includes regex routines in
861f2601a38b Sync s/ files with GNU 23.1.92, delete obsolete stuff, simplify other stuff
Ben Wing <ben@xemacs.org>
parents:
diff changeset
70 it. We have to use our own and have to avoid name conflicts. */
861f2601a38b Sync s/ files with GNU 23.1.92, delete obsolete stuff, simplify other stuff
Ben Wing <ben@xemacs.org>
parents:
diff changeset
71
861f2601a38b Sync s/ files with GNU 23.1.92, delete obsolete stuff, simplify other stuff
Ben Wing <ben@xemacs.org>
parents:
diff changeset
72 #if 0 /* Probably not necessary any more */
861f2601a38b Sync s/ files with GNU 23.1.92, delete obsolete stuff, simplify other stuff
Ben Wing <ben@xemacs.org>
parents:
diff changeset
73 #define re_compile_pattern sys_re_compile_pattern
861f2601a38b Sync s/ files with GNU 23.1.92, delete obsolete stuff, simplify other stuff
Ben Wing <ben@xemacs.org>
parents:
diff changeset
74 #define re_search sys_re_search
861f2601a38b Sync s/ files with GNU 23.1.92, delete obsolete stuff, simplify other stuff
Ben Wing <ben@xemacs.org>
parents:
diff changeset
75 #define re_search_2 sys_re_search_2
861f2601a38b Sync s/ files with GNU 23.1.92, delete obsolete stuff, simplify other stuff
Ben Wing <ben@xemacs.org>
parents:
diff changeset
76 #define re_match_2 sys_re_match_2
861f2601a38b Sync s/ files with GNU 23.1.92, delete obsolete stuff, simplify other stuff
Ben Wing <ben@xemacs.org>
parents:
diff changeset
77 #define re_max_failures sys_re_max_failures
861f2601a38b Sync s/ files with GNU 23.1.92, delete obsolete stuff, simplify other stuff
Ben Wing <ben@xemacs.org>
parents:
diff changeset
78 #define re_set_syntax sys_re_set_syntax
861f2601a38b Sync s/ files with GNU 23.1.92, delete obsolete stuff, simplify other stuff
Ben Wing <ben@xemacs.org>
parents:
diff changeset
79 #define re_set_registers sys_re_set_registers
861f2601a38b Sync s/ files with GNU 23.1.92, delete obsolete stuff, simplify other stuff
Ben Wing <ben@xemacs.org>
parents:
diff changeset
80 #define re_compile_fastmap sys_re_compile_fastmap
861f2601a38b Sync s/ files with GNU 23.1.92, delete obsolete stuff, simplify other stuff
Ben Wing <ben@xemacs.org>
parents:
diff changeset
81 #define re_match sys_re_match
861f2601a38b Sync s/ files with GNU 23.1.92, delete obsolete stuff, simplify other stuff
Ben Wing <ben@xemacs.org>
parents:
diff changeset
82 #define regcomp sys_regcomp
861f2601a38b Sync s/ files with GNU 23.1.92, delete obsolete stuff, simplify other stuff
Ben Wing <ben@xemacs.org>
parents:
diff changeset
83 #define regexec sys_regexec
861f2601a38b Sync s/ files with GNU 23.1.92, delete obsolete stuff, simplify other stuff
Ben Wing <ben@xemacs.org>
parents:
diff changeset
84 #define regerror sys_regerror
861f2601a38b Sync s/ files with GNU 23.1.92, delete obsolete stuff, simplify other stuff
Ben Wing <ben@xemacs.org>
parents:
diff changeset
85 #define regfree sys_regfree
861f2601a38b Sync s/ files with GNU 23.1.92, delete obsolete stuff, simplify other stuff
Ben Wing <ben@xemacs.org>
parents:
diff changeset
86 #endif /* 0 */
861f2601a38b Sync s/ files with GNU 23.1.92, delete obsolete stuff, simplify other stuff
Ben Wing <ben@xemacs.org>
parents:
diff changeset
87
861f2601a38b Sync s/ files with GNU 23.1.92, delete obsolete stuff, simplify other stuff
Ben Wing <ben@xemacs.org>
parents:
diff changeset
88 /* The in-built malloc does not work on PPC64 or Alpha, so use the system
861f2601a38b Sync s/ files with GNU 23.1.92, delete obsolete stuff, simplify other stuff
Ben Wing <ben@xemacs.org>
parents:
diff changeset
89 malloc for now. */
861f2601a38b Sync s/ files with GNU 23.1.92, delete obsolete stuff, simplify other stuff
Ben Wing <ben@xemacs.org>
parents:
diff changeset
90 #if defined(__powerpc64__) || defined(__alpha__) || defined(__ia64__)
861f2601a38b Sync s/ files with GNU 23.1.92, delete obsolete stuff, simplify other stuff
Ben Wing <ben@xemacs.org>
parents:
diff changeset
91 #define SYSTEM_MALLOC
861f2601a38b Sync s/ files with GNU 23.1.92, delete obsolete stuff, simplify other stuff
Ben Wing <ben@xemacs.org>
parents:
diff changeset
92 #endif