[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#24603: [RFC 00/18] Improvement to casing
From: |
Michal Nazarewicz |
Subject: |
bug#24603: [RFC 00/18] Improvement to casing |
Date: |
Tue, 4 Oct 2016 03:05:10 +0200 |
This is work in progress with a known bug: if casing region changes
length (e.g. fish becomes FISH) neither point moves correctly nor undo
information is recorded correctly. There could also be some minor
improvements to documentation here and there.
Overall, this is mature enough (and probably too-big already) to send
a request for comments.
Michal Nazarewicz (18):
Add tests for casefiddle.c
Generate upcase and downcase tables from Unicode data
Don’t assume character can be either upper- or lower-case when casing
Split casify_object into multiple functions
Introduce case_character function
Add support for title-casing letters
Split up casify_region function.
Support casing characters which map into multiple code points
Implement special sigma casing rule
Implement Turkic dotless and dotted i handling when casing strings
Implement casing rules for Lithuanian
Implement rules for title-casing Dutch ij ‘letter’
Add some tricky Unicode characters to regex test
Factor out character category lookup to separate function
Base lower- and upper-case tests on Unicode properties
Refactor character class checking; optimise ASCII case
Optimise character class matching in regexes
Fix case-fold-search character class matching
.gitignore | 1 +
admin/unidata/README | 4 +
admin/unidata/SpecialCasing.txt | 281 +++++++++++++
etc/NEWS | 25 +-
lisp/international/characters.el | 338 +++------------
src/Makefile.in | 3 +
src/buffer.h | 17 +-
src/casefiddle.c | 864 ++++++++++++++++++++++++++++++---------
src/character.c | 151 +++----
src/character.h | 76 +++-
src/deps.mk | 2 +-
src/keyboard.c | 25 +-
src/make-special-casing.py | 189 +++++++++
src/regex.c | 119 +++---
test/lisp/char-fold-tests.el | 12 +-
test/src/casefiddle-tests.el | 262 ++++++++++++
test/src/regex-tests.el | 62 ++-
17 files changed, 1786 insertions(+), 645 deletions(-)
create mode 100644 admin/unidata/SpecialCasing.txt
create mode 100644 src/make-special-casing.py
create mode 100644 test/src/casefiddle-tests.el
--
2.8.0.rc3.226.g39d4020
- bug#24603: [RFC 00/18] Improvement to casing,
Michal Nazarewicz <=
- bug#24603: [RFC 01/18] Add tests for casefiddle.c, Michal Nazarewicz, 2016/10/03
- bug#24603: [RFC 05/18] Introduce case_character function, Michal Nazarewicz, 2016/10/03
- bug#24603: [RFC 06/18] Add support for title-casing letters, Michal Nazarewicz, 2016/10/03
- bug#24603: [RFC 13/18] Add some tricky Unicode characters to regex test, Michal Nazarewicz, 2016/10/03
- bug#24603: [RFC 15/18] Base lower- and upper-case tests on Unicode properties, Michal Nazarewicz, 2016/10/03
- bug#24603: [RFC 04/18] Split casify_object into multiple functions, Michal Nazarewicz, 2016/10/03
- bug#24603: [RFC 03/18] Don’t assume character can be either upper- or lower-case when casing, Michal Nazarewicz, 2016/10/03
- bug#24603: [RFC 12/18] Implement rules for title-casing Dutch ij ‘letter’, Michal Nazarewicz, 2016/10/03
- bug#24603: [RFC 11/18] Implement casing rules for Lithuanian, Michal Nazarewicz, 2016/10/03