aboutsummaryrefslogtreecommitdiffstats
path: root/src/chartab.c
diff options
context:
space:
mode:
authorPaul Eggert <[email protected]>2011-09-03 16:03:38 -0700
committerPaul Eggert <[email protected]>2011-09-03 16:03:38 -0700
commitb49e353d9d01adbe60bc5d0b1658b4ef978b0b06 (patch)
tree9f2ffa6f7a6562abf661a4951012b488ad8b1ae7 /src/chartab.c
parent74b880cbc18bd0194c7b1fc44c4a983ee05adae2 (diff)
parentbc3200871917d5c54c8c4299a06bf8f8ba2ea02d (diff)
Merge from trunk.
Diffstat (limited to 'src/chartab.c')
-rw-r--r--src/chartab.c29
1 files changed, 18 insertions, 11 deletions
diff --git a/src/chartab.c b/src/chartab.c
index efe23eca83..1d4ac04312 100644
--- a/src/chartab.c
+++ b/src/chartab.c
@@ -589,8 +589,6 @@ DEFUN ("set-char-table-extra-slot", Fset_char_table_extra_slot,
(Lisp_Object char_table, Lisp_Object n, Lisp_Object value)
{
CHECK_CHAR_TABLE (char_table);
- if (EQ (XCHAR_TABLE (char_table)->purpose, Qchar_code_property_table))
- error ("Can't change extra-slot of char-code-property-table");
CHECK_NUMBER (n);
if (XINT (n) < 0
|| XINT (n) >= CHAR_TABLE_EXTRA_SLOTS (XCHAR_TABLE (char_table)))
@@ -1095,22 +1093,31 @@ map_char_table_for_charset (void (*c_function) (Lisp_Object, Lisp_Object),
/* Unicode character property tables.
- This section provides a convenient and efficient way to get a
- Unicode character property from C code (from Lisp, you must use
- get-char-code-property).
+ This section provides a convenient and efficient way to get Unicode
+ character properties of characters from C code (from Lisp, you must
+ use get-char-code-property).
- The typical usage is to get a char-table for a specific property at
- a proper initialization time as this:
+ The typical usage is to get a char-table object for a specific
+ property like this (use of the "bidi-class" property below is just
+ an example):
Lisp_Object bidi_class_table = uniprop_table (intern ("bidi-class"));
- and get a property value for character CH as this:
+ (uniprop_table can return nil if it fails to find data for the
+ named property, or if it fails to load the appropriate Lisp support
+ file, so the return value should be tested to be non-nil, before it
+ is used.)
- Lisp_Object bidi_class = CHAR_TABLE_REF (CH, bidi_class_table);
+ To get a property value for character CH use CHAR_TABLE_REF:
+
+ Lisp_Object bidi_class = CHAR_TABLE_REF (bidi_class_table, CH);
In this case, what you actually get is an index number to the
vector of property values (symbols nil, L, R, etc).
+ The full list of Unicode character properties supported by Emacs is
+ documented in the ELisp manual, in the node "Character Properties".
+
A table for Unicode character property has these characteristics:
o The purpose is `char-code-property-table', which implies that the
@@ -1122,7 +1129,7 @@ map_char_table_for_charset (void (*c_function) (Lisp_Object, Lisp_Object),
means that we don't have to decode values.
o The third extra slot is a Lisp function, an index (integer) to
- the array uniprop_enncoder[], or nil. If it is a Lisp function, we
+ the array uniprop_encoder[], or nil. If it is a Lisp function, we
can't use such a table from C (at the moment). If it is nil, it
means that we don't have to encode values. */
@@ -1310,7 +1317,7 @@ uniprop_get_encoder (Lisp_Object table)
function may load a Lisp file and thus may cause
garbage-collection. */
-static Lisp_Object
+Lisp_Object
uniprop_table (Lisp_Object prop)
{
Lisp_Object val, table, result;