To: vim_dev@googlegroups.com Subject: Patch 7.4.973 Fcc: outbox From: Bram Moolenaar Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ------------ Patch 7.4.973 Problem: When pasting on the command line line breaks result in literal characters. This makes pasting a long file name difficult. Solution: Skip the characters. Files: src/ex_getln.c, src/ops.c *** ../vim-7.4.972/src/ex_getln.c 2015-11-21 16:28:47.405303477 +0100 --- src/ex_getln.c 2015-12-17 13:48:21.339283010 +0100 *************** *** 3068,3079 **** #endif /* ! * paste a yank register into the command line. ! * used by CTRL-R command in command-line mode * insert_reg() can't be used here, because special characters from the * register contents will be interpreted as commands. * ! * return FAIL for failure, OK otherwise */ static int cmdline_paste(regname, literally, remcr) --- 3068,3079 ---- #endif /* ! * Paste a yank register into the command line. ! * Used by CTRL-R command in command-line mode. * insert_reg() can't be used here, because special characters from the * register contents will be interpreted as commands. * ! * Return FAIL for failure, OK otherwise. */ static int cmdline_paste(regname, literally, remcr) *** ../vim-7.4.972/src/ops.c 2015-11-19 17:56:09.434210164 +0100 --- src/ops.c 2015-12-17 13:59:51.264056574 +0100 *************** *** 1577,1583 **** 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; --- 1577,1583 ---- cmdline_paste_reg(regname, literally, remcr) int regname; int literally; /* Insert text literally instead of "as typed" */ ! int remcr; /* don't add CR characters */ { long i; *************** *** 1590,1601 **** 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 --- 1590,1597 ---- 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. */ ! if ((y_current->y_type == MLINE || i < y_current->y_size - 1) && !remcr) cmdline_paste_str((char_u *)"\r", literally); /* Check for CTRL-C, in case someone tries to paste a few thousand *** ../vim-7.4.972/src/version.c 2015-12-13 15:08:53.079742503 +0100 --- src/version.c 2015-12-17 14:03:44.165618787 +0100 *************** *** 743,744 **** --- 743,746 ---- { /* Add new patch number below this line */ + /**/ + 973, /**/ -- The greatest lies of all time: (1) The check is in the mail. (2) We have a really challenging assignment for you. (3) I love you. (4) All bugs have been fixed. (5) This won't hurt a bit. (6) Honey, I just need to debug this program and be home in 5 minutes. (7) I have just sent you an e-mail about that. (8) Of course I'll respect you in the morning. (9) I'm from the government, and I'm here to help you. /// 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 ///