]> Git Repo - binutils.git/blob - gdbsupport/xml-utils.c
Move gdbsupport to the top level
[binutils.git] / gdbsupport / xml-utils.c
1 /* Shared helper routines for manipulating XML.
2
3    Copyright (C) 2006-2020 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 /* See xml-utils.h.  */
24
25 std::string
26 xml_escape_text (const char *text)
27 {
28   std::string result;
29
30   xml_escape_text_append (&result, text);
31
32   return result;
33 }
34
35 /* See xml-utils.h.  */
36
37 void
38 xml_escape_text_append (std::string *result, const char *text)
39 {
40   /* Expand the result.  */
41   for (int i = 0; text[i] != '\0'; i++)
42     switch (text[i])
43       {
44       case '\'':
45         *result += "&apos;";
46         break;
47       case '\"':
48         *result += "&quot;";
49         break;
50       case '&':
51         *result += "&amp;";
52         break;
53       case '<':
54         *result += "&lt;";
55         break;
56       case '>':
57         *result += "&gt;";
58         break;
59       default:
60         *result += text[i];
61         break;
62       }
63 }
This page took 0.026975 seconds and 4 git commands to generate.