X-Git-Url: http://de.git.xonotic.org/?a=blobdiff_plain;f=qcsrc%2Flib%2Fyenc.qh;h=e71c68ef63683aa0caeb762f79971c32c83fb577;hb=991de5e6922cd3c283de56c3249624f0f1bfe767;hp=32a1648c328bb529f4559063759e3242885b4179;hpb=bbe91a5405e1f95759eeb3c2faa60e7d37fc0fb6;p=xonotic%2Fxonotic-data.pk3dir.git diff --git a/qcsrc/lib/yenc.qh b/qcsrc/lib/yenc.qh index 32a1648c3..e71c68ef6 100644 --- a/qcsrc/lib/yenc.qh +++ b/qcsrc/lib/yenc.qh @@ -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 '=': \ @@ -25,39 +26,38 @@ 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