diff options
author | SVN Migration <svn@php.net> | 2003-02-27 17:43:39 +0000 |
---|---|---|
committer | SVN Migration <svn@php.net> | 2003-02-27 17:43:39 +0000 |
commit | 078bcec0997ad0e07b720c43cc9e6d0e046a75ab (patch) | |
tree | 36cb0f6be2ef078fe3374de8c087b93ecf82f812 /ext/qtdom/qtdom_qt.cpp | |
parent | fd61f69077f6156ca71dde60ecfd9ed9765a02db (diff) | |
download | php-git-PHP-5.tar.gz |
This commit was manufactured by cvs2svn to create branch 'PHP_5'.PHP-5
Diffstat (limited to 'ext/qtdom/qtdom_qt.cpp')
-rw-r--r-- | ext/qtdom/qtdom_qt.cpp | 371 |
1 files changed, 0 insertions, 371 deletions
diff --git a/ext/qtdom/qtdom_qt.cpp b/ext/qtdom/qtdom_qt.cpp deleted file mode 100644 index 6cc5050e49..0000000000 --- a/ext/qtdom/qtdom_qt.cpp +++ /dev/null @@ -1,371 +0,0 @@ -// -// $Id$ -// -// Jan Borsodi <jb@ez.no> -// Created on: <09-Nov-2000 11:18:46 root> -// - - -extern "C" -{ -//#include "php.h" -//#include "php_ini.h" -//#include "php_qtdom.h" -#include "qtdom_qt.h" -} - - -//#if HAVE_QTDOM - -#include <qdom.h> -#include <qstring.h> -#include <qglobal.h> - -struct qdom_node *qdom_to_node( QDomNode *node ); - -/*! - Initialises certain global variables, they are: - g_qdom_message_log : A global variable for handling error logs and message handler function. -*/ - -extern "C" void qdom_init() -{ - g_qdom_message_log = new qdom_message; - g_qdom_message_log->Log = 0; - g_qdom_message_log->OldHandler = 0; -} - -/*! - Frees global variables initialised in the init function. -*/ - -extern "C" void qdom_shutdown() -{ - if ( g_qdom_message_log->Log ) - delete []g_qdom_message_log->Log; - delete g_qdom_message_log; - g_qdom_message_log = 0; -} - -/*! - Copies the version number for Qt into the \c ver variable, - the variable must be allocated by user and must have enough characters (20 should suffice). -*/ - -extern "C" void qdom_do_version( char **ver ) -{ - strcpy( *ver, QT_VERSION_STR ); -} - -/*! - Moves the DOM node to the next sibling if any and returns the node. -*/ - -extern "C" struct qdom_node *qdom_do_next_node( struct qdom_node *node ) -{ - QDomNode *q_node = (QDomNode *)node->Q_Node; - if ( !q_node ) - return 0; - - if ( q_node->isNull() ) - return 0; - *q_node = q_node->nextSibling(); - if ( q_node->isNull() ) - return 0; - - node->Type = q_node->nodeType(); - const char *name = q_node->nodeName().latin1(); - node->Name = new char[q_node->nodeName().length()+1]; - strcpy( node->Name, name ); - const char *content = q_node->nodeValue().latin1(); - node->Content = new char[q_node->nodeValue().length()+1]; - strcpy( node->Content, content ); - - return node; -} - -/*! - Finds the first child of the current node and returns it if any. -*/ - -extern "C" struct qdom_node *qdom_do_first_child( struct qdom_node *node ) -{ - QDomNode *q_node = (QDomNode *)node->Q_Node; - if ( !q_node ) - return 0; - - if ( q_node->isNull() ) - return 0; - *q_node = q_node->firstChild(); - if ( q_node->isNull() ) - return 0; - - node->Type = q_node->nodeType(); - const char *name = q_node->nodeName().latin1(); - node->Name = new char[q_node->nodeName().length()+1]; - strcpy( node->Name, name ); - const char *content = q_node->nodeValue().latin1(); - node->Content = new char[q_node->nodeValue().length()+1]; - strcpy( node->Content, content ); - - return node; -} - -/*! - Returns the number of the children for the current node. -*/ - -extern "C" int qdom_do_node_children_count( struct qdom_node *node ) -{ - if ( !node ) - return 0; - QDomNode *q_node = (QDomNode *)node->Q_Node; - if ( !q_node ) - return 0; - return q_node->childNodes().count(); -} - -/*! - Returns the number of attributes for the current node. -*/ - -extern "C" int qdom_do_node_attribute_count( struct qdom_node *node ) -{ - if ( !node ) - return 0; - QDomNode *q_node = (QDomNode *)node->Q_Node; - if ( !q_node ) - return 0; - return q_node->attributes().length(); -} - -/*! - Returns the attribute map for the current node. -*/ - -extern "C" struct qdom_attribute *qdom_do_node_attributes( struct qdom_node *node ) -{ - struct qdom_attribute *attr = new struct qdom_attribute; - QDomNode *q_node = (QDomNode *)node->Q_Node; - QDomNamedNodeMap *map = new QDomNamedNodeMap( q_node->attributes() ); - attr->Q_Node = map; - attr->Count = map->length(); - return attr; -} - -/*! - Returns the node at a given index taken from the attribute list if any. -*/ - -extern "C" struct qdom_node *qdom_do_attribute_at( struct qdom_attribute *attr, int index ) -{ - if ( !attr ) - return 0; - QDomNamedNodeMap *map = (QDomNamedNodeMap *)attr->Q_Node; - if ( index < 0 || index >= map->length() ) - return 0; - QDomNode node = map->item( index ); - return qdom_to_node( &node ); -} - -/*! - Frees an attribute map. -*/ - -extern "C" void qdom_do_attributes_free( struct qdom_attribute *attr ) -{ - if ( !attr ) - return; - QDomNamedNodeMap *map = (QDomNamedNodeMap *)attr->Q_Node; - delete map; - delete attr; -} - -/*! - Makes a copy of a node. -*/ - -extern "C" struct qdom_node *qdom_do_copy_node( struct qdom_node *node ) -{ - if ( !node ) - return 0; - struct qdom_node *tmp = new struct qdom_node; - if ( node->Name ) - { - tmp->Name = new char[strlen(node->Name)+1]; - strcpy( tmp->Name, node->Name ); - } - else - tmp->Name = 0; - if ( node->Content ) - { - tmp->Content = new char[strlen(node->Content)+1]; - strcpy( tmp->Content, node->Content ); - } - else - tmp->Content = 0; - if ( node->Q_Node ) - { - QDomNode *q_node = (QDomNode *)node->Q_Node; - tmp->Q_Node = new QDomNode( *q_node ); - } - else - tmp->Q_Node = 0; - tmp->Type = node->Type; - return tmp; -} - -/*! - Frees a node. -*/ - -extern "C" void qdom_do_node_free( struct qdom_node *node ) -{ - if ( !node ) - return; - delete []node->Name; - delete []node->Content; - QDomNode *q_node = (QDomNode *)node->Q_Node; - delete q_node; - delete node; -} - -/*! - Wraps a qdom_node struct around a QDomNode object which can be used by the C code. -*/ - -struct qdom_node *qdom_to_node( QDomNode *node ) -{ - if ( !node ) - return 0; - qdom_node *q_node = new struct qdom_node; - q_node->Type = node->nodeType(); - const char *name = node->nodeName().latin1(); - q_node->Name = new char[node->nodeName().length()+1]; - strcpy( q_node->Name, name ); - const char *content = node->nodeValue().latin1(); - q_node->Content = new char[node->nodeValue().length()+1]; - strcpy( q_node->Content, content ); - q_node->Q_Node = new QDomNode( *node ); - return q_node; -} - -/*! - Copies the doctype name taken from the the qdom_doc object to the - \c name variable, the variable is initialised by the function. -*/ - -extern "C" void qdom_do_doc_type( struct qdom_doc *doc, char **name ) -{ - if ( !doc ) - { - *name = 0; - return; - } - QDomDocument *document = (QDomDocument *)doc->Document; - QString str = document->doctype().name(); - const char *q_name = str.latin1(); - if ( q_name ) - { - *name = new char[strlen(q_name)+1]; - strcpy( *name, q_name ); - } - else - { - *name = 0; - } -} - -/*! - Initialises a qdom_doc struct with the string taken from \c arg. -*/ - -extern "C" struct qdom_doc *qdom_do_init( const char *arg ) -{ - struct qdom_doc *doc = new struct qdom_doc; - QDomDocument *document = new QDomDocument(); - document->setContent( QString( arg ) ); - QDomNode *node = new QDomNode; - *node = document->documentElement(); - doc->Document = document; - doc->CurrentNode = node; - doc->Children = qdom_to_node( node ); - return doc; -} - -/*! - Frees a qdom_doc struct. -*/ - -extern "C" void qdom_do_free( struct qdom_doc *doc ) -{ - QDomNode *node = (QDomNode *)doc->CurrentNode; - QDomDocument *document = (QDomDocument *)doc->Document; - delete document; - delete node; - delete doc->Children; - delete doc; -} - -/*! - The custom message output used for catching Qt error messages when parsing with QDOM. -*/ - -void qdom_messageOutput( QtMsgType , const char *msg ) -{ - if ( !g_qdom_message_log ) - return; - int msg_len = strlen( msg ); - int log_len = 0; - if ( g_qdom_message_log->Log ) - log_len = strlen( g_qdom_message_log->Log ); - int total_len = log_len+msg_len+2; - char *log = new char[total_len]; - if ( g_qdom_message_log->Log ) - strncpy( log, g_qdom_message_log->Log, log_len ); - strncpy( log+log_len, msg, msg_len ); - log[log_len+msg_len] = '\n'; - log[total_len - 1] = '\0'; - if ( g_qdom_message_log->Log ) - delete []g_qdom_message_log->Log; - g_qdom_message_log->Log = log; -} - -/*! - Installs the custom message handler and clears the log entries. -*/ - -extern "C" void qdom_do_install_message_handler() -{ - if ( !g_qdom_message_log ) - g_qdom_message_log = new qdom_message; - msg_handler *old_handler = new msg_handler; - g_qdom_message_log->OldHandler = (void *)old_handler; - if ( g_qdom_message_log->Log ) - delete []g_qdom_message_log->Log; - g_qdom_message_log->Log = 0; - *old_handler = qInstallMsgHandler( qdom_messageOutput ); -} - -/*! - Frees the custom message handler. -*/ - -extern "C" void qdom_do_free_message_handler() -{ - msg_handler *old_handler = (msg_handler *)g_qdom_message_log->OldHandler; - qInstallMsgHandler( *old_handler ); -} - -/*! - Returns the string containg the error log, or 0 if no log is available. -*/ - -extern "C" char *qdom_error_log() -{ - if ( !g_qdom_message_log ) - return 0; - return g_qdom_message_log->Log; -} - -//#endif // HAVE_QTDOM |