emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Info-insert-dir


From: martin rudalics
Subject: Re: Info-insert-dir
Date: Thu, 22 Mar 2007 08:19:53 +0100
User-agent: Mozilla Thunderbird 1.0 (Windows/20041206)

> complete.el does not seem to use call-process,
> at least not that I can see.

`PC-expand-many-files' has this

  (with-current-buffer (generate-new-buffer " *Glob Output*")
    (erase-buffer)
    (when (and (file-name-absolute-p name)
               (not (file-directory-p default-directory)))
      ;; If the current working directory doesn't exist `shell-command'
      ;; signals an error.  So if the file names we're looking for don't
      ;; depend on the working directory, switch to a valid directory first.
      (setq default-directory "/"))
    (shell-command (concat "echo " name) t)

which should be OK (`with-temp-buffer' would be probably simpler).

> man.el has handled it in a different way, but it is ot clear that it
> has handled the job completely.  Would you like to check?

- The first two calls are OK:

(defun Man-init-defvars ()
  ...
  (let ((default-directory "/"))
           ...
           ((eq 0 (call-process Man-sed-command nil nil nil 
Man-sysv-sed-script))
           ...
           ((eq 0 (call-process Man-sed-command nil nil nil 
Man-berkeley-sed-script))
           ...

- The next is handled by `with-temp-buffer':

(defun Man-support-local-filenames ()
          ...
          (with-temp-buffer
            (and (equal (condition-case nil
                            (call-process manual-program nil t nil "--help")
                          (error nil))
                 ...

- The final ones should be OK too:

(defun Man-getpage-in-background (topic)
      ...
      (let ((process-environment (copy-sequence process-environment))
            ...
            ;; Avoid possible error by using a directory that always exists.
            (default-directory
              (if (and (file-directory-p default-directory)
                       (not (find-file-name-handler default-directory
                                                    'file-directory-p)))
                  default-directory
                "/")))
             ...
             (start-process manual-program buffer
                 ...
                 (call-process shell-file-name nil (list buffer nil) nil
                 ...





reply via email to

[Prev in Thread] Current Thread [Next in Thread]