mirror of
https://github.com/ElvishArtisan/rivendell.git
synced 2025-04-24 09:28:54 +02:00
* Removed all CVS tags. * Removed 'const char *name' parameter from all QObject contructors.
175 lines
2.7 KiB
C++
175 lines
2.7 KiB
C++
// rdescape_string.cpp
|
||
//
|
||
// Escape non-valid characters in a string.
|
||
//
|
||
// (C) Copyright 2002-2005,2016 Fred Gleason <fredg@paravelsystems.com>
|
||
//
|
||
// This program is free software; you can redistribute it and/or modify
|
||
// it under the terms of the GNU General Public License version 2 as
|
||
// published by the Free Software Foundation.
|
||
//
|
||
// This program is distributed in the hope that it will be useful,
|
||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||
// GNU General Public License for more details.
|
||
//
|
||
// You should have received a copy of the GNU General Public
|
||
// License along with this program; if not, write to the Free Software
|
||
// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||
//
|
||
|
||
#include <vector>
|
||
|
||
#include <rdescape_string.h>
|
||
|
||
QString RDEscapeString(QString const &str)
|
||
{
|
||
QString res;
|
||
|
||
for(unsigned i=0;i<str.length();i++) {
|
||
switch(((const char *)str)[i]) {
|
||
case '(':
|
||
res+=QString("\\\(");
|
||
break;
|
||
|
||
case ')':
|
||
res+=QString("\\)");
|
||
break;
|
||
|
||
case '{':
|
||
res+=QString("\\\{");
|
||
break;
|
||
|
||
case '"':
|
||
res+=QString("\\\"");
|
||
break;
|
||
|
||
case '`':
|
||
res+=QString("\\`");
|
||
break;
|
||
|
||
case '[':
|
||
res+=QString("\\\[");
|
||
break;
|
||
|
||
case '\'':
|
||
res+=QString("\\\'");
|
||
break;
|
||
|
||
case '\\':
|
||
res+=QString("\\");
|
||
res+=QString("\\");
|
||
break;
|
||
|
||
case '?':
|
||
res+=QString("\\\?");
|
||
break;
|
||
|
||
case ' ':
|
||
res+=QString("\\ ");
|
||
break;
|
||
|
||
case '&':
|
||
res+=QString("\\&");
|
||
break;
|
||
|
||
case ';':
|
||
res+=QString("\\;");
|
||
break;
|
||
|
||
case '<':
|
||
res+=QString("\\<");
|
||
break;
|
||
|
||
case '>':
|
||
res+=QString("\\>");
|
||
break;
|
||
|
||
case '|':
|
||
res+=QString("\\|");
|
||
break;
|
||
|
||
default:
|
||
res+=((const char *)str)[i];
|
||
break;
|
||
}
|
||
}
|
||
|
||
/*
|
||
for(unsigned i=0;i<str.length();i++) {
|
||
switch(((const char *)str)[i]) {
|
||
case '(':
|
||
res+=QString("\\\(");
|
||
break;
|
||
|
||
case ')':
|
||
res+=QString("\\)");
|
||
break;
|
||
|
||
case '{':
|
||
res+=QString("\\\{");
|
||
break;
|
||
|
||
case '"':
|
||
res+=QString("\\\"");
|
||
break;
|
||
|
||
case '´':
|
||
res+=QString("\\´");
|
||
break;
|
||
|
||
case '`':
|
||
res+=QString("\\`");
|
||
break;
|
||
|
||
case '[':
|
||
res+=QString("\\\[");
|
||
break;
|
||
|
||
case '\'':
|
||
res+=QString("\\\'");
|
||
break;
|
||
|
||
case '\\':
|
||
res+=QString("\\");
|
||
res+=QString("\\");
|
||
break;
|
||
|
||
case '?':
|
||
res+=QString("\\\?");
|
||
break;
|
||
|
||
case ' ':
|
||
res+=QString("\\ ");
|
||
break;
|
||
|
||
case '&':
|
||
res+=QString("\\&");
|
||
break;
|
||
|
||
case ';':
|
||
res+=QString("\\;");
|
||
break;
|
||
|
||
case '<':
|
||
res+=QString("\\<");
|
||
break;
|
||
|
||
case '>':
|
||
res+=QString("\\>");
|
||
break;
|
||
|
||
case '|':
|
||
res+=QString("\\|");
|
||
break;
|
||
|
||
default:
|
||
res+=((const char *)str)[i];
|
||
break;
|
||
}
|
||
}
|
||
*/
|
||
|
||
return res;
|
||
}
|