Index: flex/src/main.c =================================================================== --- flex/src/main.c (revision 24) +++ flex/src/main.c (working copy) @@ -112,7 +112,7 @@ struct yytbl_writer tableswr; int prev_stdout = 0; -char *flex_temp_out_main="~flex_temp_out_main"; +char *flex_temp_out_main = 0; /* Make sure program_name is initialized so we don't crash if writing * out an error message before getting the program name from argv[0]. @@ -767,6 +767,8 @@ tblsiz); } + free (flex_temp_out_main); + flex_temp_out_main = 0; exit (exit_status); } @@ -779,8 +781,10 @@ { int i, sawcmpflag, rv, optind; char *arg; + char flex_temp_out_main_template[] = "~flex_temp_out_main_XXXXXX"; scanopt_t sopt; + flex_temp_out_main = _strdup(_mktemp(flex_temp_out_main_template)); printstats = syntaxerror = trace = spprdflt = false; lex_compat = posix_compat = C_plus_plus = backing_up_report = ddebug = fulltbl = false; Index: flex/src/filter.c =================================================================== --- flex/src/filter.c (revision 24) +++ flex/src/filter.c (working copy) @@ -86,7 +86,8 @@ /* Get some more or less random data. */ { - static unsigned long long g_value = 827363; + static unsigned long long g_value; + g_value = _getpid(); g_value += 100; random_time_bits = (((unsigned long long)234546 << 32) | (unsigned long long)g_value);