From unknown Sun Jun 22 08:05:13 2025 X-Loop: help-debbugs@gnu.org Subject: bug#50240: 28.0.50; incorrect handling of ignore files in project-files Resent-From: Omar Polo Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sat, 28 Aug 2021 16:53:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 50240 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: 50240@debbugs.gnu.org X-Debbugs-Original-To: bug-gnu-emacs@gnu.org Received: via spool by submit@debbugs.gnu.org id=B.16301695719130 (code B ref -1); Sat, 28 Aug 2021 16:53:02 +0000 Received: (at submit) by debbugs.gnu.org; 28 Aug 2021 16:52:51 +0000 Received: from localhost ([127.0.0.1]:54939 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mK1Za-0002N9-5k for submit@debbugs.gnu.org; Sat, 28 Aug 2021 12:52:51 -0400 Received: from lists.gnu.org ([209.51.188.17]:43718) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mK1ZX-0002N0-GZ for submit@debbugs.gnu.org; Sat, 28 Aug 2021 12:52:48 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:50824) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mK1ZW-00070i-7S for bug-gnu-emacs@gnu.org; Sat, 28 Aug 2021 12:52:46 -0400 Received: from mail.omarpolo.com ([144.91.116.244]:56809) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mK1ZR-0002ho-9R for bug-gnu-emacs@gnu.org; Sat, 28 Aug 2021 12:52:45 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=omarpolo.com; s=20200327; t=1630169553; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type; bh=hBGKxlKk8hbUyjrsC/cP5D5X6uSVp3H/pfKIqgoOAWA=; b=oGM8nupvCtbEXeuK3FbwrfXGf5qVcpGpjspbId0Zf8+ayOWICtZJHTIjhJ2QeCaLLBuTut gi/bL66LFjDNplgnD8ovxcboDfDvQymFCALWp2Mqob+fDaGecp+kEVyb/lIbMKoC3lxUNg 3N5STrfD0l+9KYSsYeYuiwE+OIQ98pw= Received: from localhost (host-79-25-236-96.retail.telecomitalia.it [79.25.236.96]) by mail.omarpolo.com (OpenSMTPD) with ESMTPSA id 2ee52f10 (TLSv1.3:TLS_AES_256_GCM_SHA384:256:NO) for ; Sat, 28 Aug 2021 18:52:33 +0200 (CEST) Received: from venera (localhost [127.0.0.1]) by localhost (OpenSMTPD) with ESMTP id e264b77c for ; Sat, 28 Aug 2021 18:52:32 +0200 (CEST) From: Omar Polo Date: Sat, 28 Aug 2021 18:52:32 +0200 Message-ID: <87r1edpl4f.fsf@omarpolo.com> MIME-Version: 1.0 Content-Type: text/plain Received-SPF: pass client-ip=144.91.116.244; envelope-from=op@omarpolo.com; helo=mail.omarpolo.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-Spam-Score: -1.4 (-) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -2.4 (--) Hello, I'm working on a custom VC backend and noticed something strange regarding the handling of ignore files in project-files: ignoring a file that has the same name of the project makes project-files return nil. To reproduce: 1. create a directory structure as follows: mkdir /tmp/foo touch /tmp/foo/{foo,bar} 2. define a trivial project: (cl-defmethod project-roots ((_ (eql foo))) '("/tmp/foo/")) (cl-defmethod project-ignores ((_ (eql foo)) _) '("foo")) 3. invoke project-files (project-files 'foo) ;; => nil This is because project--files-in-directory directory-file-name. The find command build is find -H /tmp/foo \( -path \*/foo \) -prune -o -type f -print0 and no files are found because are all pruned. If I edit project--files-in-directory to use file-name-as-directory, then the command becomes find -H /tmp/foo/ \( -path \*/foo \) -prune -o -type f -print0 # note the final slash! and project-files successfully returns the files (project-files 'foo) ;; => ("/tmp/foo/bar") >From what I see, project.el used to call file-name-as-directory, but was changed to directory-file-name due to bug#48471 (which I can't reproduce with OpenBSD find.) NB: This is can't be reproduced using a vc-git or vc-hg backed project because project-files treats those backend specially. Thanks, In GNU Emacs 28.0.50 (build 12, x86_64-unknown-openbsd7.0, X toolkit, cairo version 1.16.0, Xaw scroll bars) of 2021-08-23 built on venera Windowing system distributor 'The X.Org Foundation', version 11.0.12010000 System Description: OpenBSD venera 7.0 GENERIC.MP#194 amd64 Configured using: 'configure --prefix=/home/op/opt/emacs --with-x-toolkit=lucid CC=cc' Configured features: CAIRO DBUS FREETYPE GIF GLIB GNUTLS GSETTINGS HARFBUZZ JPEG JSON LCMS2 LIBOTF LIBXML2 M17N_FLT MODULES NOTIFY KQUEUE PDUMPER PNG RSVG THREADS TIFF TOOLKIT_SCROLL_BARS X11 XDBE XIM XPM LUCID ZLIB Important settings: value of $LANG: en_US.UTF-8 locale-coding-system: utf-8-unix Major mode: ELisp/l Minor modes in effect: semantic-minor-modes-format: ((:eval (if (or semantic-highlight-edits-mode semantic-show-unmatched-syntax-mode) S))) nameless-mode: t whitespace-mode: t smartparens-strict-mode: t smartparens-mode: t checkdoc-minor-mode: t flymake-mode: t auto-insert-mode: t org-roam-db-autosync-mode: t global-edit-server-edit-mode: t shell-dirtrack-mode: t eros-mode: t show-paren-mode: t pdf-occur-global-minor-mode: t winner-mode: t shackle-mode: t corfu-global-mode: t corfu-mode: t selectrum-mode: t marginalia-mode: t global-form-feed-mode: t form-feed-mode: t recentf-mode: t savehist-mode: t save-place-mode: t override-global-mode: t straight-use-package-mode: t straight-package-neutering-mode: t tooltip-mode: t global-eldoc-mode: t eldoc-mode: t electric-indent-mode: t mouse-wheel-mode: t prettify-symbols-mode: t tab-bar-mode: t file-name-shadow-mode: t global-font-lock-mode: t font-lock-mode: t blink-cursor-mode: t auto-composition-mode: t auto-encryption-mode: t auto-compression-mode: t line-number-mode: t auto-fill-function: do-auto-fill transient-mark-mode: t auto-save-visited-mode: t abbrev-mode: t hs-minor-mode: t Load-path shadows: ~/.emacs.d/lisp/sndio.el/sndio hides /home/op/.emacs.d/lisp/sndio /home/op/.emacs.d/straight/build/jsonrpc/jsonrpc hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/jsonrpc /home/op/.emacs.d/straight/build/flymake/flymake hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/progmodes/flymake /home/op/.emacs.d/straight/build/xref/xref hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/progmodes/xref /home/op/.emacs.d/straight/build/project/project hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/progmodes/project /home/op/.emacs.d/straight/build/org/ox-latex hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/org/ox-latex /home/op/.emacs.d/straight/build/org/ox-icalendar hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/org/ox-icalendar /home/op/.emacs.d/straight/build/org/org-inlinetask hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/org/org-inlinetask /home/op/.emacs.d/straight/build/org/org-attach-git hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/org/org-attach-git /home/op/.emacs.d/straight/build/org/org-attach hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/org/org-attach /home/op/.emacs.d/straight/build/org/ol-gnus hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/org/ol-gnus /home/op/.emacs.d/straight/build/org/ol-eww hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/org/ol-eww /home/op/.emacs.d/straight/build/org/ol-docview hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/org/ol-docview /home/op/.emacs.d/straight/build/org/ob-processing hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/org/ob-processing /home/op/.emacs.d/straight/build/org/ob-matlab hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/org/ob-matlab /home/op/.emacs.d/straight/build/org/ob-gnuplot hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/org/ob-gnuplot /home/op/.emacs.d/straight/build/org/ob-eshell hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/org/ob-eshell /home/op/.emacs.d/straight/build/org/ob-dot hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/org/ob-dot /home/op/.emacs.d/straight/build/org/ob-asymptote hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/org/ob-asymptote /home/op/.emacs.d/straight/build/org/ox-org hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/org/ox-org /home/op/.emacs.d/straight/build/org/ox-publish hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/org/ox-publish /home/op/.emacs.d/straight/build/org/ox-odt hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/org/ox-odt /home/op/.emacs.d/straight/build/org/ox-texinfo hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/org/ox-texinfo /home/op/.emacs.d/straight/build/org/ox hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/org/ox /home/op/.emacs.d/straight/build/org/ox-md hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/org/ox-md /home/op/.emacs.d/straight/build/org/ox-man hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/org/ox-man /home/op/.emacs.d/straight/build/org/org hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/org/org /home/op/.emacs.d/straight/build/org/ox-html hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/org/ox-html /home/op/.emacs.d/straight/build/org/ox-beamer hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/org/ox-beamer /home/op/.emacs.d/straight/build/org/ox-ascii hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/org/ox-ascii /home/op/.emacs.d/straight/build/org/org-timer hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/org/org-timer /home/op/.emacs.d/straight/build/org/org-tempo hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/org/org-tempo /home/op/.emacs.d/straight/build/org/org-plot hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/org/org-plot /home/op/.emacs.d/straight/build/org/org-lint hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/org/org-lint /home/op/.emacs.d/straight/build/org/org-mouse hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/org/org-mouse /home/op/.emacs.d/straight/build/org/org-mobile hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/org/org-mobile /home/op/.emacs.d/straight/build/org/org-protocol hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/org/org-protocol /home/op/.emacs.d/straight/build/org/org-refile hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/org/org-refile /home/op/.emacs.d/straight/build/org/org-table hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/org/org-table /home/op/.emacs.d/straight/build/org/org-src hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/org/org-src /home/op/.emacs.d/straight/build/org/org-pcomplete hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/org/org-pcomplete /home/op/.emacs.d/straight/build/org/org-num hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/org/org-num /home/op/.emacs.d/straight/build/org/org-list hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/org/org-list /home/op/.emacs.d/straight/build/org/org-macs hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/org/org-macs /home/op/.emacs.d/straight/build/org/org-macro hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/org/org-macro /home/op/.emacs.d/straight/build/org/org-habit hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/org/org-habit /home/op/.emacs.d/straight/build/org/org-element hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/org/org-element /home/op/.emacs.d/straight/build/org/org-keys hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/org/org-keys /home/op/.emacs.d/straight/build/org/org-goto hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/org/org-goto /home/op/.emacs.d/straight/build/org/org-feed hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/org/org-feed /home/op/.emacs.d/straight/build/org/org-datetree hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/org/org-datetree /home/op/.emacs.d/straight/build/org/org-ctags hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/org/org-ctags /home/op/.emacs.d/straight/build/org/org-colview hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/org/org-colview /home/op/.emacs.d/straight/build/org/org-footnote hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/org/org-footnote /home/op/.emacs.d/straight/build/org/org-faces hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/org/org-faces /home/op/.emacs.d/straight/build/org/org-capture hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/org/org-capture /home/op/.emacs.d/straight/build/org/org-entities hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/org/org-entities /home/op/.emacs.d/straight/build/org/org-clock hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/org/org-clock /home/op/.emacs.d/straight/build/org/org-duration hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/org/org-duration /home/op/.emacs.d/straight/build/org/org-crypt hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/org/org-crypt /home/op/.emacs.d/straight/build/org/org-compat hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/org/org-compat /home/op/.emacs.d/straight/build/org/org-id hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/org/org-id /home/op/.emacs.d/straight/build/org/org-agenda hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/org/org-agenda /home/op/.emacs.d/straight/build/org/org-archive hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/org/org-archive /home/op/.emacs.d/straight/build/org/org-indent hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/org/org-indent /home/op/.emacs.d/straight/build/org/ob-fortran hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/org/ob-fortran /home/op/.emacs.d/straight/build/org/ol hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/org/ol /home/op/.emacs.d/straight/build/org/ol-w3m hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/org/ol-w3m /home/op/.emacs.d/straight/build/org/ol-mhe hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/org/ol-mhe /home/op/.emacs.d/straight/build/org/ol-rmail hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/org/ol-rmail /home/op/.emacs.d/straight/build/org/ol-bibtex hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/org/ol-bibtex /home/op/.emacs.d/straight/build/org/ol-irc hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/org/ol-irc /home/op/.emacs.d/straight/build/org/ol-info hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/org/ol-info /home/op/.emacs.d/straight/build/org/ol-bbdb hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/org/ol-bbdb /home/op/.emacs.d/straight/build/org/ol-eshell hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/org/ol-eshell /home/op/.emacs.d/straight/build/org/ob-vala hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/org/ob-vala /home/op/.emacs.d/straight/build/org/ob-tangle hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/org/ob-tangle /home/op/.emacs.d/straight/build/org/ob-shell hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/org/ob-shell /home/op/.emacs.d/straight/build/org/ob-sqlite hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/org/ob-sqlite /home/op/.emacs.d/straight/build/org/ob-stan hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/org/ob-stan /home/op/.emacs.d/straight/build/org/ob hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/org/ob /home/op/.emacs.d/straight/build/org/ob-table hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/org/ob-table /home/op/.emacs.d/straight/build/org/ob-python hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/org/ob-python /home/op/.emacs.d/straight/build/org/ob-sql hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/org/ob-sql /home/op/.emacs.d/straight/build/org/ob-shen hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/org/ob-shen /home/op/.emacs.d/straight/build/org/ob-sass hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/org/ob-sass /home/op/.emacs.d/straight/build/org/ob-scheme hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/org/ob-scheme /home/op/.emacs.d/straight/build/org/ob-plantuml hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/org/ob-plantuml /home/op/.emacs.d/straight/build/org/ob-sed hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/org/ob-sed /home/op/.emacs.d/straight/build/org/ob-screen hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/org/ob-screen /home/op/.emacs.d/straight/build/org/ob-ruby hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/org/ob-ruby /home/op/.emacs.d/straight/build/org/ob-ref hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/org/ob-ref /home/op/.emacs.d/straight/build/org/ob-C hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/org/ob-C /home/op/.emacs.d/straight/build/org/ob-org hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/org/ob-org /home/op/.emacs.d/straight/build/org/ob-picolisp hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/org/ob-picolisp /home/op/.emacs.d/straight/build/org/ob-ocaml hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/org/ob-ocaml /home/op/.emacs.d/straight/build/org/ob-octave hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/org/ob-octave /home/op/.emacs.d/straight/build/org/ob-perl hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/org/ob-perl /home/op/.emacs.d/straight/build/org/ob-lob hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/org/ob-lob /home/op/.emacs.d/straight/build/org/ob-maxima hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/org/ob-maxima /home/op/.emacs.d/straight/build/org/ob-lua hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/org/ob-lua /home/op/.emacs.d/straight/build/org/ob-makefile hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/org/ob-makefile /home/op/.emacs.d/straight/build/org/ob-ledger hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/org/ob-ledger /home/op/.emacs.d/straight/build/org/ob-lisp hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/org/ob-lisp /home/op/.emacs.d/straight/build/org/ob-io hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/org/ob-io /home/op/.emacs.d/straight/build/org/ob-lilypond hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/org/ob-lilypond /home/op/.emacs.d/straight/build/org/ob-latex hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/org/ob-latex /home/op/.emacs.d/straight/build/org/ob-js hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/org/ob-js /home/op/.emacs.d/straight/build/org/ob-java hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/org/ob-java /home/op/.emacs.d/straight/build/org/ob-hledger hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/org/ob-hledger /home/op/.emacs.d/straight/build/org/ob-forth hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/org/ob-forth /home/op/.emacs.d/straight/build/org/ob-groovy hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/org/ob-groovy /home/op/.emacs.d/straight/build/org/ob-haskell hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/org/ob-haskell /home/op/.emacs.d/straight/build/org/ob-ebnf hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/org/ob-ebnf /home/op/.emacs.d/straight/build/org/ob-exp hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/org/ob-exp /home/op/.emacs.d/straight/build/org/ob-core hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/org/ob-core /home/op/.emacs.d/straight/build/org/ob-eval hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/org/ob-eval /home/op/.emacs.d/straight/build/org/ob-css hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/org/ob-css /home/op/.emacs.d/straight/build/org/ob-emacs-lisp hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/org/ob-emacs-lisp /home/op/.emacs.d/straight/build/org/ob-ditaa hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/org/ob-ditaa /home/op/.emacs.d/straight/build/org/ob-mscgen hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/org/ob-mscgen /home/op/.emacs.d/straight/build/org/ob-comint hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/org/ob-comint /home/op/.emacs.d/straight/build/org/ob-coq hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/org/ob-coq /home/op/.emacs.d/straight/build/org/ob-calc hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/org/ob-calc /home/op/.emacs.d/straight/build/org/ob-abc hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/org/ob-abc /home/op/.emacs.d/straight/build/org/ob-clojure hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/org/ob-clojure /home/op/.emacs.d/straight/build/org/ob-awk hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/org/ob-awk /home/op/.emacs.d/straight/build/org/ob-R hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/org/ob-R /home/op/.emacs.d/straight/build/org/org-loaddefs hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/org/org-loaddefs /home/op/.emacs.d/straight/build/org/ob-J hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/org/ob-J /home/op/.emacs.d/straight/build/org/org-version hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/org/org-version /home/op/.emacs.d/straight/build/org/org-install hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/org/org-install /home/op/.emacs.d/straight/build/soap-client/soap-client hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/net/soap-client /home/op/.emacs.d/straight/build/soap-client/soap-inspect hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/net/soap-inspect /home/op/.emacs.d/straight/build/let-alist/let-alist hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/emacs-lisp/let-alist /home/op/.emacs.d/straight/build/eldoc/eldoc hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/emacs-lisp/eldoc Features: (shadow guess-language flyspell ispell emacsbug gnus-async gnus-bcklg gnus-agent gnus-srvr gnus-score score-mode nnvirtual nntp gnus-ml gnus-msg disp-table nndoc gnus-cache gnus-dup gnutls network-stream url-cache debbugs-gnu debbugs soap-client rng-xsd xsd-regexp debbugs-autoloads soap-client-autoloads autoload consult-imenu shortdoc debug edebug backtrace etags fileloop reposition pulse color help-fns radix-tree consult-xref misearch multi-isearch cl-print ielm smerge-mode diff flymake-cc cap-words superword subword dired-aux xref find-dired vc-mtn vc-hg vc-git diff-mode vc-bzr vc-src vc-sccs vc-svn vc-cvs vc-rcs vc-got vc-dir log-edit pcvs-util add-log vc-annotate vc vc-dispatcher cursor-sensor project mm-archive qp sort gnus-cite mail-extr nameless whitespace hideshow smartparens-config smartparens-org smartparens-text smartparens-python smartparens-c smartparens checkdoc flymake-proc flymake warnings ol-eww ol-rmail ol-mhe ol-irc ol-info ol-gnus nnselect gnus-search eieio-opt speedbar ezimage dframe ol-docview ol-bibtex ol-bbdb ol-w3m oc-basic bibtex oc loadhist autoinsert org-roam-migrate org-roam-mode inline org-roam-capture org-roam-node org-roam-db org-roam-utils org-roam pcase org-roam-compat org-capture org-id emacsql-sqlite url-http url-auth url-gw nsm emacsql emacsql-compiler magit-section f dash edit-server edit-server-autoloads elfeed-autoloads telega-autoloads rainbow-identifiers-autoloads visual-fill-column-autoloads toxe toxe-chat ewoc nov-autoloads esxml-autoloads kv-autoloads pq pq-core elpher-autoloads eww xdg url-queue mm-url emms-autoloads pass-autoloads password-store-otp-autoloads password-store-autoloads with-editor-autoloads mu4e mu4e-org mu4e-main mu4e-view mu4e-view-gnus gnus-art mm-uu mml2015 mm-view mml-smime smime dig gnus-sum gnus-group gnus-undo gnus-start gnus-dbus dbus gnus-cloud nnimap nnmail mail-source utf7 netrc nnoo gnus-spec gnus-int gnus-range gnus-win gnus nnheader mu4e-view-common mu4e-headers mu4e-compose mu4e-context mu4e-draft mu4e-actions ido rfc2368 smtpmail sendmail mu4e-mark mu4e-proc mu4e-utils doc-view mu4e-lists mu4e-message shr kinsoku svg xml dom flow-fill mule-util hl-line mu4e-vars message rmc puny rfc822 mml mml-sec epa derived epg epg-config gnus-util rmail rmail-loaddefs mm-decode mm-bodies mm-encode mailabbrev mail-utils gmm-utils mailheader mu4e-meta keycast keycast-autoloads literate-calc-mode s calc calc-loaddefs calc-macs literate-calc-mode-autoloads vterm-autoloads sam markdown-mode-autoloads ox-gemini ox-odt rng-loc rng-uri rng-parse rng-match rng-dt rng-util rng-pttrn nxml-parse nxml-ns nxml-enc xmltok nxml-util ox-latex ox-icalendar org-agenda org-refile ox-html table ox-ascii ox-publish ox org-element org-tree-slide org-timer org-clock org-tree-slide-autoloads org-roam-autoloads magit-section-autoloads emacsql-sqlite-autoloads emacsql-autoloads f-autoloads ob-gnuplot ob-python python tramp-sh tramp tramp-loaddefs trampver tramp-integration files-x tramp-compat parse-time iso8601 ls-lisp ob-sqlite ob-shell shell ob-lisp ob-sql ob-R ob-C cc-mode cc-fonts cc-guess cc-menus cc-cmds cc-styles cc-align cc-engine cc-vars cc-defs org-protocol org ob ob-tangle ob-ref ob-lob ob-table org-macro org-footnote org-src ob-comint org-pcomplete pcomplete org-list org-faces org-entities time-date noutline outline org-version ob-emacs-lisp org-table org-keys org-loaddefs cal-menu calendar cal-loaddefs avl-tree generator ol ob-exp ob-core org-compat ob-eval org-macs ox-gemini-autoloads gemini-mode-autoloads toml-mode-autoloads yaml-mode-autoloads gdscript-mode-autoloads lua-mode-autoloads sh-script smie executable perl-mode go-mode-autoloads web-mode-autoloads es-mode-autoloads request-autoloads s-autoloads spark-autoloads geiser geiser-autoloads cider-autoloads sesman-autoloads spinner-autoloads queue-autoloads pkg-info-autoloads epl-autoloads parseedn-autoloads parseclj-autoloads a-autoloads clojure-mode-autoloads sly-autoloads package-lint rx finder lisp-mnt mail-parse rfc2231 rfc2047 rfc2045 mm-util ietf-drums mail-prsvr package-lint-autoloads nameless-autoloads eros eros-autoloads eglot-autoloads project-autoloads xref-autoloads flymake-autoloads eldoc-autoloads jsonrpc-autoloads paren iedit-autoloads pdf-occur ibuf-ext ibuffer ibuffer-loaddefs tablist tablist-filter semantic/wisent/comp semantic/wisent semantic/wisent/wisent semantic/util-modes semantic/util semantic semantic/tag semantic/lex semantic/fw mode-local find-func cedet pdf-isearch let-alist pdf-misc imenu pdf-tools package browse-url url url-proxy url-privacy url-expand url-methods url-history url-cookie url-domsuf url-util mailcap url-handlers url-parse auth-source eieio eieio-core eieio-loaddefs json map url-vars compile comint ansi-color cus-edit cus-load pdf-view password-cache jka-compr pdf-cache pdf-info tq pdf-util advice format-spec pdf-macs image-mode dired-x dired dired-loaddefs exif pdf-tools-autoloads let-alist-autoloads tablist-autoloads my-abbrev olivetti-autoloads typo-autoloads guess-language-autoloads smartparens-autoloads dash-autoloads loccur-autoloads ace-window-autoloads avy-autoloads transpose-frame-autoloads winner shackle trace shackle-autoloads corfu corfu-autoloads embark-autoloads consult-selectrum selectrum minibuf-eldef crm selectrum-autoloads affe server consult bookmark text-property-search pp affe-autoloads consult-autoloads orderless orderless-autoloads marginalia marginalia-autoloads form-feed form-feed-autoloads thingatpt recentf tree-widget wid-edit hydra ring lv hydra-autoloads lv-autoloads finder-inf savehist saveplace valign-autoloads htmlize htmlize-autoloads edmacro kmacro use-package-bind-key bind-key easy-mmode use-package-core use-package-autoloads bind-key-autoloads straight-autoloads info cl-seq cl-extra help-mode seq byte-opt straight subr-x cl-macs gv bytecomp byte-compile cconv cl-loaddefs cl-lib minimal-light-theme my-modeline iso-transl tooltip eldoc electric uniquify ediff-hook vc-hooks lisp-float-type mwheel term/x-win x-win term/common-win x-dnd tool-bar dnd fontset image regexp-opt fringe tabulated-list replace newcomment text-mode elisp-mode lisp-mode prog-mode register page tab-bar menu-bar rfn-eshadow isearch easymenu timer select scroll-bar mouse jit-lock font-lock syntax font-core term/tty-colors frame minibuffer cl-generic cham georgian utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao korean japanese eucjp-ms cp51932 hebrew greek romanian slovak czech european ethiopic indian cyrillic chinese composite charscript charprop case-table epa-hook jka-cmpr-hook help simple abbrev obarray cl-preloaded nadvice button loaddefs faces cus-face macroexp files window text-properties overlay sha1 md5 base64 format env code-pages mule custom widget hashtable-print-readable backquote threads dbusbind kqueue lcms2 dynamic-setting system-font-setting font-render-setting cairo x-toolkit x multi-tty make-network-process emacs) Memory information: ((conses 16 895495 136128) (symbols 48 63645 8) (strings 32 224778 41016) (string-bytes 1 7913312) (vectors 16 106677) (vector-slots 8 2140779 96967) (floats 8 3555 1005) (intervals 56 21195 2565) (buffers 992 58)) -- /Omar Polo From unknown Sun Jun 22 08:05:13 2025 X-Loop: help-debbugs@gnu.org Subject: bug#50240: 28.0.50; incorrect handling of ignore files in project-files Resent-From: Dmitry Gutov Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sun, 29 Aug 2021 01:18:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 50240 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Omar Polo , 50240@debbugs.gnu.org Received: via spool by 50240-submit@debbugs.gnu.org id=B50240.163019984227243 (code B ref 50240); Sun, 29 Aug 2021 01:18:01 +0000 Received: (at 50240) by debbugs.gnu.org; 29 Aug 2021 01:17:22 +0000 Received: from localhost ([127.0.0.1]:55195 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mK9Rp-00075L-O2 for submit@debbugs.gnu.org; Sat, 28 Aug 2021 21:17:21 -0400 Received: from mail-wr1-f41.google.com ([209.85.221.41]:43919) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mK9Rn-000757-HX for 50240@debbugs.gnu.org; Sat, 28 Aug 2021 21:17:20 -0400 Received: by mail-wr1-f41.google.com with SMTP id b6so16632347wrh.10 for <50240@debbugs.gnu.org>; Sat, 28 Aug 2021 18:17:19 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:subject:to:references:from:message-id:date:user-agent :mime-version:in-reply-to:content-language:content-transfer-encoding; bh=KUQlJbY+frlnE5WvVXiqKp7QV7/bZTUWRYXzhSPsMJo=; b=D7Yc2mVr9M6glKwmdmBmqJWv1Ze4XHsW8x6fsAZFKlHzji27Vls3FbPKttghkHnCT2 K6aEYOt8lqQTtMMGI6AVf1d89N0nxOIrlPYDjVlUU0bxAIFjPlp75mRV5WXQ1aspswy5 jIcvSAhwCRLOPzNeWIsihukfD1D6Ow3tQSL0joohUVyPEBMmTPulAnSTiQYZgP79bt0n au98UQmmtPOqAH7t8q+nEWxV6E2LwwTtDsdrV5h14MlWLvBW0c0cqilY5ZF7NpdAMJUC bJxltnWBHJ99TOrUL0eK5Fham77NZtUthWZPdFcVKtUmpJD5Pa4u/o6FU3oveSLyljUb 1LDA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:subject:to:references:from:message-id :date:user-agent:mime-version:in-reply-to:content-language :content-transfer-encoding; bh=KUQlJbY+frlnE5WvVXiqKp7QV7/bZTUWRYXzhSPsMJo=; b=gsVbgW/xuxfn0p4g2nUnD74jifdFd7iemS/7DytWcLyeVNLtFtXhJyizupgbkCjAzy HUIb+rJNMypWIVoHDJdtKXwcx2o7GZXX2/tmaisZ70KUdtr4wtHrCyp/M5b656on2cxL nXvkUwBjmV+nL27VADNpwLAIwslw+T/ySYSZsAygTJBv+12Hbqqsayav3Zi0S8Jfrf66 3H/zZ2ig+oLd8A058ZPviKBc0Vn/TrH5OqZVP2U45IFrZ2ACrLl1EH4L3WxzuFggOZbo MdP5mcCItt5H/HQg9haFnRj8UyU9uK2L0Nf/WYSeS6jZn91O1PFlI7RworwdTMOXxJWQ 7o/A== X-Gm-Message-State: AOAM533K4u14IcqX9MIu89JgtEHw7rmnBJA3RCpQ9sb4l1ge7F3+BJjL jjhvS0bU8WRi0MKc+OJ5YVvKL42M2/k= X-Google-Smtp-Source: ABdhPJxRWB5k1PCQa/xntqz9LHa5mNAys1ZmGHGaH8dy99ZBKFhAkUnoM/w1uIF6/Tp5kY7blna6bQ== X-Received: by 2002:a5d:5642:: with SMTP id j2mr18123996wrw.264.1630199833595; Sat, 28 Aug 2021 18:17:13 -0700 (PDT) Received: from [192.168.0.6] ([46.251.119.176]) by smtp.googlemail.com with ESMTPSA id n18sm12932907wmc.22.2021.08.28.18.17.12 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Sat, 28 Aug 2021 18:17:13 -0700 (PDT) References: <87r1edpl4f.fsf@omarpolo.com> From: Dmitry Gutov Message-ID: Date: Sun, 29 Aug 2021 04:17:11 +0300 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.11.0 MIME-Version: 1.0 In-Reply-To: <87r1edpl4f.fsf@omarpolo.com> Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 7bit X-Spam-Score: 0.4 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.6 (/) Hi! On 28.08.2021 19:52, Omar Polo wrote: > Hello, > > I'm working on a custom VC backend and noticed something strange > regarding the handling of ignore files in project-files: ignoring a file > that has the same name of the project makes project-files return nil. > > To reproduce: > > 1. create a directory structure as follows: > > mkdir /tmp/foo > touch /tmp/foo/{foo,bar} > > 2. define a trivial project: > > (cl-defmethod project-roots ((_ (eql foo))) > '("/tmp/foo/")) > > (cl-defmethod project-ignores ((_ (eql foo)) _) > '("foo")) > > 3. invoke project-files > > (project-files 'foo) > ;; => nil > > This is because project--files-in-directory directory-file-name. The > find command build is > > find -H /tmp/foo \( -path \*/foo \) -prune -o -type f -print0 > > and no files are found because are all pruned. It might be doing the correct thing, depending on how we define the exact semantics of ignores. I guess it will really depend on how this is going to be to fix without breaking the previous advancements. ;-) Try returning "./foo" instead of "foo". Would that work for you? Or does your usage require a more general fix? > If I edit project--files-in-directory to use file-name-as-directory, > then the command becomes > > find -H /tmp/foo/ \( -path \*/foo \) -prune -o -type f -print0 > # note the final slash! > > and project-files successfully returns the files > > (project-files 'foo) > ;; => ("/tmp/foo/bar") > > From what I see, project.el used to call file-name-as-directory, but was > changed to directory-file-name due to bug#48471 (which I can't reproduce > with OpenBSD find.) Yeah, for all I know it only happens with 'find' distributed with macOS. Which is unfortunate, since it's a relatively popular OS. > NB: This is can't be reproduced using a vc-git or vc-hg backed project > because project-files treats those backend specially. Correct. From unknown Sun Jun 22 08:05:13 2025 X-Loop: help-debbugs@gnu.org Subject: bug#50240: 28.0.50; incorrect handling of ignore files in project-files Resent-From: Omar Polo Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sun, 29 Aug 2021 08:57:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 50240 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Dmitry Gutov Cc: 50240@debbugs.gnu.org Received: via spool by 50240-submit@debbugs.gnu.org id=B50240.163022738722551 (code B ref 50240); Sun, 29 Aug 2021 08:57:01 +0000 Received: (at 50240) by debbugs.gnu.org; 29 Aug 2021 08:56:27 +0000 Received: from localhost ([127.0.0.1]:55490 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mKGc7-0005rf-2X for submit@debbugs.gnu.org; Sun, 29 Aug 2021 04:56:27 -0400 Received: from mail.omarpolo.com ([144.91.116.244]:63603) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mKGc2-0005rP-Ve for 50240@debbugs.gnu.org; Sun, 29 Aug 2021 04:56:25 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=omarpolo.com; s=20200327; t=1630227375; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=Nb+N55/loyApZdJkhLpJHSy5D2quGV8j1LbrdLHD7Lc=; b=ltw/ko9YwAWVImuwUFn1psL37xzq1DnAHHbmX01YrOOXXPzqv7kQ0unk8lEY6OOJSUM0i4 2HJlk/Msc1yiuqR+oa0oUN1bIcoipyQ1b3vKRqSOb4T9twIm9Zgeice6FBmz3k3ZEQdKuv HGNmGzKfBazM5O4dJOl0qsSyXb4y03I= Received: from localhost (host-79-25-236-96.retail.telecomitalia.it [79.25.236.96]) by mail.omarpolo.com (OpenSMTPD) with ESMTPSA id d684cf78 (TLSv1.3:TLS_AES_256_GCM_SHA384:256:NO); Sun, 29 Aug 2021 10:56:15 +0200 (CEST) Received: from venera (localhost [127.0.0.1]) by localhost (OpenSMTPD) with ESMTP id 57155a70; Sun, 29 Aug 2021 10:56:14 +0200 (CEST) References: <87r1edpl4f.fsf@omarpolo.com> User-agent: mu4e 1.6.5; emacs 28.0.50 From: Omar Polo Date: Sun, 29 Aug 2021 10:30:39 +0200 In-reply-to: Message-ID: <87wno48w9d.fsf@omarpolo.com> MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: 0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Dmitry Gutov writes: > Hi! > > On 28.08.2021 19:52, Omar Polo wrote: >> Hello, >> I'm working on a custom VC backend and noticed something strange >> regarding the handling of ignore files in project-files: ignoring a file >> that has the same name of the project makes project-files return nil. >> To reproduce: >> 1. create a directory structure as follows: >> mkdir /tmp/foo >> touch /tmp/foo/{foo,bar} >> 2. define a trivial project: >> (cl-defmethod project-roots ((_ (eql foo))) >> '("/tmp/foo/")) >> (cl-defmethod project-ignores ((_ (eql foo)) _) >> '("foo")) >> 3. invoke project-files >> (project-files 'foo) >> ;; => nil > >> This is because project--files-in-directory directory-file-name. >> The >> find command build is >> find -H /tmp/foo \( -path \*/foo \) -prune -o -type f >> -print0 >> and no files are found because are all pruned. > > It might be doing the correct thing, depending on how we define the > exact semantics of ignores. I guess it will really depend on how this > is going to be to fix without breaking the previous advancements. ;-) > > Try returning "./foo" instead of "foo". Would that work for you? Or > does your usage require a more general fix? Yes, with "./foo" the issue is resolved, but I think a more general fix in project.el is warranted. It's quite common (at least for C and Go which I use frequently) to produce a binary in the root directory of the project with the same name of the project, for example /home/op/w/foo/ <- project root /home/op/w/foo/foo <- the binary produced and I expect users to have "foo" in their ignore file, not "./foo", as they do for e.g. when using git and vc-git. Also, if one day in the future someone decides to remove the specific treatment of Git and Hg from project-files this issue will bite vc-git/hg users too. I guess I can hack something in my custom vc backend to replace an ignore entry called "" with "./", but this would probably need to be done on every vc backend, excluding git and hg. For the time being, I'm using the following patch, but I don't particularly like it. diff --git a/project.el b/project.el index ae9bf03..176947e 100644 --- a/project.el +++ b/project.el @@ -302,6 +302,12 @@ to find the list of ignores for each directory." ;; expanded and not left for the shell command ;; to interpret. (localdir (file-name-unquote (file-local-name (expand-file-name dir)))) + (projectname (file-name-nondirectory (directory-file-name dir))) + (ignores (mapcar (lambda (e) + (if (string= projectname e) + (concat "./" e) + e)) + ignores)) (command (format "%s -H %s %s -type f %s -print0" find-program (shell-quote-argument From unknown Sun Jun 22 08:05:13 2025 X-Loop: help-debbugs@gnu.org Subject: bug#50240: 28.0.50; incorrect handling of ignore files in project-files Resent-From: Dmitry Gutov Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Mon, 30 Aug 2021 02:23:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 50240 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Omar Polo Cc: 50240@debbugs.gnu.org Received: via spool by 50240-submit@debbugs.gnu.org id=B50240.163029017028080 (code B ref 50240); Mon, 30 Aug 2021 02:23:01 +0000 Received: (at 50240) by debbugs.gnu.org; 30 Aug 2021 02:22:50 +0000 Received: from localhost ([127.0.0.1]:57854 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mKWwj-0007Iq-L2 for submit@debbugs.gnu.org; Sun, 29 Aug 2021 22:22:49 -0400 Received: from mail-wr1-f49.google.com ([209.85.221.49]:34398) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mKWwi-0007Id-3K for 50240@debbugs.gnu.org; Sun, 29 Aug 2021 22:22:48 -0400 Received: by mail-wr1-f49.google.com with SMTP id h13so20268608wrp.1 for <50240@debbugs.gnu.org>; Sun, 29 Aug 2021 19:22:48 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:subject:to:cc:references:from:message-id:date:user-agent :mime-version:in-reply-to:content-language:content-transfer-encoding; bh=/piyI8RRNyPL7BSKXlHCbkz9lRDq5m4+yEDdSSiwbLM=; b=pNaQD7g/wZ9zFNPLVB8P8Q6aewU0Yvc5EaAMlNNR0Hye+4Kh5y1oG5EPSxV1MLE3+d e+Kj9k3BAex7LPj5JB6glb8QKByv7cCC4uA45JDwjWdoVhaKe8zNzjs0d7c0uHna8BO7 7My4FC+8sC2JFmGD6piH9Zum7AaZ2Anbecg03MwgzbTvaBvYFMhFuiSoq5DFDXvNTCL5 /kJLiHkr/9q+YZHxhHsTNIsNqt6durdlMDk5QfTrgR6AfNn0MBcfDlDNVZSqISBLc2Km 2lo4vGd+SZo7MpD7WIgKfmzveUiKsCz3BbmZ2vPGWR1jWPk6e5f8zSoxLUaQNywu2ygW 7STQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:subject:to:cc:references:from:message-id :date:user-agent:mime-version:in-reply-to:content-language :content-transfer-encoding; bh=/piyI8RRNyPL7BSKXlHCbkz9lRDq5m4+yEDdSSiwbLM=; b=sXC8pTCByY+pDVhd7CMvV7H1aG6U/irrdrVsmL+E2S/sY9HuQkZIgxnUmI68BZb58b V5aOZZrZZZP4ZEWrmqaDuA+A+JVr1L/hfnR1ZR5usK11hcL9sSK2HtrVZUAHRP8yjdML zvYsK0pPa7fJXX4ouuoj1J/nyZTGpdn7FY6gU0ieQp8Zz2DXxA3q9eQ1pq0CFY86V3Tj DkLmyyrBo5kkKEurLVdtiJd+K6hg1oiHMkC9VwN+SagQFvQqz/KNfyPsyGrMcZ8pL0X8 AdZmb0x2+9CNcVeZzKewiWRX4+4accNEk4Q9C3jtz2/p3VeWF3KRDe83APC2ZgEgb7BD cXsA== X-Gm-Message-State: AOAM533wHdt0h84RhKTrGhzeVyVa3srVT54z8R9K7b4pAdwrdJbz/bi9 PJfxr6JBC2gzYh5/nGVLTHJt1FMWPXo= X-Google-Smtp-Source: ABdhPJyus6p1tjqZNWUR6XKdXmIMNXCe8BMlzpZvlydCkLab38nfvuoLnKFHqaTd/4vzuI6h2WTx7Q== X-Received: by 2002:adf:c104:: with SMTP id r4mr2955665wre.404.1630290162267; Sun, 29 Aug 2021 19:22:42 -0700 (PDT) Received: from [192.168.0.6] ([46.251.119.176]) by smtp.googlemail.com with ESMTPSA id v5sm13715680wrw.44.2021.08.29.19.22.41 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Sun, 29 Aug 2021 19:22:41 -0700 (PDT) References: <87r1edpl4f.fsf@omarpolo.com> <87wno48w9d.fsf@omarpolo.com> From: Dmitry Gutov Message-ID: <960e4fe3-4da6-fff6-0bde-799ad4e0265f@yandex.ru> Date: Mon, 30 Aug 2021 05:22:40 +0300 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.11.0 MIME-Version: 1.0 In-Reply-To: <87wno48w9d.fsf@omarpolo.com> Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 7bit X-Spam-Score: 0.4 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.6 (/) On 29.08.2021 11:30, Omar Polo wrote: > Yes, with "./foo" the issue is resolved, but I think a more general fix > in project.el is warranted. > > It's quite common (at least for C and Go which I use frequently) to > produce a binary in the root directory of the project with the same name > of the project, for example > > /home/op/w/foo/ <- project root > /home/op/w/foo/foo <- the binary produced > > and I expect users to have "foo" in their ignore file, not "./foo", as > they do for e.g. when using git and vc-git. Fair enough. > Also, if one day in the future someone decides to remove the specific > treatment of Git and Hg from project-files this issue will bite > vc-git/hg users too. Unlikely: the special treatment is there foremost for performance. But perhaps we'll get a faster universal method for listing files, who knows. > I guess I can hack something in my custom vc backend to replace an > ignore entry called "" with "./", but this > would probably need to be done on every vc backend, excluding git and > hg. > > For the time being, I'm using the following patch, but I don't > particularly like it. > > > diff --git a/project.el b/project.el > index ae9bf03..176947e 100644 > --- a/project.el > +++ b/project.el > @@ -302,6 +302,12 @@ to find the list of ignores for each directory." > ;; expanded and not left for the shell command > ;; to interpret. > (localdir (file-name-unquote (file-local-name (expand-file-name dir)))) > + (projectname (file-name-nondirectory (directory-file-name dir))) > + (ignores (mapcar (lambda (e) > + (if (string= projectname e) > + (concat "./" e) > + e)) > + ignores)) > (command (format "%s -H %s %s -type f %s -print0" > find-program > (shell-quote-argument Please try this patch instead: diff --git a/lisp/progmodes/project.el b/lisp/progmodes/project.el index ae9bf03571..b267185ab0 100644 --- a/lisp/progmodes/project.el +++ b/lisp/progmodes/project.el @@ -302,10 +302,9 @@ project--files-in-directory ;; expanded and not left for the shell command ;; to interpret. (localdir (file-name-unquote (file-local-name (expand-file-name dir)))) - (command (format "%s -H %s %s -type f %s -print0" + (dfn (directory-file-name localdir)) + (command (format "%s -H . %s -type f %s -print0" find-program - (shell-quote-argument - (directory-file-name localdir)) ; Bug#48471 (xref--find-ignores-arguments ignores localdir) (if files (concat (shell-quote-argument "(") @@ -324,8 +323,9 @@ project--files-in-directory (unless (zerop status) (error "File listing failed: %s" (buffer-string)))))))) (project--remote-file-names - (sort (split-string output "\0" t) - #'string<)))) + (mapcar (lambda (s) (concat dfn (substring s 1))) + (sort (split-string output "\0" t) + #'string<))))) (defun project--remote-file-names (local-files) "Return LOCAL-FILES as if they were on the system of `default-directory'. From unknown Sun Jun 22 08:05:13 2025 X-Loop: help-debbugs@gnu.org Subject: bug#50240: 28.0.50; incorrect handling of ignore files in project-files Resent-From: Omar Polo Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Mon, 30 Aug 2021 07:54:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 50240 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Dmitry Gutov Cc: 50240@debbugs.gnu.org Received: via spool by 50240-submit@debbugs.gnu.org id=B50240.16303099872783 (code B ref 50240); Mon, 30 Aug 2021 07:54:02 +0000 Received: (at 50240) by debbugs.gnu.org; 30 Aug 2021 07:53:07 +0000 Received: from localhost ([127.0.0.1]:58027 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mKc6N-0000ip-3Z for submit@debbugs.gnu.org; Mon, 30 Aug 2021 03:53:07 -0400 Received: from mail.omarpolo.com ([144.91.116.244]:59333) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mKc6L-0000iK-FD for 50240@debbugs.gnu.org; Mon, 30 Aug 2021 03:53:06 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=omarpolo.com; s=20200327; t=1630309978; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=QePqXevhJKKjKzcgd6mTXyOI87TQNEzjPnR2pSK7ld8=; b=KfQ8ittsUPJgm9QAKUyULSO3JD+gqHfF83JBsT0p7pMx0vovJ8KJbZEroOu4WQ+f7aR0/A F9g5KeghHWfU3LPdw0laheiQyod5sBV8apo+IdEncUh7l17DnjjiCmNsuMFjasBynWvCvC vg9jCEkIabjxaarIZx6r9vLasBBM3Fw= Received: from localhost (host-79-50-237-28.retail.telecomitalia.it [79.50.237.28]) by mail.omarpolo.com (OpenSMTPD) with ESMTPSA id 0ec1215b (TLSv1.3:TLS_AES_256_GCM_SHA384:256:NO); Mon, 30 Aug 2021 09:52:56 +0200 (CEST) Received: from venera (localhost [127.0.0.1]) by localhost (OpenSMTPD) with ESMTP id c6b3849e; Mon, 30 Aug 2021 09:52:53 +0200 (CEST) References: <87r1edpl4f.fsf@omarpolo.com> <87wno48w9d.fsf@omarpolo.com> <960e4fe3-4da6-fff6-0bde-799ad4e0265f@yandex.ru> User-agent: mu4e 1.6.5; emacs 28.0.50 From: Omar Polo Date: Mon, 30 Aug 2021 09:48:59 +0200 In-reply-to: <960e4fe3-4da6-fff6-0bde-799ad4e0265f@yandex.ru> Message-ID: <871r6bjrmy.fsf@omarpolo.com> MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: 0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Dmitry Gutov writes: > On 29.08.2021 11:30, Omar Polo wrote: > > [...] > >> Also, if one day in the future someone decides to remove the specific >> treatment of Git and Hg from project-files this issue will bite >> vc-git/hg users too. > > Unlikely: the special treatment is there foremost for performance. But > perhaps we'll get a faster universal method for listing files, who > knows. Indeed, it was only for the argument sake. > [...] > > Please try this patch instead: patch(1) failed to apply the diff, so I had to apply it by hand, but it works! Thanks! From unknown Sun Jun 22 08:05:13 2025 MIME-Version: 1.0 X-Mailer: MIME-tools 5.505 (Entity 5.505) X-Loop: help-debbugs@gnu.org From: help-debbugs@gnu.org (GNU bug Tracking System) To: Omar Polo Subject: bug#50240: closed (Re: bug#50240: 28.0.50; incorrect handling of ignore files in project-files) Message-ID: References: <87r1edpl4f.fsf@omarpolo.com> X-Gnu-PR-Message: they-closed 50240 X-Gnu-PR-Package: emacs Reply-To: 50240@debbugs.gnu.org Date: Mon, 06 Sep 2021 02:07:02 +0000 Content-Type: multipart/mixed; boundary="----------=_1630894022-28271-1" This is a multi-part message in MIME format... ------------=_1630894022-28271-1 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Your bug report #50240: 28.0.50; incorrect handling of ignore files in project-files which was filed against the emacs package, has been closed. The explanation is attached below, along with your original report. If you require more details, please reply to 50240@debbugs.gnu.org. --=20 50240: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=3D50240 GNU Bug Tracking System Contact help-debbugs@gnu.org with problems ------------=_1630894022-28271-1 Content-Type: message/rfc822 Content-Disposition: inline Content-Transfer-Encoding: 7bit Received: (at 50240-done) by debbugs.gnu.org; 6 Sep 2021 02:06:45 +0000 Received: from localhost ([127.0.0.1]:51239 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mN421-0007LX-0W for submit@debbugs.gnu.org; Sun, 05 Sep 2021 22:06:45 -0400 Received: from mail-wr1-f45.google.com ([209.85.221.45]:46812) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mN41z-0007LM-IC for 50240-done@debbugs.gnu.org; Sun, 05 Sep 2021 22:06:43 -0400 Received: by mail-wr1-f45.google.com with SMTP id x6so7394130wrv.13 for <50240-done@debbugs.gnu.org>; Sun, 05 Sep 2021 19:06:43 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=sender:subject:to:cc:references:from:message-id:date:user-agent :mime-version:in-reply-to:content-language:content-transfer-encoding; bh=7Z1ogrwSSsK9I3VAhTWAAZholf36DnOMtDujZineoRg=; b=fAK31zVkhGgJSMURkuGfv+19oZAPxST8uh+rxqRrhl04M3NbBmWn2tHpIucCI08QyG 4ykB/68xq+Gg2jBziOUlPgAy8tLI35XDe6Z24ScStyVX/q31pRmypOy2VAJ09nf7KXJQ 8YyTWuQ/Z40ynMropAFW5uQGOaWb1UHDN6JXfTlee5PtlVe5BkqyvK3gZMN3Vf5eKMrt xrcT4p53kTiHPRRj5PeIp+LTLZSLImFW7XBEMGmS8lwC1xaU25BeAtFG3pqOMANXMW19 F0LDmuBZfgaVBDTEJ6ugdWsxFlOMZs37RZXKfhmB5Q7u9Q2DXMKbQ7hf4fdmmvFUVSFo +PBg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:subject:to:cc:references:from:message-id :date:user-agent:mime-version:in-reply-to:content-language :content-transfer-encoding; bh=7Z1ogrwSSsK9I3VAhTWAAZholf36DnOMtDujZineoRg=; b=TT/YPtld0ws0UuGn4lmSwXUQr0vA93SE1qMJO6VBCXk8Wn1Mjc6PTpDjnkfH8u2ua4 4g0vYnOGjff05xwxJ5QH7Ktzz3UBW2BK/jfa6SODT2Dl+GReU/6v0aiTHw1xnjVMgDvR /dQwTtB5634trpI90Yvl4H7KrgcRe8noRx1RA/iVfPf/LiDDGfe4EEPJKdWM1UOZrk5H CykuCMAzx3W9tMBK5lVs9d9PyNFpu8pz7U3h73EVs+X2eJTBNN1WZu94P2Lw0OcDoFSU GW7I9hHdt8R0sEtCk/6zYFh+j3s4GMjFWoFcII7UZYkTdnkx3J3+NgMgg+hWctiHxr+E ELjg== X-Gm-Message-State: AOAM533rHS0/2QB12va8IAm0+/NnUqifSzqR4TjB/Nx+K1+d32O3rhCY 21JsuyWARxGZbH2FbnRPBP2XFN65bng= X-Google-Smtp-Source: ABdhPJxlMwrWDTfklT7CrrQiY6tSFb/D/bv2mlVHNewLBHnPWszMNfPq0UrvqY0mYRa6syPIQ6KXOA== X-Received: by 2002:adf:ff83:: with SMTP id j3mr1186602wrr.313.1630893997815; Sun, 05 Sep 2021 19:06:37 -0700 (PDT) Received: from [192.168.0.6] ([46.251.119.176]) by smtp.googlemail.com with ESMTPSA id q195sm6076609wme.37.2021.09.05.19.06.36 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Sun, 05 Sep 2021 19:06:37 -0700 (PDT) Subject: Re: bug#50240: 28.0.50; incorrect handling of ignore files in project-files To: Omar Polo References: <87r1edpl4f.fsf@omarpolo.com> <87wno48w9d.fsf@omarpolo.com> <960e4fe3-4da6-fff6-0bde-799ad4e0265f@yandex.ru> <871r6bjrmy.fsf@omarpolo.com> From: Dmitry Gutov Message-ID: Date: Mon, 6 Sep 2021 05:06:35 +0300 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.13.0 MIME-Version: 1.0 In-Reply-To: <871r6bjrmy.fsf@omarpolo.com> Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 7bit X-Spam-Score: 0.4 (/) X-Debbugs-Envelope-To: 50240-done Cc: 50240-done@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.6 (/) Version: 28.1 On 30.08.2021 10:48, Omar Polo wrote: >> [...] >> >> Please try this patch instead: > patch(1) failed to apply the diff, so I had to apply it by hand, but it > works! Thanks! Thanks for checking, I have pushed the fix to master as commit 71f8b55f46, together with some related changes. Let me know if you have any further problems. ------------=_1630894022-28271-1 Content-Type: message/rfc822 Content-Disposition: inline Content-Transfer-Encoding: 7bit Received: (at submit) by debbugs.gnu.org; 28 Aug 2021 16:52:51 +0000 Received: from localhost ([127.0.0.1]:54939 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mK1Za-0002N9-5k for submit@debbugs.gnu.org; Sat, 28 Aug 2021 12:52:51 -0400 Received: from lists.gnu.org ([209.51.188.17]:43718) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mK1ZX-0002N0-GZ for submit@debbugs.gnu.org; Sat, 28 Aug 2021 12:52:48 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:50824) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mK1ZW-00070i-7S for bug-gnu-emacs@gnu.org; Sat, 28 Aug 2021 12:52:46 -0400 Received: from mail.omarpolo.com ([144.91.116.244]:56809) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mK1ZR-0002ho-9R for bug-gnu-emacs@gnu.org; Sat, 28 Aug 2021 12:52:45 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=omarpolo.com; s=20200327; t=1630169553; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type; bh=hBGKxlKk8hbUyjrsC/cP5D5X6uSVp3H/pfKIqgoOAWA=; b=oGM8nupvCtbEXeuK3FbwrfXGf5qVcpGpjspbId0Zf8+ayOWICtZJHTIjhJ2QeCaLLBuTut gi/bL66LFjDNplgnD8ovxcboDfDvQymFCALWp2Mqob+fDaGecp+kEVyb/lIbMKoC3lxUNg 3N5STrfD0l+9KYSsYeYuiwE+OIQ98pw= Received: from localhost (host-79-25-236-96.retail.telecomitalia.it [79.25.236.96]) by mail.omarpolo.com (OpenSMTPD) with ESMTPSA id 2ee52f10 (TLSv1.3:TLS_AES_256_GCM_SHA384:256:NO) for ; Sat, 28 Aug 2021 18:52:33 +0200 (CEST) Received: from venera (localhost [127.0.0.1]) by localhost (OpenSMTPD) with ESMTP id e264b77c for ; Sat, 28 Aug 2021 18:52:32 +0200 (CEST) From: Omar Polo To: bug-gnu-emacs@gnu.org Subject: 28.0.50; incorrect handling of ignore files in project-files Date: Sat, 28 Aug 2021 18:52:32 +0200 Message-ID: <87r1edpl4f.fsf@omarpolo.com> MIME-Version: 1.0 Content-Type: text/plain Received-SPF: pass client-ip=144.91.116.244; envelope-from=op@omarpolo.com; helo=mail.omarpolo.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-Spam-Score: -1.4 (-) X-Debbugs-Envelope-To: submit X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -2.4 (--) Hello, I'm working on a custom VC backend and noticed something strange regarding the handling of ignore files in project-files: ignoring a file that has the same name of the project makes project-files return nil. To reproduce: 1. create a directory structure as follows: mkdir /tmp/foo touch /tmp/foo/{foo,bar} 2. define a trivial project: (cl-defmethod project-roots ((_ (eql foo))) '("/tmp/foo/")) (cl-defmethod project-ignores ((_ (eql foo)) _) '("foo")) 3. invoke project-files (project-files 'foo) ;; => nil This is because project--files-in-directory directory-file-name. The find command build is find -H /tmp/foo \( -path \*/foo \) -prune -o -type f -print0 and no files are found because are all pruned. If I edit project--files-in-directory to use file-name-as-directory, then the command becomes find -H /tmp/foo/ \( -path \*/foo \) -prune -o -type f -print0 # note the final slash! and project-files successfully returns the files (project-files 'foo) ;; => ("/tmp/foo/bar") >From what I see, project.el used to call file-name-as-directory, but was changed to directory-file-name due to bug#48471 (which I can't reproduce with OpenBSD find.) NB: This is can't be reproduced using a vc-git or vc-hg backed project because project-files treats those backend specially. Thanks, In GNU Emacs 28.0.50 (build 12, x86_64-unknown-openbsd7.0, X toolkit, cairo version 1.16.0, Xaw scroll bars) of 2021-08-23 built on venera Windowing system distributor 'The X.Org Foundation', version 11.0.12010000 System Description: OpenBSD venera 7.0 GENERIC.MP#194 amd64 Configured using: 'configure --prefix=/home/op/opt/emacs --with-x-toolkit=lucid CC=cc' Configured features: CAIRO DBUS FREETYPE GIF GLIB GNUTLS GSETTINGS HARFBUZZ JPEG JSON LCMS2 LIBOTF LIBXML2 M17N_FLT MODULES NOTIFY KQUEUE PDUMPER PNG RSVG THREADS TIFF TOOLKIT_SCROLL_BARS X11 XDBE XIM XPM LUCID ZLIB Important settings: value of $LANG: en_US.UTF-8 locale-coding-system: utf-8-unix Major mode: ELisp/l Minor modes in effect: semantic-minor-modes-format: ((:eval (if (or semantic-highlight-edits-mode semantic-show-unmatched-syntax-mode) S))) nameless-mode: t whitespace-mode: t smartparens-strict-mode: t smartparens-mode: t checkdoc-minor-mode: t flymake-mode: t auto-insert-mode: t org-roam-db-autosync-mode: t global-edit-server-edit-mode: t shell-dirtrack-mode: t eros-mode: t show-paren-mode: t pdf-occur-global-minor-mode: t winner-mode: t shackle-mode: t corfu-global-mode: t corfu-mode: t selectrum-mode: t marginalia-mode: t global-form-feed-mode: t form-feed-mode: t recentf-mode: t savehist-mode: t save-place-mode: t override-global-mode: t straight-use-package-mode: t straight-package-neutering-mode: t tooltip-mode: t global-eldoc-mode: t eldoc-mode: t electric-indent-mode: t mouse-wheel-mode: t prettify-symbols-mode: t tab-bar-mode: t file-name-shadow-mode: t global-font-lock-mode: t font-lock-mode: t blink-cursor-mode: t auto-composition-mode: t auto-encryption-mode: t auto-compression-mode: t line-number-mode: t auto-fill-function: do-auto-fill transient-mark-mode: t auto-save-visited-mode: t abbrev-mode: t hs-minor-mode: t Load-path shadows: ~/.emacs.d/lisp/sndio.el/sndio hides /home/op/.emacs.d/lisp/sndio /home/op/.emacs.d/straight/build/jsonrpc/jsonrpc hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/jsonrpc /home/op/.emacs.d/straight/build/flymake/flymake hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/progmodes/flymake /home/op/.emacs.d/straight/build/xref/xref hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/progmodes/xref /home/op/.emacs.d/straight/build/project/project hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/progmodes/project /home/op/.emacs.d/straight/build/org/ox-latex hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/org/ox-latex /home/op/.emacs.d/straight/build/org/ox-icalendar hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/org/ox-icalendar /home/op/.emacs.d/straight/build/org/org-inlinetask hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/org/org-inlinetask /home/op/.emacs.d/straight/build/org/org-attach-git hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/org/org-attach-git /home/op/.emacs.d/straight/build/org/org-attach hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/org/org-attach /home/op/.emacs.d/straight/build/org/ol-gnus hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/org/ol-gnus /home/op/.emacs.d/straight/build/org/ol-eww hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/org/ol-eww /home/op/.emacs.d/straight/build/org/ol-docview hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/org/ol-docview /home/op/.emacs.d/straight/build/org/ob-processing hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/org/ob-processing /home/op/.emacs.d/straight/build/org/ob-matlab hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/org/ob-matlab /home/op/.emacs.d/straight/build/org/ob-gnuplot hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/org/ob-gnuplot /home/op/.emacs.d/straight/build/org/ob-eshell hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/org/ob-eshell /home/op/.emacs.d/straight/build/org/ob-dot hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/org/ob-dot /home/op/.emacs.d/straight/build/org/ob-asymptote hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/org/ob-asymptote /home/op/.emacs.d/straight/build/org/ox-org hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/org/ox-org /home/op/.emacs.d/straight/build/org/ox-publish hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/org/ox-publish /home/op/.emacs.d/straight/build/org/ox-odt hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/org/ox-odt /home/op/.emacs.d/straight/build/org/ox-texinfo hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/org/ox-texinfo /home/op/.emacs.d/straight/build/org/ox hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/org/ox /home/op/.emacs.d/straight/build/org/ox-md hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/org/ox-md /home/op/.emacs.d/straight/build/org/ox-man hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/org/ox-man /home/op/.emacs.d/straight/build/org/org hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/org/org /home/op/.emacs.d/straight/build/org/ox-html hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/org/ox-html /home/op/.emacs.d/straight/build/org/ox-beamer hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/org/ox-beamer /home/op/.emacs.d/straight/build/org/ox-ascii hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/org/ox-ascii /home/op/.emacs.d/straight/build/org/org-timer hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/org/org-timer /home/op/.emacs.d/straight/build/org/org-tempo hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/org/org-tempo /home/op/.emacs.d/straight/build/org/org-plot hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/org/org-plot /home/op/.emacs.d/straight/build/org/org-lint hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/org/org-lint /home/op/.emacs.d/straight/build/org/org-mouse hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/org/org-mouse /home/op/.emacs.d/straight/build/org/org-mobile hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/org/org-mobile /home/op/.emacs.d/straight/build/org/org-protocol hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/org/org-protocol /home/op/.emacs.d/straight/build/org/org-refile hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/org/org-refile /home/op/.emacs.d/straight/build/org/org-table hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/org/org-table /home/op/.emacs.d/straight/build/org/org-src hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/org/org-src /home/op/.emacs.d/straight/build/org/org-pcomplete hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/org/org-pcomplete /home/op/.emacs.d/straight/build/org/org-num hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/org/org-num /home/op/.emacs.d/straight/build/org/org-list hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/org/org-list /home/op/.emacs.d/straight/build/org/org-macs hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/org/org-macs /home/op/.emacs.d/straight/build/org/org-macro hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/org/org-macro /home/op/.emacs.d/straight/build/org/org-habit hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/org/org-habit /home/op/.emacs.d/straight/build/org/org-element hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/org/org-element /home/op/.emacs.d/straight/build/org/org-keys hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/org/org-keys /home/op/.emacs.d/straight/build/org/org-goto hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/org/org-goto /home/op/.emacs.d/straight/build/org/org-feed hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/org/org-feed /home/op/.emacs.d/straight/build/org/org-datetree hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/org/org-datetree /home/op/.emacs.d/straight/build/org/org-ctags hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/org/org-ctags /home/op/.emacs.d/straight/build/org/org-colview hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/org/org-colview /home/op/.emacs.d/straight/build/org/org-footnote hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/org/org-footnote /home/op/.emacs.d/straight/build/org/org-faces hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/org/org-faces /home/op/.emacs.d/straight/build/org/org-capture hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/org/org-capture /home/op/.emacs.d/straight/build/org/org-entities hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/org/org-entities /home/op/.emacs.d/straight/build/org/org-clock hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/org/org-clock /home/op/.emacs.d/straight/build/org/org-duration hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/org/org-duration /home/op/.emacs.d/straight/build/org/org-crypt hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/org/org-crypt /home/op/.emacs.d/straight/build/org/org-compat hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/org/org-compat /home/op/.emacs.d/straight/build/org/org-id hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/org/org-id /home/op/.emacs.d/straight/build/org/org-agenda hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/org/org-agenda /home/op/.emacs.d/straight/build/org/org-archive hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/org/org-archive /home/op/.emacs.d/straight/build/org/org-indent hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/org/org-indent /home/op/.emacs.d/straight/build/org/ob-fortran hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/org/ob-fortran /home/op/.emacs.d/straight/build/org/ol hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/org/ol /home/op/.emacs.d/straight/build/org/ol-w3m hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/org/ol-w3m /home/op/.emacs.d/straight/build/org/ol-mhe hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/org/ol-mhe /home/op/.emacs.d/straight/build/org/ol-rmail hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/org/ol-rmail /home/op/.emacs.d/straight/build/org/ol-bibtex hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/org/ol-bibtex /home/op/.emacs.d/straight/build/org/ol-irc hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/org/ol-irc /home/op/.emacs.d/straight/build/org/ol-info hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/org/ol-info /home/op/.emacs.d/straight/build/org/ol-bbdb hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/org/ol-bbdb /home/op/.emacs.d/straight/build/org/ol-eshell hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/org/ol-eshell /home/op/.emacs.d/straight/build/org/ob-vala hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/org/ob-vala /home/op/.emacs.d/straight/build/org/ob-tangle hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/org/ob-tangle /home/op/.emacs.d/straight/build/org/ob-shell hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/org/ob-shell /home/op/.emacs.d/straight/build/org/ob-sqlite hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/org/ob-sqlite /home/op/.emacs.d/straight/build/org/ob-stan hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/org/ob-stan /home/op/.emacs.d/straight/build/org/ob hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/org/ob /home/op/.emacs.d/straight/build/org/ob-table hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/org/ob-table /home/op/.emacs.d/straight/build/org/ob-python hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/org/ob-python /home/op/.emacs.d/straight/build/org/ob-sql hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/org/ob-sql /home/op/.emacs.d/straight/build/org/ob-shen hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/org/ob-shen /home/op/.emacs.d/straight/build/org/ob-sass hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/org/ob-sass /home/op/.emacs.d/straight/build/org/ob-scheme hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/org/ob-scheme /home/op/.emacs.d/straight/build/org/ob-plantuml hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/org/ob-plantuml /home/op/.emacs.d/straight/build/org/ob-sed hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/org/ob-sed /home/op/.emacs.d/straight/build/org/ob-screen hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/org/ob-screen /home/op/.emacs.d/straight/build/org/ob-ruby hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/org/ob-ruby /home/op/.emacs.d/straight/build/org/ob-ref hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/org/ob-ref /home/op/.emacs.d/straight/build/org/ob-C hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/org/ob-C /home/op/.emacs.d/straight/build/org/ob-org hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/org/ob-org /home/op/.emacs.d/straight/build/org/ob-picolisp hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/org/ob-picolisp /home/op/.emacs.d/straight/build/org/ob-ocaml hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/org/ob-ocaml /home/op/.emacs.d/straight/build/org/ob-octave hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/org/ob-octave /home/op/.emacs.d/straight/build/org/ob-perl hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/org/ob-perl /home/op/.emacs.d/straight/build/org/ob-lob hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/org/ob-lob /home/op/.emacs.d/straight/build/org/ob-maxima hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/org/ob-maxima /home/op/.emacs.d/straight/build/org/ob-lua hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/org/ob-lua /home/op/.emacs.d/straight/build/org/ob-makefile hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/org/ob-makefile /home/op/.emacs.d/straight/build/org/ob-ledger hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/org/ob-ledger /home/op/.emacs.d/straight/build/org/ob-lisp hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/org/ob-lisp /home/op/.emacs.d/straight/build/org/ob-io hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/org/ob-io /home/op/.emacs.d/straight/build/org/ob-lilypond hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/org/ob-lilypond /home/op/.emacs.d/straight/build/org/ob-latex hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/org/ob-latex /home/op/.emacs.d/straight/build/org/ob-js hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/org/ob-js /home/op/.emacs.d/straight/build/org/ob-java hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/org/ob-java /home/op/.emacs.d/straight/build/org/ob-hledger hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/org/ob-hledger /home/op/.emacs.d/straight/build/org/ob-forth hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/org/ob-forth /home/op/.emacs.d/straight/build/org/ob-groovy hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/org/ob-groovy /home/op/.emacs.d/straight/build/org/ob-haskell hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/org/ob-haskell /home/op/.emacs.d/straight/build/org/ob-ebnf hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/org/ob-ebnf /home/op/.emacs.d/straight/build/org/ob-exp hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/org/ob-exp /home/op/.emacs.d/straight/build/org/ob-core hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/org/ob-core /home/op/.emacs.d/straight/build/org/ob-eval hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/org/ob-eval /home/op/.emacs.d/straight/build/org/ob-css hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/org/ob-css /home/op/.emacs.d/straight/build/org/ob-emacs-lisp hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/org/ob-emacs-lisp /home/op/.emacs.d/straight/build/org/ob-ditaa hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/org/ob-ditaa /home/op/.emacs.d/straight/build/org/ob-mscgen hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/org/ob-mscgen /home/op/.emacs.d/straight/build/org/ob-comint hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/org/ob-comint /home/op/.emacs.d/straight/build/org/ob-coq hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/org/ob-coq /home/op/.emacs.d/straight/build/org/ob-calc hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/org/ob-calc /home/op/.emacs.d/straight/build/org/ob-abc hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/org/ob-abc /home/op/.emacs.d/straight/build/org/ob-clojure hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/org/ob-clojure /home/op/.emacs.d/straight/build/org/ob-awk hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/org/ob-awk /home/op/.emacs.d/straight/build/org/ob-R hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/org/ob-R /home/op/.emacs.d/straight/build/org/org-loaddefs hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/org/org-loaddefs /home/op/.emacs.d/straight/build/org/ob-J hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/org/ob-J /home/op/.emacs.d/straight/build/org/org-version hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/org/org-version /home/op/.emacs.d/straight/build/org/org-install hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/org/org-install /home/op/.emacs.d/straight/build/soap-client/soap-client hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/net/soap-client /home/op/.emacs.d/straight/build/soap-client/soap-inspect hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/net/soap-inspect /home/op/.emacs.d/straight/build/let-alist/let-alist hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/emacs-lisp/let-alist /home/op/.emacs.d/straight/build/eldoc/eldoc hides /home/op/opt/emacs/share/emacs/28.0.50/lisp/emacs-lisp/eldoc Features: (shadow guess-language flyspell ispell emacsbug gnus-async gnus-bcklg gnus-agent gnus-srvr gnus-score score-mode nnvirtual nntp gnus-ml gnus-msg disp-table nndoc gnus-cache gnus-dup gnutls network-stream url-cache debbugs-gnu debbugs soap-client rng-xsd xsd-regexp debbugs-autoloads soap-client-autoloads autoload consult-imenu shortdoc debug edebug backtrace etags fileloop reposition pulse color help-fns radix-tree consult-xref misearch multi-isearch cl-print ielm smerge-mode diff flymake-cc cap-words superword subword dired-aux xref find-dired vc-mtn vc-hg vc-git diff-mode vc-bzr vc-src vc-sccs vc-svn vc-cvs vc-rcs vc-got vc-dir log-edit pcvs-util add-log vc-annotate vc vc-dispatcher cursor-sensor project mm-archive qp sort gnus-cite mail-extr nameless whitespace hideshow smartparens-config smartparens-org smartparens-text smartparens-python smartparens-c smartparens checkdoc flymake-proc flymake warnings ol-eww ol-rmail ol-mhe ol-irc ol-info ol-gnus nnselect gnus-search eieio-opt speedbar ezimage dframe ol-docview ol-bibtex ol-bbdb ol-w3m oc-basic bibtex oc loadhist autoinsert org-roam-migrate org-roam-mode inline org-roam-capture org-roam-node org-roam-db org-roam-utils org-roam pcase org-roam-compat org-capture org-id emacsql-sqlite url-http url-auth url-gw nsm emacsql emacsql-compiler magit-section f dash edit-server edit-server-autoloads elfeed-autoloads telega-autoloads rainbow-identifiers-autoloads visual-fill-column-autoloads toxe toxe-chat ewoc nov-autoloads esxml-autoloads kv-autoloads pq pq-core elpher-autoloads eww xdg url-queue mm-url emms-autoloads pass-autoloads password-store-otp-autoloads password-store-autoloads with-editor-autoloads mu4e mu4e-org mu4e-main mu4e-view mu4e-view-gnus gnus-art mm-uu mml2015 mm-view mml-smime smime dig gnus-sum gnus-group gnus-undo gnus-start gnus-dbus dbus gnus-cloud nnimap nnmail mail-source utf7 netrc nnoo gnus-spec gnus-int gnus-range gnus-win gnus nnheader mu4e-view-common mu4e-headers mu4e-compose mu4e-context mu4e-draft mu4e-actions ido rfc2368 smtpmail sendmail mu4e-mark mu4e-proc mu4e-utils doc-view mu4e-lists mu4e-message shr kinsoku svg xml dom flow-fill mule-util hl-line mu4e-vars message rmc puny rfc822 mml mml-sec epa derived epg epg-config gnus-util rmail rmail-loaddefs mm-decode mm-bodies mm-encode mailabbrev mail-utils gmm-utils mailheader mu4e-meta keycast keycast-autoloads literate-calc-mode s calc calc-loaddefs calc-macs literate-calc-mode-autoloads vterm-autoloads sam markdown-mode-autoloads ox-gemini ox-odt rng-loc rng-uri rng-parse rng-match rng-dt rng-util rng-pttrn nxml-parse nxml-ns nxml-enc xmltok nxml-util ox-latex ox-icalendar org-agenda org-refile ox-html table ox-ascii ox-publish ox org-element org-tree-slide org-timer org-clock org-tree-slide-autoloads org-roam-autoloads magit-section-autoloads emacsql-sqlite-autoloads emacsql-autoloads f-autoloads ob-gnuplot ob-python python tramp-sh tramp tramp-loaddefs trampver tramp-integration files-x tramp-compat parse-time iso8601 ls-lisp ob-sqlite ob-shell shell ob-lisp ob-sql ob-R ob-C cc-mode cc-fonts cc-guess cc-menus cc-cmds cc-styles cc-align cc-engine cc-vars cc-defs org-protocol org ob ob-tangle ob-ref ob-lob ob-table org-macro org-footnote org-src ob-comint org-pcomplete pcomplete org-list org-faces org-entities time-date noutline outline org-version ob-emacs-lisp org-table org-keys org-loaddefs cal-menu calendar cal-loaddefs avl-tree generator ol ob-exp ob-core org-compat ob-eval org-macs ox-gemini-autoloads gemini-mode-autoloads toml-mode-autoloads yaml-mode-autoloads gdscript-mode-autoloads lua-mode-autoloads sh-script smie executable perl-mode go-mode-autoloads web-mode-autoloads es-mode-autoloads request-autoloads s-autoloads spark-autoloads geiser geiser-autoloads cider-autoloads sesman-autoloads spinner-autoloads queue-autoloads pkg-info-autoloads epl-autoloads parseedn-autoloads parseclj-autoloads a-autoloads clojure-mode-autoloads sly-autoloads package-lint rx finder lisp-mnt mail-parse rfc2231 rfc2047 rfc2045 mm-util ietf-drums mail-prsvr package-lint-autoloads nameless-autoloads eros eros-autoloads eglot-autoloads project-autoloads xref-autoloads flymake-autoloads eldoc-autoloads jsonrpc-autoloads paren iedit-autoloads pdf-occur ibuf-ext ibuffer ibuffer-loaddefs tablist tablist-filter semantic/wisent/comp semantic/wisent semantic/wisent/wisent semantic/util-modes semantic/util semantic semantic/tag semantic/lex semantic/fw mode-local find-func cedet pdf-isearch let-alist pdf-misc imenu pdf-tools package browse-url url url-proxy url-privacy url-expand url-methods url-history url-cookie url-domsuf url-util mailcap url-handlers url-parse auth-source eieio eieio-core eieio-loaddefs json map url-vars compile comint ansi-color cus-edit cus-load pdf-view password-cache jka-compr pdf-cache pdf-info tq pdf-util advice format-spec pdf-macs image-mode dired-x dired dired-loaddefs exif pdf-tools-autoloads let-alist-autoloads tablist-autoloads my-abbrev olivetti-autoloads typo-autoloads guess-language-autoloads smartparens-autoloads dash-autoloads loccur-autoloads ace-window-autoloads avy-autoloads transpose-frame-autoloads winner shackle trace shackle-autoloads corfu corfu-autoloads embark-autoloads consult-selectrum selectrum minibuf-eldef crm selectrum-autoloads affe server consult bookmark text-property-search pp affe-autoloads consult-autoloads orderless orderless-autoloads marginalia marginalia-autoloads form-feed form-feed-autoloads thingatpt recentf tree-widget wid-edit hydra ring lv hydra-autoloads lv-autoloads finder-inf savehist saveplace valign-autoloads htmlize htmlize-autoloads edmacro kmacro use-package-bind-key bind-key easy-mmode use-package-core use-package-autoloads bind-key-autoloads straight-autoloads info cl-seq cl-extra help-mode seq byte-opt straight subr-x cl-macs gv bytecomp byte-compile cconv cl-loaddefs cl-lib minimal-light-theme my-modeline iso-transl tooltip eldoc electric uniquify ediff-hook vc-hooks lisp-float-type mwheel term/x-win x-win term/common-win x-dnd tool-bar dnd fontset image regexp-opt fringe tabulated-list replace newcomment text-mode elisp-mode lisp-mode prog-mode register page tab-bar menu-bar rfn-eshadow isearch easymenu timer select scroll-bar mouse jit-lock font-lock syntax font-core term/tty-colors frame minibuffer cl-generic cham georgian utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao korean japanese eucjp-ms cp51932 hebrew greek romanian slovak czech european ethiopic indian cyrillic chinese composite charscript charprop case-table epa-hook jka-cmpr-hook help simple abbrev obarray cl-preloaded nadvice button loaddefs faces cus-face macroexp files window text-properties overlay sha1 md5 base64 format env code-pages mule custom widget hashtable-print-readable backquote threads dbusbind kqueue lcms2 dynamic-setting system-font-setting font-render-setting cairo x-toolkit x multi-tty make-network-process emacs) Memory information: ((conses 16 895495 136128) (symbols 48 63645 8) (strings 32 224778 41016) (string-bytes 1 7913312) (vectors 16 106677) (vector-slots 8 2140779 96967) (floats 8 3555 1005) (intervals 56 21195 2565) (buffers 992 58)) -- /Omar Polo ------------=_1630894022-28271-1--