|
|
@ -1,6 +1,6 @@ |
|
|
|
// -*- mode: cpp; mode: fold -*-
|
|
|
|
// Description /*{{{*/
|
|
|
|
// $Id: strutl.cc,v 1.29 1999/08/28 01:49:08 jgg Exp $
|
|
|
|
// $Id: strutl.cc,v 1.30 1999/10/17 07:30:23 jgg Exp $
|
|
|
|
/* ######################################################################
|
|
|
|
|
|
|
|
String Util - Some usefull string functions. |
|
|
@ -326,11 +326,14 @@ string SubstVar(string Str,string Subst,string Contents) |
|
|
|
file name should be unique and never occur again for a different file */ |
|
|
|
string URItoFileName(string URI) |
|
|
|
{ |
|
|
|
string::const_iterator I = URI.begin() + URI.find(':') + 1; |
|
|
|
for (; I < URI.end() && *I == '/'; I++); |
|
|
|
|
|
|
|
// Nuke 'sensitive' items
|
|
|
|
::URI U(URI); |
|
|
|
U.User = string(); |
|
|
|
U.Password = string(); |
|
|
|
U.Access = ""; |
|
|
|
|
|
|
|
// "\x00-\x20{}|\\\\^\\[\\]<>\"\x7F-\xFF";
|
|
|
|
URI = QuoteString(string(I,URI.end() - I),"\\|{}[]<>\"^~_=!@#$%^&*"); |
|
|
|
URI = QuoteString(U,"\\|{}[]<>\"^~_=!@#$%^&*"); |
|
|
|
string::iterator J = URI.begin(); |
|
|
|
for (; J != URI.end(); J++) |
|
|
|
if (*J == '/') |
|
|
@ -809,17 +812,24 @@ void URI::CopyFrom(string U) |
|
|
|
/* */ |
|
|
|
URI::operator string() |
|
|
|
{ |
|
|
|
string Res = Access + ':'; |
|
|
|
string Res; |
|
|
|
|
|
|
|
if (Access.empty() == false) |
|
|
|
Res = Access + ':'; |
|
|
|
|
|
|
|
if (Host.empty() == false) |
|
|
|
{ |
|
|
|
Res += "//"; |
|
|
|
if (Access.empty() == false) |
|
|
|
Res += "//"; |
|
|
|
|
|
|
|
if (User.empty() == false) |
|
|
|
{ |
|
|
|
Res += "//" + User; |
|
|
|
Res += User; |
|
|
|
if (Password.empty() == false) |
|
|
|
Res += ":" + Password; |
|
|
|
Res += "@"; |
|
|
|
} |
|
|
|
|
|
|
|
Res += Host; |
|
|
|
if (Port != 0) |
|
|
|
{ |
|
|
|