summaryrefslogtreecommitdiffstats
path: root/source/ap/vim/patches/7.2.137
diff options
context:
space:
mode:
Diffstat (limited to 'source/ap/vim/patches/7.2.137')
-rw-r--r--source/ap/vim/patches/7.2.137343
1 files changed, 0 insertions, 343 deletions
diff --git a/source/ap/vim/patches/7.2.137 b/source/ap/vim/patches/7.2.137
deleted file mode 100644
index 706b046bb..000000000
--- a/source/ap/vim/patches/7.2.137
+++ /dev/null
@@ -1,343 +0,0 @@
-To: vim-dev@vim.org
-Subject: Patch 7.2.137
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=ISO-8859-1
-Content-Transfer-Encoding: 8bit
-------------
-
-Note: The special characters in the patch may cause problems.
-
-Patch 7.2.137
-Problem: When 'virtualedit' is set, a left shift of a blockwise selection
- that starts and ends inside a tab shifts too much. (Helmut
- Stiegler)
-Solution: Redo the block left shift code. (Lech Lorens)
-Files: src/ops.c, src/testdir/Makefile, src/testdir/test66.in,
- src/testdir/test66.ok
-
-
-*** ../vim-7.2.136/src/ops.c Wed Dec 3 13:38:00 2008
---- src/ops.c Thu Mar 5 04:47:09 2009
-***************
-*** 72,82 ****
- */
- struct block_def
- {
-! int startspaces; /* 'extra' cols of first char */
-! int endspaces; /* 'extra' cols of first char */
- int textlen; /* chars in block */
-! char_u *textstart; /* pointer to 1st char in block */
-! colnr_T textcol; /* cols of chars (at least part.) in block */
- colnr_T start_vcol; /* start col of 1st char wholly inside block */
- colnr_T end_vcol; /* start col of 1st char wholly after block */
- #ifdef FEAT_VISUALEXTRA
---- 72,82 ----
- */
- struct block_def
- {
-! int startspaces; /* 'extra' cols before first char */
-! int endspaces; /* 'extra' cols after last char */
- int textlen; /* chars in block */
-! char_u *textstart; /* pointer to 1st char (partially) in block */
-! colnr_T textcol; /* index of chars (partially) in block */
- colnr_T start_vcol; /* start col of 1st char wholly inside block */
- colnr_T end_vcol; /* start col of 1st char wholly after block */
- #ifdef FEAT_VISUALEXTRA
-***************
-*** 382,396 ****
- {
- int left = (oap->op_type == OP_LSHIFT);
- int oldstate = State;
-! int total, split;
-! char_u *newp, *oldp, *midp, *ptr;
- int oldcol = curwin->w_cursor.col;
- int p_sw = (int)curbuf->b_p_sw;
- int p_ts = (int)curbuf->b_p_ts;
- struct block_def bd;
-- int internal = 0;
- int incr;
-! colnr_T vcol, col = 0, ws_vcol;
- int i = 0, j = 0;
- int len;
-
---- 382,395 ----
- {
- int left = (oap->op_type == OP_LSHIFT);
- int oldstate = State;
-! int total;
-! char_u *newp, *oldp;
- int oldcol = curwin->w_cursor.col;
- int p_sw = (int)curbuf->b_p_sw;
- int p_ts = (int)curbuf->b_p_ts;
- struct block_def bd;
- int incr;
-! colnr_T ws_vcol;
- int i = 0, j = 0;
- int len;
-
-***************
-*** 456,522 ****
- }
- else /* left */
- {
-! vcol = oap->start_vcol;
-! /* walk vcol past ws to be removed */
-! for (midp = oldp + bd.textcol;
-! vcol < (oap->start_vcol + total) && vim_iswhite(*midp); )
-! {
-! incr = lbr_chartabsize_adv(&midp, (colnr_T)vcol);
-! vcol += incr;
-! }
-! /* internal is the block-internal ws replacing a split TAB */
-! if (vcol > (oap->start_vcol + total))
-! {
-! /* we have to split the TAB *(midp-1) */
-! internal = vcol - (oap->start_vcol + total);
-! }
-! /* if 'expandtab' is not set, use TABs */
-
-! split = bd.startspaces + internal;
-! if (split > 0)
-! {
-! if (!curbuf->b_p_et)
-! {
-! for (ptr = oldp, col = 0; ptr < oldp+bd.textcol; )
-! col += lbr_chartabsize_adv(&ptr, (colnr_T)col);
-
-! /* col+1 now equals the start col of the first char of the
-! * block (may be < oap.start_vcol if we're splitting a TAB) */
-! i = ((col % p_ts) + split) / p_ts; /* number of tabs */
-! }
-! if (i)
-! j = ((col % p_ts) + split) % p_ts; /* number of spp */
-! else
-! j = split;
-! }
-
-! newp = alloc_check(bd.textcol + i + j + (unsigned)STRLEN(midp) + 1);
-! if (newp == NULL)
-! return;
-! vim_memset(newp, NUL, (size_t)(bd.textcol + i + j + STRLEN(midp) + 1));
-
-! /* copy first part we want to keep */
-! mch_memmove(newp, oldp, (size_t)bd.textcol);
-! /* Now copy any TABS and spp to ensure correct alignment! */
-! while (vim_iswhite(*midp))
- {
-! if (*midp == TAB)
-! i++;
-! else /*space */
-! j++;
-! midp++;
- }
-! /* We might have an extra TAB worth of spp now! */
-! if (j / p_ts && !curbuf->b_p_et)
- {
-! i++;
-! j -= p_ts;
- }
-- copy_chars(newp + bd.textcol, (size_t)i, TAB);
-- copy_spaces(newp + bd.textcol + i, (size_t)j);
-
-! /* the end */
-! STRMOVE(newp + STRLEN(newp), midp);
- }
- /* replace the line */
- ml_replace(curwin->w_cursor.lnum, newp, FALSE);
---- 455,543 ----
- }
- else /* left */
- {
-! colnr_T destination_col; /* column to which text in block will
-! be shifted */
-! char_u *verbatim_copy_end; /* end of the part of the line which is
-! copied verbatim */
-! colnr_T verbatim_copy_width;/* the (displayed) width of this part
-! of line */
-! unsigned fill; /* nr of spaces that replace a TAB */
-! unsigned new_line_len; /* the length of the line after the
-! block shift */
-! size_t block_space_width;
-! size_t shift_amount;
-! char_u *non_white = bd.textstart;
-! colnr_T non_white_col;
-
-! /*
-! * Firstly, let's find the first non-whitespace character that is
-! * displayed after the block's start column and the character's column
-! * number. Also, let's calculate the width of all the whitespace
-! * characters that are displayed in the block and precede the searched
-! * non-whitespace character.
-! */
-
-! /* If "bd.startspaces" is set, "bd.textstart" points to the character,
-! * the part of which is displayed at the block's beginning. Let's start
-! * searching from the next character. */
-! if (bd.startspaces)
-! mb_ptr_adv(non_white);
-
-! /* The character's column is in "bd.start_vcol". */
-! non_white_col = bd.start_vcol;
-
-! while (vim_iswhite(*non_white))
- {
-! incr = lbr_chartabsize_adv(&non_white, non_white_col);
-! non_white_col += incr;
- }
-!
-! block_space_width = non_white_col - oap->start_vcol;
-! /* We will shift by "total" or "block_space_width", whichever is less.
-! */
-! shift_amount = (block_space_width < total? block_space_width: total);
-!
-! /* The column to which we will shift the text. */
-! destination_col = non_white_col - shift_amount;
-!
-! /* Now let's find out how much of the beginning of the line we can
-! * reuse without modification. */
-! verbatim_copy_end = bd.textstart;
-! verbatim_copy_width = bd.start_vcol;
-!
-! /* If "bd.startspaces" is set, "bd.textstart" points to the character
-! * preceding the block. We have to subtract its width to obtain its
-! * column number. */
-! if (bd.startspaces)
-! verbatim_copy_width -= bd.start_char_vcols;
-! while (verbatim_copy_width < destination_col)
- {
-! incr = lbr_chartabsize(verbatim_copy_end, verbatim_copy_width);
-! if (verbatim_copy_width + incr > destination_col)
-! break;
-! verbatim_copy_width += incr;
-! mb_ptr_adv(verbatim_copy_end);
- }
-
-! /* If "destination_col" is different from the width of the initial
-! * part of the line that will be copied, it means we encountered a tab
-! * character, which we will have to partly replace with spaces. */
-! fill = destination_col - verbatim_copy_width;
-!
-! /* The replacement line will consist of:
-! * - the beginning of the original line up to "verbatim_copy_end",
-! * - "fill" number of spaces,
-! * - the rest of the line, pointed to by non_white. */
-! new_line_len = (unsigned)(verbatim_copy_end - oldp)
-! + fill
-! + (unsigned)STRLEN(non_white) + 1;
-!
-! newp = alloc_check(new_line_len);
-! if (newp == NULL)
-! return;
-! mch_memmove(newp, oldp, (size_t)(verbatim_copy_end - oldp));
-! copy_spaces(newp + (verbatim_copy_end - oldp), (size_t)fill);
-! STRMOVE(newp + (verbatim_copy_end - oldp) + fill, non_white);
- }
- /* replace the line */
- ml_replace(curwin->w_cursor.lnum, newp, FALSE);
-***************
-*** 4851,4857 ****
- * - textlen includes the first/last char to be (partly) deleted
- * - start/endspaces is the number of columns that are taken by the
- * first/last deleted char minus the number of columns that have to be
-! * deleted. for yank and tilde:
- * - textlen includes the first/last char to be wholly yanked
- * - start/endspaces is the number of columns of the first/last yanked char
- * that are to be yanked.
---- 4872,4879 ----
- * - textlen includes the first/last char to be (partly) deleted
- * - start/endspaces is the number of columns that are taken by the
- * first/last deleted char minus the number of columns that have to be
-! * deleted.
-! * for yank and tilde:
- * - textlen includes the first/last char to be wholly yanked
- * - start/endspaces is the number of columns of the first/last yanked char
- * that are to be yanked.
-*** ../vim-7.2.136/src/testdir/Makefile Wed Sep 10 18:25:18 2008
---- src/testdir/Makefile Thu Mar 5 04:53:58 2009
-***************
-*** 20,26 ****
- test48.out test49.out test51.out test52.out test53.out \
- test54.out test55.out test56.out test57.out test58.out \
- test59.out test60.out test61.out test62.out test63.out \
-! test64.out test65.out
-
- SCRIPTS_GUI = test16.out
-
---- 20,26 ----
- test48.out test49.out test51.out test52.out test53.out \
- test54.out test55.out test56.out test57.out test58.out \
- test59.out test60.out test61.out test62.out test63.out \
-! test64.out test65.out test66.out
-
- SCRIPTS_GUI = test16.out
-
-*** ../vim-7.2.136/src/testdir/test66.in Wed Mar 11 16:24:44 2009
---- src/testdir/test66.in Wed Mar 11 11:52:57 2009
-***************
-*** 0 ****
---- 1,25 ----
-+
-+ Test for visual block shift and tab characters.
-+
-+ STARTTEST
-+ :so small.vim
-+ /^abcdefgh
-+ 4jI j<<11|D
-+ 7|a 
-+ 7|a 
-+ 7|a 4k13|4j<
-+ :$-4,$w! test.out
-+ :$-4,$s/\s\+//g
-+ 4kI j<<
-+ 7|a 
-+ 7|a 
-+ 7|a 4k13|4j3<
-+ :$-4,$w >> test.out
-+ :qa!
-+ ENDTEST
-+
-+ abcdefghijklmnopqrstuvwxyz
-+ abcdefghijklmnopqrstuvwxyz
-+ abcdefghijklmnopqrstuvwxyz
-+ abcdefghijklmnopqrstuvwxyz
-+ abcdefghijklmnopqrstuvwxyz
-*** ../vim-7.2.136/src/testdir/test66.ok Wed Mar 11 16:24:44 2009
---- src/testdir/test66.ok Thu Mar 5 04:39:36 2009
-***************
-*** 0 ****
---- 1,10 ----
-+ abcdefghijklmnopqrstuvwxyz
-+ abcdefghij
-+ abc defghijklmnopqrstuvwxyz
-+ abc defghijklmnopqrstuvwxyz
-+ abc defghijklmnopqrstuvwxyz
-+ abcdefghijklmnopqrstuvwxyz
-+ abcdefghij
-+ abc defghijklmnopqrstuvwxyz
-+ abc defghijklmnopqrstuvwxyz
-+ abc defghijklmnopqrstuvwxyz
-*** ../vim-7.2.136/src/version.c Wed Mar 11 15:36:01 2009
---- src/version.c Wed Mar 11 16:23:07 2009
-***************
-*** 678,679 ****
---- 678,681 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 137,
- /**/
-
---
-% cat /usr/include/sys/errno.h
-#define EPERM 1 /* Operation not permitted */
-#define ENOENT 2 /* No such file or directory */
-#define ESRCH 3 /* No such process */
-[...]
-#define EMACS 666 /* Too many macros */
-%
-
- /// 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 ///