mirror of
https://github.com/brechtsanders/xlsxio
synced 2025-03-28 21:13:24 +00:00
57 lines
2.6 KiB
C
57 lines
2.6 KiB
C
#ifndef INCLUDED_XLSXIO_READ_SHAREDSTRINGS_H
|
|
#define INCLUDED_XLSXIO_READ_SHAREDSTRINGS_H
|
|
|
|
#include <stdint.h>
|
|
#include <expat.h>
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
struct sharedstringlist {
|
|
XML_Char** strings;
|
|
size_t numstrings;
|
|
};
|
|
|
|
struct sharedstringlist* sharedstringlist_create ();
|
|
void sharedstringlist_destroy (struct sharedstringlist* sharedstrings);
|
|
size_t sharedstringlist_size (struct sharedstringlist* sharedstrings);
|
|
int sharedstringlist_add_buffer (struct sharedstringlist* sharedstrings, const XML_Char* data, size_t datalen);
|
|
int sharedstringlist_add_string (struct sharedstringlist* sharedstrings, const XML_Char* data);
|
|
const XML_Char* sharedstringlist_get (struct sharedstringlist* sharedstrings, size_t index);
|
|
|
|
////////////////////////////////////////////////////////////////////////
|
|
|
|
struct shared_strings_callback_data {
|
|
XML_Parser xmlparser;
|
|
struct sharedstringlist* sharedstrings;
|
|
int insst;
|
|
int insi;
|
|
int intext;
|
|
XML_Char* text;
|
|
size_t textlen;
|
|
XML_Char* skiptag; //tag to skip
|
|
size_t skiptagcount; //nesting level for current tag to skip
|
|
XML_StartElementHandler skip_start; //start handler to set after skipping
|
|
XML_EndElementHandler skip_end; //end handler to set after skipping
|
|
XML_CharacterDataHandler skip_data; //data handler to set after skipping
|
|
};
|
|
|
|
void shared_strings_callback_data_initialize (struct shared_strings_callback_data* data, struct sharedstringlist* sharedstrings);
|
|
void shared_strings_callback_data_cleanup (struct shared_strings_callback_data* data);
|
|
void shared_strings_callback_skip_tag_start (void* callbackdata, const XML_Char* name, const XML_Char** atts);
|
|
void shared_strings_callback_skip_tag_end (void* callbackdata, const XML_Char* name);
|
|
void shared_strings_callback_find_sharedstringtable_start (void* callbackdata, const XML_Char* name, const XML_Char** atts);
|
|
void shared_strings_callback_find_sharedstringtable_end (void* callbackdata, const XML_Char* name);
|
|
void shared_strings_callback_find_shared_stringitem_start (void* callbackdata, const XML_Char* name, const XML_Char** atts);
|
|
void shared_strings_callback_find_shared_stringitem_end (void* callbackdata, const XML_Char* name);
|
|
void shared_strings_callback_find_shared_string_start (void* callbackdata, const XML_Char* name, const XML_Char** atts);
|
|
void shared_strings_callback_find_shared_string_end (void* callbackdata, const XML_Char* name);
|
|
void shared_strings_callback_string_data (void* callbackdata, const XML_Char* buf, int buflen);
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif
|