patch 8.0.1206: no autocmd for entering or leaving the command line

Problem:    No autocmd for entering or leaving the command line.
Solution:   Add CmdlineEnter and CmdlineLeave.
diff --git a/src/ex_getln.c b/src/ex_getln.c
index 9f7dad9..ceeeaf8 100644
--- a/src/ex_getln.c
+++ b/src/ex_getln.c
@@ -145,6 +145,19 @@
 static void set_search_match(pos_T *t);
 #endif
 
+
+#ifdef FEAT_AUTOCMD
+    static void
+trigger_cmd_autocmd(int typechar, int evt)
+{
+    char_u	typestr[2];
+
+    typestr[0] = typechar;
+    typestr[1] = NUL;
+    apply_autocmds(evt, typestr, typestr, FALSE, curbuf);
+}
+#endif
+
 /*
  * getcmdline() - accept a command line starting with firstc.
  *
@@ -222,6 +235,9 @@
      * custom status line may invoke ":normal". */
     struct cmdline_info save_ccline;
 #endif
+#ifdef FEAT_AUTOCMD
+    int		cmdline_type;
+#endif
 
 #ifdef FEAT_EVAL
     if (firstc == -1)
@@ -349,6 +365,12 @@
      * terminal mode set to cooked.  Need to set raw mode here then. */
     settmode(TMODE_RAW);
 
+#ifdef FEAT_AUTOCMD
+    /* Trigger CmdlineEnter autocommands. */
+    cmdline_type = firstc == NUL ? '-' : firstc;
+    trigger_cmd_autocmd(cmdline_type, EVENT_CMDLINEENTER);
+#endif
+
 #ifdef FEAT_CMDHIST
     init_history();
     hiscnt = hislen;		/* set hiscnt to impossible history value */
@@ -2085,6 +2107,11 @@
     if (some_key_typed)
 	need_wait_return = FALSE;
 
+#ifdef FEAT_AUTOCMD
+    /* Trigger CmdlineLeave autocommands. */
+    trigger_cmd_autocmd(cmdline_type, EVENT_CMDLINELEAVE);
+#endif
+
     State = save_State;
 #ifdef USE_IM_CONTROL
     if (b_im_ptr != NULL && *b_im_ptr != B_IMODE_LMAP)
@@ -6834,9 +6861,6 @@
     linenr_T		lnum;
     int			histtype;
     garray_T		winsizes;
-#ifdef FEAT_AUTOCMD
-    char_u		typestr[2];
-#endif
     int			save_restart_edit = restart_edit;
     int			save_State = State;
     int			save_exmode = exmode_active;
@@ -6965,9 +6989,7 @@
 
 # ifdef FEAT_AUTOCMD
     /* Trigger CmdwinEnter autocommands. */
-    typestr[0] = cmdwin_type;
-    typestr[1] = NUL;
-    apply_autocmds(EVENT_CMDWINENTER, typestr, typestr, FALSE, curbuf);
+    trigger_cmd_autocmd(cmdwin_type, EVENT_CMDWINENTER);
     if (restart_edit != 0)	/* autocmd with ":startinsert" */
 	stuffcharReadbuff(K_NOP);
 # endif
@@ -6990,7 +7012,7 @@
 #  endif
 
     /* Trigger CmdwinLeave autocommands. */
-    apply_autocmds(EVENT_CMDWINLEAVE, typestr, typestr, FALSE, curbuf);
+    trigger_cmd_autocmd(cmdwin_type, EVENT_CMDWINLEAVE);
 
 #  ifdef FEAT_FOLDING
     /* Restore KeyTyped in case it is modified by autocommands */