]> gitweb.hamatoma.de Git - crepublib/commitdiff
fix ReDirRandom: max value
authorHamatoma <git.tortouse@hm.f-r-e-i.de>
Wed, 4 Mar 2015 16:04:31 +0000 (17:04 +0100)
committerHamatoma <git.tortouse@hm.f-r-e-i.de>
Wed, 4 Mar 2015 16:04:31 +0000 (17:04 +0100)
cunit/cuReTraverser.cpp
os/ReDirTools.cpp

index 708f8ab61f47072faffe4e81e31c731af9b26d51..db5b713c1166d4052db343499a0772f7e2a8053f 100644 (file)
@@ -128,15 +128,15 @@ private:
                }
                checkOneFile("x1.txt", "dir1_2_1", hashPath);
                checkOneFile("x2.txt", "dir1_2_1", hashPath);
-               bool changed1 = listChanged.find("x1.txt") != (size_t) -1;
-               bool changed2 = listChanged.find("x2.txt") != (size_t) -1;
+               bool changed1 = listChanged.find("x1.txt") != (ReSeqArray::Index) -1;
+               bool changed2 = listChanged.find("x2.txt") != (ReSeqArray::Index) -1;
                checkT(changed1 != changed2);
                checkOneFile("dir1_2_1", "dir1_2", hashPath);
                checkT(listChanged.find("dir1_2_1") >= 0);
                checkOneFile("dir1_1", "dir1", hashPath);
                checkOneFile("dir1_2", "dir1", hashPath);
-               changed1 = listChanged.find("dir1_1") != (size_t) -1;
-               changed2 = listChanged.find("dir1_2") != (size_t) -1;
+               changed1 = listChanged.find("dir1_1") != (ReSeqArray::Index) -1;
+               changed2 = listChanged.find("dir1_2") != (ReSeqArray::Index) -1;
                checkT(changed1 != changed2);
                checkF(hashPath.get("cache.txt", buffer));
        }
index 7f45b22b242ae3ce3208d0174963f7a0b1b148a0..1f451afa64ab51f77a0259ff93cce9035e8d74b0 100644 (file)
@@ -36,7 +36,7 @@ enum LOCATION_DIRTOOL {
        LC_COMPARE_DIR_1,                       // 50122\r
        LC_DELETE_1,                            // 50123\r
 };\r
-const char* ReDirTools::m_version = "2015.02.25";\r
+const char* ReDirTools::m_version = "2015.03.04";\r
 ReLogger* ReDirTools::m_logger = NULL;\r
 \r
 static const char* s_helpSummary[] = { "dirtool or dt <command> <opts>",\r
@@ -47,6 +47,7 @@ static const char* s_helpSummary[] = { "dirtool or dt <command> <opts>",
     "delete        delete the selected files",\r
     "help          shows info about the arguments/options",\r
     "list          shows the meta data of the selected files",\r
+       "random        displays random numbers",\r
     "statistic     shows statistics about a direcctory tree",\r
     "synchronize   copies only modified or new files from",\r
     "              from a source directory tre to a target",\r
@@ -105,6 +106,7 @@ const char* s_randomUsage[] = {
 const char* s_randomExamples[] = { "dirtool ra --multiple -w3 10 33",\r
        "dirtool rand -s 6 49",\r
        "dirtool rand --sort --width=1 5 50",\r
+       "dirtool rand --sort --width=1 2 10",\r
        NULL };\r
 \r
 static const char* s_statisticUsage[] =\r
@@ -1167,7 +1169,7 @@ void ReDirChecksum::buildStorage(const char* path, const char* storageFile){
                        digest2.update(line);\r
                        fprintf(fp, "%s\n", line.str());\r
                        if (m_verboseLevel >= V_NORMAL)\r
-                               fprintf(m_output, "%16s\t\%s",\r
+                               fprintf(m_output, "%16s\t%s",\r
                                        entry->isDirectory() ? "" : m_digest->hexDigest().str(),\r
                                        entry->fullName());\r
                }\r
@@ -1465,7 +1467,7 @@ void ReDirDelete::processFile(ReDirStatus_t* entry) {
        if (m_verboseLevel >= V_NORMAL){\r
                fprintf(m_output, "%s\n", name);\r
        }\r
-       if (unlink(name) != 0)\r
+       if (_unlink(name) != 0)\r
                m_logger->sayF(LOG_ERROR | CAT_FILE, LC_DELETE_1,\r
                        i18n("cannot delete ($1): $2")).arg(errno).arg(name).end();\r
 }\r
@@ -1566,6 +1568,8 @@ void ReDirRandom::doIt() {
                from = atol(m_programArgs.getArg(2));\r
        ReShiftRandom rand;\r
        rand.setSeed(rand.nearTrueRandom());\r
+       for (int ii = rand.nextInt(100); ii > 0; ii--)\r
+               rand.nextInt();\r
        int factor = to <= 1000 ? 1000 * 1000 : 1;\r
        int numbersPerLine = m_programArgs.getInt("perline");\r
        int width = m_programArgs.getInt("width");\r
@@ -1579,8 +1583,7 @@ void ReDirRandom::doIt() {
        if (! multiple && count >= to - from + 1)\r
                help(i18n("not realy random: all possible values requested. Do you mean '--multiple'?"));\r
        while(found < count){\r
-               value.setLength(0).appendInt(rand.nextInt(from * factor, to * factor)\r
-                       / factor, "%010d");\r
+               value.setLength(0).appendInt(from + rand.nextInt((to - from + 1) * factor) / factor, "%010d");\r
                int ix = (int) values.find(value.str());\r
                if (! multiple && ix != -1)\r
                        continue;\r