aboutsummaryrefslogtreecommitdiff
path: root/hardinfo/gg_key_file_parse_string_as_value.c
diff options
context:
space:
mode:
authorbigbear <ns@bigbear.dk>2024-02-08 19:52:52 +0100
committerbigbear <ns@bigbear.dk>2024-02-08 19:52:52 +0100
commit9a05f56e1bf36abab41d12f92f2c75266c44bd4a (patch)
treef9ac600d137939dd484732515363a2337bdc6535 /hardinfo/gg_key_file_parse_string_as_value.c
parent0f5dea06fa62062c7e98b36945a63aae7835a80a (diff)
Clean - HARDINFO2 BASE
Diffstat (limited to 'hardinfo/gg_key_file_parse_string_as_value.c')
-rw-r--r--hardinfo/gg_key_file_parse_string_as_value.c111
1 files changed, 0 insertions, 111 deletions
diff --git a/hardinfo/gg_key_file_parse_string_as_value.c b/hardinfo/gg_key_file_parse_string_as_value.c
deleted file mode 100644
index 7e871bc1..00000000
--- a/hardinfo/gg_key_file_parse_string_as_value.c
+++ /dev/null
@@ -1,111 +0,0 @@
-/* From: gkeyfile.c - key file parser
- *
- * Copyright 2004 Red Hat, Inc.
- * Copyright 2009-2010 Collabora Ltd.
- * Copyright 2009 Nokia Corporation
- *
- * Written by Ray Strode <rstrode@redhat.com>
- * Matthias Clasen <mclasen@redhat.com>
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library 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
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this library; if not, see <http://www.gnu.org/licenses/>.
- */
-
-#include <glib.h>
-
-gchar *
-gg_key_file_parse_string_as_value (const gchar *string, const gchar list_separator)
-{
- gchar *value, *p, *q;
- gsize length;
- gboolean parsing_leading_space;
-
- length = strlen (string) + 1;
-
- /* Worst case would be that every character needs to be escaped.
- * In other words every character turns to two characters. */
- value = g_new (gchar, 2 * length);
-
- p = (gchar *) string;
- q = value;
- parsing_leading_space = TRUE;
- while (p < (string + length - 1))
- {
- gchar escaped_character[3] = { '\\', 0, 0 };
-
- switch (*p)
- {
- case ' ':
- if (parsing_leading_space)
- {
- escaped_character[1] = 's';
- strcpy (q, escaped_character);
- q += 2;
- }
- else
- {
- *q = *p;
- q++;
- }
- break;
- case '\t':
- if (parsing_leading_space)
- {
- escaped_character[1] = 't';
- strcpy (q, escaped_character);
- q += 2;
- }
- else
- {
- *q = *p;
- q++;
- }
- break;
- case '\n':
- escaped_character[1] = 'n';
- strcpy (q, escaped_character);
- q += 2;
- break;
- case '\r':
- escaped_character[1] = 'r';
- strcpy (q, escaped_character);
- q += 2;
- break;
- case '\\':
- escaped_character[1] = '\\';
- strcpy (q, escaped_character);
- q += 2;
- parsing_leading_space = FALSE;
- break;
- default:
- if (list_separator && *p == list_separator)
- {
- escaped_character[1] = list_separator;
- strcpy (q, escaped_character);
- q += 2;
- parsing_leading_space = TRUE;
- }
- else
- {
- *q = *p;
- q++;
- parsing_leading_space = FALSE;
- }
- break;
- }
- p++;
- }
- *q = '\0';
-
- return value;
-}