use getopt from glibc/musl, bug 945335
add missing include, bugs 712586, 896426
fix unprototype functions
--- a/commands.c
+++ b/commands.c
@@ -26,6 +26,7 @@
 #include <errno.h>
 #include <string.h>
 #include <signal.h>
+#include <fcntl.h>
 
 #include "config.h"
 #include "cdtool.h"
--- a/shuffle.c
+++ b/shuffle.c
@@ -59,7 +59,7 @@
  *       you don't like a song.  
  */
 /************************************************************************/
-void huphdl ()
+void huphdl (int signum)
 {
     signal (SIGHUP, huphdl);
     iNext = TRUE;
@@ -79,7 +79,7 @@
  *       stop playing, remove its PID file, and exit. 
  */
 /************************************************************************/
-void inthdl ()
+void inthdl (int signum)
 {
     signal (SIGINT, inthdl);
     iDone = TRUE;
--- a/cdown.c
+++ b/cdown.c
@@ -652,8 +653,6 @@
 /************************************************************************/
 int main(int argc, char *argv[]) {
 
-  extern int	optind, getopt();
-  extern char	*optarg;
   int		iListMode   = FALSE;
   int           error       = 0;
   char          *pszHost    = NULL;
--- a/cdctrl.c
+++ b/cdctrl.c
@@ -247,8 +248,6 @@
 int main (int argc, char *argv[])
 {
     cdtool_t cdtool;
-    extern int optind, getopt();
-    extern char *optarg;
     char *device = NULL;
     int opt=1;
 
--- a/cdtool.c
+++ b/cdtool.c
@@ -68,8 +69,6 @@
 {
   cdtool_t      cdtool;
   int		info=I_AUDIOSTATUS, error=0, opt, trk0=0, trk1=0;
-  extern int	optind, getopt();
-  extern char	*optarg;
 
   char p_format = P_LONG;
   char *device = NULL;
