Add .clang-format file and make-rule - libgrapheme - unicode string library
 (HTM) git clone git://git.suckless.org/libgrapheme
 (DIR) Log
 (DIR) Files
 (DIR) Refs
 (DIR) README
 (DIR) LICENSE
       ---
 (DIR) commit 50efb9a3396588e6e1266f51ec5446a9fa8013ea
 (DIR) parent 3a735213d6da553d9235c5cad2732048242ada97
 (HTM) Author: Laslo Hunhold <dev@frign.de>
       Date:   Tue, 15 Nov 2022 15:35:01 +0100
       
       Add .clang-format file and make-rule
       
       This is inspired by OpenBSD KNF and the common suckless style approach
       (with possible deviations). Tabs are used for indentation, spaces for
       alignment.
       
       Signed-off-by: Laslo Hunhold <dev@frign.de>
       
       Diffstat:
         A .clang-format                       |     138 ++++++++++++++++++++++++++++++
         M Makefile                            |       5 ++++-
       
       2 files changed, 142 insertions(+), 1 deletion(-)
       ---
 (DIR) diff --git a/.clang-format b/.clang-format
       @@ -0,0 +1,138 @@
       +AccessModifierOffset: 0
       +AlignAfterOpenBracket: Align
       +AlignArrayOfStructures: None
       +AlignConsecutiveAssignments:
       +  Enabled: false
       +AlignConsecutiveBitFields:
       +  Enabled: true
       +  AcrossEmptyLines: false
       +  AcrossComments: false
       +AlignConsecutiveDeclarations:
       +  Enabled: false
       +AlignConsecutiveMacros:
       +  Enabled: true
       +  AcrossEmptyLines: false
       +  AcrossComments: false
       +AlignEscapedNewlines: Right
       +AlignOperands: Align
       +AlignTrailingComments: true
       +#  Kind: Always
       +#  OverEmptyLines: 1
       +AllowAllArgumentsOnNextLine: true
       +AllowAllParametersOfDeclarationOnNextLine: true
       +AllowShortBlocksOnASingleLine: Never
       +AllowShortCaseLabelsOnASingleLine: false
       +AllowShortEnumsOnASingleLine: false
       +AllowShortFunctionsOnASingleLine: None
       +AllowShortIfStatementsOnASingleLine: Never
       +AllowShortLambdasOnASingleLine: None
       +AllowShortLoopsOnASingleLine: false
       +AlwaysBreakAfterReturnType: TopLevelDefinitions
       +AlwaysBreakBeforeMultilineStrings: false
       +AlwaysBreakTemplateDeclarations: Yes
       +AttributeMacros: []
       +BinPackArguments: true
       +BinPackParameters: true
       +BitFieldColonSpacing: Both
       +BreakAfterJavaFieldAnnotations: false
       +#BreakArrays: false
       +BreakBeforeBinaryOperators: None
       +BreakBeforeBraces: WebKit
       +BreakBeforeConceptDeclarations: Always
       +#BreakBeforeInlineASMColon: Always
       +BreakBeforeTernaryOperators: false
       +BreakConstructorInitializers: AfterColon
       +BreakInheritanceList: AfterComma
       +BreakStringLiterals: true
       +ColumnLimit: 80
       +CommentPragmas: ""
       +CompactNamespaces: false
       +ConstructorInitializerIndentWidth: 8
       +ContinuationIndentWidth: 8
       +Cpp11BracedListStyle: false
       +DeriveLineEnding: false
       +DerivePointerAlignment: false
       +DisableFormat: false
       +EmptyLineAfterAccessModifier: Never
       +EmptyLineBeforeAccessModifier: Never
       +FixNamespaceComments: true
       +ForEachMacros: []
       +IfMacros: []
       +IncludeBlocks: Preserve
       +IncludeIsMainRegex: ""
       +IncludeIsMainSourceRegex: ""
       +IndentAccessModifiers: false
       +IndentCaseBlocks: false
       +IndentCaseLabels: false
       +IndentExternBlock: NoIndent
       +IndentGotoLabels: false
       +IndentPPDirectives: BeforeHash
       +IndentRequiresClause: false
       +IndentWidth: 8
       +IndentWrappedFunctionNames: false
       +InsertBraces: true
       +InsertTrailingCommas: None
       +JavaImportGroups: []
       +JavaScriptQuotes: Double
       +JavaScriptWrapImports: true
       +KeepEmptyLinesAtTheStartOfBlocks: false
       +LambdaBodyIndentation: Signature
       +Language: Cpp
       +MacroBlockBegin: ""
       +MacroBlockEnd: ""
       +MaxEmptyLinesToKeep: 1
       +NamespaceIndentation: All
       +NamespaceMacros: []
       +ObjCBinPackProtocolList: Never
       +ObjCBlockIndentWidth: 8
       +ObjCBreakBeforeNestedBlockParam: true
       +ObjCSpaceAfterProperty: true
       +ObjCSpaceBeforeProtocolList: true
       +PPIndentWidth: 0
       +PackConstructorInitializers: Never
       +PointerAlignment: Right
       +QualifierAlignment: Left
       +RawStringFormats: []
       +ReferenceAlignment: Pointer
       +ReflowComments: true
       +RemoveBracesLLVM: false
       +#RemoveSemicolon: false
       +RequiresClausePosition: OwnLine
       +#RequiresExpressionIndentation: Keyword
       +SeparateDefinitionBlocks: Always
       +ShortNamespaceLines: 0
       +SortIncludes: CaseSensitive
       +SortJavaStaticImport: Before
       +SortUsingDeclarations: true
       +SpaceAfterCStyleCast: false
       +SpaceAfterLogicalNot: false
       +SpaceAfterTemplateKeyword: false
       +SpaceAroundPointerQualifiers: Before
       +SpaceBeforeAssignmentOperators: true
       +SpaceBeforeCaseColon: false
       +SpaceBeforeCpp11BracedList: true
       +SpaceBeforeCtorInitializerColon: true
       +SpaceBeforeInheritanceColon: true
       +SpaceBeforeParens: ControlStatements
       +SpaceBeforeRangeBasedForLoopColon: true
       +SpaceBeforeSquareBrackets: false
       +SpaceInEmptyBlock: false
       +SpaceInEmptyParentheses: false
       +SpacesBeforeTrailingComments: 4
       +SpacesInAngles: Never
       +SpacesInCStyleCastParentheses: false
       +SpacesInConditionalStatement: false
       +SpacesInContainerLiterals: true
       +SpacesInLineCommentPrefix:
       +  Minimum: 1
       +  Maximum: 1
       +SpacesInParentheses: false
       +SpacesInSquareBrackets: false
       +Standard: Auto
       +StatementAttributeLikeMacros: []
       +StatementMacros: []
       +TabWidth: 8
       +TypenameMacros: []
       +UseCRLF: false
       +UseTab: AlignWithSpaces
       +#WhitespaceSensitiveMacros: []
 (DIR) diff --git a/Makefile b/Makefile
       @@ -360,4 +360,7 @@ dist:
                tar -cf - "libgrapheme-$(VERSION)" | gzip -c > "libgrapheme-$(VERSION).tar.gz"
                rm -rf "libgrapheme-$(VERSION)"
        
       -.PHONY: all benchmark test install uninstall clean clean-data dist
       +format:
       +        clang-format -i grapheme.h $(BENCHMARK:=.c) benchmark/util.c benchmark/util.h $(GEN:=.c) gen/util.c gen/types.h gen/util.h $(SRC:=.c) src/util.h $(TEST:=.c) test/util.c test/util.h
       +
       +.PHONY: all benchmark test install uninstall clean clean-data dist format