diff mbox series

[v2,1/4] multi-buffer for idents

Message ID 20181209142935.40294-2-luc.vanoostenryck@gmail.com (mailing list archive)
State Superseded, archived
Headers show
Series display address spaces by name | expand

Commit Message

Luc Van Oostenryck Dec. 9, 2018, 2:29 p.m. UTC
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>
---
 tokenize.c | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)
diff mbox series

Patch

diff --git a/tokenize.c b/tokenize.c
index e98684ec5..01fbb9b35 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;
 }