aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
authorLuc Van Oostenryck <luc.vanoostenryck@gmail.com>2018-12-09 00:05:15 +0100
committerLuc Van Oostenryck <luc.vanoostenryck@gmail.com>2018-12-09 16:39:33 +0100
commitfff61b26c44a6ead0dde04f214f909f3269140b8 (patch)
treeba5cb9fb5b9e27aea51fb18c4ca60fd484ca5bdc
parentd6d857f2d160fc2740137dea4eec605dbd93b1ef (diff)
downloadsparse-dev-fff61b26c44a6ead0dde04f214f909f3269140b8.tar.gz
multi-buffer for idents
Currently, show_indent() use a single static buffer. It thus can't be used like: printf("%s %s", show_ident(a), show_ident(b)); Fix this by using multiple buffers like done for show_pseudo() and others. Signed-off-by: Luc Van Oostenryck <luc.vanoostenryck@gmail.com>
-rw-r--r--tokenize.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/tokenize.c b/tokenize.c
index 0d17d42d..5ee4718d 100644
--- a/tokenize.c
+++ b/tokenize.c
@@ -88,9 +88,13 @@ const char *show_special(int val)
const char *show_ident(const struct ident *ident)
{
- static char buffer[256];
+ static char buff[2][256];
+ static int n;
+ char *buffer;
+
if (!ident)
return "<noident>";
+ buffer = buff[2 & ++n];
sprintf(buffer, "%.*s", ident->len, ident->name);
return buffer;
}