diff --git a/src/charset.c b/src/charset.c
index 9aa402a..45b16aa 100644
--- a/src/charset.c
+++ b/src/charset.c
@@ -827,20 +827,20 @@
 
     if (cts.cts_text_prop_count)
     {
-      int write_idx = 0;
-      for (int read_idx = 0; read_idx < cts.cts_text_prop_count; read_idx++)
-      {
-          textprop_T *tp = &cts.cts_text_props[read_idx];
-          if (tp->tp_col != MAXCOL)
-          {
-              if (read_idx != write_idx)
-                  cts.cts_text_props[write_idx] = *tp;
-              write_idx++;
-          }
-      }
-      cts.cts_text_prop_count = write_idx;
-      if (cts.cts_text_prop_count == 0)
-          VIM_CLEAR(cts.cts_text_props);
+	int write_idx = 0;
+	for (int read_idx = 0; read_idx < cts.cts_text_prop_count; read_idx++)
+	{
+	    textprop_T *tp = &cts.cts_text_props[read_idx];
+	    if (tp->tp_col != MAXCOL)
+	    {
+		if (read_idx != write_idx)
+		    cts.cts_text_props[write_idx] = *tp;
+		write_idx++;
+	    }
+	}
+	cts.cts_text_prop_count = write_idx;
+	if (cts.cts_text_prop_count == 0)
+	    VIM_CLEAR(cts.cts_text_props);
     }
 
     win_linetabsize_cts(&cts, (colnr_T)MAXCOL);
