aboutsummaryrefslogtreecommitdiff
path: root/utils/msgids.c
diff options
context:
space:
mode:
Diffstat (limited to 'utils/msgids.c')
-rw-r--r--utils/msgids.c61
1 files changed, 39 insertions, 22 deletions
diff --git a/utils/msgids.c b/utils/msgids.c
index d17f1316..81b49c59 100644
--- a/utils/msgids.c
+++ b/utils/msgids.c
@@ -171,6 +171,39 @@ static bool nostdinc = FALSE;
#define STD_MSGIDS_DIR DATADIR "/msgids/"
#define OPT_NOSTDINC -1
+error_t
+msgids_scan_std (void)
+{
+ error_t err = 0;
+
+ /* Insert the files from STD_MSGIDS_DIR at the beginning of the
+ list, so that their content can be overridden by subsequently
+ parsed files. */
+ if (nostdinc == FALSE)
+ scan_msgids_dir (&msgids_files_argz, &msgids_files_argz_len,
+ STD_MSGIDS_DIR, FALSE);
+
+ if (msgids_files_argz != NULL)
+ {
+ char *msgids_file = NULL;
+
+ while (! err
+ && (msgids_file = argz_next (msgids_files_argz,
+ msgids_files_argz_len,
+ msgids_file)))
+ {
+ err = parse_msgid_list (msgids_file);
+ if (err)
+ error (0, err, "%s", msgids_file);
+ }
+
+ free (msgids_files_argz);
+ msgids_files_argz = NULL;
+ }
+
+ return err;
+}
+
static const struct argp_option options[] =
{
{"nostdinc", OPT_NOSTDINC, 0, 0,
@@ -218,29 +251,13 @@ static error_t parse_opt (int key, char *arg, struct argp_state *state)
return EINVAL;
case ARGP_KEY_END:
- /* Insert the files from STD_MSGIDS_DIR at the beginning of the
- list, so that their content can be overridden by subsequently
- parsed files. */
- if (nostdinc == FALSE)
- scan_msgids_dir (&msgids_files_argz, &msgids_files_argz_len,
- STD_MSGIDS_DIR, FALSE);
-
- if (msgids_files_argz != NULL)
- {
- error_t err = 0;
- char *msgids_file = NULL;
+ {
+ error_t err = msgids_scan_std ();
- while (! err
- && (msgids_file = argz_next (msgids_files_argz,
- msgids_files_argz_len,
- msgids_file)))
- err = parse_msgid_list (msgids_file);
-
- free (msgids_files_argz);
- if (err)
- argp_failure (state, 1, err, "%s", msgids_file);
- }
- break;
+ if (err)
+ argp_failure (state, 1, err, "parsing msgid files");
+ break;
+ }
default:
return ARGP_ERR_UNKNOWN;