all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
* bug#70329: 29.3; etags-regen-mode fails in projects that have spaces in their root path elements
@ 2024-04-10 19:32 Magiel Bruntink via Bug reports for GNU Emacs, the Swiss army knife of text editors
  2024-04-11  7:29 ` Eli Zaretskii
  0 siblings, 1 reply; 5+ messages in thread
From: Magiel Bruntink via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2024-04-10 19:32 UTC (permalink / raw)
  To: 70329

Dear maintainers,

I wanted to try to the new etags-regen-mode and loaded its lisp manually.

There is an issue with how the new mode deals with paths containing spaces,
however.

Running the etags--xref-backend through eg. xref-find-definitions
within a file in a project that has spaces in its path elements,
eg. "c:/temp/test project/test.c" will cause an error.

Messages seen are:
Generating new tags table...
(Shell command failed with code 1 and some error output)
visit-tags-table-buffer: File c:/temp/test project/TAGS does not exist

Error message in the etags-regen-tags-errors* buffer:
c:/temp/test: Permission denied

Thank you,
Magiel Bruntink


------------------------------------------------------------------------------
In GNU Emacs 29.3 (build 2, x86_64-w64-mingw32) of 2024-03-26 built on
 fv-az653-233
Windowing system distributor 'Microsoft Corp.', version 10.0.22631
System Description: Microsoft Windows 10 Home (v10.0.2009.22631.3447)

Configured using:
 'configure --prefix=/ucrt64 --host=x86_64-w64-mingw32
 --build=x86_64-w64-mingw32 --with-modules --without-dbus
 --without-compress-install --with-tree-sitter --with-native-compilation=aot
 'CFLAGS=-march=nocona -msahf -mtune=generic -O2 -pipe -fstack-protector-strong
 -fno-optimize-sibling-calls' CPPFLAGS=-D__USE_MINGW_ANSI_STDIO=1 'LDFLAGS=-pipe
 -lpthread''

Configured features:
ACL GIF GMP GNUTLS HARFBUZZ JPEG JSON LIBXML2 MODULES NATIVE_COMP NOTIFY
W32NOTIFY PDUMPER PNG RSVG SOUND SQLITE3 THREADS TIFF TOOLKIT_SCROLL_BARS
TREE_SITTER WEBP XPM ZLIB

Important settings:
  value of $LANG: NLD
  locale-coding-system: cp1252

Major mode: Helpful

Minor modes in effect:
  etags-regen-mode: t
  global-git-commit-mode: t
  magit-auto-revert-mode: t
  shell-dirtrack-mode: t
  server-mode: t
  doom-modeline-mode: t
  TeX-PDF-mode: t
  global-java-ide-mode: t
  global-treesit-auto-mode: t
  winner-mode: t
  global-so-long-mode: t
  recentf-mode: t
  nerd-icons-completion-mode: t
  marginalia-mode: t
  corfu-popupinfo-mode: t
  savehist-mode: t
  corfu-history-mode: t
  global-corfu-mode: t
  corfu-mode: t
  vertico-mode: t
  global-completion-preview-mode: t
  display-time-mode: t
  pixel-scroll-precision-mode: t
  override-global-mode: t
  auto-compile-on-load-mode: t
  auto-compile-on-save-mode: t
  tooltip-mode: t
  global-eldoc-mode: t
  show-paren-mode: t
  electric-indent-mode: t
  mouse-wheel-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  blink-cursor-mode: t
  buffer-read-only: t
  size-indication-mode: t
  column-number-mode: t
  line-number-mode: t
  indent-tabs-mode: t
  transient-mark-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t

Load-path shadows:
c:/Users/Magiel Bruntink/.emacs.d/elpa/transient-20240311.1638/transient hides c:/Tools/MSYS2/ucrt64/share/emacs/29.3/lisp/transient
c:/Users/Magiel Bruntink/.emacs.d/elpa/modus-themes-20240317.1619/theme-loaddefs hides c:/Tools/MSYS2/ucrt64/share/emacs/29.3/lisp/theme-loaddefs
c:/Users/Magiel Bruntink/.emacs.d/site-lisp/loaddefs hides c:/Tools/MSYS2/ucrt64/share/emacs/29.3/lisp/loaddefs
c:/Users/Magiel Bruntink/.emacs.d/elpa/jsonrpc-1.0.25/jsonrpc hides c:/Tools/MSYS2/ucrt64/share/emacs/29.3/lisp/jsonrpc
c:/Users/Magiel Bruntink/.emacs.d/elpa/eglot-1.17/eglot hides c:/Tools/MSYS2/ucrt64/share/emacs/29.3/lisp/progmodes/eglot
c:/Users/Magiel Bruntink/.emacs.d/elpa/eldoc-1.15.0/eldoc hides c:/Tools/MSYS2/ucrt64/share/emacs/29.3/lisp/emacs-lisp/eldoc

Features:
(shadow sort mail-extr emacsbug magit-patch magit-subtree magit-gitignore
magit-ediff ediff ediff-merg ediff-mult ediff-wind ediff-diff ediff-help
ediff-init ediff-util etags fileloop helpful cc-langs trace edebug info-look
elisp-refs consult-xref c++-ts-mode c-ts-mode c-ts-common smartparens-c cc-mode
cc-fonts cc-guess cc-menus cc-cmds cc-styles cc-align cc-engine cc-vars cc-defs
cl-print shortdoc help-fns embark-org embark-consult embark ffap etags-regen
loaddefs-gen lisp-mnt radix-tree autoconf autoconf-mode sh-script smie
executable magit-extras pcmpl-unix magit-bookmark magit-submodule magit-blame
magit-stash magit-reflog magit-bisect magit-push magit-pull magit-fetch
magit-clone magit-remote magit-commit magit-sequence magit-notes magit-worktree
magit-tag magit-merge magit-branch magit-reset magit-files magit-refs
magit-status magit magit-repos magit-apply magit-wip magit-log which-func
magit-diff smerge-mode git-commit log-edit add-log magit-core magit-autorevert
autorevert magit-margin magit-transient magit-process with-editor magit-mode
transient magit-git magit-base magit-section tramp-cmds em-unix em-term term
ehelp em-script em-prompt em-hist em-pred em-glob em-extpipe em-cmpl em-basic
em-banner em-alias eshell-prompt-extras tramp tramp-loaddefs trampver
tramp-integration tramp-compat shell em-dirs esh-var esh-mode em-ls eshell
esh-cmd esh-ext esh-opt esh-proc esh-io esh-arg esh-module esh-groups esh-util
ace-window avy org-modern org-indent image-file image-converter oc-basic 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-async nntp gnus-sum shr
pixel-fill kinsoku url-file gnus-group gnus-undo gnus-start gnus-dbus dbus
gnus-cloud nnimap nnmail mail-source utf7 nnoo parse-time gnus-spec gnus-int
gnus-range message sendmail yank-media puny rfc822 mml mml-sec epa derived
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 jka-compr image-mode exif ol-bibtex
bibtex iso8601 ol-bbdb ol-w3m ol-doi org-link-doi smartparens-org
org-calendar-smart-time-grid org-agenda org-element org-persist xdg org-id
avl-tree generator org-refile org ob ob-tangle ob-ref ob-lob ob-table ob-exp
org-macro org-src ob-comint org-pcomplete pcomplete org-list org-footnote
org-faces org-entities noutline outline ob-emacs-lisp ob-core ob-eval org-cycle
org-table ol org-fold org-fold-core org-keys oc org-loaddefs cal-menu calendar
cal-loaddefs org-version org-compat org-macs format-spec misearch multi-isearch
dired-aux vc-hg vc-bzr vc-src vc-sccs vc-svn vc-cvs vc-rcs nerd-icons-dired
diff-hl-dired time-date mule-util cursor-sensor consult bookmark pulse color
visual-fill-column svg dom xml gtags-mode files-x server ligature diff-hl
log-view pcvs-util vc-dir vc cus-start doom-modeline doom-modeline-segments
doom-modeline-env doom-modeline-core shrink-path f preview-dvisvgm face-remap
preview auctex-latexmk smartparens-latex latex latex-flymake tex-ispell
tex-style tex crm texmathp java-ide eglot external-completion jsonrpc
flymake-proc flymake diff ert ewoc debug backtrace find-func filenotify compile
text-property-search comint ansi-osc imenu smartparens-config smartparens-text
smartparens advice loadhist thingatpt treesit-auto treesit ansi-color dumb-jump
popup dash s xref project winner ibuf-macs so-long recentf tree-widget dired
dired-loaddefs nerd-icons-completion marginalia cape corfu-popupinfo savehist
corfu-history nerd-icons-corfu corfu orderless vertico compat completion-preview
edmacro kmacro modus-vivendi-tritanopia-theme modus-operandi-tritanopia-theme
modus-vivendi-deuteranopia-theme modus-operandi-deuteranopia-theme
modus-vivendi-tinted-theme modus-operandi-tinted-theme modus-vivendi-theme
modus-operandi-theme modus-themes nerd-icons nerd-icons-faces nerd-icons-data
nerd-icons-data-mdicon nerd-icons-data-flicon nerd-icons-data-codicon
nerd-icons-data-devicon nerd-icons-data-sucicon nerd-icons-data-wicon
nerd-icons-data-faicon nerd-icons-data-powerline nerd-icons-data-octicon
nerd-icons-data-pomicon nerd-icons-data-ipsicon time pixel-scroll cua-base ring
display-line-numbers auctex-latexmk-autoloads blamer-autoloads async-autoloads
cape-autoloads consult-eglot-autoloads copilot-autoloads corfu-autoloads
csv-mode-autoloads dape-autoloads diff-hl-autoloads dired-collapse-autoloads
dired-narrow-autoloads dired-ranger-autoloads dired-subtree-autoloads
dired-hacks-utils-autoloads disk-usage-autoloads docker-autoloads aio-autoloads
dockerfile-mode-autoloads doom-modeline-autoloads dumb-jump-autoloads
ebdb-autoloads editorconfig-autoloads eglot-autoloads eldoc-autoloads
embark-consult-autoloads consult-autoloads embark-autoloads
eshell-prompt-extras-autoloads ess-autoloads gnu-elpa-keyring-update-autoloads
epg rfc6068 epg-config gnu-elpa-keyring-update gptel-autoloads
gtags-mode-autoloads helpful-autoloads elisp-refs-autoloads
ibuffer-project-autoloads interaction-log-autoloads jsonrpc-autoloads
kotlin-ts-mode-autoloads kubernetes-autoloads ligature-autoloads
lua-mode-autoloads magit-autoloads pcase git-commit-autoloads
magit-popup-autoloads magit-section-autoloads marginalia-autoloads
modus-themes-autoloads nerd-icons-completion-autoloads
nerd-icons-corfu-autoloads nerd-icons-dired-autoloads
nerd-icons-ibuffer-autoloads orderless-autoloads org-modern-autoloads
osm-autoloads pdf-tools-autoloads poly-R-autoloads poly-noweb-autoloads
pomidor-autoloads alert-autoloads log4e-autoloads gntp-autoloads popup-autoloads
preview-dvisvgm-autoloads auctex-autoloads tex-site pytest-autoloads
pyvenv-autoloads qrencode-autoloads quarto-mode-autoloads
poly-markdown-autoloads markdown-mode-autoloads polymode-autoloads
rainbow-mode-autoloads request-autoloads rust-mode-autoloads
shrink-path-autoloads f-autoloads smartparens-autoloads tablist-autoloads
transient-autoloads treemacs-nerd-icons-autoloads treemacs-autoloads
cfrs-autoloads posframe-autoloads ht-autoloads hydra-autoloads lv-autoloads
pfuture-autoloads ace-window-autoloads avy-autoloads s-autoloads dash-autoloads
nerd-icons-autoloads treesit-auto-autoloads unfill-autoloads vertico-autoloads
visual-regexp-autoloads wgrep-autoloads with-editor-autoloads compat-autoloads
info writeroom-mode-autoloads visual-fill-column-autoloads yaml-mode-autoloads
vc-git diff-mode vc-dispatcher use-package use-package-ensure
use-package-delight use-package-diminish use-package-bind-key bind-key
easy-mmode use-package-core 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 eieio eieio-core
password-cache json map byte-opt url-vars auto-compile comp comp-cstr warnings
subr-x rx cl-macs gv cl-extra help-mode cl-seq bytecomp byte-compile cus-edit pp
cus-load icons wid-edit cl-loaddefs cl-lib rmc iso-transl tooltip cconv eldoc
paren electric uniquify ediff-hook vc-hooks lisp-float-type elisp-mode mwheel
dos-w32 ls-lisp disp-table term/w32-win w32-win w32-vars 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 w32notify w32 multi-tty
make-network-process native-compile emacs)

Memory information:
((conses 16 1066771 54399)
 (symbols 48 51400 0)
 (strings 32 230776 12295)
 (string-bytes 1 8110103)
 (vectors 16 107827)
 (vector-slots 8 2288876 93154)
 (floats 8 2132 451)
 (intervals 56 8437 1030)
 (buffers 984 40))





^ permalink raw reply	[flat|nested] 5+ messages in thread

* bug#70329: 29.3; etags-regen-mode fails in projects that have spaces in their root path elements
  2024-04-10 19:32 bug#70329: 29.3; etags-regen-mode fails in projects that have spaces in their root path elements Magiel Bruntink via Bug reports for GNU Emacs, the Swiss army knife of text editors
@ 2024-04-11  7:29 ` Eli Zaretskii
       [not found]   ` <7ysezsc6q6.fsf@icloud.com>
  2024-04-11 17:10   ` Dmitry Gutov
  0 siblings, 2 replies; 5+ messages in thread
From: Eli Zaretskii @ 2024-04-11  7:29 UTC (permalink / raw)
  To: Magiel Bruntink; +Cc: 70329

> Date: Wed, 10 Apr 2024 21:32:57 +0200
> From:  Magiel Bruntink via "Bug reports for GNU Emacs,
>  the Swiss army knife of text editors" <bug-gnu-emacs@gnu.org>
> 
> I wanted to try to the new etags-regen-mode and loaded its lisp manually.
> 
> There is an issue with how the new mode deals with paths containing spaces,
> however.
> 
> Running the etags--xref-backend through eg. xref-find-definitions
> within a file in a project that has spaces in its path elements,
> eg. "c:/temp/test project/test.c" will cause an error.
> 
> Messages seen are:
> Generating new tags table...
> (Shell command failed with code 1 and some error output)
> visit-tags-table-buffer: File c:/temp/test project/TAGS does not exist
> 
> Error message in the etags-regen-tags-errors* buffer:
> c:/temp/test: Permission denied

Stab in the dark: does the patch below fix the problem?

If not, please repeat your recipe with debug-on-error non-nil, and
post the backtrace here.

diff --git a/lisp/progmodes/etags-regen.el b/lisp/progmodes/etags-regen.el
index 6cd78d3..02d666c 100644
--- a/lisp/progmodes/etags-regen.el
+++ b/lisp/progmodes/etags-regen.el
@@ -279,7 +279,7 @@ etags-regen--tags-generate
                                      " ")
                           ;; ctags's etags requires '-L' for stdin input.
                           (if ctags-p "-L" "")
-                          tags-file)))
+                          (shell-quote-argument tags-file))))
     (with-temp-buffer
       (mapc (lambda (f)
               (insert f "\n"))





^ permalink raw reply related	[flat|nested] 5+ messages in thread

* bug#70329: 29.3; etags-regen-mode fails in projects that have spaces in their root path elements
       [not found]   ` <7ysezsc6q6.fsf@icloud.com>
@ 2024-04-11 14:48     ` Eli Zaretskii
       [not found]       ` <7yh6g7dhw7.fsf@icloud.com>
  0 siblings, 1 reply; 5+ messages in thread
From: Eli Zaretskii @ 2024-04-11 14:48 UTC (permalink / raw)
  To: Magiel Bruntink, Dmitry Gutov; +Cc: 70329

> From: Magiel Bruntink <magiel.bruntink@icloud.com>
> Date: Thu, 11 Apr 2024 16:30:09 +0200
> 
> Yes, problem fixed with your patch. Nice!

Thanks for testing it.  I will wait for Dmitry to chime in before
installing this.





^ permalink raw reply	[flat|nested] 5+ messages in thread

* bug#70329: 29.3; etags-regen-mode fails in projects that have spaces in their root path elements
       [not found]       ` <7yh6g7dhw7.fsf@icloud.com>
@ 2024-04-11 16:17         ` Eli Zaretskii
  0 siblings, 0 replies; 5+ messages in thread
From: Eli Zaretskii @ 2024-04-11 16:17 UTC (permalink / raw)
  To: Magiel Bruntink; +Cc: 70329

[Please use Reply All to reply, to keep the bug tracker CC'ed.]

> From: Magiel Bruntink <magiel.bruntink@icloud.com>
> Date: Thu, 11 Apr 2024 17:43:36 +0200
> 
> No problem, thanks for the fix.
> 
> While applying your patch I found a similar issue with ediff-ptch.el though. It
> won't find the to-be-patched file if there are spaces involved in the path.
> 
> Here is the patch for it :-)

Thanks.  I installed a slightly more radical change instead:

diff --git a/lisp/vc/ediff-ptch.el b/lisp/vc/ediff-ptch.el
index f8d4c1c..2d5d460 100644
--- a/lisp/vc/ediff-ptch.el
+++ b/lisp/vc/ediff-ptch.el
@@ -721,10 +721,11 @@ ediff-patch-file-internal
 	     nil ; don't redisplay
 	     shell-command-switch   ; usually -c
 	     (format "%s %s %s %s"
-		     ediff-patch-program
+		     (shell-quote-argument ediff-patch-program)
 		     ediff-patch-options
 		     ediff-backup-specs
-		     (ediff--buffer-file-name buf-to-patch))
+                     (shell-quote-argument
+		      (ediff--buffer-file-name buf-to-patch)))
 	     ))
 
       ;; restore environment for gnu patch





^ permalink raw reply related	[flat|nested] 5+ messages in thread

* bug#70329: 29.3; etags-regen-mode fails in projects that have spaces in their root path elements
  2024-04-11  7:29 ` Eli Zaretskii
       [not found]   ` <7ysezsc6q6.fsf@icloud.com>
@ 2024-04-11 17:10   ` Dmitry Gutov
  1 sibling, 0 replies; 5+ messages in thread
From: Dmitry Gutov @ 2024-04-11 17:10 UTC (permalink / raw)
  To: Eli Zaretskii, Magiel Bruntink; +Cc: 70329-done

Hi Eli and Magiel,

On 11/04/2024 10:29, Eli Zaretskii wrote:
>> Date: Wed, 10 Apr 2024 21:32:57 +0200
>> From:  Magiel Bruntink via "Bug reports for GNU Emacs,
>>   the Swiss army knife of text editors"<bug-gnu-emacs@gnu.org>
>>
>> I wanted to try to the new etags-regen-mode and loaded its lisp manually.
>>
>> There is an issue with how the new mode deals with paths containing spaces,
>> however.
>>
>> Running the etags--xref-backend through eg. xref-find-definitions
>> within a file in a project that has spaces in its path elements,
>> eg. "c:/temp/test project/test.c" will cause an error.
>>
>> Messages seen are:
>> Generating new tags table...
>> (Shell command failed with code 1 and some error output)
>> visit-tags-table-buffer: File c:/temp/test project/TAGS does not exist
>>
>> Error message in the etags-regen-tags-errors* buffer:
>> c:/temp/test: Permission denied
> Stab in the dark: does the patch below fix the problem?
> 
> If not, please repeat your recipe with debug-on-error non-nil, and
> post the backtrace here.
> 
> diff --git a/lisp/progmodes/etags-regen.el b/lisp/progmodes/etags-regen.el
> index 6cd78d3..02d666c 100644
> --- a/lisp/progmodes/etags-regen.el
> +++ b/lisp/progmodes/etags-regen.el
> @@ -279,7 +279,7 @@ etags-regen--tags-generate
>                                        " ")
>                             ;; ctags's etags requires '-L' for stdin input.
>                             (if ctags-p "-L" "")
> -                          tags-file)))
> +                          (shell-quote-argument tags-file))))
>       (with-temp-buffer
>         (mapc (lambda (f)
>                 (insert f "\n"))

Thank you, looks good, pushed to master.





^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2024-04-11 17:10 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-04-10 19:32 bug#70329: 29.3; etags-regen-mode fails in projects that have spaces in their root path elements Magiel Bruntink via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-04-11  7:29 ` Eli Zaretskii
     [not found]   ` <7ysezsc6q6.fsf@icloud.com>
2024-04-11 14:48     ` Eli Zaretskii
     [not found]       ` <7yh6g7dhw7.fsf@icloud.com>
2024-04-11 16:17         ` Eli Zaretskii
2024-04-11 17:10   ` Dmitry Gutov

Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/emacs.git
	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.