mirror of
https://git.dev.opencascade.org/repos/occt.git
synced 2025-07-05 12:15:50 +03:00
0027433: Opening/Saving OCAF Documents With Own Document Format Does Not Work
Modified Load(...) method of Resource_Manager.cxx to print file names correctly. Removed appending (empty) file name to directory name, since this is not necessary and leads to a Standard_OutOfRange failure in TCollection_AsciiString. Appending file name is done, but only if the name is not empty. Added test case
This commit is contained in:
parent
c59fcd1186
commit
a1530ab1b8
@ -113,9 +113,9 @@ void Resource_Manager::Load(TCollection_AsciiString& aPath,
|
|||||||
{
|
{
|
||||||
Resource_KindOfLine aKind;
|
Resource_KindOfLine aKind;
|
||||||
TCollection_AsciiString Token1, Token2;
|
TCollection_AsciiString Token1, Token2;
|
||||||
TCollection_AsciiString Directory, Name;
|
OSD_Path Path(aPath);
|
||||||
TCollection_AsciiString FileName;
|
OSD_File File = Path;
|
||||||
OSD_File File = OSD_Path(aPath);
|
TCollection_AsciiString FileName = Path.Name();
|
||||||
File.Open(OSD_ReadOnly,OSD_Protection());
|
File.Open(OSD_ReadOnly,OSD_Protection());
|
||||||
if (File.Failed()) {
|
if (File.Failed()) {
|
||||||
if (myVerbose)
|
if (myVerbose)
|
||||||
@ -486,7 +486,12 @@ void Resource_Manager::GetResourcePath (TCollection_AsciiString& aPath, const St
|
|||||||
TCollection_AsciiString aResPath(dir);
|
TCollection_AsciiString aResPath(dir);
|
||||||
|
|
||||||
OSD_Path anOSDPath(aResPath);
|
OSD_Path anOSDPath(aResPath);
|
||||||
anOSDPath.DownTrek(anOSDPath.Name());
|
|
||||||
|
if (!anOSDPath.Name().IsEmpty())
|
||||||
|
{
|
||||||
|
anOSDPath.DownTrek(anOSDPath.Name());
|
||||||
|
}
|
||||||
|
|
||||||
anOSDPath.SetName(aName);
|
anOSDPath.SetName(aName);
|
||||||
|
|
||||||
anOSDPath.SystemName(aPath);
|
anOSDPath.SystemName(aPath);
|
||||||
|
21
tests/bugs/caf/bug27433
Executable file
21
tests/bugs/caf/bug27433
Executable file
@ -0,0 +1,21 @@
|
|||||||
|
puts "==========="
|
||||||
|
puts "OCC27433 Opening/Saving OCAF Documents With Own Document Format Does Not Work"
|
||||||
|
puts "==========="
|
||||||
|
|
||||||
|
# make variable ends with "/" to get empty myName in OSD_Path
|
||||||
|
dsetenv "CSF_PluginDefaults" [dgetenv CSF_PluginDefaults]/
|
||||||
|
|
||||||
|
# Create simple document with some data
|
||||||
|
NewDocument Doc BinOcaf
|
||||||
|
SetInteger Doc 0:2 100
|
||||||
|
|
||||||
|
# Save the document
|
||||||
|
set aFile ${imagedir}/OCC27433-[file tail [info script]].cbf
|
||||||
|
file delete ${aFile}
|
||||||
|
puts ${aFile}
|
||||||
|
catch {SaveAs Doc ${aFile}}
|
||||||
|
if { ![file exists ${aFile}] } {
|
||||||
|
puts "Error: Can not save the file with path to plugins ended with slash"
|
||||||
|
}
|
||||||
|
|
||||||
|
Close Doc
|
Loading…
x
Reference in New Issue
Block a user