mirror of
https://github.com/vim/vim.git
synced 2026-01-15 12:22:36 +01:00
runtime(sieve): preserve existing line endings in ftplugin
Only set fileformat=dos for new files; preserve existing line endings
when editing. This satisfies RFC 5228 for new files while avoiding
issues with version control and existing workflows.
The previous change (3cb4148) unconditionally set fileformat=dos, which
converts existing files with LF line endings to CRLF on save. This
causes issues with version control (entire file appears changed) and
breaks workflows where sieve files are stored with unix line endings.
Dovecot Pigeonhole (the main sieve implementation) has explicitly
accepted LF line endings since 2008 (commit 97b967b5):
/* Loose LF is allowed (non-standard) and converted to CRLF */
This behavior has remained unchanged for almost 18 years.
closes: #19144
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Signed-off-by: André-Patrick Bubel <code@apb.name>
Signed-off-by: Christian Brabandt <cb@256bit.org>
This commit is contained in:
committed by
Christian Brabandt
parent
4023bd270a
commit
fc00006777
@@ -3,6 +3,7 @@
|
||||
" Maintainer: This runtime file is looking for a new maintainer.
|
||||
" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
|
||||
" Latest Revision: 2025 Feb 20
|
||||
" 2026 Jan 09 by Vim Project: preserve line endings for existing files #19144
|
||||
|
||||
if exists("b:did_ftplugin")
|
||||
finish
|
||||
@@ -16,4 +17,7 @@ setlocal formatoptions-=t formatoptions+=croql
|
||||
|
||||
" https://datatracker.ietf.org/doc/html/rfc5228#section-2.2 says
|
||||
" "newlines (CRLF, never just CR or LF)"
|
||||
setlocal fileformat=dos
|
||||
" Use CRLF for new files only; preserve existing line endings
|
||||
if expand('%:p') !=# '' && !filereadable(expand('%:p'))
|
||||
setlocal fileformat=dos
|
||||
endif
|
||||
|
||||
Reference in New Issue
Block a user