Back to index

php5  5.3.10
Classes | Defines | Typedefs | Functions | Variables
enchant.c File Reference
#include <enchant.h>
#include "php.h"
#include "php_ini.h"
#include "ext/standard/info.h"
#include "php_enchant.h"

Go to the source code of this file.

Classes

struct  _broker_struct
struct  _dict_struct

Defines

#define PHP_ENCHANT_MYSPELL   1
#define PHP_ENCHANT_ISPELL   2
#define PHP_ENCHANT_GET_BROKER
#define PHP_ENCHANT_GET_DICT

Typedefs

typedef EnchantBroker * EnchantBrokerPtr
typedef struct _broker_struct
typedef struct _dict_struct
typedef enchant_broker * enchant_brokerPtr
typedef enchant_dict * enchant_dictPtr
typedef struct _broker_struct _enchant_broker
typedef struct _dict_struct _enchant_dict

Functions

static void enumerate_providers_fn (const char *const name, const char *const desc, const char *const file, void *ud)
static void describe_dict_fn (const char *const lang, const char *const name, const char *const desc, const char *const file, void *ud)
static void php_enchant_list_dicts_fn (const char *const lang_tag, const char *const provider_name, const char *const provider_desc, const char *const provider_file, void *ud)
static void php_enchant_broker_free (zend_rsrc_list_entry *rsrc TSRMLS_DC)
static void php_enchant_dict_free (zend_rsrc_list_entry *rsrc TSRMLS_DC)
 PHP_MINIT_FUNCTION (enchant)
 PHP_MSHUTDOWN_FUNCTION (enchant)
static void __enumerate_providers_fn (const char *const name, const char *const desc, const char *const file, void *ud)
 PHP_MINFO_FUNCTION (enchant)
 PHP_FUNCTION (enchant_broker_init)
 PHP_FUNCTION (enchant_broker_free)
 PHP_FUNCTION (enchant_broker_get_error)
 PHP_FUNCTION (enchant_broker_set_dict_path)
 PHP_FUNCTION (enchant_broker_get_dict_path)
 PHP_FUNCTION (enchant_broker_list_dicts)
 PHP_FUNCTION (enchant_broker_request_dict)
 PHP_FUNCTION (enchant_broker_request_pwl_dict)
 PHP_FUNCTION (enchant_broker_free_dict)
 PHP_FUNCTION (enchant_broker_dict_exists)
 PHP_FUNCTION (enchant_broker_set_ordering)
 PHP_FUNCTION (enchant_broker_describe)
 PHP_FUNCTION (enchant_dict_quick_check)
 PHP_FUNCTION (enchant_dict_check)
 PHP_FUNCTION (enchant_dict_suggest)
 PHP_FUNCTION (enchant_dict_add_to_personal)
 PHP_FUNCTION (enchant_dict_add_to_session)
 PHP_FUNCTION (enchant_dict_is_in_session)
 PHP_FUNCTION (enchant_dict_store_replacement)
 PHP_FUNCTION (enchant_dict_get_error)
 PHP_FUNCTION (enchant_dict_describe)

Variables

static int le_enchant_broker
static int le_enchant_dict
function_entry enchant_functions []
zend_module_entry enchant_module_entry

Class Documentation

struct _broker_struct

Definition at line 39 of file enchant.c.

Class Members
enchant_dict ** dict
unsigned int dictcnt
EnchantBroker * pbroker
long rsrc_id
struct _dict_struct

Definition at line 46 of file enchant.c.

Class Members
unsigned int id
enchant_dict * next
enchant_broker * pbroker
EnchantDict * pdict
enchant_dict * prev
long rsrc_id

Define Documentation

Value:
ZEND_FETCH_RESOURCE(pbroker, enchant_broker *, &broker, -1, "enchant_broker", le_enchant_broker); \
       if (!pbroker || !pbroker->pbroker) {      \
              php_error_docref(NULL TSRMLS_CC, E_WARNING, "%s", "Resource broker invalid");       \
              RETURN_FALSE; \
       }

Definition at line 339 of file enchant.c.

Value:
ZEND_FETCH_RESOURCE(pdict, enchant_dict *, &dict, -1, "enchant_dict", le_enchant_dict);    \
       if (!pdict || !pdict->pdict) {     \
              php_error_docref(NULL TSRMLS_CC, E_WARNING, "%s", "Invalid dictionary resource.");  \
              RETURN_FALSE; \
       }

Definition at line 346 of file enchant.c.

#define PHP_ENCHANT_ISPELL   2

Definition at line 64 of file enchant.c.

#define PHP_ENCHANT_MYSPELL   1

Definition at line 63 of file enchant.c.


Typedef Documentation

typedef struct _broker_struct

Definition at line 33 of file enchant.c.

typedef struct _dict_struct

Definition at line 34 of file enchant.c.

typedef struct _dict_struct _enchant_dict
typedef enchant_broker* enchant_brokerPtr

Definition at line 36 of file enchant.c.

typedef enchant_dict* enchant_dictPtr

Definition at line 37 of file enchant.c.

typedef EnchantBroker* EnchantBrokerPtr

Definition at line 32 of file enchant.c.


Function Documentation

static void __enumerate_providers_fn ( const char *const  name,
const char *const  desc,
const char *const  file,
void *  ud 
) [static]

Definition at line 305 of file enchant.c.

{
       php_info_print_table_row(3, name, desc, file);
}

Here is the call graph for this function:

Here is the caller graph for this function:

static void describe_dict_fn ( const char *const  lang,
const char *const  name,
const char *const  desc,
const char *const  file,
void *  ud 
) [static]

Definition at line 202 of file enchant.c.

{
       zval *zdesc = (zval *) ud;
       array_init(zdesc);
       add_assoc_string(zdesc, "lang", (char *)lang, 1);
       add_assoc_string(zdesc, "name", (char *)name, 1);
       add_assoc_string(zdesc, "desc", (char *)desc, 1);
       add_assoc_string(zdesc, "file", (char *)file, 1);
}

Here is the caller graph for this function:

static void enumerate_providers_fn ( const char *const  name,
const char *const  desc,
const char *const  file,
void *  ud 
) [static]

Definition at line 178 of file enchant.c.

{
       zval *zdesc = (zval *) ud;
       zval *tmp_array;

       MAKE_STD_ZVAL(tmp_array);
       array_init(tmp_array);

       add_assoc_string(tmp_array, "name", (char *)name, 1);
       add_assoc_string(tmp_array, "desc", (char *)desc, 1);
       add_assoc_string(tmp_array, "file", (char *)file, 1);

       if (Z_TYPE_P(zdesc)!=IS_ARRAY) {
              array_init(zdesc);
       }

       add_next_index_zval(zdesc, tmp_array);
}

Here is the call graph for this function:

Here is the caller graph for this function:

static void php_enchant_broker_free ( zend_rsrc_list_entry *rsrc  TSRMLS_DC) [static]

Definition at line 239 of file enchant.c.

{
       if (rsrc->ptr) {
              enchant_broker *broker = (enchant_broker *)rsrc->ptr;
              if (broker) {
                     if (broker->pbroker) {
                            if (broker->dictcnt && broker->dict) {
                                   if (broker->dict) {
                                          int total, tofree;
                                          tofree = total = broker->dictcnt-1;
                                          do {
                                                 zend_list_delete(broker->dict[total]->rsrc_id);
                                                 efree(broker->dict[total]);
                                                 total--;
                                          } while (total>=0);
                                   }
                                   efree(broker->dict);
                                   broker->dict = NULL;
                            }
                            enchant_broker_free(broker->pbroker);
                     }
                     efree(broker);
              }
       }
}

Here is the call graph for this function:

Here is the caller graph for this function:

static void php_enchant_dict_free ( zend_rsrc_list_entry *rsrc  TSRMLS_DC) [static]

Definition at line 266 of file enchant.c.

{
       if (rsrc->ptr) {
              enchant_dict *pdict = (enchant_dict *)rsrc->ptr;
              if (pdict) {
                     if (pdict->pdict && pdict->pbroker) {
                            enchant_broker_free_dict(pdict->pbroker->pbroker, pdict->pdict);
                            if (pdict->id) {
                                   pdict->pbroker->dict[pdict->id-1]->next = NULL;
                            }
                            zend_list_delete(pdict->pbroker->rsrc_id);
                     }

              }
       }
}

Here is the caller graph for this function:

static void php_enchant_list_dicts_fn ( const char *const  lang_tag,
const char *const  provider_name,
const char *const  provider_desc,
const char *const  provider_file,
void *  ud 
) [static]

Definition at line 217 of file enchant.c.

{
       zval *zdesc = (zval *) ud;
       zval *tmp_array;

       MAKE_STD_ZVAL(tmp_array);
       array_init(tmp_array);
       add_assoc_string(tmp_array, "lang_tag", (char *)lang_tag, 1);
       add_assoc_string(tmp_array, "provider_name", (char *)provider_name, 1);
       add_assoc_string(tmp_array, "provider_desc", (char *)provider_desc, 1);
       add_assoc_string(tmp_array, "provider_file", (char *)provider_file, 1);

       if (Z_TYPE_P(zdesc) != IS_ARRAY) {
              array_init(zdesc);
       }
       add_next_index_zval(zdesc, tmp_array);

}

Here is the call graph for this function:

Here is the caller graph for this function:

PHP_FUNCTION ( enchant_broker_init  )

Definition at line 355 of file enchant.c.

{
       enchant_broker *broker;
       EnchantBroker *pbroker;

       if (ZEND_NUM_ARGS()) {
              ZEND_WRONG_PARAM_COUNT();
       }

       pbroker = enchant_broker_init();

       if (pbroker) {
              broker = (enchant_broker *) emalloc(sizeof(enchant_broker));
              broker->pbroker = pbroker;
              broker->dict = NULL;
              broker->dictcnt = 0;
              broker->rsrc_id = ZEND_REGISTER_RESOURCE(return_value, broker, le_enchant_broker);
       } else {
              RETURN_FALSE;
       }
}
PHP_FUNCTION ( enchant_broker_free  )

Definition at line 380 of file enchant.c.

{
       zval *broker;
       enchant_broker *pbroker;

       if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "r", &broker) == FAILURE) {
              RETURN_FALSE;
       }
       PHP_ENCHANT_GET_BROKER;

       zend_list_delete(Z_RESVAL_P(broker));
       RETURN_TRUE;
}

Here is the call graph for this function:

PHP_FUNCTION ( enchant_broker_get_error  )

Definition at line 397 of file enchant.c.

{
       zval *broker;
       enchant_broker *pbroker;
       char *msg;

       if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "r", &broker) == FAILURE) {
              RETURN_FALSE;
       }

       PHP_ENCHANT_GET_BROKER;

       msg = enchant_broker_get_error(pbroker->pbroker);
       if (msg) {
              RETURN_STRING((char *)msg, 1);
       }
       RETURN_FALSE;
}

Here is the call graph for this function:

PHP_FUNCTION ( enchant_broker_set_dict_path  )

Definition at line 494 of file enchant.c.

PHP_FUNCTION ( enchant_broker_get_dict_path  )

Definition at line 503 of file enchant.c.

PHP_FUNCTION ( enchant_broker_list_dicts  )

Definition at line 512 of file enchant.c.

{
       zval *broker;
       enchant_broker *pbroker;

       if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "r", &broker) == FAILURE) {
              RETURN_FALSE;
       }

       PHP_ENCHANT_GET_BROKER;

       enchant_broker_list_dicts(pbroker->pbroker, php_enchant_list_dicts_fn, (void *)return_value);
}

Here is the call graph for this function:

PHP_FUNCTION ( enchant_broker_request_dict  )

Definition at line 530 of file enchant.c.

{
       zval *broker;
       enchant_broker *pbroker;
       enchant_dict *dict;
       EnchantDict *d;
       char *tag;
       int taglen;
       int pos;

       if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "rs", &broker, &tag, &taglen) == FAILURE) {
              RETURN_FALSE;
       }

       PHP_ENCHANT_GET_BROKER;

       d = enchant_broker_request_dict(pbroker->pbroker, (const char *)tag);
       if (d) {
              if (pbroker->dictcnt) {
                     pbroker->dict = (enchant_dict **)erealloc(pbroker->dict, sizeof(enchant_dict *) * pbroker->dictcnt);
                     pos = pbroker->dictcnt++;
              } else {
                     pbroker->dict = (enchant_dict **)emalloc(sizeof(enchant_dict *));
                     pos = 0;
                     pbroker->dictcnt++;
              }

              dict = pbroker->dict[pos] = (enchant_dict *)emalloc(sizeof(enchant_dict));
              dict->id = pos;
              dict->pbroker = pbroker;
              dict->pdict = d;
              dict->prev = pos ? pbroker->dict[pos-1] : NULL;
              dict->next = NULL;
              pbroker->dict[pos] = dict;

              if (pos) {
                     pbroker->dict[pos-1]->next = dict;
              }

              dict->rsrc_id = ZEND_REGISTER_RESOURCE(return_value, dict, le_enchant_dict);
              zend_list_addref(pbroker->rsrc_id);
       } else {
              RETURN_FALSE;
       }
}

Here is the call graph for this function:

PHP_FUNCTION ( enchant_broker_request_pwl_dict  )

Definition at line 579 of file enchant.c.

{
       zval *broker;
       enchant_broker *pbroker;
       enchant_dict *dict;
       EnchantDict *d;
       char *pwl;
       int pwllen;
       int pos;

       if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "rs", &broker, &pwl, &pwllen) == FAILURE) {
              RETURN_FALSE;
       }

       if (strlen(pwl) != pwllen) {
              RETURN_FALSE;
       }

#if PHP_API_VERSION < 20100412
       if ((PG(safe_mode) && (!php_checkuid(pwl, NULL, CHECKUID_CHECK_FILE_AND_DIR))) || php_check_open_basedir(pwl TSRMLS_CC)) {
#else
       if (php_check_open_basedir(pwl TSRMLS_CC)) {
#endif
              RETURN_FALSE;
       }

       PHP_ENCHANT_GET_BROKER;

       d = enchant_broker_request_pwl_dict(pbroker->pbroker, (const char *)pwl);
       if (d) {
              if (pbroker->dictcnt) {
                     pos = pbroker->dictcnt++;
                     pbroker->dict = (enchant_dict **)erealloc(pbroker->dict, sizeof(enchant_dict *) * pbroker->dictcnt);
              } else {
                     pbroker->dict = (enchant_dict **)emalloc(sizeof(enchant_dict *));
                     pos = 0;
                     pbroker->dictcnt++;
              }
              dict = pbroker->dict[pos] = (enchant_dict *)emalloc(sizeof(enchant_dict));
              dict->id = pos;
              dict->pbroker = pbroker;
              dict->pdict = d;
              dict->prev = pos?pbroker->dict[pos-1]:NULL;
              dict->next = NULL;
              pbroker->dict[pos] = dict;
              if (pos) {
                     pbroker->dict[pos-1]->next = dict;
              }
              dict->rsrc_id = ZEND_REGISTER_RESOURCE(return_value, dict, le_enchant_dict);
       } else {
              RETURN_FALSE;
       }
}

Here is the call graph for this function:

PHP_FUNCTION ( enchant_broker_free_dict  )

Definition at line 636 of file enchant.c.

{
       zval *dict;
       enchant_dict *pdict;

       if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "r", &dict) == FAILURE) {
              RETURN_FALSE;
       }

       PHP_ENCHANT_GET_DICT;

       zend_list_delete(Z_RESVAL_P(dict));
       RETURN_TRUE;
}

Here is the call graph for this function:

PHP_FUNCTION ( enchant_broker_dict_exists  )

Definition at line 654 of file enchant.c.

{
       zval *broker;
       char *tag;
       int taglen;
       enchant_broker * pbroker;

       if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "rs", &broker, &tag, &taglen) == FAILURE) {
              RETURN_FALSE;
       }

       PHP_ENCHANT_GET_BROKER;

       RETURN_BOOL(enchant_broker_dict_exists(pbroker->pbroker, tag));
}

Here is the call graph for this function:

PHP_FUNCTION ( enchant_broker_set_ordering  )

Definition at line 678 of file enchant.c.

{
       zval *broker;
       char *pordering;
       int porderinglen;
       char *ptag;
       int ptaglen;
       enchant_broker * pbroker;

       if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "rss", &broker, &ptag, &ptaglen, &pordering, &porderinglen) == FAILURE) {
              RETURN_FALSE;
       }

       PHP_ENCHANT_GET_BROKER;

       enchant_broker_set_ordering(pbroker->pbroker, ptag, pordering);
       RETURN_TRUE;
}

Here is the call graph for this function:

PHP_FUNCTION ( enchant_broker_describe  )

Definition at line 700 of file enchant.c.

{
       EnchantBrokerDescribeFn describetozval = enumerate_providers_fn;
       zval *broker;
       enchant_broker * pbroker;

       if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "r", &broker) == FAILURE) {
              RETURN_FALSE;
       }

       PHP_ENCHANT_GET_BROKER;

       enchant_broker_describe(pbroker->pbroker, describetozval, (void *)return_value);
}

Here is the call graph for this function:

PHP_FUNCTION ( enchant_dict_quick_check  )

Definition at line 719 of file enchant.c.

{
       zval *dict, *sugg = NULL;
       char *word;
       int wordlen;
       enchant_dict *pdict;

       if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "rs|z/", &dict, &word, &wordlen, &sugg) == FAILURE) {
              RETURN_FALSE;
       }

       if (sugg) {
              zval_dtor(sugg);
       }

       PHP_ENCHANT_GET_DICT;

       if (enchant_dict_check(pdict->pdict, word, wordlen) > 0) {
              int n_sugg;
              size_t n_sugg_st;
              char **suggs;

              if (!sugg && ZEND_NUM_ARGS() == 2) {
                     RETURN_FALSE;
              }

              array_init(sugg);

              suggs = enchant_dict_suggest(pdict->pdict, word, wordlen, &n_sugg_st);
              memcpy(&n_sugg, &n_sugg_st, sizeof(n_sugg));
              if (suggs && n_sugg) {
                     int i;
                     for (i = 0; i < n_sugg; i++) {
                            add_next_index_string(sugg, suggs[i], 1);
                     }
                     enchant_dict_free_suggestions(pdict->pdict, suggs);
              }


              RETURN_FALSE;
       }
       RETURN_TRUE;
}

Here is the call graph for this function:

PHP_FUNCTION ( enchant_dict_check  )

Definition at line 766 of file enchant.c.

{
       zval *dict;
       char *word;
       int wordlen;
       enchant_dict *pdict;

       if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "rs", &dict, &word, &wordlen) == FAILURE) {
              RETURN_FALSE;
       }

       PHP_ENCHANT_GET_DICT;

       RETURN_BOOL(!enchant_dict_check(pdict->pdict, word, wordlen));
}

Here is the call graph for this function:

PHP_FUNCTION ( enchant_dict_suggest  )

Definition at line 785 of file enchant.c.

{
       zval *dict;
       char *word;
       int wordlen;
       char **suggs;
       enchant_dict *pdict;
       int n_sugg;
       size_t n_sugg_st;

       if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "rs", &dict, &word, &wordlen) == FAILURE) {
              RETURN_FALSE;
       }

       PHP_ENCHANT_GET_DICT;

       suggs = enchant_dict_suggest(pdict->pdict, word, wordlen, &n_sugg_st);
       memcpy(&n_sugg, &n_sugg_st, sizeof(n_sugg));
       if (suggs && n_sugg) {
              int i;

              array_init(return_value);
              for (i = 0; i < n_sugg; i++) {
                     add_next_index_string(return_value, suggs[i], 1);
              }

              enchant_dict_free_suggestions(pdict->pdict, suggs);
       }
}

Here is the call graph for this function:

PHP_FUNCTION ( enchant_dict_add_to_personal  )

Definition at line 818 of file enchant.c.

{
       zval *dict;
       char *word;
       int wordlen;
       enchant_dict *pdict;

       if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "rs", &dict, &word, &wordlen) == FAILURE) {
              RETURN_FALSE;
       }

       PHP_ENCHANT_GET_DICT;

       enchant_dict_add_to_personal(pdict->pdict, word, wordlen);
}

Here is the call graph for this function:

PHP_FUNCTION ( enchant_dict_add_to_session  )

Definition at line 837 of file enchant.c.

{
       zval *dict;
       char *word;
       int wordlen;
       enchant_dict *pdict;

       if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "rs", &dict, &word, &wordlen) == FAILURE) {
              RETURN_FALSE;
       }

       PHP_ENCHANT_GET_DICT;

       enchant_dict_add_to_session(pdict->pdict, word, wordlen);
}

Here is the call graph for this function:

PHP_FUNCTION ( enchant_dict_is_in_session  )

Definition at line 856 of file enchant.c.

{
       zval *dict;
       char *word;
       int wordlen;
       enchant_dict *pdict;

       if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "rs", &dict, &word, &wordlen) == FAILURE) {
              RETURN_FALSE;
       }

       PHP_ENCHANT_GET_DICT;

       RETURN_BOOL(enchant_dict_is_in_session(pdict->pdict, word, wordlen));
}

Here is the call graph for this function:

PHP_FUNCTION ( enchant_dict_store_replacement  )

Definition at line 878 of file enchant.c.

{
       zval *dict;
       char *mis, *cor;
       int mislen, corlen;

       enchant_dict *pdict;

       if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "rss", &dict, &mis, &mislen, &cor, &corlen) == FAILURE) {
              RETURN_FALSE;
       }

       PHP_ENCHANT_GET_DICT;

       enchant_dict_store_replacement(pdict->pdict, mis, mislen, cor, corlen);
}

Here is the call graph for this function:

PHP_FUNCTION ( enchant_dict_get_error  )

Definition at line 898 of file enchant.c.

{
       zval *dict;
       enchant_dict *pdict;
       char *msg;

       if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "r", &dict) == FAILURE) {
              RETURN_FALSE;
       }

       PHP_ENCHANT_GET_DICT;

       msg = enchant_dict_get_error(pdict->pdict);
       if (msg) {
              RETURN_STRING((char *)msg, 1);
       }

       RETURN_FALSE;
}

Here is the call graph for this function:

PHP_FUNCTION ( enchant_dict_describe  )

Definition at line 921 of file enchant.c.

{
       zval *dict;
       enchant_dict *pdict;

       if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "r", &dict) == FAILURE) {
              RETURN_FALSE;
       }

       PHP_ENCHANT_GET_DICT;

       enchant_dict_describe(pdict->pdict, describe_dict_fn, (void *)return_value);
}

Here is the call graph for this function:

PHP_MINFO_FUNCTION ( enchant  )

Definition at line 316 of file enchant.c.

{
       EnchantBroker *pbroker;

       pbroker = enchant_broker_init();
       php_info_print_table_start();
       php_info_print_table_header(2, "enchant support", "enabled");
       php_info_print_table_row(2, "Version", PHP_ENCHANT_VERSION);
#ifdef ENCHANT_VERSION_STRING
       php_info_print_table_row(2, "Libenchant Version", ENCHANT_VERSION_STRING);
#elif defined(HAVE_ENCHANT_BROKER_SET_PARAM)
       php_info_print_table_row(2, "Libenchant Version", "1.5.0 or later");
#endif
       php_info_print_table_row(2, "Revision", "$Revision: 321634 $");
       php_info_print_table_end();

       php_info_print_table_start();
       enchant_broker_describe(pbroker, __enumerate_providers_fn, NULL);
       php_info_print_table_end();
       enchant_broker_free(pbroker);
}

Here is the call graph for this function:

PHP_MINIT_FUNCTION ( enchant  )

Definition at line 287 of file enchant.c.

Here is the call graph for this function:

PHP_MSHUTDOWN_FUNCTION ( enchant  )

Definition at line 299 of file enchant.c.

{
       return SUCCESS;
}

Variable Documentation

Initial value:

Definition at line 127 of file enchant.c.

zend_module_entry enchant_module_entry
Initial value:
 {



       "enchant",
       enchant_functions,
       PHP_MINIT(enchant),
       PHP_MSHUTDOWN(enchant),
       NULL,  
       NULL,  
       PHP_MINFO(enchant),



       STANDARD_MODULE_PROPERTIES
}

Definition at line 155 of file enchant.c.

Definition at line 57 of file enchant.c.

int le_enchant_dict [static]

Definition at line 58 of file enchant.c.