- patchlevel 426
This commit is contained in:
		
							parent
							
								
									e6bc0dcac9
								
							
						
					
					
						commit
						227f6b4b4b
					
				
							
								
								
									
										279
									
								
								7.3.426
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										279
									
								
								7.3.426
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,279 @@ | |||||||
|  | To: vim_dev@googlegroups.com | ||||||
|  | Subject: Patch 7.3.426 | ||||||
|  | Fcc: outbox | ||||||
|  | From: Bram Moolenaar <Bram@moolenaar.net> | ||||||
|  | Mime-Version: 1.0 | ||||||
|  | Content-Type: text/plain; charset=UTF-8 | ||||||
|  | Content-Transfer-Encoding: 8bit | ||||||
|  | ------------ | ||||||
|  | 
 | ||||||
|  | Patch 7.3.426 | ||||||
|  | Problem:    With '$' in 'cpoptions' the $ is not displayed in the first | ||||||
|  |             column. | ||||||
|  | Solution:   Use -1 instead of 0 as a special value. (Hideki Eiraku and | ||||||
|  |             Hirohito Higashi) | ||||||
|  | Files:      src/edit.c, src/globals.h, src/move.c, src/screen.c, src/search.c  | ||||||
|  |      | ||||||
|  | 
 | ||||||
|  | *** ../vim-7.3.425/src/edit.c	2012-01-26 18:58:25.000000000 +0100 | ||||||
|  | --- src/edit.c	2012-02-04 23:23:45.000000000 +0100 | ||||||
|  | *************** | ||||||
|  | *** 1763,1771 **** | ||||||
|  |       static void | ||||||
|  |   undisplay_dollar() | ||||||
|  |   { | ||||||
|  | !     if (dollar_vcol) | ||||||
|  |       { | ||||||
|  | ! 	dollar_vcol = 0; | ||||||
|  |   	redrawWinline(curwin->w_cursor.lnum, FALSE); | ||||||
|  |       } | ||||||
|  |   } | ||||||
|  | --- 1763,1771 ---- | ||||||
|  |       static void | ||||||
|  |   undisplay_dollar() | ||||||
|  |   { | ||||||
|  | !     if (dollar_vcol >= 0) | ||||||
|  |       { | ||||||
|  | ! 	dollar_vcol = -1; | ||||||
|  |   	redrawWinline(curwin->w_cursor.lnum, FALSE); | ||||||
|  |       } | ||||||
|  |   } | ||||||
|  | *************** | ||||||
|  | *** 5441,5447 **** | ||||||
|  |   				compl_curr_match->cp_number); | ||||||
|  |   		edit_submode_extra = match_ref; | ||||||
|  |   		edit_submode_highl = HLF_R; | ||||||
|  | ! 		if (dollar_vcol) | ||||||
|  |   		    curs_columns(FALSE); | ||||||
|  |   	    } | ||||||
|  |   	} | ||||||
|  | --- 5441,5447 ---- | ||||||
|  |   				compl_curr_match->cp_number); | ||||||
|  |   		edit_submode_extra = match_ref; | ||||||
|  |   		edit_submode_highl = HLF_R; | ||||||
|  | ! 		if (dollar_vcol >= 0) | ||||||
|  |   		    curs_columns(FALSE); | ||||||
|  |   	    } | ||||||
|  |   	} | ||||||
|  | *************** | ||||||
|  | *** 8961,8967 **** | ||||||
|  |        * We can emulate the vi behaviour by pretending there is a dollar | ||||||
|  |        * displayed even when there isn't. | ||||||
|  |        *  --pkv Sun Jan 19 01:56:40 EST 2003 */ | ||||||
|  | !     if (vim_strchr(p_cpo, CPO_BACKSPACE) != NULL && dollar_vcol == 0) | ||||||
|  |   	dollar_vcol = curwin->w_virtcol; | ||||||
|  |    | ||||||
|  |   #ifdef FEAT_FOLDING | ||||||
|  | --- 8961,8967 ---- | ||||||
|  |        * We can emulate the vi behaviour by pretending there is a dollar | ||||||
|  |        * displayed even when there isn't. | ||||||
|  |        *  --pkv Sun Jan 19 01:56:40 EST 2003 */ | ||||||
|  | !     if (vim_strchr(p_cpo, CPO_BACKSPACE) != NULL && dollar_vcol == -1) | ||||||
|  |   	dollar_vcol = curwin->w_virtcol; | ||||||
|  |    | ||||||
|  |   #ifdef FEAT_FOLDING | ||||||
|  | *** ../vim-7.3.425/src/globals.h	2011-05-10 16:41:13.000000000 +0200 | ||||||
|  | --- src/globals.h	2012-02-04 23:24:07.000000000 +0100 | ||||||
|  | *************** | ||||||
|  | *** 113,121 **** | ||||||
|  |    * When '$' is included in 'cpoptions' option set: | ||||||
|  |    * When a change command is given that deletes only part of a line, a dollar | ||||||
|  |    * is put at the end of the changed text. dollar_vcol is set to the virtual | ||||||
|  | !  * column of this '$'. | ||||||
|  |    */ | ||||||
|  | ! EXTERN colnr_T	dollar_vcol INIT(= 0); | ||||||
|  |    | ||||||
|  |   #ifdef FEAT_INS_EXPAND | ||||||
|  |   /* | ||||||
|  | --- 113,121 ---- | ||||||
|  |    * When '$' is included in 'cpoptions' option set: | ||||||
|  |    * When a change command is given that deletes only part of a line, a dollar | ||||||
|  |    * is put at the end of the changed text. dollar_vcol is set to the virtual | ||||||
|  | !  * column of this '$'.  -1 is used to indicate no $ is being displayed. | ||||||
|  |    */ | ||||||
|  | ! EXTERN colnr_T	dollar_vcol INIT(= -1); | ||||||
|  |    | ||||||
|  |   #ifdef FEAT_INS_EXPAND | ||||||
|  |   /* | ||||||
|  | *** ../vim-7.3.425/src/move.c	2012-01-10 22:26:12.000000000 +0100 | ||||||
|  | --- src/move.c	2012-02-04 23:21:08.000000000 +0100 | ||||||
|  | *************** | ||||||
|  | *** 362,368 **** | ||||||
|  |   #endif | ||||||
|  |   	    ) | ||||||
|  |       { | ||||||
|  | ! 	dollar_vcol = 0; | ||||||
|  |   	if (curwin->w_skipcol != 0) | ||||||
|  |   	{ | ||||||
|  |   	    curwin->w_skipcol = 0; | ||||||
|  | --- 362,368 ---- | ||||||
|  |   #endif | ||||||
|  |   	    ) | ||||||
|  |       { | ||||||
|  | ! 	dollar_vcol = -1; | ||||||
|  |   	if (curwin->w_skipcol != 0) | ||||||
|  |   	{ | ||||||
|  |   	    curwin->w_skipcol = 0; | ||||||
|  | *************** | ||||||
|  | *** 966,972 **** | ||||||
|  |    | ||||||
|  |       /* remove '$' from change command when cursor moves onto it */ | ||||||
|  |       if (startcol > dollar_vcol) | ||||||
|  | ! 	dollar_vcol = 0; | ||||||
|  |    | ||||||
|  |       extra = curwin_col_off(); | ||||||
|  |       curwin->w_wcol = curwin->w_virtcol + extra; | ||||||
|  | --- 966,972 ---- | ||||||
|  |    | ||||||
|  |       /* remove '$' from change command when cursor moves onto it */ | ||||||
|  |       if (startcol > dollar_vcol) | ||||||
|  | ! 	dollar_vcol = -1; | ||||||
|  |    | ||||||
|  |       extra = curwin_col_off(); | ||||||
|  |       curwin->w_wcol = curwin->w_virtcol + extra; | ||||||
|  | *** ../vim-7.3.425/src/screen.c	2012-01-10 22:26:12.000000000 +0100 | ||||||
|  | --- src/screen.c	2012-02-04 23:22:44.000000000 +0100 | ||||||
|  | *************** | ||||||
|  | *** 1637,1647 **** | ||||||
|  |   	     * When at start of changed lines: May scroll following lines | ||||||
|  |   	     * up or down to minimize redrawing. | ||||||
|  |   	     * Don't do this when the change continues until the end. | ||||||
|  | ! 	     * Don't scroll when dollar_vcol is non-zero, keep the "$". | ||||||
|  |   	     */ | ||||||
|  |   	    if (lnum == mod_top | ||||||
|  |   		    && mod_bot != MAXLNUM | ||||||
|  | ! 		    && !(dollar_vcol != 0 && mod_bot == mod_top + 1)) | ||||||
|  |   	    { | ||||||
|  |   		int		old_rows = 0; | ||||||
|  |   		int		new_rows = 0; | ||||||
|  | --- 1637,1647 ---- | ||||||
|  |   	     * When at start of changed lines: May scroll following lines | ||||||
|  |   	     * up or down to minimize redrawing. | ||||||
|  |   	     * Don't do this when the change continues until the end. | ||||||
|  | ! 	     * Don't scroll when dollar_vcol >= 0, keep the "$". | ||||||
|  |   	     */ | ||||||
|  |   	    if (lnum == mod_top | ||||||
|  |   		    && mod_bot != MAXLNUM | ||||||
|  | ! 		    && !(dollar_vcol >= 0 && mod_bot == mod_top + 1)) | ||||||
|  |   	    { | ||||||
|  |   		int		old_rows = 0; | ||||||
|  |   		int		new_rows = 0; | ||||||
|  | *************** | ||||||
|  | *** 1868,1879 **** | ||||||
|  |   	    if (row > wp->w_height)	/* past end of screen */ | ||||||
|  |   	    { | ||||||
|  |   		/* we may need the size of that too long line later on */ | ||||||
|  | ! 		if (dollar_vcol == 0) | ||||||
|  |   		    wp->w_lines[idx].wl_size = plines_win(wp, lnum, TRUE); | ||||||
|  |   		++idx; | ||||||
|  |   		break; | ||||||
|  |   	    } | ||||||
|  | ! 	    if (dollar_vcol == 0) | ||||||
|  |   		wp->w_lines[idx].wl_size = row - srow; | ||||||
|  |   	    ++idx; | ||||||
|  |   #ifdef FEAT_FOLDING | ||||||
|  | --- 1868,1879 ---- | ||||||
|  |   	    if (row > wp->w_height)	/* past end of screen */ | ||||||
|  |   	    { | ||||||
|  |   		/* we may need the size of that too long line later on */ | ||||||
|  | ! 		if (dollar_vcol == -1) | ||||||
|  |   		    wp->w_lines[idx].wl_size = plines_win(wp, lnum, TRUE); | ||||||
|  |   		++idx; | ||||||
|  |   		break; | ||||||
|  |   	    } | ||||||
|  | ! 	    if (dollar_vcol == -1) | ||||||
|  |   		wp->w_lines[idx].wl_size = row - srow; | ||||||
|  |   	    ++idx; | ||||||
|  |   #ifdef FEAT_FOLDING | ||||||
|  | *************** | ||||||
|  | *** 1990,1996 **** | ||||||
|  |   	    } | ||||||
|  |   #endif | ||||||
|  |   	} | ||||||
|  | ! 	else if (dollar_vcol == 0) | ||||||
|  |   	    wp->w_botline = lnum; | ||||||
|  |    | ||||||
|  |   	/* make sure the rest of the screen is blank */ | ||||||
|  | --- 1990,1996 ---- | ||||||
|  |   	    } | ||||||
|  |   #endif | ||||||
|  |   	} | ||||||
|  | ! 	else if (dollar_vcol == -1) | ||||||
|  |   	    wp->w_botline = lnum; | ||||||
|  |    | ||||||
|  |   	/* make sure the rest of the screen is blank */ | ||||||
|  | *************** | ||||||
|  | *** 2005,2011 **** | ||||||
|  |       wp->w_old_botfill = wp->w_botfill; | ||||||
|  |   #endif | ||||||
|  |    | ||||||
|  | !     if (dollar_vcol == 0) | ||||||
|  |       { | ||||||
|  |   	/* | ||||||
|  |   	 * There is a trick with w_botline.  If we invalidate it on each | ||||||
|  | --- 2005,2011 ---- | ||||||
|  |       wp->w_old_botfill = wp->w_botfill; | ||||||
|  |   #endif | ||||||
|  |    | ||||||
|  | !     if (dollar_vcol == -1) | ||||||
|  |       { | ||||||
|  |   	/* | ||||||
|  |   	 * There is a trick with w_botline.  If we invalidate it on each | ||||||
|  | *************** | ||||||
|  | *** 3564,3570 **** | ||||||
|  |   	} | ||||||
|  |    | ||||||
|  |   	/* When still displaying '$' of change command, stop at cursor */ | ||||||
|  | ! 	if (dollar_vcol != 0 && wp == curwin | ||||||
|  |   		   && lnum == wp->w_cursor.lnum && vcol >= (long)wp->w_virtcol | ||||||
|  |   #ifdef FEAT_DIFF | ||||||
|  |   				   && filler_todo <= 0 | ||||||
|  | --- 3564,3570 ---- | ||||||
|  |   	} | ||||||
|  |    | ||||||
|  |   	/* When still displaying '$' of change command, stop at cursor */ | ||||||
|  | ! 	if (dollar_vcol >= 0 && wp == curwin | ||||||
|  |   		   && lnum == wp->w_cursor.lnum && vcol >= (long)wp->w_virtcol | ||||||
|  |   #ifdef FEAT_DIFF | ||||||
|  |   				   && filler_todo <= 0 | ||||||
|  | *** ../vim-7.3.425/src/search.c	2012-01-26 20:58:21.000000000 +0100 | ||||||
|  | --- src/search.c	2012-02-04 23:23:10.000000000 +0100 | ||||||
|  | *************** | ||||||
|  | *** 2501,2508 **** | ||||||
|  |   	    save_siso = p_siso; | ||||||
|  |   	    /* Handle "$" in 'cpo': If the ')' is typed on top of the "$", | ||||||
|  |   	     * stop displaying the "$". */ | ||||||
|  | ! 	    if (dollar_vcol > 0 && dollar_vcol == curwin->w_virtcol) | ||||||
|  | ! 		dollar_vcol = 0; | ||||||
|  |   	    ++curwin->w_virtcol;	/* do display ')' just before "$" */ | ||||||
|  |   	    update_screen(VALID);	/* show the new char first */ | ||||||
|  |    | ||||||
|  | --- 2501,2508 ---- | ||||||
|  |   	    save_siso = p_siso; | ||||||
|  |   	    /* Handle "$" in 'cpo': If the ')' is typed on top of the "$", | ||||||
|  |   	     * stop displaying the "$". */ | ||||||
|  | ! 	    if (dollar_vcol >= 0 && dollar_vcol == curwin->w_virtcol) | ||||||
|  | ! 		dollar_vcol = -1; | ||||||
|  |   	    ++curwin->w_virtcol;	/* do display ')' just before "$" */ | ||||||
|  |   	    update_screen(VALID);	/* show the new char first */ | ||||||
|  |    | ||||||
|  | *** ../vim-7.3.425/src/version.c	2012-02-04 22:44:27.000000000 +0100 | ||||||
|  | --- src/version.c	2012-02-04 23:32:55.000000000 +0100 | ||||||
|  | *************** | ||||||
|  | *** 716,717 **** | ||||||
|  | --- 716,719 ---- | ||||||
|  |   {   /* Add new patch number below this line */ | ||||||
|  | + /**/ | ||||||
|  | +     426, | ||||||
|  |   /**/ | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | --  | ||||||
|  | I am also told that there is a logical proof out there somewhere | ||||||
|  | that demonstrates that there is no task which duct tape cannot handle. | ||||||
|  | 					-- Paul Brannan | ||||||
|  | 
 | ||||||
|  |  /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\ | ||||||
|  | ///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ | ||||||
|  | \\\  an exciting new programming language -- http://www.Zimbu.org        /// | ||||||
|  |  \\\            help me help AIDS victims -- http://ICCF-Holland.org    /// | ||||||
		Loading…
	
		Reference in New Issue
	
	Block a user