bug-gnu-emacs
[Top][All Lists]
Advanced

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

bug#66649: 29.1; `project-remember-projects-under' behavior doesn't matc


From: Dmitry Gutov
Subject: bug#66649: 29.1; `project-remember-projects-under' behavior doesn't match its doc
Date: Fri, 20 Oct 2023 18:46:41 +0300
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.13.0

Hi Damien, thanks for the report.

On 20/10/2023 14:48, Damien Cassou wrote:
the documentation of `project-remember-projects-under' is:

       "Index all projects below a directory DIR.  If RECURSIVE is
     non-nil, recurse into all subdirectories to find more projects.
     After finishing, a message is printed summarizing the progress.  The
     function returns the number of detected projects."

Regardless of the value of RECURSIVE, I understand from the above that
all child directories of the DIR argument will be investigated. The doc
doesn't say anything about investigating if DIR is itself a project or
not so I think it would make sense if the function wasn't.

But the code says otherwise (as far as I understand it):

(defun project-remember-projects-under (dir &optional recursive)
   (let ((queue (list dir)))
     ;; …
     (while queue
       (when-let ((subdir (pop queue))
                  ((file-directory-p subdir)))
         ;; maybe register `subdir' as a project
         ;; …
         (when (and recursive (file-directory-p subdir))
           (setq queue (nconc (directory-files subdir …) queue)))))))

The code above seems to investigate DIR first and, if RECURSIVE is
non-nil, look at the directories below it.

Also, the second check (file-directory-p subdir) seems unnecessary
because of the first one.

There is a part of the code I don't understand:

   (unless (eq recursive 'in-progress)

It seems nowhere in the code nor in the documentation do we say anything
about this 'in-progress special value. Is it a left over from a previous
(recursive) version of the algorithm?

Philip, could you look into this?





reply via email to

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