Subject: Re: bug#74524: 29.4; dirtrack-mode

From: Colton Goates <[email-masked]>
Date: Mon, 25 Nov 2024 19:32:14 -0700

I did what Ship Mints suggested, and it didn't work on my macbook i.e. no
directory tracking is happening. I checked directory tracking via the
`default-directory` variable and it did not change in response to cd
commands. I made sure to restart emacs to ensure that everything got
loaded. I have Emacs 29.4 (installed with brew) and I'm running macOS
Sequoia 15.1.1. See below for my configuration:

Here is my .bashrc:

*function myprompt () {  printf "\e]7;file://%s%s\e\\" "$HOSTNAME"
"$PWD"}export PROMPT_COMMAND=myprompt*

And I added this to my init.el
*(add-hook 'comint-output-filter-functions #'comint-osc-process-output)*

Does anyone have debugging tips?

On Mon, Nov 25, 2024 at 12:08 PM Ship Mints <[email-masked]> wrote:

> If you're using a shell that can support the following ansi osc 7 escape
> sequence excerpt I took from my bashrc, just disable dirtrack via
> (shell-dirtrack-mode -1).
>
> function myprompt () {
>   printf "\e]7;file://%s%s\e\\" "$HOSTNAME" "$PWD"
> }
>
> # Do these only if we're in an interactive shell
> case $- in
> *i*)
> # ...snip...
>   export PROMPT_COMMAND=myprompt
>
> On Mon, Nov 25, 2024 at 1:56 PM Eli Zaretskii <[email-masked]> wrote:
>
>> > From: Colton Goates <[email-masked]>
>> > Date: Mon, 25 Nov 2024 10:27:00 -0700
>> > Cc: [email-masked]
>> >
>> > Coltons-MacBook-Pro:/Users/coltongoates/software-dev/$ isn't intended
>> to be a directory name, it's a string
>> > that's intended to look exactly like my prompt. (I know it's pretty
>> contrived.)
>> >
>> > So, if someone prints something that resembles their prompt, dirtrack
>> will change the directory, because
>> > dirtrack thinks it just saw the shell prompt appear, but it really just
>> saw a string that resembles the prompt.
>> > Does that make more sense now?
>>
>> What do you expect dirtrack to do when you deliberately try to deceive
>> it?  AFAIU, dirtrack is a piece of heuristic ad-hocery (as explained
>> in its commentary), so it cannot be expected to survive such
>> deception.  What kind of changes would you suggest to consider to
>> handle the cases such as this one?
>>
>>
>>
>>