int
chown (char const *file_name, uid_t owner, gid_t group)
{
- eputs ("chown stub\n");
+ static int stub = 0;
+ if (__mes_debug () && !stub)
+ eputs ("chown stub\n");
+ stub = 1;
errno = 0;
return 0;
}
int
ctime (int x)
{
-#if NOISY_TIMES
- eputs ("ctime stub\n");
-#endif
+ static int stub = 0;
+ if (__mes_debug () && !stub)
+ eputs ("ctime stub\n");
+ stub = 1;
errno = 0;
return 0;
}
int
frexp (int x)
{
- eputs ("frexp stub\n");
+ static int stub = 0;
+ if (__mes_debug () && !stub)
+ eputs ("frexp stub\n");
+ stub = 1;
return 0;
}
int
sigsetmask (int x)
{
- eputs ("sigsetmask stub\n");
+ static int stub = 0;
+ if (__mes_debug () && !stub)
+ eputs ("sigsetmask stub\n");
+ stub = 1;
errno = 0;
return 0;
}
int
sys_siglist (int x)
{
- eputs ("sys_siglist stub\n");
+ static int stub = 0;
+ if (__mes_debug () && !stub)
+ eputs ("sys_siglist stub\n");
+ stub = 1;
errno = 0;
return 0;
}
int
umask (int x)
{
- eputs ("umask stub\n");
+ static int stub = 0;
+ if (__mes_debug () && !stub)
+ eputs ("umask stub\n");
+ stub = 1;
errno = 0;
return 0;
}
int
utime (int x)
{
-#if NOISY_TIMES
- eputs ("utime stub\n");
-#endif
+ static int stub = 0;
+ if (__mes_debug () && !stub)
+ eputs ("utime stub\n");
errno = 0;
return 0;
}
int
fscanf (FILE *stream, char const *template, ...)
{
- eputs ("fscan stub\n");
+ static int stub = 0;
+ if (__mes_debug () && !stub)
+ eputs ("fscan stub\n");
+ stub = 1;
return 0;
}
bsearch (void const *key, void const *array, size_t count, size_t size, comparison_fn_t compare)
#endif
{
- eputs ("bsearch stub\n");
+ static int stub = 0;
+ if (__mes_debug () && !stub)
+ eputs ("bsearch stub\n");
+ stub = 1;
return 0;
}
struct tm *
gmtime (time_t const *time)
{
-#if NOISY_TIMES
- eputs ("gmtime stub\n");
-#endif
+ static int stub = 0;
+ if (__mes_debug () && !stub)
+ eputs ("gmtime stub\n");
+ stub = 1;
errno = 0;
return localtime (time);
}
strftime (char *s, size_t size, char const *template,
struct tm const *brokentime)
{
- eputs ("strftime stub\n");
- return template;
+ static int stub = 0;
+ if (__mes_debug () && !stub)
+ eputs ("strftime stub\n");
+ stub = 1;
+ return template;
}
#if !__MESC__
mbstowcs (wchar_t *wstring, char const *string,
size_t size)
{
- eputs ("mbstowcs stub\n");
+ static int stub = 0;
+ if (__mes_debug () && !stub)
+ eputs ("mbstowcs stub\n");
+ stub = 1;
strcpy (wstring, string);
return strlen (string);
}
clock_t
times (struct tms *buffer)
{
-#if NOISY_TIMES
- eputs ("times stub\n");
-#endif
+ static int stub = 0;
+ if (__mes_debug () && !stub)
+ eputs ("times stub\n");
+ stub = 1;
return 0;
}
double
__divdi3 (double a, double b)
{
- eputs ("__divdi3 stub\n");
+ static int stub = 0;
+ if (__mes_debug () && !stub)
+ eputs ("__divdi3 stub\n");
+ stub = 1;
return ((int)a / (int)b);
}
double
__moddi3 (double a, double b)
{
- eputs ("__moddi3 stub\n");
+ static int stub = 0;
+ if (__mes_debug () && !stub)
+ eputs ("__moddi3 stub\n");
+ stub = 1;
return ((int) a %(int)b);
}
struct passwd *
getpwnam (const char *NAME)
{
- eputs ("getpwnam stub\n");
+ static int stub = 0;
+ if (__mes_debug () && !stub)
+ eputs ("getpwnam stub\n");
+ stub = 1;
errno = 0;
return 0;
}
int
__cleanup ()
{
- eputs ("__cleanup stub\n");
+ static int stub = 0;
+ if (__mes_debug () && !stub)
+ eputs ("__cleanup stub\n");
+ stub = 1;
return 0;
}
long double
__floatundixf (unsigned long long a)
{
-#if NOISY_FLOATS
- eputs ("__floatundix stub\n");
-#endif
+ static int stub = 0;
+ if (__mes_debug () && !stub)
+ eputs ("__floatundix stub\n");
+ stub = 1;
return 0;
}
unsigned long long
__fixunsxfdi (double a1)
{
-#if NOISY_FLOATS
- eputs ("__fixunsxfdi stub\n");
-#endif
+ static int stub = 0;
+ if (__mes_debug () && !stub)
+ eputs ("__fixunsxfdi stub\n");
+ stub = 1;
return 0;
}
unsigned long long
__fixdfdi (double a1)
{
-#if NOISY_FLOATS
- eputs ("__fixdfdi stub\n");
-#endif
+ static int stub = 0;
+ if (__mes_debug () && !stub)
+ eputs ("__fixdfdi stub\n");
+ stub = 1;
return 0;
}
unsigned long long
__fixxfdi (double a1)
{
-#if NOISY_FLOATS
- eputs ("__fixxfdi stub\n");
-#endif
+ static int stub = 0;
+ if (__mes_debug () && !stub)
+ eputs ("__fixxfdi stub\n");
+ stub = 1;
return 0;
}
unsigned long long
__fixsfdi (double a1)
{
-#if NOISY_FLOATS
- eputs ("__fixsfdi stub\n");
-#endif
+ static int stub = 0;
+ if (__mes_debug () && !stub)
+ eputs ("__fixsfdi stub\n");
+ stub = 1;
return 0;
}
{
static char buf[256];
char *path = getenv ("PATH");
- if (getenv ("MESC_DEBUG"))
+ if (__mes_debug ())
{
eputs ("\n search-path: "); eputs (file_name); eputs ("\n");
}
end = strchr (path, '\0');
strncpy (buf, path, end - path);
buf[end - path] = 0;
- if (getenv ("MESC_DEBUG"))
+ if (__mes_debug ())
{
eputs (" dir: "); eputs (buf); eputs ("\n");
}
strcat (buf, file_name);
if (!access (buf, X_OK))
{
- if (getenv ("MESC_DEBUG"))
+ if (__mes_debug ())
{
eputs (" found: "); eputs (buf); eputs ("\n");
}
errno = ENOENT;
return -1;
}
- if (getenv ("MESC_DEBUG"))
+ if (__mes_debug ())
{
eputs (" EXEC: "); eputs (file_name); eputs ("\n");
int i = 0;
size_t
fwrite (void const *data, size_t size, size_t count, FILE *stream)
{
- if (getenv ("MESC_DEBUG"))
+ if (__mes_debug ())
{
eputs ("fwrite "); eputs (itoa ((int)stream));
eputs (" "); eputs (itoa (size)); eputs ("\n");
return 0;
int bytes = write ((int)stream, data, size * count);
- if (getenv ("MESC_DEBUG"))
+ if (__mes_debug ())
{
eputs (" => "); eputs (itoa (bytes)); eputs ("\n");
}
FILE*
fopen (char const *file_name, char const *opentype)
{
- if (getenv ("MESC_DEBUG"))
+ if (__mes_debug ())
{
eputs ("fopen "); eputs (file_name);
eputs (" "); eputs (opentype); eputs ("\n");
else
fd = open (file_name, 0, 0);
- if (getenv ("MESC_DEBUG"))
+ if (__mes_debug ())
{
eputs (" => fd="); eputs (itoa (fd)); eputs ("\n");
}
int
gettimeofday (struct timeval *tv, struct timezone *tz)
{
-#if NOISY_TIMES
- eputs ("gettimeofday stub\n");
-#endif
+ static int stub = 0;
+ if (__mes_debug () && !stub)
+ eputs ("gettimeofday stub\n");
+ stub = 1;
errno = 0;
return 0;
}
double
ldexp (double x, int exp)
{
- eputs ("ldexp stub\n");
+ static int stub = 0;
+ if (__mes_debug () && !stub)
+ eputs ("ldexp stub\n");
+ stub = 1;
return 0;
}
struct tm *
localtime (time_t const *timep)
{
-#if NOISY_TIMES
- eputs ("localtime stub\n");
-#endif
+ static int stub = 0;
+ if (__mes_debug () && !stub)
+ eputs ("localtime stub\n");
+ stub = 1;
errno = 0;
return 0;
}
double
strtod (char const *string, char **tailptr)
{
-#if NOISY_FLOATS
- eputs ("strtod stub\n");
-#endif
+ static int stub = 0;
+ if (__mes_debug () && !stub)
+ eputs ("strtod stub\n");
+ stub = 1;
return 0;
}
return abtoi (p, base);
}
-#if 1
-
long long int
strtoll (char const *string, char **tailptr, int base)
{
return strtol (string, tailptr, base);
}
-#else
-
-long long int
-strtoll (char const *string, char **tailptr, int base)
-{
- eputs ("strtoll stub\n");
- return 0;
-}
-
-unsigned long
-strtoul (char const *string, char **tailptr, int base)
-{
- eputs ("strtoul stub\n");
- return 0;
-}
-
-unsigned long long
-strtoull (char const *string, char **tailptr, int base)
-{
- // *endptr = p;
- // return abtoi (endptr, base);
- eputs ("strtoull stub\n");
- return 0;
-}
-
-#endif
-
time_t
time (time_t *tloc)
{
-#if NOISY_TIMES
- eputs ("time stub\n");
-#endif
+ static int stub = 0;
+ if (__mes_debug () && !stub)
+ eputs ("time stub\n");
+ stub = 1;
errno = 0;
return 0;
}
void _env ();
+#define MAX(a, b) (((a) > (b)) ? (a) : (b))
+
+int
+__mes_debug ()
+{
+ static int __mes_debug = -1;
+ if (__mes_debug == -1)
+ {
+ char *p = getenv ("MES_DEBUG");
+ __mes_debug = p ? MAX (itoa (p), 1) : 0;
+ }
+ return __mes_debug;
+}
+
int
getchar ()
{
int
__cleanup ()
{
- eputs ("__cleanup stub\n");
+ static int stub = 0;
+ if (__mes_debug () && !stub)
+ eputs ("__cleanup stub\n");
+ stub = 1;
return 0;
}
int
__libc_subinit ()
{
- eputs ("__libc_subinit stub\n");
+ static int stub = 0;
+ if (__mes_debug () && !stub)
+ eputs ("__libc_subinit stub\n");
+ stub = 1;
return 0;
}
int
__syscall_error ()
{
- eputs ("__syscall_error stub\n");
+ static int stub = 0;
+ if (__mes_debug () && !stub)
+ eputs ("__syscall_error stub\n");
+ stub = 1;
return 0;
}
int
__fpu_control ()
{
- eputs ("__fpu_control stub\n");
+ static int stub = 0;
+ if (__mes_debug () && !stub)
+ eputs ("__fpu_control stub\n");
+ stub = 1;
return 0;
}
int
abort ()
{
- eputs ("abort stub\n");
+ static int stub = 0;
+ if (__mes_debug () && !stub)
+ eputs ("abort stub\n");
+ stub = 1;
return 0;
}
int
atof (int x)
{
- eputs ("atof stub\n");
+ static int stub = 0;
+ if (__mes_debug () && !stub)
+ eputs ("atof stub\n");
+ stub = 1;
return 0;
}
int
fpurge (FILE *stream)
{
- eputs ("fpurge stub\n");
+ static int stub = 0;
+ if (__mes_debug () && !stub)
+ eputs ("fpurge stub\n");
+ stub = 1;
errno = 0;
return 0;
}
size_t
freadahead (FILE *fp)
{
- eputs ("freadahead stub\n");
+ static int stub = 0;
+ if (__mes_debug () && !stub)
+ eputs ("freadahead stub\n");
+ stub = 1;
errno = 0;
return 0;
}
int
pclose (int x)
{
- eputs ("pclose stub\n");
+ static int stub = 0;
+ if (__mes_debug () && !stub)
+ eputs ("pclose stub\n");
+ stub = 1;
errno = 0;
return 0;
}
int
popen (int x)
{
- eputs ("popen stub\n");
+ static int stub = 0;
+ if (__mes_debug () && !stub)
+ eputs ("popen stub\n");
+ stub = 1;
errno = 0;
return 0;
}
int
rewind (int x)
{
- eputs ("rewind stub\n");
+ static int stub = 0;
+ if (__mes_debug () && !stub)
+ eputs ("rewind stub\n");
+ stub = 1;
errno = 0;
return 0;
}
int
setbuf (int x)
{
- eputs ("setbuf stub\n");
+ static int stub = 0;
+ if (__mes_debug () && !stub)
+ eputs ("setbuf stub\n");
+ stub = 1;
errno = 0;
return 0;
}
int
system (int x)
{
- eputs ("system stub\n");
+ static int stub = 0;
+ if (__mes_debug () && !stub)
+ eputs ("system stub\n");
+ stub = 1;
errno = 0;
return 0;
}
-//char const *const sys_errlist[40] = {
char *sys_errlist[] = {
"error 00",
"error 01",
char *
strerror (int errnum)
{
- eputs ("strerror errnum="); eputs (itoa (errnum)); eputs ("\n");
+ if (__mes_debug ())
+ {
+ eputs ("strerror errnum="); eputs (itoa (errnum)); eputs ("\n");
+ }
if (errnum > 0 && errnum <= sys_nerr)
return sys_errlist[errnum];
return "sterror: unknown error";