00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024 #include <config.h>
00025 #include "dbus-gutils.h"
00026 #include "dbus-gtest.h"
00027 #include <string.h>
00028
00029 #ifndef DOXYGEN_SHOULD_SKIP_THIS
00030
00031 char**
00032 _dbus_gutils_split_path (const char *path)
00033 {
00034 int len;
00035 char **split;
00036 int n_components;
00037 int i, j, comp;
00038
00039 len = strlen (path);
00040
00041 n_components = 0;
00042 i = 0;
00043 while (i < len)
00044 {
00045 if (path[i] == '/')
00046 n_components += 1;
00047 ++i;
00048 }
00049
00050 split = g_new0 (char*, n_components + 1);
00051
00052 comp = 0;
00053 i = 0;
00054 while (i < len)
00055 {
00056 if (path[i] == '/')
00057 ++i;
00058 j = i;
00059
00060 while (j < len && path[j] != '/')
00061 ++j;
00062
00063
00064 g_assert (i < j);
00065 g_assert (path[i] != '/');
00066 g_assert (j == len || path[j] == '/');
00067
00068 split[comp] = g_strndup (&path[i], j - i + 1);
00069
00070 split[comp][j-i] = '\0';
00071
00072 ++comp;
00073 i = j;
00074 }
00075 g_assert (i == len);
00076
00077 return split;
00078 }
00079
00080 #ifdef DBUS_BUILD_TESTS
00081
00087 dbus_bool_t
00088 _dbus_gutils_test (const char *test_data_dir)
00089 {
00090
00091 return TRUE;
00092 }
00093
00094 #endif
00095
00096 #endif