* sim/ucsim/configure, sim/ucsim/cmd.src/newcmdcl.h,
[fw/sdcc] / sim / ucsim / cmd.src / cmdutil.cc
index c56bbe4c0302068deadca59461695b4e72310385..793022d6ba46a23e093c3578df5a5e1d57e4aeea 100644 (file)
@@ -31,10 +31,12 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA
 #include <stdlib.h>
 #include <ctype.h>
 #include <sys/types.h>
-#ifdef HAVE_SYS_SOCKET_H
-# include <sys/socket.h>
-# include <netinet/in.h>
-# include <arpa/inet.h>
+#ifdef SOCKET_AVAIL
+# include HEADER_SOCKET
+# if defined HAVE_SYS_SOCKET_H
+#  include <netinet/in.h>
+#  include <arpa/inet.h>
+# endif
 #endif
 #include "i_string.h"
 
@@ -118,7 +120,10 @@ get_name_entry(struct name_entry tabl[], char *name, class cl_uc *uc)
   while (tabl[i].name &&
         (!(tabl[i].cpu_type & uc->type) ||
         (strcmp(tabl[i].name, name) != 0)))
-    i++;
+    {
+      //printf("tabl[%d].name=%s <-> %s\n",i,tabl[i].name,name);
+      i++;
+    }
   if (tabl[i].name != NULL)
     return(&tabl[i]);
   else
@@ -130,7 +135,7 @@ get_name_entry(struct name_entry tabl[], char *name, class cl_uc *uc)
  * Interpreting a bitname
  */
 
-bool
+/*bool
 interpret_bitname(char *name, class cl_uc *uc,
                  uchar **cell, uchar *celladdr,
                  uchar *bitaddr, uchar *bitmask,
@@ -189,7 +194,8 @@ interpret_bitname(char *name, class cl_uc *uc,
        *celladdr= (*bitaddr >> 3) + 0x20;
     }
   // *bitaddr, *celladdr now OK
-  *cell= uc->get_bit/*FIXME*/(*bitaddr);
+  *cell= uc->get_bit//FIXME
+    (*bitaddr);
   *bitmask= BIT_MASK(*bitaddr);
   // making symbolic name
   if (!symname)
@@ -221,7 +227,7 @@ interpret_bitname(char *name, class cl_uc *uc,
   strcat(sym, bitnumstr);
   *symname= sym;
   return(DD_TRUE);
-}
+}*/
 
 
 /*
@@ -287,4 +293,54 @@ proc_escape(char *string, int *len)
 }
 
 
+
+extern "C" int vasprintf(char **strp, const  char *format, va_list ap);
+extern "C" int vsnprintf(char *str, size_t size,const char *format,va_list ap);
+
+int
+cmd_vfprintf(FILE *f, char *format, va_list ap)
+{
+  int ret;
+  if (!f)
+    return(0);
+#ifdef HAVE_VASPRINTF
+  char *msg= NULL;
+  vasprintf(&msg, format, ap);
+  ret= fprintf(f, "%s", msg);
+  free(msg);
+#else
+#  ifdef HAVE_VSNPRINTF
+  char msg[80*25];
+  vsnprintf(msg, 80*25, format, ap);
+  ret= fprintf(f, "%s", msg);
+#  else
+#    ifdef HAVE_VPRINTF
+  char msg[80*25];
+  vsprintf(msg, format, ap); /* Dangerous */
+  ret= fprintf(f, "%s", msg);
+#    else
+#      ifdef HAVE_DOPRNT
+  /* ??? */
+  /*strcpy(msg, "Unimplemented printf has called.\n");*/
+#      else
+  /*strcpy(msg, "printf can not be implemented, upgrade your libc.\n");*/
+#      endif
+#    endif
+#  endif
+#endif
+  fflush(f);
+  return(ret);
+}
+
+int
+cmd_fprintf(FILE *f, char *format, ...)
+{
+  va_list ap;
+  va_start(ap, format);
+  int ret= cmd_vfprintf(f, format, ap);
+  va_end(ap);
+  return(ret);
+}
+
+
 /* End of cmd.src/cmdutil.cc */