]> granicus.if.org Git - vim/commitdiff
updated for version 7.0-141 v7.0.141
authorBram Moolenaar <Bram@vim.org>
Tue, 17 Oct 2006 14:25:24 +0000 (14:25 +0000)
committerBram Moolenaar <Bram@vim.org>
Tue, 17 Oct 2006 14:25:24 +0000 (14:25 +0000)
src/ex_getln.c
src/ops.c
src/proto/ops.pro
src/version.c

index 4244a12eaa72b07f289787f022178847f5e9a934..030be38ea23982a47b9f5547152a670d50cb0c1c 100644 (file)
@@ -86,7 +86,7 @@ static int    realloc_cmdbuff __ARGS((int len));
 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));
+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,7 +1116,7 @@ getcmdline(firstc, count, indent)
 #endif
                if (c != ESC)       /* use ESC to cancel inserting register */
                {
-                   cmdline_paste(c, i == Ctrl_R);
+                   cmdline_paste(c, i == Ctrl_R, FALSE);
 
 #ifdef FEAT_EVAL
                    /* When there was a serious error abort getting the
@@ -1231,16 +1231,16 @@ getcmdline(firstc, count, indent)
                        goto cmdline_not_changed;   /* Ignore mouse */
 # ifdef FEAT_CLIPBOARD
                if (clip_star.available)
-                   cmdline_paste('*', TRUE);
+                   cmdline_paste('*', TRUE, TRUE);
                else
 # endif
-                   cmdline_paste(0, TRUE);
+                   cmdline_paste(0, TRUE, TRUE);
                redrawcmd();
                goto cmdline_changed;
 
 # ifdef FEAT_DND
        case K_DROP:
-               cmdline_paste('~', TRUE);
+               cmdline_paste('~', TRUE, FALSE);
                redrawcmd();
                goto cmdline_changed;
 # endif
@@ -2890,9 +2890,10 @@ restore_cmdline_alloc(p)
  * return FAIL for failure, OK otherwise
  */
     static int
-cmdline_paste(regname, literally)
+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,7 +2969,7 @@ cmdline_paste(regname, literally)
        return OK;
     }
 
-    return cmdline_paste_reg(regname, literally);
+    return cmdline_paste_reg(regname, literally, remcr);
 }
 
 /*
index be7091f489d977b4b091be250844b63f56ad57ba..4f45aea4280550ba6d955cf6dfa6f6cb3482aeb6 100644 (file)
--- a/src/ops.c
+++ b/src/ops.c
@@ -1480,9 +1480,10 @@ get_spec_reg(regname, argp, allocated, errmsg)
  * return FAIL for failure, OK otherwise
  */
     int
-cmdline_paste_reg(regname, literally)
+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,8 +1495,13 @@ cmdline_paste_reg(regname, literally)
     {
        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)
+       /* 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
index d6216b9a8d4fd373e7376121ea91834af2502be5..881f9aebd01d820d98d49e7e91fe5b27cc828759 100644 (file)
@@ -20,7 +20,7 @@ extern int do_record __ARGS((int c));
 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 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));
index eae093602da2066ec5482b473d4215488c71a870..ff01a2b589eadcca149de14415ac5823649b6f1b 100644 (file)
@@ -666,6 +666,8 @@ static char *(features[]) =
 
 static int included_patches[] =
 {   /* Add new patch number below this line */
+/**/
+    141,
 /**/
     140,
 /**/