13 #ifndef __IniParser_h__
14 #define __IniParser_h__
41 #pragma GCC visibility push(hidden)
57 #pragma GCC visibility pop
88 int compile (
const string& pattern,
bool ignore_case) {
92 y2error (
"Regex_t @%p already compiled",
this);
99 ret = regcomp (&
regex, pattern.c_str (),
100 REG_EXTENDED | (ignore_case ? REG_ICASE : 0));
104 regerror (ret, &
regex, error, 256);
105 y2error (
"Regex_t %s error: %s", pattern.c_str (), error);
130 int compile (
const string& pattern,
bool ignore_case) {
133 y2error (
"Regex_t @%p already compiled",
this);
139 return rxtp->compile (pattern, ignore_case);
142 const regex_t *
regex ()
const {
return &
rxtp->regex; }
159 operator bool () {
return matches.size () > 0; }
172 regmatch_t rm_matches[nmatch];
173 if (0 == regexec (rx.
regex (), s.c_str (), nmatch, rm_matches, 0))
177 rest = s.substr (0, rm_matches[0].rm_so) +
178 s.substr (rm_matches[0].rm_eo);
183 rm_matches[0].rm_so = -1;
188 for (i = 0; i < nmatch && rm_matches[i].rm_so != -1; ++i)
190 matches.push_back (s.substr (rm_matches[i].rm_so,
191 rm_matches[i].rm_eo - rm_matches[i].rm_so));
458 string getFileName (
const string&sec,
int rb)
const;
477 #endif//__IniParser_h__
vector< section > sections
Definition: IniParser.h:319
int write()
Definition: IniParser.cc:937
Regex begin
Definition: IniParser.h:224
Definition: IniParser.h:200
Set and later restore a locale category.
Definition: IniParser.h:45
Regex_tPtr rxtp
Definition: IniParser.h:121
int scanner_start(const char *fn)
Definition: IniParser.cc:414
#define str
Definition: scanner.cc:997
string sn
Definition: IniParser.h:241
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:69
Definition: IniFile.h:227
int parse_helper(IniSection &ini)
Definition: IniParser.cc:568
bool sectionNeedsEnd(int i)
Definition: IniParser.h:449
string out
Definition: IniParser.h:203
string subindent
Definition: IniParser.h:307
map< const string, inisection > inifile
Definition: miniini.h:21
bool end_valid
Definition: IniParser.h:213
bool ignore_case_regexps
Definition: IniParser.h:277
Definition: IniParser.h:148
IoPattern end
Definition: IniParser.h:212
Definition: IniParser.h:209
ifstream scanner
Definition: IniParser.h:332
bool flat
Definition: IniParser.h:302
vector< Regex > linecomments
Definition: IniParser.h:311
int compile(const string &pattern, bool ignore_case)
Definition: IniParser.h:130
vector< string > files
Definition: IniParser.h:355
IniParser()
Definition: IniParser.h:401
bool repeatNames() const
accessor method
Definition: IniParser.h:465
set< string > deleted_sections
Definition: IniParser.h:394
bool prefer_uppercase
Definition: IniParser.h:281
Definition: IniParser.h:119
Regex end
Definition: IniParser.h:226
bool isFlat() const
accessor method
Definition: IniParser.h:467
bool first_upper
Definition: IniParser.h:286
IniSection inifile
Definition: IniParser.h:398
int write_file(const string &filename, IniSection §ion)
Definition: IniParser.cc:1004
~IniParser()
Definition: IniParser.cc:58
map< string, FileDescr > multi_files
Definition: IniParser.h:265
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:340
bool started
Definition: IniParser.h:346
time_t getTimeStamp()
Definition: IniParser.cc:922
string fn
Definition: IniParser.h:237
bool comments_last
Definition: IniParser.h:294
bool global_values
Definition: IniParser.h:290
bool repeat_names
Definition: IniParser.h:292
bool join_multiline
Definition: IniParser.h:296
string getFileName(const string &sec, int rb) const
Definition: IniParser.cc:1109
Definition: IniParser.h:63
~Regex_t()
Definition: IniParser.h:75
Regex rx
Definition: IniParser.h:202
bool line_can_continue
Definition: IniParser.h:275
bool shell_quoted_value
Definition: IniParser.h:304
int initMachine(const YCPMap &scr)
Definition: IniParser.cc:171
int parse()
Definition: IniParser.cc:488
vector< IoPattern > rewrites
Definition: IniParser.h:327
bool no_finalcomment_kill
Definition: IniParser.h:298
const string & operator[](size_t i)
Definition: IniParser.h:157
IoPattern line
Definition: IniParser.h:222
vector< param > params
Definition: IniParser.h:323
string rest
Definition: IniParser.h:154
Definition: IniParser.h:219
#define y2error(format, args...)
Definition: liby2util-r/src/include/y2util/y2log.h:112
string file
Definition: IniParser.h:269
FileDescr()
Definition: IniParser.h:248
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:426
bool ignore_case
Definition: IniParser.h:279
bool multiple_files
Definition: IniParser.h:351
RegexMatch(const Regex &rx, const string &s, size_t nmatch=20)
Definition: IniParser.h:166
~TemporaryLocale()
Definition: IniParser.cc:43
bool read_only
Definition: IniParser.h:300
string changeCase(const string &str) const
Definition: IniParser.cc:1129
File description (name, section name, mtime); ini-agent.
Definition: IniParser.h:232
IoPattern begin
Definition: IniParser.h:211
bool HaveRewrites() const
Definition: IniParser.h:462
Regex_t()
has regex been regcomp'd and should it be regfree'd?
Definition: IniParser.h:73
char * my_setlocale(int category, const char *locale)
call setlocale but log errors
Definition: IniParser.cc:50
time_t timestamp
Definition: IniParser.h:245
bool no_nested_sections
Definition: IniParser.h:288
const regex_t * regex() const
Definition: IniParser.h:142
int write_helper(IniSection &ini, ofstream &of, int depth)
Definition: IniParser.cc:1049
bool live
glibc regex buffer
Definition: IniParser.h:70
bool multiline_valid
Definition: IniParser.h:228
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:88
time_t timestamp
Definition: IniParser.h:260
bool changed()
Definition: IniParser.cc:459
string scanner_file
Definition: IniParser.h:336
vector< Regex > comments
Definition: IniParser.h:315
int _category
Definition: IniParser.h:54
vector< string > matches
Definition: IniParser.h:152
#define DEFINE_BASE_POINTER(NAME)
Definition: RepDef.h:53
char * _oldlocale
Definition: IniParser.h:55
Regex()
Definition: IniParser.h:123
Definition: IniParser.h:254