+ (let ((process-environment
+ (let* ((rest process-environment)
+ (dest (cons nil nil))
+ (prest dest)
+ (path nil)
+ cell)
+ (while (and (setq cell (car rest))
+ (not
+ (if (string-match "^PATH=" cell)
+ (setq path
+ (format
+ "PATH=%s:%s"
+ mime-viewer/external-progs
+ (substring cell (match-end 0))
+ )))))
+ (setcar prest cell)
+ (setcdr prest (cons nil nil))
+ (setq rest (cdr rest)
+ prest (cdr prest))
+ )
+ (setcar
+ prest
+ (or path
+ (format "PATH=%s" mime-viewer/external-progs)))
+ (setcdr prest (cdr rest))
+ dest)))
+ (apply (function start-process) args)
+ )