aboutsummaryrefslogtreecommitdiff
path: root/src/nat/miniupnp/minixml.h
blob: 6ffb987accdef5deacd1be765e071abb0b705345 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
/* $Id: minixml.h,v 1.6 2006/11/30 11:47:21 nanard Exp $ */
/* minimal xml parser
 *
 * Project : miniupnp
 * Website : http://miniupnp.free.fr/
 * Author : Thomas Bernard
 * Copyright (c) 2005 Thomas Bernard
 * This software is subject to the conditions detailed in the
 * LICENCE file provided in this distribution.
 * */
#ifndef __MINIXML_H__
#define __MINIXML_H__
#define IS_WHITE_SPACE(c) ((c==' ') || (c=='\t') || (c=='\r') || (c=='\n'))

/* if a callback function pointer is set to NULL,
 * the function is not called */
struct xmlparser
{
  const char *xmlstart;
  const char *xmlend;
  const char *xml;              /* pointer to current character */
  int xmlsize;
  void *data;
  void (*starteltfunc) (void *, const char *, int);
  void (*endeltfunc) (void *, const char *, int);
  void (*datafunc) (void *, const char *, int);
  void (*attfunc) (void *, const char *, int, const char *, int);
};

/* parsexml()
 * the xmlparser structure must be initialized before the call
 * the following structure members have to be initialized :
 * xmlstart, xmlsize, data, *func
 * xml is for internal usage, xmlend is computed automatically */
void parsexml (struct xmlparser *);

#endif