bug-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#24603: [PATCHv5 00/11] Casing improvements


From: Michal Nazarewicz
Subject: bug#24603: [PATCHv5 00/11] Casing improvements
Date: Thu, 9 Mar 2017 22:51:39 +0100

I figured that I should probably start versioning the patchsets;
starting from v5 is as good as any.

The first six patches (up to sigma casing rule) should be
uncontroversial and unless there are objections I would like to get
them submitted soon:

  Split casify_object into multiple functions
  Introduce case_character function
  Add support for title-casing letters  (bug#24603)
  Split up casify_region function  (bug#24603)
  Support casing characters which map into multiple code points 
  Implement special sigma casing rule  (bug#24603)

The next patch adds ‘buffer-language’ buffer-local variable.  This
seems to me as a sensible way of dealing with language-dependent rules
and in the future I imagine the variable might be used for more
cases, e.g. spell checking should automatically choose a dictionary
based on it.  But perhaps there is another way which integrates with
the rest of Emacs better:

  Introduce ‘buffer-language’ buffer-local variable

The rest are just implementation of various language-specific rules.
The implementation seems to be valid but it’s done purely in C which
I guess still is a point of contention between me and Eli.

Compared to previous versions of the patches, the new implementation
is, I believe, a bit cleaner:

  Implement rules for title-casing Dutch ij ‘letter’  (bug#24603)
  Implement Turkic dotless and dotted i casing rules  (bug#24603)
  Implement casing rules for Lithuanian  (bug#24603)
  Implement Irish casing rules  (bug#24603)

The whole thing (plus regex changes not included in this patchset) are
available at:

  git fetch git://github.com/mina86/emacs master

 admin/unidata/README                               |    4 +
 admin/unidata/SpecialCasing.txt                    |  281 +++++
 admin/unidata/unidata-gen.el                       |   40 +
 doc/lispref/strings.texi                           |   23 +
 etc/NEWS                                           |   22 +-
 lisp/international/mule-cmds.el                    |    8 +-
 src/buffer.c                                       |    8 +
 src/buffer.h                                       |    8 +
 src/casefiddle.c                                   | 1269 +++++++++++++++++---
 test/lisp/char-fold-tests.el                       |   12 +-
 .../casefiddle-resources/irish-lowercase-1-ref.txt |  211 ++++
 .../src/casefiddle-resources/irish-lowercase-1.txt |  211 ++++
 .../casefiddle-resources/irish-uppercase-1-ref.txt |  105 ++
 .../src/casefiddle-resources/irish-uppercase-1.txt |  105 ++
 test/src/casefiddle-tests.el                       |  193 ++-
 15 files changed, 2260 insertions(+), 240 deletions(-)
 create mode 100644 admin/unidata/SpecialCasing.txt
 create mode 100644 test/src/casefiddle-resources/irish-lowercase-1-ref.txt
 create mode 100644 test/src/casefiddle-resources/irish-lowercase-1.txt
 create mode 100644 test/src/casefiddle-resources/irish-uppercase-1-ref.txt
 create mode 100644 test/src/casefiddle-resources/irish-uppercase-1.txt

-- 
2.12.0.246.ga2ecc84866-goog






reply via email to

[Prev in Thread] Current Thread [Next in Thread]