diff options
-rw-r--r-- | doc/ref/api-data.texi | 8 | ||||
-rw-r--r-- | libguile/read.c | 7 | ||||
-rw-r--r-- | test-suite/tests/reader.test | 9 |
3 files changed, 18 insertions, 6 deletions
diff --git a/doc/ref/api-data.texi b/doc/ref/api-data.texi index 23f3bfc73..3f787b1c9 100644 --- a/doc/ref/api-data.texi +++ b/doc/ref/api-data.texi @@ -1,7 +1,7 @@ @c -*-texinfo-*- @c This is part of the GNU Guile Reference Manual. -@c Copyright (C) 1996, 1997, 2000, 2001, 2002, 2003, 2004, 2006, 2007, -@c 2008, 2009, 2010, 2011, 2012, 2013, 2014 Free Software Foundation, Inc. +@c Copyright (C) 1996, 1997, 2000-2004, 2006-2014 +@c Free Software Foundation, Inc. @c See the file guile.texi for copying conditions. @node Simple Data Types @@ -3003,6 +3003,10 @@ Backspace character (ASCII 8). @item @nicode{\0} NUL character (ASCII 0). +@item @nicode{\(} +Open parenthesis. This is intended for use at the beginning of lines in +multiline strings to avoid confusing Emacs lisp modes. + @item @nicode{\} followed by newline (ASCII 10) Nothing. This way if @nicode{\} is the last character in a line, the string will continue with the first character from the next line, diff --git a/libguile/read.c b/libguile/read.c index c2d50afdf..ecf27ff6e 100644 --- a/libguile/read.c +++ b/libguile/read.c @@ -1,5 +1,5 @@ -/* Copyright (C) 1995, 1996, 1997, 1999, 2000, 2001, 2003, 2004, 2006, - * 2007, 2008, 2009, 2010, 2011, 2012, 2014 Free Software Foundation, Inc. +/* Copyright (C) 1995-1997, 1999-2001, 2003, 2004, 2006-2012, 2014 + * Free Software Foundation, Inc. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public License @@ -640,6 +640,9 @@ scm_read_string_like_syntax (int chr, SCM port, scm_t_read_opts *opts) goto str_eof; case '|': case '\\': + case '(': /* Accept "\(" for use at the beginning of lines + in multiline strings to avoid confusing emacs + lisp modes. */ break; case '\n': if (opts->hungry_eol_escapes_p) diff --git a/test-suite/tests/reader.test b/test-suite/tests/reader.test index d9cb1c883..5eb368d9b 100644 --- a/test-suite/tests/reader.test +++ b/test-suite/tests/reader.test @@ -1,7 +1,8 @@ ;;;; reader.test --- Reader test. -*- coding: iso-8859-1; mode: scheme -*- ;;;; -;;;; Copyright (C) 1999, 2001, 2002, 2003, 2007, 2008, 2009, 2010, 2011, -;;;; 2013, 2014 Free Software Foundation, Inc. +;;;; Copyright (C) 1999, 2001-2003, 2007-2011, 2013-2015 +;;;; Free Software Foundation, Inc. +;;;; ;;;; Jim Blandy <jimb@red-bean.com> ;;;; ;;;; This library is free software; you can redistribute it and/or @@ -77,6 +78,10 @@ "a|b" (read-string "\"a\\|b\"")) + (pass-if-equal "'(' in string literals" + "a(b" + (read-string "\"a\\(b\"")) + (pass-if-equal "#\\escape" '(a #\esc b) (read-string "(a #\\escape b)")) |