diff options
Diffstat (limited to 'src/chartab.c')
| -rw-r--r-- | src/chartab.c | 29 | 
1 files changed, 18 insertions, 11 deletions
diff --git a/src/chartab.c b/src/chartab.c index efe23eca83f..1d4ac04312a 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;  | 
