diff -urpN memdbg3/src/john.c memdbg2/src/john.c --- memdbg3/src/john.c 2013-05-01 08:35:13.859375000 -0500 +++ memdbg2/src/john.c 2013-05-01 08:11:42.187500000 -0500 @@ -13,7 +13,7 @@ #include #include #include -#ifndef __DJGPP__ +#if !defined (__DJGPP__) && !defined (_MSC_VER) #include #endif @@ -500,7 +500,7 @@ static void john_omp_init(void) static void john_fork(void) { -#ifdef __DJGPP__ +#if defined (__DJGPP__) || defined (_MSC_VER) fputs("Warning: --fork is not supported in this build, " "will run one process\n", stderr); #else @@ -553,7 +553,7 @@ static void john_fork(void) static void john_wait(void) { -#ifndef __DJGPP__ +#if !defined __DJGPP__ && !defined (_MSC_VER) int waiting_for = john_child_count; log_event("Waiting for %d child%s to terminate", diff -urpN memdbg3/src/options.c memdbg2/src/options.c --- memdbg3/src/options.c 2013-05-01 08:35:15.703125000 -0500 +++ memdbg2/src/options.c 2013-05-01 08:22:48.281250000 -0500 @@ -108,9 +108,11 @@ static struct opt_entry opt_list[] = { "%u", &mem_saving_level}, {"node", FLG_NODE, FLG_NODE, FLG_CRACKING_CHK, OPT_REQ_PARAM, OPT_FMT_STR_ALLOC, &options.node_str}, +#if !defined (_MSC_VER) && !defined (__DJGPP__) {"fork", FLG_FORK, FLG_FORK, FLG_CRACKING_CHK, FLG_STDIN_CHK | FLG_STDOUT | FLG_PIPE_CHK | OPT_REQ_PARAM, "%u", &options.fork}, +#endif {"pot", FLG_NONE, FLG_NONE, 0, OPT_REQ_PARAM, OPT_FMT_STR_ALLOC, &options.loader.activepot}, {"format", FLG_FORMAT, FLG_FORMAT, @@ -179,6 +181,12 @@ static struct opt_entry opt_list[] = { #include "john_build_rule.h" #endif +#if !defined (_MSC_VER) && !defined (__DJGPP__) +#define FORK_MSG_STRING "--fork=N fork N processes\n" +#else +#define FORK_MSG_STRING "" +#endif + #define JOHN_USAGE \ "John the Ripper password cracker, version " JOHN_VERSION _MP_VERSION " [" JOHN_BLD "]\n" \ "Copyright (c) 1996-2013 by " JOHN_COPYRIGHT "\n" \ @@ -209,7 +217,7 @@ static struct opt_entry opt_list[] = { "--salts=[-]COUNT[:MAX] load salts with[out] COUNT [to MAX] hashes\n" \ "--save-memory=LEVEL enable memory saving, at LEVEL 1..3\n" \ "--node=MIN[-MAX]/TOTAL this node's number range out of TOTAL count\n" \ -"--fork=N fork N processes\n" \ +FORK_MSG_STRING \ "--pot=NAME pot file to use\n" \ "--list=WHAT list capabilities, see --list=help or doc/OPTIONS\n" diff -urpN memdbg3/src/signals.c memdbg2/src/signals.c --- memdbg3/src/signals.c 2013-05-01 08:35:16.546875000 -0500 +++ memdbg2/src/signals.c 2013-05-01 08:11:11.062500000 -0500 @@ -285,6 +285,7 @@ static int sig_getchar(void) #endif +#ifndef _MSC_VER static void signal_children(void) { int i; @@ -292,7 +293,7 @@ static void signal_children(void) if (john_child_pids[i]) kill(john_child_pids[i], SIGUSR2); } - +#endif static void sig_install_timer(void); static void sig_handle_timer(int signum) @@ -342,6 +343,7 @@ static void sig_handle_timer(int signum) event_ticksafety = event_pending = 1; } +#ifndef _MSC_VER if (sig_getchar() >= 0) { while (sig_getchar() >= 0) continue; @@ -349,6 +351,7 @@ static void sig_handle_timer(int signum) event_status = event_pending = 1; signal_children(); } +#endif #if !OS_TIMER signal(SIGALRM, sig_handle_timer); @@ -401,11 +404,13 @@ static void sig_remove_timer(void) signal(SIGALRM, SIG_DFL); } +#ifndef _MSC_VER static void sig_handle_status(int signum) { event_status = event_pending = 1; signal(SIGUSR2, sig_handle_status); } +#endif static void sig_done(void); @@ -435,7 +440,9 @@ void sig_init(void) sig_install_update(); sig_install_abort(); sig_install_timer(); +#ifndef _MSC_VER signal(SIGUSR2, sig_handle_status); +#endif } static void sig_done(void)