The patch titled Subject: checkpatch: add --fix option for a couple OPEN_BRACE misuses has been added to the -mm tree. Its filename is checkpatch-add-fix-option-for-a-couple-open_brace-misuses.patch This patch should soon appear at http://ozlabs.org/~akpm/mmots/broken-out/checkpatch-add-fix-option-for-a-couple-open_brace-misuses.patch and later at http://ozlabs.org/~akpm/mmotm/broken-out/checkpatch-add-fix-option-for-a-couple-open_brace-misuses.patch Before you just go and hit "reply", please: a) Consider who else should be cc'ed b) Prefer to cc a suitable mailing list as well c) Ideally: find the original patch on the mailing list and do a reply-to-all to that, adding suitable additional cc's *** Remember to use Documentation/SubmitChecklist when testing your code *** The -mm tree is included into linux-next and is updated there every 3-4 working days ------------------------------------------------------ From: Joe Perches <joe@xxxxxxxxxxx> Subject: checkpatch: add --fix option for a couple OPEN_BRACE misuses Style misuses of these types are corrected: typedef struct foo { int bar; }; int foo(int bar) { return bar+1; } int foo(int bar) { return bar+1; } Signed-off-by: Joe Perches <joe@xxxxxxxxxxx> Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> --- scripts/checkpatch.pl | 33 ++++++++++++++++++++++++++++----- 1 file changed, 28 insertions(+), 5 deletions(-) diff -puN scripts/checkpatch.pl~checkpatch-add-fix-option-for-a-couple-open_brace-misuses scripts/checkpatch.pl --- a/scripts/checkpatch.pl~checkpatch-add-fix-option-for-a-couple-open_brace-misuses +++ a/scripts/checkpatch.pl @@ -3164,17 +3164,40 @@ sub process { # function brace can't be on same line, except for #defines of do while, # or if closed on same line - if (($line=~/$Type\s*$Ident\(.*\).*\s{/) and + if (($line=~/$Type\s*$Ident\(.*\).*\s*{/) and !($line=~/\#\s*define.*do\s{/) and !($line=~/}/)) { - ERROR("OPEN_BRACE", - "open brace '{' following function declarations go on the next line\n" . $herecurr); + if (ERROR("OPEN_BRACE", + "open brace '{' following function declarations go on the next line\n" . $herecurr) && + $fix) { + fix_delete_line($fixlinenr, $rawline); + my $fixed_line = $rawline; + $fixed_line =~ /(^..*$Type\s*$Ident\(.*\)\s*){(.*)$/; + my $line1 = $1; + my $line2 = $2; + fix_insert_line($fixlinenr, ltrim($line1)); + fix_insert_line($fixlinenr, "\+{"); + if ($line2 !~ /^\s*$/) { + fix_insert_line($fixlinenr, "\+\t" . trim($line2)); + } + } } # open braces for enum, union and struct go on the same line. if ($line =~ /^.\s*{/ && $prevline =~ /^.\s*(?:typedef\s+)?(enum|union|struct)(?:\s+$Ident)?\s*$/) { - ERROR("OPEN_BRACE", - "open brace '{' following $1 go on the same line\n" . $hereprev); + if (ERROR("OPEN_BRACE", + "open brace '{' following $1 go on the same line\n" . $hereprev) && + $fix && $prevline =~ /^\+/ && $line =~ /^\+/) { + fix_delete_line($fixlinenr - 1, $prevrawline); + fix_delete_line($fixlinenr, $rawline); + my $fixedline = rtrim($prevrawline) . " {"; + fix_insert_line($fixlinenr, $fixedline); + $fixedline = $rawline; + $fixedline =~ s/^(.\s*){\s*/$1\t/; + if ($fixedline !~ /^\+\s*$/) { + fix_insert_line($fixlinenr, $fixedline); + } + } } # missing space after union, struct or enum definition _ Patches currently in -mm which might be from joe@xxxxxxxxxxx are fs-squashfs-file_directc-replace-countsize-kmalloc-by-kmalloc_array.patch fs-asus_atk0110-fix-define_simple_attribute-semicolon-definition-and-use.patch printk-make-dynamic-kernel-ring-buffer-alignment-explicit.patch printk-move-power-of-2-practice-of-ring-buffer-size-to-a-helper.patch printk-make-dynamic-units-clear-for-the-kernel-ring-buffer.patch printk-allow-increasing-the-ring-buffer-depending-on-the-number-of-cpus.patch printk-tweak-do_syslog-to-match-comments.patch maintainers-remove-two-ancient-eata-sections.patch kernelh-remove-deprecated-pack_hex_byte.patch mm-utilc-add-kstrimdup.patch checkpatch-attempt-to-find-unnecessary-out-of-memory-messages.patch checkpatch-warn-on-unnecessary-else-after-return-or-break.patch checkpatch-fix-complex-macro-false-positive-for-escaped-constant-char.patch checkpatch-fix-function-pointers-in-blank-line-needed-after-declarations-test.patch checkpatch-ignore-email-headers-better.patch checkpatchpl-also-suggest-else-if-when-if-follows-brace.patch checkpatch-add-test-for-blank-lines-after-function-struct-union-enum.patch checkpatch-add-test-for-blank-lines-after-function-struct-union-enum-declarations.patch checkpatch-add-a-multiple-blank-lines-test.patch checkpatch-change-blank-line-after-declaration-type-to-line_spacing.patch checkpatch-quiet-kconfig-help-message-checking.patch checkpatch-warn-on-unnecessary-parentheses-around-references-of-foo-bar.patch checkpatch-allow-multiple-const-types.patch checkpatch-improve-no-space-after-cast-test.patch checkpatch-emit-fewer-kmalloc_array-kcalloc-conversion-warnings.patch checkpatch-add-test-for-commit-id-formatting-style-in-commit-log.patch checkpatch-emit-a-warning-on-file-add-move-delete.patch checkpatch-warn-on-break-after-goto-or-return-with-same-tab-indentation.patch checkpatch-add-an-index-variable-for-fixed-lines.patch checkpatch-add-ability-to-insert-and-delete-lines-to-patch-file.patch checkpatch-add-fix_insert_line-and-fix_delete_line-helpers.patch checkpatch-use-the-correct-indentation-for-which.patch checkpatch-add-fix-option-for-a-couple-open_brace-misuses.patch checkpatch-fix-brace-style-misuses-of-else-and-while.patch fs-isofs-logging-clean-up.patch proc-constify-seq_operations.patch sysctl-remove-now-unused-typedef-ctl_table.patch sysctl-remove-now-unused-typedef-ctl_table-fix.patch adfs-add-__printf-verification-fix-format-argument-mismatches.patch fs-qnx6-convert-printk-to-pr_foo.patch fs-qnx6-use-pr_fmt-and-__func__-in-logging.patch fs-qnx6-update-debugging-to-current-functions.patch scripts-coccinelle-free-add-null-test-before-freeing-functions.patch linux-next.patch pci-dma-compat-add-pci_zalloc_consistent-helper.patch atm-use-pci_zalloc_consistent.patch block-use-pci_zalloc_consistent.patch crypto-use-pci_zalloc_consistent.patch infiniband-use-pci_zalloc_consistent.patch i810-use-pci_zalloc_consistent.patch media-use-pci_zalloc_consistent.patch amd-use-pci_zalloc_consistent.patch atl1e-use-pci_zalloc_consistent.patch enic-use-pci_zalloc_consistent.patch sky2-use-pci_zalloc_consistent.patch micrel-use-pci_zalloc_consistent.patch qlogic-use-pci_zalloc_consistent.patch irda-use-pci_zalloc_consistent.patch ipw2100-use-pci_zalloc_consistent.patch mwl8k-use-pci_zalloc_consistent.patch rtl818x-use-pci_zalloc_consistent.patch rtlwifi-use-pci_zalloc_consistent.patch scsi-use-pci_zalloc_consistent.patch staging-use-pci_zalloc_consistent.patch synclink_gt-use-pci_zalloc_consistent.patch vme-bridges-use-pci_zalloc_consistent.patch amd-neaten-and-remove-unnecessary-oom-messages.patch maintainers-update-microcode-patterns.patch maintainers-update-cifs-location.patch maintainers-use-the-correct-efi-stub-location.patch maintainers-update-clk-sirf-patterns.patch maintainers-fix-ssbi-pattern.patch maintainers-use-correct-filename-for-sdhci-bcm-kona.patch maintainers-fix-pxa3xx-nand-flash-driver-pattern.patch maintainers-update-picoxcell-patterns.patch maintainers-remove-section-cirrus-logic-ep93xx-ohci-usb-host-driver.patch maintainers-remove-metag-imgdafs-pattern.patch maintainers-remove-unused-radeon-drm-pattern.patch maintainers-remove-unusd-arm-qualcomm-msm-pattern.patch maintainers-remove-unused-nfsd-pattern.patch -- To unsubscribe from this list: send the line "unsubscribe mm-commits" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html