diff --git a/winsup/mingw/ChangeLog b/winsup/mingw/ChangeLog index ed4487b1d..7377aba9b 100644 --- a/winsup/mingw/ChangeLog +++ b/winsup/mingw/ChangeLog @@ -1,3 +1,20 @@ +2002-03-26 Danny Smith + + * moldname.def.in (__MSVCRT__): Replace with !(__CRTDLL). + (wpopen): Add if !(__CRTDLL). + * Makefile.in (moldname-msvcrt.def rule): Use -C, not -c to + preserve comments. + (moldname-crtdll.def rule): Likewise. + * moldname-msvcrt.def: Regenerate. + * moldname-crtdll.def: Regenerate. + * include/stdio.h (wpopen):Use prototype, not a define. + (_swnprintf): Add prototype. + (_vswnprintf}: Likewise. + Tidy up whitespace. + * include/wchar.h (_swnprintf): Add prototype. + (_vswnprintf): Likewise. + Tidy up whitespace. + 2002-01-28 Danny Smith * include/malloc.h (_heapinfo): Correct structure definition. diff --git a/winsup/mingw/Makefile.in b/winsup/mingw/Makefile.in index 78fb18f4a..6cbf0ad54 100644 --- a/winsup/mingw/Makefile.in +++ b/winsup/mingw/Makefile.in @@ -218,13 +218,13 @@ libmingw32.a: $(MINGW_OBJS) $(srcdir)/moldname-crtdll.def: moldname.def.in $(CC) -DRUNTIME=crtdll \ -D__FILENAME__=moldname-crtdll.def \ - -D__CRTDLL__ -c -E -P \ + -D__CRTDLL__ -C -E -P \ -xc-header $? > $@ $(srcdir)/moldname-msvcrt.def: moldname.def.in $(CC) -DRUNTIME=msvcrt \ -D__FILENAME__=moldname-msvcrt.def \ - -D__MSVCRT__ -c -E -P \ + -D__MSVCRT__ -C -E -P \ -xc-header $? > $@ libcoldname.a: $(srcdir)/moldname-crtdll.def $(MOLD_OBJS) diff --git a/winsup/mingw/include/stdio.h b/winsup/mingw/include/stdio.h index 4a7d09fcf..8adbf5155 100644 --- a/winsup/mingw/include/stdio.h +++ b/winsup/mingw/include/stdio.h @@ -210,11 +210,11 @@ void setbuf (FILE*, char*); int fprintf (FILE*, const char*, ...); int printf (const char*, ...); int sprintf (char*, const char*, ...); -int _snprintf (char*, size_t, const char*, ...); +int _snprintf (char*, size_t, const char*, ...); int vfprintf (FILE*, const char*, va_list); int vprintf (const char*, va_list); int vsprintf (char*, const char*, va_list); -int _vsnprintf (char*, size_t, const char*, va_list); +int _vsnprintf (char*, size_t, const char*, va_list); /* @@ -251,9 +251,9 @@ size_t fwrite (const void*, size_t, size_t, FILE*); * File Positioning Functions */ -int fseek (FILE*, long, int); -long ftell (FILE*); -void rewind (FILE*); +int fseek (FILE*, long, int); +long ftell (FILE*); +void rewind (FILE*); /* * An opaque data type used for storing file positions... The contents of @@ -298,7 +298,7 @@ int pclose (FILE*); /* * Other Non ANSI functions */ -int _flushall(void); +int _flushall (void); int _fgetchar (void); int _fputchar (int); FILE* _fdopen (int, const char*); @@ -320,9 +320,11 @@ int fileno (FILE*); int fwprintf (FILE*, const wchar_t*, ...); int wprintf (const wchar_t*, ...); int swprintf (wchar_t*, const wchar_t*, ...); +int _swnprintf (wchar_t*, size_t, const wchar_t*, ...); int vfwprintf (FILE*, const wchar_t*, va_list); int vwprintf (const wchar_t*, va_list); int vswprintf (wchar_t*, const wchar_t*, va_list); +int _vswnprintf (wchar_t*, size_t, const wchar_t*, va_list); int fwscanf (FILE*, const wchar_t*, ...); int wscanf (const wchar_t*, ...); int swscanf (const wchar_t*, const wchar_t*, ...); @@ -330,23 +332,23 @@ wint_t fgetwc (FILE*); wint_t fputwc (wchar_t, FILE*); wint_t ungetwc (wchar_t, FILE*); #ifdef __MSVCRT__ -wchar_t* fgetws (wchar_t*, int, FILE*); -int fputws (const wchar_t*, FILE*); -wint_t getwc (FILE*); -wint_t getwchar (void); -wchar_t* _getws (wchar_t*); -wint_t putwc (wint_t, FILE*); -int _putws (const wchar_t*); -wint_t putwchar (wint_t); +wchar_t* fgetws (wchar_t*, int, FILE*); +int fputws (const wchar_t*, FILE*); +wint_t getwc (FILE*); +wint_t getwchar (void); +wchar_t* _getws (wchar_t*); +wint_t putwc (wint_t, FILE*); +int _putws (const wchar_t*); +wint_t putwchar (wint_t); FILE* _wfopen (const wchar_t*, const wchar_t*); FILE* _wfreopen (const wchar_t*, const wchar_t*, FILE*); -FILE* _wfsopen(const wchar_t*, const wchar_t*, int); -wchar_t* _wtmpnam (wchar_t*); -wchar_t* _wtempnam (const wchar_t*, const wchar_t*); -int _wrename(const wchar_t*, const wchar_t*); -int _wremove (const wchar_t*); -void _wperror(const wchar_t*); -FILE* _wpopen(const wchar_t*, const wchar_t*); +FILE* _wfsopen (const wchar_t*, const wchar_t*, int); +wchar_t* _wtmpnam (wchar_t*); +wchar_t* _wtempnam (const wchar_t*, const wchar_t*); +int _wrename (const wchar_t*, const wchar_t*); +int _wremove (const wchar_t*); +void _wperror (const wchar_t*); +FILE* _wpopen (const wchar_t*, const wchar_t*); #endif /* __MSVCRT__ */ #define _WSTDIO_DEFINED #endif /* _WSTDIO_DEFINED */ @@ -354,31 +356,21 @@ FILE* _wpopen(const wchar_t*, const wchar_t*); #ifndef __STRICT_ANSI__ #ifdef __MSVCRT__ #ifndef NO_OLDNAMES -#if 0 FILE* wpopen (const wchar_t*, const wchar_t*); -#else /* Always true */ -/* - * The above prototypeing is not possible unless the wpopen export is added - * to moldnames, which can't be done unless we make separate moldnames.def - * files for every supported runtime. For the time being we use a define - * instead. Pedro's modified dlltool should take care of this I think. - */ -#define wpopen _wpopen -#endif /* Always true */ #endif /* not NO_OLDNAMES */ #endif /* MSVCRT runtime */ /* * Other Non ANSI wide functions */ -wint_t _fgetwchar(void); -wint_t _fputwchar(wint_t); +wint_t _fgetwchar (void); +wint_t _fputwchar (wint_t); int _getw (FILE*); int _putw (int, FILE*); #ifndef _NO_OLDNAMES -wint_t fgetwchar(void); -wint_t fputwchar(wint_t); +wint_t fgetwchar (void); +wint_t fputwchar (wint_t); int getw (FILE*); int putw (int, FILE*); #endif /* Not _NO_OLDNAMES */ diff --git a/winsup/mingw/include/wchar.h b/winsup/mingw/include/wchar.h index eaeb4d080..68b714755 100644 --- a/winsup/mingw/include/wchar.h +++ b/winsup/mingw/include/wchar.h @@ -85,17 +85,17 @@ struct _wfinddatai64_t { applies to other wide character versions? */ #if !defined (_WIO_DEFINED) #if defined (__MSVCRT__) -int _waccess(const wchar_t*, int); -int _wchmod(const wchar_t*, int); -int _wcreat(const wchar_t*, int); -long _wfindfirst(wchar_t*, struct _wfinddata_t *); -int _wfindnext(long, struct _wfinddata_t *); -int _wunlink(const wchar_t*); -int _wopen(const wchar_t*, int, ...); -int _wsopen(const wchar_t*, int, int, ...); -wchar_t * _wmktemp(wchar_t*); -long _wfindfirsti64(const wchar_t*, struct _wfinddatai64_t*); -int _wfindnexti64(long, struct _wfinddatai64_t*); +int _waccess (const wchar_t*, int); +int _wchmod (const wchar_t*, int); +int _wcreat (const wchar_t*, int); +long _wfindfirst (wchar_t*, struct _wfinddata_t *); +int _wfindnext (long, struct _wfinddata_t *); +int _wunlink (const wchar_t*); +int _wopen (const wchar_t*, int, ...); +int _wsopen (const wchar_t*, int, int, ...); +wchar_t* _wmktemp (wchar_t*); +long _wfindfirsti64 (const wchar_t*, struct _wfinddatai64_t*); +int _wfindnexti64 (long, struct _wfinddatai64_t*); #endif /* defined (__MSVCRT__) */ #define _WIO_DEFINED #endif /* _WIO_DEFINED */ @@ -105,9 +105,11 @@ int _wfindnexti64(long, struct _wfinddatai64_t*); int fwprintf (FILE*, const wchar_t*, ...); int wprintf (const wchar_t*, ...); int swprintf (wchar_t*, const wchar_t*, ...); +int _swnprintf (wchar_t*, size_t, const wchar_t*, ...); int vfwprintf (FILE*, const wchar_t*, va_list); int vwprintf (const wchar_t*, va_list); int vswprintf (wchar_t*, const wchar_t*, va_list); +int _vswnprintf (wchar_t*, size_t, const wchar_t*, va_list); int fwscanf (FILE*, const wchar_t*, ...); int wscanf (const wchar_t*, ...); int swscanf (const wchar_t*, const wchar_t*, ...); @@ -116,25 +118,25 @@ wint_t fputwc (wchar_t, FILE*); wint_t ungetwc (wchar_t, FILE*); #ifdef __MSVCRT__ -wchar_t* fgetws (wchar_t*, int, FILE*); -int fputws (const wchar_t*, FILE*); -wint_t getwc (FILE*); -wint_t getwchar (void); -wchar_t* _getws (wchar_t*); -wint_t putwc (wint_t, FILE*); -int _putws (const wchar_t*); -wint_t putwchar (wint_t); +wchar_t* fgetws (wchar_t*, int, FILE*); +int fputws (const wchar_t*, FILE*); +wint_t getwc (FILE*); +wint_t getwchar (void); +wchar_t* _getws (wchar_t*); +wint_t putwc (wint_t, FILE*); +int _putws (const wchar_t*); +wint_t putwchar (wint_t); FILE* _wfopen (const wchar_t*, const wchar_t*); FILE* _wfreopen (const wchar_t*, const wchar_t*, FILE*); -FILE* _wfsopen(const wchar_t*, const wchar_t*, int); -wchar_t* _wtmpnam (wchar_t*); -wchar_t* _wtempnam (const wchar_t*, const wchar_t*); -int _wrename(const wchar_t*, const wchar_t*); -int _wremove (const wchar_t*) +FILE* _wfsopen (const wchar_t*, const wchar_t*, int); +wchar_t* _wtmpnam (wchar_t*); +wchar_t* _wtempnam (const wchar_t*, const wchar_t*); +int _wrename (const wchar_t*, const wchar_t*); +int _wremove (const wchar_t*) -FILE* _wpopen(const wchar_t*, const wchar_t*) -void _wperror(const wchar_t*); +FILE* _wpopen (const wchar_t*, const wchar_t*) +void _wperror (const wchar_t*); #endif /* __MSVCRT__ */ #define _WSTDIO_DEFINED #endif /* _WSTDIO_DEFINED */ @@ -142,11 +144,11 @@ void _wperror(const wchar_t*); #ifndef _WDIRECT_DEFINED /* Also in direct.h */ #ifdef __MSVCRT__ -int _wchdir(const wchar_t*); -wchar_t* _wgetcwd(wchar_t*, int); -wchar_t* _wgetdcwd(int, wchar_t*, int); -int _wmkdir(const wchar_t*); -int _wrmdir(const wchar_t*); +int _wchdir (const wchar_t*); +wchar_t* _wgetcwd (wchar_t*, int); +wchar_t* _wgetdcwd (int, wchar_t*, int); +int _wmkdir (const wchar_t*); +int _wrmdir (const wchar_t*); #endif /* __MSVCRT__ */ #define _WDIRECT_DEFINED #endif /* _WDIRECT_DEFINED */ @@ -211,7 +213,7 @@ struct _stati64 { #if !defined ( _WSTAT_DEFINED) /* also declared in sys/stat.h */ #if defined __MSVCRT__ -int _wstat(const wchar_t*, struct _stat*); +int _wstat (const wchar_t*, struct _stat*); int _wstati64 (const wchar_t*, struct _stati64*); #endif /* __MSVCRT__ */ #define _WSTAT_DEFINED @@ -220,17 +222,17 @@ int _wstati64 (const wchar_t*, struct _stati64*); #ifndef _WTIME_DEFINED #ifdef __MSVCRT__ /* wide function prototypes, also declared in time.h */ -wchar_t * _wasctime(const struct tm*); -wchar_t * _wctime(const time_t*); -wchar_t* _wstrdate(wchar_t*); -wchar_t* _wstrtime(wchar_t*); +wchar_t* _wasctime (const struct tm*); +wchar_t* _wctime (const time_t*); +wchar_t* _wstrdate (wchar_t*); +wchar_t* _wstrtime (wchar_t*); #endif /* __MSVCRT__ */ -size_t wcsftime(wchar_t*, size_t, const wchar_t*, const struct tm*); +size_t wcsftime (wchar_t*, size_t, const wchar_t*, const struct tm*); #define _WTIME_DEFINED #endif /* _WTIME_DEFINED */ #ifndef _WLOCALE_DEFINED /* also declared in locale.h */ -wchar_t* _wsetlocale(int, const wchar_t*); +wchar_t* _wsetlocale (int, const wchar_t*); #define _WLOCALE_DEFINED #endif @@ -240,17 +242,17 @@ wchar_t* _wsetlocale(int, const wchar_t*); /* Wide character versions. Also declared in io.h. */ /* CHECK: Are these in the oldnames??? NO! */ #if (0) -int waccess(const wchar_t *, int); -int wchmod(const wchar_t *, int); -int wcreat(const wchar_t *, int); -long wfindfirst(wchar_t *, struct _wfinddata_t *); -int wfindnext(long, struct _wfinddata_t *); -int wunlink(const wchar_t *); -int wrename(const wchar_t *, const wchar_t *); -int wremove (const wchar_t *); -int wopen(const wchar_t *, int, ...); -int wsopen(const wchar_t *, int, int, ...); -wchar_t * wmktemp(wchar_t *); +int waccess (const wchar_t *, int); +int wchmod (const wchar_t *, int); +int wcreat (const wchar_t *, int); +long wfindfirst (wchar_t *, struct _wfinddata_t *); +int wfindnext (long, struct _wfinddata_t *); +int wunlink (const wchar_t *); +int wrename (const wchar_t *, const wchar_t *); +int wremove (const wchar_t *); +int wopen (const wchar_t *, int, ...); +int wsopen (const wchar_t *, int, int, ...); +wchar_t* wmktemp (wchar_t *); #endif #endif /* _NO_OLDNAMES */ diff --git a/winsup/mingw/moldname-crtdll.def b/winsup/mingw/moldname-crtdll.def index 3ead24436..3b641ebd6 100644 --- a/winsup/mingw/moldname-crtdll.def +++ b/winsup/mingw/moldname-crtdll.def @@ -1,135 +1,142 @@ -; -; moldname-crtdll.def -; -; Exports from the runtime except that these exports are actually preceeded -; by a underscore in the actual DLL. These correspond to functions which -; are non-ANSI and were prefixed with an underscore to avoid name space -; clutter. However many, in fact most programs still use a few of these -; functions without the underscore. This .def file is specially processed -; to make those non-underscored name function calls call the equivalent -; underscored functions. -; -; Contributors: -; Created by Colin Peters -; Maintained by Mumit Khan -; -; THIS SOFTWARE IS NOT COPYRIGHTED -; -; This source code is offered for use in the public domain. You may -; use, modify or distribute it freely. -; -; This code is distributed in the hope that it will be useful but -; WITHOUT ANY WARRANTY. ALL WARRENTIES, EXPRESS OR IMPLIED ARE HEREBY -; DISCLAMED. This includes but is not limited to warrenties of -; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. -; -EXPORTS -access -beep -cabs -chdir -chmod -chsize -close -creat -cwait - -dup -dup2 -ecvt -eof -execl -execle -execlp -execlpe -execv -execve -execvp -execvpe -fcvt -fdopen -fgetchar -fgetwchar -filelength -fileno -fpreset -fputchar -fputwchar -fstat -ftime -gcvt -getch -getche -getcwd -getpid -getw -heapwalk -hypot -isatty -itoa -j0 -j1 -jn -kbhit -lseek -ltoa -memccpy -memicmp -mkdir -mktemp -open -pclose -popen -putch -putenv -putw -read -rmdir -searchenv -seterrormode -setmode -sleep -sopen -spawnl -spawnle -spawnlp -spawnlpe -spawnv -spawnve -spawnvp -spawnvpe -stat -strcmpi -strdup -stricmp -stricoll -strlwr -strnicmp -strnset -strrev -strset -strupr -swab -tell -tempnam - -; export tzname for both. See -tzname DATA -tzset -umask -ungetch -unlink -utime -wcsdup -wcsicmp -wcsicoll -wcslwr -wcsnicmp -wcsnset -wcsrev -wcsset -wcsupr -write -y0 -y1 -yn +; +; moldname-crtdll.def +; +; Exports from the runtime except that these exports are actually preceeded +; by a underscore in the actual DLL. These correspond to functions which +; are non-ANSI and were prefixed with an underscore to avoid name space +; clutter. However many, in fact most programs still use a few of these +; functions without the underscore. This .def file is specially processed +; to make those non-underscored name function calls call the equivalent +; underscored functions. +; +; Contributors: +; Created by Colin Peters +; Maintained by Mumit Khan +; +; THIS SOFTWARE IS NOT COPYRIGHTED +; +; This source code is offered for use in the public domain. You may +; use, modify or distribute it freely. +; +; This code is distributed in the hope that it will be useful but +; WITHOUT ANY WARRANTY. ALL WARRENTIES, EXPRESS OR IMPLIED ARE HEREBY +; DISCLAMED. This includes but is not limited to warrenties of +; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +; +EXPORTS +access +beep +cabs +chdir +chmod +chsize +close +creat +cwait + + + +dup +dup2 +ecvt +eof +execl +execle +execlp +execlpe +execv +execve +execvp +execvpe +fcvt +fdopen +fgetchar +fgetwchar +filelength +fileno +fpreset +fputchar +fputwchar +fstat +ftime +gcvt +getch +getche +getcwd +getpid +getw +heapwalk +hypot +isatty +itoa +j0 +j1 +jn +kbhit +lseek +ltoa +memccpy +memicmp +mkdir +mktemp +open +pclose +popen +putch +putenv +putw +read +rmdir +searchenv +seterrormode +setmode +sleep +sopen +spawnl +spawnle +spawnlp +spawnlpe +spawnv +spawnve +spawnvp +spawnvpe +stat +strcmpi +strdup +stricmp +stricoll +strlwr +strnicmp +strnset +strrev +strset +strupr +swab +tell +tempnam + + + +; export tzname for both. See +tzname DATA +tzset +umask +ungetch +unlink +utime +wcsdup +wcsicmp +wcsicoll +wcslwr +wcsnicmp +wcsnset +wcsrev +wcsset +wcsupr + + + +write +y0 +y1 +yn diff --git a/winsup/mingw/moldname-msvcrt.def b/winsup/mingw/moldname-msvcrt.def index 0e0d39c31..c341d2e11 100644 --- a/winsup/mingw/moldname-msvcrt.def +++ b/winsup/mingw/moldname-msvcrt.def @@ -1,139 +1,142 @@ -; -; moldname-msvcrt.def -; -; Exports from the runtime except that these exports are actually preceeded -; by a underscore in the actual DLL. These correspond to functions which -; are non-ANSI and were prefixed with an underscore to avoid name space -; clutter. However many, in fact most programs still use a few of these -; functions without the underscore. This .def file is specially processed -; to make those non-underscored name function calls call the equivalent -; underscored functions. -; -; Contributors: -; Created by Colin Peters -; Maintained by Mumit Khan -; -; THIS SOFTWARE IS NOT COPYRIGHTED -; -; This source code is offered for use in the public domain. You may -; use, modify or distribute it freely. -; -; This code is distributed in the hope that it will be useful but -; WITHOUT ANY WARRANTY. ALL WARRENTIES, EXPRESS OR IMPLIED ARE HEREBY -; DISCLAMED. This includes but is not limited to warrenties of -; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. -; -EXPORTS -access -beep -cabs -chdir -chmod -chsize -close -creat -cwait - -daylight DATA - -dup -dup2 -ecvt -eof -execl -execle -execlp -execlpe -execv -execve -execvp -execvpe -fcvt -fdopen -fgetchar -fgetwchar -filelength -fileno -fpreset -fputchar -fputwchar -fstat -ftime -gcvt -getch -getche -getcwd -getpid -getw -heapwalk -hypot -isatty -itoa -j0 -j1 -jn -kbhit -lseek -ltoa -memccpy -memicmp -mkdir -mktemp -open -pclose -popen -putch -putenv -putw -read -rmdir -searchenv -seterrormode -setmode -sleep -sopen -spawnl -spawnle -spawnlp -spawnlpe -spawnv -spawnve -spawnvp -spawnvpe -stat -strcmpi -strdup -stricmp -stricoll -strlwr -strnicmp -strnset -strrev -strset -strupr -swab -tell -tempnam - -timezone DATA - -; export tzname for both. See -tzname DATA -tzset -umask -ungetch -unlink -utime -wcsdup -wcsicmp -wcsicoll -wcslwr -wcsnicmp -wcsnset -wcsrev -wcsset -wcsupr -write -y0 -y1 -yn +; +; moldname-msvcrt.def +; +; Exports from the runtime except that these exports are actually preceeded +; by a underscore in the actual DLL. These correspond to functions which +; are non-ANSI and were prefixed with an underscore to avoid name space +; clutter. However many, in fact most programs still use a few of these +; functions without the underscore. This .def file is specially processed +; to make those non-underscored name function calls call the equivalent +; underscored functions. +; +; Contributors: +; Created by Colin Peters +; Maintained by Mumit Khan +; +; THIS SOFTWARE IS NOT COPYRIGHTED +; +; This source code is offered for use in the public domain. You may +; use, modify or distribute it freely. +; +; This code is distributed in the hope that it will be useful but +; WITHOUT ANY WARRANTY. ALL WARRENTIES, EXPRESS OR IMPLIED ARE HEREBY +; DISCLAMED. This includes but is not limited to warrenties of +; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +; +EXPORTS +access +beep +cabs +chdir +chmod +chsize +close +creat +cwait + +daylight DATA + +dup +dup2 +ecvt +eof +execl +execle +execlp +execlpe +execv +execve +execvp +execvpe +fcvt +fdopen +fgetchar +fgetwchar +filelength +fileno +fpreset +fputchar +fputwchar +fstat +ftime +gcvt +getch +getche +getcwd +getpid +getw +heapwalk +hypot +isatty +itoa +j0 +j1 +jn +kbhit +lseek +ltoa +memccpy +memicmp +mkdir +mktemp +open +pclose +popen +putch +putenv +putw +read +rmdir +searchenv +seterrormode +setmode +sleep +sopen +spawnl +spawnle +spawnlp +spawnlpe +spawnv +spawnve +spawnvp +spawnvpe +stat +strcmpi +strdup +stricmp +stricoll +strlwr +strnicmp +strnset +strrev +strset +strupr +swab +tell +tempnam + +timezone DATA + +; export tzname for both. See +tzname DATA +tzset +umask +ungetch +unlink +utime +wcsdup +wcsicmp +wcsicoll +wcslwr +wcsnicmp +wcsnset +wcsrev +wcsset +wcsupr + +wpopen + +write +y0 +y1 +yn diff --git a/winsup/mingw/moldname.def.in b/winsup/mingw/moldname.def.in index 7e90cb374..c0032aff6 100644 --- a/winsup/mingw/moldname.def.in +++ b/winsup/mingw/moldname.def.in @@ -33,9 +33,9 @@ chsize close creat cwait -#if (__MSVCRT__) +#if !(__CRTDLL__) daylight DATA -#endif +#endif dup dup2 ecvt @@ -114,7 +114,7 @@ strupr swab tell tempnam -#if (__MSVCRT__) +#if !(__CRTDLL__) timezone DATA #endif ; export tzname for both. See @@ -133,6 +133,9 @@ wcsnset wcsrev wcsset wcsupr +#if !(__CRTDLL__) +wpopen +#endif write y0 y1