BasedOnStyle: Google
MaxEmptyLinesToKeep: 3
AllowShortIfStatementsOnASingleLine: false
AllowShortLoopsOnASingleLine: false
DerivePointerAlignment: false
PointerAlignment: Right
InsertBraces: true
# TODO(davidben): The default for Google style is now Regroup, but the default
# IncludeCategories does not recognize <openssl/header.h>. We should
# reconfigure IncludeCategories to match. For now, keep it at Preserve.
IncludeBlocks: Preserve
TypenameMacros: ['LHASH_OF', 'STACK_OF']
StatementMacros:
  - "DECLARE_ASN1_ALLOC_FUNCTIONS"
  - "DECLARE_ASN1_ALLOC_FUNCTIONS_name"
  - "DECLARE_ASN1_ENCODE_FUNCTIONS"
  - "DECLARE_ASN1_ENCODE_FUNCTIONS_const"
  - "DECLARE_ASN1_FUNCTIONS"
  - "DECLARE_ASN1_FUNCTIONS_const"
  - "DECLARE_ASN1_FUNCTIONS_fname"
  - "DECLARE_ASN1_FUNCTIONS_name"
  - "DECLARE_PEM_read"
  - "DECLARE_PEM_read_bio"
  - "DECLARE_PEM_read_fp"
  - "DECLARE_PEM_rw"
  - "DECLARE_PEM_rw_cb"
  - "DECLARE_PEM_rw_const"
  - "DECLARE_PEM_write"
  - "DECLARE_PEM_write_bio"
  - "DECLARE_PEM_write_bio_const"
  - "DECLARE_PEM_write_cb"
  - "DECLARE_PEM_write_cb_bio"
  - "DECLARE_PEM_write_cb_fp"
  - "DECLARE_PEM_write_const"
  - "DECLARE_PEM_write_fp"
  - "DECLARE_PEM_write_fp_const"
  - "IMPLEMENT_ASN1_ALLOC_FUNCTIONS"
  - "IMPLEMENT_ASN1_ALLOC_FUNCTIONS_fname"
  - "IMPLEMENT_ASN1_ALLOC_FUNCTIONS_pfname"
  - "IMPLEMENT_ASN1_DUP_FUNCTION"
  - "IMPLEMENT_ASN1_DUP_FUNCTION_const"
  - "IMPLEMENT_ASN1_ENCODE_FUNCTIONS_const_fname"
  - "IMPLEMENT_ASN1_ENCODE_FUNCTIONS_fname"
  - "IMPLEMENT_ASN1_FUNCTIONS"
  - "IMPLEMENT_ASN1_FUNCTIONS_const"
  - "IMPLEMENT_ASN1_FUNCTIONS_const_fname"
  - "IMPLEMENT_ASN1_FUNCTIONS_ENCODE_name"
  - "IMPLEMENT_ASN1_FUNCTIONS_fname"
  - "IMPLEMENT_ASN1_FUNCTIONS_name"
  - "IMPLEMENT_ASN1_TYPE_ex"
  - "IMPLEMENT_STATIC_ASN1_ALLOC_FUNCTIONS"
  - "IMPLEMENT_PEM_read"
  - "IMPLEMENT_PEM_read_bio"
  - "IMPLEMENT_PEM_read_fp"
  - "IMPLEMENT_PEM_rw"
  - "IMPLEMENT_PEM_rw_cb"
  - "IMPLEMENT_PEM_rw_const"
  - "IMPLEMENT_PEM_write"
  - "IMPLEMENT_PEM_write_bio"
  - "IMPLEMENT_PEM_write_bio_const"
  - "IMPLEMENT_PEM_write_cb"
  - "IMPLEMENT_PEM_write_cb_bio"
  - "IMPLEMENT_PEM_write_cb_bio_const"
  - "IMPLEMENT_PEM_write_cb_const"
  - "IMPLEMENT_PEM_write_cb_fp"
  - "IMPLEMENT_PEM_write_cb_fp_const"
  - "IMPLEMENT_PEM_write_const"
  - "IMPLEMENT_PEM_write_fp"
  - "IMPLEMENT_PEM_write_fp_const"
  - "ASN1_ADB_END"
  - "ASN1_CHOICE_END"
  - "ASN1_CHOICE_END_cb"
  - "ASN1_ITEM_TEMPLATE_END"
  - "ASN1_SEQUENCE_END"
  - "ASN1_SEQUENCE_END_cb"
  - "ASN1_SEQUENCE_END_enc"
  - "ASN1_SEQUENCE_END_ref"
  # This isn't quite right, but it causes clang-format to do a slightly better
  # job with this macro.
  - "ASN1_EX_TEMPLATE_TYPE"
