fix stdlib inclusion on linux
[m6w6/ext-psi] / tests / idn / idn.psi
index 7c585b793bb7c89ff6c0302813a7f6166845c948..9b562c2d39f2b82e27d91d909320f1f63bbc7446 100644 (file)
@@ -1,35 +1,21 @@
-# libidn
-lib "idn";
+#ifdef __linux__
+lib "crypt";
+#endif
 
-# 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;
+#include <stdlib.h>
 
+lib "idn";
+#include <idna.h>
 
-default int idna_to_ascii_8z(char *host, char **buffer, int flags);
 function idn\utf8_to_ascii(string $host, string &$result, int $flags = 0) : int {
-       let buffer = &NULL;
-       let host = strval($host);
+       let output = &NULL;
+       let input = strval($host);
        let flags = intval($flags);
-       set $result = to_string(*buffer);
+       set $result = to_string(*output);
        return to_int(idna_to_ascii_8z);
-       free free(*buffer);
+       free free(*output);
 }
-default char *idna_strerror(int rc);
+
 function idn\strerror(int $rc) : string {
        return to_string(idna_strerror);
        let rc = intval($rc);