emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] Changes to emacs/src/xdisp.c


From: Richard M. Stallman
Subject: [Emacs-diffs] Changes to emacs/src/xdisp.c
Date: Sun, 03 Mar 2002 15:02:09 -0500

Index: emacs/src/xdisp.c
diff -c emacs/src/xdisp.c:1.731 emacs/src/xdisp.c:1.732
*** emacs/src/xdisp.c:1.731     Sun Mar  3 12:28:52 2002
--- emacs/src/xdisp.c   Sun Mar  3 15:02:08 2002
***************
*** 8878,8886 ****
--- 8878,8888 ----
          
          if (FRAME_WINDOW_P (f) || f == sf)
            {
+ #ifdef HAVE_WINDOW_SYSTEM
              if (clear_face_cache_count % 50 == 0
                  && FRAME_WINDOW_P (f))
                clear_image_cache (f, 0);
+ #endif /* HAVE_WINDOW_SYSTEM */
  
              /* Mark all the scroll bars to be removed; we'll redeem
                 the ones we want when we redisplay their windows.  */
***************
*** 13598,13605 ****
        {
        /* A string: output it and check for %-constructs within it.  */
        unsigned char c;
!       unsigned char *this = XSTRING (elt)->data;
!       unsigned char *lisp_string = this;
  
        if (!NILP (props))
          {
--- 13600,13606 ----
        {
        /* A string: output it and check for %-constructs within it.  */
        unsigned char c;
!       unsigned char *this, *lisp_string;
  
        if (!NILP (props))
          {
***************
*** 13607,13612 ****
--- 13608,13630 ----
            oprops = Ftext_properties_at (make_number (0), elt);
            if (NILP (Fequal (props, oprops)))
              {
+               /* If the starting string has properties,
+                  merge the specified ones onto the existing ones.  */
+               if (! NILP (oprops))
+                 {
+                   Lisp_Object tem;
+ 
+                   oprops = Fcopy_sequence (oprops);
+                   tem = props;
+                   while (CONSP (tem))
+                     {
+                       oprops = Fplist_put (oprops, XCAR (tem),
+                                            XCAR (XCDR (tem)));
+                       tem = XCDR (XCDR (tem));
+                     }
+                   props = oprops;
+                 }
+ 
                aelt = Fassoc (elt, mode_line_proptrans_alist);
                if (! NILP (aelt) && !NILP (Fequal (props, XCDR (aelt))))
                  elt = XCAR (aelt);
***************
*** 13621,13626 ****
--- 13639,13647 ----
              }
          }
  
+       this = XSTRING (elt)->data;
+       lisp_string = this;
+ 
        if (literal)
          {
            prec = precision - n;
***************
*** 13689,13708 ****
                else if (c != 0)
                  {
                    int multibyte;
!                   unsigned char *spec
                      = decode_mode_spec (it->w, c, field, prec, &multibyte);
  
                    if (frame_title_ptr)
                      n += store_frame_title (spec, field, prec);
                    else
                      {
!                       int nglyphs_before, bytepos, charpos, nwritten;
                        
                        nglyphs_before = it->glyph_row->used[TEXT_AREA];
-                       bytepos = percent_position - XSTRING (elt)->data;
-                       charpos = (STRING_MULTIBYTE (elt)
-                                  ? string_byte_to_char (elt, bytepos)
-                                  : bytepos);
                        nwritten = display_string (spec, Qnil, elt,
                                                   charpos, 0, it,
                                                   field, prec, 0,
--- 13710,13733 ----
                else if (c != 0)
                  {
                    int multibyte;
!                   int bytepos, charpos;
!                   unsigned char *spec;
!                       
!                   bytepos = percent_position - lisp_string;
!                   charpos = (STRING_MULTIBYTE (elt)
!                              ? string_byte_to_char (elt, bytepos)
!                              : bytepos);
! 
!                   spec
                      = decode_mode_spec (it->w, c, field, prec, &multibyte);
  
                    if (frame_title_ptr)
                      n += store_frame_title (spec, field, prec);
                    else
                      {
!                       int nglyphs_before, nwritten;
                        
                        nglyphs_before = it->glyph_row->used[TEXT_AREA];
                        nwritten = display_string (spec, Qnil, elt,
                                                   charpos, 0, it,
                                                   field, prec, 0,



reply via email to

[Prev in Thread] Current Thread [Next in Thread]