olivier.crauste@gmail.com
2007-Mar-19 19:15 UTC
[Wine] "FixMe GetCharacterPlacementW" on Igor 5.04
Hello everybody, I am a new user of wine so please excuse me if this problem has already been fixed... (but it seems not ;) ) I recently installed on my Gentoo (up-to-date) the CVS version of Wine and installed Igor (version 5.04) using different profiles (Win98, 2000 and XP). Igor is a scientific software I use to analyze measurements data. When launching the Igor program, it prints normally the menu bar (File, Edit, ...) and remove all of the entries one after the other, printing "fixme:font:GetCharacterPlacementW classes not implemented" for each. After a few search, this function seems related to BiDi and Left-Right justification. (See the related topic about Pegasus Mail issued in 2004 so far) I've already tried different locale (UTF-8, ISO-8859) and language as I thought it was due to wrong charset => Nothing. So my question is multiple : * Is there already a patch for this FixMe ? * Does someone know how to by-pass this class ? I mean, i really don't care if the 'About' or 'Help' menu is not right justified in this software. Regards, Olivier Crauste
olivier.crauste@gmail.com schreef:> Hello everybody, > > I am a new user of wine so please excuse me if this problem has already > been fixed... (but it seems not ;) ) > > I recently installed on my Gentoo (up-to-date) the CVS version of Wine > and installed Igor (version 5.04) using different profiles (Win98, 2000 > and XP). > > Igor is a scientific software I use to analyze measurements data. > > When launching the Igor program, it prints normally the menu bar (File, > Edit, ...) and remove all of the entries one after the other, printing > "fixme:font:GetCharacterPlacementW classes not implemented" for each. > > After a few search, this function seems related to BiDi and Left-Right > justification. > (See the related topic about Pegasus Mail issued in 2004 so far) > > I've already tried different locale (UTF-8, ISO-8859) and language as I > thought it was due to wrong charset => Nothing. > > So my question is multiple : > * Is there already a patch for this FixMe ? > * Does someone know how to by-pass this class ? I mean, i really don't > care if the 'About' or 'Help' menu is not right justified in this > software. > > Regards, > > Olivier CrausteHi Olivier, you could always file a bug in bugzilla for this problem, maybe one of the developers has a quick fix. Furthermore you could try to hack wine's source ( the function is in dlls/gdi32/font.c) and fiddle around a bit , to see if you can get around the bug.
olivier.crauste@gmail.com schreef:> Hello everybody, > > I am a new user of wine so please excuse me if this problem has already > been fixed... (but it seems not ;) ) > > I recently installed on my Gentoo (up-to-date) the CVS version of Wine > and installed Igor (version 5.04) using different profiles (Win98, 2000 > and XP). > > Igor is a scientific software I use to analyze measurements data. > > When launching the Igor program, it prints normally the menu bar (File, > Edit, ...) and remove all of the entries one after the other, printing > "fixme:font:GetCharacterPlacementW classes not implemented" for each. > > After a few search, this function seems related to BiDi and Left-Right > justification. > (See the related topic about Pegasus Mail issued in 2004 so far) > > I've already tried different locale (UTF-8, ISO-8859) and language as I > thought it was due to wrong charset => Nothing. > > So my question is multiple : > * Is there already a patch for this FixMe ? > * Does someone know how to by-pass this class ? I mean, i really don't > care if the 'About' or 'Help' menu is not right justified in this > software. > > Regards, > > Olivier CrausteHi, me again, i downloaded the demo and it has the same problem; The following hack got me around the bug (at least the menu's are visible and seem to be usable): diff --git a/dlls/gdi32/font.c b/dlls/gdi32/font.c index 22ebd8a..4c116ab 100644 --- a/dlls/gdi32/font.c +++ b/dlls/gdi32/font.c @@ -2853,7 +2853,7 @@ GetCharacterPlacementW( lpResults->lpGlyphs, lpResults->nGlyphs, lpResults->nMaxFit); if(dwFlags&(~GCP_REORDER)) FIXME("flags 0x%08x ignored\n", dwFlags); - if(lpResults->lpClass) FIXME("classes not implemented\n"); + if(lpResults->lpClass) FIXME("classes not implemented\n"); return -1; if (lpResults->lpCaretPos && (dwFlags & GCP_REORDER)) FIXME("Caret positions for complex scripts not implemented\n"); (Save the text above as text.txt, and apply this patch with 'patch -Np1 -i text.txt' in wine's source tree, and recompile)
olivier.crauste@gmail.com schreef:> Hello everybody, > > I am a new user of wine so please excuse me if this problem has > already been fixed... (but it seems not ;) ) > > I recently installed on my Gentoo (up-to-date) the CVS version of > Wine and installed Igor (version 5.04) using different profiles > (Win98, 2000 and XP). > > Igor is a scientific software I use to analyze measurements data. > > When launching the Igor program, it prints normally the menu bar > (File, Edit, ...) and remove all of the entries one after the other, > printing "fixme:font:GetCharacterPlacementW classes not implemented" > for each. > > ...In case you haven't checked the most recent version of Wine, this seems to be fixed now.