Browse Source

*Fixed compilation errors and enhanced the code

migration/unlabaled-1.1.2
Tal Peer 24 years ago
parent
commit
e0247cbd6e
  1. 8
      ext/fribidi/config.m4
  2. 29
      ext/fribidi/fribidi.c
  3. 1
      ext/fribidi/php_fribidi.h

8
ext/fribidi/config.m4

@ -36,10 +36,10 @@ dnl $PHP_FRIBIDI will be "yes"
dnl check for glib header files
AC_MSG_CHECKING([for glibconfig.h in "usr/lib/glib/include/"])
if test -f /usr/lib/glib/include/glibconfig.h ; then
AC_MSG_CHECKING([for glib header files])
if test -f `which glib-config` ; then
AC_MSG_RESULT([found])
GLIB_INCDIR=/usr/lib/glib/include/
GLIB_INCDIR=`glib-config --cflags`
else
AC_MSG_RESULT([missing])
fi
@ -67,7 +67,7 @@ dnl $PHP_FRIBIDI will be "yes"
AC_MSG_RESULT([yes])
PHP_ADD_INCLUDE("$FRIBIDI_INCDIR")
PHP_ADD_INCLUDE("$GLIB_INCDIR")
PHP_EVAL_INCLINE("$GLIB_INCDIR")
PHP_ADD_LIBRARY_WITH_PATH(fribidi,"$FRIBIDI_LIBDIR", FRIBIDI_SHARED_LIBADD)
AC_DEFINE(HAVE_FRIBIDI, 1, [ ])

29
ext/fribidi/fribidi.c

@ -134,8 +134,8 @@ PHP_FUNCTION(fribidi_log2vis)
FriBidiCharType base_dir;
guint16 *position_L_to_V_list;
guint16 *position_V_to_L_list;
FriBidiStrIndex *position_L_to_V_list;
FriBidiStrIndex *position_V_to_L_list;
guint8 *embedding_level_list;
/* get parameters from input */
@ -162,8 +162,8 @@ PHP_FUNCTION(fribidi_log2vis)
u_logical_str = (FriBidiChar*) emalloc(sizeof(FriBidiChar)*alloc_len);
u_visual_str = (FriBidiChar*) emalloc(sizeof(FriBidiChar)*alloc_len);
position_L_to_V_list = (guint16*) emalloc(sizeof(guint16)*alloc_len);
position_V_to_L_list = (guint16*) emalloc(sizeof(guint16)*alloc_len);
position_L_to_V_list = (FriBidiStrIndex*) emalloc(sizeof(FriBidiStrIndex)*alloc_len);
position_V_to_L_list = (FriBidiStrIndex*) emalloc(sizeof(FriBidiStrIndex)*alloc_len);
embedding_level_list = (guint8*) emalloc(sizeof(guint8)*alloc_len);
outString = (guchar*)emalloc(sizeof(guchar)*alloc_len);
@ -174,25 +174,32 @@ PHP_FUNCTION(fribidi_log2vis)
switch(Z_LVAL_PP(parameter3)) {
case FRIBIDI_CHARSET_UTF8:
utf8_len=fribidi_utf8_to_unicode(inString, u_logical_str);
utf8_len=fribidi_utf8_to_unicode(inString, len, u_logical_str);
break;
case FRIBIDI_CHARSET_ISO8859_6:
fribidi_iso8859_6_to_unicode(inString, u_logical_str);
fribidi_iso8859_6_to_unicode(inString, len, u_logical_str);
break;
case FRIBIDI_CHARSET_ISO8859_8:
fribidi_iso8859_8_to_unicode(inString, u_logical_str);
fribidi_iso8859_8_to_unicode(inString, len, u_logical_str);
break;
case FRIBIDI_CHARSET_CP1255:
fribidi_cp1255_to_unicode(inString, u_logical_str);
fribidi_cp1255_to_unicode(inString, len, u_logical_str);
break;
case FRIBIDI_CHARSET_CP1256:
fribidi_cp1256_to_unicode(inString, u_logical_str);
fribidi_cp1256_to_unicode(inString, len, u_logical_str);
break;
case FRIBIDI_CHARSET_ISIRI_3342:
fribidi_isiri_3342_to_unicode(inString, u_logical_str);
fribidi_isiri_3342_to_unicode(inString, len, u_logical_str);
break;
default:
zend_error(E_ERROR,"unknown character set %d<br />", Z_LVAL_PP(parameter3));
php_error_docref(NULL TSRMLS_CC, E_ERROR, "Unknown charset");
efree(u_logical_str);
efree(u_visual_str);
efree(position_L_to_V_list);
efree(position_V_to_L_list);
efree(embedding_level_list);
efree(outString);
RETURN_FALSE;
}

1
ext/fribidi/php_fribidi.h

@ -23,6 +23,7 @@
#include "fribidi.h"
#include "../standard/info.h"
#include <glib.h>
extern zend_module_entry fribidi_module_entry;
#define phpext_fribidi_ptr &fribidi_module_entry

Loading…
Cancel
Save