@@ -96,26 +96,26 @@ alias CARD8 BOOL;
96
96
* definitions for sign-extending bitfields on 64-bit architectures
97
97
*/
98
98
static if ( WORD64 ){
99
- template cvtINT8toInt (INT8 val) { const int cvtINT8toInt = cast (int ) (val & 0x00000080 ) ? (val | 0xffffffffffffff00 ) : val; }
100
- template cvtINT16toInt (INT16 val) { const int cvtINT16toInt = cast (int ) (val & 0x00008000 ) ? (val | 0xffffffffffff0000 ) : val; }
101
- template cvtINT32toInt (INT32 val) { const int cvtINT32toInt = cast (int ) (val & 0x80000000 ) ? (val | 0xffffffff00000000 ) : val; }
102
- template cvtINT8toShort (INT8 val) { const short cvtINT8toShort = cast (short ) cvtINT8toInt(val); }
103
- template cvtINT16toShort (INT16 val) { const short cvtINT16toShort = cast (short ) cvtINT16toInt(val); }
104
- template cvtINT32toShort (INT32 val) { const short cvtINT32toShort = cast (short ) cvtINT32toInt(val); }
105
- template cvtINT8toLong (INT8 val) { const c_long cvtINT8toLong = cast (c_long) cvtINT8toInt(val); }
106
- template cvtINT16toLong (INT16 val) { const c_long cvtINT16toLong = cast (c_long) cvtINT16toInt(val); }
107
- template cvtINT32toLong (INT32 val) { const c_long cvtINT32toLong = cast (c_long) cvtINT32toInt(val); }
99
+ template cvtINT8toInt (INT8 val) { enum cvtINT8toInt = cast (int ) (val & 0x00000080 ) ? (val | 0xffffffffffffff00 ) : val; }
100
+ template cvtINT16toInt (INT16 val) { enum cvtINT16toInt = cast (int ) (val & 0x00008000 ) ? (val | 0xffffffffffff0000 ) : val; }
101
+ template cvtINT32toInt (INT32 val) { enum cvtINT32toInt = cast (int ) (val & 0x80000000 ) ? (val | 0xffffffff00000000 ) : val; }
102
+ template cvtINT8toShort (INT8 val) { enum cvtINT8toShort = cast (short ) cvtINT8toInt(val); }
103
+ template cvtINT16toShort (INT16 val) { enum cvtINT16toShort = cast (short ) cvtINT16toInt(val); }
104
+ template cvtINT32toShort (INT32 val) { enum cvtINT32toShort = cast (short ) cvtINT32toInt(val); }
105
+ template cvtINT8toLong (INT8 val) { enum cvtINT8toLong = cast (c_long) cvtINT8toInt(val); }
106
+ template cvtINT16toLong (INT16 val) { enum cvtINT16toLong = cast (c_long) cvtINT16toInt(val); }
107
+ template cvtINT32toLong (INT32 val) { enum cvtINT32toLong = cast (c_long) cvtINT32toInt(val); }
108
108
}
109
109
else { /* WORD64 and UNSIGNEDBITFIELDS */
110
- template cvtINT8toInt (INT8 val) { const int cvtINT8toInt = cast (int ) val; }
111
- template cvtINT16toInt (INT16 val) { const int cvtINT16toInt = cast (int ) val; }
112
- template cvtINT32toInt (INT32 val) { const int cvtINT32toInt = cast (int ) val; }
113
- template cvtINT8toShort (INT8 val) { const short cvtINT8toShort = cast (short ) val; }
114
- template cvtINT16toShort (INT16 val) { const short cvtINT16toShort = cast (short ) val; }
115
- template cvtINT32toShort (INT32 val) { const short cvtINT32toShort = cast (short ) val; }
116
- template cvtINT8toLong (INT8 val) { const c_long cvtINT8toLong = cast (c_long) val; }
117
- template cvtINT16toLong (INT16 val) { const c_long cvtINT16toLong = cast (c_long) val; }
118
- template cvtINT32toLong (INT32 val) { const c_long cvtINT32toLong = cast (c_long) val; }
110
+ template cvtINT8toInt (INT8 val) { enum cvtINT8toInt = cast (int ) val; }
111
+ template cvtINT16toInt (INT16 val) { enum cvtINT16toInt = cast (int ) val; }
112
+ template cvtINT32toInt (INT32 val) { enum cvtINT32toInt = cast (int ) val; }
113
+ template cvtINT8toShort (INT8 val) { enum cvtINT8toShort = cast (short ) val; }
114
+ template cvtINT16toShort (INT16 val) { enum cvtINT16toShort = cast (short ) val; }
115
+ template cvtINT32toShort (INT32 val) { enum cvtINT32toShort = cast (short ) val; }
116
+ template cvtINT8toLong (INT8 val) { enum cvtINT8toLong = cast (c_long) val; }
117
+ template cvtINT16toLong (INT16 val) { enum cvtINT16toLong = cast (c_long) val; }
118
+ template cvtINT32toLong (INT32 val) { enum cvtINT32toLong = cast (c_long) val; }
119
119
}
120
120
121
121
@@ -133,3 +133,6 @@ else{/* else not MUSTCOPY, this is used for 32-bit machines */
133
133
*/
134
134
T NEXTPTR (T)(T p){ const T NEXTPTR = p + 1 ; }
135
135
}/* MUSTCOPY - used machines whose C structs don't line up with proto */
136
+
137
+
138
+ alias wchar_t = dchar ;
0 commit comments