Blame apache2/libinjection/libinjection_html5.h
|
Packit |
284210 |
#ifndef LIBINJECTION_HTML5
|
|
Packit |
284210 |
#define LIBINJECTION_HTML5
|
|
Packit |
284210 |
|
|
Packit |
284210 |
#ifdef __cplusplus
|
|
Packit |
284210 |
extern "C" {
|
|
Packit |
284210 |
#endif
|
|
Packit |
284210 |
|
|
Packit |
284210 |
/* pull in size_t */
|
|
Packit |
284210 |
|
|
Packit |
284210 |
#include <stddef.h>
|
|
Packit |
284210 |
|
|
Packit |
284210 |
enum html5_type {
|
|
Packit |
284210 |
DATA_TEXT
|
|
Packit |
284210 |
, TAG_NAME_OPEN
|
|
Packit |
284210 |
, TAG_NAME_CLOSE
|
|
Packit |
284210 |
, TAG_NAME_SELFCLOSE
|
|
Packit |
284210 |
, TAG_DATA
|
|
Packit |
284210 |
, TAG_CLOSE
|
|
Packit |
284210 |
, ATTR_NAME
|
|
Packit |
284210 |
, ATTR_VALUE
|
|
Packit |
284210 |
, TAG_COMMENT
|
|
Packit |
284210 |
, DOCTYPE
|
|
Packit |
284210 |
};
|
|
Packit |
284210 |
|
|
Packit |
284210 |
enum html5_flags {
|
|
Packit |
284210 |
DATA_STATE
|
|
Packit |
284210 |
, VALUE_NO_QUOTE
|
|
Packit |
284210 |
, VALUE_SINGLE_QUOTE
|
|
Packit |
284210 |
, VALUE_DOUBLE_QUOTE
|
|
Packit |
284210 |
, VALUE_BACK_QUOTE
|
|
Packit |
284210 |
};
|
|
Packit |
284210 |
|
|
Packit |
284210 |
struct h5_state;
|
|
Packit |
284210 |
typedef int (*ptr_html5_state)(struct h5_state*);
|
|
Packit |
284210 |
|
|
Packit |
284210 |
typedef struct h5_state {
|
|
Packit |
284210 |
const char* s;
|
|
Packit |
284210 |
size_t len;
|
|
Packit |
284210 |
size_t pos;
|
|
Packit |
284210 |
int is_close;
|
|
Packit |
284210 |
ptr_html5_state state;
|
|
Packit |
284210 |
const char* token_start;
|
|
Packit |
284210 |
size_t token_len;
|
|
Packit |
284210 |
enum html5_type token_type;
|
|
Packit |
284210 |
} h5_state_t;
|
|
Packit |
284210 |
|
|
Packit |
284210 |
|
|
Packit |
284210 |
void libinjection_h5_init(h5_state_t* hs, const char* s, size_t len, enum html5_flags);
|
|
Packit |
284210 |
int libinjection_h5_next(h5_state_t* hs);
|
|
Packit |
284210 |
|
|
Packit |
284210 |
#ifdef __cplusplus
|
|
Packit |
284210 |
}
|
|
Packit |
284210 |
#endif
|
|
Packit |
284210 |
#endif
|