GDBserver
xml-utils.c
Go to the documentation of this file.
1 /* Shared helper routines for manipulating XML.
2 
3  Copyright (C) 2006-2018 Free Software Foundation, Inc.
4 
5  This file is part of GDB.
6 
7  This program is free software; you can redistribute it and/or modify
8  it under the terms of the GNU General Public License as published by
9  the Free Software Foundation; either version 3 of the License, or
10  (at your option) any later version.
11 
12  This program is distributed in the hope that it will be useful,
13  but WITHOUT ANY WARRANTY; without even the implied warranty of
14  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15  GNU General Public License for more details.
16 
17  You should have received a copy of the GNU General Public License
18  along with this program. If not, see <http://www.gnu.org/licenses/>. */
19 
20 #include "common-defs.h"
21 #include "xml-utils.h"
22 
23 /* Return a string with special characters from TEXT replaced by entity
24  references. */
25 
27 xml_escape_text (const char *text)
28 {
29  std::string result;
30 
31  /* Expand the result. */
32  for (int i = 0; text[i] != '\0'; i++)
33  switch (text[i])
34  {
35  case '\'':
36  result += "&apos;";
37  break;
38  case '\"':
39  result += "&quot;";
40  break;
41  case '&':
42  result += "&amp;";
43  break;
44  case '<':
45  result += "&lt;";
46  break;
47  case '>':
48  result += "&gt;";
49  break;
50  default:
51  result += text[i];
52  break;
53  }
54 
55  return result;
56 }
const char * string
Definition: signals.c:50
std::string xml_escape_text(const char *text)
Definition: xml-utils.c:27