summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Makefile.am4
-rw-r--r--src/libsystemd-bus/sd-utf8.c36
-rw-r--r--src/shared/utf8.c4
-rw-r--r--src/systemd/sd-utf8.h28
4 files changed, 70 insertions, 2 deletions
diff --git a/Makefile.am b/Makefile.am
index 27fd996024..ce5ff6392d 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -1964,6 +1964,7 @@ libsystemd_bus_la_SOURCES = \
src/systemd/sd-bus-protocol.h \
src/systemd/sd-bus-vtable.h \
src/systemd/sd-memfd.h \
+ src/systemd/sd-utf8.h \
src/libsystemd-bus/sd-bus.c \
src/libsystemd-bus/bus-control.c \
src/libsystemd-bus/bus-control.h \
@@ -1995,7 +1996,8 @@ libsystemd_bus_la_SOURCES = \
src/libsystemd-bus/kdbus.h \
src/libsystemd-bus/sd-memfd.c \
src/libsystemd-bus/bus-util.c \
- src/libsystemd-bus/bus-util.h
+ src/libsystemd-bus/bus-util.h \
+ src/libsystemd-bus/sd-utf8.c
libsystemd_bus_la_LIBADD = \
libsystemd-id128-internal.la \
diff --git a/src/libsystemd-bus/sd-utf8.c b/src/libsystemd-bus/sd-utf8.c
new file mode 100644
index 0000000000..6c44340e20
--- /dev/null
+++ b/src/libsystemd-bus/sd-utf8.c
@@ -0,0 +1,36 @@
+/*-*- Mode: C; c-basic-offset: 8; indent-tabs-mode: nil -*-*/
+
+/***
+ This file is part of systemd.
+
+ Copyright 2013 Lennart Poettering
+
+ systemd 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.
+
+ systemd 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 systemd; If not, see <http://www.gnu.org/licenses/>.
+***/
+
+#include "util.h"
+#include "utf8.h"
+#include "sd-utf8.h"
+
+const char *sd_utf8_is_valid(const char *s) {
+ assert_return(s, NULL);
+
+ return utf8_is_valid(s);
+}
+
+const char *sd_ascii_is_valid(const char *s) {
+ assert_return(s, NULL);
+
+ return ascii_is_valid(s);
+}
diff --git a/src/shared/utf8.c b/src/shared/utf8.c
index aedf6e29ea..6e5ba9abf4 100644
--- a/src/shared/utf8.c
+++ b/src/shared/utf8.c
@@ -161,7 +161,9 @@ const char *utf8_is_valid(const char *str) {
assert(str);
for (p = (const uint8_t*) str; *p; ) {
- int len = utf8_encoded_valid_unichar((const char *)p);
+ int len;
+
+ len = utf8_encoded_valid_unichar((const char *)p);
if (len < 0)
return NULL;
diff --git a/src/systemd/sd-utf8.h b/src/systemd/sd-utf8.h
new file mode 100644
index 0000000000..039c36e325
--- /dev/null
+++ b/src/systemd/sd-utf8.h
@@ -0,0 +1,28 @@
+/*-*- Mode: C; c-basic-offset: 8; indent-tabs-mode: nil -*-*/
+
+#ifndef fooutf8hfoo
+#define fooutf8hfoo
+
+/***
+ This file is part of systemd.
+
+ Copyright 2013 Lennart Poettering
+
+ systemd 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.
+
+ systemd 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 systemd; If not, see <http://www.gnu.org/licenses/>.
+***/
+
+const char *sd_utf8_is_valid(const char *s);
+const char *sd_ascii_is_valid(const char *s);
+
+#endif