/* gasp.c - Gnu assembler preprocessor main program.
- Copyright (C) 1994, 95, 96, 97, 1998 Free Software Foundation, Inc.
+ Copyright (C) 1994, 95, 96, 97, 98, 99, 2000
+ Free Software Foundation, Inc.
Written by Steve and Judy Chamberlain of Cygnus Support,
sac@cygnus.com
it. */
extern void as_abort PARAMS ((const char *, int, const char *));
+/* The default obstack chunk size. If we set this to zero, the
+ obstack code will use whatever will fit in a 4096 byte block. This
+ is used by the hash table code used by macro.c. */
+int chunksize = 0;
+
#define MAX_INCLUDES 30 /* Maximum include depth */
#define MAX_REASONABLE 1000 /* Maximum number of expansions */
exp_t res;
idx = exp_parse (idx, in, &res);
if (res.add_symbol.len || res.sub_symbol.len)
- ERROR ((stderr, emsg));
+ ERROR ((stderr, "%s", emsg));
*val = res.value;
return idx;
}
{
int i = 0;
sb_reset (out);
- if (ISFIRSTCHAR (in->ptr[i]))
+ if (ISFIRSTCHAR (in->ptr[i]) || in->ptr[i] == '\\')
{
sb_add_char (out, in->ptr[i]);
i++;
idx = exp_parse (idx, in, &e);
exp_string (&e, &acc);
sb_add_char (&acc, 0);
- fprintf (outfile, acc.ptr);
+ fprintf (outfile, "%s", acc.ptr);
if (idx < in->len && in->ptr[idx] == ',')
{
fprintf (outfile, ",");
have_fill = 1;
}
- if (al != 1
- && al != 2
- && al != 4)
- WARNING ((stderr, _("alignment must be one of 1, 2 or 4.\n")));
-
fprintf (outfile, ".align %d", al);
if (have_fill)
fprintf (outfile, ",%d", fill);
|| line.ptr[0] == '!'))
{
/* MRI line comment. */
- fprintf (outfile, sb_name (&line));
+ fprintf (outfile, "%s", sb_name (&line));
}
else
{
static
void
do_local (idx, line)
- int idx;
- sb *line;
+ int idx ATTRIBUTE_UNUSED;
+ sb *line ATTRIBUTE_UNUSED;
{
ERROR ((stderr, _("LOCAL outside of MACRO")));
}
ifstack[0].on = 1;
ifi = 0;
+#if defined (HAVE_SETLOCALE) && defined (HAVE_LC_MESSAGES)
setlocale (LC_MESSAGES, "");
+#endif
bindtextdomain (PACKAGE, LOCALEDIR);
textdomain (PACKAGE);