mirror of
https://git.savannah.gnu.org/git/bison.git
synced 2026-03-09 12:23:04 +00:00
* src/print-xml.c (escape_bufs): New static global variable
replacing... (xml_escape_n): ... the static local variable buf here. (print_xml): Free memory for escape_bufs. * src/reduce.c (reduce_xml): XML-escape terminal symbol tags.
This commit is contained in:
@@ -1,3 +1,11 @@
|
||||
2007-09-29 Joel E. Denny <jdenny@ces.clemson.edu>
|
||||
|
||||
* src/print-xml.c (escape_bufs): New static global variable
|
||||
replacing...
|
||||
(xml_escape_n): ... the static local variable buf here.
|
||||
(print_xml): Free memory for escape_bufs.
|
||||
* src/reduce.c (reduce_xml): XML-escape terminal symbol tags.
|
||||
|
||||
2007-09-25 Joel E. Denny <jdenny@ces.clemson.edu>
|
||||
|
||||
Replace `%push-parser' and `%push-pull-parser' with
|
||||
|
||||
@@ -43,6 +43,12 @@
|
||||
#include "tables.h"
|
||||
|
||||
static bitset no_reduce_set;
|
||||
struct escape_buf
|
||||
{
|
||||
char *ptr;
|
||||
size_t size;
|
||||
};
|
||||
static struct escape_buf escape_bufs[2];
|
||||
|
||||
|
||||
/*----------------------------.
|
||||
@@ -516,12 +522,6 @@ xml_printf (FILE *out, int level, char const *fmt, ...)
|
||||
fputc ('\n', out);
|
||||
}
|
||||
|
||||
struct escape_buf
|
||||
{
|
||||
char *ptr;
|
||||
size_t size;
|
||||
};
|
||||
|
||||
static char const *
|
||||
xml_escape_string (struct escape_buf *buf, char const *str)
|
||||
{
|
||||
@@ -553,8 +553,7 @@ xml_escape_string (struct escape_buf *buf, char const *str)
|
||||
char const *
|
||||
xml_escape_n (int n, char const *str)
|
||||
{
|
||||
static struct escape_buf buf[2];
|
||||
return xml_escape_string (buf + n, str);
|
||||
return xml_escape_string (escape_bufs + n, str);
|
||||
}
|
||||
|
||||
char const *
|
||||
@@ -608,5 +607,8 @@ print_xml (void)
|
||||
|
||||
xml_puts (out, 0, "</bison-xml-report>");
|
||||
|
||||
free (escape_bufs[0].ptr);
|
||||
free (escape_bufs[1].ptr);
|
||||
|
||||
xfclose (out);
|
||||
}
|
||||
|
||||
@@ -418,7 +418,7 @@ reduce_xml (FILE *out, int level)
|
||||
b = true;
|
||||
xml_printf (out, level + 3,
|
||||
"<terminal>%s</terminal>",
|
||||
symbols[i]->tag);
|
||||
xml_escape (symbols[i]->tag));
|
||||
}
|
||||
if (b)
|
||||
xml_puts (out, level + 2, "</terminals>");
|
||||
|
||||
Reference in New Issue
Block a user