From 868deb5dabdc4d63210e4f53a2a80a904247af6a Mon Sep 17 00:00:00 2001
From: alecpl <alec@alec.pl>
Date: Wed, 06 Oct 2010 13:15:38 -0400
Subject: [PATCH] - Make htmleditor option behaviour consistent, add option to use HTML on reply to HTML message (#1485840)
---
program/lib/MDB2/LOB.php | 152 +++++++++++++++++++++++++++++++++++++++++++++-----
1 files changed, 135 insertions(+), 17 deletions(-)
diff --git a/program/lib/MDB2/LOB.php b/program/lib/MDB2/LOB.php
old mode 100755
new mode 100644
index c17abc9..ff2342d
--- a/program/lib/MDB2/LOB.php
+++ b/program/lib/MDB2/LOB.php
@@ -2,7 +2,7 @@
// +----------------------------------------------------------------------+
// | PHP version 5 |
// +----------------------------------------------------------------------+
-// | Copyright (c) 1998-2004 Manuel Lemos, Tomas V.V.Cox, |
+// | Copyright (c) 1998-2006 Manuel Lemos, Tomas V.V.Cox, |
// | Stig. S. Bakken, Lukas Smith |
// | All rights reserved. |
// +----------------------------------------------------------------------+
@@ -42,7 +42,7 @@
// | Author: Lukas Smith <smith@pooteeweet.org> |
// +----------------------------------------------------------------------+
//
-// $Id$
+// $Id: LOB.php 222350 2006-10-25 11:52:21Z lsmith $
/**
* @package MDB2
@@ -52,67 +52,144 @@
require_once 'MDB2.php';
+/**
+ * MDB2_LOB: user land stream wrapper implementation for LOB support
+ *
+ * @package MDB2
+ * @category Database
+ * @author Lukas Smith <smith@pooteeweet.org>
+ */
class MDB2_LOB
{
+ /**
+ * contains the key to the global MDB2 instance array of the associated
+ * MDB2 instance
+ *
+ * @var integer
+ * @access protected
+ */
var $db_index;
- var $lob_index;
- var $lob;
+ /**
+ * contains the key to the global MDB2_LOB instance array of the associated
+ * MDB2_LOB instance
+ *
+ * @var integer
+ * @access protected
+ */
+ var $lob_index;
+
+ // {{{ stream_open()
+
+ /**
+ * open stream
+ *
+ * @param string specifies the URL that was passed to fopen()
+ * @param string the mode used to open the file
+ * @param int holds additional flags set by the streams API
+ * @param string not used
+ *
+ * @return bool
+ * @access public
+ */
function stream_open($path, $mode, $options, &$opened_path)
{
if (!preg_match('/^rb?\+?$/', $mode)) {
return false;
}
$url = parse_url($path);
- if (!array_key_exists('host', $url) && !array_key_exists('user', $url)) {
+ if (empty($url['host'])) {
return false;
}
- $this->db_index = $url['host'];
+ $this->db_index = (int)$url['host'];
if (!isset($GLOBALS['_MDB2_databases'][$this->db_index])) {
return false;
}
$db =& $GLOBALS['_MDB2_databases'][$this->db_index];
- $this->lob_index = $url['user'];
+ $this->lob_index = (int)$url['user'];
if (!isset($db->datatype->lobs[$this->lob_index])) {
return false;
}
- $this->lob =& $db->datatype->lobs[$this->lob_index];
- $db->datatype->_retrieveLOB($this->lob);
return true;
}
+ // }}}
+ // {{{ stream_read()
+
+ /**
+ * read stream
+ *
+ * @param int number of bytes to read
+ *
+ * @return string
+ * @access public
+ */
function stream_read($count)
{
if (isset($GLOBALS['_MDB2_databases'][$this->db_index])) {
$db =& $GLOBALS['_MDB2_databases'][$this->db_index];
+ $db->datatype->_retrieveLOB($db->datatype->lobs[$this->lob_index]);
- $data = $db->datatype->_readLOB($this->lob, $count);
+ $data = $db->datatype->_readLOB($db->datatype->lobs[$this->lob_index], $count);
$length = strlen($data);
if ($length == 0) {
- $this->lob['endOfLOB'] = true;
+ $db->datatype->lobs[$this->lob_index]['endOfLOB'] = true;
}
- $this->lob['position'] += $length;
+ $db->datatype->lobs[$this->lob_index]['position'] += $length;
return $data;
}
- }
+ }
+ // }}}
+ // {{{ stream_write()
+
+ /**
+ * write stream, note implemented
+ *
+ * @param string data
+ *
+ * @return int
+ * @access public
+ */
function stream_write($data)
{
return 0;
}
+ // }}}
+ // {{{ stream_tell()
+
+ /**
+ * return the current position
+ *
+ * @return int current position
+ * @access public
+ */
function stream_tell()
{
- return $this->lob['position'];
+ if (isset($GLOBALS['_MDB2_databases'][$this->db_index])) {
+ $db =& $GLOBALS['_MDB2_databases'][$this->db_index];
+ return $db->datatype->lobs[$this->lob_index]['position'];
+ }
}
+ // }}}
+ // {{{ stream_eof()
+
+ /**
+ * Check if stream reaches EOF
+ *
+ * @return bool
+ * @access public
+ */
function stream_eof()
{
if (!isset($GLOBALS['_MDB2_databases'][$this->db_index])) {
return true;
}
+
$db =& $GLOBALS['_MDB2_databases'][$this->db_index];
- $result = $db->datatype->_endOfLOB($this->lob);
+ $result = $db->datatype->_endOfLOB($db->datatype->lobs[$this->lob_index]);
if (version_compare(phpversion(), "5.0", ">=")
&& version_compare(phpversion(), "5.1", "<")
) {
@@ -120,27 +197,68 @@
}
return $result;
}
+ // }}}
+ // {{{ stream_seek()
+
+ /**
+ * Seek stream, not implemented
+ *
+ * @param int offset
+ * @param int whence
+ *
+ * @return bool
+ * @access public
+ */
function stream_seek($offset, $whence)
{
return false;
}
+ // }}}
+ // {{{ stream_stat()
+
+ /**
+ * return information about stream
+ *
+ * @access public
+ */
+ function stream_stat()
+ {
+ if (isset($GLOBALS['_MDB2_databases'][$this->db_index])) {
+ $db =& $GLOBALS['_MDB2_databases'][$this->db_index];
+ return array(
+ 'db_index' => $this->db_index,
+ 'lob_index' => $this->lob_index,
+ );
+ }
+ }
+ // }}}
+
+ // {{{ stream_close()
+
+ /**
+ * close stream
+ *
+ * @access public
+ */
function stream_close()
{
if (isset($GLOBALS['_MDB2_databases'][$this->db_index])) {
$db =& $GLOBALS['_MDB2_databases'][$this->db_index];
if (isset($db->datatype->lobs[$this->lob_index])) {
- $db->datatype->_destroyLOB($this->lob_index);
+ $db->datatype->_destroyLOB($db->datatype->lobs[$this->lob_index]);
unset($db->datatype->lobs[$this->lob_index]);
}
}
}
+ // }}}
}
+// register streams wrapper
if (!stream_wrapper_register("MDB2LOB", "MDB2_LOB")) {
MDB2::raiseError();
return false;
}
-?>
\ No newline at end of file
+?>
--
Gitblit v1.9.1