version 0.1.0
[fms.git] / src / nntp / mime / MimeChar.cpp
diff --git a/src/nntp/mime/MimeChar.cpp b/src/nntp/mime/MimeChar.cpp
new file mode 100644 (file)
index 0000000..23bcd58
--- /dev/null
@@ -0,0 +1,142 @@
+//////////////////////////////////////////////////////////////////////\r
+//\r
+// MIME Character Classification\r
+//\r
+// Jeff Lee\r
+// Dec 16, 2000\r
+//\r
+//////////////////////////////////////////////////////////////////////\r
+//#include "StdAfx.h"\r
+#include "../../../include/nntp/mime/MimeChar.h"\r
+\r
+const unsigned char CMimeChar::m_aCharTbl[128] =\r
+{\r
+       CONTROL,                                                // 00 (NUL)\r
+       CONTROL,                                                // 01 (SOH)\r
+       CONTROL,                                                // 02 (STX)\r
+       CONTROL,                                                // 03 (ETX)\r
+       CONTROL,                                                // 04 (EOT)\r
+       CONTROL,                                                // 05 (ENQ)\r
+       CONTROL,                                                // 06 (ACK)\r
+       CONTROL,                                                // 07 (BEL)\r
+       CONTROL,                                                // 08 (BS)\r
+       SPACE | CONTROL,                                // 09 (HT)\r
+       SPACE | CONTROL,                                // 0A (LF)\r
+       SPACE | CONTROL,                                // 0B (VT)\r
+       SPACE | CONTROL,                                // 0C (FF)\r
+       SPACE | CONTROL,                                // 0D (CR)\r
+       CONTROL,                                                // 0E (SI)\r
+       CONTROL,                                                // 0F (SO)\r
+       CONTROL,                                                // 10 (DLE)\r
+       CONTROL,                                                // 11 (DC1)\r
+       CONTROL,                                                // 12 (DC2)\r
+       CONTROL,                                                // 13 (DC3)\r
+       CONTROL,                                                // 14 (DC4)\r
+       CONTROL,                                                // 15 (NAK)\r
+       CONTROL,                                                // 16 (SYN)\r
+       CONTROL,                                                // 17 (ETB)\r
+       CONTROL,                                                // 18 (CAN)\r
+       CONTROL,                                                // 19 (EM)\r
+       CONTROL,                                                // 1A (SUB)\r
+       CONTROL,                                                // 1B (ESC)\r
+       CONTROL,                                                // 1C (FS)\r
+       CONTROL,                                                // 1D (GS)\r
+       CONTROL,                                                // 1E (RS)\r
+       CONTROL,                                                // 1F (US)\r
+       SPACE,                                                  // 20 SPACE\r
+       PUNCT,                                                  // 21 !\r
+       PUNCT | SPECIAL,                                // 22 "\r
+       PUNCT,                                                  // 23 #\r
+       PUNCT,                                                  // 24 $\r
+       PUNCT,                                                  // 25 %\r
+       PUNCT,                                                  // 26 &\r
+       PUNCT,                                                  // 27 '\r
+       PUNCT | SPECIAL,                                // 28 (\r
+       PUNCT | SPECIAL,                                // 29 )\r
+       PUNCT,                                                  // 2A *\r
+       PUNCT,                                                  // 2B +\r
+       PUNCT | SPECIAL,                                // 2C ,\r
+       PUNCT,                                                  // 2D -\r
+       PUNCT | SPECIAL,                                // 2E .\r
+       PUNCT,                                                  // 2F /\r
+       PRINT | HEXDIGIT,                               // 30 0\r
+       PRINT | HEXDIGIT,                               // 31 1\r
+       PRINT | HEXDIGIT,                               // 32 2\r
+       PRINT | HEXDIGIT,                               // 33 3\r
+       PRINT | HEXDIGIT,                               // 34 4\r
+       PRINT | HEXDIGIT,                               // 35 5\r
+       PRINT | HEXDIGIT,                               // 36 6\r
+       PRINT | HEXDIGIT,                               // 37 7\r
+       PRINT | HEXDIGIT,                               // 38 8\r
+       PRINT | HEXDIGIT,                               // 39 9\r
+       PUNCT | SPECIAL,                                // 3A :\r
+       PUNCT | SPECIAL,                                // 3B ;\r
+       PUNCT | SPECIAL,                                // 3C <\r
+       PUNCT | SPECIAL,                                // 3D =\r
+       PUNCT | SPECIAL,                                // 3E >\r
+       PUNCT,                                                  // 3F ?\r
+       PUNCT | SPECIAL,                                // 40 @\r
+       PRINT | HEXDIGIT,                               // 41 A\r
+       PRINT | HEXDIGIT,                               // 42 B\r
+       PRINT | HEXDIGIT,                               // 43 C\r
+       PRINT | HEXDIGIT,                               // 44 D\r
+       PRINT | HEXDIGIT,                               // 45 E\r
+       PRINT | HEXDIGIT,                               // 46 F\r
+       PRINT,                                                  // 47 G\r
+       PRINT,                                                  // 48 H\r
+       PRINT,                                                  // 49 I\r
+       PRINT,                                                  // 4A J\r
+       PRINT,                                                  // 4B K\r
+       PRINT,                                                  // 4C L\r
+       PRINT,                                                  // 4D M\r
+       PRINT,                                                  // 4E N\r
+       PRINT,                                                  // 4F O\r
+       PRINT,                                                  // 50 P\r
+       PRINT,                                                  // 51 Q\r
+       PRINT,                                                  // 52 R\r
+       PRINT,                                                  // 53 S\r
+       PRINT,                                                  // 54 T\r
+       PRINT,                                                  // 55 U\r
+       PRINT,                                                  // 56 V\r
+       PRINT,                                                  // 57 W\r
+       PRINT,                                                  // 58 X\r
+       PRINT,                                                  // 59 Y\r
+       PRINT,                                                  // 5A Z\r
+       PUNCT | SPECIAL,                                // 5B [\r
+       PUNCT | SPECIAL,                                // 5C '\'\r
+       PUNCT | SPECIAL,                                // 5D ]\r
+       PUNCT,                                                  // 5E ^\r
+       PUNCT,                                                  // 5F \r
+       PUNCT,                                                  // 60 `\r
+       PRINT,                                                  // 61 a\r
+       PRINT,                                                  // 62 b\r
+       PRINT,                                                  // 63 c\r
+       PRINT,                                                  // 64 d\r
+       PRINT,                                                  // 65 e\r
+       PRINT,                                                  // 66 f\r
+       PRINT,                                                  // 67 g\r
+       PRINT,                                                  // 68 h\r
+       PRINT,                                                  // 69 i\r
+       PRINT,                                                  // 6A j\r
+       PRINT,                                                  // 6B k\r
+       PRINT,                                                  // 6C l\r
+       PRINT,                                                  // 6D m\r
+       PRINT,                                                  // 6E n\r
+       PRINT,                                                  // 6F o\r
+       PRINT,                                                  // 70 p\r
+       PRINT,                                                  // 71 q\r
+       PRINT,                                                  // 72 r\r
+       PRINT,                                                  // 73 s\r
+       PRINT,                                                  // 74 t\r
+       PRINT,                                                  // 75 u\r
+       PRINT,                                                  // 76 v\r
+       PRINT,                                                  // 77 w\r
+       PRINT,                                                  // 78 x\r
+       PRINT,                                                  // 79 y\r
+       PRINT,                                                  // 7A z\r
+       PUNCT,                                                  // 7B {\r
+       PUNCT,                                                  // 7C |\r
+       PUNCT,                                                  // 7D }\r
+       PUNCT,                                                  // 7E ~\r
+       CONTROL,                                                // 7F (DEL)\r
+};\r