Hello,
I'm thinking of trying to do some helpfull work on wine; I have the following problem, - I don't know where to start (I have never done stuff in wine or another open source project) ; but I hope you have patience to guide me into that (but I'm a informatica student, I like learning stuff like htis ;) ) - I don't know the details about Unicode functions;
I think the W->A thing of the janitorial might be a great way to start working in wine code; as it doesn't require too much overview about the way wine does its work I think.. (and I don't yet have much of that overview..)
About a month ago, I saw a thread, including an interesting patch, about the W->A calls; Could someone find that link? Are there tutorials/manuals/guides/... about Unicode funcitons you recommend ?
Now, on to the work: if you can hand me that thread, how do I start? Are there unit tests? Where should I put tests ..? How do I run the tests?
Thanks for any help -- I hope it's not too much trouble to answer these questions!
Oh.. and if the W->A thing is already covered.. is there some other area where a starter like me could start?
regards,
Joris
Joris Huizer wrote:
Hello,
I'm thinking of trying to do some helpfull work on wine;
Cool!
I have the following problem,
- I don't know where to start (I have never done stuff in wine or
another open source project) ; but I hope you have patience to guide me into that (but I'm a informatica student, I like learning stuff like htis ;) )
Well, you can do lots of things. You could sit down and try and make apps work, which is fun and rewarding but has a STEEP learning curve, or you can tackle the janitorial tasks (like you said), or you can hack on the tools we use like the debugger/test suite, or you can work on ease of use issues and desktop integration. There's a ton of things, really.
Most people hack on making particular applications they like work.
- I don't know the details about Unicode functions;
I think the W->A thing of the janitorial might be a great way to start working in wine code; as it doesn't require too much overview about the way wine does its work I think.. (and I don't yet have much of that overview..)
I've started work about a week ago on a "Wine developer cheatsheet" that covers the basics like important debugging channels, how to use the debugger, some basic Win32 API guidance and so on. I'll publish it here in a week or two.
thanks -mike
Hey Joris,
I started developing wine in exactly the same way you are starting: working on the janitorial projects. My current project is converting the crypt cross calls, and it is almost finished, but im waiting for my CryptSetProviderExA patch to be committed before I send the rest of my cross call cleanup patches.
If you would like I can write a little howto concerning W->A cross call cleanup and the like (unit tests). There are a bunch of little nitpicky things you just have to know before you can really start cracking in on it...a while back i tried to submit a cleanup patch like 6 times and it was reject everytime because I didnt know the details yet. So if you would like this information, let me know. We're glad you're here to help with wine.
On Wed, 25 Aug 2004 11:01:09 +0100, Mike Hearn m.hearn@signal.qinetiq.com wrote:
Joris Huizer wrote:
Hello,
I'm thinking of trying to do some helpfull work on wine;
Cool!
I have the following problem,
- I don't know where to start (I have never done stuff in wine or
another open source project) ; but I hope you have patience to guide me into that (but I'm a informatica student, I like learning stuff like htis ;) )
Well, you can do lots of things. You could sit down and try and make apps work, which is fun and rewarding but has a STEEP learning curve, or you can tackle the janitorial tasks (like you said), or you can hack on the tools we use like the debugger/test suite, or you can work on ease of use issues and desktop integration. There's a ton of things, really.
Most people hack on making particular applications they like work.
- I don't know the details about Unicode functions;
I think the W->A thing of the janitorial might be a great way to start working in wine code; as it doesn't require too much overview about the way wine does its work I think.. (and I don't yet have much of that overview..)
I've started work about a week ago on a "Wine developer cheatsheet" that covers the basics like important debugging channels, how to use the debugger, some basic Win32 API guidance and so on. I'll publish it here in a week or two.
thanks -mike
James Hawkins wrote:
Hey Joris,
I started developing wine in exactly the same way you are
starting: working on the janitorial projects. My current project is converting the crypt cross calls, and it is almost finished, but im waiting for my CryptSetProviderExA patch to be committed before I send the rest of my cross call cleanup patches.
If you would like I can write a little howto concerning W->A cross call cleanup and the like (unit tests). There are a bunch of little nitpicky things you just have to know before you can really start cracking in on it...a while back i tried to submit a cleanup patch like 6 times and it was reject everytime because I didnt know the details yet. So if you would like this information, let me know. We're glad you're here to help with wine.
Hi James,
Yeah I would like that, thanks for suggesting :) I'll try and do a search on unicode functions and stuff but -- well, you have seen more of wine specific details ...
Also, I think it'd be smart to put something like that online (like.. linking from the janitorial page to that one?) By the way... Is there some kind of overview of what parts is already being worked on; we don't want to do double work right ;)
- Joris
Le mer 25/08/2004 à 11:27, Joris Huizer a écrit : [snip]
Hi James,
Yeah I would like that, thanks for suggesting :) I'll try and do a search on unicode functions and stuff but -- well, you have seen more of wine specific details ...
Also, I think it'd be smart to put something like that online (like.. linking from the janitorial page to that one?) By the way... Is there some kind of overview of what parts is already being worked on; we don't want to do double work right ;)
Already done work is grayed-out or simply removed from the janitorial page.
Also take note (François? Any perl hacker?) that the method used to find the cross-calls (winapi_check) is not 100% proof. There are some valid C statements which contain a cross-call which are not found. Look at dlls/lzexpand/lzexpand_main.c GetExpandedNameW:
INT WINAPI GetExpandedNameW( LPWSTR in, LPWSTR out ) { INT ret; DWORD len = WideCharToMultiByte( CP_ACP, 0, in, -1, NULL, 0, NULL, NULL ); char *xin = HeapAlloc( GetProcessHeap(), 0, len ); char *xout = HeapAlloc( GetProcessHeap(), 0, len+3 ); WideCharToMultiByte( CP_ACP, 0, in, -1, xin, len, NULL, NULL ); if ((ret = GetExpandedNameA( xin, xout )) > 0) MultiByteToWideChar( CP_ACP, 0, xout, -1, out, strlenW(in)+4 ); HeapFree( GetProcessHeap(), 0, xin ); HeapFree( GetProcessHeap(), 0, xout ); return ret; }
The A call is between parenthesis and winapi_check can't find it. winapi_check would need to be modified to find those, as I'm sure that's not the only one in the whole tree.
Vincent
Hey Joris, I would be glad to write a howto for your and possibly others. I will get started on that soon.
On 25 Aug 2004 11:43:57 -0400, Vincent Béron vberon@mecano.gme.usherb.ca wrote:
Le mer 25/08/2004 à 11:27, Joris Huizer a écrit : [snip]
Hi James,
Yeah I would like that, thanks for suggesting :) I'll try and do a search on unicode functions and stuff but -- well, you have seen more of wine specific details ...
Also, I think it'd be smart to put something like that online (like.. linking from the janitorial page to that one?) By the way... Is there some kind of overview of what parts is already being worked on; we don't want to do double work right ;)
Already done work is grayed-out or simply removed from the janitorial page.
Also take note (François? Any perl hacker?) that the method used to find the cross-calls (winapi_check) is not 100% proof. There are some valid C statements which contain a cross-call which are not found. Look at dlls/lzexpand/lzexpand_main.c GetExpandedNameW:
INT WINAPI GetExpandedNameW( LPWSTR in, LPWSTR out ) { INT ret; DWORD len = WideCharToMultiByte( CP_ACP, 0, in, -1, NULL, 0, NULL, NULL ); char *xin = HeapAlloc( GetProcessHeap(), 0, len ); char *xout = HeapAlloc( GetProcessHeap(), 0, len+3 ); WideCharToMultiByte( CP_ACP, 0, in, -1, xin, len, NULL, NULL ); if ((ret = GetExpandedNameA( xin, xout )) > 0) MultiByteToWideChar( CP_ACP, 0, xout, -1, out, strlenW(in)+4 ); HeapFree( GetProcessHeap(), 0, xin ); HeapFree( GetProcessHeap(), 0, xout ); return ret; }
The A call is between parenthesis and winapi_check can't find it. winapi_check would need to be modified to find those, as I'm sure that's not the only one in the whole tree.
Vincent