diff options
-rw-r--r-- | src/output.c | 6 | ||||
-rw-r--r-- | tests/Makefile.am | 1 | ||||
-rw-r--r-- | tests/bartest.at | 43 | ||||
-rw-r--r-- | tests/testsuite.at | 1 |
4 files changed, 48 insertions, 3 deletions
diff --git a/src/output.c b/src/output.c index 47c3c47..bef37fd 100644 --- a/src/output.c +++ b/src/output.c @@ -1,5 +1,5 @@ /* This file is part of GNU cflow - Copyright (C) 1997, 2005, 2007, 2009, 2010 Sergey Poznyakoff + Copyright (C) 1997, 2005, 2007, 2009, 2010, 2011 Sergey Poznyakoff GNU cflow is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -313,7 +313,7 @@ direct_tree(int lev, int last, Symbol *sym) return; set_active(sym); for (p = linked_list_head(sym->callee); p; p = p->next) { - set_level_mark(lev+1, is_printable(p->next)); + set_level_mark(lev+1, !is_last(p)); direct_tree(lev+1, is_last(p), (Symbol*)p->data); } clear_active(sym); @@ -337,7 +337,7 @@ inverted_tree(int lev, int last, Symbol *sym) return; set_active(sym); for (p = linked_list_head(sym->caller); p; p = p->next) { - set_level_mark(lev+1, is_printable(p->next)); + set_level_mark(lev+1, !is_last(p)); inverted_tree(lev+1, is_last(p), (Symbol*)p->data); } clear_active(sym); diff --git a/tests/Makefile.am b/tests/Makefile.am index 6ec2da8..2fe8734 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -43,6 +43,7 @@ $(srcdir)/package.m4: $(top_srcdir)/configure.ac TESTSUITE_AT = \ attr.at\ awrapper.at\ + bartest.at\ direct.at\ fdecl.at\ funcarg.at\ diff --git a/tests/bartest.at b/tests/bartest.at new file mode 100644 index 0000000..e25eac2 --- /dev/null +++ b/tests/bartest.at @@ -0,0 +1,43 @@ +# This file is part of GNU cflow testsuite. -*- Autotest -*- +# Copyright (C) 2011 Sergey Poznyakoff +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License as +# published by the Free Software Foundation; either version 3, or (at +# your option) any later version. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. + +# Cflow 1.3 sometimes failed to display '|' in tree output. +# Testcase by Shigio YAMAGUCHI. + +AT_SETUP([vertical bar in tree output]) +AT_KEYWORDS([tree bartest]) + +CFLOW_OPT([--tree --number],[ +CFLOW_CHECK( +[int main() +{ + hello(NULL); + printf("Hello\n"); +} +hello(const char *data) +{ + printf("Hello\n"); +} +], +[ 1 +-main() <int main () at prog:1> + 2 +-hello() <hello (const char *data) at prog:6> + 3 | \-printf() + 4 \-printf()]) +]) + +AT_CLEANUP + + diff --git a/tests/testsuite.at b/tests/testsuite.at index 8aac400..f15980c 100644 --- a/tests/testsuite.at +++ b/tests/testsuite.at @@ -67,5 +67,6 @@ m4_include([nfparg.at]) m4_include([nfarg.at]) m4_include([hiding.at]) m4_include([multi.at]) +m4_include([bartest.at]) # End of testsuite.at |