X-Authentication-Warning: delorie.com: mailnull set sender to djgpp-workers-bounces using -f Sender: rich AT phekda DOT freeserve DOT co DOT uk Message-ID: <3C26705E.59767514@phekda.freeserve.co.uk> Date: Mon, 24 Dec 2001 00:01:34 +0000 From: Richard Dawe X-Mailer: Mozilla 4.77 [en] (X11; U; Linux 2.2.19 i586) X-Accept-Language: de,fr MIME-Version: 1.0 To: djgpp-workers AT delorie DOT com Subject: Re: RESEND: Patch to computer st_blksize in struct stat References: Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Reply-To: djgpp-workers AT delorie DOT com Hello. Eli Zaretskii wrote: > > On Sat, 1 Dec 2001, Richard Dawe wrote: > > > AFAIK snprintf() & vsnprintf() are part of C99. > > Perhaps someone could go through C99 and the latest Posix draft, and > add all of the new functions there to the relevant lists, even if we > don't have these functions yet. I had a look through draft 7, the pre-approval draft, of the new POSIX standard. Below is a diff. Here's what it contains: * There are updates for the ANSI C section. The function descriptions indicate which functions were taken from the ISO C99 standard and updated. Someone with access to the C99 standard should probably check the ANSI C section. * The basic POSIX functions. The only optional section included is the legacy section - realtime, threads, tracing, etc. are not included. We seem to have most of the legacy functions in libc already. * Some of the functions may be associated with threading, e.g., *_r() like ttyname_r() or sched_yield(), but I included them anyway. The socket functions are included in the base standard. As you'll see, there are a lot of new functions. OK to commit? Thanks, bye, Rich =] -- Richard Dawe [ http://www.phekda.freeserve.co.uk/richdawe/ ] Index: check.cc =================================================================== RCS file: /cvs/djgpp/djgpp/tests/libclink/check.cc,v retrieving revision 1.5 diff -p -c -3 -r1.5 check.cc *** check.cc 2001/12/02 10:21:45 1.5 --- check.cc 2001/12/23 23:50:25 *************** char *predefs[] = { "main", "edata", "en *** 20,69 **** not a function, and we can't stub it. ctime() sets tzname, and ctime is ANSI and tzname is POSIX. Sigh. */ ! char *ansi_fns[] = { "abort", "abs", "acos", "asctime", "asin", ! "atan", "atan2", "atexit", "atof", "atoi", "atol", "bsearch", ! "calloc", "ceil", "clearerr", "clock", "cos", "cosh", "ctime", ! "difftime", "div", "errno", "exit", "exp", "fabs", "fclose", "feof", ! "ferror", "fflush", "fgetc", "fgetpos", "fgets", "floor", "fmod", ! "fopen", "fprintf", "fputc", "fputs", "fread", "free", "freopen", ! "frexp", "fscanf", "fseek", "fsetpos", "ftell", "fwrite", "getc", ! "getchar", "getenv", "gets", "gmtime", "isalnum", "isalpha", ! "iscntrl", "isdigit", "isgraph", "islower", "isprint", "ispunct", ! "isspace", "isupper", "isxdigit", "labs", "ldexp", "ldiv", ! "localeconv", "localtime", "log", "log10", "longjmp", "main", ! "malloc", "mblen", "mbstowcs", "mbtowc", "memchr", "memcmp", "memcpy", ! "memmove", "memset", "mktime", "modf", "perror", "pow", "printf", ! "putc", "putchar", "puts", "qsort", "raise", "rand", "realloc", ! "remove", "rename", "rewind", "scanf", "setbuf", "setjmp", ! "setlocale", "setvbuf", "signal", "sin", "sinh", "snprintf", "sprintf", "sqrt", "srand", "sscanf", "strcat", "strchr", "strcmp", "strcoll", "strcpy", "strcspn", "strerror", "strftime", "strlen", "strncat", "strncmp", ! "strncpy", "strpbrk", "strrchr", "strspn", "strstr", "strtod", ! "strtok", "strtol", "strtoul", "strxfrm", "system", "tan", "tanh", ! "time", "tmpfile", "tmpnam", "tolower", "toupper", "tzname", "ungetc", ! "vfprintf", "vprintf", "vsnprintf", "vsprintf", "wcstombs", "wctomb", 0 }; ! char *posix_fns[] = { "_exit", "access", "alarm", "cfgetispeed", ! "cfgetospeed", "cfsetispeed", "cfsetospeed", "chdir", "chmod", ! "chown", "close", "closedir", "confstr", "creat", "ctermid", "dup", ! "dup2", "execl", "execle", "execlp", "execv", "execve", "execvp", ! "fcntl", "fdopen", "fileno", "fnmatch", "fnmatch", "fork", ! "fpathconf", "fpathconf", "fstat", "getcwd", "getegid", "geteuid", ! "getgid", "getgrgid", "getgrnam", "getgroups", "getlogin", "getopt", ! "getpgrp", "getpid", "getppid", "getpwnam", "getpwuid", "getuid", ! "glob", "glob", "globfree", "globfree", "isatty", "kill", "link", ! "lseek", "mkdir", "mkfifo", "open", "opendir", "optarg", "opterr", ! "optind", "optopt", "pathconf", "pathconf", "pause", "pclose", "pipe", ! "popen", "read", "readdir", "regcomp", "regerror", "regexec", ! "regfree", "rewinddir", "rmdir", "setgid", "setpgid", "setsid", ! "setuid", "sigaction", "sigaddset", "sigdelset", "sigemptyset", ! "sigfillset", "sigismember", "siglongjmp", "sigpending", ! "sigprocmask", "sigsetjmp", "sigsuspend", "sleep", "stat", "sysconf", ! "sysconf", "tcdrain", "tcflow", "tcflush", "tcgetattr", "tcgetpgrp", ! "tcsendbreak", "tcsetattr", "tcsetpgrp", "times", "ttyname", "tzset", ! "umask", "uname", "unlink", "utime", "wait", "waitpid", "wordexp", ! "wordfree", "write", 0 }; #define Tansi 0x01 #define Tposix 0x02 --- 20,187 ---- not a function, and we can't stub it. ctime() sets tzname, and ctime is ANSI and tzname is POSIX. Sigh. */ ! char *ansi_fns[] = { "_Exit", "abort", "abs", "acos", "acosf", "acosl", ! "acosh", "acoshf", "acoshl", "asctime", "asin", "asinf", "asinl", ! "asinh", "asinhf", "asinhl", "atan", "atanf", "atanl", ! "atan2", "atan2f", "atan2l", "atanh", "atanhf", "atanhl", ! "atexit", "atof", "atoi", "atol", "atoll", "bsearch", "btowc", ! "cabs", "cabsf", "cabsl", "cacos", "cacosf", "cacosl", ! "cacosh", "cacoshf", "cacoshl", "calloc", "carg", "cargf", "cargl", ! "casin", "casinf", "casinl", "casinh", "casinhf", "casinhl", ! "catan", "catanf", "catanl", "catanh", "catanhf", "catanhl", ! "cbrt", "cbrtf", "cbrtl", "ccos", "ccosf", "ccosl", ! "ccosh", "ccoshf", "ccoshl", "ceil", "ceilf", "ceill", ! "cexp", "cexpf", "cexpl", "cimag", "cimagf", "cimagl", ! "clearerr", "clock", "clog", "clogf", "clogl", "conj", "conjf", "conjl", ! "copysign", "copysignf", "copysignl", "cos", "cosf", "cosl", ! "cosh", "coshf", "coshl", "cpow", "cpowf", "cpowl", ! "cproj", "cprojf", "cprojl", "creal", "crealf", "creall", ! "csin", "csinf", "csinl", "csinh", "csinhf", "csinhl", ! "csqrt", "csqrtf", "csqrtl", "ctan", "ctanf", "ctanl", ! "ctanh", "ctanhf", "ctanhl", "ctime", "difftime", "div", ! "erf", "erff", "erfl", "erf", "erfcf", "erfcl", "errno", "exit", ! "exp", "expf", "expl", "exp2", "exp2f", "exp2l", ! "expm1", "expm1f", "expm1l", "fabs", "fabsf", "fabsl", "fclose", ! "fdim", "fdimf", "fdiml", "feclearexcept", "fegetenv", "fegetexceptflag", ! "fegetround", "feholdexcept", "feof", "feraiseexcept", "ferror", ! "fesetenv", "fesetexceptflag", "fesetround", "fetestexcept", ! "feupdateenv", "fflush", "fgetc", "fgetpos", "fgets", "fgetwc", "fgetws", ! "floor", "floorf", "floorl", "fma", "fmaf", "fmal", ! "fmax", "fmaxf", "fmaxl", "fmin", "fminf", "fminl", ! "fmod", "fmodf", "fmodl", "fopen", "fpclassify", "fprintf", ! "fputc", "fputs", "fputwc", "fputws", "fread", "free", "freopen", ! "frexp", "frexpf", "frexpl", "fscanf", "fseek", "fsetpos", "ftell", ! "fwide", "fwprintf", "fwrite", "fwscanf", "getc", ! "getchar", "getenv", "gets", "getwc", "getwchar", "gmtime", ! "hypot", "hypotf", "hypotl", "ilogb", "ilogbf", "ilogbl", ! "imaxabs", "imaxdiv", "isalnum", "isalpha", "isblank", ! "iscntrl", "isdigit", "isfinite", "isgraph", "isgreater", ! "isgreaterequal", "isinf", "isless", "islessequal", "islessgreater", ! "islower", "isnan", "isnormal", "isprint", "ispunct", ! "isspace", "isunordered", "isupper", "iswalnum", "iswalpha", "iswblank", ! "iswcntrl", "iswctype", "iswdigit", "iswgraph", "iswlower", "iswprint", ! "iswpunct", "iswspace", "iswupper", "iswxdigit", "isxdigit", ! "j0", "j1", "jn", "labs", "llabs", "ldexp", "ldexpf", "ldexpl", ! "ldiv", "lldiv", "lgamma", "lgammaf", "lgammal", ! "llrint", "llrintf", "llrintl", "llround", "llroundf", "llroundl", ! "localeconv", "localtime", "log", "logf", "logl", ! "log10", "log10f", "log10l", "log1p", "log1pf", "log1pl", ! "log2", "log2f", "log2l", "logb", "logbf", "logbl", ! "lrint", "lrintf", "lrintl", "lround", "lroundf", "lroundl", ! "longjmp", "main", "malloc", "mblen", "mbrlen", "mbrtowc", "mbsinit", ! "mbsrtowcs", "mbstowcs", "mbtowc", "memccpy", "memchr", "memcmp", ! "memcpy", "memmove", "memset", "mktime", ! "modf", "modff", "modfl", "nan", "nanf", "nanl", ! "nearbyint", "nearbyintf", "nearbyintl", ! "nextafter", "nextafterf", "nextafterl", ! "nexttoward", "nexttowardf", "nexttowardl", "perror", ! "pow", "powf", "powl", "printf", "putc", "putchar", "puts", ! "putwc", "putwchar", "qsort", "raise", "rand", "realloc", ! "remainder", "remainderf", "remainderl", ! "remove", "remquo", "remquof", "remquol", "rename", "rewind", ! "rint", "rintf", "rintl", "round", "roundf", "roundl", ! "scalbln", "scalblnf", "scalblnl", "scalbn", "scalbnf", "scalbnl", ! "scanf", "setbuf", "setjmp", "setlocale", "setvbuf", ! "signal", "signbit", "signum", "sin", "sinf", "sinl", ! "sinh", "sinhf", "sinhl", "snprintf", "sprintf", ! "sqrt", "sqrtf", "sqrtl", "srand", "sscanf", "strcat", "strchr", "strcmp", "strcoll", "strcpy", "strcspn", "strerror", "strftime", "strlen", "strncat", "strncmp", ! "strncpy", "strpbrk", "strrchr", "strspn", "strstr", ! "strtod", "strtof", "strtoimax", "strtok", ! "strtol", "strtold", "strtoll", "strtoul", "strtoull", ! "strtoumax", "strxfrm", "swprinf", "swscanf", "system", ! "tan", "tanf", "tanl", "tanh", "tanhf", "tanhl", ! "tgamma", "tgammaf", "tgammal", "time", "tmpfile", "tmpnam", ! "tolower", "toupper", "towctrans", "towlower", "towupper", ! "trunc", "truncf", "truncl", "tzname", "ungetc", "ungetwc", ! "vfprintf", "vfscanf", "vfwprintf", "vfwscanf", "vprintf", ! "vscanf", "vsnprintf", "vsprintf", "vsscanf", "vswprintf", "vswscanf", ! "vwprintf", "vwscanf", "wcstombs", "wcrtomb", "wcstat", ! "wcschr", "wcscmp", "wcscoll", "wcscpy", "wcscspn", "wcsftime", ! "wcslen", "wcsncat", "wcsncmp", "wcsncpy", "wcspbrk", "wcsrchr", ! "wcsrtombs", "wcsspn", "wcsstr", "wcstod", "wcstof", ! "wcstoimax", "wcstok", "wcstol", "wcstold", "wcstoll", ! "wcstombs", "wcstoul", "wcstoull", "wcstoumax", ! "wcswidth", "wcsxfrm", "wctob", "wctomb", "wctrans", ! "wctype", "wcwidth", "wmemchr", "wmemcmp", "wmemcpy", ! "wmemmove", "wmemset", "wscanf", "wprintf", 0 }; ! char *posix_fns[] = { "_exit", "_longjmp", "_setjmp", ! "_tolower", "_toupper", "a64l", "accept", "access", "alarm", ! "asctime_r", "basename", "bcmp", "bcopy", "bind", "bzero", ! "catclose", "catgets", "catopen", ! "cfgetispeed", "cfgetospeed", "cfsetispeed", "cfsetospeed", ! "chdir", "chmod", "chown", "close", "closedir", "closelog", ! "confstr", "connect", "creat", "ctermid", "ctime_r", ! "dbm_clearerr", "dbm_close", "dbm_delete", "dbm_error", "dbm_fetch", ! "dbm_firstkey", "dbm_nextkey", "dbm_open", "dbm_store", "dirname", ! "dlclose", "dlerror", "dlopen", "dlsym", "drand48", "dup", "dup2", ! "ecvt", "endgrent", "endhostent", "endnetent", "endprotoent", "endpwent", ! "endservent", "endutxent", "erand48", ! "execl", "execle", "execlp", "execv", "execve", "execvp", ! "fchdir", "fchmod", "fchown", "fcntl", "fcvt", "fdopen", "ffs", "fileno", ! "flockfile", "fmtmsg", "fnmatch", "fork", "fpathconf", "freeaddrinfo", ! "fseeko", "fstat", "fstatvfs", "fsync", "ftello", "ftime", "ftok", ! "ftruncate", "ftrylockfile", "ftw", "funlockfile", "gcvt", "getaddrinfo", ! "getc_unlocked", "getchar_unlocked", "getcontext", "getcwd", ! "getdate", "getegid", "geteuid", "getgid", "getgrent", ! "getgrgid", "getgrgid_r", "getgrnam", "getgrnam_r", "getgroups", ! "gethostbyaddr", "gethostbyname", "gethostent", "gethostid", ! "gethostname", "getitimer", "getlogin", "getlogin_r", "getnameinfo", ! "getnetbyaddr", "getnetbyname", "getnetent", "getpeername", ! "getprotobyname", "getprotobynumber", "getprotoent", "getopt", ! "getpgid", "getpgrp", "getpid", "getppid", "getpriority", "getpwent", ! "getpwnam", "getpwnam_r", "getpwuid", "getpwuid_r", "getrlimit", ! "getrusage", "getservbyname", "getservbyport", "getservent", "getsid", ! "getsockname", "getsockopt", "getsubopt", "gettimeofday", ! "getuid", "getutxent", "getutxid", "getutxline", "getwd", ! "glob", "globfree", "gmtime_r", "grantpt", ! "h_errno", "hcreate", "hdestroy", "hsearch", ! "htonl", "htons", "iconv", "iconv_close", "iconv_open", ! "if_freenameindex", "if_indextoname", "if_nameindex", "if_nametoindex", ! "index", "inet_addr", "inet_ntoa", "inet_ntop", "inet_pton", ! "initstate", "insque", "isascii", "isatty", ! "jrand48", "kill", "killpg", "l64a", "lchown", ! "lcong48", "lfind", "link", "listen", "localtime_r", "lockf", ! "lrand48", "lsearch", "lseek", "lstat", "makecontext", ! "mkdir", "mkfifo", "mknod", "mkstemp", "mktemp", "mmap", "mprotect", ! "mrand48", "msgctl", "msgget", "msgrcv", "msgsnd", "msync", ! "munmap", "nftw", "nice", "nl_langinfo", "nrand48", "ntohl", "ntohs", ! "open", "opendir", "openlog", "optarg", "opterr", "optind", "optopt", ! "pathconf", "pause", "pclose", "pipe", "poll", "popen", "pread", ! "pselect", "putc_unlocked", "putchar_unlocked", "putenv", ! "pututxline", "pwrite", "rand_r", "random", "read", ! "readdir", "readdir_r", "readlink", "readv", "realpath", ! "recv", "recvfrom", "recvmsg", ! "regcomp", "regerror", "regexec", "regfree", "remque", "rewinddir", ! "rindex", "rmdir", "scalb", "sched_yield", "seed48", ! "seekdir", "select", "semctl", "semget", "semop", ! "send", "sendmsg", "sendto", "setcontext", "setegid", "setenv", "seteuid", ! "setgid", "setgrent", "sethostent", "setitimer", "setlogmask", ! "setnetent", "setpgid", "setpgrp", "setpriority", "setprotoent", ! "setpwent", "setregid", "setreuid", "setrlimit", "setservent", "setsid", ! "setsockopt", "setstate", "setuid", "setutxent", ! "shmat", "shmctl", "shmdt", "shmget", "shutdown", ! "sigaction", "sigaddset", "sigaltstack", "sigdelset", "sigemptyset", ! "sigfillset", "sighold", "sigignore", "siginterrupt", "sigismember", ! "siglongjmp", "sigpause", "sigpending", "sigprocmask", "sigrelse", ! "sigset", "sigsetjmp", "sigsuspend", "sigwait", "sleep", ! "sockatmark", "socket", "socketpair", "srand48", ! "srandom", "stat", "statvfs", "strcasecmp", "strncasecmp", "strdup", ! "strerror_r", "strfmon", "strftime", "strptime", "strtok_r", ! "swab", "swapcontext", "symlink", "sync", "sysconf", "syslog", ! "tcdrain", "tcflow", "tcflush", "tcgetattr", "tcgetpgrp", ! "tcgetsid", "tcsendbreak", "tcsetattr", "tcsetpgrp", ! "tdelete", "telldir", "tempnam", "tfind", "times", "toascii", ! "truncate", "tsearch", "ttyname", "ttyname_r", ! "twalk", "tzset", "ualarm", "ulimit", "umask", "uname", ! "unlink", "unlockpt", "unsetenv", "usleep", "utime", "utime", ! "vfork", "wait", "waitid", "waitpid", ! "wcswcs", "wordexp", "wordfree", "write", "writev", ! "y0", "y1", "yn", 0 ! }; #define Tansi 0x01 #define Tposix 0x02