Codebase list libgpg-error / ef07aed
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
2 changed file(s) with 21 addition(s) and 2 deletion(s). Raw diff Collapse all Expand all
315315 arg->internal->user_wildcard = 0;
316316 arg->internal->user_any_active = 0;
317317 arg->internal->user_active = 0;
318 arg->internal->username = NULL;
318319 arg->internal->mark_forced = 0;
319320 arg->internal->mark_ignore = 0;
320321 arg->internal->explicit_ignore = 0;
383383 _gpgrt_getusername (void)
384384 {
385385 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)
387402 struct passwd *pwd;
388403
389404 pwd = getpwuid (getuid());
392407 result = _gpgrt_strdup (pwd->pw_name);
393408 }
394409
395 #endif /*HAVE_PWD_H*/
410 # endif /*HAVE_PWD_H*/
411
412 #endif /* !HAVE_W32_SYSTEM */
413
396414 return result;
397415 }