diff options
-rwxr-xr-x | doc/ref/api-data.texi | 3 | ||||
-rw-r--r-- | libguile/read.c | 3 | ||||
-rw-r--r-- | test-suite/tests/strings.test | 8 |
3 files changed, 12 insertions, 2 deletions
diff --git a/doc/ref/api-data.texi b/doc/ref/api-data.texi index 3fc34c28f..bf25c5981 100755 --- a/doc/ref/api-data.texi +++ b/doc/ref/api-data.texi @@ -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). diff --git a/libguile/read.c b/libguile/read.c index dedfed2fe..25aed5458 100644 --- a/libguile/read.c +++ b/libguile/read.c @@ -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; diff --git a/test-suite/tests/strings.test b/test-suite/tests/strings.test index 984178d72..e04c0260d 100644 --- a/test-suite/tests/strings.test +++ b/test-suite/tests/strings.test @@ -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? |