Change buffer arg of yxml_parse() to void pointer
diff --git a/yxml.c b/yxml.c
index 214d6eb..a7a613f 100644
--- a/yxml.c
+++ b/yxml.c
@@ -322,10 +322,10 @@
 static inline int yxml_refattrval(yxml_t *x, unsigned ch) { return yxml_refend(x, YXML_ATTRVAL); }
 
 
-void yxml_init(yxml_t *x, char *stack, size_t stacksize) {
+void yxml_init(yxml_t *x, void *stack, size_t stacksize) {
 	memset(x, 0, sizeof(*x));
 	x->line = 1;
-	x->stack = (unsigned char *)stack;
+	x->stack = stack;
 	x->stacksize = stacksize;
 	*x->stack = 0;
 	x->elem = x->pi = (char *)x->stack;
diff --git a/yxml.c.in b/yxml.c.in
index 21f9c38..22e0e45 100644
--- a/yxml.c.in
+++ b/yxml.c.in
@@ -258,10 +258,10 @@
 static inline int yxml_refattrval(yxml_t *x, unsigned ch) { return yxml_refend(x, YXML_ATTRVAL); }
 
 
-void yxml_init(yxml_t *x, char *stack, size_t stacksize) {
+void yxml_init(yxml_t *x, void *stack, size_t stacksize) {
 	memset(x, 0, sizeof(*x));
 	x->line = 1;
-	x->stack = (unsigned char *)stack;
+	x->stack = stack;
 	x->stacksize = stacksize;
 	*x->stack = 0;
 	x->elem = x->pi = (char *)x->stack;
diff --git a/yxml.h b/yxml.h
index 101b5ec..cf7cf11 100644
--- a/yxml.h
+++ b/yxml.h
@@ -120,7 +120,7 @@
 } yxml_t;
 
 
-void yxml_init(yxml_t *, char *, size_t);
+void yxml_init(yxml_t *, void *, size_t);
 
 
 yxml_ret_t yxml_parse(yxml_t *, int);
diff --git a/yxml.pod b/yxml.pod
index 7cbfdf2..bb4c6ea 100644
--- a/yxml.pod
+++ b/yxml.pod
@@ -28,7 +28,7 @@
   typedef enum { /* .. */ } yxml_ret_t;
   typedef struct { /* .. */ } yxml_t;
 
-  void yxml_init(yxml_t *x, char *buf, size_t bufsize);
+  void yxml_init(yxml_t *x, void *buf, size_t bufsize);
   yxml_ret_t yxml_parse(yxml_t *x, int ch);
   yxml_ret_t yxml_eof(yxml_t *x);
 
@@ -50,7 +50,7 @@
 =head2 Initialization
 
   #define BUFSIZE 4096
-  char *buf = malloc(BUFSIZE);
+  void *buf = malloc(BUFSIZE);
   yxml_t x;
   yxml_init(&x, buf, BUFSIZE);