--- a/cligen_getline.c
+++ b/cligen_getline.c
@@ -41,12 +41,12 @@
 
 /********************* exported variables ********************************/
 
-int (*gl_in_hook)() = NULL;
-int (*gl_out_hook)() = NULL;
-int (*gl_tab_hook)() = NULL;
-int (*gl_qmark_hook)() = NULL;
-int (*gl_susp_hook)() = NULL;
-int (*gl_interrupt_hook)() = NULL;
+int (*gl_in_hook)(void *, const char *) = NULL;
+int (*gl_out_hook)(void *, const char *) = NULL;
+int (*gl_tab_hook)(cligen_handle, int *) = NULL;
+int (*gl_qmark_hook)(cligen_handle, const char *) = NULL;
+int (*gl_susp_hook)(void *, char *, int, int *) = NULL;
+int (*gl_interrupt_hook)(cligen_handle) = NULL;
 
 /******************** internal interface *********************************/
 
@@ -55,7 +55,7 @@ static void     gl_init1(void);
 static void     gl_cleanup(void);       /* to undo gl_init1 */
 void            gl_char_init(void);     /* get ready for no echo input */
 void            gl_char_cleanup(void);  /* undo gl_char_init */
-static size_t   (*gl_strlen)(const char *) = (size_t(*)())strlen;
+static size_t (*gl_strlen)(const char *) = strlen;
                                         /* returns printable prompt width */
 
 static int      gl_addchar(cligen_handle h, int c);     /* install specified char */
@@ -1409,7 +1409,7 @@ gl_fixup(cligen_handle h,
 /******************* strlen stuff **************************************/
 
 void
-gl_strwidth(size_t (*func)())
+gl_strwidth(size_t (*func)(const char *))
 {
     if (func != 0) {
         gl_strlen = func;
--- a/cligen_getline.h
+++ b/cligen_getline.h
@@ -23,7 +23,7 @@
 /*
  * Types
  */
-typedef size_t (*gl_strwidth_proc)(char *);
+typedef size_t (*gl_strwidth_proc)(const char *);
 
 /*
  * Prototypes
