unofficial mirror of bug-gnu-emacs@gnu.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
     [not found] <5230692c-c665-a330-7a12-e59fa25d97dd@gmail.com>
     [not found] ` <be365062-44db-24bd-0d20-82b27609a5e5@gmail.com>
     [not found]   ` <E1jYLLe-0003O1-Ex@fencepost.gnu.org>
     [not found]     ` <M77rwr6--3-2@tutanota.com>
     [not found]       ` <871rnnvmdx.fsf@red-bean.com>
     [not found]         ` <efc501d8-a73e-0c5c-f518-001396d89c55@online.de>
     [not found]           ` <87pnb7sira.fsf@red-bean.com>
     [not found]             ` <06bcddd4-6991-e4f7-e944-93de14af263d@yandex.ru>
     [not found]               ` <87h7wjsd8o.fsf@red-bean.com>
     [not found]                 ` <20897f01-122d-7f91-eac2-70f5ad75796f@yandex.ru>
     [not found]                   ` <87d077qfmm.fsf@red-bean.com>
     [not found]                     ` <d1b52baf-6940-a34e-baf8-f06906c891db@yandex.ru>
     [not found]                       ` <806193B0-1248-4522-83F1-21FA8206C5A8@traduction-libre.org>
     [not found]                         ` <E1jaWgL-0004Y4-Sj@fencepost.gnu.org>
     [not found]                           ` <87imgtlofi.fsf@fastmail.fm>
     [not found]                             ` <lypnb1cch3.fsf@Lumet.home>
     [not found]                               ` <f36b18ee-ddfa-49f6-a007-c8de75913087@default>
     [not found]                                 ` <VI1PR06MB45260C2EA2DE91E2D44774F396B90@VI1PR06MB4526.eurprd06.prod.outlook.com>
     [not found]                                   ` <87zha35mci.fsf@web.de>
     [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

  List information: https://www.gnu.org/software/emacs/

* 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 public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).