From: Artur Malabarba <bruce.connor.am@gmail.com>
To: emacs-devel <emacs-devel@gnu.org>
Subject: Re: extending case-fold-search to remove nonspacing marks (diacritics etc.)
Date: Thu, 5 Feb 2015 23:06:26 +0000 [thread overview]
Message-ID: <CAAdUY-+tA-5WjkXuqphdN=FEYH2D=YCHe4GxjmbSftK7L0a-MQ@mail.gmail.com> (raw)
In-Reply-To: <87fvakvwbf.fsf@lifelogs.com>
Something essentially identical to this was being discussed here a
couple of weeks ago. Look for the thread "Single quotes in Info". I
wrote a small elisp solution for building this into isearch (which you
can find on the "scratch/isearch-character-group-folding" branch). It
took a different approach to yours, relating characters to regexp, but
it works.
It's not merged because I was advised to looking into using the
case-fold-search machinery.
2015-02-05 20:16 GMT-02:00 Ted Zlatanov <tzz@lifelogs.com>:
> https://emacs.stackexchange.com/questions/7992/how-to-search-an-arabic-word-in-text-without-its-diacritics-accents
> suggested it would be useful if diacritics were ignored when searching
> for text in various situations. This is similar to `case-fold-search'
> but more generic. Here's what I suggested as the answer at the ELisp
> level:
>
> #+begin_src emacs-lisp
> (defun kill-marks (string)
> (concat (loop for c across string
> when (not (eq 'Mn (get-char-code-property c 'general-category)))
> collect c)))
>
> (let* ((original1 "your Arabic string here")
> (normalized1 (ucs-normalize-NFKD-string original1))
> (original2 "your other Arabic string here")
> (normalized2 (ucs-normalize-NFKD-string original2)))
> (equal
> (replace-regexp-in-string "." 'kill-marks normalized1)
> (replace-regexp-in-string "." 'kill-marks normalized2)))
> #+end_src
>
> This would probably be useful for other languages, not just Arabic. But
> implementing it for users so it works like `case-fold-search' (you just
> set something in Customize and all search commands DWYM) seems much
> harder. Does anyone have suggestions? Maybe some defadvice magic? Or is
> it not possible?
>
> Thanks
> Ted
>
>
next prev parent reply other threads:[~2015-02-05 23:06 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-02-05 22:16 extending case-fold-search to remove nonspacing marks (diacritics etc.) Ted Zlatanov
2015-02-05 23:06 ` Artur Malabarba [this message]
2015-02-05 23:17 ` Artur Malabarba
2015-02-06 0:54 ` Juri Linkov
2015-02-06 2:32 ` Artur Malabarba
2015-02-06 2:51 ` Artur Malabarba
2015-02-06 7:48 ` Eli Zaretskii
2015-02-06 9:06 ` Artur Malabarba
2015-02-06 9:41 ` Eli Zaretskii
2015-02-06 10:03 ` Artur Malabarba
2015-02-06 10:04 ` Eli Zaretskii
2015-02-06 4:58 ` Stephen J. Turnbull
2015-02-06 7:51 ` Eli Zaretskii
2015-02-06 14:50 ` Stefan Monnier
2015-02-06 14:54 ` Eli Zaretskii
2015-02-06 7:35 ` Eli Zaretskii
2015-02-06 7:29 ` Eli Zaretskii
2015-02-07 12:59 ` Ted Zlatanov
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='CAAdUY-+tA-5WjkXuqphdN=FEYH2D=YCHe4GxjmbSftK7L0a-MQ@mail.gmail.com' \
--to=bruce.connor.am@gmail.com \
--cc=emacs-devel@gnu.org \
/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.