1 /* encoding.h 2 * Copyright (C) 2004-2007,2014, Parrot Foundation. 3 * Overview: 4 * This is the header for the generic encoding functions 5 * Data Structure and Algorithms: 6 * History: 7 * Notes: 8 * References: 9 */ 10 11 #ifndef PARROT_ENCODING_H_GUARD 12 #define PARROT_ENCODING_H_GUARD 13 14 #include "parrot/parrot.h" 15 16 PARROT_DATA STR_VTABLE *Parrot_ascii_encoding_ptr; 17 PARROT_DATA STR_VTABLE *Parrot_latin1_encoding_ptr; 18 PARROT_DATA STR_VTABLE *Parrot_binary_encoding_ptr; 19 PARROT_DATA STR_VTABLE *Parrot_utf8_encoding_ptr; 20 PARROT_DATA STR_VTABLE *Parrot_utf16_encoding_ptr; 21 PARROT_DATA STR_VTABLE *Parrot_ucs2_encoding_ptr; 22 PARROT_DATA STR_VTABLE *Parrot_ucs4_encoding_ptr; 23 24 PARROT_DATA STR_VTABLE *Parrot_default_encoding_ptr; 25 PARROT_DATA STR_VTABLE *Parrot_platform_encoding_ptr; 26 27 #ifdef PARROT_IN_CORE 28 PARROT_DATA STR_VTABLE *Parrot_null_encoding_ptr; 29 #endif 30 31 /* HEADERIZER BEGIN: src/string/encoding.c */ 32 /* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */ 33 34 PARROT_EXPORT 35 PARROT_PURE_FUNCTION 36 PARROT_WARN_UNUSED_RESULT 37 PARROT_CANNOT_RETURN_NULL 38 const STR_VTABLE * Parrot_default_encoding(PARROT_INTERP); 39 40 PARROT_EXPORT 41 PARROT_PURE_FUNCTION 42 PARROT_WARN_UNUSED_RESULT 43 PARROT_CAN_RETURN_NULL 44 const char * Parrot_encoding_c_name(PARROT_INTERP, 45 INTVAL number_of_encoding); 46 47 PARROT_EXPORT 48 PARROT_PURE_FUNCTION 49 PARROT_WARN_UNUSED_RESULT 50 PARROT_CAN_RETURN_NULL 51 STRING* Parrot_encoding_name(PARROT_INTERP, INTVAL number_of_encoding); 52 53 PARROT_EXPORT 54 PARROT_PURE_FUNCTION 55 PARROT_WARN_UNUSED_RESULT 56 INTVAL Parrot_encoding_number(PARROT_INTERP, 57 ARGIN(const STRING *encodingname)) 58 __attribute__nonnull__(1) 59 __attribute__nonnull__(2); 60 61 PARROT_EXPORT 62 PARROT_PURE_FUNCTION 63 PARROT_WARN_UNUSED_RESULT 64 INTVAL Parrot_encoding_number_of_str(PARROT_INTERP, 65 ARGIN(const STRING *src)) 66 __attribute__nonnull__(2); 67 68 PARROT_EXPORT 69 void Parrot_encodings_init(PARROT_INTERP) 70 __attribute__nonnull__(1); 71 72 PARROT_EXPORT 73 PARROT_PURE_FUNCTION 74 PARROT_WARN_UNUSED_RESULT 75 PARROT_CAN_RETURN_NULL 76 const STR_VTABLE * Parrot_find_encoding(PARROT_INTERP, 77 ARGIN(const char *encodingname)) 78 __attribute__nonnull__(2); 79 80 PARROT_EXPORT 81 PARROT_PURE_FUNCTION 82 PARROT_WARN_UNUSED_RESULT 83 PARROT_CAN_RETURN_NULL 84 const STR_VTABLE * Parrot_find_encoding_by_string(PARROT_INTERP, 85 ARGIN(STRING *encodingname)) 86 __attribute__nonnull__(1) 87 __attribute__nonnull__(2); 88 89 PARROT_EXPORT 90 PARROT_PURE_FUNCTION 91 PARROT_WARN_UNUSED_RESULT 92 PARROT_CAN_RETURN_NULL 93 const STR_VTABLE* Parrot_get_encoding(PARROT_INTERP, 94 INTVAL number_of_encoding); 95 96 PARROT_EXPORT 97 PARROT_DOES_NOT_RETURN 98 PARROT_CANNOT_RETURN_NULL 99 const STR_VTABLE * Parrot_load_encoding(PARROT_INTERP, 100 const char *encodingname) 101 __attribute__nonnull__(1); 102 103 PARROT_EXPORT 104 INTVAL Parrot_make_default_encoding(PARROT_INTERP, 105 ARGIN(const char *encodingname), 106 ARGIN(STR_VTABLE *encoding)) 107 __attribute__nonnull__(2) 108 __attribute__nonnull__(3); 109 110 PARROT_EXPORT 111 PARROT_MALLOC 112 PARROT_CANNOT_RETURN_NULL 113 STR_VTABLE * Parrot_new_encoding(PARROT_INTERP) 114 __attribute__nonnull__(1); 115 116 PARROT_EXPORT 117 INTVAL Parrot_register_encoding(PARROT_INTERP, ARGIN(STR_VTABLE *encoding)) 118 __attribute__nonnull__(1) 119 __attribute__nonnull__(2); 120 121 void Parrot_deinit_encodings(PARROT_INTERP) 122 __attribute__nonnull__(1); 123 124 PARROT_PURE_FUNCTION 125 PARROT_WARN_UNUSED_RESULT 126 INTVAL Parrot_str_internal_find_codepoint(PARROT_INTERP, 127 ARGIN(const STRING *name)) 128 __attribute__nonnull__(1) 129 __attribute__nonnull__(2); 130 131 void Parrot_str_internal_register_encoding_names(PARROT_INTERP) 132 __attribute__nonnull__(1); 133 134 #define ASSERT_ARGS_Parrot_default_encoding __attribute__unused__ int _ASSERT_ARGS_CHECK = (0) 135 #define ASSERT_ARGS_Parrot_encoding_c_name __attribute__unused__ int _ASSERT_ARGS_CHECK = (0) 136 #define ASSERT_ARGS_Parrot_encoding_name __attribute__unused__ int _ASSERT_ARGS_CHECK = (0) 137 #define ASSERT_ARGS_Parrot_encoding_number __attribute__unused__ int _ASSERT_ARGS_CHECK = (\ 138 PARROT_ASSERT_ARG(interp) \ 139 , PARROT_ASSERT_ARG(encodingname)) 140 #define ASSERT_ARGS_Parrot_encoding_number_of_str __attribute__unused__ int _ASSERT_ARGS_CHECK = (\ 141 PARROT_ASSERT_ARG(src)) 142 #define ASSERT_ARGS_Parrot_encodings_init __attribute__unused__ int _ASSERT_ARGS_CHECK = (\ 143 PARROT_ASSERT_ARG(interp)) 144 #define ASSERT_ARGS_Parrot_find_encoding __attribute__unused__ int _ASSERT_ARGS_CHECK = (\ 145 PARROT_ASSERT_ARG(encodingname)) 146 #define ASSERT_ARGS_Parrot_find_encoding_by_string \ 147 __attribute__unused__ int _ASSERT_ARGS_CHECK = (\ 148 PARROT_ASSERT_ARG(interp) \ 149 , PARROT_ASSERT_ARG(encodingname)) 150 #define ASSERT_ARGS_Parrot_get_encoding __attribute__unused__ int _ASSERT_ARGS_CHECK = (0) 151 #define ASSERT_ARGS_Parrot_load_encoding __attribute__unused__ int _ASSERT_ARGS_CHECK = (\ 152 PARROT_ASSERT_ARG(interp)) 153 #define ASSERT_ARGS_Parrot_make_default_encoding __attribute__unused__ int _ASSERT_ARGS_CHECK = (\ 154 PARROT_ASSERT_ARG(encodingname_unused) \ 155 , PARROT_ASSERT_ARG(encoding)) 156 #define ASSERT_ARGS_Parrot_new_encoding __attribute__unused__ int _ASSERT_ARGS_CHECK = (\ 157 PARROT_ASSERT_ARG(interp)) 158 #define ASSERT_ARGS_Parrot_register_encoding __attribute__unused__ int _ASSERT_ARGS_CHECK = (\ 159 PARROT_ASSERT_ARG(interp) \ 160 , PARROT_ASSERT_ARG(encoding)) 161 #define ASSERT_ARGS_Parrot_deinit_encodings __attribute__unused__ int _ASSERT_ARGS_CHECK = (\ 162 PARROT_ASSERT_ARG(interp)) 163 #define ASSERT_ARGS_Parrot_str_internal_find_codepoint \ 164 __attribute__unused__ int _ASSERT_ARGS_CHECK = (\ 165 PARROT_ASSERT_ARG(interp) \ 166 , PARROT_ASSERT_ARG(name)) 167 #define ASSERT_ARGS_Parrot_str_internal_register_encoding_names \ 168 __attribute__unused__ int _ASSERT_ARGS_CHECK = (\ 169 PARROT_ASSERT_ARG(interp)) 170 /* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */ 171 /* HEADERIZER END: src/string/encoding.c */ 172 173 #endif /* PARROT_ENCODING_H_GUARD */ 174 175 /* 176 * Local variables: 177 * c-file-style: "parrot" 178 * End: 179 * vim: expandtab shiftwidth=4 cinoptions='\:2=2' : 180 */ 181