Greenbone Vulnerability Management Libraries  10.0.0
strings.c
Go to the documentation of this file.
1 /* Copyright (C) 2009-2019 Greenbone Networks GmbH
2  *
3  * SPDX-License-Identifier: GPL-2.0-or-later
4  *
5  * This program is free software; you can redistribute it and/or
6  * modify it under the terms of the GNU General Public License
7  * as published by the Free Software Foundation; either version 2
8  * of the License, or (at your option) any later version.
9  *
10  * This program is distributed in the hope that it will be useful,
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13  * GNU General Public License for more details.
14  *
15  * You should have received a copy of the GNU General Public License
16  * along with this program; if not, write to the Free Software
17  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
18  */
19 
25 #include "strings.h"
26 
27 #include <assert.h> /* for assert */
28 #include <glib.h> /* for g_free, g_strconcat, gchar, g_strdup, g_strndup */
29 
43 void
44 gvm_append_string (gchar **var, const gchar *string)
45 {
46  if (*var)
47  {
48  char *old = *var;
49  *var = g_strconcat (old, string, NULL);
50  g_free (old);
51  }
52  else
53  *var = g_strdup (string);
54 }
55 
73 void
74 gvm_append_text (gchar **var, const gchar *string, gsize length)
75 {
76  if (*var)
77  {
78  char *old = *var;
79  *var = g_strconcat (old, string, NULL);
80  g_free (old);
81  }
82  else
83  *var = g_strndup (string, length);
84 }
85 
94 void
95 gvm_free_string_var (gchar **var)
96 {
97  g_free (*var);
98  *var = NULL;
99 }
100 
115 char *
116 gvm_strip_space (char *string, char *end)
117 {
118  assert (string <= end);
119  if (string >= end)
120  return string;
121  end--;
122  while (string[0] == ' ' || string[0] == '\n')
123  {
124  string++;
125  if (string >= end)
126  {
127  end[0] = '\0';
128  return end;
129  }
130  }
131 
132  /* Here string is < end. */
133  if (end[0] == ' ' || end[0] == '\n')
134  {
135  end--;
136  while (end >= string && (end[0] == ' ' || end[0] == '\n'))
137  {
138  end--;
139  }
140  end[1] = '\0';
141  }
142  return string;
143 }
String utilities.
void gvm_append_string(gchar **var, const gchar *string)
Append a string to a string variable.
Definition: strings.c:44
void gvm_free_string_var(gchar **var)
Free a string variable.
Definition: strings.c:95
void gvm_append_text(gchar **var, const gchar *string, gsize length)
Append a string of a known length to a string variable.
Definition: strings.c:74
char * gvm_strip_space(char *string, char *end)
"Strip" space and newline characters from either end of some memory.
Definition: strings.c:116