Module: wine Branch: refs/heads/master Commit: fcb771d9c0eafd812432b333cba6f2da0b4e5d8b URL: http://source.winehq.org/git/?p=wine.git;a=commit;h=fcb771d9c0eafd812432b333...
Author: Alexandre Julliard julliard@winehq.org Date: Fri Apr 7 11:45:22 2006 +0200
kernel: Fixed set_process_name for the winevdm case.
---
dlls/kernel/process.c | 28 ++++++++++++++++------------ 1 files changed, 16 insertions(+), 12 deletions(-)
diff --git a/dlls/kernel/process.c b/dlls/kernel/process.c index 2cdc0ef..3056263 100644 --- a/dlls/kernel/process.c +++ b/dlls/kernel/process.c @@ -873,26 +873,30 @@ static void set_process_name( int *argc, { strcpy( argv[0], name ); offset = argv[1] - (argv[0] + strlen(name) + 1); + memmove( argv[1] - offset, argv[1], end - argv[1] ); + memset( end - offset, 0, offset ); + for (i = 1; i < *argc; i++) argv[i] -= offset; } else { offset = argv[1] - argv[0]; + memmove( argv[1] - offset, argv[1], end - argv[1] ); + memset( end - offset, 0, offset ); + for (i = 1; i < *argc; i++) argv[i-1] = argv[i] - offset; + argv[i-1] = NULL; + (*argc)--; } - memmove( argv[1] - offset, argv[1], end - argv[1] ); - memset( end - offset, 0, offset ); - for (i = 1; i < *argc; i++) argv[i-1] = argv[i] - offset; - argv[i-1] = NULL; - (*argc)--; - return; } -#endif /* HAVE_PRCTL */ - - if (name) argv[0] = name; else +#endif /* HAVE_PRCTL */ { - /* remove argv[0] */ - memmove( argv, argv + 1, *argc * sizeof(argv[0]) ); - (*argc)--; + if (name) argv[0] = name; + else + { + /* remove argv[0] */ + memmove( argv, argv + 1, *argc * sizeof(argv[0]) ); + (*argc)--; + } } }