all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Drew Adams <drew.adams@oracle.com>
To: Juri Linkov <juri@linkov.net>,
	Michael Heerdegen <michael_heerdegen@web.de>
Cc: 39902@debbugs.gnu.org
Subject: bug#39902: 28.0.50; Marking in dired with active region
Date: Wed, 4 Mar 2020 17:11:25 -0800 (PST)	[thread overview]
Message-ID: <d952ed30-3b94-452d-84ee-3a012e6c9f55@default> (raw)
In-Reply-To: <87tv33r8e2.fsf@mail.linkov.net>

> The peculiarity of dired mode is that it puts point in front of file name.
> So when the region doesn't cover the file name visually, it should not take
> the file name outside the region into consideration for marking.

That's what I said.  It's the navigation keys,
which didn't select complete lines, which led
to the impression that not all files "in" the
region got marked.

It's about creation of the region.  You can
select complete lines, in which case `dired-mark'
does what is expected: marks all of the files
whose (full) lines are selected.

But it's also possible to have `dired-mark'
instead mark all of the files with ANY part of
their line (not ALL of their line) in the region.

> Exactly like kill-region should not kill text outside of the active region,
> dired-mark should not mark files outside of the active region.

Bad analogy.  Especially for purposes of marking or
acting on files "in the region", what's important is
that the region capture _some part_ of a file's line,
not necessarily all of it.

Marking is not, like `kill-region', an action on the
characters of text in the region.  It uses the region
only to indicate a sequence of files to act on.

This, or similar, is the behavior needed, as
Stephen Berman pointed out:

(defun diredp-mark-region-files (&optional unmark-p)
  "Mark all of the files in the current region (if it is active).
With non-nil prefix arg, unmark them instead."
  (interactive "P")
  (let ((beg  (min (point) (mark)))
        (end  (max (point) (mark)))
        (inhibit-field-text-motion  t)) ; Just in case.
    (setq beg  (save-excursion (goto-char beg)
                               (line-beginning-position))
          end  (save-excursion (goto-char end)
                               (line-end-position)))
    (let ((dired-marker-char  (if unmark-p
                                  ?\040
                                dired-marker-char)))
      (diredp-mark-if (and (<= (point) end)
                           (>= (point) beg)
                           (diredp-this-file-unmarked-p))
                      "region file"))))

> Especially more dangerous command dired-flag-file-deletion
> should not delete files outside of the active region.

Not at all.  The command simply marks; it does not
delete.  Subsequently using `x', to delete, prompts
you for confirmation, specifying the files to be
deleted.  I don't see any danger.

> > (2) Most of the time I rather want `dired-mark-files-regexp' to respect
> > an active region - but that isn't implemented (though it would not be
> > hard to do).  I think that would be useful.
> 
> The problem is that this feature should be implemented in the macro
> dired-mark-if, but then it will affect many other commands:
> 
> dired-mark-files-containing-regexp
> dired-mark-symlinks
> dired-mark-directories
> dired-mark-executables
> dired-flag-auto-save-files
> dired-flag-backup-files
> dired-compare-directories
> dired-mark-unmarked-files
> dired-mark-sexp
> ...

Those are all marking commands, so there's no problem.

That said, I'm not sure it would be a great idea to
have them (or have even just `dired-mark-files-regexp')
act on only the files in the active region.  Maybe,
maybe not.

It's certainly not hard, as a user, to narrow first
and then use such commands (but yes, in that case
you'll want to be sure to get the full lines in the
narrowing).





  reply	other threads:[~2020-03-05  1:11 UTC|newest]

Thread overview: 68+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-03-04 14:29 bug#39902: 28.0.50; Marking in dired with active region Michael Heerdegen
2020-03-04 15:41 ` Drew Adams
2020-03-04 16:04   ` Stephen Berman
2020-03-04 21:07     ` Drew Adams
2020-03-04 23:46 ` Juri Linkov
2020-03-05  1:11   ` Drew Adams [this message]
2020-03-05 13:58   ` Michael Heerdegen
2020-03-05 23:42     ` Juri Linkov
2020-03-06  2:30       ` Drew Adams
2020-03-07  0:07       ` Michael Heerdegen
2020-03-08  0:38         ` Juri Linkov
2020-03-08 14:00           ` Michael Heerdegen
2020-03-08 17:04             ` Drew Adams
2020-03-08 23:56               ` Juri Linkov
2020-03-09  0:37                 ` Drew Adams
2020-03-09 14:53                   ` Michael Heerdegen
2020-03-09 22:28                   ` Juri Linkov
2020-03-10  0:41                     ` Drew Adams
2020-03-10 23:24                       ` Juri Linkov
2020-03-10 23:49                         ` Stephen Berman
2020-03-10 23:56                           ` Juri Linkov
2020-03-11  0:24                         ` Drew Adams
2020-03-10 23:55                     ` Michael Heerdegen
2020-03-11  0:08                       ` Juri Linkov
2020-03-11  0:18                         ` Juri Linkov
2020-03-11  0:29                           ` Drew Adams
2020-03-11  1:21                             ` Michael Heerdegen
2020-03-12  0:43                             ` Juri Linkov
2020-03-12  1:13                               ` Drew Adams
2020-03-13  0:39                                 ` Juri Linkov
2020-03-13  8:31                                   ` Pieter van Oostrum
2020-03-13 22:30                                     ` Michael Heerdegen
2020-03-14 18:03                                       ` Drew Adams
2020-03-14 17:56                                   ` Drew Adams
2020-03-14 23:45                                     ` Juri Linkov
2020-03-15  2:46                                       ` Michael Heerdegen
2020-03-15 20:52                                         ` Drew Adams
2020-03-15 20:50                                       ` Drew Adams
2020-03-15 23:41                                         ` Juri Linkov
2020-03-16  1:46                                           ` Drew Adams
2020-03-17  0:51                                             ` Michael Heerdegen
2020-03-18 23:51                                               ` Juri Linkov
2020-03-19 23:54                                                 ` Juri Linkov
2020-03-22  2:48                                                   ` Michael Heerdegen
2020-03-22 23:33                                                     ` Drew Adams
2020-03-23  0:43                                                       ` Juri Linkov
2020-03-23 15:09                                                         ` Drew Adams
2020-03-24 21:58                                                           ` Juri Linkov
2020-03-24 22:14                                                             ` Drew Adams
2020-03-23  0:35                                                     ` Juri Linkov
2020-03-23 15:20                                                       ` Drew Adams
2020-03-24 21:58                                                         ` Juri Linkov
2020-03-24 22:13                                                           ` Drew Adams
2020-03-16 15:21                             ` Drew Adams
2020-03-09 14:52                 ` Michael Heerdegen
2020-03-09 14:50               ` Michael Heerdegen
2020-03-09 15:22                 ` Drew Adams
2020-03-10 16:04                   ` Michael Heerdegen
2020-03-10 16:33                     ` Drew Adams
2020-03-09  9:04         ` martin rudalics
2020-03-09 15:02           ` Michael Heerdegen
2020-03-09 15:39             ` Drew Adams
2020-03-10 16:08               ` Michael Heerdegen
2020-03-09 17:12             ` martin rudalics
2020-03-10 15:52               ` Michael Heerdegen
  -- strict thread matches above, loose matches on Subject: below --
2020-05-08  8:26 Making Emacs popular again with a video Nathan Colinet
2020-05-10 20:57 ` Nathan Colinet
2020-05-12  3:12   ` Richard Stallman
2020-05-12 12:57     ` GNU Emacs raison d'etre excalamus--- via Emacs development discussions.
2020-05-13 16:18       ` Karl Fogel
2020-05-13 19:39         ` Andreas Röhler
2020-05-13 20:05           ` Karl Fogel
2020-05-13 20:52             ` Dmitry Gutov
2020-05-13 22:04               ` Karl Fogel
2020-05-13 22:55                 ` Dmitry Gutov
2020-05-14  4:56                   ` Karl Fogel
2020-05-17  1:28                     ` Dmitry Gutov
2020-05-17  1:59                       ` Jean-Christophe Helary
2020-05-18  3:43                         ` transient Richard Stallman
2020-05-18  6:58                           ` transient Joost Kremers
2020-05-18 18:41                             ` transient Howard Melman
2020-05-19  5:38                               ` transient Drew Adams
2020-05-19 14:00                                 ` transient Arthur Miller
2020-05-20  3:14                                   ` transient Michael Heerdegen
     [not found]                                     ` <87tuztngxr.fsf@mail.linkov.net>
2020-06-03  4:32                                       ` bug#39902: transient Michael Heerdegen
2020-06-03 22:49                                         ` bug#39902: 28.0.50; Marking in dired with active region Juri Linkov
2020-06-04 12:31                                           ` Michael Heerdegen
2020-06-04 22:18                                             ` Juri Linkov

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=d952ed30-3b94-452d-84ee-3a012e6c9f55@default \
    --to=drew.adams@oracle.com \
    --cc=39902@debbugs.gnu.org \
    --cc=juri@linkov.net \
    --cc=michael_heerdegen@web.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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.