From 76e499e8a1760d1c519a228e13dfdb69fd4c38f7 Mon Sep 17 00:00:00 2001
From: Thomas Bruederli <thomas@roundcube.net>
Date: Wed, 16 May 2012 09:00:23 -0400
Subject: [PATCH] Also accept PHP exceptions as argument to rcube::raise_error()

---
 program/include/rcube.php |   12 ++++++++++++
 1 files changed, 12 insertions(+), 0 deletions(-)

diff --git a/program/include/rcube.php b/program/include/rcube.php
index 694f288..e9add8d 100644
--- a/program/include/rcube.php
+++ b/program/include/rcube.php
@@ -1050,6 +1050,18 @@
      */
     public static function raise_error($arg = array(), $log = false, $terminate = false)
     {
+        // handle PHP exceptions
+        if (is_object($arg) && is_a($arg, 'Exception')) {
+            $err = array(
+                'type' => 'php',
+                'code' => $arg->getCode(),
+                'line' => $arg->getLine(),
+                'file' => $arg->getFile(),
+                'message' => $arg->getMessage(),
+            );
+            $arg = $err;
+        }
+
         // installer
         if (class_exists('rcube_install', false)) {
             $rci = rcube_install::get_instance();

--
Gitblit v1.9.1