On Apr 13, 2013, at 9:43 PM, Hugh McMaster wrote:
On Apr 13, 2013, at 7:39 AM, Hugh McMaster wrote:
I've been adding a new handler to Wine's server. Unfortunately, I've run into a problem with C_ASSERT that I can't seem to resolve.
In server/request.h, I've added the following code:
STOP! You should modify server/protocol.def instead. The file you changed is automatically generated from protocol.def, along with a bunch of other files needed to make the server interface magic work.
Hi Charles,
I had already modified protocol.def.
Oh. It's just that you hadn't mentioned that. Sorry for the curt "STOP" above.
The interesting thing about server/request.h is that the handler declarations appear in the area of the file commented as automatically generated.
Of course they do. The Perl script tools/make_requests is responsible for generating those declarations from server/protocol.def. It is also responsible for generating include/wine/server_protocol.h, and pieces of server/trace.c. You should not have to manually change any of them (other than protocol.def, of course). You might, however, have to run make_requests manually, though (the makefiles, for some reason, won't invoke it for you).
Also, bear in mind that, when you're done with your patch and you submit it to wine-patches, you should not include the changes to any generated files (despite that they're version-controlled). Don't worry; AJ will run make_requests when he commits your patch to update the files in version control.
Oh, and a warning: AJ is very touchy about the server (and why not? It's probably the most critical component in Wine, being responsible for coordinating all Wine processes in a given prefix). He holds patches against the server to much higher standards than usual--and they're already pretty high. So don't worry if your patch doesn't get in at first.
Chip