From: Arvin Schnell Date: Thu, 13 Jan 2011 15:54:15 +0000 (+0100) Subject: - added stringToStatus X-Git-Tag: v0.1.3~548 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=58babec628b402f9546867af5b67d682acb01d70;p=thirdparty%2Fsnapper.git - added stringToStatus --- diff --git a/snapper/Files.cc b/snapper/Files.cc index d5ff5c74..efc20692 100644 --- a/snapper/Files.cc +++ b/snapper/Files.cc @@ -378,8 +378,10 @@ namespace snapper y2mil("path1:" << path1 << " path2:" << path2); CmpData cmp_data; + cmp_data.base_path1 = path1; cmp_data.base_path2 = path2; + cmp_data.cb = cb; struct stat stat1; @@ -421,4 +423,44 @@ namespace snapper return ret; } + + unsigned int + stringToStatus(const string& str) + { + unsigned int ret = 0; + + assert(str.length() == 4); + + if (str.length() >= 1) + { + switch (str[0]) + { + case '+': ret |= CREATED; break; + case '-': ret |= DELETED; break; + case 't': ret |= TYPE; break; + case 'c': ret |= CONTENT; break; + } + } + + if (str.length() >= 2) + { + if (str[1] == 'p') + ret |= PERMISSIONS; + } + + if (str.length() >= 3) + { + if (str[2] == 'u') + ret |= USER; + } + + if (str.length() >= 4) + { + if (str[3] == 'g') + ret |= GROUP; + } + + return ret; + } + } diff --git a/snapper/Files.h b/snapper/Files.h index 1672ad22..b2b8de56 100644 --- a/snapper/Files.h +++ b/snapper/Files.h @@ -42,6 +42,9 @@ namespace snapper string statusToString(unsigned int status); + unsigned int + stringToStatus(const string& str); + }