GNU bug report logs - #59722
30.0.50; project-find-regexp searches project-ignored files

Previous Next

Package: emacs;

Reported by: Rudolf Adamkovič <salutis <at> me.com>

Date: Wed, 30 Nov 2022 14:36:02 UTC

Severity: normal

Found in version 30.0.50

To reply to this bug, email your comments to 59722 AT debbugs.gnu.org.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to bug-gnu-emacs <at> gnu.org:
bug#59722; Package emacs. (Wed, 30 Nov 2022 14:36:02 GMT) Full text and rfc822 format available.

Acknowledgement sent to Rudolf Adamkovič <salutis <at> me.com>:
New bug report received and forwarded. Copy sent to bug-gnu-emacs <at> gnu.org. (Wed, 30 Nov 2022 14:36:02 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Rudolf Adamkovič <salutis <at> me.com>
To: bug-gnu-emacs <at> gnu.org
Subject: 30.0.50; project-find-regexp searches project-ignored files
Date: Wed, 30 Nov 2022 15:35:42 +0100
I have the following `project.el' configuration:

  (setq xref-search-program 'ripgrep)

and the following `.dir-locals.el' file in a project:

  ((nil . ((project-ignores . ("apps/**/*.scm")))))

As expected, e.g. `project-find-file' ignores all `.scm' files in the
`apps' subdirectory of the project, however `project-find-regexp' does
not ignore them.  TL;DR,

Expected:

  `project-find-regexp' honors `project-ignores'

Rudy


In GNU Emacs 30.0.50 (build 2, aarch64-apple-darwin22.1.0, NS
 appkit-2299.00 Version 13.0.1 (Build 22A400)) of 2022-11-30 built on
 Rudolfs-MacBook-Air.local
Repository revision: 7939184f8e0370e7a3397d492812c6d202c2a193
Repository branch: master
Windowing system distributor 'Apple', version 10.3.2299
System Description:  macOS 13.0.1

Configured using:
 'configure --with-json --with-tree-sitter'

Configured features:
ACL GLIB GNUTLS JSON LCMS2 LIBXML2 MODULES NOTIFY KQUEUE NS PDUMPER PNG
RSVG SQLITE3 THREADS TOOLKIT_SCROLL_BARS TREE_SITTER WEBP XIM ZLIB

Important settings:
  value of $LC_ALL: en_US.UTF-8
  locale-coding-system: utf-8-unix

Major mode: Org

Minor modes in effect:
  TeX-PDF-mode: t
  flyspell-mode: t
  flimenu-global-mode: t
  flimenu-mode: t
  global-hl-todo-mode: t
  shell-dirtrack-mode: t
  sly-symbol-completion-mode: t
  whitespace-mode: t
  display-fill-column-indicator-mode: t
  display-line-numbers-mode: t
  savehist-mode: t
  delete-selection-mode: t
  global-goto-address-mode: t
  goto-address-mode: t
  global-subword-mode: t
  subword-mode: t
  save-place-mode: t
  global-auto-revert-mode: t
  tooltip-mode: t
  global-eldoc-mode: t
  show-paren-mode: t
  electric-indent-mode: t
  mouse-wheel-mode: t
  menu-bar-mode: t
  file-name-shadow-mode: t
  context-menu-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  blink-cursor-mode: t
  size-indication-mode: t
  column-number-mode: t
  line-number-mode: t
  transient-mark-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t

Load-path shadows:
/Users/salutis/.emacs.d/elpa/transient-20221127.2242/transient hides /Users/salutis/src/emacs/nextstep/Emacs.app/Contents/Resources/lisp/transient
~/src/org-mode/lisp/ob-exp hides /Users/salutis/src/emacs/nextstep/Emacs.app/Contents/Resources/lisp/org/ob-exp
~/src/org-mode/lisp/ob-emacs-lisp hides /Users/salutis/src/emacs/nextstep/Emacs.app/Contents/Resources/lisp/org/ob-emacs-lisp
~/src/org-mode/lisp/oc hides /Users/salutis/src/emacs/nextstep/Emacs.app/Contents/Resources/lisp/org/oc
~/src/org-mode/lisp/ob-css hides /Users/salutis/src/emacs/nextstep/Emacs.app/Contents/Resources/lisp/org/ob-css
~/src/org-mode/lisp/ob-lob hides /Users/salutis/src/emacs/nextstep/Emacs.app/Contents/Resources/lisp/org/ob-lob
~/src/org-mode/lisp/ol-irc hides /Users/salutis/src/emacs/nextstep/Emacs.app/Contents/Resources/lisp/org/ol-irc
~/src/org-mode/lisp/ob-forth hides /Users/salutis/src/emacs/nextstep/Emacs.app/Contents/Resources/lisp/org/ob-forth
~/src/org-mode/lisp/org-macs hides /Users/salutis/src/emacs/nextstep/Emacs.app/Contents/Resources/lisp/org/org-macs
~/src/org-mode/lisp/ob hides /Users/salutis/src/emacs/nextstep/Emacs.app/Contents/Resources/lisp/org/ob
~/src/org-mode/lisp/org-version hides /Users/salutis/src/emacs/nextstep/Emacs.app/Contents/Resources/lisp/org/org-version
~/src/org-mode/lisp/ob-scheme hides /Users/salutis/src/emacs/nextstep/Emacs.app/Contents/Resources/lisp/org/ob-scheme
~/src/org-mode/lisp/ox hides /Users/salutis/src/emacs/nextstep/Emacs.app/Contents/Resources/lisp/org/ox
~/src/org-mode/lisp/ob-C hides /Users/salutis/src/emacs/nextstep/Emacs.app/Contents/Resources/lisp/org/ob-C
~/src/org-mode/lisp/org-capture hides /Users/salutis/src/emacs/nextstep/Emacs.app/Contents/Resources/lisp/org/org-capture
~/src/org-mode/lisp/ob-ref hides /Users/salutis/src/emacs/nextstep/Emacs.app/Contents/Resources/lisp/org/ob-ref
~/src/org-mode/lisp/ob-clojure hides /Users/salutis/src/emacs/nextstep/Emacs.app/Contents/Resources/lisp/org/ob-clojure
~/src/org-mode/lisp/org-mouse hides /Users/salutis/src/emacs/nextstep/Emacs.app/Contents/Resources/lisp/org/org-mouse
~/src/org-mode/lisp/org-ctags hides /Users/salutis/src/emacs/nextstep/Emacs.app/Contents/Resources/lisp/org/org-ctags
~/src/org-mode/lisp/org-entities hides /Users/salutis/src/emacs/nextstep/Emacs.app/Contents/Resources/lisp/org/org-entities
~/src/org-mode/lisp/org-archive hides /Users/salutis/src/emacs/nextstep/Emacs.app/Contents/Resources/lisp/org/org-archive
~/src/org-mode/lisp/ob-screen hides /Users/salutis/src/emacs/nextstep/Emacs.app/Contents/Resources/lisp/org/ob-screen
~/src/org-mode/lisp/ol-bibtex hides /Users/salutis/src/emacs/nextstep/Emacs.app/Contents/Resources/lisp/org/ol-bibtex
~/src/org-mode/lisp/ob-haskell hides /Users/salutis/src/emacs/nextstep/Emacs.app/Contents/Resources/lisp/org/ob-haskell
~/src/org-mode/lisp/org-loaddefs hides /Users/salutis/src/emacs/nextstep/Emacs.app/Contents/Resources/lisp/org/org-loaddefs
~/src/org-mode/lisp/org-table hides /Users/salutis/src/emacs/nextstep/Emacs.app/Contents/Resources/lisp/org/org-table
~/src/org-mode/lisp/ol-eww hides /Users/salutis/src/emacs/nextstep/Emacs.app/Contents/Resources/lisp/org/ol-eww
~/src/org-mode/lisp/ol-man hides /Users/salutis/src/emacs/nextstep/Emacs.app/Contents/Resources/lisp/org/ol-man
~/src/org-mode/lisp/ox-org hides /Users/salutis/src/emacs/nextstep/Emacs.app/Contents/Resources/lisp/org/ox-org
~/src/org-mode/lisp/org-num hides /Users/salutis/src/emacs/nextstep/Emacs.app/Contents/Resources/lisp/org/org-num
~/src/org-mode/lisp/org-plot hides /Users/salutis/src/emacs/nextstep/Emacs.app/Contents/Resources/lisp/org/org-plot
~/src/org-mode/lisp/ol-rmail hides /Users/salutis/src/emacs/nextstep/Emacs.app/Contents/Resources/lisp/org/ol-rmail
~/src/org-mode/lisp/ob-awk hides /Users/salutis/src/emacs/nextstep/Emacs.app/Contents/Resources/lisp/org/ob-awk
~/src/org-mode/lisp/ob-groovy hides /Users/salutis/src/emacs/nextstep/Emacs.app/Contents/Resources/lisp/org/ob-groovy
~/src/org-mode/lisp/ob-octave hides /Users/salutis/src/emacs/nextstep/Emacs.app/Contents/Resources/lisp/org/ob-octave
~/src/org-mode/lisp/org-faces hides /Users/salutis/src/emacs/nextstep/Emacs.app/Contents/Resources/lisp/org/org-faces
~/src/org-mode/lisp/oc-biblatex hides /Users/salutis/src/emacs/nextstep/Emacs.app/Contents/Resources/lisp/org/oc-biblatex
~/src/org-mode/lisp/org-colview hides /Users/salutis/src/emacs/nextstep/Emacs.app/Contents/Resources/lisp/org/org-colview
~/src/org-mode/lisp/ob-R hides /Users/salutis/src/emacs/nextstep/Emacs.app/Contents/Resources/lisp/org/ob-R
~/src/org-mode/lisp/org-refile hides /Users/salutis/src/emacs/nextstep/Emacs.app/Contents/Resources/lisp/org/org-refile
~/src/org-mode/lisp/org-timer hides /Users/salutis/src/emacs/nextstep/Emacs.app/Contents/Resources/lisp/org/org-timer
~/src/org-mode/lisp/org-mobile hides /Users/salutis/src/emacs/nextstep/Emacs.app/Contents/Resources/lisp/org/org-mobile
~/src/org-mode/lisp/ob-fortran hides /Users/salutis/src/emacs/nextstep/Emacs.app/Contents/Resources/lisp/org/ob-fortran
~/src/org-mode/lisp/ob-shell hides /Users/salutis/src/emacs/nextstep/Emacs.app/Contents/Resources/lisp/org/ob-shell
~/src/org-mode/lisp/ob-perl hides /Users/salutis/src/emacs/nextstep/Emacs.app/Contents/Resources/lisp/org/ob-perl
~/src/org-mode/lisp/ob-sqlite hides /Users/salutis/src/emacs/nextstep/Emacs.app/Contents/Resources/lisp/org/ob-sqlite
~/src/org-mode/lisp/oc-basic hides /Users/salutis/src/emacs/nextstep/Emacs.app/Contents/Resources/lisp/org/oc-basic
~/src/org-mode/lisp/ob-sed hides /Users/salutis/src/emacs/nextstep/Emacs.app/Contents/Resources/lisp/org/ob-sed
~/src/org-mode/lisp/org-list hides /Users/salutis/src/emacs/nextstep/Emacs.app/Contents/Resources/lisp/org/org-list
~/src/org-mode/lisp/ob-ruby hides /Users/salutis/src/emacs/nextstep/Emacs.app/Contents/Resources/lisp/org/ob-ruby
~/src/org-mode/lisp/ob-eval hides /Users/salutis/src/emacs/nextstep/Emacs.app/Contents/Resources/lisp/org/ob-eval
~/src/org-mode/lisp/org-habit hides /Users/salutis/src/emacs/nextstep/Emacs.app/Contents/Resources/lisp/org/org-habit
~/src/org-mode/lisp/org-clock hides /Users/salutis/src/emacs/nextstep/Emacs.app/Contents/Resources/lisp/org/org-clock
~/src/org-mode/lisp/org-goto hides /Users/salutis/src/emacs/nextstep/Emacs.app/Contents/Resources/lisp/org/org-goto
~/src/org-mode/lisp/ox-html hides /Users/salutis/src/emacs/nextstep/Emacs.app/Contents/Resources/lisp/org/ox-html
~/src/org-mode/lisp/org-src hides /Users/salutis/src/emacs/nextstep/Emacs.app/Contents/Resources/lisp/org/org-src
~/src/org-mode/lisp/ob-lisp hides /Users/salutis/src/emacs/nextstep/Emacs.app/Contents/Resources/lisp/org/ob-lisp
~/src/org-mode/lisp/ol-eshell hides /Users/salutis/src/emacs/nextstep/Emacs.app/Contents/Resources/lisp/org/ol-eshell
~/src/org-mode/lisp/ob-ditaa hides /Users/salutis/src/emacs/nextstep/Emacs.app/Contents/Resources/lisp/org/ob-ditaa
~/src/org-mode/lisp/org-pcomplete hides /Users/salutis/src/emacs/nextstep/Emacs.app/Contents/Resources/lisp/org/org-pcomplete
~/src/org-mode/lisp/org-lint hides /Users/salutis/src/emacs/nextstep/Emacs.app/Contents/Resources/lisp/org/org-lint
~/src/org-mode/lisp/ox-latex hides /Users/salutis/src/emacs/nextstep/Emacs.app/Contents/Resources/lisp/org/ox-latex
~/src/org-mode/lisp/ob-sass hides /Users/salutis/src/emacs/nextstep/Emacs.app/Contents/Resources/lisp/org/ob-sass
~/src/org-mode/lisp/ob-tangle hides /Users/salutis/src/emacs/nextstep/Emacs.app/Contents/Resources/lisp/org/ob-tangle
~/src/org-mode/lisp/ob-calc hides /Users/salutis/src/emacs/nextstep/Emacs.app/Contents/Resources/lisp/org/ob-calc
~/src/org-mode/lisp/ob-java hides /Users/salutis/src/emacs/nextstep/Emacs.app/Contents/Resources/lisp/org/ob-java
~/src/org-mode/lisp/ox-icalendar hides /Users/salutis/src/emacs/nextstep/Emacs.app/Contents/Resources/lisp/org/ox-icalendar
~/src/org-mode/lisp/ol-mhe hides /Users/salutis/src/emacs/nextstep/Emacs.app/Contents/Resources/lisp/org/ol-mhe
~/src/org-mode/lisp/org-attach-git hides /Users/salutis/src/emacs/nextstep/Emacs.app/Contents/Resources/lisp/org/org-attach-git
~/src/org-mode/lisp/ox-md hides /Users/salutis/src/emacs/nextstep/Emacs.app/Contents/Resources/lisp/org/ox-md
~/src/org-mode/lisp/ox-beamer hides /Users/salutis/src/emacs/nextstep/Emacs.app/Contents/Resources/lisp/org/ox-beamer
~/src/org-mode/lisp/org-element hides /Users/salutis/src/emacs/nextstep/Emacs.app/Contents/Resources/lisp/org/org-element
~/src/org-mode/lisp/oc-natbib hides /Users/salutis/src/emacs/nextstep/Emacs.app/Contents/Resources/lisp/org/oc-natbib
~/src/org-mode/lisp/org-protocol hides /Users/salutis/src/emacs/nextstep/Emacs.app/Contents/Resources/lisp/org/org-protocol
~/src/org-mode/lisp/ob-gnuplot hides /Users/salutis/src/emacs/nextstep/Emacs.app/Contents/Resources/lisp/org/ob-gnuplot
~/src/org-mode/lisp/org-tempo hides /Users/salutis/src/emacs/nextstep/Emacs.app/Contents/Resources/lisp/org/org-tempo
~/src/org-mode/lisp/ob-latex hides /Users/salutis/src/emacs/nextstep/Emacs.app/Contents/Resources/lisp/org/ob-latex
~/src/org-mode/lisp/ol-w3m hides /Users/salutis/src/emacs/nextstep/Emacs.app/Contents/Resources/lisp/org/ol-w3m
~/src/org-mode/lisp/org-id hides /Users/salutis/src/emacs/nextstep/Emacs.app/Contents/Resources/lisp/org/org-id
~/src/org-mode/lisp/ox-man hides /Users/salutis/src/emacs/nextstep/Emacs.app/Contents/Resources/lisp/org/ox-man
~/src/org-mode/lisp/ol-doi hides /Users/salutis/src/emacs/nextstep/Emacs.app/Contents/Resources/lisp/org/ol-doi
~/src/org-mode/lisp/org-feed hides /Users/salutis/src/emacs/nextstep/Emacs.app/Contents/Resources/lisp/org/org-feed
~/src/org-mode/lisp/ob-julia hides /Users/salutis/src/emacs/nextstep/Emacs.app/Contents/Resources/lisp/org/ob-julia
~/src/org-mode/lisp/ob-lua hides /Users/salutis/src/emacs/nextstep/Emacs.app/Contents/Resources/lisp/org/ob-lua
~/src/org-mode/lisp/ob-table hides /Users/salutis/src/emacs/nextstep/Emacs.app/Contents/Resources/lisp/org/ob-table
~/src/org-mode/lisp/ob-ocaml hides /Users/salutis/src/emacs/nextstep/Emacs.app/Contents/Resources/lisp/org/ob-ocaml
~/src/org-mode/lisp/oc-csl hides /Users/salutis/src/emacs/nextstep/Emacs.app/Contents/Resources/lisp/org/oc-csl
~/src/org-mode/lisp/ol-gnus hides /Users/salutis/src/emacs/nextstep/Emacs.app/Contents/Resources/lisp/org/ol-gnus
~/src/org-mode/lisp/org-indent hides /Users/salutis/src/emacs/nextstep/Emacs.app/Contents/Resources/lisp/org/org-indent
~/src/org-mode/lisp/ob-lilypond hides /Users/salutis/src/emacs/nextstep/Emacs.app/Contents/Resources/lisp/org/ob-lilypond
~/src/org-mode/lisp/ob-matlab hides /Users/salutis/src/emacs/nextstep/Emacs.app/Contents/Resources/lisp/org/ob-matlab
~/src/org-mode/lisp/org-datetree hides /Users/salutis/src/emacs/nextstep/Emacs.app/Contents/Resources/lisp/org/org-datetree
~/src/org-mode/lisp/ol-docview hides /Users/salutis/src/emacs/nextstep/Emacs.app/Contents/Resources/lisp/org/ol-docview
~/src/org-mode/lisp/ob-python hides /Users/salutis/src/emacs/nextstep/Emacs.app/Contents/Resources/lisp/org/ob-python
~/src/org-mode/lisp/ob-makefile hides /Users/salutis/src/emacs/nextstep/Emacs.app/Contents/Resources/lisp/org/ob-makefile
~/src/org-mode/lisp/org-duration hides /Users/salutis/src/emacs/nextstep/Emacs.app/Contents/Resources/lisp/org/org-duration
~/src/org-mode/lisp/org-agenda hides /Users/salutis/src/emacs/nextstep/Emacs.app/Contents/Resources/lisp/org/org-agenda
~/src/org-mode/lisp/ob-dot hides /Users/salutis/src/emacs/nextstep/Emacs.app/Contents/Resources/lisp/org/ob-dot
~/src/org-mode/lisp/ob-js hides /Users/salutis/src/emacs/nextstep/Emacs.app/Contents/Resources/lisp/org/ob-js
~/src/org-mode/lisp/ox-publish hides /Users/salutis/src/emacs/nextstep/Emacs.app/Contents/Resources/lisp/org/ox-publish
~/src/org-mode/lisp/org-inlinetask hides /Users/salutis/src/emacs/nextstep/Emacs.app/Contents/Resources/lisp/org/org-inlinetask
~/src/org-mode/lisp/ob-org hides /Users/salutis/src/emacs/nextstep/Emacs.app/Contents/Resources/lisp/org/ob-org
~/src/org-mode/lisp/org-keys hides /Users/salutis/src/emacs/nextstep/Emacs.app/Contents/Resources/lisp/org/org-keys
~/src/org-mode/lisp/ob-core hides /Users/salutis/src/emacs/nextstep/Emacs.app/Contents/Resources/lisp/org/ob-core
~/src/org-mode/lisp/org-compat hides /Users/salutis/src/emacs/nextstep/Emacs.app/Contents/Resources/lisp/org/org-compat
~/src/org-mode/lisp/ol hides /Users/salutis/src/emacs/nextstep/Emacs.app/Contents/Resources/lisp/org/ol
~/src/org-mode/lisp/ox-odt hides /Users/salutis/src/emacs/nextstep/Emacs.app/Contents/Resources/lisp/org/ox-odt
~/src/org-mode/lisp/ol-info hides /Users/salutis/src/emacs/nextstep/Emacs.app/Contents/Resources/lisp/org/ol-info
~/src/org-mode/lisp/ob-plantuml hides /Users/salutis/src/emacs/nextstep/Emacs.app/Contents/Resources/lisp/org/ob-plantuml
~/src/org-mode/lisp/ob-eshell hides /Users/salutis/src/emacs/nextstep/Emacs.app/Contents/Resources/lisp/org/ob-eshell
~/src/org-mode/lisp/ox-ascii hides /Users/salutis/src/emacs/nextstep/Emacs.app/Contents/Resources/lisp/org/ox-ascii
~/src/org-mode/lisp/ox-koma-letter hides /Users/salutis/src/emacs/nextstep/Emacs.app/Contents/Resources/lisp/org/ox-koma-letter
~/src/org-mode/lisp/ob-maxima hides /Users/salutis/src/emacs/nextstep/Emacs.app/Contents/Resources/lisp/org/ob-maxima
~/src/org-mode/lisp/org hides /Users/salutis/src/emacs/nextstep/Emacs.app/Contents/Resources/lisp/org/org
~/src/org-mode/lisp/ol-bbdb hides /Users/salutis/src/emacs/nextstep/Emacs.app/Contents/Resources/lisp/org/ol-bbdb
~/src/org-mode/lisp/org-macro hides /Users/salutis/src/emacs/nextstep/Emacs.app/Contents/Resources/lisp/org/org-macro
~/src/org-mode/lisp/ob-sql hides /Users/salutis/src/emacs/nextstep/Emacs.app/Contents/Resources/lisp/org/ob-sql
~/src/org-mode/lisp/org-attach hides /Users/salutis/src/emacs/nextstep/Emacs.app/Contents/Resources/lisp/org/org-attach
~/src/org-mode/lisp/ob-processing hides /Users/salutis/src/emacs/nextstep/Emacs.app/Contents/Resources/lisp/org/ob-processing
~/src/org-mode/lisp/ox-texinfo hides /Users/salutis/src/emacs/nextstep/Emacs.app/Contents/Resources/lisp/org/ox-texinfo
~/src/org-mode/lisp/org-crypt hides /Users/salutis/src/emacs/nextstep/Emacs.app/Contents/Resources/lisp/org/org-crypt
~/src/org-mode/lisp/org-footnote hides /Users/salutis/src/emacs/nextstep/Emacs.app/Contents/Resources/lisp/org/org-footnote
~/src/org-mode/lisp/ob-comint hides /Users/salutis/src/emacs/nextstep/Emacs.app/Contents/Resources/lisp/org/ob-comint

Features:
(shadow sort notmuch notmuch-tree notmuch-jump notmuch-hello
notmuch-show notmuch-print notmuch-crypto notmuch-mua notmuch-message
notmuch-draft notmuch-maildir-fcc notmuch-address notmuch-company
notmuch-parser notmuch-wash coolj icalendar diary-lib diary-loaddefs
notmuch-tag notmuch-lib notmuch-version notmuch-compat mail-extr
emacsbug sh-script treesit executable ruby-mode smie ebnf-mode pulse
color misearch multi-isearch hl-line grep cape geiser-mode geiser-xref
geiser-compile geiser-guile info-look transient geiser-debug geiser-repl
geiser-image geiser-capf geiser-doc geiser-menu geiser-autodoc
geiser-edit geiser-completion geiser-eval geiser-connection tq
geiser-syntax geiser-log geiser-popup view scheme vc-hg vc-bzr vc-src
vc-sccs vc-svn vc-cvs vc-rcs log-view pcvs-util char-fold orderless rect
cursor-sensor imenu ess-r-mode ess-r-flymake ess-r-xref ess-trns
ess-r-package ess-r-completion ess-roxy ess-r-syntax ess-rd hideshow
ess-s-lang ess-help ess-mode ess-inf ess-tracebug tramp tramp-loaddefs
trampver tramp-integration files-x tramp-compat ess ess-utils ess-custom
citar-org oc-basic citar citar-file citar-cache citar-format preview
reftex-dcr reftex reftex-loaddefs reftex-vars font-latex latex
latex-flymake tex-ispell tex-style tex crm texmathp tex-mode vc-git
diff-mode tempo image-file image-converter disp-table ol-eww eww
url-queue mm-url ol-rmail ol-mhe ol-irc ol-info ol-gnus nnselect
gnus-art mm-uu mml2015 mm-view mml-smime smime gnutls dig gnus-sum shr
pixel-fill kinsoku url-file svg dom gnus-group gnus-undo gnus-start
gnus-dbus dbus xml gnus-cloud nnimap nnmail mail-source utf7 nnoo
gnus-spec gnus-int gnus-range message sendmail yank-media puny rfc822
mml mml-sec epa epg rfc6068 epg-config mm-decode mm-bodies mm-encode
mail-parse rfc2231 rfc2047 rfc2045 ietf-drums mailabbrev gmm-utils
mailheader gnus-win gnus nnheader gnus-util mail-utils range mm-util
mail-prsvr ol-docview doc-view image-mode exif cus-start ls-lisp dired
dired-loaddefs ol-bbdb ol-w3m ol-doi org-link-doi paredit edmacro kmacro
flyspell ispell flimenu hl-todo compat compat-macs modus-operandi-theme
modus-themes pdf-loader package-vc vc vc-dispatcher lisp-mnt finder-inf
ox-texinfo ox-md oc-csl citeproc citeproc-itemgetters citeproc-biblatex
parse-time citeproc-bibtex parsebib ol-bibtex citeproc-cite
citeproc-subbibs citeproc-sort citeproc-name citeproc-formatters
citeproc-number rst citeproc-proc citeproc-disamb citeproc-itemdata
citeproc-generic-elements citeproc-macro citeproc-choose citeproc-date
citeproc-context citeproc-prange citeproc-style citeproc-locale
citeproc-term f f-shortdoc shortdoc citeproc-rt citeproc-lib citeproc-s
s let-alist queue dash bibtex iso8601 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-habit org-agenda ox-html table
ox-ascii ox-publish ox org-element org-persist xdg org-id org-refile
avl-tree org-clock ob-lisp ob-makefile ob-latex ob-scheme geiser ob-dot
ob-R ob-C cc-mode cc-fonts cc-guess cc-menus cc-cmds cc-styles cc-align
cc-engine cc-vars cc-defs ob-shell shell ob-java ob-sqlite ob-sql ob-org
sly gud sly-completion sly-buttons easy-mmode sly-messages sly-common
apropos etags fileloop generator xref arc-mode archive-mode hyperspec
whitespace display-fill-column-indicator display-line-numbers fortune
flymake-proc flymake project compile text-property-search savehist comp
pcase derived comp-cstr warnings cl-extra jka-compr delsel goto-addr
thingatpt cap-words superword subword saveplace cus-edit pp cus-load
wid-edit bug-reference autorevert filenotify org ob ob-tangle ob-ref
ob-lob ob-table ob-exp org-macro org-src ob-comint org-pcomplete
pcomplete comint ansi-osc ansi-color org-list org-footnote org-faces
org-entities time-date noutline outline icons ob-emacs-lisp ob-core
ob-eval org-cycle org-table ol rx org-fold org-fold-core org-keys oc
org-loaddefs find-func cal-menu calendar cal-loaddefs org-version
org-compat org-macs format-spec geiser-guile-autoloads geiser-impl
help-fns radix-tree help-mode geiser-custom geiser-base ring
flyspell-correct-autoloads flymake-grammarly-autoloads flimenu-autoloads
grammarly-autoloads markdown-mode-autoloads org-drill-autoloads
rainbow-mode-autoloads bbdb-autoloads vterm-autoloads paredit-autoloads
swift-mode-autoloads htmlize-autoloads emms-autoloads
yaml-mode-autoloads websocket-autoloads geiser-autoloads
kotlin-mode-autoloads persist-autoloads request-autoloads
bnf-mode-autoloads cape-autoloads imenu-list-autoloads mentor-autoloads
async-autoloads xml-rpc-autoloads magit-autoloads git-commit-autoloads
modus-themes-autoloads url-scgi-autoloads side-hustle-autoloads
magit-section-autoloads telega-autoloads rainbow-identifiers-autoloads
password-store-autoloads with-editor-autoloads orderless-autoloads
citar-autoloads citeproc-autoloads queue-autoloads f-autoloads
s-autoloads dash-autoloads string-inflection-autoloads diff-hl-autoloads
parsebib-autoloads ebnf-mode-autoloads graphviz-dot-mode-autoloads
visual-fill-column-autoloads hl-todo-autoloads org-pomodoro-autoloads
alert-autoloads log4e-autoloads gntp-autoloads sly-autoloads
ess-autoloads auctex-autoloads tex-site elfeed-tube-mpv-autoloads
mpv-autoloads sql-indent-autoloads sqlup-mode-autoloads
pdf-tools-autoloads tablist-autoloads elfeed-tube-autoloads
aio-autoloads elfeed-autoloads transient-autoloads info compat-autoloads
package browse-url url url-proxy url-privacy url-expand url-methods
url-history url-cookie generate-lisp-file url-domsuf url-util mailcap
url-handlers url-parse auth-source cl-seq eieio eieio-core cl-macs
password-cache json subr-x map byte-opt gv bytecomp byte-compile
url-vars cl-loaddefs cl-lib rmc iso-transl tooltip cconv eldoc paren
electric uniquify ediff-hook vc-hooks lisp-float-type elisp-mode mwheel
term/ns-win ns-win ucs-normalize mule-util term/common-win tool-bar dnd
fontset image regexp-opt fringe tabulated-list replace newcomment
text-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 nadvice seq simple cl-generic
indonesian philippine 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 emoji-zwj charscript charprop case-table epa-hook
jka-cmpr-hook help abbrev obarray oclosure cl-preloaded button loaddefs
theme-loaddefs faces cus-face macroexp files window text-properties
overlay sha1 md5 base64 format env code-pages mule custom widget keymap
hashtable-print-readable backquote threads kqueue cocoa ns lcms2
multi-tty make-network-process emacs)

Memory information:
((conses 16 1563388 84174)
 (symbols 48 72315 45)
 (strings 32 348928 17709)
 (string-bytes 1 9992001)
 (vectors 16 98854)
 (vector-slots 8 2343903 144867)
 (floats 8 608 345)
 (intervals 56 40593 1158)
 (buffers 992 31))

-- 
"'Contrariwise,' continued Tweedledee, 'if it was so, it might be; and
if it were so, it would be; but as it isn't, it ain't.  That's logic.'"
-- Lewis Carroll, Through the Looking Glass, 1871/1872

Rudolf Adamkovič <salutis <at> me.com> [he/him]
Studenohorská 25
84103 Bratislava
Slovakia




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#59722; Package emacs. (Wed, 30 Nov 2022 15:10:01 GMT) Full text and rfc822 format available.

Message #8 received at 59722 <at> debbugs.gnu.org (full text, mbox):

From: Dmitry Gutov <dgutov <at> yandex.ru>
To: Rudolf Adamkovič <salutis <at> me.com>, 59722 <at> debbugs.gnu.org
Subject: Re: bug#59722: 30.0.50; project-find-regexp searches project-ignored
 files
Date: Wed, 30 Nov 2022 17:09:38 +0200
On 30/11/2022 16:35, Rudolf Adamkovič via Bug reports for GNU Emacs, the 
Swiss army knife of text editors wrote:
> 
> I have the following `project.el' configuration:
> 
>    (setq xref-search-program 'ripgrep)
> 
> and the following `.dir-locals.el' file in a project:
> 
>    ((nil . ((project-ignores . ("apps/**/*.scm")))))
> 
> As expected, e.g. `project-find-file' ignores all `.scm' files in the
> `apps' subdirectory of the project, however `project-find-regexp' does
> not ignore them.  TL;DR,
> 
> Expected:
> 
>    `project-find-regexp' honors `project-ignores'

Hi! 'project-ignores' is not a variable, it's a generic function.

What backend are you using? If it's (most likely) project-vc, then the 
variable you must be looking for is 'project-vc-ignores'.

To answer the "what backend" question, you can evaluate (project-current).




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#59722; Package emacs. (Wed, 30 Nov 2022 23:21:02 GMT) Full text and rfc822 format available.

Message #11 received at 59722 <at> debbugs.gnu.org (full text, mbox):

From: Rudolf Adamkovič <salutis <at> me.com>
To: Dmitry Gutov <dgutov <at> yandex.ru>, 59722 <at> debbugs.gnu.org
Subject: Re: bug#59722: 30.0.50; project-find-regexp searches
 project-ignored files
Date: Thu, 01 Dec 2022 00:20:45 +0100
Dmitry Gutov <dgutov <at> yandex.ru> writes:

> Hi! 'project-ignores' is not a variable, it's a generic function.

Oops!  Correct.

> What backend are you using? If it's (most likely) project-vc, then the
> variable you must be looking for is 'project-vc-ignores'.

I do use the Git (VC) backend.  Correction:

When I set the dir locals file to

    ((nil . ((project-vc-ignores . ("apps/**/*.scm")))))

I face the problem where C-x p f ignores the files in the "apps"
directory, as expected, but C-x p g does not.

[The "apps" directory in question contains symbolic links that make
Ripgrep, invoked via C-x p g, see various files multiple times,
resulting in what looks like "chaos".]

I apologize for the confusion!

Rudy
-- 
"The introduction of suitable abstractions is our only mental aid to
organize and master complexity."
-- Edsger Wybe Dijkstra, 1930-2002

Rudolf Adamkovič <salutis <at> me.com> [he/him]
Studenohorská 25
84103 Bratislava
Slovakia




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#59722; Package emacs. (Wed, 30 Nov 2022 23:31:02 GMT) Full text and rfc822 format available.

Message #14 received at 59722 <at> debbugs.gnu.org (full text, mbox):

From: Dmitry Gutov <dgutov <at> yandex.ru>
To: Rudolf Adamkovič <salutis <at> me.com>, 59722 <at> debbugs.gnu.org
Subject: Re: bug#59722: 30.0.50; project-find-regexp searches project-ignored
 files
Date: Thu, 1 Dec 2022 01:30:03 +0200
On 01/12/2022 01:20, Rudolf Adamkovič via Bug reports for GNU Emacs, the 
Swiss army knife of text editors wrote:

>> What backend are you using? If it's (most likely) project-vc, then the
>> variable you must be looking for is 'project-vc-ignores'.
> 
> I do use the Git (VC) backend.  Correction:
> 
> When I set the dir locals file to
> 
>      ((nil . ((project-vc-ignores . ("apps/**/*.scm")))))
> 
> I face the problem where C-x p f ignores the files in the "apps"
> directory, as expected, but C-x p g does not.

Okay.

I wonder how that could be possible: project-find-regexp (that if what 
you have 'C-x p g' bound to, right?) does the search across the files 
returned by 'project-files'. So there is just one place that interprets 
the ignores' list and produces the list of files, and both 
project-find-file and project-find-regexp consume the result.

Can you step through 'project-find-regexp' with edebug? Does the return 
value of 'project-files' (saved to 'files') contain the extra entries?

Or are you calling 'project-find-regexp' with a prefix, which switches 
it to a different mode (the 'project--files-in-directory' branch)?




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#59722; Package emacs. (Sun, 04 Dec 2022 23:37:01 GMT) Full text and rfc822 format available.

Message #17 received at 59722 <at> debbugs.gnu.org (full text, mbox):

From: Rudolf Adamkovič <salutis <at> me.com>
To: Dmitry Gutov <dgutov <at> yandex.ru>, 59722 <at> debbugs.gnu.org
Subject: Re: bug#59722: 30.0.50; project-find-regexp searches
 project-ignored files
Date: Mon, 05 Dec 2022 00:36:34 +0100
Dmitry Gutov <dgutov <at> yandex.ru> writes:

> Okay.

Thank you for your time, Dmitry!

> I wonder how that could be possible: project-find-regexp (that if what
> you have 'C-x p g' bound to, right?) does the search across the files
> returned by 'project-files'. So there is just one place that
> interprets the ignores' list and produces the list of files, and both
> project-find-file and project-find-regexp consume the result.

I provide a hypothesis about how that could happen below.

> Can you step through 'project-find-regexp' with edebug? Does the
> return value of 'project-files' (saved to 'files') contain the extra
> entries?

So, I debugged the problem.

FINDING 1:

The first finding may explain why I see the ignored files in C-x p g.

For my dir-local ignore pattern

  ((nil . ((project-ignores . ("apps/**/*.scm")))))

Emacs ends up calling

  git ls-files -z -c --exclude-standard \
    --no-empty-directory -o -- :(exclude,glob,top)apps/**/*.scm

which gives a listing that DOES NOT contain (as expected) any '*.scm'
files in the 'apps' directory, such as

  apps/lib-app-core/src/main/assets/app/atrium.scm
  apps/lib-app-core/src/main/assets/app/database.scm
  ...

but it still DOES contain "logically empty" parent directories (as not
expected, perhaps) that would have contained the ignored files if not
ignored, such as

  apps/lib-app-core/src/main/assets/app

My interpretation:

git ls-files does not output just files, as one would expect, but also
directories with no matching files.  grep then gets a list of files and
possibly also directories, and searches through it all.

FINDING 2:

Given the configuration

  (setq project-switch-use-entire-map t
        project-switch-commands '((nil "C-x p")))

when I type

  C-x p p <...project...> g

then Emacs uses the global project ignores and not the ones defined in
the directory-local file.  However,

  C-x p g

inside of any project buffer works OK.

Notes:

While probably not the root cause, this bug made debugging much harder,
until I realized it exists, so I report this finding as well.

Rudy
-- 
"One can begin to reason only when a clear picture has been formed in
the imagination."
-- Walter Warwick Sawyer, Mathematician's Delight, 1943

Rudolf Adamkovič <salutis <at> me.com> [he/him]
Studenohorská 25
84103 Bratislava
Slovakia




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#59722; Package emacs. (Mon, 05 Dec 2022 00:45:02 GMT) Full text and rfc822 format available.

Message #20 received at 59722 <at> debbugs.gnu.org (full text, mbox):

From: Dmitry Gutov <dgutov <at> yandex.ru>
To: Rudolf Adamkovič <salutis <at> me.com>, 59722 <at> debbugs.gnu.org
Subject: Re: bug#59722: 30.0.50; project-find-regexp searches project-ignored
 files
Date: Mon, 5 Dec 2022 02:43:53 +0200
On 05/12/2022 01:36, Rudolf Adamkovič via Bug reports for GNU Emacs, the 
Swiss army knife of text editors wrote:

>> Can you step through 'project-find-regexp' with edebug? Does the
>> return value of 'project-files' (saved to 'files') contain the extra
>> entries?
> 
> So, I debugged the problem.

Thanks!

> FINDING 1:
> 
> The first finding may explain why I see the ignored files in C-x p g.
> 
> For my dir-local ignore pattern
> 
>    ((nil . ((project-ignores . ("apps/**/*.scm")))))

project-vc-ignores, you mean.

> Emacs ends up calling
> 
>    git ls-files -z -c --exclude-standard \
>      --no-empty-directory -o -- :(exclude,glob,top)apps/**/*.scm
> 
> which gives a listing that DOES NOT contain (as expected) any '*.scm'
> files in the 'apps' directory, such as
> 
>    apps/lib-app-core/src/main/assets/app/atrium.scm
>    apps/lib-app-core/src/main/assets/app/database.scm
>    ...
> 
> but it still DOES contain "logically empty" parent directories (as not
> expected, perhaps) that would have contained the ignored files if not
> ignored, such as
> 
>    apps/lib-app-core/src/main/assets/app

Huh, interesting. Could you try to show a similar command invocation 
which would make Git output include a "logically empty" directory for 
the Emacs repo? So that we have a common public project to compare.

Or alternatively a project-vc-ignores value which, when put in 
.dir-locals.el at the top, produces such effect on the return value of 
(project-files (project-current)).

As a counter-example, if I add

  (project-vc-ignores . ("./doc/emacs/*"))

there, 'project-files' does not include 'doc/emacs/' at all. Not files 
in it, not it separately as a directory.

> My interpretation:
> 
> git ls-files does not output just files, as one would expect, but also
> directories with no matching files.  grep then gets a list of files and
> possibly also directories, and searches through it all.

That would make sense, if it's indeed what happens. Perhaps it's a bug 
in our code, or this behavior is specific to certain versions of Git.

I currently have Git 2.37.2 installed.

> FINDING 2:
> 
> Given the configuration
> 
>    (setq project-switch-use-entire-map t
>          project-switch-commands '((nil "C-x p")))
> 
> when I type
> 
>    C-x p p <...project...> g
> 
> then Emacs uses the global project ignores and not the ones defined in
> the directory-local file.  However,
> 
>    C-x p g
> 
> inside of any project buffer works OK.

And that one is probably a regression from 2389158a31b4a.

It won't revert cleanly now, unfortunately. Here's a quick patch which 
should fix project-switch-project (but not any other potential uses of 
project-vc values outside of the associated directory):

diff --git a/lisp/progmodes/project.el b/lisp/progmodes/project.el
index 3f4a5fb04b..c7fb39b0fb 100644
--- a/lisp/progmodes/project.el
+++ b/lisp/progmodes/project.el
@@ -1770,7 +1770,11 @@ project-switch-project
                      project-switch-commands
                    (project--switch-project-command))))
     (let ((project-current-directory-override dir))
-      (call-interactively command))))
+      (with-temp-buffer
+        (let ((default-directory dir)
+              (enable-local-variables :all))
+          (hack-dir-local-variables-non-file-buffer))
+        (call-interactively command)))))

 (provide 'project)
 ;;; project.el ends here

It's mostly to help with your debugging, since it breaks the default 
prompt for 'project-find-regexp' called from 'C-x p p' as well.

I'll have to think of the best way to resolve this: revert said commit 
outright (with updates for the new code), or do it with certain tweaks.

> Notes:
> 
> While probably not the root cause, this bug made debugging much harder,
> until I realized it exists, so I report this finding as well.

Thank you.




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#59722; Package emacs. (Fri, 09 Dec 2022 16:22:01 GMT) Full text and rfc822 format available.

Message #23 received at 59722 <at> debbugs.gnu.org (full text, mbox):

From: Dmitry Gutov <dgutov <at> yandex.ru>
To: Rudolf Adamkovič <salutis <at> me.com>, 59722 <at> debbugs.gnu.org
Subject: Re: bug#59722: 30.0.50; project-find-regexp searches project-ignored
 files
Date: Fri, 9 Dec 2022 18:21:40 +0200
Hi Rudolf,

On 05/12/2022 02:43, Dmitry Gutov wrote:
> I'll have to think of the best way to resolve this: revert said commit 
> outright (with updates for the new code), or do it with certain tweaks.

I have pushed a fix for this to emacs-29 (commit d268ab1c5d).

Please check whether the original problem remains.

Did you have any luck with further debugging the situation with 'git 
ls-files'?




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#59722; Package emacs. (Sun, 11 Dec 2022 12:40:01 GMT) Full text and rfc822 format available.

Message #26 received at 59722 <at> debbugs.gnu.org (full text, mbox):

From: Rudolf Adamkovič <salutis <at> me.com>
To: Dmitry Gutov <dgutov <at> yandex.ru>, 59722 <at> debbugs.gnu.org
Subject: Re: bug#59722: 30.0.50; project-find-regexp searches
 project-ignored files
Date: Sun, 11 Dec 2022 13:38:53 +0100
Dmitry Gutov <dgutov <at> yandex.ru> writes:

>>    ((nil . ((project-ignores . ("apps/**/*.scm")))))
>
> project-vc-ignores, you mean.

Correct.  Dmitry, I apologize for causing confusion!

>> Emacs ends up calling
>> 
>>    git ls-files -z -c --exclude-standard \
>>      --no-empty-directory -o -- :(exclude,glob,top)apps/**/*.scm
>> 
>> [...]
>
> Huh, interesting. Could you try to show a similar command invocation 
> which would make Git output include a "logically empty" directory for 
> the Emacs repo? So that we have a common public project to compare.

I could not reproduce the problem with the Emacs source directory, but I
did not give up!  And, after a whole lot of head-scratching, I found the
root cause of the problem:

When `git ls-files' finds a symlink that points to a directory, it does
*not* follow it.  Instead, it lists it in the output.  In my case, the
symlink pointed to a directory with all of its files ignored.  However,
and importantly, upon further testing, I found that ignores do *not*
matter.

In summary, any symlinks to directories shallow-appear in `git ls-files'
outputs.  Emacs hands the list to Ripgrep, and Ripgrep follows symlinks,
possibly searching through ignored directories, effectively ignoring
`project-vc-ignores' from the point of view of the user.

Phew!

Rudy
-- 
"The introduction of suitable abstractions is our only mental aid to
organize and master complexity."
-- Edsger Wybe Dijkstra, 1930-2002

Rudolf Adamkovič <salutis <at> me.com> [he/him]
Studenohorská 25
84103 Bratislava
Slovakia




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#59722; Package emacs. (Sun, 11 Dec 2022 20:14:01 GMT) Full text and rfc822 format available.

Message #29 received at 59722 <at> debbugs.gnu.org (full text, mbox):

From: Dmitry Gutov <dgutov <at> yandex.ru>
To: Rudolf Adamkovič <salutis <at> me.com>, 59722 <at> debbugs.gnu.org
Subject: Re: bug#59722: 30.0.50; project-find-regexp searches project-ignored
 files
Date: Sun, 11 Dec 2022 22:13:04 +0200
On 11/12/2022 14:38, Rudolf Adamkovič via Bug reports for GNU Emacs, the 
Swiss army knife of text editors wrote:
> Dmitry Gutov <dgutov <at> yandex.ru> writes:
> 
>>>     ((nil . ((project-ignores . ("apps/**/*.scm")))))
>>
>> project-vc-ignores, you mean.
> 
> Correct.  Dmitry, I apologize for causing confusion!

No problem. I just wanted to make double-sure that the typo is not the 
cause of the issue.

>>> Emacs ends up calling
>>>
>>>     git ls-files -z -c --exclude-standard \
>>>       --no-empty-directory -o -- :(exclude,glob,top)apps/**/*.scm
>>>
>>> [...]
>>
>> Huh, interesting. Could you try to show a similar command invocation
>> which would make Git output include a "logically empty" directory for
>> the Emacs repo? So that we have a common public project to compare.
> 
> I could not reproduce the problem with the Emacs source directory, but I
> did not give up!  And, after a whole lot of head-scratching, I found the
> root cause of the problem:
> 
> When `git ls-files' finds a symlink that points to a directory, it does
> *not* follow it.  Instead, it lists it in the output.  In my case, the
> symlink pointed to a directory with all of its files ignored.  However,
> and importantly, upon further testing, I found that ignores do *not*
> matter.

Okay, yes, that seems to be the case. And there seems to be no way to 
have 'git ls-files' include symlinks in the output.

I can suggest two options here, both non-ideal:

- Ignore the whole symlinked directories by adding ignore entries that 
match their symlink files, rather than directories. For example, by 
setting project-vc-ignores to '("apps/*") or '("apps/**"), or with 
individual entries for each of them. That is, if you want them ignored 
whole.

- Here's what seems to be a (Linux-only) way to have Git follow 
symlinks: https://github.com/Alcaro/GitBSLR (found at 
https://stackoverflow.com/a/49138555/615245).

Another automatic approach would be to add a new value in 
xref-search-program-alist that would first pipe through a 
non-symlink-ness checker. Or modify the existing values.

But I'm yet to write a suitable command or pipeline (help welcome!), so 
I'm not sure how practical that is, and what's the average overhead.

The obvious choice of (seq-filter #'file-regular-p (project-files 
(project-current))) creates a large overhead (takes about x3 time here 
as just listing the files). That too much, I think.




This bug report was last modified 1 year and 351 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.