From 11897437f953ab9107380ad528f6e1e455de1ef2 Mon Sep 17 00:00:00 2001 From: Kiran Mathew Koshy Date: Wed, 18 Sep 2013 00:28:35 +0530 Subject: [PATCH] Kiwix manage now adds origID tag automatically if it detects a diff_file. --- src/manager/kiwix-manage.cpp | 57 ++++++++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) diff --git a/src/manager/kiwix-manage.cpp b/src/manager/kiwix-manage.cpp index b0b323f..b3fe23b 100644 --- a/src/manager/kiwix-manage.cpp +++ b/src/manager/kiwix-manage.cpp @@ -24,12 +24,46 @@ #include #include #include +#include #include using namespace std; enum supportedAction { NONE, ADD, SHOW, REMOVE }; +inline char hi(char v) +{ +char hex[] = "0123456789abcdef"; +return hex[(v >> 4) & 0xf]; +} + +inline char lo(char v) +{ +char hex[] = "0123456789abcdef"; +return hex[v & 0xf]; +} + +std::string hexUUID (std::string in) + { + std::ostringstream out; + for (unsigned n = 0; n < 4; ++n) + out << hi(in[n]) << lo(in[n]); + out << '-'; + for (unsigned n = 4; n < 6; ++n) + out << hi(in[n]) << lo(in[n]); + out << '-'; + for (unsigned n = 6; n < 8; ++n) + out << hi(in[n]) << lo(in[n]); + out << '-'; + for (unsigned n = 8; n < 10; ++n) + out << hi(in[n]) << lo(in[n]); + out << '-'; + for (unsigned n = 10; n < 16; ++n) + out << hi(in[n]) << lo(in[n]); + std::string op=out.str(); + return op; + } + void show(kiwix::Library library) { std::vector::iterator itr; unsigned int inc = 1; @@ -160,6 +194,29 @@ int main(int argc, char **argv) { if (zimPath != "") { zimPathToSave = zimPathToSave == "." ? zimPath : zimPathToSave; + zim::File zimFile(zimPath); + if(zimFile.getArticleByUrl("M/startfileuid").getIndex()!=std::numeric_limits::max()) + { + std::string id=zimFile.getArticleByUrl("M/endfileuid").getPage(); + std::string temp=""; + unsigned int k=0; + char tempArray[16]=""; + for(unsigned int i=0; i