#BasedOnStyle : WebKit
#AccessModifierOffset : -4
AlignAfterOpenBracket: Align
AlignConsecutiveAssignments: true
AlignConsecutiveBitFields: true
AlignConsecutiveDeclarations: true
AlignConsecutiveMacros: true
AlignEscapedNewlines: Right
AlignOperands: AlignAfterOperator
AlignTrailingComments: true
AllowAllArgumentsOnNextLine: true
AllowAllConstructorInitializersOnNextLine: true
AllowAllParametersOfDeclarationOnNextLine: true
AllowShortBlocksOnASingleLine: Never
AllowShortCaseLabelsOnASingleLine: false
AllowShortEnumsOnASingleLine: false
AllowShortFunctionsOnASingleLine: Inline
AllowShortIfStatementsOnASingleLine: Never
AllowShortLambdasOnASingleLine: Empty
AllowShortLoopsOnASingleLine: false
AlwaysBreakAfterReturnType: None
AlwaysBreakBeforeMultilineStrings: false
AlwaysBreakTemplateDeclarations: Yes
AttributeMacros: ['NONENULL','gcc_inline','extern','SCCP_API','SCCP_CALL','__PURE__','__CONST__','__NONNULL','__attribute__']
BinPackArguments: true
BinPackParameters: true
BitFieldColonSpacing: None

BreakBeforeBraces: Custom
BraceWrapping:
  AfterCaseLabel:        true
  AfterClass:            true
  AfterControlStatement: Never
  AfterEnum:             true
  AfterFunction:         true
  AfterNamespace:        true
  AfterObjCDeclaration:  false
  AfterStruct:           false
  AfterUnion:            false
  AfterExternBlock:      true
  BeforeCatch:           false
  BeforeElse:            false
  BeforeLambdaBody:      false
  BeforeWhile:           false
  IndentBraces:          true
  SplitEmptyFunction:    false
  SplitEmptyRecord:      false
  SplitEmptyNamespace:   false
BreakAfterJavaFieldAnnotations: false
BreakBeforeBinaryOperators: NonAssignment
BreakBeforeBraces: Linux
BreakBeforeTernaryOperators: true
BreakConstructorInitializers: AfterColon
BreakInheritanceList: BeforeComma
BreakStringLiterals: true
ColumnLimit:     225
CommentPragmas:  '^ IWYU pragma:'
CompactNamespaces: false
ConstructorInitializerAllOnOneLineOrOnePerLine: true
ConstructorInitializerIndentWidth: 8
ContinuationIndentWidth: 4
Cpp11BracedListStyle: false
DeriveLineEnding: false
DerivePointerAlignment: false
DisableFormat:   false
ExperimentalAutoDetectBinPacking: false
FixNamespaceComments: true
ForEachMacros: [
  'SCCP_LIST_TRAVERSE',
  'SCCP_RWLIST_TRAVERSE',
  'SCCP_LIST_TRAVERSE_BACKWARDS',
  'SCCP_RWLIST_TRAVERSE_BACKWARDS',
  'SCCP_LIST_TRAVERSE_SAFE_BEGIN',
  'SCCP_RWLIST_TRAVERSE_SAFE_BEGIN',
  'SCCP_LIST_TRAVERSE_BACKWARDS_SAFE_BEGIN',
  'SCCP_RWLIST_TRAVERSE_BACKWARDS_SAFE_BEGIN',
  'SCCP_LIST_TRAVERSE_SAFE_END',
  'SCCP_RWLIST_TRAVERSE_SAFE_END'
]
IncludeBlocks: Preserve
IncludeCategories:
  - Regex:           'config.h'     	# primary local headers
    Priority:        1
  - Regex:           'common.h'     	# primary local headers
    Priority:        2
  - Regex:           '.*'           	# any local headers
    Priority:        3
  - Regex:           'pbx_impl/.*'  	# any local headers
    Priority:        4
  - Regex:           '^<[a-z]*>'    	# language headers like <algorithm>
    Priority:        5
  - Regex:           '^<.*\.h>'     	# platform headers like <unistd.h>
    Priority:        6
  - Regex:           '^<asterisk/.*'	# asterisk headers
    Priority:        7
  - Regex:           '^<.*'         	# other external headers
    Priority:        8
IndentCaseBlocks: true
IndentCaseLabels: true
IndentExternBlock: AfterExternBlock
IndentGotoLabels: false
IndentPPDirectives: AfterHash
IndentWidth:     8
IndentWrappedFunctionNames: true
#InsertTrailingCommas: Wrapped
KeepEmptyLinesAtTheStartOfBlocks: false
Language: Cpp
#MacroBlockBegin: ''
#MacroBlockEnd:   ''
MaxEmptyLinesToKeep: 1
NamespaceIndentation: Inner
#NamespaceMacros: ''
PenaltyBreakAssignment: 100
PenaltyBreakBeforeFirstCallParameter: 100
PenaltyBreakComment: 300
PenaltyBreakFirstLessLess: 120
PenaltyBreakString: 1000
PenaltyBreakTemplateDeclaration: 100
PenaltyExcessCharacter: 1000000
PenaltyReturnTypeOnItsOwnLine: 200
PointerAlignment: Middle
RawStringFormats:
  - Language: Cpp
    Delimiters:
       - 'cc'
       - 'cpp'
    BasedOnStyle: llvm
    CanonicalDelimiter: 'cc'
ReflowComments:  true
SortIncludes:    false
SortUsingDeclarations: true
SpaceAfterCStyleCast: false
SpaceAfterLogicalNot: false
SpaceAfterTemplateKeyword: false
SpaceAroundPointerQualifiers: Both
SpaceBeforeAssignmentOperators: true
SpaceBeforeCpp11BracedList: false
SpaceBeforeCtorInitializerColon: false
SpaceBeforeInheritanceColon: true
SpaceBeforeParens: ControlStatementsExceptForEachMacros
SpaceBeforeRangeBasedForLoopColon: false
SpaceBeforeSquareBrackets: false 
SpaceInEmptyBlock: false
SpaceInEmptyParentheses: false
SpacesBeforeTrailingComments: 40
SpacesInAngles:  false
SpacesInCStyleCastParentheses: false
SpacesInConditionalStatement: false
SpacesInContainerLiterals: false
SpacesInParentheses: false
SpacesInSquareBrackets: false
Standard:        Latest
StatementMacros: []
TabWidth:        8
TypenameMacros: [
  'SCCP_LIST_HEAD ', 
  'SCCP_RWLIST_HEAD', 
  'SCCP_LIST_ENTRY', 
  'SCCP_RWLIST_ENTRY', 
  'SCCP_API', 
  'SCCP_CALL', 
  'sccp_push_result_t', 
  'boolean_t', 
  'sessionPtr', 
  'devicePtr', 
  'linePtr', 
  'channelPtr', 
  'lineDevicePtr', 
  'conferencePtr', 
  'constSessionPtr', 
  'constDevicePtr', 
  'constLinePtr', 
  'constChannelPtr', 
  'constLineDevicePtr', 
  'constConferencePtr', 
  'messagePtr', 
  'constMessagePtr',
]
UseCRLF: false
#UseTab:  ForContinuationAndIndentation
UseTab:  AlignWithSpaces
WhitespaceSensitiveMacros: []
