svtools/source/misc/transfer.cxx | 48 ++++++++++++++++++--------------------- 1 file changed, 23 insertions(+), 25 deletions(-)
New commits: commit b4227a20a90a5649966a765397f70589c4919c07 Author: Stephan Bergmann <sberg...@redhat.com> AuthorDate: Thu Oct 11 17:51:32 2018 +0200 Commit: Noel Grandin <noel.gran...@collabora.co.uk> CommitDate: Fri Oct 12 13:56:27 2018 +0200 Revert "tdf#120158: fix ImplGetParameterString for typename" This reverts commit 40e22f1e1bd44a1aa56ff77b82f1306ed1076ebf. See the commit message of <https://gerrit.libreoffice.org/61684> "tdf#120158: Base CMimeContentType on INetMIME::scanContentType" why that change is considered a superior fix compared to the reverted one. Change-Id: I1a0d77edee5bb18a98890d2021c777bc4c148a26 Reviewed-on: https://gerrit.libreoffice.org/61686 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sberg...@redhat.com> (cherry picked from commit 3bc8e2f3ab69adb9196508688e5211dc171add95) Reviewed-on: https://gerrit.libreoffice.org/61689 Reviewed-by: Julien Nabet <serval2...@yahoo.fr> Reviewed-by: Noel Grandin <noel.gran...@collabora.co.uk> diff --git a/svtools/source/misc/transfer.cxx b/svtools/source/misc/transfer.cxx index 0cebe63fb051..7f6d83dee5a7 100644 --- a/svtools/source/misc/transfer.cxx +++ b/svtools/source/misc/transfer.cxx @@ -103,25 +103,6 @@ SvStream& WriteTransferableObjectDescriptor( SvStream& rOStm, const Transferable return rOStm; } -// Clean OUString given in parameter -// by returning an other OUString containing only authorized chars -static OUString lcl_getAuthorizedCharsString(const OUString& rInputString) -{ - sal_Bool pToAccept[128]; - for (sal_Bool & rb : pToAccept) - rb = false; - - const char aQuotedParamChars[] = - "()<>@,;:/[]?=!#$&'*+-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ^_`abcdefghijklmnopqrstuvwxyz{|}~. "; - - for ( sal_Int32 nInd = 0; nInd < RTL_CONSTASCII_LENGTH(aQuotedParamChars); ++nInd ) - { - sal_Unicode nChar = aQuotedParamChars[nInd]; - if ( nChar < 128 ) - pToAccept[nChar] = true; - } - return rtl::Uri::encode(rInputString, pToAccept, rtl_UriEncodeIgnoreEscapes, RTL_TEXTENCODING_UTF8); -} // the reading of the parameter is done using the special service css::datatransfer::MimeContentType, // a similar approach should be implemented for creation of the mimetype string; @@ -139,14 +120,32 @@ static OUString ImplGetParameterString( const TransferableObjectDescriptor& rObj if( !rObjDesc.maTypeName.isEmpty() ) { - // the type name might contain unacceptable characters, encode all of them - aParams += ";typename=\"" + lcl_getAuthorizedCharsString(rObjDesc.maTypeName) + "\""; + aParams += ";typename=\"" + rObjDesc.maTypeName + "\""; } if( !rObjDesc.maDisplayName.isEmpty() ) { // the display name might contain unacceptable characters, encode all of them - aParams += ";displayname=\"" + lcl_getAuthorizedCharsString(rObjDesc.maDisplayName) + "\""; + // this seems to be the only parameter currently that might contain such characters + sal_Bool pToAccept[128]; + for (sal_Bool & rb : pToAccept) + rb = false; + + const char aQuotedParamChars[] = + "()<>@,;:/[]?=!#$&'*+-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ^_`abcdefghijklmnopqrstuvwxyz{|}~. "; + + for ( sal_Int32 nInd = 0; nInd < RTL_CONSTASCII_LENGTH(aQuotedParamChars); ++nInd ) + { + sal_Unicode nChar = aQuotedParamChars[nInd]; + if ( nChar < 128 ) + pToAccept[nChar] = true; + } + + aParams += ";displayname=\"" + + rtl::Uri::encode( + rObjDesc.maDisplayName, pToAccept, rtl_UriEncodeIgnoreEscapes, + RTL_TEXTENCODING_UTF8) + + "\""; } aParams += ";viewaspect=\"" + OUString::number(rObjDesc.mnViewAspect) @@ -187,7 +186,7 @@ static void ImplSetParameterString( TransferableObjectDescriptor& rObjDesc, cons if( xMimeType->hasParameter( aTypeNameString ) ) { - rObjDesc.maTypeName = ::rtl::Uri::decode( xMimeType->getParameterValue( aTypeNameString ), rtl_UriDecodeWithCharset, RTL_TEXTENCODING_UTF8 ); + rObjDesc.maTypeName = xMimeType->getParameterValue( aTypeNameString ); } if( xMimeType->hasParameter( aDisplayNameString ) ) @@ -1214,9 +1213,8 @@ void TransferableDataHelper::FillDataFlavorExVector( const Sequence< DataFlavor if( !rFlavor.MimeType.isEmpty() ) xMimeType = xMimeFact->createMimeContentType( rFlavor.MimeType ); } - catch( const css::uno::Exception& e) + catch( const css::uno::Exception& ) { - SAL_WARN("svtools.misc", "Something went wrong with calling to createMimeContentType: \"" << e << "\""); } aFlavorEx.MimeType = rFlavor.MimeType; _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits