Allow wpp users to undefine previously defined symbols.

diff --git a/tools/wpp/preproc.c b/tools/wpp/preproc.c
index 868a2b0b..90561c0 100644
--- a/tools/wpp/preproc.c
+++ b/tools/wpp/preproc.c
@@ -99,7 +99,7 @@
 }
 
 /* Don't comment on the hash, its primitive but functional... */
-int pphash(char *str)
+static int pphash(const char *str)
 {
 	int sum = 0;
 	while(*str)
@@ -107,7 +107,7 @@
 	return sum % HASHKEY;
 }
 
-pp_entry_t *pplookup(char *ident)
+pp_entry_t *pplookup(const char *ident)
 {
 	int idx = pphash(ident);
 	pp_entry_t *ppp;
@@ -120,7 +120,7 @@
 	return NULL;
 }
 
-void pp_del_define(char *name)
+void pp_del_define(const char *name)
 {
 	int idx;
 	pp_entry_t *ppp;
diff --git a/tools/wpp/wpp.c b/tools/wpp/wpp.c
index 49c2395..04a98ab 100644
--- a/tools/wpp/wpp.c
+++ b/tools/wpp/wpp.c
@@ -58,6 +58,13 @@
 }
 
 
+/* undefine a previously added definition */
+void wpp_del_define( const char *value )
+{
+    pp_del_define( value );
+}
+
+
 /* add a command-line define of the form NAME=VALUE */
 void wpp_add_cmdline_define( const char *value )
 {
diff --git a/tools/wpp/wpp.h b/tools/wpp/wpp.h
index 79abf72..681dca7 100644
--- a/tools/wpp/wpp.h
+++ b/tools/wpp/wpp.h
@@ -24,6 +24,7 @@
 #include <stdio.h>
 
 extern void wpp_add_define( const char *name, const char *value );
+extern void wpp_del_define( const char *name );
 extern void wpp_add_cmdline_define( const char *value );
 extern void wpp_set_debug( int lex_debug, int parser_debug, int msg_debug );
 extern void wpp_set_pedantic( int on );
diff --git a/tools/wpp/wpp_private.h b/tools/wpp/wpp_private.h
index 19b7e51..aa24104 100644
--- a/tools/wpp/wpp_private.h
+++ b/tools/wpp/wpp_private.h
@@ -194,10 +194,10 @@
 void *pp_xmalloc(size_t);
 void *pp_xrealloc(void *, size_t);
 char *pp_xstrdup(const char *str);
-pp_entry_t *pplookup(char *ident);
+pp_entry_t *pplookup(const char *ident);
 pp_entry_t *pp_add_define(char *def, char *text);
 pp_entry_t *pp_add_macro(char *ident, marg_t *args[], int nargs, mtext_t *exp);
-void pp_del_define(char *name);
+void pp_del_define(const char *name);
 FILE *pp_open_include(const char *name, int search, char **newpath);
 void pp_push_if(pp_if_state_t s);
 void pp_next_if_state(int);