mirror of
git://git.gnupg.org/gnupg.git
synced 2025-07-02 22:46:30 +02:00
Merged with gpg 1.4.3 code.
The gpg part does not yet build.
This commit is contained in:
parent
751a3aeea7
commit
29b23dea97
90 changed files with 18002 additions and 10564 deletions
|
@ -1,3 +1,8 @@
|
|||
2006-04-18 Werner Koch <wk@g10code.com>
|
||||
|
||||
* homedir.c (w32_shgetfolderpath): New. Taken from gpg 1.4.3.
|
||||
(default_homedir): Use it.
|
||||
|
||||
2005-10-08 Marcus Brinkmann <marcus@g10code.de>
|
||||
|
||||
* signal.c (get_signal_name): Check value of HAVE_DECL_SYS_SIGLIST
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/* homedir.c - Setup the home directory.
|
||||
* Copyright (C) 2004 Free Software Foundation, Inc.
|
||||
* Copyright (C) 2004, 2006 Free Software Foundation, Inc.
|
||||
*
|
||||
* This file is part of GnuPG.
|
||||
*
|
||||
|
@ -41,6 +41,47 @@
|
|||
#include "util.h"
|
||||
#include "sysutils.h"
|
||||
|
||||
|
||||
/* This is a helper function to load a Windows function from either of
|
||||
one DLLs. */
|
||||
#ifdef HAVE_W32_SYSTEM
|
||||
static HRESULT
|
||||
w32_shgetfolderpath (HWND a, int b, HANDLE c, DWORD d, LPSTR e)
|
||||
{
|
||||
static int initialized;
|
||||
static HRESULT (WINAPI * func)(HWND,int,HANDLE,DWORD,LPSTR);
|
||||
|
||||
if (!initialized)
|
||||
{
|
||||
static char *dllnames[] = { "shell32.dll", "shfolder.dll", NULL };
|
||||
void *handle;
|
||||
int i;
|
||||
|
||||
initialized = 1;
|
||||
|
||||
for (i=0, handle = NULL; !handle && dllnames[i]; i++)
|
||||
{
|
||||
handle = dlopen (dllnames[i], RTLD_LAZY);
|
||||
if (handle)
|
||||
{
|
||||
func = dlsym (handle, "SHGetFolderPathA");
|
||||
if (!func)
|
||||
{
|
||||
dlclose (handle);
|
||||
handle = NULL;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (func)
|
||||
return func (a,b,c,d,e);
|
||||
else
|
||||
return -1;
|
||||
}
|
||||
#endif /*HAVE_W32_SYSTEM*/
|
||||
|
||||
|
||||
/* Set up the default home directory. The usual --homedir option
|
||||
should be parsed later. */
|
||||
const char *
|
||||
|
@ -56,15 +97,15 @@ default_homedir (void)
|
|||
{
|
||||
char path[MAX_PATH];
|
||||
|
||||
/* fixme: It might be better to use LOCAL_APPDATA because this
|
||||
is defined as "non roaming" and thus more likely to be kept
|
||||
/* It might be better to use LOCAL_APPDATA because this is
|
||||
defined as "non roaming" and thus more likely to be kept
|
||||
locally. For private keys this is desired. However, given
|
||||
that many users copy private keys anyway forth and back,
|
||||
using a system roaming serives might be better than to let
|
||||
using a system roaming services might be better than to let
|
||||
them do it manually. A security conscious user will anyway
|
||||
use the registry entry to have better control. */
|
||||
if (SHGetFolderPath(NULL, CSIDL_APPDATA|CSIDL_FLAG_CREATE,
|
||||
NULL, 0, path) >= 0)
|
||||
if (w32_shgetfolderpath (NULL, CSIDL_APPDATA|CSIDL_FLAG_CREATE,
|
||||
NULL, 0, path) >= 0)
|
||||
{
|
||||
char *tmp = xmalloc (strlen (path) + 6 +1);
|
||||
strcpy (stpcpy (tmp, path), "\\gnupg");
|
||||
|
|
|
@ -36,6 +36,7 @@
|
|||
#define IOBUFCTRL_USER 16
|
||||
|
||||
typedef struct iobuf_struct *iobuf_t;
|
||||
typedef struct iobuf_struct *IOBUF; /* Compatibility with gpg 1.4. */
|
||||
|
||||
/* fixme: we should hide most of this stuff */
|
||||
struct iobuf_struct
|
||||
|
|
|
@ -59,6 +59,10 @@
|
|||
#define xrealloc(a,b) gcry_xrealloc ((a),(b))
|
||||
#define xstrdup(a) gcry_xstrdup ((a))
|
||||
|
||||
/* For compatibility with gpg 1.4 we also define these: */
|
||||
#define xmalloc_clear(a) gcry_xcalloc (1, (a))
|
||||
#define xmalloc_secure_clear(a) gcry_xcalloc_secure (1, (a))
|
||||
|
||||
|
||||
/* A type to hold the ISO time. Note that this this is the same as
|
||||
the the KSBA type ksba_isotime_t. */
|
||||
|
@ -133,7 +137,7 @@ int cmp_simple_canon_sexp (const unsigned char *a, const unsigned char *b);
|
|||
unsigned char *make_simple_sexp_from_hexstr (const char *line,
|
||||
size_t *nscanned);
|
||||
|
||||
/*-- homedir. c --*/
|
||||
/*-- homedir.c --*/
|
||||
const char *default_homedir (void);
|
||||
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue