blob: 537acc72df83c344acac7c5fb5af4e297cf49e05 [file] [log] [blame]
/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include <sys/stat.h>
#include "locale-util.h"
typedef struct LocaleContext {
struct stat st;
char *locale[_VARIABLE_LC_MAX];
} LocaleContext;
typedef enum LocaleLoadFlag {
LOCALE_LOAD_PROC_CMDLINE = 1 << 0,
LOCALE_LOAD_LOCALE_CONF = 1 << 1,
LOCALE_LOAD_ENVIRONMENT = 1 << 2,
LOCALE_LOAD_SIMPLIFY = 1 << 3,
} LocaleLoadFlag;
void locale_context_clear(LocaleContext *c);
int locale_context_load(LocaleContext *c, LocaleLoadFlag flag);
int locale_context_build_env(const LocaleContext *c, char ***ret_set, char ***ret_unset);
int locale_context_save(LocaleContext *c, char ***ret_set, char ***ret_unset);
int locale_context_merge(const LocaleContext *c, char *l[_VARIABLE_LC_MAX]);
void locale_context_take(LocaleContext *c, char *l[_VARIABLE_LC_MAX]);
bool locale_context_equal(const LocaleContext *c, char *l[_VARIABLE_LC_MAX]);
int locale_setup(char ***environment);