GNU bug report logs - #17656
24.3; default-directory with aliases in shell-mode

Previous Next

Package: emacs;

Reported by: Jacob Gerlach <jacobgerlach <at> gmail.com>

Date: Sat, 31 May 2014 17:21:01 UTC

Severity: wishlist

Merged with 9555

Found in version 24.3

Fixed in version 29.1

Done: Lars Ingebrigtsen <larsi <at> gnus.org>

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 17656 in the body.
You can then email your comments to 17656 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#17656; Package emacs. (Sat, 31 May 2014 17:21:02 GMT) Full text and rfc822 format available.

Acknowledgement sent to Jacob Gerlach <jacobgerlach <at> gmail.com>:
New bug report received and forwarded. Copy sent to bug-gnu-emacs <at> gnu.org. (Sat, 31 May 2014 17:21:02 GMT) Full text and rfc822 format available.

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

From: Jacob Gerlach <jacobgerlach <at> gmail.com>
To: bug-gnu-emacs <at> gnu.org
Subject: 24.3; default-directory with aliases in shell-mode
Date: Sat, 31 May 2014 10:16:12 -0400
[Message part 1 (text/plain, inline)]
Changing directories with a shell alias does not update
default-directory. This affects subsequent commands such as dired, and
shell behavior such as tab completion. Follow on relative path changes
such as `$ cd ..' have the expected effect in the shell, and move
default-directory relative to the working directory before using a cd
alias. Subsequent non-aliased cd commands do not affect
default-directory unless the working directory of the shell matches
default-directory.

$ emacs -q
`M-x shell RET'
~$ pwd
/home/user
`C-h v default-directory RET'
  => default-directory is a variable defined in `C source code'.
  Its value is "/home/user/"
~$ mkdir foobar
~$ cd foobar
~/foobar$
`C-h v default-directory RET'
  => ... Its value is "/home/user/foobar/"
~/foobar$ alias fb='cd foobar'
~/foobar$ cd ..
~$ fb
~/foobar$
`C-h v default-directory RET'
  => ...Its value is "/home/user/"
~/foobar$ cd ..
~$
`C-h v default-directory RET'
  => ...Its value is "/home/"
~$ cd foobar
~/foobar$
`C-h v default-directory RET'
  => ...Its value is "/home/"
~/foobar$ cd /home
/home$ cd user/foobar
~/foobar$
`C-h v default-directory RET'
  => ...Its value is "/home/user/foobar/"

If Emacs crashed, and you have the Emacs process in the gdb debugger,
please include the output from the following gdb commands:
    `bt full' and `xbacktrace'.
For information about debugging Emacs, please read the file
/usr/share/emacs/24.3/etc/DEBUG.


In GNU Emacs 24.3.1 (x86_64-pc-linux-gnu, GTK+ Version 3.4.2)
 of 2014-02-22 on king, modified by Debian
Windowing system distributor `The X.Org Foundation', version 11.0.11303000
System Description: Ubuntu 12.04.4 LTS

Configured using:
 `configure '--build' 'x86_64-linux-gnu' '--build' 'x86_64-linux-gnu'
 '--prefix=/usr' '--sharedstatedir=/var/lib' '--libexecdir=/usr/lib'
 '--localstatedir=/var/lib' '--infodir=/usr/share/info'
 '--mandir=/usr/share/man' '--with-pop=yes'
 '--enable-locallisppath=/etc/emacs24:/etc/emacs:/usr/local/share/emacs/24.3/site-lisp:/usr/local/share/emacs/site-lisp:/usr/share/emacs/24.3/site-lisp:/usr/share/emacs/site-lisp'
 '--with-crt-dir=/usr/lib/x86_64-linux-gnu' '--with-x=yes'
 '--with-x-toolkit=gtk3' '--with-toolkit-scroll-bars'
 'build_alias=x86_64-linux-gnu' 'CFLAGS=-g -O2 -fstack-protector
 --param=ssp-buffer-size=4 -Wformat -Wformat-security
 -Werror=format-security -Wall' 'LDFLAGS=-Wl,-Bsymbolic-functions
 -Wl,-z,relro' 'CPPFLAGS=-D_FORTIFY_SOURCE=2''

Important settings:
  value of $LANG: en_US.UTF-8
  locale-coding-system: utf-8-unix
  default enable-multibyte-characters: t

Major mode: Shell

Minor modes in effect:
  shell-dirtrack-mode: t
  tooltip-mode: t
  mouse-wheel-mode: t
  tool-bar-mode: t
  menu-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
  transient-mark-mode: t

Recent input:

<menu> s h e l l <return> C-h v d e f a u <tab> d i r <tab> <return> c d
SPC f o o b a r <return> C-h v <up> <return> m k <backspace> <backspace>
c d SPC . . <return> f b <return> a l i a s SPC f b = ' c d SPC f o o b
a r ' <return> l s <return> f b <return> C-h v <up> <return> c d SPC
. . <return> f b <return> C-h v <up> <return> c d SPC . . <return> C-h v
<up> <return> c d SPC f o <tab> o b a r <return> C-h v <up> <return> c d
SPC / <return> c d SPC h o <tab> j a <tab> <return> C-h v <up> <return>
<menu> r e p o r t - e m <tab> <return>

Recent messages:

/home

/

No match

/
~


Load-path shadows:
/usr/share/emacs/24.3/site-lisp/cmake-data/cmake-mode hides
/usr/share/emacs/site-lisp/cmake-mode
/usr/share/emacs/24.3/site-lisp/debian-startup hides
/usr/share/emacs/site-lisp/debian-startup
/usr/share/emacs24/site-lisp/dictionaries-common/ispell hides
/usr/share/emacs/24.3/lisp/textmodes/ispell
/usr/share/emacs24/site-lisp/dictionaries-common/flyspell hides
/usr/share/emacs/24.3/lisp/textmodes/flyspell

Features:
(shadow sort gnus-util mail-extr emacsbug message format-spec rfc822 mml
mml-sec mm-decode mm-bodies mm-encode mail-parse rfc2231 mailabbrev
gmm-utils mailheader sendmail rfc2047 rfc2045 ietf-drums mm-util
mail-prsvr mail-utils pcmpl-unix misearch multi-isearch pp help-mode
easymenu help-fns shell pcomplete comint ansi-color ring
emacs-goodies-el emacs-goodies-custom emacs-goodies-loaddefs easy-mmode
time-date tooltip ediff-hook vc-hooks lisp-float-type mwheel x-win x-dnd
tool-bar dnd fontset image regexp-opt fringe tabulated-list newcomment
lisp-mode register page menu-bar rfn-eshadow timer select scroll-bar
mouse jit-lock font-lock syntax facemenu font-core frame cham georgian
utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao korean
japanese hebrew greek romanian slovak czech european ethiopic indian
cyrillic chinese case-table epa-hook jka-cmpr-hook help simple abbrev
minibuffer loaddefs button faces cus-face macroexp files text-properties
overlay sha1 md5 base64 format env code-pages mule custom widget
hashtable-print-readable backquote make-network-process dbusbind
dynamic-setting system-font-setting font-render-setting move-toolbar gtk
x-toolkit x multi-tty emacs)
[Message part 2 (text/html, inline)]

Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#17656; Package emacs. (Sat, 31 May 2014 17:31:01 GMT) Full text and rfc822 format available.

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

From: Glenn Morris <rgm <at> gnu.org>
To: Jacob Gerlach <jacobgerlach <at> gmail.com>
Cc: 17656 <at> debbugs.gnu.org
Subject: Re: bug#17656: 24.3; default-directory with aliases in shell-mode
Date: Sat, 31 May 2014 13:30:46 -0400
This is http://debbugs.gnu.org/cgi/bugreport.cgi?bug=9555
You can use M-x shell-resync-dirs to fix things up.




Forcibly Merged 9555 17656. Request was from Glenn Morris <rgm <at> gnu.org> to control <at> debbugs.gnu.org. (Sat, 31 May 2014 17:32:02 GMT) Full text and rfc822 format available.

Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#17656; Package emacs. (Mon, 02 Jun 2014 15:55:02 GMT) Full text and rfc822 format available.

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

From: Jacob Gerlach <jacobgerlach <at> gmail.com>
To: Glenn Morris <rgm <at> gnu.org>
Subject: Re: bug#17656: 24.3; default-directory with aliases in shell-mode
Date: Mon, 2 Jun 2014 11:17:08 -0400
[Message part 1 (text/plain, inline)]
Glenn,

Thanks, that did the trick.

I'd like to automate this by reading in aliases from my bash aliases file.
Would it be reasonable to do something like adding shell-resync-dirs as a
(conditional, if last command matched a cd alias) hook on
comint-output-filter-functions?

Additionally, is there an easy way to hide the execution of `dirs' from the
shell buffer?

Thanks, Jake


On Sat, May 31, 2014 at 1:30 PM, Glenn Morris <rgm <at> gnu.org> wrote:

>
> This is http://debbugs.gnu.org/cgi/bugreport.cgi?bug=9555
> You can use M-x shell-resync-dirs to fix things up.
>
[Message part 2 (text/html, inline)]

Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#17656; Package emacs. (Thu, 05 May 2022 13:07:02 GMT) Full text and rfc822 format available.

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

From: Lars Ingebrigtsen <larsi <at> gnus.org>
To: bug#9555 <9555 <at> debbugs.gnu.org>
Cc: 17656 <at> debbugs.gnu.org
Subject: Re: bug#17656: 24.3; default-directory with aliases in shell-mode
Date: Thu, 05 May 2022 15:05:59 +0200
> Is it possible to come up with a third way that is better than these?

Emacs 29 has this via `comint-osc-directory-tracker', which is on by
default.  I think that's probably as good as it's going to get, so I'm
therefore closing this bug report.

-- 
(domestic pets only, the antidote for overdose, milk.)
   bloggy blog: http://lars.ingebrigtsen.no





bug marked as fixed in version 29.1, send any further explanations to 17656 <at> debbugs.gnu.org and Jacob Gerlach <jacobgerlach <at> gmail.com> Request was from Lars Ingebrigtsen <larsi <at> gnus.org> to control <at> debbugs.gnu.org. (Thu, 05 May 2022 13:07:03 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. (Fri, 03 Jun 2022 11:24:05 GMT) Full text and rfc822 format available.

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

Previous Next


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