summaryrefslogtreecommitdiffabout
Side-by-side diff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--src/output.c6
-rw-r--r--tests/Makefile.am1
-rw-r--r--tests/bartest.at43
-rw-r--r--tests/testsuite.at1
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
--- a/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

Return to:

Send suggestions and report system problems to the System administrator.