#ifndef _READ_PO_H
#define _READ_PO_H
#include "message.h"
#include "read-po-abstract.h"
#include <stdbool.h>
#include <stdio.h>
#ifdef __cplusplus
# define this thiss
#endif
#ifdef __cplusplus
extern "C" {
#endif
struct default_po_reader_ty;
typedef struct default_po_reader_class_ty default_po_reader_class_ty;
struct default_po_reader_class_ty
{
struct abstract_po_reader_class_ty super;
void (*set_domain) (struct default_po_reader_ty *pop, char *name);
void (*add_message) (struct default_po_reader_ty *pop,
char *msgid, lex_pos_ty *msgid_pos, char *msgid_plural,
char *msgstr, size_t msgstr_len, lex_pos_ty *msgstr_pos,
bool force_fuzzy, bool obsolete);
void (*frob_new_message) (struct default_po_reader_ty *pop, message_ty *mp,
const lex_pos_ty *msgid_pos,
const lex_pos_ty *msgstr_pos);
};
#define DEFAULT_PO_READER_TY \
ABSTRACT_PO_READER_TY \
\
\
bool handle_comments; \
\
\
bool handle_filepos_comments; \
\
\
bool allow_domain_directives; \
\
\
bool allow_duplicates; \
\
\
bool allow_duplicates_if_same_msgstr; \
\
\
msgdomain_list_ty *mdlp; \
\
\
const char *domain; \
\
\
message_list_ty *mlp; \
\
\
string_list_ty *comment; \
string_list_ty *comment_dot; \
\
\
size_t filepos_count; \
lex_pos_ty *filepos; \
\
\
bool is_fuzzy; \
enum is_format is_format[NFORMATS]; \
enum is_wrap do_wrap; \
typedef struct default_po_reader_ty default_po_reader_ty;
struct default_po_reader_ty
{
DEFAULT_PO_READER_TY
};
extern void default_constructor (abstract_po_reader_ty *that);
extern void default_destructor (abstract_po_reader_ty *that);
extern void default_parse_brief (abstract_po_reader_ty *that);
extern void default_parse_debrief (abstract_po_reader_ty *that);
extern void default_directive_domain (abstract_po_reader_ty *that, char *name);
extern void default_directive_message (abstract_po_reader_ty *that,
char *msgid,
lex_pos_ty *msgid_pos,
char *msgid_plural,
char *msgstr, size_t msgstr_len,
lex_pos_ty *msgstr_pos,
bool force_fuzzy, bool obsolete);
extern void default_comment (abstract_po_reader_ty *that, const char *s);
extern void default_comment_dot (abstract_po_reader_ty *that, const char *s);
extern void default_comment_filepos (abstract_po_reader_ty *that,
const char *name, size_t line);
extern void default_comment_special (abstract_po_reader_ty *that,
const char *s);
extern void default_set_domain (default_po_reader_ty *this, char *name);
extern void default_add_message (default_po_reader_ty *this,
char *msgid,
lex_pos_ty *msgid_pos,
char *msgid_plural,
char *msgstr, size_t msgstr_len,
lex_pos_ty *msgstr_pos,
bool force_fuzzy, bool obsolete);
extern default_po_reader_ty *
default_po_reader_alloc (default_po_reader_class_ty *method_table);
extern DLL_VARIABLE int line_comment;
extern DLL_VARIABLE bool allow_duplicates;
extern DLL_VARIABLE input_syntax_ty input_syntax;
extern msgdomain_list_ty *read_po (FILE *fp, const char *real_filename,
const char *logical_filename);
extern msgdomain_list_ty *read_po_file (const char *input_name);
#ifdef __cplusplus
}
#endif
#endif