Charles Davis <cdavis5x(a)gmail.com> writes:
> @@ -1118,21 +1118,29 @@ static void set_process_name( int argc, char *argv[] )
> {
> #ifdef HAVE_SETPROCTITLE
> setproctitle("-%s", argv[1]);
> -#endif
> -
> -#ifdef HAVE_PRCTL
> +#elif defined(HAVE_PRCTL) || defined(HAVE_SETPROGNAME)
> int i, offset;
> char *p, *prctl_name = argv[1];
> char *end = argv[argc-1] + strlen(argv[argc-1]) + 1;
> -
> -#ifndef PR_SET_NAME
> -# define PR_SET_NAME 15
> +#ifdef HAVE_SETPROGNAME
> + static char progname[PATH_MAX];
> #endif
>
> if ((p = strrchr( prctl_name, '\\' ))) prctl_name = p + 1;
> if ((p = strrchr( prctl_name, '/' ))) prctl_name = p + 1;
>
> +#ifdef HAVE_SETPROGNAME
> + lstrcpynA( progname, prctl_name, sizeof(progname)/sizeof(progname[0]) );
> + progname[PATH_MAX-1] = 0;
> + setprogname( progname );
> + if (1)
> +#elif defined(HAVE_PRCTL)
> +#ifndef PR_SET_NAME
> +# define PR_SET_NAME 15
> +#endif
> +
> if (prctl( PR_SET_NAME, prctl_name ) != -1)
> +#endif
This is becoming hard to follow, please try to clean up these #ifdefs a
little. Also you shouldn't need to make a copy, it can point directly
into argv.
--
Alexandre Julliard
julliard(a)winehq.org