From 8cce1e5c77ae468e01487aa84c89ae267e03e6e3 Mon Sep 17 00:00:00 2001 From: mainzelm Date: Wed, 5 Apr 2006 07:21:41 +0000 Subject: [PATCH] Fix unparsing of the command line to avoid superfluous spaces. --- scheme/cmdline.scm | 29 ++++++++++++++--------------- 1 file changed, 14 insertions(+), 15 deletions(-) diff --git a/scheme/cmdline.scm b/scheme/cmdline.scm index 4eed9bd..f7007b2 100644 --- a/scheme/cmdline.scm +++ b/scheme/cmdline.scm @@ -372,7 +372,9 @@ ;; unparser -(define (unparse-string/s-expr completion pos v) +(define (unparse-string/s-expr completion pos v start-of-line?) + (if (not start-of-line?) + (display " ")) (cond ((and completion (to-complete? v)) (completion v) @@ -389,21 +391,19 @@ (error "Don't know how to unparse this." v)))) (define (unparse-redirection completion pos rd) + (display " ") (display (symbol->string (redirection-op rd))) - (display " ") (unparse-string/s-expr completion pos - (redirection-dest rd))) + (redirection-dest rd) #f)) -(define (unparse-command completion pos cmd) - (unparse-string/s-expr completion pos (command-executable cmd)) - (display " ") +(define (unparse-command completion pos cmd start-of-line?) + (unparse-string/s-expr completion pos (command-executable cmd) start-of-line?) (for-each (lambda (arg) - (unparse-string/s-expr completion pos arg) - (display " ")) + (unparse-string/s-expr completion pos arg #f)) (command-args cmd)) (for-each (lambda (arg) - (unparse-redirection completion pos arg) - (display " ")) + (display " ") + (unparse-redirection completion pos arg)) (command-redirections cmd))) (define (unparse-command-line cmdln . arg) @@ -414,13 +414,12 @@ (track-port (make-tracking-output-port string-port))) (with-current-output-port track-port (unparse-command completion pos - (command-line-first-cmd cmdln)) - (display " ") + (command-line-first-cmd cmdln) #t) (for-each (lambda (comb.cmd) - (display (symbol->string (car comb.cmd))) - (display " ") - (unparse-command completion pos (cdr comb.cmd))) + (display " ") + (display (symbol->string (car comb.cmd))) + (unparse-command completion pos (cdr comb.cmd) #f)) (command-line-combinator/cmds cmdln)) (cond ((command-line-job-ctrl cmdln)