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 (®ex, pattern.c_str (),
102 REG_EXTENDED | (ignore_case ? REG_ICASE : 0));
106 regerror (ret, ®ex, 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))
178 matches.reserve (nmatch);
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));
410 linecomments (), comments (),
411 sections (), params (), rewrites (),
412 started (false), multiple_files (false),
413 agent(agent_), inifile (this)
464 string getFileName (
const string&sec,
int rb)
const;
483 #endif//__IniParser_h__
vector< section > sections
Definition: IniParser.h:321
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:455
string out
Definition: IniParser.h:205
string subindent
Definition: IniParser.h:309
bool end_valid
Definition: IniParser.h:215
bool ignore_case_regexps
Definition: IniParser.h:279
Definition: IniParser.h:150
IoPattern end
Definition: IniParser.h:214
Definition: IniParser.h:211
ifstream scanner
Definition: IniParser.h:334
bool flat
Definition: IniParser.h:304
vector< Regex > linecomments
Definition: IniParser.h:313
int compile(const string &pattern, bool ignore_case)
Definition: IniParser.h:132
vector< string > files
Definition: IniParser.h:357
bool repeatNames() const
accessor method
Definition: IniParser.h:471
set< string > deleted_sections
Definition: IniParser.h:401
bool prefer_uppercase
Definition: IniParser.h:283
Definition: IniParser.h:121
Regex end
Definition: IniParser.h:228
bool isFlat() const
accessor method
Definition: IniParser.h:473
bool first_upper
Definition: IniParser.h:288
IniSection inifile
Definition: IniParser.h:405
int write_file(const string &filename, IniSection §ion)
Definition: IniParser.cc:1004
~IniParser()
Definition: IniParser.cc:58
const SCRAgent & agent
Definition: IniParser.h:362
map< string, FileDescr > multi_files
Definition: IniParser.h:267
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:342
bool started
Definition: IniParser.h:348
time_t getTimeStamp()
Definition: IniParser.cc:922
string fn
Definition: IniParser.h:239
bool comments_last
Definition: IniParser.h:296
bool global_values
Definition: IniParser.h:292
DEFINE_BASE_POINTER(Regex_t)
bool repeat_names
Definition: IniParser.h:294
SuSE Configuration Repository Agent.
Definition: SCRAgent.h:37
bool join_multiline
Definition: IniParser.h:298
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:277
bool shell_quoted_value
Definition: IniParser.h:306
int initMachine(const YCPMap &scr)
Definition: IniParser.cc:171
int parse()
Definition: IniParser.cc:488
vector< IoPattern > rewrites
Definition: IniParser.h:329
bool no_finalcomment_kill
Definition: IniParser.h:300
const string & operator[](size_t i)
Definition: IniParser.h:159
IoPattern line
Definition: IniParser.h:224
vector< param > params
Definition: IniParser.h:325
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:271
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:432
bool ignore_case
Definition: IniParser.h:281
bool multiple_files
Definition: IniParser.h:353
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:302
string changeCase(const string &str) const
Definition: IniParser.cc:1129
File description (name, section name, mtime); ini-agent.
Definition: IniParser.h:234
IoPattern begin
Definition: IniParser.h:213
bool HaveRewrites() const
Definition: IniParser.h:468
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:290
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:408
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:338
vector< Regex > comments
Definition: IniParser.h:317
int _category
Definition: IniParser.h:56
vector< string > matches
Definition: IniParser.h:154
char * _oldlocale
Definition: IniParser.h:57
Regex()
Definition: IniParser.h:125
Definition: IniParser.h:256