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