- patchlevel 486
This commit is contained in:
		
							parent
							
								
									402abcc1b9
								
							
						
					
					
						commit
						82ecde2ad2
					
				
							
								
								
									
										271
									
								
								7.4.486
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										271
									
								
								7.4.486
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,271 @@ | |||||||
|  | To: vim_dev@googlegroups.com | ||||||
|  | Subject: Patch 7.4.486 | ||||||
|  | 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.4.486 | ||||||
|  | Problem:    Check for writing to a yank register is wrong. | ||||||
|  | Solution:   Negate the check. (Zyx).  Also clean up the #ifdefs. | ||||||
|  | Files:	    src/ex_docmd.c, src/ex_cmds.h | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | *** ../vim-7.4.485/src/ex_docmd.c	2014-09-19 20:07:22.546449677 +0200 | ||||||
|  | --- src/ex_docmd.c	2014-10-21 19:56:31.290287055 +0200 | ||||||
|  | *************** | ||||||
|  | *** 49,58 **** | ||||||
|  | --- 49,63 ---- | ||||||
|  |   static char_u *get_user_command_name __ARGS((int idx)); | ||||||
|  |   # endif | ||||||
|  |    | ||||||
|  | + /* Wether a command index indicates a user command. */ | ||||||
|  | + # define IS_USER_CMDIDX(idx) ((int)(idx) < 0) | ||||||
|  | +  | ||||||
|  |   #else | ||||||
|  |   # define ex_command	ex_ni | ||||||
|  |   # define ex_comclear	ex_ni | ||||||
|  |   # define ex_delcommand	ex_ni | ||||||
|  | + /* Wether a command index indicates a user command. */ | ||||||
|  | + # define IS_USER_CMDIDX(idx) (FALSE) | ||||||
|  |   #endif | ||||||
|  |    | ||||||
|  |   #ifdef FEAT_EVAL | ||||||
|  | *************** | ||||||
|  | *** 2190,2200 **** | ||||||
|  |   	goto doend; | ||||||
|  |       } | ||||||
|  |    | ||||||
|  | !     ni = ( | ||||||
|  | ! #ifdef FEAT_USR_CMDS | ||||||
|  | ! 	    !USER_CMDIDX(ea.cmdidx) && | ||||||
|  | ! #endif | ||||||
|  | ! 	    (cmdnames[ea.cmdidx].cmd_func == ex_ni | ||||||
|  |   #ifdef HAVE_EX_SCRIPT_NI | ||||||
|  |   	     || cmdnames[ea.cmdidx].cmd_func == ex_script_ni | ||||||
|  |   #endif | ||||||
|  | --- 2195,2202 ---- | ||||||
|  |   	goto doend; | ||||||
|  |       } | ||||||
|  |    | ||||||
|  | !     ni = (!IS_USER_CMDIDX(ea.cmdidx) | ||||||
|  | ! 	    && (cmdnames[ea.cmdidx].cmd_func == ex_ni | ||||||
|  |   #ifdef HAVE_EX_SCRIPT_NI | ||||||
|  |   	     || cmdnames[ea.cmdidx].cmd_func == ex_script_ni | ||||||
|  |   #endif | ||||||
|  | *************** | ||||||
|  | *** 2229,2237 **** | ||||||
|  |   /* | ||||||
|  |    * 5. parse arguments | ||||||
|  |    */ | ||||||
|  | ! #ifdef FEAT_USR_CMDS | ||||||
|  | !     if (!USER_CMDIDX(ea.cmdidx)) | ||||||
|  | ! #endif | ||||||
|  |   	ea.argt = (long)cmdnames[(int)ea.cmdidx].cmd_argt; | ||||||
|  |    | ||||||
|  |       if (!ea.skip) | ||||||
|  | --- 2231,2237 ---- | ||||||
|  |   /* | ||||||
|  |    * 5. parse arguments | ||||||
|  |    */ | ||||||
|  | !     if (!IS_USER_CMDIDX(ea.cmdidx)) | ||||||
|  |   	ea.argt = (long)cmdnames[(int)ea.cmdidx].cmd_argt; | ||||||
|  |    | ||||||
|  |       if (!ea.skip) | ||||||
|  | *************** | ||||||
|  | *** 2252,2261 **** | ||||||
|  |   	} | ||||||
|  |    | ||||||
|  |   	if (text_locked() && !(ea.argt & CMDWIN) | ||||||
|  | ! # ifdef FEAT_USR_CMDS | ||||||
|  | ! 		&& !USER_CMDIDX(ea.cmdidx) | ||||||
|  | ! # endif | ||||||
|  | ! 	   ) | ||||||
|  |   	{ | ||||||
|  |   	    /* Command not allowed when editing the command line. */ | ||||||
|  |   #ifdef FEAT_CMDWIN | ||||||
|  | --- 2252,2258 ---- | ||||||
|  |   	} | ||||||
|  |    | ||||||
|  |   	if (text_locked() && !(ea.argt & CMDWIN) | ||||||
|  | ! 		&& !IS_USER_CMDIDX(ea.cmdidx)) | ||||||
|  |   	{ | ||||||
|  |   	    /* Command not allowed when editing the command line. */ | ||||||
|  |   #ifdef FEAT_CMDWIN | ||||||
|  | *************** | ||||||
|  | *** 2273,2281 **** | ||||||
|  |   	if (!(ea.argt & CMDWIN) | ||||||
|  |   		&& ea.cmdidx != CMD_edit | ||||||
|  |   		&& ea.cmdidx != CMD_checktime | ||||||
|  | ! # ifdef FEAT_USR_CMDS | ||||||
|  | ! 		&& !USER_CMDIDX(ea.cmdidx) | ||||||
|  | ! # endif | ||||||
|  |   		&& curbuf_locked()) | ||||||
|  |   	    goto doend; | ||||||
|  |   #endif | ||||||
|  | --- 2270,2276 ---- | ||||||
|  |   	if (!(ea.argt & CMDWIN) | ||||||
|  |   		&& ea.cmdidx != CMD_edit | ||||||
|  |   		&& ea.cmdidx != CMD_checktime | ||||||
|  | ! 		&& !IS_USER_CMDIDX(ea.cmdidx) | ||||||
|  |   		&& curbuf_locked()) | ||||||
|  |   	    goto doend; | ||||||
|  |   #endif | ||||||
|  | *************** | ||||||
|  | *** 2468,2477 **** | ||||||
|  |       /* accept numbered register only when no count allowed (:put) */ | ||||||
|  |       if (       (ea.argt & REGSTR) | ||||||
|  |   	    && *ea.arg != NUL | ||||||
|  | ! #ifdef FEAT_USR_CMDS | ||||||
|  | ! 	    /* Do not allow register = for user commands */ | ||||||
|  | ! 	    && (!USER_CMDIDX(ea.cmdidx) || *ea.arg != '=') | ||||||
|  | ! #endif | ||||||
|  |   	    && !((ea.argt & COUNT) && VIM_ISDIGIT(*ea.arg))) | ||||||
|  |       { | ||||||
|  |   #ifndef FEAT_CLIPBOARD | ||||||
|  | --- 2463,2470 ---- | ||||||
|  |       /* accept numbered register only when no count allowed (:put) */ | ||||||
|  |       if (       (ea.argt & REGSTR) | ||||||
|  |   	    && *ea.arg != NUL | ||||||
|  | ! 	       /* Do not allow register = for user commands */ | ||||||
|  | ! 	    && (!IS_USER_CMDIDX(ea.cmdidx) || *ea.arg != '=') | ||||||
|  |   	    && !((ea.argt & COUNT) && VIM_ISDIGIT(*ea.arg))) | ||||||
|  |       { | ||||||
|  |   #ifndef FEAT_CLIPBOARD | ||||||
|  | *************** | ||||||
|  | *** 2482,2495 **** | ||||||
|  |   	    goto doend; | ||||||
|  |   	} | ||||||
|  |   #endif | ||||||
|  | ! 	if ( | ||||||
|  | ! #ifdef FEAT_USR_CMDS | ||||||
|  | ! 	    valid_yank_reg(*ea.arg, (ea.cmdidx != CMD_put | ||||||
|  | ! 						   && USER_CMDIDX(ea.cmdidx))) | ||||||
|  | ! #else | ||||||
|  | ! 	    valid_yank_reg(*ea.arg, ea.cmdidx != CMD_put) | ||||||
|  | ! #endif | ||||||
|  | ! 	   ) | ||||||
|  |   	{ | ||||||
|  |   	    ea.regname = *ea.arg++; | ||||||
|  |   #ifdef FEAT_EVAL | ||||||
|  | --- 2475,2482 ---- | ||||||
|  |   	    goto doend; | ||||||
|  |   	} | ||||||
|  |   #endif | ||||||
|  | ! 	if (valid_yank_reg(*ea.arg, (ea.cmdidx != CMD_put | ||||||
|  | ! 					      && !IS_USER_CMDIDX(ea.cmdidx)))) | ||||||
|  |   	{ | ||||||
|  |   	    ea.regname = *ea.arg++; | ||||||
|  |   #ifdef FEAT_EVAL | ||||||
|  | *************** | ||||||
|  | *** 2663,2672 **** | ||||||
|  |        * number.  Don't do this for a user command. | ||||||
|  |        */ | ||||||
|  |       if ((ea.argt & BUFNAME) && *ea.arg != NUL && ea.addr_count == 0 | ||||||
|  | ! # ifdef FEAT_USR_CMDS | ||||||
|  | ! 	    && !USER_CMDIDX(ea.cmdidx) | ||||||
|  | ! # endif | ||||||
|  | ! 	    ) | ||||||
|  |       { | ||||||
|  |   	/* | ||||||
|  |   	 * :bdelete, :bwipeout and :bunload take several arguments, separated | ||||||
|  | --- 2650,2656 ---- | ||||||
|  |        * number.  Don't do this for a user command. | ||||||
|  |        */ | ||||||
|  |       if ((ea.argt & BUFNAME) && *ea.arg != NUL && ea.addr_count == 0 | ||||||
|  | ! 	    && !IS_USER_CMDIDX(ea.cmdidx)) | ||||||
|  |       { | ||||||
|  |   	/* | ||||||
|  |   	 * :bdelete, :bwipeout and :bunload take several arguments, separated | ||||||
|  | *************** | ||||||
|  | *** 2704,2710 **** | ||||||
|  |   #endif | ||||||
|  |    | ||||||
|  |   #ifdef FEAT_USR_CMDS | ||||||
|  | !     if (USER_CMDIDX(ea.cmdidx)) | ||||||
|  |       { | ||||||
|  |   	/* | ||||||
|  |   	 * Execute a user-defined command. | ||||||
|  | --- 2688,2694 ---- | ||||||
|  |   #endif | ||||||
|  |    | ||||||
|  |   #ifdef FEAT_USR_CMDS | ||||||
|  | !     if (IS_USER_CMDIDX(ea.cmdidx)) | ||||||
|  |       { | ||||||
|  |   	/* | ||||||
|  |   	 * Execute a user-defined command. | ||||||
|  | *************** | ||||||
|  | *** 2763,2773 **** | ||||||
|  |       } | ||||||
|  |   #ifdef FEAT_EVAL | ||||||
|  |       do_errthrow(cstack, | ||||||
|  | ! 	    (ea.cmdidx != CMD_SIZE | ||||||
|  | ! # ifdef FEAT_USR_CMDS | ||||||
|  | ! 	     && !USER_CMDIDX(ea.cmdidx) | ||||||
|  | ! # endif | ||||||
|  | ! 	    ) ? cmdnames[(int)ea.cmdidx].cmd_name : (char_u *)NULL); | ||||||
|  |   #endif | ||||||
|  |    | ||||||
|  |       if (verbose_save >= 0) | ||||||
|  | --- 2747,2754 ---- | ||||||
|  |       } | ||||||
|  |   #ifdef FEAT_EVAL | ||||||
|  |       do_errthrow(cstack, | ||||||
|  | ! 	    (ea.cmdidx != CMD_SIZE && !IS_USER_CMDIDX(ea.cmdidx)) | ||||||
|  | ! 			? cmdnames[(int)ea.cmdidx].cmd_name : (char_u *)NULL); | ||||||
|  |   #endif | ||||||
|  |    | ||||||
|  |       if (verbose_save >= 0) | ||||||
|  | *************** | ||||||
|  | *** 3361,3369 **** | ||||||
|  |   /* | ||||||
|  |    * 5. parse arguments | ||||||
|  |    */ | ||||||
|  | ! #ifdef FEAT_USR_CMDS | ||||||
|  | !     if (!USER_CMDIDX(ea.cmdidx)) | ||||||
|  | ! #endif | ||||||
|  |   	ea.argt = (long)cmdnames[(int)ea.cmdidx].cmd_argt; | ||||||
|  |    | ||||||
|  |       arg = skipwhite(p); | ||||||
|  | --- 3342,3348 ---- | ||||||
|  |   /* | ||||||
|  |    * 5. parse arguments | ||||||
|  |    */ | ||||||
|  | !     if (!IS_USER_CMDIDX(ea.cmdidx)) | ||||||
|  |   	ea.argt = (long)cmdnames[(int)ea.cmdidx].cmd_argt; | ||||||
|  |    | ||||||
|  |       arg = skipwhite(p); | ||||||
|  | *** ../vim-7.4.485/src/ex_cmds.h	2014-09-19 20:07:22.546449677 +0200 | ||||||
|  | --- src/ex_cmds.h	2014-10-21 19:52:45.926286562 +0200 | ||||||
|  | *************** | ||||||
|  | *** 1153,1160 **** | ||||||
|  |   #endif | ||||||
|  |   }; | ||||||
|  |    | ||||||
|  | - #define USER_CMDIDX(idx) ((int)(idx) < 0) | ||||||
|  | -  | ||||||
|  |   #ifndef DO_DECLARE_EXCMD | ||||||
|  |   typedef enum CMD_index cmdidx_T; | ||||||
|  |    | ||||||
|  | --- 1153,1158 ---- | ||||||
|  | *** ../vim-7.4.485/src/version.c	2014-10-21 19:35:28.406284296 +0200 | ||||||
|  | --- src/version.c	2014-10-21 20:00:44.350287607 +0200 | ||||||
|  | *************** | ||||||
|  | *** 743,744 **** | ||||||
|  | --- 743,746 ---- | ||||||
|  |   {   /* Add new patch number below this line */ | ||||||
|  | + /**/ | ||||||
|  | +     486, | ||||||
|  |   /**/ | ||||||
|  | 
 | ||||||
|  | --  | ||||||
|  | FATHER: One day, lad, all this will be yours ... | ||||||
|  | PRINCE: What - the curtains? | ||||||
|  |                  "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD | ||||||
|  | 
 | ||||||
|  |  /// 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