summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Makefile4
-rw-r--r--src/common/mt_rand.c9
-rw-r--r--src/common/mt_rand.h1
3 files changed, 12 insertions, 2 deletions
diff --git a/Makefile b/Makefile
index 6d378dc..a697e4f 100644
--- a/Makefile
+++ b/Makefile
@@ -18,10 +18,10 @@ OPT = -g -fno-strict-aliasing -O2 ${M32}
ifeq ($(findstring CYGWIN,$(PLATFORM)), CYGWIN)
OS_TYPE = -DCYGWIN
-CFLAGS = $(OPT) -Wall -DFD_SETSIZE=4096 -I../common $(PACKETDEF) $(OS_TYPE)
+CFLAGS = $(OPT) -Wall -fno-strict-aliasing -DFD_SETSIZE=4096 -I../common $(PACKETDEF) $(OS_TYPE)
else
OS_TYPE =
-CFLAGS = $(OPT) -Wall -Wno-pointer-sign -I../common $(PACKETDEF) $(OS_TYPE)
+CFLAGS = $(OPT) -Wall -fno-strict-aliasing -Wno-pointer-sign -I../common $(PACKETDEF) $(OS_TYPE)
endif
MKDEF = CC="$(CC)" CFLAGS="$(CFLAGS)"
diff --git a/src/common/mt_rand.c b/src/common/mt_rand.c
index ab733ae..fc9a9ec 100644
--- a/src/common/mt_rand.c
+++ b/src/common/mt_rand.c
@@ -108,3 +108,12 @@ unsigned long mt_random(void)
y ^= (y << 15) & 0xEFC60000U;
return(y ^ (y >> 18));
}
+
+int mt_rand(void) {
+ unsigned long r = mt_random();
+ while (r >> 16)
+ r = (r & 0xFFFF) + (r >> 16);
+
+ return(r);
+}
+
diff --git a/src/common/mt_rand.h b/src/common/mt_rand.h
index 07f6ef0..bda5861 100644
--- a/src/common/mt_rand.h
+++ b/src/common/mt_rand.h
@@ -4,5 +4,6 @@
void mt_seed(unsigned long seed);
unsigned long mt_reload(void);
unsigned long mt_random(void);
+int mt_rand(void);
#endif /* __mt_rand_h */