404

[ Avaa Bypassed ]




Upload:

Command:

elspacio@18.220.49.32: ~ $
/*
   +----------------------------------------------------------------------+
   | PHP Version 5                                                        |
   +----------------------------------------------------------------------+
   | Copyright (c) 1997-2010 The PHP Group                                |
   +----------------------------------------------------------------------+
   | This source file is subject to version 3.01 of the PHP license,      |
   | that is bundled with this package in the file LICENSE, and is        |
   | available through the world-wide-web at the following url:           |
   | http://www.php.net/license/3_01.txt                                  |
   | If you did not receive a copy of the PHP license and are unable to   |
   | obtain it through the world-wide-web, please send a note to          |
   | license@php.net so we can mail you a copy immediately.               |
   +----------------------------------------------------------------------+
   | Author: Sascha Schumann <sascha@schumann.cx>                         |
   +----------------------------------------------------------------------+
 */

/* $Id: php_smart_str.h 293036 2010-01-03 09:23:27Z sebastian $ */

#ifndef PHP_SMART_STR_H
#define PHP_SMART_STR_H

#include "php_smart_str_public.h"

#include <stdlib.h>
#ifndef SMART_STR_USE_REALLOC
#include <zend.h>
#endif

#define smart_str_0(x) do {											\
	if ((x)->c) {													\
		(x)->c[(x)->len] = '\0';									\
	}																\
} while (0)

#ifndef SMART_STR_PREALLOC
#define SMART_STR_PREALLOC 128
#endif

#ifndef SMART_STR_START_SIZE
#define SMART_STR_START_SIZE 78
#endif

#ifdef SMART_STR_USE_REALLOC
#define SMART_STR_REALLOC(a,b,c) realloc((a),(b))
#else
#define SMART_STR_REALLOC(a,b,c) perealloc((a),(b),(c))
#endif

#define SMART_STR_DO_REALLOC(d, what) \
	(d)->c = SMART_STR_REALLOC((d)->c, (d)->a + 1, (what))

#define smart_str_alloc4(d, n, what, newlen) do {					\
	if (!(d)->c) {													\
		(d)->len = 0;												\
		newlen = (n);												\
		(d)->a = newlen < SMART_STR_START_SIZE 						\
				? SMART_STR_START_SIZE 								\
				: newlen + SMART_STR_PREALLOC;						\
		SMART_STR_DO_REALLOC(d, what);								\
	} else {														\
		newlen = (d)->len + (n);									\
		if (newlen >= (d)->a) {										\
			(d)->a = newlen + SMART_STR_PREALLOC;					\
			SMART_STR_DO_REALLOC(d, what);							\
		}															\
	}																\
} while (0)

#define smart_str_alloc(d, n, what) \
	smart_str_alloc4((d), (n), (what), newlen)

/* wrapper */

#define smart_str_appends_ex(dest, src, what) \
	smart_str_appendl_ex((dest), (src), strlen(src), (what))
#define smart_str_appends(dest, src) \
	smart_str_appendl((dest), (src), strlen(src))

#define smart_str_appendc(dest, c) \
	smart_str_appendc_ex((dest), (c), 0)
#define smart_str_free(s) \
	smart_str_free_ex((s), 0)
#define smart_str_appendl(dest, src, len) \
	smart_str_appendl_ex((dest), (src), (len), 0)
#define smart_str_append(dest, src) \
	smart_str_append_ex((dest), (src), 0)
#define smart_str_append_long(dest, val) \
	smart_str_append_long_ex((dest), (val), 0)
#define smart_str_append_off_t(dest, val) \
	smart_str_append_off_t_ex((dest), (val), 0)
#define smart_str_append_unsigned(dest, val) \
	smart_str_append_unsigned_ex((dest), (val), 0)

#define smart_str_appendc_ex(dest, ch, what) do {					\
	register size_t __nl;											\
	smart_str_alloc4((dest), 1, (what), __nl);						\
	(dest)->len = __nl;												\
	((unsigned char *) (dest)->c)[(dest)->len - 1] = (ch);			\
} while (0)

#define smart_str_free_ex(s, what) do {								\
	smart_str *__s = (smart_str *) (s);								\
	if (__s->c) {													\
		pefree(__s->c, what);										\
		__s->c = NULL;												\
	}																\
	__s->a = __s->len = 0;											\
} while (0)

#define smart_str_appendl_ex(dest, src, nlen, what) do {			\
	register size_t __nl;											\
	smart_str *__dest = (smart_str *) (dest);						\
																	\
	smart_str_alloc4(__dest, (nlen), (what), __nl);					\
	memcpy(__dest->c + __dest->len, (src), (nlen));					\
	__dest->len = __nl;												\
} while (0)

/* input: buf points to the END of the buffer */
#define smart_str_print_unsigned4(buf, num, vartype, result) do {	\
	char *__p = (buf);												\
	vartype __num = (num);											\
	*__p = '\0';													\
	do {															\
		*--__p = (char) (__num % 10) + '0';							\
		__num /= 10;												\
	} while (__num > 0);											\
	result = __p;													\
} while (0)

/* buf points to the END of the buffer */
#define smart_str_print_long4(buf, num, vartype, result) do {	\
	if (num < 0) {													\
		/* this might cause problems when dealing with LONG_MIN		\
		   and machines which don't support long long.  Works		\
		   flawlessly on 32bit x86 */								\
		smart_str_print_unsigned4((buf), -(num), vartype, (result));	\
		*--(result) = '-';											\
	} else {														\
		smart_str_print_unsigned4((buf), (num), vartype, (result));	\
	}																\
} while (0)

/*
 * these could be replaced using a braced-group inside an expression
 * for GCC compatible compilers, e.g.
 *
 * #define f(..) ({char *r;..;__r;})
 */  
 
static inline char *smart_str_print_long(char *buf, long num) {
	char *r; 
	smart_str_print_long4(buf, num, unsigned long, r); 
	return r;
}

static inline char *smart_str_print_unsigned(char *buf, long num) {
	char *r; 
	smart_str_print_unsigned4(buf, num, unsigned long, r); 
	return r;
}

#define smart_str_append_generic_ex(dest, num, type, vartype, func) do {	\
	char __b[32];															\
	char *__t;																\
   	smart_str_print##func##4 (__b + sizeof(__b) - 1, (num), vartype, __t);	\
	smart_str_appendl_ex((dest), __t, __b + sizeof(__b) - 1 - __t, (type));	\
} while (0)
	
#define smart_str_append_unsigned_ex(dest, num, type) \
	smart_str_append_generic_ex((dest), (num), (type), unsigned long, _unsigned)

#define smart_str_append_long_ex(dest, num, type) \
	smart_str_append_generic_ex((dest), (num), (type), unsigned long, _long)

#define smart_str_append_off_t_ex(dest, num, type) \
	smart_str_append_generic_ex((dest), (num), (type), off_t, _long)

#define smart_str_append_ex(dest, src, what) \
	smart_str_appendl_ex((dest), ((smart_str *)(src))->c, \
		((smart_str *)(src))->len, (what));


#define smart_str_setl(dest, src, nlen) do {						\
	(dest)->len = (nlen);											\
	(dest)->a = (nlen) + 1;											\
	(dest)->c = (char *) (src);										\
} while (0)

#define smart_str_sets(dest, src) \
	smart_str_setl((dest), (src), strlen(src));

#endif

Filemanager

Name Type Size Permission Actions
base64.h File 1.62 KB 0644
basic_functions.h File 6.51 KB 0644
crc32.h File 4.83 KB 0644
credits.h File 1.75 KB 0644
credits_ext.h File 5.29 KB 0644
credits_sapi.h File 1.4 KB 0644
css.h File 1.25 KB 0644
cyr_convert.h File 1.29 KB 0644
datetime.h File 1.42 KB 0644
dl.h File 1.53 KB 0644
exec.h File 1.7 KB 0644
file.h File 4.21 KB 0644
flock_compat.h File 2.05 KB 0644
fsock.h File 1.62 KB 0644
head.h File 1.61 KB 0644
html.h File 2.13 KB 0644
info.h File 3.57 KB 0644
md5.h File 2.78 KB 0644
microtime.h File 1.38 KB 0644
pack.h File 1.29 KB 0644
pageinfo.h File 1.48 KB 0644
php_array.h File 3.94 KB 0644
php_assert.h File 1.45 KB 0644
php_browscap.h File 1.35 KB 0644
php_crypt.h File 1.54 KB 0644
php_dir.h File 1.62 KB 0644
php_dns.h File 1.95 KB 0644
php_ext_syslog.h File 1.57 KB 0644
php_filestat.h File 3.2 KB 0644
php_fopen_wrappers.h File 1.96 KB 0644
php_ftok.h File 1.28 KB 0644
php_http.h File 1.8 KB 0644
php_image.h File 2.34 KB 0644
php_incomplete_class.h File 2.51 KB 0644
php_iptc.h File 1.29 KB 0644
php_lcg.h File 1.55 KB 0644
php_link.h File 1.36 KB 0644
php_mail.h File 1.42 KB 0644
php_math.h File 4.23 KB 0644
php_metaphone.h File 1.27 KB 0644
php_rand.h File 2.59 KB 0644
php_smart_str.h File 6.43 KB 0644
php_smart_str_public.h File 1.35 KB 0644
php_standard.h File 2.26 KB 0644
php_string.h File 6 KB 0644
php_type.h File 1.6 KB 0644
php_uuencode.h File 1.52 KB 0644
php_var.h File 5.46 KB 0644
php_versioning.h File 1.43 KB 0644
proc_open.h File 1.86 KB 0644
quot_print.h File 1.42 KB 0644
reg.h File 1.81 KB 0644
scanf.h File 2.32 KB 0644
sha1.h File 1.76 KB 0644
streamsfuncs.h File 2.58 KB 0644
uniqid.h File 1.29 KB 0644
url.h File 2.27 KB 0644
url_scanner_ex.h File 2.15 KB 0644