From 6a113caf17974eb07a9f06ef09b1b1737d4d07bc Mon Sep 17 00:00:00 2001 From: Muhammet Kara Date: Thu, 13 Sep 2018 14:59:28 +0300 Subject: tdf#118881: Fix HTML parsing for personas This is just a band-aid to make personas feature work again. Change-Id: I80b54fe9a8ddc93d93744fcf2c7f739d81f6face Reviewed-on: https://gerrit.libreoffice.org/60432 Tested-by: Jenkins Reviewed-by: Heiko Tietze Tested-by: Heiko Tietze Reviewed-by: Muhammet Kara (cherry picked from commit e98ac43ec42ff398ad489d6719960d595f0327be) Reviewed-on: https://gerrit.libreoffice.org/60468 Reviewed-by: Adolfo Jayme Barrientos Tested-by: Adolfo Jayme Barrientos (cherry picked from commit 2f52a8e0f1098a51631434129707cfb0b60fecb3) Reviewed-on: https://gerrit.libreoffice.org/60481 --- cui/source/options/personalization.cxx | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/cui/source/options/personalization.cxx b/cui/source/options/personalization.cxx index dab788d8b824..478be7d99193 100644 --- a/cui/source/options/personalization.cxx +++ b/cui/source/options/personalization.cxx @@ -550,14 +550,14 @@ static OUString searchValue( const OString &rBuffer, sal_Int32 from, const OStri where += rIdentifier.getLength(); - sal_Int32 end = rBuffer.indexOf( """, where ); + sal_Int32 end = rBuffer.indexOf( "\"", where ); if ( end < 0 ) return OUString(); OString aOString( rBuffer.copy( where, end - where ) ); OUString aString( aOString.getStr(), aOString.getLength(), RTL_TEXTENCODING_UTF8, OSTRING_TO_OUSTRING_CVTFLAGS ); - return aString.replaceAll( "\\/", "/" ); + return aString.replaceAll( "\\u002F", "/" ); } /// Parse the Persona web page, and find where to get the bitmaps + the color values. @@ -569,32 +569,32 @@ static bool parsePersonaInfo( const OString &rBufferArg, OUString *pHeaderURL, O // let's replace the whole buffer with last one so we can treat it easily OString rBuffer = rBufferArg.replaceAll(OString("""), OString(""")); // it is the first attribute that contains "persona=" - sal_Int32 persona = rBuffer.indexOf( "data-browsertheme=\"{" ); + sal_Int32 persona = rBuffer.indexOf( "\"type\":\"persona\"" ); if ( persona < 0 ) return false; // now search inside - *pHeaderURL = searchValue( rBuffer, persona, ""headerURL":"" ); + *pHeaderURL = searchValue( rBuffer, persona, "\"headerURL\":\"" ); if ( pHeaderURL->isEmpty() ) return false; - *pFooterURL = searchValue( rBuffer, persona, ""footerURL":"" ); + *pFooterURL = searchValue( rBuffer, persona, "\"footerURL\":\"" ); if ( pFooterURL->isEmpty() ) return false; - *pTextColor = searchValue( rBuffer, persona, ""textcolor":"" ); + *pTextColor = searchValue( rBuffer, persona, "\"textcolor\":\"" ); if ( pTextColor->isEmpty() ) return false; - *pAccentColor = searchValue( rBuffer, persona, ""accentcolor":"" ); + *pAccentColor = searchValue( rBuffer, persona, "\"accentcolor\":\"" ); if ( pAccentColor->isEmpty() ) return false; - *pPreviewURL = searchValue( rBuffer, persona, ""previewURL":"" ); + *pPreviewURL = searchValue( rBuffer, persona, "\"previewURL\":\"" ); if ( pPreviewURL->isEmpty() ) return false; - *pName = searchValue( rBuffer, persona, ""name":"" ); + *pName = searchValue( rBuffer, persona, "\"name\":\"" ); return !pName->isEmpty(); } -- cgit v1.2.3