standalone-ruby 1.5.0 → 1.5.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (170) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +53 -44
  3. data/bin/standalone-ruby +3 -3
  4. data/lib/data/c_compilers/tcc/include/_mingw.h +54 -54
  5. data/lib/data/c_compilers/tcc/include/assert.h +71 -71
  6. data/lib/data/c_compilers/tcc/include/conio.h +159 -159
  7. data/lib/data/c_compilers/tcc/include/ctype.h +232 -232
  8. data/lib/data/c_compilers/tcc/include/dir.h +26 -26
  9. data/lib/data/c_compilers/tcc/include/direct.h +95 -95
  10. data/lib/data/c_compilers/tcc/include/dirent.h +96 -96
  11. data/lib/data/c_compilers/tcc/include/dos.h +110 -110
  12. data/lib/data/c_compilers/tcc/include/errno.h +117 -117
  13. data/lib/data/c_compilers/tcc/include/excpt.h +20 -20
  14. data/lib/data/c_compilers/tcc/include/fcntl.h +135 -135
  15. data/lib/data/c_compilers/tcc/include/fenv.h +85 -85
  16. data/lib/data/c_compilers/tcc/include/float.h +224 -224
  17. data/lib/data/c_compilers/tcc/include/inttypes.h +275 -275
  18. data/lib/data/c_compilers/tcc/include/io.h +296 -296
  19. data/lib/data/c_compilers/tcc/include/limits.h +115 -115
  20. data/lib/data/c_compilers/tcc/include/locale.h +100 -100
  21. data/lib/data/c_compilers/tcc/include/malloc.h +87 -87
  22. data/lib/data/c_compilers/tcc/include/math.h +438 -438
  23. data/lib/data/c_compilers/tcc/include/mem.h +8 -8
  24. data/lib/data/c_compilers/tcc/include/memory.h +9 -9
  25. data/lib/data/c_compilers/tcc/include/process.h +158 -158
  26. data/lib/data/c_compilers/tcc/include/setjmp.h +72 -72
  27. data/lib/data/c_compilers/tcc/include/share.h +44 -44
  28. data/lib/data/c_compilers/tcc/include/signal.h +111 -111
  29. data/lib/data/c_compilers/tcc/include/stdarg.h +16 -16
  30. data/lib/data/c_compilers/tcc/include/stdbool.h +10 -10
  31. data/lib/data/c_compilers/tcc/include/stddef.h +26 -26
  32. data/lib/data/c_compilers/tcc/include/stdint.h +184 -184
  33. data/lib/data/c_compilers/tcc/include/stdio.h +413 -413
  34. data/lib/data/c_compilers/tcc/include/stdlib.h +482 -482
  35. data/lib/data/c_compilers/tcc/include/string.h +206 -206
  36. data/lib/data/c_compilers/tcc/include/sys/fcntl.h +8 -8
  37. data/lib/data/c_compilers/tcc/include/sys/file.h +9 -9
  38. data/lib/data/c_compilers/tcc/include/sys/locking.h +52 -52
  39. data/lib/data/c_compilers/tcc/include/sys/stat.h +190 -190
  40. data/lib/data/c_compilers/tcc/include/sys/time.h +3 -3
  41. data/lib/data/c_compilers/tcc/include/sys/timeb.h +82 -82
  42. data/lib/data/c_compilers/tcc/include/sys/types.h +118 -118
  43. data/lib/data/c_compilers/tcc/include/sys/unistd.h +9 -9
  44. data/lib/data/c_compilers/tcc/include/sys/utime.h +89 -89
  45. data/lib/data/c_compilers/tcc/include/tchar.h +367 -367
  46. data/lib/data/c_compilers/tcc/include/time.h +219 -219
  47. data/lib/data/c_compilers/tcc/include/unistd.h +10 -10
  48. data/lib/data/c_compilers/tcc/include/values.h +4 -4
  49. data/lib/data/c_compilers/tcc/include/varargs.h +11 -11
  50. data/lib/data/c_compilers/tcc/include/wchar.h +318 -318
  51. data/lib/data/c_compilers/tcc/include/wctype.h +127 -127
  52. data/lib/data/c_compilers/tcc/include/winapi/basetsd.h +119 -119
  53. data/lib/data/c_compilers/tcc/include/winapi/basetyps.h +144 -144
  54. data/lib/data/c_compilers/tcc/include/winapi/winbase.h +1852 -1852
  55. data/lib/data/c_compilers/tcc/include/winapi/wincon.h +207 -207
  56. data/lib/data/c_compilers/tcc/include/winapi/windef.h +240 -240
  57. data/lib/data/c_compilers/tcc/include/winapi/windows.h +176 -176
  58. data/lib/data/c_compilers/tcc/include/winapi/winerror.h +1054 -1054
  59. data/lib/data/c_compilers/tcc/include/winapi/wingdi.h +2843 -2843
  60. data/lib/data/c_compilers/tcc/include/winapi/winnetwk.h +346 -346
  61. data/lib/data/c_compilers/tcc/include/winapi/winnls.h +651 -651
  62. data/lib/data/c_compilers/tcc/include/winapi/winnt.h +2667 -2667
  63. data/lib/data/c_compilers/tcc/include/winapi/winreg.h +159 -159
  64. data/lib/data/c_compilers/tcc/include/winapi/winsvc.h +309 -309
  65. data/lib/data/c_compilers/tcc/include/winapi/winuser.h +3472 -3472
  66. data/lib/data/c_compilers/tcc/include/winapi/winver.h +133 -133
  67. data/lib/data/c_compilers/tcc/lib/gdi32.def +337 -337
  68. data/lib/data/c_compilers/tcc/lib/kernel32.def +763 -763
  69. data/lib/data/c_compilers/tcc/lib/msvcrt.def +782 -782
  70. data/lib/data/c_compilers/tcc/lib/user32.def +654 -654
  71. data/lib/data/exe_templates/launcher_stub.c +29 -29
  72. data/lib/data/exe_templates/launcher_stub.cpp +31 -31
  73. data/lib/data/launcher_templates/vbs/default_vbs.txt +7 -7
  74. data/lib/data/launcher_templates/vbs/vbs_gui.txt +8 -8
  75. data/lib/data/resource_files/default.rc +17 -17
  76. data/lib/displayer.rb +63 -65
  77. data/lib/exe_packer.rb +72 -82
  78. data/lib/launcher.rb +58 -84
  79. data/lib/launcher_handler.rb +40 -52
  80. data/lib/parameter_parser.rb +215 -210
  81. data/lib/ruby_copy.rb +48 -26
  82. data/lib/standalone_ruby.rb +6 -6
  83. data/lib/version/version.rb +2 -2
  84. metadata +3 -89
  85. data/lib/data/bat-cmd/default_bat_cmd.txt +0 -9
  86. data/lib/data/exe_template/launcher_stub.c +0 -30
  87. data/lib/data/exe_template/launcher_stub.cpp +0 -9
  88. data/lib/data/tcc/include/_mingw.h +0 -54
  89. data/lib/data/tcc/include/assert.h +0 -71
  90. data/lib/data/tcc/include/conio.h +0 -159
  91. data/lib/data/tcc/include/ctype.h +0 -232
  92. data/lib/data/tcc/include/dir.h +0 -26
  93. data/lib/data/tcc/include/direct.h +0 -95
  94. data/lib/data/tcc/include/dirent.h +0 -96
  95. data/lib/data/tcc/include/dos.h +0 -110
  96. data/lib/data/tcc/include/errno.h +0 -117
  97. data/lib/data/tcc/include/excpt.h +0 -20
  98. data/lib/data/tcc/include/fcntl.h +0 -135
  99. data/lib/data/tcc/include/fenv.h +0 -85
  100. data/lib/data/tcc/include/float.h +0 -224
  101. data/lib/data/tcc/include/inttypes.h +0 -275
  102. data/lib/data/tcc/include/io.h +0 -296
  103. data/lib/data/tcc/include/limits.h +0 -115
  104. data/lib/data/tcc/include/locale.h +0 -100
  105. data/lib/data/tcc/include/malloc.h +0 -87
  106. data/lib/data/tcc/include/math.h +0 -438
  107. data/lib/data/tcc/include/mem.h +0 -8
  108. data/lib/data/tcc/include/memory.h +0 -9
  109. data/lib/data/tcc/include/process.h +0 -158
  110. data/lib/data/tcc/include/setjmp.h +0 -72
  111. data/lib/data/tcc/include/share.h +0 -44
  112. data/lib/data/tcc/include/signal.h +0 -111
  113. data/lib/data/tcc/include/stdarg.h +0 -16
  114. data/lib/data/tcc/include/stdbool.h +0 -10
  115. data/lib/data/tcc/include/stddef.h +0 -26
  116. data/lib/data/tcc/include/stdint.h +0 -184
  117. data/lib/data/tcc/include/stdio.h +0 -413
  118. data/lib/data/tcc/include/stdlib.h +0 -482
  119. data/lib/data/tcc/include/string.h +0 -206
  120. data/lib/data/tcc/include/sys/fcntl.h +0 -8
  121. data/lib/data/tcc/include/sys/file.h +0 -9
  122. data/lib/data/tcc/include/sys/locking.h +0 -52
  123. data/lib/data/tcc/include/sys/stat.h +0 -190
  124. data/lib/data/tcc/include/sys/time.h +0 -3
  125. data/lib/data/tcc/include/sys/timeb.h +0 -82
  126. data/lib/data/tcc/include/sys/types.h +0 -118
  127. data/lib/data/tcc/include/sys/unistd.h +0 -9
  128. data/lib/data/tcc/include/sys/utime.h +0 -89
  129. data/lib/data/tcc/include/tchar.h +0 -367
  130. data/lib/data/tcc/include/time.h +0 -219
  131. data/lib/data/tcc/include/unistd.h +0 -10
  132. data/lib/data/tcc/include/values.h +0 -4
  133. data/lib/data/tcc/include/varargs.h +0 -11
  134. data/lib/data/tcc/include/wchar.h +0 -318
  135. data/lib/data/tcc/include/wctype.h +0 -127
  136. data/lib/data/tcc/include/winapi/basetsd.h +0 -119
  137. data/lib/data/tcc/include/winapi/basetyps.h +0 -144
  138. data/lib/data/tcc/include/winapi/winbase.h +0 -1852
  139. data/lib/data/tcc/include/winapi/wincon.h +0 -207
  140. data/lib/data/tcc/include/winapi/windef.h +0 -240
  141. data/lib/data/tcc/include/winapi/windows.h +0 -176
  142. data/lib/data/tcc/include/winapi/winerror.h +0 -1054
  143. data/lib/data/tcc/include/winapi/wingdi.h +0 -2843
  144. data/lib/data/tcc/include/winapi/winnetwk.h +0 -346
  145. data/lib/data/tcc/include/winapi/winnls.h +0 -651
  146. data/lib/data/tcc/include/winapi/winnt.h +0 -2667
  147. data/lib/data/tcc/include/winapi/winreg.h +0 -159
  148. data/lib/data/tcc/include/winapi/winsvc.h +0 -309
  149. data/lib/data/tcc/include/winapi/winuser.h +0 -3472
  150. data/lib/data/tcc/include/winapi/winver.h +0 -133
  151. data/lib/data/tcc/lib/gdi32.def +0 -337
  152. data/lib/data/tcc/lib/kernel32.def +0 -763
  153. data/lib/data/tcc/lib/libtcc1.a +0 -0
  154. data/lib/data/tcc/lib/msvcrt.def +0 -782
  155. data/lib/data/tcc/lib/user32.def +0 -654
  156. data/lib/data/tcc/tcc.exe +0 -0
  157. data/lib/data/tcc/tiny_impdef.exe +0 -0
  158. data/lib/data/tcc/tiny_libmaker.exe +0 -0
  159. data/lib/data/vbs/default_vbs.txt +0 -7
  160. data/lib/data/vbs/vbs_gui.txt +0 -8
  161. data/lib/logger_helper.rb +0 -24
  162. data/lib/sfx_generator.rb +0 -11
  163. data/lib/utils/config_generator.rb +0 -5
  164. data/lib/utils/displayer.rb +0 -64
  165. data/lib/utils/exe_packer.rb +0 -72
  166. data/lib/utils/launcher.rb +0 -77
  167. data/lib/utils/launcher_handler.rb +0 -111
  168. data/lib/utils/logger_helper.rb +0 -24
  169. data/lib/utils/parameter_parser.rb +0 -211
  170. data/lib/utils/ruby_copy.rb +0 -26
@@ -1,318 +1,318 @@
1
- /*
2
- * wchar.h
3
- *
4
- * Defines of all functions for supporting wide characters. Actually it
5
- * just includes all those headers, which is not a good thing to do from a
6
- * processing time point of view, but it does mean that everything will be
7
- * in sync.
8
- *
9
- * This file is part of the Mingw32 package.
10
- *
11
- * THIS SOFTWARE IS NOT COPYRIGHTED
12
- *
13
- * This source code is offered for use in the public domain. You may
14
- * use, modify or distribute it freely.
15
- *
16
- * This code is distributed in the hope that it will be useful but
17
- * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
18
- * DISCLAIMED. This includes but is not limited to warranties of
19
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
20
- *
21
- * $Revision: 1.2 $
22
- * $Author: bellard $
23
- * $Date: 2005/04/17 13:14:29 $
24
- *
25
- */
26
-
27
- #ifndef _WCHAR_H_
28
- #define _WCHAR_H_
29
-
30
- /* All the headers include this file. */
31
- #include <_mingw.h>
32
-
33
- #include <ctype.h>
34
- #include <stdio.h>
35
- #include <stdlib.h>
36
- #include <string.h>
37
- #include <time.h>
38
- #include <sys/types.h>
39
-
40
- #define __need_size_t
41
- #define __need_wint_t
42
- #define __need_wchar_t
43
- #ifndef RC_INVOKED
44
- #include <stddef.h>
45
- #endif /* Not RC_INVOKED */
46
-
47
- #define WCHAR_MIN 0
48
- #define WCHAR_MAX ((wchar_t)-1)
49
-
50
- #ifndef RC_INVOKED
51
-
52
- #ifdef __cplusplus
53
- extern "C" {
54
- #endif
55
-
56
- #ifndef __STRICT_ANSI__
57
-
58
- #ifndef _FSIZE_T_DEFINED
59
- typedef unsigned long _fsize_t;
60
- #define _FSIZE_T_DEFINED
61
- #endif
62
-
63
- #ifndef _WFINDDATA_T_DEFINED
64
- struct _wfinddata_t {
65
- unsigned attrib;
66
- time_t time_create; /* -1 for FAT file systems */
67
- time_t time_access; /* -1 for FAT file systems */
68
- time_t time_write;
69
- _fsize_t size;
70
- wchar_t name[FILENAME_MAX]; /* may include spaces. */
71
- };
72
- struct _wfinddatai64_t {
73
- unsigned attrib;
74
- time_t time_create;
75
- time_t time_access;
76
- time_t time_write;
77
- __int64 size;
78
- wchar_t name[FILENAME_MAX];
79
- };
80
- #define _WFINDDATA_T_DEFINED
81
- #endif
82
-
83
- /* Wide character versions. Also defined in io.h. */
84
- /* CHECK: I believe these only exist in MSVCRT, and not in CRTDLL. Also
85
- applies to other wide character versions? */
86
- #if !defined (_WIO_DEFINED)
87
- #if defined (__MSVCRT__)
88
- int _waccess (const wchar_t*, int);
89
- int _wchmod (const wchar_t*, int);
90
- int _wcreat (const wchar_t*, int);
91
- long _wfindfirst (wchar_t*, struct _wfinddata_t *);
92
- int _wfindnext (long, struct _wfinddata_t *);
93
- int _wunlink (const wchar_t*);
94
- int _wopen (const wchar_t*, int, ...);
95
- int _wsopen (const wchar_t*, int, int, ...);
96
- wchar_t* _wmktemp (wchar_t*);
97
- long _wfindfirsti64 (const wchar_t*, struct _wfinddatai64_t*);
98
- int _wfindnexti64 (long, struct _wfinddatai64_t*);
99
- #endif /* defined (__MSVCRT__) */
100
- #define _WIO_DEFINED
101
- #endif /* _WIO_DEFINED */
102
-
103
- #ifndef _WSTDIO_DEFINED
104
- /* also in stdio.h - keep in sync */
105
- int fwprintf (FILE*, const wchar_t*, ...);
106
- int wprintf (const wchar_t*, ...);
107
- int swprintf (wchar_t*, const wchar_t*, ...);
108
- int _snwprintf (wchar_t*, size_t, const wchar_t*, ...);
109
- int vfwprintf (FILE*, const wchar_t*, va_list);
110
- int vwprintf (const wchar_t*, va_list);
111
- int vswprintf (wchar_t*, const wchar_t*, va_list);
112
- int _vsnwprintf (wchar_t*, size_t, const wchar_t*, va_list);
113
- int fwscanf (FILE*, const wchar_t*, ...);
114
- int wscanf (const wchar_t*, ...);
115
- int swscanf (const wchar_t*, const wchar_t*, ...);
116
- wint_t fgetwc (FILE*);
117
- wint_t fputwc (wchar_t, FILE*);
118
- wint_t ungetwc (wchar_t, FILE*);
119
-
120
- #ifndef __NO_ISOCEXT /* externs in libmingwex.a */
121
- int snwprintf(wchar_t* s, size_t n, const wchar_t* format, ...);
122
- extern inline int vsnwprintf (wchar_t* s, size_t n, const wchar_t* format,
123
- va_list arg)
124
- { return _vsnwprintf ( s, n, format, arg); }
125
- #endif
126
-
127
- #ifdef __MSVCRT__
128
- wchar_t* fgetws (wchar_t*, int, FILE*);
129
- int fputws (const wchar_t*, FILE*);
130
- wint_t getwc (FILE*);
131
- wint_t getwchar (void);
132
- wchar_t* _getws (wchar_t*);
133
- wint_t putwc (wint_t, FILE*);
134
- int _putws (const wchar_t*);
135
- wint_t putwchar (wint_t);
136
-
137
- FILE* _wfopen (const wchar_t*, const wchar_t*);
138
- FILE* _wfreopen (const wchar_t*, const wchar_t*, FILE*);
139
- FILE* _wfsopen (const wchar_t*, const wchar_t*, int);
140
- wchar_t* _wtmpnam (wchar_t*);
141
- wchar_t* _wtempnam (const wchar_t*, const wchar_t*);
142
- int _wrename (const wchar_t*, const wchar_t*);
143
- int _wremove (const wchar_t*)
144
-
145
- FILE* _wpopen (const wchar_t*, const wchar_t*)
146
- void _wperror (const wchar_t*);
147
- #endif /* __MSVCRT__ */
148
- #define _WSTDIO_DEFINED
149
- #endif /* _WSTDIO_DEFINED */
150
-
151
- #ifndef _WDIRECT_DEFINED
152
- /* Also in direct.h */
153
- #ifdef __MSVCRT__
154
- int _wchdir (const wchar_t*);
155
- wchar_t* _wgetcwd (wchar_t*, int);
156
- wchar_t* _wgetdcwd (int, wchar_t*, int);
157
- int _wmkdir (const wchar_t*);
158
- int _wrmdir (const wchar_t*);
159
- #endif /* __MSVCRT__ */
160
- #define _WDIRECT_DEFINED
161
- #endif /* _WDIRECT_DEFINED */
162
-
163
- #ifndef _STAT_DEFINED
164
- /*
165
- * The structure manipulated and returned by stat and fstat.
166
- *
167
- * NOTE: If called on a directory the values in the time fields are not only
168
- * invalid, they will cause localtime et. al. to return NULL. And calling
169
- * asctime with a NULL pointer causes an Invalid Page Fault. So watch it!
170
- */
171
- struct _stat
172
- {
173
- _dev_t st_dev; /* Equivalent to drive number 0=A 1=B ... */
174
- _ino_t st_ino; /* Always zero ? */
175
- _mode_t st_mode; /* See above constants */
176
- short st_nlink; /* Number of links. */
177
- short st_uid; /* User: Maybe significant on NT ? */
178
- short st_gid; /* Group: Ditto */
179
- _dev_t st_rdev; /* Seems useless (not even filled in) */
180
- _off_t st_size; /* File size in bytes */
181
- time_t st_atime; /* Accessed date (always 00:00 hrs local
182
- * on FAT) */
183
- time_t st_mtime; /* Modified time */
184
- time_t st_ctime; /* Creation time */
185
- };
186
-
187
- struct stat
188
- {
189
- _dev_t st_dev; /* Equivalent to drive number 0=A 1=B ... */
190
- _ino_t st_ino; /* Always zero ? */
191
- _mode_t st_mode; /* See above constants */
192
- short st_nlink; /* Number of links. */
193
- short st_uid; /* User: Maybe significant on NT ? */
194
- short st_gid; /* Group: Ditto */
195
- _dev_t st_rdev; /* Seems useless (not even filled in) */
196
- _off_t st_size; /* File size in bytes */
197
- time_t st_atime; /* Accessed date (always 00:00 hrs local
198
- * on FAT) */
199
- time_t st_mtime; /* Modified time */
200
- time_t st_ctime; /* Creation time */
201
- };
202
- #if defined (__MSVCRT__)
203
- struct _stati64 {
204
- _dev_t st_dev;
205
- _ino_t st_ino;
206
- unsigned short st_mode;
207
- short st_nlink;
208
- short st_uid;
209
- short st_gid;
210
- _dev_t st_rdev;
211
- __int64 st_size;
212
- time_t st_atime;
213
- time_t st_mtime;
214
- time_t st_ctime;
215
- };
216
- #endif /* __MSVCRT__ */
217
- #define _STAT_DEFINED
218
- #endif /* _STAT_DEFINED */
219
-
220
- #if !defined ( _WSTAT_DEFINED)
221
- /* also declared in sys/stat.h */
222
- #if defined __MSVCRT__
223
- int _wstat (const wchar_t*, struct _stat*);
224
- int _wstati64 (const wchar_t*, struct _stati64*);
225
- #endif /* __MSVCRT__ */
226
- #define _WSTAT_DEFINED
227
- #endif /* ! _WSTAT_DEFIND */
228
-
229
- #ifndef _WTIME_DEFINED
230
- #ifdef __MSVCRT__
231
- /* wide function prototypes, also declared in time.h */
232
- wchar_t* _wasctime (const struct tm*);
233
- wchar_t* _wctime (const time_t*);
234
- wchar_t* _wstrdate (wchar_t*);
235
- wchar_t* _wstrtime (wchar_t*);
236
- #endif /* __MSVCRT__ */
237
- size_t wcsftime (wchar_t*, size_t, const wchar_t*, const struct tm*);
238
- #define _WTIME_DEFINED
239
- #endif /* _WTIME_DEFINED */
240
-
241
- #ifndef _WLOCALE_DEFINED /* also declared in locale.h */
242
- wchar_t* _wsetlocale (int, const wchar_t*);
243
- #define _WLOCALE_DEFINED
244
- #endif
245
-
246
- #ifndef _WSTDLIB_DEFINED /* also declared in stdlib.h */
247
- long wcstol (const wchar_t*, wchar_t**, int);
248
- unsigned long wcstoul (const wchar_t*, wchar_t**, int);
249
- double wcstod (const wchar_t*, wchar_t**);
250
- #if !defined __NO_ISOCEXT /* extern stub in static libmingwex.a */
251
- extern __inline__ float wcstof( const wchar_t *nptr, wchar_t **endptr)
252
- { return (wcstod(nptr, endptr)); }
253
- #endif /* __NO_ISOCEXT */
254
- #define _WSTDLIB_DEFINED
255
- #endif
256
-
257
-
258
- #ifndef _NO_OLDNAMES
259
-
260
- /* Wide character versions. Also declared in io.h. */
261
- /* CHECK: Are these in the oldnames??? NO! */
262
- #if (0)
263
- int waccess (const wchar_t *, int);
264
- int wchmod (const wchar_t *, int);
265
- int wcreat (const wchar_t *, int);
266
- long wfindfirst (wchar_t *, struct _wfinddata_t *);
267
- int wfindnext (long, struct _wfinddata_t *);
268
- int wunlink (const wchar_t *);
269
- int wrename (const wchar_t *, const wchar_t *);
270
- int wremove (const wchar_t *);
271
- int wopen (const wchar_t *, int, ...);
272
- int wsopen (const wchar_t *, int, int, ...);
273
- wchar_t* wmktemp (wchar_t *);
274
- #endif
275
- #endif /* _NO_OLDNAMES */
276
-
277
- #endif /* not __STRICT_ANSI__ */
278
-
279
- /* These are resolved by -lmsvcp60 */
280
- /* If you don't have msvcp60.dll in your windows system directory, you can
281
- easily obtain it with a search from your favorite search engine. */
282
- typedef int mbstate_t;
283
- typedef wchar_t _Wint_t;
284
-
285
- wint_t btowc(int);
286
- size_t mbrlen(const char *, size_t, mbstate_t *);
287
- size_t mbrtowc(wchar_t *, const char *, size_t, mbstate_t *);
288
- size_t mbsrtowcs(wchar_t *, const char **, size_t, mbstate_t *);
289
-
290
- size_t wcrtomb(char *, wchar_t, mbstate_t *);
291
- size_t wcsrtombs(char *, const wchar_t **, size_t, mbstate_t *);
292
- int wctob(wint_t);
293
-
294
- #ifndef __NO_ISOCEXT /* these need static lib libmingwex.a */
295
- extern inline int fwide(FILE* stream, int mode) {return -1;} /* limited to byte orientation */
296
- extern inline int mbsinit(const mbstate_t* ps) {return 1;}
297
- wchar_t* wmemset(wchar_t* s, wchar_t c, size_t n);
298
- wchar_t* wmemchr(const wchar_t* s, wchar_t c, size_t n);
299
- int wmemcmp(const wchar_t* s1, const wchar_t * s2, size_t n);
300
- wchar_t* wmemcpy(wchar_t* __restrict__ s1, const wchar_t* __restrict__ s2,
301
- size_t n);
302
- wchar_t* wmemmove(wchar_t* s1, const wchar_t* s2, size_t n);
303
- long long wcstoll(const wchar_t* __restrict__ nptr,
304
- wchar_t** __restrict__ endptr, int base);
305
- unsigned long long wcstoull(const wchar_t* __restrict__ nptr,
306
- wchar_t ** __restrict__ endptr, int base);
307
-
308
- #endif /* __NO_ISOCEXT */
309
-
310
-
311
- #ifdef __cplusplus
312
- } /* end of extern "C" */
313
- #endif
314
-
315
- #endif /* Not RC_INVOKED */
316
-
317
- #endif /* not _WCHAR_H_ */
318
-
1
+ /*
2
+ * wchar.h
3
+ *
4
+ * Defines of all functions for supporting wide characters. Actually it
5
+ * just includes all those headers, which is not a good thing to do from a
6
+ * processing time point of view, but it does mean that everything will be
7
+ * in sync.
8
+ *
9
+ * This file is part of the Mingw32 package.
10
+ *
11
+ * THIS SOFTWARE IS NOT COPYRIGHTED
12
+ *
13
+ * This source code is offered for use in the public domain. You may
14
+ * use, modify or distribute it freely.
15
+ *
16
+ * This code is distributed in the hope that it will be useful but
17
+ * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
18
+ * DISCLAIMED. This includes but is not limited to warranties of
19
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
20
+ *
21
+ * $Revision: 1.2 $
22
+ * $Author: bellard $
23
+ * $Date: 2005/04/17 13:14:29 $
24
+ *
25
+ */
26
+
27
+ #ifndef _WCHAR_H_
28
+ #define _WCHAR_H_
29
+
30
+ /* All the headers include this file. */
31
+ #include <_mingw.h>
32
+
33
+ #include <ctype.h>
34
+ #include <stdio.h>
35
+ #include <stdlib.h>
36
+ #include <string.h>
37
+ #include <time.h>
38
+ #include <sys/types.h>
39
+
40
+ #define __need_size_t
41
+ #define __need_wint_t
42
+ #define __need_wchar_t
43
+ #ifndef RC_INVOKED
44
+ #include <stddef.h>
45
+ #endif /* Not RC_INVOKED */
46
+
47
+ #define WCHAR_MIN 0
48
+ #define WCHAR_MAX ((wchar_t)-1)
49
+
50
+ #ifndef RC_INVOKED
51
+
52
+ #ifdef __cplusplus
53
+ extern "C" {
54
+ #endif
55
+
56
+ #ifndef __STRICT_ANSI__
57
+
58
+ #ifndef _FSIZE_T_DEFINED
59
+ typedef unsigned long _fsize_t;
60
+ #define _FSIZE_T_DEFINED
61
+ #endif
62
+
63
+ #ifndef _WFINDDATA_T_DEFINED
64
+ struct _wfinddata_t {
65
+ unsigned attrib;
66
+ time_t time_create; /* -1 for FAT file systems */
67
+ time_t time_access; /* -1 for FAT file systems */
68
+ time_t time_write;
69
+ _fsize_t size;
70
+ wchar_t name[FILENAME_MAX]; /* may include spaces. */
71
+ };
72
+ struct _wfinddatai64_t {
73
+ unsigned attrib;
74
+ time_t time_create;
75
+ time_t time_access;
76
+ time_t time_write;
77
+ __int64 size;
78
+ wchar_t name[FILENAME_MAX];
79
+ };
80
+ #define _WFINDDATA_T_DEFINED
81
+ #endif
82
+
83
+ /* Wide character versions. Also defined in io.h. */
84
+ /* CHECK: I believe these only exist in MSVCRT, and not in CRTDLL. Also
85
+ applies to other wide character versions? */
86
+ #if !defined (_WIO_DEFINED)
87
+ #if defined (__MSVCRT__)
88
+ int _waccess (const wchar_t*, int);
89
+ int _wchmod (const wchar_t*, int);
90
+ int _wcreat (const wchar_t*, int);
91
+ long _wfindfirst (wchar_t*, struct _wfinddata_t *);
92
+ int _wfindnext (long, struct _wfinddata_t *);
93
+ int _wunlink (const wchar_t*);
94
+ int _wopen (const wchar_t*, int, ...);
95
+ int _wsopen (const wchar_t*, int, int, ...);
96
+ wchar_t* _wmktemp (wchar_t*);
97
+ long _wfindfirsti64 (const wchar_t*, struct _wfinddatai64_t*);
98
+ int _wfindnexti64 (long, struct _wfinddatai64_t*);
99
+ #endif /* defined (__MSVCRT__) */
100
+ #define _WIO_DEFINED
101
+ #endif /* _WIO_DEFINED */
102
+
103
+ #ifndef _WSTDIO_DEFINED
104
+ /* also in stdio.h - keep in sync */
105
+ int fwprintf (FILE*, const wchar_t*, ...);
106
+ int wprintf (const wchar_t*, ...);
107
+ int swprintf (wchar_t*, const wchar_t*, ...);
108
+ int _snwprintf (wchar_t*, size_t, const wchar_t*, ...);
109
+ int vfwprintf (FILE*, const wchar_t*, va_list);
110
+ int vwprintf (const wchar_t*, va_list);
111
+ int vswprintf (wchar_t*, const wchar_t*, va_list);
112
+ int _vsnwprintf (wchar_t*, size_t, const wchar_t*, va_list);
113
+ int fwscanf (FILE*, const wchar_t*, ...);
114
+ int wscanf (const wchar_t*, ...);
115
+ int swscanf (const wchar_t*, const wchar_t*, ...);
116
+ wint_t fgetwc (FILE*);
117
+ wint_t fputwc (wchar_t, FILE*);
118
+ wint_t ungetwc (wchar_t, FILE*);
119
+
120
+ #ifndef __NO_ISOCEXT /* externs in libmingwex.a */
121
+ int snwprintf(wchar_t* s, size_t n, const wchar_t* format, ...);
122
+ extern inline int vsnwprintf (wchar_t* s, size_t n, const wchar_t* format,
123
+ va_list arg)
124
+ { return _vsnwprintf ( s, n, format, arg); }
125
+ #endif
126
+
127
+ #ifdef __MSVCRT__
128
+ wchar_t* fgetws (wchar_t*, int, FILE*);
129
+ int fputws (const wchar_t*, FILE*);
130
+ wint_t getwc (FILE*);
131
+ wint_t getwchar (void);
132
+ wchar_t* _getws (wchar_t*);
133
+ wint_t putwc (wint_t, FILE*);
134
+ int _putws (const wchar_t*);
135
+ wint_t putwchar (wint_t);
136
+
137
+ FILE* _wfopen (const wchar_t*, const wchar_t*);
138
+ FILE* _wfreopen (const wchar_t*, const wchar_t*, FILE*);
139
+ FILE* _wfsopen (const wchar_t*, const wchar_t*, int);
140
+ wchar_t* _wtmpnam (wchar_t*);
141
+ wchar_t* _wtempnam (const wchar_t*, const wchar_t*);
142
+ int _wrename (const wchar_t*, const wchar_t*);
143
+ int _wremove (const wchar_t*)
144
+
145
+ FILE* _wpopen (const wchar_t*, const wchar_t*)
146
+ void _wperror (const wchar_t*);
147
+ #endif /* __MSVCRT__ */
148
+ #define _WSTDIO_DEFINED
149
+ #endif /* _WSTDIO_DEFINED */
150
+
151
+ #ifndef _WDIRECT_DEFINED
152
+ /* Also in direct.h */
153
+ #ifdef __MSVCRT__
154
+ int _wchdir (const wchar_t*);
155
+ wchar_t* _wgetcwd (wchar_t*, int);
156
+ wchar_t* _wgetdcwd (int, wchar_t*, int);
157
+ int _wmkdir (const wchar_t*);
158
+ int _wrmdir (const wchar_t*);
159
+ #endif /* __MSVCRT__ */
160
+ #define _WDIRECT_DEFINED
161
+ #endif /* _WDIRECT_DEFINED */
162
+
163
+ #ifndef _STAT_DEFINED
164
+ /*
165
+ * The structure manipulated and returned by stat and fstat.
166
+ *
167
+ * NOTE: If called on a directory the values in the time fields are not only
168
+ * invalid, they will cause localtime et. al. to return NULL. And calling
169
+ * asctime with a NULL pointer causes an Invalid Page Fault. So watch it!
170
+ */
171
+ struct _stat
172
+ {
173
+ _dev_t st_dev; /* Equivalent to drive number 0=A 1=B ... */
174
+ _ino_t st_ino; /* Always zero ? */
175
+ _mode_t st_mode; /* See above constants */
176
+ short st_nlink; /* Number of links. */
177
+ short st_uid; /* User: Maybe significant on NT ? */
178
+ short st_gid; /* Group: Ditto */
179
+ _dev_t st_rdev; /* Seems useless (not even filled in) */
180
+ _off_t st_size; /* File size in bytes */
181
+ time_t st_atime; /* Accessed date (always 00:00 hrs local
182
+ * on FAT) */
183
+ time_t st_mtime; /* Modified time */
184
+ time_t st_ctime; /* Creation time */
185
+ };
186
+
187
+ struct stat
188
+ {
189
+ _dev_t st_dev; /* Equivalent to drive number 0=A 1=B ... */
190
+ _ino_t st_ino; /* Always zero ? */
191
+ _mode_t st_mode; /* See above constants */
192
+ short st_nlink; /* Number of links. */
193
+ short st_uid; /* User: Maybe significant on NT ? */
194
+ short st_gid; /* Group: Ditto */
195
+ _dev_t st_rdev; /* Seems useless (not even filled in) */
196
+ _off_t st_size; /* File size in bytes */
197
+ time_t st_atime; /* Accessed date (always 00:00 hrs local
198
+ * on FAT) */
199
+ time_t st_mtime; /* Modified time */
200
+ time_t st_ctime; /* Creation time */
201
+ };
202
+ #if defined (__MSVCRT__)
203
+ struct _stati64 {
204
+ _dev_t st_dev;
205
+ _ino_t st_ino;
206
+ unsigned short st_mode;
207
+ short st_nlink;
208
+ short st_uid;
209
+ short st_gid;
210
+ _dev_t st_rdev;
211
+ __int64 st_size;
212
+ time_t st_atime;
213
+ time_t st_mtime;
214
+ time_t st_ctime;
215
+ };
216
+ #endif /* __MSVCRT__ */
217
+ #define _STAT_DEFINED
218
+ #endif /* _STAT_DEFINED */
219
+
220
+ #if !defined ( _WSTAT_DEFINED)
221
+ /* also declared in sys/stat.h */
222
+ #if defined __MSVCRT__
223
+ int _wstat (const wchar_t*, struct _stat*);
224
+ int _wstati64 (const wchar_t*, struct _stati64*);
225
+ #endif /* __MSVCRT__ */
226
+ #define _WSTAT_DEFINED
227
+ #endif /* ! _WSTAT_DEFIND */
228
+
229
+ #ifndef _WTIME_DEFINED
230
+ #ifdef __MSVCRT__
231
+ /* wide function prototypes, also declared in time.h */
232
+ wchar_t* _wasctime (const struct tm*);
233
+ wchar_t* _wctime (const time_t*);
234
+ wchar_t* _wstrdate (wchar_t*);
235
+ wchar_t* _wstrtime (wchar_t*);
236
+ #endif /* __MSVCRT__ */
237
+ size_t wcsftime (wchar_t*, size_t, const wchar_t*, const struct tm*);
238
+ #define _WTIME_DEFINED
239
+ #endif /* _WTIME_DEFINED */
240
+
241
+ #ifndef _WLOCALE_DEFINED /* also declared in locale.h */
242
+ wchar_t* _wsetlocale (int, const wchar_t*);
243
+ #define _WLOCALE_DEFINED
244
+ #endif
245
+
246
+ #ifndef _WSTDLIB_DEFINED /* also declared in stdlib.h */
247
+ long wcstol (const wchar_t*, wchar_t**, int);
248
+ unsigned long wcstoul (const wchar_t*, wchar_t**, int);
249
+ double wcstod (const wchar_t*, wchar_t**);
250
+ #if !defined __NO_ISOCEXT /* extern stub in static libmingwex.a */
251
+ extern __inline__ float wcstof( const wchar_t *nptr, wchar_t **endptr)
252
+ { return (wcstod(nptr, endptr)); }
253
+ #endif /* __NO_ISOCEXT */
254
+ #define _WSTDLIB_DEFINED
255
+ #endif
256
+
257
+
258
+ #ifndef _NO_OLDNAMES
259
+
260
+ /* Wide character versions. Also declared in io.h. */
261
+ /* CHECK: Are these in the oldnames??? NO! */
262
+ #if (0)
263
+ int waccess (const wchar_t *, int);
264
+ int wchmod (const wchar_t *, int);
265
+ int wcreat (const wchar_t *, int);
266
+ long wfindfirst (wchar_t *, struct _wfinddata_t *);
267
+ int wfindnext (long, struct _wfinddata_t *);
268
+ int wunlink (const wchar_t *);
269
+ int wrename (const wchar_t *, const wchar_t *);
270
+ int wremove (const wchar_t *);
271
+ int wopen (const wchar_t *, int, ...);
272
+ int wsopen (const wchar_t *, int, int, ...);
273
+ wchar_t* wmktemp (wchar_t *);
274
+ #endif
275
+ #endif /* _NO_OLDNAMES */
276
+
277
+ #endif /* not __STRICT_ANSI__ */
278
+
279
+ /* These are resolved by -lmsvcp60 */
280
+ /* If you don't have msvcp60.dll in your windows system directory, you can
281
+ easily obtain it with a search from your favorite search engine. */
282
+ typedef int mbstate_t;
283
+ typedef wchar_t _Wint_t;
284
+
285
+ wint_t btowc(int);
286
+ size_t mbrlen(const char *, size_t, mbstate_t *);
287
+ size_t mbrtowc(wchar_t *, const char *, size_t, mbstate_t *);
288
+ size_t mbsrtowcs(wchar_t *, const char **, size_t, mbstate_t *);
289
+
290
+ size_t wcrtomb(char *, wchar_t, mbstate_t *);
291
+ size_t wcsrtombs(char *, const wchar_t **, size_t, mbstate_t *);
292
+ int wctob(wint_t);
293
+
294
+ #ifndef __NO_ISOCEXT /* these need static lib libmingwex.a */
295
+ extern inline int fwide(FILE* stream, int mode) {return -1;} /* limited to byte orientation */
296
+ extern inline int mbsinit(const mbstate_t* ps) {return 1;}
297
+ wchar_t* wmemset(wchar_t* s, wchar_t c, size_t n);
298
+ wchar_t* wmemchr(const wchar_t* s, wchar_t c, size_t n);
299
+ int wmemcmp(const wchar_t* s1, const wchar_t * s2, size_t n);
300
+ wchar_t* wmemcpy(wchar_t* __restrict__ s1, const wchar_t* __restrict__ s2,
301
+ size_t n);
302
+ wchar_t* wmemmove(wchar_t* s1, const wchar_t* s2, size_t n);
303
+ long long wcstoll(const wchar_t* __restrict__ nptr,
304
+ wchar_t** __restrict__ endptr, int base);
305
+ unsigned long long wcstoull(const wchar_t* __restrict__ nptr,
306
+ wchar_t ** __restrict__ endptr, int base);
307
+
308
+ #endif /* __NO_ISOCEXT */
309
+
310
+
311
+ #ifdef __cplusplus
312
+ } /* end of extern "C" */
313
+ #endif
314
+
315
+ #endif /* Not RC_INVOKED */
316
+
317
+ #endif /* not _WCHAR_H_ */
318
+