flush
[m6w6/ext-psi] / tests / idn / idn.psi
diff --git a/tests/idn/idn.psi b/tests/idn/idn.psi
new file mode 100644 (file)
index 0000000..1583680
--- /dev/null
@@ -0,0 +1,36 @@
+# libidn
+lib "idn";
+
+# IDNA errors
+const int \IDNA_SUCCESS = 0;
+const int \IDNA_STRINGPREP_ERROR = 1;
+const int \IDNA_PUNYCODE_ERROR = 2;
+const int \IDNA_CONTAINS_NON_LDH = 3;
+const int \IDNA_CONTAINS_LDH = 3;
+const int \IDNA_CONTAINS_MINUS = 4;
+const int \IDNA_INVALID_LENGTH = 5;
+const int \IDNA_NO_ACE_PREFIX = 6;
+const int \IDNA_ROUNDTRIP_VERIFY_ERROR = 7;
+const int \IDNA_CONTAINS_ACE_PREFIX = 8;
+const int \IDNA_ICONV_ERROR = 9;
+const int \IDNA_MALLOC_ERROR = 201;
+const int \IDNA_DLOPEN_ERROR = 202;
+# IDNA flags
+const int \IDNA_ALLOW_UNASSIGNED = 1;
+const int \IDNA_USE_STD3_ASCII_RULES = 2;
+
+
+default int idna_to_ascii_8z(sint8 *host, sint8 **buffer, int flags);
+function idn\utf8_to_ascii(string $host, string &$result, int $flags = 0) : int {
+       let buffer = &NULL;
+       let host = strval($host);
+       let flags = intval($flags);
+       set $result = to_string(*buffer);
+       return to_int(idna_to_ascii_8z);
+       free *buffer;
+}
+default sint8 *idna_strerror(int rc);
+function idn\strerror(int $rc) : string {
+       return to_string(idna_strerror);
+       let rc = intval($rc);
+}