[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
{maint} use obstack_printf
From: |
Akim Demaille |
Subject: |
{maint} use obstack_printf |
Date: |
Tue, 31 Jul 2012 11:37:30 +0200 |
commit aaf63e45b65d35bb506e431ffa8360f259ee393c
Author: Akim Demaille <address@hidden>
Date: Mon Jul 30 18:05:10 2012 +0200
use obstack_printf
This is not just nicer, it is also much safer, since we were
using sprintf...
* bootstrap.conf: Require it.
* src/system.h (obstack_fgrow1, obstack_fgrow2, obstack_fgrow3)
(obstack_fgrow4): Remove.
Adjust dependencies.
diff --git a/bootstrap.conf b/bootstrap.conf
index aa05e34..165d5e7 100644
--- a/bootstrap.conf
+++ b/bootstrap.conf
@@ -24,7 +24,10 @@ gnulib_modules='
gettext git-version-gen gitlog-to-changelog
gpl-3.0 hash inttypes isnan javacomp-script
javaexec-script ldexpl malloc-gnu mbschr mbsrchr
- mbswidth obstack perror progname
+ mbswidth
+ obstack
+ obstack-printf
+ perror progname
quote quotearg
readme-release
realloc-posix
diff --git a/lib/.gitignore b/lib/.gitignore
index 5eec743..964d7f4 100644
--- a/lib/.gitignore
+++ b/lib/.gitignore
@@ -268,3 +268,4 @@
/xmemdup0.c
/xmemdup0.h
/sys_types.in.h
+/obstack_printf.c
diff --git a/m4/.gitignore b/m4/.gitignore
index 8a24eb0..797ed6d 100644
--- a/m4/.gitignore
+++ b/m4/.gitignore
@@ -179,3 +179,4 @@
/xalloc.m4
/xsize.m4
/xstrndup.m4
+/obstack-printf.m4
diff --git a/src/conflicts.c b/src/conflicts.c
index 9af53a6..ba0b6ed 100644
--- a/src/conflicts.c
+++ b/src/conflicts.c
@@ -73,7 +73,7 @@ log_resolution (rule *r, symbol_number token,
{
case shift_resolution:
case right_resolution:
- obstack_fgrow2 (&solved_conflicts_obstack,
+ obstack_printf (&solved_conflicts_obstack,
_(" Conflict between rule %d and token %s"
" resolved as shift"),
r->number,
@@ -82,7 +82,7 @@ log_resolution (rule *r, symbol_number token,
case reduce_resolution:
case left_resolution:
- obstack_fgrow2 (&solved_conflicts_obstack,
+ obstack_printf (&solved_conflicts_obstack,
_(" Conflict between rule %d and token %s"
" resolved as reduce"),
r->number,
@@ -90,7 +90,7 @@ log_resolution (rule *r, symbol_number token,
break;
case nonassoc_resolution:
- obstack_fgrow2 (&solved_conflicts_obstack,
+ obstack_printf (&solved_conflicts_obstack,
_(" Conflict between rule %d and token %s"
" resolved as an error"),
r->number,
@@ -102,33 +102,33 @@ log_resolution (rule *r, symbol_number token,
switch (resolution)
{
case shift_resolution:
- obstack_fgrow2 (&solved_conflicts_obstack,
+ obstack_printf (&solved_conflicts_obstack,
" (%s < %s)",
r->prec->tag,
symbols[token]->tag);
break;
case reduce_resolution:
- obstack_fgrow2 (&solved_conflicts_obstack,
+ obstack_printf (&solved_conflicts_obstack,
" (%s < %s)",
symbols[token]->tag,
r->prec->tag);
break;
case left_resolution:
- obstack_fgrow1 (&solved_conflicts_obstack,
+ obstack_printf (&solved_conflicts_obstack,
" (%%left %s)",
symbols[token]->tag);
break;
case right_resolution:
- obstack_fgrow1 (&solved_conflicts_obstack,
+ obstack_printf (&solved_conflicts_obstack,
" (%%right %s)",
symbols[token]->tag);
break;
case nonassoc_resolution:
- obstack_fgrow1 (&solved_conflicts_obstack,
+ obstack_printf (&solved_conflicts_obstack,
" (%%nonassoc %s)",
symbols[token]->tag);
break;
@@ -145,7 +145,7 @@ log_resolution (rule *r, symbol_number token,
{
case shift_resolution:
case right_resolution:
- obstack_fgrow2 (&solved_conflicts_xml_obstack,
+ obstack_printf (&solved_conflicts_xml_obstack,
" <resolution rule=\"%d\" symbol=\"%s\""
" type=\"shift\">",
r->number,
@@ -154,7 +154,7 @@ log_resolution (rule *r, symbol_number token,
case reduce_resolution:
case left_resolution:
- obstack_fgrow2 (&solved_conflicts_xml_obstack,
+ obstack_printf (&solved_conflicts_xml_obstack,
" <resolution rule=\"%d\" symbol=\"%s\""
" type=\"reduce\">",
r->number,
@@ -162,7 +162,7 @@ log_resolution (rule *r, symbol_number token,
break;
case nonassoc_resolution:
- obstack_fgrow2 (&solved_conflicts_xml_obstack,
+ obstack_printf (&solved_conflicts_xml_obstack,
" <resolution rule=\"%d\" symbol=\"%s\""
" type=\"error\">",
r->number,
@@ -174,33 +174,33 @@ log_resolution (rule *r, symbol_number token,
switch (resolution)
{
case shift_resolution:
- obstack_fgrow2 (&solved_conflicts_xml_obstack,
+ obstack_printf (&solved_conflicts_xml_obstack,
"%s < %s",
xml_escape_n (0, r->prec->tag),
xml_escape_n (1, symbols[token]->tag));
break;
case reduce_resolution:
- obstack_fgrow2 (&solved_conflicts_xml_obstack,
+ obstack_printf (&solved_conflicts_xml_obstack,
"%s < %s",
xml_escape_n (0, symbols[token]->tag),
xml_escape_n (1, r->prec->tag));
break;
case left_resolution:
- obstack_fgrow1 (&solved_conflicts_xml_obstack,
+ obstack_printf (&solved_conflicts_xml_obstack,
"%%left %s",
xml_escape (symbols[token]->tag));
break;
case right_resolution:
- obstack_fgrow1 (&solved_conflicts_xml_obstack,
+ obstack_printf (&solved_conflicts_xml_obstack,
"%%right %s",
xml_escape (symbols[token]->tag));
break;
case nonassoc_resolution:
- obstack_fgrow1 (&solved_conflicts_xml_obstack,
+ obstack_printf (&solved_conflicts_xml_obstack,
"%%nonassoc %s",
xml_escape (symbols[token]->tag));
break;
diff --git a/src/muscle-tab.c b/src/muscle-tab.c
index 5c62498..bd1fd17 100644
--- a/src/muscle-tab.c
+++ b/src/muscle-tab.c
@@ -177,7 +177,7 @@ static void
muscle_syncline_grow (char const *key, location loc)
{
char *extension = NULL;
- obstack_fgrow1 (&muscle_obstack, "]b4_syncline(%d, ", loc.start.line);
+ obstack_printf (&muscle_obstack, "]b4_syncline(%d, ", loc.start.line);
obstack_quote (&muscle_obstack,
quotearg_style (c_quoting_style, loc.start.file));
obstack_sgrow (&muscle_obstack, ")[");
@@ -269,9 +269,9 @@ muscle_boundary_grow (char const *key, boundary bound)
obstack_sgrow (&muscle_obstack, "[[");
obstack_escape (&muscle_obstack, bound.file);
obstack_1grow (&muscle_obstack, ':');
- obstack_fgrow1 (&muscle_obstack, "%d", bound.line);
+ obstack_printf (&muscle_obstack, "%d", bound.line);
obstack_1grow (&muscle_obstack, '.');
- obstack_fgrow1 (&muscle_obstack, "%d", bound.column);
+ obstack_printf (&muscle_obstack, "%d", bound.column);
obstack_sgrow (&muscle_obstack, "]]");
obstack_1grow (&muscle_obstack, '\0');
extension = obstack_finish (&muscle_obstack);
diff --git a/src/muscle-tab.h b/src/muscle-tab.h
index ddbad40..696103f 100644
--- a/src/muscle-tab.h
+++ b/src/muscle-tab.h
@@ -43,14 +43,14 @@ extern struct obstack muscle_obstack;
#define MUSCLE_INSERT_INT(Key, Value) \
do { \
- obstack_fgrow1 (&muscle_obstack, "%d", Value); \
+ obstack_printf (&muscle_obstack, "%d", Value); \
obstack_1grow (&muscle_obstack, 0); \
muscle_insert (Key, obstack_finish (&muscle_obstack)); \
} while (0)
#define MUSCLE_INSERT_LONG_INT(Key, Value) \
do { \
- obstack_fgrow1 (&muscle_obstack, "%ld", Value); \
+ obstack_printf (&muscle_obstack, "%ld", Value); \
obstack_1grow (&muscle_obstack, 0); \
muscle_insert (Key, obstack_finish (&muscle_obstack)); \
} while (0)
diff --git a/src/output.c b/src/output.c
index d52a711..e77a2d1 100644
--- a/src/output.c
+++ b/src/output.c
@@ -70,7 +70,7 @@ Name (char const *name,
\
int i; \
int j = 1; \
\
- obstack_fgrow1 (&format_obstack, "%6d", first); \
+ obstack_printf (&format_obstack, "%6d", first); \
for (i = begin; i < end; ++i)
\
{ \
obstack_1grow (&format_obstack, ','); \
@@ -81,7 +81,7 @@ Name (char const *name,
\
} \
else \
++j; \
- obstack_fgrow1 (&format_obstack, "%6d", table_data[i]); \
+ obstack_printf (&format_obstack, "%6d", table_data[i]); \
if (table_data[i] < min) \
min = table_data[i]; \
if (max < table_data[i]) \
@@ -93,10 +93,10 @@ Name (char const *name,
\
lmin = min; \
lmax = max; \
/* Build `NAME_min' and `NAME_max' in the obstack. */
\
- obstack_fgrow1 (&format_obstack, "%s_min", name); \
+ obstack_printf (&format_obstack, "%s_min", name); \
obstack_1grow (&format_obstack, 0); \
MUSCLE_INSERT_LONG_INT (obstack_finish (&format_obstack), lmin); \
- obstack_fgrow1 (&format_obstack, "%s_max", name); \
+ obstack_printf (&format_obstack, "%s_max", name); \
obstack_1grow (&format_obstack, 0); \
MUSCLE_INSERT_LONG_INT (obstack_finish (&format_obstack), lmax); \
}
diff --git a/src/print_graph.c b/src/print_graph.c
index 8571e14..f5695a7 100644
--- a/src/print_graph.c
+++ b/src/print_graph.c
@@ -54,7 +54,7 @@ print_core (struct obstack *oout, state *s)
snritems = nitemset;
}
- obstack_fgrow1 (oout, "%d", s->number);
+ obstack_printf (oout, "%d", s->number);
for (i = 0; i < snritems; i++)
{
item_number *sp;
@@ -68,15 +68,15 @@ print_core (struct obstack *oout, state *s)
r = item_number_as_rule_number (*sp);
- obstack_fgrow1 (oout, "\n%s -> ", rules[r].lhs->tag);
+ obstack_printf (oout, "\n%s -> ", rules[r].lhs->tag);
for (sp = rules[r].rhs; sp < sp1; sp++)
- obstack_fgrow1 (oout, "%s ", symbols[*sp]->tag);
+ obstack_printf (oout, "%s ", symbols[*sp]->tag);
obstack_1grow (oout, '.');
for (/* Nothing */; *sp >= 0; ++sp)
- obstack_fgrow1 (oout, " %s", symbols[*sp]->tag);
+ obstack_printf (oout, " %s", symbols[*sp]->tag);
/* Experimental feature: display the lookahead tokens. */
if (report_flag & report_lookahead_tokens
@@ -95,7 +95,7 @@ print_core (struct obstack *oout, state *s)
obstack_sgrow (oout, "[");
BITSET_FOR_EACH (biter, reds->lookahead_tokens[redno], k, 0)
{
- obstack_fgrow2 (oout, "%s%s", sep, symbols[k]->tag);
+ obstack_printf (oout, "%s%s", sep, symbols[k]->tag);
sep = ", ";
}
obstack_sgrow (oout, "]");
diff --git a/src/scan-code.l b/src/scan-code.l
index 31befe9..fa593be 100644
--- a/src/scan-code.l
+++ b/src/scan-code.l
@@ -443,30 +443,30 @@ show_sub_messages (const char* cp, bool
explicit_bracketing,
/* Create the explanation message. */
obstack_init (&msg_buf);
- obstack_fgrow1 (&msg_buf, _("possibly meant: %c"), dollar_or_at);
+ obstack_printf (&msg_buf, _("possibly meant: %c"), dollar_or_at);
if (contains_dot_or_dash (id))
- obstack_fgrow1 (&msg_buf, "[%s]", id);
+ obstack_printf (&msg_buf, "[%s]", id);
else
obstack_sgrow (&msg_buf, id);
obstack_sgrow (&msg_buf, tail);
if (var->err & VARIANT_HIDDEN)
{
- obstack_fgrow1 (&msg_buf, _(", hiding %c"), dollar_or_at);
+ obstack_printf (&msg_buf, _(", hiding %c"), dollar_or_at);
if (contains_dot_or_dash (var->id))
- obstack_fgrow1 (&msg_buf, "[%s]", var->id);
+ obstack_printf (&msg_buf, "[%s]", var->id);
else
obstack_sgrow (&msg_buf, var->id);
obstack_sgrow (&msg_buf, tail);
}
- obstack_fgrow1 (&msg_buf, _(" at %s"), at_spec);
+ obstack_printf (&msg_buf, _(" at %s"), at_spec);
if (var->err & VARIANT_NOT_VISIBLE_FROM_MIDRULE)
{
const char *format =
_(", cannot be accessed from mid-rule action at $%d");
- obstack_fgrow1 (&msg_buf, format, midrule_rhs_index);
+ obstack_printf (&msg_buf, format, midrule_rhs_index);
}
obstack_1grow (&msg_buf, '\0');
@@ -788,7 +788,7 @@ handle_action_dollar (symbol_list *rule, char *text,
location dollar_loc)
untyped_var_seen = true;
}
- obstack_fgrow2 (&obstack_for_string,
+ obstack_printf (&obstack_for_string,
"]b4_rhs_value(%d, %d, ", effective_rule_length, n);
obstack_quote (&obstack_for_string, type_name);
obstack_sgrow (&obstack_for_string, ")[");
@@ -838,7 +838,7 @@ handle_action_at (symbol_list *rule, char *text, location
at_loc)
break;
default:
- obstack_fgrow2 (&obstack_for_string, "]b4_rhs_location(%d, %d)[",
+ obstack_printf (&obstack_for_string, "]b4_rhs_location(%d, %d)[",
effective_rule_length, n);
break;
}
diff --git a/src/system.h b/src/system.h
index 06fd0f0..1ae6a6b 100644
--- a/src/system.h
+++ b/src/system.h
@@ -163,35 +163,6 @@ typedef size_t uintptr_t;
# define obstack_sgrow(Obs, Str) \
obstack_grow (Obs, Str, strlen (Str))
-# define obstack_fgrow1(Obs, Format, Arg1) \
- do { \
- char buf[4096]; \
- sprintf (buf, Format, Arg1); \
- obstack_grow (Obs, buf, strlen (buf)); \
- } while (0)
-
-# define obstack_fgrow2(Obs, Format, Arg1, Arg2) \
- do { \
- char buf[4096]; \
- sprintf (buf, Format, Arg1, Arg2); \
- obstack_grow (Obs, buf, strlen (buf)); \
- } while (0)
-
-# define obstack_fgrow3(Obs, Format, Arg1, Arg2, Arg3) \
- do { \
- char buf[4096]; \
- sprintf (buf, Format, Arg1, Arg2, Arg3); \
- obstack_grow (Obs, buf, strlen (buf)); \
- } while (0)
-
-# define obstack_fgrow4(Obs, Format, Arg1, Arg2, Arg3, Arg4) \
- do { \
- char buf[4096]; \
- sprintf (buf, Format, Arg1, Arg2, Arg3, Arg4); \
- obstack_grow (Obs, buf, strlen (buf)); \
- } while (0)
-
-
/* Output Str escaped for our postprocessing (i.e., escape M4 special
characters).
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- {maint} use obstack_printf,
Akim Demaille <=