| To: vim-dev@vim.org |
| Subject: Patch 7.0.141 |
| Fcc: outbox |
| From: Bram Moolenaar <Bram@moolenaar.net> |
| Mime-Version: 1.0 |
| Content-Type: text/plain; charset=ISO-8859-1 |
| Content-Transfer-Encoding: 8bit |
| |
| |
| Patch 7.0.141 |
| Problem: When pasting a while line on the command line an extra CR is added |
| literally. |
| Solution: Don't add the trailing CR when pasting with the mouse. |
| Files: src/ex_getln.c, src/proto/ops.pro, src/ops.c |
| |
| |
| |
| |
| |
| *** 86,92 **** |
| static void draw_cmdline __ARGS((int start, int len)); |
| static void save_cmdline __ARGS((struct cmdline_info *ccp)); |
| static void restore_cmdline __ARGS((struct cmdline_info *ccp)); |
| ! static int cmdline_paste __ARGS((int regname, int literally)); |
| #if defined(FEAT_XIM) && defined(FEAT_GUI_GTK) |
| static void redrawcmd_preedit __ARGS((void)); |
| #endif |
| --- 86,92 ---- |
| static void draw_cmdline __ARGS((int start, int len)); |
| static void save_cmdline __ARGS((struct cmdline_info *ccp)); |
| static void restore_cmdline __ARGS((struct cmdline_info *ccp)); |
| ! static int cmdline_paste __ARGS((int regname, int literally, int remcr)); |
| #if defined(FEAT_XIM) && defined(FEAT_GUI_GTK) |
| static void redrawcmd_preedit __ARGS((void)); |
| #endif |
| |
| *** 1116,1122 **** |
| #endif |
| if (c != ESC) /* use ESC to cancel inserting register */ |
| { |
| ! cmdline_paste(c, i == Ctrl_R); |
| |
| #ifdef FEAT_EVAL |
| /* When there was a serious error abort getting the |
| --- 1116,1122 ---- |
| #endif |
| if (c != ESC) /* use ESC to cancel inserting register */ |
| { |
| ! cmdline_paste(c, i == Ctrl_R, FALSE); |
| |
| #ifdef FEAT_EVAL |
| /* When there was a serious error abort getting the |
| |
| *** 1231,1246 **** |
| goto cmdline_not_changed; /* Ignore mouse */ |
| # ifdef FEAT_CLIPBOARD |
| if (clip_star.available) |
| ! cmdline_paste('*', TRUE); |
| else |
| # endif |
| ! cmdline_paste(0, TRUE); |
| redrawcmd(); |
| goto cmdline_changed; |
| |
| # ifdef FEAT_DND |
| case K_DROP: |
| ! cmdline_paste('~', TRUE); |
| redrawcmd(); |
| goto cmdline_changed; |
| # endif |
| --- 1231,1246 ---- |
| goto cmdline_not_changed; /* Ignore mouse */ |
| # ifdef FEAT_CLIPBOARD |
| if (clip_star.available) |
| ! cmdline_paste('*', TRUE, TRUE); |
| else |
| # endif |
| ! cmdline_paste(0, TRUE, TRUE); |
| redrawcmd(); |
| goto cmdline_changed; |
| |
| # ifdef FEAT_DND |
| case K_DROP: |
| ! cmdline_paste('~', TRUE, FALSE); |
| redrawcmd(); |
| goto cmdline_changed; |
| # endif |
| |
| *** 2890,2898 **** |
| * return FAIL for failure, OK otherwise |
| */ |
| static int |
| ! cmdline_paste(regname, literally) |
| int regname; |
| int literally; /* Insert text literally instead of "as typed" */ |
| { |
| long i; |
| char_u *arg; |
| --- 2890,2899 ---- |
| * return FAIL for failure, OK otherwise |
| */ |
| static int |
| ! cmdline_paste(regname, literally, remcr) |
| int regname; |
| int literally; /* Insert text literally instead of "as typed" */ |
| + int remcr; /* remove trailing CR */ |
| { |
| long i; |
| char_u *arg; |
| |
| *** 2968,2974 **** |
| return OK; |
| } |
| |
| ! return cmdline_paste_reg(regname, literally); |
| } |
| |
| /* |
| --- 2969,2975 ---- |
| return OK; |
| } |
| |
| ! return cmdline_paste_reg(regname, literally, remcr); |
| } |
| |
| /* |
| |
| |
| |
| *** 20,26 **** |
| extern int do_execreg __ARGS((int regname, int colon, int addcr)); |
| extern int insert_reg __ARGS((int regname, int literally)); |
| extern int get_spec_reg __ARGS((int regname, char_u **argp, int *allocated, int errmsg)); |
| ! extern int cmdline_paste_reg __ARGS((int regname, int literally)); |
| extern void adjust_clip_reg __ARGS((int *rp)); |
| extern int op_delete __ARGS((oparg_T *oap)); |
| extern int op_replace __ARGS((oparg_T *oap, int c)); |
| --- 20,26 ---- |
| extern int do_execreg __ARGS((int regname, int colon, int addcr)); |
| extern int insert_reg __ARGS((int regname, int literally)); |
| extern int get_spec_reg __ARGS((int regname, char_u **argp, int *allocated, int errmsg)); |
| ! extern int cmdline_paste_reg __ARGS((int regname, int literally, int remcr)); |
| extern void adjust_clip_reg __ARGS((int *rp)); |
| extern int op_delete __ARGS((oparg_T *oap)); |
| extern int op_replace __ARGS((oparg_T *oap, int c)); |
| |
| |
| |
| *** 1480,1488 **** |
| * return FAIL for failure, OK otherwise |
| */ |
| int |
| ! cmdline_paste_reg(regname, literally) |
| int regname; |
| int literally; /* Insert text literally instead of "as typed" */ |
| { |
| long i; |
| |
| --- 1481,1490 ---- |
| * return FAIL for failure, OK otherwise |
| */ |
| int |
| ! cmdline_paste_reg(regname, literally, remcr) |
| int regname; |
| int literally; /* Insert text literally instead of "as typed" */ |
| + int remcr; /* don't add trailing CR */ |
| { |
| long i; |
| |
| |
| *** 1494,1501 **** |
| { |
| cmdline_paste_str(y_current->y_array[i], literally); |
| |
| ! /* insert ^M between lines and after last line if type is MLINE */ |
| ! if (y_current->y_type == MLINE || i < y_current->y_size - 1) |
| cmdline_paste_str((char_u *)"\r", literally); |
| |
| /* Check for CTRL-C, in case someone tries to paste a few thousand |
| --- 1496,1508 ---- |
| { |
| cmdline_paste_str(y_current->y_array[i], literally); |
| |
| ! /* Insert ^M between lines and after last line if type is MLINE. |
| ! * Don't do this when "remcr" is TRUE and the next line is empty. */ |
| ! if (y_current->y_type == MLINE |
| ! || (i < y_current->y_size - 1 |
| ! && !(remcr |
| ! && i == y_current->y_size - 2 |
| ! && *y_current->y_array[i + 1] == NUL))) |
| cmdline_paste_str((char_u *)"\r", literally); |
| |
| /* Check for CTRL-C, in case someone tries to paste a few thousand |
| |
| |
| |
| *** 668,669 **** |
| --- 668,671 ---- |
| { /* Add new patch number below this line */ |
| + /**/ |
| + 141, |
| /**/ |
| |
| -- |
| ERROR 047: Keyboard not found. Press RETURN to continue. |
| |
| /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ |
| /// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ |
| \\\ download, build and distribute -- http://www.A-A-P.org /// |
| \\\ help me help AIDS victims -- http://ICCF-Holland.org /// |