summaryrefslogtreecommitdiffstats
path: root/source/ap/vim/patches/7.3.618
diff options
context:
space:
mode:
Diffstat (limited to 'source/ap/vim/patches/7.3.618')
-rw-r--r--source/ap/vim/patches/7.3.618367
1 files changed, 367 insertions, 0 deletions
diff --git a/source/ap/vim/patches/7.3.618 b/source/ap/vim/patches/7.3.618
new file mode 100644
index 000000000..d0cc9c681
--- /dev/null
+++ b/source/ap/vim/patches/7.3.618
@@ -0,0 +1,367 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.618
+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.618 (after 7.3.616)
+Problem: Still doesn't compile with small features.
+Solution: Move current_search() out of #ifdef. (Dominique Pelle)
+Files: src/normal.c, src/search.c
+
+
+*** ../vim-7.3.617/src/normal.c 2012-07-27 21:05:51.000000000 +0200
+--- src/normal.c 2012-07-28 13:34:13.000000000 +0200
+***************
+*** 7995,8000 ****
+--- 7995,8001 ----
+ cap->arg = TRUE;
+ nv_visual(cap);
+ break;
++ #endif /* FEAT_VISUAL */
+
+ /* "gn", "gN" visually select next/previous search match
+ * "gn" selects next match
+***************
+*** 8006,8014 ****
+ if (!current_search(cap->count1, cap->nchar == 'n'))
+ #endif
+ beep_flush();
+-
+ break;
+- #endif /* FEAT_VISUAL */
+
+ /*
+ * "gj" and "gk" two new funny movement keys -- up and down
+--- 8007,8013 ----
+*** ../vim-7.3.617/src/search.c 2012-07-25 15:06:20.000000000 +0200
+--- src/search.c 2012-07-28 13:37:19.000000000 +0200
+***************
+*** 3397,3547 ****
+ return OK;
+ }
+
+- #if defined(FEAT_VISUAL) || defined(PROTO)
+- /*
+- * Find next search match under cursor, cursor at end.
+- * Used while an operator is pending, and in Visual mode.
+- * TODO: redo only works when used in operator pending mode
+- */
+- int
+- current_search(count, forward)
+- long count;
+- int forward; /* move forward or backwards */
+- {
+- pos_T start_pos; /* position before the pattern */
+- pos_T orig_pos; /* position of the cursor at beginning */
+- pos_T pos; /* position after the pattern */
+- int i;
+- int dir;
+- int result; /* result of various function calls */
+- char_u old_p_ws = p_ws;
+- int visual_active = FALSE;
+- int flags = 0;
+- pos_T save_VIsual;
+-
+-
+- /* wrapping should not occur */
+- p_ws = FALSE;
+-
+- /* Correct cursor when 'selection' is exclusive */
+- if (VIsual_active && *p_sel == 'e' && lt(VIsual, curwin->w_cursor))
+- dec_cursor();
+-
+- if (VIsual_active)
+- {
+- orig_pos = curwin->w_cursor;
+- save_VIsual = VIsual;
+- visual_active = TRUE;
+-
+- /* just started visual selection, only one character */
+- if (equalpos(VIsual, curwin->w_cursor))
+- visual_active = FALSE;
+-
+- pos = curwin->w_cursor;
+- start_pos = VIsual;
+-
+- /* make sure, searching further will extend the match */
+- if (VIsual_active)
+- {
+- if (forward)
+- incl(&pos);
+- else
+- decl(&pos);
+- }
+- }
+- else
+- orig_pos = pos = start_pos = curwin->w_cursor;
+-
+- /*
+- * The trick is to first search backwards and then search forward again,
+- * so that a match at the current cursor position will be correctly
+- * captured.
+- */
+- for (i = 0; i < 2; i++)
+- {
+- if (i && count == 1)
+- flags = SEARCH_START;
+-
+- if (forward)
+- dir = i;
+- else
+- dir = !i;
+- result = searchit(curwin, curbuf, &pos, (dir ? FORWARD : BACKWARD),
+- spats[last_idx].pat, (long) (i ? count : 1),
+- SEARCH_KEEP | flags | (dir ? 0 : SEARCH_END),
+- RE_SEARCH, 0, NULL);
+-
+- /* First search may fail, but then start searching from the
+- * beginning of the file (cursor might be on the search match)
+- * except when Visual mode is active, so that extending the visual
+- * selection works. */
+- if (!result && i) /* not found, abort */
+- {
+- curwin->w_cursor = orig_pos;
+- if (VIsual_active)
+- VIsual = save_VIsual;
+- p_ws = old_p_ws;
+- return FAIL;
+- }
+- else if (!i && !result && !visual_active)
+- {
+- if (forward) /* try again from start of buffer */
+- {
+- clearpos(&pos);
+- }
+- else /* try again from end of buffer */
+- {
+- /* searching backwards, so set pos to last line and col */
+- pos.lnum = curwin->w_buffer->b_ml.ml_line_count;
+- pos.col = STRLEN(ml_get(curwin->w_buffer->b_ml.ml_line_count));
+- }
+- }
+-
+- }
+-
+- start_pos = pos;
+- flags = (forward ? SEARCH_END : 0);
+-
+- /* move to match */
+- result = searchit(curwin, curbuf, &pos, (forward ? FORWARD : BACKWARD),
+- spats[last_idx].pat, 0L, flags | SEARCH_KEEP, RE_SEARCH, 0, NULL);
+-
+- if (!VIsual_active)
+- VIsual = start_pos;
+-
+- p_ws = old_p_ws;
+- curwin->w_cursor = pos;
+- VIsual_active = TRUE;
+- VIsual_mode = 'v';
+-
+- if (VIsual_active)
+- {
+- redraw_curbuf_later(INVERTED); /* update the inversion */
+- if (*p_sel == 'e' && ltoreq(VIsual, curwin->w_cursor))
+- inc_cursor();
+- }
+-
+- #ifdef FEAT_FOLDING
+- if (fdo_flags & FDO_SEARCH && KeyTyped)
+- foldOpenCursor();
+- #endif
+-
+- may_start_select('c');
+- #ifdef FEAT_MOUSE
+- setmouse();
+- #endif
+- #ifdef FEAT_CLIPBOARD
+- /* Make sure the clipboard gets updated. Needed because start and
+- * end are still the same, and the selection needs to be owned */
+- clip_star.vmode = NUL;
+- #endif
+- redraw_curbuf_later(INVERTED);
+- showmode();
+-
+- return OK;
+- }
+- #endif /* FEAT_VISUAL */
+-
+ /*
+ * Find sentence(s) under the cursor, cursor at end.
+ * When Visual active, extend it by one or more sentences.
+--- 3397,3402 ----
+***************
+*** 4670,4675 ****
+--- 4525,4675 ----
+
+ #endif /* FEAT_TEXTOBJ */
+
++ #if defined(FEAT_VISUAL) || defined(PROTO)
++ /*
++ * Find next search match under cursor, cursor at end.
++ * Used while an operator is pending, and in Visual mode.
++ * TODO: redo only works when used in operator pending mode
++ */
++ int
++ current_search(count, forward)
++ long count;
++ int forward; /* move forward or backwards */
++ {
++ pos_T start_pos; /* position before the pattern */
++ pos_T orig_pos; /* position of the cursor at beginning */
++ pos_T pos; /* position after the pattern */
++ int i;
++ int dir;
++ int result; /* result of various function calls */
++ char_u old_p_ws = p_ws;
++ int visual_active = FALSE;
++ int flags = 0;
++ pos_T save_VIsual;
++
++
++ /* wrapping should not occur */
++ p_ws = FALSE;
++
++ /* Correct cursor when 'selection' is exclusive */
++ if (VIsual_active && *p_sel == 'e' && lt(VIsual, curwin->w_cursor))
++ dec_cursor();
++
++ if (VIsual_active)
++ {
++ orig_pos = curwin->w_cursor;
++ save_VIsual = VIsual;
++ visual_active = TRUE;
++
++ /* just started visual selection, only one character */
++ if (equalpos(VIsual, curwin->w_cursor))
++ visual_active = FALSE;
++
++ pos = curwin->w_cursor;
++ start_pos = VIsual;
++
++ /* make sure, searching further will extend the match */
++ if (VIsual_active)
++ {
++ if (forward)
++ incl(&pos);
++ else
++ decl(&pos);
++ }
++ }
++ else
++ orig_pos = pos = start_pos = curwin->w_cursor;
++
++ /*
++ * The trick is to first search backwards and then search forward again,
++ * so that a match at the current cursor position will be correctly
++ * captured.
++ */
++ for (i = 0; i < 2; i++)
++ {
++ if (i && count == 1)
++ flags = SEARCH_START;
++
++ if (forward)
++ dir = i;
++ else
++ dir = !i;
++ result = searchit(curwin, curbuf, &pos, (dir ? FORWARD : BACKWARD),
++ spats[last_idx].pat, (long) (i ? count : 1),
++ SEARCH_KEEP | flags | (dir ? 0 : SEARCH_END),
++ RE_SEARCH, 0, NULL);
++
++ /* First search may fail, but then start searching from the
++ * beginning of the file (cursor might be on the search match)
++ * except when Visual mode is active, so that extending the visual
++ * selection works. */
++ if (!result && i) /* not found, abort */
++ {
++ curwin->w_cursor = orig_pos;
++ if (VIsual_active)
++ VIsual = save_VIsual;
++ p_ws = old_p_ws;
++ return FAIL;
++ }
++ else if (!i && !result && !visual_active)
++ {
++ if (forward) /* try again from start of buffer */
++ {
++ clearpos(&pos);
++ }
++ else /* try again from end of buffer */
++ {
++ /* searching backwards, so set pos to last line and col */
++ pos.lnum = curwin->w_buffer->b_ml.ml_line_count;
++ pos.col = STRLEN(ml_get(curwin->w_buffer->b_ml.ml_line_count));
++ }
++ }
++
++ }
++
++ start_pos = pos;
++ flags = (forward ? SEARCH_END : 0);
++
++ /* move to match */
++ result = searchit(curwin, curbuf, &pos, (forward ? FORWARD : BACKWARD),
++ spats[last_idx].pat, 0L, flags | SEARCH_KEEP, RE_SEARCH, 0, NULL);
++
++ if (!VIsual_active)
++ VIsual = start_pos;
++
++ p_ws = old_p_ws;
++ curwin->w_cursor = pos;
++ VIsual_active = TRUE;
++ VIsual_mode = 'v';
++
++ if (VIsual_active)
++ {
++ redraw_curbuf_later(INVERTED); /* update the inversion */
++ if (*p_sel == 'e' && ltoreq(VIsual, curwin->w_cursor))
++ inc_cursor();
++ }
++
++ #ifdef FEAT_FOLDING
++ if (fdo_flags & FDO_SEARCH && KeyTyped)
++ foldOpenCursor();
++ #endif
++
++ may_start_select('c');
++ #ifdef FEAT_MOUSE
++ setmouse();
++ #endif
++ #ifdef FEAT_CLIPBOARD
++ /* Make sure the clipboard gets updated. Needed because start and
++ * end are still the same, and the selection needs to be owned */
++ clip_star.vmode = NUL;
++ #endif
++ redraw_curbuf_later(INVERTED);
++ showmode();
++
++ return OK;
++ }
++ #endif /* FEAT_VISUAL */
++
+ #if defined(FEAT_LISP) || defined(FEAT_CINDENT) || defined(FEAT_TEXTOBJ) \
+ || defined(PROTO)
+ /*
+*** ../vim-7.3.617/src/version.c 2012-07-27 21:12:03.000000000 +0200
+--- src/version.c 2012-07-29 12:54:29.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 618,
+ /**/
+
+--
+hundred-and-one symptoms of being an internet addict:
+185. You order fast food over the Internet
+
+ /// 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 ///