Fix build with readline 6.3 and newer.
--- modules/clib/system.c.orig	2008-02-23 01:31:15.000000000 -0600
+++ modules/clib/system.c	2015-05-10 05:28:51.000000000 -0500
@@ -5149,7 +5149,7 @@
   return rl_completion_matches(text, my_sym_generator);
 }
 
-static CPPFunction *my_completion_function(void)
+static rl_completion_func_t *my_completion_function(void)
 {
   expr x = mksym(sym(RL_COMPLETION_FUNCTION)), f = eval(x);
   if (f != x && f != completion_function) {
@@ -5157,7 +5157,7 @@
     completion_function = newref(f);
   } else
     dispose(f);
-  return (CPPFunction *) (completion_function?my_sym_completion:NULL);
+  return (rl_completion_func_t *) (completion_function?my_sym_completion:NULL);
 }
 
 static char *my_word_break_characters(void)
@@ -5185,7 +5185,7 @@
     rl_basic_word_break_characters;
   char *save_rl_completer_word_break_characters =
     rl_completer_word_break_characters;
-  CPPFunction *save_rl_attempted_completion_function =
+  rl_completion_func_t *save_rl_attempted_completion_function =
     rl_attempted_completion_function;
   HISTORY_STATE *save_hist = history_get_history_state();
   int histmax = unstifle_history();
--- src/q.c.orig	2007-10-27 13:59:05.000000000 -0500
+++ src/q.c	2015-05-10 05:29:08.000000000 -0500
@@ -652,7 +652,7 @@
 {
   rl_readline_name = "Q";
   rl_basic_word_break_characters = " \t\n\"\\'`@$><=,;|%&~{[(";
-  rl_attempted_completion_function = (CPPFunction *)sym_completion;
+  rl_attempted_completion_function = (rl_completion_func_t *)sym_completion;
   save_hist = history_get_history_state();
 }
 
