diff options
| author | Luc Van Oostenryck <luc.vanoostenryck@gmail.com> | 2018-12-09 00:05:15 +0100 |
|---|---|---|
| committer | Luc Van Oostenryck <luc.vanoostenryck@gmail.com> | 2018-12-09 16:39:33 +0100 |
| commit | fff61b26c44a6ead0dde04f214f909f3269140b8 (patch) | |
| tree | ba5cb9fb5b9e27aea51fb18c4ca60fd484ca5bdc | |
| parent | d6d857f2d160fc2740137dea4eec605dbd93b1ef (diff) | |
| download | sparse-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.c | 6 |
1 files changed, 5 insertions, 1 deletions
@@ -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; } |
