Re: winemac: Add registry settings to make Option keys send Alt rather than accessing additional characters from the keyboard layout.

2013-10-10 Thread Phil Krylov
Hello,

On Thu, Oct 10, 2013 at 3:24 AM, Ken Thomases k...@codeweavers.com wrote:
 On Oct 9, 2013, at 4:49 PM, Phil Krylov wrote:
 Do you consider adding an option to stop interpreting Command as Alt?

 I have not considered it.  What would be gained?  Do you want the Command key 
 interpreted as the Windows key?  Do you want something else to happen when 
 Command is pressed?

Every time I press Cmd-Space to switch keyboard layouts, Wine
activates menu as if I would have pressed Alt, so I have to press
Command once again to exit it. It does not happen in Windows, though,
when I use Alt-Shift to switch layouts, so the real problem is not
related to Alt interpretation of Cmd, but to incorrect emulation of
Windows behaviour when a keyboard layout switch hotkey is pressed.

On the other hand, Option is labeled as Alt, and works this way with
the X11 driver, so it seems logical to process Cmd as Win key. And it
would hack around my actual problem ;)

-- Ph.




Re: winemac: Add registry settings to make Option keys send Alt rather than accessing additional characters from the keyboard layout.

2013-10-09 Thread Phil Krylov
Thanks! Do you consider adding an option to stop interpreting Command as Alt?

On Thu, Oct 10, 2013 at 1:30 AM, Ken Thomases k...@codeweavers.com wrote:
 ---
 dlls/winemac.drv/cocoa_window.m |   22 --
 dlls/winemac.drv/macdrv_cocoa.h |2 ++
 dlls/winemac.drv/macdrv_main.c  |7 +++
 3 files changed, 29 insertions(+), 2 deletions(-)







-- 
С уважением,
Филипп Крылов.




Re: winemac: Don't return characters for Ctrl-(non-letter symbol) keypresses from ToUnicodeEx() as X11 driver already does (try 2)

2013-09-10 Thread Phil Krylov
Hi,

On Tue, Sep 10, 2013 at 6:05 AM, Ken Thomases k...@codeweavers.com wrote:
 Is there a specific problem that you're trying to fix?

Yes. I didn't file a bug report yet, but an application I am using
(IBM Translation Manager) has some functionality bound to Ctrl-[0-9/]
keypresses. Now with the Mac driver when I press Ctrl-1, for example,
the function bound to Ctrl-1 is executed, but also '1' gets inserted
into the active Richedit control which is wrong.

 The Mac driver's ToUnicodeEx() implementation started out very similar to the 
 X11 driver's.  It was basically a copy that I hacked on.  It originally had 
 this same restriction.  However, some testing revealed that this is not an 
 absolute restriction on Windows.  For example, in the Khmer keyboard layout, 
 Control-digit produces characters for some digits.  Given that some Windows 
 keyboard layouts produce characters for Control-digit, I figured it was 
 best left up to the Mac keyboard layout.

 Similarly for Control-punctuation.  For example, the Windows Chinese 
 keyboard layouts produce characters for some of those keystrokes.  So does 
 the Czech layout.

Yes I investigated the Mac keyboard layout files and found out that
the real problem is there - Ctrl-1 is really bound to produce '1' etc.
But when I press Ctrl-1 e.g. in TextEdit nothing gets inserted and a
beep is heard, but there is no simple way to understand what's
happening due to TextEdit's closed-sourcedness. Thanks for the Khmer
and Czech Windows layouts info.

 It might still be possible to re-introduce this restriction if it can be 
 justified based on broad breakage of apps.  Although even then, I'd want to 
 make it possible to override the restriction with a registry setting or 
 something.  You never know if the ability to enter characters using these key 
 combinations might be crucial for certain Mac users because of the nature of 
 their native keyboard layout.

I understand that this is rather a dirty hack, but after I found
similar code in winex11.drv, I thought it might get through.

 If a modification like this were justified, it should go earlier in 
 macdrv_ToUnicodeEx().  There's a section at the top where I moved the checks 
 for combinations that don't produce characters.
 Also, the check should test that Alt is _not_ pressed, since 
 Control-Alt-digit or punct and Control-Alt-Shfit-digit or punct very 
 commonly produce characters.  Control-Alt is a synonym for the AltGr key on 
 some keyboards (e.g. Swiss).

 Finally, if we're going to pursue this, there are some minor style issues I'd 
 prefer be changed.  So, check with me before resubmitting.

Ok, I'll retry, although after this answer of yours I have rather
little hope left as I don't know any other apps affected by this
behaviour, so it can't be called a 'broad' breakage.

-- Ph.




Re: [PATCH 1/3] riched20: Use codepage in ME_ToUnicode.

2013-09-03 Thread Phil Krylov
Hello,

-ME_EndToUnicode(unicode, wszText);
+unicode ? ME_EndToUnicode(1200, wszText) : ME_EndToUnicode(CP_ACP, 
wszText);

Personally I dislike this stuff in C code. Especially when you could
make it shorter:

ME_EndToUnicode(unicode ? 1200 : CP_ACP, wszText)

-- Ph.




Re: Aric Stewart : usp10: Update diacritical script handling for non OpenType Itemization.

2013-03-14 Thread Phil Krylov
Hello,

On Fri, Mar 15, 2013 at 12:52 AM, Aric Stewart a...@codeweavers.com wrote:
 I am just getting back from a vacation so I will review this and your other 
 patch early next week when I am fully back.

 Thanks for doing work here!

Thanks for replying, wasn't sure you saw my posts. And of course
thanks for your work too.

-- Ph.




Re: Aric Stewart : usp10: Update diacritical script handling for non OpenType Itemization.

2013-03-07 Thread Phil Krylov
Hello Aric,

On Tue, Feb 5, 2013 at 11:25 PM, Alexandre Julliard julli...@winehq.org wrote:
 Module: wine
 Branch: master
 Commit: ef4b7c5948e43d4ceeed98ba4ddbf6c59d36
 URL:
 http://source.winehq.org/git/wine.git/?a=commit;h=ef4b7c5948e43d4ceeed98ba4ddbf6c59d36

 Author: Aric Stewart a...@codeweavers.com
 Date:   Tue Feb  5 08:57:44 2013 -0600

 usp10: Update diacritical script handling for non OpenType Itemization.

(snip)

 +for (j = i-1; j = 0   scripts[j] == first_script  
 pwcInChars[j] != Numeric_space; j--)
 +{
 +WORD original = scripts[j];
 +if (original == Script_Ideograph || original == 
 Script_Kana || original == Script_Yi || original == Script_CJK_Han || 
 original == Script_Bopomofo)
 +{
 +asian = TRUE;
 +break;
 +}
 +if (original != Script_MathAlpha  
 scriptInformation[scripts[j]].props.fComplex)
 +break;
 +scripts[j] = scripts[i];
 +if (original == Script_Punctuation2)
 +break;
 +}
 +if (scriptInformation[scripts[j]].props.fComplex || 
 asian)
 +scripts[i] = scripts[j];

I am not sure about the logic of this, so I can't commit a good patch,
but in the last statement you definitely access scripts[-1] when j
reaches the value of 0. Which may cause a crash here or (in my case)
later.

-- Ph.




Re: richedit: Store richedit version rather than boolean bEmulateVersion10 value

2008-07-04 Thread Phil Krylov
On 03/07/2008, Dylan Smith [EMAIL PROTECTED] wrote:
  On Thu, Jul 3, 2008 at 2:01 PM, Juan Lang [EMAIL PROTECTED] wrote:
 
   Hi Dylan,
  
   -  if (!editor-bEmulateVersion10 || (editor-nEventMask  ENM_UPDATE))
   +  if (!editor-dwEmulatedVersion || (editor-nEventMask  ENM_UPDATE))
  
   This change is incorrect, as dwEmulatedVersion is never set to 0.  I
   believe you mean if (editor-dwEmulatedVersion  0x100 || ...
  
 
  You're right, that was a mistake.  Thanks for catching it.
 
   I have to ask, though:  what bug does this fix?
  
 
  This doesn't fix a bug, but it allows me to add functionality for
  msftedit.dll without changing the way riched20.dll works when loaded
  directly.  Without storing more than a boolean value it will be hard to
  support the multiple versions of richedit controls.
 
   I would like to properly implement tables for richedit controls, which
  greatly differs in how it is implemented between riched20.dll and
  msftedit.dll.  Should I only worry about how it is done in the newer
  richedit controls?  I am worried that this will cause problems considering
  that amy program that loads msftedit.dll assumes that they are getting a
  specific implementation.


IMHO no real applications depend on poverty of table functionality of
 versions 2 and 3. If somebody finds one, we could think about it
 then... To my knowledge, there is just one thing better in table
 support of 2.0 than in 3.0 and IIRC 4.1: better breaking of long
 tables on page boundaries when printing. But I consider it a bug in
 versions 2.0 which we should not replicate (when EM_FORMATRANGE will
 be supported).

 -- Ph.




Re: richedit: Store richedit version rather than boolean bEmulateVersion10 value.

2008-07-01 Thread Phil Krylov
On 29/06/2008, Dylan Smith [EMAIL PROTECTED] wrote:
 On Sun, Jun 29, 2008 at 4:20 AM, Phil Krylov [EMAIL PROTECTED] wrote:
   Of course this looks most sane. But I'm asking if you're going to make
   use of the dwEmulatedVersion other than  0x200? That is, under what
   circumstances we should emulate version 2 or 3 when we have support
   for version 5? It's interesting to me, because it seemed to me that
   the native versions (starting with 2.0) are very compatible to each
   other.
  
   -- Ph.


 I know that versions 2 and 3 are very compatible with, since they register
  the same class and dll name.  Richedit 4.1 however uses msftedit.dll instead,
  which means that programs would need to explicitlydecide which version
  they are using depending on which dll they load and which class they specify.

  Certainly there are differences between richedit 3 and 4.1, but I don't know 
 if
  programs would depend on these differences.

OK I see your point, and after hitting a very interesting blog on
RichEdit, I even agree that the exact version number may be needed.

http://blogs.msdn.com/murrays/archive/2006/10/14/richedit-versions.aspx
http://blogs.msdn.com/murrays/archive/2006/10/20/some-richedit-history.aspx

BTW they say that the DLL name for versions 5.0, 5.1, and 6.0 is
riched20.dll again.

-- Ph.




Re: richedit: Store richedit version rather than boolean bEmulateVersion10 value.

2008-06-29 Thread Phil Krylov
2008/6/27 Dylan Smith [EMAIL PROTECTED]:
 Currently msftedit.dll is implemented by loading riched20.dll and then
 riched20.dll registers the classes that msftedit.dll normally register.
 Native msftedit.dll appears to be a full implementation of the richedit
 controls, rather than a wrapper.

 Here are the options that I can think of:
 1. We could continue to implement msftedit.dll as a wrapper around
 riched20.dll.  This patch would be a step in that direction.

Of course this looks most sane. But I'm asking if you're going to make
use of the dwEmulatedVersion other than  0x200? That is, under what
circumstances we should emulate version 2 or 3 when we have support
for version 5? It's interesting to me, because it seemed to me that
the native versions (starting with 2.0) are very compatible to each
other.

-- Ph.




Re: richedit: Store richedit version rather than boolean bEmulateVersion10 value.

2008-06-27 Thread Phil Krylov
Hi,

2008/6/27 Dylan Smith [EMAIL PROTECTED]:
 riched20.dll is implementing all the versions of richedit controls (1.0, 2.0,
 3.0, and 4.1), so it is better to store the version that is being emulated.
 The bEmulateVersion10 value is replaced with dwEmulatedVersion.

I thought it implements 1.0 emulation for riched32.dll usage and
latest possible version for other usages - just like native. Or are
you planning to add some functionality depending on the actual
emulated version, not on (dwEmulatedVersion  0x200) boolean flag?

-- Ph.




Re: Wine code freeze in seven weeks; volunteers needed to fix 1.0 bugs

2008-03-16 Thread Phil Krylov
Hi,

   That patch is old and crusty and doesn't apply anymore. James should
   have an updated version.

One thing I can add from looking at that patch is that the comments
about the deficiency of MS richedit tables handling are true only for
versions =2.0. Later versions, including msftedit, improved tables
handling with each new version.

-- Ph




Re: Do we need a forum?

2008-02-19 Thread Phil Krylov
Hi,

On 19/02/2008, Dan Kegel [EMAIL PROTECTED] wrote:
 Steven Edwards wrote:
  My thoughts, as well as
  Tom's was that by creating a blessed location, all third parties as
  well as vendors that develop Wine related products could say if you
  want to discuss using a vendor provided Wine product in a
  non-supported manner all are advised to go here and share information

 Yes, of course, it would be nice if there were One True Place to go,
 but the closest we're ever going to get is essentially the status quo,
 where the wine-users mailing list is the place of record for user support,
 the appdb is the place of record for looking for tips for a particular app,
 and all the other areas are secondary.  We can improve slightly
 on this by linking to other popular wine forums as they pop up,
 emphasizing all the while that they are secondary.

I think that any existing place will eventually grow really popular if
it will be called http://forum.winehq.org;.

-- Ph.




Re: wine and msys rxvt.exe

2007-02-26 Thread Phil Krylov

On 26/02/07, Dmitry Timoshkov [EMAIL PROTECTED] wrote:

Wesley Parish [EMAIL PROTECTED] wrote:

 failed to load libX11.dll

Looks like rxvt.exe is linked to an MSys provided X11 libraries
that require a Windows X11 sever to be present and running. That's
a sort of layer on layer and I don't think that there is someone
who wants to make this configuration work.


AFAIR MSys's rxvt.exe uses libW11.dll, which implements Xlib API on
top of Win32 USER/GDI (no extra X server). However, it could be still
difficult (probably because of API name clashes?)
Not sure why the message is about libX11.dll - probably it sees
$DISPLAY and tries to use real X?

-- Ph.




Re: WineD3D: Fix my name

2007-01-11 Thread Phil Krylov

Hi Dmitry,

On 11/01/07, Dmitry Timoshkov [EMAIL PROTECTED] wrote:

 At least one free resource compiler that claims to support UTF-8:
 http://www.jorgon.freeserve.co.uk/#rc

Unfortunately it's not Microsoft's rc.exe, i.e. not something I'm interested
to compare wrc output/compatibility with.


Agreed.


 Also, there are not much editors in
 the Windows world that support UTF-8, since it's a multibyte encoding and in
 general is very cumbersome encoding to work with. Please don't do that.

 At least Notepad on Windows XP does support UTF-8.

If that was supposed to be a joke I didn't buy it.


No it was not a joke. I only tried to say that there is a UTF-8
enabled editor included in standard Windows distribution. If you don't
like Notepad (yes, it's very limited) you can always find another
editor (I use Vim in Windows as well as in Unices). In other words,
your second reason to not switch to UTF-8 does not look like a good
reason to me. But the first one does.

-- Ph.




Re: WineD3D: Fix my name

2007-01-11 Thread Phil Krylov

Hi Dmitry,

On 11/01/07, Dmitry Timoshkov [EMAIL PROTECTED] wrote:

I'd say that since converting resources to UTF-8 makes them not compatible
with any other resource compiler except wrc, IMO that's a bad idea


At least one free resource compiler that claims to support UTF-8:
http://www.jorgon.freeserve.co.uk/#rc


Also, there are not much editors in
the Windows world that support UTF-8, since it's a multibyte encoding and in
general is very cumbersome encoding to work with. Please don't do that.


At least Notepad on Windows XP does support UTF-8.

-- Ph.




Re: CRichEditCtrl: Performance issue

2006-11-17 Thread Phil Krylov

Hello,

On 16/11/06, Renu Rajput [EMAIL PROTECTED] wrote:

I am facing a performance issue in CRichEditCtrl under Wine. My
application reads data from a *.dat file and displays it in the
CRichEdit editor. When I try to open large data files, it takes a lot
of time(around 4-5 minutes) to open the file.

I checked the code and found that, in Wine, the richedit editor
streams-in the data in a block of 4096 bytes. On Linux, the read
request to the file is routed via Wine. For every block of 4096 bytes
that are read, the system makes a back and forth call between the
callback function in the application and Wine code(ME_StreamInFill()
in dlls\riched20\editor.c), which causes the delay.


4096 bytes is the same that MS uses. In fact, we have other problem,
it's the speed of insertion of large text chunks (especially without
any formatting) to the editor storage from the RTF/plaintext reader.
It should be optimized. And also, MS RichEdit, starting from version
3, displays the first page of large loaded text very quick, and you
can work with it and see how vertical scrollbar thumb gets smaller and
smaller and smaller while the text is read into editor storage in the
background. We should add that, too.

The size of the buffer does not really matter here...


If anyone stumbled upon the similar issue, what should be the solution to this.


Optimize internal text storage (many small mallocs and reallocs ;( ).
Optimize text insertion code. Do formatting/layout tasks in the
background.

--  Ph.




Re: CRichEditCtrl: Performance issue

2006-11-17 Thread Phil Krylov

Hello,

On 16/11/06, Renu Rajput [EMAIL PROTECTED] wrote:

I am facing a performance issue in CRichEditCtrl under Wine. My
application reads data from a *.dat file and displays it in the
CRichEdit editor. When I try to open large data files, it takes a lot
of time(around 4-5 minutes) to open the file.

I checked the code and found that, in Wine, the richedit editor
streams-in the data in a block of 4096 bytes. On Linux, the read
request to the file is routed via Wine. For every block of 4096 bytes
that are read, the system makes a back and forth call between the
callback function in the application and Wine code(ME_StreamInFill()
in dlls\riched20\editor.c), which causes the delay.


4096 bytes is the same that MS uses. In fact, we have other problem,
it's the speed of insertion of large text chunks (especially without
any formatting) to the editor storage from the RTF/plaintext reader.
It should be optimized. And also, MS RichEdit, starting from version
3, displays the first page of large loaded text very quick, and you
can work with it and see how vertical scrollbar thumb gets smaller and
smaller and smaller while the text is read into editor storage in the
background. We should add that, too.

The size of the buffer does not really matter here...


If anyone stumbled upon the similar issue, what should be the solution to this.


Optimize internal text storage (many small mallocs and reallocs ;( ).
Optimize text insertion code. Do formatting/layout tasks in the
background.

--  Ph.




explorer: Build on Darwin versions prior to 8.0

2006-11-05 Thread Phil Krylov

Hello,

In Darwin versions prior to 8.0, the DiskArbitration framework was a
private framework, that is, the headers were not included in SDK and
the API was changing in every version. This patch fixes the build in
these OS versions.

-- Ph.


diskarb.patch
Description: Binary data



Re: explorer: Build on Darwin versions prior to 8.0

2006-11-05 Thread Phil Krylov

Sorry guys, wrong list ;-)

-- Ph.




Re: msi/iTunes and questions

2006-09-20 Thread Phil Krylov

Hi,

On 20/09/06, Paul Vriens [EMAIL PROTECTED] wrote:

The single-quotes should be needed as the SQL statement in the trace showed:

trace:msi:MSI_DatabaseOpenViewW LSELECT `Message` FROM `Error` WHERE
`Error` = The installlation of QuickTime did not complete successfully.
iTunes requires QuickTime. 0x6669a498

and a bit further:

err:msidb:WHERE_VerifyCondition Couldn't find column LThe

This is just one of many issues with this installation.

Does the fix look OK?


Looks good but it will probably fail when %s contains an apostrophe.

-- Ph.




Re: segfaults with last selection repaint patch in riched20

2006-08-11 Thread Phil Krylov

Hi Krzysztof,

On 11/08/06, Krzysztof Foltman [EMAIL PROTECTED] wrote:

What are the circumstances? Is it after some delete/insert operation, or
just after document load?


Well I have not traced the whole sequence of calls to richedit, but
from the display I can suppose the following. I am doing a search
operation on some files. When the app finds a match, it fills the
richedit with some text including the match, and changes the match's
color (supposedly selects the match and calls setcharformat). It works
OK. After that I push Find next button. After finding another match
the app updates richedit text with the new context of the match and
(not changed the match's color yet) segfaults.


I'd do an assert(pLastSelStartPara-member.para.nCharOfs =
pLastSelEndPara-member.para.nCharOfs) or something. That could possibly
shed some light on the issue.

When it crashes and falls out to GDB, nCharOfs of the first para is
10, and nCharOfs of the last para is 3.


This git thing is a piece of unreliable unintuitive crap.

For sure CVS was simpler, but GIT also has some advantages... I
haven't had any problems requiring to git-clone yet, but I still have
to hold the GitWine wiki page open in my browser ;)

-- Ph.




segfaults with last selection repaint patch in riched20

2006-08-10 Thread Phil Krylov

Hi Krzysztof,

I was getting a segfault in ME_MarkForPainting() after that patch (BTW
great work), and started looking through the code. One thing I found
was obviously a typo which can be easily fixed (BTW I don't know for
sure but I'd also update pLastSelStartPara and pLastSelEndPara here):

--- a/dlls/riched20/paint.c
+++ b/dlls/riched20/paint.c
@@ -529,7 +529,7 @@ ME_InvalidateSelection(ME_TextEditor *ed
  /* last selection markers aren't always updated, which means
  they can point past the end of the document */
  if (editor-nLastSelStart  len)
-editor-nLastSelEnd = len;
+editor-nLastSelStart = len;
  if (editor-nLastSelEnd  len)
editor-nLastSelEnd = len;

But it did not resolve my problem. I did not have time to find the
real reason for the segfault, but here is a quick hack which made the
segfault go away and can probably help you in finding the real reason.
Sorry, but I can't officially provide you with the failing application
(IBM Translation Manager 6.0.9) which is proprietary and only for IBM
internal usage.

--- a/dlls/riched20/para.c
+++ b/dlls/riched20/para.c
@@ -94,7 +94,7 @@ void ME_MarkForWrapping(ME_TextEditor *e

void ME_MarkForPainting(ME_TextEditor *editor, ME_DisplayItem *first,
ME_DisplayItem *last)
{
-  while(first != last)
+  while(first  first != last)
  {
first-member.para.nFlags |= MEPF_REPAINT;
first = first-member.para.next_para;

The backtrace of the segfault was:
1 0x7d948cc0 ME_MarkForPainting+0x10(editor=0x11700f8,
first=0x11741d8, last=0x1173ac8)
[/home/phil/build/wine-git/dlls/riched20/para.c:99] in riched20
(0x7d948cc0)
 2 0x7d948816 ME_InvalidateSelection+0x186(editor=0x11700f8)
[/home/phil/build/wine-git/dlls/riched20/paint.c:542] in riched20
(0x7d948816)
 3 0x7d9442e9 RichEditANSIWndProc+0x22d9(hWnd=0x100b4, msg=0xb1,
wParam=0xe, lParam=0x117)
[/home/phil/build/wine-git/dlls/riched20/editor.c:1579] in riched20
(0x7d9442e9)
 4 0x7d9466aa RichEdit10ANSIWndProc+0x3a(hWnd=0x100b4, msg=0xb1,
wParam=0xe, lParam=0x117)
[/home/phil/build/wine-git/dlls/riched20/editor.c:2598] in riched20
(0x7d9466aa)
...

-- Ph.




Re: riched20: new selection invalidation logic

2006-08-08 Thread Phil Krylov

Have you even tried your code on purposely broken rtf? How does it handle it?


Broken rtf can only possibly break the RTF reader code, although it
has not been happening for quite a long time. And the asserts are
there to report Wine riched20 developer's errors, not the app
developers'.

-- Ph.




Re: riched20: modify ME_CharFromPoint to work properly with password controls

2006-08-08 Thread Phil Krylov

Hi Matt,

On 07/08/06, Matt Finnicum [EMAIL PROTECTED] wrote:

This patch modifies ME_CharFromPoint to work properly with password
controls (the patch i sent in / got committed a couple days ago).


Should not the temp string be freed afterwards?

-- Ph.




Re: [Bug 5769] Regression of wine 0.9.6 in riched20 causes program to fail

2006-07-28 Thread Phil Krylov

I was using fresh GIT from 2006-07-26.




Re: RESEND: enhmetafile: Read and write support for little-endian EMFs on big-endian machines

2006-07-05 Thread Phil Krylov

Hi,

Doctor, why everybody ignores me? - Next, please.

-- Ph.

On 03/07/06, Phil Krylov [EMAIL PROTECTED] wrote:

Hi,

Is anything wrong with that patch?


On 25/06/06, Phil Krylov [EMAIL PROTECTED] wrote:
 Hi,

 This version has no ugly macros and adds read support. Diffed against current
 CVS.

 ChangeLog:

 enhmetafile: Read and write support for little-endian EMFs on big-endian
 machines.

-- Ph.






Re: forgotten patch

2006-06-22 Thread Phil Krylov
On 22/06/06, Krzysztof Foltman [EMAIL PROTECTED] wrote:
This patch apparently has been lost, and there's at least one bug inBugzilla that the patch seems to fix (bug# 4452, checked here).
http://www.winehq.org/pipermail/wine-patches/2006-January/023875.htmlI don't see anything wrong with the patch, did Phil just send it in awrong moment, or is there anything to fix?AlexandresaidthatitshouldcheckforotherinvalidhWnd values as well. I had no time to improve it since that day ;((
-- Ph.



Re: enhmetafile: Create little-endian EMF files on big-endian machines (fixed)

2006-04-19 Thread Phil Krylov
Hi,

On Tue, 11 Apr 2006 20:03:22 +0400
Phil Krylov [EMAIL PROTECTED] wrote:

 This patch fixes the generation of EMF files (which are little-endian by 
 nature)
 on big-endian machines. It is by no means complete - some record types are 
 still
 unsupported, and reading of little-endian EMFs on big-endian machines still 
 does
 not work - but it works for my app and can be used as a base for future
 improvements.

Anything wrong with this patch? Should I try to improve it in the direction of
supporting more metafile record types and supporting reading little-endian EMFs
from disk? Or change everything at all?

The subject was recently discussed in this thread:
http://www.winehq.org/pipermail/wine-devel/2006-April/046606.html

-- Ph.




Re: enhmetafile: Create little-endian EMF files on big-endian machines (fixed)

2006-04-19 Thread Phil Krylov
On Wed, 19 Apr 2006 12:52:35 +0200
Alexandre Julliard [EMAIL PROTECTED] wrote:

 Phil Krylov [EMAIL PROTECTED] writes:
 
  Anything wrong with this patch? Should I try to improve it in the direction 
  of
  supporting more metafile record types and supporting reading little-endian 
  EMFs
  from disk? Or change everything at all?
 
 I think the direction is OK, but the macros are fairly ugly, and
 non-portable. I'd suggest doing the conversion with inline functions
 instead.

Posted an updated version to wine-patches.

-- Ph.





Re: x11drv: question about byte-swapping for DIBs

2006-04-19 Thread Phil Krylov
On Wed, 19 Apr 2006 16:50:47 -0400
Eric Frias [EMAIL PROTECTED] wrote:

 I'm trying to debug a problem in which 24-bit .bmps don't display 
 correctly from a winelib application on a big-endian sparc host when 
 displaying on a little-endian intel PC.  In this case, the image is 
 garbled, with most of the colors being wrong and a pattern of vertical 
 stripes over the image.  The code passes through 
 convert_888_to_0888_reverse_dst_byteswap which is what mangles the image 
 data.

Just my 2 cents: the same bug appears in a winelib app on a big-endian PowerPC
host when displaying on the same big-endian PowerPC host, so it's probably
independent of display host.

-- Ph.




Re: x11drv: question about byte-swapping for DIBs

2006-04-19 Thread Phil Krylov
On Thu, 20 Apr 2006 00:10:42 +0200
Willie Sippel [EMAIL PROTECTED] wrote:

 Am Mittwoch, 19. April 2006 22:50 schrieb Eric Frias:
  I'm trying to debug a problem in which 24-bit .bmps don't display
  correctly from a winelib application on a big-endian sparc host when
  displaying on a little-endian intel PC.  In this case, the image is
  garbled, with most of the colors being wrong and a pattern of vertical
  stripes over the image.  The code passes through
  convert_888_to_0888_reverse_dst_byteswap which is what mangles the image
  data.
 
 Messed colors and vertical stripes? Similar to 
 http://www.froq.net/mirage/mirage1.png ?

No, I get rather like this:

http://newstar.rinet.ru/~phil/Screenshot-StarLing-for-Macintosh.png

(the yellow-greenish square buttons should be light grey and clear)

-- Ph.




Re: [gdi] bug reading/writing metafiles on sparc

2006-04-13 Thread Phil Krylov
On Thu, 13 Apr 2006 11:58:02 -0400
Eric Frias [EMAIL PROTECTED] wrote:

 Due to little-endian/big-endian differences, winelib on Sparc can't read 
 windows metafiles generated on a PC (or on Wine on x86), and conversely 
 PCs can't read metafiles created on a Sparc.  It looks like there are a 
 few ways this could be fixed, and I wanted to make sure we don't go 
 about it the wrong way (and that nobody else is working on it).
 
 I think the right thing to do is make the on-disk and in-memory formats 
 always be little-endian.  We would only convert the data to big-endian 
 format when it is generated or used.  GetMetaFileBitsEx and 
 SetMetaFileBitsEx would return  take the raw data in little-endian format.

I have submitted a patch that fixes creation of on-disk _enhanced_ metafiles
a few days ago:

http://article.gmane.org/gmane.comp.emulators.wine.patches/23393

It byteswaps EMF records just for writing to disk. Adding
byteswapping for reading from disk seems very easy - just feed the file
content to the same byteswapper functions. I think it is a bit more clean
than your approach.

-- Ph.




Re: [gdi] bug reading/writing metafiles on sparc

2006-04-13 Thread Phil Krylov
On Thu, 13 Apr 2006 22:39:57 +0400
Phil Krylov [EMAIL PROTECTED] wrote:

 It byteswaps EMF records just for writing to disk. Adding
 byteswapping for reading from disk seems very easy - just feed the file
 content to the same byteswapper functions. I think it is a bit more clean
should be: to the same byteswapper function.

 than your approach.

-- Ph.




Re: [gdi] bug reading/writing metafiles on sparc

2006-04-13 Thread Phil Krylov
On Thu, 13 Apr 2006 16:39:02 -0400
Eric Frias [EMAIL PROTECTED] wrote:

 Phil Krylov wrote:
 
 I have submitted a patch that fixes creation of on-disk _enhanced_ metafiles
 a few days ago:
 
 http://article.gmane.org/gmane.comp.emulators.wine.patches/23393
   
 
 Thanks for the pointer, I hadn't seen that patch. 
 
 It byteswaps EMF records just for writing to disk. Adding
 byteswapping for reading from disk seems very easy - just feed the file
 content to the same byteswapper functions. I think it is a bit more clean
 than your approach.
 
 I like how yours works -- one function call converts both directions.  
 My only hesitation was that all of the operations -- read, copy, get 
 bits  set bits -- change from simple writes of a block of memory to 
 looping through the records one-by-one to convert them.  That's not a 
 bad price to pay for cleaner code...

We have to do this conversion one place or another, and I supposed that
reading/writing metafile from disk is used less frequently than other
metafile operations (mostly record addition and playback).

 Here's a question that I guess is worth asking: what kind of data do you 
 expect to get when you call GetMetaFileBitsEx()?  Do you get bits in the 
 in-memory format, where METARECORD structures have values in the native 
 format?  Or do you get data in the on-disk format?  My first reaction 
 was that you'd want the on-disk (platform-independent) format, because 
 you would probably be writing the data to a file or to the clipboard, 
 and you'd want that to be as platform-independent as the .wmf files 
 are.   But I was looking over the API and there are also functions like 
 EnumMetaFile() and PlayMetaFileRecord() that give or take one 
 METARECORD, and that suggests that there are programs out there that try 
 to make sense of the data in the individual records and that you'd 
 expect to see native byte order used.
 
 Like you, my immediate problem is just getting wine to write out 
 metafiles that the rest of the world can read.  But as soon as I change 
 the file writing, I feel like I should change the reading function to be 
 consistent, and then it starts to get a bit confusing.

Yes it really does...

However, I don't think there are a lot of programs using these
APIs... I mean, let's implement it one or another way and wait till some
such programs break (when ported to big-endian machines;) and see how exactly
they will break and fix it then.

Also, when we're dealing with WineLib, we can just document the
endianness-behaviour of these functions and developers can do byteswapping
in their apps where needed or use other APIs (e.g. CopyEnhMetaFile instead
of GetEnhMetaFileBits followed by a disk write).

-- Ph.




Re: README: Updated to not point users at wineinstall and to mention fontforge

2006-04-10 Thread Phil Krylov
On Mon, 10 Apr 2006 08:18:51 +0200
Kai Blin [EMAIL PROTECTED] wrote:

 Also added fontforge to the build requirements list, with a note to Gentoo 
 users to update their version of fontforge, as the version currently used in 
 Gentoo doesn't work.

Too late: today's Gentoo Portage has fontforge-20060406 (although as a ~x86
unstable package).

-- Ph.




Re: README: Updated to not point users at wineinstall and to mention fontforge

2006-04-10 Thread Phil Krylov
On Mon, 10 Apr 2006 10:05:33 +0200
Kai Blin [EMAIL PROTECTED] wrote:

 * Phil Krylov [EMAIL PROTECTED] [10/04/06, 11:52:01]:
  On Mon, 10 Apr 2006 08:18:51 +0200
  Kai Blin [EMAIL PROTECTED] wrote:
  
   Also added fontforge to the build requirements list, with a note to 
   Gentoo 
   users to update their version of fontforge, as the version currently used 
   in 
   Gentoo doesn't work.
  
  Too late: today's Gentoo Portage has fontforge-20060406 (although as a ~x86
  unstable package).
  
 That's what my patch mentions.
 
 +  In order to create your fonts, you will need a recent version of
 fontforge.
 +  fontforge 20050803 works. NOTE TO GENTOO USERS: fontforge 20050624
 does not
 +  work. Use fontforge 20060406 from the ~ARCH repository.

OK sorry, didn't read the patch...

-- Ph.




Re: README: Updated to not point users at wineinstall and to mention fontforge

2006-04-10 Thread Phil Krylov
On Mon, 10 Apr 2006 04:43:59 -0400
Segin [EMAIL PROTECTED] wrote:

 Add these lines for those people that ask us how to use ~ARCH fontforge 
 instead of RTFMing:
 
 To enable ~ARCH fontforge without setting your whole system ~ARCH, do 
 this (as root):
 
 echo =media-gfx/fontforge-20060406  /etc/portage/package.keywords

Is this really preferable to the following?

echo media-gfx/fontforge ~x86  /etc/portage/package.keywords

-- Ph.




Re: richedit20: Implement EM_FORMATRANGE

2006-04-04 Thread Phil Krylov
On Tue, 4 Apr 2006 11:46:18 +1000
Troy Rollo [EMAIL PROTECTED] wrote:

 + * *** Notes on tables ***
 + *
 + * The CHARRANGE structure passed in the FORMATRANGE structure is not
 + * sufficient to deal with tables, where we would need information on the
 + * start position for text in each column of the table.
 + *
 + * Testing on Windows NT shows that the Microsoft Rich Edit control gives
 + * pathological results when there are tables in the document - both in edit
 + * mode and for EM_FORMATRANGE. The Microsoft Rich Edit control uses the
 + * table solely as a hint to where the paragraph should start. The table
 + * does not expand to fit its text. Long paragraphs wrap when you hit the
 + * right page margin and continue at the left page margin.

This is only true for RichEdit 2.0 - later versions have better table support,
while our current implementation is approximately at 2.0 level.

-- Ph.




Re: Debugging X errors?

2006-03-28 Thread Phil Krylov
On Tue, 28 Mar 2006 15:25:26 -0500
Segin [EMAIL PROTECTED] wrote:
(Try this: select some text in Wine, and middle click in a 
 Xterm, nothing happens! Go back to the Windows app, tell it to copy the 
 text, and try to paste it into the xterm, nothing again! I think it's a 
 bug IMHO)

You need to set the Wine registry entry X11 Driver/UsePrimarySelection to 'Y'.
I submitted a patch for Winecfg to do it, but it wasn't accepted and it was a
long time ago...

-- Ph.




Re: riched20: add EM_EXSETSEL conformance tests and fixes bug 4462

2006-03-16 Thread Phil Krylov
On Thu, 16 Mar 2006 22:31:40 -0800 (PST)
Brian Chang [EMAIL PROTECTED] wrote:

 +/* get the current selection and text length */
 +RichEditANSIWndProc(hWnd, EM_GETSEL, (WPARAM) start, (LPARAM) end);
 +textlen = RichEditANSIWndProc(hWnd, WM_GETTEXTLENGTH, 0, 0);

This looks strange... Why not use ME_GetSelection() and ME_GetTextLength()?

-- Ph.




Re: riched20: Implements FR_WHOLEWORD for EM_FINDTEXT

2006-03-06 Thread Phil Krylov
On Sun, 05 Mar 2006 14:20:47 -0800
Lei Zhang [EMAIL PROTECTED] wrote:

 +if ((flags  FR_WHOLEWORD)  iswalnum(wLastChar))

Probably a test checking if native richedit does not use user's word breaking
procedure (set via EM_SETWORDBREAKPROC) for FR_WHOLEWORD searches would be
cool.

-- Ph.




Re: riched20: Implements FR_MATCHCASE for EM_FINDTEXT

2006-02-24 Thread Phil Krylov
On Tue, 21 Feb 2006 14:08:38 -0800
Lei Zhang [EMAIL PROTECTED] wrote:

 On Tuesday 21 February 2006 12:42 pm, you wrote:
  On Tue, 21 Feb 2006 10:19:01 -0800
 
  Lei Zhang [EMAIL PROTECTED] wrote:
   -  while (pCurItem 
   pCurItem-member.run.strText-szData[nCurEnd - nMatched - 1] ==
   text[nLen - nMatched - 1]) +  while
   (ME_CharCompare(pCurItem-member.run.strText-szData[nCurEnd -
   nMatched - 1], text[nLen - nMatched - 1], (flags  FR_MATCHCASE)))
 
  You've dropped pCurItem NULL check here. Probably just a typo...
 
  -- Ph.
 
 Hi Phil,
 
 Ya, it's a typo. Thanks for catching it.

Could you kindly fix it then? As this patch was accepted unfixed.

-- Ph.




Re: riched20: Implements FR_MATCHCASE for EM_FINDTEXT

2006-02-24 Thread Phil Krylov
On Fri, 24 Feb 2006 12:24:45 +0100
Alexandre Julliard [EMAIL PROTECTED] wrote:

 Phil Krylov [EMAIL PROTECTED] writes:
 
  On Tue, 21 Feb 2006 14:08:38 -0800
  Lei Zhang [EMAIL PROTECTED] wrote:
  
  Hi Phil,
  
  Ya, it's a typo. Thanks for catching it.
 
  Could you kindly fix it then? As this patch was accepted unfixed.
 
 I accepted the patch because I don't see how pCurItem could be NULL in
 that loop (or rather, it could be NULL, but in that case we'll crash
 before coming back to the loop test). Am I missing something?

Yes, you're right. It can't be NULL because of an earlier test:

para-member.para.nCharOfs + item-member.run.nCharOfs + nEnd - nLen = nMin

But this is very inevident.

-- Ph.




Re: riched20: Implements FR_MATCHCASE for EM_FINDTEXT

2006-02-24 Thread Phil Krylov
On Fri, 24 Feb 2006 10:48:47 -0800
Lei Zhang [EMAIL PROTECTED] wrote:

 On Friday 24 February 2006 04:39 am, Phil Krylov wrote:
  On Fri, 24 Feb 2006 12:24:45 +0100
 
  Alexandre Julliard [EMAIL PROTECTED] wrote:
   Phil Krylov [EMAIL PROTECTED] writes:
On Tue, 21 Feb 2006 14:08:38 -0800
   
Lei Zhang [EMAIL PROTECTED] wrote:
Hi Phil,
   
Ya, it's a typo. Thanks for catching it.
   
Could you kindly fix it then? As this patch was accepted unfixed.
  
   I accepted the patch because I don't see how pCurItem could be NULL
   in that loop (or rather, it could be NULL, but in that case we'll
   crash before coming back to the loop test). Am I missing something?
 
  Yes, you're right. It can't be NULL because of an earlier test:
 
  para-member.para.nCharOfs + item-member.run.nCharOfs + nEnd - nLen
  = nMin
 
  But this is very inevident.
 
  -- Ph.
 
 Hi Phil, Alex
 
 Yes, it can become NULL, here's how:
 
 Inside while (ME_CharCompare(pCurItem- )
 the last if() block assigns a new value to pCurItem, which may be NULL.

It may but it won't... ME_FindItemBack(pCurItem) will return NULL only if
pCurItem is the first text run in the document. But the if() condition
(nCurEnd - nMatched == 0) is TRUE only if the search string is longer
than nCurEnd. This does not happen for the first document run because of
the condition of the exterior loop which checks if we have enough
characters for comparison.

--Ph.




Re: riched20: Implements FR_MATCHCASE for EM_FINDTEXT

2006-02-21 Thread Phil Krylov
On Tue, 21 Feb 2006 10:19:01 -0800
Lei Zhang [EMAIL PROTECTED] wrote:

 -  while (pCurItem  pCurItem-member.run.strText-szData[nCurEnd - 
 nMatched - 1] == text[nLen - nMatched - 1])
 +  while (ME_CharCompare(pCurItem-member.run.strText-szData[nCurEnd - 
 nMatched - 1], text[nLen - nMatched - 1], (flags  FR_MATCHCASE)))

You've dropped pCurItem NULL check here. Probably just a typo...

-- Ph.





Re: msftedit.dll

2006-02-03 Thread Phil Krylov
On Sat, 4 Feb 2006 00:07:24 +0100
Stefan Leichter [EMAIL PROTECTED] wrote:

 +2 stub IID_IRichEditOle
 +3 stub IID_IRichEditOleCallback
 +4 stub CreateTextServices
 +5 stub IID_ITextServices
 +6 stub IID_ITextHost
 +7 stub IID_ITextHost2
 +8 stub REExtendedRegisterClass
 +9 stub RichEditANSIWndProc
 +10 stub RichEdit10ANSIWndProc
 +11 stub SetCustomTextOutHandlerEx
 +12 stub DllGetVersion
 +13 stub RichEditWndProc
 +14 stub RichListBoxWndProc
 +15 stub RichComboBoxWndProc

Could this be done another way? E.g., symlink msftedit.dll.so to
riched20.dll.so? Or copy riched20.dll.so as msftedit.dll.so, which would
resemble MS approach more.

-- Ph.




Re: Text Object Model and Richedit?

2006-01-30 Thread Phil Krylov
On Mon, 30 Jan 2006 08:31:59 -0800
Dan Kegel [EMAIL PROTECTED] wrote:

 I stumbled across the doc for the Text Object Model,
 which looks like the COM interface to Richedit and
 anything like it:
 
 http://windowssdk.msdn.microsoft.com/library/en-us/shellcc/platform/commctls/richedit/textobjectmodel.asp
 
 Is anyone poking around at adding this interface
 to our Richedit?

Not me, at least in the nearest future... It has rather poor documentation
on MSDN, and most apps don't use it (probably due to the same poor
documentation).

-- Ph.




Re: [patch] updated riched20 conformance test

2006-01-29 Thread Phil Krylov
On Tue, 24 Jan 2006 12:23:09 -0800
Thomas Kho [EMAIL PROTECTED] wrote:


 Attached is a small patch to add a riched20 conformance test.

I think it's a good test, but I'd add flags %08x,...flags to the failing
test messages, because all these failures are due to unimplemented flags.
And probably the message names should be printed as well...

-- Ph.




Re: Mac OS X/Intel port

2006-01-22 Thread Phil Krylov
On Sun, 22 Jan 2006 01:12:09 -0600
Chris Campbell [EMAIL PROTECTED] wrote:

I just recently downloaded the CVS of WINE and tried to build it  
 on an Apple Intel machine.  I ran into some problems during the build  
 and fixed them.  I then got to the server and the build quit on  
 context_i386.c.  There is nothing in that file that handles darwin/ 
 Mac OS X.  It looks like the ptrace functionality (GETREGS, etc) that  
 is used on Linux and FreeBSD is not present in the xnu kernel...
I would like to get WINE working on x86 OS X.  Can anyone tell me  
 who is working on this?  I would like to help with this effort.

Please also have a look at http://darwine.opendarwin.org and subscribe to
the darwine-devel mailing list there.

-- Ph.




Re: translation of wine/programs/wcmd/Ru.rc

2006-01-16 Thread Phil Krylov
On Mon, 16 Jan 2006 18:00:04 +0300
Roman [EMAIL PROTECTED] wrote:

 I've translaten most of the messages

There are some typos:

+из другого bat-файла. При по завершении вывываемого командного файла,
управление возвращается\n\

should be:

+из другого bat-файла. По завершении вызываемого командного файла
управление возвращается\n\

And this:

+ECHO ON все последующие команды будут выведены на экран\n\

Should be:

+ECHO ON включает вывод всех последующих команд на экран\n\

And this:

+ECHO OFF отменяет режим ECHO ON (по-умолчанию ECHO is OFF).\n\

Should be:

+ECHO OFF отменяет режим ECHO ON (по умолчанию используется режим ECHO
OFF).\n\

And this is not translated at all:

+The ECHO OFF command can be prevented from displaying by\n\
 preceding it with an @ sign.\n

And this:

+Команда FOR дисползуется для выполнения команд для нескольких файлов.\n\

Should be:

+Команда FOR используется для выполнения команд для нескольких файлов.\n\

And this:

+Синтаксис: FOR %переменная IN (set) DO команда\n\

Should be:

+Синтаксис: FOR %переменная IN (набор) DO команда\n\

And this is partially untranslated:

+но не может содержать пробелов (this is different from other operating\n\
+systems). 

And lots more. Please check your patch for typos and resend.

-- Ph.




Re: RESEND: winecfg: Added Use PRIMARY selection option

2006-01-10 Thread Phil Krylov
On Tue, 10 Jan 2006 20:23:20 +0100
Alexandre Julliard [EMAIL PROTECTED] wrote:

 Phil Krylov [EMAIL PROTECTED] writes:
 
  ChangeLog:
 
  Added support for Use PRIMARY selection clipboard option.
 
 I don't think we want a new property sheet page for that, it should go
 with the other X11 options.

Initially I did it that way, but: 

1) The X11 option page is named Graphics, and clipboard is not
graphics ;)

2) There's no free space on the Graphics page. Should I make it (and the
whole winecfg window) larger?

-- Ph.




Re: user: Fix dropdown combo creation when there is no space for an edit control

2006-01-09 Thread Phil Krylov
Hi,

Sorry, I meant:

ChangeLog:

Fixed dropdown combo creation when there is NO space for an edit
control.
 
-- Ph.





Re: winecfg: Added Use PRIMARY selection option

2006-01-01 Thread Phil Krylov
Hi,

On Fri, 30 Dec 2005 12:43:56 +0100
Stefan Dösinger [EMAIL PROTECTED] wrote:

  Added support for Use PRIMARY selection clipboard option.
 One question: Why not make this the default? This would be the unix way to 
 use 
 the clipboard.

It would be OK for me, but probably there was some reason why it has not
been made the default. Does someone know it?

 Or use the primary selection on a middle mouse button click, 
 and the other clipboard value on paste / CTRL-V? This is the behavior I'm 
 used to from native apps. Is this possible?

But Windows apps may be using the middle button for other actions, and
besides that we'd need to add a Wine-specific window message which would be
posted on a middle-click instead of WM_PASTE, and some other
infrastructure. I don't think it would go well with the design concepts of
Wine.

-- Ph.




Re: build errors

2005-09-27 Thread Phil Krylov
On Mon, 26 Sep 2005 22:53:18 -0300
Marcelo Duarte [EMAIL PROTECTED] wrote:

 To fix the problem for me, instead of clean, I__d do the folowing command 
 in wine tree:
 rm */*/*.spec.*

Thanks, it works. But isn't make clean supposed to do this job?

-- Ph.




CopyEnhMetaFile() on big endian arch

2005-09-27 Thread Phil Krylov
Hi,

My problem is:

CopyEnhMetaFile() creates a .wmf file from a HENHMETAFILE by simple dumping
of data to the file. On big-endian platforms (in my case - PowerPC) the
resulting file is not a valid WMF. To make it valid, we need to convert all
binary data to little-endian.

I'd like to make it work. Can someone suggest where the byte order should
be reversed? Should it be done in the HENHMETAFILE stored in memory, or
should rather CopyEnhMetaFile parse the whole metafile and byte-reverse all
data that should be dumped to disk?

In any case, it seems to be a huge task. If someone is also interested,
probably we should cooperate with each other?

-- Ph.




build errors

2005-09-26 Thread Phil Krylov
Hi,

I can't build current CVS version of Wine:

../../tools/winegcc/winegcc -B../../tools/winebuild -shared ./kernel32.spec
comm.drv.spec.o krnl386.exe.spec.o stress.spec.o system.drv.spec.o
toolhelp.spec.o win87em.spec.o windebug.spec.o atom16.o error16.o
kernel16.o registry16.o toolhelp16.o win87em.o  actctx.o atom.o change.o
comm.o computername.o console.o cpu.o debugger.o dosmem.o editline.o
environ.o except.o fiber.o file.o file16.o format_msg.o global16.o heap.o
instr.o kernel_main.o lcformat.o local16.o locale.o lzexpand.o module.o
ne_module.o ne_segment.o oldconfig.o path.o powermgnt.o process.o profile.o
pthread.o relay16.o resource.o resource16.o selector.o snoop16.o stress.o
string.o sync.o syslevel.o system.o tape.o task.o thread.o thunk.o time.o
toolhelp.o utthunk.o version.o virtual.o volume.o vxd.o windebug.o
wowthunk.o relay16asm.o kernel32.dll.dbg.o kernel.res
-Wl,--image-base,0x7b80 -o kernel32.dll.so -L../../dlls
-L../../dlls/ntdll -lntdll  -L../../libs/wine -lwine -L../../libs/unicode
-lwine_unicode  -L../../libs/port -lwine_port
comm.drv.spec.o(.data.rel.ro+0x1f6): In function
`__wine_stub_GETDCB': /home/phil/build/wine/dlls/kernel/comm.drv.spec.c:38:
undefined reference to `__wine_call_from_16_long'
stress.spec.o(.data.rel.ro+0x1d0): In function
`__wine_spec_stress_dll_fini': 
/home/phil/build/wine/dlls/kernel/stress.spec.c:297:
undefined reference to `__wine_call_from_16_long'
stress.spec.o(.data.rel.ro+0x1e8):/home/phil/build/wine/dlls/kernel/stress.spec.c:297:
undefined reference to `__wine_call_from_16_long'
stress.spec.o(.data.rel.ro+0x200):/home/phil/build/wine/dlls/kernel/stress.spec.c:297:
undefined reference to `__wine_call_from_16_long'
stress.spec.o(.data.rel.ro+0x218):/home/phil/build/wine/dlls/kernel/stress.spec.c:297:
undefined reference to `__wine_call_from_16_long'
stress.spec.o(.data.rel.ro+0x230):/home/phil/build/wine/dlls/kernel/stress.spec.c:297:
more undefined references to `__wine_call_from_16_long' follow
system.drv.spec.o(.data.rel.ro+0x1d0): In function
`__wine_spec_system_drv_fini': 
/home/phil/build/wine/dlls/kernel/system.drv.spec.c:303:
undefined reference to `__wine_call_from_16_word'
system.drv.spec.o(.data.rel.ro+0x1e8):/home/phil/build/wine/dlls/kernel/system.drv.spec.c:303:
undefined reference to `__wine_call_from_16_word'
system.drv.spec.o(.data.rel.ro+0x200):/home/phil/build/wine/dlls/kernel/system.drv.spec.c:303:
undefined reference to `__wine_call_from_16_word'


Am I the only one? Can you suggest something?

-- Ph.




Re: listview: infoPtr might be invalid after WM_NOTIFY

2005-09-21 Thread Phil Krylov
On Tue, 20 Sep 2005 16:20:50 -0500
Robert Shearman [EMAIL PROTECTED] wrote:

 Since this was a behaviour in our file open dialog, did we even verify 
 that this was a listview bug or is it that destroying the listview in 
 the middle of a notification is something that you shouldn't do?

The native file dialog acts the same way.

-- Ph.




Re: Need help debugging a memory corruption bug in shfldr_unixfs.c

2005-09-12 Thread Phil Krylov
On Fri, 9 Sep 2005 15:09:24 -0400
Dimi Paun [EMAIL PROTECTED] wrote:

 From: Phil Krylov [EMAIL PROTECTED]
  OK, should we then make a patch which adds an IsWindow() check after every
  notification in every control? This one fixes a really annoying bug, while
  the other places are not proved to crash.
 
 Well, if it's a entire class of bugs, we should fix them all.

I think that we should check if it's a class of bugs or a single bug first.

 I guess we need a bit of experimentation on windows to see
 if we need to protect all notifications or only a few ones.

 I guess we can protect all of them, in which case we have
 to look to see how we can do it centrally, in the notification
 function itself.

I don't see a way to do it clean enough.

So, here's a new version of the patch (enhanced comment, WARN changed to a
TRACE).


ChangeLog:

Protect against wrong memory access if a listview is destroyed during
processing of its NM_DBLCLK notification (a.k.a. file dialog GPF).

-- Ph.Index: dlls/comctl32/listview.c
===
RCS file: /home/wine/wine/dlls/comctl32/listview.c,v
retrieving revision 1.429
diff -p -u -r1.429 listview.c
--- dlls/comctl32/listview.c	30 Aug 2005 10:07:17 -	1.429
+++ dlls/comctl32/listview.c	12 Sep 2005 22:10:51 -
@@ -8083,6 +8083,7 @@ static LRESULT LISTVIEW_KillFocus(LISTVI
 static LRESULT LISTVIEW_LButtonDblClk(LISTVIEW_INFO *infoPtr, WORD wKey, INT x, INT y)
 {
 LVHITTESTINFO htInfo;
+HWND hwnd = infoPtr-hwndSelf;
 
 TRACE((key=%hu, X=%hu, Y=%hu)\n, wKey, x, y);
 
@@ -8095,7 +8096,17 @@ static LRESULT LISTVIEW_LButtonDblClk(LI
 /* send NM_DBLCLK notification */
 LISTVIEW_HitTest(infoPtr, htInfo, TRUE, FALSE);
 notify_click(infoPtr, NM_DBLCLK, htInfo);
-
+
+/* If during NM_DBLCLK processing the listview was destroyed (e.g. in a
+ * shell browser control, native as well), don't try to continue execution,
+ * it's unsafe.
+ * TODO: Check if it is a whole class of bugs. */
+if (!IsWindow(hwnd))
+{
+TRACE(destroyed during NM_DBLCLK processing\n);
+return 0;
+}
+
 /* To send the LVN_ITEMACTIVATE, it must be on an Item */
 if(htInfo.iItem != -1) notify_itemactivate(infoPtr,htInfo);
 



Re: LTSpice/SwitcherCad III Regression with Rich text patch ID=19048

2005-09-10 Thread Phil Krylov
On Sat, 10 Sep 2005 13:49:23 -0400
paul [EMAIL PROTECTED] wrote:

 I did regression testing and found patch  Id=19048  triggers this error
 
 wine-pthread: run.c:142: ME_RunOfsFromCharOfs: Assertion `nCharOfs = 
 nParaOfs' failed.
 
 filed http://bugs.winehq.org/show_bug.cgi?id=3239
 The application is a free download and the bug has steps to generate the 
 failure. It is still a problem with cvs from 20050909.

Thanks, I'll look...

-- Ph.




Re: Need help debugging a memory corruption bug in shfldr_unixfs.c

2005-09-09 Thread Phil Krylov
On Fri, 9 Sep 2005 13:59:05 -0400
Dimi Paun [EMAIL PROTECTED] wrote:

 From: Phil Krylov [EMAIL PROTECTED]
  Here is a patch which adds checking if the window has been destroyed at
  that point. I don't know if it is acceptable but it fixes the problem.
 
 But this could potentially happen on any notification,
 what makes this particular one special (sorry, I was away
 on vacation and I missed this thread).

OK, should we then make a patch which adds an IsWindow() check after every
notification in every control? This one fixes a really annoying bug, while
the other places are not proved to crash.

-- Ph.





Re: Need help debugging a memory corruption bug in shfldr_unixfs.c

2005-09-08 Thread Phil Krylov
On Fri, 26 Aug 2005 23:03:33 +0200
Michael Jung [EMAIL PROTECTED] wrote:

 Every time you double click a folder, the current ShellView object is 
 destroyed and a new one is created. Given that I have to browse into like 30 
 different folders before it crashes on me, I can't pin down the relevant 
 infoPtr.

In hunt for this bug, I discovered the following:

* It appears both with unixfs and normal Wine fs.

* Every double click on a folder in the listview destroys this listview
  object (effectively destroying all underlying structures), creates a new
  one, and returns control to the place where double click notification was
  sent by the old listview (notify_hdr() function in listview.c). This time
  the old listview and its structures are already destroyed, but we
  continue to access them, exception!

Here is a patch which adds checking if the window has been destroyed at
that point. I don't know if it is acceptable but it fixes the problem.

ChangeLog:

Protect against wrong memory access if a listview is destroyed in a handler
for its NM_DBLCLK notification.

-- Ph.Index: dlls/comctl32/listview.c
===
RCS file: /home/wine/wine/dlls/comctl32/listview.c,v
retrieving revision 1.429
diff -p -u -r1.429 listview.c
--- dlls/comctl32/listview.c	30 Aug 2005 10:07:17 -	1.429
+++ dlls/comctl32/listview.c	8 Sep 2005 16:58:43 -
@@ -8083,6 +8083,7 @@ static LRESULT LISTVIEW_KillFocus(LISTVI
 static LRESULT LISTVIEW_LButtonDblClk(LISTVIEW_INFO *infoPtr, WORD wKey, INT x, INT y)
 {
 LVHITTESTINFO htInfo;
+HWND hwnd = infoPtr-hwndSelf;
 
 TRACE((key=%hu, X=%hu, Y=%hu)\n, wKey, x, y);
 
@@ -8095,7 +8096,15 @@ static LRESULT LISTVIEW_LButtonDblClk(LI
 /* send NM_DBLCLK notification */
 LISTVIEW_HitTest(infoPtr, htInfo, TRUE, FALSE);
 notify_click(infoPtr, NM_DBLCLK, htInfo);
-
+
+/* If during NM_DBLCLK processing the control was destroyed, don't try
+ * to continue execution, it's unsafe */
+if (!IsWindow(hwnd))
+{
+WARN(the control has been destroyed in NM_DBLCLK processing\n);
+return 0;
+}
+
 /* To send the LVN_ITEMACTIVATE, it must be on an Item */
 if(htInfo.iItem != -1) notify_itemactivate(infoPtr,htInfo);
 



Re: Need help debugging a memory corruption bug in shfldr_unixfs.c

2005-09-08 Thread Phil Krylov
Hi Michael,

On Thu, 8 Sep 2005 23:10:18 +0200
Michael Jung [EMAIL PROTECTED] wrote:

 Wouldn't it be enough to call notify_click after notify_itemactivate? I've 
 attached a modification of your patch, which does just this. Seems to work 
 fine for me.

Probably, but what if some apps depend on order in which these
notifications are sent? (assuming we already send them in the right order)

-- Ph.




Re: Need help debugging a memory corruption bug in shfldr_unixfs.c

2005-08-29 Thread Phil Krylov
On Fri, 26 Aug 2005 22:10:16 +0200
Michael Jung [EMAIL PROTECTED] wrote:

 2) Did other people see this bug already? 

Yes, I confirm it.

-- Ph.



Re: RICHED20: Avoid flicker

2005-08-18 Thread Phil Krylov
On Sun, 14 Aug 2005 17:53:33 +0400
Phil Krylov [EMAIL PROTECTED] wrote:

 this patch needs to be applied after the Re: RICHED20: Implement
 EM_SETRECT, EM_SETRECTNP and WM_SETREDRAW messages (fixed) patch.
 
 ChangeLog:
 
 Avoid flicker in RichEdit using proper update region invalidation and an
 offscreen bitmap.

Anything wrong with this patch?

-- Ph.



Re: RichEdit flicker

2005-08-14 Thread Phil Krylov
On Sat, 13 Aug 2005 18:51:06 +0400
Phil Krylov [EMAIL PROTECTED] wrote:

  The paragraph structure should include not MEPF_REWRAP and MEPF_REPAINT
  flags, but indexes of rows from which to start re-wrapping and repainting
  (e.g. nStartRewrap and nStartRepaint). The wrapping routine should check if
  it has actually changed wrapping and set nStartRepaint accordingly.
  
  ME_Repaint should not call ME_PaintContent directly. Instead, the wrapping
  routine (and probably others) should call InvalidateRect for screen areas
  that need to be repainted.
 
 On other hand, the current code is pretty stable although flickering.
 Probably flickering could be more easily by drawing to an offscreen bitmap
 which would be just exposed by WM_PAINT.

I've just sent a patch that implements both approaches to wine-patches.

-- Ph.



RichEdit flicker

2005-08-13 Thread Phil Krylov
Hi Krzysztof,

I want to change wrapping and painting code to minimize flickering and
maximize performance.

From what I see, the following could be done:

The paragraph structure should include not MEPF_REWRAP and MEPF_REPAINT
flags, but indexes of rows from which to start re-wrapping and repainting
(e.g. nStartRewrap and nStartRepaint). The wrapping routine should check if
it has actually changed wrapping and set nStartRepaint accordingly.

ME_Repaint should not call ME_PaintContent directly. Instead, the wrapping
routine (and probably others) should call InvalidateRect for screen areas
that need to be repainted.

What do you as the author of that code think about my suggestions? Or it's
possible that you are working in the same direction, and then it would be
silly to implement one thing twice?

-- Ph.




Re: RichEdit flicker

2005-08-13 Thread Phil Krylov
On Sat, 13 Aug 2005 12:47:19 +0400
Phil Krylov [EMAIL PROTECTED] wrote:

 The paragraph structure should include not MEPF_REWRAP and MEPF_REPAINT
 flags, but indexes of rows from which to start re-wrapping and repainting
 (e.g. nStartRewrap and nStartRepaint). The wrapping routine should check if
 it has actually changed wrapping and set nStartRepaint accordingly.
 
 ME_Repaint should not call ME_PaintContent directly. Instead, the wrapping
 routine (and probably others) should call InvalidateRect for screen areas
 that need to be repainted.

On other hand, the current code is pretty stable although flickering.
Probably flickering could be more easily by drawing to an offscreen bitmap
which would be just exposed by WM_PAINT.

-- Ph.



Re: Automatic ANSIUnicode message translation

2005-07-26 Thread Phil Krylov
On Tue, 26 Jul 2005 10:15:58 +1000
Troy Rollo [EMAIL PROTECTED] wrote:

 If you call SendMessageW under native Windows the translation happens. If you 
 call SendMessageA it does not. This is all exactly what I would expect.
 
 By my test, sending 0xf301 with SendMessageA gets 0xf301 on Windows, and with 
 SendMessageW gets 0x003f. Sending with SendMessageA on Wine gets 0x0001 and 
 with SendMessageW gets 0x003f.

Thanks for the clarification. Here is a patch that takes it into account.
But I don't know if and when the translation should be done in
PostThreadMessageA.

ChangeLog:

Translate Unicode-ANSI message wParams only when window type
(ANSI/Unicode) does not match message handling function postfix
(PeekMessageA/W etc.).

-- Ph.Index: dlls/user/message.c
===
RCS file: /home/wine/wine/dlls/user/message.c,v
retrieving revision 1.86
diff -p -u -r1.86 message.c
--- dlls/user/message.c	19 Jul 2005 19:14:32 -	1.86
+++ dlls/user/message.c	26 Jul 2005 06:43:23 -
@@ -2444,7 +2444,9 @@ LRESULT WINAPI SendMessageA( HWND hwnd, 
  */
 BOOL WINAPI SendNotifyMessageA( HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam )
 {
-return SendNotifyMessageW( hwnd, msg, map_wparam_AtoW( msg, wparam ), lparam );
+if (IsWindowUnicode(hwnd))
+wparam = map_wparam_AtoW( msg, wparam );
+return SendNotifyMessageW( hwnd, msg, wparam, lparam );
 }
 
 
@@ -2495,7 +2497,9 @@ BOOL WINAPI SendNotifyMessageW( HWND hwn
 BOOL WINAPI SendMessageCallbackA( HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam,
   SENDASYNCPROC callback, ULONG_PTR data )
 {
-return SendMessageCallbackW( hwnd, msg, map_wparam_AtoW( msg, wparam ),
+if (IsWindowUnicode(hwnd))
+wparam = map_wparam_AtoW( msg, wparam );
+return SendMessageCallbackW( hwnd, msg, wparam,
  lparam, callback, data );
 }
 
@@ -2585,7 +2589,9 @@ DWORD WINAPI InSendMessageEx( LPVOID res
  */
 BOOL WINAPI PostMessageA( HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam )
 {
-return PostMessageW( hwnd, msg, map_wparam_AtoW( msg, wparam ), lparam );
+if (IsWindowUnicode(hwnd))
+wparam = map_wparam_AtoW( msg, wparam );
+return PostMessageW( hwnd, msg, wparam, lparam );
 }
 
 
@@ -2734,7 +2740,7 @@ BOOL WINAPI PeekMessageW( MSG *msg_out, 
 BOOL WINAPI PeekMessageA( MSG *msg, HWND hwnd, UINT first, UINT last, UINT flags )
 {
 BOOL ret = PeekMessageW( msg, hwnd, first, last, flags );
-if (ret) msg-wParam = map_wparam_WtoA( msg-message, msg-wParam );
+if (ret  IsWindowUnicode(hwnd)) msg-wParam = map_wparam_WtoA( msg-message, msg-wParam );
 return ret;
 }
 
@@ -2798,7 +2804,8 @@ BOOL WINAPI GetMessageW( MSG *msg, HWND 
 BOOL WINAPI GetMessageA( MSG *msg, HWND hwnd, UINT first, UINT last )
 {
 GetMessageW( msg, hwnd, first, last );
-msg-wParam = map_wparam_WtoA( msg-message, msg-wParam );
+if (IsWindowUnicode(hwnd))
+msg-wParam = map_wparam_WtoA( msg-message, msg-wParam );
 return (msg-message != WM_QUIT);
 }
 
@@ -2810,7 +2817,8 @@ BOOL WINAPI GetMessageA( MSG *msg, HWND 
 BOOL WINAPI IsDialogMessageA( HWND hwndDlg, LPMSG pmsg )
 {
 MSG msg = *pmsg;
-msg.wParam = map_wparam_AtoW( msg.message, msg.wParam );
+if (IsWindowUnicode(hwndDlg))
+msg.wParam = map_wparam_AtoW( msg.message, msg.wParam );
 return IsDialogMessageW( hwndDlg, msg );
 }
 


Re: Automatic ANSIUnicode message translation

2005-07-26 Thread Phil Krylov
On Tue, 26 Jul 2005 16:04:22 +0900
Dmitry Timoshkov [EMAIL PROTECTED] wrote:

 This patch is not correct. All messages which potentially go through 
 wineserver
 should be posted/sent via unicode.

OK, then how you would suggest to solve the problem described in previous
messages of this thread?

 Perhaps map_wparam_AtoW and map_wparam_WtoA
 should translate the whole wparam, i.e. both high and low bytes.

What about the character codes which can't be converted?

 What does
 Windows do if the current locale is DBCS (Chinese/Japanese/Korean), does it
 translate the whole wparam in that case?

AFAIK in DBCS two separate messages are used.

-- Ph.



Re: Automatic ANSIUnicode message translation

2005-07-26 Thread Phil Krylov
On Tue, 26 Jul 2005 16:31:50 +0900
Dmitry Timoshkov [EMAIL PROTECTED] wrote:

 Phil Krylov [EMAIL PROTECTED] wrote:
 
   This patch is not correct. All messages which potentially go through 
   wineserver
   should be posted/sent via unicode.
  
  OK, then how you would suggest to solve the problem described in previous
  messages of this thread?
 
 One solution is to translate the whole wparam.

How do you see it? Example: I do a

 PostMessageA(hwndAnsi, WM_CHAR, 0xF301, 0);

map_wparam_AtoW takes the \x01\xF3 string, translates it to Unicode via
CP_ACP (for CP1251, this would be probably {'\x01', 0x443})... and how
does it fit this info back in LOWORD(wParam)?

  AFAIK in DBCS two separate messages are used.
 
 A test under Windows would say it for sure.

I can't test it as I don't have a Windows with DBCS locales installed, but 
Internet says:

 When entering non-ASCII characters on systems with DBCS input
locales, the lead byte and trail byte for the DBCS character are passed
in two successive WM_CHAR messages. So we are better off processing
WM_IME_CHAR messages because we get both bytes at once. If we move to
Unicode, however, we'll directly get UTF-16 in WM_CHAR; or on XP: UTF-32
in WM_UNICHAR.

-- Ph.



Re: Automatic ANSIUnicode message translation

2005-07-26 Thread Phil Krylov
Hi Dmitry,

On Tue, 26 Jul 2005 16:56:31 +0900
Dmitry Timoshkov [EMAIL PROTECTED] wrote:

 The key word is the whole wparam. So, there is no need to truncate it
 by using LOWORD.

Oh sorry. For some reason I thought that HIWORD(wParam) is used for some
other data. Here is a new patch, is it ok?

AFAIK in DBCS two separate messages are used.
   
   A test under Windows would say it for sure.
  
  I can't test it as I don't have a Windows with DBCS locales installed,
 
 Just install one of such locales then, NT/2k/XP have built-in support
 for DBCS locales.

I'll try to find a distro that has. However, my 2000 and XP distros have an
installation option for CJK locales, but the needed files are not on the
installation CDs.

-- Ph.
Index: dlls/user/message.c
===
RCS file: /home/wine/wine/dlls/user/message.c,v
retrieving revision 1.86
diff -p -u -r1.86 message.c
--- dlls/user/message.c	19 Jul 2005 19:14:32 -	1.86
+++ dlls/user/message.c	26 Jul 2005 09:06:33 -
@@ -368,10 +368,12 @@ static WPARAM map_wparam_AtoW( UINT mess
 case WM_SYSDEADCHAR:
 case WM_MENUCHAR:
 {
-char ch = LOWORD(wparam);
-WCHAR wch;
-MultiByteToWideChar(CP_ACP, 0, ch, 1, wch, 1);
-wparam = MAKEWPARAM( wch, HIWORD(wparam) );
+BYTE ch[2];
+WCHAR wch[2];
+ch[0] = (wparam  0xFF);
+ch[1] = (wparam  8);
+MultiByteToWideChar(CP_ACP, 0, ch, 2, wch, 2);
+wparam = MAKEWPARAM(wch[0], wch[1]);
 }
 break;
 case WM_IME_CHAR:
@@ -407,10 +409,12 @@ static WPARAM map_wparam_WtoA( UINT mess
 case WM_SYSDEADCHAR:
 case WM_MENUCHAR:
 {
-WCHAR wch = LOWORD(wparam);
-BYTE ch;
-WideCharToMultiByte( CP_ACP, 0, wch, 1, (LPSTR)ch, 1, NULL, NULL );
-wparam = MAKEWPARAM( ch, HIWORD(wparam) );
+WCHAR wch[2];
+BYTE ch[2];
+wch[0] = LOWORD(wparam);
+wch[1] = HIWORD(wparam);
+WideCharToMultiByte( CP_ACP, 0, wch, 2, (LPSTR)ch, 2, NULL, NULL );
+wparam = MAKEWPARAM( ch[0] | (ch[1]  8), 0 );
 }
 break;
 case WM_IME_CHAR:


Re: change in dlls/version/info.c breaks IBM Translation Manager

2005-07-25 Thread Phil Krylov
Hi,

On Mon, 25 Jul 2005 21:37:09 +0200
Paul Vriens [EMAIL PROTECTED] wrote:
 
 could you try the attached. I only convert the win32 to win16 if we are
 not getting a request for '\' or '\VarFileInfo\Translation'. Both
 requests do not need a conversion anyway.
 
 This is just a quick hack for now, info.c needs a lot of cleanup.

It works (at least for IBM TM). :)

-- Ph.



Re: change in dlls/version/info.c breaks IBM Translation Manager

2005-07-24 Thread Phil Krylov
On Sun, 24 Jul 2005 11:56:38 +0200
Paul Vriens [EMAIL PROTECTED] wrote:

 could you also send me a +ver trace?

Here it is (attached).

-- Ph.

trace
Description: Binary data


change in dlls/version/info.c breaks IBM Translation Manager

2005-07-23 Thread Phil Krylov
Hello,

http://cvs.winehq.org/cvsweb/wine/dlls/version/info.c.diff?r1=1.47r2=1.48f=h

This recent change in dlls/version/info.c breaks IBM Translation Manager on
startup:

 wine: Unhandled exception (thread 0009), starting debugger...
 WineDbg starting on pid 0x8
 Unhandled exception: page fault on read access to 0x7bb0f4ac in 32-bit code 
 (0x7b4ce282).
 In 32 bit mode.
 Register dump:
  CS:0073 SS:007b DS:007b ES:007b FS:003b GS:0033
  EIP:7b4ce282 ESP:7baff860 EBP:7baff8b0 EFLAGS:00010283(   - 00  -RIS1C)
  EAX:7bb0fa58 EBX:7b4d37dc ECX:fd34 EDX:7bb0f4ac
  ESI:7baffb24 EDI:7baffb40
 Stack dump:
 0x7baff860:  7baffb28  7baffd4c 
 0x7baff870:  7baffb3c 0002  
 0x7baff880:  7baff9da 7bb0fa58 7b4d3ae0 7bb0f4ac
 0x7baff890:  7baffd4c 1794 7baf 7baf
 0x7baff8a0:  fd34 7b4d37dc 7bb0fa58 7baffb24
 0x7baff8b0:  7baff908 7b4ce2ad 7baffd24 7baffb24
 Backtrace:
 =1 0x7b4ce282 ConvertVersionInfo32To16+0x172(info32=0x7baffd24, 
 info16=0x7baffb24) [/home/phil/build/wine/dlls/version/info.c:267] in version 
 (0x7baff8b0)
   2 0x7b4ce2ad ConvertVersionInfo32To16+0x19d(info32=0x7baff9d4, 
 info16=0x7baff9d4) [/home/phil/build/wine/dlls/version/info.c:273] in version 
 (0x7baff908)
   3 0x7b4cf64c VerQueryValueA(pBlock=0x7baff9d4, lpSubBlock=0x569214, 
 lplpBuffer=0x7baff9cc, puLen=0x7baff9d0) 
 [/home/phil/build/wine/dlls/version/info.c:772] in version (0x7baff93c)
 fixme:dbghelp:sffip_cb NIY on 'P:\EQFD\BINNTCVP\EQFD.pdb'
   4 0x00401bb6 in eqfd (+0x1bb6) (0x7baffdb8)
   5 0x004aa8e7 in eqfd (+0xaa8e7) (0x7baffddc)
   6 0x004745c8 in eqfd (+0x745c8) (0x7baffdf4)
   7 0x0044ef54 EntryPoint+0x1a4 in eqfd (0x7bafff2c)
   8 0x7bbb3f48 start_process+0x8d(arg=0x0) 
 [/home/phil/build/wine/dlls/kernel/process.c:996] in kernel32 (0x7ba4)
   9 0xb7fab48d wine_switch_to_stack+0x11 in libwine.so.1 (0x)
 0x7b4ce282 ConvertVersionInfo32To16+0x172 
 [/home/phil/build/wine/dlls/version/info.c:267] in version: movzwl   
 0x0(%edx),%eax
 267 while ( (DWORD)child32  (DWORD)info32 + wLength  
 child32-wLength != 0 )
 Wine-dbg

-- Ph.



Re: RICHED20: TODO list additions

2005-07-22 Thread Phil Krylov
Hi Dmitry,

On Sat, 23 Jul 2005 00:41:42 +0900
Dmitry Timoshkov [EMAIL PROTECTED] wrote:

 What kind of hyphenation richedit needs? Would an automatic, not
 dictionary based algorithm suffice?

Actually I'm unsure if the original RichEdit implements any hyphenation
algorithm itself. However, version 4.1 allows to specify a callback
function for hyphenation via EM_SETHYPHENATEINFO message. I need to perform
some tests to see if there is any default algorithm. If there is one, we
should also implement it, and your code could be useful (but probably only
for East Slavic languages as the algorithm must be language-specific).

-- Ph.



Re: RICHED20: EM_SETZOOM / EM_GETZOOM implementation

2005-07-22 Thread Phil Krylov
On Fri, 22 Jul 2005 16:32:17 -0400
Dimi Paun [EMAIL PROTECTED] wrote:

 From: Phil Krylov [EMAIL PROTECTED]
  Added EM_GETZOOM and EM_SETZOOM RichEdit message handlers.
 
  +  case EM_GETZOOM:
  +if (!wParam || !lParam)
  +  return FALSE;
  +*(int *)wParam = editor-nZoomNumerator;
  +*(int *)lParam = editor-nZoomDenominator;
  +return TRUE;
 
 I don't know what Windows does, but it may also do:
 
 +  case EM_GETZOOM:
 +if (wParam) *(int *)wParam = editor-nZoomNumerator;
 +if (lParam) *(int *)lParam = editor-nZoomDenominator;
 +return TRUE;
 
 Have you checked?

No, but according to the documentation:

The message returns TRUE if message is processed, which it will be if both
wParam and lParam are not NULL

-- Ph.



Re: Fix ntdll compilation in Darwin

2005-06-30 Thread Phil Krylov
Hi Dmitry,

On Thu, 30 Jun 2005 22:27:01 +0900
Dmitry Timoshkov [EMAIL PROTECTED] wrote:

 Phil Krylov [EMAIL PROTECTED] wrote:
 
  Index: dlls/ntdll/cdrom.c
  ===
  RCS file: /home/wine/wine/dlls/ntdll/cdrom.c,v
  retrieving revision 1.59
  diff -p -u -r1.59 cdrom.c
  --- dlls/ntdll/cdrom.c 29 Jun 2005 19:18:54 - 1.59
  +++ dlls/ntdll/cdrom.c 30 Jun 2005 11:27:41 -
  @@ -75,6 +75,11 @@
  # include sys/scsiio.h
  #endif
  
  +#ifdef __APPLE__
  +# include IOKit/IOKitLib.h
  +# include IOKit/scsi/SCSICmds_REQUEST_SENSE_Defs.h
  +#endif
  +
  #define NONAMELESSUNION
  #define NONAMELESSSTRUCT
  #include ntstatus.h
  @@ -1418,6 +1423,8 @@ static NTSTATUS CDROM_ScsiPassThroughDir
  
  #ifdef SENSEBUFLEN
  if (pPacket-SenseInfoLength  SENSEBUFLEN)
  +#elif defined( __APPLE__ )
  +if (pPacket-SenseInfoLength  kSenseDefaultSize)
  #else
  if (pPacket-SenseInfoLength  sizeof(struct request_sense))
  #endif
 
 Please do not introduce even more platform dependent #ifdefs into cdrom.c,
 currently it already has enough mess with all that #if 
 defined(linux)/(__FreeBSD__)/
 (__NetBSD__). Add proper configure checks for headers and structures your
 platform needs.

To be sure I get you right: would changing __APPLE__ to HAVE_IOKIT (and
adding HAVE_IOKIT detection to configure) be sufficient?

-- Ph.



Re: wine/dlls/crypt32 tests/encode.c encode.c

2005-06-15 Thread Phil Krylov
Hi,

this change gives me a lot of errors when compiling:

make[3]: Entering directory `/home/phil/build/wine/dlls/crypt32/tests'
../../../tools/winegcc/winegcc -B../../../tools/winebuild -mconsole
encode.o main.o protectdata.o testlist.o  -o crypt32_test.exe.so -L../../../
libs/port -lwine_port -L../../../dlls -L../../../dlls/crypt32 -L../../../
libs -lcrypt32
/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/../../../../i686-pc-linux-
gnu/bin/ld: warning: creating a DT_TEXTREL in object.
encode.o(.text+0x3b): In function `test_encodeInt':
/home/phil/build/wine/dlls/crypt32/tests/encode.c:74: undefined reference to
`CryptEncodeObjectEx'
encode.o(.text+0x8f):/home/ phil/build/wine/dlls/crypt32/tests/encode.c:81:
undefined reference to `CryptEncodeObjectEx'
...

-- Ph.



Re: storage32.c fix for big endian arch

2005-05-17 Thread Phil Krylov
Please disregard, Pierre d'Herbemont already sent the same few hours
before :)

-- Ph.

On Tue, 17 May 2005 21:41:41 +0400
Phil Krylov [EMAIL PROTECTED] wrote:

 ChangeLog:
 
 Fixed storage32.c compilation in big endian architectures.
 
 Patch:
 
 Index: dlls/ole32/storage32.c
 ===
 RCS file: /home/wine/wine/dlls/ole32/storage32.c,v
 retrieving revision 1.87
 diff -p -u -r1.87 storage32.c
 --- dlls/ole32/storage32.c14 May 2005 11:06:44 -  1.87
 +++ dlls/ole32/storage32.c17 May 2005 17:20:06 -
 @@ -4130,8 +4130,8 @@ void StorageUtl_ReadULargeInteger(const 
  ULARGE_INTEGER tmp;
  
  memcpy(tmp, buffer + offset, sizeof(ULARGE_INTEGER));
 -value-LowPart = htole32(tmp.HighPart);
 -value-HighPart = htole32(tmp.LowPart);
 +value-u.LowPart = htole32(tmp.u.HighPart);
 +value-u.HighPart = htole32(tmp.u.LowPart);
  #else
  memcpy(value, buffer + offset, sizeof(ULARGE_INTEGER));
  #endif
 @@ -4143,8 +4143,8 @@ void StorageUtl_WriteULargeInteger(BYTE*
  #ifdef WORDS_BIGENDIAN
  ULARGE_INTEGER tmp;
  
 -tmp.LowPart = htole32(value-HighPart);
 -tmp.HighPart = htole32(value-LowPart);
 +tmp.u.LowPart = htole32(value-u.HighPart);
 +tmp.u.HighPart = htole32(value-u.LowPart);
  memcpy(buffer + offset, tmp, sizeof(ULARGE_INTEGER));
  #else
  memcpy(buffer + offset, value, sizeof(ULARGE_INTEGER));
 
 



Re: ie6install richedit regression

2005-04-20 Thread Phil Krylov
On Mon, 18 Apr 2005 21:43:46 +0200
Paul van Schayck [EMAIL PROTECTED] wrote:

 http://cvs.winehq.org/patch.py?id=17049
 
 This richedit patch broke ie6install.exe (doesn't start). As far as I
 can see the character stream is not setuped correctly. There is an
 endless loop of ME_PropagateCharOffset. This is going wrong somewhere
 in ME_Stream*.

Thanks for the info, fixed.

-- Ph.




Re: Resend: RICHED20: fall back to simple test

2005-04-20 Thread Phil Krylov
On Thu, 21 Apr 2005 00:58:10 +0900
Mike McCormack [EMAIL PROTECTED] wrote:

 You've done great work, and I thought you would want to know about a 
 problem with it so you could correct it.  No need for sorry :)

I wrote sorry because I feel sorry :) I should give a more thorough
testing to this code.

-- Ph.



Re: Riched20: thanks + regression beta not shown

2005-04-01 Thread Phil Krylov
On Fri, 01 Apr 2005 18:04:32 +0200
Tobias Burnus [EMAIL PROTECTED] wrote:

 Hmm, I think the reason for my boxes was that I didn't install 
 symbol.ttf from Windows (I had only a Symbol Set BT and bitmap fonts 
 before).

Yes, I also noticed some problems with font substitution...

-- Ph.



Re: Fwd: Wine install fails on Gentoo with `SYS_sigaction' undeclared

2005-03-26 Thread Phil Krylov
Hi,

 I am using Gentoo with a linux kernel of 2.6.10 on a dual-Xeon 3.2ghz
 64-bit system.

I am using Gentoo with 2.6.10 on 32-bit Athlon XP and don't have this problem,
so I suppose it must be something with 64-bitness.

-- Ph.



Re: Riched20: thanks + regression beta not shown

2005-03-24 Thread Phil Krylov
Hi,

On Thu, 24 Mar 2005 10:13:30 +0100
Tobias Burnus [EMAIL PROTECTED] wrote:

 Regression: One of the later riched20 patches, possibly
 http://cvs.winehq.org/patch.py?id=16672, caused a regression with the
 richedit control in Diamond.
 
 Before it showed a beta character from the Symbol font, now it only
 shows a box ([]).

Did you check later CVS? I tried to read an RTF containing beta from the
Symbol font both as 'b' (CP_SYMBOL codepage) and as 0xF062 (Unicode),
and both did look like betas on the screen.

Anyway, thanks, because the RTF output you quote shows another bug in the
RTF writer which I'm addressing now.

 {fs18\f2 \u61538?}

\u61538? should be b, and even if it was not in a symbol charset, it
should read \u-3598 - RTF uses signed 16-bit values here.

 One feature request: Currently, tabs are shown as box ([]), how about
 replacing them with a simple space - that would increase the readability
 a lot.

I suppose this is more addressed to Krzysztof... The readability could be
even better if tab positions were supported :)

-- Ph.



Re: RICHEDIT: RTF reader i18n (now with font charset support)

2005-03-21 Thread Phil Krylov
On Mon, 21 Mar 2005 14:40:38 +0300
Vitaly Lipatov [EMAIL PROTECTED] wrote:

   Will we do this code in locale independent manner? Why we have
   ansiCodePage=1252 by default?
 
  It is locale independent. 1252 is the default value used if RTF does not
  specify another codepage (which almost never happens). If I used
  GetACP() here, the same RTF document would be differently imported
  depending on user locale. RTF is not supposed to act like this. If RTF
 If I try open RTF where codepage is not specified, guessed codepage must be 
 the same as ACP. For instance if I get such file here in Russia, I suppose it 
 in cp1251 codepage.
 
  does not specify any codepage it means that it uses CP1252.
 I recommend use GetACP, otherwise in will some disadvantage for non cp1252 
 users.
 
  How do you find this code is locale dependent? IMHO it's _in_dependent of
  locale.
 I worry only about default codepage.

OK, I've made some tests using the original M$ richedit, and they show the
following: \ansicpg keyword in the RTF header does not affect the used encoding
when importing RTF. The encoding used for import is determined by \fcharset
setting for the current font. If it specifies \fcharset1 (DEFAULT_CHARSET)
or is omitted, GetACP() is used. If it specifies \fcharset0 (ANSI_CHARSET),
CP1252 is used regardless of current locale. For other charsets, their
respective codepages are used.

I'll commit the required changes to the RTF reader soon.

-- Ph.



Re: RICHEDIT: RTF reader i18n (now with font charset support)

2005-03-18 Thread Phil Krylov
On Fri, 18 Mar 2005 15:12:01 +0300
Vitaly Lipatov [EMAIL PROTECTED] wrote:

17  2005 13:20 Phil Krylov (a):
  this patch replaces my precious patch RICHEDIT: RTF reader i18n and
  needs to be applied after Krzysztof Foltman's RICHEDIT: RTF reader
  improvements and optimizations (TAB craziness fixed) patch.
 
  ChangeLog:
 
  Replaced slow and outdated character set handling in RTF reader by
  Unicode/codepages support. Added charset-codepage conversion.
 Will we do this code in locale independent manner? Why we have 
 ansiCodePage=1252 by default?

It is locale independent. 1252 is the default value used if RTF does not
specify another codepage (which almost never happens). If I used
GetACP() here, the same RTF document would be differently imported
depending on user locale. RTF is not supposed to act like this. If RTF
does not specify any codepage it means that it uses CP1252.

How do you find this code is locale dependent? IMHO it's _in_dependent of
locale.

-- Ph.



Re: richedit patches by Phil Krylov

2005-03-14 Thread Phil Krylov
On Mon, 14 Mar 2005 20:25:52 +0100
Krzysztof Foltman [EMAIL PROTECTED] wrote:

 Phil Krylov wrote:
 
  The RTF reader still has to be teached Unicode. Currently most of my 
  existing
  .rtf documents are totally garbled.
 
 Can you fix it ? Judging from your RTF writer code and your last name, 
 you probably have more knowledge about Unicode and RTF than I have.

I'll try when I have time... I looked in the reader code and it's not very clear
(at least in the part which deals with character sets), it'll take some time to
understand it.

-- Ph.



Re: richedit patches by Phil Krylov

2005-03-14 Thread Phil Krylov
On Mon, 14 Mar 2005 19:31:25 +0100
Krzysztof Foltman [EMAIL PROTECTED] wrote:

   ChangeLog:
   Initial implementation of EM_STREAMOUT and RTF writer.
 
 Nice to see this functionality implemented (I really didn't want to 
 implement it myself). Very good code too. Thanks.

Thanks :)

 The new function ME_FindItemAtOffset isn't really necessary, you can 
 achieve exactly the same thing with ME_RunOfsFromCharOfs (and I should 
 have used it in ME_GetTextW instead of reimplementing the same 
 functionality). I'm going to get rid of it later.

Oh sorry, I haven't noticed that it already exists.

 Now when both EM_STREAMIN and EM_STREAMOUT work, I can start 
 implementing the rest of the clipboard code.

The RTF reader still has to be teached Unicode. Currently most of my existing
.rtf documents are totally garbled.

-- Ph.



Re: richedit patches by Phil Krylov

2005-03-14 Thread Phil Krylov
On Mon, 14 Mar 2005 19:31:25 +0100
Krzysztof Foltman [EMAIL PROTECTED] wrote:

   ChangeLog:
   Initial implementation of EM_STREAMOUT and RTF writer.
 
 Nice to see this functionality implemented (I really didn't want to 
 implement it myself). Very good code too. Thanks.

Thanks :)

 The new function ME_FindItemAtOffset isn't really necessary, you can 
 achieve exactly the same thing with ME_RunOfsFromCharOfs (and I should 
 have used it in ME_GetTextW instead of reimplementing the same 
 functionality). I'm going to get rid of it later.

Oh sorry, I haven't noticed that it already exists.

 Now when both EM_STREAMIN and EM_STREAMOUT work, I can start 
 implementing the rest of the clipboard code.

The RTF reader still has to be teached Unicode. Currently most of my existing
.rtf documents are totally garbled.

-- Ph.



Re: dlls/richedit/reader.c

2004-04-16 Thread Phil Krylov
Hello Ge,

Friday, April 16, 2004, 3:56:41 PM, you wrote:

GvG Changelog:
GvG   Ge van Geldorp [EMAIL PROTECTED]
GvG   Work around problem in NSIS installers which can't handle 1 char
GvG   at a time reading of RTF text.

To make it fully compatible with MS richedit, the buffer size should
be not 10 chars, but 4096. Although it's not documented, all versions
of MS Richedit always use this value.

-- 
Best regards,
 Philmailto:[EMAIL PROTECTED]




Re: Wine menu woes

2004-04-10 Thread Phil Krylov
Hello Geoffrey,

Saturday, April 10, 2004, 9:20:56 PM, you wrote:

GH I have an application that seems to work very well, except that the menus
GH don't work (in wine, they are fine in Windows)

GH The app is located here (free download):
GH http://www.acumeninc.com/download/tzmax50v3.21.exe

GH After some debugging, I found that the app creates a menu, then destroys
GH it and recreates it using different titles.

If it can help: it is also an issue with The Bat! - the menus stop
working after their recreation on language change (from English to
another).

-- 
Best regards,
 Philmailto:[EMAIL PROTECTED]




Re: mdi: remove child activate optimization

2004-03-13 Thread Phil Krylov
Hello Huw,

Tuesday, March 9, 2004, 1:46:20 PM, you wrote:

HDMD Huw Davies [EMAIL PROTECTED]
HDMD We need to at least refresh the window menu in ChildActivate,
HDMD so for now remove the 'is already activated' optimization.

This patch brings a regression: IBM Translation Manager enters an
endless activation-switching loop when closing one of its MDI children
(which is in some non-trivial way used as a parent for 4 more MDI
children).

-- 
Best regards,
 Philmailto:[EMAIL PROTECTED]




Re: Wine and Macromedia in (Heise) News

2004-03-06 Thread Phil Krylov
Hello Stefan,

Saturday, March 6, 2004, 12:17:30 PM, you wrote:

SL Hello,

SL in http://www.heise.de/newsticker/meldung/45275 (german only) it is states
SL that Macromedia currently modifies their Web-Authoring-System Flash MX to run
SL with wine. After that they like to port it to linux.

It'd be better (for wine) if they modified wine to run Flash..

SL Bye Stefan

-- 
Best regards,
 Philmailto:[EMAIL PROTECTED]




Re[2]: Yeah - our RichEDit needs some work

2003-12-29 Thread Phil Krylov
Hello Joshua,

Thursday, December 25, 2003, 11:04:28 PM, you wrote:

JW If you need the source of a program that can uses RTF
JW as it's native format, can spit out
JW microsoft-compatible RTF files, has all the tools for
JW editing Rick Text, and the source is aviliable in C...
JW then use the Source for Ted

JW http://www.nllgg.nl/Ted/

JW I would toss it in myself, but I suck a coding. I
JW wouldn't even know where to begin.

I have to note that richedit should also implement Text Object Model,
that is, ITextDocument, ITextServices etc. (and to be really
compatible with M$ one, it should be based on them).

-- 
Best regards,
 Philmailto:[EMAIL PROTECTED]




Re[4]: Yeah - our RichEDit needs some work

2003-12-29 Thread Phil Krylov
Hello Dimitrie,

Monday, December 29, 2003, 11:33:21 PM, you wrote:

DOP Now, if you are familiar with the richedit problem,
DOP can you come up with a list of tasks that will eventually
DOP lead to a full blown richedit control? It is a big task, if
DOP we break it into smaller, self contained ones (like the
DOP ones you mentioned) maybe someone will start working on it.

I'll try.

First, I don't think that any part of the current richedit code can be
used. It is very much of a stub.

Hard Tasks:

. COM interfaces. I have only started to implement the tom.h header
  file (for MinGW, but it should be easy to port). I am personally bad
  at COM programming (esp. in pure C)...
  There can be two approaches to this:
  a) implement everything without COM and then add simple COM
 wrappers. This may be easier because the official COM richedit
 interfaces are not very simple (for me :)
  b) implement everything in COM from scratch.
  
. Internal rich text storage - how it should be done? Structures etc.
  (ITextDocument, ITextRange...) Maybe have a look at GtkTextBuffer
  from GTK+?

. There are also some OLE interfaces, and I won't say anything here
  because I never used that.

Easy Tasks:

. Streaming RTF in and out of the internal storage. I have done
  a lot of RTF parsing/generation code, so this could help.

. Rich text rendering. This seems relatively simple, I did some
  multifont text rendering code in Win32 API.

. User interaction. Relatively simple too.

That's it.
It seems to me that the first thing to do is an internal rich text
storage specification, because every other task depends on it.

-- 
Best regards,
 Philmailto:[EMAIL PROTECTED]




Added support for inter-process GetWindowLong on the window extra bytes

2003-11-28 Thread Phil Krylov
Hello,

This change prevents IBM Translation Manager from working correctly.
It has a dialog named Export Folder which used to contain three
buttons and a tabbed notebook with various options. After this update,
the pages of the tabbed notebook are no longer displayed (and
created).

Hope I can provide some more details like a debug log if someone will
tell me which channels should be traced.

AJ ChangeSet ID:   10222
AJ CVSROOT:/opt/cvs-commit
AJ Module name:wine
AJ Changes by: [EMAIL PROTECTED]   2003/11/26 16:15:41

AJ Modified files:
AJ windows: win.c 
AJ server : window.c trace.c protocol.def 
AJ include/wine   : server_protocol.h 

AJ Log message:
AJ Added support for inter-process GetWindowLong on the window extra
AJ bytes.

AJ Patch: http://cvs.winehq.com/patch.py?id=10222

AJ Old revision  New revision  Changes Path
AJ  1.226 1.227 +132 -111   wine/windows/win.c
AJ  1.25  1.26  +36 -4  wine/server/window.c
AJ  1.185 1.186 +7 -3   wine/server/trace.c
AJ  1.87  1.88  +6 -0   wine/server/protocol.def
AJ  1.88  1.89  +7 -1  
AJ wine/include/wine/server_protocol.h

-- 
Best regards,
 Philmailto:[EMAIL PROTECTED]