1 // Generated by gmmproc 2.64.2 -- DO NOT MODIFY!
2 
3 
4 #include <glibmm.h>
5 
6 #include <glibmm/miscutils.h>
7 #include <glibmm/private/miscutils_p.h>
8 
9 
10 /* Copyright (C) 2002 The gtkmm Development Team
11  *
12  * This library is free software; you can redistribute it and/or
13  * modify it under the terms of the GNU Lesser General Public
14  * License as published by the Free Software Foundation; either
15  * version 2.1 of the License, or (at your option) any later version.
16  *
17  * This library is distributed in the hope that it will be useful,
18  * but WITHOUT ANY WARRANTY; without even the implied warranty of
19  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
20  * Lesser General Public License for more details.
21  *
22  * You should have received a copy of the GNU Lesser General Public
23  * License along with this library.  If not, see <http://www.gnu.org/licenses/>.
24  */
25 
26 #include <cstddef>
27 #include <cstring>
28 
29 #include <glibmm/miscutils.h>
30 #include <glibmm/utility.h>
31 #include <glib.h>
32 
33 namespace Glib
34 {
35 
36 Glib::ustring
get_application_name()37 get_application_name()
38 {
39   return convert_const_gchar_ptr_to_ustring(g_get_application_name());
40 }
41 
42 void
set_application_name(const Glib::ustring & application_name)43 set_application_name(const Glib::ustring& application_name)
44 {
45   g_set_application_name(application_name.c_str());
46 }
47 
48 std::string
get_prgname()49 get_prgname()
50 {
51   return convert_const_gchar_ptr_to_stdstring(g_get_prgname());
52 }
53 
54 void
set_prgname(const std::string & prgname)55 set_prgname(const std::string& prgname)
56 {
57   g_set_prgname(prgname.c_str());
58 }
59 
60 std::string
getenv(const std::string & variable,bool & found)61 getenv(const std::string& variable, bool& found)
62 {
63   const char* const value = g_getenv(variable.c_str());
64   found = (value != nullptr);
65   return convert_const_gchar_ptr_to_stdstring(value);
66 }
67 
68 std::string
getenv(const std::string & variable)69 getenv(const std::string& variable)
70 {
71   return convert_const_gchar_ptr_to_stdstring(g_getenv(variable.c_str()));
72 }
73 
74 bool
setenv(const std::string & variable,const std::string & value,bool overwrite)75 setenv(const std::string& variable, const std::string& value, bool overwrite)
76 {
77   return g_setenv(variable.c_str(), value.c_str(), overwrite);
78 }
79 
80 void
unsetenv(const std::string & variable)81 unsetenv(const std::string& variable)
82 {
83   g_unsetenv(variable.c_str());
84 }
85 
86 Glib::ArrayHandle<std::string>
listenv()87 listenv()
88 {
89   char** value = g_listenv();
90   char** end = value;
91   while (*end)
92   {
93     ++end;
94   }
95   return Glib::ArrayHandle<std::string>(value, end - value, Glib::OWNERSHIP_DEEP);
96 }
97 
98 std::string
get_user_name()99 get_user_name()
100 {
101   return convert_const_gchar_ptr_to_stdstring(g_get_user_name());
102 }
103 
104 std::string
get_real_name()105 get_real_name()
106 {
107   return convert_const_gchar_ptr_to_stdstring(g_get_real_name());
108 }
109 
110 Glib::ustring
get_host_name()111 get_host_name()
112 {
113   return convert_const_gchar_ptr_to_ustring(g_get_host_name());
114 }
115 
116 std::string
get_home_dir()117 get_home_dir()
118 {
119   return convert_const_gchar_ptr_to_stdstring(g_get_home_dir());
120 }
121 
122 std::string
get_tmp_dir()123 get_tmp_dir()
124 {
125   return convert_const_gchar_ptr_to_stdstring(g_get_tmp_dir());
126 }
127 
128 std::string
get_current_dir()129 get_current_dir()
130 {
131   return convert_return_gchar_ptr_to_stdstring(g_get_current_dir());
132 }
133 
134 #ifndef GLIBMM_DISABLE_DEPRECATED
135 std::string
get_user_special_dir(GUserDirectory directory)136 get_user_special_dir(GUserDirectory directory)
137 {
138   return convert_const_gchar_ptr_to_stdstring(g_get_user_special_dir(directory));
139 }
140 #endif // GLIBMM_DISABLE_DEPRECATED
141 
142 std::string
get_user_special_dir(UserDirectory directory)143 get_user_special_dir(UserDirectory directory)
144 {
145   return convert_const_gchar_ptr_to_stdstring(g_get_user_special_dir((GUserDirectory)directory));
146 }
147 
148 std::string
get_user_data_dir()149 get_user_data_dir()
150 {
151   return convert_const_gchar_ptr_to_stdstring(g_get_user_data_dir());
152 }
153 
154 std::string
get_user_config_dir()155 get_user_config_dir()
156 {
157   return convert_const_gchar_ptr_to_stdstring(g_get_user_config_dir());
158 }
159 
160 std::vector<std::string>
get_system_data_dirs()161 get_system_data_dirs()
162 {
163   // TODO: Use a utility function:
164   std::vector<std::string> result;
165   const char* const* cresult = g_get_system_data_dirs();
166   if (!cresult)
167     return result;
168 
169   for (const gchar* const* iter = cresult; *iter != nullptr; ++iter)
170   {
171     result.emplace_back(convert_const_gchar_ptr_to_stdstring(*iter));
172   }
173 
174   return result;
175 }
176 
177 std::vector<std::string>
get_system_config_dirs()178 get_system_config_dirs()
179 {
180   // TODO: Use a utility function:
181   std::vector<std::string> result;
182   const char* const* cresult = g_get_system_config_dirs();
183   if (!cresult)
184     return result;
185 
186   for (const gchar* const* iter = cresult; *iter != nullptr; ++iter)
187   {
188     result.emplace_back(convert_const_gchar_ptr_to_stdstring(*iter));
189   }
190 
191   return result;
192 }
193 
194 std::string
get_user_cache_dir()195 get_user_cache_dir()
196 {
197   return convert_const_gchar_ptr_to_stdstring(g_get_user_cache_dir());
198 }
199 
200 std::string
get_user_runtime_dir()201 get_user_runtime_dir()
202 {
203   return convert_const_gchar_ptr_to_stdstring(g_get_user_runtime_dir());
204 }
205 
206 bool
path_is_absolute(const std::string & filename)207 path_is_absolute(const std::string& filename)
208 {
209   return (g_path_is_absolute(filename.c_str()) != 0);
210 }
211 
212 std::string
path_skip_root(const std::string & filename)213 path_skip_root(const std::string& filename)
214 {
215   // g_path_skip_root() returns a pointer _into_ the argument string,
216   // or NULL if there was no root component.
217   return convert_const_gchar_ptr_to_stdstring(g_path_skip_root(filename.c_str()));
218 }
219 
220 std::string
path_get_basename(const std::string & filename)221 path_get_basename(const std::string& filename)
222 {
223   return convert_return_gchar_ptr_to_stdstring(g_path_get_basename(filename.c_str()));
224 }
225 
226 std::string
path_get_dirname(const std::string & filename)227 path_get_dirname(const std::string& filename)
228 {
229   return convert_return_gchar_ptr_to_stdstring(g_path_get_dirname(filename.c_str()));
230 }
231 
232 std::string
canonicalize_filename(StdStringView filename,StdStringView relative_to)233 canonicalize_filename(StdStringView filename, StdStringView relative_to)
234 {
235   return convert_return_gchar_ptr_to_stdstring(g_canonicalize_filename(
236     filename.c_str(), relative_to.c_str()));
237 }
238 
239 std::string
build_filename(const Glib::ArrayHandle<std::string> & elements)240 build_filename(const Glib::ArrayHandle<std::string>& elements)
241 {
242   return convert_return_gchar_ptr_to_stdstring(
243     g_build_filenamev(const_cast<char**>(elements.data())));
244 }
245 
246 std::string
build_filename(const std::string & elem1,const std::string & elem2)247 build_filename(const std::string& elem1, const std::string& elem2)
248 {
249   return convert_return_gchar_ptr_to_stdstring(
250     g_build_filename(elem1.c_str(), elem2.c_str(), nullptr));
251 }
252 
253 std::string
build_filename(const std::string & elem1,const std::string & elem2,const std::string & elem3)254 build_filename(const std::string& elem1, const std::string& elem2, const std::string& elem3)
255 {
256   return convert_return_gchar_ptr_to_stdstring(
257     g_build_filename(elem1.c_str(), elem2.c_str(), elem3.c_str(), nullptr));
258 }
259 
260 std::string
build_filename(const std::string & elem1,const std::string & elem2,const std::string & elem3,const std::string & elem4)261 build_filename(const std::string& elem1, const std::string& elem2, const std::string& elem3,
262   const std::string& elem4)
263 {
264   return convert_return_gchar_ptr_to_stdstring(
265     g_build_filename(elem1.c_str(), elem2.c_str(), elem3.c_str(), elem4.c_str(), nullptr));
266 }
267 
268 std::string
build_filename(const std::string & elem1,const std::string & elem2,const std::string & elem3,const std::string & elem4,const std::string & elem5)269 build_filename(const std::string& elem1, const std::string& elem2, const std::string& elem3,
270   const std::string& elem4, const std::string& elem5)
271 {
272   return convert_return_gchar_ptr_to_stdstring(g_build_filename(
273     elem1.c_str(), elem2.c_str(), elem3.c_str(), elem4.c_str(), elem5.c_str(), nullptr));
274 }
275 
276 std::string
build_filename(const std::string & elem1,const std::string & elem2,const std::string & elem3,const std::string & elem4,const std::string & elem5,const std::string & elem6)277 build_filename(const std::string& elem1, const std::string& elem2, const std::string& elem3,
278   const std::string& elem4, const std::string& elem5, const std::string& elem6)
279 {
280   return convert_return_gchar_ptr_to_stdstring(g_build_filename(elem1.c_str(), elem2.c_str(),
281     elem3.c_str(), elem4.c_str(), elem5.c_str(), elem6.c_str(), nullptr));
282 }
283 
284 std::string
build_filename(const std::string & elem1,const std::string & elem2,const std::string & elem3,const std::string & elem4,const std::string & elem5,const std::string & elem6,const std::string & elem7)285 build_filename(const std::string& elem1, const std::string& elem2, const std::string& elem3,
286   const std::string& elem4, const std::string& elem5, const std::string& elem6,
287   const std::string& elem7)
288 {
289   return convert_return_gchar_ptr_to_stdstring(g_build_filename(elem1.c_str(), elem2.c_str(),
290     elem3.c_str(), elem4.c_str(), elem5.c_str(), elem6.c_str(), elem7.c_str(), nullptr));
291 }
292 
293 std::string
build_filename(const std::string & elem1,const std::string & elem2,const std::string & elem3,const std::string & elem4,const std::string & elem5,const std::string & elem6,const std::string & elem7,const std::string & elem8)294 build_filename(const std::string& elem1, const std::string& elem2, const std::string& elem3,
295   const std::string& elem4, const std::string& elem5, const std::string& elem6,
296   const std::string& elem7, const std::string& elem8)
297 {
298   return convert_return_gchar_ptr_to_stdstring(
299     g_build_filename(elem1.c_str(), elem2.c_str(), elem3.c_str(), elem4.c_str(), elem5.c_str(),
300       elem6.c_str(), elem7.c_str(), elem8.c_str(), nullptr));
301 }
302 
303 std::string
build_filename(const std::string & elem1,const std::string & elem2,const std::string & elem3,const std::string & elem4,const std::string & elem5,const std::string & elem6,const std::string & elem7,const std::string & elem8,const std::string & elem9)304 build_filename(const std::string& elem1, const std::string& elem2, const std::string& elem3,
305   const std::string& elem4, const std::string& elem5, const std::string& elem6,
306   const std::string& elem7, const std::string& elem8, const std::string& elem9)
307 {
308   return convert_return_gchar_ptr_to_stdstring(
309     g_build_filename(elem1.c_str(), elem2.c_str(), elem3.c_str(), elem4.c_str(), elem5.c_str(),
310       elem6.c_str(), elem7.c_str(), elem8.c_str(), elem9.c_str(), nullptr));
311 }
312 
313 std::string
build_path(const std::string & separator,const Glib::ArrayHandle<std::string> & elements)314 build_path(const std::string& separator, const Glib::ArrayHandle<std::string>& elements)
315 {
316   return convert_return_gchar_ptr_to_stdstring(
317     g_build_pathv(separator.c_str(), const_cast<char**>(elements.data())));
318 }
319 
320 std::string
find_program_in_path(const std::string & program)321 find_program_in_path(const std::string& program)
322 {
323   return convert_return_gchar_ptr_to_stdstring(g_find_program_in_path(program.c_str()));
324 }
325 
326 Glib::ustring
format_size(guint64 size,FormatSizeFlags flags)327 format_size(guint64 size, FormatSizeFlags flags)
328 {
329   return convert_return_gchar_ptr_to_ustring(g_format_size_full(size, (GFormatSizeFlags)flags));
330 }
331 
332 } // namespace Glib
333 
334 namespace
335 {
336 } // anonymous namespace
337 
338 
339