Commit c926959a authored by Vitaly Lipatov's avatar Vitaly Lipatov

commit 14.0.1 upon wine-1.7.25

parent f5674d08
......@@ -7718,9 +7718,31 @@ uninstall::
APPKIT_LIBS="-framework AppKit"
LDEXECFLAGS="-image_base 0x7bf00000 -Wl,-segaddr,WINE_DOS,0x00001000,-segaddr,WINE_SHAREDHEAP,0x7f000000,-sectcreate,__TEXT,__info_plist,wine_info.plist"
case $host_os in
darwin11*) LDEXECFLAGS="-Wl,-macosx_version_min,10.6 $LDEXECFLAGS" ;;
esac
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the compiler supports -Wl,-no_pie" >&5
$as_echo_n "checking whether the compiler supports -Wl,-no_pie... " >&6; }
if ${ac_cv_cflags__Wl__no_pie+:} false; then :
$as_echo_n "(cached) " >&6
else
ac_wine_try_cflags_saved=$CFLAGS
CFLAGS="$CFLAGS -Wl,-no_pie"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
int main(int argc, char **argv) { return 0; }
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
ac_cv_cflags__Wl__no_pie=yes
else
ac_cv_cflags__Wl__no_pie=no
fi
rm -f core conftest.err conftest.$ac_objext \
conftest$ac_exeext conftest.$ac_ext
CFLAGS=$ac_wine_try_cflags_saved
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_cflags__Wl__no_pie" >&5
$as_echo "$ac_cv_cflags__Wl__no_pie" >&6; }
if test "x$ac_cv_cflags__Wl__no_pie" = xyes; then :
LDEXECFLAGS="-Wl,-no_pie $LDEXECFLAGS"
fi
if test "$ac_cv_header_DiskArbitration_DiskArbitration_h" = "yes"
then
DISKARBITRATION_LIBS="-framework DiskArbitration -framework CoreFoundation"
......
......@@ -762,9 +762,8 @@ uninstall::
AC_SUBST(CORESERVICES_LIBS,"-framework CoreServices")
AC_SUBST(APPKIT_LIBS,"-framework AppKit")
LDEXECFLAGS="-image_base 0x7bf00000 -Wl,-segaddr,WINE_DOS,0x00001000,-segaddr,WINE_SHAREDHEAP,0x7f000000,-sectcreate,__TEXT,__info_plist,wine_info.plist"
case $host_os in
darwin11*) LDEXECFLAGS="-Wl,-macosx_version_min,10.6 $LDEXECFLAGS" ;;
esac
WINE_TRY_CFLAGS([-Wl,-no_pie],
[LDEXECFLAGS="-Wl,-no_pie $LDEXECFLAGS"])
if test "$ac_cv_header_DiskArbitration_DiskArbitration_h" = "yes"
then
dnl DiskArbitration API is not public on Darwin < 8.0, use it only if header found
......
......@@ -251,12 +251,12 @@ DWORD WINAPI GetFullPathNameA( LPCSTR name, DWORD len, LPSTR buffer,
LPSTR *lastpart )
{
WCHAR *nameW;
WCHAR bufferW[MAX_PATH];
WCHAR bufferW[MAX_PATH], *lastpartW = NULL;
DWORD ret;
if (!(nameW = FILE_name_AtoW( name, FALSE ))) return 0;
ret = GetFullPathNameW( nameW, MAX_PATH, bufferW, NULL);
ret = GetFullPathNameW( nameW, MAX_PATH, bufferW, &lastpartW);
if (!ret) return 0;
if (ret > MAX_PATH)
......@@ -267,14 +267,10 @@ DWORD WINAPI GetFullPathNameA( LPCSTR name, DWORD len, LPSTR buffer,
ret = copy_filename_WtoA( bufferW, buffer, len );
if (ret < len && lastpart)
{
LPSTR p = buffer + strlen(buffer) - 1;
if (*p != '\\')
{
while ((p > buffer + 2) && (*p != '\\')) p--;
*lastpart = p + 1;
}
else *lastpart = NULL;
if (lastpartW)
*lastpart = buffer + FILE_name_WtoA( bufferW, lastpartW - bufferW, NULL, 0 );
else
*lastpart = NULL;
}
return ret;
}
......
......@@ -1828,6 +1828,7 @@ static void test_GetFullPathNameA(void)
char output[MAX_PATH], *filepart;
DWORD ret;
int i;
UINT acp;
const struct
{
......@@ -1864,6 +1865,27 @@ static void test_GetFullPathNameA(void)
"[%d] Expected GetLastError() to return 0xdeadbeef, got %u\n",
i, GetLastError());
}
acp = GetACP();
if (acp != 932)
skip("Skipping DBCS(Japanese) GetFullPathNameA test in this codepage (%d)\n", acp);
else {
const struct dbcs_case {
const char *input;
const char *expected;
} testset[] = {
{ "c:\\a\\\x95\x5c\x97\xa0.txt", "\x95\x5c\x97\xa0.txt" },
{ "c:\\\x83\x8f\x83\x43\x83\x93\\wine.c", "wine.c" },
{ "c:\\demo\\\x97\xa0\x95\x5c", "\x97\xa0\x95\x5c" }
};
for (i = 0; i < sizeof(testset)/sizeof(testset[0]); i++) {
ret = GetFullPathNameA(testset[i].input, sizeof(output),
output, &filepart);
ok(ret, "[%d] GetFullPathName error %u\n", i, GetLastError());
ok(!lstrcmpA(filepart, testset[i].expected),
"[%d] expected %s got %s\n", i, testset[i].expected, filepart);
}
}
}
static void test_GetFullPathNameW(void)
......
......@@ -7648,6 +7648,16 @@ UINT ACTION_PerformAction(MSIPACKAGE *package, const WCHAR *action, UINT script)
TRACE("Performing action (%s)\n", debugstr_w(action));
/* CrossOver Hack #12413 for Quicken 2015 Premier. Don't install the PDF driver */
{
static const WCHAR pdf[] = {'I','n','s','t','a','l','l','P','D','F','D','r','i','v','e','r',0};
if (!strcmpiW(action, pdf))
{
FIXME("HACK: Skipping installation of pdf driver\n");
return rc;
}
}
handled = ACTION_HandleStandardAction(package, action, &rc);
if (!handled)
......
......@@ -363,9 +363,6 @@ static BOOL grab_clipping_window( const RECT *clip )
HWND msg_hwnd = 0;
POINT pos;
if (GetWindowThreadProcessId( GetDesktopWindow(), NULL ) == GetCurrentThreadId())
return TRUE; /* don't clip in the desktop process */
if (!data) return FALSE;
if (!(clip_window = init_clip_window())) return TRUE;
......@@ -1387,6 +1384,9 @@ BOOL CDECL X11DRV_ClipCursor( LPCRECT clip )
if (!clip) clip = &virtual_rect;
if (GetWindowThreadProcessId( GetDesktopWindow(), NULL ) == GetCurrentThreadId())
return TRUE; /* don't clip in the desktop process */
if (grab_pointer)
{
HWND foreground = GetForegroundWindow();
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment