GNU bug report logs - #60968
30.0.50; M-x shell keeps an old default-directory

Previous Next

Package: emacs;

Reported by: Manuel Giraud <manuel <at> ledu-giraud.fr>

Date: Fri, 20 Jan 2023 18:39:01 UTC

Severity: normal

Tags: notabug

Found in version 30.0.50

Done: Michael Albinus <michael.albinus <at> gmx.de>

Bug is archived. No further changes may be made.

To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 60968 in the body.
You can then email your comments to 60968 AT debbugs.gnu.org in the normal way.

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#60968; Package emacs. (Fri, 20 Jan 2023 18:39:01 GMT) Full text and rfc822 format available.

Acknowledgement sent to Manuel Giraud <manuel <at> ledu-giraud.fr>:
New bug report received and forwarded. Copy sent to bug-gnu-emacs <at> gnu.org. (Fri, 20 Jan 2023 18:39:01 GMT) Full text and rfc822 format available.

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

From: Manuel Giraud <manuel <at> ledu-giraud.fr>
To: bug-gnu-emacs <at> gnu.org
Subject: 30.0.50; M-x shell keeps an old default-directory
Date: Fri, 20 Jan 2023 19:37:36 +0100
Here is an annoyance I bump into sometimes.  Recipe:

    C-x C-f /-:somewhere-remote:
    M-x shell ;; Emacs asks me about the remote shell and that is not
              ;; what I want
    C-g
    C-x C-f somewhere-local
    M-x shell ;; Emacs still asks me about the previous remote shell

It seems to come from the fact that when in shell.el line 865 the
"*shell*" buffer is already created and its default-directory set…  Or
maybe, I'm just doing it wrong when I want a shell.


In GNU Emacs 30.0.50 (build 1, x86_64-unknown-openbsd7.2, cairo version
 1.17.6) of 2023-01-20 built on computer
Repository revision: 167bf3408e437704b27171c6fad5d15bbc623b3a
Repository branch: master
Windowing system distributor 'The X.Org Foundation', version 11.0.12101004
System Description: OpenBSD computer 7.2 GENERIC.MP#933 amd64

Configured using:
 'configure --prefix=/home/manuel/emacs --bindir=/home/manuel/bin
 --with-x-toolkit=no --without-sound --without-compress-install
 CPPFLAGS=-I/usr/local/include LDFLAGS=-L/usr/local/lib'

Configured features:
CAIRO DBUS FREETYPE GIF GLIB GMP GNUTLS GSETTINGS HARFBUZZ JPEG JSON
LCMS2 LIBOTF LIBXML2 MODULES NOTIFY KQUEUE OLDXMENU PDUMPER PNG RSVG
SQLITE3 THREADS TIFF TREE_SITTER WEBP X11 XDBE XIM XINPUT2 XPM ZLIB

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

Major mode: ELisp/l

Minor modes in effect:
  auto-revert-mode: t
  bug-reference-prog-mode: t
  paredit-mode: t
  display-time-mode: t
  display-battery-mode: t
  server-mode: t
  shell-dirtrack-mode: t
  repeat-mode: t
  desktop-save-mode: t
  global-eldoc-mode: t
  eldoc-mode: t
  show-paren-mode: t
  electric-indent-mode: t
  mouse-wheel-mode: t
  menu-bar-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  blink-cursor-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:
/home/manuel/.emacs.d/elpa/ef-themes-0.10.0/theme-loaddefs hides /home/manuel/emacs/share/emacs/30.0.50/lisp/theme-loaddefs
/home/manuel/.emacs.d/elpa/transient-0.3.7/transient hides /home/manuel/emacs/share/emacs/30.0.50/lisp/transient

Features:
(shadow sort mail-extr emacsbug dabbrev shortdoc pulse cl-print help-fns
radix-tree gnus-cite org-indent org-element org-persist org-id
org-refile avl-tree oc-basic ol-eww ol-rmail ol-mhe ol-irc ol-info
ol-gnus nnselect ol-docview doc-view jka-compr image-mode exif ol-bibtex
bibtex ol-bbdb ol-w3m ol-doi org-link-doi mhtml-mode js c-ts-mode
css-mode treesit smie sgml-mode facemenu imenu eww xdg url-queue mm-url
vc-hg conf-mode view reveal autorevert filenotify vc-git diff-mode
vc-dispatcher vc-svn bug-reference gnus-dired ibuf-ext ibuffer
ibuffer-loaddefs paredit edmacro time battery exwm-randr xcb-randr
exwm-config exwm exwm-input xcb-keysyms xcb-xkb exwm-manage
exwm-floating xcb-cursor xcb-render exwm-layout exwm-workspace exwm-core
xcb-ewmh xcb-icccm xcb xcb-xproto xcb-types xcb-debug kmacro server
stimmung-themes modus-operandi-theme modus-themes ytdious osm mingus
libmpdee reporter edebug debug backtrace transmission diary-lib
diary-loaddefs color calc-bin calc-ext calc calc-loaddefs rect calc-macs
w3m-load mu4e mu4e-org mu4e-main mu4e-view mu4e-headers mu4e-compose
mu4e-draft mu4e-actions smtpmail mu4e-search mu4e-lists mu4e-bookmarks
mu4e-mark mu4e-message flow-fill mule-util hl-line mu4e-contacts
mu4e-update mu4e-folders mu4e-server mu4e-context mu4e-vars mu4e-helpers
mu4e-config bookmark ido supercite regi ebdb-message ebdb-gnus gnus-msg
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 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 gmm-utils mailheader gnus-win gnus
nnheader gnus-util mail-utils range mm-util mail-prsvr ebdb-mua ebdb-com
crm ebdb-format ebdb mailabbrev eieio-opt cl-extra help-mode speedbar
ezimage dframe eieio-base pcase timezone org ob ob-tangle ob-ref ob-lob
ob-table ob-exp org-macro org-src ob-comint org-pcomplete org-list
org-footnote org-faces org-entities ob-emacs-lisp ob-core ob-eval
org-cycle org-table ol org-fold org-fold-core org-keys oc org-loaddefs
find-func cal-menu calendar cal-loaddefs org-version org-compat org-macs
visual-basic-mode cl web-mode derived disp-table erlang-start
smart-tabs-mode skeleton cc-mode cc-fonts cc-guess cc-menus cc-cmds
cc-styles cc-align cc-engine cc-vars cc-defs slime-asdf grep slime-tramp
tramp rx tramp-loaddefs trampver tramp-integration cus-edit cus-load
wid-edit files-x tramp-compat shell pcomplete parse-time iso8601
time-date ls-lisp format-spec slime-fancy slime-indentation
slime-cl-indent cl-indent slime-trace-dialog slime-fontifying-fu
slime-package-fu slime-references slime-compiler-notes-tree advice
slime-scratch slime-presentations bridge slime-macrostep macrostep
slime-mdot-fu slime-enclosing-context slime-fuzzy slime-fancy-trace
slime-fancy-inspector slime-c-p-c slime-editing-commands slime-autodoc
slime-repl slime-parse slime apropos compile text-property-search etags
fileloop generator xref project arc-mode archive-mode noutline outline
icons pp comint ansi-osc ansi-color ring hyperspec thingatpt
slime-autoloads dired-aux dired-x dired dired-loaddefs notifications
dbus xml repeat easy-mmode desktop frameset stimmung-themes-autoloads
rust-mode-autoloads ebdb-autoloads magit-autoloads debbugs-autoloads
git-commit-autoloads magit-section-autoloads ef-themes-autoloads
with-editor-autoloads paredit-autoloads dash-autoloads ytdious-autoloads
transmission-autoloads transient-autoloads exwm-autoloads
hyperbole-autoloads detached-autoloads info 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/x-win x-win
term/common-win x-dnd 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 dbusbind kqueue lcms2 dynamic-setting system-font-setting
font-render-setting cairo xinput2 x multi-tty make-network-process
emacs)

Memory information:
((conses 16 692146 52573)
 (symbols 48 55407 4)
 (strings 32 173598 8434)
 (string-bytes 1 5536475)
 (vectors 16 103710)
 (vector-slots 8 2132196 233661)
 (floats 8 585 352)
 (intervals 56 17977 418)
 (buffers 984 84))

-- 
Manuel Giraud




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#60968; Package emacs. (Fri, 20 Jan 2023 19:01:02 GMT) Full text and rfc822 format available.

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

From: Michael Albinus <michael.albinus <at> gmx.de>
To: Manuel Giraud <manuel <at> ledu-giraud.fr>
Cc: 60968 <at> debbugs.gnu.org
Subject: Re: bug#60968: 30.0.50; M-x shell keeps an old default-directory
Date: Fri, 20 Jan 2023 20:00:46 +0100
Manuel Giraud <manuel <at> ledu-giraud.fr> writes:

Hi Manuel,

> Here is an annoyance I bump into sometimes.  Recipe:
>
>     C-x C-f /-:somewhere-remote:
>     M-x shell ;; Emacs asks me about the remote shell and that is not
>               ;; what I want
>     C-g
>     C-x C-f somewhere-local
>     M-x shell ;; Emacs still asks me about the previous remote shell
>
> It seems to come from the fact that when in shell.el line 865 the
> "*shell*" buffer is already created and its default-directory set…  Or
> maybe, I'm just doing it wrong when I want a shell.

This is the specified behavior of the `shell' command. From the
docstring:

--8<---------------cut here---------------start------------->8---
If BUFFER exists but shell process is not running, make new shell.
If BUFFER exists and shell process is running, just switch to BUFFER.
--8<---------------cut here---------------end--------------->8---

That is, the shell buffer is reused, even if you have interrupted with
C-g, and the shell didn't start yet. And so its default-directory.

If you want another buffer (and another shell therefore), the following
from the docstring is relevant:

--8<---------------cut here---------------start------------->8---
Interactively, a prefix arg means to prompt for BUFFER.
--8<---------------cut here---------------end--------------->8---

So your use case needs "C-u M-x shell". Or you delete the shell buffer
after you have interrupted with C-g.

Best regards, Michael.




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#60968; Package emacs. (Fri, 20 Jan 2023 20:04:01 GMT) Full text and rfc822 format available.

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

From: Manuel Giraud <manuel <at> ledu-giraud.fr>
To: Michael Albinus <michael.albinus <at> gmx.de>
Cc: 60968 <at> debbugs.gnu.org
Subject: Re: bug#60968: 30.0.50; M-x shell keeps an old default-directory
Date: Fri, 20 Jan 2023 21:03:37 +0100
Michael Albinus <michael.albinus <at> gmx.de> writes:

[...]

> This is the specified behavior of the `shell' command. From the
> docstring:
>
> If BUFFER exists but shell process is not running, make new shell.
> If BUFFER exists and shell process is running, just switch to BUFFER.
>
>
> That is, the shell buffer is reused, even if you have interrupted with
> C-g, and the shell didn't start yet. And so its default-directory.
>
> If you want another buffer (and another shell therefore), the following
> from the docstring is relevant:
>
> Interactively, a prefix arg means to prompt for BUFFER.
>
> So your use case needs "C-u M-x shell". Or you delete the shell buffer
> after you have interrupted with C-g.

Yes, you're right I'd better need to fix my usage because the "using an
existing shell buffer" feature is valuable.  Sorry for this bug report
then.
-- 
Manuel Giraud




Reply sent to Michael Albinus <michael.albinus <at> gmx.de>:
You have taken responsibility. (Sat, 21 Jan 2023 08:50:03 GMT) Full text and rfc822 format available.

Notification sent to Manuel Giraud <manuel <at> ledu-giraud.fr>:
bug acknowledged by developer. (Sat, 21 Jan 2023 08:50:03 GMT) Full text and rfc822 format available.

Message #16 received at 60968-done <at> debbugs.gnu.org (full text, mbox):

From: Michael Albinus <michael.albinus <at> gmx.de>
To: Manuel Giraud <manuel <at> ledu-giraud.fr>
Cc: 60968-done <at> debbugs.gnu.org
Subject: Re: bug#60968: 30.0.50; M-x shell keeps an old default-directory
Date: Sat, 21 Jan 2023 09:49:05 +0100
Manuel Giraud <manuel <at> ledu-giraud.fr> writes:

Hi Manuel,

> Yes, you're right I'd better need to fix my usage because the "using an
> existing shell buffer" feature is valuable.  Sorry for this bug report
> then.

I'm closing this bug, therefore.

Best regards, Michael.




Added tag(s) notabug. Request was from Michael Albinus <michael.albinus <at> gmx.de> to control <at> debbugs.gnu.org. (Sat, 21 Jan 2023 08:56:02 GMT) Full text and rfc822 format available.

bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Sat, 18 Feb 2023 12:24:10 GMT) Full text and rfc822 format available.

This bug report was last modified 2 years and 119 days ago.

Previous Next


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