all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Akinori MUSHA <knu@idaemons.org>
To: YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
Cc: Lars Ingebrigtsen <larsi@mouse.gnus.org>, 37095@debbugs.gnu.org
Subject: bug#37095: [PATCH] Save match data in ucs-normalize-region
Date: Fri, 23 Aug 2019 16:21:58 +0900	[thread overview]
Message-ID: <CAP+dxaYiKNLN2R-apg2HW_9=c1Y1zaD55j4HO1e+vb0J7U7AMg@mail.gmail.com> (raw)
In-Reply-To: <wlk1b4eaij.wl-mituharu@math.s.chiba-u.ac.jp>

[-- Attachment #1: Type: text/plain, Size: 2123 bytes --]

Thanks you both for the information.

I don't insist if you don't think this way, but I think this bug was partly
due to ucs-normalize-region being called only if the user is on a certain
platform/filesystem and the file name actually needs normalization, so it
would be better to fix such a function not to break a globally shared state
like match data so that there's no room for more bugs of the same kind.

Just my two yen.

2019-08-23日(金) 14:06 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>:

> On Fri, 23 Aug 2019 12:51:29 +0900,
> Lars Ingebrigtsen wrote:
> >
> > Akinori MUSHA <knu@iDaemons.org> writes:
> >
> > > A patch generated by git format-patch is attached below, which simply
> > > wraps `ucs-normalize-region` with `save-match-data`.
> > >
> > > I'm a user of the Emacs Mac port by mituharu was investigating a bug
> > > where dired fails to open a certain local directory on macOS.  The
> > > error was raised at `replace-match` in the `insert-directory`
> > > function:
> > >
> > > ```
> > >             (when (re-search-forward "^ *\\(total\\)" nil t)
> > >               (let ((available (get-free-disk-space ".")))
> > >                 (when available
> > >                   ;; Replace "total" with "used", to avoid confusion.
> > >                   (replace-match "total used in directory" nil nil nil
> 1)
> > > ```
> > >
> > > And it turned out the match data changed after returning from
> > > `get-free-disk-space` and that was why `replace-match` failed.
> >
> > You don't say what Emacs version you're reporting this bug for, but the
> > following patch was applied in February 2018 to the Emacs trunk, so I
> > think this problem has been fixed by now:
>
> For the Mac port, the "work" branch already contains a similar change:
>
>
> https://bitbucket.org/mituharu/emacs-mac/commits/b651c3a6bab6795202e2ebcd4396d665909cc210
>
> It will shortly be included in the next release based on Emacs 26.3 RC1.
>
>                                      YAMAMOTO Mitsuharu
>                                 mituharu@math.s.chiba-u.ac.jp
>
>

[-- Attachment #2: Type: text/html, Size: 3054 bytes --]

      reply	other threads:[~2019-08-23  7:21 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-08-20  7:18 bug#37095: [PATCH] Save match data in ucs-normalize-region Akinori MUSHA
2019-08-23  3:51 ` Lars Ingebrigtsen
2019-08-23  5:06   ` YAMAMOTO Mitsuharu
2019-08-23  7:21     ` Akinori MUSHA [this message]

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='CAP+dxaYiKNLN2R-apg2HW_9=c1Y1zaD55j4HO1e+vb0J7U7AMg@mail.gmail.com' \
    --to=knu@idaemons.org \
    --cc=37095@debbugs.gnu.org \
    --cc=larsi@mouse.gnus.org \
    --cc=mituharu@math.s.chiba-u.ac.jp \
    /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.