On So, 31 Aug 2014, [email protected] wrote:

> As I have read a lot about assumed breakindent bugs in previous threads: This
> reminds me of the strange behavior related to line formatting I mentioned in 
> the
> vim_use mailing list. It can still be reproduced with the following test.
> 
> [email protected], 15.02.2014 02:11:
> > ... it seems that formatting really behaves
> > differently if "linebreak" is set. After setting options with
> > ":se all& co=79 tw=80", place the cursor in the first test line and format 
> > both
> > lines with "gqj". Try this with and without "linebreak".
> 
> > xxx xxx xxx xxx xxx xxx xxx xxx xxx xxx xxx xxx xxx xxx xxx xxx xxx xxx xxx 
> > xxx
> > xxx
> 
> > In the first case, there are two words in the second line; in the second 
> > case,
> > it is just one word. This can also be reproduced when starting Vim with
> > "vim -u NONE +'se all& co=79 tw=80'".
> 
> According to the help page for linebreak, this option should not affect
> formatting.

Attached is a patch.

Best,
Christian
-- 
Zwei Knaben stiegen auf einen Turm,
Der eine hatte 'nen Bandelwurm.
Der andre keck und munter,
Der ließ sich daran herunter.

-- 
-- 
You received this message from the "vim_dev" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

--- 
You received this message because you are subscribed to the Google Groups 
"vim_dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.
diff --git a/src/edit.c b/src/edit.c
--- a/src/edit.c
+++ b/src/edit.c
@@ -6131,6 +6131,11 @@ internal_format(textwidth, second_indent
     int		no_leader = FALSE;
     int		do_comments = (flags & INSCHAR_DO_COM);
 #endif
+#ifdef FEAT_LINEBREAK
+    int has_lbr = curwin->w_p_lbr;
+    /* make sure, win_lbr_chartabsize counts correct */
+    curwin->w_p_lbr = FALSE;
+#endif
 
     /*
      * When 'ai' is off we don't want a space under the cursor to be
@@ -6483,6 +6488,9 @@ internal_format(textwidth, second_indent
     if (save_char != NUL)		/* put back space after cursor */
 	pchar_cursor(save_char);
 
+#ifdef FEAT_LINEBREAK
+    curwin->w_p_lbr = has_lbr;
+#endif
     if (!format_only && haveto_redraw)
     {
 	update_topline();

Raspunde prin e-mail lui