]> code.delx.au - gnu-emacs/blobdiff - src/fringe.c
Minor fixes in w32-shell-execute.
[gnu-emacs] / src / fringe.c
index 85103f7f08dc73b9f78f9e5e24186c115227521f..409c444a317fd216dc35baf182c35e2eccc814bb 100644 (file)
@@ -20,6 +20,8 @@ along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.  */
 #include <config.h>
 #include <stdio.h>
 
+#include <byteswap.h>
+
 #include "lisp.h"
 #include "frame.h"
 #include "window.h"
@@ -81,7 +83,7 @@ struct fringe_bitmap
   unsigned width : 8;
   unsigned period : 8;
   unsigned align : 2;
-  unsigned dynamic : 1;
+  bool_bf dynamic : 1;
 };
 
 \f
@@ -657,6 +659,10 @@ draw_fringe_bitmap_1 (struct window *w, struct glyph_row *row, int left_p, int o
        {
          /* If W has a vertical border to its left, don't draw over it.  */
          wd -= ((!WINDOW_LEFTMOST_P (w)
+                 /* This could be wrong when we allow window local
+                    right dividers - but the window on the left is hard
+                    to get.  */
+                 && !FRAME_RIGHT_DIVIDER_WIDTH (f)
                  && !WINDOW_HAS_VERTICAL_SCROLL_BAR (w)
                  /* But don't reduce the fringe width if the window
                     has a left margin, because that means we are not
@@ -1519,7 +1525,7 @@ init_fringe_bitmap (int which, struct fringe_bitmap *fb, int once_p)
                                   | (swap_nibble[(b>>12) & 0xf]));
              b >>= (16 - fb->width);
 #ifdef WORDS_BIGENDIAN
-             b = ((b >> 8) | (b << 8));
+             b = bswap_16 (b);
 #endif
              *bits++ = b;
            }
@@ -1658,7 +1664,7 @@ If BITMAP already exists, the existing definition is replaced.  */)
       Fput (bitmap, Qfringe, make_number (n));
     }
 
-  fb.dynamic = 1;
+  fb.dynamic = true;
 
   xfb = xmalloc (sizeof fb + fb.height * BYTES_PER_BITMAP_ROW);
   fb.bits = b = (unsigned short *) (xfb + 1);
@@ -1688,6 +1694,8 @@ If BITMAP already exists, the existing definition is replaced.  */)
 DEFUN ("set-fringe-bitmap-face", Fset_fringe_bitmap_face, Sset_fringe_bitmap_face,
        1, 2, 0,
        doc: /* Set face for fringe bitmap BITMAP to FACE.
+FACE is merged with the `fringe' face, so normally FACE should specify
+only the foreground color.
 If FACE is nil, reset face to default fringe face.  */)
   (Lisp_Object bitmap, Lisp_Object face)
 {