cvs: php4 /main main.c
| From: | Marcus B�rger | Date: | Fri, 09 Aug 2002 21:57:04 +0000 |
| Subject: | cvs: php4 /main main.c | ||
| Groups: | php.cvs | ||
| Request: | Send a blank email to php-cvs+get-13240@lists.php.net to get a copy of this message | ||
helly Fri Aug 9 17:57:04 2002 EDT
Modified files:
/php4/main main.c
Log:
docref shall either be NULL or a reference to a manual page without an
extension or an external reference starting with 'http://'.
Index: php4/main/main.c
diff -u php4/main/main.c:1.474 php4/main/main.c:1.475
--- php4/main/main.c:1.474 Thu Aug 8 18:11:24 2002
+++ php4/main/main.c Fri Aug 9 17:57:03 2002
@@ -18,7 +18,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: main.c,v 1.474 2002/08/08 22:11:24 helly Exp $ */
+/* $Id: main.c,v 1.475 2002/08/09 21:57:03 helly Exp $ */
/* {{{ includes
*/
@@ -390,14 +390,16 @@
/* {{{ php_verror */
PHPAPI void php_verror(const char *docref, const char *params, int type, const char *format,
va_list args TSRMLS_DC)
{
- char *buffer = NULL, *docref_buf = NULL, *function, *p;
+ char *buffer = NULL, *docref_buf = NULL, *ref = NULL, *target = NULL;
+ char *docref_target = "", *docref_root = "";
+ char *function, *p;
vspprintf(&buffer, 0, format, args);
if (buffer) {
if (!docref) {
function = get_active_function_name(TSRMLS_C);
if (function) {
- spprintf(&docref_buf, 0, "function.%s%s", function, PG(docref_ext));
+ spprintf(&docref_buf, 0, "function.%s", function);
if (docref_buf) {
while((p=strchr(docref_buf, '_'))!=NULL) *p = '-';
docref = docref_buf;
@@ -405,11 +407,39 @@
}
}
if (docref) {
- if (PG(html_errors) && PG(docref_ext)) {
- php_error(type, "%s(%s) [<a href='%s%s'>%s</a>]: %s",
get_active_function_name(TSRMLS_C), params, PG(docref_root), docref, docref, buffer);
+ if (strncmp(docref, "http://", 7)) {
+ docref_root = PG(docref_root);
+ /* now check copy of extension */
+ ref = estrdup(docref);
+ if (ref) {
+ if (docref_buf) {
+ efree(docref_buf);
+ }
+ docref_buf = ref;
+ p = strrchr(ref, '#');
+ if (p) {
+ target = estrdup(p);
+ if (target) {
+ docref_target = target;
+ *p = '\0';
+ }
+ }
+ if ((!p || target) && PG(docref_ext) && strlen(PG(docref_ext))) {
+ spprintf(&docref_buf, 0, "%s%s", ref, PG(docref_ext));
+ if (docref_buf) {
+ efree(ref);
+ docref = docref_buf;
+ }
+ }
+ }
+ }
+ if (PG(html_errors)) {
+ php_error(type, "%s(%s) [<a href='%s%s%s'>%s</a>]: %s",
get_active_function_name(TSRMLS_C), params, docref_root, docref, docref, docref_target, buffer);
} else {
- php_error(type, "%s(%s) [%s%s]: %s", get_active_function_name(TSRMLS_C), params,
PG(docref_root), docref, buffer);
+ php_error(type, "%s(%s) [%s%s%s]: %s", get_active_function_name(TSRMLS_C), params,
docref_root, docref, docref_target, buffer);
}
+ if (target)
+ efree(target);
} else {
docref = get_active_function_name(TSRMLS_C);
if (!docref)