summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndy Wingo <wingo@pobox.com>2010-10-01 10:20:54 +0200
committerAndy Wingo <wingo@pobox.com>2010-10-01 10:20:54 +0200
commit24259edb8b1d70dfa968d9182e835013ec1cdb9f (patch)
tree0535656609c447eeb759f2e19d604717c950c128
parentedca9d6ef4024ba85701d55e461c16da0a0c5a76 (diff)
downloadguile-24259edb8b1d70dfa968d9182e835013ec1cdb9f.tar.gz
remove elisp-strings and elisp-vectors read options
* libguile/private-options.h (SCM_ELISP_VECTORS_P, SCM_ESCAPED_PARENS_P): * libguile/read.c (scm_read_opts): Remove unused elisp-vectors option, and the elisp-strings option (which allowed \( and \) escapes in strings). (scm_read_string): Remove the elisp-strings case. * doc/ref/api-options.texi (Reader options): Update, and update wording of the case-insensitive bit.
-rw-r--r--doc/ref/api-options.texi22
-rw-r--r--libguile/private-options.h8
-rw-r--r--libguile/read.c9
3 files changed, 16 insertions, 23 deletions
diff --git a/doc/ref/api-options.texi b/doc/ref/api-options.texi
index 0c5edd4eb..3c25b196d 100644
--- a/doc/ref/api-options.texi
+++ b/doc/ref/api-options.texi
@@ -495,18 +495,22 @@ Here is the list of reader options generated by typing
values.
@smalllisp
-keywords #f Style of keyword recognition: #f, 'prefix or 'postfix
-case-insensitive no Convert symbols to lower case.
-positions yes Record positions of source code expressions.
-copy no Copy source code expressions.
-r6rs-hex-escapes no Use R6RS-style string hex escapes
+copy no Copy source code expressions.
+positions yes Record positions of source code expressions.
+case-insensitive no Convert symbols to lower case.
+keywords #f Style of keyword recognition: #f, 'prefix or 'postfix.
+r6rs-hex-escapes no Use R6RS variable-length character and string hex escapes.
+square-brackets yes Treat `[' and `]' as parentheses, for R6RS compatibility.
@end smalllisp
-Notice that while Standard Scheme is case insensitive, to ease
-translation of other Lisp dialects, notably Emacs Lisp, into Guile,
-Guile is case-sensitive by default.
+Historically, many Scheme implementations have been case-insensitive,
+treating @code{foo} and @code{FOO} as the same symbol. Guile has always
+defaulted to case-sensitivity, as allowed since the R4RS and codified in
+the R6RS.
-To make Guile case insensitive, you can type
+Guile also has a reader option to fold all symbols to their lower
+case. To enable this option, perhaps for compatibility with older Scheme
+code, you can enter
@lisp
(read-enable 'case-insensitive)
diff --git a/libguile/private-options.h b/libguile/private-options.h
index 3357b27bc..543c4dad0 100644
--- a/libguile/private-options.h
+++ b/libguile/private-options.h
@@ -61,11 +61,9 @@ SCM_API scm_t_option scm_read_opts[];
#define SCM_RECORD_POSITIONS_P scm_read_opts[1].val
#define SCM_CASE_INSENSITIVE_P scm_read_opts[2].val
#define SCM_KEYWORD_STYLE scm_read_opts[3].val
-#define SCM_ELISP_VECTORS_P scm_read_opts[4].val
-#define SCM_ESCAPED_PARENS_P scm_read_opts[5].val
-#define SCM_R6RS_ESCAPES_P scm_read_opts[6].val
-#define SCM_SQUARE_BRACKETS_P scm_read_opts[7].val
+#define SCM_R6RS_ESCAPES_P scm_read_opts[4].val
+#define SCM_SQUARE_BRACKETS_P scm_read_opts[5].val
-#define SCM_N_READ_OPTIONS 8
+#define SCM_N_READ_OPTIONS 6
#endif /* PRIVATE_OPTIONS */
diff --git a/libguile/read.c b/libguile/read.c
index 49df1e379..118b9ccfa 100644
--- a/libguile/read.c
+++ b/libguile/read.c
@@ -71,10 +71,6 @@ scm_t_option scm_read_opts[] = {
"Convert symbols to lower case."},
{ SCM_OPTION_SCM, "keywords", (unsigned long) SCM_BOOL_F,
"Style of keyword recognition: #f, 'prefix or 'postfix."},
- { SCM_OPTION_BOOLEAN, "elisp-vectors", 0,
- "Support Elisp vector syntax, namely `[...]'."},
- { SCM_OPTION_BOOLEAN, "elisp-strings", 0,
- "Support `\\(' and `\\)' in strings."},
{ SCM_OPTION_BOOLEAN, "r6rs-hex-escapes", 0,
"Use R6RS variable-length character and string hex escapes."},
{ SCM_OPTION_BOOLEAN, "square-brackets", 1,
@@ -515,11 +511,6 @@ scm_read_string (int chr, SCM port)
case '"':
case '\\':
break;
- case '(':
- case ')':
- if (SCM_ESCAPED_PARENS_P)
- break;
- goto bad_escaped;
case '\n':
continue;
case '0':