| To: vim-dev@vim.org |
| Subject: Patch 7.1.247 |
| Fcc: outbox |
| From: Bram Moolenaar <Bram@moolenaar.net> |
| Mime-Version: 1.0 |
| Content-Type: text/plain; charset=ISO-8859-1 |
| Content-Transfer-Encoding: 8bit |
| |
| |
| Patch 7.1.247 |
| Problem: When using Netbeans backspacing in Insert mode skips a character |
| now and then. (Ankit Jain) |
| Solution: Avoid calling netbeans_removed(), it frees the line pointer. |
| (partly by Dominique Pelle). |
| Files: src/misc1.c |
| |
| |
| |
| |
| |
| *** 2270,2282 **** |
| /* |
| * If the old line has been allocated the deletion can be done in the |
| * existing line. Otherwise a new line has to be allocated |
| */ |
| - was_alloced = ml_line_alloced(); /* check if oldp was allocated */ |
| #ifdef FEAT_NETBEANS_INTG |
| ! if (was_alloced && usingNetbeans) |
| ! netbeans_removed(curbuf, lnum, col, count); |
| ! /* else is handled by ml_replace() */ |
| #endif |
| if (was_alloced) |
| newp = oldp; /* use same allocated memory */ |
| else |
| --- 2270,2285 ---- |
| /* |
| * If the old line has been allocated the deletion can be done in the |
| * existing line. Otherwise a new line has to be allocated |
| + * Can't do this when using Netbeans, because we would need to invoke |
| + * netbeans_removed(), which deallocates the line. Let ml_replace() take |
| + * care of notifiying Netbeans. |
| */ |
| #ifdef FEAT_NETBEANS_INTG |
| ! if (usingNetbeans) |
| ! was_alloced = FALSE; |
| ! else |
| #endif |
| + was_alloced = ml_line_alloced(); /* check if oldp was allocated */ |
| if (was_alloced) |
| newp = oldp; /* use same allocated memory */ |
| else |
| |
| *** 3978,3984 **** |
| /* remove trailing path separator */ |
| #ifndef MACOS_CLASSIC |
| /* With MacOS path (with colons) the final colon is required */ |
| ! /* to avoid confusion between absoulute and relative path */ |
| if (pend > p && after_pathsep(p, pend)) |
| --pend; |
| #endif |
| --- 3981,3987 ---- |
| /* remove trailing path separator */ |
| #ifndef MACOS_CLASSIC |
| /* With MacOS path (with colons) the final colon is required */ |
| ! /* to avoid confusion between absolute and relative path */ |
| if (pend > p && after_pathsep(p, pend)) |
| --pend; |
| #endif |
| |
| *** 5689,5695 **** |
| else if (lookfor_ctor_init || class_or_struct) |
| { |
| /* we have something found, that looks like the start of |
| ! * cpp-base-class-declaration or contructor-initialization */ |
| cpp_base_class = TRUE; |
| lookfor_ctor_init = class_or_struct = FALSE; |
| *col = 0; |
| --- 5692,5698 ---- |
| else if (lookfor_ctor_init || class_or_struct) |
| { |
| /* we have something found, that looks like the start of |
| ! * cpp-base-class-declaration or constructor-initialization */ |
| cpp_base_class = TRUE; |
| lookfor_ctor_init = class_or_struct = FALSE; |
| *col = 0; |
| |
| *** 6146,6152 **** |
| pos_T our_paren_pos; |
| char_u *start; |
| int start_brace; |
| ! #define BRACE_IN_COL0 1 /* '{' is in comumn 0 */ |
| #define BRACE_AT_START 2 /* '{' is at start of line */ |
| #define BRACE_AT_END 3 /* '{' is at end of line */ |
| linenr_T ourscope; |
| --- 6149,6155 ---- |
| pos_T our_paren_pos; |
| char_u *start; |
| int start_brace; |
| ! #define BRACE_IN_COL0 1 /* '{' is in column 0 */ |
| #define BRACE_AT_START 2 /* '{' is at start of line */ |
| #define BRACE_AT_END 3 /* '{' is at end of line */ |
| linenr_T ourscope; |
| |
| *** 6369,6375 **** |
| if (curwin->w_cursor.lnum > 1) |
| { |
| /* If the start comment string matches in the previous |
| ! * line, use the indent of that line pluss offset. If |
| * the middle comment string matches in the previous |
| * line, use the indent of that line. XXX */ |
| look = skipwhite(ml_get(curwin->w_cursor.lnum - 1)); |
| --- 6372,6378 ---- |
| if (curwin->w_cursor.lnum > 1) |
| { |
| /* If the start comment string matches in the previous |
| ! * line, use the indent of that line plus offset. If |
| * the middle comment string matches in the previous |
| * line, use the indent of that line. XXX */ |
| look = skipwhite(ml_get(curwin->w_cursor.lnum - 1)); |
| |
| *** 8222,8228 **** |
| |
| if (*that && *that != ';') /* not a comment line */ |
| { |
| ! /* test *that != '(' to accomodate first let/do |
| * argument if it is more than one line */ |
| if (!vi_lisp && *that != '(' && *that != '[') |
| firsttry++; |
| --- 8225,8231 ---- |
| |
| if (*that && *that != ';') /* not a comment line */ |
| { |
| ! /* test *that != '(' to accommodate first let/do |
| * argument if it is more than one line */ |
| if (!vi_lisp && *that != '(' && *that != '[') |
| firsttry++; |
| |
| |
| |
| *** 668,669 **** |
| --- 668,671 ---- |
| { /* Add new patch number below this line */ |
| + /**/ |
| + 247, |
| /**/ |
| |
| -- |
| Far back in the mists of ancient time, in the great and glorious days of the |
| former Galactic Empire, life was wild, rich and largely tax free. |
| Mighty starships plied their way between exotic suns, seeking adventure and |
| reward among the furthest reaches of Galactic space. In those days, spirits |
| were brave, the stakes were high, men were real men, women were real women |
| and small furry creatures from Alpha Centauri were real small furry creatures |
| from Alpha Centauri. And all dared to brave unknown terrors, to do mighty |
| deeds, to boldly split infinitives that no man had split before -- and thus |
| was the Empire forged. |
| -- Douglas Adams, "The Hitchhiker's Guide to the Galaxy" |
| |
| /// 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 /// |