# HG changeset patch # User Ludovic Chabant # Date 1440652879 25200 # Node ID 96bfe5c37f3785f68c7ea8637add4cb6edecd936 # Parent e7e392be41411c7574adb7178dd6725ce92bceb3 Error and abort if we'll be overwriting a non-ctags file. diff -r e7e392be4141 -r 96bfe5c37f37 autoload/gutentags.vim --- a/autoload/gutentags.vim Wed Aug 26 21:20:37 2015 -0700 +++ b/autoload/gutentags.vim Wed Aug 26 22:21:19 2015 -0700 @@ -256,6 +256,9 @@ try call call("gutentags#".a:module."#generate", \[l:proj_dir, l:tags_file, a:write_mode]) + catch /^gutentags\:/ + echom "Error while generating ".a:module." file:" + echom v:exception finally " Restore the current directory... execute "chdir " . fnameescape(l:prev_cwd) diff -r e7e392be4141 -r 96bfe5c37f37 autoload/gutentags/ctags.vim --- a/autoload/gutentags/ctags.vim Wed Aug 26 21:20:37 2015 -0700 +++ b/autoload/gutentags/ctags.vim Wed Aug 26 22:21:19 2015 -0700 @@ -40,6 +40,18 @@ " these things. let l:prev_cwd = getcwd() let l:work_dir = fnamemodify(a:tags_file, ':h') + let l:tags_file_exists = filereadable(a:tags_file) + + if l:tags_file_exists + let l:first_lines = readfile(a:tags_file, '', 1) + if len(l:first_lines) == 0 || stridx(l:first_lines[0], '!_TAG_') != 0 + call gutentags#throw("File ".a:tags_file." doesn't appear to be ". + \"a ctags file. Please delete it and run ". + \":GutentagsUpdate!.") + return + endif + endif + execute "chdir " . fnameescape(l:work_dir) try @@ -48,7 +60,7 @@ let l:cmd .= ' -e "' . s:get_ctags_executable() . '"' let l:cmd .= ' -t "' . a:tags_file . '"' let l:cmd .= ' -p "' . a:proj_dir . '"' - if a:write_mode == 0 && filereadable(a:tags_file) + if a:write_mode == 0 && l:tags_file_exists let l:full_path = expand('%:p') let l:cmd .= ' -s "' . l:full_path . '"' endif