| Server IP : 217.160.0.212 / Your IP : 216.73.216.141 Web Server : Apache System : Linux www 6.18.51-i1-ampere #1196 SMP Fri Sep 11 20:43:55 CEST 2026 aarch64 User : sws1073854427 ( 1073854427) PHP Version : 8.4.23 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : /usr/share/emacs/28.2/lisp/ |
Upload File : |
;ELC
;;; Compiled
;;; in Emacs version 28.2
;;; with all optimizations.
#@1693 Alist of symbols vs integer codes of glyph reference points.
A glyph reference point symbol is to be used to specify a composition
rule in COMPONENTS argument to such functions as `compose-region'.
The meaning of glyph reference point codes is as follows:
0----1----2 <---- ascent 0:tl or top-left
| | 1:tc or top-center
| | 2:tr or top-right
| | 3:Bl or base-left 9:cl or center-left
9 10 11 <---- center 4:Bc or base-center 10:cc or center-center
| | 5:Br or base-right 11:cr or center-right
--3----4----5-- <-- baseline 6:bl or bottom-left
| | 7:bc or bottom-center
6----7----8 <---- descent 8:br or bottom-right
Glyph reference point symbols are to be used to specify a composition
rule of the form (GLOBAL-REF-POINT . NEW-REF-POINT), where
GLOBAL-REF-POINT is a reference point in the overall glyphs already
composed, and NEW-REF-POINT is a reference point in the new glyph to
be added.
For instance, if GLOBAL-REF-POINT is `br' (bottom-right) and
NEW-REF-POINT is `tc' (top-center), the overall glyph is updated as
follows (the point `*' corresponds to both reference points):
+-------+--+ <--- new ascent
| | |
| global| |
| glyph | |
-- | | |-- <--- baseline (doesn't change)
+----+--*--+
| | new |
| |glyph|
+----+-----+ <--- new descent
A composition rule may have the form (GLOBAL-REF-POINT
NEW-REF-POINT XOFF YOFF), where XOFF and YOFF specify how much
to shift NEW-REF-POINT from GLOBAL-REF-POINT. In this case, XOFF
and YOFF are integers in the range -100..100 representing the
shifting percentage against the font size.
(defconst reference-point-alist '((tl . 0) (tc . 1) (tr . 2) (Bl . 3) (Bc . 4) (Br . 5) (bl . 6) (bc . 7) (br . 8) (cl . 9) (cc . 10) (cr . 11) (top-left . 0) (top-center . 1) (top-right . 2) (base-left . 3) (base-center . 4) (base-right . 5) (bottom-left . 6) (bottom-center . 7) (bottom-right . 8) (center-left . 9) (center-center . 10) (center-right . 11) (ml . 3) (mc . 10) (mr . 5) (mid-left . 3) (mid-center . 10) (mid-right . 5)) (#$ . 86))
#@152 Encode composition rule RULE into an integer value.
RULE is a cons of global and new reference point symbols
(see `reference-point-alist').
(fn RULE)
(defalias 'encode-composition-rule #[257 "\211\250\203\f \211\301W\203\f \207\211:\203\241 \211@A\302\211:\203U A@\262\3038\262@\262\304Y\203B \305X\203B \211\304Y\203B \211\305X\204H \306\307\"\210\310\\\262\211\310\\\262\202[ \311\262\311\262\250\204f \236A\262\250\204q \236A\262\311Y\203\211 \312W\203\211 \311Y\203\211 \312W\204\217 \306\313\"\210\314\315\316\"\315\317\"\312_\\#\207\306\313\"\207" [reference-point-alist 144 nil 2 -100 100 error "Invalid composition rule: %s" 128 0 12 "Invalid composition rule: %S" logior ash 16 8] 10 (#$ . 2233)])
#@18
(fn RULE-CODE)
(defalias 'decode-composition-rule #[257 "\301!\203\f \211\302W\204 \303\304\"\210\305\306\"\307\305\310\"\311\"\312\211\307\311\"\262\313\314\245\"@\262\313\314\246\"@\262\203H 9\203H \211\203H \2119\204N \303\315\"\210\316U\203^ \316U\203^ B\207\317Z\262\317Z\262F\207" [reference-point-alist natnump 16777216 error "Invalid encoded composition rule: %S" ash -16 logand -8 255 nil rassq 12 "Invalid composition rule code: %S" 0 128] 9 (#$ . 2985)])
#@36
(fn COMPONENTS &optional NOCOPY)
(defalias 'encode-composition-components #[513 "\211\204 \300!\262\301!\203/ G\302\211W\203* \303H!I\210\211\304\\\262\202 \266\202E A\211\203D \211\303@!\240\210\211AA\262\2021 \210\207" [copy-sequence vectorp 1 encode-composition-rule 2] 9 (#$ . 3488)])
#@36
(fn COMPONENTS &optional NOCOPY)
(defalias 'decode-composition-components #[513 "\211\204 \300!\262G\301\211W\203$ \302H!I\210\211\303\\\262\202\f \266\207" [copy-sequence 1 decode-composition-rule 2] 9 (#$ . 3803)])
#@1882 Compose characters in the current region.
Characters are composed relatively, i.e. composed by overstriking
or stacking depending on ascent, descent and other metrics of
glyphs.
For instance, if the region has three characters "XYZ", X is
regarded as BASE glyph, and Y is displayed:
(1) above BASE if Y's descent value is not positive
(2) below BASE if Y's ascent value is not positive
(3) on BASE (i.e. at the BASE position) otherwise
and Z is displayed with the same rule while regarding the whole
XY glyphs as BASE.
When called from a program, expects these four arguments.
First two arguments START and END are positions (integers or markers)
specifying the region.
Optional 3rd argument COMPONENTS, if non-nil, is a character, a string
or a vector or list of integers and rules.
If it is a character, it is an alternate character to display instead
of the text in the region.
If it is a string, the elements are alternate characters. In
this case, TAB element has a special meaning. If the first
character is TAB, the glyphs are displayed with left padding space
so that no pixel overlaps with the previous column. If the last
character is TAB, the glyphs are displayed with right padding
space so that no pixel overlaps with the following column.
If it is a vector or list, it is a sequence of alternate characters and
composition rules, where (2N)th elements are characters and (2N+1)th
elements are composition rules to specify how to compose (2N+2)th
elements with previously composed N glyphs.
A composition rule is a cons of global and new glyph reference point
symbols. See the documentation of `reference-point-alist' for more
details.
Optional 4th argument MODIFICATION-FUNC is a function to call to
adjust the composition when it gets invalid because of a change of
text in the composition.
(fn START END &optional COMPONENTS MODIFICATION-FUNC)
(defalias 'compose-region #[1026 "\301 \302\303!\204 <\203 \304!\262\305$\210\306!)\207" [inhibit-read-only buffer-modified-p t vectorp encode-composition-components compose-region-internal restore-buffer-modified-p] 10 (#$ . 4043) "r"])
#@162 Decompose text in the current region.
When called from a program, expects two arguments,
positions (integers or markers) specifying the region.
(fn START END)
(defalias 'decompose-region #[514 "\301 \302\303\304#\210\305!)\207" [inhibit-read-only buffer-modified-p t remove-text-properties (composition nil) restore-buffer-modified-p] 7 (#$ . 6181) "r"])
#@675 Compose characters in string STRING.
The return value is STRING with the `composition' property put on all
the characters in it.
Optional 2nd and 3rd arguments START and END specify the range of
STRING to be composed. They default to the beginning and the end of
STRING respectively.
Optional 4th argument COMPONENTS, if non-nil, is a character or a
sequence (vector, list, or string) of integers. See the function
`compose-region' for more detail.
Optional 5th argument MODIFICATION-FUNC is a function to call to
adjust the composition when it gets invalid because of a change of
text in the composition.
(fn STRING &optional START END COMPONENTS MODIFICATION-FUNC)
(defalias 'compose-string #[1281 "\300!\204 <\203 \301!\262\204 \302\262\204 G\262\303%\210\207" [vectorp encode-composition-components 0 compose-string-internal] 11 (#$ . 6549)])
#@69 Return STRING where `composition' property is removed.
(fn STRING)
(defalias 'decompose-string #[257 "\300\301G\302$\210\207" [remove-text-properties 0 (composition nil)] 6 (#$ . 7428)])
#@443 Return a string from arguments in which all characters are composed.
For relative composition, arguments are characters.
For rule-based composition, Mth (where M is odd) arguments are
characters, and Nth (where N is even) arguments are composition rules.
A composition rule is a cons of glyph reference points of the form
(GLOBAL-REF-POINT . NEW-REF-POINT). See the documentation of
`reference-point-alist' for more detail.
(fn &rest ARGS)
(defalias 'compose-chars #[128 "\300\211A@:\203+ \301\302\"\211\203 \211@B\262\211AA\262\202
\237\260\262\266\202\2020 \260\262\303\304G$\207" [nil encode-composition-components nocopy compose-string-internal 0] 8 (#$ . 7625)])
#@1693 Return information about a composition at or near buffer position POS.
If the character at POS has `composition' property, the value is a list
(FROM TO VALID-P).
FROM and TO specify the range of text that has the same `composition'
property, VALID-P is t if this composition is valid, and nil if not.
If there's no composition at POS, and the optional 2nd argument LIMIT
is non-nil, search for a composition toward the position given by LIMIT.
If no composition is found, return nil.
Optional 3rd argument STRING, if non-nil, is a string to look for a
composition in; nil means the current buffer.
If a valid composition is found and the optional 4th argument DETAIL-P
is non-nil, the return value is a list of the form
(FROM TO COMPONENTS RELATIVE-P MOD-FUNC WIDTH)
COMPONENTS is a vector of integers, the meaning depends on RELATIVE-P.
RELATIVE-P is t if the composition method is relative, else nil.
If RELATIVE-P is t, COMPONENTS is a vector of characters to be
composed. If RELATIVE-P is nil, COMPONENTS is a vector of characters
and composition rules as described in `compose-region'.
MOD-FUNC is a modification function of the composition.
WIDTH is a number of columns the composition occupies on the screen.
When Automatic Composition mode is on, this function also finds a
chunk of text that is automatically composed. If such a chunk is
found closer to POS than the position that has `composition'
property, the value is a list of FROM, TO, and a glyph-string
that specifies how the chunk is to be composed; DETAIL-P is
ignored in this case. See the function `composition-get-gstring'
for the format of the glyph-string.
(fn POS &optional LIMIT STRING DETAIL-P)
(defalias 'find-composition #[1025 "\300$\203$ \211G\301V\203$ \3028\203$ \3018\204$ \303\3028\304\"\210\207" [find-composition-internal 3 2 decode-composition-components nocopy] 9 (#$ . 8320)])
#@550 Compose characters in current buffer after position POS.
It looks up the char-table `composition-function-table' (which
see) by a character at POS, and compose characters after POS
according to the contents of `composition-function-table'.
Optional 2nd arg LIMIT, if non-nil, limits characters to compose.
Optional 3rd arg OBJECT, if non-nil, is a string that contains the
text to compose. In that case, POS and LIMIT index into the string.
This function is the default value of `compose-chars-after-function'.
(fn POS &optional LIMIT OBJECT)
(defalias 'compose-chars-after #[769 "fH\301 \205 ;?\205 \302\303 \"\304\211\211\204) ;\203&