*is_obsolete = false;
for (i = 0; attrs[i]; i++) {
- const char *attr = (const char *)attrs[i++];
- const char *value = (const char *)attrs[i];
+ const char *attr = (const char *)attrs[i++];
+ const char *value = (const char *)attrs[i];
- if (!strcasecmp(attr, "name")) name = value;
- else if (!strcasecmp(attr, "op")) { op_present = true; relation = Rel(value); }
- else if (!strcasecmp(attr, "epoch")) epoch = atoi (value);
- else if (!strcasecmp(attr, "version")) version = value;
- else if (!strcasecmp(attr, "release")) release = value;
- else if (!strcasecmp(attr, "arch")) arch = value;
- else if (!strcasecmp (attr, "obsoletes")) *is_obsolete = true;
- else {
- _DBG("RC_SPEW_XML") << "! Unknown attribute: " << attr << " = " << value << endl;
- }
+ if (!strcasecmp(attr, "name")) name = value;
+ else if (!strcasecmp(attr, "op")) { op_present = true; relation = Rel(value); }
+ else if (!strcasecmp(attr, "epoch")) epoch = atoi (value);
+ else if (!strcasecmp(attr, "version")) version = value;
+ else if (!strcasecmp(attr, "release")) release = value;
+ else if (!strcasecmp(attr, "arch")) arch = value;
+ else if (!strcasecmp (attr, "obsoletes")) *is_obsolete = true;
+ else {
+ _DBG("RC_SPEW_XML") << "! Unknown attribute: " << attr << " = " << value << endl;
+ }
}
XmlParser *ctx = (XmlParser *)ptr;
if (ctx->processing()) return;
- _XXX("RC_SPEW_XML") << "* Start document" << endl;
+// _XXX("RC_SPEW_XML") << "* Start document" << endl;
ctx->setProcessing (true);
}
XmlParser *ctx = (XmlParser *)ptr;
if (!ctx->processing()) return;
- _XXX("RC_SPEW_XML") << "* End document" << endl;
+// _XXX("RC_SPEW_XML") << "* End document" << endl;
ctx->setProcessing (false);
}
_XXX("RC_SPEW_XML") << "* Start element (" << (const char *)name << ")";
if (attrs) {
- for (int i = 0; attrs[i]; i += 2) {
- _DBG("RC_SPEW_XML") << " - Attribute (" << (const char *)attrs[i] << "=" << (const char *)attrs[i+1] << ")" << endl;
- }
+ for (int i = 0; attrs[i]; i += 2) {
+ _DBG("RC_SPEW_XML") << " - Attribute (" << (const char *)attrs[i] << "=" << (const char *)attrs[i+1] << ")" << endl;
+ }
}
#endif
if (!strcmp((const char *)name, "channel") || !strcmp((const char *)name, "subchannel")) {
- /* Unneeded container tags. Ignore */
- return;
+ /* Unneeded container tags. Ignore */
+ return;
}
return ctx->startElement ((const char *)name, attrs);
{
XmlParser *ctx = (XmlParser *)ptr;
- _XXX("RC_SPEW_XML") << "* End element (" << (const char *)name << ")" << endl;
+// _XXX("RC_SPEW_XML") << "* End element (" << (const char *)name << ")" << endl;
if (!strcmp((const char *)name, "channel") || !strcmp((const char *)name, "subchannel")) {
- /* Unneeded container tags. Ignore */
- name = NULL;
+ /* Unneeded container tags. Ignore */
+ name = NULL;
}
return ctx->endElement ((const char *)name);
, _text_buffer (NULL)
, _text_buffer_size (0)
{
- _XXX("RC_SPEW_XML") << "* Context created (" << this << ")" << endl;
+// _XXX("RC_SPEW_XML") << "* Context created (" << this << ")" << endl;
}
_text_buffer_size += size;
_text_buffer[_text_buffer_size] = 0;
- _XXX("RC_SPEW_XML") << "XmlParser[" << this << "]::toBuffer(" << data << "...," << (long)size << ")" << endl;
+// _XXX("RC_SPEW_XML") << "XmlParser[" << this << "]::toBuffer(" << data << "...," << (long)size << ")" << endl;
}
XmlParser::releaseBuffer ()
{
if (_text_buffer)
- free (_text_buffer);
+ free (_text_buffer);
_text_buffer = NULL;
_text_buffer_size = 0;
- _XXX("RC_SPEW_XML") << "XmlParser[" << this << "]::releaseBuffer()" << endl;
+// _XXX("RC_SPEW_XML") << "XmlParser[" << this << "]::releaseBuffer()" << endl;
}
void
XmlParser::parseChunk(const char *xmlbuf, size_t size)
{
- _DBG("RC_SPEW_XML") << "XmlParser::parseChunk(" << xmlbuf << "...," << (long)size << ")" << endl;
+// _DBG("RC_SPEW_XML") << "XmlParser::parseChunk(" << xmlbuf << "...," << (long)size << ")" << endl;
xmlSubstituteEntitiesDefault(true);
if (!_xml_context) {
- _xml_context = xmlCreatePushParserCtxt(&sax_handler, this, NULL, 0, NULL);
+ _xml_context = xmlCreatePushParserCtxt(&sax_handler, this, NULL, 0, NULL);
}
xmlParseChunk(_xml_context, xmlbuf, size, 0);
PackageList
XmlParser::done()
{
- _XXX("RC_SPEW_XML") << "XmlParser::done()" << endl;
+// _XXX("RC_SPEW_XML") << "XmlParser::done()" << endl;
if (_processing)
- xmlParseChunk(_xml_context, NULL, 0, 1);
+ xmlParseChunk(_xml_context, NULL, 0, 1);
if (_xml_context)
- xmlFreeParserCtxt(_xml_context);
+ xmlFreeParserCtxt(_xml_context);
if (!_current_package_stored) {
- fprintf (stderr, "Incomplete package lost\n");
+ fprintf (stderr, "Incomplete package lost\n");
}
if (_current_update) {
- fprintf (stderr, "Incomplete update lost");
+ fprintf (stderr, "Incomplete update lost");
}
return _all_packages;
void
XmlParser::startElement(const char *name, const xmlChar **attrs)
{
- _XXX("RC_SPEW_XML") << "XmlParser::startElement(" << name << ")" << endl;
+// _XXX("RC_SPEW_XML") << "XmlParser::startElement(" << name << ")" << endl;
switch (_state) {
- case PARSER_TOPLEVEL:
- toplevelStart(name, attrs);
- break;
- case PARSER_PACKAGE:
- packageStart(name, attrs);
- break;
- case PARSER_HISTORY:
- historyStart(name, attrs);
- break;
- case PARSER_DEP:
- dependencyStart(name, attrs);
- break;
- default:
- break;
+ case PARSER_TOPLEVEL:
+ toplevelStart(name, attrs);
+ break;
+ case PARSER_PACKAGE:
+ packageStart(name, attrs);
+ break;
+ case PARSER_HISTORY:
+ historyStart(name, attrs);
+ break;
+ case PARSER_DEP:
+ dependencyStart(name, attrs);
+ break;
+ default:
+ break;
}
return;
void
XmlParser::endElement(const char *name)
{
- _XXX("RC_SPEW_XML") << "XmlParser::endElement(" << name << ")" << endl;
+// _XXX("RC_SPEW_XML") << "XmlParser::endElement(" << name << ")" << endl;
if (name != NULL) { // sax_end_element might set name to NULL
- switch (_state) {
- case PARSER_PACKAGE:
- packageEnd(name);
- break;
- case PARSER_HISTORY:
- historyEnd(name);
- break;
- case PARSER_UPDATE:
- updateEnd(name);
- break;
- case PARSER_DEP:
- dependencyEnd(name);
- break;
- default:
- break;
- }
+ switch (_state) {
+ case PARSER_PACKAGE:
+ packageEnd(name);
+ break;
+ case PARSER_HISTORY:
+ historyEnd(name);
+ break;
+ case PARSER_UPDATE:
+ updateEnd(name);
+ break;
+ case PARSER_DEP:
+ dependencyEnd(name);
+ break;
+ default:
+ break;
+ }
}
releaseBuffer();
if (!strcmp(name, "package")) {
- _state = PARSER_PACKAGE;
-
- _current_package_stored = false;
- _current_package_name = "";
- _current_package_prettyName = "";
- _current_package_summary = "";
- _current_package_description = "";
- _current_package_section = "";
- _current_package_kind = ResTraits<zypp::Package>::kind;
- _current_package_arch = Arch_noarch;
- _current_package_edition = Edition::noedition;
- _current_package_fileSize = 0;
- _current_package_installedSize = 0;
- _current_package_installOnly = false;
- _current_package_packageSet = false;
- _current_package_packageUpdateList.clear();
+ _state = PARSER_PACKAGE;
+
+ _current_package_stored = false;
+ _current_package_name = "";
+ _current_package_prettyName = "";
+ _current_package_summary = "";
+ _current_package_description = "";
+ _current_package_section = "";
+ _current_package_kind = ResTraits<zypp::Package>::kind;
+ _current_package_arch = Arch_noarch;
+ _current_package_edition = Edition::noedition;
+ _current_package_fileSize = 0;
+ _current_package_installedSize = 0;
+ _current_package_installOnly = false;
+ _current_package_packageSet = false;
+ _current_package_packageUpdateList.clear();
- _current_requires.clear();
- _current_provides.clear();
- _current_conflicts.clear();
- _current_children.clear();
- _current_recommends.clear();
- _current_suggests.clear();
- _current_obsoletes.clear();
+ _current_requires.clear();
+ _current_provides.clear();
+ _current_conflicts.clear();
+ _current_children.clear();
+ _current_recommends.clear();
+ _current_suggests.clear();
+ _current_obsoletes.clear();
}
else {
- _DBG("RC_SPEW_XML") << "! Not handling " << (const char *)name << " at toplevel" << endl;
+ _DBG("RC_SPEW_XML") << "! Not handling " << (const char *)name << " at toplevel" << endl;
}
}
void
XmlParser::packageStart(const char * name, const xmlChar **attrs)
{
- _XXX("RC_SPEW_XML") << "XmlParser::packageStart(" << name << ")" << endl;
+// _XXX("RC_SPEW_XML") << "XmlParser::packageStart(" << name << ")" << endl;
/* Only care about the containers here */
if (!strcmp((const char *)name, "history")) {
- _state = PARSER_HISTORY;
+ _state = PARSER_HISTORY;
}
else if (!strcmp (name, "deps")) {
- /*
- * We can get a <deps> tag surrounding the actual package
- * dependency sections (requires, provides, conflicts, etc).
- * In this case, we'll just ignore this tag quietly.
- */
+ /*
+ * We can get a <deps> tag surrounding the actual package
+ * dependency sections (requires, provides, conflicts, etc).
+ * In this case, we'll just ignore this tag quietly.
+ */
}
else if (!strcmp(name, "requires")) {
- _state = PARSER_DEP;
- _current_dep_list = _toplevel_dep_list = &_current_requires;
+ _state = PARSER_DEP;
+ _current_dep_list = _toplevel_dep_list = &_current_requires;
}
else if (!strcmp(name, "recommends")) {
- _state = PARSER_DEP;
- _current_dep_list = _toplevel_dep_list = &_current_recommends;
+ _state = PARSER_DEP;
+ _current_dep_list = _toplevel_dep_list = &_current_recommends;
}
else if (!strcmp(name, "suggests")) {
- _state = PARSER_DEP;
- _current_dep_list = _toplevel_dep_list = &_current_suggests;
+ _state = PARSER_DEP;
+ _current_dep_list = _toplevel_dep_list = &_current_suggests;
}
else if (!strcmp(name, "conflicts")) {
- bool is_obsolete = false;
- int i;
+ bool is_obsolete = false;
+ int i;
- _state = PARSER_DEP;
+ _state = PARSER_DEP;
- for (i = 0; attrs && attrs[i] && !is_obsolete; i += 2) {
+ for (i = 0; attrs && attrs[i] && !is_obsolete; i += 2) {
- if (!strcasecmp ((const char *)(attrs[i]), "obsoletes"))
- is_obsolete = true;
- }
+ if (!strcasecmp ((const char *)(attrs[i]), "obsoletes"))
+ is_obsolete = true;
+ }
- if (is_obsolete)
- _current_dep_list = _toplevel_dep_list = &_current_obsoletes;
- else {
- _current_dep_list = _toplevel_dep_list = &_current_conflicts;
- }
+ if (is_obsolete)
+ _current_dep_list = _toplevel_dep_list = &_current_obsoletes;
+ else {
+ _current_dep_list = _toplevel_dep_list = &_current_conflicts;
+ }
}
else if (!strcmp(name, "obsoletes")) {
- _state = PARSER_DEP;
- _current_dep_list = _toplevel_dep_list = &_current_obsoletes;
+ _state = PARSER_DEP;
+ _current_dep_list = _toplevel_dep_list = &_current_obsoletes;
}
else if (!strcmp(name, "provides")) {
- _state = PARSER_DEP;
- _current_dep_list = _toplevel_dep_list = &_current_provides;
+ _state = PARSER_DEP;
+ _current_dep_list = _toplevel_dep_list = &_current_provides;
}
else if (!strcmp(name, "children")) {
- _state = PARSER_DEP;
- _current_dep_list = _toplevel_dep_list = &_current_children;
+ _state = PARSER_DEP;
+ _current_dep_list = _toplevel_dep_list = &_current_children;
}
else {
- _XXX("RC_SPEW_XML") << "! Not handling " << name << " in package start" << endl;
+ _XXX("RC_SPEW_XML") << "! Not handling " << name << " in package start" << endl;
}
}
void
XmlParser::historyStart(const char * name, const xmlChar **attrs)
{
- _XXX("RC_SPEW_XML") << "XmlParser::historyStart(" << name << ")" << endl;
+// _XXX("RC_SPEW_XML") << "XmlParser::historyStart(" << name << ")" << endl;
if (!strcmp(name, "update")) {
- assert(_current_update == NULL);
+ assert(_current_update == NULL);
- _current_update = new PackageUpdate(_current_package_name);
+ _current_update = new PackageUpdate(_current_package_name);
- _state = PARSER_UPDATE;
+ _state = PARSER_UPDATE;
}
else {
- _XXX("RC_SPEW_XML") << "! Not handling " << name << " in history" << endl;
+ _XXX("RC_SPEW_XML") << "! Not handling " << name << " in history" << endl;
}
}
void
XmlParser::dependencyStart(const char *name, const xmlChar **attrs)
{
- _XXX("RC_SPEW_XML") << "XmlParser::dependencyStart(" << name << ")" << endl;
+// _XXX("RC_SPEW_XML") << "XmlParser::dependencyStart(" << name << ")" << endl;
if (!strcmp(name, "dep")) {
- Capability dep;
- bool is_obsolete;
+ Capability dep;
+ bool is_obsolete;
- dep = parse_dep_attrs(&is_obsolete, attrs);
+ dep = parse_dep_attrs(&is_obsolete, attrs);
- if (is_obsolete)
- _current_obsoletes.insert (dep);
- else {
- _current_dep_list->insert (dep);
- }
+ if (is_obsolete)
+ _current_obsoletes.insert (dep);
+ else {
+ _current_dep_list->insert (dep);
+ }
}
else if (!strcmp(name, "or"))
- _current_dep_list->clear();
+ _current_dep_list->clear();
else {
- _DBG("RC_SPEW_XML") << "! Not handling " << name << " in dependency" << endl;
+ _DBG("RC_SPEW_XML") << "! Not handling " << name << " in dependency" << endl;
}
}
void
XmlParser::packageEnd(const char *name)
{
- _XXX("RC_SPEW_XML") << "XmlParser::packageEnd(" << name << ")" << endl;
+// _XXX("RC_SPEW_XML") << "XmlParser::packageEnd(" << name << ")" << endl;
if (!strcmp(name, "package")) {
- PackageUpdate_Ptr update = NULL;
-
- /* If possible, grab the version info from the most recent update.
- * Otherwise, try to find where the package provides itself and use
- * that version info.
- */
- if (!_current_package_packageUpdateList.empty())
- update = _current_package_packageUpdateList.back();
-
- if (update) {
- _current_package_name = update->name();
- _current_package_kind = update->kind();
- _current_package_edition = update->edition();
- _current_package_fileSize = update->packageSize();
- _current_package_installedSize = update->installedSize();
- }
+ PackageUpdate_Ptr update = NULL;
+
+ /* If possible, grab the version info from the most recent update.
+ * Otherwise, try to find where the package provides itself and use
+ * that version info.
+ */
+ if (!_current_package_packageUpdateList.empty())
+ update = _current_package_packageUpdateList.back();
+
+ if (update) {
+ _current_package_name = update->name();
+ _current_package_kind = update->kind();
+ _current_package_edition = update->edition();
+ _current_package_fileSize = update->packageSize();
+ _current_package_installedSize = update->installedSize();
+ }
#if 0 //Is this really needed ?
- else {
- for (CapSet::const_iterator iter = _current_provides.begin(); iter != _current_provides.end(); iter++) {
- if ((*iter)->relation() == Rel::EQ
- && ((*iter)->name() == _current_package_name))
- {
- _current_package_kind = (*iter)->kind();
- _current_package_edition = (*iter)->edition();
- break;
- }
- }
- }
+ else {
+ for (CapSet::const_iterator iter = _current_provides.begin(); iter != _current_provides.end(); iter++) {
+ if ((*iter)->relation() == Rel::EQ
+ && ((*iter)->name() == _current_package_name))
+ {
+ _current_package_kind = (*iter)->kind();
+ _current_package_edition = (*iter)->edition();
+ break;
+ }
+ }
+ }
#endif
- // check if we provide ourselfs properly
+ // check if we provide ourselfs properly
- CapFactory factory;
- Capability selfdep = factory.parse ( ResTraits<zypp::Package>::kind,
- _current_package_name,
- Rel::EQ,
+ CapFactory factory;
+ Capability selfdep = factory.parse ( ResTraits<zypp::Package>::kind,
+ _current_package_name,
+ Rel::EQ,
_current_package_edition);
- CapSet::const_iterator piter;
- for (piter = _current_provides.begin(); piter != _current_provides.end(); piter++) {
- if ((*piter) == selfdep)
- {
- break;
- }
- }
+ CapSet::const_iterator piter;
+ for (piter = _current_provides.begin(); piter != _current_provides.end(); piter++) {
+ if ((*piter) == selfdep)
+ {
+ break;
+ }
+ }
- if (piter == _current_provides.end()) { // no self provide found, construct one
- _XXX("RC_SPEW") << "Adding self-provide [" << selfdep.asString() << "]" << endl;
- _current_provides.insert (selfdep);
- }
+ if (piter == _current_provides.end()) { // no self provide found, construct one
+ _XXX("RC_SPEW") << "Adding self-provide [" << selfdep.asString() << "]" << endl;
+ _current_provides.insert (selfdep);
+ }
- Package_Ptr package = new Package ( _channel,
- _current_package_name,
- _current_package_edition,
- _current_package_arch);
+ Package_Ptr package = new Package ( _channel,
+ _current_package_name,
+ _current_package_edition,
+ _current_package_arch);
if (_channel->system()) // simulate system channel by loading xml file
package->setInstalled (true);
- Dependencies deps;
- deps.setRequires (_current_requires);
- deps.setProvides (_current_provides);
- deps.setConflicts (_current_conflicts);
- deps.setObsoletes (_current_obsoletes);
- deps.setSuggests (_current_suggests);
- deps.setRecommends (_current_recommends);
- package->setDependencies (deps);
- package->setPrettyName (_current_package_prettyName);
- package->setSummary (_current_package_summary);
- package->setDescription (_current_package_description);
- package->setFileSize (_current_package_fileSize);
- package->setInstalledSize (_current_package_installedSize);
- package->setInstallOnly (_current_package_installOnly);
- package->setPackageSet (_current_package_packageSet);
- for (PackageUpdateList::iterator iter = _current_package_packageUpdateList.begin();
- iter != _current_package_packageUpdateList.end();
- iter++) {
- PackageUpdate_Ptr update = *iter;
- update->setPackage (package);
- package->addUpdate (update);
- }
- _all_packages.push_back (package);
+ Dependencies deps;
+ deps.setRequires (_current_requires);
+ deps.setProvides (_current_provides);
+ deps.setConflicts (_current_conflicts);
+ deps.setObsoletes (_current_obsoletes);
+ deps.setSuggests (_current_suggests);
+ deps.setRecommends (_current_recommends);
+ package->setDependencies (deps);
+ package->setPrettyName (_current_package_prettyName);
+ package->setSummary (_current_package_summary);
+ package->setDescription (_current_package_description);
+ package->setFileSize (_current_package_fileSize);
+ package->setInstalledSize (_current_package_installedSize);
+ package->setInstallOnly (_current_package_installOnly);
+ package->setPackageSet (_current_package_packageSet);
+ for (PackageUpdateList::iterator iter = _current_package_packageUpdateList.begin();
+ iter != _current_package_packageUpdateList.end();
+ iter++) {
+ PackageUpdate_Ptr update = *iter;
+ update->setPackage (package);
+ package->addUpdate (update);
+ }
+ _all_packages.push_back (package);
- _DBG("RC_SPEW") << package->asString(true) << endl;
- _DBG("RC_SPEW_XML") << "XmlParser::packageEnd done: '" << package->asString(true) << "'" << endl;
- _XXX("RC_SPEW_XML") << "XmlParser::packageEnd now " << _all_packages.size() << " packages" << endl;
- _current_package_stored = true;
- _state = PARSER_TOPLEVEL;
+// _DBG("RC_SPEW") << package->asString(true) << endl;
+ _DBG("RC_SPEW_XML") << "XmlParser::packageEnd done: '" << package->asString(true) << "'" << endl;
+// _XXX("RC_SPEW_XML") << "XmlParser::packageEnd now " << _all_packages.size() << " packages" << endl;
+ _current_package_stored = true;
+ _state = PARSER_TOPLEVEL;
}
else if (!strcmp(name, "name")) { _current_package_name = strstrip (_text_buffer);
} else if (!strcmp(name, "pretty_name")) { _current_package_prettyName = strstrip (_text_buffer);
} else if (!strcmp(name, "section")) { _current_package_section = strstrip (_text_buffer);
} else if (!strcmp(name, "arch")) { _current_package_arch = Arch(strstrip (_text_buffer));
} else if (!strcmp(name, "filesize")) { _current_package_fileSize = atoi(_text_buffer);
- } else if (!strcmp(name, "installedsize")) { _current_package_installedSize = atoi(_text_buffer);
+ } else if (!strcmp(name, "installedsize")) { _current_package_installedSize = atoi(_text_buffer);
} else if (!strcmp(name, "install_only")) { _current_package_installOnly = true;
} else if (!strcmp(name, "package_set")) { _current_package_packageSet = true;
} else {
- _DBG("RC_SPEW_XML") << "XmlParser::packageEnd(" << name << ") unknown" << endl;
+ _DBG("RC_SPEW_XML") << "XmlParser::packageEnd(" << name << ") unknown" << endl;
}
- _XXX("RC_SPEW_XML") << "XmlParser::packageEnd(" << name << ") done" << endl;
+// _XXX("RC_SPEW_XML") << "XmlParser::packageEnd(" << name << ") done" << endl;
releaseBuffer();
}
void
XmlParser::historyEnd(const char *name)
{
- _XXX("RC_SPEW_XML") << "XmlParser::historyEnd(" << name << ")" << endl;
+// _XXX("RC_SPEW_XML") << "XmlParser::historyEnd(" << name << ")" << endl;
if (!strcmp(name, "history")) {
- assert(_current_update == NULL);
+ assert(_current_update == NULL);
- _state = PARSER_PACKAGE;
+ _state = PARSER_PACKAGE;
}
}
void
XmlParser::updateEnd(const char *name)
{
- _XXX("RC_SPEW_XML") << "XmlParser::updateEnd(" << name << ")" << endl;
+// _XXX("RC_SPEW_XML") << "XmlParser::updateEnd(" << name << ")" << endl;
Channel_constPtr channel;
string url_prefix;
assert(_current_update != NULL);
if (_channel != NULL) {
- url_prefix = _channel->filePath ();
+ url_prefix = _channel->filePath ();
}
if (!strcmp(name, "update")) {
- _current_package_packageUpdateList.push_back(_current_update);
+ _current_package_packageUpdateList.push_back(_current_update);
- _current_update = NULL;
- _state = PARSER_HISTORY;
+ _current_update = NULL;
+ _state = PARSER_HISTORY;
} else if (!strcmp(name, "epoch")) { _current_update->setEpoch (atoi(_text_buffer));
} else if (!strcmp(name, "version")) { _current_update->setVersion (strstrip (_text_buffer));
} else if (!strcmp(name, "release")) { _current_update->setRelease (strstrip (_text_buffer));
} else if (!strcmp(name, "arch")) { _current_update->setArch (strstrip (_text_buffer));
} else if (!strcmp(name, "filename")) {
- strstrip (_text_buffer);
- if (!url_prefix.empty()) {
- _current_update->setPackageUrl (maybe_merge_paths(url_prefix, _text_buffer));
- }
- else {
- _current_update->setPackageUrl (_text_buffer);
- }
+ strstrip (_text_buffer);
+ if (!url_prefix.empty()) {
+ _current_update->setPackageUrl (maybe_merge_paths(url_prefix, _text_buffer));
+ }
+ else {
+ _current_update->setPackageUrl (_text_buffer);
+ }
} else if (!strcmp(name, "filesize")) { _current_update->setPackageSize (atoi(_text_buffer));
} else if (!strcmp(name, "installedsize")) { _current_update->setInstalledSize (atoi (_text_buffer));
} else if (!strcmp(name, "signaturename")) {
- strstrip (_text_buffer);
- if (!url_prefix.empty()) {
- _current_update->setSignatureUrl (maybe_merge_paths(url_prefix, _text_buffer));
- }
- else {
- _current_update->setSignatureUrl (_text_buffer);
- }
+ strstrip (_text_buffer);
+ if (!url_prefix.empty()) {
+ _current_update->setSignatureUrl (maybe_merge_paths(url_prefix, _text_buffer));
+ }
+ else {
+ _current_update->setSignatureUrl (_text_buffer);
+ }
} else if (!strcmp(name, "signaturesize")) { _current_update->setSignatureSize (atoi (_text_buffer));
} else if (!strcmp(name, "md5sum")) { _current_update->setMd5sum (strstrip (_text_buffer));
} else if (!strcmp(name, "importance")) { _current_update->setImportance (Importance::parse (strstrip (_text_buffer)));
} else if (!strcmp(name, "hid")) { _current_update->setHid (atoi(_text_buffer));
} else if (!strcmp (name, "license")) { _current_update->setLicense (strstrip (_text_buffer));
} else {
- fprintf (stderr, "XmlParser::updateEnd(%s) unknown\n", name);
+ fprintf (stderr, "XmlParser::updateEnd(%s) unknown\n", name);
}
- if (_current_update != NULL )
- _DBG("RC_SPEW_XML") << "XmlParser::updateEnd(" << name << ") => '" << _current_update->asString() << "'" << endl;
+// if (_current_update != NULL )
+// _DBG("RC_SPEW_XML") << "XmlParser::updateEnd(" << name << ") => '" << _current_update->asString() << "'" << endl;
releaseBuffer();
void
XmlParser::dependencyEnd(const char *name)
{
- _XXX("RC_SPEW_XML") << "XmlParser::dependencyEnd(" << name << ")" << endl;
+// _XXX("RC_SPEW_XML") << "XmlParser::dependencyEnd(" << name << ")" << endl;
if (!strcmp(name, "or")) {
#if 0
- OrDependency_Ptr or_dep = OrDependency::fromDependencyList (*_current_dep_list);
- Dependency_Ptr dep = new Dependency (or_dep);
+ OrDependency_Ptr or_dep = OrDependency::fromDependencyList (*_current_dep_list);
+ Dependency_Ptr dep = new Dependency (or_dep);
- (*_current_dep_list).clear();
+ (*_current_dep_list).clear();
- (*_toplevel_dep_list).push_back (dep);
- _current_dep_list = _toplevel_dep_list;
+ (*_toplevel_dep_list).push_back (dep);
+ _current_dep_list = _toplevel_dep_list;
#endif
}
else if (!strcmp(name, "dep")) {
- /* We handled everything we needed for dep in start */
+ /* We handled everything we needed for dep in start */
}
else {
- /* All of the dep lists (requires, provides, etc.) */
- _toplevel_dep_list = NULL;
- _current_dep_list = NULL;
- _state = PARSER_PACKAGE;
+ /* All of the dep lists (requires, provides, etc.) */
+ _toplevel_dep_list = NULL;
+ _current_dep_list = NULL;
+ _state = PARSER_PACKAGE;
}
}
gchar *tmp;
if (g_strcasecmp (node->name, "dep")) {
- return (NULL);
+ return (NULL);
}
name = xml_get_prop (node, "name");
tmp = xml_get_prop (node, "op");
if (tmp) {
- relation = rc_resItem_relation_from_string (tmp);
+ relation = rc_resItem_relation_from_string (tmp);
- has_epoch = xml_get_guint32_value (node, "epoch", &epoch);
+ has_epoch = xml_get_guint32_value (node, "epoch", &epoch);
- version = xml_get_prop (node, "version");
- release = xml_get_prop (node, "release");
+ version = xml_get_prop (node, "version");
+ release = xml_get_prop (node, "release");
} else {
- relation = RC_RELATION_ANY;
+ relation = RC_RELATION_ANY;
}
/* FIXME: should get channel from XML */
dep = rc_resItem_dep_new (name, has_epoch, epoch, version, release,
- relation, RC_TYPE_RESOLVABLE, RC_CHANNEL_ANY,
- false, false);
+ relation, RC_TYPE_RESOLVABLE, RC_CHANNEL_ANY,
+ false, false);
g_free (tmp);
g_free (name);
RCResItemDep *dep = NULL;
if (!g_strcasecmp (node->name, "dep")) {
- dep = rc_xml_node_to_resItem_dep_internal (node);
- return (dep);
+ dep = rc_xml_node_to_resItem_dep_internal (node);
+ return (dep);
} else if (!g_strcasecmp (node->name, "or")) {
- RCResItemDepSList *or_dep_slist = NULL;
- RCDepOr *or;
- xmlNode *iter = node->xmlChildrenNode;
+ RCResItemDepSList *or_dep_slist = NULL;
+ RCDepOr *or;
+ xmlNode *iter = node->xmlChildrenNode;
- while (iter) {
- if (iter->type == XML_ELEMENT_NODE) {
- or_dep_slist = g_slist_append(
- or_dep_slist,
- rc_xml_node_to_resItem_dep_internal (iter));
- }
+ while (iter) {
+ if (iter->type == XML_ELEMENT_NODE) {
+ or_dep_slist = g_slist_append(
+ or_dep_slist,
+ rc_xml_node_to_resItem_dep_internal (iter));
+ }
- iter = iter->next;
- }
+ iter = iter->next;
+ }
- or = rc_dep_or_new (or_dep_slist);
- dep = rc_dep_or_new_provide (or);
+ or = rc_dep_or_new (or_dep_slist);
+ dep = rc_dep_or_new_provide (or);
}
return (dep);
return dup;
if (dup) {
- for (c = dup; *c; ++c) {
- if ((guint)*c > 0x7f)
- *c = '_';
- }
+ for (c = dup; *c; ++c) {
+ if ((guint)*c > 0x7f)
+ *c = '_';
+ }
}
return dup;