diff --git a/src/getchar.c b/src/getchar.c
index e82155f..1f7c7d1 100644
--- a/src/getchar.c
+++ b/src/getchar.c
@@ -4399,7 +4399,9 @@
 
 /*
  * Check for an abbreviation.
- * Cursor is at ptr[col]. When inserting, mincol is where insert started.
+ * Cursor is at ptr[col].
+ * When inserting, mincol is where insert started.
+ * For the command line, mincol is what is to be skipped over.
  * "c" is the character typed before check_abbr was called.  It may have
  * ABBR_OFF added to avoid prepending a CTRL-V to it.
  *
diff --git a/src/gui_mac.c b/src/gui_mac.c
index 1677d6e..d2279ec 100644
--- a/src/gui_mac.c
+++ b/src/gui_mac.c
@@ -61,13 +61,13 @@
 # define USE_CARBONKEYHANDLER
 
 static int im_is_active = FALSE;
-#if 0
+# if 0
     /* TODO: Implement me! */
 static int im_start_row = 0;
 static int im_start_col = 0;
-#endif
+# endif
 
-#define NR_ELEMS(x)	(sizeof(x) / sizeof(x[0]))
+# define NR_ELEMS(x)	(sizeof(x) / sizeof(x[0]))
 
 static TSMDocumentID gTSMDocument;
 
@@ -6243,11 +6243,11 @@
     void
 im_set_position(int row, int col)
 {
-#if 0
+# if 0
     /* TODO: Implement me! */
     im_start_row = row;
     im_start_col = col;
-#endif
+# endif
 }
 
 static ScriptLanguageRecord gTSLWindow;
diff --git a/src/po/it.po b/src/po/it.po
index be7ead0..550c2c7 100644
--- a/src/po/it.po
+++ b/src/po/it.po
@@ -14,15 +14,15 @@
 "Project-Id-Version: vim 8.1\n"
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2018-05-12 16:07+0200\n"
-"PO-Revision-Date:  2018-05-13 21:50+0200\n"
+"PO-Revision-Date:  2018-05-13 22:32+0200\n"
 "Last-Translator:   Antonio Colombo   <azc100@gmail.com>\n"
 "Language-Team:     Antonio Colombo   <azc100@gmail.com>\n"
+"                   Vlad Sandrini     <vlad.gently@gmail.com>\n"
+"                   Luciano Montanaro <mikelima@cirulla.net>\n"
 "Language: Italian\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=ISO_8859-1\n"
 "Content-Transfer-Encoding: 8-bit\n"
-"                   Vlad Sandrini     <vlad.gently@gmail.com>\n"
-"                   Luciano Montanaro <mikelima@cirulla.net>\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
 msgid "E831: bf_key_init() called with empty password"
diff --git a/src/testdir/test_cscope.vim b/src/testdir/test_cscope.vim
index 4d776e9..c6e54d7 100644
--- a/src/testdir/test_cscope.vim
+++ b/src/testdir/test_cscope.vim
@@ -36,7 +36,7 @@
 
     " Test 1: Find this C-Symbol
     for cmd in ['cs find s main', 'cs find 0 main']
-      let a=execute(cmd)
+      let a = execute(cmd)
       " Test 1.1 test where it moves the cursor
       call assert_equal('main(void)', getline('.'))
       " Test 1.2 test the output of the :cs command
@@ -51,21 +51,21 @@
 
     " Test 3: Find functions called by this function
     for cmd in ['cs find d test_mf_hash', 'cs find 2 test_mf_hash']
-      let a=execute(cmd)
+      let a = execute(cmd)
       call assert_match('\n(1 of 42): <<mf_hash_init>> mf_hash_init(&ht);', a)
       call assert_equal('    mf_hash_init(&ht);', getline('.'))
     endfor
 
     " Test 4: Find functions calling this function
     for cmd in ['cs find c test_mf_hash', 'cs find 3 test_mf_hash']
-      let a=execute(cmd)
+      let a = execute(cmd)
       call assert_match('\n(1 of 1): <<main>> test_mf_hash();', a)
       call assert_equal('    test_mf_hash();', getline('.'))
     endfor
 
     " Test 5: Find this text string
     for cmd in ['cs find t Bram', 'cs find 4 Bram']
-      let a=execute(cmd)
+      let a = execute(cmd)
       call assert_match('(1 of 1): <<<unknown>>>  \* VIM - Vi IMproved^Iby Bram Moolenaar', a)
       call assert_equal(' * VIM - Vi IMproved	by Bram Moolenaar', getline('.'))
     endfor
@@ -73,7 +73,7 @@
     " Test 6: Find this egrep pattern
     " test all matches returned by cscope
     for cmd in ['cs find e ^\#includ.', 'cs find 6 ^\#includ.']
-      let a=execute(cmd)
+      let a = execute(cmd)
       call assert_match('\n(1 of 3): <<<unknown>>> #include <assert.h>', a)
       call assert_equal('#include <assert.h>', getline('.'))
       cnext
@@ -84,7 +84,7 @@
     endfor
 
     " Test 7: Find the same egrep pattern using lcscope this time.
-    let a=execute('lcs find e ^\#includ.')
+    let a = execute('lcs find e ^\#includ.')
     call assert_match('\n(1 of 3): <<<unknown>>> #include <assert.h>', a)
     call assert_equal('#include <assert.h>', getline('.'))
     lnext
@@ -96,7 +96,7 @@
     " Test 8: Find this file
     for cmd in ['cs find f Xmemfile_test.c', 'cs find 7 Xmemfile_test.c']
       enew
-      let a=execute(cmd)
+      let a = execute(cmd)
       call assert_true(a =~ '"Xmemfile_test.c" \d\+L, \d\+C')
       call assert_equal('Xmemfile_test.c', @%)
     endfor
@@ -104,7 +104,7 @@
     " Test 9: Find files #including this file
     for cmd in ['cs find i assert.h', 'cs find 8 assert.h']
       enew
-      let a=execute(cmd)
+      let a = execute(cmd)
       let alines = split(a, '\n', 1)
       call assert_equal('', alines[0])
       call assert_true(alines[1] =~ '"Xmemfile_test.c" \d\+L, \d\+C')
@@ -118,11 +118,11 @@
     " Test 11: Find places where this symbol is assigned a value
     " this needs a cscope >= 15.8
     " unfortunately, Travis has cscope version 15.7
-    let cscope_version=systemlist('cscope --version')[0]
-    let cs_version=str2float(matchstr(cscope_version, '\d\+\(\.\d\+\)\?'))
+    let cscope_version = systemlist('cscope --version')[0]
+    let cs_version = str2float(matchstr(cscope_version, '\d\+\(\.\d\+\)\?'))
     if cs_version >= 15.8
       for cmd in ['cs find a item', 'cs find 9 item']
-        let a=execute(cmd)
+        let a = execute(cmd)
         call assert_equal(['', '(1 of 4): <<test_mf_hash>> item = (mf_hashitem_T *)lalloc_clear(sizeof(mf_hashtab_T), FALSE);'], split(a, '\n', 1))
         call assert_equal('	item = (mf_hashitem_T *)lalloc_clear(sizeof(mf_hashtab_T), FALSE);', getline('.'))
         cnext
@@ -135,18 +135,18 @@
     endif
 
     " Test 12: leading whitespace is not removed for cscope find text
-    let a=execute('cscope find t     test_mf_hash')
+    let a = execute('cscope find t     test_mf_hash')
     call assert_equal(['', '(1 of 1): <<<unknown>>>     test_mf_hash();'], split(a, '\n', 1))
     call assert_equal('    test_mf_hash();', getline('.'))
 
     " Test 13: test with scscope
-    let a=execute('scs find t Bram')
+    let a = execute('scs find t Bram')
     call assert_match('(1 of 1): <<<unknown>>>  \* VIM - Vi IMproved^Iby Bram Moolenaar', a)
     call assert_equal(' * VIM - Vi IMproved	by Bram Moolenaar', getline('.'))
 
     " Test 14: cscope help
     for cmd in ['cs', 'cs help', 'cs xxx']
-      let a=execute(cmd)
+      let a = execute(cmd)
       call assert_match('^cscope commands:\n', a)
       call assert_match('\nadd  :', a)
       call assert_match('\nfind :', a)
@@ -155,25 +155,25 @@
       call assert_match('\nreset: Reinit all connections', a)
       call assert_match('\nshow : Show connections', a)
     endfor
-    let a=execute('scscope help')
+    let a = execute('scscope help')
     call assert_match('This cscope command does not support splitting the window\.', a)
 
     " Test 15: reset connections
-    let a=execute('cscope reset')
+    let a = execute('cscope reset')
     call assert_match('\nAdded cscope database.*Xcscope.out (#0)', a)
     call assert_match('\nAll cscope databases reset', a)
 
     " Test 16: cscope show
-    let a=execute('cscope show')
+    let a = execute('cscope show')
     call assert_match('\n 0 \d\+.*Xcscope.out\s*<none>', a)
 
     " Test 17: cstag and 'csto' option
     set csto=0
-    let a=execute('cstag TEST_COUNT')
+    let a = execute('cstag TEST_COUNT')
     call assert_match('(1 of 1): <<TEST_COUNT>> #define TEST_COUNT 50000', a)
     call assert_equal('#define TEST_COUNT 50000', getline('.'))
     set csto=1
-    let a=execute('cstag index_to_key')
+    let a = execute('cstag index_to_key')
     call assert_match('(1 of 1): <<index_to_key>> #define index_to_key(i) ((i) ^ 15167)', a)
     call assert_equal('#define index_to_key(i) ((i) ^ 15167)', getline('.'))
     call assert_fails('cstag xxx', 'E257:')
@@ -183,10 +183,10 @@
     set nocst
     call assert_fails('tag TEST_COUNT', 'E426:')
     set cst
-    let a=execute('tag TEST_COUNT')
+    let a = execute('tag TEST_COUNT')
     call assert_match('(1 of 1): <<TEST_COUNT>> #define TEST_COUNT 50000', a)
     call assert_equal('#define TEST_COUNT 50000', getline('.'))
-    let a=execute('tags')
+    let a = execute('tags')
     call assert_match('1  1 TEST_COUNT\s\+\d\+\s\+#define index_to_key', a)
 
     " Test 19: this should trigger call to cs_print_tags()
@@ -198,17 +198,17 @@
     call assert_fails('cscope kill 2', 'E261:')
     call assert_fails('cscope kill xxx', 'E261:')
 
-    let a=execute('cscope kill 0')
+    let a = execute('cscope kill 0')
     call assert_match('cscope connection 0 closed', a)
 
     cscope add Xcscope.out
-    let a=execute('cscope kill Xcscope.out')
+    let a = execute('cscope kill Xcscope.out')
     call assert_match('cscope connection Xcscope.out closed', a)
 
     cscope add Xcscope.out .
-    let a=execute('cscope kill -1')
+    let a = execute('cscope kill -1')
     call assert_match('cscope connection .*Xcscope.out closed', a)
-    let a=execute('cscope kill -1')
+    let a = execute('cscope kill -1')
     call assert_equal('', a)
 
     " Test 21: 'csprg' option
@@ -220,7 +220,7 @@
     " Test 22: multiple cscope connections
     cscope add Xcscope.out
     cscope add Xcscope2.out . -C
-    let a=execute('cscope show')
+    let a = execute('cscope show')
     call assert_match('\n 0 \d\+.*Xcscope.out\s*<none>', a)
     call assert_match('\n 1 \d\+.*Xcscope2.out\s*\.', a)
 
@@ -271,7 +271,7 @@
   call assert_equal(cscope_connection(), 0)
 
   call assert_fails('cscope find s main', 'E567:')
-  let a=execute('cscope show')
+  let a = execute('cscope show')
   call assert_match('no cscope connections', a)
 endfunc
 
diff --git a/src/version.c b/src/version.c
index 145167d..6a45c86 100644
--- a/src/version.c
+++ b/src/version.c
@@ -762,6 +762,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    1845,
+/**/
     1844,
 /**/
     1843,
