/** Zwraca wyszukane identyfikatory miast dla szukanego miasta **/ void WeatherParser::getSearch(const QString &page, const PlainConfigFile *wConfig, const QString &serverConfigFile, CITYSEARCHRESULTS *results) const { kdebugf(); bool CaseSensitive = wConfig->readBoolEntry("Default","CaseSensitive"); long int start, separator, end, current; long int startData, sepData; bool idFirst; QString section, starttag, septag, endtag, first, second; int countResults = wConfig->readNumEntry("Name Search","SearchResults"); for (int i = 0; i < countResults; i++) { section = QString("SearchResult%1").arg(i + 1); idFirst = wConfig->readBoolEntry(section,"IDFirst"); starttag = wConfig->readEntry(section,"Start"); septag = wConfig->readEntry(section,"Separator"); endtag = wConfig->readEntry(section,"End"); current = 0; do { start = page.find(starttag, current, CaseSensitive); startData = start + starttag.length(); separator = page.find(septag, startData, CaseSensitive); sepData = separator + septag.length(); end = page.find(endtag, sepData, CaseSensitive); if (end != -1 && start != -1 && separator != -1) { first = page.mid(startData, separator-startData); second = page.mid(sepData, end-sepData); if (!first.isEmpty() && !second.isEmpty()) { if (idFirst) results->push_back(CitySearchResult(tagClean(second), first, serverConfigFile)); else results->push_back(CitySearchResult(tagClean(first), second, serverConfigFile)); } current = end + endtag.length(); } } while (end != -1 && start != -1 && separator != -1); } kdebugf2(); }
/** Wylawianie fragmentu ze strony **/ bool WeatherParser::getDataValue(const QString &page, WDataValue &wdata, int &cursor, const PlainConfigFile *wConfig, bool CaseSensitive) const { kdebugf(); long int start, end; long int startData; start = page.find(wdata.Start, cursor, CaseSensitive); if (start == -1) return false; startData = start + wdata.Start.length(); end = page.find(wdata.End, startData, CaseSensitive); if (end == -1) return false; cursor = end; wdata.Content = tagClean(page.mid(startData, end-startData)); kdebugf2(); return true; }
poptContext rpmcliFini(poptContext optCon) /*@globals keyids @*/ /*@modifies keyids @*/ { /*@-nestedextern@*/ extern rpmioPool _rpmjsPool; extern rpmioPool _rpmrubyPool; extern rpmioPool _headerPool; extern rpmioPool _rpmmiPool; extern rpmioPool _dbiPool; extern rpmioPool _rpmdbPool; extern rpmioPool _rpmrepoPool; extern rpmioPool _rpmwfPool; extern const char * evr_tuple_order; extern const char * evr_tuple_match; extern miRE evr_tuple_mire; /*@=nestedextern@*/ /*@-mods@*/ evr_tuple_order = _free(evr_tuple_order); evr_tuple_match = _free(evr_tuple_match); evr_tuple_mire = mireFree(evr_tuple_mire); /*@-onlyunqglobaltrans@*/ /* Realease (and dereference) embedded interpreter global objects first. */ _rpmjsI = rpmjsFree(_rpmjsI); _rpmjsPool = rpmioFreePool(_rpmjsPool); _rpmrubyI = rpmrubyFree(_rpmrubyI); _rpmrubyPool = rpmioFreePool(_rpmrubyPool); _rpmgiPool = rpmioFreePool(_rpmgiPool); _rpmmiPool = rpmioFreePool(_rpmmiPool); _psmPool = rpmioFreePool(_psmPool); _rpmtsiPool = rpmioFreePool(_rpmtsiPool); _rpmtsPool = rpmioFreePool(_rpmtsPool); _rpmtePool = rpmioFreePool(_rpmtePool); _rpmpsPool = rpmioFreePool(_rpmpsPool); _rpmfcPool = rpmioFreePool(_rpmfcPool); rpmnsClean(); _rpmdsPool = rpmioFreePool(_rpmdsPool); _rpmfiPool = rpmioFreePool(_rpmfiPool); _rpmwfPool = rpmioFreePool(_rpmwfPool); _rpmdbPool = rpmioFreePool(_rpmdbPool); _rpmrepoPool = rpmioFreePool(_rpmrepoPool); _dbiPool = rpmioFreePool(_dbiPool); _headerPool = rpmioFreePool(_headerPool); /*@=onlyunqglobaltrans@*/ /*@=mods@*/ /* XXX this should be done in the rpmioClean() wrapper. */ /* keeps memory leak checkers quiet */ rpmFreeMacros(NULL); /*@i@*/ rpmFreeMacros(rpmCLIMacroContext); rpmFreeRpmrc(); /* XXX mireFreeAll(platpat) before rpmioFreePool. */ rpmFreeFilesystems(); /*@i@*/ rpmcliTargets = _free(rpmcliTargets); keyids = _free(keyids); tagClean(NULL); /* Free header tag indices. */ rpmioClean(); /* XXX rpmioFreePool()'s after everything else. */ optCon = poptFreeContext(optCon); #if defined(HAVE_MCHECK_H) && defined(HAVE_MTRACE) /*@-noeffect@*/ muntrace(); /* Trace malloc only if MALLOC_TRACE=mtrace-output-file. */ /*@=noeffect@*/ #endif /*@-globstate@*/ return NULL; /*@=globstate@*/ }