To: vim_dev@googlegroups.com Subject: Patch 8.0.1597 Fcc: outbox From: Bram Moolenaar Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ------------ Patch 8.0.1597 Problem: Autocommand events are not sorted. Solution: Sort the autocommand events. Files: src/vim.h *** ../vim-8.0.1596/src/vim.h 2018-03-11 16:55:30.012616408 +0100 --- src/vim.h 2018-03-11 16:58:08.051652860 +0100 *************** *** 1251,1317 **** enum auto_event { EVENT_BUFADD = 0, /* after adding a buffer to the buffer list */ - EVENT_BUFNEW, /* after creating any buffer */ EVENT_BUFDELETE, /* deleting a buffer from the buffer list */ - EVENT_BUFWIPEOUT, /* just before really deleting a buffer */ EVENT_BUFENTER, /* after entering a buffer */ EVENT_BUFFILEPOST, /* after renaming a buffer */ EVENT_BUFFILEPRE, /* before renaming a buffer */ EVENT_BUFLEAVE, /* before leaving a buffer */ EVENT_BUFNEWFILE, /* when creating a buffer for a new file */ EVENT_BUFREADPOST, /* after reading a buffer */ EVENT_BUFREADPRE, /* before reading a buffer */ - EVENT_BUFREADCMD, /* read buffer using command */ EVENT_BUFUNLOAD, /* just before unloading a buffer */ - EVENT_BUFHIDDEN, /* just after buffer becomes hidden */ EVENT_BUFWINENTER, /* after showing a buffer in a window */ EVENT_BUFWINLEAVE, /* just after buffer removed from window */ EVENT_BUFWRITEPOST, /* after writing a buffer */ EVENT_BUFWRITEPRE, /* before writing a buffer */ - EVENT_BUFWRITECMD, /* write buffer using command */ EVENT_CMDLINECHANGED, /* command line was modified*/ EVENT_CMDLINEENTER, /* after entering the command line */ EVENT_CMDLINELEAVE, /* before leaving the command line */ EVENT_CMDWINENTER, /* after entering the cmdline window */ EVENT_CMDWINLEAVE, /* before leaving the cmdline window */ EVENT_COLORSCHEME, /* after loading a colorscheme */ EVENT_COMPLETEDONE, /* after finishing insert complete */ ! EVENT_DIRCHANGED, /* after changing directory as a result of user cmd */ EVENT_EXITPRE, /* before exiting */ EVENT_FILEAPPENDPOST, /* after appending to a file */ EVENT_FILEAPPENDPRE, /* before appending to a file */ ! EVENT_FILEAPPENDCMD, /* append to a file using command */ EVENT_FILECHANGEDSHELL, /* after shell command that changed file */ EVENT_FILECHANGEDSHELLPOST, /* after (not) reloading changed file */ ! EVENT_FILECHANGEDRO, /* before first change to read-only file */ EVENT_FILEREADPOST, /* after reading a file */ EVENT_FILEREADPRE, /* before reading a file */ - EVENT_FILEREADCMD, /* read from a file using command */ EVENT_FILETYPE, /* new file type detected (user defined) */ EVENT_FILEWRITEPOST, /* after writing a file */ EVENT_FILEWRITEPRE, /* before writing a file */ - EVENT_FILEWRITECMD, /* write to a file using command */ EVENT_FILTERREADPOST, /* after reading from a filter */ EVENT_FILTERREADPRE, /* before reading from a filter */ EVENT_FILTERWRITEPOST, /* after writing to a filter */ EVENT_FILTERWRITEPRE, /* before writing to a filter */ EVENT_FOCUSGAINED, /* got the focus */ EVENT_FOCUSLOST, /* lost the focus to another app */ EVENT_GUIENTER, /* after starting the GUI */ EVENT_GUIFAILED, /* after starting the GUI failed */ EVENT_INSERTCHANGE, /* when changing Insert/Replace mode */ EVENT_INSERTENTER, /* when entering Insert mode */ EVENT_INSERTLEAVE, /* when leaving Insert mode */ EVENT_MENUPOPUP, /* just before popup menu is displayed */ EVENT_QUICKFIXCMDPOST, /* after :make, :grep etc. */ EVENT_QUICKFIXCMDPRE, /* before :make, :grep etc. */ EVENT_QUITPRE, /* before :quit */ EVENT_SESSIONLOADPOST, /* after loading a session file */ EVENT_STDINREADPOST, /* after reading from stdin */ EVENT_STDINREADPRE, /* before reading from stdin */ EVENT_SYNTAX, /* syntax selected */ EVENT_TERMCHANGED, /* after changing 'term' */ EVENT_TERMRESPONSE, /* after setting "v:termresponse" */ EVENT_USER, /* user defined autocommand */ EVENT_VIMENTER, /* after starting Vim */ EVENT_VIMLEAVE, /* before exiting Vim */ --- 1251,1342 ---- enum auto_event { EVENT_BUFADD = 0, /* after adding a buffer to the buffer list */ EVENT_BUFDELETE, /* deleting a buffer from the buffer list */ EVENT_BUFENTER, /* after entering a buffer */ EVENT_BUFFILEPOST, /* after renaming a buffer */ EVENT_BUFFILEPRE, /* before renaming a buffer */ + EVENT_BUFHIDDEN, /* just after buffer becomes hidden */ EVENT_BUFLEAVE, /* before leaving a buffer */ + EVENT_BUFNEW, /* after creating any buffer */ EVENT_BUFNEWFILE, /* when creating a buffer for a new file */ + EVENT_BUFREADCMD, /* read buffer using command */ EVENT_BUFREADPOST, /* after reading a buffer */ EVENT_BUFREADPRE, /* before reading a buffer */ EVENT_BUFUNLOAD, /* just before unloading a buffer */ EVENT_BUFWINENTER, /* after showing a buffer in a window */ EVENT_BUFWINLEAVE, /* just after buffer removed from window */ + EVENT_BUFWIPEOUT, /* just before really deleting a buffer */ + EVENT_BUFWRITECMD, /* write buffer using command */ EVENT_BUFWRITEPOST, /* after writing a buffer */ EVENT_BUFWRITEPRE, /* before writing a buffer */ EVENT_CMDLINECHANGED, /* command line was modified*/ EVENT_CMDLINEENTER, /* after entering the command line */ EVENT_CMDLINELEAVE, /* before leaving the command line */ + EVENT_CMDUNDEFINED, /* command undefined */ EVENT_CMDWINENTER, /* after entering the cmdline window */ EVENT_CMDWINLEAVE, /* before leaving the cmdline window */ EVENT_COLORSCHEME, /* after loading a colorscheme */ EVENT_COMPLETEDONE, /* after finishing insert complete */ ! EVENT_CURSORHOLD, /* cursor in same position for a while */ ! EVENT_CURSORHOLDI, /* idem, in Insert mode */ ! EVENT_CURSORMOVED, /* cursor was moved */ ! EVENT_CURSORMOVEDI, /* cursor was moved in Insert mode */ ! EVENT_DIRCHANGED, /* after user changed directory */ ! EVENT_ENCODINGCHANGED, /* after changing the 'encoding' option */ EVENT_EXITPRE, /* before exiting */ + EVENT_FILEAPPENDCMD, /* append to a file using command */ EVENT_FILEAPPENDPOST, /* after appending to a file */ EVENT_FILEAPPENDPRE, /* before appending to a file */ ! EVENT_FILECHANGEDRO, /* before first change to read-only file */ EVENT_FILECHANGEDSHELL, /* after shell command that changed file */ EVENT_FILECHANGEDSHELLPOST, /* after (not) reloading changed file */ ! EVENT_FILEREADCMD, /* read from a file using command */ EVENT_FILEREADPOST, /* after reading a file */ EVENT_FILEREADPRE, /* before reading a file */ EVENT_FILETYPE, /* new file type detected (user defined) */ + EVENT_FILEWRITECMD, /* write to a file using command */ EVENT_FILEWRITEPOST, /* after writing a file */ EVENT_FILEWRITEPRE, /* before writing a file */ EVENT_FILTERREADPOST, /* after reading from a filter */ EVENT_FILTERREADPRE, /* before reading from a filter */ EVENT_FILTERWRITEPOST, /* after writing to a filter */ EVENT_FILTERWRITEPRE, /* before writing to a filter */ EVENT_FOCUSGAINED, /* got the focus */ EVENT_FOCUSLOST, /* lost the focus to another app */ + EVENT_FUNCUNDEFINED, /* if calling a function which doesn't exist */ EVENT_GUIENTER, /* after starting the GUI */ EVENT_GUIFAILED, /* after starting the GUI failed */ EVENT_INSERTCHANGE, /* when changing Insert/Replace mode */ + EVENT_INSERTCHARPRE, /* before inserting a char */ EVENT_INSERTENTER, /* when entering Insert mode */ EVENT_INSERTLEAVE, /* when leaving Insert mode */ EVENT_MENUPOPUP, /* just before popup menu is displayed */ + EVENT_OPTIONSET, /* option was set */ EVENT_QUICKFIXCMDPOST, /* after :make, :grep etc. */ EVENT_QUICKFIXCMDPRE, /* before :make, :grep etc. */ EVENT_QUITPRE, /* before :quit */ + EVENT_REMOTEREPLY, /* upon string reception from a remote vim */ EVENT_SESSIONLOADPOST, /* after loading a session file */ + EVENT_SHELLCMDPOST, /* after ":!cmd" */ + EVENT_SHELLFILTERPOST, /* after ":1,2!cmd", ":w !cmd", ":r !cmd". */ + EVENT_SOURCECMD, /* sourcing a Vim script using command */ + EVENT_SOURCEPRE, /* before sourcing a Vim script */ + EVENT_SPELLFILEMISSING, /* spell file missing */ EVENT_STDINREADPOST, /* after reading from stdin */ EVENT_STDINREADPRE, /* before reading from stdin */ + EVENT_SWAPEXISTS, /* found existing swap file */ EVENT_SYNTAX, /* syntax selected */ + EVENT_TABCLOSED, /* after closing a tab page */ + EVENT_TABENTER, /* after entering a tab page */ + EVENT_TABLEAVE, /* before leaving a tab page */ + EVENT_TABNEW, /* when entering a new tab page */ EVENT_TERMCHANGED, /* after changing 'term' */ + EVENT_TERMINALOPEN, /* after a terminal buffer was created */ EVENT_TERMRESPONSE, /* after setting "v:termresponse" */ + EVENT_TEXTCHANGED, /* text was modified not in Insert mode */ + EVENT_TEXTCHANGEDI, /* text was modified in Insert mode */ + EVENT_TEXTCHANGEDP, /* TextChangedI with popup menu visible */ + EVENT_TEXTYANKPOST, /* after some text was yanked */ EVENT_USER, /* user defined autocommand */ EVENT_VIMENTER, /* after starting Vim */ EVENT_VIMLEAVE, /* before exiting Vim */ *************** *** 1320,1352 **** EVENT_WINENTER, /* after entering a window */ EVENT_WINLEAVE, /* before leaving a window */ EVENT_WINNEW, /* when entering a new window */ ! EVENT_ENCODINGCHANGED, /* after changing the 'encoding' option */ ! EVENT_INSERTCHARPRE, /* before inserting a char */ ! EVENT_CURSORHOLD, /* cursor in same position for a while */ ! EVENT_CURSORHOLDI, /* idem, in Insert mode */ ! EVENT_FUNCUNDEFINED, /* if calling a function which doesn't exist */ ! EVENT_REMOTEREPLY, /* upon string reception from a remote vim */ ! EVENT_SWAPEXISTS, /* found existing swap file */ ! EVENT_SOURCEPRE, /* before sourcing a Vim script */ ! EVENT_SOURCECMD, /* sourcing a Vim script using command */ ! EVENT_SPELLFILEMISSING, /* spell file missing */ ! EVENT_CURSORMOVED, /* cursor was moved */ ! EVENT_CURSORMOVEDI, /* cursor was moved in Insert mode */ ! EVENT_TABENTER, /* after entering a tab page */ ! EVENT_TABLEAVE, /* before leaving a tab page */ ! EVENT_TABNEW, /* when entering a new tab page */ ! EVENT_TABCLOSED, /* after closing a tab page */ ! EVENT_SHELLCMDPOST, /* after ":!cmd" */ ! EVENT_SHELLFILTERPOST, /* after ":1,2!cmd", ":w !cmd", ":r !cmd". */ ! EVENT_TEXTCHANGED, /* text was modified not in Insert mode */ ! EVENT_TEXTCHANGEDI, /* text was modified in Insert mode without ! popup menu visible */ ! EVENT_TEXTCHANGEDP, /* text was modified in Insert mode with popup ! menu visible */ ! EVENT_CMDUNDEFINED, /* command undefined */ ! EVENT_OPTIONSET, /* option was set */ ! EVENT_TEXTYANKPOST, /* after some text was yanked */ ! EVENT_TERMINALOPEN, /* after a terminal buffer was created */ NUM_EVENTS /* MUST be the last one */ }; --- 1345,1351 ---- EVENT_WINENTER, /* after entering a window */ EVENT_WINLEAVE, /* before leaving a window */ EVENT_WINNEW, /* when entering a new window */ ! NUM_EVENTS /* MUST be the last one */ }; *** ../vim-8.0.1596/src/version.c 2018-03-11 16:55:30.012616408 +0100 --- src/version.c 2018-03-11 17:00:34.974757212 +0100 *************** *** 768,769 **** --- 768,771 ---- { /* Add new patch number below this line */ + /**/ + 1597, /**/ -- No engineer can take a shower without wondering if some sort of Teflon coating would make showering unnecessary. (Scott Adams - The Dilbert principle) /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ /// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ \\\ an exciting new programming language -- http://www.Zimbu.org /// \\\ help me help AIDS victims -- http://ICCF-Holland.org ///