* 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.
This commit is contained in:
Danny Smith 2002-03-26 22:23:25 +00:00
parent fb1c4e20f4
commit eba631d6a9
7 changed files with 387 additions and 363 deletions

View File

@ -1,3 +1,20 @@
2002-03-26 Danny Smith <dannysmith@sourceforge.users.net>
* 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 <dannysmith@users.sourceforge.net>
* include/malloc.h (_heapinfo): Correct structure definition.

View File

@ -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)

View File

@ -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 */

View File

@ -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 */

View File

@ -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 <colin@bird.fu.is.saga-u.ac.jp>
; Maintained by Mumit Khan <khan@xraylith.wisc.edu>
;
; 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 <time.h>
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 <colin@bird.fu.is.saga-u.ac.jp>
; Maintained by Mumit Khan <khan@xraylith.wisc.edu>
;
; 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 <time.h>
tzname DATA
tzset
umask
ungetch
unlink
utime
wcsdup
wcsicmp
wcsicoll
wcslwr
wcsnicmp
wcsnset
wcsrev
wcsset
wcsupr
write
y0
y1
yn

View File

@ -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 <colin@bird.fu.is.saga-u.ac.jp>
; Maintained by Mumit Khan <khan@xraylith.wisc.edu>
;
; 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 <time.h>
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 <colin@bird.fu.is.saga-u.ac.jp>
; Maintained by Mumit Khan <khan@xraylith.wisc.edu>
;
; 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 <time.h>
tzname DATA
tzset
umask
ungetch
unlink
utime
wcsdup
wcsicmp
wcsicoll
wcslwr
wcsnicmp
wcsnset
wcsrev
wcsset
wcsupr
wpopen
write
y0
y1
yn

View File

@ -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 <time.h>
@ -133,6 +133,9 @@ wcsnset
wcsrev
wcsset
wcsupr
#if !(__CRTDLL__)
wpopen
#endif
write
y0
y1