helly           Mon Sep  1 19:32:30 2003 EDT

  Modified files:              
    /php-src/main       main.c 
  Log:
  Error message clean up part II: Don't show params where none apply.
  
  
Index: php-src/main/main.c
diff -u php-src/main/main.c:1.572 php-src/main/main.c:1.573
--- php-src/main/main.c:1.572   Mon Sep  1 18:55:40 2003
+++ php-src/main/main.c Mon Sep  1 19:32:28 2003
@@ -18,7 +18,7 @@
    +----------------------------------------------------------------------+
 */
 
-/* $Id: main.c,v 1.572 2003/09/01 22:55:40 helly Exp $ */
+/* $Id: main.c,v 1.573 2003/09/01 23:32:28 helly Exp $ */
 
 /* {{{ includes
  */
@@ -452,20 +452,28 @@
        char *space;
        char *class_name = get_active_class_name(&space TSRMLS_CC);
        char *function = get_active_function_name(TSRMLS_C);
+       char *origin;
+       char *message;
 
-       if (!function || !strlen(function)) {
-               function = "Unknown";
-       }
        buffer_len = vspprintf(&buffer, 0, format, args);
+       if (buffer && PG(html_errors)) {
+               int len;
+               char *replace = php_escape_html_entities(buffer, buffer_len, &len, 0, 
ENT_COMPAT, NULL TSRMLS_CC);
+               efree(buffer);
+               buffer = replace;
+               buffer_len = len;
+       }
+
        if (buffer) {
-               if (PG(html_errors)) {
-                       int len;
-                       char *replace = php_escape_html_entities(buffer, buffer_len, 
&len, 0, ENT_COMPAT, NULL TSRMLS_CC);
-                       efree(buffer);
-                       buffer = replace;
-                       buffer_len = len;
+               if (!function || !strlen(function)) {
+                       function = "Unknown";
+                       spprintf(&origin, 0, "%s", function);   
+               } else {
+                       spprintf(&origin, 0, "%s%s%s(%s)", class_name, space, 
function, params);        
                }
+       }
 
+       if (buffer && origin) {
                if (docref && docref[0] == '#') {
                        docref_target = strchr(docref, '#');
                        docref = NULL;
@@ -509,18 +517,24 @@
                        }
                        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, 
function, params, buffer);
+                               spprintf(&message, 0, "%s: %s", origin, buffer);
                        } else if (PG(html_errors)) {
-                               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);
+                               spprintf(&message, 0, "%s [<a href='%s%s%s'>%s</a>]: 
%s", origin, docref_root, docref, docref_target, docref, buffer);
                        } else {
-                               php_error(type, "%s%s%s(%s) [%s%s%s]: %s", class_name, 
space, function, params, docref_root, docref, docref_target, buffer);
+                               spprintf(&message, 0, "%s [%s%s%s]: %s", origin, 
docref_root, docref, docref_target, buffer);
                        }
                        if (target) {
                                efree(target);
                        }
                } else {
-                       php_error(type, "%s%s%s(%s): %s ", class_name, space, 
function, params, buffer);
+                       spprintf(&message, 0, "%s: %s ", origin, buffer);
+               }
+               efree(buffer);
+               efree(origin);
+               if (docref_buf) {
+                       efree(docref_buf);
                }
+               php_error(type, "%s", message);
 
                if (PG(track_errors) && EG(active_symbol_table)) {
                        zval *tmp;
@@ -531,11 +545,14 @@
                        Z_TYPE_P(tmp) = IS_STRING;
                        zend_hash_update(EG(active_symbol_table), "php_errormsg", 
sizeof("php_errormsg"), (void **) & tmp, sizeof(pval *), NULL);
                }
-               efree(buffer);
-               if (docref_buf) {
-                       efree(docref_buf);
-               }
+               efree(message);
        } else {
+               if (buffer) {
+                       efree(buffer);
+               }
+               if (origin) {
+                       efree(origin);
+               }
                php_error(E_ERROR, "%s%s%s(%s): Out of memory", class_name, space, 
function, params);
        }
 }

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

Reply via email to