+ if(hard_restart) {
+ /* Append a NULL to the end of argv[]. */
+ char **restart_argv = (char **)alloca((argc + 1) * sizeof(char *));
+ memcpy(restart_argv, argv, argc * sizeof(char *));
+ restart_argv[argc] = NULL;
+
+ #ifdef WIN32
+ execv(argv[0], (const char * const*)restart_argv);
+ #else
+ execv(argv[0], restart_argv);
+ #endif
+ }