13 #ifndef __IniParser_h__
14 #define __IniParser_h__
43 #pragma GCC visibility push(hidden)
59 #pragma GCC visibility pop
90 int compile (
const string& pattern,
bool ignore_case) {
94 y2error (
"Regex_t @%p already compiled",
this);
101 ret = regcomp (&
regex, pattern.c_str (),
102 REG_EXTENDED | (ignore_case ? REG_ICASE : 0));
106 regerror (ret, &
regex, error, 256);
107 y2error (
"Regex_t %s error: %s", pattern.c_str (), error);
132 int compile (
const string& pattern,
bool ignore_case) {
135 y2error (
"Regex_t @%p already compiled",
this);
141 return rxtp->compile (pattern, ignore_case);
144 const regex_t *
regex ()
const {
return &
rxtp->regex; }
161 operator bool () {
return matches.size () > 0; }
174 regmatch_t rm_matches[nmatch];
175 if (0 == regexec (rx.
regex (), s.c_str (), nmatch, rm_matches, 0))
179 rest = s.substr (0, rm_matches[0].rm_so) +
180 s.substr (rm_matches[0].rm_eo);
185 rm_matches[0].rm_so = -1;
190 for (i = 0; i < nmatch && rm_matches[i].rm_so != -1; ++i)
192 matches.push_back (s.substr (rm_matches[i].rm_so,
193 rm_matches[i].rm_eo - rm_matches[i].rm_so));
470 string getFileName (
const string&sec,
int rb)
const;
489 #endif//__IniParser_h__
vector< section > sections
Definition: IniParser.h:324
int write()
Definition: IniParser.cc:937
Regex begin
Definition: IniParser.h:226
Definition: IniParser.h:202
Set and later restore a locale category.
Definition: IniParser.h:47
Regex_tPtr rxtp
Definition: IniParser.h:123
int scanner_start(const char *fn)
Definition: IniParser.cc:414
#define str
Definition: scanner.cc:997
string sn
Definition: IniParser.h:243
TemporaryLocale(int category, const char *locale)
Definition: IniParser.cc:35
void initFiles(const char *fn)
Definition: IniParser.cc:166
regex_t regex
Definition: IniParser.h:71
Definition: IniFile.h:227
int parse_helper(IniSection &ini)
Definition: IniParser.cc:568
bool sectionNeedsEnd(int i)
Definition: IniParser.h:460
string out
Definition: IniParser.h:205
string subindent
Definition: IniParser.h:312
map< const string, inisection > inifile
Definition: miniini.h:21
bool end_valid
Definition: IniParser.h:215
bool ignore_case_regexps
Definition: IniParser.h:282
Definition: IniParser.h:150
IoPattern end
Definition: IniParser.h:214
Definition: IniParser.h:211
ifstream scanner
Definition: IniParser.h:337
bool flat
Definition: IniParser.h:307
vector< Regex > linecomments
Definition: IniParser.h:316
int compile(const string &pattern, bool ignore_case)
Definition: IniParser.h:132
vector< string > files
Definition: IniParser.h:360
bool repeatNames() const
accessor method
Definition: IniParser.h:477
set< string > deleted_sections
Definition: IniParser.h:406
bool prefer_uppercase
Definition: IniParser.h:286
Definition: IniParser.h:121
Regex end
Definition: IniParser.h:228
bool isFlat() const
accessor method
Definition: IniParser.h:479
bool first_upper
Definition: IniParser.h:291
IniSection inifile
Definition: IniParser.h:410
~IniParser()
Definition: IniParser.cc:58
const SCRAgent & agent
Definition: IniParser.h:365
map< string, FileDescr > multi_files
Definition: IniParser.h:268
Wrapper for YCPMapRep This class realizes an automatic memory management via YCPElement. Access the functionality of YCPMapRep with the arrow operator. See YCPMapRep.
Definition: YCPMap.h:184
int scanner_line
Definition: IniParser.h:345
bool started
Definition: IniParser.h:351
time_t getTimeStamp()
Definition: IniParser.cc:922
string fn
Definition: IniParser.h:239
bool comments_last
Definition: IniParser.h:299
bool global_values
Definition: IniParser.h:295
DEFINE_BASE_POINTER(Regex_t)
bool repeat_names
Definition: IniParser.h:297
SuSE Configuration Repository Agent.
Definition: SCRAgent.h:37
bool join_multiline
Definition: IniParser.h:301
string getFileName(const string &sec, int rb) const
Definition: IniParser.cc:1109
Definition: IniParser.h:65
~Regex_t()
Definition: IniParser.h:77
Regex rx
Definition: IniParser.h:204
bool line_can_continue
Definition: IniParser.h:280
bool shell_quoted_value
Definition: IniParser.h:309
int initMachine(const YCPMap &scr)
Definition: IniParser.cc:171
int parse()
Definition: IniParser.cc:488
vector< IoPattern > rewrites
Definition: IniParser.h:332
bool no_finalcomment_kill
Definition: IniParser.h:303
const string & operator[](size_t i)
Definition: IniParser.h:159
IoPattern line
Definition: IniParser.h:224
vector< param > params
Definition: IniParser.h:328
string rest
Definition: IniParser.h:156
Definition: IniParser.h:221
#define y2error(format, args...)
Definition: liby2util-r/src/include/y2util/y2log.h:112
string file
Definition: IniParser.h:274
FileDescr()
Definition: IniParser.h:250
Wrapper for YCPListRep This class realizes an automatic memory management via YCPElement. Access the functionality of YCPListRep with the arrow operator. See YCPListRep.
Definition: YCPList.h:236
void UpdateIfModif()
Definition: IniParser.cc:897
bool isStarted()
Definition: IniParser.h:437
bool ignore_case
Definition: IniParser.h:284
bool multiple_files
Definition: IniParser.h:356
RegexMatch(const Regex &rx, const string &s, size_t nmatch=20)
Definition: IniParser.h:168
~TemporaryLocale()
Definition: IniParser.cc:43
bool read_only
Definition: IniParser.h:305
string changeCase(const string &str) const
Definition: IniParser.cc:1125
File description (name, section name, mtime); ini-agent.
Definition: IniParser.h:234
IoPattern begin
Definition: IniParser.h:213
bool HaveRewrites() const
Definition: IniParser.h:474
Regex_t()
has regex been regcomp'd and should it be regfree'd?
Definition: IniParser.h:75
char * my_setlocale(int category, const char *locale)
call setlocale but log errors
Definition: IniParser.cc:50
time_t timestamp
Definition: IniParser.h:247
bool no_nested_sections
Definition: IniParser.h:293
const regex_t * regex() const
Definition: IniParser.h:144
int write_helper(IniSection &ini, ofstream &of, int depth)
Definition: IniParser.cc:1049
bool live
glibc regex buffer
Definition: IniParser.h:72
IniParser(const SCRAgent &agent_)
Definition: IniParser.h:413
bool multiline_valid
Definition: IniParser.h:230
void scanner_stop()
Definition: IniParser.cc:423
Base class for reference counted objects.
Definition: Rep.h:46
int scanner_get(string &s)
Definition: IniParser.cc:428
int compile(const string &pattern, bool ignore_case)
Definition: IniParser.h:90
time_t timestamp
Definition: IniParser.h:262
bool changed()
Definition: IniParser.cc:459
string scanner_file
Definition: IniParser.h:341
vector< Regex > comments
Definition: IniParser.h:320
int _category
Definition: IniParser.h:56
vector< string > matches
Definition: IniParser.h:154
int write_file(const string &target_filename, IniSection §ion)
Definition: IniParser.cc:1004
char * _oldlocale
Definition: IniParser.h:57
Regex()
Definition: IniParser.h:125
Definition: IniParser.h:256