/* Set 'domain' directive when seen in .po file. */
static void
-msgfmt_set_domain (default_catalog_reader_ty *dcatr, char *name)
+msgfmt_set_domain (default_catalog_reader_ty *dcatr,
+ char *name, lex_pos_ty *name_pos)
{
/* If no output file was given, we change it with each 'domain'
directive. */
else
{
if (check_domain)
- po_gram_error_at_line (&gram_pos,
+ po_gram_error_at_line (name_pos,
_("'domain %s' directive ignored"), name);
/* NAME was allocated in po-gram-gen.y but is not used anywhere. */
domain
: DOMAIN STRING
{
- catalog_reader_seen_domain (ps->catr, $2.string);
+ catalog_reader_seen_domain (ps->catr, $2.string, &gram_pos);
}
;
}
static inline void
-call_directive_domain (abstract_catalog_reader_ty *catr, char *name)
+call_directive_domain (abstract_catalog_reader_ty *catr,
+ char *name, lex_pos_ty *name_pos)
{
if (catr->methods->directive_domain)
- catr->methods->directive_domain (catr, name);
+ catr->methods->directive_domain (catr, name, name_pos);
}
static inline void
void
-catalog_reader_seen_domain (abstract_catalog_reader_ty *catr, char *name)
+catalog_reader_seen_domain (abstract_catalog_reader_ty *catr,
+ char *name, lex_pos_ty *name_pos)
{
- call_directive_domain (catr, name);
+ call_directive_domain (catr, name, name_pos);
}
void (*parse_debrief) (struct abstract_catalog_reader_ty *catr);
/* What to do with a domain directive. */
- void (*directive_domain) (struct abstract_catalog_reader_ty *catr, char *name);
+ void (*directive_domain) (struct abstract_catalog_reader_ty *catr,
+ char *name, lex_pos_ty *name_pos);
/* What to do with a message directive. */
void (*directive_message) (struct abstract_catalog_reader_ty *catr,
It invokes the 'directive_domain' method. */
extern void
catalog_reader_seen_domain (abstract_catalog_reader_ty *catr,
- char *name);
+ char *name, lex_pos_ty *name_pos);
/* This callback is called whenever a message has been seen.
It invokes the 'directive_message' method. */
extern void
/* Inline functions to invoke the methods. */
static inline void
-call_set_domain (struct default_catalog_reader_ty *dcatr, char *name)
+call_set_domain (struct default_catalog_reader_ty *dcatr,
+ char *name, lex_pos_ty *name_pos)
{
default_catalog_reader_class_ty *methods =
(default_catalog_reader_class_ty *) dcatr->methods;
if (methods->set_domain)
- methods->set_domain (dcatr, name);
+ methods->set_domain (dcatr, name, name_pos);
}
static inline void
/* Process 'domain' directive from .po file. */
void
-default_directive_domain (abstract_catalog_reader_ty *catr, char *name)
+default_directive_domain (abstract_catalog_reader_ty *catr,
+ char *name, lex_pos_ty *name_pos)
{
default_catalog_reader_ty *dcatr = (default_catalog_reader_ty *) catr;
- call_set_domain (dcatr, name);
+ call_set_domain (dcatr, name, name_pos);
/* If there are accumulated comments, throw them away, they are
probably part of the file header, or about the domain directive,
void
-default_set_domain (default_catalog_reader_ty *dcatr, char *name)
+default_set_domain (default_catalog_reader_ty *dcatr,
+ char *name, lex_pos_ty *name_pos)
{
if (dcatr->allow_domain_directives)
/* Override current domain name. Don't free memory. */
dcatr->domain = name;
else
{
- po_gram_error_at_line (&gram_pos,
+ po_gram_error_at_line (name_pos,
_("this file may not contain domain directives"));
/* NAME was allocated in po-gram-gen.y but is not used anywhere. */
struct abstract_catalog_reader_class_ty super;
/* How to change the current domain. */
- void (*set_domain) (struct default_catalog_reader_ty *dcatr, char *name);
+ void (*set_domain) (struct default_catalog_reader_ty *dcatr,
+ char *name, lex_pos_ty *name_pos);
/* How to add a message to the list. */
void (*add_message) (struct default_catalog_reader_ty *dcatr,
extern void default_parse_brief (abstract_catalog_reader_ty *catr);
extern void default_parse_debrief (abstract_catalog_reader_ty *catr);
extern void default_directive_domain (abstract_catalog_reader_ty *catr,
- char *name);
+ char *name, lex_pos_ty *name_pos);
extern void default_directive_message (abstract_catalog_reader_ty *catr,
char *msgctxt,
char *msgid,
const char *file_name, size_t line_number);
extern void default_comment_special (abstract_catalog_reader_ty *catr,
const char *s);
-extern void default_set_domain (default_catalog_reader_ty *dcatr, char *name);
+extern void default_set_domain (default_catalog_reader_ty *dcatr,
+ char *name, lex_pos_ty *name_pos);
extern void default_add_message (default_catalog_reader_ty *dcatr,
char *msgctxt,
char *msgid,
static void
-exclude_directive_domain (abstract_catalog_reader_ty *catr, char *name)
+exclude_directive_domain (abstract_catalog_reader_ty *catr,
+ char *name, lex_pos_ty *name_pos)
{
- po_gram_error_at_line (&gram_pos,
+ po_gram_error_at_line (name_pos,
_("this file may not contain domain directives"));
}