mes: Remove broken copy of simple-format.
authorJan Nieuwenhuizen <janneke@gnu.org>
Fri, 19 Jul 2019 13:36:36 +0000 (15:36 +0200)
committerJan Nieuwenhuizen <janneke@gnu.org>
Fri, 19 Jul 2019 13:36:36 +0000 (15:36 +0200)
* mes/module/mes/simple-format.mes: New file.
* mes/module/mes/guile.mes: Use it.
(with-output-to-string, simple-format): Remove broken copies.
* mes/module/mes/display.mes (with-output-to-string, simple-format,
format): Remove.

mes/module/mes/display.mes
mes/module/mes/guile.mes
mes/module/mes/simple-format.mes [new file with mode: 0644]
tests/display.test

index 6d3f59d89ea8455b7a8c753801db560e2a67f2ea..e3bbf58eedfc8ea0be50867937527a017aac377a 100644 (file)
@@ -1,7 +1,7 @@
 ;;; -*-scheme-*-
 
 ;;; GNU Mes --- Maxwell Equations of Software
-;;; Copyright © 2016,2017,2018 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
+;;; Copyright © 2016,2017,2018,2019 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
 ;;;
 ;;; This file is part of GNU Mes.
 ;;;
 
 (define (newline . rest)
   (apply display (cons "\n" rest)))
-
-(define (with-output-to-string thunk)
-  (define save-write-byte write-byte)
-  (let ((stdout '()))
-    (set! write-byte
-          (lambda (x . rest)
-            (let ((out? (or (null? rest) (eq? (car rest) (current-output-port)))))
-              (if (not out?) (apply save-write-byte (cons x rest))
-                  (begin
-                    (set! stdout (append stdout (list (integer->char x))))
-                    x)))))
-    (thunk)
-    (let ((r (apply string stdout)))
-      (set! write-byte save-write-byte)
-      r)))
-
-(define (simple-format destination format . rest)
-  (let ((port (if (boolean? destination) (current-output-port) destination))
-        (lst (string->list format)))
-    (define (simple-format lst args)
-      (if (pair? lst)
-          (let ((c (car lst)))
-            (if (not (eq? c #\~)) (begin (write-char (car lst) port)
-                                         (simple-format (cdr lst) args))
-                (let ((c (cadr lst)))
-                  (case c
-                    ((#\A) (display (car args) port))
-                    ((#\a) (display (car args) port))
-                    ((#\S) (write (car args) port))
-                    ((#\s) (write (car args) port))
-                    (else (display (car args) port)))
-                  (simple-format (cddr lst) (cdr args)))))))
-
-    (if destination (simple-format lst rest)
-        (with-output-to-string
-          (lambda () (simple-format lst rest))))))
-
-(define format simple-format)
index 1def63dc3497b8e95da235ffdb86bb84d5b5a016..00524d00365b6aeac304c95bb6c345e927263931 100644 (file)
@@ -1,7 +1,7 @@
 ;;; -*-scheme-*-
 
 ;;; GNU Mes --- Maxwell Equations of Software
-;;; Copyright © 2016,2017,2018 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
+;;; Copyright © 2016,2017,2018,2019 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
 ;;;
 ;;; This file is part of GNU Mes.
 ;;;
@@ -30,6 +30,7 @@
 (mes-use-module (mes posix))
 (mes-use-module (srfi srfi-16))
 (mes-use-module (mes display))
+(mes-use-module (mes simple-format))
 
 (define (drain-input port) (read-string))
 
               (if (string-null? dir) "."
                   dir))))))
 
-;; FIXME: c&p from display
-(define (with-output-to-string thunk)
-  (define save-write-byte write-byte)
-  (let ((stdout '()))
-    (set! write-byte
-          (lambda (x . rest)
-            (let ((out? (or (null? rest) (eq? (car rest) (current-output-port)))))
-              (if (not out?) (apply save-write-byte (cons x rest))
-                  (begin
-                    (set! stdout (append stdout (list (integer->char x))))
-                    x)))))
-    (thunk)
-    (let ((r (apply string stdout)))
-      (set! write-byte save-write-byte)
-      r)))
-
-;; FIXME: c&p from display
-(define (simple-format destination format . rest)
-  (let ((port (if (boolean? destination) (current-output-port) destination))
-        (lst (string->list format)))
-    (define (simple-format lst args)
-      (if (pair? lst)
-          (let ((c (car lst)))
-            (if (not (eq? c #\~)) (begin (write-char (car lst) port)
-                                         (simple-format (cdr lst) args))
-                (let ((c (cadr lst)))
-                  (case c
-                    ((#\a) (display (car args) port))
-                    ((#\s) (write (car args) port)))
-                  (simple-format (cddr lst) (cdr args)))))))
-
-    (if destination (simple-format lst rest)
-        (with-output-to-string
-          (lambda () (simple-format lst rest))))))
-
-(define format simple-format)
-
 (define (file-exists? o)
   (access? o R_OK))
diff --git a/mes/module/mes/simple-format.mes b/mes/module/mes/simple-format.mes
new file mode 100644 (file)
index 0000000..78794fb
--- /dev/null
@@ -0,0 +1,63 @@
+;;; -*-scheme-*-
+
+;;; GNU Mes --- Maxwell Equations of Software
+;;; Copyright © 2016,2017,2018,2019 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
+;;;
+;;; This file is part of GNU Mes.
+;;;
+;;; GNU Mes is free software; you can redistribute it and/or modify it
+;;; under the terms of the GNU General Public License as published by
+;;; the Free Software Foundation; either version 3 of the License, or (at
+;;; your option) any later version.
+;;;
+;;; GNU Mes is distributed in the hope that it will be useful, but
+;;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;;; GNU General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with GNU Mes.  If not, see <http://www.gnu.org/licenses/>.
+
+;;; Commentary:
+
+;;; Code:
+
+(mes-use-module (mes display))
+
+(define (with-output-to-string thunk)
+  (define save-write-byte write-byte)
+  (let ((stdout '()))
+    (set! write-byte
+          (lambda (x . rest)
+            (let ((out? (or (null? rest) (eq? (car rest) (current-output-port)))))
+              (if (not out?) (apply save-write-byte (cons x rest))
+                  (begin
+                    (set! stdout (append stdout (list (integer->char x))))
+                    x)))))
+    (thunk)
+    (let ((r (apply string stdout)))
+      (set! write-byte save-write-byte)
+      r)))
+
+(define (simple-format destination format . rest)
+  (let ((port (if (boolean? destination) (current-output-port) destination))
+        (lst (string->list format)))
+    (define (simple-format lst args)
+      (if (pair? lst)
+          (let ((c (car lst)))
+            (if (not (eq? c #\~)) (begin (write-char (car lst) port)
+                                         (simple-format (cdr lst) args))
+                (let ((c (cadr lst)))
+                  (case c
+                    ((#\A) (display (car args) port))
+                    ((#\a) (display (car args) port))
+                    ((#\S) (write (car args) port))
+                    ((#\s) (write (car args) port))
+                    (else (display (car args) port)))
+                  (simple-format (cddr lst) (cdr args)))))))
+
+    (if destination (simple-format lst rest)
+        (with-output-to-string
+          (lambda () (simple-format lst rest))))))
+
+(define format simple-format)
index 8ea2d1a64d0177c1e4da3e81100d673fc4afecc0..c920755ebf41fcd9a613faa213b8bcef16f60b60 100755 (executable)
@@ -27,6 +27,7 @@ exec ${MES-src/mes} --no-auto-compile -L ${0%/*} -L module -C module -e '(tests
   #:use-module (mes test))
 
 (mes-use-module (mes display))
+(mes-use-module (mes guile))
 (mes-use-module (mes test))
 
 (pass-if "first dummy" #t)