summaryrefslogtreecommitdiff
path: root/module/texinfo
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2020-01-29 14:56:17 +0100
committerLudovic Courtès <ludo@gnu.org>2020-01-29 15:19:37 +0100
commitc4b2bd378136ed0177a88642220ea85eef034ced (patch)
tree454011b40781a2dbb16a6c60c47ffd7e796d93b5 /module/texinfo
parentf2781c9604dd1d7f4bf75e61848c4e9dc2221296 (diff)
downloadguile-c4b2bd378136ed0177a88642220ea85eef034ced.tar.gz
texinfo: Add '*line-width*' fluid to control line wrapping.
* module/texinfo/plain-text.scm (*line-width*): New variable. (wrap*): Honor it. * doc/ref/texinfo.texi (texinfo plain-text): Document it. * test-suite/tests/texinfo.plain-text.test: New file. * test-suite/Makefile.am (SCM_TESTS): Add it.
Diffstat (limited to 'module/texinfo')
-rw-r--r--module/texinfo/plain-text.scm11
1 files changed, 7 insertions, 4 deletions
diff --git a/module/texinfo/plain-text.scm b/module/texinfo/plain-text.scm
index 809cdb7b3..6b7885ada 100644
--- a/module/texinfo/plain-text.scm
+++ b/module/texinfo/plain-text.scm
@@ -1,6 +1,6 @@
;;;; (texinfo plain-text) -- rendering stexinfo as plain text
;;;;
-;;;; Copyright (C) 2009, 2010, 2011, 2013 Free Software Foundation, Inc.
+;;;; Copyright (C) 2009, 2010, 2011, 2013, 2020 Free Software Foundation, Inc.
;;;; Copyright (C) 2003,2004,2009 Andy Wingo <wingo at pobox dot com>
;;;;
;;;; This library is free software; you can redistribute it and/or
@@ -32,7 +32,8 @@
#:use-module (srfi srfi-1)
#:use-module (srfi srfi-13)
#:use-module (ice-9 match)
- #:export (stexi->plain-text))
+ #:export (stexi->plain-text
+ *line-width*))
;; The return value is a string.
(define (arg-ref key %-args)
@@ -52,6 +53,7 @@
(define *indent* (make-fluid ""))
(define *itemizer* (make-fluid (make-ticker "* ")))
+(define *line-width* (make-fluid 72))
(define-macro (with-indent n . body)
`(with-fluids ((*indent* (string-append (fluid-ref *indent*)
@@ -69,9 +71,10 @@
,@body))
(define (wrap* . strings)
- (let ((indent (fluid-ref *indent*)))
+ (let ((indent (fluid-ref *indent*))
+ (width (fluid-ref *line-width*)))
(fill-string (string-concatenate strings)
- #:line-width 72 #:initial-indent indent
+ #:line-width width #:initial-indent indent
#:subsequent-indent indent)))
(define (wrap . strings)
(string-append (apply wrap* strings) "\n\n"))