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, Большое спасибо за сообщение об ошибке!