-(define (dir-listing dir-name)
- (define (dir-helper dir lst)
- (let ((e (readdir dir)))
- (if (eof-object? e) lst (dir-helper dir (cons e lst)))))
- (reverse (dir-helper (opendir dir-name) '())))
-
-(define (dir-re dir re)
- (filter (lambda (x) (string-match re x)) (dir-listing dir)))
-
-(define BOUNDING-BOX-RE
- "^%%BoundingBox: (-?[0-9]+) (-?[0-9]+) (-?[0-9]+) (-?[0-9]+)")
-
-(define (get-bbox file-name)
- (let* ((bbox (string-append file-name ".bbox"))
- ;; -sOutputFile does not work with bbox?
- (cmd (format #t "gs\
- -sDEVICE=bbox\
- -q\
- -dNOPAUSE\
- ~S\
- -c showpage\
- -c quit 2>~S"
- file-name bbox))
- (status (system cmd))
- (s (gulp-port (open-file bbox "r") 10240))
- (m (string-match BOUNDING_BOX_RE s)))
- (display m)
- (newline)
- (if m
- (list->vector
- (map (lambda (x) (string->number (car x))) (vector->list m)))
- #f)))
-
+(define-public (gulp-file file-name . max-size)
+ (ly:gulp-file file-name (if (pair? max-size) (car max-size))))