From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Rudi C Newsgroups: gmane.emacs.devel Subject: Re: PR: dired-do-create-files now checks for trailing slashes in the target Date: Wed, 29 Sep 2021 18:01:27 +0330 Message-ID: References: <831r58k0cx.fsf@gnu.org> <87tui4qyni.fsf@gnu.org> <83tui4iift.fsf@gnu.org> <874ka43rp1.fsf@gnu.org> <83ee97il43.fsf@gnu.org> <87k0iz32t6.fsf@gnu.org> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="0000000000003436a605cd233061" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="2220"; mail-complaints-to="usenet@ciao.gmane.io" Cc: Eli Zaretskii , Stefan Kangas , emacs-devel@gnu.org To: Tassilo Horn Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Wed Sep 29 16:36:52 2021 Return-path: Envelope-to: ged-emacs-devel@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1mVahY-0000D2-93 for ged-emacs-devel@m.gmane-mx.org; Wed, 29 Sep 2021 16:36:52 +0200 Original-Received: from localhost ([::1]:33304 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1mVahX-0000sp-5H for ged-emacs-devel@m.gmane-mx.org; Wed, 29 Sep 2021 10:36:51 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:33464) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mVaca-00056R-1d for emacs-devel@gnu.org; Wed, 29 Sep 2021 10:31:44 -0400 Original-Received: from mail-il1-x131.google.com ([2607:f8b0:4864:20::131]:40580) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1mVacX-0005tZ-Sd; Wed, 29 Sep 2021 10:31:43 -0400 Original-Received: by mail-il1-x131.google.com with SMTP id k13so3042292ilo.7; Wed, 29 Sep 2021 07:31:40 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=deU4oQBCisGNmDzzTWYyLGooZbge7uU+uEsEkZxYfak=; b=n1i2bsXJpcw0OSFoc9RVquKMe1CDClO71dLB9Yf6Gy45eTmOTB0q9GxeWAoRahJl4p 74s6nWawrrC+j2f9Fxa+mLjZk9qT+ZbaWJ3D8nQ2bH1JZTWb3G+SeObKX4ITTH9o2dSC pjU5Ak7B+DSclKBV3DglJMjvWz+BBIgh1mPPmcZg3aO9u4iCNlqbVhbG7BeMTSPeqet+ J/FXd5rbJiqoiCiGQmJ4d07LD5y3dZicTHjLA2KwOMcdsAHMLbdLY4I/bp1dBu6a8msU KpoJXvPierAO8A/McRl7mnnZaUTLwPMjtS+iUmTUZ4AQf40k3nXBksXOKdy0S8ihZnpJ BpwA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=deU4oQBCisGNmDzzTWYyLGooZbge7uU+uEsEkZxYfak=; b=va7VY3BbEfjUEEIMQqgoQ28WlwS6QLLP8ghZBEgP6dD7+XOXYGThNMR8e6O0wBAQNn B+efcHfyXbXazMSQtQfIAszojfpcTE4rcDqd/9IWuOwjdyaTx/0Igs0CFeyAjxPKvqjT 0qFVlhkwjyaZnrKTdThITxgI6h9eyHNa2SkdwpMt73oy4NCa/+gxiuurX6JqAEC+wCTs k6hgBghkWO5h5/BZXuJRkS8CgCwo6XYbIWHY0nuL8Ownvpq9KQw003aeuafqylkhmilq gvQzpUYneS0z5A6DryoWOWhxgsbprdSNm6zawBS23riKo0q2AX9fEF0JUwgfPNJIdteG fkhw== X-Gm-Message-State: AOAM532m5dfLcChZig9C7q6gFxZApXnFT83Vd12dSOUqgJP5masnSmGw yhSKQJE7SnGECSoFrFOsDcH4p26YteOeGUhmDTXNv8nnqfQTvMnB X-Google-Smtp-Source: ABdhPJxzWYwxYNVkrtGX82xiRFqzlJkp2B24+bodtAKu4nmxSe0t6j1Ecp3ZamaINAPRHfEjnnIhToaJFTMRba3y6Hs= X-Received: by 2002:a05:6e02:1088:: with SMTP id r8mr8196ilj.46.1632925899778; Wed, 29 Sep 2021 07:31:39 -0700 (PDT) In-Reply-To: <87k0iz32t6.fsf@gnu.org> Received-SPF: pass client-ip=2607:f8b0:4864:20::131; envelope-from=rudiwillalwaysloveyou@gmail.com; helo=mail-il1-x131.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Original-Sender: "Emacs-devel" Xref: news.gmane.io gmane.emacs.devel:275803 Archived-At: --0000000000003436a605cd233061 Content-Type: multipart/alternative; boundary="0000000000003436a505cd23305f" --0000000000003436a505cd23305f Content-Type: text/plain; charset="UTF-8" Everything Tassilo said seems correct to me, too. > slash is ephemeral and users may not be aware Even if they are not aware, they won't lose anything, do they? They will also probably pick it up easily enough (I learned this after I observed "inconsistent" behavior in rsync.). I have attached a new patch that adds a custom option. While I do like having the option, IMO it should be on by default. > Is there some other way we could get this > without relying on the difference between foo and foo/? A separate > command, perhaps? Or some extra prompting? I think we can add an `'ask' choice to this custom variable I introduced in this patch, but that really seems like overkill to me; You can just set `dired-create-destination-dirs' to `'ask', and if you refuse to create the new directory, you will still have your previous behavior: `old_name` -> `new_name/` -> user refuses dired' prompt to create a new directory -> fired moves `old_name` -> `new_name` On Wed, Sep 29, 2021 at 5:24 PM Tassilo Horn wrote: > Hi Stefan, > > > BTW, in rsync I can't do "foo/bar/". Does it make sense to support > > that, perhaps optionally? Much like "mkdir -p". > > That does already work with Rudi's patch and > dired-create-destination-dirs set to a non-nil value. ;-) > > Bye, > Tassilo > --0000000000003436a505cd23305f Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Everything Tassilo said = seems correct to me, too.=C2=A0

> slash is ephemeral = and users may not be aware

Even if they are n= ot aware, they won't lose anything, do they? They will also probably pi= ck it up easily enough (I learned this after I observed "inconsistent&= quot; behavior in rsync.).=C2=A0

I have atta= ched a new patch that adds a custom option. While I do like having the opti= on, IMO it should be on by default.

> Is there = some other way we could get this
> without relying on the differenc= e between foo and foo/?=C2=A0 A separate
> command, perhaps?=C2=A0 Or= some extra prompting?

I think we can add an `'ask&#= 39; choice to this custom variable I introduced in this patch, but that rea= lly seems like overkill to me; You can just set `dired-create-destination-d= irs' to `'ask', and if you refuse to create the new directory, = you will still have your previous behavior: `old_name` -> `new_name/` -&= gt; user refuses dired' prompt to create a new directory -> fired mo= ves `old_name` -> `new_name`=C2=A0



On Wed, Sep 29, 2021 at 5:24 PM Tassilo Horn <tsdh@gnu.org> wrote:
Hi Stefan,

> BTW, in rsync I can't do "foo/bar/".=C2=A0 Does it make = sense to support
> that, perhaps optionally?=C2=A0 Much like "mkdir -p".

That does already work with Rudi's patch and
dired-create-destination-dirs set to a non-nil value. ;-)

Bye,
Tassilo
--0000000000003436a505cd23305f-- --0000000000003436a605cd233061 Content-Type: application/octet-stream; name="0002-Added-option-dired-create-destination-dirs-trailing-.patch" Content-Disposition: attachment; filename="0002-Added-option-dired-create-destination-dirs-trailing-.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_ku5lwhi80 RnJvbSA3YTY4MGQwNmU0YjZlY2Y5ZTg4ZTFjMzA5ZjIxNGQ0ZTFhN2Y4NzAwIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBOaWdodE1hY2hpbmFyeSA8cnVkaXdpbGxhbHdheXNsb3ZleW91 QGdtYWlsLmNvbT4KRGF0ZTogV2VkLCAyOSBTZXAgMjAyMSAxNzo1NDoyOSArMDMzMApTdWJqZWN0 OiBbUEFUQ0ggMi8yXSBBZGRlZCBvcHRpb24KIGRpcmVkLWNyZWF0ZS1kZXN0aW5hdGlvbi1kaXJz LXRyYWlsaW5nLXNlcGFyYXRvci1zcGVjaWFsCgotLS0KIGxpc3AvZGlyZWQtYXV4LmVsIHwgMTgg KysrKysrKysrKysrKysrKy0tCiAxIGZpbGUgY2hhbmdlZCwgMTYgaW5zZXJ0aW9ucygrKSwgMiBk ZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9saXNwL2RpcmVkLWF1eC5lbCBiL2xpc3AvZGlyZWQt YXV4LmVsCmluZGV4IGZjYWE4ZGQwMDguLmVlNzI3ZWM1Y2MgMTAwNjQ0Ci0tLSBhL2xpc3AvZGly ZWQtYXV4LmVsCisrKyBiL2xpc3AvZGlyZWQtYXV4LmVsCkBAIC0xNzg5LDYgKzE3ODksMTcgQEAg SWYgYGFzaycsIGFzayBmb3IgdXNlciBjb25maXJtYXRpb24uIgogICA6Z3JvdXAgJ2RpcmVkCiAg IDp2ZXJzaW9uICIyNy4xIikKIAorKGRlZmN1c3RvbSBkaXJlZC1jcmVhdGUtZGVzdGluYXRpb24t ZGlycy10cmFpbGluZy1zZXBhcmF0b3Itc3BlY2lhbCBuaWwKKyAgIklmIHQsIHdoZW4gc2VsZWN0 aW5nIGEgc2luZ2xlIGRlc3RpbmF0aW9uIGluIERpcmVkLCBwYXRocyB0aGF0IGVuZCBpbiBhIHBh dGggc2VwYXJhdG9yIHdpbGwgYmUgdHJlYXRlZCBhcyBhIG5vbi1leGlzdGVudCBkaXJlY3Rvcnks IGFuZCBhY3RlZCBvbiBhY2NvcmRpbmcgdG8gYGRpcmVkLWNyZWF0ZS1kZXN0aW5hdGlvbi1kaXJz Jy4KKworVGhpcyBvcHRpb24gaXMgb25seSByZWxldmFudCBpZiBgZGlyZWQtY3JlYXRlLWRlc3Rp bmF0aW9uLWRpcnMnIGlzIG5vdCBgbmlsJywgYW5kIHlvdSBhcmUgbW92aW5nL2NvcHlpbmcgYSBz aW5nbGUgZGlyZWN0b3J5LgorCitGb3IgZXhhbXBsZSwgd2hlbiByZW5hbWluZyBhIGRpcmVjdG9y eSBuYW1lZCBgb2xkX25hbWUnIHRvIGBuZXdfbmFtZS8nIChub3RlIHRoZSB0cmFpbGluZyBwYXRo IHNlcGFyYXRvciksIGBuZXdfbmFtZScgbWlnaHQgYmUgY3JlYXRlZCBkZXBlbmRpbmcgb24gYGRp cmVkLWNyZWF0ZS1kZXN0aW5hdGlvbi1kaXJzJyBhbmQgYG9sZF9uYW1lJyB3aWxsIGJlIG1vdmVk IGludG8gaXQgaWYgaXQgaXMgY3JlYXRlZDsgT3RoZXJ3aXNlIGBvbGRfbmFtZScgd2lsbCBiZSBk aXJlY3RseSByZW5hbWVkIHRvIGBuZXdfbmFtZScuIgorICA6dHlwZSAnKGNob2ljZSAoY29uc3Qg OnRhZyAiRG8gbm90IHRyZWF0IHBhdGhzIHdpdGggYSB0cmFpbGluZyBwYXRoIHNlcGFyYXRvciBz cGVjaWFsbHkiIG5pbCkKKyAgICAgICAgICAgICAgICAgKGNvbnN0IDp0YWcgIlRyZWF0IHBhdGhz IHdpdGggYSB0cmFpbGluZyBwYXRoIHNlcGFyYXRvciBzcGVjaWFsbHkiIHQpKQorICA6Z3JvdXAg J2RpcmVkCisgIDp2ZXJzaW9uICIyOC4xIikKKwogKGRlZnVuIGRpcmVkLW1heWJlLWNyZWF0ZS1k aXJzIChkaXIpCiAgICJDcmVhdGUgRElSIGlmIGRvZXNuJ3QgZXhpc3QgYWNjb3JkaW5nIHRvIGBk aXJlZC1jcmVhdGUtZGVzdGluYXRpb24tZGlycycuIgogICAod2hlbiAoYW5kIGRpcmVkLWNyZWF0 ZS1kZXN0aW5hdGlvbi1kaXJzIChub3QgKGZpbGUtZXhpc3RzLXAgZGlyKSkpCkBAIC0yMTU3LDgg KzIxNjgsMTEgQEAgT3B0aW9uYWwgYXJnIEhPVy1UTyBkZXRlcm1pbmVzIGhvdyB0byB0cmVhdCB0 aGUgdGFyZ2V0LgogCQkgICAgIHRhcmdldC1kaXIgb3Atc3ltYm9sIGFyZyByZm4tbGlzdCBkZWZh dWx0KSkpKQogCSAoaW50by1kaXIKICAgICAgICAgICAocHJvZ24KLSAgICAgICAgICAgICh3aGVu IChvciAobm90IGRpcmVkLW9uZS1maWxlKQotICAgICAgICAgICAgICAgICAgICAgIChkaXJlY3Rv cnktbmFtZS1wIHRhcmdldCkpCisgICAgICAgICAgICAod2hlbgorICAgICAgICAgICAgICAgIChv cgorICAgICAgICAgICAgICAgICAobm90IGRpcmVkLW9uZS1maWxlKQorICAgICAgICAgICAgICAg ICAoYW5kIGRpcmVkLWNyZWF0ZS1kZXN0aW5hdGlvbi1kaXJzLXRyYWlsaW5nLXNlcGFyYXRvci1z cGVjaWFsCisgICAgICAgICAgICAgICAgICAgICAgKGRpcmVjdG9yeS1uYW1lLXAgdGFyZ2V0KSkp CiAgICAgICAgICAgICAgIChkaXJlZC1tYXliZS1jcmVhdGUtZGlycyB0YXJnZXQpKQogICAgICAg ICAgICAgKGNvbmQgKChudWxsIGhvdy10bykKIAkJICAgOzsgQWxsb3cgdXNlcnMgdG8gY2hhbmdl IHRoZSBsZXR0ZXIgY2FzZSBvZgotLSAKMi4zMi4wCgo= --0000000000003436a605cd233061 Content-Type: application/octet-stream; name="0001-dired-do-create-files-now-checks-for-trailing-slashe.patch" Content-Disposition: attachment; filename="0001-dired-do-create-files-now-checks-for-trailing-slashe.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_ku5lwp6j1 RnJvbSA5NTFlMTJmMzUyYjc4M2IxNWVkYmFiYjQ2MjNhNWM3MjE0MjViZDI1IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBOaWdodE1hY2hpbmFyeSA8cnVkaXdpbGxhbHdheXNsb3ZleW91 QGdtYWlsLmNvbT4KRGF0ZTogVHVlLCAyOCBTZXAgMjAyMSAyMToxNDowNSArMDMzMApTdWJqZWN0 OiBbUEFUQ0ggMS8yXSBkaXJlZC1kby1jcmVhdGUtZmlsZXMgbm93IGNoZWNrcyBmb3IgdHJhaWxp bmcgc2xhc2hlcyBpbgogdGhlIHRhcmdldAoKLS0tCiBsaXNwL2RpcmVkLWF1eC5lbCB8IDQgKysr LQogMSBmaWxlIGNoYW5nZWQsIDMgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAt LWdpdCBhL2xpc3AvZGlyZWQtYXV4LmVsIGIvbGlzcC9kaXJlZC1hdXguZWwKaW5kZXggMzk3YzVj NjdjYi4uZmNhYThkZDAwOCAxMDA2NDQKLS0tIGEvbGlzcC9kaXJlZC1hdXguZWwKKysrIGIvbGlz cC9kaXJlZC1hdXguZWwKQEAgLTIxNTcsNyArMjE1Nyw5IEBAIE9wdGlvbmFsIGFyZyBIT1ctVE8g ZGV0ZXJtaW5lcyBob3cgdG8gdHJlYXQgdGhlIHRhcmdldC4KIAkJICAgICB0YXJnZXQtZGlyIG9w LXN5bWJvbCBhcmcgcmZuLWxpc3QgZGVmYXVsdCkpKSkKIAkgKGludG8tZGlyCiAgICAgICAgICAg KHByb2duCi0gICAgICAgICAgICAodW5sZXNzIGRpcmVkLW9uZS1maWxlIChkaXJlZC1tYXliZS1j cmVhdGUtZGlycyB0YXJnZXQpKQorICAgICAgICAgICAgKHdoZW4gKG9yIChub3QgZGlyZWQtb25l LWZpbGUpCisgICAgICAgICAgICAgICAgICAgICAgKGRpcmVjdG9yeS1uYW1lLXAgdGFyZ2V0KSkK KyAgICAgICAgICAgICAgKGRpcmVkLW1heWJlLWNyZWF0ZS1kaXJzIHRhcmdldCkpCiAgICAgICAg ICAgICAoY29uZCAoKG51bGwgaG93LXRvKQogCQkgICA7OyBBbGxvdyB1c2VycyB0byBjaGFuZ2Ug dGhlIGxldHRlciBjYXNlIG9mCiAJCSAgIDs7IGEgZGlyZWN0b3J5IG9uIGEgY2FzZS1pbnNlbnNp dGl2ZQotLSAKMi4zMi4wCgo= --0000000000003436a605cd233061--