Wine-devel
Threads by month
- ----- 2025 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2008 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2007 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2006 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2005 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2004 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2003 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2002 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2001 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
January 2018
- 62 participants
- 503 discussions
04 Jan '18
Signed-off-by: Alex Henrie <alexhenrie24(a)gmail.com>
---
This is the only file in the Wine codebase that uses a character
encoding other than UTF-8, and even so it still uses UTF-8 characters in
its comments. Because practically no editor supports mixing encodings
within the same file and because all patch submissions are assumed to be
in git-send-email's default encoding (UTF-8), it is necessary to use
UTF-8 consistently throughout the file to avoid mangled characters.
I used this bit of Python to escape the characters, then I manually
undid the changes in comments:
from sys import stdout
for char in open('dlls/winex11.drv/keyboard.c', 'rb').read():
if char <= 0x7F:
stdout.write(chr(char))
else:
stdout.write('\\' + hex(char)[1:])
dlls/winex11.drv/keyboard.c | 334 ++++++++++++++++++++++----------------------
1 file changed, 167 insertions(+), 167 deletions(-)
diff --git a/dlls/winex11.drv/keyboard.c b/dlls/winex11.drv/keyboard.c
index 37e51b2592..7c6a94f85e 100644
--- a/dlls/winex11.drv/keyboard.c
+++ b/dlls/winex11.drv/keyboard.c
@@ -275,7 +275,7 @@ static const char main_key_US_dvorak[MAIN_LEN][4] =
/*** British keyboard layout */
static const char main_key_UK[MAIN_LEN][4] =
{
- "`","1!","2\"","3�","4$","5%","6^","7&","8*","9(","0)","-_","=+",
+ "`","1!","2\"","3\xa3","4$","5%","6^","7&","8*","9(","0)","-_","=+",
"qQ","wW","eE","rR","tT","yY","uU","iI","oO","pP","[{","]}",
"aA","sS","dD","fF","gG","hH","jJ","kK","lL",";:","'@","#~",
"zZ","xX","cC","vV","bB","nN","mM",",<",".>","/?",
@@ -285,20 +285,20 @@ static const char main_key_UK[MAIN_LEN][4] =
/*** French keyboard layout (setxkbmap fr) */
static const char main_key_FR[MAIN_LEN][4] =
{
- "�","&1","�2","\"3","'4","(5","-6","�7","_8","�9","�0",")�","=+",
- "aA","zZ","eE","rR","tT","yY","uU","iI","oO","pP","^�","$�",
- "qQ","sS","dD","fF","gG","hH","jJ","kK","lL","mM","�%","*�",
- "wW","xX","cC","vV","bB","nN",",?",";.",":/","!�",
+ "\xb2","&1","\xe92","\"3","'4","(5","-6","\xe87","_8","\xe79","\xe00",")\xb0","=+",
+ "aA","zZ","eE","rR","tT","yY","uU","iI","oO","pP","^\xa8","$\xa3",
+ "qQ","sS","dD","fF","gG","hH","jJ","kK","lL","mM","\xf9%","*\xb5",
+ "wW","xX","cC","vV","bB","nN",",?",";.",":/","!\xa7",
"<>"
};
/*** Icelandic keyboard layout (setxkbmap is) */
static const char main_key_IS[MAIN_LEN][4] =
{
- "�","1!","2\"","3#","4$","5%","6&","7/","8(","9)","0=","��","-_",
- "qQ","wW","eE","rR","tT","yY","uU","iI","oO","pP","��","'?",
- "aA","sS","dD","fF","gG","hH","jJ","kK","lL","��","��","+*",
- "zZ","xX","cC","vV","bB","nN","mM",",;",".:","��",
+ "\xb0","1!","2\"","3#","4$","5%","6&","7/","8(","9)","0=","\xf6\xd6","-_",
+ "qQ","wW","eE","rR","tT","yY","uU","iI","oO","pP","\xf0\xd0","'?",
+ "aA","sS","dD","fF","gG","hH","jJ","kK","lL","\xe6\xc6","\xb4\xc4","+*",
+ "zZ","xX","cC","vV","bB","nN","mM",",;",".:","\xfe\xde",
"<>"
};
@@ -319,9 +319,9 @@ static const char main_key_IS[MAIN_LEN][4] =
/*** German keyboard layout (setxkbmap de [-variant nodeadkeys|deadacute etc.]) */
static const char main_key_DE[MAIN_LEN][4] =
{
- "^�","1!","2\"","3�","4$","5%","6&","7/","8(","9)","0=","�?","",
- "qQ","wW","eE","rR","tT","zZ","uU","iI","oO","pP","��","+*",
- "aA","sS","dD","fF","gG","hH","jJ","kK","lL","��","��","#'",
+ "^\xb0","1!","2\"","3\xa7","4$","5%","6&","7/","8(","9)","0=","\xdf?","",
+ "qQ","wW","eE","rR","tT","zZ","uU","iI","oO","pP","\xfc\xdc","+*",
+ "aA","sS","dD","fF","gG","hH","jJ","kK","lL","\xf6\xd6","\xe4\xc4","#'",
"yY","xX","cC","vV","bB","nN","mM",",;",".:","-_",
"<>"
};
@@ -329,9 +329,9 @@ static const char main_key_DE[MAIN_LEN][4] =
/*** Swiss German keyboard layout (setxkbmap ch -variant de) */
static const char main_key_SG[MAIN_LEN][4] =
{
- "��","1+","2\"","3*","4�","5%","6&","7/","8(","9)","0=","'?","^`",
- "qQ","wW","eE","rR","tT","zZ","uU","iI","oO","pP","��","�!",
- "aA","sS","dD","fF","gG","hH","jJ","kK","lL","��","��","$�",
+ "\xa7\xb0","1+","2\"","3*","4\xe7","5%","6&","7/","8(","9)","0=","'?","^`",
+ "qQ","wW","eE","rR","tT","zZ","uU","iI","oO","pP","\xfc\xe8","\xa8!",
+ "aA","sS","dD","fF","gG","hH","jJ","kK","lL","\xf6\xe9","\xe4\xe0","$\xa3",
"yY","xX","cC","vV","bB","nN","mM",",;",".:","-_",
"<>"
};
@@ -339,19 +339,19 @@ static const char main_key_SG[MAIN_LEN][4] =
/*** Swiss French keyboard layout (setxkbmap ch -variant fr) */
static const char main_key_SF[MAIN_LEN][4] =
{
- "��","1+","2\"","3*","4�","5%","6&","7/","8(","9)","0=","'?","^`",
- "qQ","wW","eE","rR","tT","zZ","uU","iI","oO","pP","��","�!",
- "aA","sS","dD","fF","gG","hH","jJ","kK","lL","��","��","$�",
+ "\xa7\xb0","1+","2\"","3*","4\xe7","5%","6&","7/","8(","9)","0=","'?","^`",
+ "qQ","wW","eE","rR","tT","zZ","uU","iI","oO","pP","\xe8\xfc","\xa8!",
+ "aA","sS","dD","fF","gG","hH","jJ","kK","lL","\xe9\xf6","\xe0\xe4","$\xa3",
"yY","xX","cC","vV","bB","nN","mM",",;",".:","-_",
"<>"
};
-/*** Norwegian keyboard layout (contributed by Ove K�ven) */
+/*** Norwegian keyboard layout (contributed by Ove Kåven) */
static const char main_key_NO[MAIN_LEN][4] =
{
- "|�","1!","2\"@","3#�","4�$","5%","6&","7/{","8([","9)]","0=}","+?","\\`�",
- "qQ","wW","eE","rR","tT","yY","uU","iI","oO","pP","��","�^~",
- "aA","sS","dD","fF","gG","hH","jJ","kK","lL","��","��","'*",
+ "|\xa7","1!","2\"@","3#\xa3","4\xa4$","5%","6&","7/{","8([","9)]","0=}","+?","\\`\xb4",
+ "qQ","wW","eE","rR","tT","yY","uU","iI","oO","pP","\xe5\xc5","\xa8^~",
+ "aA","sS","dD","fF","gG","hH","jJ","kK","lL","\xf8\xd8","\xe6\xc6","'*",
"zZ","xX","cC","vV","bB","nN","mM",",;",".:","-_",
"<>"
};
@@ -359,9 +359,9 @@ static const char main_key_NO[MAIN_LEN][4] =
/*** Danish keyboard layout (setxkbmap dk) */
static const char main_key_DA[MAIN_LEN][4] =
{
- "��","1!","2\"","3#","4�","5%","6&","7/","8(","9)","0=","+?","�`",
- "qQ","wW","eE","rR","tT","yY","uU","iI","oO","pP","��","�^",
- "aA","sS","dD","fF","gG","hH","jJ","kK","lL","��","��","'*",
+ "\xbd\xa7","1!","2\"","3#","4\xa4","5%","6&","7/","8(","9)","0=","+?","\xb4`",
+ "qQ","wW","eE","rR","tT","yY","uU","iI","oO","pP","\xe5\xc5","\xa8^",
+ "aA","sS","dD","fF","gG","hH","jJ","kK","lL","\xe6\xc6","\xf8\xd8","'*",
"zZ","xX","cC","vV","bB","nN","mM",",;",".:","-_",
"<>"
};
@@ -369,9 +369,9 @@ static const char main_key_DA[MAIN_LEN][4] =
/*** Swedish keyboard layout (setxkbmap se) */
static const char main_key_SE[MAIN_LEN][4] =
{
- "��","1!","2\"","3#","4�","5%","6&","7/","8(","9)","0=","+?","�`",
- "qQ","wW","eE","rR","tT","yY","uU","iI","oO","pP","��","�^",
- "aA","sS","dD","fF","gG","hH","jJ","kK","lL","��","��","'*",
+ "\xa7\xbd","1!","2\"","3#","4\xa4","5%","6&","7/","8(","9)","0=","+?","\xb4`",
+ "qQ","wW","eE","rR","tT","yY","uU","iI","oO","pP","\xe5\xc5","\xa8^",
+ "aA","sS","dD","fF","gG","hH","jJ","kK","lL","\xf6\xd6","\xe4\xc4","'*",
"zZ","xX","cC","vV","bB","nN","mM",",;",".:","-_",
"<>"
};
@@ -379,9 +379,9 @@ static const char main_key_SE[MAIN_LEN][4] =
/*** Estonian keyboard layout (setxkbmap ee) */
static const char main_key_ET[MAIN_LEN][4] =
{
- "�~","1!","2\"","3#","4�","5%","6&","7/","8(","9)","0=","+?","�`",
- "qQ","wW","eE","rR","tT","yY","uU","iI","oO","pP","��","��",
- "aA","sS","dD","fF","gG","hH","jJ","kK","lL","��","��","'*",
+ "\xb7~","1!","2\"","3#","4\xa4","5%","6&","7/","8(","9)","0=","+?","\xb4`",
+ "qQ","wW","eE","rR","tT","yY","uU","iI","oO","pP","\xfc\xdc","\xf5\xd5",
+ "aA","sS","dD","fF","gG","hH","jJ","kK","lL","\xf6\xd6","\xe4\xc4","'*",
"zZ","xX","cC","vV","bB","nN","mM",",;",".:","-_",
"<>"
};
@@ -389,39 +389,39 @@ static const char main_key_ET[MAIN_LEN][4] =
/*** Canadian French keyboard layout (setxkbmap ca_enhanced) */
static const char main_key_CF[MAIN_LEN][4] =
{
- "#|\\","1!�","2\"@","3/�","4$�","5%�","6?�","7&�","8*�","9(�","0)�","-_�","=+�",
- "qQ","wW","eE","rR","tT","yY","uU","iI","oO�","pP�","^^[","��]",
+ "#|\\","1!\xb1","2\"@","3/\xa3","4$\xa2","5%\xa4","6?\xac","7&\xa6","8*\xb2","9(\xb3","0)\xbc","-_\xbd","=+\xbe",
+ "qQ","wW","eE","rR","tT","yY","uU","iI","oO\xa7","pP\xb6","^^[","\xb8\xa8]",
"aA","sS","dD","fF","gG","hH","jJ","kK","lL",";:~","``{","<>}",
- "zZ","xX","cC","vV","bB","nN","mM",",'-",".","��",
- "���"
+ "zZ","xX","cC","vV","bB","nN","mM",",'-",".","\xe9\xc9",
+ "\xab\xbb\xb0"
};
/*** Canadian French keyboard layout (setxkbmap ca -variant fr) */
static const char main_key_CA_fr[MAIN_LEN][4] =
{
"#|","1!","2\"","3/","4$","5%","6?","7&","8*","9(","0)","-_","=+",
- "qQ","wW","eE","rR","tT","yY","uU","iI","oO","pP","^^","��",
+ "qQ","wW","eE","rR","tT","yY","uU","iI","oO","pP","^^","\xb8\xa8",
"aA","sS","dD","fF","gG","hH","jJ","kK","lL",";:","``","<>",
- "zZ","xX","cC","vV","bB","nN","mM",",'",".","��",
- "��"
+ "zZ","xX","cC","vV","bB","nN","mM",",'",".","\xe9\xc9",
+ "\xab\xbb"
};
/*** Canadian keyboard layout (setxkbmap ca) */
static const char main_key_CA[MAIN_LEN][4] =
{
- "/\\","1!��","2@�","3#��","4$��","5%�","6?�","7&","8*","9(","0)","-_","=+",
- "qQ","wW","eE","rR","tT","yY","uU","iI","oO��","pP��","^��","��~",
- "aA��","sSߧ","dD��","fF","gG","hH","jJ","kK","lL",";:�","��","��",
- "zZ","xX","cC��","vV","bB","nN","mM��",",'",".\"��","��",
- "��"
+ "/\\","1!\xb9\xa1","2@\xb2","3#\xb3\xa3","4$\xbc\xa4","5%\xbd","6?\xbe","7&","8*","9(","0)","-_","=+",
+ "qQ","wW","eE","rR","tT","yY","uU","iI","oO\xf8\xd8","pP\xfe\xde","^\xa8\xa8","\xe7\xc7~",
+ "aA\xe6\xc6","sS\xdf\xa7","dD\xf0\xd0","fF","gG","hH","jJ","kK","lL",";:\xb4","\xe8\xc8","\xe0\xc0",
+ "zZ","xX","cC\xa2\xa9","vV","bB","nN","mM\xb5\xba",",'",".\"\xb7\xf7","\xe9\xc9",
+ "\xf9\xd9"
};
/*** Portuguese keyboard layout (setxkbmap pt) */
static const char main_key_PT[MAIN_LEN][4] =
{
- "\\|","1!","2\"","3#","4$","5%","6&","7/","8(","9)","0=","'?","��",
- "qQ","wW","eE","rR","tT","yY","uU","iI","oO","pP","+*","�`",
- "aA","sS","dD","fF","gG","hH","jJ","kK","lL","��","��","~^",
+ "\\|","1!","2\"","3#","4$","5%","6&","7/","8(","9)","0=","'?","\xab\xbb",
+ "qQ","wW","eE","rR","tT","yY","uU","iI","oO","pP","+*","\xb4`",
+ "aA","sS","dD","fF","gG","hH","jJ","kK","lL","\xe7\xc7","\xba\xaa","~^",
"zZ","xX","cC","vV","bB","nN","mM",",;",".:","-_",
"<>"
};
@@ -429,9 +429,9 @@ static const char main_key_PT[MAIN_LEN][4] =
/*** Italian keyboard layout (setxkbmap it) */
static const char main_key_IT[MAIN_LEN][4] =
{
- "\\|","1!","2\"","3�","4$","5%","6&","7/","8(","9)","0=","'?","�^",
- "qQ","wW","eE","rR","tT","yY","uU","iI","oO","pP","��","+*",
- "aA","sS","dD","fF","gG","hH","jJ","kK","lL","��","�","��",
+ "\\|","1!","2\"","3\xa3","4$","5%","6&","7/","8(","9)","0=","'?","\xec^",
+ "qQ","wW","eE","rR","tT","yY","uU","iI","oO","pP","\xe8\xe9","+*",
+ "aA","sS","dD","fF","gG","hH","jJ","kK","lL","\xf2\xe7","\xe0\xb0","\xf9\xa7",
"zZ","xX","cC","vV","bB","nN","mM",",;",".:","-_",
"<>"
};
@@ -439,9 +439,9 @@ static const char main_key_IT[MAIN_LEN][4] =
/*** Finnish keyboard layout (setxkbmap fi) */
static const char main_key_FI[MAIN_LEN][4] =
{
- "��","1!","2\"","3#","4�","5%","6&","7/","8(","9)","0=","+?","�`",
- "qQ","wW","eE","rR","tT","yY","uU","iI","oO","pP","��","�^",
- "aA","sS","dD","fF","gG","hH","jJ","kK","lL","��","��","'*",
+ "\xa7\xbd","1!","2\"","3#","4\xa4","5%","6&","7/","8(","9)","0=","+?","\xb4`",
+ "qQ","wW","eE","rR","tT","yY","uU","iI","oO","pP","\xe5\xc5","\xa8^",
+ "aA","sS","dD","fF","gG","hH","jJ","kK","lL","\xf6\xd6","\xe4\xc4","'*",
"zZ","xX","cC","vV","bB","nN","mM",",;",".:","-_",
"<>"
};
@@ -450,19 +450,19 @@ static const char main_key_FI[MAIN_LEN][4] =
static const char main_key_BG_bds[MAIN_LEN][4] =
{
"`~()","1!","2(a)2?","3#3+","4$4\"","5%","6^6=","7&7:","8*8/","9(","0)","-_-I","=+.V",
- "qQ,�","wW��","eE��","rR��","tT��","yY��","uU��","iI��","oO��","pP��","[{��","]};",
- "aA��","sS��","dD��","fF��","gG��","hH��","jJ��","kK��","lL��",";:��","'\"��","\\|'�",
- "zZ��","xX��","cC��","vV��","bB��","nN��","mM��",",<��",".>��","/?��",
+ "qQ,\xfb","wW\xf3\xd3","eE\xe5\xc5","rR\xe8\xc8","tT\xf8\xd8","yY\xf9\xd9","uU\xea\xca","iI\xf1\xd1","oO\xe4\xc4","pP\xe7\xc7","[{\xf6\xd6","]};",
+ "aA\xfc\xdc","sS\xff\xdf","dD\xe0\xc0","fF\xee\xce","gG\xe6\xc6","hH\xe3\xc3","jJ\xf2\xd2","kK\xed\xcd","lL\xe2\xc2",";:\xec\xcc","'\"\xf7\xd7","\\|'\xdb",
+ "zZ\xfe\xde","xX\xe9\xc9","cC\xfa\xda","vV\xfd\xdd","bB\xf4\xd4","nN\xf5\xd5","mM\xef\xcf",",<\xf0\xd0",".>\xeb\xcb","/?\xe1\xc1",
"<>" /* the phantom key */
};
/*** Bulgarian phonetic keyboard layout */
static const char main_key_BG_phonetic[MAIN_LEN][4] =
{
- "`~��","1!","2@","3#","4$","5%","6^","7&","8*","9(","0)","-_","=+",
- "qQ��","wW��","eE��","rR��","tT��","yY��","uU��","iI��","oO��","pP��","[{��","]}��",
- "aA��","sS��","dD��","fF��","gG��","hH��","jJ��","kK��","lL��",";:","'\"","\\|��",
- "zZ��","xX��","cC��","vV��","bB��","nN��","mM��",",<",".>","/?",
+ "`~\xf7\xd7","1!","2@","3#","4$","5%","6^","7&","8*","9(","0)","-_","=+",
+ "qQ\xff\xdf","wW\xe2\xc2","eE\xe5\xc5","rR\xf0\xd0","tT\xf2\xd2","yY\xfa\xda","uU\xf3\xd3","iI\xe8\xc8","oO\xee\xce","pP\xef\xcf","[{\xf8\xd8","]}\xf9\xd9",
+ "aA\xe0\xc0","sS\xf1\xd1","dD\xe4\xc4","fF\xf4\xd4","gG\xe3\xc3","hH\xf5\xd5","jJ\xe9\xc9","kK\xea\xca","lL\xeb\xcb",";:","'\"","\\|\xfe\xde",
+ "zZ\xe7\xc7","xX\xfc\xdc","cC\xf6\xd6","vV\xe6\xc6","bB\xe1\xc1","nN\xed\xcd","mM\xec\xcc",",<",".>","/?",
"<>" /* the phantom key */
};
@@ -470,10 +470,10 @@ static const char main_key_BG_phonetic[MAIN_LEN][4] =
/*** It matches Belarusian layout for XKB from Alexander Mikhailian */
static const char main_key_BY[MAIN_LEN][4] =
{
- "`~��","1!","2@","3#","4$","5%","6^","7&","8*","9(","0)","-_","=+",
- "qQ��","wW��","eE��","rR��","tT��","yY��","uU��","iI��","oO��","pP��","[{��","]}''",
- "aA��","sS��","dD��","fF��","gG��","hH��","jJ��","kK��","lL��",";:��","'\"��","\\|/|",
- "zZ��","xX��","cC��","vV��","bB��","nN��","mM��",",<��",".>��","/?.,", "<>|�",
+ "`~\xa3\xb3","1!","2@","3#","4$","5%","6^","7&","8*","9(","0)","-_","=+",
+ "qQ\xca\xea","wW\xc3\xe3","eE\xd5\xf5","rR\xcb\xeb","tT\xc5\xe5","yY\xce\xee","uU\xc7\xe7","iI\xdb\xfb","oO\xae\xbe","pP\xda\xfa","[{\xc8\xe8","]}''",
+ "aA\xc6\xe6","sS\xd9\xf9","dD\xd7\xf7","fF\xc1\xe1","gG\xd0\xf0","hH\xd2\xf2","jJ\xcf\xef","kK\xcc\xec","lL\xc4\xe4",";:\xd6\xf6","'\"\xdc\xfc","\\|/|",
+ "zZ\xd1\xf1","xX\xde\xfe","cC\xd3\xf3","vV\xcd\xed","bB\xa6\xb6","nN\xd4\xf4","mM\xd8\xf8",",<\xc2\xe2",".>\xc0\xe0","/?.,", "<>|\xa6",
};
@@ -481,18 +481,18 @@ static const char main_key_BY[MAIN_LEN][4] =
static const char main_key_RU[MAIN_LEN][4] =
{
"`~","1!","2@","3#","4$","5%","6^","7&","8*","9(","0)","-_","=+",
- "qQ��","wW��","eE��","rR��","tT��","yY��","uU��","iI��","oO��","pP��","[{��","]}��",
- "aA��","sS��","dD��","fF��","gG��","hH��","jJ��","kK��","lL��",";:��","'\"��","\\|",
- "zZ��","xX��","cC��","vV��","bB��","nN��","mM��",",<��",".>��","/?"
+ "qQ\xca\xea","wW\xc3\xe3","eE\xd5\xf5","rR\xcb\xeb","tT\xc5\xe5","yY\xce\xee","uU\xc7\xe7","iI\xdb\xfb","oO\xdd\xfd","pP\xda\xfa","[{\xc8\xe8","]}\xdf\xff",
+ "aA\xc6\xe6","sS\xd9\xf9","dD\xd7\xf7","fF\xc1\xe1","gG\xd0\xf0","hH\xd2\xf2","jJ\xcf\xef","kK\xcc\xec","lL\xc4\xe4",";:\xd6\xf6","'\"\xdc\xfc","\\|",
+ "zZ\xd1\xf1","xX\xde\xfe","cC\xd3\xf3","vV\xcd\xed","bB\xc9\xe9","nN\xd4\xf4","mM\xd8\xf8",",<\xc2\xe2",".>\xc0\xe0","/?"
};
/*** Russian keyboard layout (phantom key version) */
static const char main_key_RU_phantom[MAIN_LEN][4] =
{
"`~","1!","2@","3#","4$","5%","6^","7&","8*","9(","0)","-_","=+",
- "qQ��","wW��","eE��","rR��","tT��","yY��","uU��","iI��","oO��","pP��","[{��","]}��",
- "aA��","sS��","dD��","fF��","gG��","hH��","jJ��","kK��","lL��",";:��","'\"��","\\|",
- "zZ��","xX��","cC��","vV��","bB��","nN��","mM��",",<��",".>��","/?",
+ "qQ\xca\xea","wW\xc3\xe3","eE\xd5\xf5","rR\xcb\xeb","tT\xc5\xe5","yY\xce\xee","uU\xc7\xe7","iI\xdb\xfb","oO\xdd\xfd","pP\xda\xfa","[{\xc8\xe8","]}\xdf\xff",
+ "aA\xc6\xe6","sS\xd9\xf9","dD\xd7\xf7","fF\xc1\xe1","gG\xd0\xf0","hH\xd2\xf2","jJ\xcf\xef","kK\xcc\xec","lL\xc4\xe4",";:\xd6\xf6","'\"\xdc\xfc","\\|",
+ "zZ\xd1\xf1","xX\xde\xfe","cC\xd3\xf3","vV\xcd\xed","bB\xc9\xe9","nN\xd4\xf4","mM\xd8\xf8",",<\xc2\xe2",".>\xc0\xe0","/?",
"<>" /* the phantom key */
};
@@ -500,9 +500,9 @@ static const char main_key_RU_phantom[MAIN_LEN][4] =
static const char main_key_RU_koi8r[MAIN_LEN][4] =
{
"()","1!","2\"","3/","4$","5:","6,","7.","8;","9?","0%","-_","=+",
- "��","��","��","��","��","��","��","��","��","��","��","��",
- "��","��","��","��","��","��","��","��","��","��","��","\\|",
- "��","��","��","��","��","��","��","��","��","/?",
+ "\xca\xea","\xc3\xe3","\xd5\xf5","\xcb\xeb","\xc5\xe5","\xce\xee","\xc7\xe7","\xdb\xfb","\xdd\xfd","\xda\xfa","\xc8\xe8","\xdf\xff",
+ "\xc6\xe6","\xd9\xf9","\xd7\xf7","\xc1\xe1","\xd0\xf0","\xd2\xf2","\xcf\xef","\xcc\xec","\xc4\xe4","\xd6\xf6","\xdc\xfc","\\|",
+ "\xd1\xf1","\xde\xfe","\xd3\xf3","\xcd\xed","\xc9\xe9","\xd4\xf4","\xd8\xf8","\xc2\xe2","\xc0\xe0","/?",
"<>" /* the phantom key */
};
@@ -510,9 +510,9 @@ static const char main_key_RU_koi8r[MAIN_LEN][4] =
static const char main_key_RU_cp1251[MAIN_LEN][4] =
{
"`~","1!","2@","3#","4$","5%","6^","7&","8*","9(","0)","-_","=+",
- "qQ��","wW��","eE��","rR��","tT��","yY��","uU��","iI��","oO��","pP��","[{��","]}��",
- "aA��","sS��","dD��","fF��","gG��","hH��","jJ��","kK��","lL��",";:��","'\"��","\\|",
- "zZ��","xX��","cC��","vV��","bB��","nN��","mM��",",<��",".>��","/?",
+ "qQ\xe9\xc9","wW\xf6\xd6","eE\xf3\xd3","rR\xea\xca","tT\xe5\xc5","yY\xed\xcd","uU\xe3\xc3","iI\xf8\xd8","oO\xf9\xd9","pP\xe7\xc7","[{\xf5\xd5","]}\xfa\xda",
+ "aA\xf4\xd4","sS\xfb\xdb","dD\xe2\xc2","fF\xe0\xc0","gG\xef\xcf","hH\xf0\xd0","jJ\xee\xce","kK\xeb\xcb","lL\xe4\xc4",";:\xe6\xc6","'\"\xfd\xdd","\\|",
+ "zZ\xff\xdf","xX\xf7\xd7","cC\xf1\xd1","vV\xec\xcc","bB\xe8\xc8","nN\xf2\xd2","mM\xfc\xdc",",<\xe1\xc1",".>\xfe\xde","/?",
"<>" /* the phantom key */
};
@@ -520,19 +520,19 @@ static const char main_key_RU_cp1251[MAIN_LEN][4] =
static const char main_key_RU_phonetic[MAIN_LEN][4] =
{
"`~","1!","2@","3#","4$","5%","6^","7&","8*","9(","0)","-_","=+",
- "qQ��","wW��","eE��","rR��","tT��","yY��","uU��","iI��","oO��","pP��","[{��","]}��",
- "aA��","sS��","dD��","fF��","gG��","hH��","jJ��","kK��","lL��",";:","'\"","\\|",
- "zZ��","xX��","cC��","vV��","bB��","nN��","mM��",",<",".>","/?",
+ "qQ\xd1\xf1","wW\xd7\xf7","eE\xc5\xe5","rR\xd2\xf2","tT\xd4\xf4","yY\xd9\xf9","uU\xd5\xf5","iI\xc9\xe9","oO\xcf\xef","pP\xd0\xf0","[{\xdb\xfb","]}\xdd\xfd",
+ "aA\xc1\xe1","sS\xd3\xf3","dD\xc4\xe4","fF\xc6\xe6","gG\xc7\xe7","hH\xc8\xe8","jJ\xca\xea","kK\xcb\xeb","lL\xcc\xec",";:","'\"","\\|",
+ "zZ\xda\xfa","xX\xd8\xf8","cC\xc3\xe3","vV\xd6\xf6","bB\xc2\xe2","nN\xce\xee","mM\xcd\xed",",<",".>","/?",
"<>" /* the phantom key */
};
/*** Ukrainian keyboard layout KOI8-U */
static const char main_key_UA[MAIN_LEN][4] =
{
- "`~��","1!1!","2(a)2\"","3#3'","4$4*","5%5:","6^6,","7&7.","8*8;","9(9(","0)0)","-_-_","=+=+",
- "qQ��","wW��","eE��","rR��","tT��","yY��","uU��","iI��","oO��","pP��","[{��","]}��",
- "aA��","sS��","dD��","fF��","gG��","hH��","jJ��","kK��","lL��",";:��","'\"��","\\|\\|",
- "zZ��","xX��","cC��","vV��","bB��","nN��","mM��",",<��",".>��","/?/?",
+ "`~\xad\xbd","1!1!","2(a)2\"","3#3'","4$4*","5%5:","6^6,","7&7.","8*8;","9(9(","0)0)","-_-_","=+=+",
+ "qQ\xca\xea","wW\xc3\xe3","eE\xd5\xf5","rR\xcb\xeb","tT\xc5\xe5","yY\xce\xee","uU\xc7\xe7","iI\xdb\xfb","oO\xdd\xfd","pP\xda\xfa","[{\xc8\xe8","]}\xa7\xb7",
+ "aA\xc6\xe6","sS\xa6\xb6","dD\xd7\xf7","fF\xc1\xe1","gG\xd0\xf0","hH\xd2\xf2","jJ\xcf\xef","kK\xcc\xec","lL\xc4\xe4",";:\xd6\xf6","'\"\xa4\xb4","\\|\\|",
+ "zZ\xd1\xf1","xX\xde\xfe","cC\xd3\xf3","vV\xcd\xed","bB\xc9\xe9","nN\xd4\xf4","mM\xd8\xf8",",<\xc2\xe2",".>\xc0\xe0","/?/?",
"<>" /* the phantom key */
};
@@ -540,29 +540,29 @@ static const char main_key_UA[MAIN_LEN][4] =
/*** (as it appears on most of keyboards sold today) */
static const char main_key_UA_std[MAIN_LEN][4] =
{
- "��","1!","2\"","3'","4;","5%","6:","7?","8*","9(","0)","-_","=+",
- "��","��","��","��","��","��","��","��","��","��","��","��",
- "��","��","��","��","��","��","��","��","��","��","��","\\/",
- "��","��","��","��","��","��","��","��","��",".,",
+ "\xad\xbd","1!","2\"","3'","4;","5%","6:","7?","8*","9(","0)","-_","=+",
+ "\xca\xea","\xc3\xe3","\xd5\xf5","\xcb\xeb","\xc5\xe5","\xce\xee","\xc7\xe7","\xdb\xfb","\xdd\xfd","\xda\xfa","\xc8\xe8","\xa7\xb7",
+ "\xc6\xe6","\xa6\xb6","\xd7\xf7","\xc1\xe1","\xd0\xf0","\xd2\xf2","\xcf\xef","\xcc\xec","\xc4\xe4","\xd6\xf6","\xa4\xb4","\\/",
+ "\xd1\xf1","\xde\xfe","\xd3\xf3","\xcd\xed","\xc9\xe9","\xd4\xf4","\xd8\xf8","\xc2\xe2","\xc0\xe0",".,",
"<>" /* the phantom key */
};
/*** Russian keyboard layout KOI8-R (pair to the previous) */
static const char main_key_RU_std[MAIN_LEN][4] =
{
- "��","1!","2\"","3'","4;","5%","6:","7?","8*","9(","0)","-_","=+",
- "��","��","��","��","��","��","��","��","��","��","��","��",
- "��","��","��","��","��","��","��","��","��","��","��","\\/",
- "��","��","��","��","��","��","��","��","��",".,",
+ "\xa3\xb3","1!","2\"","3'","4;","5%","6:","7?","8*","9(","0)","-_","=+",
+ "\xca\xea","\xc3\xe3","\xd5\xf5","\xcb\xeb","\xc5\xe5","\xce\xee","\xc7\xe7","\xdb\xfb","\xdd\xfd","\xda\xfa","\xc8\xe8","\xdf\xff",
+ "\xc6\xe6","\xd9\xf9","\xd7\xf7","\xc1\xe1","\xd0\xf0","\xd2\xf2","\xcf\xef","\xcc\xec","\xc4\xe4","\xd6\xf6","\xdc\xfc","\\/",
+ "\xd1\xf1","\xde\xfe","\xd3\xf3","\xcd\xed","\xc9\xe9","\xd4\xf4","\xd8\xf8","\xc2\xe2","\xc0\xe0",".,",
"<>" /* the phantom key */
};
/*** Spanish keyboard layout (setxkbmap es) */
static const char main_key_ES[MAIN_LEN][4] =
{
- "��","1!","2\"","3�","4$","5%","6&","7/","8(","9)","0=","'?","��",
+ "\xba\xaa","1!","2\"","3\xb7","4$","5%","6&","7/","8(","9)","0=","'?","\xa1\xbf",
"qQ","wW","eE","rR","tT","yY","uU","iI","oO","pP","`^","+*",
- "aA","sS","dD","fF","gG","hH","jJ","kK","lL","��","��","��",
+ "aA","sS","dD","fF","gG","hH","jJ","kK","lL","\xf1\xd1","\xb4\xa8","\xe7\xc7",
"zZ","xX","cC","vV","bB","nN","mM",",;",".:","-_",
"<>"
};
@@ -570,9 +570,9 @@ static const char main_key_ES[MAIN_LEN][4] =
/*** Belgian keyboard layout ***/
static const char main_key_BE[MAIN_LEN][4] =
{
- "","&1|","�2@","\"3#","'4","(5","�6^","�7","!8","�9{","�0}",")�","-_",
- "aA","zZ","eE�","rR","tT","yY","uU","iI","oO","pP","^�[","$*]",
- "qQ","sS�","dD","fF","gG","hH","jJ","kK","lL","mM","�%�","��`",
+ "","&1|","\xe92@","\"3#","'4","(5","\xa76^","\xe87","!8","\xe79{","\xe00}",")\xb0","-_",
+ "aA","zZ","eE\xa4","rR","tT","yY","uU","iI","oO","pP","^\xa8[","$*]",
+ "qQ","sS\xdf","dD","fF","gG","hH","jJ","kK","lL","mM","\xf9%\xb4","\xb5\xa3`",
"wW","xX","cC","vV","bB","nN",",?",";.",":/","=+~",
"<>\\"
};
@@ -580,29 +580,29 @@ static const char main_key_BE[MAIN_LEN][4] =
/*** Hungarian keyboard layout (setxkbmap hu) */
static const char main_key_HU[MAIN_LEN][4] =
{
- "0�","1'","2\"","3+","4!","5%","6/","7=","8(","9)","��","��","��",
- "qQ","wW","eE","rR","tT","zZ","uU","iI","oO","pP","��","��",
- "aA","sS","dD","fF","gG","hH","jJ","kK","lL","��","��","��",
+ "0\xa7","1'","2\"","3+","4!","5%","6/","7=","8(","9)","\xf6\xd6","\xfc\xdc","\xf3\xd3",
+ "qQ","wW","eE","rR","tT","zZ","uU","iI","oO","pP","\xf5\xd5","\xfa\xda",
+ "aA","sS","dD","fF","gG","hH","jJ","kK","lL","\xe9\xc9","\xe1\xc1","\xfb\xdb",
"yY","xX","cC","vV","bB","nN","mM",",?",".:","-_",
- "��"
+ "\xed\xcd"
};
/*** Polish (programmer's) keyboard layout ***/
static const char main_key_PL[MAIN_LEN][4] =
{
- "`~","1!","2@","3#","4$","5%","6^","7&�","8*","9(","0)","-_","=+",
- "qQ","wW","eE��","rR","tT","yY","uU","iI","oO��","pP","[{","]}",
- "aA��","sS��","dD","fF","gG","hH","jJ","kK","lL��",";:","'\"","\\|",
- "zZ��","xX��","cC��","vV","bB","nN��","mM",",<",".>","/?",
+ "`~","1!","2@","3#","4$","5%","6^","7&\xa7","8*","9(","0)","-_","=+",
+ "qQ","wW","eE\xea\xca","rR","tT","yY","uU","iI","oO\xf3\xd3","pP","[{","]}",
+ "aA\xb1\xa1","sS\xb6\xa6","dD","fF","gG","hH","jJ","kK","lL\xb3\xa3",";:","'\"","\\|",
+ "zZ\xbf\xaf","xX\xbc\xac","cC\xe6\xc6","vV","bB","nN\xf1\xd1","mM",",<",".>","/?",
"<>|"
};
/*** Slovenian keyboard layout (setxkbmap si) ***/
static const char main_key_SI[MAIN_LEN][4] =
{
- "��","1!","2\"","3#","4$","5%","6&","7/","8(","9)","0=","'?","+*",
- "qQ","wW","eE","rR","tT","zZ","uU","iI","oO","pP","��","��",
- "aA","sS","dD","fF","gG","hH","jJ","kK","lL","��","��","��",
+ "\xb8\xa8","1!","2\"","3#","4$","5%","6&","7/","8(","9)","0=","'?","+*",
+ "qQ","wW","eE","rR","tT","zZ","uU","iI","oO","pP","\xb9\xa9","\xf0\xd0",
+ "aA","sS","dD","fF","gG","hH","jJ","kK","lL","\xe8\xc8","\xe6\xc6","\xbe\xae",
"yY","xX","cC","vV","bB","nN","mM",",;",".:","-_",
"<>"
};
@@ -611,9 +611,9 @@ static const char main_key_SI[MAIN_LEN][4] =
static const char main_key_SR[MAIN_LEN][4] =
{
"`~","1!","2\"","3#","4$","5%","6&","7/","8(","9)","0=","'?","+*",
- "��","��","��","��","��","��","��","��","��","��","��","[]",
- "��","��","��","��","��","��","��","��","��","��","��","-_",
- "��","��","��","��","��","��","��",",;",".:","��",
+ "\xa9\xb9","\xaa\xba","\xc5\xe5","\xd2\xf2","\xd4\xf4","\xda\xfa","\xd5\xf5","\xc9\xe9","\xcf\xef","\xd0\xf0","\xdb\xfb","[]",
+ "\xc1\xe1","\xd3\xf3","\xc4\xe4","\xc6\xe6","\xc7\xe7","\xc8\xe8","\xa8\xb8","\xcb\xeb","\xcc\xec","\xde\xfe","\xab\xbb","-_",
+ "\xa1\xb1","\xaf\xbf","\xc3\xe3","\xd7\xf7","\xc2\xe2","\xce\xee","\xcd\xed",",;",".:","\xd6\xf6",
"<>" /* the phantom key */
};
@@ -621,9 +621,9 @@ static const char main_key_SR[MAIN_LEN][4] =
static const char main_key_US_SR[MAIN_LEN][4] =
{
"`~","1!","2(a)2\"","3#","4$","5%","6^6&","7&7/","8*8(","9(9)","0)0=","-_'?","=++*",
- "qQ��","wW��","eE��","rR��","tT��","yY��","uU��","iI��","oO��","pP��","[{��","]}[]",
- "aA��","sS��","dD��","fF��","gG��","hH��","jJ��","kK��","lL��",";:��","'\"��","\\|-_",
- "zZ��","xX��","cC��","vV��","bB��","nN��","mM��",",<,;",".>.:","/?��",
+ "qQ\xa9\xb9","wW\xaa\xba","eE\xc5\xe5","rR\xd2\xf2","tT\xd4\xf4","yY\xda\xfa","uU\xd5\xf5","iI\xc9\xe9","oO\xcf\xef","pP\xd0\xf0","[{\xdb\xfb","]}[]",
+ "aA\xc1\xe1","sS\xd3\xf3","dD\xc4\xe4","fF\xc6\xe6","gG\xc7\xe7","hH\xc8\xe8","jJ\xa8\xb8","kK\xcb\xeb","lL\xcc\xec",";:\xde\xfe","'\"\xab\xbb","\\|-_",
+ "zZ\xa1\xb1","xX\xaf\xbf","cC\xc3\xe3","vV\xd7\xf7","bB\xc2\xe2","nN\xce\xee","mM\xcd\xed",",<,;",".>.:","/?\xd6\xf6",
"<>" /* the phantom key */
};
@@ -631,8 +631,8 @@ static const char main_key_US_SR[MAIN_LEN][4] =
static const char main_key_HR_jelly[MAIN_LEN][4] =
{
"`~","1!","2@","3#","4$","5%","6^","7&","8*","9(","0)","-_","=+",
- "qQ","wW","eE","rR","tT","yY","uU","iI","oO","pP","[{��","]}��",
- "aA","sS","dD","fF","gG","hH","jJ","kK","lL",";:��","'\"��","\\|��",
+ "qQ","wW","eE","rR","tT","yY","uU","iI","oO","pP","[{\xb9\xa9","]}\xf0\xd0",
+ "aA","sS","dD","fF","gG","hH","jJ","kK","lL",";:\xe8\xc8","'\"\xe6\xc6","\\|\xbe\xae",
"zZ","xX","cC","vV","bB","nN","mM",",<",".>","/?",
"<>|"
};
@@ -640,9 +640,9 @@ static const char main_key_HR_jelly[MAIN_LEN][4] =
/*** Croatian keyboard layout (setxkbmap hr) ***/
static const char main_key_HR[MAIN_LEN][4] =
{
- "��","1!","2\"","3#","4$","5%","6&","7/","8(","9)","0=","'?","+*",
- "qQ","wW","eE","rR","tT","zZ","uU","iI","oO","pP","��","��",
- "aA","sS","dD","fF","gG","hH","jJ","kK","lL","��","��","��",
+ "\xb8\xa8","1!","2\"","3#","4$","5%","6&","7/","8(","9)","0=","'?","+*",
+ "qQ","wW","eE","rR","tT","zZ","uU","iI","oO","pP","\xb9\xa9","\xf0\xd0",
+ "aA","sS","dD","fF","gG","hH","jJ","kK","lL","\xe8\xc8","\xe6\xc6","\xbe\xae",
"yY","xX","cC","vV","bB","nN","mM",",;",".:","/?",
"<>"
};
@@ -679,9 +679,9 @@ static const char main_key_JA_pc98x1[MAIN_LEN][4] =
/*** Brazilian ABNT-2 keyboard layout (contributed by Raul Gomes Fernandes) */
static const char main_key_PT_br[MAIN_LEN][4] =
{
- "'\"","1!","2@","3#","4$","5%","6�","7&","8*","9(","0)","-_","=+",
- "qQ","wW","eE","rR","tT","yY","uU","iI","oO","pP","�`","[{",
- "aA","sS","dD","fF","gG","hH","jJ","kK","lL","��","~^","]}",
+ "'\"","1!","2@","3#","4$","5%","6\xa8","7&","8*","9(","0)","-_","=+",
+ "qQ","wW","eE","rR","tT","yY","uU","iI","oO","pP","\xb4`","[{",
+ "aA","sS","dD","fF","gG","hH","jJ","kK","lL","\xe7\xc7","~^","]}",
"\\|","zZ","xX","cC","vV","bB","nN","mM",",<",".>",";:","/?",
};
@@ -708,9 +708,9 @@ static const char main_key_US_intl[MAIN_LEN][4] =
- brokenbar replaced with bar */
static const char main_key_SK[MAIN_LEN][4] =
{
- ";0","+1","�2","�3","�4","�5","�6","�7","�8","�9","�0","=%","'v",
- "qQ","wW","eE","rR","tT","yY","uU","iI","oO","pP","�/","�(",
- "aA","sS","dD","fF","gG","hH","jJ","kK","lL","�\"","�!","�)",
+ ";0","+1","\xb52","\xb93","\xe84","\xbb5","\xbe6","\xfd7","\xe18","\xed9","\xe90","=%","'v",
+ "qQ","wW","eE","rR","tT","yY","uU","iI","oO","pP","\xfa/","\xe4(",
+ "aA","sS","dD","fF","gG","hH","jJ","kK","lL","\xf4\"","\xa7!","\xf2)",
"zZ","xX","cC","vV","bB","nN","mM",",?",".:","-_",
"<>"
};
@@ -718,9 +718,9 @@ static const char main_key_SK[MAIN_LEN][4] =
/*** Czech keyboard layout (setxkbmap cz) */
static const char main_key_CZ[MAIN_LEN][4] =
{
- ";","+1","�2","�3","�4","�5","�6","�7","�8","�9","�0","=%","��",
- "qQ","wW","eE","rR","tT","zZ","uU","iI","oO","pP","�/",")(",
- "aA","sS","dD","fF","gG","hH","jJ","kK","lL","�\"","�!","�'",
+ ";","+1","\xec2","\xb93","\xe84","\xf85","\xbe6","\xfd7","\xe18","\xed9","\xe90","=%","\xb4\xb7",
+ "qQ","wW","eE","rR","tT","zZ","uU","iI","oO","pP","\xfa/",")(",
+ "aA","sS","dD","fF","gG","hH","jJ","kK","lL","\xf9\"","\xa7!","\xa8'",
"yY","xX","cC","vV","bB","nN","mM",",?",".:","-_",
"\\"
};
@@ -728,9 +728,9 @@ static const char main_key_CZ[MAIN_LEN][4] =
/*** Czech keyboard layout (setxkbmap cz_qwerty) */
static const char main_key_CZ_qwerty[MAIN_LEN][4] =
{
- ";","+1","�2","�3","�4","�5","�6","�7","�8","�9","�0","=%","��",
- "qQ","wW","eE","rR","tT","yY","uU","iI","oO","pP","�/",")(",
- "aA","sS","dD","fF","gG","hH","jJ","kK","lL","�\"","�!","�'",
+ ";","+1","\xec2","\xb93","\xe84","\xf85","\xbe6","\xfd7","\xe18","\xed9","\xe90","=%","\xb4\xb7",
+ "qQ","wW","eE","rR","tT","yY","uU","iI","oO","pP","\xfa/",")(",
+ "aA","sS","dD","fF","gG","hH","jJ","kK","lL","\xf9\"","\xa7!","\xa8'",
"zZ","xX","cC","vV","bB","nN","mM",",?",".:","-_",
"\\"
};
@@ -739,18 +739,18 @@ static const char main_key_CZ_qwerty[MAIN_LEN][4] =
static const char main_key_SK_prog[MAIN_LEN][4] =
{
"`~","1!","2@","3#","4$","5%","6^","7&","8*","9(","0)","-_","=+",
- "qQ��","wW��","eE��","rR��","tT��","yY��","uU��","iI��","oO��","pP��","[{","]}",
- "aA��","sS��","dD��","fF��","gG��","hH��","jJ��","kK��","lL��",";:","'\"","\\|",
- "zZ��","xX�","cC��","vV��","bB","nN��","mM��",",<",".>","/?",
+ "qQ\xe4\xc4","wW\xec\xcc","eE\xe9\xc9","rR\xf8\xd8","tT\xbb\xab","yY\xfd\xdd","uU\xf9\xd9","iI\xed\xcd","oO\xf3\xd3","pP\xf6\xd6","[{","]}",
+ "aA\xe1\xc1","sS\xb9\xa9","dD\xef\xcf","fF\xeb\xcb","gG\xe0\xc0","hH\xfa\xda","jJ\xfc\xdc","kK\xf4\xd4","lL\xb5\xa5",";:","'\"","\\|",
+ "zZ\xbe\xae","xX\xa4","cC\xe8\xc8","vV\xe7\xc7","bB","nN\xf2\xd2","mM\xe5\xc5",",<",".>","/?",
"<>"
};
/*** Czech keyboard layout (see cssk_ibm(cs_qwerty) in xkbsel) */
static const char main_key_CS[MAIN_LEN][4] =
{
- ";","+1","�2","�3","�4","�5","�6","�7","�8","�9","�0�)","=%","",
- "qQ\\","wW|","eE","rR","tT","yY","uU","iI","oO","pP","�/[{",")(]}",
- "aA","sS�","dD�","fF[","gG]","hH","jJ","kK�","lL�","�\"$","�!�","�'",
+ ";","+1","\xec2","\xb93","\xe84","\xf85","\xbe6","\xfd7","\xe18","\xed9","\xe90\xbd)","=%","",
+ "qQ\\","wW|","eE","rR","tT","yY","uU","iI","oO","pP","\xfa/[{",")(]}",
+ "aA","sS\xf0","dD\xd0","fF[","gG]","hH","jJ","kK\xb3","lL\xa3","\xf9\"$","\xa7!\xdf","\xa8'",
"zZ>","xX#","cC&","vV@","bB{","nN}","mM",",?<",".:>","-_*",
"<>\\|"
};
@@ -758,9 +758,9 @@ static const char main_key_CS[MAIN_LEN][4] =
/*** Latin American keyboard layout (contributed by Gabriel Orlando Garcia) */
static const char main_key_LA[MAIN_LEN][4] =
{
- "|�","1!","2\"","3#","4$","5%","6&","7/","8(","9)","0=","'?","��",
- "qQ@","wW","eE","rR","tT","yY","uU","iI","oO","pP","��","+*",
- "aA","sS","dD","fF","gG","hH","jJ","kK","lL","��","{[^","}]",
+ "|\xb0","1!","2\"","3#","4$","5%","6&","7/","8(","9)","0=","'?","\xbf\xa1",
+ "qQ@","wW","eE","rR","tT","yY","uU","iI","oO","pP","\xb4\xa8","+*",
+ "aA","sS","dD","fF","gG","hH","jJ","kK","lL","\xf1\xd1","{[^","}]",
"zZ","xX","cC","vV","bB","nN","mM",",;",".:","-_",
"<>"
};
@@ -768,29 +768,29 @@ static const char main_key_LA[MAIN_LEN][4] =
/*** Lithuanian keyboard layout (setxkbmap lt) */
static const char main_key_LT_B[MAIN_LEN][4] =
{
- "`~","��","��","��","��","��","��","��","��","�(","�)","-_","��",
+ "`~","\xe0\xc0","\xe8\xc8","\xe6\xc6","\xeb\xcb","\xe1\xc1","\xf0\xd0","\xf8\xd8","\xfb\xdb","\xa5(","\xb4)","-_","\xfe\xde",
"qQ","wW","eE","rR","tT","yY","uU","iI","oO","pP","[{","]}",
"aA","sS","dD","fF","gG","hH","jJ","kK","lL",";:","'\"","\\|",
"zZ","xX","cC","vV","bB","nN","mM",",<",".>","/?",
- "��"
+ "\xaa\xac"
};
/*** Turkish keyboard Layout */
static const char main_key_TK[MAIN_LEN][4] =
{
-"\"�","1!","2'","3^#","4+$","5%","6&","7/{","8([","9)]","0=}","*?\\","-_",
-"qQ@","wW","eE","rR","tT","yY","uU","�I�","oO","pP","��","��~",
-"aA�","sS�","dD","fF","gG","hH","jJ","kK","lL","��","i�",",;`",
-"zZ","xX","cC","vV","bB","nN","mM","��","��",".:"
+"\"\xe9","1!","2'","3^#","4+$","5%","6&","7/{","8([","9)]","0=}","*?\\","-_",
+"qQ@","wW","eE","rR","tT","yY","uU","\xfdI\xee","oO","pP","\xf0\xd0","\xfc\xdc~",
+"aA\xe6","sS\xdf","dD","fF","gG","hH","jJ","kK","lL","\xfe\xde","i\xdd",",;`",
+"zZ","xX","cC","vV","bB","nN","mM","\xf6\xd6","\xe7\xc7",".:"
};
/*** Turkish keyboard layout (setxkbmap tr) */
static const char main_key_TR[MAIN_LEN][4] =
{
"\"\\","1!","2'","3^","4+","5%","6&","7/","8(","9)","0=","*?","-_",
-"qQ","wW","eE","rR","tT","yY","uU","\xb9I","oO","pP","\xbb\xab","��",
+"qQ","wW","eE","rR","tT","yY","uU","\xb9I","oO","pP","\xbb\xab","\xfc\xdc",
"aA","sS","dD","fF","gG","hH","jJ","kK","lL","\xba\xaa","i\0",",;",
-"zZ","xX","cC","vV","bB","nN","mM","��","��",".:",
+"zZ","xX","cC","vV","bB","nN","mM","\xf6\xd6","\xe7\xc7",".:",
"<>"
};
@@ -799,8 +799,8 @@ static const char main_key_TR_F[MAIN_LEN][4] =
{
"+*","1!","2\"","3^#","4$","5%","6&","7'","8(","9)","0=","/?","-_",
"fF","gG","\xbb\xab","\xb9I","oO","dD","rR","nN","hH","pP","qQ","wW",
-"uU","i\0","eE","aA","��","tT","kK","mM","lL","yY","\xba\xaa","xX",
-"jJ","��","vV","cC","��","zZ","sS","bB",".:",",;",
+"uU","i\0","eE","aA","\xfc\xdc","tT","kK","mM","lL","yY","\xba\xaa","xX",
+"jJ","\xf6\xd6","vV","cC","\xe7\xc7","zZ","sS","bB",".:",",;",
"<>"
};
@@ -808,9 +808,9 @@ static const char main_key_TR_F[MAIN_LEN][4] =
static const char main_key_IL[MAIN_LEN][4] =
{
"`~;","1!","2@","3#","4$","5%","6^","7&","8*","9(","0)","-_","=+",
- "qQ/","wW'","eE�","rR�","tT�","yY�","uU�","iI�","oO�","pP�","[{","]}",
- "aA�","sS�","dD�","fF�","gG�","hH�","jJ�","kK�","lL�",";:�","\'\",","\\|",
- "zZ�","xX�","cC�","vV�","bB�","nN�","mM�",",<�",".>�","/?.",
+ "qQ/","wW'","eE\xf7","rR\xf8","tT\xe0","yY\xe8","uU\xe5","iI\xef","oO\xed","pP\xf4","[{","]}",
+ "aA\xf9","sS\xe3","dD\xe2","fF\xeb","gG\xf2","hH\xe9","jJ\xe7","kK\xec","lL\xea",";:\xf3","\'\",","\\|",
+ "zZ\xe6","xX\xf1","cC\xe1","vV\xe4","bB\xf0","nN\xee","mM\xf6",",<\xfa",".>\xf5","/?.",
"<>"
};
@@ -818,9 +818,9 @@ static const char main_key_IL[MAIN_LEN][4] =
static const char main_key_IL_phonetic[MAIN_LEN][4] =
{
"`~","1!","2@","3#","4$","5%","6^","7&","8*","9(","0)","-_","=+",
- "qQ�","wW�","eE�","rR�","tT�","yY�","uU�","iI�","oO�","pP�","[{","]}",
- "aA�","sS�","dD�","fF�","gG�","hH�","jJ�","kK�","lL�",";:","'\"","\\|",
- "zZ�","xX�","cC�","vV�","bB�","nN�","mM�",",<",".>","/?",
+ "qQ\xf7","wW\xe5","eE\xe0","rR\xf8","tT\xfa","yY\xf2","uU\xe5","iI\xe9","oO\xf1","pP\xf4","[{","]}",
+ "aA\xe0","sS\xf9","dD\xe3","fF\xf4","gG\xe2","hH\xe4","jJ\xe9","kK\xeb","lL\xec",";:","'\"","\\|",
+ "zZ\xe6","xX\xe7","cC\xf6","vV\xe5","bB\xe1","nN\xf0","mM\xee",",<",".>","/?",
"<>"
};
@@ -828,9 +828,9 @@ static const char main_key_IL_phonetic[MAIN_LEN][4] =
static const char main_key_IL_saharon[MAIN_LEN][4] =
{
"`~","1!","2@","3#","4$","5%","6^","7&","8*","9(","0)","-_","=+",
- "qQ�","wW�","eE","rR�","tT�","yY�","uU","iI","oO","pP�","[{","]}",
- "aA�","sS�","dD�","fF�","gG�","hH�","jJ�","kK�","lL�",";:","'\"","\\|",
- "zZ�","xX�","cC�","vV�","bB�","nN�","mM�",",<",".>","/?",
+ "qQ\xf7","wW\xf1","eE","rR\xf8","tT\xe8","yY\xe3","uU","iI","oO","pP\xf4","[{","]}",
+ "aA\xe0","sS\xe5","dD\xec","fF\xfa","gG\xe2","hH\xe4","jJ\xf9","kK\xeb","lL\xe9",";:","'\"","\\|",
+ "zZ\xe6","xX\xe7","cC\xf6","vV\xf2","bB\xe1","nN\xf0","mM\xee",",<",".>","/?",
"<>"
};
@@ -840,19 +840,19 @@ static const char main_key_IL_saharon[MAIN_LEN][4] =
static const char main_key_EL[MAIN_LEN][4] =
{
"`~","1!","2@","3#","4$","5%","6^","7&","8*","9(","0)","-_","=+",
- "qQ;:","wW","eE��","rR��","tT��","yY��","uU��","iI��","oO��","pP��","[{","]}",
- "aA��","sS","dD��","fF��","gG��","hH��","jJ��","kK��","lL��",";:��","'\"","\\|",
- "zZ��","xX��","cC��","vV��","bB��","nN��","mM��",",<",".>","/?",
+ "qQ;:","wW","eE\xe5\xc5","rR\xf1\xd1","tT\xf4\xd4","yY\xf5\xd5","uU\xe8\xc8","iI\xe9\xc9","oO\xef\xcf","pP\xf0\xd0","[{","]}",
+ "aA\xe1\xc1","sS","dD\xe4\xc4","fF\xf6\xd6","gG\xe3\xc3","hH\xe7\xc7","jJ\xee\xce","kK\xea\xca","lL\xeb\xcb",";:\xb4\xa8","'\"","\\|",
+ "zZ\xe6\xc6","xX\xf7\xd7","cC\xf8\xd8","vV\xf9\xd9","bB\xe2\xc2","nN\xed\xcd","mM\xec\xcc",",<",".>","/?",
"<>"
};
/*** Thai (Kedmanee) keyboard layout by Supphachoke Suntiwichaya <mrchoke(a)opentle.org> */
static const char main_key_th[MAIN_LEN][4] =
{
- "`~_%","1!�+","2@/�","3#-�","4$��","5%��","6^��","7&��","8*��","9(��","0)��","-_��","=+��",
- "qQ��","wW�\"","eEӮ","rR��","tTи","yY��","uU��","iIó","oO��","pP","[{��","]}�,",
- "aA��","sS˦","dD��","fF��","gG�","hH��","jJ��","kK��","lL��",";:ǫ","\'\"�.","\\|��",
- "zZ�(","xX�)","cC�","vV��","bB�","nN��","mM�?",",<��",".>��","/?��"
+ "`~_%","1!\xe5+","2@/\xf1","3#-\xf2","4$\xc0\xf3","5%\xb6\xf4","6^\xd8\xd9","7&\xd6\xdf","8*\xa4\xf5","9(\xb5\xf6","0)\xa8\xf7","-_\xa2\xf8","=+\xaa\xf9",
+ "qQ\xe6\xf0","wW\xe4\"","eE\xd3\xae","rR\xbe\xb1","tT\xd0\xb8","yY\xd1\xed","uU\xd5\xea","iI\xc3\xb3","oO\xb9\xcf","pP\xc2\xad","[{\xba\xb0","]}\xc5,",
+ "aA\xbf\xc4","sS\xcb\xa6","dD\xa1\xaf","fF\xb4\xe2","gG\xe0\xac","hH\xe9\xe7","jJ\xe8\xeb","kK\xd2\xc9","lL\xca\xc8",";:\xc7\xab","\'\"\xa7.","\\|\xa3\xa5",
+ "zZ\xbc(","xX\xbb)","cC\xe1\xa9","vV\xcd\xce","bB\xda","nN\xd7\xec","mM\xb7?",",<\xc1\xb2",".>\xe3\xcc","/?\xbd\xc6"
};
/*** VNC keyboard layout */
@@ -879,9 +879,9 @@ static const char main_key_vnc[MAIN_LEN][4] =
/*** Dutch keyboard layout (setxkbmap nl) ***/
static const char main_key_NL[MAIN_LEN][4] =
{
- "@�","1!","2\"","3#","4$","5%","6&","7_","8(","9)","0'","/?","�~",
- "qQ","wW","eE","rR","tT","yY","uU","iI","oO","pP","�~","*|",
- "aA","sS","dD","fF","gG","hH","jJ","kK","lL","+�","'`","<>",
+ "@\xa7","1!","2\"","3#","4$","5%","6&","7_","8(","9)","0'","/?","\xb0~",
+ "qQ","wW","eE","rR","tT","yY","uU","iI","oO","pP","\xa8~","*|",
+ "aA","sS","dD","fF","gG","hH","jJ","kK","lL","+\xb1","'`","<>",
"zZ","xX","cC","vV","bB","nN","mM",",;",".:","-=",
"[]"
};
--
2.15.1
2
1
Signed-off-by: Andrey Gusev <andrey.goosev(a)gmail.com>
---
dlls/webservices/tests/channel.c | 4 ++++
dlls/webservices/tests/proxy.c | 1 +
2 files changed, 5 insertions(+)
diff --git a/dlls/webservices/tests/channel.c b/dlls/webservices/tests/channel.c
index 32820fed1f..17a0b58ac8 100644
--- a/dlls/webservices/tests/channel.c
+++ b/dlls/webservices/tests/channel.c
@@ -976,6 +976,7 @@ START_TEST(channel)
thread = start_listener( &info );
test_message_read_write( &info );
WaitForSingleObject( thread, 3000 );
+ CloseHandle(thread);
info.type = WS_CHANNEL_TYPE_DUPLEX_SESSION;
info.binding = WS_TCP_CHANNEL_BINDING;
@@ -984,6 +985,7 @@ START_TEST(channel)
thread = start_listener( &info );
test_duplex_session( &info );
WaitForSingleObject( thread, 3000 );
+ CloseHandle(thread);
info.type = WS_CHANNEL_TYPE_DUPLEX;
info.binding = WS_UDP_CHANNEL_BINDING;
@@ -992,6 +994,7 @@ START_TEST(channel)
thread = start_listener( &info );
test_WsAcceptChannel( &info );
WaitForSingleObject( thread, 3000 );
+ CloseHandle(thread);
info.type = WS_CHANNEL_TYPE_DUPLEX_SESSION;
info.binding = WS_TCP_CHANNEL_BINDING;
@@ -999,6 +1002,7 @@ START_TEST(channel)
thread = start_listener( &info );
test_WsAcceptChannel( &info );
WaitForSingleObject( thread, 3000 );
+ CloseHandle(thread);
if (firewall_enabled) set_firewall( APP_REMOVE );
}
diff --git a/dlls/webservices/tests/proxy.c b/dlls/webservices/tests/proxy.c
index bc7ef81db7..3899665873 100644
--- a/dlls/webservices/tests/proxy.c
+++ b/dlls/webservices/tests/proxy.c
@@ -729,6 +729,7 @@ START_TEST(proxy)
info.event = CreateEventW( NULL, 0, 0, NULL );
thread = CreateThread( NULL, 0, server_proc, &info, 0, NULL );
ok( thread != NULL, "failed to create server thread %u\n", GetLastError() );
+ CloseHandle(thread);
ret = WaitForSingleObject( info.event, 3000 );
ok(ret == WAIT_OBJECT_0, "failed to start test server %u\n", GetLastError());
--
2.13.6
2
1
[PATCH] oledb32/tests: Add DataConvert DBTYPE_BSTR->DBTYPE_DBTIMESTAMP test
by Alistair Leslie-Hughes 04 Jan '18
by Alistair Leslie-Hughes 04 Jan '18
04 Jan '18
Signed-off-by: Alistair Leslie-Hughes <leslie_alistair(a)hotmail.com>
---
dlls/oledb32/tests/convert.c | 12 ++++++++++++
1 file changed, 12 insertions(+)
diff --git a/dlls/oledb32/tests/convert.c b/dlls/oledb32/tests/convert.c
index 6b0dd55..0825624 100644
--- a/dlls/oledb32/tests/convert.c
+++ b/dlls/oledb32/tests/convert.c
@@ -3608,7 +3608,10 @@ static void test_converttovar(void)
static void test_converttotimestamp(void)
{
static const WCHAR strW[] = {'2','0','1','3','-','0','5','-','1','4',' ','0','2',':','0','4',':','1','2',0};
+ static const WCHAR strFullW[] = {'2','0','1','3','-','0','5','-','1','4',' ','0','2',':','0','4',':','1','2',
+ '.','0','1','7','0','0','0','0','0','0',0};
DBTIMESTAMP ts = {2013, 5, 14, 2, 4, 12, 0};
+ DBTIMESTAMP ts1 = {2013, 5, 14, 2, 4, 12, 17000000};
DBTIMESTAMP dst;
DBSTATUS dst_status;
DBLENGTH dst_len;
@@ -3635,6 +3638,15 @@ static void test_converttotimestamp(void)
ok(!memcmp(&ts, &dst, sizeof(ts)), "Wrong timestamp\n");
SysFreeString(bstr);
+ bstr = SysAllocString(strFullW);
+ dst_len = 0x1234;
+ hr = IDataConvert_DataConvert(convert, DBTYPE_BSTR, DBTYPE_DBTIMESTAMP, 0, &dst_len, &bstr, &dst, sizeof(dst), 0, &dst_status, 0, 0, 0);
+ todo_wine ok(hr == S_OK, "got %08x\n", hr);
+ todo_wine ok(dst_status == DBSTATUS_S_OK, "got %08x\n", dst_status);
+ todo_wine ok(dst_len == sizeof(dst), "got %ld\n", dst_len);
+ todo_wine ok(!memcmp(&ts1, &dst, sizeof(ts1)), "Wrong timestamp\n");
+ SysFreeString(bstr);
+
V_VT(&var) = VT_NULL;
dst_len = 77;
hr = IDataConvert_DataConvert(convert, DBTYPE_VARIANT, DBTYPE_DBTIMESTAMP, sizeof(var), &dst_len, &var, &dst, 2, 0, &dst_status, 0, 0, 0);
--
1.9.1
2
1
Signed-off-by: Andrey Gusev <andrey.goosev(a)gmail.com>
---
dlls/shell32/control.c | 13 +++++++------
1 file changed, 7 insertions(+), 6 deletions(-)
diff --git a/dlls/shell32/control.c b/dlls/shell32/control.c
index b3931544e4..72b213261d 100644
--- a/dlls/shell32/control.c
+++ b/dlls/shell32/control.c
@@ -634,12 +634,13 @@ static void Control_DoInterface(CPanel* panel, HWND hWnd, HINSTANCE hInst)
if (!RegisterClassExW(&wc)) return;
- CreateWindowExW(0, wc.lpszClassName, appName,
- WS_OVERLAPPEDWINDOW | WS_VISIBLE,
- CW_USEDEFAULT, CW_USEDEFAULT,
- CW_USEDEFAULT, CW_USEDEFAULT,
- hWnd, NULL, hInst, panel);
- if (!panel->hWnd) return;
+ panel->hWnd = CreateWindowExW(0, wc.lpszClassName, appName,
+ WS_OVERLAPPEDWINDOW | WS_VISIBLE,
+ CW_USEDEFAULT, CW_USEDEFAULT,
+ CW_USEDEFAULT, CW_USEDEFAULT,
+ hWnd, NULL, hInst, panel);
+ if (!panel->hWnd)
+ return FALSE;
while (GetMessageW(&msg, panel->hWnd, 0, 0)) {
TranslateMessage(&msg);
--
2.13.6
3
2
Signed-off-by: Andrey Gusev <andrey.goosev(a)gmail.com>
---
dlls/advapi32/tests/security.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/dlls/advapi32/tests/security.c b/dlls/advapi32/tests/security.c
index 51dcf90851..4e584eb08f 100644
--- a/dlls/advapi32/tests/security.c
+++ b/dlls/advapi32/tests/security.c
@@ -3036,6 +3036,7 @@ static void test_process_security_child(void)
handle = OpenProcess( PROCESS_VM_READ, FALSE, GetCurrentProcessId() );
todo_wine
ok(handle == NULL, "OpenProcess(PROCESS_VM_READ) should have failed\n");
+ CloseHandle( handle );
handle = OpenProcess( PROCESS_ALL_ACCESS, FALSE, GetCurrentProcessId() );
todo_wine
ok(handle == NULL, "OpenProcess(PROCESS_ALL_ACCESS) should have failed\n");
--
2.13.6
2
1
[PATCH tools] patches: Title the third column "Submitter" rather than "Author"
by Alex Henrie 04 Jan '18
by Alex Henrie 04 Jan '18
04 Jan '18
Signed-off-by: Alex Henrie <alexhenrie24(a)gmail.com>
---
The person who sent the patch is not necessarily the person who wrote
it.
patches/update | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/patches/update b/patches/update
index 03af078..6d58ad9 100755
--- a/patches/update
+++ b/patches/update
@@ -144,7 +144,7 @@ print INDEX "<div id=\"logo_blurb\">Wine source repository – Patch status<
print INDEX "<div id=\"main_content\"><div id=\"content\"><div class=\"main\">\n";
print INDEX "<table id=\"main_table\" class=\"main\"><thead><tr><th class=\"id\">ID</th>",
"<th class=\"status\">Status</th>",
- "<th colspan=\"2\" class=\"author\">Author</th>",
+ "<th colspan=\"2\" class=\"author\">Submitter</th>",
"<th class=\"subject\">Subject</th>",
"<th class=\"author\">Reviewer</th>",
"<th class=\"status\">Sign</th>",
--
2.15.1
2
1
Signed-off-by: Andrey Gusev <andrey.goosev(a)gmail.com>
---
dlls/ntdll/tests/atom.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/dlls/ntdll/tests/atom.c b/dlls/ntdll/tests/atom.c
index 972a54ea9c..a481758ee6 100644
--- a/dlls/ntdll/tests/atom.c
+++ b/dlls/ntdll/tests/atom.c
@@ -179,6 +179,7 @@ static void test_NtAtom(void)
testThread = CreateThread(NULL, 0, RtlAtomTestThread, &AtomTable, 0, NULL);
WaitForSingleObject(testThread, INFINITE);
+ CloseHandle(testThread);
Len = 64;
res = pRtlQueryAtomInAtomTable(AtomTable, Atom2, &RefCount, &PinCount, Name, &Len);
--
2.13.6
1
0
1
0
[PATCH 1/2] ws2_32/tests: Drop socket test workarounds for Windows <= 2000
by Alex Henrie 04 Jan '18
by Alex Henrie 04 Jan '18
04 Jan '18
Signed-off-by: Alex Henrie <alexhenrie24(a)gmail.com>
---
dlls/ws2_32/tests/sock.c | 222 ++++++++++++++---------------------------------
1 file changed, 65 insertions(+), 157 deletions(-)
diff --git a/dlls/ws2_32/tests/sock.c b/dlls/ws2_32/tests/sock.c
index cb8b7cead7..22b733123a 100644
--- a/dlls/ws2_32/tests/sock.c
+++ b/dlls/ws2_32/tests/sock.c
@@ -1270,8 +1270,7 @@ static void test_WithWSAStartup(void)
WSASetLastError(0xdeadbeef);
res = WSACleanup();
error = WSAGetLastError();
- ok ( (res == SOCKET_ERROR && error == WSANOTINITIALISED) ||
- broken(res == 0), /* WinME */
+ ok ( res == SOCKET_ERROR && error == WSANOTINITIALISED,
"WSACleanup returned %d WSAGetLastError is %d\n", res, error);
}
@@ -1656,10 +1655,8 @@ todo_wine
trace("provider name '%s', family %d, type %d, proto %d\n",
infoA.szProtocol, prottest[i].family, prottest[i].type, prottest[i].proto);
- ok(infoA.szProtocol[0] || broken(!infoA.szProtocol[0]) /* NT4 */,
- "WSAPROTOCOL_INFOA was not filled\n");
- ok(infoW.szProtocol[0] || broken(!infoA.szProtocol[0]) /* NT4 */,
- "WSAPROTOCOL_INFOW was not filled\n");
+ ok(infoA.szProtocol[0], "WSAPROTOCOL_INFOA was not filled\n");
+ ok(infoW.szProtocol[0], "WSAPROTOCOL_INFOW was not filled\n");
WideCharToMultiByte(CP_ACP, 0, infoW.szProtocol, -1,
providername, sizeof(providername), NULL, NULL);
@@ -2951,10 +2948,6 @@ static void test_WSAEnumNetworkEvents(void)
struct sockaddr_in address;
HANDLE event;
WSANETWORKEVENTS net_events;
- /* Windows 2000 Pro without SP installed (testbot) will crash if
- * WSAEnumNetworkEvents have a NULL event, so skip this test in <= 2000 */
- DWORD ver = GetVersion() & 0xFFFF;
- BOOL supports_null = ((ver & 0xFF) << 8 | (ver >> 8)) > 0x0500;
memset(&address, 0, sizeof(address));
address.sin_addr.s_addr = htonl(INADDR_ANY);
@@ -2963,8 +2956,6 @@ static void test_WSAEnumNetworkEvents(void)
/* This test follows the steps from bugs 10204 and 24946 */
for (l = 0; l < 2; l++)
{
- if (l == 1 && !supports_null && broken(1)) continue;
-
for (i = 0; i < sizeof(sock_type) / sizeof(sock_type[0]); i++)
{
if (i == 2)
@@ -3048,13 +3039,8 @@ static void test_WSAAddressToStringA(void)
CHAR expect6_1[] = "::1";
CHAR expect6_2[] = "20ab::1";
CHAR expect6_3[] = "[20ab::2001]:33274";
- CHAR expect6_3_nt[] = "20ab::2001(a)33274";
- CHAR expect6_3_w2k[] = "20ab::2001";
CHAR expect6_3_2[] = "[20ab::2001%4660]:33274";
- CHAR expect6_3_2_nt[] = "4660/20ab::2001(a)33274";
- CHAR expect6_3_2_w2k[] = "20ab::2001%4660";
CHAR expect6_3_3[] = "20ab::2001%4660";
- CHAR expect6_3_3_nt[] = "4660/20ab::2001";
len = 0;
@@ -3157,14 +3143,8 @@ static void test_WSAAddressToStringA(void)
ret = WSAAddressToStringA( (SOCKADDR*)&sockaddr6, sizeof(sockaddr6), NULL, address6, &len );
ok( !ret, "WSAAddressToStringA() failed unexpectedly: %d\n", WSAGetLastError() );
- ok( !strcmp( address6, expect6_3 ) ||
- broken( !strcmp( address6, expect6_3_nt ) ) || /* NT4 */
- broken( !strcmp( address6, expect6_3_w2k ) ), /* Win2000 */
- "Expected: %s, got: %s\n", expect6_3, address6 );
- ok( len == sizeof(expect6_3) ||
- broken( len == sizeof(expect6_3_nt) ) || /* NT4 */
- broken( len == sizeof(expect6_3_w2k) ), /* Win2000 */
- "Got size %d\n", len);
+ ok( !strcmp( address6, expect6_3 ), "Expected: %s, got: %s\n", expect6_3, address6 );
+ ok( len == sizeof(expect6_3), "Got size %d\n", len );
/* Test IPv6 address, port number and scope_id */
len = sizeof(address6);
@@ -3176,14 +3156,8 @@ static void test_WSAAddressToStringA(void)
ret = WSAAddressToStringA( (SOCKADDR*)&sockaddr6, sizeof(sockaddr6), NULL, address6, &len );
ok( !ret, "WSAAddressToStringA() failed unexpectedly: %d\n", WSAGetLastError() );
- ok( !strcmp( address6, expect6_3_2 ) ||
- broken( !strcmp( address6, expect6_3_2_nt ) ) || /* NT4 */
- broken( !strcmp( address6, expect6_3_2_w2k ) ), /* Win2000 */
- "Expected: %s, got: %s\n", expect6_3_2, address6 );
- ok( len == sizeof(expect6_3_2) ||
- broken( len == sizeof(expect6_3_2_nt) ) || /* NT4 */
- broken( len == sizeof(expect6_3_2_w2k) ), /* Win2000 */
- "Got size %d\n", len);
+ ok( !strcmp( address6, expect6_3_2 ), "Expected: %s, got: %s\n", expect6_3_2, address6 );
+ ok( len == sizeof(expect6_3_2), "Got size %d\n", len );
/* Test IPv6 address and scope_id */
len = sizeof(address6);
@@ -3195,12 +3169,8 @@ static void test_WSAAddressToStringA(void)
ret = WSAAddressToStringA( (SOCKADDR*)&sockaddr6, sizeof(sockaddr6), NULL, address6, &len );
ok( !ret, "WSAAddressToStringA() failed unexpectedly: %d\n", WSAGetLastError() );
- ok( !strcmp( address6, expect6_3_3 ) ||
- broken( !strcmp( address6, expect6_3_3_nt ) ), /* NT4 */
- "Expected: %s, got: %s\n", expect6_3_3, address6 );
- ok( len == sizeof(expect6_3_3) ||
- broken( len == sizeof(expect6_3_3_nt) ), /* NT4 */
- "Got size %d\n", len);
+ ok( !strcmp( address6, expect6_3_3 ), "Expected: %s, got: %s\n", expect6_3_3, address6 );
+ ok( len == sizeof(expect6_3_3), "Got size %d\n", len );
end:
if (v6 != INVALID_SOCKET)
@@ -3232,13 +3202,8 @@ static void test_WSAAddressToStringW(void)
WCHAR expect6_1[] = {':',':','1',0};
WCHAR expect6_2[] = {'2','0','a','b',':',':','1',0};
WCHAR expect6_3[] = {'[','2','0','a','b',':',':','2','0','0','1',']',':','3','3','2','7','4',0};
- WCHAR expect6_3_nt[] = {'2','0','a','b',':',':','2','0','0','1','@','3','3','2','7','4',0};
- WCHAR expect6_3_w2k[] = {'2','0','a','b',':',':','2','0','0','1',0};
WCHAR expect6_3_2[] = {'[','2','0','a','b',':',':','2','0','0','1','%','4','6','6','0',']',':','3','3','2','7','4',0};
- WCHAR expect6_3_2_nt[] = {'4','6','6','0','/','2','0','a','b',':',':','2','0','0','1','@','3','3','2','7','4',0};
- WCHAR expect6_3_2_w2k[] = {'2','0','a','b',':',':','2','0','0','1','%','4','6','6','0',0};
WCHAR expect6_3_3[] = {'2','0','a','b',':',':','2','0','0','1','%','6','5','5','3','4',0};
- WCHAR expect6_3_3_nt[] = {'6','5','5','3','4','/','2','0','a','b',':',':','2','0','0','1',0};
len = 0;
@@ -3343,15 +3308,9 @@ static void test_WSAAddressToStringW(void)
ret = WSAAddressToStringW( (SOCKADDR*)&sockaddr6, sizeof(sockaddr6), NULL, address6, &len );
ok( !ret, "WSAAddressToStringW() failed unexpectedly: %d\n", WSAGetLastError() );
- ok( !lstrcmpW( address6, expect6_3 ) ||
- broken( !lstrcmpW( address6, expect6_3_nt ) ) || /* NT4 */
- broken( !lstrcmpW( address6, expect6_3_w2k ) ), /* Win2000 */
- "Expected: %s, got: %s\n", wine_dbgstr_w(expect6_3),
- wine_dbgstr_w(address6) );
- ok( len == sizeof(expect6_3)/sizeof(WCHAR) ||
- broken(len == sizeof(expect6_3_nt)/sizeof(WCHAR) ) || /* NT4 */
- broken(len == sizeof(expect6_3_w2k)/sizeof(WCHAR) ), /* Win2000 */
- "Got %d\n", len);
+ ok( !lstrcmpW( address6, expect6_3 ),
+ "Expected: %s, got: %s\n", wine_dbgstr_w(expect6_3), wine_dbgstr_w(address6) );
+ ok( len == sizeof(expect6_3)/sizeof(WCHAR), "Got %d\n", len );
/* Test IPv6 address, port number and scope_id */
len = sizeof(address6)/sizeof(WCHAR);
@@ -3363,15 +3322,9 @@ static void test_WSAAddressToStringW(void)
ret = WSAAddressToStringW( (SOCKADDR*)&sockaddr6, sizeof(sockaddr6), NULL, address6, &len );
ok( !ret, "WSAAddressToStringW() failed unexpectedly: %d\n", WSAGetLastError() );
- ok( !lstrcmpW( address6, expect6_3_2 ) ||
- broken( !lstrcmpW( address6, expect6_3_2_nt ) ) || /* NT4 */
- broken( !lstrcmpW( address6, expect6_3_2_w2k ) ), /* Win2000 */
- "Expected: %s, got: %s\n", wine_dbgstr_w(expect6_3_2),
- wine_dbgstr_w(address6) );
- ok( len == sizeof(expect6_3_2)/sizeof(WCHAR) ||
- broken( len == sizeof(expect6_3_2_nt)/sizeof(WCHAR) ) || /* NT4 */
- broken( len == sizeof(expect6_3_2_w2k)/sizeof(WCHAR) ), /* Win2000 */
- "Got %d\n", len);
+ ok( !lstrcmpW( address6, expect6_3_2 ),
+ "Expected: %s, got: %s\n", wine_dbgstr_w(expect6_3_2), wine_dbgstr_w(address6) );
+ ok( len == sizeof(expect6_3_2)/sizeof(WCHAR), "Got %d\n", len );
/* Test IPv6 address and scope_id */
len = sizeof(address6)/sizeof(WCHAR);
@@ -3383,13 +3336,9 @@ static void test_WSAAddressToStringW(void)
ret = WSAAddressToStringW( (SOCKADDR*)&sockaddr6, sizeof(sockaddr6), NULL, address6, &len );
ok( !ret, "WSAAddressToStringW() failed unexpectedly: %d\n", WSAGetLastError() );
- ok( !lstrcmpW( address6, expect6_3_3 ) ||
- broken( !lstrcmpW( address6, expect6_3_3_nt ) ), /* NT4 */
- "Expected: %s, got: %s\n", wine_dbgstr_w(expect6_3_3),
- wine_dbgstr_w(address6) );
- ok( len == sizeof(expect6_3_3)/sizeof(WCHAR) ||
- broken( len == sizeof(expect6_3_3_nt)/sizeof(WCHAR) ), /* NT4 */
- "Got %d\n", len);
+ ok( !lstrcmpW( address6, expect6_3_3 ),
+ "Expected: %s, got: %s\n", wine_dbgstr_w(expect6_3_3), wine_dbgstr_w(address6) );
+ ok( len == sizeof(expect6_3_3)/sizeof(WCHAR), "Got %d\n", len );
end:
if (v6 != INVALID_SOCKET)
@@ -3600,9 +3549,7 @@ static void test_WSAStringToAddressW(void)
ok( (ret == 0 && sin->sin_addr.s_addr == 0xffffffff && sin->sin_port == 0xffff) ||
(ret == SOCKET_ERROR && (GLE == ERROR_INVALID_PARAMETER || GLE == WSAEINVAL)),
"WSAStringToAddressW() failed unexpectedly: %d\n", GLE );
- ok( len == sizeof(SOCKADDR_IN) ||
- broken(len == sizeof(SOCKADDR_STORAGE)) /* NT4/2k */,
- "unexpected length %d\n", len );
+ ok( len == sizeof(SOCKADDR_IN), "unexpected length %d\n", len );
len = sizeof(sockaddr);
@@ -3887,9 +3834,7 @@ static void test_select(void)
ok ( (ret == 0), "closesocket failed unexpectedly: %d\n", ret);
WaitForSingleObject (thread_handle, 1000);
- ok ( (thread_params.ReadKilled) ||
- broken(thread_params.ReadKilled == 0), /*Win98*/
- "closesocket did not wakeup select\n");
+ ok ( thread_params.ReadKilled, "closesocket did not wake up select\n");
ret = recv(fdRead, &buffer, 1, MSG_PEEK);
ok( (ret == -1), "peek at closed socket expected -1 got %d\n", ret);
@@ -4094,14 +4039,11 @@ static void test_select(void)
tmp_buf[0] = 0xAF;
SetLastError(0xdeadbeef);
ret = recv(fdRead, tmp_buf, sizeof(tmp_buf), MSG_OOB);
- if (ret == SOCKET_ERROR) /* can't recv with MSG_OOB if OOBINLINED */
- {
- ok(GetLastError() == WSAEINVAL, "expected 10022, got %d\n", GetLastError());
- ret = recv(fdRead, tmp_buf, sizeof(tmp_buf), 0);
- ok(ret == 1, "expected 1, got %d\n", ret);
- ok(tmp_buf[0] == 'A', "expected 'A', got 0x%02X\n", tmp_buf[0]);
- }
- else ok(broken(ret == 1) /* <= NT4 */, "expected error, got 1\n");
+ ok(ret == SOCKET_ERROR, "expected SOCKET_ERROR, got %d\n", ret);
+ ok(GetLastError() == WSAEINVAL, "expected 10022, got %d\n", GetLastError());
+ ret = recv(fdRead, tmp_buf, sizeof(tmp_buf), 0);
+ ok(ret == 1, "expected 1, got %d\n", ret);
+ ok(tmp_buf[0] == 'A', "expected 'A', got 0x%02X\n", tmp_buf[0]);
/* When the connection is closed the socket is set in the read descriptor */
ret = closesocket(fdRead);
@@ -4347,8 +4289,7 @@ static void test_accept(void)
}
WaitForSingleObject(thread_handle, 1000);
- ok(thread_params.ReadKilled || broken(!thread_params.ReadKilled) /* Win98/ME, after accept */,
- "closesocket did not wakeup accept\n");
+ ok(thread_params.ReadKilled, "closesocket did not wake up accept\n");
closesocket(accepted);
closesocket(connector);
@@ -4620,8 +4561,7 @@ static void test_getsockname(void)
}
ret = memcmp(sa_get.sin_zero, null_padding, 8);
- ok(ret == 0 || broken(ret != 0), /* NT4 */
- "getsockname did not zero the sockaddr_in structure\n");
+ ok(ret == 0, "getsockname did not zero the sockaddr_in structure\n");
closesocket(sock);
@@ -5239,30 +5179,29 @@ static void test_ioctlsocket(void)
ret = WSAGetLastError();
ok(ret == WSAEFAULT || broken(ret == WSAEINVAL), "expected WSAEFAULT, got %d instead\n", ret);
- /* broken used to catch W95, W98, NT4 */
make_keepalive(kalive, 0, 0, 0);
ret = WSAIoctl(sock, SIO_KEEPALIVE_VALS, &kalive, sizeof(struct tcp_keepalive), NULL, 0, &arg, NULL, NULL);
- ok(ret == 0 || broken(ret == SOCKET_ERROR), "WSAIoctl failed unexpectedly\n");
+ ok(ret == 0, "WSAIoctl failed unexpectedly\n");
make_keepalive(kalive, 1, 0, 0);
ret = WSAIoctl(sock, SIO_KEEPALIVE_VALS, &kalive, sizeof(struct tcp_keepalive), NULL, 0, &arg, NULL, NULL);
- ok(ret == 0 || broken(ret == SOCKET_ERROR), "WSAIoctl failed unexpectedly\n");
+ ok(ret == 0, "WSAIoctl failed unexpectedly\n");
make_keepalive(kalive, 1, 1000, 1000);
ret = WSAIoctl(sock, SIO_KEEPALIVE_VALS, &kalive, sizeof(struct tcp_keepalive), NULL, 0, &arg, NULL, NULL);
- ok(ret == 0 || broken(ret == SOCKET_ERROR), "WSAIoctl failed unexpectedly\n");
+ ok(ret == 0, "WSAIoctl failed unexpectedly\n");
make_keepalive(kalive, 1, 10000, 10000);
ret = WSAIoctl(sock, SIO_KEEPALIVE_VALS, &kalive, sizeof(struct tcp_keepalive), NULL, 0, &arg, NULL, NULL);
- ok(ret == 0 || broken(ret == SOCKET_ERROR), "WSAIoctl failed unexpectedly\n");
+ ok(ret == 0, "WSAIoctl failed unexpectedly\n");
make_keepalive(kalive, 1, 100, 100);
ret = WSAIoctl(sock, SIO_KEEPALIVE_VALS, &kalive, sizeof(struct tcp_keepalive), NULL, 0, &arg, NULL, NULL);
- ok(ret == 0 || broken(ret == SOCKET_ERROR), "WSAIoctl failed unexpectedly\n");
+ ok(ret == 0, "WSAIoctl failed unexpectedly\n");
make_keepalive(kalive, 0, 100, 100);
ret = WSAIoctl(sock, SIO_KEEPALIVE_VALS, &kalive, sizeof(struct tcp_keepalive), NULL, 0, &arg, NULL, NULL);
- ok(ret == 0 || broken(ret == SOCKET_ERROR), "WSAIoctl failed unexpectedly\n");
+ ok(ret == 0, "WSAIoctl failed unexpectedly\n");
closesocket(sock);
@@ -5305,18 +5244,15 @@ static void test_ioctlsocket(void)
i = MSG_OOB;
SetLastError(0xdeadbeef);
ret = recv(dst, &data, 1, i);
- if (ret == SOCKET_ERROR)
- {
- ret = GetLastError();
- ok(ret == WSAEINVAL, "expected 10022, got %d\n", ret);
- bufs.len = sizeof(char);
- bufs.buf = &data;
- ret = WSARecv(dst, &bufs, 1, &bytes_rec, &i, NULL, NULL);
- ok(ret == SOCKET_ERROR, "expected -1, got %d\n", ret);
- ret = GetLastError();
- ok(ret == WSAEINVAL, "expected 10022, got %d\n", ret);
- }
- else ok(broken(ret == 1) /* <= NT4 */, "expected error, got 1\n");
+ ok(ret == SOCKET_ERROR, "expected SOCKET_ERROR, got %d\n", ret);
+ ret = GetLastError();
+ ok(ret == WSAEINVAL, "expected 10022, got %d\n", ret);
+ bufs.len = sizeof(char);
+ bufs.buf = &data;
+ ret = WSARecv(dst, &bufs, 1, &bytes_rec, &i, NULL, NULL);
+ ok(ret == SOCKET_ERROR, "expected -1, got %d\n", ret);
+ ret = GetLastError();
+ ok(ret == WSAEINVAL, "expected 10022, got %d\n", ret);
closesocket(dst);
optval = 0xdeadbeef;
@@ -5445,7 +5381,7 @@ static void test_send(void)
if (dwRet == WAIT_OBJECT_0)
{
bret = GetOverlappedResult((HANDLE)dst, &ov, &bytes_sent, FALSE);
- ok((bret && bytes_sent == buflen) || broken(!bret && GetLastError() == ERROR_IO_INCOMPLETE) /* win9x */,
+ ok(bret && bytes_sent == buflen,
"Got %d instead of %d (%d - %d)\n", bytes_sent, buflen, bret, GetLastError());
}
@@ -6145,11 +6081,6 @@ static void test_events(int useMessages)
"Got %d instead of 1 (%d - %d)\n", bytesReturned, bret, GetLastError());
ok(buffer[0] == '2', "Got %c instead of 2\n", buffer[0]);
}
- else if (dwRet == WAIT_TIMEOUT)
- {
- /* this happens on win98. We get an FD_READ later on the next test */
- CancelIo((HANDLE) src);
- }
if (0) {
ret = recv(src, buffer, 1, MSG_OOB);
@@ -8289,14 +8220,12 @@ todo_wine
bret = pAcceptEx(listener, acceptor, NULL, sizeof(buffer) - 2*(sizeof(struct sockaddr_in) + 16),
sizeof(struct sockaddr_in) + 16, sizeof(struct sockaddr_in) + 16,
&bytesReturned, &overlapped);
- ok(bret == FALSE &&
- (WSAGetLastError() == WSAEINVAL ||
- broken(WSAGetLastError() == WSAEFAULT)), /* NT4 */
+ todo_wine ok(bret == FALSE && WSAGetLastError() == WSAEFAULT,
"AcceptEx on NULL buffer returned %d + errno %d\n", bret, WSAGetLastError());
bret = pAcceptEx(listener, acceptor, buffer, 0, 0, sizeof(struct sockaddr_in) + 16,
&bytesReturned, &overlapped);
- ok(bret == FALSE && (WSAGetLastError() == ERROR_IO_PENDING || broken(WSAGetLastError() == WSAEINVAL)) /* NT4 */,
+ ok(bret == FALSE && WSAGetLastError() == ERROR_IO_PENDING,
"AcceptEx on too small local address size returned %d + errno %d\n",
bret, WSAGetLastError());
bret = CancelIo((HANDLE) listener);
@@ -8312,12 +8241,12 @@ todo_wine
bret = pAcceptEx(listener, acceptor, buffer, 0, sizeof(struct sockaddr_in) + 16, 0,
&bytesReturned, &overlapped);
- ok(bret == FALSE && (WSAGetLastError() == WSAEFAULT || broken(WSAGetLastError() == WSAEINVAL)) /* NT4 */,
+ ok(bret == FALSE && WSAGetLastError() == WSAEFAULT,
"AcceptEx on too small remote address size returned %d + errno %d\n", bret, WSAGetLastError());
bret = pAcceptEx(listener, acceptor, buffer, 0, sizeof(struct sockaddr_in) + 16,
sizeof(struct sockaddr_in) + 15, &bytesReturned, &overlapped);
- ok(bret == FALSE && (WSAGetLastError() == ERROR_IO_PENDING || broken(WSAGetLastError() == WSAEINVAL)) /* NT4 */,
+ ok(bret == FALSE && WSAGetLastError() == ERROR_IO_PENDING,
"AcceptEx on too small remote address size returned %d + errno %d\n", bret, WSAGetLastError());
bret = CancelIo((HANDLE) listener);
ok(bret, "Failed to cancel pending accept socket\n");
@@ -8346,7 +8275,7 @@ todo_wine
bret = pAcceptEx(listener, acceptor, buffer, 0,
sizeof(struct sockaddr_in) + 16, sizeof(struct sockaddr_in) + 16,
&bytesReturned, &overlapped);
- todo_wine ok((bret == FALSE && WSAGetLastError() == WSAEINVAL) || broken(bret == FALSE && WSAGetLastError() == ERROR_IO_PENDING) /* NT4 */,
+ todo_wine ok(bret == FALSE && WSAGetLastError() == WSAEINVAL,
"AcceptEx on already pending socket returned %d + errno %d\n", bret, WSAGetLastError());
if (bret == FALSE && WSAGetLastError() == ERROR_IO_PENDING) {
/* We need to cancel this call, otherwise things fail */
@@ -8362,7 +8291,7 @@ todo_wine
}
iret = connect(acceptor, (struct sockaddr*)&bindAddress, sizeof(bindAddress));
- todo_wine ok((iret == SOCKET_ERROR && WSAGetLastError() == WSAEINVAL) || broken(!iret) /* NT4 */,
+ todo_wine ok(iret == SOCKET_ERROR && WSAGetLastError() == WSAEINVAL,
"connecting to acceptex acceptor succeeded? return %d + errno %d\n", iret, WSAGetLastError());
if (!iret || (iret == SOCKET_ERROR && WSAGetLastError() == WSAEWOULDBLOCK)) {
/* We need to cancel this call, otherwise things fail */
@@ -8631,7 +8560,7 @@ todo_wine
closesocket(acceptor);
dwret = WaitForSingleObject(overlapped.hEvent, 1000);
- todo_wine ok(dwret == WAIT_OBJECT_0 || broken(dwret == WAIT_TIMEOUT) /* NT4/2000 */,
+ todo_wine ok(dwret == WAIT_OBJECT_0,
"Waiting for accept event failed with %d + errno %d\n", dwret, GetLastError());
if (dwret != WAIT_TIMEOUT) {
@@ -9064,8 +8993,7 @@ static void test_getpeername(void)
ret = getpeername(sock, NULL, NULL);
ok(ret == SOCKET_ERROR, "Expected getpeername to return SOCKET_ERROR, got %d\n", ret);
- ok(WSAGetLastError() == WSAENOTCONN ||
- broken(WSAGetLastError() == WSAEFAULT), /* Win9x and WinMe */
+ ok(WSAGetLastError() == WSAENOTCONN,
"Expected WSAGetLastError() to return WSAENOTCONN, got %d\n", WSAGetLastError());
memset(&sa, 0, sizeof(sa));
@@ -9080,8 +9008,7 @@ static void test_getpeername(void)
ret = getpeername(sock, NULL, NULL);
ok(ret == SOCKET_ERROR, "Expected getpeername to return SOCKET_ERROR, got %d\n", ret);
- ok(WSAGetLastError() == WSAENOTCONN ||
- broken(WSAGetLastError() == WSAEFAULT), /* Win9x and WinMe */
+ ok(WSAGetLastError() == WSAENOTCONN,
"Expected WSAGetLastError() to return WSAENOTCONN, got %d\n", WSAGetLastError());
ret = connect(sock, (struct sockaddr*)&sa, sizeof(sa));
@@ -9155,40 +9082,27 @@ static void test_sioRoutingInterfaceQuery(void)
"expected WSAEFAULT, got %d\n", WSAGetLastError());
ret = WSAIoctl(sock, SIO_ROUTING_INTERFACE_QUERY, &sin, sizeof(sin),
NULL, 0, &bytesReturned, NULL, NULL);
- ok(ret == SOCKET_ERROR &&
- (WSAGetLastError() == WSAEFAULT /* Win98 */ ||
- WSAGetLastError() == WSAEINVAL /* NT4 */||
- WSAGetLastError() == WSAEAFNOSUPPORT),
- "expected WSAEFAULT or WSAEINVAL or WSAEAFNOSUPPORT, got %d\n",
- WSAGetLastError());
+ todo_wine ok(ret == SOCKET_ERROR && WSAGetLastError() == WSAEAFNOSUPPORT,
+ "expected WSAEAFNOSUPPORT, got %d\n", WSAGetLastError());
sin.sin_family = AF_INET;
ret = WSAIoctl(sock, SIO_ROUTING_INTERFACE_QUERY, &sin, sizeof(sin),
NULL, 0, &bytesReturned, NULL, NULL);
- ok(ret == SOCKET_ERROR &&
- (WSAGetLastError() == WSAEFAULT /* Win98 */ ||
- WSAGetLastError() == WSAEINVAL),
- "expected WSAEFAULT or WSAEINVAL, got %d\n", WSAGetLastError());
+ todo_wine ok(ret == SOCKET_ERROR && WSAGetLastError() == WSAEINVAL,
+ "expected WSAEINVAL, got %d\n", WSAGetLastError());
sin.sin_addr.s_addr = htonl(INADDR_LOOPBACK);
ret = WSAIoctl(sock, SIO_ROUTING_INTERFACE_QUERY, &sin, sizeof(sin),
NULL, 0, &bytesReturned, NULL, NULL);
- ok(ret == SOCKET_ERROR &&
- (WSAGetLastError() == WSAEINVAL /* NT4 */ ||
- WSAGetLastError() == WSAEFAULT),
- "expected WSAEINVAL or WSAEFAULT, got %d\n", WSAGetLastError());
+ ok(ret == SOCKET_ERROR && WSAGetLastError() == WSAEFAULT,
+ "expected WSAEFAULT, got %d\n", WSAGetLastError());
ret = WSAIoctl(sock, SIO_ROUTING_INTERFACE_QUERY, &sin, sizeof(sin),
&sout, sizeof(sout), &bytesReturned, NULL, NULL);
- ok(!ret || broken(WSAGetLastError() == WSAEINVAL /* NT4 */),
- "WSAIoctl failed: %d\n", WSAGetLastError());
- if (!ret)
- {
- ok(sout.sin_family == AF_INET, "expected AF_INET, got %d\n",
- sout.sin_family);
- /* We expect the source address to be INADDR_LOOPBACK as well, but
- * there's no guarantee that a route to the loopback address exists,
- * so rather than introduce spurious test failures we do not test the
- * source address.
- */
- }
+ ok(!ret, "WSAIoctl failed: %d\n", WSAGetLastError());
+ ok(sout.sin_family == AF_INET, "expected AF_INET, got %d\n", sout.sin_family);
+ /* We expect the source address to be INADDR_LOOPBACK as well, but
+ * there's no guarantee that a route to the loopback address exists,
+ * so rather than introduce spurious test failures we do not test the
+ * source address.
+ */
closesocket(sock);
}
@@ -10445,12 +10359,6 @@ static void test_address_list_query(void)
bytes_returned = 0;
ret = WSAIoctl(s, SIO_ADDRESS_LIST_QUERY, NULL, 0, NULL, 0, &bytes_returned, NULL, NULL);
ok(ret == SOCKET_ERROR, "Got unexpected ret %d.\n", ret);
- if(WSAGetLastError() == WSAEINVAL)
- {
- win_skip("Windows <= NT4 is not supported in this test\n");
- closesocket(s);
- return;
- }
ok(WSAGetLastError() == WSAEFAULT, "Got unexpected error %d.\n", WSAGetLastError());
ok(bytes_returned >= FIELD_OFFSET(SOCKET_ADDRESS_LIST, Address[0]),
"Got unexpected bytes_returned %u.\n", bytes_returned);
--
2.15.1
2
2
[PATCH] d3dx9/tests: Use true spherical light values and relax expectations
by Alex Henrie 04 Jan '18
by Alex Henrie 04 Jan '18
04 Jan '18
Signed-off-by: Alex Henrie <alexhenrie24(a)gmail.com>
---
64-bit Wine on Linux produces values that are slightly closer to the
true values than Windows, but far enough from the Windows values to
not be able to resolve the failures by only relaxing the test
stringency.
dlls/d3dx9_36/tests/math.c | 126 ++++++++++++++++++++++-----------------------
1 file changed, 63 insertions(+), 63 deletions(-)
diff --git a/dlls/d3dx9_36/tests/math.c b/dlls/d3dx9_36/tests/math.c
index 0e9853abe3..b687e5d6dd 100644
--- a/dlls/d3dx9_36/tests/math.c
+++ b/dlls/d3dx9_36/tests/math.c
@@ -3121,68 +3121,68 @@ static void test_D3DXSHEvalSphericalLight(void)
static const float table[] =
{
/* Red colour. */
- 3.01317239e+00f, -9.77240324e-01f, 2.24765277e+00f, -8.95803630e-01f, -1.22213947e-07f, 3.06645916e-07f,
- -3.36369283e-07f, 2.81092071e-07f, 1.06474305e-08f, 6.29281402e-02f, -4.27374065e-01f, 6.19212627e-01f,
- -3.04508984e-01f, 5.67611575e-01f, 3.72333601e-02f, -8.19167346e-02f, -4.70457762e-09f, -7.94764006e-08f,
- 3.32868979e-07f, -3.08902315e-07f, 5.30925970e-10f, -2.83160460e-07f, -2.89999580e-08f, 1.03458447e-07f,
- -2.67952434e-08f, 1.24992710e-02f, -1.37487827e-02f, -1.48109317e-01f, 4.34345961e-01f, -2.45986164e-01f,
- -1.51757941e-01f, -2.25487292e-01f, -3.78407575e-02f, 1.92801371e-01f, -7.83071220e-02f, 7.97894225e-03f,
-
- 4.02519643e-01f, -2.43653327e-01f, 5.60402632e-01f, -2.23348871e-01f, 1.62046894e-01f, -4.06590402e-01f,
- 4.46001410e-01f, -3.72707844e-01f, -1.41177261e-02f, -4.31995131e-02f, 2.93387860e-01f, -4.25083041e-01f,
- 2.09042251e-01f, -3.89659435e-01f, -2.55603138e-02f, 5.62349856e-02f, -4.68822848e-03f, -7.92002082e-02f,
- 3.31712216e-01f, -3.07828844e-01f, 5.29080920e-04f, -2.82176435e-01f, -2.88991798e-02f, 1.03098914e-01f,
- -2.67021265e-02f, 7.24340184e-03f, -7.96750095e-03f, -8.58302265e-02f, 2.51706064e-01f, -1.42550439e-01f,
- -8.79446268e-02f, -1.30671218e-01f, -2.19289437e-02f, 1.11729540e-01f, -4.53794412e-02f, 4.62384429e-03f,
-
- 1.95445275e+00f, -8.56593668e-01f, 1.97016549e+00f, -7.85210848e-01f, 2.31033459e-01f, -5.79683959e-01f,
- 6.35873020e-01f, -5.31376958e-01f, -2.01279204e-02f, 2.11104341e-02f, -1.43370718e-01f, 2.07726598e-01f,
- -1.02153301e-01f, 1.90416038e-01f, 1.24906348e-02f, -2.74805184e-02f, 6.33162493e-03f, 1.06962793e-01f,
- -4.47989494e-01f, 4.15734142e-01f, -7.14543217e-04f, 3.81089628e-01f, 3.90294008e-02f, -1.39238864e-01f,
- 3.60621996e-02f, -4.47360286e-03f, 4.92081419e-03f, 5.30096702e-02f, -1.55456364e-01f, 8.80406797e-02f,
- 5.43155447e-02f, 8.07039514e-02f, 1.35435509e-02f, -6.90053627e-02f, 2.80268304e-02f, -2.85573583e-03f,
+ 3.01317163e+00f, -9.77240128e-01f, 2.24765220e+00f, -8.95803434e-01f, 3.25255224e-35f, -8.16094904e-35f,
+ 8.95199460e-35f, -7.48086982e-35f, -2.83366352e-36f, 6.29281376e-02f, -4.27374053e-01f, 6.19212543e-01f,
+ -3.04508915e-01f, 5.67611487e-01f, 3.72333533e-02f, -8.19167317e-02f, 1.25205729e-36f, 2.11515287e-35f,
+ -8.85884025e-35f, 8.22100105e-35f, -1.41290744e-37f, 7.53591749e-35f, 7.71793061e-36f, -2.75340121e-35f,
+ 7.13117824e-36f, 1.24992691e-02f, -1.37487792e-02f, -1.48109290e-01f, 4.34345843e-01f, -2.45986100e-01f,
+ -1.51757946e-01f, -2.25487254e-01f, -3.78407442e-02f, 1.92801335e-01f, -7.83071154e-02f, 7.97894137e-03f,
+
+ 4.02519645e-01f, -2.43653315e-01f, 5.60402600e-01f, -2.23348868e-01f, 1.62046875e-01f, -4.06590330e-01f,
+ 4.46001368e-01f, -3.72707796e-01f, -1.41177231e-02f, -4.31995198e-02f, 2.93387896e-01f, -4.25083048e-01f,
+ 2.09042241e-01f, -3.89659453e-01f, -2.55603144e-02f, 5.62349945e-02f, -4.68822967e-03f, -7.92002290e-02f,
+ 3.31712278e-01f, -3.07828893e-01f, 5.29052032e-04f, -2.82176480e-01f, -2.88991817e-02f, 1.03098934e-01f,
+ -2.67021338e-02f, 7.24339502e-03f, -7.96749298e-03f, -8.58301461e-02f, 2.51705799e-01f, -1.42550295e-01f,
+ -8.79445626e-02f, -1.30671101e-01f, -2.19289189e-02f, 1.11729432e-01f, -4.53794030e-02f, 4.62384030e-03f,
+
+ 1.95445306e+00f, -8.56593659e-01f, 1.97016533e+00f, -7.85210840e-01f, 2.31033385e-01f, -5.79683751e-01f,
+ 6.35872835e-01f, -5.31376762e-01f, -2.01279127e-02f, 2.11104646e-02f, -1.43370917e-01f, 2.07726860e-01f,
+ -1.02153423e-01f, 1.90416285e-01f, 1.24906507e-02f, -2.74805568e-02f, 6.33162467e-03f, 1.06962790e-01f,
+ -4.47989495e-01f, 4.15734115e-01f, -7.14504011e-04f, 3.81089599e-01f, 3.90293960e-02f, -1.39238860e-01f,
+ 3.60622028e-02f, -4.47359268e-03f, 4.92080277e-03f, 5.30095505e-02f, -1.55456001e-01f, 8.80404774e-02f,
+ 5.43154350e-02f, 8.07037695e-02f, 1.35435180e-02f, -6.90052063e-02f, 2.80267699e-02f, -2.85572968e-03f,
/* Green colour. */
- 4.60838127e+00f, -1.49460280e+00f, 3.43758631e+00f, -1.37005258e+00f, -1.86915443e-07f, 4.68987878e-07f,
- -5.14447095e-07f, 4.29905526e-07f, 1.62843055e-08f, 9.62430239e-02f, -6.53630912e-01f, 9.47031021e-01f,
- -4.65719581e-01f, 8.68111789e-01f, 5.69451340e-02f, -1.25284418e-01f, -7.19523641e-09f, -1.21552148e-07f,
- 5.09093695e-07f, -4.72438842e-07f, 8.12004408e-10f, -4.33068919e-07f, -4.43528769e-08f, 1.58230563e-07f,
- -4.09809608e-08f, 1.91165321e-02f, -2.10275482e-02f, -2.26520121e-01f, 6.64293766e-01f, -3.76214117e-01f,
- -2.32100368e-01f, -3.44862908e-01f, -5.78740984e-02f, 2.94872671e-01f, -1.19763829e-01f, 1.22030871e-02f,
-
- 6.15618229e-01f, -3.72646272e-01f, 8.57086360e-01f, -3.41592401e-01f, 2.47836411e-01f, -6.21844113e-01f,
- 6.82119787e-01f, -5.70023775e-01f, -2.15918161e-02f, -6.60698414e-02f, 4.48710799e-01f, -6.50126934e-01f,
- 3.19711655e-01f, -5.95949709e-01f, -3.90922427e-02f, 8.60064477e-02f, -7.17023155e-03f, -1.21129729e-01f,
- 5.07324517e-01f, -4.70797032e-01f, 8.09182529e-04f, -4.31563944e-01f, -4.41987440e-02f, 1.57680690e-01f,
- -4.08385433e-02f, 1.10781426e-02f, -1.21855885e-02f, -1.31269753e-01f, 3.84962171e-01f, -2.18018293e-01f,
- -1.34503528e-01f, -1.99850082e-01f, -3.35383788e-02f, 1.70880452e-01f, -6.94038495e-02f, 7.07176095e-03f,
-
- 2.98916292e+00f, -1.31008446e+00f, 3.01319408e+00f, -1.20091069e+00f, 3.53345245e-01f, -8.86575401e-01f,
- 9.72511649e-01f, -8.12694073e-01f, -3.07838768e-02f, 3.22865434e-02f, -2.19272852e-01f, 3.17699492e-01f,
- -1.56234443e-01f, 2.91224509e-01f, 1.91033222e-02f, -4.20290269e-02f, 9.68366116e-03f, 1.63590148e-01f,
- -6.85160398e-01f, 6.35828674e-01f, -1.09283067e-03f, 5.82842946e-01f, 5.96920252e-02f, -2.12953553e-01f,
- 5.51539510e-02f, -6.84198039e-03f, 7.52595067e-03f, 8.10736120e-02f, -2.37756789e-01f, 1.34650454e-01f,
- 8.30708295e-02f, 1.23429567e-01f, 2.07136646e-02f, -1.05537608e-01f, 4.28645648e-02f, -4.36759600e-03f,
+ 4.60837984e+00f, -1.49460245e+00f, 3.43758549e+00f, -1.37005222e+00f, 4.97449134e-35f, -1.24814507e-34f,
+ 1.36912850e-34f, -1.14413296e-34f, -4.33383805e-36f, 9.62430278e-02f, -6.53630863e-01f, 9.47030887e-01f,
+ -4.65719486e-01f, 8.68111630e-01f, 5.69451249e-02f, -1.25284405e-01f, 1.91491103e-36f, 3.23493947e-35f,
+ -1.35488136e-34f, 1.25732949e-34f, -2.16091711e-37f, 1.15255201e-34f, 1.18038931e-35f, -4.21108392e-35f,
+ 1.09065072e-35f, 1.91165280e-02f, -2.10275433e-02f, -2.26520076e-01f, 6.64293599e-01f, -3.76214011e-01f,
+ -2.32100374e-01f, -3.44862837e-01f, -5.78740756e-02f, 2.94872611e-01f, -1.19763816e-01f, 1.22030860e-02f,
+
+ 6.15618240e-01f, -3.72646222e-01f, 8.57086273e-01f, -3.41592364e-01f, 2.47836381e-01f, -6.21843994e-01f,
+ 6.82119695e-01f, -5.70023651e-01f, -2.15918104e-02f, -6.60698496e-02f, 4.48710870e-01f, -6.50126972e-01f,
+ 3.19711642e-01f, -5.95949713e-01f, -3.90922430e-02f, 8.60064566e-02f, -7.17023314e-03f, -1.21129754e-01f,
+ 5.07324627e-01f, -4.70797100e-01f, 8.09138350e-04f, -4.31564000e-01f, -4.41987457e-02f, 1.57680712e-01f,
+ -4.08385549e-02f, 1.10781328e-02f, -1.21855767e-02f, -1.31269627e-01f, 3.84961785e-01f, -2.18018084e-01f,
+ -1.34503440e-01f, -1.99849906e-01f, -3.35383443e-02f, 1.70880296e-01f, -6.94037884e-02f, 7.07175529e-03f,
+
+ 2.98916331e+00f, -1.31008433e+00f, 3.01319384e+00f, -1.20091062e+00f, 3.53345154e-01f, -8.86575090e-01f,
+ 9.72511332e-01f, -8.12693818e-01f, -3.07838645e-02f, 3.22865908e-02f, -2.19273153e-01f, 3.17699883e-01f,
+ -1.56234637e-01f, 2.91224888e-01f, 1.91033469e-02f, -4.20290842e-02f, 9.68366064e-03f, 1.63590138e-01f,
+ -6.85160360e-01f, 6.35828606e-01f, -1.09277077e-03f, 5.82842878e-01f, 5.96920135e-02f, -2.12953537e-01f,
+ 5.51539537e-02f, -6.84196484e-03f, 7.52593316e-03f, 8.10734249e-02f, -2.37756221e-01f, 1.34650133e-01f,
+ 8.30706600e-02f, 1.23429287e-01f, 2.07136145e-02f, -1.05537368e-01f, 4.28644688e-02f, -4.36758628e-03f,
/* Blue colour. */
- 6.20359039e+00f, -2.01196527e+00f, 4.62752008e+00f, -1.84430146e+00f, -2.51616967e-07f, 6.31329840e-07f,
- -6.92524964e-07f, 5.78718982e-07f, 2.19211813e-08f, 1.29557922e-01f, -8.79887760e-01f, 1.27484941e+00f,
- -6.26930237e-01f, 1.16861200e+00f, 7.66569078e-02f, -1.68652087e-01f, -9.68589564e-09f, -1.63627888e-07f,
- 6.85318469e-07f, -6.35975368e-07f, 1.09308285e-09f, -5.82977407e-07f, -5.97057976e-08f, 2.13002679e-07f,
- -5.51666766e-08f, 2.57337932e-02f, -2.83063166e-02f, -3.04930955e-01f, 8.94241691e-01f, -5.06442070e-01f,
- -3.12442809e-01f, -4.64238554e-01f, -7.79074430e-02f, 3.96944016e-01f, -1.61220551e-01f, 1.64272338e-02f,
-
- 8.28716874e-01f, -5.01639187e-01f, 1.15377009e+00f, -4.59835887e-01f, 3.33625972e-01f, -8.37097943e-01f,
- 9.18238282e-01f, -7.67339706e-01f, -2.90659070e-02f, -8.89401734e-02f, 6.04033828e-01f, -8.75170946e-01f,
- 4.30381119e-01f, -8.02240014e-01f, -5.26241735e-02f, 1.15777917e-01f, -9.65223555e-03f, -1.63059264e-01f,
- 6.82936907e-01f, -6.33765280e-01f, 1.08928420e-03f, -5.80951512e-01f, -5.94983101e-02f, 2.12262481e-01f,
- -5.49749658e-02f, 1.49128847e-02f, -1.64036769e-02f, -1.76709279e-01f, 5.18218338e-01f, -2.93486178e-01f,
- -1.81062460e-01f, -2.69028962e-01f, -4.51478213e-02f, 2.30031401e-01f, -9.34282616e-02f, 9.51967947e-03f,
-
- 4.02387333e+00f, -1.76357520e+00f, 4.05622292e+00f, -1.61661065e+00f, 4.75657105e-01f, -1.19346702e+00f,
- 1.30915034e+00f, -1.09401131e+00f, -4.14398350e-02f, 4.34626564e-02f, -2.95174986e-01f, 4.27672386e-01f,
- -2.10315600e-01f, 3.92033011e-01f, 2.57160105e-02f, -5.65775372e-02f, 1.30356979e-02f, 2.20217496e-01f,
- -9.22331274e-01f, 8.55923176e-01f, -1.47111830e-03f, 7.84596264e-01f, 8.03546458e-02f, -2.86668241e-01f,
- 7.42457062e-02f, -9.21035837e-03f, 1.01310881e-02f, 1.09137557e-01f, -3.20057213e-01f, 1.81260213e-01f,
- 1.11826122e-01f, 1.66155189e-01f, 2.78837811e-02f, -1.42069861e-01f, 5.77022992e-02f, -5.87945618e-03f,
+ 6.20358848e+00f, -2.01196491e+00f, 4.62751910e+00f, -1.84430114e+00f, 6.69643089e-35f, -1.68019534e-34f,
+ 1.84305766e-34f, -1.54017904e-34f, -5.83401297e-36f, 1.29557927e-01f, -8.79887732e-01f, 1.27484932e+00f,
+ -6.26930101e-01f, 1.16861185e+00f, 7.66569017e-02f, -1.68652090e-01f, 2.57776494e-36f, 4.35472637e-35f,
+ -1.82387882e-34f, 1.69255899e-34f, -2.90892699e-37f, 1.55151238e-34f, 1.58898567e-35f, -5.66876703e-35f,
+ 1.46818371e-35f, 2.57337886e-02f, -2.83063093e-02f, -3.04930882e-01f, 8.94241416e-01f, -5.06441957e-01f,
+ -3.12442822e-01f, -4.64238452e-01f, -7.79074123e-02f, 3.96943914e-01f, -1.61220527e-01f, 1.64272318e-02f,
+
+ 8.28716892e-01f, -5.01639163e-01f, 1.15377003e+00f, -4.59835891e-01f, 3.33625909e-01f, -8.37097715e-01f,
+ 9.18238085e-01f, -7.67339558e-01f, -2.90658997e-02f, -8.89401854e-02f, 6.04033886e-01f, -8.75170956e-01f,
+ 4.30381072e-01f, -8.02240028e-01f, -5.26241753e-02f, 1.15777927e-01f, -9.65223728e-03f, -1.63059290e-01f,
+ 6.82937023e-01f, -6.33765350e-01f, 1.08922474e-03f, -5.80951560e-01f, -5.94983136e-02f, 2.12262505e-01f,
+ -5.49749798e-02f, 1.49128717e-02f, -1.64036616e-02f, -1.76709119e-01f, 5.18217807e-01f, -2.93485893e-01f,
+ -1.81062330e-01f, -2.69028730e-01f, -4.51477729e-02f, 2.30031176e-01f, -9.34281801e-02f, 9.51967094e-03f,
+
+ 4.02387383e+00f, -1.76357513e+00f, 4.05622263e+00f, -1.61661051e+00f, 4.75656955e-01f, -1.19346651e+00f,
+ 1.30914992e+00f, -1.09401095e+00f, -4.14398191e-02f, 4.34627200e-02f, -2.95175409e-01f, 4.27672935e-01f,
+ -2.10315865e-01f, 3.92033517e-01f, 2.57160448e-02f, -5.65776154e-02f, 1.30356975e-02f, 2.20217502e-01f,
+ -9.22331288e-01f, 8.55923154e-01f, -1.47103763e-03f, 7.84596211e-01f, 8.03546365e-02f, -2.86668233e-01f,
+ 7.42457096e-02f, -9.21033762e-03f, 1.01310642e-02f, 1.09137307e-01f, -3.20056463e-01f, 1.81259801e-01f,
+ 1.11825893e-01f, 1.66154815e-01f, 2.78837128e-02f, -1.42069538e-01f, 5.77021717e-02f, -5.87944329e-03f,
};
const struct
{
@@ -3229,7 +3229,7 @@ static void test_D3DXSHEvalSphericalLight(void)
expected = j + test[l].roffset;
else
expected = test[l].red_expected[j];
- equal = compare_float(expected, test[l].red_received[j], 2048);
+ equal = compare_float(expected, test[l].red_received[j], 4096);
ok(equal || (fabs(expected) < 1.0e-6f && fabs(test[l].red_received[j]) < 1.0e-6f),
"Red: case %u, order %u: expected[%u] = %.8e, received %.8e.\n",
l, order, j, expected, test[l].red_received[j]);
@@ -3240,7 +3240,7 @@ static void test_D3DXSHEvalSphericalLight(void)
expected = j + test[l].goffset;
else
expected = test[l].green_expected[j];
- equal = compare_float(expected, test[l].green_received[j], 2048);
+ equal = compare_float(expected, test[l].green_received[j], 4096);
ok(equal || (fabs(expected) < 1.0e-6f && fabs(test[l].green_received[j]) < 1.0e-6f),
"Green: case %u, order %u: expected[%u] = %.8e, received %.8e.\n",
l, order, j, expected, test[l].green_received[j]);
@@ -3252,7 +3252,7 @@ static void test_D3DXSHEvalSphericalLight(void)
expected = j + test[l].boffset;
else
expected = test[l].blue_expected[j];
- equal = compare_float(expected, test[l].blue_received[j], 2048);
+ equal = compare_float(expected, test[l].blue_received[j], 4096);
ok(equal || (fabs(expected) < 1.0e-6f && fabs(test[l].blue_received[j]) < 1.0e-6f),
"Blue: case %u, order %u: expected[%u] = %.8e, received %.8e.\n",
l, order, j, expected, test[l].blue_received[j]);
--
2.15.1
2
2