X-Git-Url: https://git.cinelerra-gg.org/git/?a=blobdiff_plain;ds=sidebyside;f=cinelerra-5.1%2Fcinelerra%2Ffilexml.C;h=065dce7db07758c48a49b9a6366a3dac0e0180e1;hb=83fa73bc0a258573fbbe06965f36dde3f8325688;hp=aef297e41adf822d9c697cda88a7cdb05130dbe0;hpb=36bd2d2bbbe534bf04307149bf6162a70c088656;p=goodguy%2Fhistory.git diff --git a/cinelerra-5.1/cinelerra/filexml.C b/cinelerra-5.1/cinelerra/filexml.C index aef297e4..065dce7d 100644 --- a/cinelerra-5.1/cinelerra/filexml.C +++ b/cinelerra-5.1/cinelerra/filexml.C @@ -58,7 +58,7 @@ XMLBuffer::XMLBuffer(const char *buf, long buf_size, int del) destroy = del; } -XMLBuffer::XMLBuffer(long buf_size, const char *buf, int del) +XMLBuffer::XMLBuffer(long buf_size, char *buf, int del) { // writing bfr = (unsigned char *)buf; bsz = buf_size; @@ -489,7 +489,7 @@ int FileXML::skip_tag() return 1; } -int FileXML::read_data_until(const char *tag_end, char *out, int len) +int FileXML::read_data_until(const char *tag_end, char *out, int len, int skip) { long ipos = buffer->itell(); int opos = 0, pos = -1; @@ -518,15 +518,15 @@ int FileXML::read_data_until(const char *tag_end, char *out, int len) ++pos; } // if end tag is reached, pos is left on the < of the end tag - if( pos >= 0 && !tag_end[pos] ) + if( !skip && pos >= 0 && !tag_end[pos] ) buffer->iseek(ipos); return opos; } -int FileXML::read_text_until(const char *tag_end, char *out, int len) +int FileXML::read_text_until(const char *tag_end, char *out, int len, int skip) { char data[len+1]; - int opos = read_data_until(tag_end, data, len); + int opos = read_data_until(tag_end, data, len, skip); decode(out, data, opos); return 0; }