*****************************************************************************
* Copyright (C) 2003-2004 Commonwealth Scientific and Industrial Research
* Organisation (CSIRO) Australia
- * Copyright (C) 2000-2004 VideoLAN (Centrale Réseaux) and its contributors
+ * Copyright (C) 2000-2004 the VideoLAN team
*
* $Id$
*
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111, USA.
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
*****************************************************************************/
-
-#include "config.h"
+#ifdef HAVE_CONFIG_H
+# include "config.h"
+#endif
#include <ctype.h>
-#include <string.h>
#include <stdarg.h>
#include <stdio.h>
#include <stdlib.h>
+#include <string.h>
#include <xlist.h>
+#include <assert.h>
+
#undef XTAG_DEBUG
#undef FALSE
char * end;
};
+XTag * xtag_free (XTag * xtag);
+XTag * xtag_new_parse (const char * s, int n);
+char * xtag_get_name (XTag * xtag);
+char * xtag_get_pcdata (XTag * xtag);
+char * xtag_get_attribute (XTag * xtag, char * attribute);
+XTag * xtag_first_child (XTag * xtag, char * name);
+XTag * xtag_next_child (XTag * xtag, char * name);
+int xtag_snprint (char * buf, int n, XTag * xtag);
+
/* Character classes */
#define X_NONE 0
#define X_WHITESPACE 1<<0
}
}
- return;
+ return;
}
#endif
if (xtag == NULL) return NULL;
- if (xtag->name) free (xtag->name);
- if (xtag->pcdata) free (xtag->pcdata);
+ free( xtag->name );
+ free( xtag->pcdata );
for (l = xtag->attributes; l; l = l->next) {
if ((attr = (XAttribute *)l->data) != NULL) {
- if (attr->name) free (attr->name);
- if (attr->value) free (attr->value);
- free (attr);
+ free( attr->name );
+ free( attr->value );
+ free( attr );
}
}
xlist_free (xtag->attributes);
int len, to_copy, total = 0;
va_start (ap, n);
-
+
for (s = va_arg (ap, char *); s; s = va_arg (ap, char *)) {
len = strlen (s);
for (l = xtag->attributes; l; l = l->next) {
attr = (XAttribute *)l->data;
-
+
nn = xtag_snprints (buf, n, " ", attr->name, "=\"", attr->value, "\"",
NULL);
FORWARD(nn);
}
-
+
if (xtag->children == NULL) {
nn = xtag_snprints (buf, n, "/>", NULL);
FORWARD(nn);
return written;
}
-
+
nn = xtag_snprints (buf, n, ">", NULL);
FORWARD(nn);
}