Fix unparsing of the command line to avoid superfluous spaces.

This commit is contained in:
mainzelm 2006-04-05 07:21:41 +00:00
parent 6304312753
commit 8cce1e5c77
1 changed files with 14 additions and 15 deletions

View File

@ -372,7 +372,9 @@
;; unparser ;; 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 (cond
((and completion (to-complete? v)) ((and completion (to-complete? v))
(completion v) (completion v)
@ -389,21 +391,19 @@
(error "Don't know how to unparse this." v)))) (error "Don't know how to unparse this." v))))
(define (unparse-redirection completion pos rd) (define (unparse-redirection completion pos rd)
(display " ")
(display (symbol->string (redirection-op rd))) (display (symbol->string (redirection-op rd)))
(display " ")
(unparse-string/s-expr completion pos (unparse-string/s-expr completion pos
(redirection-dest rd))) (redirection-dest rd) #f))
(define (unparse-command completion pos cmd) (define (unparse-command completion pos cmd start-of-line?)
(unparse-string/s-expr completion pos (command-executable cmd)) (unparse-string/s-expr completion pos (command-executable cmd) start-of-line?)
(display " ")
(for-each (lambda (arg) (for-each (lambda (arg)
(unparse-string/s-expr completion pos arg) (unparse-string/s-expr completion pos arg #f))
(display " "))
(command-args cmd)) (command-args cmd))
(for-each (lambda (arg) (for-each (lambda (arg)
(unparse-redirection completion pos arg) (display " ")
(display " ")) (unparse-redirection completion pos arg))
(command-redirections cmd))) (command-redirections cmd)))
(define (unparse-command-line cmdln . arg) (define (unparse-command-line cmdln . arg)
@ -414,13 +414,12 @@
(track-port (make-tracking-output-port string-port))) (track-port (make-tracking-output-port string-port)))
(with-current-output-port track-port (with-current-output-port track-port
(unparse-command completion pos (unparse-command completion pos
(command-line-first-cmd cmdln)) (command-line-first-cmd cmdln) #t)
(display " ")
(for-each (for-each
(lambda (comb.cmd) (lambda (comb.cmd)
(display (symbol->string (car comb.cmd))) (display " ")
(display " ") (display (symbol->string (car comb.cmd)))
(unparse-command completion pos (cdr comb.cmd))) (unparse-command completion pos (cdr comb.cmd) #f))
(command-line-combinator/cmds cmdln)) (command-line-combinator/cmds cmdln))
(cond (cond
((command-line-job-ctrl cmdln) ((command-line-job-ctrl cmdln)