patch 8.0.0918: cannot get terminal window cursor shape or attributes

Problem:    Cannot get terminal window cursor shape or attributes.
Solution:   Support cursor shape, attributes and color.
diff --git a/runtime/doc/eval.txt b/runtime/doc/eval.txt
index bf8bae4..de142ee 100644
--- a/runtime/doc/eval.txt
+++ b/runtime/doc/eval.txt
@@ -7939,13 +7939,19 @@
 
 term_getcursor({buf})					*term_getcursor()*
 		Get the cursor position of terminal {buf}. Returns a list with
-		three numbers: [rows, cols, visible].  "rows" and "cols" are
-		one based, the first screen cell is row 1, column 1.
-		"visible" is one when the cursor is visible, zero when it is
-		hidden.
+		two numbers and a dictionary: [rows, cols, dict].
 
-		This is the cursor position of the terminal itself, not of the
-		Vim window.
+		"rows" and "cols" are one based, the first screen cell is row
+		1, column 1.  This is the cursor position of the terminal
+		itself, not of the Vim window.
+
+		"dict" can have these members:
+		   "visible"	one when the cursor is visible, zero when it
+				is hidden.
+		   "blink"	one when the cursor is visible, zero when it
+				is hidden.
+		   "shape"	1 for a block cursor, 2 for underline and 3
+				for a vertical bar.
 
 		{buf} must be the buffer number of a terminal window. If the
 		buffer does not exist or is not a terminal window, an empty
@@ -8035,7 +8041,7 @@
 		    "fg"	foreground color as #rrggbb
 		    "bg"	background color as #rrggbb
 		    "attr"	attributes of the cell, use |term_getattr()|
-		    		to get the individual flags
+				to get the individual flags
 		    "width"	cell width: 1 or 2
 		{only available when compiled with the |+terminal| feature}
 
@@ -8075,7 +8081,7 @@
 		   "term_rows"	     vertical size to use for the terminal,
 				     instead of using 'termsize'
 		   "term_cols"	     horizontal size to use for the terminal,
-		   		     instead of using 'termsize'
+				     instead of using 'termsize'
 		   "vertical"	     split the window vertically
 		   "curwin"	     use the current window, do not split the
 				     window; fails if the current buffer
@@ -8165,7 +8171,7 @@
 		in a way that the test doesn't work properly.
 		When using: >
 			call test_override('starting', 1)
-< 		The value of "starting" is saved.  It is restored by: >
+<		The value of "starting" is saved.  It is restored by: >
 			call test_override('starting', 0)
 
 test_settime({expr})					*test_settime()*