1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-06-10 14:00:21 +02:00

Add R6RS backspace string escape

R6RS suggests that '\b' should be a string escape for the backspace
character.

* libguile/read.c (scm_read_string): parse backspace escape

* test-suite/tests/strings.test (R6RS backslash escapes): new test
  (Guile extensions backslash escapes): remove R6RS escapes from test.

* doc/ref/api-data.texi (Strings): document new string escape
This commit is contained in:
Michael Gran 2010-01-10 15:41:37 -08:00
parent 15b6a6b284
commit 67a4a16d8e
3 changed files with 12 additions and 2 deletions

View file

@ -2649,6 +2649,9 @@ Tab character (ASCII 9).
@item @nicode{\v}
Vertical tab character (ASCII 11).
@item @nicode{\b}
Backspace character (ASCII 8).
@item @nicode{\xHH}
Character code given by two hexadecimal digits. For example
@nicode{\x7f} for an ASCII DEL (127).

View file

@ -477,6 +477,9 @@ scm_read_string (int chr, SCM port)
case 'v':
c = '\v';
break;
case 'b':
c = '\010';
break;
case 'x':
{
scm_t_wchar a, b;

View file

@ -221,9 +221,13 @@
(pass-if "R5RS backslash escapes"
(string=? "\"\\" (string #\" #\\)))
(pass-if "R6RS backslash escapes"
(string=? "\a\b\t\n\v\f\r"
(string #\alarm #\backspace #\tab #\newline #\vtab
#\page #\return)))
(pass-if "Guile extensions backslash escapes"
(string=? "\0\a\f\n\r\t\v"
(apply string (map integer->char '(0 7 12 10 13 9 11))))))
(string=? "\0" (string #\nul))))
;;
;; string?