@@ -2,11 +2,10 @@ extern crate proc_macro;
22extern crate syn;
33
44use proc_macro:: TokenStream ;
5- use proc_macro2:: { Ident , Span } ;
65use quote:: quote;
76use syn:: punctuated:: Punctuated ;
87use syn:: token:: Comma ;
9- use syn:: { parse_macro_input, parse_str, FnArg , ItemFn , NestedMeta , AttributeArgs , Meta } ;
8+ use syn:: { parse_macro_input, parse_str, FnArg , Ident , ItemFn } ;
109
1110#[ proc_macro_attribute]
1211pub fn php_function ( _attr : TokenStream , input : TokenStream ) -> TokenStream {
@@ -22,8 +21,6 @@ pub fn php_function(_attr: TokenStream, input: TokenStream) -> TokenStream {
2221 let mut inputs = & mut inputs. clone ( ) ;
2322 internal_function_parameters ( & mut inputs) ;
2423
25- let name = Ident :: new ( & format ! ( "zif_{}" , name) , Span :: call_site ( ) ) ;
26-
2724 let result = quote ! {
2825 #[ no_mangle]
2926 #( #attrs) *
@@ -39,7 +36,7 @@ pub fn php_function(_attr: TokenStream, input: TokenStream) -> TokenStream {
3936pub fn php_minit_function ( _attr : TokenStream , input : TokenStream ) -> TokenStream {
4037 let input = parse_macro_input ! ( input as ItemFn ) ;
4138
42- let name = & zend_module_startup_n ( input. sig . ident . clone ( ) ) ;
39+ let name = & input. sig . ident ;
4340 let inputs = & init_func_args ( Punctuated :: new ( ) ) ;
4441 let inner_inputs = & input. sig . inputs ;
4542 let ret = & input. sig . output ;
@@ -51,8 +48,8 @@ pub fn php_minit_function(_attr: TokenStream, input: TokenStream) -> TokenStream
5148 #( #attrs) *
5249 pub extern "C" fn #name( #inputs) -> :: std:: os:: raw:: c_int {
5350 unsafe {
54- :: phper_sys :: zend_register_ini_entries(
55- INI_ENTRIES . with( |i| i. as_ptr( ) as * const :: phper_sys :: zend_ini_entry_def) ,
51+ :: phper :: sys :: zend_register_ini_entries(
52+ INI_ENTRIES . with( |i| i. as_ptr( ) as * const :: phper :: sys :: zend_ini_entry_def) ,
5653 module_number
5754 ) ;
5855 }
@@ -62,9 +59,9 @@ pub fn php_minit_function(_attr: TokenStream, input: TokenStream) -> TokenStream
6259 } ;
6360 let b: bool = f( ) ;
6461 if b {
65- :: phper_sys :: ZEND_RESULT_CODE_SUCCESS
62+ :: phper :: sys :: ZEND_RESULT_CODE_SUCCESS
6663 } else {
67- :: phper_sys :: ZEND_RESULT_CODE_FAILURE
64+ :: phper :: sys :: ZEND_RESULT_CODE_FAILURE
6865 }
6966 }
7067 } ;
@@ -76,7 +73,7 @@ pub fn php_minit_function(_attr: TokenStream, input: TokenStream) -> TokenStream
7673pub fn php_mshutdown_function ( _attr : TokenStream , input : TokenStream ) -> TokenStream {
7774 let input = parse_macro_input ! ( input as ItemFn ) ;
7875
79- let name = & zend_module_shutdown_n ( input. sig . ident . clone ( ) ) ;
76+ let name = & input. sig . ident ;
8077 let inputs = & shutdown_func_args ( Punctuated :: new ( ) ) ;
8178 let inner_inputs = & input. sig . inputs ;
8279 let ret = & input. sig . output ;
@@ -88,17 +85,17 @@ pub fn php_mshutdown_function(_attr: TokenStream, input: TokenStream) -> TokenSt
8885 #( #attrs) *
8986 pub extern "C" fn #name( #inputs) -> :: std:: os:: raw:: c_int {
9087 unsafe {
91- :: phper_sys :: zend_unregister_ini_entries( module_number) ;
88+ :: phper :: sys :: zend_unregister_ini_entries( module_number) ;
9289 }
9390
9491 let f = |#inner_inputs| #ret {
9592 #body
9693 } ;
9794 let b: bool = f( ) ;
9895 if b {
99- :: phper_sys :: ZEND_RESULT_CODE_SUCCESS
96+ :: phper :: sys :: ZEND_RESULT_CODE_SUCCESS
10097 } else {
101- :: phper_sys :: ZEND_RESULT_CODE_FAILURE
98+ :: phper :: sys :: ZEND_RESULT_CODE_FAILURE
10299 }
103100 }
104101 } ;
@@ -110,7 +107,7 @@ pub fn php_mshutdown_function(_attr: TokenStream, input: TokenStream) -> TokenSt
110107pub fn php_rinit_function ( _attr : TokenStream , input : TokenStream ) -> TokenStream {
111108 let input = parse_macro_input ! ( input as ItemFn ) ;
112109
113- let name = & zend_module_activate_n ( input. sig . ident . clone ( ) ) ;
110+ let name = & input. sig . ident ;
114111 let inputs = & init_func_args ( Punctuated :: new ( ) ) ;
115112 let inner_inputs = & input. sig . inputs ;
116113 let ret = & input. sig . output ;
@@ -126,9 +123,9 @@ pub fn php_rinit_function(_attr: TokenStream, input: TokenStream) -> TokenStream
126123 }
127124 let b: bool = #name( ) ;
128125 if b {
129- :: phper_sys :: ZEND_RESULT_CODE_SUCCESS
126+ :: phper :: sys :: ZEND_RESULT_CODE_SUCCESS
130127 } else {
131- :: phper_sys :: ZEND_RESULT_CODE_FAILURE
128+ :: phper :: sys :: ZEND_RESULT_CODE_FAILURE
132129 }
133130 }
134131 } ;
@@ -137,10 +134,10 @@ pub fn php_rinit_function(_attr: TokenStream, input: TokenStream) -> TokenStream
137134}
138135
139136#[ proc_macro_attribute]
140- pub fn php_rshutdown_function ( _attr : TokenStream , mut input : TokenStream ) -> TokenStream {
137+ pub fn php_rshutdown_function ( _attr : TokenStream , input : TokenStream ) -> TokenStream {
141138 let input = parse_macro_input ! ( input as ItemFn ) ;
142139
143- let name = & zend_module_deactivate_n ( input. sig . ident . clone ( ) ) ;
140+ let name = & input. sig . ident ;
144141 let inputs = & init_func_args ( Punctuated :: new ( ) ) ;
145142 let inner_inputs = & input. sig . inputs ;
146143 let ret = & input. sig . output ;
@@ -156,9 +153,9 @@ pub fn php_rshutdown_function(_attr: TokenStream, mut input: TokenStream) -> Tok
156153 }
157154 let b: bool = #name( ) ;
158155 if b {
159- :: phper_sys :: ZEND_RESULT_CODE_SUCCESS
156+ :: phper :: sys :: ZEND_RESULT_CODE_SUCCESS
160157 } else {
161- :: phper_sys :: ZEND_RESULT_CODE_FAILURE
158+ :: phper :: sys :: ZEND_RESULT_CODE_FAILURE
162159 }
163160 }
164161 } ;
@@ -170,7 +167,7 @@ pub fn php_rshutdown_function(_attr: TokenStream, mut input: TokenStream) -> Tok
170167pub fn php_minfo_function ( _attr : TokenStream , input : TokenStream ) -> TokenStream {
171168 let input = parse_macro_input ! ( input as ItemFn ) ;
172169
173- let name = & zend_module_info_n ( input. sig . ident . clone ( ) ) ;
170+ let name = & input. sig . ident ;
174171 let inputs = & zend_module_info_func_args ( Punctuated :: new ( ) ) ;
175172 let inner_inputs = & input. sig . inputs ;
176173 let ret = & input. sig . output ;
@@ -191,14 +188,23 @@ pub fn php_minfo_function(_attr: TokenStream, input: TokenStream) -> TokenStream
191188 result. into ( )
192189}
193190
194- //#[proc_macro_attribute]
195- //pub fn php_ini(_attr: TokenStream, input: TokenStream) -> TokenStream {
196- // input
197- //}
191+ #[ proc_macro]
192+ pub fn zend_get_module ( input : TokenStream ) -> TokenStream {
193+ let name = parse_macro_input ! ( input as Ident ) ;
194+
195+ let result = quote ! {
196+ #[ no_mangle]
197+ pub extern "C" fn get_module( ) -> * const :: phper:: sys:: zend_module_entry {
198+ #name. 0
199+ }
200+ } ;
201+
202+ result. into ( )
203+ }
198204
199205fn internal_function_parameters ( inputs : & mut Punctuated < FnArg , Comma > ) {
200- inputs. push ( parse_str ( "execute_data: *mut ::phper_sys ::zend_execute_data" ) . unwrap ( ) ) ;
201- inputs. push ( parse_str ( "return_value: *mut ::phper_sys ::zval" ) . unwrap ( ) ) ;
206+ inputs. push ( parse_str ( "execute_data: *mut ::phper::sys ::zend_execute_data" ) . unwrap ( ) ) ;
207+ inputs. push ( parse_str ( "return_value: *mut ::phper::sys ::zval" ) . unwrap ( ) ) ;
202208}
203209
204210fn init_func_args ( mut inputs : Punctuated < FnArg , Comma > ) -> Punctuated < FnArg , Comma > {
@@ -214,26 +220,26 @@ fn shutdown_func_args(mut inputs: Punctuated<FnArg, Comma>) -> Punctuated<FnArg,
214220}
215221
216222fn zend_module_info_func_args ( mut inputs : Punctuated < FnArg , Comma > ) -> Punctuated < FnArg , Comma > {
217- inputs. push ( parse_str ( "zend_module: *mut ::phper_sys ::zend_module_entry" ) . unwrap ( ) ) ;
223+ inputs. push ( parse_str ( "zend_module: *mut ::phper::sys ::zend_module_entry" ) . unwrap ( ) ) ;
218224 inputs
219225}
220226
221- fn zend_module_startup_n ( ident : Ident ) -> Ident {
222- Ident :: new ( & format ! ( "zm_startup_{}" , ident) , ident. span ( ) )
223- }
224-
225- fn zend_module_shutdown_n ( ident : Ident ) -> Ident {
226- Ident :: new ( & format ! ( "zm_shutdown_{}" , ident) , ident. span ( ) )
227- }
228-
229- fn zend_module_activate_n ( ident : Ident ) -> Ident {
230- Ident :: new ( & format ! ( "zm_activate_{}" , ident) , ident. span ( ) )
231- }
232-
233- fn zend_module_deactivate_n ( ident : Ident ) -> Ident {
234- Ident :: new ( & format ! ( "zm_deactivate_{}" , ident) , ident. span ( ) )
235- }
236-
237- fn zend_module_info_n ( ident : Ident ) -> Ident {
238- Ident :: new ( & format ! ( "zm_info_{}" , ident) , ident. span ( ) )
239- }
227+ // fn zend_module_startup_n(ident: Ident) -> Ident {
228+ // Ident::new(&format!("zm_startup_{}", ident), ident.span())
229+ // }
230+ //
231+ // fn zend_module_shutdown_n(ident: Ident) -> Ident {
232+ // Ident::new(&format!("zm_shutdown_{}", ident), ident.span())
233+ // }
234+ //
235+ // fn zend_module_activate_n(ident: Ident) -> Ident {
236+ // Ident::new(&format!("zm_activate_{}", ident), ident.span())
237+ // }
238+ //
239+ // fn zend_module_deactivate_n(ident: Ident) -> Ident {
240+ // Ident::new(&format!("zm_deactivate_{}", ident), ident.span())
241+ // }
242+ //
243+ // fn zend_module_info_n(ident: Ident) -> Ident {
244+ // Ident::new(&format!("zm_info_{}", ident), ident.span())
245+ // }
0 commit comments