]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blobdiff - qcsrc/lib/yenc.qh
Merge branch 'master' into martin-t/globals
[xonotic/xonotic-data.pk3dir.git] / qcsrc / lib / yenc.qh
index 32a1648c328bb529f4559063759e3242885b4179..e71c68ef63683aa0caeb762f79971c32c83fb577 100644 (file)
@@ -1,8 +1,9 @@
-#ifndef YENC_H
-#define YENC_H
+#pragma once
+
+#include "test.qh"
 
 #define yenc_single(c, ret) \
-       MACRO_BEGIN \
+       MACRO_BEGIN \
                int conv = c; \
                conv += 42; \
                if (conv >= 256) conv -= 256; \
@@ -14,7 +15,7 @@
                                ret = yenc_it; \
                                break; \
                        } \
-                       case '\0': \
+                       case 0: \
                        case '\n': \
                        case '\r': \
                        case '=': \
                                break; \
                        } \
                } \
-       MACRO_END
+       MACRO_END
 
 #define ydec_single(stringiter, ret) \
-       MACRO_BEGIN \
+       MACRO_BEGIN \
                int conv = STRING_ITERATOR_GET(stringiter); \
-               bool esc = false; \
-               if (conv == '=') \
-               { \
-                       esc = true; \
-                       conv = STRING_ITERATOR_GET(stringiter); \
-                       conv -= 64; \
+               if (conv <= 0) { \
+                       ret = -1; \
+               } else { \
+                       if (conv == '=') { \
+                               conv = STRING_ITERATOR_GET(stringiter); \
+                               conv -= 64; \
+                       } \
+                       if (conv < 42) conv += 256; \
+                       conv -= 42; \
+                       ret = conv; \
                } \
-               if (conv < 42) conv += 256; \
-               conv -= 42; \
-               ret = conv; \
-       } MACRO_END
+       MACRO_END
 
-TEST(yEncDec)
+TEST(yEnc, EncodeDecode)
 {
-       for (int i = 0; i < 255; ++i)
+       for (int i = 0; i <= 255; ++i)
        {
                int expect = i;
 
-               string fragment;
+               string fragment = string_null;
                yenc_single(expect, fragment);
 
-               int encdec;
+               int encdec = 0;
                STRING_ITERATOR(fragmentiterator, fragment, 0);
                ydec_single(fragmentiterator, encdec);
 
-               TEST_Check(encdec == expect);
+               EXPECT_EQ(expect, encdec);
        }
-       TEST_OK();
+       SUCCEED();
 }
-
-#endif