helly           Mon Sep  1 18:55:41 2003 EDT

  Modified files:              
    /php-src/main       main.c 
  Log:
  Error message clean up part I: always show 'Unknown' instead of empty names.
  
  
Index: php-src/main/main.c
diff -u php-src/main/main.c:1.571 php-src/main/main.c:1.572
--- php-src/main/main.c:1.571   Sun Aug 31 05:35:53 2003
+++ php-src/main/main.c Mon Sep  1 18:55:40 2003
@@ -18,7 +18,7 @@
    +----------------------------------------------------------------------+
 */
 
-/* $Id: main.c,v 1.571 2003/08/31 09:35:53 helly Exp $ */
+/* $Id: main.c,v 1.572 2003/09/01 22:55:40 helly Exp $ */
 
 /* {{{ includes
  */
@@ -410,33 +410,33 @@
 }
 /* }}} */
 
-static char *get_active_class_name(char **space TSRMLS_DC)
-{
+static char *get_active_class_name(char **space TSRMLS_DC)
+{
        if (!zend_is_executing(TSRMLS_C)) {
                if (space) {
                        *space = "";
-               }
-               return "";
-       }
-       switch (EG(function_state_ptr)->function->type) {
-               case ZEND_USER_FUNCTION:
+               }
+               return "";
+       }
+       switch (EG(function_state_ptr)->function->type) {
+               case ZEND_USER_FUNCTION:
                case ZEND_INTERNAL_FUNCTION:
-               {
-                       zend_class_entry *ce = 
EG(function_state_ptr)->function->common.scope;
-
+               {
+                       zend_class_entry *ce = 
EG(function_state_ptr)->function->common.scope;
+
                        if (space) {
                                *space = ce ? "::" : "";
-                       }
+                       }
                        return ce ? ce->name : "";
-               }
-               default:
+               }
+               default:
                        if (space) {
                                *space = "";
-                       }
-                       return "";
-       }
-}
-
+                       }
+                       return "";
+       }
+}
+
 /* {{{ php_verror */
 /* php_verror is called from php_error_docref<n> functions.
  * Its purpose is to unify error messages and automatically generate clickable
@@ -447,11 +447,15 @@
 {
        char *buffer = NULL, *docref_buf = NULL, *ref = NULL, *target = NULL;
        char *docref_target = "", *docref_root = "";
-       char *function, *p;
+       char *p;
        int buffer_len = 0;
        char *space;
        char *class_name = get_active_class_name(&space TSRMLS_CC);
-       
+       char *function = get_active_function_name(TSRMLS_C);
+
+       if (!function || !strlen(function)) {
+               function = "Unknown";
+       }
        buffer_len = vspprintf(&buffer, 0, format, args);
        if (buffer) {
                if (PG(html_errors)) {
@@ -467,7 +471,6 @@
                        docref = NULL;
                }
                if (!docref) {
-                       function = get_active_function_name(TSRMLS_C);
                        if (function) {
                                spprintf(&docref_buf, 0, "function.%s", function);
                                if (docref_buf) {
@@ -506,20 +509,17 @@
                        }
                        if (!PG(html_errors) || !strlen(PG(docref_root))) {
                                /* no docref and no html errors -> do not point to any 
documentation (e.g. production boxes) */
-                               php_error(type, "%s%s%s(%s): %s", class_name, space, 
get_active_function_name(TSRMLS_C), params, buffer);
+                               php_error(type, "%s%s%s(%s): %s", class_name, space, 
function, params, buffer);
                        } else if (PG(html_errors)) {
-                               php_error(type, "%s%s%s(%s) [<a href='%s%s%s'>%s</a>]: 
%s", class_name, space, get_active_function_name(TSRMLS_C), params, docref_root, 
docref, docref_target, docref, buffer);
+                               php_error(type, "%s%s%s(%s) [<a href='%s%s%s'>%s</a>]: 
%s", class_name, space, function, params, docref_root, docref, docref_target, docref, 
buffer);
                        } else {
-                               php_error(type, "%s%s%s(%s) [%s%s%s]: %s", class_name, 
space, get_active_function_name(TSRMLS_C), params, docref_root, docref, docref_target, 
buffer);
+                               php_error(type, "%s%s%s(%s) [%s%s%s]: %s", class_name, 
space, function, params, docref_root, docref, docref_target, buffer);
                        }
                        if (target) {
                                efree(target);
                        }
                } else {
-                       docref = get_active_function_name(TSRMLS_C);
-                       if (!docref)
-                               docref = "Unknown";
-                       php_error(type, "%s%s%s(%s): %s ", class_name, space, docref, 
params, buffer);
+                       php_error(type, "%s%s%s(%s): %s ", class_name, space, 
function, params, buffer);
                }
 
                if (PG(track_errors) && EG(active_symbol_table)) {
@@ -536,7 +536,7 @@
                        efree(docref_buf);
                }
        } else {
-               php_error(E_ERROR, "%s%s%s(%s): Out of memory", class_name, space, 
get_active_function_name(TSRMLS_C), params);
+               php_error(E_ERROR, "%s%s%s(%s): Out of memory", class_name, space, 
function, params);
        }
 }
 /* }}} */
@@ -576,8 +576,9 @@
        va_start(args, format);
        php_verror(docref, params ? params : "...", type, format, args TSRMLS_CC);
        va_end(args);
-       if (params)
+       if (params) {
                efree(params);
+       }
 }
 /* }}} */
 

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

Reply via email to