mirror of
https://github.com/php/php-src.git
synced 2025-08-16 05:58:45 +02:00
- Make the output globals accessible from the outside world
- Fix Win32 compilation
This commit is contained in:
parent
ee5e330bcf
commit
d1a6a64675
6 changed files with 65 additions and 40 deletions
|
@ -70,6 +70,7 @@ static zval incomplete_class_get_property(zend_property_reference *property_refe
|
|||
incomplete_class_message(property_reference);
|
||||
|
||||
/* does not reach this point */
|
||||
memset(&foo, 0, sizeof(zval)); /* shut warnings up */
|
||||
return (foo);
|
||||
}
|
||||
|
||||
|
|
|
@ -37,29 +37,9 @@ static void php_ob_prepend(const char *text, uint text_length);
|
|||
static inline void php_ob_send(void);
|
||||
|
||||
|
||||
typedef struct {
|
||||
int (*php_body_write)(const char *str, uint str_length); /* string output */
|
||||
int (*php_header_write)(const char *str, uint str_length); /* unbuffer string output */
|
||||
char *ob_buffer;
|
||||
uint ob_size;
|
||||
uint ob_block_size;
|
||||
uint ob_text_length;
|
||||
unsigned char implicit_flush;
|
||||
char *output_start_filename;
|
||||
int output_start_lineno;
|
||||
} php_output_globals;
|
||||
|
||||
#ifdef ZTS
|
||||
#define OLS_D php_output_globals *output_globals
|
||||
#define OLS_C output_globals
|
||||
#define OG(v) (output_globals->v)
|
||||
#define OLS_FETCH() php_output_globals *output_globals = ts_resource(output_globals_id)
|
||||
int output_globals_id;
|
||||
#else
|
||||
#define OLS_D void
|
||||
#define OLS_C
|
||||
#define OG(v) (output_globals.v)
|
||||
#define OLS_FETCH()
|
||||
php_output_globals output_globals;
|
||||
#endif
|
||||
|
||||
|
|
|
@ -41,4 +41,32 @@ PHP_FUNCTION(ob_implicit_flush);
|
|||
|
||||
PHP_GINIT_FUNCTION(output);
|
||||
|
||||
typedef struct {
|
||||
int (*php_body_write)(const char *str, uint str_length); /* string output */
|
||||
int (*php_header_write)(const char *str, uint str_length); /* unbuffer string output */
|
||||
char *ob_buffer;
|
||||
uint ob_size;
|
||||
uint ob_block_size;
|
||||
uint ob_text_length;
|
||||
unsigned char implicit_flush;
|
||||
char *output_start_filename;
|
||||
int output_start_lineno;
|
||||
} php_output_globals;
|
||||
|
||||
|
||||
#ifdef ZTS
|
||||
#define OLS_D php_output_globals *output_globals
|
||||
#define OLS_C output_globals
|
||||
#define OG(v) (output_globals->v)
|
||||
#define OLS_FETCH() php_output_globals *output_globals = ts_resource(output_globals_id)
|
||||
ZEND_API extern int output_globals_id;
|
||||
#else
|
||||
#define OLS_D void
|
||||
#define OLS_C
|
||||
#define OG(v) (output_globals.v)
|
||||
#define OLS_FETCH()
|
||||
ZEND_API extern php_output_globals output_globals;
|
||||
#endif
|
||||
|
||||
|
||||
#endif /* _OUTPUT_BUFFER */
|
||||
|
|
|
@ -37,29 +37,9 @@ static void php_ob_prepend(const char *text, uint text_length);
|
|||
static inline void php_ob_send(void);
|
||||
|
||||
|
||||
typedef struct {
|
||||
int (*php_body_write)(const char *str, uint str_length); /* string output */
|
||||
int (*php_header_write)(const char *str, uint str_length); /* unbuffer string output */
|
||||
char *ob_buffer;
|
||||
uint ob_size;
|
||||
uint ob_block_size;
|
||||
uint ob_text_length;
|
||||
unsigned char implicit_flush;
|
||||
char *output_start_filename;
|
||||
int output_start_lineno;
|
||||
} php_output_globals;
|
||||
|
||||
#ifdef ZTS
|
||||
#define OLS_D php_output_globals *output_globals
|
||||
#define OLS_C output_globals
|
||||
#define OG(v) (output_globals->v)
|
||||
#define OLS_FETCH() php_output_globals *output_globals = ts_resource(output_globals_id)
|
||||
int output_globals_id;
|
||||
#else
|
||||
#define OLS_D void
|
||||
#define OLS_C
|
||||
#define OG(v) (output_globals.v)
|
||||
#define OLS_FETCH()
|
||||
php_output_globals output_globals;
|
||||
#endif
|
||||
|
||||
|
|
|
@ -41,4 +41,32 @@ PHP_FUNCTION(ob_implicit_flush);
|
|||
|
||||
PHP_GINIT_FUNCTION(output);
|
||||
|
||||
typedef struct {
|
||||
int (*php_body_write)(const char *str, uint str_length); /* string output */
|
||||
int (*php_header_write)(const char *str, uint str_length); /* unbuffer string output */
|
||||
char *ob_buffer;
|
||||
uint ob_size;
|
||||
uint ob_block_size;
|
||||
uint ob_text_length;
|
||||
unsigned char implicit_flush;
|
||||
char *output_start_filename;
|
||||
int output_start_lineno;
|
||||
} php_output_globals;
|
||||
|
||||
|
||||
#ifdef ZTS
|
||||
#define OLS_D php_output_globals *output_globals
|
||||
#define OLS_C output_globals
|
||||
#define OG(v) (output_globals->v)
|
||||
#define OLS_FETCH() php_output_globals *output_globals = ts_resource(output_globals_id)
|
||||
ZEND_API extern int output_globals_id;
|
||||
#else
|
||||
#define OLS_D void
|
||||
#define OLS_C
|
||||
#define OG(v) (output_globals.v)
|
||||
#define OLS_FETCH()
|
||||
ZEND_API extern php_output_globals output_globals;
|
||||
#endif
|
||||
|
||||
|
||||
#endif /* _OUTPUT_BUFFER */
|
||||
|
|
|
@ -389,6 +389,10 @@ SOURCE=..\ext\standard\image.c
|
|||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\ext\standard\incomplete_class.c
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\ext\standard\info.c
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
@ -634,6 +638,10 @@ SOURCE=..\ext\odbc\php_odbc.h
|
|||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\ext\standard\php_output.h
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\ext\pcre\php_pcre.h
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue