]> ruderich.org/simon Gitweb - config/dotfiles.git/commitdiff
vimrc: Search "do not edit" header in the first 20 lines only.
authorSimon Ruderich <simon@ruderich.org>
Fri, 19 Apr 2013 19:59:42 +0000 (21:59 +0200)
committerSimon Ruderich <simon@ruderich.org>
Fri, 19 Apr 2013 19:59:42 +0000 (21:59 +0200)
vimrc

diff --git a/vimrc b/vimrc
index 39cadf0cc03a383c4b3d650d2ec4e113263005c4..82e8d33b2dcd01d9394f9d27f5dec90909f64f2e 100644 (file)
--- a/vimrc
+++ b/vimrc
@@ -981,13 +981,17 @@ if has('autocmd')
         endif
 
 " Display a warning when editing a file which contains "do not edit" (ignoring
-" the case, \c), for example template files which were preprocessed or
-" auto-generated files. Especially useful when the header is not displayed on
-" the first screen, e.g. when the old position is restored. Not for vimrc
-" though.
+" the case) in the first lines of the file, for example template files which
+" were preprocessed or auto-generated files. Especially useful when the header
+" is not displayed on the first screen, e.g. when the old position is
+" restored.
         function! s:SearchForDoNotEditHeader()
-            if search('\cdo not edit', 'n') == 0
-                    \ || expand('<afile>:t') =~# '^.\?vimrc$'
+            " Only search the first 20 lines to prevent false positives, e.g.
+            " in scripts which write files containing this warning and ignore
+            " the case (\c). (Can't use search()'s {stopline} as we might not
+            " start searching from the top.)
+            let l:match = search('\cdo not edit', 'n')
+            if l:match == 0 || l:match > 20
                 return
             endif