Fix newline preservation in @example with lines beginning with @
authorAndy Wingo <wingo@pobox.com>
Thu, 27 Feb 2014 16:16:29 +0000 (17:16 +0100)
committerAndy Wingo <wingo@pobox.com>
Mon, 17 Mar 2014 20:49:16 +0000 (21:49 +0100)
* module/texinfo.scm (read-char-data): Preserve newlines in @example and
  similar environments in the case when the next line starts with an @.

* test-suite/tests/texinfo.test ("test-texinfo->stexinfo"): Add a test.

module/texinfo.scm
test-suite/tests/texinfo.test

index 91bb46d..02fec16 100644 (file)
@@ -1,6 +1,6 @@
 ;;;; (texinfo) -- parsing of texinfo into SXML
 ;;;;
-;;;;   Copyright (C) 2009, 2010, 2011, 2012, 2013  Free Software Foundation, Inc.
+;;;;   Copyright (C) 2009, 2010, 2011, 2012, 2013, 2014  Free Software Foundation, Inc.
 ;;;;    Copyright (C) 2004, 2009 Andy Wingo <wingo at pobox dot com>
 ;;;;    Copyright (C) 2001,2002 Oleg Kiselyov <oleg at pobox dot com>
 ;;;;
@@ -765,7 +765,9 @@ Examples:
                   (let* ((token (read-command-token port))
                          (end? (eq? (token-kind token) 'END)))
                     (values
-                     (handle str-handler fragment (if end? "" " ") seed)
+                     (handle str-handler fragment
+                             (if end? "" (if preserve-ws? "\n" " "))
+                             seed)
                      token)))
                  ((and (not preserve-ws?) (eq? c #\newline))
                   ;; paragraph-separator ::= #\newline #\newline+
index 2cb4a71..9c6722f 100644 (file)
@@ -1,6 +1,6 @@
 ;;;; texinfo.test                 -*- scheme -*-
 ;;;;
-;;;; Copyright (C) 2010, 2011, 2012, 2013  Free Software Foundation, Inc.
+;;;; Copyright (C) 2010, 2011, 2012, 2013, 2014  Free Software Foundation, Inc.
 ;;;; Copyright (C) 2001,2002 Oleg Kiselyov <oleg at pobox dot com>
 ;;;;
 ;;;; This library is free software; you can redistribute it and/or
 
   (test-body "@example\n foo asdf  asd  sadf asd  \n@end example\n"
              '((example " foo asdf  asd  sadf asd  ")))
+  (test-body "@example\n@{\n@}\n@end example\n"
+             '((example "{\n}")))
   (test-body (join-lines
               "@quotation"
               "@example"