tony2001                Tue Jan 16 11:19:10 2007 UTC

  Modified files:              (Branch: PHP_5_2)
    /php-src/ext/pspell pspell.c 
  Log:
  MFH
  
  
http://cvs.php.net/viewvc.cgi/php-src/ext/pspell/pspell.c?r1=1.45.2.4.2.4&r2=1.45.2.4.2.5&diff_format=u
Index: php-src/ext/pspell/pspell.c
diff -u php-src/ext/pspell/pspell.c:1.45.2.4.2.4 
php-src/ext/pspell/pspell.c:1.45.2.4.2.5
--- php-src/ext/pspell/pspell.c:1.45.2.4.2.4    Mon Jan  1 09:36:05 2007
+++ php-src/ext/pspell/pspell.c Tue Jan 16 11:19:10 2007
@@ -16,7 +16,7 @@
    +----------------------------------------------------------------------+
 */
 
-/* $Id: pspell.c,v 1.45.2.4.2.4 2007/01/01 09:36:05 sebastian Exp $ */
+/* $Id: pspell.c,v 1.45.2.4.2.5 2007/01/16 11:19:10 tony2001 Exp $ */
 
 #define IS_EXT_MODULE
 
@@ -186,6 +186,7 @@
         * pointing to the location of the dictionaries
         */
        if(0 == RegOpenKey(HKEY_LOCAL_MACHINE, "Software\\Aspell", &hkey)) {
+               dwLen = sizeof(aspell_dir) - 1;
                RegQueryValueEx(hkey, "", NULL, &dwType, (LPBYTE)&aspell_dir, 
&dwLen);
                RegCloseKey(hkey);
                strcpy(data_dir, aspell_dir);
@@ -247,6 +248,7 @@
 
        if(pspell_error_number(ret) != 0){
                php_error_docref(NULL TSRMLS_CC, E_WARNING, "PSPELL couldn't 
open the dictionary. reason: %s ", pspell_error_message(ret));
+               delete_pspell_manager(ret);
                RETURN_FALSE;
        }
        
@@ -289,6 +291,7 @@
         * pointing to the location of the dictionaries
         */
        if(0 == RegOpenKey(HKEY_LOCAL_MACHINE, "Software\\Aspell", &hkey)) {
+               dwLen = sizeof(aspell_dir) - 1;
                RegQueryValueEx(hkey, "", NULL, &dwType, (LPBYTE)&aspell_dir, 
&dwLen);
                RegCloseKey(hkey);
                strcpy(data_dir, aspell_dir);
@@ -304,10 +307,12 @@
        convert_to_string_ex(personal);
 
        if (PG(safe_mode) && (!php_checkuid(Z_STRVAL_PP(personal), NULL, 
CHECKUID_CHECK_FILE_AND_DIR))) {
+               delete_pspell_config(config);
                RETURN_FALSE;
        }
 
        if (php_check_open_basedir(Z_STRVAL_PP(personal) TSRMLS_CC)) {
+               delete_pspell_config(config);
                RETURN_FALSE;
        }
 
@@ -363,6 +368,7 @@
 
        if(pspell_error_number(ret) != 0){
                php_error_docref(NULL TSRMLS_CC, E_WARNING, "PSPELL couldn't 
open the dictionary. reason: %s ", pspell_error_message(ret));
+               delete_pspell_manager(ret);
                RETURN_FALSE;
        }
        
@@ -396,6 +402,7 @@
 
        if(pspell_error_number(ret) != 0){
                php_error_docref(NULL TSRMLS_CC, E_WARNING, "PSPELL couldn't 
open the dictionary. reason: %s ", pspell_error_message(ret));
+               delete_pspell_manager(ret);
                RETURN_FALSE;
        }
        
@@ -641,17 +648,18 @@
     /* If aspell was installed using installer, we should have a key
      * pointing to the location of the dictionaries
      */
-    if(0 == RegOpenKey(HKEY_LOCAL_MACHINE, "Software\\Aspell", &hkey)) {
-       RegQueryValueEx(hkey, "", NULL, &dwType, (LPBYTE)&aspell_dir, &dwLen);
-       RegCloseKey(hkey);
-       strcpy(data_dir, aspell_dir);
-       strcat(data_dir, "\\data");
-       strcpy(dict_dir, aspell_dir);
-       strcat(dict_dir, "\\dict");
-
-       pspell_config_replace(config, "data-dir", data_dir);
-       pspell_config_replace(config, "dict-dir", dict_dir);
-      }
+       if(0 == RegOpenKey(HKEY_LOCAL_MACHINE, "Software\\Aspell", &hkey)) {
+               dwLen = sizeof(aspell_dir) - 1;
+               RegQueryValueEx(hkey, "", NULL, &dwType, (LPBYTE)&aspell_dir, 
&dwLen);
+               RegCloseKey(hkey);
+               strcpy(data_dir, aspell_dir);
+               strcat(data_dir, "\\data");
+               strcpy(dict_dir, aspell_dir);
+               strcat(dict_dir, "\\dict");
+
+               pspell_config_replace(config, "data-dir", data_dir);
+               pspell_config_replace(config, "dict-dir", dict_dir);
+       }
 #endif
 
        convert_to_string_ex(language);

-- 
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to