summaryrefslogtreecommitdiffstats
path: root/source/ap/vim/patches/7.3.221
diff options
context:
space:
mode:
Diffstat (limited to 'source/ap/vim/patches/7.3.221')
-rw-r--r--source/ap/vim/patches/7.3.221287
1 files changed, 287 insertions, 0 deletions
diff --git a/source/ap/vim/patches/7.3.221 b/source/ap/vim/patches/7.3.221
new file mode 100644
index 000000000..7211a4a66
--- /dev/null
+++ b/source/ap/vim/patches/7.3.221
@@ -0,0 +1,287 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.221
+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.221
+Problem: Text from the clipboard is sometimes handled as linewise, but not
+ consistently.
+Solution: Assume the text is linewise when it ends in a CR or NL.
+Files: src/gui_gtk_x11.c, src/gui_mac.c, src/ops.c, src/os_msdos.c,
+ src/os_mswin.c, src/os_qnx.c, src/ui.c
+
+
+*** ../mercurial/vim73/src/gui_gtk_x11.c 2011-02-25 17:10:22.000000000 +0100
+--- src/gui_gtk_x11.c 2011-06-19 00:58:31.000000000 +0200
+***************
+*** 1173,1179 ****
+ char_u *tmpbuf = NULL;
+ guchar *tmpbuf_utf8 = NULL;
+ int len;
+! int motion_type;
+
+ if (data->selection == clip_plus.gtk_sel_atom)
+ cbd = &clip_plus;
+--- 1173,1179 ----
+ char_u *tmpbuf = NULL;
+ guchar *tmpbuf_utf8 = NULL;
+ int len;
+! int motion_type = MAUTO;
+
+ if (data->selection == clip_plus.gtk_sel_atom)
+ cbd = &clip_plus;
+***************
+*** 1182,1188 ****
+
+ text = (char_u *)data->data;
+ len = data->length;
+- motion_type = MCHAR;
+
+ if (text == NULL || len <= 0)
+ {
+--- 1182,1187 ----
+*** ../mercurial/vim73/src/gui_mac.c 2011-06-12 20:33:30.000000000 +0200
+--- src/gui_mac.c 2011-06-19 00:59:07.000000000 +0200
+***************
+*** 4671,4677 ****
+ if (flavor)
+ type = **textOfClip;
+ else
+! type = (strchr(*textOfClip, '\r') != NULL) ? MLINE : MCHAR;
+
+ tempclip = lalloc(scrapSize + 1, TRUE);
+ mch_memmove(tempclip, *textOfClip + flavor, scrapSize);
+--- 4671,4677 ----
+ if (flavor)
+ type = **textOfClip;
+ else
+! type = MAUTO;
+
+ tempclip = lalloc(scrapSize + 1, TRUE);
+ mch_memmove(tempclip, *textOfClip + flavor, scrapSize);
+*** ../mercurial/vim73/src/ops.c 2011-04-01 16:28:33.000000000 +0200
+--- src/ops.c 2011-06-19 00:59:39.000000000 +0200
+***************
+*** 5733,5739 ****
+ }
+ }
+
+! /* Convert from the GUI selection string into the '*'/'+' register */
+ void
+ clip_yank_selection(type, str, len, cbd)
+ int type;
+--- 5733,5741 ----
+ }
+ }
+
+! /*
+! * Convert from the GUI selection string into the '*'/'+' register.
+! */
+ void
+ clip_yank_selection(type, str, len, cbd)
+ int type;
+***************
+*** 6090,6098 ****
+ if (yank_type == MBLOCK)
+ yank_type = MAUTO;
+ #endif
+- if (yank_type == MAUTO)
+- yank_type = ((len > 0 && (str[len - 1] == '\n' || str[len - 1] == '\r'))
+- ? MLINE : MCHAR);
+ str_to_reg(y_current, yank_type, str, len, block_len);
+
+ # ifdef FEAT_CLIPBOARD
+--- 6092,6097 ----
+***************
+*** 6113,6125 ****
+ * is appended.
+ */
+ static void
+! str_to_reg(y_ptr, type, str, len, blocklen)
+ struct yankreg *y_ptr; /* pointer to yank register */
+! int type; /* MCHAR, MLINE or MBLOCK */
+ char_u *str; /* string to put in register */
+ long len; /* length of string */
+ long blocklen; /* width of Visual block */
+ {
+ int lnum;
+ long start;
+ long i;
+--- 6112,6125 ----
+ * is appended.
+ */
+ static void
+! str_to_reg(y_ptr, yank_type, str, len, blocklen)
+ struct yankreg *y_ptr; /* pointer to yank register */
+! int yank_type; /* MCHAR, MLINE, MBLOCK, MAUTO */
+ char_u *str; /* string to put in register */
+ long len; /* length of string */
+ long blocklen; /* width of Visual block */
+ {
++ int type; /* MCHAR, MLINE or MBLOCK */
+ int lnum;
+ long start;
+ long i;
+***************
+*** 6136,6141 ****
+--- 6136,6147 ----
+ if (y_ptr->y_array == NULL) /* NULL means empty register */
+ y_ptr->y_size = 0;
+
++ if (yank_type == MAUTO)
++ type = ((len > 0 && (str[len - 1] == NL || str[len - 1] == CAR))
++ ? MLINE : MCHAR);
++ else
++ type = yank_type;
++
+ /*
+ * Count the number of lines within the string
+ */
+*** ../mercurial/vim73/src/os_msdos.c 2010-12-17 18:06:00.000000000 +0100
+--- src/os_msdos.c 2011-06-19 01:00:56.000000000 +0200
+***************
+*** 2232,2238 ****
+ void
+ clip_mch_request_selection(VimClipboard *cbd)
+ {
+! int type = MCHAR;
+ char_u *pAllocated = NULL;
+ char_u *pClipText = NULL;
+ int clip_data_format = 0;
+--- 2232,2238 ----
+ void
+ clip_mch_request_selection(VimClipboard *cbd)
+ {
+! int type = MAUTO;
+ char_u *pAllocated = NULL;
+ char_u *pClipText = NULL;
+ int clip_data_format = 0;
+***************
+*** 2280,2293 ****
+ {
+ clip_data_format = CF_TEXT;
+ pClipText = pAllocated;
+- type = (vim_strchr((char*)pClipText, '\r') != NULL) ? MLINE : MCHAR;
+ }
+
+ else if ((pAllocated = Win16GetClipboardData(CF_OEMTEXT)) != NULL)
+ {
+ clip_data_format = CF_OEMTEXT;
+ pClipText = pAllocated;
+- type = (vim_strchr((char*)pClipText, '\r') != NULL) ? MLINE : MCHAR;
+ }
+
+ /* Did we get anything? */
+--- 2280,2291 ----
+*** ../mercurial/vim73/src/os_mswin.c 2011-01-17 20:08:04.000000000 +0100
+--- src/os_mswin.c 2011-06-19 01:01:51.000000000 +0200
+***************
+*** 1410,1418 ****
+ {
+ char_u *temp_clipboard;
+
+! /* If the type is not known guess it. */
+ if (metadata.type == -1)
+! metadata.type = (vim_strchr(str, '\n') == NULL) ? MCHAR : MLINE;
+
+ /* Translate <CR><NL> into <NL>. */
+ temp_clipboard = crnl_to_nl(str, &str_size);
+--- 1410,1418 ----
+ {
+ char_u *temp_clipboard;
+
+! /* If the type is not known detect it. */
+ if (metadata.type == -1)
+! metadata.type = MAUTO;
+
+ /* Translate <CR><NL> into <NL>. */
+ temp_clipboard = crnl_to_nl(str, &str_size);
+*** ../mercurial/vim73/src/os_qnx.c 2010-05-15 21:22:11.000000000 +0200
+--- src/os_qnx.c 2011-06-19 01:02:26.000000000 +0200
+***************
+*** 93,99 ****
+ clip_length = clip_header->length - 1;
+
+ if( clip_text != NULL && is_type_set == FALSE )
+! type = (strchr( clip_text, '\r' ) != NULL) ? MLINE : MCHAR;
+ }
+
+ if( (clip_text != NULL) && (clip_length > 0) )
+--- 93,99 ----
+ clip_length = clip_header->length - 1;
+
+ if( clip_text != NULL && is_type_set == FALSE )
+! type = MAUTO;
+ }
+
+ if( (clip_text != NULL) && (clip_length > 0) )
+*** ../mercurial/vim73/src/ui.c 2010-09-21 22:09:28.000000000 +0200
+--- src/ui.c 2011-06-19 01:03:31.000000000 +0200
+***************
+*** 1609,1615 ****
+
+ #if defined(FEAT_HANGULIN) || defined(PROTO)
+ void
+! push_raw_key (s, len)
+ char_u *s;
+ int len;
+ {
+--- 1609,1615 ----
+
+ #if defined(FEAT_HANGULIN) || defined(PROTO)
+ void
+! push_raw_key(s, len)
+ char_u *s;
+ int len;
+ {
+***************
+*** 2016,2022 ****
+ long_u *length;
+ int *format;
+ {
+! int motion_type;
+ long_u len;
+ char_u *p;
+ char **text_list = NULL;
+--- 2016,2022 ----
+ long_u *length;
+ int *format;
+ {
+! int motion_type = MAUTO;
+ long_u len;
+ char_u *p;
+ char **text_list = NULL;
+***************
+*** 2036,2042 ****
+ *(int *)success = FALSE;
+ return;
+ }
+- motion_type = MCHAR;
+ p = (char_u *)value;
+ len = *length;
+ if (*type == vim_atom)
+--- 2036,2041 ----
+*** ../vim-7.3.220/src/version.c 2011-06-19 00:27:46.000000000 +0200
+--- src/version.c 2011-06-19 01:03:59.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+ { /* Add new patch number below this line */
++ /**/
++ 221,
+ /**/
+
+--
+hundred-and-one symptoms of being an internet addict:
+190. You quickly hand over your wallet, leather jacket, and car keys
+ during a mugging, then proceed to beat the crap out of your
+ assailant when he asks for your laptop.
+
+ /// 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 ///