1[options]
2girs_directories = ["../gir-files"]
3library = "GLib"
4version = "2.0"
5min_cfg_version = "2.48"
6target_path = "."
7work_mode = "normal"
8single_version_file = true
9deprecate_by_min_version = true
10trust_return_value_nullability = true
11
12generate = [
13    "GLib.DateDay",
14    "GLib.DateMonth",
15    "GLib.DateWeekday",
16    "GLib.DateYear",
17    "GLib.FileSetContentsFlags",
18    "GLib.FormatSizeFlags",
19    "GLib.KeyFileError",
20    "GLib.KeyFileFlags",
21    "GLib.LogLevelFlags",
22    "GLib.OptionArg",
23    "GLib.OptionFlags",
24    "GLib.SeekType",
25    "GLib.SpawnFlags",
26    "GLib.Time",
27    "GLib.TimeType",
28    "GLib.TimeSpan",
29    "GLib.FileTest",
30    "GLib.IOCondition",
31    "GLib.UriError",
32    "GLib.UriFlags",
33    "GLib.UriHideFlags",
34    "GLib.UriParamsFlags",
35]
36
37ignore = [
38]
39
40manual = [
41    "GLib.Bytes",
42    "GLib.ByteArray",
43    "GLib.Error",
44    "GLib.Variant",
45    "GLib.VariantType",
46    "GLib.UserDirectory",
47    "GObject.Object",
48]
49
50[[object]]
51name = "GLib.*"
52status = "generate"
53    [[object.function]]
54    name = "propagate_error"
55    #empty first parameter
56    ignore = true
57    [[object.function]]
58    name = "set_error_literal"
59    #empty first parameter
60    ignore = true
61    [[object.function]]
62    pattern = "atomic_.+"
63    ignore = true
64    [[object.function]]
65    pattern = "bit_.*lock"
66    ignore = true
67    [[object.function]]
68    name = "get_filename_charsets"
69    #string
70    ignore = true
71    [[object.function]]
72    pattern = "str.+v"
73    #string
74    ignore = true
75    [[object.function]]
76    name = "strv_length"
77    #string
78    ignore = true
79    [[object.function]]
80    pattern = "str.+"
81    ignore = true
82    [[object.function]]
83    pattern = "ucs4_.+"
84    ignore = true
85    [[object.function]]
86    pattern = "utf16_.+"
87    ignore = true
88    [[object.function]]
89    pattern = "utf8_.+"
90    ignore = true
91    [[object.function]]
92    pattern = "unichar_.+"
93    ignore = true
94    [[object.function]]
95    pattern = "ascii_.+"
96    ignore = true
97    [[object.function]]
98    name = "assertion_message_error"
99    #Quark
100    ignore = true
101    [[object.function]]
102    name = "assertion_message_expr"
103    ignore = true # function is useless
104    [[object.function]]
105    pattern = "test_.+"
106    ignore = true # functions are useless
107    [[object.function]]
108    pattern = ".+_error_quark"
109    #Quark
110    ignore = true
111    [[object.function]]
112    pattern = "quark_.+_string"
113    #Quark
114    ignore = true
115    [[object.function]]
116    name = "spawn_close_pid"
117    #Pid
118    ignore = true
119    [[object.function]]
120    name = "get_current_dir"
121    #manual
122    ignore = true
123    [[object.function]]
124    pattern = "[gs]et_prgname"
125    #manual pathbuf
126    ignore = true
127    [[object.function]]
128    name = "filename_from_utf8"
129    #not in 64bit lib for Windows
130    ignore = true
131    [[object.function]]
132    name = "get_user_name"
133    #manual pathbuf is_windows_utf8
134    ignore = true
135    [[object.function]]
136    pattern = "[gs]etenv"
137    #manual is_windows_utf8
138    ignore = true
139    [[object.function]]
140    name = "unsetenv"
141    #manual is_windows_utf8
142    ignore = true
143    [[object.function]]
144    name = "filename_to_uri"
145    #manual is_windows_utf8
146    ignore = true
147    [[object.function]]
148    name = "filename_from_uri"
149    #manual is_windows_utf8
150    ignore = true
151    [[object.function]]
152    name = "find_program_in_path"
153    #manual is_windows_utf8
154    ignore = true
155    [[object.function]]
156    name = "get_home_dir"
157    #manual is_windows_utf8
158    ignore = true
159    [[object.function]]
160    name = "get_real_name"
161    #manual pathbuf? is_windows_utf8
162    ignore = true
163    [[object.function]]
164    name = "get_tmp_dir"
165    #manual is_windows_utf8
166    ignore = true
167    [[object.function]]
168    name = "mkstemp"
169    #manual is_windows_utf8
170    ignore = true
171    [[object.function]]
172    name = "strdup"
173    #not needed
174    ignore = true
175    [[object.function]]
176    pattern = "unix_.+"
177    cfg_condition = "unix"
178    [[object.function]]
179    name = "spawn_command_line_async"
180    cfg_condition = "unix"
181        [[object.function.parameter]]
182        name = "command_line"
183        string_type = "os_string"
184    [[object.function]]
185    name = "unix_open_pipe"
186    manual = true
187    [[object.function]]
188    name = "convert_with_fallback"
189    #out param not in .gir
190    ignore = true
191    [[object.function]]
192    name = "unicode_canonical_decomposition"
193    #out param not in .gir
194    ignore = true
195    [[object.function]]
196    name = "unicode_canonical_ordering"
197    #UCS-4 encoded string
198    ignore = true
199    [[object.function]]
200    name = "convert"
201    #unusable
202    ignore = true
203    [[object.function]]
204    name = "filename_to_utf8"
205    #unusable
206    ignore = true
207    [[object.function]]
208    name = "locale_from_utf8"
209    #unusable
210    ignore = true
211    [[object.function]]
212    name = "locale_to_utf8"
213    #unusable
214    ignore = true
215    [[object.function]]
216    name = "child_watch_source_new"
217    # Need manual bindings to be useful
218    ignore = true
219    [[object.function]]
220    name = "idle_source_new"
221    # Need manual bindings to be useful
222    ignore = true
223    [[object.function]]
224    name = "timeout_source_new"
225    # Need manual bindings to be useful
226    ignore = true
227    [[object.function]]
228    name = "timeout_source_new_seconds"
229    # Need manual bindings to be useful
230    ignore = true
231    [[object.function]]
232    name = "unix_signal_source_new"
233    # Need manual bindings to be useful
234    ignore = true
235    [[object.function]]
236    pattern = "unix_fd.*"
237    # Need manual binding for RawFd
238    ignore = true
239    [[object.function]]
240    name = "close"
241    # Need manual binding for RawFd
242    ignore = true
243    [[object.function]]
244    name = "log_writer_is_journald"
245    # Need manual binding for RawFd
246    ignore = true
247    [[object.function]]
248    name = "log_writer_supports_color"
249    # Need manual binding for RawFd
250    ignore = true
251    [[object.function]]
252    name = "unix_set_fd_nonblocking"
253    # Need manual binding for RawFd
254    ignore = true
255    [[object.function]]
256    name = "environ_getenv"
257    # manual input &[OsString]
258    ignore = true
259    [[object.function]]
260    pattern = "environ_(un)?setenv"
261    # unusable
262    ignore = true
263    [[object.function]]
264    name = "get_charset"
265    # boolean return value
266    ignore = true
267    [[object.function]]
268    name = "get_environ"
269        [object.function.return]
270        string_type = "os_string"
271    [[object.function]]
272    name = "listenv"
273        [object.function.return]
274        string_type = "os_string"
275    [[object.function]]
276    name = "shell_parse_argv"
277        [[object.function.parameter]]
278        name = "command_line"
279        string_type = "os_string"
280        [[object.function.parameter]]
281        name = "argvp"
282        string_type = "os_string"
283    [[object.function]]
284    name = "shell_quote"
285        [[object.function.parameter]]
286        name = "unquoted_string"
287        string_type = "os_string"
288        [object.function.return]
289        string_type = "os_string"
290    [[object.function]]
291    name = "shell_unquote"
292        [[object.function.parameter]]
293        name = "quoted_string"
294        string_type = "os_string"
295        [object.function.return]
296        string_type = "os_string"
297    [[object.function]]
298    name = "intern_static_string"
299    ignore = true
300    [[object.function]]
301    name = "intern_string"
302    ignore = true
303    [[object.function]]
304    # Pid conversion issue
305    name = "child_watch_add"
306    ignore = true
307    [[object.function]]
308    # Pid conversion issue
309    name = "child_watch_add_full"
310    ignore = true
311    [[object.function]]
312    name = "idle_add"
313    ignore = true
314    [[object.function]]
315    name = "idle_add_full"
316    ignore = true
317    [[object.function]]
318    name = "timeout_add"
319    ignore = true
320    [[object.function]]
321    name = "timeout_add_full"
322    ignore = true
323    [[object.function]]
324    name = "timeout_add_seconds"
325    ignore = true
326    [[object.function]]
327    name = "timeout_add_seconds_full"
328    ignore = true
329    [[object.function]]
330    name = "unix_signal_add"
331    ignore = true
332    [[object.function]]
333    name = "unix_signal_add_full"
334    ignore = true
335    [[object.function]]
336    pattern = "rc_box_.+"
337    #need manual implementation
338    ignore = true
339    [[object.function]]
340    pattern = "ref_count_.+"
341    #need manual implementation
342    ignore = true
343    [[object.function]]
344    pattern = "ref_string_.+"
345    #need manual implementation
346    ignore = true
347    [[object.function]]
348    name = "spawn_async_with_fds"
349    # generates invalid FDs
350    ignore = true
351    [[object.function]]
352    name = "spawn_async_with_pipes"
353    # generates invalid FDs
354    ignore = true
355    [[object.function]]
356    name = "log_set_handler"
357    # leaks closure
358    ignore = true
359    [[object.function]]
360    name = "log_default_handler"
361    # last argument is unused
362    ignore = true
363    [[object.function]]
364    name = "log_set_handler_full"
365    # from_glib_borrow on non-pointer objects
366    ignore = true
367    [[object.function]]
368    name = "log_set_writer_func"
369    # from_glib_borrow on non-pointer objects
370    ignore = true
371    [[object.function]]
372    name = "log_structured"
373    # implemented with a macro because of var args and weird arguments pairing
374    ignore = true
375    [[object.function]]
376    name = "log"
377    # implemented with a macro because of var args
378    ignore = true
379    [[object.function]]
380    name = "log_set_default_handler"
381    # It returned the old callback, which is problematic
382    ignore = true
383    [[object.function]]
384    name = "log_remove_handler"
385    # Change handler_id parameter type to LogHandlerId
386    ignore = true
387    [[object.function]]
388    name = "log_set_always_fatal"
389    # update of arguments and return type
390    ignore = true
391    [[object.function]]
392    name = "log_variant"
393    # usage of LogLevelFlags
394    ignore = true
395    [[object.function]]
396    name = "log_set_fatal_mask"
397    # update of arguments and return type
398    ignore = true
399    [[object.constant]]
400    pattern = "DIR_SEPARATOR(_S)?"
401    #not cross-platform
402    ignore = true
403    [[object.constant]]
404    pattern = "SEARCHPATH_SEPARATOR(_S)?"
405    #not cross-platform
406    ignore = true
407    [[object.constant]]
408    name = "MODULE_SUFFIX"
409    #not cross-platform
410    ignore = true
411    [[object.constant]]
412    pattern = "GU?INT(16)?(32)?(64)?(PTR)?_FORMAT"
413    #for C printf
414    ignore = true
415    [[object.constant]]
416    pattern = "GU?INT(16)?(32)?(64)?(PTR)?_MODIFIER"
417    #for C printf
418    ignore = true
419    [[object.constant]]
420    pattern = "GS?SIZE_(FORMAT)?(MODIFIER)?"
421    #for C printf
422    ignore = true
423    [[object.constant]]
424    pattern = "GNUC_(PRETTY_)?FUNCTION"
425    #for C printf
426    ignore = true
427    [[object.constant]]
428    pattern = "PID_FORMAT"
429    #for C printf
430    ignore = true
431    [[object.constant]]
432    pattern = "POLLFD_FORMAT"
433    #for C printf
434    ignore = true
435    [[object.function]]
436    name = "variant_get_gtype"
437    # get_type() function that should be used in StaticType impl instead
438    ignore = true
439
440[[object]]
441name = "GLib.Checksum"
442status = "generate"
443concurrency = "send+sync"
444    [[object.function]]
445    name = "get_digest"
446    #wrong array definition
447    manual = true
448    [[object.function]]
449    name = "get_string"
450    #consume
451    manual = true
452
453[[object]]
454name = "GLib.ChecksumType"
455status = "generate"
456    [[object.member]]
457    name = "sha384"
458    version = "2.52"
459
460[[object]]
461name = "GLib.KeyFile"
462status = "generate"
463    [[object.function]]
464    name = "load_from_data_dirs"
465    manual = true
466    [[object.function]]
467    name = "load_from_dirs"
468    manual = true
469    [[object.function]]
470    name = "save_to_file"
471    # file parameter needs to be a PathBuf
472    manual = true
473    [[object.function]]
474    name = "set_locale_string_list"
475    #[&str] to *mut i8
476    ignore = true
477    [[object.function]]
478    name = "set_string_list"
479    #[&str] to *mut i8
480    ignore = true
481    [[object.function]]
482    name = "to_data"
483    manual = true
484    [[object.function]]
485    name = "set_double_list"
486    #wrong array type
487    ignore = true
488    [[object.function]]
489    name = "set_integer_list"
490    #wrong array type
491    ignore = true
492    [[object.function]]
493    name = "get_boolean"
494    #boolean return value needs to be returned
495    manual = true
496    [[object.function]]
497    name = "has_key"
498    #boolean return value needs to be returned
499    manual = true
500    [[object.function]]
501    name = "get_boolean_list"
502    #boolean array needs to be converted to Vec<bool>
503    manual = true
504    [[object.function]]
505    name = "get_string"
506    # can return an error but still a value to be freed
507    manual = true
508    [[object.function]]
509    name = "get_string_list"
510    # can return an error but still a value to be freed
511    manual = true
512    [[object.function]]
513    name = "get_locale_string"
514    # can return an error but still a value to be freed
515    manual = true
516    [[object.function]]
517    name = "get_locale_string_list"
518    # can return an error but still a value to be freed
519    manual = true
520    [[object.function]]
521    name = "get_comment"
522        [[object.function.parameter]]
523        name = "key"
524        nullable = true
525
526    # Fixed in GLib 2.66.2
527    [[object.function]]
528    name = "get_start_group"
529        [object.function.return]
530        nullable = true
531
532[[object]]
533name = "GLib.DateTime"
534status = "generate"
535concurrency = "send+sync"
536    [[object.function]]
537    pattern = ".+"
538        [object.function.return]
539        nullable_return_is_error = "Invalid date"
540
541[[object]]
542name = "GLib.MainContext"
543status = "generate"
544concurrency = "send+sync"
545    [[object.function]]
546    name = "prepare"
547    # out parameter not marked as such
548    manual = true
549
550    [[object.function]]
551    name = "find_source_by_id"
552    # source id is a newtype
553    manual = true
554
555    [[object.function]]
556    name = "invoke"
557    manual = true
558    [[object.function]]
559    name = "invoke_full"
560    ignore = true
561
562    # Fixed in GLib 2.66.2
563    [[object.function]]
564    name = "get_thread_default"
565        [object.function.return]
566        nullable = true
567
568    # Fixed in GLib 2.66.2
569    [[object.function]]
570    name = "current_source"
571        [object.function.return]
572        nullable = true
573
574    [[object.function]]
575    name = "acquire"
576    # implemented with a guard type
577    manual = true
578
579    [[object.function]]
580    name = "release"
581    # implemented with a guard type
582    manual = true
583
584[[object]]
585name = "GLib.MainLoop"
586status = "generate"
587concurrency = "send+sync"
588
589[[object]]
590name = "GLib.Source"
591status = "generate"
592concurrency = "send+sync"
593    [[object.function]]
594    pattern = "set_.+"
595    # Setters are generally not thread-safe
596    # while GSource itself is
597    ignore = true
598
599    [[object.function]]
600    pattern = "attach"
601    # return type
602    ignore = true
603
604    [[object.function]]
605    pattern = "get_id"
606    # unsafe as it would allow multiple times to remove
607    ignore = true
608
609    [[object.function]]
610    pattern = "remove"
611    # parameter type
612    ignore = true
613
614    # Fixed in GLib 2.66.2
615    [[object.function]]
616    name = "get_name"
617        [object.function.return]
618        nullable = true
619
620[[object]]
621name = "GLib.TimeZone"
622status = "generate"
623concurrency = "send+sync"
624    [[object.function]]
625    name = "adjust_time"
626    # in-out parameter
627    ignore = true
628
629
630[[object]]
631name = "GLib.Uri"
632status = "generate"
633concurrency = "send+sync"
634    # Fixed in GLib 2.66.2
635    [[object.function]]
636    name = "unescape_string"
637        [object.function.return]
638        nullable = true
639
640    # Fixed in GLib 2.66.2
641    [[object.function]]
642    name = "unescape_segment"
643        [object.function.return]
644        nullable = true
645