]> git.eshelyaron.com Git - emacs.git/commitdiff
Document new :extend face attribute in manuals.
authorJimmy Aguilar Mena <spacibba@aol.com>
Sat, 21 Sep 2019 21:34:40 +0000 (23:34 +0200)
committerJimmy Aguilar Mena <spacibba@aol.com>
Mon, 14 Oct 2019 12:18:42 +0000 (14:18 +0200)
Some stylistic corrections in src/xdisp.c and src/xfaces.c.

doc/emacs/mark.texi
doc/lispref/display.texi
src/xdisp.c
src/xfaces.c

index bbeb4cb039ee547c8a333c93b2d5eeecc28cf819..f012d72fc2a8e40ddc687d5b2bfa0c6e59d65a0f 100644 (file)
@@ -23,6 +23,11 @@ When the mark is active, we say also that the region is active; Emacs
 indicates its extent by highlighting the text within it, using the
 @code{region} face (@pxref{Face Customization}).
 
+This is one of the few faces that has the @code{:extend t} attribute
+by default, which implies that the same face is used to highlight the
+text and space between end of line and the window border.  To
+highlight only the text you could set this attribute to @code{nil}.
+
 @cindex deactivating the mark
   After certain non-motion commands, including any command that
 changes the text in the buffer, Emacs automatically @dfn{deactivates}
index 61bd4ce88308d44121afb871b9ad9733a3578b70..1678d32db0aa4c88e27a59b62832eaa3a0135714 100644 (file)
@@ -2482,6 +2482,17 @@ faces (@pxref{Displaying Faces}).  If the face to inherit from is
 never merges @code{:inherit} attributes.  If a list of faces is used,
 attributes from faces earlier in the list override those from later
 faces.
+
+@item :extend
+Whether or not this face will be extended until the end of the window.
+The value should be @code{t} to extend until end of the window using
+this face or @code{nil} fill the space between the end of the line and
+the end of the window with the default face.  When a face is conformed
+by merging multiple other faces; only those with @code{:extend t} will
+be merged to conform a new face to extend until end of window.  By
+default only @code{region} and @code{hl-line} have this attribute set
+to @code{t}.
+
 @end table
 
 @defun font-family-list &optional frame
@@ -2840,6 +2851,11 @@ This sets the @code{:inverse-video} attribute of @var{face} to
 
 @deffn Command invert-face face &optional frame
 This swaps the foreground and background colors of face @var{face}.
+@end deffn
+
+@deffn Command set-face-extend face extend &optional frame
+This sets the @code{:extend} attribute of @var{face} to
+@var{extend}.
 @end deffn
 
   The following functions examine the attributes of a face.  They
@@ -2900,6 +2916,12 @@ This function returns non-@code{nil} if face @var{face} specifies
 a non-@code{nil} @code{:inverse-video} attribute.
 @end defun
 
+@defun face-extend-p face &optional frame
+This function returns non-@code{nil} if face @var{face} specifies
+a non-@code{nil} @code{:extend} attribute.
+@end defun
+
+
 @node Displaying Faces
 @subsection Displaying Faces
 @cindex displaying faces
index 2c69a1f04f1342977496110956340996bc39bb4e..45462c5ac59c5992daa0ab9b8102c874122536fe 100644 (file)
@@ -21400,7 +21400,7 @@ append_space_for_newline (struct it *it, bool default_face_p)
          const int local_default_face_id =
            lookup_basic_face (it->w, it->f, DEFAULT_FACE_ID);
          struct face* default_face =
-           FACE_FROM_ID (it->f, local_default_face_id);
+           FACE_FROM_ID_OR_NULL (it->f, local_default_face_id);
 
 #ifdef HAVE_WINDOW_SYSTEM
          if (FRAME_WINDOW_P (it->f))
@@ -21534,7 +21534,7 @@ append_space_for_newline (struct it *it, bool default_face_p)
          g->ascent = it->max_ascent;
          g->descent = it->max_descent;
        }
-#endif // HAVE_WINDOW_SYSTEM
+#endif /* HAVE_WINDOW_SYSTEM  */
       it->override_ascent = -1;
       it->constrain_row_ascent_descent_p = false;
       it->current_x = saved_x;
@@ -21722,8 +21722,6 @@ extend_face_to_end_of_line (struct it *it)
                }
             }
 
-         /* Restore the face after the indicator was generated.  */
-
          /* If there is space after the indicator generate an
             extra empty glyph to restore the face.  Issue was
             observed in X systems.  */
index 5577640325d10c22c74eab44de22dbc7ab5ae99c..cc65527fe612b7efd9ff49a8b628521f08b25fd9 100644 (file)
@@ -2282,7 +2282,7 @@ filter_face_ref (Lisp_Object face_ref,
    of ERR_MSGS).  Use NAMED_MERGE_POINTS to detect loops in face
    inheritance or list structure; it may be 0 for most callers.
 
-   attr_filter is the index of a parameter that conditions the merging
+   ATTR_FILTER is the index of a parameter that conditions the merging
    for named faces (case 1) to only the face_ref where
    lface[merge_face_ref] is non-nil. To merge unconditionally set this
    value to 0.
@@ -6043,7 +6043,7 @@ compute_char_face (struct frame *f, int ch, Lisp_Object prop)
    which a different face is needed, as far as text properties and
    overlays are concerned.  W is a window displaying current_buffer.
 
-   attr_filter is passed merge_face_ref.
+   ATTR_FILTER is passed merge_face_ref.
 
    REGION_BEG, REGION_END delimit the region, so it can be
    highlighted.
@@ -6126,7 +6126,8 @@ face_at_buffer_position (struct window *w, ptrdiff_t pos,
   }
 
   /* Optimize common cases where we can use the default face.  */
-  if (noverlays == 0 && NILP (prop))
+  if (noverlays == 0
+      && NILP (prop))
     {
       SAFE_FREE ();
       return default_face->id;