Select Git revision
-
Damien George authored
Prior to this patch only 'q' and 'Q' type arrays could store big-int values. With this patch any big int that is stored to an array is handled by the big-int implementation, regardless of the typecode of the array. This allows arrays to work with all type sizes on all architectures.
Damien George authoredPrior to this patch only 'q' and 'Q' type arrays could store big-int values. With this patch any big int that is stored to an array is handled by the big-int implementation, regardless of the typecode of the array. This allows arrays to work with all type sizes on all architectures.
fix-multi-decl.py 1.33 KiB
#!/usr/bin/env python3
#
# I prefer to have the closing brace of a multi-line declaration or function call on its
# own line. This is unfortunately not yet supported by clang-format. This script is
# a hack to manually introduce my style.
#
# Tracking for this style in clang-format: https://reviews.llvm.org/D33029
#
# Example
# =======
# This is the style I want:
#
# printf(
# "Hello %s %d\n",
# "World",
# 123
# );
import re
import sys
EXPR = r""" # Indentation is saved to <ws>
^(?P<ws>[ \t]*)(?P<decl>.*\(\n # Opening line, ending with (\n
(?:.*,\n)* # Lines with arguments, all ending with ,\n
.*)\)(?P<final>[); \t]*)\n # Last line with closing brace & optional following characters
(?![ \t]*\).*) # Don't match an already expanded decl
"""
def main():
with open(sys.argv[1], "r") as f:
source = f.read()
fixed = re.sub(
EXPR,
r"\g<ws>\g<decl>\n\g<ws>)\g<final>\n",
source,
flags=re.MULTILINE | re.VERBOSE,
)
# Fix function definitions that can now be pulled into one line
fixed = re.sub(
r"^\)\n{$",
r") {",
fixed,
flags=re.MULTILINE,
)
with open(sys.argv[1], "w") as f:
f.write(fixed)
if __name__ == "__main__":
main()