summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--runtime/filetype.vim5
-rw-r--r--src/edit.c16
2 files changed, 20 insertions, 1 deletions
diff --git a/runtime/filetype.vim b/runtime/filetype.vim
index 4d561f258..0639b5633 100644
--- a/runtime/filetype.vim
+++ b/runtime/filetype.vim
@@ -1,7 +1,7 @@
" Vim support file to detect file types
"
" Maintainer: Bram Moolenaar <Bram@vim.org>
-" Last Change: 2005 May 18
+" Last Change: 2005 May 20
" Listen very carefully, I will say this only once
if exists("did_load_filetypes")
@@ -528,6 +528,9 @@ au BufNewFile,BufRead *esmtprc setf esmtprc
" ESQL-C
au BufNewFile,BufRead *.ec,*.EC setf esqlc
+" Esterel
+au BufNewFile,BufRead *.strl setf esterel
+
" Essbase script
au BufNewFile,BufRead *.csc setf csc
diff --git a/src/edit.c b/src/edit.c
index 42b459d38..bce0d83af 100644
--- a/src/edit.c
+++ b/src/edit.c
@@ -6708,6 +6708,22 @@ ins_bs(c, mode, inserted_space_p)
{
temp = gchar_cursor(); /* remember current char */
--curwin->w_cursor.lnum;
+
+ /* When "aw" is in 'formatoptions' we must delete the space at
+ * the end of the line, otherwise the line will be broken
+ * again when auto-formatting. */
+ if (has_format_option(FO_AUTO)
+ && has_format_option(FO_WHITE_PAR))
+ {
+ char_u *ptr = ml_get_buf(curbuf, curwin->w_cursor.lnum,
+ TRUE);
+ int len;
+
+ len = STRLEN(ptr);
+ if (len > 0 && ptr[len - 1] == ' ')
+ ptr[len - 1] = NUL;
+ }
+
(void)do_join(FALSE);
if (temp == NUL && gchar_cursor() != NUL)
inc_cursor();