Skip to content

Commit d420336

Browse files
committed
Add ext/iconv stubs
1 parent 4e4cc9b commit d420336

File tree

3 files changed

+90
-61
lines changed

3 files changed

+90
-61
lines changed

ext/iconv/iconv.c

Lines changed: 1 addition & 61 deletions
Original file line numberDiff line numberDiff line change
@@ -53,71 +53,11 @@
5353
#include "zend_smart_str.h"
5454
#include "ext/standard/base64.h"
5555
#include "ext/standard/quot_print.h"
56+
#include "iconv_arginfo.h"
5657

5758
#define _php_iconv_memequal(a, b, c) \
5859
(memcmp(a, b, c) == 0)
5960

60-
/* {{{ arginfo */
61-
ZEND_BEGIN_ARG_INFO_EX(arginfo_iconv_strlen, 0, 0, 1)
62-
ZEND_ARG_INFO(0, str)
63-
ZEND_ARG_INFO(0, charset)
64-
ZEND_END_ARG_INFO()
65-
66-
ZEND_BEGIN_ARG_INFO_EX(arginfo_iconv_substr, 0, 0, 2)
67-
ZEND_ARG_INFO(0, str)
68-
ZEND_ARG_INFO(0, offset)
69-
ZEND_ARG_INFO(0, length)
70-
ZEND_ARG_INFO(0, charset)
71-
ZEND_END_ARG_INFO()
72-
73-
ZEND_BEGIN_ARG_INFO_EX(arginfo_iconv_strpos, 0, 0, 2)
74-
ZEND_ARG_INFO(0, haystack)
75-
ZEND_ARG_INFO(0, needle)
76-
ZEND_ARG_INFO(0, offset)
77-
ZEND_ARG_INFO(0, charset)
78-
ZEND_END_ARG_INFO()
79-
80-
ZEND_BEGIN_ARG_INFO_EX(arginfo_iconv_strrpos, 0, 0, 2)
81-
ZEND_ARG_INFO(0, haystack)
82-
ZEND_ARG_INFO(0, needle)
83-
ZEND_ARG_INFO(0, charset)
84-
ZEND_END_ARG_INFO()
85-
86-
ZEND_BEGIN_ARG_INFO_EX(arginfo_iconv_mime_encode, 0, 0, 2)
87-
ZEND_ARG_INFO(0, field_name)
88-
ZEND_ARG_INFO(0, field_value)
89-
ZEND_ARG_INFO(0, preference) /* ZEND_ARG_ARRAY_INFO(0, preference, 1) */
90-
ZEND_END_ARG_INFO()
91-
92-
ZEND_BEGIN_ARG_INFO_EX(arginfo_iconv_mime_decode, 0, 0, 1)
93-
ZEND_ARG_INFO(0, encoded_string)
94-
ZEND_ARG_INFO(0, mode)
95-
ZEND_ARG_INFO(0, charset)
96-
ZEND_END_ARG_INFO()
97-
98-
ZEND_BEGIN_ARG_INFO_EX(arginfo_iconv_mime_decode_headers, 0, 0, 1)
99-
ZEND_ARG_INFO(0, headers)
100-
ZEND_ARG_INFO(0, mode)
101-
ZEND_ARG_INFO(0, charset)
102-
ZEND_END_ARG_INFO()
103-
104-
ZEND_BEGIN_ARG_INFO(arginfo_iconv, 0)
105-
ZEND_ARG_INFO(0, in_charset)
106-
ZEND_ARG_INFO(0, out_charset)
107-
ZEND_ARG_INFO(0, str)
108-
ZEND_END_ARG_INFO()
109-
110-
ZEND_BEGIN_ARG_INFO(arginfo_iconv_set_encoding, 0)
111-
ZEND_ARG_INFO(0, type)
112-
ZEND_ARG_INFO(0, charset)
113-
ZEND_END_ARG_INFO()
114-
115-
ZEND_BEGIN_ARG_INFO_EX(arginfo_iconv_get_encoding, 0, 0, 0)
116-
ZEND_ARG_INFO(0, type)
117-
ZEND_END_ARG_INFO()
118-
119-
/* }}} */
120-
12161
/* {{{ iconv_functions[]
12262
*/
12363
static const zend_function_entry iconv_functions[] = {

ext/iconv/iconv.stub.php

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
<?php
2+
3+
/** @return string|false */
4+
function iconv_strlen(string $str, string $charset = UNKNOWN) {}
5+
6+
/** @return string|false */
7+
function iconv_substr(string $str, int $offset, int $length = UNKNOWN, string $charset = UNKNOWN) {}
8+
9+
/** @return int|false */
10+
function iconv_strpos(string $haystack, string $needle, int $offset = 0, string $charset = UNKNOWN) {}
11+
12+
/** @return int|false */
13+
function iconv_strrpos(string $haystack, string $needle, string $charset = UNKNOWN) {}
14+
15+
/** @return string|false */
16+
function iconv_mime_encode(string $field_name, string $field_value, array $preference = []) {}
17+
18+
/** @return string|false */
19+
function iconv_mime_decode(string $encoded_string, int $mode = 0, string $charset = UNKNOWN) {}
20+
21+
/** @return array|false */
22+
function iconv_mime_decode_headers(string $headers, int $mode = 0, string $charset = UNKNOWN) {}
23+
24+
/** @return string|false */
25+
function iconv(string $in_charset, string $out_charset, string $str) {}
26+
27+
function iconv_set_encoding(string $type, string $charset): bool {}
28+
29+
/** @return array|string|false */
30+
function iconv_get_encoding(string $type = 'all') {}

ext/iconv/iconv_arginfo.h

Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
/* This is a generated file, edit the .stub.php file instead. */
2+
3+
ZEND_BEGIN_ARG_INFO_EX(arginfo_iconv_strlen, 0, 0, 1)
4+
ZEND_ARG_TYPE_INFO(0, str, IS_STRING, 0)
5+
ZEND_ARG_TYPE_INFO(0, charset, IS_STRING, 0)
6+
ZEND_END_ARG_INFO()
7+
8+
ZEND_BEGIN_ARG_INFO_EX(arginfo_iconv_substr, 0, 0, 2)
9+
ZEND_ARG_TYPE_INFO(0, str, IS_STRING, 0)
10+
ZEND_ARG_TYPE_INFO(0, offset, IS_LONG, 0)
11+
ZEND_ARG_TYPE_INFO(0, length, IS_LONG, 0)
12+
ZEND_ARG_TYPE_INFO(0, charset, IS_STRING, 0)
13+
ZEND_END_ARG_INFO()
14+
15+
ZEND_BEGIN_ARG_INFO_EX(arginfo_iconv_strpos, 0, 0, 2)
16+
ZEND_ARG_TYPE_INFO(0, haystack, IS_STRING, 0)
17+
ZEND_ARG_TYPE_INFO(0, needle, IS_STRING, 0)
18+
ZEND_ARG_TYPE_INFO(0, offset, IS_LONG, 0)
19+
ZEND_ARG_TYPE_INFO(0, charset, IS_STRING, 0)
20+
ZEND_END_ARG_INFO()
21+
22+
ZEND_BEGIN_ARG_INFO_EX(arginfo_iconv_strrpos, 0, 0, 2)
23+
ZEND_ARG_TYPE_INFO(0, haystack, IS_STRING, 0)
24+
ZEND_ARG_TYPE_INFO(0, needle, IS_STRING, 0)
25+
ZEND_ARG_TYPE_INFO(0, charset, IS_STRING, 0)
26+
ZEND_END_ARG_INFO()
27+
28+
ZEND_BEGIN_ARG_INFO_EX(arginfo_iconv_mime_encode, 0, 0, 2)
29+
ZEND_ARG_TYPE_INFO(0, field_name, IS_STRING, 0)
30+
ZEND_ARG_TYPE_INFO(0, field_value, IS_STRING, 0)
31+
ZEND_ARG_TYPE_INFO(0, preference, IS_ARRAY, 0)
32+
ZEND_END_ARG_INFO()
33+
34+
ZEND_BEGIN_ARG_INFO_EX(arginfo_iconv_mime_decode, 0, 0, 1)
35+
ZEND_ARG_TYPE_INFO(0, encoded_string, IS_STRING, 0)
36+
ZEND_ARG_TYPE_INFO(0, mode, IS_LONG, 0)
37+
ZEND_ARG_TYPE_INFO(0, charset, IS_STRING, 0)
38+
ZEND_END_ARG_INFO()
39+
40+
ZEND_BEGIN_ARG_INFO_EX(arginfo_iconv_mime_decode_headers, 0, 0, 1)
41+
ZEND_ARG_TYPE_INFO(0, headers, IS_STRING, 0)
42+
ZEND_ARG_TYPE_INFO(0, mode, IS_LONG, 0)
43+
ZEND_ARG_TYPE_INFO(0, charset, IS_STRING, 0)
44+
ZEND_END_ARG_INFO()
45+
46+
ZEND_BEGIN_ARG_INFO_EX(arginfo_iconv, 0, 0, 3)
47+
ZEND_ARG_TYPE_INFO(0, in_charset, IS_STRING, 0)
48+
ZEND_ARG_TYPE_INFO(0, out_charset, IS_STRING, 0)
49+
ZEND_ARG_TYPE_INFO(0, str, IS_STRING, 0)
50+
ZEND_END_ARG_INFO()
51+
52+
ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_iconv_set_encoding, 0, 2, _IS_BOOL, 0)
53+
ZEND_ARG_TYPE_INFO(0, type, IS_STRING, 0)
54+
ZEND_ARG_TYPE_INFO(0, charset, IS_STRING, 0)
55+
ZEND_END_ARG_INFO()
56+
57+
ZEND_BEGIN_ARG_INFO_EX(arginfo_iconv_get_encoding, 0, 0, 0)
58+
ZEND_ARG_TYPE_INFO(0, type, IS_STRING, 0)
59+
ZEND_END_ARG_INFO()

0 commit comments

Comments
 (0)