summaryrefslogtreecommitdiffstats
path: root/development/uncrustify/nl_func_leave_one_liners.patch
diff options
context:
space:
mode:
author Zhu Qun-Ying <zhu.qunying@gmail.com>2019-12-17 14:59:49 -0800
committer Willy Sudiarto Raharjo <willysr@slackbuilds.org>2019-12-21 11:00:48 +0700
commit39c44c274c0ec5a293e18f61b9a4da2da6bd0e4e (patch)
tree1e5cccf09bf6877c143a1dd921184cb20030abfa /development/uncrustify/nl_func_leave_one_liners.patch
parent25cc6ab6c6878c0dd30348610fa05149d8c73a04 (diff)
downloadslackbuilds-39c44c274c0ec5a293e18f61b9a4da2da6bd0e4e.tar.gz
slackbuilds-39c44c274c0ec5a293e18f61b9a4da2da6bd0e4e.tar.xz
development/uncrustify fix a regression in 0.70.1
Signed-off-by: Willy Sudiarto Raharjo <willysr@slackbuilds.org>
Diffstat (limited to 'development/uncrustify/nl_func_leave_one_liners.patch')
-rw-r--r--development/uncrustify/nl_func_leave_one_liners.patch104
1 files changed, 104 insertions, 0 deletions
diff --git a/development/uncrustify/nl_func_leave_one_liners.patch b/development/uncrustify/nl_func_leave_one_liners.patch
new file mode 100644
index 0000000000..60c43119cb
--- /dev/null
+++ b/development/uncrustify/nl_func_leave_one_liners.patch
@@ -0,0 +1,104 @@
+From 06822aa69bf460b5ef0363f2a0cf69ec7a426bda Mon Sep 17 00:00:00 2001
+From: Guy Maurel <g.maurel@agwest.de>
+Date: Fri, 29 Nov 2019 18:04:25 +0100
+Subject: nl_func_leave_one_liners is now completed
+
+Ref. #2561
+
+diff --git a/src/newlines.cpp b/src/newlines.cpp
+index a7db6181..576cd874 100644
+--- a/src/newlines.cpp
++++ b/src/newlines.cpp
+@@ -2782,12 +2782,30 @@ static void newline_func_def_or_call(chunk_t *start)
+
+ if (tmp_next != nullptr && tmp_next->type != CT_FUNC_CLASS_DEF)
+ {
+- bool is_proto = ( tmp->parent_type == CT_FUNC_PROTO
+- || tmp->parent_type == CT_FUNC_CLASS_PROTO);
+- iarf_e a = (is_proto) ?
+- options::nl_func_proto_type_name() :
+- (options::nl_func_leave_one_liners()) ? // Issue #1511
+- IARF_IGNORE : options::nl_func_type_name();
++ chunk_t *closing = chunk_skip_to_match(tmp);
++ chunk_t *brace = chunk_get_next_ncnl(closing);
++ iarf_e a; // Issue #2561
++
++ if ( tmp->parent_type == CT_FUNC_PROTO
++ || tmp->parent_type == CT_FUNC_CLASS_PROTO)
++ {
++ // proto
++ a = options::nl_func_proto_type_name();
++ }
++ else
++ {
++ // def
++
++ if ( options::nl_func_leave_one_liners()
++ && brace->flags.test(PCF_ONE_LINER)) // Issue #1511
++ {
++ a = IARF_IGNORE;
++ }
++ else
++ {
++ a = options::nl_func_type_name();
++ }
++ }
+
+ if ( tmp->flags.test(PCF_IN_CLASS)
+ && (options::nl_func_type_name_class() != IARF_IGNORE))
+diff --git a/tests/config/Issue_2561.cfg b/tests/config/Issue_2561.cfg
+new file mode 100644
+index 00000000..03a40504
+--- /dev/null
++++ b/tests/config/Issue_2561.cfg
+@@ -0,0 +1,5 @@
++sp_func_def_paren = force
++indent_columns = 3
++nl_func_leave_one_liners = true
++nl_func_type_name = force
++mod_add_long_function_closebrace_comment = 1
+diff --git a/tests/cpp.test b/tests/cpp.test
+index 77797aed..39c7e421 100644
+--- a/tests/cpp.test
++++ b/tests/cpp.test
+@@ -96,6 +96,7 @@
+ 30085 nSolve.cfg cpp/align_class.cpp
+ 30086 align_class-constr.cfg cpp/align_class-constr.cpp
+ 30087 Issue_1511.cfg cpp/Issue_1511.cpp
++30088 Issue_2561.cfg cpp/Issue_2561.cpp
+
+ 30090 bug_488.cfg cpp/bug_488.cpp
+ 30091 bug_472.cfg cpp/bug_472.cpp
+diff --git a/tests/expected/cpp/30088-Issue_2561.cpp b/tests/expected/cpp/30088-Issue_2561.cpp
+new file mode 100644
+index 00000000..aa566966
+--- /dev/null
++++ b/tests/expected/cpp/30088-Issue_2561.cpp
+@@ -0,0 +1,11 @@
++#include <stdio.h>
++
++int getFoo () { return foo; }
++
++int
++main (int argc, char *argv[])
++{
++ printf("hello world!\n");
++
++ return 0;
++} // main
+diff --git a/tests/input/cpp/Issue_2561.cpp b/tests/input/cpp/Issue_2561.cpp
+new file mode 100644
+index 00000000..15232fc4
+--- /dev/null
++++ b/tests/input/cpp/Issue_2561.cpp
+@@ -0,0 +1,10 @@
++#include <stdio.h>
++
++int getFoo() { return foo; }
++
++int main (int argc, char *argv[])
++{
++ printf("hello world!\n");
++
++ return 0;
++}