http://awwx.ws/skipwhite1.arc:
; place in own library to abide by the LGPL
;
; skip-whitespace is copied from
; http://download.plt-scheme.org/doc/352/html/mzscheme/mzscheme-Z-H-11.html#node_sec_11.2.8
; which has the following licence:
;
; Copyright ©1995-2006 Matthew Flatt
;
; Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Library General Public License, Version 2 published by the Free Software Foundation.
;
; [ ] in source changed to ( ) to avoid conflict with brackets.scm
(scheme:define (skip-whitespace port)
;; Skips whitespace characters, sensitive to the current
;; readtable's definition of whitespace
(let ((ch (peek-char port)))
(unless (eof-object? ch)
;; Consult current readtable:
(let-values (((like-ch/sym proc dispatch-proc)
(readtable-mapping (current-readtable) ch)))
;; If like-ch/sym is whitespace, then ch is whitespace
(when (and (char? like-ch/sym)
(char-whitespace? like-ch/sym))
(read-char port)
(skip-whitespace port))))))
This hack depends on arc3.1, defarc0, defarc-ac0, extend0, and scheme0.