;;; Library functions
-
+(set-debug-cell-accesses! #t)
(use-modules (ice-9 regex)
(ice-9 safe)
(oop goops)
(define (chain-assoc-get x alist-list . default)
"Return ALIST entry for X. Return DEFAULT (optional, else #f) if not
found."
- (if (null? alist-list)
- (if (pair? default) (car default) #f)
- (let* ((handle (assoc x (car alist-list))))
- (if (pair? handle)
- (cdr handle)
- (chain-assoc-get x (cdr alist-list) default)))))
+
+ (define (helper x alist-list default)
+ (if (null? alist-list)
+ default
+ (let* ((handle (assoc x (car alist-list))))
+ (if (pair? handle)
+ (cdr handle)
+ (helper x (cdr alist-list) default)))))
+
+ (helper x alist-list
+ (if (pair? default) (car default) #f)))
(define (map-alist-vals func list)
"map FUNC over the vals of LIST, leaving the keys."
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; output
(use-modules (scm output-tex)
- (scm output-ps)
(scm output-sketch)
(scm output-sodipodi)
- (scm output-pdftex)
- )
+ (scm output-pdftex))
+
+
+(define output-tex-module
+ (make-module 1021 (list (resolve-interface '(scm new-output-tex)))))
+
+(define (new-tex-output-expression expr port)
+ (display (eval expr output-tex-module) port))
(define output-alist
`(
("tex" . ("TeX output. The default output form." ,tex-output-expression))
+ ("safetex" . ("TeX output. The default output form." ,new-tex-output-expression))
("scm" . ("Scheme dump: debug scheme stencil expressions" ,write))
("sketch" . ("Bare bones Sketch output." ,sketch-output-expression))
("sodipodi" . ("Bare bones Sodipodi output." ,sodipodi-output-expression))
(caddr d)
(scm-error "Could not find dumper for format ~s" format))))
-(define-public (get-output-module output-format)
- (resolve-module `(scm ,(string->symbol
- (string-append "output-" output-format)))))
-
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; other files.