X-Git-Url: http://git.cinelerra-gg.org/git/?a=blobdiff_plain;f=cinelerra-5.1%2Fcinelerra%2Ffilexml.h;h=af45e3088bd8adde783af10b37ed613fae204d14;hb=d60a59baa6cfe24c0fb153ed9e150a834ba29feb;hp=4cff675866c22510f115fcba962491ba5e8bb8c3;hpb=5a1b2bb96f2bd6b7ef4f8031763683726c02219d;p=goodguy%2Fhistory.git diff --git a/cinelerra-5.1/cinelerra/filexml.h b/cinelerra-5.1/cinelerra/filexml.h index 4cff6758..af45e308 100644 --- a/cinelerra-5.1/cinelerra/filexml.h +++ b/cinelerra-5.1/cinelerra/filexml.h @@ -38,10 +38,10 @@ class XMLBuffer unsigned char *inp, *outp, *bfr, *lmt; int destroy; - unsigned char *&demand(long len); + int demand(long len); public: XMLBuffer(long buf_size=0x1000, long max_size=LONG_MAX, int del=1); - XMLBuffer(long buf_size, const char *buf, int del=0); // writing + XMLBuffer(long buf_size, char *buf, int del=0); // writing XMLBuffer(const char *buf, long buf_size, int del=0); // reading ~XMLBuffer(); @@ -56,10 +56,7 @@ public: int cur() { return outp>=inp ? -1 : *outp; } int next() { return outp>=inp ? -1 : *outp++; } - int next(int ch) { - demand(otell()+1); - return *inp++ = ch; - } + int next(int ch) { return !demand(otell()+1) ? -1 : *inp++ = ch; } static char *decode_data(char *bp, const char *sp, int n=-1); static char *encode_data(char *bp, const char *sp, int n=-1); @@ -100,7 +97,6 @@ public: int64_t get_property(const char *property, int64_t default_); float get_property(const char *property, float default_); double get_property(const char *property, double default_); - const char* get_property_text(const char *property); int set_title(const char *text); int set_property(const char *text, const char *value); @@ -134,8 +130,8 @@ public: int append_data(const char *text, long len); char* read_text(); - int read_data_until(const char *tag_end, char *out, int len); - int read_text_until(const char *tag_end, char *out, int len); + int read_data_until(const char *tag_end, char *out, int len, int skip=0); + int read_text_until(const char *tag_end, char *out, int len, int skip=0); int read_tag(); int skip_tag(); int write_to_file(const char *filename);