X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=sim%2Fucsim%2Fcmd.src%2Fcmdutil.cc;h=d27a335fb1f88c05100efafacd338b7ca27f0d67;hb=95b161f67718bee54c4713e173167a43162a01d9;hp=c56bbe4c0302068deadca59461695b4e72310385;hpb=f27cbdc6513b26748661452e50ed3af99fac16a2;p=fw%2Fsdcc diff --git a/sim/ucsim/cmd.src/cmdutil.cc b/sim/ucsim/cmd.src/cmdutil.cc index c56bbe4c..d27a335f 100644 --- a/sim/ucsim/cmd.src/cmdutil.cc +++ b/sim/ucsim/cmd.src/cmdutil.cc @@ -31,7 +31,10 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA #include #include #include -#ifdef HAVE_SYS_SOCKET_H +#ifdef _WIN32 +# include +# define SOCKET_AVAIL +#elif defined HAVE_SYS_SOCKET_H # include # include # include @@ -118,7 +121,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 +136,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 +195,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 +228,7 @@ interpret_bitname(char *name, class cl_uc *uc, strcat(sym, bitnumstr); *symname= sym; return(DD_TRUE); -} +}*/ /* @@ -287,4 +294,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 */