* sim/ucsim/configure, sim/ucsim/cmd.src/newcmdcl.h,
[fw/sdcc] / sim / ucsim / cmd.src / newcmd.cc
index cf32c05c4f610af5932f7eb0d0be499334679f8e..b43f531bcf05defcf57f5cf8b2ba68948d2d8523 100644 (file)
@@ -32,17 +32,21 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA
 #include <stdarg.h>
 #include <stdlib.h>
 #include <sys/types.h>
-#ifdef HAVE_SYS_SOCKET_H
-# include <sys/socket.h>
-# include <netinet/in.h>
-# include <arpa/inet.h>
-# include <netdb.h>
-#endif
 #include <sys/time.h>
+#ifdef SOCKET_AVAIL
+# include HEADER_SOCKET
+# if defined HAVE_SYS_SOCKET_H
+#  include <netinet/in.h>
+#  include <arpa/inet.h>
+#  include <netdb.h>
+# endif
+#endif
 #if FD_HEADER_OK
 # include HEADER_FD
 #endif
-#include <unistd.h>
+#ifdef HAVE_UNISTD_H
+# include <unistd.h>
+#endif
 #include "i_string.h"
 
 #include "cmdlexcl.h"
@@ -473,7 +477,7 @@ int
 cl_console::input_avail(void)
 {
   struct timeval tv;
-  int i;
+  UCSOCKET_T i;
   
   if ((i= get_in_fd()) < 0)
     return(0);
@@ -777,8 +781,18 @@ cl_commander::init(void)
     add_console(mk_console(port_number_option.get_value((long)0)));
 #endif
 
+  /* The following code is commented out because it produces gcc warnings
+   * newcmd.cc: In member function `virtual int cl_commander::init()':
+   * newcmd.cc:785: warning: 'Config' might be used uninitialized in this function
+   * newcmd.cc:786: warning: 'cn' might be used uninitialized in this function
+   */
+  /*
   char *Config= config_file_option.get_value(Config);
   char *cn= console_on_option.get_value(cn);
+   */
+  /* Here shoud probably be something else, but is still better then the former code... */
+  char *Config= config_file_option.get_value("");
+  char *cn= console_on_option.get_value("");
 
   if (cn)
     {
@@ -792,7 +806,9 @@ cl_commander::init(void)
       exec_on(con, Config);
       need_config= DD_FALSE;
     }
-  if (need_config)
+  if (need_config &&
+      Config &&
+      *Config)
     {
       FILE *fc= fopen(Config, "r");
       if (!fc)
@@ -876,7 +892,7 @@ cl_commander::set_fd_set(void)
   fd_num= 0;
   for (i= 0; i < cons->count; i++)
     {
-      int fd;
+      UCSOCKET_T fd;
       class cl_console *c= (class cl_console*)(cons->at(i));
       if ((fd= c->get_in_fd()) >= 0)
        {
@@ -953,6 +969,16 @@ cl_commander::all_print(char *string, int length)
  * Printing to actual_console
  */
 
+FILE *
+cl_commander::get_out(void)
+{
+  if (actual_console)
+    return(actual_console->get_out());
+  else if (frozen_console)
+    return(frozen_console->get_out());
+  return(0);
+}
+
 int
 cl_commander::dd_printf(char *format, ...)
 {
@@ -1121,7 +1147,7 @@ cl_commander::wait_input(void)
 int
 cl_commander::proc_input(void)
 {
-  int i;
+  UCSOCKET_T i;
 
   for (i= 0; i < fd_num; i++)
     if (FD_ISSET(i, &active_set))