projects
/
open-adventure.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Flush log on interrupt, just for convenience.
[open-adventure.git]
/
misc.c
diff --git
a/misc.c
b/misc.c
index 3e0bb4145adcc2182c4c32e1cdd4f3d294c3eab9..a656cbc24e22823699ec9c2a132942f9a0a03626 100644
(file)
--- a/
misc.c
+++ b/
misc.c
@@
-1,6
+1,7
@@
#include <unistd.h>
#include <stdlib.h>
#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
#include <stdio.h>
+#include <string.h>
#include "main.h"
#include "share.h" /* for SETUP */
#include "misc.h"
#include "main.h"
#include "share.h" /* for SETUP */
#include "misc.h"
@@
-724,7
+725,8
@@
L2: ATDWRF=I;
-/* Utility routines (SETBIT, TSTBIT, set_seed_from_time, get_next_lcg_value, randrange, RNDVOC, BUG) */
+/* Utility routines (SETBIT, TSTBIT, set_seed, get_next_lcg_value,
+ * randrange, RNDVOC, BUG) */
#undef SETBIT
long fSETBIT(long BIT) {
#undef SETBIT
long fSETBIT(long BIT) {
@@
-759,11
+761,9
@@
long TSTBIT;
#define TSTBIT(MASK,BIT) fTSTBIT(MASK,BIT)
#define TSTBIT(MASK,BIT) fTSTBIT(MASK,BIT)
-void set_seed
_from_time(void
)
+void set_seed
(long seedval
)
{
{
- /* Use the current system time to get seed the ISO rand() function, from which we get a seed for the LCG. */
- srand(time(NULL));
- lcgstate.x = (unsigned long) rand() % lcgstate.m;
+ lcgstate.x = (unsigned long) seedval % lcgstate.m;
}
unsigned long get_next_lcg_value(void)
}
unsigned long get_next_lcg_value(void)
@@
-886,16
+886,20
@@
long I, VAL;
if(MAP2[1] == 0)MPINIT();
if (!oldstyle && SETUP && OPENED == stdin)
if(MAP2[1] == 0)MPINIT();
if (!oldstyle && SETUP && OPENED == stdin)
- fputs("> ", stdout);
- IGNORE(fgets(INLINE+1,sizeof(INLINE)-1,OPENED));
+ fputs("> ", stdout);
+ do {
+ IGNORE(fgets(rawbuf,sizeof(rawbuf)-1,OPENED));
+ } while
+ (!feof(OPENED) && rawbuf[0] == '#');
if (feof(OPENED)) {
if (logfp && OPENED == stdin)
fclose(logfp);
} else {
if (feof(OPENED)) {
if (logfp && OPENED == stdin)
fclose(logfp);
} else {
- if (logfp)
- IGNORE(fputs(
INLINE+1
, logfp));
+ if (logfp
&& OPENED == stdin
)
+ IGNORE(fputs(
rawbuf
, logfp));
else if (!isatty(0))
else if (!isatty(0))
- IGNORE(fputs(INLINE+1, stdout));
+ IGNORE(fputs(rawbuf, stdout));
+ strcpy(INLINE+1, rawbuf);
LNLENG=0;
for (I=1; I<=sizeof(INLINE) && INLINE[I]!=0; I++) {
VAL=INLINE[I]+1;
LNLENG=0;
for (I=1; I<=sizeof(INLINE) && INLINE[I]!=0; I++) {
VAL=INLINE[I]+1;