mirror of
git://git.sv.gnu.org/emacs.git
synced 2025-12-25 23:10:47 -08:00
Implement unconditional special casing rules defined in Unicode standard. Among other things, they deal with cases when a single code point is replaced by multiple ones because single character does not exist (e.g. ‘fi’ ligature turning into ‘FL’) or is not commonly used (e.g. ß turning into SS). * admin/unidata/SpecialCasing.txt: New data file pulled from Unicode standard distribution. * admin/unidata/README: Mention SpecialCasing.txt. * admin/unidata/unidata-get.el (unidata-gen-table-special-casing, unidata-gen-table-special-casing--do-load): New functions generating ‘special-uppercase’, ‘special-lowercase’ and ‘special-titlecase’ character Unicode properties built from the SpecialCasing.txt Unicode data file. * src/casefiddle.c (struct casing_str_buf): New structure for representing short strings used to handle one-to-many character mappings. (case_character_imlp): New function which can handle one-to-many character mappings. (case_character, case_single_character): Wrappers for the above functions. The former may map one character to multiple (or no) code points while the latter does what the former used to do (i.e. handles one-to-one mappings only). (do_casify_natnum, do_casify_unibyte_string, do_casify_unibyte_region): Use case_single_character. (do_casify_multibyte_string, do_casify_multibyte_region): Support new features of case_character. * (do_casify_region): Updated to reflact do_casify_multibyte_string changes. (casify_word): Handle situation when one character-length of a word can change affecting where end of the word is. (upcase, capitalize, upcase-initials): Update documentation to mention limitations when working on characters. * test/src/casefiddle-tests.el (casefiddle-tests-char-properties): Add test cases for the newly introduced character properties. (casefiddle-tests-casing): Update test cases which are now passing. * test/lisp/char-fold-tests.el (char-fold--ascii-upcase, char-fold--ascii-downcase): New functions which behave like old ‘upcase’ and ‘downcase’. (char-fold--test-match-exactly): Use the new functions. This is needed because otherwise fi and similar characters are turned into their multi- -character representation. * doc/lispref/strings.texi: Describe issue with casing characters versus strings. * doc/lispref/nonascii.texi: Describe the new character properties. |
||
|---|---|---|
| .. | ||
| charsets | ||
| coccinelle | ||
| grammars | ||
| notes | ||
| nt | ||
| unidata | ||
| admin.el | ||
| alloc-colors.c | ||
| authors.el | ||
| build-configs | ||
| bzrmerge.el | ||
| ChangeLog.1 | ||
| check-doc-strings | ||
| CPP-DEFINES | ||
| cus-test.el | ||
| diff-tar-files | ||
| find-gc.el | ||
| gitmerge.el | ||
| last-chance.el | ||
| MAINTAINERS | ||
| make-emacs | ||
| make-tarball.txt | ||
| merge-gnulib | ||
| merge-pkg-config | ||
| quick-install-emacs | ||
| README | ||
| release-process | ||
| update-copyright | ||
| update_autogen | ||
Copyright (C) 2001-2017 Free Software Foundation, Inc.
See the end of the file for license conditions.
The admin directory
This directory contains scripts and other things useful for developing
and maintaining Emacs. These files are not part of Emacs releases
because they are not deemed generally useful, and you have to know
what you do when using them.
* Instructions and scripts used to prepare an Emacs release.
** release-process
The release process used by GNU Emacs.
** make-tarball.txt
Instructions to create pretest or release tarballs, announcements, etc.
** admin.el
Utilities for setting version numbers and alike.
* Scripts that can be used to build and test Emacs.
** build-configs
Build Emacs in various configurations.
** make-emacs
Build Emacs in various ways.
** quick-install-emacs
Install emacs quickly ("incrementally").
** alloc-colors.c
A utility program that allocates a given number of colors on X. Can
be used to debug Emacs with dense colormaps (PseudoColor).
** check-doc-strings
Check doc strings against documentation.
** cus-test.el
Tests for custom types and load problems.
** diff-tar-files
Show files added/removed between two tar files.
Brief description of sub-directories:
charsets scripts for generating charset map files
in ../etc/charsets
unidata scripts for generating character property files
in ../lisp/international
This file is part of GNU Emacs.
GNU Emacs is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
GNU Emacs is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.
Local variables:
mode: outline
paragraph-separate: "[ ]*$"
end: