#
-# uncrustify config file for the linux kernel
+# Uncrustify config file for notmuch.
+# Based on uncrustify config file for the linux kernel
 #
 # $Id: linux-indent.cfg 488 2006-09-09 12:44:38Z bengardner $
 # Taken from the uncrustify distribution under license (GPL2+)
 #
-# sample usage:
+# Sample usage:
 #        uncrustify --replace -c uncrustify.cfg foo.c
 #
-#
 
 indent_with_tabs       = 2             # 1=indent to level only, 2=indent with tabs
 align_with_tabs                = TRUE          # use tabs to align
 
 indent_label           = -2            # pos: absolute col, neg: relative column
 
+indent_cmt_with_tabs   = false         # true would align to tabstop always...
+
 #
 # inter-symbol newlines
 #
 # mod_full_brace_do    = remove        # "do a--; while ();" vs "do { a--; } while ();"
 # mod_full_brace_while = remove        # "while (a) a--;" vs "while (a) { a--; }"
 
-#
-# Extra types used in notmuch source.
-# (add more on demand)
 
-type GMimeObject mime_node_t
+# In case some custom types aren't detected properly by uncrustify
+# add those to this section below. For example there are cases where
+# uncrustify doesn't know whether a 'token' is part of pointer type
+# or left operand of a binary multiplication operation.
+
+type GMimeObject GMimeCryptoContext GMimeCipherContext
+type mime_node_t notmuch_message_t
 
 #
 # inter-character spacing options
 # align_pp_define_span = 8;
 # align_pp_define_gap  = 4;
 
-# cmt_star_cont                = FALSE
+cmt_star_cont          = true
 
 # indent_brace         = 0