[php-i18n-commits] cvs commit: libmbfl/mbfl mbfilter.c mbfilter.h

Back to archive index

Moriyoshi Koizumi moriy****@users*****
2002年 12月 8日 (日) 17:18:44 JST


moriyoshi    02/12/08 17:18:44

  Modified:    mbfl     mbfilter.c mbfilter.h
  Log:
  Added allocators for the sake of independence as a library
  
  Revision  Changes    Path
  1.2       +47 -55    libmbfl/mbfl/mbfilter.c
  
  Index: mbfilter.c
  ===================================================================
  RCS file: /cvsroot/php-i18n/libmbfl/mbfl/mbfilter.c,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- mbfilter.c	7 Dec 2002 19:20:44 -0000	1.1
  +++ mbfilter.c	8 Dec 2002 08:18:44 -0000	1.2
  @@ -85,10 +85,24 @@
   #include "config.h"
   #endif
   
  +#include <stddef.h>
  +
   #ifdef HAVE_STDLIB_H
   #include <stdlib.h>
   #endif
   
  +#ifdef HAVE_STRING_H
  +#include <string.h>
  +#endif
  +
  +#ifdef HAVE_STRINGS_H
  +#include <strings.h>
  +#endif
  +
  +#ifdef HAVE_MEMORY_H
  +#include <memory.h>
  +#endif
  +
   #include "mbfilter.h"
   
   #include "filters/mbfilter_euc_cn.h"
  @@ -135,7 +149,7 @@
   #include "filters/mbfilter_byte4.h"
   #include "filters/mbfilter_ucs4.h"
   #include "filters/mbfilter_ucs2.h"
  -#include "filters/mbfilter_htmlnumeric.h"
  +#include "filters/mbfilter_htmlent.h"
   
   #include "nls/nls_ja.h"
   #include "nls/nls_kr.h"
  @@ -145,14 +159,18 @@
   #include "nls/nls_ru.h"
   #include "nls/nls_en.h"
   
  -#define	mbfl_malloc		malloc
  -#define	mbfl_realloc	realloc
  -#define	mbfl_calloc		calloc
  -#define	mbfl_free		free
  -
  -#define	mbfl_pmalloc	malloc
  -#define	mbfl_prealloc	realloc
  -#define	mbfl_pfree		free
  +static void *__mbfl__malloc(size_t);
  +static void *__mbfl__realloc(void *, size_t);
  +static void *__mbfl__calloc(unsigned int, size_t);
  +static void __mbfl__free(void *);
  + 
  +void *(*__mbfl_malloc)(size_t) = __mbfl__malloc;
  +void *(*__mbfl_realloc)(void *, size_t) = __mbfl__realloc;
  +void *(*__mbfl_calloc)(unsigned int, size_t) = __mbfl__calloc;
  +void (*__mbfl_free)(void *) = __mbfl__free;
  +void *(*__mbfl_pmalloc)(size_t) = __mbfl__malloc;
  +void *(*__mbfl_prealloc)(void *, size_t) = __mbfl__realloc;
  +void (*__mbfl_pfree)(void *) = __mbfl__free; 
   
   static const mbfl_language *mbfl_language_ptr_table[] = {
   	&mbfl_language_uni,
  @@ -4006,52 +4024,6 @@
   	return len;
   }
   
  -#ifdef ZEND_MULTIBYTE
  -/*
  - *	oddlen
  - */
  -int
  -mbfl_oddlen(mbfl_string *string)
  -{
  -	int len, n, m, k;
  -	unsigned char *p;
  -	const unsigned char *mbtab;
  -	const mbfl_encoding *encoding;
  -
  -	encoding = mbfl_no2encoding(string->no_encoding);
  -	if (encoding == NULL || string == NULL) {
  -		return -1;
  -	}
  -
  -	len = 0;
  -	if (encoding->flag & MBFL_ENCTYPE_SBCS) {
  -		return 0;
  -	} else if (encoding->flag & (MBFL_ENCTYPE_WCS2BE | MBFL_ENCTYPE_WCS2LE)) {
  -		return len % 2;
  -	} else if (encoding->flag & (MBFL_ENCTYPE_WCS4BE | MBFL_ENCTYPE_WCS4LE)) {
  -		return len % 4;
  -	} else if (encoding->mblen_table != NULL) {
  - 		mbtab = encoding->mblen_table;
  - 		n = 0;
  -		p = string->val;
  -		k = string->len;
  -		/* count */
  -		if (p != NULL) {
  -			while (n < k) {
  -				m = mbtab[*p];
  -				n += m;
  -				p += m;
  -			};
  -		}
  -		return n-k;
  -	} else {
  -		/* how can i do ? */
  -		return 0;
  -	}
  -	/* NOT REACHED */
  -}
  -#endif /* ZEND_MULTIBYTE */
  - 
    
   /*
    *  strpos
  @@ -6011,6 +5983,26 @@
   
   	return result;
   }
  +
  +static void *__mbfl__malloc(size_t sz)
  +{
  +	return malloc(sz);
  +}
  +
  +static void *__mbfl__realloc(void *ptr, size_t sz)
  +{
  +	return realloc(ptr, sz);
  +}
  +
  +static void *__mbfl__calloc(unsigned int nelems, size_t szelem)
  +{
  +	return calloc(nelems, szelem);
  +}
  +
  +static void __mbfl__free(void *ptr)
  +{
  +	free(ptr);
  +} 
   
   /*
    * Local variables:
  
  
  
  1.2       +16 -1     libmbfl/mbfl/mbfilter.h
  
  Index: mbfilter.h
  ===================================================================
  RCS file: /cvsroot/php-i18n/libmbfl/mbfl/mbfilter.h,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- mbfilter.h	7 Dec 2002 19:20:44 -0000	1.1
  +++ mbfilter.h	8 Dec 2002 08:18:44 -0000	1.2
  @@ -591,6 +591,21 @@
   	int     code;
   } mbfl_html_entity;
   
  -extern const mbfl_html_entity mbfl_html_entity_list[];
  +/* allocators */
  +extern void *(*__mbfl_malloc)(size_t);
  +extern void *(*__mbfl_realloc)(void *, size_t);
  +extern void *(*__mbfl_calloc)(unsigned int, size_t);
  +extern void (*__mbfl_free)(void *);
  +extern void *(*__mbfl_pmalloc)(size_t); 
  +extern void *(*__mbfl_prealloc)(void *, size_t);
  +extern void (*__mbfl_pfree)(void *);
  +
  +#define mbfl_malloc __mbfl_malloc
  +#define mbfl_realloc __mbfl_realloc
  +#define mbfl_calloc __mbfl_calloc
  +#define mbfl_free __mbfl_free
  +#define mbfl_pmalloc __mbfl_pmalloc
  +#define mbfl_prealloc __mbfl_prealloc
  +#define mbfl_pfree __mbfl_pfree
   
   #endif	/* MBFL_MBFILTER_H */
  
  
  



php-i18n-commits メーリングリストの案内
Back to archive index