diff options
author | Kurt Zenker <kz@openoffice.org> | 2004-08-30 16:27:28 +0000 |
---|---|---|
committer | Kurt Zenker <kz@openoffice.org> | 2004-08-30 16:27:28 +0000 |
commit | 2dd8849c7d8f0753dc76fe53d55dadf9a66dcdda (patch) | |
tree | 4ee6eb7eae3185e95f2eee5c064adcb7b58039e0 /xmlhelp | |
parent | afa2c2f927f30f53d5d8a37028b2f870de4154c0 (diff) |
INTEGRATION: CWS help2 (1.32.40); FILE MERGED
2004/08/24 12:31:06 abi 1.32.40.5: pictures now work
2004/08/24 10:00:14 abi 1.32.40.4: UseDB=no for treeview
2004/08/22 17:43:14 abi 1.32.40.3: querying
2004/08/20 14:02:29 abi 1.32.40.2: now keys functioning
2004/08/19 09:50:53 abi 1.32.40.1: added linkerfile
Diffstat (limited to 'xmlhelp')
-rw-r--r-- | xmlhelp/source/cxxhelp/provider/urlparameter.cxx | 201 |
1 files changed, 118 insertions, 83 deletions
diff --git a/xmlhelp/source/cxxhelp/provider/urlparameter.cxx b/xmlhelp/source/cxxhelp/provider/urlparameter.cxx index a60c60d2c560..825cc66b0f77 100644 --- a/xmlhelp/source/cxxhelp/provider/urlparameter.cxx +++ b/xmlhelp/source/cxxhelp/provider/urlparameter.cxx @@ -2,9 +2,9 @@ * * $RCSfile: urlparameter.cxx,v $ * - * $Revision: 1.32 $ + * $Revision: 1.33 $ * - * last change: $Author: vg $ $Date: 2003-08-05 09:42:33 $ + * last change: $Author: kz $ $Date: 2004-08-30 17:27:28 $ * * The Contents of this file are made available subject to the terms of * either of the following licenses @@ -232,7 +232,7 @@ rtl::OString URLParameter::getByName( const char* par ) rtl::OUString URLParameter::get_id() { - if( m_aId.compareToAscii( "52821" ) == 0 || m_aId.compareToAscii("start") == 0 ) + if( m_aId.compareToAscii("start") == 0 ) { // module is set StaticModuleInformation* inf = m_pDatabases->getStaticInformationForModule( get_module(), @@ -301,50 +301,67 @@ void URLParameter::init( bool bDefaultLanguageIsInitialized ) { m_bBerkeleyRead = false; m_bStart = false; + m_bUseDB = true; m_nHitCount = 100; // The default maximum hitcount } rtl::OUString URLParameter::get_the_tag() { - if( ! m_bBerkeleyRead ) - readBerkeley(); + if(m_bUseDB) { + if( ! m_bBerkeleyRead ) + readBerkeley(); - m_bBerkeleyRead = true; + m_bBerkeleyRead = true; - return m_aTag; + return m_aTag; + } + else + return rtl::OUString(); } rtl::OUString URLParameter::get_the_path() { - if( ! m_bBerkeleyRead ) - readBerkeley(); - m_bBerkeleyRead = true; + if(m_bUseDB) { + if( ! m_bBerkeleyRead ) + readBerkeley(); + m_bBerkeleyRead = true; - return m_aPath; + return m_aPath; + } + else + return get_id(); } rtl::OUString URLParameter::get_the_title() { - if( ! m_bBerkeleyRead ) - readBerkeley(); - m_bBerkeleyRead = true; + if(m_bUseDB) { + if( ! m_bBerkeleyRead ) + readBerkeley(); + m_bBerkeleyRead = true; - return m_aTitle; + return m_aTitle; + } + else + return rtl::OUString(); } rtl::OUString URLParameter::get_the_jar() { - if( ! m_bBerkeleyRead ) - readBerkeley(); - m_bBerkeleyRead = true; + if(m_bUseDB) { + if( ! m_bBerkeleyRead ) + readBerkeley(); + m_bBerkeleyRead = true; - return m_aJar; + return m_aJar; + } + else + return get_module() + rtl::OUString::createFromAscii(".jar"); } @@ -555,9 +572,11 @@ void URLParameter::open( const Reference< XMultiServiceFactory >& rxSMgr, } +// #include <stdio.h> void URLParameter::parse() throw( com::sun::star::ucb::IllegalIdentifierException ) { + // fprintf(stdout,"url send to xmlhelp: %s\n",(rtl::OUStringToOString(m_aURL,RTL_TEXTENCODING_UTF8).getStr())); m_aExpr = m_aURL; sal_Int32 lstIdx = m_aExpr.lastIndexOf( sal_Unicode( '#' ) ); @@ -631,7 +650,10 @@ bool URLParameter::name( bool modulePresent ) if( length != 0 && (m_aExpr.getStr())[0] == sal_Unicode( '/' ) ) { sal_Int32 idx = 1; - while( idx < length && isLetterOrDigit( (m_aExpr.getStr())[idx] ) ) + while( idx < length && (m_aExpr.getStr())[idx] != '?' ) +// ( isLetterOrDigit( (m_aExpr.getStr())[idx] ) +// || (m_aExpr.getStr())[idx] == '/' +// || (m_aExpr.getStr())[idx] == '.' )) ++idx; if( idx != 1 && ! modulePresent ) @@ -643,6 +665,7 @@ bool URLParameter::name( bool modulePresent ) } } +// fprintf(stdout,"id %s\n",(rtl::OUStringToOString(m_aId,RTL_TEXTENCODING_UTF8).getStr())); return true; } @@ -687,6 +710,8 @@ bool URLParameter::query() m_aProgram = value; else if( parameter.compareToAscii( "Eid" ) == 0 ) m_aEid = value; + else if( parameter.compareToAscii( "UseDB" ) == 0 ) + m_bUseDB = ! ( value.compareToAscii("no") == 0 ); else if( parameter.compareToAscii( "Query" ) == 0 ) { if( ! m_aQuery.getLength() ) @@ -699,9 +724,10 @@ bool URLParameter::query() else if( parameter.compareToAscii( "System" ) == 0 ) m_aSystem = value; else if( parameter.compareToAscii( "HelpPrefix" ) == 0 ) - m_aPrefix = rtl::Uri::decode( value, - rtl_UriDecodeWithCharset, - RTL_TEXTENCODING_UTF8 ); + m_aPrefix = rtl::Uri::decode( + value, + rtl_UriDecodeWithCharset, + RTL_TEXTENCODING_UTF8 ); else if( parameter.compareToAscii( "HitCount" ) == 0 ) m_nHitCount = value.toInt32(); else if( parameter.compareToAscii( "Active" ) == 0 ) @@ -804,67 +830,72 @@ InputStreamTransformer::InputStreamTransformer( URLParameter* urlParam, // Uses the implementation detail, that rtl::OString::getStr returns a zero terminated character-array - const char* parameter[41]; - rtl::OString parString[40]; - int last; - - parString[ 0] = "Program"; - parString[ 1] = urlParam->getByName( "Program" ); - parString[ 2] = "Database"; - parString[ 3] = urlParam->getByName( "Database" ); - parString[ 4] = "Id"; - parString[ 5] = urlParam->getByName( "Id" ); - parString[ 6] = "Path"; - parString[ 7] = urlParam->getByName( "Path" ); - parString[ 8] = "Language"; - parString[ 9] = urlParam->getByName( "Language" ); - parString[10] = "System"; - parString[11] = urlParam->getByName( "System" ); - parString[12] = "productname"; - parString[13] = rtl::OString( pDatabases->getProductName().getStr(), - pDatabases->getProductName().getLength(), - RTL_TEXTENCODING_UTF8 ); - parString[14] = "productversion"; - parString[15] = rtl::OString( pDatabases->getProductVersion().getStr(), - pDatabases->getProductVersion().getLength(), - RTL_TEXTENCODING_UTF8 ); - - parString[16] = "hp"; - parString[17] = urlParam->getByName( "HelpPrefix" ); - last = 18; - - if( parString[17].getLength() ) + const char* parameter[42]; + rtl::OString parString[43]; + int last = 0; + + parString[last++] = "Program"; + parString[last++] = urlParam->getByName( "Program" ); + parString[last++] = "Database"; + parString[last++] = urlParam->getByName( "Database" ); + parString[last++] = "Id"; + parString[last++] = urlParam->getByName( "Id" ); + parString[last++] = "Path"; + parString[last++] = urlParam->getByName( "Path" ); + parString[last++] = "Language"; + parString[last++] = urlParam->getByName( "Language" ); + parString[last++] = "System"; + parString[last++] = urlParam->getByName( "System" ); + parString[last++] = "productname"; + parString[last++] = rtl::OString( + pDatabases->getProductName().getStr(), + pDatabases->getProductName().getLength(), + RTL_TEXTENCODING_UTF8 ); + parString[last++] = "productversion"; + parString[last++] = + rtl::OString( pDatabases->getProductVersion().getStr(), + pDatabases->getProductVersion().getLength(), + RTL_TEXTENCODING_UTF8 ); + + parString[last++] = "imgrepos"; + parString[last++] = pDatabases->getImagesZipFileURL(); + parString[last++] = "hp"; + parString[last++] = urlParam->getByName( "HelpPrefix" ); + + if( parString[last-1].getLength() ) { - parString[18] = "sm"; - parString[19] = "vnd.sun.star.help%3A%2F%2F"; - parString[20] = "qm"; - parString[21] = "%3F"; - parString[22] = "es"; - parString[23] = "%3D"; - parString[24] = "am"; - parString[25] = "%26"; - parString[26] = "cl"; - parString[27] = "%3A"; - parString[28] = "sl"; - parString[29] = "%2F"; - parString[30] = "hm"; - parString[31] = "%23"; - parString[32] = "cs"; - parString[33] = "css"; - - parString[34] = "vendorname"; - parString[35] = rtl::OString( pDatabases->getVendorName().getStr(), - pDatabases->getVendorName().getLength(), - RTL_TEXTENCODING_UTF8 ); - parString[36] = "vendorversion"; - parString[37] = rtl::OString( pDatabases->getVendorVersion().getStr(), - pDatabases->getVendorVersion().getLength(), - RTL_TEXTENCODING_UTF8 ); - parString[38] = "vendorshort"; - parString[39] = rtl::OString( pDatabases->getVendorShort().getStr(), - pDatabases->getVendorShort().getLength(), - RTL_TEXTENCODING_UTF8 ); - last = 40; + parString[last++] = "sm"; + parString[last++] = "vnd.sun.star.help%3A%2F%2F"; + parString[last++] = "qm"; + parString[last++] = "%3F"; + parString[last++] = "es"; + parString[last++] = "%3D"; + parString[last++] = "am"; + parString[last++] = "%26"; + parString[last++] = "cl"; + parString[last++] = "%3A"; + parString[last++] = "sl"; + parString[last++] = "%2F"; + parString[last++] = "hm"; + parString[last++] = "%23"; + parString[last++] = "cs"; + parString[last++] = "css"; + + parString[last++] = "vendorname"; + parString[last++] = + rtl::OString( pDatabases->getVendorName().getStr(), + pDatabases->getVendorName().getLength(), + RTL_TEXTENCODING_UTF8 ); + parString[last++] = "vendorversion"; + parString[last++] = + rtl::OString( pDatabases->getVendorVersion().getStr(), + pDatabases->getVendorVersion().getLength(), + RTL_TEXTENCODING_UTF8 ); + parString[last++] = "vendorshort"; + parString[last++] = + rtl::OString( pDatabases->getVendorShort().getStr(), + pDatabases->getVendorShort().getLength(), + RTL_TEXTENCODING_UTF8 ); } for( int i = 0; i < last; ++i ) @@ -1090,6 +1121,10 @@ int schemehandlergetall( void *userData, return 0; } +// fprintf(stdout,"jarFile %s\n",(rtl::OUStringToOString(jar,RTL_TEXTENCODING_UTF8).getStr())); +// fprintf(stdout,"lang %s\n",(rtl::OUStringToOString(language,RTL_TEXTENCODING_UTF8).getStr())); +// fprintf(stdout,"path %s\n",(rtl::OUStringToOString(path,RTL_TEXTENCODING_UTF8).getStr())); + Reference< XInputStream > xInputStream; Reference< XHierarchicalNameAccess > xNA = uData->m_pDatabases->jarFile( jar,language ); |