X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=sim%2Fucsim%2Fcmd.src%2Fcmdutil.cc;h=793022d6ba46a23e093c3578df5a5e1d57e4aeea;hb=d46f1ad41d63b49a39c6616a9918a29cbc1755e4;hp=50a90e3e28f2d3b176196385ce3366c30f100994;hpb=8c8f34ff4281a55d2f535335c02999246e9e12f2;p=fw%2Fsdcc diff --git a/sim/ucsim/cmd.src/cmdutil.cc b/sim/ucsim/cmd.src/cmdutil.cc index 50a90e3e..793022d6 100644 --- a/sim/ucsim/cmd.src/cmdutil.cc +++ b/sim/ucsim/cmd.src/cmdutil.cc @@ -31,10 +31,12 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA #include #include #include -#ifdef HAVE_SYS_SOCKET_H -# include -# include -# include +#ifdef SOCKET_AVAIL +# include HEADER_SOCKET +# if defined HAVE_SYS_SOCKET_H +# include +# include +# 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 @@ -288,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 */