components/vim/vim72-patches/7.2.141
author Danek Duvall <danek.duvall@oracle.com>
Thu, 07 Apr 2011 16:25:07 -0700
changeset 198 172fc01ce997
permissions -rw-r--r--
7016732 move vim from sfw to userland 7036367 vim is too big
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
198
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
     1
To: [email protected]
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
     2
Subject: Patch 7.2.141
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
     3
Fcc: outbox
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
     4
From: Bram Moolenaar <[email protected]>
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
     5
Mime-Version: 1.0
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
     6
Content-Type: text/plain; charset=ISO-8859-1
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
     7
Content-Transfer-Encoding: 8bit
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
     8
------------
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
     9
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    10
Patch 7.2.141
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    11
Problem:    When redrawing a character for bold spill this causes the next
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    12
	    character to be redrawn as well.
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    13
Solution:   Only redraw one extra character. (Yukihiro Nakadaira)
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    14
Files:	    src/screen.c
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    15
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    16
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    17
*** ../vim-7.2.140/src/screen.c	Wed Mar 11 17:44:38 2009
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    18
--- src/screen.c	Wed Mar 11 13:59:24 2009
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    19
***************
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    20
*** 5132,5139 ****
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    21
  #endif
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    22
  
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    23
  #if defined(FEAT_GUI) || defined(UNIX)
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    24
! 	    /* The bold trick makes a single row of pixels appear in the next
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    25
! 	     * character.  When a bold character is removed, the next
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    26
  	     * character should be redrawn too.  This happens for our own GUI
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    27
  	     * and for some xterms. */
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    28
  	    if (
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    29
--- 5132,5139 ----
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    30
  #endif
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    31
  
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    32
  #if defined(FEAT_GUI) || defined(UNIX)
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    33
! 	    /* The bold trick makes a single column of pixels appear in the
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    34
! 	     * next character.  When a bold character is removed, the next
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    35
  	     * character should be redrawn too.  This happens for our own GUI
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    36
  	     * and for some xterms. */
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    37
  	    if (
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    38
***************
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    39
*** 6276,6284 ****
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    40
--- 6276,6290 ----
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    41
      int		pcc[MAX_MCO];
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    42
  # endif
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    43
  #endif
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    44
+ #if defined(FEAT_MBYTE) || defined(FEAT_GUI) || defined(UNIX)
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    45
+     int		force_redraw_this;
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    46
+     int		force_redraw_next = FALSE;
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    47
+ #endif
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    48
+     int		need_redraw;
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    49
  
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    50
      if (ScreenLines == NULL || row >= screen_Rows)	/* safety check */
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    51
  	return;
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    52
+     off = LineOffset[row] + col;
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    53
  
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    54
  #ifdef FEAT_MBYTE
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    55
      /* When drawing over the right halve of a double-wide char clear out the
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    56
***************
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    57
*** 6288,6297 ****
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    58
  	    && !gui.in_use
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    59
  # endif
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    60
  	    && mb_fix_col(col, row) != col)
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    61
! 	screen_puts_len((char_u *)" ", 1, row, col - 1, 0);
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    62
  #endif
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    63
  
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    64
-     off = LineOffset[row] + col;
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    65
  #ifdef FEAT_MBYTE
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    66
      max_off = LineOffset[row] + screen_Columns;
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    67
  #endif
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    68
--- 6294,6314 ----
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    69
  	    && !gui.in_use
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    70
  # endif
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    71
  	    && mb_fix_col(col, row) != col)
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    72
!     {
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    73
! 	ScreenLines[off - 1] = ' ';
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    74
! 	ScreenAttrs[off - 1] = 0;
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    75
! 	if (enc_utf8)
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    76
! 	{
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    77
! 	    ScreenLinesUC[off - 1] = 0;
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    78
! 	    ScreenLinesC[0][off - 1] = 0;
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    79
! 	}
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    80
! 	/* redraw the previous cell, make it empty */
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    81
! 	screen_char(off - 1, row, col - 1);
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    82
! 	/* force the cell at "col" to be redrawn */
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    83
! 	force_redraw_next = TRUE;
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    84
!     }
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    85
  #endif
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    86
  
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    87
  #ifdef FEAT_MBYTE
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    88
      max_off = LineOffset[row] + screen_Columns;
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    89
  #endif
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    90
***************
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    91
*** 6355,6361 ****
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    92
  	}
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    93
  #endif
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    94
  
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    95
! 	if (ScreenLines[off] != c
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    96
  #ifdef FEAT_MBYTE
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    97
  		|| (mbyte_cells == 2
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    98
  		    && ScreenLines[off + 1] != (enc_dbcs ? ptr[1] : 0))
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    99
--- 6372,6383 ----
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   100
  	}
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   101
  #endif
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   102
  
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   103
! #if defined(FEAT_MBYTE) || defined(FEAT_GUI) || defined(UNIX)
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   104
! 	force_redraw_this = force_redraw_next;
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   105
! 	force_redraw_next = FALSE;
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   106
! #endif
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   107
! 
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   108
! 	need_redraw = ScreenLines[off] != c
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   109
  #ifdef FEAT_MBYTE
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   110
  		|| (mbyte_cells == 2
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   111
  		    && ScreenLines[off + 1] != (enc_dbcs ? ptr[1] : 0))
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   112
***************
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   113
*** 6367,6386 ****
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   114
  			|| screen_comp_differs(off, u8cc)))
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   115
  #endif
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   116
  		|| ScreenAttrs[off] != attr
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   117
! 		|| exmode_active
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   118
  		)
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   119
  	{
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   120
  #if defined(FEAT_GUI) || defined(UNIX)
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   121
  	    /* The bold trick makes a single row of pixels appear in the next
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   122
  	     * character.  When a bold character is removed, the next
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   123
  	     * character should be redrawn too.  This happens for our own GUI
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   124
! 	     * and for some xterms.
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   125
! 	     * Force the redraw by setting the attribute to a different value
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   126
! 	     * than "attr", the contents of ScreenLines[] may be needed by
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   127
! 	     * mb_off2cells() further on.
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   128
! 	     * Don't do this for the last drawn character, because the next
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   129
! 	     * character may not be redrawn. */
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   130
! 	    if (
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   131
  # ifdef FEAT_GUI
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   132
  		    gui.in_use
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   133
  # endif
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   134
--- 6389,6408 ----
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   135
  			|| screen_comp_differs(off, u8cc)))
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   136
  #endif
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   137
  		|| ScreenAttrs[off] != attr
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   138
! 		|| exmode_active;
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   139
! 
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   140
! 	if (need_redraw
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   141
! #if defined(FEAT_MBYTE) || defined(FEAT_GUI) || defined(UNIX)
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   142
! 		|| force_redraw_this
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   143
! #endif
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   144
  		)
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   145
  	{
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   146
  #if defined(FEAT_GUI) || defined(UNIX)
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   147
  	    /* The bold trick makes a single row of pixels appear in the next
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   148
  	     * character.  When a bold character is removed, the next
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   149
  	     * character should be redrawn too.  This happens for our own GUI
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   150
! 	     * and for some xterms. */
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   151
! 	    if (need_redraw && ScreenLines[off] != ' ' && (
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   152
  # ifdef FEAT_GUI
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   153
  		    gui.in_use
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   154
  # endif
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   155
***************
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   156
*** 6390,6412 ****
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   157
  # ifdef UNIX
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   158
  		    term_is_xterm
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   159
  # endif
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   160
! 	       )
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   161
  	    {
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   162
! 		int		n;
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   163
  
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   164
! 		n = ScreenAttrs[off];
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   165
! # ifdef FEAT_MBYTE
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   166
! 		if (col + mbyte_cells < screen_Columns
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   167
! 			&& (n > HL_ALL || (n & HL_BOLD))
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   168
! 			&& (len < 0 ? ptr[mbyte_blen] != NUL
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   169
! 					     : ptr + mbyte_blen < text + len))
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   170
! 		    ScreenAttrs[off + mbyte_cells] = attr + 1;
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   171
! # else
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   172
! 		if (col + 1 < screen_Columns
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   173
! 			&& (n > HL_ALL || (n & HL_BOLD))
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   174
! 			&& (len < 0 ? ptr[1] != NUL : ptr + 1 < text + len))
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   175
! 		    ScreenLines[off + 1] = 0;
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   176
! # endif
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   177
  	    }
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   178
  #endif
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   179
  #ifdef FEAT_MBYTE
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   180
--- 6412,6425 ----
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   181
  # ifdef UNIX
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   182
  		    term_is_xterm
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   183
  # endif
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   184
! 		    ))
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   185
  	    {
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   186
! 		int	n = ScreenAttrs[off];
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   187
  
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   188
! 		if (n > HL_ALL)
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   189
! 		    n = syn_attr2attr(n);
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   190
! 		if (n & HL_BOLD)
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   191
! 		    force_redraw_next = TRUE;
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   192
  	    }
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   193
  #endif
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   194
  #ifdef FEAT_MBYTE
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   195
***************
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   196
*** 6493,6498 ****
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   197
--- 6506,6525 ----
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   198
  	    ++ptr;
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   199
  	}
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   200
      }
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   201
+ 
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   202
+ #if defined(FEAT_MBYTE) || defined(FEAT_GUI) || defined(UNIX)
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   203
+     /* If we detected the next character needs to be redrawn, but the text
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   204
+      * doesn't extend up to there, update the character here. */
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   205
+     if (force_redraw_next && col < screen_Columns)
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   206
+     {
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   207
+ # ifdef FEAT_MBYTE
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   208
+ 	if (enc_dbcs != 0 && dbcs_off2cells(off, max_off) > 1)
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   209
+ 	    screen_char_2(off, row, col);
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   210
+ 	else
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   211
+ # endif
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   212
+ 	    screen_char(off, row, col);
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   213
+     }
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   214
+ #endif
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   215
  }
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   216
  
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   217
  #ifdef FEAT_SEARCH_EXTRA
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   218
*** ../vim-7.2.140/src/version.c	Wed Mar 11 17:44:38 2009
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   219
--- src/version.c	Wed Mar 11 17:55:22 2009
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   220
***************
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   221
*** 678,679 ****
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   222
--- 678,681 ----
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   223
  {   /* Add new patch number below this line */
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   224
+ /**/
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   225
+     141,
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   226
  /**/
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   227
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   228
-- 
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   229
Some of the well know MS-Windows errors:
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   230
	ETIME		Wrong time, wait a little while
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   231
	ECRASH		Try again...
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   232
	EDETECT		Unable to detect errors
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   233
	EOVER		You lost!  Play another game?
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   234
	ENOCLUE		Eh, what did you want?
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   235
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   236
 /// Bram Moolenaar -- [email protected] -- http://www.Moolenaar.net   \\\
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   237
///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   238
\\\        download, build and distribute -- http://www.A-A-P.org        ///
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   239
 \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///