forked from enlightenment/efl
* src/lib/Evil.h:
declare pid_t, ssize_t and mode_t for vc++ before flock structure (vc++) * src/lib/dlfcn/dlfcn.h: include limits.h for vc++ * src/lib/evil.c: (symlink), (readlink): use UNICODE instead of checking the OS. Use PATH_MAX instead of MB_CUR_MAX when needed SVN revision: 35098
This commit is contained in:
parent
04249c53e6
commit
52fbecb588
|
@ -1,3 +1,15 @@
|
||||||
|
2008-07-13 Vincent Torri <doursse at users dot sf dot net>
|
||||||
|
|
||||||
|
* src/lib/Evil.h:
|
||||||
|
declare pid_t, ssize_t and mode_t for vc++ before flock
|
||||||
|
structure (vc++)
|
||||||
|
* src/lib/dlfcn/dlfcn.h:
|
||||||
|
include limits.h for vc++
|
||||||
|
|
||||||
|
* src/lib/evil.c: (symlink), (readlink):
|
||||||
|
use UNICODE instead of checking the OS. Use PATH_MAX instead
|
||||||
|
of MB_CUR_MAX when needed
|
||||||
|
|
||||||
2008-07-03 Vincent Torri <doursse at users dot sf dot net>
|
2008-07-03 Vincent Torri <doursse at users dot sf dot net>
|
||||||
|
|
||||||
* src/lib/Evil.h:
|
* src/lib/Evil.h:
|
||||||
|
|
|
@ -130,6 +130,14 @@ extern "C" {
|
||||||
# define F_UNLCK 2
|
# define F_UNLCK 2
|
||||||
# endif /* ! F_RDLCK */
|
# endif /* ! F_RDLCK */
|
||||||
|
|
||||||
|
#ifdef _MSC_VER
|
||||||
|
|
||||||
|
typedef int pid_t;
|
||||||
|
typedef long ssize_t;
|
||||||
|
typedef unsigned short mode_t;
|
||||||
|
|
||||||
|
#endif /* _MSC_VER */
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @struct flock
|
* @struct flock
|
||||||
* @brief A structure that control the lock of a file descriptor.
|
* @brief A structure that control the lock of a file descriptor.
|
||||||
|
@ -560,10 +568,6 @@ typedef unsigned long gid_t;
|
||||||
|
|
||||||
#ifdef _MSC_VER
|
#ifdef _MSC_VER
|
||||||
|
|
||||||
typedef int pid_t;
|
|
||||||
typedef long ssize_t;
|
|
||||||
typedef unsigned short mode_t;
|
|
||||||
|
|
||||||
#define F_OK 0 /* Check for file existence */
|
#define F_OK 0 /* Check for file existence */
|
||||||
#define X_OK 1 /* MS access() doesn't check for execute permission. */
|
#define X_OK 1 /* MS access() doesn't check for execute permission. */
|
||||||
#define W_OK 2 /* Check for write permission */
|
#define W_OK 2 /* Check for write permission */
|
||||||
|
|
|
@ -2,6 +2,12 @@
|
||||||
#define __EVIL_DLFCN_H__
|
#define __EVIL_DLFCN_H__
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef _MSC_VER
|
||||||
|
# define _POSIX_
|
||||||
|
# include <limits.h>
|
||||||
|
# undef _POSIX_
|
||||||
|
#endif /* _MSC_VER */
|
||||||
|
|
||||||
#if defined(__CEGCC__) || defined(__MINGW32CE__)
|
#if defined(__CEGCC__) || defined(__MINGW32CE__)
|
||||||
# include <sys/syslimits.h>
|
# include <sys/syslimits.h>
|
||||||
#else
|
#else
|
||||||
|
|
|
@ -162,7 +162,9 @@ getpwuid (uid_t uid)
|
||||||
int
|
int
|
||||||
symlink(const char *oldpath, const char *newpath)
|
symlink(const char *oldpath, const char *newpath)
|
||||||
{
|
{
|
||||||
|
#ifdef UNICODE
|
||||||
wchar_t new_path[MB_CUR_MAX];
|
wchar_t new_path[MB_CUR_MAX];
|
||||||
|
#endif /* UNICODE */
|
||||||
IShellLink *pISL;
|
IShellLink *pISL;
|
||||||
IShellLink **shell_link;
|
IShellLink **shell_link;
|
||||||
IPersistFile *pIPF;
|
IPersistFile *pIPF;
|
||||||
|
@ -194,10 +196,14 @@ symlink(const char *oldpath, const char *newpath)
|
||||||
if (FAILED(pISL->lpVtbl->QueryInterface(pISL, &IID_IPersistFile, (void **)persit_file)))
|
if (FAILED(pISL->lpVtbl->QueryInterface(pISL, &IID_IPersistFile, (void **)persit_file)))
|
||||||
goto no_queryinterface;
|
goto no_queryinterface;
|
||||||
|
|
||||||
/* FIXME: is it for cegcc ??? */
|
#ifdef UNICODE
|
||||||
mbstowcs(new_path, newpath, MB_CUR_MAX);
|
mbstowcs(new_path, newpath, MB_CUR_MAX);
|
||||||
if (FAILED(pIPF->lpVtbl->Save(pIPF, new_path, FALSE)))
|
if (FAILED(pIPF->lpVtbl->Save(pIPF, new_path, FALSE)))
|
||||||
goto no_save;
|
goto no_save;
|
||||||
|
#else
|
||||||
|
if (FAILED(pIPF->lpVtbl->Save(pIPF, newpath, FALSE)))
|
||||||
|
goto no_save;
|
||||||
|
#endif /* ! UNICODE */
|
||||||
|
|
||||||
pIPF->lpVtbl->Release(pIPF);
|
pIPF->lpVtbl->Release(pIPF);
|
||||||
pISL->lpVtbl->Release(pISL);
|
pISL->lpVtbl->Release(pISL);
|
||||||
|
@ -218,8 +224,10 @@ symlink(const char *oldpath, const char *newpath)
|
||||||
ssize_t
|
ssize_t
|
||||||
readlink(const char *path, char *buf, size_t bufsiz)
|
readlink(const char *path, char *buf, size_t bufsiz)
|
||||||
{
|
{
|
||||||
|
#ifdef UNICODE
|
||||||
wchar_t old_path[MB_CUR_MAX];
|
wchar_t old_path[MB_CUR_MAX];
|
||||||
char new_path[MB_CUR_MAX];
|
#endif /* UNICODE */
|
||||||
|
char new_path[PATH_MAX];
|
||||||
IShellLink *pISL;
|
IShellLink *pISL;
|
||||||
IShellLink **shell_link;
|
IShellLink **shell_link;
|
||||||
IPersistFile *pIPF;
|
IPersistFile *pIPF;
|
||||||
|
@ -244,15 +252,20 @@ readlink(const char *path, char *buf, size_t bufsiz)
|
||||||
(void **)persit_file)))
|
(void **)persit_file)))
|
||||||
goto no_instance;
|
goto no_instance;
|
||||||
|
|
||||||
|
#ifdef UNICODE
|
||||||
mbstowcs(old_path, path, MB_CUR_MAX);
|
mbstowcs(old_path, path, MB_CUR_MAX);
|
||||||
if (FAILED(pIPF->lpVtbl->Load(pIPF, old_path, STGM_READWRITE)))
|
if (FAILED(pIPF->lpVtbl->Load(pIPF, old_path, STGM_READWRITE)))
|
||||||
goto no_load;
|
goto no_load;
|
||||||
|
#else
|
||||||
|
if (FAILED(pIPF->lpVtbl->Load(pIPF, path, STGM_READWRITE)))
|
||||||
|
goto no_load;
|
||||||
|
#endif /* ! UNICODE */
|
||||||
|
|
||||||
shell_link = &pISL;
|
shell_link = &pISL;
|
||||||
if (FAILED(pIPF->lpVtbl->QueryInterface(pIPF, &IID_IShellLink, (void **)shell_link)))
|
if (FAILED(pIPF->lpVtbl->QueryInterface(pIPF, &IID_IShellLink, (void **)shell_link)))
|
||||||
goto no_queryinterface;
|
goto no_queryinterface;
|
||||||
|
|
||||||
if (FAILED(pISL->lpVtbl->GetPath(pISL, new_path, MB_CUR_MAX, NULL, 0)))
|
if (FAILED(pISL->lpVtbl->GetPath(pISL, new_path, PATH_MAX, NULL, 0)))
|
||||||
goto no_getpath;
|
goto no_getpath;
|
||||||
|
|
||||||
length = strlen(new_path);
|
length = strlen(new_path);
|
||||||
|
|
Loading…
Reference in New Issue