GNU bug report logs -
#78262
30.1; comint-delchar-or-maybe-eof doesn't respect delete-active-region
Previous Next
Reported by: Sebastián Monía <sebastian <at> sebasmonia.com>
Date: Mon, 5 May 2025 14:45:02 UTC
Severity: normal
Merged with 73527
Found in versions 30.1, 30.0.90
Fixed in version 31.0.50
Done: Juri Linkov <juri <at> linkov.net>
Bug is archived. No further changes may be made.
Full log
View this message in rfc822 format
> From: Sebastián Monía
> <sebastian <at> sebasmonia.com>
> Date: Mon, 05 May 2025 10:43:59 -0400
>
> Noticed this in SQL Interactive mode, but just tested in M-x shell and
> the same thing happens.
> Comint and its derived modes override C-d 'delete-forward-char' with
> 'comint-delchar-or-maybe-eof'.
>
> The latter internally uses delete-char, which doesn't respect
> delete-active-region. The delete-char docstring states:
>
> > The command 'delete-forward-char' is preferable for interactive use,
> > e.g. because it respects values of 'delete-active-region' and
> > 'overwrite-mode'.
>
> Since comint-delchar-or-maybe-eof is meant for interactive use, maybe we
> should change the command:
>
> (defun comint-delchar-or-maybe-eof (arg)
> "Delete ARG characters forward or send an EOF to subprocess.
> Sends an EOF only if point is at the end of the buffer and there is no input."
> (interactive "p" comint-mode)
> (let ((proc (get-buffer-process (current-buffer))))
> (if (and (eobp) proc (= (point) (marker-position (process-mark proc))))
> (comint-send-eof)
> ;; delete-char ==> delete-forward-char
> (delete-forward-char arg nil))))
>
> If we are good with the change, I can send a proper patch with changelog
> etc. But maybe there's a reason it works like this, and my limited
> comint usage misses the point.
I'm not a frequent user of comint-derived modes, but is this indeed
consistent with what users expect from interactive shells? AFAIK,
shells don't support the notion of "active region" or
"delete-selection" or anything similar. Wouldn't this change in
behavior surprise people? Should we perhaps have it as an opt-in
behavior?
This bug report was last modified 6 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.