/*
DBOX Module
Copyright (C) 1994-2000 Daniel Kroening <kroening@handshake.de>
Purpose:
*/
#include <ctype.h>
#include <string>
#include <htmltools.h>
std::string htmlize_string(const std::string &s)
{
std::string dest;
for(unsigned i=0; i<s.size(); i++)
{
switch(s[i])
{
case 0: break;
case '&': dest+="&"; break;
case '<': dest+="<"; break;
case '>': dest+=">"; break;
case '"': dest+="""; break;
default:
dest+=s[i];
}
}
return dest;
}
static char hex_code[]="0123456789abcdef";
std::string urlize_string(const std::string &s)
{
std::string dest;
for(unsigned i=0; i<s.size(); i++)
{
register char ch=s[i];
if(!isalnum(ch) && ch!='/' && ch!='.' && ch!=':' && ch!='-')
{
dest+='%';
dest+=hex_code[(ch>>4)&0xf];
dest+=hex_code[ch&0xf];
}
else
dest+=ch;
}
return dest;
}
syntax highlighted by Code2HTML, v. 0.9.1