Bug 48602

Summary: FILEOPEN: The Greek codepage instead the Russian codepage (*.vsd by MS_Visio-2000)
Product: LibreOffice Reporter: ape <idler.1st>
Component: DrawingAssignee: Fridrich Strba <fridrich.strba>
Status: RESOLVED FIXED QA Contact:
Severity: normal    
Priority: medium CC: fridrich.strba, frob, serval2412
Version: unspecified   
Hardware: Other   
OS: Windows (All)   
Whiteboard: target:3.6.0.0.beta3 target:3.7.0 target:3.5.5
i915 platform: i915 features:
Attachments: extention

Description ape 2012-04-12 05:49:06 UTC
Created attachment 59856 [details]
extention

This file ([url=https://bugs.freedesktop.org/attachment.cgi?id=59854]attachment 59854[/url]) is created Microsoft Visio 2000, and contains blocks of text in Russian. Draw opens text blocks in the Greek character set.
Now I use an extension (see attachment) to correct this error.
--
P.S. Text blocks (CP-1251) of MS_Visio-XP&2003's files open correctly.
Comment 1 Urmas 2012-04-13 10:01:02 UTC
That document crashes LO 3.5.2, BTW.
Comment 2 ape 2012-04-13 11:36:23 UTC
(In reply to comment #1)
> That document crashes LO 3.5.2, BTW.

Start the LibreOffice and run Draw. Open the document after these actions. All OK - LibO-3.5.2 and LibO-3.5.3rc0 in Windows-XPsp2 (x64) and Windows-7sp1 (HPx32).
Comment 3 Fridrich Strba 2012-06-17 12:28:31 UTC
OK, we don't really convert correctly the charsets for visio 2000 and 2002 file-format. We only recently reverse-engineered how this is stored and did not yet have the time to implement it.
Comment 4 Fridrich Strba 2012-06-17 12:38:55 UTC
I would discourage the use of random extensions. It would be much better to help a bit to extend libvisio capacities. We have the conversion tables for all MS codepages (apart the CJK ones that are a bit more complicated) and if someone has some time, I would not mind to explain what to do.
Comment 5 Fridrich Strba 2012-06-18 01:07:01 UTC
Valek, could you check what is going wrong with this file:

https://bugs.freedesktop.org/attachment.cgi?id=59854

Oletoy spits the following on the console when opening it:

Version: 6
Size: 26c61
ptr_search failed in 1d
!!! --------------- !!! 82 03 1:2:11:1:1:405:0:0
!!! --------------- !!! 82 03 1:2:11:1:1:452:0:0

And we get out of bonds when we try to access an index of a colour. Two things come to mind: 1) Either the colours are having somewhere ids that are not the same as their order 2) we are reading the colourId to be used wrongly.
Comment 6 Valek Filippov 2012-06-18 06:00:53 UTC
I don't see any place in the file from where this out of range colourID could be requested (Line/Fill/CharIX).

"ptr_search failed in 1d" -- cosmetic (no stencils, so no pointers in stream 1d).

"!!! --------------- !!! 82 03 1:2:11:1:1:405:0:0
!!! --------------- !!! 82 03 1:2:11:1:1:452:0:0"

oletoy barfs because we've never seen chunk 0x82 before.
Both 0x82 in the file only have 0's.
Those chunks are part of the 'Shape="Guide"', shouldn't be a problem.

For charset conversion:
- text is stored in "Text IX" ('readText' in VSD6Parser.cpp),
- charset is at offset 2 (after header) in Font ('readFontIX' in VSDXParser.cpp),
- conversion is here http://cgit.freedesktop.org/libreoffice/libcdr/commit/?id=5c5a45a5dbfdaf4e63f08bdcdbe98300dcc5b6fa
Comment 7 Urmas 2012-06-21 07:04:32 UTC
But why does it still crash Draw somewhere in component_getFactory?
Comment 8 Not Assigned 2012-06-22 03:17:16 UTC
Fridrich Štrba committed a patch related to this issue.
It has been pushed to "libreoffice-3-6":

http://cgit.freedesktop.org/libreoffice/core/commit/?id=c1ee18d5dfb92a9ffb0f8f5f069b8de936c75562&g=libreoffice-3-6

Uploading libvisio 0.0.18, fixing fdo#48602


It will be available in LibreOffice 3.6.
Comment 9 Not Assigned 2012-06-22 03:18:10 UTC
Fridrich Å trba committed a patch related to this issue.
It has been pushed to "master":

http://cgit.freedesktop.org/libreoffice/core/commit/?id=8c2843d807c15452a5b03ec8287d4f1c1ed35b01

Uploading libvisio 0.0.18, fixing fdo#48602
Comment 10 Not Assigned 2012-06-22 08:08:25 UTC
Fridrich Å trba committed a patch related to this issue.
It has been pushed to "libreoffice-3-5":

http://cgit.freedesktop.org/libreoffice/core/commit/?id=949c6d959af1971552ae78e69251fab1b8e7dce3&g=libreoffice-3-5

Uploading libvisio 0.0.18, fixing fdo#48602


It will be available in LibreOffice 3.5.6.
Comment 11 Not Assigned 2012-06-25 04:47:12 UTC
Fridrich Å trba committed a patch related to this issue.
It has been pushed to "libreoffice-3-5-5":

http://cgit.freedesktop.org/libreoffice/core/commit/?id=4a6b4b93173e5c354f315ff85afa6ffa8ee1774a&g=libreoffice-3-5-5

Uploading libvisio 0.0.18, fixing fdo#48602


It will be available already in LibreOffice 3.5.5.
Comment 12 Valek Filippov 2012-07-08 09:52:29 UTC
I believe this one is fixed.

ape, Большое спасибо за сообщение об ошибке!

Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.