To: vim-dev@vim.org Subject: Patch 7.1.276 Fcc: outbox From: Bram Moolenaar Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 8bit ------------ Patch 7.1.276 Problem: "gw" uses 'formatexpr', even though the docs say it doesn't. Solution: Don't use 'formatexpr' for "gw". Files: src/vim.h, src/edit.c, src/ops.c, src/proto/ops.pro *** ../vim-7.1.275/src/vim.h Wed Mar 12 14:38:51 2008 --- src/vim.h Wed Mar 12 16:31:44 2008 *************** *** 949,954 **** --- 952,958 ---- #define INSCHAR_FORMAT 1 /* force formatting */ #define INSCHAR_DO_COM 2 /* format comments */ #define INSCHAR_CTRLV 4 /* char typed just after CTRL-V */ + #define INSCHAR_NO_FEX 8 /* don't use 'formatexpr' */ /* flags for open_line() */ #define OPENLINE_DELSPACES 1 /* delete spaces after cursor */ *** ../vim-7.1.275/src/edit.c Tue Jan 22 17:49:17 2008 --- src/edit.c Wed Mar 12 16:35:44 2008 *************** *** 5491,5497 **** #if defined(FEAT_EVAL) int do_internal = TRUE; ! if (*curbuf->b_p_fex != NUL) { do_internal = (fex_format(curwin->w_cursor.lnum, 1L, c) != 0); /* It may be required to save for undo again, e.g. when setline() --- 5491,5497 ---- #if defined(FEAT_EVAL) int do_internal = TRUE; ! if (*curbuf->b_p_fex != NUL && (flags & INSCHAR_NO_FEX) == 0) { do_internal = (fex_format(curwin->w_cursor.lnum, 1L, c) != 0); /* It may be required to save for undo again, e.g. when setline() *************** *** 6057,6063 **** * be adjusted for the text formatting. */ saved_cursor = pos; ! format_lines((linenr_T)-1); curwin->w_cursor = saved_cursor; saved_cursor.lnum = 0; --- 6057,6063 ---- * be adjusted for the text formatting. */ saved_cursor = pos; ! format_lines((linenr_T)-1, FALSE); curwin->w_cursor = saved_cursor; saved_cursor.lnum = 0; *** ../vim-7.1.275/src/ops.c Mon Feb 25 21:54:23 2008 --- src/ops.c Wed Mar 12 16:37:29 2008 *************** *** 4380,4386 **** if (keep_cursor) saved_cursor = oap->cursor_start; ! format_lines(oap->line_count); /* * Leave the cursor at the first non-blank of the last formatted line. --- 4380,4386 ---- if (keep_cursor) saved_cursor = oap->cursor_start; ! format_lines(oap->line_count, keep_cursor); /* * Leave the cursor at the first non-blank of the last formatted line. *************** *** 4495,4502 **** * first line. */ void ! format_lines(line_count) linenr_T line_count; { int max_len; int is_not_par; /* current line not part of parag. */ --- 4495,4503 ---- * first line. */ void ! format_lines(line_count, avoid_fex) linenr_T line_count; + int avoid_fex; /* don't use 'formatexpr' */ { int max_len; int is_not_par; /* current line not part of parag. */ *************** *** 4666,4672 **** #ifdef FEAT_COMMENTS + (do_comments ? INSCHAR_DO_COM : 0) #endif ! , second_indent); State = old_State; p_smd = smd_save; second_indent = -1; --- 4667,4673 ---- #ifdef FEAT_COMMENTS + (do_comments ? INSCHAR_DO_COM : 0) #endif ! + (avoid_fex ? INSCHAR_NO_FEX : 0), second_indent); State = old_State; p_smd = smd_save; second_indent = -1; *** ../vim-7.1.275/src/proto/ops.pro Wed Jan 16 20:01:14 2008 --- src/proto/ops.pro Wed Mar 12 16:38:39 2008 *************** *** 41,47 **** void op_format __ARGS((oparg_T *oap, int keep_cursor)); void op_formatexpr __ARGS((oparg_T *oap)); int fex_format __ARGS((linenr_T lnum, long count, int c)); ! void format_lines __ARGS((linenr_T line_count)); int paragraph_start __ARGS((linenr_T lnum)); int do_addsub __ARGS((int command, linenr_T Prenum1)); int read_viminfo_register __ARGS((vir_T *virp, int force)); --- 41,47 ---- void op_format __ARGS((oparg_T *oap, int keep_cursor)); void op_formatexpr __ARGS((oparg_T *oap)); int fex_format __ARGS((linenr_T lnum, long count, int c)); ! void format_lines __ARGS((linenr_T line_count, int avoid_fex)); int paragraph_start __ARGS((linenr_T lnum)); int do_addsub __ARGS((int command, linenr_T Prenum1)); int read_viminfo_register __ARGS((vir_T *virp, int force)); *** ../vim-7.1.275/src/version.c Wed Mar 12 14:38:51 2008 --- src/version.c Wed Mar 12 17:23:43 2008 *************** *** 668,669 **** --- 668,671 ---- { /* Add new patch number below this line */ + /**/ + 276, /**/ -- An actual excerpt from a classified section of a city newspaper: "Illiterate? Write today for free help!" /// 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 ///