Tue Sep 16 22:09:50 1997 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
* boot-9.scm (keyword->symbol, display-usage-report): Changed
- length --> string-length.
+ length --> string-length. (Thanks to Aleksandar Bakic.)
+ (separate-fields-discarding-char, separate-fields-after-char,
+ separate-fields-before-char): Bugfix from Maciej Stachowiak
+ <mstachow@mit.edu>. Thanks!
Mon Sep 15 23:39:54 1997 Mikael Djurfeldt <mdj@mdj.nada.kth.se>
(str str))
(cond
((string-rindex str ch)
- => (lambda (pos) (loop (cons (make-shared-substring str (+ 1 w)) fields)
- (make-shared-substring str 0 w))))
+ => (lambda (w) (loop (cons (make-shared-substring str (+ 1 w)) fields)
+ (make-shared-substring str 0 w))))
(else (ret (cons str fields))))))
(define-public (separate-fields-after-char ch str ret)
- (let loop ((fields '())
- (str str))
- (cond
- ((string-rindex str ch)
- => (lambda (pos) (loop (cons (make-shared-substring str (+ 1 w)) fields)
- (make-shared-substring str 0 (+ 1 w)))))
- (else (ret (cons str fields))))))
+ (reverse
+ (let loop ((fields '())
+ (str str))
+ (cond
+ ((string-index str ch)
+ => (lambda (w) (loop (cons (make-shared-substring str 0 (+ 1 w)) fields)
+ (make-shared-substring str (+ 1 w)))))
+ (else (ret (cons str fields)))))))
(define-public (separate-fields-before-char ch str ret)
(let loop ((fields '())
(str str))
(cond
((string-rindex str ch)
- => (lambda (pos) (loop (cons (make-shared-substring str w) fields)
+ => (lambda (w) (loop (cons (make-shared-substring str w) fields)
(make-shared-substring str 0 w))))
(else (ret (cons str fields))))))