standalone-ruby 1.5.0 → 1.5.1

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 (96) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +4 -0
  3. data/lib/displayer.rb +2 -4
  4. data/lib/exe_packer.rb +1 -15
  5. data/lib/launcher.rb +4 -17
  6. data/lib/launcher_handler.rb +0 -12
  7. data/lib/parameter_parser.rb +0 -9
  8. data/lib/ruby_copy.rb +0 -6
  9. data/lib/sfx_generator.rb +0 -2
  10. data/lib/version/version.rb +1 -1
  11. metadata +2 -87
  12. data/lib/data/bat-cmd/default_bat_cmd.txt +0 -9
  13. data/lib/data/exe_template/launcher_stub.c +0 -30
  14. data/lib/data/exe_template/launcher_stub.cpp +0 -9
  15. data/lib/data/tcc/include/_mingw.h +0 -54
  16. data/lib/data/tcc/include/assert.h +0 -71
  17. data/lib/data/tcc/include/conio.h +0 -159
  18. data/lib/data/tcc/include/ctype.h +0 -232
  19. data/lib/data/tcc/include/dir.h +0 -26
  20. data/lib/data/tcc/include/direct.h +0 -95
  21. data/lib/data/tcc/include/dirent.h +0 -96
  22. data/lib/data/tcc/include/dos.h +0 -110
  23. data/lib/data/tcc/include/errno.h +0 -117
  24. data/lib/data/tcc/include/excpt.h +0 -20
  25. data/lib/data/tcc/include/fcntl.h +0 -135
  26. data/lib/data/tcc/include/fenv.h +0 -85
  27. data/lib/data/tcc/include/float.h +0 -224
  28. data/lib/data/tcc/include/inttypes.h +0 -275
  29. data/lib/data/tcc/include/io.h +0 -296
  30. data/lib/data/tcc/include/limits.h +0 -115
  31. data/lib/data/tcc/include/locale.h +0 -100
  32. data/lib/data/tcc/include/malloc.h +0 -87
  33. data/lib/data/tcc/include/math.h +0 -438
  34. data/lib/data/tcc/include/mem.h +0 -8
  35. data/lib/data/tcc/include/memory.h +0 -9
  36. data/lib/data/tcc/include/process.h +0 -158
  37. data/lib/data/tcc/include/setjmp.h +0 -72
  38. data/lib/data/tcc/include/share.h +0 -44
  39. data/lib/data/tcc/include/signal.h +0 -111
  40. data/lib/data/tcc/include/stdarg.h +0 -16
  41. data/lib/data/tcc/include/stdbool.h +0 -10
  42. data/lib/data/tcc/include/stddef.h +0 -26
  43. data/lib/data/tcc/include/stdint.h +0 -184
  44. data/lib/data/tcc/include/stdio.h +0 -413
  45. data/lib/data/tcc/include/stdlib.h +0 -482
  46. data/lib/data/tcc/include/string.h +0 -206
  47. data/lib/data/tcc/include/sys/fcntl.h +0 -8
  48. data/lib/data/tcc/include/sys/file.h +0 -9
  49. data/lib/data/tcc/include/sys/locking.h +0 -52
  50. data/lib/data/tcc/include/sys/stat.h +0 -190
  51. data/lib/data/tcc/include/sys/time.h +0 -3
  52. data/lib/data/tcc/include/sys/timeb.h +0 -82
  53. data/lib/data/tcc/include/sys/types.h +0 -118
  54. data/lib/data/tcc/include/sys/unistd.h +0 -9
  55. data/lib/data/tcc/include/sys/utime.h +0 -89
  56. data/lib/data/tcc/include/tchar.h +0 -367
  57. data/lib/data/tcc/include/time.h +0 -219
  58. data/lib/data/tcc/include/unistd.h +0 -10
  59. data/lib/data/tcc/include/values.h +0 -4
  60. data/lib/data/tcc/include/varargs.h +0 -11
  61. data/lib/data/tcc/include/wchar.h +0 -318
  62. data/lib/data/tcc/include/wctype.h +0 -127
  63. data/lib/data/tcc/include/winapi/basetsd.h +0 -119
  64. data/lib/data/tcc/include/winapi/basetyps.h +0 -144
  65. data/lib/data/tcc/include/winapi/winbase.h +0 -1852
  66. data/lib/data/tcc/include/winapi/wincon.h +0 -207
  67. data/lib/data/tcc/include/winapi/windef.h +0 -240
  68. data/lib/data/tcc/include/winapi/windows.h +0 -176
  69. data/lib/data/tcc/include/winapi/winerror.h +0 -1054
  70. data/lib/data/tcc/include/winapi/wingdi.h +0 -2843
  71. data/lib/data/tcc/include/winapi/winnetwk.h +0 -346
  72. data/lib/data/tcc/include/winapi/winnls.h +0 -651
  73. data/lib/data/tcc/include/winapi/winnt.h +0 -2667
  74. data/lib/data/tcc/include/winapi/winreg.h +0 -159
  75. data/lib/data/tcc/include/winapi/winsvc.h +0 -309
  76. data/lib/data/tcc/include/winapi/winuser.h +0 -3472
  77. data/lib/data/tcc/include/winapi/winver.h +0 -133
  78. data/lib/data/tcc/lib/gdi32.def +0 -337
  79. data/lib/data/tcc/lib/kernel32.def +0 -763
  80. data/lib/data/tcc/lib/libtcc1.a +0 -0
  81. data/lib/data/tcc/lib/msvcrt.def +0 -782
  82. data/lib/data/tcc/lib/user32.def +0 -654
  83. data/lib/data/tcc/tcc.exe +0 -0
  84. data/lib/data/tcc/tiny_impdef.exe +0 -0
  85. data/lib/data/tcc/tiny_libmaker.exe +0 -0
  86. data/lib/data/vbs/default_vbs.txt +0 -7
  87. data/lib/data/vbs/vbs_gui.txt +0 -8
  88. data/lib/logger_helper.rb +0 -24
  89. data/lib/utils/config_generator.rb +0 -5
  90. data/lib/utils/displayer.rb +0 -64
  91. data/lib/utils/exe_packer.rb +0 -72
  92. data/lib/utils/launcher.rb +0 -77
  93. data/lib/utils/launcher_handler.rb +0 -111
  94. data/lib/utils/logger_helper.rb +0 -24
  95. data/lib/utils/parameter_parser.rb +0 -211
  96. data/lib/utils/ruby_copy.rb +0 -26
@@ -1,158 +0,0 @@
1
- /*
2
- * process.h
3
- *
4
- * Function calls for spawning child processes.
5
- *
6
- * This file is part of the Mingw32 package.
7
- *
8
- * Contributors:
9
- * Created by Colin Peters <colin@bird.fu.is.saga-u.ac.jp>
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 __STRICT_ANSI__
28
-
29
- #ifndef _PROCESS_H_
30
- #define _PROCESS_H_
31
-
32
- /* All the headers include this file. */
33
- #include <_mingw.h>
34
-
35
- /* Includes a definition of _pid_t and pid_t */
36
- #include <sys/types.h>
37
-
38
- /*
39
- * Constants for cwait actions.
40
- * Obsolete for Win32.
41
- */
42
- #define _WAIT_CHILD 0
43
- #define _WAIT_GRANDCHILD 1
44
-
45
- #ifndef _NO_OLDNAMES
46
- #define WAIT_CHILD _WAIT_CHILD
47
- #define WAIT_GRANDCHILD _WAIT_GRANDCHILD
48
- #endif /* Not _NO_OLDNAMES */
49
-
50
- /*
51
- * Mode constants for spawn functions.
52
- */
53
- #define _P_WAIT 0
54
- #define _P_NOWAIT 1
55
- #define _P_OVERLAY 2
56
- #define _OLD_P_OVERLAY _P_OVERLAY
57
- #define _P_NOWAITO 3
58
- #define _P_DETACH 4
59
-
60
- #ifndef _NO_OLDNAMES
61
- #define P_WAIT _P_WAIT
62
- #define P_NOWAIT _P_NOWAIT
63
- #define P_OVERLAY _P_OVERLAY
64
- #define OLD_P_OVERLAY _OLD_P_OVERLAY
65
- #define P_NOWAITO _P_NOWAITO
66
- #define P_DETACH _P_DETACH
67
- #endif /* Not _NO_OLDNAMES */
68
-
69
-
70
- #ifndef RC_INVOKED
71
-
72
- #ifdef __cplusplus
73
- extern "C" {
74
- #endif
75
-
76
- void _cexit(void);
77
- void _c_exit(void);
78
-
79
- int _cwait (int*, _pid_t, int);
80
-
81
- _pid_t _getpid(void);
82
-
83
- int _execl (const char*, const char*, ...);
84
- int _execle (const char*, const char*, ...);
85
- int _execlp (const char*, const char*, ...);
86
- int _execlpe (const char*, const char*, ...);
87
- int _execv (const char*, char* const*);
88
- int _execve (const char*, char* const*, char* const*);
89
- int _execvp (const char*, char* const*);
90
- int _execvpe (const char*, char* const*, char* const*);
91
-
92
- int _spawnl (int, const char*, const char*, ...);
93
- int _spawnle (int, const char*, const char*, ...);
94
- int _spawnlp (int, const char*, const char*, ...);
95
- int _spawnlpe (int, const char*, const char*, ...);
96
- int _spawnv (int, const char*, char* const*);
97
- int _spawnve (int, const char*, char* const*, char* const*);
98
- int _spawnvp (int, const char*, char* const*);
99
- int _spawnvpe (int, const char*, char* const*, char* const*);
100
-
101
- /*
102
- * The functions _beginthreadex and _endthreadex are not provided by CRTDLL.
103
- * They are provided by MSVCRT.
104
- *
105
- * NOTE: Apparently _endthread calls CloseHandle on the handle of the thread,
106
- * making for race conditions if you are not careful. Basically you have to
107
- * make sure that no-one is going to do *anything* with the thread handle
108
- * after the thread calls _endthread or returns from the thread function.
109
- *
110
- * NOTE: No old names for these functions. Use the underscore.
111
- */
112
- unsigned long
113
- _beginthread (void (*)(void *), unsigned, void*);
114
- void _endthread (void);
115
-
116
- #ifdef __MSVCRT__
117
- unsigned long
118
- _beginthreadex (void *, unsigned, unsigned (__stdcall *) (void *),
119
- void*, unsigned, unsigned*);
120
- void _endthreadex (unsigned);
121
- #endif
122
-
123
-
124
- #ifndef _NO_OLDNAMES
125
- /*
126
- * Functions without the leading underscore, for portability. These functions
127
- * live in liboldnames.a.
128
- */
129
- int cwait (int*, pid_t, int);
130
- pid_t getpid (void);
131
- int execl (const char*, const char*, ...);
132
- int execle (const char*, const char*, ...);
133
- int execlp (const char*, const char*, ...);
134
- int execlpe (const char*, const char*, ...);
135
- int execv (const char*, char* const*);
136
- int execve (const char*, char* const*, char* const*);
137
- int execvp (const char*, char* const*);
138
- int execvpe (const char*, char* const*, char* const*);
139
- int spawnl (int, const char*, const char*, ...);
140
- int spawnle (int, const char*, const char*, ...);
141
- int spawnlp (int, const char*, const char*, ...);
142
- int spawnlpe (int, const char*, const char*, ...);
143
- int spawnv (int, const char*, char* const*);
144
- int spawnve (int, const char*, char* const*, char* const*);
145
- int spawnvp (int, const char*, char* const*);
146
- int spawnvpe (int, const char*, char* const*, char* const*);
147
- #endif /* Not _NO_OLDNAMES */
148
-
149
- #ifdef __cplusplus
150
- }
151
- #endif
152
-
153
- #endif /* Not RC_INVOKED */
154
-
155
- #endif /* _PROCESS_H_ not defined */
156
-
157
- #endif /* Not __STRICT_ANSI__ */
158
-
@@ -1,72 +0,0 @@
1
- /*
2
- * setjmp.h
3
- *
4
- * Declarations supporting setjmp and longjump, a method for avoiding
5
- * the normal function call return sequence. (Bleah!)
6
- *
7
- * This file is part of the Mingw32 package.
8
- *
9
- * Contributors:
10
- * Created by Colin Peters <colin@bird.fu.is.saga-u.ac.jp>
11
- *
12
- * THIS SOFTWARE IS NOT COPYRIGHTED
13
- *
14
- * This source code is offered for use in the public domain. You may
15
- * use, modify or distribute it freely.
16
- *
17
- * This code is distributed in the hope that it will be useful but
18
- * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
19
- * DISCLAIMED. This includes but is not limited to warranties of
20
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
21
- *
22
- * $Revision: 1.2 $
23
- * $Author: bellard $
24
- * $Date: 2005/04/17 13:14:29 $
25
- *
26
- */
27
-
28
- #ifndef _SETJMP_H_
29
- #define _SETJMP_H_
30
-
31
- /* All the headers include this file. */
32
- #include <_mingw.h>
33
-
34
- #ifndef RC_INVOKED
35
-
36
- #ifdef __cplusplus
37
- extern "C" {
38
- #endif
39
-
40
- /*
41
- * The buffer used by setjmp to store the information used by longjmp
42
- * to perform it's evil goto-like work. The size of this buffer was
43
- * determined through experimentation; it's contents are a mystery.
44
- * NOTE: This was determined on an i386 (actually a Pentium). The
45
- * contents could be different on an Alpha or something else.
46
- */
47
- #define _JBLEN 16
48
- #define _JBTYPE int
49
- typedef _JBTYPE jmp_buf[_JBLEN];
50
-
51
- /*
52
- * The function provided by CRTDLL which appears to do the actual work
53
- * of setjmp.
54
- */
55
- int _setjmp (jmp_buf);
56
-
57
- #define setjmp(x) _setjmp(x)
58
-
59
- /*
60
- * Return to the last setjmp call and act as if setjmp had returned
61
- * nVal (which had better be non-zero!).
62
- */
63
- void longjmp (jmp_buf, int);
64
-
65
- #ifdef __cplusplus
66
- }
67
- #endif
68
-
69
- #endif /* Not RC_INVOKED */
70
-
71
- #endif /* Not _SETJMP_H_ */
72
-
@@ -1,44 +0,0 @@
1
- /*
2
- * share.h
3
- *
4
- * Constants for file sharing functions.
5
- *
6
- * This file is part of the Mingw32 package.
7
- *
8
- * Contributors:
9
- * Created by Colin Peters <colin@bird.fu.is.saga-u.ac.jp>
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 __STRICT_ANSI__
28
-
29
- #ifndef _SHARE_H_
30
- #define _SHARE_H_
31
-
32
- /* All the headers include this file. */
33
- #include <_mingw.h>
34
-
35
- #define SH_COMPAT 0x00 /* Compatibility */
36
- #define SH_DENYRW 0x10 /* Deny read/write */
37
- #define SH_DENYWR 0x20 /* Deny write */
38
- #define SH_DENYRD 0x30 /* Deny read */
39
- #define SH_DENYNO 0x40 /* Deny nothing */
40
-
41
- #endif /* Not _SHARE_H_ */
42
-
43
- #endif /* Not __STRICT_ANSI__ */
44
-
@@ -1,111 +0,0 @@
1
- /*
2
- * signal.h
3
- *
4
- * A way to set handlers for exceptional conditions (also known as signals).
5
- *
6
- * This file is part of the Mingw32 package.
7
- *
8
- * Contributors:
9
- * Created by Colin Peters <colin@bird.fu.is.saga-u.ac.jp>
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 _SIGNAL_H_
28
- #define _SIGNAL_H_
29
-
30
- /* All the headers include this file. */
31
- #include <_mingw.h>
32
-
33
- /*
34
- * The actual signal values. Using other values with signal
35
- * produces a SIG_ERR return value.
36
- *
37
- * NOTE: SIGINT is produced when the user presses Ctrl-C.
38
- * SIGILL has not been tested.
39
- * SIGFPE doesn't seem to work?
40
- * SIGSEGV does not catch writing to a NULL pointer (that shuts down
41
- * your app; can you say "segmentation violation core dump"?).
42
- * SIGTERM comes from what kind of termination request exactly?
43
- * SIGBREAK is indeed produced by pressing Ctrl-Break.
44
- * SIGABRT is produced by calling abort.
45
- * TODO: The above results may be related to not installing an appropriate
46
- * structured exception handling frame. Results may be better if I ever
47
- * manage to get the SEH stuff down.
48
- */
49
- #define SIGINT 2 /* Interactive attention */
50
- #define SIGILL 4 /* Illegal instruction */
51
- #define SIGFPE 8 /* Floating point error */
52
- #define SIGSEGV 11 /* Segmentation violation */
53
- #define SIGTERM 15 /* Termination request */
54
- #define SIGBREAK 21 /* Control-break */
55
- #define SIGABRT 22 /* Abnormal termination (abort) */
56
-
57
- #define NSIG 23 /* maximum signal number + 1 */
58
-
59
- #ifndef RC_INVOKED
60
-
61
- #ifndef _SIG_ATOMIC_T_DEFINED
62
- typedef int sig_atomic_t;
63
- #define _SIG_ATOMIC_T_DEFINED
64
- #endif
65
-
66
- /*
67
- * The prototypes (below) are the easy part. The hard part is figuring
68
- * out what signals are available and what numbers they are assigned
69
- * along with appropriate values of SIG_DFL and SIG_IGN.
70
- */
71
-
72
- /*
73
- * A pointer to a signal handler function. A signal handler takes a
74
- * single int, which is the signal it handles.
75
- */
76
- typedef void (*__p_sig_fn_t)(int);
77
-
78
- /*
79
- * These are special values of signal handler pointers which are
80
- * used to send a signal to the default handler (SIG_DFL), ignore
81
- * the signal (SIG_IGN), or indicate an error return (SIG_ERR).
82
- */
83
- #define SIG_DFL ((__p_sig_fn_t) 0)
84
- #define SIG_IGN ((__p_sig_fn_t) 1)
85
- #define SIG_ERR ((__p_sig_fn_t) -1)
86
-
87
- #ifdef __cplusplus
88
- extern "C" {
89
- #endif
90
-
91
- /*
92
- * Call signal to set the signal handler for signal sig to the
93
- * function pointed to by handler. Returns a pointer to the
94
- * previous handler, or SIG_ERR if an error occurs. Initially
95
- * unhandled signals defined above will return SIG_DFL.
96
- */
97
- __p_sig_fn_t signal(int, __p_sig_fn_t);
98
-
99
- /*
100
- * Raise the signal indicated by sig. Returns non-zero on success.
101
- */
102
- int raise (int);
103
-
104
- #ifdef __cplusplus
105
- }
106
- #endif
107
-
108
- #endif /* Not RC_INVOKED */
109
-
110
- #endif /* Not _SIGNAL_H_ */
111
-
@@ -1,16 +0,0 @@
1
- #ifndef _STDARG_H
2
- #define _STDARG_H
3
-
4
- typedef char *va_list;
5
-
6
- /* only correct for i386 */
7
- #define va_start(ap,last) ap = ((char *)&(last)) + ((sizeof(last)+3)&~3)
8
- #define va_arg(ap,type) (ap += (sizeof(type)+3)&~3, *(type *)(ap - ((sizeof(type)+3)&~3)))
9
- #define va_copy(dest, src) (dest) = (src)
10
- #define va_end(ap)
11
-
12
- /* fix a buggy dependency on GCC in libio.h */
13
- typedef va_list __gnuc_va_list;
14
- #define _VA_LIST_DEFINED
15
-
16
- #endif
@@ -1,10 +0,0 @@
1
- #ifndef _STDBOOL_H
2
- #define _STDBOOL_H
3
-
4
- /* ISOC99 boolean */
5
-
6
- #define bool _Bool
7
- #define true 1
8
- #define false 0
9
-
10
- #endif /* _STDBOOL_H */
@@ -1,26 +0,0 @@
1
- #ifndef _STDDEF_H
2
- #define _STDDEF_H
3
-
4
- #define NULL ((void *)0)
5
- typedef __SIZE_TYPE__ size_t;
6
- typedef __WCHAR_TYPE__ wchar_t;
7
- typedef __PTRDIFF_TYPE__ ptrdiff_t;
8
- #define offsetof(type, field) ((size_t) &((type *)0)->field)
9
-
10
- /* need to do that because of glibc 2.1 bug (should have a way to test
11
- presence of 'long long' without __GNUC__, or TCC should define
12
- __GNUC__ ? */
13
- #if !defined(__int8_t_defined) && !defined(__dietlibc__)
14
- #define __int8_t_defined
15
- typedef char int8_t;
16
- typedef short int int16_t;
17
- typedef int int32_t;
18
- typedef long long int int64_t;
19
- #endif
20
-
21
- #ifdef __i386__
22
- void *_alloca(size_t);
23
- #define alloca _alloca
24
- #endif
25
-
26
- #endif
@@ -1,184 +0,0 @@
1
- /* ISO C9x 7.18 Integer types <stdint.h>
2
- * Based on ISO/IEC SC22/WG14 9899 Committee draft (SC22 N2794)
3
- *
4
- * THIS SOFTWARE IS NOT COPYRIGHTED
5
- *
6
- * Contributor: Danny Smith <danny_r_smith_2001@yahoo.co.nz>
7
- *
8
- * This source code is offered for use in the public domain. You may
9
- * use, modify or distribute it freely.
10
- *
11
- * This code is distributed in the hope that it will be useful but
12
- * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
13
- * DISCLAIMED. This includes but is not limited to warranties of
14
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
15
- *
16
- * Date: 2000-12-02
17
- */
18
-
19
-
20
- #ifndef _STDINT_H
21
- #define _STDINT_H
22
-
23
- /* 7.18.1.1 Exact-width integer types */
24
- typedef signed char int8_t;
25
- typedef unsigned char uint8_t;
26
- typedef short int16_t;
27
- typedef unsigned short uint16_t;
28
- typedef int int32_t;
29
- typedef unsigned uint32_t;
30
- typedef long long int64_t;
31
- typedef unsigned long long uint64_t;
32
-
33
- /* 7.18.1.2 Minimum-width integer types */
34
- typedef signed char int_least8_t;
35
- typedef unsigned char uint_least8_t;
36
- typedef short int_least16_t;
37
- typedef unsigned short uint_least16_t;
38
- typedef int int_least32_t;
39
- typedef unsigned uint_least32_t;
40
- typedef long long int_least64_t;
41
- typedef unsigned long long uint_least64_t;
42
-
43
- /* 7.18.1.3 Fastest minimum-width integer types
44
- * Not actually guaranteed to be fastest for all purposes
45
- * Here we use the exact-width types for 8 and 16-bit ints.
46
- */
47
- typedef char int_fast8_t;
48
- typedef unsigned char uint_fast8_t;
49
- typedef short int_fast16_t;
50
- typedef unsigned short uint_fast16_t;
51
- typedef int int_fast32_t;
52
- typedef unsigned int uint_fast32_t;
53
- typedef long long int_fast64_t;
54
- typedef unsigned long long uint_fast64_t;
55
-
56
- /* 7.18.1.4 Integer types capable of holding object pointers */
57
- typedef int intptr_t;
58
- typedef unsigned uintptr_t;
59
-
60
- /* 7.18.1.5 Greatest-width integer types */
61
- typedef long long intmax_t;
62
- typedef unsigned long long uintmax_t;
63
-
64
- /* 7.18.2 Limits of specified-width integer types */
65
- #if !defined ( __cplusplus) || defined (__STDC_LIMIT_MACROS)
66
-
67
- /* 7.18.2.1 Limits of exact-width integer types */
68
- #define INT8_MIN (-128)
69
- #define INT16_MIN (-32768)
70
- #define INT32_MIN (-2147483647 - 1)
71
- #define INT64_MIN (-9223372036854775807LL - 1)
72
-
73
- #define INT8_MAX 127
74
- #define INT16_MAX 32767
75
- #define INT32_MAX 2147483647
76
- #define INT64_MAX 9223372036854775807LL
77
-
78
- #define UINT8_MAX 0xff /* 255U */
79
- #define UINT16_MAX 0xffff /* 65535U */
80
- #define UINT32_MAX 0xffffffff /* 4294967295U */
81
- #define UINT64_MAX 0xffffffffffffffffULL /* 18446744073709551615ULL */
82
-
83
- /* 7.18.2.2 Limits of minimum-width integer types */
84
- #define INT_LEAST8_MIN INT8_MIN
85
- #define INT_LEAST16_MIN INT16_MIN
86
- #define INT_LEAST32_MIN INT32_MIN
87
- #define INT_LEAST64_MIN INT64_MIN
88
-
89
- #define INT_LEAST8_MAX INT8_MAX
90
- #define INT_LEAST16_MAX INT16_MAX
91
- #define INT_LEAST32_MAX INT32_MAX
92
- #define INT_LEAST64_MAX INT64_MAX
93
-
94
- #define UINT_LEAST8_MAX UINT8_MAX
95
- #define UINT_LEAST16_MAX UINT16_MAX
96
- #define UINT_LEAST32_MAX UINT32_MAX
97
- #define UINT_LEAST64_MAX UINT64_MAX
98
-
99
- /* 7.18.2.3 Limits of fastest minimum-width integer types */
100
- #define INT_FAST8_MIN INT8_MIN
101
- #define INT_FAST16_MIN INT16_MIN
102
- #define INT_FAST32_MIN INT32_MIN
103
- #define INT_FAST64_MIN INT64_MIN
104
-
105
- #define INT_FAST8_MAX INT8_MAX
106
- #define INT_FAST16_MAX INT16_MAX
107
- #define INT_FAST32_MAX INT32_MAX
108
- #define INT_FAST64_MAX INT64_MAX
109
-
110
- #define UINT_FAST8_MAX UINT8_MAX
111
- #define UINT_FAST16_MAX UINT16_MAX
112
- #define UINT_FAST32_MAX UINT32_MAX
113
- #define UINT_FAST64_MAX UINT64_MAX
114
-
115
- /* 7.18.2.4 Limits of integer types capable of holding
116
- object pointers */
117
- #define INTPTR_MIN INT32_MIN
118
- #define INTPTR_MAX INT32_MAX
119
- #define UINTPTR_MAX UINT32_MAX
120
-
121
- /* 7.18.2.5 Limits of greatest-width integer types */
122
- #define INTMAX_MIN INT64_MIN
123
- #define INTMAX_MAX INT64_MAX
124
- #define UINTMAX_MAX UINT64_MAX
125
-
126
- /* 7.18.3 Limits of other integer types */
127
- #define PTRDIFF_MIN INT32_MIN
128
- #define PTRDIFF_MAX INT32_MAX
129
-
130
- #define SIG_ATOMIC_MIN INT32_MIN
131
- #define SIG_ATOMIC_MAX INT32_MAX
132
-
133
- #define SIZE_MAX UINT32_MAX
134
-
135
- #ifndef WCHAR_MIN /* also in wchar.h */
136
- #define WCHAR_MIN 0
137
- #define WCHAR_MAX ((wchar_t)-1) /* UINT16_MAX */
138
- #endif
139
-
140
- /*
141
- * wint_t is unsigned int in __MINGW32__,
142
- * but unsigned short in MS runtime
143
- */
144
- #define WINT_MIN 0
145
- #define WINT_MAX UINT32_MAX
146
-
147
- #endif /* !defined ( __cplusplus) || defined __STDC_LIMIT_MACROS */
148
-
149
-
150
- /* 7.18.4 Macros for integer constants */
151
- #if !defined ( __cplusplus) || defined (__STDC_CONSTANT_MACROS)
152
-
153
- /* 7.18.4.1 Macros for minimum-width integer constants
154
-
155
- Accoding to Douglas Gwyn <gwyn@arl.mil>:
156
- "This spec was changed in ISO/IEC 9899:1999 TC1; in ISO/IEC
157
- 9899:1999 as initially published, the expansion was required
158
- to be an integer constant of precisely matching type, which
159
- is impossible to accomplish for the shorter types on most
160
- platforms, because C99 provides no standard way to designate
161
- an integer constant with width less than that of type int.
162
- TC1 changed this to require just an integer constant
163
- *expression* with *promoted* type."
164
-
165
- The trick used here is from Clive D W Feather.
166
- */
167
-
168
- #define INT8_C(val) (INT_LEAST8_MAX-INT_LEAST8_MAX+(val))
169
- #define INT16_C(val) (INT_LEAST16_MAX-INT_LEAST16_MAX+(val))
170
- #define INT32_C(val) (INT_LEAST32_MAX-INT_LEAST32_MAX+(val))
171
- #define INT64_C(val) (INT_LEAST64_MAX-INT_LEAST64_MAX+(val))
172
-
173
- #define UINT8_C(val) (UINT_LEAST8_MAX-UINT_LEAST8_MAX+(val))
174
- #define UINT16_C(val) (UINT_LEAST16_MAX-UINT_LEAST16_MAX+(val))
175
- #define UINT32_C(val) (UINT_LEAST32_MAX-UINT_LEAST32_MAX+(val))
176
- #define UINT64_C(val) (UINT_LEAST64_MAX-UINT_LEAST64_MAX+(val))
177
-
178
- /* 7.18.4.2 Macros for greatest-width integer constants */
179
- #define INTMAX_C(val) (INTMAX_MAX-INTMAX_MAX+(val))
180
- #define UINTMAX_C(val) (UINTMAX_MAX-UINTMAX_MAX+(val))
181
-
182
- #endif /* !defined ( __cplusplus) || defined __STDC_CONSTANT_MACROS */
183
-
184
- #endif