--- neoXcute.c	2000-04-20 09:16:00.000000000 -0400
+++ neoXcute.c	2010-01-18 01:13:14.000000000 -0500
@@ -45,5 +45,7 @@
 #endif
 
+#include <errno.h>
 #include <signal.h>
+#include <string.h>
 #include <unistd.h>
 #include <fcntl.h>
@@ -55,8 +57,4 @@
 #include "neoXcute.h"
 
-extern char *strerror();
-
-extern int errno;
-
 static char cute_expectbuf[2048];
 
@@ -86,9 +84,15 @@
 int cute_bufindex = 0;
 
-void
-ppanic(s, fileName, lineNumber)
-char *s;
-char *fileName;
-int lineNumber;
+static Tcl_CmdProc Cute_Cmd, Cute_BreakLineCmd,
+    Cute_CaptureCmd, Cute_CloseLineCmd,
+    Cute_ConnectCmd, Cute_DisconnectCmd,
+    Cute_ExpectCmd, Cute_FlushLineCmd,
+    Cute_GetLineCmd, Cute_HangupCmd,
+    Cute_OpenLineCmd, Cute_ParityCmd,
+    Cute_SendCmd, Cute_SlowSendCmd,
+    Cute_SelectSpeedCmd;
+
+static void
+ppanic(const char *s, const char *fileName, int lineNumber)
 {
     fflush (stdout);
@@ -97,9 +101,9 @@
     perror (s);
     fflush (stderr);
-    panic ();
+    abort ();
 }
 
 /* dump a buffer of a specified length, printing preamble and exit text */
-void
+static void
 cute_dumpbuf(char *preamble, char *buf, int len, char *exitText)
 {
@@ -122,6 +126,6 @@
  * way we can timeout input, get stuff without a newline, etc, etc. */
 
-void
-cute_term_setup()
+static void
+cute_term_setup(void)
 {
     if (ioctl (0, TCGETA, &cute_orig_term_settings) < 0) {
@@ -157,6 +161,6 @@
 /* Put the user's terminal in a mode where we read as many characters as
  * are there but it returns in a tenth of a second. */
-void
-cute_timeout_single_char_mode()
+static void
+cute_timeout_single_char_mode(void)
 {
     if (cute_noControllingTerminal) panic("no controlling terminal");
@@ -168,6 +172,6 @@
 }
 
-void
-cute_orig_line_mode()
+static void
+cute_orig_line_mode(void)
 {
     if (ioctl (cute_linefd, TCSETA, &cute_orig_line_settings) < 0) {
@@ -176,6 +180,6 @@
 }
 
-void
-cute_async_line_mode()
+static void
+cute_async_line_mode(void)
 {
     cute_async_line_settings.c_cc[VTIME] = 0;
@@ -187,6 +191,6 @@
 
 /* Restore the user's terminal to its original settings */
-void
-cute_orig_term_mode()
+static void
+cute_orig_term_mode(void)
 {
     if (cute_noControllingTerminal) return;
@@ -198,6 +202,6 @@
 /* Put the user's terminal in a mode where we can read one character at a time.
  */
-void
-cute_single_char_mode()
+static void
+cute_single_char_mode(void)
 {
     if (cute_noControllingTerminal) panic ("no controlling terminal");
@@ -212,6 +216,6 @@
  * interval.  */
 
-int 
-cute_getachar()		/* return a char or -1 after timeout */
+static int 
+cute_getachar(void)	/* return a char or -1 after timeout */
 {
     char c;
@@ -226,6 +230,6 @@
 
 /* goodbye - clean up and dump out */
-void
-cute_comm_goodbye()
+static void
+cute_comm_goodbye(void)
 {
     cute_orig_term_mode();
@@ -241,5 +245,5 @@
 
 /* Cute_Nap - nap for the specified number of milliseconds */
-void
+static void
 Cute_Nap (int ms)
 {
@@ -269,10 +273,10 @@
  *----------------------------------------------------------------------
  */
-int
+static int
 Cute_OpenLineCmd(clientData, interp, argc, argv)
-    char *clientData;
+    void *clientData;
     Tcl_Interp *interp;
     int argc;
-    char **argv;
+    const char *argv[];
 {
     if (argc != 2) {
@@ -338,8 +342,8 @@
 int
 Cute_CloseLineCmd(clientData, interp, argc, argv)
-    char *clientData;
+    void *clientData;
     Tcl_Interp *interp;
     int argc;
-    char **argv;
+    const char *argv[];
 {
     if (argc != 1) {
@@ -365,8 +369,8 @@
 int
 Cute_ParityCmd(clientData, interp, argc, argv)
-    char *clientData;
+    void *clientData;
     Tcl_Interp *interp;
     int argc;
-    char **argv;
+    const char *argv[];
 {
     int cflag;
@@ -432,11 +436,11 @@
 int
 Cute_SelectSpeedCmd(clientData, interp, argc, argv)
-    char *clientData;
+    void *clientData;
     Tcl_Interp *interp;
     int argc;
-    char **argv;
+    const char *argv[];
 {
     int bps_bits;
-    static unsigned bits_per_second = 0;
+    static int bits_per_second = 0;
 
     if (argc == 1) {
@@ -472,5 +476,5 @@
 #endif
 
-    if (!TclX_StrToUnsigned (argv[1], 0, &bits_per_second)) {
+    if (Tcl_GetInt(interp, argv[1], &bits_per_second) != TCL_OK) {
 	Tcl_AppendResult (interp, argv[0], 
 	                  ": unrecognizable baud rate ", argv[1],
@@ -591,8 +595,6 @@
 }
 
-int
-cute_isline_up(interp, cmd)
-Tcl_Interp *interp;
-char *cmd;
+static int
+cute_isline_up(Tcl_Interp *interp, const char *cmd)
 {
     if (cute_line_up) return TCL_OK;
@@ -614,8 +616,8 @@
 int
 Cute_SendCmd(clientData, interp, argc, argv)
-    char *clientData;
+    void *clientData;
     Tcl_Interp *interp;
     int argc;
-    char **argv;
+    const char *argv[];
 {
     int nocr = 0;
@@ -648,6 +650,6 @@
 }
 
-void
-cute_disconnect()
+static void
+cute_disconnect(void)
 {
     cute_interactive_connect = 0;
@@ -660,10 +662,8 @@
 */
 
-void
-cute_capture(buf, len)
-char *buf;
-int len;
+static void
+cute_capture(char *buf, int len)
 {
-    static previous_was_cr = 0;
+    static int previous_was_cr = 0;
     char c;
     static char cr = '\r';
@@ -706,8 +706,8 @@
 int
 Cute_CaptureCmd(clientData, interp, argc, argv)
-    char *clientData;
+    void *clientData;
     Tcl_Interp *interp;
     int argc;
-    char **argv;
+    const char *argv[];
 {
     if (argc != 2) {
@@ -721,5 +721,5 @@
     }
 
-    if (Tcl_GetOpenFile (interp, argv[1], 1, 1, &cute_captureFileP) != TCL_OK) {
+    if (Tcl_GetOpenFile (interp, argv[1], 1, 1, (ClientData *)&cute_captureFileP) != TCL_OK) {
 	cute_captureFileP = NULL;
 	return TCL_ERROR;
@@ -741,8 +741,8 @@
 int
 Cute_ConnectCmd(clientData, interp, argc, argv)
-    char *clientData;
+    void *clientData;
     Tcl_Interp *interp;
     int argc;
-    char **argv;
+    const char *argv[];
 {
     int c;
@@ -840,8 +840,8 @@
 int
 Cute_DisconnectCmd(clientData, interp, argc, argv)
-    char *clientData;
+    void *clientData;
     Tcl_Interp *interp;
     int argc;
-    char **argv;
+    const char *argv[];
 {
     cute_disconnect ();
@@ -861,8 +861,8 @@
 int
 Cute_HangupCmd(clientData, interp, argc, argv)
-    char *clientData;
+    void *clientData;
     Tcl_Interp *interp;
     int argc;
-    char **argv;
+    const char *argv[];
 {
     cute_comm_goodbye ();
@@ -882,8 +882,8 @@
 int
 Cute_SlowSendCmd(clientData, interp, argc, argv)
-    char *clientData;
+    void *clientData;
     Tcl_Interp *interp;
     int argc;
-    char **argv;
+    const char *argv[];
 {
     int j, len;
@@ -944,8 +944,8 @@
 int
 Cute_GetLineCmd(clientData, interp, argc, argv)
-    char *clientData;
+    void *clientData;
     Tcl_Interp *interp;
     int argc;
-    char **argv;
+    const char *argv[];
 {
     int newlineIndex;
@@ -962,5 +962,5 @@
 
     if (argc == 3) {
-        if (!TclX_StrToInt (argv[2], 10, &timeout_seconds)) {
+        if (Tcl_GetInt(interp, argv[2], &timeout_seconds) != TCL_OK) {
 	    Tcl_AppendResult(interp, "bad timeout arg: ", argv[0], 
 			     " varName ", argv[2], (char *)NULL);
@@ -1068,8 +1068,8 @@
 int
 Cute_ExpectCmd(clientData, interp, argc, argv)
-    char *clientData;
+    void *clientData;
     Tcl_Interp *interp;
     int argc;
-    char **argv;
+    const char *argv[];
 {
     int timeout_seconds;
@@ -1101,5 +1101,5 @@
     }
 
-    if (!TclX_StrToInt (argv[1], 10, &timeout_seconds)) {
+    if (Tcl_GetInt(interp, argv[1], &timeout_seconds) != TCL_OK) {
         Tcl_AppendResult (interp, "bad timeout value: ", argv[0],
             ": ", argv[1], (char *)NULL);
@@ -1218,8 +1218,8 @@
 int
 Cute_FlushLineCmd(clientData, interp, argc, argv)
-    char *clientData;
+    void *clientData;
     Tcl_Interp *interp;
     int argc;
-    char **argv;
+    const char *argv[];
 {
     int flusharg;
@@ -1243,5 +1243,5 @@
     if (cute_isline_up(interp, argv[0]) == TCL_ERROR) return TCL_ERROR;
 
-    if (ioctl(cute_linefd, TCFLSH, (struct termio *) flusharg) < 0) {
+    if (ioctl(cute_linefd, TCFLSH, flusharg) < 0) {
         perror("flushing remote line");
     }
@@ -1260,8 +1260,8 @@
 int
 Cute_BreakLineCmd(clientData, interp, argc, argv)
-    char *clientData;
+    void *clientData;
     Tcl_Interp *interp;
     int argc;
-    char **argv;
+    const char *argv[];
 {
     if (cute_isline_up(interp, argv[0]) == TCL_ERROR) return TCL_ERROR;
@@ -1274,6 +1274,6 @@
 
 struct cuteCommandStruct {
-    const char *name;
-    int (*function)();
+    const char	*name;
+    Tcl_CmdProc	*function;
 };
 
@@ -1298,8 +1298,8 @@
 int
 Cute_Cmd(clientData, interp, argc, argv)
-    char *clientData;
+    void *clientData;
     Tcl_Interp *interp;
     int argc;
-    char **argv;
+    const char *argv[];
 {
     struct cuteCommandStruct *cmdptr = cuteCommands;
