X-Git-Url: http://git.cinelerra-gg.org/git/?a=blobdiff_plain;f=cinelerra-5.1%2Fcinelerra%2Ffilexml.C;fp=cinelerra-5.1%2Fcinelerra%2Ffilexml.C;h=5aa82f56942f39f7425bd185ec3506c88f4952b2;hb=0983c78067d86d25426fd34655ad9a9992ef04c7;hp=eccb503ac6143b1e9f5fa44c04236c89a87b670d;hpb=fe4662624d711faab6b406490a64c2382661997e;p=goodguy%2Fhistory.git diff --git a/cinelerra-5.1/cinelerra/filexml.C b/cinelerra-5.1/cinelerra/filexml.C index eccb503a..5aa82f56 100644 --- a/cinelerra-5.1/cinelerra/filexml.C +++ b/cinelerra-5.1/cinelerra/filexml.C @@ -472,6 +472,22 @@ int FileXML::read_tag() return tag.read_tag(this); } +int FileXML::skip_tag() +{ + char tag_title[sizeof(tag.title)]; + strcpy(tag_title, tag.title); + int n = 1; + while( !read_tag() ) { + if( tag.title[0] == tag_title[0] ) { + if( !strcasecmp(&tag_title[1], &tag.title[1]) ) ++n; + } + else if( tag.title[0] != '/' ) continue; + else if( strcasecmp(&tag_title[0], &tag.title[1]) ) continue; + else if( --n <= 0 ) return 0; + } + return 1; +} + int FileXML::read_data_until(const char *tag_end, char *out, int len) { long ipos = buffer->itell();