diff options
author | Sergey Poznyakoff <gray@gnu.org.ua> | 2011-07-26 20:36:18 +0300 |
---|---|---|
committer | Sergey Poznyakoff <gray@gnu.org.ua> | 2011-07-26 20:39:48 +0300 |
commit | 16b8109acd8d04a5ef294f3d07747b7bc88d38bf (patch) | |
tree | f70d70f0fb63ad233cf0f1842190804dea34fcea /scheme/idest/format/framelist.scm | |
parent | 39e1ad85f7fb63156621112a28a876265d9fa1f0 (diff) | |
download | idest-16b8109acd8d04a5ef294f3d07747b7bc88d38bf.tar.gz idest-16b8109acd8d04a5ef294f3d07747b7bc88d38bf.tar.bz2 |
Improve batch/format interface.
* scheme/batch.scm: Rewrite using idest-load-module
* scheme/format.scm: Likewise.
* scheme/idest/batch/setlyrics.scm: New file.
* scheme/idest/format/framelist.scm: Define idest-init
* scheme/idest/format/help.scm: Likewise.
* scheme/idest/format/lyrics.scm: Likewise.
* scheme/idest/load-module.scm: New file.
Diffstat (limited to 'scheme/idest/format/framelist.scm')
-rw-r--r-- | scheme/idest/format/framelist.scm | 149 |
1 files changed, 74 insertions, 75 deletions
diff --git a/scheme/idest/format/framelist.scm b/scheme/idest/format/framelist.scm index 693742e..daf2efd 100644 --- a/scheme/idest/format/framelist.scm +++ b/scheme/idest/format/framelist.scm @@ -23,78 +23,77 @@ (define-public idest-main #f) -(let* ((cmd (command-line)) - (progname (car cmd)) - (delim #\newline) - (addinfo #f) - (frame-list #f) ; FIXME: Need a way to access filter_list from idest - (grammar `((full (single-char #\F)) - (qualified (single-char #\Q)) - (frames (single-char #\f) (value #t)) - (single-line (single-char #\l)) - (help (single-char #\h))))) - - (catch 'misc-error - (lambda () - (for-each - (lambda (x) - (case (car x) - ((full) - (set! addinfo - (lambda (attr-list) - (for-each - (lambda (attr) - (if (not (eq? (car attr) 'text)) - (format #t " ~A=\"~A\"" - (car attr) (cdr attr)))) - attr-list)))) - ((qualified) - (set! addinfo - (lambda (attr-list) - (for-each - (lambda (attr) - (if (not (or (eq? (car attr) 'text) - (eq? (car attr) 'descr))) - (format #t ":~A" (cdr attr)))) - attr-list)))) - ((single-line) - (set! delim #\,)) - ((frames) - (set! frame-list (string-split (cdr x) #\,))) - ((help) - (format #t "usage: idest --format=~A [OPTIONS] FILE...\n" - progname) - (format #t "displays the frame list\n") - (format #t "OPTIONS are:\n") - (format #t " -F, --full display all qualifiers\n") - (format #t " -f, --frames FLIST display only frames from FLIST\n") - (format #t " -Q, --qualified display frames in qualified form\n") - (format #t " -l, --single-line fit output on single-line\n") - (format #t " -h, --help show this help summary\n") - (exit 0)) - (else - (set-program-arguments (cons progname (cdr x)))))) - (getopt-long cmd grammar))) - (lambda (key . args) - (with-output-to-port - (current-error-port) - (lambda () - (format #t "~A: " progname) - (apply format #t (list-ref args 1) (list-ref args 2)) - (newline) - (exit 1))))) - - (set! idest-main - (lambda (name frames) - (do ((tail frames (cdr tail))) - ((null? tail)) - (let ((elt (car tail))) - (cond - ((or (not frame-list) (member (car elt) frame-list)) - (display (car elt)) - (if addinfo (addinfo (cdr elt))) - (if (null? (cdr tail)) - (newline) - (display delim))))))))) - - +(define-public (idest-init) + (let* ((cmd (command-line)) + (progname (car cmd)) + (delim #\newline) + (addinfo #f) + (frame-list #f) ; FIXME: Need a way to access filter_list from idest + (grammar `((full (single-char #\F)) + (qualified (single-char #\Q)) + (frames (single-char #\f) (value #t)) + (single-line (single-char #\l)) + (help (single-char #\h))))) + + (catch 'misc-error + (lambda () + (for-each + (lambda (x) + (case (car x) + ((full) + (set! addinfo + (lambda (attr-list) + (for-each + (lambda (attr) + (if (not (eq? (car attr) 'text)) + (format #t " ~A=\"~A\"" + (car attr) (cdr attr)))) + attr-list)))) + ((qualified) + (set! addinfo + (lambda (attr-list) + (for-each + (lambda (attr) + (if (not (or (eq? (car attr) 'text) + (eq? (car attr) 'descr))) + (format #t ":~A" (cdr attr)))) + attr-list)))) + ((single-line) + (set! delim #\,)) + ((frames) + (set! frame-list (string-split (cdr x) #\,))) + ((help) + (format #t "usage: idest --format=~A [OPTIONS] FILE...\n" + progname) + (format #t "displays the frame list\n") + (format #t "OPTIONS are:\n") + (format #t " -F, --full display all qualifiers\n") + (format #t " -f, --frames FLIST display only frames from FLIST\n") + (format #t " -Q, --qualified display frames in qualified form\n") + (format #t " -l, --single-line fit output on single-line\n") + (format #t " -h, --help show this help summary\n") + (exit 0)) + (else + (set-program-arguments (cons progname (cdr x)))))) + (getopt-long cmd grammar))) + (lambda (key . args) + (with-output-to-port + (current-error-port) + (lambda () + (format #t "~A: " progname) + (apply format #t (list-ref args 1) (list-ref args 2)) + (newline) + (exit 1))))) + + (set! idest-main + (lambda (name frames) + (do ((tail frames (cdr tail))) + ((null? tail)) + (let ((elt (car tail))) + (cond + ((or (not frame-list) (member (car elt) frame-list)) + (display (car elt)) + (if addinfo (addinfo (cdr elt))) + (if (null? (cdr tail)) + (newline) + (display delim)))))))))) |