static void _php_pgsql_notice_handler(void *resource_id, const char *message)
{
php_pgsql_notice *notice;
+ int i;
TSRMLS_FETCH();
if (! PGG(ignore_notices)) {
+ notice = (php_pgsql_notice *)emalloc(sizeof(php_pgsql_notice));
+ i = strlen(message)-1;
+ while (i && (message[i] == '\r' || message[i] == '\n')) {
+ i--;
+ }
+ i++;
+ notice->message = estrndup(message, i);
+ notice->len = i;
if (PGG(log_notices)) {
- php_log_err((char *) message TSRMLS_CC);
+ php_error_docref(NULL TSRMLS_CC, E_NOTICE, "%s", notice->message);
}
- notice = (php_pgsql_notice *)emalloc(sizeof(php_pgsql_notice));
- notice->len = strlen(message);
- notice->message = estrndup(message, notice->len);
zend_hash_index_update(&PGG(notices), *(int *)resource_id, (void **)¬ice, sizeof(php_pgsql_notice *), NULL);
}
}
echo "Cannot find notice message in hash\n";
var_dump($msg);
}
-echo $msg;
+echo $msg."\n";
echo "pg_last_notice() is Ok\n";
?>
---EXPECT--
-NOTICE: BEGIN: already a transaction in progress
-
+--EXPECTF--
+Notice: pg_query(): NOTICE: BEGIN: already a transaction in progress in %s on line %d
NOTICE: BEGIN: already a transaction in progress
pg_last_notice() is Ok