Bugfix for reading #\*eof* character.
authorJan Nieuwenhuizen <janneke@gnu.org>
Tue, 3 Jan 2017 22:46:03 +0000 (23:46 +0100)
committerJan Nieuwenhuizen <janneke@gnu.org>
Wed, 4 Jan 2017 08:16:43 +0000 (09:16 +0100)
* module/mes/read-0.mes (read-character): Bugfix for #\*eof*.

module/mes/read-0.mes

index de08eb87a5b59a43eee51f3b3459a5791d84782c..a307d61907451988a6299a5916f06a6c5b491e73 100644 (file)
@@ -1,7 +1,7 @@
 ;;; -*-scheme-*-
 
 ;;; Mes --- Maxwell Equations of Software
 ;;; -*-scheme-*-
 
 ;;; Mes --- Maxwell Equations of Software
-;;; Copyright © 2016 Jan Nieuwenhuizen <janneke@gnu.org>
+;;; Copyright © 2016,2017 Jan Nieuwenhuizen <janneke@gnu.org>
 ;;;
 ;;; This file is part of Mes.
 ;;;
 ;;;
 ;;; This file is part of Mes.
 ;;;
                                (nruter . 13)
                                (ecaps . 32)))) => cdr)
               (#t (core:stderr (quote char-not-supported:)) (core:stderr n) (newline) (exit 1))))
                                (nruter . 13)
                                (ecaps . 32)))) => cdr)
               (#t (core:stderr (quote char-not-supported:)) (core:stderr n) (newline) (exit 1))))
-      (if (not (and (> p 96) (< p 123))) (integer->char (lookup-char (list->symbol (cons (integer->char c) n))))
+      (if (not (or (eq? p 42) (and (> p 96) (< p 123)))) (integer->char (lookup-char (list->symbol (cons (integer->char c) n))))
           (read-name (read-byte) (peek-byte) (cons (integer->char c) n))))
 
     ((lambda (c p)
        (cond ((and (> c 47) (< c 56) (> p 47) (< p 56))
               (integer->char (read-octal c p (- c 48))))
           (read-name (read-byte) (peek-byte) (cons (integer->char c) n))))
 
     ((lambda (c p)
        (cond ((and (> c 47) (< c 56) (> p 47) (< p 56))
               (integer->char (read-octal c p (- c 48))))
-             ((and (> c 96) (< c 123) (> p 96) (< p 123)) (read-name c p (list)))
+             ((and (or (= c 42) (and (> c 96) (< c 123)))
+                   (or (= p 42) (and (> p 96) (< p 123)))) (read-name c p (list)))
              (#t (integer->char c))))
      (read-byte) (peek-byte)))
 
              (#t (integer->char c))))
      (read-byte) (peek-byte)))