3857 |
DEFUN ("internal-copy-lisp-face", Finternal_copy_lisp_face, |
DEFUN ("internal-copy-lisp-face", Finternal_copy_lisp_face, |
3858 |
Sinternal_copy_lisp_face, 4, 4, 0, |
Sinternal_copy_lisp_face, 4, 4, 0, |
3859 |
doc: /* Copy face FROM to TO. |
doc: /* Copy face FROM to TO. |
3860 |
If FRAME it t, copy the global face definition of FROM to the |
If FRAME is t, copy the global face definition of FROM to the |
3861 |
global face definition of TO. Otherwise, copy the frame-local |
global face definition of TO. Otherwise, copy the frame-local |
3862 |
definition of FROM on FRAME to the frame-local definition of TO |
definition of FROM on FRAME to the frame-local definition of TO |
3863 |
on NEW-FRAME, or FRAME if NEW-FRAME is nil. |
on NEW-FRAME, or FRAME if NEW-FRAME is nil. |
4684 |
doc: /* Return face attribute KEYWORD of face SYMBOL. |
doc: /* Return face attribute KEYWORD of face SYMBOL. |
4685 |
If SYMBOL does not name a valid Lisp face or KEYWORD isn't a valid |
If SYMBOL does not name a valid Lisp face or KEYWORD isn't a valid |
4686 |
face attribute name, signal an error. |
face attribute name, signal an error. |
4687 |
If the optional argument FRAME is given, report on face FACE in that |
If the optional argument FRAME is given, report on face SYMBOL in that |
4688 |
frame. If FRAME is t, report on the defaults for face FACE (for new |
frame. If FRAME is t, report on the defaults for face SYMBOL (for new |
4689 |
frames). If FRAME is omitted or nil, use the selected frame. */) |
frames). If FRAME is omitted or nil, use the selected frame. */) |
4690 |
(symbol, keyword, frame) |
(symbol, keyword, frame) |
4691 |
Lisp_Object symbol, keyword, frame; |
Lisp_Object symbol, keyword, frame; |
5235 |
\(1) different in appearance than the default face, and |
\(1) different in appearance than the default face, and |
5236 |
\(2) `close in spirit' to what the attributes specify, if not exact. |
\(2) `close in spirit' to what the attributes specify, if not exact. |
5237 |
|
|
5238 |
Point (2) implies that a `:weight black' attribute will be satisified |
Point (2) implies that a `:weight black' attribute will be satisfied |
5239 |
by any terminal that can display bold, and a `:foreground "yellow"' as |
by any terminal that can display bold, and a `:foreground "yellow"' as |
5240 |
long as the terminal can display a yellowish color, but `:slant italic' |
long as the terminal can display a yellowish color, but `:slant italic' |
5241 |
will _not_ be satisified by the tty display code's automatic |
will _not_ be satisfied by the tty display code's automatic |
5242 |
substitution of a `dim' face for italic. */) |
substitution of a `dim' face for italic. */) |
5243 |
(attributes, frame) |
(attributes, frame) |
5244 |
Lisp_Object attributes, frame; |
Lisp_Object attributes, frame; |
5446 |
} |
} |
5447 |
|
|
5448 |
|
|
5449 |
/* Free all realized faces in face cache C, including basic faces. C |
/* Free all realized faces in face cache C, including basic faces. |
5450 |
may be null. If faces are freed, make sure the frame's current |
C may be null. If faces are freed, make sure the frame's current |
5451 |
matrix is marked invalid, so that a display caused by an expose |
matrix is marked invalid, so that a display caused by an expose |
5452 |
event doesn't try to use faces we destroyed. */ |
event doesn't try to use faces we destroyed. */ |
5453 |
|
|
7297 |
/* Look at properties from overlays. */ |
/* Look at properties from overlays. */ |
7298 |
{ |
{ |
7299 |
int next_overlay; |
int next_overlay; |
|
int len; |
|
|
|
|
|
/* First try with room for 40 overlays. */ |
|
|
len = 40; |
|
|
overlay_vec = (Lisp_Object *) alloca (len * sizeof (Lisp_Object)); |
|
|
noverlays = overlays_at (pos, 0, &overlay_vec, &len, |
|
|
&next_overlay, NULL, 0); |
|
|
|
|
|
/* If there are more than 40, make enough space for all, and try |
|
|
again. */ |
|
|
if (noverlays > len) |
|
|
{ |
|
|
len = noverlays; |
|
|
overlay_vec = (Lisp_Object *) alloca (len * sizeof (Lisp_Object)); |
|
|
noverlays = overlays_at (pos, 0, &overlay_vec, &len, |
|
|
&next_overlay, NULL, 0); |
|
|
} |
|
7300 |
|
|
7301 |
|
GET_OVERLAYS_AT (pos, overlay_vec, noverlays, &next_overlay, 0); |
7302 |
if (next_overlay < endpos) |
if (next_overlay < endpos) |
7303 |
endpos = next_overlay; |
endpos = next_overlay; |
7304 |
} |
} |