Code Monkey home page Code Monkey logo

mxml's People

Contributors

a-costa avatar bbigq-lyq avatar carlo-bramini avatar darkrelaylabs avatar lgtm-migrator avatar michaelrsweet avatar orbea avatar timgates42 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

mxml's Issues

mxmlNewText does not work as expected

Version: 2.2
Original reporter: Michael Sweet

The documentation says "The constant MXML_NO_PARENT can be used to specify that the new text node has no parent. "
As I understand that means that a Text Node with no parent could be created.
But the code says:

if (!parent || !string)
return (NULL);

So no node is created.
This is a mistake or its the correct way?

Daniel Luyo

Memory allocation wrappers

Version: 2.2
Original reporter: Michael Sweet

I have created mxml_memwrappers.c/h to provide the ability for Mini-XML to call user-registered callback functions for all memory allocation functions. The system in which I work requires this ability since we use our own heap managers.

Since this is the only change I have had to make to Mini-XML, I would like to contribute it to the project so that, as updates and bug fixes are released the changes will persist.

It requires only minimal change to the code in that the wrapped versions of malloc, strdup, free, etc., must be called instead of calling the vanilla C functions. I have named the new functions mxml_malloc, mxml_strdup, etc.

I am posting this as a "feature request" as I cannot find a more suitable place to ask how to submit a patch against the code back to the maintainers.

UTF-8 code doesn't enforce shortest-length rule.

Version: 2.0
Original reporter: Michael Sweet

The UTF-8 loading code does not enforce the shortest form of a UTF-8 encoded character; reference:

http://www.unicode.org/versions/corrigendum1.html

Thus, it should be returning an error when reading a 2-6 byte value that needs less than the given number of bits.

Also see:

http://www.cl.cam.ac.uk/~mgk25/unicode.html

How to use whitespace callback?

Version: 1.3
Original reporter:

I write a simplest whitespace callback function as follows:

int whitespace_cb(mxml_node_t *node, int where)
{
return ('\n');
}

Then in another function, I write:

...
mxmlSaveFile(tree, stdout, whitespace_cb);
...

But alway get pointer error, Does anything wrong?

If I change the content of whitespace_cb() to
return('\0');

The error disappers. What strange!

From Request #14

Version: 2.1
Original reporter: Michael Sweet

Hi Michael,

I have done what you said but when the 'mxmlLoadFile' function is called, it doesn´t load all xml document, it stop at the first instance of <!CDATA

Thanks again.

UTF8 multi-byte characters are considered whitespace when parsing XML

Version: 2.3
Original reporter: Michael Sweet

UTF8 multi-byte characters are considered as white space, because glibc's isspace(int c) function returns true for them. This is at least the case for glibc-2.5 on GNU/Linux.

The attached patch fixes this problem for me and some others, but perhaps there is a more elegant solution by properly casting the int to a suitable char ?

snprintf() standard in C99

Version: 2.2.2
Original reporter: Michael Sweet

In testmxml.c line 504 there's this row:

snprintf(buffer, sizeof(buffer), "%sfd", argv[1]);

but snprintf() is not ANSI C standard (C89). Only in C99.

Can't get a string separated by space in text element

Version: 2.2.2
Original reporter: Michael Sweet

Hi,

I have a problem when I try to retrive a string value of a element, my XML structure is like the follow:

aaaa bbbb

I load the file with:
tree = mxmlLoadFile(NULL, fp, MXML_NO_CALLBACK);
(i tried also tree = mxmlLoadFile(NULL, fp, MXML_TEXT_CALLBACK);)

then i select the "element" node with:

node = mxmlFindElement(tree, tree, "element", NULL,NULL, MXML_DESCEND);

then when i get the string of the child node with:

curr_node->child->value.text.string

I get only "aaaa" instead of "aaaa bbbb", the string terminate at blank space... where is the mistake?

Tanks
Igor

getting text from a node.

Version: 2.2.2
Original reporter: Michael Sweet

I´m sorry, after reading the documentation and trying a couple hours, I can´t just read the text of a node.
Which method or element of the node structure is to be used?

Thank you.

Add shared library support

Version: 2.1
Original reporter: Michael Sweet

The debian maintainer of Mini-XML has asked for shared library support.

OpenOffice meta.xml

Version: 2.2.2
Original reporter: Michael Sweet

Hello Michael,

I want to use your xml Library to parse the meta.xml which contain informations about the OpenOffice document lik Author, Title, creation date and so on.

If I set DEBUG to 2 so I can see that all informations are read in the tree.

But how do I get the informations? e.g for the <meta:user-defined > or <meta:document-statistic >, because each keyword is in a extra child?

I attach the extracted meta.xml

Thank you
Reinhard

strdupf declaration

Version: 2.3
Original reporter: Michael Sweet

Shouldn't the declaration of mxml_strdupf be:

extern char* _mxml_strdupf(const char *, ...);

Added an extra _ to the name.
Also change the last parameter to remove a warning.

Undefined symbol: ___srget and swbuf

Version: 2.2
Original reporter: Michael Sweet

When I try to link the library I get these 2 errors:
Undefined symbol: ___srget
Undefined symbol: ___swbuf

I tracked the "srget" to the getc function in (mxml-file and xmldoc)??? I have not yet succeeded at tracking the swbuf external.
I am using a scaled down version of sparc unix (power tv operating system). Can you help as I would love to use your code to parse xml files.

Thank you in advance for your help on this urgent matter!

Tags without value

Version: 2.2.2
Original reporter: Michael Sweet

Hi Michael,

I have seen a problem when I have got an opaque value from tags without value. It return to me a buffer with severals CR values.

Example: The syntax is :

Thanks again.

Miguel Angel Diez

saved XML by mxml lib are incorrect and cannot be loaded by itselff

Version: 2.2
Original reporter: Michael Sweet

Hi, I am the author of ZynAddSubFX ( http://zynaddsubfx.sourceforge.net ).
This problem is specific only to windows (mingw-crosscompile) and 2.2 (2.1 works ok). So, today I had to revert to 2.1 to be able to use for windows version of zynaddsubfx.

I sent you in the attachement an xml generated by the folowing lines of codes (the tree exists allready in memory):
char *xmldata=mxmlSaveAllocString(tree,XMLwrapper_whitespace_callback);
(after this I save xmldata into the file).

const char *XMLwrapper_whitespace_callback(mxml_node_t *node,int where){
const char *name=node->value.element.name;

if ((where==MXML_WS_BEFORE_OPEN)&&(!strcmp(name,"?xml"))) return(NULL);
if ((where==MXML_WS_BEFORE_CLOSE)&&(!strcmp(name,"string"))) return(NULL);

if ((where==MXML_WS_BEFORE_OPEN)||(where==MXML_WS_BEFORE_CLOSE)) {
    return("\n");
};

return(0);

};

Please look at the first line of the xml:

("?" before ">" is missing) Also, perhaps are other problems (because if I manually correct this problem, the xml is not loaded; but a working xml is loaded ok). Thank you. Paul

mxml_vsnprintf() goes into infinite loop if buffer overflowed

Version: 2.2.2
Original reporter: Michael Sweet

mxml_vsnprintf (local version on vsnprintf) hangs in an infinite loop when the buffer is overflowed. This has ben verified on linux/Solaris (gcc) and WIN32 (VC 6.0).

Example code is included showing the differences in behavior of vsnprintf() and mvml_vsnprintf().

BTW:
I am doing a lot of WIN32 testing (VC 4.2, 6.0, and .NET). I can provide .def and project files if you would like.

Thanks for the great software!

Cheers,
Josh

Error compiling testmxml.c under Windows

Version: 2.2
Original reporter: Michael Sweet

This is what GCC (mingw) returns:

testmxml.c: In function main': testmxml.c:481: error: O_RDONLY' undeclared (first use in this function)
testmxml.c:481: error: (Each undeclared identifier is reported only once
testmxml.c:481: error: for each function it appears in.)
testmxml.c:501: error: O_WRONLY' undeclared (first use in this function) testmxml.c:501: error: O_CREAT' undeclared (first use in this function)
testmxml.c:501: error: `O_TRUNC' undeclared (first use in this function)
make: *** [testmxml.o] Error 1

If I #include <fcntl.h> under the WIN32 symbol, testmxml.c compiles, but one test fails:

test.xml test.xmlfd differ: char 39, line 1
File descriptor test failed!

I don't know if it's useful, but the two mentioned files are identical.

How to get the value of the element?

Version: 1.3
Original reporter:

I'm using 1.3 version. In my test case, If the node is

...
192.168.2.1
...

How can I obtain the value of "192.168.2.1"?

I have tried

node = mxmlFindElement(tree, tree , "ipaddr", NULL, NULL, MXML_DESCEND);

But when I use

node->value.text.string,

I always get "ipaddr" instead of "192.168.2.1"....Why?

mxmlLoadString does not free memory

Version: 2.2.2
Original reporter: Michael Sweet

By calling mxmLoadString with an mxl-string witch has an error the allocated buffers are not freed.
If parent is NULL the buffers are forever lost.

Undocumented behaviour of *mxml_node_t to char* functions.

Version: 2.2.1
Original reporter: Michael Sweet

I noticed the following strange behaviour, that pertains to functions:
mxmlSaveAllocString() and mxmlSaveString().

Let's assume the following xml file:

-------test2.xml-------------------------------

1 2 3 4 4 4 4 5 4 --------------------------------------------

and the following C program to process it:

-------test2.c-------------------------------
#include<stdio.h>
#include<mxml.h>

int main(void) {
FILE *fd;
fd = fopen("test2.xml", "r");

    mxml_node_t * tree;
    tree = mxmlLoadFile(NULL, fd, MXML_NO_CALLBACK);

    mxml_node_t * node;
    node = mxmlFindElement(tree, tree, "e", NULL, NULL, MXML_DESCEND);

    printf("%s", mxmlSaveAllocString(node, MXML_NO_CALLBACK));

    char buf[3000];
    mxmlSaveString(node, buf, 3000, MXML_NO_CALLBACK);
    printf("\n\n%s", buf);

    return 0;

}

The output returned is:

-----ACTUAL-OUTPUT---------------------------
3 4 4

3 4 4

whereas I was expecting:

-----EXPECTED-OUTPUT---------------------------
3

3

Is this a bug or an undocumented feature? Or something eludes me?
Since *node points to , why the following elements are also printed?

I'm attaching a tarball with those two files.
This is just an example. This behaviour is more general, whereby it seems that these two functions convert to string all nodes until the closing tag of parent.

Stergiakis Alexandros

mxmlLoadString and mxmlLoadFile should return NULL on parse error

Version: 2.2
Original reporter: Michael Sweet

When parsing malformed XML the functions mxmlLoadString() and mxmlLoadFile() return a node that contains all the data that was in
the XML document before parse error. What should happen is that if
any of the XML document is malformed these functions should abandon the XML and return NULL instead. This will signal to the application using the API that the XML was faulty.

How Insert first xml line

Version: 2.1
Original reporter:

What is the api function in order to insert the first xml line . I have tried with 'mxmlNewElement' but it show the end tag like />.

Custom data support

Version: 2.0
Original reporter: Michael Sweet

[request and code from Mark Koennecke]

Dear Michael Sweet,

I actually was quicker in getting MXML_CUSTOM and my NeXus-API to
work then I thought. Perhaps a sign for the quality of mxml?

Anyway, I attached a tar ball of my modified sources. I left my
Makefile, Makefile.mk and some other files in the top level
because you can use to build a test program, called nxio. I used
what I needed to do anyway for a test, so it might not be the right
thing to use as a regression test for mxml. For convenience, I took
some more local functions into mxml.h: mxml_add_char (in order to reuse
your scheme for resizable buffers), mxml_new in order to make my
custom data element.

As always there were problems with my stuff, so I took it through
valgrind in order to exclude memory problems. Thereby I found two
problems with mxml:

  • mxml_add_char. You used realloc for reallocating buffers. Valgrind
    complained on this because of uninitialized memory. I replaced realloc
    by malloc, memset and copying. Thats better anyway, my man-page on
    realloc says that the realloced additional space is not initialized.
    But this is C, so it should be 0 in order to make sure that the string
    is always NULL-terminated.
  • There is an issue with the whitespace callback which can cause a
    memory leak. I'am unsure how to resolve this. Your example of the
    whitespace callback just returns single characters. That is working
    fine. I was mislead to have it return an indentation expressed as
    a dynamically allocated string of spaces (I do not believe in tabs).
    This never gets deallocated. If I put a free in on all strings
    returned from the whietspace callback, I'll break your example. If I
    would return strings from the local stack (local variables in the
    whitespace callback) I would break the code. As this causes only a
    minor leak, I did nothing about it.

Please let me know if my changes will make it into maybe a 2.1 of
mxml and when this would be the case. My software stands the standard
NeXus-API selftest which makes it alpha and distributable to other
NeXus developers. So I think about making an announcement soon.

		Best Regards,

			Mark Koennecke

mxml v2.0.1 - some bug fixes

Version: 2.0rc1
Original reporter: Michael Sweet

Hello Michael,

according to your request...


Hello Michael,

I've fixed some bugs for which I've appended a small unified diff.
The diff is commented, so I'll give you just a few notes here:

  • attr.c:
    allocation wasn't checked in one case
    potentially free()ing a NULL ptr.

  • entity.c:
    aborting if a CB couldn't be setup

  • file.c:
    constructions like
    getc() | getc() << 8
    aren't save, as the compiler could eliminate the second part
    under some circumstances...
    output chars once instead of 1..4 times...

  • index.c:
    removed the end-recursion for the quick-sort

  • string.c:
    the vsnprintf() does not return the buffer size needed - instead
    it returns -1 signifying that the buffer is too short...

  • mxmldoc.c: (and file.c):
    replaces the various output functions with a printf() call only
    -> saves us ~2kB
    although for this part YMMV

Greetings from Germany.

CU Tom.
(Thomas M.Ott)

Unable to interpret &apos;

Version: 2.0
Original reporter: Michael Sweet

mxml-entity.c, it is unable to interpret ' and
hangs in an infinite loop in

while (last > first)
{
current = (first + last) / 2;

if ((diff = strcmp(name, entities[current].name)) == 0)
  return (entities[current].val);
else if (diff < 0)
  last = current;
else
  first = current;

}

There is no break from this code except finding the
right answer, and since "apos" currently isnt in
the entities[]-array this loop never exits.

mxmlLoadFile prints error message, but returns non-NULL

Version: 2.3
Original reporter: Michael Sweet

This is (presumably) an invalid XML file:

<top Name="topname"

I called this file bad.xml.
This program, mxml_error_check.c, loads an XML file and reports whether or not it succeeded:

#include <stdio.h>
#include <mxml.h>

int main(int argc, char *argv[])
{
FILE *xmlfile;
mxml_node_t *tree;

if (argc != 2)
    {
    fprintf(stderr,"use: %s xmlfile\n",argv[0]);
    exit(-1);
    }
xmlfile = fopen(argv[1],"r");
if (xmlfile == NULL)
   {
   fprintf(stderr,"Error: Unable to open %s\n",argv[1]);
   exit(-1);
   }
tree = mxmlLoadFile(NULL,xmlfile,MXML_NO_CALLBACK);
fclose(xmlfile);
if (tree == NULL)
    {
    fprintf(stderr,"Error: Unable to load the XML data from %s\n",argv[1]);
    exit(-1);
    }
fprintf(stderr,"Successfully read the XML file.\n");
mxmlDelete(tree);
}

A sample run:

$ ./mxml_error_check bad.xml
mxml: Bare < in element top!
Successfully read the XML file.
$

The mxml library prints an error message, but it returns a non-NULL tree. Shouldn't it return NULL?

Re: mxmlLoadFile doesn't detect an XML error

Version: 2.2.2
Original reporter: Michael Sweet

Hi,
I am not familiar with xml spec.
But I found that in mxml_load_data()
the node is added once it is parsed.
So the mxml structure may exist the incomplete(not closed) node.
If the file is correct, the parser will find the close tag of the first node in the end.

I use the following to check the file.
It works well for me.
If it is not correct, please let me know.

mxml_load_data()

/*
 * Free the string buffer - we don't need it anymore...
 */

free(buffer);
  • buffer = NULL;
/*
 * Find the top element and return it...
 */

if (parent)
{
  •    node = parent;  
    
      while (parent->parent != top && parent->parent)
          parent = parent->parent;
    
  •    if (node != parent) 
       {
    
  •        mxml_error("Mismatched close tag <%s> under parent <%s>!",
    
  •                   node->value.element.name, node->parent ? node->parent->value.element.name : "(nil)");
    
  •        goto error;
    
  •    }
    

    }

Check validity of input characters

Version: 2.1
Original reporter: Michael Sweet

The current code does not error out if the XML data stream contains control characters that are not allowed by the XML 1.0 spec. The only allowed control characters are CR, LF, and TAB; other characters from 0x00 to 0x1f and 0x7f are not allowed in XML data streams.

Problems withn mxmlWalkPrev()

Version: 2.2.2
Original reporter: Michael Sweet

Hi,
I have this code:

#include <mxml.h>
#include
using namespace std;
int main()
{
FILE *archivoXML;
mxml_node_t *arbol,*nodo;

archivoXML = fopen("infEntorno.xml", "r");
arbol = mxmlLoadFile(NULL, archivoXML, MXML_TEXT_CALLBACK);
fclose(archivoXML);

printf("%s\n",arbol->value.element.name);

printf("%d",&arbol->child);
nodo=mxmlFindElement(arbol, arbol, "Entorno", NULL, NULL, MXML_DESCEND);
printf("%s\n",nodo->value.element.name);
nodo=mxmlWalkNext(nodo,arbol, MXML_DESCEND);

printf("%s\n",nodo->value.element.name);

return 0;
}

when im trying to run the program its says: segment violation
I think maybe mxmlWalkNext() is not working??? The XML file it this:

Please.. help me!! Sorry my english..
Regards

Element ?xml

Version: 2.2.2
Original reporter: Michael Sweet

Hi Michael, I have been working with version 2.1 without problems. I have changed to 2.2.2 I have seen a problem. I have put the ?xml element in this way:

treeData = mxmlNewElement(MXML_NO_PARENT, "?xml");
mxmlElementSetAttr (treeData, "version", "1.0");
mxmlElementSetAttr (treeData, "encoding", "UTF-8");

and the document before shown . Correct buy now it shows: <?xml
version="1.0" encoding="UTF-8">
with CRLF after '<?xml'

I have been doing changes to know whit is it but I don´t know why.

Thanks

Miguel Angel Diez

How insert <![CDATA[text}}>

Version: 2.1
Original reporter:

Hi,

I am trying to insert a element with <![CDATA[text}}>. First, I write it like a TEXT into elemente but MiniXml translate <> symbols for &lt and &gt. It doesn´t show errors but I think that the parser take it like normal text and not like it must be.

After I have tried to inert it like NewElement but it says me that doesn´t find the last tag for it.

How can I do it?

Thanks

mxmlSetText() fails to set text entity, always returns -1

Version: 2.0
Original reporter: Michael Sweet

mxmlSetText() returns -1, does not update node, when trying to replace the contents of a text entity initialized by mxmlNewText().

I am trying to replace the contents of a particular xml entity that has been built into the XML document prior to my logic. I can properly locate the entity in question, but cannot alter it's content. mxmlSetText() seems to be the function I should use to replace the contents of an entity, but it always returns -1 to the call.

Sample program (mxmltest2.c) illustrates problem.
On my system, the binary results in
~/code/xml1 $ mxmltest2
Error: mxmlSetText() failed (-1)

Generated XML:

abcdefg

~/code/xml1 $

mxmltest2.c compiled with commandline
cc -o mxmltest2 mxmltest2.c -lmxml

mxmlElementSetAttrf()

Version: 2.2.2
Original reporter: Michael Sweet

it would be very useful to be able to "compose" the attribute value in situ, using printf syntax, as it's possible for text elements.

mxmlLoadFile(NULL,fp,MXML_OPAQUE_CALLBACK);

Version: 2.2.2
Original reporter: Michael Sweet

Hi,
I have Text like this in my XML-File "Test&Measurement"

so when I try to open the file with mxmlLoadFile(NULL,fp,MXML_OPAQUE_CALLBACK);

there is error reported
mxml: Character entity "F" not terminated under parent <MAT_TEXT>!

Actually I was thinking when I open a file with MXML_OPAQUE_CALLBACK
, the text should be treated as "CDATA"

Dit I make a mistake or it's bug ?

Thanks a lot, Dave

Problem with Visual C++ 2005 Express Edition

Version: 2.2.2
Original reporter: Michael Sweet

I have install the new MS compiler, and I was testing your library. It works as well as ever, but in compile time, it give a lot of warnings:

MS has deprecated the strdup, strncpy, sprintf, strcpy, strerror, read, and write functions.

using the preprocessor definition _CRT_SECURE_NO_DEPRECATE most of warnings disappears (Only lefts strdup).

Using the directive #pragma warning(disable : 4996) all the warnings disappear

I think it´s not importatn (It works well anyway), but I supose you would like to know it.

Thanks for your work

mxmlLoadFile doesn't detect an XML error

Version: 2.2.2
Original reporter: Michael Sweet

Hi Michael,

I am using version 2.2.2, compiled with gcc 4.0.2.
I am using Ubuntu (Breezy), but I am not using the
the Ubuntu package.

Here is my XML test file:

<top Name="topname"

Notice that there is a missing closing > in the second line.
My call to mxmlLoadFile returns successfully when called with
this file.

When I give this file to xmllint, it reports an error.

Here is my program to test whether mxml is able to load a file:

#include <stdio.h>
#include <mxml.h>

int main(int argc, char *argv[])
{
FILE *xmlfile;
mxml_node_t *tree;

if (argc != 2)
    {
    fprintf(stderr,"use: %s xmlfile\n",argv[0]);
    exit(-1);
    }
xmlfile = fopen(argv[1],"r");
if (xmlfile == NULL)
   {
   fprintf(stderr,"Error: Unable to open %s\n",argv[1]);
   exit(-1);
   }
tree = mxmlLoadFile(NULL,xmlfile,MXML_NO_CALLBACK);
fclose(xmlfile);
if (tree == NULL)
    {
    fprintf(stderr,"Error: Unable to load the XML data from %s\n",argv[1]);
    exit(-1);
    }
fprintf(stderr,"Successfully read the XML file.\n");
mxmlDelete(tree);
}

This program reports success when given the short XML file shown above.

--Warren

P.S. I don't know what select for "Priority" or "Scope". Perhaps
the bug report form should allow "Unknown" for these.

Mode to add carriage-returns after element tags

Version: 2.2.2
Original reporter: Michael Sweet

My XML format is a bunch of nest attribute tags, each with only one data value node. Something like:

Eric 5 3 5

etc.

This got printed out as one very long line, thousands of characters long. It would be nice if there was a way to tell it to "print a carriage return after this element's value", or something like that. (Without creating a \n text node, which is the workaround.) Or maybe some other way of addressing this issue, so that it isn't so surprising.

Support ISO 8859 chars table

Version: 2.1
Original reporter:

I would like to know if Mini XML supports ISO 8859. I have loaded a XML document with this encoding and I have problems with the library.

Thanks.

Decoding of HTML entities (ie. &#039;) does not work.

Version: 2.0
Original reporter: Michael Sweet

I found a function in the file mxml-file.c called mxml_get_entity.
This has a few lines that read as follows;

if (entity[1] == '#')
{
if (entity[2] == 'x')
ch = strtol(entity + 3, NULL, 16);
else
ch = strtol(entity + 2, NULL, 10);
}

It seems the index into "entity" is actually off by one. I changed the
code to read as follows;

if (entity[0] == '#')
{
if ((entity[1] == 'x') || (entity[1] == 'X'))
ch = strtol(entity + 2, NULL, 16);
else
ch = strtol(entity + 1, NULL, 10);
}

Basically, decremented the index into "entity" by one since I found the

sign was actually at the start of "entity". I also just added a

quick check for an uppercase "X".

Top Node

Version: 2.2.2
Original reporter:

Hi Micheal,

This might sound stupid but what is the correct way to return the "top" node for methods such as mxmlWalkNext() etc.

Sid

Not a request, but a question regarding lisence

Version: 2.2.2
Original reporter: Michael Sweet

Michael,

I want to ask you if I can use some files from your library in my Perl module Win32::File::Summary (http://search.cpan.org/~rpagitsch/Win32-File-Summary-0.05/)

The copyright informations from you will be unchanged. But I only want to add the following files to my module:
mxml.h
mxml-attr.c
mxml-entity.c
mxml-file.c
mxml-index.c
mxml-node.c
mxml-private.c
mxml-search.c
mxml-set.c
mxml-string.c

I will also add the following inforamtion regarding Mini-XML to the POD documentation:
=head1 TECHNICAL INFORAMTION

The module Win32::File::Summary uses zlib1.1.4 from Mark Adler and
Jean-loup Gailly and the unzip 1.01 from
http://www.winimage.com/zLibDll/unzip.htm

Thank you to Mark Adler, Jean-loup Gailly and all other which are
makeing the libraries available to the public.

There is no need to download the libraries above I allready added the
neccessary parts to the module.

It also uses the Mini-XML library version 2.2.2 from Michael Sweet.
The whole library can be found under
http://www.easysw.com/~mike/mxml/.
I also want to give him my special thank you.

Is this allowed from your site?
If you have additional requirements please let me know.

Thank you
Reinhard

bugs mxml_string_getc

Version: 2.0
Original reporter: Michael Sweet

There are some bugs in mxml_string_getc: *s[n] is interpreted as *(s[n]) instead of (*s)[n], making mxmlLoadString unreliable when processing non ascii data.
Here is a fixed version.

Segmentation fault (mxmlLoadString)

Version: 2.2.2
Original reporter: Michael Sweet

The following test case using malformed XML string ends up with Segmentation fault.

#include <mxml.h>

int main (void)
{
mxml_node_t *tree;
tree = mxmlLoadString(NULL, "</", MXML_NO_CALLBACK);

return 1;

};

Getting text no fragment

Version: 2.2
Original reporter: Michael Sweet

Hi Michael.

I am saving the XML document with mxmlNewElement function (for tags) and mxmlNewText function (for text). The text has several words with white spaces. It is saved OK but when I´m going to load the document, it fragments the text in several nodes. How can I to load the full text without this separation?.

Thanks.

Miguel Angel Diez.

Unable to build in Visual Studio 2005

Version: 2.3
Original reporter: Michael Sweet

I was unable to build the library after i upgraded the vs solution to vs2005 (SP1 + Vista upgrade on Vista)

After some editing in the files i got it working. Here is the list of changes:

  1. Added declaration of _mxml_vstrdupf in config.h (mxml-attr.c needs it)
  2. Changed declaration of vsnprintf to _mxml_vsnprintf (added underscore) in config.h line 81.
  3. Changed mxml-string.c line 34 to #ifndef HAVE_SNPRINTF (not defined instead of defined)

Link errors when linking into Console App on VS2003

Version: 2.2.2
Original reporter:

Hi,
When linking the files into a C++ console app using vs2003 I get wierd multiply defined symbol errors.

Have read doco and cannot find specific mention of this issue.. what am I dong wrong ?

Sid

Compiling...
MXM_Test1.cpp
Linking...
MSVCRTD.lib(MSVCR71D.dll) : error LNK2005: _malloc already defined in LIBCD.lib(dbgheap.obj)
MSVCRTD.lib(MSVCR71D.dll) : error LNK2005: _putc already defined in LIBCD.lib(fputc.obj)
MSVCRTD.lib(MSVCR71D.dll) : error LNK2005: _getc already defined in LIBCD.lib(fgetc.obj)
MSVCRTD.lib(MSVCR71D.dll) : error LNK2005: _fwrite already defined in LIBCD.lib(fwrite.obj)
MSVCRTD.lib(MSVCR71D.dll) : error LNK2005: _free already defined in LIBCD.lib(dbgheap.obj)
MSVCRTD.lib(MSVCR71D.dll) : error LNK2005: _strncmp already defined in LIBCD.lib(strncmp.obj)
MSVCRTD.lib(MSVCR71D.dll) : error LNK2005: _realloc already defined in LIBCD.lib(dbgheap.obj)
MSVCRTD.lib(MSVCR71D.dll) : error LNK2005: _sprintf already defined in LIBCD.lib(sprintf.obj)
MSVCRTD.lib(MSVCR71D.dll) : error LNK2005: _calloc already defined in LIBCD.lib(dbgheap.obj)
MSVCRTD.lib(MSVCR71D.dll) : error LNK2005: _memmove already defined in LIBCD.lib(memmove.obj)
MSVCRTD.lib(MSVCR71D.dll) : error LNK2005: _strncpy already defined in LIBCD.lib(strncpy.obj)
MSVCRTD.lib(MSVCR71D.dll) : error LNK2005: _strchr already defined in LIBCD.lib(strchr.obj)
MSVCRTD.lib(ti_inst.obj) : error LNK2005: "private: __thiscall type_info::type_info(class type_info const &)" (??0type_info@@aae@ABV0@@z) already defined in LIBCD.lib(typinfo.obj)
MSVCRTD.lib(ti_inst.obj) : error LNK2005: "private: class type_info & __thiscall type_info::operator=(class type_info const &)" (??4type_info@@AAEAAV0@ABV0@@z) already defined in LIBCD.lib(typinfo.obj)
MSVCRTD.lib(MSVCR71D.dll) : error LNK2005: __read already defined in LIBCD.lib(read.obj)
MSVCRTD.lib(MSVCR71D.dll) : error LNK2005: __write already defined in LIBCD.lib(write.obj)
LINK : warning LNK4098: defaultlib 'MSVCRTD' conflicts with use of other libs; use /NODEFAULTLIB:library
Debug/MXM_Test1.exe : fatal error LNK1169: one or more multiply defined symbols found

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.