Hello,
The attached patch fixes the build issues with CDCD.
This is what the patch does:
- Include readline.h in cmd_cdcd.c
- Change the declaration of cdcd_completion parameters (add a const
modifier to the first parameter)
- Remove the casting when assigning to rl_attempted_completion_function
(singe now the types match)
J.
diff -Nur cdcd-0.6.6/cmd_cdcd.c cdcd-0.6.6-new/cmd_cdcd.c
--- cdcd-0.6.6/cmd_cdcd.c 2014-08-07 11:12:25.000000000 -0300
+++ cdcd-0.6.6-new/cmd_cdcd.c 2014-08-07 11:15:19.422590652 -0300
@@ -51,6 +51,15 @@
#include "interface.h"
#include "cmd_edit.h"
+#ifdef READLINE_LIBRARY
+# include "readline.h"
+# include "history.h"
+#else
+# include <readline/readline.h>
+# include <readline/history.h>
+#endif
+
+
Execfunc cmd_play, cmd_access, cmd_ext, cmd_stop, cmd_close,
cmd_pause, cmd_resume, cmd_toggle, cmd_rew, cmd_ff, cmd_rndplay, cmd_next,
cmd_prev, cmd_setvol, cmd_getvol, cmd_status, cmd_info, cmd_tracks,
@@ -1279,7 +1288,7 @@
void
cmd_cdcd_mainloop ()
{
- rl_attempted_completion_function = (CPPFunction *) cdcd_completion;
+ rl_attempted_completion_function = cdcd_completion;
cmd_mainloop (&cdcd_command_matcher, "cdcd> ", cmds);
}
diff -Nur cdcd-0.6.6/cmdline.c cdcd-0.6.6-new/cmdline.c
--- cdcd-0.6.6/cmdline.c 2004-01-30 22:50:32.000000000 -0200
+++ cdcd-0.6.6-new/cmdline.c 2014-08-07 11:10:57.146584946 -0300
@@ -587,7 +587,7 @@
}
char **
-cdcd_completion (char *text, int start, int end)
+cdcd_completion (const char *text, int start, int end)
{
char **matches = NULL;
diff -Nur cdcd-0.6.6/cmdline.h cdcd-0.6.6-new/cmdline.h
--- cdcd-0.6.6/cmdline.h 2004-01-26 21:52:16.000000000 -0200
+++ cdcd-0.6.6-new/cmdline.h 2014-08-07 11:11:19.018585422 -0300
@@ -61,7 +61,7 @@
/* FIXME: this function is hell */
void get_input_text (char *buffer, char *prompt, int len);
char *trackname_matcher (const char *text, int state);
-char **cdcd_completion (char *text, int start, int end);
+char **cdcd_completion (const char *text, int start, int end);
int read_trackname (char *s, int *ret,
struct disc_data *data, struct disc_info *disc);