diff options
author | Stephan Bergmann <sb@openoffice.org> | 2002-11-08 11:56:09 +0000 |
---|---|---|
committer | Stephan Bergmann <sb@openoffice.org> | 2002-11-08 11:56:09 +0000 |
commit | cf81cb677842a37cf0a5a56576312d6668aa5f0f (patch) | |
tree | debbacaacd1eae410d01d86fef5455efde880733 /tools/source | |
parent | 017dead2f0d00886be831a8a82d340ea21a229f5 (diff) |
#104429# Added support for telnet.
Diffstat (limited to 'tools/source')
-rw-r--r-- | tools/source/fsys/urlobj.cxx | 38 |
1 files changed, 26 insertions, 12 deletions
diff --git a/tools/source/fsys/urlobj.cxx b/tools/source/fsys/urlobj.cxx index 3ad9cc6ee8a2..050459ba04b5 100644 --- a/tools/source/fsys/urlobj.cxx +++ b/tools/source/fsys/urlobj.cxx @@ -2,9 +2,9 @@ * * $RCSfile: urlobj.cxx,v $ * - * $Revision: 1.34 $ + * $Revision: 1.35 $ * - * last change: $Author: sb $ $Date: 2002-09-06 14:36:51 $ + * last change: $Author: sb $ $Date: 2002-11-08 12:55:18 $ * * The Contents of this file are made available subject to the terms of * either of the following licenses @@ -306,6 +306,10 @@ using namespace com::sun; ; private vnd-sun-star-url = "VND.SUN.STAR.ODMA:" ["/" *uric_no_slash] uric_no_slash = unreserved / escaped / ";" / "?" / ":" / "@" / "&" / "=" / "+" / "$" / "," + + + ; RFC 1738 + telnet-url = "TELNET://" login ["/"] */ //============================================================================ @@ -388,8 +392,6 @@ struct INetURLObject::PrefixInfo }; //============================================================================ -// static - static INetURLObject::SchemeInfo const aSchemeInfoMap[INET_PROT_END] = { { "", "", 0, false, false, false, false, false, false, false, false }, @@ -447,10 +449,12 @@ static INetURLObject::SchemeInfo const aSchemeInfoMap[INET_PROT_END] false, false, false, false, false }, { "vnd.sun.star.script", "vnd.sun.star.script:", 0, false, false, false, false, false, false, false, false }, - { "vnd.sun.star.odma", "vnd.sun.star.odma:", 0, false, false, false, - false, false, false, true, false }}; + false, false, false, true, false }, + { "telnet", "telnet://", 23, true, true, false, true, true, true, true, + false } }; +// static inline INetURLObject::SchemeInfo const & INetURLObject::getSchemeInfo(INetProtocol eTheScheme) { @@ -2050,6 +2054,7 @@ INetURLObject::getPrefix(sal_Unicode const *& rBegin, PrefixInfo::EXTERNAL }, { "staroffice:", "private:", INET_PROT_PRIV_SOFFICE, PrefixInfo::EXTERNAL }, + { "telnet:", 0, INET_PROT_TELNET, PrefixInfo::OFFICIAL }, { "vim:", "staroffice.vim:", INET_PROT_VIM, PrefixInfo::INTERNAL }, { "vnd.sun.star.cmd:", 0, INET_PROT_VND_SUN_STAR_CMD, @@ -2853,6 +2858,19 @@ bool INetURLObject::parsePath(sal_Unicode const ** pBegin, PART_URIC_NO_SLASH, cEscapePrefix, eCharset, true); } break; + + case INET_PROT_TELNET: + if (pPos < pEnd) + { + if (*pPos != '/' || pEnd - pPos > 1) + { + setInvalid(); + return false; + } + ++pPos; + } + aTheSynPath = '/'; + break; } *pBegin = pPos; @@ -3799,13 +3817,9 @@ bool INetURLObject::ConcatData(INetProtocol eTheScheme, } } UniString aSynPath; - if ( getSchemeInfo().m_bHierarchical - && ( ( rThePath.Len() == 0 ) - || ( rThePath.GetChar(0) != '/' ) - ) - ) + if (getSchemeInfo().m_bHierarchical + && (rThePath.Len() == 0 || rThePath.GetChar(0) != '/')) aSynPath = '/'; - aSynPath += rThePath; m_aPath.set(m_aAbsURIRef, encodeText(aSynPath, false, |