diff --git a/src/cindent.c b/src/cindent.c
index eb7102e..2170980 100644
--- a/src/cindent.c
+++ b/src/cindent.c
@@ -590,7 +590,7 @@
 /*
  * Recognize a switch label: "case .*:" or "default:".
  */
-     static int
+    static int
 cin_iscase(
     char_u *s,
     int strict) // Allow relaxed check of case statement for JS
@@ -1296,7 +1296,7 @@
     static int
 cin_isif(char_u *p)
 {
- return (STRNCMP(p, "if", 2) == 0 && !vim_isIDc(p[2]));
+    return (STRNCMP(p, "if", 2) == 0 && !vim_isIDc(p[2]));
 }
 
     static int
@@ -2415,15 +2415,15 @@
 			&& trypos->lnum == our_paren_pos.lnum
 			&& trypos->col == our_paren_pos.col)
 		{
-			amount = get_indent_lnum(lnum);	// XXX
+		    amount = get_indent_lnum(lnum);	// XXX
 
-			if (theline[0] == ')')
-			{
-			    if (our_paren_pos.lnum != lnum
-						       && cur_amount > amount)
-				cur_amount = amount;
-			    amount = -1;
-			}
+		    if (theline[0] == ')')
+		    {
+			if (our_paren_pos.lnum != lnum
+				&& cur_amount > amount)
+			    cur_amount = amount;
+			amount = -1;
+		    }
 		    break;
 		}
 	    }
@@ -3961,7 +3961,7 @@
 	{
 	    case '*': try_match = (*look == '*'); break;
 	    case '!': try_match = (*look == '!'); break;
-	     default: try_match = (*look != '*'); break;
+	    default: try_match = (*look != '*'); break;
 	}
 	if (*look == '*' || *look == '!')
 	    ++look;
diff --git a/src/globals.h b/src/globals.h
index b902e03..7006364 100644
--- a/src/globals.h
+++ b/src/globals.h
@@ -1012,9 +1012,10 @@
 #define AUCMD_WIN_COUNT 5
 
 typedef struct {
-  win_T	*auc_win;	// Window used in aucmd_prepbuf().  When not NULL the
-			// window has been allocated.
-  int	auc_win_used;	// This auc_win is being used.
+    // Window used in aucmd_prepbuf().  When not NULL the window has been
+    // allocated.
+    win_T	*auc_win;
+    int		auc_win_used;	// This auc_win is being used.
 } aucmdwin_T;
 
 EXTERN aucmdwin_T aucmd_win[AUCMD_WIN_COUNT];
diff --git a/src/terminal.c b/src/terminal.c
index 471ab3a..9f94825 100644
--- a/src/terminal.c
+++ b/src/terminal.c
@@ -53,10 +53,10 @@
 
 // This is VTermScreenCell without the characters, thus much smaller.
 typedef struct {
-  VTermScreenCellAttrs	attrs;
-  char			width;
-  VTermColor		fg;
-  VTermColor		bg;
+    VTermScreenCellAttrs	attrs;
+    char			width;
+    VTermColor			fg;
+    VTermColor			bg;
 } cellattr_T;
 
 typedef struct sb_line_S {
@@ -3634,15 +3634,15 @@
 }
 
 static VTermScreenCallbacks screen_callbacks = {
-  handle_damage,	// damage
-  handle_moverect,	// moverect
-  handle_movecursor,	// movecursor
-  handle_settermprop,	// settermprop
-  handle_bell,		// bell
-  handle_resize,	// resize
-  handle_pushline,	// sb_pushline
-  NULL,			// sb_popline
-  NULL			// sb_clear
+    handle_damage,		// damage
+    handle_moverect,		// moverect
+    handle_movecursor,		// movecursor
+    handle_settermprop,		// settermprop
+    handle_bell,		// bell
+    handle_resize,		// resize
+    handle_pushline,		// sb_pushline
+    NULL,			// sb_popline
+    NULL			// sb_clear
 };
 
 /*
@@ -4858,13 +4858,13 @@
 }
 
 static VTermStateFallbacks state_fallbacks = {
-  NULL,		// control
-  parse_csi,	// csi
-  parse_osc,	// osc
-  NULL,		// dcs
-  NULL,		// apc
-  NULL,		// pm
-  NULL		// sos
+    NULL,		// control
+    parse_csi,		// csi
+    parse_osc,		// osc
+    NULL,		// dcs
+    NULL,		// apc
+    NULL,		// pm
+    NULL		// sos
 };
 
 /*
diff --git a/src/version.c b/src/version.c
index 7a67afd..64308dc 100644
--- a/src/version.c
+++ b/src/version.c
@@ -705,6 +705,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    1364,
+/**/
     1363,
 /**/
     1362,
