aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/buffer.c6
-rw-r--r--src/data.c2
-rw-r--r--src/font.c10
-rw-r--r--src/frame.c5
-rw-r--r--src/frame.h5
-rw-r--r--src/xdisp.c28
6 files changed, 33 insertions, 23 deletions
diff --git a/src/buffer.c b/src/buffer.c
index 12a467daae4..75cb470af8d 100644
--- a/src/buffer.c
+++ b/src/buffer.c
@@ -386,9 +386,9 @@ Value is nil if OBJECT is not a buffer or if it has been killed. */)
386} 386}
387 387
388DEFUN ("buffer-list", Fbuffer_list, Sbuffer_list, 0, 1, 0, 388DEFUN ("buffer-list", Fbuffer_list, Sbuffer_list, 0, 1, 0,
389 doc: /* Return a list of all existing live buffers. 389 doc: /* Return a list of all live buffers.
390If the optional arg FRAME is a frame, we return the buffer list in the 390If the optional arg FRAME is a frame, return the buffer list in the
391proper order for that frame: the buffers show in FRAME come first, 391proper order for that frame: the buffers shown in FRAME come first,
392followed by the rest of the buffers. */) 392followed by the rest of the buffers. */)
393 (Lisp_Object frame) 393 (Lisp_Object frame)
394{ 394{
diff --git a/src/data.c b/src/data.c
index 3c9152049b7..b94c899a3d8 100644
--- a/src/data.c
+++ b/src/data.c
@@ -1481,7 +1481,7 @@ SYMBOL is the variable being changed.
1481NEWVAL is the value it will be changed to. 1481NEWVAL is the value it will be changed to.
1482OPERATION is a symbol representing the kind of change, one of: `set', 1482OPERATION is a symbol representing the kind of change, one of: `set',
1483`let', `unlet', `makunbound', and `defvaralias'. 1483`let', `unlet', `makunbound', and `defvaralias'.
1484WHERE is a buffer if the buffer-local value of the variable being 1484WHERE is a buffer if the buffer-local value of the variable is being
1485changed, nil otherwise. 1485changed, nil otherwise.
1486 1486
1487All writes to aliases of SYMBOL will call WATCH-FUNCTION too. */) 1487All writes to aliases of SYMBOL will call WATCH-FUNCTION too. */)
diff --git a/src/font.c b/src/font.c
index 441652b0951..69efd7d56d2 100644
--- a/src/font.c
+++ b/src/font.c
@@ -5055,10 +5055,10 @@ DEFUN ("font-info", Ffont_info, Sfont_info, 1, 2, 0,
5055 doc: /* Return information about a font named NAME on frame FRAME. 5055 doc: /* Return information about a font named NAME on frame FRAME.
5056If FRAME is omitted or nil, use the selected frame. 5056If FRAME is omitted or nil, use the selected frame.
5057 5057
5058The returned value is a vector: 5058The returned value is a vector of 14 elements:
5059 [ OPENED-NAME FULL-NAME SIZE HEIGHT BASELINE-OFFSET RELATIVE-COMPOSE 5059 [ OPENED-NAME FULL-NAME SIZE HEIGHT BASELINE-OFFSET RELATIVE-COMPOSE
5060 DEFAULT-ASCENT MAX-WIDTH ASCENT DESCENT SPACE-WIDTH AVERAGE-WIDTH 5060 DEFAULT-ASCENT MAX-WIDTH ASCENT DESCENT SPACE-WIDTH AVERAGE-WIDTH
5061 CAPABILITY ] 5061 FILENAME CAPABILITY ]
5062where 5062where
5063 OPENED-NAME is the name used for opening the font, 5063 OPENED-NAME is the name used for opening the font,
5064 FULL-NAME is the full name of the font, 5064 FULL-NAME is the full name of the font,
@@ -5068,12 +5068,12 @@ where
5068 RELATIVE-COMPOSE and DEFAULT-ASCENT are the numbers controlling 5068 RELATIVE-COMPOSE and DEFAULT-ASCENT are the numbers controlling
5069 how to compose characters, 5069 how to compose characters,
5070 MAX-WIDTH is the maximum advance width of the font, 5070 MAX-WIDTH is the maximum advance width of the font,
5071 ASCENT, DESCENT, SPACE-WIDTH, AVERAGE-WIDTH are metrics of the font 5071 ASCENT, DESCENT, SPACE-WIDTH, and AVERAGE-WIDTH are metrics of
5072 in pixels, 5072 the font in pixels,
5073 FILENAME is the font file name, a string (or nil if the font backend 5073 FILENAME is the font file name, a string (or nil if the font backend
5074 doesn't provide a file name). 5074 doesn't provide a file name).
5075 CAPABILITY is a list whose first element is a symbol representing the 5075 CAPABILITY is a list whose first element is a symbol representing the
5076 font format, one of x, opentype, truetype, type1, pcf, or bdf. 5076 font format, one of `x', `opentype', `truetype', `type1', `pcf', or `bdf'.
5077 The remaining elements describe the details of the font capabilities, 5077 The remaining elements describe the details of the font capabilities,
5078 as follows: 5078 as follows:
5079 5079
diff --git a/src/frame.c b/src/frame.c
index 94ec9fbdc7d..09c0e79bdef 100644
--- a/src/frame.c
+++ b/src/frame.c
@@ -1608,6 +1608,8 @@ next_frame (Lisp_Object frame, Lisp_Object minibuf)
1608 Lisp_Object f, tail; 1608 Lisp_Object f, tail;
1609 int passed = 0; 1609 int passed = 0;
1610 1610
1611 eassume (CONSP (Vframe_list));
1612
1611 while (passed < 2) 1613 while (passed < 2)
1612 FOR_EACH_FRAME (tail, f) 1614 FOR_EACH_FRAME (tail, f)
1613 { 1615 {
@@ -1630,6 +1632,8 @@ prev_frame (Lisp_Object frame, Lisp_Object minibuf)
1630{ 1632{
1631 Lisp_Object f, tail, prev = Qnil; 1633 Lisp_Object f, tail, prev = Qnil;
1632 1634
1635 eassume (CONSP (Vframe_list));
1636
1633 FOR_EACH_FRAME (tail, f) 1637 FOR_EACH_FRAME (tail, f)
1634 { 1638 {
1635 if (EQ (frame, f) && !NILP (prev)) 1639 if (EQ (frame, f) && !NILP (prev))
@@ -1915,6 +1919,7 @@ delete_frame (Lisp_Object frame, Lisp_Object force)
1915 if (f == sf) 1919 if (f == sf)
1916 { 1920 {
1917 Lisp_Object tail; 1921 Lisp_Object tail;
1922 eassume (CONSP (Vframe_list));
1918 1923
1919 /* Look for another visible frame on the same terminal. 1924 /* Look for another visible frame on the same terminal.
1920 Do not call next_frame here because it may loop forever. 1925 Do not call next_frame here because it may loop forever.
diff --git a/src/frame.h b/src/frame.h
index a3b77636435..a5d4e4fc88b 100644
--- a/src/frame.h
+++ b/src/frame.h
@@ -1149,8 +1149,7 @@ default_pixels_per_inch_y (void)
1149/* FOR_EACH_FRAME (LIST_VAR, FRAME_VAR) followed by a statement is a 1149/* FOR_EACH_FRAME (LIST_VAR, FRAME_VAR) followed by a statement is a
1150 `for' loop which iterates over the elements of Vframe_list. The 1150 `for' loop which iterates over the elements of Vframe_list. The
1151 loop will set FRAME_VAR, a Lisp_Object, to each frame in 1151 loop will set FRAME_VAR, a Lisp_Object, to each frame in
1152 Vframe_list in succession and execute the statement. Vframe_list 1152 Vframe_list in succession and execute the statement. LIST_VAR
1153 should be nonempty, so the body is executed at least once. LIST_VAR
1154 should be a Lisp_Object too; it is used to iterate through the 1153 should be a Lisp_Object too; it is used to iterate through the
1155 Vframe_list. Note that this macro walks over child frames and 1154 Vframe_list. Note that this macro walks over child frames and
1156 the tooltip frame as well. 1155 the tooltip frame as well.
@@ -1160,7 +1159,7 @@ default_pixels_per_inch_y (void)
1160 something which executes the statement once. */ 1159 something which executes the statement once. */
1161 1160
1162#define FOR_EACH_FRAME(list_var, frame_var) \ 1161#define FOR_EACH_FRAME(list_var, frame_var) \
1163 for ((list_var) = (eassume (CONSP (Vframe_list)), Vframe_list); \ 1162 for ((list_var) = Vframe_list; \
1164 (CONSP (list_var) \ 1163 (CONSP (list_var) \
1165 && (frame_var = XCAR (list_var), true)); \ 1164 && (frame_var = XCAR (list_var), true)); \
1166 list_var = XCDR (list_var)) 1165 list_var = XCDR (list_var))
diff --git a/src/xdisp.c b/src/xdisp.c
index 3791d982b28..efc47b39e60 100644
--- a/src/xdisp.c
+++ b/src/xdisp.c
@@ -25087,19 +25087,25 @@ invisible_prop (Lisp_Object propval, Lisp_Object list)
25087} 25087}
25088 25088
25089DEFUN ("invisible-p", Finvisible_p, Sinvisible_p, 1, 1, 0, 25089DEFUN ("invisible-p", Finvisible_p, Sinvisible_p, 1, 1, 0,
25090 doc: /* Non-nil if the property makes the text invisible. 25090 doc: /* Non-nil if text properties at POS cause text there to be currently invisible.
25091POS-OR-PROP can be a marker or number, in which case it is taken to be 25091POS should be a marker or a buffer position; the value of the `invisible'
25092a position in the current buffer and the value of the `invisible' property 25092property at that position in the current buffer is examined.
25093is checked; or it can be some other value, which is then presumed to be the 25093POS can also be the actual value of the `invisible' text or overlay
25094value of the `invisible' property of the text of interest. 25094property of the text of interest, in which case the value itself is
25095The non-nil value returned can be t for truly invisible text or something 25095examined.
25096else if the text is replaced by an ellipsis. */) 25096
25097 (Lisp_Object pos_or_prop) 25097The non-nil value returned can be t for currently invisible text that is
25098entirely hidden on display, or some other non-nil, non-t value if the
25099text is replaced by an ellipsis.
25100
25101Note that whether text with `invisible' property is actually hidden on
25102display may depend on `buffer-invisibility-spec', which see. */)
25103 (Lisp_Object pos)
25098{ 25104{
25099 Lisp_Object prop 25105 Lisp_Object prop
25100 = (NATNUMP (pos_or_prop) || MARKERP (pos_or_prop) 25106 = (NATNUMP (pos) || MARKERP (pos)
25101 ? Fget_char_property (pos_or_prop, Qinvisible, Qnil) 25107 ? Fget_char_property (pos, Qinvisible, Qnil)
25102 : pos_or_prop); 25108 : pos);
25103 int invis = TEXT_PROP_MEANS_INVISIBLE (prop); 25109 int invis = TEXT_PROP_MEANS_INVISIBLE (prop);
25104 return (invis == 0 ? Qnil 25110 return (invis == 0 ? Qnil
25105 : invis == 1 ? Qt 25111 : invis == 1 ? Qt