/* helper functions for constructs not supported by C */
+
+#if 1
+
+void *REDIM_1D(int data_size, int first_data_pos, int last_data_pos)
+{
+ /* for a buffer of n elements, first_data_pos is 0 and last_data_pos is n-1 */
+ /* a negative value for "first_data_pos" indicates a preceding buffer zone */
+
+ int data_count = last_data_pos - first_data_pos + 1;
+ int buffer_size = data_size * data_count;
+ int buffer_start = data_size * first_data_pos;
+
+ return (checked_calloc(buffer_size) - buffer_start);
+}
+
+#else
+
void *REDIM_1D(int a, int b, int c)
{
return checked_calloc(a * (c - b + 1));
}
+#endif
+
void *REDIM_2D(int a, int b, int c, int d, int e)
{
return 0;
long GetTickCount()
{
- return 0;
+ return random_linux_libc(RANDOM_SIMPLE);
}
int GetAttr(char *a)