Hey, I'm sorry for not noticing this bug earlier - I have a bad habit of only browsing bugs listed under wine-richedit. I actually sent in a patch that fixes this bug before, but it wasn't accepted because I hadn't marked a test that it causes to fail as todo_wine. Does the attached patch solve your problem?
The attached patch moves all the logic to ME_SetSelection, so it'll apply to EM_SETSEL as well as EM_EXSETSEL (they both are supposed to follow the same special cases), and this way it will contribute to my further separating functionality from the message handlers into ME_ local functions which is needed to properly implement windowless controls.
This patch does result in a wrong return if the user sent a SetSelection beyond the end of the document (windows allows you to select an imaginary character at the end), but I don't think that's a problem for anything, and I'll have it working in a couple weeks (I'm working on improving the selection code in general, a part of which will allow you to actually select that extra character in our richedit). I suppose i could just put a small hack in for the meantime, if anyone cares.
I haven't tried them together yet, but your new tests do look significantly more comprehensive - well done.
--Matt
On 12/3/06, Lei Zhang thestig@google.com wrote:
Hi,
Changelog:
- Check the input to EM_EXSETSEL
- Fixes bug 6814
- Added more comprehensive conformance tests for EM_EXSETSEL
editor.c | 52 +++++++++++++++++++++--- tests/editor.c | 103 +++++++++++++++++++++++++++++++------------------ 2 files changed, 112 insertions(+), 43 deletions(-)
No, your patch does not pass my tests, and it triggers the crash in bug 6814.
I will move the code I wrote into ME_SetSelection and resubmit the patch.
On 12/3/06, Matt Finnicum mattfinn@gmail.com wrote:
Hey, I'm sorry for not noticing this bug earlier - I have a bad habit of only browsing bugs listed under wine-richedit. I actually sent in a patch that fixes this bug before, but it wasn't accepted because I hadn't marked a test that it causes to fail as todo_wine. Does the attached patch solve your problem?
The attached patch moves all the logic to ME_SetSelection, so it'll apply to EM_SETSEL as well as EM_EXSETSEL (they both are supposed to follow the same special cases), and this way it will contribute to my further separating functionality from the message handlers into ME_ local functions which is needed to properly implement windowless controls.
This patch does result in a wrong return if the user sent a SetSelection beyond the end of the document (windows allows you to select an imaginary character at the end), but I don't think that's a problem for anything, and I'll have it working in a couple weeks (I'm working on improving the selection code in general, a part of which will allow you to actually select that extra character in our richedit). I suppose i could just put a small hack in for the meantime, if anyone cares.
I haven't tried them together yet, but your new tests do look significantly more comprehensive - well done.
--Matt
On 12/3/06, Lei Zhang thestig@google.com wrote:
Hi,
Changelog:
- Check the input to EM_EXSETSEL
- Fixes bug 6814
- Added more comprehensive conformance tests for EM_EXSETSEL
editor.c | 52 +++++++++++++++++++++--- tests/editor.c | 103 +++++++++++++++++++++++++++++++------------------ 2 files changed, 112 insertions(+), 43 deletions(-)