php-internal-docs 8.4.8
Unofficial docs for php/php-src
Loading...
Searching...
No Matches
mbfl_encoding.h File Reference
#include "zend.h"
#include "mbfl_defs.h"
#include "mbfl_consts.h"

Go to the source code of this file.

Data Structures

struct  mbfl_convert_vtbl
 
struct  mb_convert_buf
 
struct  mbfl_encoding
 

Macros

#define MBSTRING_MIN_WCHAR_BUFSIZE   5
 
#define MB_CONVERT_BUF_ENSURE(buf, out, limit, needed)
 
#define MB_CONVERT_BUF_STORE(buf, _out, _limit)
 
#define MB_CONVERT_BUF_LOAD(buf, _out, _limit)
 
#define MB_CONVERT_ERROR(buf, out, limit, bad_cp, conv_fn)
 

Typedefs

typedef size_t(* mb_to_wchar_fn) (unsigned char **in, size_t *in_len, uint32_t *out, size_t out_len, unsigned int *state)
 
typedef void(* mb_from_wchar_fn) (uint32_t *in, size_t in_len, mb_convert_buf *out, bool end)
 
typedef bool(* mb_check_fn) (unsigned char *in, size_t in_len)
 
typedef zend_string *(* mb_cut_fn) (unsigned char *str, size_t from, size_t len, unsigned char *end)
 

Enumerations

enum  mbfl_no_encoding {
  mbfl_no_encoding_invalid = -1 , mbfl_no_encoding_pass , mbfl_no_encoding_wchar , mbfl_no_encoding_base64 ,
  mbfl_no_encoding_uuencode , mbfl_no_encoding_html_ent , mbfl_no_encoding_qprint , mbfl_no_encoding_7bit ,
  mbfl_no_encoding_8bit , mbfl_no_encoding_charset_min , mbfl_no_encoding_ucs4 , mbfl_no_encoding_ucs4be ,
  mbfl_no_encoding_ucs4le , mbfl_no_encoding_ucs2 , mbfl_no_encoding_ucs2be , mbfl_no_encoding_ucs2le ,
  mbfl_no_encoding_utf32 , mbfl_no_encoding_utf32be , mbfl_no_encoding_utf32le , mbfl_no_encoding_utf16 ,
  mbfl_no_encoding_utf16be , mbfl_no_encoding_utf16le , mbfl_no_encoding_utf8 , mbfl_no_encoding_utf8_docomo ,
  mbfl_no_encoding_utf8_kddi_a , mbfl_no_encoding_utf8_kddi_b , mbfl_no_encoding_utf8_sb , mbfl_no_encoding_utf7 ,
  mbfl_no_encoding_utf7imap , mbfl_no_encoding_ascii , mbfl_no_encoding_euc_jp , mbfl_no_encoding_eucjp2004 ,
  mbfl_no_encoding_sjis , mbfl_no_encoding_eucjp_win , mbfl_no_encoding_sjis_docomo , mbfl_no_encoding_sjis_kddi ,
  mbfl_no_encoding_sjis_sb , mbfl_no_encoding_sjis_mac , mbfl_no_encoding_sjis2004 , mbfl_no_encoding_cp932 ,
  mbfl_no_encoding_sjiswin , mbfl_no_encoding_cp51932 , mbfl_no_encoding_jis , mbfl_no_encoding_2022jp ,
  mbfl_no_encoding_2022jp_2004 , mbfl_no_encoding_2022jp_kddi , mbfl_no_encoding_2022jpms , mbfl_no_encoding_gb18030 ,
  mbfl_no_encoding_gb18030_2022 , mbfl_no_encoding_cp1252 , mbfl_no_encoding_cp1254 , mbfl_no_encoding_8859_1 ,
  mbfl_no_encoding_8859_2 , mbfl_no_encoding_8859_3 , mbfl_no_encoding_8859_4 , mbfl_no_encoding_8859_5 ,
  mbfl_no_encoding_8859_6 , mbfl_no_encoding_8859_7 , mbfl_no_encoding_8859_8 , mbfl_no_encoding_8859_9 ,
  mbfl_no_encoding_8859_10 , mbfl_no_encoding_8859_13 , mbfl_no_encoding_8859_14 , mbfl_no_encoding_8859_15 ,
  mbfl_no_encoding_euc_cn , mbfl_no_encoding_cp936 , mbfl_no_encoding_euc_tw , mbfl_no_encoding_big5 ,
  mbfl_no_encoding_cp950 , mbfl_no_encoding_euc_kr , mbfl_no_encoding_2022kr , mbfl_no_encoding_uhc ,
  mbfl_no_encoding_hz , mbfl_no_encoding_cp1251 , mbfl_no_encoding_cp866 , mbfl_no_encoding_koi8r ,
  mbfl_no_encoding_koi8u , mbfl_no_encoding_8859_16 , mbfl_no_encoding_armscii8 , mbfl_no_encoding_cp850 ,
  mbfl_no_encoding_cp50220 , mbfl_no_encoding_cp50221 , mbfl_no_encoding_cp50222 , mbfl_no_encoding_charset_max
}
 

Functions

MBFLAPI const mbfl_encodingmbfl_name2encoding (const char *name)
 
MBFLAPI const mbfl_encodingmbfl_name2encoding_ex (const char *name, size_t name_len)
 
MBFLAPI const mbfl_encodingmbfl_no2encoding (enum mbfl_no_encoding no_encoding)
 
MBFLAPI const mbfl_encoding ** mbfl_get_supported_encodings (void)
 
MBFLAPI const char * mbfl_no_encoding2name (enum mbfl_no_encoding no_encoding)
 
MBFLAPI const char * mbfl_encoding_preferred_mime_name (const mbfl_encoding *encoding)
 

Variables

const mbfl_encoding mbfl_encoding_utf8
 

Macro Definition Documentation

◆ MB_CONVERT_BUF_ENSURE

#define MB_CONVERT_BUF_ENSURE ( buf,
out,
limit,
needed )
Value:
ZEND_ASSERT(out <= limit); \
if ((size_t)(limit - out) < (needed)) { \
size_t oldsize = limit - (unsigned char*)ZSTR_VAL((buf)->str); \
size_t newsize = oldsize + MAX(oldsize >> 1, needed); \
zend_string *newstr = erealloc((buf)->str, _ZSTR_STRUCT_SIZE(newsize)); \
out = (unsigned char*)ZSTR_VAL(newstr) + (out - (unsigned char*)ZSTR_VAL((buf)->str)); \
limit = (unsigned char*)ZSTR_VAL(newstr) + newsize; \
(buf)->str = newstr; \
}
zend_ffi_ctype_name_buf buf
Definition ffi.c:4685
#define erealloc(ptr, size)
Definition zend_alloc.h:159
struct _zend_string zend_string
#define ZEND_ASSERT(c)
#define MAX(a, b)
#define _ZSTR_STRUCT_SIZE(len)
#define ZSTR_VAL(zstr)
Definition zend_string.h:68
out($f, $s)

Definition at line 165 of file mbfl_encoding.h.

◆ MB_CONVERT_BUF_LOAD

#define MB_CONVERT_BUF_LOAD ( buf,
_out,
_limit )
Value:
_out = (buf)->out; _limit = (buf)->limit

Definition at line 178 of file mbfl_encoding.h.

◆ MB_CONVERT_BUF_STORE

#define MB_CONVERT_BUF_STORE ( buf,
_out,
_limit )
Value:
(buf)->out = _out; (buf)->limit = _limit

Definition at line 176 of file mbfl_encoding.h.

◆ MB_CONVERT_ERROR

#define MB_CONVERT_ERROR ( buf,
out,
limit,
bad_cp,
conv_fn )
Value:
mb_illegal_output(bad_cp, conv_fn, buf); \
MB_CONVERT_BUF_LOAD(buf, out, limit)
#define MB_CONVERT_BUF_STORE(buf, _out, _limit)

Definition at line 180 of file mbfl_encoding.h.

◆ MBSTRING_MIN_WCHAR_BUFSIZE

#define MBSTRING_MIN_WCHAR_BUFSIZE   5

Definition at line 153 of file mbfl_encoding.h.

Typedef Documentation

◆ mb_check_fn

typedef bool(* mb_check_fn) (unsigned char *in, size_t in_len)

Definition at line 148 of file mbfl_encoding.h.

◆ mb_cut_fn

typedef zend_string *(* mb_cut_fn) (unsigned char *str, size_t from, size_t len, unsigned char *end)

Definition at line 149 of file mbfl_encoding.h.

◆ mb_from_wchar_fn

typedef void(* mb_from_wchar_fn) (uint32_t *in, size_t in_len, mb_convert_buf *out, bool end)

Definition at line 147 of file mbfl_encoding.h.

◆ mb_to_wchar_fn

typedef size_t(* mb_to_wchar_fn) (unsigned char **in, size_t *in_len, uint32_t *out, size_t out_len, unsigned int *state)

Definition at line 146 of file mbfl_encoding.h.

Enumeration Type Documentation

◆ mbfl_no_encoding

Enumerator
mbfl_no_encoding_invalid 
mbfl_no_encoding_pass 
mbfl_no_encoding_wchar 
mbfl_no_encoding_base64 
mbfl_no_encoding_uuencode 
mbfl_no_encoding_html_ent 
mbfl_no_encoding_qprint 
mbfl_no_encoding_7bit 
mbfl_no_encoding_8bit 
mbfl_no_encoding_charset_min 
mbfl_no_encoding_ucs4 
mbfl_no_encoding_ucs4be 
mbfl_no_encoding_ucs4le 
mbfl_no_encoding_ucs2 
mbfl_no_encoding_ucs2be 
mbfl_no_encoding_ucs2le 
mbfl_no_encoding_utf32 
mbfl_no_encoding_utf32be 
mbfl_no_encoding_utf32le 
mbfl_no_encoding_utf16 
mbfl_no_encoding_utf16be 
mbfl_no_encoding_utf16le 
mbfl_no_encoding_utf8 
mbfl_no_encoding_utf8_docomo 
mbfl_no_encoding_utf8_kddi_a 
mbfl_no_encoding_utf8_kddi_b 
mbfl_no_encoding_utf8_sb 
mbfl_no_encoding_utf7 
mbfl_no_encoding_utf7imap 
mbfl_no_encoding_ascii 
mbfl_no_encoding_euc_jp 
mbfl_no_encoding_eucjp2004 
mbfl_no_encoding_sjis 
mbfl_no_encoding_eucjp_win 
mbfl_no_encoding_sjis_docomo 
mbfl_no_encoding_sjis_kddi 
mbfl_no_encoding_sjis_sb 
mbfl_no_encoding_sjis_mac 
mbfl_no_encoding_sjis2004 
mbfl_no_encoding_cp932 
mbfl_no_encoding_sjiswin 
mbfl_no_encoding_cp51932 
mbfl_no_encoding_jis 
mbfl_no_encoding_2022jp 
mbfl_no_encoding_2022jp_2004 
mbfl_no_encoding_2022jp_kddi 
mbfl_no_encoding_2022jpms 
mbfl_no_encoding_gb18030 
mbfl_no_encoding_gb18030_2022 
mbfl_no_encoding_cp1252 
mbfl_no_encoding_cp1254 
mbfl_no_encoding_8859_1 
mbfl_no_encoding_8859_2 
mbfl_no_encoding_8859_3 
mbfl_no_encoding_8859_4 
mbfl_no_encoding_8859_5 
mbfl_no_encoding_8859_6 
mbfl_no_encoding_8859_7 
mbfl_no_encoding_8859_8 
mbfl_no_encoding_8859_9 
mbfl_no_encoding_8859_10 
mbfl_no_encoding_8859_13 
mbfl_no_encoding_8859_14 
mbfl_no_encoding_8859_15 
mbfl_no_encoding_euc_cn 
mbfl_no_encoding_cp936 
mbfl_no_encoding_euc_tw 
mbfl_no_encoding_big5 
mbfl_no_encoding_cp950 
mbfl_no_encoding_euc_kr 
mbfl_no_encoding_2022kr 
mbfl_no_encoding_uhc 
mbfl_no_encoding_hz 
mbfl_no_encoding_cp1251 
mbfl_no_encoding_cp866 
mbfl_no_encoding_koi8r 
mbfl_no_encoding_koi8u 
mbfl_no_encoding_8859_16 
mbfl_no_encoding_armscii8 
mbfl_no_encoding_cp850 
mbfl_no_encoding_cp50220 
mbfl_no_encoding_cp50221 
mbfl_no_encoding_cp50222 
mbfl_no_encoding_charset_max 

Definition at line 38 of file mbfl_encoding.h.

Function Documentation

◆ mbfl_encoding_preferred_mime_name()

MBFLAPI const char * mbfl_encoding_preferred_mime_name ( const mbfl_encoding * encoding)
extern

Definition at line 396 of file mbfl_encoding.c.

◆ mbfl_get_supported_encodings()

MBFLAPI const mbfl_encoding ** mbfl_get_supported_encodings ( void )
extern

Definition at line 391 of file mbfl_encoding.c.

◆ mbfl_name2encoding()

MBFLAPI const mbfl_encoding * mbfl_name2encoding ( const char * name)
extern

Definition at line 309 of file mbfl_encoding.c.

◆ mbfl_name2encoding_ex()

MBFLAPI const mbfl_encoding * mbfl_name2encoding_ex ( const char * name,
size_t name_len )
extern

Definition at line 314 of file mbfl_encoding.c.

◆ mbfl_no2encoding()

MBFLAPI const mbfl_encoding * mbfl_no2encoding ( enum mbfl_no_encoding no_encoding)
extern

Definition at line 372 of file mbfl_encoding.c.

◆ mbfl_no_encoding2name()

MBFLAPI const char * mbfl_no_encoding2name ( enum mbfl_no_encoding no_encoding)
extern

Definition at line 385 of file mbfl_encoding.c.

Variable Documentation

◆ mbfl_encoding_utf8

const mbfl_encoding mbfl_encoding_utf8
extern

Definition at line 139 of file mbfilter_utf8.c.