rrichards               Thu Sep  8 06:34:37 2005 EDT

  Modified files:              
    /php-src/ext/dom    document.c 
  Log:
  add save options parameter
  
http://cvs.php.net/diff.php/php-src/ext/dom/document.c?r1=1.70&r2=1.71&ty=u
Index: php-src/ext/dom/document.c
diff -u php-src/ext/dom/document.c:1.70 php-src/ext/dom/document.c:1.71
--- php-src/ext/dom/document.c:1.70     Mon Aug 15 13:13:15 2005
+++ php-src/ext/dom/document.c  Thu Sep  8 06:34:37 2005
@@ -17,7 +17,7 @@
    +----------------------------------------------------------------------+
 */
 
-/* $Id: document.c,v 1.70 2005/08/15 17:13:15 rrichards Exp $ */
+/* $Id: document.c,v 1.71 2005/09/08 10:34:37 rrichards Exp $ */
 
 #ifdef HAVE_CONFIG_H
 #include "config.h"
@@ -1624,12 +1624,13 @@
 {
        zval *id;
        xmlDoc *docp;
-       int file_len = 0, bytes, format;
+       int file_len = 0, bytes, format, saveempty;
        dom_object *intern;
        dom_doc_props *doc_props;
        char *file;
+       long options = 0;
 
-       if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), 
"Os", &id, U_CLASS_ENTRY(dom_document_class_entry), &file, &file_len) == 
FAILURE) {
+       if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), 
"Os|l", &id, U_CLASS_ENTRY(dom_document_class_entry), &file, &file_len, 
&options) == FAILURE) {
                return;
        }
 
@@ -1644,8 +1645,14 @@
 
        doc_props = dom_get_doc_props(intern->document);
        format = doc_props->formatoutput;
+       if (options & LIBXML_SAVE_NOEMPTYTAG) {
+               saveempty = xmlSaveNoEmptyTags;
+               xmlSaveNoEmptyTags = 1;
+       }
        bytes = xmlSaveFormatFileEnc(file, docp, NULL, format);
-
+       if (options & LIBXML_SAVE_NOEMPTYTAG) {
+               xmlSaveNoEmptyTags = saveempty;
+       }
        if (bytes == -1) {
                RETURN_FALSE;
        }
@@ -1666,9 +1673,10 @@
        xmlChar *mem;
        dom_object *intern, *nodeobj;
        dom_doc_props *doc_props;
-       int size, format;
+       int size, format, saveempty;
+       long options = 0;
 
-       if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), 
"O|O", &id, U_CLASS_ENTRY(dom_document_class_entry), &nodep, 
U_CLASS_ENTRY(dom_node_class_entry)) == FAILURE) {
+       if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), 
"O|O!l", &id, U_CLASS_ENTRY(dom_document_class_entry), &nodep, 
U_CLASS_ENTRY(dom_node_class_entry), &options) == FAILURE) {
                return;
        }
 
@@ -1689,8 +1697,14 @@
                        php_error_docref(NULL TSRMLS_CC, E_WARNING, "Could not 
fetch buffer");
                        RETURN_FALSE;
                }
-
+               if (options & LIBXML_SAVE_NOEMPTYTAG) {
+                       saveempty = xmlSaveNoEmptyTags;
+                       xmlSaveNoEmptyTags = 1;
+               }
                xmlNodeDump(buf, docp, node, 0, format);
+               if (options & LIBXML_SAVE_NOEMPTYTAG) {
+                       xmlSaveNoEmptyTags = saveempty;
+               }
                mem = (xmlChar*) xmlBufferContent(buf);
                if (!mem) {
                        xmlBufferFree(buf);
@@ -1699,8 +1713,15 @@
                RETVAL_STRING(mem, 1);
                xmlBufferFree(buf);
        } else {
+               if (options & LIBXML_SAVE_NOEMPTYTAG) {
+                       saveempty = xmlSaveNoEmptyTags;
+                       xmlSaveNoEmptyTags = 1;
+               }
                /* Encoding is handled from the encoding property set on the 
document */
                xmlDocDumpFormatMemory(docp, &mem, &size, format);
+               if (options & LIBXML_SAVE_NOEMPTYTAG) {
+                       xmlSaveNoEmptyTags = saveempty;
+               }
                if (!size) {
                        RETURN_FALSE;
                }

-- 
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to