(define (print-processes processes) (map (lambda (pi) (apply format (append (list #f "~A ~A ~A ~A '~A ~A'~%") (map (lambda (s) (s pi)) (list process-info-pid process-info-ppid process-info-real-uid process-info-%cpu process-info-executable process-info-command-line))))) processes)) (define (pps-receiver message) (cond ((next-command-message? message) (pps)) ((print-message? message) (let ((processes (message-result-object message))) (make-print-object 1 1 (print-processes processes) '() '()))) ((key-pressed-message? message) (pps)) ((restore-message? message) (values)) ((selection-message? message) "'()"))) (set! receivers (cons (make-receiver "ps" pps-receiver) receivers))