core: Implement meta command [user] also for Windows
* src/argparse.c (initialize): Clear username.
* src/sysutils.c (_gpgrt_getusername): Implement for Windows.
--
This also fixes a missing intialization
Signed-off-by: Werner Koch <wk@gnupg.org>
Werner Koch
4 years ago
315 | 315 |
arg->internal->user_wildcard = 0;
|
316 | 316 |
arg->internal->user_any_active = 0;
|
317 | 317 |
arg->internal->user_active = 0;
|
|
318 |
arg->internal->username = NULL;
|
318 | 319 |
arg->internal->mark_forced = 0;
|
319 | 320 |
arg->internal->mark_ignore = 0;
|
320 | 321 |
arg->internal->explicit_ignore = 0;
|
383 | 383 |
_gpgrt_getusername (void)
|
384 | 384 |
{
|
385 | 385 |
char *result = NULL;
|
386 | |
#if defined(HAVE_PWD_H) && defined(HAVE_GETPWUID)
|
|
386 |
|
|
387 |
#ifdef HAVE_W32_SYSTEM
|
|
388 |
char tmp[1];
|
|
389 |
DWORD size = 1;
|
|
390 |
|
|
391 |
GetUserNameA (tmp, &size);
|
|
392 |
result = _gpgrt_malloc (size);
|
|
393 |
if (result && !GetUserNameA (result, &size))
|
|
394 |
{
|
|
395 |
xfree (result);
|
|
396 |
result = NULL;
|
|
397 |
}
|
|
398 |
|
|
399 |
#else /* !HAVE_W32_SYSTEM */
|
|
400 |
|
|
401 |
# if defined(HAVE_PWD_H) && defined(HAVE_GETPWUID)
|
387 | 402 |
struct passwd *pwd;
|
388 | 403 |
|
389 | 404 |
pwd = getpwuid (getuid());
|
|
392 | 407 |
result = _gpgrt_strdup (pwd->pw_name);
|
393 | 408 |
}
|
394 | 409 |
|
395 | |
#endif /*HAVE_PWD_H*/
|
|
410 |
# endif /*HAVE_PWD_H*/
|
|
411 |
|
|
412 |
#endif /* !HAVE_W32_SYSTEM */
|
|
413 |
|
396 | 414 |
return result;
|
397 | 415 |
}
|