components/vim/vim72-patches/7.2.080
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.080
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.080
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    11
Problem:    When typing a composing character just after starting completion
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    12
	    may access memory before its allocation point. (Dominique Pelle)
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    13
Solution:   Don't delete before the completion start column.  Add extra checks
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    14
	    for the offset not being negative.
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    15
Files:	    src/edit.c
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
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    18
*** ../vim-7.2.079/src/edit.c	Wed Aug  6 18:56:55 2008
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    19
--- src/edit.c	Tue Jan 13 12:05:57 2009
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    20
***************
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    21
*** 147,152 ****
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    22
--- 147,153 ----
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    23
  static int  ins_compl_bs __ARGS((void));
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    24
  static void ins_compl_new_leader __ARGS((void));
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    25
  static void ins_compl_addleader __ARGS((int c));
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    26
+ static int ins_compl_len __ARGS((void));
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    27
  static void ins_compl_restart __ARGS((void));
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    28
  static void ins_compl_set_original_text __ARGS((char_u *str));
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    29
  static void ins_compl_addfrommatch __ARGS((void));
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    30
***************
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    31
*** 197,203 ****
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    32
  static void mb_replace_pop_ins __ARGS((int cc));
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    33
  #endif
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    34
  static void replace_flush __ARGS((void));
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    35
! static void replace_do_bs __ARGS((void));
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    36
  #ifdef FEAT_CINDENT
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    37
  static int cindent_on __ARGS((void));
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    38
  #endif
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    39
--- 198,205 ----
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    40
  static void mb_replace_pop_ins __ARGS((int cc));
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    41
  #endif
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    42
  static void replace_flush __ARGS((void));
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    43
! static void replace_do_bs __ARGS((int limit_col));
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    44
! static int del_char_after_col __ARGS((int limit_col));
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    45
  #ifdef FEAT_CINDENT
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    46
  static int cindent_on __ARGS((void));
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
***************
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    49
*** 1933,1938 ****
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    50
--- 1935,1942 ----
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    51
  /*
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    52
   * Backspace the cursor until the given column.  Handles REPLACE and VREPLACE
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    53
   * modes correctly.  May also be used when not in insert mode at all.
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    54
+  * Will attempt not to go before "col" even when there is a composing
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    55
+  * character.
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
      void
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    58
  backspace_until_column(col)
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    59
***************
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    60
*** 1942,1954 ****
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    61
      {
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    62
  	curwin->w_cursor.col--;
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    63
  	if (State & REPLACE_FLAG)
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    64
! 	    replace_do_bs();
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    65
! 	else
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    66
! 	    (void)del_char(FALSE);
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    67
      }
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    68
  }
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    69
  #endif
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    70
  
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    71
  #if defined(FEAT_INS_EXPAND) || defined(PROTO)
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
   * CTRL-X pressed in Insert mode.
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    74
--- 1946,1994 ----
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    75
      {
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    76
  	curwin->w_cursor.col--;
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    77
  	if (State & REPLACE_FLAG)
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    78
! 	    replace_do_bs(col);
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    79
! 	else if (!del_char_after_col(col))
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    80
! 	    break;
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    81
      }
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    82
  }
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    83
  #endif
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
+ /*
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    86
+  * Like del_char(), but make sure not to go before column "limit_col".
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    87
+  * Only matters when there are composing characters.
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    88
+  * Return TRUE when something was deleted.
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    89
+  */
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    90
+    static int
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    91
+ del_char_after_col(limit_col)
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    92
+     int limit_col;
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    93
+ {
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    94
+ #ifdef FEAT_MBYTE
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    95
+     if (enc_utf8 && limit_col >= 0)
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    96
+     {
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    97
+ 	int ecol = curwin->w_cursor.col + 1;
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    98
+ 
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
    99
+ 	/* Make sure the cursor is at the start of a character, but
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   100
+ 	 * skip forward again when going too far back because of a
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   101
+ 	 * composing character. */
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   102
+ 	mb_adjust_cursor();
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   103
+ 	while (curwin->w_cursor.col < limit_col)
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   104
+ 	{
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   105
+ 	    int l = utf_ptr2len(ml_get_cursor());
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   106
+ 
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   107
+ 	    if (l == 0)  /* end of line */
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   108
+ 		break;
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   109
+ 	    curwin->w_cursor.col += l;
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   110
+ 	}
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   111
+ 	if (*ml_get_cursor() == NUL || curwin->w_cursor.col == ecol)
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   112
+ 	    return FALSE;
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   113
+ 	del_bytes((long)(ecol - curwin->w_cursor.col), FALSE, TRUE);
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   114
+     }
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   115
+     else
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   116
+ #endif
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   117
+ 	(void)del_char(FALSE);
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   118
+     return TRUE;
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
+ 
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   121
  #if defined(FEAT_INS_EXPAND) || defined(PROTO)
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   122
  /*
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   123
   * CTRL-X pressed in Insert mode.
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   124
***************
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   125
*** 2418,2424 ****
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   126
  	{
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   127
  	    had_match = (curwin->w_cursor.col > compl_col);
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   128
  	    ins_compl_delete();
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   129
! 	    ins_bytes(compl_leader + curwin->w_cursor.col - compl_col);
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   130
  	    ins_redraw(FALSE);
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   131
  
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   132
  	    /* When the match isn't there (to avoid matching itself) remove it
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   133
--- 2458,2464 ----
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   134
  	{
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   135
  	    had_match = (curwin->w_cursor.col > compl_col);
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   136
  	    ins_compl_delete();
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   137
! 	    ins_bytes(compl_leader + ins_compl_len());
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   138
  	    ins_redraw(FALSE);
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
  	    /* When the match isn't there (to avoid matching itself) remove it
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   141
***************
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   142
*** 2470,2476 ****
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   143
  	    *p = NUL;
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   144
  	    had_match = (curwin->w_cursor.col > compl_col);
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   145
  	    ins_compl_delete();
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   146
! 	    ins_bytes(compl_leader + curwin->w_cursor.col - compl_col);
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   147
  	    ins_redraw(FALSE);
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   148
  
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   149
  	    /* When the match isn't there (to avoid matching itself) remove it
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   150
--- 2510,2516 ----
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   151
  	    *p = NUL;
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   152
  	    had_match = (curwin->w_cursor.col > compl_col);
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   153
  	    ins_compl_delete();
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   154
! 	    ins_bytes(compl_leader + ins_compl_len());
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   155
  	    ins_redraw(FALSE);
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   156
  
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   157
  	    /* When the match isn't there (to avoid matching itself) remove it
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   158
***************
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   159
*** 3209,3215 ****
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
      ins_compl_del_pum();
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   162
      ins_compl_delete();
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   163
!     ins_bytes(compl_leader + curwin->w_cursor.col - compl_col);
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   164
      compl_used_match = FALSE;
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   165
  
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   166
      if (compl_started)
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   167
--- 3249,3255 ----
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   168
  {
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   169
      ins_compl_del_pum();
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   170
      ins_compl_delete();
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   171
!     ins_bytes(compl_leader + ins_compl_len());
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   172
      compl_used_match = FALSE;
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   173
  
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   174
      if (compl_started)
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   175
***************
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   176
*** 3264,3269 ****
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   177
--- 3304,3323 ----
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   178
  }
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   179
  
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   180
  /*
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   181
+  * Return the length of the completion, from the completion start column to
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   182
+  * the cursor column.  Making sure it never goes below zero.
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   183
+  */
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   184
+     static int
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   185
+ ins_compl_len()
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   186
+ {
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   187
+     int off = curwin->w_cursor.col - compl_col;
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   188
+ 
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   189
+     if (off < 0)
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   190
+ 	return 0;
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   191
+     return off;
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
+ 
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   194
+ /*
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   195
   * Append one character to the match leader.  May reduce the number of
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   196
   * matches.
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   197
   */
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   198
***************
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   199
*** 3621,3630 ****
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
  		ins_compl_delete();
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   202
  		if (compl_leader != NULL)
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   203
! 		    ins_bytes(compl_leader + curwin->w_cursor.col - compl_col);
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   204
  		else if (compl_first_match != NULL)
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   205
! 		    ins_bytes(compl_orig_text
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   206
! 					  + curwin->w_cursor.col - compl_col);
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   207
  		retval = TRUE;
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   208
  	    }
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   209
  
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   210
--- 3675,3683 ----
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   211
  	    {
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   212
  		ins_compl_delete();
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   213
  		if (compl_leader != NULL)
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   214
! 		    ins_bytes(compl_leader + ins_compl_len());
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   215
  		else if (compl_first_match != NULL)
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   216
! 		    ins_bytes(compl_orig_text + ins_compl_len());
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   217
  		retval = TRUE;
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   218
  	    }
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   219
  
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
*** 4256,4262 ****
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   222
      static void
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   223
  ins_compl_insert()
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
!     ins_bytes(compl_shown_match->cp_str + curwin->w_cursor.col - compl_col);
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   226
      if (compl_shown_match->cp_flags & ORIGINAL_TEXT)
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   227
  	compl_used_match = FALSE;
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   228
      else
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   229
--- 4309,4315 ----
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   230
      static void
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   231
  ins_compl_insert()
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   232
  {
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   233
!     ins_bytes(compl_shown_match->cp_str + ins_compl_len());
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   234
      if (compl_shown_match->cp_flags & ORIGINAL_TEXT)
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   235
  	compl_used_match = FALSE;
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   236
      else
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   237
***************
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   238
*** 4425,4431 ****
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   239
  	if (!compl_get_longest || compl_used_match)
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   240
  	    ins_compl_insert();
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   241
  	else
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   242
! 	    ins_bytes(compl_leader + curwin->w_cursor.col - compl_col);
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   243
      }
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   244
      else
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   245
  	compl_used_match = FALSE;
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   246
--- 4478,4484 ----
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   247
  	if (!compl_get_longest || compl_used_match)
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   248
  	    ins_compl_insert();
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   249
  	else
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   250
! 	    ins_bytes(compl_leader + ins_compl_len());
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   251
      }
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   252
      else
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   253
  	compl_used_match = FALSE;
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   254
***************
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   255
*** 7123,7131 ****
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   256
   * cc == 0: character was inserted, delete it
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   257
   * cc > 0: character was replaced, put cc (first byte of original char) back
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   258
   * and check for more characters to be put back
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   259
   */
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   260
      static void
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   261
! replace_do_bs()
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   262
  {
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   263
      int		cc;
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   264
  #ifdef FEAT_VREPLACE
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   265
--- 7176,7187 ----
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   266
   * cc == 0: character was inserted, delete it
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   267
   * cc > 0: character was replaced, put cc (first byte of original char) back
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   268
   * and check for more characters to be put back
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   269
+  * When "limit_col" is >= 0, don't delete before this column.  Matters when
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   270
+  * using composing characters, use del_char_after_col() instead of del_char().
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   271
   */
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   272
      static void
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   273
! replace_do_bs(limit_col)
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   274
!     int		limit_col;
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   275
  {
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   276
      int		cc;
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   277
  #ifdef FEAT_VREPLACE
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   278
***************
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   279
*** 7153,7159 ****
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   280
  #ifdef FEAT_MBYTE
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   281
  	if (has_mbyte)
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   282
  	{
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   283
! 	    del_char(FALSE);
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   284
  # ifdef FEAT_VREPLACE
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   285
  	    if (State & VREPLACE_FLAG)
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   286
  		orig_len = (int)STRLEN(ml_get_cursor());
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   287
--- 7209,7215 ----
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   288
  #ifdef FEAT_MBYTE
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   289
  	if (has_mbyte)
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   290
  	{
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   291
! 	    (void)del_char_after_col(limit_col);
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   292
  # ifdef FEAT_VREPLACE
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   293
  	    if (State & VREPLACE_FLAG)
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   294
  		orig_len = (int)STRLEN(ml_get_cursor());
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   295
***************
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   296
*** 7203,7209 ****
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   297
  	changed_bytes(curwin->w_cursor.lnum, curwin->w_cursor.col);
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   298
      }
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   299
      else if (cc == 0)
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   300
! 	(void)del_char(FALSE);
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   301
  }
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   302
  
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   303
  #ifdef FEAT_CINDENT
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   304
--- 7259,7265 ----
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   305
  	changed_bytes(curwin->w_cursor.lnum, curwin->w_cursor.col);
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   306
      }
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   307
      else if (cc == 0)
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   308
! 	(void)del_char_after_col(limit_col);
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   309
  }
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   310
  
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   311
  #ifdef FEAT_CINDENT
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   312
***************
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   313
*** 8239,8245 ****
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   314
  	 * Replace mode */
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   315
  	if (curwin->w_cursor.lnum != Insstart.lnum
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   316
  		|| curwin->w_cursor.col >= Insstart.col)
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   317
! 	    replace_do_bs();
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   318
      }
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   319
      else
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   320
  	(void)del_char(FALSE);
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   321
--- 8295,8301 ----
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   322
  	 * Replace mode */
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   323
  	if (curwin->w_cursor.lnum != Insstart.lnum
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   324
  		|| curwin->w_cursor.col >= Insstart.col)
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   325
! 	    replace_do_bs(-1);
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   326
      }
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   327
      else
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   328
  	(void)del_char(FALSE);
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   329
***************
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   330
*** 8556,8562 ****
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   331
  		break;
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   332
  	    }
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   333
  	    if (State & REPLACE_FLAG)
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   334
! 		replace_do_bs();
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   335
  	    else
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   336
  	    {
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   337
  #ifdef FEAT_MBYTE
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   338
--- 8612,8618 ----
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   339
  		break;
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   340
  	    }
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   341
  	    if (State & REPLACE_FLAG)
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   342
! 		replace_do_bs(-1);
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   343
  	    else
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   344
  	    {
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   345
  #ifdef FEAT_MBYTE
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   346
*** ../vim-7.2.079/src/version.c	Tue Jan  6 16:13:42 2009
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   347
--- src/version.c	Tue Jan 13 12:25:29 2009
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   348
***************
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   349
*** 678,679 ****
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   350
--- 678,681 ----
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   351
  {   /* Add new patch number below this line */
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   352
+ /**/
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   353
+     80,
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   354
  /**/
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   355
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   356
-- 
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   357
At some point in the project somebody will start whining about the need to
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   358
determine the project "requirements".  This involves interviewing people who
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   359
don't know what they want but, curiously, know exactly when they need it.
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   360
				(Scott Adams - The Dilbert principle)
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   361
172fc01ce997 7016732 move vim from sfw to userland
Danek Duvall <danek.duvall@oracle.com>
parents:
diff changeset
   362
 /// 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
   363
///        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
   364
\\\        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
   365
 \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///