* Simulator of microcontrollers (utils.cc)
*
* Copyright (C) 1999,99 Drotos Daniel, Talker Bt.
- *
+ *
* To contact author send email to drdani@mazsola.iit.uni-miskolc.hu
*
*/
*valuep= 0;
i= 0;
while (tokens[i] &&
- strcmp(*option, tokens[i]))
+ strcmp(*option, tokens[i]))
i++;
if (!tokens[i])
*valuep= *option;
}
-char *
+const char *
get_id_string(struct id_element *ids, int id)
{
int i= 0;
- while (ids[i].id_string &&
- id != ids[i].id)
+ while (ids[i].id_string && id != ids[i].id)
i++;
return(ids[i].id_string);
}
-char *
-get_id_string(struct id_element *ids, int id, char *def)
+const char *
+get_id_string(struct id_element *ids, int id, const char *def)
{
- char *s= get_id_string(ids, id);
+ const char *s= get_id_string(ids, id);
return(s?s:def);
}
int
-get_string_id(struct id_element *ids, char *str)
+get_string_id(struct id_element *ids, const char *str)
{
int i= 0;
- while (ids[i].id_string &&
- strcmp(ids[i].id_string, str) != 0)
+ while (ids[i].id_string && strcmp(ids[i].id_string, str) != 0)
i++;
return(ids[i].id);
}
int
-get_string_id(struct id_element *ids, char *str, int def)
+get_string_id(struct id_element *ids, const char *str, int def)
{
int i= 0;
- while (ids[i].id_string &&
- strcmp(ids[i].id_string, str) != 0)
+ while (ids[i].id_string && strcmp(ids[i].id_string, str) != 0)
i++;
return(ids[i].id_string?ids[i].id:def);
}
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);
-static char *
-vformat_string(char *format, va_list ap)
+char *
+format_string(const char *format, ...)
{
+ va_list ap;
+
+ va_start(ap, format);
#ifdef HAVE_VASPRINTF
char *msg= NULL;
vasprintf(&msg, format, ap);
return(msg);
-#else
-# ifdef HAVE_VSNPRINTF
+#elif defined HAVE_VSNPRINTF
char *msg= (char*)malloc(80*25);
vsnprintf(msg, 80*25, format, ap);
return(msg);
-# else
-# ifdef HAVE_VPRINTF
+#elif defined HAVE__VSNPRINTF
char *msg= (char*)malloc(80*25);
- vsprintf(msg, format, ap); /* Dangerous */
+ _vsnprintf(msg, 80*25, format, ap);
return(msg);
-# endif
-# endif
+#else
+#error No vasprintf or vsnprintf
#endif
-}
-
-char *
-format_string(char *format, ...)
-{
- va_list ap;
-
- va_start(ap, format);
- char *s= vformat_string(format, ap);
va_end(ap);
- return(s);
-}
-
-
-void
-print_char_octal(char c, FILE *f)
-{
- if (strchr("\a\b\f\n\r\t\v\"", c))
- switch (c)
- {
- case '\a': fprintf(f, "\a"); break;
- case '\b': fprintf(f, "\b"); break;
- case '\f': fprintf(f, "\f"); break;
- case '\n': fprintf(f, "\n"); break;
- case '\r': fprintf(f, "\r"); break;
- case '\t': fprintf(f, "\t"); break;
- case '\v': fprintf(f, "\v"); break;
- case '\"': fprintf(f, "\""); break;
- }
- else if (isprint(c))
- fprintf(f, "%c", c);
- else
- fprintf(f, "\\%03hho", c);
+ return(msg);
}
-char *
+const char *
object_name(class cl_base *o)
{
- char *name= 0;
+ const char *name= 0;
if (o)
name= o->get_name();
- if (name &&
- *name)
+ if (name && *name)
return(name);
return("(unkown)");
}
char *
-case_string(enum letter_case lcase, char *str)
+case_string(enum letter_case lcase, const char *str)
{
char *p= strdup(str);
char *s= p;
switch (lcase)
{
case case_upper:
- while (p && *p) {
- *p= toupper(*p);
- p++;
- }
+ while (p && *p)
+ {
+ *p= toupper(*p);
+ p++;
+ }
break;
case case_lower:
- while (p && *p) {
- *p= tolower(*p);
- p++;
- }
+ while (p && *p)
+ {
+ *p= tolower(*p);
+ p++;
+ }
break;
case case_case:
if (!p || *p == '\0')
- break;
- while (isspace(*p)) p++;
+ break;
+ while (isspace(*p))
+ p++;
if (*p)
- *p= toupper(*p);
+ *p= toupper(*p);
break;
}
return(s);
}
-/*char *
+/*const char *
case_string(enum letter_case lcase, const char *str)
{
char *p= NIL;