summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEike Rathke <erack@redhat.com>2020-01-20 21:37:18 +0100
committerAdolfo Jayme Barrientos <fitojb@ubuntu.com>2020-02-04 07:25:59 +0100
commit02ca7b1c92a801004a42c92c59f4bbfc70ec19eb (patch)
tree564b50bef5f5bf1f94cf24dac37bb4cd05e9c7a4
parent2bcd14ac072b7c59a6b4c89fdd2fe63b8e885895 (diff)
Propagate warning error code from dBASE export, tdf#130020
Long time existing code cleared all warnings set by the actual export routine. I could not figure out why this ever was done. It started short after the initial OOo import with commit 0ec1e9cbdfb4be18ea18b6b9be567d23bff5963f CommitDate: Fri Oct 27 18:00:10 2000 +0000 dBase export: don't set warning errorcodes that did not set warnings at the medium anymore without giving a rationale. Change-Id: I0f26d0644890c53557076ac7b99ffe7c8756a047 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/87109 Reviewed-by: Eike Rathke <erack@redhat.com> Tested-by: Jenkins (cherry picked from commit 6a308d2bfaf1d756aa4cfca6a40b80cf5e88e5fa) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/87189 Reviewed-by: Adolfo Jayme Barrientos <fitojb@ubuntu.com>
-rw-r--r--sc/source/ui/docshell/docsh.cxx20
1 files changed, 11 insertions, 9 deletions
diff --git a/sc/source/ui/docshell/docsh.cxx b/sc/source/ui/docshell/docsh.cxx
index 0fd41c54d957..bd7402231333 100644
--- a/sc/source/ui/docshell/docsh.cxx
+++ b/sc/source/ui/docshell/docsh.cxx
@@ -2442,15 +2442,10 @@ bool ScDocShell::ConvertTo( SfxMedium &rMed )
ErrCode eError = DBaseExport(
rMed.GetPhysicalName(), ScGlobal::GetCharsetValue(sCharSet), bHasMemo);
- if ( eError != ERRCODE_NONE && eError.IsWarning() )
- {
- eError = ERRCODE_NONE;
- }
-
INetURLObject aTmpFile( rMed.GetPhysicalName(), INetProtocol::File );
if ( bHasMemo )
aTmpFile.setExtension("dbt");
- if ( eError != ERRCODE_NONE )
+ if ( eError != ERRCODE_NONE && !eError.IsWarning() )
{
if (!GetError())
SetError(eError);
@@ -2468,8 +2463,13 @@ bool ScDocShell::ConvertTo( SfxMedium &rMed )
// tdf#40713: don't lose dbt file
// if aDbtFile corresponds exactly to aTmpFile, we just have to return
- if (aDbtFile.GetMainURL( INetURLObject::DecodeMechanism::Unambiguous ) == aTmpFile.GetMainURL( INetURLObject::DecodeMechanism::Unambiguous ))
+ if (aDbtFile.GetMainURL( INetURLObject::DecodeMechanism::Unambiguous ) ==
+ aTmpFile.GetMainURL( INetURLObject::DecodeMechanism::Unambiguous ))
+ {
+ if (eError != ERRCODE_NONE && !GetError())
+ SetError(eError);
return bRet;
+ }
if ( IsDocument( aDbtFile ) && !KillFile( aDbtFile ) )
bRet = false;
@@ -2478,10 +2478,12 @@ bool ScDocShell::ConvertTo( SfxMedium &rMed )
if ( !bRet )
{
KillFile( aTmpFile );
- if ( !GetError() )
- SetError(SCERR_EXPORT_DATA);
+ if (eError == ERRCODE_NONE || eError.IsWarning())
+ eError = SCERR_EXPORT_DATA;
}
}
+ if (eError != ERRCODE_NONE && !GetError())
+ SetError(eError);
}
}
else if (aFltName == pFilterDif)